/* Magnific Popup CSS */
.mfp-bg {
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1042;
  overflow: hidden;
  position: fixed;
  background: #0b0b0b;
  opacity: 0.8; }

.mfp-wrap {
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1043;
  position: fixed;
  outline: none !important;
  -webkit-backface-visibility: hidden; }

.mfp-container {
  text-align: center;
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  padding: 0 8px;
  box-sizing: border-box; }

.mfp-container:before {
  content: '';
  display: inline-block;
  height: 100%;
  vertical-align: middle; }

.mfp-align-top .mfp-container:before {
  display: none; }

.mfp-content {
  position: relative;
  display: inline-block;
  vertical-align: middle;
  margin: 0 auto;
  text-align: left;
  z-index: 1045; }

.mfp-inline-holder .mfp-content,
.mfp-ajax-holder .mfp-content {
  width: 100%;
  cursor: auto; }

.mfp-ajax-cur {
  cursor: progress; }

.mfp-zoom-out-cur, .mfp-zoom-out-cur .mfp-image-holder .mfp-close {
  cursor: -moz-zoom-out;
  cursor: -webkit-zoom-out;
  cursor: zoom-out; }

.mfp-zoom {
  cursor: pointer;
  cursor: -webkit-zoom-in;
  cursor: -moz-zoom-in;
  cursor: zoom-in; }

.mfp-auto-cursor .mfp-content {
  cursor: auto; }

.mfp-close,
.mfp-arrow,
.mfp-preloader,
.mfp-counter {
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none; }

.mfp-loading.mfp-figure {
  display: none; }

.mfp-hide {
  display: none !important; }

.mfp-preloader {
  color: #CCC;
  position: absolute;
  top: 50%;
  width: auto;
  text-align: center;
  margin-top: -0.8em;
  left: 8px;
  right: 8px;
  z-index: 1044; }
  .mfp-preloader a {
    color: #CCC; }
    .mfp-preloader a:hover {
      color: #FFF; }

.mfp-s-ready .mfp-preloader {
  display: none; }

.mfp-s-error .mfp-content {
  display: none; }

button.mfp-close,
button.mfp-arrow {
  overflow: visible;
  cursor: pointer;
  background: transparent;
  border: 0;
  -webkit-appearance: none;
  display: block;
  outline: none;
  padding: 0;
  z-index: 1046;
  box-shadow: none;
  touch-action: manipulation; }

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

.mfp-close {
  width: 44px;
  height: 44px;
  line-height: 44px;
  position: absolute;
  right: 0;
  top: 0;
  text-decoration: none;
  text-align: center;
  opacity: 0.65;
  padding: 0 0 18px 10px;
  color: #FFF;
  font-style: normal;
  font-size: 28px;
  font-family: Arial, Baskerville, monospace; }
  .mfp-close:hover,
  .mfp-close:focus {
    opacity: 1; }
  .mfp-close:active {
    top: 1px; }

.mfp-close-btn-in .mfp-close {
  color: #333; }

.mfp-image-holder .mfp-close,
.mfp-iframe-holder .mfp-close {
  color: #FFF;
  right: -6px;
  text-align: right;
  padding-right: 6px;
  width: 100%; }

.mfp-counter {
  position: absolute;
  top: 0;
  right: 0;
  color: #CCC;
  font-size: 12px;
  line-height: 18px;
  white-space: nowrap; }

.mfp-arrow {
  position: absolute;
  opacity: 0.65;
  margin: 0;
  top: 50%;
  margin-top: -55px;
  padding: 0;
  width: 90px;
  height: 110px;
  -webkit-tap-highlight-color: transparent; }
  .mfp-arrow:active {
    margin-top: -54px; }
  .mfp-arrow:hover,
  .mfp-arrow:focus {
    opacity: 1; }
  .mfp-arrow:before,
  .mfp-arrow:after {
    content: '';
    display: block;
    width: 0;
    height: 0;
    position: absolute;
    left: 0;
    top: 0;
    margin-top: 35px;
    margin-left: 35px;
    border: medium inset transparent; }
  .mfp-arrow:after {
    border-top-width: 13px;
    border-bottom-width: 13px;
    top: 8px; }
  .mfp-arrow:before {
    border-top-width: 21px;
    border-bottom-width: 21px;
    opacity: 0.7; }

.mfp-arrow-left {
  left: 0; }
  .mfp-arrow-left:after {
    border-right: 17px solid #FFF;
    margin-left: 31px; }
  .mfp-arrow-left:before {
    margin-left: 25px;
    border-right: 27px solid #3F3F3F; }

.mfp-arrow-right {
  right: 0; }
  .mfp-arrow-right:after {
    border-left: 17px solid #FFF;
    margin-left: 39px; }
  .mfp-arrow-right:before {
    border-left: 27px solid #3F3F3F; }

.mfp-iframe-holder {
  padding-top: 40px;
  padding-bottom: 40px; }
  .mfp-iframe-holder .mfp-content {
    line-height: 0;
    width: 100%;
    max-width: 900px; }
  .mfp-iframe-holder .mfp-close {
    top: -40px; }

.mfp-iframe-scaler {
  width: 100%;
  height: 0;
  overflow: hidden;
  padding-top: 56.25%; }
  .mfp-iframe-scaler iframe {
    position: absolute;
    display: block;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
    background: #000; }

/* Main image in popup */
img.mfp-img {
  width: auto;
  max-width: 100%;
  height: auto;
  display: block;
  line-height: 0;
  box-sizing: border-box;
  padding: 40px 0 40px;
  margin: 0 auto; }

/* The shadow behind the image */
.mfp-figure {
  line-height: 0; }
  .mfp-figure:after {
    content: '';
    position: absolute;
    left: 0;
    top: 40px;
    bottom: 40px;
    display: block;
    right: 0;
    width: auto;
    height: auto;
    z-index: -1;
    box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
    background: #444; }
  .mfp-figure small {
    color: #BDBDBD;
    display: block;
    font-size: 12px;
    line-height: 14px; }
  .mfp-figure figure {
    margin: 0; }

.mfp-bottom-bar {
  margin-top: -36px;
  position: absolute;
  top: 100%;
  left: 0;
  width: 100%;
  cursor: auto; }

.mfp-title {
  text-align: left;
  line-height: 18px;
  color: #F3F3F3;
  word-wrap: break-word;
  padding-right: 36px; }

.mfp-image-holder .mfp-content {
  max-width: 100%; }

.mfp-gallery .mfp-image-holder .mfp-figure {
  cursor: pointer; }

@media screen and (max-width: 800px) and (orientation: landscape), screen and (max-height: 300px) {
  /**
       * Remove all paddings around the image on small screen
       */
  .mfp-img-mobile .mfp-image-holder {
    padding-left: 0;
    padding-right: 0; }
  .mfp-img-mobile img.mfp-img {
    padding: 0; }
  .mfp-img-mobile .mfp-figure:after {
    top: 0;
    bottom: 0; }
  .mfp-img-mobile .mfp-figure small {
    display: inline;
    margin-left: 5px; }
  .mfp-img-mobile .mfp-bottom-bar {
    background: rgba(0, 0, 0, 0.6);
    bottom: 0;
    margin: 0;
    top: auto;
    padding: 3px 5px;
    position: fixed;
    box-sizing: border-box; }
    .mfp-img-mobile .mfp-bottom-bar:empty {
      padding: 0; }
  .mfp-img-mobile .mfp-counter {
    right: 5px;
    top: 3px; }
  .mfp-img-mobile .mfp-close {
    top: 0;
    right: 0;
    width: 35px;
    height: 35px;
    line-height: 35px;
    background: rgba(0, 0, 0, 0.6);
    position: fixed;
    text-align: center;
    padding: 0; } }

@media all and (max-width: 900px) {
  .mfp-arrow {
    -webkit-transform: scale(0.75);
    transform: scale(0.75); }
  .mfp-arrow-left {
    -webkit-transform-origin: 0;
    transform-origin: 0; }
  .mfp-arrow-right {
    -webkit-transform-origin: 100%;
    transform-origin: 100%; }
  .mfp-container {
    padding-left: 6px;
    padding-right: 6px; } }
@charset "UTF-8";
body.fancybox-active {
  overflow: hidden; }

body.fancybox-iosfix {
  position: fixed;
  left: 0;
  right: 0; }

.fancybox-is-hidden {
  position: absolute;
  top: -9999px;
  left: -9999px;
  visibility: hidden; }

.fancybox-container {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 99992;
  -webkit-tap-highlight-color: transparent;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; }

.fancybox-outer,
.fancybox-inner,
.fancybox-bg,
.fancybox-stage {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0; }

.fancybox-outer {
  overflow-y: auto;
  -webkit-overflow-scrolling: touch; }

.fancybox-bg {
  background: #1e1e1e;
  opacity: 0;
  transition-duration: inherit;
  transition-property: opacity;
  transition-timing-function: cubic-bezier(0.47, 0, 0.74, 0.71); }

.fancybox-is-open .fancybox-bg {
  opacity: 0.87;
  transition-timing-function: cubic-bezier(0.22, 0.61, 0.36, 1); }

.fancybox-infobar,
.fancybox-toolbar,
.fancybox-caption-wrap {
  position: absolute;
  direction: ltr;
  z-index: 99997;
  opacity: 0;
  visibility: hidden;
  transition: opacity .25s, visibility 0s linear .25s;
  box-sizing: border-box; }

.fancybox-show-infobar .fancybox-infobar,
.fancybox-show-toolbar .fancybox-toolbar,
.fancybox-show-caption .fancybox-caption-wrap {
  opacity: 1;
  visibility: visible;
  transition: opacity .25s, visibility 0s; }

.fancybox-infobar {
  top: 0;
  left: 0;
  font-size: 13px;
  padding: 0 10px;
  height: 44px;
  min-width: 44px;
  line-height: 44px;
  color: #ccc;
  text-align: center;
  pointer-events: none;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -webkit-touch-callout: none;
  -webkit-tap-highlight-color: transparent;
  -webkit-font-smoothing: subpixel-antialiased;
  mix-blend-mode: exclusion; }

.fancybox-toolbar {
  top: 0;
  right: 0;
  margin: 0;
  padding: 0; }

.fancybox-stage {
  overflow: hidden;
  direction: ltr;
  z-index: 99994;
  -webkit-transform: translate3d(0, 0, 0); }

.fancybox-is-closing .fancybox-stage {
  overflow: visible; }

.fancybox-slide {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  overflow: auto;
  outline: none;
  white-space: normal;
  box-sizing: border-box;
  text-align: center;
  z-index: 99994;
  -webkit-overflow-scrolling: touch;
  display: none;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform; }

.fancybox-slide::before {
  content: '';
  display: inline-block;
  vertical-align: middle;
  height: 100%;
  width: 0; }

.fancybox-is-sliding .fancybox-slide,
.fancybox-slide--previous,
.fancybox-slide--current,
.fancybox-slide--next {
  display: block; }

.fancybox-slide--image {
  overflow: visible; }

.fancybox-slide--image::before {
  display: none; }

.fancybox-slide--video .fancybox-content,
.fancybox-slide--video iframe {
  background: #000; }

.fancybox-slide--map .fancybox-content,
.fancybox-slide--map iframe {
  background: #E5E3DF; }

.fancybox-slide--next {
  z-index: 99995; }

.fancybox-slide > * {
  display: inline-block;
  position: relative;
  padding: 24px;
  margin: 44px 0 44px;
  border-width: 0;
  vertical-align: middle;
  text-align: left;
  background-color: #fff;
  overflow: auto;
  box-sizing: border-box; }

.fancybox-slide > title,
.fancybox-slide > style,
.fancybox-slide > meta,
.fancybox-slide > link,
.fancybox-slide > script,
.fancybox-slide > base {
  display: none; }

.fancybox-slide .fancybox-image-wrap {
  position: absolute;
  top: 0;
  left: 0;
  margin: 0;
  padding: 0;
  border: 0;
  z-index: 99995;
  background: transparent;
  cursor: default;
  overflow: visible;
  -webkit-transform-origin: top left;
  -ms-transform-origin: top left;
  transform-origin: top left;
  background-size: 100% 100%;
  background-repeat: no-repeat;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform; }

.fancybox-can-zoomOut .fancybox-image-wrap {
  cursor: -webkit-zoom-out;
  cursor: zoom-out; }

.fancybox-can-zoomIn .fancybox-image-wrap {
  cursor: -webkit-zoom-in;
  cursor: zoom-in; }

.fancybox-can-drag .fancybox-image-wrap {
  cursor: -webkit-grab;
  cursor: grab; }

.fancybox-is-dragging .fancybox-image-wrap {
  cursor: -webkit-grabbing;
  cursor: grabbing; }

.fancybox-image,
.fancybox-spaceball {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  max-width: none;
  max-height: none;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none; }

.fancybox-spaceball {
  z-index: 1; }

.fancybox-slide--iframe .fancybox-content {
  padding: 0;
  width: 80%;
  height: 80%;
  max-width: calc(100% - 100px);
  max-height: calc(100% - 88px);
  overflow: visible;
  background: #fff; }

.fancybox-iframe {
  display: block;
  margin: 0;
  padding: 0;
  border: 0;
  width: 100%;
  height: 100%;
  background: #fff; }

.fancybox-error {
  margin: 0;
  padding: 40px;
  width: 100%;
  max-width: 380px;
  background: #fff;
  cursor: default; }

.fancybox-error p {
  margin: 0;
  padding: 0;
  color: #444;
  font-size: 16px;
  line-height: 20px; }

/* Buttons */
.fancybox-button {
  box-sizing: border-box;
  display: inline-block;
  vertical-align: top;
  width: 44px;
  height: 44px;
  margin: 0;
  padding: 10px;
  border: 0;
  border-radius: 0;
  background: rgba(30, 30, 30, 0.6);
  transition: color .3s ease;
  cursor: pointer;
  outline: none; }

.fancybox-button,
.fancybox-button:visited,
.fancybox-button:link {
  color: #ccc; }

.fancybox-button:focus,
.fancybox-button:hover {
  color: #fff; }

.fancybox-button[disabled] {
  color: #ccc;
  cursor: default;
  opacity: 0.6; }

.fancybox-button svg {
  display: block;
  position: relative;
  overflow: visible;
  shape-rendering: geometricPrecision; }

.fancybox-button svg path {
  fill: currentColor;
  stroke: currentColor;
  stroke-linejoin: round;
  stroke-width: 3; }

.fancybox-button--share svg path {
  stroke-width: 1; }

.fancybox-button--play svg path:nth-child(2) {
  display: none; }

.fancybox-button--pause svg path:nth-child(1) {
  display: none; }

.fancybox-button--zoom svg path {
  fill: transparent; }

/* Navigation arrows */
.fancybox-navigation {
  display: none; }

.fancybox-show-nav .fancybox-navigation {
  display: block; }

.fancybox-navigation button {
  position: absolute;
  top: 50%;
  margin: -50px 0 0 0;
  z-index: 99997;
  background: transparent;
  width: 60px;
  height: 100px;
  padding: 17px; }

.fancybox-navigation button:before {
  content: "";
  position: absolute;
  top: 30px;
  right: 10px;
  width: 40px;
  height: 40px;
  background: rgba(30, 30, 30, 0.6); }

.fancybox-navigation .fancybox-button--arrow_left {
  left: 0; }

.fancybox-navigation .fancybox-button--arrow_right {
  right: 0; }

/* Close button on the top right corner of html content */
.fancybox-close-small {
  position: absolute;
  top: 0;
  right: 0;
  width: 44px;
  height: 44px;
  padding: 0;
  margin: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  z-index: 10;
  cursor: pointer; }

.fancybox-close-small:after {
  content: '×';
  position: absolute;
  top: 5px;
  right: 5px;
  width: 30px;
  height: 30px;
  font: 20px/30px Arial,"Helvetica Neue",Helvetica,sans-serif;
  color: #888;
  font-weight: 300;
  text-align: center;
  border-radius: 50%;
  border-width: 0;
  background-color: transparent;
  transition: background-color .25s;
  box-sizing: border-box;
  z-index: 2; }

.fancybox-close-small:focus {
  outline: none; }

.fancybox-close-small:focus:after {
  outline: 1px dotted #888; }

.fancybox-close-small:hover:after {
  color: #555;
  background: #eee; }

.fancybox-slide--image .fancybox-close-small,
.fancybox-slide--iframe .fancybox-close-small {
  top: 0;
  right: -44px; }

.fancybox-slide--image .fancybox-close-small:after,
.fancybox-slide--iframe .fancybox-close-small:after {
  font-size: 35px;
  color: #aaa; }

.fancybox-slide--image .fancybox-close-small:hover:after,
.fancybox-slide--iframe .fancybox-close-small:hover:after {
  color: #fff;
  background: transparent; }

.fancybox-is-scaling .fancybox-close-small,
.fancybox-is-zoomable.fancybox-can-drag .fancybox-close-small {
  display: none; }

/* Caption */
.fancybox-caption-wrap {
  bottom: 0;
  left: 0;
  right: 0;
  padding: 60px 2vw 0 2vw;
  background: linear-gradient(to bottom, transparent 0%, rgba(0, 0, 0, 0.1) 20%, rgba(0, 0, 0, 0.2) 40%, rgba(0, 0, 0, 0.6) 80%, rgba(0, 0, 0, 0.8) 100%);
  pointer-events: none; }

.fancybox-caption {
  padding: 30px 0;
  border-top: 1px solid rgba(255, 255, 255, 0.4);
  font-size: 14px;
  color: #fff;
  line-height: 20px;
  -webkit-text-size-adjust: none; }

.fancybox-caption a,
.fancybox-caption button,
.fancybox-caption select {
  pointer-events: all;
  position: relative;
  /* Fix IE11 */ }

.fancybox-caption a {
  color: #fff;
  text-decoration: underline; }

/* Loading indicator */
.fancybox-slide > .fancybox-loading {
  border: 6px solid rgba(100, 100, 100, 0.4);
  border-top: 6px solid rgba(255, 255, 255, 0.6);
  border-radius: 100%;
  height: 50px;
  width: 50px;
  -webkit-animation: fancybox-rotate .8s infinite linear;
  animation: fancybox-rotate .8s infinite linear;
  background: transparent;
  position: absolute;
  top: 50%;
  left: 50%;
  margin-top: -30px;
  margin-left: -30px;
  z-index: 99999; }

@-webkit-keyframes fancybox-rotate {
  from {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg); }
  to {
    -webkit-transform: rotate(359deg);
    transform: rotate(359deg); } }

@keyframes fancybox-rotate {
  from {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg); }
  to {
    -webkit-transform: rotate(359deg);
    transform: rotate(359deg); } }

/* Transition effects */
.fancybox-animated {
  transition-timing-function: cubic-bezier(0, 0, 0.25, 1); }

/* transitionEffect: slide */
.fancybox-fx-slide.fancybox-slide--previous {
  -webkit-transform: translate3d(-100%, 0, 0);
  transform: translate3d(-100%, 0, 0);
  opacity: 0; }

.fancybox-fx-slide.fancybox-slide--next {
  -webkit-transform: translate3d(100%, 0, 0);
  transform: translate3d(100%, 0, 0);
  opacity: 0; }

.fancybox-fx-slide.fancybox-slide--current {
  -webkit-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0);
  opacity: 1; }

/* transitionEffect: fade */
.fancybox-fx-fade.fancybox-slide--previous,
.fancybox-fx-fade.fancybox-slide--next {
  opacity: 0;
  transition-timing-function: cubic-bezier(0.19, 1, 0.22, 1); }

.fancybox-fx-fade.fancybox-slide--current {
  opacity: 1; }

/* transitionEffect: zoom-in-out */
.fancybox-fx-zoom-in-out.fancybox-slide--previous {
  -webkit-transform: scale3d(1.5, 1.5, 1.5);
  transform: scale3d(1.5, 1.5, 1.5);
  opacity: 0; }

.fancybox-fx-zoom-in-out.fancybox-slide--next {
  -webkit-transform: scale3d(0.5, 0.5, 0.5);
  transform: scale3d(0.5, 0.5, 0.5);
  opacity: 0; }

.fancybox-fx-zoom-in-out.fancybox-slide--current {
  -webkit-transform: scale3d(1, 1, 1);
  transform: scale3d(1, 1, 1);
  opacity: 1; }

/* transitionEffect: rotate */
.fancybox-fx-rotate.fancybox-slide--previous {
  -webkit-transform: rotate(-360deg);
  -ms-transform: rotate(-360deg);
  transform: rotate(-360deg);
  opacity: 0; }

.fancybox-fx-rotate.fancybox-slide--next {
  -webkit-transform: rotate(360deg);
  -ms-transform: rotate(360deg);
  transform: rotate(360deg);
  opacity: 0; }

.fancybox-fx-rotate.fancybox-slide--current {
  -webkit-transform: rotate(0deg);
  -ms-transform: rotate(0deg);
  transform: rotate(0deg);
  opacity: 1; }

/* transitionEffect: circular */
.fancybox-fx-circular.fancybox-slide--previous {
  -webkit-transform: scale3d(0, 0, 0) translate3d(-100%, 0, 0);
  transform: scale3d(0, 0, 0) translate3d(-100%, 0, 0);
  opacity: 0; }

.fancybox-fx-circular.fancybox-slide--next {
  -webkit-transform: scale3d(0, 0, 0) translate3d(100%, 0, 0);
  transform: scale3d(0, 0, 0) translate3d(100%, 0, 0);
  opacity: 0; }

.fancybox-fx-circular.fancybox-slide--current {
  -webkit-transform: scale3d(1, 1, 1) translate3d(0, 0, 0);
  transform: scale3d(1, 1, 1) translate3d(0, 0, 0);
  opacity: 1; }

/* transitionEffect: tube */
.fancybox-fx-tube.fancybox-slide--previous {
  -webkit-transform: translate3d(-100%, 0, 0) scale(0.1) skew(-10deg);
  transform: translate3d(-100%, 0, 0) scale(0.1) skew(-10deg); }

.fancybox-fx-tube.fancybox-slide--next {
  -webkit-transform: translate3d(100%, 0, 0) scale(0.1) skew(10deg);
  transform: translate3d(100%, 0, 0) scale(0.1) skew(10deg); }

.fancybox-fx-tube.fancybox-slide--current {
  -webkit-transform: translate3d(0, 0, 0) scale(1);
  transform: translate3d(0, 0, 0) scale(1); }

/* Share */
.fancybox-share {
  padding: 30px;
  border-radius: 3px;
  background: #f4f4f4;
  max-width: 90%; }

.fancybox-share h1 {
  color: #222;
  margin: 0 0 20px 0;
  font-size: 33px;
  font-weight: 700;
  text-align: center; }

.fancybox-share p {
  margin: 0;
  padding: 0;
  text-align: center; }

.fancybox-share p:first-of-type {
  margin-right: -10px; }

.fancybox-share_button {
  display: inline-block;
  text-decoration: none;
  margin: 0 10px 10px 0;
  padding: 10px 20px;
  border: 0;
  border-radius: 3px;
  box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.16);
  background: #fff;
  white-space: nowrap;
  font-size: 16px;
  line-height: 23px;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  min-width: 140px;
  color: #707070;
  transition: all .2s; }

.fancybox-share_button:focus,
.fancybox-share_button:hover {
  text-decoration: none;
  color: #333;
  box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.3); }

.fancybox-share_button svg {
  margin-right: 5px;
  width: 20px;
  height: 20px;
  vertical-align: text-bottom; }

.fancybox-share input {
  box-sizing: border-box;
  width: 100%;
  margin: 5px 0 0 0;
  padding: 10px 15px;
  border: 1px solid #d7d7d7;
  border-radius: 3px;
  background: #ebebeb;
  color: #5d5b5b;
  font-size: 14px;
  outline: none; }

/* Thumbs */
.fancybox-thumbs {
  display: none;
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  width: 212px;
  margin: 0;
  padding: 2px 2px 4px 2px;
  background: #fff;
  -webkit-tap-highlight-color: transparent;
  -webkit-overflow-scrolling: touch;
  -ms-overflow-style: -ms-autohiding-scrollbar;
  box-sizing: border-box;
  z-index: 99995; }

.fancybox-thumbs-x {
  overflow-y: hidden;
  overflow-x: auto; }

.fancybox-show-thumbs .fancybox-thumbs {
  display: block; }

.fancybox-show-thumbs .fancybox-inner {
  right: 212px; }

.fancybox-thumbs > ul {
  list-style: none;
  position: absolute;
  position: relative;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  overflow-x: hidden;
  overflow-y: auto;
  font-size: 0;
  white-space: nowrap; }

.fancybox-thumbs-x > ul {
  overflow: hidden; }

.fancybox-thumbs-y > ul::-webkit-scrollbar {
  width: 7px; }

.fancybox-thumbs-y > ul::-webkit-scrollbar-track {
  background: #fff;
  border-radius: 10px;
  box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3); }

.fancybox-thumbs-y > ul::-webkit-scrollbar-thumb {
  background: #2a2a2a;
  border-radius: 10px; }

.fancybox-thumbs > ul > li {
  float: left;
  overflow: hidden;
  padding: 0;
  margin: 2px;
  width: 100px;
  height: 75px;
  max-width: calc(50% - 4px);
  max-height: calc(100% - 8px);
  position: relative;
  cursor: pointer;
  outline: none;
  -webkit-tap-highlight-color: transparent;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  box-sizing: border-box; }

li.fancybox-thumbs-loading {
  background: rgba(0, 0, 0, 0.1); }

.fancybox-thumbs > ul > li > img {
  position: absolute;
  top: 0;
  left: 0;
  max-width: none;
  max-height: none;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none; }

.fancybox-thumbs > ul > li:before {
  content: '';
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  border: 4px solid #4ea7f9;
  z-index: 99991;
  opacity: 0;
  transition: all 0.2s cubic-bezier(0.25, 0.46, 0.45, 0.94); }

.fancybox-thumbs > ul > li.fancybox-thumbs-active:before {
  opacity: 1; }

/* Styling for Small-Screen Devices */
@media all and (max-width: 800px) {
  .fancybox-thumbs {
    width: 110px; }
  .fancybox-show-thumbs .fancybox-inner {
    right: 110px; }
  .fancybox-thumbs > ul > li {
    max-width: calc(100% - 10px); } }
@charset "UTF-8";

/**
 * Foundation for Sites by ZURB
 * Version 6.4.3
 * foundation.zurb.com
 * Licensed under MIT Open Source
 */





@media print, screen and (min-width: 40em) {
  .reveal,
  .reveal.tiny,
  .reveal.small,
  .reveal.large {
    right: auto;
    left: auto;
    margin: 0 auto;
  }
}

/*!
 *  Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome
 *  License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
 */

/* FONT PATH
 * -------------------------- */

@font-face {
  font-family: 'FontAwesome';
  src: url(/fonts/vendor/font-awesome/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713);
  src: url(/fonts/vendor/font-awesome/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713) format("embedded-opentype"), url(/fonts/vendor/font-awesome/fontawesome-webfont.woff2?af7ae505a9eed503f8b8e6982036873e) format("woff2"), url(/fonts/vendor/font-awesome/fontawesome-webfont.woff?fee66e712a8a08eef5805a46892932ad) format("woff"), url(/fonts/vendor/font-awesome/fontawesome-webfont.ttf?b06871f281fee6b241d60582ae9369b9) format("truetype"), url(/fonts/vendor/font-awesome/fontawesome-webfont.svg?912ec66d7572ff821749319396470bde) format("svg");
  font-weight: normal;
  font-style: normal;
}

.fa {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* makes the font 33% larger relative to the icon container */

.fa-lg {
  font-size: 1.33333333em;
  line-height: 0.75em;
  vertical-align: -15%;
}

.fa-2x {
  font-size: 2em;
}

.fa-3x {
  font-size: 3em;
}

.fa-4x {
  font-size: 4em;
}

.fa-5x {
  font-size: 5em;
}

.fa-fw {
  width: 1.28571429em;
  text-align: center;
}

.fa-ul {
  padding-left: 0;
  margin-left: 2.14285714em;
  list-style-type: none;
}

.fa-ul > li {
  position: relative;
}

.fa-li {
  position: absolute;
  left: -2.14285714em;
  width: 2.14285714em;
  top: 0.14285714em;
  text-align: center;
}

.fa-li.fa-lg {
  left: -1.85714286em;
}

.fa-border {
  padding: .2em .25em .15em;
  border: solid 0.08em #eee;
  border-radius: .1em;
}

.fa-pull-left {
  float: left;
}

.fa-pull-right {
  float: right;
}

.fa.fa-pull-left {
  margin-right: .3em;
}

.fa.fa-pull-right {
  margin-left: .3em;
}

/* Deprecated as of 4.4.0 */

.pull-right {
  float: right;
}

.pull-left {
  float: left;
}

.fa.pull-left {
  margin-right: .3em;
}

.fa.pull-right {
  margin-left: .3em;
}

.fa-spin {
  -webkit-animation: fa-spin 2s infinite linear;
  animation: fa-spin 2s infinite linear;
}

.fa-pulse {
  -webkit-animation: fa-spin 1s infinite steps(8);
  animation: fa-spin 1s infinite steps(8);
}

@-webkit-keyframes fa-spin {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }

  100% {
    -webkit-transform: rotate(359deg);
    transform: rotate(359deg);
  }
}

@keyframes fa-spin {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }

  100% {
    -webkit-transform: rotate(359deg);
    transform: rotate(359deg);
  }
}

.fa-rotate-90 {
  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";
  -webkit-transform: rotate(90deg);
  transform: rotate(90deg);
}

.fa-rotate-180 {
  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";
  -webkit-transform: rotate(180deg);
  transform: rotate(180deg);
}

.fa-rotate-270 {
  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";
  -webkit-transform: rotate(270deg);
  transform: rotate(270deg);
}

.fa-flip-horizontal {
  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";
  -webkit-transform: scale(-1, 1);
  transform: scale(-1, 1);
}

.fa-flip-vertical {
  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";
  -webkit-transform: scale(1, -1);
  transform: scale(1, -1);
}

:root .fa-rotate-90,
:root .fa-rotate-180,
:root .fa-rotate-270,
:root .fa-flip-horizontal,
:root .fa-flip-vertical {
  -webkit-filter: none;
          filter: none;
}

.fa-stack {
  position: relative;
  display: inline-block;
  width: 2em;
  height: 2em;
  line-height: 2em;
  vertical-align: middle;
}

.fa-stack-1x,
.fa-stack-2x {
  position: absolute;
  left: 0;
  width: 100%;
  text-align: center;
}

.fa-stack-1x {
  line-height: inherit;
}

.fa-stack-2x {
  font-size: 2em;
}

.fa-inverse {
  color: #fff;
}

/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
   readers do not read off random characters that represent icons */

.fa-glass:before {
  content: "";
}

.fa-music:before {
  content: "";
}

.fa-search:before {
  content: "";
}

.fa-envelope-o:before {
  content: "";
}

.fa-heart:before {
  content: "";
}

.fa-star:before {
  content: "";
}

.fa-star-o:before {
  content: "";
}

.fa-user:before {
  content: "";
}

.fa-film:before {
  content: "";
}

.fa-th-large:before {
  content: "";
}

.fa-th:before {
  content: "";
}

.fa-th-list:before {
  content: "";
}

.fa-check:before {
  content: "";
}

.fa-remove:before,
.fa-close:before,
.fa-times:before {
  content: "";
}

.fa-search-plus:before {
  content: "";
}

.fa-search-minus:before {
  content: "";
}

.fa-power-off:before {
  content: "";
}

.fa-signal:before {
  content: "";
}

.fa-gear:before,
.fa-cog:before {
  content: "";
}

.fa-trash-o:before {
  content: "";
}

.fa-home:before {
  content: "";
}

.fa-file-o:before {
  content: "";
}

.fa-clock-o:before {
  content: "";
}

.fa-road:before {
  content: "";
}

.fa-download:before {
  content: "";
}

.fa-arrow-circle-o-down:before {
  content: "";
}

.fa-arrow-circle-o-up:before {
  content: "";
}

.fa-inbox:before {
  content: "";
}

.fa-play-circle-o:before {
  content: "";
}

.fa-rotate-right:before,
.fa-repeat:before {
  content: "";
}

.fa-refresh:before {
  content: "";
}

.fa-list-alt:before {
  content: "";
}

.fa-lock:before {
  content: "";
}

.fa-flag:before {
  content: "";
}

.fa-headphones:before {
  content: "";
}

.fa-volume-off:before {
  content: "";
}

.fa-volume-down:before {
  content: "";
}

.fa-volume-up:before {
  content: "";
}

.fa-qrcode:before {
  content: "";
}

.fa-barcode:before {
  content: "";
}

.fa-tag:before {
  content: "";
}

.fa-tags:before {
  content: "";
}

.fa-book:before {
  content: "";
}

.fa-bookmark:before {
  content: "";
}

.fa-print:before {
  content: "";
}

.fa-camera:before {
  content: "";
}

.fa-font:before {
  content: "";
}

.fa-bold:before {
  content: "";
}

.fa-italic:before {
  content: "";
}

.fa-text-height:before {
  content: "";
}

.fa-text-width:before {
  content: "";
}

.fa-align-left:before {
  content: "";
}

.fa-align-center:before {
  content: "";
}

.fa-align-right:before {
  content: "";
}

.fa-align-justify:before {
  content: "";
}

.fa-list:before {
  content: "";
}

.fa-dedent:before,
.fa-outdent:before {
  content: "";
}

.fa-indent:before {
  content: "";
}

.fa-video-camera:before {
  content: "";
}

.fa-photo:before,
.fa-image:before,
.fa-picture-o:before {
  content: "";
}

.fa-pencil:before {
  content: "";
}

.fa-map-marker:before {
  content: "";
}

.fa-adjust:before {
  content: "";
}

.fa-tint:before {
  content: "";
}

.fa-edit:before,
.fa-pencil-square-o:before {
  content: "";
}

.fa-share-square-o:before {
  content: "";
}

.fa-check-square-o:before {
  content: "";
}

.fa-arrows:before {
  content: "";
}

.fa-step-backward:before {
  content: "";
}

.fa-fast-backward:before {
  content: "";
}

.fa-backward:before {
  content: "";
}

.fa-play:before {
  content: "";
}

.fa-pause:before {
  content: "";
}

.fa-stop:before {
  content: "";
}

.fa-forward:before {
  content: "";
}

.fa-fast-forward:before {
  content: "";
}

.fa-step-forward:before {
  content: "";
}

.fa-eject:before {
  content: "";
}

.fa-chevron-left:before {
  content: "";
}

.fa-chevron-right:before {
  content: "";
}

.fa-plus-circle:before {
  content: "";
}

.fa-minus-circle:before {
  content: "";
}

.fa-times-circle:before {
  content: "";
}

.fa-check-circle:before {
  content: "";
}

.fa-question-circle:before {
  content: "";
}

.fa-info-circle:before {
  content: "";
}

.fa-crosshairs:before {
  content: "";
}

.fa-times-circle-o:before {
  content: "";
}

.fa-check-circle-o:before {
  content: "";
}

.fa-ban:before {
  content: "";
}

.fa-arrow-left:before {
  content: "";
}

.fa-arrow-right:before {
  content: "";
}

.fa-arrow-up:before {
  content: "";
}

.fa-arrow-down:before {
  content: "";
}

.fa-mail-forward:before,
.fa-share:before {
  content: "";
}

.fa-expand:before {
  content: "";
}

.fa-compress:before {
  content: "";
}

.fa-plus:before {
  content: "";
}

.fa-minus:before {
  content: "";
}

.fa-asterisk:before {
  content: "";
}

.fa-exclamation-circle:before {
  content: "";
}

.fa-gift:before {
  content: "";
}

.fa-leaf:before {
  content: "";
}

.fa-fire:before {
  content: "";
}

.fa-eye:before {
  content: "";
}

.fa-eye-slash:before {
  content: "";
}

.fa-warning:before,
.fa-exclamation-triangle:before {
  content: "";
}

.fa-plane:before {
  content: "";
}

.fa-calendar:before {
  content: "";
}

.fa-random:before {
  content: "";
}

.fa-comment:before {
  content: "";
}

.fa-magnet:before {
  content: "";
}

.fa-chevron-up:before {
  content: "";
}

.fa-chevron-down:before {
  content: "";
}

.fa-retweet:before {
  content: "";
}

.fa-shopping-cart:before {
  content: "";
}

.fa-folder:before {
  content: "";
}

.fa-folder-open:before {
  content: "";
}

.fa-arrows-v:before {
  content: "";
}

.fa-arrows-h:before {
  content: "";
}

.fa-bar-chart-o:before,
.fa-bar-chart:before {
  content: "";
}

.fa-twitter-square:before {
  content: "";
}

.fa-facebook-square:before {
  content: "";
}

.fa-camera-retro:before {
  content: "";
}

.fa-key:before {
  content: "";
}

.fa-gears:before,
.fa-cogs:before {
  content: "";
}

.fa-comments:before {
  content: "";
}

.fa-thumbs-o-up:before {
  content: "";
}

.fa-thumbs-o-down:before {
  content: "";
}

.fa-star-half:before {
  content: "";
}

.fa-heart-o:before {
  content: "";
}

.fa-sign-out:before {
  content: "";
}

.fa-linkedin-square:before {
  content: "";
}

.fa-thumb-tack:before {
  content: "";
}

.fa-external-link:before {
  content: "";
}

.fa-sign-in:before {
  content: "";
}

.fa-trophy:before {
  content: "";
}

.fa-github-square:before {
  content: "";
}

.fa-upload:before {
  content: "";
}

.fa-lemon-o:before {
  content: "";
}

.fa-phone:before {
  content: "";
}

.fa-square-o:before {
  content: "";
}

.fa-bookmark-o:before {
  content: "";
}

.fa-phone-square:before {
  content: "";
}

.fa-twitter:before {
  content: "";
}

.fa-facebook-f:before,
.fa-facebook:before {
  content: "";
}

.fa-github:before {
  content: "";
}

.fa-unlock:before {
  content: "";
}

.fa-credit-card:before {
  content: "";
}

.fa-feed:before,
.fa-rss:before {
  content: "";
}

.fa-hdd-o:before {
  content: "";
}

.fa-bullhorn:before {
  content: "";
}

.fa-bell:before {
  content: "";
}

.fa-certificate:before {
  content: "";
}

.fa-hand-o-right:before {
  content: "";
}

.fa-hand-o-left:before {
  content: "";
}

.fa-hand-o-up:before {
  content: "";
}

.fa-hand-o-down:before {
  content: "";
}

.fa-arrow-circle-left:before {
  content: "";
}

.fa-arrow-circle-right:before {
  content: "";
}

.fa-arrow-circle-up:before {
  content: "";
}

.fa-arrow-circle-down:before {
  content: "";
}

.fa-globe:before {
  content: "";
}

.fa-wrench:before {
  content: "";
}

.fa-tasks:before {
  content: "";
}

.fa-filter:before {
  content: "";
}

.fa-briefcase:before {
  content: "";
}

.fa-arrows-alt:before {
  content: "";
}

.fa-group:before,
.fa-users:before {
  content: "";
}

.fa-chain:before,
.fa-link:before {
  content: "";
}

.fa-cloud:before {
  content: "";
}

.fa-flask:before {
  content: "";
}

.fa-cut:before,
.fa-scissors:before {
  content: "";
}

.fa-copy:before,
.fa-files-o:before {
  content: "";
}

.fa-paperclip:before {
  content: "";
}

.fa-save:before,
.fa-floppy-o:before {
  content: "";
}

.fa-square:before {
  content: "";
}

.fa-navicon:before,
.fa-reorder:before,
.fa-bars:before {
  content: "";
}

.fa-list-ul:before {
  content: "";
}

.fa-list-ol:before {
  content: "";
}

.fa-strikethrough:before {
  content: "";
}

.fa-underline:before {
  content: "";
}

.fa-table:before {
  content: "";
}

.fa-magic:before {
  content: "";
}

.fa-truck:before {
  content: "";
}

.fa-pinterest:before {
  content: "";
}

.fa-pinterest-square:before {
  content: "";
}

.fa-google-plus-square:before {
  content: "";
}

.fa-google-plus:before {
  content: "";
}

.fa-money:before {
  content: "";
}

.fa-caret-down:before {
  content: "";
}

.fa-caret-up:before {
  content: "";
}

.fa-caret-left:before {
  content: "";
}

.fa-caret-right:before {
  content: "";
}

.fa-columns:before {
  content: "";
}

.fa-unsorted:before,
.fa-sort:before {
  content: "";
}

.fa-sort-down:before,
.fa-sort-desc:before {
  content: "";
}

.fa-sort-up:before,
.fa-sort-asc:before {
  content: "";
}

.fa-envelope:before {
  content: "";
}

.fa-linkedin:before {
  content: "";
}

.fa-rotate-left:before,
.fa-undo:before {
  content: "";
}

.fa-legal:before,
.fa-gavel:before {
  content: "";
}

.fa-dashboard:before,
.fa-tachometer:before {
  content: "";
}

.fa-comment-o:before {
  content: "";
}

.fa-comments-o:before {
  content: "";
}

.fa-flash:before,
.fa-bolt:before {
  content: "";
}

.fa-sitemap:before {
  content: "";
}

.fa-umbrella:before {
  content: "";
}

.fa-paste:before,
.fa-clipboard:before {
  content: "";
}

.fa-lightbulb-o:before {
  content: "";
}

.fa-exchange:before {
  content: "";
}

.fa-cloud-download:before {
  content: "";
}

.fa-cloud-upload:before {
  content: "";
}

.fa-user-md:before {
  content: "";
}

.fa-stethoscope:before {
  content: "";
}

.fa-suitcase:before {
  content: "";
}

.fa-bell-o:before {
  content: "";
}

.fa-coffee:before {
  content: "";
}

.fa-cutlery:before {
  content: "";
}

.fa-file-text-o:before {
  content: "";
}

.fa-building-o:before {
  content: "";
}

.fa-hospital-o:before {
  content: "";
}

.fa-ambulance:before {
  content: "";
}

.fa-medkit:before {
  content: "";
}

.fa-fighter-jet:before {
  content: "";
}

.fa-beer:before {
  content: "";
}

.fa-h-square:before {
  content: "";
}

.fa-plus-square:before {
  content: "";
}

.fa-angle-double-left:before {
  content: "";
}

.fa-angle-double-right:before {
  content: "";
}

.fa-angle-double-up:before {
  content: "";
}

.fa-angle-double-down:before {
  content: "";
}

.fa-angle-left:before {
  content: "";
}

.fa-angle-right:before {
  content: "";
}

.fa-angle-up:before {
  content: "";
}

.fa-angle-down:before {
  content: "";
}

.fa-desktop:before {
  content: "";
}

.fa-laptop:before {
  content: "";
}

.fa-tablet:before {
  content: "";
}

.fa-mobile-phone:before,
.fa-mobile:before {
  content: "";
}

.fa-circle-o:before {
  content: "";
}

.fa-quote-left:before {
  content: "";
}

.fa-quote-right:before {
  content: "";
}

.fa-spinner:before {
  content: "";
}

.fa-circle:before {
  content: "";
}

.fa-mail-reply:before,
.fa-reply:before {
  content: "";
}

.fa-github-alt:before {
  content: "";
}

.fa-folder-o:before {
  content: "";
}

.fa-folder-open-o:before {
  content: "";
}

.fa-smile-o:before {
  content: "";
}

.fa-frown-o:before {
  content: "";
}

.fa-meh-o:before {
  content: "";
}

.fa-gamepad:before {
  content: "";
}

.fa-keyboard-o:before {
  content: "";
}

.fa-flag-o:before {
  content: "";
}

.fa-flag-checkered:before {
  content: "";
}

.fa-terminal:before {
  content: "";
}

.fa-code:before {
  content: "";
}

.fa-mail-reply-all:before,
.fa-reply-all:before {
  content: "";
}

.fa-star-half-empty:before,
.fa-star-half-full:before,
.fa-star-half-o:before {
  content: "";
}

.fa-location-arrow:before {
  content: "";
}

.fa-crop:before {
  content: "";
}

.fa-code-fork:before {
  content: "";
}

.fa-unlink:before,
.fa-chain-broken:before {
  content: "";
}

.fa-question:before {
  content: "";
}

.fa-info:before {
  content: "";
}

.fa-exclamation:before {
  content: "";
}

.fa-superscript:before {
  content: "";
}

.fa-subscript:before {
  content: "";
}

.fa-eraser:before {
  content: "";
}

.fa-puzzle-piece:before {
  content: "";
}

.fa-microphone:before {
  content: "";
}

.fa-microphone-slash:before {
  content: "";
}

.fa-shield:before {
  content: "";
}

.fa-calendar-o:before {
  content: "";
}

.fa-fire-extinguisher:before {
  content: "";
}

.fa-rocket:before {
  content: "";
}

.fa-maxcdn:before {
  content: "";
}

.fa-chevron-circle-left:before {
  content: "";
}

.fa-chevron-circle-right:before {
  content: "";
}

.fa-chevron-circle-up:before {
  content: "";
}

.fa-chevron-circle-down:before {
  content: "";
}

.fa-html5:before {
  content: "";
}

.fa-css3:before {
  content: "";
}

.fa-anchor:before {
  content: "";
}

.fa-unlock-alt:before {
  content: "";
}

.fa-bullseye:before {
  content: "";
}

.fa-ellipsis-h:before {
  content: "";
}

.fa-ellipsis-v:before {
  content: "";
}

.fa-rss-square:before {
  content: "";
}

.fa-play-circle:before {
  content: "";
}

.fa-ticket:before {
  content: "";
}

.fa-minus-square:before {
  content: "";
}

.fa-minus-square-o:before {
  content: "";
}

.fa-level-up:before {
  content: "";
}

.fa-level-down:before {
  content: "";
}

.fa-check-square:before {
  content: "";
}

.fa-pencil-square:before {
  content: "";
}

.fa-external-link-square:before {
  content: "";
}

.fa-share-square:before {
  content: "";
}

.fa-compass:before {
  content: "";
}

.fa-toggle-down:before,
.fa-caret-square-o-down:before {
  content: "";
}

.fa-toggle-up:before,
.fa-caret-square-o-up:before {
  content: "";
}

.fa-toggle-right:before,
.fa-caret-square-o-right:before {
  content: "";
}

.fa-euro:before,
.fa-eur:before {
  content: "";
}

.fa-gbp:before {
  content: "";
}

.fa-dollar:before,
.fa-usd:before {
  content: "";
}

.fa-rupee:before,
.fa-inr:before {
  content: "";
}

.fa-cny:before,
.fa-rmb:before,
.fa-yen:before,
.fa-jpy:before {
  content: "";
}

.fa-ruble:before,
.fa-rouble:before,
.fa-rub:before {
  content: "";
}

.fa-won:before,
.fa-krw:before {
  content: "";
}

.fa-bitcoin:before,
.fa-btc:before {
  content: "";
}

.fa-file:before {
  content: "";
}

.fa-file-text:before {
  content: "";
}

.fa-sort-alpha-asc:before {
  content: "";
}

.fa-sort-alpha-desc:before {
  content: "";
}

.fa-sort-amount-asc:before {
  content: "";
}

.fa-sort-amount-desc:before {
  content: "";
}

.fa-sort-numeric-asc:before {
  content: "";
}

.fa-sort-numeric-desc:before {
  content: "";
}

.fa-thumbs-up:before {
  content: "";
}

.fa-thumbs-down:before {
  content: "";
}

.fa-youtube-square:before {
  content: "";
}

.fa-youtube:before {
  content: "";
}

.fa-xing:before {
  content: "";
}

.fa-xing-square:before {
  content: "";
}

.fa-youtube-play:before {
  content: "";
}

.fa-dropbox:before {
  content: "";
}

.fa-stack-overflow:before {
  content: "";
}

.fa-instagram:before {
  content: "";
}

.fa-flickr:before {
  content: "";
}

.fa-adn:before {
  content: "";
}

.fa-bitbucket:before {
  content: "";
}

.fa-bitbucket-square:before {
  content: "";
}

.fa-tumblr:before {
  content: "";
}

.fa-tumblr-square:before {
  content: "";
}

.fa-long-arrow-down:before {
  content: "";
}

.fa-long-arrow-up:before {
  content: "";
}

.fa-long-arrow-left:before {
  content: "";
}

.fa-long-arrow-right:before {
  content: "";
}

.fa-apple:before {
  content: "";
}

.fa-windows:before {
  content: "";
}

.fa-android:before {
  content: "";
}

.fa-linux:before {
  content: "";
}

.fa-dribbble:before {
  content: "";
}

.fa-skype:before {
  content: "";
}

.fa-foursquare:before {
  content: "";
}

.fa-trello:before {
  content: "";
}

.fa-female:before {
  content: "";
}

.fa-male:before {
  content: "";
}

.fa-gittip:before,
.fa-gratipay:before {
  content: "";
}

.fa-sun-o:before {
  content: "";
}

.fa-moon-o:before {
  content: "";
}

.fa-archive:before {
  content: "";
}

.fa-bug:before {
  content: "";
}

.fa-vk:before {
  content: "";
}

.fa-weibo:before {
  content: "";
}

.fa-renren:before {
  content: "";
}

.fa-pagelines:before {
  content: "";
}

.fa-stack-exchange:before {
  content: "";
}

.fa-arrow-circle-o-right:before {
  content: "";
}

.fa-arrow-circle-o-left:before {
  content: "";
}

.fa-toggle-left:before,
.fa-caret-square-o-left:before {
  content: "";
}

.fa-dot-circle-o:before {
  content: "";
}

.fa-wheelchair:before {
  content: "";
}

.fa-vimeo-square:before {
  content: "";
}

.fa-turkish-lira:before,
.fa-try:before {
  content: "";
}

.fa-plus-square-o:before {
  content: "";
}

.fa-space-shuttle:before {
  content: "";
}

.fa-slack:before {
  content: "";
}

.fa-envelope-square:before {
  content: "";
}

.fa-wordpress:before {
  content: "";
}

.fa-openid:before {
  content: "";
}

.fa-institution:before,
.fa-bank:before,
.fa-university:before {
  content: "";
}

.fa-mortar-board:before,
.fa-graduation-cap:before {
  content: "";
}

.fa-yahoo:before {
  content: "";
}

.fa-google:before {
  content: "";
}

.fa-reddit:before {
  content: "";
}

.fa-reddit-square:before {
  content: "";
}

.fa-stumbleupon-circle:before {
  content: "";
}

.fa-stumbleupon:before {
  content: "";
}

.fa-delicious:before {
  content: "";
}

.fa-digg:before {
  content: "";
}

.fa-pied-piper-pp:before {
  content: "";
}

.fa-pied-piper-alt:before {
  content: "";
}

.fa-drupal:before {
  content: "";
}

.fa-joomla:before {
  content: "";
}

.fa-language:before {
  content: "";
}

.fa-fax:before {
  content: "";
}

.fa-building:before {
  content: "";
}

.fa-child:before {
  content: "";
}

.fa-paw:before {
  content: "";
}

.fa-spoon:before {
  content: "";
}

.fa-cube:before {
  content: "";
}

.fa-cubes:before {
  content: "";
}

.fa-behance:before {
  content: "";
}

.fa-behance-square:before {
  content: "";
}

.fa-steam:before {
  content: "";
}

.fa-steam-square:before {
  content: "";
}

.fa-recycle:before {
  content: "";
}

.fa-automobile:before,
.fa-car:before {
  content: "";
}

.fa-cab:before,
.fa-taxi:before {
  content: "";
}

.fa-tree:before {
  content: "";
}

.fa-spotify:before {
  content: "";
}

.fa-deviantart:before {
  content: "";
}

.fa-soundcloud:before {
  content: "";
}

.fa-database:before {
  content: "";
}

.fa-file-pdf-o:before {
  content: "";
}

.fa-file-word-o:before {
  content: "";
}

.fa-file-excel-o:before {
  content: "";
}

.fa-file-powerpoint-o:before {
  content: "";
}

.fa-file-photo-o:before,
.fa-file-picture-o:before,
.fa-file-image-o:before {
  content: "";
}

.fa-file-zip-o:before,
.fa-file-archive-o:before {
  content: "";
}

.fa-file-sound-o:before,
.fa-file-audio-o:before {
  content: "";
}

.fa-file-movie-o:before,
.fa-file-video-o:before {
  content: "";
}

.fa-file-code-o:before {
  content: "";
}

.fa-vine:before {
  content: "";
}

.fa-codepen:before {
  content: "";
}

.fa-jsfiddle:before {
  content: "";
}

.fa-life-bouy:before,
.fa-life-buoy:before,
.fa-life-saver:before,
.fa-support:before,
.fa-life-ring:before {
  content: "";
}

.fa-circle-o-notch:before {
  content: "";
}

.fa-ra:before,
.fa-resistance:before,
.fa-rebel:before {
  content: "";
}

.fa-ge:before,
.fa-empire:before {
  content: "";
}

.fa-git-square:before {
  content: "";
}

.fa-git:before {
  content: "";
}

.fa-y-combinator-square:before,
.fa-yc-square:before,
.fa-hacker-news:before {
  content: "";
}

.fa-tencent-weibo:before {
  content: "";
}

.fa-qq:before {
  content: "";
}

.fa-wechat:before,
.fa-weixin:before {
  content: "";
}

.fa-send:before,
.fa-paper-plane:before {
  content: "";
}

.fa-send-o:before,
.fa-paper-plane-o:before {
  content: "";
}

.fa-history:before {
  content: "";
}

.fa-circle-thin:before {
  content: "";
}

.fa-header:before {
  content: "";
}

.fa-paragraph:before {
  content: "";
}

.fa-sliders:before {
  content: "";
}

.fa-share-alt:before {
  content: "";
}

.fa-share-alt-square:before {
  content: "";
}

.fa-bomb:before {
  content: "";
}

.fa-soccer-ball-o:before,
.fa-futbol-o:before {
  content: "";
}

.fa-tty:before {
  content: "";
}

.fa-binoculars:before {
  content: "";
}

.fa-plug:before {
  content: "";
}

.fa-slideshare:before {
  content: "";
}

.fa-twitch:before {
  content: "";
}

.fa-yelp:before {
  content: "";
}

.fa-newspaper-o:before {
  content: "";
}

.fa-wifi:before {
  content: "";
}

.fa-calculator:before {
  content: "";
}

.fa-paypal:before {
  content: "";
}

.fa-google-wallet:before {
  content: "";
}

.fa-cc-visa:before {
  content: "";
}

.fa-cc-mastercard:before {
  content: "";
}

.fa-cc-discover:before {
  content: "";
}

.fa-cc-amex:before {
  content: "";
}

.fa-cc-paypal:before {
  content: "";
}

.fa-cc-stripe:before {
  content: "";
}

.fa-bell-slash:before {
  content: "";
}

.fa-bell-slash-o:before {
  content: "";
}

.fa-trash:before {
  content: "";
}

.fa-copyright:before {
  content: "";
}

.fa-at:before {
  content: "";
}

.fa-eyedropper:before {
  content: "";
}

.fa-paint-brush:before {
  content: "";
}

.fa-birthday-cake:before {
  content: "";
}

.fa-area-chart:before {
  content: "";
}

.fa-pie-chart:before {
  content: "";
}

.fa-line-chart:before {
  content: "";
}

.fa-lastfm:before {
  content: "";
}

.fa-lastfm-square:before {
  content: "";
}

.fa-toggle-off:before {
  content: "";
}

.fa-toggle-on:before {
  content: "";
}

.fa-bicycle:before {
  content: "";
}

.fa-bus:before {
  content: "";
}

.fa-ioxhost:before {
  content: "";
}

.fa-angellist:before {
  content: "";
}

.fa-cc:before {
  content: "";
}

.fa-shekel:before,
.fa-sheqel:before,
.fa-ils:before {
  content: "";
}

.fa-meanpath:before {
  content: "";
}

.fa-buysellads:before {
  content: "";
}

.fa-connectdevelop:before {
  content: "";
}

.fa-dashcube:before {
  content: "";
}

.fa-forumbee:before {
  content: "";
}

.fa-leanpub:before {
  content: "";
}

.fa-sellsy:before {
  content: "";
}

.fa-shirtsinbulk:before {
  content: "";
}

.fa-simplybuilt:before {
  content: "";
}

.fa-skyatlas:before {
  content: "";
}

.fa-cart-plus:before {
  content: "";
}

.fa-cart-arrow-down:before {
  content: "";
}

.fa-diamond:before {
  content: "";
}

.fa-ship:before {
  content: "";
}

.fa-user-secret:before {
  content: "";
}

.fa-motorcycle:before {
  content: "";
}

.fa-street-view:before {
  content: "";
}

.fa-heartbeat:before {
  content: "";
}

.fa-venus:before {
  content: "";
}

.fa-mars:before {
  content: "";
}

.fa-mercury:before {
  content: "";
}

.fa-intersex:before,
.fa-transgender:before {
  content: "";
}

.fa-transgender-alt:before {
  content: "";
}

.fa-venus-double:before {
  content: "";
}

.fa-mars-double:before {
  content: "";
}

.fa-venus-mars:before {
  content: "";
}

.fa-mars-stroke:before {
  content: "";
}

.fa-mars-stroke-v:before {
  content: "";
}

.fa-mars-stroke-h:before {
  content: "";
}

.fa-neuter:before {
  content: "";
}

.fa-genderless:before {
  content: "";
}

.fa-facebook-official:before {
  content: "";
}

.fa-pinterest-p:before {
  content: "";
}

.fa-whatsapp:before {
  content: "";
}

.fa-server:before {
  content: "";
}

.fa-user-plus:before {
  content: "";
}

.fa-user-times:before {
  content: "";
}

.fa-hotel:before,
.fa-bed:before {
  content: "";
}

.fa-viacoin:before {
  content: "";
}

.fa-train:before {
  content: "";
}

.fa-subway:before {
  content: "";
}

.fa-medium:before {
  content: "";
}

.fa-yc:before,
.fa-y-combinator:before {
  content: "";
}

.fa-optin-monster:before {
  content: "";
}

.fa-opencart:before {
  content: "";
}

.fa-expeditedssl:before {
  content: "";
}

.fa-battery-4:before,
.fa-battery:before,
.fa-battery-full:before {
  content: "";
}

.fa-battery-3:before,
.fa-battery-three-quarters:before {
  content: "";
}

.fa-battery-2:before,
.fa-battery-half:before {
  content: "";
}

.fa-battery-1:before,
.fa-battery-quarter:before {
  content: "";
}

.fa-battery-0:before,
.fa-battery-empty:before {
  content: "";
}

.fa-mouse-pointer:before {
  content: "";
}

.fa-i-cursor:before {
  content: "";
}

.fa-object-group:before {
  content: "";
}

.fa-object-ungroup:before {
  content: "";
}

.fa-sticky-note:before {
  content: "";
}

.fa-sticky-note-o:before {
  content: "";
}

.fa-cc-jcb:before {
  content: "";
}

.fa-cc-diners-club:before {
  content: "";
}

.fa-clone:before {
  content: "";
}

.fa-balance-scale:before {
  content: "";
}

.fa-hourglass-o:before {
  content: "";
}

.fa-hourglass-1:before,
.fa-hourglass-start:before {
  content: "";
}

.fa-hourglass-2:before,
.fa-hourglass-half:before {
  content: "";
}

.fa-hourglass-3:before,
.fa-hourglass-end:before {
  content: "";
}

.fa-hourglass:before {
  content: "";
}

.fa-hand-grab-o:before,
.fa-hand-rock-o:before {
  content: "";
}

.fa-hand-stop-o:before,
.fa-hand-paper-o:before {
  content: "";
}

.fa-hand-scissors-o:before {
  content: "";
}

.fa-hand-lizard-o:before {
  content: "";
}

.fa-hand-spock-o:before {
  content: "";
}

.fa-hand-pointer-o:before {
  content: "";
}

.fa-hand-peace-o:before {
  content: "";
}

.fa-trademark:before {
  content: "";
}

.fa-registered:before {
  content: "";
}

.fa-creative-commons:before {
  content: "";
}

.fa-gg:before {
  content: "";
}

.fa-gg-circle:before {
  content: "";
}

.fa-tripadvisor:before {
  content: "";
}

.fa-odnoklassniki:before {
  content: "";
}

.fa-odnoklassniki-square:before {
  content: "";
}

.fa-get-pocket:before {
  content: "";
}

.fa-wikipedia-w:before {
  content: "";
}

.fa-safari:before {
  content: "";
}

.fa-chrome:before {
  content: "";
}

.fa-firefox:before {
  content: "";
}

.fa-opera:before {
  content: "";
}

.fa-internet-explorer:before {
  content: "";
}

.fa-tv:before,
.fa-television:before {
  content: "";
}

.fa-contao:before {
  content: "";
}

.fa-500px:before {
  content: "";
}

.fa-amazon:before {
  content: "";
}

.fa-calendar-plus-o:before {
  content: "";
}

.fa-calendar-minus-o:before {
  content: "";
}

.fa-calendar-times-o:before {
  content: "";
}

.fa-calendar-check-o:before {
  content: "";
}

.fa-industry:before {
  content: "";
}

.fa-map-pin:before {
  content: "";
}

.fa-map-signs:before {
  content: "";
}

.fa-map-o:before {
  content: "";
}

.fa-map:before {
  content: "";
}

.fa-commenting:before {
  content: "";
}

.fa-commenting-o:before {
  content: "";
}

.fa-houzz:before {
  content: "";
}

.fa-vimeo:before {
  content: "";
}

.fa-black-tie:before {
  content: "";
}

.fa-fonticons:before {
  content: "";
}

.fa-reddit-alien:before {
  content: "";
}

.fa-edge:before {
  content: "";
}

.fa-credit-card-alt:before {
  content: "";
}

.fa-codiepie:before {
  content: "";
}

.fa-modx:before {
  content: "";
}

.fa-fort-awesome:before {
  content: "";
}

.fa-usb:before {
  content: "";
}

.fa-product-hunt:before {
  content: "";
}

.fa-mixcloud:before {
  content: "";
}

.fa-scribd:before {
  content: "";
}

.fa-pause-circle:before {
  content: "";
}

.fa-pause-circle-o:before {
  content: "";
}

.fa-stop-circle:before {
  content: "";
}

.fa-stop-circle-o:before {
  content: "";
}

.fa-shopping-bag:before {
  content: "";
}

.fa-shopping-basket:before {
  content: "";
}

.fa-hashtag:before {
  content: "";
}

.fa-bluetooth:before {
  content: "";
}

.fa-bluetooth-b:before {
  content: "";
}

.fa-percent:before {
  content: "";
}

.fa-gitlab:before {
  content: "";
}

.fa-wpbeginner:before {
  content: "";
}

.fa-wpforms:before {
  content: "";
}

.fa-envira:before {
  content: "";
}

.fa-universal-access:before {
  content: "";
}

.fa-wheelchair-alt:before {
  content: "";
}

.fa-question-circle-o:before {
  content: "";
}

.fa-blind:before {
  content: "";
}

.fa-audio-description:before {
  content: "";
}

.fa-volume-control-phone:before {
  content: "";
}

.fa-braille:before {
  content: "";
}

.fa-assistive-listening-systems:before {
  content: "";
}

.fa-asl-interpreting:before,
.fa-american-sign-language-interpreting:before {
  content: "";
}

.fa-deafness:before,
.fa-hard-of-hearing:before,
.fa-deaf:before {
  content: "";
}

.fa-glide:before {
  content: "";
}

.fa-glide-g:before {
  content: "";
}

.fa-signing:before,
.fa-sign-language:before {
  content: "";
}

.fa-low-vision:before {
  content: "";
}

.fa-viadeo:before {
  content: "";
}

.fa-viadeo-square:before {
  content: "";
}

.fa-snapchat:before {
  content: "";
}

.fa-snapchat-ghost:before {
  content: "";
}

.fa-snapchat-square:before {
  content: "";
}

.fa-pied-piper:before {
  content: "";
}

.fa-first-order:before {
  content: "";
}

.fa-yoast:before {
  content: "";
}

.fa-themeisle:before {
  content: "";
}

.fa-google-plus-circle:before,
.fa-google-plus-official:before {
  content: "";
}

.fa-fa:before,
.fa-font-awesome:before {
  content: "";
}

.fa-handshake-o:before {
  content: "";
}

.fa-envelope-open:before {
  content: "";
}

.fa-envelope-open-o:before {
  content: "";
}

.fa-linode:before {
  content: "";
}

.fa-address-book:before {
  content: "";
}

.fa-address-book-o:before {
  content: "";
}

.fa-vcard:before,
.fa-address-card:before {
  content: "";
}

.fa-vcard-o:before,
.fa-address-card-o:before {
  content: "";
}

.fa-user-circle:before {
  content: "";
}

.fa-user-circle-o:before {
  content: "";
}

.fa-user-o:before {
  content: "";
}

.fa-id-badge:before {
  content: "";
}

.fa-drivers-license:before,
.fa-id-card:before {
  content: "";
}

.fa-drivers-license-o:before,
.fa-id-card-o:before {
  content: "";
}

.fa-quora:before {
  content: "";
}

.fa-free-code-camp:before {
  content: "";
}

.fa-telegram:before {
  content: "";
}

.fa-thermometer-4:before,
.fa-thermometer:before,
.fa-thermometer-full:before {
  content: "";
}

.fa-thermometer-3:before,
.fa-thermometer-three-quarters:before {
  content: "";
}

.fa-thermometer-2:before,
.fa-thermometer-half:before {
  content: "";
}

.fa-thermometer-1:before,
.fa-thermometer-quarter:before {
  content: "";
}

.fa-thermometer-0:before,
.fa-thermometer-empty:before {
  content: "";
}

.fa-shower:before {
  content: "";
}

.fa-bathtub:before,
.fa-s15:before,
.fa-bath:before {
  content: "";
}

.fa-podcast:before {
  content: "";
}

.fa-window-maximize:before {
  content: "";
}

.fa-window-minimize:before {
  content: "";
}

.fa-window-restore:before {
  content: "";
}

.fa-times-rectangle:before,
.fa-window-close:before {
  content: "";
}

.fa-times-rectangle-o:before,
.fa-window-close-o:before {
  content: "";
}

.fa-bandcamp:before {
  content: "";
}

.fa-grav:before {
  content: "";
}

.fa-etsy:before {
  content: "";
}

.fa-imdb:before {
  content: "";
}

.fa-ravelry:before {
  content: "";
}

.fa-eercast:before {
  content: "";
}

.fa-microchip:before {
  content: "";
}

.fa-snowflake-o:before {
  content: "";
}

.fa-superpowers:before {
  content: "";
}

.fa-wpexplorer:before {
  content: "";
}

.fa-meetup:before {
  content: "";
}

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

.sr-only-focusable:active,
.sr-only-focusable:focus {
  position: static;
  width: auto;
  height: auto;
  margin: 0;
  overflow: visible;
  clip: auto;
}

/*! normalize-scss | MIT/GPLv2 License | bit.ly/normalize-scss */

/* Document
       ========================================================================== */

/**
     * 1. Change the default font family in all browsers (opinionated).
     * 2. Correct the line height in all browsers.
     * 3. Prevent adjustments of font size after orientation changes in
     *    IE on Windows Phone and in iOS.
     */

html {
  font-family: sans-serif;
  /* 1 */
  line-height: 1.15;
  /* 2 */
  -ms-text-size-adjust: 100%;
  /* 3 */
  -webkit-text-size-adjust: 100%;
  /* 3 */
}

/* Sections
       ========================================================================== */

/**
     * Remove the margin in all browsers (opinionated).
     */

body {
  margin: 0;
}

/**
     * Add the correct display in IE 9-.
     */

article,
aside,
footer,
header,
nav,
section {
  display: block;
}

/**
     * Correct the font size and margin on `h1` elements within `section` and
     * `article` contexts in Chrome, Firefox, and Safari.
     */

h1 {
  font-size: 2em;
  margin: 0.67em 0;
}

/* Grouping content
       ========================================================================== */

/**
     * Add the correct display in IE 9-.
     */

figcaption,
figure {
  display: block;
}

/**
     * Add the correct margin in IE 8.
     */

figure {
  margin: 1em 40px;
}

/**
     * 1. Add the correct box sizing in Firefox.
     * 2. Show the overflow in Edge and IE.
     */

hr {
  box-sizing: content-box;
  /* 1 */
  height: 0;
  /* 1 */
  overflow: visible;
  /* 2 */
}

/**
     * Add the correct display in IE.
     */

main {
  display: block;
}

/**
     * 1. Correct the inheritance and scaling of font size in all browsers.
     * 2. Correct the odd `em` font sizing in all browsers.
     */

pre {
  font-family: monospace, monospace;
  /* 1 */
  font-size: 1em;
  /* 2 */
}

/* Links
       ========================================================================== */

/**
     * 1. Remove the gray background on active links in IE 10.
     * 2. Remove gaps in links underline in iOS 8+ and Safari 8+.
     */

a {
  background-color: transparent;
  /* 1 */
  -webkit-text-decoration-skip: objects;
  /* 2 */
}

/**
     * Remove the outline on focused links when they are also active or hovered
     * in all browsers (opinionated).
     */

a:active,
a:hover {
  outline-width: 0;
}

/* Text-level semantics
       ========================================================================== */

/**
     * 1. Remove the bottom border in Firefox 39-.
     * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
     */

abbr[title] {
  border-bottom: none;
  /* 1 */
  text-decoration: underline;
  /* 2 */
  text-decoration: underline dotted;
  /* 2 */
}

/**
     * Prevent the duplicate application of `bolder` by the next rule in Safari 6.
     */

b,
strong {
  font-weight: inherit;
}

/**
     * Add the correct font weight in Chrome, Edge, and Safari.
     */

b,
strong {
  font-weight: bolder;
}

/**
     * 1. Correct the inheritance and scaling of font size in all browsers.
     * 2. Correct the odd `em` font sizing in all browsers.
     */

code,
kbd,
samp {
  font-family: monospace, monospace;
  /* 1 */
  font-size: 1em;
  /* 2 */
}

/**
     * Add the correct font style in Android 4.3-.
     */

dfn {
  font-style: italic;
}

/**
     * Add the correct background and color in IE 9-.
     */

mark {
  background-color: #ff0;
  color: #000;
}

/**
     * Add the correct font size in all browsers.
     */

small {
  font-size: 80%;
}

/**
     * Prevent `sub` and `sup` elements from affecting the line height in
     * all browsers.
     */

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

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/* Embedded content
       ========================================================================== */

/**
     * Add the correct display in IE 9-.
     */

audio,
video {
  display: inline-block;
}

/**
     * Add the correct display in iOS 4-7.
     */

audio:not([controls]) {
  display: none;
  height: 0;
}

/**
     * Remove the border on images inside links in IE 10-.
     */

img {
  border-style: none;
}

/**
     * Hide the overflow in IE.
     */

svg:not(:root) {
  overflow: hidden;
}

/* Forms
       ========================================================================== */

/**
     * 1. Change the font styles in all browsers (opinionated).
     * 2. Remove the margin in Firefox and Safari.
     */

button,
input,
optgroup,
select,
textarea {
  font-family: sans-serif;
  /* 1 */
  font-size: 100%;
  /* 1 */
  line-height: 1.15;
  /* 1 */
  margin: 0;
  /* 2 */
}

/**
     * Show the overflow in IE.
     */

button {
  overflow: visible;
}

/**
     * Remove the inheritance of text transform in Edge, Firefox, and IE.
     * 1. Remove the inheritance of text transform in Firefox.
     */

button,
select {
  /* 1 */
  text-transform: none;
}

/**
     * 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`
     *    controls in Android 4.
     * 2. Correct the inability to style clickable types in iOS and Safari.
     */

button,
html [type="button"],
[type="reset"],
[type="submit"] {
  -webkit-appearance: button;
  /* 2 */
}

button,
[type="button"],
[type="reset"],
[type="submit"] {
  /**
       * Remove the inner border and padding in Firefox.
       */
  /**
       * Restore the focus styles unset by the previous rule.
       */
}

button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
  border-style: none;
  padding: 0;
}

button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
  outline: 1px dotted ButtonText;
}

/**
     * Show the overflow in Edge.
     */

input {
  overflow: visible;
}

/**
     * 1. Add the correct box sizing in IE 10-.
     * 2. Remove the padding in IE 10-.
     */

[type="checkbox"],
[type="radio"] {
  box-sizing: border-box;
  /* 1 */
  padding: 0;
  /* 2 */
}

/**
     * Correct the cursor style of increment and decrement buttons in Chrome.
     */

[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
  height: auto;
}

/**
     * 1. Correct the odd appearance in Chrome and Safari.
     * 2. Correct the outline style in Safari.
     */

[type="search"] {
  -webkit-appearance: textfield;
  /* 1 */
  outline-offset: -2px;
  /* 2 */
  /**
       * Remove the inner padding and cancel buttons in Chrome and Safari on macOS.
       */
}

[type="search"]::-webkit-search-cancel-button,
[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
}

/**
     * 1. Correct the inability to style clickable types in iOS and Safari.
     * 2. Change font properties to `inherit` in Safari.
     */

::-webkit-file-upload-button {
  -webkit-appearance: button;
  /* 1 */
  font: inherit;
  /* 2 */
}

/**
     * Change the border, margin, and padding in all browsers (opinionated).
     */

fieldset {
  border: 1px solid #c0c0c0;
  margin: 0 2px;
  padding: 0.35em 0.625em 0.75em;
}

/**
     * 1. Correct the text wrapping in Edge and IE.
     * 2. Correct the color inheritance from `fieldset` elements in IE.
     * 3. Remove the padding so developers are not caught out when they zero out
     *    `fieldset` elements in all browsers.
     */

legend {
  box-sizing: border-box;
  /* 1 */
  display: table;
  /* 1 */
  max-width: 100%;
  /* 1 */
  padding: 0;
  /* 3 */
  color: inherit;
  /* 2 */
  white-space: normal;
  /* 1 */
}

/**
     * 1. Add the correct display in IE 9-.
     * 2. Add the correct vertical alignment in Chrome, Firefox, and Opera.
     */

progress {
  display: inline-block;
  /* 1 */
  vertical-align: baseline;
  /* 2 */
}

/**
     * Remove the default vertical scrollbar in IE.
     */

textarea {
  overflow: auto;
}

/* Interactive
       ========================================================================== */

/*
     * Add the correct display in Edge, IE, and Firefox.
     */

details {
  display: block;
}

/*
     * Add the correct display in all browsers.
     */

summary {
  display: list-item;
}

/*
     * Add the correct display in IE 9-.
     */

menu {
  display: block;
}

/* Scripting
       ========================================================================== */

/**
     * Add the correct display in IE 9-.
     */

canvas {
  display: inline-block;
}

/**
     * Add the correct display in IE.
     */

template {
  display: none;
}

/* Hidden
       ========================================================================== */

/**
     * Add the correct display in IE 10-.
     */

[hidden] {
  display: none;
}

.foundation-mq {
  font-family: "small=0em&medium=40em&large=64em&xlarge=75em&xxlarge=90em";
}

html {
  box-sizing: border-box;
  font-size: 100%;
}

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

body {
  margin: 0;
  padding: 0;
  background: #fefefe;
  font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
  font-weight: normal;
  line-height: 1.5;
  color: #0a0a0a;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

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

textarea {
  height: auto;
  min-height: 50px;
  border-radius: 0;
}

select {
  box-sizing: border-box;
  width: 100%;
  border-radius: 0;
}

.map_canvas img,
.map_canvas embed,
.map_canvas object,
.mqa-display img,
.mqa-display embed,
.mqa-display object {
  max-width: none !important;
}

button {
  padding: 0;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  border: 0;
  border-radius: 0;
  background: transparent;
  line-height: 1;
  cursor: auto;
}

[data-whatinput='mouse'] button {
  outline: 0;
}

pre {
  overflow: auto;
}

button,
input,
optgroup,
select,
textarea {
  font-family: inherit;
}

.is-visible {
  display: block !important;
}

.is-hidden {
  display: none !important;
}

.row {
  max-width: 75rem;
  margin-right: auto;
  margin-left: auto;
}

.row::before,
.row::after {
  display: table;
  content: ' ';
  -ms-flex-preferred-size: 0;
      flex-basis: 0;
  -webkit-box-ordinal-group: 2;
      -ms-flex-order: 1;
          order: 1;
}

.row::after {
  clear: both;
}

.row.collapse > .column,
.row.collapse > .columns {
  padding-right: 0;
  padding-left: 0;
}

.row .row {
  margin-right: -0.625rem;
  margin-left: -0.625rem;
}

@media print, screen and (min-width: 40em) {
  .row .row {
    margin-right: -0.9375rem;
    margin-left: -0.9375rem;
  }
}

@media print, screen and (min-width: 64em) {
  .row .row {
    margin-right: -0.9375rem;
    margin-left: -0.9375rem;
  }
}

.row .row.collapse {
  margin-right: 0;
  margin-left: 0;
}

.row.expanded {
  max-width: none;
}

.row.expanded .row {
  margin-right: auto;
  margin-left: auto;
}

.row:not(.expanded) .row {
  max-width: none;
}

.row.gutter-small > .column,
.row.gutter-small > .columns {
  padding-right: 0.625rem;
  padding-left: 0.625rem;
}

.row.gutter-medium > .column,
.row.gutter-medium > .columns {
  padding-right: 0.9375rem;
  padding-left: 0.9375rem;
}

.column,
.columns {
  width: 100%;
  float: left;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
}

@media print, screen and (min-width: 40em) {
  .column,
  .columns {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

.column:last-child:not(:first-child),
.columns:last-child:not(:first-child) {
  float: right;
}

.column.end:last-child:last-child,
.end.columns:last-child:last-child {
  float: left;
}

.column.row.row,
.row.row.columns {
  float: none;
}

.row .column.row.row,
.row .row.row.columns {
  margin-right: 0;
  margin-left: 0;
  padding-right: 0;
  padding-left: 0;
}

.small-1 {
  width: 8.33333333%;
}

.small-push-1 {
  position: relative;
  left: 8.33333333%;
}

.small-pull-1 {
  position: relative;
  left: -8.33333333%;
}

.small-offset-0 {
  margin-left: 0%;
}

.small-2 {
  width: 16.66666667%;
}

.small-push-2 {
  position: relative;
  left: 16.66666667%;
}

.small-pull-2 {
  position: relative;
  left: -16.66666667%;
}

.small-offset-1 {
  margin-left: 8.33333333%;
}

.small-3 {
  width: 25%;
}

.small-push-3 {
  position: relative;
  left: 25%;
}

.small-pull-3 {
  position: relative;
  left: -25%;
}

.small-offset-2 {
  margin-left: 16.66666667%;
}

.small-4 {
  width: 33.33333333%;
}

.small-push-4 {
  position: relative;
  left: 33.33333333%;
}

.small-pull-4 {
  position: relative;
  left: -33.33333333%;
}

.small-offset-3 {
  margin-left: 25%;
}

.small-5 {
  width: 41.66666667%;
}

.small-push-5 {
  position: relative;
  left: 41.66666667%;
}

.small-pull-5 {
  position: relative;
  left: -41.66666667%;
}

.small-offset-4 {
  margin-left: 33.33333333%;
}

.small-6 {
  width: 50%;
}

.small-push-6 {
  position: relative;
  left: 50%;
}

.small-pull-6 {
  position: relative;
  left: -50%;
}

.small-offset-5 {
  margin-left: 41.66666667%;
}

.small-7 {
  width: 58.33333333%;
}

.small-push-7 {
  position: relative;
  left: 58.33333333%;
}

.small-pull-7 {
  position: relative;
  left: -58.33333333%;
}

.small-offset-6 {
  margin-left: 50%;
}

.small-8 {
  width: 66.66666667%;
}

.small-push-8 {
  position: relative;
  left: 66.66666667%;
}

.small-pull-8 {
  position: relative;
  left: -66.66666667%;
}

.small-offset-7 {
  margin-left: 58.33333333%;
}

.small-9 {
  width: 75%;
}

.small-push-9 {
  position: relative;
  left: 75%;
}

.small-pull-9 {
  position: relative;
  left: -75%;
}

.small-offset-8 {
  margin-left: 66.66666667%;
}

.small-10 {
  width: 83.33333333%;
}

.small-push-10 {
  position: relative;
  left: 83.33333333%;
}

.small-pull-10 {
  position: relative;
  left: -83.33333333%;
}

.small-offset-9 {
  margin-left: 75%;
}

.small-11 {
  width: 91.66666667%;
}

.small-push-11 {
  position: relative;
  left: 91.66666667%;
}

.small-pull-11 {
  position: relative;
  left: -91.66666667%;
}

.small-offset-10 {
  margin-left: 83.33333333%;
}

.small-12 {
  width: 100%;
}

.small-offset-11 {
  margin-left: 91.66666667%;
}

.small-up-1 > .column,
.small-up-1 > .columns {
  float: left;
  width: 100%;
}

.small-up-1 > .column:nth-of-type(1n),
.small-up-1 > .columns:nth-of-type(1n) {
  clear: none;
}

.small-up-1 > .column:nth-of-type(1n+1),
.small-up-1 > .columns:nth-of-type(1n+1) {
  clear: both;
}

.small-up-1 > .column:last-child,
.small-up-1 > .columns:last-child {
  float: left;
}

.small-up-2 > .column,
.small-up-2 > .columns {
  float: left;
  width: 50%;
}

.small-up-2 > .column:nth-of-type(1n),
.small-up-2 > .columns:nth-of-type(1n) {
  clear: none;
}

.small-up-2 > .column:nth-of-type(2n+1),
.small-up-2 > .columns:nth-of-type(2n+1) {
  clear: both;
}

.small-up-2 > .column:last-child,
.small-up-2 > .columns:last-child {
  float: left;
}

.small-up-3 > .column,
.small-up-3 > .columns {
  float: left;
  width: 33.33333333%;
}

.small-up-3 > .column:nth-of-type(1n),
.small-up-3 > .columns:nth-of-type(1n) {
  clear: none;
}

.small-up-3 > .column:nth-of-type(3n+1),
.small-up-3 > .columns:nth-of-type(3n+1) {
  clear: both;
}

.small-up-3 > .column:last-child,
.small-up-3 > .columns:last-child {
  float: left;
}

.small-up-4 > .column,
.small-up-4 > .columns {
  float: left;
  width: 25%;
}

.small-up-4 > .column:nth-of-type(1n),
.small-up-4 > .columns:nth-of-type(1n) {
  clear: none;
}

.small-up-4 > .column:nth-of-type(4n+1),
.small-up-4 > .columns:nth-of-type(4n+1) {
  clear: both;
}

.small-up-4 > .column:last-child,
.small-up-4 > .columns:last-child {
  float: left;
}

.small-up-5 > .column,
.small-up-5 > .columns {
  float: left;
  width: 20%;
}

.small-up-5 > .column:nth-of-type(1n),
.small-up-5 > .columns:nth-of-type(1n) {
  clear: none;
}

.small-up-5 > .column:nth-of-type(5n+1),
.small-up-5 > .columns:nth-of-type(5n+1) {
  clear: both;
}

.small-up-5 > .column:last-child,
.small-up-5 > .columns:last-child {
  float: left;
}

.small-up-6 > .column,
.small-up-6 > .columns {
  float: left;
  width: 16.66666667%;
}

.small-up-6 > .column:nth-of-type(1n),
.small-up-6 > .columns:nth-of-type(1n) {
  clear: none;
}

.small-up-6 > .column:nth-of-type(6n+1),
.small-up-6 > .columns:nth-of-type(6n+1) {
  clear: both;
}

.small-up-6 > .column:last-child,
.small-up-6 > .columns:last-child {
  float: left;
}

.small-up-7 > .column,
.small-up-7 > .columns {
  float: left;
  width: 14.28571429%;
}

.small-up-7 > .column:nth-of-type(1n),
.small-up-7 > .columns:nth-of-type(1n) {
  clear: none;
}

.small-up-7 > .column:nth-of-type(7n+1),
.small-up-7 > .columns:nth-of-type(7n+1) {
  clear: both;
}

.small-up-7 > .column:last-child,
.small-up-7 > .columns:last-child {
  float: left;
}

.small-up-8 > .column,
.small-up-8 > .columns {
  float: left;
  width: 12.5%;
}

.small-up-8 > .column:nth-of-type(1n),
.small-up-8 > .columns:nth-of-type(1n) {
  clear: none;
}

.small-up-8 > .column:nth-of-type(8n+1),
.small-up-8 > .columns:nth-of-type(8n+1) {
  clear: both;
}

.small-up-8 > .column:last-child,
.small-up-8 > .columns:last-child {
  float: left;
}

.small-collapse > .column,
.small-collapse > .columns {
  padding-right: 0;
  padding-left: 0;
}

.small-collapse .row {
  margin-right: 0;
  margin-left: 0;
}

.expanded.row .small-collapse.row {
  margin-right: 0;
  margin-left: 0;
}

.small-uncollapse > .column,
.small-uncollapse > .columns {
  padding-right: 0.625rem;
  padding-left: 0.625rem;
}

.small-centered {
  margin-right: auto;
  margin-left: auto;
}

.small-centered,
.small-centered:last-child:not(:first-child) {
  float: none;
  clear: both;
}

.small-uncentered,
.small-push-0,
.small-pull-0 {
  position: static;
  float: left;
  margin-right: 0;
  margin-left: 0;
}

@media print, screen and (min-width: 40em) {
  .medium-1 {
    width: 8.33333333%;
  }

  .medium-push-1 {
    position: relative;
    left: 8.33333333%;
  }

  .medium-pull-1 {
    position: relative;
    left: -8.33333333%;
  }

  .medium-offset-0 {
    margin-left: 0%;
  }

  .medium-2 {
    width: 16.66666667%;
  }

  .medium-push-2 {
    position: relative;
    left: 16.66666667%;
  }

  .medium-pull-2 {
    position: relative;
    left: -16.66666667%;
  }

  .medium-offset-1 {
    margin-left: 8.33333333%;
  }

  .medium-3 {
    width: 25%;
  }

  .medium-push-3 {
    position: relative;
    left: 25%;
  }

  .medium-pull-3 {
    position: relative;
    left: -25%;
  }

  .medium-offset-2 {
    margin-left: 16.66666667%;
  }

  .medium-4 {
    width: 33.33333333%;
  }

  .medium-push-4 {
    position: relative;
    left: 33.33333333%;
  }

  .medium-pull-4 {
    position: relative;
    left: -33.33333333%;
  }

  .medium-offset-3 {
    margin-left: 25%;
  }

  .medium-5 {
    width: 41.66666667%;
  }

  .medium-push-5 {
    position: relative;
    left: 41.66666667%;
  }

  .medium-pull-5 {
    position: relative;
    left: -41.66666667%;
  }

  .medium-offset-4 {
    margin-left: 33.33333333%;
  }

  .medium-6 {
    width: 50%;
  }

  .medium-push-6 {
    position: relative;
    left: 50%;
  }

  .medium-pull-6 {
    position: relative;
    left: -50%;
  }

  .medium-offset-5 {
    margin-left: 41.66666667%;
  }

  .medium-7 {
    width: 58.33333333%;
  }

  .medium-push-7 {
    position: relative;
    left: 58.33333333%;
  }

  .medium-pull-7 {
    position: relative;
    left: -58.33333333%;
  }

  .medium-offset-6 {
    margin-left: 50%;
  }

  .medium-8 {
    width: 66.66666667%;
  }

  .medium-push-8 {
    position: relative;
    left: 66.66666667%;
  }

  .medium-pull-8 {
    position: relative;
    left: -66.66666667%;
  }

  .medium-offset-7 {
    margin-left: 58.33333333%;
  }

  .medium-9 {
    width: 75%;
  }

  .medium-push-9 {
    position: relative;
    left: 75%;
  }

  .medium-pull-9 {
    position: relative;
    left: -75%;
  }

  .medium-offset-8 {
    margin-left: 66.66666667%;
  }

  .medium-10 {
    width: 83.33333333%;
  }

  .medium-push-10 {
    position: relative;
    left: 83.33333333%;
  }

  .medium-pull-10 {
    position: relative;
    left: -83.33333333%;
  }

  .medium-offset-9 {
    margin-left: 75%;
  }

  .medium-11 {
    width: 91.66666667%;
  }

  .medium-push-11 {
    position: relative;
    left: 91.66666667%;
  }

  .medium-pull-11 {
    position: relative;
    left: -91.66666667%;
  }

  .medium-offset-10 {
    margin-left: 83.33333333%;
  }

  .medium-12 {
    width: 100%;
  }

  .medium-offset-11 {
    margin-left: 91.66666667%;
  }

  .medium-up-1 > .column,
  .medium-up-1 > .columns {
    float: left;
    width: 100%;
  }

  .medium-up-1 > .column:nth-of-type(1n),
  .medium-up-1 > .columns:nth-of-type(1n) {
    clear: none;
  }

  .medium-up-1 > .column:nth-of-type(1n+1),
  .medium-up-1 > .columns:nth-of-type(1n+1) {
    clear: both;
  }

  .medium-up-1 > .column:last-child,
  .medium-up-1 > .columns:last-child {
    float: left;
  }

  .medium-up-2 > .column,
  .medium-up-2 > .columns {
    float: left;
    width: 50%;
  }

  .medium-up-2 > .column:nth-of-type(1n),
  .medium-up-2 > .columns:nth-of-type(1n) {
    clear: none;
  }

  .medium-up-2 > .column:nth-of-type(2n+1),
  .medium-up-2 > .columns:nth-of-type(2n+1) {
    clear: both;
  }

  .medium-up-2 > .column:last-child,
  .medium-up-2 > .columns:last-child {
    float: left;
  }

  .medium-up-3 > .column,
  .medium-up-3 > .columns {
    float: left;
    width: 33.33333333%;
  }

  .medium-up-3 > .column:nth-of-type(1n),
  .medium-up-3 > .columns:nth-of-type(1n) {
    clear: none;
  }

  .medium-up-3 > .column:nth-of-type(3n+1),
  .medium-up-3 > .columns:nth-of-type(3n+1) {
    clear: both;
  }

  .medium-up-3 > .column:last-child,
  .medium-up-3 > .columns:last-child {
    float: left;
  }

  .medium-up-4 > .column,
  .medium-up-4 > .columns {
    float: left;
    width: 25%;
  }

  .medium-up-4 > .column:nth-of-type(1n),
  .medium-up-4 > .columns:nth-of-type(1n) {
    clear: none;
  }

  .medium-up-4 > .column:nth-of-type(4n+1),
  .medium-up-4 > .columns:nth-of-type(4n+1) {
    clear: both;
  }

  .medium-up-4 > .column:last-child,
  .medium-up-4 > .columns:last-child {
    float: left;
  }

  .medium-up-5 > .column,
  .medium-up-5 > .columns {
    float: left;
    width: 20%;
  }

  .medium-up-5 > .column:nth-of-type(1n),
  .medium-up-5 > .columns:nth-of-type(1n) {
    clear: none;
  }

  .medium-up-5 > .column:nth-of-type(5n+1),
  .medium-up-5 > .columns:nth-of-type(5n+1) {
    clear: both;
  }

  .medium-up-5 > .column:last-child,
  .medium-up-5 > .columns:last-child {
    float: left;
  }

  .medium-up-6 > .column,
  .medium-up-6 > .columns {
    float: left;
    width: 16.66666667%;
  }

  .medium-up-6 > .column:nth-of-type(1n),
  .medium-up-6 > .columns:nth-of-type(1n) {
    clear: none;
  }

  .medium-up-6 > .column:nth-of-type(6n+1),
  .medium-up-6 > .columns:nth-of-type(6n+1) {
    clear: both;
  }

  .medium-up-6 > .column:last-child,
  .medium-up-6 > .columns:last-child {
    float: left;
  }

  .medium-up-7 > .column,
  .medium-up-7 > .columns {
    float: left;
    width: 14.28571429%;
  }

  .medium-up-7 > .column:nth-of-type(1n),
  .medium-up-7 > .columns:nth-of-type(1n) {
    clear: none;
  }

  .medium-up-7 > .column:nth-of-type(7n+1),
  .medium-up-7 > .columns:nth-of-type(7n+1) {
    clear: both;
  }

  .medium-up-7 > .column:last-child,
  .medium-up-7 > .columns:last-child {
    float: left;
  }

  .medium-up-8 > .column,
  .medium-up-8 > .columns {
    float: left;
    width: 12.5%;
  }

  .medium-up-8 > .column:nth-of-type(1n),
  .medium-up-8 > .columns:nth-of-type(1n) {
    clear: none;
  }

  .medium-up-8 > .column:nth-of-type(8n+1),
  .medium-up-8 > .columns:nth-of-type(8n+1) {
    clear: both;
  }

  .medium-up-8 > .column:last-child,
  .medium-up-8 > .columns:last-child {
    float: left;
  }

  .medium-collapse > .column,
  .medium-collapse > .columns {
    padding-right: 0;
    padding-left: 0;
  }

  .medium-collapse .row {
    margin-right: 0;
    margin-left: 0;
  }

  .expanded.row .medium-collapse.row {
    margin-right: 0;
    margin-left: 0;
  }

  .medium-uncollapse > .column,
  .medium-uncollapse > .columns {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }

  .medium-centered {
    margin-right: auto;
    margin-left: auto;
  }

  .medium-centered,
  .medium-centered:last-child:not(:first-child) {
    float: none;
    clear: both;
  }

  .medium-uncentered,
  .medium-push-0,
  .medium-pull-0 {
    position: static;
    float: left;
    margin-right: 0;
    margin-left: 0;
  }
}

@media print, screen and (min-width: 64em) {
  .large-1 {
    width: 8.33333333%;
  }

  .large-push-1 {
    position: relative;
    left: 8.33333333%;
  }

  .large-pull-1 {
    position: relative;
    left: -8.33333333%;
  }

  .large-offset-0 {
    margin-left: 0%;
  }

  .large-2 {
    width: 16.66666667%;
  }

  .large-push-2 {
    position: relative;
    left: 16.66666667%;
  }

  .large-pull-2 {
    position: relative;
    left: -16.66666667%;
  }

  .large-offset-1 {
    margin-left: 8.33333333%;
  }

  .large-3 {
    width: 25%;
  }

  .large-push-3 {
    position: relative;
    left: 25%;
  }

  .large-pull-3 {
    position: relative;
    left: -25%;
  }

  .large-offset-2 {
    margin-left: 16.66666667%;
  }

  .large-4 {
    width: 33.33333333%;
  }

  .large-push-4 {
    position: relative;
    left: 33.33333333%;
  }

  .large-pull-4 {
    position: relative;
    left: -33.33333333%;
  }

  .large-offset-3 {
    margin-left: 25%;
  }

  .large-5 {
    width: 41.66666667%;
  }

  .large-push-5 {
    position: relative;
    left: 41.66666667%;
  }

  .large-pull-5 {
    position: relative;
    left: -41.66666667%;
  }

  .large-offset-4 {
    margin-left: 33.33333333%;
  }

  .large-6 {
    width: 50%;
  }

  .large-push-6 {
    position: relative;
    left: 50%;
  }

  .large-pull-6 {
    position: relative;
    left: -50%;
  }

  .large-offset-5 {
    margin-left: 41.66666667%;
  }

  .large-7 {
    width: 58.33333333%;
  }

  .large-push-7 {
    position: relative;
    left: 58.33333333%;
  }

  .large-pull-7 {
    position: relative;
    left: -58.33333333%;
  }

  .large-offset-6 {
    margin-left: 50%;
  }

  .large-8,
  body.edit .inner__content__block {
    width: 66.66666667%;
  }

  .large-push-8 {
    position: relative;
    left: 66.66666667%;
  }

  .large-pull-8 {
    position: relative;
    left: -66.66666667%;
  }

  .large-offset-7 {
    margin-left: 58.33333333%;
  }

  .large-9 {
    width: 75%;
  }

  .large-push-9 {
    position: relative;
    left: 75%;
  }

  .large-pull-9 {
    position: relative;
    left: -75%;
  }

  .large-offset-8 {
    margin-left: 66.66666667%;
  }

  .large-10 {
    width: 83.33333333%;
  }

  .large-push-10 {
    position: relative;
    left: 83.33333333%;
  }

  .large-pull-10 {
    position: relative;
    left: -83.33333333%;
  }

  .large-offset-9 {
    margin-left: 75%;
  }

  .large-11 {
    width: 91.66666667%;
  }

  .large-push-11 {
    position: relative;
    left: 91.66666667%;
  }

  .large-pull-11 {
    position: relative;
    left: -91.66666667%;
  }

  .large-offset-10 {
    margin-left: 83.33333333%;
  }

  .large-12 {
    width: 100%;
  }

  .large-offset-11 {
    margin-left: 91.66666667%;
  }

  .large-up-1 > .column,
  .large-up-1 > .columns {
    float: left;
    width: 100%;
  }

  .large-up-1 > .column:nth-of-type(1n),
  .large-up-1 > .columns:nth-of-type(1n) {
    clear: none;
  }

  .large-up-1 > .column:nth-of-type(1n+1),
  .large-up-1 > .columns:nth-of-type(1n+1) {
    clear: both;
  }

  .large-up-1 > .column:last-child,
  .large-up-1 > .columns:last-child {
    float: left;
  }

  .large-up-2 > .column,
  .large-up-2 > .columns {
    float: left;
    width: 50%;
  }

  .large-up-2 > .column:nth-of-type(1n),
  .large-up-2 > .columns:nth-of-type(1n) {
    clear: none;
  }

  .large-up-2 > .column:nth-of-type(2n+1),
  .large-up-2 > .columns:nth-of-type(2n+1) {
    clear: both;
  }

  .large-up-2 > .column:last-child,
  .large-up-2 > .columns:last-child {
    float: left;
  }

  .large-up-3 > .column,
  .large-up-3 > .columns {
    float: left;
    width: 33.33333333%;
  }

  .large-up-3 > .column:nth-of-type(1n),
  .large-up-3 > .columns:nth-of-type(1n) {
    clear: none;
  }

  .large-up-3 > .column:nth-of-type(3n+1),
  .large-up-3 > .columns:nth-of-type(3n+1) {
    clear: both;
  }

  .large-up-3 > .column:last-child,
  .large-up-3 > .columns:last-child {
    float: left;
  }

  .large-up-4 > .column,
  .large-up-4 > .columns {
    float: left;
    width: 25%;
  }

  .large-up-4 > .column:nth-of-type(1n),
  .large-up-4 > .columns:nth-of-type(1n) {
    clear: none;
  }

  .large-up-4 > .column:nth-of-type(4n+1),
  .large-up-4 > .columns:nth-of-type(4n+1) {
    clear: both;
  }

  .large-up-4 > .column:last-child,
  .large-up-4 > .columns:last-child {
    float: left;
  }

  .large-up-5 > .column,
  .large-up-5 > .columns {
    float: left;
    width: 20%;
  }

  .large-up-5 > .column:nth-of-type(1n),
  .large-up-5 > .columns:nth-of-type(1n) {
    clear: none;
  }

  .large-up-5 > .column:nth-of-type(5n+1),
  .large-up-5 > .columns:nth-of-type(5n+1) {
    clear: both;
  }

  .large-up-5 > .column:last-child,
  .large-up-5 > .columns:last-child {
    float: left;
  }

  .large-up-6 > .column,
  .large-up-6 > .columns {
    float: left;
    width: 16.66666667%;
  }

  .large-up-6 > .column:nth-of-type(1n),
  .large-up-6 > .columns:nth-of-type(1n) {
    clear: none;
  }

  .large-up-6 > .column:nth-of-type(6n+1),
  .large-up-6 > .columns:nth-of-type(6n+1) {
    clear: both;
  }

  .large-up-6 > .column:last-child,
  .large-up-6 > .columns:last-child {
    float: left;
  }

  .large-up-7 > .column,
  .large-up-7 > .columns {
    float: left;
    width: 14.28571429%;
  }

  .large-up-7 > .column:nth-of-type(1n),
  .large-up-7 > .columns:nth-of-type(1n) {
    clear: none;
  }

  .large-up-7 > .column:nth-of-type(7n+1),
  .large-up-7 > .columns:nth-of-type(7n+1) {
    clear: both;
  }

  .large-up-7 > .column:last-child,
  .large-up-7 > .columns:last-child {
    float: left;
  }

  .large-up-8 > .column,
  .large-up-8 > .columns {
    float: left;
    width: 12.5%;
  }

  .large-up-8 > .column:nth-of-type(1n),
  .large-up-8 > .columns:nth-of-type(1n) {
    clear: none;
  }

  .large-up-8 > .column:nth-of-type(8n+1),
  .large-up-8 > .columns:nth-of-type(8n+1) {
    clear: both;
  }

  .large-up-8 > .column:last-child,
  .large-up-8 > .columns:last-child {
    float: left;
  }

  .large-collapse > .column,
  .large-collapse > .columns {
    padding-right: 0;
    padding-left: 0;
  }

  .large-collapse .row {
    margin-right: 0;
    margin-left: 0;
  }

  .expanded.row .large-collapse.row {
    margin-right: 0;
    margin-left: 0;
  }

  .large-uncollapse > .column,
  .large-uncollapse > .columns {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }

  .large-centered {
    margin-right: auto;
    margin-left: auto;
  }

  .large-centered,
  .large-centered:last-child:not(:first-child) {
    float: none;
    clear: both;
  }

  .large-uncentered,
  .large-push-0,
  .large-pull-0 {
    position: static;
    float: left;
    margin-right: 0;
    margin-left: 0;
  }
}

.column-block {
  margin-bottom: 1.25rem;
}

.column-block > :last-child {
  margin-bottom: 0;
}

@media print, screen and (min-width: 40em) {
  .column-block {
    margin-bottom: 1.875rem;
  }

  .column-block > :last-child {
    margin-bottom: 0;
  }
}

.row {
  max-width: 75rem;
  margin-right: auto;
  margin-left: auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-flow: row wrap;
          flex-flow: row wrap;
}

.row .row {
  margin-right: -0.625rem;
  margin-left: -0.625rem;
}

@media print, screen and (min-width: 40em) {
  .row .row {
    margin-right: -0.9375rem;
    margin-left: -0.9375rem;
  }
}

@media print, screen and (min-width: 64em) {
  .row .row {
    margin-right: -0.9375rem;
    margin-left: -0.9375rem;
  }
}

.row .row.collapse {
  margin-right: 0;
  margin-left: 0;
}

.row.expanded {
  max-width: none;
}

.row.expanded .row {
  margin-right: auto;
  margin-left: auto;
}

.row:not(.expanded) .row {
  max-width: none;
}

.row.collapse > .column,
.row.collapse > .columns {
  padding-right: 0;
  padding-left: 0;
}

.row.is-collapse-child,
.row.collapse > .column > .row,
.row.collapse > .columns > .row {
  margin-right: 0;
  margin-left: 0;
}

.column,
.columns {
  -webkit-box-flex: 1;
      -ms-flex: 1 1 0px;
          flex: 1 1 0px;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
  min-width: 0;
}

@media print, screen and (min-width: 40em) {
  .column,
  .columns {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

.column.row.row,
.row.row.columns {
  float: none;
  display: block;
}

.row .column.row.row,
.row .row.row.columns {
  margin-right: 0;
  margin-left: 0;
  padding-right: 0;
  padding-left: 0;
}

.small-1 {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 8.33333333%;
          flex: 0 0 8.33333333%;
  max-width: 8.33333333%;
}

.small-offset-0 {
  margin-left: 0%;
}

.small-2 {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 16.66666667%;
          flex: 0 0 16.66666667%;
  max-width: 16.66666667%;
}

.small-offset-1 {
  margin-left: 8.33333333%;
}

.small-3 {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 25%;
          flex: 0 0 25%;
  max-width: 25%;
}

.small-offset-2 {
  margin-left: 16.66666667%;
}

.small-4 {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 33.33333333%;
          flex: 0 0 33.33333333%;
  max-width: 33.33333333%;
}

.small-offset-3 {
  margin-left: 25%;
}

.small-5 {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 41.66666667%;
          flex: 0 0 41.66666667%;
  max-width: 41.66666667%;
}

.small-offset-4 {
  margin-left: 33.33333333%;
}

.small-6 {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 50%;
          flex: 0 0 50%;
  max-width: 50%;
}

.small-offset-5 {
  margin-left: 41.66666667%;
}

.small-7 {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 58.33333333%;
          flex: 0 0 58.33333333%;
  max-width: 58.33333333%;
}

.small-offset-6 {
  margin-left: 50%;
}

.small-8 {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 66.66666667%;
          flex: 0 0 66.66666667%;
  max-width: 66.66666667%;
}

.small-offset-7 {
  margin-left: 58.33333333%;
}

.small-9 {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 75%;
          flex: 0 0 75%;
  max-width: 75%;
}

.small-offset-8 {
  margin-left: 66.66666667%;
}

.small-10 {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 83.33333333%;
          flex: 0 0 83.33333333%;
  max-width: 83.33333333%;
}

.small-offset-9 {
  margin-left: 75%;
}

.small-11 {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 91.66666667%;
          flex: 0 0 91.66666667%;
  max-width: 91.66666667%;
}

.small-offset-10 {
  margin-left: 83.33333333%;
}

.small-12 {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 100%;
          flex: 0 0 100%;
  max-width: 100%;
}

.small-offset-11 {
  margin-left: 91.66666667%;
}

.small-up-1 {
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}

.small-up-1 > .column,
.small-up-1 > .columns {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 100%;
          flex: 0 0 100%;
  max-width: 100%;
}

.small-up-2 {
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}

.small-up-2 > .column,
.small-up-2 > .columns {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 50%;
          flex: 0 0 50%;
  max-width: 50%;
}

.small-up-3 {
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}

.small-up-3 > .column,
.small-up-3 > .columns {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 33.33333333%;
          flex: 0 0 33.33333333%;
  max-width: 33.33333333%;
}

.small-up-4 {
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}

.small-up-4 > .column,
.small-up-4 > .columns {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 25%;
          flex: 0 0 25%;
  max-width: 25%;
}

.small-up-5 {
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}

.small-up-5 > .column,
.small-up-5 > .columns {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 20%;
          flex: 0 0 20%;
  max-width: 20%;
}

.small-up-6 {
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}

.small-up-6 > .column,
.small-up-6 > .columns {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 16.66666667%;
          flex: 0 0 16.66666667%;
  max-width: 16.66666667%;
}

.small-up-7 {
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}

.small-up-7 > .column,
.small-up-7 > .columns {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 14.28571429%;
          flex: 0 0 14.28571429%;
  max-width: 14.28571429%;
}

.small-up-8 {
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}

.small-up-8 > .column,
.small-up-8 > .columns {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 12.5%;
          flex: 0 0 12.5%;
  max-width: 12.5%;
}

.small-collapse > .column,
.small-collapse > .columns {
  padding-right: 0;
  padding-left: 0;
}

.small-uncollapse > .column,
.small-uncollapse > .columns {
  padding-right: 0.625rem;
  padding-left: 0.625rem;
}

@media print, screen and (min-width: 40em) {
  .medium-1 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 8.33333333%;
            flex: 0 0 8.33333333%;
    max-width: 8.33333333%;
  }

  .medium-offset-0 {
    margin-left: 0%;
  }

  .medium-2 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 16.66666667%;
            flex: 0 0 16.66666667%;
    max-width: 16.66666667%;
  }

  .medium-offset-1 {
    margin-left: 8.33333333%;
  }

  .medium-3 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 25%;
            flex: 0 0 25%;
    max-width: 25%;
  }

  .medium-offset-2 {
    margin-left: 16.66666667%;
  }

  .medium-4 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 33.33333333%;
            flex: 0 0 33.33333333%;
    max-width: 33.33333333%;
  }

  .medium-offset-3 {
    margin-left: 25%;
  }

  .medium-5 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 41.66666667%;
            flex: 0 0 41.66666667%;
    max-width: 41.66666667%;
  }

  .medium-offset-4 {
    margin-left: 33.33333333%;
  }

  .medium-6 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 50%;
            flex: 0 0 50%;
    max-width: 50%;
  }

  .medium-offset-5 {
    margin-left: 41.66666667%;
  }

  .medium-7 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 58.33333333%;
            flex: 0 0 58.33333333%;
    max-width: 58.33333333%;
  }

  .medium-offset-6 {
    margin-left: 50%;
  }

  .medium-8 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 66.66666667%;
            flex: 0 0 66.66666667%;
    max-width: 66.66666667%;
  }

  .medium-offset-7 {
    margin-left: 58.33333333%;
  }

  .medium-9 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 75%;
            flex: 0 0 75%;
    max-width: 75%;
  }

  .medium-offset-8 {
    margin-left: 66.66666667%;
  }

  .medium-10 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 83.33333333%;
            flex: 0 0 83.33333333%;
    max-width: 83.33333333%;
  }

  .medium-offset-9 {
    margin-left: 75%;
  }

  .medium-11 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 91.66666667%;
            flex: 0 0 91.66666667%;
    max-width: 91.66666667%;
  }

  .medium-offset-10 {
    margin-left: 83.33333333%;
  }

  .medium-12 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 100%;
            flex: 0 0 100%;
    max-width: 100%;
  }

  .medium-offset-11 {
    margin-left: 91.66666667%;
  }

  .medium-up-1 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }

  .medium-up-1 > .column,
  .medium-up-1 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 100%;
            flex: 0 0 100%;
    max-width: 100%;
  }

  .medium-up-2 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }

  .medium-up-2 > .column,
  .medium-up-2 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 50%;
            flex: 0 0 50%;
    max-width: 50%;
  }

  .medium-up-3 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }

  .medium-up-3 > .column,
  .medium-up-3 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 33.33333333%;
            flex: 0 0 33.33333333%;
    max-width: 33.33333333%;
  }

  .medium-up-4 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }

  .medium-up-4 > .column,
  .medium-up-4 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 25%;
            flex: 0 0 25%;
    max-width: 25%;
  }

  .medium-up-5 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }

  .medium-up-5 > .column,
  .medium-up-5 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 20%;
            flex: 0 0 20%;
    max-width: 20%;
  }

  .medium-up-6 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }

  .medium-up-6 > .column,
  .medium-up-6 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 16.66666667%;
            flex: 0 0 16.66666667%;
    max-width: 16.66666667%;
  }

  .medium-up-7 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }

  .medium-up-7 > .column,
  .medium-up-7 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 14.28571429%;
            flex: 0 0 14.28571429%;
    max-width: 14.28571429%;
  }

  .medium-up-8 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }

  .medium-up-8 > .column,
  .medium-up-8 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 12.5%;
            flex: 0 0 12.5%;
    max-width: 12.5%;
  }
}

@media print, screen and (min-width: 40em) and (min-width: 40em) {
  .medium-expand {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 0px;
            flex: 1 1 0px;
  }
}

.row.medium-unstack > .column,
.row.medium-unstack > .columns {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 100%;
          flex: 0 0 100%;
}

@media print, screen and (min-width: 40em) {
  .row.medium-unstack > .column,
  .row.medium-unstack > .columns {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 0px;
            flex: 1 1 0px;
  }
}

@media print, screen and (min-width: 40em) {
  .medium-collapse > .column,
  .medium-collapse > .columns {
    padding-right: 0;
    padding-left: 0;
  }

  .medium-uncollapse > .column,
  .medium-uncollapse > .columns {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

@media print, screen and (min-width: 64em) {
  .large-1 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 8.33333333%;
            flex: 0 0 8.33333333%;
    max-width: 8.33333333%;
  }

  .large-offset-0 {
    margin-left: 0%;
  }

  .large-2 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 16.66666667%;
            flex: 0 0 16.66666667%;
    max-width: 16.66666667%;
  }

  .large-offset-1 {
    margin-left: 8.33333333%;
  }

  .large-3 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 25%;
            flex: 0 0 25%;
    max-width: 25%;
  }

  .large-offset-2 {
    margin-left: 16.66666667%;
  }

  .large-4 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 33.33333333%;
            flex: 0 0 33.33333333%;
    max-width: 33.33333333%;
  }

  .large-offset-3 {
    margin-left: 25%;
  }

  .large-5 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 41.66666667%;
            flex: 0 0 41.66666667%;
    max-width: 41.66666667%;
  }

  .large-offset-4 {
    margin-left: 33.33333333%;
  }

  .large-6 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 50%;
            flex: 0 0 50%;
    max-width: 50%;
  }

  .large-offset-5 {
    margin-left: 41.66666667%;
  }

  .large-7 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 58.33333333%;
            flex: 0 0 58.33333333%;
    max-width: 58.33333333%;
  }

  .large-offset-6 {
    margin-left: 50%;
  }

  .large-8,
  body.edit .inner__content__block {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 66.66666667%;
            flex: 0 0 66.66666667%;
    max-width: 66.66666667%;
  }

  .large-offset-7 {
    margin-left: 58.33333333%;
  }

  .large-9 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 75%;
            flex: 0 0 75%;
    max-width: 75%;
  }

  .large-offset-8 {
    margin-left: 66.66666667%;
  }

  .large-10 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 83.33333333%;
            flex: 0 0 83.33333333%;
    max-width: 83.33333333%;
  }

  .large-offset-9 {
    margin-left: 75%;
  }

  .large-11 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 91.66666667%;
            flex: 0 0 91.66666667%;
    max-width: 91.66666667%;
  }

  .large-offset-10 {
    margin-left: 83.33333333%;
  }

  .large-12 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 100%;
            flex: 0 0 100%;
    max-width: 100%;
  }

  .large-offset-11 {
    margin-left: 91.66666667%;
  }

  .large-up-1 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }

  .large-up-1 > .column,
  .large-up-1 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 100%;
            flex: 0 0 100%;
    max-width: 100%;
  }

  .large-up-2 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }

  .large-up-2 > .column,
  .large-up-2 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 50%;
            flex: 0 0 50%;
    max-width: 50%;
  }

  .large-up-3 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }

  .large-up-3 > .column,
  .large-up-3 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 33.33333333%;
            flex: 0 0 33.33333333%;
    max-width: 33.33333333%;
  }

  .large-up-4 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }

  .large-up-4 > .column,
  .large-up-4 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 25%;
            flex: 0 0 25%;
    max-width: 25%;
  }

  .large-up-5 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }

  .large-up-5 > .column,
  .large-up-5 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 20%;
            flex: 0 0 20%;
    max-width: 20%;
  }

  .large-up-6 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }

  .large-up-6 > .column,
  .large-up-6 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 16.66666667%;
            flex: 0 0 16.66666667%;
    max-width: 16.66666667%;
  }

  .large-up-7 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }

  .large-up-7 > .column,
  .large-up-7 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 14.28571429%;
            flex: 0 0 14.28571429%;
    max-width: 14.28571429%;
  }

  .large-up-8 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }

  .large-up-8 > .column,
  .large-up-8 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 12.5%;
            flex: 0 0 12.5%;
    max-width: 12.5%;
  }
}

@media print, screen and (min-width: 64em) and (min-width: 64em) {
  .large-expand {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 0px;
            flex: 1 1 0px;
  }
}

.row.large-unstack > .column,
.row.large-unstack > .columns {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 100%;
          flex: 0 0 100%;
}

@media print, screen and (min-width: 64em) {
  .row.large-unstack > .column,
  .row.large-unstack > .columns {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 0px;
            flex: 1 1 0px;
  }
}

@media print, screen and (min-width: 64em) {
  .large-collapse > .column,
  .large-collapse > .columns {
    padding-right: 0;
    padding-left: 0;
  }

  .large-uncollapse > .column,
  .large-uncollapse > .columns {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

.shrink {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  max-width: 100%;
}

.column-block {
  margin-bottom: 1.25rem;
}

.column-block > :last-child {
  margin-bottom: 0;
}

@media print, screen and (min-width: 40em) {
  .column-block {
    margin-bottom: 1.875rem;
  }

  .column-block > :last-child {
    margin-bottom: 0;
  }
}

.align-right {
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
}

.align-center,
#main__navigation ul li .link .icon {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

.align-justify {
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}

.align-spaced {
  -ms-flex-pack: distribute;
      justify-content: space-around;
}

.align-right.vertical.menu > li > a {
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
}

.align-center.vertical.menu > li > a,
#main__navigation ul li .link .vertical.menu.icon > li > a {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

.align-top {
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
}

.align-self-top {
  -ms-flex-item-align: start;
      align-self: flex-start;
}

.align-bottom {
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end;
}

.align-self-bottom {
  -ms-flex-item-align: end;
      align-self: flex-end;
}

.align-middle,
#main__navigation ul li .link,
.image-dropzone,
.gallery-dropzone {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

.align-self-middle {
  -ms-flex-item-align: center;
      -ms-grid-row-align: center;
      align-self: center;
}

.align-stretch {
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
}

.align-self-stretch {
  -ms-flex-item-align: stretch;
      -ms-grid-row-align: stretch;
      align-self: stretch;
}

.align-center-middle {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -ms-flex-line-pack: center;
      align-content: center;
}

.small-order-1 {
  -webkit-box-ordinal-group: 2;
      -ms-flex-order: 1;
          order: 1;
}

.small-order-2 {
  -webkit-box-ordinal-group: 3;
      -ms-flex-order: 2;
          order: 2;
}

.small-order-3 {
  -webkit-box-ordinal-group: 4;
      -ms-flex-order: 3;
          order: 3;
}

.small-order-4 {
  -webkit-box-ordinal-group: 5;
      -ms-flex-order: 4;
          order: 4;
}

.small-order-5 {
  -webkit-box-ordinal-group: 6;
      -ms-flex-order: 5;
          order: 5;
}

.small-order-6 {
  -webkit-box-ordinal-group: 7;
      -ms-flex-order: 6;
          order: 6;
}

@media print, screen and (min-width: 40em) {
  .medium-order-1 {
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1;
  }

  .medium-order-2 {
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2;
  }

  .medium-order-3 {
    -webkit-box-ordinal-group: 4;
        -ms-flex-order: 3;
            order: 3;
  }

  .medium-order-4 {
    -webkit-box-ordinal-group: 5;
        -ms-flex-order: 4;
            order: 4;
  }

  .medium-order-5 {
    -webkit-box-ordinal-group: 6;
        -ms-flex-order: 5;
            order: 5;
  }

  .medium-order-6 {
    -webkit-box-ordinal-group: 7;
        -ms-flex-order: 6;
            order: 6;
  }
}

@media print, screen and (min-width: 64em) {
  .large-order-1 {
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1;
  }

  .large-order-2 {
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2;
  }

  .large-order-3 {
    -webkit-box-ordinal-group: 4;
        -ms-flex-order: 3;
            order: 3;
  }

  .large-order-4 {
    -webkit-box-ordinal-group: 5;
        -ms-flex-order: 4;
            order: 4;
  }

  .large-order-5 {
    -webkit-box-ordinal-group: 6;
        -ms-flex-order: 5;
            order: 5;
  }

  .large-order-6 {
    -webkit-box-ordinal-group: 7;
        -ms-flex-order: 6;
            order: 6;
  }
}

.flex-container {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}

.flex-child-auto {
  -webkit-box-flex: 1;
      -ms-flex: 1 1 auto;
          flex: 1 1 auto;
}

.flex-child-grow {
  -webkit-box-flex: 1;
      -ms-flex: 1 0 auto;
          flex: 1 0 auto;
}

.flex-child-shrink {
  -webkit-box-flex: 0;
      -ms-flex: 0 1 auto;
          flex: 0 1 auto;
}

.flex-dir-row {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
}

.flex-dir-row-reverse {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: reverse;
      -ms-flex-direction: row-reverse;
          flex-direction: row-reverse;
}

.flex-dir-column {
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}

.flex-dir-column-reverse {
  -webkit-box-orient: vertical;
  -webkit-box-direction: reverse;
      -ms-flex-direction: column-reverse;
          flex-direction: column-reverse;
}

@media print, screen and (min-width: 40em) {
  .medium-flex-container {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
  }

  .medium-flex-child-auto {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 auto;
            flex: 1 1 auto;
  }

  .medium-flex-child-grow {
    -webkit-box-flex: 1;
        -ms-flex: 1 0 auto;
            flex: 1 0 auto;
  }

  .medium-flex-child-shrink {
    -webkit-box-flex: 0;
        -ms-flex: 0 1 auto;
            flex: 0 1 auto;
  }

  .medium-flex-dir-row {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
  }

  .medium-flex-dir-row-reverse {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse;
  }

  .medium-flex-dir-column {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }

  .medium-flex-dir-column-reverse {
    -webkit-box-orient: vertical;
    -webkit-box-direction: reverse;
        -ms-flex-direction: column-reverse;
            flex-direction: column-reverse;
  }
}

@media print, screen and (min-width: 64em) {
  .large-flex-container {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
  }

  .large-flex-child-auto {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 auto;
            flex: 1 1 auto;
  }

  .large-flex-child-grow {
    -webkit-box-flex: 1;
        -ms-flex: 1 0 auto;
            flex: 1 0 auto;
  }

  .large-flex-child-shrink {
    -webkit-box-flex: 0;
        -ms-flex: 0 1 auto;
            flex: 0 1 auto;
  }

  .large-flex-dir-row {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
  }

  .large-flex-dir-row-reverse {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse;
  }

  .large-flex-dir-column {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }

  .large-flex-dir-column-reverse {
    -webkit-box-orient: vertical;
    -webkit-box-direction: reverse;
        -ms-flex-direction: column-reverse;
            flex-direction: column-reverse;
  }
}

div,
dl,
dt,
dd,
ul,
ol,
li,
h1,
h2,
h3,
h4,
h5,
h6,
pre,
form,
p,
blockquote,
th,
td {
  margin: 0;
  padding: 0;
}

p {
  margin-bottom: 1rem;
  font-size: inherit;
  line-height: 1.6;
  text-rendering: optimizeLegibility;
}

em,
i {
  font-style: italic;
  line-height: inherit;
}

strong,
b {
  font-weight: bold;
  line-height: inherit;
}

small {
  font-size: 80%;
  line-height: inherit;
}

h1,
.h1,
h2,
.h2,
h3,
.h3,
h4,
.h4,
h5,
.h5,
h6,
.h6 {
  font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
  font-style: normal;
  font-weight: normal;
  color: inherit;
  text-rendering: optimizeLegibility;
}

h1 small,
.h1 small,
h2 small,
.h2 small,
h3 small,
.h3 small,
h4 small,
.h4 small,
h5 small,
.h5 small,
h6 small,
.h6 small {
  line-height: 0;
  color: #cacaca;
}

h1,
.h1 {
  font-size: 1.5rem;
  line-height: 1.4;
  margin-top: 0;
  margin-bottom: 0.5rem;
}

h2,
.h2 {
  font-size: 1.25rem;
  line-height: 1.4;
  margin-top: 0;
  margin-bottom: 0.5rem;
}

h3,
.h3 {
  font-size: 1.1875rem;
  line-height: 1.4;
  margin-top: 0;
  margin-bottom: 0.5rem;
}

h4,
.h4 {
  font-size: 1.125rem;
  line-height: 1.4;
  margin-top: 0;
  margin-bottom: 0.5rem;
}

h5,
.h5 {
  font-size: 1.0625rem;
  line-height: 1.4;
  margin-top: 0;
  margin-bottom: 0.5rem;
}

h6,
.h6 {
  font-size: 1rem;
  line-height: 1.4;
  margin-top: 0;
  margin-bottom: 0.5rem;
}

@media print, screen and (min-width: 40em) {
  h1,
  .h1 {
    font-size: 3rem;
  }

  h2,
  .h2 {
    font-size: 2.5rem;
  }

  h3,
  .h3 {
    font-size: 1.9375rem;
  }

  h4,
  .h4 {
    font-size: 1.5625rem;
  }

  h5,
  .h5 {
    font-size: 1.25rem;
  }

  h6,
  .h6 {
    font-size: 1rem;
  }
}

a {
  line-height: inherit;
  color: #1779ba;
  text-decoration: none;
  cursor: pointer;
}

a:hover,
a:focus {
  color: #1468a0;
}

a img {
  border: 0;
}

hr {
  clear: both;
  max-width: 75rem;
  height: 0;
  margin: 1.25rem auto;
  border-top: 0;
  border-right: 0;
  border-bottom: 1px solid #cacaca;
  border-left: 0;
}

ul,
ol,
dl {
  margin-bottom: 1rem;
  list-style-position: outside;
  line-height: 1.6;
}

li {
  font-size: inherit;
}

ul {
  margin-left: 1.25rem;
  list-style-type: disc;
}

ol {
  margin-left: 1.25rem;
}

ul ul,
ol ul,
ul ol,
ol ol {
  margin-left: 1.25rem;
  margin-bottom: 0;
}

dl {
  margin-bottom: 1rem;
}

dl dt {
  margin-bottom: 0.3rem;
  font-weight: bold;
}

blockquote {
  margin: 0 0 1rem;
  padding: 0.5625rem 1.25rem 0 1.1875rem;
  border-left: 1px solid #cacaca;
}

blockquote,
blockquote p {
  line-height: 1.6;
  color: #8a8a8a;
}

cite {
  display: block;
  font-size: 0.8125rem;
  color: #8a8a8a;
}

cite:before {
  content: "— ";
}

abbr,
abbr[title] {
  border-bottom: 1px dotted #0a0a0a;
  cursor: help;
  text-decoration: none;
}

figure {
  margin: 0;
}

code {
  padding: 0.125rem 0.3125rem 0.0625rem;
  border: 1px solid #cacaca;
  background-color: #e6e6e6;
  font-family: Consolas, "Liberation Mono", Courier, monospace;
  font-weight: normal;
  color: #0a0a0a;
}

kbd {
  margin: 0;
  padding: 0.125rem 0.25rem 0;
  background-color: #e6e6e6;
  font-family: Consolas, "Liberation Mono", Courier, monospace;
  color: #0a0a0a;
}

.subheader {
  margin-top: 0.2rem;
  margin-bottom: 0.5rem;
  font-weight: normal;
  line-height: 1.4;
  color: #8a8a8a;
}

.lead {
  font-size: 125%;
  line-height: 1.6;
}

.stat {
  font-size: 2.5rem;
  line-height: 1;
}

p + .stat {
  margin-top: -1rem;
}

ul.no-bullet,
ol.no-bullet {
  margin-left: 0;
  list-style: none;
}

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

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

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

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

@media print, screen and (min-width: 40em) {
  .medium-text-left {
    text-align: left;
  }

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

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

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

@media print, screen and (min-width: 64em) {
  .large-text-left {
    text-align: left;
  }

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

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

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

.show-for-print {
  display: none !important;
}

@media print {
  * {
    background: transparent !important;
    box-shadow: none !important;
    color: black !important;
    text-shadow: none !important;
  }

  .show-for-print {
    display: block !important;
  }

  .hide-for-print {
    display: none !important;
  }

  table.show-for-print {
    display: table !important;
  }

  thead.show-for-print {
    display: table-header-group !important;
  }

  tbody.show-for-print {
    display: table-row-group !important;
  }

  tr.show-for-print {
    display: table-row !important;
  }

  td.show-for-print {
    display: table-cell !important;
  }

  th.show-for-print {
    display: table-cell !important;
  }

  a,
  a:visited {
    text-decoration: underline;
  }

  a[href]:after {
    content: " (" attr(href) ")";
  }

  .ir a:after,
  a[href^='javascript:']:after,
  a[href^='#']:after {
    content: '';
  }

  abbr[title]:after {
    content: " (" attr(title) ")";
  }

  pre,
  blockquote {
    border: 1px solid #8a8a8a;
    page-break-inside: avoid;
  }

  thead {
    display: table-header-group;
  }

  tr,
  img {
    page-break-inside: avoid;
  }

  img {
    max-width: 100% !important;
  }

@page {
    margin: 0.5cm;
}

  p,
  h2,
  h3 {
    orphans: 3;
    widows: 3;
  }

  h2,
  h3 {
    page-break-after: avoid;
  }

  .print-break-inside {
    page-break-inside: auto;
  }
}

[type='text'],
[type='password'],
[type='date'],
[type='datetime'],
[type='datetime-local'],
[type='month'],
[type='week'],
[type='email'],
[type='number'],
[type='search'],
[type='tel'],
[type='time'],
[type='url'],
[type='color'],
textarea {
  display: block;
  box-sizing: border-box;
  width: 100%;
  height: 2.4375rem;
  margin: 0 0 1rem;
  padding: 0.5rem;
  border: 1px solid #cacaca;
  border-radius: 0;
  background-color: #fefefe;
  box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1);
  font-family: inherit;
  font-size: 1rem;
  font-weight: normal;
  line-height: 1.5;
  color: #0a0a0a;
  transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
}

[type='text']:focus,
[type='password']:focus,
[type='date']:focus,
[type='datetime']:focus,
[type='datetime-local']:focus,
[type='month']:focus,
[type='week']:focus,
[type='email']:focus,
[type='number']:focus,
[type='search']:focus,
[type='tel']:focus,
[type='time']:focus,
[type='url']:focus,
[type='color']:focus,
textarea:focus {
  outline: none;
  border: 1px solid #8a8a8a;
  background-color: #fefefe;
  box-shadow: 0 0 5px #cacaca;
  transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
}

textarea {
  max-width: 100%;
}

textarea[rows] {
  height: auto;
}

input::-webkit-input-placeholder,
textarea::-webkit-input-placeholder {
  color: #cacaca;
}

input:-ms-input-placeholder,
textarea:-ms-input-placeholder {
  color: #cacaca;
}

input::placeholder,
textarea::placeholder {
  color: #cacaca;
}

input:disabled,
input[readonly],
textarea:disabled,
textarea[readonly] {
  background-color: #e6e6e6;
  cursor: not-allowed;
}

[type='submit'],
[type='button'] {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  border-radius: 0;
}

input[type='search'] {
  box-sizing: border-box;
}

[type='file'],
[type='checkbox'],
[type='radio'] {
  margin: 0 0 1rem;
}

[type='checkbox'] + label,
[type='radio'] + label {
  display: inline-block;
  vertical-align: baseline;
  margin-left: 0.5rem;
  margin-right: 1rem;
  margin-bottom: 0;
}

[type='checkbox'] + label[for],
[type='radio'] + label[for] {
  cursor: pointer;
}

label > [type='checkbox'],
label > [type='radio'] {
  margin-right: 0.5rem;
}

[type='file'] {
  width: 100%;
}

label {
  display: block;
  margin: 0;
  font-size: 0.875rem;
  font-weight: normal;
  line-height: 1.8;
  color: #0a0a0a;
}

label.middle {
  margin: 0 0 1rem;
  padding: 0.5625rem 0;
}

.help-text {
  margin-top: -0.5rem;
  font-size: 0.8125rem;
  font-style: italic;
  color: #0a0a0a;
}

.input-group {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  width: 100%;
  margin-bottom: 1rem;
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
}

.input-group > :first-child {
  border-radius: 0 0 0 0;
}

.input-group > :last-child > * {
  border-radius: 0 0 0 0;
}

.input-group-label,
.input-group-field,
.input-group-button,
.input-group-button a,
.input-group-button input,
.input-group-button button,
.input-group-button label {
  margin: 0;
  white-space: nowrap;
}

.input-group-label {
  padding: 0 1rem;
  border: 1px solid #cacaca;
  background: #e6e6e6;
  color: #0a0a0a;
  text-align: center;
  white-space: nowrap;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

.input-group-label:first-child {
  border-right: 0;
}

.input-group-label:last-child {
  border-left: 0;
}

.input-group-field {
  border-radius: 0;
  -webkit-box-flex: 1;
      -ms-flex: 1 1 0px;
          flex: 1 1 0px;
  height: auto;
  min-width: 0;
}

.input-group-button {
  padding-top: 0;
  padding-bottom: 0;
  text-align: center;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
}

.input-group-button a,
.input-group-button input,
.input-group-button button,
.input-group-button label {
  height: auto;
  -ms-flex-item-align: stretch;
      -ms-grid-row-align: stretch;
      align-self: stretch;
  padding-top: 0;
  padding-bottom: 0;
  font-size: 1rem;
}

fieldset {
  margin: 0;
  padding: 0;
  border: 0;
}

legend {
  max-width: 100%;
  margin-bottom: 0.5rem;
}

.fieldset {
  margin: 1.125rem 0;
  padding: 1.25rem;
  border: 1px solid #cacaca;
}

.fieldset legend {
  margin: 0;
  margin-left: -0.1875rem;
  padding: 0 0.1875rem;
}

select {
  height: 2.4375rem;
  margin: 0 0 1rem;
  padding: 0.5rem;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  border: 1px solid #cacaca;
  border-radius: 0;
  background-color: #fefefe;
  font-family: inherit;
  font-size: 1rem;
  font-weight: normal;
  line-height: 1.5;
  color: #0a0a0a;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' width='32' height='24' viewBox='0 0 32 24'><polygon points='0,0 32,0 16,24' style='fill: rgb%28138, 138, 138%29'></polygon></svg>");
  background-origin: content-box;
  background-position: right -1rem center;
  background-repeat: no-repeat;
  background-size: 9px 6px;
  padding-right: 1.5rem;
  transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
}

@media screen and (min-width: 0\0) {
  select {
    background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg==");
  }
}

select:focus {
  outline: none;
  border: 1px solid #8a8a8a;
  background-color: #fefefe;
  box-shadow: 0 0 5px #cacaca;
  transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
}

select:disabled {
  background-color: #e6e6e6;
  cursor: not-allowed;
}

select::-ms-expand {
  display: none;
}

select[multiple] {
  height: auto;
  background-image: none;
}

.is-invalid-input:not(:focus) {
  border-color: #cc4b37;
  background-color: #f9ecea;
}

.is-invalid-input:not(:focus)::-webkit-input-placeholder {
  color: #cc4b37;
}

.is-invalid-input:not(:focus):-ms-input-placeholder {
  color: #cc4b37;
}

.is-invalid-input:not(:focus)::placeholder {
  color: #cc4b37;
}

.is-invalid-label {
  color: #cc4b37;
}

.form-error {
  display: none;
  margin-top: -0.5rem;
  margin-bottom: 1rem;
  font-size: 0.75rem;
  font-weight: bold;
  color: #cc4b37;
}

.form-error.is-visible {
  display: block;
}

.button {
  display: inline-block;
  vertical-align: middle;
  margin: 0 0 1rem 0;
  font-family: inherit;
  padding: 0.85em 1em;
  -webkit-appearance: none;
  border: 1px solid transparent;
  border-radius: 0;
  transition: background-color 0.25s ease-out, color 0.25s ease-out;
  font-size: 0.9rem;
  line-height: 1;
  text-align: center;
  cursor: pointer;
  background-color: #1779ba;
  color: #fefefe;
}

[data-whatinput='mouse'] .button {
  outline: 0;
}

.button:hover,
.button:focus {
  background-color: #14679e;
  color: #fefefe;
}

.button.tiny {
  font-size: 0.6rem;
}

.button.small {
  font-size: 0.75rem;
}

.button.large {
  font-size: 1.25rem;
}

.button.expanded {
  display: block;
  width: 100%;
  margin-right: 0;
  margin-left: 0;
}

.button.primary {
  background-color: #1779ba;
  color: #fefefe;
}

.button.primary:hover,
.button.primary:focus {
  background-color: #126195;
  color: #fefefe;
}

.button.secondary {
  background-color: #767676;
  color: #fefefe;
}

.button.secondary:hover,
.button.secondary:focus {
  background-color: #5e5e5e;
  color: #fefefe;
}

.button.success {
  background-color: #3adb76;
  color: #0a0a0a;
}

.button.success:hover,
.button.success:focus {
  background-color: #22bb5b;
  color: #0a0a0a;
}

.button.warning {
  background-color: #ffae00;
  color: #0a0a0a;
}

.button.warning:hover,
.button.warning:focus {
  background-color: #cc8b00;
  color: #0a0a0a;
}

.button.alert {
  background-color: #cc4b37;
  color: #fefefe;
}

.button.alert:hover,
.button.alert:focus {
  background-color: #a53b2a;
  color: #fefefe;
}

.button.disabled,
.button[disabled] {
  opacity: 0.25;
  cursor: not-allowed;
}

.button.disabled,
.button.disabled:hover,
.button.disabled:focus,
.button[disabled],
.button[disabled]:hover,
.button[disabled]:focus {
  background-color: #1779ba;
  color: #fefefe;
}

.button.disabled.primary,
.button[disabled].primary {
  opacity: 0.25;
  cursor: not-allowed;
}

.button.disabled.primary,
.button.disabled.primary:hover,
.button.disabled.primary:focus,
.button[disabled].primary,
.button[disabled].primary:hover,
.button[disabled].primary:focus {
  background-color: #1779ba;
  color: #fefefe;
}

.button.disabled.secondary,
.button[disabled].secondary {
  opacity: 0.25;
  cursor: not-allowed;
}

.button.disabled.secondary,
.button.disabled.secondary:hover,
.button.disabled.secondary:focus,
.button[disabled].secondary,
.button[disabled].secondary:hover,
.button[disabled].secondary:focus {
  background-color: #767676;
  color: #fefefe;
}

.button.disabled.success,
.button[disabled].success {
  opacity: 0.25;
  cursor: not-allowed;
}

.button.disabled.success,
.button.disabled.success:hover,
.button.disabled.success:focus,
.button[disabled].success,
.button[disabled].success:hover,
.button[disabled].success:focus {
  background-color: #3adb76;
  color: #0a0a0a;
}

.button.disabled.warning,
.button[disabled].warning {
  opacity: 0.25;
  cursor: not-allowed;
}

.button.disabled.warning,
.button.disabled.warning:hover,
.button.disabled.warning:focus,
.button[disabled].warning,
.button[disabled].warning:hover,
.button[disabled].warning:focus {
  background-color: #ffae00;
  color: #0a0a0a;
}

.button.disabled.alert,
.button[disabled].alert {
  opacity: 0.25;
  cursor: not-allowed;
}

.button.disabled.alert,
.button.disabled.alert:hover,
.button.disabled.alert:focus,
.button[disabled].alert,
.button[disabled].alert:hover,
.button[disabled].alert:focus {
  background-color: #cc4b37;
  color: #fefefe;
}

.button.hollow {
  border: 1px solid #1779ba;
  color: #1779ba;
}

.button.hollow,
.button.hollow:hover,
.button.hollow:focus {
  background-color: transparent;
}

.button.hollow.disabled,
.button.hollow.disabled:hover,
.button.hollow.disabled:focus,
.button.hollow[disabled],
.button.hollow[disabled]:hover,
.button.hollow[disabled]:focus {
  background-color: transparent;
}

.button.hollow:hover,
.button.hollow:focus {
  border-color: #0c3d5d;
  color: #0c3d5d;
}

.button.hollow:hover.disabled,
.button.hollow:hover[disabled],
.button.hollow:focus.disabled,
.button.hollow:focus[disabled] {
  border: 1px solid #1779ba;
  color: #1779ba;
}

.button.hollow.primary {
  border: 1px solid #1779ba;
  color: #1779ba;
}

.button.hollow.primary:hover,
.button.hollow.primary:focus {
  border-color: #0c3d5d;
  color: #0c3d5d;
}

.button.hollow.primary:hover.disabled,
.button.hollow.primary:hover[disabled],
.button.hollow.primary:focus.disabled,
.button.hollow.primary:focus[disabled] {
  border: 1px solid #1779ba;
  color: #1779ba;
}

.button.hollow.secondary {
  border: 1px solid #767676;
  color: #767676;
}

.button.hollow.secondary:hover,
.button.hollow.secondary:focus {
  border-color: #3b3b3b;
  color: #3b3b3b;
}

.button.hollow.secondary:hover.disabled,
.button.hollow.secondary:hover[disabled],
.button.hollow.secondary:focus.disabled,
.button.hollow.secondary:focus[disabled] {
  border: 1px solid #767676;
  color: #767676;
}

.button.hollow.success {
  border: 1px solid #3adb76;
  color: #3adb76;
}

.button.hollow.success:hover,
.button.hollow.success:focus {
  border-color: #157539;
  color: #157539;
}

.button.hollow.success:hover.disabled,
.button.hollow.success:hover[disabled],
.button.hollow.success:focus.disabled,
.button.hollow.success:focus[disabled] {
  border: 1px solid #3adb76;
  color: #3adb76;
}

.button.hollow.warning {
  border: 1px solid #ffae00;
  color: #ffae00;
}

.button.hollow.warning:hover,
.button.hollow.warning:focus {
  border-color: #805700;
  color: #805700;
}

.button.hollow.warning:hover.disabled,
.button.hollow.warning:hover[disabled],
.button.hollow.warning:focus.disabled,
.button.hollow.warning:focus[disabled] {
  border: 1px solid #ffae00;
  color: #ffae00;
}

.button.hollow.alert {
  border: 1px solid #cc4b37;
  color: #cc4b37;
}

.button.hollow.alert:hover,
.button.hollow.alert:focus {
  border-color: #67251a;
  color: #67251a;
}

.button.hollow.alert:hover.disabled,
.button.hollow.alert:hover[disabled],
.button.hollow.alert:focus.disabled,
.button.hollow.alert:focus[disabled] {
  border: 1px solid #cc4b37;
  color: #cc4b37;
}

.button.clear {
  border: 1px solid #1779ba;
  color: #1779ba;
}

.button.clear,
.button.clear:hover,
.button.clear:focus {
  background-color: transparent;
}

.button.clear.disabled,
.button.clear.disabled:hover,
.button.clear.disabled:focus,
.button.clear[disabled],
.button.clear[disabled]:hover,
.button.clear[disabled]:focus {
  background-color: transparent;
}

.button.clear:hover,
.button.clear:focus {
  border-color: #0c3d5d;
  color: #0c3d5d;
}

.button.clear:hover.disabled,
.button.clear:hover[disabled],
.button.clear:focus.disabled,
.button.clear:focus[disabled] {
  border: 1px solid #1779ba;
  color: #1779ba;
}

.button.clear,
.button.clear.disabled,
.button.clear[disabled],
.button.clear:hover,
.button.clear:hover.disabled,
.button.clear:hover[disabled],
.button.clear:focus,
.button.clear:focus.disabled,
.button.clear:focus[disabled] {
  border-color: transparent;
}

.button.clear.primary {
  border: 1px solid #1779ba;
  color: #1779ba;
}

.button.clear.primary:hover,
.button.clear.primary:focus {
  border-color: #0c3d5d;
  color: #0c3d5d;
}

.button.clear.primary:hover.disabled,
.button.clear.primary:hover[disabled],
.button.clear.primary:focus.disabled,
.button.clear.primary:focus[disabled] {
  border: 1px solid #1779ba;
  color: #1779ba;
}

.button.clear.primary,
.button.clear.primary.disabled,
.button.clear.primary[disabled],
.button.clear.primary:hover,
.button.clear.primary:hover.disabled,
.button.clear.primary:hover[disabled],
.button.clear.primary:focus,
.button.clear.primary:focus.disabled,
.button.clear.primary:focus[disabled] {
  border-color: transparent;
}

.button.clear.secondary {
  border: 1px solid #767676;
  color: #767676;
}

.button.clear.secondary:hover,
.button.clear.secondary:focus {
  border-color: #3b3b3b;
  color: #3b3b3b;
}

.button.clear.secondary:hover.disabled,
.button.clear.secondary:hover[disabled],
.button.clear.secondary:focus.disabled,
.button.clear.secondary:focus[disabled] {
  border: 1px solid #767676;
  color: #767676;
}

.button.clear.secondary,
.button.clear.secondary.disabled,
.button.clear.secondary[disabled],
.button.clear.secondary:hover,
.button.clear.secondary:hover.disabled,
.button.clear.secondary:hover[disabled],
.button.clear.secondary:focus,
.button.clear.secondary:focus.disabled,
.button.clear.secondary:focus[disabled] {
  border-color: transparent;
}

.button.clear.success {
  border: 1px solid #3adb76;
  color: #3adb76;
}

.button.clear.success:hover,
.button.clear.success:focus {
  border-color: #157539;
  color: #157539;
}

.button.clear.success:hover.disabled,
.button.clear.success:hover[disabled],
.button.clear.success:focus.disabled,
.button.clear.success:focus[disabled] {
  border: 1px solid #3adb76;
  color: #3adb76;
}

.button.clear.success,
.button.clear.success.disabled,
.button.clear.success[disabled],
.button.clear.success:hover,
.button.clear.success:hover.disabled,
.button.clear.success:hover[disabled],
.button.clear.success:focus,
.button.clear.success:focus.disabled,
.button.clear.success:focus[disabled] {
  border-color: transparent;
}

.button.clear.warning {
  border: 1px solid #ffae00;
  color: #ffae00;
}

.button.clear.warning:hover,
.button.clear.warning:focus {
  border-color: #805700;
  color: #805700;
}

.button.clear.warning:hover.disabled,
.button.clear.warning:hover[disabled],
.button.clear.warning:focus.disabled,
.button.clear.warning:focus[disabled] {
  border: 1px solid #ffae00;
  color: #ffae00;
}

.button.clear.warning,
.button.clear.warning.disabled,
.button.clear.warning[disabled],
.button.clear.warning:hover,
.button.clear.warning:hover.disabled,
.button.clear.warning:hover[disabled],
.button.clear.warning:focus,
.button.clear.warning:focus.disabled,
.button.clear.warning:focus[disabled] {
  border-color: transparent;
}

.button.clear.alert {
  border: 1px solid #cc4b37;
  color: #cc4b37;
}

.button.clear.alert:hover,
.button.clear.alert:focus {
  border-color: #67251a;
  color: #67251a;
}

.button.clear.alert:hover.disabled,
.button.clear.alert:hover[disabled],
.button.clear.alert:focus.disabled,
.button.clear.alert:focus[disabled] {
  border: 1px solid #cc4b37;
  color: #cc4b37;
}

.button.clear.alert,
.button.clear.alert.disabled,
.button.clear.alert[disabled],
.button.clear.alert:hover,
.button.clear.alert:hover.disabled,
.button.clear.alert:hover[disabled],
.button.clear.alert:focus,
.button.clear.alert:focus.disabled,
.button.clear.alert:focus[disabled] {
  border-color: transparent;
}

.button.dropdown::after {
  display: block;
  width: 0;
  height: 0;
  border: inset 0.4em;
  content: '';
  border-bottom-width: 0;
  border-top-style: solid;
  border-color: #fefefe transparent transparent;
  position: relative;
  top: 0.4em;
  display: inline-block;
  float: right;
  margin-left: 1em;
}

.button.dropdown.hollow::after {
  border-top-color: #1779ba;
}

.button.dropdown.hollow.primary::after {
  border-top-color: #1779ba;
}

.button.dropdown.hollow.secondary::after {
  border-top-color: #767676;
}

.button.dropdown.hollow.success::after {
  border-top-color: #3adb76;
}

.button.dropdown.hollow.warning::after {
  border-top-color: #ffae00;
}

.button.dropdown.hollow.alert::after {
  border-top-color: #cc4b37;
}

.button.arrow-only::after {
  top: -0.1em;
  float: none;
  margin-left: 0;
}

a.button:hover,
a.button:focus {
  text-decoration: none;
}

.accordion {
  margin-left: 0;
  background: #fefefe;
  list-style-type: none;
}

.accordion[disabled] .accordion-title {
  cursor: not-allowed;
}

.accordion-item:first-child > :first-child {
  border-radius: 0 0 0 0;
}

.accordion-item:last-child > :last-child {
  border-radius: 0 0 0 0;
}

.accordion-title {
  position: relative;
  display: block;
  padding: 1.25rem 1rem;
  border: 1px solid #e6e6e6;
  border-bottom: 0;
  font-size: 0.75rem;
  line-height: 1;
  color: #1779ba;
}

:last-child:not(.is-active) > .accordion-title {
  border-bottom: 1px solid #e6e6e6;
  border-radius: 0 0 0 0;
}

.accordion-title:hover,
.accordion-title:focus {
  background-color: #e6e6e6;
}

.accordion-title::before {
  position: absolute;
  top: 50%;
  right: 1rem;
  margin-top: -0.5rem;
  content: '+';
}

.is-active > .accordion-title::before {
  content: '\2013';
}

.accordion-content {
  display: none;
  padding: 1rem;
  border: 1px solid #e6e6e6;
  border-bottom: 0;
  background-color: #fefefe;
  color: #0a0a0a;
}

:last-child > .accordion-content:last-child {
  border-bottom: 1px solid #e6e6e6;
}

.accordion-menu li {
  width: 100%;
}

.accordion-menu a {
  padding: 0.7rem 1rem;
}

.accordion-menu .is-accordion-submenu a {
  padding: 0.7rem 1rem;
}

.accordion-menu .nested.is-accordion-submenu {
  margin-right: 0;
  margin-left: 1rem;
}

.accordion-menu.align-right .nested.is-accordion-submenu {
  margin-right: 1rem;
  margin-left: 0;
}

.accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle) > a {
  position: relative;
}

.accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle) > a::after {
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  content: '';
  border-bottom-width: 0;
  border-top-style: solid;
  border-color: #1779ba transparent transparent;
  position: absolute;
  top: 50%;
  margin-top: -3px;
  right: 1rem;
}

.accordion-menu.align-left .is-accordion-submenu-parent > a::after {
  left: auto;
  right: 1rem;
}

.accordion-menu.align-right .is-accordion-submenu-parent > a::after {
  right: auto;
  left: 1rem;
}

.accordion-menu .is-accordion-submenu-parent[aria-expanded='true'] > a::after {
  -webkit-transform: rotate(180deg);
          transform: rotate(180deg);
  -webkit-transform-origin: 50% 50%;
          transform-origin: 50% 50%;
}

.is-accordion-submenu-parent {
  position: relative;
}

.has-submenu-toggle > a {
  margin-right: 40px;
}

.submenu-toggle {
  position: absolute;
  top: 0;
  right: 0;
  cursor: pointer;
  width: 40px;
  height: 40px;
}

.submenu-toggle::after {
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  content: '';
  border-bottom-width: 0;
  border-top-style: solid;
  border-color: #1779ba transparent transparent;
  top: 0;
  bottom: 0;
  margin: auto;
}

.submenu-toggle[aria-expanded='true']::after {
  -webkit-transform: scaleY(-1);
          transform: scaleY(-1);
  -webkit-transform-origin: 50% 50%;
          transform-origin: 50% 50%;
}

.submenu-toggle-text {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  -webkit-clip-path: inset(50%);
          clip-path: inset(50%);
  border: 0;
}

.badge {
  display: inline-block;
  min-width: 2.1em;
  padding: 0.3em;
  border-radius: 50%;
  font-size: 0.6rem;
  text-align: center;
  background: #1779ba;
  color: #fefefe;
}

.badge.primary {
  background: #1779ba;
  color: #fefefe;
}

.badge.secondary {
  background: #767676;
  color: #fefefe;
}

.badge.success {
  background: #3adb76;
  color: #0a0a0a;
}

.badge.warning {
  background: #ffae00;
  color: #0a0a0a;
}

.badge.alert {
  background: #cc4b37;
  color: #fefefe;
}

.breadcrumbs {
  margin: 0 0 1rem 0;
  list-style: none;
}

.breadcrumbs::before,
.breadcrumbs::after {
  display: table;
  content: ' ';
  -ms-flex-preferred-size: 0;
      flex-basis: 0;
  -webkit-box-ordinal-group: 2;
      -ms-flex-order: 1;
          order: 1;
}

.breadcrumbs::after {
  clear: both;
}

.breadcrumbs li {
  float: left;
  font-size: 0.6875rem;
  color: #0a0a0a;
  cursor: default;
  text-transform: uppercase;
}

.breadcrumbs li:not(:last-child)::after {
  position: relative;
  margin: 0 0.75rem;
  opacity: 1;
  content: "/";
  color: #cacaca;
}

.breadcrumbs a {
  color: #1779ba;
}

.breadcrumbs a:hover {
  text-decoration: underline;
}

.breadcrumbs .disabled {
  color: #cacaca;
  cursor: not-allowed;
}

.button-group {
  margin-bottom: 1rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: nowrap;
      flex-wrap: nowrap;
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
}

.button-group::before,
.button-group::after {
  display: table;
  content: ' ';
  -ms-flex-preferred-size: 0;
      flex-basis: 0;
  -webkit-box-ordinal-group: 2;
      -ms-flex-order: 1;
          order: 1;
}

.button-group::after {
  clear: both;
}

.button-group .button {
  margin: 0;
  margin-right: 1px;
  margin-bottom: 1px;
  font-size: 0.9rem;
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
}

.button-group .button:last-child {
  margin-right: 0;
}

.button-group.tiny .button {
  font-size: 0.6rem;
}

.button-group.small .button {
  font-size: 0.75rem;
}

.button-group.large .button {
  font-size: 1.25rem;
}

.button-group.expanded .button {
  -webkit-box-flex: 1;
      -ms-flex: 1 1 0px;
          flex: 1 1 0px;
}

.button-group.primary .button {
  background-color: #1779ba;
  color: #fefefe;
}

.button-group.primary .button:hover,
.button-group.primary .button:focus {
  background-color: #126195;
  color: #fefefe;
}

.button-group.secondary .button {
  background-color: #767676;
  color: #fefefe;
}

.button-group.secondary .button:hover,
.button-group.secondary .button:focus {
  background-color: #5e5e5e;
  color: #fefefe;
}

.button-group.success .button {
  background-color: #3adb76;
  color: #0a0a0a;
}

.button-group.success .button:hover,
.button-group.success .button:focus {
  background-color: #22bb5b;
  color: #0a0a0a;
}

.button-group.warning .button {
  background-color: #ffae00;
  color: #0a0a0a;
}

.button-group.warning .button:hover,
.button-group.warning .button:focus {
  background-color: #cc8b00;
  color: #0a0a0a;
}

.button-group.alert .button {
  background-color: #cc4b37;
  color: #fefefe;
}

.button-group.alert .button:hover,
.button-group.alert .button:focus {
  background-color: #a53b2a;
  color: #fefefe;
}

.button-group.stacked,
.button-group.stacked-for-small,
.button-group.stacked-for-medium {
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}

.button-group.stacked .button,
.button-group.stacked-for-small .button,
.button-group.stacked-for-medium .button {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 100%;
          flex: 0 0 100%;
}

.button-group.stacked .button:last-child,
.button-group.stacked-for-small .button:last-child,
.button-group.stacked-for-medium .button:last-child {
  margin-bottom: 0;
}

@media print, screen and (min-width: 40em) {
  .button-group.stacked-for-small .button {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 0px;
            flex: 1 1 0px;
    margin-bottom: 0;
  }
}

@media print, screen and (min-width: 64em) {
  .button-group.stacked-for-medium .button {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 0px;
            flex: 1 1 0px;
    margin-bottom: 0;
  }
}

@media screen and (max-width: 39.9375em) {
  .button-group.stacked-for-small.expanded {
    display: block;
  }

  .button-group.stacked-for-small.expanded .button {
    display: block;
    margin-right: 0;
  }
}

.callout {
  position: relative;
  margin: 0 0 1rem 0;
  padding: 1rem;
  border: 1px solid rgba(10, 10, 10, 0.25);
  border-radius: 0;
  background-color: white;
  color: #0a0a0a;
}

.callout > :first-child {
  margin-top: 0;
}

.callout > :last-child {
  margin-bottom: 0;
}

.callout.primary {
  background-color: #d7ecfa;
  color: #0a0a0a;
}

.callout.secondary {
  background-color: #eaeaea;
  color: #0a0a0a;
}

.callout.success {
  background-color: #e1faea;
  color: #0a0a0a;
}

.callout.warning {
  background-color: #fff3d9;
  color: #0a0a0a;
}

.callout.alert {
  background-color: #f7e4e1;
  color: #0a0a0a;
}

.callout.small {
  padding-top: 0.5rem;
  padding-right: 0.5rem;
  padding-bottom: 0.5rem;
  padding-left: 0.5rem;
}

.callout.large {
  padding-top: 3rem;
  padding-right: 3rem;
  padding-bottom: 3rem;
  padding-left: 3rem;
}

.card {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
  margin-bottom: 1rem;
  border: 1px solid #e6e6e6;
  border-radius: 0;
  background: #fefefe;
  box-shadow: none;
  overflow: hidden;
  color: #0a0a0a;
}

.card > :last-child {
  margin-bottom: 0;
}

.card-divider {
  -webkit-box-flex: 0;
      -ms-flex: 0 1 auto;
          flex: 0 1 auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  padding: 1rem;
  background: #e6e6e6;
}

.card-divider > :last-child {
  margin-bottom: 0;
}

.card-section {
  -webkit-box-flex: 1;
      -ms-flex: 1 0 auto;
          flex: 1 0 auto;
  padding: 1rem;
}

.card-section > :last-child {
  margin-bottom: 0;
}

.card-image {
  min-height: 1px;
}

.close-button {
  position: absolute;
  color: #8a8a8a;
  cursor: pointer;
}

[data-whatinput='mouse'] .close-button {
  outline: 0;
}

.close-button:hover,
.close-button:focus {
  color: #0a0a0a;
}

.close-button.small {
  right: 0.66rem;
  top: 0.33em;
  font-size: 1.5em;
  line-height: 1;
}

.close-button,
.close-button.medium {
  right: 1rem;
  top: 0.5rem;
  font-size: 2em;
  line-height: 1;
}

.menu {
  padding: 0;
  margin: 0;
  list-style: none;
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}

[data-whatinput='mouse'] .menu li {
  outline: 0;
}

.menu a,
.menu .button {
  line-height: 1;
  text-decoration: none;
  display: block;
  padding: 0.7rem 1rem;
}

.menu input,
.menu select,
.menu a,
.menu button {
  margin-bottom: 0;
}

.menu input {
  display: inline-block;
}

.menu,
.menu.horizontal {
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
}

.menu.vertical {
  -ms-flex-wrap: nowrap;
      flex-wrap: nowrap;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}

.menu.expanded li {
  -webkit-box-flex: 1;
      -ms-flex: 1 1 0px;
          flex: 1 1 0px;
}

.menu.simple {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

.menu.simple li + li {
  margin-left: 1rem;
}

.menu.simple a {
  padding: 0;
}

@media print, screen and (min-width: 40em) {
  .menu.medium-horizontal {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
  }

  .menu.medium-vertical {
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }

  .menu.medium-expanded li {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 0px;
            flex: 1 1 0px;
  }

  .menu.medium-simple li {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 0px;
            flex: 1 1 0px;
  }
}

@media print, screen and (min-width: 64em) {
  .menu.large-horizontal {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
  }

  .menu.large-vertical {
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }

  .menu.large-expanded li {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 0px;
            flex: 1 1 0px;
  }

  .menu.large-simple li {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 0px;
            flex: 1 1 0px;
  }
}

.menu.nested {
  margin-right: 0;
  margin-left: 1rem;
}

.menu.icons a {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}

.menu.icon-top a,
.menu.icon-right a,
.menu.icon-bottom a,
.menu.icon-left a {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}

.menu.icon-left li a {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-flow: row nowrap;
          flex-flow: row nowrap;
}

.menu.icon-left li a img,
.menu.icon-left li a i,
.menu.icon-left li a svg {
  margin-right: 0.25rem;
}

.menu.icon-right li a {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-flow: row nowrap;
          flex-flow: row nowrap;
}

.menu.icon-right li a img,
.menu.icon-right li a i,
.menu.icon-right li a svg {
  margin-left: 0.25rem;
}

.menu.icon-top li a {
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-flow: column nowrap;
          flex-flow: column nowrap;
}

.menu.icon-top li a img,
.menu.icon-top li a i,
.menu.icon-top li a svg {
  -ms-flex-item-align: stretch;
      -ms-grid-row-align: stretch;
      align-self: stretch;
  margin-bottom: 0.25rem;
  text-align: center;
}

.menu.icon-bottom li a {
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-flow: column nowrap;
          flex-flow: column nowrap;
}

.menu.icon-bottom li a img,
.menu.icon-bottom li a i,
.menu.icon-bottom li a svg {
  -ms-flex-item-align: stretch;
      -ms-grid-row-align: stretch;
      align-self: stretch;
  margin-bottom: 0.25rem;
  text-align: center;
}

.menu .is-active > a {
  background: #1779ba;
  color: #fefefe;
}

.menu .active > a {
  background: #1779ba;
  color: #fefefe;
}

.menu.align-left {
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
}

.menu.align-right li {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
}

.menu.align-right li .submenu li {
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
}

.menu.align-right.vertical li {
  display: block;
  text-align: right;
}

.menu.align-right.vertical li .submenu li {
  text-align: right;
}

.menu.align-right .nested {
  margin-right: 1rem;
  margin-left: 0;
}

.menu.align-center li,
#main__navigation ul li .link .menu.icon li {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

.menu.align-center li .submenu li,
#main__navigation ul li .link .menu.icon li .submenu li {
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
}

.menu .menu-text {
  padding: 0.7rem 1rem;
  font-weight: bold;
  line-height: 1;
  color: inherit;
}

.menu-centered > .menu {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

.menu-centered > .menu li {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

.menu-centered > .menu li .submenu li {
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
}

.no-js [data-responsive-menu] ul {
  display: none;
}

.menu-icon {
  position: relative;
  display: inline-block;
  vertical-align: middle;
  width: 20px;
  height: 16px;
  cursor: pointer;
}

.menu-icon::after {
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: 100%;
  height: 2px;
  background: #fefefe;
  box-shadow: 0 7px 0 #fefefe, 0 14px 0 #fefefe;
  content: '';
}

.menu-icon:hover::after {
  background: #cacaca;
  box-shadow: 0 7px 0 #cacaca, 0 14px 0 #cacaca;
}

.menu-icon.dark {
  position: relative;
  display: inline-block;
  vertical-align: middle;
  width: 20px;
  height: 16px;
  cursor: pointer;
}

.menu-icon.dark::after {
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: 100%;
  height: 2px;
  background: #0a0a0a;
  box-shadow: 0 7px 0 #0a0a0a, 0 14px 0 #0a0a0a;
  content: '';
}

.menu-icon.dark:hover::after {
  background: #8a8a8a;
  box-shadow: 0 7px 0 #8a8a8a, 0 14px 0 #8a8a8a;
}

.is-drilldown {
  position: relative;
  overflow: hidden;
}

.is-drilldown li {
  display: block;
}

.is-drilldown.animate-height {
  transition: height 0.5s;
}

.drilldown a {
  padding: 0.7rem 1rem;
  background: #fefefe;
}

.drilldown .is-drilldown-submenu {
  position: absolute;
  top: 0;
  left: 100%;
  z-index: -1;
  width: 100%;
  background: #fefefe;
  transition: -webkit-transform 0.15s linear;
  transition: transform 0.15s linear;
  transition: transform 0.15s linear, -webkit-transform 0.15s linear;
}

.drilldown .is-drilldown-submenu.is-active {
  z-index: 1;
  display: block;
  -webkit-transform: translateX(-100%);
          transform: translateX(-100%);
}

.drilldown .is-drilldown-submenu.is-closing {
  -webkit-transform: translateX(100%);
          transform: translateX(100%);
}

.drilldown .is-drilldown-submenu a {
  padding: 0.7rem 1rem;
}

.drilldown .nested.is-drilldown-submenu {
  margin-right: 0;
  margin-left: 0;
}

.drilldown .drilldown-submenu-cover-previous {
  min-height: 100%;
}

.drilldown .is-drilldown-submenu-parent > a {
  position: relative;
}

.drilldown .is-drilldown-submenu-parent > a::after {
  position: absolute;
  top: 50%;
  margin-top: -6px;
  right: 1rem;
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  content: '';
  border-right-width: 0;
  border-left-style: solid;
  border-color: transparent transparent transparent #1779ba;
}

.drilldown.align-left .is-drilldown-submenu-parent > a::after {
  left: auto;
  right: 1rem;
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  content: '';
  border-right-width: 0;
  border-left-style: solid;
  border-color: transparent transparent transparent #1779ba;
}

.drilldown.align-right .is-drilldown-submenu-parent > a::after {
  right: auto;
  left: 1rem;
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  content: '';
  border-left-width: 0;
  border-right-style: solid;
  border-color: transparent #1779ba transparent transparent;
}

.drilldown .js-drilldown-back > a::before {
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  content: '';
  border-left-width: 0;
  border-right-style: solid;
  border-color: transparent #1779ba transparent transparent;
  border-left-width: 0;
  display: inline-block;
  vertical-align: middle;
  margin-right: 0.75rem;
  border-left-width: 0;
}

.dropdown-pane {
  position: absolute;
  z-index: 10;
  width: 300px;
  padding: 1rem;
  visibility: hidden;
  display: none;
  border: 1px solid #cacaca;
  border-radius: 0;
  background-color: #fefefe;
  font-size: 1rem;
}

.dropdown-pane.is-opening {
  display: block;
}

.dropdown-pane.is-open {
  visibility: visible;
  display: block;
}

.dropdown-pane.tiny {
  width: 100px;
}

.dropdown-pane.small {
  width: 200px;
}

.dropdown-pane.large {
  width: 400px;
}

.dropdown.menu > li.opens-left > .is-dropdown-submenu {
  top: 100%;
  right: 0;
  left: auto;
}

.dropdown.menu > li.opens-right > .is-dropdown-submenu {
  top: 100%;
  right: auto;
  left: 0;
}

.dropdown.menu > li.is-dropdown-submenu-parent > a {
  position: relative;
  padding-right: 1.5rem;
}

.dropdown.menu > li.is-dropdown-submenu-parent > a::after {
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  content: '';
  border-bottom-width: 0;
  border-top-style: solid;
  border-color: #1779ba transparent transparent;
  right: 5px;
  left: auto;
  margin-top: -3px;
}

.dropdown.menu a {
  padding: 0.7rem 1rem;
}

[data-whatinput='mouse'] .dropdown.menu a {
  outline: 0;
}

.dropdown.menu .is-active > a {
  background: transparent;
  color: #1779ba;
}

.no-js .dropdown.menu ul {
  display: none;
}

.dropdown.menu .nested.is-dropdown-submenu {
  margin-right: 0;
  margin-left: 0;
}

.dropdown.menu.vertical > li .is-dropdown-submenu {
  top: 0;
}

.dropdown.menu.vertical > li.opens-left > .is-dropdown-submenu {
  right: 100%;
  left: auto;
  top: 0;
}

.dropdown.menu.vertical > li.opens-right > .is-dropdown-submenu {
  right: auto;
  left: 100%;
}

.dropdown.menu.vertical > li > a::after {
  right: 14px;
}

.dropdown.menu.vertical > li.opens-left > a::after {
  right: auto;
  left: 5px;
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  content: '';
  border-left-width: 0;
  border-right-style: solid;
  border-color: transparent #1779ba transparent transparent;
}

.dropdown.menu.vertical > li.opens-right > a::after {
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  content: '';
  border-right-width: 0;
  border-left-style: solid;
  border-color: transparent transparent transparent #1779ba;
}

@media print, screen and (min-width: 40em) {
  .dropdown.menu.medium-horizontal > li.opens-left > .is-dropdown-submenu {
    top: 100%;
    right: 0;
    left: auto;
  }

  .dropdown.menu.medium-horizontal > li.opens-right > .is-dropdown-submenu {
    top: 100%;
    right: auto;
    left: 0;
  }

  .dropdown.menu.medium-horizontal > li.is-dropdown-submenu-parent > a {
    position: relative;
    padding-right: 1.5rem;
  }

  .dropdown.menu.medium-horizontal > li.is-dropdown-submenu-parent > a::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-bottom-width: 0;
    border-top-style: solid;
    border-color: #1779ba transparent transparent;
    right: 5px;
    left: auto;
    margin-top: -3px;
  }

  .dropdown.menu.medium-vertical > li .is-dropdown-submenu {
    top: 0;
  }

  .dropdown.menu.medium-vertical > li.opens-left > .is-dropdown-submenu {
    right: 100%;
    left: auto;
    top: 0;
  }

  .dropdown.menu.medium-vertical > li.opens-right > .is-dropdown-submenu {
    right: auto;
    left: 100%;
  }

  .dropdown.menu.medium-vertical > li > a::after {
    right: 14px;
  }

  .dropdown.menu.medium-vertical > li.opens-left > a::after {
    right: auto;
    left: 5px;
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-left-width: 0;
    border-right-style: solid;
    border-color: transparent #1779ba transparent transparent;
  }

  .dropdown.menu.medium-vertical > li.opens-right > a::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-right-width: 0;
    border-left-style: solid;
    border-color: transparent transparent transparent #1779ba;
  }
}

@media print, screen and (min-width: 64em) {
  .dropdown.menu.large-horizontal > li.opens-left > .is-dropdown-submenu {
    top: 100%;
    right: 0;
    left: auto;
  }

  .dropdown.menu.large-horizontal > li.opens-right > .is-dropdown-submenu {
    top: 100%;
    right: auto;
    left: 0;
  }

  .dropdown.menu.large-horizontal > li.is-dropdown-submenu-parent > a {
    position: relative;
    padding-right: 1.5rem;
  }

  .dropdown.menu.large-horizontal > li.is-dropdown-submenu-parent > a::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-bottom-width: 0;
    border-top-style: solid;
    border-color: #1779ba transparent transparent;
    right: 5px;
    left: auto;
    margin-top: -3px;
  }

  .dropdown.menu.large-vertical > li .is-dropdown-submenu {
    top: 0;
  }

  .dropdown.menu.large-vertical > li.opens-left > .is-dropdown-submenu {
    right: 100%;
    left: auto;
    top: 0;
  }

  .dropdown.menu.large-vertical > li.opens-right > .is-dropdown-submenu {
    right: auto;
    left: 100%;
  }

  .dropdown.menu.large-vertical > li > a::after {
    right: 14px;
  }

  .dropdown.menu.large-vertical > li.opens-left > a::after {
    right: auto;
    left: 5px;
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-left-width: 0;
    border-right-style: solid;
    border-color: transparent #1779ba transparent transparent;
  }

  .dropdown.menu.large-vertical > li.opens-right > a::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-right-width: 0;
    border-left-style: solid;
    border-color: transparent transparent transparent #1779ba;
  }
}

.dropdown.menu.align-right .is-dropdown-submenu.first-sub {
  top: 100%;
  right: 0;
  left: auto;
}

.is-dropdown-menu.vertical {
  width: 100px;
}

.is-dropdown-menu.vertical.align-right {
  float: right;
}

.is-dropdown-submenu-parent {
  position: relative;
}

.is-dropdown-submenu-parent a::after {
  position: absolute;
  top: 50%;
  right: 5px;
  left: auto;
  margin-top: -6px;
}

.is-dropdown-submenu-parent.opens-inner > .is-dropdown-submenu {
  top: 100%;
  left: auto;
}

.is-dropdown-submenu-parent.opens-left > .is-dropdown-submenu {
  right: 100%;
  left: auto;
}

.is-dropdown-submenu-parent.opens-right > .is-dropdown-submenu {
  right: auto;
  left: 100%;
}

.is-dropdown-submenu {
  position: absolute;
  top: 0;
  left: 100%;
  z-index: 1;
  display: none;
  min-width: 200px;
  border: 1px solid #cacaca;
  background: #fefefe;
}

.dropdown .is-dropdown-submenu a {
  padding: 0.7rem 1rem;
}

.is-dropdown-submenu .is-dropdown-submenu-parent > a::after {
  right: 14px;
}

.is-dropdown-submenu .is-dropdown-submenu-parent.opens-left > a::after {
  right: auto;
  left: 5px;
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  content: '';
  border-left-width: 0;
  border-right-style: solid;
  border-color: transparent #1779ba transparent transparent;
}

.is-dropdown-submenu .is-dropdown-submenu-parent.opens-right > a::after {
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  content: '';
  border-right-width: 0;
  border-left-style: solid;
  border-color: transparent transparent transparent #1779ba;
}

.is-dropdown-submenu .is-dropdown-submenu {
  margin-top: -1px;
}

.is-dropdown-submenu > li {
  width: 100%;
}

.is-dropdown-submenu.js-dropdown-active {
  display: block;
}

.responsive-embed,
.flex-video {
  position: relative;
  height: 0;
  margin-bottom: 1rem;
  padding-bottom: 75%;
  overflow: hidden;
}

.responsive-embed iframe,
.responsive-embed object,
.responsive-embed embed,
.responsive-embed video,
.flex-video iframe,
.flex-video object,
.flex-video embed,
.flex-video video {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.responsive-embed.widescreen,
.flex-video.widescreen {
  padding-bottom: 56.25%;
}

.label {
  display: inline-block;
  padding: 0.33333rem 0.5rem;
  border-radius: 0;
  font-size: 0.8rem;
  line-height: 1;
  white-space: nowrap;
  cursor: default;
  background: #1779ba;
  color: #fefefe;
}

.label.primary {
  background: #1779ba;
  color: #fefefe;
}

.label.secondary {
  background: #767676;
  color: #fefefe;
}

.label.success {
  background: #3adb76;
  color: #0a0a0a;
}

.label.warning {
  background: #ffae00;
  color: #0a0a0a;
}

.label.alert {
  background: #cc4b37;
  color: #fefefe;
}

.media-object {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  margin-bottom: 1rem;
  -ms-flex-wrap: nowrap;
      flex-wrap: nowrap;
}

.media-object img {
  max-width: none;
}

@media screen and (max-width: 39.9375em) {
  .media-object.stack-for-small {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
}

@media screen and (max-width: 39.9375em) {
  .media-object.stack-for-small .media-object-section {
    padding: 0;
    padding-bottom: 1rem;
    -ms-flex-preferred-size: 100%;
        flex-basis: 100%;
    max-width: 100%;
  }

  .media-object.stack-for-small .media-object-section img {
    width: 100%;
  }
}

.media-object-section {
  -webkit-box-flex: 0;
      -ms-flex: 0 1 auto;
          flex: 0 1 auto;
}

.media-object-section:first-child {
  padding-right: 1rem;
}

.media-object-section:last-child:not(:nth-child(2)) {
  padding-left: 1rem;
}

.media-object-section > :last-child {
  margin-bottom: 0;
}

.media-object-section.main-section {
  -webkit-box-flex: 1;
      -ms-flex: 1 1 0px;
          flex: 1 1 0px;
}

.is-off-canvas-open {
  overflow: hidden;
}

.js-off-canvas-overlay {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 11;
  width: 100%;
  height: 100%;
  transition: opacity 0.5s ease, visibility 0.5s ease;
  background: rgba(254, 254, 254, 0.25);
  opacity: 0;
  visibility: hidden;
  overflow: hidden;
}

.js-off-canvas-overlay.is-visible {
  opacity: 1;
  visibility: visible;
}

.js-off-canvas-overlay.is-closable {
  cursor: pointer;
}

.js-off-canvas-overlay.is-overlay-absolute {
  position: absolute;
}

.js-off-canvas-overlay.is-overlay-fixed {
  position: fixed;
}

.off-canvas-wrapper {
  position: relative;
  overflow: hidden;
}

.off-canvas {
  position: fixed;
  z-index: 12;
  transition: -webkit-transform 0.5s ease;
  transition: transform 0.5s ease;
  transition: transform 0.5s ease, -webkit-transform 0.5s ease;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  background: #e6e6e6;
}

[data-whatinput='mouse'] .off-canvas {
  outline: 0;
}

.off-canvas.is-transition-push {
  z-index: 12;
}

.off-canvas.is-closed {
  visibility: hidden;
}

.off-canvas.is-transition-overlap {
  z-index: 13;
}

.off-canvas.is-transition-overlap.is-open {
  box-shadow: 0 0 10px rgba(10, 10, 10, 0.7);
}

.off-canvas.is-open {
  -webkit-transform: translate(0, 0);
          transform: translate(0, 0);
}

.off-canvas-absolute {
  position: absolute;
  z-index: 12;
  transition: -webkit-transform 0.5s ease;
  transition: transform 0.5s ease;
  transition: transform 0.5s ease, -webkit-transform 0.5s ease;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  background: #e6e6e6;
}

[data-whatinput='mouse'] .off-canvas-absolute {
  outline: 0;
}

.off-canvas-absolute.is-transition-push {
  z-index: 12;
}

.off-canvas-absolute.is-closed {
  visibility: hidden;
}

.off-canvas-absolute.is-transition-overlap {
  z-index: 13;
}

.off-canvas-absolute.is-transition-overlap.is-open {
  box-shadow: 0 0 10px rgba(10, 10, 10, 0.7);
}

.off-canvas-absolute.is-open {
  -webkit-transform: translate(0, 0);
          transform: translate(0, 0);
}

.position-left {
  top: 0;
  left: 0;
  height: 100%;
  overflow-y: auto;
  width: 250px;
  -webkit-transform: translateX(-250px);
          transform: translateX(-250px);
}

.off-canvas-content .off-canvas.position-left {
  -webkit-transform: translateX(-250px);
          transform: translateX(-250px);
}

.off-canvas-content .off-canvas.position-left.is-transition-overlap.is-open {
  -webkit-transform: translate(0, 0);
          transform: translate(0, 0);
}

.off-canvas-content.is-open-left.has-transition-push {
  -webkit-transform: translateX(250px);
          transform: translateX(250px);
}

.position-left.is-transition-push {
  box-shadow: inset -13px 0 20px -13px rgba(10, 10, 10, 0.25);
}

.position-right {
  top: 0;
  right: 0;
  height: 100%;
  overflow-y: auto;
  width: 250px;
  -webkit-transform: translateX(250px);
          transform: translateX(250px);
}

.off-canvas-content .off-canvas.position-right {
  -webkit-transform: translateX(250px);
          transform: translateX(250px);
}

.off-canvas-content .off-canvas.position-right.is-transition-overlap.is-open {
  -webkit-transform: translate(0, 0);
          transform: translate(0, 0);
}

.off-canvas-content.is-open-right.has-transition-push {
  -webkit-transform: translateX(-250px);
          transform: translateX(-250px);
}

.position-right.is-transition-push {
  box-shadow: inset 13px 0 20px -13px rgba(10, 10, 10, 0.25);
}

.position-top {
  top: 0;
  left: 0;
  width: 100%;
  overflow-x: auto;
  height: 250px;
  -webkit-transform: translateY(-250px);
          transform: translateY(-250px);
}

.off-canvas-content .off-canvas.position-top {
  -webkit-transform: translateY(-250px);
          transform: translateY(-250px);
}

.off-canvas-content .off-canvas.position-top.is-transition-overlap.is-open {
  -webkit-transform: translate(0, 0);
          transform: translate(0, 0);
}

.off-canvas-content.is-open-top.has-transition-push {
  -webkit-transform: translateY(250px);
          transform: translateY(250px);
}

.position-top.is-transition-push {
  box-shadow: inset 0 -13px 20px -13px rgba(10, 10, 10, 0.25);
}

.position-bottom {
  bottom: 0;
  left: 0;
  width: 100%;
  overflow-x: auto;
  height: 250px;
  -webkit-transform: translateY(250px);
          transform: translateY(250px);
}

.off-canvas-content .off-canvas.position-bottom {
  -webkit-transform: translateY(250px);
          transform: translateY(250px);
}

.off-canvas-content .off-canvas.position-bottom.is-transition-overlap.is-open {
  -webkit-transform: translate(0, 0);
          transform: translate(0, 0);
}

.off-canvas-content.is-open-bottom.has-transition-push {
  -webkit-transform: translateY(-250px);
          transform: translateY(-250px);
}

.position-bottom.is-transition-push {
  box-shadow: inset 0 13px 20px -13px rgba(10, 10, 10, 0.25);
}

.off-canvas-content {
  -webkit-transform: none;
          transform: none;
  transition: -webkit-transform 0.5s ease;
  transition: transform 0.5s ease;
  transition: transform 0.5s ease, -webkit-transform 0.5s ease;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
}

.off-canvas-content.has-transition-push {
  -webkit-transform: translate(0, 0);
          transform: translate(0, 0);
}

.off-canvas-content .off-canvas.is-open {
  -webkit-transform: translate(0, 0);
          transform: translate(0, 0);
}

@media print, screen and (min-width: 40em) {
  .position-left.reveal-for-medium {
    -webkit-transform: none;
            transform: none;
    z-index: 12;
    transition: none;
    visibility: visible;
  }

  .position-left.reveal-for-medium .close-button {
    display: none;
  }

  .off-canvas-content .position-left.reveal-for-medium {
    -webkit-transform: none;
            transform: none;
  }

  .off-canvas-content.has-reveal-left {
    margin-left: 250px;
  }

  .position-left.reveal-for-medium ~ .off-canvas-content {
    margin-left: 250px;
  }

  .position-right.reveal-for-medium {
    -webkit-transform: none;
            transform: none;
    z-index: 12;
    transition: none;
    visibility: visible;
  }

  .position-right.reveal-for-medium .close-button {
    display: none;
  }

  .off-canvas-content .position-right.reveal-for-medium {
    -webkit-transform: none;
            transform: none;
  }

  .off-canvas-content.has-reveal-right {
    margin-right: 250px;
  }

  .position-right.reveal-for-medium ~ .off-canvas-content {
    margin-right: 250px;
  }

  .position-top.reveal-for-medium {
    -webkit-transform: none;
            transform: none;
    z-index: 12;
    transition: none;
    visibility: visible;
  }

  .position-top.reveal-for-medium .close-button {
    display: none;
  }

  .off-canvas-content .position-top.reveal-for-medium {
    -webkit-transform: none;
            transform: none;
  }

  .off-canvas-content.has-reveal-top {
    margin-top: 250px;
  }

  .position-top.reveal-for-medium ~ .off-canvas-content {
    margin-top: 250px;
  }

  .position-bottom.reveal-for-medium {
    -webkit-transform: none;
            transform: none;
    z-index: 12;
    transition: none;
    visibility: visible;
  }

  .position-bottom.reveal-for-medium .close-button {
    display: none;
  }

  .off-canvas-content .position-bottom.reveal-for-medium {
    -webkit-transform: none;
            transform: none;
  }

  .off-canvas-content.has-reveal-bottom {
    margin-bottom: 250px;
  }

  .position-bottom.reveal-for-medium ~ .off-canvas-content {
    margin-bottom: 250px;
  }
}

@media print, screen and (min-width: 64em) {
  .position-left.reveal-for-large {
    -webkit-transform: none;
            transform: none;
    z-index: 12;
    transition: none;
    visibility: visible;
  }

  .position-left.reveal-for-large .close-button {
    display: none;
  }

  .off-canvas-content .position-left.reveal-for-large {
    -webkit-transform: none;
            transform: none;
  }

  .off-canvas-content.has-reveal-left {
    margin-left: 250px;
  }

  .position-left.reveal-for-large ~ .off-canvas-content {
    margin-left: 250px;
  }

  .position-right.reveal-for-large {
    -webkit-transform: none;
            transform: none;
    z-index: 12;
    transition: none;
    visibility: visible;
  }

  .position-right.reveal-for-large .close-button {
    display: none;
  }

  .off-canvas-content .position-right.reveal-for-large {
    -webkit-transform: none;
            transform: none;
  }

  .off-canvas-content.has-reveal-right {
    margin-right: 250px;
  }

  .position-right.reveal-for-large ~ .off-canvas-content {
    margin-right: 250px;
  }

  .position-top.reveal-for-large {
    -webkit-transform: none;
            transform: none;
    z-index: 12;
    transition: none;
    visibility: visible;
  }

  .position-top.reveal-for-large .close-button {
    display: none;
  }

  .off-canvas-content .position-top.reveal-for-large {
    -webkit-transform: none;
            transform: none;
  }

  .off-canvas-content.has-reveal-top {
    margin-top: 250px;
  }

  .position-top.reveal-for-large ~ .off-canvas-content {
    margin-top: 250px;
  }

  .position-bottom.reveal-for-large {
    -webkit-transform: none;
            transform: none;
    z-index: 12;
    transition: none;
    visibility: visible;
  }

  .position-bottom.reveal-for-large .close-button {
    display: none;
  }

  .off-canvas-content .position-bottom.reveal-for-large {
    -webkit-transform: none;
            transform: none;
  }

  .off-canvas-content.has-reveal-bottom {
    margin-bottom: 250px;
  }

  .position-bottom.reveal-for-large ~ .off-canvas-content {
    margin-bottom: 250px;
  }
}

@media print, screen and (min-width: 40em) {
  .off-canvas.in-canvas-for-medium {
    visibility: visible;
    height: auto;
    position: static;
    background: inherit;
    width: inherit;
    overflow: inherit;
    transition: inherit;
  }

  .off-canvas.in-canvas-for-medium.position-left,
  .off-canvas.in-canvas-for-medium.position-right,
  .off-canvas.in-canvas-for-medium.position-top,
  .off-canvas.in-canvas-for-medium.position-bottom {
    box-shadow: none;
    -webkit-transform: none;
            transform: none;
  }

  .off-canvas.in-canvas-for-medium .close-button {
    display: none;
  }
}

@media print, screen and (min-width: 64em) {
  .off-canvas.in-canvas-for-large {
    visibility: visible;
    height: auto;
    position: static;
    background: inherit;
    width: inherit;
    overflow: inherit;
    transition: inherit;
  }

  .off-canvas.in-canvas-for-large.position-left,
  .off-canvas.in-canvas-for-large.position-right,
  .off-canvas.in-canvas-for-large.position-top,
  .off-canvas.in-canvas-for-large.position-bottom {
    box-shadow: none;
    -webkit-transform: none;
            transform: none;
  }

  .off-canvas.in-canvas-for-large .close-button {
    display: none;
  }
}

.orbit {
  position: relative;
}

.orbit-container {
  position: relative;
  height: 0;
  margin: 0;
  list-style: none;
  overflow: hidden;
}

.orbit-slide {
  width: 100%;
}

.orbit-slide.no-motionui.is-active {
  top: 0;
  left: 0;
}

.orbit-figure {
  margin: 0;
}

.orbit-image {
  width: 100%;
  max-width: 100%;
  margin: 0;
}

.orbit-caption {
  position: absolute;
  bottom: 0;
  width: 100%;
  margin-bottom: 0;
  padding: 1rem;
  background-color: rgba(10, 10, 10, 0.5);
  color: #fefefe;
}

.orbit-previous,
.orbit-next {
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  z-index: 10;
  padding: 1rem;
  color: #fefefe;
}

[data-whatinput='mouse'] .orbit-previous,
[data-whatinput='mouse'] .orbit-next {
  outline: 0;
}

.orbit-previous:hover,
.orbit-next:hover,
.orbit-previous:active,
.orbit-next:active,
.orbit-previous:focus,
.orbit-next:focus {
  background-color: rgba(10, 10, 10, 0.5);
}

.orbit-previous {
  left: 0;
}

.orbit-next {
  left: auto;
  right: 0;
}

.orbit-bullets {
  position: relative;
  margin-top: 0.8rem;
  margin-bottom: 0.8rem;
  text-align: center;
}

[data-whatinput='mouse'] .orbit-bullets {
  outline: 0;
}

.orbit-bullets button {
  width: 1.2rem;
  height: 1.2rem;
  margin: 0.1rem;
  border-radius: 50%;
  background-color: #cacaca;
}

.orbit-bullets button:hover {
  background-color: #8a8a8a;
}

.orbit-bullets button.is-active {
  background-color: #8a8a8a;
}

.pagination {
  margin-left: 0;
  margin-bottom: 1rem;
}

.pagination::before,
.pagination::after {
  display: table;
  content: ' ';
  -ms-flex-preferred-size: 0;
      flex-basis: 0;
  -webkit-box-ordinal-group: 2;
      -ms-flex-order: 1;
          order: 1;
}

.pagination::after {
  clear: both;
}

.pagination li {
  margin-right: 0.0625rem;
  border-radius: 0;
  font-size: 0.875rem;
  display: none;
}

.pagination li:last-child,
.pagination li:first-child {
  display: inline-block;
}

@media print, screen and (min-width: 40em) {
  .pagination li {
    display: inline-block;
  }
}

.pagination a,
.pagination button {
  display: block;
  padding: 0.1875rem 0.625rem;
  border-radius: 0;
  color: #0a0a0a;
}

.pagination a:hover,
.pagination button:hover {
  background: #e6e6e6;
}

.pagination .current {
  padding: 0.1875rem 0.625rem;
  background: #1779ba;
  color: #fefefe;
  cursor: default;
}

.pagination .disabled {
  padding: 0.1875rem 0.625rem;
  color: #cacaca;
  cursor: not-allowed;
}

.pagination .disabled:hover {
  background: transparent;
}

.pagination .ellipsis::after {
  padding: 0.1875rem 0.625rem;
  content: '\2026';
  color: #0a0a0a;
}

.pagination-previous a::before,
.pagination-previous.disabled::before {
  display: inline-block;
  margin-right: 0.5rem;
  content: '\00ab';
}

.pagination-next a::after,
.pagination-next.disabled::after {
  display: inline-block;
  margin-left: 0.5rem;
  content: '\00bb';
}

.progress {
  height: 1rem;
  margin-bottom: 1rem;
  border-radius: 0;
  background-color: #cacaca;
}

.progress.primary .progress-meter {
  background-color: #1779ba;
}

.progress.secondary .progress-meter {
  background-color: #767676;
}

.progress.success .progress-meter {
  background-color: #3adb76;
}

.progress.warning .progress-meter {
  background-color: #ffae00;
}

.progress.alert .progress-meter {
  background-color: #cc4b37;
}

.progress-meter {
  position: relative;
  display: block;
  width: 0%;
  height: 100%;
  background-color: #1779ba;
}

.progress-meter-text {
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  position: absolute;
  margin: 0;
  font-size: 0.75rem;
  font-weight: bold;
  color: #fefefe;
  white-space: nowrap;
}

.slider {
  position: relative;
  height: 0.5rem;
  margin-top: 1.25rem;
  margin-bottom: 2.25rem;
  background-color: #e6e6e6;
  cursor: pointer;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  -ms-touch-action: none;
      touch-action: none;
}

.slider-fill {
  position: absolute;
  top: 0;
  left: 0;
  display: inline-block;
  max-width: 100%;
  height: 0.5rem;
  background-color: #cacaca;
  transition: all 0.2s ease-in-out;
}

.slider-fill.is-dragging {
  transition: all 0s linear;
}

.slider-handle {
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  left: 0;
  z-index: 1;
  display: inline-block;
  width: 1.4rem;
  height: 1.4rem;
  border-radius: 0;
  background-color: #1779ba;
  transition: all 0.2s ease-in-out;
  -ms-touch-action: manipulation;
      touch-action: manipulation;
}

[data-whatinput='mouse'] .slider-handle {
  outline: 0;
}

.slider-handle:hover {
  background-color: #14679e;
}

.slider-handle.is-dragging {
  transition: all 0s linear;
}

.slider.disabled,
.slider[disabled] {
  opacity: 0.25;
  cursor: not-allowed;
}

.slider.vertical {
  display: inline-block;
  width: 0.5rem;
  height: 12.5rem;
  margin: 0 1.25rem;
  -webkit-transform: scale(1, -1);
          transform: scale(1, -1);
}

.slider.vertical .slider-fill {
  top: 0;
  width: 0.5rem;
  max-height: 100%;
}

.slider.vertical .slider-handle {
  position: absolute;
  top: 0;
  left: 50%;
  width: 1.4rem;
  height: 1.4rem;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
}

.sticky-container {
  position: relative;
}

.sticky {
  position: relative;
  z-index: 0;
  -webkit-transform: translate3d(0, 0, 0);
          transform: translate3d(0, 0, 0);
}

.sticky.is-stuck {
  position: fixed;
  z-index: 5;
  width: 100%;
}

.sticky.is-stuck.is-at-top {
  top: 0;
}

.sticky.is-stuck.is-at-bottom {
  bottom: 0;
}

.sticky.is-anchored {
  position: relative;
  right: auto;
  left: auto;
}

.sticky.is-anchored.is-at-bottom {
  bottom: 0;
}

body.is-reveal-open {
  overflow: hidden;
}

html.is-reveal-open,
html.is-reveal-open body {
  min-height: 100%;
  overflow: hidden;
  position: fixed;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
}

.reveal-overlay {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1005;
  display: none;
  background-color: rgba(10, 10, 10, 0.45);
  overflow-y: scroll;
}

.reveal {
  z-index: 1006;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  display: none;
  padding: 1rem;
  border: 1px solid #cacaca;
  border-radius: 0;
  background-color: #fefefe;
  position: relative;
  top: 100px;
  margin-right: auto;
  margin-left: auto;
  overflow-y: auto;
}

[data-whatinput='mouse'] .reveal {
  outline: 0;
}

@media print, screen and (min-width: 40em) {
  .reveal {
    min-height: 0;
  }
}

.reveal .column,
.reveal .columns {
  min-width: 0;
}

.reveal > :last-child {
  margin-bottom: 0;
}

@media print, screen and (min-width: 40em) {
  .reveal {
    width: 600px;
    max-width: 75rem;
  }
}

.reveal.collapse {
  padding: 0;
}

@media print, screen and (min-width: 40em) {
  .reveal.tiny {
    width: 30%;
    max-width: 75rem;
  }
}

@media print, screen and (min-width: 40em) {
  .reveal.small {
    width: 50%;
    max-width: 75rem;
  }
}

@media print, screen and (min-width: 40em) {
  .reveal.large {
    width: 90%;
    max-width: 75rem;
  }
}

.reveal.full {
  top: 0;
  left: 0;
  width: 100%;
  max-width: none;
  height: 100%;
  height: 100vh;
  min-height: 100vh;
  margin-left: 0;
  border: 0;
  border-radius: 0;
}

@media screen and (max-width: 39.9375em) {
  .reveal {
    top: 0;
    left: 0;
    width: 100%;
    max-width: none;
    height: 100%;
    height: 100vh;
    min-height: 100vh;
    margin-left: 0;
    border: 0;
    border-radius: 0;
  }
}

.reveal.without-overlay {
  position: fixed;
}

.switch {
  height: 2rem;
  position: relative;
  margin-bottom: 1rem;
  outline: 0;
  font-size: 0.875rem;
  font-weight: bold;
  color: #fefefe;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
}

.switch-input {
  position: absolute;
  margin-bottom: 0;
  opacity: 0;
}

.switch-paddle {
  position: relative;
  display: block;
  width: 4rem;
  height: 2rem;
  border-radius: 0;
  background: #cacaca;
  transition: all 0.25s ease-out;
  font-weight: inherit;
  color: inherit;
  cursor: pointer;
}

input + .switch-paddle {
  margin: 0;
}

.switch-paddle::after {
  position: absolute;
  top: 0.25rem;
  left: 0.25rem;
  display: block;
  width: 1.5rem;
  height: 1.5rem;
  -webkit-transform: translate3d(0, 0, 0);
          transform: translate3d(0, 0, 0);
  border-radius: 0;
  background: #fefefe;
  transition: all 0.25s ease-out;
  content: '';
}

input:checked ~ .switch-paddle {
  background: #1779ba;
}

input:checked ~ .switch-paddle::after {
  left: 2.25rem;
}

[data-whatinput='mouse'] input:focus ~ .switch-paddle {
  outline: 0;
}

.switch-active,
.switch-inactive {
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}

.switch-active {
  left: 8%;
  display: none;
}

input:checked + label > .switch-active {
  display: block;
}

.switch-inactive {
  right: 15%;
}

input:checked + label > .switch-inactive {
  display: none;
}

.switch.tiny {
  height: 1.5rem;
}

.switch.tiny .switch-paddle {
  width: 3rem;
  height: 1.5rem;
  font-size: 0.625rem;
}

.switch.tiny .switch-paddle::after {
  top: 0.25rem;
  left: 0.25rem;
  width: 1rem;
  height: 1rem;
}

.switch.tiny input:checked ~ .switch-paddle::after {
  left: 1.75rem;
}

.switch.small {
  height: 1.75rem;
}

.switch.small .switch-paddle {
  width: 3.5rem;
  height: 1.75rem;
  font-size: 0.75rem;
}

.switch.small .switch-paddle::after {
  top: 0.25rem;
  left: 0.25rem;
  width: 1.25rem;
  height: 1.25rem;
}

.switch.small input:checked ~ .switch-paddle::after {
  left: 2rem;
}

.switch.large {
  height: 2.5rem;
}

.switch.large .switch-paddle {
  width: 5rem;
  height: 2.5rem;
  font-size: 1rem;
}

.switch.large .switch-paddle::after {
  top: 0.25rem;
  left: 0.25rem;
  width: 2rem;
  height: 2rem;
}

.switch.large input:checked ~ .switch-paddle::after {
  left: 2.75rem;
}

table {
  border-collapse: collapse;
  width: 100%;
  margin-bottom: 1rem;
  border-radius: 0;
}

thead,
tbody,
tfoot {
  border: 1px solid #f1f1f1;
  background-color: #fefefe;
}

caption {
  padding: 0.5rem 0.625rem 0.625rem;
  font-weight: bold;
}

thead {
  background: #f8f8f8;
  color: #0a0a0a;
}

tfoot {
  background: #f1f1f1;
  color: #0a0a0a;
}

thead tr,
tfoot tr {
  background: transparent;
}

thead th,
thead td,
tfoot th,
tfoot td {
  padding: 0.5rem 0.625rem 0.625rem;
  font-weight: bold;
  text-align: left;
}

tbody th,
tbody td {
  padding: 0.5rem 0.625rem 0.625rem;
}

tbody tr:nth-child(even) {
  border-bottom: 0;
  background-color: #f1f1f1;
}

table.unstriped tbody {
  background-color: #fefefe;
}

table.unstriped tbody tr {
  border-bottom: 0;
  border-bottom: 1px solid #f1f1f1;
  background-color: #fefefe;
}

@media screen and (max-width: 63.9375em) {
  table.stack thead {
    display: none;
  }

  table.stack tfoot {
    display: none;
  }

  table.stack tr,
  table.stack th,
  table.stack td {
    display: block;
  }

  table.stack td {
    border-top: 0;
  }
}

table.scroll {
  display: block;
  width: 100%;
  overflow-x: auto;
}

table.hover thead tr:hover {
  background-color: #f3f3f3;
}

table.hover tfoot tr:hover {
  background-color: #ececec;
}

table.hover tbody tr:hover {
  background-color: #f9f9f9;
}

table.hover:not(.unstriped) tr:nth-of-type(even):hover {
  background-color: #ececec;
}

.table-scroll {
  overflow-x: auto;
}

.table-scroll table {
  width: auto;
}

.tabs {
  margin: 0;
  border: 1px solid #e6e6e6;
  background: #fefefe;
  list-style-type: none;
}

.tabs::before,
.tabs::after {
  display: table;
  content: ' ';
  -ms-flex-preferred-size: 0;
      flex-basis: 0;
  -webkit-box-ordinal-group: 2;
      -ms-flex-order: 1;
          order: 1;
}

.tabs::after {
  clear: both;
}

.tabs.vertical > li {
  display: block;
  float: none;
  width: auto;
}

.tabs.simple > li > a {
  padding: 0;
}

.tabs.simple > li > a:hover {
  background: transparent;
}

.tabs.primary {
  background: #1779ba;
}

.tabs.primary > li > a {
  color: #fefefe;
}

.tabs.primary > li > a:hover,
.tabs.primary > li > a:focus {
  background: #1673b1;
}

.tabs-title {
  float: left;
}

.tabs-title > a {
  display: block;
  padding: 1.25rem 1.5rem;
  font-size: 0.75rem;
  line-height: 1;
  color: #1779ba;
}

.tabs-title > a:hover {
  background: #fefefe;
  color: #1468a0;
}

.tabs-title > a:focus,
.tabs-title > a[aria-selected='true'] {
  background: #e6e6e6;
  color: #1779ba;
}

.tabs-content {
  border: 1px solid #e6e6e6;
  border-top: 0;
  background: #fefefe;
  color: #0a0a0a;
  transition: all 0.5s ease;
}

.tabs-content.vertical {
  border: 1px solid #e6e6e6;
  border-left: 0;
}

.tabs-panel {
  display: none;
  padding: 1rem;
}

.tabs-panel.is-active {
  display: block;
}

.thumbnail {
  display: inline-block;
  max-width: 100%;
  margin-bottom: 1rem;
  border: solid 4px #fefefe;
  border-radius: 0;
  box-shadow: 0 0 0 1px rgba(10, 10, 10, 0.2);
  line-height: 0;
}

a.thumbnail {
  transition: box-shadow 200ms ease-out;
}

a.thumbnail:hover,
a.thumbnail:focus {
  box-shadow: 0 0 6px 1px rgba(23, 121, 186, 0.5);
}

a.thumbnail image {
  box-shadow: none;
}

.title-bar {
  padding: 0.5rem;
  background: #0a0a0a;
  color: #fefefe;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

.title-bar .menu-icon {
  margin-left: 0.25rem;
  margin-right: 0.25rem;
}

.title-bar-left,
.title-bar-right {
  -webkit-box-flex: 1;
      -ms-flex: 1 1 0px;
          flex: 1 1 0px;
}

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

.title-bar-title {
  display: inline-block;
  vertical-align: middle;
  font-weight: bold;
}

.has-tip {
  position: relative;
  display: inline-block;
  border-bottom: dotted 1px #8a8a8a;
  font-weight: bold;
  cursor: help;
}

.tooltip {
  position: absolute;
  top: calc(100% + 0.6495rem);
  z-index: 1200;
  max-width: 10rem;
  padding: 0.75rem;
  border-radius: 0;
  background-color: #0a0a0a;
  font-size: 80%;
  color: #fefefe;
}

.tooltip::before {
  position: absolute;
}

.tooltip.bottom::before {
  display: block;
  width: 0;
  height: 0;
  border: inset 0.75rem;
  content: '';
  border-top-width: 0;
  border-bottom-style: solid;
  border-color: transparent transparent #0a0a0a;
  bottom: 100%;
}

.tooltip.bottom.align-center::before,
#main__navigation ul li .link .tooltip.bottom.icon::before {
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
}

.tooltip.top::before {
  display: block;
  width: 0;
  height: 0;
  border: inset 0.75rem;
  content: '';
  border-bottom-width: 0;
  border-top-style: solid;
  border-color: #0a0a0a transparent transparent;
  top: 100%;
  bottom: auto;
}

.tooltip.top.align-center::before,
#main__navigation ul li .link .tooltip.top.icon::before {
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
}

.tooltip.left::before {
  display: block;
  width: 0;
  height: 0;
  border: inset 0.75rem;
  content: '';
  border-right-width: 0;
  border-left-style: solid;
  border-color: transparent transparent transparent #0a0a0a;
  left: 100%;
}

.tooltip.left.align-center::before,
#main__navigation ul li .link .tooltip.left.icon::before {
  bottom: auto;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}

.tooltip.right::before {
  display: block;
  width: 0;
  height: 0;
  border: inset 0.75rem;
  content: '';
  border-left-width: 0;
  border-right-style: solid;
  border-color: transparent #0a0a0a transparent transparent;
  right: 100%;
  left: auto;
}

.tooltip.right.align-center::before,
#main__navigation ul li .link .tooltip.right.icon::before {
  bottom: auto;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}

.tooltip.align-top::before {
  bottom: auto;
  top: 10%;
}

.tooltip.align-bottom::before {
  bottom: 10%;
  top: auto;
}

.tooltip.align-left::before {
  left: 10%;
  right: auto;
}

.tooltip.align-right::before {
  left: auto;
  right: 10%;
}

.top-bar {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: nowrap;
      flex-wrap: nowrap;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  padding: 0.5rem;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}

.top-bar,
.top-bar ul {
  background-color: #e6e6e6;
}

.top-bar input {
  max-width: 200px;
  margin-right: 1rem;
}

.top-bar .input-group-field {
  width: 100%;
  margin-right: 0;
}

.top-bar input.button {
  width: auto;
}

.top-bar .top-bar-left,
.top-bar .top-bar-right {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 100%;
          flex: 0 0 100%;
  max-width: 100%;
}

@media print, screen and (min-width: 40em) {
  .top-bar {
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap;
  }

  .top-bar .top-bar-left {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 auto;
            flex: 1 1 auto;
    margin-right: auto;
  }

  .top-bar .top-bar-right {
    -webkit-box-flex: 0;
        -ms-flex: 0 1 auto;
            flex: 0 1 auto;
    margin-left: auto;
  }
}

@media screen and (max-width: 63.9375em) {
  .top-bar.stacked-for-medium {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }

  .top-bar.stacked-for-medium .top-bar-left,
  .top-bar.stacked-for-medium .top-bar-right {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 100%;
            flex: 0 0 100%;
    max-width: 100%;
  }
}

@media screen and (max-width: 74.9375em) {
  .top-bar.stacked-for-large {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }

  .top-bar.stacked-for-large .top-bar-left,
  .top-bar.stacked-for-large .top-bar-right {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 100%;
            flex: 0 0 100%;
    max-width: 100%;
  }
}

.top-bar-title {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  margin: 0.5rem 1rem 0.5rem 0;
}

.top-bar-left,
.top-bar-right {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
}

.hide {
  display: none !important;
}

.invisible {
  visibility: hidden;
}

@media screen and (max-width: 39.9375em) {
  .hide-for-small-only {
    display: none !important;
  }
}

@media screen and (max-width: 0em), screen and (min-width: 40em) {
  .show-for-small-only {
    display: none !important;
  }
}

@media print, screen and (min-width: 40em) {
  .hide-for-medium {
    display: none !important;
  }
}

@media screen and (max-width: 39.9375em) {
  .show-for-medium {
    display: none !important;
  }
}

@media screen and (min-width: 40em) and (max-width: 63.9375em) {
  .hide-for-medium-only {
    display: none !important;
  }
}

@media screen and (max-width: 39.9375em), screen and (min-width: 64em) {
  .show-for-medium-only {
    display: none !important;
  }
}

@media print, screen and (min-width: 64em) {
  .hide-for-large {
    display: none !important;
  }
}

@media screen and (max-width: 63.9375em) {
  .show-for-large {
    display: none !important;
  }
}

@media screen and (min-width: 64em) and (max-width: 74.9375em) {
  .hide-for-large-only {
    display: none !important;
  }
}

@media screen and (max-width: 63.9375em), screen and (min-width: 75em) {
  .show-for-large-only {
    display: none !important;
  }
}

.show-for-sr,
.show-on-focus {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  -webkit-clip-path: inset(50%);
          clip-path: inset(50%);
  border: 0;
}

.show-on-focus:active,
.show-on-focus:focus {
  position: static !important;
  width: auto;
  height: auto;
  overflow: visible;
  clip: auto;
  white-space: normal;
  -webkit-clip-path: none;
          clip-path: none;
}

.show-for-landscape,
.hide-for-portrait {
  display: block !important;
}

@media screen and (orientation: landscape) {
  .show-for-landscape,
  .hide-for-portrait {
    display: block !important;
  }
}

@media screen and (orientation: portrait) {
  .show-for-landscape,
  .hide-for-portrait {
    display: none !important;
  }
}

.hide-for-landscape,
.show-for-portrait {
  display: none !important;
}

@media screen and (orientation: landscape) {
  .hide-for-landscape,
  .show-for-portrait {
    display: none !important;
  }
}

@media screen and (orientation: portrait) {
  .hide-for-landscape,
  .show-for-portrait {
    display: block !important;
  }
}

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

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

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

.clearfix::before,
.clearfix::after {
  display: table;
  content: ' ';
  -ms-flex-preferred-size: 0;
      flex-basis: 0;
  -webkit-box-ordinal-group: 2;
      -ms-flex-order: 1;
          order: 1;
}

.clearfix::after {
  clear: both;
}

/*@font-face {
  font-family: 'kontrast_icons_v1';
  src:  url('/fonts/kontrast_icons_v1.eot?tjg1rk');
  src:  url('/fonts/kontrast_icons_v1.eot?tjg1rk#iefix') format('embedded-opentype'),
    url('/fonts/kontrast_icons_v1.ttf?tjg1rk') format('truetype'),
    url('/fonts/kontrast_icons_v1.woff?tjg1rk') format('woff'),
    url('/fonts/kontrast_icons_v1.svg?tjg1rk#kontrast_icons_v1') format('svg');
  font-weight: normal;
  font-style: normal;
}

[class^="icon-"], [class*=" icon-"] {
  /* use !important to prevent issues with browser extensions that change fonts * /
  font-family: 'kontrast_icons_v1' !important;
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;

  /* Better Font Rendering =========== * /
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-add_2:before {
  content: "\e900";
}
.icon-add:before {
  content: "\e901";
}
.icon-bookings:before {
  content: "\e902";
}
.icon-customers:before {
  content: "\e903";
}
.icon-edit:before {
  content: "\e904";
}
.icon-menu:before {
  content: "\e905";
}
.icon-products:before {
  content: "\e906";
}
.icon-quotes:before {
  content: "\e907";
}
.icon-search:before {
  content: "\e908";
}
.icon-settings:before {
  content: "\e909";
}
.icon-transport:before {
  content: "\e90a";
}*/

@font-face {
  font-family: 'Kontrast_icons_v2';
  src: url("/fonts/Kontrast_icons_v2.eot?keo718");
  src: url("/fonts/Kontrast_icons_v2.eot?keo718#iefix") format("embedded-opentype"), url("/fonts/Kontrast_icons_v2.ttf?keo718") format("truetype"), url("/fonts/Kontrast_icons_v2.woff?keo718") format("woff"), url("/fonts/Kontrast_icons_v2.svg?keo718#Kontrast_icons_v2") format("svg");
  font-weight: normal;
  font-style: normal;
}

[class^="icon-"],
[class*=" icon-"] {
  /* use !important to prevent issues with browser extensions that change fonts */
  font-family: 'Kontrast_icons_v2' !important;
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  /* Better Font Rendering =========== */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

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

.icon-add:before {
  content: "\e901";
}

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

.icon-bookings:before {
  content: "\e903";
}

.icon-customers:before {
  content: "\e904";
}

.icon-dashboard:before {
  content: "\e905";
}

.icon-delete:before {
  content: "\e906";
}

.icon-dropdown:before {
  content: "\e907";
}

.icon-edit:before {
  content: "\e908";
}

.icon-info:before {
  content: "\e909";
}

.icon-menu:before {
  content: "\e90a";
}

.icon-pdf:before {
  content: "\e90b";
}

.icon-price:before {
  content: "\e90c";
}

.icon-products:before {
  content: "\e90d";
}

.icon-quotes:before {
  content: "\e90e";
}

.icon-reports:before {
  content: "\e90f";
}

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

.icon-settings:before {
  content: "\e911";
}

.icon-transport:before {
  content: "\e912";
}

.icon-update:before {
  content: "\e913";
}

.icon-users:before {
  content: "\e914";
}

.icon-website:before {
  content: "\e915";
}

@font-face {
  font-family: 'SofiaPro-SemiBold';
  src: url("/fonts/SofiaPro-SemiBold.eot?#iefix") format("embedded-opentype"), url("/fonts/SofiaPro-SemiBold.otf") format("opentype"), url("/fonts/SofiaPro-SemiBold.woff") format("woff"), url("/fonts/SofiaPro-SemiBold.ttf") format("truetype"), url("/fonts/SofiaPro-SemiBold.svg#SofiaPro-SemiBold") format("svg");
  font-weight: normal;
  font-style: normal;
}

@font-face {
  font-family: 'SofiaPro-Bold';
  src: url("/fonts/SofiaPro-Bold.eot?#iefix") format("embedded-opentype"), url("/fonts/SofiaPro-Bold.otf") format("opentype"), url("/fonts/SofiaPro-Bold.woff") format("woff"), url("/fonts/SofiaPro-Bold.ttf") format("truetype"), url("/fonts/SofiaPro-Bold.svg#SofiaPro-Bold") format("svg");
  font-weight: normal;
  font-style: normal;
}

@font-face {
  font-family: 'SofiaPro-UltraLight';
  src: url("/fonts/SofiaPro-UltraLight.eot?#iefix") format("embedded-opentype"), url("/fonts/SofiaPro-UltraLight.otf") format("opentype"), url("/fonts/SofiaPro-UltraLight.woff") format("woff"), url("/fonts/SofiaPro-UltraLight.ttf") format("truetype"), url("/fonts/SofiaPro-UltraLight.svg#SofiaPro-UltraLight") format("svg");
  font-weight: normal;
  font-style: normal;
}

@font-face {
  font-family: 'SofiaPro-Light';
  src: url("/fonts/SofiaPro-Light.eot?#iefix") format("embedded-opentype"), url("/fonts/SofiaPro-Light.otf") format("opentype"), url("/fonts/SofiaPro-Light.woff") format("woff"), url("/fonts/SofiaPro-Light.ttf") format("truetype"), url("/fonts/SofiaPro-Light.svg#SofiaPro-Light") format("svg");
  font-weight: normal;
  font-style: normal;
}

@font-face {
  font-family: 'SofiaPro-ExtraLight';
  src: url("/fonts/SofiaPro-ExtraLight.eot?#iefix") format("embedded-opentype"), url("/fonts/SofiaPro-ExtraLight.otf") format("opentype"), url("/fonts/SofiaPro-ExtraLight.woff") format("woff"), url("/fonts/SofiaPro-ExtraLight.ttf") format("truetype"), url("/fonts/SofiaPro-ExtraLight.svg#SofiaPro-ExtraLight") format("svg");
  font-weight: normal;
  font-style: normal;
}

@font-face {
  font-family: 'SofiaMedium';
  src: url("/fonts/SofiaMedium.eot?#iefix") format("embedded-opentype"), url("/fonts/SofiaMedium.woff") format("woff"), url("/fonts/SofiaMedium.ttf") format("truetype"), url("/fonts/SofiaMedium.svg#.") format("svg");
  font-weight: normal;
  font-style: normal;
}

.ui-menu .auto__complete__row__user {
  padding: 10px 0 5px 12px;
  border-style: solid;
  border-color: #eaeaea;
  border-width: 2px 2px 2px 2px;
  margin-top: -2px;
  cursor: pointer;
}

.ui-menu .auto__complete__row__user p {
  margin-bottom: 0;
}

.ui-menu .auto__complete__row__user.ui-state-active {
  background-color: #A8CFD5;
}

.ui-dialog {
  z-index: 11;
}

html,
body {
  min-height: 100%;
}

body {
  margin-bottom: 0;
  background: #F8F4F2;
  font-family: 'SofiaPro-Light';
  font-size: 16px;
}

.admin-header .logo {
  margin-left: 1rem;
}

#main__content {
  height: 100%;
  padding-top: 5rem;
  max-width: none;
  margin-right: auto;
  margin-left: auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-flow: row wrap;
          flex-flow: row wrap;
  background: #F8F4F2;
}

#main__content #content__block {
  width: 100%;
  padding-left: 6.25rem;
  padding-bottom: 3.125rem;
}

@media print, screen and (min-width: 64em) {
  #main__content #content__block {
    padding-left: 12.5rem;
  }
}

@media screen and (min-width: 75em) {
  #main__content #content__block {
    padding-left: 16.875rem;
  }
}

#main__content #content__block .inner__content__block {
  padding-bottom: 6.25rem;
  width: auto;
  max-width: none;
  padding-left: 0.9375rem;
  padding-right: 0.9375rem;
}

#main__content #content__block .inner__content__block > .row > .column,
#main__content #content__block .inner__content__block > .row > .columns,
#main__content #content__block .inner__content__block > .row > .columns {
  padding-left: 0;
  padding-right: 0;
}

#main__content #content__block .inner__content__block > .row > .column.pad-left,
#main__content #content__block .inner__content__block > .row > .pad-left.columns,
#main__content #content__block .inner__content__block > .row > .columns.pad-left {
  padding-left: 25px;
}

#main__content #content__block .inner__content__block .missing {
  margin-bottom: 20px;
}

#main__content #content__block .inner__content__block .missing > a {
  margin-bottom: 0.625rem;
}

@media screen and (min-width: 64em) {
  #main__content #content__block .inner__content__block .missing > a {
    margin-bottom: 1.25rem;
  }
}

#main__content #content__block .inner__content__block .missing > a:last-child {
  margin-bottom: 0px;
}

#main__content #content__block .inner__content__block .missing .button__inline__block {
  padding-top: 10px;
}

@media screen and (max-width: 63.9375em) {
  #main__content #content__block .inner__content__block .missing .button__inline__block {
    padding-top: 15px;
  }
}

#main__content #content__block .inner__content__block #signature-view {
  margin-bottom: 0.625rem;
}

#main__content #content__block .row {
  max-width: none;
  margin-right: auto;
  margin-left: auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-flow: row wrap;
          flex-flow: row wrap;
}

#main__content #content__block h1 {
  margin: 0;
  color: #24405E;
  font-family: 'SofiaPro-Light';
  font-size: 1.125rem;
}

body.has__sidebar #main__content #content__block {
  /*
				padding: 0 0 rem-calc(30) rem-calc(225);

				@include breakpoint(xlarge up)
				{
					padding: 0 0 rem-calc(30) rem-calc(306);
				}

				@include breakpoint(medium only)
				{
					padding-right: 0px !important;
				}
				*/
}

body.has__sidebar #main__content #content__block .inner__content__block {
  padding-bottom: 0;
}

body.has__sidebar #main__content #content__block .scrollable {
  padding-bottom: 3.125rem;
}

body.has__sidebar .side__bar.summary__bar {
  margin-top: 0;
}

.contains__wide__table {
  overflow-x: scroll;
  overflow-y: hidden;
}

.border__standard {
  border: 2px solid #24405E;
}

.no__background {
  background-color: transparent;
}

.hidden {
  visibility: hidden;
}

.display__none {
  display: none;
}

.text__align__left {
  text-align: left;
}

.text__align__right {
  text-align: right;
}

h1,
h2,
h3,
h4,
h5,
p,
li,
td {
  font-family: 'SofiaPro-Light';
}

h1 {
  font-size: 48px;
}

#main__content #content__block h1 {
  font-size: 18px;
}

h2 {
  font-size: 40px;
}

h3 {
  font-size: 31px;
}

h4 {
  font-size: 25px;
}

p,
li,
td,
th,
.table__list thead tr th,
.table__list tbody tr td {
  font-size: 14px;
  line-height: 1.3;
}

p.small-p,
.small-p p,
li.small-p,
.small-p li,
td.small-p,
.small-p td,
th.small-p,
.small-p th,
.table__list thead tr th.small-p,
.small-p .table__list thead tr th,
.table__list tbody tr td.small-p,
.small-p .table__list tbody tr td {
  font-size: 13px;
}

p.lg-p,
.lg-p p,
li.lg-p,
.lg-p li,
td.lg-p,
.lg-p td,
th.lg-p,
.lg-p th,
.table__list thead tr th.lg-p,
.lg-p .table__list thead tr th,
.table__list tbody tr td.lg-p,
.lg-p .table__list tbody tr td {
  font-size: 16px;
}

@media (max-width: 899px) {
  body {
    font-size: 12px;
  }

  h1 {
    font-size: 23px;
  }

  #main__content #content__block h1 {
    font-size: 15px;
  }

  h2 {
    font-size: 20px;
  }

  h3 {
    font-size: 17px;
  }

  h4 {
    font-size: 14px;
  }

  p,
  li,
  td,
  th,
  .table__list thead tr th,
  .table__list tbody tr td,
  .button__large__blue,
  .ui-dialog .ui-dialog-buttonset .ui-button {
    font-size: 11px;
  }

  p.small-p,
  .small-p p,
  li.small-p,
  .small-p li,
  td.small-p,
  .small-p td,
  th.small-p,
  .small-p th,
  .table__list thead tr th.small-p,
  .small-p .table__list thead tr th,
  .table__list tbody tr td.small-p,
  .small-p .table__list tbody tr td,
  .button__large__blue.small-p,
  .ui-dialog .ui-dialog-buttonset .small-p.ui-button,
  .small-p .button__large__blue,
  .small-p .ui-dialog .ui-dialog-buttonset .ui-button,
  .ui-dialog .ui-dialog-buttonset .small-p .ui-button {
    font-size: 10px;
  }

  p.lg-p,
  .lg-p p,
  li.lg-p,
  .lg-p li,
  td.lg-p,
  .lg-p td,
  th.lg-p,
  .lg-p th,
  .table__list thead tr th.lg-p,
  .lg-p .table__list thead tr th,
  .table__list tbody tr td.lg-p,
  .lg-p .table__list tbody tr td,
  .button__large__blue.lg-p,
  .ui-dialog .ui-dialog-buttonset .lg-p.ui-button,
  .lg-p .button__large__blue,
  .lg-p .ui-dialog .ui-dialog-buttonset .ui-button,
  .ui-dialog .ui-dialog-buttonset .lg-p .ui-button {
    font-size: 14px;
  }
}

.spacer-20 {
  width: 100%;
  clear: both;
  height: 20px;
}

.spacer-50 {
  width: 100%;
  clear: both;
  height: 50px;
}

input[type='submit'] {
  cursor: pointer;
}

.flex-center {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  text-align: center;
  height: 100%;
}

.flex-center .flex-center-item {
  display: inline-block;
  width: 320px;
  margin: 0 auto 50px;
  max-width: 90%;
}

.flex-spacebetween {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}

.flex-item {
  display: inline-block;
}

.menu-trigger {
  cursor: pointer;
  padding: 5px;
  position: relative;
}

.menu-trigger .button__group {
  margin: 0 auto;
  position: static;
  display: inline-block;
}

.menu-trigger .button__group .button__inline__block {
  padding: 10px 23px 4px !important;
  height: 45px;
}

.menu-trigger .button__group .button__inline__block .icon:before {
  font-size: 17px;
  position: relative;
  top: 2px;
}

.menu-trigger .popup-menu {
  position: absolute;
  display: none;
  background-color: #24405E;
  padding: 10px 15px;
  width: 200px;
  z-index: 10;
}

.menu-trigger .popup-menu.showing {
  display: block;
}

.menu-trigger .popup-menu a {
  display: block;
  padding: 8px 15px;
}

.menu-trigger .popup-menu a:not(.not-active) {
  display: block;
  color: #A8CFD5;
  transition: all 0.1s linear;
  border-radius: 3px;
}

.menu-trigger .popup-menu a:not(.not-active):hover {
  color: #fff;
  background-color: #2b4d70;
}

.menu-trigger .popup-menu a.not-active {
  color: #9bc1c9;
}

.button__inline__block + .menu-trigger {
  margin-left: 12px;
}

[class*="column"] + [class*="column"]:last-child {
  float: left;
}

.display-none {
  display: none;
}

.padded-white-region {
  padding: 15px;
  background-color: #fff;
}

.padded-white-region ul.accordion li.accordion-item .accordion-content .cell-inner {
  border-bottom: 2px solid #d9eaec;
  padding-bottom: 50px;
  margin-bottom: 20px;
}

.padded-white-region ul.accordion li.accordion-item .accordion-content .cell-inner .img-contain {
  position: relative;
}

.padded-white-region ul.accordion li.accordion-item .accordion-content .cell-inner .img-contain .hover-button {
  display: none;
  position: absolute;
  top: 5px;
  right: 5px;
  background-color: #fff;
  border-radius: 99px;
  box-shadow: 0 0 2px 2px #fff;
}

.padded-white-region ul.accordion li.accordion-item .accordion-content .cell-inner .img-contain .hover-button .icon:before {
  font-size: 30px;
  line-height: 0.9;
  position: relative;
  top: 3px;
  transition: color 0.1s linear;
  color: #A8CFD5;
}

.padded-white-region ul.accordion li.accordion-item .accordion-content .cell-inner .below-img {
  height: 80px;
}

.padded-white-region ul.accordion li.accordion-item .accordion-content .cell-inner .below-img h4 {
  font-size: 20px;
}

.padded-white-region ul.accordion li.accordion-item .accordion-content .cell-inner:hover .hover-button {
  display: block;
}

.padded-white-region ul.accordion li.accordion-item .accordion-content .cell-inner:hover .hover-button:hover .icon:before {
  color: #222;
}

@media (max-width: 1100px) {
  .padded-white-region ul.accordion li.accordion-item .accordion-content .cell-inner .img-contain .hover-button {
    display: block;
  }

  .padded-white-region ul.accordion li.accordion-item .accordion-content .cell-inner .img-contain .hover-button .icon:before {
    color: #222;
  }
}

.padded-white-region.two-thirds {
  width: 70%;
  float: left;
}

.right-of-padded-white {
  float: left;
  width: calc(30% - 20px);
  margin-left: 20px;
  box-sizing: border-box;
  padding: 15px;
  background-color: #fff;
}

.right-of-padded-white table {
  margin-top: 10px;
}

.right-of-padded-white table tr td {
  vertical-align: top;
  padding-bottom: 8px;
}

.right-of-padded-white table tr td:first-child {
  display: table-cell;
  font-weight: bold;
  width: 120px;
}

.right-of-padded-white table tr:nth-child(even) {
  background: #fff;
}

.column:last-child:not(:first-child),
.columns:last-child:not(:first-child),
.columns:last-child:not(:first-child) {
  float: left;
}

.admin-header {
  height: 5rem;
  padding-left: 0.9375rem;
  padding-right: 0.9375rem;
  background: #fff;
  box-shadow: 0 3px 3px rgba(0, 0, 0, 0.1);
  position: fixed;
  left: 0;
  top: 0;
  right: 0;
  z-index: 10;
}

.admin-header .row {
  height: 5rem;
  max-width: none;
  margin-right: auto;
  margin-left: auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-flow: row wrap;
          flex-flow: row wrap;
}

.admin-header .logo {
  width: 8.75rem;
  color: #24405E;
}

#top__navigation ul {
  list-style: none;
  margin: 0;
  padding: 0;
  font-size: 0;
  float: right;
}

#top__navigation ul li {
  display: inline-block;
}

#top__navigation ul li a {
  display: inline-block;
  padding: 0.4375rem 1.25rem 0.375rem;
  border: 1px solid transparent;
  color: #223A66;
  font-size: 0.8125rem;
}

#top__navigation ul li a.logout {
  margin-left: 0.625rem;
  padding: 0.5625rem 1.875rem 0.3125rem;
  border: 2px solid #A8CFD5;
  border-radius: 28px;
  transition: background-color 0.2s linear;
}

#top__navigation ul li a.logout:hover {
  background-color: #eef5f7;
}

#top__navigation ul li a span {
  display: inline-block;
  width: 1.25rem;
  height: 1.25rem;
  margin-left: 0.25rem;
  border: 2px solid #FF7469;
  border-radius: 50%;
  text-align: center;
  line-height: 1.125rem;
}

#main__navigation {
  width: 6.25rem;
  padding-top: 5rem;
  background: #24405E;
  position: fixed;
  left: 0;
  top: 0;
  bottom: 0;
  z-index: 1;
}

@media print, screen and (min-width: 64em) {
  #main__navigation {
    width: 12.5rem;
  }
}

@media screen and (min-width: 75em) {
  #main__navigation {
    width: 16.875rem;
  }
}

#main__navigation ul {
  list-style: none;
  margin: 0;
  padding: 1.25rem 0.9375rem;
}

#main__navigation ul li {
  margin-bottom: 0.9375rem;
}

@media screen and (max-width: 63.9375em) {
  #main__navigation ul li {
    margin-bottom: 1.125rem;
  }
}

#main__navigation ul li .link {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  width: 100%;
  padding: 0 0.5rem 0 0;
  color: #A8CFD5;
  transition: color 0.2s linear;
}

@media screen and (max-width: 63.9375em) {
  #main__navigation ul li .link {
    padding: 0px;
  }
}

#main__navigation ul li .link.active {
  color: #fff;
}

#main__navigation ul li .link a {
  display: block;
  color: #A8CFD5;
  transition: color 0.2s linear;
  font-size: 1rem;
}

#main__navigation ul li .link .icon {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  width: 50px;
  padding: 0;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  font-size: 1.25rem;
}

@media screen and (max-width: 63.9375em) {
  #main__navigation ul li .link .icon {
    margin: auto;
  }
}

@media screen and (max-width: 63.9375em) {
  #main__navigation ul li .link .icon a {
    font-size: 2rem;
  }
}

#main__navigation ul li .link .text {
  display: inline-block;
  -webkit-box-flex: 1;
  -ms-flex-positive: 1;
      flex-grow: 1;
  line-height: 2.5rem;
}

#main__navigation ul li .link .text .seo {
  display: inline-block;
  float: right;
  font-size: 0.6875rem;
  line-height: 2.5rem;
}

#main__navigation ul li .link .text span {
  float: right;
  font-size: 0.75rem;
  line-height: 2.5rem;
}

#main__navigation ul li .link:hover,
#main__navigation ul li .link.active {
  color: #fff;
}

#main__navigation ul li .link:hover a,
#main__navigation ul li .link.active a {
  color: #fff;
}

@media screen and (max-width: 63.9375em) {
  #main__navigation ul li .link {
    display: block;
  }

  #main__navigation ul li .link .icon,
  #main__navigation ul li .link .text {
    display: block;
    text-align: center;
    line-height: 1.1;
  }

  #main__navigation ul li .link .icon a {
    padding: 0;
  }

  #main__navigation ul li .link .text a {
    font-size: 10px;
    padding: 0;
  }

  #main__navigation ul li .link .text a span.fa {
    display: none;
  }

  #main__navigation ul li .link .text .seo {
    display: none;
  }
}

#main__navigation ul li ul {
  display: none;
}

#main__navigation ul li.settings ul {
  display: block;
}

#main__navigation ul li.settings ul li {
  display: block;
}

#main__navigation ul li.settings ul li .link {
  color: #24405E;
  transition: color 0.2s linear;
}

#main__navigation ul li.settings ul li .link a {
  color: #24405E;
  transition: color 0.2s linear;
}

#main__navigation ul li.settings ul li .link:hover,
#main__navigation ul li.settings ul li .link.active {
  color: #fff;
}

#main__navigation ul li.settings ul li .link:hover a,
#main__navigation ul li.settings ul li .link.active a {
  color: #fff;
}

#main__navigation ul li.settings .level {
  width: 100%;
  height: 100%;
  padding: 5rem 0 1rem;
  background: #A8CFD5;
  -webkit-transform: translate3d(-100%, 0, 0);
  transform: translate3d(-100%, 0, 0);
  transition: all .4s;
  position: absolute;
  left: 0;
  top: 0;
}

#main__navigation ul li.settings .level.open {
  -webkit-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0);
}

#main__navigation ul li.settings .level header {
  height: auto;
  padding: 1.25rem 1.25rem 0;
  background: none;
  box-shadow: none;
  color: #24405E;
  position: relative;
  z-index: 1;
}

#main__navigation ul li.settings .level .back {
  display: block;
  width: 1.875rem;
  height: 1.875rem;
  background: #e6e5e5;
  text-align: center;
  line-height: 1.625rem;
  font-size: 1rem;
  cursor: pointer;
  position: absolute;
  right: 0;
  top: 5rem;
  z-index: 2;
}

#main__navigation ul li.settings .level .back span {
  margin-right: 0.3125rem;
  font-size: 0.625rem;
}

#main__navigation ul li.quick__appointment {
  margin-top: 2.8125rem;
  padding-left: 0.625rem;
  padding-right: 0.625rem;
}

#main__navigation ul li.quick__appointment a {
  display: block;
  padding: 0.625rem 0 0.4375rem;
  border: 2px solid #A8CFD5;
  border-radius: 28px;
  color: #fff;
  font-size: 0.75rem;
  text-align: center;
  transition: background-color 0.2s linear;
}

#main__navigation ul li.quick__appointment a:hover,
#main__navigation ul li.quick__appointment a:active {
  background-color: #3e5d76;
}

@media screen and (max-width: 63.9375em) {
  #main__navigation ul li.quick__appointment {
    padding: 0;
  }

  #main__navigation ul li.settings .level header {
    padding: 45px 0 5px;
    text-align: center;
    border-bottom: 1px solid #9bc1c9;
  }
}

.button__container {
  margin-bottom: 1.25rem;
  text-align: left;
}

.button__large__blue,
.ui-dialog .ui-dialog-buttonset .ui-button {
  height: 2.5rem;
  padding: 0.5625rem 2.5rem 0.375rem;
  background-color: #A8CFD5;
  border: none;
  border-radius: 28px;
  background-clip: padding-box;
  color: #24405E;
  font-weight: 400;
  vertical-align: baseline;
  cursor: pointer;
  text-align: center;
  transition: background-color 0.2s linear;
}

.button__large__blue:hover,
.ui-dialog .ui-dialog-buttonset .ui-button:hover {
  background-color: #86bcc4;
}

.button__inline__block {
  display: inline-block;
}

.button__block {
  display: block;
}

.button__normal,
.table__list tbody tr td .button__remove,
.ui-dialog .ui-dialog-buttonset .ui-button:last-child {
  height: 2.5rem;
  padding: 0.25rem 1.25rem 0.375rem;
  text-align: center;
  border: 2px solid #A6AFBC;
  border-radius: 28px;
  background-clip: padding-box;
  background: #fff;
  color: #A6AFBC;
  line-height: 1.875rem;
  vertical-align: baseline;
  cursor: pointer;
}

.button__normal:hover,
.table__list tbody tr td .button__remove:hover,
.ui-dialog .ui-dialog-buttonset .ui-button:hover:last-child {
  background: whitesmoke;
}

.button__upload {
  display: inline-block;
  margin-top: -1px;
  padding: 0.5rem 0.9375rem;
  border: 1px solid #cccccc;
  border-radius: 5px;
  background-clip: padding-box;
  border-top-right-radius: 0;
  border-top-left-radius: 0;
  background-clip: padding-box;
  background: #fff;
  font-weight: 400;
  -webkit-appearance: none !important;
  -moz-appearance: none !important;
  appearance: none !important;
  cursor: pointer;
}

.button__upload input[type="file"] {
  display: block;
  width: 100%;
  margin: 0;
  padding: 0;
  opacity: 0;
  cursor: pointer;
  position: absolute;
  right: 0;
  top: 0;
}

.button__group {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}

.button__group .button__inline__block {
  padding: 0.75rem 1.875rem 0.625rem;
  border: 2px solid #d8d8d8;
  background: #fff;
  font-size: 0.75rem;
  text-align: center;
  vertical-align: middle;
  transition: background-color 0.2s linear;
}

@media screen and (max-width: 63.9375em) {
  .button__group .button__inline__block {
    padding-left: 20px;
    padding-right: 20px;
  }
}

@media screen and (min-width: 40em) and (max-width: 63.9375em) {
  body.contact .button__group .button__inline__block {
    width: 2.8125rem;
    padding: 0px !important;
    text-align: center;
  }
}

.button__group .button__inline__block[href],
.button__group .button__inline__block[id] {
  height: 2.4375rem;
  line-height: 0.8125rem;
}

.button__group .button__inline__block[action] {
  padding: 0 1.875rem;
  position: relative;
}

.button__group .button__inline__block[action] .confirm {
  display: block;
  position: relative;
  top: 0.6875rem;
}

.button__group .button__inline__block:first-child {
  border-bottom-left-radius: 28px;
  border-top-left-radius: 28px;
  background-clip: padding-box;
}

.button__group .button__inline__block:last-child {
  border-bottom-right-radius: 28px;
  border-top-right-radius: 28px;
  background-clip: padding-box;
}

.button__group .button__inline__block + .button__inline__block {
  margin-left: -2px;
}

.button__group .button__inline__block:hover {
  background-color: #f6f6f6;
}

.button__group .button__inline__block span {
  margin: 0 0.3125rem 0 0;
}

.button__group .button__inline__block.less__padding {
  padding: 0.75rem 0.9375rem 0.625rem;
}

.button__group span {
  margin-left: -1px;
}

.button__group span .button__inline__block:first-child {
  border-bottom-left-radius: 0;
  border-top-left-radius: 0;
  background-clip: padding-box;
}

.button__search {
  margin-left: -1px;
  padding: 0 0.625rem;
  border: 1px solid #e6e5e5;
  border-bottom-right-radius: 3px;
  border-top-right-radius: 3px;
  background-clip: padding-box;
  background: #fff;
  color: #A8CFD5;
  font-size: 0.75rem;
  line-height: 2.5rem;
  text-align: center;
  vertical-align: middle;
  cursor: pointer;
}

.button__search:hover {
  background: whitesmoke;
}

.button__float__bar {
  padding: 1.875rem 2.5rem;
  background: #fff;
  box-shadow: 5px 0px 15px 0 rgba(0, 0, 0, 0.1);
  z-index: 50;
}

.button__round__add {
  display: block;
  width: 1.875rem;
  height: 1.875rem;
  border-radius: 3.125rem;
  border: 2px solid #A8CFD5;
  text-align: center;
}

.button__round__add span {
  position: relative;
  top: 0.375rem;
  color: #A6AFBC;
}

.not-active {
  pointer-events: none;
  opacity: 0.25;
  cursor: not-allowed;
}

.missing {
  padding: 120px;
  background: #f3ece8;
  border: 2px dashed #eaded7;
  text-align: center;
}

.missing .button__large__blue:hover,
.missing .ui-dialog .ui-dialog-buttonset .ui-button:hover,
.ui-dialog .ui-dialog-buttonset .missing .ui-button:hover {
  color: #fff;
}

.table__list {
  width: 100%;
  border-collapse: collapse;
  border-spacing: 0;
  border: 0;
  background-color: transparent;
}

.table__list thead {
  border: none;
  background: none;
}

.table__list thead tr th {
  padding: 0.3125rem;
  text-transform: none;
  font-weight: 500;
}

.table__list thead tr th:first-child {
  width: 18.75rem;
  padding-left: 0;
}

.table__list thead tr th.last {
  width: 9.375rem;
}

.table__list thead tr th a:after {
  display: inline-block;
  margin-left: 0.3125rem;
  color: #cccccc;
  font-family: 'FontAwesome';
  content: '\f0dc';
}

.table__list thead tr th a.asc:after {
  color: #A8CFD5;
  content: '\f0d8' !important;
}

.table__list thead tr th a.desc:after {
  color: #A8CFD5;
  content: '\f0d7' !important;
}

.table__list tbody {
  border: none;
  background: none;
}

.table__list tbody tr td {
  padding: 1rem 0.3125rem 0.625rem;
  border-top: 1px solid #A6AFBC;
  border-bottom: 1px solid #A6AFBC;
  vertical-align: top;
}

.table__list tbody tr td:first-child {
  padding-left: 0.9375rem;
  border-left: 1px solid #A6AFBC;
}

.table__list tbody tr td:last-child {
  border-right: 1px solid #A6AFBC;
}

@media screen and (max-width: 63.9375em) {
  .table__list tbody tr td:last-child {
    text-align: right;
  }
}

.table__list tbody tr td:last-child a {
  display: inline-block;
  margin-right: 1.25rem;
  color: #24405E;
}

.table__list tbody tr td:last-child a.confirm {
  color: #A6AFBC;
}

.table__list tbody tr td input[type="checkbox"] {
  margin: 0;
}

.table__list tbody tr td .button__remove {
  height: 1.875rem;
  margin-left: 0.3125rem;
  margin-right: 0.3125rem;
  padding: 0.3125rem 0.625rem;
  font-size: 0.75rem;
  line-height: 1.25rem;
}

.table__list tbody tr td .button__large__blue,
.table__list tbody tr td .ui-dialog .ui-dialog-buttonset .ui-button,
.ui-dialog .ui-dialog-buttonset .table__list tbody tr td .ui-button {
  width: auto !important;
  height: auto !important;
  margin-right: 0.25rem !important;
  padding: 0.5rem 0.75rem 0.375rem 0.75rem !important;
}

@media screen and (min-width: 64em) {
  .table__list tbody tr td .button__large__blue,
  .table__list tbody tr td .ui-dialog .ui-dialog-buttonset .ui-button,
  .ui-dialog .ui-dialog-buttonset .table__list tbody tr td .ui-button {
    padding-left: 1.25rem !important;
    padding-right: 1.25rem !important;
  }
}

.table__list tbody tr td.draft,
.table__list tbody tr td.appointment {
  color: #FF7469;
}

.table__list tbody tr td.draft span,
.table__list tbody tr td.appointment span {
  display: inline-block;
  width: 0.625rem;
  height: 0.625rem;
  margin-right: 0.3125rem;
  border-radius: 50%;
  background: #FF7469;
}

.table__list tbody tr td.accepted,
.table__list tbody tr td.sent,
.table__list tbody tr td.paid {
  color: #479d5c;
}

.table__list tbody tr td.accepted span,
.table__list tbody tr td.sent span,
.table__list tbody tr td.paid span {
  display: inline-block;
  width: 0.625rem;
  height: 0.625rem;
  margin-right: 0.3125rem;
  border-radius: 50%;
  background: #479d5c;
}

.table__list tbody tr.last {
  width: 12.5rem;
}

.table__list tbody tr.warning {
  border-left: #ffae00 3px solid;
}

.table__list tbody tr.warning td.warning__cell {
  background: #ffd780 !important;
}

.table__list tbody tr.warning td.alert__cell {
  background: #ffeae9 !important;
}

.table__list tbody tr.warning td.success__cell {
  background: #a6efc1 !important;
}

.table__list tbody tr.error {
  border-left: #FF7469 3px solid;
}

.table__list tbody tr.error td.warning__cell {
  background: #ffd780 !important;
}

.table__list tbody tr.error td.alert__cell {
  background: #ffeae9 !important;
}

.table__list tbody tr.success {
  border-left: #3adb76 3px solid;
}

.table__list tbody tr.success td.warning__cell {
  background: #ffd780 !important;
}

.table__list tbody tr.success td.alert__cell {
  background: #ffeae9 !important;
}

.table__list tbody tr.success td.success__cell {
  background: #a6efc1 !important;
}

.admin__list__bar {
  margin-bottom: 1.5625rem;
  padding: 0.9375rem 0;
  border-bottom: 2px solid #24405E;
  /*border-top: 1px solid lighten($black, 90%);
	border-bottom: 1px solid lighten($black, 90%);
	background: $white;*/
}

.admin__list__bar .grid {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}

.admin__list__bar .grid.spacer {
  margin-top: 0.625rem;
}

.admin__list__bar .grid .col {
  display: inline-block;
  min-width: 0;
  padding-top: 12px;
}

.admin__list__bar .grid .col.no-col {
  -webkit-box-flex: 0;
      -ms-flex: none;
          flex: none;
}

.admin__list__bar .grid .col.top {
  vertical-align: top;
  -ms-flex-item-align: start;
      align-self: flex-start;
}

.admin__list__bar .grid .col .title {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  top: 0;
  font-weight: 700;
  font-size: 0.875rem;
}

.admin__list__bar .grid .col .title.results {
  text-transform: none;
  font-weight: 500;
  font-size: 0.75rem;
}

.admin__list__bar .grid .col .title .icon {
  -ms-flex-negative: 0;
      flex-shrink: 0;
}

.admin__list__bar .grid .col .title .icon span {
  width: 2.1875rem;
  height: 2.1875rem;
  margin-right: 0.625rem;
  border-radius: 3px;
  background-clip: padding-box;
  background: #000;
  color: #fff;
  font-size: 1.25rem;
  text-align: center;
  line-height: 2.1875rem;
}

.admin__list__bar .grid .col .title h1 {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  margin: 0;
  min-width: 0;
}

.admin__list__bar .grid .col .title span.seo {
  padding-left: 16px;
  display: none;
}

.admin__list__bar .grid .col .title span.seo:before {
  font-size: 18px;
  color: #24405E;
}

@media screen and (max-width: 63.9375em) {
  .admin__list__bar .grid .col .title span.seo {
    display: inline;
  }
}

.admin__list__bar .grid .col.last {
  -webkit-box-flex: 0;
      -ms-flex: none;
          flex: none;
  -ms-flex-item-align: start;
      align-self: flex-start;
}

.admin__list__bar .grid .col form {
  font-size: 0;
}

.admin__list__bar .grid .col form input[type="text"],
.admin__list__bar .grid .col form select {
  width: 9.375rem;
}

.admin__list__bar .grid .col form .inline__block {
  display: inline-block;
  margin-left: -1px;
  padding: 0 0.625rem;
  border: 1px solid #e6e5e5;
  background: #fff;
  color: #999999;
  font-size: 0.75rem;
  vertical-align: middle;
}

.admin__list__bar .grid .col form .inline__block label,
.admin__list__bar .grid .col form .inline__block input {
  display: inline-block;
  margin: 0;
  padding: 0;
  color: #999999;
  font-weight: 400;
  font-size: 0.75rem;
  line-height: 2.5rem;
  vertical-align: middle;
}

.admin__list__bar .grid .col form .inline__block input {
  margin-left: 0.625rem;
}

.admin__list__bar .grid .col form .inline__block input[type="checkbox"] {
  width: auto;
  height: auto;
  position: relative;
  left: 0;
}

.admin__list__bar .grid .col.button__group {
  padding-top: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  position: static;
}

.admin__list__bar .list__menu {
  font-size: 0.875rem;
}

.admin__list__bar .bar-with-search {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}

.admin__list__bar .bar-with-search .title,
.admin__list__bar .bar-with-search .bar__middle,
.admin__list__bar .bar-with-search .button__group {
  display: inline-block;
}

.admin__list__bar .bar-with-search > .button__group {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}

.admin__list__bar .bar-with-search .bar__middle {
  -webkit-box-flex: 0.7;
      -ms-flex-positive: 0.7;
          flex-grow: 0.7;
}

.admin__list__bar .bar-with-search .bar__middle .before-2-buttons {
  width: calc(100% - 230px);
}

@media screen and (max-width: 63.9375em) {
  .admin__list__bar .bar-with-search .bar__middle .before-2-buttons {
    width: calc(100% - 190px);
  }
}

.admin__list__bar .bar-with-search .button__group {
  position: relative;
}

.admin__grid h4 {
  color: #24405E;
  font-weight: 400;
  font-family: 'SofiaPro-Light';
  font-size: 1.25rem;
}

.admin__grid .gridPanel.unavailable .gridPanel__inner .gridPanel__image .gridPanel__icon {
  display: none;
}

.admin__grid .gridPanel.unavailable .gridPanel__inner .gridPanel__image .unavailable__overlay {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}

.admin__grid .gridPanel .gridPanel__inner {
  position: relative;
  cursor: pointer;
}

.admin__grid .gridPanel .gridPanel__inner .gridPanel__image {
  width: 100%;
  padding-bottom: 100%;
  position: relative;
  /*background-color: darken($white, 20%);
				background-size: cover;
				background-position: 50% 50%;
				background-repeat: no-repeat;
				background-image: url('/assets/img/bg.jpg');*/
  background-color: #fff;
  background-size: 80%;
  background-position: 50% 50%;
  background-repeat: no-repeat;
}

.admin__grid .gridPanel .gridPanel__inner .gridPanel__image.image {
  background: #fff;
}

.admin__grid .gridPanel .gridPanel__inner .gridPanel__image.image img {
  width: 60px;
  height: 100%;
  margin: 0 auto;
  position: absolute;
  bottom: 0;
  left: 0;
  top: 0;
  right: 0;
}

.admin__grid .gridPanel .gridPanel__inner .gridPanel__image input[type="checkbox"] {
  display: none;
}

.admin__grid .gridPanel .gridPanel__inner .gridPanel__image .checkmark {
  width: 100%;
  position: absolute;
  bottom: 0;
  text-align: right;
  color: #fff;
  font-size: 25px;
}

.admin__grid .gridPanel .gridPanel__inner .gridPanel__image .checkmark .fa {
  padding-right: 10px;
}

.admin__grid .gridPanel .gridPanel__inner .gridPanel__image.cb-checked.image {
  background-color: #A8CFD5;
}

.admin__grid .gridPanel .gridPanel__inner .gridPanel__image.cb-not-checked img {
  opacity: 0.4;
}

.admin__grid .gridPanel .gridPanel__inner .gridPanel__image .gridPanel__icon {
  height: 0px;
  text-align: right;
}

.admin__grid .gridPanel .gridPanel__inner .gridPanel__image .gridPanel__icon span {
  position: relative;
  top: 0.625rem;
  right: 0.625rem;
  color: #24405E;
}

@media screen and (min-width: 40em) and (max-width: 63.9375em) {
  .admin__grid .gridPanel .gridPanel__inner .gridPanel__image .gridPanel__icon span {
    top: 0.25rem;
    right: 0.25rem;
  }
}

.admin__grid .gridPanel .gridPanel__inner .gridPanel__image .unavailable__overlay {
  display: none;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  width: 100%;
  height: 100%;
  position: absolute;
  background: rgba(200, 200, 200, 0.7);
}

.admin__grid .gridPanel .gridPanel__inner .gridPanel__image .unavailable__overlay span {
  margin: auto;
  text-align: center;
  font-family: 'Avenir-Heavy';
  font-size: 0.6875rem;
  color: #24405E;
}

.admin__grid .gridPanel .gridPanel__inner .gridPanel__image .form-error {
  position: absolute;
  top: 0.625rem;
  left: 0.3125rem;
}

.admin__grid .gridPanel .gridPanel__inner .gridPanel__meta {
  margin-bottom: 1.875rem;
  padding: 0.625rem 0 1.25rem;
}

.admin__grid .gridPanel .gridPanel__inner .gridPanel__meta h4 {
  color: #24405E;
  font-weight: 400;
  font-family: 'SofiaPro-Light';
  font-size: 0.875rem;
}

.admin__grid .gridPanel .gridPanel__inner .gridPanel__meta div {
  color: #778896;
  font-size: 0.875rem;
}

.admin__grid .gridPanel .gridPanel__inner .gridPanel__meta .button__large__blue,
.admin__grid .gridPanel .gridPanel__inner .gridPanel__meta .ui-dialog .ui-dialog-buttonset .ui-button,
.ui-dialog .ui-dialog-buttonset .admin__grid .gridPanel .gridPanel__inner .gridPanel__meta .ui-button {
  margin-top: 0.625rem;
}

.admin__grid .gridPanel .gridPanel__inner .gridPanel__options,
.admin__grid .gridPanel .gridPanel__inner .gridPanel__options__visible {
  position: absolute;
  top: 0;
  right: 0;
  width: calc(100% - 2vw);
  margin: 1vw;
  box-sizing: border-box;
  cursor: pointer;
  z-index: 2;
}

.admin__grid .gridPanel .gridPanel__inner .gridPanel__options .button__inline__block,
.admin__grid .gridPanel .gridPanel__inner .gridPanel__options__visible .button__inline__block {
  padding-top: 0.8125rem !important;
  padding-left: 0.75rem !important;
  padding-right: 0.75rem !important;
}

@media screen and (max-width: 63.9375em) {
  .admin__grid .gridPanel .gridPanel__inner .gridPanel__options .button__inline__block,
  .admin__grid .gridPanel .gridPanel__inner .gridPanel__options__visible .button__inline__block {
    width: 100% !important;
  }
}

.admin__grid .gridPanel .gridPanel__inner .gridPanel__options .button__inline__block span,
.admin__grid .gridPanel .gridPanel__inner .gridPanel__options__visible .button__inline__block span {
  margin: 0px;
}

.admin__grid .gridPanel .gridPanel__inner .gridPanel__options .button__inline__block:last-child,
.admin__grid .gridPanel .gridPanel__inner .gridPanel__options__visible .button__inline__block:last-child {
  padding-top: 0.0625rem !important;
}

@media screen and (max-width: 63.9375em) {
  .admin__grid .gridPanel .gridPanel__inner .gridPanel__options .button__inline__block,
  .admin__grid .gridPanel .gridPanel__inner .gridPanel__options__visible .button__inline__block {
    padding-left: 0.5rem !important;
    padding-right: 0.5rem !important;
  }
}

.admin__grid .gridPanel .gridPanel__inner .gridPanel__options .quantity__input,
.admin__grid .gridPanel .gridPanel__inner .gridPanel__options__visible .quantity__input {
  margin-bottom: 1.5625rem;
}

.admin__grid .gridPanel .gridPanel__inner .gridPanel__options .quantity__input input[type="number"],
.admin__grid .gridPanel .gridPanel__inner .gridPanel__options__visible .quantity__input input[type="number"] {
  margin: 0px;
  border-top: 2px solid #d8d8d8;
  border-bottom: 2px solid #d8d8d8;
  padding-top: 0.1875rem !important;
  background: #fff;
  box-shadow: none;
  color: #24405E !important;
}

.admin__grid .gridPanel .gridPanel__inner .gridPanel__options .quantity__input .button__inline__block:last-child,
.admin__grid .gridPanel .gridPanel__inner .gridPanel__options__visible .quantity__input .button__inline__block:last-child {
  padding-top: 0.8125rem !important;
}

.admin__grid .gridPanel .gridPanel__inner .gridPanel__options input[type="submit"],
.admin__grid .gridPanel .gridPanel__inner .gridPanel__options .product__quantity__control,
.admin__grid .gridPanel .gridPanel__inner .gridPanel__options__visible input[type="submit"],
.admin__grid .gridPanel .gridPanel__inner .gridPanel__options__visible .product__quantity__control {
  width: 100%;
  border: none;
  border-radius: 1.25rem;
  padding: 0.625rem !important;
  padding-top: 0.875rem !important;
  background: #A8CFD5;
  color: #223A66;
}

.admin__grid .gridPanel .gridPanel__inner .gridPanel__options__visible {
  display: block;
}

.edit-and-delete-line {
  margin: -10px 0 6px;
}

.edit-and-delete-line a {
  font-size: 12px;
}

.plus-button {
  width: 31px;
  height: 32px;
  padding: 6px;
  display: block;
  position: absolute;
  right: 0;
  top: 0;
  border-radius: 4px;
  border: 2px solid #A6AFBC;
  transition: background-color 0.1s linear;
  background-color: #fff;
  cursor: pointer;
}

.plus-button:hover {
  background-color: #e6e6e6;
}

.product-panel {
  position: relative;
}

.product-panel .qty-controls-expander {
  width: 31px;
  height: 32px;
  padding: 6px;
  display: block;
  position: absolute;
  right: 0;
  top: 0;
  border-radius: 4px;
  border: 2px solid #A6AFBC;
  transition: background-color 0.1s linear;
  background-color: #fff;
  cursor: pointer;
}

.product-panel .qty-controls-expander:hover {
  background-color: #e6e6e6;
}

.product-panel .qty-controls-expander.display-none {
  display: none;
}

.product-panel .qty-controls-expander:before {
  font-size: 14px;
}

.product-panel .panel-inputs input.text-input {
  width: 100%;
  border: 2px solid #A6AFBC;
  height: 32px;
  text-align: right;
  padding-right: 6px;
  padding-top: 3px;
  border-radius: 5px;
}

.product-panel .panel-inputs .qty-controls,
.product-panel .panel-inputs .cancel,
.product-panel .panel-inputs .add-to-quote,
.product-panel .panel-inputs .cancel-small {
  width: 120px;
  height: 40px;
  margin-bottom: 2px;
}

.product-panel .panel-inputs .qty-controls {
  width: 120px;
  position: absolute;
  right: 0;
  top: 36px;
}

.product-panel .panel-inputs .qty-controls .decrease-qty,
.product-panel .panel-inputs .qty-controls .increase-qty {
  display: block;
  float: left;
  width: 32px;
  height: 40px;
  padding-top: 7px;
  border: 2px solid #A6AFBC;
  transition: background-color 0.1s linear;
  background-color: #fff;
  cursor: pointer;
}

.product-panel .panel-inputs .qty-controls .decrease-qty:hover,
.product-panel .panel-inputs .qty-controls .increase-qty:hover {
  background-color: #e6e6e6;
}

.product-panel .panel-inputs .qty-controls .decrease-qty {
  border-radius: 50px 0 0 50px;
  padding-left: 12px;
}

.product-panel .panel-inputs .qty-controls .increase-qty {
  border-radius: 0 50px 50px 0;
  padding-left: 11px;
}

.product-panel .panel-inputs .qty-controls input {
  display: block;
  float: left;
  margin: 0 -2px;
  width: 60px;
  height: 40px;
  box-shadow: none;
  border: none;
  -moz-appearance: textfield;
  text-align: center;
  border: 2px solid #A6AFBC;
}

.product-panel .panel-inputs .qty-controls input::-webkit-outer-spin-button,
.product-panel .panel-inputs .qty-controls input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

.product-panel .exit-buttons {
  position: absolute;
  right: 1vw;
  bottom: 1vw;
  z-index: 5;
}

.exit-buttons-bottom-66 .product-panel .exit-buttons {
  bottom: calc(57px + 1vw);
}

.product-panel .exit-buttons .add-to-quote,
.product-panel .exit-buttons .cancel {
  display: block;
  width: 120px;
  height: 40px;
}

.product-panel .exit-buttons .add-to-quote,
.product-panel .exit-buttons .cancel,
.product-panel .exit-buttons .cancel-small span {
  border-radius: 50px;
  display: block;
  text-align: center;
  border: 2px solid #A6AFBC;
  transition: background-color 0.1s linear;
  background-color: #fff;
  cursor: pointer;
}

.product-panel .exit-buttons .add-to-quote:hover,
.product-panel .exit-buttons .cancel:hover,
.product-panel .exit-buttons .cancel-small span:hover {
  background-color: #e6e6e6;
}

.product-panel .exit-buttons .cancel {
  background-color: #fff;
  padding-top: 8px;
  margin-bottom: 4px;
}

.product-panel .exit-buttons .cancel-small {
  position: relative;
}

.product-panel .exit-buttons .cancel-small span {
  width: 40px;
  height: 40px;
  position: absolute;
  right: 0;
  bottom: 0;
  color: #A6AFBC;
  padding-top: 6px;
}

.product-panel .exit-buttons .cancel-small span i:before {
  font-size: 16px;
  position: relative;
  top: 2px;
}

.product-panel .exit-buttons .add-to-quote {
  background-color: #fff;
  padding-top: 5px;
}

/* temp fixes */

.gallery__block {
  padding-bottom: 20px;
}

.gallery__block img {
  width: 100%;
}

form {
  /*&.search__form
	{
		input[type="text"]
		{
			height: auto;
			margin-bottom: 0;
			padding: rem-calc(12) rem-calc(15) rem-calc(8);
			border: 2px solid $blue;
			background-color: transparent;
			background-position: right 3px center;
			background-size: 20px;
			box-shadow: none;
			color: $blue;
			font-size: rem-calc(14);
			//line-height: rem-calc(14);

			@include placeholder
			{
				color: $med-blue;
			}
		}

		position: relative;


	}*/
}

form.edit__form legend {
  display: block;
  width: 100%;
  padding-top: 1.875rem;
  margin-bottom: 1.25rem;
  padding-bottom: 0.625rem;
  border-bottom: 2px solid #24405E;
  color: #24405E;
  font-family: 'SofiaPro-Light';
  font-size: 1.125rem;
  font-weight: 400;
}

form.edit__form legend.hide {
  display: none;
}

form.edit__form fieldset {
  margin-bottom: 2.5rem;
}

form.edit__form label {
  margin: 0 0 -0.125rem 0;
  color: #24405E;
  font-size: 0.8125rem;
}

form.edit__form .form__row {
  margin: 0 0 0.625rem;
}

form.edit__form .form__row.bannerImage label {
  font-weight: 400;
}

form.edit__form .form__row.half .half__row {
  max-width: none;
  margin-right: auto;
  margin-left: auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-flow: row wrap;
          flex-flow: row wrap;
}

@media (min-width: 900px) {
  form.edit__form .form__row.half-desktop .half__row {
    max-width: none;
    margin-right: auto;
    margin-left: auto;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-flow: row wrap;
            flex-flow: row wrap;
  }
}

form.edit__form .form__row.no__label label {
  display: none;
}

form.edit__form .form__row .input-group-label {
  padding: 0 0.9375rem;
  color: #24405E;
}

form.edit__form .form__row .input-group-label.larger {
  font-size: 1.5rem;
}

form.edit__form .form__row .input-group.input-group-right .input-group-label {
  border: 0 none;
  border-left: 0;
  background: #fff;
}

form.edit__form .form__row .input-group.input-group-right input[type="text"],
form.edit__form .form__row .input-group.input-group-right input[type="email"],
form.edit__form .form__row .input-group.input-group-right input[type="password"] {
  border-right: 0;
  padding-right: 0;
}

form.edit__form .form__row .input-group.input-group-left .input-group-label {
  border: 0 none;
  border-right: 0;
  background: #fff;
}

form.edit__form .form__row .input-group.input-group-left input[type="text"],
form.edit__form .form__row .input-group.input-group-left input[type="email"],
form.edit__form .form__row .input-group.input-group-left input[type="password"] {
  border-left: 0;
  padding-left: 0;
}

form.edit__form .form__row .form__col {
  -webkit-box-flex: 1;
      -ms-flex: 1 1 0px;
          flex: 1 1 0px;
  padding-right: 0;
  padding-left: 0;
  min-width: 0;
  padding-right: 0.5rem;
  padding-left: 0.5rem;
}

form.edit__form .form__row .form__col:first-child {
  padding-left: 0;
}

form.edit__form .form__row .form__col:last-child {
  padding-right: 0;
}

form.edit__form input[type="text"],
form.edit__form input[type="email"],
form.edit__form input[type="password"],
form.edit__form textarea,
form.edit__form select {
  height: auto;
  padding: 1.125rem 0.9375rem 0.875rem;
  border: 0 none;
  background-color: #fff;
  background-position: right 3px center;
  background-size: 20px;
  box-shadow: none;
  color: #24405E;
  font-size: 0.875rem;
  /*
			@include placeholder
			{
				color: $med-blue;
			}
			*/
}

form.edit__form input[type="text"] ::-webkit-input-placeholder,
form.edit__form input[type="email"] ::-webkit-input-placeholder,
form.edit__form input[type="password"] ::-webkit-input-placeholder,
form.edit__form textarea ::-webkit-input-placeholder,
form.edit__form select ::-webkit-input-placeholder {
  /* Chrome/Opera/Safari */
  color: #e0e0e0;
}

form.edit__form input[type="text"] ::-moz-placeholder,
form.edit__form input[type="email"] ::-moz-placeholder,
form.edit__form input[type="password"] ::-moz-placeholder,
form.edit__form textarea ::-moz-placeholder,
form.edit__form select ::-moz-placeholder {
  /* Firefox 19+ */
  color: #e0e0e0;
}

form.edit__form input[type="text"] :-ms-input-placeholder,
form.edit__form input[type="email"] :-ms-input-placeholder,
form.edit__form input[type="password"] :-ms-input-placeholder,
form.edit__form textarea :-ms-input-placeholder,
form.edit__form select :-ms-input-placeholder {
  /* IE 10+ */
  color: #e0e0e0;
}

form.edit__form input[type="text"] :-moz-placeholder,
form.edit__form input[type="email"] :-moz-placeholder,
form.edit__form input[type="password"] :-moz-placeholder,
form.edit__form textarea :-moz-placeholder,
form.edit__form select :-moz-placeholder {
  /* Firefox 18- */
  color: #e0e0e0;
}

form.edit__form select {
  background-image: url("/img/admin/dropdown.svg");
}

#referralSelect,
#customerSelect {
  margin-bottom: 1.875rem;
}

.xero {
  padding: 0 20px !important;
}

.xero .account {
  margin-top: 20px;
}

.xero .disabled {
  background: lightgrey;
  color: white;
}

#slider {
  padding: 1.875rem;
  background: #fff;
}

#slider h2 {
  margin: 0;
  color: #24405E;
  font-family: 'SofiaPro-Light';
  font-size: 1.5rem;
}

#slider input[type="text"],
#slider input[type="email"],
#slider textarea,
#slider select {
  border: 1px solid #d8d8d8;
}

#slider input[type="submit"] {
  border: none;
  font-size: 20px;
  padding-top: 8px;
  float: right;
  margin-top: 10px;
}

#slider .bannerImage {
  padding: 20px 0;
}

.flex-title-strip {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  width: 100%;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  padding-bottom: 10px;
}

.flex-title-strip h2,
.flex-title-strip .close__button {
  display: inline-block;
}

.flex-title-strip .close__button {
  cursor: pointer;
}

.flex-title-strip .close__button span:before {
  font-size: 22px;
  color: #A8CFD5;
}

.image-dropzone,
.gallery-dropzone {
  width: 100%;
  height: 8.75rem;
  border: 2px dashed #d8d8d8;
  border-radius: 8px;
  background-color: #fff;
  transition: background-color 0.2s linear;
  cursor: pointer;
  position: relative;
}

.image-dropzone:hover,
.gallery-dropzone:hover {
  background-color: #f3f3f3;
}

.image-dropzone:after,
.gallery-dropzone:after {
  text-align: center;
  content: '\f030';
  font-family: 'FontAwesome';
  color: #A8CFD5;
  font-size: 1.5625rem;
  margin: -1.125rem 0 0 -0.8125rem;
  position: absolute;
  left: 50%;
  top: 50%;
}

.image-dropzone .dz-default,
.image-dropzone .dz-preview,
.gallery-dropzone .dz-default,
.gallery-dropzone .dz-preview {
  height: 100%;
  margin: 0;
  border: 2px dotted transparent;
  border-radius: 0;
  background: transparent;
}

.image-dropzone .dz-default span,
.image-dropzone .dz-preview span,
.gallery-dropzone .dz-default span,
.gallery-dropzone .dz-preview span {
  display: none;
}

.image-dropzone .dz-default .dz-image,
.image-dropzone .dz-preview .dz-image,
.gallery-dropzone .dz-default .dz-image,
.gallery-dropzone .dz-preview .dz-image {
  width: 100%;
  height: 100%;
  border-radius: 0;
}

.panel .panel__section {
  margin-bottom: 3.125rem;
}

.panel .panel__section .images {
  width: 100%;
}

.panel .panel__section .images .images__list--image {
  overflow: hidden;
}

.panel .panel__section .images .images__list--image img {
  width: 100%;
  margin-bottom: 0.625rem;
}

@media screen and (min-width: 64em) {
  .panel .panel__section .images .images__list--image img {
    margin-bottom: 1.25rem;
  }
}

.panel .panel__section .images .images__list {
  max-width: none;
  margin-right: auto;
  margin-left: auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-flow: row wrap;
          flex-flow: row wrap;
  margin-left: -0.9375rem;
  margin-right: -0.9375rem;
}

.panel .panel__section .images span {
  display: none;
  width: 100%;
  color: #A8CFD5;
  font-size: 2.5rem;
  text-align: center;
}

.panel .panel__section.drop {
  margin-bottom: 0px;
}

.panel .panel__section.drop > div {
  margin-bottom: 0.625rem;
}

@media screen and (min-width: 64em) {
  .panel .panel__section.drop > div {
    margin-bottom: 1.25rem;
  }
}

.panel .panel__section.drop > div:last-child {
  margin-bottom: 0px;
}

.panel .panel__section.drop > div img {
  width: 100%;
}

.flash__notice {
  padding: 0.9375rem 1.875rem;
  color: #fff;
  font-size: 0.75rem;
  text-align: center;
  position: fixed;
  left: 16.875rem;
  right: 0;
  top: 5rem;
  z-index: 1;
}

@media screen and (min-width: 40em) and (max-width: 63.9375em) {
  .flash__notice {
    left: 6.25rem;
  }
}

.flash__notice:after {
  content: '';
}

.flash__notice.success {
  background: #A8CFD5;
}

.flash__notice.error {
  background: #FF7469;
}

.ui-datepicker {
  padding: 0 0.75rem 0.9375rem;
  border-radius: 10px;
  background-clip: padding-box;
  background: #fff;
  box-shadow: 0 0 15px rgba(0, 0, 0, 0.1);
  z-index: 5000 !important;
}

.ui-datepicker .ui-datepicker-header {
  height: 3.75rem;
  margin: 0 -0.75rem 0.625rem;
  border-bottom: 1px solid #e2e2e2;
  position: relative;
}

.ui-datepicker .ui-datepicker-header::before,
.ui-datepicker .ui-datepicker-header::after {
  display: table;
  content: ' ';
}

.ui-datepicker .ui-datepicker-header::after {
  clear: both;
}

.ui-datepicker .ui-datepicker-header .ui-datepicker-prev,
.ui-datepicker .ui-datepicker-header .ui-datepicker-next {
  height: 3.75rem;
  color: #b3b2b2;
  position: absolute;
  left: 0;
  top: 0;
}

.ui-datepicker .ui-datepicker-header .ui-datepicker-prev .ui-icon,
.ui-datepicker .ui-datepicker-header .ui-datepicker-next .ui-icon {
  color: transparent;
}

.ui-datepicker .ui-datepicker-header .ui-datepicker-prev .ui-icon:before,
.ui-datepicker .ui-datepicker-header .ui-datepicker-next .ui-icon:before {
  display: block;
  padding: 0.625rem 0.9375rem;
  color: #24405E;
  font-size: 1.625rem;
  font-family: 'FontAwesome';
  content: '\f104';
}

.ui-datepicker .ui-datepicker-header .ui-datepicker-prev:hover,
.ui-datepicker .ui-datepicker-header .ui-datepicker-next:hover {
  text-decoration: none;
}

.ui-datepicker .ui-datepicker-header .ui-datepicker-next {
  left: auto;
  right: 0;
}

.ui-datepicker .ui-datepicker-header .ui-datepicker-next .ui-icon:before {
  content: '\f105';
}

.ui-datepicker .ui-datepicker-header .ui-datepicker-title {
  padding: 0.9375rem 0;
  text-align: center;
  color: #24405E;
  font-size: 1.125rem;
}

.ui-datepicker .ui-datepicker-calendar {
  margin: 0;
}

.ui-datepicker .ui-datepicker-calendar thead {
  border: 0;
  background: #fff;
}

.ui-datepicker .ui-datepicker-calendar thead th {
  padding: 0.5rem 0.75rem;
  color: #24405E;
  font-size: 1.125rem;
}

.ui-datepicker .ui-datepicker-calendar tbody {
  border: 0;
  background: none;
}

.ui-datepicker .ui-datepicker-calendar tbody tr:nth-child(even) {
  background: none;
}

.ui-datepicker .ui-datepicker-calendar tbody td {
  padding: 0.5rem 0.75rem 0.375rem;
  text-align: center;
  color: #24405E;
  font-size: 1.125rem;
}

.ui-datepicker .ui-datepicker-calendar tbody td a {
  color: #24405E;
}

.ui-datepicker .ui-datepicker-calendar tbody td a:hover {
  text-decoration: none;
}

.ui-datepicker .ui-datepicker-calendar tbody td:hover {
  border-radius: 8px;
  background-clip: padding-box;
  background: #A8CFD5;
  color: #fff;
}

.ui-datepicker .ui-datepicker-calendar tbody td:hover a {
  color: #fff;
}

.ui-datepicker .ui-datepicker-calendar tbody td.ui-datepicker-today {
  border-radius: 8px;
  background-clip: padding-box;
  background: #f2f2f2;
}

.ui-datepicker .ui-datepicker-calendar tbody td.ui-datepicker-today:hover {
  border-radius: 8px;
  background-clip: padding-box;
  background: #A8CFD5;
  color: #fff;
}

.ui-datepicker .ui-datepicker-calendar tbody td.ui-datepicker-today:hover a {
  color: #fff;
}

.date__time__picker {
  margin: 0 -0.3125rem;
}

.date__time__picker::before,
.date__time__picker::after {
  display: table;
  content: ' ';
}

.date__time__picker::after {
  clear: both;
}

.date__time__picker .date__picker {
  float: left;
  width: 50%;
  padding: 0 0.3125rem;
}

.date__time__picker .time__picker {
  float: right;
  width: 50%;
  padding: 0 0.3125rem;
}

.date__time__picker .time__picker .select,
.date__time__picker .time__picker .divider {
  float: left;
  width: 45%;
}

.date__time__picker .time__picker .divider {
  width: 10%;
  line-height: 3.75rem;
  text-align: center;
}

.side__bar {
  width: 31.25rem;
  right: -31.25rem !important;
  margin-left: 1.875rem;
  background-color: #fff;
  font-size: 0.8125rem;
  color: #24405E;
  transition: right 0.2s ease;
}

.side__bar.is-open {
  right: -20px !important;
}

.side__bar.is-open .hide__button__wrapper .hide__button .arrow {
  -webkit-transform: scaleX(-1) rotate(-45deg);
          transform: scaleX(-1) rotate(-45deg);
  left: 1.5625rem;
}

.side__bar .inner {
  height: 100%;
  padding-top: 2.625rem;
  padding-right: 3.125rem;
  padding-bottom: 12.5rem;
  padding-left: 1.875rem;
  overflow-y: scroll;
}

.side__bar .hide__button__wrapper {
  /* Template:
			<div class="hide__button__wrapper">
		        <div class="hide__button">
		            <div class="arrow"></div>
		        </div>
		    </div>
		*/
  width: 0;
  height: 0;
  top: 2.5rem;
  right: 2.5rem;
}

.side__bar .hide__button__wrapper .hide__button {
  cursor: pointer;
  width: 4.375rem;
  height: 3.125rem;
  position: absolute;
  top: 1.875rem;
  right: 31.25rem;
  border-radius: 0.625rem 0 0 0.625rem;
  background-color: #A8CFD5;
  opacity: 0.5;
  transition: opacity 0.1s linear;
}

.side__bar .hide__button__wrapper .hide__button:hover {
  opacity: 1;
}

.side__bar .hide__button__wrapper .hide__button .arrow {
  width: 1.25rem;
  height: 1.25rem;
  position: relative;
  top: 0.875rem;
  left: 1.875rem;
  border-top: 2px solid #fff;
  border-left: 2px solid #fff;
  -webkit-transform: rotate(-45deg);
          transform: rotate(-45deg);
}

.side__bar .side__bar__heading {
  font-family: 'SofiaPro-Light';
  font-size: 1.125rem;
  padding-bottom: 0.5rem;
  margin-bottom: 1.5625rem;
  border-bottom: 1px solid #d8d8d8;
}

.side__bar table,
.side__bar tbody,
.side__bar th,
.side__bar tr,
.side__bar td {
  background: none !important;
  border: none;
}

.side__bar table {
  margin: 0;
}

.side__bar td {
  padding: 0;
}

.side__bar td:nth-child(odd) {
  display: none;
}

.side__bar fieldset {
  margin-bottom: 1.5625rem;
}

.side__bar fieldset legend {
  color: #828282;
  margin-bottom: 0.625rem;
  width: 100%;
}

.side__bar fieldset legend .icon-edit {
  float: right;
  font-size: 1rem;
  color: #A8CFD5;
  margin-right: 0.625rem;
  position: relative;
  top: 0.0625rem;
}

.side__bar .block__3 tr:nth-last-child(1),
.side__bar .block__3 tr:nth-last-child(2),
.side__bar .block__3 tr:nth-last-child(3) {
  display: inline-block;
}

.side__bar .block__3 tr:nth-last-child(3) td:nth-last-child(1)::after,
.side__bar .block__3 tr:nth-last-child(2) td:nth-last-child(1)::after {
  content: ".";
  margin-right: 0.3125rem;
}

.side__bar .block__4 legend {
  margin: 0;
  padding-bottom: 0.625rem;
}

.side__bar .block__4 .add__room {
  margin: 1.25rem 0;
}

.side__bar .block__4 .add__room .button__wrapper {
  display: inline-block;
}

.side__bar .block__4 .add__room .add__room__label {
  margin-left: 0.625rem;
  position: relative;
  top: 0.3125rem;
}

.side__bar.alert__box__container {
  padding: 0;
  background: transparent;
}

.side__bar.summary__bar {
  height: 100%;
  position: fixed;
  margin-top: -1.875rem;
  box-shadow: 0 0 15px 0 rgba(0, 0, 0, 0.05);
  z-index: 5;
}

.side__bar.summary__bar .missing {
  padding: 3.125rem 0.625rem;
}

.side__bar.summary__bar .missing p {
  margin: 0;
}

.side__bar .itemline > div {
  float: left;
  padding: 10px 0;
}

.side__bar .itemline > div.qty {
  width: 25px;
}

.side__bar .itemline > div.itemname {
  font-size: 14px;
  font-weight: 600;
  color: #24405E;
  width: calc(100% - 105px);
}

.side__bar .itemline > div.remove {
  width: 80px;
}

.side__bar .itemline > div.qty-adjust-buttons {
  width: 60px;
  text-align: right;
  float: right;
}

.side__bar .itemline > div.qty-adjust-buttons a span:before {
  font-size: 22px;
  color: #d8d8d8;
  transition: color 0.2s linear;
  line-height: 0.5;
}

.side__bar .itemline > div.qty-adjust-buttons a:first-child {
  margin-right: 15px;
}

.side__bar .itemline > div.qty-adjust-buttons a:hover span:before {
  color: #1779ba;
}

.side__bar .itemline.shallow > div {
  padding: 2px 0;
}

.accordion-item {
  border: none !important;
  border-bottom: 2px solid #24405E !important;
  padding: 5px 0 15px !important;
}

.accordion-item .accordion-clickline {
  padding: 5px 0 10px;
  display: block;
}

.accordion-item .accordion-clickline span.caret {
  margin-right: 8px;
}

.accordion-item .accordion-clickline span.room-type {
  font-size: 17px;
  font-weight: 600;
  color: #24405E;
}

.accordion-item .accordion-clickline span.item-count {
  color: #24405E;
  margin-left: 5px;
}

.accordion-item .accordion-content .summary-gallery {
  padding-bottom: 20px;
}

.accordion-item .accordion-content .summary-gallery .image-container {
  cursor: pointer;
  width: calc(50% - 5px);
  height: 100px;
  margin-right: 10px;
  float: left;
  margin-bottom: 10px;
  opacity: 1;
  transition: opacity 0.1s linear;
  position: relative;
}

.accordion-item .accordion-content .summary-gallery .image-container:nth-child(2),
.accordion-item .accordion-content .summary-gallery .image-container.dropzone-container {
  margin-right: 0;
}

.accordion-item .accordion-content .summary-gallery .image-container:hover {
  opacity: 0.6;
}

.accordion-item .accordion-content .summary-gallery .image-container .deleteImage {
  position: absolute;
  top: 5px;
  right: 5px;
  display: block;
  text-align: center;
  width: 25px;
  height: 25px;
  padding-top: 5px;
  background-color: #fff;
  border-radius: 4px;
}

.accordion-item .accordion-content .summary-gallery .image-container .deleteImage:hover {
  background-color: #FF7469;
  color: #fff;
}

.accordion-item .accordion-content .summary-gallery .image-container .image-dropzone {
  height: 100px;
}

.accordion-item .accordion-content .summary-gallery .image-container .has-tip {
  border-bottom: none;
  cursor: pointer;
}

ul.accordion li.accordion-item,
ul.accordion li.accordion-item.is-active {
  margin-bottom: 20px;
}

.mfp-bg {
  background-color: #fff;
}

.mfp-figure:after {
  box-shadow: none;
}

.side__bar table.fname-val {
  margin-top: 10px;
}

.side__bar table.fname-val tr td {
  vertical-align: top;
  padding-bottom: 8px;
}

.side__bar table.fname-val tr td:first-child {
  display: table-cell;
  font-weight: bold;
  width: 120px;
}

.ui-dialog {
  width: 31.25rem !important;
  padding: 1.875rem;
  border-radius: 10px;
  background-clip: padding-box;
  background: #fff;
  box-shadow: 0 0 15px rgba(0, 0, 0, 0.1);
}

.ui-dialog .ui-dialog-titlebar {
  margin-bottom: 1.25rem;
}

.ui-dialog .ui-dialog-titlebar .ui-dialog-title {
  color: #24405E;
  font-weight: 700;
  font-size: 1.125rem;
}

.ui-dialog .ui-dialog-titlebar-close {
  float: right;
  width: 1.5625rem;
  height: 1.5625rem;
  text-indent: -9999px;
  position: relative;
}

.ui-dialog .ui-dialog-titlebar-close:focus {
  outline: none !important;
}

.ui-dialog .ui-dialog-titlebar-close:after {
  display: block;
  width: 1.5625rem;
  height: 1.5625rem;
  content: '\e906';
  color: #24405E;
  text-indent: 0;
  font-family: 'Kontrast_icons_v2';
  position: absolute;
  left: 0;
  top: 0;
}

.ui-dialog .ui-dialog-buttonset {
  margin-top: 1.25rem;
}

.ui-dialog .ui-dialog-buttonset .ui-button:focus {
  outline: none !important;
}

.ui-dialog .ui-dialog-buttonset .ui-button:last-child {
  float: right;
}

.help-block,
.alert {
  display: block;
  text-align: center;
}

.help-block {
  color: #FF7469;
}

.alert {
  color: #FF7469;
}

.searchContainer {
  display: inline-block;
  width: calc(100% - 122px);
}

.visual_search,
.search__form {
  width: 100%;
  margin-right: 0.625rem;
}

.visual_search input,
.search__form input {
  display: inline-block;
  margin: 0;
  padding: 0.625rem 0.9375rem 0.4375rem;
  background-color: #fff;
  border: 2px solid #e6e5e5;
  box-shadow: none;
  height: 2.4375rem;
  font-size: 0.6875rem;
  border-radius: 3.125rem;
}

.visual_search input:focus,
.search__form input:focus {
  outline: none;
  box-shadow: none;
  border: 2px solid #e6e5e5;
}

.visual_search input[type=submit],
.search__form input[type=submit] {
  width: auto;
}

.visual_search #search .VS-search .VS-search-box-wrapper,
.search__form #search .VS-search .VS-search-box-wrapper {
  background-color: #fff;
  border: 2px solid #e6e5e5;
  box-shadow: none;
  height: 2.4375rem;
  border-radius: 3.125rem;
}

.visual_search #search .VS-search .VS-search-box-wrapper .VS-icon.VS-icon-search,
.search__form #search .VS-search .VS-search-box-wrapper .VS-icon.VS-icon-search {
  top: 0.8125rem;
  left: 0.6875rem;
}

.visual_search #search .VS-search .VS-search-box-wrapper .VS-icon.VS-icon-cancel,
.search__form #search .VS-search .VS-search-box-wrapper .VS-icon.VS-icon-cancel {
  top: 0.8125rem;
  right: 0.6875rem;
}

.visual_search #search .VS-search .VS-search-box-wrapper .VS-search-inner,
.search__form #search .VS-search .VS-search-box-wrapper .VS-search-inner {
  top: 0.25rem;
  /*
					.search_facet
					{
						padding-left: 0px;

						.category
						{
							width: 100%;
							margin: 0px;
							padding-top: 0px;
							text-align: center;
							position: relative;
							top: rem-calc(3);
						}
					}
					*/
}

.visual_search #search .VS-search .VS-search-box-wrapper .VS-search-inner .search_input .ui-autocomplete-input,
.search__form #search .VS-search .VS-search-box-wrapper .VS-search-inner .search_input .ui-autocomplete-input {
  height: 100%;
  margin: 0px;
  border: none;
  background: transparent;
  box-shadow: none;
}

.visual_search #search .VS-search .VS-search-box-wrapper .VS-search-inner .search_facet_input_container,
.search__form #search .VS-search .VS-search-box-wrapper .VS-search-inner .search_facet_input_container {
  position: relative;
  top: 0.0625rem;
}

.visual_search #search .VS-search .VS-search-box-wrapper .VS-search-inner .search_facet_remove,
.search__form #search .VS-search .VS-search-box-wrapper .VS-search-inner .search_facet_remove {
  position: absolute;
  top: 0.3125rem;
}

.visual_search #search .VS-search .VS-search-box-wrapper .VS-search-inner .search_facet_input,
.search__form #search .VS-search .VS-search-box-wrapper .VS-search-inner .search_facet_input {
  font-size: 0.6875rem;
  padding: 0.0625rem 0px 0px 0.3125rem;
}

.search__form .visual__search__button__container {
  bottom: 0;
}

ul.ui-menu.ui-widget-content li.ui-menu-item {
  padding: 0.625rem;
}

/* Template 
<div class="alert__box">
    <div class="inner">
        <div class="info__icon__wrapper">
            <div class="info__icon">i</div>
        </div>
        <div class="text">
            <span class="alert__heading">{{ $record->reference_no }}</span> - {{ $record->currentAlertMessage() }} &nbsp;
            {!! Html::delete('admin.quote.deleteAlert', $record->id) !!}
        </div>
        <div class="link__container">
            <a href="#" class="box__link arrow__right">Information Box Link</a>
        </div>
    </div>
</div>
*/

.alert__box {
  position: relative;
  background-color: #DAEDF8;
  padding: 2.5rem 2.5rem 1.25rem 3.75rem;
  margin-bottom: 1.25rem;
}

.alert__box .inner .info__icon__wrapper {
  width: 0px;
  height: 0px;
  position: relative;
}

.alert__box .inner .info__icon__wrapper .info__icon {
  width: 1.375rem;
  height: 1.375rem;
  position: absolute;
  left: -2.5rem;
  text-align: center;
  border-radius: 6.25rem;
  border: 1px solid #24405E;
  color: #24405E;
  font-size: 0.875rem;
  line-height: 1.375rem;
}

.alert__box .inner .text {
  color: #24405E;
  font-size: 0.875rem;
  line-height: 1.375rem;
  padding-bottom: 1.25rem;
}

.alert__box .inner .text .alert__heading {
  font-family: 'SofiaMedium';
}

.alert__box .inner .text .icon-delete {
  position: absolute;
  top: 0.9375rem;
  right: 0.9375rem;
  color: #24405E;
}

.alert__box .inner .link__container {
  padding-top: 2.5rem;
}

.alert__box .inner .link__container .box__link {
  text-decoration: underline;
  font-family: 'SofiaMedium';
  color: #24405E;
}

.arrow__right {
  position: relative;
}

.arrow__right:before,
.arrow__right:after {
  content: "";
  display: block;
  position: absolute;
  border-color: #24405E;
  right: -1.5625rem;
}

.arrow__right:before {
  width: 0.9375rem;
  height: 0px;
  border-top: 1px solid;
  bottom: 0.4375rem;
}

.arrow__right:after {
  width: 0.4375rem;
  height: 0.4375rem;
  border-top: 1px solid;
  border-right: 1px solid;
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
  bottom: 0.25rem;
}

.top__bar {
  margin-bottom: 1.25rem;
}

.top__bar .left a {
  color: #828282;
  font-size: 0.875rem;
}

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

.top__bar .middle .category__name {
  color: #24405E;
  font-size: 1rem;
}

.top__bar .middle .amount__available {
  color: #828282;
  font-size: 0.875rem;
}

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

.top__bar .right .product__search #product__searchbar {
  display: inline-block;
  background: none;
  border: none;
  box-shadow: none;
  max-width: 10rem;
  margin: 0px;
  padding: 0px;
  position: relative;
  bottom: 0.4375rem;
  font-size: 0.875rem;
  color: #24405E;
  text-align: right;
  padding-right: 0.3125rem;
}

.top__bar .right .product__search #product__searchbar::-webkit-input-placeholder {
  color: #24405E;
}

.top__bar .right .product__search #product__searchbar:-ms-input-placeholder {
  color: #24405E;
}

.top__bar .right .product__search #product__searchbar::placeholder {
  color: #24405E;
}

.top__bar .right .product__search label {
  display: inline-block;
}

.top__bar .right .product__search label .icon-search {
  color: #24405E;
  position: relative;
  bottom: 0.25rem;
  font-size: 1.125rem;
}

.admin__list__bar {
  position: relative;
  padding-top: 2.8125rem;
}

.admin__list__bar h1 {
  display: inline-block;
}

.admin__list__bar .generate__PDF {
  font-size: 0.875rem;
  position: absolute !important;
  top: initial !important;
  right: 0px !important;
  bottom: 0.625rem !important;
  color: #24405E;
}

.admin__list__bar .generate__PDF .fa-file-pdf-o {
  font-size: 1.25rem;
  margin-left: 0.9375rem;
  position: relative;
  top: 0.125rem;
}

.admin__list__bar .nested__search__icon {
  float: right;
  position: relative;
  right: 0.75rem;
  bottom: 1.8125rem;
}

.admin__list__bar .heading__summary {
  font-size: 0.875rem;
  line-height: 1.25rem;
  display: inline-block;
  vertical-align: top;
  color: #afafaf;
}

.admin__list__bar .bar__middle .visual__search__button__container .button__inline__block {
  width: 100%;
  height: 2.4375rem;
}

@media screen and (max-width: 74.9375em) {
  .admin__list__bar .noflex-medium {
    height: 160px;
  }

  .admin__list__bar .noflex-medium .bar__left-container,
  .admin__list__bar .noflex-medium .bar__right-container {
    width: 100%;
    max-width: none;
  }

  .admin__list__bar .noflex-medium .bar__right-container {
    clear: both;
    padding-top: 20px;
  }

  .admin__list__bar .noflex-medium .bar__right-container .bar__right .button__group {
    left: 0;
  }
}

.admin__list__bar .bar__right .button__group {
  position: absolute;
  right: 0;
}

.button__group {
  position: absolute;
  right: 0;
}

.button__group .button__inline__block {
  width: 100%;
  padding-top: 0.8125rem !important;
}

.button__group.triple-button {
  width: 374px;
}

.sm-margin-left {
  margin-left: 15px;
}

/* over-ride display: flex */

@media screen and (max-width: 74.9375em) {
  #main__content #content__block .row.noflex-medium {
    display: block;
  }

  #main__content #content__block .row.noflex-medium .column,
  #main__content #content__block .row.noflex-medium .columns,
  #main__content #content__block .row.noflex-medium .columns {
    display: block;
  }
}

.selectize-control .selectize-input {
  border-radius: 0px;
  padding: 1.125rem 0.9375rem 0.875rem;
  box-shadow: none;
  font-size: 0.875rem;
  border: none !important;
  height: 53px !important;
  line-height: 38px !important;
}

ul.tabs {
  margin-bottom: -0.125rem;
  border: none;
  background: transparent;
}

ul.tabs li {
  border: 2px solid #24405E;
  border-bottom: 2px solid #24405E;
  border-right: none;
  border-bottom: none;
}

ul.tabs li:last-child {
  border-right: 2px solid #24405E;
}

ul.tabs li.is-active {
  border-bottom: none;
}

ul.tabs li.is-active a {
  border-bottom: 2px solid #F8F4F2;
  background: transparent;
  color: #24405E;
}

ul.tabs li a {
  border-bottom: 2px solid #24405E;
  background: #eee;
  color: #999;
}

ul.tabs li a:focus {
  outline: none;
}

ul.tabs li a:hover {
  color: #24405E;
}

.tabs-content {
  margin: 0px -0.0625rem;
  background: transparent;
}

.tabs-content .tabs-panel {
  border: 2px solid #24405E;
}

.auto__complete__row__product {
  background-color: white;
  border-bottom: 1px dashed antiquewhite;
  border-left: 1px dashed antiquewhite;
  border-right: 1px dashed antiquewhite;
  width: 10%;
}

.auto__complete__row__product:hover {
  background-color: #d8d8d8;
}

.auto__complete__row__user {
  background-color: white;
  border-bottom: 1px dashed antiquewhite;
  border-left: 1px dashed antiquewhite;
  border-right: 1px dashed antiquewhite;
  width: 20%;
}

.auto__complete__row__user:hover {
  background-color: #d8d8d8;
}

.quantity__input ::-webkit-inner-spin-button {
  -webkit-appearance: none;
}

.quantity__input ::-webkit-outer-spin-button {
  -webkit-appearance: none;
}

.quantity__input .product__quantity__input {
  width: 40px;
  height: 2.5625rem;
  background: #1779BA;
  color: white;
  -moz-appearance: textfield;
  text-align: center;
  border: none;
}

ul.accordion li.accordion-item {
  padding: 0.625rem;
}

ul.accordion li.accordion-item.is-active {
  margin-bottom: 1.25rem;
  border: 1px solid #A8CFD5;
}

ul.accordion li.accordion-item .accordion-title {
  border: none;
  margin-bottom: 0.3125rem;
  padding: 0px;
}

ul.accordion li.accordion-item .accordion-title:hover {
  background: transparent;
}

ul.accordion li.accordion-item .accordion-title:focus {
  background: transparent;
}

ul.accordion li.accordion-item .accordion-content {
  border: none;
  padding: 0px;
}

body.login {
  height: 100%;
  background: #F8F4F2;
}

body.login .login__panel {
  height: 100%;
}

body.login .login__panel > .row {
  height: 100%;
}

body.login .login__panel header {
  height: auto;
  padding: 0 0 0.625rem;
  position: relative;
  background: none;
  box-shadow: none;
}

body.login .login__panel header h1 {
  margin: 0;
  font-size: 2.1875rem;
  font-family: "sofia-pro-soft",sans-serif;
  text-align: center;
}

body.login .login__panel header h1.logo {
  width: 14.375rem;
  margin: 0 auto 2.5rem;
}

body.login .login__panel label {
  margin: 0 0 0.625rem;
  color: #24405E;
  font-size: 0.875rem;
  font-family: 'SofiaPro-ExtraLight';
}

body.login .login__panel .text__inputs {
  margin: 1.25rem auto;
}

body.login .login__panel .text__inputs .field {
  margin: 0.4375rem auto 0;
}

body.login .login__panel .text__inputs .field input {
  max-width: 500px;
  width: 100%;
  height: 45px;
  padding-left: 0.625rem;
  border-radius: 5px;
  border: 0;
  background: #fff;
  box-shadow: none;
  font-family: 'SofiaPro-ExtraLight';
}

body.login .login__panel .text__inputs .field input:hover,
body.login .login__panel .text__inputs .field input:focus {
  box-shadow: none;
  outline: none;
}

body.login .login__panel p {
  text-align: center;
}

body.login .login__panel p a {
  color: #A6A8AB;
  font-weight: 300;
  font-size: 0.75rem;
  font-family: 'SofiaPro-Light';
  text-decoration: underline;
}

body.login .login__panel .button__large__blue,
body.login .login__panel .ui-dialog .ui-dialog-buttonset .ui-button,
.ui-dialog .ui-dialog-buttonset body.login .login__panel .ui-button {
  display: block;
  margin: 0 auto;
  background: #A8CFD5;
  border-color: transparent;
  font-weight: 300;
  font-family: 'SofiaPro-Light';
}

.login__screen {
  height: 100%;
}

.admin__list__bar .row {
  margin: 0px;
  width: 100%;
}

.admin__list__bar .visual__search__button__container {
  display: inline-block;
  position: relative;
  bottom: 0;
  left: 4px;
  vertical-align: top;
}

.admin__list__bar .visual__search__button__container input {
  color: #1779ba;
}

.admin__list__bar .title {
  position: relative;
  top: 0.5rem;
}

.quote__products .top__bar {
  margin-bottom: 1.25rem;
}

.quote__products .top__bar .left a {
  color: #828282;
  font-size: 0.875rem;
}

.quote__products .top__bar .middle .category__name {
  color: #24405E;
  font-size: 1rem;
}

.quote__products .top__bar .middle .amount__available {
  color: #828282;
  font-size: 0.875rem;
}

.quote__products .top__bar .right .product__search #product__searchbar {
  display: inline-block;
  background: none;
  border: none;
  box-shadow: none;
  max-width: 10rem;
  margin: 0px;
  padding: 0px;
  position: relative;
  bottom: 0.4375rem;
  font-size: 0.875rem;
  color: #24405E;
  text-align: right;
  padding-right: 0.3125rem;
}

.quote__products .top__bar .right .product__search #product__searchbar::-webkit-input-placeholder {
  color: #24405E;
}

.quote__products .top__bar .right .product__search #product__searchbar:-ms-input-placeholder {
  color: #24405E;
}

.quote__products .top__bar .right .product__search #product__searchbar::placeholder {
  color: #24405E;
}

.quote__products .top__bar .right .product__search label {
  display: inline-block;
}

.quote__products .top__bar .right .product__search label .icon-search {
  color: #24405E;
  position: relative;
  bottom: 0.25rem;
  font-size: 1.125rem;
}

.pay__page .upper {
  padding: 3.125rem 0px;
  text-align: center;
}

.pay__page .upper .logo img {
  width: 10rem;
  height: auto;
  margin-bottom: 2.1875rem;
}

.pay__page .upper .heading {
  margin: 0px;
  font-family: 'SofiaPro-Light';
  color: #24405E;
}

.pay__page .middle {
  margin-bottom: 1.875rem;
  color: #24405E;
}

.pay__page .middle ul {
  margin: 0px;
  list-style: none;
}

.pay__page .middle ul li {
  font-size: 0.875rem;
  line-height: 1.25rem;
}

.pay__page .middle ul li .list__marker {
  display: inline-block;
  vertical-align: top;
  color: #afafaf;
}

.pay__page .middle ul li .text {
  display: inline-block;
}

.pay__page .middle .left {
  border: 1px solid #24405E;
  padding: 1.875rem 1.25rem;
}

.pay__page .middle .left .customer__details {
  margin-bottom: 1.25rem;
}

.pay__page .middle .left .customer__details .name {
  margin-bottom: 0.3125rem;
  font-family: 'SofiaMedium';
  font-size: 1rem;
}

.pay__page .middle .left .customer__details .list__marker {
  margin-right: 0.3125rem;
}

.pay__page .middle .left .dates {
  margin-bottom: 0.9375rem;
  border-bottom: 1px solid #24405E;
  padding-bottom: 0.9375rem;
  font-size: 0.875rem;
  line-height: 1.25rem;
}

.pay__page .middle .left .dates .heading {
  margin-bottom: 0.625rem;
  font-family: 'SofiaMedium';
  font-size: 0.875rem;
}

.pay__page .middle .left .dates .list__marker {
  width: 5.625rem;
}

.pay__page .middle .left .items {
  margin-bottom: 1.5625rem;
  border-bottom: 1px solid #24405E;
  padding-bottom: 0.9375rem;
}

.pay__page .middle .left .items > div:last-child {
  margin-bottom: 0px;
}

.pay__page .middle .left .items .heading {
  margin-bottom: 0.625rem;
  font-family: 'SofiaMedium';
  font-size: 0.875rem;
}

.pay__page .middle .left .items .item__row {
  margin-bottom: 0.3125rem;
  font-size: 0.875rem;
  line-height: 1.25rem;
}

.pay__page .middle .left .price__summary {
  padding-top: 0.9375rem;
  padding-bottom: 1.25rem;
}

.pay__page .middle .left .price__summary .heading {
  margin-bottom: 0.3125rem;
  font-family: 'SofiaMedium';
  font-size: 0.875rem;
}

.pay__page .middle .left .price__summary .total__price__label {
  border: none;
  text-align: left;
  font-size: 0.875rem;
  color: #afafaf;
}

.pay__page .middle .left .price__summary .total__price__label:focus {
  outline: none;
}

.pay__page .middle .left .price__summary .total__price__value {
  text-align: right;
  font-family: 'SofiaMedium';
  font-size: 1rem;
}

.pay__page .middle .right form .form__row {
  border-radius: 0px;
  margin-bottom: 1.5625rem;
}

.pay__page .middle .right form .form__row.card__holder {
  padding-right: 1.25rem;
}

.pay__page .middle .right form .form__row .form__label {
  margin-bottom: 0.3125rem;
  font-size: 0.875rem;
  line-height: 1.25rem;
  color: #afafaf;
}

.pay__page .middle .right form .form__row .form__field input[type="text"] {
  height: 2.5rem;
  border: none !important;
  background: white;
}

.pay__page .middle .right form .form__row .select__wrapper {
  position: relative;
  background: white;
}

.pay__page .middle .right form .form__row .select__wrapper select {
  height: 2.5rem;
  position: relative;
  z-index: 1;
  margin: 0px;
  border: none !important;
  padding: 0px 0.625rem;
}

.pay__page .middle .right form .form__row .select__wrapper .down__arrow {
  width: 1.25rem;
  height: 1.25rem;
  position: absolute;
  z-index: 0;
  border-top: 1px solid #24405E;
  border-right: 1px solid #24405E;
  -webkit-transform: rotate(135deg);
          transform: rotate(135deg);
  top: 0.125rem;
  right: 0.3125rem;
}

.pay__page .middle .right form .form__row.card__cvc .information__icon {
  display: inline-block;
  width: 0.75rem;
  height: 0.75rem;
  position: relative;
  top: 0.25rem;
  left: 0.25rem;
  border: 1px solid #afafaf;
  border-radius: 50%;
}

.pay__page .middle .right form .form__row.card__cvc .information__icon .inner {
  position: relative;
  bottom: 0.3125rem;
  left: 0.25rem;
  font-size: 0.625rem;
  color: #afafaf;
}

.pay__page .middle .right form .form__row.card__cvc .secure__payment {
  position: relative;
  top: 1.375rem;
}

.pay__page .middle .right form .form__row.card__cvc .secure__payment .secure__icon {
  display: inline-block;
  margin-right: 0.75rem;
  font-size: 2.25rem;
}

.pay__page .middle .right form .form__row.card__cvc .secure__payment .secure__text {
  display: inline-block;
  font-size: 0.625rem;
  line-height: 0.75rem;
}

.pay__page .middle .right form .form__row.card__cvc .secure__payment .secure__text .lead__text {
  color: #24405E;
}

.pay__page .middle .right form .form__row.card__cvc .secure__payment .secure__text .sub__text {
  color: #afafaf;
}

.pay__page .middle .right form .form__row.buttons {
  padding-top: 1.25rem;
}

.pay__page .middle .right form .form__row.buttons #pay-btn,
.pay__page .middle .right form .form__row.buttons #pay-now {
  margin-right: 0.625rem;
  border: 2px solid #81C24B;
  border-radius: 1.25rem;
  padding: 0.625rem 1.5625rem;
  background: #81C24B;
  font-family: 'SofiaMedium';
  font-size: 0.6875rem;
  line-height: 0.75rem;
  color: #fff;
}

.pay__page .middle .right form .form__row.buttons #pay-later,
.pay__page .middle .right form .form__row.buttons #alternate-pay {
  border: 2px solid #A8CFD5;
  border-radius: 1.25rem;
  padding: 0.625rem 1.5625rem;
  background: transparent;
  font-family: 'SofiaMedium';
  font-size: 0.6875rem;
  line-height: 0.75rem;
  color: #24405E;
}

.pay__page .overlay {
  position: fixed;
  top: 0px;
  right: 0px;
  bottom: 0px;
  left: 0px;
  z-index: 1000000;
  /* keep on top of other elements on the page */
  background: rgba(255, 255, 255, 0.5);
}

.pay__page .spinner {
  position: absolute !important;
  left: 50%;
  top: 50%;
}

.pay__page .overlay .text {
  width: 100%;
  position: absolute;
  top: 50%;
  text-align: center;
  color: #24405E;
}

.pay__page .overlay .text span {
  position: relative;
  left: 5px;
  bottom: 7px;
}

.pay__page .stripe-invalid-input {
  border-color: #FF7469 !important;
  background-color: rgba(255, 46, 4, 0.24) !important;
}

.pay__page #pay-now {
  margin-right: 0.625rem;
  border: 2px solid #81C24B;
  border-radius: 1.25rem;
  padding: 0.625rem 1.5625rem;
  background: #81C24B;
  font-family: 'SofiaMedium';
  font-size: 0.6875rem;
  line-height: 0.75rem;
  color: #fff;
}

.pay__page #alternate-pay {
  border: 2px solid #A8CFD5;
  border-radius: 1.25rem;
  padding: 0.625rem 1.5625rem;
  background: transparent;
  font-family: 'SofiaMedium';
  font-size: 0.6875rem;
  line-height: 0.75rem;
  color: #24405E;
}

.dashboard {
  padding-top: 3.125rem;
}

@media screen and (max-width: 63.9375em) {
  .dashboard .dashboard__block {
    margin-bottom: 2.5rem;
  }
}

.gallery.grid .admin__list__bar .bar__right .button__group {
  text-align: right;
}

.gallery.grid .admin__grid {
  margin-bottom: 2.5rem;
}

.gallery.grid .admin__grid .gridPanel {
  margin-bottom: 1.25rem;
}

.gallery-grid {
  width: 100%;
}

.gallery-grid .dz-preview {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}

.gallery-grid .dz-preview [class^='dz-'] {
  display: none;
}

.gallery-grid .dz-preview .dz-image {
  display: block;
}

.grid-cell {
  margin-right: 20px;
  margin-bottom: 20px;
  float: left;
}

.grid-cell .cell-inner {
  width: 100%;
  display: block;
}

.grid-cell.dropzone-inline-container .cell-inner .gallery-dropzone {
  height: auto;
}

.lg-xcount-6 .grid-cell {
  width: calc(16.6% - 20px);
}

.lg-xcount-5 .grid-cell {
  width: calc(20% - 20px);
}

.lg-xcount-4 .grid-cell {
  width: calc(25% - 20px);
}

.lg-xcount-3 .grid-cell {
  width: calc(33.3% - 20px);
}

.lg-xcount-2 .grid-cell {
  width: calc(50% - 20px);
}

.lg-xcount-2 .grid-cell {
  width: calc(50% - 20px);
}

.lg-xcount-1 .grid-cell {
  width: 100%;
}

@media (max-width: 1100px) and (min-width: 700px) {
  .med-xcount-5 .grid-cell {
    width: calc(20% - 20px);
  }

  .med-xcount-4 .grid-cell {
    width: calc(25% - 20px);
  }

  .med-xcount-3 .grid-cell {
    width: calc(33.3% - 20px);
  }

  .med-xcount-2 .grid-cell {
    width: calc(50% - 20px);
  }

  .med-xcount-1 .grid-cell {
    width: 100%;
  }
}

@media (max-width: 699px) and (min-width: 450px) {
  .sm-xcount-4 .grid-cell {
    width: calc(25% - 20px);
  }

  .sm-xcount-3 .grid-cell {
    width: calc(33.3% - 20px);
  }

  .sm-xcount-2 .grid-cell {
    width: calc(50% - 20px);
  }

  .sm-xcount-1 .grid-cell {
    width: calc(100% - 20px);
  }
}

@media (max-width: 449px) {
  .xs-xcount-4 .grid-cell {
    width: calc(25% - 20px);
  }

  .xs-xcount-3 .grid-cell {
    width: calc(33.3% - 20px);
  }

  .xs-xcount-2 .grid-cell {
    width: calc(50% - 20px);
  }

  .xs-xcount-1 .grid-cell {
    width: calc(100% - 20px);
  }
}

@media (min-width: 1450px) {
  .xl-xcount-8 .grid-cell {
    width: calc(12.5% - 20px);
  }

  .xl-xcount-6 .grid-cell {
    width: calc(16.6% - 20px);
  }

  .xl-xcount-5 .grid-cell {
    width: calc(20% - 20px);
  }

  .xl-xcount-4 .grid-cell {
    width: calc(25% - 20px);
  }

  .xl-xcount-3 .grid-cell {
    width: calc(33.3% - 20px);
  }

  .xl-xcount-2 .grid-cell {
    width: calc(50% - 20px);
  }

  .xl-xcount-1 .grid-cell {
    width: 100%;
  }
}

.grid-cell form {
  width: 100%;
  text-align: right;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
}

.height-maker {
  margin-top: 90%;
}

.img-cover,
.img-contain,
.dropzone-inline-container {
  background-position: center;
  box-sizing: border-box;
  border: 1px solid transparent;
  background-repeat: no-repeat;
}

.img-cover {
  background-size: cover;
  position: relative;
}

.img-cover .overlay-controls {
  position: absolute;
  top: 5px;
  right: 5px;
}

.img-contain {
  background-color: #fff;
  background-size: contain;
}

.sortable .ui-state-highlight {
  height: 8.0em;
  line-height: 8.0em;
  width: 12.0em;
  background-color: #A8CFD5;
  float: left;
}

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

.gpor-gantt {
  background-color: #fff;
}

.gpor-gantt .gg-row-label {
  width: 300px;
  float: left;
}

.gpor-gantt .gg-row-label [class^="col-"] {
  float: left;
}

.gpor-gantt .gg-row-label .col-expand-hide-clickable {
  width: 30px;
  text-align: center;
}

.gpor-gantt .gg-row-label .col-graphic {
  width: 60px;
  text-align: center;
  padding-top: 12px;
}

.gpor-gantt .gg-row-label .col-text {
  width: calc(100% - 90px);
}

.gpor-gantt-mobile .gpor-gantt .gg-row-label {
  width: 100%;
}

.gpor-gantt .gg-bar-outer {
  width: calc(100% - 300px);
  position: relative;
  float: left;
  padding: 0;
}

.gpor-gantt .gg-bar-outer .grid-line,
.gpor-gantt .gg-bar-outer .gg-head-cell {
  border-left: 1px solid rgba(180, 180, 180, 0.4);
}

.gpor-gantt-mobile .gpor-gantt .gg-bar-outer {
  width: 100%;
  float: none;
}

.gpor-gantt .gg-header {
  height: 40px;
}

.gpor-gantt .gg-header .gg-row-label [class^="col-"] {
  height: 40px;
}

.gpor-gantt .gg-header .gg-bar-outer {
  height: 40px;
}

.gpor-gantt .gg-header .gg-bar-outer .gg-head-cell {
  height: 40px;
  position: absolute;
  top: 0;
}

.gpor-gantt .gg-header .gg-bar-outer .gg-head-cell .text {
  width: 100%;
  text-align: center;
}

.gpor-gantt .gg-header .col-text,
.gpor-gantt .gg-header .text {
  margin: 0;
  padding: 12px 0 0;
}

.gpor-gantt .gg-row-outer {
  height: 56px;
  border-bottom: 1px solid #ddd;
}

.gpor-gantt .gg-row-outer .gg-row-label {
  height: 56px;
}

.gpor-gantt .gg-row-outer .gg-row-label [class^="col-"] {
  height: 56px;
}

.gpor-gantt .gg-row-outer .gg-row-label .col-expand-hide-clickable {
  cursor: pointer;
  transition: background-color 0.1s linear;
}

.gpor-gantt .gg-row-outer .gg-row-label .col-expand-hide-clickable span {
  position: relative;
  top: 15px;
  left: 5px;
  color: #aaa;
}

.gpor-gantt-mobile .gpor-gantt .gg-row-outer .gg-row-label .col-expand-hide-clickable span {
  left: auto;
  right: 7px;
}

.gpor-gantt .gg-row-outer .gg-row-label .col-expand-hide-clickable.desktop-version:hover {
  background-color: #f1f2f6;
}

.gpor-gantt .gg-row-outer .gg-row-label .col-graphic .fa {
  font-size: 14px;
  position: relative;
  top: 10px;
}

.gpor-gantt .gg-row-outer .gg-row-label .col-text h3 {
  font-size: 12px;
  margin: 19px 0 0;
}

.gpor-gantt .gg-row-outer .gg-row-label .col-text h3 .tasks-text {
  color: #999;
}

.gpor-gantt .gg-row-outer .gg-bar-outer,
.gpor-gantt .gg-row-outer .gg-row {
  box-sizing: content-box;
}

.gpor-gantt .gg-row-outer .gg-bar-outer {
  height: 56px;
}

.gpor-gantt .gg-row-outer .gg-bar-outer .gg-row {
  width: 100%;
  height: 56px;
}

.gpor-gantt .gg-row-outer .gg-bar-outer .gg-row .gg-bar {
  position: absolute;
  top: 0;
  height: 56px;
  box-sizing: border-box;
}

.gpor-gantt .gg-row-outer .gg-bar-outer .gg-row .gg-bar .gg-bar-color {
  border-radius: 100px;
  position: absolute;
  left: 11px;
  width: calc(100% - 22px);
  top: 11px;
  height: 34px;
  overflow: hidden;
}

.gpor-gantt .gg-row-outer .gg-bar-outer .gg-row .gg-bar .gg-bar-color.truncated-left {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}

.gpor-gantt .gg-row-outer .gg-bar-outer .gg-row .gg-bar .gg-bar-color.truncated-right {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}

.gpor-gantt .gg-row-outer .gg-bar-outer .gg-row .gg-bar .gg-bar-color p {
  color: #fff;
  font-size: 11px;
  word-spacing: -1px;
  margin: 9px 0 0 12px;
}

.gpor-gantt .gg-row-outer .gg-bar-outer .grid-line {
  position: absolute;
  top: 0;
  width: 0;
  height: 100%;
}

.gpor-gantt .gg-row-outer.gg-thinner {
  background-color: #f1f2f6;
  height: 44px;
}

.gpor-gantt .gg-row-outer.gg-thinner .gg-row-label {
  height: 44px;
}

.gpor-gantt .gg-row-outer.gg-thinner .gg-row-label .col-text h3 {
  margin-top: 14px;
}

.gpor-gantt .gg-row-outer.gg-thinner .gg-bar-outer {
  height: 44px;
}

.gpor-gantt .gg-row-outer.gg-thinner .gg-bar-outer .gg-row {
  height: 44px;
}

.gpor-gantt .gg-row-outer.gg-thinner .gg-bar-outer .gg-row .gg-bar {
  height: 44px;
}

.gpor-gantt .gg-row-outer.gg-thinner .gg-bar-outer .gg-row .gg-bar .gg-bar-color {
  top: 8px;
  height: 28px;
}

.gpor-gantt .gg-row-outer.gg-thinner .gg-bar-outer .gg-row .gg-bar .gg-bar-color p {
  margin-top: 6px;
}

.gpor-gantt .gg-row-outer.gg-thinner .gg-bar-outer .gg-row .gg-bar .gg-bar-color .resize-handle {
  cursor: e-resize;
}

.gpor-gantt .gg-group-rows {
  transition: height 0.3s ease;
  height: 0;
  overflow: hidden;
}

.gpor-gantt .gg-group-rows .gg-row-sub-group .gg-row-label .col-graphic {
  padding-top: 0;
}

.gpor-gantt .gg-group-rows .gg-row-sub-group .gg-row-sub-group-head-row {
  background-color: #e1e2ea;
}

.gpor-gantt .gg-group-rows .gg-row-sub-group .gg-row-sub-group-head-row h3 {
  font-weight: 600;
}

.gpor-gantt .gg-mobile-info {
  width: 100%;
  border-bottom: 1px solid #ddd;
  padding: 8px 0 6px;
}

.gpor-gantt .gg-mobile-info .mobile-info-row {
  width: 100%;
  height: 45px;
  padding-top: 10px;
}

.gpor-gantt .columns-header-mobile {
  display: none;
}

.gpor-gantt-mobile .gpor-gantt .columns-header-mobile {
  display: block;
  height: 45px;
  border-bottom: 1px solid #ddd;
}

.gpor-gantt-mobile .gpor-gantt .columns-header-mobile .gg-bar-outer {
  position: relative;
  height: 100%;
}

.gpor-gantt-mobile .gpor-gantt .columns-header-mobile .gg-bar-outer .gg-head-cell {
  position: absolute;
  text-align: center;
  height: 100%;
  border-color: #f2f2f2;
}

.gpor-gantt-mobile .gpor-gantt .columns-header-mobile .gg-bar-outer .gg-head-cell .text {
  color: #777;
  margin: 0;
  padding: 5px 3px 0;
  height: 100%;
  font-size: 9px;
}

.gg-row-outer .color-like-bar .fa {
  color: #888;
}

.gg-row-outer .gg-bar-color {
  background-color: #888;
}

.gg-pink .color-like-bar .fa {
  color: #f55a64;
}

.gg-pink .gg-bar-color {
  background-color: #f55a64;
}

.leave-colour .color-like-bar .fa {
  color: #fab;
}

.leave-colour .gg-bar-color {
  background-color: #fab;
}

.project-colour .color-like-bar .fa {
  color: rebeccapurple;
}

.project-colour .gg-bar-color {
  background-color: rebeccapurple;
}

.role-colour .color-like-bar .fa {
  color: royalblue;
}

.role-colour .gg-bar-color {
  background-color: royalblue;
}

body.pdf {
  color: #555;
  font-weight: 500;
  letter-spacing: 1px;
}

body.pdf #content__block {
  font-size: 11px !important;
  margin: 45px 65px;
}

body.pdf #content__block h3 {
  background: #23415e;
  color: #fff;
  display: block;
  font-size: 11px !important;
  font-weight: bold;
  letter-spacing: 1px;
  padding: 5px 10px;
}

body.pdf #content__block p {
  text-align: justify;
}

body.pdf #content__block .grid {
  display: block;
  margin-bottom: 25px;
  position: relative;
}

body.pdf #content__block .grid .grid__item {
  border-top: #a9d0d6 dashed 1px;
  display: inline-block;
  float: left;
  min-height: 200px;
  position: relative;
  width: 320px;
}

body.pdf #content__block .grid .grid__item.right {
  border-right: #a9d0d6 dashed 1px;
}

body.pdf #content__block .grid .grid__item .grid__item--header {
  border-bottom: #a9d0d6 dashed 1px;
  color: #23415e;
  font-weight: 800;
  padding: 3px 10px;
  text-transform: uppercase;
}

body.pdf #content__block .grid .grid__item .grid__item--content {
  padding: 10px;
}

body.pdf #content__block table.total {
  background: transparent !important;
  border: 0 !important;
  border-top: #A9D0D6 1px dashed !important;
  width: 100%;
}

body.pdf #content__block table.total tr {
  border: 0 !important;
}

body.pdf #content__block table.total tr td {
  background: transparent;
  border: 0 !important;
  padding: 10px 0;
  text-transform: uppercase;
}

body.pdf #content__block table.total tr:last-child {
  border-top: #000 1px dashed !important;
}

body.pdf #content__block table.total tr:last-child td {
  border-top: #000 1px dashed !important;
  font-weight: bold;
}

.quote__summary {
  width: auto;
  max-width: none;
}

.quote__summary .admin__list__bar {
  margin: 0px;
}

.quote__summary .admin__list__bar h1 {
  display: inline-block;
}

.quote__summary .admin__list__bar .generate__PDF {
  float: right;
  font-size: 0.875rem;
  position: relative;
  top: 0.3125rem;
  color: #23415e;
}

.quote__summary .admin__list__bar .generate__PDF .fa-file-pdf-o {
  font-size: 1.25rem;
  margin-left: 0.9375rem;
  position: relative;
  top: 0.125rem;
}

.quote__summary .quote__summary__content {
  padding: 2.1875rem 0px;
  padding-bottom: 0px;
  font-size: 0.875rem;
  color: #23415e;
}

.quote__summary .quote__summary__content tbody,
.quote__summary .quote__summary__content tr,
.quote__summary .quote__summary__content th,
.quote__summary .quote__summary__content td {
  background: none !important;
  background-color: transparent !important;
}

.quote__summary .quote__summary__content table {
  margin-bottom: 0.625rem;
  border: none !important;
}

.quote__summary .quote__summary__content table tbody {
  border: none !important;
}

.quote__summary .quote__summary__content table tbody tr th {
  padding: 0px;
  font-weight: normal;
}

.quote__summary .quote__summary__content table tbody tr td {
  padding: 0px !important;
}

.quote__summary .quote__summary__content .logo {
  margin-bottom: 2.5rem;
  width: 9.375rem;
}

.quote__summary .quote__summary__content .quote__summary__block .sub__block {
  padding: 1.25rem;
}

.quote__summary .quote__summary__content .quote__summary__block .content__heading {
  margin-bottom: 0.75rem;
}

.quote__summary .quote__summary__content .quote__summary__block.block__1 {
  margin-bottom: 2.5rem;
}

.quote__summary .quote__summary__content .quote__summary__block.block__1 td,
.quote__summary .quote__summary__content .quote__summary__block.block__1 .date {
  font-size: 1rem;
  line-height: 1.3125rem;
}

.quote__summary .quote__summary__content .quote__summary__block.block__2 {
  margin-bottom: 1.875rem;
}

.quote__summary .quote__summary__content .quote__summary__block.block__2 .sub__block {
  min-height: 8.125rem;
}

.quote__summary .quote__summary__content .quote__summary__block.block__2 table {
  margin: 0px;
}

.quote__summary .quote__summary__content .quote__summary__block.block__3 {
  margin-bottom: 2.5rem;
}

.quote__summary .quote__summary__content .quote__summary__block.block__3 table tr {
  border: 2px solid #23415e !important;
  padding: 1.25rem;
}

.quote__summary .quote__summary__content .quote__summary__block.block__3 table tr th,
.quote__summary .quote__summary__content .quote__summary__block.block__3 table tr td {
  width: 6.25rem;
  text-align: left;
}

.quote__summary .quote__summary__content .quote__summary__block.block__3 table tr td {
  padding: 1.25rem 0px !important;
}

.quote__summary .quote__summary__content .quote__summary__block.block__3 table tr td:first-child {
  padding-left: 1.25rem !important;
}

.quote__summary .quote__summary__content .quote__summary__block.block__3 table tr th:nth-child(1),
.quote__summary .quote__summary__content .quote__summary__block.block__3 table tr td:nth-child(1) {
  width: 18.75rem;
}

.quote__summary .quote__summary__content .quote__summary__block.block__3 table tr td:nth-child(even) {
  display: none;
}

.quote__summary .quote__summary__content .quote__summary__block.block__3 table tr:first-child {
  border: none !important;
}

.quote__summary .quote__summary__content .quote__summary__block.block__4 {
  border-bottom: 2px solid #23415e;
  margin-bottom: 8.75rem;
}

.quote__summary .quote__summary__content .quote__summary__block.block__4 td:first-child {
  padding-left: 1.25rem !important;
}

.quote__summary .quote__summary__content .quote__summary__block.block__4 td.first {
  padding-left: 0 !important;
}

.quote__summary .quote__summary__content .quote__summary__block.block__4 td:last-child {
  text-align: right;
  font-size: 1rem;
}

.quote__summary .quote__summary__content .name td:nth-child(odd),
.quote__summary .quote__summary__content .email td:nth-child(odd),
.quote__summary .quote__summary__content .address td:nth-child(odd) {
  display: none;
}

.quote__summary .quote__summary__content .name table {
  margin: 0px !important;
}

.quote__summary .quote__summary__content .name tr:last-child {
  display: none;
}

.quote__summary .quote__summary__content .email {
  margin-top: 0.75rem;
}

.quote__summary .quote__summary__content .email tr:first-child {
  display: none;
}

.quote__summary .quote__summary__content .address tr:nth-last-child(1),
.quote__summary .quote__summary__content .address tr:nth-last-child(2) {
  display: inline-block !important;
}

.quote__summary .quote__summary__content .address tr:nth-last-child(2) td:nth-last-child(1)::after {
  content: ",";
  padding-right: 0.125rem;
}

.price-summary {
  height: 50px;
}

.price-summary [class^='col-'] {
  float: left;
  height: 50px;
}

.price-summary [class^='col-'] .top,
.price-summary [class^='col-'] .bottom {
  width: 100%;
  height: 25px;
}

.price-summary .col-1 {
  width: calc(100% - (3 * 100px));
}

.price-summary .col-gross,
.price-summary .col-gst,
.price-summary .col-total {
  width: 100px;
}

.price-summary .col-gross .top,
.price-summary .col-gross .bottom,
.price-summary .col-gst .top,
.price-summary .col-gst .bottom,
.price-summary .col-total .top,
.price-summary .col-total .bottom {
  text-align: right;
}

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJlc291cmNlcy9hc3NldHMvc2Fzcy9rb250cmFzdC1hZG1pbi11aS9hZG1pbi5zY3NzIiwicmVzb3VyY2VzL2Fzc2V0cy9zYXNzL2tvbnRyYXN0LWFkbWluLXVpL192YXJpYWJsZXMuc2NzcyIsIm5vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm91bmRhdGlvbi5zY3NzIiwibm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvX3ZlbmRvci9ub3JtYWxpemUtc2Nzcy9zYXNzL19ub3JtYWxpemUuc2NzcyIsIm5vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL192ZW5kb3Ivbm9ybWFsaXplLXNjc3Mvc2Fzcy9ub3JtYWxpemUvX3ZhcmlhYmxlcy5zY3NzIiwibm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvX3ZlbmRvci9ub3JtYWxpemUtc2Nzcy9zYXNzL25vcm1hbGl6ZS9fdmVydGljYWwtcmh5dGhtLnNjc3MiLCJub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9fdmVuZG9yL25vcm1hbGl6ZS1zY3NzL3Nhc3Mvbm9ybWFsaXplL19ub3JtYWxpemUtbWl4aW4uc2NzcyIsIm5vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvaGVscGVycy9fbWlzc2luZy1kZXBlbmRlbmNpZXMuc2NzcyIsIm5vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvaGVscGVycy9fdHJ1ZS5zY3NzIiwibm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX2NvbnRhaW4uc2NzcyIsIm5vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19wdXJnZS5zY3NzIiwibm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX3JlbW92ZS5zY3NzIiwibm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX3JlcGxhY2Uuc2NzcyIsIm5vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL190by1saXN0LnNjc3MiLCJub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX3V0aWwuc2NzcyIsIm5vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fbWF0aC5zY3NzIiwibm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL191bml0LnNjc3MiLCJub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX3ZhbHVlLnNjc3MiLCJub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX2RpcmVjdGlvbi5zY3NzIiwibm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL19jb2xvci5zY3NzIiwibm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL19tYXRoLnNjc3MiLCJub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX3NlbGVjdG9yLnNjc3MiLCJub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX2ZsZXguc2NzcyIsIm5vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fYnJlYWtwb2ludC5zY3NzIiwibm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL19taXhpbnMuc2NzcyIsIm5vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fdHlwb2dyYXBoeS5zY3NzIiwibm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9fZ2xvYmFsLnNjc3MiLCJub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2dyaWQuc2NzcyIsIm5vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fcm93LnNjc3MiLCJub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2NvbHVtbi5zY3NzIiwibm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19zaXplLnNjc3MiLCJub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX3Bvc2l0aW9uLnNjc3MiLCJub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2d1dHRlci5zY3NzIiwibm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19jbGFzc2VzLnNjc3MiLCJub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2xheW91dC5zY3NzIiwibm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyIsIm5vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MveHktZ3JpZC9feHktZ3JpZC5zY3NzIiwibm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy94eS1ncmlkL19ndXR0ZXJzLnNjc3MiLCJub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3h5LWdyaWQvX2dyaWQuc2NzcyIsIm5vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MveHktZ3JpZC9fY2VsbC5zY3NzIiwibm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy94eS1ncmlkL19mcmFtZS5zY3NzIiwibm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy94eS1ncmlkL19wb3NpdGlvbi5zY3NzIiwibm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy94eS1ncmlkL19sYXlvdXQuc2NzcyIsIm5vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MveHktZ3JpZC9fY29sbGFwc2Uuc2NzcyIsIm5vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MveHktZ3JpZC9fY2xhc3Nlcy5zY3NzIiwibm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy90eXBvZ3JhcGh5L190eXBvZ3JhcGh5LnNjc3MiLCJub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX2Jhc2Uuc2NzcyIsIm5vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9faGVscGVycy5zY3NzIiwibm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy90eXBvZ3JhcGh5L19hbGlnbm1lbnQuc2NzcyIsIm5vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9fcHJpbnQuc2NzcyIsIm5vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX2Zvcm1zLnNjc3MiLCJub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL190ZXh0LnNjc3MiLCJub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19jaGVja2JveC5zY3NzIiwibm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fbGFiZWwuc2NzcyIsIm5vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX2hlbHAtdGV4dC5zY3NzIiwibm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9faW5wdXQtZ3JvdXAuc2NzcyIsIm5vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX2ZpZWxkc2V0LnNjc3MiLCJub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19zZWxlY3Quc2NzcyIsIm5vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX3JhbmdlLnNjc3MiLCJub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19wcm9ncmVzcy5zY3NzIiwibm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fbWV0ZXIuc2NzcyIsIm5vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX2Vycm9yLnNjc3MiLCJub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3Zpc2liaWxpdHkuc2NzcyIsIm5vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fZmxvYXQuc2NzcyIsIm5vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fYnV0dG9uLnNjc3MiLCJub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2J1dHRvbi1ncm91cC5zY3NzIiwibm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19hY2NvcmRpb24tbWVudS5zY3NzIiwibm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19hY2NvcmRpb24uc2NzcyIsIm5vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fYmFkZ2Uuc2NzcyIsIm5vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fYnJlYWRjcnVtYnMuc2NzcyIsIm5vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fY2FsbG91dC5zY3NzIiwibm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19jYXJkLnNjc3MiLCJub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2Nsb3NlLWJ1dHRvbi5zY3NzIiwibm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19kcmlsbGRvd24uc2NzcyIsIm5vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fZHJvcGRvd24tbWVudS5zY3NzIiwibm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19kcm9wZG93bi5zY3NzIiwibm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19mbGV4LnNjc3MiLCJub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3Jlc3BvbnNpdmUtZW1iZWQuc2NzcyIsIm5vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fbGFiZWwuc2NzcyIsIm5vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fbWVkaWEtb2JqZWN0LnNjc3MiLCJub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX21lbnUuc2NzcyIsIm5vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fbWVudS1pY29uLnNjc3MiLCJub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX29mZi1jYW52YXMuc2NzcyIsIm5vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fb3JiaXQuc2NzcyIsIm5vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fcGFnaW5hdGlvbi5zY3NzIiwibm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19wcm9ncmVzcy1iYXIuc2NzcyIsIm5vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fcmV2ZWFsLnNjc3MiLCJub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3NsaWRlci5zY3NzIiwibm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19zdGlja3kuc2NzcyIsIm5vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fc3dpdGNoLnNjc3MiLCJub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3RhYmxlLnNjc3MiLCJub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3RhYnMuc2NzcyIsIm5vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fdGl0bGUtYmFyLnNjc3MiLCJub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3RvcC1iYXIuc2NzcyIsIm5vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fdGh1bWJuYWlsLnNjc3MiLCJub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3Rvb2x0aXAuc2NzcyIsIm5vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvcHJvdG90eXBlL19wcm90b3R5cGUuc2NzcyIsIm5vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvcHJvdG90eXBlL19yZWxhdGlvbi5zY3NzIiwibm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9wcm90b3R5cGUvX2JveC5zY3NzIiwibm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9wcm90b3R5cGUvX3JvdGF0ZS5zY3NzIiwibm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9wcm90b3R5cGUvX3RleHQtdXRpbGl0aWVzLnNjc3MiLCJub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3Byb3RvdHlwZS9fdGV4dC10cmFuc2Zvcm1hdGlvbi5zY3NzIiwibm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9wcm90b3R5cGUvX3RleHQtZGVjb3JhdGlvbi5zY3NzIiwibm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9wcm90b3R5cGUvX2ZvbnQtc3R5bGluZy5zY3NzIiwibm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9wcm90b3R5cGUvX2xpc3Qtc3R5bGUtdHlwZS5zY3NzIiwibm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9wcm90b3R5cGUvX3JvdW5kZWQuc2NzcyIsIm5vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvcHJvdG90eXBlL19ib3JkZXJlZC5zY3NzIiwibm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9wcm90b3R5cGUvX3NoYWRvdy5zY3NzIiwibm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9wcm90b3R5cGUvX2Fycm93LnNjc3MiLCJub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3Byb3RvdHlwZS9fc2VwYXJhdG9yLnNjc3MiLCJub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3Byb3RvdHlwZS9fb3ZlcmZsb3cuc2NzcyIsIm5vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvcHJvdG90eXBlL19kaXNwbGF5LnNjc3MiLCJub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3Byb3RvdHlwZS9fcG9zaXRpb24uc2NzcyIsIm5vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvcHJvdG90eXBlL19ib3JkZXItYm94LnNjc3MiLCJub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3Byb3RvdHlwZS9fYm9yZGVyLW5vbmUuc2NzcyIsIm5vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvcHJvdG90eXBlL19zaXppbmcuc2NzcyIsIm5vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvcHJvdG90eXBlL19zcGFjaW5nLnNjc3MiLCJub2RlX21vZHVsZXMvZm9udC1hd2Vzb21lL3Njc3MvZm9udC1hd2Vzb21lLnNjc3MiLCJub2RlX21vZHVsZXMvZm9udC1hd2Vzb21lL3Njc3MvX3ZhcmlhYmxlcy5zY3NzIiwibm9kZV9tb2R1bGVzL2ZvbnQtYXdlc29tZS9zY3NzL19taXhpbnMuc2NzcyIsIm5vZGVfbW9kdWxlcy9mb250LWF3ZXNvbWUvc2Nzcy9fcGF0aC5zY3NzIiwibm9kZV9tb2R1bGVzL2ZvbnQtYXdlc29tZS9zY3NzL19jb3JlLnNjc3MiLCJub2RlX21vZHVsZXMvZm9udC1hd2Vzb21lL3Njc3MvX2xhcmdlci5zY3NzIiwibm9kZV9tb2R1bGVzL2ZvbnQtYXdlc29tZS9zY3NzL19maXhlZC13aWR0aC5zY3NzIiwibm9kZV9tb2R1bGVzL2ZvbnQtYXdlc29tZS9zY3NzL19saXN0LnNjc3MiLCJub2RlX21vZHVsZXMvZm9udC1hd2Vzb21lL3Njc3MvX2JvcmRlcmVkLXB1bGxlZC5zY3NzIiwibm9kZV9tb2R1bGVzL2ZvbnQtYXdlc29tZS9zY3NzL19hbmltYXRlZC5zY3NzIiwibm9kZV9tb2R1bGVzL2ZvbnQtYXdlc29tZS9zY3NzL19yb3RhdGVkLWZsaXBwZWQuc2NzcyIsIm5vZGVfbW9kdWxlcy9mb250LWF3ZXNvbWUvc2Nzcy9fc3RhY2tlZC5zY3NzIiwibm9kZV9tb2R1bGVzL2ZvbnQtYXdlc29tZS9zY3NzL19pY29ucy5zY3NzIiwibm9kZV9tb2R1bGVzL2ZvbnQtYXdlc29tZS9zY3NzL19zY3JlZW4tcmVhZGVyLnNjc3MiLCJyZXNvdXJjZXMvYXNzZXRzL3Nhc3Mva29udHJhc3QtYWRtaW4tdWkvc2V0dGluZ3MvX3NldHRpbmdzLnNjc3MiLCJub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX3V0aWwuc2NzcyIsIm5vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fbWF0aC5zY3NzIiwibm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL191bml0LnNjc3MiLCJub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX3ZhbHVlLnNjc3MiLCJub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX2RpcmVjdGlvbi5zY3NzIiwibm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL19jb2xvci5zY3NzIiwibm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL19tYXRoLnNjc3MiLCJub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX3NlbGVjdG9yLnNjc3MiLCJub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX2ZsZXguc2NzcyIsIm5vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fYnJlYWtwb2ludC5zY3NzIiwibm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL19taXhpbnMuc2NzcyIsIm5vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fdHlwb2dyYXBoeS5zY3NzIiwicmVzb3VyY2VzL2Fzc2V0cy9zYXNzL2tvbnRyYXN0LWFkbWluLXVpL2dsb2JhbC9fY29sb3JzLnNjc3MiLCJyZXNvdXJjZXMvYXNzZXRzL3Nhc3Mva29udHJhc3QtYWRtaW4tdWkvZ2xvYmFsL190eXBvZ3JhcGh5LnNjc3MiLCJyZXNvdXJjZXMvYXNzZXRzL3Nhc3Mva29udHJhc3QtYWRtaW4tdWkvZ2xvYmFsL19taXhpbnMuc2NzcyIsInJlc291cmNlcy9hc3NldHMvc2Fzcy9rb250cmFzdC1hZG1pbi11aS9nbG9iYWwvY3VzdG9tLXVpLnNjc3MiLCJyZXNvdXJjZXMvYXNzZXRzL3Nhc3Mva29udHJhc3QtYWRtaW4tdWkvX2Jhc2Uuc2NzcyIsInJlc291cmNlcy9hc3NldHMvc2Fzcy9rb250cmFzdC1hZG1pbi11aS9tb2R1bGVzL19oZWFkZXIuc2NzcyIsInJlc291cmNlcy9hc3NldHMvc2Fzcy9rb250cmFzdC1hZG1pbi11aS9tb2R1bGVzL19mb290ZXIuc2NzcyIsInJlc291cmNlcy9hc3NldHMvc2Fzcy9rb250cmFzdC1hZG1pbi11aS9jb21wb25lbnRzL19uYXYuc2NzcyIsInJlc291cmNlcy9hc3NldHMvc2Fzcy9rb250cmFzdC1hZG1pbi11aS9jb21wb25lbnRzL19idXR0b25zLnNjc3MiLCJyZXNvdXJjZXMvYXNzZXRzL3Nhc3Mva29udHJhc3QtYWRtaW4tdWkvY29tcG9uZW50cy9fbGlzdHMuc2NzcyIsInJlc291cmNlcy9hc3NldHMvc2Fzcy9rb250cmFzdC1hZG1pbi11aS9jb21wb25lbnRzL19mb3Jtcy5zY3NzIiwicmVzb3VyY2VzL2Fzc2V0cy9zYXNzL2tvbnRyYXN0LWFkbWluLXVpL2NvbXBvbmVudHMvX3NsaWRlci5zY3NzIiwicmVzb3VyY2VzL2Fzc2V0cy9zYXNzL2tvbnRyYXN0LWFkbWluLXVpL2NvbXBvbmVudHMvX2Ryb3B6b25lLnNjc3MiLCJyZXNvdXJjZXMvYXNzZXRzL3Nhc3Mva29udHJhc3QtYWRtaW4tdWkvY29tcG9uZW50cy9fZmxhc2hfbm90aWNlLnNjc3MiLCJyZXNvdXJjZXMvYXNzZXRzL3Nhc3Mva29udHJhc3QtYWRtaW4tdWkvY29tcG9uZW50cy9fZGF0ZXBpY2tlci5zY3NzIiwicmVzb3VyY2VzL2Fzc2V0cy9zYXNzL2tvbnRyYXN0LWFkbWluLXVpL2NvbXBvbmVudHMvX3NpZGVfYmFyLnNjc3MiLCJyZXNvdXJjZXMvYXNzZXRzL3Nhc3Mva29udHJhc3QtYWRtaW4tdWkvY29tcG9uZW50cy9fZGlhbG9nLnNjc3MiLCJyZXNvdXJjZXMvYXNzZXRzL3Nhc3Mva29udHJhc3QtYWRtaW4tdWkvY29tcG9uZW50cy9faGVscC1ibG9jay5zY3NzIiwicmVzb3VyY2VzL2Fzc2V0cy9zYXNzL2tvbnRyYXN0LWFkbWluLXVpL2NvbXBvbmVudHMvX3Zpc3VhbC1zZWFyY2guc2NzcyIsInJlc291cmNlcy9hc3NldHMvc2Fzcy9rb250cmFzdC1hZG1pbi11aS9jb21wb25lbnRzL19hbGVydC1ib3guc2NzcyIsInJlc291cmNlcy9hc3NldHMvc2Fzcy9rb250cmFzdC1hZG1pbi11aS9jb21wb25lbnRzL19hcnJvd3Muc2NzcyIsInJlc291cmNlcy9hc3NldHMvc2Fzcy9rb250cmFzdC1hZG1pbi11aS9jb21wb25lbnRzL190b3AtYmFyLnNjc3MiLCJyZXNvdXJjZXMvYXNzZXRzL3Nhc3Mva29udHJhc3QtYWRtaW4tdWkvY29tcG9uZW50cy9fYWRtaW4tbGlzdC1iYXIuc2NzcyIsInJlc291cmNlcy9hc3NldHMvc2Fzcy9rb250cmFzdC1hZG1pbi11aS9jb21wb25lbnRzL19zZWxlY3RpemUuc2NzcyIsInJlc291cmNlcy9hc3NldHMvc2Fzcy9rb250cmFzdC1hZG1pbi11aS9jb21wb25lbnRzL190YWJzLnNjc3MiLCJyZXNvdXJjZXMvYXNzZXRzL3Nhc3Mva29udHJhc3QtYWRtaW4tdWkvY29tcG9uZW50cy9fYXV0b2NvbXBsZXRlLnNjc3MiLCJyZXNvdXJjZXMvYXNzZXRzL3Nhc3Mva29udHJhc3QtYWRtaW4tdWkvY29tcG9uZW50cy9fcXVhbnRpdHkuc2NzcyIsInJlc291cmNlcy9hc3NldHMvc2Fzcy9rb250cmFzdC1hZG1pbi11aS9jb21wb25lbnRzL19hY2NvcmRpb24uc2NzcyIsInJlc291cmNlcy9hc3NldHMvc2Fzcy9rb250cmFzdC1hZG1pbi11aS90ZW1wbGF0ZXMvX2xvZ2luLnNjc3MiLCJyZXNvdXJjZXMvYXNzZXRzL3Nhc3Mva29udHJhc3QtYWRtaW4tdWkvdGVtcGxhdGVzL19xdW90ZS1saXN0LnNjc3MiLCJyZXNvdXJjZXMvYXNzZXRzL3Nhc3Mva29udHJhc3QtYWRtaW4tdWkvdGVtcGxhdGVzL19xdW90ZS1wcm9kdWN0cy5zY3NzIiwicmVzb3VyY2VzL2Fzc2V0cy9zYXNzL2tvbnRyYXN0LWFkbWluLXVpL3RlbXBsYXRlcy9fcGF5LXBhZ2Uuc2NzcyIsInJlc291cmNlcy9hc3NldHMvc2Fzcy9rb250cmFzdC1hZG1pbi11aS90ZW1wbGF0ZXMvX2Rhc2hib2FyZC5zY3NzIiwicmVzb3VyY2VzL2Fzc2V0cy9zYXNzL2tvbnRyYXN0LWFkbWluLXVpL3RlbXBsYXRlcy9fZ2FsbGVyeS5zY3NzIiwicmVzb3VyY2VzL2Fzc2V0cy9zYXNzL2tvbnRyYXN0LWFkbWluLXVpL3RlbXBsYXRlcy9fZ3Bvci1nYW50dC5zY3NzIiwicmVzb3VyY2VzL2Fzc2V0cy9zYXNzL3N0cnVjdHVyZS9fcGRmLnNjc3MiXSwic291cmNlc0NvbnRlbnQiOlsiQGltcG9ydCAndmFyaWFibGVzJztcblxuXG5AaW1wb3J0IFwiLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2ZvdW5kYXRpb25cIjtcbkBpbXBvcnQgXCIuL25vZGVfbW9kdWxlcy9mb250LWF3ZXNvbWUvc2Nzcy9mb250LWF3ZXNvbWVcIjtcbkBpbXBvcnQgJy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9tYWduaWZpYy1wb3B1cC9kaXN0L21hZ25pZmljLXBvcHVwLmNzcyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGZhbmN5YXBwcy9mYW5jeWJveC9kaXN0L2pxdWVyeS5mYW5jeWJveC5jc3MnO1xuLy8gL2hvbWUvZGNvZGVncm91cC93b3JrL2tvbnRyYXN0L2tvbnRyYXN0aW50ZXJpb3JzL25vZGVfbW9kdWxlcy9tYWduaWZpYy1wb3B1cC9zcmMvY3NzL21haW4uc2Nzc1xuLy8gRm91bmRhdGlvblxuQGluY2x1ZGUgZm91bmRhdGlvbi1nbG9iYWwtc3R5bGVzO1xuQGluY2x1ZGUgZm91bmRhdGlvbi1ncmlkO1xuQGluY2x1ZGUgZm91bmRhdGlvbi1mbGV4LWdyaWQ7XG5AaW5jbHVkZSBmb3VuZGF0aW9uLWZsZXgtY2xhc3NlcztcbkBpbmNsdWRlIGZvdW5kYXRpb24tdHlwb2dyYXBoeTtcbkBpbmNsdWRlIGZvdW5kYXRpb24tZm9ybXM7XG5AaW5jbHVkZSBmb3VuZGF0aW9uLWJ1dHRvbjtcbkBpbmNsdWRlIGZvdW5kYXRpb24tYWNjb3JkaW9uO1xuQGluY2x1ZGUgZm91bmRhdGlvbi1hY2NvcmRpb24tbWVudTtcbkBpbmNsdWRlIGZvdW5kYXRpb24tYmFkZ2U7XG5AaW5jbHVkZSBmb3VuZGF0aW9uLWJyZWFkY3J1bWJzO1xuQGluY2x1ZGUgZm91bmRhdGlvbi1idXR0b24tZ3JvdXA7XG5AaW5jbHVkZSBmb3VuZGF0aW9uLWNhbGxvdXQ7XG5AaW5jbHVkZSBmb3VuZGF0aW9uLWNhcmQ7XG5AaW5jbHVkZSBmb3VuZGF0aW9uLWNsb3NlLWJ1dHRvbjtcbkBpbmNsdWRlIGZvdW5kYXRpb24tbWVudTtcbkBpbmNsdWRlIGZvdW5kYXRpb24tbWVudS1pY29uO1xuQGluY2x1ZGUgZm91bmRhdGlvbi1kcmlsbGRvd24tbWVudTtcbkBpbmNsdWRlIGZvdW5kYXRpb24tZHJvcGRvd247XG5AaW5jbHVkZSBmb3VuZGF0aW9uLWRyb3Bkb3duLW1lbnU7XG5AaW5jbHVkZSBmb3VuZGF0aW9uLXJlc3BvbnNpdmUtZW1iZWQ7XG5AaW5jbHVkZSBmb3VuZGF0aW9uLWxhYmVsO1xuQGluY2x1ZGUgZm91bmRhdGlvbi1tZWRpYS1vYmplY3Q7XG5AaW5jbHVkZSBmb3VuZGF0aW9uLW9mZi1jYW52YXM7XG5AaW5jbHVkZSBmb3VuZGF0aW9uLW9yYml0O1xuQGluY2x1ZGUgZm91bmRhdGlvbi1wYWdpbmF0aW9uO1xuQGluY2x1ZGUgZm91bmRhdGlvbi1wcm9ncmVzcy1iYXI7XG5AaW5jbHVkZSBmb3VuZGF0aW9uLXNsaWRlcjtcbkBpbmNsdWRlIGZvdW5kYXRpb24tc3RpY2t5O1xuQGluY2x1ZGUgZm91bmRhdGlvbi1yZXZlYWw7XG5AaW5jbHVkZSBmb3VuZGF0aW9uLXN3aXRjaDtcbkBpbmNsdWRlIGZvdW5kYXRpb24tdGFibGU7XG5AaW5jbHVkZSBmb3VuZGF0aW9uLXRhYnM7XG5AaW5jbHVkZSBmb3VuZGF0aW9uLXRodW1ibmFpbDtcbkBpbmNsdWRlIGZvdW5kYXRpb24tdGl0bGUtYmFyO1xuQGluY2x1ZGUgZm91bmRhdGlvbi10b29sdGlwO1xuQGluY2x1ZGUgZm91bmRhdGlvbi10b3AtYmFyO1xuQGluY2x1ZGUgZm91bmRhdGlvbi12aXNpYmlsaXR5LWNsYXNzZXM7XG5AaW5jbHVkZSBmb3VuZGF0aW9uLWZsb2F0LWNsYXNzZXM7XG5cbi8vIFNldHRpbmdzXG5AaW1wb3J0IFwic2V0dGluZ3Mvc2V0dGluZ3NcIjtcblxuLy8gR2xvYmFsc1xuQGltcG9ydCAnZ2xvYmFsL2NvbG9ycyc7XG5AaW1wb3J0ICdnbG9iYWwvdHlwb2dyYXBoeSc7XG5AaW1wb3J0ICdnbG9iYWwvbWl4aW5zJztcbkBpbXBvcnQgJ2dsb2JhbC9jdXN0b20tdWknO1xuXG4vLyBCYXNlXG5AaW1wb3J0ICdiYXNlJztcblxuLy8gTW9kdWxlc1xuQGltcG9ydCAnbW9kdWxlcy9oZWFkZXInO1xuQGltcG9ydCAnbW9kdWxlcy9mb290ZXInO1xuXG4vLyBDb21wb25lbnRzXG5AaW1wb3J0ICdjb21wb25lbnRzL25hdic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2J1dHRvbnMnO1xuQGltcG9ydCAnY29tcG9uZW50cy9saXN0cyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2Zvcm1zJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvc2xpZGVyJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZHJvcHpvbmUnO1xuQGltcG9ydCAnY29tcG9uZW50cy9mbGFzaF9ub3RpY2UnO1xuQGltcG9ydCAnY29tcG9uZW50cy9kYXRlcGlja2VyJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvc2lkZV9iYXInO1xuQGltcG9ydCAnY29tcG9uZW50cy9kaWFsb2cnO1xuQGltcG9ydCAnY29tcG9uZW50cy9oZWxwLWJsb2NrJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdmlzdWFsLXNlYXJjaCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2FsZXJ0LWJveCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2Fycm93cyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3RvcC1iYXInO1xuQGltcG9ydCAnY29tcG9uZW50cy9hZG1pbi1saXN0LWJhcic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3NlbGVjdGl6ZSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3RhYnMnO1xuQGltcG9ydCAnY29tcG9uZW50cy9hdXRvY29tcGxldGUnO1xuQGltcG9ydCAnY29tcG9uZW50cy9xdWFudGl0eSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2FjY29yZGlvbic7XG5cbi8vIEFkbWluIFRlbXBsYXRlc1xuQGltcG9ydCAndGVtcGxhdGVzL2xvZ2luJztcbkBpbXBvcnQgJ3RlbXBsYXRlcy9xdW90ZS1saXN0JztcbkBpbXBvcnQgJ3RlbXBsYXRlcy9xdW90ZS1wcm9kdWN0cyc7XG5AaW1wb3J0ICd0ZW1wbGF0ZXMvcGF5LXBhZ2UnO1xuQGltcG9ydCAndGVtcGxhdGVzL2Rhc2hib2FyZCc7XG5AaW1wb3J0ICd0ZW1wbGF0ZXMvZ2FsbGVyeSc7XG5AaW1wb3J0IFwidGVtcGxhdGVzL2dwb3ItZ2FudHRcIjtcblxuLy8gU3RydWN0dXJlXG4vLyBUT0RPOiBDaGFuZ2UgZm9yIHN1bW1hcnlcbkBpbXBvcnQgJy4uL3N0cnVjdHVyZS9wZGYnOyIsIlxuXG5cbiRkZXNrdG9wLW1pbi13aWR0aDogOTAwcHg7XG4kbW9iaWxlLW1heC13aWR0aDogKCRkZXNrdG9wLW1pbi13aWR0aCAtIDFweCk7IiwiLyoqXG4gKiBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4gKiBWZXJzaW9uIDYuNC4zXG4gKiBmb3VuZGF0aW9uLnp1cmIuY29tXG4gKiBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcbiAqL1xuXG4vLyBEZXBlbmRlbmNpZXNcbkBpbXBvcnQgJy4uL192ZW5kb3Ivbm9ybWFsaXplLXNjc3Mvc2Fzcy9ub3JtYWxpemUnO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL21pc3NpbmctZGVwZW5kZW5jaWVzJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvaGVscGVycy90cnVlJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL2NvbnRhaW4nO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvcHVyZ2UnO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvcmVtb3ZlJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL3JlcGxhY2UnO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvdG8tbGlzdCc7XG5cbi8vIFNldHRpbmdzXG4vLyBpbXBvcnQgeW91ciBvd24gYHNldHRpbmdzYCBoZXJlIG9yXG4vLyBpbXBvcnQgYW5kIG1vZGlmeSB0aGUgZGVmYXVsdCBzZXR0aW5ncyB0aHJvdWdoXG4vLyBAaW1wb3J0ICdzZXR0aW5ncy9zZXR0aW5ncyc7XG5cbi8vIFNhc3MgdXRpbGl0aWVzXG5AaW1wb3J0ICd1dGlsL3V0aWwnO1xuXG4vLyBHbG9iYWwgdmFyaWFibGVzIGFuZCBzdHlsZXNcbkBpbXBvcnQgJ2dsb2JhbCc7XG5cbi8vIENvbXBvbmVudHNcbkBpbXBvcnQgJ2dyaWQvZ3JpZCc7XG5AaW1wb3J0ICd4eS1ncmlkL3h5LWdyaWQnO1xuQGltcG9ydCAndHlwb2dyYXBoeS90eXBvZ3JhcGh5JztcbkBpbXBvcnQgJ2Zvcm1zL2Zvcm1zJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdmlzaWJpbGl0eSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2Zsb2F0JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnV0dG9uJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnV0dG9uLWdyb3VwJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYWNjb3JkaW9uLW1lbnUnO1xuQGltcG9ydCAnY29tcG9uZW50cy9hY2NvcmRpb24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9iYWRnZSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2JyZWFkY3J1bWJzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvY2FsbG91dCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2NhcmQnO1xuQGltcG9ydCAnY29tcG9uZW50cy9jbG9zZS1idXR0b24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9kcmlsbGRvd24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9kcm9wZG93bi1tZW51JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZHJvcGRvd24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9mbGV4JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcmVzcG9uc2l2ZS1lbWJlZCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2xhYmVsJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvbWVkaWEtb2JqZWN0JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvbWVudSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL21lbnUtaWNvbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL29mZi1jYW52YXMnO1xuQGltcG9ydCAnY29tcG9uZW50cy9vcmJpdCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3BhZ2luYXRpb24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9wcm9ncmVzcy1iYXInO1xuQGltcG9ydCAnY29tcG9uZW50cy9yZXZlYWwnO1xuQGltcG9ydCAnY29tcG9uZW50cy9zbGlkZXInO1xuQGltcG9ydCAnY29tcG9uZW50cy9zdGlja3knO1xuQGltcG9ydCAnY29tcG9uZW50cy9zd2l0Y2gnO1xuQGltcG9ydCAnY29tcG9uZW50cy90YWJsZSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3RhYnMnO1xuQGltcG9ydCAnY29tcG9uZW50cy90aXRsZS1iYXInO1xuQGltcG9ydCAnY29tcG9uZW50cy90b3AtYmFyJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdGh1bWJuYWlsJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdG9vbHRpcCc7XG5AaW1wb3J0ICdwcm90b3R5cGUvcHJvdG90eXBlJztcblxuQG1peGluIGZvdW5kYXRpb24tZXZlcnl0aGluZyhcbiAgJGZsZXg6IHRydWUsXG4gICRwcm90b3R5cGU6IGZhbHNlXG4pIHtcbiAgQGlmICRmbGV4IHtcbiAgICAkZ2xvYmFsLWZsZXhib3g6IHRydWUgIWdsb2JhbDtcbiAgfVxuXG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZ2xvYmFsLXN0eWxlcztcbiAgQGlmIG5vdCAkZmxleCB7XG4gICAgQGluY2x1ZGUgZm91bmRhdGlvbi1ncmlkO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAaWYgJHh5LWdyaWQge1xuICAgICAgQGluY2x1ZGUgZm91bmRhdGlvbi14eS1ncmlkLWNsYXNzZXM7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEBpbmNsdWRlIGZvdW5kYXRpb24tZmxleC1ncmlkO1xuICAgIH1cbiAgfVxuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXR5cG9ncmFwaHk7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZm9ybXM7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYnV0dG9uO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWFjY29yZGlvbjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1hY2NvcmRpb24tbWVudTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1iYWRnZTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1icmVhZGNydW1icztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1idXR0b24tZ3JvdXA7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tY2FsbG91dDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1jYXJkO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWNsb3NlLWJ1dHRvbjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1tZW51O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLW1lbnUtaWNvbjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1kcmlsbGRvd24tbWVudTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1kcm9wZG93bjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1kcm9wZG93bi1tZW51O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXJlc3BvbnNpdmUtZW1iZWQ7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tbGFiZWw7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tbWVkaWEtb2JqZWN0O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLW9mZi1jYW52YXM7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tb3JiaXQ7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcGFnaW5hdGlvbjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1wcm9ncmVzcy1iYXI7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tc2xpZGVyO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXN0aWNreTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1yZXZlYWw7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tc3dpdGNoO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRhYmxlO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRhYnM7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdGh1bWJuYWlsO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRpdGxlLWJhcjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10b29sdGlwO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRvcC1iYXI7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdmlzaWJpbGl0eS1jbGFzc2VzO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZsb2F0LWNsYXNzZXM7XG5cbiAgQGlmICRmbGV4IHtcbiAgICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZsZXgtY2xhc3NlcztcbiAgfVxuXG4gIEBpZiAkcHJvdG90eXBlIHtcbiAgICBAaW5jbHVkZSBmb3VuZGF0aW9uLXByb3RvdHlwZS1jbGFzc2VzO1xuICB9XG59XG4iLCJAaW1wb3J0ICdub3JtYWxpemUvdmFyaWFibGVzJztcbkBpbXBvcnQgJ25vcm1hbGl6ZS92ZXJ0aWNhbC1yaHl0aG0nO1xuQGltcG9ydCAnbm9ybWFsaXplL25vcm1hbGl6ZS1taXhpbic7XG4iLCIvL1xuLy8gVmFyaWFibGVzXG4vL1xuLy8gWW91IGNhbiBvdmVycmlkZSB0aGUgZGVmYXVsdCB2YWx1ZXMgYnkgc2V0dGluZyB0aGUgdmFyaWFibGVzIGluIHlvdXIgU2Fzc1xuLy8gYmVmb3JlIGltcG9ydGluZyB0aGUgbm9ybWFsaXplLXNjc3MgbGlicmFyeS5cblxuLy8gVGhlIGZvbnQgc2l6ZSBzZXQgb24gdGhlIHJvb3QgaHRtbCBlbGVtZW50LlxuJGJhc2UtZm9udC1zaXplOiAxNnB4ICFkZWZhdWx0O1xuXG4vLyBUaGUgYmFzZSBsaW5lIGhlaWdodCBkZXRlcm1pbmVzIHRoZSBiYXNpYyB1bml0IG9mIHZlcnRpY2FsIHJoeXRobS5cbiRiYXNlLWxpbmUtaGVpZ2h0OiAyNHB4ICFkZWZhdWx0O1xuXG4vLyBUaGUgbGVuZ3RoIHVuaXQgaW4gd2hpY2ggdG8gb3V0cHV0IHZlcnRpY2FsIHJoeXRobSB2YWx1ZXMuXG4vLyBTdXBwb3J0ZWQgdmFsdWVzOiBweCwgZW0sIHJlbS5cbiRiYXNlLXVuaXQ6ICdlbScgIWRlZmF1bHQ7XG5cbi8vIFRoZSBkZWZhdWx0IGZvbnQgZmFtaWx5LlxuJGJhc2UtZm9udC1mYW1pbHk6IHNhbnMtc2VyaWYgIWRlZmF1bHQ7XG5cbi8vIFRoZSBmb250IHNpemVzIGZvciBoMS1oNi5cbiRoMS1mb250LXNpemU6IDIgICAgKiAkYmFzZS1mb250LXNpemUgIWRlZmF1bHQ7XG4kaDItZm9udC1zaXplOiAxLjUgICogJGJhc2UtZm9udC1zaXplICFkZWZhdWx0O1xuJGgzLWZvbnQtc2l6ZTogMS4xNyAqICRiYXNlLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRoNC1mb250LXNpemU6IDEgICAgKiAkYmFzZS1mb250LXNpemUgIWRlZmF1bHQ7XG4kaDUtZm9udC1zaXplOiAwLjgzICogJGJhc2UtZm9udC1zaXplICFkZWZhdWx0O1xuJGg2LWZvbnQtc2l6ZTogMC42NyAqICRiYXNlLWZvbnQtc2l6ZSAhZGVmYXVsdDtcblxuLy8gVGhlIGFtb3VudCBsaXN0cyBhbmQgYmxvY2txdW90ZXMgYXJlIGluZGVudGVkLlxuJGluZGVudC1hbW91bnQ6IDQwcHggIWRlZmF1bHQ7XG5cbi8vIFRoZSBmb2xsb3dpbmcgdmFyaWFibGUgY29udHJvbHMgd2hldGhlciBub3JtYWxpemUtc2NzcyB3aWxsIG91dHB1dFxuLy8gZm9udC1zaXplcywgbGluZS1oZWlnaHRzIGFuZCBibG9jay1sZXZlbCB0b3AvYm90dG9tIG1hcmdpbnMgdGhhdCBmb3JtIGEgYmFzaWNcbi8vIHZlcnRpY2FsIHJoeXRobSBvbiB0aGUgcGFnZSwgd2hpY2ggZGlmZmVycyBmcm9tIHRoZSBvcmlnaW5hbCBOb3JtYWxpemUuY3NzLlxuLy8gSG93ZXZlciwgY2hhbmdpbmcgYW55IG9mIHRoZSB2YXJpYWJsZXMgYWJvdmUgd2lsbCBjYXVzZVxuLy8gJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG0gdG8gYmUgYXV0b21hdGljYWxseSBzZXQgdG8gdHJ1ZS5cbiRub3JtYWxpemUtdmVydGljYWwtcmh5dGhtOiBmYWxzZSAhZGVmYXVsdDtcbiIsIi8vXG4vLyBWZXJ0aWNhbCBSaHl0aG1cbi8vXG4vLyBUaGlzIGlzIHRoZSBtaW5pbWFsIGFtb3VudCBvZiBjb2RlIG5lZWRlZCB0byBjcmVhdGUgdmVydGljYWwgcmh5dGhtIGluIG91clxuLy8gQ1NTLiBJZiB5b3UgYXJlIGxvb2tpbmcgZm9yIGEgcm9idXN0IHNvbHV0aW9uLCBsb29rIGF0IHRoZSBleGNlbGxlbnQgVHlwZXlcbi8vIGxpYnJhcnkuIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2pwdGFyYW50by90eXBleVxuXG5AZnVuY3Rpb24gbm9ybWFsaXplLXJoeXRobSgkdmFsdWUsICRyZWxhdGl2ZS10bzogJGJhc2UtZm9udC1zaXplLCAkdW5pdDogJGJhc2UtdW5pdCkge1xuICBAaWYgdW5pdCgkdmFsdWUpICE9IHB4IHtcbiAgICBAZXJyb3IgXCJUaGUgbm9ybWFsaXplIHZlcnRpY2FsLXJoeXRobSBtb2R1bGUgb25seSBzdXBwb3J0cyBweCBpbnB1dHMuIFRoZSB0eXBleSBsaWJyYXJ5IGlzIGJldHRlci5cIjtcbiAgfVxuICBAaWYgJHVuaXQgPT0gcmVtIHtcbiAgICBAcmV0dXJuICgkdmFsdWUgLyAkYmFzZS1mb250LXNpemUpICogMXJlbTtcbiAgfVxuICBAZWxzZSBpZiAkdW5pdCA9PSBlbSB7XG4gICAgQHJldHVybiAoJHZhbHVlIC8gJHJlbGF0aXZlLXRvKSAqIDFlbTtcbiAgfVxuICBAZWxzZSB7IC8vICR1bml0ID09IHB4XG4gICAgQHJldHVybiAkdmFsdWU7XG4gIH1cbn1cblxuQG1peGluIG5vcm1hbGl6ZS1mb250LXNpemUoJHZhbHVlLCAkcmVsYXRpdmUtdG86ICRiYXNlLWZvbnQtc2l6ZSkge1xuICBAaWYgdW5pdCgkdmFsdWUpICE9ICdweCcge1xuICAgIEBlcnJvciBcIm5vcm1hbGl6ZS1mb250LXNpemUoKSBvbmx5IHN1cHBvcnRzIHB4IGlucHV0cy4gVGhlIHR5cGV5IGxpYnJhcnkgaXMgYmV0dGVyLlwiO1xuICB9XG4gIGZvbnQtc2l6ZTogbm9ybWFsaXplLXJoeXRobSgkdmFsdWUsICRyZWxhdGl2ZS10byk7XG59XG5cbkBtaXhpbiBub3JtYWxpemUtcmh5dGhtKCRwcm9wZXJ0eSwgJHZhbHVlcywgJHJlbGF0aXZlLXRvOiAkYmFzZS1mb250LXNpemUpIHtcbiAgJHZhbHVlLWxpc3Q6ICR2YWx1ZXM7XG4gICRzZXA6IHNwYWNlO1xuICBAaWYgdHlwZS1vZigkdmFsdWVzKSA9PSAnbGlzdCcge1xuICAgICRzZXA6IGxpc3Qtc2VwYXJhdG9yKCR2YWx1ZXMpO1xuICB9XG4gIEBlbHNlIHtcbiAgICAkdmFsdWUtbGlzdDogYXBwZW5kKCgpLCAkdmFsdWVzKTtcbiAgfVxuXG4gICRub3JtYWxpemVkLXZhbHVlczogKCk7XG4gIEBlYWNoICR2YWx1ZSBpbiAkdmFsdWUtbGlzdCB7XG4gICAgQGlmIHVuaXRsZXNzKCR2YWx1ZSkgYW5kICR2YWx1ZSAhPSAwIHtcbiAgICAgICR2YWx1ZTogJHZhbHVlICogbm9ybWFsaXplLXJoeXRobSgkYmFzZS1saW5lLWhlaWdodCwgJHJlbGF0aXZlLXRvKTtcbiAgICB9XG4gICAgJG5vcm1hbGl6ZWQtdmFsdWVzOiBhcHBlbmQoJG5vcm1hbGl6ZWQtdmFsdWVzLCAkdmFsdWUsICRzZXApO1xuICB9XG4gICN7JHByb3BlcnR5fTogJG5vcm1hbGl6ZWQtdmFsdWVzO1xufVxuXG5AbWl4aW4gbm9ybWFsaXplLW1hcmdpbigkdmFsdWVzLCAkcmVsYXRpdmUtdG86ICRiYXNlLWZvbnQtc2l6ZSkge1xuICBAaW5jbHVkZSBub3JtYWxpemUtcmh5dGhtKG1hcmdpbiwgJHZhbHVlcywgJHJlbGF0aXZlLXRvKTtcbn1cblxuQG1peGluIG5vcm1hbGl6ZS1saW5lLWhlaWdodCgkZm9udC1zaXplLCAkbWluLWxpbmUtcGFkZGluZzogMnB4KSB7XG4gICRsaW5lczogY2VpbCgkZm9udC1zaXplIC8gJGJhc2UtbGluZS1oZWlnaHQpO1xuICAvLyBJZiBsaW5lcyBhcmUgY3JhbXBlZCBpbmNsdWRlIHNvbWUgZXh0cmEgbGVhZGluZy5cbiAgQGlmICgkbGluZXMgKiAkYmFzZS1saW5lLWhlaWdodCAtICRmb250LXNpemUpIDwgKCRtaW4tbGluZS1wYWRkaW5nICogMikge1xuICAgICRsaW5lczogJGxpbmVzICsgMTtcbiAgfVxuICBAaW5jbHVkZSBub3JtYWxpemUtcmh5dGhtKGxpbmUtaGVpZ2h0LCAkbGluZXMsICRmb250LXNpemUpO1xufVxuIiwiLy8gSGVscGVyIGZ1bmN0aW9uIGZvciB0aGUgbm9ybWFsaXplKCkgbWl4aW4uXG5AZnVuY3Rpb24gX25vcm1hbGl6ZS1pbmNsdWRlKCRzZWN0aW9uLCAkZXhjbHVkZTogbnVsbCkge1xuICAvLyBJbml0aWFsaXplIHRoZSBnbG9iYWwgdmFyaWFibGVzIG5lZWRlZCBieSB0aGlzIGZ1bmN0aW9uLlxuICBAaWYgbm90IGdsb2JhbF92YXJpYWJsZV9leGlzdHMoX25vcm1hbGl6ZS1pbmNsdWRlKSB7XG4gICAgJF9ub3JtYWxpemUtaW5jbHVkZTogKCkgIWdsb2JhbDtcbiAgICAkX25vcm1hbGl6ZS1leGNsdWRlOiAoKSAhZ2xvYmFsO1xuICB9XG4gIC8vIFNpbmNlIHdlIGFyZSBnaXZlbiAyIHBhcmFtZXRlcnMsIHNldCB0aGUgZ2xvYmFsIHZhcmlhYmxlcy5cbiAgQGlmICRleGNsdWRlICE9IG51bGwge1xuICAgICRpbmNsdWRlOiAkc2VjdGlvbjtcbiAgICAvLyBTYXNzIGRvZXNuJ3QgaGF2ZSBzdGF0aWMgdmFyaWFibGVzLCBzbyB0aGUgd29yay1hcm91bmQgaXMgdG8gc3R1ZmYgdGhlc2VcbiAgICAvLyB2YWx1ZXMgaW50byBnbG9iYWwgdmFyaWFibGVzIHNvIHdlIGNhbiBhY2Nlc3MgdGhlbSBpbiBmdXR1cmUgY2FsbHMuXG4gICAgJF9ub3JtYWxpemUtaW5jbHVkZTogaWYodHlwZS1vZigkaW5jbHVkZSkgPT0gJ2xpc3QnLCAkaW5jbHVkZSwgKCRpbmNsdWRlKSkgIWdsb2JhbDtcbiAgICAkX25vcm1hbGl6ZS1leGNsdWRlOiBpZih0eXBlLW9mKCRleGNsdWRlKSA9PSAnbGlzdCcsICRleGNsdWRlLCAoJGV4Y2x1ZGUpKSAhZ2xvYmFsO1xuICAgIEByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8vIENoZWNrIGlmICRzZWN0aW9uIGlzIGluIHRoZSAkaW5jbHVkZSBsaXN0LlxuICBAaWYgaW5kZXgoJF9ub3JtYWxpemUtaW5jbHVkZSwgJHNlY3Rpb24pIHtcbiAgICBAcmV0dXJuIHRydWU7XG4gIH1cbiAgLy8gSWYgJGluY2x1ZGUgaXMgc2V0IHRvIChhbGwpLCBtYWtlIHN1cmUgJHNlY3Rpb24gaXMgbm90IGluICRleGNsdWRlLlxuICBAZWxzZSBpZiBub3QgaW5kZXgoJF9ub3JtYWxpemUtZXhjbHVkZSwgJHNlY3Rpb24pIGFuZCBpbmRleCgkX25vcm1hbGl6ZS1pbmNsdWRlLCBhbGwpIHtcbiAgICBAcmV0dXJuIHRydWU7XG4gIH1cbiAgQHJldHVybiBmYWxzZTtcbn1cblxuQG1peGluIG5vcm1hbGl6ZSgkaW5jbHVkZTogKGFsbCksICRleGNsdWRlOiAoKSkge1xuICAvLyBJbml0aWFsaXplIHRoZSBoZWxwZXIgZnVuY3Rpb24gYnkgcGFzc2luZyBpdCB0aGlzIG1peGluJ3MgcGFyYW1ldGVycy5cbiAgJGluaXQ6IF9ub3JtYWxpemUtaW5jbHVkZSgkaW5jbHVkZSwgJGV4Y2x1ZGUpO1xuXG4gIC8vIElmIHdlJ3ZlIGN1c3RvbWl6ZWQgYW55IGZvbnQgdmFyaWFibGVzLCB3ZSdsbCBuZWVkIGV4dHJhIHByb3BlcnRpZXMuXG4gIEBpZiAkYmFzZS1mb250LXNpemUgIT0gMTZweFxuICAgIG9yICRiYXNlLWxpbmUtaGVpZ2h0ICE9IDI0cHhcbiAgICBvciAkYmFzZS11bml0ICE9ICdlbSdcbiAgICBvciAkaDEtZm9udC1zaXplICE9IDIgICAgKiAkYmFzZS1mb250LXNpemVcbiAgICBvciAkaDItZm9udC1zaXplICE9IDEuNSAgKiAkYmFzZS1mb250LXNpemVcbiAgICBvciAkaDMtZm9udC1zaXplICE9IDEuMTcgKiAkYmFzZS1mb250LXNpemVcbiAgICBvciAkaDQtZm9udC1zaXplICE9IDEgICAgKiAkYmFzZS1mb250LXNpemVcbiAgICBvciAkaDUtZm9udC1zaXplICE9IDAuODMgKiAkYmFzZS1mb250LXNpemVcbiAgICBvciAkaDYtZm9udC1zaXplICE9IDAuNjcgKiAkYmFzZS1mb250LXNpemUge1xuICAgICRub3JtYWxpemUtdmVydGljYWwtcmh5dGhtOiB0cnVlICFnbG9iYWw7XG4gIH1cblxuICAvKiEgbm9ybWFsaXplLXNjc3MgfCBNSVQvR1BMdjIgTGljZW5zZSB8IGJpdC5seS9ub3JtYWxpemUtc2NzcyAqL1xuXG4gIEBpZiBfbm9ybWFsaXplLWluY2x1ZGUoZG9jdW1lbnQpIHtcbiAgICAvKiBEb2N1bWVudFxuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgICAvKipcbiAgICAgKiAxLiBDaGFuZ2UgdGhlIGRlZmF1bHQgZm9udCBmYW1pbHkgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gICAgICogMi4gQ29ycmVjdCB0aGUgbGluZSBoZWlnaHQgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqIDMuIFByZXZlbnQgYWRqdXN0bWVudHMgb2YgZm9udCBzaXplIGFmdGVyIG9yaWVudGF0aW9uIGNoYW5nZXMgaW5cbiAgICAgKiAgICBJRSBvbiBXaW5kb3dzIFBob25lIGFuZCBpbiBpT1MuXG4gICAgICovXG5cbiAgICBodG1sIHtcbiAgICAgIGZvbnQtZmFtaWx5OiAkYmFzZS1mb250LWZhbWlseTsgLyogMSAqL1xuICAgICAgQGlmICRub3JtYWxpemUtdmVydGljYWwtcmh5dGhtIHtcbiAgICAgICAgLy8gQ29ycmVjdCBvbGQgYnJvd3NlciBidWcgdGhhdCBwcmV2ZW50ZWQgYWNjZXNzaWJsZSByZXNpemluZyBvZiB0ZXh0XG4gICAgICAgIC8vIHdoZW4gcm9vdCBmb250LXNpemUgaXMgc2V0IHdpdGggcHggb3IgZW0uXG4gICAgICAgIGZvbnQtc2l6ZTogKCRiYXNlLWZvbnQtc2l6ZSAvIDE2cHgpICogMTAwJTtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICgkYmFzZS1saW5lLWhlaWdodCAvICRiYXNlLWZvbnQtc2l6ZSkgKiAxZW07IC8qIDIgKi9cbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTU7IC8qIDIgKi9cbiAgICAgIH1cbiAgICAgIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAzICovXG4gICAgICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDMgKi9cbiAgICB9XG4gIH1cblxuICBAaWYgX25vcm1hbGl6ZS1pbmNsdWRlKHNlY3Rpb25zKSB7XG4gICAgLyogU2VjdGlvbnNcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlIHRoZSBtYXJnaW4gaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gICAgICovXG5cbiAgICBib2R5IHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKi9cblxuICAgIGFydGljbGUsXG4gICAgYXNpZGUsXG4gICAgZm9vdGVyLFxuICAgIGhlYWRlcixcbiAgICBuYXYsXG4gICAgc2VjdGlvbiB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb3JyZWN0IHRoZSBmb250IHNpemUgYW5kIG1hcmdpbiBvbiBgaDFgIGVsZW1lbnRzIHdpdGhpbiBgc2VjdGlvbmAgYW5kXG4gICAgICogYGFydGljbGVgIGNvbnRleHRzIGluIENocm9tZSwgRmlyZWZveCwgYW5kIFNhZmFyaS5cbiAgICAgKi9cblxuICAgIGgxIHtcbiAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1mb250LXNpemUoJGgxLWZvbnQtc2l6ZSk7XG4gICAgICBAaWYgJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG0ge1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbGluZS1oZWlnaHQoJGgxLWZvbnQtc2l6ZSk7XG4gICAgICB9XG5cbiAgICAgIEBpZiAkbm9ybWFsaXplLXZlcnRpY2FsLXJoeXRobSB7XG4gICAgICAgIC8qIFNldCAxIHVuaXQgb2YgdmVydGljYWwgcmh5dGhtIG9uIHRoZSB0b3AgYW5kIGJvdHRvbSBtYXJnaW5zLiAqL1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgMCwgJGgxLWZvbnQtc2l6ZSk7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIG1hcmdpbjogMC42N2VtIDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGlmICRub3JtYWxpemUtdmVydGljYWwtcmh5dGhtIHtcbiAgICAgIGgyIHtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWZvbnQtc2l6ZSgkaDItZm9udC1zaXplKTtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWxpbmUtaGVpZ2h0KCRoMi1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgMCwgJGgyLWZvbnQtc2l6ZSk7XG4gICAgICB9XG5cbiAgICAgIGgzIHtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWZvbnQtc2l6ZSgkaDMtZm9udC1zaXplKTtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWxpbmUtaGVpZ2h0KCRoMy1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgMCwgJGgzLWZvbnQtc2l6ZSk7XG4gICAgICB9XG5cbiAgICAgIGg0IHtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWZvbnQtc2l6ZSgkaDQtZm9udC1zaXplKTtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWxpbmUtaGVpZ2h0KCRoNC1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgMCwgJGg0LWZvbnQtc2l6ZSk7XG4gICAgICB9XG5cbiAgICAgIGg1IHtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWZvbnQtc2l6ZSgkaDUtZm9udC1zaXplKTtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWxpbmUtaGVpZ2h0KCRoNS1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgMCwgJGg1LWZvbnQtc2l6ZSk7XG4gICAgICB9XG5cbiAgICAgIGg2IHtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWZvbnQtc2l6ZSgkaDYtZm9udC1zaXplKTtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWxpbmUtaGVpZ2h0KCRoNi1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgMCwgJGg2LWZvbnQtc2l6ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGlmIF9ub3JtYWxpemUtaW5jbHVkZShncm91cGluZykge1xuICAgIC8qIEdyb3VwaW5nIGNvbnRlbnRcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gICAgQGlmICRub3JtYWxpemUtdmVydGljYWwtcmh5dGhtIHtcbiAgICAgIC8qKlxuICAgICAgICogU2V0IDEgdW5pdCBvZiB2ZXJ0aWNhbCByaHl0aG0gb24gdGhlIHRvcCBhbmQgYm90dG9tIG1hcmdpbi5cbiAgICAgICAqL1xuXG4gICAgICBibG9ja3F1b3RlIHtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLW1hcmdpbigxICRpbmRlbnQtYW1vdW50KTtcbiAgICAgIH1cblxuICAgICAgZGwsXG4gICAgICBvbCxcbiAgICAgIHVsIHtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLW1hcmdpbigxIDApO1xuICAgICAgfVxuXG4gICAgICAvKipcbiAgICAgICAqIFR1cm4gb2ZmIG1hcmdpbnMgb24gbmVzdGVkIGxpc3RzLlxuICAgICAgICovXG5cbiAgICAgIG9sLFxuICAgICAgdWwge1xuICAgICAgICBvbCxcbiAgICAgICAgdWwge1xuICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBkZCB7XG4gICAgICAgIG1hcmdpbjogMCAwIDAgJGluZGVudC1hbW91bnQ7XG4gICAgICB9XG5cbiAgICAgIG9sLFxuICAgICAgdWwge1xuICAgICAgICBwYWRkaW5nOiAwIDAgMCAkaW5kZW50LWFtb3VudDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKi9cblxuICAgIGZpZ2NhcHRpb24sXG4gICAgZmlndXJlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBtYXJnaW4gaW4gSUUgOC5cbiAgICAgKi9cblxuICAgIGZpZ3VyZSB7XG4gICAgICBAaWYgJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG0ge1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgJGluZGVudC1hbW91bnQpO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBtYXJnaW46IDFlbSAkaW5kZW50LWFtb3VudDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBGaXJlZm94LlxuICAgICAqIDIuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UgYW5kIElFLlxuICAgICAqL1xuXG4gICAgaHIge1xuICAgICAgYm94LXNpemluZzogY29udGVudC1ib3g7IC8qIDEgKi9cbiAgICAgIGhlaWdodDogMDsgLyogMSAqL1xuICAgICAgb3ZlcmZsb3c6IHZpc2libGU7IC8qIDIgKi9cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRS5cbiAgICAgKi9cblxuICAgIG1haW4ge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgQGlmICRub3JtYWxpemUtdmVydGljYWwtcmh5dGhtIHtcbiAgICAgIC8qKlxuICAgICAgICogU2V0IDEgdW5pdCBvZiB2ZXJ0aWNhbCByaHl0aG0gb24gdGhlIHRvcCBhbmQgYm90dG9tIG1hcmdpbi5cbiAgICAgICAqL1xuXG4gICAgICBwLFxuICAgICAgcHJlIHtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLW1hcmdpbigxIDApO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqL1xuXG4gICAgcHJlIHtcbiAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTsgLyogMSAqL1xuICAgICAgZm9udC1zaXplOiAxZW07IC8qIDIgKi9cbiAgICB9XG4gIH1cblxuICBAaWYgX25vcm1hbGl6ZS1pbmNsdWRlKGxpbmtzKSB7XG4gICAgLyogTGlua3NcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gICAgLyoqXG4gICAgICogMS4gUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgb24gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuICAgICAqIDIuIFJlbW92ZSBnYXBzIGluIGxpbmtzIHVuZGVybGluZSBpbiBpT1MgOCsgYW5kIFNhZmFyaSA4Ky5cbiAgICAgKi9cblxuICAgIGEge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IC8qIDEgKi9cbiAgICAgIC13ZWJraXQtdGV4dC1kZWNvcmF0aW9uLXNraXA6IG9iamVjdHM7IC8qIDIgKi9cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmUgdGhlIG91dGxpbmUgb24gZm9jdXNlZCBsaW5rcyB3aGVuIHRoZXkgYXJlIGFsc28gYWN0aXZlIG9yIGhvdmVyZWRcbiAgICAgKiBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAgICAgKi9cblxuICAgIGE6YWN0aXZlLFxuICAgIGE6aG92ZXIge1xuICAgICAgb3V0bGluZS13aWR0aDogMDtcbiAgICB9XG4gIH1cblxuICBAaWYgX25vcm1hbGl6ZS1pbmNsdWRlKHRleHQpIHtcbiAgICAvKiBUZXh0LWxldmVsIHNlbWFudGljc1xuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgICAvKipcbiAgICAgKiAxLiBSZW1vdmUgdGhlIGJvdHRvbSBib3JkZXIgaW4gRmlyZWZveCAzOS0uXG4gICAgICogMi4gQWRkIHRoZSBjb3JyZWN0IHRleHQgZGVjb3JhdGlvbiBpbiBDaHJvbWUsIEVkZ2UsIElFLCBPcGVyYSwgYW5kIFNhZmFyaS5cbiAgICAgKi9cblxuICAgIGFiYnJbdGl0bGVdIHtcbiAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7IC8qIDEgKi9cbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyAvKiAyICovXG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7IC8qIDIgKi9cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQcmV2ZW50IHRoZSBkdXBsaWNhdGUgYXBwbGljYXRpb24gb2YgYGJvbGRlcmAgYnkgdGhlIG5leHQgcnVsZSBpbiBTYWZhcmkgNi5cbiAgICAgKi9cblxuICAgIGIsXG4gICAgc3Ryb25nIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBmb250IHdlaWdodCBpbiBDaHJvbWUsIEVkZ2UsIGFuZCBTYWZhcmkuXG4gICAgICovXG5cbiAgICBiLFxuICAgIHN0cm9uZyB7XG4gICAgICBmb250LXdlaWdodDogYm9sZGVyO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqL1xuXG4gICAgY29kZSxcbiAgICBrYmQsXG4gICAgc2FtcCB7XG4gICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7IC8qIDEgKi9cbiAgICAgIGZvbnQtc2l6ZTogMWVtOyAvKiAyICovXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgc3R5bGUgaW4gQW5kcm9pZCA0LjMtLlxuICAgICAqL1xuXG4gICAgZGZuIHtcbiAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgYmFja2dyb3VuZCBhbmQgY29sb3IgaW4gSUUgOS0uXG4gICAgICovXG5cbiAgICBtYXJrIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZjA7XG4gICAgICBjb2xvcjogIzAwMDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAgICAgKi9cblxuICAgIHNtYWxsIHtcbiAgICAgIGZvbnQtc2l6ZTogODAlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGVsZW1lbnRzIGZyb20gYWZmZWN0aW5nIHRoZSBsaW5lIGhlaWdodCBpblxuICAgICAqIGFsbCBicm93c2Vycy5cbiAgICAgKi9cblxuICAgIHN1YixcbiAgICBzdXAge1xuICAgICAgZm9udC1zaXplOiA3NSU7XG4gICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgICB9XG5cbiAgICBzdWIge1xuICAgICAgYm90dG9tOiAtMC4yNWVtO1xuICAgIH1cblxuICAgIHN1cCB7XG4gICAgICB0b3A6IC0wLjVlbTtcbiAgICB9XG4gIH1cblxuICBAaWYgX25vcm1hbGl6ZS1pbmNsdWRlKGVtYmVkZGVkKSB7XG4gICAgLyogRW1iZWRkZWQgY29udGVudFxuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKi9cblxuICAgIGF1ZGlvLFxuICAgIHZpZGVvIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBpT1MgNC03LlxuICAgICAqL1xuXG4gICAgYXVkaW86bm90KFtjb250cm9sc10pIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICBoZWlnaHQ6IDA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlIHRoZSBib3JkZXIgb24gaW1hZ2VzIGluc2lkZSBsaW5rcyBpbiBJRSAxMC0uXG4gICAgICovXG5cbiAgICBpbWcge1xuICAgICAgYm9yZGVyLXN0eWxlOiBub25lO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEhpZGUgdGhlIG92ZXJmbG93IGluIElFLlxuICAgICAqL1xuXG4gICAgc3ZnOm5vdCg6cm9vdCkge1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB9XG4gIH1cblxuICBAaWYgX25vcm1hbGl6ZS1pbmNsdWRlKGZvcm1zKSB7XG4gICAgLyogRm9ybXNcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gICAgLyoqXG4gICAgICogMS4gQ2hhbmdlIHRoZSBmb250IHN0eWxlcyBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAgICAgKiAyLiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBGaXJlZm94IGFuZCBTYWZhcmkuXG4gICAgICovXG5cbiAgICBidXR0b24sXG4gICAgaW5wdXQsXG4gICAgb3B0Z3JvdXAsXG4gICAgc2VsZWN0LFxuICAgIHRleHRhcmVhIHtcbiAgICAgIGZvbnQtZmFtaWx5OiAkYmFzZS1mb250LWZhbWlseTsgLyogMSAqL1xuICAgICAgZm9udC1zaXplOiAxMDAlOyAvKiAxICovXG4gICAgICBAaWYgJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG0ge1xuICAgICAgICBsaW5lLWhlaWdodDogKCRiYXNlLWxpbmUtaGVpZ2h0IC8gJGJhc2UtZm9udC1zaXplKSAqIDFlbTsgLyogMSAqL1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBsaW5lLWhlaWdodDogMS4xNTsgLyogMSAqL1xuICAgICAgfVxuICAgICAgbWFyZ2luOiAwOyAvKiAyICovXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2hvdyB0aGUgb3ZlcmZsb3cgaW4gSUUuXG4gICAgICovXG5cbiAgICBidXR0b24ge1xuICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBFZGdlLCBGaXJlZm94LCBhbmQgSUUuXG4gICAgICogMS4gUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBGaXJlZm94LlxuICAgICAqL1xuXG4gICAgYnV0dG9uLFxuICAgIHNlbGVjdCB7IC8qIDEgKi9cbiAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIDEuIFByZXZlbnQgYSBXZWJLaXQgYnVnIHdoZXJlICgyKSBkZXN0cm95cyBuYXRpdmUgYGF1ZGlvYCBhbmQgYHZpZGVvYFxuICAgICAqICAgIGNvbnRyb2xzIGluIEFuZHJvaWQgNC5cbiAgICAgKiAyLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICAgICAqL1xuXG4gICAgYnV0dG9uLFxuICAgIGh0bWwgW3R5cGU9XCJidXR0b25cIl0sIC8qIDEgKi9cbiAgICBbdHlwZT1cInJlc2V0XCJdLFxuICAgIFt0eXBlPVwic3VibWl0XCJdIHtcbiAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAyICovXG4gICAgfVxuXG4gICAgYnV0dG9uLFxuICAgIFt0eXBlPVwiYnV0dG9uXCJdLFxuICAgIFt0eXBlPVwicmVzZXRcIl0sXG4gICAgW3R5cGU9XCJzdWJtaXRcIl0ge1xuXG4gICAgICAvKipcbiAgICAgICAqIFJlbW92ZSB0aGUgaW5uZXIgYm9yZGVyIGFuZCBwYWRkaW5nIGluIEZpcmVmb3guXG4gICAgICAgKi9cblxuICAgICAgJjo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgICAgIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgIH1cblxuICAgICAgLyoqXG4gICAgICAgKiBSZXN0b3JlIHRoZSBmb2N1cyBzdHlsZXMgdW5zZXQgYnkgdGhlIHByZXZpb3VzIHJ1bGUuXG4gICAgICAgKi9cblxuICAgICAgJjotbW96LWZvY3VzcmluZyB7XG4gICAgICAgIG91dGxpbmU6IDFweCBkb3R0ZWQgQnV0dG9uVGV4dDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlLlxuICAgICAqL1xuXG4gICAgaW5wdXQge1xuICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gSUUgMTAtLlxuICAgICAqIDIuIFJlbW92ZSB0aGUgcGFkZGluZyBpbiBJRSAxMC0uXG4gICAgICovXG5cbiAgICBbdHlwZT1cImNoZWNrYm94XCJdLFxuICAgIFt0eXBlPVwicmFkaW9cIl0ge1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xuICAgICAgcGFkZGluZzogMDsgLyogMiAqL1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvcnJlY3QgdGhlIGN1cnNvciBzdHlsZSBvZiBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBidXR0b25zIGluIENocm9tZS5cbiAgICAgKi9cblxuICAgIFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuICAgIFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAxLiBDb3JyZWN0IHRoZSBvZGQgYXBwZWFyYW5jZSBpbiBDaHJvbWUgYW5kIFNhZmFyaS5cbiAgICAgKiAyLiBDb3JyZWN0IHRoZSBvdXRsaW5lIHN0eWxlIGluIFNhZmFyaS5cbiAgICAgKi9cblxuICAgIFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvKiAxICovXG4gICAgICBvdXRsaW5lLW9mZnNldDogLTJweDsgLyogMiAqL1xuXG4gICAgICAvKipcbiAgICAgICAqIFJlbW92ZSB0aGUgaW5uZXIgcGFkZGluZyBhbmQgY2FuY2VsIGJ1dHRvbnMgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gbWFjT1MuXG4gICAgICAgKi9cblxuICAgICAgJjo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbiAgICAgICY6Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogMS4gQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAgICAgKiAyLiBDaGFuZ2UgZm9udCBwcm9wZXJ0aWVzIHRvIGBpbmhlcml0YCBpbiBTYWZhcmkuXG4gICAgICovXG5cbiAgICA6Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcbiAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAxICovXG4gICAgICBmb250OiBpbmhlcml0OyAvKiAyICovXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hhbmdlIHRoZSBib3JkZXIsIG1hcmdpbiwgYW5kIHBhZGRpbmcgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gICAgICovXG5cbiAgICBmaWVsZHNldCB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xuICAgICAgbWFyZ2luOiAwIDJweDtcbiAgICAgIHBhZGRpbmc6IDAuMzVlbSAwLjYyNWVtIDAuNzVlbTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAxLiBDb3JyZWN0IHRoZSB0ZXh0IHdyYXBwaW5nIGluIEVkZ2UgYW5kIElFLlxuICAgICAqIDIuIENvcnJlY3QgdGhlIGNvbG9yIGluaGVyaXRhbmNlIGZyb20gYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBJRS5cbiAgICAgKiAzLiBSZW1vdmUgdGhlIHBhZGRpbmcgc28gZGV2ZWxvcGVycyBhcmUgbm90IGNhdWdodCBvdXQgd2hlbiB0aGV5IHplcm8gb3V0XG4gICAgICogICAgYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICovXG5cbiAgICBsZWdlbmQge1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xuICAgICAgZGlzcGxheTogdGFibGU7IC8qIDEgKi9cbiAgICAgIG1heC13aWR0aDogMTAwJTsgLyogMSAqL1xuICAgICAgcGFkZGluZzogMDsgLyogMyAqL1xuICAgICAgY29sb3I6IGluaGVyaXQ7IC8qIDIgKi9cbiAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7IC8qIDEgKi9cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAxLiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKiAyLiBBZGQgdGhlIGNvcnJlY3QgdmVydGljYWwgYWxpZ25tZW50IGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuICAgICAqL1xuXG4gICAgcHJvZ3Jlc3Mge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyAvKiAxICovXG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IC8qIDIgKi9cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmUgdGhlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFLlxuICAgICAqL1xuXG4gICAgdGV4dGFyZWEge1xuICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgfVxuICB9XG5cbiAgQGlmIF9ub3JtYWxpemUtaW5jbHVkZShpbnRlcmFjdGl2ZSkge1xuICAgIC8qIEludGVyYWN0aXZlXG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuICAgIC8qXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gRWRnZSwgSUUsIGFuZCBGaXJlZm94LlxuICAgICAqL1xuXG4gICAgZGV0YWlscyB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAvKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGFsbCBicm93c2Vycy5cbiAgICAgKi9cblxuICAgIHN1bW1hcnkge1xuICAgICAgZGlzcGxheTogbGlzdC1pdGVtO1xuICAgIH1cblxuICAgIC8qXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gICAgICovXG5cbiAgICBtZW51IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICBAaWYgJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG0ge1xuICAgICAgICAvKlxuICAgICAgICAgKiAxLiBTZXQgMSB1bml0IG9mIHZlcnRpY2FsIHJoeXRobSBvbiB0aGUgdG9wIGFuZCBib3R0b20gbWFyZ2luLlxuICAgICAgICAgKiAyLiBTZXQgY29uc2lzdGVudCBzcGFjZSBmb3IgdGhlIGxpc3Qgc3R5bGUgaW1hZ2UuXG4gICAgICAgICAqL1xuXG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1tYXJnaW4oMSAwKTsgLyogMSAqL1xuICAgICAgICBwYWRkaW5nOiAwIDAgMCAkaW5kZW50LWFtb3VudDsgLyogMiAqL1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUdXJuIG9mZiBtYXJnaW5zIG9uIG5lc3RlZCBsaXN0cy5cbiAgICAgICAgICovXG5cbiAgICAgICAgbWVudSAmLFxuICAgICAgICBvbCAmLFxuICAgICAgICB1bCAmIHtcbiAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaWYgX25vcm1hbGl6ZS1pbmNsdWRlKHNjcmlwdGluZykge1xuICAgIC8qIFNjcmlwdGluZ1xuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKi9cblxuICAgIGNhbnZhcyB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUuXG4gICAgICovXG5cbiAgICB0ZW1wbGF0ZSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIEBpZiBfbm9ybWFsaXplLWluY2x1ZGUoaGlkZGVuKSB7XG4gICAgLyogSGlkZGVuXG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwLS5cbiAgICAgKi9cblxuICAgIFtoaWRkZW5dIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG59XG4iLCIvLy9cbi8vLyBDaGVja3Mgd2hldGhlciBgJGZ1bmN0aW9uc2AgZXhpc3QgaW4gZ2xvYmFsIHNjb3BlLlxuLy8vXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ0xpc3R9ICRmdW5jdGlvbnMgLSBsaXN0IG9mIGZ1bmN0aW9ucyB0byBjaGVjayBmb3Jcbi8vL1xuLy8vIEByZXR1cm4ge0Jvb2x9IFdoZXRoZXIgb3Igbm90IHRoZXJlIGFyZSBtaXNzaW5nIGRlcGVuZGVuY2llc1xuLy8vXG4gXG5AZnVuY3Rpb24gc2wtbWlzc2luZy1kZXBlbmRlbmNpZXMoJGZ1bmN0aW9ucy4uLikge1xuICAkbWlzc2luZy1kZXBlbmRlbmNpZXM6ICgpO1xuICBcbiAgQGVhY2ggJGZ1bmN0aW9uIGluICRmdW5jdGlvbnMge1xuICAgIEBpZiBub3QgZnVuY3Rpb24tZXhpc3RzKCRmdW5jdGlvbikge1xuICAgICAgJG1pc3NpbmctZGVwZW5kZW5jaWVzOiBhcHBlbmQoJG1pc3NpbmctZGVwZW5kZW5jaWVzLCAkZnVuY3Rpb24sIGNvbW1hKTtcbiAgICB9XG4gIH1cbiAgXG4gIEBpZiBsZW5ndGgoJG1pc3NpbmctZGVwZW5kZW5jaWVzKSA+IDAge1xuICAgIEBlcnJvciAnVW5tZXQgZGVwZW5kZW5jaWVzISBUaGUgZm9sbG93aW5nIGZ1bmN0aW9ucyBhcmUgcmVxdWlyZWQ6ICN7JG1pc3NpbmctZGVwZW5kZW5jaWVzfS4nO1xuICB9XG5cbiAgQHJldHVybiBsZW5ndGgoJG1pc3NpbmctZGVwZW5kZW5jaWVzKSA+IDA7XG59XG4iLCIvLy9cbi8vLyBSZXR1cm5zIHRydXRoaW5lc3Mgb2YgYCR2YWx1ZWAuXG4vLy9cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7Kn0gJHZhbHVlIC0gdmFsdWUgdG8gY2hlY2tcbi8vL1xuLy8vIEByZXR1cm4ge0Jvb2x9XG4vLy9cbiBcbkBmdW5jdGlvbiBzbC1pcy10cnVlKCR2YWx1ZSkge1xuICBAcmV0dXJuIGlmKCR2YWx1ZSA9PSBudWxsLCBmYWxzZSwgJHZhbHVlIGFuZCAkdmFsdWUgIT0gbnVsbCBhbmQgJHZhbHVlICE9ICcnIGFuZCAkdmFsdWUgIT0gKCkpO1xufVxuIiwiLy8vXG4vLy8gUmV0dXJucyB3aGV0aGVyIGAkbGlzdGAgY29udGFpbnMgYCR2YWx1ZWAuXG4vLy9cbi8vLyBAaWdub3JlIERvY3VtZW50YXRpb246IGh0dHA6Ly9hdC1pbXBvcnQuZ2l0aHViLmlvL1Nhc3N5TGlzdHMvZG9jdW1lbnRhdGlvbi8jZnVuY3Rpb24tc2wtY29udGFpblxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAgICAkbGlzdCAgLSBsaXN0IHRvIGNoZWNrXG4vLy8gQHBhcmFtIHsqfSAgICAgICAkdmFsdWUgLSB2YWx1ZSB0byBsb29rIGZvclxuLy8vXG4vLy8gQGV4YW1wbGVcbi8vLyBzbC1jb250YWluKGEgYiBjLCBhKVxuLy8vIC8vIHRydWVcbi8vL1xuLy8vIEBleGFtcGxlXG4vLy8gc2wtY29udGFpbihhIGIgYywgeilcbi8vLyAvLyBmYWxzZVxuLy8vXG4vLy8gQHJldHVybiB7Qm9vbH1cbi8vL1xuXG5AZnVuY3Rpb24gc2wtY29udGFpbigkbGlzdCwgJHZhbHVlKSB7XG4gIEByZXR1cm4gbm90IG5vdCBpbmRleCgkbGlzdCwgJHZhbHVlKTtcbn1cblxuLy8vXG4vLy8gQHJlcXVpcmVzIHNsLWNvbnRhaW5cbi8vLyBAYWxpYXMgc2wtY29udGFpblxuLy8vXG4gXG5AZnVuY3Rpb24gc2wtaW5jbHVkZSgkbGlzdCwgJHZhbHVlKSB7XG4gIEByZXR1cm4gc2wtY29udGFpbigkbGlzdCwgJHZhbHVlKTtcbn1cbiIsIi8vLyBSZW1vdmVzIGFsbCBmYWxzZSBhbmQgbnVsbCB2YWx1ZXMgZnJvbSBgJGxpc3RgLlxuLy8vXG4vLy8gQGlnbm9yZSBEb2N1bWVudGF0aW9uOiBodHRwOi8vYXQtaW1wb3J0LmdpdGh1Yi5pby9TYXNzeUxpc3RzL2RvY3VtZW50YXRpb24vI2Z1bmN0aW9uLXNsLXB1cmdlXG4vLy9cbi8vLyBAcmVxdWlyZXMgc2wtaXMtdHJ1ZVxuLy8vIEByZXF1aXJlcyBzbC10by1saXN0XG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRsaXN0IC0gbGlzdCB0byBwdXJnZVxuLy8vXG4vLy8gQGV4YW1wbGVcbi8vLyBzbC1wdXJnZShudWxsIGEgZmFsc2UgYilcbi8vLyAvLyBhIGJcbi8vL1xuLy8vIEByZXR1cm4ge0xpc3R9XG4vLy9cblxuQGZ1bmN0aW9uIHNsLXB1cmdlKCRsaXN0KSB7XG4gICRfOiBzbC1taXNzaW5nLWRlcGVuZGVuY2llcygnc2wtaXMtdHJ1ZScsICdzbC10by1saXN0Jyk7XG4gIFxuICAkcmVzdWx0OiAoKTtcblxuICBAZWFjaCAkaXRlbSBpbiAkbGlzdCB7XG4gICAgQGlmIHNsLWlzLXRydWUoJGl0ZW0pIHtcbiAgICAgICRyZXN1bHQ6IGFwcGVuZCgkcmVzdWx0LCAkaXRlbSwgbGlzdC1zZXBhcmF0b3IoJGxpc3QpKTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuIHNsLXRvLWxpc3QoJHJlc3VsdCk7XG59XG5cbi8vL1xuLy8vIEByZXF1aXJlcyBzbC1wdXJnZVxuLy8vIEBhbGlhcyBzbC1wdXJnZVxuLy8vXG4gXG5AZnVuY3Rpb24gc2wtY2xlYW4oJGxpc3QpIHtcbiAgQHJldHVybiBzbC1wdXJnZSgkbGlzdCk7XG59XG4iLCIvLy9cbi8vLyBSZW1vdmVzIHZhbHVlKHMpIGAkdmFsdWVgIGZyb20gYCRsaXN0YC5cbi8vL1xuLy8vIEBpZ25vcmUgRG9jdW1lbnRhdGlvbjogaHR0cDovL2F0LWltcG9ydC5naXRodWIuaW8vU2Fzc3lMaXN0cy9kb2N1bWVudGF0aW9uLyNmdW5jdGlvbi1zbC1yZW1vdmVcbi8vL1xuLy8vIEByZXF1aXJlcyBzbC1yZXBsYWNlXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICAgICRsaXN0ICAgICAgLSBsaXN0IHRvIHVwZGF0ZVxuLy8vIEBwYXJhbSB7Kn0gICAgICAgJHZhbHVlICAgICAtIHZhbHVlIHRvIHJlbW92ZVxuLy8vXG4vLy8gQGV4YW1wbGVcbi8vLyBzbC1yZW1vdmUoYSBiIGMsIGEpXG4vLy8gLy8gYiBjXG4vLy9cbi8vLyBAcmV0dXJuIHtMaXN0fVxuLy8vXG5cbkBmdW5jdGlvbiBzbC1yZW1vdmUoJGxpc3QsICR2YWx1ZSkge1xuICAkXzogc2wtbWlzc2luZy1kZXBlbmRlbmNpZXMoJ3NsLXJlcGxhY2UnKTtcblxuICBAcmV0dXJuIHNsLXJlcGxhY2UoJGxpc3QsICR2YWx1ZSwgbnVsbCk7XG59XG5cbi8vL1xuLy8vIEByZXF1aXJlcyBzbC1yZW1vdmVcbi8vLyBAYWxpYXMgc2wtcmVtb3ZlXG4vLy9cblxuQGZ1bmN0aW9uIHNsLXdpdGhvdXQoJGxpc3QsICR2YWx1ZSkge1xuICBAcmV0dXJuIHNsLXJlbW92ZSgkbGlzdCwgJHZhbHVlKTtcbn1cbiIsIi8vL1xuLy8vIFJlcGxhY2VzIGAkb2xkYCBieSBgJG5ld2AgaW4gYCRsaXN0YC5cbi8vL1xuLy8vIEBpZ25vcmUgRG9jdW1lbnRhdGlvbjogaHR0cDovL2F0LWltcG9ydC5naXRodWIuaW8vU2Fzc3lMaXN0cy9kb2N1bWVudGF0aW9uLyNmdW5jdGlvbi1zbC1yZXBsYWNlXG4vLy9cbi8vLyBAcmVxdWlyZXMgc2wtaXMtdHJ1ZVxuLy8vIEByZXF1aXJlcyBzbC1wdXJnZVxuLy8vIEByZXF1aXJlcyBzbC10by1saXN0XG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICAgICRsaXN0ICAtIGxpc3QgdG8gdXBkYXRlXG4vLy8gQHBhcmFtIHsqfSAgICAgICAkb2xkICAgLSB2YWx1ZSB0byByZXBsYWNlXG4vLy8gQHBhcmFtIHsqfSAgICAgICAkdmFsdWUgLSBuZXcgdmFsdWUgZm9yICRvbGRcbi8vL1xuLy8vIEBleGFtcGxlXG4vLy8gc2wtcmVwbGFjZShhIGIgYywgYiwgeilcbi8vLyAvLyBhIHogY1xuLy8vXG4vLy8gQGV4YW1wbGVcbi8vLyBzbC1yZXBsYWNlKGEgYiBjLCB5LCB6KVxuLy8vIC8vIGEgYiBjXG4vLy8gXG4vLy8gQHJldHVybiB7TGlzdH1cbi8vL1xuIFxuQGZ1bmN0aW9uIHNsLXJlcGxhY2UoJGxpc3QsICRvbGQsICR2YWx1ZSkge1xuICAkXzogc2wtbWlzc2luZy1kZXBlbmRlbmNpZXMoJ3NsLWlzLXRydWUnLCAnc2wtcHVyZ2UnLCAnc2wtdG8tbGlzdCcpO1xuXG4gICRydW5uaW5nOiB0cnVlO1xuXG4gIEB3aGlsZSAkcnVubmluZyB7XG4gICAgJGluZGV4OiBpbmRleCgkbGlzdCwgJG9sZCk7XG5cbiAgICBAaWYgbm90ICRpbmRleCB7XG4gICAgICAkcnVubmluZzogZmFsc2U7XG4gICAgfVxuXG4gICAgQGVsc2Uge1xuICAgICAgJGxpc3Q6IHNldC1udGgoJGxpc3QsICRpbmRleCwgJHZhbHVlKTtcbiAgICB9XG5cbiAgfVxuXG4gICRsaXN0OiBpZihzbC1pcy10cnVlKCR2YWx1ZSksICRsaXN0LCBzbC1wdXJnZSgkbGlzdCkpO1xuICBcbiAgQHJldHVybiBzbC10by1saXN0KCRsaXN0KTtcbn1cbiIsIi8vL1xuLy8vIENhc3RzIGAkdmFsdWVgIGludG8gYSBsaXN0LlxuLy8vXG4vLy8gQGlnbm9yZSBEb2N1bWVudGF0aW9uOiBodHRwOi8vYXQtaW1wb3J0LmdpdGh1Yi5pby9TYXNzeUxpc3RzL2RvY3VtZW50YXRpb24vI2Z1bmN0aW9uLXNsLXRvLWxpc3Rcbi8vL1xuLy8vIEBwYXJhbSB7Kn0gJHZhbHVlIC0gdmFsdWUgdG8gY2FzdCB0byBsaXN0XG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzZXBhcmF0b3IgW3NwYWNlXSAtIHNlcGFyYXRvciB0byB1c2Vcbi8vL1xuLy8vIEBleGFtcGxlXG4vLy8gc2wtdG8tbGlzdChhIGIgYywgY29tbWEpXG4vLy8gLy8gYSwgYiwgY1xuLy8vIFxuLy8vIEByZXR1cm4ge0xpc3R9XG4vLy9cblxuQGZ1bmN0aW9uIHNsLXRvLWxpc3QoJHZhbHVlLCAkc2VwYXJhdG9yOiBsaXN0LXNlcGFyYXRvcigkdmFsdWUpKSB7XG4gIEByZXR1cm4gam9pbigoKSwgJHZhbHVlLCAkc2VwYXJhdG9yKTtcbn1cblxuLy8vXG4vLy8gQHJlcXVpcmVzIHNsLXRvLWxpc3Rcbi8vLyBAYWxpYXMgc2wtdG8tbGlzdFxuLy8vXG5cbkBmdW5jdGlvbiBzbC1saXN0aWZ5KCR2YWx1ZSkge1xuICBAcmV0dXJuIHNsLXRvLWxpc3QoJHZhbHVlKTtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AaW1wb3J0ICdtYXRoJztcbkBpbXBvcnQgJ3VuaXQnO1xuQGltcG9ydCAndmFsdWUnO1xuQGltcG9ydCAnZGlyZWN0aW9uJztcbkBpbXBvcnQgJ2NvbG9yJztcbkBpbXBvcnQgJ3NlbGVjdG9yJztcbkBpbXBvcnQgJ2ZsZXgnO1xuQGltcG9ydCAnYnJlYWtwb2ludCc7XG5AaW1wb3J0ICdtaXhpbnMnO1xuQGltcG9ydCAndHlwb2dyYXBoeSc7XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmdW5jdGlvbnNcbi8vLy9cblxuLy8vIEZpbmRzIHRoZSBncmVhdGVzdCBjb21tb24gZGl2aXNvciBvZiB0d28gaW50ZWdlcnMuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJGEgLSBGaXJzdCBudW1iZXIgdG8gY29tcGFyZS5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGIgLSBTZWNvbmQgbnVtYmVyIHRvIGNvbXBhcmUuXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBUaGUgZ3JlYXRlc3QgY29tbW9uIGRpdmlzb3IuXG5AZnVuY3Rpb24gZ2NkKCRhLCAkYikge1xuICAvLyBGcm9tOiBodHRwOi8vcm9zZXR0YWNvZGUub3JnL3dpa2kvR3JlYXRlc3RfY29tbW9uX2Rpdmlzb3IjSmF2YVNjcmlwdFxuICBAaWYgKCRiICE9IDApIHtcbiAgICBAcmV0dXJuIGdjZCgkYiwgJGEgJSAkYik7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gYWJzKCRhKTtcbiAgfVxufVxuXG4vLy8gSGFuZGxlcyBkZWNpbWFsIGV4cG9uZW50cyBieSB0cnlpbmcgdG8gY29udmVydCB0aGVtIGludG8gYSBmcmFjdGlvbiBhbmQgdGhlbiB1c2UgYSBudGgtcm9vdC1hbGdvcml0aG0gZm9yIHBhcnRzIG9mIHRoZSBjYWxjdWxhdGlvblxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXNlIC0gVGhlIGJhc2UgbnVtYmVyLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZXhwb25lbnQgLSBUaGUgZXhwb25lbnQuXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBUaGUgcHJvZHVjdCBvZiB0aGUgZXhwb25lbnRpYXRpb24uXG5AZnVuY3Rpb24gcG93KCRiYXNlLCAkZXhwb25lbnQsICRwcmVjOiAxNikge1xuICBAaWYgKGZsb29yKCRleHBvbmVudCkgIT0gJGV4cG9uZW50KSB7XG4gICAgJHByZWMyIDogcG93KDEwLCAkcHJlYyk7XG4gICAgJGV4cG9uZW50OiByb3VuZCgkZXhwb25lbnQgKiAkcHJlYzIpO1xuICAgICRkZW5vbWluYXRvcjogZ2NkKCRleHBvbmVudCwgJHByZWMyKTtcbiAgICBAcmV0dXJuIG50aC1yb290KHBvdygkYmFzZSwgJGV4cG9uZW50IC8gJGRlbm9taW5hdG9yKSwgJHByZWMyIC8gJGRlbm9taW5hdG9yLCAkcHJlYyk7XG4gIH1cblxuICAkdmFsdWU6ICRiYXNlO1xuICBAaWYgJGV4cG9uZW50ID4gMSB7XG4gICAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCAkZXhwb25lbnQge1xuICAgICAgJHZhbHVlOiAkdmFsdWUgKiAkYmFzZTtcbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJGV4cG9uZW50IDwgMSB7XG4gICAgQGZvciAkaSBmcm9tIDAgdGhyb3VnaCAtJGV4cG9uZW50IHtcbiAgICAgICR2YWx1ZTogJHZhbHVlIC8gJGJhc2U7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkdmFsdWU7XG59XG5cbkBmdW5jdGlvbiBudGgtcm9vdCgkbnVtLCAkbjogMiwgJHByZWM6IDEyKSB7XG4gIC8vIEZyb206IGh0dHA6Ly9yb3NldHRhY29kZS5vcmcvd2lraS9OdGhfcm9vdCNKYXZhU2NyaXB0XG4gICR4OiAxO1xuXG4gIEBmb3IgJGkgZnJvbSAwIHRocm91Z2ggJHByZWMge1xuICAgICR4OiAxIC8gJG4gKiAoKCRuIC0gMSkgKiAkeCArICgkbnVtIC8gcG93KCR4LCAkbiAtIDEpKSk7XG4gIH1cblxuICBAcmV0dXJuICR4O1xufVxuXG4vLy8gQ2FsY3VsYXRlcyB0aGUgaGVpZ2h0IGFzIGEgcGVyY2VudGFnZSBvZiB0aGUgd2lkdGggZm9yIGEgZ2l2ZW4gcmF0aW8uXG4vLy8gQHBhcmFtIHtMaXN0fSAkcmF0aW8gLSBSYXRpbyB0byB1c2UgdG8gY2FsY3VsYXRlIHRoZSBoZWlnaHQsIGZvcm1hdHRlZCBhcyBgeCBieSB5YC5cbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IEEgcGVyY2VudGFnZSB2YWx1ZSBmb3IgdGhlIGhlaWdodCByZWxhdGl2ZSB0byB0aGUgd2lkdGggb2YgYSByZXNwb25zaXZlIGNvbnRhaW5lci5cbkBmdW5jdGlvbiByYXRpby10by1wZXJjZW50YWdlKCRyYXRpbykge1xuICAkdzogbnRoKCRyYXRpbywgMSk7XG4gICRoOiBudGgoJHJhdGlvLCAzKTtcbiAgQHJldHVybiAkaCAvICR3ICogMTAwJTtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZ1bmN0aW9uc1xuLy8vL1xuXG4kZ2xvYmFsLWZvbnQtc2l6ZTogMTAwJSAhZGVmYXVsdDtcblxuLy8vIFJlbW92ZXMgdGhlIHVuaXQgKGUuZy4gcHgsIGVtLCByZW0pIGZyb20gYSB2YWx1ZSwgcmV0dXJuaW5nIHRoZSBudW1iZXIgb25seS5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbnVtIC0gTnVtYmVyIHRvIHN0cmlwIHVuaXQgZnJvbS5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IFRoZSBzYW1lIG51bWJlciwgc2FucyB1bml0LlxuQGZ1bmN0aW9uIHN0cmlwLXVuaXQoJG51bSkge1xuICBAcmV0dXJuICRudW0gLyAoJG51bSAqIDAgKyAxKTtcbn1cblxuLy8vIENvbnZlcnRzIG9uZSBvciBtb3JlIHBpeGVsIHZhbHVlcyBpbnRvIG1hdGNoaW5nIHJlbSB2YWx1ZXMuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkdmFsdWVzIC0gT25lIG9yIG1vcmUgdmFsdWVzIHRvIGNvbnZlcnQuIEJlIHN1cmUgdG8gc2VwYXJhdGUgdGhlbSB3aXRoIHNwYWNlcyBhbmQgbm90IGNvbW1hcy4gSWYgeW91IG5lZWQgdG8gY29udmVydCBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0LCB3cmFwIHRoZSBsaXN0IGluIHBhcmVudGhlc2VzLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFzZSBbbnVsbF0gLSBUaGUgYmFzZSB2YWx1ZSB0byB1c2Ugd2hlbiBjYWxjdWxhdGluZyB0aGUgYHJlbWAuIElmIHlvdSdyZSB1c2luZyBGb3VuZGF0aW9uIG91dCBvZiB0aGUgYm94LCB0aGlzIGlzIDE2cHguIElmIHRoaXMgcGFyYW1ldGVyIGlzIGBudWxsYCwgdGhlIGZ1bmN0aW9uIHdpbGwgcmVmZXJlbmNlIHRoZSBgJGJhc2UtZm9udC1zaXplYCB2YXJpYWJsZSBhcyB0aGUgYmFzZS5cbi8vL1xuLy8vIEByZXR1cm5zIHtMaXN0fSBBIGxpc3Qgb2YgY29udmVydGVkIHZhbHVlcy5cbkBmdW5jdGlvbiByZW0tY2FsYygkdmFsdWVzLCAkYmFzZTogbnVsbCkge1xuICAkcmVtLXZhbHVlczogKCk7XG4gICRjb3VudDogbGVuZ3RoKCR2YWx1ZXMpO1xuXG4gIC8vIElmIG5vIGJhc2UgaXMgZGVmaW5lZCwgZGVmZXIgdG8gdGhlIGdsb2JhbCBmb250IHNpemVcbiAgQGlmICRiYXNlID09IG51bGwge1xuICAgICRiYXNlOiAkZ2xvYmFsLWZvbnQtc2l6ZTtcbiAgfVxuXG4gIC8vIElmIHRoZSBiYXNlIGZvbnQgc2l6ZSBpcyBhICUsIHRoZW4gbXVsdGlwbHkgaXQgYnkgMTZweFxuICAvLyBUaGlzIGlzIGJlY2F1c2UgMTAwJSBmb250IHNpemUgPSAxNnB4IGluIG1vc3QgYWxsIGJyb3dzZXJzXG4gIEBpZiB1bml0KCRiYXNlKSA9PSAnJScge1xuICAgICRiYXNlOiAoJGJhc2UgLyAxMDAlKSAqIDE2cHg7XG4gIH1cblxuICAvLyBVc2luZyByZW0gYXMgYmFzZSBhbGxvd3MgY29ycmVjdCBzY2FsaW5nXG4gIEBpZiB1bml0KCRiYXNlKSA9PSAncmVtJyB7XG4gICAgJGJhc2U6IHN0cmlwLXVuaXQoJGJhc2UpICogMTZweDtcbiAgfVxuXG4gIEBpZiAkY291bnQgPT0gMSB7XG4gICAgQHJldHVybiAtemYtdG8tcmVtKCR2YWx1ZXMsICRiYXNlKTtcbiAgfVxuXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGNvdW50IHtcbiAgICAkcmVtLXZhbHVlczogYXBwZW5kKCRyZW0tdmFsdWVzLCAtemYtdG8tcmVtKG50aCgkdmFsdWVzLCAkaSksICRiYXNlKSk7XG4gIH1cblxuICBAcmV0dXJuICRyZW0tdmFsdWVzO1xufVxuXG4vLyBDb252ZXJ0cyBhIHVuaXRsZXNzLCBwaXhlbCwgb3IgcmVtIHZhbHVlIHRvIGVtLCBmb3IgdXNlIGluIGJyZWFrcG9pbnRzLlxuQGZ1bmN0aW9uIC16Zi1icC10by1lbSgkdmFsdWUpIHtcbiAgLy8gUGl4ZWwgYW5kIHVuaXRsZXNzIHZhbHVlcyBhcmUgY29udmVydGVkIHRvIHJlbXNcbiAgQGlmIHVuaXQoJHZhbHVlKSA9PSAncHgnIG9yIHVuaXRsZXNzKCR2YWx1ZSkge1xuICAgICR2YWx1ZTogcmVtLWNhbGMoJHZhbHVlLCAkYmFzZTogMTZweCk7XG4gIH1cblxuICAvLyBUaGVuIHRoZSB2YWx1ZSBpcyBjb252ZXJ0ZWQgdG8gZW1zXG4gIEByZXR1cm4gc3RyaXAtdW5pdCgkdmFsdWUpICogMWVtO1xufVxuXG4vLy8gQ29udmVydHMgYSBwaXhlbCB2YWx1ZSB0byBtYXRjaGluZyByZW0gdmFsdWUuICpBbnkqIHZhbHVlIHBhc3NlZCwgcmVnYXJkbGVzcyBvZiB1bml0LCBpcyBhc3N1bWVkIHRvIGJlIGEgcGl4ZWwgdmFsdWUuIEJ5IGRlZmF1bHQsIHRoZSBiYXNlIHBpeGVsIHZhbHVlIHVzZWQgdG8gY2FsY3VsYXRlIHRoZSByZW0gdmFsdWUgaXMgdGFrZW4gZnJvbSB0aGUgYCRnbG9iYWwtZm9udC1zaXplYCB2YXJpYWJsZS5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdmFsdWUgLSBQaXhlbCB2YWx1ZSB0byBjb252ZXJ0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFzZSBbbnVsbF0gLSBCYXNlIGZvciBwaXhlbCBjb252ZXJzaW9uLlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gQSBudW1iZXIgaW4gcmVtcywgY2FsY3VsYXRlZCBiYXNlZCBvbiB0aGUgZ2l2ZW4gdmFsdWUgYW5kIHRoZSBiYXNlIHBpeGVsIHZhbHVlLiByZW0gdmFsdWVzIGFyZSBwYXNzZWQgdGhyb3VnaCBhcyBpcy5cbkBmdW5jdGlvbiAtemYtdG8tcmVtKCR2YWx1ZSwgJGJhc2U6IG51bGwpIHtcbiAgLy8gQ2hlY2sgaWYgdGhlIHZhbHVlIGlzIGEgbnVtYmVyXG4gIEBpZiB0eXBlLW9mKCR2YWx1ZSkgIT0gJ251bWJlcicge1xuICAgIEB3YXJuIGluc3BlY3QoJHZhbHVlKSArICcgd2FzIHBhc3NlZCB0byByZW0tY2FsYygpLCB3aGljaCBpcyBub3QgYSBudW1iZXIuJztcbiAgICBAcmV0dXJuICR2YWx1ZTtcbiAgfVxuXG4gIC8vIFRyYW5zZm9ybSBlbSBpbnRvIHJlbSBpZiBzb21lb25lIGhhbmRzIG92ZXIgJ2VtJ3NcbiAgQGlmIHVuaXQoJHZhbHVlKSA9PSAnZW0nIHtcbiAgICAkdmFsdWU6IHN0cmlwLXVuaXQoJHZhbHVlKSAqIDFyZW07XG4gIH1cblxuICAvLyBDYWxjdWxhdGUgcmVtIGlmIHVuaXRzIGZvciAkdmFsdWUgaXMgbm90IHJlbSBvciBlbVxuICBAaWYgdW5pdCgkdmFsdWUpICE9ICdyZW0nIHtcbiAgICAkdmFsdWU6IHN0cmlwLXVuaXQoJHZhbHVlKSAvIHN0cmlwLXVuaXQoJGJhc2UpICogMXJlbTtcbiAgfVxuXG4gIC8vIFR1cm4gMHJlbSBpbnRvIDBcbiAgQGlmICR2YWx1ZSA9PSAwcmVtIHtcbiAgICAkdmFsdWU6IDA7XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZTtcbn1cblxuLy8vIENvbnZlcnRzIGEgcGl4ZWwsIHBlcmNlbnRhZ2UsIHJlbSBvciBlbSB2YWx1ZSB0byBhIHVuaXRsZXNzIHZhbHVlIGJhc2VkIG9uIGEgZ2l2ZW4gZm9udCBzaXplLiBJZGVhbCBmb3Igd29ya2luZyBvdXQgdW5pdGxlc3MgbGluZSBoZWlnaHRzLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR2YWx1ZSAtIFZhbHVlIHRvIGNvbnZlcnQgdG8gYSB1bml0bGVzcyBsaW5lIGhlaWdodFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFzZSAtIFRoZSBmb250IHNpemUgdG8gdXNlIHRvIHdvcmsgb3V0IHRoZSBsaW5lIGhlaWdodCAtIGRlZmF1bHRzIHRvICRnbG9iYWwtZm9udC1zaXplXG4vLy9cbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IC0gVW5pdGxlc3MgbnVtYmVyXG5AZnVuY3Rpb24gdW5pdGxlc3MtY2FsYygkdmFsdWUsICRiYXNlOiBudWxsKSB7XG5cbiAgLy8gSWYgbm8gYmFzZSBpcyBkZWZpbmVkLCBkZWZlciB0byB0aGUgZ2xvYmFsIGZvbnQgc2l6ZVxuICBAaWYgJGJhc2UgPT0gbnVsbCB7XG4gICAgJGJhc2U6ICRnbG9iYWwtZm9udC1zaXplO1xuICB9XG5cbiAgLy8gRmlyc3QsIGxldHMgY29udmVydCBvdXIgJGJhc2UgdG8gcGl4ZWxzXG5cbiAgLy8gSWYgdGhlIGJhc2UgZm9udCBzaXplIGlzIGEgJSwgdGhlbiBtdWx0aXBseSBpdCBieSAxNnB4XG4gIEBpZiB1bml0KCRiYXNlKSA9PSAnJScge1xuICAgICRiYXNlOiAoJGJhc2UgLyAxMDAlKSAqIDE2cHg7XG4gIH1cblxuICBAaWYgdW5pdCgkYmFzZSkgPT0gJ3JlbScge1xuICAgICRiYXNlOiBzdHJpcC11bml0KCRiYXNlKSAqIDE2cHg7XG4gIH1cblxuICBAaWYgdW5pdCgkYmFzZSkgPT0gJ2VtJyB7XG4gICAgJGJhc2U6IHN0cmlwLXVuaXQoJGJhc2UpICogMTZweDtcbiAgfVxuXG4gIC8vIE5vdyBsZXRzIGNvbnZlcnQgb3VyIHZhbHVlIHRvIHBpeGVscyB0b29cbiAgQGlmIHVuaXQoJHZhbHVlKSA9PSAnJScge1xuICAgICR2YWx1ZTogKCR2YWx1ZSAvIDEwMCUpICogJGJhc2U7XG4gIH1cblxuICBAaWYgdW5pdCgkdmFsdWUpID09ICdyZW0nIHtcbiAgICAkdmFsdWU6IHN0cmlwLXVuaXQoJHZhbHVlKSAqICRiYXNlO1xuICB9XG5cbiAgQGlmIHVuaXQoJHZhbHVlKSA9PSAnZW0nIHtcbiAgICAkdmFsdWU6IHN0cmlwLXVuaXQoJHZhbHVlKSAqICRiYXNlO1xuICB9XG5cbiAgLy8gJ3B4J1xuICBAaWYgdW5pdCgkdmFsdWUpID09ICdweCcge1xuICAgIEByZXR1cm4gc3RyaXAtdW5pdCgkdmFsdWUpIC8gc3RyaXAtdW5pdCgkYmFzZSk7XG4gIH1cblxuICAvLyBhc3N1bWUgdGhhdCBsaW5lLWhlaWdodHMgZ3JlYXRlcm4gdGhlbiAxMCBhcmUgbWVhbnQgdG8gYmUgYWJzb2x1dGUgaW4gJ3B4J1xuICBAaWYgdW5pdGxlc3MoJHZhbHVlKSBhbmQgKCR2YWx1ZSA+IDEwKSB7XG4gICAgQHJldHVybiAkdmFsdWUgLyBzdHJpcC11bml0KCRiYXNlKTtcbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZnVuY3Rpb25zXG4vLy8vXG5cbi8vLyBEZXRlcm1pbmUgaWYgYSB2YWx1ZSBpcyBub3QgZmFsc2V5LCBpbiBDU1MgdGVybXMuIEZhbHNleSB2YWx1ZXMgYXJlIGBudWxsYCwgYG5vbmVgLCBgMGAgd2l0aCBhbnkgdW5pdCwgb3IgYW4gZW1wdHkgbGlzdC5cbi8vL1xuLy8vIEBwYXJhbSB7TWl4ZWR9ICR2YWwgLSBWYWx1ZSB0byBjaGVjay5cbi8vL1xuLy8vIEByZXR1cm5zIHtCb29sZWFufSBgdHJ1ZWAgaWYgYCR2YWxgIGlzIG5vdCBmYWxzZXkuXG5AZnVuY3Rpb24gaGFzLXZhbHVlKCR2YWwpIHtcbiAgQGlmICR2YWwgPT0gbnVsbCBvciAkdmFsID09IG5vbmUge1xuICAgIEByZXR1cm4gZmFsc2U7XG4gIH1cbiAgQGlmIHR5cGUtb2YoJHZhbCkgPT0gJ251bWJlcicgYW5kIHN0cmlwLXVuaXQoJHZhbCkgPT0gMCB7XG4gICAgQHJldHVybiBmYWxzZTtcbiAgfVxuICBAaWYgdHlwZS1vZigkdmFsKSA9PSAnbGlzdCcgYW5kIGxlbmd0aCgkdmFsKSA9PSAwIHtcbiAgICBAcmV0dXJuIGZhbHNlO1xuICB9XG4gIEByZXR1cm4gdHJ1ZTtcbn1cblxuLy8vIERldGVybWluZSBhIHRvcC9yaWdodC9ib3R0b20vcmlnaHQgdmFsdWUgb24gYSBwYWRkaW5nLCBtYXJnaW4sIGV0Yy4gcHJvcGVydHksIG5vIG1hdHRlciBob3cgbWFueSB2YWx1ZXMgd2VyZSBwYXNzZWQgaW4uIFVzZSB0aGlzIGZ1bmN0aW9uIGlmIHlvdSBuZWVkIHRvIGtub3cgdGhlIHNwZWNpZmljIHNpZGUgb2YgYSB2YWx1ZSwgYnV0IGRvbid0IGtub3cgaWYgdGhlIHZhbHVlIGlzIHVzaW5nIGEgc2hvcnRoYW5kIGZvcm1hdC5cbi8vL1xuLy8vIEBwYXJhbSB7TGlzdHxOdW1iZXJ9ICR2YWwgLSBWYWx1ZSB0byBhbmFseXplLiBTaG91bGQgYmUgYSBzaG9ydGhhbmQgc2l6aW5nIHByb3BlcnR5LCBlLmcuIFwiMWVtIDJlbSAxZW1cIlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpZGUgLSBTaWRlIHRvIHJldHVybi4gU2hvdWxkIGJlIGB0b3BgLCBgcmlnaHRgLCBgYm90dG9tYCwgb3IgYGxlZnRgLlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gQSBzaW5nbGUgdmFsdWUgYmFzZWQgb24gYCR2YWxgIGFuZCBgJHNpZGVgLlxuQGZ1bmN0aW9uIGdldC1zaWRlKCR2YWwsICRzaWRlKSB7XG4gICRsZW5ndGg6IGxlbmd0aCgkdmFsKTtcblxuICBAaWYgJGxlbmd0aCA9PSAxIHtcbiAgICBAcmV0dXJuICR2YWw7XG4gIH1cbiAgQGlmICRsZW5ndGggPT0gMiB7XG4gICAgQHJldHVybiBtYXAtZ2V0KChcbiAgICAgIHRvcDogbnRoKCR2YWwsIDEpLFxuICAgICAgYm90dG9tOiBudGgoJHZhbCwgMSksXG4gICAgICBsZWZ0OiBudGgoJHZhbCwgMiksXG4gICAgICByaWdodDogbnRoKCR2YWwsIDIpLFxuICAgICksICRzaWRlKTtcbiAgfVxuICBAaWYgJGxlbmd0aCA9PSAzIHtcbiAgICBAcmV0dXJuIG1hcC1nZXQoKFxuICAgICAgdG9wOiBudGgoJHZhbCwgMSksXG4gICAgICBsZWZ0OiBudGgoJHZhbCwgMiksXG4gICAgICByaWdodDogbnRoKCR2YWwsIDIpLFxuICAgICAgYm90dG9tOiBudGgoJHZhbCwgMyksXG4gICAgKSwgJHNpZGUpO1xuICB9XG4gIEBpZiAkbGVuZ3RoID09IDQge1xuICAgIEByZXR1cm4gbWFwLWdldCgoXG4gICAgICB0b3A6IG50aCgkdmFsLCAxKSxcbiAgICAgIHJpZ2h0OiBudGgoJHZhbCwgMiksXG4gICAgICBib3R0b206IG50aCgkdmFsLCAzKSxcbiAgICAgIGxlZnQ6IG50aCgkdmFsLCA0KSxcbiAgICApLCAkc2lkZSk7XG4gIH1cbn1cblxuLy8vIEdpdmVuIGJvcmRlciAkdmFsLCBmaW5kIGEgc3BlY2lmaWMgZWxlbWVudCBvZiB0aGUgYm9yZGVyLCB3aGljaCBpcyAkZWxlbS4gVGhlIHBvc3NpYmxlIHZhbHVlcyBmb3IgJGVsZW0gYXJlIHdpZHRoLCBzdHlsZSwgYW5kIGNvbG9yLlxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkdmFsIC0gQm9yZGVyIHZhbHVlIHRvIGZpbmQgYSB2YWx1ZSBpbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRlbGVtIC0gQm9yZGVyIGNvbXBvbmVudCB0byBleHRyYWN0LlxuLy8vXG4vLy8gQHJldHVybnMge01peGVkfSBJZiB0aGUgdmFsdWUgZXhpc3RzLCByZXR1cm5zIHRoZSB2YWx1ZS4gSWYgdGhlIHZhbHVlIGlzIG5vdCBpbiB0aGUgYm9yZGVyIGRlZmluaXRpb24sIHRoZSBmdW5jdGlvbiB3aWxsIHJldHVybiBhIDBweCB3aWR0aCwgc29saWQgc3R5bGUsIG9yIGJsYWNrIGJvcmRlci5cbkBmdW5jdGlvbiBnZXQtYm9yZGVyLXZhbHVlKCR2YWwsICRlbGVtKSB7XG4gIC8vIEZpbmQgdGhlIHdpZHRoLCBzdHlsZSwgb3IgY29sb3IgYW5kIHJldHVybiBpdFxuICBAZWFjaCAkdiBpbiAkdmFsIHtcbiAgICAkdHlwZTogdHlwZS1vZigkdik7XG4gICAgQGlmICRlbGVtID09IHdpZHRoIGFuZCAkdHlwZSA9PSAnbnVtYmVyJyB7XG4gICAgICBAcmV0dXJuICR2O1xuICAgIH1cbiAgICBAaWYgJGVsZW0gPT0gc3R5bGUgYW5kICR0eXBlID09ICdzdHJpbmcnIHtcbiAgICAgIEByZXR1cm4gJHY7XG4gICAgfVxuICAgIEBpZiAkZWxlbSA9PSBjb2xvciBhbmQgJHR5cGUgPT0gJ2NvbG9yJyB7XG4gICAgICBAcmV0dXJuICR2O1xuICAgIH1cbiAgfVxuXG4gIC8vIERlZmF1bHRzXG4gICRkZWZhdWx0czogKFxuICAgIHdpZHRoOiAwLFxuICAgIHN0eWxlOiBzb2xpZCxcbiAgICBjb2xvcjogIzAwMCxcbiAgKTtcblxuICBAcmV0dXJuIG1hcC1nZXQoJGRlZmF1bHRzLCAkZWxlbSk7XG59XG5cbi8vLyBGaW5kcyBhIHZhbHVlIGluIGEgbmVzdGVkIG1hcC5cbi8vLyBAbGluayBodHRwczovL2Nzcy10cmlja3MuY29tL3NuaXBwZXRzL3Nhc3MvZGVlcC1nZXRzZXQtbWFwcy8gRGVlcCBHZXQvU2V0IGluIE1hcHNcbi8vL1xuLy8vIEBwYXJhbSB7TWFwfSAkbWFwIC0gTWFwIHRvIHB1bGwgYSB2YWx1ZSBmcm9tLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAka2V5cy4uLiAtIEtleXMgdG8gdXNlIHdoZW4gbG9va2luZyBmb3IgYSB2YWx1ZS5cbi8vLyBAcmV0dXJucyB7TWl4ZWR9IFRoZSB2YWx1ZSBmb3VuZCBpbiB0aGUgbWFwLlxuQGZ1bmN0aW9uIG1hcC1kZWVwLWdldCgkbWFwLCAka2V5cy4uLikge1xuICBAZWFjaCAka2V5IGluICRrZXlzIHtcbiAgICAkbWFwOiBtYXAtZ2V0KCRtYXAsICRrZXkpO1xuICB9XG4gIEByZXR1cm4gJG1hcDtcbn1cblxuLy8vIENhc3RzIGEgbWFwIGludG8gYSBsaXN0LlxuLy8vIEBsaW5rIGh0dHA6Ly9odWdvZ2lyYXVkZWwuY29tLzIwMTQvMDQvMjgvY2FzdGluZy1tYXAtaW50by1saXN0L1xuLy8vXG4vLy8gQHBhcmFtIHtNYXB9ICRtYXAgLSBNYXAgdG8gcHVsbCBhIHZhbHVlIGZyb20uXG4vLy9cbi8vLyBAcmV0dXJucyB7TGlzdH0gRGVwZW5kaW5nIG9uIHRoZSBmbGFnLCByZXR1cm5zIGVpdGhlciAka2V5cyBvciAkdmFsdWVzIG9yIGJvdGguXG5AZnVuY3Rpb24gbWFwLXRvLWxpc3QoJG1hcCwgJGtlZXA6ICdib3RoJykge1xuICAka2VlcDogaWYoaW5kZXgoJ2tleXMnICd2YWx1ZXMnLCAka2VlcCksICRrZWVwLCAnYm90aCcpO1xuXG4gIEBpZiB0eXBlLW9mKCRtYXApID09ICdtYXAnIHtcbiAgICAka2V5czogKCk7XG4gICAgJHZhbHVlczogKCk7XG5cbiAgICBAZWFjaCAka2V5LCAkdmFsIGluICRtYXAge1xuICAgICAgJGtleXM6IGFwcGVuZCgka2V5cywgJGtleSk7XG4gICAgICAkdmFsdWVzOiBhcHBlbmQoJHZhbHVlcywgJHZhbCk7XG4gICAgfVxuXG4gICAgQGlmICRrZWVwID09ICdrZXlzJyB7XG4gICAgICBAcmV0dXJuICRrZXlzO1xuICAgIH1cbiAgICBAZWxzZSBpZiAka2VlcCA9PSAndmFsdWVzJyB7XG4gICAgICBAcmV0dXJuICR2YWx1ZXM7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEByZXR1cm4gemlwKCRrZXlzLCAkdmFsdWVzKTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuIGlmKHR5cGUtb2YoJG1hcCkgIT0gJ2xpc3QnLCAoJHZhbHVlLCksICRtYXApO1xuXG59XG5cbi8vLyBTYWZlbHkgcmV0dXJuIGEgdmFsdWUgZnJvbSBhIG1hcC5cbi8vL1xuLy8vIEBwYXJhbSB7TWFwfSAkbWFwIC0gTWFwIHRvIHJldHJpZXZlIGEgdmFsdWUgZnJvbS5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGtleSAtIE5hbWUgb2YgdGhlIG1hcCBrZXkuXG4vLy9cbi8vLyBAcmV0dXJucyB7TGlzdH0gRm91bmQgdmFsdWUuXG5AZnVuY3Rpb24gbWFwLXNhZmUtZ2V0KCRtYXAsICRrZXkpIHtcbiAgQGlmICh0eXBlLW9mKCRtYXApID09ICdtYXAnIG9yICh0eXBlLW9mKCRtYXApID09ICdsaXN0JyBhbmQgbGVuZ3RoKCRtYXApID09IDApKSB7XG4gICAgQGlmIChtYXAtaGFzLWtleSgkbWFwLCAka2V5KSkge1xuICAgICAgQHJldHVybiBtYXAtZ2V0KCRtYXAsICRrZXkpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAZXJyb3IgJ0tleTogYCN7JGtleX1gIGlzIG5vdCBhdmFpbGFibGUgaW4gYCN7JG1hcH1gJztcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBlcnJvciAnYCN7JG1hcH1gIGlzIG5vdCBhIHZhbGlkIG1hcCc7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZ1bmN0aW9uc1xuLy8vL1xuXG4vLy8gUmV0dXJucyB0aGUgb3Bwb3NpdGUgZGlyZWN0aW9uIG9mICRkaXJcbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGRpciAtIFVzZWQgZGlyZWN0aW9uIGJldHdlZW4gXCJ0b3BcIiwgXCJyaWdodFwiLCBcImJvdHRvbVwiIGFuZCBcImxlZnRcIi5cbi8vLyBAcmV0dXJuIHtLZXl3b3JkfSBPcHBvc2l0ZSBkaXJlY3Rpb24gb2YgJGRpclxuQGZ1bmN0aW9uIGRpcmVjdGlvbi1vcHBvc2l0ZShcbiAgJGRpclxuKSB7XG4gICRkaXJzOiAodG9wLCByaWdodCwgYm90dG9tLCBsZWZ0KTtcbiAgJHBsYWNlOiBpbmRleCgkZGlycywgJGRpcik7XG5cbiAgQGlmICRwbGFjZSA9PSBudWxsIHtcbiAgICBAZXJyb3IgJ2RpcmVjdGlvbi1vcHBvc2l0ZTogSW52YWxpZCAkZGlyIHBhcmFtZXRlciwgZXhwZWN0ZWQgYSB2YWx1ZSBmcm9tIFwiI3skZGlyc31cIiwgZm91bmQgXCIjeyRkaXJ9XCIuJztcbiAgICBAcmV0dXJuIG51bGw7XG4gIH1cblxuICAvLyBDYWxjdWwgdGhlIG9wcG9zaXRlIHBsYWNlIGluIGEgY2lyY2xlLCB3aXRoIGEgc3RhcnRpbmcgaW5kZXggb2YgMVxuICAkbGVuZ3RoOiBsZW5ndGgoJGRpcnMpO1xuICAkZGVtaTogJGxlbmd0aCAvIDI7XG4gICRvcHBvc2l0ZS1wbGFjZTogKCgkcGxhY2UgKyAkZGVtaSAtIDEpICUgJGxlbmd0aCkgKyAxO1xuXG4gIEByZXR1cm4gbnRoKCRkaXJzLCAkb3Bwb3NpdGUtcGxhY2UpO1xufVxuXG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQGltcG9ydCAnbWF0aCc7XG5cbiRjb250cmFzdC13YXJuaW5nczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vL1xuLy8vIEBncm91cCBmdW5jdGlvbnNcbi8vLy9cblxuLy8vIENoZWNrcyB0aGUgbHVtaW5hbmNlIG9mIGAkY29sb3JgLlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIC0gQ29sb3IgdG8gY2hlY2sgdGhlIGx1bWluYW5jZSBvZi5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IFRoZSBsdW1pbmFuY2Ugb2YgYCRjb2xvcmAuXG5AZnVuY3Rpb24gY29sb3ItbHVtaW5hbmNlKCRjb2xvcikge1xuICAvLyBBZGFwdGVkIGZyb206IGh0dHBzOi8vZ2l0aHViLmNvbS9MZWFWZXJvdS9jb250cmFzdC1yYXRpby9ibG9iL2doLXBhZ2VzL2NvbG9yLmpzXG4gIC8vIEZvcm11bGE6IGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDgvUkVDLVdDQUcyMC0yMDA4MTIxMS8jcmVsYXRpdmVsdW1pbmFuY2VkZWZcbiAgJHJnYmE6IHJlZCgkY29sb3IpLCBncmVlbigkY29sb3IpLCBibHVlKCRjb2xvcik7XG4gICRyZ2JhMjogKCk7XG5cbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAzIHtcbiAgICAkcmdiOiBudGgoJHJnYmEsICRpKTtcbiAgICAkcmdiOiAkcmdiIC8gMjU1O1xuXG4gICAgJHJnYjogaWYoJHJnYiA8IDAuMDM5MjgsICRyZ2IgLyAxMi45MiwgcG93KCgkcmdiICsgMC4wNTUpIC8gMS4wNTUsIDIuNCkpO1xuXG4gICAgJHJnYmEyOiBhcHBlbmQoJHJnYmEyLCAkcmdiKTtcbiAgfVxuXG4gIEByZXR1cm4gMC4yMTI2ICogbnRoKCRyZ2JhMiwgMSkgKyAwLjcxNTIgKiBudGgoJHJnYmEyLCAyKSArIDAuMDcyMiAqIG50aCgkcmdiYTIsIDMpO1xufVxuXG4vLy8gQ2hlY2tzIHRoZSBjb250cmFzdCByYXRpbyBvZiB0d28gY29sb3JzLlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yMSAtIEZpcnN0IGNvbG9yIHRvIGNvbXBhcmUuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yMiAtIFNlY29uZCBjb2xvciB0byBjb21wYXJlLlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gVGhlIGNvbnRyYXN0IHJhdGlvIG9mIHRoZSBjb21wYXJlZCBjb2xvcnMuXG5AZnVuY3Rpb24gY29sb3ItY29udHJhc3QoJGNvbG9yMSwgJGNvbG9yMikge1xuICAvLyBBZGFwdGVkIGZyb206IGh0dHBzOi8vZ2l0aHViLmNvbS9MZWFWZXJvdS9jb250cmFzdC1yYXRpby9ibG9iL2doLXBhZ2VzL2NvbG9yLmpzXG4gIC8vIEZvcm11bGE6IGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDgvUkVDLVdDQUcyMC0yMDA4MTIxMS8jY29udHJhc3QtcmF0aW9kZWZcbiAgJGx1bWluYW5jZTE6IGNvbG9yLWx1bWluYW5jZSgkY29sb3IxKSArIDAuMDU7XG4gICRsdW1pbmFuY2UyOiBjb2xvci1sdW1pbmFuY2UoJGNvbG9yMikgKyAwLjA1O1xuICAkcmF0aW86ICRsdW1pbmFuY2UxIC8gJGx1bWluYW5jZTI7XG5cbiAgQGlmICRsdW1pbmFuY2UyID4gJGx1bWluYW5jZTEge1xuICAgICRyYXRpbzogMSAvICRyYXRpbztcbiAgfVxuXG4gICRyYXRpbzogcm91bmQoJHJhdGlvICogMTApIC8gMTA7XG5cbiAgQHJldHVybiAkcmF0aW87XG59XG5cbi8vLyBDaGVja3MgdGhlIGx1bWluYW5jZSBvZiBgJGJhc2VgLCBhbmQgcmV0dXJucyB0aGUgY29sb3IgZnJvbSBgJGNvbG9yc2AgKGxpc3Qgb2YgY29sb3JzKSB0aGF0IGhhcyB0aGUgbW9zdCBjb250cmFzdC5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYXNlIC0gQ29sb3IgdG8gY2hlY2sgbHVtaW5hbmNlLlxuLy8vIEBwYXJhbSB7TGlzdH0gJGNvbG9ycyBbKCR3aGl0ZSwgJGJsYWNrKV0gLSBDb2xvcnMgdG8gY29tcGFyZS5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHRvbGVyYW5jZSBbJGdsb2JhbC1jb2xvci1waWNrLWNvbnRyYXN0LXRvbGVyYW5jZV0gLSBDb250cmFzdCB0b2xlcmFuY2UuXG4vLy9cbi8vLyBAcmV0dXJucyB7Q29sb3J9IHRoZSBjb2xvciBmcm9tIGAkY29sb3JzYCAobGlzdCBvZiBjb2xvcnMpIHRoYXQgaGFzIHRoZSBtb3N0IGNvbnRyYXN0LlxuQGZ1bmN0aW9uIGNvbG9yLXBpY2stY29udHJhc3QoJGJhc2UsICRjb2xvcnM6ICgkd2hpdGUsICRibGFjayksICR0b2xlcmFuY2U6ICRnbG9iYWwtY29sb3ItcGljay1jb250cmFzdC10b2xlcmFuY2UpIHtcbiAgJGNvbnRyYXN0OiBjb2xvci1jb250cmFzdCgkYmFzZSwgbnRoKCRjb2xvcnMsIDEpKTtcbiAgJGJlc3Q6IG50aCgkY29sb3JzLCAxKTtcblxuICBAZm9yICRpIGZyb20gMiB0aHJvdWdoIGxlbmd0aCgkY29sb3JzKSB7XG4gICAgJGN1cnJlbnQtY29udHJhc3Q6IGNvbG9yLWNvbnRyYXN0KCRiYXNlLCBudGgoJGNvbG9ycywgJGkpKTtcbiAgICBAaWYgKCRjdXJyZW50LWNvbnRyYXN0IC0gJGNvbnRyYXN0ID4gJHRvbGVyYW5jZSkge1xuICAgICAgJGNvbnRyYXN0OiBjb2xvci1jb250cmFzdCgkYmFzZSwgbnRoKCRjb2xvcnMsICRpKSk7XG4gICAgICAkYmVzdDogbnRoKCRjb2xvcnMsICRpKTtcbiAgICB9XG4gIH1cblxuICBAaWYgKCRjb250cmFzdC13YXJuaW5ncyBhbmQgJGNvbnRyYXN0IDwgMykge1xuICAgIEB3YXJuIFwiQ29udHJhc3QgcmF0aW8gb2YgI3skYmVzdH0gb24gI3skYmFzZX0gaXMgcHJldHR5IGJhZCwganVzdCAjeyRjb250cmFzdH1cIjtcbiAgfVxuXG4gIEByZXR1cm4gJGJlc3Q7XG59XG5cbi8vLyBTY2FsZXMgYSBjb2xvciB0byBiZSBkYXJrZXIgaWYgaXQncyBsaWdodCwgb3IgbGlnaHRlciBpZiBpdCdzIGRhcmsuIFVzZSB0aGlzIGZ1bmN0aW9uIHRvIHRpbnQgYSBjb2xvciBhcHByb3ByaWF0ZSB0byBpdHMgbGlnaHRuZXNzLlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIC0gQ29sb3IgdG8gc2NhbGUuXG4vLy8gQHBhcmFtIHtQZXJjZW50YWdlfSAkc2NhbGUgWzUlXSAtIEFtb3VudCB0byBzY2FsZSB1cCBvciBkb3duLlxuLy8vIEBwYXJhbSB7UGVyY2VudGFnZX0gJHRocmVzaG9sZCBbNDAlXSAtIFRocmVzaG9sZCBvZiBsaWdodG5lc3MgdG8gY2hlY2sgYWdhaW5zdC5cbi8vL1xuLy8vIEByZXR1cm5zIHtDb2xvcn0gQSBzY2FsZWQgY29sb3IuXG5AZnVuY3Rpb24gc21hcnQtc2NhbGUoJGNvbG9yLCAkc2NhbGU6IDUlLCAkdGhyZXNob2xkOiA0MCUpIHtcbiAgQGlmIGxpZ2h0bmVzcygkY29sb3IpID4gJHRocmVzaG9sZCB7XG4gICAgJHNjYWxlOiAtJHNjYWxlO1xuICB9XG4gIEByZXR1cm4gc2NhbGUtY29sb3IoJGNvbG9yLCAkbGlnaHRuZXNzOiAkc2NhbGUpO1xufVxuXG4vLy8gR2V0IGNvbG9yIGZyb20gZm91bmRhdGlvbi1wYWxldHRlXG4vLy9cbi8vLyBAcGFyYW0ge2tleX0gY29sb3Iga2V5IGZyb20gZm91bmRhdGlvbi1wYWxldHRlXG4vLy9cbi8vLyBAcmV0dXJucyB7Q29sb3J9IGNvbG9yIGZyb20gZm91bmRhdGlvbi1wYWxldHRlXG5AZnVuY3Rpb24gZ2V0LWNvbG9yKCRrZXkpIHtcbiAgQGlmIG1hcC1oYXMta2V5KCRmb3VuZGF0aW9uLXBhbGV0dGUsICRrZXkpIHtcbiAgICBAcmV0dXJuIG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgJGtleSk7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBlcnJvciAnZ2l2ZW4gJGtleSBpcyBub3QgYXZhaWxhYmxlIGluICRmb3VuZGF0aW9uLXBhbGV0dGUnO1xuICB9XG59XG5cbi8vLyBUcmFuc2ZlcnMgdGhlIGNvbG9ycyBpbiB0aGUgYCRmb3VuZGF0aW9uLXBhbGV0dGVgbWFwIGludG8gdmFyaWFibGVzLCBzdWNoIGFzIGAkcHJpbWFyeS1jb2xvcmAgYW5kIGAkc2Vjb25kYXJ5LWNvbG9yYC4gQ2FsbCB0aGlzIG1peGluIGJlbG93IHRoZSBHbG9iYWwgc2VjdGlvbiBvZiB5b3VyIHNldHRpbmdzIGZpbGUgdG8gcHJvcGVybHkgbWlncmF0ZSB5b3VyIGNvZGViYXNlLlxuQG1peGluIGFkZC1mb3VuZGF0aW9uLWNvbG9ycygpIHtcbiAgQGlmIG1hcC1oYXMta2V5KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHByaW1hcnkpIHtcbiAgICAkcHJpbWFyeS1jb2xvcjogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBwcmltYXJ5KSAhZ2xvYmFsO1xuICB9XG4gIEBpZiBtYXAtaGFzLWtleSgkZm91bmRhdGlvbi1wYWxldHRlLCBzZWNvbmRhcnkpIHtcbiAgICAkc2Vjb25kYXJ5LWNvbG9yOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHNlY29uZGFyeSkgIWdsb2JhbDtcbiAgfVxuICBAaWYgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgc3VjY2Vzcykge1xuICAgICRzdWNjZXNzLWNvbG9yOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHN1Y2Nlc3MpICFnbG9iYWw7XG4gIH1cbiAgQGlmIG1hcC1oYXMta2V5KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHdhcm5pbmcpIHtcbiAgICAkd2FybmluZy1jb2xvcjogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCB3YXJuaW5nKSAhZ2xvYmFsO1xuICB9XG4gIEBpZiBtYXAtaGFzLWtleSgkZm91bmRhdGlvbi1wYWxldHRlLCBhbGVydCkge1xuICAgICRhbGVydC1jb2xvcjogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBhbGVydCkgIWdsb2JhbDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZnVuY3Rpb25zXG4vLy8vXG5cbi8vLyBGaW5kcyB0aGUgZ3JlYXRlc3QgY29tbW9uIGRpdmlzb3Igb2YgdHdvIGludGVnZXJzLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRhIC0gRmlyc3QgbnVtYmVyIHRvIGNvbXBhcmUuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiIC0gU2Vjb25kIG51bWJlciB0byBjb21wYXJlLlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gVGhlIGdyZWF0ZXN0IGNvbW1vbiBkaXZpc29yLlxuQGZ1bmN0aW9uIGdjZCgkYSwgJGIpIHtcbiAgLy8gRnJvbTogaHR0cDovL3Jvc2V0dGFjb2RlLm9yZy93aWtpL0dyZWF0ZXN0X2NvbW1vbl9kaXZpc29yI0phdmFTY3JpcHRcbiAgQGlmICgkYiAhPSAwKSB7XG4gICAgQHJldHVybiBnY2QoJGIsICRhICUgJGIpO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIGFicygkYSk7XG4gIH1cbn1cblxuLy8vIEhhbmRsZXMgZGVjaW1hbCBleHBvbmVudHMgYnkgdHJ5aW5nIHRvIGNvbnZlcnQgdGhlbSBpbnRvIGEgZnJhY3Rpb24gYW5kIHRoZW4gdXNlIGEgbnRoLXJvb3QtYWxnb3JpdGhtIGZvciBwYXJ0cyBvZiB0aGUgY2FsY3VsYXRpb25cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFzZSAtIFRoZSBiYXNlIG51bWJlci5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGV4cG9uZW50IC0gVGhlIGV4cG9uZW50LlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gVGhlIHByb2R1Y3Qgb2YgdGhlIGV4cG9uZW50aWF0aW9uLlxuQGZ1bmN0aW9uIHBvdygkYmFzZSwgJGV4cG9uZW50LCAkcHJlYzogMTYpIHtcbiAgQGlmIChmbG9vcigkZXhwb25lbnQpICE9ICRleHBvbmVudCkge1xuICAgICRwcmVjMiA6IHBvdygxMCwgJHByZWMpO1xuICAgICRleHBvbmVudDogcm91bmQoJGV4cG9uZW50ICogJHByZWMyKTtcbiAgICAkZGVub21pbmF0b3I6IGdjZCgkZXhwb25lbnQsICRwcmVjMik7XG4gICAgQHJldHVybiBudGgtcm9vdChwb3coJGJhc2UsICRleHBvbmVudCAvICRkZW5vbWluYXRvciksICRwcmVjMiAvICRkZW5vbWluYXRvciwgJHByZWMpO1xuICB9XG5cbiAgJHZhbHVlOiAkYmFzZTtcbiAgQGlmICRleHBvbmVudCA+IDEge1xuICAgIEBmb3IgJGkgZnJvbSAyIHRocm91Z2ggJGV4cG9uZW50IHtcbiAgICAgICR2YWx1ZTogJHZhbHVlICogJGJhc2U7XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRleHBvbmVudCA8IDEge1xuICAgIEBmb3IgJGkgZnJvbSAwIHRocm91Z2ggLSRleHBvbmVudCB7XG4gICAgICAkdmFsdWU6ICR2YWx1ZSAvICRiYXNlO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlO1xufVxuXG5AZnVuY3Rpb24gbnRoLXJvb3QoJG51bSwgJG46IDIsICRwcmVjOiAxMikge1xuICAvLyBGcm9tOiBodHRwOi8vcm9zZXR0YWNvZGUub3JnL3dpa2kvTnRoX3Jvb3QjSmF2YVNjcmlwdFxuICAkeDogMTtcblxuICBAZm9yICRpIGZyb20gMCB0aHJvdWdoICRwcmVjIHtcbiAgICAkeDogMSAvICRuICogKCgkbiAtIDEpICogJHggKyAoJG51bSAvIHBvdygkeCwgJG4gLSAxKSkpO1xuICB9XG5cbiAgQHJldHVybiAkeDtcbn1cblxuLy8vIENhbGN1bGF0ZXMgdGhlIGhlaWdodCBhcyBhIHBlcmNlbnRhZ2Ugb2YgdGhlIHdpZHRoIGZvciBhIGdpdmVuIHJhdGlvLlxuLy8vIEBwYXJhbSB7TGlzdH0gJHJhdGlvIC0gUmF0aW8gdG8gdXNlIHRvIGNhbGN1bGF0ZSB0aGUgaGVpZ2h0LCBmb3JtYXR0ZWQgYXMgYHggYnkgeWAuXG4vLy8gQHJldHVybiB7TnVtYmVyfSBBIHBlcmNlbnRhZ2UgdmFsdWUgZm9yIHRoZSBoZWlnaHQgcmVsYXRpdmUgdG8gdGhlIHdpZHRoIG9mIGEgcmVzcG9uc2l2ZSBjb250YWluZXIuXG5AZnVuY3Rpb24gcmF0aW8tdG8tcGVyY2VudGFnZSgkcmF0aW8pIHtcbiAgJHc6IG50aCgkcmF0aW8sIDEpO1xuICAkaDogbnRoKCRyYXRpbywgMyk7XG4gIEByZXR1cm4gJGggLyAkdyAqIDEwMCU7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmdW5jdGlvbnNcbi8vLy9cblxuLy8vIEdlbmVyYXRlcyBhIHNlbGVjdG9yIHdpdGggZXZlcnkgdGV4dCBpbnB1dCB0eXBlLiBZb3UgY2FuIGFsc28gZmlsdGVyIHRoZSBsaXN0IHRvIG9ubHkgb3V0cHV0IGEgc3Vic2V0IG9mIHRob3NlIHNlbGVjdG9ycy5cbi8vL1xuLy8vIEBwYXJhbSB7TGlzdHxLZXl3b3JkfSAkdHlwZXMgWygpXSAtIEEgbGlzdCBvZiB0ZXh0IGlucHV0IHR5cGVzIHRvIHVzZS4gTGVhdmUgYmxhbmsgdG8gdXNlIGFsbCBvZiB0aGVtLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJG1vZGlmaWVyIFsnJ10gLSBBIG1vZGlmaWVyIHRvIGJlIGFwcGxpZWQgdG8gZWFjaCB0ZXh0IGlucHV0IHR5cGUgKGUuZy4gYSBjbGFzcyBvciBhIHBzZXVkby1jbGFzcykuIExlYXZlIGJsYW5rIHRvIGlnbm9yZS5cbkBmdW5jdGlvbiB0ZXh0LWlucHV0cygkdHlwZXM6ICgpLCAkbW9kaWZpZXI6ICcnKSB7XG4gICRyZXR1cm46ICgpO1xuXG4gICRhbGwtdHlwZXM6XG4gICAgdGV4dFxuICAgIHBhc3N3b3JkXG4gICAgZGF0ZVxuICAgIGRhdGV0aW1lXG4gICAgZGF0ZXRpbWUtbG9jYWxcbiAgICBtb250aFxuICAgIHdlZWtcbiAgICBlbWFpbFxuICAgIG51bWJlclxuICAgIHNlYXJjaFxuICAgIHRlbFxuICAgIHRpbWVcbiAgICB1cmxcbiAgICBjb2xvcjtcblxuICBAaWYgbm90IGhhcy12YWx1ZSgkdHlwZXMpIHtcbiAgICAkdHlwZXM6ICRhbGwtdHlwZXM7XG4gIH1cblxuICBAZWFjaCAkdHlwZSBpbiAkdHlwZXMge1xuICAgICRyZXR1cm46IGFwcGVuZCgkcmV0dXJuLCB1bnF1b3RlKCdbdHlwZT1cXCcjeyR0eXBlfVxcJ10jeyRtb2RpZmllcn0nKSwgY29tbWEpO1xuICB9XG5cbiAgQHJldHVybiAkcmV0dXJuO1xufVxuIiwiJC16Zi1mbGV4LWp1c3RpZnk6IChcbiAgJ2xlZnQnOiBmbGV4LXN0YXJ0LFxuICAncmlnaHQnOiBmbGV4LWVuZCxcbiAgJ2NlbnRlcic6IGNlbnRlcixcbiAgJ2p1c3RpZnknOiBzcGFjZS1iZXR3ZWVuLFxuICAnc3BhY2VkJzogc3BhY2UtYXJvdW5kLFxuKTtcblxuJC16Zi1mbGV4LWFsaWduOiAoXG4gICd0b3AnOiBmbGV4LXN0YXJ0LFxuICAnYm90dG9tJzogZmxleC1lbmQsXG4gICdtaWRkbGUnOiBjZW50ZXIsXG4gICdzdHJldGNoJzogc3RyZXRjaCxcbik7XG5cbiQtemYtZmxleC1kaXJlY3Rpb246IChcbiAgJ3Jvdyc6IHJvdyxcbiAgJ3Jvdy1yZXZlcnNlJzogcm93LXJldmVyc2UsXG4gICdjb2x1bW4nOiBjb2x1bW4sXG4gICdjb2x1bW4tcmV2ZXJzZSc6IGNvbHVtbi1yZXZlcnNlLFxuKTtcblxuLy8vIEVuYWJsZXMgZmxleGJveCBieSBhZGRpbmcgYGRpc3BsYXk6IGZsZXhgIHRvIHRoZSBlbGVtZW50LlxuQG1peGluIGZsZXgge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG4vLy8gSG9yaXpvbnRhbGx5IG9yIHZlcnRpY2FsbHkgYWxpZ25zIHRoZSBpdGVtcyB3aXRoaW4gYSBmbGV4IGNvbnRhaW5lci5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHggW251bGxdIC0gSG9yaXpvbnRhbCBhbGlnbm1lbnQgdG8gdXNlLiBDYW4gYmUgYGxlZnRgLCBgcmlnaHRgLCBgY2VudGVyYCwgYGp1c3RpZnlgLCBvciBgc3BhY2VkYC4gT3IsIHNldCBpdCB0byBgbnVsbGAgKHRoZSBkZWZhdWx0KSB0byBub3Qgc2V0IGhvcml6b250YWwgYWxpZ25tZW50LlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHkgW251bGxdIC0gVmVydGljYWwgYWxpZ25tZW50IHRvIHVzZS4gQ2FuIGJlIGB0b3BgLCBgYm90dG9tYCwgYG1pZGRsZWAsIG9yIGBzdHJldGNoYC4gT3IsIHNldCBpdCB0byBgbnVsbGAgKHRoZSBkZWZhdWx0KSB0byBub3Qgc2V0IHZlcnRpY2FsIGFsaWdubWVudC5cbkBtaXhpbiBmbGV4LWFsaWduKCR4OiBudWxsLCAkeTogbnVsbCkge1xuICBAaWYgJHgge1xuICAgIEBpZiBtYXAtaGFzLWtleSgkLXpmLWZsZXgtanVzdGlmeSwgJHgpIHtcbiAgICAgICR4OiBtYXAtZ2V0KCQtemYtZmxleC1qdXN0aWZ5LCAkeCk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEB3YXJuICdmbGV4LWdyaWQtcm93LWFsaWduKCk6ICN7JHh9IGlzIG5vdCBhIHZhbGlkIHZhbHVlIGZvciBob3Jpem9udGFsIGFsaWdubWVudC4gVXNlIGxlZnQsIHJpZ2h0LCBjZW50ZXIsIGp1c3RpZnksIG9yIHNwYWNlZC4nO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkeSB7XG4gICAgQGlmIG1hcC1oYXMta2V5KCQtemYtZmxleC1hbGlnbiwgJHkpIHtcbiAgICAgICR5OiBtYXAtZ2V0KCQtemYtZmxleC1hbGlnbiwgJHkpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAd2FybiAnZmxleC1ncmlkLXJvdy1hbGlnbigpOiAjeyR5fSBpcyBub3QgYSB2YWxpZCB2YWx1ZSBmb3IgdmVydGljYWwgYWxpZ25tZW50LiBVc2UgdG9wLCBib3R0b20sIG1pZGRsZSwgb3Igc3RyZXRjaC4nO1xuICAgIH1cbiAgfVxuXG4gIGp1c3RpZnktY29udGVudDogJHg7XG4gIGFsaWduLWl0ZW1zOiAkeTtcbn1cblxuLy8vIFZlcnRpY2FsbHkgYWxpZ24gYSBzaW5nbGUgY29sdW1uIHdpdGhpbiBhIGZsZXggcm93LiBBcHBseSB0aGlzIG1peGluIHRvIGEgZmxleCBjb2x1bW4uXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR5IFtudWxsXSAtIFZlcnRpY2FsIGFsaWdubWVudCB0byB1c2UuIENhbiBiZSBgdG9wYCwgYGJvdHRvbWAsIGBtaWRkbGVgLCBvciBgc3RyZXRjaGAuIE9yLCBzZXQgaXQgdG8gYG51bGxgICh0aGUgZGVmYXVsdCkgdG8gbm90IHNldCB2ZXJ0aWNhbCBhbGlnbm1lbnQuXG5AbWl4aW4gZmxleC1hbGlnbi1zZWxmKCR5OiBudWxsKSB7XG4gIEBpZiAkeSB7XG4gICAgQGlmIG1hcC1oYXMta2V5KCQtemYtZmxleC1hbGlnbiwgJHkpIHtcbiAgICAgICR5OiBtYXAtZ2V0KCQtemYtZmxleC1hbGlnbiwgJHkpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAd2FybiAnZmxleC1ncmlkLWNvbHVtbi1hbGlnbigpOiAjeyR5fSBpcyBub3QgYSB2YWxpZCB2YWx1ZSBmb3IgYWxpZ25tZW50LiBVc2UgdG9wLCBib3R0b20sIG1pZGRsZSwgb3Igc3RyZXRjaC4nO1xuICAgIH1cbiAgfVxuXG4gIGFsaWduLXNlbGY6ICR5O1xufVxuXG4vLy8gQ2hhbmdlcyB0aGUgc291cmNlIG9yZGVyIG9mIGEgZmxleCBjaGlsZC4gQ2hpbGRyZW4gd2l0aCBsb3dlciBudW1iZXJzIGFwcGVhciBmaXJzdCBpbiB0aGUgbGF5b3V0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkb3JkZXIgWzBdIC0gT3JkZXIgbnVtYmVyIHRvIGFwcGx5LlxuQG1peGluIGZsZXgtb3JkZXIoJG9yZGVyOiAwKSB7XG4gIG9yZGVyOiAkb3JkZXI7XG59XG5cbi8vLyBDaGFuZ2UgZmxleC1kaXJlY3Rpb25cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkaXJlY3Rpb24gW3Jvd10gLSBGbGV4IGRpcmVjdGlvbiB0byB1c2UuIENhbiBiZVxuLy8vICAgLSByb3cgKGRlZmF1bHQpOiBzYW1lIGFzIHRleHQgZGlyZWN0aW9uXG4vLy8gICAtIHJvdy1yZXZlcnNlOiBvcHBvc2l0ZSB0byB0ZXh0IGRpcmVjdGlvblxuLy8vICAgLSBjb2x1bW46IHNhbWUgYXMgcm93IGJ1dCB0b3AgdG8gYm90dG9tXG4vLy8gICAtIGNvbHVtbi1yZXZlcnNlOiBzYW1lIGFzIHJvdy1yZXZlcnNlIHRvcCB0byBib3R0b21cbkBtaXhpbiBmbGV4LWRpcmVjdGlvbigkZGlyZWN0aW9uOiByb3cpIHtcbiAgZmxleC1kaXJlY3Rpb246ICRkaXJlY3Rpb247XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBicmVha3BvaW50c1xuLy8vL1xuXG4vLy8gQSBsaXN0IG9mIG5hbWVkIGJyZWFrcG9pbnRzLiBZb3UgY2FuIHVzZSB0aGVzZSB3aXRoIHRoZSBgYnJlYWtwb2ludCgpYCBtaXhpbiB0byBxdWlja2x5IGNyZWF0ZSBtZWRpYSBxdWVyaWVzLlxuLy8vIEB0eXBlIE1hcFxuJGJyZWFrcG9pbnRzOiAoXG4gIHNtYWxsOiAwLFxuICBtZWRpdW06IDY0MHB4LFxuICBsYXJnZTogMTAyNHB4LFxuICB4bGFyZ2U6IDEyMDBweCxcbiAgeHhsYXJnZTogMTQ0MHB4LFxuKSAhZGVmYXVsdDtcblxuLy8vIFRoZSBsYXJnZXN0IG5hbWVkIGJyZWFrcG9pbnQgaW4gd2hpY2ggdG8gaW5jbHVkZSBwcmludCBhcyBhIG1lZGlhIHR5cGVcbi8vLyBAdHlwZSBLZXl3b3JkXG4kcHJpbnQtYnJlYWtwb2ludDogbGFyZ2UgIWRlZmF1bHQ7XG5cbiQtemYtemVyby1icmVha3BvaW50OiBzbWFsbCAhZGVmYXVsdDtcblxuJC16Zi1icmVha3BvaW50cy1rZXlzOiBtYXAtdG8tbGlzdCgkYnJlYWtwb2ludHMsICdrZXlzJyk7XG5cbkBpZiBudGgobWFwLXZhbHVlcygkYnJlYWtwb2ludHMpLCAxKSAhPSAwIHtcbiAgQGVycm9yICdZb3VyIHNtYWxsZXN0IGJyZWFrcG9pbnQgKGRlZmluZWQgaW4gJGJyZWFrcG9pbnRzKSBtdXN0IGJlIHNldCB0byBcIjBcIi4nO1xufVxuQGVsc2Uge1xuICAkLXpmLXplcm8tYnJlYWtwb2ludDogbnRoKG1hcC1rZXlzKCRicmVha3BvaW50cyksIDEpO1xufVxuXG4vLy8gQWxsIG9mIHRoZSBuYW1lcyBpbiB0aGlzIGxpc3Qgd2lsbCBiZSBvdXRwdXQgYXMgY2xhc3NlcyBpbiB5b3VyIENTUywgbGlrZSBgLnNtYWxsLTEyYCwgYC5tZWRpdW0tNmAsIGFuZCBzbyBvbi4gRWFjaCB2YWx1ZSBpbiB0aGlzIGxpc3QgbXVzdCBhbHNvIGJlIGluIHRoZSBgJGJyZWFrcG9pbnRzYCBtYXAuXG4vLy8gQHR5cGUgTGlzdFxuJGJyZWFrcG9pbnQtY2xhc3NlczogKHNtYWxsIG1lZGl1bSBsYXJnZSkgIWRlZmF1bHQ7XG5cbi8vLyBHZW5lcmF0ZXMgYSBtZWRpYSBxdWVyeSBzdHJpbmcgbWF0Y2hpbmcgdGhlIGlucHV0IHZhbHVlLiBSZWZlciB0byB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIGBicmVha3BvaW50KClgIG1peGluIHRvIHNlZSB3aGF0IHRoZSBwb3NzaWJsZSBpbnB1dHMgYXJlLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJHZhbCBbc21hbGxdIC0gQnJlYWtwb2ludCBuYW1lLCBvciBweCwgcmVtLCBvciBlbSB2YWx1ZSB0byBwcm9jZXNzLlxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQoJHZhbDogJC16Zi16ZXJvLWJyZWFrcG9pbnQpIHtcbiAgLy8gU2l6ZSBvciBrZXl3b3JkXG4gICRicDogbnRoKCR2YWwsIDEpO1xuICAvLyBWYWx1ZSBmb3IgbWF4LXdpZHRoIG1lZGlhIHF1ZXJpZXNcbiAgJGJwLW1heDogMDtcbiAgLy8gRGlyZWN0aW9uIG9mIG1lZGlhIHF1ZXJ5ICh1cCwgZG93biwgb3Igb25seSlcbiAgJGRpcjogaWYobGVuZ3RoKCR2YWwpID4gMSwgbnRoKCR2YWwsIDIpLCB1cCk7XG4gIC8vIEV2ZW50dWFsIG91dHB1dFxuICAkc3RyOiAnJztcbiAgLy8gSXMgaXQgYSBuYW1lZCBtZWRpYSBxdWVyeT9cbiAgJG5hbWVkOiBmYWxzZTtcblxuICAvLyBPcmllbnRhdGlvbiBtZWRpYSBxdWVyaWVzIGhhdmUgYSB1bmlxdWUgc3ludGF4XG4gIEBpZiAkYnAgPT0gJ2xhbmRzY2FwZScgb3IgJGJwID09ICdwb3J0cmFpdCcge1xuICAgIEByZXR1cm4gJyhvcmllbnRhdGlvbjogI3skYnB9KSc7XG4gIH1cbiAgQGVsc2UgaWYgJGJwID09ICdyZXRpbmEnIHtcbiAgICBAcmV0dXJuICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSwgKG1pbi1yZXNvbHV0aW9uOiAxOTJkcGkpJztcbiAgfVxuXG4gIC8vIFRyeSB0byBwdWxsIGEgbmFtZWQgYnJlYWtwb2ludCBvdXQgb2YgdGhlICRicmVha3BvaW50cyBtYXBcbiAgQGlmIHR5cGUtb2YoJGJwKSA9PSAnc3RyaW5nJyB7XG4gICAgQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJGJwKSB7XG4gICAgICBAaWYgJGRpciA9PSAnb25seScgb3IgJGRpciA9PSAnZG93bicge1xuICAgICAgICAkYnAtbWF4OiAtemYtbWFwLW5leHQoJGJyZWFrcG9pbnRzLCAkYnApO1xuICAgICAgfVxuXG4gICAgICAkYnA6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkYnApO1xuICAgICAgJG5hbWVkOiB0cnVlO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkYnA6IDA7XG4gICAgICBAd2FybiAnYnJlYWtwb2ludCgpOiBcIiN7JHZhbH1cIiBpcyBub3QgZGVmaW5lZCBpbiB5b3VyICRicmVha3BvaW50cyBzZXR0aW5nLic7XG4gICAgfVxuICB9XG5cbiAgLy8gQ29udmVydCBhbnkgcGl4ZWwsIHJlbSwgb3IgdW5pdGxlc3MgdmFsdWUgdG8gZW1cbiAgJGJwOiAtemYtYnAtdG8tZW0oJGJwKTtcbiAgQGlmICRicC1tYXgge1xuICAgICRicC1tYXg6IC16Zi1icC10by1lbSgkYnAtbWF4KSAtICgxLzE2KTtcbiAgfVxuXG4gIC8vIENvbmRpdGlvbnMgdG8gc2tpcCBtZWRpYSBxdWVyeSBjcmVhdGlvblxuICAvLyAtIEl0J3MgYSBuYW1lZCBicmVha3BvaW50IHRoYXQgcmVzb2x2ZWQgdG8gXCIwIGRvd25cIiBvciBcIjAgdXBcIlxuICAvLyAtIEl0J3MgYSBudW1lcmljIGJyZWFrcG9pbnQgdGhhdCByZXNvbHZlZCB0byBcIjAgXCIgKyBhbnl0aGluZ1xuICBAaWYgJGJwID4gMGVtIG9yICRkaXIgPT0gJ29ubHknIG9yICRkaXIgPT0gJ2Rvd24nIHtcbiAgICAvLyBgb25seWAgcmFuZ2VzIHVzZSB0aGUgZm9ybWF0IGAobWluLXdpZHRoOiBuKSBhbmQgKG1heC13aWR0aDogbilgXG4gICAgQGlmICRkaXIgPT0gJ29ubHknIHtcbiAgICAgIC8vIE9ubHkgbmFtZWQgbWVkaWEgcXVlcmllcyBjYW4gaGF2ZSBhbiBcIm9ubHlcIiByYW5nZVxuICAgICAgQGlmICRuYW1lZCA9PSB0cnVlIHtcbiAgICAgICAgLy8gT25seSB1c2UgXCJtaW4td2lkdGhcIiBpZiB0aGUgZmxvb3IgaXMgZ3JlYXRlciB0aGFuIDBcbiAgICAgICAgQGlmICRicCA+IDBlbSB7XG4gICAgICAgICAgJHN0cjogJHN0ciArICcobWluLXdpZHRoOiAjeyRicH0pJztcblxuICAgICAgICAgIC8vIE9ubHkgYWRkIFwiYW5kXCIgdG8gdGhlIG1lZGlhIHF1ZXJ5IGlmIHRoZXJlJ3MgYSBjZWlsaW5nXG4gICAgICAgICAgQGlmICRicC1tYXggIT0gbnVsbCB7XG4gICAgICAgICAgICAkc3RyOiAkc3RyICsgJyBhbmQgJztcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBPbmx5IHVzZSBcIm1heC13aWR0aFwiIGlmIHRoZXJlJ3MgYSBjZWlsaW5nXG4gICAgICAgIEBpZiAkYnAtbWF4ICE9IG51bGwge1xuICAgICAgICAgICRzdHI6ICRzdHIgKyAnKG1heC13aWR0aDogI3skYnAtbWF4fSknO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIEB3YXJuICdicmVha3BvaW50KCk6IE9ubHkgbmFtZWQgbWVkaWEgcXVlcmllcyBjYW4gaGF2ZSBhbiBgb25seWAgcmFuZ2UuJztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBgZG93bmAgcmFuZ2VzIHVzZSB0aGUgZm9ybWF0IGAobWF4LXdpZHRoOiBuKWBcbiAgICBAZWxzZSBpZiAkZGlyID09ICdkb3duJyB7XG4gICAgICAkbWF4OiBpZigkbmFtZWQsICRicC1tYXgsICRicCk7XG5cbiAgICAgIC8vIFNraXAgbWVkaWEgcXVlcnkgY3JlYXRpb24gaWYgaW5wdXQgdmFsdWUgaXMgZXhhY3RseSBcIjAgZG93blwiLFxuICAgICAgLy8gdW5sZXNzIHRoZSBmdW5jdGlvbiB3YXMgY2FsbGVkIGFzIFwic21hbGwgZG93blwiLCBpbiB3aGljaCBjYXNlIGl0J3MganVzdCBcInNtYWxsIG9ubHlcIlxuICAgICAgQGlmICRuYW1lZCBvciAkYnAgPiAwZW0ge1xuICAgICAgICBAaWYgJG1heCAhPSBudWxsIHtcbiAgICAgICAgICAkc3RyOiAkc3RyICsgJyhtYXgtd2lkdGg6ICN7JG1heH0pJztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIGB1cGAgcmFuZ2VzIHVzZSB0aGUgZm9ybWF0IGAobWluLXdpZHRoOiBuKWBcbiAgICBAZWxzZSBpZiAkYnAgPiAwZW0ge1xuICAgICAgJHN0cjogJHN0ciArICcobWluLXdpZHRoOiAjeyRicH0pJztcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRzdHI7XG59XG5cbi8vLyBXcmFwcyBhIG1lZGlhIHF1ZXJ5IGFyb3VuZCB0aGUgY29udGVudCB5b3UgcHV0IGluc2lkZSB0aGUgbWl4aW4uIFRoaXMgbWl4aW4gYWNjZXB0cyBhIG51bWJlciBvZiB2YWx1ZXM6XG4vLy8gIC0gSWYgYSBzdHJpbmcgaXMgcGFzc2VkLCB0aGUgbWl4aW4gd2lsbCBsb29rIGZvciBpdCBpbiB0aGUgYCRicmVha3BvaW50c2AgbWFwLCBhbmQgdXNlIGEgbWVkaWEgcXVlcnkgdGhlcmUuXG4vLy8gIC0gSWYgYSBwaXhlbCB2YWx1ZSBpcyBwYXNzZWQsIGl0IHdpbGwgYmUgY29udmVydGVkIHRvIGFuIGVtIHZhbHVlIHVzaW5nIGAkZ2xvYmFsLWZvbnQtc2l6ZWAgYXMgdGhlIGJhc2UuXG4vLy8gIC0gSWYgYSByZW0gdmFsdWUgaXMgcGFzc2VkLCB0aGUgdW5pdCB3aWxsIGJlIGNoYW5nZWQgdG8gZW0uXG4vLy8gIC0gSWYgYW4gZW0gdmFsdWUgaXMgcGFzc2VkLCB0aGUgdmFsdWUgd2lsbCBiZSB1c2VkIGFzLWlzLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJHZhbHVlIC0gQnJlYWtwb2ludCBuYW1lLCBvciBweCwgcmVtLCBvciBlbSB2YWx1ZSB0byBwcm9jZXNzLlxuLy8vXG4vLy8gQG91dHB1dCBJZiB0aGUgYnJlYWtwb2ludCBpcyBcIjBweCBhbmQgbGFyZ2VyXCIsIG91dHB1dHMgdGhlIGNvbnRlbnQgYXMtaXMuIE90aGVyd2lzZSwgb3V0cHV0cyB0aGUgY29udGVudCB3cmFwcGVkIGluIGEgbWVkaWEgcXVlcnkuXG5AbWl4aW4gYnJlYWtwb2ludCgkdmFsdWUpIHtcbiAgJHN0cjogYnJlYWtwb2ludCgkdmFsdWUpO1xuICAkYnA6IGluZGV4KCQtemYtYnJlYWtwb2ludHMta2V5cywgJHZhbHVlKTtcbiAgJHBicDogaW5kZXgoJC16Zi1icmVha3BvaW50cy1rZXlzLCAkcHJpbnQtYnJlYWtwb2ludCk7XG5cbiAgJG9sZC16Zi1zaXplOiBudWxsO1xuXG4gIC8vIE1ha2UgYnJlYWtwb2ludCBzaXplIGF2YWlsYWJsZSBhcyBhIHZhcmlhYmxlXG4gIEBpZiBnbG9iYWwtdmFyaWFibGUtZXhpc3RzKC16Zi1zaXplKSB7XG4gICAgJG9sZC16Zi1zaXplOiAkLXpmLXNpemU7XG4gIH1cbiAgJC16Zi1zaXplOiBudGgoJHZhbHVlLCAxKSAhZ2xvYmFsOyAvLyBnZXQgdGhlIGZpcnN0IHZhbHVlIHRvIGFjY291bnQgZm9yIGBvbmx5YCBhbmQgYGRvd25gIGtleXdvcmRzXG5cbiAgLy8gSWYgJHN0ciBpcyBzdGlsbCBhbiBlbXB0eSBzdHJpbmcsIG5vIG1lZGlhIHF1ZXJ5IGlzIG5lZWRlZFxuICBAaWYgJHN0ciA9PSAnJyB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cblxuICAvLyBPdGhlcndpc2UsIHdyYXAgdGhlIGNvbnRlbnQgaW4gYSBtZWRpYSBxdWVyeVxuICBAZWxzZSB7XG4gICAgLy8gRm9yIG5hbWVkIGJyZWFrcG9pbnRzIGxlc3MgdGhhbiBvciBlcXVhbCB0byAkcHJpbnQtYnJlYWtwb2ludCwgYWRkIHByaW50IHRvIHRoZSBtZWRpYSB0eXBlc1xuICAgIEBpZiAkYnAgIT0gbnVsbCBhbmQgJGJwIDw9ICRwYnAge1xuICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kICN7JHN0cn0ge1xuICAgICAgICBAY29udGVudDtcbiAgICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kICN7JHN0cn0ge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaWYgJG9sZC16Zi1zaXplICE9IG51bGwge1xuICAgIC8vIFJlc3RvcmUgdGhlIG9sZCBicmVha3BvaW50IHNpemVcbiAgICAkLXpmLXNpemU6ICRvbGQtemYtc2l6ZSAhZ2xvYmFsO1xuICB9IEBlbHNlIHtcbiAgICAkLXpmLXNpemU6IG51bGwgIWdsb2JhbDtcbiAgfVxufVxuXG4vLy8gQ29udmVycyB0aGUgYnJlYWtwb2ludHMgbWFwIHRvIGEgVVJMLWVuY29kZWQgc3RyaW5nLCBsaWtlIHRoaXM6IGBrZXkxPXZhbHVlMSZrZXkyPXZhbHVlMmAuIFRoZSB2YWx1ZSBpcyB0aGVuIGRyb3BwZWQgaW50byB0aGUgQ1NTIGZvciBhIHNwZWNpYWwgYDxtZXRhPmAgdGFnLCB3aGljaCBpcyByZWFkIGJ5IHRoZSBGb3VuZGF0aW9uIEphdmFTY3JpcHQuIFRoaXMgaXMgaG93IHdlIHRyYW5zZmVyIHZhbHVlcyBmcm9tIFNhc3MgdG8gSmF2YVNjcmlwdCwgc28gdGhleSBjYW4gYmUgZGVmaW5lZCBpbiBvbmUgcGxhY2UuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge01hcH0gJG1hcCAtIE1hcCB0byBjb252ZXJ0LlxuLy8vXG4vLy8gQHJldHVybnMge1N0cmluZ30gQSBzdHJpbmcgY29udGFpbmluZyB0aGUgbWFwJ3MgY29udGVudHMuXG5AZnVuY3Rpb24gLXpmLWJwLXNlcmlhbGl6ZSgkbWFwKSB7XG4gICRzdHI6ICcnO1xuICBAZWFjaCAka2V5LCAkdmFsdWUgaW4gJG1hcCB7XG4gICAgJHN0cjogJHN0ciArICRrZXkgKyAnPScgKyAtemYtYnAtdG8tZW0oJHZhbHVlKSArICcmJztcbiAgfVxuICAkc3RyOiBzdHItc2xpY2UoJHN0ciwgMSwgLTIpO1xuXG4gIEByZXR1cm4gJHN0cjtcbn1cblxuLy8vIEZpbmQgdGhlIG5leHQga2V5IGluIGEgbWFwLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtNYXB9ICRtYXAgLSBNYXAgdG8gdHJhdmVyc2UuXG4vLy8gQHBhcmFtIHtNaXhlZH0gJGtleSAtIEtleSB0byB1c2UgYXMgYSBzdGFydGluZyBwb2ludC5cbi8vL1xuLy8vIEByZXR1cm5zIHtNaXhlZH0gVGhlIHZhbHVlIGZvciB0aGUga2V5IGFmdGVyIGAka2V5YCwgaWYgYCRrZXlgIHdhcyBmb3VuZC4gSWYgYCRrZXlgIHdhcyBub3QgZm91bmQsIG9yIGAka2V5YCB3YXMgdGhlIGxhc3QgdmFsdWUgaW4gdGhlIG1hcCwgcmV0dXJucyBgbnVsbGAuXG5AZnVuY3Rpb24gLXpmLW1hcC1uZXh0KCRtYXAsICRrZXkpIHtcblxuICAvLyBTdG9yZSB0aGUga2V5cyBvZiB0aGUgbWFwIGFzIGEgbGlzdFxuICAkdmFsdWVzOiBtYXAta2V5cygkbWFwKTtcblxuICAkaTogMDtcblxuICAvLyBJZiB0aGUgS2V5IEV4aXN0cywgR2V0IHRoZSBpbmRleCBvZiB0aGUga2V5IHdpdGhpbiB0aGUgbWFwIGFuZCBhZGQgMSB0byBpdCBmb3IgdGhlIG5leHQgYnJlYWtwb2ludCBpbiB0aGUgbWFwXG4gIEBpZiAobWFwLWhhcy1rZXkoJG1hcCwgJGtleSkpIHtcbiAgICAkaTogaW5kZXgoJHZhbHVlcywgJGtleSkgKyAxO1xuICB9XG5cbiAgLy8gSWYgdGhlIGtleSBkb2Vzbid0IGV4aXN0LCBvciBpdCdzIHRoZSBsYXN0IGtleSBpbiB0aGUgbWFwLCByZXR1cm4gbnVsbFxuICBAaWYgKCRpID4gbGVuZ3RoKCRtYXApIG9yICRpID09IDApIHtcbiAgICBAcmV0dXJuIG51bGw7XG4gIH1cbiAgLy8gT3RoZXJ3aXNlLCByZXR1cm4gdGhlIHZhbHVlXG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIG1hcC1nZXQoJG1hcCwgbnRoKCR2YWx1ZXMsICRpKSk7XG4gIH1cblxufVxuXG4vLy8gUmV0dXJuIGEgbGlzdCBvZiBvdXIgbmFtZWQgYnJlYWtwb2ludHMgbGVzcyB0aGFuICRrZXkuIFVzZWZ1bCBmb3IgZGVhbGluZyB3aXRoXG4vLy8gcmVzcG9uc2l2ZSBndXR0ZXJzIGZvciB0aGUgZ3JpZC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAka2V5IC0gS2V5IHRvIHVzZSBhcyBsYXN0IGJyZWFrcG9pbnQuXG4vLy9cbi8vLyBAcmV0dXJucyB7QXJyYXl9IFRoZSBsaXN0IG9mIGJyZWFrcG9pbnRzIHVwIHRvIGFuZC4gSWYgJGtleSBpcyBhdXRvLCByZXR1cm5zIGJyZWFrcG9pbnRzIGFib3ZlIHRoZSB6ZXJvXG5AZnVuY3Rpb24gLXpmLWJyZWFrcG9pbnRzLWxlc3MtdGhhbigka2V5KSB7XG4gICRsaXN0OiAoKTtcbiAgJGZvdW5kX2tleTogZmFsc2U7XG5cbiAgQGVhY2ggJG5hbWUgaW4gJC16Zi1icmVha3BvaW50cy1rZXlzIHtcbiAgICBAaWYgKCRuYW1lID09ICRrZXkpIHtcbiAgICAgICRmb3VuZF9rZXk6IHRydWU7XG4gICAgfVxuICAgIEBpZiBub3QgJGZvdW5kX2tleSB7XG4gICAgICAkbGlzdDogYXBwZW5kKCRsaXN0LCAkbmFtZSk7XG4gICAgfVxuICB9XG4gIEByZXR1cm4gJGxpc3Q7XG59XG5cbi8vLyBSZXR1cm4gYSBsaXN0IG9mIG91ciBuYW1lZCBicmVha3BvaW50cyBsZXNzIHRoYW4gJGtleS4gVXNlZnVsIGZvciBkZWFsaW5nIHdpdGhcbi8vLyByZXNwb25zaXZlIGd1dHRlcnMgZm9yIHRoZSBncmlkLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRicmVha3BvaW5nIC0gYSBuYW1lZCBvciBub24tbmFtZWQgYnJlYWtwb2luZy5cbi8vL1xuLy8vIEByZXR1cm5zIHtBcnJheX0gVGhlIGxpc3Qgb2YgYnJlYWtwb2ludHMgdXAgdG8gYW5kLiBJZiAka2V5IGlzIGF1dG8sIHJldHVybnMgYnJlYWtwb2ludHMgYWJvdmUgdGhlIHplcm9cbkBmdW5jdGlvbiAtemYtY2xvc2VzdC1uYW1lZC1icmVha3BvaW50KCRicmVha3BvaW50KSB7XG4gICRsYXN0OiAkLXpmLXplcm8tYnJlYWtwb2ludDtcbiAgJGZvdW5kOiBmYWxzZTtcblxuICAkdmFsdWU6IHVuaXRsZXNzLWNhbGMoJGJyZWFrcG9pbnQsIDFweCk7XG4gIEBlYWNoICRrZXksICR2YWwgaW4gJGJyZWFrcG9pbnRzIHtcbiAgICBAaWYgbm90ICRmb3VuZCB7XG4gICAgICBAaWYgdW5pdGxlc3MtY2FsYygkdmFsKSA+ICR2YWx1ZSB7XG4gICAgICAgICRmb3VuZDogdHJ1ZTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICAkbGFzdDogJGtleTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRsYXN0O1xufVxuXG4vLy8gR2V0IGEgdmFsdWUgZm9yIGEgYnJlYWtwb2ludCBmcm9tIGEgcmVzcG9uc2l2ZSBjb25maWcgbWFwIG9yIHNpbmdsZSB2YWx1ZS5cbi8vLyAtIElmIHRoZSBjb25maWcgaXMgYSBzaW5nbGUgdmFsdWUsIHJldHVybiBpdCByZWdhcmRsZXNzIG9mIGAkdmFsdWVgLlxuLy8vIC0gSWYgdGhlIGNvbmZpZyBpcyBhIG1hcCBhbmQgaGFzIHRoZSBrZXkgYCR2YWx1ZWAsIHRoZSBleGFjdCBicmVha3BvaW50IHZhbHVlIGlzIHJldHVybmVkLlxuLy8vIC0gSWYgdGhlIGNvbmZpZyBpcyBhIG1hcCBhbmQgZG9lcyAqbm90KiBoYXZlIHRoZSBicmVha3BvaW50LCB0aGUgdmFsdWUgbWF0Y2hpbmcgdGhlIG5leHQgbG93ZXN0IGJyZWFrcG9pbnQgaW4gdGhlIGNvbmZpZyBtYXAgaXMgcmV0dXJuZWQuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRtYXAgLSBSZXNwb25zaXZlIGNvbmZpZyBtYXAgb3Igc2luZ2xlIHZhbHVlLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHZhbHVlIC0gQnJlYWtwb2ludCBuYW1lIHRvIHVzZS5cbi8vL1xuLy8vIEByZXR1cm4ge01peGVkfSBUaGUgY29ycmVzcG9uZGluZyBicmVha3BvaW50IHZhbHVlLlxuQGZ1bmN0aW9uIC16Zi1nZXQtYnAtdmFsKCRtYXAsICR2YWx1ZSkge1xuICAvLyBJZiB0aGUgZ2l2ZW4gbWFwIGlzIGEgc2luZ2xlIHZhbHVlLCByZXR1cm4gaXRcbiAgQGlmIHR5cGUtb2YoJG1hcCkgPT0gJ251bWJlcicge1xuICAgIEByZXR1cm4gJG1hcDtcbiAgfVxuXG5cbiAgLy8gQ2hlY2sgaWYgdGhlIGJyZWFrcG9pbnQgbmFtZSBleGlzdHMgZ2xvYmFsbHlcbiAgQGlmIG5vdCBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICR2YWx1ZSkge1xuICAgIEBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gJ251bWJlcicge1xuICAgICAgJHZhbHVlOiAtemYtY2xvc2VzdC1uYW1lZC1icmVha3BvaW50KCR2YWx1ZSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICBAcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG4gIC8vIENoZWNrIGlmIHRoZSBicmVha3BvaW50IG5hbWUgZXhpc3RzIGluIHRoZSBsb2NhbCBjb25maWcgbWFwXG4gIEBlbHNlIGlmIG1hcC1oYXMta2V5KCRtYXAsICR2YWx1ZSkge1xuICAgIC8vIElmIGl0IGRvZXMsIGp1c3QgcmV0dXJuIHRoZSB2YWx1ZVxuICAgIEByZXR1cm4gbWFwLWdldCgkbWFwLCAkdmFsdWUpO1xuICB9XG4gIC8vIE90aGVyd2lzZSwgZmluZCB0aGUgbmV4dCBsb3dlc3QgYnJlYWtwb2ludCBhbmQgcmV0dXJuIHRoYXQgdmFsdWVcbiAgQGVsc2Uge1xuICAgICRhbmNob3I6IG51bGw7XG4gICAgJGZvdW5kOiBmYWxzZTtcblxuICAgIEBlYWNoICRrZXksICR2YWwgaW4gJGJyZWFrcG9pbnRzIHtcbiAgICAgIEBpZiBub3QgJGZvdW5kIHtcbiAgICAgICAgQGlmIG1hcC1oYXMta2V5KCRtYXAsICRrZXkpIHtcbiAgICAgICAgICAkYW5jaG9yOiAka2V5O1xuICAgICAgICB9XG4gICAgICAgIEBpZiAka2V5ID09ICR2YWx1ZSB7XG4gICAgICAgICAgJGZvdW5kOiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgQHJldHVybiBtYXAtZ2V0KCRtYXAsICRhbmNob3IpO1xuICB9XG59XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIHNtYWxsKSB7XG4gICRzbWFsbC11cDogc2NyZWVuO1xuICAkc21hbGwtb25seTogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQoc21hbGwgb25seSl9Jyk7XG59XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIG1lZGl1bSkge1xuICAkbWVkaXVtLXVwOiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChtZWRpdW0pfScpO1xuICAkbWVkaXVtLW9ubHk6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KG1lZGl1bSBvbmx5KX0nKTtcbn1cblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgbGFyZ2UpIHtcbiAgJGxhcmdlLXVwOiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChsYXJnZSl9Jyk7XG4gICRsYXJnZS1vbmx5OiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChsYXJnZSBvbmx5KX0nKTtcbn1cblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgeGxhcmdlKSB7XG4gICR4bGFyZ2UtdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KHhsYXJnZSl9Jyk7XG4gICR4bGFyZ2Utb25seTogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQoeGxhcmdlIG9ubHkpfScpO1xufVxuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCB4eGxhcmdlKSB7XG4gICR4eGxhcmdlLXVwOiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludCh4eGxhcmdlKX0nKTtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZ1bmN0aW9uc1xuLy8vL1xuXG4vLy8gQ3JlYXRlcyBhbiBpbm5lciBib3gtc2hhZG93IGZvciBvbmx5IG9uZSBzaWRlXG4vLy8gXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2lkZSAtIFNpZGUgdGhlIHNoYWRvdyBpcyBzdXBwb3NlZCB0byBhcHBlYXIuIENhbiBiZSBgdG9wYCwgYGxlZnRgLCBgcmlnaHRgIG9yIGBib3R0b21gLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc2l6ZSAtIFdpZHRoIGZvciB0aGUgdGFyZ2V0IHNpZGUuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIC0gQ29sb3Igb2YgdGhlIHNoYWRvdy5cbkBtaXhpbiBpbm5lci1zaWRlLXNoYWRvdyhcbiAgJHNpZGU6IGJvdHRvbSxcbiAgJHNpemU6IDIwcHgsXG4gICRjb2xvcjogcmdiYSgkYmxhY2ssIDAuMjUpXG4pIHtcblxuICAkaGVscGVyOiByb3VuZCgkc2l6ZSAqIDAuNjUpO1xuXG4gIEBpZiAoJHNpZGUgPT0gdG9wKSB7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAkaGVscGVyICRzaXplICgtMSkqJGhlbHBlciAkY29sb3I7XG4gIH0gQGVsc2UgaWYgKCRzaWRlID09IGxlZnQpIHtcbiAgICBib3gtc2hhZG93OiBpbnNldCAkaGVscGVyIDAgJHNpemUgKC0xKSokaGVscGVyICRjb2xvcjtcbiAgfSBAZWxzZSBpZiAoJHNpZGUgPT0gcmlnaHQpIHtcbiAgICBib3gtc2hhZG93OiBpbnNldCAoLTEpKiRoZWxwZXIgMCAkc2l6ZSAoLTEpKiRoZWxwZXIgJGNvbG9yO1xuICB9IEBlbHNlIGlmICgkc2lkZSA9PSBib3R0b20pIHtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwICgtMSkqJGhlbHBlciAkc2l6ZSAoLTEpKiRoZWxwZXIgJGNvbG9yO1xuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgQ1NTIHRyaWFuZ2xlLCB3aGljaCBjYW4gYmUgdXNlZCBmb3IgZHJvcGRvd24gYXJyb3dzLCBkcm9wZG93biBwaXBzLCBhbmQgbW9yZS4gVXNlIHRoaXMgbWl4aW4gaW5zaWRlIGEgYCY6OmJlZm9yZWAgb3IgYCY6OmFmdGVyYCBzZWxlY3RvciwgdG8gYXR0YWNoIHRoZSB0cmlhbmdsZSB0byBhbiBleGlzdGluZyBlbGVtZW50LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR0cmlhbmdsZS1zaXplIC0gV2lkdGggb2YgdGhlIHRyaWFuZ2xlLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICR0cmlhbmdsZS1jb2xvciAtIENvbG9yIG9mIHRoZSB0cmlhbmdsZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR0cmlhbmdsZS1kaXJlY3Rpb24gLSBEaXJlY3Rpb24gdGhlIHRyaWFuZ2xlIHBvaW50cy4gQ2FuIGJlIGB1cGAsIGByaWdodGAsIGBkb3duYCwgb3IgYGxlZnRgLlxuQG1peGluIGNzcy10cmlhbmdsZShcbiAgJHRyaWFuZ2xlLXNpemUsXG4gICR0cmlhbmdsZS1jb2xvcixcbiAgJHRyaWFuZ2xlLWRpcmVjdGlvblxuKSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuXG4gIGJvcmRlcjogaW5zZXQgJHRyaWFuZ2xlLXNpemU7XG5cbiAgY29udGVudDogJyc7XG5cbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IGRvd24pIHtcbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuICAgIGJvcmRlci10b3Atc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogJHRyaWFuZ2xlLWNvbG9yIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICB9XG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSB1cCkge1xuICAgIGJvcmRlci10b3Atd2lkdGg6IDA7XG4gICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAkdHJpYW5nbGUtY29sb3I7XG4gIH1cbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IHJpZ2h0KSB7XG4gICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuICAgIGJvcmRlci1sZWZ0LXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICR0cmlhbmdsZS1jb2xvcjtcbiAgfVxuICBAaWYgKCR0cmlhbmdsZS1kaXJlY3Rpb24gPT0gbGVmdCkge1xuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICAgIGJvcmRlci1yaWdodC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAkdHJpYW5nbGUtY29sb3IgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBtZW51IGljb24gd2l0aCBhIHNldCB3aWR0aCwgaGVpZ2h0LCBudW1iZXIgb2YgYmFycywgYW5kIGNvbG9ycy4gVGhlIG1peGluIHVzZXMgdGhlIGhlaWdodCBvZiB0aGUgaWNvbiBhbmQgdGhlIHdlaWdodCBvZiB0aGUgYmFycyB0byBkZXRlcm1pbmUgc3BhY2luZy4gPGRpdiBjbGFzcz1cImRvY3MtZXhhbXBsZS1idXJnZXJcIj48L2Rpdj5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJsYWNrXSAtIENvbG9yIHRvIHVzZSBmb3IgdGhlIGljb24uXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yLWhvdmVyIFskZGFyay1ncmF5XSAtIENvbG9yIHRvIHVzZSB3aGVuIHRoZSBpY29uIGlzIGhvdmVyZWQgb3Zlci5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHdpZHRoIFsyMHB4XSAtIFdpZHRoIG9mIHRoZSBpY29uLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkaGVpZ2h0IFsxNnB4XSAtIEhlaWdodCBvZiB0aGUgaWNvbi5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHdlaWdodCBbMnB4XSAtIEhlaWdodCBvZiBpbmRpdmlkdWFsIGJhcnMgaW4gdGhlIGljb24uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXJzIFszXSAtIE51bWJlciBvZiBiYXJzIGluIHRoZSBpY29uLlxuQG1peGluIGhhbWJ1cmdlcihcbiAgJGNvbG9yOiAkYmxhY2ssXG4gICRjb2xvci1ob3ZlcjogJGRhcmstZ3JheSxcbiAgJHdpZHRoOiAyMHB4LFxuICAkaGVpZ2h0OiAxNnB4LFxuICAkd2VpZ2h0OiAycHgsXG4gICRiYXJzOiAzXG4pIHtcbiAgLy8gYm94LXNoYWRvdyBDU1Mgb3V0cHV0XG4gICRzaGFkb3c6ICgpO1xuICAkaG92ZXItc2hhZG93OiAoKTtcblxuICAvLyBTcGFjaW5nIGJldHdlZW4gYmFycyBpcyBjYWxjdWxhdGVkIGJhc2VkIG9uIHRoZSB0b3RhbCBoZWlnaHQgb2YgdGhlIGljb24gYW5kIHRoZSB3ZWlnaHQgb2YgZWFjaCBiYXJcbiAgJHNwYWNpbmc6ICgkaGVpZ2h0IC0gKCR3ZWlnaHQgKiAkYmFycykpIC8gKCRiYXJzIC0gMSk7XG5cbiAgQGlmIHVuaXQoJHNwYWNpbmcpID09ICdweCcge1xuICAgICRzcGFjaW5nOiBmbG9vcigkc3BhY2luZyk7XG4gIH1cblxuICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRiYXJzIHtcbiAgICAkb2Zmc2V0OiAoJHdlaWdodCArICRzcGFjaW5nKSAqICgkaSAtIDEpO1xuICAgICRzaGFkb3c6IGFwcGVuZCgkc2hhZG93LCAwICRvZmZzZXQgMCAkY29sb3IsIGNvbW1hKTtcbiAgfVxuXG4gIC8vIEljb24gY29udGFpbmVyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB3aWR0aDogJHdpZHRoO1xuICBoZWlnaHQ6ICRoZWlnaHQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcblxuICAvLyBJY29uIGJhcnNcbiAgJjo6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcblxuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogJHdlaWdodDtcblxuICAgIGJhY2tncm91bmQ6ICRjb2xvcjtcbiAgICBib3gtc2hhZG93OiAkc2hhZG93O1xuXG4gICAgY29udGVudDogJyc7XG4gIH1cblxuICAvLyBIb3ZlciBzdGF0ZVxuICBAaWYgJGNvbG9yLWhvdmVyIHtcbiAgICAvLyBHZW5lcmF0ZSBDU1NcbiAgICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRiYXJzIHtcbiAgICAgICRvZmZzZXQ6ICgkd2VpZ2h0ICsgJHNwYWNpbmcpICogKCRpIC0gMSk7XG4gICAgICAkaG92ZXItc2hhZG93OiBhcHBlbmQoJGhvdmVyLXNoYWRvdywgMCAkb2Zmc2V0IDAgJGNvbG9yLWhvdmVyLCBjb21tYSk7XG4gICAgfVxuXG4gICAgJjpob3Zlcjo6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZDogJGNvbG9yLWhvdmVyO1xuICAgICAgYm94LXNoYWRvdzogJGhvdmVyLXNoYWRvdztcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgYSBkb3dud2FyZC1mYWNpbmcgdHJpYW5nbGUgYXMgYSBiYWNrZ3JvdW5kIGltYWdlIHRvIGFuIGVsZW1lbnQuIFRoZSBpbWFnZSBpcyBmb3JtYXR0ZWQgYXMgYW4gU1ZHLCBtYWtpbmcgaXQgZWFzeSB0byBjaGFuZ2UgdGhlIGNvbG9yLiBCZWNhdXNlIEludGVybmV0IEV4cGxvcmVyIGRvZXNuJ3Qgc3VwcG9ydCBlbmNvZGVkIFNWR3MgYXMgYmFja2dyb3VuZCBpbWFnZXMsIGEgUE5HIGZhbGxiYWNrIGlzIGFsc28gaW5jbHVkZWQuXG4vLy8gVGhlcmUgYXJlIHR3byBQTkcgZmFsbGJhY2tzOiBhIGJsYWNrIHRyaWFuZ2xlIGFuZCBhIHdoaXRlIHRyaWFuZ2xlLiBUaGUgb25lIHVzZWQgZGVwZW5kcyBvbiB0aGUgbGlnaHRuZXNzIG9mIHRoZSBpbnB1dCBjb2xvci5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJsYWNrXSAtIENvbG9yIHRvIHVzZSBmb3IgdGhlIHRyaWFuZ2xlLlxuQG1peGluIGJhY2tncm91bmQtdHJpYW5nbGUoJGNvbG9yOiAkYmxhY2spIHtcbiAgJHJnYjogJ3JnYiUyOCN7cm91bmQocmVkKCRjb2xvcikpfSwgI3tyb3VuZChncmVlbigkY29sb3IpKX0sICN7cm91bmQoYmx1ZSgkY29sb3IpKX0lMjknO1xuXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnIHdpZHRoPSczMicgaGVpZ2h0PScyNCcgdmlld0JveD0nMCAwIDMyIDI0Jz48cG9seWdvbiBwb2ludHM9JzAsMCAzMiwwIDE2LDI0JyBzdHlsZT0nZmlsbDogI3skcmdifSc+PC9wb2x5Z29uPjwvc3ZnPlwiKTtcblxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjBcXDApIHtcbiAgICBAaWYgbGlnaHRuZXNzKCRjb2xvcikgPCA2MCUge1xuICAgICAgLy8gV2hpdGUgdHJpYW5nbGVcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFDQUFBQUFZQ0FZQUFBQ2JVLzgwQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUFJcEpSRUZVZU5yRWtja05nREFNQkJmUmtFdDBPYlJCQmRzR1hVRGdtUWZLNFhoSDJtOGN6UUFBeTI3UjN0c3c0UWZlMng4dU9PNm9ZTGI2R2xPb3IzR0Yrc3dVUkFPbVVKK1J3dEVKczlXdlRHRVl4QlhxSTFNUUFaaENmVVFLUnpETVZqK1R3ckFJVjZqdlNVRWtZQXIxTFNrY3lUQmIvVitLWWZYN3hBZXVzcTNzTER0R0gza0VHQUNQV0lmbE5aZmhSUUFBQUFCSlJVNUVya0pnZ2c9PScpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAvLyBCbGFjayB0cmlhbmdsZVxuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUNBQUFBQVlDQVlBQUFDYlUvODBBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQU1CSlJFRlVlTnJFbGxzT2hDQU1SVnN6QzlJbHpVN0tDbVZIVEpzb01XWU1VdHB5djlCZ2J1WFFCNVpTZGdCWVlZNHljZ0Jpdms4S1lGc1FNZk1pVFRCUDRvM25VekNLek9hYkxKYkx5Mi9nMzFldkdrQWdpblI0L1plZ0tINXFYM2JKQ3NjQTN0MHgza2dPNXRRRnloaEZmNTB4UnFGTGJ5TVVOSlF6Z3lqR1Mvd2dDcHZLcWtSQnB1V3JFNFY5ZCsxRTRkUFVYcUlnMTA3U1FPRS8yRFJReE13VER5Z0lJblZERVQ5VDNsQ29qLzZqL1ZDbUdqWk9sMmxLcFo4QUF3RFFQN3pJaW1ER0ZRQUFBQUJKUlU1RXJrSmdnZz09Jyk7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBcHBsaWVzIHRoZSBtaWNybyBjbGVhcmZpeCBoYWNrIHBvcHVsYXJpemVkIGJ5IE5pY29sYXMgR2FsbGFnaGVyLiBJbmNsdWRlIHRoaXMgbWl4aW4gb24gYSBjb250YWluZXIgaWYgaXRzIGNoaWxkcmVuIGFyZSBhbGwgZmxvYXRlZCwgdG8gZ2l2ZSB0aGUgY29udGFpbmVyIGEgcHJvcGVyIGhlaWdodC5cbi8vLyBUaGUgY2xlYXJmaXggaXMgYXVnbWVudGVkIHdpdGggc3BlY2lmaWMgc3R5bGVzIHRvIHByZXZlbnQgYm9yZGVycyBpbiBmbGV4Ym94IGVudmlyb25tZW50c1xuLy8vIEBsaW5rIGh0dHA6Ly9uaWNvbGFzZ2FsbGFnaGVyLmNvbS9taWNyby1jbGVhcmZpeC1oYWNrLyBNaWNybyBDbGVhcmZpeCBIYWNrXG4vLy8gQGxpbmsgaHR0cDovL2RhbmlzYWRlc2lnbmVyLmNvbS9ibG9nL2ZsZXhib3gtY2xlYXItZml4LXBzZXVkby1lbGVtZW50cy8gRmxleGJveCBmaXhcbkBtaXhpbiBjbGVhcmZpeCB7XG4gICY6OmJlZm9yZSxcbiAgJjo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGNvbnRlbnQ6ICcgJztcblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgIG9yZGVyOiAxO1xuICAgIH1cbiAgfVxuXG4gICY6OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDtcbiAgfVxufVxuXG4vLy8gQWRkcyBDU1MgZm9yIGEgXCJxdWFudGl0eSBxdWVyeVwiIHNlbGVjdG9yIHRoYXQgYXV0b21hdGljYWxseSBzaXplcyBlbGVtZW50cyBiYXNlZCBvbiBob3cgbWFueSB0aGVyZSBhcmUgaW5zaWRlIGEgY29udGFpbmVyLlxuLy8vIEBsaW5rIGh0dHA6Ly9hbGlzdGFwYXJ0LmNvbS9hcnRpY2xlL3F1YW50aXR5LXF1ZXJpZXMtZm9yLWNzcyBRdWFudGl0eSBRdWVyaWVzIGZvciBDU1Ncbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbWF4IC0gTWF4aW11bSBudW1iZXIgb2YgaXRlbXMgdG8gZGV0ZWN0LiBUaGUgaGlnaGVyIHRoaXMgbnVtYmVyIGlzLCB0aGUgbW9yZSBDU1MgdGhhdCdzIHJlcXVpcmVkIHRvIGNvdmVyIGVhY2ggbnVtYmVyIG9mIGl0ZW1zLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGVsZW0gW2xpXSAtIFRhZyB0byB1c2UgZm9yIHNpYmxpbmcgc2VsZWN0b3JzLlxuQG1peGluIGF1dG8td2lkdGgoJG1heCwgJGVsZW06IGxpKSB7XG4gIEBmb3IgJGkgZnJvbSAyIHRocm91Z2ggJG1heCB7XG4gICAgJjpudGgtbGFzdC1jaGlsZCgjeyRpfSk6Zmlyc3QtY2hpbGQsXG4gICAgJjpudGgtbGFzdC1jaGlsZCgjeyRpfSk6Zmlyc3QtY2hpbGQgfiAjeyRlbGVtfSB7XG4gICAgICB3aWR0aDogcGVyY2VudGFnZSgxIC8gJGkpO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gUmVtb3ZlcyB0aGUgZm9jdXMgcmluZyBhcm91bmQgYW4gZWxlbWVudCB3aGVuIGEgbW91c2UgaW5wdXQgaXMgZGV0ZWN0ZWQuXG5AbWl4aW4gZGlzYWJsZS1tb3VzZS1vdXRsaW5lIHtcbiAgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddICYge1xuICAgIG91dGxpbmU6IDA7XG4gIH1cbn1cblxuLy8vIE1ha2VzIGFuIGVsZW1lbnQgdmlzdWFsbHkgaGlkZGVuLCBidXQgc3RpbGwgYWNjZXNzaWJsZSB0byBrZXlib2FyZHMgYW5kIGFzc2lzdGl2ZSBkZXZpY2VzLlxuLy8vIEBsaW5rIGh0dHA6Ly9zbm9vay5jYS9hcmNoaXZlcy9odG1sX2FuZF9jc3MvaGlkaW5nLWNvbnRlbnQtZm9yLWFjY2Vzc2liaWxpdHkgSGlkaW5nIENvbnRlbnQgZm9yIEFjY2Vzc2liaWxpdHlcbi8vLyBAbGluayBodHRwOi8vaHVnb2dpcmF1ZGVsLmNvbS8yMDE2LzEwLzEzL2Nzcy1oaWRlLWFuZC1zZWVrL1xuQG1peGluIGVsZW1lbnQtaW52aXNpYmxlIHtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxcHg7XG4gIGhlaWdodDogMXB4O1xuICBwYWRkaW5nOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjbGlwOiByZWN0KDAsMCwwLDApO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBjbGlwLXBhdGg6IGluc2V0KDUwJSk7XG4gIGJvcmRlcjogMDtcbn1cblxuLy8vIFJldmVyc2VzIHRoZSBDU1Mgb3V0cHV0IGNyZWF0ZWQgYnkgdGhlIGBlbGVtZW50LWludmlzaWJsZSgpYCBtaXhpbi5cbkBtaXhpbiBlbGVtZW50LWludmlzaWJsZS1vZmYge1xuICBwb3NpdGlvbjogc3RhdGljICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiBhdXRvO1xuICBoZWlnaHQ6IGF1dG87XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICBjbGlwOiBhdXRvO1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICBjbGlwLXBhdGg6IG5vbmU7XG59XG5cbi8vLyBWZXJ0aWNhbGx5IGNlbnRlcnMgdGhlIGVsZW1lbnQgaW5zaWRlIG9mIGl0cyBmaXJzdCBub24tc3RhdGljIHBhcmVudCxcbi8vLyBAbGluayBodHRwOi8vd3d3LnNpdGVwb2ludC5jb20vY2VudGVyaW5nLXdpdGgtc2Fzcy8gQ2VudGVyaW5nIFdpdGggU2Fzc1xuQG1peGluIHZlcnRpY2FsLWNlbnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbn1cblxuLy8vIEhvcml6b250YWxseSBjZW50ZXJzIHRoZSBlbGVtZW50IGluc2lkZSBvZiBpdHMgZmlyc3Qgbm9uLXN0YXRpYyBwYXJlbnQsXG4vLy8gQGxpbmsgaHR0cDovL3d3dy5zaXRlcG9pbnQuY29tL2NlbnRlcmluZy13aXRoLXNhc3MvIENlbnRlcmluZyBXaXRoIFNhc3NcbkBtaXhpbiBob3Jpem9udGFsLWNlbnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG59XG5cbi8vLyBBYnNvbHV0ZWx5IGNlbnRlcnMgdGhlIGVsZW1lbnQgaW5zaWRlIG9mIGl0cyBmaXJzdCBub24tc3RhdGljIHBhcmVudCxcbi8vLyBAbGluayBodHRwOi8vd3d3LnNpdGVwb2ludC5jb20vY2VudGVyaW5nLXdpdGgtc2Fzcy8gQ2VudGVyaW5nIFdpdGggU2Fzc1xuQG1peGluIGFic29sdXRlLWNlbnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG59XG5cbi8vLyBJdGVyYXRlcyB0aHJvdWdoIGJyZWFrcG9pbnRzIGRlZmluZWQgaW4gYCRicmVha3BvaW50LWNsYXNzZXNgIGFuZCBwcmludHMgdGhlIENTUyBpbnNpZGUgdGhlIG1peGluIGF0IGVhY2ggYnJlYWtwb2ludCdzIG1lZGlhIHF1ZXJ5LiBVc2UgdGhpcyB3aXRoIHRoZSBncmlkLCBvciBhbnkgb3RoZXIgY29tcG9uZW50IHRoYXQgaGFzIHJlc3BvbnNpdmUgY2xhc3Nlcy5cbi8vL1xuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHNtYWxsIFt0cnVlXSAtIElmIGBmYWxzZWAsIHRoZSBtaXhpbiB3aWxsIHNraXAgdGhlIGBzbWFsbGAgYnJlYWtwb2ludC4gVXNlIHRoaXMgd2l0aCBjb21wb25lbnRzIHRoYXQgZG9uJ3QgcHJlZml4IGNsYXNzZXMgd2l0aCBgc21hbGwtYCwgb25seSBgbWVkaXVtLWAgYW5kIHVwLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGF1dG8taW5zZXJ0LWJyZWFrcG9pbnRzIFt0cnVlXSAtIElmIGBmYWxzZWAsIHRoZSBtaXhpbiB3aWxsIGl0ZXJhdGUgb3ZlciBicmVha3BvaW50cyB3aXRob3V0IGRvaW5nIHRoZSBtZWRpYSBxdWVyeSBpdHNlbGYuIFVzZWZ1bCBmb3IgbW9yZSBjb21wbGV4IG1lZGlhIHF1ZXJ5IGdlbmVyYXRpb24gYXMgaW4gdGhlIG1hcmdpbiBncmlkLlxuQG1peGluIC16Zi1lYWNoLWJyZWFrcG9pbnQoJHNtYWxsOiB0cnVlLCAkYXV0by1pbnNlcnQtYnJlYWtwb2ludHM6IHRydWUpIHtcbiAgJGxpc3Q6ICRicmVha3BvaW50LWNsYXNzZXM7XG5cbiAgQGlmIG5vdCAkc21hbGwge1xuICAgICRsaXN0OiBzbC1yZW1vdmUoJGxpc3QsICQtemYtemVyby1icmVha3BvaW50KTtcbiAgfVxuXG4gIEBlYWNoICRuYW1lIGluICRsaXN0IHtcbiAgICAkLXpmLXNpemU6ICRuYW1lICFnbG9iYWw7XG5cbiAgICBAaWYgJGF1dG8taW5zZXJ0LWJyZWFrcG9pbnRzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gR2VuZXJhdGUgdGhlIGBAY29udGVudGAgcGFzc2VkIHRvIHRoZSBtaXhpbiB3aXRoIGEgdmFsdWUgYCQtemYtYnAtdmFsdWVgIHJlbGF0ZWQgdG8gYSBicmVha3BvaW50LCBkZXBlbmRpbmcgb24gdGhlIGAkbmFtZWAgcGFyYW1ldGVyOlxuLy8vIC0gRm9yIGEgc2luZ2xlIHZhbHVlLCBgJC16Zi1icC12YWx1ZWAgaXMgdGhpcyB2YWx1ZS5cbi8vLyAtIEZvciBhIGJyZWFrcG9pbnQgbmFtZSwgYCQtemYtYnAtdmFsdWVgIGlzIHRoZSBjb3JyZXNwb25kaW5nIGJyZWFrcG9pbnQgdmFsdWUgaW4gYCRtYXBgLlxuLy8vIC0gRm9yIFwiYXV0b1wiLCBgJC16Zi1icC12YWx1ZWAgaXMgdGhlIGNvcnJlc3BvbmRpbmcgYnJlYWtwb2ludCB2YWx1ZSBpbiBgJG1hcGAgYW5kIGlzIHBhc3NlZCB0byBgQGNvbnRlbnRgLCB3aGljaCBpcyBtYWRlIHJlc3BvbnNpdmUgZm9yIGVhY2ggYnJlYWtwb2ludCBvZiBgJG1hcGAuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8QXJyYXl8S2V5d29yZH0gJG5hbWUgW2F1dG9dIC0gU2luZ2xlIHZhbHVlLCBicmVha3BvaW50IG5hbWUsIG9yIGxpc3Qgb2YgYnJlYWtwb2ludCBuYW1lcyB0byB1c2UuIFwiYXV0b1wiIGJ5IGRlZmF1bHQuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkbWFwIC0gTWFwIG9mIGJyZWFrcG9pbnRzIGFuZCB2YWx1ZXMgb3Igc2luZ2xlIHZhbHVlIHRvIHVzZS5cbkBtaXhpbiAtemYtYnJlYWtwb2ludC12YWx1ZShcbiAgJG5hbWU6IGF1dG8sXG4gICRtYXA6IG51bGxcbikge1xuICBAaWYgJG5hbWUgPT0gYXV0byBhbmQgdHlwZS1vZigkbWFwKSA9PSAnbWFwJyB7XG4gICAgLy8gXCJhdXRvXCJcbiAgICBAZWFjaCAkaywgJHYgaW4gJG1hcCB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRrKSB7XG4gICAgICAgIEBpbmNsdWRlIC16Zi1icmVha3BvaW50LXZhbHVlKCR2LCAkbWFwKSB7XG4gICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIC8vIGJyZWFrcG9pbnQgbmFtZVxuICAgIEBpZiB0eXBlLW9mKCRuYW1lKSA9PSAnc3RyaW5nJyB7XG4gICAgICAkbmFtZTogLXpmLWdldC1icC12YWwoJG1hcCwgJG5hbWUpO1xuICAgIH1cblxuICAgIC8vIGJyZWFrcG9pbnQgdmFsdWVcbiAgICAkLXpmLWJwLXZhbHVlOiAkbmFtZSAhZ2xvYmFsO1xuICAgIEBjb250ZW50O1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmdW5jdGlvbnNcbi8vLy9cblxuJC16Zi1mb250LXN0YWNrOiAoXG4gICdnZW9yZ2lhJzogKEdlb3JnaWEsIFwiVVJXIEJvb2ttYW4gTFwiLCBzZXJpZiksXG4gICdoZWx2ZXRpY2EnOiAoSGVsdmV0aWNhLCBBcmlhbCwgXCJOaW1idXMgU2FucyBMXCIsIHNhbnMtc2VyaWYpLFxuICAnbHVjaWRhLWdyYW5kZSc6IChcIkx1Y2lkYSBHcmFuZGVcIiwgXCJMdWNpZGEgU2FucyBVbmljb2RlXCIsIFwiQml0c3RyZWFtIFZlcmEgU2Fuc1wiLCBzYW5zLXNlcmlmKSxcbiAgJ21vbm9zcGFjZSc6IChcIkNvdXJpZXIgTmV3XCIsIENvdXJpZXIsIFwiTmltYnVzIFNhbnMgTFwiLCBtb25vc3BhY2UpLFxuICAnc3lzdGVtJzogKC1hcHBsZS1zeXN0ZW0sIHN5c3RlbS11aSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBcIlNlZ29lIFVJXCIsIFwiUm9ib3RvXCIsIFwiT3h5Z2VuXCIsIFwiVWJ1bnR1XCIsIFwiQ2FudGFyZWxsXCIsIFwiRmlyYSBTYW5zXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZiksXG4gICd2ZXJkYW5hJzogKFZlcmRhbmEsIEdlbmV2YSwgXCJEZWphVnUgU2Fuc1wiLCBzYW5zLXNlcmlmKSxcbik7XG5cbi8vLyBSZXR1cm4gYSBmb250IHN0YWNrIGxpc3QgZnJvbSBhIG1hcC4gRXF1aXZhbGVudCB0byBgbWFwLXNhZmUtZ2V0KCRuYW1lLCAkLXpmLWZvbnQtc3RhY2spYC5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc3RhY2sgLSBOYW1lIG9mIHRoZSBmb250IHN0YWNrLlxuLy8vIEBwYXJhbSB7TWFwfSAkbWFwIFskLXpmLWZvbnQtc3RhY2tdIC0gTWFwIG9mIGZvbnQgc3RhY2tzIHRvIHJldHJpZXZlIGEgbGlzdCBmcm9tLlxuLy8vXG4vLy8gQHJldHVybnMge0xpc3R9IEZvdW5kIGZvbnQgc3RhY2suXG5AZnVuY3Rpb24gZm9udC1zdGFjaygkc3RhY2ssICRtYXA6ICQtemYtZm9udC1zdGFjaykge1xuICBAcmV0dXJuIG1hcC1zYWZlLWdldCgkbWFwLCAkc3RhY2spO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vIHNhc3MtbGludDpkaXNhYmxlIGZvcmNlLWF0dHJpYnV0ZS1uZXN0aW5nLCBmb3JjZS1wc2V1ZG8tbmVzdGluZywgbm8tY29sb3ItbGl0ZXJhbHMsIG5vLXF1YWxpZnlpbmctZWxlbWVudHNcblxuLy8vL1xuLy8vIEBncm91cCBnbG9iYWxcbi8vLy9cblxuLy8vIEZvbnQgc2l6ZSBhdHRyaWJ1dGUgYXBwbGllZCB0byBgPGh0bWw+YCBhbmQgYDxib2R5PmAuIFdlIHVzZSAxMDAlIGJ5IGRlZmF1bHQgc28gdGhlIHZhbHVlIGlzIGluaGVyaXRlZCBmcm9tIHRoZSB1c2VyJ3MgYnJvd3NlciBzZXR0aW5ncy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtZm9udC1zaXplOiAxMDAlICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHdpZHRoIG9mIHlvdXIgc2l0ZS4gVXNlZCBieSB0aGUgZ3JpZCB0byBkZXRlcm1pbmUgcm93IHdpZHRoLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC13aWR0aDogcmVtLWNhbGMoMTIwMCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGxpbmUgaGVpZ2h0IGZvciBhbGwgdHlwZS4gYCRnbG9iYWwtbGluZWhlaWdodGAgaXMgMjRweCB3aGlsZSBgJGdsb2JhbC1mb250LXNpemVgIGlzIDE2cHhcbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtbGluZWhlaWdodDogMS41ICFkZWZhdWx0O1xuXG4vLy8gQ29sb3JzIHVzZWQgZm9yIGJ1dHRvbnMsIGNhbGxvdXRzLCBsaW5rcywgZXRjLiBUaGVyZSBtdXN0IGFsd2F5cyBiZSBhIGNvbG9yIGNhbGxlZCBgcHJpbWFyeWAuXG4vLy8gQHR5cGUgTWFwXG4kZm91bmRhdGlvbi1wYWxldHRlOiAoXG4gIHByaW1hcnk6ICMxNzc5YmEsXG4gIHNlY29uZGFyeTogIzc2NzY3NixcbiAgc3VjY2VzczogIzNhZGI3NixcbiAgd2FybmluZzogI2ZmYWUwMCxcbiAgYWxlcnQ6ICNjYzRiMzcsXG4pICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdXNlZCBmb3IgbGlnaHQgZ3JheSBVSSBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJGxpZ2h0LWdyYXk6ICNlNmU2ZTYgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciBtZWRpdW0gZ3JheSBVSSBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJG1lZGl1bS1ncmF5OiAjY2FjYWNhICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdXNlZCBmb3IgZGFyayBncmF5IFVJIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kZGFyay1ncmF5OiAjOGE4YThhICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdXNlZCBmb3IgYmxhY2sgdWkgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRibGFjazogIzBhMGEwYSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHVzZWQgZm9yIHdoaXRlIHVpIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kd2hpdGU6ICNmZWZlZmUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBib2R5LlxuLy8vIEB0eXBlIENvbG9yXG4kYm9keS1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIHRoZSBib2R5LlxuLy8vIEB0eXBlIENvbG9yXG4kYm9keS1mb250LWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHN0YWNrIG9mIHRoZSBib2R5LlxuLy8vIEB0eXBlIExpc3RcbiRib2R5LWZvbnQtZmFtaWx5OiAnSGVsdmV0aWNhIE5ldWUnLCBIZWx2ZXRpY2EsIFJvYm90bywgQXJpYWwsIHNhbnMtc2VyaWYgIWRlZmF1bHQ7XG5cbi8vLyBTZXQgdG8gYHRydWVgIHRvIGVuYWJsZSBhbnRpYWxpYXNlZCB0eXBlLCB1c2luZyB0aGUgYC13ZWJraXQtZm9udC1zbW9vdGhpbmdgIGFuZCBgLW1vei1vc3gtZm9udC1zbW9vdGhpbmdgIENTUyBwcm9wZXJ0aWVzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRib2R5LWFudGlhbGlhc2VkOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIG1hcmdpbiBvbiBjb21wb25lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1tYXJnaW46IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgdmFsdWUgdXNlZCBmb3IgcGFkZGluZyBvbiBjb21wb25lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIHBvc2l0aW9uaW5nIG9uIGNvbXBvbmVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLXBvc2l0aW9uOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIGZvbnQgd2VpZ2h0IHVzZWQgZm9yIG5vcm1hbCB0eXBlLlxuLy8vIEB0eXBlIEtleXdvcmQgfCBOdW1iZXJcbiRnbG9iYWwtd2VpZ2h0LW5vcm1hbDogbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIGZvbnQgd2VpZ2h0IHVzZWQgZm9yIGJvbGQgdHlwZS5cbi8vLyBAdHlwZSBLZXl3b3JkIHwgTnVtYmVyXG4kZ2xvYmFsLXdlaWdodC1ib2xkOiBib2xkICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIGFsbCBlbGVtZW50cyB0aGF0IGhhdmUgYSBib3JkZXIgcmFkaXVzLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1yYWRpdXM6IDAgIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgdmFsdWUgdXNlZCBmb3IgYWxsIG1lbnUgc3R5bGVzLiBDYW4gYmUgb3ZlcndyaXR0ZW4gYXQgaW5kaXZpZHVhbCBtZW51IGNvbXBvbmVudCBsZXZlbC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtbWVudS1wYWRkaW5nOiAwLjdyZW0gMXJlbSAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCB2YWx1ZSB1c2VkIGZvciBhbGwgbWVudSBzdHlsZXMuIE5lc3RlZCBtYXJnaW4gZm9yIHN1Ym1lbnUuXG4kZ2xvYmFsLW1lbnUtbmVzdGVkLW1hcmdpbjogMXJlbSAhZGVmYXVsdDtcblxuLy8vIFNldHMgdGhlIHRleHQgZGlyZWN0aW9uIG9mIHRoZSBDU1MuIENhbiBiZSBlaXRoZXIgYGx0cmAgb3IgYHJ0bGAuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGdsb2JhbC10ZXh0LWRpcmVjdGlvbjogbHRyICFkZWZhdWx0O1xuXG4vLy8gRW5hYmxlcyBmbGV4Ym94IGZvciBjb21wb25lbnRzIHRoYXQgc3VwcG9ydCBpdC5cbi8vLyBAdHlwZSBCb29sZWFuXG4kZ2xvYmFsLWZsZXhib3g6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBFbmFibGVkIHJlc3BvbnNpdmUgYnJlYWtwb2ludHMgZm9yIHByb3RvdHlwZXMgaWYgYXBwbGljYWJsZVxuLy8vIEB0eXBlIEJvb2xlYW5cbiRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8vIEJ1dHRvbiBjdXJzb3IncyB2YWx1ZSwgYGF1dG9gIGJ5IGRlZmF1bHRcbi8vLyBAdHlwZSBLZXl3b3JkXG4kZ2xvYmFsLWJ1dHRvbi1jdXJzb3I6IGF1dG8gIWRlZmF1bHQ7XG5cbkBpZiBub3QgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgcHJpbWFyeSkge1xuICBAZXJyb3IgJ0luICRmb3VuZGF0aW9uLXBhbGV0dGUsIHlvdSBtdXN0IGhhdmUgYSBjb2xvciBuYW1lZCBcInByaW1hcnlcIi4nO1xufVxuXG4vLyBJbnRlcm5hbCB2YXJpYWJsZXMgdXNlZCBmb3IgdGV4dCBkaXJlY3Rpb25cbiRnbG9iYWwtbGVmdDogaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBydGwsIHJpZ2h0LCBsZWZ0KTtcbiRnbG9iYWwtcmlnaHQ6IGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gcnRsLCBsZWZ0LCByaWdodCk7XG5cbi8vLyBHbG9iYWwgdG9sZXJhbmNlIGZvciBjb2xvciBwaWNrIGNvbnRyYXN0LlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1jb2xvci1waWNrLWNvbnRyYXN0LXRvbGVyYW5jZTogMCAhZGVmYXVsdDtcblxuLy8gSW50ZXJuYWwgdmFyaWFibGVzIHVzZWQgZm9yIGNvbG9yc1xuJHByaW1hcnktY29sb3I6IGdldC1jb2xvcihwcmltYXJ5KTtcbiRzZWNvbmRhcnktY29sb3I6IGdldC1jb2xvcihzZWNvbmRhcnkpO1xuJHN1Y2Nlc3MtY29sb3I6IGdldC1jb2xvcihzdWNjZXNzKTtcbiR3YXJuaW5nLWNvbG9yOiBnZXQtY29sb3Iod2FybmluZyk7XG4kYWxlcnQtY29sb3I6IGdldC1jb2xvcihhbGVydCk7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWdsb2JhbC1zdHlsZXMge1xuICBAaW5jbHVkZSAtemYtbm9ybWFsaXplO1xuXG4gIC8vIFRoZXNlIHN0eWxlcyBhcmUgYXBwbGllZCB0byBhIDxtZXRhPiB0YWcsIHdoaWNoIGlzIHJlYWQgYnkgdGhlIEZvdW5kYXRpb24gSmF2YVNjcmlwdFxuICAuZm91bmRhdGlvbi1tcSB7XG4gICAgZm9udC1mYW1pbHk6ICcjey16Zi1icC1zZXJpYWxpemUoJGJyZWFrcG9pbnRzKX0nO1xuICB9XG5cbiAgaHRtbCB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBmb250LXNpemU6ICRnbG9iYWwtZm9udC1zaXplO1xuICB9XG5cbiAgLy8gU2V0IGJveC1zaXppbmcgZ2xvYmFsbHkgdG8gaGFuZGxlIHBhZGRpbmcgYW5kIGJvcmRlciB3aWR0aHNcbiAgKixcbiAgKjo6YmVmb3JlLFxuICAqOjphZnRlciB7XG4gICAgYm94LXNpemluZzogaW5oZXJpdDtcbiAgfVxuXG4gIC8vIERlZmF1bHQgYm9keSBzdHlsZXNcbiAgYm9keSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG5cbiAgICBiYWNrZ3JvdW5kOiAkYm9keS1iYWNrZ3JvdW5kO1xuXG4gICAgZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5O1xuICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWw7XG4gICAgbGluZS1oZWlnaHQ6ICRnbG9iYWwtbGluZWhlaWdodDtcbiAgICBjb2xvcjogJGJvZHktZm9udC1jb2xvcjtcblxuICAgIEBpZiAoJGJvZHktYW50aWFsaWFzZWQpIHtcbiAgICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgICB9XG4gIH1cblxuICBpbWcge1xuICAgIC8vIEdldCByaWQgb2YgZ2FwIHVuZGVyIGltYWdlcyBieSBtYWtpbmcgdGhlbSBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IGJ5IGRlZmF1bHRcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgIC8vIEdyaWQgZGVmYXVsdHMgdG8gZ2V0IGltYWdlcyBhbmQgZW1iZWRzIHRvIHdvcmsgcHJvcGVybHlcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIC1tcy1pbnRlcnBvbGF0aW9uLW1vZGU6IGJpY3ViaWM7XG4gIH1cblxuICAvLyBNYWtlIHN1cmUgdGV4dGFyZWEgdGFrZXMgb24gaGVpZ2h0IGF1dG9tYXRpY2FsbHlcbiAgdGV4dGFyZWEge1xuICAgIGhlaWdodDogYXV0bztcbiAgICBtaW4taGVpZ2h0OiA1MHB4O1xuICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICB9XG5cbiAgLy8gTWFrZSBzZWxlY3QgZWxlbWVudHMgYXJlIDEwMCUgd2lkdGggYnkgZGVmYXVsdFxuICBzZWxlY3Qge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gIH1cblxuICAvLyBTdHlsZXMgR29vZ2xlIE1hcHMgYW5kIE1hcFF1ZXN0IGVtYmVkcyBwcm9wZXJseVxuICAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLWlkc1xuICAubWFwX2NhbnZhcyxcbiAgLm1xYS1kaXNwbGF5IHtcbiAgICBpbWcsXG4gICAgZW1iZWQsXG4gICAgb2JqZWN0IHtcbiAgICAgIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gIC8vIFJlc2V0IDxidXR0b24+IHN0eWxlcyBjcmVhdGVkIGJ5IG1vc3QgYnJvd3NlcnNcbiAgYnV0dG9uIHtcbiAgICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gICAgcGFkZGluZzogMDtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBjdXJzb3I6ICRnbG9iYWwtYnV0dG9uLWN1cnNvcjtcbiAgfVxuXG4gIC8vIFByZXZlbnQgdGV4dCBvdmVyZmxvdyBvbiBwcmVcbiAgcHJlIHtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgfVxuXG4gIC8vIE1ha2UgcmVzZXQgaW5oZXJpdCBmb250LWZhbWlseSBpbnN0ZWFkIG9mIHNldHRpbmdzIHNhbnMtc2VyaWZcbiAgYnV0dG9uLFxuICBpbnB1dCxcbiAgb3B0Z3JvdXAsXG4gIHNlbGVjdCxcbiAgdGV4dGFyZWEge1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICB9XG5cbiAgLy8gSW50ZXJuYWwgY2xhc3NlcyB0byBzaG93L2hpZGUgZWxlbWVudHMgaW4gSmF2YVNjcmlwdFxuICAuaXMtdmlzaWJsZSB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5pcy1oaWRkZW4ge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG4vLy8gTG9hZHMgbm9ybWFsaXplLmNzcy5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbkBtaXhpbiAtemYtbm9ybWFsaXplIHtcbiAgQGluY2x1ZGUgbm9ybWFsaXplKCk7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBncmlkXG4vLy8vXG5cbi8vLyBUaGUgbWF4aW11bSB3aWR0aCBvZiBhIHJvdy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRncmlkLXJvdy13aWR0aDogJGdsb2JhbC13aWR0aCAhZGVmYXVsdDtcblxuLy8vIFRoZSBkZWZhdWx0IGNvbHVtbiBjb3VudCBvZiBhIGdyaWQuIENoYW5naW5nIHRoaXMgdmFsdWUgYWZmZWN0cyB0aGUgbG9naWMgb2YgdGhlIGdyaWQgbWl4aW5zLCBhbmQgdGhlIG51bWJlciBvZiBDU1MgY2xhc3NlcyBvdXRwdXQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ3JpZC1jb2x1bW4tY291bnQ6IDEyICFkZWZhdWx0O1xuXG4vLy8gVGhlIGFtb3VudCBvZiBzcGFjZSBiZXR3ZWVuIGNvbHVtbnMgYXQgZGlmZmVyZW50IHNjcmVlbiBzaXplcy4gVG8gdXNlIGp1c3Qgb25lIHNpemUsIHNldCB0aGUgdmFyaWFibGUgdG8gYSBudW1iZXIgaW5zdGVhZCBvZiBhIG1hcC5cbi8vLyBAdHlwZSBNYXAgfCBMZW5ndGhcbi8vLyBAc2luY2UgNi4xLjBcbiRncmlkLWNvbHVtbi1ndXR0ZXI6IChcbiAgc21hbGw6IDIwcHgsXG4gIG1lZGl1bTogMzBweCxcbikgIWRlZmF1bHQ7XG5cbi8vLyBJZiBgdHJ1ZWAsIHRoZSBsYXN0IGNvbHVtbiBpbiBhIHJvdyB3aWxsIGFsaWduIHRvIHRoZSBvcHBvc2l0ZSBlZGdlIG9mIHRoZSByb3cuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGdyaWQtY29sdW1uLWFsaWduLWVkZ2U6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBTZWxlY3RvciB1c2VkIGZvciBhbiBhbGlhcyBvZiBjb2x1bW4gKHdpdGggQGV4dGVuZCkuIElmIGBmYWxzZWAsIG5vIGFsaWFzIGlzIGNyZWF0ZWQuXG4vLy8gQHR5cGUgU3RyaW5nXG4kZ3JpZC1jb2x1bW4tYWxpYXM6ICdjb2x1bW5zJyAhZGVmYXVsdDtcblxuLy8vIFRoZSBoaWdoZXN0IG51bWJlciBvZiBgLngtdXBgIGNsYXNzZXMgYXZhaWxhYmxlIHdoZW4gdXNpbmcgdGhlIGJsb2NrIGdyaWQgQ1NTLlxuLy8vIEB0eXBlIE51bWJlclxuJGJsb2NrLWdyaWQtbWF4OiA4ICFkZWZhdWx0O1xuXG4vLyBJbnRlcm5hbCB2YWx1ZSB0byBzdG9yZSB0aGUgZW5kIGNvbHVtbiBmbG9hdCBkaXJlY3Rpb25cbiQtemYtZW5kLWZsb2F0OiBpZigkZ3JpZC1jb2x1bW4tYWxpZ24tZWRnZSwgJGdsb2JhbC1yaWdodCwgJGdsb2JhbC1sZWZ0KTtcblxuQGltcG9ydCAncm93JztcbkBpbXBvcnQgJ2NvbHVtbic7XG5AaW1wb3J0ICdzaXplJztcbkBpbXBvcnQgJ3Bvc2l0aW9uJztcbkBpbXBvcnQgJ2d1dHRlcic7XG5AaW1wb3J0ICdjbGFzc2VzJztcbkBpbXBvcnQgJ2xheW91dCc7XG5cbkBpbXBvcnQgJ2ZsZXgtZ3JpZCc7XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBncmlkXG4vLy8vXG5cbi8vLyBDaGFuZ2UgdGhlIGJlaGF2aW9yIG9mIGNvbHVtbnMgZGVmaW5lZCBpbnNpZGUgdGhpcyBtaXhpbiB0byB1c2UgYSBkaWZmZXJlbnQgY29sdW1uIGNvdW50LlxuLy8vIEBjb250ZW50XG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJGNvbHVtbnMgLSBOdW1iZXIgb2YgY29sdW1ucyB0byB1c2UuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkcm9vdCBbZmFsc2VdXG4vLy8gICBJZiBgZmFsc2VgLCBzZWxlY3RvcnMgaW5zaWRlIHRoaXMgbWl4aW4gd2lsbCBuZXN0IGluc2lkZSB0aGUgcGFyZW50IHNlbGVjdG9yLlxuLy8vICAgSWYgYHRydWVgLCBzZWxlY3RvcnMgd2lsbCBub3QgbmVzdC5cbkBtaXhpbiBncmlkLWNvbnRleHQoXG4gICRjb2x1bW5zLFxuICAkcm9vdDogZmFsc2Vcbikge1xuICAvLyBTdG9yZSB0aGUgY3VycmVudCBjb2x1bW4gY291bnQgc28gaXQgY2FuIGJlIHJlLXNldCBsYXRlclxuICAkb2xkLWdyaWQtY29sdW1uLWNvdW50OiAkZ3JpZC1jb2x1bW4tY291bnQ7XG4gICRncmlkLWNvbHVtbi1jb3VudDogJGNvbHVtbnMgIWdsb2JhbDtcblxuICBAaWYgJHJvb3Qge1xuICAgIEBhdC1yb290IHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cblxuICAvLyBSZXN0b3JlIHRoZSBvbGQgY29sdW1uIGNvdW50XG4gICRncmlkLWNvbHVtbi1jb3VudDogJG9sZC1ncmlkLWNvbHVtbi1jb3VudCAhZ2xvYmFsO1xufVxuXG4vLy8gQ3JlYXRlcyBhIGdyaWQgcm93LlxuLy8vIEBjb250ZW50XG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJGNvbHVtbnMgW251bGxdIC0gQ29sdW1uIGNvdW50IGZvciB0aGlzIHJvdy4gYG51bGxgIHdpbGwgdXNlIHRoZSBkZWZhdWx0IGNvbHVtbiBjb3VudC5cbi8vLyBAcGFyYW0ge0tleXdvcmRzfSAkYmVoYXZpb3IgW251bGxdXG4vLy8gICBNb2RpZmljYXRpb25zIHRvIHRoZSBkZWZhdWx0IGdyaWQgc3R5bGVzLiBgbmVzdGAgaW5kaWNhdGVzIHRoZSByb3cgd2lsbCBiZSBwbGFjZWQgaW5zaWRlIGFub3RoZXIgcm93LiBgY29sbGFwc2VgIGluZGljYXRlcyB0aGF0IHRoZSBjb2x1bW5zIGluc2lkZSB0aGlzIHJvdyB3aWxsIG5vdCBoYXZlIHBhZGRpbmcuIGBuZXN0IGNvbGxhcHNlYCBjb21iaW5lcyBib3RoIGJlaGF2aW9ycy5cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkc2l6ZSBbJGdyaWQtcm93LXdpZHRoXSBNYXhpbXVtIHNpemUgb2YgdGhlIHJvdy4gU2V0IHRvIGBleHBhbmRgIHRvIG1ha2UgdGhlIHJvdyB0YWtpbmcgdGhlIGZ1bGwgd2lkdGguXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkY2YgW3RydWVdIC0gV2hldGhlciBvciBub3QgdG8gaW5jbHVkZSBhIGNsZWFyZml4LlxuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gR3V0dGVyIG1hcCBvciBzaW5nbGUgdmFsdWUgdG8gdXNlIHdoZW4gaW52ZXJ0aW5nIG1hcmdpbnMuIFJlc3BvbnNpdmUgZ3V0dGVyIHNldHRpbmdzIGJ5IGRlZmF1bHQuXG5AbWl4aW4gZ3JpZC1yb3coXG4gICRjb2x1bW5zOiBudWxsLFxuICAkYmVoYXZpb3I6IG51bGwsXG4gICRzaXplOiAkZ3JpZC1yb3ctd2lkdGgsXG4gICRjZjogdHJ1ZSxcbiAgJGd1dHRlcnM6ICRncmlkLWNvbHVtbi1ndXR0ZXJcbikge1xuICAkbWFyZ2luOiBhdXRvO1xuXG4gIEBpZiBpbmRleCgkYmVoYXZpb3IsIG5lc3QpICE9IG51bGwge1xuICAgIEBpbmNsdWRlIGdyaWQtcm93LW5lc3QoJGd1dHRlcnMpO1xuXG4gICAgQGlmIGluZGV4KCRiZWhhdmlvciwgY29sbGFwc2UpICE9IG51bGwge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBAaW5jbHVkZSBncmlkLXJvdy1zaXplKCRzaXplKTtcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIH1cblxuICBAaWYgJGNmIHtcbiAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgfVxuXG4gIEBpZiAkY29sdW1ucyAhPSBudWxsIHtcbiAgICBAaW5jbHVkZSBncmlkLWNvbnRleHQoJGNvbHVtbnMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gSW52ZXJ0cyB0aGUgbWFyZ2lucyBvZiBhIHJvdyB0byBuZXN0IGl0IGluc2lkZSBvZiBhIGNvbHVtbi5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gR3V0dGVyIG1hcCBvciBzaW5nbGUgdmFsdWUgdG8gdXNlIHdoZW4gaW52ZXJ0aW5nIG1hcmdpbnMuIFJlc3BvbnNpdmUgZ3V0dGVyIHNldHRpbmdzIGJ5IGRlZmF1bHQuXG5AbWl4aW4gZ3JpZC1yb3ctbmVzdCgkZ3V0dGVyczogJGdyaWQtY29sdW1uLWd1dHRlcikge1xuICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50IHtcbiAgICAkbWFyZ2luOiByZW0tY2FsYygtemYtZ2V0LWJwLXZhbCgkZ3V0dGVycywgJC16Zi1zaXplKSkgLyAyICogLTE7XG5cbiAgICBtYXJnaW4tcmlnaHQ6ICRtYXJnaW47XG4gICAgbWFyZ2luLWxlZnQ6ICRtYXJnaW47XG4gIH1cbn1cblxuLy8vIFNldCBhIGdyaWQgcm93IHNpemVcbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICRzaXplIFskZ3JpZC1yb3ctd2lkdGhdIE1heGltdW0gc2l6ZSBvZiB0aGUgcm93LiBTZXQgdG8gYGV4cGFuZGAgdG8gbWFrZSB0aGUgcm93IHRha2luZyB0aGUgZnVsbCB3aWR0aC5cbkBtaXhpbiBncmlkLXJvdy1zaXplKCRzaXplOiAkZ3JpZC1yb3ctd2lkdGgpIHtcbiAgQGlmICRzaXplID09IGV4cGFuZCB7XG4gICAgJHNpemU6IG5vbmU7XG4gIH1cblxuICBtYXgtd2lkdGg6ICRzaXplO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZ3JpZFxuLy8vL1xuXG4vLy8gQ2FsY3VsYXRlcyB0aGUgd2lkdGggb2YgYSBjb2x1bW4gYmFzZWQgb24gYSBudW1iZXIgb2YgZmFjdG9ycy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfExpc3R9ICRjb2x1bW5zXG4vLy8gICBXaWR0aCBvZiB0aGUgY29sdW1uLiBBY2NlcHRzIG11bHRpcGxlIHZhbHVlczpcbi8vLyAgIC0gQSBwZXJjZW50YWdlIHZhbHVlIHdpbGwgbWFrZSB0aGUgY29sdW1uIHRoYXQgZXhhY3Qgc2l6ZS5cbi8vLyAgIC0gQSBzaW5nbGUgZGlnaXQgd2lsbCBtYWtlIHRoZSBjb2x1bW4gc3BhbiB0aGF0IG51bWJlciBvZiBjb2x1bW5zIHdpZGUsIHRha2luZyBpbnRvIGFjY291bnQgdGhlIGNvbHVtbiBjb3VudCBvZiB0aGUgcGFyZW50IHJvdy5cbi8vLyAgIC0gQSBsaXN0IG9mIHRoZSBmb3JtYXQgXCJ4IG9mIHlcIiAod2l0aG91dCBxdW90ZXMpIHdpbGwgbWFrZSBhIGNvbHVtbiB0aGF0IGlzICp4KiBjb2x1bW5zIHdpZGUsIGFzc3VtaW5nICp5KiB0b3RhbCBjb2x1bW5zIGZvciB0aGUgcGFyZW50LlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gQSBjYWxjdWxhdGVkIHBlcmNlbnRhZ2UgdmFsdWUuXG5AZnVuY3Rpb24gZ3JpZC1jb2x1bW4oJGNvbHVtbnMpIHtcbiAgJHdpZHRoOiAwJTtcblxuICAvLyBQYXJzaW5nIHBlcmNlbnRzLCBkZWNpbWFscywgYW5kIGNvbHVtbiBjb3VudHNcbiAgQGlmIHR5cGUtb2YoJGNvbHVtbnMpID09ICdudW1iZXInIHtcbiAgICBAaWYgdW5pdCgkY29sdW1ucykgPT0gJyUnIHtcbiAgICAgICR3aWR0aDogJGNvbHVtbnM7XG4gICAgfVxuICAgIEBlbHNlIGlmICRjb2x1bW5zIDwgMSB7XG4gICAgICAkd2lkdGg6IHBlcmNlbnRhZ2UoJGNvbHVtbnMpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkd2lkdGg6IHBlcmNlbnRhZ2UoJGNvbHVtbnMgLyAkZ3JpZC1jb2x1bW4tY291bnQpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFBhcnNpbmcgXCJuIG9mIG5cIiBleHByZXNzaW9uc1xuICBAZWxzZSBpZiB0eXBlLW9mKCRjb2x1bW5zKSA9PSAnbGlzdCcge1xuICAgIEBpZiBsZW5ndGgoJGNvbHVtbnMpICE9IDMge1xuICAgICAgQGVycm9yICdXcm9uZyBzeW50YXggZm9yIGdyaWQtY29sdW1uKCkuIFVzZSB0aGUgZm9ybWF0IFwibiBvZiBuXCIuJztcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJHdpZHRoOiBwZXJjZW50YWdlKG50aCgkY29sdW1ucywgMSkgLyBudGgoJGNvbHVtbnMsIDMpKTtcbiAgICB9XG4gIH1cblxuICAvLyBBbnl0aGluZyBlbHNlIGlzIGluY29ycmVjdFxuICBAZWxzZSB7XG4gICAgQGVycm9yICdXcm9uZyBzeW50YXggZm9yIGdyaWQtY29sdW1uKCkuIFVzZSBhIG51bWJlciwgZGVjaW1hbCwgcGVyY2VudGFnZSwgb3IgXCJuIG9mIG5cIi4nO1xuICB9XG5cbiAgQHJldHVybiAkd2lkdGg7XG59XG5cbi8vLyBDcmVhdGVzIGEgZ3JpZCBjb2x1bW4uXG4vLy9cbi8vLyBAcGFyYW0ge01peGVkfSAkY29sdW1ucyBbJGdyaWQtY29sdW1uLWNvdW50XSAtIFdpZHRoIG9mIHRoZSBjb2x1bW4uIFJlZmVyIHRvIHRoZSBgZ3JpZC1jb2x1bW4oKWAgZnVuY3Rpb24gdG8gc2VlIHBvc3NpYmxlIHZhbHVlcy5cbi8vLyBAcGFyYW0ge01peGVkfSAkZ3V0dGVycyBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBTcGFjaW5nIGJldHdlZW4gY29sdW1ucy4gUmVmZXIgdG8gdGhlIGBncmlkLWNvbHVtbi1ndXR0ZXIoKWAgZnVuY3Rpb24gdG8gc2VlIHBvc3NpYmxlIHZhbHVlcy5cbkBtaXhpbiBncmlkLWNvbHVtbihcbiAgJGNvbHVtbnM6ICRncmlkLWNvbHVtbi1jb3VudCxcbiAgJGd1dHRlcnM6ICRncmlkLWNvbHVtbi1ndXR0ZXJcbikge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1zaXplKCRjb2x1bW5zKTtcbiAgZmxvYXQ6ICRnbG9iYWwtbGVmdDtcblxuICAvLyBHdXR0ZXJzXG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLWd1dHRlcigkZ3V0dGVyczogJGd1dHRlcnMpO1xuXG4gIC8vIExhc3QgY29sdW1uIGFsaWdubWVudFxuICBAaWYgJGdyaWQtY29sdW1uLWFsaWduLWVkZ2Uge1xuICAgICY6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICBmbG9hdDogJGdsb2JhbC1yaWdodDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBncmlkIGNvbHVtbiByb3cuIFRoaXMgaXMgdGhlIGVxdWl2YWxlbnQgb2YgYWRkaW5nIGAucm93YCBhbmQgYC5jb2x1bW5gIHRvIHRoZSBzYW1lIGVsZW1lbnQuXG4vLy9cbi8vLyBAcGFyYW0ge01peGVkfSAkZ3V0dGVycyBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBXaWR0aCBvZiB0aGUgZ3V0dGVycyBvbiBlaXRoZXIgc2lkZSBvZiB0aGUgY29sdW1uIHJvdy4gUmVmZXIgdG8gdGhlIGBncmlkLWNvbHVtbi1ndXR0ZXIoKWAgZnVuY3Rpb24gdG8gc2VlIHBvc3NpYmxlIHZhbHVlcy5cbkBtaXhpbiBncmlkLWNvbHVtbi1yb3coXG4gICRndXR0ZXJzOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgQGluY2x1ZGUgZ3JpZC1yb3c7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uKCRndXR0ZXJzOiAkZ3V0dGVycyk7XG5cbiAgJixcbiAgJjpsYXN0LWNoaWxkIHtcbiAgICBmbG9hdDogbm9uZTtcbiAgfVxufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4oKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uXG5AZnVuY3Rpb24gZ3JpZC1jb2woXG4gICRjb2x1bW5zOiAkZ3JpZC1jb2x1bW4tY291bnRcbikge1xuICBAcmV0dXJuIGdyaWQtY29sdW1uKCRjb2x1bW5zKTtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtblxuQG1peGluIGdyaWQtY29sKFxuICAkY29sdW1uczogJGdyaWQtY29sdW1uLWNvdW50LFxuICAkZ3V0dGVyczogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uKCRjb2x1bW5zLCAkZ3V0dGVycyk7XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi1yb3coKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLXJvd1xuQG1peGluIGdyaWQtY29sLXJvdyhcbiAgJGd1dHRlcnM6ICRncmlkLWNvbHVtbi1ndXR0ZXJcbikge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1yb3coJGd1dHRlcnMpO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZ3JpZFxuLy8vL1xuXG4vLy8gU2V0IHRoZSB3aWR0aCBvZiBhIGdyaWQgY29sdW1uLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TGlzdH0gJHdpZHRoIFskZ3JpZC1jb2x1bW4tY291bnRdIC0gV2lkdGggdG8gbWFrZSB0aGUgY29sdW1uLiBZb3UgY2FuIHBhc3MgaW4gYW55IHZhbHVlIGFjY2VwdGVkIGJ5IHRoZSBgZ3JpZC1jb2x1bW4oKWAgZnVuY3Rpb24sIHN1Y2ggYXMgYDZgLCBgNTAlYCwgb3IgYDEgb2YgMmAuXG5AbWl4aW4gZ3JpZC1jb2x1bW4tc2l6ZShcbiAgJGNvbHVtbnM6ICRncmlkLWNvbHVtbi1jb3VudFxuKSB7XG4gIHdpZHRoOiBncmlkLWNvbHVtbigkY29sdW1ucyk7XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi1zaXplKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi1zaXplXG5AbWl4aW4gZ3JpZC1jb2wtc2l6ZShcbiAgJGNvbHVtbnM6ICRncmlkLWNvbHVtbi1jb3VudFxuKSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLXNpemUoJGNvbHVtbnMpO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZ3JpZFxuLy8vL1xuXG4vLy8gUmVwb3NpdGlvbiBhIGNvbHVtbi5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfEtleXdvcmR9ICRwb3NpdGlvbiAtIERpcmVjdGlvbiBhbmQgYW1vdW50IHRvIG1vdmUuIFRoZSBjb2x1bW4gd2lsbCBtb3ZlIGVxdWFsIHRvIHRoZSB3aWR0aCBvZiB0aGUgY29sdW1uIGNvdW50IHNwZWNpZmllZC4gQSBwb3NpdGl2ZSBudW1iZXIgd2lsbCBwdXNoIHRoZSBjb2x1bW4gdG8gdGhlIHJpZ2h0LCB3aGlsZSBhIG5lZ2F0aXZlIG51bWJlciB3aWxsIHB1bGwgaXQgdG8gdGhlIGxlZnQuIFNldCB0byBjZW50ZXIgdG8gY2VudGVyIHRoZSBjb2x1bW4uXG5AbWl4aW4gZ3JpZC1jb2x1bW4tcG9zaXRpb24oJHBvc2l0aW9uKSB7XG4gIEBpZiB0eXBlLW9mKCRwb3NpdGlvbikgPT0gJ251bWJlcicge1xuICAgICRvZmZzZXQ6IHBlcmNlbnRhZ2UoJHBvc2l0aW9uIC8gJGdyaWQtY29sdW1uLWNvdW50KTtcblxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAjeyRnbG9iYWwtbGVmdH06ICRvZmZzZXQ7XG4gIH1cbiAgQGVsc2UgaWYgJHBvc2l0aW9uID09IGNlbnRlciB7XG4gICAgJiwgJjpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgIGZsb2F0OiBub25lO1xuICAgICAgY2xlYXI6IGJvdGg7XG4gICAgfVxuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgfVxuICBAZWxzZSB7XG4gICAgQHdhcm4gJ1dyb25nIHN5bnRheCBmb3IgZ3JpZC1jb2x1bW4tcG9zaXRpb24oKS4gRW50ZXIgYSBwb3NpdGl2ZSBvciBuZWdhdGl2ZSBudW1iZXIsIG9yIGNlbnRlci4nO1xuICB9XG59XG5cbi8vLyBSZXNldCBhIHBvc2l0aW9uIGRlZmluaXRpb24uXG5AbWl4aW4gZ3JpZC1jb2x1bW4tdW5wb3NpdGlvbiB7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG4gIGZsb2F0OiAkZ2xvYmFsLWxlZnQ7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgbWFyZ2luLWxlZnQ6IDA7XG59XG5cbi8vLyBPZmZzZXRzIGEgY29sdW1uIHRvIHRoZSByaWdodCBieSBgJG5gIGNvbHVtbnMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TGlzdH0gJG4gLSBXaWR0aCB0byBvZmZzZXQgYnkuIFlvdSBjYW4gcGFzcyBpbiBhbnkgdmFsdWUgYWNjZXB0ZWQgYnkgdGhlIGBncmlkLWNvbHVtbigpYCBtaXhpbiwgc3VjaCBhcyBgNmAsIGA1MCVgLCBvciBgMSBvZiAyYC5cbkBtaXhpbiBncmlkLWNvbHVtbi1vZmZzZXQoJG4pIHtcbiAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogZ3JpZC1jb2x1bW4oJG4pO1xufVxuXG4vLy8gRGlzYWJsZSB0aGUgZGVmYXVsdCBiZWhhdmlvciBvZiB0aGUgbGFzdCBjb2x1bW4gaW4gYSByb3cgYWxpZ25pbmcgdG8gdGhlIG9wcG9zaXRlIGVkZ2UuXG5AbWl4aW4gZ3JpZC1jb2x1bW4tZW5kIHtcbiAgLy8gVGhpcyBleHRyYSBzcGVjaWZpY2l0eSBpcyByZXF1aXJlZCBmb3IgdGhlIHByb3BlcnR5IHRvIGJlIGFwcGxpZWRcbiAgJjpsYXN0LWNoaWxkOmxhc3QtY2hpbGQge1xuICAgIGZsb2F0OiAkZ2xvYmFsLWxlZnQ7XG4gIH1cbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLXBvc2l0aW9uKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi1wb3NpdGlvblxuQG1peGluIGdyaWQtY29sLXBvcygkcG9zaXRpb24pIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tcG9zaXRpb24oJHBvc2l0aW9uKTtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLXVucG9zaXRpb24oKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLXVucG9zaXRpb25cbkBtaXhpbiBncmlkLWNvbC11bnBvcyB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLXVucG9zaXRpb247XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi1vZmZzZXQoKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLW9mZnNldFxuQG1peGluIGdyaWQtY29sLW9mZigkbikge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1vZmZzZXQoJG4pO1xufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tZW5kKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi1lbmRcbkBtaXhpbiBncmlkLWNvbC1lbmQge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1lbmQ7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBncmlkXG4vLy8vXG5cbi8vLyBTZXQgdGhlIGd1dHRlcnMgb24gYSBjb2x1bW5cbi8vLyBAcGFyYW0ge051bWJlcnxLZXl3b3JkfSAkZ3V0dGVyIFthdXRvXVxuLy8vICAgU3BhY2luZyBiZXR3ZWVuIGNvbHVtbnMsIGFjY2VwdHMgbXVsdGlwbGUgdmFsdWVzOlxuLy8vICAgLSBBIHNpbmdsZSB2YWx1ZSB3aWxsIG1ha2UgdGhlIGd1dHRlciB0aGF0IGV4YWN0IHNpemUuXG4vLy8gICAtIEEgYnJlYWtwb2ludCBuYW1lIHdpbGwgbWFrZSB0aGUgZ3V0dGVyIHRoZSBjb3JyZXNwb25kaW5nIHNpemUgaW4gdGhlICRndXR0ZXJzIG1hcC5cbi8vLyAgIC0gXCJhdXRvXCIgd2lsbCBtYWtlIHRoZSBndXR0ZXIgcmVzcG9uc2l2ZSwgdXNpbmcgdGhlICRndXR0ZXJzIG1hcCB2YWx1ZXMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkZ3V0dGVycyBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBHdXR0ZXIgbWFwIG9yIHNpbmdsZSB2YWx1ZSB0byB1c2UuIFJlc3BvbnNpdmUgZ3V0dGVyIHNldHRpbmdzIGJ5IGRlZmF1bHQuXG5AbWl4aW4gZ3JpZC1jb2x1bW4tZ3V0dGVyKFxuICAkZ3V0dGVyOiBhdXRvLFxuICAkZ3V0dGVyczogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gIEBpbmNsdWRlIC16Zi1icmVha3BvaW50LXZhbHVlKCRndXR0ZXIsICRndXR0ZXJzKSB7XG4gICAgJHBhZGRpbmc6IHJlbS1jYWxjKCQtemYtYnAtdmFsdWUpIC8gMjtcblxuICAgIHBhZGRpbmctcmlnaHQ6ICRwYWRkaW5nO1xuICAgIHBhZGRpbmctbGVmdDogJHBhZGRpbmc7XG4gIH1cbn1cblxuLy8vIENvbGxhcHNlIHRoZSBndXR0ZXJzIG9uIGEgY29sdW1uIGJ5IHJlbW92aW5nIHRoZSBwYWRkaW5nLiAqKk5vdGU6Kiogb25seSB1c2UgdGhpcyBtaXhpbiB3aXRoaW4gYSBicmVha3BvaW50LiBUbyBjb2xsYXBzZSBhIGNvbHVtbidzIGd1dHRlcnMgb24gYWxsIHNjcmVlbiBzaXplcywgdXNlIHRoZSBgJGd1dHRlcmAgcGFyYW1ldGVyIG9mIHRoZSBgZ3JpZC1jb2x1bW4oKWAgbWl4aW4gaW5zdGVhZC5cbkBtaXhpbiBncmlkLWNvbHVtbi1jb2xsYXBzZSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLWd1dHRlcigwKTtcbn1cblxuLy8vIFVuLWNvbGxhcHNlIHRoZSBndXR0ZXJzIG9uIGEgY29sdW1uIGJ5IHJlLWFkZGluZyB0aGUgcGFkZGluZy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZ3V0dGVyIFskZ3JpZC1jb2x1bW4tZ3V0dGVyXSAtIFNwYWNpbmcgYmV0d2VlbiBjb2x1bW5zLlxuQG1peGluIGdyaWQtY29sdW1uLXVuY29sbGFwc2UoJGd1dHRlcjogJGdyaWQtY29sdW1uLWd1dHRlcikge1xuICBAd2FybiAnVGhpcyBtaXhpbiBpcyBiZWluZyByZXBsYWNlZCBieSBncmlkLWNvbHVtbi1ndXR0ZXIoKS4gZ3JpZC1jb2x1bW4tdW5jb2xsYXBzZSgpIHdpbGwgYmUgcmVtb3ZlZCBpbiBGb3VuZGF0aW9uIDYuNC4nO1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1ndXR0ZXIoJGd1dHRlcnM6ICRndXR0ZXIpO1xufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tZ3V0dGVyKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi1ndXR0ZXJcbkBtaXhpbiBncmlkLWNvbC1ndXR0ZXIoXG4gICRndXR0ZXI6IGF1dG8sXG4gICRndXR0ZXJzOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tZ3V0dGVyKCRndXR0ZXIsICRndXR0ZXJzKTtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLWNvbGxhcHNlKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi1jb2xsYXBzZVxuQG1peGluIGdyaWQtY29sLWNvbGxhcHNlIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tY29sbGFwc2U7XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi11bmNvbGxhcHNlKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi11bmNvbGxhcHNlXG5AbWl4aW4gZ3JpZC1jb2wtdW5jb2xsYXBzZSgkZ3V0dGVyOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyKSB7XG4gIEB3YXJuICdUaGlzIG1peGluIGlzIGJlaW5nIHJlcGxhY2VkIGJ5IGdyaWQtY29sLWd1dHRlcigpLiBncmlkLWNvbC11bmNvbGxhcHNlKCkgd2lsbCBiZSByZW1vdmVkIGluIEZvdW5kYXRpb24gNi40Lic7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLXVuY29sbGFwc2UoJGd1dHRlcik7XG59XG5cbi8vLyBTZXRzIGJvdHRvbSBtYXJnaW4gb24gZ3JpZCBjb2x1bW5zIHRvIG1hdGNoIGd1dHRlcnNcbi8vLyBAcGFyYW0ge051bWJlcnxLZXl3b3JkfSAkbWFyZ2luIFthdXRvXVxuLy8vICAgVGhlIGJvdHRvbSBtYXJnaW4gb24gZ3JpZCBjb2x1bW5zLCBhY2NlcHRzIG11bHRpcGxlIHZhbHVlczpcbi8vLyAgIC0gQSBzaW5nbGUgdmFsdWUgd2lsbCBtYWtlIHRoZSBtYXJnaW4gdGhhdCBleGFjdCBzaXplLlxuLy8vICAgLSBBIGJyZWFrcG9pbnQgbmFtZSB3aWxsIG1ha2UgdGhlIG1hcmdpbiB0aGUgY29ycmVzcG9uZGluZyBzaXplIGluIHRoZSAkbWFyZ2lucyBtYXAuXG4vLy8gICAtIFwiYXV0b1wiIHdpbGwgbWFrZSB0aGUgbWFyZ2luIHJlc3BvbnNpdmUsIHVzaW5nIHRoZSAkbWFyZ2lucyBtYXAgdmFsdWVzLlxuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJG1hcmdpbnMgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gTWFwIG9yIHNpbmdsZSB2YWx1ZSB0byB1c2UuIFJlc3BvbnNpdmUgZ3V0dGVyIHNldHRpbmdzIGJ5IGRlZmF1bHQuXG5AbWl4aW4gZ3JpZC1jb2x1bW4tbWFyZ2luIChcbiAgJG1hcmdpbjogYXV0byxcbiAgJG1hcmdpbnM6ICRncmlkLWNvbHVtbi1ndXR0ZXJcbikge1xuICBAaW5jbHVkZSAtemYtYnJlYWtwb2ludC12YWx1ZSgkbWFyZ2luLCAkbWFyZ2lucykge1xuICAgICRtYXJnaW4tYm90dG9tOiByZW0tY2FsYygkLXpmLWJwLXZhbHVlKTtcbiAgICBtYXJnaW4tYm90dG9tOiAkbWFyZ2luLWJvdHRvbTtcblxuICAgID4gOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGdyaWRcbi8vLy9cblxuLy8vIE91dHB1dHMgQ1NTIGNsYXNzZXMgZm9yIHRoZSBncmlkLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuQG1peGluIGZvdW5kYXRpb24tZ3JpZChcbiAgJHJvdzogJ3JvdycsXG4gICRjb2x1bW46ICdjb2x1bW4nLFxuICAkY29sdW1uLXJvdzogJ2NvbHVtbi1yb3cnLFxuICAkZ3V0dGVyOiAnZ3V0dGVyJyxcbiAgJHB1c2g6ICdwdXNoJyxcbiAgJHB1bGw6ICdwdWxsJyxcbiAgJGNlbnRlcjogJ2NlbnRlcmVkJyxcbiAgJHVuY2VudGVyOiAndW5jZW50ZXJlZCcsXG4gICRjb2xsYXBzZTogJ2NvbGxhcHNlJyxcbiAgJHVuY29sbGFwc2U6ICd1bmNvbGxhcHNlJyxcbiAgJG9mZnNldDogJ29mZnNldCcsXG4gICRlbmQ6ICdlbmQnLFxuICAkZXhwYW5kZWQ6ICdleHBhbmRlZCcsXG4gICRibG9jazogJ2Jsb2NrJ1xuKSB7XG4gIC8vIFJvd1xuICAuI3skcm93fSB7XG4gICAgQGluY2x1ZGUgZ3JpZC1yb3c7XG5cbiAgICAvLyBDb2xsYXBzaW5nXG4gICAgJi4jeyRjb2xsYXBzZX0ge1xuICAgICAgPiAuI3skY29sdW1ufSB7XG4gICAgICAgIEBpbmNsdWRlIGdyaWQtY29sLWNvbGxhcHNlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIE5lc3RpbmdcbiAgICAmIC4jeyRyb3d9IHtcbiAgICAgIEBpbmNsdWRlIGdyaWQtcm93LW5lc3QoJGdyaWQtY29sdW1uLWd1dHRlcik7XG5cbiAgICAgICYuI3skY29sbGFwc2V9IHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBFeHBhbmRlZCAoZnVsbC13aWR0aCkgcm93XG4gICAgJi4jeyRleHBhbmRlZH0ge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1yb3ctc2l6ZShleHBhbmQpO1xuXG4gICAgICAuI3skcm93fSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpub3QoLiN7JGV4cGFuZGVkfSkgLiN7JHJvd30ge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1yb3ctc2l6ZShleHBhbmQpO1xuICAgIH1cblxuICAgIEBpZiB0eXBlLW9mKCRncmlkLWNvbHVtbi1ndXR0ZXIpID09ICdtYXAnIHtcbiAgICAgIC8vIFN0YXRpYyAodW5yZXNwb25zaXZlKSByb3cgZ3V0dGVyc1xuICAgICAgLy9cbiAgICAgIEBlYWNoICRicmVha3BvaW50LCAkdmFsdWUgaW4gJGdyaWQtY29sdW1uLWd1dHRlciB7XG4gICAgICAgICYuI3skZ3V0dGVyfS0jeyRicmVha3BvaW50fSB7XG4gICAgICAgICAgPiAuI3skY29sdW1ufSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBncmlkLWNvbC1ndXR0ZXIoJHZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBDb2x1bW5cbiAgLiN7JGNvbHVtbn0ge1xuICAgIEBpbmNsdWRlIGdyaWQtY29sO1xuXG4gICAgQGlmICRncmlkLWNvbHVtbi1hbGlnbi1lZGdlIHtcbiAgICAgICYuI3skZW5kfSB7XG4gICAgICAgIEBpbmNsdWRlIGdyaWQtY29sLWVuZDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBDb2x1bW4gcm93XG4gIC8vIFRoZSBkb3VibGUgLnJvdyBjbGFzcyBpcyBuZWVkZWQgdG8gYnVtcCB1cCB0aGUgc3BlY2lmaWNpdHlcbiAgLiN7JGNvbHVtbn0uI3skcm93fS4jeyRyb3d9IHtcbiAgICBmbG9hdDogbm9uZTtcbiAgfVxuXG4gIC8vIFRvIHByb3Blcmx5IG5lc3QgYSBjb2x1bW4gcm93LCBwYWRkaW5nIGFuZCBtYXJnaW4gaXMgcmVtb3ZlZFxuICAuI3skcm93fSAuI3skY29sdW1ufS4jeyRyb3d9LiN7JHJvd30ge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgfVxuXG4gIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQge1xuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGdyaWQtY29sdW1uLWNvdW50IHtcbiAgICAgIC8vIENvbHVtbiB3aWR0aFxuICAgICAgLiN7JC16Zi1zaXplfS0jeyRpfSB7XG4gICAgICAgIEBpbmNsdWRlIGdyaWQtY29sLXNpemUoJGkpO1xuICAgICAgfVxuXG4gICAgICAvLyBTb3VyY2Ugb3JkZXJpbmdcbiAgICAgIEBpZiAkaSA8ICRncmlkLWNvbHVtbi1jb3VudCB7XG4gICAgICAgIC4jeyQtemYtc2l6ZX0tI3skcHVzaH0tI3skaX0ge1xuICAgICAgICAgIEBpbmNsdWRlIGdyaWQtY29sLXBvcygkaSk7XG4gICAgICAgIH1cblxuICAgICAgICAuI3skLXpmLXNpemV9LSN7JHB1bGx9LSN7JGl9IHtcbiAgICAgICAgICBAaW5jbHVkZSBncmlkLWNvbC1wb3MoLSRpKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBPZmZzZXRzXG4gICAgICAkbzogJGkgLSAxO1xuXG4gICAgICAuI3skLXpmLXNpemV9LSN7JG9mZnNldH0tI3skb30ge1xuICAgICAgICBAaW5jbHVkZSBncmlkLWNvbC1vZmYoJG8pO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEJsb2NrIGdyaWRcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRibG9jay1ncmlkLW1heCB7XG4gICAgICAuI3skLXpmLXNpemV9LXVwLSN7JGl9IHtcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1sYXlvdXQoJGksICcuI3skY29sdW1ufScpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFJlc3BvbnNpdmUgY29sbGFwc2luZ1xuICAgIC4jeyQtemYtc2l6ZX0tI3skY29sbGFwc2V9IHtcbiAgICAgID4gLiN7JGNvbHVtbn0geyBAaW5jbHVkZSBncmlkLWNvbC1jb2xsYXBzZTsgfVxuXG4gICAgICAuI3skcm93fSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLiN7JGV4cGFuZGVkfS4jeyRyb3d9IC4jeyQtemYtc2l6ZX0tI3skY29sbGFwc2V9LiN7JHJvd30ge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgfVxuXG4gICAgLiN7JC16Zi1zaXplfS0jeyR1bmNvbGxhcHNlfSB7XG4gICAgICA+IC4jeyRjb2x1bW59IHsgQGluY2x1ZGUgZ3JpZC1jb2wtZ3V0dGVyKCQtemYtc2l6ZSk7IH1cbiAgICB9XG5cbiAgICAvLyBQb3NpdGlvbmluZ1xuICAgIC4jeyQtemYtc2l6ZX0tI3skY2VudGVyfSB7XG4gICAgICBAaW5jbHVkZSBncmlkLWNvbC1wb3MoY2VudGVyKTtcbiAgICB9XG5cbiAgICAvLyBHdXR0ZXIgYWRqdXN0bWVudFxuICAgIC4jeyQtemYtc2l6ZX0tI3skdW5jZW50ZXJ9LFxuICAgIC4jeyQtemYtc2l6ZX0tI3skcHVzaH0tMCxcbiAgICAuI3skLXpmLXNpemV9LSN7JHB1bGx9LTAge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1jb2wtdW5wb3M7XG4gICAgfVxuICB9XG5cbiAgLy8gQmxvY2sgZ3JpZCBjb2x1bW5zXG4gIC4jeyRjb2x1bW59LSN7JGJsb2NrfSB7XG4gICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tbWFyZ2luO1xuICB9XG5cbiAgQGlmICRjb2x1bW4gPT0gJ2NvbHVtbicgYW5kIGhhcy12YWx1ZSgkZ3JpZC1jb2x1bW4tYWxpYXMpIHtcbiAgICAuI3skZ3JpZC1jb2x1bW4tYWxpYXN9IHtcbiAgICAgIC8vIHNhc3MtbGludDpkaXNhYmxlLWJsb2NrIHBsYWNlaG9sZGVyLWluLWV4dGVuZFxuICAgICAgQGV4dGVuZCAuY29sdW1uO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZ3JpZFxuLy8vL1xuXG4vLy8gU2l6ZXMgY2hpbGQgZWxlbWVudHMgc28gdGhhdCBgJG5gIG51bWJlciBvZiBpdGVtcyBhcHBlYXIgb24gZWFjaCByb3cuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJG4gLSBOdW1iZXIgb2YgZWxlbWVudHMgdG8gZGlzcGxheSBwZXIgcm93LlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc2VsZWN0b3IgWycuY29sdW1uJ10gLSBTZWxlY3RvcihzKSB0byB1c2UgZm9yIGNoaWxkIGVsZW1lbnRzLlxuLy8vIEBwYXJhbSB7TnVtYmVyfExpc3R9ICRndXR0ZXJcbi8vLyAgIFRoZSBndXR0ZXIgdG8gYXBwbHkgdG8gY2hpbGQgZWxlbWVudHMuIEFjY2VwdHMgbXVsdGlwbGUgdmFsdWVzOlxuLy8vICAgLSAkZ3JpZC1jb2x1bW4tZ3V0dGVyIHdpbGwgdXNlIHRoZSB2YWx1ZXMgaW4gdGhlICRncmlkLWNvbHVtbi1ndXR0ZXIgbWFwLCBpbmNsdWRpbmcgYnJlYWtwb2ludCBzaXplcy5cbi8vLyAgIC0gQSBmaXhlZCBudW1lcmljIHZhbHVlIHdpbGwgYXBwbHkgdGhpcyBndXR0ZXIgdG8gYWxsIGJyZWFrcG9pbnRzLlxuQG1peGluIGdyaWQtbGF5b3V0KFxuICAkbixcbiAgJHNlbGVjdG9yOiAnLmNvbHVtbicsXG4gICRndXR0ZXI6IG51bGxcbikge1xuICAmID4gI3skc2VsZWN0b3J9IHtcbiAgICBmbG9hdDogJGdsb2JhbC1sZWZ0O1xuICAgIHdpZHRoOiBwZXJjZW50YWdlKDEvJG4pO1xuXG4gICAgLy8gSWYgYSAkZ3V0dGVyIHZhbHVlIGlzIHBhc3NlZFxuICAgIEBpZigkZ3V0dGVyKSB7XG4gICAgICAvLyBHdXR0ZXJzXG4gICAgICBAaWYgdHlwZS1vZigkZ3V0dGVyKSA9PSAnbWFwJyB7XG4gICAgICAgIEBlYWNoICRicmVha3BvaW50LCAkdmFsdWUgaW4gJGd1dHRlciB7XG4gICAgICAgICAgJHBhZGRpbmc6IHJlbS1jYWxjKCR2YWx1ZSkgLyAyO1xuXG4gICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkYnJlYWtwb2ludCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHBhZGRpbmc7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRwYWRkaW5nO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGVsc2UgaWYgdHlwZS1vZigkZ3V0dGVyKSA9PSAnbnVtYmVyJyBhbmQgc3RyaXAtdW5pdCgkZ3V0dGVyKSA+IDAge1xuICAgICAgICAkcGFkZGluZzogcmVtLWNhbGMoJGd1dHRlcikgLyAyO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkcGFkZGluZztcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAkcGFkZGluZztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTtcbiAgICB9XG5cbiAgICAmOm50aC1vZi10eXBlKCN7JG59bisxKSB7XG4gICAgICBjbGVhcjogYm90aDtcbiAgICB9XG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6ICRnbG9iYWwtbGVmdDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgZXh0cmEgQ1NTIHRvIGJsb2NrIGdyaWQgY2hpbGRyZW4gc28gdGhlIGxhc3QgaXRlbXMgaW4gdGhlIHJvdyBjZW50ZXIgYXV0b21hdGljYWxseS4gQXBwbHkgdGhpcyB0byB0aGUgY29sdW1ucywgbm90IHRoZSByb3cuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJG4gLSBOdW1iZXIgb2YgaXRlbXMgdGhhdCBhcHBlYXIgaW4gZWFjaCByb3cuXG5AbWl4aW4gZ3JpZC1sYXlvdXQtY2VudGVyLWxhc3QoJG4pIHtcbiAgQGZvciAkaSBmcm9tIDEgdG8gJG4ge1xuICAgIEBpZiAkaSA9PSAxIHtcbiAgICAgICY6bnRoLWNoaWxkKCN7JG59bisxKTpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6ICgxMDAgLSAxMDAvJG4gKiAkaSkgLyAyICogMSU7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICY6bnRoLWNoaWxkKCN7JG59bisxKTpudGgtbGFzdC1jaGlsZCgjeyRpfSkge1xuICAgICAgICBtYXJnaW4tbGVmdDogKDEwMCAtIDEwMC8kbiAqICRpKSAvIDIgKiAxJTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZsZXgtZ3JpZFxuLy8vL1xuXG4vLy8gQ3JlYXRlcyBhIGNvbnRhaW5lciBmb3IgYSBmbGV4IGdyaWQgcm93LlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfExpc3R9ICRiZWhhdmlvciBbbnVsbF1cbi8vLyAgIE1vZGlmaWNhdGlvbnMgdG8gdGhlIGRlZmF1bHQgZ3JpZCBzdHlsZXMuIGBuZXN0YCBpbmRpY2F0ZXMgdGhlIHJvdyB3aWxsIGJlIHBsYWNlZCBpbnNpZGUgYW5vdGhlciByb3cuIGBjb2xsYXBzZWAgaW5kaWNhdGVzIHRoYXQgdGhlIGNvbHVtbnMgaW5zaWRlIHRoaXMgcm93IHdpbGwgbm90IGhhdmUgcGFkZGluZy4gYG5lc3QgY29sbGFwc2VgIGNvbWJpbmVzIGJvdGggYmVoYXZpb3JzLlxuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICRzaXplIFskZ3JpZC1yb3ctd2lkdGhdIE1heGltdW0gc2l6ZSBvZiB0aGUgcm93LiBTZXQgdG8gYGV4cGFuZGAgdG8gbWFrZSB0aGUgcm93IHRha2luZyB0aGUgZnVsbCB3aWR0aC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGNvbHVtbnMgW251bGxdIC0gTnVtYmVyIG9mIGNvbHVtbnMgdG8gdXNlIGZvciB0aGlzIHJvdy4gSWYgc2V0IHRvIGBudWxsYCAodGhlIGRlZmF1bHQpLCB0aGUgZ2xvYmFsIGNvbHVtbiBjb3VudCB3aWxsIGJlIHVzZWQuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkYmFzZSBbdHJ1ZV0gLSBTZXQgdG8gYGZhbHNlYCB0byBwcmV2ZW50IGJhc2ljIHN0eWxlcyBmcm9tIGJlaW5nIG91dHB1dC4gVXNlZnVsIGlmIHlvdSdyZSBjYWxsaW5nIHRoaXMgbWl4aW4gb24gdGhlIHNhbWUgZWxlbWVudCB0d2ljZSwgYXMgaXQgcHJldmVudHMgZHVwbGljYXRlIENTUyBvdXRwdXQuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkZ3V0dGVycyBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBHdXR0ZXIgbWFwIG9yIHNpbmdsZSB2YWx1ZSB0byB1c2Ugd2hlbiBpbnZlcnRpbmcgbWFyZ2lucywgaW4gY2FzZSB0aGUgcm93IGlzIG5lc3RlZC4gUmVzcG9uc2l2ZSBndXR0ZXIgc2V0dGluZ3MgYnkgZGVmYXVsdC5cbkBtaXhpbiBmbGV4LWdyaWQtcm93KFxuICAkYmVoYXZpb3I6IG51bGwsXG4gICRzaXplOiAkZ3JpZC1yb3ctd2lkdGgsXG4gICRjb2x1bW5zOiBudWxsLFxuICAkYmFzZTogdHJ1ZSxcbiAgJHdyYXA6IHRydWUsXG4gICRndXR0ZXJzOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgJG1hcmdpbjogYXV0bztcbiAgJHdyYXA6IGlmKCR3cmFwLCB3cmFwLCBub3dyYXApO1xuXG4gIEBpZiBpbmRleCgkYmVoYXZpb3IsIG5lc3QpICE9IG51bGwge1xuICAgIEBpbmNsdWRlIGdyaWQtcm93LW5lc3QoJGd1dHRlcnMpO1xuXG4gICAgQGlmIGluZGV4KCRiZWhhdmlvciwgY29sbGFwc2UpICE9IG51bGwge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBAaW5jbHVkZSBncmlkLXJvdy1zaXplKCRzaXplKTtcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIH1cblxuICBAaWYgJGJhc2Uge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1mbG93OiByb3cgJHdyYXA7XG4gIH1cblxuICBAaWYgJGNvbHVtbnMgIT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgZ3JpZC1jb250ZXh0KCRjb2x1bW5zLCAkYmFzZSkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBDYWxjdWxhdGVzIHRoZSBgZmxleGAgcHJvcGVydHkgZm9yIGEgZmxleCBncmlkIGNvbHVtbi4gSXQgYWNjZXB0cyBhbGwgb2YgdGhlIHNhbWUgdmFsdWVzIGFzIHRoZSBiYXNpYyBgZ3JpZC1jb2x1bW4oKWAgZnVuY3Rpb24sIGFsb25nIHdpdGggdHdvIGV4dHJhczpcbi8vLyAgIC0gYGV4cGFuZGAgKHRoZSBkZWZhdWx0KSB3aWxsIG1ha2UgdGhlIGNvbHVtbiBleHBhbmQgdG8gZmlsbCBzcGFjZS5cbi8vLyAgIC0gYHNocmlua2Agd2lsbCBtYWtlIHRoZSBjb2x1bW4gY29udHJhY3QsIHNvIGl0IG9ubHkgdGFrZXMgdXAgdGhlIGhvcml6b250YWwgc3BhY2UgaXQgbmVlZHMuXG4vLy9cbi8vLyBAcGFyYW0ge01peGVkfSAkY29sdW1ucyBbZXhwYW5kXSAtIFdpZHRoIG9mIHRoZSBjb2x1bW4uXG5AZnVuY3Rpb24gZmxleC1ncmlkLWNvbHVtbigkY29sdW1uczogZXhwYW5kKSB7XG4gICRmbGV4OiAxIDEgMHB4OyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIHplcm8tdW5pdFxuXG4gIEBpZiAkY29sdW1ucyA9PSBzaHJpbmsge1xuICAgICRmbGV4OiAwIDAgYXV0bztcbiAgfVxuICBAZWxzZSBpZiAkY29sdW1ucyAhPSBleHBhbmQge1xuICAgICRmbGV4OiAwIDAgZ3JpZC1jb2x1bW4oJGNvbHVtbnMpO1xuICB9XG5cbiAgQHJldHVybiAkZmxleDtcbn1cblxuLy8vIENyZWF0ZXMgYSBjb2x1bW4gZm9yIGEgZmxleCBncmlkLiBCeSBkZWZhdWx0LCB0aGUgY29sdW1uIHdpbGwgc3RyZXRjaCB0byB0aGUgZnVsbCB3aWR0aCBvZiBpdHMgY29udGFpbmVyLCBidXQgdGhpcyBjYW4gYmUgb3ZlcnJpZGRlbiB3aXRoIHNpemluZyBjbGFzc2VzLCBvciBieSB1c2luZyB0aGUgYHVuc3RhY2tgIGNsYXNzIG9uIHRoZSBwYXJlbnQgZmxleCByb3cuXG4vLy9cbi8vLyBAcGFyYW0ge01peGVkfSAkY29sdW1ucyBbZXhwYW5kXSAtIFdpZHRoIG9mIHRoZSBjb2x1bW4uIFJlZmVyIHRvIHRoZSBgZmxleC1ncmlkLWNvbHVtbigpYCBmdW5jdGlvbiB0byBzZWUgcG9zc2libGUgdmFsdWVzLlxuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gTWFwIG9yIHNpbmdsZSB2YWx1ZSBmb3IgZ3V0dGVycyB3aWR0aC4gU2VlIHRoZSBgZ3JpZC1jb2x1bW4tZ3V0dGVyYCBtaXhpbi5cbkBtaXhpbiBmbGV4LWdyaWQtY29sdW1uKFxuICAkY29sdW1uczogZXhwYW5kLFxuICAkZ3V0dGVyczogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gIC8vIEJhc2UgcHJvcGVydGllc1xuICBAaW5jbHVkZSBmbGV4LWdyaWQtc2l6ZSgkY29sdW1ucyk7XG5cbiAgLy8gR3V0dGVyc1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1ndXR0ZXIoJGd1dHRlcnM6ICRndXR0ZXJzKTtcblxuICAvLyBmaXhlcyByZWNlbnQgQ2hyb21lIHZlcnNpb24gbm90IGxpbWl0aW5nIGNoaWxkIHdpZHRoXG4gIC8vIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzM0OTM0NTg2L3doaXRlLXNwYWNlLW5vd3JhcC1hbmQtZmxleGJveC1kaWQtbm90LXdvcmstaW4tY2hyb21lXG4gIEBpZiAkY29sdW1ucyA9PSBleHBhbmQge1xuICAgIG1pbi13aWR0aDogMDtcbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIGJsb2NrIGdyaWQgZm9yIGEgZmxleCBncmlkIHJvdy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbiAtIE51bWJlciBvZiBjb2x1bW5zIHRvIGRpc3BsYXkgb24gZWFjaCByb3cuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzZWxlY3RvciAtIFNlbGVjdG9yIHRvIHVzZSB0byB0YXJnZXQgY29sdW1ucyB3aXRoaW4gdGhlIHJvdy5cbkBtaXhpbiBmbGV4LWdyaWQtbGF5b3V0KFxuICAkbixcbiAgJHNlbGVjdG9yOiAnLmNvbHVtbidcbikge1xuICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgPiAjeyRzZWxlY3Rvcn0ge1xuICAgICRwY3Q6IHBlcmNlbnRhZ2UoMS8kbik7XG5cbiAgICBmbGV4OiAwIDAgJHBjdDtcbiAgICBtYXgtd2lkdGg6ICRwY3Q7XG4gIH1cbn1cblxuLy8vIENoYW5nZXMgdGhlIHdpZHRoIGZsZXggZ3JpZCBjb2x1bW4uXG4vLy8gQHBhcmFtIHtNaXhlZH0gJGNvbHVtbnMgW2V4cGFuZF0gLSBXaWR0aCBvZiB0aGUgY29sdW1uLiBSZWZlciB0byB0aGUgYGZsZXgtZ3JpZC1jb2x1bW4oKWAgZnVuY3Rpb24gdG8gc2VlIHBvc3NpYmxlIHZhbHVlcy5cbkBtaXhpbiBmbGV4LWdyaWQtc2l6ZSgkY29sdW1uczogbnVsbCkge1xuICAkY29sdW1uczogJGNvbHVtbnMgb3IgZXhwYW5kO1xuXG4gIGZsZXg6IGZsZXgtZ3JpZC1jb2x1bW4oJGNvbHVtbnMpO1xuXG4gIC8vIG1heC13aWR0aCBmaXhlcyBJRSAxMC8xMSBub3QgcmVzcGVjdGluZyB0aGUgZmxleC1iYXNpcyBwcm9wZXJ0eVxuICBAaWYgJGNvbHVtbnMgIT0gZXhwYW5kIGFuZCAkY29sdW1ucyAhPSBzaHJpbmsge1xuICAgIG1heC13aWR0aDogZ3JpZC1jb2x1bW4oJGNvbHVtbnMpO1xuICB9XG59XG5cblxuQG1peGluIGZvdW5kYXRpb24tZmxleC1ncmlkIHtcbiAgLy8gUm93XG4gIC5yb3cge1xuICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1yb3c7XG5cbiAgICAvLyBOZXN0aW5nIGJlaGF2aW9yXG4gICAgJiAucm93IHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1yb3cobmVzdCwgJGJhc2U6IGZhbHNlKTtcblxuICAgICAgJi5jb2xsYXBzZSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRXhwYW5kZWQgcm93XG4gICAgJi5leHBhbmRlZCB7XG4gICAgICBAaW5jbHVkZSBncmlkLXJvdy1zaXplKGV4cGFuZCk7XG5cbiAgICAgIC5yb3cge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6bm90KC5leHBhbmRlZCkgLnJvdyB7XG4gICAgICBAaW5jbHVkZSBncmlkLXJvdy1zaXplKGV4cGFuZCk7XG4gICAgfVxuXG4gICAgJi5jb2xsYXBzZSB7XG4gICAgICA+IC5jb2x1bW4ge1xuICAgICAgICBAaW5jbHVkZSBncmlkLWNvbC1jb2xsYXBzZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBVbmRvIG5lZ2F0aXZlIG1hcmdpbnNcbiAgICAvLyBGcm9tIGNvbGxhcHNlZCBjaGlsZFxuICAgICYuaXMtY29sbGFwc2UtY2hpbGQsXG4gICAgJi5jb2xsYXBzZSA+IC5jb2x1bW4gPiAucm93IHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIH1cbiAgfVxuXG4gIC8vIENvbHVtblxuICAuY29sdW1uIHtcbiAgICBAaW5jbHVkZSBmbGV4LWdyaWQtY29sdW1uO1xuICB9XG5cbiAgLy8gQ29sdW1uIHJvd1xuICAvLyBUaGUgZG91YmxlIC5yb3cgY2xhc3MgaXMgbmVlZGVkIHRvIGJ1bXAgdXAgdGhlIHNwZWNpZmljaXR5XG4gIC5jb2x1bW4ucm93LnJvdyB7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICAvLyBUbyBwcm9wZXJseSBuZXN0IGEgY29sdW1uIHJvdywgcGFkZGluZyBhbmQgbWFyZ2luIGlzIHJlbW92ZWRcbiAgLnJvdyAuY29sdW1uLnJvdy5yb3cge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgfVxuXG4gIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQge1xuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGdyaWQtY29sdW1uLWNvdW50IHtcbiAgICAgIC8vIFNpemluZyAocGVyY2VudGFnZSlcbiAgICAgIC4jeyQtemYtc2l6ZX0tI3skaX0ge1xuICAgICAgICBmbGV4OiBmbGV4LWdyaWQtY29sdW1uKCRpKTtcbiAgICAgICAgbWF4LXdpZHRoOiBncmlkLWNvbHVtbigkaSk7XG4gICAgICB9XG5cbiAgICAgIC8vIE9mZnNldHNcbiAgICAgICRvOiAkaSAtIDE7XG5cbiAgICAgIC4jeyQtemYtc2l6ZX0tb2Zmc2V0LSN7JG99IHtcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tb2Zmc2V0KCRvKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBCbG9jayBncmlkXG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkYmxvY2stZ3JpZC1tYXgge1xuICAgICAgLiN7JC16Zi1zaXplfS11cC0jeyRpfSB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1sYXlvdXQoJGkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAkLXpmLXNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgLy8gU2l6aW5nIChleHBhbmQpXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCQtemYtc2l6ZSkge1xuICAgICAgICAuI3skLXpmLXNpemV9LWV4cGFuZCB7XG4gICAgICAgICAgZmxleDogZmxleC1ncmlkLWNvbHVtbigpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIEF1dG8tc3RhY2tpbmcvdW5zdGFja2luZ1xuICAgICAgQGF0LXJvb3QgKHdpdGhvdXQ6IG1lZGlhKSB7XG4gICAgICAgIC5yb3cuI3skLXpmLXNpemV9LXVuc3RhY2sge1xuICAgICAgICAgID4gLmNvbHVtbiB7XG4gICAgICAgICAgICBmbGV4OiBmbGV4LWdyaWQtY29sdW1uKDEwMCUpO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCQtemYtc2l6ZSkge1xuICAgICAgICAgICAgICBmbGV4OiBmbGV4LWdyaWQtY29sdW1uKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gUmVzcG9uc2l2ZSBjb2xsYXBzaW5nXG4gICAgLiN7JC16Zi1zaXplfS1jb2xsYXBzZSB7XG4gICAgICA+IC5jb2x1bW4geyBAaW5jbHVkZSBncmlkLWNvbC1jb2xsYXBzZTsgfVxuICAgIH1cblxuICAgIC4jeyQtemYtc2l6ZX0tdW5jb2xsYXBzZSB7XG4gICAgICA+IC5jb2x1bW4geyBAaW5jbHVkZSBncmlkLWNvbC1ndXR0ZXIoJC16Zi1zaXplKTsgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFNpemluZyAoc2hyaW5rKVxuICAuc2hyaW5rIHtcbiAgICBmbGV4OiBmbGV4LWdyaWQtY29sdW1uKHNocmluayk7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG5cbiAgLy8gQmxvY2sgZ3JpZCBjb2x1bW5zXG4gIC5jb2x1bW4tYmxvY2sge1xuICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uLW1hcmdpbjtcbiAgfVxuXG4gIC5jb2x1bW5zIHtcbiAgICBAZXh0ZW5kIC5jb2x1bW47IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgcGxhY2Vob2xkZXItaW4tZXh0ZW5kXG5cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgeHktZ3JpZFxuLy8vL1xuXG4vLy8gRW5hYmxlcyB0aGUgWFkgZ3JpZC5cbi8vLyBAdHlwZSBCb29sZWFuXG4keHktZ3JpZDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIFRoZSBtYXhpbXVtIHdpZHRoIG9mIGEgZ3JpZCBjb250YWluZXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ3JpZC1jb250YWluZXI6ICRnbG9iYWwtd2lkdGggIWRlZmF1bHQ7XG5cbi8vLyBUaGUgbnVtYmVyIG9mIGNvbHVtbnMgdXNlZCBpbiB0aGUgZ3JpZC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRncmlkLWNvbHVtbnM6IDEyICFkZWZhdWx0O1xuXG4vLy8gVGhlIGFtb3VudCBvZiBtYXJnaW4gYmV0d2VlbiBjZWxscyBhdCBkaWZmZXJlbnQgc2NyZWVuIHNpemVzIHdoZW4gdXNpbmcgdGhlIG1hcmdpbiBncmlkLiBUbyB1c2UganVzdCBvbmUgc2l6ZSwgc2V0IHRoZSB2YXJpYWJsZSB0byBhIG51bWJlciBpbnN0ZWFkIG9mIGEgbWFwLlxuLy8vIEB0eXBlIE1hcCB8IExlbmd0aFxuJGdyaWQtbWFyZ2luLWd1dHRlcnM6IChcbiAgc21hbGw6IDIwcHgsXG4gIG1lZGl1bTogMzBweFxuKSAhZGVmYXVsdDtcblxuLy8vIFRoZSBhbW91bnQgb2YgcGFkZGluZyBpbiBjZWxscyBhdCBkaWZmZXJlbnQgc2NyZWVuIHNpemVzIHdoZW4gdXNpbmcgdGhlIHBhZGRpbmcgZ3JpZC4gVG8gdXNlIGp1c3Qgb25lIHNpemUsIHNldCB0aGUgdmFyaWFibGUgdG8gYSBudW1iZXIgaW5zdGVhZCBvZiBhIG1hcC5cbi8vLyBAdHlwZSBNYXAgfCBMZW5ndGhcbiRncmlkLXBhZGRpbmctZ3V0dGVyczogJGdyaWQtbWFyZ2luLWd1dHRlcnMgIWRlZmF1bHQ7XG5cbi8vLyBUaGUgYW1vdW50IG9mIHBhZGRpbmcgdG8gdXNlIHdoZW4gcGFkZGluZyB0aGUgZ3JpZC1jb250YWluZXIuXG4vLy8gQHR5cGUgTWFwIHwgTGVuZ3RoXG4kZ3JpZC1jb250YWluZXItcGFkZGluZzogJGdyaWQtcGFkZGluZy1ndXR0ZXJzICFkZWZhdWx0O1xuXG4vLy8gVGhlIG1heGltdW0gd2lkdGggdG8gYXBwbHkgdG8gYSBncmlkIGNvbnRhaW5lclxuLy8vIEB0eXBlIE51bWJlclxuJGdyaWQtY29udGFpbmVyLW1heDogJGdsb2JhbC13aWR0aCAhZGVmYXVsdDtcblxuLy8vIFRoZSBtYXhpbXVtIG51bWJlciBvZiBjZWxscyBpbiBhbiBYWSBibG9jayBncmlkLlxuLy8vIEB0eXBlIE51bWJlclxuJHh5LWJsb2NrLWdyaWQtbWF4OiA4ICFkZWZhdWx0O1xuXG5AaW1wb3J0ICdndXR0ZXJzJztcbkBpbXBvcnQgJ2dyaWQnO1xuQGltcG9ydCAnY2VsbCc7XG5AaW1wb3J0ICdmcmFtZSc7XG5AaW1wb3J0ICdwb3NpdGlvbic7XG5AaW1wb3J0ICdsYXlvdXQnO1xuQGltcG9ydCAnY29sbGFwc2UnO1xuQGltcG9ydCAnY2xhc3Nlcyc7XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB4eS1ncmlkXG4vLy8vXG5cbi8vLyBDcmVhdGUgZ3V0dGVycyBmb3IgYSBjZWxsL2NvbnRhaW5lci5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLW1hcmdpbi1ndXR0ZXJzXSAtIE1hcCBvciBzaW5nbGUgdmFsdWUgZm9yIGd1dHRlcnMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZ3V0dGVyLXR5cGUgW21hcmdpbl0gLSBUeXBlIG9mIGd1dHRlciB0byBvdXRwdXQuIEFjY2VwdHMgZWl0aGVyIG1hcmdpbiBvciBwYWRkaW5nLlxuLy8vIEBwYXJhbSB7TGlzdH0gJGd1dHRlci1wb3NpdGlvbiBbcmlnaHQgbGVmdF0gLSBUaGUgcG9zaXRpb24gdG8gYXBwbHkgZ3V0dGVycyB0by4gQWNjZXB0cyBgdG9wYCwgYGJvdHRvbWAsIGBsZWZ0YCwgYHJpZ2h0YCBpbiBhbnkgY29tYmluYXRpb24uXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkbmVnYXRpdmUgW2ZhbHNlXSAtIFdoZXRoZXIgdG8gYXBwbHkgdGhlIGd1dHRlciBhcyBhIG5lZ2F0aXZlIHZhbHVlLiBDb21tb25seSB1c2VkIGZvciBuZXN0ZWQgZ3JpZHMuXG5AbWl4aW4geHktZ3V0dGVycyhcbiAgJGd1dHRlcnM6ICRncmlkLW1hcmdpbi1ndXR0ZXJzLFxuICAkZ3V0dGVyLXR5cGU6IG1hcmdpbixcbiAgJGd1dHRlci1wb3NpdGlvbjogcmlnaHQgbGVmdCxcbiAgJG5lZ2F0aXZlOiBmYWxzZVxuKSB7XG4gICRvcGVyYXRvcjogaWYoJG5lZ2F0aXZlLCAnLScsICcnKTtcblxuICAvLyBJZiB3ZSBoYXZlIGRlY2xhcmVkIG5lZ2F0aXZlIGd1dHRlcnMsIGZvcmNlIHR5cGUgdG8gYG1hcmdpbi5cbiAgJGd1dHRlci10eXBlOiBpZigkbmVnYXRpdmUsICdtYXJnaW4nLCAkZ3V0dGVyLXR5cGUpO1xuXG4gIC8vIE91dHB1dCBvdXIgbWFyZ2luIGd1dHRlcnMuXG4gIEBpZiAodHlwZS1vZigkZ3V0dGVycykgPT0gJ21hcCcpIHtcbiAgICBAaW5jbHVkZSAtemYtYnJlYWtwb2ludC12YWx1ZShhdXRvLCAkZ3V0dGVycykge1xuICAgICAgJGd1dHRlcjogcmVtLWNhbGMoJC16Zi1icC12YWx1ZSkgLyAyO1xuXG4gICAgICAvLyBMb29wIHRocm91Z2ggZWFjaCBndXR0ZXIgcG9zaXRpb25cbiAgICAgIEBlYWNoICR2YWx1ZSBpbiAkZ3V0dGVyLXBvc2l0aW9uIHtcbiAgICAgICAgI3skZ3V0dGVyLXR5cGV9LSN7JHZhbHVlfTogI3skb3BlcmF0b3J9JGd1dHRlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2VpZiAodHlwZS1vZigkZ3V0dGVycykgPT0gJ251bWJlcicpIHtcbiAgICAkZ3V0dGVyOiByZW0tY2FsYygkZ3V0dGVycykgLyAyO1xuXG4gICAgLy8gTG9vcCB0aHJvdWdoIGVhY2ggZ3V0dGVyIHBvc2l0aW9uXG4gICAgQGVhY2ggJHZhbHVlIGluICRndXR0ZXItcG9zaXRpb24ge1xuICAgICAgI3skZ3V0dGVyLXR5cGV9LSN7JHZhbHVlfTogI3skb3BlcmF0b3J9JGd1dHRlcjtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHh5LWdyaWRcbi8vLy9cblxuLy8vIENyZWF0ZXMgYSBtYXggd2lkdGggY29udGFpbmVyLCBkZXNpZ25lZCB0byBob3VzZSB5b3VyIGdyaWQgY29udGVudC5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2lkdGggWyRncmlkLWNvbnRhaW5lcl0gLSBhIHdpZHRoIHRvIGxpbWl0IHRoZSBjb250YWluZXIgdG8uXG5AbWl4aW4geHktZ3JpZC1jb250YWluZXIoXG4gICR3aWR0aDogJGdyaWQtY29udGFpbmVyLFxuICAkcGFkZGluZzogJGdyaWQtY29udGFpbmVyLXBhZGRpbmdcbikge1xuICBAaW5jbHVkZSB4eS1ndXR0ZXJzKCRndXR0ZXJzOiAkcGFkZGluZywgJGd1dHRlci10eXBlOiBwYWRkaW5nKTtcblxuICBtYXgtd2lkdGg6ICR3aWR0aDtcbiAgbWFyZ2luOiAwIGF1dG87XG59XG5cbi8vLyBDcmVhdGVzIGEgY29udGFpbmVyIGZvciB5b3VyIGZsZXggY2VsbHMuXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkaXJlY3Rpb24gW2hvcml6b250YWxdIC0gRWl0aGVyIGhvcml6b250YWwgb3IgdmVydGljYWwgZGlyZWN0aW9uIG9mIGNlbGxzIHdpdGhpbi5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICR3cmFwIFt0cnVlXSAtIElmIHRoZSBjZWxscyB3aXRoaW4gc2hvdWxkIHdyYXAgb3Igbm90LlxuQG1peGluIHh5LWdyaWQoXG4gICRkaXJlY3Rpb246IGhvcml6b250YWwsXG4gICR3cmFwOiB0cnVlXG4pIHtcbiAgJGRpcmVjdGlvbjogaWYoJGRpcmVjdGlvbiA9PSAnaG9yaXpvbnRhbCcsIHJvdywgY29sdW1uKTtcbiAgJHdyYXA6IGlmKCR3cmFwLCB3cmFwLCBub3dyYXApO1xuXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogJGRpcmVjdGlvbiAkd3JhcDtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHh5LWdyaWRcbi8vLy9cblxuLy8vIENhbGN1bGF0ZSB0aGUgcGVyY2VudGFnZSBzaXplIG9mIGEgY2VsbC5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfExpc3R9ICRzaXplIFskZ3JpZC1jb2x1bW5zXSAtIFNpemUgdG8gbWFrZSB0aGUgY2VsbC4gWW91IGNhbiBwYXNzIGEgdmFsdWUgaW4gbXVsdGlwbGUgZm9ybWF0cywgc3VjaCBhcyBgNmAsIGA1MCVgLCBgMSBvZiAyIG9yIDEvMy5cbkBmdW5jdGlvbiB4eS1jZWxsLXNpemUoXG4gICRzaXplOiAkZ3JpZC1jb2x1bW5zXG4pIHtcbiAgLy8gUGFyc2luZyBwZXJjZW50cywgZGVjaW1hbHMsIG4gb2YgbiBhbmQgbnVtYmVyIGNvdW50c1xuICBAaWYgdHlwZS1vZigkc2l6ZSkgPT0gJ251bWJlcicge1xuICAgIEBpZiB1bml0KCRzaXplKSA9PSAnJScge1xuICAgICAgJHNpemU6ICRzaXplO1xuICAgIH1cbiAgICBAZWxzZSBpZiAkc2l6ZSA8IDEge1xuICAgICAgJHNpemU6IHBlcmNlbnRhZ2UoJHNpemUpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkc2l6ZTogcGVyY2VudGFnZSgkc2l6ZSAvICRncmlkLWNvbHVtbnMpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFBhcnNpbmcgXCJuIG9mIG5cIiBvciBcIm4vblwiIGV4cHJlc3Npb25zXG4gIEBlbHNlaWYgdHlwZS1vZigkc2l6ZSkgPT0gJ2xpc3QnIHtcbiAgICBAaWYgbGVuZ3RoKCRzaXplKSAhPSAzIHtcbiAgICAgIEBlcnJvciAnV3Jvbmcgc3ludGF4IGZvciB4eS1jZWxsLXNpemUoKS4gVXNlIHRoZSBmb3JtYXQgXCJuIG9mIG5cIiBvciBcIm4vblwiLic7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICRzaXplOiBwZXJjZW50YWdlKG50aCgkc2l6ZSwgMSkgLyBudGgoJHNpemUsIDMpKTtcbiAgICB9XG4gIH1cbiAgLy8gQW55dGhpbmcgZWxzZSBpcyBpbmNvcnJlY3RcbiAgQGVsc2Uge1xuICAgIEBlcnJvciAnV3Jvbmcgc3ludGF4IGZvciB4eS1jZWxsLXNpemUoKS4gVXNlIGEgbnVtYmVyLCBkZWNpbWFsLCBwZXJjZW50YWdlLCBvciBcIm4gb2YgblwiIC8gXCJuL25cIi4nO1xuICB9XG5cbiAgQHJldHVybiAkc2l6ZTtcbn1cblxuLy8vIFNldHMgYmFzZSBmbGV4IHByb3BlcnRpZXMgZm9yIGNlbGxzLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSBbZnVsbF0gLSBUaGUgc2l6ZSBvZiB5b3VyIGNlbGwuIEFjY2VwdHMgYGZ1bGxgLCBgYXV0b2Agb3IgYHNocmlua2AuXG5AbWl4aW4geHktY2VsbC1iYXNlKCRzaXplOiBmdWxsKSB7XG4gIEBpZigkc2l6ZSA9PSAnZnVsbCcpIHtcbiAgICAvLyBUaGlzIGlzIHRoZSBiYXNlIHN0eWxlLCBhbGwgb3RoZXJzIGluaGVyaXQgZnJvbSBpdFxuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIG1pbi1oZWlnaHQ6IDBweDtcbiAgICBtaW4td2lkdGg6IDBweDtcbiAgfVxuICBAZWxzZWlmICgkc2l6ZSA9PSAnYXV0bycpIHtcbiAgICBmbGV4OiAxIDEgMHB4OyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIHplcm8tdW5pdFxuICB9XG4gIEBlbHNlaWYgKCRzaXplID09ICdzaHJpbmsnKSB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gIH1cbn1cblxuLy8vIFJlc2V0cyBhIGNlbGxzIHdpZHRoIChvciBoZWlnaHQgaWYgdmVydGljYWwgaXMgdHJ1ZSkgYXMgd2VsbCBhcyBzdHJpcHMgaXRzIGd1dHRlcnMuXG4vLy9cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICR2ZXJ0aWNhbCBbZmFsc2VdIC0gU2V0IHRvIHRydWUgdG8gb3V0cHV0IHZlcnRpY2FsIChoZWlnaHQpIHN0eWxlcyByYXRoZXIgdGhhbiB3aWR0aHMuXG5AbWl4aW4geHktY2VsbC1yZXNldCgkdmVydGljYWw6IHRydWUpIHtcbiAgJGRpcmVjdGlvbjogaWYoJHZlcnRpY2FsID09IHRydWUsIHdpZHRoLCBoZWlnaHQpO1xuICAjeyRkaXJlY3Rpb259OiBhdXRvO1xufVxuXG4vLyBTZXRzIG91ciBjZWxsIHdpZHRocyBvciBoZWlnaHRzIGRlcGVuZGluZyBvbiBndXR0ZXIgdHlwZS5cbkBtaXhpbiAteHktY2VsbC1wcm9wZXJ0aWVzKCRzaXplLCAkbWFyZ2luLWd1dHRlciwgJHZlcnRpY2FsKSB7XG4gICRkaXJlY3Rpb246IGlmKCR2ZXJ0aWNhbCA9PSB0cnVlLCBoZWlnaHQsIHdpZHRoKTtcbiAgQGlmKCRzaXplID09ICdmdWxsJykge1xuICAgICR2YWw6IGlmKCRtYXJnaW4tZ3V0dGVyID09IDAsIDEwMCUsIGNhbGMoMTAwJSAtICN7cmVtLWNhbGMoJG1hcmdpbi1ndXR0ZXIpfSkpO1xuICAgICN7JGRpcmVjdGlvbn06ICR2YWw7XG4gIH1cbiAgQGVsc2VpZiAoJHNpemUgPT0gJ2F1dG8nKSB7XG4gICAgI3skZGlyZWN0aW9ufTogYXV0bztcbiAgICAkdmFsOiBpZigkbWFyZ2luLWd1dHRlciA9PSAwLCAxMDAlLCBjYWxjKDEwMCUgLSAje3JlbS1jYWxjKCRtYXJnaW4tZ3V0dGVyKX0pKTtcbiAgfVxuICBAZWxzZWlmICgkc2l6ZSA9PSAnc2hyaW5rJykge1xuICAgICN7JGRpcmVjdGlvbn06IGF1dG87XG4gIH1cbiAgQGVsc2Uge1xuICAgICR2YWw6IGlmKCRtYXJnaW4tZ3V0dGVyID09IDAsICN7eHktY2VsbC1zaXplKCRzaXplKX0sIGNhbGMoI3t4eS1jZWxsLXNpemUoJHNpemUpfSAtICN7cmVtLWNhbGMoJG1hcmdpbi1ndXR0ZXIpfSkpO1xuICAgICN7JGRpcmVjdGlvbn06ICR2YWw7XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBjZWxsIGZvciB5b3VyIGdyaWQuXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkc2l6ZSBbZnVsbF0gLSBUaGUgc2l6ZSBvZiB5b3VyIGNlbGwuIENhbiBiZSBgZnVsbGAgKGRlZmF1bHQpIGZvciAxMDAlIHdpZHRoLCBgYXV0b2AgdG8gdXNlIHVwIGF2YWlsYWJsZSBzcGFjZSBhbmQgYHNocmlua2AgdG8gdXNlIHVwIG9ubHkgcmVxdWlyZWQgc3BhY2UuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZ3V0dGVyLW91dHB1dCBbdHJ1ZV0gLSBXaGV0aGVyIG9yIG5vdCB0byBvdXRwdXQgZ3V0dGVyc1xuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLW1hcmdpbi1ndXR0ZXJzXSAtIE1hcCBvciBzaW5nbGUgdmFsdWUgZm9yIGd1dHRlcnMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZ3V0dGVyLXR5cGUgW21hcmdpbl0gLSBNYXAgb3Igc2luZ2xlIHZhbHVlIGZvciBndXR0ZXJzLlxuLy8vIEBwYXJhbSB7TGlzdH0gJGd1dHRlci1wb3NpdGlvbiBbcmlnaHQgbGVmdF0gLSBUaGUgcG9zaXRpb24gdG8gYXBwbHkgZ3V0dGVycyB0by4gQWNjZXB0cyBgdG9wYCwgYGJvdHRvbWAsIGBsZWZ0YCwgYHJpZ2h0YCBpbiBhbnkgY29tYmluYXRpb24uXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRicmVha3BvaW50IFtudWxsXSAtIFRoZSBuYW1lIG9mIHRoZSBicmVha3BvaW50IHNpemUgaW4geW91ciBndXR0ZXJzIG1hcCB0byBnZXQgdGhlIHNpemUgZnJvbS4gSWYgdXNpbmcgd2l0aCB0aGUgYGJyZWFrcG9pbnQoKWAgbWl4aW4gdGhpcyB3aWxsIGJlIHNldCBhdXRvbWF0aWNhbGx5IHVubGVzcyBtYW51YWxseSBlbnRlcmVkLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHZlcnRpY2FsIFtmYWxzZV0gLSBTZXQgdG8gdHJ1ZSB0byBvdXRwdXQgdmVydGljYWwgKGhlaWdodCkgc3R5bGVzIHJhdGhlciB0aGFuIHdpZHRocy5cbkBtaXhpbiB4eS1jZWxsKFxuICAkc2l6ZTogZnVsbCxcbiAgJGd1dHRlci1vdXRwdXQ6IHRydWUsXG4gICRndXR0ZXJzOiAkZ3JpZC1tYXJnaW4tZ3V0dGVycyxcbiAgJGd1dHRlci10eXBlOiBtYXJnaW4sXG4gICRndXR0ZXItcG9zaXRpb246IHJpZ2h0IGxlZnQsXG4gICRicmVha3BvaW50OiBudWxsLFxuICAkdmVydGljYWw6IGZhbHNlXG4pIHtcbiAgQGlmKCRicmVha3BvaW50ID09IG51bGwpIHtcbiAgICAvLyBJZiBgJGJwLXNpemVgIGlzIGF2YWlsYWJsZSB0aGVuIHVzZSB0aGlzLCBvdGhlcndpc2UgcmV2ZXJ0IHRvIHRoZSBzbWFsbGVzdCBicC5cbiAgICBAaWYodmFyaWFibGUtZXhpc3RzKC16Zi1zaXplKSBhbmQgdHlwZS1vZigkLXpmLXNpemUpICE9ICdudW1iZXInKSBhbmQgJC16Zi1zaXplICE9IG51bGwge1xuICAgICAgJGJyZWFrcG9pbnQ6ICQtemYtc2l6ZTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJGJyZWFrcG9pbnQ6ICQtemYtemVyby1icmVha3BvaW50O1xuICAgIH1cbiAgfVxuXG4gIC8vIEdldCBvdXIgZ3V0dGVycyBmcm9tIG1hcCBpZiBhdmFpbGFibGUsIGlmIG5vdCBtYXAganVzdCByZXR1cm4gdGhlIHZhbHVlLlxuICAkZ3V0dGVyOiAtemYtZ2V0LWJwLXZhbCgkZ3V0dGVycywgJGJyZWFrcG9pbnQpO1xuXG4gIC8vIEJhc2UgZmxleCBwcm9wZXJ0aWVzXG4gIEBpbmNsdWRlIHh5LWNlbGwtYmFzZSgkc2l6ZSk7XG5cbiAgQGlmKCRndXR0ZXItdHlwZSA9PSAnbWFyZ2luJykge1xuICAgIEBpbmNsdWRlIC14eS1jZWxsLXByb3BlcnRpZXMoJHNpemUsICRndXR0ZXIsICR2ZXJ0aWNhbCk7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBpbmNsdWRlIC14eS1jZWxsLXByb3BlcnRpZXMoJHNpemUsIDAsICR2ZXJ0aWNhbCk7XG4gIH1cblxuICBAaWYgJGd1dHRlci1vdXRwdXQge1xuICAgIEBpbmNsdWRlIHh5LWd1dHRlcnMoJGd1dHRlciwgJGd1dHRlci10eXBlLCAkZ3V0dGVyLXBvc2l0aW9uKTtcbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIHNpbmdsZSBicmVha3BvaW50IHNpemVkIGdyaWQuIFVzZWQgdG8gZ2VuZXJhdGUgb3VyIGdyaWQgY2xhc3Nlcy5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICRzaXplIFtmdWxsXSAtIFRoZSBzaXplIG9mIHlvdXIgY2VsbC4gQ2FuIGJlIGBmdWxsYCAoZGVmYXVsdCkgZm9yIDEwMCUgd2lkdGgsIGBhdXRvYCB0byB1c2UgdXAgYXZhaWxhYmxlIHNwYWNlIGFuZCBgc2hyaW5rYCB0byB1c2UgdXAgb25seSByZXF1aXJlZCBzcGFjZS5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRndXR0ZXItb3V0cHV0IFt0cnVlXSAtIFdoZXRoZXIgb3Igbm90IHRvIG91dHB1dCBndXR0ZXJzXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkZ3V0dGVycyBbJGdyaWQtbWFyZ2luLWd1dHRlcnNdIC0gTWFwIG9yIHNpbmdsZSB2YWx1ZSBmb3IgZ3V0dGVycy5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRndXR0ZXItdHlwZSBbbWFyZ2luXSAtIE1hcCBvciBzaW5nbGUgdmFsdWUgZm9yIGd1dHRlcnMuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRicmVha3BvaW50IFtudWxsXSAtIFRoZSBuYW1lIG9mIHRoZSBicmVha3BvaW50IHNpemUgaW4geW91ciBndXR0ZXJzIG1hcCB0byBnZXQgdGhlIHNpemUgZnJvbS4gSWYgdXNpbmcgd2l0aCB0aGUgYGJyZWFrcG9pbnQoKWAgbWl4aW4gdGhpcyB3aWxsIGJlIHNldCBhdXRvbWF0aWNhbGx5IHVubGVzcyBtYW51YWxseSBlbnRlcmVkLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHZlcnRpY2FsIFtmYWxzZV0gLSBTZXQgdG8gdHJ1ZSB0byBvdXRwdXQgdmVydGljYWwgKGhlaWdodCkgc3R5bGVzIHJhdGhlciB0aGFuIHdpZHRocy5cbkBtaXhpbiB4eS1jZWxsLXN0YXRpYyhcbiAgJHNpemU6IGZ1bGwsXG4gICRndXR0ZXItb3V0cHV0OiB0cnVlLFxuICAkZ3V0dGVyczogJGdyaWQtbWFyZ2luLWd1dHRlcnMsXG4gICRndXR0ZXItdHlwZTogbWFyZ2luLFxuICAkYnJlYWtwb2ludDogJC16Zi16ZXJvLWJyZWFrcG9pbnQsXG4gICR2ZXJ0aWNhbDogZmFsc2Vcbikge1xuXG4gICRndXR0ZXI6IC16Zi1nZXQtYnAtdmFsKCRndXR0ZXJzLCAkYnJlYWtwb2ludCk7XG4gICRndXR0ZXItcG9zaXRpb246IGlmKCR2ZXJ0aWNhbCA9PSB0cnVlLCB0b3AgYm90dG9tLCBsZWZ0IHJpZ2h0KTtcblxuICBAaWYoJGd1dHRlci10eXBlID09ICdtYXJnaW4nKSB7XG4gICAgQGluY2x1ZGUgLXh5LWNlbGwtcHJvcGVydGllcygkc2l6ZSwgJGd1dHRlciwgJHZlcnRpY2FsKTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQGluY2x1ZGUgLXh5LWNlbGwtcHJvcGVydGllcygkc2l6ZSwgMCwgJHZlcnRpY2FsKTtcbiAgfVxuXG4gIC8vIElmIHdlIHdhbnQgdG8gb3V0cHV0IHRoZSBndXR0ZXJzXG4gIEBpZigkZ3V0dGVyLW91dHB1dCkge1xuICAgIC8vIFRPRE86IEZpZ3VyZSBvdXQgaWYgd2UgbmVlZCB0byBwYXNzIGJyZWFrcG9pbnQgaW4gaGVyZSB0b28uXG4gICAgQGluY2x1ZGUgeHktZ3V0dGVycygkZ3V0dGVyLCAkZ3V0dGVyLXR5cGUsICRndXR0ZXItcG9zaXRpb24pO1xuICB9XG59XG4iLCIvLy8gTW9kaWZpZXMgYSBncmlkIHRvIGdpdmUgaXQgXCJmcmFtZVwiIGJlaGF2aW9yIChubyBvdmVyZmxvdywgbm8gd3JhcCwgc3RyZXRjaCBiZWhhdmlvcilcbi8vL1xuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHZlcnRpY2FsIFtmYWxzZV0gLSBJcyBncmlkIHZlcnRpY2FsIG9yIGhvcml6b250YWwuIFNob3VsZCBtYXRjaCBncmlkLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJG5lc3RlZCBbZmFsc2VdIC0gSXMgZ3JpZCBuZXN0ZWQgb3Igbm90LiBJZiBuZXN0ZWQgaXMgdHJ1ZSB0aGlzIHNldHMgdGhlIGZyYW1lIHRvIDEwMCUgaGVpZ2h0LCBvdGhlcndpc2Ugd2lsbCBiZSAxMDB2aC5cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFtudWxsXSAtIE1hcCBvciBzaW5nbGUgdmFsdWUgZm9yIGd1dHRlcnMuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRicmVha3BvaW50IFtudWxsXSAtIFRoZSBuYW1lIG9mIHRoZSBicmVha3BvaW50IHNpemUgaW4geW91ciBndXR0ZXJzIG1hcCB0byBnZXQgdGhlIHNpemUgZnJvbS5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRpbmNsdWRlLWJhc2UgW3RydWVdIC0gSW5jbHVkZSB0aGUgYmFzZSBzdHlsZXMgdGhhdCBkb24ndCB2YXJ5IHBlciBicmVha3BvaW50LlxuQG1peGluIHh5LWdyaWQtZnJhbWUoXG4gICR2ZXJ0aWNhbDogZmFsc2UsXG4gICRuZXN0ZWQ6IGZhbHNlLFxuICAkZ3V0dGVyczogbnVsbCxcbiAgJGJyZWFrcG9pbnQ6IG51bGwsXG4gICRpbmNsdWRlLWJhc2U6IHRydWVcbikge1xuXG4gIEBpZiAkaW5jbHVkZS1iYXNlIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgfVxuXG4gIEBpZiAkYnJlYWtwb2ludCA9PSBudWxsIGFuZCB0eXBlLW9mKCRndXR0ZXJzKSA9PSAnbWFwJyB7XG4gICAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCgpIHtcbiAgICAgIEBpbmNsdWRlIHh5LWdyaWQtZnJhbWUoJHZlcnRpY2FsLCAkbmVzdGVkLCAkZ3V0dGVycywgJC16Zi1zaXplLCBmYWxzZSk7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICAvLyBHZXQgb3VyIGd1dHRlcnMgaWYgYXBwbGljYWJsZVxuICAgICRndXR0ZXI6IC16Zi1nZXQtYnAtdmFsKCRndXR0ZXJzLCAkYnJlYWtwb2ludCk7XG5cbiAgICAvLyBJZiB3ZSBoYXZlIGEgZ3V0dGVyLCBhZGQgaXQgdG8gdGhlIHdpZHRoL2hlaWdodFxuICAgIEBpZiAkZ3V0dGVyIHtcbiAgICAgIEBpZiAkdmVydGljYWwgPT0gdHJ1ZSB7XG4gICAgICAgICR1bml0OiBpZigkbmVzdGVkID09IHRydWUsIDEwMCUsIDEwMHZoKTtcbiAgICAgICAgJGd1dHRlcjogcmVtLWNhbGMoJGd1dHRlcik7XG4gICAgICAgIGhlaWdodDogY2FsYygjeyR1bml0fSArICN7JGd1dHRlcn0pO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgICR1bml0OiBpZigkbmVzdGVkID09IHRydWUsIDEwMCUsIDEwMHZ3KTtcbiAgICAgICAgJGd1dHRlcjogcmVtLWNhbGMoJGd1dHRlcik7XG4gICAgICAgIHdpZHRoOiBjYWxjKCN7JHVuaXR9ICsgI3skZ3V0dGVyfSk7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEBpZiAkdmVydGljYWwgPT0gdHJ1ZSB7XG4gICAgICAgIGhlaWdodDogaWYoJG5lc3RlZCA9PSB0cnVlLCAxMDAlLCAxMDB2aCk7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgd2lkdGg6IGlmKCRuZXN0ZWQgPT0gdHJ1ZSwgMTAwJSwgMTAwdncpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLy8gTW9kaWZpZXMgYSBjZWxsIHRvIGdpdmUgaXQgXCJibG9ja1wiIGJlaGF2aW9yIChvdmVyZmxvdyBhdXRvLCBpbmVydGlhbCBzY3JvbGxpbmcpXG4vLy9cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICR2ZXJ0aWNhbCBbZmFsc2VdIC0gSXMgZ3JpZCB2ZXJ0aWNhbCBvciBob3Jpem9udGFsLiBTaG91bGQgbWF0Y2ggZ3JpZC5cbkBtaXhpbiB4eS1jZWxsLWJsb2NrKFxuICAkdmVydGljYWw6IGZhbHNlXG4pIHtcbiAgJHByb3BlcnR5OiBpZigkdmVydGljYWwgPT0gdHJ1ZSwgJ292ZXJmbG93LXknLCAnb3ZlcmZsb3cteCcpO1xuXG4gIEBpZiAkdmVydGljYWwgPT0gdHJ1ZSB7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICB9IEBlbHNlIHtcbiAgICBvdmVyZmxvdy14OiBhdXRvO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgfVxuXG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbiAgLW1zLW92ZXJmbG93LXN0eXBlOiAtbXMtYXV0b2hpZGluZy1zY3JvbGxiYXI7XG59XG5cbi8vLyBDb250YWluZXIgZm9yIGluc2lkZSBhIGdyaWQgZnJhbWUgY29udGFpbmluZyBtdWx0aXBsZSBibG9ja3MuIFR5cGljYWxseSB1c2VkXG4vLy8gYXMgYSBtb2RpZmllciBmb3IgYSBgLmNlbGxgIHRvIGFsbG93IHRoZSBjZWxsIHRvIHBhc3MgYWxvbmcgZmxleCBzaXppbmdcbi8vLyBjb25zdHJhaW50cyAvIGZyb20gcGFyZW50cyB0byBjaGlsZHJlbi5cbkBtaXhpbiB4eS1jZWxsLWJsb2NrLWNvbnRhaW5lcigpIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgbWF4LWhlaWdodDogMTAwJTtcblxuICA+IC5ncmlkLXgge1xuICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHh5LWdyaWRcbi8vLy9cblxuLy8vIE9mZnNldHMgYSBjb2x1bW4gdG8gdGhlIHJpZ2h0L2JvdHRvbSBieSBgJG5gIGNvbHVtbnMuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkbiAtIFNpemUgdG8gb2Zmc2V0IGJ5LiBZb3UgY2FuIHBhc3MgaW4gYW55IHZhbHVlIGFjY2VwdGVkIGJ5IHRoZSBgemYtY2VsbCgpYCBtaXhpbiwgc3VjaCBhcyBgNmAsIGA1MCVgLCBvciBgMSBvZiAyYC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICR2ZXJ0aWNhbCBbZmFsc2VdIFNldHMgdGhlIGRpcmVjdGlvbiBvZiB0aGUgb2Zmc2V0LiBJZiBzZXQgdG8gdHJ1ZSB3aWxsIGFwcGx5IG1hcmdpbi10b3AgaW5zdGVhZC5cbkBtaXhpbiB4eS1jZWxsLW9mZnNldChcbiAkbixcbiAkZ3V0dGVyczogJGdyaWQtbWFyZ2luLWd1dHRlcnMsXG4gJGd1dHRlci10eXBlOiBtYXJnaW4sXG4gJGJyZWFrcG9pbnQ6ICQtemYtemVyby1icmVha3BvaW50LFxuICR2ZXJ0aWNhbDogZmFsc2Vcbikge1xuICAkZGlyZWN0aW9uOiBpZigkdmVydGljYWwsICd0b3AnLCAkZ2xvYmFsLWxlZnQpO1xuXG4gIEBpbmNsdWRlIC16Zi1icmVha3BvaW50LXZhbHVlKCRicmVha3BvaW50LCAkZ3V0dGVycykge1xuICAgICRndXR0ZXI6IHJlbS1jYWxjKCQtemYtYnAtdmFsdWUpIC8gMjtcbiAgICAkc2l6ZTogaWYoJGd1dHRlci10eXBlID09ICdtYXJnaW4nLCBjYWxjKCN7eHktY2VsbC1zaXplKCRuKX0gKyAjeyRndXR0ZXJ9KSwgI3t4eS1jZWxsLXNpemUoJG4pfSk7XG5cbiAgICBtYXJnaW4tI3skZGlyZWN0aW9ufTogI3skc2l6ZX07XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHh5LWdyaWRcbi8vLy9cblxuLy8vIFNpemVzIGNoaWxkIGVsZW1lbnRzIHNvIHRoYXQgYCRuYCBudW1iZXIgb2YgaXRlbXMgYXBwZWFyIG9uIGVhY2ggcm93LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRuIC0gTnVtYmVyIG9mIGVsZW1lbnRzIHRvIGRpc3BsYXkgcGVyIHJvdy5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHNlbGVjdG9yIFsnLmNlbGwnXSAtIFNlbGVjdG9yKHMpIHRvIHVzZSBmb3IgY2hpbGQgZWxlbWVudHMuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZ3V0dGVyLW91dHB1dCBbdHJ1ZV0gLSBXaGV0aGVyIG9yIG5vdCB0byBvdXRwdXQgZ3V0dGVyc1xuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLW1hcmdpbi1ndXR0ZXJzXSAtIE1hcCBvciBzaW5nbGUgdmFsdWUgZm9yIGd1dHRlcnMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZ3V0dGVyLXR5cGUgW21hcmdpbl0gLSBUeXBlIG9mIGd1dHRlciB0byBvdXRwdXQuIEFjY2VwdHMgYG1hcmdpbmAgb3IgYHBhZGRpbmdgLlxuLy8vIEBwYXJhbSB7TGlzdH0gJGd1dHRlci1wb3NpdGlvbiBbcmlnaHQgbGVmdF0gLSBUaGUgcG9zaXRpb24gdG8gYXBwbHkgZ3V0dGVycyB0by4gQWNjZXB0cyBgdG9wYCwgYGJvdHRvbWAsIGBsZWZ0YCwgYHJpZ2h0YCBpbiBhbnkgY29tYmluYXRpb24uXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkdmVydGljYWwgW2ZhbHNlXSAtIFNldCB0byB0cnVlIHRvIG91dHB1dCB2ZXJ0aWNhbCAoaGVpZ2h0KSBzdHlsZXMgcmF0aGVyIHRoYW4gd2lkdGhzLlxuQG1peGluIHh5LWdyaWQtbGF5b3V0KFxuICAkbixcbiAgJHNlbGVjdG9yOiAnLmNlbGwnLFxuICAkZ3V0dGVyLW91dHB1dDogdHJ1ZSxcbiAgJGd1dHRlcnM6ICRncmlkLW1hcmdpbi1ndXR0ZXJzLFxuICAkZ3V0dGVyLXR5cGU6IG1hcmdpbixcbiAgJGd1dHRlci1wb3NpdGlvbjogcmlnaHQgbGVmdCxcbiAgJGJyZWFrcG9pbnQ6ICQtemYtemVyby1icmVha3BvaW50LFxuICAkdmVydGljYWw6IGZhbHNlXG4pIHtcbiAgJHNpemU6IHBlcmNlbnRhZ2UoMS8kbik7XG5cbiAgJiA+ICN7JHNlbGVjdG9yfSB7XG4gICAgQGluY2x1ZGUgeHktY2VsbCgkc2l6ZSwgJGd1dHRlci1vdXRwdXQsICRndXR0ZXJzLCAkZ3V0dGVyLXR5cGUsICRndXR0ZXItcG9zaXRpb24sICRicmVha3BvaW50LCAkdmVydGljYWwpO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB4eS1ncmlkXG4vLy8vXG5cbi8vLyBDb2xsYXBzZXMgdGhlIGdyaWQgYSBjZWxscyB3aXRoaW4gaXQuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHNlbGVjdG9yIFsuY2VsbF0gLSBUaGUgY2hpbGQgZWxlbWVudCB0byByZW1vdmUgdGhlIGd1dHRlciBmcm9tLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGd1dHRlci10eXBlIFttYXJnaW5dIC0gVGhlIHR5cGUgb2YgZ3V0dGVyIHRvIHJlbW92ZS5cbi8vLyBAcGFyYW0ge0xpc3R9ICRndXR0ZXItcG9zaXRpb24gW3JpZ2h0IGxlZnRdIC0gVGhlIHBvc2l0aW9ucyB0byByZW1vdmUgZ3V0dGVycyBmcm9tLiBBY2NlcHRzIGB0b3BgLCBgYm90dG9tYCwgYGxlZnRgLCBgcmlnaHRgIGluIGFueSBjb21iaW5hdGlvbi5cbkBtaXhpbiB4eS1ncmlkLWNvbGxhcHNlKFxuICAkc2VsZWN0b3I6ICcuY2VsbCcsXG4gICRndXR0ZXItdHlwZTogbWFyZ2luLFxuICAkZ3V0dGVyLXBvc2l0aW9uOiByaWdodCBsZWZ0LFxuICAkbWluLWJyZWFrcG9pbnQ6ICQtemYtemVyby1icmVha3BvaW50XG4pIHtcbiAgLy8gRmlyc3QsIGxldHMgbmVnYXRlIGFueSBtYXJnaW5zIG9uIHRoZSB0b3AgbGV2ZWxcbiAgQGlmICgkZ3V0dGVyLXR5cGUgPT0gJ21hcmdpbicpIHtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1pbi1icmVha3BvaW50KSB7XG4gICAgICBAZWFjaCAkdmFsdWUgaW4gJGd1dHRlci1wb3NpdGlvbiB7XG4gICAgICAgIG1hcmdpbi0jeyR2YWx1ZX06IDA7XG4gICAgICB9XG5cbiAgICAgID4gI3skc2VsZWN0b3J9IHtcbiAgICAgICAgQGVhY2ggJHZhbHVlIGluICRndXR0ZXItcG9zaXRpb24ge1xuICAgICAgICAgIG1hcmdpbi0jeyR2YWx1ZX06IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAkZXhjbHVkZWQtYnBzOiAtemYtYnJlYWtwb2ludHMtbGVzcy10aGFuKCRtaW4tYnJlYWtwb2ludCk7XG5cbiAgICAvLyBPdXRwdXQgbmV3IHdpZHRocyB0byBub3QgaW5jbHVkZSBndXR0ZXJzXG4gICAgQGVhY2ggJGJwIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgICAgQGlmKHNsLWNvbnRhaW4oJGV4Y2x1ZGVkLWJwcywgJGJwKSkge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRtaW4tYnJlYWtwb2ludCkge1xuICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGdyaWQtY29sdW1ucyB7XG4gICAgICAgICAgICAvLyBTaXppbmcgKHBlcmNlbnRhZ2UpXG4gICAgICAgICAgICA+IC4jeyRicH0tI3skaX0ge1xuICAgICAgICAgICAgICBAaW5jbHVkZSB4eS1jZWxsLXN0YXRpYygkaSwgJGd1dHRlci1vdXRwdXQ6IGZhbHNlLCAkZ3V0dGVyLXR5cGU6IHBhZGRpbmcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGJwKSB7XG4gICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZ3JpZC1jb2x1bW5zIHtcbiAgICAgICAgICAgIC8vIFNpemluZyAocGVyY2VudGFnZSlcbiAgICAgICAgICAgID4gLiN7JGJwfS0jeyRpfSB7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIHh5LWNlbGwtc3RhdGljKCRpLCAkZ3V0dGVyLW91dHB1dDogZmFsc2UsICRndXR0ZXItdHlwZTogcGFkZGluZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IFxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRtaW4tYnJlYWtwb2ludCkge1xuICAgICAgQGVhY2ggJHZhbHVlIGluICRndXR0ZXItcG9zaXRpb24ge1xuICAgICAgICBtYXJnaW4tI3skdmFsdWV9OiAwO1xuICAgICAgfVxuXG4gICAgICA+ICN7JHNlbGVjdG9yfSB7XG4gICAgICAgIEBlYWNoICR2YWx1ZSBpbiAkZ3V0dGVyLXBvc2l0aW9uIHtcbiAgICAgICAgICBwYWRkaW5nLSN7JHZhbHVlfTogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgeHktZ3JpZFxuLy8vL1xuXG4vLyBNYXJnaW4gR3JpZCBjbGFzc2VzXG5AbWl4aW4geHktYmFzZS1ncmlkLWNsYXNzZXMge1xuXG4gIC8vIEdyaWQgQ29udGFpbmVyXG4gIC5ncmlkLWNvbnRhaW5lciB7XG4gICAgQGluY2x1ZGUgeHktZ3JpZC1jb250YWluZXI7XG5cbiAgICAmLmZsdWlkIHtcbiAgICAgIEBpbmNsdWRlIHh5LWdyaWQtY29udGFpbmVyKDEwMCUpO1xuICAgIH1cblxuICAgICYuZnVsbCB7XG4gICAgICBAaW5jbHVkZSB4eS1ncmlkLWNvbnRhaW5lcigxMDAlLCAwKTtcbiAgICB9XG4gIH1cblxuICAvLyBCYXNlIGdyaWQgc3R5bGVzXG4gIC5ncmlkLXgge1xuICAgIEBpbmNsdWRlIHh5LWdyaWQ7XG4gIH1cblxuICAuY2VsbCB7XG4gICAgQGluY2x1ZGUgeHktY2VsbC1iYXNlKCk7XG4gICAgQGluY2x1ZGUgeHktY2VsbC1zdGF0aWMoJGdyaWQtY29sdW1ucywgZmFsc2UsICRndXR0ZXItdHlwZTogcGFkZGluZyk7XG5cbiAgICAmLmF1dG8ge1xuICAgICAgQGluY2x1ZGUgeHktY2VsbC1iYXNlKGF1dG8pO1xuICAgIH1cblxuICAgICYuc2hyaW5rIHtcbiAgICAgIEBpbmNsdWRlIHh5LWNlbGwtYmFzZShzaHJpbmspO1xuICAgIH1cblxuICB9XG4gIC5ncmlkLXgge1xuICAgID4gLmF1dG8ge1xuICAgICAgQGluY2x1ZGUgeHktY2VsbC1zdGF0aWMoYXV0bywgZmFsc2UpO1xuICAgIH1cblxuICAgID4gLnNocmluayB7XG4gICAgICBAaW5jbHVkZSB4eS1jZWxsLXN0YXRpYyhzaHJpbmssIGZhbHNlKTtcbiAgICB9XG4gIH1cblxuICAvLyBBdXRvIHdpZHRoXG4gIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQoKSB7XG4gICAgLy8gVGhpcyBpcyBhIGJpdCBvZiBhIGhhY2svd29ya2Fyb3VuZCwgc2VlIHRoZXNlIGlzc3VlcyAmIFBScyBmb3IgdGhlIGJhY2tzdG9yeTpcbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20venVyYi9mb3VuZGF0aW9uLXNpdGVzL2lzc3Vlcy8xMDI0NFxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS96dXJiL2ZvdW5kYXRpb24tc2l0ZXMvcHVsbC8xMDIyMiBhbmRcbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20venVyYi9mb3VuZGF0aW9uLXNpdGVzL3B1bGwvMTAxNjRcbiAgICAuZ3JpZC14IHtcbiAgICAgICRzdHI6IFwiPiAuI3skLXpmLXNpemV9LXNocmluaywgPiAuI3skLXpmLXNpemV9LWZ1bGxcIjtcbiAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGdyaWQtY29sdW1ucyB7XG4gICAgICAgICRzdHI6ICRzdHIgKyBcIiwgPiAuI3skLXpmLXNpemV9LSN7JGl9XCJcbiAgICAgIH1cbiAgICAgICN7JHN0cn0ge1xuICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQoKSB7XG4gICAgQGlmIG5vdCgkLXpmLXNpemUgPT0gc21hbGwpIHtcbiAgICAgIC5ncmlkLXggPiAuI3skLXpmLXNpemV9LWF1dG8ge1xuICAgICAgICBAaW5jbHVkZSB4eS1jZWxsLWJhc2UoYXV0byk7XG4gICAgICAgIEBpbmNsdWRlIHh5LWNlbGwtc3RhdGljKGF1dG8sIGZhbHNlKTtcbiAgICAgIH1cblxuICAgICAgLmdyaWQteCA+IC4jeyQtemYtc2l6ZX0tc2hyaW5rIHtcbiAgICAgICAgQGluY2x1ZGUgeHktY2VsbC1iYXNlKHNocmluayk7XG4gICAgICAgIEBpbmNsdWRlIHh5LWNlbGwtc3RhdGljKHNocmluaywgZmFsc2UpO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGdyaWQtY29sdW1ucyB7XG4gICAgICAvLyBTaXppbmcgKHBlcmNlbnRhZ2UpXG4gICAgICAuZ3JpZC14ID4gLiN7JC16Zi1zaXplfS0jeyRpfSB7XG4gICAgICAgIEBpbmNsdWRlIHh5LWNlbGwtc3RhdGljKCRpLCBmYWxzZSwgJGd1dHRlci10eXBlOiBwYWRkaW5nKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBSZXNldCB3aWR0aCB3aGVuIHVzaW5nIGAuZ3JpZC1tYXJnaW4teGAgbm90IG9uIGAuZ3JpZC14YFxuICAuZ3JpZC1tYXJnaW4teDpub3QoLmdyaWQteCkgPiAuY2VsbCB7XG4gICAgd2lkdGg6IGF1dG87XG4gIH1cblxuICAvLyBSZXNldCBoZWlnaHQgd2hlbiB1c2luZyBgLmdyaWQtbWFyZ2luLXlgIG5vdCBvbiBgLmdyaWQteWBcbiAgLmdyaWQtbWFyZ2luLXk6bm90KC5ncmlkLXkpID4gLmNlbGwge1xuICAgIGhlaWdodDogYXV0bztcbiAgfVxufVxuXG5AbWl4aW4gLXh5LWJyZWFrcG9pbnQtY2VsbC1jbGFzc2VzKCRjbGFzcy1icmVha3BvaW50LCAkZ3V0dGVyLWJyZWFrcG9pbnQsICR2ZXJ0aWNhbCkge1xuICAkcHJlZml4OiBpZigkY2xhc3MtYnJlYWtwb2ludCA9PSAkLXpmLXplcm8tYnJlYWtwb2ludCwgJycsICcjeyRjbGFzcy1icmVha3BvaW50fS0nKTtcbiAgPiAuI3skcHJlZml4fWF1dG8ge1xuICAgIEBpbmNsdWRlIHh5LWNlbGwtc3RhdGljKGF1dG8sIGZhbHNlLCAkYnJlYWtwb2ludDogJGd1dHRlci1icmVha3BvaW50LCAkdmVydGljYWw6ICR2ZXJ0aWNhbCk7XG4gIH1cblxuICA+IC4jeyRwcmVmaXh9c2hyaW5rIHtcbiAgICBAaW5jbHVkZSB4eS1jZWxsLXN0YXRpYyhzaHJpbmssIGZhbHNlLCAkYnJlYWtwb2ludDogJGd1dHRlci1icmVha3BvaW50LCAkdmVydGljYWw6ICR2ZXJ0aWNhbCk7XG4gIH1cblxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRncmlkLWNvbHVtbnMge1xuICAgIC8vIFNpemluZyAocGVyY2VudGFnZSlcbiAgICAkY2xhc3NuYW1lOiBpZigkdmVydGljYWwsICcuI3skY2xhc3MtYnJlYWtwb2ludH0tI3skaX0nLCAnLiN7JGNsYXNzLWJyZWFrcG9pbnR9LSN7JGl9Jyk7XG5cbiAgICA+ICN7JGNsYXNzbmFtZX0ge1xuICAgICAgQGluY2x1ZGUgeHktY2VsbC1zdGF0aWMoJGksIGZhbHNlLCAkYnJlYWtwb2ludDogJGd1dHRlci1icmVha3BvaW50LCAkdmVydGljYWw6ICR2ZXJ0aWNhbCk7XG4gICAgfVxuICB9XG59XG5cbi8vIE1hcmdpbiBHcmlkIGNsYXNzZXNcbkBtaXhpbiB4eS1tYXJnaW4tZ3JpZC1jbGFzc2VzKFxuICAkZ3V0dGVyLXBvc2l0aW9uOiBsZWZ0IHJpZ2h0LFxuICAkdmVydGljYWw6IGZhbHNlLFxuICAkd3JhcHBpbmctc2VsZWN0b3I6ICcuZ3JpZC1tYXJnaW4teCdcbil7XG4gICN7JHdyYXBwaW5nLXNlbGVjdG9yfSB7XG4gICAgQGluY2x1ZGUgeHktZ3V0dGVycygkbmVnYXRpdmU6IHRydWUsICRndXR0ZXItcG9zaXRpb246ICRndXR0ZXItcG9zaXRpb24pO1xuXG4gICAgLy8gQmFzZSBjZWxsIHN0eWxlc1xuICAgID4gLmNlbGwge1xuICAgICAgQGluY2x1ZGUgeHktY2VsbC1zdGF0aWMoJHZlcnRpY2FsOiAkdmVydGljYWwpO1xuICAgIH1cblxuICAgIC8vIGJhc2Ugc3R5bGVzIG5lZWQgdG8gYWxsIGJlIGJlZm9yZSB0aGUgYXV0byBhbmQgc2hyaW5rIHN0eWxlc1xuICAgIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQoKSB7XG4gICAgICBAaWYodHlwZS1vZigkZ3JpZC1tYXJnaW4tZ3V0dGVycykgPT0gJ21hcCcgYW5kIG1hcC1oYXMta2V5KCRncmlkLW1hcmdpbi1ndXR0ZXJzLCAkLXpmLXNpemUpIGFuZCAkLXpmLXNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQpIHtcbiAgICAgICAgPiAuY2VsbCB7XG4gICAgICAgICAgQGluY2x1ZGUgeHktY2VsbC1zdGF0aWMoJGJyZWFrcG9pbnQ6ICQtemYtc2l6ZSwgJHZlcnRpY2FsOiAkdmVydGljYWwpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCgpIHtcblxuICAgICAgLy8gVGhpcyBpcyBwdXJlbHkgZm9yIHJlc3BvbnNpdmUgZ3V0dGVycyAtIHRoZSBtYXJnaW4gZ3JpZCBoYXMgdG8gZ28gYmFjayBhbmQgYWRqdXN0IHdpZHRocyAob3IgaGVpZ2h0cylcbiAgICAgIC8vIGZvciBwcmlvciBicmVha3BvaW50cyBiYXNlZCBvbiB0aGUgcmVzcG9uc2l2ZSBndXR0ZXIuXG4gICAgICBAaWYodHlwZS1vZigkZ3JpZC1tYXJnaW4tZ3V0dGVycykgPT0gJ21hcCcgYW5kIG1hcC1oYXMta2V5KCRncmlkLW1hcmdpbi1ndXR0ZXJzLCAkLXpmLXNpemUpKSB7XG4gICAgICAgIEBlYWNoICRicCBpbiAtemYtYnJlYWtwb2ludHMtbGVzcy10aGFuKCQtemYtc2l6ZSkge1xuICAgICAgICAgIEBpZihtYXAtaGFzLWtleSgkZ3JpZC1tYXJnaW4tZ3V0dGVycywgJGJwKSkge1xuICAgICAgICAgICAgQGluY2x1ZGUgLXh5LWJyZWFrcG9pbnQtY2VsbC1jbGFzc2VzKCRicCwgJC16Zi1zaXplLCAkdmVydGljYWwpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBAaW5jbHVkZSAteHktYnJlYWtwb2ludC1jZWxsLWNsYXNzZXMoJC16Zi1zaXplLCAkLXpmLXNpemUsICR2ZXJ0aWNhbCk7XG4gICAgfVxuICB9XG59XG5cbi8vIFBhZGRpbmcgR3JpZCBjbGFzc2VzXG5AbWl4aW4geHktcGFkZGluZy1ncmlkLWNsYXNzZXMge1xuICAuZ3JpZC1wYWRkaW5nLXgge1xuXG4gICAgLy8gTmVnYXRpdmUgbWFyZ2luIGZvciBuZXN0ZWQgZ3JpZHNcbiAgICAuZ3JpZC1wYWRkaW5nLXgge1xuICAgICAgQGluY2x1ZGUgeHktZ3V0dGVycygkbmVnYXRpdmU6IHRydWUpO1xuICAgIH1cblxuICAgIC8vIE5lZ2F0aXZlIG1hcmdpbiBmb3IgZ3JpZHMgd2l0aGluIGBncmlkLWNvbnRhaW5lci9ncmlkLWNvbnRhaW5lci5mbHVpZGBcbiAgICAvLyBUaGlzIGFsbG93cyBtYXJnaW4gYW5kIHBhZGRpbmcgZ3JpZHMgdG8gbGluZSB1cCB3aXRoIGVhY2hvdGhlclxuICAgIC5ncmlkLWNvbnRhaW5lcjpub3QoLmZ1bGwpID4gJiB7XG4gICAgICBAaW5jbHVkZSB4eS1ndXR0ZXJzKCRuZWdhdGl2ZTogdHJ1ZSk7XG4gICAgfVxuXG4gICAgLy8gQmFzZSBjZWxsIHN0eWxlc1xuICAgID4gLmNlbGwge1xuICAgICAgQGluY2x1ZGUgeHktZ3V0dGVycygkZ3V0dGVyczogJGdyaWQtcGFkZGluZy1ndXR0ZXJzLCAkZ3V0dGVyLXR5cGU6IHBhZGRpbmcpO1xuICAgIH1cbiAgfVxufVxuXG4vLyBCbG9jayBHcmlkIGNsYXNzZXNcbkBtaXhpbiB4eS1ibG9jay1ncmlkLWNsYXNzZXMoJG1hcmdpbi1ncmlkOiB0cnVlLCAkcGFkZGluZy1ncmlkOiB0cnVlKSB7XG4gIEBpZiAkcGFkZGluZy1ncmlkIHtcbiAgICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50IHtcbiAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJHh5LWJsb2NrLWdyaWQtbWF4IHtcbiAgICAgICAgLiN7JC16Zi1zaXplfS11cC0jeyRpfSB7XG4gICAgICAgICAgQGluY2x1ZGUgeHktZ3JpZC1sYXlvdXQoJGksICcuY2VsbCcsIGZhbHNlLCAkZ3V0dGVyLXR5cGU6IHBhZGRpbmcpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGlmICRtYXJnaW4tZ3JpZCB7XG4gICAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCB7XG4gICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICR4eS1ibG9jay1ncmlkLW1heCB7XG4gICAgICAgIC8vIFRoaXMgaXMgcHVyZWx5IGZvciByZXNwb25zaXZlIGd1dHRlcnMgLSB0aGUgbWFyZ2luIGdyaWQgaGFzIHRvIGdvIGJhY2sgYW5kIGFkanVzdCB3aWR0aHMgKG9yIGhlaWdodHMpXG4gICAgICAgIC8vIGZvciBwcmlvciBicmVha3BvaW50cyBiYXNlZCBvbiB0aGUgcmVzcG9uc2l2ZSBndXR0ZXIuXG4gICAgICAgIEBpZih0eXBlLW9mKCRncmlkLW1hcmdpbi1ndXR0ZXJzKSA9PSAnbWFwJyBhbmQgbWFwLWhhcy1rZXkoJGdyaWQtbWFyZ2luLWd1dHRlcnMsICQtemYtc2l6ZSkpIHtcbiAgICAgICAgICBAZWFjaCAkYnAgaW4gLXpmLWJyZWFrcG9pbnRzLWxlc3MtdGhhbigkLXpmLXNpemUpIHtcbiAgICAgICAgICAgIEBpZihtYXAtaGFzLWtleSgkZ3JpZC1tYXJnaW4tZ3V0dGVycywgJGJwKSkge1xuICAgICAgICAgICAgICAuZ3JpZC1tYXJnaW4teC4jeyRicH0tdXAtI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHh5LWdyaWQtbGF5b3V0KCRpLCAnLmNlbGwnLCBmYWxzZSwgJGd1dHRlci10eXBlOiBtYXJnaW4sICRicmVha3BvaW50OiAkYnApO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICR4eS1ibG9jay1ncmlkLW1heCB7XG4gICAgICAgIC5ncmlkLW1hcmdpbi14LiN7JC16Zi1zaXplfS11cC0jeyRpfSB7XG4gICAgICAgICAgQGluY2x1ZGUgeHktZ3JpZC1sYXlvdXQoJGksICcuY2VsbCcsIGZhbHNlLCAkZ3V0dGVyLXR5cGU6IG1hcmdpbiwgJGJyZWFrcG9pbnQ6ICQtemYtc2l6ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gQ29sbGFwc2UgY2xhc3Nlc1xuQG1peGluIHh5LWNvbGxhcHNlLWdyaWQtY2xhc3NlcygkbWFyZ2luLWdyaWQ6IHRydWUsICRwYWRkaW5nLWdyaWQ6IHRydWUpIHtcbiAgQGVhY2ggJGJwIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgIEBpZiAkbWFyZ2luLWdyaWQge1xuICAgICAgLiN7JGJwfS1tYXJnaW4tY29sbGFwc2Uge1xuICAgICAgICBAaW5jbHVkZSB4eS1ncmlkLWNvbGxhcHNlKCRndXR0ZXItdHlwZTogbWFyZ2luLCAkbWluLWJyZWFrcG9pbnQ6ICRicCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGlmICRwYWRkaW5nLWdyaWQge1xuICAgICAgLiN7JGJwfS1wYWRkaW5nLWNvbGxhcHNlIHtcbiAgICAgICAgQGluY2x1ZGUgeHktZ3JpZC1jb2xsYXBzZSgkZ3V0dGVyLXR5cGU6IHBhZGRpbmcsICRtaW4tYnJlYWtwb2ludDogJGJwKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gT2Zmc2V0IGNsYXNzZXNcbkBtaXhpbiB4eS1vZmZzZXQtY2VsbC1jbGFzc2VzIHtcbiAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCB7XG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZ3JpZC1jb2x1bW5zIHtcbiAgICAgIC8vIE9mZnNldHNcbiAgICAgICRvOiAkaSAtIDE7XG5cbiAgICAgIC4jeyQtemYtc2l6ZX0tb2Zmc2V0LSN7JG99IHtcbiAgICAgICAgQGluY2x1ZGUgeHktY2VsbC1vZmZzZXQoJG8sICRndXR0ZXJzOiAkZ3JpZC1wYWRkaW5nLWd1dHRlcnMsICRndXR0ZXItdHlwZTogcGFkZGluZywgJGJyZWFrcG9pbnQ6ICQtemYtc2l6ZSk7XG4gICAgICB9XG5cbiAgICAgIC5ncmlkLW1hcmdpbi14ID4gLiN7JC16Zi1zaXplfS1vZmZzZXQtI3skb30ge1xuICAgICAgICBAaW5jbHVkZSB4eS1jZWxsLW9mZnNldCgkbywgJGJyZWFrcG9pbnQ6ICQtemYtc2l6ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIFZlcnRpY2FsIEdyaWQgY2xhc3Nlc1xuQG1peGluIHh5LXZlcnRpY2FsLWdyaWQtY2xhc3NlcyhcbiAgJG1hcmdpbi1ncmlkOiB0cnVlLFxuICAkcGFkZGluZy1ncmlkOiB0cnVlXG4pIHtcblxuICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50KCkge1xuICAgIEBpZiBub3QoJC16Zi1zaXplID09IHNtYWxsKSB7XG4gICAgfVxuICB9XG5cbiAgLmdyaWQteSB7XG4gICAgQGluY2x1ZGUgeHktZ3JpZCh2ZXJ0aWNhbCwgZmFsc2UpO1xuXG5cbiAgICA+IC5jZWxsIHtcbiAgICAgIEBpbmNsdWRlIHh5LWNlbGwtcmVzZXQoKTtcbiAgICB9XG5cbiAgICA+IC5hdXRvIHtcbiAgICAgIEBpbmNsdWRlIHh5LWNlbGwtc3RhdGljKGF1dG8sIGZhbHNlLCAkYnJlYWtwb2ludDogJC16Zi1zaXplLCAkdmVydGljYWw6IHRydWUpO1xuICAgIH1cblxuICAgID4gLnNocmluayB7XG4gICAgICBAaW5jbHVkZSB4eS1jZWxsLXN0YXRpYyhzaHJpbmssIGZhbHNlLCAkYnJlYWtwb2ludDogJC16Zi1zaXplLCAkdmVydGljYWw6IHRydWUpO1xuICAgIH1cblxuXG4gICAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCgpIHtcbiAgICAgIC8vIFRoaXMgaXMgYSBiaXQgb2YgYSBoYWNrL3dvcmthcm91bmQsIHNlZSB0aGVzZSBpc3N1ZXMgYW5kIFBScyBmb3IgdGhlIGJhY2tzdG9yeTpcbiAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS96dXJiL2ZvdW5kYXRpb24tc2l0ZXMvaXNzdWVzLzEwMjQ0XG4gICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20venVyYi9mb3VuZGF0aW9uLXNpdGVzL3B1bGwvMTAyMjIgYW5kXG4gICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20venVyYi9mb3VuZGF0aW9uLXNpdGVzL3B1bGwvMTAxNjRcbiAgICAgICRzdHI6IFwiPiAuI3skLXpmLXNpemV9LXNocmluaywgPiAuI3skLXpmLXNpemV9LWZ1bGxcIjtcbiAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGdyaWQtY29sdW1ucyB7XG4gICAgICAgICRzdHI6ICRzdHIgKyBcIiwgPiAuI3skLXpmLXNpemV9LSN7JGl9XCJcbiAgICAgIH1cbiAgICAgICN7JHN0cn0ge1xuICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQoKSB7XG4gICAgICBAaWYgbm90KCQtemYtc2l6ZSA9PSBzbWFsbCkge1xuICAgICAgICA+IC4jeyQtemYtc2l6ZX0tYXV0byB7XG4gICAgICAgICAgQGluY2x1ZGUgeHktY2VsbC1iYXNlKGF1dG8pO1xuICAgICAgICAgIEBpbmNsdWRlIHh5LWNlbGwtc3RhdGljKGF1dG8sIGZhbHNlLCAkYnJlYWtwb2ludDogJC16Zi1zaXplLCAkdmVydGljYWw6IHRydWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgPiAuI3skLXpmLXNpemV9LXNocmluayB7XG4gICAgICAgICAgQGluY2x1ZGUgeHktY2VsbC1zdGF0aWMoc2hyaW5rLCBmYWxzZSwgJGJyZWFrcG9pbnQ6ICQtemYtc2l6ZSwgJHZlcnRpY2FsOiB0cnVlKTtcbiAgICAgICAgfVxuXG4gICAgICB9XG5cbiAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGdyaWQtY29sdW1ucyB7XG4gICAgICAgIC8vIFNpemluZyAocGVyY2VudGFnZSlcbiAgICAgICAgPiAuI3skLXpmLXNpemV9LSN7JGl9IHtcbiAgICAgICAgICBAaW5jbHVkZSB4eS1jZWxsLXN0YXRpYygkaSwgZmFsc2UsICR2ZXJ0aWNhbDogdHJ1ZSwgJGd1dHRlci10eXBlOiBwYWRkaW5nKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgfVxuICB9XG5cbiAgQGlmICRwYWRkaW5nLWdyaWQge1xuICAgIC5ncmlkLXBhZGRpbmcteSB7XG4gICAgICAvLyBOZWdhdGl2ZSBtYXJnaW4gZm9yIG5lc3RlZCBncmlkc1xuICAgICAgLmdyaWQtcGFkZGluZy15IHtcbiAgICAgICAgQGluY2x1ZGUgeHktZ3V0dGVycygkbmVnYXRpdmU6IHRydWUsICRndXR0ZXItcG9zaXRpb246IHRvcCBib3R0b20pO1xuICAgICAgfVxuXG4gICAgICAvLyBCYXNlIGNlbGwgc3R5bGVzXG4gICAgICA+IC5jZWxsIHtcbiAgICAgICAgQGluY2x1ZGUgeHktZ3V0dGVycygkZ3V0dGVyczogJGdyaWQtcGFkZGluZy1ndXR0ZXJzLCAkZ3V0dGVyLXR5cGU6IHBhZGRpbmcsICRndXR0ZXItcG9zaXRpb246IHRvcCBib3R0b20pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpZiAkbWFyZ2luLWdyaWQge1xuICAgIEBpbmNsdWRlIHh5LW1hcmdpbi1ncmlkLWNsYXNzZXModG9wIGJvdHRvbSwgdHJ1ZSwgJy5ncmlkLW1hcmdpbi15Jyk7XG4gIH1cblxufVxuXG5AbWl4aW4geHktZnJhbWUtZ3JpZC1jbGFzc2VzKCR2ZXJ0aWNhbC1ncmlkOiB0cnVlLCAkbWFyZ2luLWdyaWQ6IHRydWUpIHtcbiAgLy8gRnJhbWVkIGdyaWQgc3R5bGVzXG4gIC5ncmlkLWZyYW1lIHtcbiAgICBAaW5jbHVkZSB4eS1ncmlkLWZyYW1lO1xuICB9XG5cbiAgLmNlbGwgLmdyaWQtZnJhbWUge1xuICAgIHdpZHRoOiAxMDAlOyAvLyBTYW1lIGFzIGluY2x1ZGUgd2l0aCAkbmVzdGVkLCBidXQgd2l0aCBsZXNzIGNzc1xuICB9XG5cbiAgLmNlbGwtYmxvY2sge1xuICAgIEBpbmNsdWRlIHh5LWNlbGwtYmxvY2soKTtcbiAgfVxuXG4gIC5jZWxsLWJsb2NrLXkge1xuICAgIEBpbmNsdWRlIHh5LWNlbGwtYmxvY2sodHJ1ZSk7XG4gIH1cblxuXG4gIC5jZWxsLWJsb2NrLWNvbnRhaW5lciB7XG4gICAgQGluY2x1ZGUgeHktY2VsbC1ibG9jay1jb250YWluZXIoKTtcbiAgfVxuXG5cbiAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludChmYWxzZSkge1xuXG4gICAgLiN7JC16Zi1zaXplfS1ncmlkLWZyYW1lIHtcbiAgICAgIEBpbmNsdWRlIHh5LWdyaWQtZnJhbWU7XG4gICAgfVxuXG4gICAgLmNlbGwgLiN7JC16Zi1zaXplfS1ncmlkLWZyYW1lIHtcbiAgICAgIHdpZHRoOiAxMDAlOyAvLyBTYW1lIGFzIGluY2x1ZGUgd2l0aCAkbmVzdGVkLCBidXQgd2l0aCBsZXNzIGNzc1xuICAgIH1cblxuICAgIC4jeyQtemYtc2l6ZX0tY2VsbC1ibG9jayB7XG4gICAgICBAaW5jbHVkZSB4eS1jZWxsLWJsb2NrKCk7XG4gICAgfVxuXG4gICAgLiN7JC16Zi1zaXplfS1jZWxsLWJsb2NrLWNvbnRhaW5lciB7XG4gICAgICBAaW5jbHVkZSB4eS1jZWxsLWJsb2NrLWNvbnRhaW5lcigpO1xuICAgIH1cblxuICAgIC4jeyQtemYtc2l6ZX0tY2VsbC1ibG9jay15IHtcbiAgICAgIEBpbmNsdWRlIHh5LWNlbGwtYmxvY2sodHJ1ZSk7XG4gICAgfVxuICB9XG5cbiAgQGlmICR2ZXJ0aWNhbC1ncmlkIHtcbiAgICAuZ3JpZC15IHtcbiAgICAgICYuZ3JpZC1mcmFtZSB7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICBAaW5jbHVkZSB4eS1ncmlkLWZyYW1lKHRydWUpO1xuICAgICAgfVxuXG4gICAgICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50KGZhbHNlKSB7XG4gICAgICAgICYuI3skLXpmLXNpemV9LWdyaWQtZnJhbWUge1xuICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgIEBpbmNsdWRlIHh5LWdyaWQtZnJhbWUodHJ1ZSk7XG4gICAgICAgIH1cblxuICAgICAgfVxuICAgIH1cbiAgICAuY2VsbCB7XG4gICAgICAuZ3JpZC15LmdyaWQtZnJhbWUge1xuICAgICAgICBoZWlnaHQ6IDEwMCU7IC8vIFNhbWUgYXMgaW5jbHVkZSB3aXRoICRuZXN0ZWQsIGJ1dCB3aXRoIGxlc3MgY3NzXG4gICAgICB9XG4gICAgICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50KGZhbHNlKSB7XG4gICAgICAgIC5ncmlkLXkuI3skLXpmLXNpemV9LWdyaWQtZnJhbWUge1xuICAgICAgICAgIGhlaWdodDogMTAwJTsgLy8gU2FtZSBhcyBpbmNsdWRlIHdpdGggJG5lc3RlZCwgYnV0IHdpdGggbGVzcyBjc3NcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAaWYgJG1hcmdpbi1ncmlkIHtcbiAgICBAaW5jbHVkZSB4eS1tYXJnaW4tZ3JpZC1jbGFzc2VzKHRvcCBib3R0b20sIHRydWUsICcuZ3JpZC1tYXJnaW4teScpO1xuICAgIC5ncmlkLWZyYW1lLmdyaWQtbWFyZ2luLXkge1xuICAgICAgQGluY2x1ZGUgeHktZ3JpZC1mcmFtZSh0cnVlLCBmYWxzZSwgJGdyaWQtbWFyZ2luLWd1dHRlcnMsICRpbmNsdWRlLWJhc2U6IGZhbHNlKTtcbiAgICB9XG4gICAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludChmYWxzZSkge1xuICAgICAgLmdyaWQtbWFyZ2luLXkuI3skLXpmLXNpemV9LWdyaWQtZnJhbWUge1xuICAgICAgICBAaW5jbHVkZSB4eS1ncmlkLWZyYW1lKHRydWUsIGZhbHNlLCAkZ3JpZC1tYXJnaW4tZ3V0dGVycywgJC16Zi1zaXplLCBmYWxzZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIEZpbmFsIGNsYXNzZXNcbkBtaXhpbiBmb3VuZGF0aW9uLXh5LWdyaWQtY2xhc3NlcyhcbiAgJGJhc2UtZ3JpZDogdHJ1ZSxcbiAgJG1hcmdpbi1ncmlkOiB0cnVlLFxuICAkcGFkZGluZy1ncmlkOiB0cnVlLFxuICAkYmxvY2stZ3JpZDogdHJ1ZSxcbiAgJGNvbGxhcHNlOiB0cnVlLFxuICAkb2Zmc2V0OiB0cnVlLFxuICAkdmVydGljYWwtZ3JpZDogdHJ1ZSxcbiAgJGZyYW1lLWdyaWQ6IHRydWVcbikge1xuXG4gIC8vIEJhc2UgZ3JpZCBzdHlsZXNcbiAgQGlmKCRiYXNlLWdyaWQpIHtcbiAgICBAaW5jbHVkZSB4eS1iYXNlLWdyaWQtY2xhc3NlcygpO1xuICB9XG5cbiAgLy8gTWFyZ2luIGdyaWRcbiAgQGlmKCRtYXJnaW4tZ3JpZCkge1xuICAgIEBpbmNsdWRlIHh5LW1hcmdpbi1ncmlkLWNsYXNzZXMoKTtcbiAgfVxuXG4gIC8vIFBhZGRpbmcgZ3JpZFxuICBAaWYoJHBhZGRpbmctZ3JpZCkge1xuICAgIEBpbmNsdWRlIHh5LXBhZGRpbmctZ3JpZC1jbGFzc2VzKCk7XG4gIH1cblxuICAvLyBCbG9jayBncmlkXG4gIEBpZigkYmxvY2stZ3JpZCkge1xuICAgIEBpbmNsdWRlIHh5LWJsb2NrLWdyaWQtY2xhc3NlcygkbWFyZ2luLWdyaWQsICRwYWRkaW5nLWdyaWQpO1xuICB9XG5cbiAgLy8gQ29sbGFwc2UgZ3V0dGVyc1xuICBAaWYoJGNvbGxhcHNlKSB7XG4gICAgQGluY2x1ZGUgeHktY29sbGFwc2UtZ3JpZC1jbGFzc2VzKCRtYXJnaW4tZ3JpZCwgJHBhZGRpbmctZ3JpZCk7XG4gIH1cblxuICAvLyBPZmZzZXQgZ3V0dGVyc1xuICBAaWYoJG9mZnNldCkge1xuICAgIEBpbmNsdWRlIHh5LW9mZnNldC1jZWxsLWNsYXNzZXMoKTtcbiAgfVxuXG4gIC8vIFZlcnRpY2FsIGdyaWRcbiAgQGlmKCR2ZXJ0aWNhbC1ncmlkKSB7XG4gICAgQGluY2x1ZGUgeHktdmVydGljYWwtZ3JpZC1jbGFzc2VzKCRtYXJnaW4tZ3JpZCwgJHBhZGRpbmctZ3JpZCk7XG4gIH1cblxuICBAaWYgKCRmcmFtZS1ncmlkKSB7XG4gICAgQGluY2x1ZGUgeHktZnJhbWUtZ3JpZC1jbGFzc2VzKCR2ZXJ0aWNhbC1ncmlkLCAkbWFyZ2luLWdyaWQpXG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHR5cG9ncmFwaHlcbi8vLy9cblxuLy8gQmFzZSB0eXBvZ3JhcGh5IHN0eWxlcyAodGFncyBvbmx5KVxuQGltcG9ydCAnYmFzZSc7XG5cbi8vIFR5cG9ncmFwaHkgaGVscGVyIGNsYXNzZXMgKGNsYXNzZXMgb25seSlcbkBpbXBvcnQgJ2hlbHBlcnMnO1xuXG4vLyBUZXh0IGFsaWdubWVudCBjbGFzc2VzXG5AaW1wb3J0ICdhbGlnbm1lbnQnO1xuXG4vLyBQcmludCBzdHlsZXNcbkBpbXBvcnQgJ3ByaW50JztcblxuQG1peGluIGZvdW5kYXRpb24tdHlwb2dyYXBoeSB7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdHlwb2dyYXBoeS1iYXNlO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXR5cG9ncmFwaHktaGVscGVycztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10ZXh0LWFsaWdubWVudDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1wcmludC1zdHlsZXM7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB0eXBvZ3JhcGh5LWJhc2Vcbi8vLy9cblxuLy8gQmFzZSBUeXBvZ3JhcGh5XG4vLyAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLVxuLy8gVGhlc2UgYXJlIHN0eWxlcyBhcHBsaWVkIHRvIGJhc2ljIEhUTUwgdGFncywgaW5jbHVkaW5nOlxuLy8gICAtIFBhcmFncmFwaHMgPHA+XG4vLyAgIC0gQm9sZC9pdGFsaWNzIDxiPiA8c3Ryb25nPiA8aT4gPGVtPlxuLy8gICAtIFNtYWxsIHRleHQgPHNtYWxsPlxuLy8gICAtIEhlYWRpbmdzIDxoMT4tPGg2PlxuLy8gICAtIEFuY2hvcnMgPGE+XG4vLyAgIC0gRGl2aWRlcnMgPGhyPlxuLy8gICAtIExpc3RzIDx1bD4gPG9sPiA8ZGw+XG4vLyAgIC0gQmxvY2txdW90ZXMgPGJsb2NrcXVvdGU+XG4vLyAgIC0gQ29kZSBibG9ja3MgPGNvZGU+XG4vLyAgIC0gQWJicmV2aWF0aW9ucyA8YWJicj5cbi8vICAgLSBDaXRhdGlvbnMgPGNpdGU+XG4vLyAgIC0gS2V5c3Ryb2tlcyA8a2JkPlxuXG4vLy8gRm9udCBmYW1pbHkgZm9yIGhlYWRlciBlbGVtZW50cy5cbi8vLyBAdHlwZSBTdHJpbmcgfCBMaXN0XG4kaGVhZGVyLWZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgd2VpZ2h0IG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kaGVhZGVyLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHN0eWxlIChlLmcuIGl0YWxpY2l6ZWQpIG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kaGVhZGVyLWZvbnQtc3R5bGU6IG5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc3RhY2sgdXNlZCBmb3IgZWxlbWVudHMgdGhhdCB1c2UgbW9ub3NwYWNlZCB0eXBlLCBzdWNoIGFzIGNvZGUgc2FtcGxlc1xuLy8vIEB0eXBlIFN0cmluZyB8IExpc3RcbiRmb250LWZhbWlseS1tb25vc3BhY2U6IENvbnNvbGFzLCAnTGliZXJhdGlvbiBNb25vJywgQ291cmllciwgbW9ub3NwYWNlICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgaGVhZGVycy5cbi8vLyBAdHlwZSBDb2xvclxuJGhlYWRlci1jb2xvcjogaW5oZXJpdCAhZGVmYXVsdDtcblxuLy8vIExpbmUgaGVpZ2h0IG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kaGVhZGVyLWxpbmVoZWlnaHQ6IDEuNCAhZGVmYXVsdDtcblxuLy8vIEJvdHRvbSBtYXJnaW4gb2YgaGVhZGVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRoZWFkZXItbWFyZ2luLWJvdHRvbTogMC41cmVtICFkZWZhdWx0O1xuXG4vLy8gU3R5bGVzIGZvciBoZWFkaW5ncyBhdCB2YXJpb3VzIHNjcmVlbiBzaXplcy4gRWFjaCBrZXkgaXMgYSBicmVha3BvaW50LCBhbmQgZWFjaCB2YWx1ZSBpcyBhIG1hcCBvZiBoZWFkaW5nIHN0eWxlcy5cbi8vLyBAdHlwZSBNYXBcbiRoZWFkZXItc3R5bGVzOiAoXG4gIHNtYWxsOiAoXG4gICAgJ2gxJzogKCdmb250LXNpemUnOiAyNCksXG4gICAgJ2gyJzogKCdmb250LXNpemUnOiAyMCksXG4gICAgJ2gzJzogKCdmb250LXNpemUnOiAxOSksXG4gICAgJ2g0JzogKCdmb250LXNpemUnOiAxOCksXG4gICAgJ2g1JzogKCdmb250LXNpemUnOiAxNyksXG4gICAgJ2g2JzogKCdmb250LXNpemUnOiAxNiksXG4gICksXG4gIG1lZGl1bTogKFxuICAgICdoMSc6ICgnZm9udC1zaXplJzogNDgpLFxuICAgICdoMic6ICgnZm9udC1zaXplJzogNDApLFxuICAgICdoMyc6ICgnZm9udC1zaXplJzogMzEpLFxuICAgICdoNCc6ICgnZm9udC1zaXplJzogMjUpLFxuICAgICdoNSc6ICgnZm9udC1zaXplJzogMjApLFxuICAgICdoNic6ICgnZm9udC1zaXplJzogMTYpLFxuICApLFxuKSAhZGVmYXVsdDtcblxuLy8gJGhlYWRlci1zdHlsZXMgbWFwIGlzIGJ1aWx0IGZyb20gJGhlYWRlci1zaXplcyBpbiBvcmRlciB0byBlbnN1cmUgZG93bndhcmQgY29tcGF0aWJpbGl0eVxuLy8gd2hlbiAkaGVhZGVyLXNpemVzIGlzIGRlcHJlY2lhdGVkLCAkaGVhZGVyLXN0eWxlcyBuZWVkcyB0byBnZXQgIWRlZmF1bHQgdmFsdWVzIGxpa2Ugc2V0dGluZ3Muc2Nzc1xuQGZ1bmN0aW9uIGJ1aWxkX2Zyb21faGVhZGVyLXNpemVzKCRoZWFkZXItc2l6ZXMpIHtcbiAgQHdhcm4gJ05vdGUsIHRoYXQgJGhlYWRlci1zaXplcyBoYXMgYmVlbiByZXBsYWNlZCB3aXRoICRoZWFkZXItc3R5bGVzLiAkaGVhZGVyLXNpemVzIHN0aWxsIHdvcmtzLCBidXQgaXQgaXMgZ29pbmcgdG8gYmUgZGVwcmVjaWF0ZWQuJztcbiAgJGhlYWRlci1zdHlsZXM6ICgpO1xuICBAZWFjaCAkc2l6ZSwgJGhlYWRlcnMgaW4gJGhlYWRlci1zaXplcyB7XG4gICAgJGhlYWRlci1tYXA6ICgpO1xuICAgIEBlYWNoICRoZWFkZXIsICRmb250LXNpemUgaW4gJGhlYWRlcnMge1xuICAgICAgJGhlYWRlci1tYXA6IG1hcC1tZXJnZSgkaGVhZGVyLW1hcCwgKCRoZWFkZXI6ICgnZm9udC1zaXplJzogJGZvbnQtc2l6ZSkpKTsgIFxuICAgIH1cbiAgICAkaGVhZGVyLXN0eWxlczogbWFwLW1lcmdlKCRoZWFkZXItc3R5bGVzLCAoJHNpemU6ICRoZWFkZXItbWFwKSk7XG4gIH1cbiAgQHJldHVybiAkaGVhZGVyLXN0eWxlcztcbn1cblxuLy8gSWYgaXQgZXhpc3RzICRoZWFkZXJzLXNpemVzIGlzIHVzZWQgdG8gYnVpbGQgJGhlYWRlci1zdHlsZXMuIFNlZSB0aGUgZG9jdW1lbnRhdGlvbi5cbkBpZiB2YXJpYWJsZS1leGlzdHMoaGVhZGVyLXNpemVzKSB7XG4gICRoZWFkZXItc3R5bGVzOiBidWlsZF9mcm9tX2hlYWRlci1zaXplcygkaGVhZGVyLXNpemVzKTtcbn1cblxuLy8vIFRleHQgcmVuZGVyaW5nIG1ldGhvZCBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGhlYWRlci10ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5ICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIG9mIGA8c21hbGw+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzbWFsbC1mb250LXNpemU6IDgwJSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIGA8c21hbGw+YCBlbGVtZW50cyB3aGVuIHBsYWNlZCBpbnNpZGUgaGVhZGVycy5cbi8vLyBAdHlwZSBDb2xvclxuJGhlYWRlci1zbWFsbC1mb250LWNvbG9yOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBMaW5lIGhlaWdodCBvZiB0ZXh0IGluc2lkZSBgPHA+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwYXJhZ3JhcGgtbGluZWhlaWdodDogMS42ICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIG1hcmdpbiBvZiBwYXJhZ3JhcGhzLlxuLy8vIEB0eXBlIE51bWJlclxuJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gVGV4dCByZW5kZXJpbmcgbWV0aG9kIGZvciBwYXJhZ3JhcGggdGV4dC5cbi8vLyBAdHlwZSBTdHJpbmdcbiRwYXJhZ3JhcGgtdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgY29kZSBzYW1wbGVzLlxuLy8vIEB0eXBlIENvbG9yXG4kY29kZS1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gRm9udCBmYW1pbHkgb2YgY29kZSBzYW1wbGVzLlxuLy8vIEB0eXBlIFN0cmluZyB8IExpc3RcbiRjb2RlLWZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktbW9ub3NwYWNlICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgb2YgdGV4dCBpbiBjb2RlIHNhbXBsZXMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kY29kZS1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBjb2RlIHNhbXBsZXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRjb2RlLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIGFyb3VuZCBjb2RlIHNhbXBsZXMuXG4vLy8gQHR5cGUgTGlzdFxuJGNvZGUtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBhcm91bmQgdGV4dCBvZiBjb2RlIHNhbXBsZXMuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGNvZGUtcGFkZGluZzogcmVtLWNhbGMoMiA1IDEpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgbGlua3MuXG4vLy8gQHR5cGUgQ29sb3JcbiRhbmNob3ItY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgbGlua3Mgb24gaG92ZXIuXG4vLy8gQHR5cGUgQ29sb3JcbiRhbmNob3ItY29sb3ItaG92ZXI6IHNjYWxlLWNvbG9yKCRhbmNob3ItY29sb3IsICRsaWdodG5lc3M6IC0xNCUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0ZXh0IGRlY29yYXRpb24gZm9yIGxpbmtzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGFuY2hvci10ZXh0LWRlY29yYXRpb246IG5vbmUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHRleHQgZGVjb3JhdGlvbiBmb3IgbGlua3Mgb24gaG92ZXIuXG4vLy8gQHR5cGUgU3RyaW5nXG4kYW5jaG9yLXRleHQtZGVjb3JhdGlvbi1ob3Zlcjogbm9uZSAhZGVmYXVsdDtcblxuLy8vIE1heGltdW0gd2lkdGggb2YgYSBkaXZpZGVyLlxuLy8vIEB0eXBlIE51bWJlclxuJGhyLXdpZHRoOiAkZ2xvYmFsLXdpZHRoICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgZm9yIGEgZGl2aWRlci5cbi8vLyBAdHlwZSBMaXN0XG4kaHItYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBtYXJnaW4gZm9yIGEgZGl2aWRlci5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4kaHItbWFyZ2luOiByZW0tY2FsYygyMCkgYXV0byAhZGVmYXVsdDtcblxuLy8vIExpbmUgaGVpZ2h0IGZvciBpdGVtcyBpbiBhIGxpc3QuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGlzdC1saW5laGVpZ2h0OiAkcGFyYWdyYXBoLWxpbmVoZWlnaHQgIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gbWFyZ2luIGZvciBpdGVtcyBpbiBhIGxpc3QuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGlzdC1tYXJnaW4tYm90dG9tOiAkcGFyYWdyYXBoLW1hcmdpbi1ib3R0b20gIWRlZmF1bHQ7XG5cbi8vLyBCdWxsZXQgdHlwZSB0byB1c2UgZm9yIHVub3JkZXJlZCBsaXN0cyAoZS5nLiwgYHNxdWFyZWAsIGBjaXJjbGVgLCBgZGlzY2ApLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGxpc3Qtc3R5bGUtdHlwZTogZGlzYyAhZGVmYXVsdDtcblxuLy8vIFBvc2l0aW9uaW5nIGZvciBidWxsZXRzIG9uIHVub3JkZXJlZCBsaXN0IGl0ZW1zLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGxpc3Qtc3R5bGUtcG9zaXRpb246IG91dHNpZGUgIWRlZmF1bHQ7XG5cbi8vLyBMZWZ0IChvciByaWdodCkgbWFyZ2luIGZvciBsaXN0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsaXN0LXNpZGUtbWFyZ2luOiAxLjI1cmVtICFkZWZhdWx0O1xuXG4vLy8gTGVmdCAob3IgcmlnaHQpIG1hcmdpbiBmb3IgYSBsaXN0IGluc2lkZSBhIGxpc3QuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGlzdC1uZXN0ZWQtc2lkZS1tYXJnaW46IDEuMjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gbWFyZ2luIGZvciBgPGRsPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZGVmbmxpc3QtbWFyZ2luLWJvdHRvbTogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgd2VpZ2h0IGZvciBgPGR0PmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kZGVmbmxpc3QtdGVybS13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQgIWRlZmF1bHQ7XG5cbi8vLyBTcGFjaW5nIGJldHdlZW4gYDxkdD5gIGFuZCBgPGRkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZGVmbmxpc3QtdGVybS1tYXJnaW4tYm90dG9tOiAwLjNyZW0gIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIGA8YmxvY2txdW90ZT5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIENvbG9yXG4kYmxvY2txdW90ZS1jb2xvcjogJGRhcmstZ3JheSAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgaW5zaWRlIGEgYDxibG9ja3F1b3RlPmAgZWxlbWVudC5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4kYmxvY2txdW90ZS1wYWRkaW5nOiByZW0tY2FsYyg5IDIwIDAgMTkpICFkZWZhdWx0O1xuXG4vLy8gU2lkZSBib3JkZXIgZm9yIGA8YmxvY2txdW90ZT5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIExpc3RcbiRibG9ja3F1b3RlLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBmb3IgYDxjaXRlPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kY2l0ZS1mb250LXNpemU6IHJlbS1jYWxjKDEzKSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3IgZm9yIGA8Y2l0ZT5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIENvbG9yXG4kY2l0ZS1jb2xvcjogJGRhcmstZ3JheSAhZGVmYXVsdDtcblxuLy8vIFBzZXVkbyBjb250ZW50IGZvciBgPGNpdGU+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRjaXRlLXBzZXVkby1jb250ZW50OiAnXFwyMDE0IFxcMDAyMCcgIWRlZmF1bHQ7XG5cbi8vLyBGb250IGZhbWlseSBmb3IgYDxrYmQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBTdHJpbmcgfCBMaXN0XG4ka2V5c3Ryb2tlLWZvbnQ6ICRmb250LWZhbWlseS1tb25vc3BhY2UgIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIGZvciBgPGtiZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIENvbG9yXG4ka2V5c3Ryb2tlLWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciBgPGtiZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIENvbG9yXG4ka2V5c3Ryb2tlLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBmb3IgYDxrYmQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4ka2V5c3Ryb2tlLXBhZGRpbmc6IHJlbS1jYWxjKDIgNCAwKSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciByYWRpdXMgZm9yIGA8a2JkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGtleXN0cm9rZS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIGJvcmRlciBzdHlsZSBmb3IgYDxhYmJyPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTGlzdFxuJGFiYnItdW5kZXJsaW5lOiAxcHggZG90dGVkICRibGFjayAhZGVmYXVsdDtcblxuQG1peGluIGZvdW5kYXRpb24tdHlwb2dyYXBoeS1iYXNlIHtcbiAgLy8gVHlwb2dyYXBoeSByZXNldHNcbiAgZGl2LFxuICBkbCxcbiAgZHQsXG4gIGRkLFxuICB1bCxcbiAgb2wsXG4gIGxpLFxuICBoMSxcbiAgaDIsXG4gIGgzLFxuICBoNCxcbiAgaDUsXG4gIGg2LFxuICBwcmUsXG4gIGZvcm0sXG4gIHAsXG4gIGJsb2NrcXVvdGUsXG4gIHRoLFxuICB0ZCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cblxuICAvLyBQYXJhZ3JhcGhzXG4gIHAge1xuICAgIG1hcmdpbi1ib3R0b206ICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTtcblxuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICBsaW5lLWhlaWdodDogJHBhcmFncmFwaC1saW5laGVpZ2h0O1xuICAgIHRleHQtcmVuZGVyaW5nOiAkcGFyYWdyYXBoLXRleHQtcmVuZGVyaW5nO1xuICB9XG5cbiAgLy8gRW1waGFzaXplZCB0ZXh0XG4gIGVtLFxuICBpIHtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIH1cblxuICAvLyBTdHJvbmcgdGV4dFxuICBzdHJvbmcsXG4gIGIge1xuICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICB9XG5cbiAgLy8gU21hbGwgdGV4dFxuICBzbWFsbCB7XG4gICAgZm9udC1zaXplOiAkc21hbGwtZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICB9XG5cbiAgLy8gSGVhZGluZ3NcbiAgaDEsIC5oMSxcbiAgaDIsIC5oMixcbiAgaDMsIC5oMyxcbiAgaDQsIC5oNCxcbiAgaDUsIC5oNSxcbiAgaDYsIC5oNiB7XG4gICAgZm9udC1mYW1pbHk6ICRoZWFkZXItZm9udC1mYW1pbHk7XG4gICAgZm9udC1zdHlsZTogJGhlYWRlci1mb250LXN0eWxlO1xuICAgIGZvbnQtd2VpZ2h0OiAkaGVhZGVyLWZvbnQtd2VpZ2h0O1xuICAgIGNvbG9yOiAkaGVhZGVyLWNvbG9yO1xuICAgIHRleHQtcmVuZGVyaW5nOiAkaGVhZGVyLXRleHQtcmVuZGVyaW5nO1xuXG4gICAgc21hbGwge1xuICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICBjb2xvcjogJGhlYWRlci1zbWFsbC1mb250LWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIC8vIEhlYWRpbmcgc3R5bGVzXG4gIEBlYWNoICRzaXplLCAkaGVhZGVycyBpbiAkaGVhZGVyLXN0eWxlcyB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgQGVhY2ggJGhlYWRlciwgJGhlYWRlci1kZWZzIGluICRoZWFkZXJzIHtcbiAgICAgICAgJGZvbnQtc2l6ZS10ZW1wOiAxcmVtO1xuICAgICAgICAjeyRoZWFkZXJ9LCAuI3skaGVhZGVyfSB7XG5cbiAgICAgICAgICBAaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBmb250LXNpemUpIHtcbiAgICAgICAgICAgICRmb250LXNpemUtdGVtcDogcmVtLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIGZvbnQtc2l6ZSkpO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplLXRlbXA7XG4gICAgICAgICAgfSBAZWxzZSBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIGZzKSB7XG4gICAgICAgICAgICAkZm9udC1zaXplLXRlbXA6IHJlbS1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBmcykpO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplLXRlbXA7XG4gICAgICAgICAgfSBAZWxzZSBpZiAkc2l6ZSA9PSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LXNpemUtdGVtcDtcbiAgICAgICAgICB9XG4gICAgICAgICAgQGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbGluZS1oZWlnaHQpIHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiB1bml0bGVzcy1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBsaW5lLWhlaWdodCksICRmb250LXNpemUtdGVtcCk7XG4gICAgICAgICAgfSBAZWxzZSBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIGxoKSB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogdW5pdGxlc3MtY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgbGgpLCAkZm9udC1zaXplLXRlbXApO1xuICAgICAgICAgIH0gQGVsc2UgaWYgJHNpemUgPT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHVuaXRsZXNzLWNhbGMoJGhlYWRlci1saW5laGVpZ2h0LCAkZm9udC1zaXplLXRlbXApO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIEBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIG1hcmdpbi10b3ApIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBtYXJnaW4tdG9wKSk7XG4gICAgICAgICAgfSBAZWxzZSBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIG10KSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiByZW0tY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgbXQpKTtcbiAgICAgICAgICB9IEBlbHNlIGlmICRzaXplID09ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgfVxuICAgICAgICAgIEBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIG1hcmdpbi1ib3R0b20pIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBtYXJnaW4tYm90dG9tKSk7XG4gICAgICAgICAgfSBAZWxzZSBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIG1iKSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgbWIpKTtcbiAgICAgICAgICB9IEBlbHNlIGlmICRzaXplID09ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKCRoZWFkZXItbWFyZ2luLWJvdHRvbSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gTGlua3NcbiAgYSB7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgY29sb3I6ICRhbmNob3ItY29sb3I7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiAkYW5jaG9yLXRleHQtZGVjb3JhdGlvbjtcblxuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICBjb2xvcjogJGFuY2hvci1jb2xvci1ob3ZlcjtcbiAgICAgIEBpZiAkYW5jaG9yLXRleHQtZGVjb3JhdGlvbi1ob3ZlciAhPSAkYW5jaG9yLXRleHQtZGVjb3JhdGlvbiB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogJGFuY2hvci10ZXh0LWRlY29yYXRpb24taG92ZXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaW1nIHtcbiAgICAgIGJvcmRlcjogMDtcbiAgICB9XG4gIH1cblxuICAvLyBIb3Jpem9udGFsIHJ1bGVcbiAgaHIge1xuICAgIGNsZWFyOiBib3RoO1xuXG4gICAgbWF4LXdpZHRoOiAkaHItd2lkdGg7XG4gICAgaGVpZ2h0OiAwO1xuICAgIG1hcmdpbjogJGhyLW1hcmdpbjtcblxuICAgIGJvcmRlci10b3A6IDA7XG4gICAgYm9yZGVyLXJpZ2h0OiAwO1xuICAgIGJvcmRlci1ib3R0b206ICRoci1ib3JkZXI7XG4gICAgYm9yZGVyLWxlZnQ6IDA7XG4gIH1cblxuICAvLyBMaXN0c1xuICB1bCxcbiAgb2wsXG4gIGRsIHtcbiAgICBtYXJnaW4tYm90dG9tOiAkbGlzdC1tYXJnaW4tYm90dG9tO1xuICAgIGxpc3Qtc3R5bGUtcG9zaXRpb246ICRsaXN0LXN0eWxlLXBvc2l0aW9uO1xuICAgIGxpbmUtaGVpZ2h0OiAkbGlzdC1saW5laGVpZ2h0O1xuICB9XG5cbiAgLy8gTGlzdCBpdGVtc1xuICBsaSB7XG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xuICB9XG5cbiAgLy8gVW5vcmRlcmVkIGxpc3RzXG4gIHVsIHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkbGlzdC1zaWRlLW1hcmdpbjtcbiAgICBsaXN0LXN0eWxlLXR5cGU6ICRsaXN0LXN0eWxlLXR5cGU7XG4gIH1cblxuICAvLyBPcmRlcmVkIGxpc3RzXG4gIG9sIHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkbGlzdC1zaWRlLW1hcmdpbjtcbiAgfVxuXG4gIC8vIE5lc3RlZCB1bm9yZGVyZWQvb3JkZXJlZCBsaXN0c1xuICB1bCwgb2wge1xuICAgICYgJiB7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkbGlzdC1uZXN0ZWQtc2lkZS1tYXJnaW47XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgfVxuXG4gIC8vIERlZmluaXRpb24gbGlzdHNcbiAgZGwge1xuICAgIG1hcmdpbi1ib3R0b206ICRkZWZubGlzdC1tYXJnaW4tYm90dG9tO1xuXG4gICAgZHQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogJGRlZm5saXN0LXRlcm0tbWFyZ2luLWJvdHRvbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiAkZGVmbmxpc3QtdGVybS13ZWlnaHQ7XG4gICAgfVxuICB9XG5cbiAgLy8gQmxvY2txdW90ZXNcbiAgYmxvY2txdW90ZSB7XG4gICAgbWFyZ2luOiAwIDAgJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tO1xuICAgIHBhZGRpbmc6ICRibG9ja3F1b3RlLXBhZGRpbmc7XG4gICAgYm9yZGVyLSN7JGdsb2JhbC1sZWZ0fTogJGJsb2NrcXVvdGUtYm9yZGVyO1xuXG4gICAgJiwgcCB7XG4gICAgICBsaW5lLWhlaWdodDogJHBhcmFncmFwaC1saW5laGVpZ2h0O1xuICAgICAgY29sb3I6ICRibG9ja3F1b3RlLWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIC8vIENpdGF0aW9uc1xuICBjaXRlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6ICRjaXRlLWZvbnQtc2l6ZTtcbiAgICBjb2xvcjogJGNpdGUtY29sb3I7XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAkY2l0ZS1wc2V1ZG8tY29udGVudDtcbiAgICB9XG4gIH1cblxuICAvLyBBYmJyZXZpYXRpb25zXG4gIGFiYnIsIGFiYnJbdGl0bGVdIHtcbiAgICBib3JkZXItYm90dG9tOiAkYWJici11bmRlcmxpbmU7XG4gICAgY3Vyc29yOiBoZWxwO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgfVxuXG4gIC8vIEZpZ3VyZXNcbiAgZmlndXJlIHtcbiAgICBtYXJnaW46IDA7XG4gIH1cbiAgXG4gIC8vIENvZGVcbiAgY29kZSB7XG4gICAgcGFkZGluZzogJGNvZGUtcGFkZGluZztcblxuICAgIGJvcmRlcjogJGNvZGUtYm9yZGVyO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2RlLWJhY2tncm91bmQ7XG5cbiAgICBmb250LWZhbWlseTogJGNvZGUtZm9udC1mYW1pbHk7XG4gICAgZm9udC13ZWlnaHQ6ICRjb2RlLWZvbnQtd2VpZ2h0O1xuICAgIGNvbG9yOiAkY29kZS1jb2xvcjtcbiAgfVxuXG4gIC8vIEtleXN0cm9rZXNcbiAga2JkIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogJGtleXN0cm9rZS1wYWRkaW5nO1xuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGtleXN0cm9rZS1iYWNrZ3JvdW5kO1xuXG4gICAgZm9udC1mYW1pbHk6ICRrZXlzdHJva2UtZm9udDtcbiAgICBjb2xvcjogJGtleXN0cm9rZS1jb2xvcjtcblxuICAgIEBpZiBoYXMtdmFsdWUoJGtleXN0cm9rZS1yYWRpdXMpIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6ICRrZXlzdHJva2UtcmFkaXVzO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgdHlwb2dyYXBoeS1oZWxwZXJzXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBmb3IgbGVhZCBwYXJhZ3JhcGhzLlxuLy8vIEB0eXBlIE51bWJlclxuJGxlYWQtZm9udC1zaXplOiAkZ2xvYmFsLWZvbnQtc2l6ZSAqIDEuMjUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGxpbmUgaGVpZ2h0IGZvciBsZWFkIHBhcmFncmFwaHMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kbGVhZC1saW5laGVpZ2h0OiAxLjYgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGxpbmUgaGVpZ2h0IGZvciBzdWJoZWFkZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJHN1YmhlYWRlci1saW5laGVpZ2h0OiAxLjQgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgY29sb3IgZm9yIHN1YmhlYWRlcnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRzdWJoZWFkZXItY29sb3I6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgd2VpZ2h0IGZvciBzdWJoZWFkZXJzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJHN1YmhlYWRlci1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0b3AgbWFyZ2luIGZvciBzdWJoaGVhZGVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzdWJoZWFkZXItbWFyZ2luLXRvcDogMC4ycmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3R0b20gbWFyZ2luIGZvciBzdWJoZWFkZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJHN1YmhlYWRlci1tYXJnaW4tYm90dG9tOiAwLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBmb3Igc3RhdGlzdGljIG51bWJlcnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3RhdC1mb250LXNpemU6IDIuNXJlbSAhZGVmYXVsdDtcblxuQG1peGluIGZvdW5kYXRpb24tdHlwb2dyYXBoeS1oZWxwZXJzIHtcbiAgLy8gVXNlIHRvIGNyZWF0ZSBhIHN1YmhlYWRpbmcgdW5kZXIgYSBtYWluIGhlYWRlclxuICAvLyBNYWtlIHN1cmUgeW91IHBhaXIgdGhlIHR3byBlbGVtZW50cyBpbiBhIDxoZWFkZXI+IGVsZW1lbnQsIGxpa2UgdGhpczpcbiAgLy8gPGhlYWRlcj5cbiAgLy8gICA8aDE+SGVhZGluZzwvaDE+XG4gIC8vICAgPGgyPlN1YmhlYWRpbmc8L2gyPlxuICAvLyA8L2hlYWRlcj5cbiAgLnN1YmhlYWRlciB7XG4gICAgbWFyZ2luLXRvcDogJHN1YmhlYWRlci1tYXJnaW4tdG9wO1xuICAgIG1hcmdpbi1ib3R0b206ICRzdWJoZWFkZXItbWFyZ2luLWJvdHRvbTtcblxuICAgIGZvbnQtd2VpZ2h0OiAkc3ViaGVhZGVyLWZvbnQtd2VpZ2h0O1xuICAgIGxpbmUtaGVpZ2h0OiAkc3ViaGVhZGVyLWxpbmVoZWlnaHQ7XG4gICAgY29sb3I6ICRzdWJoZWFkZXItY29sb3I7XG4gIH1cblxuICAvLyBVc2UgdG8gc3R5bGUgYW4gaW50cm9kdWN0b3J5IGxlYWQsIGRlY2ssIGJsdXJiLCBldGMuXG4gIC5sZWFkIHtcbiAgICBmb250LXNpemU6ICRsZWFkLWZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogJGxlYWQtbGluZWhlaWdodDtcbiAgfVxuXG4gIC8vIFVzZSB0byBzdHlsZSBhIGxhcmdlIG51bWJlciB0byBkaXNwbGF5IGEgc3RhdGlzdGljXG4gIC5zdGF0IHtcbiAgICBmb250LXNpemU6ICRzdGF0LWZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogMTtcblxuICAgIHAgKyAmIHtcbiAgICAgIG1hcmdpbi10b3A6IC0xcmVtO1xuICAgIH1cbiAgfVxuXG4gIHVsLCBvbCB7XG4gICAgLy8gVXNlIHRvIHJlbW92ZSBudW1iZXJzIGZyb20gb3JkZXJlZCBsaXN0ICYgYnVsbGV0cyBmcm9tIHVub3JkZXJlZCBsaXN0XG4gICAgJi5uby1idWxsZXQge1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogMDtcbiAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQG1peGluIGZvdW5kYXRpb24tdGV4dC1hbGlnbm1lbnQge1xuICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICBAZWFjaCAkYWxpZ24gaW4gKGxlZnQsIHJpZ2h0LCBjZW50ZXIsIGp1c3RpZnkpIHtcbiAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAuI3skc2l6ZX0tdGV4dC0jeyRhbGlnbn0ge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogJGFsaWduO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgLnRleHQtI3skYWxpZ259IHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246ICRhbGlnbjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8gSWYgYHRydWVgLCBhbGwgZWxlbWVudHMgd2lsbCBoYXZlIHRyYW5zcGFyZW50IGJhY2tncm91bmRzIHdoZW4gcHJpbnRlZCwgdG8gc2F2ZSBvbiBpbmsuXG4vLy8gQHR5cGUgQm9vbGVhblxuLy8vIEBncm91cCBnbG9iYWxcbiRwcmludC10cmFuc3BhcmVudC1iYWNrZ3JvdW5kczogdHJ1ZSAhZGVmYXVsdDtcbiRwcmludC1ocmVmczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8gc2Fzcy1saW50OmRpc2FibGUtYWxsXG5cbkBtaXhpbiBmb3VuZGF0aW9uLXByaW50LXN0eWxlcyB7XG4gIC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4gIEBtZWRpYSBwcmludCB7XG4gICAgKiB7XG4gICAgICBAaWYgJHByaW50LXRyYW5zcGFyZW50LWJhY2tncm91bmRzIHtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgIH1cblxuICAgICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuXG4gICAgICBjb2xvcjogYmxhY2sgIWltcG9ydGFudDsgLy8gQmxhY2sgcHJpbnRzIGZhc3RlcjogaDVicC5jb20vc1xuICAgICAgdGV4dC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9XG4gICAgLmhpZGUtZm9yLXByaW50IHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbiAgICB0YWJsZS5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7IH1cbiAgICB0aGVhZC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cCAhaW1wb3J0YW50OyB9XG4gICAgdGJvZHkuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1yb3ctZ3JvdXAgIWltcG9ydGFudDsgfVxuICAgIHRyLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtcm93ICFpbXBvcnRhbnQ7IH1cbiAgICB0ZC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxuICAgIHRoLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XG5cbiAgICAvLyBEaXNwbGF5IHRoZSBVUkwgb2YgYSBsaW5rIGFmdGVyIHRoZSB0ZXh0XG4gICAgYSxcbiAgICBhOnZpc2l0ZWQgeyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTt9XG4gICAgQGlmICRwcmludC1ocmVmcyB7XG4gICAgICBhW2hyZWZdOmFmdGVyIHsgY29udGVudDogJyAoJyBhdHRyKGhyZWYpICcpJzsgfVxuICAgIH1cblxuICAgIC8vIERvbid0IGRpc3BsYXkgdGhlIFVSTCBmb3IgaW1hZ2VzIG9yIEphdmFTY3JpcHQvaW50ZXJuYWwgbGlua3NcbiAgICAuaXIgYTphZnRlcixcbiAgICBhW2hyZWZePSdqYXZhc2NyaXB0OiddOmFmdGVyLFxuICAgIGFbaHJlZl49JyMnXTphZnRlciB7IGNvbnRlbnQ6ICcnOyB9XG5cbiAgICAvLyBEaXNwbGF5IHdoYXQgYW4gYWJicmV2aWF0aW9uIHN0YW5kcyBmb3IgYWZ0ZXIgdGhlIHRleHRcbiAgICBhYmJyW3RpdGxlXTphZnRlciB7IGNvbnRlbnQ6ICcgKCcgYXR0cih0aXRsZSkgJyknOyB9XG5cbiAgICAvLyBQcmV2ZW50IHBhZ2UgYnJlYWtzIGluIHRoZSBtaWRkbGUgb2YgYSBibG9ja3F1b3RlIG9yIHByZWZvcm1hdHRlZCB0ZXh0IGJsb2NrXG4gICAgcHJlLFxuICAgIGJsb2NrcXVvdGUge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgJGRhcmstZ3JheTtcbiAgICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgICB9XG5cbiAgICAvLyBoNWJwLmNvbS90XG4gICAgdGhlYWQgeyBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXA7IH1cblxuICAgIHRyLFxuICAgIGltZyB7IHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDsgfVxuXG4gICAgaW1nIHsgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH1cblxuICAgIEBwYWdlIHsgbWFyZ2luOiAwLjVjbTsgfVxuXG4gICAgcCxcbiAgICBoMixcbiAgICBoMyB7XG4gICAgICBvcnBoYW5zOiAzO1xuICAgICAgd2lkb3dzOiAzO1xuICAgIH1cblxuICAgIC8vIEF2b2lkIHBhZ2UgYnJlYWtzIGFmdGVyIGEgaGVhZGluZ1xuICAgIGgyLFxuICAgIGgzIHsgcGFnZS1icmVhay1hZnRlcjogYXZvaWQ7IH1cblxuICAgIC8vIEhlbHBlciB0byByZS1hbGxvdyBwYWdlIGJyZWFrcyBpbiB0aGUgbWlkZGxlIG9mIGNlcnRhaW4gZWxlbWVudHMgKGUuZy4gcHJlLCBibG9ja3F1b3RlLCB0cilcbiAgICAucHJpbnQtYnJlYWstaW5zaWRlIHtcbiAgICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdXRvO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuLy8vIEdsb2JhbCBzcGFjaW5nIGZvciBmb3JtIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGZvcm0tc3BhY2luZzogcmVtLWNhbGMoMTYpICFkZWZhdWx0O1xuXG5AaW1wb3J0ICd0ZXh0JztcbkBpbXBvcnQgJ2NoZWNrYm94JztcbkBpbXBvcnQgJ2xhYmVsJztcbkBpbXBvcnQgJ2hlbHAtdGV4dCc7XG5AaW1wb3J0ICdpbnB1dC1ncm91cCc7XG5AaW1wb3J0ICdmaWVsZHNldCc7XG5AaW1wb3J0ICdzZWxlY3QnO1xuQGltcG9ydCAncmFuZ2UnO1xuQGltcG9ydCAncHJvZ3Jlc3MnO1xuQGltcG9ydCAnbWV0ZXInO1xuQGltcG9ydCAnZXJyb3InO1xuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtcyB7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZm9ybS10ZXh0O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZvcm0tY2hlY2tib3g7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZm9ybS1sYWJlbDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1mb3JtLWhlbHB0ZXh0O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZvcm0tcHJlcG9zdGZpeDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1mb3JtLWZpZWxkc2V0O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZvcm0tc2VsZWN0O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZvcm0tZXJyb3I7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gRm9udCBjb2xvciBvZiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBGb250IGNvbG9yIG9mIHBsYWNlaG9sZGVyIHRleHQgd2l0aGluIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtcGxhY2Vob2xkZXItY29sb3I6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgZmFtaWx5IG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIEZvbnRcbiRpbnB1dC1mb250LWZhbWlseTogaW5oZXJpdCAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBvZiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRpbnB1dC1mb250LXNpemU6IHJlbS1jYWxjKDE2KSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgd2VpZ2h0IG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIEtleXdvcmRcbiRpbnB1dC1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gTGluZSBoZWlnaHQgb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGlucHV0LWxpbmUtaGVpZ2h0OiAkZ2xvYmFsLWxpbmVoZWlnaHQgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBmb2N1c2VkIG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtYmFja2dyb3VuZC1mb2N1czogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBkaXNhYmxlZCB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWJhY2tncm91bmQtZGlzYWJsZWQ6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIGFyb3VuZCB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBCb3JkZXJcbiRpbnB1dC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgYXJvdW5kIGZvY3VzZWQgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1ib3JkZXItZm9jdXM6IDFweCBzb2xpZCAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBvZiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LXBhZGRpbmc6ICRmb3JtLXNwYWNpbmcgLyAyICFkZWZhdWx0O1xuXG4vLy8gQm94IHNoYWRvdyBpbnNpZGUgdGV4dCBpbnB1dHMgd2hlbiBub3QgZm9jdXNlZC5cbi8vLyBAdHlwZSBTaGFkb3dcbiRpbnB1dC1zaGFkb3c6IGluc2V0IDAgMXB4IDJweCByZ2JhKCRibGFjaywgMC4xKSAhZGVmYXVsdDtcblxuLy8vIEJveCBzaGFkb3cgb3V0c2lkZSB0ZXh0IGlucHV0cyB3aGVuIGZvY3VzZWQuXG4vLy8gQHR5cGUgU2hhZG93XG4kaW5wdXQtc2hhZG93LWZvY3VzOiAwIDAgNXB4ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIEN1cnNvciB0byB1c2Ugd2hlbiBob3ZlcmluZyBvdmVyIGEgZGlzYWJsZWQgdGV4dCBpbnB1dC5cbi8vLyBAdHlwZSBDdXJzb3JcbiRpbnB1dC1jdXJzb3ItZGlzYWJsZWQ6IG5vdC1hbGxvd2VkICFkZWZhdWx0O1xuXG4vLy8gUHJvcGVydGllcyB0byB0cmFuc2l0aW9uIG9uIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIFRyYW5zaXRpb25cbiRpbnB1dC10cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuNXMsIGJvcmRlci1jb2xvciAwLjI1cyBlYXNlLWluLW91dCAhZGVmYXVsdDtcblxuLy8vIEVuYWJsZXMgdGhlIHVwL2Rvd24gYnV0dG9ucyB0aGF0IENocm9tZSBhbmQgRmlyZWZveCBhZGQgdG8gYDxpbnB1dCB0eXBlPSdudW1iZXInPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGlucHV0LW51bWJlci1zcGlubmVyczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIFJhZGl1cyBmb3IgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQm9yZGVyXG4kaW5wdXQtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciByYWRpdXMgZm9yIGZvcm0gYnV0dG9ucywgZGVmYXVsdGVkIHRvIGdsb2JhbC1yYWRpdXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZm9ybS1idXR0b24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuQG1peGluIGZvcm0tZWxlbWVudCB7XG4gICRoZWlnaHQ6ICgkaW5wdXQtZm9udC1zaXplICogdW5pdGxlc3MtY2FsYygkaW5wdXQtbGluZS1oZWlnaHQpKSArIChnZXQtc2lkZSgkaW5wdXQtcGFkZGluZywgJ3RvcCcpICsgZ2V0LXNpZGUoJGlucHV0LXBhZGRpbmcsICdib3R0b20nKSkgLSByZW0tY2FsYygxKTtcblxuICBkaXNwbGF5OiBibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogJGhlaWdodDtcbiAgbWFyZ2luOiAwIDAgJGZvcm0tc3BhY2luZztcbiAgcGFkZGluZzogJGlucHV0LXBhZGRpbmc7XG5cbiAgYm9yZGVyOiAkaW5wdXQtYm9yZGVyO1xuICBib3JkZXItcmFkaXVzOiAkaW5wdXQtcmFkaXVzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmFja2dyb3VuZDtcbiAgYm94LXNoYWRvdzogJGlucHV0LXNoYWRvdztcblxuICBmb250LWZhbWlseTogJGlucHV0LWZvbnQtZmFtaWx5O1xuICBmb250LXNpemU6ICRpbnB1dC1mb250LXNpemU7XG4gIGZvbnQtd2VpZ2h0OiAkaW5wdXQtZm9udC13ZWlnaHQ7XG4gIGxpbmUtaGVpZ2h0OiAkaW5wdXQtbGluZS1oZWlnaHQ7XG4gIGNvbG9yOiAkaW5wdXQtY29sb3I7XG5cbiAgQGlmIGhhcy12YWx1ZSgkaW5wdXQtdHJhbnNpdGlvbikge1xuICAgIHRyYW5zaXRpb246ICRpbnB1dC10cmFuc2l0aW9uO1xuICB9XG5cbiAgLy8gRm9jdXMgc3RhdGVcbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBib3JkZXI6ICRpbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LWJhY2tncm91bmQtZm9jdXM7XG4gICAgYm94LXNoYWRvdzogJGlucHV0LXNoYWRvdy1mb2N1cztcblxuICAgIEBpZiBoYXMtdmFsdWUoJGlucHV0LXRyYW5zaXRpb24pIHtcbiAgICAgIHRyYW5zaXRpb246ICRpbnB1dC10cmFuc2l0aW9uO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLXRleHQge1xuICAvLyBUZXh0IGlucHV0c1xuICAje3RleHQtaW5wdXRzKCl9LFxuICB0ZXh0YXJlYSB7XG4gICAgQGluY2x1ZGUgZm9ybS1lbGVtZW50O1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gIH1cblxuICAvLyBUZXh0IGFyZWFzXG4gIHRleHRhcmVhIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAmW3Jvd3NdIHtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICB9XG4gIH1cblxuICBpbnB1dCxcbiAgdGV4dGFyZWEge1xuICAgIC8vIFBsYWNlaG9sZGVyIHRleHRcbiAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICBjb2xvcjogJGlucHV0LXBsYWNlaG9sZGVyLWNvbG9yO1xuICAgIH1cblxuICAgIC8vIERpc2FibGVkL3JlYWRvbmx5IHN0YXRlXG4gICAgJjpkaXNhYmxlZCxcbiAgICAmW3JlYWRvbmx5XSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmFja2dyb3VuZC1kaXNhYmxlZDtcbiAgICAgIGN1cnNvcjogJGlucHV0LWN1cnNvci1kaXNhYmxlZDtcbiAgICB9XG4gIH1cblxuICAvLyBSZXNldCBzdHlsZXMgb24gYnV0dG9uLWxpa2UgaW5wdXRzXG4gIFt0eXBlPSdzdWJtaXQnXSxcbiAgW3R5cGU9J2J1dHRvbiddIHtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIGJvcmRlci1yYWRpdXM6ICRmb3JtLWJ1dHRvbi1yYWRpdXM7XG4gIH1cblxuICAvLyBSZXNldCBOb3JtYWxpemUgc2V0dGluZyBjb250ZW50LWJveCB0byBzZWFyY2ggZWxlbWVudHNcbiAgaW5wdXRbdHlwZT0nc2VhcmNoJ10geyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXF1YWxpZnlpbmctZWxlbWVudHNcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB9XG5cbiAgLy8gTnVtYmVyIGlucHV0IHN0eWxlc1xuICBbdHlwZT0nbnVtYmVyJ10ge1xuICAgIEBpZiBub3QgJGlucHV0LW51bWJlci1zcGlubmVycyB7XG4gICAgICAtbW96LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby12ZW5kb3ItcHJlZml4XG5cbiAgICAgICY6Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG4gICAgICAmOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXZlbmRvci1wcmVmaXhcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1jaGVja2JveCB7XG4gIFt0eXBlPSdmaWxlJ10sXG4gIFt0eXBlPSdjaGVja2JveCddLFxuICBbdHlwZT0ncmFkaW8nXSB7XG4gICAgbWFyZ2luOiAwIDAgJGZvcm0tc3BhY2luZztcbiAgfVxuXG4gIC8vIFN0eWxlcyBmb3IgaW5wdXQvbGFiZWwgc2libGluZ3NcbiAgW3R5cGU9J2NoZWNrYm94J10gKyBsYWJlbCxcbiAgW3R5cGU9J3JhZGlvJ10gKyBsYWJlbCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcblxuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRmb3JtLXNwYWNpbmcgKiAwLjU7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRmb3JtLXNwYWNpbmc7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgICZbZm9yXSB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuICB9XG5cbiAgLy8gU3R5bGVzIGZvciBpbnB1dHMgaW5zaWRlIGxhYmVsc1xuICBsYWJlbCA+IFt0eXBlPSdjaGVja2JveCddLFxuICBsYWJlbCA+IFt0eXBlPSdyYWRpbyddIHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJGZvcm0tc3BhY2luZyAqIDAuNTtcbiAgfVxuXG4gIC8vIE5vcm1hbGl6ZSBmaWxlIGlucHV0IHdpZHRoXG4gIFt0eXBlPSdmaWxlJ10ge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gQ29sb3IgZm9yIGZvcm0gbGFiZWxzLlxuLy8vIEB0eXBlIENvbG9yXG4kZm9ybS1sYWJlbC1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIGZvciBmb3JtIGxhYmVscy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRmb3JtLWxhYmVsLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgZm9yIGZvcm0gbGFiZWxzLlxuLy8vIEB0eXBlIEtleXdvcmRcbiRmb3JtLWxhYmVsLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBMaW5lIGhlaWdodCBmb3IgZm9ybSBsYWJlbHMuIFRoZSBoaWdoZXIgdGhlIG51bWJlciwgdGhlIG1vcmUgc3BhY2UgYmV0d2VlbiB0aGUgbGFiZWwgYW5kIGl0cyBpbnB1dCBmaWVsZC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRmb3JtLWxhYmVsLWxpbmUtaGVpZ2h0OiAxLjggIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3JtLWxhYmVsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMDtcblxuICBmb250LXNpemU6ICRmb3JtLWxhYmVsLWZvbnQtc2l6ZTtcbiAgZm9udC13ZWlnaHQ6ICRmb3JtLWxhYmVsLWZvbnQtd2VpZ2h0O1xuICBsaW5lLWhlaWdodDogJGZvcm0tbGFiZWwtbGluZS1oZWlnaHQ7XG4gIGNvbG9yOiAkZm9ybS1sYWJlbC1jb2xvcjtcbn1cblxuQG1peGluIGZvcm0tbGFiZWwtbWlkZGxlIHtcbiAgJGlucHV0LWJvcmRlci13aWR0aDogZ2V0LWJvcmRlci12YWx1ZSgkaW5wdXQtYm9yZGVyLCB3aWR0aCk7XG5cbiAgbWFyZ2luOiAwIDAgJGZvcm0tc3BhY2luZztcbiAgcGFkZGluZzogKCRmb3JtLXNwYWNpbmcgLyAyICsgcmVtLWNhbGMoJGlucHV0LWJvcmRlci13aWR0aCkpIDA7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tbGFiZWwge1xuICBsYWJlbCB7XG4gICAgQGluY2x1ZGUgZm9ybS1sYWJlbDtcblxuICAgICYubWlkZGxlIHtcbiAgICAgIEBpbmNsdWRlIGZvcm0tbGFiZWwtbWlkZGxlO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuLy8vIERlZmF1bHQgY29sb3IgZm9yIGhlbHAgdGV4dC5cbi8vLyBAdHlwZSBDb2xvclxuJGhlbHB0ZXh0LWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBmb3IgaGVscCB0ZXh0LlxuLy8vIEB0eXBlIE51bWJlclxuJGhlbHB0ZXh0LWZvbnQtc2l6ZTogcmVtLWNhbGMoMTMpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHN0eWxlIGZvciBoZWxwIHRleHQuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGhlbHB0ZXh0LWZvbnQtc3R5bGU6IGl0YWxpYyAhZGVmYXVsdDtcblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1oZWxwdGV4dCB7XG4gIC5oZWxwLXRleHQge1xuICAgICRtYXJnaW4tdG9wOiAoJGZvcm0tc3BhY2luZyAqIDAuNSkgKiAtMTtcblxuICAgIG1hcmdpbi10b3A6ICRtYXJnaW4tdG9wO1xuICAgIGZvbnQtc2l6ZTogJGhlbHB0ZXh0LWZvbnQtc2l6ZTtcbiAgICBmb250LXN0eWxlOiAkaGVscHRleHQtZm9udC1zdHlsZTtcbiAgICBjb2xvcjogJGhlbHB0ZXh0LWNvbG9yO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gQ29sb3Igb2YgbGFiZWxzIHByZWZpeGVkIHRvIGFuIGlucHV0LlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtcHJlZml4LWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGxhYmVscyBwcmVmaXhlZCB0byBhbiBpbnB1dC5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LXByZWZpeC1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBhcm91bmQgbGFiZWxzIHByZWZpeGVkIHRvIGFuIGlucHV0LlxuLy8vIEB0eXBlIEJvcmRlclxuJGlucHV0LXByZWZpeC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBMZWZ0L3JpZ2h0IHBhZGRpbmcgb2YgYW4gcHJlL3Bvc3RmaXhlZCBpbnB1dCBsYWJlbFxuJGlucHV0LXByZWZpeC1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLXByZXBvc3RmaXgge1xuICAkaGVpZ2h0OiAoJGlucHV0LWZvbnQtc2l6ZSArICRmb3JtLXNwYWNpbmcgKiAxLjUpO1xuXG4gIC5pbnB1dC1ncm91cCB7XG4gICAgZGlzcGxheTogaWYoJGdsb2JhbC1mbGV4Ym94LCBmbGV4LCB0YWJsZSk7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWJvdHRvbTogJGZvcm0tc3BhY2luZztcblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgfVxuXG4gICAgPiA6Zmlyc3QtY2hpbGQge1xuICAgICAgYm9yZGVyLXJhZGl1czogaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBydGwsIDAgJGlucHV0LXJhZGl1cyAkaW5wdXQtcmFkaXVzIDAsICRpbnB1dC1yYWRpdXMgMCAwICRpbnB1dC1yYWRpdXMpO1xuICAgIH1cblxuICAgID4gOmxhc3QtY2hpbGQge1xuICAgICAgPiAqIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBydGwsICRpbnB1dC1yYWRpdXMgMCAwICRpbnB1dC1yYWRpdXMsIDAgJGlucHV0LXJhZGl1cyAkaW5wdXQtcmFkaXVzIDApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICVpbnB1dC1ncm91cC1jaGlsZCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICBAaWYgbm90ICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG4gIH1cblxuICAuaW5wdXQtZ3JvdXAtbGFiZWwge1xuICAgIEBleHRlbmQgJWlucHV0LWdyb3VwLWNoaWxkO1xuICAgIHBhZGRpbmc6IDAgJGlucHV0LXByZWZpeC1wYWRkaW5nO1xuICAgIGJvcmRlcjogJGlucHV0LXByZWZpeC1ib3JkZXI7XG4gICAgYmFja2dyb3VuZDogJGlucHV0LXByZWZpeC1iYWNrZ3JvdW5kO1xuXG4gICAgY29sb3I6ICRpbnB1dC1wcmVmaXgtY29sb3I7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIHdpZHRoOiAxJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG5cbiAgICBAaWYgaGFzLXZhbHVlKCRpbnB1dC1wcmVmaXgtYm9yZGVyKSB7XG4gICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLSN7JGdsb2JhbC1yaWdodH06IDA7XG4gICAgICB9XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci0jeyRnbG9iYWwtbGVmdH06IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmlucHV0LWdyb3VwLWZpZWxkIHtcbiAgICBAZXh0ZW5kICVpbnB1dC1ncm91cC1jaGlsZDtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4OiAxIDEgMHB4OyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIHplcm8tdW5pdFxuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgbWluLXdpZHRoOiAwO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBoZWlnaHQ6ICRoZWlnaHQ7XG4gICAgfVxuICB9XG5cbiAgLmlucHV0LWdyb3VwLWJ1dHRvbiB7XG4gICAgQGV4dGVuZCAlaW5wdXQtZ3JvdXAtY2hpbGQ7XG4gICAgcGFkZGluZy10b3A6IDA7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIHdpZHRoOiAxJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG5cbiAgICBhLFxuICAgIGlucHV0LFxuICAgIGJ1dHRvbixcbiAgICBsYWJlbCB7XG4gICAgICBAZXh0ZW5kICVpbnB1dC1ncm91cC1jaGlsZDtcblxuICAgICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgaGVpZ2h0OiAkaGVpZ2h0O1xuICAgICAgfVxuICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgIGZvbnQtc2l6ZTogJGlucHV0LWZvbnQtc2l6ZTtcbiAgICB9XG4gIH1cblxuICAvLyBTcGVjaWZpY2l0eSBidW1wIG5lZWRlZCB0byBwcmV2ZW50IG92ZXJyaWRlIGJ5IGJ1dHRvbnNcbiAgQGlmIG5vdCAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC1idXR0b24ge1xuICAgICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGJvcmRlciBhcm91bmQgY3VzdG9tIGZpZWxkc2V0cy5cbi8vLyBAdHlwZSBCb3JkZXJcbiRmaWVsZHNldC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgaW5zaWRlIGN1c3RvbSBmaWVsZHNldHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZmllbGRzZXQtcGFkZGluZzogcmVtLWNhbGMoMjApICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBtYXJnaW4gYXJvdW5kIGN1c3RvbSBmaWVsZHNldHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZmllbGRzZXQtbWFyZ2luOiByZW0tY2FsYygxOCAwKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBiZXR3ZWVuIHRoZSBsZWdlbmQgdGV4dCBhbmQgZmllbGRzZXQgYm9yZGVyLlxuLy8vIEB0eXBlIE51bWJlclxuJGxlZ2VuZC1wYWRkaW5nOiByZW0tY2FsYygwIDMpICFkZWZhdWx0O1xuXG5AbWl4aW4gZmllbGRzZXQge1xuICBtYXJnaW46ICRmaWVsZHNldC1tYXJnaW47XG4gIHBhZGRpbmc6ICRmaWVsZHNldC1wYWRkaW5nO1xuICBib3JkZXI6ICRmaWVsZHNldC1ib3JkZXI7XG5cbiAgbGVnZW5kIHtcbiAgICAvLyBDb3ZlcnMgdXAgdGhlIGZpZWxkc2V0J3MgYm9yZGVyIHRvIGNyZWF0ZSBhcnRpZmljaWFsIHBhZGRpbmdcbiAgICBtYXJnaW46IDA7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogcmVtLWNhbGMoLTMpO1xuICAgIHBhZGRpbmc6ICRsZWdlbmQtcGFkZGluZztcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLWZpZWxkc2V0IHtcbiAgZmllbGRzZXQge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogMDtcbiAgfVxuXG4gIGxlZ2VuZCB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1ib3R0b206ICRmb3JtLXNwYWNpbmcgKiAwLjU7XG4gIH1cblxuICAuZmllbGRzZXQge1xuICAgIEBpbmNsdWRlIGZpZWxkc2V0O1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3Igc2VsZWN0IG1lbnVzLlxuLy8vIEB0eXBlIENvbG9yXG4kc2VsZWN0LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIHRoZSBkcm9wZG93biB0cmlhbmdsZSBpbnNpZGUgc2VsZWN0IG1lbnVzLiBTZXQgdG8gYHRyYW5zcGFyZW50YCB0byByZW1vdmUgaXQgZW50aXJlbHkuXG4vLy8gQHR5cGUgQ29sb3JcbiRzZWxlY3QtdHJpYW5nbGUtY29sb3I6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHJhZGl1cyBmb3Igc2VsZWN0IG1lbnVzLlxuLy8vIEB0eXBlIENvbG9yXG4kc2VsZWN0LXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3JtLXNlbGVjdCB7XG4gICRoZWlnaHQ6ICgkaW5wdXQtZm9udC1zaXplICogdW5pdGxlc3MtY2FsYygkaW5wdXQtbGluZS1oZWlnaHQpKSArIChnZXQtc2lkZSgkaW5wdXQtcGFkZGluZywgJ3RvcCcpICsgZ2V0LXNpZGUoJGlucHV0LXBhZGRpbmcsICdib3R0b20nKSkgLSByZW0tY2FsYygxKTtcblxuICBoZWlnaHQ6ICRoZWlnaHQ7XG4gIG1hcmdpbjogMCAwICRmb3JtLXNwYWNpbmc7XG4gIHBhZGRpbmc6ICRpbnB1dC1wYWRkaW5nO1xuXG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGJvcmRlcjogJGlucHV0LWJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogJHNlbGVjdC1yYWRpdXM7XG4gIGJhY2tncm91bmQtY29sb3I6ICRzZWxlY3QtYmFja2dyb3VuZDtcblxuICBmb250LWZhbWlseTogJGlucHV0LWZvbnQtZmFtaWx5O1xuICBmb250LXNpemU6ICRpbnB1dC1mb250LXNpemU7XG4gIGZvbnQtd2VpZ2h0OiAkaW5wdXQtZm9udC13ZWlnaHQ7XG4gIGxpbmUtaGVpZ2h0OiAkaW5wdXQtbGluZS1oZWlnaHQ7XG4gIGNvbG9yOiAkaW5wdXQtY29sb3I7XG5cbiAgQGlmICRzZWxlY3QtdHJpYW5nbGUtY29sb3IgIT0gdHJhbnNwYXJlbnQge1xuICAgIEBpbmNsdWRlIGJhY2tncm91bmQtdHJpYW5nbGUoJHNlbGVjdC10cmlhbmdsZS1jb2xvcik7XG4gICAgYmFja2dyb3VuZC1vcmlnaW46IGNvbnRlbnQtYm94O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246ICRnbG9iYWwtcmlnaHQgKC0kZm9ybS1zcGFjaW5nKSBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDlweCA2cHg7XG5cbiAgICBwYWRkaW5nLSN7JGdsb2JhbC1yaWdodH06ICgkZm9ybS1zcGFjaW5nICogMS41KTtcbiAgfVxuXG4gIEBpZiBoYXMtdmFsdWUoJGlucHV0LXRyYW5zaXRpb24pIHtcbiAgICB0cmFuc2l0aW9uOiAkaW5wdXQtdHJhbnNpdGlvbjtcbiAgfVxuXG4gIC8vIEZvY3VzIHN0YXRlXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYm9yZGVyOiAkaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1iYWNrZ3JvdW5kLWZvY3VzO1xuICAgIGJveC1zaGFkb3c6ICRpbnB1dC1zaGFkb3ctZm9jdXM7XG5cbiAgICBAaWYgaGFzLXZhbHVlKCRpbnB1dC10cmFuc2l0aW9uKSB7XG4gICAgICB0cmFuc2l0aW9uOiAkaW5wdXQtdHJhbnNpdGlvbjtcbiAgICB9XG4gIH1cblxuICAvLyBEaXNhYmxlZCBzdGF0ZVxuICAmOmRpc2FibGVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmFja2dyb3VuZC1kaXNhYmxlZDtcbiAgICBjdXJzb3I6ICRpbnB1dC1jdXJzb3ItZGlzYWJsZWQ7XG4gIH1cblxuICAvLyBIaWRlIHRoZSBkcm9wZG93biBhcnJvdyBzaG93biBpbiBuZXdlciBJRSB2ZXJzaW9uc1xuICAmOjotbXMtZXhwYW5kIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgJlttdWx0aXBsZV0ge1xuICAgIGhlaWdodDogYXV0bztcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tc2VsZWN0IHtcbiAgc2VsZWN0IHtcbiAgICBAaW5jbHVkZSBmb3JtLXNlbGVjdDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgc2xpZGVyXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGhlaWdodCBvZiB0aGUgc2xpZGVyLlxuLy8vIEB0eXBlIE51bWJlclxuJHNsaWRlci1oZWlnaHQ6IDAuNXJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBvZiB0aGUgc2xpZGVyJ3MgdHJhY2suXG4vLy8gQHR5cGUgQ29sb3JcbiRzbGlkZXItYmFja2dyb3VuZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIHRoZSBhY3RpdmUgZmlsbCBjb2xvciBvZiB0aGUgc2xpZGVyLlxuLy8vIEB0eXBlIENvbG9yXG4kc2xpZGVyLWZpbGwtYmFja2dyb3VuZDogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBoZWlnaHQgb2YgdGhlIGhhbmRsZSBvZiB0aGUgc2xpZGVyLlxuLy8vIEB0eXBlIE51bWJlclxuJHNsaWRlci1oYW5kbGUtaGVpZ2h0OiAxLjRyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHdpZHRoIG9mIHRoZSBoYW5kbGUgb2YgdGhlIHNsaWRlci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzbGlkZXItaGFuZGxlLXdpZHRoOiAxLjRyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIHRoZSBoYW5kbGUgZm9yIHRoZSBzbGlkZXIuXG4vLy8gQHR5cGUgQ29sb3JcbiRzbGlkZXItaGFuZGxlLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmYWRlIGFtb3VudCBvZiBhIGRpc2FibGVkIHNsaWRlci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzbGlkZXItb3BhY2l0eS1kaXNhYmxlZDogMC4yNSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcmFkaXVzIGZvciBzbGlkZXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc2xpZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXJhbmdlLWlucHV0IHtcbiAgaW5wdXRbdHlwZT1cInJhbmdlXCJdIHsgIC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tcXVhbGlmeWluZy1lbGVtZW50c1xuICAgICRtYXJnaW46ICgkc2xpZGVyLWhhbmRsZS1oZWlnaHQgLSAkc2xpZGVyLWhlaWdodCkgLyAyO1xuXG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi10b3A6ICRtYXJnaW47XG4gICAgbWFyZ2luLWJvdHRvbTogJG1hcmdpbjtcblxuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYm9yZGVyOiAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgIEBpZiBoYXMtdmFsdWUoJHNsaWRlci1yYWRpdXMpIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6ICRzbGlkZXItcmFkaXVzO1xuICAgIH1cblxuICAgICY6Zm9jdXMge1xuICAgICAgb3V0bGluZTogMDtcbiAgICB9XG5cbiAgICAmW2Rpc2FibGVkXSB7XG4gICAgICBvcGFjaXR5OiAkc2xpZGVyLW9wYWNpdHktZGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgLy8gc2Fzcy1saW50OmRpc2FibGUgbm8tdmVuZG9yLXByZWZpeFxuXG4gICAgLy8gQ2hyb21lL1NhZmFyaVxuICAgICY6Oi13ZWJraXQtc2xpZGVyLXJ1bm5hYmxlLXRyYWNrIHtcbiAgICAgIGhlaWdodDogJHNsaWRlci1oZWlnaHQ7XG4gICAgICBiYWNrZ3JvdW5kOiAkc2xpZGVyLWJhY2tncm91bmQ7XG4gICAgfVxuXG4gICAgJjo6LXdlYmtpdC1zbGlkZXItaGFuZGxlIHtcbiAgICAgIHdpZHRoOiAkc2xpZGVyLWhhbmRsZS13aWR0aDtcbiAgICAgIGhlaWdodDogJHNsaWRlci1oYW5kbGUtaGVpZ2h0O1xuICAgICAgbWFyZ2luLXRvcDogLSRtYXJnaW47XG5cbiAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgIGJhY2tncm91bmQ6ICRzbGlkZXItaGFuZGxlLWJhY2tncm91bmQ7XG5cbiAgICAgIEBpZiBoYXMtdmFsdWUoJHNsaWRlci1yYWRpdXMpIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJHNsaWRlci1yYWRpdXM7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRmlyZWZveFxuICAgICY6Oi1tb3otcmFuZ2UtdHJhY2sge1xuICAgICAgaGVpZ2h0OiAkc2xpZGVyLWhlaWdodDtcbiAgICAgIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgIGJhY2tncm91bmQ6ICRzbGlkZXItYmFja2dyb3VuZDtcbiAgICB9XG5cbiAgICAmOjotbW96LXJhbmdlLXRodW1iIHtcbiAgICAgIHdpZHRoOiAkc2xpZGVyLWhhbmRsZS13aWR0aDtcbiAgICAgIGhlaWdodDogJHNsaWRlci1oYW5kbGUtaGVpZ2h0O1xuICAgICAgbWFyZ2luLXRvcDogLSRtYXJnaW47XG5cbiAgICAgIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgIGJhY2tncm91bmQ6ICRzbGlkZXItaGFuZGxlLWJhY2tncm91bmQ7XG5cbiAgICAgIEBpZiBoYXMtdmFsdWUoJHNsaWRlci1yYWRpdXMpIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJHNsaWRlci1yYWRpdXM7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gSW50ZXJuZXQgRXhwbG9yZXJcbiAgICAmOjotbXMtdHJhY2sge1xuICAgICAgaGVpZ2h0OiAkc2xpZGVyLWhlaWdodDtcblxuICAgICAgYm9yZGVyOiAwO1xuICAgICAgYm9yZGVyLXRvcDogJG1hcmdpbiBzb2xpZCAkYm9keS1iYWNrZ3JvdW5kO1xuICAgICAgYm9yZGVyLWJvdHRvbTogJG1hcmdpbiBzb2xpZCAkYm9keS1iYWNrZ3JvdW5kO1xuICAgICAgYmFja2dyb3VuZDogJHNsaWRlci1iYWNrZ3JvdW5kO1xuXG4gICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB9XG5cbiAgICAmOjotbXMtdGh1bWIge1xuICAgICAgd2lkdGg6ICRzbGlkZXItaGFuZGxlLXdpZHRoO1xuICAgICAgaGVpZ2h0OiAkc2xpZGVyLWhhbmRsZS1oZWlnaHQ7XG4gICAgICBib3JkZXI6IDA7XG4gICAgICBiYWNrZ3JvdW5kOiAkc2xpZGVyLWhhbmRsZS1iYWNrZ3JvdW5kO1xuXG4gICAgICBAaWYgaGFzLXZhbHVlKCRzbGlkZXItcmFkaXVzKSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRzbGlkZXItcmFkaXVzO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6Oi1tcy1maWxsLWxvd2VyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRzbGlkZXItZmlsbC1iYWNrZ3JvdW5kO1xuICAgIH1cblxuICAgICY6Oi1tcy1maWxsLXVwcGVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRzbGlkZXItYmFja2dyb3VuZDtcbiAgICB9XG5cbiAgICBAYXQtcm9vdCB7XG4gICAgICBvdXRwdXQge1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICBtYXJnaW4tbGVmdDogMC41ZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkc2xpZGVyLWhhbmRsZS1oZWlnaHQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBwcm9ncmVzcy1iYXJcbi8vLy9cblxuLy8vIEhlaWdodCBvZiBhIHByb2dyZXNzIGJhci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwcm9ncmVzcy1oZWlnaHQ6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGEgcHJvZ3Jlc3MgYmFyLlxuLy8vIEB0eXBlIENvbG9yXG4kcHJvZ3Jlc3MtYmFja2dyb3VuZDogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIG1hcmdpbiBvZiBhIHByb2dyZXNzIGJhci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwcm9ncmVzcy1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3Igb2YgYSBwcm9ncmVzcyBiYXIncyBtZXRlci5cbi8vLyBAdHlwZSBDb2xvclxuJHByb2dyZXNzLW1ldGVyLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCByYWRpdXMgb2YgYSBwcm9ncmVzcyBiYXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcHJvZ3Jlc3MtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuQG1peGluIGZvdW5kYXRpb24tcHJvZ3Jlc3MtZWxlbWVudCB7XG4gIHByb2dyZXNzIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6ICRwcm9ncmVzcy1oZWlnaHQ7XG4gICAgbWFyZ2luLWJvdHRvbTogJHByb2dyZXNzLW1hcmdpbi1ib3R0b207XG5cbiAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgQGlmIGhhc3ZhbHVlKCRwcm9ncmVzcy1yYWRpdXMpIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6ICRwcm9ncmVzcy1yYWRpdXM7XG4gICAgfVxuXG4gICAgLy8gRm9yIEZpcmVmb3hcbiAgICBib3JkZXI6IDA7XG4gICAgYmFja2dyb3VuZDogJHByb2dyZXNzLWJhY2tncm91bmQ7XG5cbiAgICAmOjotd2Via2l0LXByb2dyZXNzLWJhciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkcHJvZ3Jlc3MtYmFja2dyb3VuZDtcblxuICAgICAgQGlmIGhhc3ZhbHVlKCRwcm9ncmVzcy1yYWRpdXMpIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJHByb2dyZXNzLXJhZGl1cztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOjotd2Via2l0LXByb2dyZXNzLXZhbHVlIHtcbiAgICAgIGJhY2tncm91bmQ6ICRwcm9ncmVzcy1tZXRlci1iYWNrZ3JvdW5kO1xuXG4gICAgICBAaWYgaGFzdmFsdWUoJHByb2dyZXNzLXJhZGl1cykge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkcHJvZ3Jlc3MtcmFkaXVzO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6Oi1tb3otcHJvZ3Jlc3MtYmFyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRwcm9ncmVzcy1tZXRlci1iYWNrZ3JvdW5kO1xuXG4gICAgICBAaWYgaGFzdmFsdWUoJHByb2dyZXNzLXJhZGl1cykge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkcHJvZ3Jlc3MtcmFkaXVzO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGZvdW5kYXRpb24tcGFsZXR0ZSB7XG4gICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgLy8gSW50ZXJuZXQgRXhwbG9yZXIgc2V0cyB0aGUgZmlsbCB3aXRoIGNvbG9yXG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgJjo6LXdlYmtpdC1wcm9ncmVzcy12YWx1ZSB7XG4gICAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6LW1vei1wcm9ncmVzcy1iYXIge1xuICAgICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEZvciBJRSBhbmQgRWRnZVxuICAgICY6Oi1tcy1maWxsIHtcbiAgICAgIEBpZiBoYXN2YWx1ZSgkcHJvZ3Jlc3MtcmFkaXVzKSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRwcm9ncmVzcy1yYWRpdXM7XG4gICAgICB9XG5cbiAgICAgIGJvcmRlcjogMDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIG1ldGVyXG4vLy8vXG5cbi8vLyBIZWlnaHQgb2YgYSBgPG1ldGVyPmAgZWxlbWVudC5cbi8vLyBAdHlwZSBMZW5ndGhcbiRtZXRlci1oZWlnaHQ6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgcmFkaXVzIG9mIGEgYDxtZXRlcj5gIGVsZW1lbnQuXG4vLy8gQHR5cGUgTGVuZ3RoXG4kbWV0ZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgYSBgPG1ldGVyPmAgZWxlbWVudC5cbi8vLyBAdHlwZSBDb2xvclxuJG1ldGVyLWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIE1ldGVyIGZpbGwgZm9yIGFuIG9wdGltYWwgdmFsdWUgaW4gYSBgPG1ldGVyPmAgZWxlbWVudC5cbi8vLyBAdHlwZSBDb2xvclxuJG1ldGVyLWZpbGwtZ29vZDogJHN1Y2Nlc3MtY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBNZXRlciBmaWxsIGZvciBhbiBhdmVyYWdlIHZhbHVlIGluIGEgYDxtZXRlcj5gIGVsZW1lbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiRtZXRlci1maWxsLW1lZGl1bTogJHdhcm5pbmctY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBNZXRlciBmaWxsIGZvciBhIHN1Ym9wdGltYWwgdmFsdWUgaW4gYSBgPG1ldGVyPmAgZWxlbWVudC5cbi8vLyBAdHlwZSBDb2xvclxuJG1ldGVyLWZpbGwtYmFkOiAkYWxlcnQtY29sb3IgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLW1ldGVyLWVsZW1lbnQge1xuICBtZXRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAkbWV0ZXItaGVpZ2h0O1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAvLyBEaXNhYmxlIGAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmVgIGZyb20gZ2V0dGluZyBwcmVmaXhlZCxcbiAgICAvLyBXZSBoYXZlIGRpc2FibGVkIGF1dG9wcmVmaXhlciBmaXJzdCBhbmQgYXJlIGp1c3Qgb25seSB1c2luZyBcbiAgICAvLyBgLW1vei1hcHBlYXJhbmNlOiBub25lYCBhcyBhIHByZWZpeCBhbmQgbmVnbGVjdGluZyB0aGUgd2Via2l0LlxuICAgIFxuICAgIC8qISBhdXRvcHJlZml4ZXI6IG9mZiAqL1xuICAgIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICBAaWYgaGFzLXZhbHVlKCRtZXRlci1yYWRpdXMpIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6ICRtZXRlci1yYWRpdXM7XG4gICAgfVxuXG4gICAgLy8gRm9yIEZpcmVmb3hcbiAgICBib3JkZXI6IDA7XG4gICAgYmFja2dyb3VuZDogJG1ldGVyLWJhY2tncm91bmQ7XG5cbiAgICAvLyBDaHJvbWUvU2FmYXJpL0VkZ2VcbiAgICAmOjotd2Via2l0LW1ldGVyLWJhciB7XG4gICAgICBib3JkZXI6IDA7XG4gICAgICBAaWYgaGFzLXZhbHVlKCRtZXRlci1yYWRpdXMpIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJG1ldGVyLXJhZGl1cztcbiAgICAgIH1cblxuICAgICAgYmFja2dyb3VuZDogJG1ldGVyLWJhY2tncm91bmQ7XG4gICAgfVxuXG4gICAgJjo6LXdlYmtpdC1tZXRlci1pbm5lci1lbGVtZW50IHtcbiAgICAgIEBpZiBoYXMtdmFsdWUoJG1ldGVyLXJhZGl1cykge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkbWV0ZXItcmFkaXVzO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6Oi13ZWJraXQtbWV0ZXItb3B0aW11bS12YWx1ZSB7XG4gICAgICBiYWNrZ3JvdW5kOiAkbWV0ZXItZmlsbC1nb29kO1xuXG4gICAgICBAaWYgaGFzLXZhbHVlKCRtZXRlci1yYWRpdXMpIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJG1ldGVyLXJhZGl1cztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOjotd2Via2l0LW1ldGVyLXN1Ym9wdGltdW0tdmFsdWUge1xuICAgICAgYmFja2dyb3VuZDogJG1ldGVyLWZpbGwtbWVkaXVtO1xuXG4gICAgICBAaWYgaGFzLXZhbHVlKCRtZXRlci1yYWRpdXMpIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJG1ldGVyLXJhZGl1cztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOjotd2Via2l0LW1ldGVyLWV2ZW4tbGVzcy1nb29kLXZhbHVlIHtcbiAgICAgIGJhY2tncm91bmQ6ICRtZXRlci1maWxsLWJhZDtcblxuICAgICAgQGlmIGhhcy12YWx1ZSgkbWV0ZXItcmFkaXVzKSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRtZXRlci1yYWRpdXM7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjo6LW1vei1tZXRlci1iYXIge1xuICAgICAgYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG5cbiAgICAgIEBpZiBoYXMtdmFsdWUoJG1ldGVyLXJhZGl1cykge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkbWV0ZXItcmFkaXVzO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6LW1vei1tZXRlci1vcHRpbXVtOjotbW96LW1ldGVyLWJhciB7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgZm9yY2UtcHNldWRvLW5lc3RpbmdcbiAgICAgIGJhY2tncm91bmQ6ICRtZXRlci1maWxsLWdvb2Q7XG4gICAgfVxuXG4gICAgJjotbW96LW1ldGVyLXN1Yi1vcHRpbXVtOjotbW96LW1ldGVyLWJhciB7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgZm9yY2UtcHNldWRvLW5lc3RpbmdcbiAgICAgIGJhY2tncm91bmQ6ICRtZXRlci1maWxsLW1lZGl1bTtcbiAgICB9XG5cbiAgICAmOi1tb3otbWV0ZXItc3ViLXN1Yi1vcHRpbXVtOjotbW96LW1ldGVyLWJhciB7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgZm9yY2UtcHNldWRvLW5lc3RpbmdcbiAgICAgIGJhY2tncm91bmQ6ICRtZXRlci1maWxsLWJhZDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGFiaWRlXG4vLy8vXG5cbi8vLyBTZXRzIGlmIGVycm9yIHN0eWxlcyBzaG91bGQgYmUgYWRkZWQgdG8gaW5wdXRzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRhYmlkZS1pbnB1dHM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGlmIGVycm9yIHN0eWxlcyBzaG91bGQgYmUgYWRkZWQgdG8gbGFiZWxzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRhYmlkZS1sYWJlbHM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIHRvIHVzZSBmb3IgaW52YWxpZCB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWJhY2tncm91bmQtaW52YWxpZDogZ2V0LWNvbG9yKGFsZXJ0KSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHRvIHVzZSBmb3IgbGFiZWxzIG9mIGludmFsaWQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kZm9ybS1sYWJlbC1jb2xvci1pbnZhbGlkOiBnZXQtY29sb3IoYWxlcnQpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IGNvbG9yIGZvciBmb3JtIGVycm9yIHRleHQuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1lcnJvci1jb2xvcjogZ2V0LWNvbG9yKGFsZXJ0KSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBzaXplIGZvciBmb3JtIGVycm9yIHRleHQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kaW5wdXQtZXJyb3ItZm9udC1zaXplOiByZW0tY2FsYygxMikgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgd2VpZ2h0IGZvciBmb3JtIGVycm9yIHRleHQuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGlucHV0LWVycm9yLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkICFkZWZhdWx0O1xuXG4vLy8gU3R5bGVzIHRoZSBiYWNrZ3JvdW5kIGFuZCBib3JkZXIgb2YgYW4gaW5wdXQgZmllbGQgdG8gaGF2ZSBhbiBlcnJvciBzdGF0ZS5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kIFskYWxlcnQtY29sb3JdIC0gQ29sb3IgdG8gdXNlIGZvciB0aGUgYmFja2dyb3VuZCBhbmQgYm9yZGVyLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFja2dyb3VuZC1saWdodGVuIFsxMCVdIC0gTGlnaHRuZXNzIGxldmVsIG9mIHRoZSBiYWNrZ3JvdW5kIGNvbG9yLlxuQG1peGluIGZvcm0taW5wdXQtZXJyb3IoXG4gICRiYWNrZ3JvdW5kOiAkaW5wdXQtYmFja2dyb3VuZC1pbnZhbGlkLFxuICAkYmFja2dyb3VuZC1saWdodGVuOiAxMCVcbikge1xuICAmOm5vdCg6Zm9jdXMpIHtcbiAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1peCgkYmFja2dyb3VuZCwgJHdoaXRlLCAkYmFja2dyb3VuZC1saWdodGVuKTtcbiAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICBjb2xvcjogJGJhY2tncm91bmQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIGVycm9yIHN0eWxlcyB0byBhIGZvcm0gZWxlbWVudCwgdXNpbmcgdGhlIHZhbHVlcyBpbiB0aGUgc2V0dGluZ3MgZmlsZS5cbkBtaXhpbiBmb3JtLWVycm9yIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgbWFyZ2luLXRvcDogJGZvcm0tc3BhY2luZyAqIC0wLjU7XG4gIG1hcmdpbi1ib3R0b206ICRmb3JtLXNwYWNpbmc7XG5cbiAgZm9udC1zaXplOiAkaW5wdXQtZXJyb3ItZm9udC1zaXplO1xuICBmb250LXdlaWdodDogJGlucHV0LWVycm9yLWZvbnQtd2VpZ2h0O1xuICBjb2xvcjogJGlucHV0LWVycm9yLWNvbG9yO1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLWVycm9yIHtcbiAgQGlmICRhYmlkZS1pbnB1dHMge1xuICAgIC8vIEVycm9yIGNsYXNzIGZvciBpbnZhbGlkIGlucHV0c1xuICAgIC5pcy1pbnZhbGlkLWlucHV0IHtcbiAgICAgIEBpbmNsdWRlIGZvcm0taW5wdXQtZXJyb3I7XG4gICAgfVxuICB9XG5cbiAgQGlmICRhYmlkZS1sYWJlbHMge1xuICAgIC8vIEVycm9yIGNsYXNzIGZvciBsYWJlbHMgb2YgaW52YWxpZCBvdXRwdXRzXG4gICAgLmlzLWludmFsaWQtbGFiZWwge1xuICAgICAgY29sb3I6ICRmb3JtLWxhYmVsLWNvbG9yLWludmFsaWQ7XG4gICAgfVxuICB9XG5cbiAgLy8gRm9ybSBlcnJvciBlbGVtZW50XG4gIC5mb3JtLWVycm9yIHtcbiAgICBAaW5jbHVkZSBmb3JtLWVycm9yO1xuXG4gICAgJi5pcy12aXNpYmxlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLyBIaWRlIGFuIGVsZW1lbnQgYnkgZGVmYXVsdCwgb25seSBkaXNwbGF5aW5nIGl0IGFib3ZlIGEgY2VydGFpbiBzY3JlZW4gc2l6ZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIC0gQnJlYWtwb2ludCB0byB1c2UuICoqTXVzdCBiZSBhIGJyZWFrcG9pbnQgZGVmaW5lZCBpbiBgJGJyZWFrcG9pbnRzYC4qKlxuQG1peGluIHNob3ctZm9yKCRzaXplKSB7XG4gICRzaXplOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJHNpemUpO1xuICAkc2l6ZTogLXpmLWJwLXRvLWVtKCRzaXplKSAtICgxIC8gMTYpO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUgZG93bikge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG4vLy8gSGlkZSBhbiBlbGVtZW50IGJ5IGRlZmF1bHQsIG9ubHkgZGlzcGxheWluZyBpdCB3aXRoaW4gYSBjZXJ0YWluIGJyZWFrcG9pbnQuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSAtIEJyZWFrcG9pbnQgdG8gdXNlLiAqKk11c3QgYmUgYSBicmVha3BvaW50IGRlZmluZWQgaW4gYCRicmVha3BvaW50c2AuKipcbkBtaXhpbiBzaG93LWZvci1vbmx5KCRzaXplKSB7XG4gICRsb3dlci1ib3VuZC1zaXplOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJHNpemUpO1xuICAkdXBwZXItYm91bmQtc2l6ZTogLXpmLW1hcC1uZXh0KCRicmVha3BvaW50cywgJHNpemUpO1xuXG4gIC8vIG1vcmUgb2Z0ZW4gdGhhbiBub3QgdGhpcyB3aWxsIGJlIGNvcnJlY3QsIGp1c3Qgb25lIHRpbWUgcm91bmQgdGhlIGxvb3AgaXQgd29uJ3Qgc28gc2V0IGluIHNjb3BlIGhlcmVcbiAgJGxvd2VyLWJvdW5kOiAtemYtYnAtdG8tZW0oJGxvd2VyLWJvdW5kLXNpemUpIC0gKDEgLyAxNik7XG4gIC8vIHRlc3QgYWN0dWFsIGxvd2VyLWJvdW5kLXNpemUsIGlmIDAgc2V0IGl0IHRvIDBlbVxuICBAaWYgc3RyaXAtdW5pdCgkbG93ZXItYm91bmQtc2l6ZSkgPT0gMCB7XG4gICAgJGxvd2VyLWJvdW5kOiAtemYtYnAtdG8tZW0oJGxvd2VyLWJvdW5kLXNpemUpO1xuICB9XG5cbiAgQGlmICR1cHBlci1ib3VuZC1zaXplID09IG51bGwge1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRsb3dlci1ib3VuZCkge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgJHVwcGVyLWJvdW5kOiAtemYtYnAtdG8tZW0oJHVwcGVyLWJvdW5kLXNpemUpO1xuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGxvd2VyLWJvdW5kKSwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkdXBwZXItYm91bmQpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cblxuXG4vLy8gU2hvdyBhbiBlbGVtZW50IGJ5IGRlZmF1bHQsIGFuZCBoaWRlIGl0IGFib3ZlIGEgY2VydGFpbiBzY3JlZW4gc2l6ZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIC0gQnJlYWtwb2ludCB0byB1c2UuICoqTXVzdCBiZSBhIGJyZWFrcG9pbnQgZGVmaW5lZCBpbiBgJGJyZWFrcG9pbnRzYC4qKlxuQG1peGluIGhpZGUtZm9yKCRzaXplKSB7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLy8vIFNob3cgYW4gZWxlbWVudCBieSBkZWZhdWx0LCBhbmQgaGlkZSBpdCBhYm92ZSBhIGNlcnRhaW4gc2NyZWVuIHNpemUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSAtIEJyZWFrcG9pbnQgdG8gdXNlLiAqKk11c3QgYmUgYSBicmVha3BvaW50IGRlZmluZWQgaW4gYCRicmVha3BvaW50c2AuKipcbkBtaXhpbiBoaWRlLWZvci1vbmx5KCRzaXplKSB7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUgb25seSkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi12aXNpYmlsaXR5LWNsYXNzZXMge1xuICAvLyBCYXNpYyBoaWRpbmcgY2xhc3Nlc1xuICAuaGlkZSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmludmlzaWJsZSB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICB9XG5cbiAgLy8gUmVzcG9uc2l2ZSB2aXNpYmlsaXR5IGNsYXNzZXNcbiAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgIC5oaWRlLWZvci0jeyRzaXplfSB7XG4gICAgICAgIEBpbmNsdWRlIGhpZGUtZm9yKCRzaXplKTtcbiAgICAgIH1cblxuICAgICAgLnNob3ctZm9yLSN7JHNpemV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvdy1mb3IoJHNpemUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5oaWRlLWZvci0jeyRzaXplfS1vbmx5IHtcbiAgICAgIEBpbmNsdWRlIGhpZGUtZm9yLW9ubHkoJHNpemUpO1xuICAgIH1cblxuICAgIC5zaG93LWZvci0jeyRzaXplfS1vbmx5IHtcbiAgICAgIEBpbmNsdWRlIHNob3ctZm9yLW9ubHkoJHNpemUpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFNjcmVlbiByZWFkZXIgdmlzaWJpbGl0eSBjbGFzc2VzXG4gIC8vIE5lZWQgYSBcImhpZGUtZm9yLXNyXCIgY2xhc3M/IEFkZCBhcmlhLWhpZGRlbj0ndHJ1ZScgdG8gdGhlIGVsZW1lbnRcbiAgLnNob3ctZm9yLXNyLFxuICAuc2hvdy1vbi1mb2N1cyB7XG4gICAgQGluY2x1ZGUgZWxlbWVudC1pbnZpc2libGU7XG4gIH1cblxuICAvLyBPbmx5IGRpc3BsYXkgdGhlIGVsZW1lbnQgd2hlbiBpdCdzIGZvY3VzZWRcbiAgLnNob3ctb24tZm9jdXMge1xuICAgICY6YWN0aXZlLFxuICAgICY6Zm9jdXMge1xuICAgICAgQGluY2x1ZGUgZWxlbWVudC1pbnZpc2libGUtb2ZmO1xuICAgIH1cbiAgfVxuXG4gIC8vIExhbmRzY2FwZSBhbmQgcG9ydHJhaXQgdmlzaWJpbGl0eVxuICAuc2hvdy1mb3ItbGFuZHNjYXBlLFxuICAuaGlkZS1mb3ItcG9ydHJhaXQge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhbmRzY2FwZSkge1xuICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHBvcnRyYWl0KSB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgLmhpZGUtZm9yLWxhbmRzY2FwZSxcbiAgLnNob3ctZm9yLXBvcnRyYWl0IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhbmRzY2FwZSkge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQocG9ydHJhaXQpIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmbG9hdFxuLy8vL1xuXG5AbWl4aW4gZm91bmRhdGlvbi1mbG9hdC1jbGFzc2VzIHtcbiAgLmZsb2F0LWxlZnQge1xuICAgIGZsb2F0OiBsZWZ0ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuZmxvYXQtcmlnaHQge1xuICAgIGZsb2F0OiByaWdodCAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmZsb2F0LWNlbnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICB9XG5cbiAgLmNsZWFyZml4IHtcbiAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgYnV0dG9uXG4vLy8vXG5cbi8vLyBGb250IGZhbWlseSBmb3IgYnV0dG9uIGVsZW1lbnRzLlxuLy8vIEB0eXBlIEZvbnRcbiRidXR0b24tZm9udC1mYW1pbHk6IGluaGVyaXQgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGluc2lkZSBidXR0b25zLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tcGFkZGluZzogMC44NWVtIDFlbSAhZGVmYXVsdDtcblxuLy8vIE1hcmdpbiBhcm91bmQgYnV0dG9ucy5cbi8vLyBAdHlwZSBMaXN0XG4kYnV0dG9uLW1hcmdpbjogMCAwICRnbG9iYWwtbWFyZ2luIDAgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZpbGwgZm9yIGJ1dHRvbnMuIENhbiBlaXRoZXIgYmUgYHNvbGlkYCBvciBgaG9sbG93YC5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kYnV0dG9uLWZpbGw6IHNvbGlkICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIENvbG9yXG4kYnV0dG9uLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvbiBob3ZlciBmb3IgYnV0dG9ucy5cbi8vLyBAdHlwZSBDb2xvclxuJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyOiBzY2FsZS1jb2xvcigkYnV0dG9uLWJhY2tncm91bmQsICRsaWdodG5lc3M6IC0xNSUpICFkZWZhdWx0O1xuXG4vLy8gRm9udCBjb2xvciBmb3IgYnV0dG9ucy5cbi8vLyBAdHlwZSBMaXN0XG4kYnV0dG9uLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBBbHRlcm5hdGl2ZSBmb250IGNvbG9yIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tY29sb3ItYWx0OiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgcmFkaXVzIGZvciBidXR0b25zLCBkZWZhdWx0ZWQgdG8gZ2xvYmFsLXJhZGl1cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRidXR0b24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciB3aWR0aCBmb3IgaG9sbG93IG91dGxpbmUgYnV0dG9uc1xuLy8vIEB0eXBlIE51bWJlclxuJGJ1dHRvbi1ob2xsb3ctYm9yZGVyLXdpZHRoOiAxcHggIWRlZmF1bHQ7XG5cbi8vLyBTaXplcyBmb3IgYnV0dG9ucy5cbi8vLyBAdHlwZSBNYXBcbiRidXR0b24tc2l6ZXM6IChcbiAgdGlueTogMC42cmVtLFxuICBzbWFsbDogMC43NXJlbSxcbiAgZGVmYXVsdDogMC45cmVtLFxuICBsYXJnZTogMS4yNXJlbSxcbikgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvcmluZyBjbGFzc2VzLiBBIG1hcCBvZiBjbGFzc2VzIHRvIG91dHB1dCBpbiB5b3VyIENTUywgbGlrZSBgLnNlY29uZGFyeWAsIGAuc3VjY2Vzc2AsIGFuZCBzbyBvbi5cbi8vLyBAdHlwZSBNYXBcbiRidXR0b24tcGFsZXR0ZTogJGZvdW5kYXRpb24tcGFsZXR0ZSAhZGVmYXVsdDtcblxuLy8vIG9wYWNpdHkgZm9yIGEgZGlzYWJsZWQgYnV0dG9uLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tb3BhY2l0eS1kaXNhYmxlZDogMC4yNSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgbGlnaHRuZXNzIG9uIGhvdmVyIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIE51bWJlclxuJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyLWxpZ2h0bmVzczogLTIwJSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIGxpZ2h0bmVzcyBvbiBob3ZlciBmb3IgaG9sbG93IGJ1dHRvbnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnV0dG9uLWhvbGxvdy1ob3Zlci1saWdodG5lc3M6IC01MCUgIWRlZmF1bHQ7XG5cbi8vIEludGVybmFsOiBmbGlwIGZyb20gbWFyZ2luLXJpZ2h0IHRvIG1hcmdpbi1sZWZ0IGZvciBkZWZhdWx0c1xuQGlmICRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gJ3J0bCcge1xuICAkYnV0dG9uLW1hcmdpbjogMCAwICRnbG9iYWwtbWFyZ2luICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xufVxuXG4vLy8gdHJhbnNpdGlvbnMgZm9yIGJ1dHRvbnMuXG4vLy8gQHR5cGUgTGlzdFxuJGJ1dHRvbi10cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMjVzIGVhc2Utb3V0LCBjb2xvciAwLjI1cyBlYXNlLW91dCAhZGVmYXVsdDtcblxuLy8gVE9ETzogRG9jdW1lbnQgYnV0dG9uLWJhc2UoKSBtaXhpblxuQG1peGluIGJ1dHRvbi1iYXNlIHtcbiAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG1hcmdpbjogJGJ1dHRvbi1tYXJnaW47XG4gIGZvbnQtZmFtaWx5OiAkYnV0dG9uLWZvbnQtZmFtaWx5O1xuXG4gIEBpZiAodHlwZS1vZigkYnV0dG9uLXBhZGRpbmcpID09ICdtYXAnKSB7XG4gICAgQGVhY2ggJHNpemUsICRwYWRkaW5nIGluICRidXR0b24tcGFkZGluZyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgIHBhZGRpbmc6ICRwYWRkaW5nO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgcGFkZGluZzogJGJ1dHRvbi1wYWRkaW5nO1xuICB9XG5cbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogJGJ1dHRvbi1yYWRpdXM7XG4gIHRyYW5zaXRpb246ICRidXR0b24tdHJhbnNpdGlvbjtcblxuICBmb250LXNpemU6IG1hcC1nZXQoJGJ1dHRvbi1zaXplcywgZGVmYXVsdCk7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLy8vIEV4cGFuZHMgYSBidXR0b24gdG8gbWFrZSBpdCBmdWxsLXdpZHRoLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGV4cGFuZCBbdHJ1ZV0gLSBTZXQgdG8gYHRydWVgIHRvIGVuYWJsZSB0aGUgZXhwYW5kIGJlaGF2aW9yLiBTZXQgdG8gYGZhbHNlYCB0byByZXZlcnNlIHRoaXMgYmVoYXZpb3IuXG5AbWl4aW4gYnV0dG9uLWV4cGFuZCgkZXhwYW5kOiB0cnVlKSB7XG4gIEBpZiAkZXhwYW5kIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gIH1cbiAgQGVsc2Uge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogYXV0bztcbiAgICBtYXJnaW46ICRidXR0b24tbWFyZ2luO1xuICB9XG59XG5cbi8vLyBTZXRzIHRoZSB2aXN1YWwgc3R5bGUgb2YgYSBidXR0b24uXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQgWyRidXR0b24tYmFja2dyb3VuZF0gLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBidXR0b24uXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQtaG92ZXIgWyRidXR0b24tYmFja2dyb3VuZC1ob3Zlcl0gLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBidXR0b24gb24gaG92ZXIuIFNldCB0byBgYXV0b2AgdG8gaGF2ZSB0aGUgbWl4aW4gYXV0b21hdGljYWxseSBnZW5lcmF0ZSBhIGhvdmVyIGNvbG9yLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJ1dHRvbi1jb2xvcl0gLSBUZXh0IGNvbG9yIG9mIHRoZSBidXR0b24uIFNldCB0byBgYXV0b2AgdG8gYXV0b21hdGljYWxseSBnZW5lcmF0ZSBhIGNvbG9yIGJhc2VkIG9uIHRoZSBiYWNrZ3JvdW5kIGNvbG9yLlxuQG1peGluIGJ1dHRvbi1zdHlsZShcbiAgJGJhY2tncm91bmQ6ICRidXR0b24tYmFja2dyb3VuZCxcbiAgJGJhY2tncm91bmQtaG92ZXI6ICRidXR0b24tYmFja2dyb3VuZC1ob3ZlcixcbiAgJGNvbG9yOiAkYnV0dG9uLWNvbG9yLFxuICAkYmFja2dyb3VuZC1ob3Zlci1saWdodG5lc3M6ICRidXR0b24tYmFja2dyb3VuZC1ob3Zlci1saWdodG5lc3Ncbikge1xuICBAaWYgJGNvbG9yID09IGF1dG8ge1xuICAgICRjb2xvcjogY29sb3ItcGljay1jb250cmFzdCgkYmFja2dyb3VuZCwgKCRidXR0b24tY29sb3IsICRidXR0b24tY29sb3ItYWx0KSk7XG4gIH1cblxuICBAaWYgJGJhY2tncm91bmQtaG92ZXIgPT0gYXV0byB7XG4gICAgJGJhY2tncm91bmQtaG92ZXI6IHNjYWxlLWNvbG9yKCRiYWNrZ3JvdW5kLCAkbGlnaHRuZXNzOiAkYmFja2dyb3VuZC1ob3Zlci1saWdodG5lc3MpO1xuICB9XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gIGNvbG9yOiAkY29sb3I7XG5cbiAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQtaG92ZXI7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgfVxufVxuXG4vLy8gUmVtb3ZlcyBiYWNrZ3JvdW5kIGZpbGwgb24gaG92ZXIgYW5kIGZvY3VzIGZvciBob2xsb3cgYnV0dG9ucy5cbkBtaXhpbiBidXR0b24taG9sbG93IHtcbiAgJixcbiAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cblxuICAmLmRpc2FibGVkLFxuICAmW2Rpc2FibGVkXSB7XG4gICAgJixcbiAgICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gYnV0dG9uLWhvbGxvdy1zdHlsZShcbiAgJGNvbG9yOiAkYnV0dG9uLWJhY2tncm91bmQsXG4gICRob3Zlci1saWdodG5lc3M6ICRidXR0b24taG9sbG93LWhvdmVyLWxpZ2h0bmVzcyxcbiAgJGJvcmRlci13aWR0aDogJGJ1dHRvbi1ob2xsb3ctYm9yZGVyLXdpZHRoXG4pIHtcbiAgJGNvbG9yLWhvdmVyOiBzY2FsZS1jb2xvcigkY29sb3IsICRsaWdodG5lc3M6ICRob3Zlci1saWdodG5lc3MpO1xuXG4gIGJvcmRlcjogJGJvcmRlci13aWR0aCBzb2xpZCAkY29sb3I7XG4gIGNvbG9yOiAkY29sb3I7XG5cbiAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgYm9yZGVyLWNvbG9yOiAkY29sb3ItaG92ZXI7XG4gICAgY29sb3I6ICRjb2xvci1ob3ZlcjtcbiAgICAmLmRpc2FibGVkLFxuICAgICZbZGlzYWJsZWRdIHtcbiAgICAgIGJvcmRlcjogJGJvcmRlci13aWR0aCBzb2xpZCAkY29sb3I7XG4gICAgICBjb2xvcjogJGNvbG9yO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBkaXNhYmxlZCBzdHlsZXMgdG8gYSBidXR0b24gYnkgZmFkaW5nIHRoZSBlbGVtZW50LCByZXNldGluZyB0aGUgY3Vyc29yLCBhbmQgZGlzYWJsaW5nIHBvaW50ZXIgZXZlbnRzLlxuLy8vIEBwYXJhbSBbQ29sb3JdICRiYWNrZ3JvdW5kIFskYnV0dG9uLWJhY2tncm91bmRdIC0gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgZGlzYWJsZWQgYnV0dG9uLlxuLy8vIEBwYXJhbSBbQ29sb3JdICRjb2xvciBbJGJ1dHRvbi1jb2xvcl0gLSBUZXh0IGNvbG9yIG9mIHRoZSBkaXNhYmxlZCBidXR0b24uIFNldCB0byBgYXV0b2AgdG8gaGF2ZSB0aGUgbWl4aW4gYXV0b21hdGljYWxseSBnZW5lcmF0ZSBhIGNvbG9yIGJhc2VkIG9uIHRoZSBiYWNrZ3JvdW5kIGNvbG9yLlxuQG1peGluIGJ1dHRvbi1kaXNhYmxlZChcbiAgJGJhY2tncm91bmQ6ICRidXR0b24tYmFja2dyb3VuZCxcbiAgJGNvbG9yOiAkYnV0dG9uLWNvbG9yXG4pIHtcbiAgQGlmICRjb2xvciA9PSBhdXRvIHtcbiAgICAkY29sb3I6IGNvbG9yLXBpY2stY29udHJhc3QoJGJhY2tncm91bmQsICgkYnV0dG9uLWNvbG9yLCAkYnV0dG9uLWNvbG9yLWFsdCkpO1xuICB9XG5cbiAgb3BhY2l0eTogJGJ1dHRvbi1vcGFjaXR5LWRpc2FibGVkO1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICYsICY6aG92ZXIsICY6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gIH1cbn1cblxuLy8vIEFkZHMgYSBkcm9wZG93biBhcnJvdyB0byBhIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHNpemUgWzAuNGVtXSAtIFNpemUgb2YgdGhlIGFycm93LiBXZSByZWNvbW1lbmQgdXNpbmcgYW4gYGVtYCB2YWx1ZSBzbyB0aGUgdHJpYW5nbGUgc2NhbGVzIHdoZW4gdXNlZCBpbnNpZGUgZGlmZmVyZW50IHNpemVzIG9mIGJ1dHRvbnMuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFt3aGl0ZV0gLSBDb2xvciBvZiB0aGUgYXJyb3cuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRvZmZzZXQgWyRidXR0b24tcGFkZGluZ10gLSBEaXN0YW5jZSBiZXR3ZWVuIHRoZSBhcnJvdyBhbmQgdGhlIHRleHQgb2YgdGhlIGJ1dHRvbi4gRGVmYXVsdHMgdG8gd2hhdGV2ZXIgdGhlIHJpZ2h0IHBhZGRpbmcgb2YgYSBidXR0b24gaXMuXG5AbWl4aW4gYnV0dG9uLWRyb3Bkb3duKFxuICAkc2l6ZTogMC40ZW0sXG4gICRjb2xvcjogJHdoaXRlLFxuICAkb2Zmc2V0OiBnZXQtc2lkZSgkYnV0dG9uLXBhZGRpbmcsIHJpZ2h0KVxuKSB7XG4gICY6OmFmdGVyIHtcbiAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJHNpemUsICRjb2xvciwgZG93bik7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMC40ZW07IC8vIEFsaWducyB0aGUgYXJyb3cgd2l0aCB0aGUgdGV4dCBvZiB0aGUgYnV0dG9uXG5cbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZmxvYXQ6ICN7JGdsb2JhbC1yaWdodH07XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJG9mZnNldDtcbiAgfVxufVxuXG4vLy8gQWRkcyBhbGwgc3R5bGVzIGZvciBhIGJ1dHRvbi4gRm9yIG1vcmUgZ3JhbnVsYXIgY29udHJvbCBvdmVyIHN0eWxlcywgdXNlIHRoZSBpbmRpdmlkdWFsIGJ1dHRvbiBtaXhpbnMuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZXhwYW5kIFtmYWxzZV0gLSBTZXQgdG8gYHRydWVgIHRvIG1ha2UgdGhlIGJ1dHRvbiBmdWxsLXdpZHRoLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kIFskYnV0dG9uLWJhY2tncm91bmRdIC0gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgYnV0dG9uLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kLWhvdmVyIFskYnV0dG9uLWJhY2tncm91bmQtaG92ZXJdIC0gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgYnV0dG9uIG9uIGhvdmVyLiBTZXQgdG8gYGF1dG9gIHRvIGhhdmUgdGhlIG1peGluIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgYSBob3ZlciBjb2xvci5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRidXR0b24tY29sb3JdIC0gVGV4dCBjb2xvciBvZiB0aGUgYnV0dG9uLiBTZXQgdG8gYGF1dG9gIHRvIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgYSBjb2xvciBiYXNlZCBvbiB0aGUgYmFja2dyb3VuZCBjb2xvci5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzdHlsZSBbc29saWRdIC0gU2V0IHRvIGBob2xsb3dgIHRvIGNyZWF0ZSBhIGhvbGxvdyBidXR0b24uIFRoZSBjb2xvciBkZWZpbmVkIGluIGAkYmFja2dyb3VuZGAgd2lsbCBiZSB1c2VkIGFzIHRoZSBwcmltYXJ5IGNvbG9yIG9mIHRoZSBidXR0b24uXG5AbWl4aW4gYnV0dG9uKFxuICAkZXhwYW5kOiBmYWxzZSxcbiAgJGJhY2tncm91bmQ6ICRidXR0b24tYmFja2dyb3VuZCxcbiAgJGJhY2tncm91bmQtaG92ZXI6ICRidXR0b24tYmFja2dyb3VuZC1ob3ZlcixcbiAgJGNvbG9yOiAkYnV0dG9uLWNvbG9yLFxuICAkc3R5bGU6ICRidXR0b24tZmlsbFxuKSB7XG4gIEBpbmNsdWRlIGJ1dHRvbi1iYXNlO1xuXG4gIEBpZiAkc3R5bGUgPT0gc29saWQge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkYmFja2dyb3VuZCwgJGJhY2tncm91bmQtaG92ZXIsICRjb2xvcik7XG4gIH1cbiAgQGVsc2UgaWYgJHN0eWxlID09IGhvbGxvdyB7XG4gICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdztcbiAgICBAaW5jbHVkZSBidXR0b24taG9sbG93LXN0eWxlKCRiYWNrZ3JvdW5kKTtcbiAgfVxuXG4gIEBpZiAkZXhwYW5kIHtcbiAgICBAaW5jbHVkZSBidXR0b24tZXhwYW5kO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWJ1dHRvbiB7XG4gIC5idXR0b24ge1xuICAgIEBpbmNsdWRlIGJ1dHRvbjtcblxuICAgIC8vIFNpemVzXG4gICAgQGVhY2ggJHNpemUsICR2YWx1ZSBpbiBtYXAtcmVtb3ZlKCRidXR0b24tc2l6ZXMsIGRlZmF1bHQpIHtcbiAgICAgICYuI3skc2l6ZX0ge1xuICAgICAgICBmb250LXNpemU6ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLmV4cGFuZGVkIHsgQGluY2x1ZGUgYnV0dG9uLWV4cGFuZDsgfVxuXG4gICAgLy8gQ29sb3JzXG4gICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkYnV0dG9uLXBhbGV0dGUge1xuICAgICAgQGlmICRidXR0b24tZmlsbCAhPSBob2xsb3cge1xuICAgICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgICBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGNvbG9yLCBhdXRvLCBhdXRvKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgICBAaW5jbHVkZSBidXR0b24taG9sbG93LXN0eWxlKCRjb2xvcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLiN7JG5hbWV9LmRyb3Bkb3duOjphZnRlciB7XG4gICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJGNvbG9yO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRGlzYWJsZWQgc3R5bGVcbiAgICAmLmRpc2FibGVkLFxuICAgICZbZGlzYWJsZWRdIHtcbiAgICAgIEBpbmNsdWRlIGJ1dHRvbi1kaXNhYmxlZDtcblxuICAgICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkYnV0dG9uLXBhbGV0dGUge1xuICAgICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgICBAaW5jbHVkZSBidXR0b24tZGlzYWJsZWQoJGNvbG9yLCBhdXRvKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEhvbGxvdyBzdHlsZVxuICAgIEBpZiAkYnV0dG9uLWZpbGwgIT0gaG9sbG93IHtcbiAgICAgICYuaG9sbG93IHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdztcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdy1zdHlsZTtcblxuICAgICAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICRidXR0b24tcGFsZXR0ZSB7XG4gICAgICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b24taG9sbG93LXN0eWxlKCRjb2xvcik7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQ2xlYXIgc3R5bGVcbiAgICBAaWYgJGJ1dHRvbi1maWxsICE9IGNsZWFyIHtcbiAgICAgICYuY2xlYXIge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24taG9sbG93O1xuICAgICAgICBAaW5jbHVkZSBidXR0b24taG9sbG93LXN0eWxlO1xuXG4gICAgICAgICYsICY6aG92ZXIsICY6Zm9jdXMge1xuICAgICAgICAgICYsICYuZGlzYWJsZWQsICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkYnV0dG9uLXBhbGV0dGUge1xuICAgICAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdy1zdHlsZSgkY29sb3IpO1xuXG4gICAgICAgICAgICAmLCAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICYsXG4gICAgICAgICAgICAgICYuZGlzYWJsZWQsXG4gICAgICAgICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRHJvcGRvd24gYXJyb3dcbiAgICAmLmRyb3Bkb3duIHtcbiAgICAgIEBpbmNsdWRlIGJ1dHRvbi1kcm9wZG93bjtcblxuICAgICAgQGlmICRidXR0b24tZmlsbCA9PSBob2xsb3cge1xuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJGJ1dHRvbi1iYWNrZ3JvdW5kO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYuaG9sbG93IHtcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6ICRidXR0b24tYmFja2dyb3VuZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGJ1dHRvbi1wYWxldHRlIHtcbiAgICAgICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEJ1dHRvbiB3aXRoIGRyb3Bkb3duIGFycm93IG9ubHlcbiAgICAmLmFycm93LW9ubHk6OmFmdGVyIHtcbiAgICAgIHRvcDogLTAuMWVtO1xuICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAwO1xuICAgIH1cbiAgfVxuICBhLmJ1dHRvbiB7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGJ1dHRvbi1ncm91cFxuLy8vL1xuXG4vLy8gTWFyZ2luIGZvciBidXR0b24gZ3JvdXBzLlxuLy8vIEB0eXBlIE51bWJlclxuJGJ1dHRvbmdyb3VwLW1hcmdpbjogMXJlbSAhZGVmYXVsdDtcblxuLy8vIE1hcmdpbiBiZXR3ZWVuIGJ1dHRvbnMgaW4gYSBidXR0b24gZ3JvdXAuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnV0dG9uZ3JvdXAtc3BhY2luZzogMXB4ICFkZWZhdWx0O1xuXG4vLy8gU2VsZWN0b3IgZm9yIHRoZSBidXR0b25zIGluc2lkZSBhIGJ1dHRvbiBncm91cC5cbi8vLyBAdHlwZSBTdHJpbmdcbiRidXR0b25ncm91cC1jaGlsZC1zZWxlY3RvcjogJy5idXR0b24nICFkZWZhdWx0O1xuXG4vLy8gTWF4aW11bSBudW1iZXIgb2YgYnV0dG9ucyB0aGF0IGNhbiBiZSBpbiBhbiBldmVuLXdpZHRoIGJ1dHRvbiBncm91cC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRidXR0b25ncm91cC1leHBhbmQtbWF4OiA2ICFkZWZhdWx0O1xuXG4vLy8gRGV0ZXJtaW5lcyBpZiAkYnV0dG9uLXJhZGl1cyBpcyBhcHBsaWVkIHRvIGVhY2ggYnV0dG9uIG9yIHRoZSBidXR0b24gZ3JvdXAgYXMgYSB3aG9sZS4gVXNlICRnbG9iYWwtcmFkaXVzIGluIF9zZXR0aW5ncy5zY3NzIHRvIGNoYW5nZSByYWRpdXMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGJ1dHRvbmdyb3VwLXJhZGl1cy1vbi1lYWNoOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQWRkIHN0eWxlcyBmb3IgYSBidXR0b24gZ3JvdXAgY29udGFpbmVyLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkY2hpbGQtc2VsZWN0b3IgWyRidXR0b25ncm91cC1jaGlsZC1zZWxlY3Rvcl0gLSBTZWxlY3RvciBmb3IgdGhlIGJ1dHRvbnMgaW5zaWRlIGEgYnV0dG9uIGdyb3VwLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc3BhY2luZyBbJGJ1dHRvbmdyb3VwLXNwYWNpbmddIC0gU3BhY2luZyBiZXR3ZWVuIGJ1dHRvbnMgaW4gYSBidXR0b24gZ3JvdXAuXG5AbWl4aW4gYnV0dG9uLWdyb3VwKFxuICAkY2hpbGQtc2VsZWN0b3I6ICRidXR0b25ncm91cC1jaGlsZC1zZWxlY3RvcixcbiAgJHNwYWNpbmc6ICRidXR0b25ncm91cC1zcGFjaW5nXG4pIHtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIG1hcmdpbi1ib3R0b206ICRidXR0b25ncm91cC1tYXJnaW47XG5cbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgfVxuICBAZWxzZSB7XG4gICAgZm9udC1zaXplOiAwO1xuICB9XG5cbiAgI3skY2hpbGQtc2VsZWN0b3J9IHtcbiAgICBtYXJnaW46IDA7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRzcGFjaW5nO1xuICAgIG1hcmdpbi1ib3R0b206ICRzcGFjaW5nO1xuICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkYnV0dG9uLXNpemVzLCBkZWZhdWx0KTtcblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgfVxuXG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAwO1xuICAgIH1cblxuICAgIEBpZiBub3QgJGJ1dHRvbmdyb3VwLXJhZGl1cy1vbi1lYWNoIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItdG9wLSN7JGdsb2JhbC1sZWZ0fS1yYWRpdXM6ICRidXR0b24tcmFkaXVzO1xuICAgICAgICBib3JkZXItYm90dG9tLSN7JGdsb2JhbC1sZWZ0fS1yYWRpdXM6ICRidXR0b24tcmFkaXVzO1xuICAgICAgfVxuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItdG9wLSN7JGdsb2JhbC1yaWdodH0tcmFkaXVzOiAkYnV0dG9uLXJhZGl1cztcbiAgICAgICAgYm9yZGVyLWJvdHRvbS0jeyRnbG9iYWwtcmlnaHR9LXJhZGl1czogJGJ1dHRvbi1yYWRpdXM7XG4gICAgICB9XG4gICAgfVxuXG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBmdWxsLXdpZHRoIGJ1dHRvbiBncm91cCwgbWFraW5nIGVhY2ggYnV0dG9uIGVxdWFsIHdpZHRoLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc2VsZWN0b3IgWyRidXR0b25ncm91cC1jaGlsZC1zZWxlY3Rvcl0gLSBTZWxlY3RvciBmb3IgdGhlIGJ1dHRvbnMgaW5zaWRlIGEgYnV0dG9uIGdyb3VwLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc3BhY2luZyBbJGJ1dHRvbmdyb3VwLXNwYWNpbmddIC0gU3BhY2luZyBiZXR3ZWVuIGJ1dHRvbnMgaW4gYSBidXR0b24gZ3JvdXAuXG5AbWl4aW4gYnV0dG9uLWdyb3VwLWV4cGFuZChcbiAgJHNlbGVjdG9yOiAkYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3IsXG4gICRzcGFjaW5nOiAkYnV0dG9uZ3JvdXAtc3BhY2luZyxcbiAgJGNvdW50OiBudWxsXG4pIHtcbiAgQGlmIG5vdCAkZ2xvYmFsLWZsZXhib3gge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAtJHNwYWNpbmc7XG5cbiAgICAmOjpiZWZvcmUsXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAjeyRzZWxlY3Rvcn0ge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleDogMSAxIDBweDsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSB6ZXJvLXVuaXRcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgLy8gT25lIGNoaWxkXG4gICAgICAmOmZpcnN0LWNoaWxkOmxhc3QtY2hpbGQge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgIH1cblxuICAgICAgLy8gVHdvIG9yIG1vcmUgY2hpbGRyZWVuXG4gICAgICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRidXR0b25ncm91cC1leHBhbmQtbWF4IHtcbiAgICAgICAgJjpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICYsICY6Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoI3skaX0pIH4gI3skc2VsZWN0b3J9IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7cGVyY2VudGFnZSgxIC8gJGkpfSAtICN7JHNwYWNpbmd9KTtcbiAgICAgICAgICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkc3BhY2luZztcblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRzcGFjaW5nICogLSRidXR0b25ncm91cC1leHBhbmQtbWF4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLy8gU3RhY2tzIHRoZSBidXR0b25zIGluIGEgYnV0dG9uIGdyb3VwLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc2VsZWN0b3IgWyRidXR0b25ncm91cC1jaGlsZC1zZWxlY3Rvcl0gLSBTZWxlY3RvciBmb3IgdGhlIGJ1dHRvbnMgaW5zaWRlIHRoZSBidXR0b24gZ3JvdXAuXG5AbWl4aW4gYnV0dG9uLWdyb3VwLXN0YWNrKFxuICAkc2VsZWN0b3I6ICRidXR0b25ncm91cC1jaGlsZC1zZWxlY3RvclxuKSB7XG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgfVxuXG4gICN7JHNlbGVjdG9yfSB7XG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuXG5cbiAgICBAaWYgbm90ICRidXR0b25ncm91cC1yYWRpdXMtb24tZWFjaCB7XG4gICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAmOmZpcnN0LWNoaWxke1xuICAgICAgICBib3JkZXItdG9wLSN7JGdsb2JhbC1sZWZ0fS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgICAgICBib3JkZXItdG9wLSN7JGdsb2JhbC1yaWdodH0tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICAgIH1cblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS0jeyRnbG9iYWwtbGVmdH0tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICAgICAgYm9yZGVyLWJvdHRvbS0jeyRnbG9iYWwtcmlnaHR9LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgICB9XG4gICAgfVxuXG4gIH1cbn1cblxuLy8vIFVuLXN0YWNrcyB0aGUgYnV0dG9ucyBpbiBhIGJ1dHRvbiBncm91cC5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHNlbGVjdG9yIFskYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3JdIC0gU2VsZWN0b3IgZm9yIHRoZSBidXR0b25zIGluc2lkZSB0aGUgYnV0dG9uIGdyb3VwLlxuQG1peGluIGJ1dHRvbi1ncm91cC11bnN0YWNrKFxuICAkc2VsZWN0b3I6ICRidXR0b25ncm91cC1jaGlsZC1zZWxlY3RvclxuKSB7XG4gICN7JHNlbGVjdG9yfSB7XG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4OiAxIDEgMHB4OyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIHplcm8tdW5pdFxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICB9XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgIEBpZiBub3QgJGJ1dHRvbmdyb3VwLXJhZGl1cy1vbi1lYWNoIHtcbiAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItdG9wLSN7JGdsb2JhbC1sZWZ0fS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgICAgICBib3JkZXItdG9wLSN7JGdsb2JhbC1yaWdodH0tcmFkaXVzOiAwO1xuICAgICAgICBib3JkZXItYm90dG9tLSN7JGdsb2JhbC1sZWZ0fS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgICAgfVxuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItdG9wLSN7JGdsb2JhbC1yaWdodH0tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICAgICAgYm9yZGVyLWJvdHRvbS0jeyRnbG9iYWwtcmlnaHR9LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgICAgIGJvcmRlci1ib3R0b20tI3skZ2xvYmFsLWxlZnR9LXJhZGl1czogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1idXR0b24tZ3JvdXAge1xuICAuYnV0dG9uLWdyb3VwIHtcbiAgICBAaW5jbHVkZSBidXR0b24tZ3JvdXA7XG5cbiAgICAvLyBTaXplc1xuICAgIEBlYWNoICRzaXplLCAkdmFsdWUgaW4gbWFwLXJlbW92ZSgkYnV0dG9uLXNpemVzLCBkZWZhdWx0KSB7XG4gICAgICAmLiN7JHNpemV9ICN7JGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yfSB7XG4gICAgICAgIGZvbnQtc2l6ZTogJHZhbHVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEV2ZW4td2lkdGggR3JvdXBcbiAgICAmLmV4cGFuZGVkIHsgQGluY2x1ZGUgYnV0dG9uLWdyb3VwLWV4cGFuZDsgfVxuXG4gICAgLy8gQ29sb3JzXG4gICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkZm91bmRhdGlvbi1wYWxldHRlIHtcbiAgICAgIEBpZiAkYnV0dG9uLWZpbGwgIT0gaG9sbG93IHtcbiAgICAgICAgJi4jeyRuYW1lfSAjeyRidXR0b25ncm91cC1jaGlsZC1zZWxlY3Rvcn0ge1xuICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkY29sb3IsIGF1dG8sIGF1dG8pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICYuI3skbmFtZX0gI3skYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3J9IHtcbiAgICAgICAgICBAaW5jbHVkZSBidXR0b24taG9sbG93O1xuICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3ctc3R5bGUoJGNvbG9yKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICYuc3RhY2tlZCxcbiAgICAmLnN0YWNrZWQtZm9yLXNtYWxsLFxuICAgICYuc3RhY2tlZC1mb3ItbWVkaXVtIHtcbiAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ncm91cC1zdGFjaztcbiAgICB9XG5cbiAgICAmLnN0YWNrZWQtZm9yLXNtYWxsIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ncm91cC11bnN0YWNrO1xuICAgICAgfVxuICAgIH1cblxuICAgICYuc3RhY2tlZC1mb3ItbWVkaXVtIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWdyb3VwLXVuc3RhY2s7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5zdGFja2VkLWZvci1zbWFsbC5leHBhbmRlZCB7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgZm9yY2UtZWxlbWVudC1uZXN0aW5nXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgI3skYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3J9IHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8vL1xuLy8vIEBncm91cCBhY2NvcmRpb24tbWVudVxuLy8vL1xuXG4vLy8gU2V0cyBhY2NvcmRpb24gbWVudSBwYWRkaW5nLlxuLy8vIEB0eXBlIE51bWJlclxuJGFjY29yZGlvbm1lbnUtcGFkZGluZzogJGdsb2JhbC1tZW51LXBhZGRpbmcgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGFjY29yZGlvbiBtZW51IG5lc3RlZCBtYXJnaW5cbi8vLyBAdHlwZSBOdW1iZXJcbiRhY2NvcmRpb25tZW51LW5lc3RlZC1tYXJnaW46ICRnbG9iYWwtbWVudS1uZXN0ZWQtbWFyZ2luICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBhY2NvcmRpb24gbWVudSBzdWJtZW51IHBhZGRpbmcuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYWNjb3JkaW9ubWVudS1zdWJtZW51LXBhZGRpbmc6ICRhY2NvcmRpb25tZW51LXBhZGRpbmcgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGlmIGFjY29yZGlvbiBtZW51cyBoYXZlIHRoZSBkZWZhdWx0IGFycm93IHN0eWxlcy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kYWNjb3JkaW9ubWVudS1hcnJvd3M6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGFjY29yZGlvbiBtZW51IGFycm93IGNvbG9yIGlmIGFycm93IGlzIHVzZWQuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb25tZW51LWFycm93LWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIFNldHMgYWNjb3JkaW9uIG1lbnUgaXRlbSBwYWRkaW5nLlxuLy8vIEB0eXBlIENvbG9yXG4kYWNjb3JkaW9ubWVudS1pdGVtLWJhY2tncm91bmQ6IG51bGwgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGFjY29yZGlvbiBtZW51IGl0ZW0gYm9yZGVyLlxuLy8vIEB0eXBlIENvbG9yXG4kYWNjb3JkaW9ubWVudS1ib3JkZXI6IG51bGwgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGFjY29yZGlvbiBtZW51IGl0ZW0gcGFkZGluZy5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbm1lbnUtc3VibWVudS10b2dnbGUtYmFja2dyb3VuZDogbnVsbCAhZGVmYXVsdDtcblxuLy8vIFNldHMgYWNjb3JkaW9uIG1lbnUgaXRlbSBwYWRkaW5nLlxuLy8vIEB0eXBlIExpc3RcbiRhY2NvcmRpb24tc3VibWVudS10b2dnbGUtYm9yZGVyOiAkYWNjb3JkaW9ubWVudS1ib3JkZXIgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGFjY29yZGlvbiBtZW51IHN1Ym1lbnUgdG9nZ2xlIGJhY2tncm91bmQgd2lkdGguXG4vLy8gQHR5cGUgTnVtYmVyXG4kYWNjb3JkaW9ubWVudS1zdWJtZW51LXRvZ2dsZS13aWR0aDogNDBweCAhZGVmYXVsdDtcblxuLy8vIFNldHMgYWNjb3JkaW9uIG1lbnUgc3VibWVudSB0b2dnbGUgYmFja2dyb3VuZCBoZWlnaHQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYWNjb3JkaW9ubWVudS1zdWJtZW51LXRvZ2dsZS1oZWlnaHQ6ICRhY2NvcmRpb25tZW51LXN1Ym1lbnUtdG9nZ2xlLXdpZHRoICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBhY2NvcmRpb24gbWVudSBhcnJvdyBzaXplIGlmIGFycm93IGlzIHVzZWQuXG4vLy8gQHR5cGUgTGVuZ3RoXG4kYWNjb3JkaW9ubWVudS1hcnJvdy1zaXplOiA2cHggIWRlZmF1bHQ7XG5cbkBtaXhpbiB6Zi1hY2NvcmRpb24tbWVudS1sZWZ0LXJpZ2h0LWFycm93cyB7XG4gIC5pcy1hY2NvcmRpb24tc3VibWVudS1wYXJlbnQ6bm90KC5oYXMtc3VibWVudS10b2dnbGUpID4gYSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRhY2NvcmRpb25tZW51LWFycm93LXNpemUsICRhY2NvcmRpb25tZW51LWFycm93LWNvbG9yLCBkb3duKTtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgbWFyZ2luLXRvcDogLTEgKiAoJGFjY29yZGlvbm1lbnUtYXJyb3ctc2l6ZSAvIDIpO1xuICAgICAgI3skZ2xvYmFsLXJpZ2h0fTogMXJlbTtcbiAgICB9XG4gIH1cbiAgJi5hbGlnbi1sZWZ0IC5pcy1hY2NvcmRpb24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogMXJlbTtcbiAgfVxuICAmLmFsaWduLXJpZ2h0IC5pcy1hY2NvcmRpb24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogMXJlbTtcbiAgfVxufVxuQG1peGluIGZvdW5kYXRpb24tYWNjb3JkaW9uLW1lbnUge1xuXG4gIC5hY2NvcmRpb24tbWVudSB7XG4gICAgQGlmICRhY2NvcmRpb25tZW51LWJvcmRlciB7XG4gICAgICBib3JkZXItYm90dG9tOiAkYWNjb3JkaW9ubWVudS1ib3JkZXI7XG4gICAgfVxuXG4gICAgbGkge1xuICAgICAgQGlmICRhY2NvcmRpb25tZW51LWJvcmRlciB7XG4gICAgICAgIGJvcmRlci10b3A6ICRhY2NvcmRpb25tZW51LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAkYWNjb3JkaW9ubWVudS1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkYWNjb3JkaW9ubWVudS1ib3JkZXI7XG4gICAgICB9XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICBhIHtcbiAgICAgIEBpZiAkYWNjb3JkaW9ubWVudS1pdGVtLWJhY2tncm91bmQge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkYWNjb3JkaW9ubWVudS1pdGVtLWJhY2tncm91bmQ7XG4gICAgICB9XG4gICAgICBwYWRkaW5nOiAkYWNjb3JkaW9ubWVudS1wYWRkaW5nO1xuICAgIH1cbiAgICBcbiAgICAuaXMtYWNjb3JkaW9uLXN1Ym1lbnUgYSB7XG4gICAgICBwYWRkaW5nOiAkYWNjb3JkaW9ubWVudS1zdWJtZW51LXBhZGRpbmc7XG4gICAgfVxuXG4gICAgLm5lc3RlZC5pcy1hY2NvcmRpb24tc3VibWVudSB7XG4gICAgICBAaW5jbHVkZSBtZW51LW5lc3RlZCgkYWNjb3JkaW9ubWVudS1uZXN0ZWQtbWFyZ2luKTtcbiAgICB9XG5cbiAgICAmLmFsaWduLSN7JGdsb2JhbC1yaWdodH0ge1xuICAgICAgLm5lc3RlZC5pcy1hY2NvcmRpb24tc3VibWVudSB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnUtbmVzdGVkKCRhY2NvcmRpb25tZW51LW5lc3RlZC1tYXJnaW4sIHJpZ2h0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgJGFjY29yZGlvbm1lbnUtYXJyb3dzIHtcbiAgICAgIEBpbmNsdWRlIHpmLWFjY29yZGlvbi1tZW51LWxlZnQtcmlnaHQtYXJyb3dzO1xuXG4gICAgICAuaXMtYWNjb3JkaW9uLXN1Ym1lbnUtcGFyZW50W2FyaWEtZXhwYW5kZWQ9J3RydWUnXSA+IGE6OmFmdGVyIHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuaXMtYWNjb3JkaW9uLXN1Ym1lbnUgbGkge1xuICAgIEBpZiAkYWNjb3JkaW9ubWVudS1ib3JkZXIge1xuICAgICAgYm9yZGVyLXJpZ2h0OiAwO1xuICAgICAgYm9yZGVyLWxlZnQ6IDA7XG4gICAgfVxuICB9XG5cbiAgLmlzLWFjY29yZGlvbi1zdWJtZW51LXBhcmVudCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG5cbiAgLmhhcy1zdWJtZW51LXRvZ2dsZSA+IGEge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkYWNjb3JkaW9ubWVudS1zdWJtZW51LXRvZ2dsZS13aWR0aDtcbiAgfVxuXG4gIC8vIFN1Ym1lbnUgdG9nZ2xlXG4gIC5zdWJtZW51LXRvZ2dsZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICAjeyRnbG9iYWwtcmlnaHR9OiAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgIHdpZHRoOiAkYWNjb3JkaW9ubWVudS1zdWJtZW51LXRvZ2dsZS13aWR0aDtcbiAgICBoZWlnaHQ6ICRhY2NvcmRpb25tZW51LXN1Ym1lbnUtdG9nZ2xlLWhlaWdodDtcblxuICAgIGJvcmRlci0jeyRnbG9iYWwtbGVmdH06ICRhY2NvcmRpb24tc3VibWVudS10b2dnbGUtYm9yZGVyO1xuXG4gICAgQGlmICRhY2NvcmRpb25tZW51LXN1Ym1lbnUtdG9nZ2xlLWJhY2tncm91bmQge1xuICAgICAgYmFja2dyb3VuZDogJGFjY29yZGlvbm1lbnUtc3VibWVudS10b2dnbGUtYmFja2dyb3VuZDtcbiAgICB9XG5cbiAgICAvLyBBZGQgdGhlIGFycm93IHRvIHRoZSB0b2dnbGVcbiAgICAmOjphZnRlciB7XG4gICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoNnB4LCAkYWNjb3JkaW9ubWVudS1hcnJvdy1jb2xvciwgZG93bik7XG5cbiAgICAgIHRvcDogMDtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIG1hcmdpbjogYXV0bztcbiAgICB9XG4gIH1cblxuICAvLyBSb3RhdGUgdGhlIGFycm93IHdoZW4gbWVudSBpcyBvcGVuXG4gIC5zdWJtZW51LXRvZ2dsZVthcmlhLWV4cGFuZGVkPSd0cnVlJ106OmFmdGVyIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlWSgtMSk7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJTtcbiAgfVxuXG4gIC5zdWJtZW51LXRvZ2dsZS10ZXh0IHtcbiAgICBAaW5jbHVkZSBlbGVtZW50LWludmlzaWJsZTtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgYWNjb3JkaW9uXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3Igb2YgYW4gYWNjb3JkaW9uIGdyb3VwLlxuLy8vIEB0eXBlIENvbG9yXG4kYWNjb3JkaW9uLWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIElmIGB0cnVlYCwgYWRkcyBwbHVzIGFuZCBtaW51cyBpY29ucyB0byB0aGUgc2lkZSBvZiBlYWNoIGFjY29yZGlvbiB0aXRsZS5cbi8vLyBAdHlwZSBCb29sZWFuXG4kYWNjb3JkaW9uLXBsdXNtaW51czogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBvZiBhY2NvcmRpb24gdGl0bGVzLlxuLy8vIEB0eXBlIE51bWJlclxuJGFjY29yZGlvbi10aXRsZS1mb250LXNpemU6IHJlbS1jYWxjKDEyKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdGV4dCBjb2xvciBmb3IgaXRlbXMgaW4gYSBNZW51LlxuLy8vIEB0eXBlIENvbG9yXG4kYWNjb3JkaW9uLWl0ZW0tY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9uIGhvdmVyIGZvciBpdGVtcyBpbiBhIE1lbnUuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb24taXRlbS1iYWNrZ3JvdW5kLWhvdmVyOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBvZiBhbiBhY2NvcmRpb24gaXRlbS5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4kYWNjb3JkaW9uLWl0ZW0tcGFkZGluZzogMS4yNXJlbSAxcmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9mIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kYWNjb3JkaW9uLWNvbnRlbnQtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgY29sb3Igb2YgdGFiIGNvbnRlbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb24tY29udGVudC1ib3JkZXI6IDFweCBzb2xpZCAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdGV4dCBjb2xvciBvZiB0YWIgY29udGVudC5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbi1jb250ZW50LWNvbG9yOiAkYm9keS1mb250LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGZvciB0YWIgY29udGVudC5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4kYWNjb3JkaW9uLWNvbnRlbnQtcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhbiBhY2NvcmRpb24gY29udGFpbmVyLiBBcHBseSB0aGlzIHRvIHRoZSBzYW1lIGVsZW1lbnQgdGhhdCBnZXRzIGBkYXRhLWFjY29yZGlvbmAuXG5AbWl4aW4gYWNjb3JkaW9uLWNvbnRhaW5lciAoXG4gICRiYWNrZ3JvdW5kOiAkYWNjb3JkaW9uLWJhY2tncm91bmRcbikge1xuICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAwO1xuICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAmW2Rpc2FibGVkXSB7XG4gICAgLmFjY29yZGlvbi10aXRsZSB7XG4gICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBhY2NvcmRpb24gaXRlbS4gQXBwbHkgdGhpcyB0byB0aGUgbGlzdCBpdGVtIHdpdGhpbiBhbiBhY2NvcmRpb24gdWwuXG5AbWl4aW4gYWNjb3JkaW9uLWl0ZW0ge1xuICAmOmZpcnN0LWNoaWxkID4gOmZpcnN0LWNoaWxkIHtcbiAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAkZ2xvYmFsLXJhZGl1cyAwIDA7XG4gIH1cblxuICAmOmxhc3QtY2hpbGQgPiA6bGFzdC1jaGlsZCB7XG4gICAgYm9yZGVyLXJhZGl1czogMCAwICRnbG9iYWwtcmFkaXVzICRnbG9iYWwtcmFkaXVzO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIHRpdGxlIG9mIGFuIGFjY29yZGlvbiBpdGVtLiBBcHBseSB0aGlzIHRvIHRoZSBsaW5rIHdpdGhpbiBhbiBhY2NvcmRpb24gaXRlbS5cbkBtaXhpbiBhY2NvcmRpb24tdGl0bGUgKFxuICAkcGFkZGluZzogJGFjY29yZGlvbi1pdGVtLXBhZGRpbmcsXG4gICRmb250LXNpemU6ICRhY2NvcmRpb24tdGl0bGUtZm9udC1zaXplLFxuICAkY29sb3I6ICRhY2NvcmRpb24taXRlbS1jb2xvcixcbiAgJGJvcmRlcjogJGFjY29yZGlvbi1jb250ZW50LWJvcmRlcixcbiAgJGJhY2tncm91bmQtaG92ZXI6ICRhY2NvcmRpb24taXRlbS1iYWNrZ3JvdW5kLWhvdmVyXG4pIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogJHBhZGRpbmc7XG5cbiAgYm9yZGVyOiAkYm9yZGVyO1xuICBib3JkZXItYm90dG9tOiAwO1xuXG4gIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGNvbG9yOiAkY29sb3I7XG5cbiAgOmxhc3QtY2hpbGQ6bm90KC5pcy1hY3RpdmUpID4gJiB7XG4gICAgYm9yZGVyLWJvdHRvbTogJGJvcmRlcjtcbiAgICBib3JkZXItcmFkaXVzOiAwIDAgJGdsb2JhbC1yYWRpdXMgJGdsb2JhbC1yYWRpdXM7XG4gIH1cblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZC1ob3ZlcjtcbiAgfVxuXG4gIEBpZiAkYWNjb3JkaW9uLXBsdXNtaW51cyB7XG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgI3skZ2xvYmFsLXJpZ2h0fTogMXJlbTtcbiAgICAgIG1hcmdpbi10b3A6IC0wLjVyZW07XG4gICAgICBjb250ZW50OiAnKyc7XG4gICAgfVxuXG4gICAgLmlzLWFjdGl2ZSA+ICY6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnXFwyMDEzJztcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhY2NvcmRpb24gY29udGVudC4gQXBwbHkgdGhpcyB0byB0aGUgY29udGVudCBwYW5lIGJlbG93IGFuIGFjY29yZGlvbiBpdGVtJ3MgdGl0bGUuXG5AbWl4aW4gYWNjb3JkaW9uLWNvbnRlbnQgKFxuICAkcGFkZGluZzogJGFjY29yZGlvbi1jb250ZW50LXBhZGRpbmcsXG4gICRib3JkZXI6ICRhY2NvcmRpb24tY29udGVudC1ib3JkZXIsXG4gICRiYWNrZ3JvdW5kOiAkYWNjb3JkaW9uLWNvbnRlbnQtYmFja2dyb3VuZCxcbiAgJGNvbG9yOiAkYWNjb3JkaW9uLWNvbnRlbnQtY29sb3Jcbikge1xuICBkaXNwbGF5OiBub25lO1xuICBwYWRkaW5nOiAkcGFkZGluZztcblxuICBib3JkZXI6ICRib3JkZXI7XG4gIGJvcmRlci1ib3R0b206IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuXG4gIGNvbG9yOiAkY29sb3I7XG5cbiAgOmxhc3QtY2hpbGQgPiAmOmxhc3QtY2hpbGQge1xuICAgIGJvcmRlci1ib3R0b206ICRib3JkZXI7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tYWNjb3JkaW9uIHtcbiAgLmFjY29yZGlvbiB7XG4gICAgQGluY2x1ZGUgYWNjb3JkaW9uLWNvbnRhaW5lcjtcbiAgfVxuXG4gIC5hY2NvcmRpb24taXRlbSB7XG4gICAgQGluY2x1ZGUgYWNjb3JkaW9uLWl0ZW07XG4gIH1cblxuICAuYWNjb3JkaW9uLXRpdGxlIHtcbiAgICBAaW5jbHVkZSBhY2NvcmRpb24tdGl0bGU7XG4gIH1cblxuICAuYWNjb3JkaW9uLWNvbnRlbnQge1xuICAgIEBpbmNsdWRlIGFjY29yZGlvbi1jb250ZW50O1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBiYWRnZVxuLy8vL1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIGZvciBiYWRnZXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRiYWRnZS1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdGV4dCBjb2xvciBmb3IgYmFkZ2VzLlxuLy8vIEB0eXBlIENvbG9yXG4kYmFkZ2UtY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIEFsdGVybmF0ZSB0ZXh0IGNvbG9yIGZvciBiYWRnZXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRiYWRnZS1jb2xvci1hbHQ6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIENvbG9yaW5nIGNsYXNzZXMuIEEgbWFwIG9mIGNsYXNzZXMgdG8gb3V0cHV0IGluIHlvdXIgQ1NTLCBsaWtlIGAuc2Vjb25kYXJ5YCwgYC5zdWNjZXNzYCwgYW5kIHNvIG9uLlxuLy8vIEB0eXBlIE1hcFxuJGJhZGdlLXBhbGV0dGU6ICRmb3VuZGF0aW9uLXBhbGV0dGUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgaW5zaWRlIGJhZGdlcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRiYWRnZS1wYWRkaW5nOiAwLjNlbSAhZGVmYXVsdDtcblxuLy8vIE1pbmltdW0gd2lkdGggb2YgYSBiYWRnZS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRiYWRnZS1taW53aWR0aDogMi4xZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBmb3IgYmFkZ2VzLlxuLy8vIEB0eXBlIE51bWJlclxuJGJhZGdlLWZvbnQtc2l6ZTogMC42cmVtICFkZWZhdWx0O1xuXG4vLy8gR2VuZXJhdGVzIHRoZSBiYXNlIHN0eWxlcyBmb3IgYSBiYWRnZS5cbkBtaXhpbiBiYWRnZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWluLXdpZHRoOiAkYmFkZ2UtbWlud2lkdGg7XG4gIHBhZGRpbmc6ICRiYWRnZS1wYWRkaW5nO1xuXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcblxuICBmb250LXNpemU6ICRiYWRnZS1mb250LXNpemU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tYmFkZ2Uge1xuICAuYmFkZ2Uge1xuICAgIEBpbmNsdWRlIGJhZGdlO1xuXG4gICAgYmFja2dyb3VuZDogJGJhZGdlLWJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRiYWRnZS1jb2xvcjtcblxuICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGJhZGdlLXBhbGV0dGUge1xuICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcjtcbiAgICAgICAgY29sb3I6IGNvbG9yLXBpY2stY29udHJhc3QoJGNvbG9yLCAoJGJhZGdlLWNvbG9yLCAkYmFkZ2UtY29sb3ItYWx0KSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBicmVhZGNydW1ic1xuLy8vL1xuXG4vLy8gTWFyZ2luIGFyb3VuZCBhIGJyZWFkY3J1bWJzIGNvbnRhaW5lci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRicmVhZGNydW1icy1tYXJnaW46IDAgMCAkZ2xvYmFsLW1hcmdpbiAwICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIG9mIGJyZWFkY3J1bWIgbGlua3MuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnJlYWRjcnVtYnMtaXRlbS1mb250LXNpemU6IHJlbS1jYWxjKDExKSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIGJyZWFkY3J1bWIgbGlua3MuXG4vLy8gQHR5cGUgQ29sb3JcbiRicmVhZGNydW1icy1pdGVtLWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIHRoZSBhY3RpdmUgYnJlYWRjcnVtYiBsaW5rLlxuLy8vIEB0eXBlIENvbG9yXG4kYnJlYWRjcnVtYnMtaXRlbS1jb2xvci1jdXJyZW50OiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBPcGFjaXR5IG9mIGRpc2FibGVkIGJyZWFkY3J1bWIgbGlua3MuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnJlYWRjcnVtYnMtaXRlbS1jb2xvci1kaXNhYmxlZDogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gTWFyZ2luIGJldHdlZW4gYnJlYWRjcnVtYiBpdGVtcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRicmVhZGNydW1icy1pdGVtLW1hcmdpbjogMC43NXJlbSAhZGVmYXVsdDtcblxuLy8vIElmIGB0cnVlYCwgbWFrZXMgYnJlYWRjcnVtYiBsaW5rcyB1cHBlcmNhc2UuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGJyZWFkY3J1bWJzLWl0ZW0tdXBwZXJjYXNlOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gSWYgYHRydWVgLCBhZGRzIGEgc2VwZXJhdG9yIGJldHdlZW4gYnJlYWRjcnVtYiBsaW5rcy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3I6IHRydWUgIWRlZmF1bHQ7XG5cbi8vIElmIGl0IGV4aXN0cyAkYnJlYWRjcnVtYnMtaXRlbS1zbGFzaCBpcyB1c2VkIHRvIGJ1aWxkICRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvci4gU2VlIHRoZSBkb2N1bWVudGF0aW9uLlxuQGlmIHZhcmlhYmxlLWV4aXN0cyhicmVhZGNydW1icy1pdGVtLXNsYXNoKSB7XG4gICRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvcjogJGJyZWFkY3J1bWJzLWl0ZW0tc2xhc2g7XG59XG5cbi8vLyBVc2VkIGNoYXJhY3RlciBmb3IgdGhlIGJyZWFkY3J1bWIgc2VwYXJhdG9yLlxuLy8vIEB0eXBlIENvbnRlbnRcbiRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvci1pdGVtOiAnLycgIWRlZmF1bHQ7XG5cbi8vLyBVc2VkIGNoYXJhY3RlciBmb3IgdGhlIGJyZWFkY3J1bWIgc2VwYXJhdG9yIGluIHJ0bCBtb2RlLlxuLy8vIEB0eXBlIENvbnRlbnRcbiRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvci1pdGVtLXJ0bDogJ1xcXFwnICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgYnJlYWRjcnVtYiBpdGVtLlxuLy8vIEB0eXBlIENvbG9yXG4kYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3ItY29sb3I6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8gSWYgaXQgZXhpc3RzICRicmVhZGNydW1icy1pdGVtLXNsYXNoLWNvbG9yIGlzIHVzZWQgdG8gYnVpbGQgJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yLWNvbG9yLiBTZWUgdGhlIGRvY3VtZW50YXRpb24uXG5AaWYgdmFyaWFibGUtZXhpc3RzKGJyZWFkY3J1bWJzLWl0ZW0tc2xhc2gtY29sb3IpIHtcbiAgJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yLWNvbG9yOiAkYnJlYWRjcnVtYnMtaXRlbS1zbGFzaC1jb2xvcjtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIGJyZWFkY3J1bWJzIGNvbnRhaW5lciwgYWxvbmcgd2l0aCB0aGUgc3R5bGVzIGZvciB0aGUgYDxsaT5gIGFuZCBgPGE+YCBlbGVtZW50cyBpbnNpZGUgb2YgaXQuXG5AbWl4aW4gYnJlYWRjcnVtYnMtY29udGFpbmVyIHtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIG1hcmdpbjogJGJyZWFkY3J1bWJzLW1hcmdpbjtcbiAgbGlzdC1zdHlsZTogbm9uZTtcblxuICAvLyBJdGVtIHdyYXBwZXJcbiAgbGkge1xuICAgIGZsb2F0OiAjeyRnbG9iYWwtbGVmdH07XG5cbiAgICBmb250LXNpemU6ICRicmVhZGNydW1icy1pdGVtLWZvbnQtc2l6ZTtcbiAgICBjb2xvcjogJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3ItY3VycmVudDtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICBAaWYgJGJyZWFkY3J1bWJzLWl0ZW0tdXBwZXJjYXNlIHtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgfVxuXG4gICAgQGlmICRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvciB7XG4gICAgICAvLyBOZWVkIHRvIGVzY2FwZSB0aGUgYmFja3NsYXNoXG4gICAgICAkc2VwYXJhdG9yOiBpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09ICdsdHInLCAkYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3ItaXRlbSwgJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yLWl0ZW0tcnRsKTtcblxuICAgICAgJjpub3QoOmxhc3QtY2hpbGQpOjphZnRlciB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWFyZ2luOiAwICRicmVhZGNydW1icy1pdGVtLW1hcmdpbjtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgY29udGVudDogJHNlcGFyYXRvcjtcbiAgICAgICAgY29sb3I6ICRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvci1jb2xvcjtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRicmVhZGNydW1icy1pdGVtLW1hcmdpbjtcbiAgICB9XG4gIH1cblxuICAvLyBQYWdlIGxpbmtzXG4gIGEge1xuICAgIGNvbG9yOiAkYnJlYWRjcnVtYnMtaXRlbS1jb2xvcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWJyZWFkY3J1bWJzIHtcbiAgLmJyZWFkY3J1bWJzIHtcbiAgICBAaW5jbHVkZSBicmVhZGNydW1icy1jb250YWluZXI7XG5cbiAgICAuZGlzYWJsZWQge1xuICAgICAgY29sb3I6ICRicmVhZGNydW1icy1pdGVtLWNvbG9yLWRpc2FibGVkO1xuICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGNhbGxvdXRcbi8vLy9cblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvci5cbi8vLyBAdHlwZSBDb2xvclxuJGNhbGxvdXQtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmYWRlIHZhbHVlIGZvciBjYWxsb3V0IGJhY2tncm91bmRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGNhbGxvdXQtYmFja2dyb3VuZC1mYWRlOiA4NSUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvcmRlciBzdHlsZSBmb3IgY2FsbG91dHMuXG4vLy8gQHR5cGUgTGlzdFxuJGNhbGxvdXQtYm9yZGVyOiAxcHggc29saWQgcmdiYSgkYmxhY2ssIDAuMjUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3R0b20gbWFyZ2luIGZvciBjYWxsb3V0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRjYWxsb3V0LW1hcmdpbjogMCAwIDFyZW0gMCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgaW5uZXIgcGFkZGluZyBmb3IgY2FsbG91dHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kY2FsbG91dC1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IGNvbG9yIGZvciBjYWxsb3V0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGNhbGxvdXQtZm9udC1jb2xvcjogJGJvZHktZm9udC1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBjb2xvciBmb3IgY2FsbG91dHMsIGlmIHRoZSBjYWxsb3V0IGhhcyBhIGRhcmsgYmFja2dyb3VuZC5cbi8vLyBAdHlwZSBDb2xvclxuJGNhbGxvdXQtZm9udC1jb2xvci1hbHQ6ICRib2R5LWJhY2tncm91bmQgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvcmRlciByYWRpdXMgZm9yIGNhbGxvdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kY2FsbG91dC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gQW1vdW50IHRvIHRpbnQgbGlua3MgdXNlZCB3aXRoaW4gY29sb3JlZCBwYW5lbHMuIFNldCB0byBgZmFsc2VgIHRvIGRpc2FibGUgdGhpcyBmZWF0dXJlLlxuLy8vIEB0eXBlIE51bWJlciB8IEJvb2xlYW5cbiRjYWxsb3V0LWxpbmstdGludDogMzAlICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBiYXNpYyBzdHlsZXMgZm9yIGEgY2FsbG91dCwgaW5jbHVkaW5nIHBhZGRpbmcgYW5kIG1hcmdpbi5cbkBtaXhpbiBjYWxsb3V0LWJhc2UoKSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luOiAkY2FsbG91dC1tYXJnaW47XG4gIHBhZGRpbmc6ICRjYWxsb3V0LXBhZGRpbmc7XG5cbiAgYm9yZGVyOiAkY2FsbG91dC1ib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6ICRjYWxsb3V0LXJhZGl1cztcblxuICAvLyBSZXNwZWN0IHRoZSBwYWRkaW5nLCBmb29sLlxuICA+IDpmaXJzdC1jaGlsZCB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgfVxuXG4gID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuLy8vIEdlbmVyYXRlIHF1aWNrIHN0eWxlcyBmb3IgYSBjYWxsb3V0IHVzaW5nIGEgc2luZ2xlIGNvbG9yIGFzIGEgYmFzZWxpbmUuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskY2FsbG91dC1iYWNrZ3JvdW5kXSAtIENvbG9yIHRvIHVzZS5cbkBtaXhpbiBjYWxsb3V0LXN0eWxlKCRjb2xvcjogJGNhbGxvdXQtYmFja2dyb3VuZCkge1xuICAkYmFja2dyb3VuZDogc2NhbGUtY29sb3IoJGNvbG9yLCAkbGlnaHRuZXNzOiAkY2FsbG91dC1iYWNrZ3JvdW5kLWZhZGUpO1xuXG4gIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICBjb2xvcjogY29sb3ItcGljay1jb250cmFzdCgkYmFja2dyb3VuZCwgKCRjYWxsb3V0LWZvbnQtY29sb3IsICRjYWxsb3V0LWZvbnQtY29sb3ItYWx0KSk7XG59XG5cbkBtaXhpbiBjYWxsb3V0LXNpemUoJHBhZGRpbmcpIHtcbiAgcGFkZGluZy10b3A6ICRwYWRkaW5nO1xuICBwYWRkaW5nLXJpZ2h0OiAkcGFkZGluZztcbiAgcGFkZGluZy1ib3R0b206ICRwYWRkaW5nO1xuICBwYWRkaW5nLWxlZnQ6ICRwYWRkaW5nO1xufVxuXG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBjYWxsb3V0LlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGNhbGxvdXQtYmFja2dyb3VuZF0gLSBDb2xvciB0byB1c2UuXG5AbWl4aW4gY2FsbG91dCgkY29sb3I6ICRjYWxsb3V0LWJhY2tncm91bmQpIHtcbiAgQGluY2x1ZGUgY2FsbG91dC1iYXNlO1xuICBAaW5jbHVkZSBjYWxsb3V0LXN0eWxlKCRjb2xvcik7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWNhbGxvdXQge1xuICAuY2FsbG91dCB7XG4gICAgQGluY2x1ZGUgY2FsbG91dDtcblxuICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGZvdW5kYXRpb24tcGFsZXR0ZSB7XG4gICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgY2FsbG91dC1zdHlsZSgkY29sb3IpO1xuICAgICAgfVxuICAgIH1cblxuICAgICYuc21hbGwge1xuICAgICAgQGluY2x1ZGUgY2FsbG91dC1zaXplKDAuNXJlbSk7XG4gICAgfVxuXG4gICAgJi5sYXJnZSB7XG4gICAgICBAaW5jbHVkZSBjYWxsb3V0LXNpemUoM3JlbSk7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBjYXJkXG4vLy8vXG5cbi8vLyBEZWZ1YWx0IGJhY2tncm91bmQgY29sb3IuXG4vLy8gQHR5cGUgQ29sb3JcbiRjYXJkLWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBjb2xvciBmb3IgY2FyZHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRjYXJkLWZvbnQtY29sb3I6ICRib2R5LWZvbnQtY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQuXG4vLy8gQHR5cGUgQ29sb3JcbiRjYXJkLWRpdmlkZXItYmFja2dyb3VuZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvcmRlciBzdHlsZS5cbi8vLyBAdHlwZSBMaXN0XG4kY2FyZC1ib3JkZXI6IDFweCBzb2xpZCAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY2FyZCBzaGFkb3cuXG4vLy8gQHR5cGUgTGlzdFxuJGNhcmQtc2hhZG93OiBub25lICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgcmFkaXVzLlxuLy8vIEB0eXBlIExpc3RcbiRjYXJkLWJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nLlxuLy8vIEB0eXBlIE51bWJlclxuJGNhcmQtcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3R0b20gbWFyZ2luLlxuLy8vIEB0eXBlIG51bWJlclxuJGNhcmQtbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBjYXJkIGNvbnRhaW5lci5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZCAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGNhcmQuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIC0gZm9udCBjb2xvciBvZiB0aGUgY2FyZC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJG1hcmdpbiAtIEJvdHRvbSBtYXJnaW4gb2YgdGhlIGNhcmQuXG4vLy8gQHBhcmFtIHtMaXN0fSAkYm9yZGVyIC0gQm9yZGVyIGFyb3VuZCB0aGUgY2FyZC5cbi8vLyBAcGFyYW0ge0xpc3R9ICRyYWRpdXMgLSBib3JkZXIgcmFkaXVzIG9mIHRoZSBjYXJkLlxuLy8vIEBwYXJhbSB7TGlzdH0gJHNoYWRvdyAtIGJveCBzaGFkb3cgb2YgdGhlIGNhcmQuXG5AbWl4aW4gY2FyZC1jb250YWluZXIoXG4gICRiYWNrZ3JvdW5kOiAkY2FyZC1iYWNrZ3JvdW5kLFxuICAkY29sb3I6ICRjYXJkLWZvbnQtY29sb3IsXG4gICRtYXJnaW46ICRjYXJkLW1hcmdpbi1ib3R0b20sXG4gICRib3JkZXI6ICRjYXJkLWJvcmRlcixcbiAgJHJhZGl1czogJGNhcmQtYm9yZGVyLXJhZGl1cyxcbiAgJHNoYWRvdzogJGNhcmQtc2hhZG93XG4pIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgfVxuXG4gIG1hcmdpbi1ib3R0b206ICRtYXJnaW47XG5cbiAgYm9yZGVyOiAkYm9yZGVyO1xuICBib3JkZXItcmFkaXVzOiAkcmFkaXVzO1xuXG4gIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICBib3gtc2hhZG93OiAkc2hhZG93O1xuXG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGNvbG9yOiAkY29sb3I7XG5cbiAgJiA+IDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBjYXJkIGRpdmlkZXIuXG5AbWl4aW4gY2FyZC1kaXZpZGVyKFxuICAkYmFja2dyb3VuZDogJGNhcmQtZGl2aWRlci1iYWNrZ3JvdW5kLFxuICAkcGFkZGluZzogJGNhcmQtcGFkZGluZ1xuKSB7XG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gIH1cblxuICBwYWRkaW5nOiAkcGFkZGluZztcbiAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG5cbiAgJiA+IDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBjYXJkIHNlY3Rpb24uXG5AbWl4aW4gY2FyZC1zZWN0aW9uKFxuICAkcGFkZGluZzogJGNhcmQtcGFkZGluZ1xuKSB7XG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGZsZXg6IDEgMCBhdXRvO1xuICB9XG5cbiAgcGFkZGluZzogJHBhZGRpbmc7XG5cbiAgJiA+IDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWNhcmQge1xuICAuY2FyZCB7XG4gICAgQGluY2x1ZGUgY2FyZC1jb250YWluZXI7XG4gIH1cblxuICAuY2FyZC1kaXZpZGVyIHtcbiAgICBAaW5jbHVkZSBjYXJkLWRpdmlkZXI7XG4gIH1cblxuICAuY2FyZC1zZWN0aW9uIHtcbiAgICBAaW5jbHVkZSBjYXJkLXNlY3Rpb247XG4gIH1cblxuICAvLyBGb3IgSUUgMTEgLSBGbGV4YnVnXG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9waGlsaXB3YWx0b24vZmxleGJ1Z3MvaXNzdWVzLzc1XG4gIC5jYXJkLWltYWdlIHtcbiAgICBtaW4taGVpZ2h0OiAxcHg7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGNsb3NlLWJ1dHRvblxuLy8vL1xuXG4vLy8gRGVmYXVsdCBwb3NpdGlvbiBvZiB0aGUgY2xvc2UgYnV0dG9uLiBUaGUgZmlyc3QgdmFsdWUgc2hvdWxkIGJlIGByaWdodGAgb3IgYGxlZnRgLCBhbmQgdGhlIHNlY29uZCB2YWx1ZSBzaG91bGQgYmUgYHRvcGAgb3IgYGJvdHRvbWAuXG4vLy8gQHR5cGUgTGlzdFxuJGNsb3NlYnV0dG9uLXBvc2l0aW9uOiByaWdodCB0b3AgIWRlZmF1bHQ7XG5cbi8vLyBSaWdodCAob3IgbGVmdCkgb2Zmc2V0KHMpIGZvciBhIGNsb3NlIGJ1dHRvbi5cbi8vLyBAdHlwZSBOdW1iZXJ8TWFwXG4kY2xvc2VidXR0b24tb2Zmc2V0LWhvcml6b250YWw6IChcbiAgc21hbGw6IDAuNjZyZW0sXG4gIG1lZGl1bTogMXJlbSxcbikgIWRlZmF1bHQ7XG5cbi8vLyBUb3AgKG9yIGJvdHRvbSkgb2Zmc2V0KHMpIGZvciBhIGNsb3NlIGJ1dHRvbi5cbi8vLyBAdHlwZSBOdW1iZXJ8TWFwXG4kY2xvc2VidXR0b24tb2Zmc2V0LXZlcnRpY2FsOiAoXG4gIHNtYWxsOiAwLjMzZW0sXG4gIG1lZGl1bTogMC41cmVtLFxuKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBzaXplKHMpIG9mIHRoZSBjbG9zZSBidXR0b24uXG4vLy8gQHR5cGUgTnVtYmVyfE1hcFxuJGNsb3NlYnV0dG9uLXNpemU6IChcbiAgc21hbGw6IDEuNWVtLFxuICBtZWRpdW06IDJlbSxcbikgIWRlZmF1bHQ7XG5cbi8vLyBUaGUgbGluZS1oZWlnaHQgb2YgdGhlIGNsb3NlIGJ1dHRvbi4gSXQgYWZmZWN0cyB0aGUgc3BhY2luZyBvZiB0aGUgZWxlbWVudC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRjbG9zZWJ1dHRvbi1saW5laGVpZ2h0OiAxICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBvZiB0aGUgY2xvc2UgYnV0dG9uLlxuLy8vIEB0eXBlIENvbG9yXG4kY2xvc2VidXR0b24tY29sb3I6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIHRoZSBjbG9zZSBidXR0b24gd2hlbiBiZWluZyBob3ZlcmVkIG9uLlxuLy8vIEB0eXBlIENvbG9yXG4kY2xvc2VidXR0b24tY29sb3ItaG92ZXI6ICRibGFjayAhZGVmYXVsdDtcblxuXG4vLy8gR2V0IHRoZSBzaXplIGFuZCBwb3NpdGlvbiBmb3IgYSBjbG9zZSBidXR0b24uIElmIHRoZSBpbnB1dCB2YWx1ZSBpcyBhIG51bWJlciwgdGhlIG51bWJlciBpcyByZXR1cm5lZC4gSWYgdGhlIGlucHV0IHZhbHVlIGlzIGEgY29uZmlnIG1hcCBhbmQgdGhlIG1hcCBoYXMgdGhlIGtleSBgJHNpemVgLCB0aGUgdmFsdWUgaXMgcmV0dXJuZWQuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICR2YWx1ZSAtIEEgbnVtYmVyIG9yIG1hcCB0aGF0IHJlcHJlc2VudHMgdGhlIHNpemUgb3IgcG9zaXRpb24gdmFsdWUocykgb2YgdGhlIGNsb3NlIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIC0gVGhlIHNpemUgb2YgdGhlIGNsb3NlIGJ1dHRvbiB0byB1c2UuXG4vLy9cbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IFRoZSBnaXZlbiBudW1iZXIgb3IgdGhlIHZhbHVlIGZvdW5kIGluIHRoZSBtYXAuXG5AZnVuY3Rpb24gLXpmLWdldC1zaXplLXZhbCgkdmFsdWUsICRzaXplKSB7XG4gIC8vIENoZWNrIGlmIHRoZSB2YWx1ZSBpcyBhIG51bWJlclxuICBAaWYgdHlwZS1vZigkdmFsdWUpID09ICdudW1iZXInIHtcbiAgICAvLyBJZiBpdCBpcywganVzdCByZXR1cm4gdGhlIG51bWJlclxuICAgIEByZXR1cm4gJHZhbHVlO1xuICB9XG5cbiAgLy8gQ2hlY2sgaWYgdGhlIHNpemUgbmFtZSBleGlzdHMgaW4gdGhlIHZhbHVlIG1hcFxuICBAZWxzZSBpZiBtYXAtaGFzLWtleSgkdmFsdWUsICRzaXplKSB7XG4gICAgLy8gSWYgaXQgZG9lcywgcmV0dXJuIHRoZSB2YWx1ZVxuICAgIEByZXR1cm4gbWFwLWdldCgkdmFsdWUsICRzaXplKTtcbiAgfVxufVxuXG4vLy8gU2V0cyB0aGUgc2l6ZSBhbmQgcG9zaXRpb24gb2YgYSBjbG9zZSBidXR0b24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSBbbWVkaXVtXSAtIFRoZSBzaXplIHRvIHVzZS4gU2V0IHRvIGBzbWFsbGAgdG8gY3JlYXRlIGEgc21hbGwgY2xvc2UgYnV0dG9uLiBUaGUgJ21lZGl1bScgdmFsdWVzIGRlZmluZWQgaW4gYCRjbG9zZWJ1dHRvbi0qYCB2YXJpYWJsZXMgd2lsbCBiZSB1c2VkIGFzIHRoZSBkZWZhdWx0IHNpemUgYW5kIHBvc2l0aW9uIG9mIHRoZSBjbG9zZSBidXR0b24uXG5AbWl4aW4gY2xvc2UtYnV0dG9uLXNpemUoJHNpemUpIHtcbiAgJHg6IG50aCgkY2xvc2VidXR0b24tcG9zaXRpb24sIDEpO1xuICAkeTogbnRoKCRjbG9zZWJ1dHRvbi1wb3NpdGlvbiwgMik7XG5cbiAgI3skeH06IC16Zi1nZXQtc2l6ZS12YWwoJGNsb3NlYnV0dG9uLW9mZnNldC1ob3Jpem9udGFsLCAkc2l6ZSk7XG4gICN7JHl9OiAtemYtZ2V0LXNpemUtdmFsKCRjbG9zZWJ1dHRvbi1vZmZzZXQtdmVydGljYWwsICRzaXplKTtcbiAgZm9udC1zaXplOiAtemYtZ2V0LXNpemUtdmFsKCRjbG9zZWJ1dHRvbi1zaXplLCAkc2l6ZSk7XG4gIGxpbmUtaGVpZ2h0OiAtemYtZ2V0LXNpemUtdmFsKCRjbG9zZWJ1dHRvbi1saW5laGVpZ2h0LCAkc2l6ZSk7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBjbG9zZSBidXR0b24sIHVzaW5nIHRoZSBzdHlsZXMgaW4gdGhlIHNldHRpbmdzIHZhcmlhYmxlcy5cbkBtaXhpbiBjbG9zZS1idXR0b24ge1xuICAkeDogbnRoKCRjbG9zZWJ1dHRvbi1wb3NpdGlvbiwgMSk7XG4gICR5OiBudGgoJGNsb3NlYnV0dG9uLXBvc2l0aW9uLCAyKTtcblxuICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29sb3I6ICRjbG9zZWJ1dHRvbi1jb2xvcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIGNvbG9yOiAkY2xvc2VidXR0b24tY29sb3ItaG92ZXI7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tY2xvc2UtYnV0dG9uIHtcbiAgLmNsb3NlLWJ1dHRvbiB7XG4gICAgQGluY2x1ZGUgY2xvc2UtYnV0dG9uO1xuXG4gICAgJi5zbWFsbCB7IEBpbmNsdWRlIGNsb3NlLWJ1dHRvbi1zaXplKHNtYWxsKSB9XG4gICAgJiwgJi5tZWRpdW0geyBAaW5jbHVkZSBjbG9zZS1idXR0b24tc2l6ZShtZWRpdW0pIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZHJpbGxkb3duXG4vLy8vXG5cbi8vLyBUcmFuc2l0aW9uIHByb3BlcnR5IHRvIHVzZSBmb3IgYW5pbWF0aW5nIG1lbnVzLlxuLy8vIEB0eXBlIFRyYW5zaXRpb25cbiRkcmlsbGRvd24tdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTVzIGxpbmVhciAhZGVmYXVsdDtcblxuLy8vIEFkZHMgYXJyb3dzIHRvIGRyaWxsZG93biBpdGVtcyB3aXRoIHN1Ym1lbnVzLCBhcyB3ZWxsIGFzIHRoZSBiYWNrIGJ1dHRvbi5cbi8vLyBAdHlwZSBCb29sZWFuXG4kZHJpbGxkb3duLWFycm93czogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIFNldHMgZHJpbGxkb3duIG1lbnUgaXRlbSBwYWRkaW5nLlxuLy8vIEB0eXBlIE51bWJlclxuJGRyaWxsZG93bi1wYWRkaW5nOiAkZ2xvYmFsLW1lbnUtcGFkZGluZyAhZGVmYXVsdDtcblxuLy8vIFNldHMgZHJpbGxkb3duIG1lbnUgbmVzdGVkIG1hcmdpblxuLy8vIEB0eXBlIE51bWJlclxuJGRyaWxsZG93bi1uZXN0ZWQtbWFyZ2luOiAwICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgZHJpbGxkb3duIHRvcCBsZXZlbCBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJGRyaWxsZG93bi1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGRyaWxsZG93biBtZW51IGl0ZW0gcGFkZGluZyBpbiB0aGUgc3VibWVudS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRkcmlsbGRvd24tc3VibWVudS1wYWRkaW5nOiAkZHJpbGxkb3duLXBhZGRpbmcgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciBkcmlsbGRvd24gc3VibWVudXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRkcmlsbGRvd24tc3VibWVudS1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGRyaWxsZG93biBhcnJvdyBjb2xvciBpZiBhcnJvdyBpcyB1c2VkLlxuLy8vIEB0eXBlIENvbG9yXG4kZHJpbGxkb3duLWFycm93LWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIFNldHMgZHJpbGxkb3duIGFycm93IHNpemUgaWYgYXJyb3cgaXMgdXNlZC5cbi8vLyBAdHlwZSBMZW5ndGhcbiRkcmlsbGRvd24tYXJyb3ctc2l6ZTogNnB4ICFkZWZhdWx0O1xuXG5AbWl4aW4gemYtZHJpbGxkb3duLWxlZnQtcmlnaHQtYXJyb3dzIHtcbiAgLmlzLWRyaWxsZG93bi1zdWJtZW51LXBhcmVudCA+IGEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAmOjphZnRlciB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIG1hcmdpbi10b3A6IC0xICogJGRyaWxsZG93bi1hcnJvdy1zaXplO1xuICAgICAgI3skZ2xvYmFsLXJpZ2h0fTogMXJlbTtcbiAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkZHJpbGxkb3duLWFycm93LXNpemUsICRkcmlsbGRvd24tYXJyb3ctY29sb3IsICRnbG9iYWwtcmlnaHQpO1xuICAgIH1cbiAgfVxuXG4gICYuYWxpZ24tbGVmdCAuaXMtZHJpbGxkb3duLXN1Ym1lbnUtcGFyZW50ID4gYTo6YWZ0ZXIge1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IDFyZW07XG4gICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRkcm9wZG93bm1lbnUtYXJyb3ctc2l6ZSwgJGRyb3Bkb3dubWVudS1hcnJvdy1jb2xvciwgcmlnaHQpO1xuICB9XG5cbiAgJi5hbGlnbi1yaWdodCAuaXMtZHJpbGxkb3duLXN1Ym1lbnUtcGFyZW50ID4gYTo6YWZ0ZXIge1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IDFyZW07XG4gICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRkcm9wZG93bm1lbnUtYXJyb3ctc2l6ZSwgJGRyb3Bkb3dubWVudS1hcnJvdy1jb2xvciwgbGVmdCk7XG4gIH1cblxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1kcmlsbGRvd24tbWVudSB7XG4gIC8vIEFwcGxpZWQgdG8gdGhlIE1lbnUgY29udGFpbmVyXG4gIC5pcy1kcmlsbGRvd24ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgbGkge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgJi5hbmltYXRlLWhlaWdodCB7XG4gICAgICB0cmFuc2l0aW9uOiBoZWlnaHQgMC41cztcbiAgICB9XG4gIH1cblxuICAvLyBUaGUgdG9wIGxldmVsIDx1bD5cbiAgLmRyaWxsZG93biB7XG4gICAgYSB7XG4gICAgICBwYWRkaW5nOiAkZHJpbGxkb3duLXBhZGRpbmc7XG4gICAgICBiYWNrZ3JvdW5kOiAkZHJpbGxkb3duLWJhY2tncm91bmQ7XG4gICAgfVxuXG4gICAgLy8gQXBwbGllZCB0byBzdWJtZW51IDx1bD5zXG4gICAgLmlzLWRyaWxsZG93bi1zdWJtZW51IHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgICN7JGdsb2JhbC1sZWZ0fTogMTAwJTtcbiAgICAgIHotaW5kZXg6IC0xO1xuXG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGJhY2tncm91bmQ6ICRkcmlsbGRvd24tc3VibWVudS1iYWNrZ3JvdW5kO1xuICAgICAgdHJhbnNpdGlvbjogJGRyaWxsZG93bi10cmFuc2l0aW9uO1xuXG4gICAgICAmLmlzLWFjdGl2ZSB7XG4gICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBsdHIsIC0xMDAlLCAxMDAlKSk7XG4gICAgICB9XG5cbiAgICAgICYuaXMtY2xvc2luZyB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWChpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IGx0ciwgMTAwJSwgLTEwMCUpKTtcbiAgICAgIH1cblxuICAgICAgLy8gU3VibWVudSBpdGVtIHBhZGRpbmdcbiAgICAgIGEge1xuICAgICAgICBwYWRkaW5nOiAkZHJpbGxkb3duLXN1Ym1lbnUtcGFkZGluZztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubmVzdGVkLmlzLWRyaWxsZG93bi1zdWJtZW51IHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtbmVzdGVkKCRkcmlsbGRvd24tbmVzdGVkLW1hcmdpbik7XG4gICAgfVxuXG4gICAgLmRyaWxsZG93bi1zdWJtZW51LWNvdmVyLXByZXZpb3VzIHtcbiAgICAgIG1pbi1oZWlnaHQ6IDEwMCU7XG4gICAgfVxuXG4gICAgQGlmICRkcmlsbGRvd24tYXJyb3dzIHtcbiAgICAgIEBpbmNsdWRlIHpmLWRyaWxsZG93bi1sZWZ0LXJpZ2h0LWFycm93cztcblxuICAgICAgLmpzLWRyaWxsZG93bi1iYWNrID4gYTo6YmVmb3JlIHtcbiAgICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRkcmlsbGRvd24tYXJyb3ctc2l6ZSwgJGRyaWxsZG93bi1hcnJvdy1jb2xvciwgJGdsb2JhbC1sZWZ0KTtcbiAgICAgICAgYm9yZGVyLSN7JGdsb2JhbC1sZWZ0fS13aWR0aDogMDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogMC43NXJlbTsgLy8gQ3JlYXRlcyBzcGFjZSBiZXR3ZWVuIHRoZSBhcnJvdyBhbmQgdGhlIHRleHRcblxuICAgICAgICBib3JkZXItI3skZ2xvYmFsLWxlZnR9LXdpZHRoOiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZHJvcGRvd24tbWVudVxuLy8vL1xuXG4vLy8gRW5hYmxlcyBhcnJvd3MgZm9yIGl0ZW1zIHdpdGggZHJvcGRvd24gbWVudXMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGRyb3Bkb3dubWVudS1hcnJvd3M6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGRyb3Bkb3duIG1lbnUgYXJyb3cgY29sb3IgaWYgYXJyb3cgaXMgdXNlZC5cbi8vLyBAdHlwZSBDb2xvclxuJGRyb3Bkb3dubWVudS1hcnJvdy1jb2xvcjogJGFuY2hvci1jb2xvciAhZGVmYXVsdDtcblxuLy8vIFNldHMgZHJvcGRvd24gbWVudSBhcnJvdyBzaXplIGlmIGFycm93IGlzIHVzZWQuXG4vLy8gQHR5cGUgTGVuZ3RoXG4kZHJvcGRvd25tZW51LWFycm93LXNpemU6IDZweCAhZGVmYXVsdDtcblxuLy8vIFNldHMgZHJvcGRvd24gbWVudSBhcnJvdyBwYWRkaW5nIGZvciBhbGlnbmluZyB0aGUgYXJyb3cgY29ycmVjdGx5LlxuLy8vIEB0eXBlIExlbmd0aFxuJGRyb3Bkb3dubWVudS1hcnJvdy1wYWRkaW5nOiAxLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBNaW5pbXVtIHdpZHRoIG9mIGRyb3Bkb3duIHN1Yi1tZW51cy5cbi8vLyBAdHlwZSBMZW5ndGhcbiRkcm9wZG93bm1lbnUtbWluLXdpZHRoOiAyMDBweCAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIHRvcCBsZXZlbCBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJGRyb3Bkb3dubWVudS1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciBkcm9wZG93bnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRkcm9wZG93bm1lbnUtc3VibWVudS1iYWNrZ3JvdW5kOiAkZHJvcGRvd25tZW51LWJhY2tncm91bmQgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGZvciB0b3AgbGV2ZWwgaXRlbXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZHJvcGRvd25tZW51LXBhZGRpbmc6ICRnbG9iYWwtbWVudS1wYWRkaW5nICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBkcm9wZG93biBtZW51IG5lc3RlZCBtYXJnaW5cbi8vLyBAdHlwZSBOdW1iZXJcbiRkcm9wZG93bm1lbnUtbmVzdGVkLW1hcmdpbjogMCAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgZm9yIHN1Yi1tZW51IGl0ZW1zLlxuLy8vIEB0eXBlIE51bWJlclxuJGRyb3Bkb3dubWVudS1zdWJtZW51LXBhZGRpbmc6ICRkcm9wZG93bm1lbnUtcGFkZGluZyAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBmb3IgZHJvcGRvd24gc3ViLW1lbnVzLlxuLy8vIEB0eXBlIExpc3RcbiRkcm9wZG93bm1lbnUtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLyBCb3JkZXIgd2lkdGggZm9yIGRyb3Bkb3duIHN1Yi1tZW51cy5cbi8vIFVzZWQgdG8gYWRqdXN0IHRvcCBtYXJnaW4gb2YgYSBzdWItbWVudSBpZiBhIGJvcmRlciBpcyB1c2VkLlxuLy8gQHR5cGUgTGVuZ3RoXG4kZHJvcGRvd25tZW51LWJvcmRlci13aWR0aDogbnRoKCRkcm9wZG93bm1lbnUtYm9yZGVyLCAxKTtcblxuLy8vIFRleHQgY29sb3Igb2YgYW4gYWN0aXZlIGRyb3Bkb3duIG1lbnUgaXRlbS4gRXhwbGljaXQgb3ZlcnJpZGUgZm9yIG1lbnUgZGVmYXVsdHNcbi8vLyBAdHlwZSBDb2xvclxuJGRyb3Bkb3duLW1lbnUtaXRlbS1jb2xvci1hY3RpdmU6IGdldC1jb2xvcihwcmltYXJ5KSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgYW4gYWN0aXZlIGRyb3Bkb3duIG1lbnUgaXRlbS4gRXhwbGljaXQgb3ZlcnJpZGUgZm9yIG1lbnUgZGVmYXVsdHNcbi8vLyBAdHlwZSBDb2xvclxuJGRyb3Bkb3duLW1lbnUtaXRlbS1iYWNrZ3JvdW5kLWFjdGl2ZTogdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG5cbkBtaXhpbiB6Zi1kcm9wZG93bi1sZWZ0LXJpZ2h0LWFycm93cyB7XG4gID4gYTo6YWZ0ZXIge1xuICAgICN7JGdsb2JhbC1yaWdodH06IDE0cHg7XG4gIH1cblxuICAmLm9wZW5zLWxlZnQgPiBhOjphZnRlciB7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogNXB4O1xuICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkZHJvcGRvd25tZW51LWFycm93LXNpemUsICRkcm9wZG93bm1lbnUtYXJyb3ctY29sb3IsIGxlZnQpO1xuICB9XG5cbiAgJi5vcGVucy1yaWdodCA+IGE6OmFmdGVyIHtcbiAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJGRyb3Bkb3dubWVudS1hcnJvdy1zaXplLCAkZHJvcGRvd25tZW51LWFycm93LWNvbG9yLCByaWdodCk7XG4gIH1cbn1cblxuQG1peGluIGRyb3Bkb3duLW1lbnUtZGlyZWN0aW9uKCRkaXI6IGhvcml6b250YWwpIHtcbiAgQGlmICRkaXIgPT0gaG9yaXpvbnRhbCB7XG4gICAgPiBsaS5vcGVucy1sZWZ0IHtcbiAgICAgID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgfVxuICAgIH1cblxuICAgID4gbGkub3BlbnMtcmlnaHQge1xuICAgICAgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGlmICRkcm9wZG93bm1lbnUtYXJyb3dzIHtcbiAgICAgID4gbGkuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiBhIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBwYWRkaW5nLSN7JGdsb2JhbC1yaWdodH06ICRkcm9wZG93bm1lbnUtYXJyb3ctcGFkZGluZztcbiAgICAgIH1cblxuICAgICAgPiBsaS5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCA+IGE6OmFmdGVyIHtcbiAgICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRkcm9wZG93bm1lbnUtYXJyb3ctc2l6ZSwgJGRyb3Bkb3dubWVudS1hcnJvdy1jb2xvciwgZG93bik7XG4gICAgICAgICN7JGdsb2JhbC1yaWdodH06IDVweDtcbiAgICAgICAgI3skZ2xvYmFsLWxlZnR9OiBhdXRvO1xuICAgICAgICBtYXJnaW4tdG9wOiAtMSAqICgkZHJvcGRvd25tZW51LWFycm93LXNpemUgLyAyKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJGRpciA9PSB2ZXJ0aWNhbCB7XG4gICAgPiBsaSB7XG4gICAgICAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICAgIHRvcDogMDtcbiAgICAgIH1cblxuICAgICAgJi5vcGVucy1sZWZ0IHtcbiAgICAgICAgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICAgICAgcmlnaHQ6IDEwMCU7XG4gICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICB0b3A6IDA7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5vcGVucy1yaWdodCB7XG4gICAgICAgID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgICAgIGxlZnQ6IDEwMCU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgQGlmICRkcm9wZG93bm1lbnUtYXJyb3dzIHtcbiAgICAgICAgQGluY2x1ZGUgemYtZHJvcGRvd24tbGVmdC1yaWdodC1hcnJvd3M7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBAd2FybiAnVGhlIGRpcmVjdGlvbiB1c2VkIGZvciBkcm9wZG93bi1tZW51LWRpcmVjdGlvbigpIG11c3QgYmUgaG9yaXpvbnRhbCBvciB2ZXJ0aWNhbC4nO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWRyb3Bkb3duLW1lbnUge1xuICAuZHJvcGRvd24ubWVudSB7XG4gICAgQGluY2x1ZGUgZHJvcGRvd24tbWVudS1kaXJlY3Rpb24oaG9yaXpvbnRhbCk7XG5cbiAgICBhIHtcbiAgICAgIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgICAgIHBhZGRpbmc6ICRkcm9wZG93bm1lbnUtcGFkZGluZztcbiAgICB9XG5cbiAgICAvLyBBY3RpdmUgc3RhdGVcbiAgICAuaXMtYWN0aXZlID4gYSB7XG4gICAgICBiYWNrZ3JvdW5kOiAkZHJvcGRvd24tbWVudS1pdGVtLWJhY2tncm91bmQtYWN0aXZlO1xuICAgICAgY29sb3I6ICRkcm9wZG93bi1tZW51LWl0ZW0tY29sb3ItYWN0aXZlO1xuICAgIH1cblxuICAgIC5uby1qcyAmIHVsIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLm5lc3RlZC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtbmVzdGVkKCRkcm9wZG93bm1lbnUtbmVzdGVkLW1hcmdpbik7XG4gICAgfVxuXG4gICAgJi52ZXJ0aWNhbCB7XG4gICAgICBAaW5jbHVkZSBkcm9wZG93bi1tZW51LWRpcmVjdGlvbih2ZXJ0aWNhbCk7XG4gICAgfVxuXG4gICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgICAgJi4jeyRzaXplfS1ob3Jpem9udGFsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGRyb3Bkb3duLW1lbnUtZGlyZWN0aW9uKGhvcml6b250YWwpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgICYuI3skc2l6ZX0tdmVydGljYWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgZHJvcGRvd24tbWVudS1kaXJlY3Rpb24odmVydGljYWwpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICYuYWxpZ24tcmlnaHQge1xuICAgICAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUuZmlyc3Qtc3ViIHtcbiAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbGVmdDogYXV0bztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuaXMtZHJvcGRvd24tbWVudS52ZXJ0aWNhbCB7XG4gICAgd2lkdGg6IDEwMHB4O1xuXG4gICAgJi5hbGlnbi1yaWdodCB7XG4gICAgICBmbG9hdDogcmlnaHQ7XG4gICAgfVxuICB9XG5cbiAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICBhOjphZnRlciB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgICN7JGdsb2JhbC1yaWdodH06IDVweDtcbiAgICAgICN7JGdsb2JhbC1sZWZ0fTogYXV0bztcbiAgICAgIG1hcmdpbi10b3A6IC0xICogJGRyb3Bkb3dubWVudS1hcnJvdy1zaXplO1xuICAgIH1cblxuICAgICYub3BlbnMtaW5uZXIgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG5cbiAgICAgIHRvcDogMTAwJTtcbiAgICAgIEBpZiAkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09ICdydGwnIHtcbiAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5vcGVucy1sZWZ0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgcmlnaHQ6IDEwMCU7XG4gICAgICBsZWZ0OiBhdXRvO1xuICAgIH1cblxuICAgICYub3BlbnMtcmlnaHQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICByaWdodDogYXV0bztcbiAgICAgIGxlZnQ6IDEwMCU7XG4gICAgfVxuICB9XG5cbiAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgI3skZ2xvYmFsLWxlZnR9OiAxMDAlO1xuICAgIHotaW5kZXg6IDE7XG5cbiAgICBkaXNwbGF5OiBub25lO1xuICAgIG1pbi13aWR0aDogJGRyb3Bkb3dubWVudS1taW4td2lkdGg7XG5cbiAgICBib3JkZXI6ICRkcm9wZG93bm1lbnUtYm9yZGVyO1xuICAgIGJhY2tncm91bmQ6ICRkcm9wZG93bm1lbnUtc3VibWVudS1iYWNrZ3JvdW5kO1xuXG4gICAgLmRyb3Bkb3duICYgYSB7XG4gICAgICBwYWRkaW5nOiAkZHJvcGRvd25tZW51LXN1Ym1lbnUtcGFkZGluZztcbiAgICB9XG5cbiAgICAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQge1xuICAgICAgQGlmICRkcm9wZG93bm1lbnUtYXJyb3dzIHtcbiAgICAgICAgQGluY2x1ZGUgemYtZHJvcGRvd24tbGVmdC1yaWdodC1hcnJvd3M7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGlmICh0eXBlLW9mKCRkcm9wZG93bm1lbnUtYm9yZGVyLXdpZHRoKSA9PSAnbnVtYmVyJykge1xuICAgICAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgICBtYXJnaW4tdG9wOiAoLSRkcm9wZG93bm1lbnUtYm9yZGVyLXdpZHRoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICA+IGxpIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIC8vIFtUT0RPXSBDdXQgYmFjayBzcGVjaWZpY2l0eVxuICAgIC8vJjpub3QoLmpzLWRyb3Bkb3duLW5vaG92ZXIpID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50OmhvdmVyID4gJiwgLy8gd2h5IGlzIHRoaXMgbGluZSBuZWVkZWQ/IE9wZW5pbmcgaXMgaGFuZGxlZCBieSBKUyBhbmQgdGhpcyBjYXVzZXMgc29tZSB1Z2x5IGZsaWNrZXJpbmcgd2hlbiB0aGUgc3ViIGlzIHJlLXBvc2l0aW9uZWQgYXV0b21hdGljYWxseS4uLlxuICAgICYuanMtZHJvcGRvd24tYWN0aXZlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZHJvcGRvd25cbi8vLy9cblxuLy8vIFBhZGRpbmcgZm9yIGRyb3Bkb3duIHBhbmVzLlxuLy8vIEB0eXBlIExpc3RcbiRkcm9wZG93bi1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBmb3IgZHJvcGRvd24gcGFuZXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRkcm9wZG93bi1iYWNrZ3JvdW5kOiAkYm9keS1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIGZvciBkcm9wZG93biBwYW5lcy5cbi8vLyBAdHlwZSBMaXN0XG4kZHJvcGRvd24tYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIGZvciBkcm9wZG93biBwYW5lcy5cbi8vLyBAdHlwZSBMaXN0XG4kZHJvcGRvd24tZm9udC1zaXplOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gV2lkdGggZm9yIGRyb3Bkb3duIHBhbmVzLlxuLy8vIEB0eXBlIE51bWJlclxuJGRyb3Bkb3duLXdpZHRoOiAzMDBweCAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciByYWRpdXMgZHJvcGRvd24gcGFuZXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZHJvcGRvd24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIFNpemVzIGZvciBkcm9wZG93biBwYW5lcy4gRWFjaCBzaXplIGlzIGEgQ1NTIGNsYXNzIHlvdSBjYW4gYXBwbHkuXG4vLy8gQHR5cGUgTWFwXG4kZHJvcGRvd24tc2l6ZXM6IChcbiAgdGlueTogMTAwcHgsXG4gIHNtYWxsOiAyMDBweCxcbiAgbGFyZ2U6IDQwMHB4LFxuKSAhZGVmYXVsdDtcblxuLy8vIEFwcGxpZXMgc3R5bGVzIGZvciBhIGJhc2ljIGRyb3Bkb3duLlxuQG1peGluIGRyb3Bkb3duLWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTA7XG5cbiAgd2lkdGg6ICRkcm9wZG93bi13aWR0aDtcbiAgcGFkZGluZzogJGRyb3Bkb3duLXBhZGRpbmc7XG5cbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICBkaXNwbGF5OiBub25lO1xuICBib3JkZXI6ICRkcm9wZG93bi1ib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6ICRkcm9wZG93bi1yYWRpdXM7XG4gIGJhY2tncm91bmQtY29sb3I6ICRkcm9wZG93bi1iYWNrZ3JvdW5kO1xuXG4gIGZvbnQtc2l6ZTogJGRyb3Bkb3duLWZvbnQtc2l6ZTtcblxuXG4gIC8vIEFsbG93IGFuIGludGVybWl0dGVudCBzdGF0ZSB0byBkbyBwb3NpdGlvbmluZyBiZWZvcmUgbWFraW5nIHZpc2libGUuXG4gICYuaXMtb3BlbmluZyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICAmLmlzLW9wZW4ge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tZHJvcGRvd24ge1xuICAuZHJvcGRvd24tcGFuZSB7XG4gICAgQGluY2x1ZGUgZHJvcGRvd24tY29udGFpbmVyO1xuICB9XG5cbiAgQGVhY2ggJG5hbWUsICRzaXplIGluICRkcm9wZG93bi1zaXplcyB7XG4gICAgLmRyb3Bkb3duLXBhbmUuI3skbmFtZX0ge1xuICAgICAgd2lkdGg6ICRzaXplO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgRmxleGJveCBVdGlsaXRpZXNcbi8vLy9cbi8vXG4vLy8gRGVmYXVsdCB2YWx1ZSBmb3IgdGhlIGNvdW50IG9mIHNvdXJjZSBvcmRlcmluZ2Bcbi8vLyBAdHlwZSBOdW1iZXJcbiRmbGV4LXNvdXJjZS1vcmRlcmluZy1jb3VudDogNiAhZGVmYXVsdDtcblxuLy8vIFF1aWNrbHkgZGlzYWJsZS9lbmFibGUgUmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3IgVmFuaWxsYSBGbGV4IEhlbHBlcnMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGZsZXhib3gtcmVzcG9uc2l2ZS1icmVha3BvaW50czogdHJ1ZSAhZGVmYXVsdDtcblxuQG1peGluIGZsZXgtaGVscGVycyB7XG4gIC5mbGV4LWNvbnRhaW5lciB7XG4gICAgQGluY2x1ZGUgZmxleDtcbiAgfVxuXG4gIC5mbGV4LWNoaWxkLWF1dG8ge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICB9XG5cbiAgLmZsZXgtY2hpbGQtZ3JvdyB7XG4gICAgZmxleDogMSAwIGF1dG87XG4gIH1cblxuICAuZmxleC1jaGlsZC1zaHJpbmsge1xuICAgIGZsZXg6IDAgMSBhdXRvO1xuICB9XG5cbiAgQGVhY2ggJGRpciwgJHByb3AgaW4gJC16Zi1mbGV4LWRpcmVjdGlvbiB7XG4gICAgLmZsZXgtZGlyLSN7JGRpcn0ge1xuICAgICAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24oJHByb3ApO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAoJGZsZXhib3gtcmVzcG9uc2l2ZS1icmVha3BvaW50cykge1xuICAgIC8vIExvb3AgdGhyb3VnaCBSZXNwb25zaXZlIEJyZWFrcG9pbnRzXG4gICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgLiN7JHNpemV9LWZsZXgtY29udGFpbmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZsZXg7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLiN7JHNpemV9LWZsZXgtY2hpbGQtYXV0byB7XG4gICAgICAgICAgICBmbGV4OiAxIDEgYXV0bztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAuI3skc2l6ZX0tZmxleC1jaGlsZC1ncm93IHtcbiAgICAgICAgICAgIGZsZXg6IDEgMCBhdXRvO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC4jeyRzaXplfS1mbGV4LWNoaWxkLXNocmluayB7XG4gICAgICAgICAgICBmbGV4OiAwIDEgYXV0bztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBAZWFjaCAkZGlyLCAkcHJvcCBpbiAkLXpmLWZsZXgtZGlyZWN0aW9uIHtcbiAgICAgICAgICAgIC4jeyRzaXplfS1mbGV4LWRpci0jeyRkaXJ9IHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24oJHByb3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mbGV4LWNsYXNzZXMge1xuICAvLyBIb3Jpem9udGFsIGFsaWdubWVudCB1c2luZyBqdXN0aWZ5LWNvbnRlbnRcbiAgQGVhY2ggJGhkaXIsICRwcm9wIGluIG1hcC1yZW1vdmUoJC16Zi1mbGV4LWp1c3RpZnksICdsZWZ0Jykge1xuICAgIC5hbGlnbi0jeyRoZGlyfSB7XG4gICAgICBAaW5jbHVkZSBmbGV4LWFsaWduKCR4OiAkaGRpcik7XG4gICAgfVxuICB9XG4gIFxuICAvLyBIb3Jpem9udGFsIGFsaWdubWVudCBTcGVjaWZpY2FsbHkgZm9yIFZlcnRpY2FsIE1lbnVcbiAgQGVhY2ggJGhkaXIsICRwcm9wIGluIG1hcC1yZW1vdmUoJC16Zi1mbGV4LWp1c3RpZnksICdsZWZ0JywgJ2p1c3RpZnknLCAnc3BhY2VkJykge1xuICAgIC5hbGlnbi0jeyRoZGlyfSB7XG4gICAgICAmLnZlcnRpY2FsLm1lbnUgPiBsaSA+IGEgeyBcbiAgICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbigkeDogJGhkaXIpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFZlcnRpY2FsIGFsaWdubWVudCB1c2luZyBhbGlnbi1pdGVtcyBhbmQgYWxpZ24tc2VsZlxuICBAZWFjaCAkdmRpciwgJHByb3AgaW4gJC16Zi1mbGV4LWFsaWduIHtcbiAgICAuYWxpZ24tI3skdmRpcn0ge1xuICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbigkeTogJHZkaXIpO1xuICAgIH1cblxuICAgIC5hbGlnbi1zZWxmLSN7JHZkaXJ9IHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24tc2VsZigkeTogJHZkaXIpO1xuICAgIH1cbiAgfVxuXG4gIC8vIENlbnRyYWwgYWxpZ25tZW50IG9mIGNvbnRlbnRcbiAgLmFsaWduLWNlbnRlci1taWRkbGUge1xuICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24oJHg6IGNlbnRlciwgJHk6IG1pZGRsZSk7XG4gICAgYWxpZ24tY29udGVudDogY2VudGVyO1xuICB9XG5cbiAgLy8gU291cmNlIG9yZGVyaW5nXG4gIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQge1xuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGZsZXgtc291cmNlLW9yZGVyaW5nLWNvdW50IHtcbiAgICAgIC4jeyQtemYtc2l6ZX0tb3JkZXItI3skaX0ge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LW9yZGVyKCRpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBWYW5pbGxhIEZsZXhib3ggSGVscGVyc1xuICBAaW5jbHVkZSBmbGV4LWhlbHBlcnM7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCByZXNwb25zaXZlLWVtYmVkXG4vLy8vXG5cbi8vLyBNYXJnaW4gYmVsb3cgYSByZXNwb25zaXZlIGVtYmVkIGNvbnRhaW5lci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRyZXNwb25zaXZlLWVtYmVkLW1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDE2KSAhZGVmYXVsdDtcblxuLy8vIEFzcGVjdCByYXRpb3MgdXNlZCB0byBkZXRlcm1pbmUgcGFkZGluZy1ib3R0b20gb2YgcmVzcG9uc2l2ZSBlbWJlZCBjb250YWluZXJzLlxuLy8vIEB0eXBlIE1hcFxuJHJlc3BvbnNpdmUtZW1iZWQtcmF0aW9zOiAoXG4gIGRlZmF1bHQ6IDQgYnkgMyxcbiAgd2lkZXNjcmVlbjogMTYgYnkgOSxcbikgIWRlZmF1bHQ7XG5cbi8vIFdBUk5JTkc6IFdpbGwgYmUgcmVtb3ZlZCBpbiB2ZXJzaW9uIDYuNFxuJHJlc3BvbnNpdmUtZW1iZWQtcmF0aW86IGRlZmF1bHQ7XG5cbi8vLyBDcmVhdGVzIGEgcmVzcG9uc2l2ZSBlbWJlZCBjb250YWluZXIuXG4vLy8gQHBhcmFtIHtTdHJpbmd8TGlzdH0gJHJhdGlvIFtkZWZhdWx0XSAtIFJhdGlvIG9mIHRoZSBjb250YWluZXIuIENhbiBiZSBhIGtleSBmcm9tIHRoZSBgJHJlc3BvbnNpdmUtZW1iZWQtcmF0aW9zYCBtYXAgb3IgYSBsaXN0IGZvcm1hdHRlZCBhcyBgeCBieSB5YC5cbkBtaXhpbiByZXNwb25zaXZlLWVtYmVkKCRyYXRpbzogZGVmYXVsdCkge1xuICBAaWYgdHlwZS1vZigkcmF0aW8pID09ICdzdHJpbmcnIHtcbiAgICAkcmF0aW86IG1hcC1nZXQoJHJlc3BvbnNpdmUtZW1iZWQtcmF0aW9zLCAkcmF0aW8pO1xuICB9XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAwO1xuICBtYXJnaW4tYm90dG9tOiAkcmVzcG9uc2l2ZS1lbWJlZC1tYXJnaW4tYm90dG9tO1xuICBwYWRkaW5nLWJvdHRvbTogcmF0aW8tdG8tcGVyY2VudGFnZSgkcmF0aW8pO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gIGlmcmFtZSxcbiAgb2JqZWN0LFxuICBlbWJlZCxcbiAgdmlkZW8ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgI3skZ2xvYmFsLWxlZnR9OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1yZXNwb25zaXZlLWVtYmVkIHtcbiAgLnJlc3BvbnNpdmUtZW1iZWQsXG4gIC5mbGV4LXZpZGVvIHtcbiAgICBAaW5jbHVkZSByZXNwb25zaXZlLWVtYmVkKCRyYXRpbzogZGVmYXVsdCk7XG5cbiAgICAkcmF0aW9zOiBtYXAtcmVtb3ZlKCRyZXNwb25zaXZlLWVtYmVkLXJhdGlvcyxkZWZhdWx0KTtcblxuICAgIEBlYWNoICRuYW1lLCAkcmF0aW8gaW4gJHJhdGlvcyB7XG4gICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IHJhdGlvLXRvLXBlcmNlbnRhZ2UoJHJhdGlvKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tZmxleC12aWRlbyB7XG4gIEB3YXJuICdUaGlzIG1peGluIGlzIGJlaW5nIHJlcGxhY2VkIGJ5IGZvdW5kYXRpb24tcmVzcG9uc2l2ZS1lbWJlZCgpLiBmb3VuZGF0aW9uLWZsZXgtdmlkZW8oKSB3aWxsIGJlIHJlbW92ZWQgaW4gRm91bmRhdGlvbiA2LjQuJztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1yZXNwb25zaXZlLWVtYmVkO1xufVxuXG5AbWl4aW4gZmxleC12aWRlbygkcmF0aW86ICRyZXNwb25zaXZlLWVtYmVkLXJhdGlvKSB7XG4gIEB3YXJuICdUaGlzIG1peGluIGlzIGJlaW5nIHJlcGxhY2VkIGJ5IHJlc3BvbnNpdmUtZW1iZWQoKS4gZmxleC12aWRlbygpIHdpbGwgYmUgcmVtb3ZlZCBpbiBGb3VuZGF0aW9uIDYuNC4nO1xuICBAaW5jbHVkZSByZXNwb25zaXZlLWVtYmVkKCRyYXRpbyk7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBsYWJlbFxuLy8vL1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIGZvciBsYWJlbHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRsYWJlbC1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdGV4dCBjb2xvciBmb3IgbGFiZWxzLlxuLy8vIEB0eXBlIENvbG9yXG4kbGFiZWwtY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIEFsdGVybmF0ZSB0ZXh0IGNvbG9yIGZvciBsYWJlbHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRsYWJlbC1jb2xvci1hbHQ6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIENvbG9yaW5nIGNsYXNzZXMuIEEgbWFwIG9mIGNsYXNzZXMgdG8gb3V0cHV0IGluIHlvdXIgQ1NTLCBsaWtlIGAuc2Vjb25kYXJ5YCwgYC5zdWNjZXNzYCwgYW5kIHNvIG9uLlxuLy8vIEB0eXBlIE1hcFxuJGxhYmVsLXBhbGV0dGU6ICRmb3VuZGF0aW9uLXBhbGV0dGUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBmb3IgbGFiZWxzLlxuLy8vIEB0eXBlIE51bWJlclxuJGxhYmVsLWZvbnQtc2l6ZTogMC44cmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGluc2lkZSBsYWJlbHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGFiZWwtcGFkZGluZzogMC4zMzMzM3JlbSAwLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHJhZGl1cyBvZiBsYWJlbHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGFiZWwtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIEdlbmVyYXRlcyBiYXNlIHN0eWxlcyBmb3IgYSBsYWJlbC5cbkBtaXhpbiBsYWJlbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogJGxhYmVsLXBhZGRpbmc7XG5cbiAgYm9yZGVyLXJhZGl1czogJGxhYmVsLXJhZGl1cztcblxuICBmb250LXNpemU6ICRsYWJlbC1mb250LXNpemU7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWxhYmVsIHtcbiAgLmxhYmVsIHtcbiAgICBAaW5jbHVkZSBsYWJlbDtcblxuICAgIGJhY2tncm91bmQ6ICRsYWJlbC1iYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkbGFiZWwtY29sb3I7XG5cbiAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICRsYWJlbC1wYWxldHRlIHtcbiAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3I7XG4gICAgICAgIGNvbG9yOiBjb2xvci1waWNrLWNvbnRyYXN0KCRjb2xvciwgKCRsYWJlbC1jb2xvciwgJGxhYmVsLWNvbG9yLWFsdCkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgbWVkaWEtb2JqZWN0XG4vLy8vXG5cbi8vLyBCb3R0b20gbWFyZ2luIG9mIGEgbWVkaWEgb2JqZWN0LlxuLy8vIEB0eXBlIE51bWJlclxuJG1lZGlhb2JqZWN0LW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xuXG4vLy8gTGVmdCBhbmQgcmlnaHQgcGFkZGluZyBvbiBzZWN0aW9ucyB3aXRoaW4gYSBtZWRpYSBvYmplY3QuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVkaWFvYmplY3Qtc2VjdGlvbi1wYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmcgIWRlZmF1bHQ7XG5cbi8vLyBXaWR0aCBvZiBpbWFnZXMgd2l0aGluIGEgbWVkaWEgb2JqZWN0LCB3aGVuIHRoZSBvYmplY3QgaXMgc3RhY2tlZCB2ZXJ0aWNhbGx5LiBTZXQgdG8gJ2F1dG8nIHRvIHVzZSB0aGUgaW1hZ2UncyBuYXR1cmFsIHdpZHRoLlxuLy8vIEB0eXBlIE51bWJlclxuJG1lZGlhb2JqZWN0LWltYWdlLXdpZHRoLXN0YWNrZWQ6IDEwMCUgIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBtZWRpYSBvYmplY3QgY29udGFpbmVyLlxuQG1peGluIG1lZGlhLW9iamVjdC1jb250YWluZXIge1xuICBkaXNwbGF5OiBpZigkZ2xvYmFsLWZsZXhib3gsIGZsZXgsIGJsb2NrKTtcbiAgbWFyZ2luLWJvdHRvbTogJG1lZGlhb2JqZWN0LW1hcmdpbi1ib3R0b207XG5cbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBzZWN0aW9ucyB3aXRoaW4gYSBtZWRpYSBvYmplY3QuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRwYWRkaW5nIFskbWVkaWFvYmplY3Qtc2VjdGlvbi1wYWRkaW5nXSAtIFBhZGRpbmcgYmV0d2VlbiBzZWN0aW9ucy5cbkBtaXhpbiBtZWRpYS1vYmplY3Qtc2VjdGlvbigkcGFkZGluZzogJG1lZGlhb2JqZWN0LXNlY3Rpb24tcGFkZGluZykge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBmbGV4OiAwIDEgYXV0bztcbiAgfVxuICBAZWxzZSB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICB9XG5cbiAgJjpmaXJzdC1jaGlsZCB7XG4gICAgcGFkZGluZy0jeyRnbG9iYWwtcmlnaHR9OiAkcGFkZGluZztcbiAgfVxuXG4gICY6bGFzdC1jaGlsZDpub3QoOm50aC1jaGlsZCgyKSkge1xuICAgIHBhZGRpbmctI3skZ2xvYmFsLWxlZnR9OiAkcGFkZGluZztcbiAgfVxuXG4gID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIHRvIHN0YWNrIHNlY3Rpb25zIG9mIGEgbWVkaWEgb2JqZWN0LiBBcHBseSB0aGlzIHRvIHRoZSBzZWN0aW9uIGVsZW1lbnRzLCBub3QgdGhlIGNvbnRhaW5lci5cbkBtaXhpbiBtZWRpYS1vYmplY3Qtc3RhY2sge1xuICBwYWRkaW5nOiAwO1xuICBwYWRkaW5nLWJvdHRvbTogJG1lZGlhb2JqZWN0LXNlY3Rpb24tcGFkZGluZztcblxuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBmbGV4LWJhc2lzOiAxMDAlO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgfVxuICBAZWxzZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICBpbWcge1xuICAgIHdpZHRoOiAkbWVkaWFvYmplY3QtaW1hZ2Utd2lkdGgtc3RhY2tlZDtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1tZWRpYS1vYmplY3Qge1xuICAubWVkaWEtb2JqZWN0IHtcbiAgICBAaW5jbHVkZSBtZWRpYS1vYmplY3QtY29udGFpbmVyO1xuXG4gICAgaW1nIHtcbiAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICB9XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICYuc3RhY2stZm9yLSN7JC16Zi16ZXJvLWJyZWFrcG9pbnR9IHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkLXpmLXplcm8tYnJlYWtwb2ludCBvbmx5KSB7XG4gICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5zdGFjay1mb3ItI3skLXpmLXplcm8tYnJlYWtwb2ludH0gLm1lZGlhLW9iamVjdC1zZWN0aW9uIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJC16Zi16ZXJvLWJyZWFrcG9pbnQgb25seSkge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYS1vYmplY3Qtc3RhY2s7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1lZGlhLW9iamVjdC1zZWN0aW9uIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1vYmplY3Qtc2VjdGlvbjtcblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgJi5tYWluLXNlY3Rpb24ge1xuICAgICAgICBmbGV4OiAxIDEgMHB4OyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIHplcm8tdW5pdFxuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAmLm1pZGRsZSB7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICB9XG5cbiAgICAgICYuYm90dG9tIHtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIG1lbnVcbi8vLy9cblxuLy8vIE1hcmdpbiBvZiBhIG1lbnUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVudS1tYXJnaW46IDAgIWRlZmF1bHQ7XG5cbi8vLyBMZWZ0LWhhbmQgbWFyZ2luIG9mIGEgbmVzdGVkIG1lbnUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVudS1uZXN0ZWQtbWFyZ2luOiAkZ2xvYmFsLW1lbnUtbmVzdGVkLW1hcmdpbiAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgZm9yIGl0ZW1zIGluIGEgcGlsbCBtZW51LlxuLy8vIEB0eXBlIE51bWJlclxuJG1lbnUtaXRlbXMtcGFkZGluZzogJGdsb2JhbC1tZW51LXBhZGRpbmcgIWRlZmF1bHQ7XG5cbi8vLyBtYXJnaW4gZm9yIGl0ZW1zIGluIGEgc2ltcGxlIG1lbnUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVudS1zaW1wbGUtbWFyZ2luOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBvZiBhbiBhY3RpdmUgbWVudSBpdGVtLlxuLy8vIEB0eXBlIENvbG9yXG4kbWVudS1pdGVtLWNvbG9yLWFjdGl2ZTogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBhbiBhY3RpdmUgbWVudSBpdGVtLlxuLy8vIEB0eXBlIENvbG9yXG4kbWVudS1pdGVtLWJhY2tncm91bmQtYWN0aXZlOiBnZXQtY29sb3IocHJpbWFyeSkgIWRlZmF1bHQ7XG5cbi8vLyBTcGFjaW5nIGJldHdlZW4gYW4gaWNvbiBhbmQgdGV4dCBpbiBhIG1lbnUgaXRlbS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRtZW51LWljb24tc3BhY2luZzogMC4yNXJlbSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIGFuIGhvdmVyZWQgbWVudSBpdGVtLlxuLy8vIEB0eXBlIENvbG9yXG4kbWVudS1pdGVtLWJhY2tncm91bmQtaG92ZXI6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQmFja3dhcmQgY29tcGF0aWJpbGl0eSBmb3IgbWVudSBzdGF0ZS4gSWYgdHJ1ZSwgdGhpcyBkdXBsaWNhdGUgYGFjdGl2ZWAgd2l0aCBgaXMtYWN0aXZlYC4gXG4vLy8gQnV0IHBsZWFzZSBub3RlIHRoYXQgYGFjdGl2ZWAgd2lsbCBiZSByZW1vdmVkIGluIHVwY29taW5nIHZlcnNpb25zLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRtZW51LXN0YXRlLWJhY2stY29tcGF0OiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQmFja3dhcmQgY29tcGF0aWJpbGl0eSBmb3IgbWVudSBjZW50ZXJlZC4gSWYgdHJ1ZSwgdGhpcyBkdXBsaWNhdGUgYC5tZW51LWNlbnRlcmVkID4gLm1lbnVgIHdpdGggYC5tZW51LmFsaWduLWNlbnRlcmAuIFxuLy8vIEJ1dCBwbGVhc2Ugbm90ZSB0aGF0IGBtZW51LWNlbnRlcmVkYCB3aWxsIGJlIHJlbW92ZWQgaW4gdXBjb21pbmcgdmVyc2lvbnMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJG1lbnUtY2VudGVyZWQtYmFjay1jb21wYXQ6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrd2FyZCBjb21wYXRpYmlsaXR5IGZvciB1c2luZyBgaWNvbi0qYCBjbGFzc2VzIHdpdGhvdXQgYC5pY29uc2AgY2xhc3Nlc1xuLy8vIEJ1dCBwbGVhc2Ugbm90ZSB0aGF0IHRoaXMgYmFja3dhcmQgY29tcGF0aWJpbGl0eSB3aWxsIGJlIHJlbW92ZWQgaW4gdXBjb21pbmcgdmVyc2lvbnMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJG1lbnUtaWNvbnMtYmFjay1jb21wYXQ6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBDcmVhdGVzIHRoZSBiYXNlIHN0eWxlcyBmb3IgYSBNZW51LlxuQG1peGluIG1lbnUtYmFzZSB7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICB9XG5cbiAgbGkge1xuICAgIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgfVxuXG4gIGEsXG4gIC5idXR0b24ge1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAkbWVudS1pdGVtcy1wYWRkaW5nO1xuICB9XG5cbiAgLy8gUmVzZXQgc3R5bGVzIG9mIGlubmVyIGVsZW1lbnRzXG4gIGlucHV0LFxuICBzZWxlY3QsXG4gIGEsXG4gIGJ1dHRvbiB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxuXG4gIGlucHV0IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIH1cbn1cblxuLy8vIEV4cGFuZHMgdGhlIGl0ZW1zIG9mIGEgTWVudSwgc28gZWFjaCBpdGVtIGlzIHRoZSBzYW1lIHdpZHRoLlxuQG1peGluIG1lbnUtZXhwYW5kIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgbGkge1xuICAgICAgZmxleDogMSAxIDBweDsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSB6ZXJvLXVuaXRcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgPiBsaSB7XG4gICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFsaWduIG1lbnUgaXRlbXMuXG5AbWl4aW4gbWVudS1hbGlnbigkYWxpZ25tZW50KSB7XG4gIEBpZiAkYWxpZ25tZW50ID09IGxlZnQge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICB0ZXh0LWFsaWduOiAkZ2xvYmFsLWxlZnQ7XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRhbGlnbm1lbnQgPT0gcmlnaHQge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgbGkge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgIC5zdWJtZW51IGxpIHtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi52ZXJ0aWNhbCBsaSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB0ZXh0LWFsaWduOiAkZ2xvYmFsLXJpZ2h0O1xuXG4gICAgICAgIC5zdWJtZW51IGxpIHtcbiAgICAgICAgICB0ZXh0LWFsaWduOiAkZ2xvYmFsLXJpZ2h0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIHRleHQtYWxpZ246ICRnbG9iYWwtcmlnaHQ7XG5cbiAgICAgIC5zdWJtZW51IGxpIHtcbiAgICAgICAgdGV4dC1hbGlnbjogJGdsb2JhbC1sZWZ0O1xuICAgICAgfVxuXG4gICAgICAmLnZlcnRpY2FsIHtcbiAgICAgICAgLnN1Ym1lbnUgbGkge1xuICAgICAgICAgIHRleHQtYWxpZ246ICRnbG9iYWwtcmlnaHQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJGFsaWdubWVudCA9PSBjZW50ZXIge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgbGkge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgICAgICAuc3VibWVudSBsaSB7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgLnN1Ym1lbnUgbGkge1xuICAgICAgICB0ZXh0LWFsaWduOiAkZ2xvYmFsLWxlZnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vLyBTZXRzIHRoZSBkaXJlY3Rpb24gb2YgYSBNZW51LlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGRpciBbaG9yaXpvbnRhbF0gLSBEaXJlY3Rpb24gb2YgdGhlIE1lbnUuIENhbiBiZSBgaG9yaXpvbnRhbGAgb3IgYHZlcnRpY2FsYC5cbkBtaXhpbiBtZW51LWRpcmVjdGlvbigkZGlyOiBob3Jpem9udGFsKSB7XG4gIEBpZiAkZGlyID09IGhvcml6b250YWwge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgbGkge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRkaXIgPT0gdmVydGljYWwge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBsaSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQHdhcm4gJ1RoZSBkaXJlY3Rpb24gdXNlZCBmb3IgbWVudS1kaXJlY3Rpb24oKSBtdXN0IGJlIGhvcml6b250YWwgb3IgdmVydGljYWwuJztcbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIHNpbXBsZSBNZW51LCB3aGljaCBoYXMgbm8gcGFkZGluZyBvciBob3ZlciBzdGF0ZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkaXIgWyRnbG9iYWwtbGVmdF0gLSBEaXJlY3Rpb24gb2YgdGhlIG1lbnUuIFRoaXMgZWZmZWN0cyB0aGUgc2lkZSBvZiB0aGUgYDxsaT5gIHRoYXQgcmVjZWl2ZXMgdGhlIG1hcmdpbi5cbi8vLyBAcGFyYW0ge051bWJlcn0gJG1hcmdpbiBbJG1lbnUtc2ltcGxlLW1hcmdpbl0gLSBUaGUgbWFyZ2luIHRvIGFwcGx5IHRvIGVhY2ggYDxsaT5gLlxuQG1peGluIG1lbnUtc2ltcGxlKCRkaXI6ICRnbG9iYWwtbGVmdCwgJG1hcmdpbjogJG1lbnUtc2ltcGxlLW1hcmdpbikge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB9XG5cbiAgbGkgKyBsaSB7XG4gICAgbWFyZ2luLSN7JGRpcn06ICRtYXJnaW47XG4gIH1cblxuICBhIHtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBuZXN0ZWQgTWVudSwgYnkgYWRkaW5nIGBtYXJnaW4tbGVmdGAgdG8gdGhlIG1lbnUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJG1hcmdpbiBbJG1lbnUtbmVzdGVkLW1hcmdpbl0gLSBMZW5ndGggb2YgdGhlIG1hcmdpbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRuZXN0ZWQtYWxpZ25tZW50IFtsZWZ0XSAtIEFsaWdubWVudCBvZiB0aGUgbmVzdGVkIGNsYXNzXG5AbWl4aW4gbWVudS1uZXN0ZWQoXG4gICRtYXJnaW46ICRtZW51LW5lc3RlZC1tYXJnaW4sXG4gICRuZXN0ZWQtYWxpZ25tZW50OiBsZWZ0XG4pIHtcbiAgQGlmICRuZXN0ZWQtYWxpZ25tZW50ID09IHJpZ2h0IHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJG1hcmdpbjtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAwO1xuICB9XG4gIEBlbHNlIHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogMDtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkbWFyZ2luO1xuICB9XG5cbn1cblxuLy8vIEFkZHMgYmFzaWMgc3R5bGVzIGZvciBpY29ucyBpbiBtZW51cy5cbkBtaXhpbiBtZW51LWljb25zKCkge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBhIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBpbWcsXG4gICAgaSxcbiAgICBzdmcge1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgKyBzcGFuIHtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgcG9zaXRpb24gY2xhc3NlcyBmb3IgaWNvbnMgd2l0aGluIGEgbWVudS5cbkBtaXhpbiBtZW51LWljb24tcG9zaXRpb24oJHBvc2l0aW9uOiBsZWZ0LCAkc3BhY2luZzogJG1lbnUtaWNvbi1zcGFjaW5nKSB7XG4gIEBpZiAkcG9zaXRpb24gPT0gbGVmdCB7XG4gICAgbGkgYSB7XG4gICAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgZmxleC1mbG93OiByb3cgbm93cmFwO1xuICAgICAgfVxuXG4gICAgICBpbWcsXG4gICAgICBpLFxuICAgICAgc3ZnIHtcbiAgICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRzcGFjaW5nO1xuXG4gICAgICAgIEBpZiBub3QgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJHBvc2l0aW9uID09IHJpZ2h0IHtcbiAgICBsaSBhIHtcbiAgICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICBmbGV4LWZsb3c6IHJvdyBub3dyYXA7XG4gICAgICB9XG5cbiAgICAgIGltZyxcbiAgICAgIGksXG4gICAgICBzdmcge1xuICAgICAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkc3BhY2luZztcblxuICAgICAgICBAaWYgbm90ICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRwb3NpdGlvbiA9PSB0b3Age1xuICAgIGxpIGEge1xuICAgICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgIGZsZXgtZmxvdzogY29sdW1uIG5vd3JhcDtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgfVxuXG4gICAgICBpbWcsXG4gICAgICBpLFxuICAgICAgc3ZnIHtcbiAgICAgICAgQGlmIG5vdCAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIG1hcmdpbjogMCBhdXRvICRzcGFjaW5nO1xuICAgICAgICB9XG4gICAgICAgIEBlbHNlIHtcbiAgICAgICAgICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRzcGFjaW5nO1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gYm90dG9tIHtcbiAgICBsaSBhIHtcbiAgICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICBmbGV4LWZsb3c6IGNvbHVtbiBub3dyYXA7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIH1cblxuICAgICAgaW1nLFxuICAgICAgaSxcbiAgICAgIHN2ZyB7XG4gICAgICAgIEBpZiBub3QgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBtYXJnaW46ICRzcGFjaW5nIGF1dG8gMDtcbiAgICAgICAgfVxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkc3BhY2luZztcbiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1lbnUtdGV4dCB7XG4gIHBhZGRpbmc6ICRnbG9iYWwtbWVudS1wYWRkaW5nO1xuXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBsaW5lLWhlaWdodDogMTtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG5cbkBtaXhpbiBtZW51LXN0YXRlLWFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6ICRtZW51LWl0ZW0tYmFja2dyb3VuZC1hY3RpdmU7XG4gIGNvbG9yOiAkbWVudS1pdGVtLWNvbG9yLWFjdGl2ZTtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tbWVudSB7XG4gIC5tZW51IHtcbiAgICBAaW5jbHVkZSBtZW51LWJhc2U7XG5cbiAgICAvLyBEZWZhdWx0IG9yaWVudGF0aW9uOiBob3Jpem9udGFsXG4gICAgJiwgJi5ob3Jpem9udGFsIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtZGlyZWN0aW9uKGhvcml6b250YWwpO1xuICAgIH1cblxuICAgIC8vIFZlcnRpY2FsIG9yaWVudGF0aW9uIG1vZGlmaWVyXG4gICAgJi52ZXJ0aWNhbCB7XG4gICAgICBAaW5jbHVkZSBtZW51LWRpcmVjdGlvbih2ZXJ0aWNhbCk7XG4gICAgfVxuXG4gICAgLy8gRXZlbi13aWR0aCBtb2RpZmllciBmb3IgaG9yaXpvbnRhbCBvcmllbnRhdGlvblxuICAgICYuZXhwYW5kZWQge1xuICAgICAgQGluY2x1ZGUgbWVudS1leHBhbmQ7XG4gICAgfVxuXG4gICAgLy8gU2ltcGxlXG4gICAgJi5zaW1wbGUge1xuICAgICAgQGluY2x1ZGUgbWVudS1zaW1wbGU7XG4gICAgfVxuXG4gICAgLy8gQnJlYWtwb2ludCBzcGVjaWZpYyB2ZXJzaW9uc1xuICAgIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQoJHNtYWxsOiBmYWxzZSkge1xuICAgICAgJi4jeyQtemYtc2l6ZX0taG9yaXpvbnRhbCB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnUtZGlyZWN0aW9uKGhvcml6b250YWwpO1xuICAgICAgfVxuXG4gICAgICAmLiN7JC16Zi1zaXplfS12ZXJ0aWNhbCB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnUtZGlyZWN0aW9uKHZlcnRpY2FsKTtcbiAgICAgIH1cblxuICAgICAgJi4jeyQtemYtc2l6ZX0tZXhwYW5kZWQge1xuICAgICAgICBAaW5jbHVkZSBtZW51LWV4cGFuZDtcbiAgICAgIH1cblxuICAgICAgJi4jeyQtemYtc2l6ZX0tc2ltcGxlIHtcbiAgICAgICAgQGluY2x1ZGUgbWVudS1leHBhbmQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gTmVzdGluZ1xuICAgICYubmVzdGVkIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtbmVzdGVkO1xuICAgIH1cblxuICAgIC8vIEljb24gQmFzZSBTdHlsZXNcbiAgICAmLmljb25zIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtaWNvbnM7XG4gICAgfVxuXG4gICAgLy8gQmFja3dhcmQgQ29tcGF0aWJpbGl0eSBmb3IgYWN0aXZlIHN0YXRlXG4gICAgQGlmICRtZW51LWljb25zLWJhY2stY29tcGF0IHtcbiAgICAgICYuaWNvbi10b3AsXG4gICAgICAmLmljb24tcmlnaHQsXG4gICAgICAmLmljb24tYm90dG9tLFxuICAgICAgJi5pY29uLWxlZnQge1xuICAgICAgICBAaW5jbHVkZSBtZW51LWljb25zO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEljb24gTGVmdFxuICAgICYuaWNvbi1sZWZ0IHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtaWNvbi1wb3NpdGlvbihsZWZ0KTtcbiAgICB9XG5cbiAgICAvLyBJY29uIFJpZ2h0XG4gICAgJi5pY29uLXJpZ2h0IHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtaWNvbi1wb3NpdGlvbihyaWdodCk7XG4gICAgfVxuXG4gICAgLy8gSWNvbiBUb3BcbiAgICAmLmljb24tdG9wIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtaWNvbi1wb3NpdGlvbih0b3ApO1xuICAgIH1cblxuICAgIC8vIEljb24gQm90dG9tXG4gICAgJi5pY29uLWJvdHRvbSB7XG4gICAgICBAaW5jbHVkZSBtZW51LWljb24tcG9zaXRpb24oYm90dG9tKTtcbiAgICB9XG5cbiAgICAvLyBBY3RpdmUgc3RhdGVcbiAgICAuaXMtYWN0aXZlID4gYSB7XG4gICAgICBAaW5jbHVkZSBtZW51LXN0YXRlLWFjdGl2ZTtcbiAgICB9XG4gICAgXG4gICAgLy8gQmFja3dhcmQgQ29tcGF0aWJpbGl0eSBmb3IgYWN0aXZlIHN0YXRlXG4gICAgQGlmICRtZW51LXN0YXRlLWJhY2stY29tcGF0IHtcbiAgICAgIC5hY3RpdmUgPiBhIHtcbiAgICAgICAgQGluY2x1ZGUgbWVudS1zdGF0ZS1hY3RpdmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQWxpZ24gbGVmdFxuICAgICYuYWxpZ24tI3skZ2xvYmFsLWxlZnR9IHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtYWxpZ24obGVmdCk7XG4gICAgfVxuXG4gICAgLy8gQWxpZ24gcmlnaHRcbiAgICAmLmFsaWduLSN7JGdsb2JhbC1yaWdodH0ge1xuICAgICAgQGluY2x1ZGUgbWVudS1hbGlnbihyaWdodCk7XG5cbiAgICAgIC5uZXN0ZWQge1xuICAgICAgICBAaW5jbHVkZSBtZW51LW5lc3RlZCgkbmVzdGVkLWFsaWdubWVudDogcmlnaHQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEFsaWduIGNlbnRlclxuICAgICYuYWxpZ24tY2VudGVyIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtYWxpZ24oY2VudGVyKTtcbiAgICB9XG5cbiAgICAubWVudS10ZXh0IHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtdGV4dDtcbiAgICB9XG4gIH1cblxuICBAaWYgJG1lbnUtY2VudGVyZWQtYmFjay1jb21wYXQge1xuICAgIC5tZW51LWNlbnRlcmVkIHtcbiAgICAgID4gLm1lbnUge1xuICAgICAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgQGluY2x1ZGUgbWVudS1hbGlnbihjZW50ZXIpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFByZXZlbnQgRk9VQyB3aGVuIHVzaW5nIHRoZSBSZXNwb25zaXZlIE1lbnUgcGx1Z2luXG4gIC5uby1qcyBbZGF0YS1yZXNwb25zaXZlLW1lbnVdIHVsIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4iLCJAbWl4aW4gZm91bmRhdGlvbi1tZW51LWljb24ge1xuICAubWVudS1pY29uIHtcbiAgICBAaW5jbHVkZSBoYW1idXJnZXIoJGNvbG9yOiAkdGl0bGViYXItaWNvbi1jb2xvciwgJGNvbG9yLWhvdmVyOiAkdGl0bGViYXItaWNvbi1jb2xvci1ob3Zlcik7XG4gIH1cblxuICAubWVudS1pY29uLmRhcmsge1xuICAgIEBpbmNsdWRlIGhhbWJ1cmdlcjtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgb2ZmLWNhbnZhc1xuLy8vL1xuXG4vLy8gV2lkdGggbWFwIG9mIGEgbGVmdC9yaWdodCBvZmYtY2FudmFzIHBhbmVsLlxuLy8vIEB0eXBlIE1hcFxuJG9mZmNhbnZhcy1zaXplczogKFxuICBzbWFsbDogMjUwcHgsXG4pICFkZWZhdWx0O1xuXG4vLy8gSGVpZ2h0IG1hcCBvZiBhIHRvcC9ib3R0b20gb2ZmLWNhbnZhcyBwYW5lbC5cbi8vLyBAdHlwZSBNYXBcbiRvZmZjYW52YXMtdmVydGljYWwtc2l6ZXM6IChcbiAgc21hbGw6IDI1MHB4LFxuKSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgYW4gb2ZmLWNhbnZhcyBwYW5lbC5cbi8vLyBAdHlwZSBDb2xvclxuJG9mZmNhbnZhcy1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJveCBzaGFkb3cgZm9yIHRoZSBvZmYtY2FudmFzIG92ZXJsYXAgcGFuZWwuXG4vLy8gQHR5cGUgU2hhZG93XG4kb2ZmY2FudmFzLXNoYWRvdzogMCAwIDEwcHggcmdiYSgkYmxhY2ssIDAuNykgIWRlZmF1bHQ7XG5cbi8vLyBJbm5lciBib3ggc2hhZG93IHNpemUgZm9yIHRoZSBvZmYtY2FudmFzIHB1c2ggcGFuZWwuXG4vLy8gQHR5cGUgTnVtYmVyXG4kb2ZmY2FudmFzLWlubmVyLXNoYWRvdy1zaXplOiAyMHB4ICFkZWZhdWx0O1xuXG4vLy8gSW5uZXIgYm94IHNoYWRvdyBjb2xvciBmb3IgdGhlIG9mZi1jYW52YXMgcHVzaCBwYW5lbC5cbi8vLyBAdHlwZSBDb2xvclxuJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctY29sb3I6IHJnYmEoJGJsYWNrLCAwLjI1KSAhZGVmYXVsdDtcblxuLy8vIFotaW5kZXggb2YgYW4gb2ZmLWNhbnZhcyBjb250ZW50IG92ZXJsYXkuXG4vLy8gQHR5cGUgTnVtYmVyXG4kb2ZmY2FudmFzLW92ZXJsYXktemluZGV4OiAxMSAhZGVmYXVsdDtcblxuLy8vIFotaW5kZXggb2YgYW4gb2ZmLWNhbnZhcyBwYW5lbCB3aXRoIHRoZSBgcHVzaGAgdHJhbnNpdGlvbi5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvZmZjYW52YXMtcHVzaC16aW5kZXg6IDEyICFkZWZhdWx0O1xuXG4vLy8gWi1pbmRleCBvZiBhbiBvZmYtY2FudmFzIHBhbmVsIHdpdGggdGhlIGBvdmVybGFwYCB0cmFuc2l0aW9uLlxuLy8vIEB0eXBlIE51bWJlclxuJG9mZmNhbnZhcy1vdmVybGFwLXppbmRleDogMTMgIWRlZmF1bHQ7XG5cbi8vLyBaLWluZGV4IG9mIGFuIG9mZi1jYW52YXMgcGFuZWwgdXNpbmcgdGhlIGByZXZlYWwtZm9yLSpgIGNsYXNzZXMgb3IgbWl4aW4uXG4vLy8gQHR5cGUgTnVtYmVyXG4kb2ZmY2FudmFzLXJldmVhbC16aW5kZXg6IDEyICFkZWZhdWx0O1xuXG4vLy8gTGVuZ3RoIG9mIHRoZSBhbmltYXRpb24gb24gYW4gb2ZmLWNhbnZhcyBwYW5lbC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvZmZjYW52YXMtdHJhbnNpdGlvbi1sZW5ndGg6IDAuNXMgIWRlZmF1bHQ7XG5cbi8vLyBUaW1pbmcgZnVuY3Rpb24gb2YgdGhlIGFuaW1hdGlvbiBvbiBhbiBvZmYtY2FudmFzIHBhbmVsLlxuLy8vIEB0eXBlIEtleXdvcmRcbiRvZmZjYW52YXMtdHJhbnNpdGlvbi10aW1pbmc6IGVhc2UgIWRlZmF1bHQ7XG5cbi8vLyBJZiBgdHJ1ZWAsIGEgcmV2ZWFsZWQgb2ZmLWNhbnZhcyB3aWxsIGJlIGZpeGVkLXBvc2l0aW9uLCBhbmQgc2Nyb2xsIHdpdGggdGhlIHNjcmVlbi5cbi8vLyBAdHlwZSBCb29sXG4kb2ZmY2FudmFzLWZpeGVkLXJldmVhbDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIHRoZSBvdmVybGF5IHRoYXQgYXBwZWFycyB3aGVuIGFuIG9mZi1jYW52YXMgcGFuZWwgaXMgb3Blbi5cbi8vLyBAdHlwZSBDb2xvclxuJG9mZmNhbnZhcy1leGl0LWJhY2tncm91bmQ6IHJnYmEoJHdoaXRlLCAwLjI1KSAhZGVmYXVsdDtcblxuLy8vIENTUyBjbGFzcyB1c2VkIGZvciB0aGUgbWFpbiBjb250ZW50IGFyZWEuIFRoZSBvZmYtY2FudmFzIG1peGlucyB1c2UgdGhpcyB0byB0YXJnZXQgdGhlIHBhZ2UgY29udGVudC5cbiRtYWluY29udGVudC1jbGFzczogJ29mZi1jYW52YXMtY29udGVudCcgIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIGJhc2VsaW5lIHN0eWxlcyBmb3Igb2ZmLWNhbnZhcy4gVGhpcyBDU1MgaXMgcmVxdWlyZWQgdG8gbWFrZSB0aGUgb3RoZXIgcGllY2VzIHdvcmsuXG5AbWl4aW4gb2ZmLWNhbnZhcy1iYXNpY3Mge1xuXG4gIC8vLyBUcmFuc2Zvcm0gZGVwcmVjYXRlZCBzaXplIHNldHRpbmdzIGludG8gbWFwICYgc2hvdyB3YXJuaW5nXG4gIEBpZiB2YXJpYWJsZS1leGlzdHMob2ZmY2FudmFzLXNpemUpIHtcbiAgICAkb2ZmY2FudmFzLXNpemVzOiAoc21hbGw6ICRvZmZjYW52YXMtc2l6ZSwgbWVkaXVtOiAkb2ZmY2FudmFzLXNpemUpICFnbG9iYWw7XG4gICAgQHdhcm4gJyRvZmZjYW52YXMtc2l6ZSBpcyBkZXByZWNhdGVkIGFuZCBub3QgdXNlZCBhbnltb3JlISBQbGVhc2UgdXBkYXRlIHlvdXIgc2V0dGluZ3MgYW5kIHVzZSB0aGUgbWFwICRvZmZjYW52YXMtc2l6ZXMgaW5zdGVhZCc7XG4gIH1cbiAgQGlmIHZhcmlhYmxlLWV4aXN0cyhvZmZjYW52YXMtdmVydGljYWwtc2l6ZSkge1xuICAgICRvZmZjYW52YXMtdmVydGljYWwtc2l6ZXM6IChzbWFsbDogJG9mZmNhbnZhcy12ZXJ0aWNhbC1zaXplLCBtZWRpdW06ICRvZmZjYW52YXMtdmVydGljYWwtc2l6ZSkgIWdsb2JhbDtcbiAgICBAd2FybiAnJG9mZmNhbnZhcy12ZXJ0aWNhbC1zaXplIGlzIGRlcHJlY2F0ZWQgYW5kIG5vdCB1c2VkIGFueW1vcmUhIFBsZWFzZSB1cGRhdGUgeW91ciBzZXR0aW5ncyBhbmQgdXNlIHRoZSBtYXAgJG9mZmNhbnZhcy12ZXJ0aWNhbC1zaXplcyBpbnN0ZWFkJztcbiAgfVxuXG4gIC8vIENoZWNrcyB0aGUgei1pbmRleGVzIGFuZCBpbmNyZWFzZSB0aGVtIGR1ZSB0byBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eS5cbiAgLy8gVGhpcyBpcyBuZWNlc3NhcnkgYmVjYXVzZSB0aGUgb3ZlcmxheSdzIHotaW5kZXggaXMgbmV3IHNpbmNlIHY2LjQgYW5kIG1heSBiZSBpZGVudGljYWwgdG8gdGhlIHVzZXIgY3VzdG9tIHNldHRpbmdzIG9mIHRoZSBwdXNoIHotaW5kZXguXG4gIEBpZiAkb2ZmY2FudmFzLXB1c2gtemluZGV4IDw9ICRvZmZjYW52YXMtb3ZlcmxheS16aW5kZXggeyAkb2ZmY2FudmFzLXB1c2gtemluZGV4OiAkb2ZmY2FudmFzLW92ZXJsYXktemluZGV4ICsgMSAhZ2xvYmFsOyB9XG4gIEBpZiAkb2ZmY2FudmFzLW92ZXJsYXAtemluZGV4IDw9ICRvZmZjYW52YXMtcHVzaC16aW5kZXggeyAkb2ZmY2FudmFzLW92ZXJsYXAtemluZGV4OiAkb2ZmY2FudmFzLXB1c2gtemluZGV4ICsgMSAhZ2xvYmFsOyB9XG4gIEBpZiAkb2ZmY2FudmFzLXJldmVhbC16aW5kZXggPD0gJG9mZmNhbnZhcy1vdmVybGF5LXppbmRleCB7ICRvZmZjYW52YXMtcmV2ZWFsLXppbmRleDogJG9mZmNhbnZhcy1vdmVybGF5LXppbmRleCArIDEgIWdsb2JhbDsgfVxuXG4gIC8vIEhpZGVzIG92ZXJmbG93IG9uIGJvZHkgd2hlbiBhbiBvZmYtY2FudmFzIHBhbmVsIGlzIG9wZW4uXG4gIC5pcy1vZmYtY2FudmFzLW9wZW4ge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cblxuICAvLyBPZmYtY2FudmFzIG92ZXJsYXkgKGdlbmVyYXRlZCBieSBKYXZhU2NyaXB0KVxuICAuanMtb2ZmLWNhbnZhcy1vdmVybGF5IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgei1pbmRleDogJG9mZmNhbnZhcy1vdmVybGF5LXppbmRleDtcblxuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcblxuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgJG9mZmNhbnZhcy10cmFuc2l0aW9uLWxlbmd0aCAkb2ZmY2FudmFzLXRyYW5zaXRpb24tdGltaW5nLCB2aXNpYmlsaXR5ICRvZmZjYW52YXMtdHJhbnNpdGlvbi1sZW5ndGggJG9mZmNhbnZhcy10cmFuc2l0aW9uLXRpbWluZztcblxuICAgIGJhY2tncm91bmQ6ICRvZmZjYW52YXMtZXhpdC1iYWNrZ3JvdW5kO1xuXG4gICAgb3BhY2l0eTogMDtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG5cbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgJi5pcy12aXNpYmxlIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIH1cblxuICAgICYuaXMtY2xvc2FibGUge1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cblxuICAgICYuaXMtb3ZlcmxheS1hYnNvbHV0ZSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgfVxuXG4gICAgJi5pcy1vdmVybGF5LWZpeGVkIHtcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB9XG4gIH1cbn1cblxuLy8gQWRkcyBiYXNpYyBzdHlsZXMgZm9yIGFuIG9mZi1jYW52YXMgd3JhcHBlci5cbkBtaXhpbiBvZmYtY2FudmFzLXdyYXBwZXIoKSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLy8vIEFkZHMgYmFzaWMgc3R5bGVzIGZvciBhbiBvZmYtY2FudmFzIHBhbmVsLlxuQG1peGluIG9mZi1jYW52YXMtYmFzZShcbiAgJGJhY2tncm91bmQ6ICRvZmZjYW52YXMtYmFja2dyb3VuZCxcbiAgJHRyYW5zaXRpb246ICRvZmZjYW52YXMtdHJhbnNpdGlvbi1sZW5ndGggJG9mZmNhbnZhcy10cmFuc2l0aW9uLXRpbWluZyxcbiAgJGZpeGVkOiB0cnVlXG4pIHtcbiAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuXG4gIEBpZiAkZml4ZWQgPT0gdHJ1ZSB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICB9XG4gIEBlbHNlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIH1cblxuICAvLyBTZXQgdGhlIG9mZi1jYW52YXMgei1pbmRleC5cbiAgei1pbmRleDogJG9mZmNhbnZhcy1wdXNoLXppbmRleDtcblxuICAvLyBJbmNyZWFzZSBDU1Mgc3BlY2lmaWNpdHlcbiAgJi5pcy10cmFuc2l0aW9uLXB1c2gge1xuICAgIHotaW5kZXg6ICRvZmZjYW52YXMtcHVzaC16aW5kZXg7XG4gIH1cblxuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gJHRyYW5zaXRpb247XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcblxuICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcblxuICAvLyBIaWRlIGluYWN0aXZlIG9mZi1jYW52YXMgd2l0aGluIHRoZSBjb250ZW50IHRoYXQgaGF2ZSB0aGUgc2FtZSBwb3NpdGlvblxuICAmLmlzLWNsb3NlZCB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICB9XG5cbiAgLy8gT3ZlcmxhcCBvbmx5IHN0eWxlcy5cbiAgJi5pcy10cmFuc2l0aW9uLW92ZXJsYXAge1xuICAgIHotaW5kZXg6ICRvZmZjYW52YXMtb3ZlcmxhcC16aW5kZXg7XG5cbiAgICAmLmlzLW9wZW4ge1xuICAgICAgYm94LXNoYWRvdzogJG9mZmNhbnZhcy1zaGFkb3c7XG4gICAgfVxuICB9XG5cbiAgLy8gU2V0cyB0cmFuc2Zvcm0gdG8gMCB0byBzaG93IGFuIG9mZi1jYW52YXMgcGFuZWwuXG4gICYuaXMtb3BlbiB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIHRvIHBvc2l0aW9uIGFuIG9mZi1jYW52YXMgcGFuZWwgdG8gdGhlIGxlZnQvcmlnaHQvdG9wL2JvdHRvbS5cbkBtaXhpbiBvZmYtY2FudmFzLXBvc2l0aW9uKFxuICAkcG9zaXRpb246IGxlZnQsXG4gICRvcmllbnRhdGlvbjogaG9yaXpvbnRhbCxcbiAgJHNpemVzOiBpZigkb3JpZW50YXRpb24gPT0gaG9yaXpvbnRhbCwgJG9mZmNhbnZhcy1zaXplcywgJG9mZmNhbnZhcy12ZXJ0aWNhbC1zaXplcylcbikge1xuICBAaWYgJHBvc2l0aW9uID09IGxlZnQge1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuXG4gICAgQGVhY2ggJG5hbWUsICRzaXplIGluICRzaXplcyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgIHdpZHRoOiAkc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0kc2l6ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU2V0cyB0aGUgcG9zaXRpb24gZm9yIG5lc3RlZCBvZmYtY2FudmFzIGVsZW1lbnRcbiAgICBAYXQtcm9vdCAuI3skbWFpbmNvbnRlbnQtY2xhc3N9IC5vZmYtY2FudmFzLnBvc2l0aW9uLSN7JHBvc2l0aW9ufSB7XG5cbiAgICAgIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkc2l6ZXMge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0kc2l6ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICYuaXMtdHJhbnNpdGlvbi1vdmVybGFwLmlzLW9wZW4ge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTZXRzIHRoZSBvcGVuIHBvc2l0aW9uIGZvciB0aGUgY29udGVudFxuICAgIEBhdC1yb290IC4jeyRtYWluY29udGVudC1jbGFzc30uaXMtb3Blbi0jeyRwb3NpdGlvbn0ge1xuICAgICAgJi5oYXMtdHJhbnNpdGlvbi1wdXNoIHtcbiAgICAgICAgQGVhY2ggJG5hbWUsICRzaXplIGluICRzaXplcyB7XG4gICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKCRzaXplKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJHBvc2l0aW9uID09IHJpZ2h0IHtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG5cbiAgICBAZWFjaCAkbmFtZSwgJHNpemUgaW4gJHNpemVzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgd2lkdGg6ICRzaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoJHNpemUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNldHMgdGhlIHBvc2l0aW9uIGZvciBuZXN0ZWQgb2ZmLWNhbnZhcyBlbGVtZW50XG4gICAgQGF0LXJvb3QgLiN7JG1haW5jb250ZW50LWNsYXNzfSAub2ZmLWNhbnZhcy5wb3NpdGlvbi0jeyRwb3NpdGlvbn0ge1xuXG4gICAgICBAZWFjaCAkbmFtZSwgJHNpemUgaW4gJHNpemVzIHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgkc2l6ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICYuaXMtdHJhbnNpdGlvbi1vdmVybGFwLmlzLW9wZW4ge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTZXRzIHRoZSBvcGVuIHBvc2l0aW9uIGZvciB0aGUgY29udGVudFxuICAgIEBhdC1yb290IC4jeyRtYWluY29udGVudC1jbGFzc30uaXMtb3Blbi0jeyRwb3NpdGlvbn0ge1xuICAgICAgJi5oYXMtdHJhbnNpdGlvbi1wdXNoIHtcbiAgICAgICAgQGVhY2ggJG5hbWUsICRzaXplIGluICRzaXplcyB7XG4gICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0kc2l6ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRwb3NpdGlvbiA9PSB0b3Age1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG5cbiAgICBAZWFjaCAkbmFtZSwgJHNpemUgaW4gJHNpemVzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgaGVpZ2h0OiAkc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0kc2l6ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU2V0cyB0aGUgcG9zaXRpb24gZm9yIG5lc3RlZCBvZmYtY2FudmFzIGVsZW1lbnRcbiAgICBAYXQtcm9vdCAuI3skbWFpbmNvbnRlbnQtY2xhc3N9IC5vZmYtY2FudmFzLnBvc2l0aW9uLSN7JHBvc2l0aW9ufSB7XG4gICAgICBAZWFjaCAkbmFtZSwgJHNpemUgaW4gJHNpemVzIHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtJHNpemUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAmLmlzLXRyYW5zaXRpb24tb3ZlcmxhcC5pcy1vcGVuIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU2V0cyB0aGUgb3BlbiBwb3NpdGlvbiBmb3IgdGhlIGNvbnRlbnRcbiAgICBAYXQtcm9vdCAuI3skbWFpbmNvbnRlbnQtY2xhc3N9LmlzLW9wZW4tI3skcG9zaXRpb259IHtcbiAgICAgICYuaGFzLXRyYW5zaXRpb24tcHVzaCB7XG4gICAgICAgIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkc2l6ZXMge1xuICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgkc2l6ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRwb3NpdGlvbiA9PSBib3R0b20ge1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG5cbiAgICBAZWFjaCAkbmFtZSwgJHNpemUgaW4gJHNpemVzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgaGVpZ2h0OiAkc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKCRzaXplKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTZXRzIHRoZSBwb3NpdGlvbiBmb3IgbmVzdGVkIG9mZi1jYW52YXMgZWxlbWVudFxuICAgIEBhdC1yb290IC4jeyRtYWluY29udGVudC1jbGFzc30gLm9mZi1jYW52YXMucG9zaXRpb24tI3skcG9zaXRpb259IHtcbiAgICAgIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkc2l6ZXMge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKCRzaXplKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJi5pcy10cmFuc2l0aW9uLW92ZXJsYXAuaXMtb3BlbiB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNldHMgdGhlIG9wZW4gcG9zaXRpb24gZm9yIHRoZSBjb250ZW50XG4gICAgQGF0LXJvb3QgLiN7JG1haW5jb250ZW50LWNsYXNzfS5pcy1vcGVuLSN7JHBvc2l0aW9ufSB7XG4gICAgICAmLmhhcy10cmFuc2l0aW9uLXB1c2gge1xuICAgICAgICBAZWFjaCAkbmFtZSwgJHNpemUgaW4gJHNpemVzIHtcbiAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLSRzaXplKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBJZiAkb2ZmY2FudmFzLWlubmVyLXNoYWRvdy1zaXplIGlzIHNldCwgYWRkIGlubmVyIGJveC1zaGFkb3cuXG4gIC8vIFRoaXMgbWltaWNzIHRoZSBvZmYtY2FudmFzIHBhbmVsIGhhdmluZyBhIGxvd2VyIHotaW5kZXgsIHdpdGhvdXQgaGF2aW5nIHRvIGhhdmUgb25lLlxuICBAaWYgJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctc2l6ZSB7XG4gICAgJi5pcy10cmFuc2l0aW9uLXB1c2gge1xuICAgICAgQGlmICRwb3NpdGlvbiA9PSBsZWZ0IHtcbiAgICAgICAgQGluY2x1ZGUgaW5uZXItc2lkZS1zaGFkb3cocmlnaHQsICRvZmZjYW52YXMtaW5uZXItc2hhZG93LXNpemUsICRvZmZjYW52YXMtaW5uZXItc2hhZG93LWNvbG9yKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIGlmICRwb3NpdGlvbiA9PSByaWdodCB7XG4gICAgICAgIEBpbmNsdWRlIGlubmVyLXNpZGUtc2hhZG93KGxlZnQsICRvZmZjYW52YXMtaW5uZXItc2hhZG93LXNpemUsICRvZmZjYW52YXMtaW5uZXItc2hhZG93LWNvbG9yKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIGlmICRwb3NpdGlvbiA9PSB0b3Age1xuICAgICAgICBAaW5jbHVkZSBpbm5lci1zaWRlLXNoYWRvdyhib3R0b20sICRvZmZjYW52YXMtaW5uZXItc2hhZG93LXNpemUsICRvZmZjYW52YXMtaW5uZXItc2hhZG93LWNvbG9yKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIGlmICRwb3NpdGlvbiA9PSBib3R0b20ge1xuICAgICAgICBAaW5jbHVkZSBpbm5lci1zaWRlLXNoYWRvdyh0b3AsICRvZmZjYW52YXMtaW5uZXItc2hhZG93LXNpemUsICRvZmZjYW52YXMtaW5uZXItc2hhZG93LWNvbG9yKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxufVxuXG4vLy8gU2V0cyB0aGUgc3R5bGVzIGZvciB0aGUgY29udGVudCBjb250YWluZXIuXG5AbWl4aW4gb2ZmLWNhbnZhcy1jb250ZW50KCkge1xuICB0cmFuc2Zvcm06IG5vbmU7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAkb2ZmY2FudmFzLXRyYW5zaXRpb24tbGVuZ3RoICRvZmZjYW52YXMtdHJhbnNpdGlvbi10aW1pbmc7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcblxuICAvLyBUcmFuc2Zvcm0gc2NvcGUgdW50aWwgdGhlIGVsZW1lbnQgaXMgY2xvc2VkIChtYWtlcyBzdXJlIHRyYW5zaXRpb25lbmQgZ2V0cyB0cmlnZ2VyZWQpXG4gICYuaGFzLXRyYW5zaXRpb24tcHVzaCB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XG4gIH1cblxuICAvLyBDb25zaWRlciBlbGVtZW50ICYgY29udGVudCwgbmVzdGVkIGluIGFub3RoZXIgY29udGVudFxuICAub2ZmLWNhbnZhcy5pcy1vcGVuIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgdGhhdCByZXZlYWwgYW4gb2ZmLWNhbnZhcyBwYW5lbC5cbkBtaXhpbiBvZmYtY2FudmFzLXJldmVhbChcbiRwb3NpdGlvbjogbGVmdCxcbiR6aW5kZXg6ICRvZmZjYW52YXMtcmV2ZWFsLXppbmRleCxcbiRjb250ZW50OiAkbWFpbmNvbnRlbnQtY2xhc3MsXG4kYnJlYWtwb2ludDogc21hbGxcbikge1xuICB0cmFuc2Zvcm06IG5vbmU7XG4gIHotaW5kZXg6ICR6aW5kZXg7XG4gIHRyYW5zaXRpb246IG5vbmU7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG5cbiAgQGlmIG5vdCAkb2ZmY2FudmFzLWZpeGVkLXJldmVhbCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICB9XG5cbiAgLmNsb3NlLWJ1dHRvbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC8vIENvbnNpZGVyIHJldmVhbGVkIGVsZW1lbnQgaXMgbmVzdGVkIGluIGNvbnRlbnRcbiAgLiN7JG1haW5jb250ZW50LWNsYXNzfSAmIHtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cblxuICBAYXQtcm9vdCAuI3skY29udGVudH0uaGFzLXJldmVhbC0jeyRwb3NpdGlvbn0ge1xuICAgIG1hcmdpbi0jeyRwb3NpdGlvbn06IC16Zi1nZXQtYnAtdmFsKCRvZmZjYW52YXMtc2l6ZXMsICRicmVha3BvaW50KTtcbiAgfVxuXG4gIC8vIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IChwcmlvciB0byB2Ni40KVxuICAmIH4gLiN7JGNvbnRlbnR9IHtcbiAgICBtYXJnaW4tI3skcG9zaXRpb259OiAtemYtZ2V0LWJwLXZhbCgkb2ZmY2FudmFzLXNpemVzLCAkYnJlYWtwb2ludCk7XG4gIH1cbn1cblxuLy8vIE92ZXJyaWRlcyB0aGUgb2ZmLWNhbnZhcyBzdHlsZXNcbkBtaXhpbiBpbi1jYW52YXMoKSB7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIGhlaWdodDogYXV0bztcbiAgcG9zaXRpb246IHN0YXRpYztcbiAgYmFja2dyb3VuZDogaW5oZXJpdDtcbiAgd2lkdGg6IGluaGVyaXQ7XG4gIG92ZXJmbG93OiBpbmhlcml0O1xuICB0cmFuc2l0aW9uOiBpbmhlcml0O1xuXG4gIC8vIEluY3JlYXNlIENTUyBzcGVjaWZpY2l0eVxuICAmLnBvc2l0aW9uLWxlZnQsXG4gICYucG9zaXRpb24tcmlnaHQsXG4gICYucG9zaXRpb24tdG9wLFxuICAmLnBvc2l0aW9uLWJvdHRvbSB7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cblxuICAuY2xvc2UtYnV0dG9uIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLW9mZi1jYW52YXMge1xuICBAaW5jbHVkZSBvZmYtY2FudmFzLWJhc2ljcztcblxuICAvLyBPZmYtY2FudmFzIHdyYXBwZXJcbiAgLm9mZi1jYW52YXMtd3JhcHBlciB7XG4gICAgQGluY2x1ZGUgb2ZmLWNhbnZhcy13cmFwcGVyO1xuICB9XG5cbiAgLy8gT2ZmLWNhbnZhcyBjb250YWluZXJcbiAgLm9mZi1jYW52YXMge1xuICAgIEBpbmNsdWRlIG9mZi1jYW52YXMtYmFzZTtcblxuICAgIC8vIEZvcmNlIHBvc2l0aW9uIGFic29sdXRlIGZvciBuZXN0ZWQgb2ZmLWNhbnZhcyBiZWNhdXNlIGZpeGVkIGRvZXNuJ3Qgd29yayBmb3IgcHVzaCB0cmFuc2l0aW9uIHdpdGhpbiB0aGUgdHJhbnNmb3JtIHNjb3BlLlxuICAgIEBhdC1yb290IC4jeyRtYWluY29udGVudC1jbGFzc30gJiB7XG4gICAgICAvLyBOT1RFOiBzaW5jZSBvdmVybGFwIHRyYW5zaXRpb24gaXMgY3VycmVudGx5IGZvcmNlZCBpZiBuZXN0ZWQsIHRoZXJlJ3Mgbm8gbmVlZCB0byBmb3JjZSBwb3NpdGlvbiBhYnNvbHV0ZSB1bnRpbCBuZXN0ZWQgcHVzaCB0cmFuc2l0aW9uIGlzIHN1cHBvcnRlZC5cbiAgICAgIC8vIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB9XG4gIH1cblxuICAvLyBPZmYtY2FudmFzIGNvbnRhaW5lciB3aXRoIGFic29sdXRlIHBvc2l0aW9uXG4gIC5vZmYtY2FudmFzLWFic29sdXRlIHtcbiAgICBAaW5jbHVkZSBvZmYtY2FudmFzLWJhc2UoJGZpeGVkOiBmYWxzZSk7XG4gIH1cblxuICAvLyBPZmYtY2FudmFzIHBvc2l0aW9uIGNsYXNzZXNcbiAgLnBvc2l0aW9uLWxlZnQgICAgeyBAaW5jbHVkZSBvZmYtY2FudmFzLXBvc2l0aW9uKGxlZnQsICAgaG9yaXpvbnRhbCk7IH1cbiAgLnBvc2l0aW9uLXJpZ2h0ICAgeyBAaW5jbHVkZSBvZmYtY2FudmFzLXBvc2l0aW9uKHJpZ2h0LCAgaG9yaXpvbnRhbCk7IH1cbiAgLnBvc2l0aW9uLXRvcCAgICAgeyBAaW5jbHVkZSBvZmYtY2FudmFzLXBvc2l0aW9uKHRvcCwgICAgdmVydGljYWwpOyB9XG4gIC5wb3NpdGlvbi1ib3R0b20gIHsgQGluY2x1ZGUgb2ZmLWNhbnZhcy1wb3NpdGlvbihib3R0b20sIHZlcnRpY2FsKTsgfVxuXG4gIC5vZmYtY2FudmFzLWNvbnRlbnQge1xuICAgIEBpbmNsdWRlIG9mZi1jYW52YXMtY29udGVudDtcbiAgfVxuXG4gIC8vIFJldmVhbCBvZmYtY2FudmFzIHBhbmVsIG9uIGxhcmdlciBzY3JlZW5zXG4gIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgQGlmICRuYW1lICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgLnBvc2l0aW9uLWxlZnQucmV2ZWFsLWZvci0jeyRuYW1lfSB7XG4gICAgICAgICAgQGluY2x1ZGUgb2ZmLWNhbnZhcy1yZXZlYWwobGVmdCwgJG9mZmNhbnZhcy1yZXZlYWwtemluZGV4LCAkbWFpbmNvbnRlbnQtY2xhc3MsICRuYW1lKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wb3NpdGlvbi1yaWdodC5yZXZlYWwtZm9yLSN7JG5hbWV9IHtcbiAgICAgICAgICBAaW5jbHVkZSBvZmYtY2FudmFzLXJldmVhbChyaWdodCwgJG9mZmNhbnZhcy1yZXZlYWwtemluZGV4LCAkbWFpbmNvbnRlbnQtY2xhc3MsICRuYW1lKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wb3NpdGlvbi10b3AucmV2ZWFsLWZvci0jeyRuYW1lfSB7XG4gICAgICAgICAgQGluY2x1ZGUgb2ZmLWNhbnZhcy1yZXZlYWwodG9wLCAkb2ZmY2FudmFzLXJldmVhbC16aW5kZXgsICRtYWluY29udGVudC1jbGFzcywgJG5hbWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnBvc2l0aW9uLWJvdHRvbS5yZXZlYWwtZm9yLSN7JG5hbWV9IHtcbiAgICAgICAgICBAaW5jbHVkZSBvZmYtY2FudmFzLXJldmVhbChib3R0b20sICRvZmZjYW52YXMtcmV2ZWFsLXppbmRleCwgJG1haW5jb250ZW50LWNsYXNzLCAkbmFtZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBNb3ZlIGluLWNhbnZhcyBmb3IgbGFyZ2VyIHNjcmVlbnNcbiAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICBAaWYgJG5hbWUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICAub2ZmLWNhbnZhcy5pbi1jYW52YXMtZm9yLSN7JG5hbWV9IHtcbiAgICAgICAgICBAaW5jbHVkZSBpbi1jYW52YXM7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgb3JiaXRcbi8vLy9cblxuLy8vIERlZmF1bHQgY29sb3IgZm9yIE9yYml0J3MgYnVsbGV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJG9yYml0LWJ1bGxldC1iYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGFjdGl2ZSBjb2xvciBmb3IgT3JiaXQncyBidWxsZXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kb3JiaXQtYnVsbGV0LWJhY2tncm91bmQtYWN0aXZlOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBkaWFtZXRlciBmb3IgT3JiaXQncyBidWxsZXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJG9yYml0LWJ1bGxldC1kaWFtZXRlcjogMS4ycmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBtYXJnaW4gYmV0d2VlbiBPcmJpdCdzIGJ1bGxldHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kb3JiaXQtYnVsbGV0LW1hcmdpbjogMC4xcmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBkaXN0YW5jZSBmcm9tIHNsaWRlIHJlZ2lvbiBmb3IgT3JiaXQncyBidWxsZXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJG9yYml0LWJ1bGxldC1tYXJnaW4tdG9wOiAwLjhyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvdHRvbSBtYXJnaW4gZnJvbSBPcmJpdCdzIGJ1bGxldHMgdG8gd2hhdGV2ZXIgY29udGVudCBtYXkgbHVyayBiZWxvdyBpdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvcmJpdC1idWxsZXQtbWFyZ2luLWJvdHRvbTogMC44cmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIGZvciBPcmJpdCdzIGNhcHRpb24uXG4vLy8gQHR5cGUgQ29sb3JcbiRvcmJpdC1jYXB0aW9uLWJhY2tncm91bmQ6IHJnYmEoJGJsYWNrLCAwLjUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGZvciBPcmJpdCdzIGNhcHRpb24uXG4vLy8gQHR5cGUgTnVtYmVyXG4kb3JiaXQtY2FwdGlvbi1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIGZvciBPcmJpdCdzIGNvbnRyb2xzIHdoZW4gaG92ZXJlZC5cbi8vLyBAdHlwZSBDb2xvclxuJG9yYml0LWNvbnRyb2wtYmFja2dyb3VuZC1ob3ZlcjogcmdiYSgkYmxhY2ssIDAuNSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgZm9yIE9yYml0J3MgY29udHJvbHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kb3JiaXQtY29udHJvbC1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB6LWluZGV4IGZvciBPcmJpdCdzIGNvbnRyb2xzLlxuLy8vIEB0eXBlIE51bWJlclxuJG9yYml0LWNvbnRyb2wtemluZGV4OiAxMCAhZGVmYXVsdDtcblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgb3V0ZXIgT3JiaXQgd3JhcHBlci4gVGhlc2Ugc3R5bGVzIGFyZSB1c2VkIG9uIHRoZSBgLm9yYml0YCBjbGFzcy5cbkBtaXhpbiBvcmJpdC13cmFwcGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBpbm5lciBPcmJpdCBzbGlkZSBjb250YWluZXIuIFRoZXNlIHN0eWxlcyBhcmUgdXNlZCBvbiB0aGUgYC5vcmJpdC1jb250YWluZXJgIGNsYXNzLlxuQG1peGluIG9yYml0LWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAwOyAvLyBQcmV2ZW50IEZPVUMgYnkgbm90IHNob3dpbmcgdW50aWwgSlMgc2V0cyBoZWlnaHRcbiAgbWFyZ2luOiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBpbmRpdmlkdWFsIHNsaWRlcyBvZiBhbiBPcmJpdCBzbGlkZXIuIFRoZXNlIHN0eWxlcyBhcmUgdXNlZCBvbiB0aGUgYC5vcmJpdC1zbGlkZWAgY2xhc3MuXG5AbWl4aW4gb3JiaXQtc2xpZGUge1xuICB3aWR0aDogMTAwJTtcblxuICAmLm5vLW1vdGlvbnVpIHtcbiAgICAmLmlzLWFjdGl2ZSB7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gb3JiaXQtZmlndXJlIHtcbiAgbWFyZ2luOiAwO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgc2xpZGUgY29udGFpbmluZyBhbiBpbWFnZS4gVGhlc2Ugc3R5bGVzIGFyZSB1c2VkIG9uIHRoZSBgLm9yYml0LWltYWdlYCBjbGFzcy5cbkBtaXhpbiBvcmJpdC1pbWFnZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogMDtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhbiBvcmJpdCBzbGlkZSBjYXB0aW9uLiBUaGVzZSBzdHlsZXMgYXJlIHVzZWQgb24gdGhlIGAub3JiaXQtY2FwdGlvbmAgY2xhc3MuXG5AbWl4aW4gb3JiaXQtY2FwdGlvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgcGFkZGluZzogJG9yYml0LWNhcHRpb24tcGFkZGluZztcblxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkb3JiaXQtY2FwdGlvbi1iYWNrZ3JvdW5kO1xuICBjb2xvcjogY29sb3ItcGljay1jb250cmFzdCgkb3JiaXQtY2FwdGlvbi1iYWNrZ3JvdW5kKTtcbn1cblxuLy8vIEFkZHMgYmFzZSBzdHlsZXMgZm9yIHRoZSBuZXh0L3ByZXZpb3VzIGJ1dHRvbnMgaW4gYW4gT3JiaXQgc2xpZGVyLiBUaGVzZSBzdHlsZXMgYXJlIHNoYXJlZCBiZXR3ZWVuIHRoZSBgLm9yYml0LW5leHRgIGFuZCBgLm9yYml0LXByZXZpb3VzYCBjbGFzc2VzIGluIHRoZSBkZWZhdWx0IENTUy5cbkBtaXhpbiBvcmJpdC1jb250cm9sIHtcbiAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICBAaW5jbHVkZSB2ZXJ0aWNhbC1jZW50ZXI7XG4gIHotaW5kZXg6ICRvcmJpdC1jb250cm9sLXppbmRleDtcbiAgcGFkZGluZzogJG9yYml0LWNvbnRyb2wtcGFkZGluZztcbiAgY29sb3I6ICR3aGl0ZTtcblxuICAmOmhvdmVyLFxuICAmOmFjdGl2ZSxcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJG9yYml0LWNvbnRyb2wtYmFja2dyb3VuZC1ob3ZlcjtcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBPcmJpdCBwcmV2aW91cyBidXR0b24uIFRoZXNlIHN0eWxlcyBhcmUgdXNlZCBvbiB0aGUgYC5vcmJpdC1wcmV2aW91c2AgY2xhc3MuXG5AbWl4aW4gb3JiaXQtcHJldmlvdXMge1xuICAjeyRnbG9iYWwtbGVmdH06IDA7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIE9yYml0IG5leHQgYnV0dG9uLiBUaGVzZSBzdHlsZXMgYXJlIHVzZWQgb24gdGhlIGAub3JiaXQtbmV4dGAgY2xhc3MuXG5AbWl4aW4gb3JiaXQtbmV4dCB7XG4gICN7JGdsb2JhbC1sZWZ0fTogYXV0bztcbiAgI3skZ2xvYmFsLXJpZ2h0fTogMDtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIGNvbnRhaW5lciBvZiBPcmJpdCBidWxsZXRzLiAvLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBPcmJpdCBwcmV2aW91cyBidXR0b24uIFRoZXNlIHN0eWxlcyBhcmUgdXNlZCBvbiB0aGUgYC5vcmJpdC1idWxsZXRzYCBjbGFzcy5cbkBtaXhpbiBvcmJpdC1idWxsZXRzIHtcbiAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi10b3A6ICRvcmJpdC1idWxsZXQtbWFyZ2luLXRvcDtcbiAgbWFyZ2luLWJvdHRvbTogJG9yYml0LWJ1bGxldC1tYXJnaW4tYm90dG9tO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgYnV0dG9uIHtcbiAgICB3aWR0aDogJG9yYml0LWJ1bGxldC1kaWFtZXRlcjtcbiAgICBoZWlnaHQ6ICRvcmJpdC1idWxsZXQtZGlhbWV0ZXI7XG4gICAgbWFyZ2luOiAkb3JiaXQtYnVsbGV0LW1hcmdpbjtcblxuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkb3JiaXQtYnVsbGV0LWJhY2tncm91bmQ7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRvcmJpdC1idWxsZXQtYmFja2dyb3VuZC1hY3RpdmU7XG4gICAgfVxuXG4gICAgJi5pcy1hY3RpdmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG9yYml0LWJ1bGxldC1iYWNrZ3JvdW5kLWFjdGl2ZTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tb3JiaXQge1xuICAub3JiaXQge1xuICAgIEBpbmNsdWRlIG9yYml0LXdyYXBwZXI7XG4gIH1cblxuICAub3JiaXQtY29udGFpbmVyIHtcbiAgICBAaW5jbHVkZSBvcmJpdC1jb250YWluZXI7XG4gIH1cblxuICAub3JiaXQtc2xpZGUge1xuICAgIEBpbmNsdWRlIG9yYml0LXNsaWRlO1xuICB9XG5cbiAgLm9yYml0LWZpZ3VyZSB7XG4gICAgQGluY2x1ZGUgb3JiaXQtZmlndXJlO1xuICB9XG5cbiAgLm9yYml0LWltYWdlIHtcbiAgICBAaW5jbHVkZSBvcmJpdC1pbWFnZTtcbiAgfVxuXG4gIC5vcmJpdC1jYXB0aW9uIHtcbiAgICBAaW5jbHVkZSBvcmJpdC1jYXB0aW9uO1xuICB9XG5cbiAgJW9yYml0LWNvbnRyb2wge1xuICAgIEBpbmNsdWRlIG9yYml0LWNvbnRyb2w7XG4gIH1cblxuICAub3JiaXQtcHJldmlvdXMge1xuICAgIEBleHRlbmQgJW9yYml0LWNvbnRyb2w7XG4gICAgQGluY2x1ZGUgb3JiaXQtcHJldmlvdXM7XG4gIH1cblxuICAub3JiaXQtbmV4dCB7XG4gICAgQGV4dGVuZCAlb3JiaXQtY29udHJvbDtcbiAgICBAaW5jbHVkZSBvcmJpdC1uZXh0O1xuICB9XG5cbiAgLm9yYml0LWJ1bGxldHMge1xuICAgIEBpbmNsdWRlIG9yYml0LWJ1bGxldHM7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHBhZ2luYXRpb25cbi8vLy9cblxuLy8vIEZvbnQgc2l6ZSBvZiBwYWdpbmF0aW9uIGl0ZW1zLlxuLy8vIEB0eXBlIE51bWJlclxuJHBhZ2luYXRpb24tZm9udC1zaXplOiByZW0tY2FsYygxNCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvdHRvbSBtYXJnaW4gb2YgdGhlIHBhZ2luYXRpb24gb2JqZWN0LlxuLy8vIEB0eXBlIE51bWJlclxuJHBhZ2luYXRpb24tbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIHBhZ2luYXRpb24gaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRwYWdpbmF0aW9uLWl0ZW0tY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgaW5zaWRlIG9mIHBhZ2luYXRpb24gaXRlbXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcGFnaW5hdGlvbi1pdGVtLXBhZGRpbmc6IHJlbS1jYWxjKDMgMTApICFkZWZhdWx0O1xuXG4vLy8gUmlnaHQgbWFyZ2luIHRvIHNlcGFyYXRlIHBhZ2luYXRpb24gaXRlbXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcGFnaW5hdGlvbi1pdGVtLXNwYWNpbmc6IHJlbS1jYWxjKDEpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCByYWRpdXMgZm9yIHBhZ2luYXRpb24gaXRlbXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcGFnaW5hdGlvbi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBwYWdpbmF0aW9uIGl0ZW1zIG9uIGhvdmVyLlxuLy8vIEB0eXBlIENvbG9yXG4kcGFnaW5hdGlvbi1pdGVtLWJhY2tncm91bmQtaG92ZXI6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBwYWdpbmF0aW9uIGl0ZW0gZm9yIHRoZSBjdXJyZW50IHBhZ2UuXG4vLy8gQHR5cGUgQ29sb3JcbiRwYWdpbmF0aW9uLWl0ZW0tYmFja2dyb3VuZC1jdXJyZW50OiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgdGhlIHBhZ2luYXRpb24gaXRlbSBmb3IgdGhlIGN1cnJlbnQgcGFnZS5cbi8vLyBAdHlwZSBDb2xvclxuJHBhZ2luYXRpb24taXRlbS1jb2xvci1jdXJyZW50OiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIGEgZGlzYWJsZWQgcGFnaW5hdGlvbiBpdGVtLlxuLy8vIEB0eXBlIENvbG9yXG4kcGFnaW5hdGlvbi1pdGVtLWNvbG9yLWRpc2FibGVkOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiB0aGUgZWxsaXBzaXMgaW4gYSBwYWdpbmF0aW9uIG1lbnUuXG4vLy8gQHR5cGUgQ29sb3JcbiRwYWdpbmF0aW9uLWVsbGlwc2lzLWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBJZiBgZmFsc2VgLCBkb24ndCBkaXNwbGF5IHBhZ2UgbnVtYmVyIGxpbmtzIG9uIG1vYmlsZSwgb25seSBuZXh0L3ByZXZpb3VzIGxpbmtzXG4vLy8gYW5kIG9wdGlvbmFsbHkgY3VycmVudCBwYWdlIG51bWJlci5cbi8vLyBAdHlwZSBCb29sZWFuXG4kcGFnaW5hdGlvbi1tb2JpbGUtaXRlbXM6IGZhbHNlICFkZWZhdWx0O1xuXG4vLy8gSWYgYHRydWVgLCBkaXNwbGF5IHRoZSBjdXJyZW50IHBhZ2UgbnVtYmVyIG9uIG1vYmlsZSBldmVuIGlmIGAkcGFnaW5hdGlvbi1tb2JpbGUtaXRlbXNgIGlzIHNldCB0byBgZmFsc2VgLlxuLy8vIFRoaXMgcGFyYW1ldGVyIHdpbGwgb25seSBvdmVycmlkZSB0aGUgdmlzaWJpbGl0eSBzZXR0aW5nIG9mIHRoZSBjdXJyZW50IGl0ZW0gZm9yIGAkcGFnaW5hdGlvbi1tb2JpbGUtaXRlbXM6IGZhbHNlO2AsXG4vLy8gaXQgd2lsbCBub3QgYWZmZWN0IHRoZSBjdXJyZW50IHBhZ2UgbnVtYmVyIHZpc2liaWxpdHkgd2hlbiBgJHBhZ2luYXRpb24tbW9iaWxlLWl0ZW1zYCBpcyBzZXQgdG8gYHRydWVgLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRwYWdpbmF0aW9uLW1vYmlsZS1jdXJyZW50LWl0ZW06IGZhbHNlICFkZWZhdWx0O1xuXG4vLy8gSWYgYHRydWVgLCBhcnJvd3MgYXJlIGFkZGVkIHRvIHRoZSBuZXh0IGFuZCBwcmV2aW91cyBsaW5rcyBvZiBwYWdpbmF0aW9uLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRwYWdpbmF0aW9uLWFycm93czogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIHBhZ2luYXRpb24gY29udGFpbmVyLiBBcHBseSB0aGlzIHRvIGEgYDx1bD5gLlxuQG1peGluIHBhZ2luYXRpb24tY29udGFpbmVyIChcbiAgJG1hcmdpbi1ib3R0b206ICRwYWdpbmF0aW9uLW1hcmdpbi1ib3R0b20sXG4gICRmb250LXNpemU6ICRwYWdpbmF0aW9uLWZvbnQtc2l6ZSxcbiAgJHNwYWNpbmc6ICRwYWdpbmF0aW9uLWl0ZW0tc3BhY2luZyxcbiAgJHJhZGl1czogJHBhZ2luYXRpb24tcmFkaXVzLFxuICAkY29sb3I6ICRwYWdpbmF0aW9uLWl0ZW0tY29sb3IsXG4gICRwYWRkaW5nOiAkcGFnaW5hdGlvbi1pdGVtLXBhZGRpbmcsXG4gICRiYWNrZ3JvdW5kLWhvdmVyOiAkcGFnaW5hdGlvbi1pdGVtLWJhY2tncm91bmQtaG92ZXJcbikge1xuICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogMDtcbiAgbWFyZ2luLWJvdHRvbTogJG1hcmdpbi1ib3R0b207XG5cbiAgLy8gTGlzdCBpdGVtXG4gIGxpIHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJHNwYWNpbmc7XG4gICAgYm9yZGVyLXJhZGl1czogJHJhZGl1cztcbiAgICBmb250LXNpemU6ICRmb250LXNpemU7XG5cbiAgICBAaWYgJHBhZ2luYXRpb24tbW9iaWxlLWl0ZW1zIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgJjpsYXN0LWNoaWxkLFxuICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIH1cblxuICAgICAgQGlmICRwYWdpbmF0aW9uLW1vYmlsZS1jdXJyZW50LWl0ZW0ge1xuICAgICAgICAmLmN1cnJlbnQge1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gUGFnZSBsaW5rc1xuICBhLFxuICBidXR0b24ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6ICRwYWRkaW5nO1xuICAgIGJvcmRlci1yYWRpdXM6ICRyYWRpdXM7XG4gICAgY29sb3I6ICRjb2xvcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQtaG92ZXI7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIGN1cnJlbnQgcGFnaW5hdGlvbiBpdGVtLiBBcHBseSB0aGlzIHRvIGFuIGA8YT5gLlxuQG1peGluIHBhZ2luYXRpb24taXRlbS1jdXJyZW50IChcbiAgJHBhZGRpbmc6ICRwYWdpbmF0aW9uLWl0ZW0tcGFkZGluZyxcbiAgJGJhY2tncm91bmQtY3VycmVudDogJHBhZ2luYXRpb24taXRlbS1iYWNrZ3JvdW5kLWN1cnJlbnQsXG4gICRjb2xvci1jdXJyZW50OiAkcGFnaW5hdGlvbi1pdGVtLWNvbG9yLWN1cnJlbnRcbikge1xuICBwYWRkaW5nOiAkcGFkZGluZztcbiAgYmFja2dyb3VuZDogJGJhY2tncm91bmQtY3VycmVudDtcbiAgY29sb3I6ICRjb2xvci1jdXJyZW50O1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBkaXNhYmxlZCBwYWdpbmF0aW9uIGl0ZW0uIEFwcGx5IHRoaXMgdG8gYW4gYDxhPmAuXG5AbWl4aW4gcGFnaW5hdGlvbi1pdGVtLWRpc2FibGVkIChcbiAgJHBhZGRpbmc6ICRwYWdpbmF0aW9uLWl0ZW0tcGFkZGluZyxcbiAgJGNvbG9yOiAkcGFnaW5hdGlvbi1pdGVtLWNvbG9yLWRpc2FibGVkXG4pIHtcbiAgcGFkZGluZzogJHBhZGRpbmc7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhbiBlbGxpcHNpcyBmb3IgdXNlIGluIGEgcGFnaW5hdGlvbiBsaXN0LlxuQG1peGluIHBhZ2luYXRpb24tZWxsaXBzaXMgKFxuICAkcGFkZGluZzogJHBhZ2luYXRpb24taXRlbS1wYWRkaW5nLFxuICAkY29sb3I6ICRwYWdpbmF0aW9uLWVsbGlwc2lzLWNvbG9yXG4pIHtcbiAgcGFkZGluZzogJHBhZGRpbmc7XG4gIGNvbnRlbnQ6ICdcXDIwMjYnO1xuICBjb2xvcjogJGNvbG9yO1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1wYWdpbmF0aW9uIHtcbiAgLnBhZ2luYXRpb24ge1xuICAgIEBpbmNsdWRlIHBhZ2luYXRpb24tY29udGFpbmVyO1xuXG4gICAgLmN1cnJlbnQge1xuICAgICAgQGluY2x1ZGUgcGFnaW5hdGlvbi1pdGVtLWN1cnJlbnQ7XG4gICAgfVxuXG4gICAgLmRpc2FibGVkIHtcbiAgICAgIEBpbmNsdWRlIHBhZ2luYXRpb24taXRlbS1kaXNhYmxlZDtcbiAgICB9XG5cbiAgICAuZWxsaXBzaXM6OmFmdGVyIHtcbiAgICAgIEBpbmNsdWRlIHBhZ2luYXRpb24tZWxsaXBzaXM7XG4gICAgfVxuICB9XG5cbiAgQGlmICRwYWdpbmF0aW9uLWFycm93cyB7XG4gICAgLnBhZ2luYXRpb24tcHJldmlvdXMgYTo6YmVmb3JlLFxuICAgIC5wYWdpbmF0aW9uLXByZXZpb3VzLmRpc2FibGVkOjpiZWZvcmUge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06IDAuNXJlbTtcbiAgICAgIGNvbnRlbnQ6ICdcXDAwYWInO1xuICAgIH1cblxuICAgIC5wYWdpbmF0aW9uLW5leHQgYTo6YWZ0ZXIsXG4gICAgLnBhZ2luYXRpb24tbmV4dC5kaXNhYmxlZDo6YWZ0ZXIge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogMC41cmVtO1xuICAgICAgY29udGVudDogJ1xcMDBiYic7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIHByb2dyZXNzIGJhciBjb250YWluZXIuXG5AbWl4aW4gcHJvZ3Jlc3MtY29udGFpbmVyIHtcbiAgaGVpZ2h0OiAkcHJvZ3Jlc3MtaGVpZ2h0O1xuICBtYXJnaW4tYm90dG9tOiAkcHJvZ3Jlc3MtbWFyZ2luLWJvdHRvbTtcbiAgYm9yZGVyLXJhZGl1czogJHByb2dyZXNzLXJhZGl1cztcbiAgYmFja2dyb3VuZC1jb2xvcjogJHByb2dyZXNzLWJhY2tncm91bmQ7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIGlubmVyIG1ldGVyIG9mIGEgcHJvZ3Jlc3MgYmFyLlxuQG1peGluIHByb2dyZXNzLW1ldGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6ICRwcm9ncmVzcy1tZXRlci1iYWNrZ3JvdW5kO1xuXG4gIEBpZiBoYXMtdmFsdWUoJHByb2dyZXNzLXJhZGl1cykge1xuICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGV4dCBpbiB0aGUgcHJvZ3Jlc3MgbWV0ZXIuXG5AbWl4aW4gcHJvZ3Jlc3MtbWV0ZXItdGV4dCB7XG4gIEBpbmNsdWRlIGFic29sdXRlLWNlbnRlcjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBtYXJnaW46IDA7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiAkd2hpdGU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgQGlmIGhhcy12YWx1ZSgkcHJvZ3Jlc3MtcmFkaXVzKSB7XG4gICAgYm9yZGVyLXJhZGl1czogJHByb2dyZXNzLXJhZGl1cztcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1wcm9ncmVzcy1iYXIge1xuICAvLyBQcm9ncmVzcyBiYXJcbiAgLnByb2dyZXNzIHtcbiAgICBAaW5jbHVkZSBwcm9ncmVzcy1jb250YWluZXI7XG5cbiAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICRmb3VuZGF0aW9uLXBhbGV0dGUge1xuICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgIC5wcm9ncmVzcy1tZXRlciB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gSW5uZXIgbWV0ZXJcbiAgLnByb2dyZXNzLW1ldGVyIHtcbiAgICBAaW5jbHVkZSBwcm9ncmVzcy1tZXRlcjtcbiAgfVxuXG4gIC8vIElubmVyIG1ldGVyIHRleHRcbiAgLnByb2dyZXNzLW1ldGVyLXRleHQge1xuICAgIEBpbmNsdWRlIHByb2dyZXNzLW1ldGVyLXRleHQ7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHJldmVhbFxuLy8vL1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9mIGEgbW9kYWwuXG4vLy8gQHR5cGUgQ29sb3JcbiRyZXZlYWwtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB3aWR0aCBvZiBhIG1vZGFsLCB3aXRoIG5vIGNsYXNzIGFwcGxpZWQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcmV2ZWFsLXdpZHRoOiA2MDBweCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbWF4aW11bSB3aWR0aCBvZiBhIG1vZGFsLlxuLy8vIEB0eXBlIE51bWJlclxuJHJldmVhbC1tYXgtd2lkdGg6ICRnbG9iYWwtd2lkdGggIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgaW5zaWRlIGEgbW9kYWwuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcmV2ZWFsLXBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZyAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm9yZGVyIGFyb3VuZCBhIG1vZGFsLlxuLy8vIEB0eXBlIE51bWJlclxuJHJldmVhbC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHJhZGl1cyBmb3IgbW9kYWwuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcmV2ZWFsLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyB6LWluZGV4IGZvciBtb2RhbHMuIFRoZSBvdmVybGF5IHVzZXMgdGhpcyB2YWx1ZSwgd2hpbGUgdGhlIG1vZGFsIGl0c2VsZiB1c2VzIHRoaXMgdmFsdWUgcGx1cyBvbmUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcmV2ZWFsLXppbmRleDogMTAwNSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgbW9kYWwgb3ZlcmxheXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRyZXZlYWwtb3ZlcmxheS1iYWNrZ3JvdW5kOiByZ2JhKCRibGFjaywgMC40NSkgIWRlZmF1bHQ7XG5cblxuLy8gUGxhY2Vob2xkZXIgc2VsZWN0b3IgZm9yIG1lZGl1bS1hbmQtdXAgbW9kYWxzXG4vLyBQcmV2ZW50cyBkdXBsaWNhdGUgQ1NTIHdoZW4gZGVmaW5pbmcgbXVsdGlwbGUgUmV2ZWFsIHNpemVzXG5AaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAlcmV2ZWFsLWNlbnRlcmVkIHtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiBhdXRvO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICB9XG59XG5cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIG1vZGFsIG92ZXJsYXkuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQgWyRyZXZlYWwtb3ZlcmxheS1iYWNrZ3JvdW5kXSAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIG92ZXJsYXkuXG5AbWl4aW4gcmV2ZWFsLW92ZXJsYXkoJGJhY2tncm91bmQ6ICRyZXZlYWwtb3ZlcmxheS1iYWNrZ3JvdW5kKSB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAkcmV2ZWFsLXppbmRleDtcblxuICBkaXNwbGF5OiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xufVxuXG4vLy8gQWRkcyBiYXNlIHN0eWxlcyBmb3IgYSBtb2RhbC5cbkBtaXhpbiByZXZlYWwtbW9kYWwtYmFzZSB7XG4gIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgei1pbmRleDogJHJldmVhbC16aW5kZXggKyAxO1xuICAvLyBXb3JrYXJvdW5kIGFuZHJvaWQgYnJvd3NlciB6LWluZGV4IGJ1Z1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG5cbiAgZGlzcGxheTogbm9uZTtcbiAgcGFkZGluZzogJHJldmVhbC1wYWRkaW5nO1xuXG4gIGJvcmRlcjogJHJldmVhbC1ib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6ICRyZXZlYWwtcmFkaXVzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkcmV2ZWFsLWJhY2tncm91bmQ7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICBtaW4taGVpZ2h0OiAwO1xuICB9XG5cbiAgLy8gTWFrZSBzdXJlIHJvd3MgZG9uJ3QgaGF2ZSBhIG1pbi13aWR0aCBvbiB0aGVtXG4gIC5jb2x1bW4ge1xuICAgIG1pbi13aWR0aDogMDtcbiAgfVxuXG4gIC8vIFN0cmlwIG1hcmdpbnMgZnJvbSB0aGUgbGFzdCBpdGVtIGluIHRoZSBtb2RhbFxuICA+IDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG5cbi8vLyBBZGp1c3RzIHRoZSB3aWR0aCBvZiBhIG1vZGFsLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2lkdGggLSBXaWR0aCBvZiB0aGUgbW9kYWwuIEdlbmVyYWxseSBhIHBlcmNlbnRhZ2UuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRtYXgtd2lkdGggWyRyZXZlYWwtbWF4LXdpZHRoXSAtIE1heGltdW0gd2lkdGggb2YgdGhlIG1vZGFsLlxuQG1peGluIHJldmVhbC1tb2RhbC13aWR0aChcbiAgJHdpZHRoOiAkcmV2ZWFsLXdpZHRoLFxuICAkbWF4LXdpZHRoOiAkcmV2ZWFsLW1heC13aWR0aFxuKSB7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgQGV4dGVuZCAlcmV2ZWFsLWNlbnRlcmVkO1xuICAgIHdpZHRoOiAkd2lkdGg7XG4gICAgbWF4LXdpZHRoOiAkbWF4LXdpZHRoO1xuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgZnVsbC1zY3JlZW4gbW9kYWwsIHdoaWNoIHN0cmV0Y2hlcyB0aGUgZnVsbCB3aWR0aCBhbmQgaGVpZ2h0IG9mIHRoZSB3aW5kb3cuXG5AbWl4aW4gcmV2ZWFsLW1vZGFsLWZ1bGxzY3JlZW4ge1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG5cbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogbm9uZTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBoZWlnaHQ6IDEwMHZoOyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLWR1cGxpY2F0ZS1wcm9wZXJ0aWVzXG4gIG1pbi1oZWlnaHQ6IDEwMHZoO1xuICBtYXJnaW4tbGVmdDogMDtcblxuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXJldmVhbCB7XG4gIC8vIFtUT0RPXSBJcyB0aGlzIG5lY2Vzc2FyeT9cbiAgYm9keS5pcy1yZXZlYWwtb3BlbiB7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tcXVhbGlmeWluZy1lbGVtZW50c1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cblxuICAvLyBodG1sIGdldHMgdGhpcyBjbGFzcyBvbmx5IGluIGlPU1xuICBodG1sLmlzLXJldmVhbC1vcGVuLFxuICBodG1sLmlzLXJldmVhbC1vcGVuIGJvZHkge1xuICAgIG1pbi1oZWlnaHQ6IDEwMCU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIH1cblxuICAvLyBPdmVybGF5XG4gIC5yZXZlYWwtb3ZlcmxheSB7XG4gICAgQGluY2x1ZGUgcmV2ZWFsLW92ZXJsYXk7XG4gIH1cblxuICAvLyBNb2RhbCBjb250YWluZXJcbiAgLnJldmVhbCB7XG4gICAgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLWJhc2U7XG4gICAgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLXdpZHRoKCRyZXZlYWwtd2lkdGgpO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDEwMHB4O1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuXG4gICAgLy8gUmVtb3ZlIHBhZGRpbmdcbiAgICAmLmNvbGxhcHNlIHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuXG4gICAgLy8gU2l6aW5nIGNsYXNzZXNcbiAgICAmLnRpbnkgIHsgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLXdpZHRoKDMwJSk7IH1cbiAgICAmLnNtYWxsIHsgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLXdpZHRoKDUwJSk7IH1cbiAgICAmLmxhcmdlIHsgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLXdpZHRoKDkwJSk7IH1cblxuICAgIC8vIEZ1bGwtc2NyZWVuIG1vZGVcbiAgICAmLmZ1bGwge1xuICAgICAgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLWZ1bGxzY3JlZW47XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkLXpmLXplcm8tYnJlYWtwb2ludCBvbmx5KSB7XG4gICAgICBAaW5jbHVkZSByZXZlYWwtbW9kYWwtZnVsbHNjcmVlbjtcbiAgICB9XG5cbiAgICAmLndpdGhvdXQtb3ZlcmxheSB7XG4gICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8gW1RPRE9dIENoZWNrIGhvdyBwbHVnaW4gY29uZmlybXMgZGlzYWJsZWQgb3IgdmVydGljYWwgc3RhdHVzXG4vLyBbVE9ET10gQ2hlY2sgaWYgdHJhbnNpdGlvbjogYWxsOyBpcyBuZWNlc3NhcnlcblxuLy8vL1xuLy8vIEBncm91cCBzbGlkZXJcbi8vLy9cblxuLy8vIERlZmF1bHQgc2xpZGVyIHdpZHRoIG9mIGEgdmVydGljYWwgc2xpZGVyLiAoRG9lc24ndCBhcHBseSB0byB0aGUgbmF0aXZlIHNsaWRlci4pXG4vLy8gQHR5cGUgTnVtYmVyXG4kc2xpZGVyLXdpZHRoLXZlcnRpY2FsOiAwLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBUcmFuc2l0aW9uIHByb3BlcnRpZXMgdG8gYXBwbHkgdG8gdGhlIHNsaWRlciBoYW5kbGUgYW5kIGZpbGwuIChEb2Vzbid0IGFwcGx5IHRvIHRoZSBuYXRpdmUgc2xpZGVyLilcbi8vLyBAdHlwZSBUcmFuc2l0aW9uXG4kc2xpZGVyLXRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4tb3V0ICFkZWZhdWx0O1xuXG4vLy8gQWRkcyB0aGUgZ2VuZXJhbCBzdHlsZXMgZm9yIHNsaWRlcnMuXG5AbWl4aW4gc2xpZGVyLWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAkc2xpZGVyLWhlaWdodDtcbiAgbWFyZ2luLXRvcDogMS4yNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMi4yNXJlbTtcblxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2xpZGVyLWJhY2tncm91bmQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHRvdWNoLWFjdGlvbjogbm9uZTtcbn1cblxuLy8vIEFkZHMgdGhlIGdlbmVyYWwgc3R5bGVzIGZvciBhY3RpdmUgZmlsbCBmb3Igc2xpZGVycy5cbkBtaXhpbiBzbGlkZXItZmlsbCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6ICRzbGlkZXItaGVpZ2h0O1xuXG4gIGJhY2tncm91bmQtY29sb3I6ICRzbGlkZXItZmlsbC1iYWNrZ3JvdW5kO1xuICB0cmFuc2l0aW9uOiAkc2xpZGVyLXRyYW5zaXRpb247XG5cbiAgJi5pcy1kcmFnZ2luZyB7XG4gICAgdHJhbnNpdGlvbjogYWxsIDBzIGxpbmVhcjtcbiAgfVxufVxuXG4vLy8gQWRkcyB0aGUgZ2VuZXJhbCBzdHlsZXMgZm9yIHRoZSBzbGlkZXIgaGFuZGxlcy5cbkBtaXhpbiBzbGlkZXItaGFuZGxlIHtcbiAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICBAaW5jbHVkZSB2ZXJ0aWNhbC1jZW50ZXI7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IDE7XG5cbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogJHNsaWRlci1oYW5kbGUtd2lkdGg7XG4gIGhlaWdodDogJHNsaWRlci1oYW5kbGUtaGVpZ2h0O1xuXG4gIGJvcmRlci1yYWRpdXM6ICRzbGlkZXItcmFkaXVzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2xpZGVyLWhhbmRsZS1iYWNrZ3JvdW5kO1xuICB0cmFuc2l0aW9uOiAkc2xpZGVyLXRyYW5zaXRpb247XG4gIHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uO1xuXG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHNjYWxlLWNvbG9yKCRzbGlkZXItaGFuZGxlLWJhY2tncm91bmQsICRsaWdodG5lc3M6IC0xNSUpO1xuICB9XG5cbiAgJi5pcy1kcmFnZ2luZyB7XG4gICAgdHJhbnNpdGlvbjogYWxsIDBzIGxpbmVhcjtcbiAgfVxufVxuXG5AbWl4aW4gc2xpZGVyLWRpc2FibGVkIHtcbiAgb3BhY2l0eTogJHNsaWRlci1vcGFjaXR5LWRpc2FibGVkO1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuXG5AbWl4aW4gc2xpZGVyLXZlcnRpY2FsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogJHNsaWRlci13aWR0aC12ZXJ0aWNhbDtcbiAgaGVpZ2h0OiAxMi41cmVtO1xuICBtYXJnaW46IDAgMS4yNXJlbTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLCAtMSk7XG5cbiAgLnNsaWRlci1maWxsIHtcbiAgICB0b3A6IDA7XG4gICAgd2lkdGg6ICRzbGlkZXItd2lkdGgtdmVydGljYWw7XG4gICAgbWF4LWhlaWdodDogMTAwJTtcbiAgfVxuXG4gIC5zbGlkZXItaGFuZGxlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB3aWR0aDogJHNsaWRlci1oYW5kbGUtaGVpZ2h0O1xuICAgIGhlaWdodDogJHNsaWRlci1oYW5kbGUtd2lkdGg7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXNsaWRlciB7XG4gIC8vIENvbnRhaW5lclxuICAuc2xpZGVyIHtcbiAgICBAaW5jbHVkZSBzbGlkZXItY29udGFpbmVyO1xuICB9XG5cbiAgLy8gRmlsbCBhcmVhXG4gIC5zbGlkZXItZmlsbCB7XG4gICAgQGluY2x1ZGUgc2xpZGVyLWZpbGw7XG4gIH1cblxuICAvLyBEcmFnZ2FibGUgaGFuZGxlXG4gIC5zbGlkZXItaGFuZGxlIHtcbiAgICBAaW5jbHVkZSBzbGlkZXItaGFuZGxlO1xuICB9XG5cbiAgLy8gRGlzYWJsZWQgc3RhdGVcbiAgLnNsaWRlci5kaXNhYmxlZCxcbiAgLnNsaWRlcltkaXNhYmxlZF0ge1xuICAgIEBpbmNsdWRlIHNsaWRlci1kaXNhYmxlZDtcbiAgfVxuXG4gIC8vIFZlcnRpY2FsIHNsaWRlclxuICAuc2xpZGVyLnZlcnRpY2FsIHtcbiAgICBAaW5jbHVkZSBzbGlkZXItdmVydGljYWw7XG4gIH1cblxuICAvLyBSVEwgc3VwcG9ydFxuICBAaWYgJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBydGwge1xuICAgIC5zbGlkZXI6bm90KC52ZXJ0aWNhbCkge1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgtMSwgMSk7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQG1peGluIGZvdW5kYXRpb24tc3RpY2t5IHtcbiAgLnN0aWNreS1jb250YWluZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxuXG4gIC5zdGlja3kge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIH1cblxuICAuc3RpY2t5LmlzLXN0dWNrIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgei1pbmRleDogNTtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgICYuaXMtYXQtdG9wIHtcbiAgICAgIHRvcDogMDtcbiAgICB9XG5cbiAgICAmLmlzLWF0LWJvdHRvbSB7XG4gICAgICBib3R0b206IDA7XG4gICAgfVxuICB9XG5cbiAgLnN0aWNreS5pcy1hbmNob3JlZCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IGF1dG87XG5cbiAgICAmLmlzLWF0LWJvdHRvbSB7XG4gICAgICBib3R0b206IDA7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBzd2l0Y2hcbi8vLy9cblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgYSBzd2l0Y2guXG4vLy8gQHR5cGUgQ29sb3JcbiRzd2l0Y2gtYmFja2dyb3VuZDogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBhY3RpdmUgY29sb3Igb2YgYSBzd2l0Y2guXG4vLy8gQHR5cGUgQ29sb3JcbiRzd2l0Y2gtYmFja2dyb3VuZC1hY3RpdmU6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gSGVpZ2h0IG9mIGEgc3dpdGNoLCB3aXRoIG5vIGNsYXNzIGFwcGxpZWQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3dpdGNoLWhlaWdodDogMnJlbSAhZGVmYXVsdDtcblxuLy8vIEhlaWdodCBvZiBhIHN3aXRjaCB3aXRoIC50aW55IGNsYXNzLlxuLy8vIEB0eXBlIE51bWJlclxuJHN3aXRjaC1oZWlnaHQtdGlueTogMS41cmVtICFkZWZhdWx0O1xuXG4vLy8gSGVpZ2h0IG9mIGEgc3dpdGNoIHdpdGggLnNtYWxsIGNsYXNzLlxuLy8vIEB0eXBlIE51bWJlclxuJHN3aXRjaC1oZWlnaHQtc21hbGw6IDEuNzVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBIZWlnaHQgb2YgYSBzd2l0Y2ggd2l0aCAubGFyZ2UgY2xhc3MuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3dpdGNoLWhlaWdodC1sYXJnZTogMi41cmVtICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIHJhZGl1cyBvZiB0aGUgc3dpdGNoXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3dpdGNoLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBib3JkZXIgYXJvdW5kIGEgbW9kYWwuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3dpdGNoLW1hcmdpbjogJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciB0aGUgc3dpdGNoIGNvbnRhaW5lciBhbmQgcGFkZGxlLlxuLy8vIEB0eXBlIENvbG9yXG4kc3dpdGNoLXBhZGRsZS1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBTcGFjaW5nIGJldHdlZW4gYSBzd2l0Y2ggcGFkZGxlIGFuZCB0aGUgZWRnZSBvZiB0aGUgYm9keS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzd2l0Y2gtcGFkZGxlLW9mZnNldDogMC4yNXJlbSAhZGVmYXVsdDtcblxuLy8vIGJvcmRlciByYWRpdXMgb2YgdGhlIHN3aXRjaCBwYWRkbGVcbi8vLyBAdHlwZSBOdW1iZXJcbiRzd2l0Y2gtcGFkZGxlLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBzd2l0Y2ggdHJhbnNpdGlvbi5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzd2l0Y2gtcGFkZGxlLXRyYW5zaXRpb246IGFsbCAwLjI1cyBlYXNlLW91dCAhZGVmYXVsdDtcblxuLy8gbWFrZSB0aGVtIHZhcmlhYmxlc1xuLy8gYXNrIGFib3V0IGFjY2Vzc2liaWxpdHkgb24gbGFiZWxcbi8vIGNoYW5nZSBjbGFzcyBuYW1lIGZvciB0ZXh0XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBzd2l0Y2ggY29udGFpbmVyLiBBcHBseSB0aGlzIHRvIGEgY29udGFpbmVyIGNsYXNzLlxuQG1peGluIHN3aXRjaC1jb250YWluZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi1ib3R0b206ICRzd2l0Y2gtbWFyZ2luO1xuICBvdXRsaW5lOiAwO1xuXG4gIC8vIFRoZXNlIHByb3BlcnRpZXMgY2FzY2FkZSBkb3duIHRvIHRoZSBzd2l0Y2ggdGV4dFxuICBmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiAkd2hpdGU7XG5cbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBzd2l0Y2ggaW5wdXQuIEFwcGx5IHRoaXMgdG8gYW4gYDxpbnB1dD5gIHdpdGhpbiBhIHN3aXRjaC5cbkBtaXhpbiBzd2l0Y2gtaW5wdXQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIG9wYWNpdHk6IDA7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIGJhY2tncm91bmQgYW5kIHBhZGRsZSBvZiBhIHN3aXRjaC4gQXBwbHkgdGhpcyB0byBhIGA8bGFiZWw+YCB3aXRoaW4gYSBzd2l0Y2guXG5AbWl4aW4gc3dpdGNoLXBhZGRsZSB7XG4gICRzd2l0Y2gtd2lkdGg6ICRzd2l0Y2gtaGVpZ2h0ICogMjtcbiAgJHBhZGRsZS1oZWlnaHQ6ICRzd2l0Y2gtaGVpZ2h0IC0gKCRzd2l0Y2gtcGFkZGxlLW9mZnNldCAqIDIpO1xuICAkcGFkZGxlLXdpZHRoOiAkc3dpdGNoLWhlaWdodCAtICgkc3dpdGNoLXBhZGRsZS1vZmZzZXQgKiAyKTtcbiAgJHBhZGRsZS1hY3RpdmUtb2ZmZXN0OiAkc3dpdGNoLXdpZHRoIC0gJHBhZGRsZS13aWR0aCAtICRzd2l0Y2gtcGFkZGxlLW9mZnNldDtcblxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogJHN3aXRjaC13aWR0aDtcbiAgaGVpZ2h0OiAkc3dpdGNoLWhlaWdodDtcblxuICBib3JkZXItcmFkaXVzOiAkc3dpdGNoLXJhZGl1cztcbiAgYmFja2dyb3VuZDogJHN3aXRjaC1iYWNrZ3JvdW5kO1xuICB0cmFuc2l0aW9uOiAkc3dpdGNoLXBhZGRsZS10cmFuc2l0aW9uO1xuXG4gIC8vIFJlc2V0dGluZyB0aGVzZSA8bGFiZWw+IHByZXNldHMgc28gdHlwZSBzdHlsZXMgY2FzY2FkZSBkb3duXG4gIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuICBjb2xvcjogaW5oZXJpdDtcblxuICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgLy8gTmVlZGVkIHRvIG92ZXJyaWRlIHNwZWNpZmljaXR5XG4gIGlucHV0ICsgJiB7XG4gICAgbWFyZ2luOiAwO1xuICB9XG5cbiAgLy8gVGhlIHBhZGRsZSBpdHNlbGZcbiAgJjo6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6ICRzd2l0Y2gtcGFkZGxlLW9mZnNldDtcbiAgICAjeyRnbG9iYWwtbGVmdH06ICRzd2l0Y2gtcGFkZGxlLW9mZnNldDtcblxuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAkcGFkZGxlLXdpZHRoO1xuICAgIGhlaWdodDogJHBhZGRsZS1oZWlnaHQ7XG5cbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIGJvcmRlci1yYWRpdXM6ICRzd2l0Y2gtcGFkZGxlLXJhZGl1cztcbiAgICBiYWNrZ3JvdW5kOiAkc3dpdGNoLXBhZGRsZS1iYWNrZ3JvdW5kO1xuICAgIHRyYW5zaXRpb246ICRzd2l0Y2gtcGFkZGxlLXRyYW5zaXRpb247XG4gICAgY29udGVudDogJyc7XG4gIH1cblxuICAvLyBDaGFuZ2UgdGhlIHZpc3VhbCBzdHlsZSB3aGVuIHRoZSBzd2l0Y2ggaXMgYWN0aXZlXG4gIGlucHV0OmNoZWNrZWQgfiAmIHtcbiAgICBiYWNrZ3JvdW5kOiAkc3dpdGNoLWJhY2tncm91bmQtYWN0aXZlO1xuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgI3skZ2xvYmFsLWxlZnR9OiAkcGFkZGxlLWFjdGl2ZS1vZmZlc3Q7XG4gICAgfVxuICB9XG5cbiAgaW5wdXQ6Zm9jdXMgfiAmIHtcbiAgICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gIH1cbn1cblxuLy8vIEFkZHMgYmFzZSBzdHlsZXMgZm9yIGFjdGl2ZS9pbmFjdGl2ZSB0ZXh0IGluc2lkZSBhIHN3aXRjaC4gQXBwbHkgdGhpcyB0byB0ZXh0IGVsZW1lbnRzIGluc2lkZSB0aGUgc3dpdGNoIGA8bGFiZWw+YC5cbkBtaXhpbiBzd2l0Y2gtdGV4dCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgYWN0aXZlIHN0YXRlIHRleHQgd2l0aGluIGEgc3dpdGNoLlxuQG1peGluIHN3aXRjaC10ZXh0LWFjdGl2ZSB7XG4gICN7JGdsb2JhbC1sZWZ0fTogOCU7XG4gIGRpc3BsYXk6IG5vbmU7XG5cbiAgaW5wdXQ6Y2hlY2tlZCArIGxhYmVsID4gJiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgaW5hY3RpdmUgc3RhdGUgdGV4dCB3aXRoaW4gYSBzd2l0Y2guXG5AbWl4aW4gc3dpdGNoLXRleHQtaW5hY3RpdmUge1xuICAjeyRnbG9iYWwtcmlnaHR9OiAxNSU7XG5cbiAgaW5wdXQ6Y2hlY2tlZCArIGxhYmVsID4gJiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4vLy8gQ2hhbmdlcyB0aGUgc2l6ZSBvZiBhIHN3aXRjaCBieSBtb2RpZnlpbmcgdGhlIHNpemUgb2YgdGhlIGJvZHkgYW5kIHBhZGRsZS4gQXBwbHkgdGhpcyB0byBhIHN3aXRjaCBjb250YWluZXIuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRmb250LXNpemUgWzFyZW1dIC0gRm9udCBzaXplIG9mIGxhYmVsIHRleHQgd2l0aGluIHRoZSBzd2l0Y2guXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRzd2l0Y2gtaGVpZ2h0IFsycmVtXSAtIEhlaWdodCBvZiB0aGUgc3dpdGNoIGJvZHkuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRwYWRkbGUtb2Zmc2V0IFswLjI1cmVtXSAtIFNwYWNpbmcgYmV0d2VlbiB0aGUgc3dpdGNoIHBhZGRsZSBhbmQgdGhlIGVkZ2Ugb2YgdGhlIHN3aXRjaCBib2R5LlxuQG1peGluIHN3aXRjaC1zaXplKFxuICAkZm9udC1zaXplOiAxcmVtLFxuICAkc3dpdGNoLWhlaWdodDogMnJlbSxcbiAgJHBhZGRsZS1vZmZzZXQ6IDAuMjVyZW1cbikge1xuXG4gICRzd2l0Y2gtd2lkdGg6ICRzd2l0Y2gtaGVpZ2h0ICogMjtcbiAgJHBhZGRsZS13aWR0aDogJHN3aXRjaC1oZWlnaHQgLSAoJHBhZGRsZS1vZmZzZXQgKiAyKTtcbiAgJHBhZGRsZS1oZWlnaHQ6ICRzd2l0Y2gtaGVpZ2h0IC0gKCRwYWRkbGUtb2Zmc2V0ICogMik7XG4gICRwYWRkbGUtYWN0aXZlLW9mZmVzdDogJHN3aXRjaC13aWR0aCAtICRwYWRkbGUtd2lkdGggLSAkcGFkZGxlLW9mZnNldDtcblxuICBoZWlnaHQ6ICRzd2l0Y2gtaGVpZ2h0O1xuXG4gIC5zd2l0Y2gtcGFkZGxlIHtcbiAgICB3aWR0aDogJHN3aXRjaC13aWR0aDtcbiAgICBoZWlnaHQ6ICRzd2l0Y2gtaGVpZ2h0O1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZTtcbiAgfVxuXG4gIC5zd2l0Y2gtcGFkZGxlOjphZnRlciB7XG4gICAgdG9wOiAkcGFkZGxlLW9mZnNldDtcbiAgICAjeyRnbG9iYWwtbGVmdH06ICRwYWRkbGUtb2Zmc2V0O1xuICAgIHdpZHRoOiAkcGFkZGxlLXdpZHRoO1xuICAgIGhlaWdodDogJHBhZGRsZS1oZWlnaHQ7XG4gIH1cblxuICBpbnB1dDpjaGVja2VkIH4gLnN3aXRjaC1wYWRkbGU6OmFmdGVyIHtcbiAgICAjeyRnbG9iYWwtbGVmdH06ICRwYWRkbGUtYWN0aXZlLW9mZmVzdDtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1zd2l0Y2gge1xuICAvLyBDb250YWluZXIgY2xhc3NcbiAgLnN3aXRjaCB7XG4gICAgaGVpZ2h0OiAkc3dpdGNoLWhlaWdodDtcbiAgICBAaW5jbHVkZSBzd2l0Y2gtY29udGFpbmVyO1xuICB9XG5cbiAgLy8gPGlucHV0PiBlbGVtZW50XG4gIC5zd2l0Y2gtaW5wdXQge1xuICAgIEBpbmNsdWRlIHN3aXRjaC1pbnB1dDtcbiAgfVxuXG4gIC8vIDxsYWJlbD4gZWxlbWVudFxuICAuc3dpdGNoLXBhZGRsZSB7XG4gICAgQGluY2x1ZGUgc3dpdGNoLXBhZGRsZTtcbiAgfVxuXG4gIC8vIEJhc2UgbGFiZWwgdGV4dCBzdHlsZXNcbiAgJXN3aXRjaC10ZXh0IHtcbiAgICBAaW5jbHVkZSBzd2l0Y2gtdGV4dDtcbiAgfVxuXG4gIC8vIEFjdGl2ZSBsYWJlbCB0ZXh0IHN0eWxlc1xuICAuc3dpdGNoLWFjdGl2ZSB7XG4gICAgQGV4dGVuZCAlc3dpdGNoLXRleHQ7XG4gICAgQGluY2x1ZGUgc3dpdGNoLXRleHQtYWN0aXZlO1xuICB9XG5cbiAgLy8gSW5hY3RpdmUgbGFiZWwgdGV4dCBzdHlsZXNcbiAgLnN3aXRjaC1pbmFjdGl2ZSB7XG4gICAgQGV4dGVuZCAlc3dpdGNoLXRleHQ7XG4gICAgQGluY2x1ZGUgc3dpdGNoLXRleHQtaW5hY3RpdmU7XG4gIH1cblxuICAvLyBTd2l0Y2ggc2l6ZXNcbiAgLnN3aXRjaC50aW55IHtcbiAgICBAaW5jbHVkZSBzd2l0Y2gtc2l6ZShyZW0tY2FsYygxMCksICRzd2l0Y2gtaGVpZ2h0LXRpbnksICRzd2l0Y2gtcGFkZGxlLW9mZnNldCk7XG4gIH1cblxuICAuc3dpdGNoLnNtYWxsIHtcbiAgICBAaW5jbHVkZSBzd2l0Y2gtc2l6ZShyZW0tY2FsYygxMiksICRzd2l0Y2gtaGVpZ2h0LXNtYWxsLCAkc3dpdGNoLXBhZGRsZS1vZmZzZXQpO1xuICB9XG5cbiAgLnN3aXRjaC5sYXJnZSB7XG4gICAgQGluY2x1ZGUgc3dpdGNoLXNpemUocmVtLWNhbGMoMTYpLCAkc3dpdGNoLWhlaWdodC1sYXJnZSwgJHN3aXRjaC1wYWRkbGUtb2Zmc2V0KTtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vIHNhc3MtbGludDpkaXNhYmxlIGZvcmNlLWVsZW1lbnQtbmVzdGluZywgbm8tcXVhbGlmeWluZy1lbGVtZW50c1xuXG4vLy8vXG4vLy8gQGdyb3VwIHRhYmxlXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGNvbG9yIGZvciB0YWJsZSBiYWNrZ3JvdW5kLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFibGUtYmFja2dyb3VuZDogJHdoaXRlICAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgc2NhbGUgZm9yIGRhcmtlbmluZyB0aGUgc3RyaXBlZCB0YWJsZSByb3dzIGFuZCB0aGUgdGFibGUgYm9yZGVyLlxuLy8vIEB0eXBlIE51bWJlclxuJHRhYmxlLWNvbG9yLXNjYWxlOiA1JSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgc3R5bGUgZm9yIHRhYmxlIGJvcmRlci5cbi8vLyBAdHlwZSBMaXN0XG4kdGFibGUtYm9yZGVyOiAxcHggc29saWQgc21hcnQtc2NhbGUoJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgZm9yIHRhYmxlLlxuLy8vIEB0eXBlIE51bWJlclxuJHRhYmxlLXBhZGRpbmc6IHJlbS1jYWxjKDggMTAgMTApICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBzY2FsZSBmb3IgZGFya2VuaW5nIHRoZSB0YWJsZSByb3dzIG9uIGhvdmVyLlxuLy8vIEB0eXBlIE51bWJlclxuJHRhYmxlLWhvdmVyLXNjYWxlOiAyJSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3Igb2Ygc3RhbmRhcmQgcm93cyBvbiBob3Zlci5cbi8vLyBAdHlwZSBMaXN0XG4kdGFibGUtcm93LWhvdmVyOiBkYXJrZW4oJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1ob3Zlci1zY2FsZSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIHN0cmlwZWQgcm93cyBvbiBob3Zlci5cbi8vLyBAdHlwZSBMaXN0XG4kdGFibGUtcm93LXN0cmlwZS1ob3ZlcjogZGFya2VuKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUgKyAkdGFibGUtaG92ZXItc2NhbGUpICFkZWZhdWx0O1xuXG4vLy8gSWYgYHRydWVgLCB0YWJsZXMgYXJlIHN0cmlwZWQgYnkgZGVmYXVsdCBhbmQgYW4gLnVuc3RyaXBlZCBjbGFzcyBpcyBjcmVhdGVkLiBJZiBgZmFsc2VgLCBhIC5zdHJpcGVkIGNsYXNzIGlzIGNyZWF0ZWQuXG4vLy8gQHR5cGUgQm9vbGVhblxuJHRhYmxlLWlzLXN0cmlwZWQ6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3IgZm9yIHN0cmlwZWQgcm93cy5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYmxlLXN0cmlwZWQtYmFja2dyb3VuZDogc21hcnQtc2NhbGUoJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHZhbHVlIGZvciBzaG93aW5nIHRoZSBzdHJpcGUgb24gcm93cyBvZiB0aGUgdGFibGVzLCBleGNsdWRpbmcgdGhlIGhlYWRlciBhbmQgZm9vdGVyLiBJZiBldmVuLCB0aGUgZXZlbiByb3dzIHdpbGwgaGF2ZSBhIGJhY2tncm91bmQgY29sb3IuIElmIG9kZCwgdGhlIG9kZCByb3dzIHdpbGwgaGF2ZSBhIGJhY2tncm91bmQgY29sb3IuIElmIGVtcHR5LCBvciBhbnkgb3RoZXIgdmFsdWUsIHRoZSB0YWJsZSByb3dzIHdpbGwgaGF2ZSBubyBzdHJpcGluZy5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kdGFibGUtc3RyaXBlOiBldmVuICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgaGVhZGVyIGJhY2tncm91bmQuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWJsZS1oZWFkLWJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUgLyAyKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3Igb2YgaGVhZGVyIHJvd3Mgb24gaG92ZXIuXG4vLy8gQHR5cGUgTGlzdFxuJHRhYmxlLWhlYWQtcm93LWhvdmVyOiBkYXJrZW4oJHRhYmxlLWhlYWQtYmFja2dyb3VuZCwgJHRhYmxlLWhvdmVyLXNjYWxlKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3IgZm9yIGZvb3RlciBiYWNrZ3JvdW5kLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFibGUtZm9vdC1iYWNrZ3JvdW5kOiBzbWFydC1zY2FsZSgkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3Igb2YgZm9vdGVyIHJvd3Mgb24gaG92ZXIuXG4vLy8gQHR5cGUgTGlzdFxuJHRhYmxlLWZvb3Qtcm93LWhvdmVyOiBkYXJrZW4oJHRhYmxlLWZvb3QtYmFja2dyb3VuZCwgJHRhYmxlLWhvdmVyLXNjYWxlKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBjb2xvciBmb3IgaGVhZGVyLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFibGUtaGVhZC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IGNvbG9yIGZvciBmb290ZXIuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWJsZS1mb290LWZvbnQtY29sb3I6ICRib2R5LWZvbnQtY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHZhbHVlIGZvciBzaG93aW5nIHRoZSBoZWFkZXIgd2hlbiB1c2luZyBzdGFja2VkIHRhYmxlcy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kc2hvdy1oZWFkZXItZm9yLXN0YWNrZWQ6IGZhbHNlICFkZWZhdWx0O1xuXG4vLy8gQnJlYWtwb2ludCBhdCB3aGljaCBzdGFja2VkIHRhYmxlIHN3aXRjaGVzIGZyb20gbW9iaWxlIHRvIGRlc2t0b3Agdmlldy5cbi8vLyBAdHlwZSBCcmVha3BvaW50XG4kdGFibGUtc3RhY2stYnJlYWtwb2ludDogbWVkaXVtICFkZWZhdWx0O1xuXG5AbWl4aW4gLXpmLXRhYmxlLXN0cmlwZSgkc3RyaXBlOiAkdGFibGUtc3RyaXBlKSB7XG4gIHRyIHtcbiAgICAvLyBJZiBzdHJpcGUgaXMgc2V0IHRvIGV2ZW4sIGRhcmtlbiB0aGUgZXZlbiByb3dzLlxuICAgIEBpZiAkc3RyaXBlID09IGV2ZW4ge1xuICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtc3RyaXBlZC1iYWNrZ3JvdW5kO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIElmIHN0cmlwZSBpcyBzZXQgdG8gb2RkLCBkYXJrZW4gdGhlIG9kZCByb3dzLlxuICAgIEBlbHNlIGlmICRzdHJpcGUgPT0gb2RkIHtcbiAgICAgICY6bnRoLWNoaWxkKG9kZCkge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtc3RyaXBlZC1iYWNrZ3JvdW5kO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gLXpmLXRhYmxlLXVuc3RyaXBlKCkge1xuICB0ciB7XG4gICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICBib3JkZXItYm90dG9tOiAkdGFibGUtYm9yZGVyO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1iYWNrZ3JvdW5kO1xuICB9XG59XG5cbkBtaXhpbiAtemYtdGFibGUtY2hpbGRyZW4tc3R5bGVzKCRzdHJpcGU6ICR0YWJsZS1zdHJpcGUsICRpcy1zdHJpcGVkOiAkdGFibGUtaXMtc3RyaXBlZCkge1xuICB0aGVhZCxcbiAgdGJvZHksXG4gIHRmb290IHtcbiAgICBib3JkZXI6ICR0YWJsZS1ib3JkZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLWJhY2tncm91bmQ7XG4gIH1cblxuICAvLyBDYXB0aW9uXG4gIGNhcHRpb24ge1xuICAgIHBhZGRpbmc6ICR0YWJsZS1wYWRkaW5nO1xuICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuICB9XG5cbiAgLy8gVGFibGUgaGVhZFxuICB0aGVhZCB7XG4gICAgYmFja2dyb3VuZDogJHRhYmxlLWhlYWQtYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJHRhYmxlLWhlYWQtZm9udC1jb2xvcjtcbiAgfVxuXG4gIC8vIFRhYmxlIGZvb3RcbiAgdGZvb3Qge1xuICAgIGJhY2tncm91bmQ6ICR0YWJsZS1mb290LWJhY2tncm91bmQ7XG4gICAgY29sb3I6ICR0YWJsZS1mb290LWZvbnQtY29sb3I7XG4gIH1cblxuICAvLyBUYWJsZSBoZWFkIGFuZCBmb290XG4gIHRoZWFkLFxuICB0Zm9vdCB7XG4gICAgLy8gUm93cyB3aXRoaW4gaGVhZCBhbmQgZm9vdFxuICAgIHRyIHtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIH1cblxuICAgIC8vIENlbGxzIHdpdGhpbiBoZWFkIGFuZCBmb290XG4gICAgdGgsXG4gICAgdGQge1xuICAgICAgcGFkZGluZzogJHRhYmxlLXBhZGRpbmc7XG4gICAgICBmb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcbiAgICAgIHRleHQtYWxpZ246ICN7JGdsb2JhbC1sZWZ0fTtcbiAgICB9XG4gIH1cblxuICAvLyBUYWJsZSByb3dzXG4gIHRib2R5IHtcbiAgICB0aCxcbiAgICB0ZCB7XG4gICAgICBwYWRkaW5nOiAkdGFibGUtcGFkZGluZztcbiAgICB9XG4gIH1cblxuICAvLyBJZiB0YWJsZXMgYXJlIHN0cmlwZWRcbiAgQGlmICRpcy1zdHJpcGVkID09IHRydWUge1xuICAgIHRib2R5IHtcbiAgICAgIEBpbmNsdWRlIC16Zi10YWJsZS1zdHJpcGUoJHN0cmlwZSk7XG4gICAgfVxuXG4gICAgJi51bnN0cmlwZWQge1xuICAgICAgdGJvZHkge1xuICAgICAgICBAaW5jbHVkZSAtemYtdGFibGUtdW5zdHJpcGUoKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLWJhY2tncm91bmQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gSWYgdGFibGVzIGFyZSBub3Qgc3RyaXBlZFxuICBAZWxzZSBpZiAkaXMtc3RyaXBlZCA9PSBmYWxzZSB7XG4gICAgdGJvZHkge1xuICAgICAgQGluY2x1ZGUgLXpmLXRhYmxlLXVuc3RyaXBlKCk7XG4gICAgfVxuXG4gICAgJi5zdHJpcGVkIHtcbiAgICAgIHRib2R5IHtcbiAgICAgICAgQGluY2x1ZGUgLXpmLXRhYmxlLXN0cmlwZSgkc3RyaXBlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgdGhlIGdlbmVyYWwgc3R5bGVzIGZvciB0YWJsZXMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc3RyaXBlIFskdGFibGUtc3RyaXBlXSAtIFVzZXMga2V5d29yZHMgZXZlbiwgb2RkLCBvciBub25lIHRvIGRhcmtlbiByb3dzIG9mIHRoZSB0YWJsZS4gVGhlIGRlZmF1bHQgdmFsdWUgaXMgZXZlbi5cbkBtaXhpbiB0YWJsZShcbiAgJHN0cmlwZTogJHRhYmxlLXN0cmlwZSxcbiAgJG5lc3Q6IGZhbHNlXG4pIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xuICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcblxuICBAaWYgJG5lc3Qge1xuICAgIEBpbmNsdWRlIC16Zi10YWJsZS1jaGlsZHJlbi1zdHlsZXMoJHN0cmlwZSk7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBhdC1yb290IHtcbiAgICAgIEBpbmNsdWRlIC16Zi10YWJsZS1jaGlsZHJlbi1zdHlsZXMoJHN0cmlwZSk7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHRoZSBhYmlsaXR5IHRvIGhvcml6b250YWxseSBzY3JvbGwgdGhlIHRhYmxlIHdoZW4gdGhlIGNvbnRlbnQgb3ZlcmZsb3dzIGhvcml6b250YWxseS5cbkBtaXhpbiB0YWJsZS1zY3JvbGwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIG92ZXJmbG93LXg6IGF1dG87XG59XG5cbi8vLyBTbGlnaHRseSBkYXJrZW5zIHRoZSB0YWJsZSByb3dzIG9uIGhvdmVyLlxuQG1peGluIHRhYmxlLWhvdmVyIHtcbiAgdGhlYWQgdHIge1xuICAgIC8vRGFya2VucyB0aGUgdGFibGUgaGVhZGVyIHJvd3Mgb24gaG92ZXIuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtaGVhZC1yb3ctaG92ZXI7XG4gICAgfVxuICB9XG5cbiAgdGZvb3QgdHIge1xuICAgIC8vRGFya2VucyB0aGUgdGFibGUgZm9vdGVyIHJvd3Mgb24gaG92ZXIuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtZm9vdC1yb3ctaG92ZXI7XG4gICAgfVxuICB9XG5cbiAgdGJvZHkgdHIge1xuICAgIC8vRGFya2VucyB0aGUgbm9uLXN0cmlwZWQgdGFibGUgcm93cyBvbiBob3Zlci5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1yb3ctaG92ZXI7XG4gICAgfVxuICB9XG5cbiAgQGlmICR0YWJsZS1pcy1zdHJpcGVkID09IHRydWUge1xuICAgIC8vIERhcmtlbnMgdGhlIGV2ZW4gc3RyaXBlZCB0YWJsZSByb3dzLlxuICAgIEBpZigkdGFibGUtc3RyaXBlID09IGV2ZW4pIHtcbiAgICAgICY6bm90KC51bnN0cmlwZWQpIHRyOm50aC1vZi10eXBlKGV2ZW4pOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLXJvdy1zdHJpcGUtaG92ZXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRGFya2VucyB0aGUgb2RkIHN0cmlwZWQgdGFibGUgcm93cy5cbiAgICBAZWxzZWlmKCR0YWJsZS1zdHJpcGUgPT0gb2RkKSB7XG4gICAgICAmOm5vdCgudW5zdHJpcGVkKSB0cjpudGgtb2YtdHlwZShvZGQpOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLXJvdy1zdHJpcGUtaG92ZXI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGVsc2UgaWYgJHRhYmxlLWlzLXN0cmlwZWQgPT0gZmFsc2Uge1xuICAgIC8vIERhcmtlbnMgdGhlIGV2ZW4gc3RyaXBlZCB0YWJsZSByb3dzLlxuICAgIEBpZigkdGFibGUtc3RyaXBlID09IGV2ZW4pIHtcbiAgICAgICYuc3RyaXBlZCB0cjpudGgtb2YtdHlwZShldmVuKTpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1yb3ctc3RyaXBlLWhvdmVyO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIERhcmtlbnMgdGhlIG9kZCBzdHJpcGVkIHRhYmxlIHJvd3MuXG4gICAgQGVsc2VpZigkdGFibGUtc3RyaXBlID09IG9kZCkge1xuICAgICAgJi5zdHJpcGVkIHRyOm50aC1vZi10eXBlKG9kZCk6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtcm93LXN0cmlwZS1ob3ZlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIHN0YWNrZWQgdGFibGUuIFVzZWZ1bCBmb3Igc21hbGwtc2NyZWVuIGxheW91dHMuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkaGVhZGVyIFskc2hvdy1oZWFkZXItZm9yLXN0YWNrZWRdIC0gU2hvdyB0aGUgZmlyc3QgdGggb2YgaGVhZGVyIHdoZW4gc3RhY2tlZC5cbkBtaXhpbiB0YWJsZS1zdGFjaygkaGVhZGVyOiAkc2hvdy1oZWFkZXItZm9yLXN0YWNrZWQpIHtcbiAgQGlmICRoZWFkZXIge1xuICAgIHRoZWFkIHtcbiAgICAgIHRoIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICB0aGVhZCB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIHRmb290IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgdHIsXG4gIHRoLFxuICB0ZCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICB0ZCB7XG4gICAgYm9yZGVyLXRvcDogMDtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi10YWJsZSgkbmVzdDogZmFsc2UpIHtcbiAgdGFibGUge1xuICAgIEBpbmNsdWRlIHRhYmxlKCRuZXN0OiAkbmVzdCk7XG4gIH1cblxuICB0YWJsZS5zdGFjayB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkdGFibGUtc3RhY2stYnJlYWtwb2ludCBkb3duKSB7XG4gICAgICBAaW5jbHVkZSB0YWJsZS1zdGFjaztcbiAgICB9XG4gIH1cblxuICB0YWJsZS5zY3JvbGwge1xuICAgIEBpbmNsdWRlIHRhYmxlLXNjcm9sbDtcbiAgfVxuXG4gIHRhYmxlLmhvdmVyIHtcbiAgICBAaW5jbHVkZSB0YWJsZS1ob3ZlcjtcbiAgfVxuXG4gIC50YWJsZS1zY3JvbGwge1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG5cbiAgICB0YWJsZSB7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHRhYnNcbi8vLy9cblxuLy8vIERlZmF1bHQgbWFyZ2luIG9mIHRoZSB0YWIgYmFyLlxuLy8vIEB0eXBlIE51bWJlclxuJHRhYi1tYXJnaW46IDAgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3Igb2YgYSB0YWIgYmFyLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFiLWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgY29sb3Igb2YgdGFiIGl0ZW0uXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWItY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gQWN0aXZlIGJhY2tncm91bmQgY29sb3Igb2YgYSB0YWIgYmFyLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFiLWJhY2tncm91bmQtYWN0aXZlOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIEFjdGl2ZSBmb250IGNvbG9yIG9mIHRhYiBpdGVtLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFiLWFjdGl2ZS1jb2xvcjogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgb2YgdGFiIGl0ZW1zLlxuLy8vIEB0eXBlIE51bWJlclxuJHRhYi1pdGVtLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9uIGhvdmVyIGZvciBpdGVtcyBpbiBhIE1lbnUuXG4kdGFiLWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIG9mIGEgdGFiIGl0ZW0uXG4vLy8gQHR5cGUgTnVtYmVyXG4kdGFiLWl0ZW0tcGFkZGluZzogMS4yNXJlbSAxLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBNYXhpbXVtIG51bWJlciBvZiBgZXhwYW5kLW5gIGNsYXNzZXMgdG8gaW5jbHVkZSBpbiB0aGUgQ1NTLlxuLy8vIEB0eXBlIE51bWJlclxuJHRhYi1leHBhbmQtbWF4OiA2ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9mIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kdGFiLWNvbnRlbnQtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgY29sb3Igb2YgdGFiIGNvbnRlbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWItY29udGVudC1ib3JkZXI6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0ZXh0IGNvbG9yIG9mIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kdGFiLWNvbnRlbnQtY29sb3I6ICRib2R5LWZvbnQtY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgZm9yIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiR0YWItY29udGVudC1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgdGFiIGNvbnRhaW5lci4gQXBwbHkgdGhpcyB0byBhIGA8dWw+YC5cbkBtaXhpbiB0YWJzLWNvbnRhaW5lciAoXG4gICRtYXJnaW46ICR0YWItbWFyZ2luLFxuICAkYmFja2dyb3VuZDogJHRhYi1iYWNrZ3JvdW5kLFxuICAkYm9yZGVyLWNvbG9yOiAkdGFiLWNvbnRlbnQtYm9yZGVyXG4pIHtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIG1hcmdpbjogJG1hcmdpbjtcbiAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci1jb2xvcjtcbiAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbn1cblxuLy8vIEF1Z21lbnRzIGEgdGFiIGNvbnRhaW5lciB0byBoYXZlIHZlcnRpY2FsIHRhYnMuIFVzZSB0aGlzIGluIGNvbmp1bmN0aW9uIHdpdGggYHRhYnMtY29udGFpbmVyKClgLlxuQG1peGluIHRhYnMtY29udGFpbmVyLXZlcnRpY2FsIHtcbiAgPiBsaSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgd2lkdGg6IGF1dG87XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgbGlua3Mgd2l0aGluIGEgdGFiIGNvbnRhaW5lci4gQXBwbHkgdGhpcyB0byB0aGUgYDxsaT5gIGVsZW1lbnRzIGluc2lkZSBhIHRhYiBjb250YWluZXIuXG5AbWl4aW4gdGFicy10aXRsZSAoXG4gICRwYWRkaW5nOiAkdGFiLWl0ZW0tcGFkZGluZyxcbiAgJGZvbnQtc2l6ZTogJHRhYi1pdGVtLWZvbnQtc2l6ZSxcbiAgJGNvbG9yOiAkdGFiLWNvbG9yLFxuICAkY29sb3ItYWN0aXZlOiAkdGFiLWFjdGl2ZS1jb2xvcixcbiAgJGJhY2tncm91bmQtaG92ZXI6ICR0YWItaXRlbS1iYWNrZ3JvdW5kLWhvdmVyLFxuICAkYmFja2dyb3VuZC1hY3RpdmU6ICR0YWItYmFja2dyb3VuZC1hY3RpdmVcbikge1xuICBmbG9hdDogI3skZ2xvYmFsLWxlZnR9O1xuXG4gID4gYSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogJHBhZGRpbmc7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kLWhvdmVyO1xuICAgICAgY29sb3I6IHNjYWxlLWNvbG9yKCRjb2xvciwgJGxpZ2h0bmVzczogLTE0JSk7XG4gICAgfVxuXG4gICAgJjpmb2N1cyxcbiAgICAmW2FyaWEtc2VsZWN0ZWQ9J3RydWUnXSB7XG4gICAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZC1hY3RpdmU7XG4gICAgICBjb2xvcjogJGNvbG9yLWFjdGl2ZTtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgd3JhcHBlciB0aGF0IHN1cnJvdW5kcyBhIHRhYiBncm91cCdzIGNvbnRlbnQgcGFuZXMuXG5AbWl4aW4gdGFicy1jb250ZW50IChcbiAgJGJhY2tncm91bmQ6ICR0YWItY29udGVudC1iYWNrZ3JvdW5kLFxuICAkY29sb3I6ICR0YWItY29udGVudC1jb2xvcixcbiAgJGJvcmRlci1jb2xvcjogJHRhYi1jb250ZW50LWJvcmRlclxuKSB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItY29sb3I7XG4gIGJvcmRlci10b3A6IDA7XG4gIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICBjb2xvcjogJGNvbG9yO1xuICB0cmFuc2l0aW9uOiBhbGwgMC41cyBlYXNlO1xufVxuXG4vLy8gQXVnbWVudHMgYSB0YWIgY29udGVudCBjb250YWluZXIgdG8gaGF2ZSBhIHZlcnRpY2FsIHN0eWxlLCBieSBzaGlmdGluZyB0aGUgYm9yZGVyIGFyb3VuZC4gVXNlIHRoaXMgaW4gY29uanVuY3Rpb24gd2l0aCBgdGFicy1jb250ZW50KClgLlxuQG1peGluIHRhYnMtY29udGVudC12ZXJ0aWNhbCAoXG4gICRib3JkZXItY29sb3I6ICR0YWItY29udGVudC1ib3JkZXJcbikge1xuICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLWNvbG9yO1xuICBib3JkZXItI3skZ2xvYmFsLWxlZnR9OiAwO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGFuIGluZGl2aWR1YWwgdGFiIGNvbnRlbnQgcGFuZWwgd2l0aGluIHRoZSB0YWIgY29udGVudCBjb250YWluZXIuXG5AbWl4aW4gdGFicy1wYW5lbCAoXG4gICRwYWRkaW5nOiAkdGFiLWNvbnRlbnQtcGFkZGluZ1xuKSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuXG4gICYuaXMtYWN0aXZlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi10YWJzIHtcbiAgLnRhYnMge1xuICAgIEBpbmNsdWRlIHRhYnMtY29udGFpbmVyO1xuICB9XG5cbiAgLy8gVmVydGljYWxcbiAgLnRhYnMudmVydGljYWwge1xuICAgIEBpbmNsdWRlIHRhYnMtY29udGFpbmVyLXZlcnRpY2FsO1xuICB9XG5cbiAgLy8gU2ltcGxlXG4gIC50YWJzLnNpbXBsZSB7XG4gICAgPiBsaSA+IGEge1xuICAgICAgcGFkZGluZzogMDtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFByaW1hcnkgY29sb3JcbiAgLnRhYnMucHJpbWFyeSB7XG4gICAgYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG5cbiAgICA+IGxpID4gYSB7XG4gICAgICBjb2xvcjogY29sb3ItcGljay1jb250cmFzdCgkcHJpbWFyeS1jb2xvcik7XG5cbiAgICAgICY6aG92ZXIsXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgYmFja2dyb3VuZDogc21hcnQtc2NhbGUoJHByaW1hcnktY29sb3IpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC50YWJzLXRpdGxlIHtcbiAgICBAaW5jbHVkZSB0YWJzLXRpdGxlO1xuICB9XG5cbiAgLnRhYnMtY29udGVudCB7XG4gICAgQGluY2x1ZGUgdGFicy1jb250ZW50O1xuICB9XG5cbiAgLnRhYnMtY29udGVudC52ZXJ0aWNhbCB7XG4gICAgQGluY2x1ZGUgdGFicy1jb250ZW50LXZlcnRpY2FsO1xuICB9XG5cbiAgLnRhYnMtcGFuZWwge1xuICAgIEBpbmNsdWRlIHRhYnMtcGFuZWw7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHRpdGxlLWJhclxuLy8vL1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBhIHRpdGxlIGJhci5cbi8vLyBAdHlwZSBDb2xvclxuJHRpdGxlYmFyLWJhY2tncm91bmQ6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIHRleHQgaW5zaWRlIGEgdGl0bGUgYmFyLlxuLy8vIEB0eXBlIENvbG9yXG4kdGl0bGViYXItY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgaW5zaWRlIGEgdGl0bGUgYmFyLlxuLy8vIEB0eXBlIExlbmd0aFxuJHRpdGxlYmFyLXBhZGRpbmc6IDAuNXJlbSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgd2VpZ2h0IG9mIHRleHQgaW5zaWRlIGEgdGl0bGUgYmFyLlxuLy8vIEB0eXBlIFdlaWdodFxuJHRpdGxlYmFyLXRleHQtZm9udC13ZWlnaHQ6IGJvbGQgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiBtZW51IGljb25zIGluc2lkZSBhIHRpdGxlIGJhci5cbi8vLyBAdHlwZSBDb2xvclxuJHRpdGxlYmFyLWljb24tY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIG1lbnUgaWNvbnMgaW5zaWRlIGEgdGl0bGUgYmFyIG9uIGhvdmVyLlxuLy8vIEB0eXBlIENvbG9yXG4kdGl0bGViYXItaWNvbi1jb2xvci1ob3ZlcjogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gU3BhY2luZyBiZXR3ZWVuIHRoZSBtZW51IGljb24gYW5kIHRleHQgaW5zaWRlIGEgdGl0bGUgYmFyLlxuLy8vIEB0eXBlIExlbmd0aFxuJHRpdGxlYmFyLWljb24tc3BhY2luZzogMC4yNXJlbSAhZGVmYXVsdDtcblxuQG1peGluIGZvdW5kYXRpb24tdGl0bGUtYmFyIHtcbiAgLnRpdGxlLWJhciB7XG4gICAgcGFkZGluZzogJHRpdGxlYmFyLXBhZGRpbmc7XG4gICAgYmFja2dyb3VuZDogJHRpdGxlYmFyLWJhY2tncm91bmQ7XG4gICAgY29sb3I6ICR0aXRsZWJhci1jb2xvcjtcblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICAgIH1cblxuICAgIC5tZW51LWljb24ge1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJHRpdGxlYmFyLWljb24tc3BhY2luZztcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkdGl0bGViYXItaWNvbi1zcGFjaW5nO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIC50aXRsZS1iYXItbGVmdCxcbiAgICAudGl0bGUtYmFyLXJpZ2h0IHtcbiAgICAgIGZsZXg6IDEgMSAwcHg7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgemVyby11bml0XG4gICAgfVxuXG4gICAgLnRpdGxlLWJhci1yaWdodCB7XG4gICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIC50aXRsZS1iYXItbGVmdCB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICB9XG5cbiAgICAudGl0bGUtYmFyLXJpZ2h0IHtcbiAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIH1cbiAgfVxuXG4gIC50aXRsZS1iYXItdGl0bGUge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIGZvbnQtd2VpZ2h0OiAkdGl0bGViYXItdGV4dC1mb250LXdlaWdodDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgdG9wLWJhclxuLy8vL1xuXG4vLy8gUGFkZGluZyBmb3IgdGhlIHRvcCBiYXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdG9wYmFyLXBhZGRpbmc6IDAuNXJlbSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIHRoZSB0b3AgYmFyLiBUaGlzIGNvbG9yIGFsc28gY2FzY2FkZXMgdG8gbWVudXMgd2l0aGluIHRoZSB0b3AgYmFyLlxuLy8vIEB0eXBlIENvbG9yXG4kdG9wYmFyLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBzdWJtZW51cyB3aXRoaW4gdGhlIHRvcCBiYXIuIFVzZWZ1bGwgaWYgJHRvcGJhci1iYWNrZ3JvdW5kIGlzIHRyYW5zcGFyZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kdG9wYmFyLXN1Ym1lbnUtYmFja2dyb3VuZDogJHRvcGJhci1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuXG4vLy8gU3BhY2luZyBmb3IgdGhlIHRvcCBiYXIgdGl0bGUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdG9wYmFyLXRpdGxlLXNwYWNpbmc6IDAuNXJlbSAxcmVtIDAuNXJlbSAwICFkZWZhdWx0O1xuXG4vLy8gTWF4aW11bSB3aWR0aCBvZiBgPGlucHV0PmAgZWxlbWVudHMgaW5zaWRlIHRoZSB0b3AgYmFyLlxuLy8vIEB0eXBlIE51bWJlclxuJHRvcGJhci1pbnB1dC13aWR0aDogMjAwcHggIWRlZmF1bHQ7XG5cbi8vLyBCcmVha3BvaW50IGF0IHdoaWNoIHRvcCBiYXIgc3dpdGNoZXMgZnJvbSBtb2JpbGUgdG8gZGVza3RvcCB2aWV3LlxuLy8vIEB0eXBlIEJyZWFrcG9pbnRcbiR0b3BiYXItdW5zdGFjay1icmVha3BvaW50OiBtZWRpdW0gIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSB0b3AgYmFyIGNvbnRhaW5lci5cbkBtaXhpbiB0b3AtYmFyLWNvbnRhaW5lciB7XG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICB9XG5cbiAgcGFkZGluZzogJHRvcGJhci1wYWRkaW5nO1xuXG4gICYsXG4gIHVsIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdG9wYmFyLWJhY2tncm91bmQ7XG4gIH1cblxuICAvLyBDaGVjayBpZiAkdG9wYmFyLWJhY2tncm91bmQgaXMgZGlmZmVybnQgZnJvbSAkdG9wYmFyLWJhY2tncm91bmQtc3VibWVudVxuICBAaWYgKCR0b3BiYXItYmFja2dyb3VuZCAhPSAkdG9wYmFyLXN1Ym1lbnUtYmFja2dyb3VuZCkge1xuICAgIHVsIHVsIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0b3BiYXItc3VibWVudS1iYWNrZ3JvdW5kO1xuICAgIH1cbiAgfVxuXG4gIC8vIFJlc3RyYWluIHdpZHRoIG9mIGlucHV0cyBieSBkZWZhdWx0IHRvIG1ha2UgdGhlbSBlYXNpZXIgdG8gYXJyYW5nZVxuICBpbnB1dCB7XG4gICAgbWF4LXdpZHRoOiAkdG9wYmFyLWlucHV0LXdpZHRoO1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAxcmVtO1xuICB9XG5cbiAgLy8gVGhlIGFib3ZlIHN0eWxlcyBzaG91bGRuJ3QgYXBwbHkgdG8gaW5wdXQgZ3JvdXAgZmllbGRzXG4gIC5pbnB1dC1ncm91cC1maWVsZCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06IDA7XG4gIH1cblxuICBpbnB1dC5idXR0b24geyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXF1YWxpZnlpbmctZWxlbWVudHNcbiAgICB3aWR0aDogYXV0bztcbiAgfVxufVxuXG4vLy8gTWFrZXMgc2VjdGlvbnMgb2YgYSB0b3AgYmFyIHN0YWNrIG9uIHRvcCBvZiBlYWNoIG90aGVyLlxuQG1peGluIHRvcC1iYXItc3RhY2tlZCB7XG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGZsZXgtd3JhcDogd3JhcDtcblxuICAgIC8vIFN1Yi1zZWN0aW9uc1xuICAgIC50b3AtYmFyLWxlZnQsXG4gICAgLnRvcC1iYXItcmlnaHQge1xuICAgICAgZmxleDogMCAwIDEwMCU7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICAvLyBTdWItc2VjdGlvbnNcbiAgICAudG9wLWJhci1sZWZ0LFxuICAgIC50b3AtYmFyLXJpZ2h0IHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gVW5kb2VzIHRoZSBDU1MgYXBwbGllZCBieSB0aGUgYHRvcC1iYXItc3RhY2tlZCgpYCBtaXhpbi5cbkBtaXhpbiB0b3AtYmFyLXVuc3RhY2sge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcblxuICAgIC50b3AtYmFyLWxlZnQge1xuICAgICAgZmxleDogMSAxIGF1dG87XG4gICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgfVxuXG4gICAgLnRvcC1iYXItcmlnaHQge1xuICAgICAgZmxleDogMCAxIGF1dG87XG4gICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIC50b3AtYmFyLWxlZnQsXG4gICAgLnRvcC1iYXItcmlnaHQge1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXRvcC1iYXIge1xuICAvLyBUb3AgYmFyIGNvbnRhaW5lclxuICAudG9wLWJhciB7XG4gICAgQGluY2x1ZGUgdG9wLWJhci1jb250YWluZXI7XG5cbiAgICAvLyBTdGFjayBvbiBzbWFsbCBzY3JlZW5zIGJ5IGRlZmF1bHRcbiAgICBAaW5jbHVkZSB0b3AtYmFyLXN0YWNrZWQ7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCR0b3BiYXItdW5zdGFjay1icmVha3BvaW50KSB7XG4gICAgICBAaW5jbHVkZSB0b3AtYmFyLXVuc3RhY2s7XG4gICAgfVxuXG4gICAgLy8gR2VuZXJhdGUgY2xhc3NlcyBmb3Igc3RhY2tpbmcgb24gZWFjaCBzY3JlZW4gc2l6ZSAoZGVmaW5lZCBpbiAkYnJlYWtwb2ludC1jbGFzc2VzKVxuICAgIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgJi5zdGFja2VkLWZvci0jeyRzaXplfSB7XG4gICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSBkb3duKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0b3AtYmFyLXN0YWNrZWQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gU3ViLXNlY3Rpb25zXG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIC50b3AtYmFyLXRpdGxlIHtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgbWFyZ2luOiAkdG9wYmFyLXRpdGxlLXNwYWNpbmc7XG4gICAgfVxuXG4gICAgLnRvcC1iYXItbGVmdCxcbiAgICAudG9wLWJhci1yaWdodCB7XG4gICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIC50b3AtYmFyLXRpdGxlIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgcGFkZGluZzogJHRvcGJhci10aXRsZS1zcGFjaW5nO1xuXG4gICAgICAubWVudS1pY29uIHtcbiAgICAgICAgYm90dG9tOiAycHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnRvcC1iYXItbGVmdCB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICB9XG5cbiAgICAudG9wLWJhci1yaWdodCB7XG4gICAgICBmbG9hdDogcmlnaHQ7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB0aHVtYm5haWxcbi8vLy9cblxuLy8vIEJvcmRlciBhcm91bmQgdGh1bWJuYWlsIGltYWdlcy5cbi8vLyBAdHlwZSBCb3JkZXJcbiR0aHVtYm5haWwtYm9yZGVyOiBzb2xpZCA0cHggJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIG1hcmdpbiBmb3IgdGh1bWJuYWlsIGltYWdlcy5cbi8vLyBAdHlwZSBMZW5ndGhcbiR0aHVtYm5haWwtbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XG5cbi8vLyBCb3ggc2hhZG93IHVuZGVyIHRodW1ibmFpbCBpbWFnZXMuXG4vLy8gQHR5cGUgU2hhZG93XG4kdGh1bWJuYWlsLXNoYWRvdzogMCAwIDAgMXB4IHJnYmEoJGJsYWNrLCAwLjIpICFkZWZhdWx0O1xuXG4vLy8gQm94IHNoYWRvdyB1bmRlciB0aHVtYm5haWwgaW1hZ2VzLlxuLy8vIEB0eXBlIFNoYWRvd1xuJHRodW1ibmFpbC1zaGFkb3ctaG92ZXI6IDAgMCA2cHggMXB4IHJnYmEoJHByaW1hcnktY29sb3IsIDAuNSkgIWRlZmF1bHQ7XG5cbi8vLyBUcmFuc2l0aW9uIHByb3BydGllcyBmb3IgdGh1bWJuYWlsIGltYWdlcy5cbi8vLyBAdHlwZSBUcmFuc2l0aW9uXG4kdGh1bWJuYWlsLXRyYW5zaXRpb246IGJveC1zaGFkb3cgMjAwbXMgZWFzZS1vdXQgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHJhZGl1cyBmb3IgdGh1bWJuYWlsIGltYWdlcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0aHVtYm5haWwtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIEFkZHMgdGh1bWJuYWlsIHN0eWxlcyB0byBhbiBlbGVtZW50LlxuQG1peGluIHRodW1ibmFpbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAkdGh1bWJuYWlsLW1hcmdpbi1ib3R0b207XG5cbiAgYm9yZGVyOiAkdGh1bWJuYWlsLWJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogJHRodW1ibmFpbC1yYWRpdXM7XG4gIGJveC1zaGFkb3c6ICR0aHVtYm5haWwtc2hhZG93O1xuXG4gIGxpbmUtaGVpZ2h0OiAwO1xufVxuXG5AbWl4aW4gdGh1bWJuYWlsLWxpbmsge1xuICB0cmFuc2l0aW9uOiAkdGh1bWJuYWlsLXRyYW5zaXRpb247XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYm94LXNoYWRvdzogJHRodW1ibmFpbC1zaGFkb3ctaG92ZXI7XG4gIH1cblxuICBpbWFnZSB7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi10aHVtYm5haWwge1xuICAudGh1bWJuYWlsIHtcbiAgICBAaW5jbHVkZSB0aHVtYm5haWw7XG4gIH1cblxuICBhLnRodW1ibmFpbCB7XG4gICAgQGluY2x1ZGUgdGh1bWJuYWlsLWxpbms7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHRvb2x0aXBcbi8vLy9cblxuLy8vIERlZmF1bHQgY3Vyc29yIG9mIHRoZSBkZWZpbmVkIHRlcm0uXG4vLy8gQHR5cGUgS2V5d29yZFxuJGhhcy10aXAtY3Vyc29yOiBoZWxwICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHdlaWdodCBvZiB0aGUgZGVmaW5lZCB0ZXJtLlxuLy8vIEB0eXBlIEtleXdvcmQgfCBOdW1iZXJcbiRoYXMtdGlwLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgYm90dG9tIG9mIHRoZSBkZWZpbmVkIHRlcm0uXG4vLy8gQHR5cGUgTGlzdFxuJGhhcy10aXAtYm9yZGVyLWJvdHRvbTogZG90dGVkIDFweCAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBvZiB0aGUgdG9vbHRpcCBiYWNrZ3JvdW5kLlxuLy8vIEB0eXBlIENvbG9yXG4kdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIHRoZSB0b29sdGlwIGZvbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiR0b29sdGlwLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgb2YgdGhlIHRvb2x0aXAgYmFja2dyb3VuZC5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0b29sdGlwLXBhZGRpbmc6IDAuNzVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IG1heCB3aWR0aCBmb3IgdG9vbHRpcHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdG9vbHRpcC1tYXgtd2lkdGg6IDEwcmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgb2YgdGhlIHRvb2x0aXAgdGV4dC4gQnkgZGVmYXVsdCwgd2UgcmVjb21tZW5kIGEgc21hbGxlciBmb250IHNpemUgdGhhbiB0aGUgYm9keSBjb3B5LlxuLy8vIEB0eXBlIE51bWJlclxuJHRvb2x0aXAtZm9udC1zaXplOiAkc21hbGwtZm9udC1zaXplICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwaXAgd2lkdGggZm9yIHRvb2x0aXBzLlxuLy8vIEB0eXBlIE51bWJlclxuJHRvb2x0aXAtcGlwLXdpZHRoOiAwLjc1cmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwaXAgaGVpZ2h0IGZvciB0b29sdGlwcy4gVGhpcyBpcyBoZWxwZnVsIGZvciBjYWxjdWxhdGluZyB0aGUgZGlzdGFuY2Ugb2YgdGhlIHRvb2x0aXAgZnJvbSB0aGUgdG9vbHRpcCB3b3JkLlxuLy8vIEB0eXBlIE51bWJlclxuJHRvb2x0aXAtcGlwLWhlaWdodDogJHRvb2x0aXAtcGlwLXdpZHRoICogMC44NjYgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHJhZGl1cyBmb3IgdG9vbHRpcHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdG9vbHRpcC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG5AbWl4aW4gaGFzLXRpcCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gIGJvcmRlci1ib3R0b206ICRoYXMtdGlwLWJvcmRlci1ib3R0b207XG4gIGZvbnQtd2VpZ2h0OiAkaGFzLXRpcC1mb250LXdlaWdodDtcbiAgY3Vyc29yOiAkaGFzLXRpcC1jdXJzb3I7XG59XG5cbkBtaXhpbiB0b29sdGlwIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IGNhbGMoMTAwJSArICN7JHRvb2x0aXAtcGlwLWhlaWdodH0pO1xuICB6LWluZGV4OiAxMjAwO1xuXG4gIG1heC13aWR0aDogJHRvb2x0aXAtbWF4LXdpZHRoO1xuICBwYWRkaW5nOiAkdG9vbHRpcC1wYWRkaW5nO1xuXG4gIGJvcmRlci1yYWRpdXM6ICR0b29sdGlwLXJhZGl1cztcbiAgYmFja2dyb3VuZC1jb2xvcjogJHRvb2x0aXAtYmFja2dyb3VuZC1jb2xvcjtcbiAgZm9udC1zaXplOiAkdG9vbHRpcC1mb250LXNpemU7XG4gIGNvbG9yOiAkdG9vbHRpcC1jb2xvcjtcblxuICAmOjpiZWZvcmUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgfVxuXG4gICYuYm90dG9tIHtcbiAgICAmOjpiZWZvcmUge1xuICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCR0b29sdGlwLXBpcC13aWR0aCwgJHRvb2x0aXAtYmFja2dyb3VuZC1jb2xvciwgdXApO1xuICAgICAgYm90dG9tOiAxMDAlO1xuICAgIH1cblxuICAgICYuYWxpZ24tY2VudGVyOjpiZWZvcmUge1xuICAgICAgbGVmdDogNTAlO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgIH1cbiAgfVxuXG4gICYudG9wIHtcbiAgICAmOjpiZWZvcmUge1xuICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCR0b29sdGlwLXBpcC13aWR0aCwgJHRvb2x0aXAtYmFja2dyb3VuZC1jb2xvciwgZG93bik7XG4gICAgICB0b3A6IDEwMCU7XG4gICAgICBib3R0b206IGF1dG87XG4gICAgfVxuXG4gICAgJi5hbGlnbi1jZW50ZXI6OmJlZm9yZSB7XG4gICAgICBsZWZ0OiA1MCU7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgfVxuICB9XG5cbiAgJi5sZWZ0IHtcbiAgICAmOjpiZWZvcmUge1xuICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCR0b29sdGlwLXBpcC13aWR0aCwgJHRvb2x0aXAtYmFja2dyb3VuZC1jb2xvciwgcmlnaHQpO1xuICAgICAgbGVmdDogMTAwJTtcbiAgICB9XG5cbiAgICAmLmFsaWduLWNlbnRlcjo6YmVmb3JlIHtcbiAgICAgIGJvdHRvbTogYXV0bztcbiAgICAgIHRvcDogNTAlO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgIH1cbiAgfVxuXG4gICYucmlnaHQge1xuICAgICY6OmJlZm9yZSB7XG4gICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJHRvb2x0aXAtcGlwLXdpZHRoLCAkdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yLCBsZWZ0KTtcbiAgICAgIHJpZ2h0OiAxMDAlO1xuICAgICAgbGVmdDogYXV0bztcbiAgICB9XG5cbiAgICAmLmFsaWduLWNlbnRlcjo6YmVmb3JlIHtcbiAgICAgIGJvdHRvbTogYXV0bztcbiAgICAgIHRvcDogNTAlO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgIH1cbiAgfVxuXG4gICYuYWxpZ24tdG9wOjpiZWZvcmUge1xuICAgIGJvdHRvbTogYXV0bztcbiAgICB0b3A6IDEwJTtcbiAgfVxuXG4gICYuYWxpZ24tYm90dG9tOjpiZWZvcmUge1xuICAgIGJvdHRvbTogMTAlO1xuICAgIHRvcDogYXV0bztcbiAgfVxuXG4gICYuYWxpZ24tbGVmdDo6YmVmb3JlIHtcbiAgICBsZWZ0OiAxMCU7XG4gICAgcmlnaHQ6IGF1dG87XG4gIH1cblxuICAmLmFsaWduLXJpZ2h0OjpiZWZvcmUge1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IDEwJTtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi10b29sdGlwIHtcbiAgLmhhcy10aXAge1xuICAgIEBpbmNsdWRlIGhhcy10aXA7XG4gIH1cblxuICAudG9vbHRpcCB7XG4gICAgQGluY2x1ZGUgdG9vbHRpcDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcHJvdG90eXBlXG4vLy8vXG5cbi8vIFJlbGF0aW9uYWwgTWl4aW5zXG5AaW1wb3J0ICdyZWxhdGlvbic7XG5cbi8vIEJveCBNaXhpblxuQGltcG9ydCAnYm94JztcblxuLy8gUm90YXRlIE1peGluXG5AaW1wb3J0ICdyb3RhdGUnO1xuXG4vLyBUZXh0IHV0aWxpdGllc1xuQGltcG9ydCAndGV4dC11dGlsaXRpZXMnO1xuXG4vLyBUZXh0IHRyYW5zZm9ybWF0aW9uIGNsYXNzZXNcbkBpbXBvcnQgJ3RleHQtdHJhbnNmb3JtYXRpb24nO1xuXG4vLyBUZXh0IERlY29yYXRpb24gY2xhc3Nlc1xuQGltcG9ydCAndGV4dC1kZWNvcmF0aW9uJztcblxuLy8gRm9udCBTdHlsaW5nXG5AaW1wb3J0ICdmb250LXN0eWxpbmcnO1xuXG4vLyBMaXN0IFN0eWxlIHR5cGVcbkBpbXBvcnQgJ2xpc3Qtc3R5bGUtdHlwZSc7XG5cbi8vIFJvdW5kZWQgVXRpbGl0eVxuQGltcG9ydCAncm91bmRlZCc7XG5cbi8vIEJvcmRlcmVkIFV0aWxpdHlcbkBpbXBvcnQgJ2JvcmRlcmVkJztcblxuLy8gU2hhZG93IFV0aWxpdHlcbkBpbXBvcnQgJ3NoYWRvdyc7XG5cbi8vIEFycm93IFV0aWxpdHlcbkBpbXBvcnQgJ2Fycm93JztcblxuLy8gU2VwYXJhdG9yIFV0aWxpdHlcbkBpbXBvcnQgJ3NlcGFyYXRvcic7XG5cbi8vIE92ZXJmbG93IGhlbHBlciBjbGFzc2VzXG5AaW1wb3J0ICdvdmVyZmxvdyc7XG5cbi8vIERpc3BsYXkgY2xhc3Nlc1xuQGltcG9ydCAnZGlzcGxheSc7XG5cbi8vIFBvc2l0aW9uIEhlbHBlcnNcbkBpbXBvcnQgJ3Bvc2l0aW9uJztcblxuLy8gQm9yZGVyIGJveFxuQGltcG9ydCAnYm9yZGVyLWJveCc7XG5cbi8vIEJvcmRlciBub25lIFV0aWx0eVxuQGltcG9ydCAnYm9yZGVyLW5vbmUnO1xuXG4vLyBTaXppbmcgVXRpbGl0aWVzXG5AaW1wb3J0ICdzaXppbmcnO1xuXG4vLyBTcGFjaW5nIFV0aWxpdGllc1xuQGltcG9ydCAnc3BhY2luZyc7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXByb3RvdHlwZS1jbGFzc2VzIHtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1wcm90b3R5cGUtdGV4dC11dGlsaXRpZXM7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcHJvdG90eXBlLXRleHQtdHJhbnNmb3JtYXRpb247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcHJvdG90eXBlLXRleHQtZGVjb3JhdGlvbjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1wcm90b3R5cGUtZm9udC1zdHlsaW5nO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXByb3RvdHlwZS1saXN0LXN0eWxlLXR5cGU7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcHJvdG90eXBlLXJvdW5kZWQ7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcHJvdG90eXBlLWJvcmRlcmVkO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXByb3RvdHlwZS1zaGFkb3c7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcHJvdG90eXBlLWFycm93O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXByb3RvdHlwZS1zZXBhcmF0b3I7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcHJvdG90eXBlLW92ZXJmbG93O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXByb3RvdHlwZS1kaXNwbGF5O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXByb3RvdHlwZS1wb3NpdGlvbjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1wcm90b3R5cGUtYm9yZGVyLWJveDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1wcm90b3R5cGUtYm9yZGVyLW5vbmU7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcHJvdG90eXBlLXNpemluZztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1wcm90b3R5cGUtc3BhY2luZztcbn1cbiIsIi8vLyBTZWxlY3QgYWxsIGNoaWxkcmVuIGZyb20gdGhlIGZpcnN0IHRvIGAkbnVtYC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJG51bVtdIEZpcnN0IGBuYCBudW1iZXJzIG9mIHRvdGFsIGNoaWxkcmVuIFxuQG1peGluIGZpcnN0KCRudW0pIHtcbiAgQGlmICRudW0gPT0gMSB7XG4gICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgICY6bnRoLWNoaWxkKC1uICsgI3skbnVtfSkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBTZWxlY3QgdGhlIGZpcnN0IGV4YWN0IGNoaWxkXG5AbWl4aW4gZmlyc3QtY2hpbGQge1xuICAmOmZpcnN0LW9mLXR5cGUge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vLyBTZWxlY3QgYWxsIGNoaWxkcmVuIGZyb20gdGhlIGxhc3QgdG8gYCRudW1gLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbnVtW10gTGFzdCBgbmAgbnVtYmVycyBvZiB0b3RhbCBjaGlsZHJlbiBcbkBtaXhpbiBsYXN0KCRudW0pIHtcbiAgJjpudGgtbGFzdC1jaGlsZCgtbiArICN7JG51bX0pIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLy8gU2VsZWN0IHRoZSBsYXN0IGV4YWN0IGNoaWxkXG5AbWl4aW4gbGFzdC1jaGlsZCB7XG4gICY6bGFzdC1vZi10eXBlIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLy8gU2VsZWN0IGNoaWxkcmVuIGV2ZXJ5IGAkbnVtYC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJG51bVtdIEV2ZXJ5IGBuYCBudW1iZXIgb2YgYWxsIGNoaWxkcmVuXG5AbWl4aW4gZXZlcnkoJG51bSkge1xuICAmOm50aC1jaGlsZCgjeyRudW19bikge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vLyBTZWxlY3Qgb25seSB0aGUgZmlyc3QgYW5kIGxhc3QgY2hpbGQuXG5AbWl4aW4gZmlyc3QtbGFzdCB7XG4gICY6Zmlyc3QtY2hpbGQsXG4gICY6bGFzdC1jaGlsZCB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8vIFNlbGVjdCBhbGwgY2hpbGRyZW4gYWZ0ZXIgdGhlIGZpcnN0IHRvIGAkbnVtYC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJG51bVtdIEFmdGVyIEZpcnN0IGBuYCBudW1iZXJzIG9mIHRvdGFsIGNoaWxkcmVuIFxuQG1peGluIGFmdGVyLWZpcnN0KCRudW0pIHtcbiAgJjpudGgtY2hpbGQobiArICN7JG51bSArIDF9KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8vIFNlbGVjdCBhbGwgY2hpbGRyZW4gYmVmb3JlIGAkbnVtYCBmcm9tIHRoZSBsYXN0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbnVtW10gRnJvbSBMYXN0IGBuYCBudW1iZXJzIG9mIHRvdGFsIGNoaWxkcmVuIFxuQG1peGluIGZyb20tbGFzdCgkbnVtKSB7XG4gICY6bnRoLWxhc3QtY2hpbGQoI3skbnVtfSkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vLyBTZWxlY3QgdGhlIGAkbnVtYCBjaGlsZCBmcm9tIHRoZSBmaXJzdCBhbmQgdGhlIGAkbnVtYCBjaGlsZCBmcm9tIHRoZSBsYXN0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbnVtW10gYG5gIG51bWJlciBjYWxsZWQgZnJvbSBmaXJzdCBhbmQgbGFzdCBcbkBtaXhpbiBmcm9tLWZpcnN0LWxhc3QoJG51bSkge1xuICAmOm50aC1jaGlsZCgjeyRudW19KSxcbiAgJjpudGgtbGFzdC1jaGlsZCgjeyRudW19KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8vIFNlbGVjdCBhbGwgY2hpbGRyZW4gYnV0IGAkbnVtYC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJG51bVtdIGBuYCBudW1iZXIgdGhhdCBzaG91bGQgYmUgZXhjbHVkZWQgZnJvbSBhbGwgb3RoZXIgY2hpbGRyZW4gXG5AbWl4aW4gYWxsLWJ1dCgkbnVtKSB7XG4gICY6bm90KDpudGgtY2hpbGQoI3skbnVtfSkpIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLy8gU2VsZWN0IGFsbCBjaGlsZHJlbiBiZXR3ZWVuIHRoZSBgJG51bWAgZmlyc3QgYW5kIHRoZSBgJG51bWAgbGFzdC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJG51bVtdIGBuYCBudW1iZXIgZXhjbHVkZWQgZnJvbSBmaXJzdCBhbmQgbGFzdCBmcm9tIGFsbCBvdGhlciBjaGlsZHJlblxuQG1peGluIGFsbC1idXQtZmlyc3QtbGFzdCgkbnVtKSB7XG4gICY6bnRoLWNoaWxkKG4gKyAjeyRudW19KTpudGgtbGFzdC1jaGlsZChuICsgI3skbnVtfSkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vLyBXaWxsIG9ubHkgc2VsZWN0IHRoZSBjaGlsZCBpZiBpdOKAmXMgdW5pcXVlLiBUaGF0IG1lYW5zIHRoYXQgaWYgdGhlcmUgYXJlIGF0IGxlYXN0IDIgY2hpbGRyZW4sIHRoZSBzdHlsZSB3aWxsIG5vdCBiZSBhcHBsaWVkLlxuQG1peGluIHVuaXF1ZSB7XG4gICY6b25seS1jaGlsZCB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8vIFdpbGwgb25seSBzZWxlY3QgY2hpbGRyZW4gaWYgdGhleSBhcmUgbm90IHVuaXF1ZS4gVGhhdCBtZWFucyB0aGF0IGlmIHRoZXJlIGFyZSBhdCBsZWFzdCAyIGNoaWxkcmVuLCB0aGUgc3R5bGUgd2lsbCBiZSBhcHBsaWVkLlxuQG1peGluIG5vdC11bmlxdWUoKSB7XG4gICY6bm90KDpvbmx5LWNoaWxkKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8vIFNlbGVjdCBhbGwgY2hpbGRyZW4gYmV0d2VlbiBgJGZpcnN0YCBhbmQgYCRsYXN0YC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGZpcnN0W10gRmlyc3QgYG50aGAgbnVtYmVyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRsYXN0W10gTGFzdCBgbnRoYCBudW1iZXJcbkBtaXhpbiBiZXR3ZWVuKCRmaXJzdCwgJGxhc3QpIHtcbiAgJjpudGgtY2hpbGQobiArICN7JGZpcnN0fSk6bnRoLWNoaWxkKC1uICsgI3skbGFzdH0pIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLy8gU2VsZWN0IGFsbCBldmVuIGNoaWxkcmVuLlxuQG1peGluIGV2ZW4ge1xuICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8vIFNlbGVjdCBhbGwgZXZlbiBjaGlsZHJlbiBiZXR3ZWVuIGAkZmlyc3RgIGFuZCBgJGxhc3RgLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZmlyc3RbXSBGaXJzdCBgbnRoYCBudW1iZXJcbi8vLyBAcGFyYW0ge051bWJlcn0gJGxhc3RbXSBMYXN0IGBudGhgIG51bWJlclxuQG1peGluIGV2ZW4tYmV0d2VlbigkZmlyc3QsICRsYXN0KSB7XG4gICY6bnRoLWNoaWxkKGV2ZW4pOm50aC1jaGlsZChuICsgI3skZmlyc3R9KTpudGgtY2hpbGQoLW4gKyAjeyRsYXN0fSkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vLyBTZWxlY3QgYWxsIG9kZCBjaGlsZHJlbi5cbkBtaXhpbiBvZGQge1xuICAmOm50aC1jaGlsZChvZGQpIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLy8gU2VsZWN0IGFsbCBvZGQgY2hpbGRyZW4gYmV0d2VlbiBgJGZpcnN0YCBhbmQgYCRsYXN0YC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGZpcnN0W10gRmlyc3QgYG50aGAgbnVtYmVyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRsYXN0W10gTGFzdCBgbnRoYCBudW1iZXJcbkBtaXhpbiBvZGQtYmV0d2VlbigkZmlyc3QsICRsYXN0KSB7XG4gICY6bnRoLWNoaWxkKG9kZCk6bnRoLWNoaWxkKG4gKyAjeyRmaXJzdH0pOm50aC1jaGlsZCgtbiArICN7JGxhc3R9KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8vIFNlbGVjdCBhbGwgYCRudW1gIGNoaWxkcmVuIGJldHdlZW4gYCRmaXJzdGAgYW5kIGAkbGFzdGAuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRudW1bXSBFdmVyeSBgbmAgbnVtYmVyIGJldHdlZW4gYCRmaXJzdGAgYW5kIGAkbGFzdGAuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRmaXJzdFtdIEZpcnN0IGBuYCBudW1iZXJcbi8vLyBAcGFyYW0ge051bWJlcn0gJGxhc3RbXSBMYXN0IGBuYCBudW1iZXJcbkBtaXhpbiBudW1iZXItYmV0d2VlbigkbnVtLCAkZmlyc3QsICRsYXN0KSB7XG4gICY6bnRoLWNoaWxkKCN7JG51bX1uKTpudGgtY2hpbGQobiArICN7JGZpcnN0fSk6bnRoLWNoaWxkKC1uICsgI3skbGFzdH0pIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcHJvdG90eXBlLWJveFxuLy8vL1xuXG4vLy8gQm94IE1peGluOiBFYXNpbHkgY3JlYXRlIGEgc3F1YXJlLCByZWN0YW5nbGUgb3IgYSBjaXJjbGVcbi8vLyBAcGFyYW0ge051bWJlcn0gJHdpZHRoW10gV2lkdGggb2YgdGhlIGJveFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkaGVpZ2h0WyR3aWR0aF0gSGVpZ2h0IG9mIHRoZSBib3gsIGRlZmF1bHRzIHRvIGAkd2lkdGhgIHRvIGVhc2lseSBtYWtlIGEgc3F1YXJlXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkY2lyY2xlW2ZhbHNlXSBNYWtlcyB0aGUgYm94IGEgY2lyY2xlLCBieSBkZWZhdWx0IGBmYWxzZWAuXG5AbWl4aW4gYm94KFxuICAkd2lkdGgsIFxuICAkaGVpZ2h0OiAkd2lkdGgsIFxuICAkY2lyY2xlOiBmYWxzZVxuKSB7XG4gIHdpZHRoOiAkd2lkdGg7XG4gIGhlaWdodDogJGhlaWdodDtcbiAgQGlmICRjaXJjbGUge1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJSAhaW1wb3J0YW50O1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBwcm90b3R5cGUtcm90YXRlXG4vLy8vXG5cbi8vLyBSb3RhdGUgTWl4aW46IFJvdGF0ZSBhbiBlbGVtZW50IHRvIGEgY2VydGFpbiBkZWdcbi8vLyBAcGFyYW0ge051bWJlcn0gJGRlZ1tdIERlZ3JlZSBvZiByb3RhdGlvblxuQG1peGluIHJvdGF0ZSgkZGVnKSB7XG5cdHRyYW5zZm9ybTpyb3RhdGUoJGRlZyArIGRlZyk7XG59XG5cbi8vLyBSb3RhdGVYIE1peGluOiBSb3RhdGUgYW4gZWxlbWVudCB0byBhIGNlcnRhaW4gZGVnIG9uIFgtQXhpc1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZGVnW10gRGVncmVlIG9mIHJvdGF0aW9uXG5AbWl4aW4gcm90YXRlWCgkZGVnKSB7XG5cdHRyYW5zZm9ybTpyb3RhdGVYKCRkZWcgKyBkZWcpO1xufVxuXG4vLy8gUm90YXRlWSBNaXhpbjogUm90YXRlIGFuIGVsZW1lbnQgdG8gYSBjZXJ0YWluIGRlZyBvbiBZLUF4aXNcbi8vLyBAcGFyYW0ge051bWJlcn0gJGRlZ1tdIERlZ3JlZSBvZiByb3RhdGlvblxuQG1peGluIHJvdGF0ZVkoJGRlZykge1xuXHR0cmFuc2Zvcm06cm90YXRlWSgkZGVnICsgZGVnKTtcbn1cblxuLy8vIFJvdGF0ZVogTWl4aW46IFJvdGF0ZSBhbiBlbGVtZW50IHRvIGEgY2VydGFpbiBkZWcgb24gWi1BeGlzXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRkZWdbXSBEZWdyZWUgb2Ygcm90YXRpb25cbkBtaXhpbiByb3RhdGVaKCRkZWcpIHtcblx0dHJhbnNmb3JtOnJvdGF0ZVooJGRlZyArIGRlZyk7XG59IiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcHJvdG90eXBlLXRleHQtdXRpbGl0aWVzXG4vLy8vXG5cbi8vLyBSZXNwb25zaXZlIGJyZWFrcG9pbnRzIGZvciB0ZXh0IHV0aWxpdGllc1xuLy8vIEB0eXBlIEJvb2xlYW5cbiRwcm90b3R5cGUtdXRpbGl0aWVzLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cyAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgVmFsdWUgZm9yIGB0ZXh0LW92ZXJmbG93YCB2YXJpYWJsZVxuLy8vIEB0eXBlIFN0cmluZ1xuJHByb3RvdHlwZS10ZXh0LW92ZXJmbG93OiBlbGxpcHNpcyAhZGVmYXVsdDtcblxuLy8vIEltYWdlIFJlcGxhY2VtZW50IHV0aWxpdHkuIGB0ZXh0LWhpZGVgXG5AbWl4aW4gdGV4dC1oaWRlIHtcbiAgZm9udDogMC8wIGEgIWltcG9ydGFudDtcbiAgY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIHRleHQtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMCAhaW1wb3J0YW50O1xufVxuXG4vLy8gVHJ1bmNhdGluZyB0aGUgdGV4dCwgZWxpcHNpcyBieSBkZWZhdWx0LlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3ZlcmZsb3cgWyRwcm90b3R5cGUtdGV4dC1vdmVyZmxvd10gVGV4dCBUcnVuY2F0ZVxuQG1peGluIHRleHQtdHJ1bmNhdGUoXG4gICRvdmVyZmxvdzogJHByb3RvdHlwZS10ZXh0LW92ZXJmbG93XG4pIHtcbiAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcbiAgdGV4dC1vdmVyZmxvdzogJG92ZXJmbG93OyBcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcCAhaW1wb3J0YW50O1xufVxuXG4vLy8gTm8gd3JhcHBpbmcgb2YgdGhlIHRleHQuIGB0ZXh0LW5vd3JhcGBcbkBtaXhpbiB0ZXh0LW5vd3JhcCB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXAgIWltcG9ydGFudDtcbn1cblxuLy8vIFdyYXBwaW5nIG9mIHRoZSB0ZXh0LiBgdGV4dC13cmFwYFxuQG1peGluIHRleHQtd3JhcCB7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZCAhaW1wb3J0YW50O1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1wcm90b3R5cGUtdGV4dC11dGlsaXRpZXMge1xuICAudGV4dC1oaWRlIHtcbiAgICBAaW5jbHVkZSB0ZXh0LWhpZGU7XG4gIH1cblxuICAudGV4dC10cnVuY2F0ZSB7XG4gICAgQGluY2x1ZGUgdGV4dC10cnVuY2F0ZTtcbiAgfVxuXG4gIC50ZXh0LW5vd3JhcCB7XG4gICAgQGluY2x1ZGUgdGV4dC1ub3dyYXA7XG4gIH1cblxuICAudGV4dC13cmFwIHtcbiAgICBAaW5jbHVkZSB0ZXh0LXdyYXA7XG4gIH1cblxuICBAaWYgKCRwcm90b3R5cGUtdXRpbGl0aWVzLWJyZWFrcG9pbnRzKSB7XG4gICAgLy8gTG9vcCB0aHJvdWdoIFJlc3BvbnNpdmUgQnJlYWtwb2ludHNcbiAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAuI3skc2l6ZX0tdGV4dC1oaWRlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRleHQtaGlkZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAuI3skc2l6ZX0tdGV4dC10cnVuY2F0ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0ZXh0LXRydW5jYXRlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC4jeyRzaXplfS10ZXh0LW5vd3JhcCB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0ZXh0LW5vd3JhcDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAuI3skc2l6ZX0tdGV4dC13cmFwIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRleHQtd3JhcDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHByb3RvdHlwZS10ZXh0LXRyYW5zZm9ybWF0aW9uXG4vLy8vXG5cbi8vLyBSZXNwb25zaXZlIGJyZWFrcG9pbnRzIGZvciB0ZXh0IHRyYW5zZm9ybWF0aW9uIGNsYXNzZXNcbi8vLyBAdHlwZSBCb29sZWFuXG4kcHJvdG90eXBlLXRyYW5zZm9ybWF0aW9uLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cyAhZGVmYXVsdDtcblxuLy8vIE1hcCBjb250YWluaW5nIGFsbCB0aGUgYHRleHQtdHJhbnNmb3JtYXRpb25gIGNsYXNzZXNcbi8vLyBAdHlwZSBNYXBcbiRwcm90b3R5cGUtdGV4dC10cmFuc2Zvcm1hdGlvbjogKFxuICBsb3dlcmNhc2UsXG4gIHVwcGVyY2FzZSxcbiAgY2FwaXRhbGl6ZVxuKSAhZGVmYXVsdDtcblxuLy8vIFRleHQgVHJhbnNmb3JtYXRpb24sIGJ5IGRlZmF1bHQgY29taW5nIHRocm91Z2ggYSBtYXAgYCRwcm90b3R5cGUtdGV4dC10cmFuc2Zvcm1hdGlvbmBcbi8vLyBAcGFyYW0ge1N0cmluZ30gJHRyYW5zZm9ybWF0aW9uIFtdIFRleHQgVHJhbnNmb3JtYXRpb25cbkBtaXhpbiB0ZXh0LXRyYW5zZm9ybSgkdHJhbnNmb3JtYXRpb24pIHtcbiAgdGV4dC10cmFuc2Zvcm06ICR0cmFuc2Zvcm1hdGlvbiAhaW1wb3J0YW50O1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1wcm90b3R5cGUtdGV4dC10cmFuc2Zvcm1hdGlvbiB7XG4gIEBlYWNoICR0cmFuc2Zvcm1hdGlvbiBpbiAkcHJvdG90eXBlLXRleHQtdHJhbnNmb3JtYXRpb24ge1xuICAgIC50ZXh0LSN7JHRyYW5zZm9ybWF0aW9ufSB7XG4gICAgICBAaW5jbHVkZSB0ZXh0LXRyYW5zZm9ybSgkdHJhbnNmb3JtYXRpb24pO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAoJHByb3RvdHlwZS10cmFuc2Zvcm1hdGlvbi1icmVha3BvaW50cykge1xuICAgIC8vIExvb3AgdGhyb3VnaCBSZXNwb25zaXZlIEJyZWFrcG9pbnRzXG4gIFx0QGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgIEBlYWNoICR0cmFuc2Zvcm1hdGlvbiBpbiAkcHJvdG90eXBlLXRleHQtdHJhbnNmb3JtYXRpb24ge1xuICAgICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgICAuI3skc2l6ZX0tdGV4dC0jeyR0cmFuc2Zvcm1hdGlvbn0ge1xuICBcdFx0XHQgICAgICBAaW5jbHVkZSB0ZXh0LXRyYW5zZm9ybSgkdHJhbnNmb3JtYXRpb24pO1xuICBcdFx0XHQgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcHJvdG90eXBlLXRleHQtZGVjb3JhdGlvblxuLy8vL1xuXG4vLy8gUmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3IgdGV4dCBkZWNvcmF0aW9uIGNsYXNzZXNcbi8vLyBAdHlwZSBCb29sZWFuXG4kcHJvdG90eXBlLWRlY29yYXRpb24tYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzICFkZWZhdWx0O1xuXG4vLy8gTWFwIGNvbnRhaW5pbmcgYWxsIHRoZSBgdGV4dC1kZWNvcmF0aW9uYCBjbGFzc2VzXG4vLy8gQHR5cGUgTWFwXG4kcHJvdG90eXBlLXRleHQtZGVjb3JhdGlvbjogKFxuICBvdmVybGluZSxcbiAgdW5kZXJsaW5lLFxuICBsaW5lLXRocm91Z2gsXG4pICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBEZWNvcmF0aW9uLCBieSBkZWZhdWx0IGNvbWluZyB0aHJvdWdoIGEgbWFwIGAkcHJvdG90eXBlLXRleHQtZGVjb3JhdGlvbmBcbi8vLyBAcGFyYW0ge1N0cmluZ30gJGRlY29yYXRpb24gW10gVGV4dCBEZWNvcmF0aW9uXG5AbWl4aW4gdGV4dC1kZWNvcmF0aW9uKCRkZWNvcmF0aW9uKSB7XG4gIHRleHQtZGVjb3JhdGlvbjogJGRlY29yYXRpb24gIWltcG9ydGFudDtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tcHJvdG90eXBlLXRleHQtZGVjb3JhdGlvbiB7XG4gIEBlYWNoICRkZWNvcmF0aW9uIGluICRwcm90b3R5cGUtdGV4dC1kZWNvcmF0aW9uIHtcbiAgICAudGV4dC0jeyRkZWNvcmF0aW9ufSB7XG4gICAgICBAaW5jbHVkZSB0ZXh0LWRlY29yYXRpb24oJGRlY29yYXRpb24pO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAoJHByb3RvdHlwZS1kZWNvcmF0aW9uLWJyZWFrcG9pbnRzKSB7XG4gICAgLy8gTG9vcCB0aHJvdWdoIFJlc3BvbnNpdmUgQnJlYWtwb2ludHNcbiAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgQGVhY2ggJGRlY29yYXRpb24gaW4gJHByb3RvdHlwZS10ZXh0LWRlY29yYXRpb24ge1xuICAgICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgICAuI3skc2l6ZX0tdGV4dC0jeyRkZWNvcmF0aW9ufSB7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIHRleHQtZGVjb3JhdGlvbigkZGVjb3JhdGlvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBwcm90b3R5cGUtZm9udC1zdHlsaW5nXG4vLy8vXG5cbi8vLyBSZXNwb25zaXZlIGJyZWFrcG9pbnRzIGZvciBmb250IHN0eWxpbmcgdHlwZXNcbi8vLyBAdHlwZSBCb29sZWFuXG4kcHJvdG90eXBlLWZvbnQtYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzICFkZWZhdWx0O1xuXG4vLy8gTGV0dGVyIHNwYWNpbmcgZm9yIGAuZm9udC13aWRlYFxuLy8vIEB0eXBlIE51bWJlclxuJHByb3RvdHlwZS13aWRlLWxldHRlci1zcGFjaW5nOiByZW0tY2FsYyg0KSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgd2VpZ2h0IGZvciBgLmZvbnQtbm9ybWFsYCwgZGVmYXVsdGVkIHRvIGBnbG9iYWwtd2VpZ2h0LW5vcm1hbGBcbi8vLyBAdHlwZSBOdW1iZXJcbiRwcm90b3R5cGUtZm9udC1ub3JtYWw6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgd2VpZ2h0IGZvciBgLmZvbnQtYm9sZGAsIGRlZmF1bHRlZCB0byBgZ2xvYmFsLXdlaWdodC1ib2xkYFxuLy8vIEB0eXBlIE51bWJlclxuJHByb3RvdHlwZS1mb250LWJvbGQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdpZGUgbGV0dGVyIHNwYWNpbmchXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRsZXR0ZXItc3BhY2luZyBbJHByb3RvdHlwZS13aWRlLWxldHRlci1zcGFjaW5nXSBXaWRlIGxldHRlciBzcGFjaW5nIGZvciB0aGUgZm9udFxuQG1peGluIGZvbnQtd2lkZShcbiAgJGxldHRlci1zcGFjaW5nOiAkcHJvdG90eXBlLXdpZGUtbGV0dGVyLXNwYWNpbmdcbikge1xuICBsZXR0ZXItc3BhY2luZzogJGxldHRlci1zcGFjaW5nO1xufVxuXG4vLy8gRm9udCBXZWlnaHQgTm9ybWFsLCBkZWZhdWx0IHZhbHVlIGNvbWluZyB0aHJvdWdoIGBnbG9iYWwtd2VpZ2h0LW5vcm1hbGBcbi8vLyBAcGFyYW0ge051bWJlcn0gJHdlaWdodCBbJHByb3RvdHlwZS1mb250LW5vcm1hbF0gV2VpZ2h0IG9mIHRoZSBmb250IChub3JtYWwpXG5AbWl4aW4gZm9udC1ub3JtYWwoXG4gICR3ZWlnaHQ6ICRwcm90b3R5cGUtZm9udC1ub3JtYWxcbikge1xuICBmb250LXdlaWdodDogJHdlaWdodDtcbn1cblxuLy8vIEZvbnQgV2VpZ2h0IEJvbGQsIGRlZmF1bHQgdmFsdWUgY29taW5nIHRocm91Z2ggYGdsb2JhbC13ZWlnaHQtYm9sZGBcbi8vLyBAcGFyYW0ge051bWJlcn0gJHdlaWdodCBbJHByb3RvdHlwZS1mb250LWJvbGRdIFdlaWdodCBvZiB0aGUgZm9udCAoYm9sZClcbkBtaXhpbiBmb250LWJvbGQoXG4gICR3ZWlnaHQ6ICRwcm90b3R5cGUtZm9udC1ib2xkXG4pIHtcbiAgZm9udC13ZWlnaHQ6ICR3ZWlnaHQ7XG59XG5cbi8vLyBGb250IFN0eWxlIEl0YWxpY1xuQG1peGluIGZvbnQtaXRhbGljIHtcbiAgZm9udC1zdHlsZTogaXRhbGljICFpbXBvcnRhbnQ7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXByb3RvdHlwZS1mb250LXN0eWxpbmcge1xuICAuZm9udC13aWRle1xuICAgIEBpbmNsdWRlIGZvbnQtd2lkZTtcbiAgfVxuXG4gIC5mb250LW5vcm1hbCB7XG4gICAgQGluY2x1ZGUgZm9udC1ub3JtYWw7XG4gIH1cblxuICAuZm9udC1ib2xkIHtcbiAgICBAaW5jbHVkZSBmb250LWJvbGQ7XG4gIH1cblxuICAuZm9udC1pdGFsaWMge1xuICAgIEBpbmNsdWRlIGZvbnQtaXRhbGljO1xuICB9XG5cbiAgQGlmICgkcHJvdG90eXBlLWZvbnQtYnJlYWtwb2ludHMpIHtcbiAgICAvLyBMb29wIHRocm91Z2ggUmVzcG9uc2l2ZSBCcmVha3BvaW50c1xuICAgIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgIC4jeyRzaXplfS1mb250LXdpZGV7XG4gICAgICAgICAgICBAaW5jbHVkZSBmb250LXdpZGU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLiN7JHNpemV9LWZvbnQtbm9ybWFsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZvbnQtbm9ybWFsO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC4jeyRzaXplfS1mb250LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgZm9udC1ib2xkO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC4jeyRzaXplfS1mb250LWl0YWxpYyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBmb250LWl0YWxpYztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHByb3RvdHlwZS1saXN0LXN0eWxlLXR5cGVcbi8vLy9cblxuLy8vIFJlc3BvbnNpdmUgYnJlYWtwb2ludHMgZm9yIGxpc3Qgc3R5bGluZyB0eXBlc1xuLy8vIEB0eXBlIEJvb2xlYW5cbiRwcm90b3R5cGUtbGlzdC1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHMgIWRlZmF1bHQ7XG5cbi8vLyBNYXAgY29udGFpbmluZyBhbGwgdGhlIGBzdHlsZS10eXBlLXVub3JkZXJlZGAgY2xhc3Nlc1xuLy8vIEB0eXBlIE1hcFxuJHByb3RvdHlwZS1zdHlsZS10eXBlLXVub3JkZXJlZDogKFxuICBkaXNjLFxuICBjaXJjbGUsXG4gIHNxdWFyZVxuKSAhZGVmYXVsdDtcblxuLy8vIE1hcCBjb250YWluaW5nIGFsbCB0aGUgYHN0eWxlLXR5cGUtb3JkZXJlZGAgY2xhc3Nlc1xuLy8vIEB0eXBlIE1hcFxuJHByb3RvdHlwZS1zdHlsZS10eXBlLW9yZGVyZWQ6IChcbiAgZGVjaW1hbCxcbiAgbG93ZXItYWxwaGEsXG4gIGxvd2VyLWxhdGluLFxuICBsb3dlci1yb21hbixcbiAgdXBwZXItYWxwaGEsXG4gIHVwcGVyLWxhdGluLFxuICB1cHBlci1yb21hblxuKSAhZGVmYXVsdDtcblxuXG4vLy8gU3R5bGUgdHlwZSBmb3IgdW5vcmRlcmVkIExpc3RzLCBieSBkZWZhdWx0IGNvbWluZyB0aHJvdWdoIGEgbWFwIGAkcHJvdG90eXBlLXN0eWxlLXR5cGUtdW5vcmRlcmVkYFxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc3R5bGUtdHlwZS11bm9yZGVyZWQgW10gU3R5bGUgdHlwZSBmb3IgdW5vcmRlcmVkIExpc3RzXG5AbWl4aW4gc3R5bGUtdHlwZS11bm9yZGVyZWQoJHN0eWxlLXR5cGUtdW5vcmRlcmVkKSB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogJHN0eWxlLXR5cGUtdW5vcmRlcmVkICFpbXBvcnRhbnQ7XG59XG5cbi8vLyBTdHlsZSB0eXBlIGZvciBvcmRlcmVkIExpc3RzLCBieSBkZWZhdWx0IGNvbWluZyB0aHJvdWdoIGEgbWFwIGAkcHJvdG90eXBlLXN0eWxlLXR5cGUtb3JkZXJlZGBcbi8vLyBAcGFyYW0ge1N0cmluZ30gJHN0eWxlLXR5cGUtb3JkZXJlZCBbXSBTdHlsZSB0eXBlIGZvciBvcmRlcmVkIExpc3RzXG5AbWl4aW4gc3R5bGUtdHlwZS1vcmRlcmVkKCRzdHlsZS10eXBlLW9yZGVyZWQpIHtcbiAgbGlzdC1zdHlsZS10eXBlOiAkc3R5bGUtdHlwZS1vcmRlcmVkICFpbXBvcnRhbnQ7XG59XG5cbkBtaXhpbiBsaXN0LXVub3JkZXJlZCB7XG4gIEBlYWNoICRzdHlsZS10eXBlLXVub3JkZXJlZCBpbiAkcHJvdG90eXBlLXN0eWxlLXR5cGUtdW5vcmRlcmVkIHtcbiAgICB1bC5saXN0LSN7JHN0eWxlLXR5cGUtdW5vcmRlcmVkfSB7XG4gICAgICBAaW5jbHVkZSBzdHlsZS10eXBlLXVub3JkZXJlZCgkc3R5bGUtdHlwZS11bm9yZGVyZWQpO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAoJHByb3RvdHlwZS1saXN0LWJyZWFrcG9pbnRzKSB7XG4gICAgLy8gTG9vcCB0aHJvdWdoIFJlc3BvbnNpdmUgQnJlYWtwb2ludHNcbiAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgQGVhY2ggJHN0eWxlLXR5cGUtdW5vcmRlcmVkIGluICRwcm90b3R5cGUtc3R5bGUtdHlwZS11bm9yZGVyZWQge1xuICAgICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgICB1bC4jeyRzaXplfS1saXN0LSN7JHN0eWxlLXR5cGUtdW5vcmRlcmVkfSB7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIHN0eWxlLXR5cGUtdW5vcmRlcmVkKCRzdHlsZS10eXBlLXVub3JkZXJlZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBsaXN0LW9yZGVyZWQge1xuICBAZWFjaCAkc3R5bGUtdHlwZS1vcmRlcmVkIGluICRwcm90b3R5cGUtc3R5bGUtdHlwZS1vcmRlcmVkIHtcbiAgICBvbC5saXN0LSN7JHN0eWxlLXR5cGUtb3JkZXJlZH0ge1xuICAgICAgQGluY2x1ZGUgc3R5bGUtdHlwZS1vcmRlcmVkKCRzdHlsZS10eXBlLW9yZGVyZWQpO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAoJHByb3RvdHlwZS1saXN0LWJyZWFrcG9pbnRzKSB7XG4gICAgLy8gTG9vcCB0aHJvdWdoIFJlc3BvbnNpdmUgQnJlYWtwb2ludHNcbiAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgQGVhY2ggJHN0eWxlLXR5cGUtb3JkZXJlZCBpbiAkcHJvdG90eXBlLXN0eWxlLXR5cGUtb3JkZXJlZCB7XG4gICAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAgIG9sLiN7JHNpemV9LWxpc3QtI3skc3R5bGUtdHlwZS1vcmRlcmVkfSB7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIHN0eWxlLXR5cGUtb3JkZXJlZCgkc3R5bGUtdHlwZS1vcmRlcmVkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tcHJvdG90eXBlLWxpc3Qtc3R5bGUtdHlwZSB7XG4gIEBpbmNsdWRlIGxpc3QtdW5vcmRlcmVkO1xuICBAaW5jbHVkZSBsaXN0LW9yZGVyZWQ7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBwcm90b3R5cGUtcm91bmRlZFxuLy8vL1xuXG4vLy8gUmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3Igcm91bmRlZCB1dGlsaXR5LlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRwcm90b3R5cGUtcm91bmRlZC1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHMgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHZhbHVlIGZvciBgcHJvdG90eXBlLWJvcmRlci1yYWRpdXNgXG4vLy8gQHR5cGUgTnVtYmVyXG4kcHJvdG90eXBlLWJvcmRlci1yYWRpdXM6IHJlbS1jYWxjKDMpICFkZWZhdWx0O1xuXG4vLy8gUm91bmRlZCB1dGlsaXR5IChhbGwgY29ybmVycyk6IEFkZHMgcmFkaXVzIGNvcm5lcnMgKGFsbCBjb3JuZXJzKSB0byBhbiBlbGVtZW50IGJ5IGRlZmF1bHQuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRyYWRpdXMgWyRwcm90b3R5cGUtYm9yZGVyLXJhZGl1c10gQm9yZGVyIHJhZGl1cyAoYWxsIGNvcm5lcnMpXG5AbWl4aW4gYm9yZGVyLXJhZGl1cyhcbiAgJHJhZGl1czogJHByb3RvdHlwZS1ib3JkZXItcmFkaXVzXG4pIHtcbiAgYm9yZGVyLXJhZGl1czogJHJhZGl1cztcbn1cblxuLy8vIFJvdW5kZWQgc3F1YXJlIHV0aWxpdHkgb3IgcmVjdGFuZ2xlIHV0aWxpdHkgKGFsbCBjb3JuZXJzKTogUm91bmRzIGFsbCBjb3JuZXJzIHRvIGFuIGVsZW1lbnQgYnkgZGVmYXVsdCB0byBtYWtlIGEgcGlsbCBzaGFwZS5cbkBtaXhpbiBib3JkZXItcm91bmRlZCB7XG4gIGJvcmRlci1yYWRpdXM6IDUwMDBweCAhaW1wb3J0YW50O1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1wcm90b3R5cGUtcm91bmRlZCB7XG4gIC5yb3VuZGVkIHtcbiAgICBAaW5jbHVkZSBib3JkZXItcm91bmRlZDtcbiAgfVxuXG4gIC5yYWRpdXMge1xuICAgIEBpbmNsdWRlIGJvcmRlci1yYWRpdXM7XG4gIH1cblxuICBAaWYgKCRwcm90b3R5cGUtcm91bmRlZC1icmVha3BvaW50cykge1xuICAgIC8vIExvb3AgdGhyb3VnaCBSZXNwb25zaXZlIEJyZWFrcG9pbnRzXG4gICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgLiN7JHNpemV9LXJvdW5kZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgYm9yZGVyLXJvdW5kZWQ7XG4gICAgICAgICAgfVxuICAgICAgICAgIC4jeyRzaXplfS1yYWRpdXMge1xuICAgICAgICAgICAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHByb3RvdHlwZS1ib3JkZXJlZFxuLy8vL1xuXG4vLy8gUmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3IgYm9yZGVyZWQgdXRpbGl0eS5cbi8vLyBAdHlwZSBCb29sZWFuXG4kcHJvdG90eXBlLWJvcmRlcmVkLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cyAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdmFsdWUgZm9yIGBwcm90b3R5cGUtYm9yZGVyLXdpZHRoYFxuLy8vIEB0eXBlIE51bWJlclxuJHByb3RvdHlwZS1ib3JkZXItd2lkdGg6IHJlbS1jYWxjKDEpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB2YWx1ZSBmb3IgYHByb3RvdHlwZS1ib3JkZXItdHlwZWBcbi8vLyBAdHlwZSBTdHJpbmdcbiRwcm90b3R5cGUtYm9yZGVyLXR5cGU6IHNvbGlkICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB2YWx1ZSBmb3IgYHByb3RvdHlwZS1ib3JkZXItY29sb3JgIGRlZmF1bHRlZCB0byBgbWVkaXVtLWdyYXlgXG4vLy8gQHR5cGUgQ29sb3JcbiRwcm90b3R5cGUtYm9yZGVyLWNvbG9yOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXJlZCBVdGlsaXR5OiBBZGRzIGEgbGlnaHQgYm9yZGVyIHRvIGFuIGVsZW1lbnQgYnkgZGVmYXVsdC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHdpZHRoIFskcHJvdG90eXBlLWJvcmRlci13aWR0aF0gV2lkdGggb2YgdGhlIGJvcmRlclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkdHlwZSBbJHByb3RvdHlwZS1ib3JkZXItdHlwZV0gVHlwZSBvZiB0aGUgYm9yZGVyXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskcHJvdG90eXBlLWJvcmRlci1jb2xvcl0gQ29sb3Igb2YgdGhlIGJvcmRlclxuQG1peGluIGJvcmRlcmVkKFxuICAkd2lkdGg6ICRwcm90b3R5cGUtYm9yZGVyLXdpZHRoLFxuICAkdHlwZTogJHByb3RvdHlwZS1ib3JkZXItdHlwZSxcbiAgJGNvbG9yOiAkcHJvdG90eXBlLWJvcmRlci1jb2xvclxuKSB7XG4gIGJvcmRlcjogJHdpZHRoICR0eXBlICRjb2xvcjtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tcHJvdG90eXBlLWJvcmRlcmVkIHtcbiAgLmJvcmRlcmVkIHtcbiAgICBAaW5jbHVkZSBib3JkZXJlZDtcbiAgfVxuXG4gIEBpZiAoJHByb3RvdHlwZS1ib3JkZXJlZC1icmVha3BvaW50cykge1xuICAgIC8vIExvb3AgdGhyb3VnaCBSZXNwb25zaXZlIEJyZWFrcG9pbnRzXG4gICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgLiN7JHNpemV9LWJvcmRlcmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJvcmRlcmVkO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcHJvdG90eXBlLXNoYWRvd1xuLy8vL1xuXG4vLy8gUmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3Igc2hhZG93IHV0aWxpdHkuXG4vLy8gQHR5cGUgQm9vbGVhblxuJHByb3RvdHlwZS1zaGFkb3ctYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB2YWx1ZSBmb3IgYHByb3RvdHlwZS1ib3gtc2hhZG93YFxuLy8vIEB0eXBlIE51bWJlclxuJHByb3RvdHlwZS1ib3gtc2hhZG93OiAwIDJweCA1cHggMCByZ2JhKDAsMCwwLC4xNiksXG4gICAgICAgICAgICAgICAgICAgICAgIDAgMnB4IDEwcHggMCByZ2JhKDAsMCwwLC4xMikgIWRlZmF1bHQ7XG5cbi8vLyBTaGFkb3cgVXRpbGl0eTogQWRkcyBhIGxpZ2h0IGJveCBzaGFkb3cgdG8gYW4gZWxlbWVudCBieSBkZWZhdWx0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc2hhZG93IFskcHJvdG90eXBlLWJveC1zaGFkb3ddIEJveCBTaGFkb3cgb2YgYSBjb21wb25lbnRcbkBtaXhpbiBzaGFkb3coXG4gICRzaGFkb3c6ICRwcm90b3R5cGUtYm94LXNoYWRvd1xuKSB7XG4gIGJveC1zaGFkb3c6ICRzaGFkb3c7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXByb3RvdHlwZS1zaGFkb3cge1xuICAuc2hhZG93IHtcbiAgICBAaW5jbHVkZSBzaGFkb3c7XG4gIH1cblxuICBAaWYgKCRwcm90b3R5cGUtc2hhZG93LWJyZWFrcG9pbnRzKSB7XG4gICAgLy8gTG9vcCB0aHJvdWdoIFJlc3BvbnNpdmUgQnJlYWtwb2ludHNcbiAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAuI3skc2l6ZX0tc2hhZG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNoYWRvdztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHByb3RvdHlwZS1hcnJvd1xuLy8vL1xuXG4vLy8gTWFwIGNvbnRhaW5pbmcgYWxsIHRoZSBgYXJyb3dgIGRpcmVjdGlvblxuLy8vIEB0eXBlIE1hcFxuJHByb3RvdHlwZS1hcnJvdy1kaXJlY3Rpb25zOiAoXG4gIGRvd24sXG4gIHVwLFxuICByaWdodCxcbiAgbGVmdFxuKSAhZGVmYXVsdDtcblxuLy8vIFdpZHRoIG9mIHRoZSBBcnJvdywgYDAuNDM3NXJlbWAgYnkgZGVmYXVsdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwcm90b3R5cGUtYXJyb3ctc2l6ZTogMC40Mzc1cmVtO1xuXG4vLy8gQ29sb3Igb2YgdGhlIEFycm93LCBgJGJsYWNrYCBieSBkZWZhdWx0LlxuLy8vIEB0eXBlIENvbG9yXG4kcHJvdG90eXBlLWFycm93LWNvbG9yOiAkYmxhY2s7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXByb3RvdHlwZS1hcnJvdyB7XG4gIEBlYWNoICRwcm90b3R5cGUtYXJyb3ctZGlyZWN0aW9uIGluICRwcm90b3R5cGUtYXJyb3ctZGlyZWN0aW9ucyB7XG4gICAgLmFycm93LSN7JHByb3RvdHlwZS1hcnJvdy1kaXJlY3Rpb259IHtcbiAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZShcbiAgICAgICAgJHByb3RvdHlwZS1hcnJvdy1zaXplLCBcbiAgICAgICAgJHByb3RvdHlwZS1hcnJvdy1jb2xvciwgXG4gICAgICAgICRwcm90b3R5cGUtYXJyb3ctZGlyZWN0aW9uXG4gICAgICApO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcHJvdG90eXBlLXNlcGFyYXRvclxuLy8vL1xuXG4vLy8gUmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3Igc2VwYXJhdG9yLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRwcm90b3R5cGUtc2VwYXJhdG9yLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cyAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYWxpZ25tZW50IG9mIGEgc2VwYXJhdG9yLlxuLy8vIEB0eXBlIFN0cmluZ1xuJHByb3RvdHlwZS1zZXBhcmF0b3ItYWxpZ246IGNlbnRlciAhZGVmYXVsdDtcblxuLy8vIEhlaWdodCBvZiBhIHNlcGFyYXRvci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwcm90b3R5cGUtc2VwYXJhdG9yLWhlaWdodDogcmVtLWNhbGMoMikgIWRlZmF1bHQ7XG5cbi8vLyBXaWR0aCBvZiBhIHNlcGFyYXRvci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwcm90b3R5cGUtc2VwYXJhdG9yLXdpZHRoOiAzcmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBvZiBhIHNlcGFyYXRvci5cbi8vLyBAdHlwZSBDb2xvclxuJHByb3RvdHlwZS1zZXBhcmF0b3ItYmFja2dyb3VuZDogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBUb3AgTWFyZ2luIG9mIGEgc2VwYXJhdG9yLlxuLy8vIEB0eXBlIE51bWJlclxuJHByb3RvdHlwZS1zZXBhcmF0b3ItbWFyZ2luLXRvcDogJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XG5cbi8vLyBUaXRsZSBzZXBhcmF0b3IgVXRpbGl0eSwgbW9zdGx5IHVzZWQgdG8gc3R5bGUgdGhlIG1haW4gaGVhZGluZyBvZiBhIHNlY3Rpb25cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGFsaWduIFskcHJvdG90eXBlLXNlcGFyYXRvci1hbGlnbl0gLSBzZXBhcmF0b3IgQWxpZ25tZW50XG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRoZWlnaHQgWyRwcm90b3R5cGUtc2VwYXJhdG9yLWhlaWdodF0gLSBXaWR0aFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2lkdGggWyRwcm90b3R5cGUtc2VwYXJhdG9yLXdpZHRoXSAtIEhlaWdodFxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kIFskcHJvdG90eXBlLXNlcGFyYXRvci1iYWNrZ3JvdW5kXSAtIEJhY2tncm91bmRcbi8vLyBAcGFyYW0ge051bWJlcn0gJHRvcCBbJHByb3RvdHlwZS1zZXBhcmF0b3ItbWFyZ2luLXRvcF0gLSBNYXJnaW4gVG9wXG5AbWl4aW4gc2VwYXJhdG9yIChcbiAgJGFsaWduOiAkcHJvdG90eXBlLXNlcGFyYXRvci1hbGlnbixcbiAgJGhlaWdodDogJHByb3RvdHlwZS1zZXBhcmF0b3ItaGVpZ2h0LFxuICAkd2lkdGg6ICRwcm90b3R5cGUtc2VwYXJhdG9yLXdpZHRoLFxuICAkYmFja2dyb3VuZDogJHByb3RvdHlwZS1zZXBhcmF0b3ItYmFja2dyb3VuZCxcbiAgJHRvcDogJHByb3RvdHlwZS1zZXBhcmF0b3ItbWFyZ2luLXRvcFxuKSB7XG4gIHRleHQtYWxpZ246ICRhbGlnbiAhaW1wb3J0YW50O1xuXHRAaW5jbHVkZSBjbGVhcmZpeDtcblxuICAmOjphZnRlciB7XG4gICAgQGluY2x1ZGUgcG9zaXRpb24ocmVsYXRpdmUpO1xuICAgIHdpZHRoOiAkd2lkdGg7XG4gICAgYm9yZGVyLWJvdHRvbTogJGhlaWdodCBzb2xpZCAkYmFja2dyb3VuZDtcbiAgICBtYXJnaW46ICR0b3AgYXV0byAwO1xuXG4gICAgQGlmICRhbGlnbiA9PSBsZWZ0IHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgQGlmICRhbGlnbiA9PSByaWdodCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tcHJvdG90eXBlLXNlcGFyYXRvciB7XG5cdC5zZXBhcmF0b3ItY2VudGVyIHtcblx0XHRAaW5jbHVkZSBzZXBhcmF0b3IoY2VudGVyKTtcblx0fVxuXG4gIC5zZXBhcmF0b3ItbGVmdCB7XG4gICAgQGluY2x1ZGUgc2VwYXJhdG9yKGxlZnQpO1xuICB9XG5cbiAgLnNlcGFyYXRvci1yaWdodCB7XG4gICAgQGluY2x1ZGUgc2VwYXJhdG9yKHJpZ2h0KTtcbiAgfVxuXG5cdEBpZiAoJHByb3RvdHlwZS1zZXBhcmF0b3ItYnJlYWtwb2ludHMpIHtcbiAgICAvLyBMb29wIHRocm91Z2ggUmVzcG9uc2l2ZSBCcmVha3BvaW50c1xuICAgIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgIC4jeyRzaXplfS1zZXBhcmF0b3ItY2VudGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNlcGFyYXRvcihjZW50ZXIpO1xuICAgICAgICAgIH1cbiAgICAgICAgICAuI3skc2l6ZX0tc2VwYXJhdG9yLWxlZnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2VwYXJhdG9yKGxlZnQpO1xuICAgICAgICAgIH1cbiAgICAgICAgICAuI3skc2l6ZX0tc2VwYXJhdG9yLXJpZ2h0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNlcGFyYXRvcihyaWdodCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBwcm90b3R5cGUtb3ZlcmZsb3dcbi8vLy9cblxuLy8vIFJlc3BvbnNpdmUgYnJlYWtwb2ludHMgZm9yIG92ZXJmbG93IGhlbHBlciBjbGFzc2VzXG4vLy8gQHR5cGUgQm9vbGVhblxuJHByb3RvdHlwZS1vdmVyZmxvdy1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHMgIWRlZmF1bHQ7XG5cbi8vLyBNYXAgY29udGFpbmluZyBhbGwgdGhlIGBvdmVyZmxvd2AgY2xhc3Nlc1xuLy8vIEB0eXBlIE1hcFxuJHByb3RvdHlwZS1vdmVyZmxvdzogKFxuICB2aXNpYmxlLFxuICBoaWRkZW4sXG4gIHNjcm9sbFxuKSAhZGVmYXVsdDtcblxuLy8vIE92ZXJmbG93IGNsYXNzZXMsIGJ5IGRlZmF1bHQgY29taW5nIHRocm91Z2ggYSBtYXAgYCRwcm90b3R5cGUtb3ZlcmZsb3dgXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvdmVyZmxvdyBbXSBPdmVyZmxvdyBjbGFzc2VzXG5AbWl4aW4gb3ZlcmZsb3coJG92ZXJmbG93KSB7XG4gIG92ZXJmbG93OiAkb3ZlcmZsb3cgIWltcG9ydGFudDtcbn1cblxuLy8vIE92ZXJmbG93IGNsYXNzZXMgb24gaG9yaXpvbnRhbCBheGlzLCBieSBkZWZhdWx0IGNvbWluZyB0aHJvdWdoIGEgbWFwIGAkcHJvdG90eXBlLW92ZXJmbG93YFxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3ZlcmZsb3cgW10gT3ZlcmZsb3cgY2xhc3NlcyAoaG9yaXpvbnRhbCBheGlzKVxuQG1peGluIG92ZXJmbG93LXgoJG92ZXJmbG93KSB7XG4gIG92ZXJmbG93LXg6ICRvdmVyZmxvdyAhaW1wb3J0YW50O1xufVxuXG4vLy8gT3ZlcmZsb3cgY2xhc3NlcyBvbiB2ZXJ0aWNhbCBheGlzLCBieSBkZWZhdWx0IGNvbWluZyB0aHJvdWdoIGEgbWFwIGAkcHJvdG90eXBlLW92ZXJmbG93YFxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3ZlcmZsb3cgW10gT3ZlcmZsb3cgY2xhc3NlcyAodmVydGljYWwgYXhpcylcbkBtaXhpbiBvdmVyZmxvdy15KCRvdmVyZmxvdykge1xuICBvdmVyZmxvdy15OiAkb3ZlcmZsb3cgIWltcG9ydGFudDtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tcHJvdG90eXBlLW92ZXJmbG93IHtcbiAgQGVhY2ggJG92ZXJmbG93IGluICRwcm90b3R5cGUtb3ZlcmZsb3cge1xuICAgIC5vdmVyZmxvdy0jeyRvdmVyZmxvd30ge1xuICAgICAgQGluY2x1ZGUgb3ZlcmZsb3coJG92ZXJmbG93KTtcbiAgICB9XG4gICAgLm92ZXJmbG93LXgtI3skb3ZlcmZsb3d9IHtcbiAgICAgIEBpbmNsdWRlIG92ZXJmbG93LXgoJG92ZXJmbG93KTtcbiAgICB9XG4gICAgLm92ZXJmbG93LXktI3skb3ZlcmZsb3d9IHtcbiAgICAgIEBpbmNsdWRlIG92ZXJmbG93LXkoJG92ZXJmbG93KTtcbiAgICB9XG4gIH1cblxuICBAaWYgKCRwcm90b3R5cGUtb3ZlcmZsb3ctYnJlYWtwb2ludHMpIHtcbiAgICAvLyBMb29wIHRocm91Z2ggUmVzcG9uc2l2ZSBCcmVha3BvaW50c1xuICAgIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgICBAZWFjaCAkb3ZlcmZsb3cgaW4gJHByb3RvdHlwZS1vdmVyZmxvdyB7XG4gICAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAgIC4jeyRzaXplfS1vdmVyZmxvdy0jeyRvdmVyZmxvd30ge1xuICAgICAgICAgICAgICBAaW5jbHVkZSBvdmVyZmxvdygkb3ZlcmZsb3cpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLiN7JHNpemV9LW92ZXJmbG93LXgtI3skb3ZlcmZsb3d9IHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgb3ZlcmZsb3cteCgkb3ZlcmZsb3cpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLiN7JHNpemV9LW92ZXJmbG93LXktI3skb3ZlcmZsb3d9IHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgb3ZlcmZsb3cteSgkb3ZlcmZsb3cpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcHJvdG90eXBlLWRpc3BsYXlcbi8vLy9cblxuLy8vIFJlc3BvbnNpdmUgYnJlYWtwb2ludHMgZm9yIGRpc3BsYXkgY2xhc3Nlc1xuLy8vIEB0eXBlIEJvb2xlYW5cbiRwcm90b3R5cGUtZGlzcGxheS1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHMgIWRlZmF1bHQ7XG5cbi8vLyBNYXAgY29udGFpbmluZyBhbGwgdGhlIGBkaXNwbGF5YCBjbGFzc2VzXG4vLy8gQHR5cGUgTWFwXG4kcHJvdG90eXBlLWRpc3BsYXk6IChcbiAgaW5saW5lLFxuICBpbmxpbmUtYmxvY2ssXG4gIGJsb2NrLFxuICB0YWJsZSxcbiAgdGFibGUtY2VsbFxuKSAhZGVmYXVsdDtcblxuLy8vIERpc3BsYXkgY2xhc3NlcywgYnkgZGVmYXVsdCBjb21pbmcgdGhyb3VnaCBhIG1hcCBgJHByb3RvdHlwZS1kaXNwbGF5YFxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZGlzcGxheSBbXSBEaXNwbGF5IGNsYXNzZXNcbkBtaXhpbiBkaXNwbGF5KCRkaXNwbGF5KSB7XG4gIGRpc3BsYXk6ICRkaXNwbGF5ICFpbXBvcnRhbnQ7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXByb3RvdHlwZS1kaXNwbGF5IHtcbiAgQGVhY2ggJGRpc3BsYXkgaW4gJHByb3RvdHlwZS1kaXNwbGF5IHtcbiAgICAuZGlzcGxheS0jeyRkaXNwbGF5fSB7XG4gICAgICBAaW5jbHVkZSBkaXNwbGF5KCRkaXNwbGF5KTtcbiAgICB9XG4gIH1cblxuICBAaWYgKCRwcm90b3R5cGUtZGlzcGxheS1icmVha3BvaW50cykge1xuICAgIC8vIExvb3AgdGhyb3VnaCBSZXNwb25zaXZlIEJyZWFrcG9pbnRzXG4gICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgIEBlYWNoICRkaXNwbGF5IGluICRwcm90b3R5cGUtZGlzcGxheSB7XG4gICAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAgIC4jeyRzaXplfS1kaXNwbGF5LSN7JGRpc3BsYXl9IHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgZGlzcGxheSgkZGlzcGxheSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBwcm90b3R5cGUtcG9zaXRpb25cbi8vLy9cblxuLy8vIFJlc3BvbnNpdmUgYnJlYWtwb2ludHMgZm9yIHBvc2l0aW9uIGhlbHBlcnNcbi8vLyBAdHlwZSBCb29sZWFuXG4kcHJvdG90eXBlLXBvc2l0aW9uLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cyAhZGVmYXVsdDtcblxuLy8vIE1hcCBjb250YWluaW5nIGFsbCB0aGUgYHBvc2l0aW9uYCBjbGFzc2VzXG4vLy8gQHR5cGUgTWFwXG4kcHJvdG90eXBlLXBvc2l0aW9uOiAoXG4gIHN0YXRpYyxcbiAgcmVsYXRpdmUsXG4gIGFic29sdXRlLFxuICBmaXhlZFxuKSAhZGVmYXVsdDtcblxuLy8vIHotaW5kZXggZm9yIGZpeGVkIHBvc2l0aW9uaW5nXG4vLy8gQHR5cGUgTnVtYmVyXG4kcHJvdG90eXBlLXBvc2l0aW9uLXotaW5kZXg6IDk3NSAhZGVmYXVsdDtcblxuLy8vIFBvc2l0aW9uIGNsYXNzZXMsIGJ5IGRlZmF1bHQgY29taW5nIHRocm91Z2ggYSBtYXAgYCRwcm90b3R5cGUtcG9zaXRpb25gLCB3aGVyZWFzIGFsbCB0aGUgb2Zmc2V0IHZhbHVlcyBhcmUgbXVsdGlwbGllZCBieSBgJGdsb2JhbC1wb3NpdGlvbmAgd2hpY2ggYnkgZGVmYXVsdCBpcyBlcXVhbCB0byBgMXJlbWAuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRwb3NpdGlvbiBbXSBQb3NpdGlvbiBjbGFzc2VzLCBFaXRoZXIgYHN0YXRpY2AsIGByZWxhdGl2ZWAsIGBhYnNvbHV0ZWAgb3IgYGZpeGVkYFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdG9wIFtudWxsXSAtIFRvcCBvZmZzZXRcbi8vLyBAcGFyYW0ge051bWJlcn0gJHJpZ2h0IFtudWxsXSAtIFJpZ2h0IG9mZnNldFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYm90dG9tIFtudWxsXSAtIEJvdHRvbSBvZmZzZXRcbi8vLyBAcGFyYW0ge051bWJlcn0gJGxlZnQgW251bGxdIC0gTGVmdCBvZmZzZXRcbkBtaXhpbiBwb3NpdGlvbihcbiAgJHBvc2l0aW9uLFxuICAkdG9wOiBudWxsLFxuICAkcmlnaHQ6IG51bGwsXG4gICRib3R0b206IG51bGwsXG4gICRsZWZ0OiBudWxsXG4pIHtcbiAgcG9zaXRpb246ICRwb3NpdGlvbiAhaW1wb3J0YW50O1xuICBAaWYgJHRvcCAhPSBudWxsIHtcbiAgICB0b3A6ICR0b3AgKiAkZ2xvYmFsLXBvc2l0aW9uICFpbXBvcnRhbnQ7XG4gIH1cbiAgQGlmICRyaWdodCAhPSBudWxsIHtcbiAgICByaWdodDogJHJpZ2h0ICogJGdsb2JhbC1wb3NpdGlvbiAhaW1wb3J0YW50O1xuICB9XG4gIEBpZiAkYm90dG9tICE9IG51bGwge1xuICAgIGJvdHRvbTogJGJvdHRvbSAqICRnbG9iYWwtcG9zaXRpb24gIWltcG9ydGFudDtcbiAgfVxuICBAaWYgJGxlZnQgIT0gbnVsbCB7XG4gICAgbGVmdDogJGxlZnQgKiAkZ2xvYmFsLXBvc2l0aW9uICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLy8vIFBvc2l0aW9uIEZpeGVkIG9uIHRvcCBjb3JuZXJzXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR6LWluZGV4IFskcHJvdG90eXBlLXBvc2l0aW9uLXotaW5kZXhdIHotaW5kZXggZm9yIGBwb3NpdGlvbi1maXhlZC10b3BgXG5AbWl4aW4gcG9zaXRpb24tZml4ZWQtdG9wKFxuICAkei1pbmRleDogJHByb3RvdHlwZS1wb3NpdGlvbi16LWluZGV4XG4pIHtcbiAgQGluY2x1ZGUgcG9zaXRpb24oZml4ZWQsIDAsIDAsIG51bGwsIDApO1xuICB6LWluZGV4OiAkei1pbmRleDtcbn1cblxuLy8vIFBvc2l0aW9uIEZpeGVkIG9uIGJvdHRvbSBjb3JuZXJzXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR6LWluZGV4IFskcHJvdG90eXBlLXBvc2l0aW9uLXotaW5kZXhdIHotaW5kZXggZm9yIGBwb3NpdGlvbi1maXhlZC1ib3R0b21gXG5AbWl4aW4gcG9zaXRpb24tZml4ZWQtYm90dG9tKFxuICAkei1pbmRleDogJHByb3RvdHlwZS1wb3NpdGlvbi16LWluZGV4XG4pIHtcbiAgQGluY2x1ZGUgcG9zaXRpb24oZml4ZWQsIG51bGwsIDAsIDAsIDApO1xuICB6LWluZGV4OiAkei1pbmRleDtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tcHJvdG90eXBlLXBvc2l0aW9uIHtcbiAgLy8gUG9zaXRpb246IFN0YXRpYywgUmVsYXRpdmUsIEZpeGVkLCBBYnNvbHV0ZVxuICBAZWFjaCAkcG9zaXRpb24gaW4gJHByb3RvdHlwZS1wb3NpdGlvbiB7XG4gICAgLnBvc2l0aW9uLSN7JHBvc2l0aW9ufSB7XG4gICAgICBAaW5jbHVkZSBwb3NpdGlvbigkcG9zaXRpb24pO1xuICAgIH1cbiAgfVxuXG4gIC8vIFBvc2l0aW9uOiBGaXhlZCBUb3AsIEZpeGVkIEJvdHRvbVxuICAucG9zaXRpb24tZml4ZWQtdG9wIHtcbiAgICBAaW5jbHVkZSBwb3NpdGlvbi1maXhlZC10b3A7XG4gIH1cbiAgLnBvc2l0aW9uLWZpeGVkLWJvdHRvbSB7XG4gICAgQGluY2x1ZGUgcG9zaXRpb24tZml4ZWQtYm90dG9tO1xuICB9XG5cbiAgQGlmICgkcHJvdG90eXBlLXBvc2l0aW9uLWJyZWFrcG9pbnRzKSB7XG4gICAgLy8gTG9vcCB0aHJvdWdoIFJlc3BvbnNpdmUgQnJlYWtwb2ludHNcbiAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgLy8gUG9zaXRpb246IFN0YXRpYywgUmVsYXRpdmUsIEZpeGVkLCBBYnNvbHV0ZVxuICAgICAgICBAZWFjaCAkcG9zaXRpb24gaW4gJHByb3RvdHlwZS1wb3NpdGlvbiB7XG4gICAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAgIC4jeyRzaXplfS1wb3NpdGlvbi0jeyRwb3NpdGlvbn0ge1xuICAgICAgICAgICAgICBAaW5jbHVkZSBwb3NpdGlvbigkcG9zaXRpb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFBvc2l0aW9uOiBGaXhlZCBUb3AsIEZpeGVkIEJvdHRvbVxuICAgICAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgIC4jeyRzaXplfS1wb3NpdGlvbi1maXhlZC10b3Age1xuICAgICAgICAgICAgQGluY2x1ZGUgcG9zaXRpb24tZml4ZWQtdG9wO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC4jeyRzaXplfS1wb3NpdGlvbi1maXhlZC1ib3R0b20ge1xuICAgICAgICAgICAgQGluY2x1ZGUgcG9zaXRpb24tZml4ZWQtYm90dG9tO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcHJvdG90eXBlLWJvcmRlci1ib3hcbi8vLy9cblxuLy8vIFJlc3BvbnNpdmUgYnJlYWtwb2ludHMgZm9yIGJvcmRlciBib3guXG4vLy8gQHR5cGUgQm9vbGVhblxuJHByb3RvdHlwZS1ib3JkZXItYm94LWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cyAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBib3ggdXRpbGl0eVxuQG1peGluIGJvcmRlci1ib3gge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94ICFpbXBvcnRhbnQ7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXByb3RvdHlwZS1ib3JkZXItYm94IHtcbiAgLmJvcmRlci1ib3gge1xuICAgIEBpbmNsdWRlIGJvcmRlci1ib3g7XG4gIH1cblxuICBAaWYgKCRwcm90b3R5cGUtYm9yZGVyLWJveC1icmVha3BvaW50cykge1xuICAgIC8vIExvb3AgdGhyb3VnaCBSZXNwb25zaXZlIEJyZWFrcG9pbnRzXG4gICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgLiN7JHNpemV9LWJvcmRlci1ib3gge1xuICAgICAgICAgICAgQGluY2x1ZGUgYm9yZGVyLWJveDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHByb3RvdHlwZS1ib3JkZXItbm9uZVxuLy8vL1xuXG4vLy8gUmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3IgYm9yZGVyIG5vbmUuXG4vLy8gQHR5cGUgQm9vbGVhblxuJHByb3RvdHlwZS1ib3JkZXItbm9uZS1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHMgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgbm9uZSB1dGlsaXR5XG5AbWl4aW4gYm9yZGVyLW5vbmUge1xuICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tcHJvdG90eXBlLWJvcmRlci1ub25lIHtcbiAgLmJvcmRlci1ub25lIHtcbiAgICBAaW5jbHVkZSBib3JkZXItbm9uZTtcbiAgfVxuXG4gIEBpZiAoJHByb3RvdHlwZS1ib3JkZXItbm9uZS1icmVha3BvaW50cykge1xuICAgIC8vIExvb3AgdGhyb3VnaCBSZXNwb25zaXZlIEJyZWFrcG9pbnRzXG4gICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgLiN7JHNpemV9LWJvcmRlci1ub25lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJvcmRlci1ub25lO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcHJvdG90eXBlLXNpemluZ1xuLy8vL1xuXG4vLy8gUmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3Igc3BhY2luZyBjbGFzc2VzIChtYXJnaW4gYW5kIHBhZGRpbmcpXG4vLy8gQHR5cGUgQm9vbGVhblxuJHByb3RvdHlwZS1zaXppbmctYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzICFkZWZhdWx0O1xuXG4vLy8gTWFwIGNvbnRhaW5pbmcgYWxsIHRoZSBgc2l6aW5nYCBjbGFzc2VzXG4vLy8gQHR5cGUgTWFwXG4kcHJvdG90eXBlLXNpemluZzogKFxuICB3aWR0aCxcbiAgaGVpZ2h0XG4pICFkZWZhdWx0O1xuXG4vLy8gTWFwIGNvbnRhaW5pbmcgYWxsIHRoZSBzaXplcy5cbi8vLyBAdHlwZSBNYXBcbiRwcm90b3R5cGUtc2l6ZXM6IChcbiAgMjU6IDI1JSxcbiAgNTA6IDUwJSxcbiAgNzU6IDc1JSxcbiAgMTAwOiAxMDAlXG4pICFkZWZhdWx0O1xuXG4vLy8gTWF4IFdpZHRoIDEwMCB1dGlsaXR5LlxuQG1peGluIG1heC13aWR0aC0xMDAge1xuICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbn1cblxuLy8vIE1heCBIZWlnaHQgMTAwIHV0aWxpdHkuXG5AbWl4aW4gbWF4LWhlaWdodC0xMDAge1xuICBtYXgtaGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXByb3RvdHlwZS1zaXppbmcge1xuICAvLyBFbGVtZW50IFNpemluZ1xuICBAZWFjaCAkc2l6aW5nIGluICRwcm90b3R5cGUtc2l6aW5nIHtcbiAgICBAZWFjaCAkbGVuZ3RoLCAkcGVyY2VudGFnZSBpbiAkcHJvdG90eXBlLXNpemVzIHtcbiAgICAgIC4jeyRzaXppbmd9LSN7JGxlbmd0aH0ge1xuICAgICAgICAjeyRzaXppbmd9OiAkcGVyY2VudGFnZSAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIE1heCB3aWR0aCAmIGhlaWdodFxuICAubWF4LXdpZHRoLTEwMCB7XG4gICAgQGluY2x1ZGUgbWF4LXdpZHRoLTEwMDtcbiAgfVxuICAubWF4LWhlaWdodC0xMDAge1xuICAgIEBpbmNsdWRlIG1heC1oZWlnaHQtMTAwO1xuICB9XG5cbiAgQGlmICgkcHJvdG90eXBlLXNpemluZy1icmVha3BvaW50cykge1xuICAgIC8vIExvb3AgdGhyb3VnaCBSZXNwb25zaXZlIEJyZWFrcG9pbnRzXG4gICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgQGVhY2ggJHNpemluZyBpbiAkcHJvdG90eXBlLXNpemluZyB7XG4gICAgICAgICAgICBAZWFjaCAkbGVuZ3RoLCAkcGVyY2VudGFnZSBpbiAkcHJvdG90eXBlLXNpemVzIHtcbiAgICAgICAgICAgICAgLiN7JHNpemV9LSN7JHNpemluZ30tI3skbGVuZ3RofSB7XG4gICAgICAgICAgICAgICAgI3skc2l6aW5nfTogJHBlcmNlbnRhZ2UgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcHJvdG90eXBlLXNwYWNpbmdcbi8vLy9cblxuLy8vIFJlc3BvbnNpdmUgYnJlYWtwb2ludHMgZm9yIHNwYWNpbmcgY2xhc3NlcyAobWFyZ2luIGFuZCBwYWRkaW5nKVxuLy8vIEB0eXBlIEJvb2xlYW5cbiRwcm90b3R5cGUtc3BhY2luZy1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHMgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IG51bWJlciBvZiBzcGFjZXJzIGNvdW50IChtYXJnaW4gYW5kIHBhZGRpbmcpXG4vLy8gQHR5cGUgTnVtYmVyXG4kcHJvdG90eXBlLXNwYWNlcnMtY291bnQ6IDMgIWRlZmF1bHQ7XG5cbi8vLyBNYXJnaW4gaGVscGVyIG1peGluLCBhbGwgdGhlIHZhbHVlcyBhcmUgbXVsdGlwbGllZCBieSBgJGdsb2JhbC1tYXJnaW5gIHdoaWNoIGJ5IGRlZmF1bHQgaXMgZXF1YWwgdG8gYDFyZW1gXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR0b3AgW251bGxdIC0gTWFyZ2luIFRvcFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkcmlnaHQgW251bGxdIC0gTWFyZ2luIFJpZ2h0XG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRib3R0b20gW251bGxdIC0gTWFyZ2luIEJvdHRvbVxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbGVmdCBbbnVsbF0gLSBNYXJnaW4gTGVmdFxuQG1peGluIG1hcmdpbihcbiAgJHRvcDogbnVsbCxcbiAgJHJpZ2h0OiBudWxsLFxuICAkYm90dG9tOiBudWxsLFxuICAkbGVmdDogbnVsbFxuKSB7XG4gIEBpZiAkdG9wICE9IG51bGwge1xuICAgIG1hcmdpbi10b3A6ICR0b3AgKiAkZ2xvYmFsLW1hcmdpbiAhaW1wb3J0YW50O1xuICB9XG4gIEBpZiAkcmlnaHQgIT0gbnVsbCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAkcmlnaHQgKiAkZ2xvYmFsLW1hcmdpbiAhaW1wb3J0YW50O1xuICB9XG4gIEBpZiAkYm90dG9tICE9IG51bGwge1xuICAgIG1hcmdpbi1ib3R0b206ICRib3R0b20gKiAkZ2xvYmFsLW1hcmdpbiAhaW1wb3J0YW50O1xuICB9XG4gIEBpZiAkbGVmdCAhPSBudWxsIHtcbiAgICBtYXJnaW4tbGVmdDogJGxlZnQgKiAkZ2xvYmFsLW1hcmdpbiAhaW1wb3J0YW50O1xuICB9XG59XG5cbi8vLyBQYWRkaW5nIGhlbHBlciBtaXhpbiwgYWxsIHRoZSB2YWx1ZXMgYXJlIG11bHRpcGxpZWQgYnkgYCRnbG9iYWwtcGFkZGluZ2Agd2hpY2ggYnkgZGVmYXVsdCBpcyBlcXVhbCB0byBgMXJlbWBcbi8vLyBAcGFyYW0ge051bWJlcn0gJHRvcCBbbnVsbF0gLSBQYWRkaW5nIFRvcFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkcmlnaHQgW251bGxdIC0gUGFkZGluZyBSaWdodFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYm90dG9tIFtudWxsXSAtIFBhZGRpbmcgQm90dG9tXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRsZWZ0IFtudWxsXSAtIFBhZGRpbmcgTGVmdFxuQG1peGluIHBhZGRpbmcoXG4gICR0b3A6IG51bGwsXG4gICRyaWdodDogbnVsbCxcbiAgJGJvdHRvbTogbnVsbCxcbiAgJGxlZnQ6IG51bGxcbikge1xuICBAaWYgJHRvcCAhPSBudWxsIHtcbiAgICBwYWRkaW5nLXRvcDogJHRvcCAqICRnbG9iYWwtcGFkZGluZyAhaW1wb3J0YW50O1xuICB9XG4gIEBpZiAkcmlnaHQgIT0gbnVsbCB7XG4gICAgcGFkZGluZy1yaWdodDogJHJpZ2h0ICogJGdsb2JhbC1wYWRkaW5nICFpbXBvcnRhbnQ7XG4gIH1cbiAgQGlmICRib3R0b20gIT0gbnVsbCB7XG4gICAgcGFkZGluZy1ib3R0b206ICRib3R0b20gKiAkZ2xvYmFsLXBhZGRpbmcgIWltcG9ydGFudDtcbiAgfVxuICBAaWYgJGxlZnQgIT0gbnVsbCB7XG4gICAgcGFkZGluZy1sZWZ0OiAkbGVmdCAqICRnbG9iYWwtcGFkZGluZyAhaW1wb3J0YW50O1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXByb3RvdHlwZS1zcGFjaW5nIHtcbiAgQGZvciAkc3BhY2VyIGZyb20gMCB0aHJvdWdoICRwcm90b3R5cGUtc3BhY2Vycy1jb3VudCB7XG4gICAgLy8gQWxsIFNpZGVzXG4gICAgLm1hcmdpbi0jeyRzcGFjZXJ9IHtcbiAgICAgIEBpbmNsdWRlIG1hcmdpbigkc3BhY2VyLCAkc3BhY2VyLCAkc3BhY2VyLCAkc3BhY2VyKTtcbiAgICB9XG5cbiAgICAucGFkZGluZy0jeyRzcGFjZXJ9IHtcbiAgICAgIEBpbmNsdWRlIHBhZGRpbmcoJHNwYWNlciwgJHNwYWNlciwgJHNwYWNlciwgJHNwYWNlcik7XG4gICAgfVxuXG4gICAgLy8gVG9wIFNpZGVcbiAgICAubWFyZ2luLXRvcC0jeyRzcGFjZXJ9IHtcbiAgICAgIEBpbmNsdWRlIG1hcmdpbigkc3BhY2VyLCBudWxsLCBudWxsLCBudWxsKTtcbiAgICB9XG5cbiAgICAucGFkZGluZy10b3AtI3skc3BhY2VyfSB7XG4gICAgICBAaW5jbHVkZSBwYWRkaW5nKCRzcGFjZXIsIG51bGwsIG51bGwsIG51bGwpO1xuICAgIH1cblxuICAgIC8vIFJpZ2h0IFNpZGVcbiAgICAubWFyZ2luLXJpZ2h0LSN7JHNwYWNlcn0ge1xuICAgICAgQGluY2x1ZGUgbWFyZ2luKG51bGwsICRzcGFjZXIsIG51bGwsIG51bGwpO1xuICAgIH1cblxuICAgIC5wYWRkaW5nLXJpZ2h0LSN7JHNwYWNlcn0ge1xuICAgICAgQGluY2x1ZGUgcGFkZGluZyhudWxsLCAkc3BhY2VyLCBudWxsLCBudWxsKTtcbiAgICB9XG5cbiAgICAvLyBCb3R0b20gU2lkZVxuICAgIC5tYXJnaW4tYm90dG9tLSN7JHNwYWNlcn0ge1xuICAgICAgQGluY2x1ZGUgbWFyZ2luKG51bGwsIG51bGwsICRzcGFjZXIsIG51bGwpO1xuICAgIH1cblxuICAgIC5wYWRkaW5nLWJvdHRvbS0jeyRzcGFjZXJ9IHtcbiAgICAgIEBpbmNsdWRlIHBhZGRpbmcobnVsbCwgbnVsbCwgJHNwYWNlciwgbnVsbCk7XG4gICAgfVxuXG4gICAgLy8gTGVmdCBTaWRlXG4gICAgLm1hcmdpbi1sZWZ0LSN7JHNwYWNlcn0ge1xuICAgICAgQGluY2x1ZGUgbWFyZ2luKG51bGwsIG51bGwsIG51bGwsICRzcGFjZXIpO1xuICAgIH1cblxuICAgIC5wYWRkaW5nLWxlZnQtI3skc3BhY2VyfSB7XG4gICAgICBAaW5jbHVkZSBwYWRkaW5nKG51bGwsIG51bGwsIG51bGwsICRzcGFjZXIpO1xuICAgIH1cblxuICAgIC8vIEhvcml6b250YWwgQXhlc1xuICAgIC5tYXJnaW4taG9yaXpvbnRhbC0jeyRzcGFjZXJ9IHtcbiAgICAgIEBpbmNsdWRlIG1hcmdpbihudWxsLCAkc3BhY2VyLCBudWxsLCAkc3BhY2VyKTtcbiAgICB9XG5cbiAgICAucGFkZGluZy1ob3Jpem9udGFsLSN7JHNwYWNlcn0ge1xuICAgICAgQGluY2x1ZGUgcGFkZGluZyhudWxsLCAkc3BhY2VyLCBudWxsLCAkc3BhY2VyKTtcbiAgICB9XG5cbiAgICAvLyBWZXJ0aWNhbCBBeGVzXG4gICAgLm1hcmdpbi12ZXJ0aWNhbC0jeyRzcGFjZXJ9IHtcbiAgICAgIEBpbmNsdWRlIG1hcmdpbigkc3BhY2VyLCBudWxsLCAkc3BhY2VyLCBudWxsKVxuICAgIH1cblxuICAgIC5wYWRkaW5nLXZlcnRpY2FsLSN7JHNwYWNlcn0ge1xuICAgICAgQGluY2x1ZGUgcGFkZGluZygkc3BhY2VyLCBudWxsLCAkc3BhY2VyLCBudWxsKVxuICAgIH1cblxuICAgIEBpZiAoJHByb3RvdHlwZS1zcGFjaW5nLWJyZWFrcG9pbnRzKSB7XG4gICAgLy8gTG9vcCB0aHJvdWdoIFJlc3BvbnNpdmUgQnJlYWtwb2ludHNcbiAgICAgIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAgIC8vIEFsbCBTaWRlc1xuICAgICAgICAgICAgLiN7JHNpemV9LW1hcmdpbi0jeyRzcGFjZXJ9IHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgbWFyZ2luKCRzcGFjZXIsICRzcGFjZXIsICRzcGFjZXIsICRzcGFjZXIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuI3skc2l6ZX0tcGFkZGluZy0jeyRzcGFjZXJ9IHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgcGFkZGluZygkc3BhY2VyLCAkc3BhY2VyLCAkc3BhY2VyLCAkc3BhY2VyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gVG9wIFNpZGVcbiAgICAgICAgICAgIC4jeyRzaXplfS1tYXJnaW4tdG9wLSN7JHNwYWNlcn0ge1xuICAgICAgICAgICAgICBAaW5jbHVkZSBtYXJnaW4oJHNwYWNlciwgbnVsbCwgbnVsbCwgbnVsbCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC4jeyRzaXplfS1wYWRkaW5nLXRvcC0jeyRzcGFjZXJ9IHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgcGFkZGluZygkc3BhY2VyLCBudWxsLCBudWxsLCBudWxsKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gUmlnaHQgU2lkZVxuICAgICAgICAgICAgLiN7JHNpemV9LW1hcmdpbi1yaWdodC0jeyRzcGFjZXJ9IHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgbWFyZ2luKG51bGwsICRzcGFjZXIsIG51bGwsIG51bGwpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuI3skc2l6ZX0tcGFkZGluZy1yaWdodC0jeyRzcGFjZXJ9IHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgcGFkZGluZyhudWxsLCAkc3BhY2VyLCBudWxsLCBudWxsKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gQm90dG9tIFNpZGVcbiAgICAgICAgICAgIC4jeyRzaXplfS1tYXJnaW4tYm90dG9tLSN7JHNwYWNlcn0ge1xuICAgICAgICAgICAgICBAaW5jbHVkZSBtYXJnaW4obnVsbCwgbnVsbCwgJHNwYWNlciwgbnVsbCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC4jeyRzaXplfS1wYWRkaW5nLWJvdHRvbS0jeyRzcGFjZXJ9IHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgcGFkZGluZyhudWxsLCBudWxsLCAkc3BhY2VyLCBudWxsKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gTGVmdCBTaWRlXG4gICAgICAgICAgICAuI3skc2l6ZX0tbWFyZ2luLWxlZnQtI3skc3BhY2VyfSB7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIG1hcmdpbihudWxsLCBudWxsLCBudWxsLCAkc3BhY2VyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLiN7JHNpemV9LXBhZGRpbmctbGVmdC0jeyRzcGFjZXJ9IHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgcGFkZGluZyhudWxsLCBudWxsLCBudWxsLCAkc3BhY2VyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gSG9yaXpvbnRhbCBBeGVzXG4gICAgICAgICAgICAuI3skc2l6ZX0tbWFyZ2luLWhvcml6b250YWwtI3skc3BhY2VyfSB7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIG1hcmdpbihudWxsLCAkc3BhY2VyLCBudWxsLCAkc3BhY2VyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLiN7JHNpemV9LXBhZGRpbmctaG9yaXpvbnRhbC0jeyRzcGFjZXJ9IHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgcGFkZGluZyhudWxsLCAkc3BhY2VyLCBudWxsLCAkc3BhY2VyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gVmVydGljYWwgQXhlc1xuICAgICAgICAgICAgLiN7JHNpemV9LW1hcmdpbi12ZXJ0aWNhbC0jeyRzcGFjZXJ9IHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgbWFyZ2luKCRzcGFjZXIsIG51bGwsICRzcGFjZXIsIG51bGwpXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC4jeyRzaXplfS1wYWRkaW5nLXZlcnRpY2FsLSN7JHNwYWNlcn0ge1xuICAgICAgICAgICAgICBAaW5jbHVkZSBwYWRkaW5nKCRzcGFjZXIsIG51bGwsICRzcGFjZXIsIG51bGwpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvKiFcbiAqICBGb250IEF3ZXNvbWUgNC43LjAgYnkgQGRhdmVnYW5keSAtIGh0dHA6Ly9mb250YXdlc29tZS5pbyAtIEBmb250YXdlc29tZVxuICogIExpY2Vuc2UgLSBodHRwOi8vZm9udGF3ZXNvbWUuaW8vbGljZW5zZSAoRm9udDogU0lMIE9GTCAxLjEsIENTUzogTUlUIExpY2Vuc2UpXG4gKi9cblxuQGltcG9ydCBcInZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIm1peGluc1wiO1xuQGltcG9ydCBcInBhdGhcIjtcbkBpbXBvcnQgXCJjb3JlXCI7XG5AaW1wb3J0IFwibGFyZ2VyXCI7XG5AaW1wb3J0IFwiZml4ZWQtd2lkdGhcIjtcbkBpbXBvcnQgXCJsaXN0XCI7XG5AaW1wb3J0IFwiYm9yZGVyZWQtcHVsbGVkXCI7XG5AaW1wb3J0IFwiYW5pbWF0ZWRcIjtcbkBpbXBvcnQgXCJyb3RhdGVkLWZsaXBwZWRcIjtcbkBpbXBvcnQgXCJzdGFja2VkXCI7XG5AaW1wb3J0IFwiaWNvbnNcIjtcbkBpbXBvcnQgXCJzY3JlZW4tcmVhZGVyXCI7XG4iLCIvLyBWYXJpYWJsZXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRmYS1mb250LXBhdGg6ICAgICAgICBcIi4uL2ZvbnRzXCIgIWRlZmF1bHQ7XG4kZmEtZm9udC1zaXplLWJhc2U6ICAgMTRweCAhZGVmYXVsdDtcbiRmYS1saW5lLWhlaWdodC1iYXNlOiAxICFkZWZhdWx0O1xuLy8kZmEtZm9udC1wYXRoOiAgICAgICAgXCIvL25ldGRuYS5ib290c3RyYXBjZG4uY29tL2ZvbnQtYXdlc29tZS80LjcuMC9mb250c1wiICFkZWZhdWx0OyAvLyBmb3IgcmVmZXJlbmNpbmcgQm9vdHN0cmFwIENETiBmb250IGZpbGVzIGRpcmVjdGx5XG4kZmEtY3NzLXByZWZpeDogICAgICAgZmEgIWRlZmF1bHQ7XG4kZmEtdmVyc2lvbjogICAgICAgICAgXCI0LjcuMFwiICFkZWZhdWx0O1xuJGZhLWJvcmRlci1jb2xvcjogICAgICNlZWUgIWRlZmF1bHQ7XG4kZmEtaW52ZXJzZTogICAgICAgICAgI2ZmZiAhZGVmYXVsdDtcbiRmYS1saS13aWR0aDogICAgICAgICAoMzBlbSAvIDE0KSAhZGVmYXVsdDtcblxuJGZhLXZhci01MDBweDogXCJcXGYyNmVcIjtcbiRmYS12YXItYWRkcmVzcy1ib29rOiBcIlxcZjJiOVwiO1xuJGZhLXZhci1hZGRyZXNzLWJvb2stbzogXCJcXGYyYmFcIjtcbiRmYS12YXItYWRkcmVzcy1jYXJkOiBcIlxcZjJiYlwiO1xuJGZhLXZhci1hZGRyZXNzLWNhcmQtbzogXCJcXGYyYmNcIjtcbiRmYS12YXItYWRqdXN0OiBcIlxcZjA0MlwiO1xuJGZhLXZhci1hZG46IFwiXFxmMTcwXCI7XG4kZmEtdmFyLWFsaWduLWNlbnRlcjogXCJcXGYwMzdcIjtcbiRmYS12YXItYWxpZ24tanVzdGlmeTogXCJcXGYwMzlcIjtcbiRmYS12YXItYWxpZ24tbGVmdDogXCJcXGYwMzZcIjtcbiRmYS12YXItYWxpZ24tcmlnaHQ6IFwiXFxmMDM4XCI7XG4kZmEtdmFyLWFtYXpvbjogXCJcXGYyNzBcIjtcbiRmYS12YXItYW1idWxhbmNlOiBcIlxcZjBmOVwiO1xuJGZhLXZhci1hbWVyaWNhbi1zaWduLWxhbmd1YWdlLWludGVycHJldGluZzogXCJcXGYyYTNcIjtcbiRmYS12YXItYW5jaG9yOiBcIlxcZjEzZFwiO1xuJGZhLXZhci1hbmRyb2lkOiBcIlxcZjE3YlwiO1xuJGZhLXZhci1hbmdlbGxpc3Q6IFwiXFxmMjA5XCI7XG4kZmEtdmFyLWFuZ2xlLWRvdWJsZS1kb3duOiBcIlxcZjEwM1wiO1xuJGZhLXZhci1hbmdsZS1kb3VibGUtbGVmdDogXCJcXGYxMDBcIjtcbiRmYS12YXItYW5nbGUtZG91YmxlLXJpZ2h0OiBcIlxcZjEwMVwiO1xuJGZhLXZhci1hbmdsZS1kb3VibGUtdXA6IFwiXFxmMTAyXCI7XG4kZmEtdmFyLWFuZ2xlLWRvd246IFwiXFxmMTA3XCI7XG4kZmEtdmFyLWFuZ2xlLWxlZnQ6IFwiXFxmMTA0XCI7XG4kZmEtdmFyLWFuZ2xlLXJpZ2h0OiBcIlxcZjEwNVwiO1xuJGZhLXZhci1hbmdsZS11cDogXCJcXGYxMDZcIjtcbiRmYS12YXItYXBwbGU6IFwiXFxmMTc5XCI7XG4kZmEtdmFyLWFyY2hpdmU6IFwiXFxmMTg3XCI7XG4kZmEtdmFyLWFyZWEtY2hhcnQ6IFwiXFxmMWZlXCI7XG4kZmEtdmFyLWFycm93LWNpcmNsZS1kb3duOiBcIlxcZjBhYlwiO1xuJGZhLXZhci1hcnJvdy1jaXJjbGUtbGVmdDogXCJcXGYwYThcIjtcbiRmYS12YXItYXJyb3ctY2lyY2xlLW8tZG93bjogXCJcXGYwMWFcIjtcbiRmYS12YXItYXJyb3ctY2lyY2xlLW8tbGVmdDogXCJcXGYxOTBcIjtcbiRmYS12YXItYXJyb3ctY2lyY2xlLW8tcmlnaHQ6IFwiXFxmMThlXCI7XG4kZmEtdmFyLWFycm93LWNpcmNsZS1vLXVwOiBcIlxcZjAxYlwiO1xuJGZhLXZhci1hcnJvdy1jaXJjbGUtcmlnaHQ6IFwiXFxmMGE5XCI7XG4kZmEtdmFyLWFycm93LWNpcmNsZS11cDogXCJcXGYwYWFcIjtcbiRmYS12YXItYXJyb3ctZG93bjogXCJcXGYwNjNcIjtcbiRmYS12YXItYXJyb3ctbGVmdDogXCJcXGYwNjBcIjtcbiRmYS12YXItYXJyb3ctcmlnaHQ6IFwiXFxmMDYxXCI7XG4kZmEtdmFyLWFycm93LXVwOiBcIlxcZjA2MlwiO1xuJGZhLXZhci1hcnJvd3M6IFwiXFxmMDQ3XCI7XG4kZmEtdmFyLWFycm93cy1hbHQ6IFwiXFxmMGIyXCI7XG4kZmEtdmFyLWFycm93cy1oOiBcIlxcZjA3ZVwiO1xuJGZhLXZhci1hcnJvd3MtdjogXCJcXGYwN2RcIjtcbiRmYS12YXItYXNsLWludGVycHJldGluZzogXCJcXGYyYTNcIjtcbiRmYS12YXItYXNzaXN0aXZlLWxpc3RlbmluZy1zeXN0ZW1zOiBcIlxcZjJhMlwiO1xuJGZhLXZhci1hc3RlcmlzazogXCJcXGYwNjlcIjtcbiRmYS12YXItYXQ6IFwiXFxmMWZhXCI7XG4kZmEtdmFyLWF1ZGlvLWRlc2NyaXB0aW9uOiBcIlxcZjI5ZVwiO1xuJGZhLXZhci1hdXRvbW9iaWxlOiBcIlxcZjFiOVwiO1xuJGZhLXZhci1iYWNrd2FyZDogXCJcXGYwNGFcIjtcbiRmYS12YXItYmFsYW5jZS1zY2FsZTogXCJcXGYyNGVcIjtcbiRmYS12YXItYmFuOiBcIlxcZjA1ZVwiO1xuJGZhLXZhci1iYW5kY2FtcDogXCJcXGYyZDVcIjtcbiRmYS12YXItYmFuazogXCJcXGYxOWNcIjtcbiRmYS12YXItYmFyLWNoYXJ0OiBcIlxcZjA4MFwiO1xuJGZhLXZhci1iYXItY2hhcnQtbzogXCJcXGYwODBcIjtcbiRmYS12YXItYmFyY29kZTogXCJcXGYwMmFcIjtcbiRmYS12YXItYmFyczogXCJcXGYwYzlcIjtcbiRmYS12YXItYmF0aDogXCJcXGYyY2RcIjtcbiRmYS12YXItYmF0aHR1YjogXCJcXGYyY2RcIjtcbiRmYS12YXItYmF0dGVyeTogXCJcXGYyNDBcIjtcbiRmYS12YXItYmF0dGVyeS0wOiBcIlxcZjI0NFwiO1xuJGZhLXZhci1iYXR0ZXJ5LTE6IFwiXFxmMjQzXCI7XG4kZmEtdmFyLWJhdHRlcnktMjogXCJcXGYyNDJcIjtcbiRmYS12YXItYmF0dGVyeS0zOiBcIlxcZjI0MVwiO1xuJGZhLXZhci1iYXR0ZXJ5LTQ6IFwiXFxmMjQwXCI7XG4kZmEtdmFyLWJhdHRlcnktZW1wdHk6IFwiXFxmMjQ0XCI7XG4kZmEtdmFyLWJhdHRlcnktZnVsbDogXCJcXGYyNDBcIjtcbiRmYS12YXItYmF0dGVyeS1oYWxmOiBcIlxcZjI0MlwiO1xuJGZhLXZhci1iYXR0ZXJ5LXF1YXJ0ZXI6IFwiXFxmMjQzXCI7XG4kZmEtdmFyLWJhdHRlcnktdGhyZWUtcXVhcnRlcnM6IFwiXFxmMjQxXCI7XG4kZmEtdmFyLWJlZDogXCJcXGYyMzZcIjtcbiRmYS12YXItYmVlcjogXCJcXGYwZmNcIjtcbiRmYS12YXItYmVoYW5jZTogXCJcXGYxYjRcIjtcbiRmYS12YXItYmVoYW5jZS1zcXVhcmU6IFwiXFxmMWI1XCI7XG4kZmEtdmFyLWJlbGw6IFwiXFxmMGYzXCI7XG4kZmEtdmFyLWJlbGwtbzogXCJcXGYwYTJcIjtcbiRmYS12YXItYmVsbC1zbGFzaDogXCJcXGYxZjZcIjtcbiRmYS12YXItYmVsbC1zbGFzaC1vOiBcIlxcZjFmN1wiO1xuJGZhLXZhci1iaWN5Y2xlOiBcIlxcZjIwNlwiO1xuJGZhLXZhci1iaW5vY3VsYXJzOiBcIlxcZjFlNVwiO1xuJGZhLXZhci1iaXJ0aGRheS1jYWtlOiBcIlxcZjFmZFwiO1xuJGZhLXZhci1iaXRidWNrZXQ6IFwiXFxmMTcxXCI7XG4kZmEtdmFyLWJpdGJ1Y2tldC1zcXVhcmU6IFwiXFxmMTcyXCI7XG4kZmEtdmFyLWJpdGNvaW46IFwiXFxmMTVhXCI7XG4kZmEtdmFyLWJsYWNrLXRpZTogXCJcXGYyN2VcIjtcbiRmYS12YXItYmxpbmQ6IFwiXFxmMjlkXCI7XG4kZmEtdmFyLWJsdWV0b290aDogXCJcXGYyOTNcIjtcbiRmYS12YXItYmx1ZXRvb3RoLWI6IFwiXFxmMjk0XCI7XG4kZmEtdmFyLWJvbGQ6IFwiXFxmMDMyXCI7XG4kZmEtdmFyLWJvbHQ6IFwiXFxmMGU3XCI7XG4kZmEtdmFyLWJvbWI6IFwiXFxmMWUyXCI7XG4kZmEtdmFyLWJvb2s6IFwiXFxmMDJkXCI7XG4kZmEtdmFyLWJvb2ttYXJrOiBcIlxcZjAyZVwiO1xuJGZhLXZhci1ib29rbWFyay1vOiBcIlxcZjA5N1wiO1xuJGZhLXZhci1icmFpbGxlOiBcIlxcZjJhMVwiO1xuJGZhLXZhci1icmllZmNhc2U6IFwiXFxmMGIxXCI7XG4kZmEtdmFyLWJ0YzogXCJcXGYxNWFcIjtcbiRmYS12YXItYnVnOiBcIlxcZjE4OFwiO1xuJGZhLXZhci1idWlsZGluZzogXCJcXGYxYWRcIjtcbiRmYS12YXItYnVpbGRpbmctbzogXCJcXGYwZjdcIjtcbiRmYS12YXItYnVsbGhvcm46IFwiXFxmMGExXCI7XG4kZmEtdmFyLWJ1bGxzZXllOiBcIlxcZjE0MFwiO1xuJGZhLXZhci1idXM6IFwiXFxmMjA3XCI7XG4kZmEtdmFyLWJ1eXNlbGxhZHM6IFwiXFxmMjBkXCI7XG4kZmEtdmFyLWNhYjogXCJcXGYxYmFcIjtcbiRmYS12YXItY2FsY3VsYXRvcjogXCJcXGYxZWNcIjtcbiRmYS12YXItY2FsZW5kYXI6IFwiXFxmMDczXCI7XG4kZmEtdmFyLWNhbGVuZGFyLWNoZWNrLW86IFwiXFxmMjc0XCI7XG4kZmEtdmFyLWNhbGVuZGFyLW1pbnVzLW86IFwiXFxmMjcyXCI7XG4kZmEtdmFyLWNhbGVuZGFyLW86IFwiXFxmMTMzXCI7XG4kZmEtdmFyLWNhbGVuZGFyLXBsdXMtbzogXCJcXGYyNzFcIjtcbiRmYS12YXItY2FsZW5kYXItdGltZXMtbzogXCJcXGYyNzNcIjtcbiRmYS12YXItY2FtZXJhOiBcIlxcZjAzMFwiO1xuJGZhLXZhci1jYW1lcmEtcmV0cm86IFwiXFxmMDgzXCI7XG4kZmEtdmFyLWNhcjogXCJcXGYxYjlcIjtcbiRmYS12YXItY2FyZXQtZG93bjogXCJcXGYwZDdcIjtcbiRmYS12YXItY2FyZXQtbGVmdDogXCJcXGYwZDlcIjtcbiRmYS12YXItY2FyZXQtcmlnaHQ6IFwiXFxmMGRhXCI7XG4kZmEtdmFyLWNhcmV0LXNxdWFyZS1vLWRvd246IFwiXFxmMTUwXCI7XG4kZmEtdmFyLWNhcmV0LXNxdWFyZS1vLWxlZnQ6IFwiXFxmMTkxXCI7XG4kZmEtdmFyLWNhcmV0LXNxdWFyZS1vLXJpZ2h0OiBcIlxcZjE1MlwiO1xuJGZhLXZhci1jYXJldC1zcXVhcmUtby11cDogXCJcXGYxNTFcIjtcbiRmYS12YXItY2FyZXQtdXA6IFwiXFxmMGQ4XCI7XG4kZmEtdmFyLWNhcnQtYXJyb3ctZG93bjogXCJcXGYyMThcIjtcbiRmYS12YXItY2FydC1wbHVzOiBcIlxcZjIxN1wiO1xuJGZhLXZhci1jYzogXCJcXGYyMGFcIjtcbiRmYS12YXItY2MtYW1leDogXCJcXGYxZjNcIjtcbiRmYS12YXItY2MtZGluZXJzLWNsdWI6IFwiXFxmMjRjXCI7XG4kZmEtdmFyLWNjLWRpc2NvdmVyOiBcIlxcZjFmMlwiO1xuJGZhLXZhci1jYy1qY2I6IFwiXFxmMjRiXCI7XG4kZmEtdmFyLWNjLW1hc3RlcmNhcmQ6IFwiXFxmMWYxXCI7XG4kZmEtdmFyLWNjLXBheXBhbDogXCJcXGYxZjRcIjtcbiRmYS12YXItY2Mtc3RyaXBlOiBcIlxcZjFmNVwiO1xuJGZhLXZhci1jYy12aXNhOiBcIlxcZjFmMFwiO1xuJGZhLXZhci1jZXJ0aWZpY2F0ZTogXCJcXGYwYTNcIjtcbiRmYS12YXItY2hhaW46IFwiXFxmMGMxXCI7XG4kZmEtdmFyLWNoYWluLWJyb2tlbjogXCJcXGYxMjdcIjtcbiRmYS12YXItY2hlY2s6IFwiXFxmMDBjXCI7XG4kZmEtdmFyLWNoZWNrLWNpcmNsZTogXCJcXGYwNThcIjtcbiRmYS12YXItY2hlY2stY2lyY2xlLW86IFwiXFxmMDVkXCI7XG4kZmEtdmFyLWNoZWNrLXNxdWFyZTogXCJcXGYxNGFcIjtcbiRmYS12YXItY2hlY2stc3F1YXJlLW86IFwiXFxmMDQ2XCI7XG4kZmEtdmFyLWNoZXZyb24tY2lyY2xlLWRvd246IFwiXFxmMTNhXCI7XG4kZmEtdmFyLWNoZXZyb24tY2lyY2xlLWxlZnQ6IFwiXFxmMTM3XCI7XG4kZmEtdmFyLWNoZXZyb24tY2lyY2xlLXJpZ2h0OiBcIlxcZjEzOFwiO1xuJGZhLXZhci1jaGV2cm9uLWNpcmNsZS11cDogXCJcXGYxMzlcIjtcbiRmYS12YXItY2hldnJvbi1kb3duOiBcIlxcZjA3OFwiO1xuJGZhLXZhci1jaGV2cm9uLWxlZnQ6IFwiXFxmMDUzXCI7XG4kZmEtdmFyLWNoZXZyb24tcmlnaHQ6IFwiXFxmMDU0XCI7XG4kZmEtdmFyLWNoZXZyb24tdXA6IFwiXFxmMDc3XCI7XG4kZmEtdmFyLWNoaWxkOiBcIlxcZjFhZVwiO1xuJGZhLXZhci1jaHJvbWU6IFwiXFxmMjY4XCI7XG4kZmEtdmFyLWNpcmNsZTogXCJcXGYxMTFcIjtcbiRmYS12YXItY2lyY2xlLW86IFwiXFxmMTBjXCI7XG4kZmEtdmFyLWNpcmNsZS1vLW5vdGNoOiBcIlxcZjFjZVwiO1xuJGZhLXZhci1jaXJjbGUtdGhpbjogXCJcXGYxZGJcIjtcbiRmYS12YXItY2xpcGJvYXJkOiBcIlxcZjBlYVwiO1xuJGZhLXZhci1jbG9jay1vOiBcIlxcZjAxN1wiO1xuJGZhLXZhci1jbG9uZTogXCJcXGYyNGRcIjtcbiRmYS12YXItY2xvc2U6IFwiXFxmMDBkXCI7XG4kZmEtdmFyLWNsb3VkOiBcIlxcZjBjMlwiO1xuJGZhLXZhci1jbG91ZC1kb3dubG9hZDogXCJcXGYwZWRcIjtcbiRmYS12YXItY2xvdWQtdXBsb2FkOiBcIlxcZjBlZVwiO1xuJGZhLXZhci1jbnk6IFwiXFxmMTU3XCI7XG4kZmEtdmFyLWNvZGU6IFwiXFxmMTIxXCI7XG4kZmEtdmFyLWNvZGUtZm9yazogXCJcXGYxMjZcIjtcbiRmYS12YXItY29kZXBlbjogXCJcXGYxY2JcIjtcbiRmYS12YXItY29kaWVwaWU6IFwiXFxmMjg0XCI7XG4kZmEtdmFyLWNvZmZlZTogXCJcXGYwZjRcIjtcbiRmYS12YXItY29nOiBcIlxcZjAxM1wiO1xuJGZhLXZhci1jb2dzOiBcIlxcZjA4NVwiO1xuJGZhLXZhci1jb2x1bW5zOiBcIlxcZjBkYlwiO1xuJGZhLXZhci1jb21tZW50OiBcIlxcZjA3NVwiO1xuJGZhLXZhci1jb21tZW50LW86IFwiXFxmMGU1XCI7XG4kZmEtdmFyLWNvbW1lbnRpbmc6IFwiXFxmMjdhXCI7XG4kZmEtdmFyLWNvbW1lbnRpbmctbzogXCJcXGYyN2JcIjtcbiRmYS12YXItY29tbWVudHM6IFwiXFxmMDg2XCI7XG4kZmEtdmFyLWNvbW1lbnRzLW86IFwiXFxmMGU2XCI7XG4kZmEtdmFyLWNvbXBhc3M6IFwiXFxmMTRlXCI7XG4kZmEtdmFyLWNvbXByZXNzOiBcIlxcZjA2NlwiO1xuJGZhLXZhci1jb25uZWN0ZGV2ZWxvcDogXCJcXGYyMGVcIjtcbiRmYS12YXItY29udGFvOiBcIlxcZjI2ZFwiO1xuJGZhLXZhci1jb3B5OiBcIlxcZjBjNVwiO1xuJGZhLXZhci1jb3B5cmlnaHQ6IFwiXFxmMWY5XCI7XG4kZmEtdmFyLWNyZWF0aXZlLWNvbW1vbnM6IFwiXFxmMjVlXCI7XG4kZmEtdmFyLWNyZWRpdC1jYXJkOiBcIlxcZjA5ZFwiO1xuJGZhLXZhci1jcmVkaXQtY2FyZC1hbHQ6IFwiXFxmMjgzXCI7XG4kZmEtdmFyLWNyb3A6IFwiXFxmMTI1XCI7XG4kZmEtdmFyLWNyb3NzaGFpcnM6IFwiXFxmMDViXCI7XG4kZmEtdmFyLWNzczM6IFwiXFxmMTNjXCI7XG4kZmEtdmFyLWN1YmU6IFwiXFxmMWIyXCI7XG4kZmEtdmFyLWN1YmVzOiBcIlxcZjFiM1wiO1xuJGZhLXZhci1jdXQ6IFwiXFxmMGM0XCI7XG4kZmEtdmFyLWN1dGxlcnk6IFwiXFxmMGY1XCI7XG4kZmEtdmFyLWRhc2hib2FyZDogXCJcXGYwZTRcIjtcbiRmYS12YXItZGFzaGN1YmU6IFwiXFxmMjEwXCI7XG4kZmEtdmFyLWRhdGFiYXNlOiBcIlxcZjFjMFwiO1xuJGZhLXZhci1kZWFmOiBcIlxcZjJhNFwiO1xuJGZhLXZhci1kZWFmbmVzczogXCJcXGYyYTRcIjtcbiRmYS12YXItZGVkZW50OiBcIlxcZjAzYlwiO1xuJGZhLXZhci1kZWxpY2lvdXM6IFwiXFxmMWE1XCI7XG4kZmEtdmFyLWRlc2t0b3A6IFwiXFxmMTA4XCI7XG4kZmEtdmFyLWRldmlhbnRhcnQ6IFwiXFxmMWJkXCI7XG4kZmEtdmFyLWRpYW1vbmQ6IFwiXFxmMjE5XCI7XG4kZmEtdmFyLWRpZ2c6IFwiXFxmMWE2XCI7XG4kZmEtdmFyLWRvbGxhcjogXCJcXGYxNTVcIjtcbiRmYS12YXItZG90LWNpcmNsZS1vOiBcIlxcZjE5MlwiO1xuJGZhLXZhci1kb3dubG9hZDogXCJcXGYwMTlcIjtcbiRmYS12YXItZHJpYmJibGU6IFwiXFxmMTdkXCI7XG4kZmEtdmFyLWRyaXZlcnMtbGljZW5zZTogXCJcXGYyYzJcIjtcbiRmYS12YXItZHJpdmVycy1saWNlbnNlLW86IFwiXFxmMmMzXCI7XG4kZmEtdmFyLWRyb3Bib3g6IFwiXFxmMTZiXCI7XG4kZmEtdmFyLWRydXBhbDogXCJcXGYxYTlcIjtcbiRmYS12YXItZWRnZTogXCJcXGYyODJcIjtcbiRmYS12YXItZWRpdDogXCJcXGYwNDRcIjtcbiRmYS12YXItZWVyY2FzdDogXCJcXGYyZGFcIjtcbiRmYS12YXItZWplY3Q6IFwiXFxmMDUyXCI7XG4kZmEtdmFyLWVsbGlwc2lzLWg6IFwiXFxmMTQxXCI7XG4kZmEtdmFyLWVsbGlwc2lzLXY6IFwiXFxmMTQyXCI7XG4kZmEtdmFyLWVtcGlyZTogXCJcXGYxZDFcIjtcbiRmYS12YXItZW52ZWxvcGU6IFwiXFxmMGUwXCI7XG4kZmEtdmFyLWVudmVsb3BlLW86IFwiXFxmMDAzXCI7XG4kZmEtdmFyLWVudmVsb3BlLW9wZW46IFwiXFxmMmI2XCI7XG4kZmEtdmFyLWVudmVsb3BlLW9wZW4tbzogXCJcXGYyYjdcIjtcbiRmYS12YXItZW52ZWxvcGUtc3F1YXJlOiBcIlxcZjE5OVwiO1xuJGZhLXZhci1lbnZpcmE6IFwiXFxmMjk5XCI7XG4kZmEtdmFyLWVyYXNlcjogXCJcXGYxMmRcIjtcbiRmYS12YXItZXRzeTogXCJcXGYyZDdcIjtcbiRmYS12YXItZXVyOiBcIlxcZjE1M1wiO1xuJGZhLXZhci1ldXJvOiBcIlxcZjE1M1wiO1xuJGZhLXZhci1leGNoYW5nZTogXCJcXGYwZWNcIjtcbiRmYS12YXItZXhjbGFtYXRpb246IFwiXFxmMTJhXCI7XG4kZmEtdmFyLWV4Y2xhbWF0aW9uLWNpcmNsZTogXCJcXGYwNmFcIjtcbiRmYS12YXItZXhjbGFtYXRpb24tdHJpYW5nbGU6IFwiXFxmMDcxXCI7XG4kZmEtdmFyLWV4cGFuZDogXCJcXGYwNjVcIjtcbiRmYS12YXItZXhwZWRpdGVkc3NsOiBcIlxcZjIzZVwiO1xuJGZhLXZhci1leHRlcm5hbC1saW5rOiBcIlxcZjA4ZVwiO1xuJGZhLXZhci1leHRlcm5hbC1saW5rLXNxdWFyZTogXCJcXGYxNGNcIjtcbiRmYS12YXItZXllOiBcIlxcZjA2ZVwiO1xuJGZhLXZhci1leWUtc2xhc2g6IFwiXFxmMDcwXCI7XG4kZmEtdmFyLWV5ZWRyb3BwZXI6IFwiXFxmMWZiXCI7XG4kZmEtdmFyLWZhOiBcIlxcZjJiNFwiO1xuJGZhLXZhci1mYWNlYm9vazogXCJcXGYwOWFcIjtcbiRmYS12YXItZmFjZWJvb2stZjogXCJcXGYwOWFcIjtcbiRmYS12YXItZmFjZWJvb2stb2ZmaWNpYWw6IFwiXFxmMjMwXCI7XG4kZmEtdmFyLWZhY2Vib29rLXNxdWFyZTogXCJcXGYwODJcIjtcbiRmYS12YXItZmFzdC1iYWNrd2FyZDogXCJcXGYwNDlcIjtcbiRmYS12YXItZmFzdC1mb3J3YXJkOiBcIlxcZjA1MFwiO1xuJGZhLXZhci1mYXg6IFwiXFxmMWFjXCI7XG4kZmEtdmFyLWZlZWQ6IFwiXFxmMDllXCI7XG4kZmEtdmFyLWZlbWFsZTogXCJcXGYxODJcIjtcbiRmYS12YXItZmlnaHRlci1qZXQ6IFwiXFxmMGZiXCI7XG4kZmEtdmFyLWZpbGU6IFwiXFxmMTViXCI7XG4kZmEtdmFyLWZpbGUtYXJjaGl2ZS1vOiBcIlxcZjFjNlwiO1xuJGZhLXZhci1maWxlLWF1ZGlvLW86IFwiXFxmMWM3XCI7XG4kZmEtdmFyLWZpbGUtY29kZS1vOiBcIlxcZjFjOVwiO1xuJGZhLXZhci1maWxlLWV4Y2VsLW86IFwiXFxmMWMzXCI7XG4kZmEtdmFyLWZpbGUtaW1hZ2UtbzogXCJcXGYxYzVcIjtcbiRmYS12YXItZmlsZS1tb3ZpZS1vOiBcIlxcZjFjOFwiO1xuJGZhLXZhci1maWxlLW86IFwiXFxmMDE2XCI7XG4kZmEtdmFyLWZpbGUtcGRmLW86IFwiXFxmMWMxXCI7XG4kZmEtdmFyLWZpbGUtcGhvdG8tbzogXCJcXGYxYzVcIjtcbiRmYS12YXItZmlsZS1waWN0dXJlLW86IFwiXFxmMWM1XCI7XG4kZmEtdmFyLWZpbGUtcG93ZXJwb2ludC1vOiBcIlxcZjFjNFwiO1xuJGZhLXZhci1maWxlLXNvdW5kLW86IFwiXFxmMWM3XCI7XG4kZmEtdmFyLWZpbGUtdGV4dDogXCJcXGYxNWNcIjtcbiRmYS12YXItZmlsZS10ZXh0LW86IFwiXFxmMGY2XCI7XG4kZmEtdmFyLWZpbGUtdmlkZW8tbzogXCJcXGYxYzhcIjtcbiRmYS12YXItZmlsZS13b3JkLW86IFwiXFxmMWMyXCI7XG4kZmEtdmFyLWZpbGUtemlwLW86IFwiXFxmMWM2XCI7XG4kZmEtdmFyLWZpbGVzLW86IFwiXFxmMGM1XCI7XG4kZmEtdmFyLWZpbG06IFwiXFxmMDA4XCI7XG4kZmEtdmFyLWZpbHRlcjogXCJcXGYwYjBcIjtcbiRmYS12YXItZmlyZTogXCJcXGYwNmRcIjtcbiRmYS12YXItZmlyZS1leHRpbmd1aXNoZXI6IFwiXFxmMTM0XCI7XG4kZmEtdmFyLWZpcmVmb3g6IFwiXFxmMjY5XCI7XG4kZmEtdmFyLWZpcnN0LW9yZGVyOiBcIlxcZjJiMFwiO1xuJGZhLXZhci1mbGFnOiBcIlxcZjAyNFwiO1xuJGZhLXZhci1mbGFnLWNoZWNrZXJlZDogXCJcXGYxMWVcIjtcbiRmYS12YXItZmxhZy1vOiBcIlxcZjExZFwiO1xuJGZhLXZhci1mbGFzaDogXCJcXGYwZTdcIjtcbiRmYS12YXItZmxhc2s6IFwiXFxmMGMzXCI7XG4kZmEtdmFyLWZsaWNrcjogXCJcXGYxNmVcIjtcbiRmYS12YXItZmxvcHB5LW86IFwiXFxmMGM3XCI7XG4kZmEtdmFyLWZvbGRlcjogXCJcXGYwN2JcIjtcbiRmYS12YXItZm9sZGVyLW86IFwiXFxmMTE0XCI7XG4kZmEtdmFyLWZvbGRlci1vcGVuOiBcIlxcZjA3Y1wiO1xuJGZhLXZhci1mb2xkZXItb3Blbi1vOiBcIlxcZjExNVwiO1xuJGZhLXZhci1mb250OiBcIlxcZjAzMVwiO1xuJGZhLXZhci1mb250LWF3ZXNvbWU6IFwiXFxmMmI0XCI7XG4kZmEtdmFyLWZvbnRpY29uczogXCJcXGYyODBcIjtcbiRmYS12YXItZm9ydC1hd2Vzb21lOiBcIlxcZjI4NlwiO1xuJGZhLXZhci1mb3J1bWJlZTogXCJcXGYyMTFcIjtcbiRmYS12YXItZm9yd2FyZDogXCJcXGYwNGVcIjtcbiRmYS12YXItZm91cnNxdWFyZTogXCJcXGYxODBcIjtcbiRmYS12YXItZnJlZS1jb2RlLWNhbXA6IFwiXFxmMmM1XCI7XG4kZmEtdmFyLWZyb3duLW86IFwiXFxmMTE5XCI7XG4kZmEtdmFyLWZ1dGJvbC1vOiBcIlxcZjFlM1wiO1xuJGZhLXZhci1nYW1lcGFkOiBcIlxcZjExYlwiO1xuJGZhLXZhci1nYXZlbDogXCJcXGYwZTNcIjtcbiRmYS12YXItZ2JwOiBcIlxcZjE1NFwiO1xuJGZhLXZhci1nZTogXCJcXGYxZDFcIjtcbiRmYS12YXItZ2VhcjogXCJcXGYwMTNcIjtcbiRmYS12YXItZ2VhcnM6IFwiXFxmMDg1XCI7XG4kZmEtdmFyLWdlbmRlcmxlc3M6IFwiXFxmMjJkXCI7XG4kZmEtdmFyLWdldC1wb2NrZXQ6IFwiXFxmMjY1XCI7XG4kZmEtdmFyLWdnOiBcIlxcZjI2MFwiO1xuJGZhLXZhci1nZy1jaXJjbGU6IFwiXFxmMjYxXCI7XG4kZmEtdmFyLWdpZnQ6IFwiXFxmMDZiXCI7XG4kZmEtdmFyLWdpdDogXCJcXGYxZDNcIjtcbiRmYS12YXItZ2l0LXNxdWFyZTogXCJcXGYxZDJcIjtcbiRmYS12YXItZ2l0aHViOiBcIlxcZjA5YlwiO1xuJGZhLXZhci1naXRodWItYWx0OiBcIlxcZjExM1wiO1xuJGZhLXZhci1naXRodWItc3F1YXJlOiBcIlxcZjA5MlwiO1xuJGZhLXZhci1naXRsYWI6IFwiXFxmMjk2XCI7XG4kZmEtdmFyLWdpdHRpcDogXCJcXGYxODRcIjtcbiRmYS12YXItZ2xhc3M6IFwiXFxmMDAwXCI7XG4kZmEtdmFyLWdsaWRlOiBcIlxcZjJhNVwiO1xuJGZhLXZhci1nbGlkZS1nOiBcIlxcZjJhNlwiO1xuJGZhLXZhci1nbG9iZTogXCJcXGYwYWNcIjtcbiRmYS12YXItZ29vZ2xlOiBcIlxcZjFhMFwiO1xuJGZhLXZhci1nb29nbGUtcGx1czogXCJcXGYwZDVcIjtcbiRmYS12YXItZ29vZ2xlLXBsdXMtY2lyY2xlOiBcIlxcZjJiM1wiO1xuJGZhLXZhci1nb29nbGUtcGx1cy1vZmZpY2lhbDogXCJcXGYyYjNcIjtcbiRmYS12YXItZ29vZ2xlLXBsdXMtc3F1YXJlOiBcIlxcZjBkNFwiO1xuJGZhLXZhci1nb29nbGUtd2FsbGV0OiBcIlxcZjFlZVwiO1xuJGZhLXZhci1ncmFkdWF0aW9uLWNhcDogXCJcXGYxOWRcIjtcbiRmYS12YXItZ3JhdGlwYXk6IFwiXFxmMTg0XCI7XG4kZmEtdmFyLWdyYXY6IFwiXFxmMmQ2XCI7XG4kZmEtdmFyLWdyb3VwOiBcIlxcZjBjMFwiO1xuJGZhLXZhci1oLXNxdWFyZTogXCJcXGYwZmRcIjtcbiRmYS12YXItaGFja2VyLW5ld3M6IFwiXFxmMWQ0XCI7XG4kZmEtdmFyLWhhbmQtZ3JhYi1vOiBcIlxcZjI1NVwiO1xuJGZhLXZhci1oYW5kLWxpemFyZC1vOiBcIlxcZjI1OFwiO1xuJGZhLXZhci1oYW5kLW8tZG93bjogXCJcXGYwYTdcIjtcbiRmYS12YXItaGFuZC1vLWxlZnQ6IFwiXFxmMGE1XCI7XG4kZmEtdmFyLWhhbmQtby1yaWdodDogXCJcXGYwYTRcIjtcbiRmYS12YXItaGFuZC1vLXVwOiBcIlxcZjBhNlwiO1xuJGZhLXZhci1oYW5kLXBhcGVyLW86IFwiXFxmMjU2XCI7XG4kZmEtdmFyLWhhbmQtcGVhY2UtbzogXCJcXGYyNWJcIjtcbiRmYS12YXItaGFuZC1wb2ludGVyLW86IFwiXFxmMjVhXCI7XG4kZmEtdmFyLWhhbmQtcm9jay1vOiBcIlxcZjI1NVwiO1xuJGZhLXZhci1oYW5kLXNjaXNzb3JzLW86IFwiXFxmMjU3XCI7XG4kZmEtdmFyLWhhbmQtc3BvY2stbzogXCJcXGYyNTlcIjtcbiRmYS12YXItaGFuZC1zdG9wLW86IFwiXFxmMjU2XCI7XG4kZmEtdmFyLWhhbmRzaGFrZS1vOiBcIlxcZjJiNVwiO1xuJGZhLXZhci1oYXJkLW9mLWhlYXJpbmc6IFwiXFxmMmE0XCI7XG4kZmEtdmFyLWhhc2h0YWc6IFwiXFxmMjkyXCI7XG4kZmEtdmFyLWhkZC1vOiBcIlxcZjBhMFwiO1xuJGZhLXZhci1oZWFkZXI6IFwiXFxmMWRjXCI7XG4kZmEtdmFyLWhlYWRwaG9uZXM6IFwiXFxmMDI1XCI7XG4kZmEtdmFyLWhlYXJ0OiBcIlxcZjAwNFwiO1xuJGZhLXZhci1oZWFydC1vOiBcIlxcZjA4YVwiO1xuJGZhLXZhci1oZWFydGJlYXQ6IFwiXFxmMjFlXCI7XG4kZmEtdmFyLWhpc3Rvcnk6IFwiXFxmMWRhXCI7XG4kZmEtdmFyLWhvbWU6IFwiXFxmMDE1XCI7XG4kZmEtdmFyLWhvc3BpdGFsLW86IFwiXFxmMGY4XCI7XG4kZmEtdmFyLWhvdGVsOiBcIlxcZjIzNlwiO1xuJGZhLXZhci1ob3VyZ2xhc3M6IFwiXFxmMjU0XCI7XG4kZmEtdmFyLWhvdXJnbGFzcy0xOiBcIlxcZjI1MVwiO1xuJGZhLXZhci1ob3VyZ2xhc3MtMjogXCJcXGYyNTJcIjtcbiRmYS12YXItaG91cmdsYXNzLTM6IFwiXFxmMjUzXCI7XG4kZmEtdmFyLWhvdXJnbGFzcy1lbmQ6IFwiXFxmMjUzXCI7XG4kZmEtdmFyLWhvdXJnbGFzcy1oYWxmOiBcIlxcZjI1MlwiO1xuJGZhLXZhci1ob3VyZ2xhc3MtbzogXCJcXGYyNTBcIjtcbiRmYS12YXItaG91cmdsYXNzLXN0YXJ0OiBcIlxcZjI1MVwiO1xuJGZhLXZhci1ob3V6ejogXCJcXGYyN2NcIjtcbiRmYS12YXItaHRtbDU6IFwiXFxmMTNiXCI7XG4kZmEtdmFyLWktY3Vyc29yOiBcIlxcZjI0NlwiO1xuJGZhLXZhci1pZC1iYWRnZTogXCJcXGYyYzFcIjtcbiRmYS12YXItaWQtY2FyZDogXCJcXGYyYzJcIjtcbiRmYS12YXItaWQtY2FyZC1vOiBcIlxcZjJjM1wiO1xuJGZhLXZhci1pbHM6IFwiXFxmMjBiXCI7XG4kZmEtdmFyLWltYWdlOiBcIlxcZjAzZVwiO1xuJGZhLXZhci1pbWRiOiBcIlxcZjJkOFwiO1xuJGZhLXZhci1pbmJveDogXCJcXGYwMWNcIjtcbiRmYS12YXItaW5kZW50OiBcIlxcZjAzY1wiO1xuJGZhLXZhci1pbmR1c3RyeTogXCJcXGYyNzVcIjtcbiRmYS12YXItaW5mbzogXCJcXGYxMjlcIjtcbiRmYS12YXItaW5mby1jaXJjbGU6IFwiXFxmMDVhXCI7XG4kZmEtdmFyLWlucjogXCJcXGYxNTZcIjtcbiRmYS12YXItaW5zdGFncmFtOiBcIlxcZjE2ZFwiO1xuJGZhLXZhci1pbnN0aXR1dGlvbjogXCJcXGYxOWNcIjtcbiRmYS12YXItaW50ZXJuZXQtZXhwbG9yZXI6IFwiXFxmMjZiXCI7XG4kZmEtdmFyLWludGVyc2V4OiBcIlxcZjIyNFwiO1xuJGZhLXZhci1pb3hob3N0OiBcIlxcZjIwOFwiO1xuJGZhLXZhci1pdGFsaWM6IFwiXFxmMDMzXCI7XG4kZmEtdmFyLWpvb21sYTogXCJcXGYxYWFcIjtcbiRmYS12YXItanB5OiBcIlxcZjE1N1wiO1xuJGZhLXZhci1qc2ZpZGRsZTogXCJcXGYxY2NcIjtcbiRmYS12YXIta2V5OiBcIlxcZjA4NFwiO1xuJGZhLXZhci1rZXlib2FyZC1vOiBcIlxcZjExY1wiO1xuJGZhLXZhci1rcnc6IFwiXFxmMTU5XCI7XG4kZmEtdmFyLWxhbmd1YWdlOiBcIlxcZjFhYlwiO1xuJGZhLXZhci1sYXB0b3A6IFwiXFxmMTA5XCI7XG4kZmEtdmFyLWxhc3RmbTogXCJcXGYyMDJcIjtcbiRmYS12YXItbGFzdGZtLXNxdWFyZTogXCJcXGYyMDNcIjtcbiRmYS12YXItbGVhZjogXCJcXGYwNmNcIjtcbiRmYS12YXItbGVhbnB1YjogXCJcXGYyMTJcIjtcbiRmYS12YXItbGVnYWw6IFwiXFxmMGUzXCI7XG4kZmEtdmFyLWxlbW9uLW86IFwiXFxmMDk0XCI7XG4kZmEtdmFyLWxldmVsLWRvd246IFwiXFxmMTQ5XCI7XG4kZmEtdmFyLWxldmVsLXVwOiBcIlxcZjE0OFwiO1xuJGZhLXZhci1saWZlLWJvdXk6IFwiXFxmMWNkXCI7XG4kZmEtdmFyLWxpZmUtYnVveTogXCJcXGYxY2RcIjtcbiRmYS12YXItbGlmZS1yaW5nOiBcIlxcZjFjZFwiO1xuJGZhLXZhci1saWZlLXNhdmVyOiBcIlxcZjFjZFwiO1xuJGZhLXZhci1saWdodGJ1bGItbzogXCJcXGYwZWJcIjtcbiRmYS12YXItbGluZS1jaGFydDogXCJcXGYyMDFcIjtcbiRmYS12YXItbGluazogXCJcXGYwYzFcIjtcbiRmYS12YXItbGlua2VkaW46IFwiXFxmMGUxXCI7XG4kZmEtdmFyLWxpbmtlZGluLXNxdWFyZTogXCJcXGYwOGNcIjtcbiRmYS12YXItbGlub2RlOiBcIlxcZjJiOFwiO1xuJGZhLXZhci1saW51eDogXCJcXGYxN2NcIjtcbiRmYS12YXItbGlzdDogXCJcXGYwM2FcIjtcbiRmYS12YXItbGlzdC1hbHQ6IFwiXFxmMDIyXCI7XG4kZmEtdmFyLWxpc3Qtb2w6IFwiXFxmMGNiXCI7XG4kZmEtdmFyLWxpc3QtdWw6IFwiXFxmMGNhXCI7XG4kZmEtdmFyLWxvY2F0aW9uLWFycm93OiBcIlxcZjEyNFwiO1xuJGZhLXZhci1sb2NrOiBcIlxcZjAyM1wiO1xuJGZhLXZhci1sb25nLWFycm93LWRvd246IFwiXFxmMTc1XCI7XG4kZmEtdmFyLWxvbmctYXJyb3ctbGVmdDogXCJcXGYxNzdcIjtcbiRmYS12YXItbG9uZy1hcnJvdy1yaWdodDogXCJcXGYxNzhcIjtcbiRmYS12YXItbG9uZy1hcnJvdy11cDogXCJcXGYxNzZcIjtcbiRmYS12YXItbG93LXZpc2lvbjogXCJcXGYyYThcIjtcbiRmYS12YXItbWFnaWM6IFwiXFxmMGQwXCI7XG4kZmEtdmFyLW1hZ25ldDogXCJcXGYwNzZcIjtcbiRmYS12YXItbWFpbC1mb3J3YXJkOiBcIlxcZjA2NFwiO1xuJGZhLXZhci1tYWlsLXJlcGx5OiBcIlxcZjExMlwiO1xuJGZhLXZhci1tYWlsLXJlcGx5LWFsbDogXCJcXGYxMjJcIjtcbiRmYS12YXItbWFsZTogXCJcXGYxODNcIjtcbiRmYS12YXItbWFwOiBcIlxcZjI3OVwiO1xuJGZhLXZhci1tYXAtbWFya2VyOiBcIlxcZjA0MVwiO1xuJGZhLXZhci1tYXAtbzogXCJcXGYyNzhcIjtcbiRmYS12YXItbWFwLXBpbjogXCJcXGYyNzZcIjtcbiRmYS12YXItbWFwLXNpZ25zOiBcIlxcZjI3N1wiO1xuJGZhLXZhci1tYXJzOiBcIlxcZjIyMlwiO1xuJGZhLXZhci1tYXJzLWRvdWJsZTogXCJcXGYyMjdcIjtcbiRmYS12YXItbWFycy1zdHJva2U6IFwiXFxmMjI5XCI7XG4kZmEtdmFyLW1hcnMtc3Ryb2tlLWg6IFwiXFxmMjJiXCI7XG4kZmEtdmFyLW1hcnMtc3Ryb2tlLXY6IFwiXFxmMjJhXCI7XG4kZmEtdmFyLW1heGNkbjogXCJcXGYxMzZcIjtcbiRmYS12YXItbWVhbnBhdGg6IFwiXFxmMjBjXCI7XG4kZmEtdmFyLW1lZGl1bTogXCJcXGYyM2FcIjtcbiRmYS12YXItbWVka2l0OiBcIlxcZjBmYVwiO1xuJGZhLXZhci1tZWV0dXA6IFwiXFxmMmUwXCI7XG4kZmEtdmFyLW1laC1vOiBcIlxcZjExYVwiO1xuJGZhLXZhci1tZXJjdXJ5OiBcIlxcZjIyM1wiO1xuJGZhLXZhci1taWNyb2NoaXA6IFwiXFxmMmRiXCI7XG4kZmEtdmFyLW1pY3JvcGhvbmU6IFwiXFxmMTMwXCI7XG4kZmEtdmFyLW1pY3JvcGhvbmUtc2xhc2g6IFwiXFxmMTMxXCI7XG4kZmEtdmFyLW1pbnVzOiBcIlxcZjA2OFwiO1xuJGZhLXZhci1taW51cy1jaXJjbGU6IFwiXFxmMDU2XCI7XG4kZmEtdmFyLW1pbnVzLXNxdWFyZTogXCJcXGYxNDZcIjtcbiRmYS12YXItbWludXMtc3F1YXJlLW86IFwiXFxmMTQ3XCI7XG4kZmEtdmFyLW1peGNsb3VkOiBcIlxcZjI4OVwiO1xuJGZhLXZhci1tb2JpbGU6IFwiXFxmMTBiXCI7XG4kZmEtdmFyLW1vYmlsZS1waG9uZTogXCJcXGYxMGJcIjtcbiRmYS12YXItbW9keDogXCJcXGYyODVcIjtcbiRmYS12YXItbW9uZXk6IFwiXFxmMGQ2XCI7XG4kZmEtdmFyLW1vb24tbzogXCJcXGYxODZcIjtcbiRmYS12YXItbW9ydGFyLWJvYXJkOiBcIlxcZjE5ZFwiO1xuJGZhLXZhci1tb3RvcmN5Y2xlOiBcIlxcZjIxY1wiO1xuJGZhLXZhci1tb3VzZS1wb2ludGVyOiBcIlxcZjI0NVwiO1xuJGZhLXZhci1tdXNpYzogXCJcXGYwMDFcIjtcbiRmYS12YXItbmF2aWNvbjogXCJcXGYwYzlcIjtcbiRmYS12YXItbmV1dGVyOiBcIlxcZjIyY1wiO1xuJGZhLXZhci1uZXdzcGFwZXItbzogXCJcXGYxZWFcIjtcbiRmYS12YXItb2JqZWN0LWdyb3VwOiBcIlxcZjI0N1wiO1xuJGZhLXZhci1vYmplY3QtdW5ncm91cDogXCJcXGYyNDhcIjtcbiRmYS12YXItb2Rub2tsYXNzbmlraTogXCJcXGYyNjNcIjtcbiRmYS12YXItb2Rub2tsYXNzbmlraS1zcXVhcmU6IFwiXFxmMjY0XCI7XG4kZmEtdmFyLW9wZW5jYXJ0OiBcIlxcZjIzZFwiO1xuJGZhLXZhci1vcGVuaWQ6IFwiXFxmMTliXCI7XG4kZmEtdmFyLW9wZXJhOiBcIlxcZjI2YVwiO1xuJGZhLXZhci1vcHRpbi1tb25zdGVyOiBcIlxcZjIzY1wiO1xuJGZhLXZhci1vdXRkZW50OiBcIlxcZjAzYlwiO1xuJGZhLXZhci1wYWdlbGluZXM6IFwiXFxmMThjXCI7XG4kZmEtdmFyLXBhaW50LWJydXNoOiBcIlxcZjFmY1wiO1xuJGZhLXZhci1wYXBlci1wbGFuZTogXCJcXGYxZDhcIjtcbiRmYS12YXItcGFwZXItcGxhbmUtbzogXCJcXGYxZDlcIjtcbiRmYS12YXItcGFwZXJjbGlwOiBcIlxcZjBjNlwiO1xuJGZhLXZhci1wYXJhZ3JhcGg6IFwiXFxmMWRkXCI7XG4kZmEtdmFyLXBhc3RlOiBcIlxcZjBlYVwiO1xuJGZhLXZhci1wYXVzZTogXCJcXGYwNGNcIjtcbiRmYS12YXItcGF1c2UtY2lyY2xlOiBcIlxcZjI4YlwiO1xuJGZhLXZhci1wYXVzZS1jaXJjbGUtbzogXCJcXGYyOGNcIjtcbiRmYS12YXItcGF3OiBcIlxcZjFiMFwiO1xuJGZhLXZhci1wYXlwYWw6IFwiXFxmMWVkXCI7XG4kZmEtdmFyLXBlbmNpbDogXCJcXGYwNDBcIjtcbiRmYS12YXItcGVuY2lsLXNxdWFyZTogXCJcXGYxNGJcIjtcbiRmYS12YXItcGVuY2lsLXNxdWFyZS1vOiBcIlxcZjA0NFwiO1xuJGZhLXZhci1wZXJjZW50OiBcIlxcZjI5NVwiO1xuJGZhLXZhci1waG9uZTogXCJcXGYwOTVcIjtcbiRmYS12YXItcGhvbmUtc3F1YXJlOiBcIlxcZjA5OFwiO1xuJGZhLXZhci1waG90bzogXCJcXGYwM2VcIjtcbiRmYS12YXItcGljdHVyZS1vOiBcIlxcZjAzZVwiO1xuJGZhLXZhci1waWUtY2hhcnQ6IFwiXFxmMjAwXCI7XG4kZmEtdmFyLXBpZWQtcGlwZXI6IFwiXFxmMmFlXCI7XG4kZmEtdmFyLXBpZWQtcGlwZXItYWx0OiBcIlxcZjFhOFwiO1xuJGZhLXZhci1waWVkLXBpcGVyLXBwOiBcIlxcZjFhN1wiO1xuJGZhLXZhci1waW50ZXJlc3Q6IFwiXFxmMGQyXCI7XG4kZmEtdmFyLXBpbnRlcmVzdC1wOiBcIlxcZjIzMVwiO1xuJGZhLXZhci1waW50ZXJlc3Qtc3F1YXJlOiBcIlxcZjBkM1wiO1xuJGZhLXZhci1wbGFuZTogXCJcXGYwNzJcIjtcbiRmYS12YXItcGxheTogXCJcXGYwNGJcIjtcbiRmYS12YXItcGxheS1jaXJjbGU6IFwiXFxmMTQ0XCI7XG4kZmEtdmFyLXBsYXktY2lyY2xlLW86IFwiXFxmMDFkXCI7XG4kZmEtdmFyLXBsdWc6IFwiXFxmMWU2XCI7XG4kZmEtdmFyLXBsdXM6IFwiXFxmMDY3XCI7XG4kZmEtdmFyLXBsdXMtY2lyY2xlOiBcIlxcZjA1NVwiO1xuJGZhLXZhci1wbHVzLXNxdWFyZTogXCJcXGYwZmVcIjtcbiRmYS12YXItcGx1cy1zcXVhcmUtbzogXCJcXGYxOTZcIjtcbiRmYS12YXItcG9kY2FzdDogXCJcXGYyY2VcIjtcbiRmYS12YXItcG93ZXItb2ZmOiBcIlxcZjAxMVwiO1xuJGZhLXZhci1wcmludDogXCJcXGYwMmZcIjtcbiRmYS12YXItcHJvZHVjdC1odW50OiBcIlxcZjI4OFwiO1xuJGZhLXZhci1wdXp6bGUtcGllY2U6IFwiXFxmMTJlXCI7XG4kZmEtdmFyLXFxOiBcIlxcZjFkNlwiO1xuJGZhLXZhci1xcmNvZGU6IFwiXFxmMDI5XCI7XG4kZmEtdmFyLXF1ZXN0aW9uOiBcIlxcZjEyOFwiO1xuJGZhLXZhci1xdWVzdGlvbi1jaXJjbGU6IFwiXFxmMDU5XCI7XG4kZmEtdmFyLXF1ZXN0aW9uLWNpcmNsZS1vOiBcIlxcZjI5Y1wiO1xuJGZhLXZhci1xdW9yYTogXCJcXGYyYzRcIjtcbiRmYS12YXItcXVvdGUtbGVmdDogXCJcXGYxMGRcIjtcbiRmYS12YXItcXVvdGUtcmlnaHQ6IFwiXFxmMTBlXCI7XG4kZmEtdmFyLXJhOiBcIlxcZjFkMFwiO1xuJGZhLXZhci1yYW5kb206IFwiXFxmMDc0XCI7XG4kZmEtdmFyLXJhdmVscnk6IFwiXFxmMmQ5XCI7XG4kZmEtdmFyLXJlYmVsOiBcIlxcZjFkMFwiO1xuJGZhLXZhci1yZWN5Y2xlOiBcIlxcZjFiOFwiO1xuJGZhLXZhci1yZWRkaXQ6IFwiXFxmMWExXCI7XG4kZmEtdmFyLXJlZGRpdC1hbGllbjogXCJcXGYyODFcIjtcbiRmYS12YXItcmVkZGl0LXNxdWFyZTogXCJcXGYxYTJcIjtcbiRmYS12YXItcmVmcmVzaDogXCJcXGYwMjFcIjtcbiRmYS12YXItcmVnaXN0ZXJlZDogXCJcXGYyNWRcIjtcbiRmYS12YXItcmVtb3ZlOiBcIlxcZjAwZFwiO1xuJGZhLXZhci1yZW5yZW46IFwiXFxmMThiXCI7XG4kZmEtdmFyLXJlb3JkZXI6IFwiXFxmMGM5XCI7XG4kZmEtdmFyLXJlcGVhdDogXCJcXGYwMWVcIjtcbiRmYS12YXItcmVwbHk6IFwiXFxmMTEyXCI7XG4kZmEtdmFyLXJlcGx5LWFsbDogXCJcXGYxMjJcIjtcbiRmYS12YXItcmVzaXN0YW5jZTogXCJcXGYxZDBcIjtcbiRmYS12YXItcmV0d2VldDogXCJcXGYwNzlcIjtcbiRmYS12YXItcm1iOiBcIlxcZjE1N1wiO1xuJGZhLXZhci1yb2FkOiBcIlxcZjAxOFwiO1xuJGZhLXZhci1yb2NrZXQ6IFwiXFxmMTM1XCI7XG4kZmEtdmFyLXJvdGF0ZS1sZWZ0OiBcIlxcZjBlMlwiO1xuJGZhLXZhci1yb3RhdGUtcmlnaHQ6IFwiXFxmMDFlXCI7XG4kZmEtdmFyLXJvdWJsZTogXCJcXGYxNThcIjtcbiRmYS12YXItcnNzOiBcIlxcZjA5ZVwiO1xuJGZhLXZhci1yc3Mtc3F1YXJlOiBcIlxcZjE0M1wiO1xuJGZhLXZhci1ydWI6IFwiXFxmMTU4XCI7XG4kZmEtdmFyLXJ1YmxlOiBcIlxcZjE1OFwiO1xuJGZhLXZhci1ydXBlZTogXCJcXGYxNTZcIjtcbiRmYS12YXItczE1OiBcIlxcZjJjZFwiO1xuJGZhLXZhci1zYWZhcmk6IFwiXFxmMjY3XCI7XG4kZmEtdmFyLXNhdmU6IFwiXFxmMGM3XCI7XG4kZmEtdmFyLXNjaXNzb3JzOiBcIlxcZjBjNFwiO1xuJGZhLXZhci1zY3JpYmQ6IFwiXFxmMjhhXCI7XG4kZmEtdmFyLXNlYXJjaDogXCJcXGYwMDJcIjtcbiRmYS12YXItc2VhcmNoLW1pbnVzOiBcIlxcZjAxMFwiO1xuJGZhLXZhci1zZWFyY2gtcGx1czogXCJcXGYwMGVcIjtcbiRmYS12YXItc2VsbHN5OiBcIlxcZjIxM1wiO1xuJGZhLXZhci1zZW5kOiBcIlxcZjFkOFwiO1xuJGZhLXZhci1zZW5kLW86IFwiXFxmMWQ5XCI7XG4kZmEtdmFyLXNlcnZlcjogXCJcXGYyMzNcIjtcbiRmYS12YXItc2hhcmU6IFwiXFxmMDY0XCI7XG4kZmEtdmFyLXNoYXJlLWFsdDogXCJcXGYxZTBcIjtcbiRmYS12YXItc2hhcmUtYWx0LXNxdWFyZTogXCJcXGYxZTFcIjtcbiRmYS12YXItc2hhcmUtc3F1YXJlOiBcIlxcZjE0ZFwiO1xuJGZhLXZhci1zaGFyZS1zcXVhcmUtbzogXCJcXGYwNDVcIjtcbiRmYS12YXItc2hla2VsOiBcIlxcZjIwYlwiO1xuJGZhLXZhci1zaGVxZWw6IFwiXFxmMjBiXCI7XG4kZmEtdmFyLXNoaWVsZDogXCJcXGYxMzJcIjtcbiRmYS12YXItc2hpcDogXCJcXGYyMWFcIjtcbiRmYS12YXItc2hpcnRzaW5idWxrOiBcIlxcZjIxNFwiO1xuJGZhLXZhci1zaG9wcGluZy1iYWc6IFwiXFxmMjkwXCI7XG4kZmEtdmFyLXNob3BwaW5nLWJhc2tldDogXCJcXGYyOTFcIjtcbiRmYS12YXItc2hvcHBpbmctY2FydDogXCJcXGYwN2FcIjtcbiRmYS12YXItc2hvd2VyOiBcIlxcZjJjY1wiO1xuJGZhLXZhci1zaWduLWluOiBcIlxcZjA5MFwiO1xuJGZhLXZhci1zaWduLWxhbmd1YWdlOiBcIlxcZjJhN1wiO1xuJGZhLXZhci1zaWduLW91dDogXCJcXGYwOGJcIjtcbiRmYS12YXItc2lnbmFsOiBcIlxcZjAxMlwiO1xuJGZhLXZhci1zaWduaW5nOiBcIlxcZjJhN1wiO1xuJGZhLXZhci1zaW1wbHlidWlsdDogXCJcXGYyMTVcIjtcbiRmYS12YXItc2l0ZW1hcDogXCJcXGYwZThcIjtcbiRmYS12YXItc2t5YXRsYXM6IFwiXFxmMjE2XCI7XG4kZmEtdmFyLXNreXBlOiBcIlxcZjE3ZVwiO1xuJGZhLXZhci1zbGFjazogXCJcXGYxOThcIjtcbiRmYS12YXItc2xpZGVyczogXCJcXGYxZGVcIjtcbiRmYS12YXItc2xpZGVzaGFyZTogXCJcXGYxZTdcIjtcbiRmYS12YXItc21pbGUtbzogXCJcXGYxMThcIjtcbiRmYS12YXItc25hcGNoYXQ6IFwiXFxmMmFiXCI7XG4kZmEtdmFyLXNuYXBjaGF0LWdob3N0OiBcIlxcZjJhY1wiO1xuJGZhLXZhci1zbmFwY2hhdC1zcXVhcmU6IFwiXFxmMmFkXCI7XG4kZmEtdmFyLXNub3dmbGFrZS1vOiBcIlxcZjJkY1wiO1xuJGZhLXZhci1zb2NjZXItYmFsbC1vOiBcIlxcZjFlM1wiO1xuJGZhLXZhci1zb3J0OiBcIlxcZjBkY1wiO1xuJGZhLXZhci1zb3J0LWFscGhhLWFzYzogXCJcXGYxNWRcIjtcbiRmYS12YXItc29ydC1hbHBoYS1kZXNjOiBcIlxcZjE1ZVwiO1xuJGZhLXZhci1zb3J0LWFtb3VudC1hc2M6IFwiXFxmMTYwXCI7XG4kZmEtdmFyLXNvcnQtYW1vdW50LWRlc2M6IFwiXFxmMTYxXCI7XG4kZmEtdmFyLXNvcnQtYXNjOiBcIlxcZjBkZVwiO1xuJGZhLXZhci1zb3J0LWRlc2M6IFwiXFxmMGRkXCI7XG4kZmEtdmFyLXNvcnQtZG93bjogXCJcXGYwZGRcIjtcbiRmYS12YXItc29ydC1udW1lcmljLWFzYzogXCJcXGYxNjJcIjtcbiRmYS12YXItc29ydC1udW1lcmljLWRlc2M6IFwiXFxmMTYzXCI7XG4kZmEtdmFyLXNvcnQtdXA6IFwiXFxmMGRlXCI7XG4kZmEtdmFyLXNvdW5kY2xvdWQ6IFwiXFxmMWJlXCI7XG4kZmEtdmFyLXNwYWNlLXNodXR0bGU6IFwiXFxmMTk3XCI7XG4kZmEtdmFyLXNwaW5uZXI6IFwiXFxmMTEwXCI7XG4kZmEtdmFyLXNwb29uOiBcIlxcZjFiMVwiO1xuJGZhLXZhci1zcG90aWZ5OiBcIlxcZjFiY1wiO1xuJGZhLXZhci1zcXVhcmU6IFwiXFxmMGM4XCI7XG4kZmEtdmFyLXNxdWFyZS1vOiBcIlxcZjA5NlwiO1xuJGZhLXZhci1zdGFjay1leGNoYW5nZTogXCJcXGYxOGRcIjtcbiRmYS12YXItc3RhY2stb3ZlcmZsb3c6IFwiXFxmMTZjXCI7XG4kZmEtdmFyLXN0YXI6IFwiXFxmMDA1XCI7XG4kZmEtdmFyLXN0YXItaGFsZjogXCJcXGYwODlcIjtcbiRmYS12YXItc3Rhci1oYWxmLWVtcHR5OiBcIlxcZjEyM1wiO1xuJGZhLXZhci1zdGFyLWhhbGYtZnVsbDogXCJcXGYxMjNcIjtcbiRmYS12YXItc3Rhci1oYWxmLW86IFwiXFxmMTIzXCI7XG4kZmEtdmFyLXN0YXItbzogXCJcXGYwMDZcIjtcbiRmYS12YXItc3RlYW06IFwiXFxmMWI2XCI7XG4kZmEtdmFyLXN0ZWFtLXNxdWFyZTogXCJcXGYxYjdcIjtcbiRmYS12YXItc3RlcC1iYWNrd2FyZDogXCJcXGYwNDhcIjtcbiRmYS12YXItc3RlcC1mb3J3YXJkOiBcIlxcZjA1MVwiO1xuJGZhLXZhci1zdGV0aG9zY29wZTogXCJcXGYwZjFcIjtcbiRmYS12YXItc3RpY2t5LW5vdGU6IFwiXFxmMjQ5XCI7XG4kZmEtdmFyLXN0aWNreS1ub3RlLW86IFwiXFxmMjRhXCI7XG4kZmEtdmFyLXN0b3A6IFwiXFxmMDRkXCI7XG4kZmEtdmFyLXN0b3AtY2lyY2xlOiBcIlxcZjI4ZFwiO1xuJGZhLXZhci1zdG9wLWNpcmNsZS1vOiBcIlxcZjI4ZVwiO1xuJGZhLXZhci1zdHJlZXQtdmlldzogXCJcXGYyMWRcIjtcbiRmYS12YXItc3RyaWtldGhyb3VnaDogXCJcXGYwY2NcIjtcbiRmYS12YXItc3R1bWJsZXVwb246IFwiXFxmMWE0XCI7XG4kZmEtdmFyLXN0dW1ibGV1cG9uLWNpcmNsZTogXCJcXGYxYTNcIjtcbiRmYS12YXItc3Vic2NyaXB0OiBcIlxcZjEyY1wiO1xuJGZhLXZhci1zdWJ3YXk6IFwiXFxmMjM5XCI7XG4kZmEtdmFyLXN1aXRjYXNlOiBcIlxcZjBmMlwiO1xuJGZhLXZhci1zdW4tbzogXCJcXGYxODVcIjtcbiRmYS12YXItc3VwZXJwb3dlcnM6IFwiXFxmMmRkXCI7XG4kZmEtdmFyLXN1cGVyc2NyaXB0OiBcIlxcZjEyYlwiO1xuJGZhLXZhci1zdXBwb3J0OiBcIlxcZjFjZFwiO1xuJGZhLXZhci10YWJsZTogXCJcXGYwY2VcIjtcbiRmYS12YXItdGFibGV0OiBcIlxcZjEwYVwiO1xuJGZhLXZhci10YWNob21ldGVyOiBcIlxcZjBlNFwiO1xuJGZhLXZhci10YWc6IFwiXFxmMDJiXCI7XG4kZmEtdmFyLXRhZ3M6IFwiXFxmMDJjXCI7XG4kZmEtdmFyLXRhc2tzOiBcIlxcZjBhZVwiO1xuJGZhLXZhci10YXhpOiBcIlxcZjFiYVwiO1xuJGZhLXZhci10ZWxlZ3JhbTogXCJcXGYyYzZcIjtcbiRmYS12YXItdGVsZXZpc2lvbjogXCJcXGYyNmNcIjtcbiRmYS12YXItdGVuY2VudC13ZWlibzogXCJcXGYxZDVcIjtcbiRmYS12YXItdGVybWluYWw6IFwiXFxmMTIwXCI7XG4kZmEtdmFyLXRleHQtaGVpZ2h0OiBcIlxcZjAzNFwiO1xuJGZhLXZhci10ZXh0LXdpZHRoOiBcIlxcZjAzNVwiO1xuJGZhLXZhci10aDogXCJcXGYwMGFcIjtcbiRmYS12YXItdGgtbGFyZ2U6IFwiXFxmMDA5XCI7XG4kZmEtdmFyLXRoLWxpc3Q6IFwiXFxmMDBiXCI7XG4kZmEtdmFyLXRoZW1laXNsZTogXCJcXGYyYjJcIjtcbiRmYS12YXItdGhlcm1vbWV0ZXI6IFwiXFxmMmM3XCI7XG4kZmEtdmFyLXRoZXJtb21ldGVyLTA6IFwiXFxmMmNiXCI7XG4kZmEtdmFyLXRoZXJtb21ldGVyLTE6IFwiXFxmMmNhXCI7XG4kZmEtdmFyLXRoZXJtb21ldGVyLTI6IFwiXFxmMmM5XCI7XG4kZmEtdmFyLXRoZXJtb21ldGVyLTM6IFwiXFxmMmM4XCI7XG4kZmEtdmFyLXRoZXJtb21ldGVyLTQ6IFwiXFxmMmM3XCI7XG4kZmEtdmFyLXRoZXJtb21ldGVyLWVtcHR5OiBcIlxcZjJjYlwiO1xuJGZhLXZhci10aGVybW9tZXRlci1mdWxsOiBcIlxcZjJjN1wiO1xuJGZhLXZhci10aGVybW9tZXRlci1oYWxmOiBcIlxcZjJjOVwiO1xuJGZhLXZhci10aGVybW9tZXRlci1xdWFydGVyOiBcIlxcZjJjYVwiO1xuJGZhLXZhci10aGVybW9tZXRlci10aHJlZS1xdWFydGVyczogXCJcXGYyYzhcIjtcbiRmYS12YXItdGh1bWItdGFjazogXCJcXGYwOGRcIjtcbiRmYS12YXItdGh1bWJzLWRvd246IFwiXFxmMTY1XCI7XG4kZmEtdmFyLXRodW1icy1vLWRvd246IFwiXFxmMDg4XCI7XG4kZmEtdmFyLXRodW1icy1vLXVwOiBcIlxcZjA4N1wiO1xuJGZhLXZhci10aHVtYnMtdXA6IFwiXFxmMTY0XCI7XG4kZmEtdmFyLXRpY2tldDogXCJcXGYxNDVcIjtcbiRmYS12YXItdGltZXM6IFwiXFxmMDBkXCI7XG4kZmEtdmFyLXRpbWVzLWNpcmNsZTogXCJcXGYwNTdcIjtcbiRmYS12YXItdGltZXMtY2lyY2xlLW86IFwiXFxmMDVjXCI7XG4kZmEtdmFyLXRpbWVzLXJlY3RhbmdsZTogXCJcXGYyZDNcIjtcbiRmYS12YXItdGltZXMtcmVjdGFuZ2xlLW86IFwiXFxmMmQ0XCI7XG4kZmEtdmFyLXRpbnQ6IFwiXFxmMDQzXCI7XG4kZmEtdmFyLXRvZ2dsZS1kb3duOiBcIlxcZjE1MFwiO1xuJGZhLXZhci10b2dnbGUtbGVmdDogXCJcXGYxOTFcIjtcbiRmYS12YXItdG9nZ2xlLW9mZjogXCJcXGYyMDRcIjtcbiRmYS12YXItdG9nZ2xlLW9uOiBcIlxcZjIwNVwiO1xuJGZhLXZhci10b2dnbGUtcmlnaHQ6IFwiXFxmMTUyXCI7XG4kZmEtdmFyLXRvZ2dsZS11cDogXCJcXGYxNTFcIjtcbiRmYS12YXItdHJhZGVtYXJrOiBcIlxcZjI1Y1wiO1xuJGZhLXZhci10cmFpbjogXCJcXGYyMzhcIjtcbiRmYS12YXItdHJhbnNnZW5kZXI6IFwiXFxmMjI0XCI7XG4kZmEtdmFyLXRyYW5zZ2VuZGVyLWFsdDogXCJcXGYyMjVcIjtcbiRmYS12YXItdHJhc2g6IFwiXFxmMWY4XCI7XG4kZmEtdmFyLXRyYXNoLW86IFwiXFxmMDE0XCI7XG4kZmEtdmFyLXRyZWU6IFwiXFxmMWJiXCI7XG4kZmEtdmFyLXRyZWxsbzogXCJcXGYxODFcIjtcbiRmYS12YXItdHJpcGFkdmlzb3I6IFwiXFxmMjYyXCI7XG4kZmEtdmFyLXRyb3BoeTogXCJcXGYwOTFcIjtcbiRmYS12YXItdHJ1Y2s6IFwiXFxmMGQxXCI7XG4kZmEtdmFyLXRyeTogXCJcXGYxOTVcIjtcbiRmYS12YXItdHR5OiBcIlxcZjFlNFwiO1xuJGZhLXZhci10dW1ibHI6IFwiXFxmMTczXCI7XG4kZmEtdmFyLXR1bWJsci1zcXVhcmU6IFwiXFxmMTc0XCI7XG4kZmEtdmFyLXR1cmtpc2gtbGlyYTogXCJcXGYxOTVcIjtcbiRmYS12YXItdHY6IFwiXFxmMjZjXCI7XG4kZmEtdmFyLXR3aXRjaDogXCJcXGYxZThcIjtcbiRmYS12YXItdHdpdHRlcjogXCJcXGYwOTlcIjtcbiRmYS12YXItdHdpdHRlci1zcXVhcmU6IFwiXFxmMDgxXCI7XG4kZmEtdmFyLXVtYnJlbGxhOiBcIlxcZjBlOVwiO1xuJGZhLXZhci11bmRlcmxpbmU6IFwiXFxmMGNkXCI7XG4kZmEtdmFyLXVuZG86IFwiXFxmMGUyXCI7XG4kZmEtdmFyLXVuaXZlcnNhbC1hY2Nlc3M6IFwiXFxmMjlhXCI7XG4kZmEtdmFyLXVuaXZlcnNpdHk6IFwiXFxmMTljXCI7XG4kZmEtdmFyLXVubGluazogXCJcXGYxMjdcIjtcbiRmYS12YXItdW5sb2NrOiBcIlxcZjA5Y1wiO1xuJGZhLXZhci11bmxvY2stYWx0OiBcIlxcZjEzZVwiO1xuJGZhLXZhci11bnNvcnRlZDogXCJcXGYwZGNcIjtcbiRmYS12YXItdXBsb2FkOiBcIlxcZjA5M1wiO1xuJGZhLXZhci11c2I6IFwiXFxmMjg3XCI7XG4kZmEtdmFyLXVzZDogXCJcXGYxNTVcIjtcbiRmYS12YXItdXNlcjogXCJcXGYwMDdcIjtcbiRmYS12YXItdXNlci1jaXJjbGU6IFwiXFxmMmJkXCI7XG4kZmEtdmFyLXVzZXItY2lyY2xlLW86IFwiXFxmMmJlXCI7XG4kZmEtdmFyLXVzZXItbWQ6IFwiXFxmMGYwXCI7XG4kZmEtdmFyLXVzZXItbzogXCJcXGYyYzBcIjtcbiRmYS12YXItdXNlci1wbHVzOiBcIlxcZjIzNFwiO1xuJGZhLXZhci11c2VyLXNlY3JldDogXCJcXGYyMWJcIjtcbiRmYS12YXItdXNlci10aW1lczogXCJcXGYyMzVcIjtcbiRmYS12YXItdXNlcnM6IFwiXFxmMGMwXCI7XG4kZmEtdmFyLXZjYXJkOiBcIlxcZjJiYlwiO1xuJGZhLXZhci12Y2FyZC1vOiBcIlxcZjJiY1wiO1xuJGZhLXZhci12ZW51czogXCJcXGYyMjFcIjtcbiRmYS12YXItdmVudXMtZG91YmxlOiBcIlxcZjIyNlwiO1xuJGZhLXZhci12ZW51cy1tYXJzOiBcIlxcZjIyOFwiO1xuJGZhLXZhci12aWFjb2luOiBcIlxcZjIzN1wiO1xuJGZhLXZhci12aWFkZW86IFwiXFxmMmE5XCI7XG4kZmEtdmFyLXZpYWRlby1zcXVhcmU6IFwiXFxmMmFhXCI7XG4kZmEtdmFyLXZpZGVvLWNhbWVyYTogXCJcXGYwM2RcIjtcbiRmYS12YXItdmltZW86IFwiXFxmMjdkXCI7XG4kZmEtdmFyLXZpbWVvLXNxdWFyZTogXCJcXGYxOTRcIjtcbiRmYS12YXItdmluZTogXCJcXGYxY2FcIjtcbiRmYS12YXItdms6IFwiXFxmMTg5XCI7XG4kZmEtdmFyLXZvbHVtZS1jb250cm9sLXBob25lOiBcIlxcZjJhMFwiO1xuJGZhLXZhci12b2x1bWUtZG93bjogXCJcXGYwMjdcIjtcbiRmYS12YXItdm9sdW1lLW9mZjogXCJcXGYwMjZcIjtcbiRmYS12YXItdm9sdW1lLXVwOiBcIlxcZjAyOFwiO1xuJGZhLXZhci13YXJuaW5nOiBcIlxcZjA3MVwiO1xuJGZhLXZhci13ZWNoYXQ6IFwiXFxmMWQ3XCI7XG4kZmEtdmFyLXdlaWJvOiBcIlxcZjE4YVwiO1xuJGZhLXZhci13ZWl4aW46IFwiXFxmMWQ3XCI7XG4kZmEtdmFyLXdoYXRzYXBwOiBcIlxcZjIzMlwiO1xuJGZhLXZhci13aGVlbGNoYWlyOiBcIlxcZjE5M1wiO1xuJGZhLXZhci13aGVlbGNoYWlyLWFsdDogXCJcXGYyOWJcIjtcbiRmYS12YXItd2lmaTogXCJcXGYxZWJcIjtcbiRmYS12YXItd2lraXBlZGlhLXc6IFwiXFxmMjY2XCI7XG4kZmEtdmFyLXdpbmRvdy1jbG9zZTogXCJcXGYyZDNcIjtcbiRmYS12YXItd2luZG93LWNsb3NlLW86IFwiXFxmMmQ0XCI7XG4kZmEtdmFyLXdpbmRvdy1tYXhpbWl6ZTogXCJcXGYyZDBcIjtcbiRmYS12YXItd2luZG93LW1pbmltaXplOiBcIlxcZjJkMVwiO1xuJGZhLXZhci13aW5kb3ctcmVzdG9yZTogXCJcXGYyZDJcIjtcbiRmYS12YXItd2luZG93czogXCJcXGYxN2FcIjtcbiRmYS12YXItd29uOiBcIlxcZjE1OVwiO1xuJGZhLXZhci13b3JkcHJlc3M6IFwiXFxmMTlhXCI7XG4kZmEtdmFyLXdwYmVnaW5uZXI6IFwiXFxmMjk3XCI7XG4kZmEtdmFyLXdwZXhwbG9yZXI6IFwiXFxmMmRlXCI7XG4kZmEtdmFyLXdwZm9ybXM6IFwiXFxmMjk4XCI7XG4kZmEtdmFyLXdyZW5jaDogXCJcXGYwYWRcIjtcbiRmYS12YXIteGluZzogXCJcXGYxNjhcIjtcbiRmYS12YXIteGluZy1zcXVhcmU6IFwiXFxmMTY5XCI7XG4kZmEtdmFyLXktY29tYmluYXRvcjogXCJcXGYyM2JcIjtcbiRmYS12YXIteS1jb21iaW5hdG9yLXNxdWFyZTogXCJcXGYxZDRcIjtcbiRmYS12YXIteWFob286IFwiXFxmMTllXCI7XG4kZmEtdmFyLXljOiBcIlxcZjIzYlwiO1xuJGZhLXZhci15Yy1zcXVhcmU6IFwiXFxmMWQ0XCI7XG4kZmEtdmFyLXllbHA6IFwiXFxmMWU5XCI7XG4kZmEtdmFyLXllbjogXCJcXGYxNTdcIjtcbiRmYS12YXIteW9hc3Q6IFwiXFxmMmIxXCI7XG4kZmEtdmFyLXlvdXR1YmU6IFwiXFxmMTY3XCI7XG4kZmEtdmFyLXlvdXR1YmUtcGxheTogXCJcXGYxNmFcIjtcbiRmYS12YXIteW91dHViZS1zcXVhcmU6IFwiXFxmMTY2XCI7XG5cbiIsIi8vIE1peGluc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuQG1peGluIGZhLWljb24oKSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udDogbm9ybWFsIG5vcm1hbCBub3JtYWwgI3skZmEtZm9udC1zaXplLWJhc2V9LyN7JGZhLWxpbmUtaGVpZ2h0LWJhc2V9IEZvbnRBd2Vzb21lOyAvLyBzaG9ydGVuaW5nIGZvbnQgZGVjbGFyYXRpb25cbiAgZm9udC1zaXplOiBpbmhlcml0OyAvLyBjYW4ndCBoYXZlIGZvbnQtc2l6ZSBpbmhlcml0IG9uIGxpbmUgYWJvdmUsIHNvIG5lZWQgdG8gb3ZlcnJpZGVcbiAgdGV4dC1yZW5kZXJpbmc6IGF1dG87IC8vIG9wdGltaXplbGVnaWJpbGl0eSB0aHJvd3MgdGhpbmdzIG9mZiAjMTA5NFxuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcblxufVxuXG5AbWl4aW4gZmEtaWNvbi1yb3RhdGUoJGRlZ3JlZXMsICRyb3RhdGlvbikge1xuICAtbXMtZmlsdGVyOiBcInByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5CYXNpY0ltYWdlKHJvdGF0aW9uPSN7JHJvdGF0aW9ufSlcIjtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgkZGVncmVlcyk7XG4gICAgICAtbXMtdHJhbnNmb3JtOiByb3RhdGUoJGRlZ3JlZXMpO1xuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKCRkZWdyZWVzKTtcbn1cblxuQG1peGluIGZhLWljb24tZmxpcCgkaG9yaXosICR2ZXJ0LCAkcm90YXRpb24pIHtcbiAgLW1zLWZpbHRlcjogXCJwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQmFzaWNJbWFnZShyb3RhdGlvbj0jeyRyb3RhdGlvbn0sIG1pcnJvcj0xKVwiO1xuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoJGhvcml6LCAkdmVydCk7XG4gICAgICAtbXMtdHJhbnNmb3JtOiBzY2FsZSgkaG9yaXosICR2ZXJ0KTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKCRob3JpeiwgJHZlcnQpO1xufVxuXG5cbi8vIE9ubHkgZGlzcGxheSBjb250ZW50IHRvIHNjcmVlbiByZWFkZXJzLiBBIGxhIEJvb3RzdHJhcCA0LlxuLy9cbi8vIFNlZTogaHR0cDovL2ExMXlwcm9qZWN0LmNvbS9wb3N0cy9ob3ctdG8taGlkZS1jb250ZW50L1xuXG5AbWl4aW4gc3Itb25seSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDFweDtcbiAgaGVpZ2h0OiAxcHg7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogLTFweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY2xpcDogcmVjdCgwLDAsMCwwKTtcbiAgYm9yZGVyOiAwO1xufVxuXG4vLyBVc2UgaW4gY29uanVuY3Rpb24gd2l0aCAuc3Itb25seSB0byBvbmx5IGRpc3BsYXkgY29udGVudCB3aGVuIGl0J3MgZm9jdXNlZC5cbi8vXG4vLyBVc2VmdWwgZm9yIFwiU2tpcCB0byBtYWluIGNvbnRlbnRcIiBsaW5rczsgc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMTMvTk9URS1XQ0FHMjAtVEVDSFMtMjAxMzA5MDUvRzFcbi8vXG4vLyBDcmVkaXQ6IEhUTUw1IEJvaWxlcnBsYXRlXG5cbkBtaXhpbiBzci1vbmx5LWZvY3VzYWJsZSB7XG4gICY6YWN0aXZlLFxuICAmOmZvY3VzIHtcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBtYXJnaW46IDA7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgY2xpcDogYXV0bztcbiAgfVxufVxuIiwiLyogRk9OVCBQQVRIXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdGb250QXdlc29tZSc7XG4gIHNyYzogdXJsKCcjeyRmYS1mb250LXBhdGh9L2ZvbnRhd2Vzb21lLXdlYmZvbnQuZW90P3Y9I3skZmEtdmVyc2lvbn0nKTtcbiAgc3JjOiB1cmwoJyN7JGZhLWZvbnQtcGF0aH0vZm9udGF3ZXNvbWUtd2ViZm9udC5lb3Q/I2llZml4JnY9I3skZmEtdmVyc2lvbn0nKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXG4gICAgdXJsKCcjeyRmYS1mb250LXBhdGh9L2ZvbnRhd2Vzb21lLXdlYmZvbnQud29mZjI/dj0jeyRmYS12ZXJzaW9ufScpIGZvcm1hdCgnd29mZjInKSxcbiAgICB1cmwoJyN7JGZhLWZvbnQtcGF0aH0vZm9udGF3ZXNvbWUtd2ViZm9udC53b2ZmP3Y9I3skZmEtdmVyc2lvbn0nKSBmb3JtYXQoJ3dvZmYnKSxcbiAgICB1cmwoJyN7JGZhLWZvbnQtcGF0aH0vZm9udGF3ZXNvbWUtd2ViZm9udC50dGY/dj0jeyRmYS12ZXJzaW9ufScpIGZvcm1hdCgndHJ1ZXR5cGUnKSxcbiAgICB1cmwoJyN7JGZhLWZvbnQtcGF0aH0vZm9udGF3ZXNvbWUtd2ViZm9udC5zdmc/dj0jeyRmYS12ZXJzaW9ufSNmb250YXdlc29tZXJlZ3VsYXInKSBmb3JtYXQoJ3N2ZycpO1xuLy8gIHNyYzogdXJsKCcjeyRmYS1mb250LXBhdGh9L0ZvbnRBd2Vzb21lLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgLy8gdXNlZCB3aGVuIGRldmVsb3BpbmcgZm9udHNcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuIiwiLy8gQmFzZSBDbGFzcyBEZWZpbml0aW9uXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi4jeyRmYS1jc3MtcHJlZml4fSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udDogbm9ybWFsIG5vcm1hbCBub3JtYWwgI3skZmEtZm9udC1zaXplLWJhc2V9LyN7JGZhLWxpbmUtaGVpZ2h0LWJhc2V9IEZvbnRBd2Vzb21lOyAvLyBzaG9ydGVuaW5nIGZvbnQgZGVjbGFyYXRpb25cbiAgZm9udC1zaXplOiBpbmhlcml0OyAvLyBjYW4ndCBoYXZlIGZvbnQtc2l6ZSBpbmhlcml0IG9uIGxpbmUgYWJvdmUsIHNvIG5lZWQgdG8gb3ZlcnJpZGVcbiAgdGV4dC1yZW5kZXJpbmc6IGF1dG87IC8vIG9wdGltaXplbGVnaWJpbGl0eSB0aHJvd3MgdGhpbmdzIG9mZiAjMTA5NFxuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcblxufVxuIiwiLy8gSWNvbiBTaXplc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vKiBtYWtlcyB0aGUgZm9udCAzMyUgbGFyZ2VyIHJlbGF0aXZlIHRvIHRoZSBpY29uIGNvbnRhaW5lciAqL1xuLiN7JGZhLWNzcy1wcmVmaXh9LWxnIHtcbiAgZm9udC1zaXplOiAoNGVtIC8gMyk7XG4gIGxpbmUtaGVpZ2h0OiAoM2VtIC8gNCk7XG4gIHZlcnRpY2FsLWFsaWduOiAtMTUlO1xufVxuLiN7JGZhLWNzcy1wcmVmaXh9LTJ4IHsgZm9udC1zaXplOiAyZW07IH1cbi4jeyRmYS1jc3MtcHJlZml4fS0zeCB7IGZvbnQtc2l6ZTogM2VtOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tNHggeyBmb250LXNpemU6IDRlbTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LTV4IHsgZm9udC1zaXplOiA1ZW07IH1cbiIsIi8vIEZpeGVkIFdpZHRoIEljb25zXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4uI3skZmEtY3NzLXByZWZpeH0tZncge1xuICB3aWR0aDogKDE4ZW0gLyAxNCk7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbiIsIi8vIExpc3QgSWNvbnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLiN7JGZhLWNzcy1wcmVmaXh9LXVsIHtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBtYXJnaW4tbGVmdDogJGZhLWxpLXdpZHRoO1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gID4gbGkgeyBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbn1cbi4jeyRmYS1jc3MtcHJlZml4fS1saSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLSRmYS1saS13aWR0aDtcbiAgd2lkdGg6ICRmYS1saS13aWR0aDtcbiAgdG9wOiAoMmVtIC8gMTQpO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICYuI3skZmEtY3NzLXByZWZpeH0tbGcge1xuICAgIGxlZnQ6IC0kZmEtbGktd2lkdGggKyAoNGVtIC8gMTQpO1xuICB9XG59XG4iLCIvLyBCb3JkZXJlZCAmIFB1bGxlZFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4uI3skZmEtY3NzLXByZWZpeH0tYm9yZGVyIHtcbiAgcGFkZGluZzogLjJlbSAuMjVlbSAuMTVlbTtcbiAgYm9yZGVyOiBzb2xpZCAuMDhlbSAkZmEtYm9yZGVyLWNvbG9yO1xuICBib3JkZXItcmFkaXVzOiAuMWVtO1xufVxuXG4uI3skZmEtY3NzLXByZWZpeH0tcHVsbC1sZWZ0IHsgZmxvYXQ6IGxlZnQ7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1wdWxsLXJpZ2h0IHsgZmxvYXQ6IHJpZ2h0OyB9XG5cbi4jeyRmYS1jc3MtcHJlZml4fSB7XG4gICYuI3skZmEtY3NzLXByZWZpeH0tcHVsbC1sZWZ0IHsgbWFyZ2luLXJpZ2h0OiAuM2VtOyB9XG4gICYuI3skZmEtY3NzLXByZWZpeH0tcHVsbC1yaWdodCB7IG1hcmdpbi1sZWZ0OiAuM2VtOyB9XG59XG5cbi8qIERlcHJlY2F0ZWQgYXMgb2YgNC40LjAgKi9cbi5wdWxsLXJpZ2h0IHsgZmxvYXQ6IHJpZ2h0OyB9XG4ucHVsbC1sZWZ0IHsgZmxvYXQ6IGxlZnQ7IH1cblxuLiN7JGZhLWNzcy1wcmVmaXh9IHtcbiAgJi5wdWxsLWxlZnQgeyBtYXJnaW4tcmlnaHQ6IC4zZW07IH1cbiAgJi5wdWxsLXJpZ2h0IHsgbWFyZ2luLWxlZnQ6IC4zZW07IH1cbn1cbiIsIi8vIFNwaW5uaW5nIEljb25zXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4uI3skZmEtY3NzLXByZWZpeH0tc3BpbiB7XG4gIC13ZWJraXQtYW5pbWF0aW9uOiBmYS1zcGluIDJzIGluZmluaXRlIGxpbmVhcjtcbiAgICAgICAgICBhbmltYXRpb246IGZhLXNwaW4gMnMgaW5maW5pdGUgbGluZWFyO1xufVxuXG4uI3skZmEtY3NzLXByZWZpeH0tcHVsc2Uge1xuICAtd2Via2l0LWFuaW1hdGlvbjogZmEtc3BpbiAxcyBpbmZpbml0ZSBzdGVwcyg4KTtcbiAgICAgICAgICBhbmltYXRpb246IGZhLXNwaW4gMXMgaW5maW5pdGUgc3RlcHMoOCk7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBmYS1zcGluIHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgfVxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM1OWRlZyk7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNTlkZWcpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgZmEtc3BpbiB7XG4gIDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gIH1cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNTlkZWcpO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzU5ZGVnKTtcbiAgfVxufVxuIiwiLy8gUm90YXRlZCAmIEZsaXBwZWQgSWNvbnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLiN7JGZhLWNzcy1wcmVmaXh9LXJvdGF0ZS05MCAgeyBAaW5jbHVkZSBmYS1pY29uLXJvdGF0ZSg5MGRlZywgMSk7ICB9XG4uI3skZmEtY3NzLXByZWZpeH0tcm90YXRlLTE4MCB7IEBpbmNsdWRlIGZhLWljb24tcm90YXRlKDE4MGRlZywgMik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1yb3RhdGUtMjcwIHsgQGluY2x1ZGUgZmEtaWNvbi1yb3RhdGUoMjcwZGVnLCAzKTsgfVxuXG4uI3skZmEtY3NzLXByZWZpeH0tZmxpcC1ob3Jpem9udGFsIHsgQGluY2x1ZGUgZmEtaWNvbi1mbGlwKC0xLCAxLCAwKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWZsaXAtdmVydGljYWwgICB7IEBpbmNsdWRlIGZhLWljb24tZmxpcCgxLCAtMSwgMik7IH1cblxuLy8gSG9vayBmb3IgSUU4LTlcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuOnJvb3QgLiN7JGZhLWNzcy1wcmVmaXh9LXJvdGF0ZS05MCxcbjpyb290IC4jeyRmYS1jc3MtcHJlZml4fS1yb3RhdGUtMTgwLFxuOnJvb3QgLiN7JGZhLWNzcy1wcmVmaXh9LXJvdGF0ZS0yNzAsXG46cm9vdCAuI3skZmEtY3NzLXByZWZpeH0tZmxpcC1ob3Jpem9udGFsLFxuOnJvb3QgLiN7JGZhLWNzcy1wcmVmaXh9LWZsaXAtdmVydGljYWwge1xuICBmaWx0ZXI6IG5vbmU7XG59XG4iLCIvLyBTdGFja2VkIEljb25zXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi4jeyRmYS1jc3MtcHJlZml4fS1zdGFjayB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMmVtO1xuICBoZWlnaHQ6IDJlbTtcbiAgbGluZS1oZWlnaHQ6IDJlbTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbi4jeyRmYS1jc3MtcHJlZml4fS1zdGFjay0xeCwgLiN7JGZhLWNzcy1wcmVmaXh9LXN0YWNrLTJ4IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLiN7JGZhLWNzcy1wcmVmaXh9LXN0YWNrLTF4IHsgbGluZS1oZWlnaHQ6IGluaGVyaXQ7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zdGFjay0yeCB7IGZvbnQtc2l6ZTogMmVtOyB9XG4uI3skZmEtY3NzLXByZWZpeH0taW52ZXJzZSB7IGNvbG9yOiAkZmEtaW52ZXJzZTsgfVxuIiwiLyogRm9udCBBd2Vzb21lIHVzZXMgdGhlIFVuaWNvZGUgUHJpdmF0ZSBVc2UgQXJlYSAoUFVBKSB0byBlbnN1cmUgc2NyZWVuXG4gICByZWFkZXJzIGRvIG5vdCByZWFkIG9mZiByYW5kb20gY2hhcmFjdGVycyB0aGF0IHJlcHJlc2VudCBpY29ucyAqL1xuXG4uI3skZmEtY3NzLXByZWZpeH0tZ2xhc3M6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1nbGFzczsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW11c2ljOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItbXVzaWM7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zZWFyY2g6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1zZWFyY2g7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1lbnZlbG9wZS1vOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItZW52ZWxvcGUtbzsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWhlYXJ0OmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItaGVhcnQ7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zdGFyOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItc3RhcjsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXN0YXItbzpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXN0YXItbzsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXVzZXI6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci11c2VyOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZmlsbTpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWZpbG07IH1cbi4jeyRmYS1jc3MtcHJlZml4fS10aC1sYXJnZTpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXRoLWxhcmdlOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdGg6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci10aDsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRoLWxpc3Q6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci10aC1saXN0OyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2hlY2s6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1jaGVjazsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXJlbW92ZTpiZWZvcmUsXG4uI3skZmEtY3NzLXByZWZpeH0tY2xvc2U6YmVmb3JlLFxuLiN7JGZhLWNzcy1wcmVmaXh9LXRpbWVzOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItdGltZXM7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zZWFyY2gtcGx1czpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXNlYXJjaC1wbHVzOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc2VhcmNoLW1pbnVzOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItc2VhcmNoLW1pbnVzOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcG93ZXItb2ZmOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItcG93ZXItb2ZmOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc2lnbmFsOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItc2lnbmFsOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZ2VhcjpiZWZvcmUsXG4uI3skZmEtY3NzLXByZWZpeH0tY29nOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItY29nOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdHJhc2gtbzpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXRyYXNoLW87IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1ob21lOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItaG9tZTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWZpbGUtbzpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWZpbGUtbzsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNsb2NrLW86YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1jbG9jay1vOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcm9hZDpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXJvYWQ7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1kb3dubG9hZDpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWRvd25sb2FkOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYXJyb3ctY2lyY2xlLW8tZG93bjpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWFycm93LWNpcmNsZS1vLWRvd247IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1hcnJvdy1jaXJjbGUtby11cDpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWFycm93LWNpcmNsZS1vLXVwOyB9XG4uI3skZmEtY3NzLXByZWZpeH0taW5ib3g6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1pbmJveDsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXBsYXktY2lyY2xlLW86YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1wbGF5LWNpcmNsZS1vOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcm90YXRlLXJpZ2h0OmJlZm9yZSxcbi4jeyRmYS1jc3MtcHJlZml4fS1yZXBlYXQ6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1yZXBlYXQ7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1yZWZyZXNoOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItcmVmcmVzaDsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWxpc3QtYWx0OmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItbGlzdC1hbHQ7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1sb2NrOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItbG9jazsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWZsYWc6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1mbGFnOyB9XG4uI3skZmEtY3NzLXByZWZpeH0taGVhZHBob25lczpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWhlYWRwaG9uZXM7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS12b2x1bWUtb2ZmOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItdm9sdW1lLW9mZjsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXZvbHVtZS1kb3duOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItdm9sdW1lLWRvd247IH1cbi4jeyRmYS1jc3MtcHJlZml4fS12b2x1bWUtdXA6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci12b2x1bWUtdXA7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1xcmNvZGU6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1xcmNvZGU7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1iYXJjb2RlOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItYmFyY29kZTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRhZzpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXRhZzsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRhZ3M6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci10YWdzOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYm9vazpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWJvb2s7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1ib29rbWFyazpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWJvb2ttYXJrOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcHJpbnQ6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1wcmludDsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNhbWVyYTpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWNhbWVyYTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWZvbnQ6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1mb250OyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYm9sZDpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWJvbGQ7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1pdGFsaWM6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1pdGFsaWM7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS10ZXh0LWhlaWdodDpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXRleHQtaGVpZ2h0OyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdGV4dC13aWR0aDpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXRleHQtd2lkdGg7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1hbGlnbi1sZWZ0OmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItYWxpZ24tbGVmdDsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWFsaWduLWNlbnRlcjpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWFsaWduLWNlbnRlcjsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWFsaWduLXJpZ2h0OmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItYWxpZ24tcmlnaHQ7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1hbGlnbi1qdXN0aWZ5OmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItYWxpZ24tanVzdGlmeTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWxpc3Q6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1saXN0OyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZGVkZW50OmJlZm9yZSxcbi4jeyRmYS1jc3MtcHJlZml4fS1vdXRkZW50OmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItb3V0ZGVudDsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWluZGVudDpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWluZGVudDsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXZpZGVvLWNhbWVyYTpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXZpZGVvLWNhbWVyYTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXBob3RvOmJlZm9yZSxcbi4jeyRmYS1jc3MtcHJlZml4fS1pbWFnZTpiZWZvcmUsXG4uI3skZmEtY3NzLXByZWZpeH0tcGljdHVyZS1vOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItcGljdHVyZS1vOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcGVuY2lsOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItcGVuY2lsOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbWFwLW1hcmtlcjpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLW1hcC1tYXJrZXI7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1hZGp1c3Q6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1hZGp1c3Q7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS10aW50OmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItdGludDsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWVkaXQ6YmVmb3JlLFxuLiN7JGZhLWNzcy1wcmVmaXh9LXBlbmNpbC1zcXVhcmUtbzpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXBlbmNpbC1zcXVhcmUtbzsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNoYXJlLXNxdWFyZS1vOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItc2hhcmUtc3F1YXJlLW87IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jaGVjay1zcXVhcmUtbzpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWNoZWNrLXNxdWFyZS1vOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYXJyb3dzOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItYXJyb3dzOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc3RlcC1iYWNrd2FyZDpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXN0ZXAtYmFja3dhcmQ7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1mYXN0LWJhY2t3YXJkOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItZmFzdC1iYWNrd2FyZDsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJhY2t3YXJkOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItYmFja3dhcmQ7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1wbGF5OmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItcGxheTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXBhdXNlOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItcGF1c2U7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zdG9wOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItc3RvcDsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWZvcndhcmQ6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1mb3J3YXJkOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZmFzdC1mb3J3YXJkOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItZmFzdC1mb3J3YXJkOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc3RlcC1mb3J3YXJkOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItc3RlcC1mb3J3YXJkOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZWplY3Q6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1lamVjdDsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNoZXZyb24tbGVmdDpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWNoZXZyb24tbGVmdDsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNoZXZyb24tcmlnaHQ6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1jaGV2cm9uLXJpZ2h0OyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcGx1cy1jaXJjbGU6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1wbHVzLWNpcmNsZTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW1pbnVzLWNpcmNsZTpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLW1pbnVzLWNpcmNsZTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRpbWVzLWNpcmNsZTpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXRpbWVzLWNpcmNsZTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNoZWNrLWNpcmNsZTpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWNoZWNrLWNpcmNsZTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXF1ZXN0aW9uLWNpcmNsZTpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXF1ZXN0aW9uLWNpcmNsZTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWluZm8tY2lyY2xlOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItaW5mby1jaXJjbGU7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jcm9zc2hhaXJzOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItY3Jvc3NoYWlyczsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRpbWVzLWNpcmNsZS1vOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItdGltZXMtY2lyY2xlLW87IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jaGVjay1jaXJjbGUtbzpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWNoZWNrLWNpcmNsZS1vOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYmFuOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItYmFuOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYXJyb3ctbGVmdDpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWFycm93LWxlZnQ7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1hcnJvdy1yaWdodDpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWFycm93LXJpZ2h0OyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYXJyb3ctdXA6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1hcnJvdy11cDsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWFycm93LWRvd246YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1hcnJvdy1kb3duOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbWFpbC1mb3J3YXJkOmJlZm9yZSxcbi4jeyRmYS1jc3MtcHJlZml4fS1zaGFyZTpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXNoYXJlOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZXhwYW5kOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItZXhwYW5kOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY29tcHJlc3M6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1jb21wcmVzczsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXBsdXM6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1wbHVzOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbWludXM6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1taW51czsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWFzdGVyaXNrOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItYXN0ZXJpc2s7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1leGNsYW1hdGlvbi1jaXJjbGU6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1leGNsYW1hdGlvbi1jaXJjbGU7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1naWZ0OmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItZ2lmdDsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWxlYWY6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1sZWFmOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZmlyZTpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWZpcmU7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1leWU6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1leWU7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1leWUtc2xhc2g6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1leWUtc2xhc2g7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS13YXJuaW5nOmJlZm9yZSxcbi4jeyRmYS1jc3MtcHJlZml4fS1leGNsYW1hdGlvbi10cmlhbmdsZTpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWV4Y2xhbWF0aW9uLXRyaWFuZ2xlOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcGxhbmU6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1wbGFuZTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNhbGVuZGFyOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItY2FsZW5kYXI7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1yYW5kb206YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1yYW5kb207IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jb21tZW50OmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItY29tbWVudDsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW1hZ25ldDpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLW1hZ25ldDsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNoZXZyb24tdXA6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1jaGV2cm9uLXVwOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2hldnJvbi1kb3duOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItY2hldnJvbi1kb3duOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcmV0d2VldDpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXJldHdlZXQ7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zaG9wcGluZy1jYXJ0OmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItc2hvcHBpbmctY2FydDsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWZvbGRlcjpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWZvbGRlcjsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWZvbGRlci1vcGVuOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItZm9sZGVyLW9wZW47IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1hcnJvd3MtdjpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWFycm93cy12OyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYXJyb3dzLWg6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1hcnJvd3MtaDsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJhci1jaGFydC1vOmJlZm9yZSxcbi4jeyRmYS1jc3MtcHJlZml4fS1iYXItY2hhcnQ6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1iYXItY2hhcnQ7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS10d2l0dGVyLXNxdWFyZTpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXR3aXR0ZXItc3F1YXJlOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZmFjZWJvb2stc3F1YXJlOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItZmFjZWJvb2stc3F1YXJlOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2FtZXJhLXJldHJvOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItY2FtZXJhLXJldHJvOyB9XG4uI3skZmEtY3NzLXByZWZpeH0ta2V5OmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXIta2V5OyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZ2VhcnM6YmVmb3JlLFxuLiN7JGZhLWNzcy1wcmVmaXh9LWNvZ3M6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1jb2dzOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY29tbWVudHM6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1jb21tZW50czsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRodW1icy1vLXVwOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItdGh1bWJzLW8tdXA7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS10aHVtYnMtby1kb3duOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItdGh1bWJzLW8tZG93bjsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXN0YXItaGFsZjpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXN0YXItaGFsZjsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWhlYXJ0LW86YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1oZWFydC1vOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc2lnbi1vdXQ6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1zaWduLW91dDsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWxpbmtlZGluLXNxdWFyZTpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWxpbmtlZGluLXNxdWFyZTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRodW1iLXRhY2s6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci10aHVtYi10YWNrOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZXh0ZXJuYWwtbGluazpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWV4dGVybmFsLWxpbms7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zaWduLWluOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItc2lnbi1pbjsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRyb3BoeTpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXRyb3BoeTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWdpdGh1Yi1zcXVhcmU6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1naXRodWItc3F1YXJlOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdXBsb2FkOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItdXBsb2FkOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbGVtb24tbzpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWxlbW9uLW87IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1waG9uZTpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXBob25lOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc3F1YXJlLW86YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1zcXVhcmUtbzsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJvb2ttYXJrLW86YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1ib29rbWFyay1vOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcGhvbmUtc3F1YXJlOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItcGhvbmUtc3F1YXJlOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdHdpdHRlcjpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXR3aXR0ZXI7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1mYWNlYm9vay1mOmJlZm9yZSxcbi4jeyRmYS1jc3MtcHJlZml4fS1mYWNlYm9vazpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWZhY2Vib29rOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZ2l0aHViOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItZ2l0aHViOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdW5sb2NrOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItdW5sb2NrOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY3JlZGl0LWNhcmQ6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1jcmVkaXQtY2FyZDsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWZlZWQ6YmVmb3JlLFxuLiN7JGZhLWNzcy1wcmVmaXh9LXJzczpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXJzczsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWhkZC1vOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItaGRkLW87IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1idWxsaG9ybjpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWJ1bGxob3JuOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYmVsbDpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWJlbGw7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jZXJ0aWZpY2F0ZTpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWNlcnRpZmljYXRlOyB9XG4uI3skZmEtY3NzLXByZWZpeH0taGFuZC1vLXJpZ2h0OmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItaGFuZC1vLXJpZ2h0OyB9XG4uI3skZmEtY3NzLXByZWZpeH0taGFuZC1vLWxlZnQ6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1oYW5kLW8tbGVmdDsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWhhbmQtby11cDpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWhhbmQtby11cDsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWhhbmQtby1kb3duOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItaGFuZC1vLWRvd247IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1hcnJvdy1jaXJjbGUtbGVmdDpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWFycm93LWNpcmNsZS1sZWZ0OyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYXJyb3ctY2lyY2xlLXJpZ2h0OmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItYXJyb3ctY2lyY2xlLXJpZ2h0OyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYXJyb3ctY2lyY2xlLXVwOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItYXJyb3ctY2lyY2xlLXVwOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYXJyb3ctY2lyY2xlLWRvd246YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1hcnJvdy1jaXJjbGUtZG93bjsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWdsb2JlOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItZ2xvYmU7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS13cmVuY2g6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci13cmVuY2g7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS10YXNrczpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXRhc2tzOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZmlsdGVyOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItZmlsdGVyOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYnJpZWZjYXNlOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItYnJpZWZjYXNlOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYXJyb3dzLWFsdDpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWFycm93cy1hbHQ7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1ncm91cDpiZWZvcmUsXG4uI3skZmEtY3NzLXByZWZpeH0tdXNlcnM6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci11c2VyczsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNoYWluOmJlZm9yZSxcbi4jeyRmYS1jc3MtcHJlZml4fS1saW5rOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItbGluazsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNsb3VkOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItY2xvdWQ7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1mbGFzazpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWZsYXNrOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY3V0OmJlZm9yZSxcbi4jeyRmYS1jc3MtcHJlZml4fS1zY2lzc29yczpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXNjaXNzb3JzOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY29weTpiZWZvcmUsXG4uI3skZmEtY3NzLXByZWZpeH0tZmlsZXMtbzpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWZpbGVzLW87IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1wYXBlcmNsaXA6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1wYXBlcmNsaXA7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zYXZlOmJlZm9yZSxcbi4jeyRmYS1jc3MtcHJlZml4fS1mbG9wcHktbzpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWZsb3BweS1vOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc3F1YXJlOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItc3F1YXJlOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbmF2aWNvbjpiZWZvcmUsXG4uI3skZmEtY3NzLXByZWZpeH0tcmVvcmRlcjpiZWZvcmUsXG4uI3skZmEtY3NzLXByZWZpeH0tYmFyczpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWJhcnM7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1saXN0LXVsOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItbGlzdC11bDsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWxpc3Qtb2w6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1saXN0LW9sOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc3RyaWtldGhyb3VnaDpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXN0cmlrZXRocm91Z2g7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS11bmRlcmxpbmU6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci11bmRlcmxpbmU7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS10YWJsZTpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXRhYmxlOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbWFnaWM6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1tYWdpYzsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRydWNrOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItdHJ1Y2s7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1waW50ZXJlc3Q6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1waW50ZXJlc3Q7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1waW50ZXJlc3Qtc3F1YXJlOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItcGludGVyZXN0LXNxdWFyZTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWdvb2dsZS1wbHVzLXNxdWFyZTpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWdvb2dsZS1wbHVzLXNxdWFyZTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWdvb2dsZS1wbHVzOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItZ29vZ2xlLXBsdXM7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1tb25leTpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLW1vbmV5OyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2FyZXQtZG93bjpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWNhcmV0LWRvd247IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jYXJldC11cDpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWNhcmV0LXVwOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2FyZXQtbGVmdDpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWNhcmV0LWxlZnQ7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jYXJldC1yaWdodDpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWNhcmV0LXJpZ2h0OyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY29sdW1uczpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWNvbHVtbnM7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS11bnNvcnRlZDpiZWZvcmUsXG4uI3skZmEtY3NzLXByZWZpeH0tc29ydDpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXNvcnQ7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zb3J0LWRvd246YmVmb3JlLFxuLiN7JGZhLWNzcy1wcmVmaXh9LXNvcnQtZGVzYzpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXNvcnQtZGVzYzsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNvcnQtdXA6YmVmb3JlLFxuLiN7JGZhLWNzcy1wcmVmaXh9LXNvcnQtYXNjOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItc29ydC1hc2M7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1lbnZlbG9wZTpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWVudmVsb3BlOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbGlua2VkaW46YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1saW5rZWRpbjsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXJvdGF0ZS1sZWZ0OmJlZm9yZSxcbi4jeyRmYS1jc3MtcHJlZml4fS11bmRvOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItdW5kbzsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWxlZ2FsOmJlZm9yZSxcbi4jeyRmYS1jc3MtcHJlZml4fS1nYXZlbDpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWdhdmVsOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZGFzaGJvYXJkOmJlZm9yZSxcbi4jeyRmYS1jc3MtcHJlZml4fS10YWNob21ldGVyOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItdGFjaG9tZXRlcjsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNvbW1lbnQtbzpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWNvbW1lbnQtbzsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNvbW1lbnRzLW86YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1jb21tZW50cy1vOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZmxhc2g6YmVmb3JlLFxuLiN7JGZhLWNzcy1wcmVmaXh9LWJvbHQ6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1ib2x0OyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc2l0ZW1hcDpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXNpdGVtYXA7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS11bWJyZWxsYTpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXVtYnJlbGxhOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcGFzdGU6YmVmb3JlLFxuLiN7JGZhLWNzcy1wcmVmaXh9LWNsaXBib2FyZDpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWNsaXBib2FyZDsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWxpZ2h0YnVsYi1vOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItbGlnaHRidWxiLW87IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1leGNoYW5nZTpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWV4Y2hhbmdlOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2xvdWQtZG93bmxvYWQ6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1jbG91ZC1kb3dubG9hZDsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNsb3VkLXVwbG9hZDpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWNsb3VkLXVwbG9hZDsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXVzZXItbWQ6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci11c2VyLW1kOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc3RldGhvc2NvcGU6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1zdGV0aG9zY29wZTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXN1aXRjYXNlOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItc3VpdGNhc2U7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1iZWxsLW86YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1iZWxsLW87IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jb2ZmZWU6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1jb2ZmZWU7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jdXRsZXJ5OmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItY3V0bGVyeTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWZpbGUtdGV4dC1vOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItZmlsZS10ZXh0LW87IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1idWlsZGluZy1vOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItYnVpbGRpbmctbzsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWhvc3BpdGFsLW86YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1ob3NwaXRhbC1vOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYW1idWxhbmNlOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItYW1idWxhbmNlOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbWVka2l0OmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItbWVka2l0OyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZmlnaHRlci1qZXQ6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1maWdodGVyLWpldDsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJlZXI6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1iZWVyOyB9XG4uI3skZmEtY3NzLXByZWZpeH0taC1zcXVhcmU6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1oLXNxdWFyZTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXBsdXMtc3F1YXJlOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItcGx1cy1zcXVhcmU7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1hbmdsZS1kb3VibGUtbGVmdDpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWFuZ2xlLWRvdWJsZS1sZWZ0OyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYW5nbGUtZG91YmxlLXJpZ2h0OmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItYW5nbGUtZG91YmxlLXJpZ2h0OyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYW5nbGUtZG91YmxlLXVwOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItYW5nbGUtZG91YmxlLXVwOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYW5nbGUtZG91YmxlLWRvd246YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1hbmdsZS1kb3VibGUtZG93bjsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWFuZ2xlLWxlZnQ6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1hbmdsZS1sZWZ0OyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYW5nbGUtcmlnaHQ6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1hbmdsZS1yaWdodDsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWFuZ2xlLXVwOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItYW5nbGUtdXA7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1hbmdsZS1kb3duOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItYW5nbGUtZG93bjsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWRlc2t0b3A6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1kZXNrdG9wOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbGFwdG9wOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItbGFwdG9wOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdGFibGV0OmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItdGFibGV0OyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbW9iaWxlLXBob25lOmJlZm9yZSxcbi4jeyRmYS1jc3MtcHJlZml4fS1tb2JpbGU6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1tb2JpbGU7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jaXJjbGUtbzpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWNpcmNsZS1vOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcXVvdGUtbGVmdDpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXF1b3RlLWxlZnQ7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1xdW90ZS1yaWdodDpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXF1b3RlLXJpZ2h0OyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc3Bpbm5lcjpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXNwaW5uZXI7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jaXJjbGU6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1jaXJjbGU7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1tYWlsLXJlcGx5OmJlZm9yZSxcbi4jeyRmYS1jc3MtcHJlZml4fS1yZXBseTpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXJlcGx5OyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZ2l0aHViLWFsdDpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWdpdGh1Yi1hbHQ7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1mb2xkZXItbzpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWZvbGRlci1vOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZm9sZGVyLW9wZW4tbzpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWZvbGRlci1vcGVuLW87IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zbWlsZS1vOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItc21pbGUtbzsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWZyb3duLW86YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1mcm93bi1vOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbWVoLW86YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1tZWgtbzsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWdhbWVwYWQ6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1nYW1lcGFkOyB9XG4uI3skZmEtY3NzLXByZWZpeH0ta2V5Ym9hcmQtbzpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWtleWJvYXJkLW87IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1mbGFnLW86YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1mbGFnLW87IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1mbGFnLWNoZWNrZXJlZDpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWZsYWctY2hlY2tlcmVkOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdGVybWluYWw6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci10ZXJtaW5hbDsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNvZGU6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1jb2RlOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbWFpbC1yZXBseS1hbGw6YmVmb3JlLFxuLiN7JGZhLWNzcy1wcmVmaXh9LXJlcGx5LWFsbDpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXJlcGx5LWFsbDsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXN0YXItaGFsZi1lbXB0eTpiZWZvcmUsXG4uI3skZmEtY3NzLXByZWZpeH0tc3Rhci1oYWxmLWZ1bGw6YmVmb3JlLFxuLiN7JGZhLWNzcy1wcmVmaXh9LXN0YXItaGFsZi1vOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItc3Rhci1oYWxmLW87IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1sb2NhdGlvbi1hcnJvdzpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWxvY2F0aW9uLWFycm93OyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY3JvcDpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWNyb3A7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jb2RlLWZvcms6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1jb2RlLWZvcms7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS11bmxpbms6YmVmb3JlLFxuLiN7JGZhLWNzcy1wcmVmaXh9LWNoYWluLWJyb2tlbjpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWNoYWluLWJyb2tlbjsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXF1ZXN0aW9uOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItcXVlc3Rpb247IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1pbmZvOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItaW5mbzsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWV4Y2xhbWF0aW9uOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItZXhjbGFtYXRpb247IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zdXBlcnNjcmlwdDpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXN1cGVyc2NyaXB0OyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc3Vic2NyaXB0OmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItc3Vic2NyaXB0OyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZXJhc2VyOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItZXJhc2VyOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcHV6emxlLXBpZWNlOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItcHV6emxlLXBpZWNlOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbWljcm9waG9uZTpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLW1pY3JvcGhvbmU7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1taWNyb3Bob25lLXNsYXNoOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItbWljcm9waG9uZS1zbGFzaDsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNoaWVsZDpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXNoaWVsZDsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNhbGVuZGFyLW86YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1jYWxlbmRhci1vOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZmlyZS1leHRpbmd1aXNoZXI6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1maXJlLWV4dGluZ3Vpc2hlcjsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXJvY2tldDpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXJvY2tldDsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW1heGNkbjpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLW1heGNkbjsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNoZXZyb24tY2lyY2xlLWxlZnQ6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1jaGV2cm9uLWNpcmNsZS1sZWZ0OyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2hldnJvbi1jaXJjbGUtcmlnaHQ6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1jaGV2cm9uLWNpcmNsZS1yaWdodDsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNoZXZyb24tY2lyY2xlLXVwOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItY2hldnJvbi1jaXJjbGUtdXA7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jaGV2cm9uLWNpcmNsZS1kb3duOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItY2hldnJvbi1jaXJjbGUtZG93bjsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWh0bWw1OmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItaHRtbDU7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jc3MzOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItY3NzMzsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWFuY2hvcjpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWFuY2hvcjsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXVubG9jay1hbHQ6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci11bmxvY2stYWx0OyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYnVsbHNleWU6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1idWxsc2V5ZTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWVsbGlwc2lzLWg6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1lbGxpcHNpcy1oOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZWxsaXBzaXMtdjpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWVsbGlwc2lzLXY7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1yc3Mtc3F1YXJlOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItcnNzLXNxdWFyZTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXBsYXktY2lyY2xlOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItcGxheS1jaXJjbGU7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS10aWNrZXQ6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci10aWNrZXQ7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1taW51cy1zcXVhcmU6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1taW51cy1zcXVhcmU7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1taW51cy1zcXVhcmUtbzpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLW1pbnVzLXNxdWFyZS1vOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbGV2ZWwtdXA6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1sZXZlbC11cDsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWxldmVsLWRvd246YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1sZXZlbC1kb3duOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2hlY2stc3F1YXJlOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItY2hlY2stc3F1YXJlOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcGVuY2lsLXNxdWFyZTpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXBlbmNpbC1zcXVhcmU7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1leHRlcm5hbC1saW5rLXNxdWFyZTpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWV4dGVybmFsLWxpbmstc3F1YXJlOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc2hhcmUtc3F1YXJlOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItc2hhcmUtc3F1YXJlOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY29tcGFzczpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWNvbXBhc3M7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS10b2dnbGUtZG93bjpiZWZvcmUsXG4uI3skZmEtY3NzLXByZWZpeH0tY2FyZXQtc3F1YXJlLW8tZG93bjpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWNhcmV0LXNxdWFyZS1vLWRvd247IH1cbi4jeyRmYS1jc3MtcHJlZml4fS10b2dnbGUtdXA6YmVmb3JlLFxuLiN7JGZhLWNzcy1wcmVmaXh9LWNhcmV0LXNxdWFyZS1vLXVwOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItY2FyZXQtc3F1YXJlLW8tdXA7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS10b2dnbGUtcmlnaHQ6YmVmb3JlLFxuLiN7JGZhLWNzcy1wcmVmaXh9LWNhcmV0LXNxdWFyZS1vLXJpZ2h0OmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItY2FyZXQtc3F1YXJlLW8tcmlnaHQ7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1ldXJvOmJlZm9yZSxcbi4jeyRmYS1jc3MtcHJlZml4fS1ldXI6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1ldXI7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1nYnA6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1nYnA7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1kb2xsYXI6YmVmb3JlLFxuLiN7JGZhLWNzcy1wcmVmaXh9LXVzZDpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXVzZDsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXJ1cGVlOmJlZm9yZSxcbi4jeyRmYS1jc3MtcHJlZml4fS1pbnI6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1pbnI7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jbnk6YmVmb3JlLFxuLiN7JGZhLWNzcy1wcmVmaXh9LXJtYjpiZWZvcmUsXG4uI3skZmEtY3NzLXByZWZpeH0teWVuOmJlZm9yZSxcbi4jeyRmYS1jc3MtcHJlZml4fS1qcHk6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1qcHk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1ydWJsZTpiZWZvcmUsXG4uI3skZmEtY3NzLXByZWZpeH0tcm91YmxlOmJlZm9yZSxcbi4jeyRmYS1jc3MtcHJlZml4fS1ydWI6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1ydWI7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS13b246YmVmb3JlLFxuLiN7JGZhLWNzcy1wcmVmaXh9LWtydzpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWtydzsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJpdGNvaW46YmVmb3JlLFxuLiN7JGZhLWNzcy1wcmVmaXh9LWJ0YzpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWJ0YzsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWZpbGU6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1maWxlOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZmlsZS10ZXh0OmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItZmlsZS10ZXh0OyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc29ydC1hbHBoYS1hc2M6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1zb3J0LWFscGhhLWFzYzsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNvcnQtYWxwaGEtZGVzYzpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXNvcnQtYWxwaGEtZGVzYzsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNvcnQtYW1vdW50LWFzYzpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXNvcnQtYW1vdW50LWFzYzsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNvcnQtYW1vdW50LWRlc2M6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1zb3J0LWFtb3VudC1kZXNjOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc29ydC1udW1lcmljLWFzYzpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXNvcnQtbnVtZXJpYy1hc2M7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zb3J0LW51bWVyaWMtZGVzYzpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXNvcnQtbnVtZXJpYy1kZXNjOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdGh1bWJzLXVwOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItdGh1bWJzLXVwOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdGh1bWJzLWRvd246YmVmb3JlIHsgY29udGVudDogJGZhLXZhci10aHVtYnMtZG93bjsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXlvdXR1YmUtc3F1YXJlOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXIteW91dHViZS1zcXVhcmU7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS15b3V0dWJlOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXIteW91dHViZTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXhpbmc6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci14aW5nOyB9XG4uI3skZmEtY3NzLXByZWZpeH0teGluZy1zcXVhcmU6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci14aW5nLXNxdWFyZTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXlvdXR1YmUtcGxheTpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXlvdXR1YmUtcGxheTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWRyb3Bib3g6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1kcm9wYm94OyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc3RhY2stb3ZlcmZsb3c6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1zdGFjay1vdmVyZmxvdzsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWluc3RhZ3JhbTpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWluc3RhZ3JhbTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWZsaWNrcjpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWZsaWNrcjsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWFkbjpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWFkbjsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJpdGJ1Y2tldDpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWJpdGJ1Y2tldDsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJpdGJ1Y2tldC1zcXVhcmU6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1iaXRidWNrZXQtc3F1YXJlOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdHVtYmxyOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItdHVtYmxyOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdHVtYmxyLXNxdWFyZTpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXR1bWJsci1zcXVhcmU7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1sb25nLWFycm93LWRvd246YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1sb25nLWFycm93LWRvd247IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1sb25nLWFycm93LXVwOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItbG9uZy1hcnJvdy11cDsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWxvbmctYXJyb3ctbGVmdDpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWxvbmctYXJyb3ctbGVmdDsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWxvbmctYXJyb3ctcmlnaHQ6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1sb25nLWFycm93LXJpZ2h0OyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYXBwbGU6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1hcHBsZTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXdpbmRvd3M6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci13aW5kb3dzOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYW5kcm9pZDpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWFuZHJvaWQ7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1saW51eDpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWxpbnV4OyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZHJpYmJibGU6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1kcmliYmJsZTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNreXBlOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItc2t5cGU7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1mb3Vyc3F1YXJlOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItZm91cnNxdWFyZTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRyZWxsbzpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXRyZWxsbzsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWZlbWFsZTpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWZlbWFsZTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW1hbGU6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1tYWxlOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZ2l0dGlwOmJlZm9yZSxcbi4jeyRmYS1jc3MtcHJlZml4fS1ncmF0aXBheTpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWdyYXRpcGF5OyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc3VuLW86YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1zdW4tbzsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW1vb24tbzpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLW1vb24tbzsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWFyY2hpdmU6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1hcmNoaXZlOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYnVnOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItYnVnOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdms6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci12azsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXdlaWJvOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItd2VpYm87IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1yZW5yZW46YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1yZW5yZW47IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1wYWdlbGluZXM6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1wYWdlbGluZXM7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zdGFjay1leGNoYW5nZTpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXN0YWNrLWV4Y2hhbmdlOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYXJyb3ctY2lyY2xlLW8tcmlnaHQ6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1hcnJvdy1jaXJjbGUtby1yaWdodDsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWFycm93LWNpcmNsZS1vLWxlZnQ6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1hcnJvdy1jaXJjbGUtby1sZWZ0OyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdG9nZ2xlLWxlZnQ6YmVmb3JlLFxuLiN7JGZhLWNzcy1wcmVmaXh9LWNhcmV0LXNxdWFyZS1vLWxlZnQ6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1jYXJldC1zcXVhcmUtby1sZWZ0OyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZG90LWNpcmNsZS1vOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItZG90LWNpcmNsZS1vOyB9XG4uI3skZmEtY3NzLXByZWZpeH0td2hlZWxjaGFpcjpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXdoZWVsY2hhaXI7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS12aW1lby1zcXVhcmU6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci12aW1lby1zcXVhcmU7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS10dXJraXNoLWxpcmE6YmVmb3JlLFxuLiN7JGZhLWNzcy1wcmVmaXh9LXRyeTpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXRyeTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXBsdXMtc3F1YXJlLW86YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1wbHVzLXNxdWFyZS1vOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc3BhY2Utc2h1dHRsZTpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXNwYWNlLXNodXR0bGU7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zbGFjazpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXNsYWNrOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZW52ZWxvcGUtc3F1YXJlOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItZW52ZWxvcGUtc3F1YXJlOyB9XG4uI3skZmEtY3NzLXByZWZpeH0td29yZHByZXNzOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItd29yZHByZXNzOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tb3BlbmlkOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItb3BlbmlkOyB9XG4uI3skZmEtY3NzLXByZWZpeH0taW5zdGl0dXRpb246YmVmb3JlLFxuLiN7JGZhLWNzcy1wcmVmaXh9LWJhbms6YmVmb3JlLFxuLiN7JGZhLWNzcy1wcmVmaXh9LXVuaXZlcnNpdHk6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci11bml2ZXJzaXR5OyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbW9ydGFyLWJvYXJkOmJlZm9yZSxcbi4jeyRmYS1jc3MtcHJlZml4fS1ncmFkdWF0aW9uLWNhcDpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWdyYWR1YXRpb24tY2FwOyB9XG4uI3skZmEtY3NzLXByZWZpeH0teWFob286YmVmb3JlIHsgY29udGVudDogJGZhLXZhci15YWhvbzsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWdvb2dsZTpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWdvb2dsZTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXJlZGRpdDpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXJlZGRpdDsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXJlZGRpdC1zcXVhcmU6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1yZWRkaXQtc3F1YXJlOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc3R1bWJsZXVwb24tY2lyY2xlOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItc3R1bWJsZXVwb24tY2lyY2xlOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc3R1bWJsZXVwb246YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1zdHVtYmxldXBvbjsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWRlbGljaW91czpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWRlbGljaW91czsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWRpZ2c6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1kaWdnOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcGllZC1waXBlci1wcDpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXBpZWQtcGlwZXItcHA7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1waWVkLXBpcGVyLWFsdDpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXBpZWQtcGlwZXItYWx0OyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZHJ1cGFsOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItZHJ1cGFsOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tam9vbWxhOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItam9vbWxhOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbGFuZ3VhZ2U6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1sYW5ndWFnZTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWZheDpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWZheDsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJ1aWxkaW5nOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItYnVpbGRpbmc7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jaGlsZDpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWNoaWxkOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcGF3OmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItcGF3OyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc3Bvb246YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1zcG9vbjsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWN1YmU6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1jdWJlOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY3ViZXM6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1jdWJlczsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJlaGFuY2U6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1iZWhhbmNlOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYmVoYW5jZS1zcXVhcmU6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1iZWhhbmNlLXNxdWFyZTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXN0ZWFtOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItc3RlYW07IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zdGVhbS1zcXVhcmU6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1zdGVhbS1zcXVhcmU7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1yZWN5Y2xlOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItcmVjeWNsZTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWF1dG9tb2JpbGU6YmVmb3JlLFxuLiN7JGZhLWNzcy1wcmVmaXh9LWNhcjpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWNhcjsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNhYjpiZWZvcmUsXG4uI3skZmEtY3NzLXByZWZpeH0tdGF4aTpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXRheGk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS10cmVlOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItdHJlZTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNwb3RpZnk6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1zcG90aWZ5OyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZGV2aWFudGFydDpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWRldmlhbnRhcnQ7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zb3VuZGNsb3VkOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItc291bmRjbG91ZDsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWRhdGFiYXNlOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItZGF0YWJhc2U7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1maWxlLXBkZi1vOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItZmlsZS1wZGYtbzsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWZpbGUtd29yZC1vOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItZmlsZS13b3JkLW87IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1maWxlLWV4Y2VsLW86YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1maWxlLWV4Y2VsLW87IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1maWxlLXBvd2VycG9pbnQtbzpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWZpbGUtcG93ZXJwb2ludC1vOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZmlsZS1waG90by1vOmJlZm9yZSxcbi4jeyRmYS1jc3MtcHJlZml4fS1maWxlLXBpY3R1cmUtbzpiZWZvcmUsXG4uI3skZmEtY3NzLXByZWZpeH0tZmlsZS1pbWFnZS1vOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItZmlsZS1pbWFnZS1vOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZmlsZS16aXAtbzpiZWZvcmUsXG4uI3skZmEtY3NzLXByZWZpeH0tZmlsZS1hcmNoaXZlLW86YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1maWxlLWFyY2hpdmUtbzsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWZpbGUtc291bmQtbzpiZWZvcmUsXG4uI3skZmEtY3NzLXByZWZpeH0tZmlsZS1hdWRpby1vOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItZmlsZS1hdWRpby1vOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZmlsZS1tb3ZpZS1vOmJlZm9yZSxcbi4jeyRmYS1jc3MtcHJlZml4fS1maWxlLXZpZGVvLW86YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1maWxlLXZpZGVvLW87IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1maWxlLWNvZGUtbzpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWZpbGUtY29kZS1vOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdmluZTpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXZpbmU7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jb2RlcGVuOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItY29kZXBlbjsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWpzZmlkZGxlOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItanNmaWRkbGU7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1saWZlLWJvdXk6YmVmb3JlLFxuLiN7JGZhLWNzcy1wcmVmaXh9LWxpZmUtYnVveTpiZWZvcmUsXG4uI3skZmEtY3NzLXByZWZpeH0tbGlmZS1zYXZlcjpiZWZvcmUsXG4uI3skZmEtY3NzLXByZWZpeH0tc3VwcG9ydDpiZWZvcmUsXG4uI3skZmEtY3NzLXByZWZpeH0tbGlmZS1yaW5nOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItbGlmZS1yaW5nOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2lyY2xlLW8tbm90Y2g6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1jaXJjbGUtby1ub3RjaDsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXJhOmJlZm9yZSxcbi4jeyRmYS1jc3MtcHJlZml4fS1yZXNpc3RhbmNlOmJlZm9yZSxcbi4jeyRmYS1jc3MtcHJlZml4fS1yZWJlbDpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXJlYmVsOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZ2U6YmVmb3JlLFxuLiN7JGZhLWNzcy1wcmVmaXh9LWVtcGlyZTpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWVtcGlyZTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWdpdC1zcXVhcmU6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1naXQtc3F1YXJlOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZ2l0OmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItZ2l0OyB9XG4uI3skZmEtY3NzLXByZWZpeH0teS1jb21iaW5hdG9yLXNxdWFyZTpiZWZvcmUsXG4uI3skZmEtY3NzLXByZWZpeH0teWMtc3F1YXJlOmJlZm9yZSxcbi4jeyRmYS1jc3MtcHJlZml4fS1oYWNrZXItbmV3czpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWhhY2tlci1uZXdzOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdGVuY2VudC13ZWlibzpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXRlbmNlbnQtd2VpYm87IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1xcTpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXFxOyB9XG4uI3skZmEtY3NzLXByZWZpeH0td2VjaGF0OmJlZm9yZSxcbi4jeyRmYS1jc3MtcHJlZml4fS13ZWl4aW46YmVmb3JlIHsgY29udGVudDogJGZhLXZhci13ZWl4aW47IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zZW5kOmJlZm9yZSxcbi4jeyRmYS1jc3MtcHJlZml4fS1wYXBlci1wbGFuZTpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXBhcGVyLXBsYW5lOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc2VuZC1vOmJlZm9yZSxcbi4jeyRmYS1jc3MtcHJlZml4fS1wYXBlci1wbGFuZS1vOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItcGFwZXItcGxhbmUtbzsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWhpc3Rvcnk6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1oaXN0b3J5OyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2lyY2xlLXRoaW46YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1jaXJjbGUtdGhpbjsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWhlYWRlcjpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWhlYWRlcjsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXBhcmFncmFwaDpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXBhcmFncmFwaDsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNsaWRlcnM6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1zbGlkZXJzOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc2hhcmUtYWx0OmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItc2hhcmUtYWx0OyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc2hhcmUtYWx0LXNxdWFyZTpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXNoYXJlLWFsdC1zcXVhcmU7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1ib21iOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItYm9tYjsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNvY2Nlci1iYWxsLW86YmVmb3JlLFxuLiN7JGZhLWNzcy1wcmVmaXh9LWZ1dGJvbC1vOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItZnV0Ym9sLW87IH1cbi4jeyRmYS1jc3MtcHJlZml4fS10dHk6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci10dHk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1iaW5vY3VsYXJzOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItYmlub2N1bGFyczsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXBsdWc6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1wbHVnOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc2xpZGVzaGFyZTpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXNsaWRlc2hhcmU7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS10d2l0Y2g6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci10d2l0Y2g7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS15ZWxwOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXIteWVscDsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW5ld3NwYXBlci1vOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItbmV3c3BhcGVyLW87IH1cbi4jeyRmYS1jc3MtcHJlZml4fS13aWZpOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItd2lmaTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNhbGN1bGF0b3I6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1jYWxjdWxhdG9yOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcGF5cGFsOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItcGF5cGFsOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZ29vZ2xlLXdhbGxldDpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWdvb2dsZS13YWxsZXQ7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jYy12aXNhOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItY2MtdmlzYTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNjLW1hc3RlcmNhcmQ6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1jYy1tYXN0ZXJjYXJkOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2MtZGlzY292ZXI6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1jYy1kaXNjb3ZlcjsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNjLWFtZXg6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1jYy1hbWV4OyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2MtcGF5cGFsOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItY2MtcGF5cGFsOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2Mtc3RyaXBlOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItY2Mtc3RyaXBlOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYmVsbC1zbGFzaDpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWJlbGwtc2xhc2g7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1iZWxsLXNsYXNoLW86YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1iZWxsLXNsYXNoLW87IH1cbi4jeyRmYS1jc3MtcHJlZml4fS10cmFzaDpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXRyYXNoOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY29weXJpZ2h0OmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItY29weXJpZ2h0OyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYXQ6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1hdDsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWV5ZWRyb3BwZXI6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1leWVkcm9wcGVyOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcGFpbnQtYnJ1c2g6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1wYWludC1icnVzaDsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJpcnRoZGF5LWNha2U6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1iaXJ0aGRheS1jYWtlOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYXJlYS1jaGFydDpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWFyZWEtY2hhcnQ7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1waWUtY2hhcnQ6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1waWUtY2hhcnQ7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1saW5lLWNoYXJ0OmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItbGluZS1jaGFydDsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWxhc3RmbTpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWxhc3RmbTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWxhc3RmbS1zcXVhcmU6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1sYXN0Zm0tc3F1YXJlOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdG9nZ2xlLW9mZjpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXRvZ2dsZS1vZmY7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS10b2dnbGUtb246YmVmb3JlIHsgY29udGVudDogJGZhLXZhci10b2dnbGUtb247IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1iaWN5Y2xlOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItYmljeWNsZTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJ1czpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWJ1czsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWlveGhvc3Q6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1pb3hob3N0OyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYW5nZWxsaXN0OmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItYW5nZWxsaXN0OyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2M6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1jYzsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNoZWtlbDpiZWZvcmUsXG4uI3skZmEtY3NzLXByZWZpeH0tc2hlcWVsOmJlZm9yZSxcbi4jeyRmYS1jc3MtcHJlZml4fS1pbHM6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1pbHM7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1tZWFucGF0aDpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLW1lYW5wYXRoOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYnV5c2VsbGFkczpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWJ1eXNlbGxhZHM7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jb25uZWN0ZGV2ZWxvcDpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWNvbm5lY3RkZXZlbG9wOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZGFzaGN1YmU6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1kYXNoY3ViZTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWZvcnVtYmVlOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItZm9ydW1iZWU7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1sZWFucHViOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItbGVhbnB1YjsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNlbGxzeTpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXNlbGxzeTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNoaXJ0c2luYnVsazpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXNoaXJ0c2luYnVsazsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNpbXBseWJ1aWx0OmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItc2ltcGx5YnVpbHQ7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1za3lhdGxhczpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXNreWF0bGFzOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2FydC1wbHVzOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItY2FydC1wbHVzOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2FydC1hcnJvdy1kb3duOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItY2FydC1hcnJvdy1kb3duOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZGlhbW9uZDpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWRpYW1vbmQ7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zaGlwOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItc2hpcDsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXVzZXItc2VjcmV0OmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItdXNlci1zZWNyZXQ7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1tb3RvcmN5Y2xlOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItbW90b3JjeWNsZTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXN0cmVldC12aWV3OmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItc3RyZWV0LXZpZXc7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1oZWFydGJlYXQ6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1oZWFydGJlYXQ7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS12ZW51czpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXZlbnVzOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbWFyczpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLW1hcnM7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1tZXJjdXJ5OmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItbWVyY3VyeTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWludGVyc2V4OmJlZm9yZSxcbi4jeyRmYS1jc3MtcHJlZml4fS10cmFuc2dlbmRlcjpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXRyYW5zZ2VuZGVyOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdHJhbnNnZW5kZXItYWx0OmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItdHJhbnNnZW5kZXItYWx0OyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdmVudXMtZG91YmxlOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItdmVudXMtZG91YmxlOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbWFycy1kb3VibGU6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1tYXJzLWRvdWJsZTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXZlbnVzLW1hcnM6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci12ZW51cy1tYXJzOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbWFycy1zdHJva2U6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1tYXJzLXN0cm9rZTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW1hcnMtc3Ryb2tlLXY6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1tYXJzLXN0cm9rZS12OyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbWFycy1zdHJva2UtaDpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLW1hcnMtc3Ryb2tlLWg7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1uZXV0ZXI6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1uZXV0ZXI7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1nZW5kZXJsZXNzOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItZ2VuZGVybGVzczsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWZhY2Vib29rLW9mZmljaWFsOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItZmFjZWJvb2stb2ZmaWNpYWw7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1waW50ZXJlc3QtcDpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXBpbnRlcmVzdC1wOyB9XG4uI3skZmEtY3NzLXByZWZpeH0td2hhdHNhcHA6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci13aGF0c2FwcDsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNlcnZlcjpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXNlcnZlcjsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXVzZXItcGx1czpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXVzZXItcGx1czsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXVzZXItdGltZXM6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci11c2VyLXRpbWVzOyB9XG4uI3skZmEtY3NzLXByZWZpeH0taG90ZWw6YmVmb3JlLFxuLiN7JGZhLWNzcy1wcmVmaXh9LWJlZDpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWJlZDsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXZpYWNvaW46YmVmb3JlIHsgY29udGVudDogJGZhLXZhci12aWFjb2luOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdHJhaW46YmVmb3JlIHsgY29udGVudDogJGZhLXZhci10cmFpbjsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXN1YndheTpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXN1YndheTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW1lZGl1bTpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLW1lZGl1bTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXljOmJlZm9yZSxcbi4jeyRmYS1jc3MtcHJlZml4fS15LWNvbWJpbmF0b3I6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci15LWNvbWJpbmF0b3I7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1vcHRpbi1tb25zdGVyOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItb3B0aW4tbW9uc3RlcjsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW9wZW5jYXJ0OmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItb3BlbmNhcnQ7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1leHBlZGl0ZWRzc2w6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1leHBlZGl0ZWRzc2w7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1iYXR0ZXJ5LTQ6YmVmb3JlLFxuLiN7JGZhLWNzcy1wcmVmaXh9LWJhdHRlcnk6YmVmb3JlLFxuLiN7JGZhLWNzcy1wcmVmaXh9LWJhdHRlcnktZnVsbDpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWJhdHRlcnktZnVsbDsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJhdHRlcnktMzpiZWZvcmUsXG4uI3skZmEtY3NzLXByZWZpeH0tYmF0dGVyeS10aHJlZS1xdWFydGVyczpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWJhdHRlcnktdGhyZWUtcXVhcnRlcnM7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1iYXR0ZXJ5LTI6YmVmb3JlLFxuLiN7JGZhLWNzcy1wcmVmaXh9LWJhdHRlcnktaGFsZjpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWJhdHRlcnktaGFsZjsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJhdHRlcnktMTpiZWZvcmUsXG4uI3skZmEtY3NzLXByZWZpeH0tYmF0dGVyeS1xdWFydGVyOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItYmF0dGVyeS1xdWFydGVyOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYmF0dGVyeS0wOmJlZm9yZSxcbi4jeyRmYS1jc3MtcHJlZml4fS1iYXR0ZXJ5LWVtcHR5OmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItYmF0dGVyeS1lbXB0eTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW1vdXNlLXBvaW50ZXI6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1tb3VzZS1wb2ludGVyOyB9XG4uI3skZmEtY3NzLXByZWZpeH0taS1jdXJzb3I6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1pLWN1cnNvcjsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW9iamVjdC1ncm91cDpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLW9iamVjdC1ncm91cDsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW9iamVjdC11bmdyb3VwOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItb2JqZWN0LXVuZ3JvdXA7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zdGlja3ktbm90ZTpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXN0aWNreS1ub3RlOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc3RpY2t5LW5vdGUtbzpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXN0aWNreS1ub3RlLW87IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jYy1qY2I6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1jYy1qY2I7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jYy1kaW5lcnMtY2x1YjpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWNjLWRpbmVycy1jbHViOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2xvbmU6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1jbG9uZTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJhbGFuY2Utc2NhbGU6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1iYWxhbmNlLXNjYWxlOyB9XG4uI3skZmEtY3NzLXByZWZpeH0taG91cmdsYXNzLW86YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1ob3VyZ2xhc3MtbzsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWhvdXJnbGFzcy0xOmJlZm9yZSxcbi4jeyRmYS1jc3MtcHJlZml4fS1ob3VyZ2xhc3Mtc3RhcnQ6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1ob3VyZ2xhc3Mtc3RhcnQ7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1ob3VyZ2xhc3MtMjpiZWZvcmUsXG4uI3skZmEtY3NzLXByZWZpeH0taG91cmdsYXNzLWhhbGY6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1ob3VyZ2xhc3MtaGFsZjsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWhvdXJnbGFzcy0zOmJlZm9yZSxcbi4jeyRmYS1jc3MtcHJlZml4fS1ob3VyZ2xhc3MtZW5kOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItaG91cmdsYXNzLWVuZDsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWhvdXJnbGFzczpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWhvdXJnbGFzczsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWhhbmQtZ3JhYi1vOmJlZm9yZSxcbi4jeyRmYS1jc3MtcHJlZml4fS1oYW5kLXJvY2stbzpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWhhbmQtcm9jay1vOyB9XG4uI3skZmEtY3NzLXByZWZpeH0taGFuZC1zdG9wLW86YmVmb3JlLFxuLiN7JGZhLWNzcy1wcmVmaXh9LWhhbmQtcGFwZXItbzpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWhhbmQtcGFwZXItbzsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWhhbmQtc2Npc3NvcnMtbzpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWhhbmQtc2Npc3NvcnMtbzsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWhhbmQtbGl6YXJkLW86YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1oYW5kLWxpemFyZC1vOyB9XG4uI3skZmEtY3NzLXByZWZpeH0taGFuZC1zcG9jay1vOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItaGFuZC1zcG9jay1vOyB9XG4uI3skZmEtY3NzLXByZWZpeH0taGFuZC1wb2ludGVyLW86YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1oYW5kLXBvaW50ZXItbzsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWhhbmQtcGVhY2UtbzpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWhhbmQtcGVhY2UtbzsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRyYWRlbWFyazpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXRyYWRlbWFyazsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXJlZ2lzdGVyZWQ6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1yZWdpc3RlcmVkOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY3JlYXRpdmUtY29tbW9uczpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWNyZWF0aXZlLWNvbW1vbnM7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1nZzpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWdnOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZ2ctY2lyY2xlOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItZ2ctY2lyY2xlOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdHJpcGFkdmlzb3I6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci10cmlwYWR2aXNvcjsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW9kbm9rbGFzc25pa2k6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1vZG5va2xhc3NuaWtpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tb2Rub2tsYXNzbmlraS1zcXVhcmU6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1vZG5va2xhc3NuaWtpLXNxdWFyZTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWdldC1wb2NrZXQ6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1nZXQtcG9ja2V0OyB9XG4uI3skZmEtY3NzLXByZWZpeH0td2lraXBlZGlhLXc6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci13aWtpcGVkaWEtdzsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNhZmFyaTpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXNhZmFyaTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNocm9tZTpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWNocm9tZTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWZpcmVmb3g6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1maXJlZm94OyB9XG4uI3skZmEtY3NzLXByZWZpeH0tb3BlcmE6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1vcGVyYTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWludGVybmV0LWV4cGxvcmVyOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItaW50ZXJuZXQtZXhwbG9yZXI7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS10djpiZWZvcmUsXG4uI3skZmEtY3NzLXByZWZpeH0tdGVsZXZpc2lvbjpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXRlbGV2aXNpb247IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jb250YW86YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1jb250YW87IH1cbi4jeyRmYS1jc3MtcHJlZml4fS01MDBweDpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLTUwMHB4OyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYW1hem9uOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItYW1hem9uOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2FsZW5kYXItcGx1cy1vOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItY2FsZW5kYXItcGx1cy1vOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2FsZW5kYXItbWludXMtbzpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWNhbGVuZGFyLW1pbnVzLW87IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jYWxlbmRhci10aW1lcy1vOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItY2FsZW5kYXItdGltZXMtbzsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNhbGVuZGFyLWNoZWNrLW86YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1jYWxlbmRhci1jaGVjay1vOyB9XG4uI3skZmEtY3NzLXByZWZpeH0taW5kdXN0cnk6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1pbmR1c3RyeTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW1hcC1waW46YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1tYXAtcGluOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbWFwLXNpZ25zOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItbWFwLXNpZ25zOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbWFwLW86YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1tYXAtbzsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW1hcDpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLW1hcDsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNvbW1lbnRpbmc6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1jb21tZW50aW5nOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY29tbWVudGluZy1vOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItY29tbWVudGluZy1vOyB9XG4uI3skZmEtY3NzLXByZWZpeH0taG91eno6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1ob3V6ejsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXZpbWVvOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItdmltZW87IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1ibGFjay10aWU6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1ibGFjay10aWU7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1mb250aWNvbnM6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1mb250aWNvbnM7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1yZWRkaXQtYWxpZW46YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1yZWRkaXQtYWxpZW47IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1lZGdlOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItZWRnZTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNyZWRpdC1jYXJkLWFsdDpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWNyZWRpdC1jYXJkLWFsdDsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNvZGllcGllOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItY29kaWVwaWU7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1tb2R4OmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItbW9keDsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWZvcnQtYXdlc29tZTpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWZvcnQtYXdlc29tZTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXVzYjpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXVzYjsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXByb2R1Y3QtaHVudDpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXByb2R1Y3QtaHVudDsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW1peGNsb3VkOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItbWl4Y2xvdWQ7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zY3JpYmQ6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1zY3JpYmQ7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1wYXVzZS1jaXJjbGU6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1wYXVzZS1jaXJjbGU7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1wYXVzZS1jaXJjbGUtbzpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXBhdXNlLWNpcmNsZS1vOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc3RvcC1jaXJjbGU6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1zdG9wLWNpcmNsZTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXN0b3AtY2lyY2xlLW86YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1zdG9wLWNpcmNsZS1vOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc2hvcHBpbmctYmFnOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItc2hvcHBpbmctYmFnOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc2hvcHBpbmctYmFza2V0OmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItc2hvcHBpbmctYmFza2V0OyB9XG4uI3skZmEtY3NzLXByZWZpeH0taGFzaHRhZzpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWhhc2h0YWc7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1ibHVldG9vdGg6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1ibHVldG9vdGg7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1ibHVldG9vdGgtYjpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWJsdWV0b290aC1iOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcGVyY2VudDpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXBlcmNlbnQ7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1naXRsYWI6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1naXRsYWI7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS13cGJlZ2lubmVyOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItd3BiZWdpbm5lcjsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXdwZm9ybXM6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci13cGZvcm1zOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZW52aXJhOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItZW52aXJhOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdW5pdmVyc2FsLWFjY2VzczpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXVuaXZlcnNhbC1hY2Nlc3M7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS13aGVlbGNoYWlyLWFsdDpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXdoZWVsY2hhaXItYWx0OyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcXVlc3Rpb24tY2lyY2xlLW86YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1xdWVzdGlvbi1jaXJjbGUtbzsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJsaW5kOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItYmxpbmQ7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1hdWRpby1kZXNjcmlwdGlvbjpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWF1ZGlvLWRlc2NyaXB0aW9uOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdm9sdW1lLWNvbnRyb2wtcGhvbmU6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci12b2x1bWUtY29udHJvbC1waG9uZTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJyYWlsbGU6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1icmFpbGxlOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYXNzaXN0aXZlLWxpc3RlbmluZy1zeXN0ZW1zOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItYXNzaXN0aXZlLWxpc3RlbmluZy1zeXN0ZW1zOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYXNsLWludGVycHJldGluZzpiZWZvcmUsXG4uI3skZmEtY3NzLXByZWZpeH0tYW1lcmljYW4tc2lnbi1sYW5ndWFnZS1pbnRlcnByZXRpbmc6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1hbWVyaWNhbi1zaWduLWxhbmd1YWdlLWludGVycHJldGluZzsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWRlYWZuZXNzOmJlZm9yZSxcbi4jeyRmYS1jc3MtcHJlZml4fS1oYXJkLW9mLWhlYXJpbmc6YmVmb3JlLFxuLiN7JGZhLWNzcy1wcmVmaXh9LWRlYWY6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1kZWFmOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZ2xpZGU6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1nbGlkZTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWdsaWRlLWc6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1nbGlkZS1nOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc2lnbmluZzpiZWZvcmUsXG4uI3skZmEtY3NzLXByZWZpeH0tc2lnbi1sYW5ndWFnZTpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXNpZ24tbGFuZ3VhZ2U7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1sb3ctdmlzaW9uOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItbG93LXZpc2lvbjsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXZpYWRlbzpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXZpYWRlbzsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXZpYWRlby1zcXVhcmU6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci12aWFkZW8tc3F1YXJlOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc25hcGNoYXQ6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1zbmFwY2hhdDsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNuYXBjaGF0LWdob3N0OmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItc25hcGNoYXQtZ2hvc3Q7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zbmFwY2hhdC1zcXVhcmU6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1zbmFwY2hhdC1zcXVhcmU7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1waWVkLXBpcGVyOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItcGllZC1waXBlcjsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWZpcnN0LW9yZGVyOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItZmlyc3Qtb3JkZXI7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS15b2FzdDpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXlvYXN0OyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdGhlbWVpc2xlOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItdGhlbWVpc2xlOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZ29vZ2xlLXBsdXMtY2lyY2xlOmJlZm9yZSxcbi4jeyRmYS1jc3MtcHJlZml4fS1nb29nbGUtcGx1cy1vZmZpY2lhbDpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWdvb2dsZS1wbHVzLW9mZmljaWFsOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZmE6YmVmb3JlLFxuLiN7JGZhLWNzcy1wcmVmaXh9LWZvbnQtYXdlc29tZTpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWZvbnQtYXdlc29tZTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWhhbmRzaGFrZS1vOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItaGFuZHNoYWtlLW87IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1lbnZlbG9wZS1vcGVuOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItZW52ZWxvcGUtb3BlbjsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWVudmVsb3BlLW9wZW4tbzpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWVudmVsb3BlLW9wZW4tbzsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWxpbm9kZTpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWxpbm9kZTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWFkZHJlc3MtYm9vazpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWFkZHJlc3MtYm9vazsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWFkZHJlc3MtYm9vay1vOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItYWRkcmVzcy1ib29rLW87IH1cbi4jeyRmYS1jc3MtcHJlZml4fS12Y2FyZDpiZWZvcmUsXG4uI3skZmEtY3NzLXByZWZpeH0tYWRkcmVzcy1jYXJkOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItYWRkcmVzcy1jYXJkOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdmNhcmQtbzpiZWZvcmUsXG4uI3skZmEtY3NzLXByZWZpeH0tYWRkcmVzcy1jYXJkLW86YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1hZGRyZXNzLWNhcmQtbzsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXVzZXItY2lyY2xlOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItdXNlci1jaXJjbGU7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS11c2VyLWNpcmNsZS1vOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItdXNlci1jaXJjbGUtbzsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXVzZXItbzpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXVzZXItbzsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWlkLWJhZGdlOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItaWQtYmFkZ2U7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1kcml2ZXJzLWxpY2Vuc2U6YmVmb3JlLFxuLiN7JGZhLWNzcy1wcmVmaXh9LWlkLWNhcmQ6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1pZC1jYXJkOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZHJpdmVycy1saWNlbnNlLW86YmVmb3JlLFxuLiN7JGZhLWNzcy1wcmVmaXh9LWlkLWNhcmQtbzpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWlkLWNhcmQtbzsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXF1b3JhOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItcXVvcmE7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1mcmVlLWNvZGUtY2FtcDpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWZyZWUtY29kZS1jYW1wOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdGVsZWdyYW06YmVmb3JlIHsgY29udGVudDogJGZhLXZhci10ZWxlZ3JhbTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRoZXJtb21ldGVyLTQ6YmVmb3JlLFxuLiN7JGZhLWNzcy1wcmVmaXh9LXRoZXJtb21ldGVyOmJlZm9yZSxcbi4jeyRmYS1jc3MtcHJlZml4fS10aGVybW9tZXRlci1mdWxsOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItdGhlcm1vbWV0ZXItZnVsbDsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRoZXJtb21ldGVyLTM6YmVmb3JlLFxuLiN7JGZhLWNzcy1wcmVmaXh9LXRoZXJtb21ldGVyLXRocmVlLXF1YXJ0ZXJzOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItdGhlcm1vbWV0ZXItdGhyZWUtcXVhcnRlcnM7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS10aGVybW9tZXRlci0yOmJlZm9yZSxcbi4jeyRmYS1jc3MtcHJlZml4fS10aGVybW9tZXRlci1oYWxmOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItdGhlcm1vbWV0ZXItaGFsZjsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRoZXJtb21ldGVyLTE6YmVmb3JlLFxuLiN7JGZhLWNzcy1wcmVmaXh9LXRoZXJtb21ldGVyLXF1YXJ0ZXI6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci10aGVybW9tZXRlci1xdWFydGVyOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdGhlcm1vbWV0ZXItMDpiZWZvcmUsXG4uI3skZmEtY3NzLXByZWZpeH0tdGhlcm1vbWV0ZXItZW1wdHk6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci10aGVybW9tZXRlci1lbXB0eTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNob3dlcjpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXNob3dlcjsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJhdGh0dWI6YmVmb3JlLFxuLiN7JGZhLWNzcy1wcmVmaXh9LXMxNTpiZWZvcmUsXG4uI3skZmEtY3NzLXByZWZpeH0tYmF0aDpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWJhdGg7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1wb2RjYXN0OmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItcG9kY2FzdDsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXdpbmRvdy1tYXhpbWl6ZTpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXdpbmRvdy1tYXhpbWl6ZTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXdpbmRvdy1taW5pbWl6ZTpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXdpbmRvdy1taW5pbWl6ZTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXdpbmRvdy1yZXN0b3JlOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItd2luZG93LXJlc3RvcmU7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS10aW1lcy1yZWN0YW5nbGU6YmVmb3JlLFxuLiN7JGZhLWNzcy1wcmVmaXh9LXdpbmRvdy1jbG9zZTpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXdpbmRvdy1jbG9zZTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRpbWVzLXJlY3RhbmdsZS1vOmJlZm9yZSxcbi4jeyRmYS1jc3MtcHJlZml4fS13aW5kb3ctY2xvc2UtbzpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXdpbmRvdy1jbG9zZS1vOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYmFuZGNhbXA6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1iYW5kY2FtcDsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWdyYXY6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1ncmF2OyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZXRzeTpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWV0c3k7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1pbWRiOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItaW1kYjsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXJhdmVscnk6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1yYXZlbHJ5OyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZWVyY2FzdDpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLWVlcmNhc3Q7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1taWNyb2NoaXA6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1taWNyb2NoaXA7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zbm93Zmxha2UtbzpiZWZvcmUgeyBjb250ZW50OiAkZmEtdmFyLXNub3dmbGFrZS1vOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc3VwZXJwb3dlcnM6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci1zdXBlcnBvd2VyczsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXdwZXhwbG9yZXI6YmVmb3JlIHsgY29udGVudDogJGZhLXZhci13cGV4cGxvcmVyOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbWVldHVwOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYS12YXItbWVldHVwOyB9XG4iLCIvLyBTY3JlZW4gUmVhZGVyc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4uc3Itb25seSB7IEBpbmNsdWRlIHNyLW9ubHkoKTsgfVxuLnNyLW9ubHktZm9jdXNhYmxlIHsgQGluY2x1ZGUgc3Itb25seS1mb2N1c2FibGUoKTsgfVxuIiwiLy8gIEZvdW5kYXRpb24gZm9yIFNpdGVzIFNldHRpbmdzXG4vLyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vXG4vLyAgVGFibGUgb2YgQ29udGVudHM6XG4vL1xuLy8gICAxLiBHbG9iYWxcbi8vICAgMi4gQnJlYWtwb2ludHNcbi8vICAgMy4gVGhlIEdyaWRcbi8vICAgNC4gQmFzZSBUeXBvZ3JhcGh5XG4vLyAgIDUuIFR5cG9ncmFwaHkgSGVscGVyc1xuLy8gICA2LiBBYmlkZVxuLy8gICA3LiBBY2NvcmRpb25cbi8vICAgOC4gQWNjb3JkaW9uIE1lbnVcbi8vICAgOS4gQmFkZ2Vcbi8vICAxMC4gQnJlYWRjcnVtYnNcbi8vICAxMS4gQnV0dG9uXG4vLyAgMTIuIEJ1dHRvbiBHcm91cFxuLy8gIDEzLiBDYWxsb3V0XG4vLyAgMTQuIENhcmRcbi8vICAxNS4gQ2xvc2UgQnV0dG9uXG4vLyAgMTYuIERyaWxsZG93blxuLy8gIDE3LiBEcm9wZG93blxuLy8gIDE4LiBEcm9wZG93biBNZW51XG4vLyAgMTkuIEZvcm1zXG4vLyAgMjAuIExhYmVsXG4vLyAgMjEuIE1lZGlhIE9iamVjdFxuLy8gIDIyLiBNZW51XG4vLyAgMjMuIE1ldGVyXG4vLyAgMjQuIE9mZi1jYW52YXNcbi8vICAyNS4gT3JiaXRcbi8vICAyNi4gUGFnaW5hdGlvblxuLy8gIDI3LiBQcm9ncmVzcyBCYXJcbi8vICAyOC4gUmVzcG9uc2l2ZSBFbWJlZFxuLy8gIDI5LiBSZXZlYWxcbi8vICAzMC4gU2xpZGVyXG4vLyAgMzEuIFN3aXRjaFxuLy8gIDMyLiBUYWJsZVxuLy8gIDMzLiBUYWJzXG4vLyAgMzQuIFRodW1ibmFpbFxuLy8gIDM1LiBUaXRsZSBCYXJcbi8vICAzNi4gVG9vbHRpcFxuLy8gIDM3LiBUb3AgQmFyXG5cbkBpbXBvcnQgJy4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL3V0aWwnO1xuXG4vLyAxLiBHbG9iYWxcbi8vIC0tLS0tLS0tLVxuXG4kZ2xvYmFsLWZvbnQtc2l6ZTogMTAwJTtcbiRnbG9iYWwtd2lkdGg6IHJlbS1jYWxjKDEyMDApO1xuJGdsb2JhbC1saW5laGVpZ2h0OiAxLjU7XG4kZm91bmRhdGlvbi1wYWxldHRlOiAoXG4gIHByaW1hcnk6ICMxNzc5YmEsXG4gIHNlY29uZGFyeTogIzc2NzY3NixcbiAgc3VjY2VzczogIzNhZGI3NixcbiAgd2FybmluZzogI2ZmYWUwMCxcbiAgYWxlcnQ6ICNjYzRiMzcsXG4pO1xuJGxpZ2h0LWdyYXk6ICNlNmU2ZTY7XG4kbWVkaXVtLWdyYXk6ICNjYWNhY2E7XG4kZGFyay1ncmF5OiAjOGE4YThhO1xuJGJsYWNrOiAjMGEwYTBhO1xuJHdoaXRlOiAjZmVmZWZlO1xuJGJvZHktYmFja2dyb3VuZDogJHdoaXRlO1xuJGJvZHktZm9udC1jb2xvcjogJGJsYWNrO1xuJGJvZHktZm9udC1mYW1pbHk6ICdIZWx2ZXRpY2EgTmV1ZScsIEhlbHZldGljYSwgUm9ib3RvLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiRib2R5LWFudGlhbGlhc2VkOiB0cnVlO1xuJGdsb2JhbC1tYXJnaW46IDFyZW07XG4kZ2xvYmFsLXBhZGRpbmc6IDFyZW07XG4kZ2xvYmFsLXdlaWdodC1ub3JtYWw6IG5vcm1hbDtcbiRnbG9iYWwtd2VpZ2h0LWJvbGQ6IGJvbGQ7XG4kZ2xvYmFsLXJhZGl1czogMDtcbiRnbG9iYWwtdGV4dC1kaXJlY3Rpb246IGx0cjtcbiRnbG9iYWwtZmxleGJveDogZmFsc2U7XG4kcHJpbnQtdHJhbnNwYXJlbnQtYmFja2dyb3VuZHM6IHRydWU7XG5cbkBpbmNsdWRlIGFkZC1mb3VuZGF0aW9uLWNvbG9ycztcblxuLy8gMi4gQnJlYWtwb2ludHNcbi8vIC0tLS0tLS0tLS0tLS0tXG5cbiRicmVha3BvaW50czogKFxuICBzbWFsbDogMCxcbiAgbWVkaXVtOiA2NDBweCxcbiAgbGFyZ2U6IDEwMjRweCxcbiAgeGxhcmdlOiAxMjAwcHgsXG4gIHh4bGFyZ2U6IDE0NDBweCxcbik7XG4kcHJpbnQtYnJlYWtwb2ludDogbGFyZ2U7XG4kYnJlYWtwb2ludC1jbGFzc2VzOiAoc21hbGwgbWVkaXVtIGxhcmdlKTtcblxuLy8gMy4gVGhlIEdyaWRcbi8vIC0tLS0tLS0tLS0tXG5cbiRncmlkLXJvdy13aWR0aDogJGdsb2JhbC13aWR0aDtcbiRncmlkLWNvbHVtbi1jb3VudDogMTI7XG4kZ3JpZC1jb2x1bW4tZ3V0dGVyOiAoXG4gIHNtYWxsOiAyMHB4LFxuICBtZWRpdW06IDMwcHgsXG4pO1xuJGdyaWQtY29sdW1uLWFsaWduLWVkZ2U6IHRydWU7XG4kYmxvY2stZ3JpZC1tYXg6IDg7XG5cbi8vIDQuIEJhc2UgVHlwb2dyYXBoeVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRoZWFkZXItZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5O1xuJGhlYWRlci1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsO1xuJGhlYWRlci1mb250LXN0eWxlOiBub3JtYWw7XG4kZm9udC1mYW1pbHktbW9ub3NwYWNlOiBDb25zb2xhcywgJ0xpYmVyYXRpb24gTW9ubycsIENvdXJpZXIsIG1vbm9zcGFjZTtcbiRoZWFkZXItY29sb3I6IGluaGVyaXQ7XG4kaGVhZGVyLWxpbmVoZWlnaHQ6IDEuNDtcbiRoZWFkZXItbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuJGhlYWRlci1zdHlsZXM6IChcbiAgc21hbGw6IChcbiAgICAnaDEnOiAoJ2ZvbnQtc2l6ZSc6IDI0KSxcbiAgICAnaDInOiAoJ2ZvbnQtc2l6ZSc6IDIwKSxcbiAgICAnaDMnOiAoJ2ZvbnQtc2l6ZSc6IDE5KSxcbiAgICAnaDQnOiAoJ2ZvbnQtc2l6ZSc6IDE4KSxcbiAgICAnaDUnOiAoJ2ZvbnQtc2l6ZSc6IDE3KSxcbiAgICAnaDYnOiAoJ2ZvbnQtc2l6ZSc6IDE2KSxcbiAgKSxcbiAgbWVkaXVtOiAoXG4gICAgJ2gxJzogKCdmb250LXNpemUnOiA0OCksXG4gICAgJ2gyJzogKCdmb250LXNpemUnOiA0MCksXG4gICAgJ2gzJzogKCdmb250LXNpemUnOiAzMSksXG4gICAgJ2g0JzogKCdmb250LXNpemUnOiAyNSksXG4gICAgJ2g1JzogKCdmb250LXNpemUnOiAyMCksXG4gICAgJ2g2JzogKCdmb250LXNpemUnOiAxNiksXG4gICksXG4pO1xuJGhlYWRlci10ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5O1xuJHNtYWxsLWZvbnQtc2l6ZTogODAlO1xuJGhlYWRlci1zbWFsbC1mb250LWNvbG9yOiAkbWVkaXVtLWdyYXk7XG4kcGFyYWdyYXBoLWxpbmVoZWlnaHQ6IDEuNjtcbiRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTogMXJlbTtcbiRwYXJhZ3JhcGgtdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTtcbiRjb2RlLWNvbG9yOiAkYmxhY2s7XG4kY29kZS1mb250LWZhbWlseTogJGZvbnQtZmFtaWx5LW1vbm9zcGFjZTtcbiRjb2RlLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWw7XG4kY29kZS1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheTtcbiRjb2RlLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcbiRjb2RlLXBhZGRpbmc6IHJlbS1jYWxjKDIgNSAxKTtcbiRhbmNob3ItY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuJGFuY2hvci1jb2xvci1ob3Zlcjogc2NhbGUtY29sb3IoJGFuY2hvci1jb2xvciwgJGxpZ2h0bmVzczogLTE0JSk7XG4kYW5jaG9yLXRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiRhbmNob3ItdGV4dC1kZWNvcmF0aW9uLWhvdmVyOiBub25lO1xuJGhyLXdpZHRoOiAkZ2xvYmFsLXdpZHRoO1xuJGhyLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcbiRoci1tYXJnaW46IHJlbS1jYWxjKDIwKSBhdXRvO1xuJGxpc3QtbGluZWhlaWdodDogJHBhcmFncmFwaC1saW5laGVpZ2h0O1xuJGxpc3QtbWFyZ2luLWJvdHRvbTogJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tO1xuJGxpc3Qtc3R5bGUtdHlwZTogZGlzYztcbiRsaXN0LXN0eWxlLXBvc2l0aW9uOiBvdXRzaWRlO1xuJGxpc3Qtc2lkZS1tYXJnaW46IDEuMjVyZW07XG4kbGlzdC1uZXN0ZWQtc2lkZS1tYXJnaW46IDEuMjVyZW07XG4kZGVmbmxpc3QtbWFyZ2luLWJvdHRvbTogMXJlbTtcbiRkZWZubGlzdC10ZXJtLXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcbiRkZWZubGlzdC10ZXJtLW1hcmdpbi1ib3R0b206IDAuM3JlbTtcbiRibG9ja3F1b3RlLWNvbG9yOiAkZGFyay1ncmF5O1xuJGJsb2NrcXVvdGUtcGFkZGluZzogcmVtLWNhbGMoOSAyMCAwIDE5KTtcbiRibG9ja3F1b3RlLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcbiRjaXRlLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTMpO1xuJGNpdGUtY29sb3I6ICRkYXJrLWdyYXk7XG4kY2l0ZS1wc2V1ZG8tY29udGVudDogJ1xcMjAxNCBcXDAwMjAnO1xuJGtleXN0cm9rZS1mb250OiAkZm9udC1mYW1pbHktbW9ub3NwYWNlO1xuJGtleXN0cm9rZS1jb2xvcjogJGJsYWNrO1xuJGtleXN0cm9rZS1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheTtcbiRrZXlzdHJva2UtcGFkZGluZzogcmVtLWNhbGMoMiA0IDApO1xuJGtleXN0cm9rZS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJGFiYnItdW5kZXJsaW5lOiAxcHggZG90dGVkICRibGFjaztcblxuLy8gNS4gVHlwb2dyYXBoeSBIZWxwZXJzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJGxlYWQtZm9udC1zaXplOiAkZ2xvYmFsLWZvbnQtc2l6ZSAqIDEuMjU7XG4kbGVhZC1saW5laGVpZ2h0OiAxLjY7XG4kc3ViaGVhZGVyLWxpbmVoZWlnaHQ6IDEuNDtcbiRzdWJoZWFkZXItY29sb3I6ICRkYXJrLWdyYXk7XG4kc3ViaGVhZGVyLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWw7XG4kc3ViaGVhZGVyLW1hcmdpbi10b3A6IDAuMnJlbTtcbiRzdWJoZWFkZXItbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuJHN0YXQtZm9udC1zaXplOiAyLjVyZW07XG5cbi8vIDYuIEFiaWRlXG4vLyAtLS0tLS0tLVxuXG4kYWJpZGUtaW5wdXRzOiB0cnVlO1xuJGFiaWRlLWxhYmVsczogdHJ1ZTtcbiRpbnB1dC1iYWNrZ3JvdW5kLWludmFsaWQ6IGdldC1jb2xvcihhbGVydCk7XG4kZm9ybS1sYWJlbC1jb2xvci1pbnZhbGlkOiBnZXQtY29sb3IoYWxlcnQpO1xuJGlucHV0LWVycm9yLWNvbG9yOiBnZXQtY29sb3IoYWxlcnQpO1xuJGlucHV0LWVycm9yLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpO1xuJGlucHV0LWVycm9yLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuXG4vLyA3LiBBY2NvcmRpb25cbi8vIC0tLS0tLS0tLS0tLVxuXG4kYWNjb3JkaW9uLWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRhY2NvcmRpb24tcGx1c21pbnVzOiB0cnVlO1xuJGFjY29yZGlvbi10aXRsZS1mb250LXNpemU6IHJlbS1jYWxjKDEyKTtcbiRhY2NvcmRpb24taXRlbS1jb2xvcjogJHByaW1hcnktY29sb3I7XG4kYWNjb3JkaW9uLWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjogJGxpZ2h0LWdyYXk7XG4kYWNjb3JkaW9uLWl0ZW0tcGFkZGluZzogMS4yNXJlbSAxcmVtO1xuJGFjY29yZGlvbi1jb250ZW50LWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRhY2NvcmRpb24tY29udGVudC1ib3JkZXI6IDFweCBzb2xpZCAkbGlnaHQtZ3JheTtcbiRhY2NvcmRpb24tY29udGVudC1jb2xvcjogJGJvZHktZm9udC1jb2xvcjtcbiRhY2NvcmRpb24tY29udGVudC1wYWRkaW5nOiAxcmVtO1xuXG4vLyA4LiBBY2NvcmRpb24gTWVudVxuLy8gLS0tLS0tLS0tLS0tLS0tLS1cblxuJGFjY29yZGlvbm1lbnUtYXJyb3dzOiB0cnVlO1xuJGFjY29yZGlvbm1lbnUtYXJyb3ctY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuJGFjY29yZGlvbm1lbnUtYXJyb3ctc2l6ZTogNnB4O1xuXG4vLyA5LiBCYWRnZVxuLy8gLS0tLS0tLS1cblxuJGJhZGdlLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuJGJhZGdlLWNvbG9yOiAkd2hpdGU7XG4kYmFkZ2UtY29sb3ItYWx0OiAkYmxhY2s7XG4kYmFkZ2UtcGFsZXR0ZTogJGZvdW5kYXRpb24tcGFsZXR0ZTtcbiRiYWRnZS1wYWRkaW5nOiAwLjNlbTtcbiRiYWRnZS1taW53aWR0aDogMi4xZW07XG4kYmFkZ2UtZm9udC1zaXplOiAwLjZyZW07XG5cbi8vIDEwLiBCcmVhZGNydW1ic1xuLy8gLS0tLS0tLS0tLS0tLS0tXG5cbiRicmVhZGNydW1icy1tYXJnaW46IDAgMCAkZ2xvYmFsLW1hcmdpbiAwO1xuJGJyZWFkY3J1bWJzLWl0ZW0tZm9udC1zaXplOiByZW0tY2FsYygxMSk7XG4kYnJlYWRjcnVtYnMtaXRlbS1jb2xvcjogJHByaW1hcnktY29sb3I7XG4kYnJlYWRjcnVtYnMtaXRlbS1jb2xvci1jdXJyZW50OiAkYmxhY2s7XG4kYnJlYWRjcnVtYnMtaXRlbS1jb2xvci1kaXNhYmxlZDogJG1lZGl1bS1ncmF5O1xuJGJyZWFkY3J1bWJzLWl0ZW0tbWFyZ2luOiAwLjc1cmVtO1xuJGJyZWFkY3J1bWJzLWl0ZW0tdXBwZXJjYXNlOiB0cnVlO1xuJGJyZWFkY3J1bWJzLWl0ZW0tc2xhc2g6IHRydWU7XG5cbi8vIDExLiBCdXR0b25cbi8vIC0tLS0tLS0tLS1cblxuJGJ1dHRvbi1wYWRkaW5nOiAwLjg1ZW0gMWVtO1xuJGJ1dHRvbi1tYXJnaW46IDAgMCAkZ2xvYmFsLW1hcmdpbiAwO1xuJGJ1dHRvbi1maWxsOiBzb2xpZDtcbiRidXR0b24tYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG4kYnV0dG9uLWJhY2tncm91bmQtaG92ZXI6IHNjYWxlLWNvbG9yKCRidXR0b24tYmFja2dyb3VuZCwgJGxpZ2h0bmVzczogLTE1JSk7XG4kYnV0dG9uLWNvbG9yOiAkd2hpdGU7XG4kYnV0dG9uLWNvbG9yLWFsdDogJGJsYWNrO1xuJGJ1dHRvbi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJGJ1dHRvbi1zaXplczogKFxuICB0aW55OiAwLjZyZW0sXG4gIHNtYWxsOiAwLjc1cmVtLFxuICBkZWZhdWx0OiAwLjlyZW0sXG4gIGxhcmdlOiAxLjI1cmVtLFxuKTtcbiRidXR0b24tcGFsZXR0ZTogJGZvdW5kYXRpb24tcGFsZXR0ZTtcbiRidXR0b24tb3BhY2l0eS1kaXNhYmxlZDogMC4yNTtcbiRidXR0b24tYmFja2dyb3VuZC1ob3Zlci1saWdodG5lc3M6IC0yMCU7XG4kYnV0dG9uLWhvbGxvdy1ob3Zlci1saWdodG5lc3M6IC01MCU7XG4kYnV0dG9uLXRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4yNXMgZWFzZS1vdXQsIGNvbG9yIDAuMjVzIGVhc2Utb3V0O1xuXG4vLyAxMi4gQnV0dG9uIEdyb3VwXG4vLyAtLS0tLS0tLS0tLS0tLS0tXG5cbiRidXR0b25ncm91cC1tYXJnaW46IDFyZW07XG4kYnV0dG9uZ3JvdXAtc3BhY2luZzogMXB4O1xuJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yOiAnLmJ1dHRvbic7XG4kYnV0dG9uZ3JvdXAtZXhwYW5kLW1heDogNjtcbiRidXR0b25ncm91cC1yYWRpdXMtb24tZWFjaDogdHJ1ZTtcblxuLy8gMTMuIENhbGxvdXRcbi8vIC0tLS0tLS0tLS0tXG5cbiRjYWxsb3V0LWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRjYWxsb3V0LWJhY2tncm91bmQtZmFkZTogODUlO1xuJGNhbGxvdXQtYm9yZGVyOiAxcHggc29saWQgcmdiYSgkYmxhY2ssIDAuMjUpO1xuJGNhbGxvdXQtbWFyZ2luOiAwIDAgMXJlbSAwO1xuJGNhbGxvdXQtcGFkZGluZzogMXJlbTtcbiRjYWxsb3V0LWZvbnQtY29sb3I6ICRib2R5LWZvbnQtY29sb3I7XG4kY2FsbG91dC1mb250LWNvbG9yLWFsdDogJGJvZHktYmFja2dyb3VuZDtcbiRjYWxsb3V0LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kY2FsbG91dC1saW5rLXRpbnQ6IDMwJTtcblxuLy8gMTQuIENhcmRcbi8vIC0tLS0tLS0tXG5cbiRjYXJkLWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRjYXJkLWZvbnQtY29sb3I6ICRib2R5LWZvbnQtY29sb3I7XG4kY2FyZC1kaXZpZGVyLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5O1xuJGNhcmQtYm9yZGVyOiAxcHggc29saWQgJGxpZ2h0LWdyYXk7XG4kY2FyZC1zaGFkb3c6IG5vbmU7XG4kY2FyZC1ib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRjYXJkLXBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZztcbiRjYXJkLW1hcmdpbjogJGdsb2JhbC1tYXJnaW47XG5cbi8vIDE1LiBDbG9zZSBCdXR0b25cbi8vIC0tLS0tLS0tLS0tLS0tLS1cblxuJGNsb3NlYnV0dG9uLXBvc2l0aW9uOiByaWdodCB0b3A7XG4kY2xvc2VidXR0b24tb2Zmc2V0LWhvcml6b250YWw6IChcbiAgc21hbGw6IDAuNjZyZW0sXG4gIG1lZGl1bTogMXJlbSxcbik7XG4kY2xvc2VidXR0b24tb2Zmc2V0LXZlcnRpY2FsOiAoXG4gIHNtYWxsOiAwLjMzZW0sXG4gIG1lZGl1bTogMC41cmVtLFxuKTtcbiRjbG9zZWJ1dHRvbi1zaXplOiAoXG4gIHNtYWxsOiAxLjVlbSxcbiAgbWVkaXVtOiAyZW0sXG4pO1xuJGNsb3NlYnV0dG9uLWxpbmVoZWlnaHQ6IDE7XG4kY2xvc2VidXR0b24tY29sb3I6ICRkYXJrLWdyYXk7XG4kY2xvc2VidXR0b24tY29sb3ItaG92ZXI6ICRibGFjaztcblxuLy8gMTYuIERyaWxsZG93blxuLy8gLS0tLS0tLS0tLS0tLVxuXG4kZHJpbGxkb3duLXRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE1cyBsaW5lYXI7XG4kZHJpbGxkb3duLWFycm93czogdHJ1ZTtcbiRkcmlsbGRvd24tYXJyb3ctY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuJGRyaWxsZG93bi1hcnJvdy1zaXplOiA2cHg7XG4kZHJpbGxkb3duLWJhY2tncm91bmQ6ICR3aGl0ZTtcblxuLy8gMTcuIERyb3Bkb3duXG4vLyAtLS0tLS0tLS0tLS1cblxuJGRyb3Bkb3duLXBhZGRpbmc6IDFyZW07XG4kZHJvcGRvd24tYmFja2dyb3VuZDogJGJvZHktYmFja2dyb3VuZDtcbiRkcm9wZG93bi1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kZHJvcGRvd24tZm9udC1zaXplOiAxcmVtO1xuJGRyb3Bkb3duLXdpZHRoOiAzMDBweDtcbiRkcm9wZG93bi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJGRyb3Bkb3duLXNpemVzOiAoXG4gIHRpbnk6IDEwMHB4LFxuICBzbWFsbDogMjAwcHgsXG4gIGxhcmdlOiA0MDBweCxcbik7XG5cbi8vIDE4LiBEcm9wZG93biBNZW51XG4vLyAtLS0tLS0tLS0tLS0tLS0tLVxuXG4kZHJvcGRvd25tZW51LWFycm93czogdHJ1ZTtcbiRkcm9wZG93bm1lbnUtYXJyb3ctY29sb3I6ICRhbmNob3ItY29sb3I7XG4kZHJvcGRvd25tZW51LWFycm93LXNpemU6IDZweDtcbiRkcm9wZG93bm1lbnUtbWluLXdpZHRoOiAyMDBweDtcbiRkcm9wZG93bm1lbnUtYmFja2dyb3VuZDogJHdoaXRlO1xuJGRyb3Bkb3dubWVudS1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG5cbi8vIDE5LiBGb3Jtc1xuLy8gLS0tLS0tLS0tXG5cbiRmaWVsZHNldC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kZmllbGRzZXQtcGFkZGluZzogcmVtLWNhbGMoMjApO1xuJGZpZWxkc2V0LW1hcmdpbjogcmVtLWNhbGMoMTggMCk7XG4kbGVnZW5kLXBhZGRpbmc6IHJlbS1jYWxjKDAgMyk7XG4kZm9ybS1zcGFjaW5nOiByZW0tY2FsYygxNik7XG4kaGVscHRleHQtY29sb3I6ICRibGFjaztcbiRoZWxwdGV4dC1mb250LXNpemU6IHJlbS1jYWxjKDEzKTtcbiRoZWxwdGV4dC1mb250LXN0eWxlOiBpdGFsaWM7XG4kaW5wdXQtcHJlZml4LWNvbG9yOiAkYmxhY2s7XG4kaW5wdXQtcHJlZml4LWJhY2tncm91bmQ6ICRsaWdodC1ncmF5O1xuJGlucHV0LXByZWZpeC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kaW5wdXQtcHJlZml4LXBhZGRpbmc6IDFyZW07XG4kZm9ybS1sYWJlbC1jb2xvcjogJGJsYWNrO1xuJGZvcm0tbGFiZWwtZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4kZm9ybS1sYWJlbC1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsO1xuJGZvcm0tbGFiZWwtbGluZS1oZWlnaHQ6IDEuODtcbiRzZWxlY3QtYmFja2dyb3VuZDogJHdoaXRlO1xuJHNlbGVjdC10cmlhbmdsZS1jb2xvcjogJGRhcmstZ3JheTtcbiRzZWxlY3QtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRpbnB1dC1jb2xvcjogJGJsYWNrO1xuJGlucHV0LXBsYWNlaG9sZGVyLWNvbG9yOiAkbWVkaXVtLWdyYXk7XG4kaW5wdXQtZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4kaW5wdXQtZm9udC1zaXplOiByZW0tY2FsYygxNik7XG4kaW5wdXQtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbDtcbiRpbnB1dC1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kaW5wdXQtYmFja2dyb3VuZC1mb2N1czogJHdoaXRlO1xuJGlucHV0LWJhY2tncm91bmQtZGlzYWJsZWQ6ICRsaWdodC1ncmF5O1xuJGlucHV0LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcbiRpbnB1dC1ib3JkZXItZm9jdXM6IDFweCBzb2xpZCAkZGFyay1ncmF5O1xuJGlucHV0LXNoYWRvdzogaW5zZXQgMCAxcHggMnB4IHJnYmEoJGJsYWNrLCAwLjEpO1xuJGlucHV0LXNoYWRvdy1mb2N1czogMCAwIDVweCAkbWVkaXVtLWdyYXk7XG4kaW5wdXQtY3Vyc29yLWRpc2FibGVkOiBub3QtYWxsb3dlZDtcbiRpbnB1dC10cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuNXMsIGJvcmRlci1jb2xvciAwLjI1cyBlYXNlLWluLW91dDtcbiRpbnB1dC1udW1iZXItc3Bpbm5lcnM6IHRydWU7XG4kaW5wdXQtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRmb3JtLWJ1dHRvbi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXG4vLyAyMC4gTGFiZWxcbi8vIC0tLS0tLS0tLVxuXG4kbGFiZWwtYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG4kbGFiZWwtY29sb3I6ICR3aGl0ZTtcbiRsYWJlbC1jb2xvci1hbHQ6ICRibGFjaztcbiRsYWJlbC1wYWxldHRlOiAkZm91bmRhdGlvbi1wYWxldHRlO1xuJGxhYmVsLWZvbnQtc2l6ZTogMC44cmVtO1xuJGxhYmVsLXBhZGRpbmc6IDAuMzMzMzNyZW0gMC41cmVtO1xuJGxhYmVsLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG5cbi8vIDIxLiBNZWRpYSBPYmplY3Rcbi8vIC0tLS0tLS0tLS0tLS0tLS1cblxuJG1lZGlhb2JqZWN0LW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xuJG1lZGlhb2JqZWN0LXNlY3Rpb24tcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nO1xuJG1lZGlhb2JqZWN0LWltYWdlLXdpZHRoLXN0YWNrZWQ6IDEwMCU7XG5cbi8vIDIyLiBNZW51XG4vLyAtLS0tLS0tLVxuXG4kbWVudS1tYXJnaW46IDA7XG4kbWVudS1tYXJnaW4tbmVzdGVkOiAxcmVtO1xuJG1lbnUtaXRlbS1wYWRkaW5nOiAwLjdyZW0gMXJlbTtcbiRtZW51LWl0ZW0tY29sb3ItYWN0aXZlOiAkd2hpdGU7XG4kbWVudS1pdGVtLWJhY2tncm91bmQtYWN0aXZlOiBnZXQtY29sb3IocHJpbWFyeSk7XG4kbWVudS1pY29uLXNwYWNpbmc6IDAuMjVyZW07XG4kbWVudS1pdGVtLWJhY2tncm91bmQtaG92ZXI6ICRsaWdodC1ncmF5O1xuJG1lbnUtYm9yZGVyOiAkbGlnaHQtZ3JheTtcblxuLy8gMjMuIE1ldGVyXG4vLyAtLS0tLS0tLS1cblxuJG1ldGVyLWhlaWdodDogMXJlbTtcbiRtZXRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJG1ldGVyLWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheTtcbiRtZXRlci1maWxsLWdvb2Q6ICRzdWNjZXNzLWNvbG9yO1xuJG1ldGVyLWZpbGwtbWVkaXVtOiAkd2FybmluZy1jb2xvcjtcbiRtZXRlci1maWxsLWJhZDogJGFsZXJ0LWNvbG9yO1xuXG4vLyAyNC4gT2ZmLWNhbnZhc1xuLy8gLS0tLS0tLS0tLS0tLS1cblxuJG9mZmNhbnZhcy1zaXplOiAyNTBweDtcbiRvZmZjYW52YXMtdmVydGljYWwtc2l6ZTogMjUwcHg7XG4kb2ZmY2FudmFzLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5O1xuJG9mZmNhbnZhcy1zaGFkb3c6IDAgMCAxMHB4IHJnYmEoJGJsYWNrLCAwLjcpO1xuJG9mZmNhbnZhcy1wdXNoLXppbmRleDogMTtcbiRvZmZjYW52YXMtb3ZlcmxhcC16aW5kZXg6IDEwO1xuJG9mZmNhbnZhcy1yZXZlYWwtemluZGV4OiAxO1xuJG9mZmNhbnZhcy10cmFuc2l0aW9uLWxlbmd0aDogMC41cztcbiRvZmZjYW52YXMtdHJhbnNpdGlvbi10aW1pbmc6IGVhc2U7XG4kb2ZmY2FudmFzLWZpeGVkLXJldmVhbDogdHJ1ZTtcbiRvZmZjYW52YXMtZXhpdC1iYWNrZ3JvdW5kOiByZ2JhKCR3aGl0ZSwgMC4yNSk7XG4kbWFpbmNvbnRlbnQtY2xhc3M6ICdvZmYtY2FudmFzLWNvbnRlbnQnO1xuXG4vLyAyNS4gT3JiaXRcbi8vIC0tLS0tLS0tLVxuXG4kb3JiaXQtYnVsbGV0LWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheTtcbiRvcmJpdC1idWxsZXQtYmFja2dyb3VuZC1hY3RpdmU6ICRkYXJrLWdyYXk7XG4kb3JiaXQtYnVsbGV0LWRpYW1ldGVyOiAxLjJyZW07XG4kb3JiaXQtYnVsbGV0LW1hcmdpbjogMC4xcmVtO1xuJG9yYml0LWJ1bGxldC1tYXJnaW4tdG9wOiAwLjhyZW07XG4kb3JiaXQtYnVsbGV0LW1hcmdpbi1ib3R0b206IDAuOHJlbTtcbiRvcmJpdC1jYXB0aW9uLWJhY2tncm91bmQ6IHJnYmEoJGJsYWNrLCAwLjUpO1xuJG9yYml0LWNhcHRpb24tcGFkZGluZzogMXJlbTtcbiRvcmJpdC1jb250cm9sLWJhY2tncm91bmQtaG92ZXI6IHJnYmEoJGJsYWNrLCAwLjUpO1xuJG9yYml0LWNvbnRyb2wtcGFkZGluZzogMXJlbTtcbiRvcmJpdC1jb250cm9sLXppbmRleDogMTA7XG5cbi8vIDI2LiBQYWdpbmF0aW9uXG4vLyAtLS0tLS0tLS0tLS0tLVxuXG4kcGFnaW5hdGlvbi1mb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiRwYWdpbmF0aW9uLW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xuJHBhZ2luYXRpb24taXRlbS1jb2xvcjogJGJsYWNrO1xuJHBhZ2luYXRpb24taXRlbS1wYWRkaW5nOiByZW0tY2FsYygzIDEwKTtcbiRwYWdpbmF0aW9uLWl0ZW0tc3BhY2luZzogcmVtLWNhbGMoMSk7XG4kcGFnaW5hdGlvbi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJHBhZ2luYXRpb24taXRlbS1iYWNrZ3JvdW5kLWhvdmVyOiAkbGlnaHQtZ3JheTtcbiRwYWdpbmF0aW9uLWl0ZW0tYmFja2dyb3VuZC1jdXJyZW50OiAkcHJpbWFyeS1jb2xvcjtcbiRwYWdpbmF0aW9uLWl0ZW0tY29sb3ItY3VycmVudDogJHdoaXRlO1xuJHBhZ2luYXRpb24taXRlbS1jb2xvci1kaXNhYmxlZDogJG1lZGl1bS1ncmF5O1xuJHBhZ2luYXRpb24tZWxsaXBzaXMtY29sb3I6ICRibGFjaztcbiRwYWdpbmF0aW9uLW1vYmlsZS1pdGVtczogZmFsc2U7XG4kcGFnaW5hdGlvbi1tb2JpbGUtY3VycmVudC1pdGVtOiBmYWxzZTtcbiRwYWdpbmF0aW9uLWFycm93czogdHJ1ZTtcblxuLy8gMjcuIFByb2dyZXNzIEJhclxuLy8gLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvZ3Jlc3MtaGVpZ2h0OiAxcmVtO1xuJHByb2dyZXNzLWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheTtcbiRwcm9ncmVzcy1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcbiRwcm9ncmVzcy1tZXRlci1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcbiRwcm9ncmVzcy1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXG4vLyAyOC4gUmVzcG9uc2l2ZSBFbWJlZFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHJlc3BvbnNpdmUtZW1iZWQtbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMTYpO1xuJHJlc3BvbnNpdmUtZW1iZWQtcmF0aW9zOiAoXG4gIGRlZmF1bHQ6IDQgYnkgMyxcbiAgd2lkZXNjcmVlbjogMTYgYnkgOSxcbik7XG5cbi8vIDI5LiBSZXZlYWxcbi8vIC0tLS0tLS0tLS1cblxuJHJldmVhbC1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kcmV2ZWFsLXdpZHRoOiA2MDBweDtcbiRyZXZlYWwtbWF4LXdpZHRoOiAkZ2xvYmFsLXdpZHRoO1xuJHJldmVhbC1wYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmc7XG4kcmV2ZWFsLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcbiRyZXZlYWwtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRyZXZlYWwtemluZGV4OiAxMDA1O1xuJHJldmVhbC1vdmVybGF5LWJhY2tncm91bmQ6IHJnYmEoJGJsYWNrLCAwLjQ1KTtcblxuLy8gMzAuIFNsaWRlclxuLy8gLS0tLS0tLS0tLVxuXG4kc2xpZGVyLXdpZHRoLXZlcnRpY2FsOiAwLjVyZW07XG4kc2xpZGVyLXRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4tb3V0O1xuJHNsaWRlci1oZWlnaHQ6IDAuNXJlbTtcbiRzbGlkZXItYmFja2dyb3VuZDogJGxpZ2h0LWdyYXk7XG4kc2xpZGVyLWZpbGwtYmFja2dyb3VuZDogJG1lZGl1bS1ncmF5O1xuJHNsaWRlci1oYW5kbGUtaGVpZ2h0OiAxLjRyZW07XG4kc2xpZGVyLWhhbmRsZS13aWR0aDogMS40cmVtO1xuJHNsaWRlci1oYW5kbGUtYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG4kc2xpZGVyLW9wYWNpdHktZGlzYWJsZWQ6IDAuMjU7XG4kc2xpZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG5cbi8vIDMxLiBTd2l0Y2hcbi8vIC0tLS0tLS0tLS1cblxuJHN3aXRjaC1iYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXk7XG4kc3dpdGNoLWJhY2tncm91bmQtYWN0aXZlOiAkcHJpbWFyeS1jb2xvcjtcbiRzd2l0Y2gtaGVpZ2h0OiAycmVtO1xuJHN3aXRjaC1oZWlnaHQtdGlueTogMS41cmVtO1xuJHN3aXRjaC1oZWlnaHQtc21hbGw6IDEuNzVyZW07XG4kc3dpdGNoLWhlaWdodC1sYXJnZTogMi41cmVtO1xuJHN3aXRjaC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJHN3aXRjaC1tYXJnaW46ICRnbG9iYWwtbWFyZ2luO1xuJHN3aXRjaC1wYWRkbGUtYmFja2dyb3VuZDogJHdoaXRlO1xuJHN3aXRjaC1wYWRkbGUtb2Zmc2V0OiAwLjI1cmVtO1xuJHN3aXRjaC1wYWRkbGUtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRzd2l0Y2gtcGFkZGxlLXRyYW5zaXRpb246IGFsbCAwLjI1cyBlYXNlLW91dDtcblxuLy8gMzIuIFRhYmxlXG4vLyAtLS0tLS0tLS1cblxuJHRhYmxlLWJhY2tncm91bmQ6ICR3aGl0ZTtcbiR0YWJsZS1jb2xvci1zY2FsZTogNSU7XG4kdGFibGUtYm9yZGVyOiAxcHggc29saWQgc21hcnQtc2NhbGUoJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSk7XG4kdGFibGUtcGFkZGluZzogcmVtLWNhbGMoOCAxMCAxMCk7XG4kdGFibGUtaG92ZXItc2NhbGU6IDIlO1xuJHRhYmxlLXJvdy1ob3ZlcjogZGFya2VuKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtaG92ZXItc2NhbGUpO1xuJHRhYmxlLXJvdy1zdHJpcGUtaG92ZXI6IGRhcmtlbigkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlICsgJHRhYmxlLWhvdmVyLXNjYWxlKTtcbiR0YWJsZS1pcy1zdHJpcGVkOiB0cnVlO1xuJHRhYmxlLXN0cmlwZWQtYmFja2dyb3VuZDogc21hcnQtc2NhbGUoJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSk7XG4kdGFibGUtc3RyaXBlOiBldmVuO1xuJHRhYmxlLWhlYWQtYmFja2dyb3VuZDogc21hcnQtc2NhbGUoJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSAvIDIpO1xuJHRhYmxlLWhlYWQtcm93LWhvdmVyOiBkYXJrZW4oJHRhYmxlLWhlYWQtYmFja2dyb3VuZCwgJHRhYmxlLWhvdmVyLXNjYWxlKTtcbiR0YWJsZS1mb290LWJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUpO1xuJHRhYmxlLWZvb3Qtcm93LWhvdmVyOiBkYXJrZW4oJHRhYmxlLWZvb3QtYmFja2dyb3VuZCwgJHRhYmxlLWhvdmVyLXNjYWxlKTtcbiR0YWJsZS1oZWFkLWZvbnQtY29sb3I6ICRib2R5LWZvbnQtY29sb3I7XG4kdGFibGUtZm9vdC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuJHNob3ctaGVhZGVyLWZvci1zdGFja2VkOiBmYWxzZTtcblxuLy8gMzMuIFRhYnNcbi8vIC0tLS0tLS0tXG5cbiR0YWItbWFyZ2luOiAwO1xuJHRhYi1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kdGFiLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiR0YWItYmFja2dyb3VuZC1hY3RpdmU6ICRsaWdodC1ncmF5O1xuJHRhYi1hY3RpdmUtY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuJHRhYi1pdGVtLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpO1xuJHRhYi1pdGVtLWJhY2tncm91bmQtaG92ZXI6ICR3aGl0ZTtcbiR0YWItaXRlbS1wYWRkaW5nOiAxLjI1cmVtIDEuNXJlbTtcbiR0YWItZXhwYW5kLW1heDogNjtcbiR0YWItY29udGVudC1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kdGFiLWNvbnRlbnQtYm9yZGVyOiAkbGlnaHQtZ3JheTtcbiR0YWItY29udGVudC1jb2xvcjogJGJvZHktZm9udC1jb2xvcjtcbiR0YWItY29udGVudC1wYWRkaW5nOiAxcmVtO1xuXG4vLyAzNC4gVGh1bWJuYWlsXG4vLyAtLS0tLS0tLS0tLS0tXG5cbiR0aHVtYm5haWwtYm9yZGVyOiBzb2xpZCA0cHggJHdoaXRlO1xuJHRodW1ibmFpbC1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcbiR0aHVtYm5haWwtc2hhZG93OiAwIDAgMCAxcHggcmdiYSgkYmxhY2ssIDAuMik7XG4kdGh1bWJuYWlsLXNoYWRvdy1ob3ZlcjogMCAwIDZweCAxcHggcmdiYSgkcHJpbWFyeS1jb2xvciwgMC41KTtcbiR0aHVtYm5haWwtdHJhbnNpdGlvbjogYm94LXNoYWRvdyAyMDBtcyBlYXNlLW91dDtcbiR0aHVtYm5haWwtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcblxuLy8gMzUuIFRpdGxlIEJhclxuLy8gLS0tLS0tLS0tLS0tLVxuXG4kdGl0bGViYXItYmFja2dyb3VuZDogJGJsYWNrO1xuJHRpdGxlYmFyLWNvbG9yOiAkd2hpdGU7XG4kdGl0bGViYXItcGFkZGluZzogMC41cmVtO1xuJHRpdGxlYmFyLXRleHQtZm9udC13ZWlnaHQ6IGJvbGQ7XG4kdGl0bGViYXItaWNvbi1jb2xvcjogJHdoaXRlO1xuJHRpdGxlYmFyLWljb24tY29sb3ItaG92ZXI6ICRtZWRpdW0tZ3JheTtcbiR0aXRsZWJhci1pY29uLXNwYWNpbmc6IDAuMjVyZW07XG5cbi8vIDM2LiBUb29sdGlwXG4vLyAtLS0tLS0tLS0tLVxuXG4kaGFzLXRpcC1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcbiRoYXMtdGlwLWJvcmRlci1ib3R0b206IGRvdHRlZCAxcHggJGRhcmstZ3JheTtcbiR0b29sdGlwLWJhY2tncm91bmQtY29sb3I6ICRibGFjaztcbiR0b29sdGlwLWNvbG9yOiAkd2hpdGU7XG4kdG9vbHRpcC1wYWRkaW5nOiAwLjc1cmVtO1xuJHRvb2x0aXAtZm9udC1zaXplOiAkc21hbGwtZm9udC1zaXplO1xuJHRvb2x0aXAtcGlwLXdpZHRoOiAwLjc1cmVtO1xuJHRvb2x0aXAtcGlwLWhlaWdodDogJHRvb2x0aXAtcGlwLXdpZHRoICogMC44NjY7XG4kdG9vbHRpcC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXG4vLyAzNy4gVG9wIEJhclxuLy8gLS0tLS0tLS0tLS1cblxuJHRvcGJhci1wYWRkaW5nOiAwLjVyZW07XG4kdG9wYmFyLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5O1xuJHRvcGJhci1zdWJtZW51LWJhY2tncm91bmQ6ICR0b3BiYXItYmFja2dyb3VuZDtcbiR0b3BiYXItdGl0bGUtc3BhY2luZzogMC41cmVtIDFyZW0gMC41cmVtIDA7XG4kdG9wYmFyLWlucHV0LXdpZHRoOiAyMDBweDtcbiR0b3BiYXItdW5zdGFjay1icmVha3BvaW50OiBtZWRpdW07XG5cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AaW1wb3J0ICdtYXRoJztcbkBpbXBvcnQgJ3VuaXQnO1xuQGltcG9ydCAndmFsdWUnO1xuQGltcG9ydCAnZGlyZWN0aW9uJztcbkBpbXBvcnQgJ2NvbG9yJztcbkBpbXBvcnQgJ3NlbGVjdG9yJztcbkBpbXBvcnQgJ2ZsZXgnO1xuQGltcG9ydCAnYnJlYWtwb2ludCc7XG5AaW1wb3J0ICdtaXhpbnMnO1xuQGltcG9ydCAndHlwb2dyYXBoeSc7XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmdW5jdGlvbnNcbi8vLy9cblxuLy8vIEZpbmRzIHRoZSBncmVhdGVzdCBjb21tb24gZGl2aXNvciBvZiB0d28gaW50ZWdlcnMuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJGEgLSBGaXJzdCBudW1iZXIgdG8gY29tcGFyZS5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGIgLSBTZWNvbmQgbnVtYmVyIHRvIGNvbXBhcmUuXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBUaGUgZ3JlYXRlc3QgY29tbW9uIGRpdmlzb3IuXG5AZnVuY3Rpb24gZ2NkKCRhLCAkYikge1xuICAvLyBGcm9tOiBodHRwOi8vcm9zZXR0YWNvZGUub3JnL3dpa2kvR3JlYXRlc3RfY29tbW9uX2Rpdmlzb3IjSmF2YVNjcmlwdFxuICBAaWYgKCRiICE9IDApIHtcbiAgICBAcmV0dXJuIGdjZCgkYiwgJGEgJSAkYik7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gYWJzKCRhKTtcbiAgfVxufVxuXG4vLy8gSGFuZGxlcyBkZWNpbWFsIGV4cG9uZW50cyBieSB0cnlpbmcgdG8gY29udmVydCB0aGVtIGludG8gYSBmcmFjdGlvbiBhbmQgdGhlbiB1c2UgYSBudGgtcm9vdC1hbGdvcml0aG0gZm9yIHBhcnRzIG9mIHRoZSBjYWxjdWxhdGlvblxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXNlIC0gVGhlIGJhc2UgbnVtYmVyLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZXhwb25lbnQgLSBUaGUgZXhwb25lbnQuXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBUaGUgcHJvZHVjdCBvZiB0aGUgZXhwb25lbnRpYXRpb24uXG5AZnVuY3Rpb24gcG93KCRiYXNlLCAkZXhwb25lbnQsICRwcmVjOiAxNikge1xuICBAaWYgKGZsb29yKCRleHBvbmVudCkgIT0gJGV4cG9uZW50KSB7XG4gICAgJHByZWMyIDogcG93KDEwLCAkcHJlYyk7XG4gICAgJGV4cG9uZW50OiByb3VuZCgkZXhwb25lbnQgKiAkcHJlYzIpO1xuICAgICRkZW5vbWluYXRvcjogZ2NkKCRleHBvbmVudCwgJHByZWMyKTtcbiAgICBAcmV0dXJuIG50aC1yb290KHBvdygkYmFzZSwgJGV4cG9uZW50IC8gJGRlbm9taW5hdG9yKSwgJHByZWMyIC8gJGRlbm9taW5hdG9yLCAkcHJlYyk7XG4gIH1cblxuICAkdmFsdWU6ICRiYXNlO1xuICBAaWYgJGV4cG9uZW50ID4gMSB7XG4gICAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCAkZXhwb25lbnQge1xuICAgICAgJHZhbHVlOiAkdmFsdWUgKiAkYmFzZTtcbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJGV4cG9uZW50IDwgMSB7XG4gICAgQGZvciAkaSBmcm9tIDAgdGhyb3VnaCAtJGV4cG9uZW50IHtcbiAgICAgICR2YWx1ZTogJHZhbHVlIC8gJGJhc2U7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkdmFsdWU7XG59XG5cbkBmdW5jdGlvbiBudGgtcm9vdCgkbnVtLCAkbjogMiwgJHByZWM6IDEyKSB7XG4gIC8vIEZyb206IGh0dHA6Ly9yb3NldHRhY29kZS5vcmcvd2lraS9OdGhfcm9vdCNKYXZhU2NyaXB0XG4gICR4OiAxO1xuXG4gIEBmb3IgJGkgZnJvbSAwIHRocm91Z2ggJHByZWMge1xuICAgICR4OiAxIC8gJG4gKiAoKCRuIC0gMSkgKiAkeCArICgkbnVtIC8gcG93KCR4LCAkbiAtIDEpKSk7XG4gIH1cblxuICBAcmV0dXJuICR4O1xufVxuXG4vLy8gQ2FsY3VsYXRlcyB0aGUgaGVpZ2h0IGFzIGEgcGVyY2VudGFnZSBvZiB0aGUgd2lkdGggZm9yIGEgZ2l2ZW4gcmF0aW8uXG4vLy8gQHBhcmFtIHtMaXN0fSAkcmF0aW8gLSBSYXRpbyB0byB1c2UgdG8gY2FsY3VsYXRlIHRoZSBoZWlnaHQsIGZvcm1hdHRlZCBhcyBgeCBieSB5YC5cbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IEEgcGVyY2VudGFnZSB2YWx1ZSBmb3IgdGhlIGhlaWdodCByZWxhdGl2ZSB0byB0aGUgd2lkdGggb2YgYSByZXNwb25zaXZlIGNvbnRhaW5lci5cbkBmdW5jdGlvbiByYXRpby10by1wZXJjZW50YWdlKCRyYXRpbykge1xuICAkdzogbnRoKCRyYXRpbywgMSk7XG4gICRoOiBudGgoJHJhdGlvLCAzKTtcbiAgQHJldHVybiAkaCAvICR3ICogMTAwJTtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZ1bmN0aW9uc1xuLy8vL1xuXG4kZ2xvYmFsLWZvbnQtc2l6ZTogMTAwJSAhZGVmYXVsdDtcblxuLy8vIFJlbW92ZXMgdGhlIHVuaXQgKGUuZy4gcHgsIGVtLCByZW0pIGZyb20gYSB2YWx1ZSwgcmV0dXJuaW5nIHRoZSBudW1iZXIgb25seS5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbnVtIC0gTnVtYmVyIHRvIHN0cmlwIHVuaXQgZnJvbS5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IFRoZSBzYW1lIG51bWJlciwgc2FucyB1bml0LlxuQGZ1bmN0aW9uIHN0cmlwLXVuaXQoJG51bSkge1xuICBAcmV0dXJuICRudW0gLyAoJG51bSAqIDAgKyAxKTtcbn1cblxuLy8vIENvbnZlcnRzIG9uZSBvciBtb3JlIHBpeGVsIHZhbHVlcyBpbnRvIG1hdGNoaW5nIHJlbSB2YWx1ZXMuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkdmFsdWVzIC0gT25lIG9yIG1vcmUgdmFsdWVzIHRvIGNvbnZlcnQuIEJlIHN1cmUgdG8gc2VwYXJhdGUgdGhlbSB3aXRoIHNwYWNlcyBhbmQgbm90IGNvbW1hcy4gSWYgeW91IG5lZWQgdG8gY29udmVydCBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0LCB3cmFwIHRoZSBsaXN0IGluIHBhcmVudGhlc2VzLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFzZSBbbnVsbF0gLSBUaGUgYmFzZSB2YWx1ZSB0byB1c2Ugd2hlbiBjYWxjdWxhdGluZyB0aGUgYHJlbWAuIElmIHlvdSdyZSB1c2luZyBGb3VuZGF0aW9uIG91dCBvZiB0aGUgYm94LCB0aGlzIGlzIDE2cHguIElmIHRoaXMgcGFyYW1ldGVyIGlzIGBudWxsYCwgdGhlIGZ1bmN0aW9uIHdpbGwgcmVmZXJlbmNlIHRoZSBgJGJhc2UtZm9udC1zaXplYCB2YXJpYWJsZSBhcyB0aGUgYmFzZS5cbi8vL1xuLy8vIEByZXR1cm5zIHtMaXN0fSBBIGxpc3Qgb2YgY29udmVydGVkIHZhbHVlcy5cbkBmdW5jdGlvbiByZW0tY2FsYygkdmFsdWVzLCAkYmFzZTogbnVsbCkge1xuICAkcmVtLXZhbHVlczogKCk7XG4gICRjb3VudDogbGVuZ3RoKCR2YWx1ZXMpO1xuXG4gIC8vIElmIG5vIGJhc2UgaXMgZGVmaW5lZCwgZGVmZXIgdG8gdGhlIGdsb2JhbCBmb250IHNpemVcbiAgQGlmICRiYXNlID09IG51bGwge1xuICAgICRiYXNlOiAkZ2xvYmFsLWZvbnQtc2l6ZTtcbiAgfVxuXG4gIC8vIElmIHRoZSBiYXNlIGZvbnQgc2l6ZSBpcyBhICUsIHRoZW4gbXVsdGlwbHkgaXQgYnkgMTZweFxuICAvLyBUaGlzIGlzIGJlY2F1c2UgMTAwJSBmb250IHNpemUgPSAxNnB4IGluIG1vc3QgYWxsIGJyb3dzZXJzXG4gIEBpZiB1bml0KCRiYXNlKSA9PSAnJScge1xuICAgICRiYXNlOiAoJGJhc2UgLyAxMDAlKSAqIDE2cHg7XG4gIH1cblxuICAvLyBVc2luZyByZW0gYXMgYmFzZSBhbGxvd3MgY29ycmVjdCBzY2FsaW5nXG4gIEBpZiB1bml0KCRiYXNlKSA9PSAncmVtJyB7XG4gICAgJGJhc2U6IHN0cmlwLXVuaXQoJGJhc2UpICogMTZweDtcbiAgfVxuXG4gIEBpZiAkY291bnQgPT0gMSB7XG4gICAgQHJldHVybiAtemYtdG8tcmVtKCR2YWx1ZXMsICRiYXNlKTtcbiAgfVxuXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGNvdW50IHtcbiAgICAkcmVtLXZhbHVlczogYXBwZW5kKCRyZW0tdmFsdWVzLCAtemYtdG8tcmVtKG50aCgkdmFsdWVzLCAkaSksICRiYXNlKSk7XG4gIH1cblxuICBAcmV0dXJuICRyZW0tdmFsdWVzO1xufVxuXG4vLyBDb252ZXJ0cyBhIHVuaXRsZXNzLCBwaXhlbCwgb3IgcmVtIHZhbHVlIHRvIGVtLCBmb3IgdXNlIGluIGJyZWFrcG9pbnRzLlxuQGZ1bmN0aW9uIC16Zi1icC10by1lbSgkdmFsdWUpIHtcbiAgLy8gUGl4ZWwgYW5kIHVuaXRsZXNzIHZhbHVlcyBhcmUgY29udmVydGVkIHRvIHJlbXNcbiAgQGlmIHVuaXQoJHZhbHVlKSA9PSAncHgnIG9yIHVuaXRsZXNzKCR2YWx1ZSkge1xuICAgICR2YWx1ZTogcmVtLWNhbGMoJHZhbHVlLCAkYmFzZTogMTZweCk7XG4gIH1cblxuICAvLyBUaGVuIHRoZSB2YWx1ZSBpcyBjb252ZXJ0ZWQgdG8gZW1zXG4gIEByZXR1cm4gc3RyaXAtdW5pdCgkdmFsdWUpICogMWVtO1xufVxuXG4vLy8gQ29udmVydHMgYSBwaXhlbCB2YWx1ZSB0byBtYXRjaGluZyByZW0gdmFsdWUuICpBbnkqIHZhbHVlIHBhc3NlZCwgcmVnYXJkbGVzcyBvZiB1bml0LCBpcyBhc3N1bWVkIHRvIGJlIGEgcGl4ZWwgdmFsdWUuIEJ5IGRlZmF1bHQsIHRoZSBiYXNlIHBpeGVsIHZhbHVlIHVzZWQgdG8gY2FsY3VsYXRlIHRoZSByZW0gdmFsdWUgaXMgdGFrZW4gZnJvbSB0aGUgYCRnbG9iYWwtZm9udC1zaXplYCB2YXJpYWJsZS5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdmFsdWUgLSBQaXhlbCB2YWx1ZSB0byBjb252ZXJ0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFzZSBbbnVsbF0gLSBCYXNlIGZvciBwaXhlbCBjb252ZXJzaW9uLlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gQSBudW1iZXIgaW4gcmVtcywgY2FsY3VsYXRlZCBiYXNlZCBvbiB0aGUgZ2l2ZW4gdmFsdWUgYW5kIHRoZSBiYXNlIHBpeGVsIHZhbHVlLiByZW0gdmFsdWVzIGFyZSBwYXNzZWQgdGhyb3VnaCBhcyBpcy5cbkBmdW5jdGlvbiAtemYtdG8tcmVtKCR2YWx1ZSwgJGJhc2U6IG51bGwpIHtcbiAgLy8gQ2hlY2sgaWYgdGhlIHZhbHVlIGlzIGEgbnVtYmVyXG4gIEBpZiB0eXBlLW9mKCR2YWx1ZSkgIT0gJ251bWJlcicge1xuICAgIEB3YXJuIGluc3BlY3QoJHZhbHVlKSArICcgd2FzIHBhc3NlZCB0byByZW0tY2FsYygpLCB3aGljaCBpcyBub3QgYSBudW1iZXIuJztcbiAgICBAcmV0dXJuICR2YWx1ZTtcbiAgfVxuXG4gIC8vIFRyYW5zZm9ybSBlbSBpbnRvIHJlbSBpZiBzb21lb25lIGhhbmRzIG92ZXIgJ2VtJ3NcbiAgQGlmIHVuaXQoJHZhbHVlKSA9PSAnZW0nIHtcbiAgICAkdmFsdWU6IHN0cmlwLXVuaXQoJHZhbHVlKSAqIDFyZW07XG4gIH1cblxuICAvLyBDYWxjdWxhdGUgcmVtIGlmIHVuaXRzIGZvciAkdmFsdWUgaXMgbm90IHJlbSBvciBlbVxuICBAaWYgdW5pdCgkdmFsdWUpICE9ICdyZW0nIHtcbiAgICAkdmFsdWU6IHN0cmlwLXVuaXQoJHZhbHVlKSAvIHN0cmlwLXVuaXQoJGJhc2UpICogMXJlbTtcbiAgfVxuXG4gIC8vIFR1cm4gMHJlbSBpbnRvIDBcbiAgQGlmICR2YWx1ZSA9PSAwcmVtIHtcbiAgICAkdmFsdWU6IDA7XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZTtcbn1cblxuLy8vIENvbnZlcnRzIGEgcGl4ZWwsIHBlcmNlbnRhZ2UsIHJlbSBvciBlbSB2YWx1ZSB0byBhIHVuaXRsZXNzIHZhbHVlIGJhc2VkIG9uIGEgZ2l2ZW4gZm9udCBzaXplLiBJZGVhbCBmb3Igd29ya2luZyBvdXQgdW5pdGxlc3MgbGluZSBoZWlnaHRzLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR2YWx1ZSAtIFZhbHVlIHRvIGNvbnZlcnQgdG8gYSB1bml0bGVzcyBsaW5lIGhlaWdodFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFzZSAtIFRoZSBmb250IHNpemUgdG8gdXNlIHRvIHdvcmsgb3V0IHRoZSBsaW5lIGhlaWdodCAtIGRlZmF1bHRzIHRvICRnbG9iYWwtZm9udC1zaXplXG4vLy9cbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IC0gVW5pdGxlc3MgbnVtYmVyXG5AZnVuY3Rpb24gdW5pdGxlc3MtY2FsYygkdmFsdWUsICRiYXNlOiBudWxsKSB7XG5cbiAgLy8gSWYgbm8gYmFzZSBpcyBkZWZpbmVkLCBkZWZlciB0byB0aGUgZ2xvYmFsIGZvbnQgc2l6ZVxuICBAaWYgJGJhc2UgPT0gbnVsbCB7XG4gICAgJGJhc2U6ICRnbG9iYWwtZm9udC1zaXplO1xuICB9XG5cbiAgLy8gRmlyc3QsIGxldHMgY29udmVydCBvdXIgJGJhc2UgdG8gcGl4ZWxzXG5cbiAgLy8gSWYgdGhlIGJhc2UgZm9udCBzaXplIGlzIGEgJSwgdGhlbiBtdWx0aXBseSBpdCBieSAxNnB4XG4gIEBpZiB1bml0KCRiYXNlKSA9PSAnJScge1xuICAgICRiYXNlOiAoJGJhc2UgLyAxMDAlKSAqIDE2cHg7XG4gIH1cblxuICBAaWYgdW5pdCgkYmFzZSkgPT0gJ3JlbScge1xuICAgICRiYXNlOiBzdHJpcC11bml0KCRiYXNlKSAqIDE2cHg7XG4gIH1cblxuICBAaWYgdW5pdCgkYmFzZSkgPT0gJ2VtJyB7XG4gICAgJGJhc2U6IHN0cmlwLXVuaXQoJGJhc2UpICogMTZweDtcbiAgfVxuXG4gIC8vIE5vdyBsZXRzIGNvbnZlcnQgb3VyIHZhbHVlIHRvIHBpeGVscyB0b29cbiAgQGlmIHVuaXQoJHZhbHVlKSA9PSAnJScge1xuICAgICR2YWx1ZTogKCR2YWx1ZSAvIDEwMCUpICogJGJhc2U7XG4gIH1cblxuICBAaWYgdW5pdCgkdmFsdWUpID09ICdyZW0nIHtcbiAgICAkdmFsdWU6IHN0cmlwLXVuaXQoJHZhbHVlKSAqICRiYXNlO1xuICB9XG5cbiAgQGlmIHVuaXQoJHZhbHVlKSA9PSAnZW0nIHtcbiAgICAkdmFsdWU6IHN0cmlwLXVuaXQoJHZhbHVlKSAqICRiYXNlO1xuICB9XG5cbiAgLy8gJ3B4J1xuICBAaWYgdW5pdCgkdmFsdWUpID09ICdweCcge1xuICAgIEByZXR1cm4gc3RyaXAtdW5pdCgkdmFsdWUpIC8gc3RyaXAtdW5pdCgkYmFzZSk7XG4gIH1cblxuICAvLyBhc3N1bWUgdGhhdCBsaW5lLWhlaWdodHMgZ3JlYXRlcm4gdGhlbiAxMCBhcmUgbWVhbnQgdG8gYmUgYWJzb2x1dGUgaW4gJ3B4J1xuICBAaWYgdW5pdGxlc3MoJHZhbHVlKSBhbmQgKCR2YWx1ZSA+IDEwKSB7XG4gICAgQHJldHVybiAkdmFsdWUgLyBzdHJpcC11bml0KCRiYXNlKTtcbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZnVuY3Rpb25zXG4vLy8vXG5cbi8vLyBEZXRlcm1pbmUgaWYgYSB2YWx1ZSBpcyBub3QgZmFsc2V5LCBpbiBDU1MgdGVybXMuIEZhbHNleSB2YWx1ZXMgYXJlIGBudWxsYCwgYG5vbmVgLCBgMGAgd2l0aCBhbnkgdW5pdCwgb3IgYW4gZW1wdHkgbGlzdC5cbi8vL1xuLy8vIEBwYXJhbSB7TWl4ZWR9ICR2YWwgLSBWYWx1ZSB0byBjaGVjay5cbi8vL1xuLy8vIEByZXR1cm5zIHtCb29sZWFufSBgdHJ1ZWAgaWYgYCR2YWxgIGlzIG5vdCBmYWxzZXkuXG5AZnVuY3Rpb24gaGFzLXZhbHVlKCR2YWwpIHtcbiAgQGlmICR2YWwgPT0gbnVsbCBvciAkdmFsID09IG5vbmUge1xuICAgIEByZXR1cm4gZmFsc2U7XG4gIH1cbiAgQGlmIHR5cGUtb2YoJHZhbCkgPT0gJ251bWJlcicgYW5kIHN0cmlwLXVuaXQoJHZhbCkgPT0gMCB7XG4gICAgQHJldHVybiBmYWxzZTtcbiAgfVxuICBAaWYgdHlwZS1vZigkdmFsKSA9PSAnbGlzdCcgYW5kIGxlbmd0aCgkdmFsKSA9PSAwIHtcbiAgICBAcmV0dXJuIGZhbHNlO1xuICB9XG4gIEByZXR1cm4gdHJ1ZTtcbn1cblxuLy8vIERldGVybWluZSBhIHRvcC9yaWdodC9ib3R0b20vcmlnaHQgdmFsdWUgb24gYSBwYWRkaW5nLCBtYXJnaW4sIGV0Yy4gcHJvcGVydHksIG5vIG1hdHRlciBob3cgbWFueSB2YWx1ZXMgd2VyZSBwYXNzZWQgaW4uIFVzZSB0aGlzIGZ1bmN0aW9uIGlmIHlvdSBuZWVkIHRvIGtub3cgdGhlIHNwZWNpZmljIHNpZGUgb2YgYSB2YWx1ZSwgYnV0IGRvbid0IGtub3cgaWYgdGhlIHZhbHVlIGlzIHVzaW5nIGEgc2hvcnRoYW5kIGZvcm1hdC5cbi8vL1xuLy8vIEBwYXJhbSB7TGlzdHxOdW1iZXJ9ICR2YWwgLSBWYWx1ZSB0byBhbmFseXplLiBTaG91bGQgYmUgYSBzaG9ydGhhbmQgc2l6aW5nIHByb3BlcnR5LCBlLmcuIFwiMWVtIDJlbSAxZW1cIlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpZGUgLSBTaWRlIHRvIHJldHVybi4gU2hvdWxkIGJlIGB0b3BgLCBgcmlnaHRgLCBgYm90dG9tYCwgb3IgYGxlZnRgLlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gQSBzaW5nbGUgdmFsdWUgYmFzZWQgb24gYCR2YWxgIGFuZCBgJHNpZGVgLlxuQGZ1bmN0aW9uIGdldC1zaWRlKCR2YWwsICRzaWRlKSB7XG4gICRsZW5ndGg6IGxlbmd0aCgkdmFsKTtcblxuICBAaWYgJGxlbmd0aCA9PSAxIHtcbiAgICBAcmV0dXJuICR2YWw7XG4gIH1cbiAgQGlmICRsZW5ndGggPT0gMiB7XG4gICAgQHJldHVybiBtYXAtZ2V0KChcbiAgICAgIHRvcDogbnRoKCR2YWwsIDEpLFxuICAgICAgYm90dG9tOiBudGgoJHZhbCwgMSksXG4gICAgICBsZWZ0OiBudGgoJHZhbCwgMiksXG4gICAgICByaWdodDogbnRoKCR2YWwsIDIpLFxuICAgICksICRzaWRlKTtcbiAgfVxuICBAaWYgJGxlbmd0aCA9PSAzIHtcbiAgICBAcmV0dXJuIG1hcC1nZXQoKFxuICAgICAgdG9wOiBudGgoJHZhbCwgMSksXG4gICAgICBsZWZ0OiBudGgoJHZhbCwgMiksXG4gICAgICByaWdodDogbnRoKCR2YWwsIDIpLFxuICAgICAgYm90dG9tOiBudGgoJHZhbCwgMyksXG4gICAgKSwgJHNpZGUpO1xuICB9XG4gIEBpZiAkbGVuZ3RoID09IDQge1xuICAgIEByZXR1cm4gbWFwLWdldCgoXG4gICAgICB0b3A6IG50aCgkdmFsLCAxKSxcbiAgICAgIHJpZ2h0OiBudGgoJHZhbCwgMiksXG4gICAgICBib3R0b206IG50aCgkdmFsLCAzKSxcbiAgICAgIGxlZnQ6IG50aCgkdmFsLCA0KSxcbiAgICApLCAkc2lkZSk7XG4gIH1cbn1cblxuLy8vIEdpdmVuIGJvcmRlciAkdmFsLCBmaW5kIGEgc3BlY2lmaWMgZWxlbWVudCBvZiB0aGUgYm9yZGVyLCB3aGljaCBpcyAkZWxlbS4gVGhlIHBvc3NpYmxlIHZhbHVlcyBmb3IgJGVsZW0gYXJlIHdpZHRoLCBzdHlsZSwgYW5kIGNvbG9yLlxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkdmFsIC0gQm9yZGVyIHZhbHVlIHRvIGZpbmQgYSB2YWx1ZSBpbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRlbGVtIC0gQm9yZGVyIGNvbXBvbmVudCB0byBleHRyYWN0LlxuLy8vXG4vLy8gQHJldHVybnMge01peGVkfSBJZiB0aGUgdmFsdWUgZXhpc3RzLCByZXR1cm5zIHRoZSB2YWx1ZS4gSWYgdGhlIHZhbHVlIGlzIG5vdCBpbiB0aGUgYm9yZGVyIGRlZmluaXRpb24sIHRoZSBmdW5jdGlvbiB3aWxsIHJldHVybiBhIDBweCB3aWR0aCwgc29saWQgc3R5bGUsIG9yIGJsYWNrIGJvcmRlci5cbkBmdW5jdGlvbiBnZXQtYm9yZGVyLXZhbHVlKCR2YWwsICRlbGVtKSB7XG4gIC8vIEZpbmQgdGhlIHdpZHRoLCBzdHlsZSwgb3IgY29sb3IgYW5kIHJldHVybiBpdFxuICBAZWFjaCAkdiBpbiAkdmFsIHtcbiAgICAkdHlwZTogdHlwZS1vZigkdik7XG4gICAgQGlmICRlbGVtID09IHdpZHRoIGFuZCAkdHlwZSA9PSAnbnVtYmVyJyB7XG4gICAgICBAcmV0dXJuICR2O1xuICAgIH1cbiAgICBAaWYgJGVsZW0gPT0gc3R5bGUgYW5kICR0eXBlID09ICdzdHJpbmcnIHtcbiAgICAgIEByZXR1cm4gJHY7XG4gICAgfVxuICAgIEBpZiAkZWxlbSA9PSBjb2xvciBhbmQgJHR5cGUgPT0gJ2NvbG9yJyB7XG4gICAgICBAcmV0dXJuICR2O1xuICAgIH1cbiAgfVxuXG4gIC8vIERlZmF1bHRzXG4gICRkZWZhdWx0czogKFxuICAgIHdpZHRoOiAwLFxuICAgIHN0eWxlOiBzb2xpZCxcbiAgICBjb2xvcjogIzAwMCxcbiAgKTtcblxuICBAcmV0dXJuIG1hcC1nZXQoJGRlZmF1bHRzLCAkZWxlbSk7XG59XG5cbi8vLyBGaW5kcyBhIHZhbHVlIGluIGEgbmVzdGVkIG1hcC5cbi8vLyBAbGluayBodHRwczovL2Nzcy10cmlja3MuY29tL3NuaXBwZXRzL3Nhc3MvZGVlcC1nZXRzZXQtbWFwcy8gRGVlcCBHZXQvU2V0IGluIE1hcHNcbi8vL1xuLy8vIEBwYXJhbSB7TWFwfSAkbWFwIC0gTWFwIHRvIHB1bGwgYSB2YWx1ZSBmcm9tLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAka2V5cy4uLiAtIEtleXMgdG8gdXNlIHdoZW4gbG9va2luZyBmb3IgYSB2YWx1ZS5cbi8vLyBAcmV0dXJucyB7TWl4ZWR9IFRoZSB2YWx1ZSBmb3VuZCBpbiB0aGUgbWFwLlxuQGZ1bmN0aW9uIG1hcC1kZWVwLWdldCgkbWFwLCAka2V5cy4uLikge1xuICBAZWFjaCAka2V5IGluICRrZXlzIHtcbiAgICAkbWFwOiBtYXAtZ2V0KCRtYXAsICRrZXkpO1xuICB9XG4gIEByZXR1cm4gJG1hcDtcbn1cblxuLy8vIENhc3RzIGEgbWFwIGludG8gYSBsaXN0LlxuLy8vIEBsaW5rIGh0dHA6Ly9odWdvZ2lyYXVkZWwuY29tLzIwMTQvMDQvMjgvY2FzdGluZy1tYXAtaW50by1saXN0L1xuLy8vXG4vLy8gQHBhcmFtIHtNYXB9ICRtYXAgLSBNYXAgdG8gcHVsbCBhIHZhbHVlIGZyb20uXG4vLy9cbi8vLyBAcmV0dXJucyB7TGlzdH0gRGVwZW5kaW5nIG9uIHRoZSBmbGFnLCByZXR1cm5zIGVpdGhlciAka2V5cyBvciAkdmFsdWVzIG9yIGJvdGguXG5AZnVuY3Rpb24gbWFwLXRvLWxpc3QoJG1hcCwgJGtlZXA6ICdib3RoJykge1xuICAka2VlcDogaWYoaW5kZXgoJ2tleXMnICd2YWx1ZXMnLCAka2VlcCksICRrZWVwLCAnYm90aCcpO1xuXG4gIEBpZiB0eXBlLW9mKCRtYXApID09ICdtYXAnIHtcbiAgICAka2V5czogKCk7XG4gICAgJHZhbHVlczogKCk7XG5cbiAgICBAZWFjaCAka2V5LCAkdmFsIGluICRtYXAge1xuICAgICAgJGtleXM6IGFwcGVuZCgka2V5cywgJGtleSk7XG4gICAgICAkdmFsdWVzOiBhcHBlbmQoJHZhbHVlcywgJHZhbCk7XG4gICAgfVxuXG4gICAgQGlmICRrZWVwID09ICdrZXlzJyB7XG4gICAgICBAcmV0dXJuICRrZXlzO1xuICAgIH1cbiAgICBAZWxzZSBpZiAka2VlcCA9PSAndmFsdWVzJyB7XG4gICAgICBAcmV0dXJuICR2YWx1ZXM7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEByZXR1cm4gemlwKCRrZXlzLCAkdmFsdWVzKTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuIGlmKHR5cGUtb2YoJG1hcCkgIT0gJ2xpc3QnLCAoJHZhbHVlLCksICRtYXApO1xuXG59XG5cbi8vLyBTYWZlbHkgcmV0dXJuIGEgdmFsdWUgZnJvbSBhIG1hcC5cbi8vL1xuLy8vIEBwYXJhbSB7TWFwfSAkbWFwIC0gTWFwIHRvIHJldHJpZXZlIGEgdmFsdWUgZnJvbS5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGtleSAtIE5hbWUgb2YgdGhlIG1hcCBrZXkuXG4vLy9cbi8vLyBAcmV0dXJucyB7TGlzdH0gRm91bmQgdmFsdWUuXG5AZnVuY3Rpb24gbWFwLXNhZmUtZ2V0KCRtYXAsICRrZXkpIHtcbiAgQGlmICh0eXBlLW9mKCRtYXApID09ICdtYXAnIG9yICh0eXBlLW9mKCRtYXApID09ICdsaXN0JyBhbmQgbGVuZ3RoKCRtYXApID09IDApKSB7XG4gICAgQGlmIChtYXAtaGFzLWtleSgkbWFwLCAka2V5KSkge1xuICAgICAgQHJldHVybiBtYXAtZ2V0KCRtYXAsICRrZXkpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAZXJyb3IgJ0tleTogYCN7JGtleX1gIGlzIG5vdCBhdmFpbGFibGUgaW4gYCN7JG1hcH1gJztcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBlcnJvciAnYCN7JG1hcH1gIGlzIG5vdCBhIHZhbGlkIG1hcCc7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZ1bmN0aW9uc1xuLy8vL1xuXG4vLy8gUmV0dXJucyB0aGUgb3Bwb3NpdGUgZGlyZWN0aW9uIG9mICRkaXJcbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGRpciAtIFVzZWQgZGlyZWN0aW9uIGJldHdlZW4gXCJ0b3BcIiwgXCJyaWdodFwiLCBcImJvdHRvbVwiIGFuZCBcImxlZnRcIi5cbi8vLyBAcmV0dXJuIHtLZXl3b3JkfSBPcHBvc2l0ZSBkaXJlY3Rpb24gb2YgJGRpclxuQGZ1bmN0aW9uIGRpcmVjdGlvbi1vcHBvc2l0ZShcbiAgJGRpclxuKSB7XG4gICRkaXJzOiAodG9wLCByaWdodCwgYm90dG9tLCBsZWZ0KTtcbiAgJHBsYWNlOiBpbmRleCgkZGlycywgJGRpcik7XG5cbiAgQGlmICRwbGFjZSA9PSBudWxsIHtcbiAgICBAZXJyb3IgJ2RpcmVjdGlvbi1vcHBvc2l0ZTogSW52YWxpZCAkZGlyIHBhcmFtZXRlciwgZXhwZWN0ZWQgYSB2YWx1ZSBmcm9tIFwiI3skZGlyc31cIiwgZm91bmQgXCIjeyRkaXJ9XCIuJztcbiAgICBAcmV0dXJuIG51bGw7XG4gIH1cblxuICAvLyBDYWxjdWwgdGhlIG9wcG9zaXRlIHBsYWNlIGluIGEgY2lyY2xlLCB3aXRoIGEgc3RhcnRpbmcgaW5kZXggb2YgMVxuICAkbGVuZ3RoOiBsZW5ndGgoJGRpcnMpO1xuICAkZGVtaTogJGxlbmd0aCAvIDI7XG4gICRvcHBvc2l0ZS1wbGFjZTogKCgkcGxhY2UgKyAkZGVtaSAtIDEpICUgJGxlbmd0aCkgKyAxO1xuXG4gIEByZXR1cm4gbnRoKCRkaXJzLCAkb3Bwb3NpdGUtcGxhY2UpO1xufVxuXG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQGltcG9ydCAnbWF0aCc7XG5cbiRjb250cmFzdC13YXJuaW5nczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vL1xuLy8vIEBncm91cCBmdW5jdGlvbnNcbi8vLy9cblxuLy8vIENoZWNrcyB0aGUgbHVtaW5hbmNlIG9mIGAkY29sb3JgLlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIC0gQ29sb3IgdG8gY2hlY2sgdGhlIGx1bWluYW5jZSBvZi5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IFRoZSBsdW1pbmFuY2Ugb2YgYCRjb2xvcmAuXG5AZnVuY3Rpb24gY29sb3ItbHVtaW5hbmNlKCRjb2xvcikge1xuICAvLyBBZGFwdGVkIGZyb206IGh0dHBzOi8vZ2l0aHViLmNvbS9MZWFWZXJvdS9jb250cmFzdC1yYXRpby9ibG9iL2doLXBhZ2VzL2NvbG9yLmpzXG4gIC8vIEZvcm11bGE6IGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDgvUkVDLVdDQUcyMC0yMDA4MTIxMS8jcmVsYXRpdmVsdW1pbmFuY2VkZWZcbiAgJHJnYmE6IHJlZCgkY29sb3IpLCBncmVlbigkY29sb3IpLCBibHVlKCRjb2xvcik7XG4gICRyZ2JhMjogKCk7XG5cbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAzIHtcbiAgICAkcmdiOiBudGgoJHJnYmEsICRpKTtcbiAgICAkcmdiOiAkcmdiIC8gMjU1O1xuXG4gICAgJHJnYjogaWYoJHJnYiA8IDAuMDM5MjgsICRyZ2IgLyAxMi45MiwgcG93KCgkcmdiICsgMC4wNTUpIC8gMS4wNTUsIDIuNCkpO1xuXG4gICAgJHJnYmEyOiBhcHBlbmQoJHJnYmEyLCAkcmdiKTtcbiAgfVxuXG4gIEByZXR1cm4gMC4yMTI2ICogbnRoKCRyZ2JhMiwgMSkgKyAwLjcxNTIgKiBudGgoJHJnYmEyLCAyKSArIDAuMDcyMiAqIG50aCgkcmdiYTIsIDMpO1xufVxuXG4vLy8gQ2hlY2tzIHRoZSBjb250cmFzdCByYXRpbyBvZiB0d28gY29sb3JzLlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yMSAtIEZpcnN0IGNvbG9yIHRvIGNvbXBhcmUuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yMiAtIFNlY29uZCBjb2xvciB0byBjb21wYXJlLlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gVGhlIGNvbnRyYXN0IHJhdGlvIG9mIHRoZSBjb21wYXJlZCBjb2xvcnMuXG5AZnVuY3Rpb24gY29sb3ItY29udHJhc3QoJGNvbG9yMSwgJGNvbG9yMikge1xuICAvLyBBZGFwdGVkIGZyb206IGh0dHBzOi8vZ2l0aHViLmNvbS9MZWFWZXJvdS9jb250cmFzdC1yYXRpby9ibG9iL2doLXBhZ2VzL2NvbG9yLmpzXG4gIC8vIEZvcm11bGE6IGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDgvUkVDLVdDQUcyMC0yMDA4MTIxMS8jY29udHJhc3QtcmF0aW9kZWZcbiAgJGx1bWluYW5jZTE6IGNvbG9yLWx1bWluYW5jZSgkY29sb3IxKSArIDAuMDU7XG4gICRsdW1pbmFuY2UyOiBjb2xvci1sdW1pbmFuY2UoJGNvbG9yMikgKyAwLjA1O1xuICAkcmF0aW86ICRsdW1pbmFuY2UxIC8gJGx1bWluYW5jZTI7XG5cbiAgQGlmICRsdW1pbmFuY2UyID4gJGx1bWluYW5jZTEge1xuICAgICRyYXRpbzogMSAvICRyYXRpbztcbiAgfVxuXG4gICRyYXRpbzogcm91bmQoJHJhdGlvICogMTApIC8gMTA7XG5cbiAgQHJldHVybiAkcmF0aW87XG59XG5cbi8vLyBDaGVja3MgdGhlIGx1bWluYW5jZSBvZiBgJGJhc2VgLCBhbmQgcmV0dXJucyB0aGUgY29sb3IgZnJvbSBgJGNvbG9yc2AgKGxpc3Qgb2YgY29sb3JzKSB0aGF0IGhhcyB0aGUgbW9zdCBjb250cmFzdC5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYXNlIC0gQ29sb3IgdG8gY2hlY2sgbHVtaW5hbmNlLlxuLy8vIEBwYXJhbSB7TGlzdH0gJGNvbG9ycyBbKCR3aGl0ZSwgJGJsYWNrKV0gLSBDb2xvcnMgdG8gY29tcGFyZS5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHRvbGVyYW5jZSBbJGdsb2JhbC1jb2xvci1waWNrLWNvbnRyYXN0LXRvbGVyYW5jZV0gLSBDb250cmFzdCB0b2xlcmFuY2UuXG4vLy9cbi8vLyBAcmV0dXJucyB7Q29sb3J9IHRoZSBjb2xvciBmcm9tIGAkY29sb3JzYCAobGlzdCBvZiBjb2xvcnMpIHRoYXQgaGFzIHRoZSBtb3N0IGNvbnRyYXN0LlxuQGZ1bmN0aW9uIGNvbG9yLXBpY2stY29udHJhc3QoJGJhc2UsICRjb2xvcnM6ICgkd2hpdGUsICRibGFjayksICR0b2xlcmFuY2U6ICRnbG9iYWwtY29sb3ItcGljay1jb250cmFzdC10b2xlcmFuY2UpIHtcbiAgJGNvbnRyYXN0OiBjb2xvci1jb250cmFzdCgkYmFzZSwgbnRoKCRjb2xvcnMsIDEpKTtcbiAgJGJlc3Q6IG50aCgkY29sb3JzLCAxKTtcblxuICBAZm9yICRpIGZyb20gMiB0aHJvdWdoIGxlbmd0aCgkY29sb3JzKSB7XG4gICAgJGN1cnJlbnQtY29udHJhc3Q6IGNvbG9yLWNvbnRyYXN0KCRiYXNlLCBudGgoJGNvbG9ycywgJGkpKTtcbiAgICBAaWYgKCRjdXJyZW50LWNvbnRyYXN0IC0gJGNvbnRyYXN0ID4gJHRvbGVyYW5jZSkge1xuICAgICAgJGNvbnRyYXN0OiBjb2xvci1jb250cmFzdCgkYmFzZSwgbnRoKCRjb2xvcnMsICRpKSk7XG4gICAgICAkYmVzdDogbnRoKCRjb2xvcnMsICRpKTtcbiAgICB9XG4gIH1cblxuICBAaWYgKCRjb250cmFzdC13YXJuaW5ncyBhbmQgJGNvbnRyYXN0IDwgMykge1xuICAgIEB3YXJuIFwiQ29udHJhc3QgcmF0aW8gb2YgI3skYmVzdH0gb24gI3skYmFzZX0gaXMgcHJldHR5IGJhZCwganVzdCAjeyRjb250cmFzdH1cIjtcbiAgfVxuXG4gIEByZXR1cm4gJGJlc3Q7XG59XG5cbi8vLyBTY2FsZXMgYSBjb2xvciB0byBiZSBkYXJrZXIgaWYgaXQncyBsaWdodCwgb3IgbGlnaHRlciBpZiBpdCdzIGRhcmsuIFVzZSB0aGlzIGZ1bmN0aW9uIHRvIHRpbnQgYSBjb2xvciBhcHByb3ByaWF0ZSB0byBpdHMgbGlnaHRuZXNzLlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIC0gQ29sb3IgdG8gc2NhbGUuXG4vLy8gQHBhcmFtIHtQZXJjZW50YWdlfSAkc2NhbGUgWzUlXSAtIEFtb3VudCB0byBzY2FsZSB1cCBvciBkb3duLlxuLy8vIEBwYXJhbSB7UGVyY2VudGFnZX0gJHRocmVzaG9sZCBbNDAlXSAtIFRocmVzaG9sZCBvZiBsaWdodG5lc3MgdG8gY2hlY2sgYWdhaW5zdC5cbi8vL1xuLy8vIEByZXR1cm5zIHtDb2xvcn0gQSBzY2FsZWQgY29sb3IuXG5AZnVuY3Rpb24gc21hcnQtc2NhbGUoJGNvbG9yLCAkc2NhbGU6IDUlLCAkdGhyZXNob2xkOiA0MCUpIHtcbiAgQGlmIGxpZ2h0bmVzcygkY29sb3IpID4gJHRocmVzaG9sZCB7XG4gICAgJHNjYWxlOiAtJHNjYWxlO1xuICB9XG4gIEByZXR1cm4gc2NhbGUtY29sb3IoJGNvbG9yLCAkbGlnaHRuZXNzOiAkc2NhbGUpO1xufVxuXG4vLy8gR2V0IGNvbG9yIGZyb20gZm91bmRhdGlvbi1wYWxldHRlXG4vLy9cbi8vLyBAcGFyYW0ge2tleX0gY29sb3Iga2V5IGZyb20gZm91bmRhdGlvbi1wYWxldHRlXG4vLy9cbi8vLyBAcmV0dXJucyB7Q29sb3J9IGNvbG9yIGZyb20gZm91bmRhdGlvbi1wYWxldHRlXG5AZnVuY3Rpb24gZ2V0LWNvbG9yKCRrZXkpIHtcbiAgQGlmIG1hcC1oYXMta2V5KCRmb3VuZGF0aW9uLXBhbGV0dGUsICRrZXkpIHtcbiAgICBAcmV0dXJuIG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgJGtleSk7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBlcnJvciAnZ2l2ZW4gJGtleSBpcyBub3QgYXZhaWxhYmxlIGluICRmb3VuZGF0aW9uLXBhbGV0dGUnO1xuICB9XG59XG5cbi8vLyBUcmFuc2ZlcnMgdGhlIGNvbG9ycyBpbiB0aGUgYCRmb3VuZGF0aW9uLXBhbGV0dGVgbWFwIGludG8gdmFyaWFibGVzLCBzdWNoIGFzIGAkcHJpbWFyeS1jb2xvcmAgYW5kIGAkc2Vjb25kYXJ5LWNvbG9yYC4gQ2FsbCB0aGlzIG1peGluIGJlbG93IHRoZSBHbG9iYWwgc2VjdGlvbiBvZiB5b3VyIHNldHRpbmdzIGZpbGUgdG8gcHJvcGVybHkgbWlncmF0ZSB5b3VyIGNvZGViYXNlLlxuQG1peGluIGFkZC1mb3VuZGF0aW9uLWNvbG9ycygpIHtcbiAgQGlmIG1hcC1oYXMta2V5KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHByaW1hcnkpIHtcbiAgICAkcHJpbWFyeS1jb2xvcjogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBwcmltYXJ5KSAhZ2xvYmFsO1xuICB9XG4gIEBpZiBtYXAtaGFzLWtleSgkZm91bmRhdGlvbi1wYWxldHRlLCBzZWNvbmRhcnkpIHtcbiAgICAkc2Vjb25kYXJ5LWNvbG9yOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHNlY29uZGFyeSkgIWdsb2JhbDtcbiAgfVxuICBAaWYgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgc3VjY2Vzcykge1xuICAgICRzdWNjZXNzLWNvbG9yOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHN1Y2Nlc3MpICFnbG9iYWw7XG4gIH1cbiAgQGlmIG1hcC1oYXMta2V5KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHdhcm5pbmcpIHtcbiAgICAkd2FybmluZy1jb2xvcjogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCB3YXJuaW5nKSAhZ2xvYmFsO1xuICB9XG4gIEBpZiBtYXAtaGFzLWtleSgkZm91bmRhdGlvbi1wYWxldHRlLCBhbGVydCkge1xuICAgICRhbGVydC1jb2xvcjogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBhbGVydCkgIWdsb2JhbDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZnVuY3Rpb25zXG4vLy8vXG5cbi8vLyBGaW5kcyB0aGUgZ3JlYXRlc3QgY29tbW9uIGRpdmlzb3Igb2YgdHdvIGludGVnZXJzLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRhIC0gRmlyc3QgbnVtYmVyIHRvIGNvbXBhcmUuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiIC0gU2Vjb25kIG51bWJlciB0byBjb21wYXJlLlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gVGhlIGdyZWF0ZXN0IGNvbW1vbiBkaXZpc29yLlxuQGZ1bmN0aW9uIGdjZCgkYSwgJGIpIHtcbiAgLy8gRnJvbTogaHR0cDovL3Jvc2V0dGFjb2RlLm9yZy93aWtpL0dyZWF0ZXN0X2NvbW1vbl9kaXZpc29yI0phdmFTY3JpcHRcbiAgQGlmICgkYiAhPSAwKSB7XG4gICAgQHJldHVybiBnY2QoJGIsICRhICUgJGIpO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIGFicygkYSk7XG4gIH1cbn1cblxuLy8vIEhhbmRsZXMgZGVjaW1hbCBleHBvbmVudHMgYnkgdHJ5aW5nIHRvIGNvbnZlcnQgdGhlbSBpbnRvIGEgZnJhY3Rpb24gYW5kIHRoZW4gdXNlIGEgbnRoLXJvb3QtYWxnb3JpdGhtIGZvciBwYXJ0cyBvZiB0aGUgY2FsY3VsYXRpb25cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFzZSAtIFRoZSBiYXNlIG51bWJlci5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGV4cG9uZW50IC0gVGhlIGV4cG9uZW50LlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gVGhlIHByb2R1Y3Qgb2YgdGhlIGV4cG9uZW50aWF0aW9uLlxuQGZ1bmN0aW9uIHBvdygkYmFzZSwgJGV4cG9uZW50LCAkcHJlYzogMTYpIHtcbiAgQGlmIChmbG9vcigkZXhwb25lbnQpICE9ICRleHBvbmVudCkge1xuICAgICRwcmVjMiA6IHBvdygxMCwgJHByZWMpO1xuICAgICRleHBvbmVudDogcm91bmQoJGV4cG9uZW50ICogJHByZWMyKTtcbiAgICAkZGVub21pbmF0b3I6IGdjZCgkZXhwb25lbnQsICRwcmVjMik7XG4gICAgQHJldHVybiBudGgtcm9vdChwb3coJGJhc2UsICRleHBvbmVudCAvICRkZW5vbWluYXRvciksICRwcmVjMiAvICRkZW5vbWluYXRvciwgJHByZWMpO1xuICB9XG5cbiAgJHZhbHVlOiAkYmFzZTtcbiAgQGlmICRleHBvbmVudCA+IDEge1xuICAgIEBmb3IgJGkgZnJvbSAyIHRocm91Z2ggJGV4cG9uZW50IHtcbiAgICAgICR2YWx1ZTogJHZhbHVlICogJGJhc2U7XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRleHBvbmVudCA8IDEge1xuICAgIEBmb3IgJGkgZnJvbSAwIHRocm91Z2ggLSRleHBvbmVudCB7XG4gICAgICAkdmFsdWU6ICR2YWx1ZSAvICRiYXNlO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlO1xufVxuXG5AZnVuY3Rpb24gbnRoLXJvb3QoJG51bSwgJG46IDIsICRwcmVjOiAxMikge1xuICAvLyBGcm9tOiBodHRwOi8vcm9zZXR0YWNvZGUub3JnL3dpa2kvTnRoX3Jvb3QjSmF2YVNjcmlwdFxuICAkeDogMTtcblxuICBAZm9yICRpIGZyb20gMCB0aHJvdWdoICRwcmVjIHtcbiAgICAkeDogMSAvICRuICogKCgkbiAtIDEpICogJHggKyAoJG51bSAvIHBvdygkeCwgJG4gLSAxKSkpO1xuICB9XG5cbiAgQHJldHVybiAkeDtcbn1cblxuLy8vIENhbGN1bGF0ZXMgdGhlIGhlaWdodCBhcyBhIHBlcmNlbnRhZ2Ugb2YgdGhlIHdpZHRoIGZvciBhIGdpdmVuIHJhdGlvLlxuLy8vIEBwYXJhbSB7TGlzdH0gJHJhdGlvIC0gUmF0aW8gdG8gdXNlIHRvIGNhbGN1bGF0ZSB0aGUgaGVpZ2h0LCBmb3JtYXR0ZWQgYXMgYHggYnkgeWAuXG4vLy8gQHJldHVybiB7TnVtYmVyfSBBIHBlcmNlbnRhZ2UgdmFsdWUgZm9yIHRoZSBoZWlnaHQgcmVsYXRpdmUgdG8gdGhlIHdpZHRoIG9mIGEgcmVzcG9uc2l2ZSBjb250YWluZXIuXG5AZnVuY3Rpb24gcmF0aW8tdG8tcGVyY2VudGFnZSgkcmF0aW8pIHtcbiAgJHc6IG50aCgkcmF0aW8sIDEpO1xuICAkaDogbnRoKCRyYXRpbywgMyk7XG4gIEByZXR1cm4gJGggLyAkdyAqIDEwMCU7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmdW5jdGlvbnNcbi8vLy9cblxuLy8vIEdlbmVyYXRlcyBhIHNlbGVjdG9yIHdpdGggZXZlcnkgdGV4dCBpbnB1dCB0eXBlLiBZb3UgY2FuIGFsc28gZmlsdGVyIHRoZSBsaXN0IHRvIG9ubHkgb3V0cHV0IGEgc3Vic2V0IG9mIHRob3NlIHNlbGVjdG9ycy5cbi8vL1xuLy8vIEBwYXJhbSB7TGlzdHxLZXl3b3JkfSAkdHlwZXMgWygpXSAtIEEgbGlzdCBvZiB0ZXh0IGlucHV0IHR5cGVzIHRvIHVzZS4gTGVhdmUgYmxhbmsgdG8gdXNlIGFsbCBvZiB0aGVtLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJG1vZGlmaWVyIFsnJ10gLSBBIG1vZGlmaWVyIHRvIGJlIGFwcGxpZWQgdG8gZWFjaCB0ZXh0IGlucHV0IHR5cGUgKGUuZy4gYSBjbGFzcyBvciBhIHBzZXVkby1jbGFzcykuIExlYXZlIGJsYW5rIHRvIGlnbm9yZS5cbkBmdW5jdGlvbiB0ZXh0LWlucHV0cygkdHlwZXM6ICgpLCAkbW9kaWZpZXI6ICcnKSB7XG4gICRyZXR1cm46ICgpO1xuXG4gICRhbGwtdHlwZXM6XG4gICAgdGV4dFxuICAgIHBhc3N3b3JkXG4gICAgZGF0ZVxuICAgIGRhdGV0aW1lXG4gICAgZGF0ZXRpbWUtbG9jYWxcbiAgICBtb250aFxuICAgIHdlZWtcbiAgICBlbWFpbFxuICAgIG51bWJlclxuICAgIHNlYXJjaFxuICAgIHRlbFxuICAgIHRpbWVcbiAgICB1cmxcbiAgICBjb2xvcjtcblxuICBAaWYgbm90IGhhcy12YWx1ZSgkdHlwZXMpIHtcbiAgICAkdHlwZXM6ICRhbGwtdHlwZXM7XG4gIH1cblxuICBAZWFjaCAkdHlwZSBpbiAkdHlwZXMge1xuICAgICRyZXR1cm46IGFwcGVuZCgkcmV0dXJuLCB1bnF1b3RlKCdbdHlwZT1cXCcjeyR0eXBlfVxcJ10jeyRtb2RpZmllcn0nKSwgY29tbWEpO1xuICB9XG5cbiAgQHJldHVybiAkcmV0dXJuO1xufVxuIiwiJC16Zi1mbGV4LWp1c3RpZnk6IChcbiAgJ2xlZnQnOiBmbGV4LXN0YXJ0LFxuICAncmlnaHQnOiBmbGV4LWVuZCxcbiAgJ2NlbnRlcic6IGNlbnRlcixcbiAgJ2p1c3RpZnknOiBzcGFjZS1iZXR3ZWVuLFxuICAnc3BhY2VkJzogc3BhY2UtYXJvdW5kLFxuKTtcblxuJC16Zi1mbGV4LWFsaWduOiAoXG4gICd0b3AnOiBmbGV4LXN0YXJ0LFxuICAnYm90dG9tJzogZmxleC1lbmQsXG4gICdtaWRkbGUnOiBjZW50ZXIsXG4gICdzdHJldGNoJzogc3RyZXRjaCxcbik7XG5cbiQtemYtZmxleC1kaXJlY3Rpb246IChcbiAgJ3Jvdyc6IHJvdyxcbiAgJ3Jvdy1yZXZlcnNlJzogcm93LXJldmVyc2UsXG4gICdjb2x1bW4nOiBjb2x1bW4sXG4gICdjb2x1bW4tcmV2ZXJzZSc6IGNvbHVtbi1yZXZlcnNlLFxuKTtcblxuLy8vIEVuYWJsZXMgZmxleGJveCBieSBhZGRpbmcgYGRpc3BsYXk6IGZsZXhgIHRvIHRoZSBlbGVtZW50LlxuQG1peGluIGZsZXgge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG4vLy8gSG9yaXpvbnRhbGx5IG9yIHZlcnRpY2FsbHkgYWxpZ25zIHRoZSBpdGVtcyB3aXRoaW4gYSBmbGV4IGNvbnRhaW5lci5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHggW251bGxdIC0gSG9yaXpvbnRhbCBhbGlnbm1lbnQgdG8gdXNlLiBDYW4gYmUgYGxlZnRgLCBgcmlnaHRgLCBgY2VudGVyYCwgYGp1c3RpZnlgLCBvciBgc3BhY2VkYC4gT3IsIHNldCBpdCB0byBgbnVsbGAgKHRoZSBkZWZhdWx0KSB0byBub3Qgc2V0IGhvcml6b250YWwgYWxpZ25tZW50LlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHkgW251bGxdIC0gVmVydGljYWwgYWxpZ25tZW50IHRvIHVzZS4gQ2FuIGJlIGB0b3BgLCBgYm90dG9tYCwgYG1pZGRsZWAsIG9yIGBzdHJldGNoYC4gT3IsIHNldCBpdCB0byBgbnVsbGAgKHRoZSBkZWZhdWx0KSB0byBub3Qgc2V0IHZlcnRpY2FsIGFsaWdubWVudC5cbkBtaXhpbiBmbGV4LWFsaWduKCR4OiBudWxsLCAkeTogbnVsbCkge1xuICBAaWYgJHgge1xuICAgIEBpZiBtYXAtaGFzLWtleSgkLXpmLWZsZXgtanVzdGlmeSwgJHgpIHtcbiAgICAgICR4OiBtYXAtZ2V0KCQtemYtZmxleC1qdXN0aWZ5LCAkeCk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEB3YXJuICdmbGV4LWdyaWQtcm93LWFsaWduKCk6ICN7JHh9IGlzIG5vdCBhIHZhbGlkIHZhbHVlIGZvciBob3Jpem9udGFsIGFsaWdubWVudC4gVXNlIGxlZnQsIHJpZ2h0LCBjZW50ZXIsIGp1c3RpZnksIG9yIHNwYWNlZC4nO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkeSB7XG4gICAgQGlmIG1hcC1oYXMta2V5KCQtemYtZmxleC1hbGlnbiwgJHkpIHtcbiAgICAgICR5OiBtYXAtZ2V0KCQtemYtZmxleC1hbGlnbiwgJHkpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAd2FybiAnZmxleC1ncmlkLXJvdy1hbGlnbigpOiAjeyR5fSBpcyBub3QgYSB2YWxpZCB2YWx1ZSBmb3IgdmVydGljYWwgYWxpZ25tZW50LiBVc2UgdG9wLCBib3R0b20sIG1pZGRsZSwgb3Igc3RyZXRjaC4nO1xuICAgIH1cbiAgfVxuXG4gIGp1c3RpZnktY29udGVudDogJHg7XG4gIGFsaWduLWl0ZW1zOiAkeTtcbn1cblxuLy8vIFZlcnRpY2FsbHkgYWxpZ24gYSBzaW5nbGUgY29sdW1uIHdpdGhpbiBhIGZsZXggcm93LiBBcHBseSB0aGlzIG1peGluIHRvIGEgZmxleCBjb2x1bW4uXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR5IFtudWxsXSAtIFZlcnRpY2FsIGFsaWdubWVudCB0byB1c2UuIENhbiBiZSBgdG9wYCwgYGJvdHRvbWAsIGBtaWRkbGVgLCBvciBgc3RyZXRjaGAuIE9yLCBzZXQgaXQgdG8gYG51bGxgICh0aGUgZGVmYXVsdCkgdG8gbm90IHNldCB2ZXJ0aWNhbCBhbGlnbm1lbnQuXG5AbWl4aW4gZmxleC1hbGlnbi1zZWxmKCR5OiBudWxsKSB7XG4gIEBpZiAkeSB7XG4gICAgQGlmIG1hcC1oYXMta2V5KCQtemYtZmxleC1hbGlnbiwgJHkpIHtcbiAgICAgICR5OiBtYXAtZ2V0KCQtemYtZmxleC1hbGlnbiwgJHkpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAd2FybiAnZmxleC1ncmlkLWNvbHVtbi1hbGlnbigpOiAjeyR5fSBpcyBub3QgYSB2YWxpZCB2YWx1ZSBmb3IgYWxpZ25tZW50LiBVc2UgdG9wLCBib3R0b20sIG1pZGRsZSwgb3Igc3RyZXRjaC4nO1xuICAgIH1cbiAgfVxuXG4gIGFsaWduLXNlbGY6ICR5O1xufVxuXG4vLy8gQ2hhbmdlcyB0aGUgc291cmNlIG9yZGVyIG9mIGEgZmxleCBjaGlsZC4gQ2hpbGRyZW4gd2l0aCBsb3dlciBudW1iZXJzIGFwcGVhciBmaXJzdCBpbiB0aGUgbGF5b3V0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkb3JkZXIgWzBdIC0gT3JkZXIgbnVtYmVyIHRvIGFwcGx5LlxuQG1peGluIGZsZXgtb3JkZXIoJG9yZGVyOiAwKSB7XG4gIG9yZGVyOiAkb3JkZXI7XG59XG5cbi8vLyBDaGFuZ2UgZmxleC1kaXJlY3Rpb25cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkaXJlY3Rpb24gW3Jvd10gLSBGbGV4IGRpcmVjdGlvbiB0byB1c2UuIENhbiBiZVxuLy8vICAgLSByb3cgKGRlZmF1bHQpOiBzYW1lIGFzIHRleHQgZGlyZWN0aW9uXG4vLy8gICAtIHJvdy1yZXZlcnNlOiBvcHBvc2l0ZSB0byB0ZXh0IGRpcmVjdGlvblxuLy8vICAgLSBjb2x1bW46IHNhbWUgYXMgcm93IGJ1dCB0b3AgdG8gYm90dG9tXG4vLy8gICAtIGNvbHVtbi1yZXZlcnNlOiBzYW1lIGFzIHJvdy1yZXZlcnNlIHRvcCB0byBib3R0b21cbkBtaXhpbiBmbGV4LWRpcmVjdGlvbigkZGlyZWN0aW9uOiByb3cpIHtcbiAgZmxleC1kaXJlY3Rpb246ICRkaXJlY3Rpb247XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBicmVha3BvaW50c1xuLy8vL1xuXG4vLy8gQSBsaXN0IG9mIG5hbWVkIGJyZWFrcG9pbnRzLiBZb3UgY2FuIHVzZSB0aGVzZSB3aXRoIHRoZSBgYnJlYWtwb2ludCgpYCBtaXhpbiB0byBxdWlja2x5IGNyZWF0ZSBtZWRpYSBxdWVyaWVzLlxuLy8vIEB0eXBlIE1hcFxuJGJyZWFrcG9pbnRzOiAoXG4gIHNtYWxsOiAwLFxuICBtZWRpdW06IDY0MHB4LFxuICBsYXJnZTogMTAyNHB4LFxuICB4bGFyZ2U6IDEyMDBweCxcbiAgeHhsYXJnZTogMTQ0MHB4LFxuKSAhZGVmYXVsdDtcblxuLy8vIFRoZSBsYXJnZXN0IG5hbWVkIGJyZWFrcG9pbnQgaW4gd2hpY2ggdG8gaW5jbHVkZSBwcmludCBhcyBhIG1lZGlhIHR5cGVcbi8vLyBAdHlwZSBLZXl3b3JkXG4kcHJpbnQtYnJlYWtwb2ludDogbGFyZ2UgIWRlZmF1bHQ7XG5cbiQtemYtemVyby1icmVha3BvaW50OiBzbWFsbCAhZGVmYXVsdDtcblxuJC16Zi1icmVha3BvaW50cy1rZXlzOiBtYXAtdG8tbGlzdCgkYnJlYWtwb2ludHMsICdrZXlzJyk7XG5cbkBpZiBudGgobWFwLXZhbHVlcygkYnJlYWtwb2ludHMpLCAxKSAhPSAwIHtcbiAgQGVycm9yICdZb3VyIHNtYWxsZXN0IGJyZWFrcG9pbnQgKGRlZmluZWQgaW4gJGJyZWFrcG9pbnRzKSBtdXN0IGJlIHNldCB0byBcIjBcIi4nO1xufVxuQGVsc2Uge1xuICAkLXpmLXplcm8tYnJlYWtwb2ludDogbnRoKG1hcC1rZXlzKCRicmVha3BvaW50cyksIDEpO1xufVxuXG4vLy8gQWxsIG9mIHRoZSBuYW1lcyBpbiB0aGlzIGxpc3Qgd2lsbCBiZSBvdXRwdXQgYXMgY2xhc3NlcyBpbiB5b3VyIENTUywgbGlrZSBgLnNtYWxsLTEyYCwgYC5tZWRpdW0tNmAsIGFuZCBzbyBvbi4gRWFjaCB2YWx1ZSBpbiB0aGlzIGxpc3QgbXVzdCBhbHNvIGJlIGluIHRoZSBgJGJyZWFrcG9pbnRzYCBtYXAuXG4vLy8gQHR5cGUgTGlzdFxuJGJyZWFrcG9pbnQtY2xhc3NlczogKHNtYWxsIG1lZGl1bSBsYXJnZSkgIWRlZmF1bHQ7XG5cbi8vLyBHZW5lcmF0ZXMgYSBtZWRpYSBxdWVyeSBzdHJpbmcgbWF0Y2hpbmcgdGhlIGlucHV0IHZhbHVlLiBSZWZlciB0byB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIGBicmVha3BvaW50KClgIG1peGluIHRvIHNlZSB3aGF0IHRoZSBwb3NzaWJsZSBpbnB1dHMgYXJlLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJHZhbCBbc21hbGxdIC0gQnJlYWtwb2ludCBuYW1lLCBvciBweCwgcmVtLCBvciBlbSB2YWx1ZSB0byBwcm9jZXNzLlxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQoJHZhbDogJC16Zi16ZXJvLWJyZWFrcG9pbnQpIHtcbiAgLy8gU2l6ZSBvciBrZXl3b3JkXG4gICRicDogbnRoKCR2YWwsIDEpO1xuICAvLyBWYWx1ZSBmb3IgbWF4LXdpZHRoIG1lZGlhIHF1ZXJpZXNcbiAgJGJwLW1heDogMDtcbiAgLy8gRGlyZWN0aW9uIG9mIG1lZGlhIHF1ZXJ5ICh1cCwgZG93biwgb3Igb25seSlcbiAgJGRpcjogaWYobGVuZ3RoKCR2YWwpID4gMSwgbnRoKCR2YWwsIDIpLCB1cCk7XG4gIC8vIEV2ZW50dWFsIG91dHB1dFxuICAkc3RyOiAnJztcbiAgLy8gSXMgaXQgYSBuYW1lZCBtZWRpYSBxdWVyeT9cbiAgJG5hbWVkOiBmYWxzZTtcblxuICAvLyBPcmllbnRhdGlvbiBtZWRpYSBxdWVyaWVzIGhhdmUgYSB1bmlxdWUgc3ludGF4XG4gIEBpZiAkYnAgPT0gJ2xhbmRzY2FwZScgb3IgJGJwID09ICdwb3J0cmFpdCcge1xuICAgIEByZXR1cm4gJyhvcmllbnRhdGlvbjogI3skYnB9KSc7XG4gIH1cbiAgQGVsc2UgaWYgJGJwID09ICdyZXRpbmEnIHtcbiAgICBAcmV0dXJuICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSwgKG1pbi1yZXNvbHV0aW9uOiAxOTJkcGkpJztcbiAgfVxuXG4gIC8vIFRyeSB0byBwdWxsIGEgbmFtZWQgYnJlYWtwb2ludCBvdXQgb2YgdGhlICRicmVha3BvaW50cyBtYXBcbiAgQGlmIHR5cGUtb2YoJGJwKSA9PSAnc3RyaW5nJyB7XG4gICAgQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJGJwKSB7XG4gICAgICBAaWYgJGRpciA9PSAnb25seScgb3IgJGRpciA9PSAnZG93bicge1xuICAgICAgICAkYnAtbWF4OiAtemYtbWFwLW5leHQoJGJyZWFrcG9pbnRzLCAkYnApO1xuICAgICAgfVxuXG4gICAgICAkYnA6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkYnApO1xuICAgICAgJG5hbWVkOiB0cnVlO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkYnA6IDA7XG4gICAgICBAd2FybiAnYnJlYWtwb2ludCgpOiBcIiN7JHZhbH1cIiBpcyBub3QgZGVmaW5lZCBpbiB5b3VyICRicmVha3BvaW50cyBzZXR0aW5nLic7XG4gICAgfVxuICB9XG5cbiAgLy8gQ29udmVydCBhbnkgcGl4ZWwsIHJlbSwgb3IgdW5pdGxlc3MgdmFsdWUgdG8gZW1cbiAgJGJwOiAtemYtYnAtdG8tZW0oJGJwKTtcbiAgQGlmICRicC1tYXgge1xuICAgICRicC1tYXg6IC16Zi1icC10by1lbSgkYnAtbWF4KSAtICgxLzE2KTtcbiAgfVxuXG4gIC8vIENvbmRpdGlvbnMgdG8gc2tpcCBtZWRpYSBxdWVyeSBjcmVhdGlvblxuICAvLyAtIEl0J3MgYSBuYW1lZCBicmVha3BvaW50IHRoYXQgcmVzb2x2ZWQgdG8gXCIwIGRvd25cIiBvciBcIjAgdXBcIlxuICAvLyAtIEl0J3MgYSBudW1lcmljIGJyZWFrcG9pbnQgdGhhdCByZXNvbHZlZCB0byBcIjAgXCIgKyBhbnl0aGluZ1xuICBAaWYgJGJwID4gMGVtIG9yICRkaXIgPT0gJ29ubHknIG9yICRkaXIgPT0gJ2Rvd24nIHtcbiAgICAvLyBgb25seWAgcmFuZ2VzIHVzZSB0aGUgZm9ybWF0IGAobWluLXdpZHRoOiBuKSBhbmQgKG1heC13aWR0aDogbilgXG4gICAgQGlmICRkaXIgPT0gJ29ubHknIHtcbiAgICAgIC8vIE9ubHkgbmFtZWQgbWVkaWEgcXVlcmllcyBjYW4gaGF2ZSBhbiBcIm9ubHlcIiByYW5nZVxuICAgICAgQGlmICRuYW1lZCA9PSB0cnVlIHtcbiAgICAgICAgLy8gT25seSB1c2UgXCJtaW4td2lkdGhcIiBpZiB0aGUgZmxvb3IgaXMgZ3JlYXRlciB0aGFuIDBcbiAgICAgICAgQGlmICRicCA+IDBlbSB7XG4gICAgICAgICAgJHN0cjogJHN0ciArICcobWluLXdpZHRoOiAjeyRicH0pJztcblxuICAgICAgICAgIC8vIE9ubHkgYWRkIFwiYW5kXCIgdG8gdGhlIG1lZGlhIHF1ZXJ5IGlmIHRoZXJlJ3MgYSBjZWlsaW5nXG4gICAgICAgICAgQGlmICRicC1tYXggIT0gbnVsbCB7XG4gICAgICAgICAgICAkc3RyOiAkc3RyICsgJyBhbmQgJztcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBPbmx5IHVzZSBcIm1heC13aWR0aFwiIGlmIHRoZXJlJ3MgYSBjZWlsaW5nXG4gICAgICAgIEBpZiAkYnAtbWF4ICE9IG51bGwge1xuICAgICAgICAgICRzdHI6ICRzdHIgKyAnKG1heC13aWR0aDogI3skYnAtbWF4fSknO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIEB3YXJuICdicmVha3BvaW50KCk6IE9ubHkgbmFtZWQgbWVkaWEgcXVlcmllcyBjYW4gaGF2ZSBhbiBgb25seWAgcmFuZ2UuJztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBgZG93bmAgcmFuZ2VzIHVzZSB0aGUgZm9ybWF0IGAobWF4LXdpZHRoOiBuKWBcbiAgICBAZWxzZSBpZiAkZGlyID09ICdkb3duJyB7XG4gICAgICAkbWF4OiBpZigkbmFtZWQsICRicC1tYXgsICRicCk7XG5cbiAgICAgIC8vIFNraXAgbWVkaWEgcXVlcnkgY3JlYXRpb24gaWYgaW5wdXQgdmFsdWUgaXMgZXhhY3RseSBcIjAgZG93blwiLFxuICAgICAgLy8gdW5sZXNzIHRoZSBmdW5jdGlvbiB3YXMgY2FsbGVkIGFzIFwic21hbGwgZG93blwiLCBpbiB3aGljaCBjYXNlIGl0J3MganVzdCBcInNtYWxsIG9ubHlcIlxuICAgICAgQGlmICRuYW1lZCBvciAkYnAgPiAwZW0ge1xuICAgICAgICBAaWYgJG1heCAhPSBudWxsIHtcbiAgICAgICAgICAkc3RyOiAkc3RyICsgJyhtYXgtd2lkdGg6ICN7JG1heH0pJztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIGB1cGAgcmFuZ2VzIHVzZSB0aGUgZm9ybWF0IGAobWluLXdpZHRoOiBuKWBcbiAgICBAZWxzZSBpZiAkYnAgPiAwZW0ge1xuICAgICAgJHN0cjogJHN0ciArICcobWluLXdpZHRoOiAjeyRicH0pJztcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRzdHI7XG59XG5cbi8vLyBXcmFwcyBhIG1lZGlhIHF1ZXJ5IGFyb3VuZCB0aGUgY29udGVudCB5b3UgcHV0IGluc2lkZSB0aGUgbWl4aW4uIFRoaXMgbWl4aW4gYWNjZXB0cyBhIG51bWJlciBvZiB2YWx1ZXM6XG4vLy8gIC0gSWYgYSBzdHJpbmcgaXMgcGFzc2VkLCB0aGUgbWl4aW4gd2lsbCBsb29rIGZvciBpdCBpbiB0aGUgYCRicmVha3BvaW50c2AgbWFwLCBhbmQgdXNlIGEgbWVkaWEgcXVlcnkgdGhlcmUuXG4vLy8gIC0gSWYgYSBwaXhlbCB2YWx1ZSBpcyBwYXNzZWQsIGl0IHdpbGwgYmUgY29udmVydGVkIHRvIGFuIGVtIHZhbHVlIHVzaW5nIGAkZ2xvYmFsLWZvbnQtc2l6ZWAgYXMgdGhlIGJhc2UuXG4vLy8gIC0gSWYgYSByZW0gdmFsdWUgaXMgcGFzc2VkLCB0aGUgdW5pdCB3aWxsIGJlIGNoYW5nZWQgdG8gZW0uXG4vLy8gIC0gSWYgYW4gZW0gdmFsdWUgaXMgcGFzc2VkLCB0aGUgdmFsdWUgd2lsbCBiZSB1c2VkIGFzLWlzLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJHZhbHVlIC0gQnJlYWtwb2ludCBuYW1lLCBvciBweCwgcmVtLCBvciBlbSB2YWx1ZSB0byBwcm9jZXNzLlxuLy8vXG4vLy8gQG91dHB1dCBJZiB0aGUgYnJlYWtwb2ludCBpcyBcIjBweCBhbmQgbGFyZ2VyXCIsIG91dHB1dHMgdGhlIGNvbnRlbnQgYXMtaXMuIE90aGVyd2lzZSwgb3V0cHV0cyB0aGUgY29udGVudCB3cmFwcGVkIGluIGEgbWVkaWEgcXVlcnkuXG5AbWl4aW4gYnJlYWtwb2ludCgkdmFsdWUpIHtcbiAgJHN0cjogYnJlYWtwb2ludCgkdmFsdWUpO1xuICAkYnA6IGluZGV4KCQtemYtYnJlYWtwb2ludHMta2V5cywgJHZhbHVlKTtcbiAgJHBicDogaW5kZXgoJC16Zi1icmVha3BvaW50cy1rZXlzLCAkcHJpbnQtYnJlYWtwb2ludCk7XG5cbiAgJG9sZC16Zi1zaXplOiBudWxsO1xuXG4gIC8vIE1ha2UgYnJlYWtwb2ludCBzaXplIGF2YWlsYWJsZSBhcyBhIHZhcmlhYmxlXG4gIEBpZiBnbG9iYWwtdmFyaWFibGUtZXhpc3RzKC16Zi1zaXplKSB7XG4gICAgJG9sZC16Zi1zaXplOiAkLXpmLXNpemU7XG4gIH1cbiAgJC16Zi1zaXplOiBudGgoJHZhbHVlLCAxKSAhZ2xvYmFsOyAvLyBnZXQgdGhlIGZpcnN0IHZhbHVlIHRvIGFjY291bnQgZm9yIGBvbmx5YCBhbmQgYGRvd25gIGtleXdvcmRzXG5cbiAgLy8gSWYgJHN0ciBpcyBzdGlsbCBhbiBlbXB0eSBzdHJpbmcsIG5vIG1lZGlhIHF1ZXJ5IGlzIG5lZWRlZFxuICBAaWYgJHN0ciA9PSAnJyB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cblxuICAvLyBPdGhlcndpc2UsIHdyYXAgdGhlIGNvbnRlbnQgaW4gYSBtZWRpYSBxdWVyeVxuICBAZWxzZSB7XG4gICAgLy8gRm9yIG5hbWVkIGJyZWFrcG9pbnRzIGxlc3MgdGhhbiBvciBlcXVhbCB0byAkcHJpbnQtYnJlYWtwb2ludCwgYWRkIHByaW50IHRvIHRoZSBtZWRpYSB0eXBlc1xuICAgIEBpZiAkYnAgIT0gbnVsbCBhbmQgJGJwIDw9ICRwYnAge1xuICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kICN7JHN0cn0ge1xuICAgICAgICBAY29udGVudDtcbiAgICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kICN7JHN0cn0ge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaWYgJG9sZC16Zi1zaXplICE9IG51bGwge1xuICAgIC8vIFJlc3RvcmUgdGhlIG9sZCBicmVha3BvaW50IHNpemVcbiAgICAkLXpmLXNpemU6ICRvbGQtemYtc2l6ZSAhZ2xvYmFsO1xuICB9IEBlbHNlIHtcbiAgICAkLXpmLXNpemU6IG51bGwgIWdsb2JhbDtcbiAgfVxufVxuXG4vLy8gQ29udmVycyB0aGUgYnJlYWtwb2ludHMgbWFwIHRvIGEgVVJMLWVuY29kZWQgc3RyaW5nLCBsaWtlIHRoaXM6IGBrZXkxPXZhbHVlMSZrZXkyPXZhbHVlMmAuIFRoZSB2YWx1ZSBpcyB0aGVuIGRyb3BwZWQgaW50byB0aGUgQ1NTIGZvciBhIHNwZWNpYWwgYDxtZXRhPmAgdGFnLCB3aGljaCBpcyByZWFkIGJ5IHRoZSBGb3VuZGF0aW9uIEphdmFTY3JpcHQuIFRoaXMgaXMgaG93IHdlIHRyYW5zZmVyIHZhbHVlcyBmcm9tIFNhc3MgdG8gSmF2YVNjcmlwdCwgc28gdGhleSBjYW4gYmUgZGVmaW5lZCBpbiBvbmUgcGxhY2UuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge01hcH0gJG1hcCAtIE1hcCB0byBjb252ZXJ0LlxuLy8vXG4vLy8gQHJldHVybnMge1N0cmluZ30gQSBzdHJpbmcgY29udGFpbmluZyB0aGUgbWFwJ3MgY29udGVudHMuXG5AZnVuY3Rpb24gLXpmLWJwLXNlcmlhbGl6ZSgkbWFwKSB7XG4gICRzdHI6ICcnO1xuICBAZWFjaCAka2V5LCAkdmFsdWUgaW4gJG1hcCB7XG4gICAgJHN0cjogJHN0ciArICRrZXkgKyAnPScgKyAtemYtYnAtdG8tZW0oJHZhbHVlKSArICcmJztcbiAgfVxuICAkc3RyOiBzdHItc2xpY2UoJHN0ciwgMSwgLTIpO1xuXG4gIEByZXR1cm4gJHN0cjtcbn1cblxuLy8vIEZpbmQgdGhlIG5leHQga2V5IGluIGEgbWFwLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtNYXB9ICRtYXAgLSBNYXAgdG8gdHJhdmVyc2UuXG4vLy8gQHBhcmFtIHtNaXhlZH0gJGtleSAtIEtleSB0byB1c2UgYXMgYSBzdGFydGluZyBwb2ludC5cbi8vL1xuLy8vIEByZXR1cm5zIHtNaXhlZH0gVGhlIHZhbHVlIGZvciB0aGUga2V5IGFmdGVyIGAka2V5YCwgaWYgYCRrZXlgIHdhcyBmb3VuZC4gSWYgYCRrZXlgIHdhcyBub3QgZm91bmQsIG9yIGAka2V5YCB3YXMgdGhlIGxhc3QgdmFsdWUgaW4gdGhlIG1hcCwgcmV0dXJucyBgbnVsbGAuXG5AZnVuY3Rpb24gLXpmLW1hcC1uZXh0KCRtYXAsICRrZXkpIHtcblxuICAvLyBTdG9yZSB0aGUga2V5cyBvZiB0aGUgbWFwIGFzIGEgbGlzdFxuICAkdmFsdWVzOiBtYXAta2V5cygkbWFwKTtcblxuICAkaTogMDtcblxuICAvLyBJZiB0aGUgS2V5IEV4aXN0cywgR2V0IHRoZSBpbmRleCBvZiB0aGUga2V5IHdpdGhpbiB0aGUgbWFwIGFuZCBhZGQgMSB0byBpdCBmb3IgdGhlIG5leHQgYnJlYWtwb2ludCBpbiB0aGUgbWFwXG4gIEBpZiAobWFwLWhhcy1rZXkoJG1hcCwgJGtleSkpIHtcbiAgICAkaTogaW5kZXgoJHZhbHVlcywgJGtleSkgKyAxO1xuICB9XG5cbiAgLy8gSWYgdGhlIGtleSBkb2Vzbid0IGV4aXN0LCBvciBpdCdzIHRoZSBsYXN0IGtleSBpbiB0aGUgbWFwLCByZXR1cm4gbnVsbFxuICBAaWYgKCRpID4gbGVuZ3RoKCRtYXApIG9yICRpID09IDApIHtcbiAgICBAcmV0dXJuIG51bGw7XG4gIH1cbiAgLy8gT3RoZXJ3aXNlLCByZXR1cm4gdGhlIHZhbHVlXG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIG1hcC1nZXQoJG1hcCwgbnRoKCR2YWx1ZXMsICRpKSk7XG4gIH1cblxufVxuXG4vLy8gUmV0dXJuIGEgbGlzdCBvZiBvdXIgbmFtZWQgYnJlYWtwb2ludHMgbGVzcyB0aGFuICRrZXkuIFVzZWZ1bCBmb3IgZGVhbGluZyB3aXRoXG4vLy8gcmVzcG9uc2l2ZSBndXR0ZXJzIGZvciB0aGUgZ3JpZC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAka2V5IC0gS2V5IHRvIHVzZSBhcyBsYXN0IGJyZWFrcG9pbnQuXG4vLy9cbi8vLyBAcmV0dXJucyB7QXJyYXl9IFRoZSBsaXN0IG9mIGJyZWFrcG9pbnRzIHVwIHRvIGFuZC4gSWYgJGtleSBpcyBhdXRvLCByZXR1cm5zIGJyZWFrcG9pbnRzIGFib3ZlIHRoZSB6ZXJvXG5AZnVuY3Rpb24gLXpmLWJyZWFrcG9pbnRzLWxlc3MtdGhhbigka2V5KSB7XG4gICRsaXN0OiAoKTtcbiAgJGZvdW5kX2tleTogZmFsc2U7XG5cbiAgQGVhY2ggJG5hbWUgaW4gJC16Zi1icmVha3BvaW50cy1rZXlzIHtcbiAgICBAaWYgKCRuYW1lID09ICRrZXkpIHtcbiAgICAgICRmb3VuZF9rZXk6IHRydWU7XG4gICAgfVxuICAgIEBpZiBub3QgJGZvdW5kX2tleSB7XG4gICAgICAkbGlzdDogYXBwZW5kKCRsaXN0LCAkbmFtZSk7XG4gICAgfVxuICB9XG4gIEByZXR1cm4gJGxpc3Q7XG59XG5cbi8vLyBSZXR1cm4gYSBsaXN0IG9mIG91ciBuYW1lZCBicmVha3BvaW50cyBsZXNzIHRoYW4gJGtleS4gVXNlZnVsIGZvciBkZWFsaW5nIHdpdGhcbi8vLyByZXNwb25zaXZlIGd1dHRlcnMgZm9yIHRoZSBncmlkLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRicmVha3BvaW5nIC0gYSBuYW1lZCBvciBub24tbmFtZWQgYnJlYWtwb2luZy5cbi8vL1xuLy8vIEByZXR1cm5zIHtBcnJheX0gVGhlIGxpc3Qgb2YgYnJlYWtwb2ludHMgdXAgdG8gYW5kLiBJZiAka2V5IGlzIGF1dG8sIHJldHVybnMgYnJlYWtwb2ludHMgYWJvdmUgdGhlIHplcm9cbkBmdW5jdGlvbiAtemYtY2xvc2VzdC1uYW1lZC1icmVha3BvaW50KCRicmVha3BvaW50KSB7XG4gICRsYXN0OiAkLXpmLXplcm8tYnJlYWtwb2ludDtcbiAgJGZvdW5kOiBmYWxzZTtcblxuICAkdmFsdWU6IHVuaXRsZXNzLWNhbGMoJGJyZWFrcG9pbnQsIDFweCk7XG4gIEBlYWNoICRrZXksICR2YWwgaW4gJGJyZWFrcG9pbnRzIHtcbiAgICBAaWYgbm90ICRmb3VuZCB7XG4gICAgICBAaWYgdW5pdGxlc3MtY2FsYygkdmFsKSA+ICR2YWx1ZSB7XG4gICAgICAgICRmb3VuZDogdHJ1ZTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICAkbGFzdDogJGtleTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRsYXN0O1xufVxuXG4vLy8gR2V0IGEgdmFsdWUgZm9yIGEgYnJlYWtwb2ludCBmcm9tIGEgcmVzcG9uc2l2ZSBjb25maWcgbWFwIG9yIHNpbmdsZSB2YWx1ZS5cbi8vLyAtIElmIHRoZSBjb25maWcgaXMgYSBzaW5nbGUgdmFsdWUsIHJldHVybiBpdCByZWdhcmRsZXNzIG9mIGAkdmFsdWVgLlxuLy8vIC0gSWYgdGhlIGNvbmZpZyBpcyBhIG1hcCBhbmQgaGFzIHRoZSBrZXkgYCR2YWx1ZWAsIHRoZSBleGFjdCBicmVha3BvaW50IHZhbHVlIGlzIHJldHVybmVkLlxuLy8vIC0gSWYgdGhlIGNvbmZpZyBpcyBhIG1hcCBhbmQgZG9lcyAqbm90KiBoYXZlIHRoZSBicmVha3BvaW50LCB0aGUgdmFsdWUgbWF0Y2hpbmcgdGhlIG5leHQgbG93ZXN0IGJyZWFrcG9pbnQgaW4gdGhlIGNvbmZpZyBtYXAgaXMgcmV0dXJuZWQuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRtYXAgLSBSZXNwb25zaXZlIGNvbmZpZyBtYXAgb3Igc2luZ2xlIHZhbHVlLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHZhbHVlIC0gQnJlYWtwb2ludCBuYW1lIHRvIHVzZS5cbi8vL1xuLy8vIEByZXR1cm4ge01peGVkfSBUaGUgY29ycmVzcG9uZGluZyBicmVha3BvaW50IHZhbHVlLlxuQGZ1bmN0aW9uIC16Zi1nZXQtYnAtdmFsKCRtYXAsICR2YWx1ZSkge1xuICAvLyBJZiB0aGUgZ2l2ZW4gbWFwIGlzIGEgc2luZ2xlIHZhbHVlLCByZXR1cm4gaXRcbiAgQGlmIHR5cGUtb2YoJG1hcCkgPT0gJ251bWJlcicge1xuICAgIEByZXR1cm4gJG1hcDtcbiAgfVxuXG5cbiAgLy8gQ2hlY2sgaWYgdGhlIGJyZWFrcG9pbnQgbmFtZSBleGlzdHMgZ2xvYmFsbHlcbiAgQGlmIG5vdCBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICR2YWx1ZSkge1xuICAgIEBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gJ251bWJlcicge1xuICAgICAgJHZhbHVlOiAtemYtY2xvc2VzdC1uYW1lZC1icmVha3BvaW50KCR2YWx1ZSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICBAcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG4gIC8vIENoZWNrIGlmIHRoZSBicmVha3BvaW50IG5hbWUgZXhpc3RzIGluIHRoZSBsb2NhbCBjb25maWcgbWFwXG4gIEBlbHNlIGlmIG1hcC1oYXMta2V5KCRtYXAsICR2YWx1ZSkge1xuICAgIC8vIElmIGl0IGRvZXMsIGp1c3QgcmV0dXJuIHRoZSB2YWx1ZVxuICAgIEByZXR1cm4gbWFwLWdldCgkbWFwLCAkdmFsdWUpO1xuICB9XG4gIC8vIE90aGVyd2lzZSwgZmluZCB0aGUgbmV4dCBsb3dlc3QgYnJlYWtwb2ludCBhbmQgcmV0dXJuIHRoYXQgdmFsdWVcbiAgQGVsc2Uge1xuICAgICRhbmNob3I6IG51bGw7XG4gICAgJGZvdW5kOiBmYWxzZTtcblxuICAgIEBlYWNoICRrZXksICR2YWwgaW4gJGJyZWFrcG9pbnRzIHtcbiAgICAgIEBpZiBub3QgJGZvdW5kIHtcbiAgICAgICAgQGlmIG1hcC1oYXMta2V5KCRtYXAsICRrZXkpIHtcbiAgICAgICAgICAkYW5jaG9yOiAka2V5O1xuICAgICAgICB9XG4gICAgICAgIEBpZiAka2V5ID09ICR2YWx1ZSB7XG4gICAgICAgICAgJGZvdW5kOiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgQHJldHVybiBtYXAtZ2V0KCRtYXAsICRhbmNob3IpO1xuICB9XG59XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIHNtYWxsKSB7XG4gICRzbWFsbC11cDogc2NyZWVuO1xuICAkc21hbGwtb25seTogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQoc21hbGwgb25seSl9Jyk7XG59XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIG1lZGl1bSkge1xuICAkbWVkaXVtLXVwOiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChtZWRpdW0pfScpO1xuICAkbWVkaXVtLW9ubHk6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KG1lZGl1bSBvbmx5KX0nKTtcbn1cblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgbGFyZ2UpIHtcbiAgJGxhcmdlLXVwOiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChsYXJnZSl9Jyk7XG4gICRsYXJnZS1vbmx5OiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChsYXJnZSBvbmx5KX0nKTtcbn1cblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgeGxhcmdlKSB7XG4gICR4bGFyZ2UtdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KHhsYXJnZSl9Jyk7XG4gICR4bGFyZ2Utb25seTogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQoeGxhcmdlIG9ubHkpfScpO1xufVxuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCB4eGxhcmdlKSB7XG4gICR4eGxhcmdlLXVwOiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludCh4eGxhcmdlKX0nKTtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZ1bmN0aW9uc1xuLy8vL1xuXG4vLy8gQ3JlYXRlcyBhbiBpbm5lciBib3gtc2hhZG93IGZvciBvbmx5IG9uZSBzaWRlXG4vLy8gXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2lkZSAtIFNpZGUgdGhlIHNoYWRvdyBpcyBzdXBwb3NlZCB0byBhcHBlYXIuIENhbiBiZSBgdG9wYCwgYGxlZnRgLCBgcmlnaHRgIG9yIGBib3R0b21gLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc2l6ZSAtIFdpZHRoIGZvciB0aGUgdGFyZ2V0IHNpZGUuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIC0gQ29sb3Igb2YgdGhlIHNoYWRvdy5cbkBtaXhpbiBpbm5lci1zaWRlLXNoYWRvdyhcbiAgJHNpZGU6IGJvdHRvbSxcbiAgJHNpemU6IDIwcHgsXG4gICRjb2xvcjogcmdiYSgkYmxhY2ssIDAuMjUpXG4pIHtcblxuICAkaGVscGVyOiByb3VuZCgkc2l6ZSAqIDAuNjUpO1xuXG4gIEBpZiAoJHNpZGUgPT0gdG9wKSB7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAkaGVscGVyICRzaXplICgtMSkqJGhlbHBlciAkY29sb3I7XG4gIH0gQGVsc2UgaWYgKCRzaWRlID09IGxlZnQpIHtcbiAgICBib3gtc2hhZG93OiBpbnNldCAkaGVscGVyIDAgJHNpemUgKC0xKSokaGVscGVyICRjb2xvcjtcbiAgfSBAZWxzZSBpZiAoJHNpZGUgPT0gcmlnaHQpIHtcbiAgICBib3gtc2hhZG93OiBpbnNldCAoLTEpKiRoZWxwZXIgMCAkc2l6ZSAoLTEpKiRoZWxwZXIgJGNvbG9yO1xuICB9IEBlbHNlIGlmICgkc2lkZSA9PSBib3R0b20pIHtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwICgtMSkqJGhlbHBlciAkc2l6ZSAoLTEpKiRoZWxwZXIgJGNvbG9yO1xuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgQ1NTIHRyaWFuZ2xlLCB3aGljaCBjYW4gYmUgdXNlZCBmb3IgZHJvcGRvd24gYXJyb3dzLCBkcm9wZG93biBwaXBzLCBhbmQgbW9yZS4gVXNlIHRoaXMgbWl4aW4gaW5zaWRlIGEgYCY6OmJlZm9yZWAgb3IgYCY6OmFmdGVyYCBzZWxlY3RvciwgdG8gYXR0YWNoIHRoZSB0cmlhbmdsZSB0byBhbiBleGlzdGluZyBlbGVtZW50LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR0cmlhbmdsZS1zaXplIC0gV2lkdGggb2YgdGhlIHRyaWFuZ2xlLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICR0cmlhbmdsZS1jb2xvciAtIENvbG9yIG9mIHRoZSB0cmlhbmdsZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR0cmlhbmdsZS1kaXJlY3Rpb24gLSBEaXJlY3Rpb24gdGhlIHRyaWFuZ2xlIHBvaW50cy4gQ2FuIGJlIGB1cGAsIGByaWdodGAsIGBkb3duYCwgb3IgYGxlZnRgLlxuQG1peGluIGNzcy10cmlhbmdsZShcbiAgJHRyaWFuZ2xlLXNpemUsXG4gICR0cmlhbmdsZS1jb2xvcixcbiAgJHRyaWFuZ2xlLWRpcmVjdGlvblxuKSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuXG4gIGJvcmRlcjogaW5zZXQgJHRyaWFuZ2xlLXNpemU7XG5cbiAgY29udGVudDogJyc7XG5cbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IGRvd24pIHtcbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuICAgIGJvcmRlci10b3Atc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogJHRyaWFuZ2xlLWNvbG9yIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICB9XG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSB1cCkge1xuICAgIGJvcmRlci10b3Atd2lkdGg6IDA7XG4gICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAkdHJpYW5nbGUtY29sb3I7XG4gIH1cbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IHJpZ2h0KSB7XG4gICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuICAgIGJvcmRlci1sZWZ0LXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICR0cmlhbmdsZS1jb2xvcjtcbiAgfVxuICBAaWYgKCR0cmlhbmdsZS1kaXJlY3Rpb24gPT0gbGVmdCkge1xuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICAgIGJvcmRlci1yaWdodC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAkdHJpYW5nbGUtY29sb3IgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBtZW51IGljb24gd2l0aCBhIHNldCB3aWR0aCwgaGVpZ2h0LCBudW1iZXIgb2YgYmFycywgYW5kIGNvbG9ycy4gVGhlIG1peGluIHVzZXMgdGhlIGhlaWdodCBvZiB0aGUgaWNvbiBhbmQgdGhlIHdlaWdodCBvZiB0aGUgYmFycyB0byBkZXRlcm1pbmUgc3BhY2luZy4gPGRpdiBjbGFzcz1cImRvY3MtZXhhbXBsZS1idXJnZXJcIj48L2Rpdj5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJsYWNrXSAtIENvbG9yIHRvIHVzZSBmb3IgdGhlIGljb24uXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yLWhvdmVyIFskZGFyay1ncmF5XSAtIENvbG9yIHRvIHVzZSB3aGVuIHRoZSBpY29uIGlzIGhvdmVyZWQgb3Zlci5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHdpZHRoIFsyMHB4XSAtIFdpZHRoIG9mIHRoZSBpY29uLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkaGVpZ2h0IFsxNnB4XSAtIEhlaWdodCBvZiB0aGUgaWNvbi5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHdlaWdodCBbMnB4XSAtIEhlaWdodCBvZiBpbmRpdmlkdWFsIGJhcnMgaW4gdGhlIGljb24uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXJzIFszXSAtIE51bWJlciBvZiBiYXJzIGluIHRoZSBpY29uLlxuQG1peGluIGhhbWJ1cmdlcihcbiAgJGNvbG9yOiAkYmxhY2ssXG4gICRjb2xvci1ob3ZlcjogJGRhcmstZ3JheSxcbiAgJHdpZHRoOiAyMHB4LFxuICAkaGVpZ2h0OiAxNnB4LFxuICAkd2VpZ2h0OiAycHgsXG4gICRiYXJzOiAzXG4pIHtcbiAgLy8gYm94LXNoYWRvdyBDU1Mgb3V0cHV0XG4gICRzaGFkb3c6ICgpO1xuICAkaG92ZXItc2hhZG93OiAoKTtcblxuICAvLyBTcGFjaW5nIGJldHdlZW4gYmFycyBpcyBjYWxjdWxhdGVkIGJhc2VkIG9uIHRoZSB0b3RhbCBoZWlnaHQgb2YgdGhlIGljb24gYW5kIHRoZSB3ZWlnaHQgb2YgZWFjaCBiYXJcbiAgJHNwYWNpbmc6ICgkaGVpZ2h0IC0gKCR3ZWlnaHQgKiAkYmFycykpIC8gKCRiYXJzIC0gMSk7XG5cbiAgQGlmIHVuaXQoJHNwYWNpbmcpID09ICdweCcge1xuICAgICRzcGFjaW5nOiBmbG9vcigkc3BhY2luZyk7XG4gIH1cblxuICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRiYXJzIHtcbiAgICAkb2Zmc2V0OiAoJHdlaWdodCArICRzcGFjaW5nKSAqICgkaSAtIDEpO1xuICAgICRzaGFkb3c6IGFwcGVuZCgkc2hhZG93LCAwICRvZmZzZXQgMCAkY29sb3IsIGNvbW1hKTtcbiAgfVxuXG4gIC8vIEljb24gY29udGFpbmVyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB3aWR0aDogJHdpZHRoO1xuICBoZWlnaHQ6ICRoZWlnaHQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcblxuICAvLyBJY29uIGJhcnNcbiAgJjo6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcblxuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogJHdlaWdodDtcblxuICAgIGJhY2tncm91bmQ6ICRjb2xvcjtcbiAgICBib3gtc2hhZG93OiAkc2hhZG93O1xuXG4gICAgY29udGVudDogJyc7XG4gIH1cblxuICAvLyBIb3ZlciBzdGF0ZVxuICBAaWYgJGNvbG9yLWhvdmVyIHtcbiAgICAvLyBHZW5lcmF0ZSBDU1NcbiAgICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRiYXJzIHtcbiAgICAgICRvZmZzZXQ6ICgkd2VpZ2h0ICsgJHNwYWNpbmcpICogKCRpIC0gMSk7XG4gICAgICAkaG92ZXItc2hhZG93OiBhcHBlbmQoJGhvdmVyLXNoYWRvdywgMCAkb2Zmc2V0IDAgJGNvbG9yLWhvdmVyLCBjb21tYSk7XG4gICAgfVxuXG4gICAgJjpob3Zlcjo6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZDogJGNvbG9yLWhvdmVyO1xuICAgICAgYm94LXNoYWRvdzogJGhvdmVyLXNoYWRvdztcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgYSBkb3dud2FyZC1mYWNpbmcgdHJpYW5nbGUgYXMgYSBiYWNrZ3JvdW5kIGltYWdlIHRvIGFuIGVsZW1lbnQuIFRoZSBpbWFnZSBpcyBmb3JtYXR0ZWQgYXMgYW4gU1ZHLCBtYWtpbmcgaXQgZWFzeSB0byBjaGFuZ2UgdGhlIGNvbG9yLiBCZWNhdXNlIEludGVybmV0IEV4cGxvcmVyIGRvZXNuJ3Qgc3VwcG9ydCBlbmNvZGVkIFNWR3MgYXMgYmFja2dyb3VuZCBpbWFnZXMsIGEgUE5HIGZhbGxiYWNrIGlzIGFsc28gaW5jbHVkZWQuXG4vLy8gVGhlcmUgYXJlIHR3byBQTkcgZmFsbGJhY2tzOiBhIGJsYWNrIHRyaWFuZ2xlIGFuZCBhIHdoaXRlIHRyaWFuZ2xlLiBUaGUgb25lIHVzZWQgZGVwZW5kcyBvbiB0aGUgbGlnaHRuZXNzIG9mIHRoZSBpbnB1dCBjb2xvci5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJsYWNrXSAtIENvbG9yIHRvIHVzZSBmb3IgdGhlIHRyaWFuZ2xlLlxuQG1peGluIGJhY2tncm91bmQtdHJpYW5nbGUoJGNvbG9yOiAkYmxhY2spIHtcbiAgJHJnYjogJ3JnYiUyOCN7cm91bmQocmVkKCRjb2xvcikpfSwgI3tyb3VuZChncmVlbigkY29sb3IpKX0sICN7cm91bmQoYmx1ZSgkY29sb3IpKX0lMjknO1xuXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnIHdpZHRoPSczMicgaGVpZ2h0PScyNCcgdmlld0JveD0nMCAwIDMyIDI0Jz48cG9seWdvbiBwb2ludHM9JzAsMCAzMiwwIDE2LDI0JyBzdHlsZT0nZmlsbDogI3skcmdifSc+PC9wb2x5Z29uPjwvc3ZnPlwiKTtcblxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjBcXDApIHtcbiAgICBAaWYgbGlnaHRuZXNzKCRjb2xvcikgPCA2MCUge1xuICAgICAgLy8gV2hpdGUgdHJpYW5nbGVcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFDQUFBQUFZQ0FZQUFBQ2JVLzgwQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUFJcEpSRUZVZU5yRWtja05nREFNQkJmUmtFdDBPYlJCQmRzR1hVRGdtUWZLNFhoSDJtOGN6UUFBeTI3UjN0c3c0UWZlMng4dU9PNm9ZTGI2R2xPb3IzR0Yrc3dVUkFPbVVKK1J3dEVKczlXdlRHRVl4QlhxSTFNUUFaaENmVVFLUnpETVZqK1R3ckFJVjZqdlNVRWtZQXIxTFNrY3lUQmIvVitLWWZYN3hBZXVzcTNzTER0R0gza0VHQUNQV0lmbE5aZmhSUUFBQUFCSlJVNUVya0pnZ2c9PScpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAvLyBCbGFjayB0cmlhbmdsZVxuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUNBQUFBQVlDQVlBQUFDYlUvODBBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQU1CSlJFRlVlTnJFbGxzT2hDQU1SVnN6QzlJbHpVN0tDbVZIVEpzb01XWU1VdHB5djlCZ2J1WFFCNVpTZGdCWVlZNHljZ0Jpdms4S1lGc1FNZk1pVFRCUDRvM25VekNLek9hYkxKYkx5Mi9nMzFldkdrQWdpblI0L1plZ0tINXFYM2JKQ3NjQTN0MHgza2dPNXRRRnloaEZmNTB4UnFGTGJ5TVVOSlF6Z3lqR1Mvd2dDcHZLcWtSQnB1V3JFNFY5ZCsxRTRkUFVYcUlnMTA3U1FPRS8yRFJReE13VER5Z0lJblZERVQ5VDNsQ29qLzZqL1ZDbUdqWk9sMmxLcFo4QUF3RFFQN3pJaW1ER0ZRQUFBQUJKUlU1RXJrSmdnZz09Jyk7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBcHBsaWVzIHRoZSBtaWNybyBjbGVhcmZpeCBoYWNrIHBvcHVsYXJpemVkIGJ5IE5pY29sYXMgR2FsbGFnaGVyLiBJbmNsdWRlIHRoaXMgbWl4aW4gb24gYSBjb250YWluZXIgaWYgaXRzIGNoaWxkcmVuIGFyZSBhbGwgZmxvYXRlZCwgdG8gZ2l2ZSB0aGUgY29udGFpbmVyIGEgcHJvcGVyIGhlaWdodC5cbi8vLyBUaGUgY2xlYXJmaXggaXMgYXVnbWVudGVkIHdpdGggc3BlY2lmaWMgc3R5bGVzIHRvIHByZXZlbnQgYm9yZGVycyBpbiBmbGV4Ym94IGVudmlyb25tZW50c1xuLy8vIEBsaW5rIGh0dHA6Ly9uaWNvbGFzZ2FsbGFnaGVyLmNvbS9taWNyby1jbGVhcmZpeC1oYWNrLyBNaWNybyBDbGVhcmZpeCBIYWNrXG4vLy8gQGxpbmsgaHR0cDovL2RhbmlzYWRlc2lnbmVyLmNvbS9ibG9nL2ZsZXhib3gtY2xlYXItZml4LXBzZXVkby1lbGVtZW50cy8gRmxleGJveCBmaXhcbkBtaXhpbiBjbGVhcmZpeCB7XG4gICY6OmJlZm9yZSxcbiAgJjo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGNvbnRlbnQ6ICcgJztcblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgIG9yZGVyOiAxO1xuICAgIH1cbiAgfVxuXG4gICY6OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDtcbiAgfVxufVxuXG4vLy8gQWRkcyBDU1MgZm9yIGEgXCJxdWFudGl0eSBxdWVyeVwiIHNlbGVjdG9yIHRoYXQgYXV0b21hdGljYWxseSBzaXplcyBlbGVtZW50cyBiYXNlZCBvbiBob3cgbWFueSB0aGVyZSBhcmUgaW5zaWRlIGEgY29udGFpbmVyLlxuLy8vIEBsaW5rIGh0dHA6Ly9hbGlzdGFwYXJ0LmNvbS9hcnRpY2xlL3F1YW50aXR5LXF1ZXJpZXMtZm9yLWNzcyBRdWFudGl0eSBRdWVyaWVzIGZvciBDU1Ncbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbWF4IC0gTWF4aW11bSBudW1iZXIgb2YgaXRlbXMgdG8gZGV0ZWN0LiBUaGUgaGlnaGVyIHRoaXMgbnVtYmVyIGlzLCB0aGUgbW9yZSBDU1MgdGhhdCdzIHJlcXVpcmVkIHRvIGNvdmVyIGVhY2ggbnVtYmVyIG9mIGl0ZW1zLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGVsZW0gW2xpXSAtIFRhZyB0byB1c2UgZm9yIHNpYmxpbmcgc2VsZWN0b3JzLlxuQG1peGluIGF1dG8td2lkdGgoJG1heCwgJGVsZW06IGxpKSB7XG4gIEBmb3IgJGkgZnJvbSAyIHRocm91Z2ggJG1heCB7XG4gICAgJjpudGgtbGFzdC1jaGlsZCgjeyRpfSk6Zmlyc3QtY2hpbGQsXG4gICAgJjpudGgtbGFzdC1jaGlsZCgjeyRpfSk6Zmlyc3QtY2hpbGQgfiAjeyRlbGVtfSB7XG4gICAgICB3aWR0aDogcGVyY2VudGFnZSgxIC8gJGkpO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gUmVtb3ZlcyB0aGUgZm9jdXMgcmluZyBhcm91bmQgYW4gZWxlbWVudCB3aGVuIGEgbW91c2UgaW5wdXQgaXMgZGV0ZWN0ZWQuXG5AbWl4aW4gZGlzYWJsZS1tb3VzZS1vdXRsaW5lIHtcbiAgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddICYge1xuICAgIG91dGxpbmU6IDA7XG4gIH1cbn1cblxuLy8vIE1ha2VzIGFuIGVsZW1lbnQgdmlzdWFsbHkgaGlkZGVuLCBidXQgc3RpbGwgYWNjZXNzaWJsZSB0byBrZXlib2FyZHMgYW5kIGFzc2lzdGl2ZSBkZXZpY2VzLlxuLy8vIEBsaW5rIGh0dHA6Ly9zbm9vay5jYS9hcmNoaXZlcy9odG1sX2FuZF9jc3MvaGlkaW5nLWNvbnRlbnQtZm9yLWFjY2Vzc2liaWxpdHkgSGlkaW5nIENvbnRlbnQgZm9yIEFjY2Vzc2liaWxpdHlcbi8vLyBAbGluayBodHRwOi8vaHVnb2dpcmF1ZGVsLmNvbS8yMDE2LzEwLzEzL2Nzcy1oaWRlLWFuZC1zZWVrL1xuQG1peGluIGVsZW1lbnQtaW52aXNpYmxlIHtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxcHg7XG4gIGhlaWdodDogMXB4O1xuICBwYWRkaW5nOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjbGlwOiByZWN0KDAsMCwwLDApO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBjbGlwLXBhdGg6IGluc2V0KDUwJSk7XG4gIGJvcmRlcjogMDtcbn1cblxuLy8vIFJldmVyc2VzIHRoZSBDU1Mgb3V0cHV0IGNyZWF0ZWQgYnkgdGhlIGBlbGVtZW50LWludmlzaWJsZSgpYCBtaXhpbi5cbkBtaXhpbiBlbGVtZW50LWludmlzaWJsZS1vZmYge1xuICBwb3NpdGlvbjogc3RhdGljICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiBhdXRvO1xuICBoZWlnaHQ6IGF1dG87XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICBjbGlwOiBhdXRvO1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICBjbGlwLXBhdGg6IG5vbmU7XG59XG5cbi8vLyBWZXJ0aWNhbGx5IGNlbnRlcnMgdGhlIGVsZW1lbnQgaW5zaWRlIG9mIGl0cyBmaXJzdCBub24tc3RhdGljIHBhcmVudCxcbi8vLyBAbGluayBodHRwOi8vd3d3LnNpdGVwb2ludC5jb20vY2VudGVyaW5nLXdpdGgtc2Fzcy8gQ2VudGVyaW5nIFdpdGggU2Fzc1xuQG1peGluIHZlcnRpY2FsLWNlbnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbn1cblxuLy8vIEhvcml6b250YWxseSBjZW50ZXJzIHRoZSBlbGVtZW50IGluc2lkZSBvZiBpdHMgZmlyc3Qgbm9uLXN0YXRpYyBwYXJlbnQsXG4vLy8gQGxpbmsgaHR0cDovL3d3dy5zaXRlcG9pbnQuY29tL2NlbnRlcmluZy13aXRoLXNhc3MvIENlbnRlcmluZyBXaXRoIFNhc3NcbkBtaXhpbiBob3Jpem9udGFsLWNlbnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG59XG5cbi8vLyBBYnNvbHV0ZWx5IGNlbnRlcnMgdGhlIGVsZW1lbnQgaW5zaWRlIG9mIGl0cyBmaXJzdCBub24tc3RhdGljIHBhcmVudCxcbi8vLyBAbGluayBodHRwOi8vd3d3LnNpdGVwb2ludC5jb20vY2VudGVyaW5nLXdpdGgtc2Fzcy8gQ2VudGVyaW5nIFdpdGggU2Fzc1xuQG1peGluIGFic29sdXRlLWNlbnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG59XG5cbi8vLyBJdGVyYXRlcyB0aHJvdWdoIGJyZWFrcG9pbnRzIGRlZmluZWQgaW4gYCRicmVha3BvaW50LWNsYXNzZXNgIGFuZCBwcmludHMgdGhlIENTUyBpbnNpZGUgdGhlIG1peGluIGF0IGVhY2ggYnJlYWtwb2ludCdzIG1lZGlhIHF1ZXJ5LiBVc2UgdGhpcyB3aXRoIHRoZSBncmlkLCBvciBhbnkgb3RoZXIgY29tcG9uZW50IHRoYXQgaGFzIHJlc3BvbnNpdmUgY2xhc3Nlcy5cbi8vL1xuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHNtYWxsIFt0cnVlXSAtIElmIGBmYWxzZWAsIHRoZSBtaXhpbiB3aWxsIHNraXAgdGhlIGBzbWFsbGAgYnJlYWtwb2ludC4gVXNlIHRoaXMgd2l0aCBjb21wb25lbnRzIHRoYXQgZG9uJ3QgcHJlZml4IGNsYXNzZXMgd2l0aCBgc21hbGwtYCwgb25seSBgbWVkaXVtLWAgYW5kIHVwLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGF1dG8taW5zZXJ0LWJyZWFrcG9pbnRzIFt0cnVlXSAtIElmIGBmYWxzZWAsIHRoZSBtaXhpbiB3aWxsIGl0ZXJhdGUgb3ZlciBicmVha3BvaW50cyB3aXRob3V0IGRvaW5nIHRoZSBtZWRpYSBxdWVyeSBpdHNlbGYuIFVzZWZ1bCBmb3IgbW9yZSBjb21wbGV4IG1lZGlhIHF1ZXJ5IGdlbmVyYXRpb24gYXMgaW4gdGhlIG1hcmdpbiBncmlkLlxuQG1peGluIC16Zi1lYWNoLWJyZWFrcG9pbnQoJHNtYWxsOiB0cnVlLCAkYXV0by1pbnNlcnQtYnJlYWtwb2ludHM6IHRydWUpIHtcbiAgJGxpc3Q6ICRicmVha3BvaW50LWNsYXNzZXM7XG5cbiAgQGlmIG5vdCAkc21hbGwge1xuICAgICRsaXN0OiBzbC1yZW1vdmUoJGxpc3QsICQtemYtemVyby1icmVha3BvaW50KTtcbiAgfVxuXG4gIEBlYWNoICRuYW1lIGluICRsaXN0IHtcbiAgICAkLXpmLXNpemU6ICRuYW1lICFnbG9iYWw7XG5cbiAgICBAaWYgJGF1dG8taW5zZXJ0LWJyZWFrcG9pbnRzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gR2VuZXJhdGUgdGhlIGBAY29udGVudGAgcGFzc2VkIHRvIHRoZSBtaXhpbiB3aXRoIGEgdmFsdWUgYCQtemYtYnAtdmFsdWVgIHJlbGF0ZWQgdG8gYSBicmVha3BvaW50LCBkZXBlbmRpbmcgb24gdGhlIGAkbmFtZWAgcGFyYW1ldGVyOlxuLy8vIC0gRm9yIGEgc2luZ2xlIHZhbHVlLCBgJC16Zi1icC12YWx1ZWAgaXMgdGhpcyB2YWx1ZS5cbi8vLyAtIEZvciBhIGJyZWFrcG9pbnQgbmFtZSwgYCQtemYtYnAtdmFsdWVgIGlzIHRoZSBjb3JyZXNwb25kaW5nIGJyZWFrcG9pbnQgdmFsdWUgaW4gYCRtYXBgLlxuLy8vIC0gRm9yIFwiYXV0b1wiLCBgJC16Zi1icC12YWx1ZWAgaXMgdGhlIGNvcnJlc3BvbmRpbmcgYnJlYWtwb2ludCB2YWx1ZSBpbiBgJG1hcGAgYW5kIGlzIHBhc3NlZCB0byBgQGNvbnRlbnRgLCB3aGljaCBpcyBtYWRlIHJlc3BvbnNpdmUgZm9yIGVhY2ggYnJlYWtwb2ludCBvZiBgJG1hcGAuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8QXJyYXl8S2V5d29yZH0gJG5hbWUgW2F1dG9dIC0gU2luZ2xlIHZhbHVlLCBicmVha3BvaW50IG5hbWUsIG9yIGxpc3Qgb2YgYnJlYWtwb2ludCBuYW1lcyB0byB1c2UuIFwiYXV0b1wiIGJ5IGRlZmF1bHQuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkbWFwIC0gTWFwIG9mIGJyZWFrcG9pbnRzIGFuZCB2YWx1ZXMgb3Igc2luZ2xlIHZhbHVlIHRvIHVzZS5cbkBtaXhpbiAtemYtYnJlYWtwb2ludC12YWx1ZShcbiAgJG5hbWU6IGF1dG8sXG4gICRtYXA6IG51bGxcbikge1xuICBAaWYgJG5hbWUgPT0gYXV0byBhbmQgdHlwZS1vZigkbWFwKSA9PSAnbWFwJyB7XG4gICAgLy8gXCJhdXRvXCJcbiAgICBAZWFjaCAkaywgJHYgaW4gJG1hcCB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRrKSB7XG4gICAgICAgIEBpbmNsdWRlIC16Zi1icmVha3BvaW50LXZhbHVlKCR2LCAkbWFwKSB7XG4gICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIC8vIGJyZWFrcG9pbnQgbmFtZVxuICAgIEBpZiB0eXBlLW9mKCRuYW1lKSA9PSAnc3RyaW5nJyB7XG4gICAgICAkbmFtZTogLXpmLWdldC1icC12YWwoJG1hcCwgJG5hbWUpO1xuICAgIH1cblxuICAgIC8vIGJyZWFrcG9pbnQgdmFsdWVcbiAgICAkLXpmLWJwLXZhbHVlOiAkbmFtZSAhZ2xvYmFsO1xuICAgIEBjb250ZW50O1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmdW5jdGlvbnNcbi8vLy9cblxuJC16Zi1mb250LXN0YWNrOiAoXG4gICdnZW9yZ2lhJzogKEdlb3JnaWEsIFwiVVJXIEJvb2ttYW4gTFwiLCBzZXJpZiksXG4gICdoZWx2ZXRpY2EnOiAoSGVsdmV0aWNhLCBBcmlhbCwgXCJOaW1idXMgU2FucyBMXCIsIHNhbnMtc2VyaWYpLFxuICAnbHVjaWRhLWdyYW5kZSc6IChcIkx1Y2lkYSBHcmFuZGVcIiwgXCJMdWNpZGEgU2FucyBVbmljb2RlXCIsIFwiQml0c3RyZWFtIFZlcmEgU2Fuc1wiLCBzYW5zLXNlcmlmKSxcbiAgJ21vbm9zcGFjZSc6IChcIkNvdXJpZXIgTmV3XCIsIENvdXJpZXIsIFwiTmltYnVzIFNhbnMgTFwiLCBtb25vc3BhY2UpLFxuICAnc3lzdGVtJzogKC1hcHBsZS1zeXN0ZW0sIHN5c3RlbS11aSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBcIlNlZ29lIFVJXCIsIFwiUm9ib3RvXCIsIFwiT3h5Z2VuXCIsIFwiVWJ1bnR1XCIsIFwiQ2FudGFyZWxsXCIsIFwiRmlyYSBTYW5zXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZiksXG4gICd2ZXJkYW5hJzogKFZlcmRhbmEsIEdlbmV2YSwgXCJEZWphVnUgU2Fuc1wiLCBzYW5zLXNlcmlmKSxcbik7XG5cbi8vLyBSZXR1cm4gYSBmb250IHN0YWNrIGxpc3QgZnJvbSBhIG1hcC4gRXF1aXZhbGVudCB0byBgbWFwLXNhZmUtZ2V0KCRuYW1lLCAkLXpmLWZvbnQtc3RhY2spYC5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc3RhY2sgLSBOYW1lIG9mIHRoZSBmb250IHN0YWNrLlxuLy8vIEBwYXJhbSB7TWFwfSAkbWFwIFskLXpmLWZvbnQtc3RhY2tdIC0gTWFwIG9mIGZvbnQgc3RhY2tzIHRvIHJldHJpZXZlIGEgbGlzdCBmcm9tLlxuLy8vXG4vLy8gQHJldHVybnMge0xpc3R9IEZvdW5kIGZvbnQgc3RhY2suXG5AZnVuY3Rpb24gZm9udC1zdGFjaygkc3RhY2ssICRtYXA6ICQtemYtZm9udC1zdGFjaykge1xuICBAcmV0dXJuIG1hcC1zYWZlLWdldCgkbWFwLCAkc3RhY2spO1xufVxuIiwiJHdoaXRlOiAjZmZmO1xuJGJsYWNrOiAjMDAwO1xuJHJlZDogI0ZGNzQ2OTtcbiRncmVlbjogIzQ3OWQ1YztcbiRsZWFmLWdyZWVuOiAjODFDMjRCO1xuJHBhbGUtYmx1ZTogI0RBRURGODtcbiRsaWdodC1ibHVlOiAjQThDRkQ1O1xuJGxpZ2h0LWJsdWUtaG92ZXI6IGRhcmtlbigkbGlnaHQtYmx1ZSwgMTAlKTtcbiRtZWRpdW0tYmx1ZTogI0E2QUZCQztcbiRtZWQtYmx1ZTogIzc3ODg5NjtcbiRibHVlOiAjMjQ0MDVFO1xuJGRhcmstYmx1ZTogIzIyM0E2NjtcbiRvZmYtd2hpdGU6ICNGOEY0RjI7XG4vL2dyZXlzXG4keHhsaWdodC1ncmV5OiAjZjZmNmY2O1xuJHhsaWdodC1ncmV5OiAjZDhkOGQ4O1xuJGxpZ2h0LWdyZXk6ICNhZmFmYWY7XG4kZ3JleTogIzgyODI4MjtcbiRkYXJrLWdyZXk6ICM1NjU2NTY7XG4keGRhcmstZ3JleTogIzNhM2EzYTtcbiR4eGRhcmstZ3JleTogIzIxMjEyMTtcbiRjb29sLWdyZXktbGlnaHQ6ICNFNUU4RjA7XG4kY29vbC1ncmV5LWRhcms6ICNCMkJCRDQ7XG5cbiRzdWNjZXNzLWNvbG9yOiAjNDNBQzZBICFkZWZhdWx0OyAgIC8vIHNlYS1ncmVlblxuJHdhcm5pbmctY29sb3I6ICNmMDhhMjQgIWRlZmF1bHQ7ICAgLy8gY2Fycm90XG4kZXJyb3ItY29sb3I6ICNGRjc0NjkgIWRlZmF1bHQ7ICAgLy8gcmVkXG5cbi8vIGxpZ2h0IGJsdWUgZm9yIGxpbmtzIGlzICRwcmltYXJ5LWNvbG9yXG4iLCIvKkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ2tvbnRyYXN0X2ljb25zX3YxJztcbiAgc3JjOiAgdXJsKCcvZm9udHMva29udHJhc3RfaWNvbnNfdjEuZW90P3RqZzFyaycpO1xuICBzcmM6ICB1cmwoJy9mb250cy9rb250cmFzdF9pY29uc192MS5lb3Q/dGpnMXJrI2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuICAgIHVybCgnL2ZvbnRzL2tvbnRyYXN0X2ljb25zX3YxLnR0Zj90amcxcmsnKSBmb3JtYXQoJ3RydWV0eXBlJyksXG4gICAgdXJsKCcvZm9udHMva29udHJhc3RfaWNvbnNfdjEud29mZj90amcxcmsnKSBmb3JtYXQoJ3dvZmYnKSxcbiAgICB1cmwoJy9mb250cy9rb250cmFzdF9pY29uc192MS5zdmc/dGpnMXJrI2tvbnRyYXN0X2ljb25zX3YxJykgZm9ybWF0KCdzdmcnKTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG5bY2xhc3NePVwiaWNvbi1cIl0sIFtjbGFzcyo9XCIgaWNvbi1cIl0ge1xuICAvKiB1c2UgIWltcG9ydGFudCB0byBwcmV2ZW50IGlzc3VlcyB3aXRoIGJyb3dzZXIgZXh0ZW5zaW9ucyB0aGF0IGNoYW5nZSBmb250cyAqIC9cbiAgZm9udC1mYW1pbHk6ICdrb250cmFzdF9pY29uc192MScgIWltcG9ydGFudDtcbiAgc3BlYWs6IG5vbmU7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBsaW5lLWhlaWdodDogMTtcblxuICAvKiBCZXR0ZXIgRm9udCBSZW5kZXJpbmcgPT09PT09PT09PT0gKiAvXG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xufVxuXG4uaWNvbi1hZGRfMjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkwMFwiO1xufVxuLmljb24tYWRkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTAxXCI7XG59XG4uaWNvbi1ib29raW5nczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkwMlwiO1xufVxuLmljb24tY3VzdG9tZXJzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTAzXCI7XG59XG4uaWNvbi1lZGl0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTA0XCI7XG59XG4uaWNvbi1tZW51OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTA1XCI7XG59XG4uaWNvbi1wcm9kdWN0czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkwNlwiO1xufVxuLmljb24tcXVvdGVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTA3XCI7XG59XG4uaWNvbi1zZWFyY2g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MDhcIjtcbn1cbi5pY29uLXNldHRpbmdzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTA5XCI7XG59XG4uaWNvbi10cmFuc3BvcnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MGFcIjtcbn0qL1xuXG5cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnS29udHJhc3RfaWNvbnNfdjInO1xuICBzcmM6ICB1cmwoJy9mb250cy9Lb250cmFzdF9pY29uc192Mi5lb3Q/a2VvNzE4Jyk7XG4gIHNyYzogIHVybCgnL2ZvbnRzL0tvbnRyYXN0X2ljb25zX3YyLmVvdD9rZW83MTgjaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXG4gICAgdXJsKCcvZm9udHMvS29udHJhc3RfaWNvbnNfdjIudHRmP2tlbzcxOCcpIGZvcm1hdCgndHJ1ZXR5cGUnKSxcbiAgICB1cmwoJy9mb250cy9Lb250cmFzdF9pY29uc192Mi53b2ZmP2tlbzcxOCcpIGZvcm1hdCgnd29mZicpLFxuICAgIHVybCgnL2ZvbnRzL0tvbnRyYXN0X2ljb25zX3YyLnN2Zz9rZW83MTgjS29udHJhc3RfaWNvbnNfdjInKSBmb3JtYXQoJ3N2ZycpO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG5cbltjbGFzc149XCJpY29uLVwiXSwgW2NsYXNzKj1cIiBpY29uLVwiXSB7XG4gIC8qIHVzZSAhaW1wb3J0YW50IHRvIHByZXZlbnQgaXNzdWVzIHdpdGggYnJvd3NlciBleHRlbnNpb25zIHRoYXQgY2hhbmdlIGZvbnRzICovXG4gIGZvbnQtZmFtaWx5OiAnS29udHJhc3RfaWNvbnNfdjInICFpbXBvcnRhbnQ7XG4gIHNwZWFrOiBub25lO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgLyogQmV0dGVyIEZvbnQgUmVuZGVyaW5nID09PT09PT09PT09ICovXG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xufVxuXG4uaWNvbi1hZGRfMjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkwMFwiO1xufVxuLmljb24tYWRkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTAxXCI7XG59XG4uaWNvbi1hcnJvdzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkwMlwiO1xufVxuLmljb24tYm9va2luZ3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MDNcIjtcbn1cbi5pY29uLWN1c3RvbWVyczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkwNFwiO1xufVxuLmljb24tZGFzaGJvYXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTA1XCI7XG59XG4uaWNvbi1kZWxldGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MDZcIjtcbn1cbi5pY29uLWRyb3Bkb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTA3XCI7XG59XG4uaWNvbi1lZGl0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTA4XCI7XG59XG4uaWNvbi1pbmZvOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTA5XCI7XG59XG4uaWNvbi1tZW51OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTBhXCI7XG59XG4uaWNvbi1wZGY6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MGJcIjtcbn1cbi5pY29uLXByaWNlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTBjXCI7XG59XG4uaWNvbi1wcm9kdWN0czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkwZFwiO1xufVxuLmljb24tcXVvdGVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTBlXCI7XG59XG4uaWNvbi1yZXBvcnRzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTBmXCI7XG59XG4uaWNvbi1zZWFyY2g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MTBcIjtcbn1cbi5pY29uLXNldHRpbmdzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTExXCI7XG59XG4uaWNvbi10cmFuc3BvcnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MTJcIjtcbn1cbi5pY29uLXVwZGF0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkxM1wiO1xufVxuLmljb24tdXNlcnM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MTRcIjtcbn1cbi5pY29uLXdlYnNpdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MTVcIjtcbn1cblxuXG5cblxuXG5AZm9udC1mYWNlIFxue1xuICAgIGZvbnQtZmFtaWx5OiAnU29maWFQcm8tU2VtaUJvbGQnO1xuICAgIHNyYzogdXJsKCcvZm9udHMvU29maWFQcm8tU2VtaUJvbGQuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSwgIFxuICAgICAgIHVybCgnL2ZvbnRzL1NvZmlhUHJvLVNlbWlCb2xkLm90ZicpICBmb3JtYXQoJ29wZW50eXBlJyksXG4gICAgICAgdXJsKCcvZm9udHMvU29maWFQcm8tU2VtaUJvbGQud29mZicpIGZvcm1hdCgnd29mZicpLCBcbiAgICAgICB1cmwoJy9mb250cy9Tb2ZpYVByby1TZW1pQm9sZC50dGYnKSAgZm9ybWF0KCd0cnVldHlwZScpLCBcbiAgICAgICB1cmwoJy9mb250cy9Tb2ZpYVByby1TZW1pQm9sZC5zdmcjU29maWFQcm8tU2VtaUJvbGQnKSBmb3JtYXQoJ3N2ZycpO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG5AZm9udC1mYWNlIFxue1xuICAgIGZvbnQtZmFtaWx5OiAnU29maWFQcm8tQm9sZCc7XG4gICAgc3JjOiB1cmwoJy9mb250cy9Tb2ZpYVByby1Cb2xkLmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksICBcbiAgICAgICB1cmwoJy9mb250cy9Tb2ZpYVByby1Cb2xkLm90ZicpICBmb3JtYXQoJ29wZW50eXBlJyksXG4gICAgICAgdXJsKCcvZm9udHMvU29maWFQcm8tQm9sZC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIFxuICAgICAgIHVybCgnL2ZvbnRzL1NvZmlhUHJvLUJvbGQudHRmJykgIGZvcm1hdCgndHJ1ZXR5cGUnKSwgXG4gICAgICAgdXJsKCcvZm9udHMvU29maWFQcm8tQm9sZC5zdmcjU29maWFQcm8tQm9sZCcpIGZvcm1hdCgnc3ZnJyk7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG59XG5cbkBmb250LWZhY2UgXG57XG4gICAgZm9udC1mYW1pbHk6ICdTb2ZpYVByby1VbHRyYUxpZ2h0JztcbiAgICBzcmM6IHVybCgnL2ZvbnRzL1NvZmlhUHJvLVVsdHJhTGlnaHQuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSwgIFxuICAgICAgIHVybCgnL2ZvbnRzL1NvZmlhUHJvLVVsdHJhTGlnaHQub3RmJykgIGZvcm1hdCgnb3BlbnR5cGUnKSxcbiAgICAgICB1cmwoJy9mb250cy9Tb2ZpYVByby1VbHRyYUxpZ2h0LndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgXG4gICAgICAgdXJsKCcvZm9udHMvU29maWFQcm8tVWx0cmFMaWdodC50dGYnKSAgZm9ybWF0KCd0cnVldHlwZScpLCBcbiAgICAgICB1cmwoJy9mb250cy9Tb2ZpYVByby1VbHRyYUxpZ2h0LnN2ZyNTb2ZpYVByby1VbHRyYUxpZ2h0JykgZm9ybWF0KCdzdmcnKTtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cblxuQGZvbnQtZmFjZSBcbntcbiAgICBmb250LWZhbWlseTogJ1NvZmlhUHJvLUxpZ2h0JztcbiAgICBzcmM6IHVybCgnL2ZvbnRzL1NvZmlhUHJvLUxpZ2h0LmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksICBcbiAgICAgICB1cmwoJy9mb250cy9Tb2ZpYVByby1MaWdodC5vdGYnKSAgZm9ybWF0KCdvcGVudHlwZScpLFxuICAgICAgIHVybCgnL2ZvbnRzL1NvZmlhUHJvLUxpZ2h0LndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgXG4gICAgICAgdXJsKCcvZm9udHMvU29maWFQcm8tTGlnaHQudHRmJykgIGZvcm1hdCgndHJ1ZXR5cGUnKSwgXG4gICAgICAgdXJsKCcvZm9udHMvU29maWFQcm8tTGlnaHQuc3ZnI1NvZmlhUHJvLUxpZ2h0JykgZm9ybWF0KCdzdmcnKTtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cblxuQGZvbnQtZmFjZSBcbntcbiAgICBmb250LWZhbWlseTogJ1NvZmlhUHJvLUV4dHJhTGlnaHQnO1xuICAgIHNyYzogdXJsKCcvZm9udHMvU29maWFQcm8tRXh0cmFMaWdodC5lb3Q/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLCAgXG4gICAgICAgdXJsKCcvZm9udHMvU29maWFQcm8tRXh0cmFMaWdodC5vdGYnKSAgZm9ybWF0KCdvcGVudHlwZScpLFxuICAgICAgIHVybCgnL2ZvbnRzL1NvZmlhUHJvLUV4dHJhTGlnaHQud29mZicpIGZvcm1hdCgnd29mZicpLCBcbiAgICAgICB1cmwoJy9mb250cy9Tb2ZpYVByby1FeHRyYUxpZ2h0LnR0ZicpICBmb3JtYXQoJ3RydWV0eXBlJyksIFxuICAgICAgIHVybCgnL2ZvbnRzL1NvZmlhUHJvLUV4dHJhTGlnaHQuc3ZnI1NvZmlhUHJvLUV4dHJhTGlnaHQnKSBmb3JtYXQoJ3N2ZycpO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG5AZm9udC1mYWNlIFxue1xuICAgIGZvbnQtZmFtaWx5OiAnU29maWFNZWRpdW0nO1xuICAgIHNyYzogdXJsKCcvZm9udHMvU29maWFNZWRpdW0uZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSwgIFxuICAgICAgIHVybCgnL2ZvbnRzL1NvZmlhTWVkaXVtLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgXG4gICAgICAgdXJsKCcvZm9udHMvU29maWFNZWRpdW0udHRmJykgIGZvcm1hdCgndHJ1ZXR5cGUnKSwgXG4gICAgICAgdXJsKCcvZm9udHMvU29maWFNZWRpdW0uc3ZnIy4nKSBmb3JtYXQoJ3N2ZycpO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuIiwiQG1peGluIGJvcmRlci1yYWRpdXMoJHJhZGl1cykge1xuICBcdC13ZWJraXQtYm9yZGVyLXJhZGl1czogJHJhZGl1cztcbiAgXHRib3JkZXItcmFkaXVzOiAkcmFkaXVzO1xuICBcdGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG59XG5cbkBtaXhpbiBib3JkZXItdG9wLXJhZGl1cygkcmFkaXVzKSB7XG4gIFx0LXdlYmtpdC1ib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogJHJhZGl1cztcbiAgXHRib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogJHJhZGl1cztcbiAgIFx0LXdlYmtpdC1ib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkcmFkaXVzO1xuICAgXHRib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkcmFkaXVzO1xuICAgXHRiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xufVxuXG5AbWl4aW4gYm9yZGVyLXJpZ2h0LXJhZGl1cygkcmFkaXVzKSB7XG4gIFx0LXdlYmtpdC1ib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogJHJhZGl1cztcbiAgXHRib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogJHJhZGl1cztcbiAgICAtd2Via2l0LWJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkcmFkaXVzO1xuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkcmFkaXVzO1xuICAgIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG59XG5cbkBtaXhpbiBib3JkZXItYm90dG9tLXJhZGl1cygkcmFkaXVzKSB7XG4gIFx0LXdlYmtpdC1ib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogJHJhZGl1cztcbiAgXHRib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogJHJhZGl1cztcbiAgIFx0LXdlYmtpdC1ib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAkcmFkaXVzO1xuICAgXHRib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAkcmFkaXVzO1xuICAgXHRiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xufVxuXG5AbWl4aW4gYm9yZGVyLWxlZnQtcmFkaXVzKCRyYWRpdXMpIHtcbiAgXHQtd2Via2l0LWJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICRyYWRpdXM7XG4gIFx0Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogJHJhZGl1cztcbiAgICAtd2Via2l0LWJvcmRlci10b3AtbGVmdC1yYWRpdXM6ICRyYWRpdXM7XG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogJHJhZGl1cztcbiAgICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xufVxuXG5AbWl4aW4gcGxhY2Vob2xkZXIgXG57XG4gICAgJjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciBcbiAgICB7ICBcbiAgICAgICAgQGNvbnRlbnQ7IFxuICAgIH1cblxuICAgICY6LW1vei1wbGFjZWhvbGRlciAgICAgICAgICAgXG4gICAgeyAgXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cblxuICAgICY6Oi1tb3otcGxhY2Vob2xkZXIgICAgICAgICAgXG4gICAgeyAgXG4gICAgICAgIEBjb250ZW50OyBcbiAgICB9XG5cbiAgICAmOi1tcy1pbnB1dC1wbGFjZWhvbGRlciAgICAgIFxuICAgIHsgIFxuICAgICAgICBAY29udGVudDsgXG4gICAgfSBcbn0iLCJcblxuLnVpLW1lbnUge1xuICAgIC5hdXRvX19jb21wbGV0ZV9fcm93X191c2VyIHtcbiAgICAgICAgcGFkZGluZzogMTBweCAwIDVweCAxMnB4O1xuICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgICAgICBib3JkZXItY29sb3I6ICNlYWVhZWE7XG4gICAgICAgIGJvcmRlci13aWR0aDogMnB4IDJweCAycHggMnB4O1xuICAgICAgICBtYXJnaW4tdG9wOiAtMnB4O1xuICAgICAgICBwIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICAgICAgJi51aS1zdGF0ZS1hY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGxpZ2h0LWJsdWU7XG4gICAgICAgIH1cbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cbn1cbi51aS1kaWFsb2cge1xuICAgIHotaW5kZXg6MTE7XG59XG5cblxuIiwiaHRtbCxcbmJvZHlcbntcblx0bWluLWhlaWdodDogMTAwJTtcbn1cblxuXG5ib2R5XG57XG5cdG1hcmdpbi1ib3R0b206IDA7XG5cdGJhY2tncm91bmQ6ICRvZmYtd2hpdGU7XG5cdGZvbnQtZmFtaWx5OiAnU29maWFQcm8tTGlnaHQnO1xuXHQvLyBvdmVyZmxvdy15OiBzY3JvbGwgIWltcG9ydGFudDtcblx0Zm9udC1zaXplOiAxNnB4O1xufVxuXG4uYWRtaW4taGVhZGVyIHtcblx0LmxvZ28ge1xuXHRcdG1hcmdpbi1sZWZ0OiAxcmVtO1xuXHR9XG59XG5cblxuXG4jbWFpbl9fY29udGVudFxue1xuXHRoZWlnaHQ6IDEwMCU7XG5cdHBhZGRpbmctdG9wOiByZW0tY2FsYyg4MCk7XG5cdEBpbmNsdWRlIGZsZXgtZ3JpZC1yb3coJ2NvbGxhcHNlJywnZXhwYW5kJyk7XG5cdGJhY2tncm91bmQ6ICRvZmYtd2hpdGU7XG5cblxuXHQjY29udGVudF9fYmxvY2tcblx0e1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdHBhZGRpbmctbGVmdDogcmVtLWNhbGMoMTAwKTtcblx0XHRwYWRkaW5nLWJvdHRvbTogcmVtLWNhbGMoNTApO1xuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSlcblx0XHR7XG5cdFx0XHRwYWRkaW5nLWxlZnQ6IHJlbS1jYWxjKDIwMCk7XG5cdFx0fVxuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCh4bGFyZ2UpXG5cdFx0e1xuXHRcdFx0cGFkZGluZy1sZWZ0OiByZW0tY2FsYygyNzApO1xuXHRcdH1cblxuXHRcdC5pbm5lcl9fY29udGVudF9fYmxvY2tcblx0XHR7XG5cdFx0XHRwYWRkaW5nLWJvdHRvbTogcmVtLWNhbGMoMTAwKTtcblx0XHRcdHdpZHRoOiBhdXRvO1xuXHRcdFx0bWF4LXdpZHRoOiBub25lO1xuXHRcdFx0cGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07XG5cdFx0XHRwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG5cdFx0XHQmID4gLnJvdyB7XG5cdFx0XHRcdCYgPiAuY29sdW1uLCAmID4gLmNvbHVtbnMge1xuXHRcdFx0XHRcdHBhZGRpbmctbGVmdDogMDtcblx0XHRcdFx0XHRwYWRkaW5nLXJpZ2h0OiAwO1xuXHRcdFx0XHRcdCYucGFkLWxlZnQge1xuXHRcdFx0XHRcdFx0cGFkZGluZy1sZWZ0OiAyNXB4O1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQubWlzc2luZyB7XG5cdFx0XHRcdG1hcmdpbi1ib3R0b206IDIwcHg7XG5cdFx0XHRcdD4gYVxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0bWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMTApO1xuXG5cdFx0XHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSB1cClcblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRtYXJnaW4tYm90dG9tOiByZW0tY2FsYygyMCk7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0JjpsYXN0LWNoaWxkXG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMHB4O1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHQuYnV0dG9uX19pbmxpbmVfX2Jsb2NrIHtcblx0XHRcdFx0XHRwYWRkaW5nLXRvcDogMTBweDtcblx0XHRcdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBkb3duKSB7XG5cdFx0XHRcdFx0XHRwYWRkaW5nLXRvcDogMTVweDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0I3NpZ25hdHVyZS12aWV3XG5cdFx0XHR7XG5cdFx0XHRcdG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDEwKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQucm93XG5cdFx0e1xuXHRcdFx0QGluY2x1ZGUgZmxleC1ncmlkLXJvdygnY29sbGFwc2UnLCdleHBhbmQnKTtcblx0XHR9XG5cblx0XHRoMVxuXHRcdHtcblx0XHRcdG1hcmdpbjogMDtcblx0XHRcdGNvbG9yOiAkYmx1ZTtcblx0XHRcdGZvbnQtZmFtaWx5OiAnU29maWFQcm8tTGlnaHQnO1xuXHRcdFx0Zm9udC1zaXplOiByZW0tY2FsYygxOCk7XG5cdFx0fVxuXHR9XG59XG5cblxuXG4vLyBPdmVycmlkZSBmb3Igc2lkZWJhclxuYm9keVxue1xuXHQmLmhhc19fc2lkZWJhclxuXHR7XG5cdFx0I21haW5fX2NvbnRlbnRcblx0XHR7XG5cdFx0XHQjY29udGVudF9fYmxvY2tcblx0XHRcdHtcblx0XHRcdFx0Lypcblx0XHRcdFx0cGFkZGluZzogMCAwIHJlbS1jYWxjKDMwKSByZW0tY2FsYygyMjUpO1xuXG5cdFx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoeGxhcmdlIHVwKVxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0cGFkZGluZzogMCAwIHJlbS1jYWxjKDMwKSByZW0tY2FsYygzMDYpO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gb25seSlcblx0XHRcdFx0e1xuXHRcdFx0XHRcdHBhZGRpbmctcmlnaHQ6IDBweCAhaW1wb3J0YW50O1xuXHRcdFx0XHR9XG5cdFx0XHRcdCovXG5cblx0XHRcdFx0LmlubmVyX19jb250ZW50X19ibG9ja1xuXHRcdFx0XHR7XG5cdFx0XHRcdFx0cGFkZGluZy1ib3R0b206IDA7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQuc2Nyb2xsYWJsZVxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0cGFkZGluZy1ib3R0b206IHJlbS1jYWxjKDUwKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXG5cdFx0Ly8gU2lkZWJhciBvdmVycmlkZVxuXHRcdC5zaWRlX19iYXJcblx0XHR7XG5cdFx0XHQmLnN1bW1hcnlfX2JhclxuXHRcdFx0e1xuXHRcdFx0XHRtYXJnaW4tdG9wOiAwO1xuXG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbi8vaGFuZHkgY2xhc3Nlc1xuXG4vLyBvdmVyZmxvdy14IHNjcm9sbCwgYXQgbGVhc3QgdGVtcG9yYXJpbHksIGFzIGEgZml4IGZvciB0YWJsZXMgdGhhdCBkZW1hbmQgbW9yZSB3aWR0aCB0aGFuIHRoYXQgd2hpY2ggdGhlIHNjcmVlbiBzaXplIG9mZmVycy5cbi5jb250YWluc19fd2lkZV9fdGFibGVcbntcblx0b3ZlcmZsb3cteDogc2Nyb2xsO1xuXHRvdmVyZmxvdy15OiBoaWRkZW47XG59XG5cbi5ib3JkZXJfX3N0YW5kYXJkXG57XG5cdGJvcmRlcjogMnB4IHNvbGlkICRibHVlO1xufVxuXG4ubm9fX2JhY2tncm91bmRcbntcblx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi5oaWRkZW5cbntcblx0dmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG4uZGlzcGxheV9fbm9uZVxue1xuXHRkaXNwbGF5OiBub25lO1xufVxuXG4udGV4dF9fYWxpZ25fX2xlZnRcbntcblx0dGV4dC1hbGlnbjogbGVmdDtcbn1cblxuLnRleHRfX2FsaWduX19yaWdodFxue1xuXHR0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuXG5oMSwgaDIsIGgzLCBoNCwgaDUsIHAsIGxpLCB0ZCB7XG5cdGZvbnQtZmFtaWx5OiAnU29maWFQcm8tTGlnaHQnO1xufVxuaDEge1xuXHRmb250LXNpemU6IDQ4cHg7XG5cdCNtYWluX19jb250ZW50ICNjb250ZW50X19ibG9jayAmIHtcblx0XHRmb250LXNpemU6IDE4cHg7XG5cdH1cbn1cbmgyIHtcblx0Zm9udC1zaXplOiA0MHB4O1xufVxuaDMge1xuXHRmb250LXNpemU6IDMxcHg7XG59XG5oNCB7XG5cdGZvbnQtc2l6ZTogMjVweDtcbn1cbnAsIGxpLCB0ZCwgdGgsIC50YWJsZV9fbGlzdCB0aGVhZCB0ciB0aCwgLnRhYmxlX19saXN0IHRib2R5IHRyIHRkIHtcblx0Zm9udC1zaXplOiAxNHB4O1xuXHRsaW5lLWhlaWdodDogMS4zO1xuXHQmLnNtYWxsLXAsIC5zbWFsbC1wICYge1xuXHRcdGZvbnQtc2l6ZTogMTNweDtcblx0fVxuXHQmLmxnLXAsIC5sZy1wICYge1xuXHRcdGZvbnQtc2l6ZTogMTZweDtcblx0fVxufVxuQG1lZGlhIChtYXgtd2lkdGg6ICRtb2JpbGUtbWF4LXdpZHRoKSB7XG5cdGJvZHkge1xuXHRcdGZvbnQtc2l6ZTogMTJweDtcblx0fVxuXHRoMSB7XG5cdFx0Zm9udC1zaXplOiAyM3B4O1xuXHRcdCNtYWluX19jb250ZW50ICNjb250ZW50X19ibG9jayAmIHtcblx0XHRcdGZvbnQtc2l6ZTogMTVweDtcblx0XHR9XG5cdH1cblx0aDIge1xuXHRcdGZvbnQtc2l6ZTogMjBweDtcblx0fVxuXHRoMyB7XG5cdFx0Zm9udC1zaXplOiAxN3B4O1xuXHR9XG5cdGg0IHtcblx0XHRmb250LXNpemU6IDE0cHg7XG5cdH1cblx0cCwgbGksIHRkLCB0aCwgLnRhYmxlX19saXN0IHRoZWFkIHRyIHRoLCAudGFibGVfX2xpc3QgdGJvZHkgdHIgdGQsIC5idXR0b25fX2xhcmdlX19ibHVlIHtcblx0XHRmb250LXNpemU6IDExcHg7XG5cdFx0Ji5zbWFsbC1wLCAuc21hbGwtcCAmIHtcblx0XHRcdGZvbnQtc2l6ZTogMTBweDtcblx0XHR9XG5cdFx0Ji5sZy1wLCAubGctcCAmIHtcblx0XHRcdGZvbnQtc2l6ZTogMTRweDtcblx0XHR9XG5cdH1cbn1cblxuLnNwYWNlci0yMCB7XG5cdHdpZHRoOiAxMDAlO1xuXHRjbGVhcjogYm90aDtcblx0aGVpZ2h0OiAyMHB4O1xufVxuLnNwYWNlci01MCB7XG5cdHdpZHRoOiAxMDAlO1xuXHRjbGVhcjogYm90aDtcblx0aGVpZ2h0OiA1MHB4O1xufVxuXG5cblxuaW5wdXRbdHlwZT0nc3VibWl0J10ge1xuXHRjdXJzb3I6IHBvaW50ZXI7XG59XG5cblxuXG5cbi5mbGV4LWNlbnRlciB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0aGVpZ2h0OiAxMDAlO1xuXHQuZmxleC1jZW50ZXItaXRlbSB7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdHdpZHRoOiAzMjBweDtcblx0XHRtYXJnaW46IDAgYXV0byA1MHB4O1xuXHRcdG1heC13aWR0aDogOTAlO1xuXHR9XG59XG5cblxuLmZsZXgtc3BhY2ViZXR3ZWVuIHtcblx0ZGlzcGxheTogZmxleDtcblx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuLmZsZXgtaXRlbSB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLm1lbnUtdHJpZ2dlciB7XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0cGFkZGluZzogNXB4O1xuXHQuYnV0dG9uX19ncm91cCB7XG5cdFx0bWFyZ2luOiAwIGF1dG87XG5cdFx0cG9zaXRpb246IHN0YXRpYztcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0LmJ1dHRvbl9faW5saW5lX19ibG9jayB7XG5cdFx0XHRwYWRkaW5nOiAxMHB4IDIzcHggNHB4ICFpbXBvcnRhbnQ7XG5cdFx0XHRoZWlnaHQ6IDQ1cHg7XG5cdFx0XHQuaWNvbiB7XG5cdFx0XHRcdCY6YmVmb3JlIHtcblx0XHRcdFx0XHRmb250LXNpemU6IDE3cHg7XG5cdFx0XHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0XHRcdHRvcDogMnB4O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0LnBvcHVwLW1lbnUge1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRkaXNwbGF5OiBub25lO1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICRibHVlO1xuXHRcdHBhZGRpbmc6IDEwcHggMTVweDtcblx0XHR3aWR0aDogMjAwcHg7XG5cdFx0ei1pbmRleDogMTA7XG5cdFx0Ji5zaG93aW5nIHtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdH1cblx0XHRhIHtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0cGFkZGluZzogOHB4IDE1cHg7XG5cdFx0fVxuXHRcdGE6bm90KC5ub3QtYWN0aXZlKSB7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdGNvbG9yOiAkbGlnaHQtYmx1ZTtcblx0XHRcdHRyYW5zaXRpb246IGFsbCAwLjFzIGxpbmVhcjtcblx0XHRcdGJvcmRlci1yYWRpdXM6IDNweDtcblx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHRjb2xvcjogI2ZmZjtcblx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbigkYmx1ZSwgNSUpO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRhLm5vdC1hY3RpdmUge1xuXHRcdFx0Y29sb3I6IG1peCgkbGlnaHQtYmx1ZSwgJGJsdWUsIDkwJSk7XG5cdFx0fVxuXHR9XG59XG5cbi5idXR0b25fX2lubGluZV9fYmxvY2sgKyAubWVudS10cmlnZ2VyIHtcblx0bWFyZ2luLWxlZnQ6IDEycHg7XG59XG5cblxuW2NsYXNzKj1cImNvbHVtblwiXStbY2xhc3MqPVwiY29sdW1uXCJdOmxhc3QtY2hpbGQge1xuXHRmbG9hdDogbGVmdDtcbn1cblxuXG4uZGlzcGxheS1ub25lIHtcblx0ZGlzcGxheTogbm9uZTtcbn1cblxuLnBhZGRlZC13aGl0ZS1yZWdpb24ge1xuXHRwYWRkaW5nOiAxNXB4O1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuXHR1bC5hY2NvcmRpb24ge1xuXHRcdGxpLmFjY29yZGlvbi1pdGVtIHtcblx0XHRcdC5hY2NvcmRpb24tY2xpY2tsaW5lIHt9XG5cdFx0XHQuYWNjb3JkaW9uLWNvbnRlbnQge1xuXHRcdFx0XHQuY2VsbC1pbm5lciB7XG5cdFx0XHRcdFx0Ym9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICNkOWVhZWM7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiA1MHB4O1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuXHRcdFx0XHRcdC5pbWctY29udGFpbiB7XG5cdFx0XHRcdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHRcdFx0XHQuaG92ZXItYnV0dG9uIHtcblx0XHRcdFx0XHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHRcdFx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHRcdFx0XHR0b3A6IDVweDtcblx0XHRcdFx0XHRcdFx0cmlnaHQ6IDVweDtcblx0XHRcdFx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcblx0XHRcdFx0XHRcdFx0Ym9yZGVyLXJhZGl1czogOTlweDtcblx0XHRcdFx0XHRcdFx0Ym94LXNoYWRvdzogMCAwIDJweCAycHggI2ZmZjtcblx0XHRcdFx0XHRcdFx0Lmljb246YmVmb3JlIHtcblx0XHRcdFx0XHRcdFx0XHRmb250LXNpemU6IDMwcHg7XG5cdFx0XHRcdFx0XHRcdFx0bGluZS1oZWlnaHQ6IDAuOTtcblx0XHRcdFx0XHRcdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHRcdFx0XHRcdFx0dG9wOiAzcHg7XG5cdFx0XHRcdFx0XHRcdFx0dHJhbnNpdGlvbjogY29sb3IgMC4xcyBsaW5lYXI7XG5cdFx0XHRcdFx0XHRcdFx0Y29sb3I6ICRsaWdodC1ibHVlO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdC5iZWxvdy1pbWcge1xuXHRcdFx0XHRcdFx0aGVpZ2h0OiA4MHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgaDQge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdFx0XHQuaG92ZXItYnV0dG9uIHtcblx0XHRcdFx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdFx0XHRcdCY6aG92ZXIgLmljb246YmVmb3JlIHtcblx0XHRcdFx0XHRcdFx0XHRjb2xvcjogIzIyMjtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cbiAgICAgICAgICAgICAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDExMDBweCkge1xuXHRcdFx0XHRcdFx0LmltZy1jb250YWluIHtcblx0XHRcdFx0XHRcdFx0LmhvdmVyLWJ1dHRvbiB7XG5cdFx0XHRcdFx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdFx0XHRcdFx0Lmljb246YmVmb3JlIHtcblx0XHRcdFx0XHRcdFx0XHRcdGNvbG9yOiAjMjIyO1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuICAgICAgICAgICAgICAgICAgICB9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblx0Ji50d28tdGhpcmRzIHtcblx0XHR3aWR0aDogNzAlO1xuXHRcdGZsb2F0OiBsZWZ0O1xuXHR9XG59XG4ucmlnaHQtb2YtcGFkZGVkLXdoaXRlIHtcblx0ZmxvYXQ6IGxlZnQ7XG5cdHdpZHRoOiBjYWxjKDMwJSAtIDIwcHgpO1xuXHRtYXJnaW4tbGVmdDogMjBweDtcblx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0cGFkZGluZzogMTVweDtcblx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcblxuXHR0YWJsZSB7XG5cdFx0bWFyZ2luLXRvcDogMTBweDtcblx0XHR0ciB7XG5cdFx0XHR0ZCB7XG5cdFx0XHRcdHZlcnRpY2FsLWFsaWduOiB0b3A7XG5cdFx0XHRcdHBhZGRpbmctYm90dG9tOiA4cHg7XG5cdFx0XHRcdCY6Zmlyc3QtY2hpbGQge1xuXHRcdFx0XHRcdGRpc3BsYXk6IHRhYmxlLWNlbGw7XG5cdFx0XHRcdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0XHRcdFx0d2lkdGg6IDEyMHB4O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHQmOm50aC1jaGlsZChldmVuKSB7XG5cdFx0XHRcdGJhY2tncm91bmQ6ICNmZmY7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbi5jb2x1bW46bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSwgLmNvbHVtbnM6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIGZsb2F0OiBsZWZ0O1xufVxuXG5cblxuXG5cblxuXG4iLCIuYWRtaW4taGVhZGVyXG57XG5cdGhlaWdodDogcmVtLWNhbGMoODApO1xuXHRwYWRkaW5nLWxlZnQ6IHJlbS1jYWxjKDE1KTtcblx0cGFkZGluZy1yaWdodDogcmVtLWNhbGMoMTUpO1xuXHRiYWNrZ3JvdW5kOiAkd2hpdGU7XG5cdGJveC1zaGFkb3c6IDAgM3B4IDNweCByZ2JhKCRibGFjaywgMC4xKTtcblx0cG9zaXRpb246IGZpeGVkO1xuXHRsZWZ0OiAwO1xuXHR0b3A6IDA7XG5cdHJpZ2h0OiAwO1xuXHR6LWluZGV4OiAxMDtcblxuXG5cdC5yb3dcblx0e1xuXHRcdGhlaWdodDogcmVtLWNhbGMoODApO1xuXHRcdEBpbmNsdWRlIGZsZXgtZ3JpZC1yb3coJ2NvbGxhcHNlJywnZXhwYW5kJyk7XG5cdH1cblxuXG5cdC5sb2dvXG5cdHtcblx0XHR3aWR0aDogcmVtLWNhbGMoMTQwKTtcblx0XHRjb2xvcjogJGJsdWU7XG5cdH1cbn0iLCIiLCIjdG9wX19uYXZpZ2F0aW9uXG57XG5cdHVsXG5cdHtcblx0XHRsaXN0LXN0eWxlOiBub25lO1xuXHRcdG1hcmdpbjogMDtcblx0XHRwYWRkaW5nOiAwO1xuXHRcdGZvbnQtc2l6ZTogMDtcblx0XHRmbG9hdDogcmlnaHQ7XG5cblx0XHRsaVxuXHRcdHtcblx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuXHRcdFx0YVxuXHRcdFx0e1xuXHRcdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHRcdHBhZGRpbmc6IHJlbS1jYWxjKDcpIHJlbS1jYWxjKDIwKSByZW0tY2FsYyg2KTtcblx0XHRcdFx0Ym9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG5cdFx0XHRcdGNvbG9yOiAkZGFyay1ibHVlO1xuXHRcdFx0XHRmb250LXNpemU6IHJlbS1jYWxjKDEzKTtcblxuXHRcdFx0XHQmLmxvZ291dFxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0bWFyZ2luLWxlZnQ6IHJlbS1jYWxjKDEwKTtcblx0XHRcdFx0XHRwYWRkaW5nOiByZW0tY2FsYyg5KSByZW0tY2FsYygzMCkgcmVtLWNhbGMoNSk7XG5cdFx0XHRcdFx0Ym9yZGVyOiAycHggc29saWQgJGxpZ2h0LWJsdWU7XG5cdFx0XHRcdFx0Ym9yZGVyLXJhZGl1czogMjhweDtcblx0XHRcdFx0XHR0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMnMgbGluZWFyO1xuXHRcdFx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogbWl4KCRsaWdodC1ibHVlLCAjZmZmLCAyMCUpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdHNwYW5cblx0XHRcdFx0e1xuXHRcdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdFx0XHR3aWR0aDogcmVtLWNhbGMoMjApO1xuXHRcdFx0XHRcdGhlaWdodDogcmVtLWNhbGMoMjApO1xuXHRcdFx0XHRcdG1hcmdpbi1sZWZ0OiByZW0tY2FsYyg0KTtcblx0XHRcdFx0XHRib3JkZXI6IDJweCBzb2xpZCAkcmVkO1xuXHRcdFx0XHRcdGJvcmRlci1yYWRpdXM6IDUwJTtcblx0XHRcdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHRcdFx0bGluZS1oZWlnaHQ6IHJlbS1jYWxjKDE4KTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG5cbiNtYWluX19uYXZpZ2F0aW9uIHtcblx0d2lkdGg6IHJlbS1jYWxjKDEwMCk7XG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHR3aWR0aDogcmVtLWNhbGMoMjAwKTtcblx0fVxuXHRAaW5jbHVkZSBicmVha3BvaW50KHhsYXJnZSkge1xuXHRcdHdpZHRoOiByZW0tY2FsYygyNzApXG5cdH1cblx0cGFkZGluZy10b3A6IHJlbS1jYWxjKDgwKTtcblx0YmFja2dyb3VuZDogJGJsdWU7XG5cdHBvc2l0aW9uOiBmaXhlZDtcblx0bGVmdDogMDtcblx0dG9wOiAwO1xuXHRib3R0b206IDA7XG5cdHotaW5kZXg6IDE7XG5cdHVsIHtcblx0XHRsaXN0LXN0eWxlOiBub25lO1xuXHRcdG1hcmdpbjogMDtcblx0XHRwYWRkaW5nOiByZW0tY2FsYygyMCkgcmVtLWNhbGMoMTUpO1xuXHRcdGxpIHtcblx0XHRcdG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDE1KTtcblx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIGRvd24pIHtcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMTgpO1xuXHRcdFx0fVxuXHRcdFx0Lmxpbmsge1xuXHRcdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0Ly9oZWlnaHQ6IHJlbS1jYWxjKDQwKTtcblx0XHRcdFx0cGFkZGluZzogMCByZW0tY2FsYyg4KSAwIDA7XG5cdFx0XHRcdEBleHRlbmQgLmFsaWduLW1pZGRsZTtcblx0XHRcdFx0Y29sb3I6ICRsaWdodC1ibHVlO1xuXHRcdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBkb3duKSB7XG5cdFx0XHRcdFx0cGFkZGluZzogMHB4O1x0XG5cdFx0XHRcdH1cblx0XHRcdFx0Ji5hY3RpdmUge1xuXHRcdFx0XHRcdGNvbG9yOiAkd2hpdGU7XG5cdFx0XHRcdH1cblx0XHRcdFx0YSB7XG5cdFx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdFx0Y29sb3I6ICRsaWdodC1ibHVlO1xuXHRcdFx0XHRcdHRyYW5zaXRpb246IGNvbG9yIDAuMnMgbGluZWFyO1xuXHRcdFx0XHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoMTYpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdC5pY29uIHtcblx0XHRcdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0XHRcdHdpZHRoOiA1MHB4O1xuXHRcdFx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0XHRcdFx0ZmxleC1zaHJpbms6IDA7XG5cdFx0XHRcdFx0QGV4dGVuZCAuYWxpZ24tY2VudGVyO1xuXHRcdFx0XHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoMjApO1xuXHRcdFx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIGRvd24pIHtcblx0XHRcdFx0XHRcdG1hcmdpbjogYXV0bztcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0YSB7XG5cdFx0XHRcdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBkb3duKVxuXHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRmb250LXNpemU6IHJlbS1jYWxjKDMyKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdFx0LnRleHQge1xuXHRcdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdFx0XHQtd2Via2l0LWJveC1mbGV4OiAxO1xuXHRcdFx0XHRcdGZsZXgtZ3JvdzogMTtcblx0XHRcdFx0XHRsaW5lLWhlaWdodDogcmVtLWNhbGMoNDApO1xuXHRcdFx0XHRcdC5zZW8ge1xuXHRcdFx0XHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0XHRcdFx0ZmxvYXQ6IHJpZ2h0O1xuXHRcdFx0XHRcdFx0Zm9udC1zaXplOiByZW0tY2FsYygxMSk7XG5cdFx0XHRcdFx0XHRsaW5lLWhlaWdodDogcmVtLWNhbGMoNDApO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRzcGFuIHtcblx0XHRcdFx0XHRcdGZsb2F0OiByaWdodDtcblx0XHRcdFx0XHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpO1xuXHRcdFx0XHRcdFx0bGluZS1oZWlnaHQ6IHJlbS1jYWxjKDQwKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdFx0dHJhbnNpdGlvbjogY29sb3IgMC4ycyBsaW5lYXI7XG5cdFx0XHRcdCY6aG92ZXIsXG5cdFx0XHRcdCYuYWN0aXZlIHtcblx0XHRcdFx0XHRjb2xvcjogJHdoaXRlO1xuXHRcdFx0XHRcdGFcblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRjb2xvcjogJHdoaXRlO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBkb3duKSB7XG5cdFx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdFx0Lmljb24sIC50ZXh0IHtcblx0XHRcdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0XHRcdFx0bGluZS1oZWlnaHQ6IDEuMTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0Lmljb24ge1xuXHRcdFx0XHRcdFx0YSB7XG5cdFx0XHRcdFx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdC50ZXh0IHtcblx0XHRcdFx0XHRcdGEge1xuXHRcdFx0XHRcdFx0XHRmb250LXNpemU6IDEwcHg7XG5cdFx0XHRcdFx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0XHRcdFx0XHRcdHNwYW4uZmEge1xuXHRcdFx0XHRcdFx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdC5zZW8ge1xuXHRcdFx0XHRcdFx0XHRkaXNwbGF5OiBub25lXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHR1bCB7XG5cdFx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0XHR9XG5cdFx0XHQmLnNldHRpbmdzIHtcblx0XHRcdFx0dWwge1xuXHRcdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0XHRcdGxpIHtcblx0XHRcdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0XHRcdFx0Lmxpbmsge1xuXHRcdFx0XHRcdFx0XHRjb2xvcjogJGJsdWU7XG5cdFx0XHRcdFx0XHRcdHRyYW5zaXRpb246IGNvbG9yIDAuMnMgbGluZWFyO1xuXHRcdFx0XHRcdFx0XHRhIHtcblx0XHRcdFx0XHRcdFx0XHRjb2xvcjogJGJsdWU7XG5cdFx0XHRcdFx0XHRcdFx0dHJhbnNpdGlvbjogY29sb3IgMC4ycyBsaW5lYXI7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0Jjpob3Zlcixcblx0XHRcdFx0XHRcdFx0Ji5hY3RpdmUge1xuXHRcdFx0XHRcdFx0XHRcdGNvbG9yOiAkd2hpdGU7XG5cdFx0XHRcdFx0XHRcdFx0YSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRjb2xvcjogJHdoaXRlO1xuXHRcdFx0XHRcdFx0XHRcdH1cdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHRcdC5sZXZlbCB7XG5cdFx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRcdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdFx0XHRcdHBhZGRpbmc6IHJlbS1jYWxjKDgwKSAwIHJlbS1jYWxjKDE2KTtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kOiAkbGlnaHQtYmx1ZTtcblx0XHRcdFx0XHQtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsMCwwKTtcblx0XHRcdFx0ICAgIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTAwJSwwLDApO1xuXHRcdFx0XHQgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTAwJSwwLDApO1xuXHRcdFx0XHQgICAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgLjRzO1xuXHRcdFx0XHQgICAgLW1vei10cmFuc2l0aW9uOiBhbGwgLjRzO1xuXHRcdFx0XHQgICAgdHJhbnNpdGlvbjogYWxsIC40cztcblx0XHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdFx0bGVmdDogMDtcblx0XHRcdFx0XHR0b3A6IDA7XG5cdFx0XHRcdFx0Ji5vcGVuIHtcblx0XHRcdFx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLDAsMCk7XG5cdFx0XHRcdFx0XHQtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwwLDApO1xuXHRcdFx0XHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLDAsMCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGhlYWRlciB7XG5cdFx0XHRcdFx0XHRoZWlnaHQ6IGF1dG87XG5cdFx0XHRcdFx0XHRwYWRkaW5nOiByZW0tY2FsYygyMCkgcmVtLWNhbGMoMjApIDA7XG5cdFx0XHRcdFx0XHRiYWNrZ3JvdW5kOiBub25lO1xuXHRcdFx0XHRcdFx0Ym94LXNoYWRvdzogbm9uZTtcblx0XHRcdFx0XHRcdGNvbG9yOiAkYmx1ZTtcblx0XHRcdFx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdFx0XHRcdHotaW5kZXg6IDE7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0LmJhY2tcblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0XHRcdHdpZHRoOiByZW0tY2FsYygzMCk7XG5cdFx0XHRcdFx0XHRoZWlnaHQ6IHJlbS1jYWxjKDMwKTtcblx0XHRcdFx0XHRcdGJhY2tncm91bmQ6IGxpZ2h0ZW4oJGJsYWNrLCA5MCUpO1xuXHRcdFx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0XHRcdFx0bGluZS1oZWlnaHQ6IHJlbS1jYWxjKDI2KTtcblx0XHRcdFx0XHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoMTYpO1xuXHRcdFx0XHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdFx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHRcdFx0cmlnaHQ6IDA7XG5cdFx0XHRcdFx0XHR0b3A6IHJlbS1jYWxjKDgwKTtcblx0XHRcdFx0XHRcdHotaW5kZXg6IDI7XG5cdFx0XHRcdFx0XHRzcGFuIHtcblx0XHRcdFx0XHRcdFx0bWFyZ2luLXJpZ2h0OiByZW0tY2FsYyg1KTtcblx0XHRcdFx0XHRcdFx0Zm9udC1zaXplOiByZW0tY2FsYygxMCk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHQmLnF1aWNrX19hcHBvaW50bWVudCB7XG5cdFx0XHRcdG1hcmdpbi10b3A6IHJlbS1jYWxjKDQ1KTtcblx0XHRcdFx0cGFkZGluZy1sZWZ0OiByZW0tY2FsYygxMCk7XG5cdFx0XHRcdHBhZGRpbmctcmlnaHQ6IHJlbS1jYWxjKDEwKTtcblx0XHRcdFx0YSB7XG5cdFx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdFx0cGFkZGluZzogcmVtLWNhbGMoMTApIDAgcmVtLWNhbGMoNyk7XG5cdFx0XHRcdFx0Ym9yZGVyOiAycHggc29saWQgJGxpZ2h0LWJsdWU7XG5cdFx0XHRcdFx0Ym9yZGVyLXJhZGl1czogMjhweDtcblx0XHRcdFx0XHRjb2xvcjogJHdoaXRlO1xuXHRcdFx0XHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpO1xuXHRcdFx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdFx0XHR0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMnMgbGluZWFyO1xuXHRcdFx0XHRcdCY6aG92ZXIsICY6YWN0aXZlIHtcblx0XHRcdFx0XHRcdGJhY2tncm91bmQtY29sb3I6IG1peCgkbGlnaHQtYmx1ZSwgJGJsdWUsIDIwJSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBkb3duKSB7XG5cdFx0XHRcdCYucXVpY2tfX2FwcG9pbnRtZW50IHtcblx0XHRcdFx0XHRwYWRkaW5nOiAwO1xuXHRcdFx0XHR9XG5cdFx0XHRcdCYuc2V0dGluZ3Mge1xuXHRcdFx0XHRcdC5sZXZlbCB7XG5cdFx0XHRcdFx0XHRoZWFkZXIge1xuXHRcdFx0XHRcdFx0XHRwYWRkaW5nOiA0NXB4IDAgNXB4O1xuXHRcdFx0XHRcdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHRcdFx0XHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBtaXgoJGxpZ2h0LWJsdWUsICRibHVlLCA5MCUpO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxufSIsIi5idXR0b25fX2NvbnRhaW5lclxue1xuXHRtYXJnaW4tYm90dG9tOiByZW0tY2FsYygyMCk7XG5cdHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi5idXR0b25fX2xhcmdlX19ibHVlXG57XG5cdGhlaWdodDogcmVtLWNhbGMoNDApO1xuXHRwYWRkaW5nOiByZW0tY2FsYyg5KSByZW0tY2FsYyg0MCkgcmVtLWNhbGMoNik7XG5cdGJhY2tncm91bmQtY29sb3I6ICRsaWdodC1ibHVlO1xuXHRib3JkZXI6IG5vbmU7XG5cdEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoMjhweCk7XG5cdGNvbG9yOiAkYmx1ZTtcblx0Zm9udC13ZWlnaHQ6IDQwMDtcblx0dmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuXHRjdXJzb3I6IHBvaW50ZXI7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXHR0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMnMgbGluZWFyO1xuXHQmOmhvdmVyXG5cdHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkbGlnaHQtYmx1ZS1ob3Zlcjtcblx0fVxufVxuXG4uYnV0dG9uX19pbmxpbmVfX2Jsb2NrXG57XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLmJ1dHRvbl9fYmxvY2tcbntcblx0ZGlzcGxheTogYmxvY2s7XG59XG5cbi5idXR0b25fX25vcm1hbFxue1xuXHRoZWlnaHQ6IHJlbS1jYWxjKDQwKTtcblx0cGFkZGluZzogcmVtLWNhbGMoNCkgcmVtLWNhbGMoMjApIHJlbS1jYWxjKDYpO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdGJvcmRlcjogMnB4IHNvbGlkICNBNkFGQkM7XG5cdEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoMjhweCk7XG5cdGJhY2tncm91bmQ6ICR3aGl0ZTtcblx0Y29sb3I6ICNBNkFGQkM7XG5cdGxpbmUtaGVpZ2h0OiByZW0tY2FsYygzMCk7XG5cdHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXG5cdCY6aG92ZXJcblx0e1xuXHRcdGJhY2tncm91bmQ6IGxpZ2h0ZW4oJGJsYWNrLCA5NiUpO1xuXHR9XG59XG5cbi5idXR0b25fX3VwbG9hZFxue1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdG1hcmdpbi10b3A6IC0xcHg7XG5cdHBhZGRpbmc6IHJlbS1jYWxjKDgpIHJlbS1jYWxjKDE1KTtcblx0Ym9yZGVyOiAxcHggc29saWQgbGlnaHRlbigkYmxhY2ssIDgwJSk7XG5cdEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoNXB4KTtcblx0QGluY2x1ZGUgYm9yZGVyLXRvcC1yYWRpdXMoMCk7XG5cdGJhY2tncm91bmQ6ICR3aGl0ZTtcblx0Zm9udC13ZWlnaHQ6IDQwMDtcblx0LXdlYmtpdC1hcHBlYXJhbmNlOiBub25lICFpbXBvcnRhbnQ7XG5cdC1tb3otYXBwZWFyYW5jZTogbm9uZSAhaW1wb3J0YW50O1xuXHRhcHBlYXJhbmNlOiBub25lICFpbXBvcnRhbnQ7XG5cdGN1cnNvcjogcG9pbnRlcjtcblxuXHRpbnB1dFt0eXBlPVwiZmlsZVwiXVxuXHR7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0bWFyZ2luOiAwO1xuXHRcdHBhZGRpbmc6IDA7XG5cdFx0b3BhY2l0eTogMDtcblx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHJpZ2h0OiAwO1xuXHRcdHRvcDogMDtcblx0fVxufVxuXG4uYnV0dG9uX19ncm91cFxue1xuXHRkaXNwbGF5OiBmbGV4O1xuXG5cdC5idXR0b25fX2lubGluZV9fYmxvY2tcblx0e1xuXHRcdHBhZGRpbmc6IHJlbS1jYWxjKDEyKSByZW0tY2FsYygzMCkgcmVtLWNhbGMoMTApO1xuXHRcdC8vYm9yZGVyOiAycHggc29saWQgbGlnaHRlbigkYmxhY2ssIDkwJSk7XG5cdFx0Ym9yZGVyOiAycHggc29saWQgJHhsaWdodC1ncmV5O1xuXHRcdGJhY2tncm91bmQ6ICR3aGl0ZTtcblx0XHRmb250LXNpemU6IHJlbS1jYWxjKDEyKTtcblx0XHQvL2xpbmUtaGVpZ2h0OiByZW0tY2FsYygzNSk7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cblx0XHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBkb3duKVxuXHRcdHtcblx0XHRcdHBhZGRpbmctbGVmdDogMjBweDtcblx0XHRcdHBhZGRpbmctcmlnaHQ6IDIwcHg7XG5cdFx0fVxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIG9ubHkpXG5cdFx0e1xuXHRcdFx0Ym9keS5jb250YWN0ICYge1xuXHRcdFx0XHR3aWR0aDogcmVtLWNhbGMoNDUpO1xuXHRcdFx0XHRwYWRkaW5nOiAwcHggIWltcG9ydGFudDtcblx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCZbaHJlZl0sXG5cdFx0JltpZF1cblx0XHR7XG5cdFx0XHRoZWlnaHQ6IHJlbS1jYWxjKDM5KTtcblx0XHRcdGxpbmUtaGVpZ2h0OiByZW0tY2FsYygxMyk7XG5cdFx0fVxuXG5cdFx0JlthY3Rpb25dXG5cdFx0e1xuXHRcdFx0cGFkZGluZzogMCByZW0tY2FsYygzMCk7XG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0XHRcdC5jb25maXJtXG5cdFx0XHR7XG5cdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHRcdHRvcDogcmVtLWNhbGMoMTEpO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCY6Zmlyc3QtY2hpbGRcblx0XHR7XG5cdFx0XHRAaW5jbHVkZSBib3JkZXItbGVmdC1yYWRpdXMoMjhweCk7XG5cdFx0fVxuXG5cdFx0JjpsYXN0LWNoaWxkXG5cdFx0e1xuXHRcdFx0QGluY2x1ZGUgYm9yZGVyLXJpZ2h0LXJhZGl1cygyOHB4KTtcblx0XHR9XG5cblx0XHQmICsgLmJ1dHRvbl9faW5saW5lX19ibG9ja1xuXHRcdHtcblx0XHRcdG1hcmdpbi1sZWZ0OiAtMnB4O1xuXHRcdH1cblxuXHRcdHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4ycyBsaW5lYXI7XG5cdFx0Jjpob3ZlclxuXHRcdHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICR4eGxpZ2h0LWdyZXk7XG5cdFx0fVxuXG5cdFx0c3BhblxuXHRcdHtcblx0XHRcdG1hcmdpbjogMCByZW0tY2FsYyg1KSAwIDA7XG5cdFx0fVxuXG5cdFx0Ji5sZXNzX19wYWRkaW5nXG5cdFx0e1xuXHRcdFx0cGFkZGluZzogcmVtLWNhbGMoMTIpIHJlbS1jYWxjKDE1KSByZW0tY2FsYygxMCk7XG5cdFx0fVxuXHR9XG5cblx0c3BhblxuXHR7XG5cdFx0bWFyZ2luLWxlZnQ6IC0xcHg7XG5cblx0XHQuYnV0dG9uX19pbmxpbmVfX2Jsb2NrXG5cdFx0e1xuXHRcdFx0JjpmaXJzdC1jaGlsZFxuXHRcdFx0e1xuXHRcdFx0XHRAaW5jbHVkZSBib3JkZXItbGVmdC1yYWRpdXMoMCk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cblxuLmJ1dHRvbl9fc2VhcmNoXG57XG5cdG1hcmdpbi1sZWZ0OiAtMXB4O1xuXHRwYWRkaW5nOiAwIHJlbS1jYWxjKDEwKTtcblx0Ym9yZGVyOiAxcHggc29saWQgbGlnaHRlbigkYmxhY2ssIDkwJSk7XG5cdEBpbmNsdWRlIGJvcmRlci1yaWdodC1yYWRpdXMoM3B4KTtcblx0YmFja2dyb3VuZDogJHdoaXRlO1xuXHRjb2xvcjogJGxpZ2h0LWJsdWU7XG5cdGZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpO1xuXHRsaW5lLWhlaWdodDogcmVtLWNhbGMoNDApO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdGN1cnNvcjogcG9pbnRlcjtcblxuXHQmOmhvdmVyXG5cdHtcblx0XHRiYWNrZ3JvdW5kOiBsaWdodGVuKCRibGFjaywgOTYlKTtcblx0fVxufVxuXG5cblxuLmJ1dHRvbl9fZmxvYXRfX2Jhclxue1xuXHRwYWRkaW5nOiByZW0tY2FsYygzMCkgcmVtLWNhbGMoNDApO1xuXHQvL2JvcmRlci10b3A6IDFweCBzb2xpZCBsaWdodGVuKCRibGFjaywgOTUlKTtcblx0YmFja2dyb3VuZDogJHdoaXRlO1xuXHRib3gtc2hhZG93OiA1cHggMHB4IDE1cHggMCByZ2JhKCRibGFjaywgMC4xKTtcblx0Ly9wb3NpdGlvbjogZml4ZWQ7XG5cdC8vYm90dG9tOiAwO1xuXHQvL2xlZnQ6IHJlbS1jYWxjKDI3MCk7XG5cdC8vbGVmdDogcmVtLWNhbGMoMTAwKTtcblx0Ly9yaWdodDogMDtcblx0ei1pbmRleDogNTA7XG5cblx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSlcblx0e1xuXHRcdC8vbGVmdDogcmVtLWNhbGMoMjAwKTtcblx0fVxuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQoeGxhcmdlKVxuXHR7XG5cdFx0Ly9sZWZ0OiByZW0tY2FsYygyNzApO1xuXHR9XG59XG5cbi5idXR0b25fX3JvdW5kX19hZGRcbntcblx0ZGlzcGxheTogYmxvY2s7XG5cdHdpZHRoOiByZW0tY2FsYygzMCk7XG5cdGhlaWdodDogcmVtLWNhbGMoMzApO1xuXHRib3JkZXItcmFkaXVzOiByZW0tY2FsYyg1MCk7XG5cdGJvcmRlcjogMnB4IHNvbGlkICRsaWdodC1ibHVlO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cblx0c3BhblxuXHR7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdHRvcDogcmVtLWNhbGMoNik7XG5cdFx0Y29sb3I6ICRtZWRpdW0tYmx1ZTtcblx0fVxufVxuXG4ubm90LWFjdGl2ZSB7XG5cdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHRvcGFjaXR5OiAwLjI1O1xuXHRjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuIiwiLm1pc3Npbmdcbntcblx0cGFkZGluZzogMTIwcHg7XG5cdGJhY2tncm91bmQ6IGRhcmtlbigkb2ZmLXdoaXRlLCAzJSk7XG5cdGJvcmRlcjogMnB4IGRhc2hlZCBkYXJrZW4oJG9mZi13aGl0ZSwgOCUpO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cblx0LmJ1dHRvbl9fbGFyZ2VfX2JsdWVcblx0e1xuXHRcdCY6aG92ZXJcblx0XHR7XG5cdFx0XHRjb2xvcjogJHdoaXRlO1xuXHRcdH1cblx0fVxufVxuXG4vLy5maXhlZF9faGVpZ2h0X19kaXZcbi8ve1xuLy9cdGhlaWdodDoxMCUgIWltcG9ydGFudDtcbi8vXHRvdmVyZmxvdy15OnNjcm9sbDtcbi8vfVxuLy9cbi8vLmZpeGVkX19oZWlnaHRfX2Rpdjo6LXdlYmtpdC1zY3JvbGxiYXIge1xuLy9cdHdpZHRoOiA1cHg7XG4vL31cbi8vXG4vLy5maXhlZF9faGVpZ2h0X19kaXY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcbi8vXHRiYWNrZ3JvdW5kOiAjZGRkO1xuLy99XG5cbi50YWJsZV9fbGlzdFxue1xuXHR3aWR0aDogMTAwJTtcblx0Ym9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcblx0Ym9yZGVyLXNwYWNpbmc6IDA7XG5cdC8vYm9yZGVyLXRvcDogMXB4IHNvbGlkIGxpZ2h0ZW4oJGJsYWNrLCA5MCUpO1xuXHQvL2JvcmRlci1ib3R0b206IDFweCBzb2xpZCBsaWdodGVuKCRibGFjaywgOTAlKTtcblx0Ym9yZGVyOiAwO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblxuXHR0aGVhZFxuXHR7XG5cdFx0Ym9yZGVyOiBub25lO1xuXHRcdGJhY2tncm91bmQ6IG5vbmU7XG5cblx0XHR0clxuXHRcdHtcblx0XHRcdHRoXG5cdFx0XHR7XG5cdFx0XHRcdHBhZGRpbmc6IHJlbS1jYWxjKDUpO1xuXHRcdFx0XHR0ZXh0LXRyYW5zZm9ybTogbm9uZTtcblx0XHRcdFx0Zm9udC13ZWlnaHQ6IDUwMDtcblxuXHRcdFx0XHQmOmZpcnN0LWNoaWxkXG5cdFx0XHRcdHtcblx0XHRcdFx0XHR3aWR0aDogcmVtLWNhbGMoMzAwKTtcblx0XHRcdFx0XHRwYWRkaW5nLWxlZnQ6IDA7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQmLmxhc3Rcblx0XHRcdFx0e1xuXHRcdFx0XHRcdHdpZHRoOiByZW0tY2FsYygxNTApO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0YVxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0JjphZnRlclxuXHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdFx0XHRcdG1hcmdpbi1sZWZ0OiByZW0tY2FsYyg1KTtcblx0XHRcdFx0XHRcdGNvbG9yOiBsaWdodGVuKCRibGFjaywgODAlKTtcblx0XHRcdFx0XHRcdGZvbnQtZmFtaWx5OiAnRm9udEF3ZXNvbWUnO1xuXHRcdFx0XHRcdFx0Y29udGVudDogJ1xcZjBkYyc7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0Ji5hc2Ncblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHQmOmFmdGVyXG5cdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdGNvbG9yOiAkbGlnaHQtYmx1ZTtcblx0XHRcdFx0XHRcdFx0Y29udGVudDogJ1xcZjBkOCcgIWltcG9ydGFudDtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHQmLmRlc2Ncblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHQmOmFmdGVyXG5cdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdGNvbG9yOiAkbGlnaHQtYmx1ZTtcblx0XHRcdFx0XHRcdFx0Y29udGVudDogJ1xcZjBkNycgIWltcG9ydGFudDtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHR0Ym9keVxuXHR7XG5cdFx0Ym9yZGVyOiBub25lO1xuXHRcdGJhY2tncm91bmQ6IG5vbmU7XG5cblx0XHR0clxuXHRcdHtcblx0XHRcdHRkXG5cdFx0XHR7XG5cdFx0XHRcdHBhZGRpbmc6IHJlbS1jYWxjKDE2KSByZW0tY2FsYyg1KSByZW0tY2FsYygxMCk7XG5cdFx0XHRcdGJvcmRlci10b3A6IDFweCBzb2xpZCAkbWVkaXVtLWJsdWU7XG5cdFx0XHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkbWVkaXVtLWJsdWU7XG5cdFx0XHRcdHZlcnRpY2FsLWFsaWduOiB0b3A7XG5cblx0XHRcdFx0JjpmaXJzdC1jaGlsZFxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0cGFkZGluZy1sZWZ0OiByZW0tY2FsYygxNSk7XG5cdFx0XHRcdFx0Ym9yZGVyLWxlZnQ6IDFweCBzb2xpZCAkbWVkaXVtLWJsdWU7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQmOmxhc3QtY2hpbGRcblx0XHRcdFx0e1xuXHRcdFx0XHRcdGJvcmRlci1yaWdodDogMXB4IHNvbGlkICRtZWRpdW0tYmx1ZTtcblxuXHRcdFx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIGRvd24pXG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0dGV4dC1hbGlnbjogcmlnaHQ7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0YVxuXHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdFx0XHRcdG1hcmdpbi1yaWdodDogcmVtLWNhbGMoMjApO1xuXHRcdFx0XHRcdFx0Y29sb3I6ICRibHVlO1xuXG5cdFx0XHRcdFx0XHQmLmNvbmZpcm1cblx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0Y29sb3I6ICRtZWRpdW0tYmx1ZTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl1cblx0XHRcdFx0e1xuXHRcdFx0XHRcdG1hcmdpbjogMDtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC5idXR0b25fX3JlbW92ZVxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0QGV4dGVuZCAuYnV0dG9uX19ub3JtYWw7XG5cdFx0XHRcdFx0aGVpZ2h0OiByZW0tY2FsYygzMCk7XG5cdFx0XHRcdFx0bWFyZ2luLWxlZnQ6IHJlbS1jYWxjKDUpO1xuXHRcdFx0XHRcdG1hcmdpbi1yaWdodDogcmVtLWNhbGMoNSk7XG5cdFx0XHRcdFx0cGFkZGluZzogcmVtLWNhbGMoNSkgcmVtLWNhbGMoMTApO1xuXHRcdFx0XHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpO1xuXHRcdFx0XHRcdGxpbmUtaGVpZ2h0OiByZW0tY2FsYygyMCk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQuYnV0dG9uX19sYXJnZV9fYmx1ZSBcblx0XHRcdFx0e1xuXHRcdFx0XHRcdHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG5cdFx0XHRcdFx0aGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG5cdFx0XHRcdFx0bWFyZ2luLXJpZ2h0OiByZW0tY2FsYyg0KSAhaW1wb3J0YW50O1xuXHRcdFx0XHRcdHBhZGRpbmc6IHJlbS1jYWxjKDgpIHJlbS1jYWxjKDEyKSByZW0tY2FsYyg2KSByZW0tY2FsYygxMikgIWltcG9ydGFudDtcblxuXHRcdFx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgdXApXG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0cGFkZGluZy1sZWZ0OiByZW0tY2FsYygyMCkgIWltcG9ydGFudDtcblx0XHRcdFx0XHRcdHBhZGRpbmctcmlnaHQ6IHJlbS1jYWxjKDIwKSAhaW1wb3J0YW50O1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdCYuZHJhZnQsXG5cdFx0XHRcdCYuYXBwb2ludG1lbnRcblx0XHRcdFx0e1xuXHRcdFx0XHRcdGNvbG9yOiAkcmVkO1xuXG5cdFx0XHRcdFx0c3BhblxuXHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdFx0XHRcdHdpZHRoOiByZW0tY2FsYygxMCk7XG5cdFx0XHRcdFx0XHRoZWlnaHQ6IHJlbS1jYWxjKDEwKTtcblx0XHRcdFx0XHRcdG1hcmdpbi1yaWdodDogcmVtLWNhbGMoNSk7XG5cdFx0XHRcdFx0XHRib3JkZXItcmFkaXVzOiA1MCU7XG5cdFx0XHRcdFx0XHRiYWNrZ3JvdW5kOiAkcmVkO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdCYuYWNjZXB0ZWQsXG5cdFx0XHRcdCYuc2VudCxcblx0XHRcdFx0Ji5wYWlkXG5cdFx0XHRcdHtcblx0XHRcdFx0XHRjb2xvcjogJGdyZWVuO1xuXG5cdFx0XHRcdFx0c3BhblxuXHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdFx0XHRcdHdpZHRoOiByZW0tY2FsYygxMCk7XG5cdFx0XHRcdFx0XHRoZWlnaHQ6IHJlbS1jYWxjKDEwKTtcblx0XHRcdFx0XHRcdG1hcmdpbi1yaWdodDogcmVtLWNhbGMoNSk7XG5cdFx0XHRcdFx0XHRib3JkZXItcmFkaXVzOiA1MCU7XG5cdFx0XHRcdFx0XHRiYWNrZ3JvdW5kOiAkZ3JlZW47XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdCY6aG92ZXJcblx0XHRcdHtcblx0XHRcdFx0dGRcblx0XHRcdFx0e1xuXHRcdFx0XHRcdC8vYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbigkYmxhY2ssIDk4JSk7XG5cdFx0XHRcdFx0Ly9ib3gtc2hhZG93OiBsaWdodGVuKCRibGFjaywgOTAlKSAwIC0xcHggMCBpbnNldCwgbGlnaHRlbigkYmxhY2ssIDkwJSkgMCAxcHggMCBpbnNldDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQmOm50aC1jaGlsZChldmVuKVxuXHRcdFx0e1xuXHRcdFx0XHQvL2JhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcblx0XHRcdH1cblxuXHRcdFx0Ji5sYXN0XG5cdFx0XHR7XG5cdFx0XHRcdHdpZHRoOiByZW0tY2FsYygyMDApO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHRyLndhcm5pbmcge1xuXHRcdFx0Ym9yZGVyLWxlZnQ6ICR3YXJuaW5nLWNvbG9yIDNweCBzb2xpZDtcblxuXHRcdFx0dGQud2FybmluZ19fY2VsbCB7XG5cdFx0XHRcdGJhY2tncm91bmQ6IGxpZ2h0ZW4oJHdhcm5pbmctY29sb3IgLDI1JSkgIWltcG9ydGFudDtcblx0XHRcdH1cblx0XHRcdHRkLmFsZXJ0X19jZWxsIHtcblx0XHRcdFx0IGJhY2tncm91bmQ6IGxpZ2h0ZW4oJGVycm9yLWNvbG9yICwyNSUpICFpbXBvcnRhbnQ7XG5cdFx0XHR9XG5cblx0XHRcdHRkLnN1Y2Nlc3NfX2NlbGwge1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiBsaWdodGVuKCRzdWNjZXNzLWNvbG9yICwyNSUpICFpbXBvcnRhbnQ7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHRyLmVycm9yIHtcblx0XHRcdGJvcmRlci1sZWZ0OiAkZXJyb3ItY29sb3IgM3B4IHNvbGlkO1xuXG5cdFx0XHR0ZC53YXJuaW5nX19jZWxsIHtcblx0XHRcdFx0YmFja2dyb3VuZDogbGlnaHRlbigkd2FybmluZy1jb2xvciAsMjUlKSAhaW1wb3J0YW50O1xuXHRcdFx0fVxuXHRcdFx0dGQuYWxlcnRfX2NlbGwge1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiBsaWdodGVuKCRlcnJvci1jb2xvciAsMjUlKSAhaW1wb3J0YW50O1xuXHRcdFx0fVxuXHRcdH1cblx0XHR0ci5zdWNjZXNzIHtcblx0XHRcdGJvcmRlci1sZWZ0OiAkc3VjY2Vzcy1jb2xvciAzcHggc29saWQ7XG5cblx0XHRcdHRkLndhcm5pbmdfX2NlbGwge1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiBsaWdodGVuKCR3YXJuaW5nLWNvbG9yICwyNSUpICFpbXBvcnRhbnQ7XG5cdFx0XHR9XG5cdFx0XHR0ZC5hbGVydF9fY2VsbCB7XG5cdFx0XHRcdGJhY2tncm91bmQ6IGxpZ2h0ZW4oJGVycm9yLWNvbG9yICwyNSUpICFpbXBvcnRhbnQ7XG5cdFx0XHR9XG5cblx0XHRcdHRkLnN1Y2Nlc3NfX2NlbGwge1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiBsaWdodGVuKCRzdWNjZXNzLWNvbG9yICwyNSUpICFpbXBvcnRhbnQ7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cblxuLmFkbWluX19saXN0X19iYXJcbntcblx0bWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMjUpO1xuXHRwYWRkaW5nOiByZW0tY2FsYygxNSkgMDtcblx0Ym9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICRibHVlO1xuXHQvKmJvcmRlci10b3A6IDFweCBzb2xpZCBsaWdodGVuKCRibGFjaywgOTAlKTtcblx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGxpZ2h0ZW4oJGJsYWNrLCA5MCUpO1xuXHRiYWNrZ3JvdW5kOiAkd2hpdGU7Ki9cblxuXHQuZ3JpZFxuXHR7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cblx0XHQmLnNwYWNlclxuXHRcdHtcblx0XHRcdG1hcmdpbi10b3A6IHJlbS1jYWxjKDEwKTtcblx0XHR9XG5cblx0XHQuY29sXG5cdFx0e1xuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0bWluLXdpZHRoOiAwO1xuXHRcdFx0Ly9AZXh0ZW5kIC5hbGlnbi1taWRkbGU7XG5cblx0XHRcdCYubm8tY29sXG5cdFx0XHR7XG5cdFx0XHRcdGZsZXg6IG5vbmU7XG5cdFx0XHR9XG5cblx0XHRcdCYudG9wXG5cdFx0XHR7XG5cdFx0XHRcdHZlcnRpY2FsLWFsaWduOiB0b3A7XG5cdFx0XHRcdGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7XG5cdFx0XHR9XG5cblx0XHRcdC50aXRsZVxuXHRcdFx0e1xuXHRcdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0XHR0b3A6IDA7XG5cdFx0XHRcdC8vYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG5cdFx0XHRcdC8vQGV4dGVuZCAuYWxpZ24tbWlkZGxlO1xuXHRcdFx0XHQvL3RleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdFx0XHRcdGZvbnQtd2VpZ2h0OiA3MDA7XG5cdFx0XHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuXG5cdFx0XHRcdCYucmVzdWx0c1xuXHRcdFx0XHR7XG5cdFx0XHRcdFx0dGV4dC10cmFuc2Zvcm06IG5vbmU7XG5cdFx0XHRcdFx0Zm9udC13ZWlnaHQ6IDUwMDtcblx0XHRcdFx0XHRmb250LXNpemU6IHJlbS1jYWxjKDEyKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC5pY29uXG5cdFx0XHRcdHtcblx0XHRcdFx0XHRmbGV4LXNocmluazogMDtcblxuXHRcdFx0XHRcdHNwYW5cblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHR3aWR0aDogcmVtLWNhbGMoMzUpO1xuXHRcdFx0XHRcdFx0aGVpZ2h0OiByZW0tY2FsYygzNSk7XG5cdFx0XHRcdFx0XHRtYXJnaW4tcmlnaHQ6IHJlbS1jYWxjKDEwKTtcblx0XHRcdFx0XHRcdEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoM3B4KTtcblx0XHRcdFx0XHRcdGJhY2tncm91bmQ6ICRibGFjaztcblx0XHRcdFx0XHRcdGNvbG9yOiAkd2hpdGU7XG5cdFx0XHRcdFx0XHRmb250LXNpemU6IHJlbS1jYWxjKDIwKTtcblx0XHRcdFx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdFx0XHRcdGxpbmUtaGVpZ2h0OiByZW0tY2FsYygzNSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0aDFcblx0XHRcdFx0e1xuXHRcdFx0XHRcdGZsZXg6IDE7XG5cdFx0XHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0XHRcdG1pbi13aWR0aDogMDtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdHNwYW4uc2VvIHtcblx0XHRcdFx0XHRwYWRkaW5nLWxlZnQ6IDE2cHg7XG5cdFx0XHRcdFx0JjpiZWZvcmUge1xuXHRcdFx0XHRcdFx0Zm9udC1zaXplOiAxOHB4O1xuXHRcdFx0XHRcdFx0Y29sb3I6ICRibHVlO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdFx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIGRvd24pIHtcblx0XHRcdFx0XHRcdGRpc3BsYXk6IGlubGluZTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0Ji5sYXN0XG5cdFx0XHR7XG5cdFx0XHRcdGZsZXg6IG5vbmU7XG5cdFx0XHRcdGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7XG5cdFx0XHR9XG5cblx0XHRcdC8vIFNlYXJjaCBmb3JtXG5cdFx0XHRmb3JtXG5cdFx0XHR7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMDtcblx0XHRcdFx0XG5cdFx0XHRcdGlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxuXHRcdFx0XHRzZWxlY3Rcblx0XHRcdFx0e1xuXHRcdFx0XHRcdHdpZHRoOiByZW0tY2FsYygxNTApO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0LmlubGluZV9fYmxvY2tcblx0XHRcdFx0e1xuXHRcdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdFx0XHQvL3dpZHRoOiByZW0tY2FsYyg2MCk7XG5cdFx0XHRcdFx0bWFyZ2luLWxlZnQ6IC0xcHg7XG5cdFx0XHRcdFx0cGFkZGluZzogMCByZW0tY2FsYygxMCk7XG5cdFx0XHRcdFx0Ym9yZGVyOiAxcHggc29saWQgbGlnaHRlbigkYmxhY2ssIDkwJSk7XG5cdFx0XHRcdFx0Ly9AaW5jbHVkZSBib3JkZXItbGVmdC1yYWRpdXMoM3B4KTtcblx0XHRcdFx0XHQvL0BpbmNsdWRlIGJvcmRlci10b3AtcmFkaXVzKDApO1xuXHRcdFx0XHRcdGJhY2tncm91bmQ6ICR3aGl0ZTtcblx0XHRcdFx0XHRjb2xvcjogbGlnaHRlbigkYmxhY2ssIDYwJSk7XG5cdFx0XHRcdFx0Zm9udC1zaXplOiByZW0tY2FsYygxMik7XG5cdFx0XHRcdFx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuXHRcdFx0XHRcdGxhYmVsLFxuXHRcdFx0XHRcdGlucHV0XG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0XHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0XHRcdFx0cGFkZGluZzogMDtcblx0XHRcdFx0XHRcdGNvbG9yOiBsaWdodGVuKCRibGFjaywgNjAlKTtcblx0XHRcdFx0XHRcdGZvbnQtd2VpZ2h0OiA0MDA7XG5cdFx0XHRcdFx0XHRmb250LXNpemU6IHJlbS1jYWxjKDEyKTtcblx0XHRcdFx0XHRcdGxpbmUtaGVpZ2h0OiByZW0tY2FsYyg0MCk7XG5cdFx0XHRcdFx0XHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdGlucHV0XG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0bWFyZ2luLWxlZnQ6IHJlbS1jYWxjKDEwKTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl1cblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHR3aWR0aDogYXV0bztcblx0XHRcdFx0XHRcdGhlaWdodDogYXV0bztcblx0XHRcdFx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdFx0XHRcdGxlZnQ6IDA7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRwYWRkaW5nLXRvcDogMTJweDtcblx0XHRcdCYuYnV0dG9uX19ncm91cCB7XG5cdFx0XHRcdHBhZGRpbmctdG9wOiAwO1xuXHRcdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0XHRwb3NpdGlvbjogc3RhdGljO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC5saXN0X19tZW51XG5cdHtcblx0XHRmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcblx0fVxuXG4gICAgLmJhci13aXRoLXNlYXJjaCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG5cdFx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAudGl0bGUsIC5iYXJfX21pZGRsZSwgLmJ1dHRvbl9fZ3JvdXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cdFx0PiAuYnV0dG9uX19ncm91cCB7XG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xuXG5cdFx0fVxuICAgICAgICAuYmFyX19taWRkbGUge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwLjc7XG5cdFx0XHQuYmVmb3JlLTItYnV0dG9ucyB7XG5cdFx0XHRcdHdpZHRoOiBjYWxjKDEwMCUgLSAyMzBweCk7XG5cdFx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIGRvd24pIHtcblx0XHRcdFx0XHR3aWR0aDogY2FsYygxMDAlIC0gMTkwcHgpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG4gICAgICAgIH1cblx0XHQuYnV0dG9uX19ncm91cCB7XG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0fVxuICAgIH1cbn1cblxuXG4uYWRtaW5fX2dyaWRcbntcblx0Ly9AaW5jbHVkZSBmbGV4LWdyaWQtcm93KCduZXN0JywgJ2V4cGFuZCcpO1xuXHQvL0BpbmNsdWRlIGZsZXgtZ3JpZC1sYXlvdXQoNCwgJ2dyaWRQYW5lbCcpO1xuXG5cdGg0XG5cdHtcblx0XHRjb2xvcjogJGJsdWU7XG5cdFx0Zm9udC13ZWlnaHQ6IDQwMDtcblx0XHRmb250LWZhbWlseTogJ1NvZmlhUHJvLUxpZ2h0Jztcblx0XHRmb250LXNpemU6IHJlbS1jYWxjKDIwKTtcblx0fVxuXG5cdC5ncmlkUGFuZWxcblx0e1xuXHRcdC8vQGluY2x1ZGUgZmxleC1ncmlkLWNvbHVtbigpO1xuXG5cdFx0Ji51bmF2YWlsYWJsZVxuXHRcdHtcblx0XHRcdC5ncmlkUGFuZWxfX2lubmVyXG5cdFx0XHR7XG5cdFx0XHRcdC5ncmlkUGFuZWxfX2ltYWdlXG5cdFx0XHRcdHtcblx0XHRcdFx0XHQuZ3JpZFBhbmVsX19pY29uXG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHQudW5hdmFpbGFibGVfX292ZXJsYXlcblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC5ncmlkUGFuZWxfX2lubmVyXG5cdFx0e1xuXHRcdFx0Ly9iYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG5cdFx0XHQvL2JveC1zaGFkb3c6IDAgMCAycHggcmdiYSgkYmxhY2ssIDAuMik7XG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0XHQvL3RleHQtYWxpZ246IGNlbnRlcjtcblxuXHRcdFx0LmdyaWRQYW5lbF9faW1hZ2Vcblx0XHRcdHtcblx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRcdHBhZGRpbmctYm90dG9tOiAxMDAlO1xuXHRcdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHRcdC8qYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCR3aGl0ZSwgMjAlKTtcblx0XHRcdFx0YmFja2dyb3VuZC1zaXplOiBjb3Zlcjtcblx0XHRcdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDUwJTtcblx0XHRcdFx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0XHRcdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKCcvYXNzZXRzL2ltZy9iZy5qcGcnKTsqL1xuXG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcblx0XHRcdFx0Ly9iYWNrZ3JvdW5kLXNpemU6IHJlbS1jYWxjKDM1MCk7XG5cdFx0XHRcdGJhY2tncm91bmQtc2l6ZTogODAlO1xuXHRcdFx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCUgNTAlO1xuXHRcdFx0XHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuXG5cdFx0XHRcdCYuaW1hZ2Vcblx0XHRcdFx0e1xuXHRcdFx0XHRcdGJhY2tncm91bmQ6ICR3aGl0ZTtcblxuXHRcdFx0XHRcdGltZ1xuXHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdHdpZHRoOiA2MHB4O1xuXHRcdFx0XHRcdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdFx0XHRcdFx0bWFyZ2luOiAwIGF1dG87XG5cdFx0XHRcdFx0XHQvL3BhZGRpbmc6IDAgcmVtLWNhbGMoODApO1xuXHRcdFx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHRcdFx0Ym90dG9tOiAwO1xuXHRcdFx0XHRcdFx0bGVmdDogMDtcblx0XHRcdFx0XHRcdHRvcDogMDtcblx0XHRcdFx0XHRcdHJpZ2h0OiAwO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHR9XG5cdFx0XHRcdGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG5cdFx0XHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHRcdFx0fVxuXHRcdFx0XHQuY2hlY2ttYXJrIHtcblx0XHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdFx0Ym90dG9tOiAwO1xuXHRcdFx0XHRcdHRleHQtYWxpZ246IHJpZ2h0O1xuXHRcdFx0XHRcdGNvbG9yOiAjZmZmO1xuXHRcdFx0XHRcdGZvbnQtc2l6ZTogMjVweDtcblx0XHRcdFx0XHQuZmEge1xuXHRcdFx0XHRcdFx0cGFkZGluZy1yaWdodDogMTBweDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdFx0Ji5jYi1jaGVja2VkLmltYWdlIHtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkbGlnaHQtYmx1ZTtcblx0XHRcdFx0fVxuXHRcdFx0XHQmLmNiLW5vdC1jaGVja2VkIHtcblx0XHRcdFx0XHRpbWcge1xuXHRcdFx0XHRcdFx0b3BhY2l0eTogMC40O1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdC5ncmlkUGFuZWxfX2ljb25cblx0XHRcdFx0e1xuXHRcdFx0XHRcdGhlaWdodDogMHB4O1xuXHRcdFx0XHRcdHRleHQtYWxpZ246IHJpZ2h0O1xuXG5cdFx0XHRcdFx0c3BhbiBcblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHRcdFx0XHR0b3A6IHJlbS1jYWxjKDEwKTtcblx0XHRcdFx0XHRcdHJpZ2h0OiByZW0tY2FsYygxMCk7XG5cdFx0XHRcdFx0XHRjb2xvcjogJGJsdWU7XG5cblx0XHRcdFx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIG9ubHkpXG5cdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdHRvcDogcmVtLWNhbGMoNCk7XG5cdFx0XHRcdFx0XHRcdHJpZ2h0OiByZW0tY2FsYyg0KTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQudW5hdmFpbGFibGVfX292ZXJsYXlcblx0XHRcdFx0e1xuXHRcdFx0XHRcdC8vIGlmIGdyaWRQYW5lbCBpdGVtIGhhcyBjbGFzczogJ3VuYXZhaWxhYmxlJywgZGlzcGxheSBmb3IgLnVuYXZhaWxhYmxlX19vdmVybGF5IHNob3VsZCBiZSBjaGFuZ2VkIHRvIGZsZXguXG5cdFx0XHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHRcdFx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0XHRcdGhlaWdodDogMTAwJTtcblx0XHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdFx0YmFja2dyb3VuZDogcmdiYSgyMDAsIDIwMCwgMjAwLCAwLjcpO1xuXG5cdFx0XHRcdFx0c3BhbiBcblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRtYXJnaW46IGF1dG87XG5cdFx0XHRcdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHRcdFx0XHRmb250LWZhbWlseTogJ0F2ZW5pci1IZWF2eSc7XG5cdFx0XHRcdFx0XHRmb250LXNpemU6IHJlbS1jYWxjKDExKTtcblx0XHRcdFx0XHRcdGNvbG9yOiAkYmx1ZTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQuZm9ybS1lcnJvclxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHRcdHRvcDogcmVtLWNhbGMoMTApO1xuXHRcdFx0XHRcdGxlZnQ6IHJlbS1jYWxjKDUpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC5ncmlkUGFuZWxfX21ldGFcblx0XHRcdHtcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMzApO1xuXHRcdFx0XHRwYWRkaW5nOiByZW0tY2FsYygxMCkgMCByZW0tY2FsYygyMCk7XG5cblx0XHRcdFx0aDRcblx0XHRcdFx0e1xuXHRcdFx0XHRcdGNvbG9yOiAkYmx1ZTtcblx0XHRcdFx0XHRmb250LXdlaWdodDogNDAwO1xuXHRcdFx0XHRcdGZvbnQtZmFtaWx5OiAnU29maWFQcm8tTGlnaHQnO1xuXHRcdFx0XHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0ZGl2XG5cdFx0XHRcdHtcblx0XHRcdFx0XHRjb2xvcjogJG1lZC1ibHVlO1xuXHRcdFx0XHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0LmJ1dHRvbl9fbGFyZ2VfX2JsdWUgXG5cdFx0XHRcdHtcblx0XHRcdFx0XHRtYXJnaW4tdG9wOiByZW0tY2FsYygxMCk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0LmdyaWRQYW5lbF9fb3B0aW9ucywgLmdyaWRQYW5lbF9fb3B0aW9uc19fdmlzaWJsZVxuXHRcdFx0e1xuXHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdHRvcDogMDtcblx0XHRcdFx0cmlnaHQ6IDA7XG5cdFx0XHRcdHdpZHRoOiBjYWxjKDEwMCUgLSAydncpO1xuXHRcdFx0XHRtYXJnaW46IDF2dztcblx0XHRcdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0XHRcdFx0Ly90b3A6IDBweDtcblx0XHRcdFx0Ly9yaWdodDogMHB4O1xuXHRcdFx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0XHRcdHotaW5kZXg6IDI7XG5cblx0XHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gb25seSlcblx0XHRcdFx0e1xuXHRcdFx0XHRcdC8vdG9wOiAxMHB4O1xuXHRcdFx0XHRcdC8vcmlnaHQ6IDEwcHg7XG5cdFx0XHRcdFx0Ly9sZWZ0OiAwcHg7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQuYnV0dG9uX19pbmxpbmVfX2Jsb2NrXG5cdFx0XHRcdHtcblx0XHRcdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBkb3duKVxuXHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0c3BhblxuXHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdG1hcmdpbjogMHB4O1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdHBhZGRpbmctdG9wOiByZW0tY2FsYygxMykgIWltcG9ydGFudDtcblx0XHRcdFx0XHRwYWRkaW5nLWxlZnQ6IHJlbS1jYWxjKDEyKSAhaW1wb3J0YW50O1xuXHRcdFx0XHRcdHBhZGRpbmctcmlnaHQ6IHJlbS1jYWxjKDEyKSAhaW1wb3J0YW50O1xuXG5cdFx0XHRcdFx0JjpsYXN0LWNoaWxkXG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0cGFkZGluZy10b3A6IHJlbS1jYWxjKDEpICFpbXBvcnRhbnQ7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIGRvd24pXG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0cGFkZGluZy1sZWZ0OiByZW0tY2FsYyg4KSAhaW1wb3J0YW50O1xuXHRcdFx0XHRcdFx0cGFkZGluZy1yaWdodDogcmVtLWNhbGMoOCkgIWltcG9ydGFudDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQucXVhbnRpdHlfX2lucHV0XG5cdFx0XHRcdHtcblx0XHRcdFx0XHRtYXJnaW4tYm90dG9tOiByZW0tY2FsYygyNSk7XG5cblx0XHRcdFx0XHRpbnB1dFt0eXBlPVwibnVtYmVyXCJdXG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0bWFyZ2luOiAwcHg7XG5cdFx0XHRcdFx0XHRib3JkZXItdG9wOiAycHggc29saWQgJHhsaWdodC1ncmV5O1xuXHRcdFx0XHRcdFx0Ym9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICR4bGlnaHQtZ3JleTtcblx0XHRcdFx0XHRcdHBhZGRpbmctdG9wOiByZW0tY2FsYygzKSAhaW1wb3J0YW50O1xuXHRcdFx0XHRcdFx0YmFja2dyb3VuZDogJHdoaXRlO1xuXHRcdFx0XHRcdFx0Ym94LXNoYWRvdzogbm9uZTtcblx0XHRcdFx0XHRcdGNvbG9yOiAkYmx1ZSAhaW1wb3J0YW50O1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdC5idXR0b25fX2lubGluZV9fYmxvY2tcblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHQmOmxhc3QtY2hpbGRcblx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0cGFkZGluZy10b3A6IHJlbS1jYWxjKDEzKSAhaW1wb3J0YW50O1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdGlucHV0W3R5cGU9XCJzdWJtaXRcIl0sLnByb2R1Y3RfX3F1YW50aXR5X19jb250cm9sXG5cdFx0XHRcdHtcblx0XHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0XHRib3JkZXI6IG5vbmU7XG5cdFx0XHRcdFx0Ym9yZGVyLXJhZGl1czogcmVtLWNhbGMoMjApO1xuXHRcdFx0XHRcdHBhZGRpbmc6IHJlbS1jYWxjKDEwKSAhaW1wb3J0YW50O1xuXHRcdFx0XHRcdHBhZGRpbmctdG9wOiByZW0tY2FsYygxNCkgIWltcG9ydGFudDtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kOiAkbGlnaHQtYmx1ZSA7XG5cdFx0XHRcdFx0Y29sb3I6ICRkYXJrLWJsdWU7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0LmdyaWRQYW5lbF9fb3B0aW9uc19fdmlzaWJsZVxuXHRcdFx0e1xuXHRcdFx0XHRkaXNwbGF5OmJsb2NrO1xuXHRcdFx0fVxuXG5cdFx0fVxuXHR9XG59XG4uZWRpdC1hbmQtZGVsZXRlLWxpbmUge1xuXHRtYXJnaW46IC0xMHB4IDAgNnB4O1xuXHRhIHtcblx0XHRmb250LXNpemU6IDEycHg7XG5cdH1cbn1cblxuXG5cbiRxdHktY29udHJvbHMtd2lkdGg6IDEyMHB4O1xuJHF0eS1jb250cm9scy1pbnB1dC13aWR0aDogNjBweDtcbiRxdHktY29udHJvbHMtYnV0dG9uLWhlaWdodDogNDBweDtcbkBtaXhpbiBwcm9kdWN0LXBhbmVsLWJ1dHRvbi1ib3JkZXIge1xuXHRib3JkZXI6IDJweCBzb2xpZCAkbWVkaXVtLWJsdWU7XG59XG5AbWl4aW4gcHJvZHVjdC1wYW5lbC1idXR0b24taG92ZXIge1xuXHR0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMXMgbGluZWFyO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuXHQmOmhvdmVyIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkbGlnaHQtZ3JheTtcblx0fVxuXHRjdXJzb3I6IHBvaW50ZXI7XG59XG5AbWl4aW4gcGx1cy1idXR0b24tc3R5bGUge1xuXHR3aWR0aDogMzFweDtcblx0aGVpZ2h0OiAzMnB4O1xuXHRwYWRkaW5nOiA2cHg7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHJpZ2h0OiAwO1xuXHR0b3A6IDA7XG5cdGJvcmRlci1yYWRpdXM6IDRweDtcblx0QGluY2x1ZGUgcHJvZHVjdC1wYW5lbC1idXR0b24tYm9yZGVyO1xuXHRAaW5jbHVkZSBwcm9kdWN0LXBhbmVsLWJ1dHRvbi1ob3Zlcjtcbn1cbi5wbHVzLWJ1dHRvbiB7XG5cdEBpbmNsdWRlIHBsdXMtYnV0dG9uLXN0eWxlO1xufVxuXG5cbi5wcm9kdWN0LXBhbmVsIHtcblx0LmdyaWRQYW5lbF9fb3B0aW9uc19fdmlzaWJsZSB7XG5cdH1cblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHQucXR5LWNvbnRyb2xzLWV4cGFuZGVyIHtcblx0XHRAaW5jbHVkZSBwbHVzLWJ1dHRvbi1zdHlsZTtcblx0XHQmLmRpc3BsYXktbm9uZSB7XG5cdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdH1cblx0XHQmOmJlZm9yZSB7XG5cdFx0XHRmb250LXNpemU6IDE0cHg7XG5cdFx0fVxuXHR9XG5cdC5wYW5lbC1pbnB1dHMge1xuXHRcdGlucHV0LnRleHQtaW5wdXQge1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRAaW5jbHVkZSBwcm9kdWN0LXBhbmVsLWJ1dHRvbi1ib3JkZXI7XG5cdFx0XHRoZWlnaHQ6IDMycHg7XG5cdFx0XHR0ZXh0LWFsaWduOiByaWdodDtcblx0XHRcdHBhZGRpbmctcmlnaHQ6IDZweDtcblx0XHRcdHBhZGRpbmctdG9wOiAzcHg7XG5cdFx0XHRib3JkZXItcmFkaXVzOiA1cHg7XG5cdFx0fVxuXHRcdC5xdHktY29udHJvbHMsIC5jYW5jZWwsIC5hZGQtdG8tcXVvdGUsIC5jYW5jZWwtc21hbGwge1xuXHRcdFx0d2lkdGg6ICRxdHktY29udHJvbHMtd2lkdGg7XG5cdFx0XHRoZWlnaHQ6ICRxdHktY29udHJvbHMtYnV0dG9uLWhlaWdodDtcblx0XHRcdG1hcmdpbi1ib3R0b206IDJweDtcblx0XHR9XG5cdFx0LnF0eS1jb250cm9scyB7XG5cdFx0XHR3aWR0aDogJHF0eS1jb250cm9scy13aWR0aDtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdHJpZ2h0OiAwO1xuXHRcdFx0dG9wOiAzNnB4O1xuXHRcdFx0LmRlY3JlYXNlLXF0eSwgLmluY3JlYXNlLXF0eSB7XG5cdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0XHRmbG9hdDogbGVmdDtcblx0XHRcdFx0d2lkdGg6ICggKCRxdHktY29udHJvbHMtaW5wdXQtd2lkdGggKyA0cHgpIC8gMiApO1xuXHRcdFx0XHRoZWlnaHQ6ICRxdHktY29udHJvbHMtYnV0dG9uLWhlaWdodDtcblx0XHRcdFx0cGFkZGluZy10b3A6IDdweDtcblx0XHRcdFx0QGluY2x1ZGUgcHJvZHVjdC1wYW5lbC1idXR0b24tYm9yZGVyO1xuXHRcdFx0XHRAaW5jbHVkZSBwcm9kdWN0LXBhbmVsLWJ1dHRvbi1ob3Zlcjtcblx0XHRcdH1cblx0XHRcdC5kZWNyZWFzZS1xdHkge1xuXHRcdFx0XHRib3JkZXItcmFkaXVzOiA1MHB4IDAgMCA1MHB4O1xuXHRcdFx0XHRwYWRkaW5nLWxlZnQ6IDEycHg7XG5cdFx0XHR9XG5cdFx0XHQuaW5jcmVhc2UtcXR5IHtcblx0XHRcdFx0Ym9yZGVyLXJhZGl1czogMCA1MHB4IDUwcHggMDtcblx0XHRcdFx0cGFkZGluZy1sZWZ0OiAxMXB4O1xuXHRcdFx0fVxuXHRcdFx0aW5wdXQge1xuXHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0XHRcdG1hcmdpbjogMCAtMnB4O1xuXHRcdFx0XHR3aWR0aDogJHF0eS1jb250cm9scy1pbnB1dC13aWR0aDtcblx0XHRcdFx0aGVpZ2h0OiAkcXR5LWNvbnRyb2xzLWJ1dHRvbi1oZWlnaHQ7XG5cdFx0XHRcdGJveC1zaGFkb3c6IG5vbmU7XG5cdFx0XHRcdGJvcmRlcjogbm9uZTtcblx0XHRcdFx0Jjo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiwgJjo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbiB7XG5cdFx0XHRcdFx0LXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuXHRcdFx0XHRcdG1hcmdpbjogMDtcblx0XHRcdFx0fVxuXHRcdFx0XHQtbW96LWFwcGVhcmFuY2U6IHRleHRmaWVsZDtcblx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0XHRAaW5jbHVkZSBwcm9kdWN0LXBhbmVsLWJ1dHRvbi1ib3JkZXI7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdC5leGl0LWJ1dHRvbnMge1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRyaWdodDogMXZ3O1xuXHRcdGJvdHRvbTogMXZ3O1xuXHRcdHotaW5kZXg6IDU7XG5cdFx0LmV4aXQtYnV0dG9ucy1ib3R0b20tNjYgJiB7XG5cdFx0XHRib3R0b206IGNhbGMoNTdweCArIDF2dyk7XG5cdFx0fVxuXHRcdC5hZGQtdG8tcXVvdGUsIC5jYW5jZWwge1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHR3aWR0aDogJHF0eS1jb250cm9scy13aWR0aDtcblx0XHRcdGhlaWdodDogJHF0eS1jb250cm9scy1idXR0b24taGVpZ2h0O1xuXHRcdH1cblx0XHQuYWRkLXRvLXF1b3RlLCAuY2FuY2VsLCAuY2FuY2VsLXNtYWxsIHNwYW4ge1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogNTBweDtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0QGluY2x1ZGUgcHJvZHVjdC1wYW5lbC1idXR0b24tYm9yZGVyO1xuXHRcdFx0QGluY2x1ZGUgcHJvZHVjdC1wYW5lbC1idXR0b24taG92ZXI7XG5cdFx0fVxuXHRcdC5jYW5jZWwge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcblx0XHRcdHBhZGRpbmctdG9wOiA4cHg7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiA0cHg7XG5cdFx0fVxuXHRcdC5jYW5jZWwtc21hbGwge1xuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0c3BhbiB7XG5cdFx0XHRcdHdpZHRoOiAkcXR5LWNvbnRyb2xzLWJ1dHRvbi1oZWlnaHQ7XG5cdFx0XHRcdGhlaWdodDogJHF0eS1jb250cm9scy1idXR0b24taGVpZ2h0O1xuXHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdHJpZ2h0OiAwO1xuXHRcdFx0XHRib3R0b206IDA7XG5cdFx0XHRcdGNvbG9yOiAkbWVkaXVtLWJsdWU7XG5cdFx0XHRcdHBhZGRpbmctdG9wOiA2cHg7XG5cdFx0XHRcdGk6YmVmb3JlIHtcblx0XHRcdFx0XHRmb250LXNpemU6IDE2cHg7XG5cdFx0XHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0XHRcdHRvcDogMnB4O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHRcdC5hZGQtdG8tcXVvdGUge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcblx0XHRcdHBhZGRpbmctdG9wOiA1cHg7XG5cdFx0fVxuXHR9XG59XG5cblxuLyogdGVtcCBmaXhlcyAqL1xuXG4vLy5hZG1pbl9fZ3JpZCAuZ3JpZFBhbmVsIC5ncmlkUGFuZWxfX2lubmVyIHtcbi8vXHQuZ3JpZFBhbmVsX19vcHRpb25zLCAuZ3JpZFBhbmVsX19vcHRpb25zX192aXNpYmxlIHtcbi8vXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIGRvd24pIHtcbi8vXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuLy9cdFx0XHR0b3A6IDAuNjI0cmVtO1xuLy9cdFx0XHRyaWdodDogMC42MjRyZW07XG4vL1x0XHR9XG4vL1x0XHQuYnV0dG9uX19pbmxpbmVfX2Jsb2NrOmxhc3QtY2hpbGQge1xuLy9cdFx0XHRwYWRkaW5nLXRvcDogcmVtLWNhbGMoMTMpICFpbXBvcnRhbnQ7XG4vL1x0XHRcdGJhY2tncm91bmQtY29sb3I6ICNmZWQgIWltcG9ydGFudDtcbi8vXHRcdH1cbi8vXHRcdC5idXR0b25fX2lubGluZV9fYmxvY2s6bnRoLWNoaWxkKDIpIHtcbi8vXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bikge1xuLy9cdFx0XHRcdHdpZHRoOiAkcXR5LWNvbnRyb2xzLWlucHV0LXdpZHRoICFpbXBvcnRhbnQ7XG4vL1x0XHRcdFx0cGFkZGluZy10b3A6IDNweCAhaW1wb3J0YW50O1xuLy9cdFx0XHR9XG4vL1x0XHR9XG4vL1x0fVxuLy99XG5cbi5nYWxsZXJ5X19ibG9jayB7XG5cdHBhZGRpbmctYm90dG9tOiAyMHB4O1xuXHRpbWcge1xuXHRcdHdpZHRoOjEwMCU7XG5cdH1cbn0iLCJmb3JtXG57XG5cblx0LyomLnNlYXJjaF9fZm9ybVxuXHR7XG5cdFx0aW5wdXRbdHlwZT1cInRleHRcIl1cblx0XHR7XG5cdFx0XHRoZWlnaHQ6IGF1dG87XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHRcdFx0cGFkZGluZzogcmVtLWNhbGMoMTIpIHJlbS1jYWxjKDE1KSByZW0tY2FsYyg4KTtcblx0XHRcdGJvcmRlcjogMnB4IHNvbGlkICRibHVlO1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCAzcHggY2VudGVyO1xuXHRcdFx0YmFja2dyb3VuZC1zaXplOiAyMHB4O1xuXHRcdFx0Ym94LXNoYWRvdzogbm9uZTtcblx0XHRcdGNvbG9yOiAkYmx1ZTtcblx0XHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuXHRcdFx0Ly9saW5lLWhlaWdodDogcmVtLWNhbGMoMTQpO1xuXG5cdFx0XHRAaW5jbHVkZSBwbGFjZWhvbGRlclxuXHRcdFx0e1xuXHRcdFx0XHRjb2xvcjogJG1lZC1ibHVlO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXG5cdH0qL1xuXG5cdCYuZWRpdF9fZm9ybVxuXHR7XG5cdFx0bGVnZW5kXG5cdFx0e1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdHBhZGRpbmctdG9wOiByZW0tY2FsYygzMCk7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiByZW0tY2FsYygyMCk7XG5cdFx0XHRwYWRkaW5nLWJvdHRvbTogcmVtLWNhbGMoMTApO1xuXHRcdFx0Ym9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICRibHVlO1xuXHRcdFx0Y29sb3I6ICRibHVlO1xuXHRcdFx0Zm9udC1mYW1pbHk6ICdTb2ZpYVByby1MaWdodCc7XG5cdFx0XHRmb250LXNpemU6IHJlbS1jYWxjKDE4KTtcblx0XHRcdGZvbnQtd2VpZ2h0OiA0MDA7XG5cblx0XHRcdCYuaGlkZVxuXHRcdFx0e1xuXHRcdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGZpZWxkc2V0XG5cdFx0e1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoNDApO1xuXHRcdH1cblxuXHRcdGxhYmVsXG5cdFx0e1xuXHRcdFx0bWFyZ2luOiAwIDAgcmVtLWNhbGMoLTIpIDA7XG5cdFx0XHRjb2xvcjogJGJsdWU7XG5cdFx0XHRmb250LXNpemU6IHJlbS1jYWxjKDEzKTtcblx0XHR9XG5cblxuXHRcdC5mb3JtX19yb3dcblx0XHR7XG5cdFx0XHRtYXJnaW46IDAgMCByZW0tY2FsYygxMCk7XG5cblx0XHRcdCYuYmFubmVySW1hZ2Vcblx0XHRcdHtcblx0XHRcdFx0bGFiZWxcblx0XHRcdFx0e1xuXHRcdFx0XHRcdGZvbnQtd2VpZ2h0OiA0MDA7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0Ji5oYWxmXG5cdFx0XHR7XG5cdFx0XHRcdC5oYWxmX19yb3dcblx0XHRcdFx0e1xuXHRcdFx0XHRcdEBpbmNsdWRlIGZsZXgtZ3JpZC1yb3coJ2NvbGxhcHNlJywgJ2V4cGFuZCcpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHQmLmhhbGYtZGVza3RvcCB7XG5cdFx0XHRcdEBtZWRpYSAobWluLXdpZHRoOiA5MDBweCkge1xuXHRcdFx0XHRcdC5oYWxmX19yb3dcblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRAaW5jbHVkZSBmbGV4LWdyaWQtcm93KCdjb2xsYXBzZScsICdleHBhbmQnKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdCYubm9fX2xhYmVsXG5cdFx0XHR7XG5cdFx0XHRcdGxhYmVsXG5cdFx0XHRcdHtcblx0XHRcdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC5pbnB1dC1ncm91cC1sYWJlbFxuXHRcdFx0e1xuXHRcdFx0XHRwYWRkaW5nOiAwIHJlbS1jYWxjKDE1KTtcblx0XHRcdFx0Y29sb3I6ICRibHVlO1xuXG5cdFx0XHRcdCYubGFyZ2VyXG5cdFx0XHRcdHtcblx0XHRcdFx0XHRmb250LXNpemU6IHJlbS1jYWxjKDI0KTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQuaW5wdXQtZ3JvdXBcblx0XHRcdHtcblx0XHRcdFx0Ji5pbnB1dC1ncm91cC1yaWdodFxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0LmlucHV0LWdyb3VwLWxhYmVsXG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0Ly8gYm9yZGVyOiAycHggc29saWQgJGJsdWU7XG5cdFx0XHRcdFx0XHRib3JkZXI6IDAgbm9uZTtcblx0XHRcdFx0XHRcdGJvcmRlci1sZWZ0OiAwO1xuXHRcdFx0XHRcdFx0YmFja2dyb3VuZDogJHdoaXRlO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdGlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxuXHRcdFx0XHRcdGlucHV0W3R5cGU9XCJlbWFpbFwiXSxcblx0XHRcdFx0XHRpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl1cblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRib3JkZXItcmlnaHQ6IDA7XG5cdFx0XHRcdFx0XHRwYWRkaW5nLXJpZ2h0OiAwO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdCYuaW5wdXQtZ3JvdXAtbGVmdFxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0LmlucHV0LWdyb3VwLWxhYmVsXG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0Ly8gYm9yZGVyOiAycHggc29saWQgJGJsdWU7XG5cdFx0XHRcdFx0XHRib3JkZXI6IDAgbm9uZTtcblx0XHRcdFx0XHRcdGJvcmRlci1yaWdodDogMDtcblx0XHRcdFx0XHRcdGJhY2tncm91bmQ6ICR3aGl0ZTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRpbnB1dFt0eXBlPVwidGV4dFwiXSxcblx0XHRcdFx0XHRpbnB1dFt0eXBlPVwiZW1haWxcIl0sXG5cdFx0XHRcdFx0aW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdXG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0Ym9yZGVyLWxlZnQ6IDA7XG5cdFx0XHRcdFx0XHRwYWRkaW5nLWxlZnQ6IDA7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC5mb3JtX19jb2xcblx0XHRcdHtcblx0XHRcdFx0QGluY2x1ZGUgZmxleC1ncmlkLWNvbHVtbignZXhwYW5kJywgMCk7XG5cblx0XHRcdFx0cGFkZGluZy1yaWdodDogcmVtLWNhbGMoOCk7XG5cdFx0XHRcdHBhZGRpbmctbGVmdDogcmVtLWNhbGMoOCk7XG5cdFx0XHRcdCY6Zmlyc3QtY2hpbGRcblx0XHRcdFx0e1xuXHRcdFx0XHRcdHBhZGRpbmctbGVmdDogMDtcblx0XHRcdFx0fVxuXHRcdFx0XHQmOmxhc3QtY2hpbGRcblx0XHRcdFx0e1xuXHRcdFx0XHRcdHBhZGRpbmctcmlnaHQ6IDA7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblxuXHRcdGlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxuXHRcdGlucHV0W3R5cGU9XCJlbWFpbFwiXSxcblx0XHRpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0sXG5cdFx0dGV4dGFyZWEsXG5cdFx0c2VsZWN0XG5cdFx0e1xuXHRcdFx0aGVpZ2h0OiBhdXRvO1xuXHRcdFx0cGFkZGluZzogcmVtLWNhbGMoMTgpIHJlbS1jYWxjKDE1KSByZW0tY2FsYygxNCk7XG5cdFx0XHQvLyBib3JkZXI6IDJweCBzb2xpZCAkYmx1ZTtcblx0XHRcdGJvcmRlcjogMCBub25lO1xuXHRcdFx0Ly8gYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG5cdFx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCAzcHggY2VudGVyO1xuXHRcdFx0YmFja2dyb3VuZC1zaXplOiAyMHB4O1xuXHRcdFx0Ym94LXNoYWRvdzogbm9uZTtcblx0XHRcdGNvbG9yOiAkYmx1ZTtcblx0XHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuXHRcdFx0Ly9saW5lLWhlaWdodDogcmVtLWNhbGMoMTQpO1xuXG5cdFx0XHQvKlxuXHRcdFx0QGluY2x1ZGUgcGxhY2Vob2xkZXJcblx0XHRcdHtcblx0XHRcdFx0Y29sb3I6ICRtZWQtYmx1ZTtcblx0XHRcdH1cblx0XHRcdCovXG5cblx0XHRcdDo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7IC8qIENocm9tZS9PcGVyYS9TYWZhcmkgKi9cblx0XHRcdFx0Y29sb3I6ICNlMGUwZTA7XG5cdFx0XHR9XG5cdFx0XHQ6Oi1tb3otcGxhY2Vob2xkZXIgeyAvKiBGaXJlZm94IDE5KyAqL1xuXHRcdFx0XHRjb2xvcjogI2UwZTBlMDtcblx0XHRcdH1cblx0XHRcdDotbXMtaW5wdXQtcGxhY2Vob2xkZXIgeyAvKiBJRSAxMCsgKi9cblx0XHRcdFx0Y29sb3I6ICNlMGUwZTA7XG5cdFx0XHR9XG5cdFx0XHQ6LW1vei1wbGFjZWhvbGRlciB7IC8qIEZpcmVmb3ggMTgtICovXG5cdFx0XHRcdGNvbG9yOiAjZTBlMGUwO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHNlbGVjdFxuXHRcdHtcblx0XHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybCgnL2ltZy9hZG1pbi9kcm9wZG93bi5zdmcnKTtcblx0XHR9XG5cdH1cbn1cblxuXG5ib2R5XG57XG5cdCYuZWRpdFxuXHR7XG5cdFx0LmlubmVyX19jb250ZW50X19ibG9ja1xuXHRcdHtcblx0XHRcdEBleHRlbmQgLmxhcmdlLTg7XG5cdFx0fVxuXHR9XG59XG5cbiNyZWZlcnJhbFNlbGVjdCxcbiNjdXN0b21lclNlbGVjdFxue1xuXHRtYXJnaW4tYm90dG9tOiByZW0tY2FsYygzMCk7XG59XG5cbi54ZXJvIHtcblx0cGFkZGluZzogMCAyMHB4ICFpbXBvcnRhbnQ7XG5cblx0LmFjY291bnQge1xuXHRcdG1hcmdpbi10b3A6IDIwcHg7XG5cdH1cblxuXHQuZGlzYWJsZWQge1xuXHRcdGJhY2tncm91bmQ6IGxpZ2h0Z3JleTtcblx0XHRjb2xvcjogd2hpdGU7XG5cdH1cbn0iLCIjc2xpZGVyXG57XG5cdHBhZGRpbmc6IHJlbS1jYWxjKDMwKTtcblx0YmFja2dyb3VuZDogJHdoaXRlO1xuXG5cdGgyXG5cdHtcblx0XHRtYXJnaW46IDA7XG5cdFx0Y29sb3I6ICRibHVlO1xuXHRcdGZvbnQtZmFtaWx5OiAnU29maWFQcm8tTGlnaHQnO1xuXHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoMjQpO1xuXHR9XG5cdGlucHV0W3R5cGU9XCJ0ZXh0XCJdLCBpbnB1dFt0eXBlPVwiZW1haWxcIl0sIHRleHRhcmVhLCBzZWxlY3Qge1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkICR4bGlnaHQtZ3JleTtcblx0fVxuXHRpbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcblx0XHRib3JkZXI6IG5vbmU7XG5cdFx0Zm9udC1zaXplOiAyMHB4O1xuXHRcdHBhZGRpbmctdG9wOiA4cHg7XG5cdFx0ZmxvYXQ6IHJpZ2h0O1xuXHRcdG1hcmdpbi10b3A6IDEwcHg7XG5cdH1cblx0LmJhbm5lckltYWdlIHtcblx0XHRwYWRkaW5nOiAyMHB4IDA7XG5cdH1cbn1cblxuLmZsZXgtdGl0bGUtc3RyaXAge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHR3aWR0aDogMTAwJTtcblx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXHRwYWRkaW5nLWJvdHRvbTogMTBweDtcblx0aDIsIC5jbG9zZV9fYnV0dG9uIHtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdH1cblx0LmNsb3NlX19idXR0b24ge1xuXHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHRzcGFuIHtcblx0XHRcdCY6YmVmb3JlIHtcblx0XHRcdFx0Zm9udC1zaXplOiAyMnB4O1xuXHRcdFx0XHRjb2xvcjogJGxpZ2h0LWJsdWU7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cblxuXG5cblxuXG5cblxuXG4iLCIuaW1hZ2UtZHJvcHpvbmUsIC5nYWxsZXJ5LWRyb3B6b25lXG57XG5cdHdpZHRoOiAxMDAlO1xuXHRoZWlnaHQ6IHJlbS1jYWxjKDE0MCk7XG5cdGJvcmRlcjogMnB4IGRhc2hlZCAkeGxpZ2h0LWdyZXk7XG5cdGJvcmRlci1yYWRpdXM6IDhweDtcblx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcblx0dHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjJzIGxpbmVhcjtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHQmOmhvdmVyIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBtaXgoI2ZmZiwgJHhsaWdodC1ncmV5LCA3MCUpO1xuXHR9XG5cdEBleHRlbmQgLmFsaWduLW1pZGRsZTtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdCY6YWZ0ZXJcblx0e1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRjb250ZW50OiAnXFxmMDMwJztcblx0XHRmb250LWZhbWlseTogJ0ZvbnRBd2Vzb21lJztcblx0XHRjb2xvcjogJGxpZ2h0LWJsdWU7XG5cdFx0Zm9udC1zaXplOiByZW0tY2FsYygyNSk7XG5cdFx0bWFyZ2luOiByZW0tY2FsYygtMTgpIDAgMCByZW0tY2FsYygtMTMpO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRsZWZ0OiA1MCU7XG5cdFx0dG9wOiA1MCU7XG5cdH1cblxuXG5cdC5kei1kZWZhdWx0LFxuXHQuZHotcHJldmlld1xuXHR7XG5cdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdG1hcmdpbjogMDtcblx0XHRib3JkZXI6IDJweCBkb3R0ZWQgdHJhbnNwYXJlbnQ7XG5cdFx0Ym9yZGVyLXJhZGl1czogMDtcblx0XHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblxuXHRcdHNwYW5cblx0XHR7XG5cdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdH1cblxuXHRcdC5kei1pbWFnZVxuXHRcdHtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogMDtcblx0XHR9XG5cdH1cbn1cblxuXG4ucGFuZWxcbntcblx0LnBhbmVsX19zZWN0aW9uXG5cdHtcblx0XHRtYXJnaW4tYm90dG9tOiByZW0tY2FsYyg1MCk7XG5cblx0XHQuaW1hZ2VzXG5cdFx0e1xuXHRcdFx0Ly9AaW5jbHVkZSBmbGV4LWdyaWQtcm93KCdjb2xsYXBzZScsICdleHBhbmQnKTtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0Ly9tYXJnaW4tbGVmdDogcmVtLWNhbGMoLTE1KTtcblx0XHRcdC8vbWFyZ2luLXJpZ2h0OiByZW0tY2FsYygtMTUpO1xuXG5cdFx0XHQuaW1hZ2VzX19saXN0LS1pbWFnZVxuXHRcdFx0e1xuXHRcdFx0XHQvL0BpbmNsdWRlIGZsZXgtZ3JpZC1jb2x1bW4oNCk7XG5cdFx0XHRcdC8vaGVpZ2h0OiByZW0tY2FsYygxNDApO1xuXHRcdFx0XHQvL21hcmdpbi1ib3R0b206IHJlbS1jYWxjKDMwKSAhaW1wb3J0YW50O1xuXHRcdFx0XHQvL3BhZGRpbmctbGVmdDogcmVtLWNhbGMoMTUpICFpbXBvcnRhbnQ7XG5cdFx0XHRcdC8vcGFkZGluZy1yaWdodDogcmVtLWNhbGMoMTUpICFpbXBvcnRhbnQ7XG5cdFx0XHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0XHRcdFxuXHRcdFx0XHRpbWcgXG5cdFx0XHRcdHtcblx0XHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0XHRtYXJnaW4tYm90dG9tOiByZW0tY2FsYygxMCk7XG5cblx0XHRcdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKVxuXHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDIwKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0LmltYWdlc19fbGlzdFxuXHRcdFx0e1xuXHRcdFx0XHRAaW5jbHVkZSBmbGV4LWdyaWQtcm93KCdjb2xsYXBzZScsICdleHBhbmQnKTtcblx0XHRcdFx0bWFyZ2luLWxlZnQ6IHJlbS1jYWxjKC0xNSk7XG5cdFx0XHRcdG1hcmdpbi1yaWdodDogcmVtLWNhbGMoLTE1KTtcblx0XHRcdH1cblxuXHRcdFx0c3BhblxuXHRcdFx0e1xuXHRcdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0Y29sb3I6ICRsaWdodC1ibHVlO1xuXHRcdFx0XHRmb250LXNpemU6IHJlbS1jYWxjKDQwKTtcblx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0fVxuXG5cdFx0fVxuXG5cdFx0Ji5kcm9wXG5cdFx0e1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogMHB4O1xuXG5cdFx0XHQ+IGRpdiBcblx0XHRcdHtcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMTApO1xuXG5cdFx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgdXApXG5cdFx0XHRcdHtcblx0XHRcdFx0XHRtYXJnaW4tYm90dG9tOiByZW0tY2FsYygyMCk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQmOmxhc3QtY2hpbGRcblx0XHRcdFx0e1xuXHRcdFx0XHRcdG1hcmdpbi1ib3R0b206IDBweDtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGltZyBcblx0XHRcdFx0e1xuXHRcdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59IiwiLmZsYXNoX19ub3RpY2Vcbntcblx0cGFkZGluZzogcmVtLWNhbGMoMTUpIHJlbS1jYWxjKDMwKTtcblx0Y29sb3I6ICR3aGl0ZTtcblx0Zm9udC1zaXplOiByZW0tY2FsYygxMik7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0cG9zaXRpb246IGZpeGVkO1xuXHRsZWZ0OiByZW0tY2FsYygyNzApO1xuXHRyaWdodDogMDtcblx0dG9wOiByZW0tY2FsYyg4MCk7XG5cdHotaW5kZXg6IDE7XG5cblx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gb25seSlcblx0e1xuXHRcdGxlZnQ6IHJlbS1jYWxjKDEwMCk7XG5cdH1cblxuXHQmOmFmdGVyXG5cdHtcblx0XHRjb250ZW50OiAnJztcblx0fVxuXG5cdCYuc3VjY2Vzc1xuXHR7XG5cdFx0YmFja2dyb3VuZDogJGxpZ2h0LWJsdWU7XG5cdH1cblxuXHQmLmVycm9yXG5cdHtcblx0XHRiYWNrZ3JvdW5kOiAkcmVkO1xuXHR9XG59IiwiLnVpLWRhdGVwaWNrZXJcbntcblx0cGFkZGluZzogMCByZW0tY2FsYygxMikgcmVtLWNhbGMoMTUpO1xuXHRAaW5jbHVkZSBib3JkZXItcmFkaXVzKDEwcHgpO1xuXHRiYWNrZ3JvdW5kOiAkd2hpdGU7XG5cdGJveC1zaGFkb3c6IDAgMCAxNXB4IHJnYmEoJGJsYWNrLCAwLjEpO1xuXHR6LWluZGV4OiA1MDAwICFpbXBvcnRhbnQ7XG5cblx0LnVpLWRhdGVwaWNrZXItaGVhZGVyXG5cdHtcblx0XHRoZWlnaHQ6IHJlbS1jYWxjKDYwKTtcblx0XHRtYXJnaW46IDAgcmVtLWNhbGMoLTEyKSByZW0tY2FsYygxMCk7XG5cdFx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGxpZ2h0ZW4oJGJsYWNrLCA4OC41JSk7XG5cdFx0QGluY2x1ZGUgY2xlYXJmaXgoKTtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0XHQudWktZGF0ZXBpY2tlci1wcmV2LFxuXHRcdC51aS1kYXRlcGlja2VyLW5leHRcblx0XHR7XG5cdFx0XHRoZWlnaHQ6IHJlbS1jYWxjKDYwKTtcblx0XHRcdGNvbG9yOiBsaWdodGVuKCRibGFjaywgNzAlKTtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdGxlZnQ6IDA7XG5cdFx0XHR0b3A6IDA7XG5cblx0XHRcdC51aS1pY29uXG5cdFx0XHR7XG5cdFx0XHRcdGNvbG9yOiB0cmFuc3BhcmVudDtcblxuXHRcdFx0XHQmOmJlZm9yZVxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdFx0cGFkZGluZzogcmVtLWNhbGMoMTApIHJlbS1jYWxjKDE1KTtcblx0XHRcdFx0XHRjb2xvcjogJGJsdWU7XG5cdFx0XHRcdFx0Zm9udC1zaXplOiByZW0tY2FsYygyNik7XG5cdFx0XHRcdFx0Zm9udC1mYW1pbHk6ICdGb250QXdlc29tZSc7XG5cdFx0XHRcdFx0Y29udGVudDogJ1xcZjEwNCc7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0Jjpob3ZlclxuXHRcdFx0e1xuXHRcdFx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LnVpLWRhdGVwaWNrZXItbmV4dFxuXHRcdHtcblx0XHRcdGxlZnQ6IGF1dG87XG5cdFx0XHRyaWdodDogMDtcblxuXHRcdFx0LnVpLWljb25cblx0XHRcdHtcblx0XHRcdFx0JjpiZWZvcmVcblx0XHRcdFx0e1xuXHRcdFx0XHRcdGNvbnRlbnQ6ICdcXGYxMDUnO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LnVpLWRhdGVwaWNrZXItdGl0bGVcblx0XHR7XG5cdFx0XHRwYWRkaW5nOiByZW0tY2FsYygxNSkgMDtcblx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdGNvbG9yOiAkYmx1ZTtcblx0XHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoMTgpO1xuXHRcdH1cblx0fVxuXG5cdC51aS1kYXRlcGlja2VyLWNhbGVuZGFyXG5cdHtcblx0XHRtYXJnaW46IDA7XG5cblx0XHR0aGVhZFxuXHRcdHtcblx0XHRcdGJvcmRlcjogMDtcblx0XHRcdGJhY2tncm91bmQ6ICR3aGl0ZTtcblxuXHRcdFx0dGhcblx0XHRcdHtcblx0XHRcdFx0cGFkZGluZzogcmVtLWNhbGMoOCkgcmVtLWNhbGMoMTIpO1xuXHRcdFx0XHRjb2xvcjogJGJsdWU7XG5cdFx0XHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoMTgpO1xuXHRcdFx0fVxuXHRcdH1cblxuXG5cdFx0dGJvZHlcblx0XHR7XG5cdFx0XHRib3JkZXI6IDA7XG5cdFx0XHRiYWNrZ3JvdW5kOiBub25lO1xuXG5cdFx0XHR0clxuXHRcdFx0e1xuXHRcdFx0XHQmOm50aC1jaGlsZChldmVuKVxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0YmFja2dyb3VuZDogbm9uZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHR0ZFxuXHRcdFx0e1xuXHRcdFx0XHRwYWRkaW5nOiByZW0tY2FsYyg4KSByZW0tY2FsYygxMikgcmVtLWNhbGMoNik7XG5cdFx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdFx0Y29sb3I6ICRibHVlO1xuXHRcdFx0XHRmb250LXNpemU6IHJlbS1jYWxjKDE4KTtcblxuXHRcdFx0XHRhXG5cdFx0XHRcdHtcblx0XHRcdFx0XHRjb2xvcjogJGJsdWU7XG5cblx0XHRcdFx0XHQmOmhvdmVyXG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdCY6aG92ZXJcblx0XHRcdFx0e1xuXHRcdFx0XHRcdEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoOHB4KTtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kOiAkbGlnaHQtYmx1ZTtcblx0XHRcdFx0XHRjb2xvcjogJHdoaXRlO1xuXG5cdFx0XHRcdFx0YVxuXHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdGNvbG9yOiAkd2hpdGU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ji51aS1kYXRlcGlja2VyLXRvZGF5XG5cdFx0XHRcdHtcblx0XHRcdFx0XHRAaW5jbHVkZSBib3JkZXItcmFkaXVzKDhweCk7XG5cdFx0XHRcdFx0YmFja2dyb3VuZDogbGlnaHRlbigkYmxhY2ssIDk1JSk7XG5cblx0XHRcdFx0XHQmOmhvdmVyXG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0QGluY2x1ZGUgYm9yZGVyLXJhZGl1cyg4cHgpO1xuXHRcdFx0XHRcdFx0YmFja2dyb3VuZDogJGxpZ2h0LWJsdWU7XG5cdFx0XHRcdFx0XHRjb2xvcjogJHdoaXRlO1xuXG5cdFx0XHRcdFx0XHRhXG5cdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdGNvbG9yOiAkd2hpdGU7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cblxuXG4uZGF0ZV9fdGltZV9fcGlja2VyXG57XG5cdG1hcmdpbjogMCByZW0tY2FsYygtNSk7XG5cdEBpbmNsdWRlIGNsZWFyZml4KCk7XG5cblx0LmRhdGVfX3BpY2tlclxuXHR7XG5cdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0d2lkdGg6IDUwJTtcblx0XHRwYWRkaW5nOiAwIHJlbS1jYWxjKDUpO1xuXHR9XG5cblx0LnRpbWVfX3BpY2tlclxuXHR7XG5cdFx0ZmxvYXQ6IHJpZ2h0O1xuXHRcdHdpZHRoOiA1MCU7XG5cdFx0cGFkZGluZzogMCByZW0tY2FsYyg1KTtcblxuXHRcdC5zZWxlY3QsXG5cdFx0LmRpdmlkZXJcblx0XHR7XG5cdFx0XHRmbG9hdDogbGVmdDtcblx0XHRcdHdpZHRoOiA0NSU7XG5cdFx0fVxuXG5cdFx0LmRpdmlkZXJcblx0XHR7XG5cdFx0XHR3aWR0aDogMTAlO1xuXHRcdFx0bGluZS1oZWlnaHQ6IHJlbS1jYWxjKDYwKTtcblx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHR9XG5cdH1cbn0iLCJcbiRzaWRlYmFyLXdpZHRoOiA1MDBweDtcbiRzYi1pbWFnZS1oZWlnaHQ6IDEwMHB4O1xuXG4uc2lkZV9fYmFyXG57XG5cdHdpZHRoOiByZW0tY2FsYygkc2lkZWJhci13aWR0aCk7XG5cdHJpZ2h0OiByZW0tY2FsYygwIC0gJHNpZGViYXItd2lkdGgpICFpbXBvcnRhbnQ7XG5cdG1hcmdpbi1sZWZ0OiByZW0tY2FsYygzMCk7XG5cdGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcblx0Zm9udC1zaXplOiByZW0tY2FsYygxMyk7XG5cdGNvbG9yOiAkYmx1ZTtcblx0dHJhbnNpdGlvbjogcmlnaHQgMC4ycyBlYXNlO1xuXG5cdCYuaXMtb3BlblxuXHR7XG5cdFx0cmlnaHQ6IC0yMHB4ICFpbXBvcnRhbnQ7XG5cblx0XHQuaGlkZV9fYnV0dG9uX193cmFwcGVyXG5cdFx0e1xuXHRcdFx0LmhpZGVfX2J1dHRvblxuXHRcdFx0e1xuXHRcdFx0XHQuYXJyb3dcblx0XHRcdFx0e1xuXHRcdFx0XHRcdHRyYW5zZm9ybTogc2NhbGVYKC0xKSByb3RhdGUoLTQ1ZGVnKTtcblx0XHRcdFx0XHRsZWZ0OiByZW0tY2FsYygyNSk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQuaW5uZXJcblx0e1xuXHRcdGhlaWdodDogMTAwJTtcblx0XHRwYWRkaW5nLXRvcDpyZW0tY2FsYyg0Mik7XG5cdFx0cGFkZGluZy1yaWdodDogcmVtLWNhbGMoNTApO1xuXHRcdHBhZGRpbmctYm90dG9tOiByZW0tY2FsYygyMDApO1xuXHRcdHBhZGRpbmctbGVmdDogcmVtLWNhbGMoMzApO1xuXHRcdG92ZXJmbG93LXk6IHNjcm9sbDtcblx0fVxuXG5cdC5oaWRlX19idXR0b25fX3dyYXBwZXJcblx0e1xuXHRcdC8qIFRlbXBsYXRlOlxuXHRcdFx0PGRpdiBjbGFzcz1cImhpZGVfX2J1dHRvbl9fd3JhcHBlclwiPlxuXHRcdCAgICAgICAgPGRpdiBjbGFzcz1cImhpZGVfX2J1dHRvblwiPlxuXHRcdCAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcnJvd1wiPjwvZGl2PlxuXHRcdCAgICAgICAgPC9kaXY+XG5cdFx0ICAgIDwvZGl2PlxuXHRcdCovXG5cblx0XHR3aWR0aDogMDtcblx0XHRoZWlnaHQ6IDA7XG5cdFx0Ly9wb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0dG9wOiByZW0tY2FsYyg0MCk7XG5cdFx0cmlnaHQ6IHJlbS1jYWxjKDQwKTtcblxuXHRcdC5oaWRlX19idXR0b25cblx0XHR7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cdFx0XHR3aWR0aDogcmVtLWNhbGMoNzApO1xuXHRcdFx0aGVpZ2h0OiByZW0tY2FsYyg1MCk7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHQvL3RvcDogcmVtLWNhbGMoLTYwKTtcblx0XHRcdHRvcDogcmVtLWNhbGMoMzApO1xuXHRcdFx0Ly9yaWdodDogcmVtLWNhbGMoLTEwKTtcblx0XHRcdHJpZ2h0OiByZW0tY2FsYygkc2lkZWJhci13aWR0aCk7XG5cdFx0XHRib3JkZXItcmFkaXVzOiByZW0tY2FsYygxMCkgMCAwIHJlbS1jYWxjKDEwKTtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRsaWdodC1ibHVlO1xuXHRcdFx0b3BhY2l0eTogMC41O1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjFzIGxpbmVhcjtcbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG5cblx0XHRcdC5hcnJvd1xuXHRcdFx0e1xuXHRcdFx0XHR3aWR0aDogcmVtLWNhbGMoMjApO1xuXHRcdFx0XHRoZWlnaHQ6IHJlbS1jYWxjKDIwKTtcblx0XHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0XHR0b3A6IHJlbS1jYWxjKDE0KTtcblx0XHRcdFx0bGVmdDogcmVtLWNhbGMoMzApO1xuXHRcdFx0XHRib3JkZXItdG9wOiAycHggc29saWQgJHdoaXRlO1xuXHRcdFx0XHRib3JkZXItbGVmdDogMnB4IHNvbGlkICR3aGl0ZTtcblx0XHRcdFx0dHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQuc2lkZV9fYmFyX19oZWFkaW5nXG5cdHtcblx0XHRmb250LWZhbWlseTogJ1NvZmlhUHJvLUxpZ2h0Jztcblx0XHRmb250LXNpemU6IHJlbS1jYWxjKDE4KTtcblx0XHRwYWRkaW5nLWJvdHRvbTogcmVtLWNhbGMoOCk7XG5cdFx0bWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMjUpO1xuXHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkeGxpZ2h0LWdyZXk7XG5cdH1cblxuXHR0YWJsZSxcblx0dGJvZHksXG5cdHRoLFxuXHR0cixcblx0dGRcblx0e1xuXHRcdGJhY2tncm91bmQ6IG5vbmUgIWltcG9ydGFudDtcblx0XHRib3JkZXI6IG5vbmU7XG5cdH1cblxuXHR0YWJsZVxuXHR7XG5cdFx0bWFyZ2luOiAwO1xuXHR9XG5cblx0dGRcblx0e1xuXHRcdHBhZGRpbmc6IDA7XG5cblx0XHQmOm50aC1jaGlsZChvZGQpXG5cdFx0e1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHR9XG5cdH1cblxuXHRmaWVsZHNldFxuXHR7XG5cdFx0bWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMjUpO1xuXG5cdFx0bGVnZW5kXG5cdFx0e1xuXHRcdFx0Y29sb3I6ICRncmV5O1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMTApO1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cblx0XHRcdC5pY29uLWVkaXRcblx0XHRcdHtcblx0XHRcdFx0ZmxvYXQ6IHJpZ2h0O1xuXHRcdFx0XHRmb250LXNpemU6IHJlbS1jYWxjKDE2KTtcblx0XHRcdFx0Y29sb3I6ICRsaWdodC1ibHVlO1xuXHRcdFx0XHRtYXJnaW4tcmlnaHQ6IHJlbS1jYWxjKDEwKTtcblx0XHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0XHR0b3A6IHJlbS1jYWxjKDEpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC5ibG9ja19fM1xuXHR7XG5cdFx0dHI6bnRoLWxhc3QtY2hpbGQoMSksXG5cdFx0dHI6bnRoLWxhc3QtY2hpbGQoMiksXG5cdFx0dHI6bnRoLWxhc3QtY2hpbGQoMylcblx0XHR7XG5cdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0fVxuXG5cdFx0dHI6bnRoLWxhc3QtY2hpbGQoMyksXG5cdFx0dHI6bnRoLWxhc3QtY2hpbGQoMilcblx0XHR7XG5cdFx0XHR0ZDpudGgtbGFzdC1jaGlsZCgxKVxuXHRcdFx0e1xuXHRcdFx0XHQmOjphZnRlclxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0Y29udGVudDogXCIuXCI7XG5cdFx0XHRcdFx0bWFyZ2luLXJpZ2h0OiByZW0tY2FsYyg1KTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC5ibG9ja19fNFxuXHR7XG5cdFx0bGVnZW5kXG5cdFx0e1xuXHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0cGFkZGluZy1ib3R0b206IHJlbS1jYWxjKDEwKTtcblx0XHRcdC8vYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRsaWdodC1ncmV5O1xuXHRcdH1cblxuXHRcdC5hZGRfX3Jvb21cblx0XHR7XG5cdFx0XHRtYXJnaW46IHJlbS1jYWxjKDIwKSAwO1xuXG5cdFx0XHQuYnV0dG9uX193cmFwcGVyXG5cdFx0XHR7XG5cdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdH1cblxuXHRcdFx0LmFkZF9fcm9vbV9fbGFiZWxcblx0XHRcdHtcblx0XHRcdFx0bWFyZ2luLWxlZnQ6IHJlbS1jYWxjKDEwKTtcblx0XHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0XHR0b3A6IHJlbS1jYWxjKDUpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdCYuYWxlcnRfX2JveF9fY29udGFpbmVyXG5cdHtcblx0XHRwYWRkaW5nOiAwO1xuXHRcdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXHR9XG5cblx0Ji5zdW1tYXJ5X19iYXJcblx0e1xuXHRcdGhlaWdodDogMTAwJTtcblx0XHRwb3NpdGlvbjogZml4ZWQ7XG5cdFx0bWFyZ2luLXRvcDogcmVtLWNhbGMoLTMwKTtcblx0XHRib3gtc2hhZG93OiAwIDAgMTVweCAwIHJnYmEoMCwgMCwgMCwgMC4wNSk7XG5cdFx0ei1pbmRleDogNTtcblx0XHQubWlzc2luZ1xuXHRcdHtcblx0XHRcdHBhZGRpbmc6IHJlbS1jYWxjKDUwKSByZW0tY2FsYygxMCk7XG5cblx0XHRcdHBcblx0XHRcdHtcblx0XHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC5pdGVtbGluZSB7XG5cdFx0PiBkaXYge1xuXHRcdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0XHRwYWRkaW5nOiAxMHB4IDA7XG5cdFx0XHQmLnF0eSB7XG5cdFx0XHRcdHdpZHRoOiAyNXB4O1xuXHRcdFx0fVxuXHRcdFx0Ji5pdGVtbmFtZSB7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMTRweDtcblx0XHRcdFx0Zm9udC13ZWlnaHQ6IDYwMDtcblx0XHRcdFx0Y29sb3I6ICRibHVlO1xuXHRcdFx0XHR3aWR0aDogY2FsYygxMDAlIC0gMTA1cHgpO1xuXHRcdFx0fVxuXHRcdFx0Ji5yZW1vdmUge1xuXHRcdFx0XHR3aWR0aDogODBweDtcblx0XHRcdH1cblx0XHRcdCYucXR5LWFkanVzdC1idXR0b25zIHtcblx0XHRcdFx0d2lkdGg6IDYwcHg7XG5cdFx0XHRcdHRleHQtYWxpZ246IHJpZ2h0O1xuXHRcdFx0XHRmbG9hdDogcmlnaHQ7XG5cdFx0XHRcdGEge1xuXHRcdFx0XHRcdHNwYW46YmVmb3JlIHtcblx0XHRcdFx0XHRcdGZvbnQtc2l6ZTogMjJweDtcblx0XHRcdFx0XHRcdGNvbG9yOiAkeGxpZ2h0LWdyZXk7XG5cdFx0XHRcdFx0XHR0cmFuc2l0aW9uOiBjb2xvciAwLjJzIGxpbmVhcjtcblx0XHRcdFx0XHRcdGxpbmUtaGVpZ2h0OiAwLjU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdCY6Zmlyc3QtY2hpbGQge1xuXHRcdFx0XHRcdFx0bWFyZ2luLXJpZ2h0OiAxNXB4O1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0XHRcdHNwYW46YmVmb3JlIHtcblx0XHRcdFx0XHRcdFx0Y29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0XHQmLnNoYWxsb3cgPiBkaXYge1xuXHRcdFx0cGFkZGluZzogMnB4IDA7XG5cdFx0fVxuXHR9XG59XG5cbi5hY2NvcmRpb24taXRlbSB7XG5cdGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuXHRib3JkZXItYm90dG9tOiAycHggc29saWQgJGJsdWUgIWltcG9ydGFudDtcblx0cGFkZGluZzogNXB4IDAgMTVweCAhaW1wb3J0YW50O1xuXHQuYWNjb3JkaW9uLWNsaWNrbGluZVxuXHR7XG5cdFx0cGFkZGluZzogNXB4IDAgMTBweDtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRzcGFuIHtcblx0XHRcdCYuY2FyZXQge1xuXHRcdFx0XHRtYXJnaW4tcmlnaHQ6IDhweDtcblx0XHRcdH1cblx0XHRcdCYucm9vbS10eXBlIHtcblx0XHRcdFx0Zm9udC1zaXplOiAxN3B4O1xuXHRcdFx0XHRmb250LXdlaWdodDogNjAwO1xuXHRcdFx0XHRjb2xvcjogJGJsdWU7XG5cdFx0XHR9XG5cdFx0XHQmLml0ZW0tY291bnQge1xuXHRcdFx0XHRjb2xvcjogJGJsdWU7XG5cdFx0XHRcdG1hcmdpbi1sZWZ0OiA1cHg7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdC5hY2NvcmRpb24tY29udGVudCB7XG5cdFx0LmZvcm1fX3JvdyB7XG5cdFx0XHQuaW1hZ2VzIHtcblx0XHRcdFx0LmNsZWFyaW5nLXRodW1icyB7XG5cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0XHQuc3VtbWFyeS1nYWxsZXJ5IHtcblx0XHRcdHBhZGRpbmctYm90dG9tOiAyMHB4O1xuXHRcdFx0LmltYWdlc19fbGlzdC0taW1hZ2Uge1xuXHRcdFx0fVxuXHRcdFx0LmltYWdlLWNvbnRhaW5lciB7XG5cdFx0XHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHRcdFx0d2lkdGg6IGNhbGMoNTAlIC0gNXB4KTtcblx0XHRcdFx0aGVpZ2h0OiAkc2ItaW1hZ2UtaGVpZ2h0O1xuXHRcdFx0XHRtYXJnaW4tcmlnaHQ6IDEwcHg7XG5cdFx0XHRcdCY6bnRoLWNoaWxkKDIpLCAmLmRyb3B6b25lLWNvbnRhaW5lciB7XG5cdFx0XHRcdFx0bWFyZ2luLXJpZ2h0OiAwO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGZsb2F0OiBsZWZ0O1xuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiAxMHB4O1xuXHRcdFx0XHRvcGFjaXR5OiAxO1xuXHRcdFx0XHR0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMXMgbGluZWFyO1xuXHRcdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0XHRvcGFjaXR5OiAwLjY7XG5cdFx0XHRcdH1cblx0XHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0XHQuZGVsZXRlSW1hZ2Uge1xuXHRcdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0XHR0b3A6IDVweDtcblx0XHRcdFx0XHRyaWdodDogNXB4O1xuXHRcdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdFx0XHR3aWR0aDogMjVweDtcblx0XHRcdFx0XHRoZWlnaHQ6IDI1cHg7XG5cdFx0XHRcdFx0cGFkZGluZy10b3A6IDVweDtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuXHRcdFx0XHRcdGJvcmRlci1yYWRpdXM6IDRweDtcblx0XHRcdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRyZWQ7XG5cdFx0XHRcdFx0XHRjb2xvcjogI2ZmZjtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdFx0LmltYWdlLWRyb3B6b25lIHtcblx0XHRcdFx0XHRoZWlnaHQ6ICRzYi1pbWFnZS1oZWlnaHQ7XG5cdFx0XHRcdH1cblx0XHRcdFx0Lmhhcy10aXAge1xuXHRcdFx0XHRcdGJvcmRlci1ib3R0b206IG5vbmU7XG5cdFx0XHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG51bC5hY2NvcmRpb24gbGkuYWNjb3JkaW9uLWl0ZW0ge1xuXHQmLCAmLmlzLWFjdGl2ZSB7XG5cdFx0bWFyZ2luLWJvdHRvbTogMjBweDtcblx0fVxufVxuXG5cbi5tZnAtYmcge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG5cbn1cbi5tZnAtZmlndXJlOmFmdGVyIHtcbiAgICBib3gtc2hhZG93OiBub25lO1xufVxuXG5cblxuXG5cblxuLnNpZGVfX2JhciB7XG5cdHRhYmxlLmZuYW1lLXZhbCB7XG5cdFx0bWFyZ2luLXRvcDogMTBweDtcblx0XHR0ciB7XG5cdFx0XHR0ZCB7XG5cdFx0XHRcdHZlcnRpY2FsLWFsaWduOiB0b3A7XG5cdFx0XHRcdHBhZGRpbmctYm90dG9tOiA4cHg7XG5cdFx0XHRcdCY6Zmlyc3QtY2hpbGQge1xuXHRcdFx0XHRcdGRpc3BsYXk6IHRhYmxlLWNlbGw7XG5cdFx0XHRcdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0XHRcdFx0d2lkdGg6IDEyMHB4O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cblxuXG4iLCIudWktZGlhbG9nXG57XG5cdHdpZHRoOiByZW0tY2FsYyg1MDApICFpbXBvcnRhbnQ7XG5cdHBhZGRpbmc6IHJlbS1jYWxjKDMwKTtcblx0QGluY2x1ZGUgYm9yZGVyLXJhZGl1cygxMHB4KTtcblx0YmFja2dyb3VuZDogJHdoaXRlO1xuXHRib3gtc2hhZG93OiAwIDAgMTVweCByZ2JhKCRibGFjaywgMC4xKTtcblxuXHQudWktZGlhbG9nLXRpdGxlYmFyXG5cdHtcblx0XHRtYXJnaW4tYm90dG9tOiByZW0tY2FsYygyMCk7XG5cblx0XHQudWktZGlhbG9nLXRpdGxlXG5cdFx0e1xuXHRcdFx0Y29sb3I6ICRibHVlO1xuXHRcdFx0Zm9udC13ZWlnaHQ6IDcwMDtcblx0XHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoMTgpO1xuXHRcdH1cblx0fVxuXG5cdC51aS1kaWFsb2ctdGl0bGViYXItY2xvc2Vcblx0e1xuXHRcdGZsb2F0OiByaWdodDtcblx0XHR3aWR0aDogcmVtLWNhbGMoMjUpO1xuXHRcdGhlaWdodDogcmVtLWNhbGMoMjUpO1xuXHRcdHRleHQtaW5kZW50OiAtOTk5OXB4O1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHRcdCY6Zm9jdXNcblx0XHR7XG5cdFx0XHRvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7XG5cdFx0fVxuXG5cdFx0JjphZnRlclxuXHRcdHtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0d2lkdGg6IHJlbS1jYWxjKDI1KTtcblx0XHRcdGhlaWdodDogcmVtLWNhbGMoMjUpO1xuXHRcdFx0Y29udGVudDogJ1xcZTkwNic7XG5cdFx0XHRjb2xvcjogJGJsdWU7XG5cdFx0XHR0ZXh0LWluZGVudDogMDtcblx0XHRcdGZvbnQtZmFtaWx5OiAnS29udHJhc3RfaWNvbnNfdjInO1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0bGVmdDogMDtcblx0XHRcdHRvcDogMDtcblx0XHR9XG5cdH1cblxuXHQudWktZGlhbG9nLWJ1dHRvbnNldFxuXHR7XG5cdFx0bWFyZ2luLXRvcDogcmVtLWNhbGMoMjApO1xuXG5cdFx0LnVpLWJ1dHRvblxuXHRcdHtcblx0XHRcdEBleHRlbmQgLmJ1dHRvbl9fbGFyZ2VfX2JsdWU7XG5cblx0XHRcdCY6Zm9jdXNcblx0XHRcdHtcblx0XHRcdFx0b3V0bGluZTogbm9uZSAhaW1wb3J0YW50O1xuXHRcdFx0fVxuXG5cdFx0XHQmOmxhc3QtY2hpbGRcblx0XHRcdHtcblx0XHRcdFx0ZmxvYXQ6IHJpZ2h0O1xuXHRcdFx0XHRAZXh0ZW5kIC5idXR0b25fX25vcm1hbDtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn0iLCIuaGVscC1ibG9jaywgLmFsZXJ0XG57XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uaGVscC1ibG9ja1xue1xuXHRjb2xvcjogJHJlZDtcbn1cbi5hbGVydFxue1xuXHRjb2xvcjogJHJlZDtcbn1cbiIsIi5zZWFyY2hDb250YWluZXJcbntcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHR3aWR0aDogY2FsYygxMDAlIC0gMTIycHgpO1xufVxuXG4udmlzdWFsX3NlYXJjaCxcbi5zZWFyY2hfX2Zvcm1cbntcblx0d2lkdGg6IDEwMCU7XG5cdG1hcmdpbi1yaWdodDogcmVtLWNhbGMoMTApO1xuXG5cdGlucHV0XG5cdHtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0Ly93aWR0aDogY2FsYygxMDAlIC0gMTIycHgpO1xuXHRcdG1hcmdpbjogMDtcblx0XHRwYWRkaW5nOiByZW0tY2FsYygxMCkgcmVtLWNhbGMoMTUpIHJlbS1jYWxjKDcpO1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcblx0XHRib3JkZXI6IDJweCBzb2xpZCBsaWdodGVuKCRibGFjaywgOTAlKTtcblx0XHRib3gtc2hhZG93OiBub25lO1xuXHRcdGhlaWdodDogcmVtLWNhbGMoMzkpO1xuXHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoMTEpO1xuXHRcdGJvcmRlci1yYWRpdXM6IHJlbS1jYWxjKDUwKTtcblxuXHRcdCY6Zm9jdXNcblx0XHR7XG5cdFx0XHRvdXRsaW5lOiBub25lO1xuXHRcdFx0Ym94LXNoYWRvdzogbm9uZTtcblx0XHRcdGJvcmRlcjogMnB4IHNvbGlkIGxpZ2h0ZW4oJGJsYWNrLCA5MCUpO1xuXHRcdH1cblx0fVxuXG5cdGlucHV0W3R5cGU9c3VibWl0XVxuXHR7XG5cdFx0d2lkdGg6IGF1dG87XG5cdH1cblx0XG5cdCNzZWFyY2ggXG5cdHtcblx0XHQuVlMtc2VhcmNoXG5cdFx0e1xuXHRcdFx0LlZTLXNlYXJjaC1ib3gtd3JhcHBlclxuXHRcdFx0e1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG5cdFx0XHRcdGJvcmRlcjogMnB4IHNvbGlkIGxpZ2h0ZW4oJGJsYWNrLCA5MCUpO1xuXHRcdFx0XHRib3gtc2hhZG93OiBub25lO1xuXHRcdFx0XHRoZWlnaHQ6IHJlbS1jYWxjKDM5KTtcblx0XHRcdFx0Ym9yZGVyLXJhZGl1czogcmVtLWNhbGMoNTApO1xuXG5cdFx0XHRcdC5WUy1pY29uXG5cdFx0XHRcdHtcblx0XHRcdFx0XHQmLlZTLWljb24tc2VhcmNoXG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0dG9wOiByZW0tY2FsYygxMyk7XG5cdFx0XHRcdFx0XHRsZWZ0OiByZW0tY2FsYygxMSk7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0Ji5WUy1pY29uLWNhbmNlbFxuXHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdHRvcDogcmVtLWNhbGMoMTMpO1xuXHRcdFx0XHRcdFx0cmlnaHQ6IHJlbS1jYWxjKDExKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQuVlMtc2VhcmNoLWlubmVyXG5cdFx0XHRcdHtcblx0XHRcdFx0XHR0b3A6IHJlbS1jYWxjKDQpO1xuXG5cdFx0XHRcdFx0LnNlYXJjaF9pbnB1dFxuXHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdC51aS1hdXRvY29tcGxldGUtaW5wdXQgLy8gaW5wdXRbdHlwZT1cInRleHRcIl1cblx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdFx0XHRcdFx0XHRtYXJnaW46IDBweDtcblx0XHRcdFx0XHRcdFx0Ym9yZGVyOiBub25lO1xuXHRcdFx0XHRcdFx0XHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblx0XHRcdFx0XHRcdFx0Ym94LXNoYWRvdzogbm9uZTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHQuc2VhcmNoX2ZhY2V0X2lucHV0X2NvbnRhaW5lclxuXHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdFx0XHRcdHRvcDogcmVtLWNhbGMoMSk7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0LnNlYXJjaF9mYWNldF9yZW1vdmVcblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdFx0XHR0b3A6IHJlbS1jYWxjKDUpO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdC5zZWFyY2hfZmFjZXRfaW5wdXRcblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRmb250LXNpemU6IHJlbS1jYWxjKDExKTtcblx0XHRcdFx0XHRcdHBhZGRpbmc6IHJlbS1jYWxjKDEpIDBweCAwcHggcmVtLWNhbGMoNSk7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0Lypcblx0XHRcdFx0XHQuc2VhcmNoX2ZhY2V0XG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0cGFkZGluZy1sZWZ0OiAwcHg7XG5cblx0XHRcdFx0XHRcdC5jYXRlZ29yeVxuXHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0XHRcdFx0bWFyZ2luOiAwcHg7XG5cdFx0XHRcdFx0XHRcdHBhZGRpbmctdG9wOiAwcHg7XG5cdFx0XHRcdFx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdFx0XHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0XHRcdFx0XHR0b3A6IHJlbS1jYWxjKDMpO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHQqL1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cblxuLnNlYXJjaF9fZm9ybVxue1xuXHQudmlzdWFsX19zZWFyY2hfX2J1dHRvbl9fY29udGFpbmVyXG5cdHtcblx0XHRib3R0b206IDA7XG5cdH1cbn1cblxudWwudWktbWVudS51aS13aWRnZXQtY29udGVudFxue1xuXHRsaS51aS1tZW51LWl0ZW1cblx0e1xuXHRcdHBhZGRpbmc6IHJlbS1jYWxjKDEwKTtcblx0fVxufVxuXG4iLCIvKiBUZW1wbGF0ZSBcbjxkaXYgY2xhc3M9XCJhbGVydF9fYm94XCI+XG4gICAgPGRpdiBjbGFzcz1cImlubmVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbmZvX19pY29uX193cmFwcGVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5mb19faWNvblwiPmk8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0XCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFsZXJ0X19oZWFkaW5nXCI+e3sgJHJlY29yZC0+cmVmZXJlbmNlX25vIH19PC9zcGFuPiAtIHt7ICRyZWNvcmQtPmN1cnJlbnRBbGVydE1lc3NhZ2UoKSB9fSAmbmJzcDtcbiAgICAgICAgICAgIHshISBIdG1sOjpkZWxldGUoJ2FkbWluLnF1b3RlLmRlbGV0ZUFsZXJ0JywgJHJlY29yZC0+aWQpICEhfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImxpbmtfX2NvbnRhaW5lclwiPlxuICAgICAgICAgICAgPGEgaHJlZj1cIiNcIiBjbGFzcz1cImJveF9fbGluayBhcnJvd19fcmlnaHRcIj5JbmZvcm1hdGlvbiBCb3ggTGluazwvYT5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiovXG4uYWxlcnRfX2JveFxue1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdGJhY2tncm91bmQtY29sb3I6ICRwYWxlLWJsdWU7XG5cdHBhZGRpbmc6IHJlbS1jYWxjKDQwKSByZW0tY2FsYyg0MCkgcmVtLWNhbGMoMjApIHJlbS1jYWxjKDYwKTtcblx0bWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMjApO1xuXG5cdC5pbm5lclxuXHR7XG5cdFx0LmluZm9fX2ljb25fX3dyYXBwZXJcblx0XHR7XG5cdFx0XHR3aWR0aDogMHB4O1xuXHRcdFx0aGVpZ2h0OiAwcHg7XG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0XHRcdC5pbmZvX19pY29uIFxuXHRcdFx0e1xuXHRcdFx0XHR3aWR0aDogcmVtLWNhbGMoMjIpO1xuXHRcdFx0XHRoZWlnaHQ6IHJlbS1jYWxjKDIyKTtcblx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHRsZWZ0OiByZW0tY2FsYygtNDApO1xuXHRcdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHRcdGJvcmRlci1yYWRpdXM6IHJlbS1jYWxjKDEwMCk7XG5cdFx0XHRcdGJvcmRlcjogMXB4IHNvbGlkICRibHVlO1xuXHRcdFx0XHRjb2xvcjogJGJsdWU7XG5cdFx0XHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuXHRcdFx0XHRsaW5lLWhlaWdodDogcmVtLWNhbGMoMjIpO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC50ZXh0XG5cdFx0e1xuXHRcdFx0Y29sb3I6ICRibHVlO1xuXHRcdFx0Zm9udC1zaXplOiByZW0tY2FsYygxNCk7XG5cdFx0XHRsaW5lLWhlaWdodDogcmVtLWNhbGMoMjIpO1xuXHRcdFx0cGFkZGluZy1ib3R0b206IHJlbS1jYWxjKDIwKTtcblxuXHRcdFx0LmFsZXJ0X19oZWFkaW5nXG5cdFx0XHR7XG5cdFx0XHRcdGZvbnQtZmFtaWx5OiAnU29maWFNZWRpdW0nO1xuXHRcdFx0fVxuXG5cdFx0XHQuaWNvbi1kZWxldGVcblx0XHRcdHtcblx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHR0b3A6IHJlbS1jYWxjKDE1KTtcblx0XHRcdFx0cmlnaHQ6IHJlbS1jYWxjKDE1KTtcblx0XHRcdFx0Y29sb3I6ICRibHVlO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRcblx0XHQubGlua19fY29udGFpbmVyXG5cdFx0e1xuXHRcdFx0cGFkZGluZy10b3A6IHJlbS1jYWxjKDQwKTtcblxuXHRcdFx0LmJveF9fbGlua1xuXHRcdFx0e1xuXHRcdFx0XHR0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcblx0XHRcdFx0Zm9udC1mYW1pbHk6ICdTb2ZpYU1lZGl1bSc7XG5cdFx0XHRcdGNvbG9yOiAkYmx1ZTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn0iLCIuYXJyb3dfX3JpZ2h0XG57XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHQmOmJlZm9yZSxcblx0JjphZnRlclxuXHR7XG5cdFx0Y29udGVudDogXCJcIjtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0Ym9yZGVyLWNvbG9yOiAkYmx1ZTtcblx0XHRyaWdodDogcmVtLWNhbGMoLTI1KTtcblx0fVxuXG5cdCY6YmVmb3JlXG5cdHtcblx0XHR3aWR0aDogcmVtLWNhbGMoMTUpO1xuXHRcdGhlaWdodDogMHB4O1xuXHRcdGJvcmRlci10b3A6IDFweCBzb2xpZDtcblx0XHRib3R0b206IHJlbS1jYWxjKDcpO1xuXHR9XG5cblx0JjphZnRlclxuXHR7XG5cdFx0d2lkdGg6IHJlbS1jYWxjKDcpO1xuXHRcdGhlaWdodDogcmVtLWNhbGMoNyk7XG5cdFx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkO1xuXHRcdGJvcmRlci1yaWdodDogMXB4IHNvbGlkO1xuXHRcdHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcblx0XHRib3R0b206IHJlbS1jYWxjKDQpO1xuXHR9XG59IiwiLnRvcF9fYmFyXG57XG5cdG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDIwKTtcblxuXHQubGVmdCBcblx0e1xuXHRcdGEgXG5cdFx0e1xuXHRcdFx0Y29sb3I6ICRncmV5O1xuXHRcdFx0Zm9udC1zaXplOiByZW0tY2FsYygxNCk7XG5cdFx0fVxuXHR9XG5cblx0Lm1pZGRsZVxuXHR7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyOyBcblxuXHRcdC5jYXRlZ29yeV9fbmFtZVxuXHRcdHtcblx0XHRcdGNvbG9yOiAkYmx1ZTtcblx0XHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoMTYpO1xuXHRcdH1cblxuXHRcdC5hbW91bnRfX2F2YWlsYWJsZVxuXHRcdHtcblx0XHRcdGNvbG9yOiAkZ3JleTtcblx0XHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuXHRcdH1cblx0fVxuXG5cdC5yaWdodFxuXHR7XG5cdFx0LnByb2R1Y3RfX3NlYXJjaCBcblx0XHR7XG5cdFx0XHR0ZXh0LWFsaWduOiByaWdodDtcblx0XHRcdFxuXHRcdFx0I3Byb2R1Y3RfX3NlYXJjaGJhclxuXHRcdFx0e1xuXHRcdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHRcdGJhY2tncm91bmQ6IG5vbmU7XG5cdFx0XHRcdGJvcmRlcjogbm9uZTtcblx0XHRcdFx0Ym94LXNoYWRvdzogbm9uZTtcblx0XHRcdFx0bWF4LXdpZHRoOiByZW0tY2FsYygxNjApO1xuXHRcdFx0XHRtYXJnaW46IDBweDtcblx0XHRcdFx0cGFkZGluZzogMHB4O1xuXHRcdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHRcdGJvdHRvbTogcmVtLWNhbGMoNyk7XG5cdFx0XHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuXHRcdFx0XHRjb2xvcjogJGJsdWU7XG5cdFx0XHRcdHRleHQtYWxpZ246IHJpZ2h0O1xuXHRcdFx0XHRwYWRkaW5nLXJpZ2h0OiByZW0tY2FsYyg1KTtcblxuXHRcdFx0XHQmOjpwbGFjZWhvbGRlclxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0Y29sb3I6ICRibHVlO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdGxhYmVsIFxuXHRcdFx0e1xuXHRcdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cblx0XHRcdFx0Lmljb24tc2VhcmNoXG5cdFx0XHRcdHtcblx0XHRcdFx0XHRjb2xvcjogJGJsdWU7XG5cdFx0XHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0XHRcdGJvdHRvbTogcmVtLWNhbGMoNCk7XG5cdFx0XHRcdFx0Zm9udC1zaXplOiByZW0tY2FsYygxOCk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cbn0iLCIuYWRtaW5fX2xpc3RfX2Jhclxue1xuXHQvL21hcmdpbjogMHB4O1xuXHQvL2JvcmRlcjogbm9uZTtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRwYWRkaW5nLXRvcDogcmVtLWNhbGMoNDUpO1xuXG5cdGgxIFxuXHR7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHR9XG5cblx0LmdlbmVyYXRlX19QREZcblx0e1xuXHRcdC8vZmxvYXQ6IHJpZ2h0O1xuXHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuXHRcdC8vcG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuXHRcdC8vdG9wOiByZW0tY2FsYyg1KTtcblx0XHR0b3A6IGluaXRpYWwgIWltcG9ydGFudDtcblx0XHRyaWdodDogMHB4ICFpbXBvcnRhbnQ7XG5cdFx0Ym90dG9tOiByZW0tY2FsYygxMCkgIWltcG9ydGFudDtcblx0XHRjb2xvcjogJGJsdWU7XG5cblx0XHQuZmEtZmlsZS1wZGYtb1xuXHRcdHtcblx0XHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoMjApO1xuXHRcdFx0bWFyZ2luLWxlZnQ6IHJlbS1jYWxjKDE1KTtcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdHRvcDogcmVtLWNhbGMoMik7XG5cdFx0fVxuXHR9XG5cblx0Lm5lc3RlZF9fc2VhcmNoX19pY29uXG5cdHtcblx0XHRmbG9hdDogcmlnaHQ7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdHJpZ2h0OiByZW0tY2FsYygxMik7XG5cdFx0Ym90dG9tOiByZW0tY2FsYygyOSk7XG5cdH1cblxuXHQuaGVhZGluZ19fc3VtbWFyeVxuXHR7XG5cdFx0Zm9udC1zaXplOiByZW0tY2FsYygxNCk7XG5cdFx0bGluZS1oZWlnaHQ6IHJlbS1jYWxjKDIwKTtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0dmVydGljYWwtYWxpZ246IHRvcDtcblx0XHRjb2xvcjogJGxpZ2h0LWdyZXk7XG5cdH1cblxuXHQuYmFyX19taWRkbGVcblx0e1xuXHRcdC52aXN1YWxfX3NlYXJjaF9fYnV0dG9uX19jb250YWluZXJcblx0XHR7XG5cdFx0XHQuYnV0dG9uX19pbmxpbmVfX2Jsb2NrXG5cdFx0XHR7XG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0XHRoZWlnaHQ6IHJlbS1jYWxjKDM5KTtcblx0XHRcdFx0Ly9wYWRkaW5nOiAwcHggcmVtLWNhbGMoMjApICFpbXBvcnRhbnQ7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSBkb3duKSB7XG5cdFx0Lm5vZmxleC1tZWRpdW0ge1xuXHRcdFx0aGVpZ2h0OiAxNjBweDtcblx0XHRcdC5iYXJfX2xlZnQtY29udGFpbmVyLCAuYmFyX19yaWdodC1jb250YWluZXIge1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0bWF4LXdpZHRoOiBub25lO1xuXHRcdFx0fVxuXHRcdFx0LmJhcl9fcmlnaHQtY29udGFpbmVyIHtcblx0XHRcdFx0Y2xlYXI6IGJvdGg7XG5cdFx0XHRcdHBhZGRpbmctdG9wOiAyMHB4O1xuXHRcdFx0XHQuYmFyX19yaWdodCB7XG5cdFx0XHRcdFx0LmJ1dHRvbl9fZ3JvdXAge1xuXHRcdFx0XHRcdFx0bGVmdDogMDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblx0Ly8uYmFyX19sZWZ0LWNvbnRhaW5lciB7XG5cdC8vXHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIGRvd24pIHtcblx0Ly9cdFx0d2lkdGg6IDEwMCU7XG5cdC8vXHR9XG5cdC8vfVxuXHQvLy5iYXJfX3JpZ2h0LWNvbnRhaW5lciB7XG5cdC8vXHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIGRvd24pIHtcblx0Ly9cdFx0d2lkdGg6IDEwMCU7XG5cdC8vXHRcdGNsZWFyOiBib3RoO1xuXHQvL1x0XHQuYmFyX19yaWdodCB7XG5cdC8vXHRcdFx0LmJ1dHRvbl9fZ3JvdXAge1xuXHQvL1x0XHRcdFx0bGVmdDogMDtcblx0Ly9cdFx0XHR9XG5cdC8vXHRcdH1cblx0Ly9cdH1cblx0Ly99XG5cblx0LmJhcl9fcmlnaHRcblx0e1xuXHRcdC5idXR0b25fX2dyb3VwXG5cdFx0e1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0cmlnaHQ6IDA7XG5cdFx0fVxuXHR9XG59XG4uYnV0dG9uX19ncm91cCBcdHtcblx0LmJ1dHRvbl9faW5saW5lX19ibG9jayB7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0cGFkZGluZy10b3A6IHJlbS1jYWxjKDEzKSAhaW1wb3J0YW50O1xuXHR9XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0cmlnaHQ6IDA7XG5cdCYudHJpcGxlLWJ1dHRvbiB7XG5cdFx0d2lkdGg6IDM3NHB4O1xuXHR9XG59XG5cblxuLnNtLW1hcmdpbi1sZWZ0IHtcblx0bWFyZ2luLWxlZnQ6IDE1cHg7XG59XG5cblxuLyogb3Zlci1yaWRlIGRpc3BsYXk6IGZsZXggKi9cbiNtYWluX19jb250ZW50ICNjb250ZW50X19ibG9jayAucm93Lm5vZmxleC1tZWRpdW0ge1xuXHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIGRvd24pIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHQuY29sdW1uLCAuY29sdW1ucyB7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHR9XG5cdH1cbn1cblxuXG5cblxuXG5cblxuXG5cbiIsIi5zZWxlY3RpemUtY29udHJvbFxue1xuXHQuc2VsZWN0aXplLWlucHV0XG5cdHtcblx0XHRib3JkZXItcmFkaXVzOiAwcHg7XG5cdFx0cGFkZGluZzogcmVtLWNhbGMoMTgpIHJlbS1jYWxjKDE1KSByZW0tY2FsYygxNCk7XG5cdFx0Ym94LXNoYWRvdzogbm9uZTtcblx0XHRmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcblx0XHRib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcblx0XHRoZWlnaHQ6IDUzcHggIWltcG9ydGFudDtcblx0XHRsaW5lLWhlaWdodDogMzhweCAhaW1wb3J0YW50O1xuXHR9XG59IiwidWwudGFicyBcbntcblx0bWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoLTIpO1xuXHRib3JkZXI6IG5vbmU7XG5cdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXG5cdGxpXG5cdHtcblx0XHRib3JkZXI6IDJweCBzb2xpZCAkYmx1ZTtcblx0XHRib3JkZXItYm90dG9tOiAycHggc29saWQgJGJsdWU7XG5cdFx0Ym9yZGVyLXJpZ2h0OiBub25lO1xuXHRcdGJvcmRlci1ib3R0b206IG5vbmU7XG5cblx0XHQmOmxhc3QtY2hpbGRcblx0XHR7XG5cdFx0XHRib3JkZXItcmlnaHQ6IDJweCBzb2xpZCAkYmx1ZTtcblx0XHR9XG5cblx0XHQmLmlzLWFjdGl2ZVxuXHRcdHtcblx0XHRcdGJvcmRlci1ib3R0b206IG5vbmU7XG5cblx0XHRcdGEgXG5cdFx0XHR7XG5cdFx0XHRcdC8vIGJvcmRlci1ib3R0b20gc2V0IHRvIG9mZi13aGl0ZSB0byBtYXRjaCBiYWNrZ3JvdW5kIG9mIGdlbmVyYWwgcGFnZXMuXG5cdFx0XHRcdGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAkb2ZmLXdoaXRlO1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblx0XHRcdFx0Y29sb3I6ICRibHVlO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGEgXG5cdFx0e1xuXHRcdFx0Ym9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICRibHVlO1xuXHRcdFx0YmFja2dyb3VuZDogI2VlZTtcblx0XHRcdGNvbG9yOiAjOTk5O1xuXG5cdFx0XHQmOmZvY3VzXG5cdFx0XHR7XG5cdFx0XHRcdG91dGxpbmU6IG5vbmU7XG5cdFx0XHR9XG5cblx0XHRcdCY6aG92ZXIgXG5cdFx0XHR7XG5cdFx0XHRcdGNvbG9yOiAkYmx1ZTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuLnRhYnMtY29udGVudFxue1xuXHRtYXJnaW46IDBweCByZW0tY2FsYygtMSk7XG5cdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXG5cdC50YWJzLXBhbmVsXG5cdHtcblx0XHRib3JkZXI6IDJweCBzb2xpZCAkYmx1ZTtcblx0fVxufSIsIi5hdXRvX19jb21wbGV0ZV9fcm93X19wcm9kdWN0e1xuICBiYWNrZ3JvdW5kLWNvbG9yOndoaXRlO1xuICBib3JkZXItYm90dG9tOjFweCBkYXNoZWQgYW50aXF1ZXdoaXRlO1xuICBib3JkZXItbGVmdDoxcHggZGFzaGVkIGFudGlxdWV3aGl0ZTtcbiAgYm9yZGVyLXJpZ2h0OjFweCBkYXNoZWQgYW50aXF1ZXdoaXRlO1xuICB3aWR0aDoxMCU7XG4gICY6aG92ZXJcbiAge1xuICAgIGJhY2tncm91bmQtY29sb3I6JHhsaWdodC1ncmV5O1xuICB9XG59XG5cbi5hdXRvX19jb21wbGV0ZV9fcm93X191c2Vye1xuICBiYWNrZ3JvdW5kLWNvbG9yOndoaXRlO1xuICBib3JkZXItYm90dG9tOjFweCBkYXNoZWQgYW50aXF1ZXdoaXRlO1xuICBib3JkZXItbGVmdDoxcHggZGFzaGVkIGFudGlxdWV3aGl0ZTtcbiAgYm9yZGVyLXJpZ2h0OjFweCBkYXNoZWQgYW50aXF1ZXdoaXRlO1xuICB3aWR0aDoyMCU7XG4gICY6aG92ZXJcbiAge1xuICAgIGJhY2tncm91bmQtY29sb3I6JHhsaWdodC1ncmV5O1xuICB9XG59IiwiLnF1YW50aXR5X19pbnB1dCB7XG4gIDo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbiB7IC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTt9XG4gIDo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7IC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTt9XG4gIC5wcm9kdWN0X19xdWFudGl0eV9faW5wdXRcbiAge1xuICAgIHdpZHRoOiA0MHB4O1xuICAgIGhlaWdodDogcmVtLWNhbGMoNDFweCk7XG4gICAgYmFja2dyb3VuZDogIzE3NzlCQTtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgLW1vei1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgfVxufVxuIiwidWwuYWNjb3JkaW9uXG57XG4gIGxpLmFjY29yZGlvbi1pdGVtXG4gIHtcbiAgICBwYWRkaW5nOiByZW0tY2FsYygxMCk7XG5cbiAgICAmLmlzLWFjdGl2ZVxuICAgIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDIwKTtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRsaWdodC1ibHVlO1xuICAgIH1cblxuICAgIC5hY2NvcmRpb24tdGl0bGVcbiAgICB7XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYyg1KTtcbiAgICAgIHBhZGRpbmc6IDBweDtcblxuICAgICAgJjpob3ZlclxuICAgICAge1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgIH1cblxuICAgICAgJjpmb2N1c1xuICAgICAge1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuYWNjb3JkaW9uLWNvbnRlbnRcbiAgICB7XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgICBwYWRkaW5nOiAwcHg7XG4gICAgfVxuICB9XG59XG4iLCJib2R5XG57XG5cdCYubG9naW5cblx0e1xuXHRcdGhlaWdodDogMTAwJTtcblx0XHRiYWNrZ3JvdW5kOiAkb2ZmLXdoaXRlO1xuXG5cdFx0LmxvZ2luX19wYW5lbFxuXHRcdHtcblx0XHRcdGhlaWdodDogMTAwJTtcblxuXHRcdFx0Jj4ucm93XG5cdFx0XHR7XG5cdFx0XHRcdGhlaWdodDogMTAwJTtcblx0XHRcdH1cblxuXHRcdFx0aGVhZGVyXG5cdFx0XHR7XG5cdFx0XHRcdGhlaWdodDogYXV0bztcblx0XHRcdFx0cGFkZGluZzogMCAwIHJlbS1jYWxjKDEwKTtcblx0XHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiBub25lO1xuXHRcdFx0XHRib3gtc2hhZG93OiBub25lO1xuXG5cdFx0XHRcdGgxXG5cdFx0XHRcdHtcblx0XHRcdFx0XHRtYXJnaW46IDA7XG5cdFx0XHRcdFx0Zm9udC1zaXplOiByZW0tY2FsYygzNSk7XG5cdFx0XHRcdFx0Zm9udC1mYW1pbHk6IFwic29maWEtcHJvLXNvZnRcIixzYW5zLXNlcmlmO1xuXHRcdFx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblxuXHRcdFx0XHRcdCYubG9nb1xuXHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdHdpZHRoOiByZW0tY2FsYygyMzApO1xuXHRcdFx0XHRcdFx0bWFyZ2luOiAwIGF1dG8gcmVtLWNhbGMoNDApO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHRsYWJlbFxuXHRcdFx0e1xuXHRcdFx0XHRtYXJnaW46IDAgMCByZW0tY2FsYygxMCk7XG5cdFx0XHRcdGNvbG9yOiAkYmx1ZTtcblx0XHRcdFx0Zm9udC1zaXplOiByZW0tY2FsYygxNCk7XG5cdFx0XHRcdGZvbnQtZmFtaWx5OiAnU29maWFQcm8tRXh0cmFMaWdodCc7XG5cdFx0XHR9XG5cblx0XHRcdC50ZXh0X19pbnB1dHNcblx0XHRcdHtcblx0XHRcdFx0bWFyZ2luOiByZW0tY2FsYygyMCkgYXV0bztcblxuXHRcdFx0XHQuZmllbGRcblx0XHRcdFx0e1xuXHRcdFx0XHRcdG1hcmdpbjogcmVtLWNhbGMoNykgYXV0byAwO1xuXG5cdFx0XHRcdFx0aW5wdXRcblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRtYXgtd2lkdGg6IDUwMHB4O1xuXHRcdFx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRcdFx0XHRoZWlnaHQ6IDQ1cHg7XG5cdFx0XHRcdFx0XHRwYWRkaW5nLWxlZnQ6IHJlbS1jYWxjKDEwKTtcblx0XHRcdFx0XHRcdGJvcmRlci1yYWRpdXM6IDVweDtcblx0XHRcdFx0XHRcdGJvcmRlcjogMDtcblx0XHRcdFx0XHRcdGJhY2tncm91bmQ6ICR3aGl0ZTtcblx0XHRcdFx0XHRcdGJveC1zaGFkb3c6IG5vbmU7XG5cdFx0XHRcdFx0XHRmb250LWZhbWlseTogJ1NvZmlhUHJvLUV4dHJhTGlnaHQnO1xuXG5cdFx0XHRcdFx0XHQmOmhvdmVyLFxuXHRcdFx0XHRcdFx0Jjpmb2N1c1xuXHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRib3gtc2hhZG93OiBub25lO1xuXHRcdFx0XHRcdFx0XHRvdXRsaW5lOiBub25lO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHRwXG5cdFx0XHR7XG5cdFx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblxuXHRcdFx0XHRhXG5cdFx0XHRcdHtcblx0XHRcdFx0XHRjb2xvcjogI0E2QThBQjtcblx0XHRcdFx0XHRmb250LXdlaWdodDogMzAwO1xuXHRcdFx0XHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpO1xuXHRcdFx0XHRcdGZvbnQtZmFtaWx5OiAnU29maWFQcm8tTGlnaHQnO1xuXHRcdFx0XHRcdHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC5idXR0b25fX2xhcmdlX19ibHVlXG5cdFx0XHR7XG5cdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0XHRtYXJnaW46IDAgYXV0bztcblx0XHRcdFx0YmFja2dyb3VuZDogJGxpZ2h0LWJsdWU7XG5cdFx0XHRcdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0XHRcdGZvbnQtd2VpZ2h0OiAzMDA7XG5cdFx0XHRcdGZvbnQtZmFtaWx5OiAnU29maWFQcm8tTGlnaHQnO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG5cblxuLmxvZ2luX19zY3JlZW5cbntcblx0aGVpZ2h0OiAxMDAlO1xufSIsIi5hZG1pbl9fbGlzdF9fYmFyXG57XG5cdC5yb3cgXG5cdHtcblx0XHRtYXJnaW46IDBweDtcblx0XHR3aWR0aDogMTAwJTtcblx0fVxuXG5cdC52aXN1YWxfX3NlYXJjaF9fYnV0dG9uX19jb250YWluZXJcblx0e1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0Ym90dG9tOiAwO1xuXHRcdGxlZnQ6IDRweDtcblx0XHR2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuXHRcdGlucHV0IFxuXHRcdHtcblx0XHRcdGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcblx0XHR9XG5cdH1cblxuXHQudGl0bGVcblx0e1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHR0b3A6IHJlbS1jYWxjKDgpO1xuXHR9XG59IiwiLnF1b3RlX19wcm9kdWN0c1xue1xuXHQudG9wX19iYXJcblx0e1xuXHRcdG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDIwKTtcblxuXHRcdC5sZWZ0IFxuXHRcdHtcblx0XHRcdGEgXG5cdFx0XHR7XG5cdFx0XHRcdGNvbG9yOiAkZ3JleTtcblx0XHRcdFx0Zm9udC1zaXplOiByZW0tY2FsYygxNCk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Lm1pZGRsZVxuXHRcdHtcblx0XHRcdC5jYXRlZ29yeV9fbmFtZVxuXHRcdFx0e1xuXHRcdFx0XHRjb2xvcjogJGJsdWU7XG5cdFx0XHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoMTYpO1xuXHRcdFx0fVxuXG5cdFx0XHQuYW1vdW50X19hdmFpbGFibGVcblx0XHRcdHtcblx0XHRcdFx0Y29sb3I6ICRncmV5O1xuXHRcdFx0XHRmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQucmlnaHRcblx0XHR7XG5cdFx0XHQucHJvZHVjdF9fc2VhcmNoIFxuXHRcdFx0e1xuXHRcdFx0XHQjcHJvZHVjdF9fc2VhcmNoYmFyXG5cdFx0XHRcdHtcblx0XHRcdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHRcdFx0YmFja2dyb3VuZDogbm9uZTtcblx0XHRcdFx0XHRib3JkZXI6IG5vbmU7XG5cdFx0XHRcdFx0Ym94LXNoYWRvdzogbm9uZTtcblx0XHRcdFx0XHRtYXgtd2lkdGg6IHJlbS1jYWxjKDE2MCk7XG5cdFx0XHRcdFx0bWFyZ2luOiAwcHg7XG5cdFx0XHRcdFx0cGFkZGluZzogMHB4O1xuXHRcdFx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdFx0XHRib3R0b206IHJlbS1jYWxjKDcpO1xuXHRcdFx0XHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuXHRcdFx0XHRcdGNvbG9yOiAkYmx1ZTtcblx0XHRcdFx0XHR0ZXh0LWFsaWduOiByaWdodDtcblx0XHRcdFx0XHRwYWRkaW5nLXJpZ2h0OiByZW0tY2FsYyg1KTtcblxuXHRcdFx0XHRcdCY6OnBsYWNlaG9sZGVyXG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0Y29sb3I6ICRibHVlO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdGxhYmVsIFxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG5cdFx0XHRcdFx0Lmljb24tc2VhcmNoXG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0Y29sb3I6ICRibHVlO1xuXHRcdFx0XHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0XHRcdFx0Ym90dG9tOiByZW0tY2FsYyg0KTtcblx0XHRcdFx0XHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoMTgpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxufSIsIi5wYXlfX3BhZ2Vcbntcblx0LnVwcGVyXG5cdHtcblx0XHRwYWRkaW5nOiByZW0tY2FsYyg1MCkgMHB4O1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblxuXHRcdC5sb2dvXG5cdFx0e1x0XG5cdFx0XHRpbWcgXG5cdFx0XHR7XG5cdFx0XHRcdHdpZHRoOiByZW0tY2FsYygxNjApO1xuXHRcdFx0XHRoZWlnaHQ6IGF1dG87XG5cdFx0XHRcdG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDM1KTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQuaGVhZGluZ1xuXHRcdHtcblx0XHRcdG1hcmdpbjogMHB4O1xuXHRcdFx0Zm9udC1mYW1pbHk6ICdTb2ZpYVByby1MaWdodCc7XG5cdFx0XHRjb2xvcjogJGJsdWU7XG5cdFx0fVxuXHR9XG5cblx0Lm1pZGRsZVxuXHR7XG5cdFx0bWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMzApO1xuXHRcdGNvbG9yOiAkYmx1ZTtcblxuXHRcdHVsIFxuXHRcdHtcblx0XHRcdG1hcmdpbjogMHB4O1xuXHRcdFx0bGlzdC1zdHlsZTogbm9uZTtcblxuXHRcdFx0bGkgXG5cdFx0XHR7XG5cdFx0XHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuXHRcdFx0XHRsaW5lLWhlaWdodDogcmVtLWNhbGMoMjApO1xuXG5cdFx0XHRcdC5saXN0X19tYXJrZXJcblx0XHRcdFx0e1xuXHRcdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdFx0XHR2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuXHRcdFx0XHRcdGNvbG9yOiAkbGlnaHQtZ3JleTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC50ZXh0XG5cdFx0XHRcdHtcblx0XHRcdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHQubGVmdFxuXHRcdHtcblx0XHRcdGJvcmRlcjogMXB4IHNvbGlkICRibHVlO1xuXHRcdFx0cGFkZGluZzogcmVtLWNhbGMoMzApIHJlbS1jYWxjKDIwKTtcblxuXHRcdFx0LmN1c3RvbWVyX19kZXRhaWxzXG5cdFx0XHR7XG5cdFx0XHRcdG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDIwKTtcblxuXHRcdFx0XHQubmFtZVxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0bWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoNSk7XG5cdFx0XHRcdFx0Zm9udC1mYW1pbHk6ICdTb2ZpYU1lZGl1bSc7XG5cdFx0XHRcdFx0Zm9udC1zaXplOiByZW0tY2FsYygxNik7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQubGlzdF9fbWFya2VyXG5cdFx0XHRcdHtcblx0XHRcdFx0XHRtYXJnaW4tcmlnaHQ6IHJlbS1jYWxjKDUpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC5kYXRlc1xuXHRcdFx0e1xuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiByZW0tY2FsYygxNSk7XG5cdFx0XHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkYmx1ZTtcblx0XHRcdFx0cGFkZGluZy1ib3R0b206IHJlbS1jYWxjKDE1KTtcblx0XHRcdFx0Zm9udC1zaXplOiByZW0tY2FsYygxNCk7XG5cdFx0XHRcdGxpbmUtaGVpZ2h0OiByZW0tY2FsYygyMCk7XG5cdFx0XHRcdFxuXHRcdFx0XHQuaGVhZGluZ1xuXHRcdFx0XHR7XG5cdFx0XHRcdFx0bWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMTApO1xuXHRcdFx0XHRcdGZvbnQtZmFtaWx5OiAnU29maWFNZWRpdW0nO1xuXHRcdFx0XHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Lmxpc3RfX21hcmtlclxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0d2lkdGg6IHJlbS1jYWxjKDkwKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQuaXRlbXNcblx0XHRcdHtcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMjUpO1xuXHRcdFx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgJGJsdWU7XG5cdFx0XHRcdHBhZGRpbmctYm90dG9tOiByZW0tY2FsYygxNSk7XG5cblx0XHRcdFx0PiBkaXY6bGFzdC1jaGlsZFxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMHB4O1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0LmhlYWRpbmdcblx0XHRcdFx0e1xuXHRcdFx0XHRcdG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDEwKTtcblx0XHRcdFx0XHRmb250LWZhbWlseTogJ1NvZmlhTWVkaXVtJztcblx0XHRcdFx0XHRmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC5pdGVtX19yb3dcblx0XHRcdFx0e1xuXHRcdFx0XHRcdG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDUpO1xuXHRcdFx0XHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuXHRcdFx0XHRcdGxpbmUtaGVpZ2h0OiByZW0tY2FsYygyMCk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0LnByaWNlX19zdW1tYXJ5XG5cdFx0XHR7XG5cdFx0XHRcdHBhZGRpbmctdG9wOiByZW0tY2FsYygxNSk7XG5cdFx0XHRcdHBhZGRpbmctYm90dG9tOiByZW0tY2FsYygyMCk7XG5cblx0XHRcdFx0LmhlYWRpbmdcblx0XHRcdFx0e1xuXHRcdFx0XHRcdG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDUpO1xuXHRcdFx0XHRcdGZvbnQtZmFtaWx5OiAnU29maWFNZWRpdW0nO1xuXHRcdFx0XHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0LnRvdGFsX19wcmljZV9fbGFiZWxcblx0XHRcdFx0e1xuXHRcdFx0XHRcdGJvcmRlcjogbm9uZTtcblx0XHRcdFx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRcdFx0XHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuXHRcdFx0XHRcdGNvbG9yOiAkbGlnaHQtZ3JleTtcblxuXHRcdFx0XHRcdCY6Zm9jdXNcblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRvdXRsaW5lOiBub25lO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdC50b3RhbF9fcHJpY2VfX3ZhbHVlXG5cdFx0XHRcdHtcblx0XHRcdFx0XHR0ZXh0LWFsaWduOiByaWdodDtcblx0XHRcdFx0XHRmb250LWZhbWlseTogJ1NvZmlhTWVkaXVtJztcblx0XHRcdFx0XHRmb250LXNpemU6IHJlbS1jYWxjKDE2KTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC5yaWdodFxuXHRcdHtcblx0XHRcdGZvcm1cblx0XHRcdHtcblx0XHRcdFx0LmZvcm1fX3Jvd1xuXHRcdFx0XHR7XG5cdFx0XHRcdFx0Ym9yZGVyLXJhZGl1czogMHB4O1xuXHRcdFx0XHRcdG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDI1KTtcblxuXHRcdFx0XHRcdCYuY2FyZF9faG9sZGVyXG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0cGFkZGluZy1yaWdodDogcmVtLWNhbGMoMjApO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdC5mb3JtX19sYWJlbFxuXHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDUpO1xuXHRcdFx0XHRcdFx0Zm9udC1zaXplOiByZW0tY2FsYygxNCk7XG5cdFx0XHRcdFx0XHRsaW5lLWhlaWdodDogcmVtLWNhbGMoMjApO1xuXHRcdFx0XHRcdFx0Y29sb3I6ICRsaWdodC1ncmV5O1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdC5mb3JtX19maWVsZFxuXHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdCYgaW5wdXRbdHlwZT1cInRleHRcIl1cblx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0aGVpZ2h0OiByZW0tY2FsYyg0MCk7XG5cdFx0XHRcdFx0XHRcdGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuXHRcdFx0XHRcdFx0XHRiYWNrZ3JvdW5kOiB3aGl0ZTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XG5cdFx0XHRcdFx0LnNlbGVjdF9fd3JhcHBlclxuXHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdFx0XHRcdGJhY2tncm91bmQ6IHdoaXRlO1xuXG5cdFx0XHRcdFx0XHRzZWxlY3Rcblx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0aGVpZ2h0OiByZW0tY2FsYyg0MCk7XG5cdFx0XHRcdFx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdFx0XHRcdFx0ei1pbmRleDogMTtcblx0XHRcdFx0XHRcdFx0bWFyZ2luOiAwcHg7XG5cdFx0XHRcdFx0XHRcdGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuXHRcdFx0XHRcdFx0XHRwYWRkaW5nOiAwcHggcmVtLWNhbGMoMTApO1xuXHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHQuZG93bl9fYXJyb3dcblx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0d2lkdGg6IHJlbS1jYWxjKDIwKTtcblx0XHRcdFx0XHRcdFx0aGVpZ2h0OiByZW0tY2FsYygyMCk7XG5cdFx0XHRcdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0XHRcdFx0ei1pbmRleDogMDtcblx0XHRcdFx0XHRcdFx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkICRibHVlO1xuXHRcdFx0XHRcdFx0XHRib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAkYmx1ZTtcblx0XHRcdFx0XHRcdFx0dHJhbnNmb3JtOiByb3RhdGUoMTM1ZGVnKTtcblx0XHRcdFx0XHRcdFx0dG9wOiByZW0tY2FsYygyKTtcblx0XHRcdFx0XHRcdFx0cmlnaHQ6IHJlbS1jYWxjKDUpO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdCYuY2FyZF9fY3ZjXG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0LmluZm9ybWF0aW9uX19pY29uXG5cdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdFx0XHRcdFx0d2lkdGg6IHJlbS1jYWxjKDEyKTtcblx0XHRcdFx0XHRcdFx0aGVpZ2h0OiByZW0tY2FsYygxMik7XG5cdFx0XHRcdFx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdFx0XHRcdFx0dG9wOiByZW0tY2FsYyg0KTtcblx0XHRcdFx0XHRcdFx0bGVmdDogcmVtLWNhbGMoNCk7XG5cdFx0XHRcdFx0XHRcdGJvcmRlcjogMXB4IHNvbGlkICRsaWdodC1ncmV5O1xuXHRcdFx0XHRcdFx0XHRib3JkZXItcmFkaXVzOiA1MCU7XG5cblx0XHRcdFx0XHRcdFx0LmlubmVyXG5cdFx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHRcdFx0XHRcdFx0Ym90dG9tOiByZW0tY2FsYyg1KTtcblx0XHRcdFx0XHRcdFx0XHRsZWZ0OiByZW0tY2FsYyg0KTtcblx0XHRcdFx0XHRcdFx0XHRmb250LXNpemU6IHJlbS1jYWxjKDEwKTtcblx0XHRcdFx0XHRcdFx0XHRjb2xvcjogJGxpZ2h0LWdyZXk7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0LnNlY3VyZV9fcGF5bWVudFxuXHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHRcdFx0XHRcdHRvcDogcmVtLWNhbGMoMjIpO1xuXG5cdFx0XHRcdFx0XHRcdC5zZWN1cmVfX2ljb25cblx0XHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdFx0XHRcdFx0XHRtYXJnaW4tcmlnaHQ6IHJlbS1jYWxjKDEyKTtcblx0XHRcdFx0XHRcdFx0XHRmb250LXNpemU6IHJlbS1jYWxjKDM2KTtcblx0XHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHRcdC5zZWN1cmVfX3RleHRcblx0XHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdFx0XHRcdFx0XHRmb250LXNpemU6IHJlbS1jYWxjKDEwKTtcblx0XHRcdFx0XHRcdFx0XHRsaW5lLWhlaWdodDogcmVtLWNhbGMoMTIpO1xuXG5cdFx0XHRcdFx0XHRcdFx0LmxlYWRfX3RleHRcblx0XHRcdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdFx0XHRjb2xvcjogJGJsdWU7XG5cdFx0XHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHRcdFx0LnN1Yl9fdGV4dFxuXHRcdFx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XHRcdGNvbG9yOiAkbGlnaHQtZ3JleTtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHQmLmJ1dHRvbnNcblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRwYWRkaW5nLXRvcDogcmVtLWNhbGMoMjApO1xuXG5cdFx0XHRcdFx0XHQjcGF5LWJ0biwgI3BheS1ub3dcblx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0bWFyZ2luLXJpZ2h0OiByZW0tY2FsYygxMCk7XG5cdFx0XHRcdFx0XHRcdGJvcmRlcjogMnB4IHNvbGlkICRsZWFmLWdyZWVuO1xuXHRcdFx0XHRcdFx0XHRib3JkZXItcmFkaXVzOiByZW0tY2FsYygyMCk7XG5cdFx0XHRcdFx0XHRcdHBhZGRpbmc6IHJlbS1jYWxjKDEwKSByZW0tY2FsYygyNSk7XG5cdFx0XHRcdFx0XHRcdGJhY2tncm91bmQ6ICRsZWFmLWdyZWVuO1xuXHRcdFx0XHRcdFx0XHRmb250LWZhbWlseTogJ1NvZmlhTWVkaXVtJztcblx0XHRcdFx0XHRcdFx0Zm9udC1zaXplOiByZW0tY2FsYygxMSk7XG5cdFx0XHRcdFx0XHRcdGxpbmUtaGVpZ2h0OiByZW0tY2FsYygxMik7XG5cdFx0XHRcdFx0XHRcdGNvbG9yOiAkd2hpdGU7XG5cdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdCNwYXktbGF0ZXIsICNhbHRlcm5hdGUtcGF5XG5cdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdGJvcmRlcjogMnB4IHNvbGlkICRsaWdodC1ibHVlO1xuXHRcdFx0XHRcdFx0XHRib3JkZXItcmFkaXVzOiByZW0tY2FsYygyMCk7XG5cdFx0XHRcdFx0XHRcdHBhZGRpbmc6IHJlbS1jYWxjKDEwKSByZW0tY2FsYygyNSk7XG5cdFx0XHRcdFx0XHRcdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXHRcdFx0XHRcdFx0XHRmb250LWZhbWlseTogJ1NvZmlhTWVkaXVtJztcblx0XHRcdFx0XHRcdFx0Zm9udC1zaXplOiByZW0tY2FsYygxMSk7XG5cdFx0XHRcdFx0XHRcdGxpbmUtaGVpZ2h0OiByZW0tY2FsYygxMik7XG5cdFx0XHRcdFx0XHRcdGNvbG9yOiAkYmx1ZTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQub3ZlcmxheXtcblx0XHRwb3NpdGlvbjogZml4ZWQ7XG5cdFx0dG9wOiAwcHg7XG5cdFx0cmlnaHQ6IDBweDtcblx0XHRib3R0b206IDBweDtcblx0XHRsZWZ0OiAwcHg7XG5cdFx0ei1pbmRleDogMTAwMDAwMDsgLyoga2VlcCBvbiB0b3Agb2Ygb3RoZXIgZWxlbWVudHMgb24gdGhlIHBhZ2UgKi9cblx0XHRiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG5cdH1cblxuXHQuc3Bpbm5lcntcblx0XHRwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcblx0XHRsZWZ0OiA1MCU7XG5cdFx0dG9wOiA1MCU7XG5cdH1cblxuXHQub3ZlcmxheSAudGV4dFxuXHR7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHRvcDogNTAlO1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRjb2xvcjogJGJsdWU7XG5cdH1cblxuXHQub3ZlcmxheSAudGV4dCBzcGFuXG5cdHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0bGVmdDogNXB4O1xuXHRcdGJvdHRvbTogN3B4O1xuXHR9XG5cblxuXHQuc3RyaXBlLWludmFsaWQtaW5wdXRcblx0e1xuXHRcdGJvcmRlci1jb2xvcjogI0ZGNzQ2OSAhaW1wb3J0YW50O1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCA0NiwgNCwgMC4yNCkgIWltcG9ydGFudDtcblx0fVxuXG5cdCNwYXktbm93XG5cdHtcblx0XHRtYXJnaW4tcmlnaHQ6IHJlbS1jYWxjKDEwKTtcblx0XHRib3JkZXI6IDJweCBzb2xpZCAkbGVhZi1ncmVlbjtcblx0XHRib3JkZXItcmFkaXVzOiByZW0tY2FsYygyMCk7XG5cdFx0cGFkZGluZzogcmVtLWNhbGMoMTApIHJlbS1jYWxjKDI1KTtcblx0XHRiYWNrZ3JvdW5kOiAkbGVhZi1ncmVlbjtcblx0XHRmb250LWZhbWlseTogJ1NvZmlhTWVkaXVtJztcblx0XHRmb250LXNpemU6IHJlbS1jYWxjKDExKTtcblx0XHRsaW5lLWhlaWdodDogcmVtLWNhbGMoMTIpO1xuXHRcdGNvbG9yOiAkd2hpdGU7XG5cdH1cblxuXHQjYWx0ZXJuYXRlLXBheVxuXHR7XG5cdFx0Ym9yZGVyOiAycHggc29saWQgJGxpZ2h0LWJsdWU7XG5cdFx0Ym9yZGVyLXJhZGl1czogcmVtLWNhbGMoMjApO1xuXHRcdHBhZGRpbmc6IHJlbS1jYWxjKDEwKSByZW0tY2FsYygyNSk7XG5cdFx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cdFx0Zm9udC1mYW1pbHk6ICdTb2ZpYU1lZGl1bSc7XG5cdFx0Zm9udC1zaXplOiByZW0tY2FsYygxMSk7XG5cdFx0bGluZS1oZWlnaHQ6IHJlbS1jYWxjKDEyKTtcblx0XHRjb2xvcjogJGJsdWU7XG5cdH1cbn0iLCIuZGFzaGJvYXJkXG57XG5cdHBhZGRpbmctdG9wOiByZW0tY2FsYyg1MCk7XG5cblx0LmRhc2hib2FyZF9fYmxvY2tcblx0e1xuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIGRvd24pXG5cdFx0e1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoNDApO1xuXHRcdH1cblx0fVxufSIsIi5nYWxsZXJ5XG57XG5cdCYuZ3JpZFxuXHR7XG5cdFx0LmFkbWluX19saXN0X19iYXJcblx0XHR7XG5cdFx0XHQuYmFyX19yaWdodFxuXHRcdFx0e1xuXHRcdFx0XHQuYnV0dG9uX19ncm91cFxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0dGV4dC1hbGlnbjogcmlnaHQ7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHQuYWRtaW5fX2dyaWRcblx0XHR7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiByZW0tY2FsYyg0MCk7XG5cblx0XHRcdC5ncmlkUGFuZWxcblx0XHRcdHtcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMjApO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG5cblxuLmdhbGxlcnktZ3JpZCB7XG5cdHdpZHRoOiAxMDAlO1xuXHQuZHotcHJldmlldyB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdGxlZnQ6IDA7XG5cdFx0cmlnaHQ6IDA7XG5cdFx0dG9wOiAwO1xuXHRcdGJvdHRvbTogMDtcblx0XHRbY2xhc3NePSdkei0nXSB7XG5cdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdH1cblx0XHQuZHotaW1hZ2Uge1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0fVxuXHR9XG59XG4uZ3JpZC1jZWxsIHtcblx0bWFyZ2luLXJpZ2h0OiAyMHB4O1xuXHRtYXJnaW4tYm90dG9tOiAyMHB4O1xuXHRmbG9hdDogbGVmdDtcblx0LmNlbGwtaW5uZXIge1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHR9XG5cdCYuZHJvcHpvbmUtaW5saW5lLWNvbnRhaW5lciB7XG5cdFx0LmNlbGwtaW5uZXIge1xuXHRcdFx0LmdhbGxlcnktZHJvcHpvbmUge1xuXHRcdFx0XHRoZWlnaHQ6IGF1dG87XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdC5sZy14Y291bnQtNiAmIHtcblx0XHR3aWR0aDogY2FsYygxNi42JSAtIDIwcHgpO1xuXHR9XG5cdC5sZy14Y291bnQtNSAmIHtcblx0XHR3aWR0aDogY2FsYygyMCUgLSAyMHB4KTtcblx0fVxuXHQubGcteGNvdW50LTQgJiB7XG5cdFx0d2lkdGg6IGNhbGMoMjUlIC0gMjBweCk7XG5cdH1cblx0LmxnLXhjb3VudC0zICYge1xuXHRcdHdpZHRoOiBjYWxjKDMzLjMlIC0gMjBweCk7XG5cdH1cblx0LmxnLXhjb3VudC0yICYge1xuXHRcdHdpZHRoOiBjYWxjKDUwJSAtIDIwcHgpO1xuXHR9XG5cdC5sZy14Y291bnQtMiAmIHtcblx0XHR3aWR0aDogY2FsYyg1MCUgLSAyMHB4KTtcblx0fVxuXHQubGcteGNvdW50LTEgJiB7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdH1cblx0QG1lZGlhIChtYXgtd2lkdGg6IDExMDBweCkgYW5kIChtaW4td2lkdGg6IDcwMHB4KSB7XG5cdFx0Lm1lZC14Y291bnQtNSAmIHtcblx0XHRcdHdpZHRoOiBjYWxjKDIwJSAtIDIwcHgpO1xuXHRcdH1cblx0XHQubWVkLXhjb3VudC00ICYge1xuXHRcdFx0d2lkdGg6IGNhbGMoMjUlIC0gMjBweCk7XG5cdFx0fVxuXHRcdC5tZWQteGNvdW50LTMgJiB7XG5cdFx0XHR3aWR0aDogY2FsYygzMy4zJSAtIDIwcHgpO1xuXHRcdH1cblx0XHQubWVkLXhjb3VudC0yICYge1xuXHRcdFx0d2lkdGg6IGNhbGMoNTAlIC0gMjBweCk7XG5cdFx0fVxuXHRcdC5tZWQteGNvdW50LTEgJiB7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHR9XG5cdH1cblx0QG1lZGlhIChtYXgtd2lkdGg6IDY5OXB4KSBhbmQgKG1pbi13aWR0aDogNDUwcHgpIHtcblx0XHQuc20teGNvdW50LTQgJiB7XG5cdFx0XHR3aWR0aDogY2FsYygyNSUgLSAyMHB4KTtcblx0XHR9XG5cdFx0LnNtLXhjb3VudC0zICYge1xuXHRcdFx0d2lkdGg6IGNhbGMoMzMuMyUgLSAyMHB4KTtcblx0XHR9XG5cdFx0LnNtLXhjb3VudC0yICYge1xuXHRcdFx0d2lkdGg6IGNhbGMoNTAlIC0gMjBweCk7XG5cdFx0fVxuXHRcdC5zbS14Y291bnQtMSAmIHtcblx0XHRcdHdpZHRoOiBjYWxjKDEwMCUgLSAyMHB4KTtcblx0XHR9XG5cdH1cblx0QG1lZGlhIChtYXgtd2lkdGg6IDQ0OXB4KSB7XG5cdFx0LnhzLXhjb3VudC00ICYge1xuXHRcdFx0d2lkdGg6IGNhbGMoMjUlIC0gMjBweCk7XG5cdFx0fVxuXHRcdC54cy14Y291bnQtMyAmIHtcblx0XHRcdHdpZHRoOiBjYWxjKDMzLjMlIC0gMjBweCk7XG5cdFx0fVxuXHRcdC54cy14Y291bnQtMiAmIHtcblx0XHRcdHdpZHRoOiBjYWxjKDUwJSAtIDIwcHgpO1xuXHRcdH1cblx0XHQueHMteGNvdW50LTEgJiB7XG5cdFx0XHR3aWR0aDogY2FsYygxMDAlIC0gMjBweCk7XG5cdFx0fVxuXHR9XG5cdEBtZWRpYSAobWluLXdpZHRoOiAxNDUwcHgpIHtcblx0XHQueGwteGNvdW50LTggJiB7XG5cdFx0XHR3aWR0aDogY2FsYygxMi41JSAtIDIwcHgpO1xuXHRcdH1cblx0XHQueGwteGNvdW50LTYgJiB7XG5cdFx0XHR3aWR0aDogY2FsYygxNi42JSAtIDIwcHgpO1xuXHRcdH1cblx0XHQueGwteGNvdW50LTUgJiB7XG5cdFx0XHR3aWR0aDogY2FsYygyMCUgLSAyMHB4KTtcblx0XHR9XG5cdFx0LnhsLXhjb3VudC00ICYge1xuXHRcdFx0d2lkdGg6IGNhbGMoMjUlIC0gMjBweCk7XG5cdFx0fVxuXHRcdC54bC14Y291bnQtMyAmIHtcblx0XHRcdHdpZHRoOiBjYWxjKDMzLjMlIC0gMjBweCk7XG5cdFx0fVxuXHRcdC54bC14Y291bnQtMiAmIHtcblx0XHRcdHdpZHRoOiBjYWxjKDUwJSAtIDIwcHgpO1xuXHRcdH1cblx0XHQueGwteGNvdW50LTEgJiB7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHR9XG5cdH1cblx0Zm9ybSB7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0dGV4dC1hbGlnbjogcmlnaHQ7XG5cdFx0dXNlci1zZWxlY3Q6IG5vbmU7XG5cdH1cbn1cblxuLmhlaWdodC1tYWtlciB7XG5cdG1hcmdpbi10b3A6IDkwJTtcbn1cbi5pbWctY292ZXIsIC5pbWctY29udGFpbiwgLmRyb3B6b25lLWlubGluZS1jb250YWluZXIge1xuXHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG5cdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuXHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xufVxuLmltZy1jb3ZlciB7XG5cdGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0Lm92ZXJsYXktY29udHJvbHMge1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR0b3A6IDVweDtcblx0XHRyaWdodDogNXB4O1xuXHR9XG59XG4uaW1nLWNvbnRhaW4ge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuXHRiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG59XG5cblxuLnNvcnRhYmxlIHtcblx0LnVpLXN0YXRlLWhpZ2hsaWdodCB7XG5cdFx0aGVpZ2h0OiA4LjBlbTtcblx0XHRsaW5lLWhlaWdodDogOC4wZW07XG5cdFx0d2lkdGg6IDEyLjBlbTtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkbGlnaHQtYmx1ZTtcblx0XHRmbG9hdDogbGVmdDtcblx0fVxufVxuLnBvcy1hYnNvbHV0ZSB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dG9wOiAwO1xuXHRsZWZ0OiAwO1xuXHRib3R0b206IDA7XG5cdHJpZ2h0OiAwO1xufVxuXG4iLCJcbiRnZy1yb3ctb3V0ZXItaGVpZ2h0OiA1NnB4O1xuJGdnLWJhci1wYWRkaW5nOiAxMXB4O1xuJGdnLWJhci1oZWlnaHQ6ICgkZ2ctcm93LW91dGVyLWhlaWdodCAtICgkZ2ctYmFyLXBhZGRpbmcgKiAyKSk7XG5cbiRnZy1yb3ctb3V0ZXItaGVpZ2h0LWZvci10aGlubmVyOiA0NHB4O1xuJGdnLWJhci1wYWRkaW5nLWZvci10aGlubmVyOiA4cHg7XG4kZ2ctYmFyLWhlaWdodC1mb3ItdGhpbm5lcjogKCRnZy1yb3ctb3V0ZXItaGVpZ2h0LWZvci10aGlubmVyIC0gKCRnZy1iYXItcGFkZGluZy1mb3ItdGhpbm5lciAqIDIpKTtcblxuJGdnLXJvdy1sYWJlbC13aWR0aDogMzAwcHg7XG4kZ2ctaGVhZGVyLWhlaWdodDogNDBweDtcblxuJGdnLW9mZi13aGl0ZTogI2YxZjJmNjtcbiRnZy1zdHJva2U6ICNkZGQ7XG5cbi5ncG9yLWdhbnR0IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIC5nZy1yb3ctbGFiZWwge1xuICAgICAgICB3aWR0aDogJGdnLXJvdy1sYWJlbC13aWR0aDtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIFtjbGFzc149XCJjb2wtXCJdIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICB9XG4gICAgICAgIC5jb2wtZXhwYW5kLWhpZGUtY2xpY2thYmxlIHtcbiAgICAgICAgICAgIHdpZHRoOiAzMHB4O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG4gICAgICAgIC5jb2wtZ3JhcGhpYyB7XG4gICAgICAgICAgICB3aWR0aDogNjBweDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAxMnB4O1xuICAgICAgICB9XG4gICAgICAgIC5jb2wtdGV4dCB7XG4gICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gOTBweCk7XG4gICAgICAgIH1cbiAgICAgICAgLmdwb3ItZ2FudHQtbW9iaWxlICYge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmdnLWJhci1vdXRlciB7XG4gICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAjeyRnZy1yb3ctbGFiZWwtd2lkdGh9KTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgLmdyaWQtbGluZSwgLmdnLWhlYWQtY2VsbCB7XG4gICAgICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHJnYmEoMTgwLDE4MCwxODAsMC40KTtcbiAgICAgICAgfVxuICAgICAgICAuZ3Bvci1nYW50dC1tb2JpbGUgJiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5nZy1oZWFkZXIge1xuICAgICAgICBoZWlnaHQ6ICRnZy1oZWFkZXItaGVpZ2h0O1xuICAgICAgICAuZ2ctcm93LWxhYmVsIHtcbiAgICAgICAgICAgIFtjbGFzc149XCJjb2wtXCJdIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6ICRnZy1oZWFkZXItaGVpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC5nZy1iYXItb3V0ZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAkZ2ctaGVhZGVyLWhlaWdodDtcbiAgICAgICAgICAgIC5nZy1oZWFkLWNlbGwge1xuICAgICAgICAgICAgICAgIGhlaWdodDogJGdnLWhlYWRlci1oZWlnaHQ7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAudGV4dCB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC5jb2wtdGV4dCwgLnRleHQge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogMTJweCAwIDA7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmdnLXJvdy1vdXRlciB7XG4gICAgICAgIGhlaWdodDogJGdnLXJvdy1vdXRlci1oZWlnaHQ7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkZ2ctc3Ryb2tlO1xuICAgICAgICAuZ2ctcm93LWxhYmVsIHtcbiAgICAgICAgICAgIGhlaWdodDogJGdnLXJvdy1vdXRlci1oZWlnaHQ7XG4gICAgICAgICAgICBbY2xhc3NePVwiY29sLVwiXSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAkZ2ctcm93LW91dGVyLWhlaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5jb2wtZXhwYW5kLWhpZGUtY2xpY2thYmxlIHtcbiAgICAgICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDE1cHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDVweDtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICNhYWE7XG4gICAgICAgICAgICAgICAgICAgIC5ncG9yLWdhbnR0LW1vYmlsZSAmIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICAgICAgICAgICAgICByaWdodDogN3B4O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMXMgbGluZWFyO1xuICAgICAgICAgICAgICAgICYuZGVza3RvcC12ZXJzaW9uOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGdnLW9mZi13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAuY29sLWdyYXBoaWMge1xuICAgICAgICAgICAgICAgIC5mYSB7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDEwcHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLmNvbC10ZXh0IHtcbiAgICAgICAgICAgICAgICBoMyB7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAxOXB4IDAgMDtcbiAgICAgICAgICAgICAgICAgICAgLnRhc2tzLXRleHQge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICM5OTk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLmdnLWJhci1vdXRlciwgLmdnLXJvdyB7XG4gICAgICAgICAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgICAgICAgfVxuICAgICAgICAuZ2ctYmFyLW91dGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogJGdnLXJvdy1vdXRlci1oZWlnaHQ7XG4gICAgICAgICAgICAuZ2ctcm93IHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6ICRnZy1yb3ctb3V0ZXItaGVpZ2h0O1xuICAgICAgICAgICAgICAgIC5nZy1iYXIge1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAkZ2ctcm93LW91dGVyLWhlaWdodDtcbiAgICAgICAgICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICAgICAgICAgICAgLmdnLWJhci1jb2xvciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDBweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6ICRnZy1iYXItcGFkZGluZztcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAjeygkZ2ctYmFyLXBhZGRpbmcgKiAyKX0pOztcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogJGdnLWJhci1wYWRkaW5nO1xuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAkZ2ctYmFyLWhlaWdodDtcbiAgICAgICAgICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgICAgICAgICAmLnRydW5jYXRlZC1sZWZ0IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAmLnRydW5jYXRlZC1yaWdodCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBwIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDExcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd29yZC1zcGFjaW5nOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogKCgkZ2ctYmFyLWhlaWdodCAvIDIpIC0gOHB4KSAwIDAgMTJweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5ncmlkLWxpbmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICYuZ2ctdGhpbm5lciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ2ctb2ZmLXdoaXRlO1xuICAgICAgICAgICAgaGVpZ2h0OiAkZ2ctcm93LW91dGVyLWhlaWdodC1mb3ItdGhpbm5lcjtcbiAgICAgICAgICAgIC5nZy1yb3ctbGFiZWwge1xuICAgICAgICAgICAgICAgIGhlaWdodDogJGdnLXJvdy1vdXRlci1oZWlnaHQtZm9yLXRoaW5uZXI7XG4gICAgICAgICAgICAgICAgLmNvbC10ZXh0IHtcbiAgICAgICAgICAgICAgICAgICAgaDMge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMTRweDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5nZy1iYXItb3V0ZXIge1xuICAgICAgICAgICAgICAgIGhlaWdodDogJGdnLXJvdy1vdXRlci1oZWlnaHQtZm9yLXRoaW5uZXI7XG4gICAgICAgICAgICAgICAgLmdnLXJvdyB7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogJGdnLXJvdy1vdXRlci1oZWlnaHQtZm9yLXRoaW5uZXI7XG4gICAgICAgICAgICAgICAgICAgIC5nZy1iYXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAkZ2ctcm93LW91dGVyLWhlaWdodC1mb3ItdGhpbm5lcjtcbiAgICAgICAgICAgICAgICAgICAgICAgIC5nZy1iYXItY29sb3Ige1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogJGdnLWJhci1wYWRkaW5nLWZvci10aGlubmVyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogJGdnLWJhci1oZWlnaHQtZm9yLXRoaW5uZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9jdXJzb3I6IGNvbC1yZXNpemU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6ICgoJGdnLWJhci1oZWlnaHQtZm9yLXRoaW5uZXIgLyAyKSAtIDhweCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5yZXNpemUtaGFuZGxlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBlLXJlc2l6ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmdnLWdyb3VwLXJvd3Mge1xuICAgICAgICB0cmFuc2l0aW9uOiBoZWlnaHQgMC4zcyBlYXNlO1xuICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIC5nZy1yb3ctc3ViLWdyb3VwIHtcbiAgICAgICAgICAgIC5nZy1yb3ctbGFiZWwge1xuICAgICAgICAgICAgICAgIC5jb2wtZ3JhcGhpYyB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5nZy1yb3ctc3ViLWdyb3VwLWhlYWQtcm93IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTFlMmVhO1xuICAgICAgICAgICAgICAgIGgzIHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmdnLW1vYmlsZS1pbmZvIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkZ2ctc3Ryb2tlO1xuICAgICAgICBwYWRkaW5nOiA4cHggMCA2cHg7XG4gICAgICAgIC5tb2JpbGUtaW5mby1yb3cge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDQ1cHg7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMTBweDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuY29sdW1ucy1oZWFkZXItbW9iaWxlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgLmdwb3ItZ2FudHQtbW9iaWxlICYge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBoZWlnaHQ6IDQ1cHg7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGdnLXN0cm9rZTtcbiAgICAgICAgICAgIC5nZy1iYXItb3V0ZXIge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgLmdnLWhlYWQtY2VsbCB7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogI2YyZjJmMjtcbiAgICAgICAgICAgICAgICAgICAgLnRleHQge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICM3Nzc7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiA1cHggM3B4IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDlweDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmdnLXJvdy1vdXRlciB7XG4gICAgLmNvbG9yLWxpa2UtYmFyIC5mYSB7XG4gICAgICAgIGNvbG9yOiAjODg4O1xuICAgIH1cbiAgICAuZ2ctYmFyLWNvbG9yIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzg4ODtcbiAgICB9XG59XG4uZ2ctcGluayB7XG4gICAgLmNvbG9yLWxpa2UtYmFyIC5mYSB7XG4gICAgICAgIGNvbG9yOiAjZjU1YTY0O1xuICAgIH1cbiAgICAuZ2ctYmFyLWNvbG9yIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y1NWE2NDtcbiAgICB9XG59XG4ubGVhdmUtY29sb3Vye1xuICAgIC5jb2xvci1saWtlLWJhciAuZmEge1xuICAgICAgICBjb2xvcjogI2ZhYjtcbiAgICB9XG4gICAgLmdnLWJhci1jb2xvciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmYWI7XG4gICAgfVxufVxuLnByb2plY3QtY29sb3Vye1xuICAgIC5jb2xvci1saWtlLWJhciAuZmEge1xuICAgICAgICBjb2xvcjogcmViZWNjYXB1cnBsZTtcbiAgICB9XG4gICAgLmdnLWJhci1jb2xvciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJlYmVjY2FwdXJwbGU7XG4gICAgfVxufVxuLnJvbGUtY29sb3Vye1xuICAgIC5jb2xvci1saWtlLWJhciAuZmEge1xuICAgICAgICBjb2xvcjogcm95YWxibHVlO1xuICAgIH1cbiAgICAuZ2ctYmFyLWNvbG9yIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcm95YWxibHVlO1xuICAgIH1cbn1cblxuXG4iLCJib2R5LnBkZiB7XG5cdGNvbG9yOiAjNTU1O1xuXHRmb250LXdlaWdodDogNTAwO1xuXHRsZXR0ZXItc3BhY2luZzogMXB4O1xuXG5cdCNjb250ZW50X19ibG9jayB7XG5cdFx0Zm9udC1zaXplOiAxMXB4ICFpbXBvcnRhbnQ7XG5cdFx0bWFyZ2luOiA0NXB4IDY1cHg7XG5cblx0XHRoMyB7XG5cdFx0XHRiYWNrZ3JvdW5kOiAjMjM0MTVlO1xuXHRcdFx0Y29sb3I6ICNmZmY7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdGZvbnQtc2l6ZTogMTFweCAhaW1wb3J0YW50O1xuXHRcdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0XHRsZXR0ZXItc3BhY2luZzogMXB4O1xuXHRcdFx0cGFkZGluZzogNXB4IDEwcHg7XG5cdFx0fVxuXG5cdFx0cCB7XG5cdFx0XHR0ZXh0LWFsaWduOiBqdXN0aWZ5O1xuXHRcdH1cblxuXHRcdC5ncmlkIHtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogMjVweDtcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHRcdFx0LmdyaWRfX2l0ZW0ge1xuXHRcdFx0XHRib3JkZXItdG9wOiAjYTlkMGQ2IGRhc2hlZCAxcHg7XG5cdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0XHRcdG1pbi1oZWlnaHQ6IDIwMHB4O1xuXHRcdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHRcdHdpZHRoOiAzMjBweDtcblxuXHRcdFx0XHQmLnJpZ2h0IHtcblx0XHRcdFx0XHRib3JkZXItcmlnaHQ6ICNhOWQwZDYgZGFzaGVkIDFweDtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC5ncmlkX19pdGVtLS1oZWFkZXIge1xuXHRcdFx0XHRcdGJvcmRlci1ib3R0b206ICNhOWQwZDYgZGFzaGVkIDFweDtcblx0XHRcdFx0XHRjb2xvcjogIzIzNDE1ZTtcblx0XHRcdFx0XHRmb250LXdlaWdodDogODAwO1xuXHRcdFx0XHRcdHBhZGRpbmc6IDNweCAxMHB4O1xuXHRcdFx0XHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdFx0XHRcdH1cblx0XHRcdFx0LmdyaWRfX2l0ZW0tLWNvbnRlbnQge1xuXHRcdFx0XHRcdHBhZGRpbmc6IDEwcHg7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHR0YWJsZS50b3RhbCB7XG5cdFx0XHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuXHRcdFx0Ym9yZGVyOiAwICFpbXBvcnRhbnQ7XG5cdFx0XHRib3JkZXItdG9wOiAjQTlEMEQ2IDFweCBkYXNoZWQgIWltcG9ydGFudDtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXG5cdFx0XHR0ciB7XG5cdFx0XHRcdGJvcmRlcjogMCAhaW1wb3J0YW50O1xuXG5cdFx0XHRcdHRkIHtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblx0XHRcdFx0XHRib3JkZXI6IDAgIWltcG9ydGFudDtcblx0XHRcdFx0XHRwYWRkaW5nOiAxMHB4IDA7XG5cdFx0XHRcdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdCY6bGFzdC1jaGlsZCB7XG5cdFx0XHRcdFx0Ym9yZGVyLXRvcDogIzAwMCAxcHggZGFzaGVkICFpbXBvcnRhbnQ7XG5cblx0XHRcdFx0XHR0ZCB7XG5cdFx0XHRcdFx0XHRib3JkZXItdG9wOiAjMDAwIDFweCBkYXNoZWQgIWltcG9ydGFudDtcblx0XHRcdFx0XHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cblx0XHR9XG5cdH1cbn1cblxuLnF1b3RlX19zdW1tYXJ5XG57XG5cdCRibHVlOiAjMjM0MTVlO1xuXHR3aWR0aDogYXV0bztcblx0bWF4LXdpZHRoOiBub25lO1xuXG5cdC5hZG1pbl9fbGlzdF9fYmFyXG5cdHtcblx0XHRtYXJnaW46IDBweDtcblx0XHQvL2JvcmRlcjogbm9uZTtcblxuXHRcdGgxXG5cdFx0e1xuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdH1cblxuXHRcdC5nZW5lcmF0ZV9fUERGXG5cdFx0e1xuXHRcdFx0ZmxvYXQ6IHJpZ2h0O1xuXHRcdFx0Zm9udC1zaXplOiByZW0tY2FsYygxNCk7XG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHR0b3A6IHJlbS1jYWxjKDUpO1xuXHRcdFx0Y29sb3I6ICRibHVlO1xuXG5cdFx0XHQuZmEtZmlsZS1wZGYtb1xuXHRcdFx0e1xuXHRcdFx0XHRmb250LXNpemU6IHJlbS1jYWxjKDIwKTtcblx0XHRcdFx0bWFyZ2luLWxlZnQ6IHJlbS1jYWxjKDE1KTtcblx0XHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0XHR0b3A6IHJlbS1jYWxjKDIpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC5xdW90ZV9fc3VtbWFyeV9fY29udGVudFxuXHR7XG5cdFx0cGFkZGluZzogcmVtLWNhbGMoMzUpIDBweDsgLy9yZW0tY2FsYygzMCk7XG5cdFx0cGFkZGluZy1ib3R0b206IDBweDtcblx0XHRmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcblx0XHRjb2xvcjogJGJsdWU7XG5cblx0XHQvLzx0YWJsZSByZXN0eWxpbmc+XG5cdFx0XHR0Ym9keSxcblx0XHRcdHRyLFxuXHRcdFx0dGgsXG5cdFx0XHR0ZFxuXHRcdFx0e1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiBub25lICFpbXBvcnRhbnQ7XG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG5cdFx0XHR9XG5cblx0XHRcdHRhYmxlXG5cdFx0XHR7XG5cdFx0XHRcdG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDEwKTtcblx0XHRcdFx0Ym9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG5cblx0XHRcdFx0dGJvZHlcblx0XHRcdFx0e1xuXHRcdFx0XHRcdGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuXG5cdFx0XHRcdFx0dHJcblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHR0aFxuXHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRwYWRkaW5nOiAwcHg7XG5cdFx0XHRcdFx0XHRcdGZvbnQtd2VpZ2h0OiBub3JtYWw7XG5cdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdHRkXG5cdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdHBhZGRpbmc6IDBweCAhaW1wb3J0YW50O1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdC8vPC90YWJsZSByZXN0eWxpbmc+XG5cblx0XHQvLyBsb2dvXG5cdFx0LmxvZ29cblx0XHR7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiByZW0tY2FsYyg0MCk7XG5cdFx0XHR3aWR0aDogcmVtLWNhbGMoMTUwKTtcblx0XHR9XG5cblx0XHQvLzxxdW90ZSBzdW1tYXJ5IGJsb2Nrcz5cblx0XHRcdC5xdW90ZV9fc3VtbWFyeV9fYmxvY2tcblx0XHRcdHtcblx0XHRcdFx0LnN1Yl9fYmxvY2tcblx0XHRcdFx0e1xuXHRcdFx0XHRcdHBhZGRpbmc6IHJlbS1jYWxjKDIwKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC5jb250ZW50X19oZWFkaW5nXG5cdFx0XHRcdHtcblx0XHRcdFx0XHRtYXJnaW4tYm90dG9tOiByZW0tY2FsYygxMik7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBmaXJzdCBjb250ZW50IGJsb2NrXG5cdFx0XHRcdCYuYmxvY2tfXzFcblx0XHRcdFx0e1xuXHRcdFx0XHRcdG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDQwKTtcblxuXHRcdFx0XHRcdHRkLFxuXHRcdFx0XHRcdC5kYXRlXG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0Zm9udC1zaXplOiByZW0tY2FsYygxNik7XG5cdFx0XHRcdFx0XHRsaW5lLWhlaWdodDogcmVtLWNhbGMoMjEpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIHNlY29uZCBjb250ZW50IGJsb2NrXG5cdFx0XHRcdCYuYmxvY2tfXzJcblx0XHRcdFx0e1xuXHRcdFx0XHRcdG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDMwKTtcblxuXHRcdFx0XHRcdC5zdWJfX2Jsb2NrXG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0bWluLWhlaWdodDogcmVtLWNhbGMoMTMwKTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHR0YWJsZVxuXHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdG1hcmdpbjogMHB4O1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIHRoaXJkIGNvbnRlbnQgYmxvY2tcblx0XHRcdFx0Ji5ibG9ja19fM1xuXHRcdFx0XHR7XG5cdFx0XHRcdFx0bWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoNDApO1xuXG5cdFx0XHRcdFx0dGFibGVcblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHR0clxuXHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRib3JkZXI6IDJweCBzb2xpZCAkYmx1ZSAhaW1wb3J0YW50O1xuXHRcdFx0XHRcdFx0XHRwYWRkaW5nOiByZW0tY2FsYygyMCk7XG5cblx0XHRcdFx0XHRcdFx0dGgsXG5cdFx0XHRcdFx0XHRcdHRkXG5cdFx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XHR3aWR0aDogcmVtLWNhbGMoMTAwKTtcblx0XHRcdFx0XHRcdFx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRcdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdFx0dGRcblx0XHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcdHBhZGRpbmc6IHJlbS1jYWxjKDIwKSAwcHggIWltcG9ydGFudDtcblx0XHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHRcdHRkOmZpcnN0LWNoaWxkXG5cdFx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XHRwYWRkaW5nLWxlZnQ6IHJlbS1jYWxjKDIwKSAhaW1wb3J0YW50O1xuXHRcdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdFx0dGg6bnRoLWNoaWxkKDEpLFxuXHRcdFx0XHRcdFx0XHR0ZDpudGgtY2hpbGQoMSlcblx0XHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcdHdpZHRoOiByZW0tY2FsYygzMDApO1xuXHRcdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdFx0dGQ6bnRoLWNoaWxkKGV2ZW4pXG5cdFx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdHRyOmZpcnN0LWNoaWxkXG5cdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIGZvdXJ0aCBjb250ZW50IGJsb2NrXG5cdFx0XHRcdCYuYmxvY2tfXzRcblx0XHRcdFx0e1xuXHRcdFx0XHRcdGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAkYmx1ZTtcblx0XHRcdFx0XHRtYXJnaW4tYm90dG9tOiByZW0tY2FsYygxNDApO1xuXG5cdFx0XHRcdFx0dGQ6Zmlyc3QtY2hpbGRcblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRwYWRkaW5nLWxlZnQ6IHJlbS1jYWxjKDIwKSAhaW1wb3J0YW50O1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdHRkLmZpcnN0XG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0cGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0dGQ6bGFzdC1jaGlsZFxuXHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdHRleHQtYWxpZ246IHJpZ2h0O1xuXHRcdFx0XHRcdFx0Zm9udC1zaXplOiByZW0tY2FsYygxNik7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0Ly88L3F1b3RlIHN1bW1tYXJ5IGJsb2Nrcz5cblxuXG5cdFx0Ly88c3BlY2lmaWMgc2VjdGlvbnM+XG5cdFx0XHQubmFtZSxcblx0XHRcdC5lbWFpbCxcblx0XHRcdC5hZGRyZXNzXG5cdFx0XHR7XG5cdFx0XHRcdHRkOm50aC1jaGlsZChvZGQpXG5cdFx0XHRcdHtcblx0XHRcdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC5uYW1lXG5cdFx0XHR7XG5cdFx0XHRcdHRhYmxlXG5cdFx0XHRcdHtcblx0XHRcdFx0XHRtYXJnaW46IDBweCAhaW1wb3J0YW50O1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0dHI6bGFzdC1jaGlsZFxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQuZW1haWxcblx0XHRcdHtcblx0XHRcdFx0bWFyZ2luLXRvcDogcmVtLWNhbGMoMTIpO1xuXG5cdFx0XHRcdHRyOmZpcnN0LWNoaWxkXG5cdFx0XHRcdHtcblx0XHRcdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC5hZGRyZXNzXG5cdFx0XHR7XG5cdFx0XHRcdHRyOm50aC1sYXN0LWNoaWxkKDEpLFxuXHRcdFx0XHR0cjpudGgtbGFzdC1jaGlsZCgyKVxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHR0cjpudGgtbGFzdC1jaGlsZCgyKVxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0dGQ6bnRoLWxhc3QtY2hpbGQoMSlcblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHQmOjphZnRlclxuXHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRjb250ZW50OiBcIixcIjtcblx0XHRcdFx0XHRcdFx0cGFkZGluZy1yaWdodDogcmVtLWNhbGMoMik7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0Ly88L3NwZWNpZmljIHNlY3Rpb25zPlxuXHR9XG59XG5cbiRwcmljZS1zdW1tYXJ5LW5vdGUtd2lkdGhzOiAxMDBweDtcbi5wcmljZS1zdW1tYXJ5IHtcblx0aGVpZ2h0OiA1MHB4O1xuXHRbY2xhc3NePSdjb2wtJ10ge1xuXHRcdGZsb2F0OiBsZWZ0O1xuXHRcdGhlaWdodDogNTBweDtcblx0XHQudG9wLCAuYm90dG9tIHtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0aGVpZ2h0OiAyNXB4O1xuXHRcdH1cblx0fVxuXHQuY29sLTEge1xuXHRcdHdpZHRoOiBjYWxjKDEwMCUgLSAoMyAqICN7JHByaWNlLXN1bW1hcnktbm90ZS13aWR0aHN9KSk7XG5cdH1cblx0LmNvbC1ncm9zcywgLmNvbC1nc3QsIC5jb2wtdG90YWwge1xuXHRcdHdpZHRoOiAkcHJpY2Utc3VtbWFyeS1ub3RlLXdpZHRocztcblx0XHQudG9wLCAuYm90dG9tIHtcblx0XHRcdHRleHQtYWxpZ246IHJpZ2h0O1xuXHRcdH1cblx0fVxufVxuXG5cblxuXG5cblxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUVBQTs7Ozs7R0FLRztBRkFILE9BQU8sQ0FBUCxvRUFBTztBQUNQLE9BQU8sQ0FBUCwwRUFBTztBdUI2SkQsTUFBTSxDQUFDLEtBQUssRUFBRSxNQUFNLE1BQU0sU0FBUyxFQUFFLElBQUk7RStEaEI3QyxBQXZHQSxPQXVHTyxFQUFQLE9BQU8sQUFlSixLQUFLLEVBZlIsT0FBTyxBQWdCSixNQUFNLEVBaEJULE9BQU8sQUFpQkosTUFBTSxDQXhIUTtJQUNmLEtBQUssRUFBRSxJQUFJO0lBQ1gsSUFBSSxFQUFFLElBQUk7SUFDVixNQUFNLEVBQUUsTUFBTTtHQUNmOzs7QStCaERIOzs7R0FHRztBR0hIO2dDQUNnQztBQUVoQyxVQUFVO0VBQ1IsV0FBVyxFQUFFLGFBQWE7RUFDMUIsR0FBRyxFQUFFLCtDQUFnRTtFQUNyRSxHQUFHLEVBQUUsc0RBQXVFLENBQUMsMkJBQTJCLEVBQ3RHLGlEQUFrRSxDQUFDLGVBQWUsRUFDbEYsZ0RBQWlFLENBQUMsY0FBYyxFQUNoRiwrQ0FBZ0UsQ0FBQyxrQkFBa0IsRUFDbkYsa0VBQW1GLENBQUMsYUFBYTtFQUVuRyxXQUFXLEVBQUUsTUFBTTtFQUNuQixVQUFVLEVB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 */