@import url(https://fonts.googleapis.com/css?family=Raleway:300i,400,900&display=swap);@charset "UTF-8";

/*!
 * animate.css -https://daneden.github.io/animate.css/
 * Version - 3.7.2
 * Licensed under the MIT license - http://opensource.org/licenses/MIT
 *
 * Copyright (c) 2019 Daniel Eden
 */

@-webkit-keyframes bounce {
  from,
  20%,
  53%,
  80%,
  to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    transform: translate3d(0, 0, 0);
  }

  40%,
  43% {
    -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
    animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
    transform: translate3d(0, -30px, 0);
  }

  70% {
    -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
    animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
    transform: translate3d(0, -15px, 0);
  }

  90% {
    transform: translate3d(0, -4px, 0);
  }
}

@keyframes bounce {
  from,
  20%,
  53%,
  80%,
  to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    transform: translate3d(0, 0, 0);
  }

  40%,
  43% {
    -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
    animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
    transform: translate3d(0, -30px, 0);
  }

  70% {
    -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
    animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
    transform: translate3d(0, -15px, 0);
  }

  90% {
    transform: translate3d(0, -4px, 0);
  }
}

.bounce {
  -webkit-animation-name: bounce;
  animation-name: bounce;
  transform-origin: center bottom;
}

@-webkit-keyframes flash {
  from,
  50%,
  to {
    opacity: 1;
  }

  25%,
  75% {
    opacity: 0;
  }
}

@keyframes flash {
  from,
  50%,
  to {
    opacity: 1;
  }

  25%,
  75% {
    opacity: 0;
  }
}

.flash {
  -webkit-animation-name: flash;
  animation-name: flash;
}

/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */

@-webkit-keyframes pulse {
  from {
    transform: scale3d(1, 1, 1);
  }

  50% {
    transform: scale3d(1.05, 1.05, 1.05);
  }

  to {
    transform: scale3d(1, 1, 1);
  }
}

@keyframes pulse {
  from {
    transform: scale3d(1, 1, 1);
  }

  50% {
    transform: scale3d(1.05, 1.05, 1.05);
  }

  to {
    transform: scale3d(1, 1, 1);
  }
}

.pulse {
  -webkit-animation-name: pulse;
  animation-name: pulse;
}

@-webkit-keyframes rubberBand {
  from {
    transform: scale3d(1, 1, 1);
  }

  30% {
    transform: scale3d(1.25, 0.75, 1);
  }

  40% {
    transform: scale3d(0.75, 1.25, 1);
  }

  50% {
    transform: scale3d(1.15, 0.85, 1);
  }

  65% {
    transform: scale3d(0.95, 1.05, 1);
  }

  75% {
    transform: scale3d(1.05, 0.95, 1);
  }

  to {
    transform: scale3d(1, 1, 1);
  }
}

@keyframes rubberBand {
  from {
    transform: scale3d(1, 1, 1);
  }

  30% {
    transform: scale3d(1.25, 0.75, 1);
  }

  40% {
    transform: scale3d(0.75, 1.25, 1);
  }

  50% {
    transform: scale3d(1.15, 0.85, 1);
  }

  65% {
    transform: scale3d(0.95, 1.05, 1);
  }

  75% {
    transform: scale3d(1.05, 0.95, 1);
  }

  to {
    transform: scale3d(1, 1, 1);
  }
}

.rubberBand {
  -webkit-animation-name: rubberBand;
  animation-name: rubberBand;
}

@-webkit-keyframes shake {
  from,
  to {
    transform: translate3d(0, 0, 0);
  }

  10%,
  30%,
  50%,
  70%,
  90% {
    transform: translate3d(-10px, 0, 0);
  }

  20%,
  40%,
  60%,
  80% {
    transform: translate3d(10px, 0, 0);
  }
}

@keyframes shake {
  from,
  to {
    transform: translate3d(0, 0, 0);
  }

  10%,
  30%,
  50%,
  70%,
  90% {
    transform: translate3d(-10px, 0, 0);
  }

  20%,
  40%,
  60%,
  80% {
    transform: translate3d(10px, 0, 0);
  }
}

.shake {
  -webkit-animation-name: shake;
  animation-name: shake;
}

@-webkit-keyframes headShake {
  0% {
    transform: translateX(0);
  }

  6.5% {
    transform: translateX(-6px) rotateY(-9deg);
  }

  18.5% {
    transform: translateX(5px) rotateY(7deg);
  }

  31.5% {
    transform: translateX(-3px) rotateY(-5deg);
  }

  43.5% {
    transform: translateX(2px) rotateY(3deg);
  }

  50% {
    transform: translateX(0);
  }
}

@keyframes headShake {
  0% {
    transform: translateX(0);
  }

  6.5% {
    transform: translateX(-6px) rotateY(-9deg);
  }

  18.5% {
    transform: translateX(5px) rotateY(7deg);
  }

  31.5% {
    transform: translateX(-3px) rotateY(-5deg);
  }

  43.5% {
    transform: translateX(2px) rotateY(3deg);
  }

  50% {
    transform: translateX(0);
  }
}

.headShake {
  -webkit-animation-timing-function: ease-in-out;
  animation-timing-function: ease-in-out;
  -webkit-animation-name: headShake;
  animation-name: headShake;
}

@-webkit-keyframes swing {
  20% {
    transform: rotate3d(0, 0, 1, 15deg);
  }

  40% {
    transform: rotate3d(0, 0, 1, -10deg);
  }

  60% {
    transform: rotate3d(0, 0, 1, 5deg);
  }

  80% {
    transform: rotate3d(0, 0, 1, -5deg);
  }

  to {
    transform: rotate3d(0, 0, 1, 0deg);
  }
}

@keyframes swing {
  20% {
    transform: rotate3d(0, 0, 1, 15deg);
  }

  40% {
    transform: rotate3d(0, 0, 1, -10deg);
  }

  60% {
    transform: rotate3d(0, 0, 1, 5deg);
  }

  80% {
    transform: rotate3d(0, 0, 1, -5deg);
  }

  to {
    transform: rotate3d(0, 0, 1, 0deg);
  }
}

.swing {
  transform-origin: top center;
  -webkit-animation-name: swing;
  animation-name: swing;
}

@-webkit-keyframes tada {
  from {
    transform: scale3d(1, 1, 1);
  }

  10%,
  20% {
    transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);
  }

  30%,
  50%,
  70%,
  90% {
    transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
  }

  40%,
  60%,
  80% {
    transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
  }

  to {
    transform: scale3d(1, 1, 1);
  }
}

@keyframes tada {
  from {
    transform: scale3d(1, 1, 1);
  }

  10%,
  20% {
    transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);
  }

  30%,
  50%,
  70%,
  90% {
    transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
  }

  40%,
  60%,
  80% {
    transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
  }

  to {
    transform: scale3d(1, 1, 1);
  }
}

.tada {
  -webkit-animation-name: tada;
  animation-name: tada;
}

/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */

@-webkit-keyframes wobble {
  from {
    transform: translate3d(0, 0, 0);
  }

  15% {
    transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
  }

  30% {
    transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
  }

  45% {
    transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
  }

  60% {
    transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
  }

  75% {
    transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
  }

  to {
    transform: translate3d(0, 0, 0);
  }
}

@keyframes wobble {
  from {
    transform: translate3d(0, 0, 0);
  }

  15% {
    transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
  }

  30% {
    transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
  }

  45% {
    transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
  }

  60% {
    transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
  }

  75% {
    transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
  }

  to {
    transform: translate3d(0, 0, 0);
  }
}

.wobble {
  -webkit-animation-name: wobble;
  animation-name: wobble;
}

@-webkit-keyframes jello {
  from,
  11.1%,
  to {
    transform: translate3d(0, 0, 0);
  }

  22.2% {
    transform: skewX(-12.5deg) skewY(-12.5deg);
  }

  33.3% {
    transform: skewX(6.25deg) skewY(6.25deg);
  }

  44.4% {
    transform: skewX(-3.125deg) skewY(-3.125deg);
  }

  55.5% {
    transform: skewX(1.5625deg) skewY(1.5625deg);
  }

  66.6% {
    transform: skewX(-0.78125deg) skewY(-0.78125deg);
  }

  77.7% {
    transform: skewX(0.390625deg) skewY(0.390625deg);
  }

  88.8% {
    transform: skewX(-0.1953125deg) skewY(-0.1953125deg);
  }
}

@keyframes jello {
  from,
  11.1%,
  to {
    transform: translate3d(0, 0, 0);
  }

  22.2% {
    transform: skewX(-12.5deg) skewY(-12.5deg);
  }

  33.3% {
    transform: skewX(6.25deg) skewY(6.25deg);
  }

  44.4% {
    transform: skewX(-3.125deg) skewY(-3.125deg);
  }

  55.5% {
    transform: skewX(1.5625deg) skewY(1.5625deg);
  }

  66.6% {
    transform: skewX(-0.78125deg) skewY(-0.78125deg);
  }

  77.7% {
    transform: skewX(0.390625deg) skewY(0.390625deg);
  }

  88.8% {
    transform: skewX(-0.1953125deg) skewY(-0.1953125deg);
  }
}

.jello {
  -webkit-animation-name: jello;
  animation-name: jello;
  transform-origin: center;
}

@-webkit-keyframes heartBeat {
  0% {
    transform: scale(1);
  }

  14% {
    transform: scale(1.3);
  }

  28% {
    transform: scale(1);
  }

  42% {
    transform: scale(1.3);
  }

  70% {
    transform: scale(1);
  }
}

@keyframes heartBeat {
  0% {
    transform: scale(1);
  }

  14% {
    transform: scale(1.3);
  }

  28% {
    transform: scale(1);
  }

  42% {
    transform: scale(1.3);
  }

  70% {
    transform: scale(1);
  }
}

.heartBeat {
  -webkit-animation-name: heartBeat;
  animation-name: heartBeat;
  -webkit-animation-duration: 1.3s;
  animation-duration: 1.3s;
  -webkit-animation-timing-function: ease-in-out;
  animation-timing-function: ease-in-out;
}

@-webkit-keyframes bounceIn {
  from,
  20%,
  40%,
  60%,
  80%,
  to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
  }

  0% {
    opacity: 0;
    transform: scale3d(0.3, 0.3, 0.3);
  }

  20% {
    transform: scale3d(1.1, 1.1, 1.1);
  }

  40% {
    transform: scale3d(0.9, 0.9, 0.9);
  }

  60% {
    opacity: 1;
    transform: scale3d(1.03, 1.03, 1.03);
  }

  80% {
    transform: scale3d(0.97, 0.97, 0.97);
  }

  to {
    opacity: 1;
    transform: scale3d(1, 1, 1);
  }
}

@keyframes bounceIn {
  from,
  20%,
  40%,
  60%,
  80%,
  to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
  }

  0% {
    opacity: 0;
    transform: scale3d(0.3, 0.3, 0.3);
  }

  20% {
    transform: scale3d(1.1, 1.1, 1.1);
  }

  40% {
    transform: scale3d(0.9, 0.9, 0.9);
  }

  60% {
    opacity: 1;
    transform: scale3d(1.03, 1.03, 1.03);
  }

  80% {
    transform: scale3d(0.97, 0.97, 0.97);
  }

  to {
    opacity: 1;
    transform: scale3d(1, 1, 1);
  }
}

.bounceIn {
  -webkit-animation-duration: 0.75s;
  animation-duration: 0.75s;
  -webkit-animation-name: bounceIn;
  animation-name: bounceIn;
}

@-webkit-keyframes bounceInDown {
  from,
  60%,
  75%,
  90%,
  to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
  }

  0% {
    opacity: 0;
    transform: translate3d(0, -3000px, 0);
  }

  60% {
    opacity: 1;
    transform: translate3d(0, 25px, 0);
  }

  75% {
    transform: translate3d(0, -10px, 0);
  }

  90% {
    transform: translate3d(0, 5px, 0);
  }

  to {
    transform: translate3d(0, 0, 0);
  }
}

@keyframes bounceInDown {
  from,
  60%,
  75%,
  90%,
  to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
  }

  0% {
    opacity: 0;
    transform: translate3d(0, -3000px, 0);
  }

  60% {
    opacity: 1;
    transform: translate3d(0, 25px, 0);
  }

  75% {
    transform: translate3d(0, -10px, 0);
  }

  90% {
    transform: translate3d(0, 5px, 0);
  }

  to {
    transform: translate3d(0, 0, 0);
  }
}

.bounceInDown {
  -webkit-animation-name: bounceInDown;
  animation-name: bounceInDown;
}

@-webkit-keyframes bounceInLeft {
  from,
  60%,
  75%,
  90%,
  to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
  }

  0% {
    opacity: 0;
    transform: translate3d(-3000px, 0, 0);
  }

  60% {
    opacity: 1;
    transform: translate3d(25px, 0, 0);
  }

  75% {
    transform: translate3d(-10px, 0, 0);
  }

  90% {
    transform: translate3d(5px, 0, 0);
  }

  to {
    transform: translate3d(0, 0, 0);
  }
}

@keyframes bounceInLeft {
  from,
  60%,
  75%,
  90%,
  to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
  }

  0% {
    opacity: 0;
    transform: translate3d(-3000px, 0, 0);
  }

  60% {
    opacity: 1;
    transform: translate3d(25px, 0, 0);
  }

  75% {
    transform: translate3d(-10px, 0, 0);
  }

  90% {
    transform: translate3d(5px, 0, 0);
  }

  to {
    transform: translate3d(0, 0, 0);
  }
}

.bounceInLeft {
  -webkit-animation-name: bounceInLeft;
  animation-name: bounceInLeft;
}

@-webkit-keyframes bounceInRight {
  from,
  60%,
  75%,
  90%,
  to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
  }

  from {
    opacity: 0;
    transform: translate3d(3000px, 0, 0);
  }

  60% {
    opacity: 1;
    transform: translate3d(-25px, 0, 0);
  }

  75% {
    transform: translate3d(10px, 0, 0);
  }

  90% {
    transform: translate3d(-5px, 0, 0);
  }

  to {
    transform: translate3d(0, 0, 0);
  }
}

@keyframes bounceInRight {
  from,
  60%,
  75%,
  90%,
  to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
  }

  from {
    opacity: 0;
    transform: translate3d(3000px, 0, 0);
  }

  60% {
    opacity: 1;
    transform: translate3d(-25px, 0, 0);
  }

  75% {
    transform: translate3d(10px, 0, 0);
  }

  90% {
    transform: translate3d(-5px, 0, 0);
  }

  to {
    transform: translate3d(0, 0, 0);
  }
}

.bounceInRight {
  -webkit-animation-name: bounceInRight;
  animation-name: bounceInRight;
}

@-webkit-keyframes bounceInUp {
  from,
  60%,
  75%,
  90%,
  to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
  }

  from {
    opacity: 0;
    transform: translate3d(0, 3000px, 0);
  }

  60% {
    opacity: 1;
    transform: translate3d(0, -20px, 0);
  }

  75% {
    transform: translate3d(0, 10px, 0);
  }

  90% {
    transform: translate3d(0, -5px, 0);
  }

  to {
    transform: translate3d(0, 0, 0);
  }
}

@keyframes bounceInUp {
  from,
  60%,
  75%,
  90%,
  to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
  }

  from {
    opacity: 0;
    transform: translate3d(0, 3000px, 0);
  }

  60% {
    opacity: 1;
    transform: translate3d(0, -20px, 0);
  }

  75% {
    transform: translate3d(0, 10px, 0);
  }

  90% {
    transform: translate3d(0, -5px, 0);
  }

  to {
    transform: translate3d(0, 0, 0);
  }
}

.bounceInUp {
  -webkit-animation-name: bounceInUp;
  animation-name: bounceInUp;
}

@-webkit-keyframes bounceOut {
  20% {
    transform: scale3d(0.9, 0.9, 0.9);
  }

  50%,
  55% {
    opacity: 1;
    transform: scale3d(1.1, 1.1, 1.1);
  }

  to {
    opacity: 0;
    transform: scale3d(0.3, 0.3, 0.3);
  }
}

@keyframes bounceOut {
  20% {
    transform: scale3d(0.9, 0.9, 0.9);
  }

  50%,
  55% {
    opacity: 1;
    transform: scale3d(1.1, 1.1, 1.1);
  }

  to {
    opacity: 0;
    transform: scale3d(0.3, 0.3, 0.3);
  }
}

.bounceOut {
  -webkit-animation-duration: 0.75s;
  animation-duration: 0.75s;
  -webkit-animation-name: bounceOut;
  animation-name: bounceOut;
}

@-webkit-keyframes bounceOutDown {
  20% {
    transform: translate3d(0, 10px, 0);
  }

  40%,
  45% {
    opacity: 1;
    transform: translate3d(0, -20px, 0);
  }

  to {
    opacity: 0;
    transform: translate3d(0, 2000px, 0);
  }
}

@keyframes bounceOutDown {
  20% {
    transform: translate3d(0, 10px, 0);
  }

  40%,
  45% {
    opacity: 1;
    transform: translate3d(0, -20px, 0);
  }

  to {
    opacity: 0;
    transform: translate3d(0, 2000px, 0);
  }
}

.bounceOutDown {
  -webkit-animation-name: bounceOutDown;
  animation-name: bounceOutDown;
}

@-webkit-keyframes bounceOutLeft {
  20% {
    opacity: 1;
    transform: translate3d(20px, 0, 0);
  }

  to {
    opacity: 0;
    transform: translate3d(-2000px, 0, 0);
  }
}

@keyframes bounceOutLeft {
  20% {
    opacity: 1;
    transform: translate3d(20px, 0, 0);
  }

  to {
    opacity: 0;
    transform: translate3d(-2000px, 0, 0);
  }
}

.bounceOutLeft {
  -webkit-animation-name: bounceOutLeft;
  animation-name: bounceOutLeft;
}

@-webkit-keyframes bounceOutRight {
  20% {
    opacity: 1;
    transform: translate3d(-20px, 0, 0);
  }

  to {
    opacity: 0;
    transform: translate3d(2000px, 0, 0);
  }
}

@keyframes bounceOutRight {
  20% {
    opacity: 1;
    transform: translate3d(-20px, 0, 0);
  }

  to {
    opacity: 0;
    transform: translate3d(2000px, 0, 0);
  }
}

.bounceOutRight {
  -webkit-animation-name: bounceOutRight;
  animation-name: bounceOutRight;
}

@-webkit-keyframes bounceOutUp {
  20% {
    transform: translate3d(0, -10px, 0);
  }

  40%,
  45% {
    opacity: 1;
    transform: translate3d(0, 20px, 0);
  }

  to {
    opacity: 0;
    transform: translate3d(0, -2000px, 0);
  }
}

@keyframes bounceOutUp {
  20% {
    transform: translate3d(0, -10px, 0);
  }

  40%,
  45% {
    opacity: 1;
    transform: translate3d(0, 20px, 0);
  }

  to {
    opacity: 0;
    transform: translate3d(0, -2000px, 0);
  }
}

.bounceOutUp {
  -webkit-animation-name: bounceOutUp;
  animation-name: bounceOutUp;
}

@-webkit-keyframes fadeIn {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

@keyframes fadeIn {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

.fadeIn {
  -webkit-animation-name: fadeIn;
  animation-name: fadeIn;
}

@-webkit-keyframes fadeInDown {
  from {
    opacity: 0;
    transform: translate3d(0, -100%, 0);
  }

  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

@keyframes fadeInDown {
  from {
    opacity: 0;
    transform: translate3d(0, -100%, 0);
  }

  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

.fadeInDown {
  -webkit-animation-name: fadeInDown;
  animation-name: fadeInDown;
}

@-webkit-keyframes fadeInDownBig {
  from {
    opacity: 0;
    transform: translate3d(0, -2000px, 0);
  }

  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

@keyframes fadeInDownBig {
  from {
    opacity: 0;
    transform: translate3d(0, -2000px, 0);
  }

  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

.fadeInDownBig {
  -webkit-animation-name: fadeInDownBig;
  animation-name: fadeInDownBig;
}

@-webkit-keyframes fadeInLeft {
  from {
    opacity: 0;
    transform: translate3d(-100%, 0, 0);
  }

  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

@keyframes fadeInLeft {
  from {
    opacity: 0;
    transform: translate3d(-100%, 0, 0);
  }

  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

.fadeInLeft {
  -webkit-animation-name: fadeInLeft;
  animation-name: fadeInLeft;
}

@-webkit-keyframes fadeInLeftBig {
  from {
    opacity: 0;
    transform: translate3d(-2000px, 0, 0);
  }

  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

@keyframes fadeInLeftBig {
  from {
    opacity: 0;
    transform: translate3d(-2000px, 0, 0);
  }

  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

.fadeInLeftBig {
  -webkit-animation-name: fadeInLeftBig;
  animation-name: fadeInLeftBig;
}

@-webkit-keyframes fadeInRight {
  from {
    opacity: 0;
    transform: translate3d(100%, 0, 0);
  }

  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

@keyframes fadeInRight {
  from {
    opacity: 0;
    transform: translate3d(100%, 0, 0);
  }

  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

.fadeInRight {
  -webkit-animation-name: fadeInRight;
  animation-name: fadeInRight;
}

@-webkit-keyframes fadeInRightBig {
  from {
    opacity: 0;
    transform: translate3d(2000px, 0, 0);
  }

  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

@keyframes fadeInRightBig {
  from {
    opacity: 0;
    transform: translate3d(2000px, 0, 0);
  }

  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

.fadeInRightBig {
  -webkit-animation-name: fadeInRightBig;
  animation-name: fadeInRightBig;
}

@-webkit-keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translate3d(0, 100%, 0);
  }

  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translate3d(0, 100%, 0);
  }

  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

.fadeInUp {
  -webkit-animation-name: fadeInUp;
  animation-name: fadeInUp;
}

@-webkit-keyframes fadeInUpBig {
  from {
    opacity: 0;
    transform: translate3d(0, 2000px, 0);
  }

  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

@keyframes fadeInUpBig {
  from {
    opacity: 0;
    transform: translate3d(0, 2000px, 0);
  }

  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

.fadeInUpBig {
  -webkit-animation-name: fadeInUpBig;
  animation-name: fadeInUpBig;
}

@-webkit-keyframes fadeOut {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
  }
}

@keyframes fadeOut {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
  }
}

.fadeOut {
  -webkit-animation-name: fadeOut;
  animation-name: fadeOut;
}

@-webkit-keyframes fadeOutDown {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
    transform: translate3d(0, 100%, 0);
  }
}

@keyframes fadeOutDown {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
    transform: translate3d(0, 100%, 0);
  }
}

.fadeOutDown {
  -webkit-animation-name: fadeOutDown;
  animation-name: fadeOutDown;
}

@-webkit-keyframes fadeOutDownBig {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
    transform: translate3d(0, 2000px, 0);
  }
}

@keyframes fadeOutDownBig {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
    transform: translate3d(0, 2000px, 0);
  }
}

.fadeOutDownBig {
  -webkit-animation-name: fadeOutDownBig;
  animation-name: fadeOutDownBig;
}

@-webkit-keyframes fadeOutLeft {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
    transform: translate3d(-100%, 0, 0);
  }
}

@keyframes fadeOutLeft {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
    transform: translate3d(-100%, 0, 0);
  }
}

.fadeOutLeft {
  -webkit-animation-name: fadeOutLeft;
  animation-name: fadeOutLeft;
}

@-webkit-keyframes fadeOutLeftBig {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
    transform: translate3d(-2000px, 0, 0);
  }
}

@keyframes fadeOutLeftBig {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
    transform: translate3d(-2000px, 0, 0);
  }
}

.fadeOutLeftBig {
  -webkit-animation-name: fadeOutLeftBig;
  animation-name: fadeOutLeftBig;
}

@-webkit-keyframes fadeOutRight {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
    transform: translate3d(100%, 0, 0);
  }
}

@keyframes fadeOutRight {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
    transform: translate3d(100%, 0, 0);
  }
}

.fadeOutRight {
  -webkit-animation-name: fadeOutRight;
  animation-name: fadeOutRight;
}

@-webkit-keyframes fadeOutRightBig {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
    transform: translate3d(2000px, 0, 0);
  }
}

@keyframes fadeOutRightBig {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
    transform: translate3d(2000px, 0, 0);
  }
}

.fadeOutRightBig {
  -webkit-animation-name: fadeOutRightBig;
  animation-name: fadeOutRightBig;
}

@-webkit-keyframes fadeOutUp {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
    transform: translate3d(0, -100%, 0);
  }
}

@keyframes fadeOutUp {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
    transform: translate3d(0, -100%, 0);
  }
}

.fadeOutUp {
  -webkit-animation-name: fadeOutUp;
  animation-name: fadeOutUp;
}

@-webkit-keyframes fadeOutUpBig {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
    transform: translate3d(0, -2000px, 0);
  }
}

@keyframes fadeOutUpBig {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
    transform: translate3d(0, -2000px, 0);
  }
}

.fadeOutUpBig {
  -webkit-animation-name: fadeOutUpBig;
  animation-name: fadeOutUpBig;
}

@-webkit-keyframes flip {
  from {
    transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, -360deg);
    -webkit-animation-timing-function: ease-out;
    animation-timing-function: ease-out;
  }

  40% {
    transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px)
      rotate3d(0, 1, 0, -190deg);
    -webkit-animation-timing-function: ease-out;
    animation-timing-function: ease-out;
  }

  50% {
    transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px)
      rotate3d(0, 1, 0, -170deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
  }

  80% {
    transform: perspective(400px) scale3d(0.95, 0.95, 0.95) translate3d(0, 0, 0)
      rotate3d(0, 1, 0, 0deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
  }

  to {
    transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, 0deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
  }
}

@keyframes flip {
  from {
    transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, -360deg);
    -webkit-animation-timing-function: ease-out;
    animation-timing-function: ease-out;
  }

  40% {
    transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px)
      rotate3d(0, 1, 0, -190deg);
    -webkit-animation-timing-function: ease-out;
    animation-timing-function: ease-out;
  }

  50% {
    transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px)
      rotate3d(0, 1, 0, -170deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
  }

  80% {
    transform: perspective(400px) scale3d(0.95, 0.95, 0.95) translate3d(0, 0, 0)
      rotate3d(0, 1, 0, 0deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
  }

  to {
    transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, 0deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
  }
}

.animated.flip {
  -webkit-backface-visibility: visible;
  backface-visibility: visible;
  -webkit-animation-name: flip;
  animation-name: flip;
}

@-webkit-keyframes flipInX {
  from {
    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
    opacity: 0;
  }

  40% {
    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
  }

  60% {
    transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
    opacity: 1;
  }

  80% {
    transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
  }

  to {
    transform: perspective(400px);
  }
}

@keyframes flipInX {
  from {
    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
    opacity: 0;
  }

  40% {
    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
  }

  60% {
    transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
    opacity: 1;
  }

  80% {
    transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
  }

  to {
    transform: perspective(400px);
  }
}

.flipInX {
  -webkit-backface-visibility: visible !important;
  backface-visibility: visible !important;
  -webkit-animation-name: flipInX;
  animation-name: flipInX;
}

@-webkit-keyframes flipInY {
  from {
    transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
    opacity: 0;
  }

  40% {
    transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
  }

  60% {
    transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
    opacity: 1;
  }

  80% {
    transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
  }

  to {
    transform: perspective(400px);
  }
}

@keyframes flipInY {
  from {
    transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
    opacity: 0;
  }

  40% {
    transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
  }

  60% {
    transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
    opacity: 1;
  }

  80% {
    transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
  }

  to {
    transform: perspective(400px);
  }
}

.flipInY {
  -webkit-backface-visibility: visible !important;
  backface-visibility: visible !important;
  -webkit-animation-name: flipInY;
  animation-name: flipInY;
}

@-webkit-keyframes flipOutX {
  from {
    transform: perspective(400px);
  }

  30% {
    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
    opacity: 1;
  }

  to {
    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
    opacity: 0;
  }
}

@keyframes flipOutX {
  from {
    transform: perspective(400px);
  }

  30% {
    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
    opacity: 1;
  }

  to {
    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
    opacity: 0;
  }
}

.flipOutX {
  -webkit-animation-duration: 0.75s;
  animation-duration: 0.75s;
  -webkit-animation-name: flipOutX;
  animation-name: flipOutX;
  -webkit-backface-visibility: visible !important;
  backface-visibility: visible !important;
}

@-webkit-keyframes flipOutY {
  from {
    transform: perspective(400px);
  }

  30% {
    transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
    opacity: 1;
  }

  to {
    transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
    opacity: 0;
  }
}

@keyframes flipOutY {
  from {
    transform: perspective(400px);
  }

  30% {
    transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
    opacity: 1;
  }

  to {
    transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
    opacity: 0;
  }
}

.flipOutY {
  -webkit-animation-duration: 0.75s;
  animation-duration: 0.75s;
  -webkit-backface-visibility: visible !important;
  backface-visibility: visible !important;
  -webkit-animation-name: flipOutY;
  animation-name: flipOutY;
}

@-webkit-keyframes lightSpeedIn {
  from {
    transform: translate3d(100%, 0, 0) skewX(-30deg);
    opacity: 0;
  }

  60% {
    transform: skewX(20deg);
    opacity: 1;
  }

  80% {
    transform: skewX(-5deg);
  }

  to {
    transform: translate3d(0, 0, 0);
  }
}

@keyframes lightSpeedIn {
  from {
    transform: translate3d(100%, 0, 0) skewX(-30deg);
    opacity: 0;
  }

  60% {
    transform: skewX(20deg);
    opacity: 1;
  }

  80% {
    transform: skewX(-5deg);
  }

  to {
    transform: translate3d(0, 0, 0);
  }
}

.lightSpeedIn {
  -webkit-animation-name: lightSpeedIn;
  animation-name: lightSpeedIn;
  -webkit-animation-timing-function: ease-out;
  animation-timing-function: ease-out;
}

@-webkit-keyframes lightSpeedOut {
  from {
    opacity: 1;
  }

  to {
    transform: translate3d(100%, 0, 0) skewX(30deg);
    opacity: 0;
  }
}

@keyframes lightSpeedOut {
  from {
    opacity: 1;
  }

  to {
    transform: translate3d(100%, 0, 0) skewX(30deg);
    opacity: 0;
  }
}

.lightSpeedOut {
  -webkit-animation-name: lightSpeedOut;
  animation-name: lightSpeedOut;
  -webkit-animation-timing-function: ease-in;
  animation-timing-function: ease-in;
}

@-webkit-keyframes rotateIn {
  from {
    transform-origin: center;
    transform: rotate3d(0, 0, 1, -200deg);
    opacity: 0;
  }

  to {
    transform-origin: center;
    transform: translate3d(0, 0, 0);
    opacity: 1;
  }
}

@keyframes rotateIn {
  from {
    transform-origin: center;
    transform: rotate3d(0, 0, 1, -200deg);
    opacity: 0;
  }

  to {
    transform-origin: center;
    transform: translate3d(0, 0, 0);
    opacity: 1;
  }
}

.rotateIn {
  -webkit-animation-name: rotateIn;
  animation-name: rotateIn;
}

@-webkit-keyframes rotateInDownLeft {
  from {
    transform-origin: left bottom;
    transform: rotate3d(0, 0, 1, -45deg);
    opacity: 0;
  }

  to {
    transform-origin: left bottom;
    transform: translate3d(0, 0, 0);
    opacity: 1;
  }
}

@keyframes rotateInDownLeft {
  from {
    transform-origin: left bottom;
    transform: rotate3d(0, 0, 1, -45deg);
    opacity: 0;
  }

  to {
    transform-origin: left bottom;
    transform: translate3d(0, 0, 0);
    opacity: 1;
  }
}

.rotateInDownLeft {
  -webkit-animation-name: rotateInDownLeft;
  animation-name: rotateInDownLeft;
}

@-webkit-keyframes rotateInDownRight {
  from {
    transform-origin: right bottom;
    transform: rotate3d(0, 0, 1, 45deg);
    opacity: 0;
  }

  to {
    transform-origin: right bottom;
    transform: translate3d(0, 0, 0);
    opacity: 1;
  }
}

@keyframes rotateInDownRight {
  from {
    transform-origin: right bottom;
    transform: rotate3d(0, 0, 1, 45deg);
    opacity: 0;
  }

  to {
    transform-origin: right bottom;
    transform: translate3d(0, 0, 0);
    opacity: 1;
  }
}

.rotateInDownRight {
  -webkit-animation-name: rotateInDownRight;
  animation-name: rotateInDownRight;
}

@-webkit-keyframes rotateInUpLeft {
  from {
    transform-origin: left bottom;
    transform: rotate3d(0, 0, 1, 45deg);
    opacity: 0;
  }

  to {
    transform-origin: left bottom;
    transform: translate3d(0, 0, 0);
    opacity: 1;
  }
}

@keyframes rotateInUpLeft {
  from {
    transform-origin: left bottom;
    transform: rotate3d(0, 0, 1, 45deg);
    opacity: 0;
  }

  to {
    transform-origin: left bottom;
    transform: translate3d(0, 0, 0);
    opacity: 1;
  }
}

.rotateInUpLeft {
  -webkit-animation-name: rotateInUpLeft;
  animation-name: rotateInUpLeft;
}

@-webkit-keyframes rotateInUpRight {
  from {
    transform-origin: right bottom;
    transform: rotate3d(0, 0, 1, -90deg);
    opacity: 0;
  }

  to {
    transform-origin: right bottom;
    transform: translate3d(0, 0, 0);
    opacity: 1;
  }
}

@keyframes rotateInUpRight {
  from {
    transform-origin: right bottom;
    transform: rotate3d(0, 0, 1, -90deg);
    opacity: 0;
  }

  to {
    transform-origin: right bottom;
    transform: translate3d(0, 0, 0);
    opacity: 1;
  }
}

.rotateInUpRight {
  -webkit-animation-name: rotateInUpRight;
  animation-name: rotateInUpRight;
}

@-webkit-keyframes rotateOut {
  from {
    transform-origin: center;
    opacity: 1;
  }

  to {
    transform-origin: center;
    transform: rotate3d(0, 0, 1, 200deg);
    opacity: 0;
  }
}

@keyframes rotateOut {
  from {
    transform-origin: center;
    opacity: 1;
  }

  to {
    transform-origin: center;
    transform: rotate3d(0, 0, 1, 200deg);
    opacity: 0;
  }
}

.rotateOut {
  -webkit-animation-name: rotateOut;
  animation-name: rotateOut;
}

@-webkit-keyframes rotateOutDownLeft {
  from {
    transform-origin: left bottom;
    opacity: 1;
  }

  to {
    transform-origin: left bottom;
    transform: rotate3d(0, 0, 1, 45deg);
    opacity: 0;
  }
}

@keyframes rotateOutDownLeft {
  from {
    transform-origin: left bottom;
    opacity: 1;
  }

  to {
    transform-origin: left bottom;
    transform: rotate3d(0, 0, 1, 45deg);
    opacity: 0;
  }
}

.rotateOutDownLeft {
  -webkit-animation-name: rotateOutDownLeft;
  animation-name: rotateOutDownLeft;
}

@-webkit-keyframes rotateOutDownRight {
  from {
    transform-origin: right bottom;
    opacity: 1;
  }

  to {
    transform-origin: right bottom;
    transform: rotate3d(0, 0, 1, -45deg);
    opacity: 0;
  }
}

@keyframes rotateOutDownRight {
  from {
    transform-origin: right bottom;
    opacity: 1;
  }

  to {
    transform-origin: right bottom;
    transform: rotate3d(0, 0, 1, -45deg);
    opacity: 0;
  }
}

.rotateOutDownRight {
  -webkit-animation-name: rotateOutDownRight;
  animation-name: rotateOutDownRight;
}

@-webkit-keyframes rotateOutUpLeft {
  from {
    transform-origin: left bottom;
    opacity: 1;
  }

  to {
    transform-origin: left bottom;
    transform: rotate3d(0, 0, 1, -45deg);
    opacity: 0;
  }
}

@keyframes rotateOutUpLeft {
  from {
    transform-origin: left bottom;
    opacity: 1;
  }

  to {
    transform-origin: left bottom;
    transform: rotate3d(0, 0, 1, -45deg);
    opacity: 0;
  }
}

.rotateOutUpLeft {
  -webkit-animation-name: rotateOutUpLeft;
  animation-name: rotateOutUpLeft;
}

@-webkit-keyframes rotateOutUpRight {
  from {
    transform-origin: right bottom;
    opacity: 1;
  }

  to {
    transform-origin: right bottom;
    transform: rotate3d(0, 0, 1, 90deg);
    opacity: 0;
  }
}

@keyframes rotateOutUpRight {
  from {
    transform-origin: right bottom;
    opacity: 1;
  }

  to {
    transform-origin: right bottom;
    transform: rotate3d(0, 0, 1, 90deg);
    opacity: 0;
  }
}

.rotateOutUpRight {
  -webkit-animation-name: rotateOutUpRight;
  animation-name: rotateOutUpRight;
}

@-webkit-keyframes hinge {
  0% {
    transform-origin: top left;
    -webkit-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out;
  }

  20%,
  60% {
    transform: rotate3d(0, 0, 1, 80deg);
    transform-origin: top left;
    -webkit-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out;
  }

  40%,
  80% {
    transform: rotate3d(0, 0, 1, 60deg);
    transform-origin: top left;
    -webkit-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out;
    opacity: 1;
  }

  to {
    transform: translate3d(0, 700px, 0);
    opacity: 0;
  }
}

@keyframes hinge {
  0% {
    transform-origin: top left;
    -webkit-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out;
  }

  20%,
  60% {
    transform: rotate3d(0, 0, 1, 80deg);
    transform-origin: top left;
    -webkit-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out;
  }

  40%,
  80% {
    transform: rotate3d(0, 0, 1, 60deg);
    transform-origin: top left;
    -webkit-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out;
    opacity: 1;
  }

  to {
    transform: translate3d(0, 700px, 0);
    opacity: 0;
  }
}

.hinge {
  -webkit-animation-duration: 2s;
  animation-duration: 2s;
  -webkit-animation-name: hinge;
  animation-name: hinge;
}

@-webkit-keyframes jackInTheBox {
  from {
    opacity: 0;
    transform: scale(0.1) rotate(30deg);
    transform-origin: center bottom;
  }

  50% {
    transform: rotate(-10deg);
  }

  70% {
    transform: rotate(3deg);
  }

  to {
    opacity: 1;
    transform: scale(1);
  }
}

@keyframes jackInTheBox {
  from {
    opacity: 0;
    transform: scale(0.1) rotate(30deg);
    transform-origin: center bottom;
  }

  50% {
    transform: rotate(-10deg);
  }

  70% {
    transform: rotate(3deg);
  }

  to {
    opacity: 1;
    transform: scale(1);
  }
}

.jackInTheBox {
  -webkit-animation-name: jackInTheBox;
  animation-name: jackInTheBox;
}

/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */

@-webkit-keyframes rollIn {
  from {
    opacity: 0;
    transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
  }

  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

@keyframes rollIn {
  from {
    opacity: 0;
    transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
  }

  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

.rollIn {
  -webkit-animation-name: rollIn;
  animation-name: rollIn;
}

/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */

@-webkit-keyframes rollOut {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
    transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
  }
}

@keyframes rollOut {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
    transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
  }
}

.rollOut {
  -webkit-animation-name: rollOut;
  animation-name: rollOut;
}

@-webkit-keyframes zoomIn {
  from {
    opacity: 0;
    transform: scale3d(0.3, 0.3, 0.3);
  }

  50% {
    opacity: 1;
  }
}

@keyframes zoomIn {
  from {
    opacity: 0;
    transform: scale3d(0.3, 0.3, 0.3);
  }

  50% {
    opacity: 1;
  }
}

.zoomIn {
  -webkit-animation-name: zoomIn;
  animation-name: zoomIn;
}

@-webkit-keyframes zoomInDown {
  from {
    opacity: 0;
    transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
  }

  60% {
    opacity: 1;
    transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
  }
}

@keyframes zoomInDown {
  from {
    opacity: 0;
    transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
  }

  60% {
    opacity: 1;
    transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
  }
}

.zoomInDown {
  -webkit-animation-name: zoomInDown;
  animation-name: zoomInDown;
}

@-webkit-keyframes zoomInLeft {
  from {
    opacity: 0;
    transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
  }

  60% {
    opacity: 1;
    transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
  }
}

@keyframes zoomInLeft {
  from {
    opacity: 0;
    transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
  }

  60% {
    opacity: 1;
    transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
  }
}

.zoomInLeft {
  -webkit-animation-name: zoomInLeft;
  animation-name: zoomInLeft;
}

@-webkit-keyframes zoomInRight {
  from {
    opacity: 0;
    transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
  }

  60% {
    opacity: 1;
    transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
  }
}

@keyframes zoomInRight {
  from {
    opacity: 0;
    transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
  }

  60% {
    opacity: 1;
    transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
  }
}

.zoomInRight {
  -webkit-animation-name: zoomInRight;
  animation-name: zoomInRight;
}

@-webkit-keyframes zoomInUp {
  from {
    opacity: 0;
    transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
  }

  60% {
    opacity: 1;
    transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
  }
}

@keyframes zoomInUp {
  from {
    opacity: 0;
    transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
  }

  60% {
    opacity: 1;
    transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
  }
}

.zoomInUp {
  -webkit-animation-name: zoomInUp;
  animation-name: zoomInUp;
}

@-webkit-keyframes zoomOut {
  from {
    opacity: 1;
  }

  50% {
    opacity: 0;
    transform: scale3d(0.3, 0.3, 0.3);
  }

  to {
    opacity: 0;
  }
}

@keyframes zoomOut {
  from {
    opacity: 1;
  }

  50% {
    opacity: 0;
    transform: scale3d(0.3, 0.3, 0.3);
  }

  to {
    opacity: 0;
  }
}

.zoomOut {
  -webkit-animation-name: zoomOut;
  animation-name: zoomOut;
}

@-webkit-keyframes zoomOutDown {
  40% {
    opacity: 1;
    transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
  }

  to {
    opacity: 0;
    transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);
    transform-origin: center bottom;
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
  }
}

@keyframes zoomOutDown {
  40% {
    opacity: 1;
    transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
  }

  to {
    opacity: 0;
    transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);
    transform-origin: center bottom;
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
  }
}

.zoomOutDown {
  -webkit-animation-name: zoomOutDown;
  animation-name: zoomOutDown;
}

@-webkit-keyframes zoomOutLeft {
  40% {
    opacity: 1;
    transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0);
  }

  to {
    opacity: 0;
    transform: scale(0.1) translate3d(-2000px, 0, 0);
    transform-origin: left center;
  }
}

@keyframes zoomOutLeft {
  40% {
    opacity: 1;
    transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0);
  }

  to {
    opacity: 0;
    transform: scale(0.1) translate3d(-2000px, 0, 0);
    transform-origin: left center;
  }
}

.zoomOutLeft {
  -webkit-animation-name: zoomOutLeft;
  animation-name: zoomOutLeft;
}

@-webkit-keyframes zoomOutRight {
  40% {
    opacity: 1;
    transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0);
  }

  to {
    opacity: 0;
    transform: scale(0.1) translate3d(2000px, 0, 0);
    transform-origin: right center;
  }
}

@keyframes zoomOutRight {
  40% {
    opacity: 1;
    transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0);
  }

  to {
    opacity: 0;
    transform: scale(0.1) translate3d(2000px, 0, 0);
    transform-origin: right center;
  }
}

.zoomOutRight {
  -webkit-animation-name: zoomOutRight;
  animation-name: zoomOutRight;
}

@-webkit-keyframes zoomOutUp {
  40% {
    opacity: 1;
    transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
  }

  to {
    opacity: 0;
    transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0);
    transform-origin: center bottom;
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
  }
}

@keyframes zoomOutUp {
  40% {
    opacity: 1;
    transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
  }

  to {
    opacity: 0;
    transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0);
    transform-origin: center bottom;
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
  }
}

.zoomOutUp {
  -webkit-animation-name: zoomOutUp;
  animation-name: zoomOutUp;
}

@-webkit-keyframes slideInDown {
  from {
    transform: translate3d(0, -100%, 0);
    visibility: visible;
  }

  to {
    transform: translate3d(0, 0, 0);
  }
}

@keyframes slideInDown {
  from {
    transform: translate3d(0, -100%, 0);
    visibility: visible;
  }

  to {
    transform: translate3d(0, 0, 0);
  }
}

.slideInDown {
  -webkit-animation-name: slideInDown;
  animation-name: slideInDown;
}

@-webkit-keyframes slideInLeft {
  from {
    transform: translate3d(-100%, 0, 0);
    visibility: visible;
  }

  to {
    transform: translate3d(0, 0, 0);
  }
}

@keyframes slideInLeft {
  from {
    transform: translate3d(-100%, 0, 0);
    visibility: visible;
  }

  to {
    transform: translate3d(0, 0, 0);
  }
}

.slideInLeft {
  -webkit-animation-name: slideInLeft;
  animation-name: slideInLeft;
}

@-webkit-keyframes slideInRight {
  from {
    transform: translate3d(100%, 0, 0);
    visibility: visible;
  }

  to {
    transform: translate3d(0, 0, 0);
  }
}

@keyframes slideInRight {
  from {
    transform: translate3d(100%, 0, 0);
    visibility: visible;
  }

  to {
    transform: translate3d(0, 0, 0);
  }
}

.slideInRight {
  -webkit-animation-name: slideInRight;
  animation-name: slideInRight;
}

@-webkit-keyframes slideInUp {
  from {
    transform: translate3d(0, 100%, 0);
    visibility: visible;
  }

  to {
    transform: translate3d(0, 0, 0);
  }
}

@keyframes slideInUp {
  from {
    transform: translate3d(0, 100%, 0);
    visibility: visible;
  }

  to {
    transform: translate3d(0, 0, 0);
  }
}

.slideInUp {
  -webkit-animation-name: slideInUp;
  animation-name: slideInUp;
}

@-webkit-keyframes slideOutDown {
  from {
    transform: translate3d(0, 0, 0);
  }

  to {
    visibility: hidden;
    transform: translate3d(0, 100%, 0);
  }
}

@keyframes slideOutDown {
  from {
    transform: translate3d(0, 0, 0);
  }

  to {
    visibility: hidden;
    transform: translate3d(0, 100%, 0);
  }
}

.slideOutDown {
  -webkit-animation-name: slideOutDown;
  animation-name: slideOutDown;
}

@-webkit-keyframes slideOutLeft {
  from {
    transform: translate3d(0, 0, 0);
  }

  to {
    visibility: hidden;
    transform: translate3d(-100%, 0, 0);
  }
}

@keyframes slideOutLeft {
  from {
    transform: translate3d(0, 0, 0);
  }

  to {
    visibility: hidden;
    transform: translate3d(-100%, 0, 0);
  }
}

.slideOutLeft {
  -webkit-animation-name: slideOutLeft;
  animation-name: slideOutLeft;
}

@-webkit-keyframes slideOutRight {
  from {
    transform: translate3d(0, 0, 0);
  }

  to {
    visibility: hidden;
    transform: translate3d(100%, 0, 0);
  }
}

@keyframes slideOutRight {
  from {
    transform: translate3d(0, 0, 0);
  }

  to {
    visibility: hidden;
    transform: translate3d(100%, 0, 0);
  }
}

.slideOutRight {
  -webkit-animation-name: slideOutRight;
  animation-name: slideOutRight;
}

@-webkit-keyframes slideOutUp {
  from {
    transform: translate3d(0, 0, 0);
  }

  to {
    visibility: hidden;
    transform: translate3d(0, -100%, 0);
  }
}

@keyframes slideOutUp {
  from {
    transform: translate3d(0, 0, 0);
  }

  to {
    visibility: hidden;
    transform: translate3d(0, -100%, 0);
  }
}

.slideOutUp {
  -webkit-animation-name: slideOutUp;
  animation-name: slideOutUp;
}

.animated {
  -webkit-animation-duration: 1s;
  animation-duration: 1s;
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
}

.animated.infinite {
  -webkit-animation-iteration-count: infinite;
  animation-iteration-count: infinite;
}

.animated.delay-1s {
  -webkit-animation-delay: 1s;
  animation-delay: 1s;
}

.animated.delay-2s {
  -webkit-animation-delay: 2s;
  animation-delay: 2s;
}

.animated.delay-3s {
  -webkit-animation-delay: 3s;
  animation-delay: 3s;
}

.animated.delay-4s {
  -webkit-animation-delay: 4s;
  animation-delay: 4s;
}

.animated.delay-5s {
  -webkit-animation-delay: 5s;
  animation-delay: 5s;
}

.animated.fast {
  -webkit-animation-duration: 800ms;
  animation-duration: 800ms;
}

.animated.faster {
  -webkit-animation-duration: 500ms;
  animation-duration: 500ms;
}

.animated.slow {
  -webkit-animation-duration: 2s;
  animation-duration: 2s;
}

.animated.slower {
  -webkit-animation-duration: 3s;
  animation-duration: 3s;
}

@media (print), (prefers-reduced-motion: reduce) {
  .animated {
    -webkit-animation-duration: 1ms !important;
    animation-duration: 1ms !important;
    transition-duration: 1ms !important;
    -webkit-animation-iteration-count: 1 !important;
    animation-iteration-count: 1 !important;
  }
}
@charset "UTF-8";

.grayscale {
  transition: all 0.2s;
  -webkit-filter: grayscale(100%);
  -moz-filter: grayscale(100%);
  filter: grayscale(100%);
}

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

@font-face {
  font-family: "Tetra";
  src: url(../fonts/Tetra.woff2?cd84b89fa97900b193fc0b1b1db7a9ad) format("woff2"), url(../fonts/Tetra.ttf?f9d09b7adf474934d57e2f0360cf08ac) format("truetype"), url(../fonts/Tetra.eot?b554402209c9fedba9eb5a0b578e6d64) format("eot");
}

@font-face {
  font-family: "Noah-Regular";
  src: url(../fonts/Noah-Regular.woff2?b96957de09315639296f835231323515) format("woff2"), url(../fonts/Noah-Regular.ttf?671d36a33b64cab3ba163b6a92f98835) format("truetype"), url(../fonts/Noah-Regular.eot?9eb618f0ea958f4cffaaca13c254bcdd) format("eot");
}

@font-face {
  font-family: "Noah-Bold";
  src: url(../fonts/Noah-Bold.woff2?c566eb0dd11e407dcedc9d3144e47b2c) format("woff2"), url(../fonts/Noah-Bold.ttf?4b92d283b89b67fda67dfdc21eec8770) format("truetype"), url(../fonts/Noah-Bold.eot?83a638f8e65f2c9111a30eee1c2b12ce) format("eot");
}

@font-face {
  font-family: "Tofino-Regular";
  src: url(../fonts/Tofino-Regular.woff2?46a1e4df326a5f55daca35d04fe8ab44) format("woff2"), url(../fonts/Tofino-Regular.ttf?1291269d26ea67c368d575b55f8b3840) format("truetype"), url(../fonts/Tofino-Regular.eot?0a97efadffe61a4fe10c29d3202ca535) format("eot");
}

@font-face {
  font-family: "Tofino-Grunge";
  src: url(../fonts/Tofino-Grunge.woff2?b2cf4f0a9654096d112d968888348f9f) format("woff2"), url(../fonts/Tofino-Grunge.ttf?5e17db8348671c2682efbb1ac68b4604) format("truetype"), url(../fonts/Tofino-Grunge.eot?244f5bdff693ebfcda72fdbb9566f56c) format("eot");
}

html,
html.js,
html.no-js {
  margin: 0 !important;
}

.page-template-sbb main p {
  font-size: 1.1875rem;
  font-family: "Noah-Regular", Helvetica, sans-serif;
}

.page-template-ss main p {
  font-size: 1.0625rem;
}

.page-template-ss main h1,
.page-template-ss main h2,
.page-template-ss main h3,
.page-template-ss main h4,
.page-template-ss main h5,
.page-template-ss main h6,
.page-template-ss main p,
.page-template-ss main a,
.page-template-ss main span,
.page-template-ss main li {
  font-family: Raleway;
}

.page-template-sbb .btn,
.page-template-sbb input[type=submit] {
  min-width: 170px;
  margin: 25px;
  padding: 5px 20px;
  font-size: 1.375rem;
  color: #fff;
  font-family: "Tetra", Helvetica, sans-serif;
  border: 2px solid white;
  border-radius: 0;
  text-decoration: none;
  transition: 0.5s ease;
}

.page-template-sbb .btn:hover,
.page-template-sbb input[type=submit]:hover {
  text-decoration: none;
  color: #fff;
  background-color: #19444a;
  transform: rotate(3deg) scale(1.1);
}

.page-template-sbb .btn.orange,
.page-template-sbb .btn[type=submit],
.page-template-sbb input[type=submit].orange,
.page-template-sbb input[type=submit][type=submit] {
  background-color: #f8ab2c;
  word-spacing: 3px;
  color: #fff;
}

.page-template-sbb .btn.orange:hover,
.page-template-sbb .btn[type=submit]:hover,
.page-template-sbb input[type=submit].orange:hover,
.page-template-sbb input[type=submit][type=submit]:hover {
  color: #fff;
  background-color: #19444a;
}

.page-template-sbb .ninja-forms-required-items {
  margin-bottom: 15px;
  color: #fff;
}

.page-template-sbb .ninja-forms-req-symbol {
  color: #ff0000 !important;
}

.page-template-sbb .ninja-forms-form-wrap label {
  font-size: 20px;
  color: #fff;
}

.page-template-sbb .ninja-forms-form-wrap input[type=text],
.page-template-sbb .ninja-forms-form-wrap textarea {
  min-height: 45px;
  padding: 5px 15px;
  font-size: 1.1875rem;
  color: #324650;
  border: 3px solid #fff;
  outline: none;
  transition: 0.5s ease;
}

.page-template-sbb .ninja-forms-form-wrap input[type=text]:focus,
.page-template-sbb .ninja-forms-form-wrap textarea:focus {
  border: 3px solid #f8ab2c;
}

.page-template-sbb .ninja-forms-form-wrap input[type=submit] {
  margin: 0;
}

.text-orange,
.text-orange a,
.text-orange a span {
  color: #f8ab2c !important;
}

#wpadminbar {
  top: initial;
  bottom: 0;
  position: fixed !important;
}

:root {
  --blue: #007bff;
  --indigo: #6610f2;
  --purple: #6f42c1;
  --pink: #e83e8c;
  --red: #dc3545;
  --orange: #fd7e14;
  --yellow: #ffc107;
  --green: #28a745;
  --teal: #20c997;
  --cyan: #17a2b8;
  --white: #fff;
  --gray: #6c757d;
  --gray-dark: #343a40;
  --primary: #007bff;
  --secondary: #6c757d;
  --success: #28a745;
  --info: #17a2b8;
  --warning: #ffc107;
  --danger: #dc3545;
  --light: #f8f9fa;
  --dark: #343a40;
  --breakpoint-xs: 0;
  --breakpoint-sm: 576px;
  --breakpoint-md: 768px;
  --breakpoint-lg: 992px;
  --breakpoint-xl: 1200px;
  --font-family-sans-serif: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
}

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

html {
  font-family: sans-serif;
  line-height: 1.15;
  -webkit-text-size-adjust: 100%;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}

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

body {
  margin: 0;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.5;
  color: #212529;
  text-align: left;
  background-color: #fff;
}

[tabindex="-1"]:focus {
  outline: 0 !important;
}

hr {
  box-sizing: content-box;
  height: 0;
  overflow: visible;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  margin-top: 0;
  margin-bottom: 0.5rem;
}

p {
  margin-top: 0;
  margin-bottom: 1rem;
}

abbr[title],
abbr[data-original-title] {
  text-decoration: underline;
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted;
  cursor: help;
  border-bottom: 0;
  -webkit-text-decoration-skip-ink: none;
          text-decoration-skip-ink: none;
}

address {
  margin-bottom: 1rem;
  font-style: normal;
  line-height: inherit;
}

ol,
ul,
dl {
  margin-top: 0;
  margin-bottom: 1rem;
}

ol ol,
ul ul,
ol ul,
ul ol {
  margin-bottom: 0;
}

dt {
  font-weight: 700;
}

dd {
  margin-bottom: 0.5rem;
  margin-left: 0;
}

blockquote {
  margin: 0 0 1rem;
}

b,
strong {
  font-weight: bolder;
}

small {
  font-size: 80%;
}

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

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

a {
  color: #007bff;
  text-decoration: none;
  background-color: transparent;
}

a:hover {
  color: #0056b3;
  text-decoration: underline;
}

a:not([href]):not([tabindex]) {
  color: inherit;
  text-decoration: none;
}

a:not([href]):not([tabindex]):hover,
a:not([href]):not([tabindex]):focus {
  color: inherit;
  text-decoration: none;
}

a:not([href]):not([tabindex]):focus {
  outline: 0;
}

pre,
code,
kbd,
samp {
  font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  font-size: 1em;
}

pre {
  margin-top: 0;
  margin-bottom: 1rem;
  overflow: auto;
}

figure {
  margin: 0 0 1rem;
}

img {
  vertical-align: middle;
  border-style: none;
}

svg {
  overflow: hidden;
  vertical-align: middle;
}

table {
  border-collapse: collapse;
}

caption {
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
  color: #6c757d;
  text-align: left;
  caption-side: bottom;
}

th {
  text-align: inherit;
}

label {
  display: inline-block;
  margin-bottom: 0.5rem;
}

button {
  border-radius: 0;
}

button:focus {
  outline: 1px dotted;
  outline: 5px auto -webkit-focus-ring-color;
}

input,
button,
select,
optgroup,
textarea {
  margin: 0;
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
}

button,
input {
  overflow: visible;
}

button,
select {
  text-transform: none;
}

select {
  word-wrap: normal;
}

button,
[type=button],
[type=reset],
[type=submit] {
  -webkit-appearance: button;
}

button:not(:disabled),
[type=button]:not(:disabled),
[type=reset]:not(:disabled),
[type=submit]:not(:disabled) {
  cursor: pointer;
}

button::-moz-focus-inner,
[type=button]::-moz-focus-inner,
[type=reset]::-moz-focus-inner,
[type=submit]::-moz-focus-inner {
  padding: 0;
  border-style: none;
}

input[type=radio],
input[type=checkbox] {
  box-sizing: border-box;
  padding: 0;
}

input[type=date],
input[type=time],
input[type=datetime-local],
input[type=month] {
  -webkit-appearance: listbox;
}

textarea {
  overflow: auto;
  resize: vertical;
}

fieldset {
  min-width: 0;
  padding: 0;
  margin: 0;
  border: 0;
}

legend {
  display: block;
  width: 100%;
  max-width: 100%;
  padding: 0;
  margin-bottom: 0.5rem;
  font-size: 1.5rem;
  line-height: inherit;
  color: inherit;
  white-space: normal;
}

progress {
  vertical-align: baseline;
}

[type=number]::-webkit-inner-spin-button,
[type=number]::-webkit-outer-spin-button {
  height: auto;
}

[type=search] {
  outline-offset: -2px;
  -webkit-appearance: none;
}

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

::-webkit-file-upload-button {
  font: inherit;
  -webkit-appearance: button;
}

output {
  display: inline-block;
}

summary {
  display: list-item;
  cursor: pointer;
}

template {
  display: none;
}

[hidden] {
  display: none !important;
}

h1,
h2,
h3,
h4,
h5,
h6,
.h1,
.h2,
.h3,
.h4,
.h5,
.h6 {
  margin-bottom: 0.5rem;
  font-weight: 500;
  line-height: 1.2;
}

h1,
.h1 {
  font-size: 2.5rem;
}

h2,
.h2 {
  font-size: 2rem;
}

h3,
.h3 {
  font-size: 1.75rem;
}

h4,
.h4 {
  font-size: 1.5rem;
}

h5,
.h5 {
  font-size: 1.25rem;
}

h6,
.h6 {
  font-size: 1rem;
}

.lead {
  font-size: 1.25rem;
  font-weight: 300;
}

.display-1 {
  font-size: 6rem;
  font-weight: 300;
  line-height: 1.2;
}

.display-2 {
  font-size: 5.5rem;
  font-weight: 300;
  line-height: 1.2;
}

.display-3 {
  font-size: 4.5rem;
  font-weight: 300;
  line-height: 1.2;
}

.display-4 {
  font-size: 3.5rem;
  font-weight: 300;
  line-height: 1.2;
}

hr {
  margin-top: 1rem;
  margin-bottom: 1rem;
  border: 0;
  border-top: 1px solid rgba(0, 0, 0, 0.1);
}

small,
.small {
  font-size: 80%;
  font-weight: 400;
}

mark,
.mark {
  padding: 0.2em;
  background-color: #fcf8e3;
}

.list-unstyled {
  padding-left: 0;
  list-style: none;
}

.list-inline {
  padding-left: 0;
  list-style: none;
}

.list-inline-item {
  display: inline-block;
}

.list-inline-item:not(:last-child) {
  margin-right: 0.5rem;
}

.initialism {
  font-size: 90%;
  text-transform: uppercase;
}

.blockquote {
  margin-bottom: 1rem;
  font-size: 1.25rem;
}

.blockquote-footer {
  display: block;
  font-size: 80%;
  color: #6c757d;
}

.blockquote-footer::before {
  content: "\2014\A0";
}

.img-fluid {
  max-width: 100%;
  height: auto;
}

.img-thumbnail {
  padding: 0.25rem;
  background-color: #fff;
  border: 1px solid #dee2e6;
  border-radius: 0.25rem;
  max-width: 100%;
  height: auto;
}

.figure {
  display: inline-block;
}

.figure-img {
  margin-bottom: 0.5rem;
  line-height: 1;
}

.figure-caption {
  font-size: 90%;
  color: #6c757d;
}

.container {
  width: 100%;
  padding-right: 15px;
  padding-left: 15px;
  margin-right: auto;
  margin-left: auto;
}

@media (min-width: 576px) {
  .container {
    max-width: 540px;
  }
}

@media (min-width: 768px) {
  .container {
    max-width: 720px;
  }
}

@media (min-width: 992px) {
  .container {
    max-width: 960px;
  }
}

@media (min-width: 1200px) {
  .container {
    max-width: 1140px;
  }
}

.container-fluid {
  width: 100%;
  padding-right: 15px;
  padding-left: 15px;
  margin-right: auto;
  margin-left: auto;
}

.row {
  display: flex;
  flex-wrap: wrap;
  margin-right: -15px;
  margin-left: -15px;
}

.no-gutters {
  margin-right: 0;
  margin-left: 0;
}

.no-gutters > .col,
.no-gutters > [class*=col-] {
  padding-right: 0;
  padding-left: 0;
}

.col-xl,
.col-xl-auto,
.col-xl-12,
.col-xl-11,
.col-xl-10,
.col-xl-9,
.col-xl-8,
.col-xl-7,
.col-xl-6,
.col-xl-5,
.col-xl-4,
.col-xl-3,
.col-xl-2,
.col-xl-1,
.col-lg,
.col-lg-auto,
.col-lg-12,
.col-lg-11,
.col-lg-10,
.col-lg-9,
.col-lg-8,
.col-lg-7,
.col-lg-6,
.col-lg-5,
.col-lg-4,
.col-lg-3,
.col-lg-2,
.col-lg-1,
.col-md,
.col-md-auto,
.col-md-12,
.col-md-11,
.col-md-10,
.col-md-9,
.col-md-8,
.col-md-7,
.col-md-6,
.col-md-5,
.col-md-4,
.col-md-3,
.col-md-2,
.col-md-1,
.col-sm,
.col-sm-auto,
.col-sm-12,
.col-sm-11,
.col-sm-10,
.col-sm-9,
.col-sm-8,
.col-sm-7,
.col-sm-6,
.col-sm-5,
.col-sm-4,
.col-sm-3,
.col-sm-2,
.col-sm-1,
.col,
.col-auto,
.col-12,
.col-11,
.col-10,
.col-9,
.col-8,
.col-7,
.col-6,
.col-5,
.col-4,
.col-3,
.col-2,
.col-1 {
  position: relative;
  width: 100%;
  padding-right: 15px;
  padding-left: 15px;
}

.col {
  flex-basis: 0;
  flex-grow: 1;
  max-width: 100%;
}

.col-auto {
  flex: 0 0 auto;
  width: auto;
  max-width: 100%;
}

.col-1 {
  flex: 0 0 8.3333333333%;
  max-width: 8.3333333333%;
}

.col-2 {
  flex: 0 0 16.6666666667%;
  max-width: 16.6666666667%;
}

.col-3 {
  flex: 0 0 25%;
  max-width: 25%;
}

.col-4 {
  flex: 0 0 33.3333333333%;
  max-width: 33.3333333333%;
}

.col-5 {
  flex: 0 0 41.6666666667%;
  max-width: 41.6666666667%;
}

.col-6 {
  flex: 0 0 50%;
  max-width: 50%;
}

.col-7 {
  flex: 0 0 58.3333333333%;
  max-width: 58.3333333333%;
}

.col-8 {
  flex: 0 0 66.6666666667%;
  max-width: 66.6666666667%;
}

.col-9 {
  flex: 0 0 75%;
  max-width: 75%;
}

.col-10 {
  flex: 0 0 83.3333333333%;
  max-width: 83.3333333333%;
}

.col-11 {
  flex: 0 0 91.6666666667%;
  max-width: 91.6666666667%;
}

.col-12 {
  flex: 0 0 100%;
  max-width: 100%;
}

.order-first {
  order: -1;
}

.order-last {
  order: 13;
}

.order-0 {
  order: 0;
}

.order-1 {
  order: 1;
}

.order-2 {
  order: 2;
}

.order-3 {
  order: 3;
}

.order-4 {
  order: 4;
}

.order-5 {
  order: 5;
}

.order-6 {
  order: 6;
}

.order-7 {
  order: 7;
}

.order-8 {
  order: 8;
}

.order-9 {
  order: 9;
}

.order-10 {
  order: 10;
}

.order-11 {
  order: 11;
}

.order-12 {
  order: 12;
}

.offset-1 {
  margin-left: 8.3333333333%;
}

.offset-2 {
  margin-left: 16.6666666667%;
}

.offset-3 {
  margin-left: 25%;
}

.offset-4 {
  margin-left: 33.3333333333%;
}

.offset-5 {
  margin-left: 41.6666666667%;
}

.offset-6 {
  margin-left: 50%;
}

.offset-7 {
  margin-left: 58.3333333333%;
}

.offset-8 {
  margin-left: 66.6666666667%;
}

.offset-9 {
  margin-left: 75%;
}

.offset-10 {
  margin-left: 83.3333333333%;
}

.offset-11 {
  margin-left: 91.6666666667%;
}

@media (min-width: 576px) {
  .col-sm {
    flex-basis: 0;
    flex-grow: 1;
    max-width: 100%;
  }

  .col-sm-auto {
    flex: 0 0 auto;
    width: auto;
    max-width: 100%;
  }

  .col-sm-1 {
    flex: 0 0 8.3333333333%;
    max-width: 8.3333333333%;
  }

  .col-sm-2 {
    flex: 0 0 16.6666666667%;
    max-width: 16.6666666667%;
  }

  .col-sm-3 {
    flex: 0 0 25%;
    max-width: 25%;
  }

  .col-sm-4 {
    flex: 0 0 33.3333333333%;
    max-width: 33.3333333333%;
  }

  .col-sm-5 {
    flex: 0 0 41.6666666667%;
    max-width: 41.6666666667%;
  }

  .col-sm-6 {
    flex: 0 0 50%;
    max-width: 50%;
  }

  .col-sm-7 {
    flex: 0 0 58.3333333333%;
    max-width: 58.3333333333%;
  }

  .col-sm-8 {
    flex: 0 0 66.6666666667%;
    max-width: 66.6666666667%;
  }

  .col-sm-9 {
    flex: 0 0 75%;
    max-width: 75%;
  }

  .col-sm-10 {
    flex: 0 0 83.3333333333%;
    max-width: 83.3333333333%;
  }

  .col-sm-11 {
    flex: 0 0 91.6666666667%;
    max-width: 91.6666666667%;
  }

  .col-sm-12 {
    flex: 0 0 100%;
    max-width: 100%;
  }

  .order-sm-first {
    order: -1;
  }

  .order-sm-last {
    order: 13;
  }

  .order-sm-0 {
    order: 0;
  }

  .order-sm-1 {
    order: 1;
  }

  .order-sm-2 {
    order: 2;
  }

  .order-sm-3 {
    order: 3;
  }

  .order-sm-4 {
    order: 4;
  }

  .order-sm-5 {
    order: 5;
  }

  .order-sm-6 {
    order: 6;
  }

  .order-sm-7 {
    order: 7;
  }

  .order-sm-8 {
    order: 8;
  }

  .order-sm-9 {
    order: 9;
  }

  .order-sm-10 {
    order: 10;
  }

  .order-sm-11 {
    order: 11;
  }

  .order-sm-12 {
    order: 12;
  }

  .offset-sm-0 {
    margin-left: 0;
  }

  .offset-sm-1 {
    margin-left: 8.3333333333%;
  }

  .offset-sm-2 {
    margin-left: 16.6666666667%;
  }

  .offset-sm-3 {
    margin-left: 25%;
  }

  .offset-sm-4 {
    margin-left: 33.3333333333%;
  }

  .offset-sm-5 {
    margin-left: 41.6666666667%;
  }

  .offset-sm-6 {
    margin-left: 50%;
  }

  .offset-sm-7 {
    margin-left: 58.3333333333%;
  }

  .offset-sm-8 {
    margin-left: 66.6666666667%;
  }

  .offset-sm-9 {
    margin-left: 75%;
  }

  .offset-sm-10 {
    margin-left: 83.3333333333%;
  }

  .offset-sm-11 {
    margin-left: 91.6666666667%;
  }
}

@media (min-width: 768px) {
  .col-md {
    flex-basis: 0;
    flex-grow: 1;
    max-width: 100%;
  }

  .col-md-auto {
    flex: 0 0 auto;
    width: auto;
    max-width: 100%;
  }

  .col-md-1 {
    flex: 0 0 8.3333333333%;
    max-width: 8.3333333333%;
  }

  .col-md-2 {
    flex: 0 0 16.6666666667%;
    max-width: 16.6666666667%;
  }

  .col-md-3 {
    flex: 0 0 25%;
    max-width: 25%;
  }

  .col-md-4 {
    flex: 0 0 33.3333333333%;
    max-width: 33.3333333333%;
  }

  .col-md-5 {
    flex: 0 0 41.6666666667%;
    max-width: 41.6666666667%;
  }

  .col-md-6 {
    flex: 0 0 50%;
    max-width: 50%;
  }

  .col-md-7 {
    flex: 0 0 58.3333333333%;
    max-width: 58.3333333333%;
  }

  .col-md-8 {
    flex: 0 0 66.6666666667%;
    max-width: 66.6666666667%;
  }

  .col-md-9 {
    flex: 0 0 75%;
    max-width: 75%;
  }

  .col-md-10 {
    flex: 0 0 83.3333333333%;
    max-width: 83.3333333333%;
  }

  .col-md-11 {
    flex: 0 0 91.6666666667%;
    max-width: 91.6666666667%;
  }

  .col-md-12 {
    flex: 0 0 100%;
    max-width: 100%;
  }

  .order-md-first {
    order: -1;
  }

  .order-md-last {
    order: 13;
  }

  .order-md-0 {
    order: 0;
  }

  .order-md-1 {
    order: 1;
  }

  .order-md-2 {
    order: 2;
  }

  .order-md-3 {
    order: 3;
  }

  .order-md-4 {
    order: 4;
  }

  .order-md-5 {
    order: 5;
  }

  .order-md-6 {
    order: 6;
  }

  .order-md-7 {
    order: 7;
  }

  .order-md-8 {
    order: 8;
  }

  .order-md-9 {
    order: 9;
  }

  .order-md-10 {
    order: 10;
  }

  .order-md-11 {
    order: 11;
  }

  .order-md-12 {
    order: 12;
  }

  .offset-md-0 {
    margin-left: 0;
  }

  .offset-md-1 {
    margin-left: 8.3333333333%;
  }

  .offset-md-2 {
    margin-left: 16.6666666667%;
  }

  .offset-md-3 {
    margin-left: 25%;
  }

  .offset-md-4 {
    margin-left: 33.3333333333%;
  }

  .offset-md-5 {
    margin-left: 41.6666666667%;
  }

  .offset-md-6 {
    margin-left: 50%;
  }

  .offset-md-7 {
    margin-left: 58.3333333333%;
  }

  .offset-md-8 {
    margin-left: 66.6666666667%;
  }

  .offset-md-9 {
    margin-left: 75%;
  }

  .offset-md-10 {
    margin-left: 83.3333333333%;
  }

  .offset-md-11 {
    margin-left: 91.6666666667%;
  }
}

@media (min-width: 992px) {
  .col-lg {
    flex-basis: 0;
    flex-grow: 1;
    max-width: 100%;
  }

  .col-lg-auto {
    flex: 0 0 auto;
    width: auto;
    max-width: 100%;
  }

  .col-lg-1 {
    flex: 0 0 8.3333333333%;
    max-width: 8.3333333333%;
  }

  .col-lg-2 {
    flex: 0 0 16.6666666667%;
    max-width: 16.6666666667%;
  }

  .col-lg-3 {
    flex: 0 0 25%;
    max-width: 25%;
  }

  .col-lg-4 {
    flex: 0 0 33.3333333333%;
    max-width: 33.3333333333%;
  }

  .col-lg-5 {
    flex: 0 0 41.6666666667%;
    max-width: 41.6666666667%;
  }

  .col-lg-6 {
    flex: 0 0 50%;
    max-width: 50%;
  }

  .col-lg-7 {
    flex: 0 0 58.3333333333%;
    max-width: 58.3333333333%;
  }

  .col-lg-8 {
    flex: 0 0 66.6666666667%;
    max-width: 66.6666666667%;
  }

  .col-lg-9 {
    flex: 0 0 75%;
    max-width: 75%;
  }

  .col-lg-10 {
    flex: 0 0 83.3333333333%;
    max-width: 83.3333333333%;
  }

  .col-lg-11 {
    flex: 0 0 91.6666666667%;
    max-width: 91.6666666667%;
  }

  .col-lg-12 {
    flex: 0 0 100%;
    max-width: 100%;
  }

  .order-lg-first {
    order: -1;
  }

  .order-lg-last {
    order: 13;
  }

  .order-lg-0 {
    order: 0;
  }

  .order-lg-1 {
    order: 1;
  }

  .order-lg-2 {
    order: 2;
  }

  .order-lg-3 {
    order: 3;
  }

  .order-lg-4 {
    order: 4;
  }

  .order-lg-5 {
    order: 5;
  }

  .order-lg-6 {
    order: 6;
  }

  .order-lg-7 {
    order: 7;
  }

  .order-lg-8 {
    order: 8;
  }

  .order-lg-9 {
    order: 9;
  }

  .order-lg-10 {
    order: 10;
  }

  .order-lg-11 {
    order: 11;
  }

  .order-lg-12 {
    order: 12;
  }

  .offset-lg-0 {
    margin-left: 0;
  }

  .offset-lg-1 {
    margin-left: 8.3333333333%;
  }

  .offset-lg-2 {
    margin-left: 16.6666666667%;
  }

  .offset-lg-3 {
    margin-left: 25%;
  }

  .offset-lg-4 {
    margin-left: 33.3333333333%;
  }

  .offset-lg-5 {
    margin-left: 41.6666666667%;
  }

  .offset-lg-6 {
    margin-left: 50%;
  }

  .offset-lg-7 {
    margin-left: 58.3333333333%;
  }

  .offset-lg-8 {
    margin-left: 66.6666666667%;
  }

  .offset-lg-9 {
    margin-left: 75%;
  }

  .offset-lg-10 {
    margin-left: 83.3333333333%;
  }

  .offset-lg-11 {
    margin-left: 91.6666666667%;
  }
}

@media (min-width: 1200px) {
  .col-xl {
    flex-basis: 0;
    flex-grow: 1;
    max-width: 100%;
  }

  .col-xl-auto {
    flex: 0 0 auto;
    width: auto;
    max-width: 100%;
  }

  .col-xl-1 {
    flex: 0 0 8.3333333333%;
    max-width: 8.3333333333%;
  }

  .col-xl-2 {
    flex: 0 0 16.6666666667%;
    max-width: 16.6666666667%;
  }

  .col-xl-3 {
    flex: 0 0 25%;
    max-width: 25%;
  }

  .col-xl-4 {
    flex: 0 0 33.3333333333%;
    max-width: 33.3333333333%;
  }

  .col-xl-5 {
    flex: 0 0 41.6666666667%;
    max-width: 41.6666666667%;
  }

  .col-xl-6 {
    flex: 0 0 50%;
    max-width: 50%;
  }

  .col-xl-7 {
    flex: 0 0 58.3333333333%;
    max-width: 58.3333333333%;
  }

  .col-xl-8 {
    flex: 0 0 66.6666666667%;
    max-width: 66.6666666667%;
  }

  .col-xl-9 {
    flex: 0 0 75%;
    max-width: 75%;
  }

  .col-xl-10 {
    flex: 0 0 83.3333333333%;
    max-width: 83.3333333333%;
  }

  .col-xl-11 {
    flex: 0 0 91.6666666667%;
    max-width: 91.6666666667%;
  }

  .col-xl-12 {
    flex: 0 0 100%;
    max-width: 100%;
  }

  .order-xl-first {
    order: -1;
  }

  .order-xl-last {
    order: 13;
  }

  .order-xl-0 {
    order: 0;
  }

  .order-xl-1 {
    order: 1;
  }

  .order-xl-2 {
    order: 2;
  }

  .order-xl-3 {
    order: 3;
  }

  .order-xl-4 {
    order: 4;
  }

  .order-xl-5 {
    order: 5;
  }

  .order-xl-6 {
    order: 6;
  }

  .order-xl-7 {
    order: 7;
  }

  .order-xl-8 {
    order: 8;
  }

  .order-xl-9 {
    order: 9;
  }

  .order-xl-10 {
    order: 10;
  }

  .order-xl-11 {
    order: 11;
  }

  .order-xl-12 {
    order: 12;
  }

  .offset-xl-0 {
    margin-left: 0;
  }

  .offset-xl-1 {
    margin-left: 8.3333333333%;
  }

  .offset-xl-2 {
    margin-left: 16.6666666667%;
  }

  .offset-xl-3 {
    margin-left: 25%;
  }

  .offset-xl-4 {
    margin-left: 33.3333333333%;
  }

  .offset-xl-5 {
    margin-left: 41.6666666667%;
  }

  .offset-xl-6 {
    margin-left: 50%;
  }

  .offset-xl-7 {
    margin-left: 58.3333333333%;
  }

  .offset-xl-8 {
    margin-left: 66.6666666667%;
  }

  .offset-xl-9 {
    margin-left: 75%;
  }

  .offset-xl-10 {
    margin-left: 83.3333333333%;
  }

  .offset-xl-11 {
    margin-left: 91.6666666667%;
  }
}

.form-control {
  display: block;
  width: 100%;
  height: calc(1.5em + 0.75rem + 2px);
  padding: 0.375rem 0.75rem;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.5;
  color: #495057;
  background-color: #fff;
  background-clip: padding-box;
  border: 1px solid #ced4da;
  border-radius: 0.25rem;
  transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}

@media (prefers-reduced-motion: reduce) {
  .form-control {
    transition: none;
  }
}

.form-control::-ms-expand {
  background-color: transparent;
  border: 0;
}

.form-control:focus {
  color: #495057;
  background-color: #fff;
  border-color: #80bdff;
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
}

.form-control::-webkit-input-placeholder {
  color: #6c757d;
  opacity: 1;
}

.form-control::-moz-placeholder {
  color: #6c757d;
  opacity: 1;
}

.form-control:-ms-input-placeholder {
  color: #6c757d;
  opacity: 1;
}

.form-control::-ms-input-placeholder {
  color: #6c757d;
  opacity: 1;
}

.form-control::placeholder {
  color: #6c757d;
  opacity: 1;
}

.form-control:disabled,
.form-control[readonly] {
  background-color: #e9ecef;
  opacity: 1;
}

select.form-control:focus::-ms-value {
  color: #495057;
  background-color: #fff;
}

.form-control-file,
.form-control-range {
  display: block;
  width: 100%;
}

.col-form-label {
  padding-top: calc(0.375rem + 1px);
  padding-bottom: calc(0.375rem + 1px);
  margin-bottom: 0;
  font-size: inherit;
  line-height: 1.5;
}

.col-form-label-lg {
  padding-top: calc(0.5rem + 1px);
  padding-bottom: calc(0.5rem + 1px);
  font-size: 1.25rem;
  line-height: 1.5;
}

.col-form-label-sm {
  padding-top: calc(0.25rem + 1px);
  padding-bottom: calc(0.25rem + 1px);
  font-size: 0.875rem;
  line-height: 1.5;
}

.form-control-plaintext {
  display: block;
  width: 100%;
  padding-top: 0.375rem;
  padding-bottom: 0.375rem;
  margin-bottom: 0;
  line-height: 1.5;
  color: #212529;
  background-color: transparent;
  border: solid transparent;
  border-width: 1px 0;
}

.form-control-plaintext.form-control-sm,
.form-control-plaintext.form-control-lg {
  padding-right: 0;
  padding-left: 0;
}

.form-control-sm {
  height: calc(1.5em + 0.5rem + 2px);
  padding: 0.25rem 0.5rem;
  font-size: 0.875rem;
  line-height: 1.5;
  border-radius: 0.2rem;
}

.form-control-lg {
  height: calc(1.5em + 1rem + 2px);
  padding: 0.5rem 1rem;
  font-size: 1.25rem;
  line-height: 1.5;
  border-radius: 0.3rem;
}

select.form-control[size],
select.form-control[multiple] {
  height: auto;
}

textarea.form-control {
  height: auto;
}

.form-group {
  margin-bottom: 1rem;
}

.form-text {
  display: block;
  margin-top: 0.25rem;
}

.form-row {
  display: flex;
  flex-wrap: wrap;
  margin-right: -5px;
  margin-left: -5px;
}

.form-row > .col,
.form-row > [class*=col-] {
  padding-right: 5px;
  padding-left: 5px;
}

.form-check {
  position: relative;
  display: block;
  padding-left: 1.25rem;
}

.form-check-input {
  position: absolute;
  margin-top: 0.3rem;
  margin-left: -1.25rem;
}

.form-check-input:disabled ~ .form-check-label {
  color: #6c757d;
}

.form-check-label {
  margin-bottom: 0;
}

.form-check-inline {
  display: inline-flex;
  align-items: center;
  padding-left: 0;
  margin-right: 0.75rem;
}

.form-check-inline .form-check-input {
  position: static;
  margin-top: 0;
  margin-right: 0.3125rem;
  margin-left: 0;
}

.valid-feedback {
  display: none;
  width: 100%;
  margin-top: 0.25rem;
  font-size: 80%;
  color: #28a745;
}

.valid-tooltip {
  position: absolute;
  top: 100%;
  z-index: 5;
  display: none;
  max-width: 100%;
  padding: 0.25rem 0.5rem;
  margin-top: 0.1rem;
  font-size: 0.875rem;
  line-height: 1.5;
  color: #fff;
  background-color: rgba(40, 167, 69, 0.9);
  border-radius: 0.25rem;
}

.was-validated .form-control:valid,
.form-control.is-valid {
  border-color: #28a745;
  padding-right: calc(1.5em + 0.75rem);
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");
  background-repeat: no-repeat;
  background-position: center right calc(0.375em + 0.1875rem);
  background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
}

.was-validated .form-control:valid:focus,
.form-control.is-valid:focus {
  border-color: #28a745;
  box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);
}

.was-validated .form-control:valid ~ .valid-feedback,
.was-validated .form-control:valid ~ .valid-tooltip,
.form-control.is-valid ~ .valid-feedback,
.form-control.is-valid ~ .valid-tooltip {
  display: block;
}

.was-validated textarea.form-control:valid,
textarea.form-control.is-valid {
  padding-right: calc(1.5em + 0.75rem);
  background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);
}

.was-validated .custom-select:valid,
.custom-select.is-valid {
  border-color: #28a745;
  padding-right: calc((1em + 0.75rem) * 3 / 4 + 1.75rem);
  background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right 0.75rem center/8px 10px, url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e") #fff no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
}

.was-validated .custom-select:valid:focus,
.custom-select.is-valid:focus {
  border-color: #28a745;
  box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);
}

.was-validated .custom-select:valid ~ .valid-feedback,
.was-validated .custom-select:valid ~ .valid-tooltip,
.custom-select.is-valid ~ .valid-feedback,
.custom-select.is-valid ~ .valid-tooltip {
  display: block;
}

.was-validated .form-control-file:valid ~ .valid-feedback,
.was-validated .form-control-file:valid ~ .valid-tooltip,
.form-control-file.is-valid ~ .valid-feedback,
.form-control-file.is-valid ~ .valid-tooltip {
  display: block;
}

.was-validated .form-check-input:valid ~ .form-check-label,
.form-check-input.is-valid ~ .form-check-label {
  color: #28a745;
}

.was-validated .form-check-input:valid ~ .valid-feedback,
.was-validated .form-check-input:valid ~ .valid-tooltip,
.form-check-input.is-valid ~ .valid-feedback,
.form-check-input.is-valid ~ .valid-tooltip {
  display: block;
}

.was-validated .custom-control-input:valid ~ .custom-control-label,
.custom-control-input.is-valid ~ .custom-control-label {
  color: #28a745;
}

.was-validated .custom-control-input:valid ~ .custom-control-label::before,
.custom-control-input.is-valid ~ .custom-control-label::before {
  border-color: #28a745;
}

.was-validated .custom-control-input:valid ~ .valid-feedback,
.was-validated .custom-control-input:valid ~ .valid-tooltip,
.custom-control-input.is-valid ~ .valid-feedback,
.custom-control-input.is-valid ~ .valid-tooltip {
  display: block;
}

.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before,
.custom-control-input.is-valid:checked ~ .custom-control-label::before {
  border-color: #34ce57;
  background-color: #34ce57;
}

.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before,
.custom-control-input.is-valid:focus ~ .custom-control-label::before {
  box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);
}

.was-validated .custom-control-input:valid:focus:not(:checked) ~ .custom-control-label::before,
.custom-control-input.is-valid:focus:not(:checked) ~ .custom-control-label::before {
  border-color: #28a745;
}

.was-validated .custom-file-input:valid ~ .custom-file-label,
.custom-file-input.is-valid ~ .custom-file-label {
  border-color: #28a745;
}

.was-validated .custom-file-input:valid ~ .valid-feedback,
.was-validated .custom-file-input:valid ~ .valid-tooltip,
.custom-file-input.is-valid ~ .valid-feedback,
.custom-file-input.is-valid ~ .valid-tooltip {
  display: block;
}

.was-validated .custom-file-input:valid:focus ~ .custom-file-label,
.custom-file-input.is-valid:focus ~ .custom-file-label {
  border-color: #28a745;
  box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);
}

.invalid-feedback {
  display: none;
  width: 100%;
  margin-top: 0.25rem;
  font-size: 80%;
  color: #dc3545;
}

.invalid-tooltip {
  position: absolute;
  top: 100%;
  z-index: 5;
  display: none;
  max-width: 100%;
  padding: 0.25rem 0.5rem;
  margin-top: 0.1rem;
  font-size: 0.875rem;
  line-height: 1.5;
  color: #fff;
  background-color: rgba(220, 53, 69, 0.9);
  border-radius: 0.25rem;
}

.was-validated .form-control:invalid,
.form-control.is-invalid {
  border-color: #dc3545;
  padding-right: calc(1.5em + 0.75rem);
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dc3545' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23dc3545' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E");
  background-repeat: no-repeat;
  background-position: center right calc(0.375em + 0.1875rem);
  background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
}

.was-validated .form-control:invalid:focus,
.form-control.is-invalid:focus {
  border-color: #dc3545;
  box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);
}

.was-validated .form-control:invalid ~ .invalid-feedback,
.was-validated .form-control:invalid ~ .invalid-tooltip,
.form-control.is-invalid ~ .invalid-feedback,
.form-control.is-invalid ~ .invalid-tooltip {
  display: block;
}

.was-validated textarea.form-control:invalid,
textarea.form-control.is-invalid {
  padding-right: calc(1.5em + 0.75rem);
  background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);
}

.was-validated .custom-select:invalid,
.custom-select.is-invalid {
  border-color: #dc3545;
  padding-right: calc((1em + 0.75rem) * 3 / 4 + 1.75rem);
  background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right 0.75rem center/8px 10px, url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dc3545' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23dc3545' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E") #fff no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
}

.was-validated .custom-select:invalid:focus,
.custom-select.is-invalid:focus {
  border-color: #dc3545;
  box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);
}

.was-validated .custom-select:invalid ~ .invalid-feedback,
.was-validated .custom-select:invalid ~ .invalid-tooltip,
.custom-select.is-invalid ~ .invalid-feedback,
.custom-select.is-invalid ~ .invalid-tooltip {
  display: block;
}

.was-validated .form-control-file:invalid ~ .invalid-feedback,
.was-validated .form-control-file:invalid ~ .invalid-tooltip,
.form-control-file.is-invalid ~ .invalid-feedback,
.form-control-file.is-invalid ~ .invalid-tooltip {
  display: block;
}

.was-validated .form-check-input:invalid ~ .form-check-label,
.form-check-input.is-invalid ~ .form-check-label {
  color: #dc3545;
}

.was-validated .form-check-input:invalid ~ .invalid-feedback,
.was-validated .form-check-input:invalid ~ .invalid-tooltip,
.form-check-input.is-invalid ~ .invalid-feedback,
.form-check-input.is-invalid ~ .invalid-tooltip {
  display: block;
}

.was-validated .custom-control-input:invalid ~ .custom-control-label,
.custom-control-input.is-invalid ~ .custom-control-label {
  color: #dc3545;
}

.was-validated .custom-control-input:invalid ~ .custom-control-label::before,
.custom-control-input.is-invalid ~ .custom-control-label::before {
  border-color: #dc3545;
}

.was-validated .custom-control-input:invalid ~ .invalid-feedback,
.was-validated .custom-control-input:invalid ~ .invalid-tooltip,
.custom-control-input.is-invalid ~ .invalid-feedback,
.custom-control-input.is-invalid ~ .invalid-tooltip {
  display: block;
}

.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before,
.custom-control-input.is-invalid:checked ~ .custom-control-label::before {
  border-color: #e4606d;
  background-color: #e4606d;
}

.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before,
.custom-control-input.is-invalid:focus ~ .custom-control-label::before {
  box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);
}

.was-validated .custom-control-input:invalid:focus:not(:checked) ~ .custom-control-label::before,
.custom-control-input.is-invalid:focus:not(:checked) ~ .custom-control-label::before {
  border-color: #dc3545;
}

.was-validated .custom-file-input:invalid ~ .custom-file-label,
.custom-file-input.is-invalid ~ .custom-file-label {
  border-color: #dc3545;
}

.was-validated .custom-file-input:invalid ~ .invalid-feedback,
.was-validated .custom-file-input:invalid ~ .invalid-tooltip,
.custom-file-input.is-invalid ~ .invalid-feedback,
.custom-file-input.is-invalid ~ .invalid-tooltip {
  display: block;
}

.was-validated .custom-file-input:invalid:focus ~ .custom-file-label,
.custom-file-input.is-invalid:focus ~ .custom-file-label {
  border-color: #dc3545;
  box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);
}

.form-inline {
  display: flex;
  flex-flow: row wrap;
  align-items: center;
}

.form-inline .form-check {
  width: 100%;
}

@media (min-width: 576px) {
  .form-inline label {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 0;
  }

  .form-inline .form-group {
    display: flex;
    flex: 0 0 auto;
    flex-flow: row wrap;
    align-items: center;
    margin-bottom: 0;
  }

  .form-inline .form-control {
    display: inline-block;
    width: auto;
    vertical-align: middle;
  }

  .form-inline .form-control-plaintext {
    display: inline-block;
  }

  .form-inline .input-group,
  .form-inline .custom-select {
    width: auto;
  }

  .form-inline .form-check {
    display: flex;
    align-items: center;
    justify-content: center;
    width: auto;
    padding-left: 0;
  }

  .form-inline .form-check-input {
    position: relative;
    flex-shrink: 0;
    margin-top: 0;
    margin-right: 0.25rem;
    margin-left: 0;
  }

  .form-inline .custom-control {
    align-items: center;
    justify-content: center;
  }

  .form-inline .custom-control-label {
    margin-bottom: 0;
  }
}

.btn {
  display: inline-block;
  font-weight: 400;
  color: #212529;
  text-align: center;
  vertical-align: middle;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  background-color: transparent;
  border: 1px solid transparent;
  padding: 0.375rem 0.75rem;
  font-size: 1rem;
  line-height: 1.5;
  border-radius: 0.25rem;
  transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}

@media (prefers-reduced-motion: reduce) {
  .btn {
    transition: none;
  }
}

.btn:hover {
  color: #212529;
  text-decoration: none;
}

.btn:focus,
.btn.focus {
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
}

.btn.disabled,
.btn:disabled {
  opacity: 0.65;
}

a.btn.disabled,
fieldset:disabled a.btn {
  pointer-events: none;
}

.btn-primary {
  color: #fff;
  background-color: #007bff;
  border-color: #007bff;
}

.btn-primary:hover {
  color: #fff;
  background-color: #0069d9;
  border-color: #0062cc;
}

.btn-primary:focus,
.btn-primary.focus {
  box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);
}

.btn-primary.disabled,
.btn-primary:disabled {
  color: #fff;
  background-color: #007bff;
  border-color: #007bff;
}

.btn-primary:not(:disabled):not(.disabled):active,
.btn-primary:not(:disabled):not(.disabled).active,
.show > .btn-primary.dropdown-toggle {
  color: #fff;
  background-color: #0062cc;
  border-color: #005cbf;
}

.btn-primary:not(:disabled):not(.disabled):active:focus,
.btn-primary:not(:disabled):not(.disabled).active:focus,
.show > .btn-primary.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);
}

.btn-secondary {
  color: #fff;
  background-color: #6c757d;
  border-color: #6c757d;
}

.btn-secondary:hover {
  color: #fff;
  background-color: #5a6268;
  border-color: #545b62;
}

.btn-secondary:focus,
.btn-secondary.focus {
  box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);
}

.btn-secondary.disabled,
.btn-secondary:disabled {
  color: #fff;
  background-color: #6c757d;
  border-color: #6c757d;
}

.btn-secondary:not(:disabled):not(.disabled):active,
.btn-secondary:not(:disabled):not(.disabled).active,
.show > .btn-secondary.dropdown-toggle {
  color: #fff;
  background-color: #545b62;
  border-color: #4e555b;
}

.btn-secondary:not(:disabled):not(.disabled):active:focus,
.btn-secondary:not(:disabled):not(.disabled).active:focus,
.show > .btn-secondary.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);
}

.btn-success {
  color: #fff;
  background-color: #28a745;
  border-color: #28a745;
}

.btn-success:hover {
  color: #fff;
  background-color: #218838;
  border-color: #1e7e34;
}

.btn-success:focus,
.btn-success.focus {
  box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);
}

.btn-success.disabled,
.btn-success:disabled {
  color: #fff;
  background-color: #28a745;
  border-color: #28a745;
}

.btn-success:not(:disabled):not(.disabled):active,
.btn-success:not(:disabled):not(.disabled).active,
.show > .btn-success.dropdown-toggle {
  color: #fff;
  background-color: #1e7e34;
  border-color: #1c7430;
}

.btn-success:not(:disabled):not(.disabled):active:focus,
.btn-success:not(:disabled):not(.disabled).active:focus,
.show > .btn-success.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);
}

.btn-info {
  color: #fff;
  background-color: #17a2b8;
  border-color: #17a2b8;
}

.btn-info:hover {
  color: #fff;
  background-color: #138496;
  border-color: #117a8b;
}

.btn-info:focus,
.btn-info.focus {
  box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);
}

.btn-info.disabled,
.btn-info:disabled {
  color: #fff;
  background-color: #17a2b8;
  border-color: #17a2b8;
}

.btn-info:not(:disabled):not(.disabled):active,
.btn-info:not(:disabled):not(.disabled).active,
.show > .btn-info.dropdown-toggle {
  color: #fff;
  background-color: #117a8b;
  border-color: #10707f;
}

.btn-info:not(:disabled):not(.disabled):active:focus,
.btn-info:not(:disabled):not(.disabled).active:focus,
.show > .btn-info.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);
}

.btn-warning {
  color: #212529;
  background-color: #ffc107;
  border-color: #ffc107;
}

.btn-warning:hover {
  color: #212529;
  background-color: #e0a800;
  border-color: #d39e00;
}

.btn-warning:focus,
.btn-warning.focus {
  box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);
}

.btn-warning.disabled,
.btn-warning:disabled {
  color: #212529;
  background-color: #ffc107;
  border-color: #ffc107;
}

.btn-warning:not(:disabled):not(.disabled):active,
.btn-warning:not(:disabled):not(.disabled).active,
.show > .btn-warning.dropdown-toggle {
  color: #212529;
  background-color: #d39e00;
  border-color: #c69500;
}

.btn-warning:not(:disabled):not(.disabled):active:focus,
.btn-warning:not(:disabled):not(.disabled).active:focus,
.show > .btn-warning.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);
}

.btn-danger {
  color: #fff;
  background-color: #dc3545;
  border-color: #dc3545;
}

.btn-danger:hover {
  color: #fff;
  background-color: #c82333;
  border-color: #bd2130;
}

.btn-danger:focus,
.btn-danger.focus {
  box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);
}

.btn-danger.disabled,
.btn-danger:disabled {
  color: #fff;
  background-color: #dc3545;
  border-color: #dc3545;
}

.btn-danger:not(:disabled):not(.disabled):active,
.btn-danger:not(:disabled):not(.disabled).active,
.show > .btn-danger.dropdown-toggle {
  color: #fff;
  background-color: #bd2130;
  border-color: #b21f2d;
}

.btn-danger:not(:disabled):not(.disabled):active:focus,
.btn-danger:not(:disabled):not(.disabled).active:focus,
.show > .btn-danger.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);
}

.btn-light {
  color: #212529;
  background-color: #f8f9fa;
  border-color: #f8f9fa;
}

.btn-light:hover {
  color: #212529;
  background-color: #e2e6ea;
  border-color: #dae0e5;
}

.btn-light:focus,
.btn-light.focus {
  box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5);
}

.btn-light.disabled,
.btn-light:disabled {
  color: #212529;
  background-color: #f8f9fa;
  border-color: #f8f9fa;
}

.btn-light:not(:disabled):not(.disabled):active,
.btn-light:not(:disabled):not(.disabled).active,
.show > .btn-light.dropdown-toggle {
  color: #212529;
  background-color: #dae0e5;
  border-color: #d3d9df;
}

.btn-light:not(:disabled):not(.disabled):active:focus,
.btn-light:not(:disabled):not(.disabled).active:focus,
.show > .btn-light.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5);
}

.btn-dark {
  color: #fff;
  background-color: #343a40;
  border-color: #343a40;
}

.btn-dark:hover {
  color: #fff;
  background-color: #23272b;
  border-color: #1d2124;
}

.btn-dark:focus,
.btn-dark.focus {
  box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5);
}

.btn-dark.disabled,
.btn-dark:disabled {
  color: #fff;
  background-color: #343a40;
  border-color: #343a40;
}

.btn-dark:not(:disabled):not(.disabled):active,
.btn-dark:not(:disabled):not(.disabled).active,
.show > .btn-dark.dropdown-toggle {
  color: #fff;
  background-color: #1d2124;
  border-color: #171a1d;
}

.btn-dark:not(:disabled):not(.disabled):active:focus,
.btn-dark:not(:disabled):not(.disabled).active:focus,
.show > .btn-dark.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5);
}

.btn-outline-primary {
  color: #007bff;
  border-color: #007bff;
}

.btn-outline-primary:hover {
  color: #fff;
  background-color: #007bff;
  border-color: #007bff;
}

.btn-outline-primary:focus,
.btn-outline-primary.focus {
  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);
}

.btn-outline-primary.disabled,
.btn-outline-primary:disabled {
  color: #007bff;
  background-color: transparent;
}

.btn-outline-primary:not(:disabled):not(.disabled):active,
.btn-outline-primary:not(:disabled):not(.disabled).active,
.show > .btn-outline-primary.dropdown-toggle {
  color: #fff;
  background-color: #007bff;
  border-color: #007bff;
}

.btn-outline-primary:not(:disabled):not(.disabled):active:focus,
.btn-outline-primary:not(:disabled):not(.disabled).active:focus,
.show > .btn-outline-primary.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);
}

.btn-outline-secondary {
  color: #6c757d;
  border-color: #6c757d;
}

.btn-outline-secondary:hover {
  color: #fff;
  background-color: #6c757d;
  border-color: #6c757d;
}

.btn-outline-secondary:focus,
.btn-outline-secondary.focus {
  box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);
}

.btn-outline-secondary.disabled,
.btn-outline-secondary:disabled {
  color: #6c757d;
  background-color: transparent;
}

.btn-outline-secondary:not(:disabled):not(.disabled):active,
.btn-outline-secondary:not(:disabled):not(.disabled).active,
.show > .btn-outline-secondary.dropdown-toggle {
  color: #fff;
  background-color: #6c757d;
  border-color: #6c757d;
}

.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,
.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,
.show > .btn-outline-secondary.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);
}

.btn-outline-success {
  color: #28a745;
  border-color: #28a745;
}

.btn-outline-success:hover {
  color: #fff;
  background-color: #28a745;
  border-color: #28a745;
}

.btn-outline-success:focus,
.btn-outline-success.focus {
  box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);
}

.btn-outline-success.disabled,
.btn-outline-success:disabled {
  color: #28a745;
  background-color: transparent;
}

.btn-outline-success:not(:disabled):not(.disabled):active,
.btn-outline-success:not(:disabled):not(.disabled).active,
.show > .btn-outline-success.dropdown-toggle {
  color: #fff;
  background-color: #28a745;
  border-color: #28a745;
}

.btn-outline-success:not(:disabled):not(.disabled):active:focus,
.btn-outline-success:not(:disabled):not(.disabled).active:focus,
.show > .btn-outline-success.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);
}

.btn-outline-info {
  color: #17a2b8;
  border-color: #17a2b8;
}

.btn-outline-info:hover {
  color: #fff;
  background-color: #17a2b8;
  border-color: #17a2b8;
}

.btn-outline-info:focus,
.btn-outline-info.focus {
  box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);
}

.btn-outline-info.disabled,
.btn-outline-info:disabled {
  color: #17a2b8;
  background-color: transparent;
}

.btn-outline-info:not(:disabled):not(.disabled):active,
.btn-outline-info:not(:disabled):not(.disabled).active,
.show > .btn-outline-info.dropdown-toggle {
  color: #fff;
  background-color: #17a2b8;
  border-color: #17a2b8;
}

.btn-outline-info:not(:disabled):not(.disabled):active:focus,
.btn-outline-info:not(:disabled):not(.disabled).active:focus,
.show > .btn-outline-info.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);
}

.btn-outline-warning {
  color: #ffc107;
  border-color: #ffc107;
}

.btn-outline-warning:hover {
  color: #212529;
  background-color: #ffc107;
  border-color: #ffc107;
}

.btn-outline-warning:focus,
.btn-outline-warning.focus {
  box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);
}

.btn-outline-warning.disabled,
.btn-outline-warning:disabled {
  color: #ffc107;
  background-color: transparent;
}

.btn-outline-warning:not(:disabled):not(.disabled):active,
.btn-outline-warning:not(:disabled):not(.disabled).active,
.show > .btn-outline-warning.dropdown-toggle {
  color: #212529;
  background-color: #ffc107;
  border-color: #ffc107;
}

.btn-outline-warning:not(:disabled):not(.disabled):active:focus,
.btn-outline-warning:not(:disabled):not(.disabled).active:focus,
.show > .btn-outline-warning.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);
}

.btn-outline-danger {
  color: #dc3545;
  border-color: #dc3545;
}

.btn-outline-danger:hover {
  color: #fff;
  background-color: #dc3545;
  border-color: #dc3545;
}

.btn-outline-danger:focus,
.btn-outline-danger.focus {
  box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);
}

.btn-outline-danger.disabled,
.btn-outline-danger:disabled {
  color: #dc3545;
  background-color: transparent;
}

.btn-outline-danger:not(:disabled):not(.disabled):active,
.btn-outline-danger:not(:disabled):not(.disabled).active,
.show > .btn-outline-danger.dropdown-toggle {
  color: #fff;
  background-color: #dc3545;
  border-color: #dc3545;
}

.btn-outline-danger:not(:disabled):not(.disabled):active:focus,
.btn-outline-danger:not(:disabled):not(.disabled).active:focus,
.show > .btn-outline-danger.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);
}

.btn-outline-light {
  color: #f8f9fa;
  border-color: #f8f9fa;
}

.btn-outline-light:hover {
  color: #212529;
  background-color: #f8f9fa;
  border-color: #f8f9fa;
}

.btn-outline-light:focus,
.btn-outline-light.focus {
  box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);
}

.btn-outline-light.disabled,
.btn-outline-light:disabled {
  color: #f8f9fa;
  background-color: transparent;
}

.btn-outline-light:not(:disabled):not(.disabled):active,
.btn-outline-light:not(:disabled):not(.disabled).active,
.show > .btn-outline-light.dropdown-toggle {
  color: #212529;
  background-color: #f8f9fa;
  border-color: #f8f9fa;
}

.btn-outline-light:not(:disabled):not(.disabled):active:focus,
.btn-outline-light:not(:disabled):not(.disabled).active:focus,
.show > .btn-outline-light.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);
}

.btn-outline-dark {
  color: #343a40;
  border-color: #343a40;
}

.btn-outline-dark:hover {
  color: #fff;
  background-color: #343a40;
  border-color: #343a40;
}

.btn-outline-dark:focus,
.btn-outline-dark.focus {
  box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);
}

.btn-outline-dark.disabled,
.btn-outline-dark:disabled {
  color: #343a40;
  background-color: transparent;
}

.btn-outline-dark:not(:disabled):not(.disabled):active,
.btn-outline-dark:not(:disabled):not(.disabled).active,
.show > .btn-outline-dark.dropdown-toggle {
  color: #fff;
  background-color: #343a40;
  border-color: #343a40;
}

.btn-outline-dark:not(:disabled):not(.disabled):active:focus,
.btn-outline-dark:not(:disabled):not(.disabled).active:focus,
.show > .btn-outline-dark.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);
}

.btn-link {
  font-weight: 400;
  color: #007bff;
  text-decoration: none;
}

.btn-link:hover {
  color: #0056b3;
  text-decoration: underline;
}

.btn-link:focus,
.btn-link.focus {
  text-decoration: underline;
  box-shadow: none;
}

.btn-link:disabled,
.btn-link.disabled {
  color: #6c757d;
  pointer-events: none;
}

.btn-lg {
  padding: 0.5rem 1rem;
  font-size: 1.25rem;
  line-height: 1.5;
  border-radius: 0.3rem;
}

.btn-sm {
  padding: 0.25rem 0.5rem;
  font-size: 0.875rem;
  line-height: 1.5;
  border-radius: 0.2rem;
}

.btn-block {
  display: block;
  width: 100%;
}

.btn-block + .btn-block {
  margin-top: 0.5rem;
}

input[type=submit].btn-block,
input[type=reset].btn-block,
input[type=button].btn-block {
  width: 100%;
}

.fade {
  transition: opacity 0.15s linear;
}

@media (prefers-reduced-motion: reduce) {
  .fade {
    transition: none;
  }
}

.fade:not(.show) {
  opacity: 0;
}

.collapse:not(.show) {
  display: none;
}

.collapsing {
  position: relative;
  height: 0;
  overflow: hidden;
  transition: height 0.35s ease;
}

@media (prefers-reduced-motion: reduce) {
  .collapsing {
    transition: none;
  }
}

.input-group {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  width: 100%;
}

.input-group > .form-control,
.input-group > .form-control-plaintext,
.input-group > .custom-select,
.input-group > .custom-file {
  position: relative;
  flex: 1 1 auto;
  width: 1%;
  margin-bottom: 0;
}

.input-group > .form-control + .form-control,
.input-group > .form-control + .custom-select,
.input-group > .form-control + .custom-file,
.input-group > .form-control-plaintext + .form-control,
.input-group > .form-control-plaintext + .custom-select,
.input-group > .form-control-plaintext + .custom-file,
.input-group > .custom-select + .form-control,
.input-group > .custom-select + .custom-select,
.input-group > .custom-select + .custom-file,
.input-group > .custom-file + .form-control,
.input-group > .custom-file + .custom-select,
.input-group > .custom-file + .custom-file {
  margin-left: -1px;
}

.input-group > .form-control:focus,
.input-group > .custom-select:focus,
.input-group > .custom-file .custom-file-input:focus ~ .custom-file-label {
  z-index: 3;
}

.input-group > .custom-file .custom-file-input:focus {
  z-index: 4;
}

.input-group > .form-control:not(:last-child),
.input-group > .custom-select:not(:last-child) {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}

.input-group > .form-control:not(:first-child),
.input-group > .custom-select:not(:first-child) {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}

.input-group > .custom-file {
  display: flex;
  align-items: center;
}

.input-group > .custom-file:not(:last-child) .custom-file-label,
.input-group > .custom-file:not(:last-child) .custom-file-label::after {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}

.input-group > .custom-file:not(:first-child) .custom-file-label {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}

.input-group-prepend,
.input-group-append {
  display: flex;
}

.input-group-prepend .btn,
.input-group-append .btn {
  position: relative;
  z-index: 2;
}

.input-group-prepend .btn:focus,
.input-group-append .btn:focus {
  z-index: 3;
}

.input-group-prepend .btn + .btn,
.input-group-prepend .btn + .input-group-text,
.input-group-prepend .input-group-text + .input-group-text,
.input-group-prepend .input-group-text + .btn,
.input-group-append .btn + .btn,
.input-group-append .btn + .input-group-text,
.input-group-append .input-group-text + .input-group-text,
.input-group-append .input-group-text + .btn {
  margin-left: -1px;
}

.input-group-prepend {
  margin-right: -1px;
}

.input-group-append {
  margin-left: -1px;
}

.input-group-text {
  display: flex;
  align-items: center;
  padding: 0.375rem 0.75rem;
  margin-bottom: 0;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.5;
  color: #495057;
  text-align: center;
  white-space: nowrap;
  background-color: #e9ecef;
  border: 1px solid #ced4da;
  border-radius: 0.25rem;
}

.input-group-text input[type=radio],
.input-group-text input[type=checkbox] {
  margin-top: 0;
}

.input-group-lg > .form-control:not(textarea),
.input-group-lg > .custom-select {
  height: calc(1.5em + 1rem + 2px);
}

.input-group-lg > .form-control,
.input-group-lg > .custom-select,
.input-group-lg > .input-group-prepend > .input-group-text,
.input-group-lg > .input-group-append > .input-group-text,
.input-group-lg > .input-group-prepend > .btn,
.input-group-lg > .input-group-append > .btn {
  padding: 0.5rem 1rem;
  font-size: 1.25rem;
  line-height: 1.5;
  border-radius: 0.3rem;
}

.input-group-sm > .form-control:not(textarea),
.input-group-sm > .custom-select {
  height: calc(1.5em + 0.5rem + 2px);
}

.input-group-sm > .form-control,
.input-group-sm > .custom-select,
.input-group-sm > .input-group-prepend > .input-group-text,
.input-group-sm > .input-group-append > .input-group-text,
.input-group-sm > .input-group-prepend > .btn,
.input-group-sm > .input-group-append > .btn {
  padding: 0.25rem 0.5rem;
  font-size: 0.875rem;
  line-height: 1.5;
  border-radius: 0.2rem;
}

.input-group-lg > .custom-select,
.input-group-sm > .custom-select {
  padding-right: 1.75rem;
}

.input-group > .input-group-prepend > .btn,
.input-group > .input-group-prepend > .input-group-text,
.input-group > .input-group-append:not(:last-child) > .btn,
.input-group > .input-group-append:not(:last-child) > .input-group-text,
.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),
.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}

.input-group > .input-group-append > .btn,
.input-group > .input-group-append > .input-group-text,
.input-group > .input-group-prepend:not(:first-child) > .btn,
.input-group > .input-group-prepend:not(:first-child) > .input-group-text,
.input-group > .input-group-prepend:first-child > .btn:not(:first-child),
.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}

.custom-control {
  position: relative;
  display: block;
  min-height: 1.5rem;
  padding-left: 1.5rem;
}

.custom-control-inline {
  display: inline-flex;
  margin-right: 1rem;
}

.custom-control-input {
  position: absolute;
  z-index: -1;
  opacity: 0;
}

.custom-control-input:checked ~ .custom-control-label::before {
  color: #fff;
  border-color: #007bff;
  background-color: #007bff;
}

.custom-control-input:focus ~ .custom-control-label::before {
  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
}

.custom-control-input:focus:not(:checked) ~ .custom-control-label::before {
  border-color: #80bdff;
}

.custom-control-input:not(:disabled):active ~ .custom-control-label::before {
  color: #fff;
  background-color: #b3d7ff;
  border-color: #b3d7ff;
}

.custom-control-input:disabled ~ .custom-control-label {
  color: #6c757d;
}

.custom-control-input:disabled ~ .custom-control-label::before {
  background-color: #e9ecef;
}

.custom-control-label {
  position: relative;
  margin-bottom: 0;
  vertical-align: top;
}

.custom-control-label::before {
  position: absolute;
  top: 0.25rem;
  left: -1.5rem;
  display: block;
  width: 1rem;
  height: 1rem;
  pointer-events: none;
  content: "";
  background-color: #fff;
  border: #adb5bd solid 1px;
}

.custom-control-label::after {
  position: absolute;
  top: 0.25rem;
  left: -1.5rem;
  display: block;
  width: 1rem;
  height: 1rem;
  content: "";
  background: no-repeat 50%/50% 50%;
}

.custom-checkbox .custom-control-label::before {
  border-radius: 0.25rem;
}

.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3e%3c/svg%3e");
}

.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before {
  border-color: #007bff;
  background-color: #007bff;
}

.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e");
}

.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before {
  background-color: rgba(0, 123, 255, 0.5);
}

.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before {
  background-color: rgba(0, 123, 255, 0.5);
}

.custom-radio .custom-control-label::before {
  border-radius: 50%;
}

.custom-radio .custom-control-input:checked ~ .custom-control-label::after {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e");
}

.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before {
  background-color: rgba(0, 123, 255, 0.5);
}

.custom-switch {
  padding-left: 2.25rem;
}

.custom-switch .custom-control-label::before {
  left: -2.25rem;
  width: 1.75rem;
  pointer-events: all;
  border-radius: 0.5rem;
}

.custom-switch .custom-control-label::after {
  top: calc(0.25rem + 2px);
  left: calc(-2.25rem + 2px);
  width: calc(1rem - 4px);
  height: calc(1rem - 4px);
  background-color: #adb5bd;
  border-radius: 0.5rem;
  transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}

@media (prefers-reduced-motion: reduce) {
  .custom-switch .custom-control-label::after {
    transition: none;
  }
}

.custom-switch .custom-control-input:checked ~ .custom-control-label::after {
  background-color: #fff;
  transform: translateX(0.75rem);
}

.custom-switch .custom-control-input:disabled:checked ~ .custom-control-label::before {
  background-color: rgba(0, 123, 255, 0.5);
}

.custom-select {
  display: inline-block;
  width: 100%;
  height: calc(1.5em + 0.75rem + 2px);
  padding: 0.375rem 1.75rem 0.375rem 0.75rem;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.5;
  color: #495057;
  vertical-align: middle;
  background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right 0.75rem center/8px 10px;
  background-color: #fff;
  border: 1px solid #ced4da;
  border-radius: 0.25rem;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
}

.custom-select:focus {
  border-color: #80bdff;
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
}

.custom-select:focus::-ms-value {
  color: #495057;
  background-color: #fff;
}

.custom-select[multiple],
.custom-select[size]:not([size="1"]) {
  height: auto;
  padding-right: 0.75rem;
  background-image: none;
}

.custom-select:disabled {
  color: #6c757d;
  background-color: #e9ecef;
}

.custom-select::-ms-expand {
  display: none;
}

.custom-select-sm {
  height: calc(1.5em + 0.5rem + 2px);
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
  padding-left: 0.5rem;
  font-size: 0.875rem;
}

.custom-select-lg {
  height: calc(1.5em + 1rem + 2px);
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
  padding-left: 1rem;
  font-size: 1.25rem;
}

.custom-file {
  position: relative;
  display: inline-block;
  width: 100%;
  height: calc(1.5em + 0.75rem + 2px);
  margin-bottom: 0;
}

.custom-file-input {
  position: relative;
  z-index: 2;
  width: 100%;
  height: calc(1.5em + 0.75rem + 2px);
  margin: 0;
  opacity: 0;
}

.custom-file-input:focus ~ .custom-file-label {
  border-color: #80bdff;
  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
}

.custom-file-input:disabled ~ .custom-file-label {
  background-color: #e9ecef;
}

.custom-file-input:lang(en) ~ .custom-file-label::after {
  content: "Browse";
}

.custom-file-input ~ .custom-file-label[data-browse]::after {
  content: attr(data-browse);
}

.custom-file-label {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  z-index: 1;
  height: calc(1.5em + 0.75rem + 2px);
  padding: 0.375rem 0.75rem;
  font-weight: 400;
  line-height: 1.5;
  color: #495057;
  background-color: #fff;
  border: 1px solid #ced4da;
  border-radius: 0.25rem;
}

.custom-file-label::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  z-index: 3;
  display: block;
  height: calc(1.5em + 0.75rem);
  padding: 0.375rem 0.75rem;
  line-height: 1.5;
  color: #495057;
  content: "Browse";
  background-color: #e9ecef;
  border-left: inherit;
  border-radius: 0 0.25rem 0.25rem 0;
}

.custom-range {
  width: 100%;
  height: calc(1rem + 0.4rem);
  padding: 0;
  background-color: transparent;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
}

.custom-range:focus {
  outline: none;
}

.custom-range:focus::-webkit-slider-thumb {
  box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
}

.custom-range:focus::-moz-range-thumb {
  box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
}

.custom-range:focus::-ms-thumb {
  box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
}

.custom-range::-moz-focus-outer {
  border: 0;
}

.custom-range::-webkit-slider-thumb {
  width: 1rem;
  height: 1rem;
  margin-top: -0.25rem;
  background-color: #007bff;
  border: 0;
  border-radius: 1rem;
  transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
  -webkit-appearance: none;
          appearance: none;
}

@media (prefers-reduced-motion: reduce) {
  .custom-range::-webkit-slider-thumb {
    transition: none;
  }
}

.custom-range::-webkit-slider-thumb:active {
  background-color: #b3d7ff;
}

.custom-range::-webkit-slider-runnable-track {
  width: 100%;
  height: 0.5rem;
  color: transparent;
  cursor: pointer;
  background-color: #dee2e6;
  border-color: transparent;
  border-radius: 1rem;
}

.custom-range::-moz-range-thumb {
  width: 1rem;
  height: 1rem;
  background-color: #007bff;
  border: 0;
  border-radius: 1rem;
  transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
  -moz-appearance: none;
       appearance: none;
}

@media (prefers-reduced-motion: reduce) {
  .custom-range::-moz-range-thumb {
    transition: none;
  }
}

.custom-range::-moz-range-thumb:active {
  background-color: #b3d7ff;
}

.custom-range::-moz-range-track {
  width: 100%;
  height: 0.5rem;
  color: transparent;
  cursor: pointer;
  background-color: #dee2e6;
  border-color: transparent;
  border-radius: 1rem;
}

.custom-range::-ms-thumb {
  width: 1rem;
  height: 1rem;
  margin-top: 0;
  margin-right: 0.2rem;
  margin-left: 0.2rem;
  background-color: #007bff;
  border: 0;
  border-radius: 1rem;
  transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
  appearance: none;
}

@media (prefers-reduced-motion: reduce) {
  .custom-range::-ms-thumb {
    transition: none;
  }
}

.custom-range::-ms-thumb:active {
  background-color: #b3d7ff;
}

.custom-range::-ms-track {
  width: 100%;
  height: 0.5rem;
  color: transparent;
  cursor: pointer;
  background-color: transparent;
  border-color: transparent;
  border-width: 0.5rem;
}

.custom-range::-ms-fill-lower {
  background-color: #dee2e6;
  border-radius: 1rem;
}

.custom-range::-ms-fill-upper {
  margin-right: 15px;
  background-color: #dee2e6;
  border-radius: 1rem;
}

.custom-range:disabled::-webkit-slider-thumb {
  background-color: #adb5bd;
}

.custom-range:disabled::-webkit-slider-runnable-track {
  cursor: default;
}

.custom-range:disabled::-moz-range-thumb {
  background-color: #adb5bd;
}

.custom-range:disabled::-moz-range-track {
  cursor: default;
}

.custom-range:disabled::-ms-thumb {
  background-color: #adb5bd;
}

.custom-control-label::before,
.custom-file-label,
.custom-select {
  transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}

@media (prefers-reduced-motion: reduce) {
  .custom-control-label::before,
  .custom-file-label,
  .custom-select {
    transition: none;
  }
}

.pagination {
  display: flex;
  padding-left: 0;
  list-style: none;
  border-radius: 0.25rem;
}

.page-link {
  position: relative;
  display: block;
  padding: 0.5rem 0.75rem;
  margin-left: -1px;
  line-height: 1.25;
  color: #007bff;
  background-color: #fff;
  border: 1px solid #dee2e6;
}

.page-link:hover {
  z-index: 2;
  color: #0056b3;
  text-decoration: none;
  background-color: #e9ecef;
  border-color: #dee2e6;
}

.page-link:focus {
  z-index: 2;
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
}

.page-item:first-child .page-link {
  margin-left: 0;
  border-top-left-radius: 0.25rem;
  border-bottom-left-radius: 0.25rem;
}

.page-item:last-child .page-link {
  border-top-right-radius: 0.25rem;
  border-bottom-right-radius: 0.25rem;
}

.page-item.active .page-link {
  z-index: 1;
  color: #fff;
  background-color: #007bff;
  border-color: #007bff;
}

.page-item.disabled .page-link {
  color: #6c757d;
  pointer-events: none;
  cursor: auto;
  background-color: #fff;
  border-color: #dee2e6;
}

.pagination-lg .page-link {
  padding: 0.75rem 1.5rem;
  font-size: 1.25rem;
  line-height: 1.5;
}

.pagination-lg .page-item:first-child .page-link {
  border-top-left-radius: 0.3rem;
  border-bottom-left-radius: 0.3rem;
}

.pagination-lg .page-item:last-child .page-link {
  border-top-right-radius: 0.3rem;
  border-bottom-right-radius: 0.3rem;
}

.pagination-sm .page-link {
  padding: 0.25rem 0.5rem;
  font-size: 0.875rem;
  line-height: 1.5;
}

.pagination-sm .page-item:first-child .page-link {
  border-top-left-radius: 0.2rem;
  border-bottom-left-radius: 0.2rem;
}

.pagination-sm .page-item:last-child .page-link {
  border-top-right-radius: 0.2rem;
  border-bottom-right-radius: 0.2rem;
}

.badge {
  display: inline-block;
  padding: 0.25em 0.4em;
  font-size: 75%;
  font-weight: 700;
  line-height: 1;
  text-align: center;
  white-space: nowrap;
  vertical-align: baseline;
  border-radius: 0.25rem;
  transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}

@media (prefers-reduced-motion: reduce) {
  .badge {
    transition: none;
  }
}

a.badge:hover,
a.badge:focus {
  text-decoration: none;
}

.badge:empty {
  display: none;
}

.btn .badge {
  position: relative;
  top: -1px;
}

.badge-pill {
  padding-right: 0.6em;
  padding-left: 0.6em;
  border-radius: 10rem;
}

.badge-primary {
  color: #fff;
  background-color: #007bff;
}

a.badge-primary:hover,
a.badge-primary:focus {
  color: #fff;
  background-color: #0062cc;
}

a.badge-primary:focus,
a.badge-primary.focus {
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);
}

.badge-secondary {
  color: #fff;
  background-color: #6c757d;
}

a.badge-secondary:hover,
a.badge-secondary:focus {
  color: #fff;
  background-color: #545b62;
}

a.badge-secondary:focus,
a.badge-secondary.focus {
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);
}

.badge-success {
  color: #fff;
  background-color: #28a745;
}

a.badge-success:hover,
a.badge-success:focus {
  color: #fff;
  background-color: #1e7e34;
}

a.badge-success:focus,
a.badge-success.focus {
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);
}

.badge-info {
  color: #fff;
  background-color: #17a2b8;
}

a.badge-info:hover,
a.badge-info:focus {
  color: #fff;
  background-color: #117a8b;
}

a.badge-info:focus,
a.badge-info.focus {
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);
}

.badge-warning {
  color: #212529;
  background-color: #ffc107;
}

a.badge-warning:hover,
a.badge-warning:focus {
  color: #212529;
  background-color: #d39e00;
}

a.badge-warning:focus,
a.badge-warning.focus {
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);
}

.badge-danger {
  color: #fff;
  background-color: #dc3545;
}

a.badge-danger:hover,
a.badge-danger:focus {
  color: #fff;
  background-color: #bd2130;
}

a.badge-danger:focus,
a.badge-danger.focus {
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);
}

.badge-light {
  color: #212529;
  background-color: #f8f9fa;
}

a.badge-light:hover,
a.badge-light:focus {
  color: #212529;
  background-color: #dae0e5;
}

a.badge-light:focus,
a.badge-light.focus {
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);
}

.badge-dark {
  color: #fff;
  background-color: #343a40;
}

a.badge-dark:hover,
a.badge-dark:focus {
  color: #fff;
  background-color: #1d2124;
}

a.badge-dark:focus,
a.badge-dark.focus {
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);
}

.alert {
  position: relative;
  padding: 0.75rem 1.25rem;
  margin-bottom: 1rem;
  border: 1px solid transparent;
  border-radius: 0.25rem;
}

.alert-heading {
  color: inherit;
}

.alert-link {
  font-weight: 700;
}

.alert-dismissible {
  padding-right: 4rem;
}

.alert-dismissible .close {
  position: absolute;
  top: 0;
  right: 0;
  padding: 0.75rem 1.25rem;
  color: inherit;
}

.alert-primary {
  color: #004085;
  background-color: #cce5ff;
  border-color: #b8daff;
}

.alert-primary hr {
  border-top-color: #9fcdff;
}

.alert-primary .alert-link {
  color: #002752;
}

.alert-secondary {
  color: #383d41;
  background-color: #e2e3e5;
  border-color: #d6d8db;
}

.alert-secondary hr {
  border-top-color: #c8cbcf;
}

.alert-secondary .alert-link {
  color: #202326;
}

.alert-success {
  color: #155724;
  background-color: #d4edda;
  border-color: #c3e6cb;
}

.alert-success hr {
  border-top-color: #b1dfbb;
}

.alert-success .alert-link {
  color: #0b2e13;
}

.alert-info {
  color: #0c5460;
  background-color: #d1ecf1;
  border-color: #bee5eb;
}

.alert-info hr {
  border-top-color: #abdde5;
}

.alert-info .alert-link {
  color: #062c33;
}

.alert-warning {
  color: #856404;
  background-color: #fff3cd;
  border-color: #ffeeba;
}

.alert-warning hr {
  border-top-color: #ffe8a1;
}

.alert-warning .alert-link {
  color: #533f03;
}

.alert-danger {
  color: #721c24;
  background-color: #f8d7da;
  border-color: #f5c6cb;
}

.alert-danger hr {
  border-top-color: #f1b0b7;
}

.alert-danger .alert-link {
  color: #491217;
}

.alert-light {
  color: #818182;
  background-color: #fefefe;
  border-color: #fdfdfe;
}

.alert-light hr {
  border-top-color: #ececf6;
}

.alert-light .alert-link {
  color: #686868;
}

.alert-dark {
  color: #1b1e21;
  background-color: #d6d8d9;
  border-color: #c6c8ca;
}

.alert-dark hr {
  border-top-color: #b9bbbe;
}

.alert-dark .alert-link {
  color: #040505;
}

.media {
  display: flex;
  align-items: flex-start;
}

.media-body {
  flex: 1;
}

.list-group {
  display: flex;
  flex-direction: column;
  padding-left: 0;
  margin-bottom: 0;
}

.list-group-item-action {
  width: 100%;
  color: #495057;
  text-align: inherit;
}

.list-group-item-action:hover,
.list-group-item-action:focus {
  z-index: 1;
  color: #495057;
  text-decoration: none;
  background-color: #f8f9fa;
}

.list-group-item-action:active {
  color: #212529;
  background-color: #e9ecef;
}

.list-group-item {
  position: relative;
  display: block;
  padding: 0.75rem 1.25rem;
  margin-bottom: -1px;
  background-color: #fff;
  border: 1px solid rgba(0, 0, 0, 0.125);
}

.list-group-item:first-child {
  border-top-left-radius: 0.25rem;
  border-top-right-radius: 0.25rem;
}

.list-group-item:last-child {
  margin-bottom: 0;
  border-bottom-right-radius: 0.25rem;
  border-bottom-left-radius: 0.25rem;
}

.list-group-item.disabled,
.list-group-item:disabled {
  color: #6c757d;
  pointer-events: none;
  background-color: #fff;
}

.list-group-item.active {
  z-index: 2;
  color: #fff;
  background-color: #007bff;
  border-color: #007bff;
}

.list-group-horizontal {
  flex-direction: row;
}

.list-group-horizontal .list-group-item {
  margin-right: -1px;
  margin-bottom: 0;
}

.list-group-horizontal .list-group-item:first-child {
  border-top-left-radius: 0.25rem;
  border-bottom-left-radius: 0.25rem;
  border-top-right-radius: 0;
}

.list-group-horizontal .list-group-item:last-child {
  margin-right: 0;
  border-top-right-radius: 0.25rem;
  border-bottom-right-radius: 0.25rem;
  border-bottom-left-radius: 0;
}

@media (min-width: 576px) {
  .list-group-horizontal-sm {
    flex-direction: row;
  }

  .list-group-horizontal-sm .list-group-item {
    margin-right: -1px;
    margin-bottom: 0;
  }

  .list-group-horizontal-sm .list-group-item:first-child {
    border-top-left-radius: 0.25rem;
    border-bottom-left-radius: 0.25rem;
    border-top-right-radius: 0;
  }

  .list-group-horizontal-sm .list-group-item:last-child {
    margin-right: 0;
    border-top-right-radius: 0.25rem;
    border-bottom-right-radius: 0.25rem;
    border-bottom-left-radius: 0;
  }
}

@media (min-width: 768px) {
  .list-group-horizontal-md {
    flex-direction: row;
  }

  .list-group-horizontal-md .list-group-item {
    margin-right: -1px;
    margin-bottom: 0;
  }

  .list-group-horizontal-md .list-group-item:first-child {
    border-top-left-radius: 0.25rem;
    border-bottom-left-radius: 0.25rem;
    border-top-right-radius: 0;
  }

  .list-group-horizontal-md .list-group-item:last-child {
    margin-right: 0;
    border-top-right-radius: 0.25rem;
    border-bottom-right-radius: 0.25rem;
    border-bottom-left-radius: 0;
  }
}

@media (min-width: 992px) {
  .list-group-horizontal-lg {
    flex-direction: row;
  }

  .list-group-horizontal-lg .list-group-item {
    margin-right: -1px;
    margin-bottom: 0;
  }

  .list-group-horizontal-lg .list-group-item:first-child {
    border-top-left-radius: 0.25rem;
    border-bottom-left-radius: 0.25rem;
    border-top-right-radius: 0;
  }

  .list-group-horizontal-lg .list-group-item:last-child {
    margin-right: 0;
    border-top-right-radius: 0.25rem;
    border-bottom-right-radius: 0.25rem;
    border-bottom-left-radius: 0;
  }
}

@media (min-width: 1200px) {
  .list-group-horizontal-xl {
    flex-direction: row;
  }

  .list-group-horizontal-xl .list-group-item {
    margin-right: -1px;
    margin-bottom: 0;
  }

  .list-group-horizontal-xl .list-group-item:first-child {
    border-top-left-radius: 0.25rem;
    border-bottom-left-radius: 0.25rem;
    border-top-right-radius: 0;
  }

  .list-group-horizontal-xl .list-group-item:last-child {
    margin-right: 0;
    border-top-right-radius: 0.25rem;
    border-bottom-right-radius: 0.25rem;
    border-bottom-left-radius: 0;
  }
}

.list-group-flush .list-group-item {
  border-right: 0;
  border-left: 0;
  border-radius: 0;
}

.list-group-flush .list-group-item:last-child {
  margin-bottom: -1px;
}

.list-group-flush:first-child .list-group-item:first-child {
  border-top: 0;
}

.list-group-flush:last-child .list-group-item:last-child {
  margin-bottom: 0;
  border-bottom: 0;
}

.list-group-item-primary {
  color: #004085;
  background-color: #b8daff;
}

.list-group-item-primary.list-group-item-action:hover,
.list-group-item-primary.list-group-item-action:focus {
  color: #004085;
  background-color: #9fcdff;
}

.list-group-item-primary.list-group-item-action.active {
  color: #fff;
  background-color: #004085;
  border-color: #004085;
}

.list-group-item-secondary {
  color: #383d41;
  background-color: #d6d8db;
}

.list-group-item-secondary.list-group-item-action:hover,
.list-group-item-secondary.list-group-item-action:focus {
  color: #383d41;
  background-color: #c8cbcf;
}

.list-group-item-secondary.list-group-item-action.active {
  color: #fff;
  background-color: #383d41;
  border-color: #383d41;
}

.list-group-item-success {
  color: #155724;
  background-color: #c3e6cb;
}

.list-group-item-success.list-group-item-action:hover,
.list-group-item-success.list-group-item-action:focus {
  color: #155724;
  background-color: #b1dfbb;
}

.list-group-item-success.list-group-item-action.active {
  color: #fff;
  background-color: #155724;
  border-color: #155724;
}

.list-group-item-info {
  color: #0c5460;
  background-color: #bee5eb;
}

.list-group-item-info.list-group-item-action:hover,
.list-group-item-info.list-group-item-action:focus {
  color: #0c5460;
  background-color: #abdde5;
}

.list-group-item-info.list-group-item-action.active {
  color: #fff;
  background-color: #0c5460;
  border-color: #0c5460;
}

.list-group-item-warning {
  color: #856404;
  background-color: #ffeeba;
}

.list-group-item-warning.list-group-item-action:hover,
.list-group-item-warning.list-group-item-action:focus {
  color: #856404;
  background-color: #ffe8a1;
}

.list-group-item-warning.list-group-item-action.active {
  color: #fff;
  background-color: #856404;
  border-color: #856404;
}

.list-group-item-danger {
  color: #721c24;
  background-color: #f5c6cb;
}

.list-group-item-danger.list-group-item-action:hover,
.list-group-item-danger.list-group-item-action:focus {
  color: #721c24;
  background-color: #f1b0b7;
}

.list-group-item-danger.list-group-item-action.active {
  color: #fff;
  background-color: #721c24;
  border-color: #721c24;
}

.list-group-item-light {
  color: #818182;
  background-color: #fdfdfe;
}

.list-group-item-light.list-group-item-action:hover,
.list-group-item-light.list-group-item-action:focus {
  color: #818182;
  background-color: #ececf6;
}

.list-group-item-light.list-group-item-action.active {
  color: #fff;
  background-color: #818182;
  border-color: #818182;
}

.list-group-item-dark {
  color: #1b1e21;
  background-color: #c6c8ca;
}

.list-group-item-dark.list-group-item-action:hover,
.list-group-item-dark.list-group-item-action:focus {
  color: #1b1e21;
  background-color: #b9bbbe;
}

.list-group-item-dark.list-group-item-action.active {
  color: #fff;
  background-color: #1b1e21;
  border-color: #1b1e21;
}

.close {
  float: right;
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1;
  color: #000;
  text-shadow: 0 1px 0 #fff;
  opacity: 0.5;
}

.close:hover {
  color: #000;
  text-decoration: none;
}

.close:not(:disabled):not(.disabled):hover,
.close:not(:disabled):not(.disabled):focus {
  opacity: 0.75;
}

button.close {
  padding: 0;
  background-color: transparent;
  border: 0;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
}

a.close.disabled {
  pointer-events: none;
}

.modal-open {
  overflow: hidden;
}

.modal-open .modal {
  overflow-x: hidden;
  overflow-y: auto;
}

.modal {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 1050;
  display: none;
  width: 100%;
  height: 100%;
  overflow: hidden;
  outline: 0;
}

.modal-dialog {
  position: relative;
  width: auto;
  margin: 0.5rem;
  pointer-events: none;
}

.modal.fade .modal-dialog {
  transition: transform 0.3s ease-out;
  transform: translate(0, -50px);
}

@media (prefers-reduced-motion: reduce) {
  .modal.fade .modal-dialog {
    transition: none;
  }
}

.modal.show .modal-dialog {
  transform: none;
}

.modal-dialog-scrollable {
  display: flex;
  max-height: calc(100% - 1rem);
}

.modal-dialog-scrollable .modal-content {
  max-height: calc(100vh - 1rem);
  overflow: hidden;
}

.modal-dialog-scrollable .modal-header,
.modal-dialog-scrollable .modal-footer {
  flex-shrink: 0;
}

.modal-dialog-scrollable .modal-body {
  overflow-y: auto;
}

.modal-dialog-centered {
  display: flex;
  align-items: center;
  min-height: calc(100% - 1rem);
}

.modal-dialog-centered::before {
  display: block;
  height: calc(100vh - 1rem);
  content: "";
}

.modal-dialog-centered.modal-dialog-scrollable {
  flex-direction: column;
  justify-content: center;
  height: 100%;
}

.modal-dialog-centered.modal-dialog-scrollable .modal-content {
  max-height: none;
}

.modal-dialog-centered.modal-dialog-scrollable::before {
  content: none;
}

.modal-content {
  position: relative;
  display: flex;
  flex-direction: column;
  width: 100%;
  pointer-events: auto;
  background-color: #fff;
  background-clip: padding-box;
  border: 1px solid rgba(0, 0, 0, 0.2);
  border-radius: 0.3rem;
  outline: 0;
}

.modal-backdrop {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 1040;
  width: 100vw;
  height: 100vh;
  background-color: #000;
}

.modal-backdrop.fade {
  opacity: 0;
}

.modal-backdrop.show {
  opacity: 0.5;
}

.modal-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  padding: 1rem 1rem;
  border-bottom: 1px solid #dee2e6;
  border-top-left-radius: 0.3rem;
  border-top-right-radius: 0.3rem;
}

.modal-header .close {
  padding: 1rem 1rem;
  margin: -1rem -1rem -1rem auto;
}

.modal-title {
  margin-bottom: 0;
  line-height: 1.5;
}

.modal-body {
  position: relative;
  flex: 1 1 auto;
  padding: 1rem;
}

.modal-footer {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  padding: 1rem;
  border-top: 1px solid #dee2e6;
  border-bottom-right-radius: 0.3rem;
  border-bottom-left-radius: 0.3rem;
}

.modal-footer > :not(:first-child) {
  margin-left: 0.25rem;
}

.modal-footer > :not(:last-child) {
  margin-right: 0.25rem;
}

.modal-scrollbar-measure {
  position: absolute;
  top: -9999px;
  width: 50px;
  height: 50px;
  overflow: scroll;
}

@media (min-width: 576px) {
  .modal-dialog {
    max-width: 500px;
    margin: 1.75rem auto;
  }

  .modal-dialog-scrollable {
    max-height: calc(100% - 3.5rem);
  }

  .modal-dialog-scrollable .modal-content {
    max-height: calc(100vh - 3.5rem);
  }

  .modal-dialog-centered {
    min-height: calc(100% - 3.5rem);
  }

  .modal-dialog-centered::before {
    height: calc(100vh - 3.5rem);
  }

  .modal-sm {
    max-width: 300px;
  }
}

@media (min-width: 992px) {
  .modal-lg,
  .modal-xl {
    max-width: 800px;
  }
}

@media (min-width: 1200px) {
  .modal-xl {
    max-width: 1140px;
  }
}

.align-baseline {
  vertical-align: baseline !important;
}

.align-top {
  vertical-align: top !important;
}

.align-middle {
  vertical-align: middle !important;
}

.align-bottom {
  vertical-align: bottom !important;
}

.align-text-bottom {
  vertical-align: text-bottom !important;
}

.align-text-top {
  vertical-align: text-top !important;
}

.bg-primary {
  background-color: #007bff !important;
}

a.bg-primary:hover,
a.bg-primary:focus,
button.bg-primary:hover,
button.bg-primary:focus {
  background-color: #0062cc !important;
}

.bg-secondary {
  background-color: #6c757d !important;
}

a.bg-secondary:hover,
a.bg-secondary:focus,
button.bg-secondary:hover,
button.bg-secondary:focus {
  background-color: #545b62 !important;
}

.bg-success {
  background-color: #28a745 !important;
}

a.bg-success:hover,
a.bg-success:focus,
button.bg-success:hover,
button.bg-success:focus {
  background-color: #1e7e34 !important;
}

.bg-info {
  background-color: #17a2b8 !important;
}

a.bg-info:hover,
a.bg-info:focus,
button.bg-info:hover,
button.bg-info:focus {
  background-color: #117a8b !important;
}

.bg-warning {
  background-color: #ffc107 !important;
}

a.bg-warning:hover,
a.bg-warning:focus,
button.bg-warning:hover,
button.bg-warning:focus {
  background-color: #d39e00 !important;
}

.bg-danger {
  background-color: #dc3545 !important;
}

a.bg-danger:hover,
a.bg-danger:focus,
button.bg-danger:hover,
button.bg-danger:focus {
  background-color: #bd2130 !important;
}

.bg-light {
  background-color: #f8f9fa !important;
}

a.bg-light:hover,
a.bg-light:focus,
button.bg-light:hover,
button.bg-light:focus {
  background-color: #dae0e5 !important;
}

.bg-dark {
  background-color: #343a40 !important;
}

a.bg-dark:hover,
a.bg-dark:focus,
button.bg-dark:hover,
button.bg-dark:focus {
  background-color: #1d2124 !important;
}

.bg-white {
  background-color: #fff !important;
}

.bg-transparent {
  background-color: transparent !important;
}

.border {
  border: 1px solid #dee2e6 !important;
}

.border-top {
  border-top: 1px solid #dee2e6 !important;
}

.border-right {
  border-right: 1px solid #dee2e6 !important;
}

.border-bottom {
  border-bottom: 1px solid #dee2e6 !important;
}

.border-left {
  border-left: 1px solid #dee2e6 !important;
}

.border-0 {
  border: 0 !important;
}

.border-top-0 {
  border-top: 0 !important;
}

.border-right-0 {
  border-right: 0 !important;
}

.border-bottom-0 {
  border-bottom: 0 !important;
}

.border-left-0 {
  border-left: 0 !important;
}

.border-primary {
  border-color: #007bff !important;
}

.border-secondary {
  border-color: #6c757d !important;
}

.border-success {
  border-color: #28a745 !important;
}

.border-info {
  border-color: #17a2b8 !important;
}

.border-warning {
  border-color: #ffc107 !important;
}

.border-danger {
  border-color: #dc3545 !important;
}

.border-light {
  border-color: #f8f9fa !important;
}

.border-dark {
  border-color: #343a40 !important;
}

.border-white {
  border-color: #fff !important;
}

.rounded-sm {
  border-radius: 0.2rem !important;
}

.rounded {
  border-radius: 0.25rem !important;
}

.rounded-top {
  border-top-left-radius: 0.25rem !important;
  border-top-right-radius: 0.25rem !important;
}

.rounded-right {
  border-top-right-radius: 0.25rem !important;
  border-bottom-right-radius: 0.25rem !important;
}

.rounded-bottom {
  border-bottom-right-radius: 0.25rem !important;
  border-bottom-left-radius: 0.25rem !important;
}

.rounded-left {
  border-top-left-radius: 0.25rem !important;
  border-bottom-left-radius: 0.25rem !important;
}

.rounded-lg {
  border-radius: 0.3rem !important;
}

.rounded-circle {
  border-radius: 50% !important;
}

.rounded-pill {
  border-radius: 50rem !important;
}

.rounded-0 {
  border-radius: 0 !important;
}

.clearfix::after {
  display: block;
  clear: both;
  content: "";
}

.d-none {
  display: none !important;
}

.d-inline {
  display: inline !important;
}

.d-inline-block {
  display: inline-block !important;
}

.d-block {
  display: block !important;
}

.d-table {
  display: table !important;
}

.d-table-row {
  display: table-row !important;
}

.d-table-cell {
  display: table-cell !important;
}

.d-flex {
  display: flex !important;
}

.d-inline-flex {
  display: inline-flex !important;
}

@media (min-width: 576px) {
  .d-sm-none {
    display: none !important;
  }

  .d-sm-inline {
    display: inline !important;
  }

  .d-sm-inline-block {
    display: inline-block !important;
  }

  .d-sm-block {
    display: block !important;
  }

  .d-sm-table {
    display: table !important;
  }

  .d-sm-table-row {
    display: table-row !important;
  }

  .d-sm-table-cell {
    display: table-cell !important;
  }

  .d-sm-flex {
    display: flex !important;
  }

  .d-sm-inline-flex {
    display: inline-flex !important;
  }
}

@media (min-width: 768px) {
  .d-md-none {
    display: none !important;
  }

  .d-md-inline {
    display: inline !important;
  }

  .d-md-inline-block {
    display: inline-block !important;
  }

  .d-md-block {
    display: block !important;
  }

  .d-md-table {
    display: table !important;
  }

  .d-md-table-row {
    display: table-row !important;
  }

  .d-md-table-cell {
    display: table-cell !important;
  }

  .d-md-flex {
    display: flex !important;
  }

  .d-md-inline-flex {
    display: inline-flex !important;
  }
}

@media (min-width: 992px) {
  .d-lg-none {
    display: none !important;
  }

  .d-lg-inline {
    display: inline !important;
  }

  .d-lg-inline-block {
    display: inline-block !important;
  }

  .d-lg-block {
    display: block !important;
  }

  .d-lg-table {
    display: table !important;
  }

  .d-lg-table-row {
    display: table-row !important;
  }

  .d-lg-table-cell {
    display: table-cell !important;
  }

  .d-lg-flex {
    display: flex !important;
  }

  .d-lg-inline-flex {
    display: inline-flex !important;
  }
}

@media (min-width: 1200px) {
  .d-xl-none {
    display: none !important;
  }

  .d-xl-inline {
    display: inline !important;
  }

  .d-xl-inline-block {
    display: inline-block !important;
  }

  .d-xl-block {
    display: block !important;
  }

  .d-xl-table {
    display: table !important;
  }

  .d-xl-table-row {
    display: table-row !important;
  }

  .d-xl-table-cell {
    display: table-cell !important;
  }

  .d-xl-flex {
    display: flex !important;
  }

  .d-xl-inline-flex {
    display: inline-flex !important;
  }
}

@media print {
  .d-print-none {
    display: none !important;
  }

  .d-print-inline {
    display: inline !important;
  }

  .d-print-inline-block {
    display: inline-block !important;
  }

  .d-print-block {
    display: block !important;
  }

  .d-print-table {
    display: table !important;
  }

  .d-print-table-row {
    display: table-row !important;
  }

  .d-print-table-cell {
    display: table-cell !important;
  }

  .d-print-flex {
    display: flex !important;
  }

  .d-print-inline-flex {
    display: inline-flex !important;
  }
}

.embed-responsive {
  position: relative;
  display: block;
  width: 100%;
  padding: 0;
  overflow: hidden;
}

.embed-responsive::before {
  display: block;
  content: "";
}

.embed-responsive .embed-responsive-item,
.embed-responsive iframe,
.embed-responsive embed,
.embed-responsive object,
.embed-responsive video {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

.embed-responsive-21by9::before {
  padding-top: 42.8571428571%;
}

.embed-responsive-16by9::before {
  padding-top: 56.25%;
}

.embed-responsive-4by3::before {
  padding-top: 75%;
}

.embed-responsive-1by1::before {
  padding-top: 100%;
}

.flex-row {
  flex-direction: row !important;
}

.flex-column {
  flex-direction: column !important;
}

.flex-row-reverse {
  flex-direction: row-reverse !important;
}

.flex-column-reverse {
  flex-direction: column-reverse !important;
}

.flex-wrap {
  flex-wrap: wrap !important;
}

.flex-nowrap {
  flex-wrap: nowrap !important;
}

.flex-wrap-reverse {
  flex-wrap: wrap-reverse !important;
}

.flex-fill {
  flex: 1 1 auto !important;
}

.flex-grow-0 {
  flex-grow: 0 !important;
}

.flex-grow-1 {
  flex-grow: 1 !important;
}

.flex-shrink-0 {
  flex-shrink: 0 !important;
}

.flex-shrink-1 {
  flex-shrink: 1 !important;
}

.justify-content-start {
  justify-content: flex-start !important;
}

.justify-content-end {
  justify-content: flex-end !important;
}

.justify-content-center {
  justify-content: center !important;
}

.justify-content-between {
  justify-content: space-between !important;
}

.justify-content-around {
  justify-content: space-around !important;
}

.align-items-start {
  align-items: flex-start !important;
}

.align-items-end {
  align-items: flex-end !important;
}

.align-items-center {
  align-items: center !important;
}

.align-items-baseline {
  align-items: baseline !important;
}

.align-items-stretch {
  align-items: stretch !important;
}

.align-content-start {
  align-content: flex-start !important;
}

.align-content-end {
  align-content: flex-end !important;
}

.align-content-center {
  align-content: center !important;
}

.align-content-between {
  align-content: space-between !important;
}

.align-content-around {
  align-content: space-around !important;
}

.align-content-stretch {
  align-content: stretch !important;
}

.align-self-auto {
  align-self: auto !important;
}

.align-self-start {
  align-self: flex-start !important;
}

.align-self-end {
  align-self: flex-end !important;
}

.align-self-center {
  align-self: center !important;
}

.align-self-baseline {
  align-self: baseline !important;
}

.align-self-stretch {
  align-self: stretch !important;
}

@media (min-width: 576px) {
  .flex-sm-row {
    flex-direction: row !important;
  }

  .flex-sm-column {
    flex-direction: column !important;
  }

  .flex-sm-row-reverse {
    flex-direction: row-reverse !important;
  }

  .flex-sm-column-reverse {
    flex-direction: column-reverse !important;
  }

  .flex-sm-wrap {
    flex-wrap: wrap !important;
  }

  .flex-sm-nowrap {
    flex-wrap: nowrap !important;
  }

  .flex-sm-wrap-reverse {
    flex-wrap: wrap-reverse !important;
  }

  .flex-sm-fill {
    flex: 1 1 auto !important;
  }

  .flex-sm-grow-0 {
    flex-grow: 0 !important;
  }

  .flex-sm-grow-1 {
    flex-grow: 1 !important;
  }

  .flex-sm-shrink-0 {
    flex-shrink: 0 !important;
  }

  .flex-sm-shrink-1 {
    flex-shrink: 1 !important;
  }

  .justify-content-sm-start {
    justify-content: flex-start !important;
  }

  .justify-content-sm-end {
    justify-content: flex-end !important;
  }

  .justify-content-sm-center {
    justify-content: center !important;
  }

  .justify-content-sm-between {
    justify-content: space-between !important;
  }

  .justify-content-sm-around {
    justify-content: space-around !important;
  }

  .align-items-sm-start {
    align-items: flex-start !important;
  }

  .align-items-sm-end {
    align-items: flex-end !important;
  }

  .align-items-sm-center {
    align-items: center !important;
  }

  .align-items-sm-baseline {
    align-items: baseline !important;
  }

  .align-items-sm-stretch {
    align-items: stretch !important;
  }

  .align-content-sm-start {
    align-content: flex-start !important;
  }

  .align-content-sm-end {
    align-content: flex-end !important;
  }

  .align-content-sm-center {
    align-content: center !important;
  }

  .align-content-sm-between {
    align-content: space-between !important;
  }

  .align-content-sm-around {
    align-content: space-around !important;
  }

  .align-content-sm-stretch {
    align-content: stretch !important;
  }

  .align-self-sm-auto {
    align-self: auto !important;
  }

  .align-self-sm-start {
    align-self: flex-start !important;
  }

  .align-self-sm-end {
    align-self: flex-end !important;
  }

  .align-self-sm-center {
    align-self: center !important;
  }

  .align-self-sm-baseline {
    align-self: baseline !important;
  }

  .align-self-sm-stretch {
    align-self: stretch !important;
  }
}

@media (min-width: 768px) {
  .flex-md-row {
    flex-direction: row !important;
  }

  .flex-md-column {
    flex-direction: column !important;
  }

  .flex-md-row-reverse {
    flex-direction: row-reverse !important;
  }

  .flex-md-column-reverse {
    flex-direction: column-reverse !important;
  }

  .flex-md-wrap {
    flex-wrap: wrap !important;
  }

  .flex-md-nowrap {
    flex-wrap: nowrap !important;
  }

  .flex-md-wrap-reverse {
    flex-wrap: wrap-reverse !important;
  }

  .flex-md-fill {
    flex: 1 1 auto !important;
  }

  .flex-md-grow-0 {
    flex-grow: 0 !important;
  }

  .flex-md-grow-1 {
    flex-grow: 1 !important;
  }

  .flex-md-shrink-0 {
    flex-shrink: 0 !important;
  }

  .flex-md-shrink-1 {
    flex-shrink: 1 !important;
  }

  .justify-content-md-start {
    justify-content: flex-start !important;
  }

  .justify-content-md-end {
    justify-content: flex-end !important;
  }

  .justify-content-md-center {
    justify-content: center !important;
  }

  .justify-content-md-between {
    justify-content: space-between !important;
  }

  .justify-content-md-around {
    justify-content: space-around !important;
  }

  .align-items-md-start {
    align-items: flex-start !important;
  }

  .align-items-md-end {
    align-items: flex-end !important;
  }

  .align-items-md-center {
    align-items: center !important;
  }

  .align-items-md-baseline {
    align-items: baseline !important;
  }

  .align-items-md-stretch {
    align-items: stretch !important;
  }

  .align-content-md-start {
    align-content: flex-start !important;
  }

  .align-content-md-end {
    align-content: flex-end !important;
  }

  .align-content-md-center {
    align-content: center !important;
  }

  .align-content-md-between {
    align-content: space-between !important;
  }

  .align-content-md-around {
    align-content: space-around !important;
  }

  .align-content-md-stretch {
    align-content: stretch !important;
  }

  .align-self-md-auto {
    align-self: auto !important;
  }

  .align-self-md-start {
    align-self: flex-start !important;
  }

  .align-self-md-end {
    align-self: flex-end !important;
  }

  .align-self-md-center {
    align-self: center !important;
  }

  .align-self-md-baseline {
    align-self: baseline !important;
  }

  .align-self-md-stretch {
    align-self: stretch !important;
  }
}

@media (min-width: 992px) {
  .flex-lg-row {
    flex-direction: row !important;
  }

  .flex-lg-column {
    flex-direction: column !important;
  }

  .flex-lg-row-reverse {
    flex-direction: row-reverse !important;
  }

  .flex-lg-column-reverse {
    flex-direction: column-reverse !important;
  }

  .flex-lg-wrap {
    flex-wrap: wrap !important;
  }

  .flex-lg-nowrap {
    flex-wrap: nowrap !important;
  }

  .flex-lg-wrap-reverse {
    flex-wrap: wrap-reverse !important;
  }

  .flex-lg-fill {
    flex: 1 1 auto !important;
  }

  .flex-lg-grow-0 {
    flex-grow: 0 !important;
  }

  .flex-lg-grow-1 {
    flex-grow: 1 !important;
  }

  .flex-lg-shrink-0 {
    flex-shrink: 0 !important;
  }

  .flex-lg-shrink-1 {
    flex-shrink: 1 !important;
  }

  .justify-content-lg-start {
    justify-content: flex-start !important;
  }

  .justify-content-lg-end {
    justify-content: flex-end !important;
  }

  .justify-content-lg-center {
    justify-content: center !important;
  }

  .justify-content-lg-between {
    justify-content: space-between !important;
  }

  .justify-content-lg-around {
    justify-content: space-around !important;
  }

  .align-items-lg-start {
    align-items: flex-start !important;
  }

  .align-items-lg-end {
    align-items: flex-end !important;
  }

  .align-items-lg-center {
    align-items: center !important;
  }

  .align-items-lg-baseline {
    align-items: baseline !important;
  }

  .align-items-lg-stretch {
    align-items: stretch !important;
  }

  .align-content-lg-start {
    align-content: flex-start !important;
  }

  .align-content-lg-end {
    align-content: flex-end !important;
  }

  .align-content-lg-center {
    align-content: center !important;
  }

  .align-content-lg-between {
    align-content: space-between !important;
  }

  .align-content-lg-around {
    align-content: space-around !important;
  }

  .align-content-lg-stretch {
    align-content: stretch !important;
  }

  .align-self-lg-auto {
    align-self: auto !important;
  }

  .align-self-lg-start {
    align-self: flex-start !important;
  }

  .align-self-lg-end {
    align-self: flex-end !important;
  }

  .align-self-lg-center {
    align-self: center !important;
  }

  .align-self-lg-baseline {
    align-self: baseline !important;
  }

  .align-self-lg-stretch {
    align-self: stretch !important;
  }
}

@media (min-width: 1200px) {
  .flex-xl-row {
    flex-direction: row !important;
  }

  .flex-xl-column {
    flex-direction: column !important;
  }

  .flex-xl-row-reverse {
    flex-direction: row-reverse !important;
  }

  .flex-xl-column-reverse {
    flex-direction: column-reverse !important;
  }

  .flex-xl-wrap {
    flex-wrap: wrap !important;
  }

  .flex-xl-nowrap {
    flex-wrap: nowrap !important;
  }

  .flex-xl-wrap-reverse {
    flex-wrap: wrap-reverse !important;
  }

  .flex-xl-fill {
    flex: 1 1 auto !important;
  }

  .flex-xl-grow-0 {
    flex-grow: 0 !important;
  }

  .flex-xl-grow-1 {
    flex-grow: 1 !important;
  }

  .flex-xl-shrink-0 {
    flex-shrink: 0 !important;
  }

  .flex-xl-shrink-1 {
    flex-shrink: 1 !important;
  }

  .justify-content-xl-start {
    justify-content: flex-start !important;
  }

  .justify-content-xl-end {
    justify-content: flex-end !important;
  }

  .justify-content-xl-center {
    justify-content: center !important;
  }

  .justify-content-xl-between {
    justify-content: space-between !important;
  }

  .justify-content-xl-around {
    justify-content: space-around !important;
  }

  .align-items-xl-start {
    align-items: flex-start !important;
  }

  .align-items-xl-end {
    align-items: flex-end !important;
  }

  .align-items-xl-center {
    align-items: center !important;
  }

  .align-items-xl-baseline {
    align-items: baseline !important;
  }

  .align-items-xl-stretch {
    align-items: stretch !important;
  }

  .align-content-xl-start {
    align-content: flex-start !important;
  }

  .align-content-xl-end {
    align-content: flex-end !important;
  }

  .align-content-xl-center {
    align-content: center !important;
  }

  .align-content-xl-between {
    align-content: space-between !important;
  }

  .align-content-xl-around {
    align-content: space-around !important;
  }

  .align-content-xl-stretch {
    align-content: stretch !important;
  }

  .align-self-xl-auto {
    align-self: auto !important;
  }

  .align-self-xl-start {
    align-self: flex-start !important;
  }

  .align-self-xl-end {
    align-self: flex-end !important;
  }

  .align-self-xl-center {
    align-self: center !important;
  }

  .align-self-xl-baseline {
    align-self: baseline !important;
  }

  .align-self-xl-stretch {
    align-self: stretch !important;
  }
}

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

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

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

@media (min-width: 576px) {
  .float-sm-left {
    float: left !important;
  }

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

  .float-sm-none {
    float: none !important;
  }
}

@media (min-width: 768px) {
  .float-md-left {
    float: left !important;
  }

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

  .float-md-none {
    float: none !important;
  }
}

@media (min-width: 992px) {
  .float-lg-left {
    float: left !important;
  }

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

  .float-lg-none {
    float: none !important;
  }
}

@media (min-width: 1200px) {
  .float-xl-left {
    float: left !important;
  }

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

  .float-xl-none {
    float: none !important;
  }
}

.overflow-auto {
  overflow: auto !important;
}

.overflow-hidden {
  overflow: hidden !important;
}

.position-static {
  position: static !important;
}

.position-relative {
  position: relative !important;
}

.position-absolute {
  position: absolute !important;
}

.position-fixed {
  position: fixed !important;
}

.position-sticky {
  position: -webkit-sticky !important;
  position: sticky !important;
}

.fixed-top {
  position: fixed;
  top: 0;
  right: 0;
  left: 0;
  z-index: 1030;
}

.fixed-bottom {
  position: fixed;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1030;
}

@supports ((position: -webkit-sticky) or (position: sticky)) {
  .sticky-top {
    position: -webkit-sticky;
    position: sticky;
    top: 0;
    z-index: 1020;
  }
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.sr-only-focusable:active,
.sr-only-focusable:focus {
  position: static;
  width: auto;
  height: auto;
  overflow: visible;
  clip: auto;
  white-space: normal;
}

.shadow-sm {
  box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;
}

.shadow {
  box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;
}

.shadow-lg {
  box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important;
}

.shadow-none {
  box-shadow: none !important;
}

.w-25 {
  width: 25% !important;
}

.w-50 {
  width: 50% !important;
}

.w-75 {
  width: 75% !important;
}

.w-100 {
  width: 100% !important;
}

.w-auto {
  width: auto !important;
}

.h-25 {
  height: 25% !important;
}

.h-50 {
  height: 50% !important;
}

.h-75 {
  height: 75% !important;
}

.h-100 {
  height: 100% !important;
}

.h-auto {
  height: auto !important;
}

.mw-100 {
  max-width: 100% !important;
}

.mh-100 {
  max-height: 100% !important;
}

.min-vw-100 {
  min-width: 100vw !important;
}

.min-vh-100 {
  min-height: 100vh !important;
}

.vw-100 {
  width: 100vw !important;
}

.vh-100 {
  height: 100vh !important;
}

.stretched-link::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1;
  pointer-events: auto;
  content: "";
  background-color: rgba(0, 0, 0, 0);
}

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

.mt-0,
.my-0 {
  margin-top: 0 !important;
}

.mr-0,
.mx-0 {
  margin-right: 0 !important;
}

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

.ml-0,
.mx-0 {
  margin-left: 0 !important;
}

.m-1 {
  margin: 0.25rem !important;
}

.mt-1,
.my-1 {
  margin-top: 0.25rem !important;
}

.mr-1,
.mx-1 {
  margin-right: 0.25rem !important;
}

.mb-1,
.my-1 {
  margin-bottom: 0.25rem !important;
}

.ml-1,
.mx-1 {
  margin-left: 0.25rem !important;
}

.m-2 {
  margin: 0.5rem !important;
}

.mt-2,
.my-2 {
  margin-top: 0.5rem !important;
}

.mr-2,
.mx-2 {
  margin-right: 0.5rem !important;
}

.mb-2,
.my-2 {
  margin-bottom: 0.5rem !important;
}

.ml-2,
.mx-2 {
  margin-left: 0.5rem !important;
}

.m-3 {
  margin: 1rem !important;
}

.mt-3,
.my-3 {
  margin-top: 1rem !important;
}

.mr-3,
.mx-3 {
  margin-right: 1rem !important;
}

.mb-3,
.my-3 {
  margin-bottom: 1rem !important;
}

.ml-3,
.mx-3 {
  margin-left: 1rem !important;
}

.m-4 {
  margin: 1.5rem !important;
}

.mt-4,
.my-4 {
  margin-top: 1.5rem !important;
}

.mr-4,
.mx-4 {
  margin-right: 1.5rem !important;
}

.mb-4,
.my-4 {
  margin-bottom: 1.5rem !important;
}

.ml-4,
.mx-4 {
  margin-left: 1.5rem !important;
}

.m-5 {
  margin: 3rem !important;
}

.mt-5,
.my-5 {
  margin-top: 3rem !important;
}

.mr-5,
.mx-5 {
  margin-right: 3rem !important;
}

.mb-5,
.my-5 {
  margin-bottom: 3rem !important;
}

.ml-5,
.mx-5 {
  margin-left: 3rem !important;
}

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

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

.pr-0,
.px-0 {
  padding-right: 0 !important;
}

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

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

.p-1 {
  padding: 0.25rem !important;
}

.pt-1,
.py-1 {
  padding-top: 0.25rem !important;
}

.pr-1,
.px-1 {
  padding-right: 0.25rem !important;
}

.pb-1,
.py-1 {
  padding-bottom: 0.25rem !important;
}

.pl-1,
.px-1 {
  padding-left: 0.25rem !important;
}

.p-2 {
  padding: 0.5rem !important;
}

.pt-2,
.py-2 {
  padding-top: 0.5rem !important;
}

.pr-2,
.px-2 {
  padding-right: 0.5rem !important;
}

.pb-2,
.py-2 {
  padding-bottom: 0.5rem !important;
}

.pl-2,
.px-2 {
  padding-left: 0.5rem !important;
}

.p-3 {
  padding: 1rem !important;
}

.pt-3,
.py-3 {
  padding-top: 1rem !important;
}

.pr-3,
.px-3 {
  padding-right: 1rem !important;
}

.pb-3,
.py-3 {
  padding-bottom: 1rem !important;
}

.pl-3,
.px-3 {
  padding-left: 1rem !important;
}

.p-4 {
  padding: 1.5rem !important;
}

.pt-4,
.py-4 {
  padding-top: 1.5rem !important;
}

.pr-4,
.px-4 {
  padding-right: 1.5rem !important;
}

.pb-4,
.py-4 {
  padding-bottom: 1.5rem !important;
}

.pl-4,
.px-4 {
  padding-left: 1.5rem !important;
}

.p-5 {
  padding: 3rem !important;
}

.pt-5,
.py-5 {
  padding-top: 3rem !important;
}

.pr-5,
.px-5 {
  padding-right: 3rem !important;
}

.pb-5,
.py-5 {
  padding-bottom: 3rem !important;
}

.pl-5,
.px-5 {
  padding-left: 3rem !important;
}

.m-n1 {
  margin: -0.25rem !important;
}

.mt-n1,
.my-n1 {
  margin-top: -0.25rem !important;
}

.mr-n1,
.mx-n1 {
  margin-right: -0.25rem !important;
}

.mb-n1,
.my-n1 {
  margin-bottom: -0.25rem !important;
}

.ml-n1,
.mx-n1 {
  margin-left: -0.25rem !important;
}

.m-n2 {
  margin: -0.5rem !important;
}

.mt-n2,
.my-n2 {
  margin-top: -0.5rem !important;
}

.mr-n2,
.mx-n2 {
  margin-right: -0.5rem !important;
}

.mb-n2,
.my-n2 {
  margin-bottom: -0.5rem !important;
}

.ml-n2,
.mx-n2 {
  margin-left: -0.5rem !important;
}

.m-n3 {
  margin: -1rem !important;
}

.mt-n3,
.my-n3 {
  margin-top: -1rem !important;
}

.mr-n3,
.mx-n3 {
  margin-right: -1rem !important;
}

.mb-n3,
.my-n3 {
  margin-bottom: -1rem !important;
}

.ml-n3,
.mx-n3 {
  margin-left: -1rem !important;
}

.m-n4 {
  margin: -1.5rem !important;
}

.mt-n4,
.my-n4 {
  margin-top: -1.5rem !important;
}

.mr-n4,
.mx-n4 {
  margin-right: -1.5rem !important;
}

.mb-n4,
.my-n4 {
  margin-bottom: -1.5rem !important;
}

.ml-n4,
.mx-n4 {
  margin-left: -1.5rem !important;
}

.m-n5 {
  margin: -3rem !important;
}

.mt-n5,
.my-n5 {
  margin-top: -3rem !important;
}

.mr-n5,
.mx-n5 {
  margin-right: -3rem !important;
}

.mb-n5,
.my-n5 {
  margin-bottom: -3rem !important;
}

.ml-n5,
.mx-n5 {
  margin-left: -3rem !important;
}

.m-auto {
  margin: auto !important;
}

.mt-auto,
.my-auto {
  margin-top: auto !important;
}

.mr-auto,
.mx-auto {
  margin-right: auto !important;
}

.mb-auto,
.my-auto {
  margin-bottom: auto !important;
}

.ml-auto,
.mx-auto {
  margin-left: auto !important;
}

@media (min-width: 576px) {
  .m-sm-0 {
    margin: 0 !important;
  }

  .mt-sm-0,
  .my-sm-0 {
    margin-top: 0 !important;
  }

  .mr-sm-0,
  .mx-sm-0 {
    margin-right: 0 !important;
  }

  .mb-sm-0,
  .my-sm-0 {
    margin-bottom: 0 !important;
  }

  .ml-sm-0,
  .mx-sm-0 {
    margin-left: 0 !important;
  }

  .m-sm-1 {
    margin: 0.25rem !important;
  }

  .mt-sm-1,
  .my-sm-1 {
    margin-top: 0.25rem !important;
  }

  .mr-sm-1,
  .mx-sm-1 {
    margin-right: 0.25rem !important;
  }

  .mb-sm-1,
  .my-sm-1 {
    margin-bottom: 0.25rem !important;
  }

  .ml-sm-1,
  .mx-sm-1 {
    margin-left: 0.25rem !important;
  }

  .m-sm-2 {
    margin: 0.5rem !important;
  }

  .mt-sm-2,
  .my-sm-2 {
    margin-top: 0.5rem !important;
  }

  .mr-sm-2,
  .mx-sm-2 {
    margin-right: 0.5rem !important;
  }

  .mb-sm-2,
  .my-sm-2 {
    margin-bottom: 0.5rem !important;
  }

  .ml-sm-2,
  .mx-sm-2 {
    margin-left: 0.5rem !important;
  }

  .m-sm-3 {
    margin: 1rem !important;
  }

  .mt-sm-3,
  .my-sm-3 {
    margin-top: 1rem !important;
  }

  .mr-sm-3,
  .mx-sm-3 {
    margin-right: 1rem !important;
  }

  .mb-sm-3,
  .my-sm-3 {
    margin-bottom: 1rem !important;
  }

  .ml-sm-3,
  .mx-sm-3 {
    margin-left: 1rem !important;
  }

  .m-sm-4 {
    margin: 1.5rem !important;
  }

  .mt-sm-4,
  .my-sm-4 {
    margin-top: 1.5rem !important;
  }

  .mr-sm-4,
  .mx-sm-4 {
    margin-right: 1.5rem !important;
  }

  .mb-sm-4,
  .my-sm-4 {
    margin-bottom: 1.5rem !important;
  }

  .ml-sm-4,
  .mx-sm-4 {
    margin-left: 1.5rem !important;
  }

  .m-sm-5 {
    margin: 3rem !important;
  }

  .mt-sm-5,
  .my-sm-5 {
    margin-top: 3rem !important;
  }

  .mr-sm-5,
  .mx-sm-5 {
    margin-right: 3rem !important;
  }

  .mb-sm-5,
  .my-sm-5 {
    margin-bottom: 3rem !important;
  }

  .ml-sm-5,
  .mx-sm-5 {
    margin-left: 3rem !important;
  }

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

  .pt-sm-0,
  .py-sm-0 {
    padding-top: 0 !important;
  }

  .pr-sm-0,
  .px-sm-0 {
    padding-right: 0 !important;
  }

  .pb-sm-0,
  .py-sm-0 {
    padding-bottom: 0 !important;
  }

  .pl-sm-0,
  .px-sm-0 {
    padding-left: 0 !important;
  }

  .p-sm-1 {
    padding: 0.25rem !important;
  }

  .pt-sm-1,
  .py-sm-1 {
    padding-top: 0.25rem !important;
  }

  .pr-sm-1,
  .px-sm-1 {
    padding-right: 0.25rem !important;
  }

  .pb-sm-1,
  .py-sm-1 {
    padding-bottom: 0.25rem !important;
  }

  .pl-sm-1,
  .px-sm-1 {
    padding-left: 0.25rem !important;
  }

  .p-sm-2 {
    padding: 0.5rem !important;
  }

  .pt-sm-2,
  .py-sm-2 {
    padding-top: 0.5rem !important;
  }

  .pr-sm-2,
  .px-sm-2 {
    padding-right: 0.5rem !important;
  }

  .pb-sm-2,
  .py-sm-2 {
    padding-bottom: 0.5rem !important;
  }

  .pl-sm-2,
  .px-sm-2 {
    padding-left: 0.5rem !important;
  }

  .p-sm-3 {
    padding: 1rem !important;
  }

  .pt-sm-3,
  .py-sm-3 {
    padding-top: 1rem !important;
  }

  .pr-sm-3,
  .px-sm-3 {
    padding-right: 1rem !important;
  }

  .pb-sm-3,
  .py-sm-3 {
    padding-bottom: 1rem !important;
  }

  .pl-sm-3,
  .px-sm-3 {
    padding-left: 1rem !important;
  }

  .p-sm-4 {
    padding: 1.5rem !important;
  }

  .pt-sm-4,
  .py-sm-4 {
    padding-top: 1.5rem !important;
  }

  .pr-sm-4,
  .px-sm-4 {
    padding-right: 1.5rem !important;
  }

  .pb-sm-4,
  .py-sm-4 {
    padding-bottom: 1.5rem !important;
  }

  .pl-sm-4,
  .px-sm-4 {
    padding-left: 1.5rem !important;
  }

  .p-sm-5 {
    padding: 3rem !important;
  }

  .pt-sm-5,
  .py-sm-5 {
    padding-top: 3rem !important;
  }

  .pr-sm-5,
  .px-sm-5 {
    padding-right: 3rem !important;
  }

  .pb-sm-5,
  .py-sm-5 {
    padding-bottom: 3rem !important;
  }

  .pl-sm-5,
  .px-sm-5 {
    padding-left: 3rem !important;
  }

  .m-sm-n1 {
    margin: -0.25rem !important;
  }

  .mt-sm-n1,
  .my-sm-n1 {
    margin-top: -0.25rem !important;
  }

  .mr-sm-n1,
  .mx-sm-n1 {
    margin-right: -0.25rem !important;
  }

  .mb-sm-n1,
  .my-sm-n1 {
    margin-bottom: -0.25rem !important;
  }

  .ml-sm-n1,
  .mx-sm-n1 {
    margin-left: -0.25rem !important;
  }

  .m-sm-n2 {
    margin: -0.5rem !important;
  }

  .mt-sm-n2,
  .my-sm-n2 {
    margin-top: -0.5rem !important;
  }

  .mr-sm-n2,
  .mx-sm-n2 {
    margin-right: -0.5rem !important;
  }

  .mb-sm-n2,
  .my-sm-n2 {
    margin-bottom: -0.5rem !important;
  }

  .ml-sm-n2,
  .mx-sm-n2 {
    margin-left: -0.5rem !important;
  }

  .m-sm-n3 {
    margin: -1rem !important;
  }

  .mt-sm-n3,
  .my-sm-n3 {
    margin-top: -1rem !important;
  }

  .mr-sm-n3,
  .mx-sm-n3 {
    margin-right: -1rem !important;
  }

  .mb-sm-n3,
  .my-sm-n3 {
    margin-bottom: -1rem !important;
  }

  .ml-sm-n3,
  .mx-sm-n3 {
    margin-left: -1rem !important;
  }

  .m-sm-n4 {
    margin: -1.5rem !important;
  }

  .mt-sm-n4,
  .my-sm-n4 {
    margin-top: -1.5rem !important;
  }

  .mr-sm-n4,
  .mx-sm-n4 {
    margin-right: -1.5rem !important;
  }

  .mb-sm-n4,
  .my-sm-n4 {
    margin-bottom: -1.5rem !important;
  }

  .ml-sm-n4,
  .mx-sm-n4 {
    margin-left: -1.5rem !important;
  }

  .m-sm-n5 {
    margin: -3rem !important;
  }

  .mt-sm-n5,
  .my-sm-n5 {
    margin-top: -3rem !important;
  }

  .mr-sm-n5,
  .mx-sm-n5 {
    margin-right: -3rem !important;
  }

  .mb-sm-n5,
  .my-sm-n5 {
    margin-bottom: -3rem !important;
  }

  .ml-sm-n5,
  .mx-sm-n5 {
    margin-left: -3rem !important;
  }

  .m-sm-auto {
    margin: auto !important;
  }

  .mt-sm-auto,
  .my-sm-auto {
    margin-top: auto !important;
  }

  .mr-sm-auto,
  .mx-sm-auto {
    margin-right: auto !important;
  }

  .mb-sm-auto,
  .my-sm-auto {
    margin-bottom: auto !important;
  }

  .ml-sm-auto,
  .mx-sm-auto {
    margin-left: auto !important;
  }
}

@media (min-width: 768px) {
  .m-md-0 {
    margin: 0 !important;
  }

  .mt-md-0,
  .my-md-0 {
    margin-top: 0 !important;
  }

  .mr-md-0,
  .mx-md-0 {
    margin-right: 0 !important;
  }

  .mb-md-0,
  .my-md-0 {
    margin-bottom: 0 !important;
  }

  .ml-md-0,
  .mx-md-0 {
    margin-left: 0 !important;
  }

  .m-md-1 {
    margin: 0.25rem !important;
  }

  .mt-md-1,
  .my-md-1 {
    margin-top: 0.25rem !important;
  }

  .mr-md-1,
  .mx-md-1 {
    margin-right: 0.25rem !important;
  }

  .mb-md-1,
  .my-md-1 {
    margin-bottom: 0.25rem !important;
  }

  .ml-md-1,
  .mx-md-1 {
    margin-left: 0.25rem !important;
  }

  .m-md-2 {
    margin: 0.5rem !important;
  }

  .mt-md-2,
  .my-md-2 {
    margin-top: 0.5rem !important;
  }

  .mr-md-2,
  .mx-md-2 {
    margin-right: 0.5rem !important;
  }

  .mb-md-2,
  .my-md-2 {
    margin-bottom: 0.5rem !important;
  }

  .ml-md-2,
  .mx-md-2 {
    margin-left: 0.5rem !important;
  }

  .m-md-3 {
    margin: 1rem !important;
  }

  .mt-md-3,
  .my-md-3 {
    margin-top: 1rem !important;
  }

  .mr-md-3,
  .mx-md-3 {
    margin-right: 1rem !important;
  }

  .mb-md-3,
  .my-md-3 {
    margin-bottom: 1rem !important;
  }

  .ml-md-3,
  .mx-md-3 {
    margin-left: 1rem !important;
  }

  .m-md-4 {
    margin: 1.5rem !important;
  }

  .mt-md-4,
  .my-md-4 {
    margin-top: 1.5rem !important;
  }

  .mr-md-4,
  .mx-md-4 {
    margin-right: 1.5rem !important;
  }

  .mb-md-4,
  .my-md-4 {
    margin-bottom: 1.5rem !important;
  }

  .ml-md-4,
  .mx-md-4 {
    margin-left: 1.5rem !important;
  }

  .m-md-5 {
    margin: 3rem !important;
  }

  .mt-md-5,
  .my-md-5 {
    margin-top: 3rem !important;
  }

  .mr-md-5,
  .mx-md-5 {
    margin-right: 3rem !important;
  }

  .mb-md-5,
  .my-md-5 {
    margin-bottom: 3rem !important;
  }

  .ml-md-5,
  .mx-md-5 {
    margin-left: 3rem !important;
  }

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

  .pt-md-0,
  .py-md-0 {
    padding-top: 0 !important;
  }

  .pr-md-0,
  .px-md-0 {
    padding-right: 0 !important;
  }

  .pb-md-0,
  .py-md-0 {
    padding-bottom: 0 !important;
  }

  .pl-md-0,
  .px-md-0 {
    padding-left: 0 !important;
  }

  .p-md-1 {
    padding: 0.25rem !important;
  }

  .pt-md-1,
  .py-md-1 {
    padding-top: 0.25rem !important;
  }

  .pr-md-1,
  .px-md-1 {
    padding-right: 0.25rem !important;
  }

  .pb-md-1,
  .py-md-1 {
    padding-bottom: 0.25rem !important;
  }

  .pl-md-1,
  .px-md-1 {
    padding-left: 0.25rem !important;
  }

  .p-md-2 {
    padding: 0.5rem !important;
  }

  .pt-md-2,
  .py-md-2 {
    padding-top: 0.5rem !important;
  }

  .pr-md-2,
  .px-md-2 {
    padding-right: 0.5rem !important;
  }

  .pb-md-2,
  .py-md-2 {
    padding-bottom: 0.5rem !important;
  }

  .pl-md-2,
  .px-md-2 {
    padding-left: 0.5rem !important;
  }

  .p-md-3 {
    padding: 1rem !important;
  }

  .pt-md-3,
  .py-md-3 {
    padding-top: 1rem !important;
  }

  .pr-md-3,
  .px-md-3 {
    padding-right: 1rem !important;
  }

  .pb-md-3,
  .py-md-3 {
    padding-bottom: 1rem !important;
  }

  .pl-md-3,
  .px-md-3 {
    padding-left: 1rem !important;
  }

  .p-md-4 {
    padding: 1.5rem !important;
  }

  .pt-md-4,
  .py-md-4 {
    padding-top: 1.5rem !important;
  }

  .pr-md-4,
  .px-md-4 {
    padding-right: 1.5rem !important;
  }

  .pb-md-4,
  .py-md-4 {
    padding-bottom: 1.5rem !important;
  }

  .pl-md-4,
  .px-md-4 {
    padding-left: 1.5rem !important;
  }

  .p-md-5 {
    padding: 3rem !important;
  }

  .pt-md-5,
  .py-md-5 {
    padding-top: 3rem !important;
  }

  .pr-md-5,
  .px-md-5 {
    padding-right: 3rem !important;
  }

  .pb-md-5,
  .py-md-5 {
    padding-bottom: 3rem !important;
  }

  .pl-md-5,
  .px-md-5 {
    padding-left: 3rem !important;
  }

  .m-md-n1 {
    margin: -0.25rem !important;
  }

  .mt-md-n1,
  .my-md-n1 {
    margin-top: -0.25rem !important;
  }

  .mr-md-n1,
  .mx-md-n1 {
    margin-right: -0.25rem !important;
  }

  .mb-md-n1,
  .my-md-n1 {
    margin-bottom: -0.25rem !important;
  }

  .ml-md-n1,
  .mx-md-n1 {
    margin-left: -0.25rem !important;
  }

  .m-md-n2 {
    margin: -0.5rem !important;
  }

  .mt-md-n2,
  .my-md-n2 {
    margin-top: -0.5rem !important;
  }

  .mr-md-n2,
  .mx-md-n2 {
    margin-right: -0.5rem !important;
  }

  .mb-md-n2,
  .my-md-n2 {
    margin-bottom: -0.5rem !important;
  }

  .ml-md-n2,
  .mx-md-n2 {
    margin-left: -0.5rem !important;
  }

  .m-md-n3 {
    margin: -1rem !important;
  }

  .mt-md-n3,
  .my-md-n3 {
    margin-top: -1rem !important;
  }

  .mr-md-n3,
  .mx-md-n3 {
    margin-right: -1rem !important;
  }

  .mb-md-n3,
  .my-md-n3 {
    margin-bottom: -1rem !important;
  }

  .ml-md-n3,
  .mx-md-n3 {
    margin-left: -1rem !important;
  }

  .m-md-n4 {
    margin: -1.5rem !important;
  }

  .mt-md-n4,
  .my-md-n4 {
    margin-top: -1.5rem !important;
  }

  .mr-md-n4,
  .mx-md-n4 {
    margin-right: -1.5rem !important;
  }

  .mb-md-n4,
  .my-md-n4 {
    margin-bottom: -1.5rem !important;
  }

  .ml-md-n4,
  .mx-md-n4 {
    margin-left: -1.5rem !important;
  }

  .m-md-n5 {
    margin: -3rem !important;
  }

  .mt-md-n5,
  .my-md-n5 {
    margin-top: -3rem !important;
  }

  .mr-md-n5,
  .mx-md-n5 {
    margin-right: -3rem !important;
  }

  .mb-md-n5,
  .my-md-n5 {
    margin-bottom: -3rem !important;
  }

  .ml-md-n5,
  .mx-md-n5 {
    margin-left: -3rem !important;
  }

  .m-md-auto {
    margin: auto !important;
  }

  .mt-md-auto,
  .my-md-auto {
    margin-top: auto !important;
  }

  .mr-md-auto,
  .mx-md-auto {
    margin-right: auto !important;
  }

  .mb-md-auto,
  .my-md-auto {
    margin-bottom: auto !important;
  }

  .ml-md-auto,
  .mx-md-auto {
    margin-left: auto !important;
  }
}

@media (min-width: 992px) {
  .m-lg-0 {
    margin: 0 !important;
  }

  .mt-lg-0,
  .my-lg-0 {
    margin-top: 0 !important;
  }

  .mr-lg-0,
  .mx-lg-0 {
    margin-right: 0 !important;
  }

  .mb-lg-0,
  .my-lg-0 {
    margin-bottom: 0 !important;
  }

  .ml-lg-0,
  .mx-lg-0 {
    margin-left: 0 !important;
  }

  .m-lg-1 {
    margin: 0.25rem !important;
  }

  .mt-lg-1,
  .my-lg-1 {
    margin-top: 0.25rem !important;
  }

  .mr-lg-1,
  .mx-lg-1 {
    margin-right: 0.25rem !important;
  }

  .mb-lg-1,
  .my-lg-1 {
    margin-bottom: 0.25rem !important;
  }

  .ml-lg-1,
  .mx-lg-1 {
    margin-left: 0.25rem !important;
  }

  .m-lg-2 {
    margin: 0.5rem !important;
  }

  .mt-lg-2,
  .my-lg-2 {
    margin-top: 0.5rem !important;
  }

  .mr-lg-2,
  .mx-lg-2 {
    margin-right: 0.5rem !important;
  }

  .mb-lg-2,
  .my-lg-2 {
    margin-bottom: 0.5rem !important;
  }

  .ml-lg-2,
  .mx-lg-2 {
    margin-left: 0.5rem !important;
  }

  .m-lg-3 {
    margin: 1rem !important;
  }

  .mt-lg-3,
  .my-lg-3 {
    margin-top: 1rem !important;
  }

  .mr-lg-3,
  .mx-lg-3 {
    margin-right: 1rem !important;
  }

  .mb-lg-3,
  .my-lg-3 {
    margin-bottom: 1rem !important;
  }

  .ml-lg-3,
  .mx-lg-3 {
    margin-left: 1rem !important;
  }

  .m-lg-4 {
    margin: 1.5rem !important;
  }

  .mt-lg-4,
  .my-lg-4 {
    margin-top: 1.5rem !important;
  }

  .mr-lg-4,
  .mx-lg-4 {
    margin-right: 1.5rem !important;
  }

  .mb-lg-4,
  .my-lg-4 {
    margin-bottom: 1.5rem !important;
  }

  .ml-lg-4,
  .mx-lg-4 {
    margin-left: 1.5rem !important;
  }

  .m-lg-5 {
    margin: 3rem !important;
  }

  .mt-lg-5,
  .my-lg-5 {
    margin-top: 3rem !important;
  }

  .mr-lg-5,
  .mx-lg-5 {
    margin-right: 3rem !important;
  }

  .mb-lg-5,
  .my-lg-5 {
    margin-bottom: 3rem !important;
  }

  .ml-lg-5,
  .mx-lg-5 {
    margin-left: 3rem !important;
  }

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

  .pt-lg-0,
  .py-lg-0 {
    padding-top: 0 !important;
  }

  .pr-lg-0,
  .px-lg-0 {
    padding-right: 0 !important;
  }

  .pb-lg-0,
  .py-lg-0 {
    padding-bottom: 0 !important;
  }

  .pl-lg-0,
  .px-lg-0 {
    padding-left: 0 !important;
  }

  .p-lg-1 {
    padding: 0.25rem !important;
  }

  .pt-lg-1,
  .py-lg-1 {
    padding-top: 0.25rem !important;
  }

  .pr-lg-1,
  .px-lg-1 {
    padding-right: 0.25rem !important;
  }

  .pb-lg-1,
  .py-lg-1 {
    padding-bottom: 0.25rem !important;
  }

  .pl-lg-1,
  .px-lg-1 {
    padding-left: 0.25rem !important;
  }

  .p-lg-2 {
    padding: 0.5rem !important;
  }

  .pt-lg-2,
  .py-lg-2 {
    padding-top: 0.5rem !important;
  }

  .pr-lg-2,
  .px-lg-2 {
    padding-right: 0.5rem !important;
  }

  .pb-lg-2,
  .py-lg-2 {
    padding-bottom: 0.5rem !important;
  }

  .pl-lg-2,
  .px-lg-2 {
    padding-left: 0.5rem !important;
  }

  .p-lg-3 {
    padding: 1rem !important;
  }

  .pt-lg-3,
  .py-lg-3 {
    padding-top: 1rem !important;
  }

  .pr-lg-3,
  .px-lg-3 {
    padding-right: 1rem !important;
  }

  .pb-lg-3,
  .py-lg-3 {
    padding-bottom: 1rem !important;
  }

  .pl-lg-3,
  .px-lg-3 {
    padding-left: 1rem !important;
  }

  .p-lg-4 {
    padding: 1.5rem !important;
  }

  .pt-lg-4,
  .py-lg-4 {
    padding-top: 1.5rem !important;
  }

  .pr-lg-4,
  .px-lg-4 {
    padding-right: 1.5rem !important;
  }

  .pb-lg-4,
  .py-lg-4 {
    padding-bottom: 1.5rem !important;
  }

  .pl-lg-4,
  .px-lg-4 {
    padding-left: 1.5rem !important;
  }

  .p-lg-5 {
    padding: 3rem !important;
  }

  .pt-lg-5,
  .py-lg-5 {
    padding-top: 3rem !important;
  }

  .pr-lg-5,
  .px-lg-5 {
    padding-right: 3rem !important;
  }

  .pb-lg-5,
  .py-lg-5 {
    padding-bottom: 3rem !important;
  }

  .pl-lg-5,
  .px-lg-5 {
    padding-left: 3rem !important;
  }

  .m-lg-n1 {
    margin: -0.25rem !important;
  }

  .mt-lg-n1,
  .my-lg-n1 {
    margin-top: -0.25rem !important;
  }

  .mr-lg-n1,
  .mx-lg-n1 {
    margin-right: -0.25rem !important;
  }

  .mb-lg-n1,
  .my-lg-n1 {
    margin-bottom: -0.25rem !important;
  }

  .ml-lg-n1,
  .mx-lg-n1 {
    margin-left: -0.25rem !important;
  }

  .m-lg-n2 {
    margin: -0.5rem !important;
  }

  .mt-lg-n2,
  .my-lg-n2 {
    margin-top: -0.5rem !important;
  }

  .mr-lg-n2,
  .mx-lg-n2 {
    margin-right: -0.5rem !important;
  }

  .mb-lg-n2,
  .my-lg-n2 {
    margin-bottom: -0.5rem !important;
  }

  .ml-lg-n2,
  .mx-lg-n2 {
    margin-left: -0.5rem !important;
  }

  .m-lg-n3 {
    margin: -1rem !important;
  }

  .mt-lg-n3,
  .my-lg-n3 {
    margin-top: -1rem !important;
  }

  .mr-lg-n3,
  .mx-lg-n3 {
    margin-right: -1rem !important;
  }

  .mb-lg-n3,
  .my-lg-n3 {
    margin-bottom: -1rem !important;
  }

  .ml-lg-n3,
  .mx-lg-n3 {
    margin-left: -1rem !important;
  }

  .m-lg-n4 {
    margin: -1.5rem !important;
  }

  .mt-lg-n4,
  .my-lg-n4 {
    margin-top: -1.5rem !important;
  }

  .mr-lg-n4,
  .mx-lg-n4 {
    margin-right: -1.5rem !important;
  }

  .mb-lg-n4,
  .my-lg-n4 {
    margin-bottom: -1.5rem !important;
  }

  .ml-lg-n4,
  .mx-lg-n4 {
    margin-left: -1.5rem !important;
  }

  .m-lg-n5 {
    margin: -3rem !important;
  }

  .mt-lg-n5,
  .my-lg-n5 {
    margin-top: -3rem !important;
  }

  .mr-lg-n5,
  .mx-lg-n5 {
    margin-right: -3rem !important;
  }

  .mb-lg-n5,
  .my-lg-n5 {
    margin-bottom: -3rem !important;
  }

  .ml-lg-n5,
  .mx-lg-n5 {
    margin-left: -3rem !important;
  }

  .m-lg-auto {
    margin: auto !important;
  }

  .mt-lg-auto,
  .my-lg-auto {
    margin-top: auto !important;
  }

  .mr-lg-auto,
  .mx-lg-auto {
    margin-right: auto !important;
  }

  .mb-lg-auto,
  .my-lg-auto {
    margin-bottom: auto !important;
  }

  .ml-lg-auto,
  .mx-lg-auto {
    margin-left: auto !important;
  }
}

@media (min-width: 1200px) {
  .m-xl-0 {
    margin: 0 !important;
  }

  .mt-xl-0,
  .my-xl-0 {
    margin-top: 0 !important;
  }

  .mr-xl-0,
  .mx-xl-0 {
    margin-right: 0 !important;
  }

  .mb-xl-0,
  .my-xl-0 {
    margin-bottom: 0 !important;
  }

  .ml-xl-0,
  .mx-xl-0 {
    margin-left: 0 !important;
  }

  .m-xl-1 {
    margin: 0.25rem !important;
  }

  .mt-xl-1,
  .my-xl-1 {
    margin-top: 0.25rem !important;
  }

  .mr-xl-1,
  .mx-xl-1 {
    margin-right: 0.25rem !important;
  }

  .mb-xl-1,
  .my-xl-1 {
    margin-bottom: 0.25rem !important;
  }

  .ml-xl-1,
  .mx-xl-1 {
    margin-left: 0.25rem !important;
  }

  .m-xl-2 {
    margin: 0.5rem !important;
  }

  .mt-xl-2,
  .my-xl-2 {
    margin-top: 0.5rem !important;
  }

  .mr-xl-2,
  .mx-xl-2 {
    margin-right: 0.5rem !important;
  }

  .mb-xl-2,
  .my-xl-2 {
    margin-bottom: 0.5rem !important;
  }

  .ml-xl-2,
  .mx-xl-2 {
    margin-left: 0.5rem !important;
  }

  .m-xl-3 {
    margin: 1rem !important;
  }

  .mt-xl-3,
  .my-xl-3 {
    margin-top: 1rem !important;
  }

  .mr-xl-3,
  .mx-xl-3 {
    margin-right: 1rem !important;
  }

  .mb-xl-3,
  .my-xl-3 {
    margin-bottom: 1rem !important;
  }

  .ml-xl-3,
  .mx-xl-3 {
    margin-left: 1rem !important;
  }

  .m-xl-4 {
    margin: 1.5rem !important;
  }

  .mt-xl-4,
  .my-xl-4 {
    margin-top: 1.5rem !important;
  }

  .mr-xl-4,
  .mx-xl-4 {
    margin-right: 1.5rem !important;
  }

  .mb-xl-4,
  .my-xl-4 {
    margin-bottom: 1.5rem !important;
  }

  .ml-xl-4,
  .mx-xl-4 {
    margin-left: 1.5rem !important;
  }

  .m-xl-5 {
    margin: 3rem !important;
  }

  .mt-xl-5,
  .my-xl-5 {
    margin-top: 3rem !important;
  }

  .mr-xl-5,
  .mx-xl-5 {
    margin-right: 3rem !important;
  }

  .mb-xl-5,
  .my-xl-5 {
    margin-bottom: 3rem !important;
  }

  .ml-xl-5,
  .mx-xl-5 {
    margin-left: 3rem !important;
  }

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

  .pt-xl-0,
  .py-xl-0 {
    padding-top: 0 !important;
  }

  .pr-xl-0,
  .px-xl-0 {
    padding-right: 0 !important;
  }

  .pb-xl-0,
  .py-xl-0 {
    padding-bottom: 0 !important;
  }

  .pl-xl-0,
  .px-xl-0 {
    padding-left: 0 !important;
  }

  .p-xl-1 {
    padding: 0.25rem !important;
  }

  .pt-xl-1,
  .py-xl-1 {
    padding-top: 0.25rem !important;
  }

  .pr-xl-1,
  .px-xl-1 {
    padding-right: 0.25rem !important;
  }

  .pb-xl-1,
  .py-xl-1 {
    padding-bottom: 0.25rem !important;
  }

  .pl-xl-1,
  .px-xl-1 {
    padding-left: 0.25rem !important;
  }

  .p-xl-2 {
    padding: 0.5rem !important;
  }

  .pt-xl-2,
  .py-xl-2 {
    padding-top: 0.5rem !important;
  }

  .pr-xl-2,
  .px-xl-2 {
    padding-right: 0.5rem !important;
  }

  .pb-xl-2,
  .py-xl-2 {
    padding-bottom: 0.5rem !important;
  }

  .pl-xl-2,
  .px-xl-2 {
    padding-left: 0.5rem !important;
  }

  .p-xl-3 {
    padding: 1rem !important;
  }

  .pt-xl-3,
  .py-xl-3 {
    padding-top: 1rem !important;
  }

  .pr-xl-3,
  .px-xl-3 {
    padding-right: 1rem !important;
  }

  .pb-xl-3,
  .py-xl-3 {
    padding-bottom: 1rem !important;
  }

  .pl-xl-3,
  .px-xl-3 {
    padding-left: 1rem !important;
  }

  .p-xl-4 {
    padding: 1.5rem !important;
  }

  .pt-xl-4,
  .py-xl-4 {
    padding-top: 1.5rem !important;
  }

  .pr-xl-4,
  .px-xl-4 {
    padding-right: 1.5rem !important;
  }

  .pb-xl-4,
  .py-xl-4 {
    padding-bottom: 1.5rem !important;
  }

  .pl-xl-4,
  .px-xl-4 {
    padding-left: 1.5rem !important;
  }

  .p-xl-5 {
    padding: 3rem !important;
  }

  .pt-xl-5,
  .py-xl-5 {
    padding-top: 3rem !important;
  }

  .pr-xl-5,
  .px-xl-5 {
    padding-right: 3rem !important;
  }

  .pb-xl-5,
  .py-xl-5 {
    padding-bottom: 3rem !important;
  }

  .pl-xl-5,
  .px-xl-5 {
    padding-left: 3rem !important;
  }

  .m-xl-n1 {
    margin: -0.25rem !important;
  }

  .mt-xl-n1,
  .my-xl-n1 {
    margin-top: -0.25rem !important;
  }

  .mr-xl-n1,
  .mx-xl-n1 {
    margin-right: -0.25rem !important;
  }

  .mb-xl-n1,
  .my-xl-n1 {
    margin-bottom: -0.25rem !important;
  }

  .ml-xl-n1,
  .mx-xl-n1 {
    margin-left: -0.25rem !important;
  }

  .m-xl-n2 {
    margin: -0.5rem !important;
  }

  .mt-xl-n2,
  .my-xl-n2 {
    margin-top: -0.5rem !important;
  }

  .mr-xl-n2,
  .mx-xl-n2 {
    margin-right: -0.5rem !important;
  }

  .mb-xl-n2,
  .my-xl-n2 {
    margin-bottom: -0.5rem !important;
  }

  .ml-xl-n2,
  .mx-xl-n2 {
    margin-left: -0.5rem !important;
  }

  .m-xl-n3 {
    margin: -1rem !important;
  }

  .mt-xl-n3,
  .my-xl-n3 {
    margin-top: -1rem !important;
  }

  .mr-xl-n3,
  .mx-xl-n3 {
    margin-right: -1rem !important;
  }

  .mb-xl-n3,
  .my-xl-n3 {
    margin-bottom: -1rem !important;
  }

  .ml-xl-n3,
  .mx-xl-n3 {
    margin-left: -1rem !important;
  }

  .m-xl-n4 {
    margin: -1.5rem !important;
  }

  .mt-xl-n4,
  .my-xl-n4 {
    margin-top: -1.5rem !important;
  }

  .mr-xl-n4,
  .mx-xl-n4 {
    margin-right: -1.5rem !important;
  }

  .mb-xl-n4,
  .my-xl-n4 {
    margin-bottom: -1.5rem !important;
  }

  .ml-xl-n4,
  .mx-xl-n4 {
    margin-left: -1.5rem !important;
  }

  .m-xl-n5 {
    margin: -3rem !important;
  }

  .mt-xl-n5,
  .my-xl-n5 {
    margin-top: -3rem !important;
  }

  .mr-xl-n5,
  .mx-xl-n5 {
    margin-right: -3rem !important;
  }

  .mb-xl-n5,
  .my-xl-n5 {
    margin-bottom: -3rem !important;
  }

  .ml-xl-n5,
  .mx-xl-n5 {
    margin-left: -3rem !important;
  }

  .m-xl-auto {
    margin: auto !important;
  }

  .mt-xl-auto,
  .my-xl-auto {
    margin-top: auto !important;
  }

  .mr-xl-auto,
  .mx-xl-auto {
    margin-right: auto !important;
  }

  .mb-xl-auto,
  .my-xl-auto {
    margin-bottom: auto !important;
  }

  .ml-xl-auto,
  .mx-xl-auto {
    margin-left: auto !important;
  }
}

.text-monospace {
  font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace !important;
}

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

.text-wrap {
  white-space: normal !important;
}

.text-nowrap {
  white-space: nowrap !important;
}

.text-truncate {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

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

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

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

@media (min-width: 576px) {
  .text-sm-left {
    text-align: left !important;
  }

  .text-sm-right {
    text-align: right !important;
  }

  .text-sm-center {
    text-align: center !important;
  }
}

@media (min-width: 768px) {
  .text-md-left {
    text-align: left !important;
  }

  .text-md-right {
    text-align: right !important;
  }

  .text-md-center {
    text-align: center !important;
  }
}

@media (min-width: 992px) {
  .text-lg-left {
    text-align: left !important;
  }

  .text-lg-right {
    text-align: right !important;
  }

  .text-lg-center {
    text-align: center !important;
  }
}

@media (min-width: 1200px) {
  .text-xl-left {
    text-align: left !important;
  }

  .text-xl-right {
    text-align: right !important;
  }

  .text-xl-center {
    text-align: center !important;
  }
}

.text-lowercase {
  text-transform: lowercase !important;
}

.text-uppercase {
  text-transform: uppercase !important;
}

.text-capitalize {
  text-transform: capitalize !important;
}

.font-weight-light {
  font-weight: 300 !important;
}

.font-weight-lighter {
  font-weight: lighter !important;
}

.font-weight-normal {
  font-weight: 400 !important;
}

.font-weight-bold {
  font-weight: 700 !important;
}

.font-weight-bolder {
  font-weight: bolder !important;
}

.font-italic {
  font-style: italic !important;
}

.text-white {
  color: #fff !important;
}

.text-primary {
  color: #007bff !important;
}

a.text-primary:hover,
a.text-primary:focus {
  color: #0056b3 !important;
}

.text-secondary {
  color: #6c757d !important;
}

a.text-secondary:hover,
a.text-secondary:focus {
  color: #494f54 !important;
}

.text-success {
  color: #28a745 !important;
}

a.text-success:hover,
a.text-success:focus {
  color: #19692c !important;
}

.text-info {
  color: #17a2b8 !important;
}

a.text-info:hover,
a.text-info:focus {
  color: #0f6674 !important;
}

.text-warning {
  color: #ffc107 !important;
}

a.text-warning:hover,
a.text-warning:focus {
  color: #ba8b00 !important;
}

.text-danger {
  color: #dc3545 !important;
}

a.text-danger:hover,
a.text-danger:focus {
  color: #a71d2a !important;
}

.text-light {
  color: #f8f9fa !important;
}

a.text-light:hover,
a.text-light:focus {
  color: #cbd3da !important;
}

.text-dark {
  color: #343a40 !important;
}

a.text-dark:hover,
a.text-dark:focus {
  color: #121416 !important;
}

.text-body {
  color: #212529 !important;
}

.text-muted {
  color: #6c757d !important;
}

.text-black-50 {
  color: rgba(0, 0, 0, 0.5) !important;
}

.text-white-50 {
  color: rgba(255, 255, 255, 0.5) !important;
}

.text-hide {
  font: 0/0 a;
  color: transparent;
  text-shadow: none;
  background-color: transparent;
  border: 0;
}

.text-decoration-none {
  text-decoration: none !important;
}

.text-break {
  word-break: break-word !important;
  overflow-wrap: break-word !important;
}

.text-reset {
  color: inherit !important;
}

.visible {
  visibility: visible !important;
}

.invisible {
  visibility: hidden !important;
}

@media print {
  *,
  *::before,
  *::after {
    text-shadow: none !important;
    box-shadow: none !important;
  }

  a:not(.btn) {
    text-decoration: underline;
  }

  abbr[title]::after {
    content: " (" attr(title) ")";
  }

  pre {
    white-space: pre-wrap !important;
  }

  pre,
  blockquote {
    border: 1px solid #adb5bd;
    page-break-inside: avoid;
  }

  thead {
    display: table-header-group;
  }

  tr,
  img {
    page-break-inside: avoid;
  }

  p,
  h2,
  h3 {
    orphans: 3;
    widows: 3;
  }

  h2,
  h3 {
    page-break-after: avoid;
  }

@page {
    size: a3;
}

  body {
    min-width: 992px !important;
  }

  .container {
    min-width: 992px !important;
  }

  .navbar {
    display: none;
  }

  .badge {
    border: 1px solid #000;
  }

  .table {
    border-collapse: collapse !important;
  }

  .table td,
  .table th {
    background-color: #fff !important;
  }

  .table-bordered th,
  .table-bordered td {
    border: 1px solid #dee2e6 !important;
  }

  .table-dark {
    color: inherit;
  }

  .table-dark th,
  .table-dark td,
  .table-dark thead th,
  .table-dark tbody + tbody {
    border-color: #dee2e6;
  }

  .table .thead-dark th {
    color: inherit;
    border-color: #dee2e6;
  }
}

.bg-dark {
  background-color: #000 !important;
}

.back-to-top {
  width: 45px;
  right: 30px;
  height: 45px;
  bottom: 30px;
  cursor: pointer;
  z-index: 100;
  opacity: 0;
  position: fixed;
  transition: transform 0.3s;
  text-align: center;
  visibility: hidden;
  border-radius: 50%;
  background-color: rgba(109, 123, 140, 0.8);
  font-size: 1.5rem;
  line-height: 2.375rem;
  color: #fff;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.5s ease, visibility 0s linear 0.5s;
  transform: translateY(-20px);
  transition: transform 0.5s, opacity 0.5s ease, visibility 0s linear 0.5s;
}

.back-to-top:hover {
  transform: scale3d(1.1, 1.1, 1.1);
}

.scroll .back-to-top {
  opacity: 1;
  transition: opacity 0.3s ease, visibility 0s;
  visibility: visible;
  transform: translateY(0);
  transition: transform 0.5s, opacity 0.3s ease, visibility 0s;
}

/* ---------------
* COMMENTS
*/

.comment-respond {
  margin-top: 60px;
}

.comments {
  margin: 30px 0;
}

.comments .title,
.comment-notes {
  margin: 10px auto;
  text-align: center;
}

.comments .comment-reply-title {
  text-align: center;
}

.comments .title span {
  padding-bottom: 3px;
  border-bottom: 1px solid rgba(0, 0, 0, 0.2);
}

.comment-notes {
  font-size: 16px;
}

.comment {
  margin-bottom: 30px;
  padding-bottom: 30px;
  border-bottom: 1px solid rgba(0, 0, 0, 0.075);
}

.comment .reply {
  padding: 7px 20px;
  position: absolute;
  top: 0;
  right: 15px;
  font-size: 16px;
  color: rgba(0, 0, 0, 0.4);
  text-transform: uppercase;
  letter-spacing: 3px;
  background: rgba(0, 0, 0, 0.075);
}

.comment .reply a:hover {
  text-decoration: none;
}

.comment-author {
  margin-bottom: 0;
}

.comment-author img,
.comment-author span {
  display: none;
}

.comment-author b {
  font-size: 18px;
  text-transform: uppercase;
  font-weight: normal;
  color: rgba(0, 0, 0, 0.5);
}

.comment-metadata {
  margin: 10px 0;
}

.comment-metadata a {
  font-size: 14px;
  font-style: italic;
  color: rgba(0, 0, 0, 0.4);
}

.comments label {
  margin: 5px 0;
}

.comments input {
  width: 25%;
  float: left;
  border: 1px solid rgba(0, 0, 0, 0.15);
  margin: 10px 40px 10px 0;
  padding: 13px 2%;
  font-size: 13px;
  background: none repeat scroll 0 0 rgba(255, 255, 255, 0.2);
  border-radius: 2px;
  color: #333;
}

.comments input[type=checkbox] {
  width: auto;
}

.comments textarea {
  color: #ddd;
  width: 100%;
  height: 150px;
  margin: 10px 0;
  border: 1px solid rgba(0, 0, 0, 0.15);
  padding: 8px 11px;
  font-size: 13px;
  background: none repeat scroll 0 0 rgba(255, 255, 255, 0.2);
  border-radius: 2px;
}

.comments ::-webkit-input-placeholder {
  font-size: 100%;
  color: silver;
  font-weight: 700;
  font-style: italic;
  opacity: 1;
  transition: 0.3s;
  text-transform: uppercase;
}

.comments :-moz-placeholder {
  font-size: 100%;
  color: silver;
  font-weight: 700;
  font-style: italic;
  opacity: 1;
  transition: 0.3s;
  text-transform: uppercase;
}

.comments ::-moz-placeholder {
  font-size: 100%;
  color: silver;
  font-weight: 700;
  font-style: italic;
  opacity: 1;
  transition: 0.3s;
  text-transform: uppercase;
}

.comments :-ms-input-placeholder {
  font-size: 100%;
  color: silver;
  font-weight: 700;
  font-style: italic;
  opacity: 1;
  transition: 0.3s;
  text-transform: uppercase;
}

.comments .submit {
  color: #fff;
  cursor: pointer;
  border: 0 none;
  display: block;
  padding: 0 15px;
  font-size: 13px;
  text-align: center;
  box-shadow: 0 12px 19px rgba(255, 255, 255, 0.1) inset, 0 1px 2px rgba(0, 0, 0, 0.1);
  transition: all 0.2s ease 0s;
  line-height: 44px;
  font-weight: bold;
  text-shadow: none;
  border-radius: 3px;
  background-color: #164053;
}

/*change this to resize*/

.c {
  list-style: none;
  margin: 0;
  padding: 0;
  position: relative;
  width: 5em;
  width: 5em;
}

.c li {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  top: 0;
  margin: auto;
  border-radius: 50%;
  box-sizing: border-box;
  display: flex;
  justify-content: center;
  align-items: center;
  transform-origin: center center;
  -webkit-animation: anim 3s ease-in-out infinite;
          animation: anim 3s ease-in-out infinite;
  will-change: transform, filter;
}

.c li:nth-child(1) {
  width: 1em;
  height: 1em;
}

.c li:nth-child(1):after {
  content: "";
  display: block;
  font-size: 25%;
  width: 1em;
  height: 1em;
  border-radius: 50%;
  box-shadow: 1em 0 0 rgba(0, 166, 182, 0.2), -1em 0 0 rgba(50, 70, 80, 0.2), 0 1em 0 rgba(211, 75, 76, 0.2), 0 -1em 0 rgba(248, 171, 44, 0.2);
}

.c li:nth-child(2) {
  -webkit-animation-delay: 0.1s;
          animation-delay: 0.1s;
  width: 2em;
  height: 2em;
}

.c li:nth-child(2):after {
  content: "";
  display: block;
  font-size: 50%;
  width: 1em;
  height: 1em;
  border-radius: 50%;
  box-shadow: 1.5em 0 0 rgba(0, 166, 182, 0.4), -1.5em 0 0 rgba(50, 70, 80, 0.4), 0 1.5em 0 rgba(211, 75, 76, 0.4), 0 -1.5em 0 rgba(248, 171, 44, 0.4);
}

.c li:nth-child(3) {
  -webkit-animation-delay: 0.15s;
          animation-delay: 0.15s;
  width: 3em;
  height: 3em;
}

.c li:nth-child(3):after {
  content: "";
  display: block;
  font-size: 75%;
  width: 1em;
  height: 1em;
  border-radius: 50%;
  box-shadow: 2em 0 0 rgba(0, 166, 182, 0.6), -2em 0 0 rgba(50, 70, 80, 0.6), 0 2em 0 rgba(211, 75, 76, 0.6), 0 -2em 0 rgba(248, 171, 44, 0.6);
}

.c li:nth-child(4) {
  -webkit-animation-delay: 0.2s;
          animation-delay: 0.2s;
  width: 4em;
  height: 4em;
}

.c li:nth-child(4):after {
  content: "";
  display: block;
  font-size: 100%;
  width: 1em;
  height: 1em;
  border-radius: 50%;
  box-shadow: 2.5em 0 0 rgba(0, 166, 182, 0.8), -2.5em 0 0 rgba(50, 70, 80, 0.8), 0 2.5em 0 rgba(211, 75, 76, 0.8), 0 -2.5em 0 rgba(248, 171, 44, 0.8);
}

.c li:nth-child(5) {
  -webkit-animation-delay: 0.25s;
          animation-delay: 0.25s;
  width: 5em;
  height: 5em;
}

.c li:nth-child(5):after {
  content: "";
  display: block;
  font-size: 125%;
  width: 1em;
  height: 1em;
  border-radius: 50%;
  box-shadow: 3em 0 0 #00a6b6, -3em 0 0 #324650, 0 3em 0 #D34B4C, 0 -3em 0 #f8ab2c;
}

@-webkit-keyframes anim {
  50% {
    -webkit-filter: blur(2px);
            filter: blur(2px);
  }

  90%, 100% {
    transform: rotate(1turn);
    -webkit-filter: blur(0);
            filter: blur(0);
  }
}

@keyframes anim {
  50% {
    -webkit-filter: blur(2px);
            filter: blur(2px);
  }

  90%, 100% {
    transform: rotate(1turn);
    -webkit-filter: blur(0);
            filter: blur(0);
  }
}

.spinner-wrap {
  background: #43b0bc;
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 2em;
  box-shadow: inset 0 0 500px rgba(0, 0, 0, 0.5);
  z-index: 11111;
}

/* Spinner 2 */

/*$y: #ffcc5b;
$g: #639761;
$b: #273f3f;
$dg: #2e7255;
$o: #fca435;
$r: #ff5c51;*/

.spinner2 {
  display: flex;
  width: 100vw;
  height: 100vh;
  align-items: center;
  justify-content: center;
  background: linear-gradient(45deg, #27395d, black);
  position: absolute;
  left: 0;
  top: 0;
  z-index: 2200;
}

.spinner2:before,
.spinner2:after {
  content: "";
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  background: radial-gradient(circle at center, #3a5997 200px, transparent);
  z-index: 1;
}

.spinner2:after {
  background: repeating-linear-gradient(45deg, #27395d, #27395d 10px, black 10px, black 11px);
  z-index: 0;
}

.spinner2 .center {
  width: 20px;
  height: 20px;
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translateX(-50%) translateY(-50%);
  border-radius: 100%;
  background: white;
  z-index: 3;
  margin-left: 25px;
  -webkit-animation: pulse 1.5s ease-in-out infinite;
          animation: pulse 1.5s ease-in-out infinite;
}

@-webkit-keyframes pulse {
  0% {
    box-shadow: 0 0 0 0 #3a5997, 0 0 0 5px white;
    background: white;
  }

  50% {
    box-shadow: 0 0 0 15px #3a5997, 0 0 0 20px black;
    background: black;
  }

  100% {
    box-shadow: 0 0 0 0 #3a5997, 0 0 0 5px white;
    background: white;
  }
}

@keyframes pulse {
  0% {
    box-shadow: 0 0 0 0 #3a5997, 0 0 0 5px white;
    background: white;
  }

  50% {
    box-shadow: 0 0 0 15px #3a5997, 0 0 0 20px black;
    background: black;
  }

  100% {
    box-shadow: 0 0 0 0 #3a5997, 0 0 0 5px white;
    background: white;
  }
}

.spinner2 .ring {
  border-radius: 100%;
  width: 200px;
  height: 200px;
  background: radial-gradient(circle at center, #3a5997, #3a5997 78px, transparent 80px, transparent 98px, #3a5997 100px);
  position: relative;
  overflow: hidden;
  z-index: 1;
}

.spinner2 .ring:nth-of-type(2) {
  margin-left: -150px;
  width: 100px;
  height: 100px;
  background: transparent;
  z-index: 2;
  border-radius: 100%;
}

.spinner2 .ring:nth-of-type(2):after {
  content: "";
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  background: radial-gradient(circle at center, #3a5997, #3a5997 28px, transparent 30px, transparent 48px, #3a5997 50px);
}

.spinner2 .ring:nth-of-type(2):before {
  width: 50px;
  height: 50px;
  z-index: -3;
  -webkit-animation: spinner 3s linear infinite;
          animation: spinner 3s linear infinite;
  -webkit-animation-delay: -1.5s;
          animation-delay: -1.5s;
  background: #3a5997;
}

.spinner2 .ring:before {
  content: "";
  position: absolute;
  width: 100px;
  height: 100px;
  background: #e7b802;
  z-index: -1;
  top: 0;
  transform-origin: 100% 100%;
  -webkit-animation: spinner 3s linear infinite;
          animation: spinner 3s linear infinite;
}

@-webkit-keyframes spinner {
  0% {
    transform: rotate(0deg) scale(1.5) translateX(-50%);
  }

  50% {
    transform: rotate(360deg) scale(2) translateX(100%);
  }

  100% {
    transform: rotate(720deg) scaleX(1.5) translateX(-50%);
  }
}

@keyframes spinner {
  0% {
    transform: rotate(0deg) scale(1.5) translateX(-50%);
  }

  50% {
    transform: rotate(360deg) scale(2) translateX(100%);
  }

  100% {
    transform: rotate(720deg) scaleX(1.5) translateX(-50%);
  }
}

.page-template-sbb .header {
  padding: 10px 0;
  background-color: #faf3e4;
  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.15), 0 2px 0 rgba(255, 255, 255, 0.85);
}

.page-template-sbb .header #logo {
  width: 120px !important;
  padding: 3px 0;
  background-origin: content-box;
  background-image: url(../images/logo_head.png?013bdc473dd080e20a6ec4493636f706);
  background-size: contain;
}

.page-template-home-sbb .header #logo {
  display: none;
}

.page-template-sbb-subpage .header #logo {
  display: inline-block;
}

@media (max-width: 1023px) {
  .page-template-home-sbb .header #logo {
    display: inline-block;
  }

  .page-template-sbb-subpage .header #logo {
    width: 120px !important;
    height: 60px !important;
  }
}

header #logo,
header.scroll #logo {
  background-image: url(../images/logo-full-new.png?6b756e301bf1e0fe81bf081fcb5000f6);
  background-size: cover;
  width: 180px;
}

header.scroll #logo {
  width: 85px;
}

.page-template-sbb .footer {
  margin-bottom: -15px;
  position: relative;
  color: #000;
  background-color: #faf3e4;
}

.page-template-sbb .footer .max-width {
  padding: 30px 15px;
}

.page-template-sbb .footer .max-width h3,
.page-template-sbb .footer .max-width p,
.page-template-sbb .footer .max-width a {
  color: #000 !important;
}

.page-template-sbb .footer .footer-item {
  min-width: 280px;
}

.page-template-sbb .foot-nav {
  overflow: hidden;
  height: 470px;
  margin: 0 auto;
  padding: 110px 15px 0;
  text-align: center;
  position: absolute;
  top: -470px;
  left: 0;
  right: 0;
}

.page-template-sbb .foot-nav .btn {
  z-index: 6;
  position: relative;
}

.page-template-sbb .foot-nav .bg-clouds-footer {
  width: 100%;
  height: 220px;
  left: 0;
  transform: scale(1, -1);
  bottom: 0;
  background: url(../images/bg_main_banner_sbb_clouds3.png?c11dd32343d04dda5fee3fad3b16ea74) center top/cover repeat-x;
  background-size: auto 220px;
}

.page-template-sbb .foot-nav .bg-flower-footer-right {
  width: 150px;
  height: 400px;
  bottom: 100px;
  left: initial !important;
  right: -15px;
  background: url(../images/bg_main_banner_sbb_flower.png?8c0e621485fd60aaa39eea5bd26292fe) right bottom/contain no-repeat;
}

.page-template-sbb .foot-nav .bg-swirl-footer-right {
  width: 320px;
  height: 460px;
  bottom: 20px;
  left: initial !important;
  right: 0;
  background: url(../images/bg_main_banner_sbb_leaf_n_swirl.png?6df7e04c0b3e5b9b1f53bd0babd1e54d) right bottom/contain no-repeat;
}

.page-template-sbb .foot-nav .bg-swirl-footer-left {
  width: 150px;
  height: 210px;
  bottom: 120px;
  left: -25px;
  background: url(../images/bg_main_banner_sbb_swirl.png?41530d1f49b1663f91ff631bccce86eb) left top/contain no-repeat;
}

.page-template-sbb .footer-creds {
  z-index: 5;
  position: relative;
  font-size: 10px;
  padding-top: 25px;
}

.page-template-sbb .footer-creds > a {
  text-decoration: underline;
}

.page-template-sbb .footer-creds > a,
.page-template-sbb .footer-creds {
  color: #000;
}

@media (max-width: 767px) {
  .page-template-sbb .foot-nav {
    padding-top: 30px;
  }
}

.page-template-sbb #top-menu a:hover {
  text-decoration: none;
}

.page-template-sbb #top-menu span {
  font-size: 1.25rem;
  color: #3c888a;
  font-family: "Tetra", Helvetica, sans-serif;
  letter-spacing: 1px;
}

.page-template-sbb .social-media a {
  margin: 0 10px;
  font-size: 1.25rem;
  color: #3c888a;
  line-height: 1;
  vertical-align: top;
  background-image: none;
  transition: 0.3s;
}

.page-template-sbb .social-media a:hover {
  background-color: transparent;
  transform: scale(1.2);
  color: #43b0bc;
}

@media (max-width: 1223px) and (min-width: 1024px) {
  .page-template-sbb #top-menu a {
    padding: 5px 3px;
  }

  .page-template-sbb #top-menu a span {
    font-size: 1rem;
  }

  .page-template-sbb .social-media .sm-item {
    margin: 0 3px;
    font-size: 1rem;
  }
}

.menu-trigger-button {
  cursor: pointer;
  display: none;
  margin-left: auto;
}

.menu-trigger-button:hover {
  color: #43b0bc;
}

.menu-trigger-button:after {
  content: "\F0C9";
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  color: #fff;
}

.menu-dropdown {
  margin: 0;
  padding: 0 0 0 170px;
  list-style: none;
  background-color: #54524f;
}

.menu-dropdown .menu-item {
  order: 0;
  margin: 0;
  position: relative;
  /*&:last-of-type a {
    padding-right: 0;
  }*/
}

.menu-dropdown .menu-item a > span {
  display: flex;
  padding: 0.25rem 1.5rem;
  transition: color 0.3s;
  text-transform: uppercase;
  color: #fff !important;
  font-weight: 500 !important;
  font-family: Oswald, Helvetica, sans-serif !important;
  font-size: 18px !important;
}

.menu-dropdown .menu-item.menu-item-has-children > a:after {
  content: "\F107";
  transition: transform 0.3s;
  padding-left: 0.5rem;
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  font-size: 1.625rem;
}

.menu-dropdown .menu-item .sub-menu {
  background-color: #54524f;
  top: 100%;
  left: 0;
  z-index: 5;
  position: absolute;
  list-style: none;
  padding: 1rem 1.5rem;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.5s ease, visibility 0s linear 0.5s;
  transform: translateY(-20px);
  transition: transform 0.5s, opacity 0.5s ease, visibility 0s linear 0.5s;
  transform: translateY(-10px);
}

.menu-dropdown .menu-item .sub-menu .menu-item:before {
  background-color: #000;
}

.menu-dropdown .menu-item .sub-menu .menu-item a {
  padding: 0.25rem 0.5rem;
}

.menu-dropdown .menu-item .sub-menu a {
  white-space: nowrap;
}

.menu-dropdown .menu-item:hover > a {
  text-decoration: none;
}

.menu-dropdown .menu-item:hover.menu-item-has-children > a:after {
  transform: translateY(4px);
}

.menu-dropdown .menu-item:hover .sub-menu {
  opacity: 1;
  transition: opacity 0.3s ease, visibility 0s;
  visibility: visible;
  transform: translateY(0);
  transition: transform 0.5s, opacity 0.3s ease, visibility 0s;
}

@media (max-width: 1099px) {
  .menu-dropdown {
    padding-left: 50px;
  }
}

@media (max-width: 899px) {
  .menu-dropdown .menu-item a {
    padding: 0.25rem 0.75rem;
  }

  .menu-dropdown .menu-item.menu-item-has-children > a:after {
    padding-left: 0.5rem;
  }

  .menu-dropdown .menu-item .sub-menu {
    left: -1.5rem;
    padding: 0 1.5rem 0.5rem;
  }
}

@media (max-width: 749px) {
  .menu-dropdown {
    top: 100%;
    right: 0;
    width: auto;
    display: inline-flex;
    position: absolute;
    z-index: 1;
    align-items: flex-start;
    padding-top: 1rem;
    padding-left: 1rem;
    padding-right: 1rem;
    flex-direction: column;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.5s ease, visibility 0s linear 0.5s;
    transform: translateY(-20px);
    transition: transform 0.5s, opacity 0.5s ease, visibility 0s linear 0.5s;
    align-items: flex-start !important;
    pointer-events: none;
  }

  .menu-dropdown .menu-item {
    order: 1;
    margin-bottom: 1.5rem;
  }

  .menu-dropdown .menu-item .sub-menu {
    opacity: 1;
    position: static;
    transform: none;
    visibility: visible;
    padding: 0;
  }

  .menu-dropdown .menu-item .sub-menu .menu-item {
    margin: 0;
  }

  .menu-dropdown .menu-item .sub-menu .menu-item a {
    font-size: 0.875rem;
    font-weight: 300;
  }

  .menu-trigger-button {
    display: block;
  }

  .menu-open .menu-trigger-button:after {
    content: "\F00D";
  }

  .menu-open .menu-dropdown {
    opacity: 1;
    transition: opacity 0.3s ease, visibility 0s;
    visibility: visible;
    transform: translateY(0);
    transition: transform 0.5s, opacity 0.3s ease, visibility 0s;
    pointer-events: auto;
  }
}

@media (max-width: 449px) {
  .menu-dropdown {
    width: 100%;
  }
}

.microsite-header {
  background-color: #e9e4cf;
  border-bottom: 5px solid #f8ab2c;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 1100;
  padding-bottom: 22px;
  position: fixed;
  transition: all 0.3s ease;
}

.microsite-header .max-width {
  text-align: center;
}

.microsite-header .site-menu a {
  pointer-events: none;
}

.microsite-header #logo {
  width: 222px;
  height: 59px;
  position: relative;
  transition: width 0.3s ease, height 0.3s ease;
}

.microsite-header #logo,
.microsite-header #top-menu,
.microsite-header .social-media {
  display: inline-block;
  vertical-align: middle;
  margin: 0 6px;
}

.microsite-header #logo:first-child,
.microsite-header #top-menu:first-child,
.microsite-header .social-media:first-child {
  margin-left: 0;
}

.microsite-header #logo:last-child,
.microsite-header #top-menu:last-child,
.microsite-header .social-media:last-child {
  margin-right: 0;
}

.microsite-header .lines-button {
  display: none;
}

.microsite-header.scroll {
  padding: 7px 0;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
}

.microsite-header.scroll #logo {
  width: 39px;
  height: 43.66px;
}

.lines-button {
  bottom: 9px;
  right: 10px;
  cursor: pointer;
  border: none;
  display: inline-block;
  padding: 0.86rem 0.43rem;
  position: absolute;
  background: none;
  transition: 0.3s;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
}

.lines-button:hover {
  opacity: 1;
}

.lines {
  width: 1.72rem;
  height: 0.2457142857rem;
  display: inline-block;
  background: #1f1f1f;
  transition: 0.3s;
  border-radius: 0.1228571429rem;
  position: relative;
  /*create the upper and lower lines as pseudo-elements of the middle line*/
}

.lines:before,
.lines:after {
  width: 1.72rem;
  height: 0.2457142857rem;
  display: inline-block;
  background: #1f1f1f;
  transition: 0.3s;
  border-radius: 0.1228571429rem;
  left: 0;
  content: "";
  position: absolute;
  transform-origin: 0.1228571429rem center;
}

.lines:before {
  top: 0.4914285714rem;
}

.lines:after {
  top: -0.4914285714rem;
}

.lines-button.x.close .lines {
  /*hide the middle line*/
  background: transparent;
  /*overlay the lines by setting both their top values to 0*/
}

.lines-button.x.close .lines:before,
.lines-button.x.close .lines:after {
  top: 0;
  width: 1.72rem;
  transform-origin: 50% 50%;
}

.lines-button.x.close .lines:before {
  transform: rotate3d(0, 0, 1, 45deg);
}

.lines-button.x.close .lines:after {
  transform: rotate3d(0, 0, 1, -45deg);
}

.site-menu {
  background-color: #3d5a77;
  align-items: center;
  display: flex;
  justify-content: center;
  position: relative;
  z-index: 2;
  margin-top: -10px;
  margin-bottom: 10px;
}

.site-menu .menu-trigger-button {
  display: block;
  font-size: 1rem;
  color: #fff;
  font-weight: bold;
}

.site-menu .menu-trigger-button::after {
  width: 14px;
}

.site-menu .menu-dropdown {
  top: 100%;
  width: 100%;
  right: 0;
  display: inline-flex;
  position: absolute;
  z-index: 1;
  align-items: flex-start;
  padding-top: 1rem;
  padding-left: 1rem;
  padding-right: 1rem;
  flex-direction: column;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.5s ease, visibility 0s linear 0.5s;
  transform: translateY(-20px);
  transition: transform 0.5s, opacity 0.5s ease, visibility 0s linear 0.5s;
}

.site-menu .menu-dropdown .menu-item {
  order: 1;
  margin-bottom: 1.5rem;
}

.site-menu .menu-dropdown .menu-item .sub-menu {
  opacity: 1;
  position: static;
  transform: none;
  visibility: visible;
}

.site-menu .menu-dropdown .menu-item .sub-menu .menu-item {
  margin: 0;
}

.site-menu .menu-dropdown .menu-item .sub-menu .menu-item a {
  font-size: 0.875rem;
  font-weight: 300;
}

.menu-open .site-menu .menu-trigger-button:after {
  content: "\F00D";
}

.menu-open .site-menu .menu-dropdown {
  opacity: 1;
  transition: opacity 0.3s ease, visibility 0s;
  visibility: visible;
  transform: translateY(0);
  transition: transform 0.5s, opacity 0.3s ease, visibility 0s;
}

.menu-open .microsite-header a {
  pointer-events: all;
}

.menu-open .microsite-header .menu-item .sub-menu {
  background-color: #fff;
}

@media (max-width: 1023px) {
  .microsite-header {
    padding-bottom: 10px;
  }

  .microsite-header #logo,
  .microsite-header #top-menu {
    margin: 0;
    display: inline-block;
    vertical-align: top;
  }

  .microsite-header .max-width {
    text-align: left;
  }

  .microsite-header #logo {
    width: 155.4px;
    height: 41.3px;
  }

  .microsite-header.scroll {
    padding-bottom: 10px;
  }

  .microsite-header.scroll #logo {
    width: 155.4px;
    height: 41.3px;
  }

  .microsite-header .social-media {
    display: none;
  }

  .microsite-header .lines-button {
    display: block;
  }

  #top-menu {
    top: 100%;
    right: -100%;
    margin: 0;
    padding: 10px;
    overflow: auto;
    position: absolute;
    background-color: #e4e4e4;
    transition: right 0.3s ease;
    box-shadow: -10px 10px 10px rgba(0, 0, 0, 0.1);
  }

  #top-menu > li {
    display: block;
    margin: 10px 0;
  }

  #top-menu.open {
    right: 0%;
  }

  .video-background {
    display: none;
  }

  footer h3 {
    margin-bottom: 15px;
  }

  footer .footer-item {
    min-width: 320px;
  }
}

.page-template-ss .header {
  padding: 10px 0;
  box-shadow: 0 2px 0 rgba(255, 255, 255, 0.5);
  background-color: #3d5b96;
}

.page-template-ss .header #logo {
  width: 220px !important;
  padding: 3px 0;
  background-origin: content-box;
  background-image: url(../images/logo_story_shift_white.png?c12683da70bddef4c0bddba4d028ab8e);
  background-size: contain;
}

.page-template-home-ss .header #logo {
  display: none;
}

.page-template-ss-subpage .header #logo {
  display: inline-block;
}

@media (max-width: 1023px) {
  .page-template-ss #top-menu {
    background: #27395d;
  }

  .page-template-home-ss .header #logo {
    display: inline-block;
  }

  .page-template-ss-subpage .header #logo {
    width: 120px !important;
    height: 60px !important;
  }
}

.page-template-ss .footer {
  margin-bottom: -15px;
  position: relative;
  color: #fff;
  background-color: #27395d;
}

.page-template-ss .footer .max-width {
  padding: 30px 15px;
}

.page-template-ss .footer .max-width h3,
.page-template-ss .footer .max-width p,
.page-template-ss .footer .max-width a {
  color: #fff !important;
}

.page-template-ss .footer .footer-item {
  min-width: 280px;
}

.page-template-ss .foot-nav {
  overflow: hidden;
  height: 470px;
  margin: 0 auto;
  padding: 110px 15px 0;
  text-align: center;
  position: absolute;
  top: -470px;
  left: 0;
  right: 0;
}

.page-template-ss .footer-logo {
  height: auto;
  max-width: 100%;
  -o-object-fit: contain;
     object-fit: contain;
}

.page-template-ss .footer-creds {
  z-index: 5;
  position: relative;
  font-size: 10px;
  padding-top: 25px;
}

.page-template-ss .footer-creds > a {
  text-decoration: underline;
}

.page-template-ss .footer-creds > a,
.page-template-ss .footer-creds {
  color: #fff;
}

@media (max-width: 767px) {
  .page-template-ss .foot-nav {
    padding-top: 30px;
  }
}

.page-template-ss #top-menu a:hover {
  text-decoration: none;
}

.page-template-ss #top-menu span {
  font-size: 1.125rem;
  color: #fff;
  font-family: "Raleway", Helvetica, sans-serif;
  font-weight: 400;
  letter-spacing: 1px;
  text-transform: uppercase;
}

.page-template-ss .menu-item {
  position: relative;
}

.page-template-ss .menu-item .sub-menu {
  top: 100%;
  left: 0;
  position: absolute;
  padding-top: 22px;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.5s ease, visibility 0s linear 0.5s;
  transform: translateY(-20px);
  transition: transform 0.5s, opacity 0.5s ease, visibility 0s linear 0.5s;
}

.page-template-ss .menu-item .sub-menu > .menu-item {
  text-align: left;
  background-color: #3d5b96;
}

.page-template-ss .menu-item .sub-menu > .menu-item span {
  white-space: nowrap;
}

.page-template-ss .menu-item:hover .sub-menu {
  opacity: 1;
  transition: opacity 0.3s ease, visibility 0s;
  visibility: visible;
  transform: translateY(0);
  transition: transform 0.5s, opacity 0.3s ease, visibility 0s;
}

.page-template-ss .social-media a {
  margin: 0 10px;
  font-size: 1.25rem;
  color: #fff;
  line-height: 1;
  vertical-align: top;
  background-image: none;
  transition: 0.3s;
}

.page-template-ss .social-media a:hover {
  background-color: transparent;
  transform: scale(1.2);
  color: #e7b802;
}

.page-template-ss .lines,
.page-template-ss .lines:before,
.page-template-ss .lines:after {
  background: #fff;
}

.page-template-home-rr .header {
  padding: 10px 0;
  background-color: #b7dece;
}

.page-template-home-rr-subpage .header {
  padding: 30px 0;
  background-color: #e9e4cf;
  border-bottom: 5px solid #f8ab2c;
}

@media (max-width: 1023px) {
  .page-template-rr #top-menu {
    background-color: #e9e4cf;
  }

  .page-template-home-rr .header {
    padding: 30px 0;
  }

  .page-template-home-rr .header #top-menu {
    background-color: #b7dece;
  }

  .page-template-rr-subpage #top-menu {
    background-color: #e9e4cf;
  }
}

.page-template-rr .footer {
  margin-bottom: -15px;
  position: relative;
  color: #000;
  background-color: #b7dece;
}

.page-template-rr .footer .max-width {
  padding: 30px 15px;
}

.page-template-rr .footer .max-width h3,
.page-template-rr .footer .max-width p,
.page-template-rr .footer .max-width a {
  color: #000 !important;
}

.page-template-rr .footer .footer-item {
  min-width: 280px;
}

.page-template-rr .foot-nav {
  overflow: hidden;
  text-align: center;
  position: absolute;
  top: -270px;
  left: 0;
  right: 0;
}

.page-template-rr .cloud {
  background: url(../images/rr-clouds.png?6f33bc98eb742812be7afd7d26cd4702) center top/cover no-repeat;
  background-size: cover;
  bottom: 100%;
}

.page-template-rr .cloud-big {
  width: 959px;
  height: 602px;
  transform: scaleY(-1) scaleX(-1);
  left: -517px;
  margin-bottom: -47px;
}

.page-template-rr .cloud-smaller {
  width: 512px;
  height: 322px;
  transform: scaleY(-1);
  right: -27px;
  margin-bottom: -25px;
}

.page-template-rr .blue-bird {
  width: 235px;
  height: 249px;
  background: url(../images/rr-blue-birds.png?d1e8ce1b97eabcdf6c89cd2eee58333d) center top/cover no-repeat;
  background-size: cover;
  bottom: 100%;
  right: 130px;
  margin-bottom: 5px;
}

.page-template-rr .palm-tree {
  background: url(../images/rr-palm-tree.png?b56c95410c8bdd4319b6b50ded3305b7) center top/cover no-repeat;
  width: 150px;
  height: 435px;
  background-size: 100% 100%;
  bottom: 100%;
  right: -53px;
}

.page-template-rr .btn,
.page-template-rr input[type=submit] {
  min-width: 170px;
  margin: 15px;
  padding: 10px;
  font-size: 0.9375rem;
  color: #fff;
  font-family: "Tofino-Regular", Helvetica, sans-serif;
  border-radius: 0;
  text-decoration: none;
  transition: 0.5s ease;
}

.page-template-rr .btn:hover,
.page-template-rr input[type=submit]:hover {
  text-decoration: none;
  color: #fff;
  background-color: #19444a;
  transform: rotate(3deg) scale(1.1);
}

.page-template-rr .btn.orange,
.page-template-rr .btn[type=submit],
.page-template-rr input[type=submit].orange,
.page-template-rr input[type=submit][type=submit] {
  background-color: #f8ab2c;
  word-spacing: 3px;
  color: #fff;
}

.page-template-rr .btn.orange:hover,
.page-template-rr .btn[type=submit]:hover,
.page-template-rr input[type=submit].orange:hover,
.page-template-rr input[type=submit][type=submit]:hover {
  color: #fff;
  background-color: #19444a;
}

.page-template-rr .ninja-forms-required-items {
  margin-bottom: 15px;
  color: #fff;
}

.page-template-rr .ninja-forms-req-symbol {
  color: #ff0000 !important;
}

.page-template-rr .ninja-forms-form-wrap label {
  font-size: 20px;
  color: #fff;
}

.page-template-rr .ninja-forms-form-wrap input[type=text],
.page-template-rr .ninja-forms-form-wrap textarea {
  min-height: 45px;
  padding: 5px 15px;
  font-size: 1.1875rem;
  color: #324650;
  border: 3px solid #fff;
  outline: none;
  transition: 0.5s ease;
}

.page-template-rr .ninja-forms-form-wrap input[type=text]:focus,
.page-template-rr .ninja-forms-form-wrap textarea:focus {
  border: 3px solid #f8ab2c;
}

.page-template-rr .ninja-forms-form-wrap input[type=submit] {
  margin: 0;
}

@media (max-width: 767px) {
  .page-template-rr .foot-nav {
    padding-top: 30px;
  }
}

/* MEDIA QUERIES */

@media (max-width: 1100px) {
  .page-template-rr .palm-tree {
    display: none;
  }

  .page-template-rr .cloud-smaller {
    left: 70%;
  }

  .page-template-rr .cloud-big {
    left: auto;
    right: 65%;
  }
}

@media (max-width: 890px) {
  .page-template-rr .blue-bird {
    display: none;
  }
}

.page-template-rr {
  overflow-x: hidden;
}

.page-template-rr.rr-lang-es #top-menu {
  padding: 0;
}

.page-template-rr.rr-lang-es .max-width-wider {
  max-width: 100%;
}

.page-template-rr #top-menu a {
  padding: 8px 12px;
}

.page-template-rr #top-menu a:hover {
  text-decoration: none;
}

.page-template-rr #top-menu span {
  font-size: 1rem;
  color: #3c888a;
  font-family: "Tofino-Regular", Helvetica, sans-serif;
  letter-spacing: -3px;
}

.page-template-rr.rr-lang-es #top-menu span {
  letter-spacing: -3px;
}

.page-template-rr .social-media a {
  margin: 0 10px;
  font-size: 1.25rem;
  color: #3c888a;
  line-height: 1;
  vertical-align: top;
  background-image: none;
  transition: 0.3s;
}

.page-template-rr .social-media a:hover {
  background-color: transparent;
  transform: scale(1.2);
  color: #43b0bc;
}

@media (max-width: 1350px) {
  .page-template-rr.rr-lang-es .social-media a {
    margin: 0;
  }

  .page-template-rr header > div > a > img {
    height: 40px;
  }
}

@media (max-width: 1250px) {
  .page-template-rr #top-menu {
    padding: 0;
  }

  .page-template-rr .social-media a {
    margin: 0;
  }

  .page-template-rr.rr-lang-es #top-menu {
    margin: 0;
  }

  .page-template-rr.rr-lang-es #top-menu a {
    padding: 4px 6px;
  }

  .page-template-rr.rr-lang-es #top-menu a span {
    font-size: 0.875rem;
    color: #3c888a;
    font-family: "Tofino-Regular", Helvetica, sans-serif;
  }

  .page-template-rr.rr-lang-es .social-media {
    margin: 0;
  }

  .page-template-rr.rr-lang-es .social-media a {
    font-size: 14px;
    line-height: 20px;
  }
}

.page-template-ss .ban-arrows-wrap {
  width: 0;
  height: 100%;
  position: absolute;
  left: 50%;
  top: 0;
  pointer-events: none;
}

.page-template-ss .ban-arrow {
  position: absolute;
  left: 0;
  top: -500px;
  opacity: 0.3;
  -webkit-animation: fade 3s alternate infinite ease-in-out;
          animation: fade 3s alternate infinite ease-in-out;
}

.page-template-ss .ban-arrow span {
  display: block;
  width: 80px;
  height: 90px;
  -webkit-animation: swim 3s alternate infinite ease-in-out;
          animation: swim 3s alternate infinite ease-in-out;
  background: url(../images/arrow_right.png?a25714e77015680e104d1ffed7d19b33) left top/contain no-repeat;
}

.page-template-ss .ban-arrow:first-of-type {
  left: -430px !important;
  top: 100px !important;
  -webkit-animation-delay: 0.6s;
          animation-delay: 0.6s;
  -webkit-animation-duration: 4s;
          animation-duration: 4s;
}

.page-template-ss .ban-arrow:first-of-type span {
  -webkit-animation-duration: 5s;
          animation-duration: 5s;
}

.page-template-ss .ban-arrow:nth-of-type(2) {
  left: -260px !important;
  top: 190px !important;
  -webkit-animation-delay: 0.5s;
          animation-delay: 0.5s;
  -webkit-animation-duration: 3s;
          animation-duration: 3s;
}

.page-template-ss .ban-arrow:nth-of-type(2) span {
  -webkit-animation-duration: 6s;
          animation-duration: 6s;
}

.page-template-ss .ban-arrow:nth-of-type(3) {
  left: -590px !important;
  top: 210px !important;
  -webkit-animation-delay: 0.1s;
          animation-delay: 0.1s;
  -webkit-animation-duration: 6s;
          animation-duration: 6s;
}

.page-template-ss .ban-arrow:nth-of-type(3) span {
  -webkit-animation-duration: 4s;
          animation-duration: 4s;
}

.page-template-ss .ban-arrow:nth-of-type(4) {
  left: -400px !important;
  top: 290px !important;
  -webkit-animation-delay: 0.2s;
          animation-delay: 0.2s;
  -webkit-animation-duration: 4s;
          animation-duration: 4s;
}

.page-template-ss .ban-arrow:nth-of-type(4) span {
  -webkit-animation-duration: 7s;
          animation-duration: 7s;
}

.page-template-ss .ban-arrow:nth-of-type(5) {
  left: -40px !important;
  top: 330px !important;
  -webkit-animation-delay: 0.5s;
          animation-delay: 0.5s;
  -webkit-animation-duration: 7s;
          animation-duration: 7s;
}

.page-template-ss .ban-arrow:nth-of-type(5) span {
  -webkit-animation-duration: 5.5s;
          animation-duration: 5.5s;
}

.page-template-ss .ban-arrow:nth-of-type(6) {
  left: 270px !important;
  top: 110px !important;
  -webkit-animation-delay: 0.3s;
          animation-delay: 0.3s;
  -webkit-animation-duration: 2s;
          animation-duration: 2s;
}

.page-template-ss .ban-arrow:nth-of-type(6) span {
  -webkit-animation-duration: 5s;
          animation-duration: 5s;
}

.page-template-ss .ban-arrow:nth-of-type(7) {
  left: 500px !important;
  top: 190px !important;
  -webkit-animation-delay: 0.9s;
          animation-delay: 0.9s;
  -webkit-animation-duration: 5s;
          animation-duration: 5s;
}

.page-template-ss .ban-arrow:nth-of-type(7) span {
  -webkit-animation-duration: 6s;
          animation-duration: 6s;
}

.page-template-ss .ban-arrow:nth-of-type(8) {
  left: 220px !important;
  top: 280px !important;
  -webkit-animation-delay: 0.7s;
          animation-delay: 0.7s;
  -webkit-animation-duration: 6s;
          animation-duration: 6s;
}

.page-template-ss .ban-arrow:nth-of-type(8) span {
  -webkit-animation-duration: 7s;
          animation-duration: 7s;
}

.page-template-ss .ban-arrow:last-of-type {
  left: 440px !important;
  top: 320px !important;
  -webkit-animation-delay: 0.5s;
          animation-delay: 0.5s;
  -webkit-animation-duration: 8s;
          animation-duration: 8s;
}

.page-template-ss .ban-arrow:last-of-type span {
  -webkit-animation-duration: 6.5s;
          animation-duration: 6.5s;
}

.page-template-ss .ss-home {
  padding-top: 120px;
  background-color: #000;
}

.page-template-ss h1 {
  margin-bottom: 45px;
  font-weight: 900;
  font-size: 4rem;
  color: #3d5b96;
  text-transform: uppercase;
  text-align: center;
  line-height: 0.9;
  position: relative;
}

.page-template-ss h1 span {
  position: relative;
}

.page-template-ss h1 span:before {
  content: "";
  width: 100px;
  border-bottom: 1px solid #3d5b96;
  position: absolute;
  right: 110%;
  top: 50%;
}

.page-template-ss h1 span:after {
  content: "";
  display: table;
  width: 100%;
  clear: both;
}

.page-template-ss h1 i {
  margin-left: 130px;
  color: #fff;
  font-style: italic;
  font-weight: 300;
  position: relative;
}

.page-template-ss h1 i:after {
  content: "";
  width: 100px;
  border-bottom: 1px solid #fff;
  position: absolute;
  left: 110%;
  top: 50%;
}

.page-template-ss .promo {
  display: block;
  max-width: 320px;
  margin: 0 auto 45px;
  text-align: center;
  font-size: 1.375rem;
  color: #fff;
  font-weight: 900;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  transition: 0.5s ease;
}

.page-template-ss .promo:hover img {
  margin: -5px 25px 0;
  transform: rotate(360deg) scale(1.2);
}

.page-template-ss .promo img {
  width: 60px;
  margin: -5px 15px 0;
  vertical-align: middle;
  transition: 0.5s ease;
}

.page-template-ss .subtext {
  display: block;
  max-width: 600px;
  margin: 0 auto 45px;
  padding: 0 15px;
  color: #fff;
  text-align: center;
}

.page-template-ss .home-nav {
  overflow: hidden;
}

.page-template-ss .home-nav ul {
  height: 100%;
  min-height: 340px;
  padding: 0;
  margin: 0 -60px;
  flex-wrap: nowrap;
  /*&:hover li {
      flex : 0 0 19%;
  }*/
}

.page-template-ss .home-nav li {
  flex: 1 1 1000px;
  margin: 0 3px;
  list-style: none;
  position: relative;
  transition: 0.5s ease;
  transform: skew(-15deg, 0deg);
  overflow: hidden;
}

@media (max-width: 991.98px) {
  .page-template-ss .home-nav li {
    padding-right: 0;
  }
}

.page-template-ss .home-nav li:hover {
  flex: 1 1 1200px !important;
}

.page-template-ss .home-nav li:first-of-type h3,
.page-template-ss .home-nav li:first-of-type p {
  padding-left: 45px;
  padding-right: 15px;
}

.page-template-ss .home-nav li:last-of-type {
  padding-right: 0;
}

.page-template-ss .home-nav li:last-of-type h3,
.page-template-ss .home-nav li:last-of-type p {
  padding-left: 15px;
  padding-right: 45px;
}

.page-template-ss .home-nav li:last-of-type .bg {
  right: 0;
}

.page-template-ss .home-nav a {
  height: 100%;
  padding: 60px 0;
  position: relative;
  text-decoration: none;
  transition: 0.5s ease;
  z-index: 2;
  transform: skew(15deg, 0deg);
}

.page-template-ss .home-nav a h3,
.page-template-ss .home-nav a p {
  position: relative;
  z-index: 2;
}

.page-template-ss .home-nav .bg {
  position: absolute;
  left: -45px;
  top: 0;
  right: -45px;
  bottom: 0;
  z-index: 1;
  background-position: center;
  background-size: cover;
  transition: 0.7s ease;
  -webkit-filter: grayscale(0);
          filter: grayscale(0);
}

.page-template-ss .home-nav h3,
.page-template-ss .home-nav p {
  color: #fff;
  margin: 5px -20px;
  padding: 7px 30px;
  background: rgba(0, 0, 0, 0.75);
}

.page-template-ss .home-nav h3 {
  opacity: 0;
  font-size: 2rem;
  transition: 0.7s ease;
}

.page-template-ss .home-nav p {
  opacity: 0;
  overflow: hidden;
  max-height: 0;
  padding-top: 10px;
  padding-bottom: 10px;
  font-size: 0.9375rem;
  transition: 0.7s ease;
}

.page-template-ss .home-nav a:hover h3 {
  opacity: 1;
}

.page-template-ss .home-nav a:hover .bg {
  -webkit-filter: grayscale(1);
          filter: grayscale(1);
}

.page-template-ss .home-nav a:hover p {
  max-height: 600px;
  opacity: 1;
}

.page-template-ss .home-nav .icon {
  display: inline-block;
  width: 150px;
  height: 150px;
  margin: 30px auto 0;
  font-size: 5rem;
  color: #19444a;
  background-color: #324650;
  border-radius: 50%;
  box-shadow: 0 0 0 2px #fff, 0 0 0 4px #000, 0 0 0 6px #fff;
}

@media (max-width: 980px) {
  .page-template-ss .home-nav li {
    flex: 1 1 220px !important;
  }

  .page-template-ss .home-nav li:hover {
    flex: 1 1 220px !important;
  }
}

.wpb_wrapper ul {
  list-style: disc;
}

@-webkit-keyframes swim {
  0% {
    transform: translate(-25px, -5px);
  }

  100% {
    transform: translate(25px, 5px);
  }
}

@keyframes swim {
  0% {
    transform: translate(-25px, -5px);
  }

  100% {
    transform: translate(25px, 5px);
  }
}

@-webkit-keyframes fade {
  0% {
    opacity: 0.3;
  }

  100% {
    opacity: 0;
  }
}

@keyframes fade {
  0% {
    opacity: 0.3;
  }

  100% {
    opacity: 0;
  }
}

.page-template-sbb {
  background-color: #43b0bc;
  /* ANIMATE OBJECTS */
  /* ANIMATES */
  /* MEDIA QUERIES */
}

.page-template-sbb .sbb-home {
  overflow: hidden;
  padding-bottom: 350px;
}

.page-template-sbb .main-banner {
  min-height: 780px;
  margin-bottom: 30px;
  position: relative;
}

.page-template-sbb .main-banner h1 {
  font-size: 6.25rem;
  color: #f8ab2c;
  font-family: "Tetra", Helvetica, sans-serif;
  line-height: 0.9;
  text-shadow: -5px 0 #29a4b4, 0 -5px 1px #29a4b4, -5px -5px 1px #29a4b4, 5px 0 0 #29a4b4, 5px -5px 1px #29a4b4, 5px 5px 1px #29a4b4, -5px 5px 1px #29a4b4, -5px 0 1px #29a4b4, 0 5px 1px #29a4b4;
  position: absolute;
  top: 220px !important;
  left: initial !important;
  right: 12%;
  z-index: 6;
}

.page-template-sbb .main-banner h1 span {
  display: block;
}

.page-template-sbb .main-banner h1 span:nth-of-type(2) {
  margin-left: 90px;
}

.page-template-sbb .main-banner h1 span:last-of-type {
  margin-left: 150px;
}

.page-template-sbb .main-banner h2 {
  font-size: 1.4375rem;
  color: #19444a;
  font-weight: bold;
  font-family: Arial, Helvetica, sans-serif;
  line-height: 1.4;
  text-transform: uppercase;
  position: absolute;
  top: 530px !important;
  left: initial !important;
  right: 6%;
  z-index: 6;
}

.page-template-sbb .main-banner h2 span {
  display: block;
  margin-left: 60px;
}

.page-template-sbb .inner-mb {
  position: relative;
  max-width: 1360px;
  min-height: 780px;
  margin: 0 auto;
  z-index: 5;
}

.page-template-sbb .inner-bg-back {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  z-index: 1;
}

.page-template-sbb .sbb-content {
  padding-top: 30px;
  font-size: 1.1875rem;
  color: #fff;
  font-family: "Noah-Regular", Helvetica, sans-serif;
  line-height: 1.6;
  letter-spacing: 0.7px;
  word-spacing: 1px;
  background-color: rgba(67, 176, 188, 0.7);
  position: relative;
  z-index: 11;
}

.page-template-sbb .disnone {
  display: none;
}

.page-template-sbb .bg-animate {
  position: absolute !important;
  z-index: 5;
}

.page-template-sbb .bg-main-wrap {
  width: 300%;
  height: 780px;
  border-bottom: 1px solid #89c6c7;
  top: 20px !important;
  left: -100% !important;
  z-index: 2;
}

.page-template-sbb .bg-main {
  width: 100%;
  height: 780px;
  background: url(../images/bg_main_banner_sbb_leaf.jpg?55f40ac424d741afb750d2f08af2a0de) center top;
  background-size: auto 780px;
  -webkit-animation: wiggle2 20s infinite alternate ease-in-out;
          animation: wiggle2 20s infinite alternate ease-in-out;
}

.page-template-sbb .bg-clouds-wrap {
  width: 400%;
  height: 220px;
  top: 20px !important;
  left: -150% !important;
}

.page-template-sbb .bg-clouds {
  width: 100%;
  height: 220px;
  background: url(../images/bg_main_banner_sbb_clouds3.png?c11dd32343d04dda5fee3fad3b16ea74) center top/cover repeat-x;
  background-size: auto 220px;
  -webkit-animation: wiggle 20s infinite alternate ease-in-out;
          animation: wiggle 20s infinite alternate ease-in-out;
}

.page-template-sbb .bg-moon {
  width: 230px;
  height: 230px;
  top: 80px !important;
  left: initial !important;
  right: 35px !important;
  background: url(../images/bg_main_banner_sbb_moon.png?e0993f2f673ee94ad3002ca8e9376d54) left top/contain no-repeat;
  z-index: 3;
}

.page-template-sbb .bg-bird {
  width: 124px;
  height: 100px;
  top: 300px !important;
  left: initial !important;
  right: 110px !important;
  background: url(../images/bg_main_banner_sbb_bird.png?7db35c62954cc9d2f9099b0861aaa709) left top/contain no-repeat;
  -webkit-animation: top-down 7s infinite linear;
          animation: top-down 7s infinite linear;
  transform-origin: 0 0 !important;
}

.page-template-sbb .bg-swirl-left {
  width: 265px;
  height: 400px;
  top: 210px !important;
  left: -50px !important;
  background: url(../images/bg_main_banner_sbb_swirl.png?41530d1f49b1663f91ff631bccce86eb) left top/contain no-repeat;
  -webkit-animation: top-down2 5s infinite alternate ease-in-out;
          animation: top-down2 5s infinite alternate ease-in-out;
}

.page-template-sbb .bg-flower-right {
  width: 150px;
  height: 400px;
  top: initial !important;
  bottom: 75px !important;
  left: initial !important;
  right: -15px !important;
  background: url(../images/bg_main_banner_sbb_flower.png?8c0e621485fd60aaa39eea5bd26292fe) right bottom/contain no-repeat;
}

.page-template-sbb .bg-swirl-right {
  width: 320px;
  height: 460px;
  top: initial !important;
  bottom: -20px !important;
  left: initial !important;
  right: 0 !important;
  background: url(../images/bg_main_banner_sbb_leaf_n_swirl.png?6df7e04c0b3e5b9b1f53bd0babd1e54d) right bottom/contain no-repeat;
}

.page-template-sbb .bg-leaf-left {
  width: 180px;
  height: 210px;
  top: initial !important;
  bottom: -30px !important;
  left: 10px !important;
  background: url(../images/bg_main_banner_sbb_leaf.png?708db62a73609d094a0d0a60144bbd09) left top/contain no-repeat;
  transform-origin: 20% 70% !important;
  -webkit-animation: swing 4s infinite alternate cubic-bezier(0.455, 0.03, 0.515, 0.955);
          animation: swing 4s infinite alternate cubic-bezier(0.455, 0.03, 0.515, 0.955);
}

.page-template-sbb .bg-border {
  width: 100%;
  height: 100%;
  top: initial !important;
  bottom: 15px !important;
  left: 0 !important;
  background: url(../images/bg_main_banner_sbb_border.png?fac243cfdd2fee703df7a5ceab83a6a4) center bottom no-repeat;
  background-size: 1280px auto;
  z-index: 3;
}

.page-template-sbb .bg-peoples {
  width: 1040px;
  height: 610px;
  top: initial !important;
  left: 50% !important;
  bottom: 1px !important;
  transform: translate(-778px, 0) !important;
  background: url(../images/bg_main_banner_sbb_peoples2.png?4fb398d2bd60cfb4a599c0a8ac6cf0c0) left bottom/contain no-repeat;
  z-index: 3;
}

.page-template-sbb .bg-branch {
  width: 190px;
  height: 130px;
  top: 586px !important;
  left: 50% !important;
  transform: translate(-80px, 0) !important;
  background: url(../images/bg_main_banner_sbb_branch.png?eb44e61eeab44f230bf20bc0fb095533) center top/contain no-repeat;
}

@-webkit-keyframes top-down {
  0% {
    transform: translate(0, -15px) rotateZ(0deg);
  }

  25% {
    transform: translate(-5px, 0) rotateZ(-5deg);
  }

  50% {
    transform: translate(0, 15px) rotateZ(0deg);
  }

  75% {
    transform: translate(5px, 0) rotateZ(5deg);
  }

  100% {
    transform: translate(0, -15px) rotateZ(0deg);
  }
}

@keyframes top-down {
  0% {
    transform: translate(0, -15px) rotateZ(0deg);
  }

  25% {
    transform: translate(-5px, 0) rotateZ(-5deg);
  }

  50% {
    transform: translate(0, 15px) rotateZ(0deg);
  }

  75% {
    transform: translate(5px, 0) rotateZ(5deg);
  }

  100% {
    transform: translate(0, -15px) rotateZ(0deg);
  }
}

@-webkit-keyframes top-down2 {
  0% {
    transform: translate(0, -15px) rotateZ(0deg);
  }

  100% {
    transform: translate(0, 15px) rotateZ(0deg);
  }
}

@keyframes top-down2 {
  0% {
    transform: translate(0, -15px) rotateZ(0deg);
  }

  100% {
    transform: translate(0, 15px) rotateZ(0deg);
  }
}

@-webkit-keyframes swing {
  0% {
    transform: rotateZ(5deg);
  }

  100% {
    transform: rotateZ(-5deg);
  }
}

@keyframes swing {
  0% {
    transform: rotateZ(5deg);
  }

  100% {
    transform: rotateZ(-5deg);
  }
}

@-webkit-keyframes wiggle {
  0% {
    transform: translate(-100px, 0);
  }

  50% {
    transform: translate(0, -20px);
  }

  100% {
    transform: translate(100px, 0);
  }
}

@keyframes wiggle {
  0% {
    transform: translate(-100px, 0);
  }

  50% {
    transform: translate(0, -20px);
  }

  100% {
    transform: translate(100px, 0);
  }
}

@-webkit-keyframes wiggle2 {
  0% {
    transform: translate(100px, 0);
  }

  100% {
    transform: translate(-100px, 0);
  }
}

@keyframes wiggle2 {
  0% {
    transform: translate(100px, 0);
  }

  100% {
    transform: translate(-100px, 0);
  }
}

@media (min-width: 2001px) {
  .page-template-sbb .main-banner h2 {
    transform: translate(-20%, 0) !important;
  }
}

@media (min-width: 1401px) and (max-width: 2000px) {
  .page-template-sbb h2 {
    transform: translate(-20%, 0) !important;
  }
}

@media (min-width: 1024px) and (max-width: 1400px) {
  .page-template-sbb h2 {
    transform: translate(-10%, 0) !important;
  }
}

@media (max-width: 1023px) {
  .page-template-sbb .main-banner h1 {
    transform: translate(-20%, 10px) !important;
  }

  .page-template-sbb .main-banner h2 {
    transform: translate(-20%, 0) !important;
  }

  .page-template-sbb .lines-button {
    top: 0;
  }

  .page-template-sbb .bg-peoples {
    transform: translate(-1055px, 0) !important;
    z-index: 2;
  }

  .page-template-sbb .bg-swirl-left {
    display: none;
  }
}

@media (max-width: 767px) {
  .page-template-sbb .main-banner h1 {
    transform: translate(-10%, 20px) !important;
  }

  .page-template-sbb .main-banner h2 {
    transform: translate(-20%, 0) !important;
  }

  .page-template-sbb .sbb-home {
    padding-bottom: 500px;
  }
}

@media (max-width: 480px) {
  .page-template-sbb .main-banner .bg-moon {
    top: 20px !important;
    right: -85px !important;
  }

  .page-template-sbb .main-banner .bg-bird {
    top: 210px !important;
    right: -20px !important;
  }

  .page-template-sbb .main-banner .bg-peoples {
    transform: translate(-945px, 0) !important;
  }

  .page-template-sbb .main-banner .bg-flower-right,
  .page-template-sbb .main-banner .bg-swirl-right,
  .page-template-sbb .main-banner .bg-leaf-left {
    display: none !important;
  }

  .page-template-sbb .main-banner h1 {
    font-size: 3.75rem;
    transform: translate(15%, 30px) !important;
  }

  .page-template-sbb .main-banner h1 span:nth-of-type(2) {
    margin-left: 40px;
  }

  .page-template-sbb .main-banner h1 span:last-of-type {
    margin-left: 80px;
  }

  .page-template-sbb .main-banner h2 {
    transform: translate(10%, -70px) !important;
    font-size: 14px;
  }

  .page-template-sbb .main-banner h2 span {
    margin-left: 10px;
  }
}

.page-template-sbb.sbb-lang-es .main-banner h1 {
  transform: translate(0, 0) !important;
}

.page-template-sbb.sbb-lang-es .main-banner h2 {
  transform: translate(0, 0) !important;
}

@media (max-width: 1399px) {
  .page-template-sbb.sbb-lang-es .main-banner h1 {
    font-size: 5.25rem;
    transform: translate(0, 0) !important;
  }

  .page-template-sbb.sbb-lang-es .main-banner h2 {
    max-width: 330px;
    text-align: center;
    transform: translate(0, 0) !important;
  }

  .page-template-sbb.sbb-lang-es .main-banner h2 span {
    display: inline;
    margin-left: 0;
  }
}

@media (max-width: 619px) {
  .page-template-sbb.sbb-lang-es .main-banner h1 {
    font-size: 5rem;
    transform: translate(30px, 0) !important;
  }

  .page-template-sbb.sbb-lang-es .main-banner h2 {
    font-size: 18px;
    transform: translate(-30px, -75px) !important;
  }
}

@media (max-width: 479px) {
  .page-template-sbb.sbb-lang-es .main-banner h1 {
    font-size: 3rem;
    transform: translate(30px, 0) !important;
  }

  .page-template-sbb.sbb-lang-es .main-banner h2 {
    font-size: 18px;
    max-width: 160px;
    transform: translate(10px, -105px) !important;
  }
}

.page-template-rr {
  background-color: #b7dece;
  /* ANIMATE OBJECTS */
  /* ANIMATES */
  /* MEDIA QUERIES */
}

.page-template-rr .main-wrapp {
  overflow: hidden;
}

.page-template-rr .rr-home {
  overflow: hidden;
  padding-bottom: 350px;
  background: url(../images/rr-blue-gradient.png?6fc97b14300ddf06949926de7f286800) left bottom;
  background-size: cover;
}

.page-template-rr .main-banner {
  min-height: 838px;
  margin-top: 55px;
  margin-bottom: 30px;
  position: relative;
  max-width: 1360px;
  margin: 0 auto;
  overflow: hidden;
  border: 3px solid black;
}

.page-template-rr .rr-content {
  padding-top: 38px;
  font-size: 0.9375rem;
  line-height: 1.25rem;
  color: #404042;
  font-family: "Noah-Bold", Helvetica, sans-serif;
  letter-spacing: 1.5px;
  word-spacing: 3px;
}

.page-template-rr .rr-content p {
  margin-bottom: 20px;
}

.page-template-rr .bg-main {
  left: -150px;
  top: 20px;
  width: 1149px;
  height: 780px;
  background: url(../images/rr-blue-gradient.png?6fc97b14300ddf06949926de7f286800) center top;
  -webkit-animation: wiggle2 20s infinite alternate ease-in-out;
          animation: wiggle2 20s infinite alternate ease-in-out;
}

.page-template-rr .bg-clouds {
  width: 1363px;
  height: 856px;
  top: -70px;
  left: auto;
  right: -130px;
  background: url(../images/rr-clouds.png?6f33bc98eb742812be7afd7d26cd4702) center top/cover repeat-x;
  background-size: cover;
  -webkit-animation: wiggle 20s infinite alternate ease-in-out;
          animation: wiggle 20s infinite alternate ease-in-out;
}

.page-template-rr .bg-flag {
  width: 213px;
  height: 300px;
  top: auto;
  left: 612px;
  bottom: 209px;
  background: url(../images/rr-flag.png?8085e8aaec93d4a5c1da58f4932d7865) center top/cover no-repeat;
  background-size: cover;
}

.page-template-rr .bg-bird {
  width: 512px;
  height: 247px;
  top: 230px;
  left: 289px;
  background: url(../images/rr-white-birds.png?ecdbcd49b8c0b76a788b74cb15f6465b) left top/contain no-repeat;
  -webkit-animation: top-down 7s infinite linear;
          animation: top-down 7s infinite linear;
  transform-origin: 0 0;
}

.page-template-rr .bg-tree {
  width: 326px;
  height: 829px;
  top: 44px;
  left: -37px;
  background: url(../images/rr-palm-tree.png?b56c95410c8bdd4319b6b50ded3305b7) left top/contain no-repeat;
  -webkit-animation: swing 4s infinite alternate cubic-bezier(0.455, 0.03, 0.515, 0.955);
          animation: swing 4s infinite alternate cubic-bezier(0.455, 0.03, 0.515, 0.955);
  transform-origin: center bottom;
}

.page-template-rr .wrapp-industry {
  width: 100%;
  height: 100%;
}

.page-template-rr .industry {
  width: 562px;
  height: 382px;
  top: 74px;
  left: 60%;
  background: url(../images/rr-industry-plant.png?9aeb0581396e300cf043adea43cbc681) right top/contain no-repeat;
}

.page-template-rr .wrapp-cards {
  width: 100%;
  height: 100%;
}

.page-template-rr .cards {
  width: 730px;
  height: 623px;
  top: initial;
  bottom: -30px;
  left: 50%;
  background: url(../images/rr-cards.png?0f7cb39d9517614b019f8825503c254e) right bottom/contain no-repeat;
}

.page-template-rr .bg-peoples {
  width: 804px;
  height: 435px;
  top: initial;
  left: 0;
  bottom: 0;
  background: url(../images/rr-people.png?3c967f7092a2a7dbd86cd43d16476d44) left bottom/contain no-repeat;
}

.page-template-rr .phrase {
  width: 297px;
  height: 58px;
  top: 272px;
  left: 33%;
  background: url(../images/rr-phrase.png?db26352ff07cf67a1bd0aa21b8271023) left bottom/contain no-repeat;
}

.page-template-rr .scroll-arrow {
  width: 100px;
  height: 100px;
  top: 700px;
  left: 50%;
  -webkit-animation: bounce 5s 0.5s infinite;
          animation: bounce 5s 0.5s infinite;
  overflow: hidden;
  padding: 10px;
  z-index: 1;
}

@-webkit-keyframes bounce {
  0%, 20%, 50%, 80%, 100% {
    transform: translateY(0);
  }

  40% {
    transform: translateY(-20px);
  }

  60% {
    transform: translateY(-10px);
  }
}

@keyframes bounce {
  0%, 20%, 50%, 80%, 100% {
    transform: translateY(0);
  }

  40% {
    transform: translateY(-20px);
  }

  60% {
    transform: translateY(-10px);
  }
}

.page-template-rr .scroll-arrow .fa-angle-double-down {
  font-size: 80px;
  color: white;
  text-shadow: 2px 2px 10px black;
  cursor: pointer;
}

.page-template-rr .title {
  width: 574px;
  height: 145px;
  left: 17%;
  top: 95px;
  background: url(../images/rr-title.png?53f5a9336407b680fa5c02edabe46266) left bottom/contain no-repeat;
}

@keyframes top-down {
  0% {
    transform: translate(0, -15px) rotateZ(0deg);
  }

  25% {
    transform: translate(-5px, 0) rotateZ(-5deg);
  }

  50% {
    transform: translate(0, 15px) rotateZ(0deg);
  }

  75% {
    transform: translate(5px, 0) rotateZ(5deg);
  }

  100% {
    transform: translate(0, -15px) rotateZ(0deg);
  }
}

@keyframes top-down2 {
  0% {
    transform: translate(0, -15px) rotateZ(0deg);
  }

  100% {
    transform: translate(0, 15px) rotateZ(0deg);
  }
}

@keyframes swing {
  0% {
    transform: rotateZ(5deg);
  }

  100% {
    transform: rotateZ(-5deg);
  }
}

@keyframes wiggle {
  0% {
    transform: translate(-100px, 0);
  }

  50% {
    transform: translate(0, -20px);
  }

  100% {
    transform: translate(100px, 0);
  }
}

@keyframes wiggle2 {
  0% {
    transform: translate(100px, 0);
  }

  100% {
    transform: translate(-100px, 0);
  }
}

@media (max-width: 1360px) {
  .page-template-rr .main-banner {
    border: none;
  }
}

@media (max-width: 1180px) {
  .page-template-rr .industry {
    left: 700px;
  }

  .page-template-rr .cards {
    left: 600px;
  }
}

@media (max-width: 930px) {
  .page-template-rr .bg-tree {
    display: none;
  }
}

@media (max-width: 850px) {
  .page-template-rr .industry,
  .page-template-rr .cards {
    display: none;
  }

  .page-template-rr .title,
  .page-template-rr .phrase {
    left: 50%;
    transform: translateX(-50%);
  }
}

@media (max-width: 600px) {
  .page-template-rr .title {
    width: 90%;
  }

  .page-template-rr .phrase {
    width: 50%;
  }

  .page-template-rr .bg-peoples {
    width: 135%;
  }

  .page-template-rr .scroll-arrow {
    top: 740px;
    right: -5%;
    left: initial;
  }

  .page-template-rr .scroll-arrow .fa-angle-double-down {
    font-size: 50px;
  }
}

@media (max-width: 500px) {
  .page-template-rr .main-banner {
    min-height: 730px;
  }

  .page-template-rr .bg-bird {
    display: none;
  }

  .page-template-rr .scroll-arrow {
    top: 650px;
    right: -5%;
    left: initial;
  }

  .page-template-rr .scroll-arrow .fa-angle-double-down {
    font-size: 50px;
  }
}

@media (max-width: 400px) {
  .page-template-rr .main-banner {
    min-height: 570px;
  }

  .page-template-rr .title {
    top: 50px;
  }

  .page-template-rr .phrase {
    top: 200px;
  }

  .page-template-rr .scroll-arrow {
    top: 490px;
    right: -5%;
    left: initial;
  }

  .page-template-rr .scroll-arrow .fa-angle-double-down {
    font-size: 50px;
  }
}

@media (min-width: 1200px) {
  .container {
    max-width: 960px;
  }
}

.page-template-ss .ss-subpage {
  padding: 120px 15px 150px;
}

.page-template-ss .ss-subpage h1,
.page-template-ss .ss-subpage h2,
.page-template-ss .ss-subpage h3 {
  margin-bottom: 30px;
}

.page-template-ss .ss-subpage a {
  color: #f8ab2c;
  text-decoration: underline;
}

.page-template-ss .ss-subpage p,
.page-template-ss .ss-subpage li,
.page-template-ss .ss-subpage span {
  font-size: 1.1875rem;
  line-height: 1.5;
  letter-spacing: 0.7px;
  word-spacing: 1px;
}

.page-template-sbb .sbb-subpage {
  padding: 70px 15px 450px;
}

.page-template-sbb .sbb-subpage h1,
.page-template-sbb .sbb-subpage h2,
.page-template-sbb .sbb-subpage h3 {
  margin-bottom: 30px;
  font-family: "Tetra" !important;
}

.page-template-sbb .sbb-subpage h1,
.page-template-sbb .sbb-subpage h2,
.page-template-sbb .sbb-subpage h3,
.page-template-sbb .sbb-subpage p,
.page-template-sbb .sbb-subpage li,
.page-template-sbb .sbb-subpage span {
  color: #fff;
}

.page-template-sbb .sbb-subpage a {
  color: #f8ab2c;
  text-decoration: underline;
}

.page-template-sbb .sbb-subpage p,
.page-template-sbb .sbb-subpage li,
.page-template-sbb .sbb-subpage span {
  font-size: 1.1875rem;
  color: #fff;
  font-family: "Noah-Regular", Helvetica, sans-serif;
  line-height: 1.5;
  letter-spacing: 0.7px;
  word-spacing: 1px;
}

.page-template-sbb .tagline {
  right: 0%;
  text-shadow: -1px -1px 0 #43b0bc, 1px -1px 0 #43b0bc, -1px 1px 0 #43b0bc, 1px 1px 0 #43b0bc;
}

.rr-subpage {
  overflow: hidden;
  padding-top: 60px;
  padding-bottom: 350px;
  margin-top: 101px;
  background: url(../images/rr-blue-gradient.png?6fc97b14300ddf06949926de7f286800) left bottom;
  background-size: cover;
}

.rr-subpage h1,
.rr-subpage h2,
.rr-subpage h3,
.rr-subpage h4 {
  color: #404042;
  font-family: "Tofino-Regular", Helvetica, sans-serif;
}

.rr-subpage h1 {
  font-size: 1.875rem;
}

.rr-subpage h2 {
  font-size: 1.25rem;
}

.rr-subpage h3 {
  font-size: 1rem;
}

.rr-subpage h4 {
  font-size: 0.8125rem;
}

.rr-subpage p {
  font-size: 0.9375rem;
  line-height: 1.25rem;
  color: #404042;
  font-family: "Noah-Bold", Helvetica, sans-serif;
  letter-spacing: 1.5px;
  word-spacing: 3px;
  margin-bottom: 20px;
  text-indent: 10px;
}

/* MEDIA QUERIES */

@media (max-width: 1023px) {
  .rr-subpage {
    margin-top: 64px;
  }
}

.max-width-wider {
  max-width: 1240px;
  text-align: center;
  margin-left: auto;
  margin-right: auto;
}


/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW5pbWF0ZS5jc3MvYW5pbWF0ZS5jc3MiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL3N0eWxlcy9tYWluLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL3N0eWxlcy9oZWxwZXJzL19taXhpbnMuc2NzcyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvc3R5bGVzL2Jhc2UvX2dsb2JhbC5zY3NzIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9zdHlsZXMvaGVscGVycy9fZnVuY3Rpb25zLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL3N0eWxlcy9iYXNlL19jb21tb24uc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvX3Jvb3Quc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvX3JlYm9vdC5zY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy92ZW5kb3IvX3Jmcy5zY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9taXhpbnMvX2hvdmVyLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL190eXBlLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL21peGlucy9fbGlzdHMuc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvX2ltYWdlcy5zY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9taXhpbnMvX2ltYWdlLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL21peGlucy9fYm9yZGVyLXJhZGl1cy5zY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9fZ3JpZC5zY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9taXhpbnMvX2dyaWQuc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvbWl4aW5zL19icmVha3BvaW50cy5zY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9taXhpbnMvX2dyaWQtZnJhbWV3b3JrLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL19mb3Jtcy5zY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9taXhpbnMvX3RyYW5zaXRpb24uc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvbWl4aW5zL19mb3Jtcy5zY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9taXhpbnMvX2dyYWRpZW50cy5zY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9fYnV0dG9ucy5zY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9taXhpbnMvX2J1dHRvbnMuc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvX3RyYW5zaXRpb25zLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL19pbnB1dC1ncm91cC5zY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9fY3VzdG9tLWZvcm1zLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL19wYWdpbmF0aW9uLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL21peGlucy9fcGFnaW5hdGlvbi5zY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9fYmFkZ2Uuc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvbWl4aW5zL19iYWRnZS5zY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9fYWxlcnQuc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvbWl4aW5zL19hbGVydC5zY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9fbWVkaWEuc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvX2xpc3QtZ3JvdXAuc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvbWl4aW5zL19saXN0LWdyb3VwLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL19jbG9zZS5zY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9fbW9kYWwuc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvdXRpbGl0aWVzL19hbGlnbi5zY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9taXhpbnMvX2JhY2tncm91bmQtdmFyaWFudC5zY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy91dGlsaXRpZXMvX2JhY2tncm91bmQuc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvdXRpbGl0aWVzL19ib3JkZXJzLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL21peGlucy9fY2xlYXJmaXguc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvdXRpbGl0aWVzL19kaXNwbGF5LnNjc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL3V0aWxpdGllcy9fZW1iZWQuc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvdXRpbGl0aWVzL19mbGV4LnNjc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL3V0aWxpdGllcy9fZmxvYXQuc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvdXRpbGl0aWVzL19vdmVyZmxvdy5zY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy91dGlsaXRpZXMvX3Bvc2l0aW9uLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL3V0aWxpdGllcy9fc2NyZWVucmVhZGVycy5zY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9taXhpbnMvX3NjcmVlbi1yZWFkZXIuc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvdXRpbGl0aWVzL19zaGFkb3dzLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL3V0aWxpdGllcy9fc2l6aW5nLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL3V0aWxpdGllcy9fc3RyZXRjaGVkLWxpbmsuc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvdXRpbGl0aWVzL19zcGFjaW5nLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL3V0aWxpdGllcy9fdGV4dC5zY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9taXhpbnMvX3RleHQtdHJ1bmNhdGUuc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvbWl4aW5zL190ZXh0LWVtcGhhc2lzLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL21peGlucy9fdGV4dC1oaWRlLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL3V0aWxpdGllcy9fdmlzaWJpbGl0eS5zY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9fcHJpbnQuc2NzcyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvc3R5bGVzL2NvbXBvbmVudHMvYm9vdHN0cmFwLWN1c3RvbS5zY3NzIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9zdHlsZXMvY29tcG9uZW50cy9iYWNrLXRvLXRvcC5zY3NzIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9zdHlsZXMvY29tcG9uZW50cy9jb21tZW50cy5zY3NzIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9zdHlsZXMvY29tcG9uZW50cy9zcGlubmVyLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL3N0eWxlcy9sYXlvdXQvX2hlYWRlci5zY3NzIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9zdHlsZXMvbGF5b3V0L19mb290ZXIuc2NzcyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvc3R5bGVzL2xheW91dC9fcHJpbWFyeS1uYXYuc2NzcyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvc3R5bGVzL2hlbHBlcnMvX2luY2x1ZGUtbWVkaWEuc2NzcyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvc3R5bGVzL2xheW91dC9faGVhZGVyLXNiYi5zY3NzIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9zdHlsZXMvbGF5b3V0L19oZWFkZXItc3Muc2NzcyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvc3R5bGVzL2xheW91dC9fZm9vdGVyLXNzLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL3N0eWxlcy9sYXlvdXQvX3ByaW1hcnktbmF2LXNzLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL3N0eWxlcy9sYXlvdXQvX2hlYWRlci1yci5zY3NzIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9zdHlsZXMvbGF5b3V0L19mb290ZXItcnIuc2NzcyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvc3R5bGVzL2xheW91dC9fcHJpbWFyeS1uYXYtcnIuc2NzcyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvc3R5bGVzL3BhZ2VzL2hvbWUtc3Muc2NzcyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvc3R5bGVzL3BhZ2VzL2hvbWUtc2JiLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL3N0eWxlcy9wYWdlcy9ob21lLXJyLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL3N0eWxlcy9wYWdlcy9zdWJwYWdlcy1zcy5zY3NzIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9zdHlsZXMvcGFnZXMvc3VicGFnZXMtc2JiLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL3N0eWxlcy9wYWdlcy9zdWJwYWdlcy1yci5zY3NzIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9zdHlsZXMvc3RkaW4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6InVGQUFBLGlCQUFnQjs7QUFFaEI7Ozs7OztHQU1FOztBQUVGO0VBQ0U7Ozs7O0lBS0UsdUVBQXNFO0lBQ3RFLCtEQUE4RDtJQUU5RCxnQ0FBK0I7R0FDakM7O0VBRUE7O0lBRUUsMEVBQXlFO0lBQ3pFLGtFQUFpRTtJQUVqRSxvQ0FBbUM7R0FDckM7O0VBRUE7SUFDRSwwRUFBeUU7SUFDekUsa0VBQWlFO0lBRWpFLG9DQUFtQztHQUNyQzs7RUFFQTtJQUVFLG1DQUFrQztHQUNwQztDQUNGOztBQUVBO0VBQ0U7Ozs7O0lBS0UsdUVBQXNFO0lBQ3RFLCtEQUE4RDtJQUU5RCxnQ0FBK0I7R0FDakM7O0VBRUE7O0lB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QU1uSkE7RUFDRTtFQUNBO0NOc0pGOztBTTNJQTs7RUFFRTtFQUNBO1VBQUE7RUFDQTtFQUNBO0VBQ0E7VUFBQTtDTjhJRjs7QU0zSUE7RUFDRTtFQUNBO0VBQ0E7Q044SUY7O0FNM0lBOzs7RUFHRTtFQUNBO0NOOElGOztBTTNJQTs7OztFQUlFO0NOOElGOztBTTNJQTtFQUNFO0NOOElGOztBTTNJQTtFQUNFO0VBQ0E7Q044SUY7O0FNM0lBO0VBQ0U7Q044SUY7O0FNM0lBOztFQUVFO0NOOElGOztBTTNJQTtFQ3BGSTtDUG1PSjs7QU10SUE7O0VBRUU7RUMvRkU7RURpR0Y7RUFDQTtDTnlJRjs7QU10SUE7RUFBTTtDTjBJTjs7QU16SUE7RUFBTTtDTjZJTjs7QU10SUE7RUFDRTtFQUNBO0VBQ0E7Q055SUY7O0FRclRFO0VGK0tFO0VBQ0E7Q04wSUo7O0FNaElBO0VBQ0U7RUFDQTtDTm1JRjs7QVEzVEU7O0VGMkxFO0VBQ0E7Q05xSUo7O0FNbElFO0VBQ0U7Q05xSUo7O0FNNUhBOzs7O0VBSUU7RUNySkU7Q1BxUko7O0FNNUhBO0VBRUU7RUFFQTtFQUVBO0NONEhGOztBTXBIQTtFQUVFO0NOc0hGOztBTTlHQTtFQUNFO0VBQ0E7Q05pSEY7O0FNOUdBO0VBR0U7RUFDQTtDTitHRjs7QU12R0E7RUFDRTtDTjBHRjs7QU12R0E7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0NOMEdGOztBTXZHQTtFQUdFO0NOd0dGOztBTWhHQTtFQUVFO0VBQ0E7Q05rR0Y7O0FNNUZBO0VBRUU7Q044RkY7O0FNdkZBO0VBQ0U7RUFDQTtDTjBGRjs7QU12RkE7Ozs7O0VBS0U7RUFDQTtFQ3RQRTtFRHdQRjtDTjBGRjs7QU12RkE7O0VBRUU7Q04wRkY7O0FNdkZBOztFQUVFO0NOMEZGOztBTXBGQTtFQUNFO0NOdUZGOztBTWhGQTs7OztFQUlFO0NObUZGOztBTTFFSTs7OztFQUNFO0NOZ0ZOOztBTTFFQTs7OztFQUlFO0VBQ0E7Q042RUY7O0FNMUVBOztFQUVFO0VBQ0E7Q042RUY7O0FNekVBOzs7O0VBU0U7Q051RUY7O0FNcEVBO0VBQ0U7RUFFQTtDTnNFRjs7QU1uRUE7RUFNRTtFQUVBO0VBQ0E7RUFDQTtDTmdFRjs7QU0zREE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VDbFNJO0VEb1NKO0VBQ0E7RUFDQTtDTjhERjs7QU0zREE7RUFDRTtDTjhERjs7QU0xREE7O0VBRUU7Q042REY7O0FNMURBO0VBS0U7RUFDQTtDTnlERjs7QU1sREE7RUFDRTtDTnFERjs7QU03Q0E7RUFDRTtFQUNBO0NOZ0RGOztBTXpDQTtFQUNFO0NONENGOztBTXpDQTtFQUNFO0VBQ0E7Q040Q0Y7O0FNekNBO0VBQ0U7Q040Q0Y7O0FNdkNBO0VBQ0U7Q04wQ0Y7O0FTcmdCQTs7Ozs7Ozs7Ozs7O0VBRUU7RUFFQTtFQUNBO0NUaWhCRjs7QVM3Z0JBOztFRmdITTtDUGthTjs7QVNqaEJBOztFRitHTTtDUHVhTjs7QVNyaEJBOztFRjhHTTtDUDRhTjs7QVN6aEJBOztFRjZHTTtDUGliTjs7QVM3aEJBOztFRjRHTTtDUHNiTjs7QVNqaUJBOztFRjJHTTtDUDJiTjs7QVNwaUJBO0VGeUdNO0VFdkdKO0NUdWlCRjs7QVNuaUJBO0VGbUdNO0VFakdKO0VBQ0E7Q1RzaUJGOztBU3BpQkE7RUY4Rk07RUU1Rko7RUFDQTtDVHVpQkY7O0FTcmlCQTtFRnlGTTtFRXZGSjtFQUNBO0NUd2lCRjs7QVN0aUJBO0VGb0ZNO0VFbEZKO0VBQ0E7Q1R5aUJGOztBU2ppQkE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtDVG9pQkY7O0FTNWhCQTs7RUZNSTtFRUhGO0NUK2hCRjs7QVM1aEJBOztFQUVFO0VBQ0E7Q1QraEJGOztBU3ZoQkE7RUMvRUU7RUFDQTtDVjBtQkY7O0FTdmhCQTtFQ3BGRTtFQUNBO0NWK21CRjs7QVN6aEJBO0VBQ0U7Q1Q0aEJGOztBUzFoQkU7RUFDRTtDVDZoQko7O0FTbmhCQTtFRmpDSTtFRW1DRjtDVHNoQkY7O0FTbGhCQTtFQUNFO0VGZUk7Q1B1Z0JOOztBU2xoQkE7RUFDRTtFRjdDRTtFRStDRjtDVHFoQkY7O0FTbmhCRTtFQUNFO0NUc2hCSjs7QVd6b0JBO0VDSUU7RUFHQTtDWnVvQkY7O0FXeG9CQTtFQUNFO0VBQ0E7RUFDQTtFRVhFO0VETUY7RUFHQTtDWmdwQkY7O0FXbG9CQTtFQUVFO0NYb29CRjs7QVdqb0JBO0VBQ0U7RUFDQTtDWG9vQkY7O0FXam9CQTtFSmtDSTtFSWhDRjtDWG9vQkY7O0FjdnFCRTtFQ0FBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7Q2YycUJGOztBZ0J4bkJJO0VGdkRGO0lDWUk7R2Z3cUJKO0NBQ0Y7O0FnQjluQkk7RUZ2REY7SUNZSTtHZjhxQko7Q0FDRjs7QWdCcG9CSTtFRnZERjtJQ1lJO0dmb3JCSjtDQUNGOztBZ0Ixb0JJO0VGdkRGO0lDWUk7R2YwckJKO0NBQ0Y7O0FjM3JCRTtFQ1pBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7Q2Yyc0JGOztBY3pyQkU7RUNKQTtFQUNBO0VBQ0E7RUFDQTtDZmlzQkY7O0FjMXJCRTtFQUNFO0VBQ0E7Q2Q2ckJKOztBYzNyQkk7O0VBRUU7RUFDQTtDZDhyQk47O0FpQi90QkU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFDRTtFQUNBO0VBQ0E7RUFDQTtDakJ1eUJKOztBaUJweEJNO0VBQ0U7RUFDQTtFQUNBO0NqQnV4QlI7O0FpQnJ4Qk07RUFDRTtFQUNBO0VBQ0E7Q2pCd3hCUjs7QWlCcHhCUTtFRkZOO0VBSUE7Q2Z1eEJGOztBaUJ6eEJRO0VGRk47RUFJQTtDZjR4QkY7O0FpQjl4QlE7RUZGTjtFQUlBO0NmaXlCRjs7QWlCbnlCUTtFRkZOO0VBSUE7Q2ZzeUJGOztBaUJ4eUJRO0VGRk47RUFJQTtDZjJ5QkY7O0FpQjd5QlE7RUZGTjtFQUlBO0NmZ3pCRjs7QWlCbHpCUTtFRkZOO0VBSUE7Q2ZxekJGOztBaUJ2ekJRO0VGRk47RUFJQTtDZjB6QkY7O0FpQjV6QlE7RUZGTjtFQUlBO0NmK3pCRjs7QWlCajBCUTtFRkZOO0VBSUE7Q2ZvMEJGOztBaUJ0MEJRO0VGRk47RUFJQTtDZnkwQkY7O0FpQjMwQlE7RUZGTjtFQUlBO0NmODBCRjs7QWlCMzBCTTtFQUF3QjtDakIrMEI5Qjs7QWlCNzBCTTtFQUF1QjtDakJpMUI3Qjs7QWlCOTBCUTtFQUF3QjtDakJrMUJoQzs7QWlCbDFCUTtFQUF3QjtDakJzMUJoQzs7QWlCdDFCUTtFQUF3QjtDakIwMUJoQzs7QWlCMTFCUTtFQUF3QjtDakI4MUJoQzs7QWlCOTFCUTtFQUF3QjtDakJrMkJoQzs7QWlCbDJCUTtFQUF3QjtDakJzMkJoQzs7QWlCdDJCUTtFQUF3QjtDakIwMkJoQzs7QWlCMTJCUTtFQUF3QjtDakI4MkJoQzs7QWlCOTJCUTtFQUF3QjtDakJrM0JoQzs7QWlCbDNCUTtFQUF3QjtDakJzM0JoQzs7QWlCdDNCUTtFQUF3QjtDakIwM0JoQzs7QWlCMTNCUTtFQUF3QjtDakI4M0JoQzs7QWlCOTNCUTtFQUF3QjtDakJrNEJoQzs7QWlCNTNCVTtFRlRSO0NmeTRCRjs7QWlCaDRCVTtFRlRSO0NmNjRCRjs7QWlCcDRCVTtFRlRSO0NmaTVCRjs7QWlCeDRCVTtFRlRSO0NmcTVCRjs7QWlCNTRCVTtFRlRSO0NmeTVCRjs7QWlCaDVCVTtFRlRSO0NmNjVCRjs7QWlCcDVCVTtFRlRSO0NmaTZCRjs7QWlCeDVCVTtFRlRSO0NmcTZCRjs7QWlCNTVCVTtFRlRSO0NmeTZCRjs7QWlCaDZCVTtFRlRSO0NmNjZCRjs7QWlCcDZCVTtFRlRSO0NmaTdCRjs7QWdCdDZCSTtFQzlCRTtJQUNFO0lBQ0E7SUFDQTtHakJ3OEJOOztFaUJ0OEJJO0lBQ0U7SUFDQTtJQUNBO0dqQnk4Qk47O0VpQnI4Qk07SUZGTjtJQUlBO0dmdzhCQTs7RWlCMThCTTtJRkZOO0lBSUE7R2Y2OEJBOztFaUIvOEJNO0lGRk47SUFJQTtHZms5QkE7O0VpQnA5Qk07SUZGTjtJQUlBO0dmdTlCQTs7RWlCejlCTTtJRkZOO0lBSUE7R2Y0OUJBOztFaUI5OUJNO0lGRk47SUFJQTtHZmkrQkE7O0VpQm4rQk07SUZGTjtJQUlBO0dmcytCQTs7RWlCeCtCTTtJRkZOO0lBSUE7R2YyK0JBOztFaUI3K0JNO0lGRk47SUFJQTtHZmcvQkE7O0VpQmwvQk07SUZGTjtJQUlBO0dmcS9CQTs7RWlCdi9CTTtJRkZOO0lBSUE7R2YwL0JBOztFaUI1L0JNO0lGRk47SUFJQTtHZisvQkE7O0VpQjUvQkk7SUFBd0I7R2pCZ2dDNUI7O0VpQjkvQkk7SUFBdUI7R2pCa2dDM0I7O0VpQi8vQk07SUFBd0I7R2pCbWdDOUI7O0VpQm5nQ007SUFBd0I7R2pCdWdDOUI7O0VpQnZnQ007SUFBd0I7R2pCMmdDOUI7O0VpQjNnQ007SUFBd0I7R2pCK2dDOUI7O0VpQi9nQ007SUFBd0I7R2pCbWhDOUI7O0VpQm5oQ007SUFBd0I7R2pCdWhDOUI7O0VpQnZoQ007SUFBd0I7R2pCMmhDOUI7O0VpQjNoQ007SUFBd0I7R2pCK2hDOUI7O0VpQi9oQ007SUFBd0I7R2pCbWlDOUI7O0VpQm5pQ007SUFBd0I7R2pCdWlDOUI7O0VpQnZpQ007SUFBd0I7R2pCMmlDOUI7O0VpQjNpQ007SUFBd0I7R2pCK2lDOUI7O0VpQi9pQ007SUFBd0I7R2pCbWpDOUI7O0VpQjdpQ1E7SUZUUjtHZjBqQ0E7O0VpQmpqQ1E7SUZUUjtHZjhqQ0E7O0VpQnJqQ1E7SUZUUjtHZmtrQ0E7O0VpQnpqQ1E7SUZUUjtHZnNrQ0E7O0VpQjdqQ1E7SUZUUjtHZjBrQ0E7O0VpQmprQ1E7SUZUUjtHZjhrQ0E7O0VpQnJrQ1E7SUZUUjtHZmtsQ0E7O0VpQnprQ1E7SUZUUjtHZnNsQ0E7O0VpQjdrQ1E7SUZUUjtHZjBsQ0E7O0VpQmpsQ1E7SUZUUjtHZjhsQ0E7O0VpQnJsQ1E7SUZUUjtHZmttQ0E7O0VpQnpsQ1E7SUZUUjtHZnNtQ0E7Q0FDRjs7QWdCNWxDSTtFQzlCRTtJQUNFO0lBQ0E7SUFDQTtHakI4bkNOOztFaUI1bkNJO0lBQ0U7SUFDQTtJQUNBO0dqQituQ047O0VpQjNuQ007SUZGTjtJQUlBO0dmOG5DQTs7RWlCaG9DTTtJRkZOO0lBSUE7R2Ztb0NBOztFaUJyb0NNO0lGRk47SUFJQTtHZndvQ0E7O0VpQjFvQ007SUZGTjtJQUlBO0dmNm9DQTs7RWlCL29DTTtJRkZOO0lBSUE7R2ZrcENBOztFaUJwcENNO0lGRk47SUFJQTtHZnVwQ0E7O0VpQnpwQ007SUZGTjtJQUlBO0dmNHBDQTs7RWlCOXBDTTtJRkZOO0lBSUE7R2ZpcUNBOztFaUJucUNNO0lGRk47SUFJQTtHZnNxQ0E7O0VpQnhxQ007SUZGTjtJQUlBO0dmMnFDQTs7RWlCN3FDTTtJRkZOO0lBSUE7R2ZnckNBOztFaUJsckNNO0lGRk47SUFJQTtHZnFyQ0E7O0VpQmxyQ0k7SUFBd0I7R2pCc3JDNUI7O0VpQnByQ0k7SUFBdUI7R2pCd3JDM0I7O0VpQnJyQ007SUFBd0I7R2pCeXJDOUI7O0VpQnpyQ007SUFBd0I7R2pCNnJDOUI7O0VpQjdyQ007SUFBd0I7R2pCaXNDOUI7O0VpQmpzQ007SUFBd0I7R2pCcXNDOUI7O0VpQnJzQ007SUFBd0I7R2pCeXNDOUI7O0VpQnpzQ007SUFBd0I7R2pCNnNDOUI7O0VpQjdzQ007SUFBd0I7R2pCaXRDOUI7O0VpQmp0Q007SUFBd0I7R2pCcXRDOUI7O0VpQnJ0Q007SUFBd0I7R2pCeXRDOUI7O0VpQnp0Q007SUFBd0I7R2pCNnRDOUI7O0VpQjd0Q007SUFBd0I7R2pCaXVDOUI7O0VpQmp1Q007SUFBd0I7R2pCcXVDOUI7O0VpQnJ1Q007SUFBd0I7R2pCeXVDOUI7O0VpQm51Q1E7SUZUUjtHZmd2Q0E7O0VpQnZ1Q1E7SUZUUjtHZm92Q0E7O0VpQjN1Q1E7SUZUUjtHZnd2Q0E7O0VpQi91Q1E7SUZUUjtHZjR2Q0E7O0VpQm52Q1E7SUZUUjtHZmd3Q0E7O0VpQnZ2Q1E7SUZUUjtHZm93Q0E7O0VpQjN2Q1E7SUZUUjtHZnd3Q0E7O0VpQi92Q1E7SUZUUjtHZjR3Q0E7O0VpQm53Q1E7SUZUUjtHZmd4Q0E7O0VpQnZ3Q1E7SUZUUjtHZm94Q0E7O0VpQjN3Q1E7SUZUUjtHZnd4Q0E7O0VpQi93Q1E7SUZUUjtHZjR4Q0E7Q0FDRjs7QWdCbHhDSTtFQzlCRTtJQUNFO0lBQ0E7SUFDQTtHakJvekNOOztFaUJsekNJO0lBQ0U7SUFDQTtJQUNBO0dqQnF6Q047O0VpQmp6Q007SUZGTjtJQUlBO0dmb3pDQTs7RWlCdHpDTTtJRkZOO0lBSUE7R2Z5ekNBOztFaUIzekNNO0lGRk47SUFJQTtHZjh6Q0E7O0VpQmgwQ007SUZGTjtJQUlBO0dmbTBDQTs7RWlCcjBDTTtJRkZOO0lBSUE7R2Z3MENBOztFaUIxMENNO0lGRk47SUFJQTtHZjYwQ0E7O0VpQi8wQ007SUZGTjtJQUlBO0dmazFDQTs7RWlCcDFDTTtJRkZOO0lBSUE7R2Z1MUNBOztFaUJ6MUNNO0lGRk47SUFJQTtHZjQxQ0E7O0VpQjkxQ007SUZGTjtJQUlBO0dmaTJDQTs7RWlCbjJDTTtJRkZOO0lBSUE7R2ZzMkNBOztFaUJ4MkNNO0lGRk47SUFJQTtHZjIyQ0E7O0VpQngyQ0k7SUFBd0I7R2pCNDJDNUI7O0VpQjEyQ0k7SUFBdUI7R2pCODJDM0I7O0VpQjMyQ007SUFBd0I7R2pCKzJDOUI7O0VpQi8yQ007SUFBd0I7R2pCbTNDOUI7O0VpQm4zQ007SUFBd0I7R2pCdTNDOUI7O0VpQnYzQ007SUFBd0I7R2pCMjNDOUI7O0VpQjMzQ007SUFBd0I7R2pCKzNDOUI7O0VpQi8zQ007SUFBd0I7R2pCbTRDOUI7O0VpQm40Q007SUFBd0I7R2pCdTRDOUI7O0VpQnY0Q007SUFBd0I7R2pCMjRDOUI7O0VpQjM0Q007SUFBd0I7R2pCKzRDOUI7O0VpQi80Q007SUFBd0I7R2pCbTVDOUI7O0VpQm41Q007SUFBd0I7R2pCdTVDOUI7O0VpQnY1Q007SUFBd0I7R2pCMjVDOUI7O0VpQjM1Q007SUFBd0I7R2pCKzVDOUI7O0VpQno1Q1E7SUZUUjtHZnM2Q0E7O0VpQjc1Q1E7SUZUUjtHZjA2Q0E7O0VpQmo2Q1E7SUZUUjtHZjg2Q0E7O0VpQnI2Q1E7SUZUUjtHZms3Q0E7O0VpQno2Q1E7SUZUUjtHZnM3Q0E7O0VpQjc2Q1E7SUZUUjtHZjA3Q0E7O0VpQmo3Q1E7SUZUUjtHZjg3Q0E7O0VpQnI3Q1E7SUZUUjtHZms4Q0E7O0VpQno3Q1E7SUZUUjtHZnM4Q0E7O0VpQjc3Q1E7SUZUUjtHZjA4Q0E7O0VpQmo4Q1E7SUZUUjtHZjg4Q0E7O0VpQnI4Q1E7SUZUUjtHZms5Q0E7Q0FDRjs7QWdCeDhDSTtFQzlCRTtJQUNFO0lBQ0E7SUFDQTtHakIwK0NOOztFaUJ4K0NJO0lBQ0U7SUFDQTtJQUNBO0dqQjIrQ047O0VpQnYrQ007SUZGTjtJQUlBO0dmMCtDQTs7RWlCNStDTTtJRkZOO0lBSUE7R2YrK0NBOztFaUJqL0NNO0lGRk47SUFJQTtHZm8vQ0E7O0VpQnQvQ007SUZGTjtJQUlBO0dmeS9DQTs7RWlCMy9DTTtJRkZOO0lBSUE7R2Y4L0NBOztFaUJoZ0RNO0lGRk47SUFJQTtHZm1nREE7O0VpQnJnRE07SUZGTjtJQUlBO0dmd2dEQTs7RWlCMWdETTtJRkZOO0lBSUE7R2Y2Z0RBOztFaUIvZ0RNO0lGRk47SUFJQTtHZmtoREE7O0VpQnBoRE07SUZGTjtJQUlBO0dmdWhEQTs7RWlCemhETTtJRkZOO0lBSUE7R2Y0aERBOztFaUI5aERNO0lGRk47SUFJQTtHZmlpREE7O0VpQjloREk7SUFBd0I7R2pCa2lENUI7O0VpQmhpREk7SUFBdUI7R2pCb2lEM0I7O0VpQmppRE07SUFBd0I7R2pCcWlEOUI7O0VpQnJpRE07SUFBd0I7R2pCeWlEOUI7O0VpQnppRE07SUFBd0I7R2pCNmlEOUI7O0VpQjdpRE07SUFBd0I7R2pCaWpEOUI7O0VpQmpqRE07SUFBd0I7R2pCcWpEOUI7O0VpQnJqRE07SUFBd0I7R2pCeWpEOUI7O0VpQnpqRE07SUFBd0I7R2pCNmpEOUI7O0VpQjdqRE07SUFBd0I7R2pCaWtEOUI7O0VpQmprRE07SUFBd0I7R2pCcWtEOUI7O0VpQnJrRE07SUFBd0I7R2pCeWtEOUI7O0VpQnprRE07SUFBd0I7R2pCNmtEOUI7O0VpQjdrRE07SUFBd0I7R2pCaWxEOUI7O0VpQmpsRE07SUFBd0I7R2pCcWxEOUI7O0VpQi9rRFE7SUZUUjtHZjRsREE7O0VpQm5sRFE7SUZUUjtHZmdtREE7O0VpQnZsRFE7SUZUUjtHZm9tREE7O0VpQjNsRFE7SUZUUjtHZndtREE7O0VpQi9sRFE7SUZUUjtHZjRtREE7O0VpQm5tRFE7SUZUUjtHZmduREE7O0VpQnZtRFE7SUZUUjtHZm9uREE7O0VpQjNtRFE7SUZUUjtHZnduREE7O0VpQi9tRFE7SUZUUjtHZjRuREE7O0VpQm5uRFE7SUZUUjtHZmdvREE7O0VpQnZuRFE7SUZUUjtHZm9vREE7O0VpQjNuRFE7SUZUUjtHZndvREE7Q0FDRjs7QWtCcHJEQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VYcUhJO0VXbEhKO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFTGJFO0VNQ0U7Q25Cb3NETjs7QW1CL3JESTtFRExKO0lDTU07R25CbXNESjtDQUNGOztBa0JyckRFO0VBQ0U7RUFDQTtDbEJ3ckRKOztBb0J4c0RFO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFLRTtDcEJ1c0ROOztBa0J6ckRFO0VBQ0U7RUFFQTtDbEIyckRKOztBa0I5ckRFO0VBQ0U7RUFFQTtDbEIyckRKOztBa0I5ckRFO0VBQ0U7RUFFQTtDbEIyckRKOztBa0I5ckRFO0VBQ0U7RUFFQTtDbEIyckRKOztBa0I5ckRFO0VBQ0U7RUFFQTtDbEIyckRKOztBa0JuckRFOztFQUVFO0VBRUE7Q2xCcXJESjs7QWtCaHJERTtFQU1FO0VBQ0E7Q2xCOHFESjs7QWtCenFEQTs7RUFFRTtFQUNBO0NsQjRxREY7O0FrQmxxREE7RUFDRTtFQUNBO0VBQ0E7RVhaRTtFV2NGO0NsQnFxREY7O0FrQmxxREE7RUFDRTtFQUNBO0VYb0NJO0VXbENKO0NsQnFxREY7O0FrQmxxREE7RUFDRTtFQUNBO0VYNkJJO0VXM0JKO0NsQnFxREY7O0FrQjVwREE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtDbEIrcERGOztBa0I3cERFOztFQUVFO0VBQ0E7Q2xCZ3FESjs7QWtCcHBEQTtFQUNFO0VBQ0E7RVhYSTtFV2FKO0VMdklFO0NiK3hESjs7QWtCcHBEQTtFQUNFO0VBQ0E7RVhuQkk7RVdxQko7RUwvSUU7Q2J1eURKOztBa0JscERFOztFQUVFO0NsQnFwREo7O0FrQmpwREE7RUFDRTtDbEJvcERGOztBa0I1b0RBO0VBQ0U7Q2xCK29ERjs7QWtCNW9EQTtFQUNFO0VBQ0E7Q2xCK29ERjs7QWtCdm9EQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0NsQjBvREY7O0FrQnhvREU7O0VBRUU7RUFDQTtDbEIyb0RKOztBa0Jsb0RBO0VBQ0U7RUFDQTtFQUNBO0NsQnFvREY7O0FrQmxvREE7RUFDRTtFQUNBO0VBQ0E7Q2xCcW9ERjs7QWtCbm9ERTtFQUNFO0NsQnNvREo7O0FrQmxvREE7RUFDRTtDbEJxb0RGOztBa0Jsb0RBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7Q2xCcW9ERjs7QWtCbG9ERTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0NsQnFvREo7O0FvQmgxREU7RUFDRTtFQUNBO0VBQ0E7RWJ3Q0E7RWF0Q0E7Q3BCbTFESjs7QW9CaDFERTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VibUZFO0VhakZGO0VBQ0E7RUFDQTtFUDNDQTtDYiszREo7O0FvQi8wREk7O0VBRUU7RUFHRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0NwQmcxRFI7O0FvQjcwRE07O0VBQ0U7RUFDQTtDcEJpMURSOztBb0I5MERNOzs7O0VBRUU7Q3BCbTFEUjs7QW9CNTBESTs7RUFHSTtFQUNBO0NwQjgwRFI7O0FvQngwREk7O0VBRUU7RUFHRTtFQUNBO0NwQnkwRFI7O0FvQnQwRE07O0VBQ0U7RUFDQTtDcEIwMERSOztBb0J2MERNOzs7O0VBRUU7Q3BCNDBEUjs7QW9CbjBETTs7OztFQUVFO0NwQncwRFI7O0FvQmgwRE07O0VBQ0U7Q3BCbzBEUjs7QW9CajBETTs7OztFQUVFO0NwQnMwRFI7O0FvQjl6RE07O0VBQ0U7Q3BCazBEUjs7QW9CaDBEUTs7RUFDRTtDcEJvMERWOztBb0JoMERNOzs7O0VBRUU7Q3BCcTBEUjs7QW9CajBEUTs7RUFDRTtFQ25KTjtDckJ5OURKOztBb0JoMERROztFQUNFO0NwQm8wRFY7O0FvQmowRFE7O0VBQ0U7Q3BCcTBEVjs7QW9CM3pETTs7RUFDRTtDcEIrekRSOztBb0I1ekRNOzs7O0VBRUU7Q3BCaTBEUjs7QW9CN3pEUTs7RUFDRTtFQUNBO0NwQmkwRFY7O0FvQjk5REU7RUFDRTtFQUNBO0VBQ0E7RWJ3Q0E7RWF0Q0E7Q3BCaStESjs7QW9COTlERTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VibUZFO0VhakZGO0VBQ0E7RUFDQTtFUDNDQTtDYjZnRUo7O0FvQjc5REk7O0VBRUU7RUFHRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0NwQjg5RFI7O0FvQjM5RE07O0VBQ0U7RUFDQTtDcEIrOURSOztBb0I1OURNOzs7O0VBRUU7Q3BCaStEUjs7QW9CMTlESTs7RUFHSTtFQUNBO0NwQjQ5RFI7O0FvQnQ5REk7O0VBRUU7RUFHRTtFQUNBO0NwQnU5RFI7O0FvQnA5RE07O0VBQ0U7RUFDQTtDcEJ3OURSOztBb0JyOURNOzs7O0VBRUU7Q3BCMDlEUjs7QW9CajlETTs7OztFQUVFO0NwQnM5RFI7O0FvQjk4RE07O0VBQ0U7Q3BCazlEUjs7QW9CLzhETTs7OztFQUVFO0NwQm85RFI7O0FvQjU4RE07O0VBQ0U7Q3BCZzlEUjs7QW9COThEUTs7RUFDRTtDcEJrOURWOztBb0I5OERNOzs7O0VBRUU7Q3BCbTlEUjs7QW9CLzhEUTs7RUFDRTtFQ25KTjtDckJ1bUVKOztBb0I5OERROztFQUNFO0NwQms5RFY7O0FvQi84RFE7O0VBQ0U7Q3BCbTlEVjs7QW9CejhETTs7RUFDRTtDcEI2OERSOztBb0IxOERNOzs7O0VBRUU7Q3BCKzhEUjs7QW9CMzhEUTs7RUFDRTtFQUNBO0NwQis4RFY7O0FrQng0REE7RUFDRTtFQUNBO0VBQ0E7Q2xCMjRERjs7QWtCdDRERTtFQUNFO0NsQnk0REo7O0FnQnZsRUk7RUVtTkE7SUFDRTtJQUNBO0lBQ0E7SUFDQTtHbEJ3NERKOztFa0JwNERFO0lBQ0U7SUFDQTtJQUNBO0lBQ0E7SUFDQTtHbEJ1NERKOztFa0JuNERFO0lBQ0U7SUFDQTtJQUNBO0dsQnM0REo7O0VrQmw0REU7SUFDRTtHbEJxNERKOztFa0JsNERFOztJQUVFO0dsQnE0REo7O0VrQmg0REU7SUFDRTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0dsQm00REo7O0VrQmo0REU7SUFDRTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0dsQm80REo7O0VrQmo0REU7SUFDRTtJQUNBO0dsQm80REo7O0VrQmw0REU7SUFDRTtHbEJxNERKO0NBQ0Y7O0FzQnRzRUE7RUFDRTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7S0FBQTtNQUFBO1VBQUE7RUFDQTtFQUNBO0VDc0ZBO0VoQjBCSTtFZ0J4Qko7RVZsR0U7RU1DRTtDbkJzdEVOOztBbUJqdEVJO0VHTEo7SUhNTTtHbkJxdEVKO0NBQ0Y7O0FRdHRFRTtFY1FFO0VBQ0E7Q3RCa3RFSjs7QXNCL3NFRTs7RUFFRTtFQUNBO0N0Qmt0RUo7O0FzQjlzRUU7O0VBRUU7Q3RCaXRFSjs7QXNCbHNFQTs7RUFFRTtDdEJxc0VGOztBc0I1ckVFO0VDckRBO0VGQUU7RUVFRjtDdkJxdkVGOztBUWp2RUU7RWVBRTtFRk5BO0VFUUE7Q3ZCcXZFSjs7QXVCbHZFRTs7RUFNSTtDdkJpdkVOOztBdUI1dUVFOztFQUVFO0VBQ0E7RUFDQTtDdkIrdUVKOztBdUJ4dUVFOzs7RUFHRTtFQUNBO0VBSUE7Q3ZCd3VFSjs7QXVCdHVFSTs7O0VBS0k7Q3ZCdXVFUjs7QXNCbHVFRTtFQ3JEQTtFRkFFO0VFRUY7Q3ZCMnhFRjs7QVF2eEVFO0VlQUU7RUZOQTtFRVFBO0N2QjJ4RUo7O0F1Qnh4RUU7O0VBTUk7Q3ZCdXhFTjs7QXVCbHhFRTs7RUFFRTtFQUNBO0VBQ0E7Q3ZCcXhFSjs7QXVCOXdFRTs7O0VBR0U7RUFDQTtFQUlBO0N2Qjh3RUo7O0F1QjV3RUk7OztFQUtJO0N2QjZ3RVI7O0FzQnh3RUU7RUNyREE7RUZBRTtFRUVGO0N2QmkwRUY7O0FRN3pFRTtFZUFFO0VGTkE7RUVRQTtDdkJpMEVKOztBdUI5ekVFOztFQU1JO0N2QjZ6RU47O0F1Qnh6RUU7O0VBRUU7RUFDQTtFQUNBO0N2QjJ6RUo7O0F1QnB6RUU7OztFQUdFO0VBQ0E7RUFJQTtDdkJvekVKOztBdUJsekVJOzs7RUFLSTtDdkJtekVSOztBc0I5eUVFO0VDckRBO0VGQUU7RUVFRjtDdkJ1MkVGOztBUW4yRUU7RWVBRTtFRk5BO0VFUUE7Q3ZCdTJFSjs7QXVCcDJFRTs7RUFNSTtDdkJtMkVOOztBdUI5MUVFOztFQUVFO0VBQ0E7RUFDQTtDdkJpMkVKOztBdUIxMUVFOzs7RUFHRTtFQUNBO0VBSUE7Q3ZCMDFFSjs7QXVCeDFFSTs7O0VBS0k7Q3ZCeTFFUjs7QXNCcDFFRTtFQ3JEQTtFRkFFO0VFRUY7Q3ZCNjRFRjs7QVF6NEVFO0VlQUU7RUZOQTtFRVFBO0N2QjY0RUo7O0F1QjE0RUU7O0VBTUk7Q3ZCeTRFTjs7QXVCcDRFRTs7RUFFRTtFQUNBO0VBQ0E7Q3ZCdTRFSjs7QXVCaDRFRTs7O0VBR0U7RUFDQTtFQUlBO0N2Qmc0RUo7O0F1QjkzRUk7OztFQUtJO0N2QiszRVI7O0FzQjEzRUU7RUNyREE7RUZBRTtFRUVGO0N2Qm03RUY7O0FRLzZFRTtFZUFFO0VGTkE7RUVRQTtDdkJtN0VKOztBdUJoN0VFOztFQU1JO0N2Qis2RU47O0F1QjE2RUU7O0VBRUU7RUFDQTtFQUNBO0N2QjY2RUo7O0F1QnQ2RUU7OztFQUdFO0VBQ0E7RUFJQTtDdkJzNkVKOztBdUJwNkVJOzs7RUFLSTtDdkJxNkVSOztBc0JoNkVFO0VDckRBO0VGQUU7RUVFRjtDdkJ5OUVGOztBUXI5RUU7RWVBRTtFRk5BO0VFUUE7Q3ZCeTlFSjs7QXVCdDlFRTs7RUFNSTtDdkJxOUVOOztBdUJoOUVFOztFQUVFO0VBQ0E7RUFDQTtDdkJtOUVKOztBdUI1OEVFOzs7RUFHRTtFQUNBO0VBSUE7Q3ZCNDhFSjs7QXVCMThFSTs7O0VBS0k7Q3ZCMjhFUjs7QXNCdDhFRTtFQ3JEQTtFRkFFO0VFRUY7Q3ZCKy9FRjs7QVEzL0VFO0VlQUU7RUZOQTtFRVFBO0N2QisvRUo7O0F1QjUvRUU7O0VBTUk7Q3ZCMi9FTjs7QXVCdC9FRTs7RUFFRTtFQUNBO0VBQ0E7Q3ZCeS9FSjs7QXVCbC9FRTs7O0VBR0U7RUFDQTtFQUlBO0N2QmsvRUo7O0F1QmgvRUk7OztFQUtJO0N2QmkvRVI7O0FzQnQrRUU7RUNKQTtFQUNBO0N2QjgrRUY7O0FRaGlGRTtFZXFERTtFQUNBO0VBQ0E7Q3ZCKytFSjs7QXVCNStFRTs7RUFFRTtDdkIrK0VKOztBdUI1K0VFOztFQUVFO0VBQ0E7Q3ZCKytFSjs7QXVCNStFRTs7O0VBR0U7RUFDQTtFQUNBO0N2QisrRUo7O0F1QjcrRUk7OztFQUtJO0N2QjgrRVI7O0FzQjFnRkU7RUNKQTtFQUNBO0N2QmtoRkY7O0FRcGtGRTtFZXFERTtFQUNBO0VBQ0E7Q3ZCbWhGSjs7QXVCaGhGRTs7RUFFRTtDdkJtaEZKOztBdUJoaEZFOztFQUVFO0VBQ0E7Q3ZCbWhGSjs7QXVCaGhGRTs7O0VBR0U7RUFDQTtFQUNBO0N2Qm1oRko7O0F1QmpoRkk7OztFQUtJO0N2QmtoRlI7O0FzQjlpRkU7RUNKQTtFQUNBO0N2QnNqRkY7O0FReG1GRTtFZXFERTtFQUNBO0VBQ0E7Q3ZCdWpGSjs7QXVCcGpGRTs7RUFFRTtDdkJ1akZKOztBdUJwakZFOztFQUVFO0VBQ0E7Q3ZCdWpGSjs7QXVCcGpGRTs7O0VBR0U7RUFDQTtFQUNBO0N2QnVqRko7O0F1QnJqRkk7OztFQUtJO0N2QnNqRlI7O0FzQmxsRkU7RUNKQTtFQUNBO0N2QjBsRkY7O0FRNW9GRTtFZXFERTtFQUNBO0VBQ0E7Q3ZCMmxGSjs7QXVCeGxGRTs7RUFFRTtDdkIybEZKOztBdUJ4bEZFOztFQUVFO0VBQ0E7Q3ZCMmxGSjs7QXVCeGxGRTs7O0VBR0U7RUFDQTtFQUNBO0N2QjJsRko7O0F1QnpsRkk7OztFQUtJO0N2QjBsRlI7O0FzQnRuRkU7RUNKQTtFQUNBO0N2QjhuRkY7O0FRaHJGRTtFZXFERTtFQUNBO0VBQ0E7Q3ZCK25GSjs7QXVCNW5GRTs7RUFFRTtDdkIrbkZKOztBdUI1bkZFOztFQUVFO0VBQ0E7Q3ZCK25GSjs7QXVCNW5GRTs7O0VBR0U7RUFDQTtFQUNBO0N2QituRko7O0F1QjduRkk7OztFQUtJO0N2QjhuRlI7O0FzQjFwRkU7RUNKQTtFQUNBO0N2QmtxRkY7O0FRcHRGRTtFZXFERTtFQUNBO0VBQ0E7Q3ZCbXFGSjs7QXVCaHFGRTs7RUFFRTtDdkJtcUZKOztBdUJocUZFOztFQUVFO0VBQ0E7Q3ZCbXFGSjs7QXVCaHFGRTs7O0VBR0U7RUFDQTtFQUNBO0N2Qm1xRko7O0F1QmpxRkk7OztFQUtJO0N2QmtxRlI7O0FzQjlyRkU7RUNKQTtFQUNBO0N2QnNzRkY7O0FReHZGRTtFZXFERTtFQUNBO0VBQ0E7Q3ZCdXNGSjs7QXVCcHNGRTs7RUFFRTtDdkJ1c0ZKOztBdUJwc0ZFOztFQUVFO0VBQ0E7Q3ZCdXNGSjs7QXVCcHNGRTs7O0VBR0U7RUFDQTtFQUNBO0N2QnVzRko7O0F1QnJzRkk7OztFQUtJO0N2QnNzRlI7O0FzQmx1RkU7RUNKQTtFQUNBO0N2QjB1RkY7O0FRNXhGRTtFZXFERTtFQUNBO0VBQ0E7Q3ZCMnVGSjs7QXVCeHVGRTs7RUFFRTtDdkIydUZKOztBdUJ4dUZFOztFQUVFO0VBQ0E7Q3ZCMnVGSjs7QXVCeHVGRTs7O0VBR0U7RUFDQTtFQUNBO0N2QjJ1Rko7O0F1Qnp1Rkk7OztFQUtJO0N2QjB1RlI7O0FzQjN2RkE7RUFDRTtFQUNBO0VBQ0E7Q3RCOHZGRjs7QVFqMEZFO0Vjc0VFO0VBQ0E7Q3RCK3ZGSjs7QXNCNXZGRTs7RUFFRTtFQUNBO0N0Qit2Rko7O0FzQjV2RkU7O0VBRUU7RUFDQTtDdEIrdkZKOztBc0JwdkZBO0VDTEU7RWhCMEJJO0VnQnhCSjtFVmxHRTtDYmcyRko7O0FzQnZ2RkE7RUNURTtFaEIwQkk7RWdCeEJKO0VWbEdFO0NidTJGSjs7QXNCcnZGQTtFQUNFO0VBQ0E7Q3RCd3ZGRjs7QXNCcnZGRTtFQUNFO0N0Qnd2Rko7O0FzQmh2RkU7OztFQUNFO0N0QnF2Rko7O0F3QjMzRkE7RUxNTTtDbkJ5M0ZOOztBbUJwM0ZJO0VLWEo7SUxZTTtHbkJ3M0ZKO0NBQ0Y7O0F3Qmw0RkU7RUFDRTtDeEJxNEZKOztBd0JoNEZFO0VBQ0U7Q3hCbTRGSjs7QXdCLzNGQTtFQUNFO0VBQ0E7RUFDQTtFTFhJO0NuQjg0Rk47O0FtQno0Rkk7RUtHSjtJTEZNO0duQjY0Rko7Q0FDRjs7QXlCcDVGQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7Q3pCdTVGRjs7QXlCcjVGRTs7OztFQUlFO0VBQ0E7RUFHQTtFQUNBO0N6QnM1Rko7O0F5QnA1Rkk7Ozs7Ozs7Ozs7OztFQUdFO0N6Qmc2Rk47O0F5QjM1RkU7OztFQUdFO0N6Qjg1Rko7O0F5QjE1RkU7RUFDRTtDekI2NUZKOztBeUJ4NUZJOztFWnhCQTtFQUNBO0NicTdGSjs7QXlCNzVGSTs7RVpYQTtFQUNBO0NiNjZGSjs7QXlCOTVGRTtFQUNFO0VBQ0E7Q3pCaTZGSjs7QXlCLzVGSTs7RVpsQ0E7RUFDQTtDYnM4Rko7O0F5Qm42Rkk7RVp0QkE7RUFDQTtDYjY3Rko7O0F5Qjc1RkE7O0VBRUU7Q3pCZzZGRjs7QXlCMzVGRTs7RUFDRTtFQUNBO0N6Qis1Rko7O0F5Qjc1Rkk7O0VBQ0U7Q3pCaTZGTjs7QXlCNzVGRTs7Ozs7Ozs7RUFJRTtDekJvNkZKOztBeUJoNkZBO0VBQXVCO0N6Qm82RnZCOztBeUJuNkZBO0VBQXNCO0N6QnU2RnRCOztBeUIvNUZBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RWxCc0JJO0VrQnBCSjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFWjVHRTtDYitnR0o7O0F5Qi81RkU7O0VBRUU7Q3pCazZGSjs7QXlCeDVGQTs7RUFFRTtDekIyNUZGOztBeUJ4NUZBOzs7Ozs7RUFNRTtFbEJiSTtFa0JlSjtFWnpJRTtDYnFpR0o7O0F5Qng1RkE7O0VBRUU7Q3pCMjVGRjs7QXlCeDVGQTs7Ozs7O0VBTUU7RWxCOUJJO0VrQmdDSjtFWjFKRTtDYnNqR0o7O0F5Qng1RkE7O0VBRUU7Q3pCMjVGRjs7QXlCaDVGQTs7Ozs7O0VaM0pJO0VBQ0E7Q2JvakdKOztBeUJqNUZBOzs7Ozs7RVp0Skk7RUFDQTtDYmdqR0o7O0EwQjNrR0E7RUFDRTtFQUNBO0VBQ0E7RUFDQTtDMUI4a0dGOztBMEIza0dBO0VBQ0U7RUFDQTtDMUI4a0dGOztBMEIza0dBO0VBQ0U7RUFDQTtFQUNBO0MxQjhrR0Y7O0EwQjVrR0U7RUFDRTtFQUNBO0VMdEJBO0NyQnNtR0o7O0EwQjNrR0U7RUFLSTtDMUIwa0dOOztBMEJ0a0dFO0VBQ0U7QzFCeWtHSjs7QTBCdGtHRTtFQUNFO0VBQ0E7RUFDQTtDMUJ5a0dKOztBMEJwa0dJO0VBQ0U7QzFCdWtHTjs7QTBCcmtHTTtFQUNFO0MxQndrR1I7O0EwQjlqR0E7RUFDRTtFQUNBO0VBQ0E7QzFCaWtHRjs7QTBCOWpHRTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0MxQmlrR0o7O0EwQjVqR0U7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0MxQitqR0o7O0EwQnJqR0U7RWJ0R0U7Q2IrcEdKOztBMEJwakdJO0VBQ0U7QzFCdWpHTjs7QTBCbGpHSTtFQUNFO0VMakhGO0NyQnVxR0o7O0EwQmxqR0k7RUFDRTtDMUJxakdOOztBMEJoakdJO0VBQ0U7QzFCbWpHTjs7QTBCampHSTtFQUNFO0MxQm9qR047O0EwQjFpR0U7RUFFRTtDMUI0aUdKOztBMEJ4aUdJO0VBQ0U7QzFCMmlHTjs7QTBCdGlHSTtFQUNFO0MxQnlpR047O0EwQi9oR0E7RUFDRTtDMUJraUdGOztBMEIvaEdJO0VBQ0U7RUFDQTtFQUNBO0VBRUE7QzFCaWlHTjs7QTBCOWhHSTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFUG5MQTtDbkJvdEdOOztBbUIvc0dJO0VPdUtBO0lQdEtFO0duQm10R0o7Q0FDRjs7QTBCamlHSTtFQUNFO0VBQ0E7QzFCb2lHTjs7QTBCL2hHSTtFQUNFO0MxQmtpR047O0EwQnRoR0E7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFbkJ4Rkk7RW1CMkZKO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0ViM05FO0VhOE5GO0tBQUE7VUFBQTtDMUJ1aEdGOztBMEJyaEdFO0VBQ0U7RUFDQTtFQUlFO0MxQnFoR047O0EwQmxoR0k7RUFNRTtFQUNBO0MxQmdoR047O0EwQjVnR0U7O0VBRUU7RUFDQTtFQUNBO0MxQitnR0o7O0EwQjVnR0U7RUFDRTtFQUNBO0MxQitnR0o7O0EwQjNnR0U7RUFDRTtDMUI4Z0dKOztBMEIxZ0dBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RW5CaEpJO0NQOHBHTjs7QTBCMWdHQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VuQnhKSTtDUHNxR047O0EwQnJnR0E7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0MxQndnR0Y7O0EwQnJnR0E7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QzFCd2dHRjs7QTBCdGdHRTtFQUNFO0VBQ0E7QzFCeWdHSjs7QTBCdGdHRTtFQUNFO0MxQnlnR0o7O0EwQnJnR0k7RUFDRTtDMUJ3Z0dOOztBMEJwZ0dFO0VBQ0U7QzFCdWdHSjs7QTBCbmdHQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFYjVVRTtDYmsxR0o7O0EwQmxnR0U7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VMMVZBO0VLNFZBO0ViN1ZBO0NibTJHSjs7QTBCMy9GQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7S0FBQTtVQUFBO0MxQjgvRkY7O0EwQjUvRkU7RUFDRTtDMUIrL0ZKOztBMEIzL0ZJO0VBQTBCO0MxQisvRjlCOztBMEI5L0ZJO0VBQTBCO0MxQmtnRzlCOztBMEJqZ0dJO0VBQTBCO0MxQnFnRzlCOztBMEJsZ0dFO0VBQ0U7QzFCcWdHSjs7QTBCbGdHRTtFQUNFO0VBQ0E7RUFDQTtFTC9YQTtFS2lZQTtFYmxZQTtFTUNFO0VPcVlGO1VBQUE7QzFCb2dHSjs7QW1CcDRHSTtFT3VYRjtJUHRYSTtHbkJ3NEdKO0NBQ0Y7O0EwQnhnR0k7RUx2WUE7Q3JCbTVHSjs7QTBCdmdHRTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFYm5aQTtDYjg1R0o7O0EwQnRnR0U7RUFDRTtFQUNBO0VMelpBO0VLMlpBO0ViNVpBO0VNQ0U7RU8rWkY7T0FBQTtDMUJ3Z0dKOztBbUJsNkdJO0VPa1pGO0lQalpJO0duQnM2R0o7Q0FDRjs7QTBCNWdHSTtFTGphQTtDckJpN0dKOztBMEIzZ0dFO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0ViN2FBO0NiNDdHSjs7QTBCMWdHRTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUx0YkE7RUt3YkE7RWJ6YkE7RU1DRTtFTzRiRjtDMUI0Z0dKOztBbUJuOEdJO0VPNGFGO0lQM2FJO0duQnU4R0o7Q0FDRjs7QTBCaGhHSTtFTDliQTtDckJrOUdKOztBMEIvZ0dFO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QzFCa2hHSjs7QTBCOWdHRTtFQUNFO0ViaGRBO0NiaytHSjs7QTBCOWdHRTtFQUNFO0VBQ0E7RWJ0ZEE7Q2J3K0dKOztBMEI3Z0dJO0VBQ0U7QzFCZ2hHTjs7QTBCN2dHSTtFQUNFO0MxQmdoR047O0EwQjdnR0k7RUFDRTtDMUJnaEdOOztBMEI3Z0dJO0VBQ0U7QzFCZ2hHTjs7QTBCN2dHSTtFQUNFO0MxQmdoR047O0EwQjNnR0E7OztFUGhmTTtDbkJpZ0hOOztBbUI1L0dJO0VPMmVKOzs7SVAxZU07R25Ca2dISjtDQUNGOztBMkIvZ0hBO0VBQ0U7RWpCR0E7RUFDQTtFR0FFO0NiaWhISjs7QTJCaGhIQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QzNCbWhIRjs7QTJCamhIRTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QzNCb2hISjs7QTJCamhIRTtFQUNFO0VBQ0E7RUFDQTtDM0JvaEhKOztBMkI5Z0hJO0VBQ0U7RWRDRjtFQUNBO0NiaWhISjs7QTJCOWdISTtFZGxCQTtFQUNBO0Nib2lISjs7QTJCOWdIRTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0MzQmloSEo7O0EyQjlnSEU7RUFDRTtFQUNBO0VBRUE7RUFDQTtFQUNBO0MzQmdoSEo7O0E0QnRrSEU7RUFDRTtFckIySEU7RXFCekhGO0M1QnlrSEo7O0E0QnBrSE07RWZ3QkY7RUFDQTtDYmdqSEo7O0E0QnBrSE07RWZLRjtFQUNBO0NibWtISjs7QTRCdGxIRTtFQUNFO0VyQjJIRTtFcUJ6SEY7QzVCeWxISjs7QTRCcGxITTtFZndCRjtFQUNBO0NiZ2tISjs7QTRCcGxITTtFZktGO0VBQ0E7Q2JtbEhKOztBNkJwbUhBO0VBQ0U7RUFDQTtFdEJpRUU7RXNCL0RGO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RWhCUkU7RU1DRTtDbkJnbkhOOztBbUIzbUhJO0VVTko7SVZPTTtHbkIrbUhKO0NBQ0Y7O0FRNW1IRTs7RXFCR0k7QzdCOG1ITjs7QTZCem1IRTtFQUNFO0M3QjRtSEo7O0E2QnZtSEE7RUFDRTtFQUNBO0M3QjBtSEY7O0E2Qm5tSEE7RUFDRTtFQUNBO0VoQnBDRTtDYjJvSEo7O0E2QjlsSEU7RUNqREE7RUFDQTtDOUJtcEhGOztBUXJvSEU7O0VzQlZJO0VBQ0E7QzlCb3BITjs7QThCanBISTs7RUFFRTtFQUNBO0M5Qm9wSE47O0E2Qi9tSEU7RUNqREE7RUFDQTtDOUJvcUhGOztBUXRwSEU7O0VzQlZJO0VBQ0E7QzlCcXFITjs7QThCbHFISTs7RUFFRTtFQUNBO0M5QnFxSE47O0E2QmhvSEU7RUNqREE7RUFDQTtDOUJxckhGOztBUXZxSEU7O0VzQlZJO0VBQ0E7QzlCc3JITjs7QThCbnJISTs7RUFFRTtFQUNBO0M5QnNySE47O0E2QmpwSEU7RUNqREE7RUFDQTtDOUJzc0hGOztBUXhySEU7O0VzQlZJO0VBQ0E7QzlCdXNITjs7QThCcHNISTs7RUFFRTtFQUNBO0M5QnVzSE47O0E2QmxxSEU7RUNqREE7RUFDQTtDOUJ1dEhGOztBUXpzSEU7O0VzQlZJO0VBQ0E7QzlCd3RITjs7QThCcnRISTs7RUFFRTtFQUNBO0M5Qnd0SE47O0E2Qm5ySEU7RUNqREE7RUFDQTtDOUJ3dUhGOztBUTF0SEU7O0VzQlZJO0VBQ0E7QzlCeXVITjs7QThCdHVISTs7RUFFRTtFQUNBO0M5Qnl1SE47O0E2QnBzSEU7RUNqREE7RUFDQTtDOUJ5dkhGOztBUTN1SEU7O0VzQlZJO0VBQ0E7QzlCMHZITjs7QThCdnZISTs7RUFFRTtFQUNBO0M5QjB2SE47O0E2QnJ0SEU7RUNqREE7RUFDQTtDOUIwd0hGOztBUTV2SEU7O0VzQlZJO0VBQ0E7QzlCMndITjs7QThCeHdISTs7RUFFRTtFQUNBO0M5QjJ3SE47O0ErQnB4SEE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFbEJIRTtDYjJ4SEo7O0ErQm54SEE7RUFFRTtDL0JxeEhGOztBK0JqeEhBO0VBQ0U7Qy9Cb3hIRjs7QStCNXdIQTtFQUNFO0MvQit3SEY7O0ErQjV3SEU7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0MvQit3SEo7O0ErQnJ3SEU7RUM5Q0E7RVhLRTtFV0hGO0NoQ3V6SEY7O0FnQ3J6SEU7RUFDRTtDaEN3ekhKOztBZ0NyekhFO0VBQ0U7Q2hDd3pISjs7QStCbnhIRTtFQzlDQTtFWEtFO0VXSEY7Q2hDcTBIRjs7QWdDbjBIRTtFQUNFO0NoQ3MwSEo7O0FnQ24wSEU7RUFDRTtDaENzMEhKOztBK0JqeUhFO0VDOUNBO0VYS0U7RVdIRjtDaENtMUhGOztBZ0NqMUhFO0VBQ0U7Q2hDbzFISjs7QWdDajFIRTtFQUNFO0NoQ28xSEo7O0ErQi95SEU7RUM5Q0E7RVhLRTtFV0hGO0NoQ2kySEY7O0FnQy8xSEU7RUFDRTtDaENrMkhKOztBZ0MvMUhFO0VBQ0U7Q2hDazJISjs7QStCN3pIRTtFQzlDQTtFWEtFO0VXSEY7Q2hDKzJIRjs7QWdDNzJIRTtFQUNFO0NoQ2czSEo7O0FnQzcySEU7RUFDRTtDaENnM0hKOztBK0IzMEhFO0VDOUNBO0VYS0U7RVdIRjtDaEM2M0hGOztBZ0MzM0hFO0VBQ0U7Q2hDODNISjs7QWdDMzNIRTtFQUNFO0NoQzgzSEo7O0ErQnoxSEU7RUM5Q0E7RVhLRTtFV0hGO0NoQzI0SEY7O0FnQ3o0SEU7RUFDRTtDaEM0NEhKOztBZ0N6NEhFO0VBQ0U7Q2hDNDRISjs7QStCdjJIRTtFQzlDQTtFWEtFO0VXSEY7Q2hDeTVIRjs7QWdDdjVIRTtFQUNFO0NoQzA1SEo7O0FnQ3Y1SEU7RUFDRTtDaEMwNUhKOztBaUNwNkhBO0VBQ0U7RUFDQTtDakN1NkhGOztBaUNwNkhBO0VBQ0U7Q2pDdTZIRjs7QWtDejZIQTtFQUNFO0VBQ0E7RUFHQTtFQUNBO0NsQzA2SEY7O0FrQ2o2SEE7RUFDRTtFQUNBO0VBQ0E7Q2xDbzZIRjs7QVExNkhFOztFMEJVRTtFQUNBO0VBQ0E7RUFDQTtDbENxNkhKOztBa0NsNkhFO0VBQ0U7RUFDQTtDbENxNkhKOztBa0M1NUhBO0VBQ0U7RUFDQTtFQUNBO0VBRUE7RUFFQTtFQUNBO0NsQzY1SEY7O0FrQzM1SEU7RXJCdkNFO0VBQ0E7Q2JzOEhKOztBa0M1NUhFO0VBQ0U7RXJCOUJBO0VBQ0E7Q2I4N0hKOztBa0M3NUhFOztFQUVFO0VBQ0E7RUFDQTtDbENnNkhKOztBa0M1NUhFO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7Q2xDKzVISjs7QWtDbDVISTtFQUNFO0NsQ3E1SE47O0FrQ241SE07RUFDRTtFQUNBO0NsQ3M1SFI7O0FrQ3A1SFE7RXJCM0RKO0VBQ0E7RUFZQTtDYnc4SEo7O0FrQ3I1SFE7RUFDRTtFckIvRU47RUFDQTtFQXNDQTtDYm04SEo7O0FnQm44SEk7RWtCMkJBO0lBQ0U7R2xDNDZISjs7RWtDMTZISTtJQUNFO0lBQ0E7R2xDNjZITjs7RWtDMzZITTtJckIzREo7SUFDQTtJQVlBO0diKzlIRjs7RWtDNTZITTtJQUNFO0lyQi9FTjtJQUNBO0lBc0NBO0diMDlIRjtDQUNGOztBZ0IzOUhJO0VrQjJCQTtJQUNFO0dsQ284SEo7O0VrQ2w4SEk7SUFDRTtJQUNBO0dsQ3E4SE47O0VrQ244SE07SXJCM0RKO0lBQ0E7SUFZQTtHYnUvSEY7O0VrQ3A4SE07SUFDRTtJckIvRU47SUFDQTtJQXNDQTtHYmsvSEY7Q0FDRjs7QWdCbi9ISTtFa0IyQkE7SUFDRTtHbEM0OUhKOztFa0MxOUhJO0lBQ0U7SUFDQTtHbEM2OUhOOztFa0MzOUhNO0lyQjNESjtJQUNBO0lBWUE7R2IrZ0lGOztFa0M1OUhNO0lBQ0U7SXJCL0VOO0lBQ0E7SUFzQ0E7R2IwZ0lGO0NBQ0Y7O0FnQjNnSUk7RWtCMkJBO0lBQ0U7R2xDby9ISjs7RWtDbC9ISTtJQUNFO0lBQ0E7R2xDcS9ITjs7RWtDbi9ITTtJckIzREo7SUFDQTtJQVlBO0didWlJRjs7RWtDcC9ITTtJQUNFO0lyQi9FTjtJQUNBO0lBc0NBO0dia2lJRjtDQUNGOztBa0MzK0hFO0VBQ0U7RUFDQTtFckJqSEE7Q2JnbUlKOztBa0M1K0hJO0VBQ0U7Q2xDKytITjs7QWtDMStISTtFQUNFO0NsQzYrSE47O0FrQ3grSEk7RUFDRTtFQUNBO0NsQzIrSE47O0FtQy9tSUU7RUFDRTtFQUNBO0NuQ2tuSUo7O0FRdm1JRTs7RTJCUE07RUFDQTtDbkNtbklSOztBbUNobklNO0VBQ0U7RUFDQTtFQUNBO0NuQ21uSVI7O0FtQ2hvSUU7RUFDRTtFQUNBO0NuQ21vSUo7O0FReG5JRTs7RTJCUE07RUFDQTtDbkNvb0lSOztBbUNqb0lNO0VBQ0U7RUFDQTtFQUNBO0NuQ29vSVI7O0FtQ2pwSUU7RUFDRTtFQUNBO0NuQ29wSUo7O0FRem9JRTs7RTJCUE07RUFDQTtDbkNxcElSOztBbUNscElNO0VBQ0U7RUFDQTtFQUNBO0NuQ3FwSVI7O0FtQ2xxSUU7RUFDRTtFQUNBO0NuQ3FxSUo7O0FRMXBJRTs7RTJCUE07RUFDQTtDbkNzcUlSOztBbUNucUlNO0VBQ0U7RUFDQTtFQUNBO0NuQ3NxSVI7O0FtQ25ySUU7RUFDRTtFQUNBO0NuQ3NySUo7O0FRM3FJRTs7RTJCUE07RUFDQTtDbkN1cklSOztBbUNwcklNO0VBQ0U7RUFDQTtFQUNBO0NuQ3VySVI7O0FtQ3BzSUU7RUFDRTtFQUNBO0NuQ3VzSUo7O0FRNXJJRTs7RTJCUE07RUFDQTtDbkN3c0lSOztBbUNyc0lNO0VBQ0U7RUFDQTtFQUNBO0NuQ3dzSVI7O0FtQ3J0SUU7RUFDRTtFQUNBO0NuQ3d0SUo7O0FRN3NJRTs7RTJCUE07RUFDQTtDbkN5dElSOztBbUN0dElNO0VBQ0U7RUFDQTtFQUNBO0NuQ3l0SVI7O0FtQ3R1SUU7RUFDRTtFQUNBO0NuQ3l1SUo7O0FROXRJRTs7RTJCUE07RUFDQTtDbkMwdUlSOztBbUN2dUlNO0VBQ0U7RUFDQTtFQUNBO0NuQzB1SVI7O0FvQzF2SUE7RUFDRTtFN0I4SEk7RTZCNUhKO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7Q3BDNnZJRjs7QVF4dklFO0U0QkRFO0VBQ0E7Q3BDNnZJSjs7QVF6dklFOztFNEJDSTtDcEM2dklOOztBb0NsdklBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7S0FBQTtVQUFBO0NwQ3F2SUY7O0FvQy91SUE7RUFDRTtDcENrdklGOztBcUNueElBO0VBRUU7Q3JDcXhJRjs7QXFDbnhJRTtFQUNFO0VBQ0E7Q3JDc3hJSjs7QXFDanhJQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFHQTtDckNreElGOztBcUMzd0lBO0VBQ0U7RUFDQTtFQUNBO0VBRUE7Q3JDNndJRjs7QXFDMXdJRTtFbEJyQ0k7RWtCdUNGO0NyQzZ3SUo7O0FtQi95SUk7RWtCZ0NGO0lsQi9CSTtHbkJteklKO0NBQ0Y7O0FxQ2p4SUU7RUFDRTtDckNveElKOztBcUNoeElBO0VBQ0U7RUFDQTtDckNteElGOztBcUNqeElFO0VBQ0U7RUFDQTtDckNveElKOztBcUNqeElFOztFQUVFO0NyQ294SUo7O0FxQ2p4SUU7RUFDRTtDckNveElKOztBcUNoeElBO0VBQ0U7RUFDQTtFQUNBO0NyQ214SUY7O0FxQ2h4SUU7RUFDRTtFQUNBO0VBQ0E7Q3JDbXhJSjs7QXFDL3dJRTtFQUNFO0VBQ0E7RUFDQTtDckNreElKOztBcUNoeElJO0VBQ0U7Q3JDbXhJTjs7QXFDaHhJSTtFQUNFO0NyQ214SU47O0FxQzd3SUE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUdBO0VBQ0E7RUFDQTtFQUNBO0V4QnpHRTtFd0I2R0Y7Q3JDNHdJRjs7QXFDeHdJQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0NyQzJ3SUY7O0FxQ3h3SUU7RUFBUztDckM0d0lYOztBcUMzd0lFO0VBQVM7Q3JDK3dJWDs7QXFDMXdJQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RXhCN0hFO0VBQ0E7Q2IyNElKOztBcUM1d0lFO0VBQ0U7RUFFQTtDckM4d0lKOztBcUN6d0lBO0VBQ0U7RUFDQTtDckM0d0lGOztBcUN2d0lBO0VBQ0U7RUFHQTtFQUNBO0NyQ3d3SUY7O0FxQ3B3SUE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0V4Qi9JRTtFQUNBO0NidTVJSjs7QXFDcndJRTtFQUF1QjtDckN5d0l6Qjs7QXFDeHdJRTtFQUFzQjtDckM0d0l4Qjs7QXFDeHdJQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7Q3JDMndJRjs7QWdCeDRJSTtFcUJtSUY7SUFDRTtJQUNBO0dyQ3l3SUY7O0VxQ3R3SUE7SUFDRTtHckN5d0lGOztFcUN2d0lFO0lBQ0U7R3JDMHdJSjs7RXFDdHdJQTtJQUNFO0dyQ3l3SUY7O0VxQ3Z3SUU7SUFDRTtHckMwd0lKOztFcUNsd0lBO0lBQVk7R3JDc3dJWjtDQUNGOztBZ0JuNklJO0VxQmdLRjs7SUFFRTtHckN1d0lGO0NBQ0Y7O0FnQjE2SUk7RXFCdUtGO0lBQVk7R3JDd3dJWjtDQUNGOztBc0MxK0lBO0VBQXFCO0N0QzgrSXJCOztBc0M3K0lBO0VBQXFCO0N0Q2kvSXJCOztBc0NoL0lBO0VBQXFCO0N0Q28vSXJCOztBc0NuL0lBO0VBQXFCO0N0Q3UvSXJCOztBc0N0L0lBO0VBQXFCO0N0QzAvSXJCOztBc0N6L0lBO0VBQXFCO0N0QzYvSXJCOztBdUMvL0lFO0VBQ0U7Q3ZDa2dKSjs7QVF4L0lFOzs7O0UrQkxJO0N2Q29nSk47O0F1QzFnSkU7RUFDRTtDdkM2Z0pKOztBUW5nSkU7Ozs7RStCTEk7Q3ZDK2dKTjs7QXVDcmhKRTtFQUNFO0N2Q3doSko7O0FROWdKRTs7OztFK0JMSTtDdkMwaEpOOztBdUNoaUpFO0VBQ0U7Q3ZDbWlKSjs7QVF6aEpFOzs7O0UrQkxJO0N2Q3FpSk47O0F1QzNpSkU7RUFDRTtDdkM4aUpKOztBUXBpSkU7Ozs7RStCTEk7Q3ZDZ2pKTjs7QXVDdGpKRTtFQUNFO0N2Q3lqSko7O0FRL2lKRTs7OztFK0JMSTtDdkMyakpOOztBdUNqa0pFO0VBQ0U7Q3ZDb2tKSjs7QVExakpFOzs7O0UrQkxJO0N2Q3NrSk47O0F1QzVrSkU7RUFDRTtDdkMra0pKOztBUXJrSkU7Ozs7RStCTEk7Q3ZDaWxKTjs7QXdDaGxKQTtFQUNFO0N4Q21sSkY7O0F3Q2hsSkE7RUFDRTtDeENtbEpGOztBeUM5bEpBO0VBQWtCO0N6Q2ttSmxCOztBeUNqbUpBO0VBQWtCO0N6Q3FtSmxCOztBeUNwbUpBO0VBQWtCO0N6Q3dtSmxCOztBeUN2bUpBO0VBQWtCO0N6QzJtSmxCOztBeUMxbUpBO0VBQWtCO0N6QzhtSmxCOztBeUM1bUpBO0VBQW1CO0N6Q2duSm5COztBeUMvbUpBO0VBQW1CO0N6Q21uSm5COztBeUNsbkpBO0VBQW1CO0N6Q3NuSm5COztBeUNybkpBO0VBQW1CO0N6Q3luSm5COztBeUN4bkpBO0VBQW1CO0N6QzRuSm5COztBeUN6bkpFO0VBQ0U7Q3pDNG5KSjs7QXlDN25KRTtFQUNFO0N6Q2dvSko7O0F5Q2pvSkU7RUFDRTtDekNvb0pKOztBeUNyb0pFO0VBQ0U7Q3pDd29KSjs7QXlDem9KRTtFQUNFO0N6QzRvSko7O0F5QzdvSkU7RUFDRTtDekNncEpKOztBeUNqcEpFO0VBQ0U7Q3pDb3BKSjs7QXlDcnBKRTtFQUNFO0N6Q3dwSko7O0F5Q3BwSkE7RUFDRTtDekN1cEpGOztBeUNocEpBO0VBQ0U7Q3pDbXBKRjs7QXlDaHBKQTtFQUNFO0N6Q21wSkY7O0F5Q2hwSkE7RUFDRTtFQUNBO0N6Q21wSkY7O0F5Q2hwSkE7RUFDRTtFQUNBO0N6Q21wSkY7O0F5Q2hwSkE7RUFDRTtFQUNBO0N6Q21wSkY7O0F5Q2hwSkE7RUFDRTtFQUNBO0N6Q21wSkY7O0F5Q2hwSkE7RUFDRTtDekNtcEpGOztBeUNocEpBO0VBQ0U7Q3pDbXBKRjs7QXlDaHBKQTtFQUNFO0N6Q21wSkY7O0F5Q2hwSkE7RUFDRTtDekNtcEpGOztBMEMzdEpFO0VBQ0U7RUFDQTtFQUNBO0MxQzh0Sko7O0EyQ3Z0Sk07RUFBd0I7QzNDMnRKOUI7O0EyQzN0Sk07RUFBd0I7QzNDK3RKOUI7O0EyQy90Sk07RUFBd0I7QzNDbXVKOUI7O0EyQ251Sk07RUFBd0I7QzNDdXVKOUI7O0EyQ3Z1Sk07RUFBd0I7QzNDMnVKOUI7O0EyQzN1Sk07RUFBd0I7QzNDK3VKOUI7O0EyQy91Sk07RUFBd0I7QzNDbXZKOUI7O0EyQ252Sk07RUFBd0I7QzNDdXZKOUI7O0EyQ3Z2Sk07RUFBd0I7QzNDMnZKOUI7O0FnQjFzSkk7RTJCakRFO0lBQXdCO0czQ2d3SjVCOztFMkNod0pJO0lBQXdCO0czQ293SjVCOztFMkNwd0pJO0lBQXdCO0czQ3d3SjVCOztFMkN4d0pJO0lBQXdCO0czQzR3SjVCOztFMkM1d0pJO0lBQXdCO0czQ2d4SjVCOztFMkNoeEpJO0lBQXdCO0czQ294SjVCOztFMkNweEpJO0lBQXdCO0czQ3d4SjVCOztFMkN4eEpJO0lBQXdCO0czQzR4SjVCOztFMkM1eEpJO0lBQXdCO0czQ2d5SjVCO0NBQ0Y7O0FnQmh2Skk7RTJCakRFO0lBQXdCO0czQ3N5SjVCOztFMkN0eUpJO0lBQXdCO0czQzB5SjVCOztFMkMxeUpJO0lBQXdCO0czQzh5SjVCOztFMkM5eUpJO0lBQXdCO0czQ2t6SjVCOztFMkNsekpJO0lBQXdCO0czQ3N6SjVCOztFMkN0ekpJO0lBQXdCO0czQzB6SjVCOztFMkMxekpJO0lBQXdCO0czQzh6SjVCOztFMkM5ekpJO0lBQXdCO0czQ2swSjVCOztFMkNsMEpJO0lBQXdCO0czQ3MwSjVCO0NBQ0Y7O0FnQnR4Skk7RTJCakRFO0lBQXdCO0czQzQwSjVCOztFMkM1MEpJO0lBQXdCO0czQ2cxSjVCOztFMkNoMUpJO0lBQXdCO0czQ28xSjVCOztFMkNwMUpJO0lBQXdCO0czQ3cxSjVCOztFMkN4MUpJO0lBQXdCO0czQzQxSjVCOztFMkM1MUpJO0lBQXdCO0czQ2cySjVCOztFMkNoMkpJO0lBQXdCO0czQ28ySjVCOztFMkNwMkpJO0lBQXdCO0czQ3cySjVCOztFMkN4MkpJO0lBQXdCO0czQzQySjVCO0NBQ0Y7O0FnQjV6Skk7RTJCakRFO0lBQXdCO0czQ2szSjVCOztFMkNsM0pJO0lBQXdCO0czQ3MzSjVCOztFMkN0M0pJO0lBQXdCO0czQzAzSjVCOztFMkMxM0pJO0lBQXdCO0czQzgzSjVCOztFMkM5M0pJO0lBQXdCO0czQ2s0SjVCOztFMkNsNEpJO0lBQXdCO0czQ3M0SjVCOztFMkN0NEpJO0lBQXdCO0czQzA0SjVCOztFMkMxNEpJO0lBQXdCO0czQzg0SjVCOztFMkM5NEpJO0lBQXdCO0czQ2s1SjVCO0NBQ0Y7O0EyQ3o0SkE7RUFFSTtJQUFxQjtHM0M0NEp2Qjs7RTJDNTRKRTtJQUFxQjtHM0NnNUp2Qjs7RTJDaDVKRTtJQUFxQjtHM0NvNUp2Qjs7RTJDcDVKRTtJQUFxQjtHM0N3NUp2Qjs7RTJDeDVKRTtJQUFxQjtHM0M0NUp2Qjs7RTJDNTVKRTtJQUFxQjtHM0NnNkp2Qjs7RTJDaDZKRTtJQUFxQjtHM0NvNkp2Qjs7RTJDcDZKRTtJQUFxQjtHM0N3Nkp2Qjs7RTJDeDZKRTtJQUFxQjtHM0M0Nkp2QjtDQUNGOztBNENsOEpBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtDNUNxOEpGOztBNENuOEpFO0VBQ0U7RUFDQTtDNUNzOEpKOztBNENuOEpFOzs7OztFQUtFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0M1Q3M4Sko7O0E0Qzc3Skk7RUFDRTtDNUNnOEpOOztBNENqOEpJO0VBQ0U7QzVDbzhKTjs7QTRDcjhKSTtFQUNFO0M1Q3c4Sk47O0E0Q3o4Skk7RUFDRTtDNUM0OEpOOztBNkNyK0pJO0VBQWdDO0M3Q3krSnBDOztBNkN4K0pJO0VBQWdDO0M3QzQrSnBDOztBNkMzK0pJO0VBQWdDO0M3QysrSnBDOztBNkM5K0pJO0VBQWdDO0M3Q2svSnBDOztBNkNoL0pJO0VBQThCO0M3Q28vSmxDOztBNkNuL0pJO0VBQThCO0M3Q3UvSmxDOztBNkN0L0pJO0VBQThCO0M3QzAvSmxDOztBNkN6L0pJO0VBQThCO0M3QzYvSmxDOztBNkM1L0pJO0VBQThCO0M3Q2dnS2xDOztBNkMvL0pJO0VBQThCO0M3Q21nS2xDOztBNkNsZ0tJO0VBQThCO0M3Q3NnS2xDOztBNkNyZ0tJO0VBQThCO0M3Q3lnS2xDOztBNkN2Z0tJO0VBQW9DO0M3QzJnS3hDOztBNkMxZ0tJO0VBQW9DO0M3QzhnS3hDOztBNkM3Z0tJO0VBQW9DO0M3Q2loS3hDOztBNkNoaEtJO0VBQW9DO0M3Q29oS3hDOztBNkNuaEtJO0VBQW9DO0M3Q3VoS3hDOztBNkNyaEtJO0VBQWlDO0M3Q3loS3JDOztBNkN4aEtJO0VBQWlDO0M3QzRoS3JDOztBNkMzaEtJO0VBQWlDO0M3QytoS3JDOztBNkM5aEtJO0VBQWlDO0M3Q2tpS3JDOztBNkNqaUtJO0VBQWlDO0M3Q3FpS3JDOztBNkNuaUtJO0VBQWtDO0M3Q3VpS3RDOztBNkN0aUtJO0VBQWtDO0M3QzBpS3RDOztBNkN6aUtJO0VBQWtDO0M3QzZpS3RDOztBNkM1aUtJO0VBQWtDO0M3Q2dqS3RDOztBNkMvaUtJO0VBQWtDO0M3Q21qS3RDOztBNkNsaktJO0VBQWtDO0M3Q3NqS3RDOztBNkNwaktJO0VBQWdDO0M3Q3dqS3BDOztBNkN2aktJO0VBQWdDO0M3QzJqS3BDOztBNkMxaktJO0VBQWdDO0M3QzhqS3BDOztBNkM3aktJO0VBQWdDO0M3Q2lrS3BDOztBNkNoa0tJO0VBQWdDO0M3Q29rS3BDOztBNkNua0tJO0VBQWdDO0M3Q3VrS3BDOztBZ0IzaktJO0U2QmxEQTtJQUFnQztHN0NrbktsQzs7RTZDam5LRTtJQUFnQztHN0NxbktsQzs7RTZDcG5LRTtJQUFnQztHN0N3bktsQzs7RTZDdm5LRTtJQUFnQztHN0MybktsQzs7RTZDem5LRTtJQUE4QjtHN0M2bktoQzs7RTZDNW5LRTtJQUE4QjtHN0Nnb0toQzs7RTZDL25LRTtJQUE4QjtHN0Ntb0toQzs7RTZDbG9LRTtJQUE4QjtHN0Nzb0toQzs7RTZDcm9LRTtJQUE4QjtHN0N5b0toQzs7RTZDeG9LRTtJQUE4QjtHN0M0b0toQzs7RTZDM29LRTtJQUE4QjtHN0Mrb0toQzs7RTZDOW9LRTtJQUE4QjtHN0NrcEtoQzs7RTZDaHBLRTtJQUFvQztHN0NvcEt0Qzs7RTZDbnBLRTtJQUFvQztHN0N1cEt0Qzs7RTZDdHBLRTtJQUFvQztHN0MwcEt0Qzs7RTZDenBLRTtJQUFvQztHN0M2cEt0Qzs7RTZDNXBLRTtJQUFvQztHN0NncUt0Qzs7RTZDOXBLRTtJQUFpQztHN0NrcUtuQzs7RTZDanFLRTtJQUFpQztHN0NxcUtuQzs7RTZDcHFLRTtJQUFpQztHN0N3cUtuQzs7RTZDdnFLRTtJQUFpQztHN0MycUtuQzs7RTZDMXFLRTtJQUFpQztHN0M4cUtuQzs7RTZDNXFLRTtJQUFrQztHN0NncktwQzs7RTZDL3FLRTtJQUFrQztHN0NtcktwQzs7RTZDbHJLRTtJQUFrQztHN0NzcktwQzs7RTZDcnJLRTtJQUFrQztHN0N5cktwQzs7RTZDeHJLRTtJQUFrQztHN0M0cktwQzs7RTZDM3JLRTtJQUFrQztHN0MrcktwQzs7RTZDN3JLRTtJQUFnQztHN0Npc0tsQzs7RTZDaHNLRTtJQUFnQztHN0Nvc0tsQzs7RTZDbnNLRTtJQUFnQztHN0N1c0tsQzs7RTZDdHNLRTtJQUFnQztHN0Mwc0tsQzs7RTZDenNLRTtJQUFnQztHN0M2c0tsQzs7RTZDNXNLRTtJQUFnQztHN0NndEtsQztDQUNGOztBZ0Jyc0tJO0U2QmxEQTtJQUFnQztHN0M0dktsQzs7RTZDM3ZLRTtJQUFnQztHN0MrdktsQzs7RTZDOXZLRTtJQUFnQztHN0Nrd0tsQzs7RTZDandLRTtJQUFnQztHN0Nxd0tsQzs7RTZDbndLRTtJQUE4QjtHN0N1d0toQzs7RTZDdHdLRTtJQUE4QjtHN0Mwd0toQzs7RTZDendLRTtJQUE4QjtHN0M2d0toQzs7RTZDNXdLRTtJQUE4QjtHN0NneEtoQzs7RTZDL3dLRTtJQUE4QjtHN0NteEtoQzs7RTZDbHhLRTtJQUE4QjtHN0NzeEtoQzs7RTZDcnhLRTtJQUE4QjtHN0N5eEtoQzs7RTZDeHhLRTtJQUE4QjtHN0M0eEtoQzs7RTZDMXhLRTtJQUFvQztHN0M4eEt0Qzs7RTZDN3hLRTtJQUFvQztHN0NpeUt0Qzs7RTZDaHlLRTtJQUFvQztHN0NveUt0Qzs7RTZDbnlLRTtJQUFvQztHN0N1eUt0Qzs7RTZDdHlLRTtJQUFvQztHN0MweUt0Qzs7RTZDeHlLRTtJQUFpQztHN0M0eUtuQzs7RTZDM3lLRTtJQUFpQztHN0MreUtuQzs7RTZDOXlLRTtJQUFpQztHN0NrektuQzs7RTZDanpLRTtJQUFpQztHN0NxektuQzs7RTZDcHpLRTtJQUFpQztHN0N3ektuQzs7RTZDdHpLRTtJQUFrQztHN0MwektwQzs7RTZDenpLRTtJQUFrQztHN0M2ektwQzs7RTZDNXpLRTtJQUFrQztHN0NnMEtwQzs7RTZDL3pLRTtJQUFrQztHN0NtMEtwQzs7RTZDbDBLRTtJQUFrQztHN0NzMEtwQzs7RTZDcjBLRTtJQUFrQztHN0N5MEtwQzs7RTZDdjBLRTtJQUFnQztHN0MyMEtsQzs7RTZDMTBLRTtJQUFnQztHN0M4MEtsQzs7RTZDNzBLRTtJQUFnQztHN0NpMUtsQzs7RTZDaDFLRTtJQUFnQztHN0NvMUtsQzs7RTZDbjFLRTtJQUFnQztHN0N1MUtsQzs7RTZDdDFLRTtJQUFnQztHN0MwMUtsQztDQUNGOztBZ0IvMEtJO0U2QmxEQTtJQUFnQztHN0NzNEtsQzs7RTZDcjRLRTtJQUFnQztHN0N5NEtsQzs7RTZDeDRLRTtJQUFnQztHN0M0NEtsQzs7RTZDMzRLRTtJQUFnQztHN0MrNEtsQzs7RTZDNzRLRTtJQUE4QjtHN0NpNUtoQzs7RTZDaDVLRTtJQUE4QjtHN0NvNUtoQzs7RTZDbjVLRTtJQUE4QjtHN0N1NUtoQzs7RTZDdDVLRTtJQUE4QjtHN0MwNUtoQzs7RTZDejVLRTtJQUE4QjtHN0M2NUtoQzs7RTZDNTVLRTtJQUE4QjtHN0NnNktoQzs7RTZDLzVLRTtJQUE4QjtHN0NtNktoQzs7RTZDbDZLRTtJQUE4QjtHN0NzNktoQzs7RTZDcDZLRTtJQUFvQztHN0N3Nkt0Qzs7RTZDdjZLRTtJQUFvQztHN0MyNkt0Qzs7RTZDMTZLRTtJQUFvQztHN0M4Nkt0Qzs7RTZDNzZLRTtJQUFvQztHN0NpN0t0Qzs7RTZDaDdLRTtJQUFvQztHN0NvN0t0Qzs7RTZDbDdLRTtJQUFpQztHN0NzN0tuQzs7RTZDcjdLRTtJQUFpQztHN0N5N0tuQzs7RTZDeDdLRTtJQUFpQztHN0M0N0tuQzs7RTZDMzdLRTtJQUFpQztHN0MrN0tuQzs7RTZDOTdLRTtJQUFpQztHN0NrOEtuQzs7RTZDaDhLRTtJQUFrQztHN0NvOEtwQzs7RTZDbjhLRTtJQUFrQztHN0N1OEtwQzs7RTZDdDhLRTtJQUFrQztHN0MwOEtwQzs7RTZDejhLRTtJQUFrQztHN0M2OEtwQzs7RTZDNThLRTtJQUFrQztHN0NnOUtwQzs7RTZDLzhLRTtJQUFrQztHN0NtOUtwQzs7RTZDajlLRTtJQUFnQztHN0NxOUtsQzs7RTZDcDlLRTtJQUFnQztHN0N3OUtsQzs7RTZDdjlLRTtJQUFnQztHN0MyOUtsQzs7RTZDMTlLRTtJQUFnQztHN0M4OUtsQzs7RTZDNzlLRTtJQUFnQztHN0NpK0tsQzs7RTZDaCtLRTtJQUFnQztHN0NvK0tsQztDQUNGOztBZ0J6OUtJO0U2QmxEQTtJQUFnQztHN0NnaExsQzs7RTZDL2dMRTtJQUFnQztHN0NtaExsQzs7RTZDbGhMRTtJQUFnQztHN0NzaExsQzs7RTZDcmhMRTtJQUFnQztHN0N5aExsQzs7RTZDdmhMRTtJQUE4QjtHN0MyaExoQzs7RTZDMWhMRTtJQUE4QjtHN0M4aExoQzs7RTZDN2hMRTtJQUE4QjtHN0NpaUxoQzs7RTZDaGlMRTtJQUE4QjtHN0NvaUxoQzs7RTZDbmlMRTtJQUE4QjtHN0N1aUxoQzs7RTZDdGlMRTtJQUE4QjtHN0MwaUxoQzs7RTZDemlMRTtJQUE4QjtHN0M2aUxoQzs7RTZDNWlMRTtJQUE4QjtHN0NnakxoQzs7RTZDOWlMRTtJQUFvQztHN0Nrakx0Qzs7RTZDampMRTtJQUFvQztHN0Nxakx0Qzs7RTZDcGpMRTtJQUFvQztHN0N3akx0Qzs7RTZDdmpMRTtJQUFvQztHN0Myakx0Qzs7RTZDMWpMRTtJQUFvQztHN0M4akx0Qzs7RTZDNWpMRTtJQUFpQztHN0Nna0xuQzs7RTZDL2pMRTtJQUFpQztHN0Nta0xuQzs7RTZDbGtMRTtJQUFpQztHN0Nza0xuQzs7RTZDcmtMRTtJQUFpQztHN0N5a0xuQzs7RTZDeGtMRTtJQUFpQztHN0M0a0xuQzs7RTZDMWtMRTtJQUFrQztHN0M4a0xwQzs7RTZDN2tMRTtJQUFrQztHN0NpbExwQzs7RTZDaGxMRTtJQUFrQztHN0NvbExwQzs7RTZDbmxMRTtJQUFrQztHN0N1bExwQzs7RTZDdGxMRTtJQUFrQztHN0MwbExwQzs7RTZDemxMRTtJQUFrQztHN0M2bExwQzs7RTZDM2xMRTtJQUFnQztHN0MrbExsQzs7RTZDOWxMRTtJQUFnQztHN0NrbUxsQzs7RTZDam1MRTtJQUFnQztHN0NxbUxsQzs7RTZDcG1MRTtJQUFnQztHN0N3bUxsQzs7RTZDdm1MRTtJQUFnQztHN0MybUxsQzs7RTZDMW1MRTtJQUFnQztHN0M4bUxsQztDQUNGOztBOEN6cExJO0VBQXdCO0M5QzZwTDVCOztBOEM1cExJO0VBQXdCO0M5Q2dxTDVCOztBOEMvcExJO0VBQXdCO0M5Q21xTDVCOztBZ0IvbUxJO0U4QnREQTtJQUF3QjtHOUMwcUwxQjs7RThDenFMRTtJQUF3QjtHOUM2cUwxQjs7RThDNXFMRTtJQUF3QjtHOUNnckwxQjtDQUNGOztBZ0I3bkxJO0U4QnREQTtJQUF3QjtHOUN3ckwxQjs7RThDdnJMRTtJQUF3QjtHOUMyckwxQjs7RThDMXJMRTtJQUF3QjtHOUM4ckwxQjtDQUNGOztBZ0Izb0xJO0U4QnREQTtJQUF3QjtHOUNzc0wxQjs7RThDcnNMRTtJQUF3QjtHOUN5c0wxQjs7RThDeHNMRTtJQUF3QjtHOUM0c0wxQjtDQUNGOztBZ0J6cExJO0U4QnREQTtJQUF3QjtHOUNvdEwxQjs7RThDbnRMRTtJQUF3QjtHOUN1dEwxQjs7RThDdHRMRTtJQUF3QjtHOUMwdEwxQjtDQUNGOztBK0NodUxFO0VBQXNCO0MvQ291THhCOztBK0NwdUxFO0VBQXNCO0MvQ3d1THhCOztBZ0R2dUxFO0VBQXlCO0NoRDJ1TDNCOztBZ0QzdUxFO0VBQXlCO0NoRCt1TDNCOztBZ0QvdUxFO0VBQXlCO0NoRG12TDNCOztBZ0RudkxFO0VBQXlCO0NoRHV2TDNCOztBZ0R2dkxFO0VBQXlCO0VBQUE7Q2hEMnZMM0I7O0FnRHR2TEE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0NoRHl2TEY7O0FnRHR2TEE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0NoRHl2TEY7O0FnRHJ2TEU7RUFERjtJQUVJO0lBQUE7SUFDQTtJQUNBO0doRHl2TEY7Q0FDRjs7QWlEbnhMQTtFQ0VFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7Q2xEcXhMRjs7QWtEM3dMRTs7RUFFRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7Q2xEOHdMSjs7QW1EMXlMQTtFQUFhO0NuRDh5TGI7O0FtRDd5TEE7RUFBVTtDbkRpekxWOztBbURoekxBO0VBQWE7Q25Eb3pMYjs7QW1EbnpMQTtFQUFlO0NuRHV6TGY7O0FvRHR6TEk7RUFBdUI7Q3BEMHpMM0I7O0FvRDF6TEk7RUFBdUI7Q3BEOHpMM0I7O0FvRDl6TEk7RUFBdUI7Q3BEazBMM0I7O0FvRGwwTEk7RUFBdUI7Q3BEczBMM0I7O0FvRHQwTEk7RUFBdUI7Q3BEMDBMM0I7O0FvRDEwTEk7RUFBdUI7Q3BEODBMM0I7O0FvRDkwTEk7RUFBdUI7Q3BEazFMM0I7O0FvRGwxTEk7RUFBdUI7Q3BEczFMM0I7O0FvRHQxTEk7RUFBdUI7Q3BEMDFMM0I7O0FvRDExTEk7RUFBdUI7Q3BEODFMM0I7O0FvRDExTEE7RUFBVTtDcEQ4MUxWOztBb0Q3MUxBO0VBQVU7Q3BEaTJMVjs7QW9ENzFMQTtFQUFjO0NwRGkyTGQ7O0FvRGgyTEE7RUFBYztDcERvMkxkOztBb0RsMkxBO0VBQVU7Q3BEczJMVjs7QW9EcjJMQTtFQUFVO0NwRHkyTFY7O0FxRHYzTEU7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBRUE7Q3JEdzNMSjs7QXNEOTNMUTtFQUFnQztDdERrNEx4Qzs7QXNEajRMUTs7RUFFRTtDdERvNExWOztBc0RsNExROztFQUVFO0N0RHE0TFY7O0FzRG40TFE7O0VBRUU7Q3REczRMVjs7QXNEcDRMUTs7RUFFRTtDdER1NExWOztBc0R0NUxRO0VBQWdDO0N0RDA1THhDOztBc0R6NUxROztFQUVFO0N0RDQ1TFY7O0FzRDE1TFE7O0VBRUU7Q3RENjVMVjs7QXNEMzVMUTs7RUFFRTtDdEQ4NUxWOztBc0Q1NUxROztFQUVFO0N0RCs1TFY7O0FzRDk2TFE7RUFBZ0M7Q3REazdMeEM7O0FzRGo3TFE7O0VBRUU7Q3REbzdMVjs7QXNEbDdMUTs7RUFFRTtDdERxN0xWOztBc0RuN0xROztFQUVFO0N0RHM3TFY7O0FzRHA3TFE7O0VBRUU7Q3REdTdMVjs7QXNEdDhMUTtFQUFnQztDdEQwOEx4Qzs7QXNEejhMUTs7RUFFRTtDdEQ0OExWOztBc0QxOExROztFQUVFO0N0RDY4TFY7O0FzRDM4TFE7O0VBRUU7Q3REODhMVjs7QXNENThMUTs7RUFFRTtDdEQrOExWOztBc0Q5OUxRO0VBQWdDO0N0RGsrTHhDOztBc0RqK0xROztFQUVFO0N0RG8rTFY7O0FzRGwrTFE7O0VBRUU7Q3REcStMVjs7QXNEbitMUTs7RUFFRTtDdERzK0xWOztBc0RwK0xROztFQUVFO0N0RHUrTFY7O0FzRHQvTFE7RUFBZ0M7Q3REMC9MeEM7O0FzRHovTFE7O0VBRUU7Q3RENC9MVjs7QXNEMS9MUTs7RUFFRTtDdEQ2L0xWOztBc0QzL0xROztFQUVFO0N0RDgvTFY7O0FzRDUvTFE7O0VBRUU7Q3REKy9MVjs7QXNEOWdNUTtFQUFnQztDdERraE14Qzs7QXNEamhNUTs7RUFFRTtDdERvaE1WOztBc0RsaE1ROztFQUVFO0N0RHFoTVY7O0FzRG5oTVE7O0VBRUU7Q3REc2hNVjs7QXNEcGhNUTs7RUFFRTtDdER1aE1WOztBc0R0aU1RO0VBQWdDO0N0RDBpTXhDOztBc0R6aU1ROztFQUVFO0N0RDRpTVY7O0FzRDFpTVE7O0VBRUU7Q3RENmlNVjs7QXNEM2lNUTs7RUFFRTtDdEQ4aU1WOztBc0Q1aU1ROztFQUVFO0N0RCtpTVY7O0FzRDlqTVE7RUFBZ0M7Q3REa2tNeEM7O0FzRGprTVE7O0VBRUU7Q3REb2tNVjs7QXNEbGtNUTs7RUFFRTtDdERxa01WOztBc0Rua01ROztFQUVFO0N0RHNrTVY7O0FzRHBrTVE7O0VBRUU7Q3REdWtNVjs7QXNEdGxNUTtFQUFnQztDdEQwbE14Qzs7QXNEemxNUTs7RUFFRTtDdEQ0bE1WOztBc0QxbE1ROztFQUVFO0N0RDZsTVY7O0FzRDNsTVE7O0VBRUU7Q3REOGxNVjs7QXNENWxNUTs7RUFFRTtDdEQrbE1WOztBc0Q5bU1RO0VBQWdDO0N0RGtuTXhDOztBc0Rqbk1ROztFQUVFO0N0RG9uTVY7O0FzRGxuTVE7O0VBRUU7Q3REcW5NVjs7QXNEbm5NUTs7RUFFRTtDdERzbk1WOztBc0Rwbk1ROztFQUVFO0N0RHVuTVY7O0FzRHRvTVE7RUFBZ0M7Q3REMG9NeEM7O0FzRHpvTVE7O0VBRUU7Q3RENG9NVjs7QXNEMW9NUTs7RUFFRTtDdEQ2b01WOztBc0Qzb01ROztFQUVFO0N0RDhvTVY7O0FzRDVvTVE7O0VBRUU7Q3REK29NVjs7QXNEdm9NUTtFQUF3QjtDdEQyb01oQzs7QXNEMW9NUTs7RUFFRTtDdEQ2b01WOztBc0Qzb01ROztFQUVFO0N0RDhvTVY7O0FzRDVvTVE7O0VBRUU7Q3REK29NVjs7QXNEN29NUTs7RUFFRTtDdERncE1WOztBc0QvcE1RO0VBQXdCO0N0RG1xTWhDOztBc0RscU1ROztFQUVFO0N0RHFxTVY7O0FzRG5xTVE7O0VBRUU7Q3REc3FNVjs7QXNEcHFNUTs7RUFFRTtDdER1cU1WOztBc0RycU1ROztFQUVFO0N0RHdxTVY7O0FzRHZyTVE7RUFBd0I7Q3REMnJNaEM7O0FzRDFyTVE7O0VBRUU7Q3RENnJNVjs7QXNEM3JNUTs7RUFFRTtDdEQ4ck1WOztBc0Q1ck1ROztFQUVFO0N0RCtyTVY7O0FzRDdyTVE7O0VBRUU7Q3REZ3NNVjs7QXNEL3NNUTtFQUF3QjtDdERtdE1oQzs7QXNEbHRNUTs7RUFFRTtDdERxdE1WOztBc0RudE1ROztFQUVFO0N0RHN0TVY7O0FzRHB0TVE7O0VBRUU7Q3REdXRNVjs7QXNEcnRNUTs7RUFFRTtDdER3dE1WOztBc0R2dU1RO0VBQXdCO0N0RDJ1TWhDOztBc0QxdU1ROztFQUVFO0N0RDZ1TVY7O0FzRDN1TVE7O0VBRUU7Q3REOHVNVjs7QXNENXVNUTs7RUFFRTtDdEQrdU1WOztBc0Q3dU1ROztFQUVFO0N0RGd2TVY7O0FzRDF1TUk7RUFBbUI7Q3REOHVNdkI7O0FzRDd1TUk7O0VBRUU7Q3REZ3ZNTjs7QXNEOXVNSTs7RUFFRTtDdERpdk1OOztBc0QvdU1JOztFQUVFO0N0RGt2TU47O0FzRGh2TUk7O0VBRUU7Q3REbXZNTjs7QWdCNXZNSTtFc0NsREk7SUFBZ0M7R3REbXpNdEM7O0VzRGx6TU07O0lBRUU7R3REcXpNUjs7RXNEbnpNTTs7SUFFRTtHdERzek1SOztFc0Rwek1NOztJQUVFO0d0RHV6TVI7O0VzRHJ6TU07O0lBRUU7R3REd3pNUjs7RXNEdjBNTTtJQUFnQztHdEQyME10Qzs7RXNEMTBNTTs7SUFFRTtHdEQ2ME1SOztFc0QzME1NOztJQUVFO0d0RDgwTVI7O0VzRDUwTU07O0lBRUU7R3REKzBNUjs7RXNENzBNTTs7SUFFRTtHdERnMU1SOztFc0QvMU1NO0lBQWdDO0d0RG0yTXRDOztFc0RsMk1NOztJQUVFO0d0RHEyTVI7O0VzRG4yTU07O0lBRUU7R3REczJNUjs7RXNEcDJNTTs7SUFFRTtHdER1Mk1SOztFc0RyMk1NOztJQUVFO0d0RHcyTVI7O0VzRHYzTU07SUFBZ0M7R3REMjNNdEM7O0VzRDEzTU07O0lBRUU7R3RENjNNUjs7RXNEMzNNTTs7SUFFRTtHdEQ4M01SOztFc0Q1M01NOztJQUVFO0d0RCszTVI7O0VzRDczTU07O0lBRUU7R3REZzRNUjs7RXNELzRNTTtJQUFnQztHdERtNU10Qzs7RXNEbDVNTTs7SUFFRTtHdERxNU1SOztFc0RuNU1NOztJQUVFO0d0RHM1TVI7O0VzRHA1TU07O0lBRUU7R3REdTVNUjs7RXNEcjVNTTs7SUFFRTtHdER3NU1SOztFc0R2Nk1NO0lBQWdDO0d0RDI2TXRDOztFc0QxNk1NOztJQUVFO0d0RDY2TVI7O0VzRDM2TU07O0lBRUU7R3REODZNUjs7RXNENTZNTTs7SUFFRTtHdEQrNk1SOztFc0Q3Nk1NOztJQUVFO0d0RGc3TVI7O0VzRC83TU07SUFBZ0M7R3REbThNdEM7O0VzRGw4TU07O0lBRUU7R3REcThNUjs7RXNEbjhNTTs7SUFFRTtHdERzOE1SOztFc0RwOE1NOztJQUVFO0d0RHU4TVI7O0VzRHI4TU07O0lBRUU7R3REdzhNUjs7RXNEdjlNTTtJQUFnQztHdEQyOU10Qzs7RXNEMTlNTTs7SUFFRTtHdEQ2OU1SOztFc0QzOU1NOztJQUVFO0d0RDg5TVI7O0VzRDU5TU07O0lBRUU7R3REKzlNUjs7RXNENzlNTTs7SUFFRTtHdERnK01SOztFc0QvK01NO0lBQWdDO0d0RG0vTXRDOztFc0RsL01NOztJQUVFO0d0RHEvTVI7O0VzRG4vTU07O0lBRUU7R3REcy9NUjs7RXNEcC9NTTs7SUFFRTtHdER1L01SOztFc0RyL01NOztJQUVFO0d0RHcvTVI7O0VzRHZnTk07SUFBZ0M7R3REMmdOdEM7O0VzRDFnTk07O0lBRUU7R3RENmdOUjs7RXNEM2dOTTs7SUFFRTtHdEQ4Z05SOztFc0Q1Z05NOztJQUVFO0d0RCtnTlI7O0VzRDdnTk07O0lBRUU7R3REZ2hOUjs7RXNEL2hOTTtJQUFnQztHdERtaU50Qzs7RXNEbGlOTTs7SUFFRTtHdERxaU5SOztFc0RuaU5NOztJQUVFO0d0RHNpTlI7O0VzRHBpTk07O0lBRUU7R3REdWlOUjs7RXNEcmlOTTs7SUFFRTtHdER3aU5SOztFc0R2ak5NO0lBQWdDO0d0RDJqTnRDOztFc0Qxak5NOztJQUVFO0d0RDZqTlI7O0VzRDNqTk07O0lBRUU7R3REOGpOUjs7RXNENWpOTTs7SUFFRTtHdEQrak5SOztFc0Q3ak5NOztJQUVFO0d0RGdrTlI7O0VzRHhqTk07SUFBd0I7R3RENGpOOUI7O0VzRDNqTk07O0lBRUU7R3REOGpOUjs7RXNENWpOTTs7SUFFRTtHdEQrak5SOztFc0Q3ak5NOztJQUVFO0d0RGdrTlI7O0VzRDlqTk07O0lBRUU7R3REaWtOUjs7RXNEaGxOTTtJQUF3QjtHdERvbE45Qjs7RXNEbmxOTTs7SUFFRTtHdERzbE5SOztFc0RwbE5NOztJQUVFO0d0RHVsTlI7O0VzRHJsTk07O0lBRUU7R3REd2xOUjs7RXNEdGxOTTs7SUFFRTtHdER5bE5SOztFc0R4bU5NO0lBQXdCO0d0RDRtTjlCOztFc0QzbU5NOztJQUVFO0d0RDhtTlI7O0VzRDVtTk07O0lBRUU7R3REK21OUjs7RXNEN21OTTs7SUFFRTtHdERnbk5SOztFc0Q5bU5NOztJQUVFO0d0RGluTlI7O0VzRGhvTk07SUFBd0I7R3REb29OOUI7O0VzRG5vTk07O0lBRUU7R3REc29OUjs7RXNEcG9OTTs7SUFFRTtHdER1b05SOztFc0Ryb05NOztJQUVFO0d0RHdvTlI7O0VzRHRvTk07O0lBRUU7R3REeW9OUjs7RXNEeHBOTTtJQUF3QjtHdEQ0cE45Qjs7RXNEM3BOTTs7SUFFRTtHdEQ4cE5SOztFc0Q1cE5NOztJQUVFO0d0RCtwTlI7O0VzRDdwTk07O0lBRUU7R3REZ3FOUjs7RXNEOXBOTTs7SUFFRTtHdERpcU5SOztFc0QzcE5FO0lBQW1CO0d0RCtwTnJCOztFc0Q5cE5FOztJQUVFO0d0RGlxTko7O0VzRC9wTkU7O0lBRUU7R3REa3FOSjs7RXNEaHFORTs7SUFFRTtHdERtcU5KOztFc0RqcU5FOztJQUVFO0d0RG9xTko7Q0FDRjs7QWdCOXFOSTtFc0NsREk7SUFBZ0M7R3REcXVOdEM7O0VzRHB1Tk07O0lBRUU7R3REdXVOUjs7RXNEcnVOTTs7SUFFRTtHdER3dU5SOztFc0R0dU5NOztJQUVFO0d0RHl1TlI7O0VzRHZ1Tk07O0lBRUU7R3REMHVOUjs7RXNEenZOTTtJQUFnQztHdEQ2dk50Qzs7RXNENXZOTTs7SUFFRTtHdEQrdk5SOztFc0Q3dk5NOztJQUVFO0d0RGd3TlI7O0VzRDl2Tk07O0lBRUU7R3REaXdOUjs7RXNEL3ZOTTs7SUFFRTtHdERrd05SOztFc0RqeE5NO0lBQWdDO0d0RHF4TnRDOztFc0RweE5NOztJQUVFO0d0RHV4TlI7O0VzRHJ4Tk07O0lBRUU7R3REd3hOUjs7RXNEdHhOTTs7SUFFRTtHdER5eE5SOztFc0R2eE5NOztJQUVFO0d0RDB4TlI7O0VzRHp5Tk07SUFBZ0M7R3RENnlOdEM7O0VzRDV5Tk07O0lBRUU7R3REK3lOUjs7RXNEN3lOTTs7SUFFRTtHdERnek5SOztFc0Q5eU5NOztJQUVFO0d0RGl6TlI7O0VzRC95Tk07O0lBRUU7R3REa3pOUjs7RXNEajBOTTtJQUFnQztHdERxME50Qzs7RXNEcDBOTTs7SUFFRTtHdER1ME5SOztFc0RyME5NOztJQUVFO0d0RHcwTlI7O0VzRHQwTk07O0lBRUU7R3REeTBOUjs7RXNEdjBOTTs7SUFFRTtHdEQwME5SOztFc0R6MU5NO0lBQWdDO0d0RDYxTnRDOztFc0Q1MU5NOztJQUVFO0d0RCsxTlI7O0VzRDcxTk07O0lBRUU7R3REZzJOUjs7RXNEOTFOTTs7SUFFRTtHdERpMk5SOztFc0QvMU5NOztJQUVFO0d0RGsyTlI7O0VzRGozTk07SUFBZ0M7R3REcTNOdEM7O0VzRHAzTk07O0lBRUU7R3REdTNOUjs7RXNEcjNOTTs7SUFFRTtHdER3M05SOztFc0R0M05NOztJQUVFO0d0RHkzTlI7O0VzRHYzTk07O0lBRUU7R3REMDNOUjs7RXNEejROTTtJQUFnQztHdEQ2NE50Qzs7RXNENTROTTs7SUFFRTtHdEQrNE5SOztFc0Q3NE5NOztJQUVFO0d0RGc1TlI7O0VzRDk0Tk07O0lBRUU7R3REaTVOUjs7RXNELzROTTs7SUFFRTtHdERrNU5SOztFc0RqNk5NO0lBQWdDO0d0RHE2TnRDOztFc0RwNk5NOztJQUVFO0d0RHU2TlI7O0VzRHI2Tk07O0lBRUU7R3REdzZOUjs7RXNEdDZOTTs7SUFFRTtHdER5Nk5SOztFc0R2Nk5NOztJQUVFO0d0RDA2TlI7O0VzRHo3Tk07SUFBZ0M7R3RENjdOdEM7O0VzRDU3Tk07O0lBRUU7R3REKzdOUjs7RXNENzdOTTs7SUFFRTtHdERnOE5SOztFc0Q5N05NOztJQUVFO0d0RGk4TlI7O0VzRC83Tk07O0lBRUU7R3REazhOUjs7RXNEajlOTTtJQUFnQztHdERxOU50Qzs7RXNEcDlOTTs7SUFFRTtHdER1OU5SOztFc0RyOU5NOztJQUVFO0d0RHc5TlI7O0VzRHQ5Tk07O0lBRUU7R3REeTlOUjs7RXNEdjlOTTs7SUFFRTtHdEQwOU5SOztFc0R6K05NO0lBQWdDO0d0RDYrTnRDOztFc0Q1K05NOztJQUVFO0d0RCsrTlI7O0VzRDcrTk07O0lBRUU7R3REZy9OUjs7RXNEOStOTTs7SUFFRTtHdERpL05SOztFc0QvK05NOztJQUVFO0d0RGsvTlI7O0VzRDErTk07SUFBd0I7R3REOCtOOUI7O0VzRDcrTk07O0lBRUU7R3REZy9OUjs7RXNEOStOTTs7SUFFRTtHdERpL05SOztFc0QvK05NOztJQUVFO0d0RGsvTlI7O0VzRGgvTk07O0lBRUU7R3REbS9OUjs7RXNEbGdPTTtJQUF3QjtHdERzZ085Qjs7RXNEcmdPTTs7SUFFRTtHdER3Z09SOztFc0R0Z09NOztJQUVFO0d0RHlnT1I7O0VzRHZnT007O0lBRUU7R3REMGdPUjs7RXNEeGdPTTs7SUFFRTtHdEQyZ09SOztFc0QxaE9NO0lBQXdCO0d0RDhoTzlCOztFc0Q3aE9NOztJQUVFO0d0RGdpT1I7O0VzRDloT007O0lBRUU7R3REaWlPUjs7RXNEL2hPTTs7SUFFRTtHdERraU9SOztFc0RoaU9NOztJQUVFO0d0RG1pT1I7O0VzRGxqT007SUFBd0I7R3REc2pPOUI7O0VzRHJqT007O0lBRUU7R3REd2pPUjs7RXNEdGpPTTs7SUFFRTtHdER5ak9SOztFc0R2ak9NOztJQUVFO0d0RDBqT1I7O0VzRHhqT007O0lBRUU7R3REMmpPUjs7RXNEMWtPTTtJQUF3QjtHdEQ4a085Qjs7RXNEN2tPTTs7SUFFRTtHdERnbE9SOztFc0Q5a09NOztJQUVFO0d0RGlsT1I7O0VzRC9rT007O0lBRUU7R3REa2xPUjs7RXNEaGxPTTs7SUFFRTtHdERtbE9SOztFc0Q3a09FO0lBQW1CO0d0RGlsT3JCOztFc0RobE9FOztJQUVFO0d0RG1sT0o7O0VzRGpsT0U7O0lBRUU7R3REb2xPSjs7RXNEbGxPRTs7SUFFRTtHdERxbE9KOztFc0RubE9FOztJQUVFO0d0RHNsT0o7Q0FDRjs7QWdCaG1PSTtFc0NsREk7SUFBZ0M7R3REdXBPdEM7O0VzRHRwT007O0lBRUU7R3REeXBPUjs7RXNEdnBPTTs7SUFFRTtHdEQwcE9SOztFc0R4cE9NOztJQUVFO0d0RDJwT1I7O0VzRHpwT007O0lBRUU7R3RENHBPUjs7RXNEM3FPTTtJQUFnQztHdEQrcU90Qzs7RXNEOXFPTTs7SUFFRTtHdERpck9SOztFc0QvcU9NOztJQUVFO0d0RGtyT1I7O0VzRGhyT007O0lBRUU7R3REbXJPUjs7RXNEanJPTTs7SUFFRTtHdERvck9SOztFc0Ruc09NO0lBQWdDO0d0RHVzT3RDOztFc0R0c09NOztJQUVFO0d0RHlzT1I7O0VzRHZzT007O0lBRUU7R3REMHNPUjs7RXNEeHNPTTs7SUFFRTtHdEQyc09SOztFc0R6c09NOztJQUVFO0d0RDRzT1I7O0VzRDN0T007SUFBZ0M7R3REK3RPdEM7O0VzRDl0T007O0lBRUU7R3REaXVPUjs7RXNEL3RPTTs7SUFFRTtHdERrdU9SOztFc0RodU9NOztJQUVFO0d0RG11T1I7O0VzRGp1T007O0lBRUU7R3REb3VPUjs7RXNEbnZPTTtJQUFnQztHdER1dk90Qzs7RXNEdHZPTTs7SUFFRTtHdER5dk9SOztFc0R2dk9NOztJQUVFO0d0RDB2T1I7O0VzRHh2T007O0lBRUU7R3REMnZPUjs7RXNEenZPTTs7SUFFRTtHdEQ0dk9SOztFc0Qzd09NO0lBQWdDO0d0RCt3T3RDOztFc0Q5d09NOztJQUVFO0d0RGl4T1I7O0VzRC93T007O0lBRUU7R3REa3hPUjs7RXNEaHhPTTs7SUFFRTtHdERteE9SOztFc0RqeE9NOztJQUVFO0d0RG94T1I7O0VzRG55T007SUFBZ0M7R3REdXlPdEM7O0VzRHR5T007O0lBRUU7R3REeXlPUjs7RXNEdnlPTTs7SUFFRTtHdEQweU9SOztFc0R4eU9NOztJQUVFO0d0RDJ5T1I7O0VzRHp5T007O0lBRUU7R3RENHlPUjs7RXNEM3pPTTtJQUFnQztHdEQrek90Qzs7RXNEOXpPTTs7SUFFRTtHdERpME9SOztFc0Qvek9NOztJQUVFO0d0RGswT1I7O0VzRGgwT007O0lBRUU7R3REbTBPUjs7RXNEajBPTTs7SUFFRTtHdERvME9SOztFc0RuMU9NO0lBQWdDO0d0RHUxT3RDOztFc0R0MU9NOztJQUVFO0d0RHkxT1I7O0VzRHYxT007O0lBRUU7R3REMDFPUjs7RXNEeDFPTTs7SUFFRTtHdEQyMU9SOztFc0R6MU9NOztJQUVFO0d0RDQxT1I7O0VzRDMyT007SUFBZ0M7R3REKzJPdEM7O0VzRDkyT007O0lBRUU7R3REaTNPUjs7RXNELzJPTTs7SUFFRTtHdERrM09SOztFc0RoM09NOztJQUVFO0d0RG0zT1I7O0VzRGozT007O0lBRUU7R3REbzNPUjs7RXNEbjRPTTtJQUFnQztHdER1NE90Qzs7RXNEdDRPTTs7SUFFRTtHdER5NE9SOztFc0R2NE9NOztJQUVFO0d0RDA0T1I7O0VzRHg0T007O0lBRUU7R3REMjRPUjs7RXNEejRPTTs7SUFFRTtHdEQ0NE9SOztFc0QzNU9NO0lBQWdDO0d0RCs1T3RDOztFc0Q5NU9NOztJQUVFO0d0RGk2T1I7O0VzRC81T007O0lBRUU7R3REazZPUjs7RXNEaDZPTTs7SUFFRTtHdERtNk9SOztFc0RqNk9NOztJQUVFO0d0RG82T1I7O0VzRDU1T007SUFBd0I7R3REZzZPOUI7O0VzRC81T007O0lBRUU7R3REazZPUjs7RXNEaDZPTTs7SUFFRTtHdERtNk9SOztFc0RqNk9NOztJQUVFO0d0RG82T1I7O0VzRGw2T007O0lBRUU7R3REcTZPUjs7RXNEcDdPTTtJQUF3QjtHdER3N085Qjs7RXNEdjdPTTs7SUFFRTtHdEQwN09SOztFc0R4N09NOztJQUVFO0d0RDI3T1I7O0VzRHo3T007O0lBRUU7R3RENDdPUjs7RXNEMTdPTTs7SUFFRTtHdEQ2N09SOztFc0Q1OE9NO0lBQXdCO0d0RGc5TzlCOztFc0QvOE9NOztJQUVFO0d0RGs5T1I7O0VzRGg5T007O0lBRUU7R3REbTlPUjs7RXNEajlPTTs7SUFFRTtHdERvOU9SOztFc0RsOU9NOztJQUVFO0d0RHE5T1I7O0VzRHArT007SUFBd0I7R3REdytPOUI7O0VzRHYrT007O0lBRUU7R3REMCtPUjs7RXNEeCtPTTs7SUFFRTtHdEQyK09SOztFc0R6K09NOztJQUVFO0d0RDQrT1I7O0VzRDErT007O0lBRUU7R3RENitPUjs7RXNENS9PTTtJQUF3QjtHdERnZ1A5Qjs7RXNELy9PTTs7SUFFRTtHdERrZ1BSOztFc0RoZ1BNOztJQUVFO0d0RG1nUFI7O0VzRGpnUE07O0lBRUU7R3REb2dQUjs7RXNEbGdQTTs7SUFFRTtHdERxZ1BSOztFc0QvL09FO0lBQW1CO0d0RG1nUHJCOztFc0RsZ1BFOztJQUVFO0d0RHFnUEo7O0VzRG5nUEU7O0lBRUU7R3REc2dQSjs7RXNEcGdQRTs7SUFFRTtHdER1Z1BKOztFc0RyZ1BFOztJQUVFO0d0RHdnUEo7Q0FDRjs7QWdCbGhQSTtFc0NsREk7SUFBZ0M7R3REeWtQdEM7O0VzRHhrUE07O0lBRUU7R3REMmtQUjs7RXNEemtQTTs7SUFFRTtHdEQ0a1BSOztFc0Qxa1BNOztJQUVFO0d0RDZrUFI7O0VzRDNrUE07O0lBRUU7R3REOGtQUjs7RXNEN2xQTTtJQUFnQztHdERpbVB0Qzs7RXNEaG1QTTs7SUFFRTtHdERtbVBSOztFc0RqbVBNOztJQUVFO0d0RG9tUFI7O0VzRGxtUE07O0lBRUU7R3REcW1QUjs7RXNEbm1QTTs7SUFFRTtHdERzbVBSOztFc0RyblBNO0lBQWdDO0d0RHluUHRDOztFc0R4blBNOztJQUVFO0d0RDJuUFI7O0VzRHpuUE07O0lBRUU7R3RENG5QUjs7RXNEMW5QTTs7SUFFRTtHdEQ2blBSOztFc0QzblBNOztJQUVFO0d0RDhuUFI7O0VzRDdvUE07SUFBZ0M7R3REaXBQdEM7O0VzRGhwUE07O0lBRUU7R3REbXBQUjs7RXNEanBQTTs7SUFFRTtHdERvcFBSOztFc0RscFBNOztJQUVFO0d0RHFwUFI7O0VzRG5wUE07O0lBRUU7R3REc3BQUjs7RXNEcnFQTTtJQUFnQztHdER5cVB0Qzs7RXNEeHFQTTs7SUFFRTtHdEQycVBSOztFc0R6cVBNOztJQUVFO0d0RDRxUFI7O0VzRDFxUE07O0lBRUU7R3RENnFQUjs7RXNEM3FQTTs7SUFFRTtHdEQ4cVBSOztFc0Q3clBNO0lBQWdDO0d0RGlzUHRDOztFc0Roc1BNOztJQUVFO0d0RG1zUFI7O0VzRGpzUE07O0lBRUU7R3REb3NQUjs7RXNEbHNQTTs7SUFFRTtHdERxc1BSOztFc0Ruc1BNOztJQUVFO0d0RHNzUFI7O0VzRHJ0UE07SUFBZ0M7R3REeXRQdEM7O0VzRHh0UE07O0lBRUU7R3REMnRQUjs7RXNEenRQTTs7SUFFRTtHdEQ0dFBSOztFc0QxdFBNOztJQUVFO0d0RDZ0UFI7O0VzRDN0UE07O0lBRUU7R3REOHRQUjs7RXNEN3VQTTtJQUFnQztHdERpdlB0Qzs7RXNEaHZQTTs7SUFFRTtHdERtdlBSOztFc0RqdlBNOztJQUVFO0d0RG92UFI7O0VzRGx2UE07O0lBRUU7R3REcXZQUjs7RXNEbnZQTTs7SUFFRTtHdERzdlBSOztFc0Ryd1BNO0lBQWdDO0d0RHl3UHRDOztFc0R4d1BNOztJQUVFO0d0RDJ3UFI7O0VzRHp3UE07O0lBRUU7R3RENHdQUjs7RXNEMXdQTTs7SUFFRTtHdEQ2d1BSOztFc0Qzd1BNOztJQUVFO0d0RDh3UFI7O0VzRDd4UE07SUFBZ0M7R3REaXlQdEM7O0VzRGh5UE07O0lBRUU7R3REbXlQUjs7RXNEanlQTTs7SUFFRTtHdERveVBSOztFc0RseVBNOztJQUVFO0d0RHF5UFI7O0VzRG55UE07O0lBRUU7R3REc3lQUjs7RXNEcnpQTTtJQUFnQztHdER5elB0Qzs7RXNEeHpQTTs7SUFFRTtHdEQyelBSOztFc0R6elBNOztJQUVFO0d0RDR6UFI7O0VzRDF6UE07O0lBRUU7R3RENnpQUjs7RXNEM3pQTTs7SUFFRTtHdEQ4elBSOztFc0Q3MFBNO0lBQWdDO0d0RGkxUHRDOztFc0RoMVBNOztJQUVFO0d0RG0xUFI7O0VzRGoxUE07O0lBRUU7R3REbzFQUjs7RXNEbDFQTTs7SUFFRTtHdERxMVBSOztFc0RuMVBNOztJQUVFO0d0RHMxUFI7O0VzRDkwUE07SUFBd0I7R3REazFQOUI7O0VzRGoxUE07O0lBRUU7R3REbzFQUjs7RXNEbDFQTTs7SUFFRTtHdERxMVBSOztFc0RuMVBNOztJQUVFO0d0RHMxUFI7O0VzRHAxUE07O0lBRUU7R3REdTFQUjs7RXNEdDJQTTtJQUF3QjtHdEQwMlA5Qjs7RXNEejJQTTs7SUFFRTtHdEQ0MlBSOztFc0QxMlBNOztJQUVFO0d0RDYyUFI7O0VzRDMyUE07O0lBRUU7R3REODJQUjs7RXNENTJQTTs7SUFFRTtHdEQrMlBSOztFc0Q5M1BNO0lBQXdCO0d0RGs0UDlCOztFc0RqNFBNOztJQUVFO0d0RG80UFI7O0VzRGw0UE07O0lBRUU7R3REcTRQUjs7RXNEbjRQTTs7SUFFRTtHdERzNFBSOztFc0RwNFBNOztJQUVFO0d0RHU0UFI7O0VzRHQ1UE07SUFBd0I7R3REMDVQOUI7O0VzRHo1UE07O0lBRUU7R3RENDVQUjs7RXNEMTVQTTs7SUFFRTtHdEQ2NVBSOztFc0QzNVBNOztJQUVFO0d0RDg1UFI7O0VzRDU1UE07O0lBRUU7R3REKzVQUjs7RXNEOTZQTTtJQUF3QjtHdERrN1A5Qjs7RXNEajdQTTs7SUFFRTtHdERvN1BSOztFc0RsN1BNOztJQUVFO0d0RHE3UFI7O0VzRG43UE07O0lBRUU7R3REczdQUjs7RXNEcDdQTTs7SUFFRTtHdER1N1BSOztFc0RqN1BFO0lBQW1CO0d0RHE3UHJCOztFc0RwN1BFOztJQUVFO0d0RHU3UEo7O0VzRHI3UEU7O0lBRUU7R3REdzdQSjs7RXNEdDdQRTs7SUFFRTtHdER5N1BKOztFc0R2N1BFOztJQUVFO0d0RDA3UEo7Q0FDRjs7QXVEMS9QQTtFQUFrQjtDdkQ4L1BsQjs7QXVEMS9QQTtFQUFpQjtDdkQ4L1BqQjs7QXVENy9QQTtFQUFpQjtDdkRpZ1FqQjs7QXVEaGdRQTtFQUFpQjtDdkRvZ1FqQjs7QXVEbmdRQTtFQ1RFO0VBQ0E7RUFDQTtDeERnaFFGOztBdURqZ1FJO0VBQXdCO0N2RHFnUTVCOztBdURwZ1FJO0VBQXdCO0N2RHdnUTVCOztBdUR2Z1FJO0VBQXdCO0N2RDJnUTVCOztBZ0J0K1BJO0V1Q3ZDQTtJQUF3QjtHdkRraFExQjs7RXVEamhRRTtJQUF3QjtHdkRxaFExQjs7RXVEcGhRRTtJQUF3QjtHdkR3aFExQjtDQUNGOztBZ0JwL1BJO0V1Q3ZDQTtJQUF3QjtHdkRnaVExQjs7RXVEL2hRRTtJQUF3QjtHdkRtaVExQjs7RXVEbGlRRTtJQUF3QjtHdkRzaVExQjtDQUNGOztBZ0JsZ1FJO0V1Q3ZDQTtJQUF3QjtHdkQ4aVExQjs7RXVEN2lRRTtJQUF3QjtHdkRpalExQjs7RXVEaGpRRTtJQUF3QjtHdkRvalExQjtDQUNGOztBZ0JoaFFJO0V1Q3ZDQTtJQUF3QjtHdkQ0alExQjs7RXVEM2pRRTtJQUF3QjtHdkQralExQjs7RXVEOWpRRTtJQUF3QjtHdkRra1ExQjtDQUNGOztBdUQ3alFBO0VBQW1CO0N2RGlrUW5COztBdURoa1FBO0VBQW1CO0N2RG9rUW5COztBdURua1FBO0VBQW1CO0N2RHVrUW5COztBdURua1FBO0VBQXVCO0N2RHVrUXZCOztBdUR0a1FBO0VBQXVCO0N2RDBrUXZCOztBdUR6a1FBO0VBQXVCO0N2RDZrUXZCOztBdUQ1a1FBO0VBQXVCO0N2RGdsUXZCOztBdUQva1FBO0VBQXVCO0N2RG1sUXZCOztBdURsbFFBO0VBQXVCO0N2RHNsUXZCOztBdURsbFFBO0VBQWM7Q3ZEc2xRZDs7QXlEN25RRTtFQUNFO0N6RGdvUUo7O0FRdG5RRTs7RWlETE07Q3pEZ29RUjs7QXlEdG9RRTtFQUNFO0N6RHlvUUo7O0FRL25RRTs7RWlETE07Q3pEeW9RUjs7QXlEL29RRTtFQUNFO0N6RGtwUUo7O0FReG9RRTs7RWlETE07Q3pEa3BRUjs7QXlEeHBRRTtFQUNFO0N6RDJwUUo7O0FRanBRRTs7RWlETE07Q3pEMnBRUjs7QXlEanFRRTtFQUNFO0N6RG9xUUo7O0FRMXBRRTs7RWlETE07Q3pEb3FRUjs7QXlEMXFRRTtFQUNFO0N6RDZxUUo7O0FRbnFRRTs7RWlETE07Q3pENnFRUjs7QXlEbnJRRTtFQUNFO0N6RHNyUUo7O0FRNXFRRTs7RWlETE07Q3pEc3JRUjs7QXlENXJRRTtFQUNFO0N6RCtyUUo7O0FRcnJRRTs7RWlETE07Q3pEK3JRUjs7QXVEeHBRQTtFQUFhO0N2RDRwUWI7O0F1RDNwUUE7RUFBYztDdkQrcFFkOztBdUQ3cFFBO0VBQWlCO0N2RGlxUWpCOztBdURocVFBO0VBQWlCO0N2RG9xUWpCOztBdURocVFBO0VHdkRFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QzFEMnRRRjs7QXVEcHFRQTtFQUF3QjtDdkR3cVF4Qjs7QXVEdHFRQTtFQUNFO0VBQ0E7Q3ZEeXFRRjs7QXVEcHFRQTtFQUFjO0N2RHdxUWQ7O0EyRHp1UUE7RUFDRTtDM0Q0dVFGOztBMkR6dVFBO0VBQ0U7QzNENHVRRjs7QTRENXVRRTtFQUNFOzs7SUFLRTtJQUVBO0c1RDR1UUo7O0U0RHh1UUk7SUFDRTtHNUQydVFOOztFNERsdVFFO0lBQ0U7RzVEcXVRSjs7RTREdnRRRTtJQUNFO0c1RDB0UUo7O0U0RHh0UUU7O0lBRUU7SUFDQTtHNUQydFFKOztFNERudFFFO0lBQ0U7RzVEc3RRSjs7RTREbnRRRTs7SUFFRTtHNURzdFFKOztFNERudFFFOzs7SUFHRTtJQUNBO0c1RHN0UUo7O0U0RG50UUU7O0lBRUU7RzVEc3RRSjs7QTREOXNRRTtJQUNFO0M1RGl0UU47O0U0RC9zUUk7SUFDRTtHNURrdFFKOztFNERodFFFO0lBQ0U7RzVEbXRRSjs7RTREL3NRRTtJQUNFO0c1RGt0UUo7O0U0RGh0UUU7SUFDRTtHNURtdFFKOztFNERodFFFO0lBQ0U7RzVEbXRRSjs7RTREanRRSTs7SUFFRTtHNURvdFFOOztFNEQvc1FJOztJQUVFO0c1RGt0UU47O0U0RDlzUUU7SUFDRTtHNURpdFFKOztFNEQvc1FJOzs7O0lBSUU7RzVEa3RRTjs7RTREOXNRRTtJQUNFO0lBQ0E7RzVEaXRRSjtDQUNGOztBNkQ5eVFBO0VBQ0k7QzdEaXpRSjs7QThENzFRQTtFQUVJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0UzRDJjSTtFQUdJO0VBS0o7RUZoZUo7RUFDQTtFQUNBO0VBV0E7RUFDQTtDRHMyUUo7O0E4RGwyUUk7RUFDSTtDOURxMlFSOztBOERoMlFJO0U3RGxCQTtFQUNBO0VBQ0E7RUFXQTtFQUNBO0NENDJRSjs7QStEajRRQTs7RS9EcTRRQzs7QStEajRRRDtFQUNDO0MvRG80UUQ7O0ErRGo0UUE7RUFDQztDL0RvNFFEOztBK0RqNFFBOztFQUVDO0VBSUE7Qy9EaTRRRDs7QStEMTNRQTtFQUNDO0MvRDYzUUQ7O0ErRDEzUUE7RUFDQztFQUNBO0MvRDYzUUQ7O0ErRDEzUUE7RUFDQztDL0Q2M1FEOztBK0QxM1FBO0VBQ0M7RUFDQTtFQUNBO0MvRDYzUUQ7O0ErRDEzUUE7RUFDQztFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7Qy9ENjNRRDs7QStEMTNRQTtFQUNDO0MvRDYzUUQ7O0ErRDEzUUE7RUFDQztDL0Q2M1FEOztBK0QxM1FBOztFQUVDO0MvRDYzUUQ7O0ErRDEzUUE7RUFDQztFQUNBO0VBQ0E7RUFDQTtDL0Q2M1FEOztBK0QxM1FBO0VBQ0M7Qy9ENjNRRDs7QStEMTNRQTtFQUNDO0VBQ0E7RUFDQTtDL0Q2M1FEOztBK0QxM1FBO0VBQ0M7Qy9ENjNRRDs7QStEMTNRQTtFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtDL0Q2M1FEOztBK0QxM1FBO0VBQ0M7Qy9ENjNRRDs7QStEMTNRQTtFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtDL0Q2M1FEOztBK0QxM1FBO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7Qy9ENjNRRDs7QStEMTNRQTtFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0MvRDYzUUQ7O0ErRDEzUUE7RUFDQztFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtDL0Q2M1FEOztBK0QxM1FBO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7Qy9ENjNRRDs7QStEMTNRQTtFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7Qy9ENjNRRDs7QWdFemlSYTs7QUFNYjtFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtDaEV3aVJEOztBZ0V2aVJDO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7VUFBQTtFQUNBO0NoRTBpUkY7O0FnRXppUkU7RUFDQztFQUNBO0NoRTRpUkg7O0FnRTNpUkc7RUFDQztFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtDaEU4aVJKOztBZ0V4aVJFO0VBQ0M7VUFBQTtFQUNBO0VBQ0E7Q2hFMmlSSDs7QWdFMWlSRztFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0NoRTZpUko7O0FnRXZpUkU7RUFDQztVQUFBO0VBQ0E7RUFDQTtDaEUwaVJIOztBZ0V6aVJHO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7Q2hFNGlSSjs7QWdFdGlSRTtFQUNDO1VBQUE7RUFDQTtFQUNBO0NoRXlpUkg7O0FnRXhpUkc7RUFDQztFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtDaEUyaVJKOztBZ0VyaVJFO0VBQ0M7VUFBQTtFQUNBO0VBQ0E7Q2hFd2lSSDs7QWdFdmlSRztFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0NoRTBpUko7O0FnRWppUkE7RUFDQztJQUNDO1lBQUE7R2hFb2lSQTs7RWdFbGlSRDtJQUNDO0lBQ0E7WUFBQTtHaEVxaVJBO0NBQ0Y7O0FnRTVpUkE7RUFDQztJQUNDO1lBQUE7R2hFb2lSQTs7RWdFbGlSRDtJQUNDO0lBQ0E7WUFBQTtHaEVxaVJBO0NBQ0Y7O0FnRWxpUkE7RUFDQztFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7Q2hFcWlSRDs7QWdFbGlSQTs7QUFRQTs7Ozs7Y2hFbWlSYTs7QWdFNWhSYjtFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0NoRStoUkQ7O0FnRTloUkM7O0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtDaEVraVJGOztBZ0VoaVJDO0VBQ0M7RUFDQTtDaEVtaVJGOztBZ0VqaVJDO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtVQUFBO0NoRW9pUkY7O0FnRW5pUkU7RUFDQztJQUNDO0lBQ0E7R2hFc2lSRjs7RWdFcGlSQztJQUNDO0lBQ0E7R2hFdWlSRjs7RWdFcmlSQztJQUNDO0lBQ0E7R2hFd2lSRjtDQUNGOztBZ0VwalJFO0VBQ0M7SUFDQztJQUNBO0doRXNpUkY7O0VnRXBpUkM7SUFDQztJQUNBO0doRXVpUkY7O0VnRXJpUkM7SUFDQztJQUNBO0doRXdpUkY7Q0FDRjs7QWdFcmlSQztFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0NoRXdpUkY7O0FnRXZpUkU7RUFDQztFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7Q2hFMGlSSDs7QWdFemlSRztFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0NoRTRpUko7O0FnRTFpUkc7RUFDQztFQUNBO0VBQ0E7RUFDQTtVQUFBO0VBQ0E7VUFBQTtFQUNBO0NoRTZpUko7O0FnRXppUkU7RUFDQztFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7VUFBQTtDaEU0aVJIOztBZ0UzaVJHO0VBQ0M7SUFDQztHaEU4aVJIOztFZ0U1aVJFO0lBQ0M7R2hFK2lSSDs7RWdFN2lSRTtJQUNDO0doRWdqUkg7Q0FDRjs7QWdFempSRztFQUNDO0lBQ0M7R2hFOGlSSDs7RWdFNWlSRTtJQUNDO0doRStpUkg7O0VnRTdpUkU7SUFDQztHaEVnalJIO0NBQ0Y7O0FpRXB6UkM7RUFDQztFaEUrTVU7RWdFN01WO0NqRXV6UkY7O0FpRXJ6UkM7RUFDRTtFQUNBO0VBQ0E7RWhFbU1hO0VBWEo7Q0Rrb1JaOztBaUVselJFO0VBQ0M7Q2pFcXpSSDs7QWlFOXlSRTtFQUNDO0NqRWl6Ukg7O0FpRTV5UkE7RUFJRztJQUNDO0dqRTR5UkY7O0VpRXR5UkM7SUFDQztJQUNBO0dqRXl5UkY7Q0FDRjs7QWlFcHlSQTs7RWhFMEpnQjtFQVhKO0VnRTdJWDtDakV5eVJEOztBaUV0eVJBO0VBQ0M7Q2pFeXlSRDs7QWtFaDJSSTtFQUNJO0VBQ0E7RUFDQTtFakU2TUk7Q0R1cFJaOztBa0VqMlJRO0VBQ0k7Q2xFbzJSWjs7QWtFbDJSWTs7O0VBQ0k7Q2xFdTJSaEI7O0FrRW4yUlE7RUFDSTtDbEVzMlJaOztBa0VsMlJJO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0NsRXEyUlI7O0FrRW4yUlE7RUFDSTtFQUNBO0NsRXMyUlo7O0FrRW4yUlE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtDbEVzMlJaOztBa0VuMlJRO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0NsRXMyUlo7O0FrRW4yUlE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7Q2xFczJSWjs7QWtFbjJSUTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7Q2xFczJSWjs7QWtFbDJSSTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0NsRXEyUlI7O0FrRW4yUlE7RUFDSTtDbEVzMlJaOztBa0VuMlJROztFQUNJO0NsRXUyUlo7O0FrRW4yUkk7RUFDSTtJQUNJO0dsRXMyUlY7Q0FDRjs7QW1FLzdSRTtFQUNDO0NuRWs4Ukg7O0FtRWg4UkU7RWhFb2RNO0VBUUE7RUFRQTtFZ0VsZUw7Q25FcThSSDs7QW1FajhSRTtFQUNDO0VoRTZjSztFQVFBO0VnRW5kTDtFQUNBO0VBQ0E7RUFDQTtDbkVxOFJIOztBbUVuOFJHO0VBQ0M7RUFDQTtFQUNBO0NuRXM4Uko7O0FvRTkxUkk7RUNsREk7SUFDSTtHckVvNVJWOztFcUVsNVJVO0lBQ0k7R3JFcTVSZDs7RXFFajVSTTtJQUNJO0lBQ0E7R3JFbzVSVjtDQUNGOztBcUVoNVJBO0VBQ0k7RUFDQTtFQUNBO0NyRW01Uko7O0FxRWo1Ukk7RUFDRTtDckVvNVJOOztBcUVqNVJJO0VBQ0U7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7Q3JFbTVSTjs7QXFFLzRSRTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0NyRWs1Uko7O0FxRWg1Ukk7RUFDRTtFQUNBO0VBQ0E7RUFZQTs7S3JFeTRSRjtDQUNKOztBcUVwNVJNO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtDckV1NVJSOztBcUVqNVJNO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFbEV3VUE7Q0g2a1JSOztBcUVqNVJNO0VBQ0U7RUF6SUo7RUFDQTtFQUdBO0VBQ0E7RUFDQTtFQStJTTtFQWpLTjtFQUNBO0VBQ0E7RUEwQkE7RUFDQTtFQXdJTTtDckVnNVJWOztBcUU3NVJVO0VBQ0U7Q3JFZzZSWjs7QXFFOTVSVTtFQUNFO0NyRWk2Ulo7O0FxRTFpU0k7RUFDSTtDckU2aVNSOztBcUV2NVJRO0VBRUU7Q3JFeTVSVjs7QXFFdDVSUTtFQUNFO0NyRXk1UlY7O0FxRXQ1UlE7RUE3S0o7RUFDQTtFQUNBO0VBMkJBO0VBQ0E7Q3JFNmlTSjs7QW9FcDlSSTtFQ2dFQTtJQUNFO0dyRXc1Uko7Q0FDRjs7QW9FMTlSSTtFQ3lFSTtJQUNFO0dyRXE1UlI7O0VxRWw1Uk07SUFDRTtHckVxNVJSOztFcUVsNVJNO0lBQ0U7SUFDQTtHckVxNVJSO0NBQ0Y7O0FvRXorUkk7RUN5RkE7SUFDRTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBak9GO0lBQ0E7SUFDQTtJQTBCQTtJQUNBO0lBc01FO0lBQ0E7R3JFdzVSSjs7RXFFdDVSSTtJQUNFO0lBRUE7R3JFdzVSTjs7RXFFdDVSTTtJQUNFO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7R3JFeTVSUjs7RXFFdjVSUTtJQUNFO0dyRTA1UlY7O0VxRXY1UlU7SWxFa09KO0lBWUE7R0g4cVJOOztFcUVwNVJFO0lBQ0U7R3JFdTVSSjs7RXFFbjVSSTtJQUNFO0dyRXM1Uk47O0VxRW41Ukk7SUFqUUY7SUFDQTtJQUNBO0lBMkJBO0lBQ0E7SUFxT0k7R3JFMDVSTjtDQUNGOztBb0V2aVNJO0VDa0pBO0lBQ0U7R3JFeTVSSjtDQUNGOztBcUVyNVJBO0VwRXJFWTtFb0V1RVI7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtDckV3NVJKOztBcUV2NVJJO0VBQ0U7Q3JFMDVSTjs7QXFFdDVSTTtFQUNFO0NyRXk1UlI7O0FxRXI1Ukk7RUFDRTtFQUNBO0VBQ0E7RUFFQTtDckV1NVJOOztBcUVyNVJJOzs7RUFHRTtFQUNBO0VBQ0E7Q3JFdzVSTjs7QXFFdjVSTTs7O0VBQ0U7Q3JFNDVSUjs7QXFFMTVSTTs7O0VBQ0U7Q3JFKzVSUjs7QXFFMzVSSTtFQUNFO0NyRTg1Uk47O0FxRTM1Ukk7RUFDRTtFQUNBO0NyRTg1Uk47O0FxRTc1Uk07RUFDRTtFQUNBO0NyRWc2UlI7O0FxRTc0UkU7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtLQUFBO01BQUE7VUFBQTtDckVnNVJKOztBcUU5NFJJO0VBQ0U7Q3JFaTVSTjs7QXFFeDRSRTtFQTlCRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUE0QkE7RUFFQTtDckU4NFJKOztBcUU3NFJJOztFQXBDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFrQ0U7RUFDQTtFQUNBO0VBQ0E7Q3JFcTVSTjs7QXFFbjVSSTtFQUNFO0NyRXM1Uk47O0FxRXA1Ukk7RUFDRTtDckV1NVJOOztBcUVuNVJFO0VBQ0U7RUFDQTtFQUVBO0NyRXE1Uko7O0FxRXA1Ukk7O0VBRUU7RUFDQTtFQUNBO0NyRXU1Uk47O0FxRW41Ukk7RUFDRTtDckVzNVJOOztBcUVwNVJJO0VBQ0U7Q3JFdTVSTjs7QXFFbjVSRTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7Q3JFczVSSjs7QXFFcDVSSTtFQUNFO0VsRWtERTtFQVFBO0VBSUE7Q0g0MVJSOztBcUV4NVJNO0VBQ0U7Q3JFMjVSUjs7QXFFeDVSSTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUF2YkY7RUFDQTtFQUNBO0VBMEJBO0VBQ0E7Q3JFMHpTSjs7QXFFNzVSTTtFQUNFO0VBQ0E7Q3JFZzZSUjs7QXFFOTVSUTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0NyRWk2UlY7O0FxRS81UlU7RUFDRTtDckVrNlJaOztBcUVoNlJZO0VsRWlCSjtFQVlBO0NIdzRSUjs7QXFFMTVSTTtFQUNFO0NyRTY1UlI7O0FxRTE1Uk07RUFoZEY7RUFDQTtFQUNBO0VBMkJBO0VBQ0E7Q3JFbzFTSjs7QXFFNTVSTTtFQUNFO0NyRSs1UlI7O0FxRTU1UlE7RUFDRTtDckUrNVJWOztBb0Vud1NJO0VDNldBO0lBR0U7R3JFdzVSSjs7RXFFdjVSSTs7SUFFRTtJQUNBO0lBQ0E7R3JFMDVSTjs7RXFFeDVSSTtJQUNFO0dyRTI1Uk47O0VxRXo1Ukk7SUFDRTtJQUNBO0dyRTQ1Uk47O0VxRXo1Ukk7SUFDRTtHckU0NVJOOztFcUUzNVJNO0lBQ0U7SUFDQTtHckU4NVJSOztFcUUxNVJJO0lBQ0U7R3JFNjVSTjs7RXFFMTVSSTtJQUNFO0dyRTY1Uk47O0VxRXo1UkU7SUFDRTtJQUNBO0lBQ0E7SUFFQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7R3JFMjVSSjs7RXFFMTVSSTtJQUNFO0lBQ0E7R3JFNjVSTjs7RXFFMzVSSTtJQUNFO0dyRTg1Uk47O0VxRTM1UkU7SUFDRTtHckU4NVJKOztFcUUxNVJJO0lBQ0U7R3JFNjVSTjs7RXFFMzVSSTtJQUNFO0dyRTg1Uk47Q0FDRjs7QXNFeDhTQztFQUNDO0VBQ0E7RXJFOE1VO0NEOHZTWjs7QXNFejhTRTtFQUNDO0VBQ0E7RUFDQTtFckVtTWE7RUFYSjtDRHN4U1o7O0FzRXQ4U0U7RUFDQztDdEV5OFNIOztBc0VsOFNFO0VBQ0M7Q3RFcThTSDs7QXNFaDhTQTtFQUdFO0lBQ0M7R3RFaThTRDs7RXNFNTdTQztJQUNDO0d0RSs3U0Y7O0VzRXo3U0M7SUFDQztJQUNBO0d0RTQ3U0Y7Q0FDRjs7QXVFNytTSTtFQUNJO0VBQ0E7RUFDQTtFdEU2TUk7Q0RveVNaOztBdUU5K1NRO0VBQ0k7Q3ZFaS9TWjs7QXVFLytTWTs7O0VBQ0k7Q3ZFby9TaEI7O0F1RWgvU1E7RUFDSTtDdkVtL1NaOztBdUUvK1NJO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0N2RWsvU1I7O0F1RWgvU0k7RUFDSTtFQUNBO0VBQ0E7S0FBQTtDdkVtL1NSOztBdUVqL1NJO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7Q3ZFby9TUjs7QXVFbC9TUTtFQUNJO0N2RXEvU1o7O0F1RWwvU1E7O0VBQ0k7Q3ZFcy9TWjs7QXVFbC9TSTtFQUNJO0lBQ0k7R3ZFcS9TVjtDQUNGOztBd0V6aVRRO0VBQ0k7Q3hFNGlUWjs7QXdFemlUUTtFckVtZEE7RUFRQTtFQVFBO0VxRWplSTtFQUNBO0VBQ0E7Q3hFOGlUWjs7QXdFemlUSTtFQUNJO0N4RTRpVFI7O0F3RTFpVFE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFSHJCUjtFQUNBO0VBQ0E7RUEwQkE7RUFDQTtDckUwaVRKOztBd0UvaVRZO0VBQ0k7RUFDQTtDeEVralRoQjs7QXdFaGpUZ0I7RUFDSTtDeEVtalRwQjs7QXdFOWlUUTtFSDVCSjtFQUNBO0VBQ0E7RUEyQkE7RUFDQTtDckVvalRKOztBd0U5aVRRO0VBQ0k7RXJFNmFKO0VBUUE7RXFFbmJJO0VBQ0E7RUFDQTtFQUNBO0N4RWtqVFo7O0F3RWhqVFk7RUFDSTtFQUNBO0VBQ0E7Q3hFbWpUaEI7O0F3RTlpVEk7OztFQUNJO0N4RW1qVFI7O0F5RTltVEM7RUFDQztFeEUrTVU7Q0RtNlNaOztBeUU1bVRDO0VBQ0M7RXhFd01VO0V3RXRNVjtDekUrbVRGOztBeUUzbVRBO0VBQ0M7SXhFaU1XO0dEODZTVjs7RXlFMW1UQTtJQUNDO0d6RTZtVEQ7O0V5RTVtVEU7SXhFMExRO0dEczdTVjs7RXlFMW1UQztJeEVvTFM7R0QwN1NWO0NBQ0Y7O0EwRTNvVEk7RUFDSTtFQUNBO0VBQ0E7RXpFNk1JO0NEazhTWjs7QTBFNW9UUTtFQUNJO0MxRStvVFo7O0EwRTdvVFk7OztFQUNJO0MxRWtwVGhCOztBMEU5b1RRO0VBQ0k7QzFFaXBUWjs7QTBFN29USTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtDMUVncFRSOztBMEU3b1RJO0VBQ0k7RUFDQTtFQUNBO0MxRWdwVFI7O0EwRTlvVEk7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0MxRWlwVFI7O0EwRS9vVEk7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0MxRWtwVFI7O0EwRWhwVEk7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtDMUVtcFRSOztBMEVqcFRJO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0MxRW9wVFI7O0EwRWhwVEM7O0VBRUM7RUFDQTtFQUNBO0V2RWtaTTtFQVFBO0VBUUE7RXVFaGFOO0VBQ0E7RUFDQTtDMUVxcFRGOztBMEVucFRFOztFQUNDO0VBQ0E7RXpFa0lTO0V5RWhJVDtDMUV1cFRIOztBMEVwcFRFOzs7O0V6RTZIVTtFeUUxSFQ7RUFDQTtDMUV5cFRIOztBMEV2cFRHOzs7O0VBQ0M7RXpFc0hRO0NEd2lUWjs7QTBFeHBUQztFQUNDO0VBQ0E7QzFFMnBURjs7QTBFeHBUQztFQUNDO0MxRTJwVEY7O0EwRXhwVEM7RUFDQztFQUNBO0MxRTJwVEY7O0EwRXhwVEM7O0VBRUM7RUFDQTtFdkV1V007RXVFcldOO0VBQ0E7RUFDQTtFQUNBO0MxRTJwVEY7O0EwRXpwVEU7O0VBQ0M7QzFFNnBUSDs7QTBFenBUQztFQUNDO0MxRTRwVEY7O0EwRXpwVEk7RUFDSTtJQUNJO0cxRTRwVFY7Q0FDRjs7QTBFdHBUSTs7QUFDSjtFQUVRO0lBQ0k7RzFFeXBUVjs7RTBFdnBUTTtJQUNJO0cxRTBwVFY7O0UwRXhwVE07SUFDSTtJQUNBO0cxRTJwVFY7Q0FDRjs7QTBFdnBUQTtFQUVRO0lBQ0k7RzFFeXBUVjtDQUNGOztBMkV4elRBO0VBRUM7QzNFMHpURDs7QTJFeHpURTtFQUNDO0MzRTJ6VEg7O0EyRXh6VEU7RUFDQztDM0UyelRIOztBMkV0elRFO0VBQ0M7QzNFeXpUSDs7QTJFdnpURTtFQUNDO0MzRTB6VEg7O0EyRXh6VEU7RXhFcWNNO0VBUUE7RUFRQTtFd0VuZEw7QzNFNnpUSDs7QTJFeHpURztFQUNDO0MzRTJ6VEo7O0EyRXR6VEU7RUFDQztFeEV1Yks7RUFRQTtFd0U3Ykw7RUFDQTtFQUNBO0VBQ0E7QzNFMHpUSDs7QTJFeHpURztFQUNDO0VBQ0E7RUFDQTtDM0UyelRKOztBMkVyelRBO0VBSUk7SUFDQztHM0VxelRIOztFMkVoelRBO0lBQ0M7RzNFbXpURDtDQUNGOztBMkUveVRBO0VBRUU7SUFDQztHM0VpelREOztFMkU5eVRDO0lBQ0M7RzNFaXpURjs7RTJFNXlUQztJQUNDO0czRSt5VEY7O0UyRTl5VEU7SUFDQztHM0VpelRIOztFMkVoelRHO0l4RXVZRztJQVFBO0lBUUE7R0grNVNOOztFMkVoelRDO0lBQ0M7RzNFbXpURjs7RTJFanpURTtJQUNDO0lBQ0E7RzNFb3pUSDtDQUNGOztBNEVoNVRJO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0M1RW01VFI7O0E0RWg1VEk7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO1VBQUE7QzVFbTVUUjs7QTRFajVUUTtFQUNJO0VBQ0E7RUFDQTtFQUNBO1VBQUE7RUFDQTtDNUVvNVRaOztBNEVqNVRRO0VBQ0k7RUFDQTtFQUNBO1VBQUE7RUFDQTtVQUFBO0M1RW81VFo7O0E0RWw1VFk7RUFDSTtVQUFBO0M1RXE1VGhCOztBNEVqNVRRO0VBQ0k7RUFDQTtFQUNBO1VBQUE7RUFDQTtVQUFBO0M1RW81VFo7O0E0RWw1VFk7RUFDSTtVQUFBO0M1RXE1VGhCOztBNEVqNVRRO0VBQ0k7RUFDQTtFQUNBO1VBQUE7RUFDQTtVQUFBO0M1RW81VFo7O0E0RWw1VFk7RUFDSTtVQUFBO0M1RXE1VGhCOztBNEVqNVRRO0VBQ0k7RUFDQTtFQUNBO1VBQUE7RUFDQTtVQUFBO0M1RW81VFo7O0E0RWw1VFk7RUFDSTtVQUFBO0M1RXE1VGhCOztBNEVqNVRRO0VBQ0k7RUFDQTtFQUNBO1VBQUE7RUFDQTtVQUFBO0M1RW81VFo7O0E0RWw1VFk7RUFDSTtVQUFBO0M1RXE1VGhCOztBNEVqNVRRO0VBQ0k7RUFDQTtFQUNBO1VBQUE7RUFDQTtVQUFBO0M1RW81VFo7O0E0RWw1VFk7RUFDSTtVQUFBO0M1RXE1VGhCOztBNEVqNVRRO0VBQ0k7RUFDQTtFQUNBO1VBQUE7RUFDQTtVQUFBO0M1RW81VFo7O0E0RWw1VFk7RUFDSTtVQUFBO0M1RXE1VGhCOztBNEVqNVRRO0VBQ0k7RUFDQTtFQUNBO1VBQUE7RUFDQTtVQUFBO0M1RW81VFo7O0E0RWw1VFk7RUFDSTtVQUFBO0M1RXE1VGhCOztBNEVqNVRRO0VBQ0k7RUFDQTtFQUNBO1VBQUE7RUFDQTtVQUFBO0M1RW81VFo7O0E0RWw1VFk7RUFDSTtVQUFBO0M1RXE1VGhCOztBNEUvNFRJO0VBQ0k7RTNFaUZJO0NEazBUWjs7QTRFLzRUSTtFQUNJO0VBQ0E7RXpFbVZBO0VBUUE7RXlFelZBO0VBQ0E7RUFDQTtFQUNBO0M1RW01VFI7O0E0RWo1VFE7RUFDSTtDNUVvNVRaOztBNEVqNVRRO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0M1RW81VFo7O0E0RWo1VFE7RUFD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QTtDN0VneFVSOztBNkU3d1VJO0VBQ0k7QzdFZ3hVUjs7QTZFNXdVSTtFQUNJO0VBQ0E7QzdFK3dVUjs7QTZFNXdVSTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtDN0Urd1VSOztBNkU1d1VJO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtVQUFBO0M3RSt3VVI7O0E2RTV3VUk7RUFDSTtFQUNBO0VBQ0E7RUFDQTtDN0Urd1VSOztBNkU1d1VJO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtVQUFBO0M3RSt3VVI7O0E2RTV3VUk7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtDN0Urd1VSOztBNkU1d1VJO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7VUFBQTtFQUNBO0M3RSt3VVI7O0E2RTV3VUk7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7VUFBQTtDN0Urd1VSOztBNkU1d1VJO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QzdFK3dVUjs7QTZFNXdVSTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0M3RSt3VVI7O0E2RTV3VUk7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO1VBQUE7QzdFK3dVUjs7QTZFNXdVSTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QzdFK3dVUjs7QTZFNXdVSTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QzdFK3dVUjs7QTZFNXdVSTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtDN0Urd1VSOztBNkUxd1VJO0VBQ0k7SUFDSTtHN0U2d1VWOztFNkUzd1VNO0lBQ0k7RzdFOHdVVjs7RTZFNXdVTTtJQUNJO0c3RSt3VVY7O0U2RTd3VU07SUFDSTtHN0VneFVWOztFNkU5d1VNO0lBQ0k7RzdFaXhVVjtDQUNGOztBNkVoeVVJO0VBQ0k7SUFDSTtHN0U2d1VWOztFNkUzd1VNO0lBQ0k7RzdFOHdVVjs7RTZFNXdVTTtJQUNJO0c3RSt3VVY7O0U2RTd3VU07SUFDSTtHN0VneFVWOztFNkU5d1VNO0lBQ0k7RzdFaXhVVjtDQUNGOztBNkU5d1VJO0VBQ0k7SUFDSTtHN0VpeFVWOztFNkUvd1VNO0lBQ0k7RzdFa3hVVjtDQUNGOztBNkV4eFVJO0VBQ0k7SUFDSTtHN0VpeFVWOztFNkUvd1VNO0lBQ0k7RzdFa3hVVjtDQUNGOztBNkUvd1VJO0VBQ0k7SUFDSTtHN0VreFVWOztFNkVoeFVNO0lBQ0k7RzdFbXhVVjtDQUNGOztBNkV6eFVJO0VBQ0k7SUFDSTtHN0VreFVWOztFNkVoeFVNO0lBQ0k7RzdFbXhVVjtDQUNGOztBNkVoeFVJO0VBQ0k7SUFDSTtHN0VteFVWOztFNkVqeFVNO0lBQ0k7RzdFb3hVVjs7RTZFbHhVTTtJQUNJO0c3RXF4VVY7Q0FDRjs7QTZFOXhVSTtFQUNJO0lBQ0k7RzdFbXhVVjs7RTZFanhVTTtJQUNJO0c3RW94VVY7O0U2RWx4VU07SUFDSTtHN0VxeFVWO0NBQ0Y7O0E2RWx4VUk7RUFDSTtJQUNJO0c3RXF4VVY7O0U2RW54VU07SUFDSTtHN0VzeFVWO0NBQ0Y7O0E2RTV4VUk7RUFDSTtJQUNJO0c3RXF4VVY7O0U2RW54VU07SUFDSTtHN0VzeFVWO0NBQ0Y7O0E2RWx4VUk7RUFFUTtJQUNJO0c3RW94VWQ7Q0FDRjs7QTZFaHhVSTtFQUNJO0lBQ0k7RzdFbXhVVjtDQUNGOztBNkVoeFVJO0VBQ0k7SUFDSTtHN0VteFVWO0NBQ0Y7O0E2RWh4VUk7RUFFUTtJQUNJO0c3RWt4VWQ7O0U2RS93VVU7SUFDSTtHN0VreFVkOztFNkUvd1VNO0lBQ0k7RzdFa3hVVjs7RTZFaHhVTTtJQUNJO0lBQ0E7RzdFbXhVVjs7RTZFanhVTTtJQUNJO0c3RW94VVY7Q0FDRjs7QTZFanhVSTtFQUVRO0lBQ0k7RzdFbXhVZDs7RTZFaHhVVTtJQUNJO0c3RW14VWQ7O0U2RWh4VU07SUFDSTtHN0VteFVWO0NBQ0Y7O0E2RWh4VUk7RUFFUTtJQUNJO0lBQ0E7RzdFa3hVZDs7RTZFL3dVVTtJQUNJO0lBQ0E7RzdFa3hVZDs7RTZFL3dVVTtJQUNJO0c3RWt4VWQ7O0U2RS93VVU7OztJQUdJO0c3RWt4VWQ7O0U2RS93VVU7STFFOEdKO0kwRTVHUTtHN0VreFVkOztFNkUvd1VrQjtJQUNJO0c3RWt4VXRCOztFNkUvd1VrQjtJQUNJO0c3RWt4VXRCOztFNkU3d1VVO0lBQ0k7SUFDQTtHN0VneFVkOztFNkU5d1VjO0lBQ0k7RzdFaXhVbEI7Q0FDRjs7QTZFMXdVWTtFQUNJO0M3RTZ3VWhCOztBNkUxd1VZO0VBQ0k7QzdFNndVaEI7O0FvRTNoVkk7RVNrUlk7SUFDSTtJQUNBO0c3RTZ3VWxCOztFNkUxd1VjO0lBQ0k7SUFDQTtJQUNBO0c3RTZ3VWxCOztFNkUzd1VrQjtJQUNJO0lBQ0E7RzdFOHdVdEI7Q0FDRjs7QW9FN2lWSTtFU29TWTtJQUNJO0lBQ0E7RzdFNndVbEI7O0U2RTN3VWM7SUFDSTtJQUVBO0c3RTZ3VWxCO0NBQ0Y7O0FvRXpqVkk7RVMrU1k7SUFDSTtJQUNBO0c3RTh3VWxCOztFNkU1d1VjO0lBQ0k7SUFDQTtJQUNBO0c3RSt3VWxCO0NBQ0Y7O0E4RXBzVkE7RTdFaU5ZO0U2RWhMVjtFQXFJQTtFQTJEQTtDOUUwK1VGOztBOEV6c1ZFO0VBQ0U7QzlFNHNWSjs7QThFMXNWRTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0M5RTZzVko7O0E4RTFzVkU7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0M5RTZzVko7O0E4RTFzVkU7RUFDRTtFM0VpY0k7RUFHSTtFQUtKO0VBUUE7RTJFL2NKO0VBQ0E7QzlFZ3RWSjs7QThFL3NWSTtFQUNFO0M5RWt0Vk47O0E4RTdzVkU7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7VUFBQTtDOUVndFZKOztBOEU3c1ZFO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtVQUFBO0M5RWd0Vko7O0E4RTdzVkU7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtDOUVndFZKOztBOEU3c1ZFO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO1VBQUE7RUFDQTtDOUVndFZKOztBOEU3c1ZFO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO1VBQUE7RUFFQTtDOUUrc1ZKOztBOEU3c1ZFO0VBQ0U7RUFDQTtDOUVndFZKOztBOEU5c1ZFO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtDOUVpdFZKOztBOEU3c1ZFO0VBQ0U7RUFDQTtDOUVndFZKOztBOEU5c1ZFO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0M5RWl0Vko7O0E4RTlzVkU7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QzlFaXRWSjs7QThFOXNWRTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QzlFaXRWSjs7QThFOXNWRTtFQWFFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7VUFBQTtFQUNBO0VBQ0E7RUFDQTtDOUVxc1ZKOztBOEV4dFZJO0VBQ0U7SUFDRTtHOUUydFZOOztFOEV6dFZJO0lBQ0U7RzlFNHRWTjs7RThFMXRWSTtJQUNFO0c5RTZ0Vk47Q0FDRjs7QThFdHVWSTtFQUNFO0lBQ0U7RzlFMnRWTjs7RThFenRWSTtJQUNFO0c5RTR0Vk47O0U4RTF0Vkk7SUFDRTtHOUU2dFZOO0NBQ0Y7O0E4RWp0Vkk7RUFDRTtFQUNBO0VBQ0E7RUFDQTtDOUVvdFZOOztBOEUvc1ZFO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtDOUVrdFZKOztBOEU3c1ZFO0VBQ0U7SUFDRTtHOUVndFZKOztFOEU5c1ZFO0lBQ0U7RzlFaXRWSjs7RThFL3NWRTtJQUNFO0c5RWt0Vko7O0U4RWh0VkU7SUFDRTtHOUVtdFZKOztFOEVqdFZFO0lBQ0U7RzlFb3RWSjtDQUNGOztBOEVqdFZFO0VBQ0U7SUFDRTtHOUVvdFZKOztFOEVsdFZFO0lBQ0U7RzlFcXRWSjtDQUNGOztBOEVsdFZFO0VBQ0U7SUFDRTtHOUVxdFZKOztFOEVudFZFO0lBQ0U7RzlFc3RWSjtDQUNGOztBOEVudFZFO0VBQ0U7SUFDRTtHOUVzdFZKOztFOEVwdFZFO0lBQ0U7RzlFdXRWSjs7RThFcnRWRTtJQUNFO0c5RXd0Vko7Q0FDRjs7QThFcnRWRTtFQUNFO0lBQ0U7RzlFd3RWSjs7RThFdHRWRTtJQUNFO0c5RXl0Vko7Q0FDRjs7QThFcnRWRTtFQUNFO0lBQ0U7RzlFd3RWSjtDQUNGOztBOEV0dFZFO0VBQ0U7SUFDRTtHOUV5dFZKOztFOEV2dFZFO0lBQ0U7RzlFMHRWSjtDQUNGOztBOEV4dFZFO0VBQ0U7SUFDRTtHOUUydFZKO0NBQ0Y7O0E4RXp0VkU7RUFDRTs7SUFFRTtHOUU0dFZKOztFOEUxdFZFOztJQUVFO0lBQ0E7RzlFNnRWSjtDQUNGOztBOEUzdFZFO0VBQ0U7SUFDRTtHOUU4dFZKOztFOEU1dFZFO0lBQ0U7RzlFK3RWSjs7RThFN3RWRTtJQUNFO0c5RWd1Vko7O0U4RTl0VkU7SUFDRTtJQUNBO0lBQ0E7RzlFaXVWSjs7RThFL3RWSTtJQUNFO0c5RWt1Vk47Q0FDRjs7QThFL3RWRTtFQUNFO0lBQ0U7RzlFa3VWSjs7RThFaHVWRTtJQUNFO0c5RW11Vko7O0U4RWp1VkU7SUFDRTtJQUNBO0lBQ0E7RzlFb3VWSjs7RThFbHVWSTtJQUNFO0c5RXF1Vk47Q0FDRjs7QThFanVWRTtFQUNFO0lBQ0U7RzlFb3VWSjs7RThFbHVWRTtJQUNFO0c5RXF1Vko7O0U4RW51VkU7SUFDRTtHOUVzdVZKOztFOEVwdVZFO0lBQ0U7SUFDQTtJQUNBO0c5RXV1Vko7O0U4RXJ1Vkk7SUFDRTtHOUV3dVZOO0NBQ0Y7O0E4RW51VkE7RUFDRTtJQUNFO0c5RXN1VkY7Q0FDRjs7QStFbmlXQztFQUNDO0MvRXNpV0Y7O0ErRXBpV0U7OztFQUNDO0MvRXlpV0g7O0ErRXBpV0U7RUFDQztFQUNBO0MvRXVpV0g7O0ErRXJpV0U7OztFNUUyY007RTRFemNMO0VBQ0E7RUFDQTtDL0UwaVdIOztBZ0YzaldJO0VBQ0k7Q2hGOGpXUjs7QWdGNWpXUTs7O0VBQ0k7RUFDQTtDaEZpa1daOztBZ0Y5aldROzs7Ozs7RUFDSTtDaEZza1daOztBZ0Zua1dRO0VBQ0k7RUFDQTtDaEZza1daOztBZ0Zua1dROzs7RTdFdWNBO0VBUUE7RUFRQTtFNkVyZEk7RUFDQTtFQUNBO0NoRjBrV1o7O0FnRnJrV0k7RUFDSTtFQUNBO0NoRndrV1I7O0FpRnJtV0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7Q2pGd21XSjs7QWlGdm1XSTs7OztFOUUwZEk7RUFRQTtDSDZvVlI7O0FpRjVtV0k7RTlFK2NJO0NIaXFWUjs7QWlGN21XSTtFOUU0Y0k7Q0hxcVZSOztBaUY5bVdJO0U5RXljSTtDSHlxVlI7O0FpRi9tV0k7RTlFc2NJO0NINnFWUjs7QWlGaG5XSTtFOUVtY0k7RUFHSTtFQUtKO0VBUUE7RThFamRBO0VBQ0E7RUFDQTtFQUNBO0NqRnNuV1I7O0FpRmxuV0k7O0FBQ0o7RUFDSTtJQUNJO0dqRnNuV047Q0FDRjs7QWtGM21XQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0NsRjhtV0oiLCJmaWxlIjoiY3NzL21haW4uY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vKiFcbiAqIGFuaW1hdGUuY3NzIC1odHRwczovL2RhbmVkZW4uZ2l0aHViLmlvL2FuaW1hdGUuY3NzL1xuICogVmVyc2lvbiAtIDMuNy4yXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgLSBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICogQ29weXJpZ2h0IChjKSAyMDE5IERhbmllbCBFZGVuXG4gKi9cblxuQC13ZWJraXQta2V5ZnJhbWVzIGJvdW5jZSB7XG4gIGZyb20sXG4gIDIwJSxcbiAgNTMlLFxuICA4MCUsXG4gIHRvIHtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIxNSwgMC42MSwgMC4zNTUsIDEpO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIxNSwgMC42MSwgMC4zNTUsIDEpO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB9XG5cbiAgNDAlLFxuICA0MyUge1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNzU1LCAwLjA1LCAwLjg1NSwgMC4wNik7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNzU1LCAwLjA1LCAwLjg1NSwgMC4wNik7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0zMHB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0zMHB4LCAwKTtcbiAgfVxuXG4gIDcwJSB7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC43NTUsIDAuMDUsIDAuODU1LCAwLjA2KTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC43NTUsIDAuMDUsIDAuODU1LCAwLjA2KTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTE1cHgsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTE1cHgsIDApO1xuICB9XG5cbiAgOTAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTRweCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtNHB4LCAwKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGJvdW5jZSB7XG4gIGZyb20sXG4gIDIwJSxcbiAgNTMlLFxuICA4MCUsXG4gIHRvIHtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIxNSwgMC42MSwgMC4zNTUsIDEpO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIxNSwgMC42MSwgMC4zNTUsIDEpO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB9XG5cbiAgNDAlLFxuICA0MyUge1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNzU1LCAwLjA1LCAwLjg1NSwgMC4wNik7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNzU1LCAwLjA1LCAwLjg1NSwgMC4wNik7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0zMHB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0zMHB4LCAwKTtcbiAgfVxuXG4gIDcwJSB7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC43NTUsIDAuMDUsIDAuODU1LCAwLjA2KTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC43NTUsIDAuMDUsIDAuODU1LCAwLjA2KTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTE1cHgsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTE1cHgsIDApO1xuICB9XG5cbiAgOTAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTRweCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtNHB4LCAwKTtcbiAgfVxufVxuXG4uYm91bmNlIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogYm91bmNlO1xuICBhbmltYXRpb24tbmFtZTogYm91bmNlO1xuICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBib3R0b207XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBib3R0b207XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBmbGFzaCB7XG4gIGZyb20sXG4gIDUwJSxcbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICAyNSUsXG4gIDc1JSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGZsYXNoIHtcbiAgZnJvbSxcbiAgNTAlLFxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIDI1JSxcbiAgNzUlIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbi5mbGFzaCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZsYXNoO1xuICBhbmltYXRpb24tbmFtZTogZmxhc2g7XG59XG5cbi8qIG9yaWdpbmFsbHkgYXV0aG9yZWQgYnkgTmljayBQZXR0aXQgLSBodHRwczovL2dpdGh1Yi5jb20vbmlja3BldHRpdC9nbGlkZSAqL1xuXG5ALXdlYmtpdC1rZXlmcmFtZXMgcHVsc2Uge1xuICBmcm9tIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7XG4gIH1cblxuICA1MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEuMDUsIDEuMDUsIDEuMDUpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLjA1LCAxLjA1LCAxLjA1KTtcbiAgfVxuXG4gIHRvIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBwdWxzZSB7XG4gIGZyb20ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEsIDEsIDEpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTtcbiAgfVxuXG4gIDUwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMS4wNSwgMS4wNSwgMS4wNSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEuMDUsIDEuMDUsIDEuMDUpO1xuICB9XG5cbiAgdG8ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEsIDEsIDEpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTtcbiAgfVxufVxuXG4ucHVsc2Uge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBwdWxzZTtcbiAgYW5pbWF0aW9uLW5hbWU6IHB1bHNlO1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgcnViYmVyQmFuZCB7XG4gIGZyb20ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEsIDEsIDEpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTtcbiAgfVxuXG4gIDMwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMS4yNSwgMC43NSwgMSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEuMjUsIDAuNzUsIDEpO1xuICB9XG5cbiAgNDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgwLjc1LCAxLjI1LCAxKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMC43NSwgMS4yNSwgMSk7XG4gIH1cblxuICA1MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEuMTUsIDAuODUsIDEpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLjE1LCAwLjg1LCAxKTtcbiAgfVxuXG4gIDY1JSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMC45NSwgMS4wNSwgMSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDAuOTUsIDEuMDUsIDEpO1xuICB9XG5cbiAgNzUlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgxLjA1LCAwLjk1LCAxKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMS4wNSwgMC45NSwgMSk7XG4gIH1cblxuICB0byB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEsIDEsIDEpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgcnViYmVyQmFuZCB7XG4gIGZyb20ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEsIDEsIDEpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTtcbiAgfVxuXG4gIDMwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMS4yNSwgMC43NSwgMSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEuMjUsIDAuNzUsIDEpO1xuICB9XG5cbiAgNDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgwLjc1LCAxLjI1LCAxKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMC43NSwgMS4yNSwgMSk7XG4gIH1cblxuICA1MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEuMTUsIDAuODUsIDEpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLjE1LCAwLjg1LCAxKTtcbiAgfVxuXG4gIDY1JSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMC45NSwgMS4wNSwgMSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDAuOTUsIDEuMDUsIDEpO1xuICB9XG5cbiAgNzUlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgxLjA1LCAwLjk1LCAxKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMS4wNSwgMC45NSwgMSk7XG4gIH1cblxuICB0byB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEsIDEsIDEpO1xuICB9XG59XG5cbi5ydWJiZXJCYW5kIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogcnViYmVyQmFuZDtcbiAgYW5pbWF0aW9uLW5hbWU6IHJ1YmJlckJhbmQ7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBzaGFrZSB7XG4gIGZyb20sXG4gIHRvIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgfVxuXG4gIDEwJSxcbiAgMzAlLFxuICA1MCUsXG4gIDcwJSxcbiAgOTAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwcHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwcHgsIDAsIDApO1xuICB9XG5cbiAgMjAlLFxuICA0MCUsXG4gIDYwJSxcbiAgODAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTBweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMHB4LCAwLCAwKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHNoYWtlIHtcbiAgZnJvbSxcbiAgdG8ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB9XG5cbiAgMTAlLFxuICAzMCUsXG4gIDUwJSxcbiAgNzAlLFxuICA5MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTBweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTBweCwgMCwgMCk7XG4gIH1cblxuICAyMCUsXG4gIDQwJSxcbiAgNjAlLFxuICA4MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMHB4LCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwcHgsIDAsIDApO1xuICB9XG59XG5cbi5zaGFrZSB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHNoYWtlO1xuICBhbmltYXRpb24tbmFtZTogc2hha2U7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBoZWFkU2hha2Uge1xuICAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICB9XG5cbiAgNi41JSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTZweCkgcm90YXRlWSgtOWRlZyk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC02cHgpIHJvdGF0ZVkoLTlkZWcpO1xuICB9XG5cbiAgMTguNSUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDVweCkgcm90YXRlWSg3ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNXB4KSByb3RhdGVZKDdkZWcpO1xuICB9XG5cbiAgMzEuNSUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0zcHgpIHJvdGF0ZVkoLTVkZWcpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtM3B4KSByb3RhdGVZKC01ZGVnKTtcbiAgfVxuXG4gIDQzLjUlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgycHgpIHJvdGF0ZVkoM2RlZyk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDJweCkgcm90YXRlWSgzZGVnKTtcbiAgfVxuXG4gIDUwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgaGVhZFNoYWtlIHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgfVxuXG4gIDYuNSUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC02cHgpIHJvdGF0ZVkoLTlkZWcpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNnB4KSByb3RhdGVZKC05ZGVnKTtcbiAgfVxuXG4gIDE4LjUlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCg1cHgpIHJvdGF0ZVkoN2RlZyk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDVweCkgcm90YXRlWSg3ZGVnKTtcbiAgfVxuXG4gIDMxLjUlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtM3B4KSByb3RhdGVZKC01ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTNweCkgcm90YXRlWSgtNWRlZyk7XG4gIH1cblxuICA0My41JSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMnB4KSByb3RhdGVZKDNkZWcpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgycHgpIHJvdGF0ZVkoM2RlZyk7XG4gIH1cblxuICA1MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgfVxufVxuXG4uaGVhZFNoYWtlIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGhlYWRTaGFrZTtcbiAgYW5pbWF0aW9uLW5hbWU6IGhlYWRTaGFrZTtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIHN3aW5nIHtcbiAgMjAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgMTVkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgMTVkZWcpO1xuICB9XG5cbiAgNDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgLTEwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIC0xMGRlZyk7XG4gIH1cblxuICA2MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCA1ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDVkZWcpO1xuICB9XG5cbiAgODAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgLTVkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgLTVkZWcpO1xuICB9XG5cbiAgdG8ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDBkZWcpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgc3dpbmcge1xuICAyMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAxNWRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAxNWRlZyk7XG4gIH1cblxuICA0MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAtMTBkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgLTEwZGVnKTtcbiAgfVxuXG4gIDYwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDVkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgNWRlZyk7XG4gIH1cblxuICA4MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAtNWRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAtNWRlZyk7XG4gIH1cblxuICB0byB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDBkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgMGRlZyk7XG4gIH1cbn1cblxuLnN3aW5nIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiB0b3AgY2VudGVyO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgY2VudGVyO1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBzd2luZztcbiAgYW5pbWF0aW9uLW5hbWU6IHN3aW5nO1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgdGFkYSB7XG4gIGZyb20ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEsIDEsIDEpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTtcbiAgfVxuXG4gIDEwJSxcbiAgMjAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgwLjksIDAuOSwgMC45KSByb3RhdGUzZCgwLCAwLCAxLCAtM2RlZyk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDAuOSwgMC45LCAwLjkpIHJvdGF0ZTNkKDAsIDAsIDEsIC0zZGVnKTtcbiAgfVxuXG4gIDMwJSxcbiAgNTAlLFxuICA3MCUsXG4gIDkwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMS4xLCAxLjEsIDEuMSkgcm90YXRlM2QoMCwgMCwgMSwgM2RlZyk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEuMSwgMS4xLCAxLjEpIHJvdGF0ZTNkKDAsIDAsIDEsIDNkZWcpO1xuICB9XG5cbiAgNDAlLFxuICA2MCUsXG4gIDgwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMS4xLCAxLjEsIDEuMSkgcm90YXRlM2QoMCwgMCwgMSwgLTNkZWcpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLjEsIDEuMSwgMS4xKSByb3RhdGUzZCgwLCAwLCAxLCAtM2RlZyk7XG4gIH1cblxuICB0byB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEsIDEsIDEpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgdGFkYSB7XG4gIGZyb20ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEsIDEsIDEpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTtcbiAgfVxuXG4gIDEwJSxcbiAgMjAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgwLjksIDAuOSwgMC45KSByb3RhdGUzZCgwLCAwLCAxLCAtM2RlZyk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDAuOSwgMC45LCAwLjkpIHJvdGF0ZTNkKDAsIDAsIDEsIC0zZGVnKTtcbiAgfVxuXG4gIDMwJSxcbiAgNTAlLFxuICA3MCUsXG4gIDkwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMS4xLCAxLjEsIDEuMSkgcm90YXRlM2QoMCwgMCwgMSwgM2RlZyk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEuMSwgMS4xLCAxLjEpIHJvdGF0ZTNkKDAsIDAsIDEsIDNkZWcpO1xuICB9XG5cbiAgNDAlLFxuICA2MCUsXG4gIDgwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMS4xLCAxLjEsIDEuMSkgcm90YXRlM2QoMCwgMCwgMSwgLTNkZWcpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLjEsIDEuMSwgMS4xKSByb3RhdGUzZCgwLCAwLCAxLCAtM2RlZyk7XG4gIH1cblxuICB0byB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEsIDEsIDEpO1xuICB9XG59XG5cbi50YWRhIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogdGFkYTtcbiAgYW5pbWF0aW9uLW5hbWU6IHRhZGE7XG59XG5cbi8qIG9yaWdpbmFsbHkgYXV0aG9yZWQgYnkgTmljayBQZXR0aXQgLSBodHRwczovL2dpdGh1Yi5jb20vbmlja3BldHRpdC9nbGlkZSAqL1xuXG5ALXdlYmtpdC1rZXlmcmFtZXMgd29iYmxlIHtcbiAgZnJvbSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIH1cblxuICAxNSUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMjUlLCAwLCAwKSByb3RhdGUzZCgwLCAwLCAxLCAtNWRlZyk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMjUlLCAwLCAwKSByb3RhdGUzZCgwLCAwLCAxLCAtNWRlZyk7XG4gIH1cblxuICAzMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgyMCUsIDAsIDApIHJvdGF0ZTNkKDAsIDAsIDEsIDNkZWcpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMjAlLCAwLCAwKSByb3RhdGUzZCgwLCAwLCAxLCAzZGVnKTtcbiAgfVxuXG4gIDQ1JSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xNSUsIDAsIDApIHJvdGF0ZTNkKDAsIDAsIDEsIC0zZGVnKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xNSUsIDAsIDApIHJvdGF0ZTNkKDAsIDAsIDEsIC0zZGVnKTtcbiAgfVxuXG4gIDYwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwJSwgMCwgMCkgcm90YXRlM2QoMCwgMCwgMSwgMmRlZyk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMCUsIDAsIDApIHJvdGF0ZTNkKDAsIDAsIDEsIDJkZWcpO1xuICB9XG5cbiAgNzUlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTUlLCAwLCAwKSByb3RhdGUzZCgwLCAwLCAxLCAtMWRlZyk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNSUsIDAsIDApIHJvdGF0ZTNkKDAsIDAsIDEsIC0xZGVnKTtcbiAgfVxuXG4gIHRvIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHdvYmJsZSB7XG4gIGZyb20ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB9XG5cbiAgMTUlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTI1JSwgMCwgMCkgcm90YXRlM2QoMCwgMCwgMSwgLTVkZWcpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTI1JSwgMCwgMCkgcm90YXRlM2QoMCwgMCwgMSwgLTVkZWcpO1xuICB9XG5cbiAgMzAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMjAlLCAwLCAwKSByb3RhdGUzZCgwLCAwLCAxLCAzZGVnKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDIwJSwgMCwgMCkgcm90YXRlM2QoMCwgMCwgMSwgM2RlZyk7XG4gIH1cblxuICA0NSUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTUlLCAwLCAwKSByb3RhdGUzZCgwLCAwLCAxLCAtM2RlZyk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTUlLCAwLCAwKSByb3RhdGUzZCgwLCAwLCAxLCAtM2RlZyk7XG4gIH1cblxuICA2MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMCUsIDAsIDApIHJvdGF0ZTNkKDAsIDAsIDEsIDJkZWcpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAlLCAwLCAwKSByb3RhdGUzZCgwLCAwLCAxLCAyZGVnKTtcbiAgfVxuXG4gIDc1JSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01JSwgMCwgMCkgcm90YXRlM2QoMCwgMCwgMSwgLTFkZWcpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTUlLCAwLCAwKSByb3RhdGUzZCgwLCAwLCAxLCAtMWRlZyk7XG4gIH1cblxuICB0byB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIH1cbn1cblxuLndvYmJsZSB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHdvYmJsZTtcbiAgYW5pbWF0aW9uLW5hbWU6IHdvYmJsZTtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGplbGxvIHtcbiAgZnJvbSxcbiAgMTEuMSUsXG4gIHRvIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgfVxuXG4gIDIyLjIlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2tld1goLTEyLjVkZWcpIHNrZXdZKC0xMi41ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHNrZXdYKC0xMi41ZGVnKSBza2V3WSgtMTIuNWRlZyk7XG4gIH1cblxuICAzMy4zJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNrZXdYKDYuMjVkZWcpIHNrZXdZKDYuMjVkZWcpO1xuICAgIHRyYW5zZm9ybTogc2tld1goNi4yNWRlZykgc2tld1koNi4yNWRlZyk7XG4gIH1cblxuICA0NC40JSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNrZXdYKC0zLjEyNWRlZykgc2tld1koLTMuMTI1ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHNrZXdYKC0zLjEyNWRlZykgc2tld1koLTMuMTI1ZGVnKTtcbiAgfVxuXG4gIDU1LjUlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2tld1goMS41NjI1ZGVnKSBza2V3WSgxLjU2MjVkZWcpO1xuICAgIHRyYW5zZm9ybTogc2tld1goMS41NjI1ZGVnKSBza2V3WSgxLjU2MjVkZWcpO1xuICB9XG5cbiAgNjYuNiUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBza2V3WCgtMC43ODEyNWRlZykgc2tld1koLTAuNzgxMjVkZWcpO1xuICAgIHRyYW5zZm9ybTogc2tld1goLTAuNzgxMjVkZWcpIHNrZXdZKC0wLjc4MTI1ZGVnKTtcbiAgfVxuXG4gIDc3LjclIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2tld1goMC4zOTA2MjVkZWcpIHNrZXdZKDAuMzkwNjI1ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHNrZXdYKDAuMzkwNjI1ZGVnKSBza2V3WSgwLjM5MDYyNWRlZyk7XG4gIH1cblxuICA4OC44JSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNrZXdYKC0wLjE5NTMxMjVkZWcpIHNrZXdZKC0wLjE5NTMxMjVkZWcpO1xuICAgIHRyYW5zZm9ybTogc2tld1goLTAuMTk1MzEyNWRlZykgc2tld1koLTAuMTk1MzEyNWRlZyk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBqZWxsbyB7XG4gIGZyb20sXG4gIDExLjElLFxuICB0byB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIH1cblxuICAyMi4yJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNrZXdYKC0xMi41ZGVnKSBza2V3WSgtMTIuNWRlZyk7XG4gICAgdHJhbnNmb3JtOiBza2V3WCgtMTIuNWRlZykgc2tld1koLTEyLjVkZWcpO1xuICB9XG5cbiAgMzMuMyUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBza2V3WCg2LjI1ZGVnKSBza2V3WSg2LjI1ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHNrZXdYKDYuMjVkZWcpIHNrZXdZKDYuMjVkZWcpO1xuICB9XG5cbiAgNDQuNCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBza2V3WCgtMy4xMjVkZWcpIHNrZXdZKC0zLjEyNWRlZyk7XG4gICAgdHJhbnNmb3JtOiBza2V3WCgtMy4xMjVkZWcpIHNrZXdZKC0zLjEyNWRlZyk7XG4gIH1cblxuICA1NS41JSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNrZXdYKDEuNTYyNWRlZykgc2tld1koMS41NjI1ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHNrZXdYKDEuNTYyNWRlZykgc2tld1koMS41NjI1ZGVnKTtcbiAgfVxuXG4gIDY2LjYlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2tld1goLTAuNzgxMjVkZWcpIHNrZXdZKC0wLjc4MTI1ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHNrZXdYKC0wLjc4MTI1ZGVnKSBza2V3WSgtMC43ODEyNWRlZyk7XG4gIH1cblxuICA3Ny43JSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNrZXdYKDAuMzkwNjI1ZGVnKSBza2V3WSgwLjM5MDYyNWRlZyk7XG4gICAgdHJhbnNmb3JtOiBza2V3WCgwLjM5MDYyNWRlZykgc2tld1koMC4zOTA2MjVkZWcpO1xuICB9XG5cbiAgODguOCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBza2V3WCgtMC4xOTUzMTI1ZGVnKSBza2V3WSgtMC4xOTUzMTI1ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHNrZXdYKC0wLjE5NTMxMjVkZWcpIHNrZXdZKC0wLjE5NTMxMjVkZWcpO1xuICB9XG59XG5cbi5qZWxsbyB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGplbGxvO1xuICBhbmltYXRpb24tbmFtZTogamVsbG87XG4gIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBoZWFydEJlYXQge1xuICAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIH1cblxuICAxNCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxLjMpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4zKTtcbiAgfVxuXG4gIDI4JSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIH1cblxuICA0MiUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxLjMpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4zKTtcbiAgfVxuXG4gIDcwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBoZWFydEJlYXQge1xuICAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIH1cblxuICAxNCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxLjMpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4zKTtcbiAgfVxuXG4gIDI4JSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIH1cblxuICA0MiUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxLjMpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4zKTtcbiAgfVxuXG4gIDcwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIH1cbn1cblxuLmhlYXJ0QmVhdCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGhlYXJ0QmVhdDtcbiAgYW5pbWF0aW9uLW5hbWU6IGhlYXJ0QmVhdDtcbiAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDEuM3M7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMS4zcztcbiAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBib3VuY2VJbiB7XG4gIGZyb20sXG4gIDIwJSxcbiAgNDAlLFxuICA2MCUsXG4gIDgwJSxcbiAgdG8ge1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxLCAwLjM1NSwgMSk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxLCAwLjM1NSwgMSk7XG4gIH1cblxuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgwLjMsIDAuMywgMC4zKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMC4zLCAwLjMsIDAuMyk7XG4gIH1cblxuICAyMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEuMSwgMS4xLCAxLjEpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLjEsIDEuMSwgMS4xKTtcbiAgfVxuXG4gIDQwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMC45LCAwLjksIDAuOSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDAuOSwgMC45LCAwLjkpO1xuICB9XG5cbiAgNjAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEuMDMsIDEuMDMsIDEuMDMpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLjAzLCAxLjAzLCAxLjAzKTtcbiAgfVxuXG4gIDgwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMC45NywgMC45NywgMC45Nyk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDAuOTcsIDAuOTcsIDAuOTcpO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEsIDEsIDEpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgYm91bmNlSW4ge1xuICBmcm9tLFxuICAyMCUsXG4gIDQwJSxcbiAgNjAlLFxuICA4MCUsXG4gIHRvIHtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIxNSwgMC42MSwgMC4zNTUsIDEpO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIxNSwgMC42MSwgMC4zNTUsIDEpO1xuICB9XG5cbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMC4zLCAwLjMsIDAuMyk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDAuMywgMC4zLCAwLjMpO1xuICB9XG5cbiAgMjAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgxLjEsIDEuMSwgMS4xKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMS4xLCAxLjEsIDEuMSk7XG4gIH1cblxuICA0MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDAuOSwgMC45LCAwLjkpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgwLjksIDAuOSwgMC45KTtcbiAgfVxuXG4gIDYwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgxLjAzLCAxLjAzLCAxLjAzKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMS4wMywgMS4wMywgMS4wMyk7XG4gIH1cblxuICA4MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDAuOTcsIDAuOTcsIDAuOTcpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgwLjk3LCAwLjk3LCAwLjk3KTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEsIDEsIDEpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTtcbiAgfVxufVxuXG4uYm91bmNlSW4ge1xuICAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogMC43NXM7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMC43NXM7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGJvdW5jZUluO1xuICBhbmltYXRpb24tbmFtZTogYm91bmNlSW47XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBib3VuY2VJbkRvd24ge1xuICBmcm9tLFxuICA2MCUsXG4gIDc1JSxcbiAgOTAlLFxuICB0byB7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEsIDAuMzU1LCAxKTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEsIDAuMzU1LCAxKTtcbiAgfVxuXG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMzAwMHB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0zMDAwcHgsIDApO1xuICB9XG5cbiAgNjAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAyNXB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDI1cHgsIDApO1xuICB9XG5cbiAgNzUlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwcHgsIDApO1xuICB9XG5cbiAgOTAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgNXB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDVweCwgMCk7XG4gIH1cblxuICB0byB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBib3VuY2VJbkRvd24ge1xuICBmcm9tLFxuICA2MCUsXG4gIDc1JSxcbiAgOTAlLFxuICB0byB7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEsIDAuMzU1LCAxKTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEsIDAuMzU1LCAxKTtcbiAgfVxuXG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMzAwMHB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0zMDAwcHgsIDApO1xuICB9XG5cbiAgNjAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAyNXB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDI1cHgsIDApO1xuICB9XG5cbiAgNzUlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwcHgsIDApO1xuICB9XG5cbiAgOTAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgNXB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDVweCwgMCk7XG4gIH1cblxuICB0byB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIH1cbn1cblxuLmJvdW5jZUluRG93biB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGJvdW5jZUluRG93bjtcbiAgYW5pbWF0aW9uLW5hbWU6IGJvdW5jZUluRG93bjtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGJvdW5jZUluTGVmdCB7XG4gIGZyb20sXG4gIDYwJSxcbiAgNzUlLFxuICA5MCUsXG4gIHRvIHtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIxNSwgMC42MSwgMC4zNTUsIDEpO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIxNSwgMC42MSwgMC4zNTUsIDEpO1xuICB9XG5cbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0zMDAwcHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTMwMDBweCwgMCwgMCk7XG4gIH1cblxuICA2MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDI1cHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMjVweCwgMCwgMCk7XG4gIH1cblxuICA3NSUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTBweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTBweCwgMCwgMCk7XG4gIH1cblxuICA5MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCg1cHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoNXB4LCAwLCAwKTtcbiAgfVxuXG4gIHRvIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGJvdW5jZUluTGVmdCB7XG4gIGZyb20sXG4gIDYwJSxcbiAgNzUlLFxuICA5MCUsXG4gIHRvIHtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIxNSwgMC42MSwgMC4zNTUsIDEpO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIxNSwgMC42MSwgMC4zNTUsIDEpO1xuICB9XG5cbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0zMDAwcHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTMwMDBweCwgMCwgMCk7XG4gIH1cblxuICA2MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDI1cHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMjVweCwgMCwgMCk7XG4gIH1cblxuICA3NSUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTBweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTBweCwgMCwgMCk7XG4gIH1cblxuICA5MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCg1cHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoNXB4LCAwLCAwKTtcbiAgfVxuXG4gIHRvIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgfVxufVxuXG4uYm91bmNlSW5MZWZ0IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogYm91bmNlSW5MZWZ0O1xuICBhbmltYXRpb24tbmFtZTogYm91bmNlSW5MZWZ0O1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgYm91bmNlSW5SaWdodCB7XG4gIGZyb20sXG4gIDYwJSxcbiAgNzUlLFxuICA5MCUsXG4gIHRvIHtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIxNSwgMC42MSwgMC4zNTUsIDEpO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIxNSwgMC42MSwgMC4zNTUsIDEpO1xuICB9XG5cbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMzAwMHB4LCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDMwMDBweCwgMCwgMCk7XG4gIH1cblxuICA2MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0yNXB4LCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0yNXB4LCAwLCAwKTtcbiAgfVxuXG4gIDc1JSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwcHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTBweCwgMCwgMCk7XG4gIH1cblxuICA5MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNXB4LCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01cHgsIDAsIDApO1xuICB9XG5cbiAgdG8ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgYm91bmNlSW5SaWdodCB7XG4gIGZyb20sXG4gIDYwJSxcbiAgNzUlLFxuICA5MCUsXG4gIHRvIHtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIxNSwgMC42MSwgMC4zNTUsIDEpO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIxNSwgMC42MSwgMC4zNTUsIDEpO1xuICB9XG5cbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMzAwMHB4LCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDMwMDBweCwgMCwgMCk7XG4gIH1cblxuICA2MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0yNXB4LCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0yNXB4LCAwLCAwKTtcbiAgfVxuXG4gIDc1JSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwcHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTBweCwgMCwgMCk7XG4gIH1cblxuICA5MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNXB4LCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01cHgsIDAsIDApO1xuICB9XG5cbiAgdG8ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB9XG59XG5cbi5ib3VuY2VJblJpZ2h0IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogYm91bmNlSW5SaWdodDtcbiAgYW5pbWF0aW9uLW5hbWU6IGJvdW5jZUluUmlnaHQ7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBib3VuY2VJblVwIHtcbiAgZnJvbSxcbiAgNjAlLFxuICA3NSUsXG4gIDkwJSxcbiAgdG8ge1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxLCAwLjM1NSwgMSk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxLCAwLjM1NSwgMSk7XG4gIH1cblxuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAzMDAwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMzAwMHB4LCAwKTtcbiAgfVxuXG4gIDYwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTIwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTIwcHgsIDApO1xuICB9XG5cbiAgNzUlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTBweCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMHB4LCAwKTtcbiAgfVxuXG4gIDkwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC01cHgsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTVweCwgMCk7XG4gIH1cblxuICB0byB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBib3VuY2VJblVwIHtcbiAgZnJvbSxcbiAgNjAlLFxuICA3NSUsXG4gIDkwJSxcbiAgdG8ge1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxLCAwLjM1NSwgMSk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxLCAwLjM1NSwgMSk7XG4gIH1cblxuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAzMDAwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMzAwMHB4LCAwKTtcbiAgfVxuXG4gIDYwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTIwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTIwcHgsIDApO1xuICB9XG5cbiAgNzUlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTBweCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMHB4LCAwKTtcbiAgfVxuXG4gIDkwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC01cHgsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTVweCwgMCk7XG4gIH1cblxuICB0byB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIH1cbn1cblxuLmJvdW5jZUluVXAge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBib3VuY2VJblVwO1xuICBhbmltYXRpb24tbmFtZTogYm91bmNlSW5VcDtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGJvdW5jZU91dCB7XG4gIDIwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMC45LCAwLjksIDAuOSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDAuOSwgMC45LCAwLjkpO1xuICB9XG5cbiAgNTAlLFxuICA1NSUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMS4xLCAxLjEsIDEuMSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEuMSwgMS4xLCAxLjEpO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMC4zLCAwLjMsIDAuMyk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDAuMywgMC4zLCAwLjMpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgYm91bmNlT3V0IHtcbiAgMjAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgwLjksIDAuOSwgMC45KTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMC45LCAwLjksIDAuOSk7XG4gIH1cblxuICA1MCUsXG4gIDU1JSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgxLjEsIDEuMSwgMS4xKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMS4xLCAxLjEsIDEuMSk7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgwLjMsIDAuMywgMC4zKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMC4zLCAwLjMsIDAuMyk7XG4gIH1cbn1cblxuLmJvdW5jZU91dCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjc1cztcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjc1cztcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogYm91bmNlT3V0O1xuICBhbmltYXRpb24tbmFtZTogYm91bmNlT3V0O1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgYm91bmNlT3V0RG93biB7XG4gIDIwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDEwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTBweCwgMCk7XG4gIH1cblxuICA0MCUsXG4gIDQ1JSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTIwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTIwcHgsIDApO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDIwMDBweCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAyMDAwcHgsIDApO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgYm91bmNlT3V0RG93biB7XG4gIDIwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDEwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTBweCwgMCk7XG4gIH1cblxuICA0MCUsXG4gIDQ1JSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTIwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTIwcHgsIDApO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDIwMDBweCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAyMDAwcHgsIDApO1xuICB9XG59XG5cbi5ib3VuY2VPdXREb3duIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogYm91bmNlT3V0RG93bjtcbiAgYW5pbWF0aW9uLW5hbWU6IGJvdW5jZU91dERvd247XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBib3VuY2VPdXRMZWZ0IHtcbiAgMjAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgyMHB4LCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDIwcHgsIDAsIDApO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0yMDAwcHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTIwMDBweCwgMCwgMCk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBib3VuY2VPdXRMZWZ0IHtcbiAgMjAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgyMHB4LCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDIwcHgsIDAsIDApO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0yMDAwcHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTIwMDBweCwgMCwgMCk7XG4gIH1cbn1cblxuLmJvdW5jZU91dExlZnQge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBib3VuY2VPdXRMZWZ0O1xuICBhbmltYXRpb24tbmFtZTogYm91bmNlT3V0TGVmdDtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGJvdW5jZU91dFJpZ2h0IHtcbiAgMjAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMjBweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMjBweCwgMCwgMCk7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMjAwMHB4LCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDIwMDBweCwgMCwgMCk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBib3VuY2VPdXRSaWdodCB7XG4gIDIwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTIwcHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTIwcHgsIDAsIDApO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDIwMDBweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgyMDAwcHgsIDAsIDApO1xuICB9XG59XG5cbi5ib3VuY2VPdXRSaWdodCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGJvdW5jZU91dFJpZ2h0O1xuICBhbmltYXRpb24tbmFtZTogYm91bmNlT3V0UmlnaHQ7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBib3VuY2VPdXRVcCB7XG4gIDIwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMHB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMHB4LCAwKTtcbiAgfVxuXG4gIDQwJSxcbiAgNDUlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAyMHB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDIwcHgsIDApO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0yMDAwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTIwMDBweCwgMCk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBib3VuY2VPdXRVcCB7XG4gIDIwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMHB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMHB4LCAwKTtcbiAgfVxuXG4gIDQwJSxcbiAgNDUlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAyMHB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDIwcHgsIDApO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0yMDAwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTIwMDBweCwgMCk7XG4gIH1cbn1cblxuLmJvdW5jZU91dFVwIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogYm91bmNlT3V0VXA7XG4gIGFuaW1hdGlvbi1uYW1lOiBib3VuY2VPdXRVcDtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGZhZGVJbiB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGZhZGVJbiB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG4uZmFkZUluIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmFkZUluO1xuICBhbmltYXRpb24tbmFtZTogZmFkZUluO1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZUluRG93biB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMDAlLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMDAlLCAwKTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgZmFkZUluRG93biB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMDAlLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMDAlLCAwKTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB9XG59XG5cbi5mYWRlSW5Eb3duIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmFkZUluRG93bjtcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVJbkRvd247XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBmYWRlSW5Eb3duQmlnIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTIwMDBweCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMjAwMHB4LCAwKTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgZmFkZUluRG93bkJpZyB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0yMDAwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTIwMDBweCwgMCk7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgfVxufVxuXG4uZmFkZUluRG93bkJpZyB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZhZGVJbkRvd25CaWc7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlSW5Eb3duQmlnO1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZUluTGVmdCB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgZmFkZUluTGVmdCB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB9XG59XG5cbi5mYWRlSW5MZWZ0IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmFkZUluTGVmdDtcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVJbkxlZnQ7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBmYWRlSW5MZWZ0QmlnIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTIwMDBweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMjAwMHB4LCAwLCAwKTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgZmFkZUluTGVmdEJpZyB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0yMDAwcHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTIwMDBweCwgMCwgMCk7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgfVxufVxuXG4uZmFkZUluTGVmdEJpZyB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZhZGVJbkxlZnRCaWc7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlSW5MZWZ0QmlnO1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZUluUmlnaHQge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBmYWRlSW5SaWdodCB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCk7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgfVxufVxuXG4uZmFkZUluUmlnaHQge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmYWRlSW5SaWdodDtcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVJblJpZ2h0O1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZUluUmlnaHRCaWcge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgyMDAwcHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMjAwMHB4LCAwLCAwKTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgZmFkZUluUmlnaHRCaWcge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgyMDAwcHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMjAwMHB4LCAwLCAwKTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB9XG59XG5cbi5mYWRlSW5SaWdodEJpZyB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZhZGVJblJpZ2h0QmlnO1xuICBhbmltYXRpb24tbmFtZTogZmFkZUluUmlnaHRCaWc7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBmYWRlSW5VcCB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDEwMCUsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTAwJSwgMCk7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGZhZGVJblVwIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTAwJSwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMDAlLCAwKTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB9XG59XG5cbi5mYWRlSW5VcCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZhZGVJblVwO1xuICBhbmltYXRpb24tbmFtZTogZmFkZUluVXA7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBmYWRlSW5VcEJpZyB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDIwMDBweCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAyMDAwcHgsIDApO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBmYWRlSW5VcEJpZyB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDIwMDBweCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAyMDAwcHgsIDApO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIH1cbn1cblxuLmZhZGVJblVwQmlnIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmFkZUluVXBCaWc7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlSW5VcEJpZztcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGZhZGVPdXQge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBmYWRlT3V0IHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbi5mYWRlT3V0IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmFkZU91dDtcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXQ7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBmYWRlT3V0RG93biB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTAwJSwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMDAlLCAwKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGZhZGVPdXREb3duIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMDAlLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDEwMCUsIDApO1xuICB9XG59XG5cbi5mYWRlT3V0RG93biB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXREb3duO1xuICBhbmltYXRpb24tbmFtZTogZmFkZU91dERvd247XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBmYWRlT3V0RG93bkJpZyB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMjAwMHB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDIwMDBweCwgMCk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBmYWRlT3V0RG93bkJpZyB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMjAwMHB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDIwMDBweCwgMCk7XG4gIH1cbn1cblxuLmZhZGVPdXREb3duQmlnIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmFkZU91dERvd25CaWc7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0RG93bkJpZztcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGZhZGVPdXRMZWZ0IHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTAwJSwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTAwJSwgMCwgMCk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBmYWRlT3V0TGVmdCB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApO1xuICB9XG59XG5cbi5mYWRlT3V0TGVmdCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXRMZWZ0O1xuICBhbmltYXRpb24tbmFtZTogZmFkZU91dExlZnQ7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBmYWRlT3V0TGVmdEJpZyB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTIwMDBweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMjAwMHB4LCAwLCAwKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGZhZGVPdXRMZWZ0QmlnIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMjAwMHB4LCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0yMDAwcHgsIDAsIDApO1xuICB9XG59XG5cbi5mYWRlT3V0TGVmdEJpZyB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXRMZWZ0QmlnO1xuICBhbmltYXRpb24tbmFtZTogZmFkZU91dExlZnRCaWc7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBmYWRlT3V0UmlnaHQge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBmYWRlT3V0UmlnaHQge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCk7XG4gIH1cbn1cblxuLmZhZGVPdXRSaWdodCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXRSaWdodDtcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXRSaWdodDtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGZhZGVPdXRSaWdodEJpZyB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMjAwMHB4LCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDIwMDBweCwgMCwgMCk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBmYWRlT3V0UmlnaHRCaWcge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDIwMDBweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgyMDAwcHgsIDAsIDApO1xuICB9XG59XG5cbi5mYWRlT3V0UmlnaHRCaWcge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0UmlnaHRCaWc7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0UmlnaHRCaWc7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBmYWRlT3V0VXAge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMDAlLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMDAlLCAwKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGZhZGVPdXRVcCB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwMCUsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwMCUsIDApO1xuICB9XG59XG5cbi5mYWRlT3V0VXAge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0VXA7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0VXA7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBmYWRlT3V0VXBCaWcge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0yMDAwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTIwMDBweCwgMCk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBmYWRlT3V0VXBCaWcge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0yMDAwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTIwMDBweCwgMCk7XG4gIH1cbn1cblxuLmZhZGVPdXRVcEJpZyB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXRVcEJpZztcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXRVcEJpZztcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGZsaXAge1xuICBmcm9tIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHNjYWxlM2QoMSwgMSwgMSkgdHJhbnNsYXRlM2QoMCwgMCwgMClcbiAgICAgIHJvdGF0ZTNkKDAsIDEsIDAsIC0zNjBkZWcpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHNjYWxlM2QoMSwgMSwgMSkgdHJhbnNsYXRlM2QoMCwgMCwgMCkgcm90YXRlM2QoMCwgMSwgMCwgLTM2MGRlZyk7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDtcbiAgfVxuXG4gIDQwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSBzY2FsZTNkKDEsIDEsIDEpIHRyYW5zbGF0ZTNkKDAsIDAsIDE1MHB4KVxuICAgICAgcm90YXRlM2QoMCwgMSwgMCwgLTE5MGRlZyk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgc2NhbGUzZCgxLCAxLCAxKSB0cmFuc2xhdGUzZCgwLCAwLCAxNTBweClcbiAgICAgIHJvdGF0ZTNkKDAsIDEsIDAsIC0xOTBkZWcpO1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XG4gIH1cblxuICA1MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgc2NhbGUzZCgxLCAxLCAxKSB0cmFuc2xhdGUzZCgwLCAwLCAxNTBweClcbiAgICAgIHJvdGF0ZTNkKDAsIDEsIDAsIC0xNzBkZWcpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHNjYWxlM2QoMSwgMSwgMSkgdHJhbnNsYXRlM2QoMCwgMCwgMTUwcHgpXG4gICAgICByb3RhdGUzZCgwLCAxLCAwLCAtMTcwZGVnKTtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbiAgfVxuXG4gIDgwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSBzY2FsZTNkKDAuOTUsIDAuOTUsIDAuOTUpIHRyYW5zbGF0ZTNkKDAsIDAsIDApXG4gICAgICByb3RhdGUzZCgwLCAxLCAwLCAwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSBzY2FsZTNkKDAuOTUsIDAuOTUsIDAuOTUpIHRyYW5zbGF0ZTNkKDAsIDAsIDApXG4gICAgICByb3RhdGUzZCgwLCAxLCAwLCAwZGVnKTtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbiAgfVxuXG4gIHRvIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHNjYWxlM2QoMSwgMSwgMSkgdHJhbnNsYXRlM2QoMCwgMCwgMClcbiAgICAgIHJvdGF0ZTNkKDAsIDEsIDAsIDBkZWcpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHNjYWxlM2QoMSwgMSwgMSkgdHJhbnNsYXRlM2QoMCwgMCwgMCkgcm90YXRlM2QoMCwgMSwgMCwgMGRlZyk7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47XG4gIH1cbn1cblxuQGtleWZyYW1lcyBmbGlwIHtcbiAgZnJvbSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSBzY2FsZTNkKDEsIDEsIDEpIHRyYW5zbGF0ZTNkKDAsIDAsIDApXG4gICAgICByb3RhdGUzZCgwLCAxLCAwLCAtMzYwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSBzY2FsZTNkKDEsIDEsIDEpIHRyYW5zbGF0ZTNkKDAsIDAsIDApIHJvdGF0ZTNkKDAsIDEsIDAsIC0zNjBkZWcpO1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XG4gIH1cblxuICA0MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgc2NhbGUzZCgxLCAxLCAxKSB0cmFuc2xhdGUzZCgwLCAwLCAxNTBweClcbiAgICAgIHJvdGF0ZTNkKDAsIDEsIDAsIC0xOTBkZWcpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHNjYWxlM2QoMSwgMSwgMSkgdHJhbnNsYXRlM2QoMCwgMCwgMTUwcHgpXG4gICAgICByb3RhdGUzZCgwLCAxLCAwLCAtMTkwZGVnKTtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xuICB9XG5cbiAgNTAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHNjYWxlM2QoMSwgMSwgMSkgdHJhbnNsYXRlM2QoMCwgMCwgMTUwcHgpXG4gICAgICByb3RhdGUzZCgwLCAxLCAwLCAtMTcwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSBzY2FsZTNkKDEsIDEsIDEpIHRyYW5zbGF0ZTNkKDAsIDAsIDE1MHB4KVxuICAgICAgcm90YXRlM2QoMCwgMSwgMCwgLTE3MGRlZyk7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47XG4gIH1cblxuICA4MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgc2NhbGUzZCgwLjk1LCAwLjk1LCAwLjk1KSB0cmFuc2xhdGUzZCgwLCAwLCAwKVxuICAgICAgcm90YXRlM2QoMCwgMSwgMCwgMGRlZyk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgc2NhbGUzZCgwLjk1LCAwLjk1LCAwLjk1KSB0cmFuc2xhdGUzZCgwLCAwLCAwKVxuICAgICAgcm90YXRlM2QoMCwgMSwgMCwgMGRlZyk7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47XG4gIH1cblxuICB0byB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSBzY2FsZTNkKDEsIDEsIDEpIHRyYW5zbGF0ZTNkKDAsIDAsIDApXG4gICAgICByb3RhdGUzZCgwLCAxLCAwLCAwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSBzY2FsZTNkKDEsIDEsIDEpIHRyYW5zbGF0ZTNkKDAsIDAsIDApIHJvdGF0ZTNkKDAsIDEsIDAsIDBkZWcpO1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluO1xuICB9XG59XG5cbi5hbmltYXRlZC5mbGlwIHtcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiB2aXNpYmxlO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmbGlwO1xuICBhbmltYXRpb24tbmFtZTogZmxpcDtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGZsaXBJblgge1xuICBmcm9tIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsIDAsIDAsIDkwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLCAwLCAwLCA5MGRlZyk7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuXG4gIDQwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLCAwLCAwLCAtMjBkZWcpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsIDAsIDAsIC0yMGRlZyk7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47XG4gIH1cblxuICA2MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwgMCwgMCwgMTBkZWcpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsIDAsIDAsIDEwZGVnKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgODAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsIDAsIDAsIC01ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLCAwLCAwLCAtNWRlZyk7XG4gIH1cblxuICB0byB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGZsaXBJblgge1xuICBmcm9tIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsIDAsIDAsIDkwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLCAwLCAwLCA5MGRlZyk7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuXG4gIDQwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLCAwLCAwLCAtMjBkZWcpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsIDAsIDAsIC0yMGRlZyk7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47XG4gIH1cblxuICA2MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwgMCwgMCwgMTBkZWcpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsIDAsIDAsIDEwZGVnKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgODAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsIDAsIDAsIC01ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLCAwLCAwLCAtNWRlZyk7XG4gIH1cblxuICB0byB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KTtcbiAgfVxufVxuXG4uZmxpcEluWCB7XG4gIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogdmlzaWJsZSAhaW1wb3J0YW50O1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZsaXBJblg7XG4gIGFuaW1hdGlvbi1uYW1lOiBmbGlwSW5YO1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmxpcEluWSB7XG4gIGZyb20ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMCwgMSwgMCwgOTBkZWcpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIDkwZGVnKTtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgNDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIC0yMGRlZyk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMCwgMSwgMCwgLTIwZGVnKTtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbiAgfVxuXG4gIDYwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgwLCAxLCAwLCAxMGRlZyk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMCwgMSwgMCwgMTBkZWcpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICA4MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMCwgMSwgMCwgLTVkZWcpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIC01ZGVnKTtcbiAgfVxuXG4gIHRvIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgZmxpcEluWSB7XG4gIGZyb20ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMCwgMSwgMCwgOTBkZWcpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIDkwZGVnKTtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgNDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIC0yMGRlZyk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMCwgMSwgMCwgLTIwZGVnKTtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbiAgfVxuXG4gIDYwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgwLCAxLCAwLCAxMGRlZyk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMCwgMSwgMCwgMTBkZWcpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICA4MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMCwgMSwgMCwgLTVkZWcpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIC01ZGVnKTtcbiAgfVxuXG4gIHRvIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpO1xuICB9XG59XG5cbi5mbGlwSW5ZIHtcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IHZpc2libGUgIWltcG9ydGFudDtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmxpcEluWTtcbiAgYW5pbWF0aW9uLW5hbWU6IGZsaXBJblk7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBmbGlwT3V0WCB7XG4gIGZyb20ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCk7XG4gIH1cblxuICAzMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwgMCwgMCwgLTIwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLCAwLCAwLCAtMjBkZWcpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICB0byB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLCAwLCAwLCA5MGRlZyk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwgMCwgMCwgOTBkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBmbGlwT3V0WCB7XG4gIGZyb20ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCk7XG4gIH1cblxuICAzMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwgMCwgMCwgLTIwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLCAwLCAwLCAtMjBkZWcpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICB0byB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLCAwLCAwLCA5MGRlZyk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwgMCwgMCwgOTBkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuLmZsaXBPdXRYIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDAuNzVzO1xuICBhbmltYXRpb24tZHVyYXRpb246IDAuNzVzO1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmbGlwT3V0WDtcbiAgYW5pbWF0aW9uLW5hbWU6IGZsaXBPdXRYO1xuICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IHZpc2libGUgIWltcG9ydGFudDtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogdmlzaWJsZSAhaW1wb3J0YW50O1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmxpcE91dFkge1xuICBmcm9tIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpO1xuICB9XG5cbiAgMzAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIC0xNWRlZyk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMCwgMSwgMCwgLTE1ZGVnKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgdG8ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMCwgMSwgMCwgOTBkZWcpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIDkwZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgZmxpcE91dFkge1xuICBmcm9tIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpO1xuICB9XG5cbiAgMzAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIC0xNWRlZyk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMCwgMSwgMCwgLTE1ZGVnKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgdG8ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMCwgMSwgMCwgOTBkZWcpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIDkwZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbi5mbGlwT3V0WSB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjc1cztcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjc1cztcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IHZpc2libGUgIWltcG9ydGFudDtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmxpcE91dFk7XG4gIGFuaW1hdGlvbi1uYW1lOiBmbGlwT3V0WTtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGxpZ2h0U3BlZWRJbiB7XG4gIGZyb20ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKSBza2V3WCgtMzBkZWcpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCkgc2tld1goLTMwZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgNjAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2tld1goMjBkZWcpO1xuICAgIHRyYW5zZm9ybTogc2tld1goMjBkZWcpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICA4MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBza2V3WCgtNWRlZyk7XG4gICAgdHJhbnNmb3JtOiBza2V3WCgtNWRlZyk7XG4gIH1cblxuICB0byB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBsaWdodFNwZWVkSW4ge1xuICBmcm9tIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCkgc2tld1goLTMwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApIHNrZXdYKC0zMGRlZyk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuXG4gIDYwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNrZXdYKDIwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHNrZXdYKDIwZGVnKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgODAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2tld1goLTVkZWcpO1xuICAgIHRyYW5zZm9ybTogc2tld1goLTVkZWcpO1xuICB9XG5cbiAgdG8ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB9XG59XG5cbi5saWdodFNwZWVkSW4ge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBsaWdodFNwZWVkSW47XG4gIGFuaW1hdGlvbi1uYW1lOiBsaWdodFNwZWVkSW47XG4gIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgbGlnaHRTcGVlZE91dCB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICB0byB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApIHNrZXdYKDMwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApIHNrZXdYKDMwZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgbGlnaHRTcGVlZE91dCB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICB0byB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApIHNrZXdYKDMwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApIHNrZXdYKDMwZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbi5saWdodFNwZWVkT3V0IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogbGlnaHRTcGVlZE91dDtcbiAgYW5pbWF0aW9uLW5hbWU6IGxpZ2h0U3BlZWRPdXQ7XG4gIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIHJvdGF0ZUluIHtcbiAgZnJvbSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAtMjAwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIC0yMDBkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cblxuICB0byB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuQGtleWZyYW1lcyByb3RhdGVJbiB7XG4gIGZyb20ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgLTIwMGRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAtMjAwZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgdG8ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbi5yb3RhdGVJbiB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHJvdGF0ZUluO1xuICBhbmltYXRpb24tbmFtZTogcm90YXRlSW47XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyByb3RhdGVJbkRvd25MZWZ0IHtcbiAgZnJvbSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgLTQ1ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIC00NWRlZyk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuXG4gIHRvIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuQGtleWZyYW1lcyByb3RhdGVJbkRvd25MZWZ0IHtcbiAgZnJvbSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgLTQ1ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIC00NWRlZyk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuXG4gIHRvIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuLnJvdGF0ZUluRG93bkxlZnQge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiByb3RhdGVJbkRvd25MZWZ0O1xuICBhbmltYXRpb24tbmFtZTogcm90YXRlSW5Eb3duTGVmdDtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIHJvdGF0ZUluRG93blJpZ2h0IHtcbiAgZnJvbSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCA0NWRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCA0NWRlZyk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuXG4gIHRvIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHJvdGF0ZUluRG93blJpZ2h0IHtcbiAgZnJvbSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCA0NWRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCA0NWRlZyk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuXG4gIHRvIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG4ucm90YXRlSW5Eb3duUmlnaHQge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiByb3RhdGVJbkRvd25SaWdodDtcbiAgYW5pbWF0aW9uLW5hbWU6IHJvdGF0ZUluRG93blJpZ2h0O1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgcm90YXRlSW5VcExlZnQge1xuICBmcm9tIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCA0NWRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCA0NWRlZyk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuXG4gIHRvIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuQGtleWZyYW1lcyByb3RhdGVJblVwTGVmdCB7XG4gIGZyb20ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDQ1ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDQ1ZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgdG8ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG4ucm90YXRlSW5VcExlZnQge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiByb3RhdGVJblVwTGVmdDtcbiAgYW5pbWF0aW9uLW5hbWU6IHJvdGF0ZUluVXBMZWZ0O1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgcm90YXRlSW5VcFJpZ2h0IHtcbiAgZnJvbSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAtOTBkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgLTkwZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgdG8ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgcm90YXRlSW5VcFJpZ2h0IHtcbiAgZnJvbSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAtOTBkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgLTkwZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgdG8ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbi5yb3RhdGVJblVwUmlnaHQge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiByb3RhdGVJblVwUmlnaHQ7XG4gIGFuaW1hdGlvbi1uYW1lOiByb3RhdGVJblVwUmlnaHQ7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyByb3RhdGVPdXQge1xuICBmcm9tIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIHRvIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDIwMGRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAyMDBkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuQGtleWZyYW1lcyByb3RhdGVPdXQge1xuICBmcm9tIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIHRvIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDIwMGRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAyMDBkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuLnJvdGF0ZU91dCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHJvdGF0ZU91dDtcbiAgYW5pbWF0aW9uLW5hbWU6IHJvdGF0ZU91dDtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIHJvdGF0ZU91dERvd25MZWZ0IHtcbiAgZnJvbSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgdG8ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDQ1ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDQ1ZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgcm90YXRlT3V0RG93bkxlZnQge1xuICBmcm9tIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICB0byB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgNDVkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgNDVkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuLnJvdGF0ZU91dERvd25MZWZ0IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogcm90YXRlT3V0RG93bkxlZnQ7XG4gIGFuaW1hdGlvbi1uYW1lOiByb3RhdGVPdXREb3duTGVmdDtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIHJvdGF0ZU91dERvd25SaWdodCB7XG4gIGZyb20ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgdG8ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgLTQ1ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIC00NWRlZyk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHJvdGF0ZU91dERvd25SaWdodCB7XG4gIGZyb20ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgdG8ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgLTQ1ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIC00NWRlZyk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuXG4ucm90YXRlT3V0RG93blJpZ2h0IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogcm90YXRlT3V0RG93blJpZ2h0O1xuICBhbmltYXRpb24tbmFtZTogcm90YXRlT3V0RG93blJpZ2h0O1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgcm90YXRlT3V0VXBMZWZ0IHtcbiAgZnJvbSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgdG8ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIC00NWRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAtNDVkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuQGtleWZyYW1lcyByb3RhdGVPdXRVcExlZnQge1xuICBmcm9tIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICB0byB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgLTQ1ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIC00NWRlZyk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuXG4ucm90YXRlT3V0VXBMZWZ0IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogcm90YXRlT3V0VXBMZWZ0O1xuICBhbmltYXRpb24tbmFtZTogcm90YXRlT3V0VXBMZWZ0O1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgcm90YXRlT3V0VXBSaWdodCB7XG4gIGZyb20ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgdG8ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgOTBkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgOTBkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuQGtleWZyYW1lcyByb3RhdGVPdXRVcFJpZ2h0IHtcbiAgZnJvbSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICB0byB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCA5MGRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCA5MGRlZyk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuXG4ucm90YXRlT3V0VXBSaWdodCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHJvdGF0ZU91dFVwUmlnaHQ7XG4gIGFuaW1hdGlvbi1uYW1lOiByb3RhdGVPdXRVcFJpZ2h0O1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgaGluZ2Uge1xuICAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiB0b3AgbGVmdDtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgbGVmdDtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xuICB9XG5cbiAgMjAlLFxuICA2MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCA4MGRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCA4MGRlZyk7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiB0b3AgbGVmdDtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgbGVmdDtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xuICB9XG5cbiAgNDAlLFxuICA4MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCA2MGRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCA2MGRlZyk7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiB0b3AgbGVmdDtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgbGVmdDtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICB0byB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDcwMHB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDcwMHB4LCAwKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgaGluZ2Uge1xuICAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiB0b3AgbGVmdDtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgbGVmdDtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xuICB9XG5cbiAgMjAlLFxuICA2MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCA4MGRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCA4MGRlZyk7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiB0b3AgbGVmdDtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgbGVmdDtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xuICB9XG5cbiAgNDAlLFxuICA4MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCA2MGRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCA2MGRlZyk7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiB0b3AgbGVmdDtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgbGVmdDtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICB0byB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDcwMHB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDcwMHB4LCAwKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbi5oaW5nZSB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiAycztcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAycztcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogaGluZ2U7XG4gIGFuaW1hdGlvbi1uYW1lOiBoaW5nZTtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGphY2tJblRoZUJveCB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDAuMSkgcm90YXRlKDMwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuMSkgcm90YXRlKDMwZGVnKTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBib3R0b207XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGJvdHRvbTtcbiAgfVxuXG4gIDUwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgtMTBkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKC0xMGRlZyk7XG4gIH1cblxuICA3MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoM2RlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoM2RlZyk7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGphY2tJblRoZUJveCB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDAuMSkgcm90YXRlKDMwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuMSkgcm90YXRlKDMwZGVnKTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBib3R0b207XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGJvdHRvbTtcbiAgfVxuXG4gIDUwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgtMTBkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKC0xMGRlZyk7XG4gIH1cblxuICA3MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoM2RlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoM2RlZyk7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgfVxufVxuXG4uamFja0luVGhlQm94IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogamFja0luVGhlQm94O1xuICBhbmltYXRpb24tbmFtZTogamFja0luVGhlQm94O1xufVxuXG4vKiBvcmlnaW5hbGx5IGF1dGhvcmVkIGJ5IE5pY2sgUGV0dGl0IC0gaHR0cHM6Ly9naXRodWIuY29tL25pY2twZXR0aXQvZ2xpZGUgKi9cblxuQC13ZWJraXQta2V5ZnJhbWVzIHJvbGxJbiB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKSByb3RhdGUzZCgwLCAwLCAxLCAtMTIwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKSByb3RhdGUzZCgwLCAwLCAxLCAtMTIwZGVnKTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgcm9sbEluIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApIHJvdGF0ZTNkKDAsIDAsIDEsIC0xMjBkZWcpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApIHJvdGF0ZTNkKDAsIDAsIDEsIC0xMjBkZWcpO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIH1cbn1cblxuLnJvbGxJbiB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHJvbGxJbjtcbiAgYW5pbWF0aW9uLW5hbWU6IHJvbGxJbjtcbn1cblxuLyogb3JpZ2luYWxseSBhdXRob3JlZCBieSBOaWNrIFBldHRpdCAtIGh0dHBzOi8vZ2l0aHViLmNvbS9uaWNrcGV0dGl0L2dsaWRlICovXG5cbkAtd2Via2l0LWtleWZyYW1lcyByb2xsT3V0IHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKSByb3RhdGUzZCgwLCAwLCAxLCAxMjBkZWcpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCkgcm90YXRlM2QoMCwgMCwgMSwgMTIwZGVnKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHJvbGxPdXQge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApIHJvdGF0ZTNkKDAsIDAsIDEsIDEyMGRlZyk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKSByb3RhdGUzZCgwLCAwLCAxLCAxMjBkZWcpO1xuICB9XG59XG5cbi5yb2xsT3V0IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogcm9sbE91dDtcbiAgYW5pbWF0aW9uLW5hbWU6IHJvbGxPdXQ7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyB6b29tSW4ge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDAuMywgMC4zLCAwLjMpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgwLjMsIDAuMywgMC4zKTtcbiAgfVxuXG4gIDUwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHpvb21JbiB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMC4zLCAwLjMsIDAuMyk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDAuMywgMC4zLCAwLjMpO1xuICB9XG5cbiAgNTAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbi56b29tSW4ge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiB6b29tSW47XG4gIGFuaW1hdGlvbi1uYW1lOiB6b29tSW47XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyB6b29tSW5Eb3duIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgwLjEsIDAuMSwgMC4xKSB0cmFuc2xhdGUzZCgwLCAtMTAwMHB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMC4xLCAwLjEsIDAuMSkgdHJhbnNsYXRlM2QoMCwgLTEwMDBweCwgMCk7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41NSwgMC4wNTUsIDAuNjc1LCAwLjE5KTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41NSwgMC4wNTUsIDAuNjc1LCAwLjE5KTtcbiAgfVxuXG4gIDYwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgwLjQ3NSwgMC40NzUsIDAuNDc1KSB0cmFuc2xhdGUzZCgwLCA2MHB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMC40NzUsIDAuNDc1LCAwLjQ3NSkgdHJhbnNsYXRlM2QoMCwgNjBweCwgMCk7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyLCAxKTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyLCAxKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHpvb21JbkRvd24ge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDAuMSwgMC4xLCAwLjEpIHRyYW5zbGF0ZTNkKDAsIC0xMDAwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgwLjEsIDAuMSwgMC4xKSB0cmFuc2xhdGUzZCgwLCAtMTAwMHB4LCAwKTtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjU1LCAwLjA1NSwgMC42NzUsIDAuMTkpO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjU1LCAwLjA1NSwgMC42NzUsIDAuMTkpO1xuICB9XG5cbiAgNjAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDAuNDc1LCAwLjQ3NSwgMC40NzUpIHRyYW5zbGF0ZTNkKDAsIDYwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgwLjQ3NSwgMC40NzUsIDAuNDc1KSB0cmFuc2xhdGUzZCgwLCA2MHB4LCAwKTtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIsIDEpO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIsIDEpO1xuICB9XG59XG5cbi56b29tSW5Eb3duIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogem9vbUluRG93bjtcbiAgYW5pbWF0aW9uLW5hbWU6IHpvb21JbkRvd247XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyB6b29tSW5MZWZ0IHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgwLjEsIDAuMSwgMC4xKSB0cmFuc2xhdGUzZCgtMTAwMHB4LCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMC4xLCAwLjEsIDAuMSkgdHJhbnNsYXRlM2QoLTEwMDBweCwgMCwgMCk7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41NSwgMC4wNTUsIDAuNjc1LCAwLjE5KTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41NSwgMC4wNTUsIDAuNjc1LCAwLjE5KTtcbiAgfVxuXG4gIDYwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgwLjQ3NSwgMC40NzUsIDAuNDc1KSB0cmFuc2xhdGUzZCgxMHB4LCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMC40NzUsIDAuNDc1LCAwLjQ3NSkgdHJhbnNsYXRlM2QoMTBweCwgMCwgMCk7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyLCAxKTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyLCAxKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHpvb21JbkxlZnQge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDAuMSwgMC4xLCAwLjEpIHRyYW5zbGF0ZTNkKC0xMDAwcHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgwLjEsIDAuMSwgMC4xKSB0cmFuc2xhdGUzZCgtMTAwMHB4LCAwLCAwKTtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjU1LCAwLjA1NSwgMC42NzUsIDAuMTkpO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjU1LCAwLjA1NSwgMC42NzUsIDAuMTkpO1xuICB9XG5cbiAgNjAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDAuNDc1LCAwLjQ3NSwgMC40NzUpIHRyYW5zbGF0ZTNkKDEwcHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgwLjQ3NSwgMC40NzUsIDAuNDc1KSB0cmFuc2xhdGUzZCgxMHB4LCAwLCAwKTtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIsIDEpO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIsIDEpO1xuICB9XG59XG5cbi56b29tSW5MZWZ0IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogem9vbUluTGVmdDtcbiAgYW5pbWF0aW9uLW5hbWU6IHpvb21JbkxlZnQ7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyB6b29tSW5SaWdodCB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMC4xLCAwLjEsIDAuMSkgdHJhbnNsYXRlM2QoMTAwMHB4LCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMC4xLCAwLjEsIDAuMSkgdHJhbnNsYXRlM2QoMTAwMHB4LCAwLCAwKTtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjU1LCAwLjA1NSwgMC42NzUsIDAuMTkpO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjU1LCAwLjA1NSwgMC42NzUsIDAuMTkpO1xuICB9XG5cbiAgNjAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDAuNDc1LCAwLjQ3NSwgMC40NzUpIHRyYW5zbGF0ZTNkKC0xMHB4LCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMC40NzUsIDAuNDc1LCAwLjQ3NSkgdHJhbnNsYXRlM2QoLTEwcHgsIDAsIDApO1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMiwgMSk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMiwgMSk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyB6b29tSW5SaWdodCB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMC4xLCAwLjEsIDAuMSkgdHJhbnNsYXRlM2QoMTAwMHB4LCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMC4xLCAwLjEsIDAuMSkgdHJhbnNsYXRlM2QoMTAwMHB4LCAwLCAwKTtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjU1LCAwLjA1NSwgMC42NzUsIDAuMTkpO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjU1LCAwLjA1NSwgMC42NzUsIDAuMTkpO1xuICB9XG5cbiAgNjAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDAuNDc1LCAwLjQ3NSwgMC40NzUpIHRyYW5zbGF0ZTNkKC0xMHB4LCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMC40NzUsIDAuNDc1LCAwLjQ3NSkgdHJhbnNsYXRlM2QoLTEwcHgsIDAsIDApO1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMiwgMSk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMiwgMSk7XG4gIH1cbn1cblxuLnpvb21JblJpZ2h0IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogem9vbUluUmlnaHQ7XG4gIGFuaW1hdGlvbi1uYW1lOiB6b29tSW5SaWdodDtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIHpvb21JblVwIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgwLjEsIDAuMSwgMC4xKSB0cmFuc2xhdGUzZCgwLCAxMDAwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgwLjEsIDAuMSwgMC4xKSB0cmFuc2xhdGUzZCgwLCAxMDAwcHgsIDApO1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNTUsIDAuMDU1LCAwLjY3NSwgMC4xOSk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNTUsIDAuMDU1LCAwLjY3NSwgMC4xOSk7XG4gIH1cblxuICA2MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMC40NzUsIDAuNDc1LCAwLjQ3NSkgdHJhbnNsYXRlM2QoMCwgLTYwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgwLjQ3NSwgMC40NzUsIDAuNDc1KSB0cmFuc2xhdGUzZCgwLCAtNjBweCwgMCk7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyLCAxKTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyLCAxKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHpvb21JblVwIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgwLjEsIDAuMSwgMC4xKSB0cmFuc2xhdGUzZCgwLCAxMDAwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgwLjEsIDAuMSwgMC4xKSB0cmFuc2xhdGUzZCgwLCAxMDAwcHgsIDApO1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNTUsIDAuMDU1LCAwLjY3NSwgMC4xOSk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNTUsIDAuMDU1LCAwLjY3NSwgMC4xOSk7XG4gIH1cblxuICA2MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMC40NzUsIDAuNDc1LCAwLjQ3NSkgdHJhbnNsYXRlM2QoMCwgLTYwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgwLjQ3NSwgMC40NzUsIDAuNDc1KSB0cmFuc2xhdGUzZCgwLCAtNjBweCwgMCk7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyLCAxKTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyLCAxKTtcbiAgfVxufVxuXG4uem9vbUluVXAge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiB6b29tSW5VcDtcbiAgYW5pbWF0aW9uLW5hbWU6IHpvb21JblVwO1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgem9vbU91dCB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICA1MCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMC4zLCAwLjMsIDAuMyk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDAuMywgMC4zLCAwLjMpO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuQGtleWZyYW1lcyB6b29tT3V0IHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIDUwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgwLjMsIDAuMywgMC4zKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMC4zLCAwLjMsIDAuMyk7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuXG4uem9vbU91dCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHpvb21PdXQ7XG4gIGFuaW1hdGlvbi1uYW1lOiB6b29tT3V0O1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgem9vbU91dERvd24ge1xuICA0MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMC40NzUsIDAuNDc1LCAwLjQ3NSkgdHJhbnNsYXRlM2QoMCwgLTYwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgwLjQ3NSwgMC40NzUsIDAuNDc1KSB0cmFuc2xhdGUzZCgwLCAtNjBweCwgMCk7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41NSwgMC4wNTUsIDAuNjc1LCAwLjE5KTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41NSwgMC4wNTUsIDAuNjc1LCAwLjE5KTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDAuMSwgMC4xLCAwLjEpIHRyYW5zbGF0ZTNkKDAsIDIwMDBweCwgMCk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDAuMSwgMC4xLCAwLjEpIHRyYW5zbGF0ZTNkKDAsIDIwMDBweCwgMCk7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgYm90dG9tO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBib3R0b207XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyLCAxKTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyLCAxKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHpvb21PdXREb3duIHtcbiAgNDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDAuNDc1LCAwLjQ3NSwgMC40NzUpIHRyYW5zbGF0ZTNkKDAsIC02MHB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMC40NzUsIDAuNDc1LCAwLjQ3NSkgdHJhbnNsYXRlM2QoMCwgLTYwcHgsIDApO1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNTUsIDAuMDU1LCAwLjY3NSwgMC4xOSk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNTUsIDAuMDU1LCAwLjY3NSwgMC4xOSk7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgwLjEsIDAuMSwgMC4xKSB0cmFuc2xhdGUzZCgwLCAyMDAwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgwLjEsIDAuMSwgMC4xKSB0cmFuc2xhdGUzZCgwLCAyMDAwcHgsIDApO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGJvdHRvbTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgYm90dG9tO1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMiwgMSk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMiwgMSk7XG4gIH1cbn1cblxuLnpvb21PdXREb3duIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogem9vbU91dERvd247XG4gIGFuaW1hdGlvbi1uYW1lOiB6b29tT3V0RG93bjtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIHpvb21PdXRMZWZ0IHtcbiAgNDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDAuNDc1LCAwLjQ3NSwgMC40NzUpIHRyYW5zbGF0ZTNkKDQycHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgwLjQ3NSwgMC40NzUsIDAuNDc1KSB0cmFuc2xhdGUzZCg0MnB4LCAwLCAwKTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjEpIHRyYW5zbGF0ZTNkKC0yMDAwcHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC4xKSB0cmFuc2xhdGUzZCgtMjAwMHB4LCAwLCAwKTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGxlZnQgY2VudGVyO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgY2VudGVyO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgem9vbU91dExlZnQge1xuICA0MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMC40NzUsIDAuNDc1LCAwLjQ3NSkgdHJhbnNsYXRlM2QoNDJweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDAuNDc1LCAwLjQ3NSwgMC40NzUpIHRyYW5zbGF0ZTNkKDQycHgsIDAsIDApO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDAuMSkgdHJhbnNsYXRlM2QoLTIwMDBweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjEpIHRyYW5zbGF0ZTNkKC0yMDAwcHgsIDAsIDApO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBjZW50ZXI7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBjZW50ZXI7XG4gIH1cbn1cblxuLnpvb21PdXRMZWZ0IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogem9vbU91dExlZnQ7XG4gIGFuaW1hdGlvbi1uYW1lOiB6b29tT3V0TGVmdDtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIHpvb21PdXRSaWdodCB7XG4gIDQwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgwLjQ3NSwgMC40NzUsIDAuNDc1KSB0cmFuc2xhdGUzZCgtNDJweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDAuNDc1LCAwLjQ3NSwgMC40NzUpIHRyYW5zbGF0ZTNkKC00MnB4LCAwLCAwKTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjEpIHRyYW5zbGF0ZTNkKDIwMDBweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjEpIHRyYW5zbGF0ZTNkKDIwMDBweCwgMCwgMCk7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBjZW50ZXI7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgY2VudGVyO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgem9vbU91dFJpZ2h0IHtcbiAgNDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDAuNDc1LCAwLjQ3NSwgMC40NzUpIHRyYW5zbGF0ZTNkKC00MnB4LCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMC40NzUsIDAuNDc1LCAwLjQ3NSkgdHJhbnNsYXRlM2QoLTQycHgsIDAsIDApO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDAuMSkgdHJhbnNsYXRlM2QoMjAwMHB4LCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuMSkgdHJhbnNsYXRlM2QoMjAwMHB4LCAwLCAwKTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGNlbnRlcjtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBjZW50ZXI7XG4gIH1cbn1cblxuLnpvb21PdXRSaWdodCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHpvb21PdXRSaWdodDtcbiAgYW5pbWF0aW9uLW5hbWU6IHpvb21PdXRSaWdodDtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIHpvb21PdXRVcCB7XG4gIDQwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgwLjQ3NSwgMC40NzUsIDAuNDc1KSB0cmFuc2xhdGUzZCgwLCA2MHB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMC40NzUsIDAuNDc1LCAwLjQ3NSkgdHJhbnNsYXRlM2QoMCwgNjBweCwgMCk7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41NSwgMC4wNTUsIDAuNjc1LCAwLjE5KTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41NSwgMC4wNTUsIDAuNjc1LCAwLjE5KTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDAuMSwgMC4xLCAwLjEpIHRyYW5zbGF0ZTNkKDAsIC0yMDAwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgwLjEsIDAuMSwgMC4xKSB0cmFuc2xhdGUzZCgwLCAtMjAwMHB4LCAwKTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBib3R0b207XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGJvdHRvbTtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIsIDEpO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIsIDEpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgem9vbU91dFVwIHtcbiAgNDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDAuNDc1LCAwLjQ3NSwgMC40NzUpIHRyYW5zbGF0ZTNkKDAsIDYwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgwLjQ3NSwgMC40NzUsIDAuNDc1KSB0cmFuc2xhdGUzZCgwLCA2MHB4LCAwKTtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjU1LCAwLjA1NSwgMC42NzUsIDAuMTkpO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjU1LCAwLjA1NSwgMC42NzUsIDAuMTkpO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMC4xLCAwLjEsIDAuMSkgdHJhbnNsYXRlM2QoMCwgLTIwMDBweCwgMCk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDAuMSwgMC4xLCAwLjEpIHRyYW5zbGF0ZTNkKDAsIC0yMDAwcHgsIDApO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGJvdHRvbTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgYm90dG9tO1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMiwgMSk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMiwgMSk7XG4gIH1cbn1cblxuLnpvb21PdXRVcCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHpvb21PdXRVcDtcbiAgYW5pbWF0aW9uLW5hbWU6IHpvb21PdXRVcDtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIHNsaWRlSW5Eb3duIHtcbiAgZnJvbSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMDAlLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMDAlLCAwKTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICB9XG5cbiAgdG8ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgc2xpZGVJbkRvd24ge1xuICBmcm9tIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwMCUsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwMCUsIDApO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIH1cblxuICB0byB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIH1cbn1cblxuLnNsaWRlSW5Eb3duIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogc2xpZGVJbkRvd247XG4gIGFuaW1hdGlvbi1uYW1lOiBzbGlkZUluRG93bjtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIHNsaWRlSW5MZWZ0IHtcbiAgZnJvbSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICB9XG5cbiAgdG8ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgc2xpZGVJbkxlZnQge1xuICBmcm9tIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIH1cblxuICB0byB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIH1cbn1cblxuLnNsaWRlSW5MZWZ0IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogc2xpZGVJbkxlZnQ7XG4gIGFuaW1hdGlvbi1uYW1lOiBzbGlkZUluTGVmdDtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIHNsaWRlSW5SaWdodCB7XG4gIGZyb20ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIH1cblxuICB0byB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBzbGlkZUluUmlnaHQge1xuICBmcm9tIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICB9XG5cbiAgdG8ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB9XG59XG5cbi5zbGlkZUluUmlnaHQge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBzbGlkZUluUmlnaHQ7XG4gIGFuaW1hdGlvbi1uYW1lOiBzbGlkZUluUmlnaHQ7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBzbGlkZUluVXAge1xuICBmcm9tIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTAwJSwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMDAlLCAwKTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICB9XG5cbiAgdG8ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgc2xpZGVJblVwIHtcbiAgZnJvbSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDEwMCUsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTAwJSwgMCk7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgfVxuXG4gIHRvIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgfVxufVxuXG4uc2xpZGVJblVwIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogc2xpZGVJblVwO1xuICBhbmltYXRpb24tbmFtZTogc2xpZGVJblVwO1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgc2xpZGVPdXREb3duIHtcbiAgZnJvbSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIH1cblxuICB0byB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMDAlLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDEwMCUsIDApO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgc2xpZGVPdXREb3duIHtcbiAgZnJvbSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIH1cblxuICB0byB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMDAlLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDEwMCUsIDApO1xuICB9XG59XG5cbi5zbGlkZU91dERvd24ge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBzbGlkZU91dERvd247XG4gIGFuaW1hdGlvbi1uYW1lOiBzbGlkZU91dERvd247XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBzbGlkZU91dExlZnQge1xuICBmcm9tIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgfVxuXG4gIHRvIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHNsaWRlT3V0TGVmdCB7XG4gIGZyb20ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB9XG5cbiAgdG8ge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApO1xuICB9XG59XG5cbi5zbGlkZU91dExlZnQge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBzbGlkZU91dExlZnQ7XG4gIGFuaW1hdGlvbi1uYW1lOiBzbGlkZU91dExlZnQ7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBzbGlkZU91dFJpZ2h0IHtcbiAgZnJvbSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIH1cblxuICB0byB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgc2xpZGVPdXRSaWdodCB7XG4gIGZyb20ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB9XG5cbiAgdG8ge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKTtcbiAgfVxufVxuXG4uc2xpZGVPdXRSaWdodCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHNsaWRlT3V0UmlnaHQ7XG4gIGFuaW1hdGlvbi1uYW1lOiBzbGlkZU91dFJpZ2h0O1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgc2xpZGVPdXRVcCB7XG4gIGZyb20ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB9XG5cbiAgdG8ge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwMCUsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwMCUsIDApO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgc2xpZGVPdXRVcCB7XG4gIGZyb20ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB9XG5cbiAgdG8ge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwMCUsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwMCUsIDApO1xuICB9XG59XG5cbi5zbGlkZU91dFVwIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogc2xpZGVPdXRVcDtcbiAgYW5pbWF0aW9uLW5hbWU6IHNsaWRlT3V0VXA7XG59XG5cbi5hbmltYXRlZCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgLXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOiBib3RoO1xuICBhbmltYXRpb24tZmlsbC1tb2RlOiBib3RoO1xufVxuXG4uYW5pbWF0ZWQuaW5maW5pdGUge1xuICAtd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbn1cblxuLmFuaW1hdGVkLmRlbGF5LTFzIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IDFzO1xuICBhbmltYXRpb24tZGVsYXk6IDFzO1xufVxuXG4uYW5pbWF0ZWQuZGVsYXktMnMge1xuICAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogMnM7XG4gIGFuaW1hdGlvbi1kZWxheTogMnM7XG59XG5cbi5hbmltYXRlZC5kZWxheS0zcyB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAzcztcbiAgYW5pbWF0aW9uLWRlbGF5OiAzcztcbn1cblxuLmFuaW1hdGVkLmRlbGF5LTRzIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IDRzO1xuICBhbmltYXRpb24tZGVsYXk6IDRzO1xufVxuXG4uYW5pbWF0ZWQuZGVsYXktNXMge1xuICAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogNXM7XG4gIGFuaW1hdGlvbi1kZWxheTogNXM7XG59XG5cbi5hbmltYXRlZC5mYXN0IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDgwMG1zO1xuICBhbmltYXRpb24tZHVyYXRpb246IDgwMG1zO1xufVxuXG4uYW5pbWF0ZWQuZmFzdGVyIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDUwMG1zO1xuICBhbmltYXRpb24tZHVyYXRpb246IDUwMG1zO1xufVxuXG4uYW5pbWF0ZWQuc2xvdyB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiAycztcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAycztcbn1cblxuLmFuaW1hdGVkLnNsb3dlciB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiAzcztcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAzcztcbn1cblxuQG1lZGlhIChwcmludCksIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgLmFuaW1hdGVkIHtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogMW1zICFpbXBvcnRhbnQ7XG4gICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxbXMgIWltcG9ydGFudDtcbiAgICAtd2Via2l0LXRyYW5zaXRpb24tZHVyYXRpb246IDFtcyAhaW1wb3J0YW50O1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDFtcyAhaW1wb3J0YW50O1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogMSAhaW1wb3J0YW50O1xuICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IDEgIWltcG9ydGFudDtcbiAgfVxufVxuIiwiLy8gVGhpbiAxMDBcbi8vIEV4dHJhLUxpZ2h0IDIwMFxuLy8gTGlnaHQgMzAwXG4vLyBOb3JtYWwgNDAwXG4vLyBNZWRpdW0gNTAwXG4vLyBTZW1pLUJvbGQgNjAwXG4vLyBCb2xkIDcwMFxuLy8gRXh0cmEtQm9sZCA4MDBcbi8vIFVsdHJhLUJvbGQgOTAwXG5cbiRmdy1saWdodCA6IDMwMDtcbiRmdy1yZWd1bGFyIDogNDAwO1xuJGZ3LXNlbWlib2xkIDogNjAwO1xuJGZ3LWJvbGQgOiA3MDA7XG4kZnctaGVhdnkgOiA5MDA7XG5cbiRpbmNsdWRlLWZvbnRzIDogdHJ1ZSAhZGVmYXVsdDtcblxuJGYtVGV0cmEgOiAnVGV0cmEnO1xuJGYtTm9haC1SZWd1bGFyIDogJ05vYWgtUmVndWxhcic7XG4kZi10b2Zpbm8tcmVndWxhciA6ICdUb2Zpbm8tUmVndWxhcic7XG4kZi10b2Zpbm8tZ3J1bmdlIDogJ1RvZmluby1HcnVuZ2UnO1xuJGYtTm9haC1Cb2xkIDogJ05vYWgtQm9sZCc7XG4vLyRmLVRldHJhLURlY29yYXRpdmUgOiAnVGV0cmEtRGVjb3JhdGl2ZSc7XG4vLyRmLU5vYWgtQm9sZEl0YWxpYyA6ICdOb2FoLUJvbGRJdGFsaWMnO1xuLy8kZi1Ob2FoLVJlZ3VsYXJJdGFsaWMgOiAnTm9haC1SZWd1bGFySXRhbGljJztcblxuJGZvbnRzLWxpc3QgOiAoXG5cdFx0JGYtVGV0cmEsXG5cdFx0JGYtTm9haC1SZWd1bGFyLFxuXHRcdCRmLU5vYWgtQm9sZCxcblx0XHQkZi10b2Zpbm8tcmVndWxhcixcblx0XHQkZi10b2Zpbm8tZ3J1bmdlXG4pO1xuXG5AaWYgKCRpbmNsdWRlLWZvbnRzKSB7XG5cdEBlYWNoICRmb250IGluICRmb250cy1saXN0IHtcblx0XHRAaW5jbHVkZSBjdXN0b20tZm9udCgkZm9udCk7XG5cdH1cbn1cblxuQGltcG9ydCB1cmwoJ2h0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzP2ZhbWlseT1SYWxld2F5OjMwMGksNDAwLDkwMCZkaXNwbGF5PXN3YXAnKTsiLCJAbWl4aW4gZmFkZS1vdXQge1xuICAgIG9wYWNpdHkgICAgOiAwO1xuICAgIHZpc2liaWxpdHkgOiBoaWRkZW47XG4gICAgdHJhbnNpdGlvbiA6IG9wYWNpdHkgLjVzIGVhc2UsIHZpc2liaWxpdHkgMHMgbGluZWFyIC41cztcbn1cblxuQG1peGluIGZhZGUtaW4ge1xuICAgIG9wYWNpdHkgICAgOiAxO1xuICAgIHRyYW5zaXRpb24gOiBvcGFjaXR5IC4zcyBlYXNlLCB2aXNpYmlsaXR5IDBzO1xuICAgIHZpc2liaWxpdHkgOiB2aXNpYmxlO1xufVxuXG5AbWl4aW4gc3VibWVudS1oaWRkZW4ge1xuICAgIEBpbmNsdWRlIGZhZGUtb3V0O1xuICAgIHRyYW5zZm9ybSAgOiB0cmFuc2xhdGVZKC0yMHB4KTtcbiAgICB0cmFuc2l0aW9uIDogdHJhbnNmb3JtIC41cywgb3BhY2l0eSAuNXMgZWFzZSwgdmlzaWJpbGl0eSAwcyBsaW5lYXIgLjVzO1xufVxuXG5AbWl4aW4gc3VibWVudS12aXNpYmxlIHtcbiAgICBAaW5jbHVkZSBmYWRlLWluO1xuICAgIHRyYW5zZm9ybSAgOiB0cmFuc2xhdGVZKDApO1xuICAgIHRyYW5zaXRpb24gOiB0cmFuc2Zvcm0gLjVzLCBvcGFjaXR5IC4zcyBlYXNlLCB2aXNpYmlsaXR5IDBzO1xufVxuXG5AbWl4aW4gYWJzLWNvdmVyIHtcbiAgICB0b3AgICAgICA6IDA7XG4gICAgbGVmdCAgICAgOiAwO1xuICAgIHdpZHRoICAgIDogMTAwJTtcbiAgICBoZWlnaHQgICA6IDEwMCU7XG4gICAgcG9zaXRpb24gOiBhYnNvbHV0ZTtcbn1cblxuQG1peGluIGNsb3NlKCRzaXplOiAyNXB4LCAkY29sb3I6ICNjY2MsICRob3Zlci1jb2xvcjogIzAwMCwgJHRoaWNrbmVzczogMnB4ICkge1xuICAgIHdpZHRoICAgIDogJHNpemU7XG4gICAgaGVpZ2h0ICAgOiAkc2l6ZTtcbiAgICBjdXJzb3IgICA6IHBvaW50ZXI7XG4gICAgcG9zaXRpb24gOiBhYnNvbHV0ZTtcblxuICAgICY6YWZ0ZXIsICY6YmVmb3JlIHtcbiAgICAgICAgdG9wICAgICAgICAgICAgICA6IDUwJTtcbiAgICAgICAgbGVmdCAgICAgICAgICAgICA6IDA7XG4gICAgICAgIHdpZHRoICAgICAgICAgICAgOiAxMDAlO1xuICAgICAgICBoZWlnaHQgICAgICAgICAgIDogJHRoaWNrbmVzcztcbiAgICAgICAgY29udGVudCAgICAgICAgICA6ICcnO1xuICAgICAgICBwb3NpdGlvbiAgICAgICAgIDogYWJzb2x1dGU7XG4gICAgICAgIHRyYW5zZm9ybSAgICAgICAgOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB0cmFuc2l0aW9uICAgICAgIDogYmFja2dyb3VuZC1jb2xvciAuM3M7XG4gICAgICAgIGJvcmRlci1yYWRpdXMgICAgOiAxNSU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3IgOiAkY29sb3I7XG4gICAgfVxuICAgICY6YWZ0ZXIge1xuICAgICAgICB0cmFuc2Zvcm0gOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgIH1cbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIHRyYW5zZm9ybSA6IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgLy8gYmFja2dyb3VuZC1jb2xvciA6ICRob3Zlci1jb2xvcjtcbiAgICAgICAgJjphZnRlciwgJjpiZWZvcmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvciA6ICRob3Zlci1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cblxufVxuXG5AbWl4aW4gaW5wdXQtcGxhY2Vob2xkZXIge1xuICAgICYucGxhY2Vob2xkZXIge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG4gICAgJjotbW96LXBsYWNlaG9sZGVyIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICAgICY6Oi1tb3otcGxhY2Vob2xkZXIge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG4gICAgJjotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG4gICAgJjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJXktYWxpZ24ge1xuICAgIHRvcCAgICAgICA6IDUwJTtcbiAgICBwb3NpdGlvbiAgOiBhYnNvbHV0ZTtcbiAgICB0cmFuc2Zvcm0gOiB0cmFuc2xhdGVZKC01MCUpO1xufVxuXG4leC1hbGlnbiB7XG4gICAgbGVmdCAgICAgIDogNTAlO1xuICAgIHBvc2l0aW9uICA6IGFic29sdXRlO1xuICAgIHRyYW5zZm9ybSA6IHRyYW5zbGF0ZVgoLTUwJSk7XG59XG5cbiV4eS1hbGlnbiB7XG4gICAgdG9wICAgICAgIDogNTAlO1xuICAgIGxlZnQgICAgICA6IDUwJTtcbiAgICBwb3NpdGlvbiAgOiBhYnNvbHV0ZTtcbiAgICB0cmFuc2Zvcm0gOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTUwJSk7XG59XG5cbiVhYnMtY292ZXIge1xuICAgIEBpbmNsdWRlIGFicy1jb3Zlcjtcbn1cblxuXG5AbWl4aW4gZ3JheXNjYWxlKCR2YWx1ZTogMTAwJSkge1xuICAgIC13ZWJraXQtZmlsdGVyOiAje1wiZ3JheXNjYWxlKCN7JHZhbHVlfSlcIn07XG4gICAgLW1vei1maWx0ZXI6ICN7XCJncmF5c2NhbGUoI3skdmFsdWV9KVwifTtcbiAgICBmaWx0ZXI6I3tcImdyYXlzY2FsZSgjeyR2YWx1ZX0pXCJ9O1xufVxuXG4uZ3JheXNjYWxlIHtcbiAgICB0cmFuc2l0aW9uOiBhbGwgLjJzO1xuICAgIEBpbmNsdWRlIGdyYXlzY2FsZSgxMDAlKTtcbiAgICAmOmhvdmVyIHtcbiAgICAgICAgQGluY2x1ZGUgZ3JheXNjYWxlKDApO1xuICAgIH1cbn1cblxuXG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBGb250IEZhY2Vcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBtaXhpbiBmb250LWZhY2UoJG5hbWUsICRwYXRoLCAkZXh0czogZW90IHdvZmYyIHdvZmYgdHRmIHN2ZywgJHdlaWdodDogbnVsbCwgJHN0eWxlOiBudWxsKSB7XG4gICAgJHNyYyA6IG51bGw7XG4gICAgJGV4dG1vZHMgOiAoXG4gICAgICAgICAgICBlb3Q6IFwiP1wiLFxuICAgICAgICAgICAgc3ZnOiBcIiNcIiArIHN0ci1yZXBsYWNlKCRuYW1lLCBcIiBcIiwgXCJfXCIpXG4gICAgKTtcbiAgICAkZm9ybWF0cyA6IChcbiAgICAgICAgICAgIG90ZjogXCJvcGVudHlwZVwiLFxuICAgICAgICAgICAgdHRmOiBcInRydWV0eXBlXCJcbiAgICApO1xuXG4gICAgQGVhY2ggJGV4dCBpbiAkZXh0cyB7XG4gICAgICAgICRleHRtb2QgOiBpZihtYXAtaGFzLWtleSgkZXh0bW9kcywgJGV4dCksICRleHQgKyBtYXAtZ2V0KCRleHRtb2RzLCAkZXh0KSwgJGV4dCk7XG4gICAgICAgICRmb3JtYXQgOiBpZihtYXAtaGFzLWtleSgkZm9ybWF0cywgJGV4dCksIG1hcC1nZXQoJGZvcm1hdHMsICRleHQpLCAkZXh0KTtcbiAgICAgICAgJHNyYyA6IGFwcGVuZCgkc3JjLCBmb250LXVybChxdW90ZSgkcGF0aCArIFwiLlwiICsgJGV4dG1vZCkpIGZvcm1hdChxdW90ZSgkZm9ybWF0KSksIGNvbW1hKTtcbiAgICB9XG5cbiAgICBAZm9udC1mYWNlIHtcbiAgICAgICAgZm9udC1mYW1pbHkgOiBxdW90ZSgkbmFtZSk7XG4gICAgICAgIGZvbnQtc3R5bGUgIDogJHN0eWxlO1xuICAgICAgICBmb250LXdlaWdodCA6ICR3ZWlnaHQ7XG4gICAgICAgIHNyYyAgICAgICAgIDogJHNyYztcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b20tZm9udCgkZm9udC1uYW1lKSB7XG4gICAgQGluY2x1ZGUgZm9udC1mYWNlKCRmb250LW5hbWUsICRmb250LW5hbWUrJy8nKyRmb250LW5hbWUsIHdvZmYyIHR0ZiBlb3QpO1xuICAgIC8vQGluY2x1ZGUgZm9udC1mYWNlKCRmb250LW5hbWUsICRmb250LW5hbWUrJy8nKyRmb250LW5hbWUsIHdvZmYgd29mZjIgdHRmIHN2ZyBlb3QpO1xuICAgIC8vQGluY2x1ZGUgZm9udC1mYWNlKCRmb250LW5hbWUsIGZvbnQtZmlsZXMoJGZvbnQtbmFtZSsnLycrJGZvbnQtbmFtZSsnLndvZmYnLCAkZm9udC1uYW1lKycvJyskZm9udC1uYW1lKycudHRmJywgJGZvbnQtbmFtZSsnLycrJGZvbnQtbmFtZSsnLnN2ZycpLCAkZm9udC1uYW1lKycvJyskZm9udC1uYW1lKycuZW90Jyk7XG59XG5cbkBtaXhpbiBjdXN0b20tZm9udC12MSgkZm9udC1uYW1lLCAkZmlsZS1uYW1lOiBmYWxzZSwgJHdlaWdodDogZmFsc2UpIHtcbiAgICBAaWYgKCRmaWxlLW5hbWUgPT0gZmFsc2UpIHtcbiAgICAgICAgJGZpbGUtbmFtZSA6ICRmb250LW5hbWU7XG4gICAgfVxuICAgIEBpbmNsdWRlIGZvbnQtZmFjZSgkZm9udC1uYW1lLCBmb250LWZpbGVzKCRmaWxlLW5hbWUrJy8nKyRmaWxlLW5hbWUrJy53b2ZmJywgJGZpbGUtbmFtZSsnLycrJGZpbGUtbmFtZSsnLnR0ZicsICRmaWxlLW5hbWUrJy8nKyRmaWxlLW5hbWUrJy5zdmcnKSwgJGZpbGUtbmFtZSsnLycrJGZpbGUtbmFtZSsnLmVvdCcsICR3ZWlnaHQpO1xufVxuXG5AbWl4aW4gYmcoJHBhcmFtcy4uLikge1xuICAgICRzdmcgOiBmYWxzZTtcbiAgICAkaXMtc3ZnIDogZmFsc2U7XG4gICAgJHN2Zy11cmwgOiBmYWxzZTtcbiAgICAkaXMtaW1hZ2UgOiBmYWxzZTtcbiAgICAkaXMtcmV0aW5hIDogZmFsc2U7XG4gICAgJGltYWdlLXVybCA6IGZhbHNlO1xuICAgICRyZXRpbmEtdXJsIDogZmFsc2U7XG4gICAgJGlzLWdyYWRpZW50IDogZmFsc2U7XG4gICAgJGlzLWRpbWVuc2lvbnMgOiBmYWxzZTtcbiAgICAkaXMtYmFja2dyb3VuZC1zaXplIDogZmFsc2U7XG4gICAgJGlzLWJhY2tncm91bmQtcG9zaXRpb24gOiBmYWxzZTtcbiAgICAkYmFja2dyb3VuZC1hdHRhY2htZW50IDogc2Nyb2xsLCBmaXhlZCwgbG9jYWw7XG4gICAgJGJhY2tncm91bmQtY29sb3IgOiB0cmFuc3BhcmVudDtcbiAgICAkYmFja2dyb3VuZC1pbWFnZSA6IG5vbmU7XG4gICAgJGJhY2tncm91bmQtc2l6ZSA6IGNvdmVyIGNvbnRhaW4gYXV0bztcbiAgICAkYmFja2dyb3VuZC1wb3NpdGlvbiA6IGxlZnQsIHJpZ2h0LCB0b3AsIGJvdHRvbSwgY2VudGVyO1xuICAgICRiYWNrZ3JvdW5kLXJlcGVhdCA6IHJlcGVhdCwgcmVwZWF0LXgsIHJlcGVhdC15LCBuby1yZXBlYXQ7XG5cbiAgICBAZWFjaCAkcGFyYW0gaW4gJHBhcmFtcyB7XG4gICAgICAgIEBpZiAoaW5kZXgoJGJhY2tncm91bmQtYXR0YWNobWVudCwgJHBhcmFtKSkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1hdHRhY2htZW50IDogJHBhcmFtO1xuICAgICAgICB9XG4gICAgICAgIEBpZiAoJGlzLWJhY2tncm91bmQtcG9zaXRpb24gPT0gZmFsc2UgYW5kIChpbmRleCgkYmFja2dyb3VuZC1wb3NpdGlvbiwgJHBhcmFtKSBvciB0eXBlLW9mKCRwYXJhbSk9PSdsaXN0JykpIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb24gOiAkcGFyYW07XG4gICAgICAgICAgICAkaXMtYmFja2dyb3VuZC1wb3NpdGlvbiA6IHRydWU7XG4gICAgICAgIH0gQGVsc2UgaWYgKCRpcy1iYWNrZ3JvdW5kLXNpemUgPT0gZmFsc2UgYW5kIChpbmRleCgkYmFja2dyb3VuZC1zaXplLCAkcGFyYW0pIG9yIHR5cGUtb2YoJHBhcmFtKT09J2xpc3QnKSkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplICAgICA6ICRwYXJhbTtcbiAgICAgICAgICAgICRpcy1iYWNrZ3JvdW5kLXNpemUgOiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIEBpZiAoaW5kZXgoJGJhY2tncm91bmQtcmVwZWF0LCAkcGFyYW0pKSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdCA6ICRwYXJhbTtcbiAgICAgICAgfVxuICAgICAgICBAaWYgKGluZGV4KCRiYWNrZ3JvdW5kLWltYWdlLCAkcGFyYW0pIG9yICh0eXBlLW9mKCRwYXJhbSk9PSdzdHJpbmcnIGFuZCBzdHItaW5kZXgodG8tbG93ZXItY2FzZSgkcGFyYW0pLCAnLicpKSkge1xuICAgICAgICAgICAgJGlzLWltYWdlIDogJHBhcmFtO1xuICAgICAgICAgICAgQGlmICh0eXBlLW9mKCRwYXJhbSk9PSdzdHJpbmcnIGFuZCBzdHItaW5kZXgodG8tbG93ZXItY2FzZSgkcGFyYW0pLCAnaHR0cDovLycpKSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZSA6IHVybCgkcGFyYW0pO1xuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZSA6IGltYWdlLXVybCgkcGFyYW0pO1xuICAgICAgICAgICAgICAgICRpbWFnZS11cmwgOiAkcGFyYW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgQGlmICh0eXBlLW9mKCRwYXJhbSk9PSdjb2xvcicpIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3IgOiAkcGFyYW07XG4gICAgICAgIH1cbiAgICAgICAgQGlmICgkcGFyYW09PSdkaW0nIG9yICRwYXJhbT09J2RpbWVuc2lvbnMnKSB7XG4gICAgICAgICAgICAkaXMtZGltZW5zaW9ucyA6IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgQGlmICgkcGFyYW09PSdyZXQnIG9yICRwYXJhbT09J3JldGluYScpIHtcbiAgICAgICAgICAgICRpcy1yZXRpbmEgOiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIEBpZiAoJHBhcmFtPT0nc3ZnJykge1xuICAgICAgICAgICAgJGlzLXN2ZyA6IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICAkbGlzdCA6IHN0ci1leHBsb2RlKHR5cGUtb2YoJHBhcmFtKSwgJzo6Jyk7XG5cbiAgICAgICAgQGlmICh0eXBlLW9mKCRsaXN0KT09J2xpc3QnKSB7XG4gICAgICAgICAgICBAZWFjaCAkbGlzdC1pdGVtIGluICRsaXN0IHtcbiAgICAgICAgICAgICAgICBAaWYgKHR5cGUtb2YoJGxpc3QtaXRlbSk9PSdzdHJpbmcnIGFuZCBzdHItaW5kZXgodG8tbG93ZXItY2FzZSgkbGlzdC1pdGVtKSwgJ2dyYWRpZW50JykpIHtcbiAgICAgICAgICAgICAgICAgICAgJGlzLWdyYWRpZW50IDogJHBhcmFtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAoJGlzLWdyYWRpZW50ICE9IGZhbHNlKSB7XG4gICAgICAgIEBpbmNsdWRlIGJhY2tncm91bmQtaW1hZ2UoJGlzLWdyYWRpZW50KTtcbiAgICB9XG5cbiAgICBAaWYgKCRpcy1pbWFnZSAhPSBmYWxzZSBhbmQgJGlzLWRpbWVuc2lvbnMgIT0gZmFsc2UpIHtcbiAgICAgICAgQGluY2x1ZGUgaW1hZ2UtZGltZW5zaW9ucygkaXMtaW1hZ2UpO1xuICAgIH1cblxuICAgIEBpZiAoJGltYWdlLXVybCAhPSBmYWxzZSBhbmQgKCRpcy1yZXRpbmEgIT0gZmFsc2Ugb3IgJGlzLXN2ZyAhPSBmYWxzZSkpIHtcblxuICAgICAgICAvLyBHZXQgUmV0aW5hIGFuZCBTVkcgVVJMc1xuICAgICAgICAkcG9zaXRpb24gOiAtMTtcbiAgICAgICAgJHN0cnBhdGggOiAnI3skaW1hZ2UtdXJsfSc7XG4gICAgICAgICRsZW5ndGggOiBzdHItbGVuZ3RoKCRzdHJwYXRoKTtcblxuICAgICAgICBAZm9yICRpIGZyb20gJGxlbmd0aCB0aHJvdWdoICRsZW5ndGggLSAxMCB7XG4gICAgICAgICAgICBAaWYgKCRwb3NpdGlvbiA9PSAtMSkge1xuICAgICAgICAgICAgICAgICRjaGFyIDogc3RyLXNsaWNlKCRzdHJwYXRoLCAkaSwgJGkpO1xuICAgICAgICAgICAgICAgIEBpZiBzdHItaW5kZXgoJGNoYXIsIFwiLlwiKSA9PSAxIHtcbiAgICAgICAgICAgICAgICAgICAgJHBvc2l0aW9uIDogJGk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGlmICgkcG9zaXRpb24gIT0gLTEpIHtcbiAgICAgICAgICAgICRleHQgOiBzdHItc2xpY2UoJHN0cnBhdGgsICRwb3NpdGlvbiArIDEsICRsZW5ndGgpO1xuICAgICAgICAgICAgJGJhc2UgOiBzdHItc2xpY2UoJHN0cnBhdGgsIDEsICRwb3NpdGlvbiAtIDEpO1xuXG4gICAgICAgICAgICBAaWYgKCRpcy1yZXRpbmEgIT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICAkcmV0aW5hLXVybCA6IGltYWdlLXVybChcIiN7JGJhc2V9QDJ4LiN7JGV4dH1cIik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpZiAoJGlzLXN2ZyAhPSBmYWxzZSkge1xuICAgICAgICAgICAgICAgICRzdmctdXJsIDogaW1hZ2UtdXJsKFwiI3skYmFzZX0uc3ZnXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGlmICgkc3ZnLXVybCAhPSBmYWxzZSkge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlIDogJHN2Zy11cmw7XG4gICAgfVxuXG4gICAgQGlmICgkcmV0aW5hLXVybCAhPSBmYWxzZSkge1xuXG4gICAgICAgIEBtZWRpYSBhbGwgYW5kICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW8gOiAxLjUpLFxuICAgICAgICBhbGwgYW5kICgtby1taW4tZGV2aWNlLXBpeGVsLXJhdGlvIDogMy8yKSxcbiAgICAgICAgYWxsIGFuZCAobWluLS1tb3otZGV2aWNlLXBpeGVsLXJhdGlvIDogMS41KSxcbiAgICAgICAgYWxsIGFuZCAobWluLWRldmljZS1waXhlbC1yYXRpbyA6IDEuNSkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZSA6ICRyZXRpbmEtdXJsO1xuICAgICAgICAgICAgQGlmICgkc3ZnLXVybCAhPSBmYWxzZSkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2UgOiAkc3ZnLXVybDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICAgICAgQG1lZGlhICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW8gOiAyKSxcbiAgICAgICAgKG1pbi1yZXNvbHV0aW9uIDogMiAqIDk2ZHBpKSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlIDogJHJldGluYS11cmw7XG4gICAgICAgICAgICBAaWYgKCRzdmctdXJsICE9IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZSA6ICRzdmctdXJsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG59IiwiaHRtbCxcclxuaHRtbC5qcyxcclxuaHRtbC5uby1qcyB7XHJcblx0bWFyZ2luIDogMCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4ucGFnZS10ZW1wbGF0ZS1zYmIgbWFpbntcclxuXHRwIHtcclxuXHRcdEBpbmNsdWRlIGYoMTlweCwgJGYtTm9haC1SZWd1bGFyKTtcclxuXHR9XHJcbn1cclxuXHJcbi5wYWdlLXRlbXBsYXRlLXNzIG1haW57XHJcblx0cCB7XHJcblx0XHRAaW5jbHVkZSBmKDE3cHgpO1xyXG5cdH1cclxuXHRoMSwgaDIsIGgzLCBoNCwgaDUsIGg2LFxyXG5cdHAsIGEsIHNwYW4sIGxpe1xyXG5cdFx0Zm9udC1mYW1pbHkgICAgOiBSYWxld2F5O1xyXG5cdH1cclxufSIsIi8vIFRoaXMgaXMgdGhlIGRlZmF1bHQgaHRtbCBhbmQgYm9keSBmb250LXNpemUgZm9yIHRoZSBiYXNlIHJlbSB2YWx1ZS5cbiRyZW0tYmFzZSA6IDE2cHggIWRlZmF1bHQ7XG4kZm9udHMtYmFzZSA6ICcuLi9mb250cycgIWRlZmF1bHQ7XG4vL1xuLy8gQGZ1bmN0aW9uc1xuLy9cblxuQGZ1bmN0aW9uIGZvbnQtdXJsKCRmb250LCAkb25seS1wYXRoOmZhbHNlLCAkY2FjaGUtYm9vc3RlcjpmYWxzZSkge1xuICAgIEBpZiAoJGNhY2hlLWJvb3N0ZXIpIHtcbiAgICAgICAgJHFtLWluZGV4IDogc3RyLWluZGV4KCRmb250LCAnPycpO1xuXG4gICAgICAgIEBpZiAoJHFtLWluZGV4KSB7XG4gICAgICAgICAgICAkZm9udCA6IFwiI3skZm9udH1jYiN7cmFuZG9tKDUwMDApfVwiO1xuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICRmb250IDogXCIjeyRmb250fT9jYiN7cmFuZG9tKDUwMDApfVwiO1xuICAgICAgICB9XG4gICAgfVxuICAgIEBpZiAoJG9ubHktcGF0aCkge1xuICAgICAgICAkZm9udCA6IFwiI3skZm9udHMtYmFzZX0vI3skZm9udH1cIjtcbiAgICB9IEBlbHNlIHtcbiAgICAgICAgJGZvbnQgOiBcInVybCgjeyRmb250cy1iYXNlfS8jeyRmb250fSlcIjtcbiAgICB9XG4gICAgQHJldHVybiB1bnF1b3RlKCRmb250KTtcbn1cblxuQGZ1bmN0aW9uIGltYWdlLXVybCgkaW1hZ2UsICRvbmx5LXBhdGg6ZmFsc2UsICRjYWNoZS1ib29zdGVyOnRydWUpIHtcblxuICAgIEBpZiAoJGNhY2hlLWJvb3N0ZXIpIHtcbiAgICAgICAgJGltYWdlIDogXCIjeyRpbWFnZX0/Y2Ije3JhbmRvbSg1MDAwKX1cIjtcbiAgICB9XG4gICAgQGlmICgkb25seS1wYXRoKSB7XG4gICAgICAgICRpbWFnZSA6IFwiLi4vaW1hZ2VzLyN7JGltYWdlfVwiO1xuICAgIH0gQGVsc2Uge1xuICAgICAgICAkaW1hZ2UgOiBcInVybCguLi9pbWFnZXMvI3skaW1hZ2V9KVwiO1xuICAgIH1cbiAgICBAcmV0dXJuIHVucXVvdGUoJGltYWdlKTtcbn1cblxuLy8gUkFOR0VTXG4vLyBXZSB1c2UgdGhlc2UgZnVuY3Rpb25zIHRvIGRlZmluZSByYW5nZXMgZm9yIHZhcmlvdXMgdGhpbmdzLCBsaWtlIG1lZGlhIHF1ZXJpZXMuXG5AZnVuY3Rpb24gbG93ZXItYm91bmQoJHJhbmdlKSB7XG4gICAgQGlmIGxlbmd0aCgkcmFuZ2UpIDw9IDAge1xuICAgICAgICBAcmV0dXJuIDA7XG4gICAgfVxuICAgIEByZXR1cm4gbnRoKCRyYW5nZSwgMSk7XG59XG5cbkBmdW5jdGlvbiB1cHBlci1ib3VuZCgkcmFuZ2UpIHtcbiAgICBAaWYgbGVuZ3RoKCRyYW5nZSkgPCAyIHtcbiAgICAgICAgQHJldHVybiA5OTk5OTk5OTk5OTk7XG4gICAgfVxuICAgIEByZXR1cm4gbnRoKCRyYW5nZSwgMik7XG59XG5cbi8vIFNUUklQIFVOSVRcbi8vIEl0IHN0cmlwcyB0aGUgdW5pdCBvZiBtZWFzdXJlIGFuZCByZXR1cm5zIGl0XG5AZnVuY3Rpb24gc3RyaXAtdW5pdCgkbnVtKSB7XG4gICAgQHJldHVybiAkbnVtIC8gKCRudW0gKiAwICsgMSk7XG59XG5cbi8vIENPTlZFUlQgVE8gUkVNXG5AZnVuY3Rpb24gY29udmVydC10by1yZW0oJHZhbHVlLCAkYmFzZS12YWx1ZSA6ICRyZW0tYmFzZSkge1xuICAgICR2YWx1ZSA6IHN0cmlwLXVuaXQoJHZhbHVlKSAvIHN0cmlwLXVuaXQoJGJhc2UtdmFsdWUpICogMXJlbTtcbiAgICBAaWYgKCR2YWx1ZSA9PSAwcmVtKSB7XG4gICAgICAgICR2YWx1ZSA6IDA7XG4gICAgfVxuICAgIC8vIFR1cm4gMHJlbSBpbnRvIDBcbiAgICBAcmV0dXJuICR2YWx1ZTtcbn1cblxuLy8gUkVNIENBTENcblxuLy8gTmV3IFN5bnRheCwgYWxsb3dzIHRvIG9wdGlvbmFsbHkgY2FsY3VsYXRlIG9uIGEgZGlmZmVyZW50IGJhc2UgdmFsdWUgdG8gY291bnRlciBjb21wb3VuZGluZyBlZmZlY3Qgb2YgcmVtJ3MuXG4vLyBDYWxsIHdpdGggMSwgMiwgMyBvciA0IHBhcmFtZXRlcnMsICdweCcgaXMgbm90IHJlcXVpcmVkIGJ1dCBzdXBwb3J0ZWQ6XG4vL1xuLy8gICByZW0tY2FsYygxMCAyMCAzMHB4IDQwKTtcbi8vXG4vLyBTcGFjZSBkZWxpbWl0ZWQsIGlmIHlvdSB3YW50IHRvIGRlbGltaXQgdXNpbmcgY29tbWEncywgd3JhcCBpdCBpbiBhbm90aGVyIHBhaXIgb2YgYnJhY2tldHNcbi8vXG4vLyAgIHJlbS1jYWxjKCgxMCwgMjAsIDMwLCA0MHB4KSk7XG4vL1xuLy8gT3B0aW9uYWxseSBjYWxsIHdpdGggYSBkaWZmZXJlbnQgYmFzZSAoZWc6IDhweCkgdG8gY2FsY3VsYXRlIHJlbS5cbi8vXG4vLyAgIHJlbS1jYWxjKDE2cHggMzJweCA0OHB4LCA4cHgpO1xuLy9cbi8vIElmIHlvdSByZXF1aXJlIHRvIGNvbW1hIHNlcGFyYXRlIHlvdXIgbGlzdFxuLy9cbi8vICAgcmVtLWNhbGMoKDE2cHgsIDMycHgsIDQ4KSwgOHB4KTtcblxuQGZ1bmN0aW9uIHJlbS1jYWxjKCR2YWx1ZXMsICRiYXNlLXZhbHVlIDogJHJlbS1iYXNlKSB7XG4gICAgJG1heCA6IGxlbmd0aCgkdmFsdWVzKTtcblxuICAgIEBpZiAkbWF4ID09IDEge1xuICAgICAgICBAcmV0dXJuIGNvbnZlcnQtdG8tcmVtKG50aCgkdmFsdWVzLCAxKSwgJGJhc2UtdmFsdWUpO1xuICAgIH1cblxuICAgICRyZW1WYWx1ZXMgOiAoKTtcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRtYXgge1xuICAgICAgICAkcmVtVmFsdWVzIDogYXBwZW5kKCRyZW1WYWx1ZXMsIGNvbnZlcnQtdG8tcmVtKG50aCgkdmFsdWVzLCAkaSksICRiYXNlLXZhbHVlKSk7XG4gICAgfVxuICAgIEByZXR1cm4gJHJlbVZhbHVlcztcbn1cblxuLy8gT0xEIEVNIENBTENcbi8vIERlcHJlY2F0ZWQ6IFdlJ2xsIGRyb3Agc3VwcG9ydCBmb3IgdGhpcyBpbiA1LjEuMCwgdXNlIHJlbS1jYWxjKClcbkBmdW5jdGlvbiBlbUNhbGMoJHZhbHVlcykge1xuICAgIEByZXR1cm4gcmVtLWNhbGMoJHZhbHVlcyk7XG59XG5cbi8vIE9MRCBFTSBDQUxDXG4vLyBEZXByZWNhdGVkOiBXZSdsbCBkcm9wIHN1cHBvcnQgZm9yIHRoaXMgaW4gNS4xLjAsIHVzZSByZW0tY2FsYygpXG5AZnVuY3Rpb24gZW0tY2FsYygkdmFsdWVzKSB7XG4gICAgQHJldHVybiByZW0tY2FsYygkdmFsdWVzKTtcbn1cblxuQGZ1bmN0aW9uIGZvbnQtZmFtaWx5KCRmb250LW5hbWU6ZmFsc2UpIHtcbiAgICBAaWYgKCRmb250LW5hbWUgPT0gZmFsc2UpIHtcbiAgICAgICAgQHJldHVybiBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIEByZXR1cm4gJGZvbnQtbmFtZSwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xuICAgIH1cbn1cblxuQGZ1bmN0aW9uIGZvbnQtbmFtZSgkZm9udC1uYW1lOmZhbHNlKSB7XG4gICAgQHJldHVybiBmb250LWZhbWlseSgkZm9udC1uYW1lKTtcbn1cblxuQGZ1bmN0aW9uIHN0ci1yZXBsYWNlKCRzdHJpbmcsICRzZWFyY2gsICRyZXBsYWNlOiAnJykge1xuICAgICRpbmRleCA6IHN0ci1pbmRleCgkc3RyaW5nLCAkc2VhcmNoKTtcblxuICAgIEBpZiAkaW5kZXgge1xuICAgICAgICBAcmV0dXJuIHN0ci1zbGljZSgkc3RyaW5nLCAxLCAkaW5kZXggLSAxKSArICRyZXBsYWNlICsgc3RyLXJlcGxhY2Uoc3RyLXNsaWNlKCRzdHJpbmcsICRpbmRleCArIHN0ci1sZW5ndGgoJHNlYXJjaCkpLCAkc2VhcmNoLCAkcmVwbGFjZSk7XG4gICAgfVxuXG4gICAgQHJldHVybiAkc3RyaW5nO1xufVxuXG5AZnVuY3Rpb24gY2IoJHZhbHVlcykge1xuICAgIEByZXR1cm4gY3ViaWMtYmV6aWVyKG50aCgkdmFsdWVzLCAxKSwgbnRoKCR2YWx1ZXMsIDIpLCBudGgoJHZhbHVlcywgMyksIG50aCgkdmFsdWVzLCA0KSk7XG59XG5cbkBmdW5jdGlvbiByZXZlcnNlLWNiKCR2YWx1ZXMpIHtcbiAgICBAcmV0dXJuIGN1YmljLWJlemllcigxIC0gbnRoKCR2YWx1ZXMsMyksIDEgLSBudGgoJHZhbHVlcyw0KSwgMSAtIG50aCgkdmFsdWVzLDEpLCAxIC0gbnRoKCR2YWx1ZXMsIDIpKTtcbn1cblxuQGZ1bmN0aW9uIGYoJHNpemUtaW4tcHgsICRsaW5lLWhlaWdodCwgJGZvbnQtbmFtZSkge1xuXG4gICAgQGlmICgkbGluZS1oZWlnaHQgPT0gZmFsc2UpIHtcbiAgICAgICAgQHJldHVybiByZW0tY2FsYygkc2l6ZS1pbi1weCkgZm9udC1uYW1lKCRmb250LW5hbWUpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgICBAcmV0dXJuIHVucXVvdGUocmVtLWNhbGMoJHNpemUtaW4tcHgpKycvJytyZW0tY2FsYygkbGluZS1oZWlnaHQpKSBmb250LW5hbWUoJGZvbnQtbmFtZSk7XG4gICAgfVxufVxuXG5AZnVuY3Rpb24gaW1nLXVybCgkaW1hZ2UpIHtcbiAgICBAcmV0dXJuIHVybCgnLi4vaW1hZ2VzLyN7JGltYWdlfT8je3VuaXF1ZS1pZCgpfScpO1xufVxuXG5AZnVuY3Rpb24gZm9udC1mb2xkZXItdXJsKCRmb2xkZXIpIHtcbiAgICBAcmV0dXJuICcuLi9mb250cy8jeyRmb2xkZXJ9Jztcbn1cblxuQGZ1bmN0aW9uIGltYWdlLWZvbGRlci11cmwoJGZvbGRlcikge1xuICAgIEByZXR1cm4gJy4uL2ltYWdlcy8jeyRmb2xkZXJ9Jztcbn1cblxuQGZ1bmN0aW9uIHBlcmNlbnRhZ2UtY2FsYygkc2l6ZS1pbi1weCwgJHdpZHRoIDogJG1pZGRsZS1tYXgtd2lkdGgpIHtcbiAgICBAcmV0dXJuICRzaXplLWluLXB4KjEwMCUvJHdpZHRoO1xufVxuXG5AZnVuY3Rpb24gc3VidHJhY3QtcGVyY2VudCgkcHgtdmFsdWUsICRwZXJjZW50KSB7XG4gICAgQHJldHVybiAkcHgtdmFsdWUgLSAkcHgtdmFsdWUgKiAkcGVyY2VudCAvIDEwMDtcbn1cblxuQGZ1bmN0aW9uIHJvdW5kLXVwLWV2ZW4oJG51bSkge1xuICAgIEBpZiAoc3RyaXAtdW5pdCgkbnVtKSAlIDIgIT0gMCkge1xuICAgICAgICAkbnVtIDogJG51bSArIDE7XG4gICAgfVxuICAgIEByZXR1cm4gJG51bTtcbn1cblxuQG1peGluIGFzcGVjdC1yYXRpbygkd2lkdGgsICRoZWlnaHQpIHtcbiAgICBwb3NpdGlvbiA6IHJlbGF0aXZlO1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgZGlzcGxheSAgICAgOiBibG9jaztcbiAgICAgICAgY29udGVudCAgICAgOiBcIlwiO1xuICAgICAgICB3aWR0aCAgICAgICA6IDEwMCU7XG4gICAgICAgIHBhZGRpbmctdG9wIDogKCRoZWlnaHQgLyAkd2lkdGgpICogMTAwJTtcbiAgICB9XG4gICAgPiAuY29udGVudCB7XG4gICAgICAgIHBvc2l0aW9uIDogYWJzb2x1dGU7XG4gICAgICAgIHRvcCAgICAgIDogMDtcbiAgICAgICAgbGVmdCAgICAgOiAwO1xuICAgICAgICByaWdodCAgICA6IDA7XG4gICAgICAgIGJvdHRvbSAgIDogMDtcbiAgICB9XG59XG5cbi8vLyBTcGxpdCBgJHN0cmluZ2AgaW50byBzZXZlcmFsIHBhcnRzIHVzaW5nIGAkZGVsaW1pdGVyYC5cbi8vLyBAc2luY2UgMS4yLjBcbi8vLyBAcGFyYW0ge1N0cmluZ30gJHN0cmluZyAgICAtIHN0cmluZyB0byBzcGxpdFxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZGVsaW1pdGVyICgnJykgLSBzdHJpbmcgdG8gdXNlIGFzIGEgZGVsaW1pdGVyIHRvIHNwbGl0IGAkc3RyaW5nYFxuLy8vIEByZXR1cm4ge0xpc3R9XG5AZnVuY3Rpb24gX3NzLXN0ci1leHBsb2RlKCRzdHJpbmcsICRkZWxpbWl0ZXIgOiBcIlwiKSB7XG4gICAgJHJlc3VsdCA6ICgpO1xuICAgICRsZW5ndGggOiBzdHItbGVuZ3RoKCRzdHJpbmcpO1xuXG4gICAgQGlmIHN0ci1sZW5ndGgoJGRlbGltaXRlcikgPT0gMCB7XG4gICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAkcmVzdWx0IDogYXBwZW5kKCRyZXN1bHQsIHN0ci1zbGljZSgkc3RyaW5nLCAkaSwgJGkpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEByZXR1cm4gJHJlc3VsdDtcbiAgICB9XG5cbiAgICAkcnVubmluZyA6IHRydWU7XG4gICAgJHJlbWFpbmluZyA6ICRzdHJpbmc7XG5cbiAgICBAd2hpbGUgJHJ1bm5pbmcge1xuICAgICAgICAkaW5kZXggOiBzdHItaW5kZXgoJHJlbWFpbmluZywgJGRlbGltaXRlcik7XG5cbiAgICAgICAgQGlmICRpbmRleCB7XG4gICAgICAgICAgICAkc2xpY2UgOiBzdHItc2xpY2UoJHJlbWFpbmluZywgMSwgJGluZGV4IC0gMSk7XG4gICAgICAgICAgICAkcmVzdWx0IDogYXBwZW5kKCRyZXN1bHQsICRzbGljZSk7XG4gICAgICAgICAgICAkcmVtYWluaW5nIDogc3RyLXNsaWNlKCRyZW1haW5pbmcsICRpbmRleCArIHN0ci1sZW5ndGgoJGRlbGltaXRlcikpO1xuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICRydW5uaW5nIDogZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAcmV0dXJuIGFwcGVuZCgkcmVzdWx0LCAkcmVtYWluaW5nKTtcbn1cblxuQGZ1bmN0aW9uIHN0ci1leHBsb2RlKCRzdHJpbmcsICRkZWxpbWl0ZXIgOiAnJykge1xuICAgIEBpZiB0eXBlLW9mKCRzdHJpbmcpICE9IFwic3RyaW5nXCIge1xuICAgICAgICBAZXJyb3IgXCJgZXhwbG9kZWAgZnVuY3Rpb24gZXhwZWN0aW5nIGEgc3RyaW5nOyAje3R5cGUtb2YoJHN0cmluZyl9IGdpdmVuLlwiO1xuICAgIH1cblxuICAgIEBpZiB0eXBlLW9mKCRkZWxpbWl0ZXIpICE9IFwic3RyaW5nXCIge1xuICAgICAgICBAZXJyb3IgXCJgZXhwbG9kZWAgZnVuY3Rpb24gZXhwZWN0aW5nIGEgc3RyaW5nOyAje3R5cGUtb2YoJGRlbGltaXRlcil9IGdpdmVuLlwiO1xuICAgIH1cblxuICAgIEByZXR1cm4gX3NzLXN0ci1leHBsb2RlKCRzdHJpbmcsICRkZWxpbWl0ZXIpO1xufVxuXG5AZnVuY3Rpb24gZGF0YSgkYXR0cikge1xuICAgIEBpZiAkbmFtZXNwYWNlIHtcbiAgICAgICAgQHJldHVybiAnW2RhdGEtJyArICRuYW1lc3BhY2UgKyAnLScgKyAkYXR0ciArICddJztcbiAgICB9XG4gICAgQHJldHVybiAnW2RhdGEtJyArICRhdHRyICsgJ10nO1xufVxuXG4vLyBSZWFkIHRoZSBhcnRpY2xlOiBodHRwOi8vc2Fzc2JyZWFrLmNvbS92aWV3cG9ydC1yZWxhdGl2ZS1oZWFkaW5ncy13aXRoLXNhc3NcbiRtYXgtYnJlYWtwb2ludCA6IDE0MDA7XG5cbkBmdW5jdGlvbiBnZXQtdncoJHRhcmdldCwgJG1heC1icmVha3BvaW50IDogMTQwMCkge1xuICAgICR2dy1jb250ZXh0IDogKCRtYXgtYnJlYWtwb2ludCAqIC4wMSkgKiAxcHg7XG4gICAgQHJldHVybiAoJHRhcmdldC8kdnctY29udGV4dCkgKiAxLjB2dztcbn1cblxuQGZ1bmN0aW9uIHZ3LWNhbGMoJHRhcmdldCwgJHNjcmVlLXdpZHRoOiAxNDQwKSB7XG4gICAgLy8gJHRhcmdldCA6IHN0cmlwLXVuaXQoJHRhcmdldCk7XG4gICAgQHJldHVybiBzdHJpcC11bml0KCR0YXJnZXQvJHNjcmVlLXdpZHRoKSAqIDEwMHZ3O1xufVxuXG5AbWl4aW4gZm9udC1zaXplKCRzaXplLCAkbWF4LWJyZWFrcG9pbnQgOiAxNDAwKSB7XG4gICAgZm9udC1zaXplIDogcmVtLWNhbGMoJHNpemUpO1xuXG4gICAgQGlmICgkbWF4LWJyZWFrcG9pbnQhPWZhbHNlKSB7XG4gICAgICAgIGZvbnQtc2l6ZSA6IGdldC12dygkc2l6ZSwgJG1heC1icmVha3BvaW50KTtcbiAgICAgICAgJHdpZGUtc2NyZWVuIDogXCIobWluLXdpZHRoOiAjeyRtYXgtYnJlYWtwb2ludH1weClcIjtcbiAgICAgICAgQG1lZGlhICN7JHdpZGUtc2NyZWVufSB7XG4gICAgICAgICAgICBmb250LXNpemUgOiByZW0tY2FsYygkc2l6ZSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtaXhpbiBsaW5lLWhlaWdodCgkc2l6ZSwgJG1heC1icmVha3BvaW50IDogMTQwMCkge1xuICAgIGxpbmUtaGVpZ2h0IDogcmVtLWNhbGMoJHNpemUpO1xuXG4gICAgQGlmICgkbWF4LWJyZWFrcG9pbnQhPWZhbHNlKSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0IDogZ2V0LXZ3KCRzaXplLCAkbWF4LWJyZWFrcG9pbnQpO1xuICAgICAgICAkd2lkZS1zY3JlZW4gOiBcIihtaW4td2lkdGg6ICN7JG1heC1icmVha3BvaW50fXB4KVwiO1xuICAgICAgICBAbWVkaWEgI3skd2lkZS1zY3JlZW59IHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0IDogcmVtLWNhbGMoJHNpemUpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vL0BtaXhpbiBmLXNpemUtdncoJHNpemUsICRoZWlnaHQ6IGZhbHNlLCAkbWF4LWJyZWFrcG9pbnQgOiAxNDAwKSB7XG4vLyAgICBAaW5jbHVkZSBmb250LXNpemUoJHNpemUsICRtYXgtYnJlYWtwb2ludCk7XG4vLyAgICBAaWYgKCRoZWlnaHQgIT0gZmFsc2UpIHtcbi8vICAgICAgICBAaW5jbHVkZSBsaW5lLWhlaWdodCgkaGVpZ2h0LCAkbWF4LWJyZWFrcG9pbnQpO1xuLy8gICAgfVxuLy99XG5cbkBtaXhpbiBmLXNpemUtdncoJHNpemUsICRtYXgtYnJlYWtwb2ludCA6IDE0MDApIHtcblxuICAgICRmb250LXNpemUgOiBmYWxzZTtcbiAgICAkbGluZS1oZWlnaHQgOiBmYWxzZTtcblxuICAgICRzaXplIDogc3RyLXJlcGxhY2UoXCIjeyRzaXplfVwiLCAncHgnLCAnJyk7XG4gICAgJHNpemUgOiBzdHItcmVwbGFjZShcIiN7JHNpemV9XCIsICdlbScsICcnKTtcbiAgICAkc2l6ZSA6IHN0ci1yZXBsYWNlKFwiI3skc2l6ZX1cIiwgJ3JlbScsICcnKTtcbiAgICAkc2l6ZSA6IHN0ci1yZXBsYWNlKFwiI3skc2l6ZX1cIiwgJ3B0JywgJycpO1xuICAgICRzaXplIDogc3RyLXJlcGxhY2UoXCIjeyRzaXplfVwiLCAnJScsICcnKTtcblxuICAgICRzaXplIDogXCIjeyRzaXplfVwiO1xuXG4gICAgLy8gQGRlYnVnICRzaXplO1xuXG4gICAgQGlmIChzdHItaW5kZXgoJHNpemUsICcvJykgIT0gbnVsbCkge1xuICAgICAgICAkc2l6ZS1oZWlnaHQgOiBzdHItZXhwbG9kZSgkc2l6ZSwgJy8nKTtcblxuICAgICAgICAkZm9udC1zaXplIDogbnRoKCRzaXplLWhlaWdodCwgMSk7XG4gICAgICAgICRsaW5lLWhlaWdodCA6IG50aCgkc2l6ZS1oZWlnaHQsIDIpO1xuXG4gICAgICAgICRsaW5lLWhlaWdodCA6IHRvLW51bWJlcih1bnF1b3RlKFwiI3skbGluZS1oZWlnaHR9cHhcIikpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgICAkZm9udC1zaXplIDogJHNpemU7XG4gICAgfVxuXG4gICAgJGZvbnQtc2l6ZSA6IHRvLW51bWJlcih1bnF1b3RlKFwiI3skZm9udC1zaXplfXB4XCIpKTtcblxuICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgkZm9udC1zaXplLCAkbWF4LWJyZWFrcG9pbnQpO1xuICAgIEBpZiAoJGxpbmUtaGVpZ2h0ICE9IGZhbHNlKSB7XG4gICAgICAgIEBpbmNsdWRlIGxpbmUtaGVpZ2h0KCRsaW5lLWhlaWdodCwgJG1heC1icmVha3BvaW50KTtcbiAgICB9XG5cbn1cblxuQG1peGluIGYtc2l6ZS1ybSgkc2l6ZSwgJGhlaWdodDogZmFsc2UsICRtYXgtYnJlYWtwb2ludCA6IDE0MDApIHtcbiAgICBmb250LXNpemUgOiByZW0tY2FsYygkc2l6ZSk7XG4gICAgQGlmICgkaGVpZ2h0ICE9IGZhbHNlKSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0IDogcmVtLWNhbGMoJGhlaWdodCk7XG4gICAgfVxufVxuXG5AbWl4aW4gZi1mYW1pbHkoJGZvbnQtZmFtaWx5KSB7XG4gICAgZm9udC1mYW1pbHkgOiBmb250LWZhbWlseSgkZm9udC1mYW1pbHkpO1xufVxuXG4vLy8vIE1peGluXG4vL0BtaXhpbiB2dygkc2l6ZSwgJHR5cGU6ICdmcycpIHtcbi8vICAgICRwcm9wIDogJ2xpbmUtaGVpZ2h0Jztcbi8vICAgIEBpZiAoJHR5cGU9PSdmcycpIHtcbi8vICAgICAgICAkcHJvcCA6ICdmb250LXNpemUnO1xuLy8gICAgfVxuLy8gICAgI3skcHJvcH0gOiByZW0tY2FsYyg1NnB4KTtcbi8vICAgICN7JHByb3B9IDogZ2V0LXZ3KCRzaXplKTtcbi8vXG4vLyAgICBAbWVkaWEgI3skd2lkZS1zY3JlZW59IHtcbi8vICAgICAgICAjeyRwcm9wfSA6ICRzaXplO1xuLy8gICAgfVxuLy99XG5cbi8vLyBBZGQgYCR1bml0YCB0byBgJHZhbHVlYFxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR2YWx1ZSAtIFZhbHVlIHRvIGFkZCB1bml0IHRvXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR1bml0IC0gU3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB1bml0XG4vLy9cbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IC0gYCR2YWx1ZWAgZXhwcmVzc2VkIGluIGAkdW5pdGBcbi8vL1xuQGZ1bmN0aW9uIHRvLWxlbmd0aCgkdmFsdWUsICR1bml0KSB7XG4gICAgJHVuaXRzIDogKCdweCc6IDFweCwgJ2NtJzogMWNtLCAnbW0nOiAxbW0sICclJzogMSUsICdjaCc6IDFjaCwgJ3BjJzogMXBjLCAnaW4nOiAxaW4sICdlbSc6IDFlbSwgJ3JlbSc6IDFyZW0sICdwdCc6IDFwdCwgJ2V4JzogMWV4LCAndncnOiAxdncsICd2aCc6IDF2aCwgJ3ZtaW4nOiAxdm1pbiwgJ3ZtYXgnOiAxdm1heCk7XG5cbiAgICBAaWYgbm90IGluZGV4KG1hcC1rZXlzKCR1bml0cyksICR1bml0KSB7XG4gICAgICAgIC8vJF86IGxvZygnSW52YWxpZCB1bml0IGAjeyR1bml0fWAuJyk7XG4gICAgfVxuXG4gICAgQHJldHVybiAkdmFsdWUgKiBtYXAtZ2V0KCR1bml0cywgJHVuaXQpO1xufVxuXG4vLy8vXG4vLy8gU3RyaW5nIHRvIG51bWJlciBjb252ZXJ0ZXJcbi8vLyBAYXV0aG9yIEh1Z28gR2lyYXVkZWxcbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vLy9cblxuLy8vXG4vLy8gQ2FzdHMgYSBzdHJpbmcgaW50byBhIG51bWJlclxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmcgfCBOdW1iZXJ9ICR2YWx1ZSAtIFZhbHVlIHRvIGJlIHBhcnNlZFxuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyfVxuLy8vXG5AZnVuY3Rpb24gdG8tbnVtYmVyKCR2YWx1ZSkge1xuICAgIEBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gJ251bWJlcicge1xuICAgICAgICBAcmV0dXJuICR2YWx1ZTtcbiAgICB9IEBlbHNlIGlmIHR5cGUtb2YoJHZhbHVlKSAhPSAnc3RyaW5nJyB7XG4gICAgICAgIC8vJF86IGxvZygnVmFsdWUgZm9yIGB0by1udW1iZXJgIHNob3VsZCBiZSBhIG51bWJlciBvciBhIHN0cmluZy4nKTtcbiAgICB9XG5cbiAgICAkcmVzdWx0IDogMDtcbiAgICAkZGlnaXRzIDogMDtcbiAgICAkbWludXMgOiBzdHItc2xpY2UoJHZhbHVlLCAxLCAxKSA9PSAnLSc7XG4gICAgJG51bWJlcnMgOiAoJzAnOiAwLCAnMSc6IDEsICcyJzogMiwgJzMnOiAzLCAnNCc6IDQsICc1JzogNSwgJzYnOiA2LCAnNyc6IDcsICc4JzogOCwgJzknOiA5KTtcblxuICAgIEBmb3IgJGkgZnJvbSBpZigkbWludXMsIDIsIDEpIHRocm91Z2ggc3RyLWxlbmd0aCgkdmFsdWUpIHtcbiAgICAgICAgJGNoYXJhY3RlciA6IHN0ci1zbGljZSgkdmFsdWUsICRpLCAkaSk7XG5cbiAgICAgICAgQGlmIG5vdCAoaW5kZXgobWFwLWtleXMoJG51bWJlcnMpLCAkY2hhcmFjdGVyKSBvciAkY2hhcmFjdGVyID09ICcuJykge1xuICAgICAgICAgICAgQHJldHVybiB0by1sZW5ndGgoaWYoJG1pbnVzLCAtJHJlc3VsdCwgJHJlc3VsdCksIHN0ci1zbGljZSgkdmFsdWUsICRpKSlcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAkY2hhcmFjdGVyID09ICcuJyB7XG4gICAgICAgICAgICAkZGlnaXRzIDogMTtcbiAgICAgICAgfSBAZWxzZSBpZiAkZGlnaXRzID09IDAge1xuICAgICAgICAgICAgJHJlc3VsdCA6ICRyZXN1bHQgKiAxMCArIG1hcC1nZXQoJG51bWJlcnMsICRjaGFyYWN0ZXIpO1xuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICRkaWdpdHMgOiAkZGlnaXRzICogMTA7XG4gICAgICAgICAgICAkcmVzdWx0IDogJHJlc3VsdCArIG1hcC1nZXQoJG51bWJlcnMsICRjaGFyYWN0ZXIpIC8gJGRpZ2l0cztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEByZXR1cm4gaWYoJG1pbnVzLCAtJHJlc3VsdCwgJHJlc3VsdCk7XG59XG5cbkBtaXhpbiBmKCRwYXJhbXMuLi4pIHtcblxuICAgICRzaXplIDogZmFsc2U7XG4gICAgJHdlaWdodCA6IGZhbHNlO1xuICAgICRjb2xvciA6IGZhbHNlO1xuICAgICRuYW1lIDogZmFsc2U7XG5cbiAgICAkd2VpZ2h0cyA6IChub3JtYWwsbGlnaGVyLGJvbGQsYm9sZGVyKTtcblxuICAgIEBlYWNoICRwYXJhbSBpbiAkcGFyYW1zIHtcblxuICAgICAgICBAaWYgKCRwYXJhbSAhPSBmYWxzZSkge1xuICAgICAgICAgICAgQGlmICh0eXBlLW9mKCRwYXJhbSk9PSdjb2xvcicpIHtcbiAgICAgICAgICAgICAgICAkY29sb3IgOiAkcGFyYW07XG4gICAgICAgICAgICB9IEBlbHNlIGlmIChcbiAgICAgICAgICAgICAgICAgICAgKHR5cGUtb2YoJHBhcmFtKSA9PSAnbnVtYmVyJyBhbmQgKHR5cGUtb2YoJHBhcmFtKSE9J3N0cmluZycgYW5kIG5vdCBpbmRleCgncHgnICdlbScgJ3JlbScgJ3B0JyAnJScsIHVuaXQoJHBhcmFtKSkpKVxuICAgICAgICAgICAgICAgICAgICBvclxuICAgICAgICAgICAgICAgICAgICAoaW5kZXgoJHdlaWdodHMsICRwYXJhbSkpXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAkd2VpZ2h0IDogJHBhcmFtO1xuICAgICAgICAgICAgfSBAZWxzZSBpZiAodHlwZS1vZigkcGFyYW0pID09ICdudW1iZXInIG9yICh0eXBlLW9mKCRwYXJhbSk9PSdzdHJpbmcnIGFuZCBzdHItaW5kZXgoJHBhcmFtLCAnLycpKSBvciAodHlwZS1vZigkcGFyYW0pID09ICdudW1iZXInIGFuZCBpbmRleCgncHgnICdlbScgJ3JlbScgJ3B0JyAnJScsIHVuaXQoJHBhcmFtKSkpKSB7XG4gICAgICAgICAgICAgICAgJHNpemUgOiAkcGFyYW07XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAkbmFtZSA6ICRwYXJhbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vJHNpemUsICRuYW1lIDogZmFsc2UsICRjb2xvcjogZmFsc2VcblxuICAgIEBpZiAoJHNpemUgIT0gZmFsc2UpIHtcbiAgICAgICAgJGZvbnQtc2l6ZSA6IGZhbHNlO1xuICAgICAgICAkbGluZS1oZWlnaHQgOiBmYWxzZTtcblxuICAgICAgICAkc2l6ZSA6IHN0ci1yZXBsYWNlKFwiI3skc2l6ZX1cIiwgJ3B4JywgJycpO1xuICAgICAgICAkc2l6ZSA6IHN0ci1yZXBsYWNlKFwiI3skc2l6ZX1cIiwgJ2VtJywgJycpO1xuICAgICAgICAkc2l6ZSA6IHN0ci1yZXBsYWNlKFwiI3skc2l6ZX1cIiwgJ3JlbScsICcnKTtcbiAgICAgICAgJHNpemUgOiBzdHItcmVwbGFjZShcIiN7JHNpemV9XCIsICdwdCcsICcnKTtcbiAgICAgICAgJHNpemUgOiBzdHItcmVwbGFjZShcIiN7JHNpemV9XCIsICclJywgJycpO1xuXG4gICAgICAgICRzaXplIDogXCIjeyRzaXplfVwiO1xuXG4gICAgICAgIEBpZiAoc3RyLWluZGV4KCRzaXplLCAnLycpICE9IG51bGwpIHtcbiAgICAgICAgICAgICRzaXplLWhlaWdodCA6IHN0ci1leHBsb2RlKCRzaXplLCAnLycpO1xuXG4gICAgICAgICAgICAkZm9udC1zaXplIDogbnRoKCRzaXplLWhlaWdodCwgMSk7XG4gICAgICAgICAgICAkbGluZS1oZWlnaHQgOiBudGgoJHNpemUtaGVpZ2h0LCAyKTtcblxuICAgICAgICAgICAgJGxpbmUtaGVpZ2h0IDogdG8tbnVtYmVyKHVucXVvdGUoXCIjeyRsaW5lLWhlaWdodH1weFwiKSk7XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgJGZvbnQtc2l6ZSA6ICRzaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJGZvbnQtc2l6ZSA6IHRvLW51bWJlcih1bnF1b3RlKFwiI3skZm9udC1zaXplfXB4XCIpKTtcblxuICAgICAgICBmb250LXNpemUgOiByZW0tY2FsYygkZm9udC1zaXplKTtcblxuICAgICAgICBAaWYgKCRsaW5lLWhlaWdodCAhPSBmYWxzZSkge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQgOiByZW0tY2FsYygkbGluZS1oZWlnaHQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGlmICgkY29sb3IgIT0gZmFsc2UpIHtcbiAgICAgICAgY29sb3IgOiAkY29sb3I7XG4gICAgfVxuXG4gICAgQGlmICgkd2VpZ2h0ICE9IGZhbHNlKSB7XG4gICAgICAgIGZvbnQtd2VpZ2h0IDogJHdlaWdodDtcbiAgICB9XG5cbiAgICBAaWYgKCRuYW1lICE9IGZhbHNlKSB7XG4gICAgICAgIGZvbnQtZmFtaWx5IDogZm9udC1mYW1pbHkoJG5hbWUpO1xuICAgIH1cblxufVxuXG5AZnVuY3Rpb24gaW1wbG9kZSgkcGllY2VzLCAkZ2x1ZTogXCJcIikge1xuICAgICRyZXN1bHQgOiBudWxsO1xuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggbGVuZ3RoKCRwaWVjZXMpIHtcbiAgICAgICAgJHBpZWNlIDogbnRoKCRwaWVjZXMsICRpKTtcbiAgICAgICAgQGlmIHR5cGUtb2YoJHBpZWNlKSA9PSBsaXN0IHtcbiAgICAgICAgICAgICRyZXN1bHQgOiB1bnF1b3RlKFwiI3skcmVzdWx0fSN7JGdsdWV9I3tpbXBsb2RlKCRwaWVjZSwgJGdsdWUpfVwiKTtcbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAkcmVzdWx0IDogdW5xdW90ZShcIiN7JHJlc3VsdH0jeyRnbHVlfSN7JHBpZWNlfVwiKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBAaWYgJHJlc3VsdCAhPSBudWxsIHtcbiAgICAgICAgJHJlc3VsdCA6IHN0ci1zbGljZSgkcmVzdWx0LCBzdHItbGVuZ3RoKCRnbHVlKSArIDEsIC0xKTtcbiAgICB9XG4gICAgQHJldHVybiAkcmVzdWx0O1xufVxuXG4vL0BmdW5jdGlvbiBzcXJ0KCRyKSB7XG4vLyAgICAkeDA6IDE7XG4vLyAgICAkeDE6ICR4MDtcbi8vXG4vLyAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIDEwIHtcbi8vICAgICAgICAkeDE6ICR4MCAtICgkeDAgKiAkeDAgLSBhYnMoJHIpKSAvICgyICogJHgwKTtcbi8vICAgICAgICAkeDA6ICR4MTtcbi8vICAgIH1cbi8vXG4vLyAgICBAcmV0dXJuICR4MTtcbi8vfVxuLy9cbi8vQGZ1bmN0aW9uIHBvdygkbnVtYmVyLCAkZXhwb25lbnQpIHtcbi8vICAgICR2YWx1ZTogMTtcbi8vXG4vLyAgICBAaWYgJGV4cG9uZW50ID4gMCB7XG4vLyAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZXhwb25lbnQge1xuLy8gICAgICAgICAgICAkdmFsdWU6ICR2YWx1ZSAqICRudW1iZXI7XG4vLyAgICAgICAgfVxuLy8gICAgfVxuLy9cbi8vICAgIEByZXR1cm4gJHZhbHVlO1xuLy99IiwiLnBhZ2UtdGVtcGxhdGUtc2JiIHtcclxuXHQuYnRuLFxyXG5cdGlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xyXG5cdFx0bWluLXdpZHRoICAgICAgIDogMTcwcHg7XHJcblx0XHRtYXJnaW4gICAgICAgICAgOiAyNXB4O1xyXG5cdFx0cGFkZGluZyAgICAgICAgIDogNXB4IDIwcHg7XHJcblx0XHRAaW5jbHVkZSBmKDIycHgsICRjLXdoaXRlLCAkZi1UZXRyYSk7XHJcblx0XHRib3JkZXIgICAgICAgICAgOiAycHggc29saWQgd2hpdGU7XHJcblx0XHRib3JkZXItcmFkaXVzICAgOiAwO1xyXG5cdFx0dGV4dC1kZWNvcmF0aW9uIDogbm9uZTtcclxuXHRcdHRyYW5zaXRpb24gICAgICA6IC41cyBlYXNlO1xyXG5cclxuXHRcdCY6aG92ZXIge1xyXG5cdFx0XHR0ZXh0LWRlY29yYXRpb24gOiBub25lO1xyXG5cdFx0XHRjb2xvciAgICAgICAgICAgOiAkYy13aGl0ZTtcclxuXHRcdFx0QGluY2x1ZGUgYmcoJGMtYXF1YS1kYXJrKTtcclxuXHRcdFx0dHJhbnNmb3JtICAgICAgIDogcm90YXRlKDNkZWcpIHNjYWxlKDEuMSk7XHJcblx0XHR9XHJcblxyXG5cdFx0Ji5vcmFuZ2UsXHJcblx0XHQmW3R5cGU9XCJzdWJtaXRcIl0ge1xyXG5cdFx0XHRAaW5jbHVkZSBiZygkYy1vcmFuZ2UpO1xyXG5cdFx0XHR3b3JkLXNwYWNpbmcgOiAzcHg7XHJcblx0XHRcdGNvbG9yICAgICAgICA6ICRjLXdoaXRlO1xyXG5cclxuXHRcdFx0Jjpob3ZlciB7XHJcblx0XHRcdFx0Y29sb3IgOiAkYy13aGl0ZTtcclxuXHRcdFx0XHRAaW5jbHVkZSBiZygkYy1hcXVhLWRhcmspO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQubmluamEtZm9ybXMtcmVxdWlyZWQtaXRlbXMge1xyXG5cdFx0bWFyZ2luLWJvdHRvbSA6IDE1cHg7XHJcblx0XHRjb2xvciAgICAgICAgIDogJGMtd2hpdGU7XHJcblx0fVxyXG5cclxuXHQubmluamEtZm9ybXMtcmVxLXN5bWJvbCB7XHJcblx0XHRjb2xvciA6ICNmZjAwMDAgIWltcG9ydGFudDtcclxuXHR9XHJcblxyXG5cdC5uaW5qYS1mb3Jtcy1mb3JtLXdyYXAgbGFiZWwge1xyXG5cdFx0Zm9udC1zaXplIDogMjBweDtcclxuXHRcdGNvbG9yICAgICA6ICRjLXdoaXRlO1xyXG5cdH1cclxuXHJcblx0Lm5pbmphLWZvcm1zLWZvcm0td3JhcCBpbnB1dFt0eXBlPVwidGV4dFwiXSxcclxuXHQubmluamEtZm9ybXMtZm9ybS13cmFwIHRleHRhcmVhIHtcclxuXHRcdG1pbi1oZWlnaHQgOiA0NXB4O1xyXG5cdFx0cGFkZGluZyAgICA6IDVweCAxNXB4O1xyXG5cdFx0QGluY2x1ZGUgZigxOXB4KTtcclxuXHRcdGNvbG9yICAgICAgOiAkYy1kYXJrLWdyYXk7XHJcblx0XHRib3JkZXIgICAgIDogM3B4IHNvbGlkICRjLXdoaXRlO1xyXG5cdFx0b3V0bGluZSAgICA6IG5vbmU7XHJcblx0XHR0cmFuc2l0aW9uIDogLjVzIGVhc2U7XHJcblxyXG5cdFx0Jjpmb2N1cyB7XHJcblx0XHRcdGJvcmRlciA6IDNweCBzb2xpZCAkYy1vcmFuZ2U7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQubmluamEtZm9ybXMtZm9ybS13cmFwIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xyXG5cdFx0bWFyZ2luIDogMDtcclxuXHR9XHJcbn1cclxuXHJcbi50ZXh0LW9yYW5nZSB7XHJcblx0JiwgYSwgYSBzcGFuIHtcclxuXHRcdGNvbG9yOiAjZjhhYjJjICFpbXBvcnRhbnQ7XHJcblx0fVxyXG59XHJcblxyXG4jd3BhZG1pbmJhciB7XHJcblx0dG9wICAgIDogaW5pdGlhbDtcclxuXHRib3R0b20gOiAwO1xyXG5cdHBvc2l0aW9uOiBmaXhlZCAhaW1wb3J0YW50O1xyXG59XHJcbiIsIjpyb290IHtcbiAgLy8gQ3VzdG9tIHZhcmlhYmxlIHZhbHVlcyBvbmx5IHN1cHBvcnQgU2Fzc1NjcmlwdCBpbnNpZGUgYCN7fWAuXG4gIEBlYWNoICRjb2xvciwgJHZhbHVlIGluICRjb2xvcnMge1xuICAgIC0tI3skY29sb3J9OiAjeyR2YWx1ZX07XG4gIH1cblxuICBAZWFjaCAkY29sb3IsICR2YWx1ZSBpbiAkdGhlbWUtY29sb3JzIHtcbiAgICAtLSN7JGNvbG9yfTogI3skdmFsdWV9O1xuICB9XG5cbiAgQGVhY2ggJGJwLCAkdmFsdWUgaW4gJGdyaWQtYnJlYWtwb2ludHMge1xuICAgIC0tYnJlYWtwb2ludC0jeyRicH06ICN7JHZhbHVlfTtcbiAgfVxuXG4gIC8vIFVzZSBgaW5zcGVjdGAgZm9yIGxpc3RzIHNvIHRoYXQgcXVvdGVkIGl0ZW1zIGtlZXAgdGhlIHF1b3Rlcy5cbiAgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzL3Nhc3MvaXNzdWVzLzIzODMjaXNzdWVjb21tZW50LTMzNjM0OTE3MlxuICAtLWZvbnQtZmFtaWx5LXNhbnMtc2VyaWY6ICN7aW5zcGVjdCgkZm9udC1mYW1pbHktc2Fucy1zZXJpZil9O1xuICAtLWZvbnQtZmFtaWx5LW1vbm9zcGFjZTogI3tpbnNwZWN0KCRmb250LWZhbWlseS1tb25vc3BhY2UpfTtcbn1cbiIsIi8vIHN0eWxlbGludC1kaXNhYmxlIGF0LXJ1bGUtbm8tdmVuZG9yLXByZWZpeCwgZGVjbGFyYXRpb24tbm8taW1wb3J0YW50LCBzZWxlY3Rvci1uby1xdWFsaWZ5aW5nLXR5cGUsIHByb3BlcnR5LW5vLXZlbmRvci1wcmVmaXhcblxuLy8gUmVib290XG4vL1xuLy8gTm9ybWFsaXphdGlvbiBvZiBIVE1MIGVsZW1lbnRzLCBtYW51YWxseSBmb3JrZWQgZnJvbSBOb3JtYWxpemUuY3NzIHRvIHJlbW92ZVxuLy8gc3R5bGVzIHRhcmdldGluZyBpcnJlbGV2YW50IGJyb3dzZXJzIHdoaWxlIGFwcGx5aW5nIG5ldyBzdHlsZXMuXG4vL1xuLy8gTm9ybWFsaXplIGlzIGxpY2Vuc2VkIE1JVC4gaHR0cHM6Ly9naXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzc1xuXG5cbi8vIERvY3VtZW50XG4vL1xuLy8gMS4gQ2hhbmdlIGZyb20gYGJveC1zaXppbmc6IGNvbnRlbnQtYm94YCBzbyB0aGF0IGB3aWR0aGAgaXMgbm90IGFmZmVjdGVkIGJ5IGBwYWRkaW5nYCBvciBgYm9yZGVyYC5cbi8vIDIuIENoYW5nZSB0aGUgZGVmYXVsdCBmb250IGZhbWlseSBpbiBhbGwgYnJvd3NlcnMuXG4vLyAzLiBDb3JyZWN0IHRoZSBsaW5lIGhlaWdodCBpbiBhbGwgYnJvd3NlcnMuXG4vLyA0LiBQcmV2ZW50IGFkanVzdG1lbnRzIG9mIGZvbnQgc2l6ZSBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2VzIGluIElFIG9uIFdpbmRvd3MgUGhvbmUgYW5kIGluIGlPUy5cbi8vIDUuIENoYW5nZSB0aGUgZGVmYXVsdCB0YXAgaGlnaGxpZ2h0IHRvIGJlIGNvbXBsZXRlbHkgdHJhbnNwYXJlbnQgaW4gaU9TLlxuXG4qLFxuKjo6YmVmb3JlLFxuKjo6YWZ0ZXIge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvLyAxXG59XG5cbmh0bWwge1xuICBmb250LWZhbWlseTogc2Fucy1zZXJpZjsgLy8gMlxuICBsaW5lLWhlaWdodDogMS4xNTsgLy8gM1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8vIDRcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKCRibGFjaywgMCk7IC8vIDVcbn1cblxuLy8gU2hpbSBmb3IgXCJuZXdcIiBIVE1MNSBzdHJ1Y3R1cmFsIGVsZW1lbnRzIHRvIGRpc3BsYXkgY29ycmVjdGx5IChJRTEwLCBvbGRlciBicm93c2Vycylcbi8vIFRPRE86IHJlbW92ZSBpbiB2NVxuLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHNlbGVjdG9yLWxpc3QtY29tbWEtbmV3bGluZS1hZnRlclxuYXJ0aWNsZSwgYXNpZGUsIGZpZ2NhcHRpb24sIGZpZ3VyZSwgZm9vdGVyLCBoZWFkZXIsIGhncm91cCwgbWFpbiwgbmF2LCBzZWN0aW9uIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8vIEJvZHlcbi8vXG4vLyAxLiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBhbGwgYnJvd3NlcnMuXG4vLyAyLiBBcyBhIGJlc3QgcHJhY3RpY2UsIGFwcGx5IGEgZGVmYXVsdCBgYmFja2dyb3VuZC1jb2xvcmAuXG4vLyAzLiBTZXQgYW4gZXhwbGljaXQgaW5pdGlhbCB0ZXh0LWFsaWduIHZhbHVlIHNvIHRoYXQgd2UgY2FuIGxhdGVyIHVzZVxuLy8gICAgdGhlIGBpbmhlcml0YCB2YWx1ZSBvbiB0aGluZ3MgbGlrZSBgPHRoPmAgZWxlbWVudHMuXG5cbmJvZHkge1xuICBtYXJnaW46IDA7IC8vIDFcbiAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1iYXNlO1xuICBAaW5jbHVkZSBmb250LXNpemUoJGZvbnQtc2l6ZS1iYXNlKTtcbiAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1iYXNlO1xuICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0LWJhc2U7XG4gIGNvbG9yOiAkYm9keS1jb2xvcjtcbiAgdGV4dC1hbGlnbjogbGVmdDsgLy8gM1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYm9keS1iZzsgLy8gMlxufVxuXG4vLyBTdXBwcmVzcyB0aGUgZm9jdXMgb3V0bGluZSBvbiBlbGVtZW50cyB0aGF0IGNhbm5vdCBiZSBhY2Nlc3NlZCB2aWEga2V5Ym9hcmQuXG4vLyBUaGlzIHByZXZlbnRzIGFuIHVud2FudGVkIGZvY3VzIG91dGxpbmUgZnJvbSBhcHBlYXJpbmcgYXJvdW5kIGVsZW1lbnRzIHRoYXRcbi8vIG1pZ2h0IHN0aWxsIHJlc3BvbmQgdG8gcG9pbnRlciBldmVudHMuXG4vL1xuLy8gQ3JlZGl0OiBodHRwczovL2dpdGh1Yi5jb20vc3VpdGNzcy9iYXNlXG5bdGFiaW5kZXg9XCItMVwiXTpmb2N1cyB7XG4gIG91dGxpbmU6IDAgIWltcG9ydGFudDtcbn1cblxuXG4vLyBDb250ZW50IGdyb3VwaW5nXG4vL1xuLy8gMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gRmlyZWZveC5cbi8vIDIuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UgYW5kIElFLlxuXG5ociB7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94OyAvLyAxXG4gIGhlaWdodDogMDsgLy8gMVxuICBvdmVyZmxvdzogdmlzaWJsZTsgLy8gMlxufVxuXG5cbi8vXG4vLyBUeXBvZ3JhcGh5XG4vL1xuXG4vLyBSZW1vdmUgdG9wIG1hcmdpbnMgZnJvbSBoZWFkaW5nc1xuLy9cbi8vIEJ5IGRlZmF1bHQsIGA8aDE+YC1gPGg2PmAgYWxsIHJlY2VpdmUgdG9wIGFuZCBib3R0b20gbWFyZ2lucy4gV2UgbnVrZSB0aGUgdG9wXG4vLyBtYXJnaW4gZm9yIGVhc2llciBjb250cm9sIHdpdGhpbiB0eXBlIHNjYWxlcyBhcyBpdCBhdm9pZHMgbWFyZ2luIGNvbGxhcHNpbmcuXG4vLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2VsZWN0b3ItbGlzdC1jb21tYS1uZXdsaW5lLWFmdGVyXG5oMSwgaDIsIGgzLCBoNCwgaDUsIGg2IHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogJGhlYWRpbmdzLW1hcmdpbi1ib3R0b207XG59XG5cbi8vIFJlc2V0IG1hcmdpbnMgb24gcGFyYWdyYXBoc1xuLy9cbi8vIFNpbWlsYXJseSwgdGhlIHRvcCBtYXJnaW4gb24gYDxwPmBzIGdldCByZXNldC4gSG93ZXZlciwgd2UgYWxzbyByZXNldCB0aGVcbi8vIGJvdHRvbSBtYXJnaW4gdG8gdXNlIGByZW1gIHVuaXRzIGluc3RlYWQgb2YgYGVtYC5cbnAge1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAkcGFyYWdyYXBoLW1hcmdpbi1ib3R0b207XG59XG5cbi8vIEFiYnJldmlhdGlvbnNcbi8vXG4vLyAxLiBEdXBsaWNhdGUgYmVoYXZpb3IgdG8gdGhlIGRhdGEtKiBhdHRyaWJ1dGUgZm9yIG91ciB0b29sdGlwIHBsdWdpblxuLy8gMi4gQWRkIHRoZSBjb3JyZWN0IHRleHQgZGVjb3JhdGlvbiBpbiBDaHJvbWUsIEVkZ2UsIElFLCBPcGVyYSwgYW5kIFNhZmFyaS5cbi8vIDMuIEFkZCBleHBsaWNpdCBjdXJzb3IgdG8gaW5kaWNhdGUgY2hhbmdlZCBiZWhhdmlvci5cbi8vIDQuIFJlbW92ZSB0aGUgYm90dG9tIGJvcmRlciBpbiBGaXJlZm94IDM5LS5cbi8vIDUuIFByZXZlbnQgdGhlIHRleHQtZGVjb3JhdGlvbiB0byBiZSBza2lwcGVkLlxuXG5hYmJyW3RpdGxlXSxcbmFiYnJbZGF0YS1vcmlnaW5hbC10aXRsZV0geyAvLyAxXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyAvLyAyXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDsgLy8gMlxuICBjdXJzb3I6IGhlbHA7IC8vIDNcbiAgYm9yZGVyLWJvdHRvbTogMDsgLy8gNFxuICB0ZXh0LWRlY29yYXRpb24tc2tpcC1pbms6IG5vbmU7IC8vIDVcbn1cblxuYWRkcmVzcyB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG59XG5cbm9sLFxudWwsXG5kbCB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG59XG5cbm9sIG9sLFxudWwgdWwsXG5vbCB1bCxcbnVsIG9sIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuZHQge1xuICBmb250LXdlaWdodDogJGR0LWZvbnQtd2VpZ2h0O1xufVxuXG5kZCB7XG4gIG1hcmdpbi1ib3R0b206IC41cmVtO1xuICBtYXJnaW4tbGVmdDogMDsgLy8gVW5kbyBicm93c2VyIGRlZmF1bHRcbn1cblxuYmxvY2txdW90ZSB7XG4gIG1hcmdpbjogMCAwIDFyZW07XG59XG5cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LWJvbGRlcjsgLy8gQWRkIHRoZSBjb3JyZWN0IGZvbnQgd2VpZ2h0IGluIENocm9tZSwgRWRnZSwgYW5kIFNhZmFyaVxufVxuXG5zbWFsbCB7XG4gIEBpbmNsdWRlIGZvbnQtc2l6ZSg4MCUpOyAvLyBBZGQgdGhlIGNvcnJlY3QgZm9udCBzaXplIGluIGFsbCBicm93c2Vyc1xufVxuXG4vL1xuLy8gUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgZWxlbWVudHMgZnJvbSBhZmZlY3RpbmcgdGhlIGxpbmUgaGVpZ2h0IGluXG4vLyBhbGwgYnJvd3NlcnMuXG4vL1xuXG5zdWIsXG5zdXAge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIEBpbmNsdWRlIGZvbnQtc2l6ZSg3NSUpO1xuICBsaW5lLWhlaWdodDogMDtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG5zdWIgeyBib3R0b206IC0uMjVlbTsgfVxuc3VwIHsgdG9wOiAtLjVlbTsgfVxuXG5cbi8vXG4vLyBMaW5rc1xuLy9cblxuYSB7XG4gIGNvbG9yOiAkbGluay1jb2xvcjtcbiAgdGV4dC1kZWNvcmF0aW9uOiAkbGluay1kZWNvcmF0aW9uO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgLy8gUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgb24gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuXG4gIEBpbmNsdWRlIGhvdmVyIHtcbiAgICBjb2xvcjogJGxpbmstaG92ZXItY29sb3I7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiAkbGluay1ob3Zlci1kZWNvcmF0aW9uO1xuICB9XG59XG5cbi8vIEFuZCB1bmRvIHRoZXNlIHN0eWxlcyBmb3IgcGxhY2Vob2xkZXIgbGlua3MvbmFtZWQgYW5jaG9ycyAod2l0aG91dCBocmVmKVxuLy8gd2hpY2ggaGF2ZSBub3QgYmVlbiBtYWRlIGV4cGxpY2l0bHkga2V5Ym9hcmQtZm9jdXNhYmxlICh3aXRob3V0IHRhYmluZGV4KS5cbi8vIEl0IHdvdWxkIGJlIG1vcmUgc3RyYWlnaHRmb3J3YXJkIHRvIGp1c3QgdXNlIGFbaHJlZl0gaW4gcHJldmlvdXMgYmxvY2ssIGJ1dCB0aGF0XG4vLyBjYXVzZXMgc3BlY2lmaWNpdHkgaXNzdWVzIGluIG1hbnkgb3RoZXIgc3R5bGVzIHRoYXQgYXJlIHRvbyBjb21wbGV4IHRvIGZpeC5cbi8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvaXNzdWVzLzE5NDAyXG5cbmE6bm90KFtocmVmXSk6bm90KFt0YWJpbmRleF0pIHtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICBAaW5jbHVkZSBob3Zlci1mb2N1cyB7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG5cbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogMDtcbiAgfVxufVxuXG5cbi8vXG4vLyBDb2RlXG4vL1xuXG5wcmUsXG5jb2RlLFxua2JkLFxuc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktbW9ub3NwYWNlO1xuICBAaW5jbHVkZSBmb250LXNpemUoMWVtKTsgLy8gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxufVxuXG5wcmUge1xuICAvLyBSZW1vdmUgYnJvd3NlciBkZWZhdWx0IHRvcCBtYXJnaW5cbiAgbWFyZ2luLXRvcDogMDtcbiAgLy8gUmVzZXQgYnJvd3NlciBkZWZhdWx0IG9mIGAxZW1gIHRvIHVzZSBgcmVtYHNcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgLy8gRG9uJ3QgYWxsb3cgY29udGVudCB0byBicmVhayBvdXRzaWRlXG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG5cbi8vXG4vLyBGaWd1cmVzXG4vL1xuXG5maWd1cmUge1xuICAvLyBBcHBseSBhIGNvbnNpc3RlbnQgbWFyZ2luIHN0cmF0ZWd5IChtYXRjaGVzIG91ciB0eXBlIHN0eWxlcykuXG4gIG1hcmdpbjogMCAwIDFyZW07XG59XG5cblxuLy9cbi8vIEltYWdlcyBhbmQgY29udGVudFxuLy9cblxuaW1nIHtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgYm9yZGVyLXN0eWxlOiBub25lOyAvLyBSZW1vdmUgdGhlIGJvcmRlciBvbiBpbWFnZXMgaW5zaWRlIGxpbmtzIGluIElFIDEwLS5cbn1cblxuc3ZnIHtcbiAgLy8gV29ya2Fyb3VuZCBmb3IgdGhlIFNWRyBvdmVyZmxvdyBidWcgaW4gSUUxMC8xMSBpcyBzdGlsbCByZXF1aXJlZC5cbiAgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9pc3N1ZXMvMjY4NzhcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuXG4vL1xuLy8gVGFibGVzXG4vL1xuXG50YWJsZSB7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7IC8vIFByZXZlbnQgZG91YmxlIGJvcmRlcnNcbn1cblxuY2FwdGlvbiB7XG4gIHBhZGRpbmctdG9wOiAkdGFibGUtY2VsbC1wYWRkaW5nO1xuICBwYWRkaW5nLWJvdHRvbTogJHRhYmxlLWNlbGwtcGFkZGluZztcbiAgY29sb3I6ICR0YWJsZS1jYXB0aW9uLWNvbG9yO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBjYXB0aW9uLXNpZGU6IGJvdHRvbTtcbn1cblxudGgge1xuICAvLyBNYXRjaGVzIGRlZmF1bHQgYDx0ZD5gIGFsaWdubWVudCBieSBpbmhlcml0aW5nIGZyb20gdGhlIGA8Ym9keT5gLCBvciB0aGVcbiAgLy8gY2xvc2VzdCBwYXJlbnQgd2l0aCBhIHNldCBgdGV4dC1hbGlnbmAuXG4gIHRleHQtYWxpZ246IGluaGVyaXQ7XG59XG5cblxuLy9cbi8vIEZvcm1zXG4vL1xuXG5sYWJlbCB7XG4gIC8vIEFsbG93IGxhYmVscyB0byB1c2UgYG1hcmdpbmAgZm9yIHNwYWNpbmcuXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogJGxhYmVsLW1hcmdpbi1ib3R0b207XG59XG5cbi8vIFJlbW92ZSB0aGUgZGVmYXVsdCBgYm9yZGVyLXJhZGl1c2AgdGhhdCBtYWNPUyBDaHJvbWUgYWRkcy5cbi8vXG4vLyBEZXRhaWxzIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9pc3N1ZXMvMjQwOTNcbmJ1dHRvbiB7XG4gIC8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBwcm9wZXJ0eS1ibGFja2xpc3RcbiAgYm9yZGVyLXJhZGl1czogMDtcbn1cblxuLy8gV29yayBhcm91bmQgYSBGaXJlZm94L0lFIGJ1ZyB3aGVyZSB0aGUgdHJhbnNwYXJlbnQgYGJ1dHRvbmAgYmFja2dyb3VuZFxuLy8gcmVzdWx0cyBpbiBhIGxvc3Mgb2YgdGhlIGRlZmF1bHQgYGJ1dHRvbmAgZm9jdXMgc3R5bGVzLlxuLy9cbi8vIENyZWRpdDogaHR0cHM6Ly9naXRodWIuY29tL3N1aXRjc3MvYmFzZS9cbmJ1dHRvbjpmb2N1cyB7XG4gIG91dGxpbmU6IDFweCBkb3R0ZWQ7XG4gIG91dGxpbmU6IDVweCBhdXRvIC13ZWJraXQtZm9jdXMtcmluZy1jb2xvcjtcbn1cblxuaW5wdXQsXG5idXR0b24sXG5zZWxlY3QsXG5vcHRncm91cCxcbnRleHRhcmVhIHtcbiAgbWFyZ2luOiAwOyAvLyBSZW1vdmUgdGhlIG1hcmdpbiBpbiBGaXJlZm94IGFuZCBTYWZhcmlcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIEBpbmNsdWRlIGZvbnQtc2l6ZShpbmhlcml0KTtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG59XG5cbmJ1dHRvbixcbmlucHV0IHtcbiAgb3ZlcmZsb3c6IHZpc2libGU7IC8vIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2Vcbn1cblxuYnV0dG9uLFxuc2VsZWN0IHtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7IC8vIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRmlyZWZveFxufVxuXG4vLyBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHdvcmQtd3JhcCBpbiBTYWZhcmkuXG4vL1xuLy8gRGV0YWlscyBhdCBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvaXNzdWVzLzI0OTkwXG5zZWxlY3Qge1xuICB3b3JkLXdyYXA6IG5vcm1hbDtcbn1cblxuXG4vLyAxLiBQcmV2ZW50IGEgV2ViS2l0IGJ1ZyB3aGVyZSAoMikgZGVzdHJveXMgbmF0aXZlIGBhdWRpb2AgYW5kIGB2aWRlb2Bcbi8vICAgIGNvbnRyb2xzIGluIEFuZHJvaWQgNC5cbi8vIDIuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG5idXR0b24sXG5bdHlwZT1cImJ1dHRvblwiXSwgLy8gMVxuW3R5cGU9XCJyZXNldFwiXSxcblt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8vIDJcbn1cblxuLy8gT3BpbmlvbmF0ZWQ6IGFkZCBcImhhbmRcIiBjdXJzb3IgdG8gbm9uLWRpc2FibGVkIGJ1dHRvbiBlbGVtZW50cy5cbkBpZiAkZW5hYmxlLXBvaW50ZXItY3Vyc29yLWZvci1idXR0b25zIHtcbiAgYnV0dG9uLFxuICBbdHlwZT1cImJ1dHRvblwiXSxcbiAgW3R5cGU9XCJyZXNldFwiXSxcbiAgW3R5cGU9XCJzdWJtaXRcIl0ge1xuICAgICY6bm90KDpkaXNhYmxlZCkge1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cbiAgfVxufVxuXG4vLyBSZW1vdmUgaW5uZXIgYm9yZGVyIGFuZCBwYWRkaW5nIGZyb20gRmlyZWZveCwgYnV0IGRvbid0IHJlc3RvcmUgdGhlIG91dGxpbmUgbGlrZSBOb3JtYWxpemUuXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cImJ1dHRvblwiXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwicmVzZXRcIl06Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cInN1Ym1pdFwiXTo6LW1vei1mb2N1cy1pbm5lciB7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbn1cblxuaW5wdXRbdHlwZT1cInJhZGlvXCJdLFxuaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLy8gMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gSUUgMTAtXG4gIHBhZGRpbmc6IDA7IC8vIDIuIFJlbW92ZSB0aGUgcGFkZGluZyBpbiBJRSAxMC1cbn1cblxuXG5pbnB1dFt0eXBlPVwiZGF0ZVwiXSxcbmlucHV0W3R5cGU9XCJ0aW1lXCJdLFxuaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdLFxuaW5wdXRbdHlwZT1cIm1vbnRoXCJdIHtcbiAgLy8gUmVtb3ZlIHRoZSBkZWZhdWx0IGFwcGVhcmFuY2Ugb2YgdGVtcG9yYWwgaW5wdXRzIHRvIGF2b2lkIGEgTW9iaWxlIFNhZmFyaVxuICAvLyBidWcgd2hlcmUgc2V0dGluZyBhIGN1c3RvbSBsaW5lLWhlaWdodCBwcmV2ZW50cyB0ZXh0IGZyb20gYmVpbmcgdmVydGljYWxseVxuICAvLyBjZW50ZXJlZCB3aXRoaW4gdGhlIGlucHV0LlxuICAvLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzOTg0OFxuICAvLyBhbmQgaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2lzc3Vlcy8xMTI2NlxuICAtd2Via2l0LWFwcGVhcmFuY2U6IGxpc3Rib3g7XG59XG5cbnRleHRhcmVhIHtcbiAgb3ZlcmZsb3c6IGF1dG87IC8vIFJlbW92ZSB0aGUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUuXG4gIC8vIFRleHRhcmVhcyBzaG91bGQgcmVhbGx5IG9ubHkgcmVzaXplIHZlcnRpY2FsbHkgc28gdGhleSBkb24ndCBicmVhayB0aGVpciAoaG9yaXpvbnRhbCkgY29udGFpbmVycy5cbiAgcmVzaXplOiB2ZXJ0aWNhbDtcbn1cblxuZmllbGRzZXQge1xuICAvLyBCcm93c2VycyBzZXQgYSBkZWZhdWx0IGBtaW4td2lkdGg6IG1pbi1jb250ZW50O2Agb24gZmllbGRzZXRzLFxuICAvLyB1bmxpa2UgZS5nLiBgPGRpdj5gcywgd2hpY2ggaGF2ZSBgbWluLXdpZHRoOiAwO2AgYnkgZGVmYXVsdC5cbiAgLy8gU28gd2UgcmVzZXQgdGhhdCB0byBlbnN1cmUgZmllbGRzZXRzIGJlaGF2ZSBtb3JlIGxpa2UgYSBzdGFuZGFyZCBibG9jayBlbGVtZW50LlxuICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2lzc3Vlcy8xMjM1OVxuICAvLyBhbmQgaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvI3RoZS1maWVsZHNldC1hbmQtbGVnZW5kLWVsZW1lbnRzXG4gIG1pbi13aWR0aDogMDtcbiAgLy8gUmVzZXQgdGhlIGRlZmF1bHQgb3V0bGluZSBiZWhhdmlvciBvZiBmaWVsZHNldHMgc28gdGhleSBkb24ndCBhZmZlY3QgcGFnZSBsYXlvdXQuXG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgYm9yZGVyOiAwO1xufVxuXG4vLyAxLiBDb3JyZWN0IHRoZSB0ZXh0IHdyYXBwaW5nIGluIEVkZ2UgYW5kIElFLlxuLy8gMi4gQ29ycmVjdCB0aGUgY29sb3IgaW5oZXJpdGFuY2UgZnJvbSBgZmllbGRzZXRgIGVsZW1lbnRzIGluIElFLlxubGVnZW5kIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDEwMCU7IC8vIDFcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luLWJvdHRvbTogLjVyZW07XG4gIEBpbmNsdWRlIGZvbnQtc2l6ZSgxLjVyZW0pO1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgY29sb3I6IGluaGVyaXQ7IC8vIDJcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDsgLy8gMVxufVxuXG5wcm9ncmVzcyB7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgLy8gQWRkIHRoZSBjb3JyZWN0IHZlcnRpY2FsIGFsaWdubWVudCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbn1cblxuLy8gQ29ycmVjdCB0aGUgY3Vyc29yIHN0eWxlIG9mIGluY3JlbWVudCBhbmQgZGVjcmVtZW50IGJ1dHRvbnMgaW4gQ2hyb21lLlxuW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bztcbn1cblxuW3R5cGU9XCJzZWFyY2hcIl0ge1xuICAvLyBUaGlzIG92ZXJyaWRlcyB0aGUgZXh0cmEgcm91bmRlZCBjb3JuZXJzIG9uIHNlYXJjaCBpbnB1dHMgaW4gaU9TIHNvIHRoYXQgb3VyXG4gIC8vIGAuZm9ybS1jb250cm9sYCBjbGFzcyBjYW4gcHJvcGVybHkgc3R5bGUgdGhlbS4gTm90ZSB0aGF0IHRoaXMgY2Fubm90IHNpbXBseVxuICAvLyBiZSBhZGRlZCB0byBgLmZvcm0tY29udHJvbGAgYXMgaXQncyBub3Qgc3BlY2lmaWMgZW5vdWdoLiBGb3IgZGV0YWlscywgc2VlXG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9pc3N1ZXMvMTE1ODYuXG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4OyAvLyAyLiBDb3JyZWN0IHRoZSBvdXRsaW5lIHN0eWxlIGluIFNhZmFyaS5cbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuXG4vL1xuLy8gUmVtb3ZlIHRoZSBpbm5lciBwYWRkaW5nIGluIENocm9tZSBhbmQgU2FmYXJpIG9uIG1hY09TLlxuLy9cblxuW3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbi8vXG4vLyAxLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuLy8gMi4gQ2hhbmdlIGZvbnQgcHJvcGVydGllcyB0byBgaW5oZXJpdGAgaW4gU2FmYXJpLlxuLy9cblxuOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XG4gIGZvbnQ6IGluaGVyaXQ7IC8vIDJcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8vIDFcbn1cblxuLy9cbi8vIENvcnJlY3QgZWxlbWVudCBkaXNwbGF5c1xuLy9cblxub3V0cHV0IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG5zdW1tYXJ5IHtcbiAgZGlzcGxheTogbGlzdC1pdGVtOyAvLyBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBhbGwgYnJvd3NlcnNcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG50ZW1wbGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7IC8vIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFXG59XG5cbi8vIEFsd2F5cyBoaWRlIGFuIGVsZW1lbnQgd2l0aCB0aGUgYGhpZGRlbmAgSFRNTCBhdHRyaWJ1dGUgKGZyb20gUHVyZUNTUykuXG4vLyBOZWVkZWQgZm9yIHByb3BlciBkaXNwbGF5IGluIElFIDEwLS5cbltoaWRkZW5dIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuIiwiLy8gc3R5bGVsaW50LWRpc2FibGUgcHJvcGVydHktYmxhY2tsaXN0LCBzY3NzL2RvbGxhci12YXJpYWJsZS1kZWZhdWx0XG5cbi8vIFNDU1MgUkZTIG1peGluXG4vL1xuLy8gQXV0b21hdGVkIGZvbnQtcmVzaXppbmdcbi8vXG4vLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvcmZzXG5cbi8vIENvbmZpZ3VyYXRpb25cblxuLy8gQmFzZSBmb250IHNpemVcbiRyZnMtYmFzZS1mb250LXNpemU6IDEuMjVyZW0gIWRlZmF1bHQ7XG4kcmZzLWZvbnQtc2l6ZS11bml0OiByZW0gIWRlZmF1bHQ7XG5cbi8vIEJyZWFrcG9pbnQgYXQgd2hlcmUgZm9udC1zaXplIHN0YXJ0cyBkZWNyZWFzaW5nIGlmIHNjcmVlbiB3aWR0aCBpcyBzbWFsbGVyXG4kcmZzLWJyZWFrcG9pbnQ6IDEyMDBweCAhZGVmYXVsdDtcbiRyZnMtYnJlYWtwb2ludC11bml0OiBweCAhZGVmYXVsdDtcblxuLy8gUmVzaXplIGZvbnQtc2l6ZSBiYXNlZCBvbiBzY3JlZW4gaGVpZ2h0IGFuZCB3aWR0aFxuJHJmcy10d28tZGltZW5zaW9uYWw6IGZhbHNlICFkZWZhdWx0O1xuXG4vLyBGYWN0b3Igb2YgZGVjcmVhc2VcbiRyZnMtZmFjdG9yOiAxMCAhZGVmYXVsdDtcblxuQGlmIHR5cGUtb2YoJHJmcy1mYWN0b3IpICE9IFwibnVtYmVyXCIgb3IgJHJmcy1mYWN0b3IgPD0gMSB7XG4gIEBlcnJvciBcImAjeyRyZnMtZmFjdG9yfWAgaXMgbm90IGEgdmFsaWQgICRyZnMtZmFjdG9yLCBpdCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAxLlwiO1xufVxuXG4vLyBHZW5lcmF0ZSBlbmFibGUgb3IgZGlzYWJsZSBjbGFzc2VzLiBQb3NzaWJpbGl0aWVzOiBmYWxzZSwgXCJlbmFibGVcIiBvciBcImRpc2FibGVcIlxuJHJmcy1jbGFzczogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vIDEgcmVtID0gJHJmcy1yZW0tdmFsdWUgcHhcbiRyZnMtcmVtLXZhbHVlOiAxNiAhZGVmYXVsdDtcblxuLy8gU2FmYXJpIGlmcmFtZSByZXNpemUgYnVnOiBodHRwczovL2dpdGh1Yi5jb20vdHdicy9yZnMvaXNzdWVzLzE0XG4kcmZzLXNhZmFyaS1pZnJhbWUtcmVzaXplLWJ1Zy1maXg6IGZhbHNlICFkZWZhdWx0O1xuXG4vLyBEaXNhYmxlIFJGUyBieSBzZXR0aW5nICRlbmFibGUtcmVzcG9uc2l2ZS1mb250LXNpemVzIHRvIGZhbHNlXG4kZW5hYmxlLXJlc3BvbnNpdmUtZm9udC1zaXplczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8gQ2FjaGUgJHJmcy1iYXNlLWZvbnQtc2l6ZSB1bml0XG4kcmZzLWJhc2UtZm9udC1zaXplLXVuaXQ6IHVuaXQoJHJmcy1iYXNlLWZvbnQtc2l6ZSk7XG5cbi8vIFJlbW92ZSBweC11bml0IGZyb20gJHJmcy1iYXNlLWZvbnQtc2l6ZSBmb3IgY2FsY3VsYXRpb25zXG5AaWYgJHJmcy1iYXNlLWZvbnQtc2l6ZS11bml0ID09IFwicHhcIiB7XG4gICRyZnMtYmFzZS1mb250LXNpemU6ICRyZnMtYmFzZS1mb250LXNpemUgLyAoJHJmcy1iYXNlLWZvbnQtc2l6ZSAqIDAgKyAxKTtcbn1cbkBlbHNlIGlmICRyZnMtYmFzZS1mb250LXNpemUtdW5pdCA9PSBcInJlbVwiIHtcbiAgJHJmcy1iYXNlLWZvbnQtc2l6ZTogJHJmcy1iYXNlLWZvbnQtc2l6ZSAvICgkcmZzLWJhc2UtZm9udC1zaXplICogMCArIDEgLyAkcmZzLXJlbS12YWx1ZSk7XG59XG5cbi8vIENhY2hlICRyZnMtYnJlYWtwb2ludCB1bml0IHRvIHByZXZlbnQgbXVsdGlwbGUgY2FsbHNcbiRyZnMtYnJlYWtwb2ludC11bml0LWNhY2hlOiB1bml0KCRyZnMtYnJlYWtwb2ludCk7XG5cbi8vIFJlbW92ZSB1bml0IGZyb20gJHJmcy1icmVha3BvaW50IGZvciBjYWxjdWxhdGlvbnNcbkBpZiAkcmZzLWJyZWFrcG9pbnQtdW5pdC1jYWNoZSA9PSBcInB4XCIge1xuICAkcmZzLWJyZWFrcG9pbnQ6ICRyZnMtYnJlYWtwb2ludCAvICgkcmZzLWJyZWFrcG9pbnQgKiAwICsgMSk7XG59XG5AZWxzZSBpZiAkcmZzLWJyZWFrcG9pbnQtdW5pdC1jYWNoZSA9PSBcInJlbVwiIG9yICRyZnMtYnJlYWtwb2ludC11bml0LWNhY2hlID09IFwiZW1cIiB7XG4gICRyZnMtYnJlYWtwb2ludDogJHJmcy1icmVha3BvaW50IC8gKCRyZnMtYnJlYWtwb2ludCAqIDAgKyAxIC8gJHJmcy1yZW0tdmFsdWUpO1xufVxuXG4vLyBSZXNwb25zaXZlIGZvbnQtc2l6ZSBtaXhpblxuQG1peGluIHJmcygkZnMsICRpbXBvcnRhbnQ6IGZhbHNlKSB7XG4gIC8vIENhY2hlICRmcyB1bml0XG4gICRmcy11bml0OiBpZih0eXBlLW9mKCRmcykgPT0gXCJudW1iZXJcIiwgdW5pdCgkZnMpLCBmYWxzZSk7XG5cbiAgLy8gQWRkICFpbXBvcnRhbnQgc3VmZml4IGlmIG5lZWRlZFxuICAkcmZzLXN1ZmZpeDogaWYoJGltcG9ydGFudCwgXCIgIWltcG9ydGFudFwiLCBcIlwiKTtcblxuICAvLyBJZiAkZnMgaXNuJ3QgYSBudW1iZXIgKGxpa2UgaW5oZXJpdCkgb3IgJGZzIGhhcyBhIHVuaXQgKG5vdCBweCBvciByZW0sIGxpa2UgMS41ZW0pIG9yICQgaXMgMCwganVzdCBwcmludCB0aGUgdmFsdWVcbiAgQGlmIG5vdCAkZnMtdW5pdCBvciAkZnMtdW5pdCAhPSBcIlwiIGFuZCAkZnMtdW5pdCAhPSBcInB4XCIgYW5kICRmcy11bml0ICE9IFwicmVtXCIgb3IgJGZzID09IDAge1xuICAgIGZvbnQtc2l6ZTogI3skZnN9I3skcmZzLXN1ZmZpeH07XG4gIH1cbiAgQGVsc2Uge1xuICAgIC8vIFZhcmlhYmxlcyBmb3Igc3RvcmluZyBzdGF0aWMgYW5kIGZsdWlkIHJlc2NhbGluZ1xuICAgICRyZnMtc3RhdGljOiBudWxsO1xuICAgICRyZnMtZmx1aWQ6IG51bGw7XG5cbiAgICAvLyBSZW1vdmUgcHgtdW5pdCBmcm9tICRmcyBmb3IgY2FsY3VsYXRpb25zXG4gICAgQGlmICRmcy11bml0ID09IFwicHhcIiB7XG4gICAgICAkZnM6ICRmcyAvICgkZnMgKiAwICsgMSk7XG4gICAgfVxuICAgIEBlbHNlIGlmICRmcy11bml0ID09IFwicmVtXCIge1xuICAgICAgJGZzOiAkZnMgLyAoJGZzICogMCArIDEgLyAkcmZzLXJlbS12YWx1ZSk7XG4gICAgfVxuXG4gICAgLy8gU2V0IGRlZmF1bHQgZm9udC1zaXplXG4gICAgQGlmICRyZnMtZm9udC1zaXplLXVuaXQgPT0gcmVtIHtcbiAgICAgICRyZnMtc3RhdGljOiAjeyRmcyAvICRyZnMtcmVtLXZhbHVlfXJlbSN7JHJmcy1zdWZmaXh9O1xuICAgIH1cbiAgICBAZWxzZSBpZiAkcmZzLWZvbnQtc2l6ZS11bml0ID09IHB4IHtcbiAgICAgICRyZnMtc3RhdGljOiAjeyRmc31weCN7JHJmcy1zdWZmaXh9O1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAZXJyb3IgXCJgI3skcmZzLWZvbnQtc2l6ZS11bml0fWAgaXMgbm90IGEgdmFsaWQgdW5pdCBmb3IgJHJmcy1mb250LXNpemUtdW5pdC4gVXNlIGBweGAgb3IgYHJlbWAuXCI7XG4gICAgfVxuXG4gICAgLy8gT25seSBhZGQgbWVkaWEgcXVlcnkgaWYgZm9udC1zaXplIGlzIGJpZ2dlciBhcyB0aGUgbWluaW11bSBmb250LXNpemVcbiAgICAvLyBJZiAkcmZzLWZhY3RvciA9PSAxLCBubyByZXNjYWxpbmcgd2lsbCB0YWtlIHBsYWNlXG4gICAgQGlmICRmcyA+ICRyZnMtYmFzZS1mb250LXNpemUgYW5kICRlbmFibGUtcmVzcG9uc2l2ZS1mb250LXNpemVzIHtcbiAgICAgICRtaW4td2lkdGg6IG51bGw7XG4gICAgICAkdmFyaWFibGUtdW5pdDogbnVsbDtcblxuICAgICAgLy8gQ2FsY3VsYXRlIG1pbmltdW0gZm9udC1zaXplIGZvciBnaXZlbiBmb250LXNpemVcbiAgICAgICRmcy1taW46ICRyZnMtYmFzZS1mb250LXNpemUgKyAoJGZzIC0gJHJmcy1iYXNlLWZvbnQtc2l6ZSkgLyAkcmZzLWZhY3RvcjtcblxuICAgICAgLy8gQ2FsY3VsYXRlIGRpZmZlcmVuY2UgYmV0d2VlbiBnaXZlbiBmb250LXNpemUgYW5kIG1pbmltdW0gZm9udC1zaXplIGZvciBnaXZlbiBmb250LXNpemVcbiAgICAgICRmcy1kaWZmOiAkZnMgLSAkZnMtbWluO1xuXG4gICAgICAvLyBCYXNlIGZvbnQtc2l6ZSBmb3JtYXR0aW5nXG4gICAgICAvLyBObyBuZWVkIHRvIGNoZWNrIGlmIHRoZSB1bml0IGlzIHZhbGlkLCBiZWNhdXNlIHdlIGRpZCB0aGF0IGJlZm9yZVxuICAgICAgJG1pbi13aWR0aDogaWYoJHJmcy1mb250LXNpemUtdW5pdCA9PSByZW0sICN7JGZzLW1pbiAvICRyZnMtcmVtLXZhbHVlfXJlbSwgI3skZnMtbWlufXB4KTtcblxuICAgICAgLy8gSWYgdHdvLWRpbWVuc2lvbmFsLCB1c2Ugc21hbGxlc3Qgb2Ygc2NyZWVuIHdpZHRoIGFuZCBoZWlnaHRcbiAgICAgICR2YXJpYWJsZS11bml0OiBpZigkcmZzLXR3by1kaW1lbnNpb25hbCwgdm1pbiwgdncpO1xuXG4gICAgICAvLyBDYWxjdWxhdGUgdGhlIHZhcmlhYmxlIHdpZHRoIGJldHdlZW4gMCBhbmQgJHJmcy1icmVha3BvaW50XG4gICAgICAkdmFyaWFibGUtd2lkdGg6ICN7JGZzLWRpZmYgKiAxMDAgLyAkcmZzLWJyZWFrcG9pbnR9I3skdmFyaWFibGUtdW5pdH07XG5cbiAgICAgIC8vIFNldCB0aGUgY2FsY3VsYXRlZCBmb250LXNpemUuXG4gICAgICAkcmZzLWZsdWlkOiBjYWxjKCN7JG1pbi13aWR0aH0gKyAjeyR2YXJpYWJsZS13aWR0aH0pICN7JHJmcy1zdWZmaXh9O1xuICAgIH1cblxuICAgIC8vIFJlbmRlcmluZ1xuICAgIEBpZiAkcmZzLWZsdWlkID09IG51bGwge1xuICAgICAgLy8gT25seSByZW5kZXIgc3RhdGljIGZvbnQtc2l6ZSBpZiBubyBmbHVpZCBmb250LXNpemUgaXMgYXZhaWxhYmxlXG4gICAgICBmb250LXNpemU6ICRyZnMtc3RhdGljO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkbXEtdmFsdWU6IG51bGw7XG5cbiAgICAgIC8vIFJGUyBicmVha3BvaW50IGZvcm1hdHRpbmdcbiAgICAgIEBpZiAkcmZzLWJyZWFrcG9pbnQtdW5pdCA9PSBlbSBvciAkcmZzLWJyZWFrcG9pbnQtdW5pdCA9PSByZW0ge1xuICAgICAgICAkbXEtdmFsdWU6ICN7JHJmcy1icmVha3BvaW50IC8gJHJmcy1yZW0tdmFsdWV9I3skcmZzLWJyZWFrcG9pbnQtdW5pdH07XG4gICAgICB9XG4gICAgICBAZWxzZSBpZiAkcmZzLWJyZWFrcG9pbnQtdW5pdCA9PSBweCB7XG4gICAgICAgICRtcS12YWx1ZTogI3skcmZzLWJyZWFrcG9pbnR9cHg7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIEBlcnJvciBcImAjeyRyZnMtYnJlYWtwb2ludC11bml0fWAgaXMgbm90IGEgdmFsaWQgdW5pdCBmb3IgJHJmcy1icmVha3BvaW50LXVuaXQuIFVzZSBgcHhgLCBgZW1gIG9yIGByZW1gLlwiO1xuICAgICAgfVxuXG4gICAgICBAaWYgJHJmcy1jbGFzcyA9PSBcImRpc2FibGVcIiB7XG4gICAgICAgIC8vIEFkZGluZyBhbiBleHRyYSBjbGFzcyBpbmNyZWFzZXMgc3BlY2lmaWNpdHksXG4gICAgICAgIC8vIHdoaWNoIHByZXZlbnRzIHRoZSBtZWRpYSBxdWVyeSB0byBvdmVycmlkZSB0aGUgZm9udCBzaXplXG4gICAgICAgICYsXG4gICAgICAgIC5kaXNhYmxlLXJlc3BvbnNpdmUtZm9udC1zaXplICYsXG4gICAgICAgICYuZGlzYWJsZS1yZXNwb25zaXZlLWZvbnQtc2l6ZSB7XG4gICAgICAgICAgZm9udC1zaXplOiAkcmZzLXN0YXRpYztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBmb250LXNpemU6ICRyZnMtc3RhdGljO1xuICAgICAgfVxuXG4gICAgICBAaWYgJHJmcy10d28tZGltZW5zaW9uYWwge1xuICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogI3skbXEtdmFsdWV9KSwgKG1heC1oZWlnaHQ6ICN7JG1xLXZhbHVlfSkge1xuICAgICAgICAgIEBpZiAkcmZzLWNsYXNzID09IFwiZW5hYmxlXCIge1xuICAgICAgICAgICAgLmVuYWJsZS1yZXNwb25zaXZlLWZvbnQtc2l6ZSAmLFxuICAgICAgICAgICAgJi5lbmFibGUtcmVzcG9uc2l2ZS1mb250LXNpemUge1xuICAgICAgICAgICAgICBmb250LXNpemU6ICRyZnMtZmx1aWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJHJmcy1mbHVpZDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBAaWYgJHJmcy1zYWZhcmktaWZyYW1lLXJlc2l6ZS1idWctZml4IHtcbiAgICAgICAgICAgIC8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBsZW5ndGgtemVyby1uby11bml0XG4gICAgICAgICAgICBtaW4td2lkdGg6IDB2dztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6ICN7JG1xLXZhbHVlfSkge1xuICAgICAgICAgIEBpZiAkcmZzLWNsYXNzID09IFwiZW5hYmxlXCIge1xuICAgICAgICAgICAgLmVuYWJsZS1yZXNwb25zaXZlLWZvbnQtc2l6ZSAmLFxuICAgICAgICAgICAgJi5lbmFibGUtcmVzcG9uc2l2ZS1mb250LXNpemUge1xuICAgICAgICAgICAgICBmb250LXNpemU6ICRyZnMtZmx1aWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJHJmcy1mbHVpZDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBAaWYgJHJmcy1zYWZhcmktaWZyYW1lLXJlc2l6ZS1idWctZml4IHtcbiAgICAgICAgICAgIC8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBsZW5ndGgtemVyby1uby11bml0XG4gICAgICAgICAgICBtaW4td2lkdGg6IDB2dztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gVGhlIGZvbnQtc2l6ZSAmIHJlc3BvbnNpdmUtZm9udC1zaXplIG1peGluIHVzZXMgUkZTIHRvIHJlc2NhbGUgZm9udCBzaXplc1xuQG1peGluIGZvbnQtc2l6ZSgkZnMsICRpbXBvcnRhbnQ6IGZhbHNlKSB7XG4gIEBpbmNsdWRlIHJmcygkZnMsICRpbXBvcnRhbnQpO1xufVxuXG5AbWl4aW4gcmVzcG9uc2l2ZS1mb250LXNpemUoJGZzLCAkaW1wb3J0YW50OiBmYWxzZSkge1xuICBAaW5jbHVkZSByZnMoJGZzLCAkaW1wb3J0YW50KTtcbn1cbiIsIi8vIEhvdmVyIG1peGluIGFuZCBgJGVuYWJsZS1ob3Zlci1tZWRpYS1xdWVyeWAgYXJlIGRlcHJlY2F0ZWQuXG4vL1xuLy8gT3JpZ2luYWxseSBhZGRlZCBkdXJpbmcgb3VyIGFscGhhcyBhbmQgbWFpbnRhaW5lZCBkdXJpbmcgYmV0YXMsIHRoaXMgbWl4aW4gd2FzXG4vLyBkZXNpZ25lZCB0byBwcmV2ZW50IGA6aG92ZXJgIHN0aWNraW5lc3Mgb24gaU9TLWFuIGlzc3VlIHdoZXJlIGhvdmVyIHN0eWxlc1xuLy8gd291bGQgcGVyc2lzdCBhZnRlciBpbml0aWFsIHRvdWNoLlxuLy9cbi8vIEZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LCB3ZSd2ZSBrZXB0IHRoZXNlIG1peGlucyBhbmQgdXBkYXRlZCB0aGVtIHRvXG4vLyBhbHdheXMgcmV0dXJuIHRoZWlyIHJlZ3VsYXIgcHNldWRvLWNsYXNzZXMgaW5zdGVhZCBvZiBhIHNoaW1tZWQgbWVkaWEgcXVlcnkuXG4vL1xuLy8gSXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9pc3N1ZXMvMjUxOTVcblxuQG1peGluIGhvdmVyIHtcbiAgJjpob3ZlciB7IEBjb250ZW50OyB9XG59XG5cbkBtaXhpbiBob3Zlci1mb2N1cyB7XG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBtaXhpbiBwbGFpbi1ob3Zlci1mb2N1cyB7XG4gICYsXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBtaXhpbiBob3Zlci1mb2N1cy1hY3RpdmUge1xuICAmOmhvdmVyLFxuICAmOmZvY3VzLFxuICAmOmFjdGl2ZSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cbiIsIi8vIHN0eWxlbGludC1kaXNhYmxlIGRlY2xhcmF0aW9uLW5vLWltcG9ydGFudCwgc2VsZWN0b3ItbGlzdC1jb21tYS1uZXdsaW5lLWFmdGVyXG5cbi8vXG4vLyBIZWFkaW5nc1xuLy9cblxuaDEsIGgyLCBoMywgaDQsIGg1LCBoNixcbi5oMSwgLmgyLCAuaDMsIC5oNCwgLmg1LCAuaDYge1xuICBtYXJnaW4tYm90dG9tOiAkaGVhZGluZ3MtbWFyZ2luLWJvdHRvbTtcbiAgZm9udC1mYW1pbHk6ICRoZWFkaW5ncy1mb250LWZhbWlseTtcbiAgZm9udC13ZWlnaHQ6ICRoZWFkaW5ncy1mb250LXdlaWdodDtcbiAgbGluZS1oZWlnaHQ6ICRoZWFkaW5ncy1saW5lLWhlaWdodDtcbiAgY29sb3I6ICRoZWFkaW5ncy1jb2xvcjtcbn1cblxuaDEsIC5oMSB7IEBpbmNsdWRlIGZvbnQtc2l6ZSgkaDEtZm9udC1zaXplKTsgfVxuaDIsIC5oMiB7IEBpbmNsdWRlIGZvbnQtc2l6ZSgkaDItZm9udC1zaXplKTsgfVxuaDMsIC5oMyB7IEBpbmNsdWRlIGZvbnQtc2l6ZSgkaDMtZm9udC1zaXplKTsgfVxuaDQsIC5oNCB7IEBpbmNsdWRlIGZvbnQtc2l6ZSgkaDQtZm9udC1zaXplKTsgfVxuaDUsIC5oNSB7IEBpbmNsdWRlIGZvbnQtc2l6ZSgkaDUtZm9udC1zaXplKTsgfVxuaDYsIC5oNiB7IEBpbmNsdWRlIGZvbnQtc2l6ZSgkaDYtZm9udC1zaXplKTsgfVxuXG4ubGVhZCB7XG4gIEBpbmNsdWRlIGZvbnQtc2l6ZSgkbGVhZC1mb250LXNpemUpO1xuICBmb250LXdlaWdodDogJGxlYWQtZm9udC13ZWlnaHQ7XG59XG5cbi8vIFR5cGUgZGlzcGxheSBjbGFzc2VzXG4uZGlzcGxheS0xIHtcbiAgQGluY2x1ZGUgZm9udC1zaXplKCRkaXNwbGF5MS1zaXplKTtcbiAgZm9udC13ZWlnaHQ6ICRkaXNwbGF5MS13ZWlnaHQ7XG4gIGxpbmUtaGVpZ2h0OiAkZGlzcGxheS1saW5lLWhlaWdodDtcbn1cbi5kaXNwbGF5LTIge1xuICBAaW5jbHVkZSBmb250LXNpemUoJGRpc3BsYXkyLXNpemUpO1xuICBmb250LXdlaWdodDogJGRpc3BsYXkyLXdlaWdodDtcbiAgbGluZS1oZWlnaHQ6ICRkaXNwbGF5LWxpbmUtaGVpZ2h0O1xufVxuLmRpc3BsYXktMyB7XG4gIEBpbmNsdWRlIGZvbnQtc2l6ZSgkZGlzcGxheTMtc2l6ZSk7XG4gIGZvbnQtd2VpZ2h0OiAkZGlzcGxheTMtd2VpZ2h0O1xuICBsaW5lLWhlaWdodDogJGRpc3BsYXktbGluZS1oZWlnaHQ7XG59XG4uZGlzcGxheS00IHtcbiAgQGluY2x1ZGUgZm9udC1zaXplKCRkaXNwbGF5NC1zaXplKTtcbiAgZm9udC13ZWlnaHQ6ICRkaXNwbGF5NC13ZWlnaHQ7XG4gIGxpbmUtaGVpZ2h0OiAkZGlzcGxheS1saW5lLWhlaWdodDtcbn1cblxuXG4vL1xuLy8gSG9yaXpvbnRhbCBydWxlc1xuLy9cblxuaHIge1xuICBtYXJnaW4tdG9wOiAkaHItbWFyZ2luLXk7XG4gIG1hcmdpbi1ib3R0b206ICRoci1tYXJnaW4teTtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItdG9wOiAkaHItYm9yZGVyLXdpZHRoIHNvbGlkICRoci1ib3JkZXItY29sb3I7XG59XG5cblxuLy9cbi8vIEVtcGhhc2lzXG4vL1xuXG5zbWFsbCxcbi5zbWFsbCB7XG4gIEBpbmNsdWRlIGZvbnQtc2l6ZSgkc21hbGwtZm9udC1zaXplKTtcbiAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ub3JtYWw7XG59XG5cbm1hcmssXG4ubWFyayB7XG4gIHBhZGRpbmc6ICRtYXJrLXBhZGRpbmc7XG4gIGJhY2tncm91bmQtY29sb3I6ICRtYXJrLWJnO1xufVxuXG5cbi8vXG4vLyBMaXN0c1xuLy9cblxuLmxpc3QtdW5zdHlsZWQge1xuICBAaW5jbHVkZSBsaXN0LXVuc3R5bGVkO1xufVxuXG4vLyBJbmxpbmUgdHVybnMgbGlzdCBpdGVtcyBpbnRvIGlubGluZS1ibG9ja1xuLmxpc3QtaW5saW5lIHtcbiAgQGluY2x1ZGUgbGlzdC11bnN0eWxlZDtcbn1cbi5saXN0LWlubGluZS1pdGVtIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAkbGlzdC1pbmxpbmUtcGFkZGluZztcbiAgfVxufVxuXG5cbi8vXG4vLyBNaXNjXG4vL1xuXG4vLyBCdWlsZHMgb24gYGFiYnJgXG4uaW5pdGlhbGlzbSB7XG4gIEBpbmNsdWRlIGZvbnQtc2l6ZSg5MCUpO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG4vLyBCbG9ja3F1b3Rlc1xuLmJsb2NrcXVvdGUge1xuICBtYXJnaW4tYm90dG9tOiAkc3BhY2VyO1xuICBAaW5jbHVkZSBmb250LXNpemUoJGJsb2NrcXVvdGUtZm9udC1zaXplKTtcbn1cblxuLmJsb2NrcXVvdGUtZm9vdGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIEBpbmNsdWRlIGZvbnQtc2l6ZSgkYmxvY2txdW90ZS1zbWFsbC1mb250LXNpemUpO1xuICBjb2xvcjogJGJsb2NrcXVvdGUtc21hbGwtY29sb3I7XG5cbiAgJjo6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcMjAxNFxcMDBBMFwiOyAvLyBlbSBkYXNoLCBuYnNwXG4gIH1cbn1cbiIsIi8vIExpc3RzXG5cbi8vIFVuc3R5bGVkIGtlZXBzIGxpc3QgaXRlbXMgYmxvY2sgbGV2ZWwsIGp1c3QgcmVtb3ZlcyBkZWZhdWx0IGJyb3dzZXIgcGFkZGluZyBhbmQgbGlzdC1zdHlsZVxuQG1peGluIGxpc3QtdW5zdHlsZWQge1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG4iLCIvLyBSZXNwb25zaXZlIGltYWdlcyAoZW5zdXJlIGltYWdlcyBkb24ndCBzY2FsZSBiZXlvbmQgdGhlaXIgcGFyZW50cylcbi8vXG4vLyBUaGlzIGlzIHB1cnBvc2VmdWxseSBvcHQtaW4gdmlhIGFuIGV4cGxpY2l0IGNsYXNzIHJhdGhlciB0aGFuIGJlaW5nIHRoZSBkZWZhdWx0IGZvciBhbGwgYDxpbWc+YHMuXG4vLyBXZSBwcmV2aW91c2x5IHRyaWVkIHRoZSBcImltYWdlcyBhcmUgcmVzcG9uc2l2ZSBieSBkZWZhdWx0XCIgYXBwcm9hY2ggaW4gQm9vdHN0cmFwIHYyLFxuLy8gYW5kIGFiYW5kb25lZCBpdCBpbiBCb290c3RyYXAgdjMgYmVjYXVzZSBpdCBicmVha3MgbG90cyBvZiB0aGlyZC1wYXJ0eSB3aWRnZXRzIChpbmNsdWRpbmcgR29vZ2xlIE1hcHMpXG4vLyB3aGljaCB3ZXJlbid0IGV4cGVjdGluZyB0aGUgaW1hZ2VzIHdpdGhpbiB0aGVtc2VsdmVzIHRvIGJlIGludm9sdW50YXJpbHkgcmVzaXplZC5cbi8vIFNlZSBhbHNvIGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9pc3N1ZXMvMTgxNzhcbi5pbWctZmx1aWQge1xuICBAaW5jbHVkZSBpbWctZmx1aWQ7XG59XG5cblxuLy8gSW1hZ2UgdGh1bWJuYWlsc1xuLmltZy10aHVtYm5haWwge1xuICBwYWRkaW5nOiAkdGh1bWJuYWlsLXBhZGRpbmc7XG4gIGJhY2tncm91bmQtY29sb3I6ICR0aHVtYm5haWwtYmc7XG4gIGJvcmRlcjogJHRodW1ibmFpbC1ib3JkZXItd2lkdGggc29saWQgJHRodW1ibmFpbC1ib3JkZXItY29sb3I7XG4gIEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoJHRodW1ibmFpbC1ib3JkZXItcmFkaXVzKTtcbiAgQGluY2x1ZGUgYm94LXNoYWRvdygkdGh1bWJuYWlsLWJveC1zaGFkb3cpO1xuXG4gIC8vIEtlZXAgdGhlbSBhdCBtb3N0IDEwMCUgd2lkZVxuICBAaW5jbHVkZSBpbWctZmx1aWQ7XG59XG5cbi8vXG4vLyBGaWd1cmVzXG4vL1xuXG4uZmlndXJlIHtcbiAgLy8gRW5zdXJlcyB0aGUgY2FwdGlvbidzIHRleHQgYWxpZ25zIHdpdGggdGhlIGltYWdlLlxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi5maWd1cmUtaW1nIHtcbiAgbWFyZ2luLWJvdHRvbTogJHNwYWNlciAvIDI7XG4gIGxpbmUtaGVpZ2h0OiAxO1xufVxuXG4uZmlndXJlLWNhcHRpb24ge1xuICBAaW5jbHVkZSBmb250LXNpemUoJGZpZ3VyZS1jYXB0aW9uLWZvbnQtc2l6ZSk7XG4gIGNvbG9yOiAkZmlndXJlLWNhcHRpb24tY29sb3I7XG59XG4iLCIvLyBJbWFnZSBNaXhpbnNcbi8vIC0gUmVzcG9uc2l2ZSBpbWFnZVxuLy8gLSBSZXRpbmEgaW1hZ2VcblxuXG4vLyBSZXNwb25zaXZlIGltYWdlXG4vL1xuLy8gS2VlcCBpbWFnZXMgZnJvbSBzY2FsaW5nIGJleW9uZCB0aGUgd2lkdGggb2YgdGhlaXIgcGFyZW50cy5cblxuQG1peGluIGltZy1mbHVpZCB7XG4gIC8vIFBhcnQgMTogU2V0IGEgbWF4aW11bSByZWxhdGl2ZSB0byB0aGUgcGFyZW50XG4gIG1heC13aWR0aDogMTAwJTtcbiAgLy8gUGFydCAyOiBPdmVycmlkZSB0aGUgaGVpZ2h0IHRvIGF1dG8sIG90aGVyd2lzZSBpbWFnZXMgd2lsbCBiZSBzdHJldGNoZWRcbiAgLy8gd2hlbiBzZXR0aW5nIGEgd2lkdGggYW5kIGhlaWdodCBhdHRyaWJ1dGUgb24gdGhlIGltZyBlbGVtZW50LlxuICBoZWlnaHQ6IGF1dG87XG59XG5cblxuLy8gUmV0aW5hIGltYWdlXG4vL1xuLy8gU2hvcnQgcmV0aW5hIG1peGluIGZvciBzZXR0aW5nIGJhY2tncm91bmQtaW1hZ2UgYW5kIC1zaXplLlxuXG5AbWl4aW4gaW1nLXJldGluYSgkZmlsZS0xeCwgJGZpbGUtMngsICR3aWR0aC0xeCwgJGhlaWdodC0xeCkge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJGZpbGUtMXgpO1xuXG4gIC8vIEF1dG9wcmVmaXhlciB0YWtlcyBjYXJlIG9mIGFkZGluZyAtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW8gYW5kIC1vLW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW8sXG4gIC8vIGJ1dCBkb2Vzbid0IGNvbnZlcnQgZHBweD0+ZHBpLlxuICAvLyBUaGVyZSdzIG5vIHN1Y2ggdGhpbmcgYXMgdW5wcmVmaXhlZCBtaW4tZGV2aWNlLXBpeGVsLXJhdGlvIHNpbmNlIGl0J3Mgbm9uc3RhbmRhcmQuXG4gIC8vIENvbXBhdGliaWxpdHkgaW5mbzogaHR0cHM6Ly9jYW5pdXNlLmNvbS8jZmVhdD1jc3MtbWVkaWEtcmVzb2x1dGlvblxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4tcmVzb2x1dGlvbjogMTkyZHBpKSwgLy8gSUU5LTExIGRvbid0IHN1cHBvcnQgZHBweFxuICAgIG9ubHkgc2NyZWVuIGFuZCAobWluLXJlc29sdXRpb246IDJkcHB4KSB7IC8vIFN0YW5kYXJkaXplZFxuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgkZmlsZS0yeCk7XG4gICAgYmFja2dyb3VuZC1zaXplOiAkd2lkdGgtMXggJGhlaWdodC0xeDtcbiAgfVxuICBAaW5jbHVkZSBkZXByZWNhdGUoXCJgaW1nLXJldGluYSgpYFwiLCBcInY0LjMuMFwiLCBcInY1XCIpO1xufVxuIiwiLy8gc3R5bGVsaW50LWRpc2FibGUgcHJvcGVydHktYmxhY2tsaXN0XG4vLyBTaW5nbGUgc2lkZSBib3JkZXItcmFkaXVzXG5cbkBtaXhpbiBib3JkZXItcmFkaXVzKCRyYWRpdXM6ICRib3JkZXItcmFkaXVzLCAkZmFsbGJhY2stYm9yZGVyLXJhZGl1czogZmFsc2UpIHtcbiAgQGlmICRlbmFibGUtcm91bmRlZCB7XG4gICAgYm9yZGVyLXJhZGl1czogJHJhZGl1cztcbiAgfVxuICBAZWxzZSBpZiAkZmFsbGJhY2stYm9yZGVyLXJhZGl1cyAhPSBmYWxzZSB7XG4gICAgYm9yZGVyLXJhZGl1czogJGZhbGxiYWNrLWJvcmRlci1yYWRpdXM7XG4gIH1cbn1cblxuQG1peGluIGJvcmRlci10b3AtcmFkaXVzKCRyYWRpdXMpIHtcbiAgQGlmICRlbmFibGUtcm91bmRlZCB7XG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogJHJhZGl1cztcbiAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogJHJhZGl1cztcbiAgfVxufVxuXG5AbWl4aW4gYm9yZGVyLXJpZ2h0LXJhZGl1cygkcmFkaXVzKSB7XG4gIEBpZiAkZW5hYmxlLXJvdW5kZWQge1xuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkcmFkaXVzO1xuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAkcmFkaXVzO1xuICB9XG59XG5cbkBtaXhpbiBib3JkZXItYm90dG9tLXJhZGl1cygkcmFkaXVzKSB7XG4gIEBpZiAkZW5hYmxlLXJvdW5kZWQge1xuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAkcmFkaXVzO1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICRyYWRpdXM7XG4gIH1cbn1cblxuQG1peGluIGJvcmRlci1sZWZ0LXJhZGl1cygkcmFkaXVzKSB7XG4gIEBpZiAkZW5hYmxlLXJvdW5kZWQge1xuICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6ICRyYWRpdXM7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogJHJhZGl1cztcbiAgfVxufVxuXG5AbWl4aW4gYm9yZGVyLXRvcC1sZWZ0LXJhZGl1cygkcmFkaXVzKSB7XG4gIEBpZiAkZW5hYmxlLXJvdW5kZWQge1xuICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6ICRyYWRpdXM7XG4gIH1cbn1cblxuQG1peGluIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzKCRyYWRpdXMpIHtcbiAgQGlmICRlbmFibGUtcm91bmRlZCB7XG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICRyYWRpdXM7XG4gIH1cbn1cblxuQG1peGluIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzKCRyYWRpdXMpIHtcbiAgQGlmICRlbmFibGUtcm91bmRlZCB7XG4gICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6ICRyYWRpdXM7XG4gIH1cbn1cblxuQG1peGluIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXMoJHJhZGl1cykge1xuICBAaWYgJGVuYWJsZS1yb3VuZGVkIHtcbiAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAkcmFkaXVzO1xuICB9XG59XG4iLCIvLyBDb250YWluZXIgd2lkdGhzXG4vL1xuLy8gU2V0IHRoZSBjb250YWluZXIgd2lkdGgsIGFuZCBvdmVycmlkZSBpdCBmb3IgZml4ZWQgbmF2YmFycyBpbiBtZWRpYSBxdWVyaWVzLlxuXG5AaWYgJGVuYWJsZS1ncmlkLWNsYXNzZXMge1xuICAuY29udGFpbmVyIHtcbiAgICBAaW5jbHVkZSBtYWtlLWNvbnRhaW5lcigpO1xuICAgIEBpbmNsdWRlIG1ha2UtY29udGFpbmVyLW1heC13aWR0aHMoKTtcbiAgfVxufVxuXG4vLyBGbHVpZCBjb250YWluZXJcbi8vXG4vLyBVdGlsaXplcyB0aGUgbWl4aW4gbWVhbnQgZm9yIGZpeGVkIHdpZHRoIGNvbnRhaW5lcnMsIGJ1dCB3aXRoIDEwMCUgd2lkdGggZm9yXG4vLyBmbHVpZCwgZnVsbCB3aWR0aCBsYXlvdXRzLlxuXG5AaWYgJGVuYWJsZS1ncmlkLWNsYXNzZXMge1xuICAuY29udGFpbmVyLWZsdWlkIHtcbiAgICBAaW5jbHVkZSBtYWtlLWNvbnRhaW5lcigpO1xuICB9XG59XG5cbi8vIFJvd1xuLy9cbi8vIFJvd3MgY29udGFpbiBhbmQgY2xlYXIgdGhlIGZsb2F0cyBvZiB5b3VyIGNvbHVtbnMuXG5cbkBpZiAkZW5hYmxlLWdyaWQtY2xhc3NlcyB7XG4gIC5yb3cge1xuICAgIEBpbmNsdWRlIG1ha2Utcm93KCk7XG4gIH1cblxuICAvLyBSZW1vdmUgdGhlIG5lZ2F0aXZlIG1hcmdpbiBmcm9tIGRlZmF1bHQgLnJvdywgdGhlbiB0aGUgaG9yaXpvbnRhbCBwYWRkaW5nXG4gIC8vIGZyb20gYWxsIGltbWVkaWF0ZSBjaGlsZHJlbiBjb2x1bW5zICh0byBwcmV2ZW50IHJ1bmF3YXkgc3R5bGUgaW5oZXJpdGFuY2UpLlxuICAubm8tZ3V0dGVycyB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuXG4gICAgPiAuY29sLFxuICAgID4gW2NsYXNzKj1cImNvbC1cIl0ge1xuICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICB9XG4gIH1cbn1cblxuLy8gQ29sdW1uc1xuLy9cbi8vIENvbW1vbiBzdHlsZXMgZm9yIHNtYWxsIGFuZCBsYXJnZSBncmlkIGNvbHVtbnNcblxuQGlmICRlbmFibGUtZ3JpZC1jbGFzc2VzIHtcbiAgQGluY2x1ZGUgbWFrZS1ncmlkLWNvbHVtbnMoKTtcbn1cbiIsIi8vLyBHcmlkIHN5c3RlbVxuLy9cbi8vIEdlbmVyYXRlIHNlbWFudGljIGdyaWQgY29sdW1ucyB3aXRoIHRoZXNlIG1peGlucy5cblxuQG1peGluIG1ha2UtY29udGFpbmVyKCRndXR0ZXI6ICRncmlkLWd1dHRlci13aWR0aCkge1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZy1yaWdodDogJGd1dHRlciAvIDI7XG4gIHBhZGRpbmctbGVmdDogJGd1dHRlciAvIDI7XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG59XG5cblxuLy8gRm9yIGVhY2ggYnJlYWtwb2ludCwgZGVmaW5lIHRoZSBtYXhpbXVtIHdpZHRoIG9mIHRoZSBjb250YWluZXIgaW4gYSBtZWRpYSBxdWVyeVxuQG1peGluIG1ha2UtY29udGFpbmVyLW1heC13aWR0aHMoJG1heC13aWR0aHM6ICRjb250YWluZXItbWF4LXdpZHRocywgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICBAZWFjaCAkYnJlYWtwb2ludCwgJGNvbnRhaW5lci1tYXgtd2lkdGggaW4gJG1heC13aWR0aHMge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJGJyZWFrcG9pbnQsICRicmVha3BvaW50cykge1xuICAgICAgbWF4LXdpZHRoOiAkY29udGFpbmVyLW1heC13aWR0aDtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1ha2Utcm93KCRndXR0ZXI6ICRncmlkLWd1dHRlci13aWR0aCkge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIG1hcmdpbi1yaWdodDogLSRndXR0ZXIgLyAyO1xuICBtYXJnaW4tbGVmdDogLSRndXR0ZXIgLyAyO1xufVxuXG5AbWl4aW4gbWFrZS1jb2wtcmVhZHkoJGd1dHRlcjogJGdyaWQtZ3V0dGVyLXdpZHRoKSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgLy8gUHJldmVudCBjb2x1bW5zIGZyb20gYmVjb21pbmcgdG9vIG5hcnJvdyB3aGVuIGF0IHNtYWxsZXIgZ3JpZCB0aWVycyBieVxuICAvLyBhbHdheXMgc2V0dGluZyBgd2lkdGg6IDEwMCU7YC4gVGhpcyB3b3JrcyBiZWNhdXNlIHdlIHVzZSBgZmxleGAgdmFsdWVzXG4gIC8vIGxhdGVyIG9uIHRvIG92ZXJyaWRlIHRoaXMgaW5pdGlhbCB3aWR0aC5cbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmctcmlnaHQ6ICRndXR0ZXIgLyAyO1xuICBwYWRkaW5nLWxlZnQ6ICRndXR0ZXIgLyAyO1xufVxuXG5AbWl4aW4gbWFrZS1jb2woJHNpemUsICRjb2x1bW5zOiAkZ3JpZC1jb2x1bW5zKSB7XG4gIGZsZXg6IDAgMCBwZXJjZW50YWdlKCRzaXplIC8gJGNvbHVtbnMpO1xuICAvLyBBZGQgYSBgbWF4LXdpZHRoYCB0byBlbnN1cmUgY29udGVudCB3aXRoaW4gZWFjaCBjb2x1bW4gZG9lcyBub3QgYmxvdyBvdXRcbiAgLy8gdGhlIHdpZHRoIG9mIHRoZSBjb2x1bW4uIEFwcGxpZXMgdG8gSUUxMCsgYW5kIEZpcmVmb3guIENocm9tZSBhbmQgU2FmYXJpXG4gIC8vIGRvIG5vdCBhcHBlYXIgdG8gcmVxdWlyZSB0aGlzLlxuICBtYXgtd2lkdGg6IHBlcmNlbnRhZ2UoJHNpemUgLyAkY29sdW1ucyk7XG59XG5cbkBtaXhpbiBtYWtlLWNvbC1vZmZzZXQoJHNpemUsICRjb2x1bW5zOiAkZ3JpZC1jb2x1bW5zKSB7XG4gICRudW06ICRzaXplIC8gJGNvbHVtbnM7XG4gIG1hcmdpbi1sZWZ0OiBpZigkbnVtID09IDAsIDAsIHBlcmNlbnRhZ2UoJG51bSkpO1xufVxuIiwiLy8gQnJlYWtwb2ludCB2aWV3cG9ydCBzaXplcyBhbmQgbWVkaWEgcXVlcmllcy5cbi8vXG4vLyBCcmVha3BvaW50cyBhcmUgZGVmaW5lZCBhcyBhIG1hcCBvZiAobmFtZTogbWluaW11bSB3aWR0aCksIG9yZGVyIGZyb20gc21hbGwgdG8gbGFyZ2U6XG4vL1xuLy8gICAgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KVxuLy9cbi8vIFRoZSBtYXAgZGVmaW5lZCBpbiB0aGUgYCRncmlkLWJyZWFrcG9pbnRzYCBnbG9iYWwgdmFyaWFibGUgaXMgdXNlZCBhcyB0aGUgYCRicmVha3BvaW50c2AgYXJndW1lbnQgYnkgZGVmYXVsdC5cblxuLy8gTmFtZSBvZiB0aGUgbmV4dCBicmVha3BvaW50LCBvciBudWxsIGZvciB0aGUgbGFzdCBicmVha3BvaW50LlxuLy9cbi8vICAgID4+IGJyZWFrcG9pbnQtbmV4dChzbSlcbi8vICAgIG1kXG4vLyAgICA+PiBicmVha3BvaW50LW5leHQoc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXG4vLyAgICBtZFxuLy8gICAgPj4gYnJlYWtwb2ludC1uZXh0KHNtLCAkYnJlYWtwb2ludC1uYW1lczogKHhzIHNtIG1kIGxnIHhsKSlcbi8vICAgIG1kXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1uZXh0KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzLCAkYnJlYWtwb2ludC1uYW1lczogbWFwLWtleXMoJGJyZWFrcG9pbnRzKSkge1xuICAkbjogaW5kZXgoJGJyZWFrcG9pbnQtbmFtZXMsICRuYW1lKTtcbiAgQHJldHVybiBpZigkbiAhPSBudWxsIGFuZCAkbiA8IGxlbmd0aCgkYnJlYWtwb2ludC1uYW1lcyksIG50aCgkYnJlYWtwb2ludC1uYW1lcywgJG4gKyAxKSwgbnVsbCk7XG59XG5cbi8vIE1pbmltdW0gYnJlYWtwb2ludCB3aWR0aC4gTnVsbCBmb3IgdGhlIHNtYWxsZXN0IChmaXJzdCkgYnJlYWtwb2ludC5cbi8vXG4vLyAgICA+PiBicmVha3BvaW50LW1pbihzbSwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KSlcbi8vICAgIDU3NnB4XG5AZnVuY3Rpb24gYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1pbjogbWFwLWdldCgkYnJlYWtwb2ludHMsICRuYW1lKTtcbiAgQHJldHVybiBpZigkbWluICE9IDAsICRtaW4sIG51bGwpO1xufVxuXG4vLyBNYXhpbXVtIGJyZWFrcG9pbnQgd2lkdGguIE51bGwgZm9yIHRoZSBsYXJnZXN0IChsYXN0KSBicmVha3BvaW50LlxuLy8gVGhlIG1heGltdW0gdmFsdWUgaXMgY2FsY3VsYXRlZCBhcyB0aGUgbWluaW11bSBvZiB0aGUgbmV4dCBvbmUgbGVzcyAwLjAycHhcbi8vIHRvIHdvcmsgYXJvdW5kIHRoZSBsaW1pdGF0aW9ucyBvZiBgbWluLWAgYW5kIGBtYXgtYCBwcmVmaXhlcyBhbmQgdmlld3BvcnRzIHdpdGggZnJhY3Rpb25hbCB3aWR0aHMuXG4vLyBTZWUgaHR0cHM6Ly93d3cudzMub3JnL1RSL21lZGlhcXVlcmllcy00LyNtcS1taW4tbWF4XG4vLyBVc2VzIDAuMDJweCByYXRoZXIgdGhhbiAwLjAxcHggdG8gd29yayBhcm91bmQgYSBjdXJyZW50IHJvdW5kaW5nIGJ1ZyBpbiBTYWZhcmkuXG4vLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3ODI2MVxuLy9cbi8vICAgID4+IGJyZWFrcG9pbnQtbWF4KHNtLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpKVxuLy8gICAgNzY3Ljk4cHhcbkBmdW5jdGlvbiBicmVha3BvaW50LW1heCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbmV4dDogYnJlYWtwb2ludC1uZXh0KCRuYW1lLCAkYnJlYWtwb2ludHMpO1xuICBAcmV0dXJuIGlmKCRuZXh0LCBicmVha3BvaW50LW1pbigkbmV4dCwgJGJyZWFrcG9pbnRzKSAtIC4wMiwgbnVsbCk7XG59XG5cbi8vIFJldHVybnMgYSBibGFuayBzdHJpbmcgaWYgc21hbGxlc3QgYnJlYWtwb2ludCwgb3RoZXJ3aXNlIHJldHVybnMgdGhlIG5hbWUgd2l0aCBhIGRhc2ggaW4gZnJvbnQuXG4vLyBVc2VmdWwgZm9yIG1ha2luZyByZXNwb25zaXZlIHV0aWxpdGllcy5cbi8vXG4vLyAgICA+PiBicmVha3BvaW50LWluZml4KHhzLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpKVxuLy8gICAgXCJcIiAgKFJldHVybnMgYSBibGFuayBzdHJpbmcpXG4vLyAgICA+PiBicmVha3BvaW50LWluZml4KHNtLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpKVxuLy8gICAgXCItc21cIlxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtaW5maXgoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgQHJldHVybiBpZihicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzKSA9PSBudWxsLCBcIlwiLCBcIi0jeyRuYW1lfVwiKTtcbn1cblxuLy8gTWVkaWEgb2YgYXQgbGVhc3QgdGhlIG1pbmltdW0gYnJlYWtwb2ludCB3aWR0aC4gTm8gcXVlcnkgZm9yIHRoZSBzbWFsbGVzdCBicmVha3BvaW50LlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IHRvIHRoZSBnaXZlbiBicmVha3BvaW50IGFuZCB3aWRlci5cbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LXVwKCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRtaW46IGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHMpO1xuICBAaWYgJG1pbiB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gTWVkaWEgb2YgYXQgbW9zdCB0aGUgbWF4aW11bSBicmVha3BvaW50IHdpZHRoLiBObyBxdWVyeSBmb3IgdGhlIGxhcmdlc3QgYnJlYWtwb2ludC5cbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSB0byB0aGUgZ2l2ZW4gYnJlYWtwb2ludCBhbmQgbmFycm93ZXIuXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC1kb3duKCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRtYXg6IGJyZWFrcG9pbnQtbWF4KCRuYW1lLCAkYnJlYWtwb2ludHMpO1xuICBAaWYgJG1heCB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRtYXgpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gTWVkaWEgdGhhdCBzcGFucyBtdWx0aXBsZSBicmVha3BvaW50IHdpZHRocy5cbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSBiZXR3ZWVuIHRoZSBtaW4gYW5kIG1heCBicmVha3BvaW50c1xuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtYmV0d2VlbigkbG93ZXIsICR1cHBlciwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWluOiBicmVha3BvaW50LW1pbigkbG93ZXIsICRicmVha3BvaW50cyk7XG4gICRtYXg6IGJyZWFrcG9pbnQtbWF4KCR1cHBlciwgJGJyZWFrcG9pbnRzKTtcblxuICBAaWYgJG1pbiAhPSBudWxsIGFuZCAkbWF4ICE9IG51bGwge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWluKSBhbmQgKG1heC13aWR0aDogJG1heCkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIGlmICRtYXggPT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgkbG93ZXIsICRicmVha3BvaW50cykge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIGlmICRtaW4gPT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKCR1cHBlciwgJGJyZWFrcG9pbnRzKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuLy8gTWVkaWEgYmV0d2VlbiB0aGUgYnJlYWtwb2ludCdzIG1pbmltdW0gYW5kIG1heGltdW0gd2lkdGhzLlxuLy8gTm8gbWluaW11bSBmb3IgdGhlIHNtYWxsZXN0IGJyZWFrcG9pbnQsIGFuZCBubyBtYXhpbXVtIGZvciB0aGUgbGFyZ2VzdCBvbmUuXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgb25seSB0byB0aGUgZ2l2ZW4gYnJlYWtwb2ludCwgbm90IHZpZXdwb3J0cyBhbnkgd2lkZXIgb3IgbmFycm93ZXIuXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC1vbmx5KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRtaW46IGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHMpO1xuICAkbWF4OiBicmVha3BvaW50LW1heCgkbmFtZSwgJGJyZWFrcG9pbnRzKTtcblxuICBAaWYgJG1pbiAhPSBudWxsIGFuZCAkbWF4ICE9IG51bGwge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWluKSBhbmQgKG1heC13aWR0aDogJG1heCkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIGlmICRtYXggPT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgkbmFtZSwgJGJyZWFrcG9pbnRzKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJG1pbiA9PSBudWxsIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24oJG5hbWUsICRicmVha3BvaW50cykge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGcmFtZXdvcmsgZ3JpZCBnZW5lcmF0aW9uXG4vL1xuLy8gVXNlZCBvbmx5IGJ5IEJvb3RzdHJhcCB0byBnZW5lcmF0ZSB0aGUgY29ycmVjdCBudW1iZXIgb2YgZ3JpZCBjbGFzc2VzIGdpdmVuXG4vLyBhbnkgdmFsdWUgb2YgYCRncmlkLWNvbHVtbnNgLlxuXG5AbWl4aW4gbWFrZS1ncmlkLWNvbHVtbnMoJGNvbHVtbnM6ICRncmlkLWNvbHVtbnMsICRndXR0ZXI6ICRncmlkLWd1dHRlci13aWR0aCwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAvLyBDb21tb24gcHJvcGVydGllcyBmb3IgYWxsIGJyZWFrcG9pbnRzXG4gICVncmlkLWNvbHVtbiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmctcmlnaHQ6ICRndXR0ZXIgLyAyO1xuICAgIHBhZGRpbmctbGVmdDogJGd1dHRlciAvIDI7XG4gIH1cblxuICBAZWFjaCAkYnJlYWtwb2ludCBpbiBtYXAta2V5cygkYnJlYWtwb2ludHMpIHtcbiAgICAkaW5maXg6IGJyZWFrcG9pbnQtaW5maXgoJGJyZWFrcG9pbnQsICRicmVha3BvaW50cyk7XG5cbiAgICAvLyBBbGxvdyBjb2x1bW5zIHRvIHN0cmV0Y2ggZnVsbCB3aWR0aCBiZWxvdyB0aGVpciBicmVha3BvaW50c1xuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGNvbHVtbnMge1xuICAgICAgLmNvbCN7JGluZml4fS0jeyRpfSB7XG4gICAgICAgIEBleHRlbmQgJWdyaWQtY29sdW1uO1xuICAgICAgfVxuICAgIH1cbiAgICAuY29sI3skaW5maXh9LFxuICAgIC5jb2wjeyRpbmZpeH0tYXV0byB7XG4gICAgICBAZXh0ZW5kICVncmlkLWNvbHVtbjtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRicmVha3BvaW50LCAkYnJlYWtwb2ludHMpIHtcbiAgICAgIC8vIFByb3ZpZGUgYmFzaWMgYC5jb2wte2JwfWAgY2xhc3NlcyBmb3IgZXF1YWwtd2lkdGggZmxleGJveCBjb2x1bW5zXG4gICAgICAuY29sI3skaW5maXh9IHtcbiAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICB9XG4gICAgICAuY29sI3skaW5maXh9LWF1dG8ge1xuICAgICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIG1heC13aWR0aDogMTAwJTsgLy8gUmVzZXQgZWFybGllciBncmlkIHRpZXJzXG4gICAgICB9XG5cbiAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGNvbHVtbnMge1xuICAgICAgICAuY29sI3skaW5maXh9LSN7JGl9IHtcbiAgICAgICAgICBAaW5jbHVkZSBtYWtlLWNvbCgkaSwgJGNvbHVtbnMpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5vcmRlciN7JGluZml4fS1maXJzdCB7IG9yZGVyOiAtMTsgfVxuXG4gICAgICAub3JkZXIjeyRpbmZpeH0tbGFzdCB7IG9yZGVyOiAkY29sdW1ucyArIDE7IH1cblxuICAgICAgQGZvciAkaSBmcm9tIDAgdGhyb3VnaCAkY29sdW1ucyB7XG4gICAgICAgIC5vcmRlciN7JGluZml4fS0jeyRpfSB7IG9yZGVyOiAkaTsgfVxuICAgICAgfVxuXG4gICAgICAvLyBgJGNvbHVtbnMgLSAxYCBiZWNhdXNlIG9mZnNldHRpbmcgYnkgdGhlIHdpZHRoIG9mIGFuIGVudGlyZSByb3cgaXNuJ3QgcG9zc2libGVcbiAgICAgIEBmb3IgJGkgZnJvbSAwIHRocm91Z2ggKCRjb2x1bW5zIC0gMSkge1xuICAgICAgICBAaWYgbm90ICgkaW5maXggPT0gXCJcIiBhbmQgJGkgPT0gMCkgeyAvLyBBdm9pZCBlbWl0dGluZyB1c2VsZXNzIC5vZmZzZXQtMFxuICAgICAgICAgIC5vZmZzZXQjeyRpbmZpeH0tI3skaX0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWFrZS1jb2wtb2Zmc2V0KCRpLCAkY29sdW1ucyk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBzdHlsZWxpbnQtZGlzYWJsZSBzZWxlY3Rvci1uby1xdWFsaWZ5aW5nLXR5cGVcblxuLy9cbi8vIFRleHR1YWwgZm9ybSBjb250cm9sc1xuLy9cblxuLmZvcm0tY29udHJvbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAkaW5wdXQtaGVpZ2h0O1xuICBwYWRkaW5nOiAkaW5wdXQtcGFkZGluZy15ICRpbnB1dC1wYWRkaW5nLXg7XG4gIGZvbnQtZmFtaWx5OiAkaW5wdXQtZm9udC1mYW1pbHk7XG4gIEBpbmNsdWRlIGZvbnQtc2l6ZSgkaW5wdXQtZm9udC1zaXplKTtcbiAgZm9udC13ZWlnaHQ6ICRpbnB1dC1mb250LXdlaWdodDtcbiAgbGluZS1oZWlnaHQ6ICRpbnB1dC1saW5lLWhlaWdodDtcbiAgY29sb3I6ICRpbnB1dC1jb2xvcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LWJnO1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICBib3JkZXI6ICRpbnB1dC1ib3JkZXItd2lkdGggc29saWQgJGlucHV0LWJvcmRlci1jb2xvcjtcblxuICAvLyBOb3RlOiBUaGlzIGhhcyBubyBlZmZlY3Qgb24gPHNlbGVjdD5zIGluIHNvbWUgYnJvd3NlcnMsIGR1ZSB0byB0aGUgbGltaXRlZCBzdHlsYWJpbGl0eSBvZiBgPHNlbGVjdD5gcyBpbiBDU1MuXG4gIEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoJGlucHV0LWJvcmRlci1yYWRpdXMsIDApO1xuXG4gIEBpbmNsdWRlIGJveC1zaGFkb3coJGlucHV0LWJveC1zaGFkb3cpO1xuICBAaW5jbHVkZSB0cmFuc2l0aW9uKCRpbnB1dC10cmFuc2l0aW9uKTtcblxuICAvLyBVbnN0eWxlIHRoZSBjYXJldCBvbiBgPHNlbGVjdD5gcyBpbiBJRTEwKy5cbiAgJjo6LW1zLWV4cGFuZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyOiAwO1xuICB9XG5cbiAgLy8gQ3VzdG9taXplIHRoZSBgOmZvY3VzYCBzdGF0ZSB0byBpbWl0YXRlIG5hdGl2ZSBXZWJLaXQgc3R5bGVzLlxuICBAaW5jbHVkZSBmb3JtLWNvbnRyb2wtZm9jdXMoKTtcblxuICAvLyBQbGFjZWhvbGRlclxuICAmOjpwbGFjZWhvbGRlciB7XG4gICAgY29sb3I6ICRpbnB1dC1wbGFjZWhvbGRlci1jb2xvcjtcbiAgICAvLyBPdmVycmlkZSBGaXJlZm94J3MgdW51c3VhbCBkZWZhdWx0IG9wYWNpdHk7IHNlZSBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvcHVsbC8xMTUyNi5cbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgLy8gRGlzYWJsZWQgYW5kIHJlYWQtb25seSBpbnB1dHNcbiAgLy9cbiAgLy8gSFRNTDUgc2F5cyB0aGF0IGNvbnRyb2xzIHVuZGVyIGEgZmllbGRzZXQgPiBsZWdlbmQ6Zmlyc3QtY2hpbGQgd29uJ3QgYmVcbiAgLy8gZGlzYWJsZWQgaWYgdGhlIGZpZWxkc2V0IGlzIGRpc2FibGVkLiBEdWUgdG8gaW1wbGVtZW50YXRpb24gZGlmZmljdWx0eSwgd2VcbiAgLy8gZG9uJ3QgaG9ub3IgdGhhdCBlZGdlIGNhc2U7IHdlIHN0eWxlIHRoZW0gYXMgZGlzYWJsZWQgYW55d2F5LlxuICAmOmRpc2FibGVkLFxuICAmW3JlYWRvbmx5XSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LWRpc2FibGVkLWJnO1xuICAgIC8vIGlPUyBmaXggZm9yIHVucmVhZGFibGUgZGlzYWJsZWQgY29udGVudDsgc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9pc3N1ZXMvMTE2NTUuXG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG5zZWxlY3QuZm9ybS1jb250cm9sIHtcbiAgJjpmb2N1czo6LW1zLXZhbHVlIHtcbiAgICAvLyBTdXBwcmVzcyB0aGUgbmVzdGVkIGRlZmF1bHQgd2hpdGUgdGV4dCBvbiBibHVlIGJhY2tncm91bmQgaGlnaGxpZ2h0IGdpdmVuIHRvXG4gICAgLy8gdGhlIHNlbGVjdGVkIG9wdGlvbiB0ZXh0IHdoZW4gdGhlIChzdGlsbCBjbG9zZWQpIDxzZWxlY3Q+IHJlY2VpdmVzIGZvY3VzXG4gICAgLy8gaW4gSUUgYW5kICh1bmRlciBjZXJ0YWluIGNvbmRpdGlvbnMpIEVkZ2UsIGFzIGl0IGxvb2tzIGJhZCBhbmQgY2Fubm90IGJlIG1hZGUgdG9cbiAgICAvLyBtYXRjaCB0aGUgYXBwZWFyYW5jZSBvZiB0aGUgbmF0aXZlIHdpZGdldC5cbiAgICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2lzc3Vlcy8xOTM5OC5cbiAgICBjb2xvcjogJGlucHV0LWNvbG9yO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1iZztcbiAgfVxufVxuXG4vLyBNYWtlIGZpbGUgaW5wdXRzIGJldHRlciBtYXRjaCB0ZXh0IGlucHV0cyBieSBmb3JjaW5nIHRoZW0gdG8gbmV3IGxpbmVzLlxuLmZvcm0tY29udHJvbC1maWxlLFxuLmZvcm0tY29udHJvbC1yYW5nZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbn1cblxuXG4vL1xuLy8gTGFiZWxzXG4vL1xuXG4vLyBGb3IgdXNlIHdpdGggaG9yaXpvbnRhbCBhbmQgaW5saW5lIGZvcm1zLCB3aGVuIHlvdSBuZWVkIHRoZSBsYWJlbCAob3IgbGVnZW5kKVxuLy8gdGV4dCB0byBhbGlnbiB3aXRoIHRoZSBmb3JtIGNvbnRyb2xzLlxuLmNvbC1mb3JtLWxhYmVsIHtcbiAgcGFkZGluZy10b3A6IGNhbGMoI3skaW5wdXQtcGFkZGluZy15fSArICN7JGlucHV0LWJvcmRlci13aWR0aH0pO1xuICBwYWRkaW5nLWJvdHRvbTogY2FsYygjeyRpbnB1dC1wYWRkaW5nLXl9ICsgI3skaW5wdXQtYm9yZGVyLXdpZHRofSk7XG4gIG1hcmdpbi1ib3R0b206IDA7IC8vIE92ZXJyaWRlIHRoZSBgPGxhYmVsPi88bGVnZW5kPmAgZGVmYXVsdFxuICBAaW5jbHVkZSBmb250LXNpemUoaW5oZXJpdCk7IC8vIE92ZXJyaWRlIHRoZSBgPGxlZ2VuZD5gIGRlZmF1bHRcbiAgbGluZS1oZWlnaHQ6ICRpbnB1dC1saW5lLWhlaWdodDtcbn1cblxuLmNvbC1mb3JtLWxhYmVsLWxnIHtcbiAgcGFkZGluZy10b3A6IGNhbGMoI3skaW5wdXQtcGFkZGluZy15LWxnfSArICN7JGlucHV0LWJvcmRlci13aWR0aH0pO1xuICBwYWRkaW5nLWJvdHRvbTogY2FsYygjeyRpbnB1dC1wYWRkaW5nLXktbGd9ICsgI3skaW5wdXQtYm9yZGVyLXdpZHRofSk7XG4gIEBpbmNsdWRlIGZvbnQtc2l6ZSgkaW5wdXQtZm9udC1zaXplLWxnKTtcbiAgbGluZS1oZWlnaHQ6ICRpbnB1dC1saW5lLWhlaWdodC1sZztcbn1cblxuLmNvbC1mb3JtLWxhYmVsLXNtIHtcbiAgcGFkZGluZy10b3A6IGNhbGMoI3skaW5wdXQtcGFkZGluZy15LXNtfSArICN7JGlucHV0LWJvcmRlci13aWR0aH0pO1xuICBwYWRkaW5nLWJvdHRvbTogY2FsYygjeyRpbnB1dC1wYWRkaW5nLXktc219ICsgI3skaW5wdXQtYm9yZGVyLXdpZHRofSk7XG4gIEBpbmNsdWRlIGZvbnQtc2l6ZSgkaW5wdXQtZm9udC1zaXplLXNtKTtcbiAgbGluZS1oZWlnaHQ6ICRpbnB1dC1saW5lLWhlaWdodC1zbTtcbn1cblxuXG4vLyBSZWFkb25seSBjb250cm9scyBhcyBwbGFpbiB0ZXh0XG4vL1xuLy8gQXBwbHkgY2xhc3MgdG8gYSByZWFkb25seSBpbnB1dCB0byBtYWtlIGl0IGFwcGVhciBsaWtlIHJlZ3VsYXIgcGxhaW5cbi8vIHRleHQgKHdpdGhvdXQgYW55IGJvcmRlciwgYmFja2dyb3VuZCBjb2xvciwgZm9jdXMgaW5kaWNhdG9yKVxuXG4uZm9ybS1jb250cm9sLXBsYWludGV4dCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZy10b3A6ICRpbnB1dC1wYWRkaW5nLXk7XG4gIHBhZGRpbmctYm90dG9tOiAkaW5wdXQtcGFkZGluZy15O1xuICBtYXJnaW4tYm90dG9tOiAwOyAvLyBtYXRjaCBpbnB1dHMgaWYgdGhpcyBjbGFzcyBjb21lcyBvbiBpbnB1dHMgd2l0aCBkZWZhdWx0IG1hcmdpbnNcbiAgbGluZS1oZWlnaHQ6ICRpbnB1dC1saW5lLWhlaWdodDtcbiAgY29sb3I6ICRpbnB1dC1wbGFpbnRleHQtY29sb3I7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItd2lkdGg6ICRpbnB1dC1ib3JkZXItd2lkdGggMDtcblxuICAmLmZvcm0tY29udHJvbC1zbSxcbiAgJi5mb3JtLWNvbnRyb2wtbGcge1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICB9XG59XG5cblxuLy8gRm9ybSBjb250cm9sIHNpemluZ1xuLy9cbi8vIEJ1aWxkIG9uIGAuZm9ybS1jb250cm9sYCB3aXRoIG1vZGlmaWVyIGNsYXNzZXMgdG8gZGVjcmVhc2Ugb3IgaW5jcmVhc2UgdGhlXG4vLyBoZWlnaHQgYW5kIGZvbnQtc2l6ZSBvZiBmb3JtIGNvbnRyb2xzLlxuLy9cbi8vIFJlcGVhdGVkIGluIGBfaW5wdXRfZ3JvdXAuc2Nzc2AgdG8gYXZvaWQgU2FzcyBleHRlbmQgaXNzdWVzLlxuXG4uZm9ybS1jb250cm9sLXNtIHtcbiAgaGVpZ2h0OiAkaW5wdXQtaGVpZ2h0LXNtO1xuICBwYWRkaW5nOiAkaW5wdXQtcGFkZGluZy15LXNtICRpbnB1dC1wYWRkaW5nLXgtc207XG4gIEBpbmNsdWRlIGZvbnQtc2l6ZSgkaW5wdXQtZm9udC1zaXplLXNtKTtcbiAgbGluZS1oZWlnaHQ6ICRpbnB1dC1saW5lLWhlaWdodC1zbTtcbiAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cygkaW5wdXQtYm9yZGVyLXJhZGl1cy1zbSk7XG59XG5cbi5mb3JtLWNvbnRyb2wtbGcge1xuICBoZWlnaHQ6ICRpbnB1dC1oZWlnaHQtbGc7XG4gIHBhZGRpbmc6ICRpbnB1dC1wYWRkaW5nLXktbGcgJGlucHV0LXBhZGRpbmcteC1sZztcbiAgQGluY2x1ZGUgZm9udC1zaXplKCRpbnB1dC1mb250LXNpemUtbGcpO1xuICBsaW5lLWhlaWdodDogJGlucHV0LWxpbmUtaGVpZ2h0LWxnO1xuICBAaW5jbHVkZSBib3JkZXItcmFkaXVzKCRpbnB1dC1ib3JkZXItcmFkaXVzLWxnKTtcbn1cblxuLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWR1cGxpY2F0ZS1zZWxlY3RvcnNcbnNlbGVjdC5mb3JtLWNvbnRyb2wge1xuICAmW3NpemVdLFxuICAmW211bHRpcGxlXSB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICB9XG59XG5cbnRleHRhcmVhLmZvcm0tY29udHJvbCB7XG4gIGhlaWdodDogYXV0bztcbn1cblxuLy8gRm9ybSBncm91cHNcbi8vXG4vLyBEZXNpZ25lZCB0byBoZWxwIHdpdGggdGhlIG9yZ2FuaXphdGlvbiBhbmQgc3BhY2luZyBvZiB2ZXJ0aWNhbCBmb3Jtcy4gRm9yXG4vLyBob3Jpem9udGFsIGZvcm1zLCB1c2UgdGhlIHByZWRlZmluZWQgZ3JpZCBjbGFzc2VzLlxuXG4uZm9ybS1ncm91cCB7XG4gIG1hcmdpbi1ib3R0b206ICRmb3JtLWdyb3VwLW1hcmdpbi1ib3R0b207XG59XG5cbi5mb3JtLXRleHQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLXRvcDogJGZvcm0tdGV4dC1tYXJnaW4tdG9wO1xufVxuXG5cbi8vIEZvcm0gZ3JpZFxuLy9cbi8vIFNwZWNpYWwgcmVwbGFjZW1lbnQgZm9yIG91ciBncmlkIHN5c3RlbSdzIGAucm93YCBmb3IgdGlnaHRlciBmb3JtIGxheW91dHMuXG5cbi5mb3JtLXJvdyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgbWFyZ2luLXJpZ2h0OiAtJGZvcm0tZ3JpZC1ndXR0ZXItd2lkdGggLyAyO1xuICBtYXJnaW4tbGVmdDogLSRmb3JtLWdyaWQtZ3V0dGVyLXdpZHRoIC8gMjtcblxuICA+IC5jb2wsXG4gID4gW2NsYXNzKj1cImNvbC1cIl0ge1xuICAgIHBhZGRpbmctcmlnaHQ6ICRmb3JtLWdyaWQtZ3V0dGVyLXdpZHRoIC8gMjtcbiAgICBwYWRkaW5nLWxlZnQ6ICRmb3JtLWdyaWQtZ3V0dGVyLXdpZHRoIC8gMjtcbiAgfVxufVxuXG5cbi8vIENoZWNrYm94ZXMgYW5kIHJhZGlvc1xuLy9cbi8vIEluZGVudCB0aGUgbGFiZWxzIHRvIHBvc2l0aW9uIHJhZGlvcy9jaGVja2JveGVzIGFzIGhhbmdpbmcgY29udHJvbHMuXG5cbi5mb3JtLWNoZWNrIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZy1sZWZ0OiAkZm9ybS1jaGVjay1pbnB1dC1ndXR0ZXI7XG59XG5cbi5mb3JtLWNoZWNrLWlucHV0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBtYXJnaW4tdG9wOiAkZm9ybS1jaGVjay1pbnB1dC1tYXJnaW4teTtcbiAgbWFyZ2luLWxlZnQ6IC0kZm9ybS1jaGVjay1pbnB1dC1ndXR0ZXI7XG5cbiAgJjpkaXNhYmxlZCB+IC5mb3JtLWNoZWNrLWxhYmVsIHtcbiAgICBjb2xvcjogJHRleHQtbXV0ZWQ7XG4gIH1cbn1cblxuLmZvcm0tY2hlY2stbGFiZWwge1xuICBtYXJnaW4tYm90dG9tOiAwOyAvLyBPdmVycmlkZSBkZWZhdWx0IGA8bGFiZWw+YCBib3R0b20gbWFyZ2luXG59XG5cbi5mb3JtLWNoZWNrLWlubGluZSB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwYWRkaW5nLWxlZnQ6IDA7IC8vIE92ZXJyaWRlIGJhc2UgLmZvcm0tY2hlY2tcbiAgbWFyZ2luLXJpZ2h0OiAkZm9ybS1jaGVjay1pbmxpbmUtbWFyZ2luLXg7XG5cbiAgLy8gVW5kbyAuZm9ybS1jaGVjay1pbnB1dCBkZWZhdWx0cyBhbmQgYWRkIHNvbWUgYG1hcmdpbi1yaWdodGAuXG4gIC5mb3JtLWNoZWNrLWlucHV0IHtcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgbWFyZ2luLXJpZ2h0OiAkZm9ybS1jaGVjay1pbmxpbmUtaW5wdXQtbWFyZ2luLXg7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gIH1cbn1cblxuXG4vLyBGb3JtIHZhbGlkYXRpb25cbi8vXG4vLyBQcm92aWRlIGZlZWRiYWNrIHRvIHVzZXJzIHdoZW4gZm9ybSBmaWVsZCB2YWx1ZXMgYXJlIHZhbGlkIG9yIGludmFsaWQuIFdvcmtzXG4vLyBwcmltYXJpbHkgZm9yIGNsaWVudC1zaWRlIHZhbGlkYXRpb24gdmlhIHNjb3BlZCBgOmludmFsaWRgIGFuZCBgOnZhbGlkYFxuLy8gcHNldWRvLWNsYXNzZXMgYnV0IGFsc28gaW5jbHVkZXMgYC5pcy1pbnZhbGlkYCBhbmQgYC5pcy12YWxpZGAgY2xhc3NlcyBmb3Jcbi8vIHNlcnZlciBzaWRlIHZhbGlkYXRpb24uXG5cbkBlYWNoICRzdGF0ZSwgJGRhdGEgaW4gJGZvcm0tdmFsaWRhdGlvbi1zdGF0ZXMge1xuICBAaW5jbHVkZSBmb3JtLXZhbGlkYXRpb24tc3RhdGUoJHN0YXRlLCBtYXAtZ2V0KCRkYXRhLCBjb2xvciksIG1hcC1nZXQoJGRhdGEsIGljb24pKTtcbn1cblxuLy8gSW5saW5lIGZvcm1zXG4vL1xuLy8gTWFrZSBmb3JtcyBhcHBlYXIgaW5saW5lKC1ibG9jaykgYnkgYWRkaW5nIHRoZSBgLmZvcm0taW5saW5lYCBjbGFzcy4gSW5saW5lXG4vLyBmb3JtcyBiZWdpbiBzdGFja2VkIG9uIGV4dHJhIHNtYWxsIChtb2JpbGUpIGRldmljZXMgYW5kIHRoZW4gZ28gaW5saW5lIHdoZW5cbi8vIHZpZXdwb3J0cyByZWFjaCA8NzY4cHguXG4vL1xuLy8gUmVxdWlyZXMgd3JhcHBpbmcgaW5wdXRzIGFuZCBsYWJlbHMgd2l0aCBgLmZvcm0tZ3JvdXBgIGZvciBwcm9wZXIgZGlzcGxheSBvZlxuLy8gZGVmYXVsdCBIVE1MIGZvcm0gY29udHJvbHMgYW5kIG91ciBjdXN0b20gZm9ybSBjb250cm9scyAoZS5nLiwgaW5wdXQgZ3JvdXBzKS5cblxuLmZvcm0taW5saW5lIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjsgLy8gUHJldmVudCBzaG9ydGVyIGVsZW1lbnRzIGZyb20gZ3Jvd2luZyB0byBzYW1lIGhlaWdodCBhcyBvdGhlcnMgKGUuZy4sIHNtYWxsIGJ1dHRvbnMgZ3Jvd2luZyB0byBub3JtYWwgc2l6ZWQgYnV0dG9uIGhlaWdodClcblxuICAvLyBCZWNhdXNlIHdlIHVzZSBmbGV4LCB0aGUgaW5pdGlhbCBzaXppbmcgb2YgY2hlY2tib3hlcyBpcyBjb2xsYXBzZWQgYW5kXG4gIC8vIGRvZXNuJ3Qgb2NjdXB5IHRoZSBmdWxsLXdpZHRoICh3aGljaCBpcyB3aGF0IHdlIHdhbnQgZm9yIHhzIGdyaWQgdGllciksXG4gIC8vIHNvIHdlIGZvcmNlIHRoYXQgaGVyZS5cbiAgLmZvcm0tY2hlY2sge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5cbiAgLy8gS2ljayBpbiB0aGUgaW5saW5lXG4gIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoc20pIHtcbiAgICBsYWJlbCB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICAvLyBJbmxpbmUtYmxvY2sgYWxsIHRoZSB0aGluZ3MgZm9yIFwiaW5saW5lXCJcbiAgICAuZm9ybS1ncm91cCB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuXG4gICAgLy8gQWxsb3cgZm9sa3MgdG8gKm5vdCogdXNlIGAuZm9ybS1ncm91cGBcbiAgICAuZm9ybS1jb250cm9sIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHdpZHRoOiBhdXRvOyAvLyBQcmV2ZW50IGxhYmVscyBmcm9tIHN0YWNraW5nIGFib3ZlIGlucHV0cyBpbiBgLmZvcm0tZ3JvdXBgXG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cblxuICAgIC8vIE1ha2Ugc3RhdGljIGNvbnRyb2xzIGJlaGF2ZSBsaWtlIHJlZ3VsYXIgb25lc1xuICAgIC5mb3JtLWNvbnRyb2wtcGxhaW50ZXh0IHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG5cbiAgICAuaW5wdXQtZ3JvdXAsXG4gICAgLmN1c3RvbS1zZWxlY3Qge1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgfVxuXG4gICAgLy8gUmVtb3ZlIGRlZmF1bHQgbWFyZ2luIG9uIHJhZGlvcy9jaGVja2JveGVzIHRoYXQgd2VyZSB1c2VkIGZvciBzdGFja2luZywgYW5kXG4gICAgLy8gdGhlbiB1bmRvIHRoZSBmbG9hdGluZyBvZiByYWRpb3MgYW5kIGNoZWNrYm94ZXMgdG8gbWF0Y2guXG4gICAgLmZvcm0tY2hlY2sge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIH1cbiAgICAuZm9ybS1jaGVjay1pbnB1dCB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBmbGV4LXNocmluazogMDtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICBtYXJnaW4tcmlnaHQ6ICRmb3JtLWNoZWNrLWlucHV0LW1hcmdpbi14O1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgfVxuXG4gICAgLmN1c3RvbS1jb250cm9sIHtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB9XG4gICAgLmN1c3RvbS1jb250cm9sLWxhYmVsIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICB9XG59XG4iLCIvLyBzdHlsZWxpbnQtZGlzYWJsZSBwcm9wZXJ0eS1ibGFja2xpc3RcbkBtaXhpbiB0cmFuc2l0aW9uKCR0cmFuc2l0aW9uLi4uKSB7XG4gIEBpZiAkZW5hYmxlLXRyYW5zaXRpb25zIHtcbiAgICBAaWYgbGVuZ3RoKCR0cmFuc2l0aW9uKSA9PSAwIHtcbiAgICAgIHRyYW5zaXRpb246ICR0cmFuc2l0aW9uLWJhc2U7XG4gICAgfSBAZWxzZSB7XG4gICAgICB0cmFuc2l0aW9uOiAkdHJhbnNpdGlvbjtcbiAgICB9XG4gIH1cblxuICBAaWYgJGVuYWJsZS1wcmVmZXJzLXJlZHVjZWQtbW90aW9uLW1lZGlhLXF1ZXJ5IHtcbiAgICBAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAgICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvcm0gY29udHJvbCBmb2N1cyBzdGF0ZVxuLy9cbi8vIEdlbmVyYXRlIGEgY3VzdG9taXplZCBmb2N1cyBzdGF0ZSBhbmQgZm9yIGFueSBpbnB1dCB3aXRoIHRoZSBzcGVjaWZpZWQgY29sb3IsXG4vLyB3aGljaCBkZWZhdWx0cyB0byB0aGUgYCRpbnB1dC1mb2N1cy1ib3JkZXItY29sb3JgIHZhcmlhYmxlLlxuLy9cbi8vIFdlIGhpZ2hseSBlbmNvdXJhZ2UgeW91IHRvIG5vdCBjdXN0b21pemUgdGhlIGRlZmF1bHQgdmFsdWUsIGJ1dCBpbnN0ZWFkIHVzZVxuLy8gdGhpcyB0byB0d2VhayBjb2xvcnMgb24gYW4gYXMtbmVlZGVkIGJhc2lzLiBUaGlzIGFlc3RoZXRpYyBjaGFuZ2UgaXMgYmFzZWQgb25cbi8vIFdlYktpdCdzIGRlZmF1bHQgc3R5bGVzLCBidXQgYXBwbGljYWJsZSB0byBhIHdpZGVyIHJhbmdlIG9mIGJyb3dzZXJzLiBJdHNcbi8vIHVzYWJpbGl0eSBhbmQgYWNjZXNzaWJpbGl0eSBzaG91bGQgYmUgdGFrZW4gaW50byBhY2NvdW50IHdpdGggYW55IGNoYW5nZS5cbi8vXG4vLyBFeGFtcGxlIHVzYWdlOiBjaGFuZ2UgdGhlIGRlZmF1bHQgYmx1ZSBib3JkZXIgYW5kIHNoYWRvdyB0byB3aGl0ZSBmb3IgYmV0dGVyXG4vLyBjb250cmFzdCBhZ2FpbnN0IGEgZGFyayBncmF5IGJhY2tncm91bmQuXG5AbWl4aW4gZm9ybS1jb250cm9sLWZvY3VzKCkge1xuICAmOmZvY3VzIHtcbiAgICBjb2xvcjogJGlucHV0LWZvY3VzLWNvbG9yO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1mb2N1cy1iZztcbiAgICBib3JkZXItY29sb3I6ICRpbnB1dC1mb2N1cy1ib3JkZXItY29sb3I7XG4gICAgb3V0bGluZTogMDtcbiAgICAvLyBBdm9pZCB1c2luZyBtaXhpbiBzbyB3ZSBjYW4gcGFzcyBjdXN0b20gZm9jdXMgc2hhZG93IHByb3Blcmx5XG4gICAgQGlmICRlbmFibGUtc2hhZG93cyB7XG4gICAgICBib3gtc2hhZG93OiAkaW5wdXQtYm94LXNoYWRvdywgJGlucHV0LWZvY3VzLWJveC1zaGFkb3c7XG4gICAgfSBAZWxzZSB7XG4gICAgICBib3gtc2hhZG93OiAkaW5wdXQtZm9jdXMtYm94LXNoYWRvdztcbiAgICB9XG4gIH1cbn1cblxuXG5AbWl4aW4gZm9ybS12YWxpZGF0aW9uLXN0YXRlKCRzdGF0ZSwgJGNvbG9yLCAkaWNvbikge1xuICAuI3skc3RhdGV9LWZlZWRiYWNrIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi10b3A6ICRmb3JtLWZlZWRiYWNrLW1hcmdpbi10b3A7XG4gICAgQGluY2x1ZGUgZm9udC1zaXplKCRmb3JtLWZlZWRiYWNrLWZvbnQtc2l6ZSk7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgfVxuXG4gIC4jeyRzdGF0ZX0tdG9vbHRpcCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMTAwJTtcbiAgICB6LWluZGV4OiA1O1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgbWF4LXdpZHRoOiAxMDAlOyAvLyBDb250YWluIHRvIHBhcmVudCB3aGVuIHBvc3NpYmxlXG4gICAgcGFkZGluZzogJGZvcm0tZmVlZGJhY2stdG9vbHRpcC1wYWRkaW5nLXkgJGZvcm0tZmVlZGJhY2stdG9vbHRpcC1wYWRkaW5nLXg7XG4gICAgbWFyZ2luLXRvcDogLjFyZW07XG4gICAgQGluY2x1ZGUgZm9udC1zaXplKCRmb3JtLWZlZWRiYWNrLXRvb2x0aXAtZm9udC1zaXplKTtcbiAgICBsaW5lLWhlaWdodDogJGZvcm0tZmVlZGJhY2stdG9vbHRpcC1saW5lLWhlaWdodDtcbiAgICBjb2xvcjogY29sb3IteWlxKCRjb2xvcik7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkY29sb3IsICRmb3JtLWZlZWRiYWNrLXRvb2x0aXAtb3BhY2l0eSk7XG4gICAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cygkZm9ybS1mZWVkYmFjay10b29sdGlwLWJvcmRlci1yYWRpdXMpO1xuICB9XG5cbiAgLmZvcm0tY29udHJvbCB7XG4gICAgLndhcy12YWxpZGF0ZWQgJjojeyRzdGF0ZX0sXG4gICAgJi5pcy0jeyRzdGF0ZX0ge1xuICAgICAgYm9yZGVyLWNvbG9yOiAkY29sb3I7XG5cbiAgICAgIEBpZiAkZW5hYmxlLXZhbGlkYXRpb24taWNvbnMge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkaW5wdXQtaGVpZ2h0LWlubmVyO1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiAkaWNvbjtcbiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIHJpZ2h0ICRpbnB1dC1oZWlnaHQtaW5uZXItcXVhcnRlcjtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiAkaW5wdXQtaGVpZ2h0LWlubmVyLWhhbGYgJGlucHV0LWhlaWdodC1pbm5lci1oYWxmO1xuICAgICAgfVxuXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkY29sb3I7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwICRpbnB1dC1mb2N1cy13aWR0aCByZ2JhKCRjb2xvciwgLjI1KTtcbiAgICAgIH1cblxuICAgICAgfiAuI3skc3RhdGV9LWZlZWRiYWNrLFxuICAgICAgfiAuI3skc3RhdGV9LXRvb2x0aXAge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2VsZWN0b3Itbm8tcXVhbGlmeWluZy10eXBlXG4gIHRleHRhcmVhLmZvcm0tY29udHJvbCB7XG4gICAgLndhcy12YWxpZGF0ZWQgJjojeyRzdGF0ZX0sXG4gICAgJi5pcy0jeyRzdGF0ZX0ge1xuICAgICAgQGlmICRlbmFibGUtdmFsaWRhdGlvbi1pY29ucyB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6ICRpbnB1dC1oZWlnaHQtaW5uZXI7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IHRvcCAkaW5wdXQtaGVpZ2h0LWlubmVyLXF1YXJ0ZXIgcmlnaHQgJGlucHV0LWhlaWdodC1pbm5lci1xdWFydGVyO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5jdXN0b20tc2VsZWN0IHtcbiAgICAud2FzLXZhbGlkYXRlZCAmOiN7JHN0YXRlfSxcbiAgICAmLmlzLSN7JHN0YXRlfSB7XG4gICAgICBib3JkZXItY29sb3I6ICRjb2xvcjtcblxuICAgICAgQGlmICRlbmFibGUtdmFsaWRhdGlvbi1pY29ucyB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6ICRjdXN0b20tc2VsZWN0LWZlZWRiYWNrLWljb24tcGFkZGluZy1yaWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogJGN1c3RvbS1zZWxlY3QtYmFja2dyb3VuZCwgJGljb24gJGN1c3RvbS1zZWxlY3QtYmcgbm8tcmVwZWF0ICRjdXN0b20tc2VsZWN0LWZlZWRiYWNrLWljb24tcG9zaXRpb24gLyAkY3VzdG9tLXNlbGVjdC1mZWVkYmFjay1pY29uLXNpemU7XG4gICAgICB9XG5cbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBib3JkZXItY29sb3I6ICRjb2xvcjtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgJGlucHV0LWZvY3VzLXdpZHRoIHJnYmEoJGNvbG9yLCAuMjUpO1xuICAgICAgfVxuXG4gICAgICB+IC4jeyRzdGF0ZX0tZmVlZGJhY2ssXG4gICAgICB+IC4jeyRzdGF0ZX0tdG9vbHRpcCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG5cbiAgLmZvcm0tY29udHJvbC1maWxlIHtcbiAgICAud2FzLXZhbGlkYXRlZCAmOiN7JHN0YXRlfSxcbiAgICAmLmlzLSN7JHN0YXRlfSB7XG4gICAgICB+IC4jeyRzdGF0ZX0tZmVlZGJhY2ssXG4gICAgICB+IC4jeyRzdGF0ZX0tdG9vbHRpcCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5mb3JtLWNoZWNrLWlucHV0IHtcbiAgICAud2FzLXZhbGlkYXRlZCAmOiN7JHN0YXRlfSxcbiAgICAmLmlzLSN7JHN0YXRlfSB7XG4gICAgICB+IC5mb3JtLWNoZWNrLWxhYmVsIHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcbiAgICAgIH1cblxuICAgICAgfiAuI3skc3RhdGV9LWZlZWRiYWNrLFxuICAgICAgfiAuI3skc3RhdGV9LXRvb2x0aXAge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuY3VzdG9tLWNvbnRyb2wtaW5wdXQge1xuICAgIC53YXMtdmFsaWRhdGVkICY6I3skc3RhdGV9LFxuICAgICYuaXMtI3skc3RhdGV9IHtcbiAgICAgIH4gLmN1c3RvbS1jb250cm9sLWxhYmVsIHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgIGJvcmRlci1jb2xvcjogJGNvbG9yO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIH4gLiN7JHN0YXRlfS1mZWVkYmFjayxcbiAgICAgIH4gLiN7JHN0YXRlfS10b29sdGlwIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG5cbiAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgIH4gLmN1c3RvbS1jb250cm9sLWxhYmVsOjpiZWZvcmUge1xuICAgICAgICAgIGJvcmRlci1jb2xvcjogbGlnaHRlbigkY29sb3IsIDEwJSk7XG4gICAgICAgICAgQGluY2x1ZGUgZ3JhZGllbnQtYmcobGlnaHRlbigkY29sb3IsIDEwJSkpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICY6Zm9jdXMge1xuICAgICAgICB+IC5jdXN0b20tY29udHJvbC1sYWJlbDo6YmVmb3JlIHtcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAkaW5wdXQtZm9jdXMtd2lkdGggcmdiYSgkY29sb3IsIC4yNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmOm5vdCg6Y2hlY2tlZCkgfiAuY3VzdG9tLWNvbnRyb2wtbGFiZWw6OmJlZm9yZSB7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiAkY29sb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBjdXN0b20gZmlsZVxuICAuY3VzdG9tLWZpbGUtaW5wdXQge1xuICAgIC53YXMtdmFsaWRhdGVkICY6I3skc3RhdGV9LFxuICAgICYuaXMtI3skc3RhdGV9IHtcbiAgICAgIH4gLmN1c3RvbS1maWxlLWxhYmVsIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkY29sb3I7XG4gICAgICB9XG5cbiAgICAgIH4gLiN7JHN0YXRlfS1mZWVkYmFjayxcbiAgICAgIH4gLiN7JHN0YXRlfS10b29sdGlwIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG5cbiAgICAgICY6Zm9jdXMge1xuICAgICAgICB+IC5jdXN0b20tZmlsZS1sYWJlbCB7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgJGlucHV0LWZvY3VzLXdpZHRoIHJnYmEoJGNvbG9yLCAuMjUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBHcmFkaWVudHNcblxuQG1peGluIGdyYWRpZW50LWJnKCRjb2xvcikge1xuICBAaWYgJGVuYWJsZS1ncmFkaWVudHMge1xuICAgIGJhY2tncm91bmQ6ICRjb2xvciBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCBtaXgoJGJvZHktYmcsICRjb2xvciwgMTUlKSwgJGNvbG9yKSByZXBlYXQteDtcbiAgfSBAZWxzZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICB9XG59XG5cbi8vIEhvcml6b250YWwgZ3JhZGllbnQsIGZyb20gbGVmdCB0byByaWdodFxuLy9cbi8vIENyZWF0ZXMgdHdvIGNvbG9yIHN0b3BzLCBzdGFydCBhbmQgZW5kLCBieSBzcGVjaWZ5aW5nIGEgY29sb3IgYW5kIHBvc2l0aW9uIGZvciBlYWNoIGNvbG9yIHN0b3AuXG5AbWl4aW4gZ3JhZGllbnQteCgkc3RhcnQtY29sb3I6ICRncmF5LTcwMCwgJGVuZC1jb2xvcjogJGdyYXktODAwLCAkc3RhcnQtcGVyY2VudDogMCUsICRlbmQtcGVyY2VudDogMTAwJSkge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICRzdGFydC1jb2xvciAkc3RhcnQtcGVyY2VudCwgJGVuZC1jb2xvciAkZW5kLXBlcmNlbnQpO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG59XG5cbi8vIFZlcnRpY2FsIGdyYWRpZW50LCBmcm9tIHRvcCB0byBib3R0b21cbi8vXG4vLyBDcmVhdGVzIHR3byBjb2xvciBzdG9wcywgc3RhcnQgYW5kIGVuZCwgYnkgc3BlY2lmeWluZyBhIGNvbG9yIGFuZCBwb3NpdGlvbiBmb3IgZWFjaCBjb2xvciBzdG9wLlxuQG1peGluIGdyYWRpZW50LXkoJHN0YXJ0LWNvbG9yOiAkZ3JheS03MDAsICRlbmQtY29sb3I6ICRncmF5LTgwMCwgJHN0YXJ0LXBlcmNlbnQ6IDAlLCAkZW5kLXBlcmNlbnQ6IDEwMCUpIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgJHN0YXJ0LWNvbG9yICRzdGFydC1wZXJjZW50LCAkZW5kLWNvbG9yICRlbmQtcGVyY2VudCk7XG4gIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcbn1cblxuQG1peGluIGdyYWRpZW50LWRpcmVjdGlvbmFsKCRzdGFydC1jb2xvcjogJGdyYXktNzAwLCAkZW5kLWNvbG9yOiAkZ3JheS04MDAsICRkZWc6IDQ1ZGVnKSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCgkZGVnLCAkc3RhcnQtY29sb3IsICRlbmQtY29sb3IpO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG59XG5AbWl4aW4gZ3JhZGllbnQteC10aHJlZS1jb2xvcnMoJHN0YXJ0LWNvbG9yOiAkYmx1ZSwgJG1pZC1jb2xvcjogJHB1cnBsZSwgJGNvbG9yLXN0b3A6IDUwJSwgJGVuZC1jb2xvcjogJHJlZCkge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICRzdGFydC1jb2xvciwgJG1pZC1jb2xvciAkY29sb3Itc3RvcCwgJGVuZC1jb2xvcik7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG59XG5AbWl4aW4gZ3JhZGllbnQteS10aHJlZS1jb2xvcnMoJHN0YXJ0LWNvbG9yOiAkYmx1ZSwgJG1pZC1jb2xvcjogJHB1cnBsZSwgJGNvbG9yLXN0b3A6IDUwJSwgJGVuZC1jb2xvcjogJHJlZCkge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoJHN0YXJ0LWNvbG9yLCAkbWlkLWNvbG9yICRjb2xvci1zdG9wLCAkZW5kLWNvbG9yKTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbn1cbkBtaXhpbiBncmFkaWVudC1yYWRpYWwoJGlubmVyLWNvbG9yOiAkZ3JheS03MDAsICRvdXRlci1jb2xvcjogJGdyYXktODAwKSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHJhZGlhbC1ncmFkaWVudChjaXJjbGUsICRpbm5lci1jb2xvciwgJG91dGVyLWNvbG9yKTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbn1cbkBtaXhpbiBncmFkaWVudC1zdHJpcGVkKCRjb2xvcjogcmdiYSgkd2hpdGUsIC4xNSksICRhbmdsZTogNDVkZWcpIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KCRhbmdsZSwgJGNvbG9yIDI1JSwgdHJhbnNwYXJlbnQgMjUlLCB0cmFuc3BhcmVudCA1MCUsICRjb2xvciA1MCUsICRjb2xvciA3NSUsIHRyYW5zcGFyZW50IDc1JSwgdHJhbnNwYXJlbnQpO1xufVxuIiwiLy8gc3R5bGVsaW50LWRpc2FibGUgc2VsZWN0b3Itbm8tcXVhbGlmeWluZy10eXBlXG5cbi8vXG4vLyBCYXNlIHN0eWxlc1xuLy9cblxuLmJ0biB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1mYW1pbHk6ICRidG4tZm9udC1mYW1pbHk7XG4gIGZvbnQtd2VpZ2h0OiAkYnRuLWZvbnQtd2VpZ2h0O1xuICBjb2xvcjogJGJvZHktY29sb3I7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6ICRidG4tYm9yZGVyLXdpZHRoIHNvbGlkIHRyYW5zcGFyZW50O1xuICBAaW5jbHVkZSBidXR0b24tc2l6ZSgkYnRuLXBhZGRpbmcteSwgJGJ0bi1wYWRkaW5nLXgsICRidG4tZm9udC1zaXplLCAkYnRuLWxpbmUtaGVpZ2h0LCAkYnRuLWJvcmRlci1yYWRpdXMpO1xuICBAaW5jbHVkZSB0cmFuc2l0aW9uKCRidG4tdHJhbnNpdGlvbik7XG5cbiAgQGluY2x1ZGUgaG92ZXIge1xuICAgIGNvbG9yOiAkYm9keS1jb2xvcjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIH1cblxuICAmOmZvY3VzLFxuICAmLmZvY3VzIHtcbiAgICBvdXRsaW5lOiAwO1xuICAgIGJveC1zaGFkb3c6ICRidG4tZm9jdXMtYm94LXNoYWRvdztcbiAgfVxuXG4gIC8vIERpc2FibGVkIGNvbWVzIGZpcnN0IHNvIGFjdGl2ZSBjYW4gcHJvcGVybHkgcmVzdHlsZVxuICAmLmRpc2FibGVkLFxuICAmOmRpc2FibGVkIHtcbiAgICBvcGFjaXR5OiAkYnRuLWRpc2FibGVkLW9wYWNpdHk7XG4gICAgQGluY2x1ZGUgYm94LXNoYWRvdyhub25lKTtcbiAgfVxuXG4gICY6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCk6YWN0aXZlLFxuICAmOm5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpLmFjdGl2ZSB7XG4gICAgQGluY2x1ZGUgYm94LXNoYWRvdygkYnRuLWFjdGl2ZS1ib3gtc2hhZG93KTtcblxuICAgICY6Zm9jdXMge1xuICAgICAgQGluY2x1ZGUgYm94LXNoYWRvdygkYnRuLWZvY3VzLWJveC1zaGFkb3csICRidG4tYWN0aXZlLWJveC1zaGFkb3cpO1xuICAgIH1cbiAgfVxufVxuXG4vLyBGdXR1cmUtcHJvb2YgZGlzYWJsaW5nIG9mIGNsaWNrcyBvbiBgPGE+YCBlbGVtZW50c1xuYS5idG4uZGlzYWJsZWQsXG5maWVsZHNldDpkaXNhYmxlZCBhLmJ0biB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG5cbi8vXG4vLyBBbHRlcm5hdGUgYnV0dG9uc1xuLy9cblxuQGVhY2ggJGNvbG9yLCAkdmFsdWUgaW4gJHRoZW1lLWNvbG9ycyB7XG4gIC5idG4tI3skY29sb3J9IHtcbiAgICBAaW5jbHVkZSBidXR0b24tdmFyaWFudCgkdmFsdWUsICR2YWx1ZSk7XG4gIH1cbn1cblxuQGVhY2ggJGNvbG9yLCAkdmFsdWUgaW4gJHRoZW1lLWNvbG9ycyB7XG4gIC5idG4tb3V0bGluZS0jeyRjb2xvcn0ge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1vdXRsaW5lLXZhcmlhbnQoJHZhbHVlKTtcbiAgfVxufVxuXG5cbi8vXG4vLyBMaW5rIGJ1dHRvbnNcbi8vXG5cbi8vIE1ha2UgYSBidXR0b24gbG9vayBhbmQgYmVoYXZlIGxpa2UgYSBsaW5rXG4uYnRuLWxpbmsge1xuICBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LW5vcm1hbDtcbiAgY29sb3I6ICRsaW5rLWNvbG9yO1xuICB0ZXh0LWRlY29yYXRpb246ICRsaW5rLWRlY29yYXRpb247XG5cbiAgQGluY2x1ZGUgaG92ZXIge1xuICAgIGNvbG9yOiAkbGluay1ob3Zlci1jb2xvcjtcbiAgICB0ZXh0LWRlY29yYXRpb246ICRsaW5rLWhvdmVyLWRlY29yYXRpb247XG4gIH1cblxuICAmOmZvY3VzLFxuICAmLmZvY3VzIHtcbiAgICB0ZXh0LWRlY29yYXRpb246ICRsaW5rLWhvdmVyLWRlY29yYXRpb247XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgfVxuXG4gICY6ZGlzYWJsZWQsXG4gICYuZGlzYWJsZWQge1xuICAgIGNvbG9yOiAkYnRuLWxpbmstZGlzYWJsZWQtY29sb3I7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIH1cblxuICAvLyBObyBuZWVkIGZvciBhbiBhY3RpdmUgc3RhdGUgaGVyZVxufVxuXG5cbi8vXG4vLyBCdXR0b24gU2l6ZXNcbi8vXG5cbi5idG4tbGcge1xuICBAaW5jbHVkZSBidXR0b24tc2l6ZSgkYnRuLXBhZGRpbmcteS1sZywgJGJ0bi1wYWRkaW5nLXgtbGcsICRidG4tZm9udC1zaXplLWxnLCAkYnRuLWxpbmUtaGVpZ2h0LWxnLCAkYnRuLWJvcmRlci1yYWRpdXMtbGcpO1xufVxuXG4uYnRuLXNtIHtcbiAgQGluY2x1ZGUgYnV0dG9uLXNpemUoJGJ0bi1wYWRkaW5nLXktc20sICRidG4tcGFkZGluZy14LXNtLCAkYnRuLWZvbnQtc2l6ZS1zbSwgJGJ0bi1saW5lLWhlaWdodC1zbSwgJGJ0bi1ib3JkZXItcmFkaXVzLXNtKTtcbn1cblxuXG4vL1xuLy8gQmxvY2sgYnV0dG9uXG4vL1xuXG4uYnRuLWJsb2NrIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuXG4gIC8vIFZlcnRpY2FsbHkgc3BhY2Ugb3V0IG11bHRpcGxlIGJsb2NrIGJ1dHRvbnNcbiAgKyAuYnRuLWJsb2NrIHtcbiAgICBtYXJnaW4tdG9wOiAkYnRuLWJsb2NrLXNwYWNpbmcteTtcbiAgfVxufVxuXG4vLyBTcGVjaWZpY2l0eSBvdmVycmlkZXNcbmlucHV0W3R5cGU9XCJzdWJtaXRcIl0sXG5pbnB1dFt0eXBlPVwicmVzZXRcIl0sXG5pbnB1dFt0eXBlPVwiYnV0dG9uXCJdIHtcbiAgJi5idG4tYmxvY2sge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG4iLCIvLyBCdXR0b24gdmFyaWFudHNcbi8vXG4vLyBFYXNpbHkgcHVtcCBvdXQgZGVmYXVsdCBzdHlsZXMsIGFzIHdlbGwgYXMgOmhvdmVyLCA6Zm9jdXMsIDphY3RpdmUsXG4vLyBhbmQgZGlzYWJsZWQgb3B0aW9ucyBmb3IgYWxsIGJ1dHRvbnNcblxuQG1peGluIGJ1dHRvbi12YXJpYW50KCRiYWNrZ3JvdW5kLCAkYm9yZGVyLCAkaG92ZXItYmFja2dyb3VuZDogZGFya2VuKCRiYWNrZ3JvdW5kLCA3LjUlKSwgJGhvdmVyLWJvcmRlcjogZGFya2VuKCRib3JkZXIsIDEwJSksICRhY3RpdmUtYmFja2dyb3VuZDogZGFya2VuKCRiYWNrZ3JvdW5kLCAxMCUpLCAkYWN0aXZlLWJvcmRlcjogZGFya2VuKCRib3JkZXIsIDEyLjUlKSkge1xuICBjb2xvcjogY29sb3IteWlxKCRiYWNrZ3JvdW5kKTtcbiAgQGluY2x1ZGUgZ3JhZGllbnQtYmcoJGJhY2tncm91bmQpO1xuICBib3JkZXItY29sb3I6ICRib3JkZXI7XG4gIEBpbmNsdWRlIGJveC1zaGFkb3coJGJ0bi1ib3gtc2hhZG93KTtcblxuICBAaW5jbHVkZSBob3ZlciB7XG4gICAgY29sb3I6IGNvbG9yLXlpcSgkaG92ZXItYmFja2dyb3VuZCk7XG4gICAgQGluY2x1ZGUgZ3JhZGllbnQtYmcoJGhvdmVyLWJhY2tncm91bmQpO1xuICAgIGJvcmRlci1jb2xvcjogJGhvdmVyLWJvcmRlcjtcbiAgfVxuXG4gICY6Zm9jdXMsXG4gICYuZm9jdXMge1xuICAgIC8vIEF2b2lkIHVzaW5nIG1peGluIHNvIHdlIGNhbiBwYXNzIGN1c3RvbSBmb2N1cyBzaGFkb3cgcHJvcGVybHlcbiAgICBAaWYgJGVuYWJsZS1zaGFkb3dzIHtcbiAgICAgIGJveC1zaGFkb3c6ICRidG4tYm94LXNoYWRvdywgMCAwIDAgJGJ0bi1mb2N1cy13aWR0aCByZ2JhKG1peChjb2xvci15aXEoJGJhY2tncm91bmQpLCAkYm9yZGVyLCAxNSUpLCAuNSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICBib3gtc2hhZG93OiAwIDAgMCAkYnRuLWZvY3VzLXdpZHRoIHJnYmEobWl4KGNvbG9yLXlpcSgkYmFja2dyb3VuZCksICRib3JkZXIsIDE1JSksIC41KTtcbiAgICB9XG4gIH1cblxuICAvLyBEaXNhYmxlZCBjb21lcyBmaXJzdCBzbyBhY3RpdmUgY2FuIHByb3Blcmx5IHJlc3R5bGVcbiAgJi5kaXNhYmxlZCxcbiAgJjpkaXNhYmxlZCB7XG4gICAgY29sb3I6IGNvbG9yLXlpcSgkYmFja2dyb3VuZCk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyO1xuICAgIC8vIFJlbW92ZSBDU1MgZ3JhZGllbnRzIGlmIHRoZXkncmUgZW5hYmxlZFxuICAgIEBpZiAkZW5hYmxlLWdyYWRpZW50cyB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICAgIH1cbiAgfVxuXG4gICY6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCk6YWN0aXZlLFxuICAmOm5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpLmFjdGl2ZSxcbiAgLnNob3cgPiAmLmRyb3Bkb3duLXRvZ2dsZSB7XG4gICAgY29sb3I6IGNvbG9yLXlpcSgkYWN0aXZlLWJhY2tncm91bmQpO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRhY3RpdmUtYmFja2dyb3VuZDtcbiAgICBAaWYgJGVuYWJsZS1ncmFkaWVudHMge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTsgLy8gUmVtb3ZlIHRoZSBncmFkaWVudCBmb3IgdGhlIHByZXNzZWQvYWN0aXZlIHN0YXRlXG4gICAgfVxuICAgIGJvcmRlci1jb2xvcjogJGFjdGl2ZS1ib3JkZXI7XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgIC8vIEF2b2lkIHVzaW5nIG1peGluIHNvIHdlIGNhbiBwYXNzIGN1c3RvbSBmb2N1cyBzaGFkb3cgcHJvcGVybHlcbiAgICAgIEBpZiAkZW5hYmxlLXNoYWRvd3MgYW5kICRidG4tYWN0aXZlLWJveC1zaGFkb3cgIT0gbm9uZSB7XG4gICAgICAgIGJveC1zaGFkb3c6ICRidG4tYWN0aXZlLWJveC1zaGFkb3csIDAgMCAwICRidG4tZm9jdXMtd2lkdGggcmdiYShtaXgoY29sb3IteWlxKCRiYWNrZ3JvdW5kKSwgJGJvcmRlciwgMTUlKSwgLjUpO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwICRidG4tZm9jdXMtd2lkdGggcmdiYShtaXgoY29sb3IteWlxKCRiYWNrZ3JvdW5kKSwgJGJvcmRlciwgMTUlKSwgLjUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gYnV0dG9uLW91dGxpbmUtdmFyaWFudCgkY29sb3IsICRjb2xvci1ob3ZlcjogY29sb3IteWlxKCRjb2xvciksICRhY3RpdmUtYmFja2dyb3VuZDogJGNvbG9yLCAkYWN0aXZlLWJvcmRlcjogJGNvbG9yKSB7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGJvcmRlci1jb2xvcjogJGNvbG9yO1xuXG4gIEBpbmNsdWRlIGhvdmVyIHtcbiAgICBjb2xvcjogJGNvbG9yLWhvdmVyO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRhY3RpdmUtYmFja2dyb3VuZDtcbiAgICBib3JkZXItY29sb3I6ICRhY3RpdmUtYm9yZGVyO1xuICB9XG5cbiAgJjpmb2N1cyxcbiAgJi5mb2N1cyB7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgJGJ0bi1mb2N1cy13aWR0aCByZ2JhKCRjb2xvciwgLjUpO1xuICB9XG5cbiAgJi5kaXNhYmxlZCxcbiAgJjpkaXNhYmxlZCB7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgfVxuXG4gICY6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCk6YWN0aXZlLFxuICAmOm5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpLmFjdGl2ZSxcbiAgLnNob3cgPiAmLmRyb3Bkb3duLXRvZ2dsZSB7XG4gICAgY29sb3I6IGNvbG9yLXlpcSgkYWN0aXZlLWJhY2tncm91bmQpO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRhY3RpdmUtYmFja2dyb3VuZDtcbiAgICBib3JkZXItY29sb3I6ICRhY3RpdmUtYm9yZGVyO1xuXG4gICAgJjpmb2N1cyB7XG4gICAgICAvLyBBdm9pZCB1c2luZyBtaXhpbiBzbyB3ZSBjYW4gcGFzcyBjdXN0b20gZm9jdXMgc2hhZG93IHByb3Blcmx5XG4gICAgICBAaWYgJGVuYWJsZS1zaGFkb3dzIGFuZCAkYnRuLWFjdGl2ZS1ib3gtc2hhZG93ICE9IG5vbmUge1xuICAgICAgICBib3gtc2hhZG93OiAkYnRuLWFjdGl2ZS1ib3gtc2hhZG93LCAwIDAgMCAkYnRuLWZvY3VzLXdpZHRoIHJnYmEoJGNvbG9yLCAuNSk7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgJGJ0bi1mb2N1cy13aWR0aCByZ2JhKCRjb2xvciwgLjUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBCdXR0b24gc2l6ZXNcbkBtaXhpbiBidXR0b24tc2l6ZSgkcGFkZGluZy15LCAkcGFkZGluZy14LCAkZm9udC1zaXplLCAkbGluZS1oZWlnaHQsICRib3JkZXItcmFkaXVzKSB7XG4gIHBhZGRpbmc6ICRwYWRkaW5nLXkgJHBhZGRpbmcteDtcbiAgQGluY2x1ZGUgZm9udC1zaXplKCRmb250LXNpemUpO1xuICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0O1xuICAvLyBNYW51YWxseSBkZWNsYXJlIHRvIHByb3ZpZGUgYW4gb3ZlcnJpZGUgdG8gdGhlIGJyb3dzZXIgZGVmYXVsdFxuICBAaW5jbHVkZSBib3JkZXItcmFkaXVzKCRib3JkZXItcmFkaXVzLCAwKTtcbn1cbiIsIi5mYWRlIHtcbiAgQGluY2x1ZGUgdHJhbnNpdGlvbigkdHJhbnNpdGlvbi1mYWRlKTtcblxuICAmOm5vdCguc2hvdykge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuLmNvbGxhcHNlIHtcbiAgJjpub3QoLnNob3cpIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi5jb2xsYXBzaW5nIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIEBpbmNsdWRlIHRyYW5zaXRpb24oJHRyYW5zaXRpb24tY29sbGFwc2UpO1xufVxuIiwiLy8gc3R5bGVsaW50LWRpc2FibGUgc2VsZWN0b3Itbm8tcXVhbGlmeWluZy10eXBlXG5cbi8vXG4vLyBCYXNlIHN0eWxlc1xuLy9cblxuLmlucHV0LWdyb3VwIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7IC8vIEZvciBmb3JtIHZhbGlkYXRpb24gZmVlZGJhY2tcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gIHdpZHRoOiAxMDAlO1xuXG4gID4gLmZvcm0tY29udHJvbCxcbiAgPiAuZm9ybS1jb250cm9sLXBsYWludGV4dCxcbiAgPiAuY3VzdG9tLXNlbGVjdCxcbiAgPiAuY3VzdG9tLWZpbGUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgLy8gRm9yIGZvY3VzIHN0YXRlJ3Mgei1pbmRleFxuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIC8vIEFkZCB3aWR0aCAxJSBhbmQgZmxleC1iYXNpcyBhdXRvIHRvIGVuc3VyZSB0aGF0IGJ1dHRvbiB3aWxsIG5vdCB3cmFwIG91dFxuICAgIC8vIHRoZSBjb2x1bW4uIEFwcGxpZXMgdG8gSUUgRWRnZSsgYW5kIEZpcmVmb3guIENocm9tZSBkb2VzIG5vdCByZXF1aXJlIHRoaXMuXG4gICAgd2lkdGg6IDElO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgICArIC5mb3JtLWNvbnRyb2wsXG4gICAgKyAuY3VzdG9tLXNlbGVjdCxcbiAgICArIC5jdXN0b20tZmlsZSB7XG4gICAgICBtYXJnaW4tbGVmdDogLSRpbnB1dC1ib3JkZXItd2lkdGg7XG4gICAgfVxuICB9XG5cbiAgLy8gQnJpbmcgdGhlIFwiYWN0aXZlXCIgZm9ybSBjb250cm9sIHRvIHRoZSB0b3Agb2Ygc3Vycm91bmRpbmcgZWxlbWVudHNcbiAgPiAuZm9ybS1jb250cm9sOmZvY3VzLFxuICA+IC5jdXN0b20tc2VsZWN0OmZvY3VzLFxuICA+IC5jdXN0b20tZmlsZSAuY3VzdG9tLWZpbGUtaW5wdXQ6Zm9jdXMgfiAuY3VzdG9tLWZpbGUtbGFiZWwge1xuICAgIHotaW5kZXg6IDM7XG4gIH1cblxuICAvLyBCcmluZyB0aGUgY3VzdG9tIGZpbGUgaW5wdXQgYWJvdmUgdGhlIGxhYmVsXG4gID4gLmN1c3RvbS1maWxlIC5jdXN0b20tZmlsZS1pbnB1dDpmb2N1cyB7XG4gICAgei1pbmRleDogNDtcbiAgfVxuXG4gID4gLmZvcm0tY29udHJvbCxcbiAgPiAuY3VzdG9tLXNlbGVjdCB7XG4gICAgJjpub3QoOmxhc3QtY2hpbGQpIHsgQGluY2x1ZGUgYm9yZGVyLXJpZ2h0LXJhZGl1cygwKTsgfVxuICAgICY6bm90KDpmaXJzdC1jaGlsZCkgeyBAaW5jbHVkZSBib3JkZXItbGVmdC1yYWRpdXMoMCk7IH1cbiAgfVxuXG4gIC8vIEN1c3RvbSBmaWxlIGlucHV0cyBoYXZlIG1vcmUgY29tcGxleCBtYXJrdXAsIHRodXMgcmVxdWlyaW5nIGRpZmZlcmVudFxuICAvLyBib3JkZXItcmFkaXVzIG92ZXJyaWRlcy5cbiAgPiAuY3VzdG9tLWZpbGUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICY6bm90KDpsYXN0LWNoaWxkKSAuY3VzdG9tLWZpbGUtbGFiZWwsXG4gICAgJjpub3QoOmxhc3QtY2hpbGQpIC5jdXN0b20tZmlsZS1sYWJlbDo6YWZ0ZXIgeyBAaW5jbHVkZSBib3JkZXItcmlnaHQtcmFkaXVzKDApOyB9XG4gICAgJjpub3QoOmZpcnN0LWNoaWxkKSAuY3VzdG9tLWZpbGUtbGFiZWwgeyBAaW5jbHVkZSBib3JkZXItbGVmdC1yYWRpdXMoMCk7IH1cbiAgfVxufVxuXG5cbi8vIFByZXBlbmQgYW5kIGFwcGVuZFxuLy9cbi8vIFdoaWxlIGl0IHJlcXVpcmVzIG9uZSBleHRyYSBsYXllciBvZiBIVE1MIGZvciBlYWNoLCBkZWRpY2F0ZWQgcHJlcGVuZCBhbmRcbi8vIGFwcGVuZCBlbGVtZW50cyBhbGxvdyB1cyB0byAxKSBiZSBsZXNzIGNsZXZlciwgMikgc2ltcGxpZnkgb3VyIHNlbGVjdG9ycywgYW5kXG4vLyAzKSBzdXBwb3J0IEhUTUw1IGZvcm0gdmFsaWRhdGlvbi5cblxuLmlucHV0LWdyb3VwLXByZXBlbmQsXG4uaW5wdXQtZ3JvdXAtYXBwZW5kIHtcbiAgZGlzcGxheTogZmxleDtcblxuICAvLyBFbnN1cmUgYnV0dG9ucyBhcmUgYWx3YXlzIGFib3ZlIGlucHV0cyBmb3IgbW9yZSB2aXN1YWxseSBwbGVhc2luZyBib3JkZXJzLlxuICAvLyBUaGlzIGlzbid0IG5lZWRlZCBmb3IgYC5pbnB1dC1ncm91cC10ZXh0YCBzaW5jZSBpdCBzaGFyZXMgdGhlIHNhbWUgYm9yZGVyLWNvbG9yXG4gIC8vIGFzIG91ciBpbnB1dHMuXG4gIC5idG4ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAyO1xuXG4gICAgJjpmb2N1cyB7XG4gICAgICB6LWluZGV4OiAzO1xuICAgIH1cbiAgfVxuXG4gIC5idG4gKyAuYnRuLFxuICAuYnRuICsgLmlucHV0LWdyb3VwLXRleHQsXG4gIC5pbnB1dC1ncm91cC10ZXh0ICsgLmlucHV0LWdyb3VwLXRleHQsXG4gIC5pbnB1dC1ncm91cC10ZXh0ICsgLmJ0biB7XG4gICAgbWFyZ2luLWxlZnQ6IC0kaW5wdXQtYm9yZGVyLXdpZHRoO1xuICB9XG59XG5cbi5pbnB1dC1ncm91cC1wcmVwZW5kIHsgbWFyZ2luLXJpZ2h0OiAtJGlucHV0LWJvcmRlci13aWR0aDsgfVxuLmlucHV0LWdyb3VwLWFwcGVuZCB7IG1hcmdpbi1sZWZ0OiAtJGlucHV0LWJvcmRlci13aWR0aDsgfVxuXG5cbi8vIFRleHR1YWwgYWRkb25zXG4vL1xuLy8gU2VydmVzIGFzIGEgY2F0Y2gtYWxsIGVsZW1lbnQgZm9yIGFueSB0ZXh0IG9yIHJhZGlvL2NoZWNrYm94IGlucHV0IHlvdSB3aXNoXG4vLyB0byBwcmVwZW5kIG9yIGFwcGVuZCB0byBhbiBpbnB1dC5cblxuLmlucHV0LWdyb3VwLXRleHQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwYWRkaW5nOiAkaW5wdXQtcGFkZGluZy15ICRpbnB1dC1wYWRkaW5nLXg7XG4gIG1hcmdpbi1ib3R0b206IDA7IC8vIEFsbG93IHVzZSBvZiA8bGFiZWw+IGVsZW1lbnRzIGJ5IG92ZXJyaWRpbmcgb3VyIGRlZmF1bHQgbWFyZ2luLWJvdHRvbVxuICBAaW5jbHVkZSBmb250LXNpemUoJGlucHV0LWZvbnQtc2l6ZSk7IC8vIE1hdGNoIGlucHV0c1xuICBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LW5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6ICRpbnB1dC1saW5lLWhlaWdodDtcbiAgY29sb3I6ICRpbnB1dC1ncm91cC1hZGRvbi1jb2xvcjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtZ3JvdXAtYWRkb24tYmc7XG4gIGJvcmRlcjogJGlucHV0LWJvcmRlci13aWR0aCBzb2xpZCAkaW5wdXQtZ3JvdXAtYWRkb24tYm9yZGVyLWNvbG9yO1xuICBAaW5jbHVkZSBib3JkZXItcmFkaXVzKCRpbnB1dC1ib3JkZXItcmFkaXVzKTtcblxuICAvLyBOdWtlIGRlZmF1bHQgbWFyZ2lucyBmcm9tIGNoZWNrYm94ZXMgYW5kIHJhZGlvcyB0byB2ZXJ0aWNhbGx5IGNlbnRlciB3aXRoaW4uXG4gIGlucHV0W3R5cGU9XCJyYWRpb1wiXSxcbiAgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICB9XG59XG5cblxuLy8gU2l6aW5nXG4vL1xuLy8gUmVtaXggdGhlIGRlZmF1bHQgZm9ybSBjb250cm9sIHNpemluZyBjbGFzc2VzIGludG8gbmV3IG9uZXMgZm9yIGVhc2llclxuLy8gbWFuaXB1bGF0aW9uLlxuXG4uaW5wdXQtZ3JvdXAtbGcgPiAuZm9ybS1jb250cm9sOm5vdCh0ZXh0YXJlYSksXG4uaW5wdXQtZ3JvdXAtbGcgPiAuY3VzdG9tLXNlbGVjdCB7XG4gIGhlaWdodDogJGlucHV0LWhlaWdodC1sZztcbn1cblxuLmlucHV0LWdyb3VwLWxnID4gLmZvcm0tY29udHJvbCxcbi5pbnB1dC1ncm91cC1sZyA+IC5jdXN0b20tc2VsZWN0LFxuLmlucHV0LWdyb3VwLWxnID4gLmlucHV0LWdyb3VwLXByZXBlbmQgPiAuaW5wdXQtZ3JvdXAtdGV4dCxcbi5pbnB1dC1ncm91cC1sZyA+IC5pbnB1dC1ncm91cC1hcHBlbmQgPiAuaW5wdXQtZ3JvdXAtdGV4dCxcbi5pbnB1dC1ncm91cC1sZyA+IC5pbnB1dC1ncm91cC1wcmVwZW5kID4gLmJ0bixcbi5pbnB1dC1ncm91cC1sZyA+IC5pbnB1dC1ncm91cC1hcHBlbmQgPiAuYnRuIHtcbiAgcGFkZGluZzogJGlucHV0LXBhZGRpbmcteS1sZyAkaW5wdXQtcGFkZGluZy14LWxnO1xuICBAaW5jbHVkZSBmb250LXNpemUoJGlucHV0LWZvbnQtc2l6ZS1sZyk7XG4gIGxpbmUtaGVpZ2h0OiAkaW5wdXQtbGluZS1oZWlnaHQtbGc7XG4gIEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoJGlucHV0LWJvcmRlci1yYWRpdXMtbGcpO1xufVxuXG4uaW5wdXQtZ3JvdXAtc20gPiAuZm9ybS1jb250cm9sOm5vdCh0ZXh0YXJlYSksXG4uaW5wdXQtZ3JvdXAtc20gPiAuY3VzdG9tLXNlbGVjdCB7XG4gIGhlaWdodDogJGlucHV0LWhlaWdodC1zbTtcbn1cblxuLmlucHV0LWdyb3VwLXNtID4gLmZvcm0tY29udHJvbCxcbi5pbnB1dC1ncm91cC1zbSA+IC5jdXN0b20tc2VsZWN0LFxuLmlucHV0LWdyb3VwLXNtID4gLmlucHV0LWdyb3VwLXByZXBlbmQgPiAuaW5wdXQtZ3JvdXAtdGV4dCxcbi5pbnB1dC1ncm91cC1zbSA+IC5pbnB1dC1ncm91cC1hcHBlbmQgPiAuaW5wdXQtZ3JvdXAtdGV4dCxcbi5pbnB1dC1ncm91cC1zbSA+IC5pbnB1dC1ncm91cC1wcmVwZW5kID4gLmJ0bixcbi5pbnB1dC1ncm91cC1zbSA+IC5pbnB1dC1ncm91cC1hcHBlbmQgPiAuYnRuIHtcbiAgcGFkZGluZzogJGlucHV0LXBhZGRpbmcteS1zbSAkaW5wdXQtcGFkZGluZy14LXNtO1xuICBAaW5jbHVkZSBmb250LXNpemUoJGlucHV0LWZvbnQtc2l6ZS1zbSk7XG4gIGxpbmUtaGVpZ2h0OiAkaW5wdXQtbGluZS1oZWlnaHQtc207XG4gIEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoJGlucHV0LWJvcmRlci1yYWRpdXMtc20pO1xufVxuXG4uaW5wdXQtZ3JvdXAtbGcgPiAuY3VzdG9tLXNlbGVjdCxcbi5pbnB1dC1ncm91cC1zbSA+IC5jdXN0b20tc2VsZWN0IHtcbiAgcGFkZGluZy1yaWdodDogJGN1c3RvbS1zZWxlY3QtcGFkZGluZy14ICsgJGN1c3RvbS1zZWxlY3QtaW5kaWNhdG9yLXBhZGRpbmc7XG59XG5cblxuLy8gUHJlcGVuZCBhbmQgYXBwZW5kIHJvdW5kZWQgY29ybmVyc1xuLy9cbi8vIFRoZXNlIHJ1bGVzZXRzIG11c3QgY29tZSBhZnRlciB0aGUgc2l6aW5nIG9uZXMgdG8gcHJvcGVybHkgb3ZlcnJpZGUgc20gYW5kIGxnXG4vLyBib3JkZXItcmFkaXVzIHZhbHVlcyB3aGVuIGV4dGVuZGluZy4gVGhleSdyZSBtb3JlIHNwZWNpZmljIHRoYW4gd2UnZCBsaWtlXG4vLyB3aXRoIHRoZSBgLmlucHV0LWdyb3VwID5gIHBhcnQsIGJ1dCB3aXRob3V0IGl0LCB3ZSBjYW5ub3Qgb3ZlcnJpZGUgdGhlIHNpemluZy5cblxuXG4uaW5wdXQtZ3JvdXAgPiAuaW5wdXQtZ3JvdXAtcHJlcGVuZCA+IC5idG4sXG4uaW5wdXQtZ3JvdXAgPiAuaW5wdXQtZ3JvdXAtcHJlcGVuZCA+IC5pbnB1dC1ncm91cC10ZXh0LFxuLmlucHV0LWdyb3VwID4gLmlucHV0LWdyb3VwLWFwcGVuZDpub3QoOmxhc3QtY2hpbGQpID4gLmJ0bixcbi5pbnB1dC1ncm91cCA+IC5pbnB1dC1ncm91cC1hcHBlbmQ6bm90KDpsYXN0LWNoaWxkKSA+IC5pbnB1dC1ncm91cC10ZXh0LFxuLmlucHV0LWdyb3VwID4gLmlucHV0LWdyb3VwLWFwcGVuZDpsYXN0LWNoaWxkID4gLmJ0bjpub3QoOmxhc3QtY2hpbGQpOm5vdCguZHJvcGRvd24tdG9nZ2xlKSxcbi5pbnB1dC1ncm91cCA+IC5pbnB1dC1ncm91cC1hcHBlbmQ6bGFzdC1jaGlsZCA+IC5pbnB1dC1ncm91cC10ZXh0Om5vdCg6bGFzdC1jaGlsZCkge1xuICBAaW5jbHVkZSBib3JkZXItcmlnaHQtcmFkaXVzKDApO1xufVxuXG4uaW5wdXQtZ3JvdXAgPiAuaW5wdXQtZ3JvdXAtYXBwZW5kID4gLmJ0bixcbi5pbnB1dC1ncm91cCA+IC5pbnB1dC1ncm91cC1hcHBlbmQgPiAuaW5wdXQtZ3JvdXAtdGV4dCxcbi5pbnB1dC1ncm91cCA+IC5pbnB1dC1ncm91cC1wcmVwZW5kOm5vdCg6Zmlyc3QtY2hpbGQpID4gLmJ0bixcbi5pbnB1dC1ncm91cCA+IC5pbnB1dC1ncm91cC1wcmVwZW5kOm5vdCg6Zmlyc3QtY2hpbGQpID4gLmlucHV0LWdyb3VwLXRleHQsXG4uaW5wdXQtZ3JvdXAgPiAuaW5wdXQtZ3JvdXAtcHJlcGVuZDpmaXJzdC1jaGlsZCA+IC5idG46bm90KDpmaXJzdC1jaGlsZCksXG4uaW5wdXQtZ3JvdXAgPiAuaW5wdXQtZ3JvdXAtcHJlcGVuZDpmaXJzdC1jaGlsZCA+IC5pbnB1dC1ncm91cC10ZXh0Om5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgQGluY2x1ZGUgYm9yZGVyLWxlZnQtcmFkaXVzKDApO1xufVxuIiwiLy8gRW1iZWRkZWQgaWNvbnMgZnJvbSBPcGVuIEljb25pYy5cbi8vIFJlbGVhc2VkIHVuZGVyIE1JVCBhbmQgY29weXJpZ2h0IDIwMTQgV2F5YnVyeS5cbi8vIGh0dHBzOi8vdXNlaWNvbmljLmNvbS9vcGVuXG5cblxuLy8gQ2hlY2tib3hlcyBhbmQgcmFkaW9zXG4vL1xuLy8gQmFzZSBjbGFzcyB0YWtlcyBjYXJlIG9mIGFsbCB0aGUga2V5IGJlaGF2aW9yYWwgYXNwZWN0cy5cblxuLmN1c3RvbS1jb250cm9sIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWluLWhlaWdodDogJGZvbnQtc2l6ZS1iYXNlICogJGxpbmUtaGVpZ2h0LWJhc2U7XG4gIHBhZGRpbmctbGVmdDogJGN1c3RvbS1jb250cm9sLWd1dHRlciArICRjdXN0b20tY29udHJvbC1pbmRpY2F0b3Itc2l6ZTtcbn1cblxuLmN1c3RvbS1jb250cm9sLWlubGluZSB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBtYXJnaW4tcmlnaHQ6ICRjdXN0b20tY29udHJvbC1zcGFjZXIteDtcbn1cblxuLmN1c3RvbS1jb250cm9sLWlucHV0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAtMTsgLy8gUHV0IHRoZSBpbnB1dCBiZWhpbmQgdGhlIGxhYmVsIHNvIGl0IGRvZXNuJ3Qgb3ZlcmxheSB0ZXh0XG4gIG9wYWNpdHk6IDA7XG5cbiAgJjpjaGVja2VkIH4gLmN1c3RvbS1jb250cm9sLWxhYmVsOjpiZWZvcmUge1xuICAgIGNvbG9yOiAkY3VzdG9tLWNvbnRyb2wtaW5kaWNhdG9yLWNoZWNrZWQtY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkY3VzdG9tLWNvbnRyb2wtaW5kaWNhdG9yLWNoZWNrZWQtYm9yZGVyLWNvbG9yO1xuICAgIEBpbmNsdWRlIGdyYWRpZW50LWJnKCRjdXN0b20tY29udHJvbC1pbmRpY2F0b3ItY2hlY2tlZC1iZyk7XG4gICAgQGluY2x1ZGUgYm94LXNoYWRvdygkY3VzdG9tLWNvbnRyb2wtaW5kaWNhdG9yLWNoZWNrZWQtYm94LXNoYWRvdyk7XG4gIH1cblxuICAmOmZvY3VzIH4gLmN1c3RvbS1jb250cm9sLWxhYmVsOjpiZWZvcmUge1xuICAgIC8vIHRoZSBtaXhpbiBpcyBub3QgdXNlZCBoZXJlIHRvIG1ha2Ugc3VyZSB0aGVyZSBpcyBmZWVkYmFja1xuICAgIEBpZiAkZW5hYmxlLXNoYWRvd3Mge1xuICAgICAgYm94LXNoYWRvdzogJGlucHV0LWJveC1zaGFkb3csICRpbnB1dC1mb2N1cy1ib3gtc2hhZG93O1xuICAgIH0gQGVsc2Uge1xuICAgICAgYm94LXNoYWRvdzogJGN1c3RvbS1jb250cm9sLWluZGljYXRvci1mb2N1cy1ib3gtc2hhZG93O1xuICAgIH1cbiAgfVxuXG4gICY6Zm9jdXM6bm90KDpjaGVja2VkKSB+IC5jdXN0b20tY29udHJvbC1sYWJlbDo6YmVmb3JlIHtcbiAgICBib3JkZXItY29sb3I6ICRjdXN0b20tY29udHJvbC1pbmRpY2F0b3ItZm9jdXMtYm9yZGVyLWNvbG9yO1xuICB9XG5cbiAgJjpub3QoOmRpc2FibGVkKTphY3RpdmUgfiAuY3VzdG9tLWNvbnRyb2wtbGFiZWw6OmJlZm9yZSB7XG4gICAgY29sb3I6ICRjdXN0b20tY29udHJvbC1pbmRpY2F0b3ItYWN0aXZlLWNvbG9yO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjdXN0b20tY29udHJvbC1pbmRpY2F0b3ItYWN0aXZlLWJnO1xuICAgIGJvcmRlci1jb2xvcjogJGN1c3RvbS1jb250cm9sLWluZGljYXRvci1hY3RpdmUtYm9yZGVyLWNvbG9yO1xuICAgIEBpbmNsdWRlIGJveC1zaGFkb3coJGN1c3RvbS1jb250cm9sLWluZGljYXRvci1hY3RpdmUtYm94LXNoYWRvdyk7XG4gIH1cblxuICAmOmRpc2FibGVkIHtcbiAgICB+IC5jdXN0b20tY29udHJvbC1sYWJlbCB7XG4gICAgICBjb2xvcjogJGN1c3RvbS1jb250cm9sLWxhYmVsLWRpc2FibGVkLWNvbG9yO1xuXG4gICAgICAmOjpiZWZvcmUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY3VzdG9tLWNvbnRyb2wtaW5kaWNhdG9yLWRpc2FibGVkLWJnO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBDdXN0b20gY29udHJvbCBpbmRpY2F0b3JzXG4vL1xuLy8gQnVpbGQgdGhlIGN1c3RvbSBjb250cm9scyBvdXQgb2YgcHNldWRvLWVsZW1lbnRzLlxuXG4uY3VzdG9tLWNvbnRyb2wtbGFiZWwge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG5cbiAgLy8gQmFja2dyb3VuZC1jb2xvciBhbmQgKHdoZW4gZW5hYmxlZCkgZ3JhZGllbnRcbiAgJjo6YmVmb3JlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAoJGZvbnQtc2l6ZS1iYXNlICogJGxpbmUtaGVpZ2h0LWJhc2UgLSAkY3VzdG9tLWNvbnRyb2wtaW5kaWNhdG9yLXNpemUpIC8gMjtcbiAgICBsZWZ0OiAtKCRjdXN0b20tY29udHJvbC1ndXR0ZXIgKyAkY3VzdG9tLWNvbnRyb2wtaW5kaWNhdG9yLXNpemUpO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAkY3VzdG9tLWNvbnRyb2wtaW5kaWNhdG9yLXNpemU7XG4gICAgaGVpZ2h0OiAkY3VzdG9tLWNvbnRyb2wtaW5kaWNhdG9yLXNpemU7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY3VzdG9tLWNvbnRyb2wtaW5kaWNhdG9yLWJnO1xuICAgIGJvcmRlcjogJGN1c3RvbS1jb250cm9sLWluZGljYXRvci1ib3JkZXItY29sb3Igc29saWQgJGN1c3RvbS1jb250cm9sLWluZGljYXRvci1ib3JkZXItd2lkdGg7XG4gICAgQGluY2x1ZGUgYm94LXNoYWRvdygkY3VzdG9tLWNvbnRyb2wtaW5kaWNhdG9yLWJveC1zaGFkb3cpO1xuICB9XG5cbiAgLy8gRm9yZWdyb3VuZCAoaWNvbilcbiAgJjo6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6ICgkZm9udC1zaXplLWJhc2UgKiAkbGluZS1oZWlnaHQtYmFzZSAtICRjdXN0b20tY29udHJvbC1pbmRpY2F0b3Itc2l6ZSkgLyAyO1xuICAgIGxlZnQ6IC0oJGN1c3RvbS1jb250cm9sLWd1dHRlciArICRjdXN0b20tY29udHJvbC1pbmRpY2F0b3Itc2l6ZSk7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6ICRjdXN0b20tY29udHJvbC1pbmRpY2F0b3Itc2l6ZTtcbiAgICBoZWlnaHQ6ICRjdXN0b20tY29udHJvbC1pbmRpY2F0b3Itc2l6ZTtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGJhY2tncm91bmQ6IG5vLXJlcGVhdCA1MCUgLyAjeyRjdXN0b20tY29udHJvbC1pbmRpY2F0b3ItYmctc2l6ZX07XG4gIH1cbn1cblxuXG4vLyBDaGVja2JveGVzXG4vL1xuLy8gVHdlYWsganVzdCBhIGZldyB0aGluZ3MgZm9yIGNoZWNrYm94ZXMuXG5cbi5jdXN0b20tY2hlY2tib3gge1xuICAuY3VzdG9tLWNvbnRyb2wtbGFiZWw6OmJlZm9yZSB7XG4gICAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cygkY3VzdG9tLWNoZWNrYm94LWluZGljYXRvci1ib3JkZXItcmFkaXVzKTtcbiAgfVxuXG4gIC5jdXN0b20tY29udHJvbC1pbnB1dDpjaGVja2VkIH4gLmN1c3RvbS1jb250cm9sLWxhYmVsIHtcbiAgICAmOjphZnRlciB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiAkY3VzdG9tLWNoZWNrYm94LWluZGljYXRvci1pY29uLWNoZWNrZWQ7XG4gICAgfVxuICB9XG5cbiAgLmN1c3RvbS1jb250cm9sLWlucHV0OmluZGV0ZXJtaW5hdGUgfiAuY3VzdG9tLWNvbnRyb2wtbGFiZWwge1xuICAgICY6OmJlZm9yZSB7XG4gICAgICBib3JkZXItY29sb3I6ICRjdXN0b20tY2hlY2tib3gtaW5kaWNhdG9yLWluZGV0ZXJtaW5hdGUtYm9yZGVyLWNvbG9yO1xuICAgICAgQGluY2x1ZGUgZ3JhZGllbnQtYmcoJGN1c3RvbS1jaGVja2JveC1pbmRpY2F0b3ItaW5kZXRlcm1pbmF0ZS1iZyk7XG4gICAgICBAaW5jbHVkZSBib3gtc2hhZG93KCRjdXN0b20tY2hlY2tib3gtaW5kaWNhdG9yLWluZGV0ZXJtaW5hdGUtYm94LXNoYWRvdyk7XG4gICAgfVxuICAgICY6OmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6ICRjdXN0b20tY2hlY2tib3gtaW5kaWNhdG9yLWljb24taW5kZXRlcm1pbmF0ZTtcbiAgICB9XG4gIH1cblxuICAuY3VzdG9tLWNvbnRyb2wtaW5wdXQ6ZGlzYWJsZWQge1xuICAgICY6Y2hlY2tlZCB+IC5jdXN0b20tY29udHJvbC1sYWJlbDo6YmVmb3JlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjdXN0b20tY29udHJvbC1pbmRpY2F0b3ItY2hlY2tlZC1kaXNhYmxlZC1iZztcbiAgICB9XG4gICAgJjppbmRldGVybWluYXRlIH4gLmN1c3RvbS1jb250cm9sLWxhYmVsOjpiZWZvcmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGN1c3RvbS1jb250cm9sLWluZGljYXRvci1jaGVja2VkLWRpc2FibGVkLWJnO1xuICAgIH1cbiAgfVxufVxuXG4vLyBSYWRpb3Ncbi8vXG4vLyBUd2VhayBqdXN0IGEgZmV3IHRoaW5ncyBmb3IgcmFkaW9zLlxuXG4uY3VzdG9tLXJhZGlvIHtcbiAgLmN1c3RvbS1jb250cm9sLWxhYmVsOjpiZWZvcmUge1xuICAgIC8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBwcm9wZXJ0eS1ibGFja2xpc3RcbiAgICBib3JkZXItcmFkaXVzOiAkY3VzdG9tLXJhZGlvLWluZGljYXRvci1ib3JkZXItcmFkaXVzO1xuICB9XG5cbiAgLmN1c3RvbS1jb250cm9sLWlucHV0OmNoZWNrZWQgfiAuY3VzdG9tLWNvbnRyb2wtbGFiZWwge1xuICAgICY6OmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6ICRjdXN0b20tcmFkaW8taW5kaWNhdG9yLWljb24tY2hlY2tlZDtcbiAgICB9XG4gIH1cblxuICAuY3VzdG9tLWNvbnRyb2wtaW5wdXQ6ZGlzYWJsZWQge1xuICAgICY6Y2hlY2tlZCB+IC5jdXN0b20tY29udHJvbC1sYWJlbDo6YmVmb3JlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjdXN0b20tY29udHJvbC1pbmRpY2F0b3ItY2hlY2tlZC1kaXNhYmxlZC1iZztcbiAgICB9XG4gIH1cbn1cblxuXG4vLyBzd2l0Y2hlc1xuLy9cbi8vIFR3ZWFrIGEgZmV3IHRoaW5ncyBmb3Igc3dpdGNoZXNcblxuLmN1c3RvbS1zd2l0Y2gge1xuICBwYWRkaW5nLWxlZnQ6ICRjdXN0b20tc3dpdGNoLXdpZHRoICsgJGN1c3RvbS1jb250cm9sLWd1dHRlcjtcblxuICAuY3VzdG9tLWNvbnRyb2wtbGFiZWwge1xuICAgICY6OmJlZm9yZSB7XG4gICAgICBsZWZ0OiAtKCRjdXN0b20tc3dpdGNoLXdpZHRoICsgJGN1c3RvbS1jb250cm9sLWd1dHRlcik7XG4gICAgICB3aWR0aDogJGN1c3RvbS1zd2l0Y2gtd2lkdGg7XG4gICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuICAgICAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHByb3BlcnR5LWJsYWNrbGlzdFxuICAgICAgYm9yZGVyLXJhZGl1czogJGN1c3RvbS1zd2l0Y2gtaW5kaWNhdG9yLWJvcmRlci1yYWRpdXM7XG4gICAgfVxuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgdG9wOiBjYWxjKCN7KCgkZm9udC1zaXplLWJhc2UgKiAkbGluZS1oZWlnaHQtYmFzZSAtICRjdXN0b20tY29udHJvbC1pbmRpY2F0b3Itc2l6ZSkgLyAyKX0gKyAjeyRjdXN0b20tY29udHJvbC1pbmRpY2F0b3ItYm9yZGVyLXdpZHRoICogMn0pO1xuICAgICAgbGVmdDogY2FsYygjey0oJGN1c3RvbS1zd2l0Y2gtd2lkdGggKyAkY3VzdG9tLWNvbnRyb2wtZ3V0dGVyKX0gKyAjeyRjdXN0b20tY29udHJvbC1pbmRpY2F0b3ItYm9yZGVyLXdpZHRoICogMn0pO1xuICAgICAgd2lkdGg6ICRjdXN0b20tc3dpdGNoLWluZGljYXRvci1zaXplO1xuICAgICAgaGVpZ2h0OiAkY3VzdG9tLXN3aXRjaC1pbmRpY2F0b3Itc2l6ZTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjdXN0b20tY29udHJvbC1pbmRpY2F0b3ItYm9yZGVyLWNvbG9yO1xuICAgICAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHByb3BlcnR5LWJsYWNrbGlzdFxuICAgICAgYm9yZGVyLXJhZGl1czogJGN1c3RvbS1zd2l0Y2gtaW5kaWNhdG9yLWJvcmRlci1yYWRpdXM7XG4gICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKHRyYW5zZm9ybSAuMTVzIGVhc2UtaW4tb3V0LCAkY3VzdG9tLWZvcm1zLXRyYW5zaXRpb24pO1xuICAgIH1cbiAgfVxuXG4gIC5jdXN0b20tY29udHJvbC1pbnB1dDpjaGVja2VkIH4gLmN1c3RvbS1jb250cm9sLWxhYmVsIHtcbiAgICAmOjphZnRlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY3VzdG9tLWNvbnRyb2wtaW5kaWNhdG9yLWJnO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKCRjdXN0b20tc3dpdGNoLXdpZHRoIC0gJGN1c3RvbS1jb250cm9sLWluZGljYXRvci1zaXplKTtcbiAgICB9XG4gIH1cblxuICAuY3VzdG9tLWNvbnRyb2wtaW5wdXQ6ZGlzYWJsZWQge1xuICAgICY6Y2hlY2tlZCB+IC5jdXN0b20tY29udHJvbC1sYWJlbDo6YmVmb3JlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjdXN0b20tY29udHJvbC1pbmRpY2F0b3ItY2hlY2tlZC1kaXNhYmxlZC1iZztcbiAgICB9XG4gIH1cbn1cblxuXG4vLyBTZWxlY3Rcbi8vXG4vLyBSZXBsYWNlcyB0aGUgYnJvd3NlciBkZWZhdWx0IHNlbGVjdCB3aXRoIGEgY3VzdG9tIG9uZSwgbW9zdGx5IHB1bGxlZCBmcm9tXG4vLyBodHRwczovL3ByaW1lci5naXRodWIuaW8vLlxuLy9cblxuLmN1c3RvbS1zZWxlY3Qge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6ICRjdXN0b20tc2VsZWN0LWhlaWdodDtcbiAgcGFkZGluZzogJGN1c3RvbS1zZWxlY3QtcGFkZGluZy15ICgkY3VzdG9tLXNlbGVjdC1wYWRkaW5nLXggKyAkY3VzdG9tLXNlbGVjdC1pbmRpY2F0b3ItcGFkZGluZykgJGN1c3RvbS1zZWxlY3QtcGFkZGluZy15ICRjdXN0b20tc2VsZWN0LXBhZGRpbmcteDtcbiAgZm9udC1mYW1pbHk6ICRjdXN0b20tc2VsZWN0LWZvbnQtZmFtaWx5O1xuICBAaW5jbHVkZSBmb250LXNpemUoJGN1c3RvbS1zZWxlY3QtZm9udC1zaXplKTtcbiAgZm9udC13ZWlnaHQ6ICRjdXN0b20tc2VsZWN0LWZvbnQtd2VpZ2h0O1xuICBsaW5lLWhlaWdodDogJGN1c3RvbS1zZWxlY3QtbGluZS1oZWlnaHQ7XG4gIGNvbG9yOiAkY3VzdG9tLXNlbGVjdC1jb2xvcjtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgYmFja2dyb3VuZDogJGN1c3RvbS1zZWxlY3QtYmFja2dyb3VuZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGN1c3RvbS1zZWxlY3QtYmc7XG4gIGJvcmRlcjogJGN1c3RvbS1zZWxlY3QtYm9yZGVyLXdpZHRoIHNvbGlkICRjdXN0b20tc2VsZWN0LWJvcmRlci1jb2xvcjtcbiAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cygkY3VzdG9tLXNlbGVjdC1ib3JkZXItcmFkaXVzLCAwKTtcbiAgQGluY2x1ZGUgYm94LXNoYWRvdygkY3VzdG9tLXNlbGVjdC1ib3gtc2hhZG93KTtcbiAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAmOmZvY3VzIHtcbiAgICBib3JkZXItY29sb3I6ICRjdXN0b20tc2VsZWN0LWZvY3VzLWJvcmRlci1jb2xvcjtcbiAgICBvdXRsaW5lOiAwO1xuICAgIEBpZiAkZW5hYmxlLXNoYWRvd3Mge1xuICAgICAgYm94LXNoYWRvdzogJGN1c3RvbS1zZWxlY3QtYm94LXNoYWRvdywgJGN1c3RvbS1zZWxlY3QtZm9jdXMtYm94LXNoYWRvdztcbiAgICB9IEBlbHNlIHtcbiAgICAgIGJveC1zaGFkb3c6ICRjdXN0b20tc2VsZWN0LWZvY3VzLWJveC1zaGFkb3c7XG4gICAgfVxuXG4gICAgJjo6LW1zLXZhbHVlIHtcbiAgICAgIC8vIEZvciB2aXN1YWwgY29uc2lzdGVuY3kgd2l0aCBvdGhlciBwbGF0Zm9ybXMvYnJvd3NlcnMsXG4gICAgICAvLyBzdXBwcmVzcyB0aGUgZGVmYXVsdCB3aGl0ZSB0ZXh0IG9uIGJsdWUgYmFja2dyb3VuZCBoaWdobGlnaHQgZ2l2ZW4gdG9cbiAgICAgIC8vIHRoZSBzZWxlY3RlZCBvcHRpb24gdGV4dCB3aGVuIHRoZSAoc3RpbGwgY2xvc2VkKSA8c2VsZWN0PiByZWNlaXZlcyBmb2N1c1xuICAgICAgLy8gaW4gSUUgYW5kICh1bmRlciBjZXJ0YWluIGNvbmRpdGlvbnMpIEVkZ2UuXG4gICAgICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2lzc3Vlcy8xOTM5OC5cbiAgICAgIGNvbG9yOiAkaW5wdXQtY29sb3I7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmc7XG4gICAgfVxuICB9XG5cbiAgJlttdWx0aXBsZV0sXG4gICZbc2l6ZV06bm90KFtzaXplPVwiMVwiXSkge1xuICAgIGhlaWdodDogYXV0bztcbiAgICBwYWRkaW5nLXJpZ2h0OiAkY3VzdG9tLXNlbGVjdC1wYWRkaW5nLXg7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgfVxuXG4gICY6ZGlzYWJsZWQge1xuICAgIGNvbG9yOiAkY3VzdG9tLXNlbGVjdC1kaXNhYmxlZC1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY3VzdG9tLXNlbGVjdC1kaXNhYmxlZC1iZztcbiAgfVxuXG4gIC8vIEhpZGVzIHRoZSBkZWZhdWx0IGNhcmV0IGluIElFMTFcbiAgJjo6LW1zLWV4cGFuZCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4uY3VzdG9tLXNlbGVjdC1zbSB7XG4gIGhlaWdodDogJGN1c3RvbS1zZWxlY3QtaGVpZ2h0LXNtO1xuICBwYWRkaW5nLXRvcDogJGN1c3RvbS1zZWxlY3QtcGFkZGluZy15LXNtO1xuICBwYWRkaW5nLWJvdHRvbTogJGN1c3RvbS1zZWxlY3QtcGFkZGluZy15LXNtO1xuICBwYWRkaW5nLWxlZnQ6ICRjdXN0b20tc2VsZWN0LXBhZGRpbmcteC1zbTtcbiAgQGluY2x1ZGUgZm9udC1zaXplKCRjdXN0b20tc2VsZWN0LWZvbnQtc2l6ZS1zbSk7XG59XG5cbi5jdXN0b20tc2VsZWN0LWxnIHtcbiAgaGVpZ2h0OiAkY3VzdG9tLXNlbGVjdC1oZWlnaHQtbGc7XG4gIHBhZGRpbmctdG9wOiAkY3VzdG9tLXNlbGVjdC1wYWRkaW5nLXktbGc7XG4gIHBhZGRpbmctYm90dG9tOiAkY3VzdG9tLXNlbGVjdC1wYWRkaW5nLXktbGc7XG4gIHBhZGRpbmctbGVmdDogJGN1c3RvbS1zZWxlY3QtcGFkZGluZy14LWxnO1xuICBAaW5jbHVkZSBmb250LXNpemUoJGN1c3RvbS1zZWxlY3QtZm9udC1zaXplLWxnKTtcbn1cblxuXG4vLyBGaWxlXG4vL1xuLy8gQ3VzdG9tIGZpbGUgaW5wdXQuXG5cbi5jdXN0b20tZmlsZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAkY3VzdG9tLWZpbGUtaGVpZ2h0O1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4uY3VzdG9tLWZpbGUtaW5wdXQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDI7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6ICRjdXN0b20tZmlsZS1oZWlnaHQ7XG4gIG1hcmdpbjogMDtcbiAgb3BhY2l0eTogMDtcblxuICAmOmZvY3VzIH4gLmN1c3RvbS1maWxlLWxhYmVsIHtcbiAgICBib3JkZXItY29sb3I6ICRjdXN0b20tZmlsZS1mb2N1cy1ib3JkZXItY29sb3I7XG4gICAgYm94LXNoYWRvdzogJGN1c3RvbS1maWxlLWZvY3VzLWJveC1zaGFkb3c7XG4gIH1cblxuICAmOmRpc2FibGVkIH4gLmN1c3RvbS1maWxlLWxhYmVsIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY3VzdG9tLWZpbGUtZGlzYWJsZWQtYmc7XG4gIH1cblxuICBAZWFjaCAkbGFuZywgJHZhbHVlIGluICRjdXN0b20tZmlsZS10ZXh0IHtcbiAgICAmOmxhbmcoI3skbGFuZ30pIH4gLmN1c3RvbS1maWxlLWxhYmVsOjphZnRlciB7XG4gICAgICBjb250ZW50OiAkdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgfiAuY3VzdG9tLWZpbGUtbGFiZWxbZGF0YS1icm93c2VdOjphZnRlciB7XG4gICAgY29udGVudDogYXR0cihkYXRhLWJyb3dzZSk7XG4gIH1cbn1cblxuLmN1c3RvbS1maWxlLWxhYmVsIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAxO1xuICBoZWlnaHQ6ICRjdXN0b20tZmlsZS1oZWlnaHQ7XG4gIHBhZGRpbmc6ICRjdXN0b20tZmlsZS1wYWRkaW5nLXkgJGN1c3RvbS1maWxlLXBhZGRpbmcteDtcbiAgZm9udC1mYW1pbHk6ICRjdXN0b20tZmlsZS1mb250LWZhbWlseTtcbiAgZm9udC13ZWlnaHQ6ICRjdXN0b20tZmlsZS1mb250LXdlaWdodDtcbiAgbGluZS1oZWlnaHQ6ICRjdXN0b20tZmlsZS1saW5lLWhlaWdodDtcbiAgY29sb3I6ICRjdXN0b20tZmlsZS1jb2xvcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGN1c3RvbS1maWxlLWJnO1xuICBib3JkZXI6ICRjdXN0b20tZmlsZS1ib3JkZXItd2lkdGggc29saWQgJGN1c3RvbS1maWxlLWJvcmRlci1jb2xvcjtcbiAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cygkY3VzdG9tLWZpbGUtYm9yZGVyLXJhZGl1cyk7XG4gIEBpbmNsdWRlIGJveC1zaGFkb3coJGN1c3RvbS1maWxlLWJveC1zaGFkb3cpO1xuXG4gICY6OmFmdGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICB6LWluZGV4OiAzO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogJGN1c3RvbS1maWxlLWhlaWdodC1pbm5lcjtcbiAgICBwYWRkaW5nOiAkY3VzdG9tLWZpbGUtcGFkZGluZy15ICRjdXN0b20tZmlsZS1wYWRkaW5nLXg7XG4gICAgbGluZS1oZWlnaHQ6ICRjdXN0b20tZmlsZS1saW5lLWhlaWdodDtcbiAgICBjb2xvcjogJGN1c3RvbS1maWxlLWJ1dHRvbi1jb2xvcjtcbiAgICBjb250ZW50OiBcIkJyb3dzZVwiO1xuICAgIEBpbmNsdWRlIGdyYWRpZW50LWJnKCRjdXN0b20tZmlsZS1idXR0b24tYmcpO1xuICAgIGJvcmRlci1sZWZ0OiBpbmhlcml0O1xuICAgIEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoMCAkY3VzdG9tLWZpbGUtYm9yZGVyLXJhZGl1cyAkY3VzdG9tLWZpbGUtYm9yZGVyLXJhZGl1cyAwKTtcbiAgfVxufVxuXG4vLyBSYW5nZVxuLy9cbi8vIFN0eWxlIHJhbmdlIGlucHV0cyB0aGUgc2FtZSBhY3Jvc3MgYnJvd3NlcnMuIFZlbmRvci1zcGVjaWZpYyBydWxlcyBmb3IgcHNldWRvXG4vLyBlbGVtZW50cyBjYW5ub3QgYmUgbWl4ZWQuIEFzIHN1Y2gsIHRoZXJlIGFyZSBubyBzaGFyZWQgc3R5bGVzIGZvciBmb2N1cyBvclxuLy8gYWN0aXZlIHN0YXRlcyBvbiBwcmVmaXhlZCBzZWxlY3RvcnMuXG5cbi5jdXN0b20tcmFuZ2Uge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBjYWxjKCN7JGN1c3RvbS1yYW5nZS10aHVtYi1oZWlnaHR9ICsgI3skY3VzdG9tLXJhbmdlLXRodW1iLWZvY3VzLWJveC1zaGFkb3ctd2lkdGggKiAyfSk7XG4gIHBhZGRpbmc6IDA7IC8vIE5lZWQgdG8gcmVzZXQgcGFkZGluZ1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAmOmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xuXG4gICAgLy8gUHNldWRvLWVsZW1lbnRzIG11c3QgYmUgc3BsaXQgYWNyb3NzIG11bHRpcGxlIHJ1bGVzZXRzIHRvIGhhdmUgYW4gZWZmZWN0LlxuICAgIC8vIE5vIGJveC1zaGFkb3coKSBtaXhpbiBmb3IgZm9jdXMgYWNjZXNzaWJpbGl0eS5cbiAgICAmOjotd2Via2l0LXNsaWRlci10aHVtYiB7IGJveC1zaGFkb3c6ICRjdXN0b20tcmFuZ2UtdGh1bWItZm9jdXMtYm94LXNoYWRvdzsgfVxuICAgICY6Oi1tb3otcmFuZ2UtdGh1bWIgICAgIHsgYm94LXNoYWRvdzogJGN1c3RvbS1yYW5nZS10aHVtYi1mb2N1cy1ib3gtc2hhZG93OyB9XG4gICAgJjo6LW1zLXRodW1iICAgICAgICAgICAgeyBib3gtc2hhZG93OiAkY3VzdG9tLXJhbmdlLXRodW1iLWZvY3VzLWJveC1zaGFkb3c7IH1cbiAgfVxuXG4gICY6Oi1tb3otZm9jdXMtb3V0ZXIge1xuICAgIGJvcmRlcjogMDtcbiAgfVxuXG4gICY6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHtcbiAgICB3aWR0aDogJGN1c3RvbS1yYW5nZS10aHVtYi13aWR0aDtcbiAgICBoZWlnaHQ6ICRjdXN0b20tcmFuZ2UtdGh1bWItaGVpZ2h0O1xuICAgIG1hcmdpbi10b3A6ICgkY3VzdG9tLXJhbmdlLXRyYWNrLWhlaWdodCAtICRjdXN0b20tcmFuZ2UtdGh1bWItaGVpZ2h0KSAvIDI7IC8vIFdlYmtpdCBzcGVjaWZpY1xuICAgIEBpbmNsdWRlIGdyYWRpZW50LWJnKCRjdXN0b20tcmFuZ2UtdGh1bWItYmcpO1xuICAgIGJvcmRlcjogJGN1c3RvbS1yYW5nZS10aHVtYi1ib3JkZXI7XG4gICAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cygkY3VzdG9tLXJhbmdlLXRodW1iLWJvcmRlci1yYWRpdXMpO1xuICAgIEBpbmNsdWRlIGJveC1zaGFkb3coJGN1c3RvbS1yYW5nZS10aHVtYi1ib3gtc2hhZG93KTtcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKCRjdXN0b20tZm9ybXMtdHJhbnNpdGlvbik7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICY6YWN0aXZlIHtcbiAgICAgIEBpbmNsdWRlIGdyYWRpZW50LWJnKCRjdXN0b20tcmFuZ2UtdGh1bWItYWN0aXZlLWJnKTtcbiAgICB9XG4gIH1cblxuICAmOjotd2Via2l0LXNsaWRlci1ydW5uYWJsZS10cmFjayB7XG4gICAgd2lkdGg6ICRjdXN0b20tcmFuZ2UtdHJhY2std2lkdGg7XG4gICAgaGVpZ2h0OiAkY3VzdG9tLXJhbmdlLXRyYWNrLWhlaWdodDtcbiAgICBjb2xvcjogdHJhbnNwYXJlbnQ7IC8vIFdoeT9cbiAgICBjdXJzb3I6ICRjdXN0b20tcmFuZ2UtdHJhY2stY3Vyc29yO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjdXN0b20tcmFuZ2UtdHJhY2stYmc7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBAaW5jbHVkZSBib3JkZXItcmFkaXVzKCRjdXN0b20tcmFuZ2UtdHJhY2stYm9yZGVyLXJhZGl1cyk7XG4gICAgQGluY2x1ZGUgYm94LXNoYWRvdygkY3VzdG9tLXJhbmdlLXRyYWNrLWJveC1zaGFkb3cpO1xuICB9XG5cbiAgJjo6LW1vei1yYW5nZS10aHVtYiB7XG4gICAgd2lkdGg6ICRjdXN0b20tcmFuZ2UtdGh1bWItd2lkdGg7XG4gICAgaGVpZ2h0OiAkY3VzdG9tLXJhbmdlLXRodW1iLWhlaWdodDtcbiAgICBAaW5jbHVkZSBncmFkaWVudC1iZygkY3VzdG9tLXJhbmdlLXRodW1iLWJnKTtcbiAgICBib3JkZXI6ICRjdXN0b20tcmFuZ2UtdGh1bWItYm9yZGVyO1xuICAgIEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoJGN1c3RvbS1yYW5nZS10aHVtYi1ib3JkZXItcmFkaXVzKTtcbiAgICBAaW5jbHVkZSBib3gtc2hhZG93KCRjdXN0b20tcmFuZ2UtdGh1bWItYm94LXNoYWRvdyk7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbigkY3VzdG9tLWZvcm1zLXRyYW5zaXRpb24pO1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAmOmFjdGl2ZSB7XG4gICAgICBAaW5jbHVkZSBncmFkaWVudC1iZygkY3VzdG9tLXJhbmdlLXRodW1iLWFjdGl2ZS1iZyk7XG4gICAgfVxuICB9XG5cbiAgJjo6LW1vei1yYW5nZS10cmFjayB7XG4gICAgd2lkdGg6ICRjdXN0b20tcmFuZ2UtdHJhY2std2lkdGg7XG4gICAgaGVpZ2h0OiAkY3VzdG9tLXJhbmdlLXRyYWNrLWhlaWdodDtcbiAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgY3Vyc29yOiAkY3VzdG9tLXJhbmdlLXRyYWNrLWN1cnNvcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY3VzdG9tLXJhbmdlLXRyYWNrLWJnO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7IC8vIEZpcmVmb3ggc3BlY2lmaWM/XG4gICAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cygkY3VzdG9tLXJhbmdlLXRyYWNrLWJvcmRlci1yYWRpdXMpO1xuICAgIEBpbmNsdWRlIGJveC1zaGFkb3coJGN1c3RvbS1yYW5nZS10cmFjay1ib3gtc2hhZG93KTtcbiAgfVxuXG4gICY6Oi1tcy10aHVtYiB7XG4gICAgd2lkdGg6ICRjdXN0b20tcmFuZ2UtdGh1bWItd2lkdGg7XG4gICAgaGVpZ2h0OiAkY3VzdG9tLXJhbmdlLXRodW1iLWhlaWdodDtcbiAgICBtYXJnaW4tdG9wOiAwOyAvLyBFZGdlIHNwZWNpZmljXG4gICAgbWFyZ2luLXJpZ2h0OiAkY3VzdG9tLXJhbmdlLXRodW1iLWZvY3VzLWJveC1zaGFkb3ctd2lkdGg7IC8vIFdvcmthcm91bmQgdGhhdCBvdmVyZmxvd2VkIGJveC1zaGFkb3cgaXMgaGlkZGVuLlxuICAgIG1hcmdpbi1sZWZ0OiAkY3VzdG9tLXJhbmdlLXRodW1iLWZvY3VzLWJveC1zaGFkb3ctd2lkdGg7ICAvLyBXb3JrYXJvdW5kIHRoYXQgb3ZlcmZsb3dlZCBib3gtc2hhZG93IGlzIGhpZGRlbi5cbiAgICBAaW5jbHVkZSBncmFkaWVudC1iZygkY3VzdG9tLXJhbmdlLXRodW1iLWJnKTtcbiAgICBib3JkZXI6ICRjdXN0b20tcmFuZ2UtdGh1bWItYm9yZGVyO1xuICAgIEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoJGN1c3RvbS1yYW5nZS10aHVtYi1ib3JkZXItcmFkaXVzKTtcbiAgICBAaW5jbHVkZSBib3gtc2hhZG93KCRjdXN0b20tcmFuZ2UtdGh1bWItYm94LXNoYWRvdyk7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbigkY3VzdG9tLWZvcm1zLXRyYW5zaXRpb24pO1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAmOmFjdGl2ZSB7XG4gICAgICBAaW5jbHVkZSBncmFkaWVudC1iZygkY3VzdG9tLXJhbmdlLXRodW1iLWFjdGl2ZS1iZyk7XG4gICAgfVxuICB9XG5cbiAgJjo6LW1zLXRyYWNrIHtcbiAgICB3aWR0aDogJGN1c3RvbS1yYW5nZS10cmFjay13aWR0aDtcbiAgICBoZWlnaHQ6ICRjdXN0b20tcmFuZ2UtdHJhY2staGVpZ2h0O1xuICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBjdXJzb3I6ICRjdXN0b20tcmFuZ2UtdHJhY2stY3Vyc29yO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXdpZHRoOiAkY3VzdG9tLXJhbmdlLXRodW1iLWhlaWdodCAvIDI7XG4gICAgQGluY2x1ZGUgYm94LXNoYWRvdygkY3VzdG9tLXJhbmdlLXRyYWNrLWJveC1zaGFkb3cpO1xuICB9XG5cbiAgJjo6LW1zLWZpbGwtbG93ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjdXN0b20tcmFuZ2UtdHJhY2stYmc7XG4gICAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cygkY3VzdG9tLXJhbmdlLXRyYWNrLWJvcmRlci1yYWRpdXMpO1xuICB9XG5cbiAgJjo6LW1zLWZpbGwtdXBwZXIge1xuICAgIG1hcmdpbi1yaWdodDogMTVweDsgLy8gYXJiaXRyYXJ5P1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjdXN0b20tcmFuZ2UtdHJhY2stYmc7XG4gICAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cygkY3VzdG9tLXJhbmdlLXRyYWNrLWJvcmRlci1yYWRpdXMpO1xuICB9XG5cbiAgJjpkaXNhYmxlZCB7XG4gICAgJjo6LXdlYmtpdC1zbGlkZXItdGh1bWIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGN1c3RvbS1yYW5nZS10aHVtYi1kaXNhYmxlZC1iZztcbiAgICB9XG5cbiAgICAmOjotd2Via2l0LXNsaWRlci1ydW5uYWJsZS10cmFjayB7XG4gICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgfVxuXG4gICAgJjo6LW1vei1yYW5nZS10aHVtYiB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY3VzdG9tLXJhbmdlLXRodW1iLWRpc2FibGVkLWJnO1xuICAgIH1cblxuICAgICY6Oi1tb3otcmFuZ2UtdHJhY2sge1xuICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgIH1cblxuICAgICY6Oi1tcy10aHVtYiB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY3VzdG9tLXJhbmdlLXRodW1iLWRpc2FibGVkLWJnO1xuICAgIH1cbiAgfVxufVxuXG4uY3VzdG9tLWNvbnRyb2wtbGFiZWw6OmJlZm9yZSxcbi5jdXN0b20tZmlsZS1sYWJlbCxcbi5jdXN0b20tc2VsZWN0IHtcbiAgQGluY2x1ZGUgdHJhbnNpdGlvbigkY3VzdG9tLWZvcm1zLXRyYW5zaXRpb24pO1xufVxuIiwiLnBhZ2luYXRpb24ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBAaW5jbHVkZSBsaXN0LXVuc3R5bGVkKCk7XG4gIEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoKTtcbn1cblxuLnBhZ2UtbGluayB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6ICRwYWdpbmF0aW9uLXBhZGRpbmcteSAkcGFnaW5hdGlvbi1wYWRkaW5nLXg7XG4gIG1hcmdpbi1sZWZ0OiAtJHBhZ2luYXRpb24tYm9yZGVyLXdpZHRoO1xuICBsaW5lLWhlaWdodDogJHBhZ2luYXRpb24tbGluZS1oZWlnaHQ7XG4gIGNvbG9yOiAkcGFnaW5hdGlvbi1jb2xvcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHBhZ2luYXRpb24tYmc7XG4gIGJvcmRlcjogJHBhZ2luYXRpb24tYm9yZGVyLXdpZHRoIHNvbGlkICRwYWdpbmF0aW9uLWJvcmRlci1jb2xvcjtcblxuICAmOmhvdmVyIHtcbiAgICB6LWluZGV4OiAyO1xuICAgIGNvbG9yOiAkcGFnaW5hdGlvbi1ob3Zlci1jb2xvcjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHBhZ2luYXRpb24taG92ZXItYmc7XG4gICAgYm9yZGVyLWNvbG9yOiAkcGFnaW5hdGlvbi1ob3Zlci1ib3JkZXItY29sb3I7XG4gIH1cblxuICAmOmZvY3VzIHtcbiAgICB6LWluZGV4OiAyO1xuICAgIG91dGxpbmU6ICRwYWdpbmF0aW9uLWZvY3VzLW91dGxpbmU7XG4gICAgYm94LXNoYWRvdzogJHBhZ2luYXRpb24tZm9jdXMtYm94LXNoYWRvdztcbiAgfVxufVxuXG4ucGFnZS1pdGVtIHtcbiAgJjpmaXJzdC1jaGlsZCB7XG4gICAgLnBhZ2UtbGluayB7XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgIEBpbmNsdWRlIGJvcmRlci1sZWZ0LXJhZGl1cygkYm9yZGVyLXJhZGl1cyk7XG4gICAgfVxuICB9XG4gICY6bGFzdC1jaGlsZCB7XG4gICAgLnBhZ2UtbGluayB7XG4gICAgICBAaW5jbHVkZSBib3JkZXItcmlnaHQtcmFkaXVzKCRib3JkZXItcmFkaXVzKTtcbiAgICB9XG4gIH1cblxuICAmLmFjdGl2ZSAucGFnZS1saW5rIHtcbiAgICB6LWluZGV4OiAxO1xuICAgIGNvbG9yOiAkcGFnaW5hdGlvbi1hY3RpdmUtY29sb3I7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHBhZ2luYXRpb24tYWN0aXZlLWJnO1xuICAgIGJvcmRlci1jb2xvcjogJHBhZ2luYXRpb24tYWN0aXZlLWJvcmRlci1jb2xvcjtcbiAgfVxuXG4gICYuZGlzYWJsZWQgLnBhZ2UtbGluayB7XG4gICAgY29sb3I6ICRwYWdpbmF0aW9uLWRpc2FibGVkLWNvbG9yO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIC8vIE9waW5pb25hdGVkOiByZW1vdmUgdGhlIFwiaGFuZFwiIGN1cnNvciBzZXQgcHJldmlvdXNseSBmb3IgLnBhZ2UtbGlua1xuICAgIGN1cnNvcjogYXV0bztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcGFnaW5hdGlvbi1kaXNhYmxlZC1iZztcbiAgICBib3JkZXItY29sb3I6ICRwYWdpbmF0aW9uLWRpc2FibGVkLWJvcmRlci1jb2xvcjtcbiAgfVxufVxuXG5cbi8vXG4vLyBTaXppbmdcbi8vXG5cbi5wYWdpbmF0aW9uLWxnIHtcbiAgQGluY2x1ZGUgcGFnaW5hdGlvbi1zaXplKCRwYWdpbmF0aW9uLXBhZGRpbmcteS1sZywgJHBhZ2luYXRpb24tcGFkZGluZy14LWxnLCAkZm9udC1zaXplLWxnLCAkbGluZS1oZWlnaHQtbGcsICRib3JkZXItcmFkaXVzLWxnKTtcbn1cblxuLnBhZ2luYXRpb24tc20ge1xuICBAaW5jbHVkZSBwYWdpbmF0aW9uLXNpemUoJHBhZ2luYXRpb24tcGFkZGluZy15LXNtLCAkcGFnaW5hdGlvbi1wYWRkaW5nLXgtc20sICRmb250LXNpemUtc20sICRsaW5lLWhlaWdodC1zbSwgJGJvcmRlci1yYWRpdXMtc20pO1xufVxuIiwiLy8gUGFnaW5hdGlvblxuXG5AbWl4aW4gcGFnaW5hdGlvbi1zaXplKCRwYWRkaW5nLXksICRwYWRkaW5nLXgsICRmb250LXNpemUsICRsaW5lLWhlaWdodCwgJGJvcmRlci1yYWRpdXMpIHtcbiAgLnBhZ2UtbGluayB7XG4gICAgcGFkZGluZzogJHBhZGRpbmcteSAkcGFkZGluZy14O1xuICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgkZm9udC1zaXplKTtcbiAgICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0O1xuICB9XG5cbiAgLnBhZ2UtaXRlbSB7XG4gICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAucGFnZS1saW5rIHtcbiAgICAgICAgQGluY2x1ZGUgYm9yZGVyLWxlZnQtcmFkaXVzKCRib3JkZXItcmFkaXVzKTtcbiAgICAgIH1cbiAgICB9XG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgIC5wYWdlLWxpbmsge1xuICAgICAgICBAaW5jbHVkZSBib3JkZXItcmlnaHQtcmFkaXVzKCRib3JkZXItcmFkaXVzKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEJhc2UgY2xhc3Ncbi8vXG4vLyBSZXF1aXJlcyBvbmUgb2YgdGhlIGNvbnRleHR1YWwsIGNvbG9yIG1vZGlmaWVyIGNsYXNzZXMgZm9yIGBjb2xvcmAgYW5kXG4vLyBgYmFja2dyb3VuZC1jb2xvcmAuXG5cbi5iYWRnZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogJGJhZGdlLXBhZGRpbmcteSAkYmFkZ2UtcGFkZGluZy14O1xuICBAaW5jbHVkZSBmb250LXNpemUoJGJhZGdlLWZvbnQtc2l6ZSk7XG4gIGZvbnQtd2VpZ2h0OiAkYmFkZ2UtZm9udC13ZWlnaHQ7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cygkYmFkZ2UtYm9yZGVyLXJhZGl1cyk7XG4gIEBpbmNsdWRlIHRyYW5zaXRpb24oJGJhZGdlLXRyYW5zaXRpb24pO1xuXG4gIEBhdC1yb290IGEjeyZ9IHtcbiAgICBAaW5jbHVkZSBob3Zlci1mb2N1cyB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLy8gRW1wdHkgYmFkZ2VzIGNvbGxhcHNlIGF1dG9tYXRpY2FsbHlcbiAgJjplbXB0eSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4vLyBRdWljayBmaXggZm9yIGJhZGdlcyBpbiBidXR0b25zXG4uYnRuIC5iYWRnZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiAtMXB4O1xufVxuXG4vLyBQaWxsIGJhZGdlc1xuLy9cbi8vIE1ha2UgdGhlbSBleHRyYSByb3VuZGVkIHdpdGggYSBtb2RpZmllciB0byByZXBsYWNlIHYzJ3MgYmFkZ2VzLlxuXG4uYmFkZ2UtcGlsbCB7XG4gIHBhZGRpbmctcmlnaHQ6ICRiYWRnZS1waWxsLXBhZGRpbmcteDtcbiAgcGFkZGluZy1sZWZ0OiAkYmFkZ2UtcGlsbC1wYWRkaW5nLXg7XG4gIEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoJGJhZGdlLXBpbGwtYm9yZGVyLXJhZGl1cyk7XG59XG5cbi8vIENvbG9yc1xuLy9cbi8vIENvbnRleHR1YWwgdmFyaWF0aW9ucyAobGlua2VkIGJhZGdlcyBnZXQgZGFya2VyIG9uIDpob3ZlcikuXG5cbkBlYWNoICRjb2xvciwgJHZhbHVlIGluICR0aGVtZS1jb2xvcnMge1xuICAuYmFkZ2UtI3skY29sb3J9IHtcbiAgICBAaW5jbHVkZSBiYWRnZS12YXJpYW50KCR2YWx1ZSk7XG4gIH1cbn1cbiIsIkBtaXhpbiBiYWRnZS12YXJpYW50KCRiZykge1xuICBjb2xvcjogY29sb3IteWlxKCRiZyk7XG4gIGJhY2tncm91bmQtY29sb3I6ICRiZztcblxuICBAYXQtcm9vdCBhI3smfSB7XG4gICAgQGluY2x1ZGUgaG92ZXItZm9jdXMge1xuICAgICAgY29sb3I6IGNvbG9yLXlpcSgkYmcpO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRiZywgMTAlKTtcbiAgICB9XG5cbiAgICAmOmZvY3VzLFxuICAgICYuZm9jdXMge1xuICAgICAgb3V0bGluZTogMDtcbiAgICAgIGJveC1zaGFkb3c6IDAgMCAwICRiYWRnZS1mb2N1cy13aWR0aCByZ2JhKCRiZywgLjUpO1xuICAgIH1cbiAgfVxufVxuIiwiLy9cbi8vIEJhc2Ugc3R5bGVzXG4vL1xuXG4uYWxlcnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmc6ICRhbGVydC1wYWRkaW5nLXkgJGFsZXJ0LXBhZGRpbmcteDtcbiAgbWFyZ2luLWJvdHRvbTogJGFsZXJ0LW1hcmdpbi1ib3R0b207XG4gIGJvcmRlcjogJGFsZXJ0LWJvcmRlci13aWR0aCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cygkYWxlcnQtYm9yZGVyLXJhZGl1cyk7XG59XG5cbi8vIEhlYWRpbmdzIGZvciBsYXJnZXIgYWxlcnRzXG4uYWxlcnQtaGVhZGluZyB7XG4gIC8vIFNwZWNpZmllZCB0byBwcmV2ZW50IGNvbmZsaWN0cyBvZiBjaGFuZ2luZyAkaGVhZGluZ3MtY29sb3JcbiAgY29sb3I6IGluaGVyaXQ7XG59XG5cbi8vIFByb3ZpZGUgY2xhc3MgZm9yIGxpbmtzIHRoYXQgbWF0Y2ggYWxlcnRzXG4uYWxlcnQtbGluayB7XG4gIGZvbnQtd2VpZ2h0OiAkYWxlcnQtbGluay1mb250LXdlaWdodDtcbn1cblxuXG4vLyBEaXNtaXNzaWJsZSBhbGVydHNcbi8vXG4vLyBFeHBhbmQgdGhlIHJpZ2h0IHBhZGRpbmcgYW5kIGFjY291bnQgZm9yIHRoZSBjbG9zZSBidXR0b24ncyBwb3NpdGlvbmluZy5cblxuLmFsZXJ0LWRpc21pc3NpYmxlIHtcbiAgcGFkZGluZy1yaWdodDogJGNsb3NlLWZvbnQtc2l6ZSArICRhbGVydC1wYWRkaW5nLXggKiAyO1xuXG4gIC8vIEFkanVzdCBjbG9zZSBsaW5rIHBvc2l0aW9uXG4gIC5jbG9zZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBwYWRkaW5nOiAkYWxlcnQtcGFkZGluZy15ICRhbGVydC1wYWRkaW5nLXg7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gIH1cbn1cblxuXG4vLyBBbHRlcm5hdGUgc3R5bGVzXG4vL1xuLy8gR2VuZXJhdGUgY29udGV4dHVhbCBtb2RpZmllciBjbGFzc2VzIGZvciBjb2xvcml6aW5nIHRoZSBhbGVydC5cblxuQGVhY2ggJGNvbG9yLCAkdmFsdWUgaW4gJHRoZW1lLWNvbG9ycyB7XG4gIC5hbGVydC0jeyRjb2xvcn0ge1xuICAgIEBpbmNsdWRlIGFsZXJ0LXZhcmlhbnQodGhlbWUtY29sb3ItbGV2ZWwoJGNvbG9yLCAkYWxlcnQtYmctbGV2ZWwpLCB0aGVtZS1jb2xvci1sZXZlbCgkY29sb3IsICRhbGVydC1ib3JkZXItbGV2ZWwpLCB0aGVtZS1jb2xvci1sZXZlbCgkY29sb3IsICRhbGVydC1jb2xvci1sZXZlbCkpO1xuICB9XG59XG4iLCJAbWl4aW4gYWxlcnQtdmFyaWFudCgkYmFja2dyb3VuZCwgJGJvcmRlciwgJGNvbG9yKSB7XG4gIGNvbG9yOiAkY29sb3I7XG4gIEBpbmNsdWRlIGdyYWRpZW50LWJnKCRiYWNrZ3JvdW5kKTtcbiAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyO1xuXG4gIGhyIHtcbiAgICBib3JkZXItdG9wLWNvbG9yOiBkYXJrZW4oJGJvcmRlciwgNSUpO1xuICB9XG5cbiAgLmFsZXJ0LWxpbmsge1xuICAgIGNvbG9yOiBkYXJrZW4oJGNvbG9yLCAxMCUpO1xuICB9XG59XG4iLCIubWVkaWEge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbn1cblxuLm1lZGlhLWJvZHkge1xuICBmbGV4OiAxO1xufVxuIiwiLy8gQmFzZSBjbGFzc1xuLy9cbi8vIEVhc2lseSB1c2FibGUgb24gPHVsPiwgPG9sPiwgb3IgPGRpdj4uXG5cbi5saXN0LWdyb3VwIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAvLyBObyBuZWVkIHRvIHNldCBsaXN0LXN0eWxlOiBub25lOyBzaW5jZSAubGlzdC1ncm91cC1pdGVtIGlzIGJsb2NrIGxldmVsXG4gIHBhZGRpbmctbGVmdDogMDsgLy8gcmVzZXQgcGFkZGluZyBiZWNhdXNlIHVsIGFuZCBvbFxuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG5cbi8vIEludGVyYWN0aXZlIGxpc3QgaXRlbXNcbi8vXG4vLyBVc2UgYW5jaG9yIG9yIGJ1dHRvbiBlbGVtZW50cyBpbnN0ZWFkIG9mIGBsaWBzIG9yIGBkaXZgcyB0byBjcmVhdGUgaW50ZXJhY3RpdmVcbi8vIGxpc3QgaXRlbXMuIEluY2x1ZGVzIGFuIGV4dHJhIGAuYWN0aXZlYCBtb2RpZmllciBjbGFzcyBmb3Igc2VsZWN0ZWQgaXRlbXMuXG5cbi5saXN0LWdyb3VwLWl0ZW0tYWN0aW9uIHtcbiAgd2lkdGg6IDEwMCU7IC8vIEZvciBgPGJ1dHRvbj5gcyAoYW5jaG9ycyBiZWNvbWUgMTAwJSBieSBkZWZhdWx0IHRob3VnaClcbiAgY29sb3I6ICRsaXN0LWdyb3VwLWFjdGlvbi1jb2xvcjtcbiAgdGV4dC1hbGlnbjogaW5oZXJpdDsgLy8gRm9yIGA8YnV0dG9uPmBzIChhbmNob3JzIGluaGVyaXQpXG5cbiAgLy8gSG92ZXIgc3RhdGVcbiAgQGluY2x1ZGUgaG92ZXItZm9jdXMge1xuICAgIHotaW5kZXg6IDE7IC8vIFBsYWNlIGhvdmVyL2ZvY3VzIGl0ZW1zIGFib3ZlIHRoZWlyIHNpYmxpbmdzIGZvciBwcm9wZXIgYm9yZGVyIHN0eWxpbmdcbiAgICBjb2xvcjogJGxpc3QtZ3JvdXAtYWN0aW9uLWhvdmVyLWNvbG9yO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbGlzdC1ncm91cC1ob3Zlci1iZztcbiAgfVxuXG4gICY6YWN0aXZlIHtcbiAgICBjb2xvcjogJGxpc3QtZ3JvdXAtYWN0aW9uLWFjdGl2ZS1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbGlzdC1ncm91cC1hY3Rpb24tYWN0aXZlLWJnO1xuICB9XG59XG5cblxuLy8gSW5kaXZpZHVhbCBsaXN0IGl0ZW1zXG4vL1xuLy8gVXNlIG9uIGBsaWBzIG9yIGBkaXZgcyB3aXRoaW4gdGhlIGAubGlzdC1ncm91cGAgcGFyZW50LlxuXG4ubGlzdC1ncm91cC1pdGVtIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogJGxpc3QtZ3JvdXAtaXRlbS1wYWRkaW5nLXkgJGxpc3QtZ3JvdXAtaXRlbS1wYWRkaW5nLXg7XG4gIC8vIFBsYWNlIHRoZSBib3JkZXIgb24gdGhlIGxpc3QgaXRlbXMgYW5kIG5lZ2F0aXZlIG1hcmdpbiB1cCBmb3IgYmV0dGVyIHN0eWxpbmdcbiAgbWFyZ2luLWJvdHRvbTogLSRsaXN0LWdyb3VwLWJvcmRlci13aWR0aDtcbiAgY29sb3I6ICRsaXN0LWdyb3VwLWNvbG9yO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkbGlzdC1ncm91cC1iZztcbiAgYm9yZGVyOiAkbGlzdC1ncm91cC1ib3JkZXItd2lkdGggc29saWQgJGxpc3QtZ3JvdXAtYm9yZGVyLWNvbG9yO1xuXG4gICY6Zmlyc3QtY2hpbGQge1xuICAgIEBpbmNsdWRlIGJvcmRlci10b3AtcmFkaXVzKCRsaXN0LWdyb3VwLWJvcmRlci1yYWRpdXMpO1xuICB9XG5cbiAgJjpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIEBpbmNsdWRlIGJvcmRlci1ib3R0b20tcmFkaXVzKCRsaXN0LWdyb3VwLWJvcmRlci1yYWRpdXMpO1xuICB9XG5cbiAgJi5kaXNhYmxlZCxcbiAgJjpkaXNhYmxlZCB7XG4gICAgY29sb3I6ICRsaXN0LWdyb3VwLWRpc2FibGVkLWNvbG9yO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRsaXN0LWdyb3VwLWRpc2FibGVkLWJnO1xuICB9XG5cbiAgLy8gSW5jbHVkZSBib3RoIGhlcmUgZm9yIGA8YT5gcyBhbmQgYDxidXR0b24+YHNcbiAgJi5hY3RpdmUge1xuICAgIHotaW5kZXg6IDI7IC8vIFBsYWNlIGFjdGl2ZSBpdGVtcyBhYm92ZSB0aGVpciBzaWJsaW5ncyBmb3IgcHJvcGVyIGJvcmRlciBzdHlsaW5nXG4gICAgY29sb3I6ICRsaXN0LWdyb3VwLWFjdGl2ZS1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbGlzdC1ncm91cC1hY3RpdmUtYmc7XG4gICAgYm9yZGVyLWNvbG9yOiAkbGlzdC1ncm91cC1hY3RpdmUtYm9yZGVyLWNvbG9yO1xuICB9XG59XG5cblxuLy8gSG9yaXpvbnRhbFxuLy9cbi8vIENoYW5nZSB0aGUgbGF5b3V0IG9mIGxpc3QgZ3JvdXAgaXRlbXMgZnJvbSB2ZXJ0aWNhbCAoZGVmYXVsdCkgdG8gaG9yaXpvbnRhbC5cblxuQGVhY2ggJGJyZWFrcG9pbnQgaW4gbWFwLWtleXMoJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgkYnJlYWtwb2ludCkge1xuICAgICRpbmZpeDogYnJlYWtwb2ludC1pbmZpeCgkYnJlYWtwb2ludCwgJGdyaWQtYnJlYWtwb2ludHMpO1xuXG4gICAgLmxpc3QtZ3JvdXAtaG9yaXpvbnRhbCN7JGluZml4fSB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAubGlzdC1ncm91cC1pdGVtIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJGxpc3QtZ3JvdXAtYm9yZGVyLXdpZHRoO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgIEBpbmNsdWRlIGJvcmRlci1sZWZ0LXJhZGl1cygkbGlzdC1ncm91cC1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgICBAaW5jbHVkZSBib3JkZXItdG9wLXJpZ2h0LXJhZGl1cygwKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgIEBpbmNsdWRlIGJvcmRlci1yaWdodC1yYWRpdXMoJGxpc3QtZ3JvdXAtYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgICAgQGluY2x1ZGUgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1cygwKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5cbi8vIEZsdXNoIGxpc3QgaXRlbXNcbi8vXG4vLyBSZW1vdmUgYm9yZGVycyBhbmQgYm9yZGVyLXJhZGl1cyB0byBrZWVwIGxpc3QgZ3JvdXAgaXRlbXMgZWRnZS10by1lZGdlLiBNb3N0XG4vLyB1c2VmdWwgd2l0aGluIG90aGVyIGNvbXBvbmVudHMgKGUuZy4sIGNhcmRzKS5cblxuLmxpc3QtZ3JvdXAtZmx1c2gge1xuICAubGlzdC1ncm91cC1pdGVtIHtcbiAgICBib3JkZXItcmlnaHQ6IDA7XG4gICAgYm9yZGVyLWxlZnQ6IDA7XG4gICAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cygwKTtcblxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAtJGxpc3QtZ3JvdXAtYm9yZGVyLXdpZHRoO1xuICAgIH1cbiAgfVxuXG4gICY6Zmlyc3QtY2hpbGQge1xuICAgIC5saXN0LWdyb3VwLWl0ZW06Zmlyc3QtY2hpbGQge1xuICAgICAgYm9yZGVyLXRvcDogMDtcbiAgICB9XG4gIH1cblxuICAmOmxhc3QtY2hpbGQge1xuICAgIC5saXN0LWdyb3VwLWl0ZW06bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cbn1cblxuXG4vLyBDb250ZXh0dWFsIHZhcmlhbnRzXG4vL1xuLy8gQWRkIG1vZGlmaWVyIGNsYXNzZXMgdG8gY2hhbmdlIHRleHQgYW5kIGJhY2tncm91bmQgY29sb3Igb24gaW5kaXZpZHVhbCBpdGVtcy5cbi8vIE9yZ2FuaXphdGlvbmFsbHksIHRoaXMgbXVzdCBjb21lIGFmdGVyIHRoZSBgOmhvdmVyYCBzdGF0ZXMuXG5cbkBlYWNoICRjb2xvciwgJHZhbHVlIGluICR0aGVtZS1jb2xvcnMge1xuICBAaW5jbHVkZSBsaXN0LWdyb3VwLWl0ZW0tdmFyaWFudCgkY29sb3IsIHRoZW1lLWNvbG9yLWxldmVsKCRjb2xvciwgLTkpLCB0aGVtZS1jb2xvci1sZXZlbCgkY29sb3IsIDYpKTtcbn1cbiIsIi8vIExpc3QgR3JvdXBzXG5cbkBtaXhpbiBsaXN0LWdyb3VwLWl0ZW0tdmFyaWFudCgkc3RhdGUsICRiYWNrZ3JvdW5kLCAkY29sb3IpIHtcbiAgLmxpc3QtZ3JvdXAtaXRlbS0jeyRzdGF0ZX0ge1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG5cbiAgICAmLmxpc3QtZ3JvdXAtaXRlbS1hY3Rpb24ge1xuICAgICAgQGluY2x1ZGUgaG92ZXItZm9jdXMge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJGJhY2tncm91bmQsIDUlKTtcbiAgICAgIH1cblxuICAgICAgJi5hY3RpdmUge1xuICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJGNvbG9yO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLmNsb3NlIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBAaW5jbHVkZSBmb250LXNpemUoJGNsb3NlLWZvbnQtc2l6ZSk7XG4gIGZvbnQtd2VpZ2h0OiAkY2xvc2UtZm9udC13ZWlnaHQ7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjb2xvcjogJGNsb3NlLWNvbG9yO1xuICB0ZXh0LXNoYWRvdzogJGNsb3NlLXRleHQtc2hhZG93O1xuICBvcGFjaXR5OiAuNTtcblxuICAvLyBPdmVycmlkZSA8YT4ncyBob3ZlciBzdHlsZVxuICBAaW5jbHVkZSBob3ZlciB7XG4gICAgY29sb3I6ICRjbG9zZS1jb2xvcjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIH1cblxuICAmOm5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpIHtcbiAgICBAaW5jbHVkZSBob3Zlci1mb2N1cyB7XG4gICAgICBvcGFjaXR5OiAuNzU7XG4gICAgfVxuICB9XG59XG5cbi8vIEFkZGl0aW9uYWwgcHJvcGVydGllcyBmb3IgYnV0dG9uIHZlcnNpb25cbi8vIGlPUyByZXF1aXJlcyB0aGUgYnV0dG9uIGVsZW1lbnQgaW5zdGVhZCBvZiBhbiBhbmNob3IgdGFnLlxuLy8gSWYgeW91IHdhbnQgdGhlIGFuY2hvciB2ZXJzaW9uLCBpdCByZXF1aXJlcyBgaHJlZj1cIiNcImAuXG4vLyBTZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvRXZlbnRzL2NsaWNrI1NhZmFyaV9Nb2JpbGVcblxuLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHNlbGVjdG9yLW5vLXF1YWxpZnlpbmctdHlwZVxuYnV0dG9uLmNsb3NlIHtcbiAgcGFkZGluZzogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMDtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLy8gRnV0dXJlLXByb29mIGRpc2FibGluZyBvZiBjbGlja3Mgb24gYDxhPmAgZWxlbWVudHNcblxuLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHNlbGVjdG9yLW5vLXF1YWxpZnlpbmctdHlwZVxuYS5jbG9zZS5kaXNhYmxlZCB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuIiwiLy8gLm1vZGFsLW9wZW4gICAgICAtIGJvZHkgY2xhc3MgZm9yIGtpbGxpbmcgdGhlIHNjcm9sbFxuLy8gLm1vZGFsICAgICAgICAgICAtIGNvbnRhaW5lciB0byBzY3JvbGwgd2l0aGluXG4vLyAubW9kYWwtZGlhbG9nICAgIC0gcG9zaXRpb25pbmcgc2hlbGwgZm9yIHRoZSBhY3R1YWwgbW9kYWxcbi8vIC5tb2RhbC1jb250ZW50ICAgLSBhY3R1YWwgbW9kYWwgdy8gYmcgYW5kIGNvcm5lcnMgYW5kIHN0dWZmXG5cblxuLm1vZGFsLW9wZW4ge1xuICAvLyBLaWxsIHRoZSBzY3JvbGwgb24gdGhlIGJvZHlcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAubW9kYWwge1xuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICB9XG59XG5cbi8vIENvbnRhaW5lciB0aGF0IHRoZSBtb2RhbCBzY3JvbGxzIHdpdGhpblxuLm1vZGFsIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6ICR6aW5kZXgtbW9kYWw7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIC8vIFByZXZlbnQgQ2hyb21lIG9uIFdpbmRvd3MgZnJvbSBhZGRpbmcgYSBmb2N1cyBvdXRsaW5lLiBGb3IgZGV0YWlscywgc2VlXG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9wdWxsLzEwOTUxLlxuICBvdXRsaW5lOiAwO1xuICAvLyBXZSBkZWxpYmVyYXRlbHkgZG9uJ3QgdXNlIGAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7YCBkdWUgdG8gYVxuICAvLyBnbmFybHkgaU9TIFNhZmFyaSBidWc6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTgzNDJcbiAgLy8gU2VlIGFsc28gaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2lzc3Vlcy8xNzY5NVxufVxuXG4vLyBTaGVsbCBkaXYgdG8gcG9zaXRpb24gdGhlIG1vZGFsIHdpdGggYm90dG9tIHBhZGRpbmdcbi5tb2RhbC1kaWFsb2cge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiBhdXRvO1xuICBtYXJnaW46ICRtb2RhbC1kaWFsb2ctbWFyZ2luO1xuICAvLyBhbGxvdyBjbGlja3MgdG8gcGFzcyB0aHJvdWdoIGZvciBjdXN0b20gY2xpY2sgaGFuZGxpbmcgdG8gY2xvc2UgbW9kYWxcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgLy8gV2hlbiBmYWRpbmcgaW4gdGhlIG1vZGFsLCBhbmltYXRlIGl0IHRvIHNsaWRlIGRvd25cbiAgLm1vZGFsLmZhZGUgJiB7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbigkbW9kYWwtdHJhbnNpdGlvbik7XG4gICAgdHJhbnNmb3JtOiAkbW9kYWwtZmFkZS10cmFuc2Zvcm07XG4gIH1cbiAgLm1vZGFsLnNob3cgJiB7XG4gICAgdHJhbnNmb3JtOiAkbW9kYWwtc2hvdy10cmFuc2Zvcm07XG4gIH1cbn1cblxuLm1vZGFsLWRpYWxvZy1zY3JvbGxhYmxlIHtcbiAgZGlzcGxheTogZmxleDsgLy8gSUUxMC8xMVxuICBtYXgtaGVpZ2h0OiBjYWxjKDEwMCUgLSAjeyRtb2RhbC1kaWFsb2ctbWFyZ2luICogMn0pO1xuXG4gIC5tb2RhbC1jb250ZW50IHtcbiAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gI3skbW9kYWwtZGlhbG9nLW1hcmdpbiAqIDJ9KTsgLy8gSUUxMC8xMVxuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cblxuICAubW9kYWwtaGVhZGVyLFxuICAubW9kYWwtZm9vdGVyIHtcbiAgICBmbGV4LXNocmluazogMDtcbiAgfVxuXG4gIC5tb2RhbC1ib2R5IHtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICB9XG59XG5cbi5tb2RhbC1kaWFsb2ctY2VudGVyZWQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBtaW4taGVpZ2h0OiBjYWxjKDEwMCUgLSAjeyRtb2RhbC1kaWFsb2ctbWFyZ2luICogMn0pO1xuXG4gIC8vIEVuc3VyZSBgbW9kYWwtZGlhbG9nLWNlbnRlcmVkYCBleHRlbmRzIHRoZSBmdWxsIGhlaWdodCBvZiB0aGUgdmlldyAoSUUxMC8xMSlcbiAgJjo6YmVmb3JlIHtcbiAgICBkaXNwbGF5OiBibG9jazsgLy8gSUUxMFxuICAgIGhlaWdodDogY2FsYygxMDB2aCAtICN7JG1vZGFsLWRpYWxvZy1tYXJnaW4gKiAyfSk7XG4gICAgY29udGVudDogXCJcIjtcbiAgfVxuXG4gIC8vIEVuc3VyZSBgLm1vZGFsLWJvZHlgIHNob3dzIHNjcm9sbGJhciAoSUUxMC8xMSlcbiAgJi5tb2RhbC1kaWFsb2ctc2Nyb2xsYWJsZSB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBoZWlnaHQ6IDEwMCU7XG5cbiAgICAubW9kYWwtY29udGVudCB7XG4gICAgICBtYXgtaGVpZ2h0OiBub25lO1xuICAgIH1cblxuICAgICY6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiBub25lO1xuICAgIH1cbiAgfVxufVxuXG4vLyBBY3R1YWwgbW9kYWxcbi5tb2RhbC1jb250ZW50IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB3aWR0aDogMTAwJTsgLy8gRW5zdXJlIGAubW9kYWwtY29udGVudGAgZXh0ZW5kcyB0aGUgZnVsbCB3aWR0aCBvZiB0aGUgcGFyZW50IGAubW9kYWwtZGlhbG9nYFxuICAvLyBjb3VudGVyYWN0IHRoZSBwb2ludGVyLWV2ZW50czogbm9uZTsgaW4gdGhlIC5tb2RhbC1kaWFsb2dcbiAgY29sb3I6ICRtb2RhbC1jb250ZW50LWNvbG9yO1xuICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgYmFja2dyb3VuZC1jb2xvcjogJG1vZGFsLWNvbnRlbnQtYmc7XG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG4gIGJvcmRlcjogJG1vZGFsLWNvbnRlbnQtYm9yZGVyLXdpZHRoIHNvbGlkICRtb2RhbC1jb250ZW50LWJvcmRlci1jb2xvcjtcbiAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cygkbW9kYWwtY29udGVudC1ib3JkZXItcmFkaXVzKTtcbiAgQGluY2x1ZGUgYm94LXNoYWRvdygkbW9kYWwtY29udGVudC1ib3gtc2hhZG93LXhzKTtcbiAgLy8gUmVtb3ZlIGZvY3VzIG91dGxpbmUgZnJvbSBvcGVuZWQgbW9kYWxcbiAgb3V0bGluZTogMDtcbn1cblxuLy8gTW9kYWwgYmFja2dyb3VuZFxuLm1vZGFsLWJhY2tkcm9wIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6ICR6aW5kZXgtbW9kYWwtYmFja2Ryb3A7XG4gIHdpZHRoOiAxMDB2dztcbiAgaGVpZ2h0OiAxMDB2aDtcbiAgYmFja2dyb3VuZC1jb2xvcjogJG1vZGFsLWJhY2tkcm9wLWJnO1xuXG4gIC8vIEZhZGUgZm9yIGJhY2tkcm9wXG4gICYuZmFkZSB7IG9wYWNpdHk6IDA7IH1cbiAgJi5zaG93IHsgb3BhY2l0eTogJG1vZGFsLWJhY2tkcm9wLW9wYWNpdHk7IH1cbn1cblxuLy8gTW9kYWwgaGVhZGVyXG4vLyBUb3Agc2VjdGlvbiBvZiB0aGUgbW9kYWwgdy8gdGl0bGUgYW5kIGRpc21pc3Ncbi5tb2RhbC1oZWFkZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsgLy8gc28gdGhlIGNsb3NlIGJ0biBhbHdheXMgc3RheXMgb24gdGhlIHVwcGVyIHJpZ2h0IGNvcm5lclxuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IC8vIFB1dCBtb2RhbCBoZWFkZXIgZWxlbWVudHMgKHRpdGxlIGFuZCBkaXNtaXNzKSBvbiBvcHBvc2l0ZSBlbmRzXG4gIHBhZGRpbmc6ICRtb2RhbC1oZWFkZXItcGFkZGluZztcbiAgYm9yZGVyLWJvdHRvbTogJG1vZGFsLWhlYWRlci1ib3JkZXItd2lkdGggc29saWQgJG1vZGFsLWhlYWRlci1ib3JkZXItY29sb3I7XG4gIEBpbmNsdWRlIGJvcmRlci10b3AtcmFkaXVzKCRtb2RhbC1jb250ZW50LWJvcmRlci1yYWRpdXMpO1xuXG4gIC5jbG9zZSB7XG4gICAgcGFkZGluZzogJG1vZGFsLWhlYWRlci1wYWRkaW5nO1xuICAgIC8vIGF1dG8gb24gdGhlIGxlZnQgZm9yY2UgaWNvbiB0byB0aGUgcmlnaHQgZXZlbiB3aGVuIHRoZXJlIGlzIG5vIC5tb2RhbC10aXRsZVxuICAgIG1hcmdpbjogKC0kbW9kYWwtaGVhZGVyLXBhZGRpbmcteSkgKC0kbW9kYWwtaGVhZGVyLXBhZGRpbmcteCkgKC0kbW9kYWwtaGVhZGVyLXBhZGRpbmcteSkgYXV0bztcbiAgfVxufVxuXG4vLyBUaXRsZSB0ZXh0IHdpdGhpbiBoZWFkZXJcbi5tb2RhbC10aXRsZSB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGxpbmUtaGVpZ2h0OiAkbW9kYWwtdGl0bGUtbGluZS1oZWlnaHQ7XG59XG5cbi8vIE1vZGFsIGJvZHlcbi8vIFdoZXJlIGFsbCBtb2RhbCBjb250ZW50IHJlc2lkZXMgKHNpYmxpbmcgb2YgLm1vZGFsLWhlYWRlciBhbmQgLm1vZGFsLWZvb3Rlcilcbi5tb2RhbC1ib2R5IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAvLyBFbmFibGUgYGZsZXgtZ3JvdzogMWAgc28gdGhhdCB0aGUgYm9keSB0YWtlIHVwIGFzIG11Y2ggc3BhY2UgYXMgcG9zc2libGVcbiAgLy8gd2hlbiBzaG91bGQgdGhlcmUgYmUgYSBmaXhlZCBoZWlnaHQgb24gYC5tb2RhbC1kaWFsb2dgLlxuICBmbGV4OiAxIDEgYXV0bztcbiAgcGFkZGluZzogJG1vZGFsLWlubmVyLXBhZGRpbmc7XG59XG5cbi8vIEZvb3RlciAoZm9yIGFjdGlvbnMpXG4ubW9kYWwtZm9vdGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjsgLy8gdmVydGljYWxseSBjZW50ZXJcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsgLy8gUmlnaHQgYWxpZ24gYnV0dG9ucyB3aXRoIGZsZXggcHJvcGVydHkgYmVjYXVzZSB0ZXh0LWFsaWduIGRvZXNuJ3Qgd29yayBvbiBmbGV4IGl0ZW1zXG4gIHBhZGRpbmc6ICRtb2RhbC1pbm5lci1wYWRkaW5nO1xuICBib3JkZXItdG9wOiAkbW9kYWwtZm9vdGVyLWJvcmRlci13aWR0aCBzb2xpZCAkbW9kYWwtZm9vdGVyLWJvcmRlci1jb2xvcjtcbiAgQGluY2x1ZGUgYm9yZGVyLWJvdHRvbS1yYWRpdXMoJG1vZGFsLWNvbnRlbnQtYm9yZGVyLXJhZGl1cyk7XG5cbiAgLy8gRWFzaWx5IHBsYWNlIG1hcmdpbiBiZXR3ZWVuIGZvb3RlciBlbGVtZW50c1xuICA+IDpub3QoOmZpcnN0LWNoaWxkKSB7IG1hcmdpbi1sZWZ0OiAuMjVyZW07IH1cbiAgPiA6bm90KDpsYXN0LWNoaWxkKSB7IG1hcmdpbi1yaWdodDogLjI1cmVtOyB9XG59XG5cbi8vIE1lYXN1cmUgc2Nyb2xsYmFyIHdpZHRoIGZvciBwYWRkaW5nIGJvZHkgZHVyaW5nIG1vZGFsIHNob3cvaGlkZVxuLm1vZGFsLXNjcm9sbGJhci1tZWFzdXJlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC05OTk5cHg7XG4gIHdpZHRoOiA1MHB4O1xuICBoZWlnaHQ6IDUwcHg7XG4gIG92ZXJmbG93OiBzY3JvbGw7XG59XG5cbi8vIFNjYWxlIHVwIHRoZSBtb2RhbFxuQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cChzbSkge1xuICAvLyBBdXRvbWF0aWNhbGx5IHNldCBtb2RhbCdzIHdpZHRoIGZvciBsYXJnZXIgdmlld3BvcnRzXG4gIC5tb2RhbC1kaWFsb2cge1xuICAgIG1heC13aWR0aDogJG1vZGFsLW1kO1xuICAgIG1hcmdpbjogJG1vZGFsLWRpYWxvZy1tYXJnaW4teS1zbS11cCBhdXRvO1xuICB9XG5cbiAgLm1vZGFsLWRpYWxvZy1zY3JvbGxhYmxlIHtcbiAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMCUgLSAjeyRtb2RhbC1kaWFsb2ctbWFyZ2luLXktc20tdXAgKiAyfSk7XG5cbiAgICAubW9kYWwtY29udGVudCB7XG4gICAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gI3skbW9kYWwtZGlhbG9nLW1hcmdpbi15LXNtLXVwICogMn0pO1xuICAgIH1cbiAgfVxuXG4gIC5tb2RhbC1kaWFsb2ctY2VudGVyZWQge1xuICAgIG1pbi1oZWlnaHQ6IGNhbGMoMTAwJSAtICN7JG1vZGFsLWRpYWxvZy1tYXJnaW4teS1zbS11cCAqIDJ9KTtcblxuICAgICY6OmJlZm9yZSB7XG4gICAgICBoZWlnaHQ6IGNhbGMoMTAwdmggLSAjeyRtb2RhbC1kaWFsb2ctbWFyZ2luLXktc20tdXAgKiAyfSk7XG4gICAgfVxuICB9XG5cbiAgLm1vZGFsLWNvbnRlbnQge1xuICAgIEBpbmNsdWRlIGJveC1zaGFkb3coJG1vZGFsLWNvbnRlbnQtYm94LXNoYWRvdy1zbS11cCk7XG4gIH1cblxuICAubW9kYWwtc20geyBtYXgtd2lkdGg6ICRtb2RhbC1zbTsgfVxufVxuXG5AaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKGxnKSB7XG4gIC5tb2RhbC1sZyxcbiAgLm1vZGFsLXhsIHtcbiAgICBtYXgtd2lkdGg6ICRtb2RhbC1sZztcbiAgfVxufVxuXG5AaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKHhsKSB7XG4gIC5tb2RhbC14bCB7IG1heC13aWR0aDogJG1vZGFsLXhsOyB9XG59XG4iLCIvLyBzdHlsZWxpbnQtZGlzYWJsZSBkZWNsYXJhdGlvbi1uby1pbXBvcnRhbnRcblxuLmFsaWduLWJhc2VsaW5lICAgIHsgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lICFpbXBvcnRhbnQ7IH0gLy8gQnJvd3NlciBkZWZhdWx0XG4uYWxpZ24tdG9wICAgICAgICAgeyB2ZXJ0aWNhbC1hbGlnbjogdG9wICFpbXBvcnRhbnQ7IH1cbi5hbGlnbi1taWRkbGUgICAgICB7IHZlcnRpY2FsLWFsaWduOiBtaWRkbGUgIWltcG9ydGFudDsgfVxuLmFsaWduLWJvdHRvbSAgICAgIHsgdmVydGljYWwtYWxpZ246IGJvdHRvbSAhaW1wb3J0YW50OyB9XG4uYWxpZ24tdGV4dC1ib3R0b20geyB2ZXJ0aWNhbC1hbGlnbjogdGV4dC1ib3R0b20gIWltcG9ydGFudDsgfVxuLmFsaWduLXRleHQtdG9wICAgIHsgdmVydGljYWwtYWxpZ246IHRleHQtdG9wICFpbXBvcnRhbnQ7IH1cbiIsIi8vIHN0eWxlbGludC1kaXNhYmxlIGRlY2xhcmF0aW9uLW5vLWltcG9ydGFudFxuXG4vLyBDb250ZXh0dWFsIGJhY2tncm91bmRzXG5cbkBtaXhpbiBiZy12YXJpYW50KCRwYXJlbnQsICRjb2xvcikge1xuICAjeyRwYXJlbnR9IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3IgIWltcG9ydGFudDtcbiAgfVxuICBhI3skcGFyZW50fSxcbiAgYnV0dG9uI3skcGFyZW50fSB7XG4gICAgQGluY2x1ZGUgaG92ZXItZm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRjb2xvciwgMTAlKSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gYmctZ3JhZGllbnQtdmFyaWFudCgkcGFyZW50LCAkY29sb3IpIHtcbiAgI3skcGFyZW50fSB7XG4gICAgYmFja2dyb3VuZDogJGNvbG9yIGxpbmVhci1ncmFkaWVudCgxODBkZWcsIG1peCgkYm9keS1iZywgJGNvbG9yLCAxNSUpLCAkY29sb3IpIHJlcGVhdC14ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbiIsIi8vIHN0eWxlbGludC1kaXNhYmxlIGRlY2xhcmF0aW9uLW5vLWltcG9ydGFudFxuXG5AZWFjaCAkY29sb3IsICR2YWx1ZSBpbiAkdGhlbWUtY29sb3JzIHtcbiAgQGluY2x1ZGUgYmctdmFyaWFudChcIi5iZy0jeyRjb2xvcn1cIiwgJHZhbHVlKTtcbn1cblxuQGlmICRlbmFibGUtZ3JhZGllbnRzIHtcbiAgQGVhY2ggJGNvbG9yLCAkdmFsdWUgaW4gJHRoZW1lLWNvbG9ycyB7XG4gICAgQGluY2x1ZGUgYmctZ3JhZGllbnQtdmFyaWFudChcIi5iZy1ncmFkaWVudC0jeyRjb2xvcn1cIiwgJHZhbHVlKTtcbiAgfVxufVxuXG4uYmctd2hpdGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGUgIWltcG9ydGFudDtcbn1cblxuLmJnLXRyYW5zcGFyZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbn1cbiIsIi8vIHN0eWxlbGludC1kaXNhYmxlIHByb3BlcnR5LWJsYWNrbGlzdCwgZGVjbGFyYXRpb24tbm8taW1wb3J0YW50XG5cbi8vXG4vLyBCb3JkZXJcbi8vXG5cbi5ib3JkZXIgICAgICAgICB7IGJvcmRlcjogJGJvcmRlci13aWR0aCBzb2xpZCAkYm9yZGVyLWNvbG9yICFpbXBvcnRhbnQ7IH1cbi5ib3JkZXItdG9wICAgICB7IGJvcmRlci10b3A6ICRib3JkZXItd2lkdGggc29saWQgJGJvcmRlci1jb2xvciAhaW1wb3J0YW50OyB9XG4uYm9yZGVyLXJpZ2h0ICAgeyBib3JkZXItcmlnaHQ6ICRib3JkZXItd2lkdGggc29saWQgJGJvcmRlci1jb2xvciAhaW1wb3J0YW50OyB9XG4uYm9yZGVyLWJvdHRvbSAgeyBib3JkZXItYm90dG9tOiAkYm9yZGVyLXdpZHRoIHNvbGlkICRib3JkZXItY29sb3IgIWltcG9ydGFudDsgfVxuLmJvcmRlci1sZWZ0ICAgIHsgYm9yZGVyLWxlZnQ6ICRib3JkZXItd2lkdGggc29saWQgJGJvcmRlci1jb2xvciAhaW1wb3J0YW50OyB9XG5cbi5ib3JkZXItMCAgICAgICAgeyBib3JkZXI6IDAgIWltcG9ydGFudDsgfVxuLmJvcmRlci10b3AtMCAgICB7IGJvcmRlci10b3A6IDAgIWltcG9ydGFudDsgfVxuLmJvcmRlci1yaWdodC0wICB7IGJvcmRlci1yaWdodDogMCAhaW1wb3J0YW50OyB9XG4uYm9yZGVyLWJvdHRvbS0wIHsgYm9yZGVyLWJvdHRvbTogMCAhaW1wb3J0YW50OyB9XG4uYm9yZGVyLWxlZnQtMCAgIHsgYm9yZGVyLWxlZnQ6IDAgIWltcG9ydGFudDsgfVxuXG5AZWFjaCAkY29sb3IsICR2YWx1ZSBpbiAkdGhlbWUtY29sb3JzIHtcbiAgLmJvcmRlci0jeyRjb2xvcn0ge1xuICAgIGJvcmRlci1jb2xvcjogJHZhbHVlICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLmJvcmRlci13aGl0ZSB7XG4gIGJvcmRlci1jb2xvcjogJHdoaXRlICFpbXBvcnRhbnQ7XG59XG5cbi8vXG4vLyBCb3JkZXItcmFkaXVzXG4vL1xuXG4ucm91bmRlZC1zbSB7XG4gIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzLXNtICFpbXBvcnRhbnQ7XG59XG5cbi5yb3VuZGVkIHtcbiAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMgIWltcG9ydGFudDtcbn1cblxuLnJvdW5kZWQtdG9wIHtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogJGJvcmRlci1yYWRpdXMgIWltcG9ydGFudDtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICRib3JkZXItcmFkaXVzICFpbXBvcnRhbnQ7XG59XG5cbi5yb3VuZGVkLXJpZ2h0IHtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICRib3JkZXItcmFkaXVzICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAkYm9yZGVyLXJhZGl1cyAhaW1wb3J0YW50O1xufVxuXG4ucm91bmRlZC1ib3R0b20ge1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogJGJvcmRlci1yYWRpdXMgIWltcG9ydGFudDtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogJGJvcmRlci1yYWRpdXMgIWltcG9ydGFudDtcbn1cblxuLnJvdW5kZWQtbGVmdCB7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6ICRib3JkZXItcmFkaXVzICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICRib3JkZXItcmFkaXVzICFpbXBvcnRhbnQ7XG59XG5cbi5yb3VuZGVkLWxnIHtcbiAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtbGcgIWltcG9ydGFudDtcbn1cblxuLnJvdW5kZWQtY2lyY2xlIHtcbiAgYm9yZGVyLXJhZGl1czogNTAlICFpbXBvcnRhbnQ7XG59XG5cbi5yb3VuZGVkLXBpbGwge1xuICBib3JkZXItcmFkaXVzOiAkcm91bmRlZC1waWxsICFpbXBvcnRhbnQ7XG59XG5cbi5yb3VuZGVkLTAge1xuICBib3JkZXItcmFkaXVzOiAwICFpbXBvcnRhbnQ7XG59XG4iLCJAbWl4aW4gY2xlYXJmaXgoKSB7XG4gICY6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBjbGVhcjogYm90aDtcbiAgICBjb250ZW50OiBcIlwiO1xuICB9XG59XG4iLCIvLyBzdHlsZWxpbnQtZGlzYWJsZSBkZWNsYXJhdGlvbi1uby1pbXBvcnRhbnRcblxuLy9cbi8vIFV0aWxpdGllcyBmb3IgY29tbW9uIGBkaXNwbGF5YCB2YWx1ZXNcbi8vXG5cbkBlYWNoICRicmVha3BvaW50IGluIG1hcC1rZXlzKCRncmlkLWJyZWFrcG9pbnRzKSB7XG4gIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJGJyZWFrcG9pbnQpIHtcbiAgICAkaW5maXg6IGJyZWFrcG9pbnQtaW5maXgoJGJyZWFrcG9pbnQsICRncmlkLWJyZWFrcG9pbnRzKTtcblxuICAgIEBlYWNoICR2YWx1ZSBpbiAkZGlzcGxheXMge1xuICAgICAgLmQjeyRpbmZpeH0tI3skdmFsdWV9IHsgZGlzcGxheTogJHZhbHVlICFpbXBvcnRhbnQ7IH1cbiAgICB9XG4gIH1cbn1cblxuXG4vL1xuLy8gVXRpbGl0aWVzIGZvciB0b2dnbGluZyBgZGlzcGxheWAgaW4gcHJpbnRcbi8vXG5cbkBtZWRpYSBwcmludCB7XG4gIEBlYWNoICR2YWx1ZSBpbiAkZGlzcGxheXMge1xuICAgIC5kLXByaW50LSN7JHZhbHVlfSB7IGRpc3BsYXk6ICR2YWx1ZSAhaW1wb3J0YW50OyB9XG4gIH1cbn1cbiIsIi8vIENyZWRpdDogTmljb2xhcyBHYWxsYWdoZXIgYW5kIFNVSVQgQ1NTLlxuXG4uZW1iZWQtcmVzcG9uc2l2ZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICY6OmJlZm9yZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgY29udGVudDogXCJcIjtcbiAgfVxuXG4gIC5lbWJlZC1yZXNwb25zaXZlLWl0ZW0sXG4gIGlmcmFtZSxcbiAgZW1iZWQsXG4gIG9iamVjdCxcbiAgdmlkZW8ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJvcmRlcjogMDtcbiAgfVxufVxuXG5AZWFjaCAkZW1iZWQtcmVzcG9uc2l2ZS1hc3BlY3QtcmF0aW8gaW4gJGVtYmVkLXJlc3BvbnNpdmUtYXNwZWN0LXJhdGlvcyB7XG4gICRlbWJlZC1yZXNwb25zaXZlLWFzcGVjdC1yYXRpby14OiBudGgoJGVtYmVkLXJlc3BvbnNpdmUtYXNwZWN0LXJhdGlvLCAxKTtcbiAgJGVtYmVkLXJlc3BvbnNpdmUtYXNwZWN0LXJhdGlvLXk6IG50aCgkZW1iZWQtcmVzcG9uc2l2ZS1hc3BlY3QtcmF0aW8sIDIpO1xuXG4gIC5lbWJlZC1yZXNwb25zaXZlLSN7JGVtYmVkLXJlc3BvbnNpdmUtYXNwZWN0LXJhdGlvLXh9YnkjeyRlbWJlZC1yZXNwb25zaXZlLWFzcGVjdC1yYXRpby15fSB7XG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIHBhZGRpbmctdG9wOiBwZXJjZW50YWdlKCRlbWJlZC1yZXNwb25zaXZlLWFzcGVjdC1yYXRpby15IC8gJGVtYmVkLXJlc3BvbnNpdmUtYXNwZWN0LXJhdGlvLXgpO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gc3R5bGVsaW50LWRpc2FibGUgZGVjbGFyYXRpb24tbm8taW1wb3J0YW50XG5cbi8vIEZsZXggdmFyaWF0aW9uXG4vL1xuLy8gQ3VzdG9tIHN0eWxlcyBmb3IgYWRkaXRpb25hbCBmbGV4IGFsaWdubWVudCBvcHRpb25zLlxuXG5AZWFjaCAkYnJlYWtwb2ludCBpbiBtYXAta2V5cygkZ3JpZC1icmVha3BvaW50cykge1xuICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRicmVha3BvaW50KSB7XG4gICAgJGluZml4OiBicmVha3BvaW50LWluZml4KCRicmVha3BvaW50LCAkZ3JpZC1icmVha3BvaW50cyk7XG5cbiAgICAuZmxleCN7JGluZml4fS1yb3cgICAgICAgICAgICB7IGZsZXgtZGlyZWN0aW9uOiByb3cgIWltcG9ydGFudDsgfVxuICAgIC5mbGV4I3skaW5maXh9LWNvbHVtbiAgICAgICAgIHsgZmxleC1kaXJlY3Rpb246IGNvbHVtbiAhaW1wb3J0YW50OyB9XG4gICAgLmZsZXgjeyRpbmZpeH0tcm93LXJldmVyc2UgICAgeyBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2UgIWltcG9ydGFudDsgfVxuICAgIC5mbGV4I3skaW5maXh9LWNvbHVtbi1yZXZlcnNlIHsgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlICFpbXBvcnRhbnQ7IH1cblxuICAgIC5mbGV4I3skaW5maXh9LXdyYXAgICAgICAgICB7IGZsZXgtd3JhcDogd3JhcCAhaW1wb3J0YW50OyB9XG4gICAgLmZsZXgjeyRpbmZpeH0tbm93cmFwICAgICAgIHsgZmxleC13cmFwOiBub3dyYXAgIWltcG9ydGFudDsgfVxuICAgIC5mbGV4I3skaW5maXh9LXdyYXAtcmV2ZXJzZSB7IGZsZXgtd3JhcDogd3JhcC1yZXZlcnNlICFpbXBvcnRhbnQ7IH1cbiAgICAuZmxleCN7JGluZml4fS1maWxsICAgICAgICAgeyBmbGV4OiAxIDEgYXV0byAhaW1wb3J0YW50OyB9XG4gICAgLmZsZXgjeyRpbmZpeH0tZ3Jvdy0wICAgICAgIHsgZmxleC1ncm93OiAwICFpbXBvcnRhbnQ7IH1cbiAgICAuZmxleCN7JGluZml4fS1ncm93LTEgICAgICAgeyBmbGV4LWdyb3c6IDEgIWltcG9ydGFudDsgfVxuICAgIC5mbGV4I3skaW5maXh9LXNocmluay0wICAgICB7IGZsZXgtc2hyaW5rOiAwICFpbXBvcnRhbnQ7IH1cbiAgICAuZmxleCN7JGluZml4fS1zaHJpbmstMSAgICAgeyBmbGV4LXNocmluazogMSAhaW1wb3J0YW50OyB9XG5cbiAgICAuanVzdGlmeS1jb250ZW50I3skaW5maXh9LXN0YXJ0ICAgeyBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQgIWltcG9ydGFudDsgfVxuICAgIC5qdXN0aWZ5LWNvbnRlbnQjeyRpbmZpeH0tZW5kICAgICB7IGp1c3RpZnktY29udGVudDogZmxleC1lbmQgIWltcG9ydGFudDsgfVxuICAgIC5qdXN0aWZ5LWNvbnRlbnQjeyRpbmZpeH0tY2VudGVyICB7IGp1c3RpZnktY29udGVudDogY2VudGVyICFpbXBvcnRhbnQ7IH1cbiAgICAuanVzdGlmeS1jb250ZW50I3skaW5maXh9LWJldHdlZW4geyBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW4gIWltcG9ydGFudDsgfVxuICAgIC5qdXN0aWZ5LWNvbnRlbnQjeyRpbmZpeH0tYXJvdW5kICB7IGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kICFpbXBvcnRhbnQ7IH1cblxuICAgIC5hbGlnbi1pdGVtcyN7JGluZml4fS1zdGFydCAgICB7IGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7IH1cbiAgICAuYWxpZ24taXRlbXMjeyRpbmZpeH0tZW5kICAgICAgeyBhbGlnbi1pdGVtczogZmxleC1lbmQgIWltcG9ydGFudDsgfVxuICAgIC5hbGlnbi1pdGVtcyN7JGluZml4fS1jZW50ZXIgICB7IGFsaWduLWl0ZW1zOiBjZW50ZXIgIWltcG9ydGFudDsgfVxuICAgIC5hbGlnbi1pdGVtcyN7JGluZml4fS1iYXNlbGluZSB7IGFsaWduLWl0ZW1zOiBiYXNlbGluZSAhaW1wb3J0YW50OyB9XG4gICAgLmFsaWduLWl0ZW1zI3skaW5maXh9LXN0cmV0Y2ggIHsgYWxpZ24taXRlbXM6IHN0cmV0Y2ggIWltcG9ydGFudDsgfVxuXG4gICAgLmFsaWduLWNvbnRlbnQjeyRpbmZpeH0tc3RhcnQgICB7IGFsaWduLWNvbnRlbnQ6IGZsZXgtc3RhcnQgIWltcG9ydGFudDsgfVxuICAgIC5hbGlnbi1jb250ZW50I3skaW5maXh9LWVuZCAgICAgeyBhbGlnbi1jb250ZW50OiBmbGV4LWVuZCAhaW1wb3J0YW50OyB9XG4gICAgLmFsaWduLWNvbnRlbnQjeyRpbmZpeH0tY2VudGVyICB7IGFsaWduLWNvbnRlbnQ6IGNlbnRlciAhaW1wb3J0YW50OyB9XG4gICAgLmFsaWduLWNvbnRlbnQjeyRpbmZpeH0tYmV0d2VlbiB7IGFsaWduLWNvbnRlbnQ6IHNwYWNlLWJldHdlZW4gIWltcG9ydGFudDsgfVxuICAgIC5hbGlnbi1jb250ZW50I3skaW5maXh9LWFyb3VuZCAgeyBhbGlnbi1jb250ZW50OiBzcGFjZS1hcm91bmQgIWltcG9ydGFudDsgfVxuICAgIC5hbGlnbi1jb250ZW50I3skaW5maXh9LXN0cmV0Y2ggeyBhbGlnbi1jb250ZW50OiBzdHJldGNoICFpbXBvcnRhbnQ7IH1cblxuICAgIC5hbGlnbi1zZWxmI3skaW5maXh9LWF1dG8gICAgIHsgYWxpZ24tc2VsZjogYXV0byAhaW1wb3J0YW50OyB9XG4gICAgLmFsaWduLXNlbGYjeyRpbmZpeH0tc3RhcnQgICAgeyBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7IH1cbiAgICAuYWxpZ24tc2VsZiN7JGluZml4fS1lbmQgICAgICB7IGFsaWduLXNlbGY6IGZsZXgtZW5kICFpbXBvcnRhbnQ7IH1cbiAgICAuYWxpZ24tc2VsZiN7JGluZml4fS1jZW50ZXIgICB7IGFsaWduLXNlbGY6IGNlbnRlciAhaW1wb3J0YW50OyB9XG4gICAgLmFsaWduLXNlbGYjeyRpbmZpeH0tYmFzZWxpbmUgeyBhbGlnbi1zZWxmOiBiYXNlbGluZSAhaW1wb3J0YW50OyB9XG4gICAgLmFsaWduLXNlbGYjeyRpbmZpeH0tc3RyZXRjaCAgeyBhbGlnbi1zZWxmOiBzdHJldGNoICFpbXBvcnRhbnQ7IH1cbiAgfVxufVxuIiwiLy8gc3R5bGVsaW50LWRpc2FibGUgZGVjbGFyYXRpb24tbm8taW1wb3J0YW50XG5cbkBlYWNoICRicmVha3BvaW50IGluIG1hcC1rZXlzKCRncmlkLWJyZWFrcG9pbnRzKSB7XG4gIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJGJyZWFrcG9pbnQpIHtcbiAgICAkaW5maXg6IGJyZWFrcG9pbnQtaW5maXgoJGJyZWFrcG9pbnQsICRncmlkLWJyZWFrcG9pbnRzKTtcblxuICAgIC5mbG9hdCN7JGluZml4fS1sZWZ0ICB7IGZsb2F0OiBsZWZ0ICFpbXBvcnRhbnQ7IH1cbiAgICAuZmxvYXQjeyRpbmZpeH0tcmlnaHQgeyBmbG9hdDogcmlnaHQgIWltcG9ydGFudDsgfVxuICAgIC5mbG9hdCN7JGluZml4fS1ub25lICB7IGZsb2F0OiBub25lICFpbXBvcnRhbnQ7IH1cbiAgfVxufVxuIiwiLy8gc3R5bGVsaW50LWRpc2FibGUgZGVjbGFyYXRpb24tbm8taW1wb3J0YW50XG5cbkBlYWNoICR2YWx1ZSBpbiAkb3ZlcmZsb3dzIHtcbiAgLm92ZXJmbG93LSN7JHZhbHVlfSB7IG92ZXJmbG93OiAkdmFsdWUgIWltcG9ydGFudDsgfVxufVxuIiwiLy8gc3R5bGVsaW50LWRpc2FibGUgZGVjbGFyYXRpb24tbm8taW1wb3J0YW50XG5cbi8vIENvbW1vbiB2YWx1ZXNcbkBlYWNoICRwb3NpdGlvbiBpbiAkcG9zaXRpb25zIHtcbiAgLnBvc2l0aW9uLSN7JHBvc2l0aW9ufSB7IHBvc2l0aW9uOiAkcG9zaXRpb24gIWltcG9ydGFudDsgfVxufVxuXG4vLyBTaG9ydGhhbmRcblxuLmZpeGVkLXRvcCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogJHppbmRleC1maXhlZDtcbn1cblxuLmZpeGVkLWJvdHRvbSB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogJHppbmRleC1maXhlZDtcbn1cblxuLnN0aWNreS10b3Age1xuICBAc3VwcG9ydHMgKHBvc2l0aW9uOiBzdGlja3kpIHtcbiAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgIHRvcDogMDtcbiAgICB6LWluZGV4OiAkemluZGV4LXN0aWNreTtcbiAgfVxufVxuIiwiLy9cbi8vIFNjcmVlbnJlYWRlcnNcbi8vXG5cbi5zci1vbmx5IHtcbiAgQGluY2x1ZGUgc3Itb25seSgpO1xufVxuXG4uc3Itb25seS1mb2N1c2FibGUge1xuICBAaW5jbHVkZSBzci1vbmx5LWZvY3VzYWJsZSgpO1xufVxuIiwiLy8gT25seSBkaXNwbGF5IGNvbnRlbnQgdG8gc2NyZWVuIHJlYWRlcnNcbi8vXG4vLyBTZWU6IGh0dHBzOi8vYTExeXByb2plY3QuY29tL3Bvc3RzL2hvdy10by1oaWRlLWNvbnRlbnQvXG4vLyBTZWU6IGh0dHBzOi8vaHVnb2dpcmF1ZGVsLmNvbS8yMDE2LzEwLzEzL2Nzcy1oaWRlLWFuZC1zZWVrL1xuXG5AbWl4aW4gc3Itb25seSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDFweDtcbiAgaGVpZ2h0OiAxcHg7XG4gIHBhZGRpbmc6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGJvcmRlcjogMDtcbn1cblxuLy8gVXNlIGluIGNvbmp1bmN0aW9uIHdpdGggLnNyLW9ubHkgdG8gb25seSBkaXNwbGF5IGNvbnRlbnQgd2hlbiBpdCdzIGZvY3VzZWQuXG4vL1xuLy8gVXNlZnVsIGZvciBcIlNraXAgdG8gbWFpbiBjb250ZW50XCIgbGlua3M7IHNlZSBodHRwczovL3d3dy53My5vcmcvVFIvMjAxMy9OT1RFLVdDQUcyMC1URUNIUy0yMDEzMDkwNS9HMVxuLy9cbi8vIENyZWRpdDogSFRNTDUgQm9pbGVycGxhdGVcblxuQG1peGluIHNyLW9ubHktZm9jdXNhYmxlIHtcbiAgJjphY3RpdmUsXG4gICY6Zm9jdXMge1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgIGNsaXA6IGF1dG87XG4gICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgfVxufVxuIiwiLy8gc3R5bGVsaW50LWRpc2FibGUgZGVjbGFyYXRpb24tbm8taW1wb3J0YW50XG5cbi5zaGFkb3ctc20geyBib3gtc2hhZG93OiAkYm94LXNoYWRvdy1zbSAhaW1wb3J0YW50OyB9XG4uc2hhZG93IHsgYm94LXNoYWRvdzogJGJveC1zaGFkb3cgIWltcG9ydGFudDsgfVxuLnNoYWRvdy1sZyB7IGJveC1zaGFkb3c6ICRib3gtc2hhZG93LWxnICFpbXBvcnRhbnQ7IH1cbi5zaGFkb3ctbm9uZSB7IGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDsgfVxuIiwiLy8gc3R5bGVsaW50LWRpc2FibGUgZGVjbGFyYXRpb24tbm8taW1wb3J0YW50XG5cbi8vIFdpZHRoIGFuZCBoZWlnaHRcblxuQGVhY2ggJHByb3AsICRhYmJyZXYgaW4gKHdpZHRoOiB3LCBoZWlnaHQ6IGgpIHtcbiAgQGVhY2ggJHNpemUsICRsZW5ndGggaW4gJHNpemVzIHtcbiAgICAuI3skYWJicmV2fS0jeyRzaXplfSB7ICN7JHByb3B9OiAkbGVuZ3RoICFpbXBvcnRhbnQ7IH1cbiAgfVxufVxuXG4ubXctMTAwIHsgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH1cbi5taC0xMDAgeyBtYXgtaGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7IH1cblxuLy8gVmlld3BvcnQgYWRkaXRpb25hbCBoZWxwZXJzXG5cbi5taW4tdnctMTAwIHsgbWluLXdpZHRoOiAxMDB2dyAhaW1wb3J0YW50OyB9XG4ubWluLXZoLTEwMCB7IG1pbi1oZWlnaHQ6IDEwMHZoICFpbXBvcnRhbnQ7IH1cblxuLnZ3LTEwMCB7IHdpZHRoOiAxMDB2dyAhaW1wb3J0YW50OyB9XG4udmgtMTAwIHsgaGVpZ2h0OiAxMDB2aCAhaW1wb3J0YW50OyB9XG4iLCIvL1xuLy8gU3RyZXRjaGVkIGxpbmtcbi8vXG5cbi5zdHJldGNoZWQtbGluayB7XG4gICY6OmFmdGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHotaW5kZXg6IDE7XG4gICAgLy8gSnVzdCBpbiBjYXNlIGBwb2ludGVyLWV2ZW50czogbm9uZWAgaXMgc2V0IG9uIGEgcGFyZW50XG4gICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gICAgY29udGVudDogXCJcIjtcbiAgICAvLyBJRTEwIGJ1Z2ZpeCwgc2VlIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzE2OTQ3OTY3L2llMTAtaG92ZXItcHNldWRvLWNsYXNzLWRvZXNudC13b3JrLXdpdGhvdXQtYmFja2dyb3VuZC1jb2xvclxuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7XG4gIH1cbn1cbiIsIi8vIHN0eWxlbGludC1kaXNhYmxlIGRlY2xhcmF0aW9uLW5vLWltcG9ydGFudFxuXG4vLyBNYXJnaW4gYW5kIFBhZGRpbmdcblxuQGVhY2ggJGJyZWFrcG9pbnQgaW4gbWFwLWtleXMoJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgkYnJlYWtwb2ludCkge1xuICAgICRpbmZpeDogYnJlYWtwb2ludC1pbmZpeCgkYnJlYWtwb2ludCwgJGdyaWQtYnJlYWtwb2ludHMpO1xuXG4gICAgQGVhY2ggJHByb3AsICRhYmJyZXYgaW4gKG1hcmdpbjogbSwgcGFkZGluZzogcCkge1xuICAgICAgQGVhY2ggJHNpemUsICRsZW5ndGggaW4gJHNwYWNlcnMge1xuICAgICAgICAuI3skYWJicmV2fSN7JGluZml4fS0jeyRzaXplfSB7ICN7JHByb3B9OiAkbGVuZ3RoICFpbXBvcnRhbnQ7IH1cbiAgICAgICAgLiN7JGFiYnJldn10I3skaW5maXh9LSN7JHNpemV9LFxuICAgICAgICAuI3skYWJicmV2fXkjeyRpbmZpeH0tI3skc2l6ZX0ge1xuICAgICAgICAgICN7JHByb3B9LXRvcDogJGxlbmd0aCAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICAgIC4jeyRhYmJyZXZ9ciN7JGluZml4fS0jeyRzaXplfSxcbiAgICAgICAgLiN7JGFiYnJldn14I3skaW5maXh9LSN7JHNpemV9IHtcbiAgICAgICAgICAjeyRwcm9wfS1yaWdodDogJGxlbmd0aCAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICAgIC4jeyRhYmJyZXZ9YiN7JGluZml4fS0jeyRzaXplfSxcbiAgICAgICAgLiN7JGFiYnJldn15I3skaW5maXh9LSN7JHNpemV9IHtcbiAgICAgICAgICAjeyRwcm9wfS1ib3R0b206ICRsZW5ndGggIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgICAuI3skYWJicmV2fWwjeyRpbmZpeH0tI3skc2l6ZX0sXG4gICAgICAgIC4jeyRhYmJyZXZ9eCN7JGluZml4fS0jeyRzaXplfSB7XG4gICAgICAgICAgI3skcHJvcH0tbGVmdDogJGxlbmd0aCAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gTmVnYXRpdmUgbWFyZ2lucyAoZS5nLiwgd2hlcmUgYC5tYi1uMWAgaXMgbmVnYXRpdmUgdmVyc2lvbiBvZiBgLm1iLTFgKVxuICAgIEBlYWNoICRzaXplLCAkbGVuZ3RoIGluICRzcGFjZXJzIHtcbiAgICAgIEBpZiAkc2l6ZSAhPSAwIHtcbiAgICAgICAgLm0jeyRpbmZpeH0tbiN7JHNpemV9IHsgbWFyZ2luOiAtJGxlbmd0aCAhaW1wb3J0YW50OyB9XG4gICAgICAgIC5tdCN7JGluZml4fS1uI3skc2l6ZX0sXG4gICAgICAgIC5teSN7JGluZml4fS1uI3skc2l6ZX0ge1xuICAgICAgICAgIG1hcmdpbi10b3A6IC0kbGVuZ3RoICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgICAgLm1yI3skaW5maXh9LW4jeyRzaXplfSxcbiAgICAgICAgLm14I3skaW5maXh9LW4jeyRzaXplfSB7XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJGxlbmd0aCAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICAgIC5tYiN7JGluZml4fS1uI3skc2l6ZX0sXG4gICAgICAgIC5teSN7JGluZml4fS1uI3skc2l6ZX0ge1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IC0kbGVuZ3RoICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgICAgLm1sI3skaW5maXh9LW4jeyRzaXplfSxcbiAgICAgICAgLm14I3skaW5maXh9LW4jeyRzaXplfSB7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kbGVuZ3RoICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTb21lIHNwZWNpYWwgbWFyZ2luIHV0aWxzXG4gICAgLm0jeyRpbmZpeH0tYXV0byB7IG1hcmdpbjogYXV0byAhaW1wb3J0YW50OyB9XG4gICAgLm10I3skaW5maXh9LWF1dG8sXG4gICAgLm15I3skaW5maXh9LWF1dG8ge1xuICAgICAgbWFyZ2luLXRvcDogYXV0byAhaW1wb3J0YW50O1xuICAgIH1cbiAgICAubXIjeyRpbmZpeH0tYXV0byxcbiAgICAubXgjeyRpbmZpeH0tYXV0byB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICB9XG4gICAgLm1iI3skaW5maXh9LWF1dG8sXG4gICAgLm15I3skaW5maXh9LWF1dG8ge1xuICAgICAgbWFyZ2luLWJvdHRvbTogYXV0byAhaW1wb3J0YW50O1xuICAgIH1cbiAgICAubWwjeyRpbmZpeH0tYXV0byxcbiAgICAubXgjeyRpbmZpeH0tYXV0byB7XG4gICAgICBtYXJnaW4tbGVmdDogYXV0byAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuIiwiLy8gc3R5bGVsaW50LWRpc2FibGUgZGVjbGFyYXRpb24tbm8taW1wb3J0YW50XG5cbi8vXG4vLyBUZXh0XG4vL1xuXG4udGV4dC1tb25vc3BhY2UgeyBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LW1vbm9zcGFjZSAhaW1wb3J0YW50OyB9XG5cbi8vIEFsaWdubWVudFxuXG4udGV4dC1qdXN0aWZ5ICB7IHRleHQtYWxpZ246IGp1c3RpZnkgIWltcG9ydGFudDsgfVxuLnRleHQtd3JhcCAgICAgeyB3aGl0ZS1zcGFjZTogbm9ybWFsICFpbXBvcnRhbnQ7IH1cbi50ZXh0LW5vd3JhcCAgIHsgd2hpdGUtc3BhY2U6IG5vd3JhcCAhaW1wb3J0YW50OyB9XG4udGV4dC10cnVuY2F0ZSB7IEBpbmNsdWRlIHRleHQtdHJ1bmNhdGU7IH1cblxuLy8gUmVzcG9uc2l2ZSBhbGlnbm1lbnRcblxuQGVhY2ggJGJyZWFrcG9pbnQgaW4gbWFwLWtleXMoJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgkYnJlYWtwb2ludCkge1xuICAgICRpbmZpeDogYnJlYWtwb2ludC1pbmZpeCgkYnJlYWtwb2ludCwgJGdyaWQtYnJlYWtwb2ludHMpO1xuXG4gICAgLnRleHQjeyRpbmZpeH0tbGVmdCAgIHsgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50OyB9XG4gICAgLnRleHQjeyRpbmZpeH0tcmlnaHQgIHsgdGV4dC1hbGlnbjogcmlnaHQgIWltcG9ydGFudDsgfVxuICAgIC50ZXh0I3skaW5maXh9LWNlbnRlciB7IHRleHQtYWxpZ246IGNlbnRlciAhaW1wb3J0YW50OyB9XG4gIH1cbn1cblxuLy8gVHJhbnNmb3JtYXRpb25cblxuLnRleHQtbG93ZXJjYXNlICB7IHRleHQtdHJhbnNmb3JtOiBsb3dlcmNhc2UgIWltcG9ydGFudDsgfVxuLnRleHQtdXBwZXJjYXNlICB7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2UgIWltcG9ydGFudDsgfVxuLnRleHQtY2FwaXRhbGl6ZSB7IHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplICFpbXBvcnRhbnQ7IH1cblxuLy8gV2VpZ2h0IGFuZCBpdGFsaWNzXG5cbi5mb250LXdlaWdodC1saWdodCAgIHsgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1saWdodCAhaW1wb3J0YW50OyB9XG4uZm9udC13ZWlnaHQtbGlnaHRlciB7IGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtbGlnaHRlciAhaW1wb3J0YW50OyB9XG4uZm9udC13ZWlnaHQtbm9ybWFsICB7IGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtbm9ybWFsICFpbXBvcnRhbnQ7IH1cbi5mb250LXdlaWdodC1ib2xkICAgIHsgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ib2xkICFpbXBvcnRhbnQ7IH1cbi5mb250LXdlaWdodC1ib2xkZXIgIHsgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ib2xkZXIgIWltcG9ydGFudDsgfVxuLmZvbnQtaXRhbGljICAgICAgICAgeyBmb250LXN0eWxlOiBpdGFsaWMgIWltcG9ydGFudDsgfVxuXG4vLyBDb250ZXh0dWFsIGNvbG9yc1xuXG4udGV4dC13aGl0ZSB7IGNvbG9yOiAkd2hpdGUgIWltcG9ydGFudDsgfVxuXG5AZWFjaCAkY29sb3IsICR2YWx1ZSBpbiAkdGhlbWUtY29sb3JzIHtcbiAgQGluY2x1ZGUgdGV4dC1lbXBoYXNpcy12YXJpYW50KFwiLnRleHQtI3skY29sb3J9XCIsICR2YWx1ZSk7XG59XG5cbi50ZXh0LWJvZHkgeyBjb2xvcjogJGJvZHktY29sb3IgIWltcG9ydGFudDsgfVxuLnRleHQtbXV0ZWQgeyBjb2xvcjogJHRleHQtbXV0ZWQgIWltcG9ydGFudDsgfVxuXG4udGV4dC1ibGFjay01MCB7IGNvbG9yOiByZ2JhKCRibGFjaywgLjUpICFpbXBvcnRhbnQ7IH1cbi50ZXh0LXdoaXRlLTUwIHsgY29sb3I6IHJnYmEoJHdoaXRlLCAuNSkgIWltcG9ydGFudDsgfVxuXG4vLyBNaXNjXG5cbi50ZXh0LWhpZGUge1xuICBAaW5jbHVkZSB0ZXh0LWhpZGUoJGlnbm9yZS13YXJuaW5nOiB0cnVlKTtcbn1cblxuLnRleHQtZGVjb3JhdGlvbi1ub25lIHsgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7IH1cblxuLnRleHQtYnJlYWsge1xuICB3b3JkLWJyZWFrOiBicmVhay13b3JkICFpbXBvcnRhbnQ7IC8vIElFICYgPCBFZGdlIDE4XG4gIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQgIWltcG9ydGFudDtcbn1cblxuLy8gUmVzZXRcblxuLnRleHQtcmVzZXQgeyBjb2xvcjogaW5oZXJpdCAhaW1wb3J0YW50OyB9XG4iLCIvLyBUZXh0IHRydW5jYXRlXG4vLyBSZXF1aXJlcyBpbmxpbmUtYmxvY2sgb3IgYmxvY2sgZm9yIHByb3BlciBzdHlsaW5nXG5cbkBtaXhpbiB0ZXh0LXRydW5jYXRlKCkge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbiIsIi8vIHN0eWxlbGludC1kaXNhYmxlIGRlY2xhcmF0aW9uLW5vLWltcG9ydGFudFxuXG4vLyBUeXBvZ3JhcGh5XG5cbkBtaXhpbiB0ZXh0LWVtcGhhc2lzLXZhcmlhbnQoJHBhcmVudCwgJGNvbG9yKSB7XG4gICN7JHBhcmVudH0ge1xuICAgIGNvbG9yOiAkY29sb3IgIWltcG9ydGFudDtcbiAgfVxuICBAaWYgJGVtcGhhc2l6ZWQtbGluay1ob3Zlci1kYXJrZW4tcGVyY2VudGFnZSAhPSAwIHtcbiAgICBhI3skcGFyZW50fSB7XG4gICAgICBAaW5jbHVkZSBob3Zlci1mb2N1cyB7XG4gICAgICAgIGNvbG9yOiBkYXJrZW4oJGNvbG9yLCAkZW1waGFzaXplZC1saW5rLWhvdmVyLWRhcmtlbi1wZXJjZW50YWdlKSAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gQ1NTIGltYWdlIHJlcGxhY2VtZW50XG5AbWl4aW4gdGV4dC1oaWRlKCRpZ25vcmUtd2FybmluZzogZmFsc2UpIHtcbiAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIGZvbnQtZmFtaWx5LW5vLW1pc3NpbmctZ2VuZXJpYy1mYW1pbHkta2V5d29yZFxuICBmb250OiAwLzAgYTtcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMDtcblxuICBAaW5jbHVkZSBkZXByZWNhdGUoXCJgdGV4dC1oaWRlKClgXCIsIFwidjQuMS4wXCIsIFwidjVcIiwgJGlnbm9yZS13YXJuaW5nKTtcbn1cbiIsIi8vIHN0eWxlbGludC1kaXNhYmxlIGRlY2xhcmF0aW9uLW5vLWltcG9ydGFudFxuXG4vL1xuLy8gVmlzaWJpbGl0eSB1dGlsaXRpZXNcbi8vXG5cbi52aXNpYmxlIHtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZSAhaW1wb3J0YW50O1xufVxuXG4uaW52aXNpYmxlIHtcbiAgdmlzaWJpbGl0eTogaGlkZGVuICFpbXBvcnRhbnQ7XG59XG4iLCIvLyBzdHlsZWxpbnQtZGlzYWJsZSBkZWNsYXJhdGlvbi1uby1pbXBvcnRhbnQsIHNlbGVjdG9yLW5vLXF1YWxpZnlpbmctdHlwZVxuXG4vLyBTb3VyY2U6IGh0dHBzOi8vZ2l0aHViLmNvbS9oNWJwL2h0bWw1LWJvaWxlcnBsYXRlL2Jsb2IvbWFzdGVyL3NyYy9jc3MvbWFpbi5jc3NcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFByaW50IHN0eWxlcy5cbi8vIElubGluZWQgdG8gYXZvaWQgdGhlIGFkZGl0aW9uYWwgSFRUUCByZXF1ZXN0OlxuLy8gaHR0cHM6Ly93d3cucGhwaWVkLmNvbS9kZWxheS1sb2FkaW5nLXlvdXItcHJpbnQtY3NzL1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQGlmICRlbmFibGUtcHJpbnQtc3R5bGVzIHtcbiAgQG1lZGlhIHByaW50IHtcbiAgICAqLFxuICAgICo6OmJlZm9yZSxcbiAgICAqOjphZnRlciB7XG4gICAgICAvLyBCb290c3RyYXAgc3BlY2lmaWM7IGNvbW1lbnQgb3V0IGBjb2xvcmAgYW5kIGBiYWNrZ3JvdW5kYFxuICAgICAgLy9jb2xvcjogJGJsYWNrICFpbXBvcnRhbnQ7IC8vIEJsYWNrIHByaW50cyBmYXN0ZXJcbiAgICAgIHRleHQtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAvL2JhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICAmOm5vdCguYnRuKSB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEJvb3RzdHJhcCBzcGVjaWZpYzsgY29tbWVudCB0aGUgZm9sbG93aW5nIHNlbGVjdG9yIG91dFxuICAgIC8vYVtocmVmXTo6YWZ0ZXIge1xuICAgIC8vICBjb250ZW50OiBcIiAoXCIgYXR0cihocmVmKSBcIilcIjtcbiAgICAvL31cblxuICAgIGFiYnJbdGl0bGVdOjphZnRlciB7XG4gICAgICBjb250ZW50OiBcIiAoXCIgYXR0cih0aXRsZSkgXCIpXCI7XG4gICAgfVxuXG4gICAgLy8gQm9vdHN0cmFwIHNwZWNpZmljOyBjb21tZW50IHRoZSBmb2xsb3dpbmcgc2VsZWN0b3Igb3V0XG4gICAgLy9cbiAgICAvLyBEb24ndCBzaG93IGxpbmtzIHRoYXQgYXJlIGZyYWdtZW50IGlkZW50aWZpZXJzLFxuICAgIC8vIG9yIHVzZSB0aGUgYGphdmFzY3JpcHQ6YCBwc2V1ZG8gcHJvdG9jb2xcbiAgICAvL1xuXG4gICAgLy9hW2hyZWZePVwiI1wiXTo6YWZ0ZXIsXG4gICAgLy9hW2hyZWZePVwiamF2YXNjcmlwdDpcIl06OmFmdGVyIHtcbiAgICAvLyBjb250ZW50OiBcIlwiO1xuICAgIC8vfVxuXG4gICAgcHJlIHtcbiAgICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcCAhaW1wb3J0YW50O1xuICAgIH1cbiAgICBwcmUsXG4gICAgYmxvY2txdW90ZSB7XG4gICAgICBib3JkZXI6ICRib3JkZXItd2lkdGggc29saWQgJGdyYXktNTAwOyAvLyBCb290c3RyYXAgY3VzdG9tIGNvZGU7IHVzaW5nIGAkYm9yZGVyLXdpZHRoYCBpbnN0ZWFkIG9mIDFweFxuICAgICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xuICAgIH1cblxuICAgIC8vXG4gICAgLy8gUHJpbnRpbmcgVGFibGVzOlxuICAgIC8vIGh0dHA6Ly9jc3MtZGlzY3Vzcy5pbmN1dGlvLmNvbS93aWtpL1ByaW50aW5nX1RhYmxlc1xuICAgIC8vXG5cbiAgICB0aGVhZCB7XG4gICAgICBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXA7XG4gICAgfVxuXG4gICAgdHIsXG4gICAgaW1nIHtcbiAgICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgICB9XG5cbiAgICBwLFxuICAgIGgyLFxuICAgIGgzIHtcbiAgICAgIG9ycGhhbnM6IDM7XG4gICAgICB3aWRvd3M6IDM7XG4gICAgfVxuXG4gICAgaDIsXG4gICAgaDMge1xuICAgICAgcGFnZS1icmVhay1hZnRlcjogYXZvaWQ7XG4gICAgfVxuXG4gICAgLy8gQm9vdHN0cmFwIHNwZWNpZmljIGNoYW5nZXMgc3RhcnRcblxuICAgIC8vIFNwZWNpZnkgYSBzaXplIGFuZCBtaW4td2lkdGggdG8gbWFrZSBwcmludGluZyBjbG9zZXIgYWNyb3NzIGJyb3dzZXJzLlxuICAgIC8vIFdlIGRvbid0IHNldCBtYXJnaW4gaGVyZSBiZWNhdXNlIGl0IGJyZWFrcyBgc2l6ZWAgaW4gQ2hyb21lLiBXZSBhbHNvXG4gICAgLy8gZG9uJ3QgdXNlIGAhaW1wb3J0YW50YCBvbiBgc2l6ZWAgYXMgaXQgYnJlYWtzIGluIENocm9tZS5cbiAgICBAcGFnZSB7XG4gICAgICBzaXplOiAkcHJpbnQtcGFnZS1zaXplO1xuICAgIH1cbiAgICBib2R5IHtcbiAgICAgIG1pbi13aWR0aDogJHByaW50LWJvZHktbWluLXdpZHRoICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgIC5jb250YWluZXIge1xuICAgICAgbWluLXdpZHRoOiAkcHJpbnQtYm9keS1taW4td2lkdGggIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAvLyBCb290c3RyYXAgY29tcG9uZW50c1xuICAgIC5uYXZiYXIge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gICAgLmJhZGdlIHtcbiAgICAgIGJvcmRlcjogJGJvcmRlci13aWR0aCBzb2xpZCAkYmxhY2s7XG4gICAgfVxuXG4gICAgLnRhYmxlIHtcbiAgICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2UgIWltcG9ydGFudDtcblxuICAgICAgdGQsXG4gICAgICB0aCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZSAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgIH1cblxuICAgIC50YWJsZS1ib3JkZXJlZCB7XG4gICAgICB0aCxcbiAgICAgIHRkIHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGdyYXktMzAwICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnRhYmxlLWRhcmsge1xuICAgICAgY29sb3I6IGluaGVyaXQ7XG5cbiAgICAgIHRoLFxuICAgICAgdGQsXG4gICAgICB0aGVhZCB0aCxcbiAgICAgIHRib2R5ICsgdGJvZHkge1xuICAgICAgICBib3JkZXItY29sb3I6ICR0YWJsZS1ib3JkZXItY29sb3I7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnRhYmxlIC50aGVhZC1kYXJrIHRoIHtcbiAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgYm9yZGVyLWNvbG9yOiAkdGFibGUtYm9yZGVyLWNvbG9yO1xuICAgIH1cblxuICAgIC8vIEJvb3RzdHJhcCBzcGVjaWZpYyBjaGFuZ2VzIGVuZFxuICB9XG59XG4iLCJAaW1wb3J0IFwifmJvb3RzdHJhcC9zY3NzL2Z1bmN0aW9uc1wiO1xuQGltcG9ydCBcIn5ib290c3RyYXAvc2Nzcy92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJ+Ym9vdHN0cmFwL3Njc3MvbWl4aW5zXCI7XG5AaW1wb3J0IFwifmJvb3RzdHJhcC9zY3NzL3Jvb3RcIjtcbkBpbXBvcnQgXCJ+Ym9vdHN0cmFwL3Njc3MvcmVib290XCI7XG4vL1xuQGltcG9ydCBcIn5ib290c3RyYXAvc2Nzcy90eXBlXCI7XG5AaW1wb3J0IFwifmJvb3RzdHJhcC9zY3NzL2ltYWdlc1wiO1xuLy9AaW1wb3J0IFwifmJvb3RzdHJhcC9zY3NzL2NvZGVcIjtcbkBpbXBvcnQgXCJ+Ym9vdHN0cmFwL3Njc3MvZ3JpZFwiO1xuLy9AaW1wb3J0IFwifmJvb3RzdHJhcC9zY3NzL3RhYmxlc1wiO1xuLy9cbkBpbXBvcnQgXCJ+Ym9vdHN0cmFwL3Njc3MvZm9ybXNcIjtcbi8vXG5AaW1wb3J0IFwifmJvb3RzdHJhcC9zY3NzL2J1dHRvbnNcIjtcbkBpbXBvcnQgXCJ+Ym9vdHN0cmFwL3Njc3MvdHJhbnNpdGlvbnNcIjtcbi8vQGltcG9ydCBcIn5ib290c3RyYXAvc2Nzcy9kcm9wZG93blwiO1xuLy9AaW1wb3J0IFwifmJvb3RzdHJhcC9zY3NzL2J1dHRvbi1ncm91cFwiO1xuLy9cbkBpbXBvcnQgXCJ+Ym9vdHN0cmFwL3Njc3MvaW5wdXQtZ3JvdXBcIjtcbkBpbXBvcnQgXCJ+Ym9vdHN0cmFwL3Njc3MvY3VzdG9tLWZvcm1zXCI7XG4vL1xuLy9AaW1wb3J0IFwifmJvb3RzdHJhcC9zY3NzL25hdlwiO1xuLy9AaW1wb3J0IFwifmJvb3RzdHJhcC9zY3NzL25hdmJhclwiO1xuXG4vL0BpbXBvcnQgXCJ+Ym9vdHN0cmFwL3Njc3MvY2FyZFwiO1xuLy9AaW1wb3J0IFwifmJvb3RzdHJhcC9zY3NzL2JyZWFkY3J1bWJcIjtcbkBpbXBvcnQgXCJ+Ym9vdHN0cmFwL3Njc3MvcGFnaW5hdGlvblwiO1xuQGltcG9ydCBcIn5ib290c3RyYXAvc2Nzcy9iYWRnZVwiO1xuLy9AaW1wb3J0IFwifmJvb3RzdHJhcC9zY3NzL2p1bWJvdHJvblwiO1xuQGltcG9ydCBcIn5ib290c3RyYXAvc2Nzcy9hbGVydFwiO1xuLy9AaW1wb3J0IFwifmJvb3RzdHJhcC9zY3NzL3Byb2dyZXNzXCI7XG5AaW1wb3J0IFwifmJvb3RzdHJhcC9zY3NzL21lZGlhXCI7XG5AaW1wb3J0IFwifmJvb3RzdHJhcC9zY3NzL2xpc3QtZ3JvdXBcIjtcbkBpbXBvcnQgXCJ+Ym9vdHN0cmFwL3Njc3MvY2xvc2VcIjtcbkBpbXBvcnQgXCJ+Ym9vdHN0cmFwL3Njc3MvbW9kYWxcIjtcbi8vQGltcG9ydCBcIn5ib290c3RyYXAvc2Nzcy90b29sdGlwXCI7XG4vL0BpbXBvcnQgXCJ+Ym9vdHN0cmFwL3Njc3MvcG9wb3ZlclwiO1xuLy9AaW1wb3J0IFwifmJvb3RzdHJhcC9zY3NzL2Nhcm91c2VsXCI7XG5AaW1wb3J0IFwifmJvb3RzdHJhcC9zY3NzL3V0aWxpdGllc1wiO1xuQGltcG9ydCBcIn5ib290c3RyYXAvc2Nzcy9wcmludFwiO1xuQGltcG9ydCBcIn5ib290c3RyYXAvc2Nzcy92YXJpYWJsZXNcIjtcblxuLmJnLWRhcmt7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGMtYmxhY2sgIWltcG9ydGFudDtcbn1cblxuJHNwLTEgICAgOiBtYXAtZ2V0KCRzcGFjZXJzLCAxKTsgLy8gNHB4XG4kc3AtMiAgICA6IG1hcC1nZXQoJHNwYWNlcnMsIDIpOyAvLyA4cHhcbiRzcC0zICAgIDogbWFwLWdldCgkc3BhY2VycywgMyk7IC8vIDE2cHhcbiRzcC00ICAgIDogbWFwLWdldCgkc3BhY2VycywgNCk7IC8vIDI0cHhcbiRzcC01ICAgIDogbWFwLWdldCgkc3BhY2VycywgNSk7IC8vIDMycHhcbiRzcC02ICAgIDogJHNwLTUgKiAxLjI1O1xuJHNwLTRfMyAgOiAkc3AtNCArICRzcC0zO1xuJHNwLTVfMDUgOiAkc3AtNSArICRzcC0xLzI7XG5cbiIsIi5iYWNrLXRvLXRvcCB7XG5cbiAgICB3aWR0aCAgICAgICAgICAgIDogNDVweDtcbiAgICByaWdodCAgICAgICAgICAgIDogMzBweDtcbiAgICBoZWlnaHQgICAgICAgICAgIDogNDVweDtcbiAgICBib3R0b20gICAgICAgICAgIDogMzBweDtcbiAgICBjdXJzb3IgICAgICAgICAgIDogcG9pbnRlcjtcbiAgICB6LWluZGV4ICAgICAgICAgIDogMTAwO1xuICAgIG9wYWNpdHkgICAgICAgICAgOiAwO1xuICAgIHBvc2l0aW9uICAgICAgICAgOiBmaXhlZDtcbiAgICB0cmFuc2l0aW9uICAgICAgIDogdHJhbnNmb3JtIC4zcztcbiAgICB0ZXh0LWFsaWduICAgICAgIDogY2VudGVyO1xuICAgIHZpc2liaWxpdHkgICAgICAgOiBoaWRkZW47XG4gICAgYm9yZGVyLXJhZGl1cyAgICA6IDUwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yIDogcmdiYSgkYy1ncmF5LCAuOCk7XG5cbiAgICBAaW5jbHVkZSBmKCcyNHB4LzM4cHgnLCAkYy13aGl0ZSk7XG4gICAgQGluY2x1ZGUgc3VibWVudS1oaWRkZW47XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgdHJhbnNmb3JtIDogc2NhbGUzZCgxLjEsIDEuMSwgMS4xKTtcbiAgICB9XG59XG5cbi5zY3JvbGwge1xuICAgIC5iYWNrLXRvLXRvcCB7XG4gICAgICAgIEBpbmNsdWRlIHN1Ym1lbnUtdmlzaWJsZTtcbiAgICB9XG59XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS1cbiogQ09NTUVOVFNcbiovXG5cbi5jb21tZW50LXJlc3BvbmQge1xuXHRtYXJnaW4tdG9wIDogNjBweDtcbn1cblxuLmNvbW1lbnRzIHtcblx0bWFyZ2luIDogMzBweCAwO1xufVxuXG4uY29tbWVudHMgLnRpdGxlLFxuLmNvbW1lbnQtbm90ZXMge1xuXHRtYXJnaW4gICAgICA6IDEwcHggYXV0bztcblx0Ly9mb250LXNpemUgICA6IDI2cHg7XG5cdC8vY29sb3IgICAgICAgOiByZ2JhKDAsIDAsIDAsIC41KTtcblx0Ly9mb250LXdlaWdodCA6IG5vcm1hbDtcblx0dGV4dC1hbGlnbiAgOiBjZW50ZXI7XG59XG5cbi5jb21tZW50cyAuY29tbWVudC1yZXNwb25kIC50aXRsZSB7XG5cdC8vZm9udC13ZWlnaHQgOiBib2xkO1xufVxuXG4uY29tbWVudHMgLmNvbW1lbnQtcmVwbHktdGl0bGUge1xuXHR0ZXh0LWFsaWduIDogY2VudGVyO1xufVxuXG4uY29tbWVudHMgLnRpdGxlIHNwYW4ge1xuXHRwYWRkaW5nLWJvdHRvbSA6IDNweDtcblx0Ym9yZGVyLWJvdHRvbSAgOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAuMik7XG59XG5cbi5jb21tZW50LW5vdGVzIHtcblx0Zm9udC1zaXplIDogMTZweDtcbn1cblxuLmNvbW1lbnQge1xuXHRtYXJnaW4tYm90dG9tICA6IDMwcHg7XG5cdHBhZGRpbmctYm90dG9tIDogMzBweDtcblx0Ym9yZGVyLWJvdHRvbSAgOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAuMDc1KTtcbn1cblxuLmNvbW1lbnQgLnJlcGx5IHtcblx0cGFkZGluZyAgICAgICAgOiA3cHggMjBweDtcblx0cG9zaXRpb24gICAgICAgOiBhYnNvbHV0ZTtcblx0dG9wICAgICAgICAgICAgOiAwO1xuXHRyaWdodCAgICAgICAgICA6IDE1cHg7XG5cdGZvbnQtc2l6ZSAgICAgIDogMTZweDtcblx0Y29sb3IgICAgICAgICAgOiByZ2JhKDAsIDAsIDAsIC40KTtcblx0dGV4dC10cmFuc2Zvcm0gOiB1cHBlcmNhc2U7XG5cdGxldHRlci1zcGFjaW5nIDogM3B4O1xuXHRiYWNrZ3JvdW5kICAgICA6IHJnYmEoMCwgMCwgMCwgLjA3NSk7XG59XG5cbi5jb21tZW50IC5yZXBseSBhOmhvdmVyIHtcblx0dGV4dC1kZWNvcmF0aW9uIDogbm9uZTtcbn1cblxuLmNvbW1lbnQtYXV0aG9yIHtcblx0bWFyZ2luLWJvdHRvbSA6IDA7XG59XG5cbi5jb21tZW50LWF1dGhvciBpbWcsXG4uY29tbWVudC1hdXRob3Igc3BhbiB7XG5cdGRpc3BsYXkgOiBub25lO1xufVxuXG4uY29tbWVudC1hdXRob3IgYiB7XG5cdGZvbnQtc2l6ZSAgICAgIDogMThweDtcblx0dGV4dC10cmFuc2Zvcm0gOiB1cHBlcmNhc2U7XG5cdGZvbnQtd2VpZ2h0ICAgIDogbm9ybWFsO1xuXHRjb2xvciAgICAgICAgICA6IHJnYmEoMCwgMCwgMCwgLjUpO1xufVxuXG4uY29tbWVudC1tZXRhZGF0YSB7XG5cdG1hcmdpbiA6IDEwcHggMDtcbn1cblxuLmNvbW1lbnQtbWV0YWRhdGEgYSB7XG5cdGZvbnQtc2l6ZSAgOiAxNHB4O1xuXHRmb250LXN0eWxlIDogaXRhbGljO1xuXHRjb2xvciAgICAgIDogcmdiYSgwLCAwLCAwLCAuNCk7XG59XG5cbi5jb21tZW50cyBsYWJlbCB7XG5cdG1hcmdpbiA6IDVweCAwO1xufVxuXG4uY29tbWVudHMgaW5wdXQge1xuXHR3aWR0aCAgICAgICAgIDogMjUlO1xuXHRmbG9hdCAgICAgICAgIDogbGVmdDtcblx0Ym9yZGVyICAgICAgICA6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMTUpO1xuXHRtYXJnaW4gICAgICAgIDogMTBweCA0MHB4IDEwcHggMDtcblx0cGFkZGluZyAgICAgICA6IDEzcHggMiU7XG5cdGZvbnQtc2l6ZSAgICAgOiAxM3B4O1xuXHRiYWNrZ3JvdW5kICAgIDogbm9uZSByZXBlYXQgc2Nyb2xsIDAgMCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7XG5cdGJvcmRlci1yYWRpdXMgOiAycHg7XG5cdGNvbG9yICAgICAgICAgOiAjMzMzO1xufVxuXG4uY29tbWVudHMgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcblx0d2lkdGggOiBhdXRvO1xufVxuXG4uY29tbWVudHMgdGV4dGFyZWEge1xuXHRjb2xvciAgICAgICAgIDogI2RkZDtcblx0d2lkdGggICAgICAgICA6IDEwMCU7XG5cdGhlaWdodCAgICAgICAgOiAxNTBweDtcblx0bWFyZ2luICAgICAgICA6IDEwcHggMDtcblx0Ym9yZGVyICAgICAgICA6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMTUpO1xuXHRwYWRkaW5nICAgICAgIDogOHB4IDExcHg7XG5cdGZvbnQtc2l6ZSAgICAgOiAxM3B4O1xuXHRiYWNrZ3JvdW5kICAgIDogbm9uZSByZXBlYXQgc2Nyb2xsIDAgMCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7XG5cdGJvcmRlci1yYWRpdXMgOiAycHhcbn1cblxuLmNvbW1lbnRzIDo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG5cdGZvbnQtc2l6ZSAgICAgIDogMTAwJTtcblx0Y29sb3IgICAgICAgICAgOiBzaWx2ZXI7XG5cdGZvbnQtd2VpZ2h0ICAgIDogNzAwO1xuXHRmb250LXN0eWxlICAgICA6IGl0YWxpYztcblx0b3BhY2l0eSAgICAgICAgOiAxO1xuXHR0cmFuc2l0aW9uICAgICA6IC4zcztcblx0dGV4dC10cmFuc2Zvcm0gOiB1cHBlcmNhc2U7XG59XG5cbi5jb21tZW50cyA6LW1vei1wbGFjZWhvbGRlciB7XG5cdGZvbnQtc2l6ZSAgICAgIDogMTAwJTtcblx0Y29sb3IgICAgICAgICAgOiBzaWx2ZXI7O1xuXHRmb250LXdlaWdodCAgICA6IDcwMDtcblx0Zm9udC1zdHlsZSAgICAgOiBpdGFsaWM7XG5cdG9wYWNpdHkgICAgICAgIDogMTtcblx0dHJhbnNpdGlvbiAgICAgOiAuM3M7XG5cdHRleHQtdHJhbnNmb3JtIDogdXBwZXJjYXNlO1xufVxuXG4uY29tbWVudHMgOjotbW96LXBsYWNlaG9sZGVyIHtcblx0Zm9udC1zaXplICAgICAgOiAxMDAlO1xuXHRjb2xvciAgICAgICAgICA6IHNpbHZlcjs7XG5cdGZvbnQtd2VpZ2h0ICAgIDogNzAwO1xuXHRmb250LXN0eWxlICAgICA6IGl0YWxpYztcblx0b3BhY2l0eSAgICAgICAgOiAxO1xuXHR0cmFuc2l0aW9uICAgICA6IC4zcztcblx0dGV4dC10cmFuc2Zvcm0gOiB1cHBlcmNhc2U7XG59XG5cbi5jb21tZW50cyA6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcblx0Zm9udC1zaXplICAgICAgOiAxMDAlO1xuXHRjb2xvciAgICAgICAgICA6IHNpbHZlcjs7XG5cdGZvbnQtd2VpZ2h0ICAgIDogNzAwO1xuXHRmb250LXN0eWxlICAgICA6IGl0YWxpYztcblx0b3BhY2l0eSAgICAgICAgOiAxO1xuXHR0cmFuc2l0aW9uICAgICA6IC4zcztcblx0dGV4dC10cmFuc2Zvcm0gOiB1cHBlcmNhc2U7XG59XG5cbi5jb21tZW50cyAuc3VibWl0IHtcblx0Y29sb3IgICAgICAgICAgICAgIDogI2ZmZjtcblx0Y3Vyc29yICAgICAgICAgICAgIDogcG9pbnRlcjtcblx0Ym9yZGVyICAgICAgICAgICAgIDogMCBub25lO1xuXHRkaXNwbGF5ICAgICAgICAgICAgOiBibG9jaztcblx0cGFkZGluZyAgICAgICAgICAgIDogMCAxNXB4O1xuXHRmb250LXNpemUgICAgICAgICAgOiAxM3B4O1xuXHR0ZXh0LWFsaWduICAgICAgICAgOiBjZW50ZXI7XG5cdGJveC1zaGFkb3cgICAgICAgICA6IDAgMTJweCAxOXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKSBpbnNldCwgMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcblx0LXdlYmtpdC10cmFuc2l0aW9uIDogYWxsIDAuMnMgZWFzZSAwcztcblx0dHJhbnNpdGlvbiAgICAgICAgIDogYWxsIDAuMnMgZWFzZSAwcztcblx0bGluZS1oZWlnaHQgICAgICAgIDogNDRweDtcblx0Zm9udC13ZWlnaHQgICAgICAgIDogYm9sZDtcblx0dGV4dC1zaGFkb3cgICAgICAgIDogbm9uZTtcblx0Ym9yZGVyLXJhZGl1cyAgICAgIDogM3B4O1xuXHRiYWNrZ3JvdW5kLWNvbG9yICAgOiAjMTY0MDUzXG59IiwiJGNvbG9ycyA6ICRjLWFxdWEtZ3JleSAkYy1kYXJrLWdyYXkgJGMtcmVkICRjLW9yYW5nZTtcclxuJHNpemUgOiAyZW07IC8qY2hhbmdlIHRoaXMgdG8gcmVzaXplKi9cclxuXHJcbkBmdW5jdGlvbiBmLXNjYWxlKCRpKSB7XHJcblx0QHJldHVybiAxZW0gKiAkaTtcclxufVxyXG5cclxuLmMge1xyXG5cdGxpc3Qtc3R5bGUgOiBub25lO1xyXG5cdG1hcmdpbiAgICAgOiAwO1xyXG5cdHBhZGRpbmcgICAgOiAwO1xyXG5cdHBvc2l0aW9uICAgOiByZWxhdGl2ZTtcclxuXHR3aWR0aCAgICAgIDogNWVtO1xyXG5cdHdpZHRoICAgICAgOiBmLXNjYWxlKDUpO1xyXG5cdGxpIHtcclxuXHRcdHBvc2l0aW9uICAgICAgICAgOiBhYnNvbHV0ZTtcclxuXHRcdGxlZnQgICAgICAgICAgICAgOiAwO1xyXG5cdFx0cmlnaHQgICAgICAgICAgICA6IDA7XHJcblx0XHRib3R0b20gICAgICAgICAgIDogMDtcclxuXHRcdHRvcCAgICAgICAgICAgICAgOiAwO1xyXG5cdFx0bWFyZ2luICAgICAgICAgICA6IGF1dG87XHJcblx0XHRib3JkZXItcmFkaXVzICAgIDogNTAlO1xyXG5cdFx0Ym94LXNpemluZyAgICAgICA6IGJvcmRlci1ib3g7XHJcblx0XHRkaXNwbGF5ICAgICAgICAgIDogZmxleDtcclxuXHRcdGp1c3RpZnktY29udGVudCAgOiBjZW50ZXI7XHJcblx0XHRhbGlnbi1pdGVtcyAgICAgIDogY2VudGVyO1xyXG5cdFx0dHJhbnNmb3JtLW9yaWdpbiA6IGNlbnRlciBjZW50ZXI7XHJcblx0XHRhbmltYXRpb24gICAgICAgIDogYW5pbSAzcyBlYXNlLWluLW91dCBpbmZpbml0ZTtcclxuXHRcdHdpbGwtY2hhbmdlICAgICAgOiB0cmFuc2Zvcm0sIGZpbHRlcjtcclxuXHRcdCY6bnRoLWNoaWxkKDEpIHtcclxuXHRcdFx0d2lkdGggIDogZi1zY2FsZSgxKTtcclxuXHRcdFx0aGVpZ2h0IDogZi1zY2FsZSgxKTtcclxuXHRcdFx0JjphZnRlciB7XHJcblx0XHRcdFx0Y29udGVudCAgICAgICA6ICcnO1xyXG5cdFx0XHRcdGRpc3BsYXkgICAgICAgOiBibG9jaztcclxuXHRcdFx0XHRmb250LXNpemUgICAgIDogMjUlO1xyXG5cdFx0XHRcdHdpZHRoICAgICAgICAgOiAxZW07XHJcblx0XHRcdFx0aGVpZ2h0ICAgICAgICA6IDFlbTtcclxuXHRcdFx0XHRib3JkZXItcmFkaXVzIDogNTAlO1xyXG5cdFx0XHRcdGJveC1zaGFkb3cgICAgOiBmLXNjYWxlKDEpIDAgMCByZ2JhKG50aCgkY29sb3JzLCAxKSwgLjIpLFxyXG5cdFx0XHRcdC0oZi1zY2FsZSgxKSkgMCAwIHJnYmEobnRoKCRjb2xvcnMsIDIpLCAuMiksXHJcblx0XHRcdFx0MCBmLXNjYWxlKDEpIDAgcmdiYShudGgoJGNvbG9ycywgMyksIC4yKSxcclxuXHRcdFx0XHQwICgtKGYtc2NhbGUoMSkpKSAwIHJnYmEobnRoKCRjb2xvcnMsIDQpLCAuMik7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdCY6bnRoLWNoaWxkKDIpIHtcclxuXHRcdFx0YW5pbWF0aW9uLWRlbGF5IDogLjFzO1xyXG5cdFx0XHR3aWR0aCAgICAgICAgICAgOiBmLXNjYWxlKDIpO1xyXG5cdFx0XHRoZWlnaHQgICAgICAgICAgOiBmLXNjYWxlKDIpO1xyXG5cdFx0XHQmOmFmdGVyIHtcclxuXHRcdFx0XHRjb250ZW50ICAgICAgIDogJyc7XHJcblx0XHRcdFx0ZGlzcGxheSAgICAgICA6IGJsb2NrO1xyXG5cdFx0XHRcdGZvbnQtc2l6ZSAgICAgOiA1MCU7XHJcblx0XHRcdFx0d2lkdGggICAgICAgICA6IDFlbTtcclxuXHRcdFx0XHRoZWlnaHQgICAgICAgIDogMWVtO1xyXG5cdFx0XHRcdGJvcmRlci1yYWRpdXMgOiA1MCU7XHJcblx0XHRcdFx0Ym94LXNoYWRvdyAgICA6IGYtc2NhbGUoMS41KSAwIDAgcmdiYShudGgoJGNvbG9ycywgMSksIC40KSxcclxuXHRcdFx0XHQtKGYtc2NhbGUoMS41KSkgMCAwIHJnYmEobnRoKCRjb2xvcnMsIDIpLCAuNCksXHJcblx0XHRcdFx0MCBmLXNjYWxlKDEuNSkgMCByZ2JhKG50aCgkY29sb3JzLCAzKSwgLjQpLFxyXG5cdFx0XHRcdDAgKC0oZi1zY2FsZSgxLjUpKSkgMCByZ2JhKG50aCgkY29sb3JzLCA0KSwgLjQpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHQmOm50aC1jaGlsZCgzKSB7XHJcblx0XHRcdGFuaW1hdGlvbi1kZWxheSA6IC4xNXM7XHJcblx0XHRcdHdpZHRoICAgICAgICAgICA6IGYtc2NhbGUoMyk7XHJcblx0XHRcdGhlaWdodCAgICAgICAgICA6IGYtc2NhbGUoMyk7XHJcblx0XHRcdCY6YWZ0ZXIge1xyXG5cdFx0XHRcdGNvbnRlbnQgICAgICAgOiAnJztcclxuXHRcdFx0XHRkaXNwbGF5ICAgICAgIDogYmxvY2s7XHJcblx0XHRcdFx0Zm9udC1zaXplICAgICA6IDc1JTtcclxuXHRcdFx0XHR3aWR0aCAgICAgICAgIDogMWVtO1xyXG5cdFx0XHRcdGhlaWdodCAgICAgICAgOiAxZW07XHJcblx0XHRcdFx0Ym9yZGVyLXJhZGl1cyA6IDUwJTtcclxuXHRcdFx0XHRib3gtc2hhZG93ICAgIDogZi1zY2FsZSgyKSAwIDAgcmdiYShudGgoJGNvbG9ycywgMSksIC42KSxcclxuXHRcdFx0XHQtKGYtc2NhbGUoMikpIDAgMCByZ2JhKG50aCgkY29sb3JzLCAyKSwgLjYpLFxyXG5cdFx0XHRcdDAgZi1zY2FsZSgyKSAwIHJnYmEobnRoKCRjb2xvcnMsIDMpLCAuNiksXHJcblx0XHRcdFx0MCAoLShmLXNjYWxlKDIpKSkgMCByZ2JhKG50aCgkY29sb3JzLCA0KSwgLjYpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHQmOm50aC1jaGlsZCg0KSB7XHJcblx0XHRcdGFuaW1hdGlvbi1kZWxheSA6IC4ycztcclxuXHRcdFx0d2lkdGggICAgICAgICAgIDogZi1zY2FsZSg0KTtcclxuXHRcdFx0aGVpZ2h0ICAgICAgICAgIDogZi1zY2FsZSg0KTtcclxuXHRcdFx0JjphZnRlciB7XHJcblx0XHRcdFx0Y29udGVudCAgICAgICA6ICcnO1xyXG5cdFx0XHRcdGRpc3BsYXkgICAgICAgOiBibG9jaztcclxuXHRcdFx0XHRmb250LXNpemUgICAgIDogMTAwJTtcclxuXHRcdFx0XHR3aWR0aCAgICAgICAgIDogMWVtO1xyXG5cdFx0XHRcdGhlaWdodCAgICAgICAgOiAxZW07XHJcblx0XHRcdFx0Ym9yZGVyLXJhZGl1cyA6IDUwJTtcclxuXHRcdFx0XHRib3gtc2hhZG93ICAgIDogZi1zY2FsZSgyLjUpIDAgMCByZ2JhKG50aCgkY29sb3JzLCAxKSwgLjgpLFxyXG5cdFx0XHRcdC0oZi1zY2FsZSgyLjUpKSAwIDAgcmdiYShudGgoJGNvbG9ycywgMiksIC44KSxcclxuXHRcdFx0XHQwIGYtc2NhbGUoMi41KSAwIHJnYmEobnRoKCRjb2xvcnMsIDMpLCAuOCksXHJcblx0XHRcdFx0MCAoLShmLXNjYWxlKDIuNSkpKSAwIHJnYmEobnRoKCRjb2xvcnMsIDQpLCAuOCk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdCY6bnRoLWNoaWxkKDUpIHtcclxuXHRcdFx0YW5pbWF0aW9uLWRlbGF5IDogLjI1cztcclxuXHRcdFx0d2lkdGggICAgICAgICAgIDogZi1zY2FsZSg1KTtcclxuXHRcdFx0aGVpZ2h0ICAgICAgICAgIDogZi1zY2FsZSg1KTtcclxuXHRcdFx0JjphZnRlciB7XHJcblx0XHRcdFx0Y29udGVudCAgICAgICA6ICcnO1xyXG5cdFx0XHRcdGRpc3BsYXkgICAgICAgOiBibG9jaztcclxuXHRcdFx0XHRmb250LXNpemUgICAgIDogMTI1JTtcclxuXHRcdFx0XHR3aWR0aCAgICAgICAgIDogMWVtO1xyXG5cdFx0XHRcdGhlaWdodCAgICAgICAgOiAxZW07XHJcblx0XHRcdFx0Ym9yZGVyLXJhZGl1cyA6IDUwJTtcclxuXHRcdFx0XHRib3gtc2hhZG93ICAgIDogZi1zY2FsZSgzKSAwIDAgbnRoKCRjb2xvcnMsIDEpLFxyXG5cdFx0XHRcdC0oZi1zY2FsZSgzKSkgMCAwIG50aCgkY29sb3JzLCAyKSxcclxuXHRcdFx0XHQwIGYtc2NhbGUoMykgMCBudGgoJGNvbG9ycywgMyksXHJcblx0XHRcdFx0MCAoLShmLXNjYWxlKDMpKSkgMCBudGgoJGNvbG9ycywgNCk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgYW5pbSB7XHJcblx0NTAlIHtcclxuXHRcdGZpbHRlciA6IGJsdXIoMnB4KTtcclxuXHR9XHJcblx0OTAlLCAxMDAlIHtcclxuXHRcdHRyYW5zZm9ybSA6IHJvdGF0ZSgxdHVybik7XHJcblx0XHRmaWx0ZXIgICAgOiBibHVyKDApO1xyXG5cdH1cclxufVxyXG5cclxuLnNwaW5uZXItd3JhcCB7XHJcblx0YmFja2dyb3VuZCAgICAgIDogJGMtYmx1ZTtcclxuXHRwb3NpdGlvbiAgICAgICAgOiBmaXhlZDtcclxuXHR0b3AgICAgICAgICAgICAgOiAwO1xyXG5cdHJpZ2h0ICAgICAgICAgICA6IDA7XHJcblx0Ym90dG9tICAgICAgICAgIDogMDtcclxuXHRsZWZ0ICAgICAgICAgICAgOiAwO1xyXG5cdGRpc3BsYXkgICAgICAgICA6IGZsZXg7XHJcblx0anVzdGlmeS1jb250ZW50IDogY2VudGVyO1xyXG5cdGFsaWduLWl0ZW1zICAgICA6IGNlbnRlcjtcclxuXHRmb250LXNpemUgICAgICAgOiAkc2l6ZTtcclxuXHRib3gtc2hhZG93ICAgICAgOiBpbnNldCAwIDAgNTAwcHggcmdiYSgwLCAwLCAwLCAwLjUpO1xyXG5cdHotaW5kZXggICAgICAgICA6IDExMTExO1xyXG59XHJcblxyXG4vKiBTcGlubmVyIDIgKi9cclxuJHkgOiAjM2E1OTk3O1xyXG4kZyA6ICNlN2I4MDI7XHJcbiRiIDogd2hpdGU7XHJcbiRkZyA6ICMzYTU5OTc7XHJcbiRvIDogIzI3Mzk1ZDtcclxuJHIgOiBibGFjaztcclxuXHJcbi8qJHk6ICNmZmNjNWI7XHJcbiRnOiAjNjM5NzYxO1xyXG4kYjogIzI3M2YzZjtcclxuJGRnOiAjMmU3MjU1O1xyXG4kbzogI2ZjYTQzNTtcclxuJHI6ICNmZjVjNTE7Ki9cclxuXHJcbi5zcGlubmVyMiB7XHJcblx0ZGlzcGxheSAgICAgICAgIDogZmxleDtcclxuXHR3aWR0aCAgICAgICAgICAgOiAxMDB2dztcclxuXHRoZWlnaHQgICAgICAgICAgOiAxMDB2aDtcclxuXHRhbGlnbi1pdGVtcyAgICAgOiBjZW50ZXI7XHJcblx0anVzdGlmeS1jb250ZW50IDogY2VudGVyO1xyXG5cdGJhY2tncm91bmQgICAgICA6IGxpbmVhci1ncmFkaWVudCg0NWRlZywgJG8sICRyKTtcclxuXHRwb3NpdGlvbiAgICAgICAgOiBhYnNvbHV0ZTtcclxuXHRsZWZ0ICAgICAgICAgICAgOiAwO1xyXG5cdHRvcCAgICAgICAgICAgICA6IDA7XHJcblx0ei1pbmRleCAgICAgICAgIDogMjIwMDtcclxuXHQmOmJlZm9yZSwgJjphZnRlciB7XHJcblx0XHRjb250ZW50ICAgIDogJyc7XHJcblx0XHRwb3NpdGlvbiAgIDogYWJzb2x1dGU7XHJcblx0XHR3aWR0aCAgICAgIDogMTAwJTtcclxuXHRcdGhlaWdodCAgICAgOiAxMDAlO1xyXG5cdFx0dG9wICAgICAgICA6IDA7XHJcblx0XHRsZWZ0ICAgICAgIDogMDtcclxuXHRcdGJhY2tncm91bmQgOiByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IGNlbnRlciwgJHkgMjAwcHgsIHRyYW5zcGFyZW50KTtcclxuXHRcdHotaW5kZXggICAgOiAxO1xyXG5cdH1cclxuXHQmOmFmdGVyIHtcclxuXHRcdGJhY2tncm91bmQgOiByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCAkbywgJG8gMTBweCwgJHIgMTBweCwgJHIgMTFweCk7XHJcblx0XHR6LWluZGV4ICAgIDogMDtcclxuXHR9XHJcblx0LmNlbnRlciB7XHJcblx0XHR3aWR0aCAgICAgICAgIDogMjBweDtcclxuXHRcdGhlaWdodCAgICAgICAgOiAyMHB4O1xyXG5cdFx0cG9zaXRpb24gICAgICA6IGFic29sdXRlO1xyXG5cdFx0bGVmdCAgICAgICAgICA6IDUwJTtcclxuXHRcdHRvcCAgICAgICAgICAgOiA1MCU7XHJcblx0XHR0cmFuc2Zvcm0gICAgIDogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC01MCUpO1xyXG5cdFx0Ym9yZGVyLXJhZGl1cyA6IDEwMCU7XHJcblx0XHRiYWNrZ3JvdW5kICAgIDogJGI7XHJcblx0XHR6LWluZGV4ICAgICAgIDogMztcclxuXHRcdG1hcmdpbi1sZWZ0ICAgOiAyNXB4O1xyXG5cdFx0YW5pbWF0aW9uICAgICA6IHB1bHNlIDEuNXMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XHJcblx0XHRAa2V5ZnJhbWVzIHB1bHNlIHtcclxuXHRcdFx0MCUge1xyXG5cdFx0XHRcdGJveC1zaGFkb3cgOiAwIDAgMCAwICR5LCAwIDAgMCA1cHggJGI7XHJcblx0XHRcdFx0YmFja2dyb3VuZCA6ICRiO1xyXG5cdFx0XHR9XHJcblx0XHRcdDUwJSB7XHJcblx0XHRcdFx0Ym94LXNoYWRvdyA6IDAgMCAwIDE1cHggJHksIDAgMCAwIDIwcHggJHI7XHJcblx0XHRcdFx0YmFja2dyb3VuZCA6ICRyO1xyXG5cdFx0XHR9XHJcblx0XHRcdDEwMCUge1xyXG5cdFx0XHRcdGJveC1zaGFkb3cgOiAwIDAgMCAwICR5LCAwIDAgMCA1cHggJGI7XHJcblx0XHRcdFx0YmFja2dyb3VuZCA6ICRiO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdC5yaW5nIHtcclxuXHRcdGJvcmRlci1yYWRpdXMgOiAxMDAlO1xyXG5cdFx0d2lkdGggICAgICAgICA6IDIwMHB4O1xyXG5cdFx0aGVpZ2h0ICAgICAgICA6IDIwMHB4O1xyXG5cdFx0YmFja2dyb3VuZCAgICA6IHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgY2VudGVyLCAkeSwgJHkgNzhweCwgdHJhbnNwYXJlbnQgODBweCwgdHJhbnNwYXJlbnQgOThweCwgJHkgMTAwcHgpO1xyXG5cdFx0cG9zaXRpb24gICAgICA6IHJlbGF0aXZlO1xyXG5cdFx0b3ZlcmZsb3cgICAgICA6IGhpZGRlbjtcclxuXHRcdHotaW5kZXggICAgICAgOiAxO1xyXG5cdFx0JjpudGgtb2YtdHlwZSgyKSB7XHJcblx0XHRcdG1hcmdpbi1sZWZ0ICAgOiAtMTUwcHg7XHJcblx0XHRcdHdpZHRoICAgICAgICAgOiAxMDBweDtcclxuXHRcdFx0aGVpZ2h0ICAgICAgICA6IDEwMHB4O1xyXG5cdFx0XHRiYWNrZ3JvdW5kICAgIDogdHJhbnNwYXJlbnQ7XHJcblx0XHRcdHotaW5kZXggICAgICAgOiAyO1xyXG5cdFx0XHRib3JkZXItcmFkaXVzIDogMTAwJTtcclxuXHRcdFx0JjphZnRlciB7XHJcblx0XHRcdFx0Y29udGVudCAgICA6ICcnO1xyXG5cdFx0XHRcdHBvc2l0aW9uICAgOiBhYnNvbHV0ZTtcclxuXHRcdFx0XHR3aWR0aCAgICAgIDogMTAwJTtcclxuXHRcdFx0XHRoZWlnaHQgICAgIDogMTAwJTtcclxuXHRcdFx0XHRsZWZ0ICAgICAgIDogMDtcclxuXHRcdFx0XHR0b3AgICAgICAgIDogMDtcclxuXHRcdFx0XHRiYWNrZ3JvdW5kIDogcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCBjZW50ZXIsICR5LCAkeSAyOHB4LCB0cmFuc3BhcmVudCAzMHB4LCB0cmFuc3BhcmVudCA0OHB4LCAkeSA1MHB4KTtcclxuXHRcdFx0fVxyXG5cdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0d2lkdGggICAgICAgICAgIDogNTBweDtcclxuXHRcdFx0XHRoZWlnaHQgICAgICAgICAgOiA1MHB4O1xyXG5cdFx0XHRcdHotaW5kZXggICAgICAgICA6IC0zO1xyXG5cdFx0XHRcdGFuaW1hdGlvbiAgICAgICA6IHNwaW5uZXIgM3MgbGluZWFyIGluZmluaXRlO1xyXG5cdFx0XHRcdGFuaW1hdGlvbi1kZWxheSA6IC0xLjVzO1xyXG5cdFx0XHRcdGJhY2tncm91bmQgICAgICA6ICRkZztcclxuXHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0Y29udGVudCAgICAgICAgICA6ICcnO1xyXG5cdFx0XHRwb3NpdGlvbiAgICAgICAgIDogYWJzb2x1dGU7XHJcblx0XHRcdHdpZHRoICAgICAgICAgICAgOiAxMDBweDtcclxuXHRcdFx0aGVpZ2h0ICAgICAgICAgICA6IDEwMHB4O1xyXG5cdFx0XHRiYWNrZ3JvdW5kICAgICAgIDogJGc7XHJcblx0XHRcdHotaW5kZXggICAgICAgICAgOiAtMTtcclxuXHRcdFx0dG9wICAgICAgICAgICAgICA6IDA7XHJcblx0XHRcdHRyYW5zZm9ybS1vcmlnaW4gOiAxMDAlIDEwMCU7XHJcblx0XHRcdGFuaW1hdGlvbiAgICAgICAgOiBzcGlubmVyIDNzIGxpbmVhciBpbmZpbml0ZTtcclxuXHRcdFx0QGtleWZyYW1lcyBzcGlubmVyIHtcclxuXHRcdFx0XHQwJSB7XHJcblx0XHRcdFx0XHR0cmFuc2Zvcm0gOiByb3RhdGUoMGRlZykgc2NhbGUoMS41KSB0cmFuc2xhdGVYKC01MCUpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHQ1MCUge1xyXG5cdFx0XHRcdFx0dHJhbnNmb3JtIDogcm90YXRlKDM2MGRlZykgc2NhbGUoMikgdHJhbnNsYXRlWCgxMDAlKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0MTAwJSB7XHJcblx0XHRcdFx0XHR0cmFuc2Zvcm0gOiByb3RhdGUoNzIwZGVnKSBzY2FsZVgoMS41KSB0cmFuc2xhdGVYKC01MCUpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cclxuXHRcdH1cclxuXHR9XHJcbn0iLCIucGFnZS10ZW1wbGF0ZS1zYmIge1xuXHQuaGVhZGVyIHtcblx0XHRwYWRkaW5nIDogMTBweCAwO1xuXHRcdEBpbmNsdWRlIGJnKCRjLWNyZWFtKTtcblx0XHRib3gtc2hhZG93OiAwIDFweCAwIHJnYmEoMCwwLDAsMC4xNSksIDAgMnB4IDAgcmdiYSgyNTUsMjU1LDI1NSwwLjg1KTtcblxuXHQjbG9nbyB7XG5cdFx0XHR3aWR0aCAgICAgICAgICAgICA6IDEyMHB4ICFpbXBvcnRhbnQ7XG5cdFx0XHRwYWRkaW5nICAgICAgICAgICA6IDNweCAwO1xuXHRcdFx0YmFja2dyb3VuZC1vcmlnaW4gOiBjb250ZW50LWJveDtcblx0XHRcdEBpbmNsdWRlIGJnKCcuLi9pbWFnZXMvbG9nb19oZWFkLnBuZycsIGNvbnRhaW4sIGNvbnRlbnQtYm94KTtcblx0XHR9XG5cdH1cbn1cblxuLnBhZ2UtdGVtcGxhdGUtaG9tZS1zYmIge1xuXHQuaGVhZGVyIHtcblx0XHQjbG9nbyB7XG5cdFx0XHRkaXNwbGF5IDogbm9uZTtcblx0XHR9XG5cdH1cbn1cblxuLnBhZ2UtdGVtcGxhdGUtc2JiLXN1YnBhZ2Uge1xuXHQuaGVhZGVyIHtcblx0XHQjbG9nbyB7XG5cdFx0XHRkaXNwbGF5IDogaW5saW5lLWJsb2NrO1xuXHRcdH1cblx0fVxufVxuXG5AbWVkaWEgKG1heC13aWR0aCA6IDEwMjNweCkge1xuXG5cdC5wYWdlLXRlbXBsYXRlLWhvbWUtc2JiIHtcblx0XHQuaGVhZGVyIHtcblx0XHRcdCNsb2dvIHtcblx0XHRcdFx0ZGlzcGxheSA6IGlubGluZS1ibG9jaztcblx0XHRcdH1cblx0XHR9XG5cdH1cblx0LnBhZ2UtdGVtcGxhdGUtc2JiLXN1YnBhZ2Uge1xuXHRcdC5oZWFkZXIge1xuXHRcdFx0I2xvZ28ge1xuXHRcdFx0XHR3aWR0aCAgOiAxMjBweCAhaW1wb3J0YW50O1xuXHRcdFx0XHRoZWlnaHQgOiA2MHB4ICFpbXBvcnRhbnQ7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbmhlYWRlciAjbG9nbywgaGVhZGVyLnNjcm9sbCAjbG9nbyB7XG5cdEBpbmNsdWRlIGJnKCcuLi9pbWFnZXMvbG9nby1mdWxsLW5ldy5wbmcnLCBjb3ZlciwgY29udGVudC1ib3gpO1xuXHR3aWR0aDogMTgwcHg7XG59XG5cbmhlYWRlci5zY3JvbGwgI2xvZ28gIHtcblx0d2lkdGg6IDg1cHg7XG59IiwiLnBhZ2UtdGVtcGxhdGUtc2JiIHtcclxuICAgIC5mb290ZXIge1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IC0xNXB4O1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICBjb2xvcjogJGMtYmxhY2s7XHJcbiAgICAgICAgQGluY2x1ZGUgYmcoJGMtY3JlYW0pO1xyXG4gICAgICAgIFxyXG4gICAgICAgIC5tYXgtd2lkdGgge1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAzMHB4IDE1cHg7XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICBoMywgcCwgYSB7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogJGMtYmxhY2sgIWltcG9ydGFudDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICAuZm9vdGVyLWl0ZW0ge1xyXG4gICAgICAgICAgICBtaW4td2lkdGg6IDI4MHB4O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIFxyXG4gICAgLmZvb3QtbmF2IHtcclxuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgICAgIGhlaWdodDogNDcwcHg7XHJcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XHJcbiAgICAgICAgcGFkZGluZzogMTEwcHggMTVweCAwO1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgdG9wOiAtNDcwcHg7XHJcbiAgICAgICAgbGVmdDogMDtcclxuICAgICAgICByaWdodDogMDtcclxuICAgICAgICBcclxuICAgICAgICAuYnRuIHtcclxuICAgICAgICAgICAgei1pbmRleDogNjtcclxuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICAuYmctY2xvdWRzLWZvb3RlciB7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICBoZWlnaHQ6IDIyMHB4O1xyXG4gICAgICAgICAgICBsZWZ0OiAwO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEsIC0xKTtcclxuICAgICAgICAgICAgYm90dG9tOiAwO1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoJy4uL2ltYWdlcy9iZ19tYWluX2Jhbm5lcl9zYmJfY2xvdWRzMy5wbmcnKSBjZW50ZXIgdG9wIC8gY292ZXIgcmVwZWF0LXg7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogYXV0byAyMjBweDtcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICAgICAgLmJnLWZsb3dlci1mb290ZXItcmlnaHQge1xyXG4gICAgICAgICAgICB3aWR0aDogMTUwcHg7XHJcbiAgICAgICAgICAgIGhlaWdodDogNDAwcHg7XHJcbiAgICAgICAgICAgIGJvdHRvbTogMTAwcHg7XHJcbiAgICAgICAgICAgIGxlZnQ6IGluaXRpYWwgIWltcG9ydGFudDtcclxuICAgICAgICAgICAgcmlnaHQ6IC0xNXB4O1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoJy4uL2ltYWdlcy9iZ19tYWluX2Jhbm5lcl9zYmJfZmxvd2VyLnBuZycpIHJpZ2h0IGJvdHRvbSAvIGNvbnRhaW4gbm8tcmVwZWF0O1xyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICAuYmctc3dpcmwtZm9vdGVyLXJpZ2h0IHtcclxuICAgICAgICAgICAgd2lkdGg6IDMyMHB4O1xyXG4gICAgICAgICAgICBoZWlnaHQ6IDQ2MHB4O1xyXG4gICAgICAgICAgICBib3R0b206IDIwcHg7XHJcbiAgICAgICAgICAgIGxlZnQ6IGluaXRpYWwgIWltcG9ydGFudDtcclxuICAgICAgICAgICAgcmlnaHQ6IDA7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHVybCgnLi4vaW1hZ2VzL2JnX21haW5fYmFubmVyX3NiYl9sZWFmX25fc3dpcmwucG5nJykgcmlnaHQgYm90dG9tIC8gY29udGFpbiBuby1yZXBlYXQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICAgIC5iZy1zd2lybC1mb290ZXItbGVmdCB7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxNTBweDtcclxuICAgICAgICAgICAgaGVpZ2h0OiAyMTBweDtcclxuICAgICAgICAgICAgYm90dG9tOiAxMjBweDtcclxuICAgICAgICAgICAgbGVmdDogLTI1cHg7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHVybCgnLi4vaW1hZ2VzL2JnX21haW5fYmFubmVyX3NiYl9zd2lybC5wbmcnKSBsZWZ0IHRvcCAvIGNvbnRhaW4gbm8tcmVwZWF0O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIFxyXG4gICAgLmZvb3Rlci1jcmVkcyB7XHJcbiAgICAgICAgei1pbmRleDogNTtcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgZm9udC1zaXplOiAxMHB4O1xyXG4gICAgICAgIHBhZGRpbmctdG9wOiAyNXB4O1xyXG4gICAgICAgIFxyXG4gICAgICAgID4gYSB7XHJcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICA+IGEsICYge1xyXG4gICAgICAgICAgICBjb2xvcjogIzAwMDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBcclxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xyXG4gICAgICAgIC5mb290LW5hdiB7XHJcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAzMHB4O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iLCIucGFnZS10ZW1wbGF0ZS1zYmIge1xuXHQjdG9wLW1lbnUge1xuXHRcdGE6aG92ZXIge1xuXHRcdFx0dGV4dC1kZWNvcmF0aW9uIDogbm9uZTtcblx0XHR9XG5cdFx0c3BhbiB7XG5cdFx0XHRAaW5jbHVkZSBmKDIwcHgsICRjLWJsdWUtZGFyaywgJGYtVGV0cmEpO1xuXHRcdFx0bGV0dGVyLXNwYWNpbmcgOiAxcHg7XG5cdFx0fVxuXHR9XG5cdC5zb2NpYWwtbWVkaWEge1xuXHRcdGEge1xuXHRcdFx0bWFyZ2luICAgICAgICAgICA6IDAgMTBweDtcblx0XHRcdEBpbmNsdWRlIGYoMjBweCwgJGMtYmx1ZS1kYXJrKTtcblx0XHRcdGxpbmUtaGVpZ2h0ICAgICAgOiAxO1xuXHRcdFx0dmVydGljYWwtYWxpZ24gICA6IHRvcDtcblx0XHRcdGJhY2tncm91bmQtaW1hZ2UgOiBub25lO1xuXHRcdFx0dHJhbnNpdGlvbiAgICAgICA6IC4zcztcblxuXHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3IgOiB0cmFuc3BhcmVudDtcblx0XHRcdFx0dHJhbnNmb3JtICAgICAgICA6IHNjYWxlKDEuMik7XG5cdFx0XHRcdGNvbG9yICAgICAgICAgICAgOiAkYy1ibHVlO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufSIsIi8vICBcdCBfICAgICAgICAgICAgXyAgICAgICAgICAgXyAgICAgICAgICAgICAgICAgICAgICAgICAgIF8gXyAgICAgICBcbi8vICBcdChfKSAgICAgICAgICB8IHwgICAgICAgICB8IHwgICAgICAgICAgICAgICAgICAgICAgICAgfCAoXykgICAgICBcbi8vICBcdCBfIF8gX18gICBfX198IHxfICAgXyAgX198IHwgX19fICAgXyBfXyBfX18gICBfX18gIF9ffCB8XyAgX18gXyBcbi8vICBcdHwgfCAnXyBcXCAvIF9ffCB8IHwgfCB8LyBfYCB8LyBfIFxcIHwgJ18gYCBfIFxcIC8gXyBcXC8gX2AgfCB8LyBfYCB8XG4vLyAgXHR8IHwgfCB8IHwgKF9ffCB8IHxffCB8IChffCB8ICBfXy8gfCB8IHwgfCB8IHwgIF9fLyAoX3wgfCB8IChffCB8XG4vLyAgXHR8X3xffCB8X3xcXF9fX3xffFxcX18sX3xcXF9fLF98XFxfX198IHxffCB8X3wgfF98XFxfX198XFxfXyxffF98XFxfXyxffFxuLy9cbi8vXHRcdFx0U2ltcGxlLCBlbGVnYW50IGFuZCBtYWludGFpbmFibGUgbWVkaWEgcXVlcmllcyBpbiBTYXNzXG4vL1xuLy9cdFx0XHQgXHRcdFx0aHR0cDovL2luY2x1ZGUtbWVkaWEuY29tXG4vL1x0XHRcbi8vXHQgIFx0XHQgQXV0aG9yOiBFZHVhcmRvIEJvdWNhcyA8bWFpbEBlZHVhcmRvYm91Y2FzLmNvbT5cbi8vXG4vLy9cbi8vLyBDcmVhdGVzIGEgbGlzdCBvZiBnbG9iYWwgYnJlYWtwb2ludHNcbi8vL1xuLy8vIEBhdXRob3IgRWR1YXJkbyBCb3VjYXNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBDcmVhdGVzIGEgc2luZ2xlIGJyZWFrcG9pbnQgd2l0aCB0aGUgbGFiZWwgYHBob25lYFxuLy8vICAkYnJlYWtwb2ludHM6ICgncGhvbmUnOiAzMjBweCk7XG4vLy9cbiRicmVha3BvaW50cyA6IChcbiAgICAgICAgJ3Bob25lJzogMzIwcHgsXG4gICAgICAgICd0YWJsZXQnOiA3NjhweCxcbiAgICAgICAgJ2Rlc2t0b3AnOiAxMDI0cHhcbikgIWRlZmF1bHQ7XG5cbi8vL1xuLy8vIENyZWF0ZXMgYSBsaXN0IG9mIHN0YXRpYyBleHByZXNzaW9ucyBvciBtZWRpYSB0eXBlc1xuLy8vXG4vLy8gQGF1dGhvciBFZHVhcmRvIEJvdWNhc1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIENyZWF0ZXMgYSBzaW5nbGUgbWVkaWEgdHlwZSAoc2NyZWVuKVxuLy8vICAkbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJzogJ3NjcmVlbicpO1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIENyZWF0ZXMgYSBzdGF0aWMgZXhwcmVzc2lvbiB3aXRoIGxvZ2ljYWwgZGlzanVuY3Rpb24gKE9SIG9wZXJhdG9yKVxuLy8vICAkbWVkaWEtZXhwcmVzc2lvbnM6IChcbi8vL1x0XHQncmV0aW5hMngnOiAoXG4vLy9cdFx0XHQnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMiknLCBcbi8vL1x0XHRcdCcobWluLXJlc29sdXRpb246IDE5MmRwaSknXG4vLy9cdFx0KVxuLy8vXHQpO1xuLy8vXG4kbWVkaWEtZXhwcmVzc2lvbnMgOiAoXG4gICAgICAgICdzY3JlZW4nOiAnc2NyZWVuJyxcbiAgICAgICAgJ3ByaW50JzogJ3ByaW50JyxcbiAgICAgICAgJ2hhbmRoZWxkJzogJ2hhbmRoZWxkJyxcbiAgICAgICAgJ3JldGluYTJ4JzogKFxuICAgICAgICAgICAgICAgICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKScsXG4gICAgICAgICAgICAgICAgJyhtaW4tcmVzb2x1dGlvbjogMTkyZHBpKSdcbiAgICAgICAgKSxcbiAgICAgICAgJ3JldGluYTN4JzogKFxuICAgICAgICAgICAgICAgICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAzKScsXG4gICAgICAgICAgICAgICAgJyhtaW4tcmVzb2x1dGlvbjogMzUwZHBpKSdcbiAgICAgICAgKVxuKSAhZGVmYXVsdDtcblxuLy8vXG4vLy8gRGVmaW5lcyBhIG51bWJlciB0byBiZSBhZGRlZCBvciBzdWJ0cmFjdGVkIGZyb20gZWFjaCB1bml0IHdoZW4gZGVjbGFyaW5nIGJyZWFrcG9pbnRzIHdpdGggZXhjbHVzaXZlIGludGVydmFsc1xuLy8vXG4vLy8gQGF1dGhvciBFZHVhcmRvIEJvdWNhc1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEludGVydmFsIGZvciBwaXhlbHMgaXMgZGVmaW5lZCBhcyBgMWAgYnkgZGVmYXVsdFxuLy8vICBAaW5jbHVkZSBtZWRpYShcIj4xMjhweFwiKSB7fVxuLy8vXG4vLy9cdCAvKiBHZW5lcmF0ZXM6ICovXG4vLy9cdCBAbWVkaWEgKG1pbi13aWR0aDogMTI5cHgpIHt9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gSW50ZXJ2YWwgZm9yIGVtcyBpcyBkZWZpbmVkIGFzIGAwLjAxYCBieSBkZWZhdWx0XG4vLy8gIEBpbmNsdWRlIG1lZGlhKFwiPjIwZW1cIikge31cbi8vL1xuLy8vXHQgLyogR2VuZXJhdGVzOiAqL1xuLy8vXHQgQG1lZGlhIChtaW4td2lkdGg6IDIwLjAxZW0pIHt9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gSW50ZXJ2YWwgZm9yIHJlbXMgaXMgZGVmaW5lZCBhcyBgMC4xYCBieSBkZWZhdWx0LCB0byBiZSB1c2VkIHdpdGggYGZvbnQtc2l6ZTogNjIuNSU7YFxuLy8vICBAaW5jbHVkZSBtZWRpYShcIj4yLjByZW1cIikge31cbi8vL1xuLy8vXHQgLyogR2VuZXJhdGVzOiAqL1xuLy8vXHQgQG1lZGlhIChtaW4td2lkdGg6IDIuMXJlbSkge31cbi8vL1xuJHVuaXQtaW50ZXJ2YWxzIDogKFxuICAgICAgICAncHgnOiAxLFxuICAgICAgICAnZW0nOiAwLjAxLFxuICAgICAgICAncmVtJzogMC4xXG4pICFkZWZhdWx0O1xuLy8vXG4vLy8gR2VuZXJhdGVzIGEgbWVkaWEgcXVlcnkgYmFzZWQgb24gYSBsaXN0IG9mIGNvbmRpdGlvbnNcbi8vL1xuLy8vIEBhdXRob3IgRWR1YXJkbyBCb3VjYXNcbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gICAkY29uZGl0aW9ucyAgLSBNZWRpYSBxdWVyeSBjb25kaXRpb25zXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBhIHNpbmdsZSBzZXQgYnJlYWtwb2ludFxuLy8vICBAaW5jbHVkZSBtZWRpYShcIj5waG9uZVwiKSB7IH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIHR3byBzZXQgYnJlYWtwb2ludHNcbi8vLyAgQGluY2x1ZGUgbWVkaWEoXCI+cGhvbmVcIiwgXCI8PXRhYmxldFwiKSB7IH0gXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBjdXN0b20gdmFsdWVzXG4vLy8gIEBpbmNsdWRlIG1lZGlhKFwiPj0zNThweFwiLCBcIjw4NTBweFwiKSB7IH0gXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBzZXQgYnJlYWtwb2ludHMgd2l0aCBjdXN0b20gdmFsdWVzXG4vLy8gIEBpbmNsdWRlIG1lZGlhKFwiPmRlc2t0b3BcIiwgXCI8PTEzNTBweFwiKSB7IH0gXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBhIHN0YXRpYyBleHByZXNzaW9uXG4vLy8gIEBpbmNsdWRlIG1lZGlhKFwicmV0aW5hMnhcIikgeyB9IFxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIE1peGluZyBldmVyeXRoaW5nXG4vLy8gIEBpbmNsdWRlIG1lZGlhKFwiPj0zNTBweFwiLCBcIjx0YWJsZXRcIiwgXCJyZXRpbmEzeFwiKSB7IH0gXG4vLy9cbkBtaXhpbiBtZWRpYSgkY29uZGl0aW9ucy4uLikge1xuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggbGVuZ3RoKCRjb25kaXRpb25zKSB7XG4gICAgICAgICRjb25kaXRpb25zIDogc2V0LW50aCgkY29uZGl0aW9ucywgJGksIHBhcnNlLWV4cHJlc3Npb24obnRoKCRjb25kaXRpb25zLCAkaSkpKTtcbiAgICB9XG5cbiAgICAkYnJhbmNoZXMgOiBnZXQtcXVlcnktYnJhbmNoZXMoJGNvbmRpdGlvbnMpO1xuICAgICRxdWVyeSA6ICcnO1xuXG4gICAgQGVhY2ggJGJyYW5jaCBpbiAkYnJhbmNoZXMge1xuICAgICAgICBAaWYgKHN0ci1sZW5ndGgoJHF1ZXJ5KSAhPSAwKSB7XG4gICAgICAgICAgICAkcXVlcnkgOiAkcXVlcnkgKyAnLCAnO1xuICAgICAgICB9XG5cbiAgICAgICAgJHF1ZXJ5IDogJHF1ZXJ5ICsgJGJyYW5jaDtcbiAgICB9XG5cbiAgICBAbWVkaWEgI3skcXVlcnl9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vLy9cbi8vLyBSZWFkcyBhIGxpc3Qgb2YgbWVkaWEgcXVlcnkgZXhwcmVzc2lvbnMgYW5kIHNlcGFyYXRlcyBsb2dpY2FsIGRpc2p1bmN0aW9ucyBpbnRvIGRpZmZlcmVudCBicmFuY2hlc1xuLy8vXG4vLy8gQGF1dGhvciBFZHVhcmRvIEJvdWNhc1xuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAgICRleHByZXNzaW9ucyAgLSBsaXN0IG9mIGV4cHJlc3Npb25zXG4vLy9cbi8vLyBAdGhyb3dzIGAkZXhwcmVzc2lvbmAgaXMgbm90IGEgdmFsaWQgZXhwcmVzc2lvblxuLy8vXG4vLy8gQHJldHVybiB7TGlzdCB8IE51bGx9XG4vLy9cbkBmdW5jdGlvbiBnZXQtcXVlcnktYnJhbmNoZXMoJGV4cHJlc3Npb25zKSB7XG4gICAgJHJlc3VsdCA6ICcnO1xuICAgICRoYXMtZ3JvdXBzIDogZmFsc2U7XG5cbiAgICAvLyBHZXR0aW5nIGluaXRpYWwgc25hcHNob3QgYW5kIGxvb2tpbmcgZm9yIGdyb3Vwc1xuICAgIEBlYWNoICRleHByZXNzaW9uIGluICRleHByZXNzaW9ucyB7XG4gICAgICAgIEBpZiAoc3RyLWxlbmd0aCgkcmVzdWx0KSAhPSAwKSB7XG4gICAgICAgICAgICAkcmVzdWx0IDogJHJlc3VsdCArICcgYW5kICc7XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKHR5cGUtb2YoJGV4cHJlc3Npb24pID09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAkcmVzdWx0IDogJHJlc3VsdCArICRleHByZXNzaW9uO1xuICAgICAgICB9IEBlbHNlIGlmICh0eXBlLW9mKCRleHByZXNzaW9uKSA9PSAnbGlzdCcpIHtcbiAgICAgICAgICAgICRyZXN1bHQgOiAkcmVzdWx0ICsgbnRoKCRleHByZXNzaW9uLCAxKTtcbiAgICAgICAgICAgICRoYXMtZ3JvdXBzIDogdHJ1ZTtcbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICBAd2FybiAnI3skZXhwcmVzc2lvbn0gaXMgbm90IGEgdmFsaWQgZXhwcmVzc2lvbi4nO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gSWYgd2UgaGF2ZSBncm91cHMsIHdlIGhhdmUgdG8gY3JlYXRlIGFsbCBwb3NzaWJsZSBjb21iaW5hdGlvbnNcbiAgICBAaWYgJGhhcy1ncm91cHMge1xuICAgICAgICBAZWFjaCAkZXhwcmVzc2lvbiBpbiAkZXhwcmVzc2lvbnMge1xuICAgICAgICAgICAgQGlmICh0eXBlLW9mKCRleHByZXNzaW9uKSA9PSAnbGlzdCcpIHtcbiAgICAgICAgICAgICAgICAkZmlyc3QgOiBudGgoJGV4cHJlc3Npb24sIDEpO1xuXG4gICAgICAgICAgICAgICAgQGVhY2ggJG1lbWJlciBpbiAkZXhwcmVzc2lvbiB7XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoJG1lbWJlciAhPSAkZmlyc3QpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIEBlYWNoICRwYXJ0aWFsIGluICRyZXN1bHQge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRyZXN1bHQgOiBqb2luKCRyZXN1bHQsIHN0ci1yZXBsYWNlLWZpcnN0KCRmaXJzdCwgJG1lbWJlciwgJHBhcnRpYWwpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIEByZXR1cm4gJHJlc3VsdDtcbn1cblxuLy8vXG4vLy8gUGFyc2VzIGEgc3RyaW5nIHRvIGZvcm0gYSBtZWRpYSBxdWVyeSBleHByZXNzaW9uXG4vLy9cbi8vLyBAYXV0aG9yIEVkdWFyZG8gQm91Y2FzXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gICAkZXhwcmVzc2lvbiAgLSBleHByZXNzaW9uIChpbiBzdHJpbmcpXG4vLy9cbi8vLyBAdGhyb3dzIEV4cHJlc3Npb24gd2l0aCB0eXBlIGB0eXBlLW9mKCRleHByZXNzaW9uKWAgZGV0ZWN0ZWQsIHN0cmluZyBleHBlY3RlZFxuLy8vIEB0aHJvd3MgYCRleHByZXNzaW9uYCBpcyBtaXNzaW5nIGFuIG9wZXJhdG9yXG4vLy8gQHRocm93cyBVbmtub3duIHVuaXQ6IGAkdW5pdGBcbi8vL1xuLy8vIEByZXR1cm4ge1N0cmluZyB8IE51bGx9XG4vLy9cbkBmdW5jdGlvbiBwYXJzZS1leHByZXNzaW9uKCRleHByZXNzaW9uKSB7XG4gICAgJG9wZXJhdG9yIDogJyc7XG4gICAgJHZhbHVlIDogJyc7XG4gICAgJGVsZW1lbnQgOiAnJztcbiAgICAkcmVzdWx0IDogJyc7XG4gICAgJGlzLXdpZHRoIDogdHJ1ZTtcblxuICAgIEBpZiAodHlwZS1vZigkZXhwcmVzc2lvbikgIT0gJ3N0cmluZycpIHtcbiAgICAgICAgQHdhcm4gJ0V4cHJlc3Npb24gd2l0aCB0eXBlIGAje3R5cGUtb2YoJGV4cHJlc3Npb24pfWAgZGV0ZWN0ZWQsIHN0cmluZyBleHBlY3RlZC4nO1xuICAgIH1cblxuICAgIC8vIFNlcGFyYXRpbmcgdGhlIG9wZXJhdG9yIGZyb20gdGhlIHJlc3Qgb2YgdGhlIGV4cHJlc3Npb25cbiAgICBAaWYgKHN0ci1zbGljZSgkZXhwcmVzc2lvbiwgMiwgMikgPT0gJz0nKSB7XG4gICAgICAgICRvcGVyYXRvciA6IHN0ci1zbGljZSgkZXhwcmVzc2lvbiwgMSwgMik7XG4gICAgICAgICR2YWx1ZSA6IHN0ci1zbGljZSgkZXhwcmVzc2lvbiwgMyk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAgICRvcGVyYXRvciA6IHN0ci1zbGljZSgkZXhwcmVzc2lvbiwgMSwgMSk7XG4gICAgICAgICR2YWx1ZSA6IHN0ci1zbGljZSgkZXhwcmVzc2lvbiwgMik7XG4gICAgfVxuXG4gICAgLy8gQ2hlY2tpbmcgd2hhdCB0eXBlIG9mIGV4cHJlc3Npb24gd2UncmUgZGVhbGluZyB3aXRoXG4gICAgQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJHZhbHVlKSB7XG4gICAgICAgICRyZXN1bHQgOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJHZhbHVlKTtcbiAgICB9IEBlbHNlIGlmIG1hcC1oYXMta2V5KCRtZWRpYS1leHByZXNzaW9ucywgJGV4cHJlc3Npb24pIHtcbiAgICAgICAgJHJlc3VsdCA6IG1hcC1nZXQoJG1lZGlhLWV4cHJlc3Npb25zLCAkZXhwcmVzc2lvbik7XG4gICAgICAgICRpcy13aWR0aCA6IGZhbHNlO1xuICAgIH0gQGVsc2Uge1xuICAgICAgICAkcmVzdWx0IDogdG8tbnVtYmVyKCR2YWx1ZSk7XG4gICAgfVxuXG4gICAgQGlmICgkaXMtd2lkdGgpIHtcbiAgICAgICAgJHVuaXQgOiB1bml0KCRyZXN1bHQpO1xuICAgICAgICAkaW50ZXJ2YWwgOiAwO1xuXG4gICAgICAgIEBpZiAobWFwLWhhcy1rZXkoJHVuaXQtaW50ZXJ2YWxzLCAkdW5pdCkpIHtcbiAgICAgICAgICAgICRpbnRlcnZhbCA6IG1hcC1nZXQoJHVuaXQtaW50ZXJ2YWxzLCAkdW5pdCk7XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgQHdhcm4gJ1Vua25vd24gdW5pdDogI3skdW5pdH0nO1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmICgkb3BlcmF0b3IgPT0gJz4nKSB7XG4gICAgICAgICAgICAkZWxlbWVudCA6ICcobWluLXdpZHRoOiAjeyRyZXN1bHQgKyAkaW50ZXJ2YWx9KSc7XG4gICAgICAgIH0gQGVsc2UgaWYgKCRvcGVyYXRvciA9PSAnPCcpIHtcbiAgICAgICAgICAgICRlbGVtZW50IDogJyhtYXgtd2lkdGg6ICN7JHJlc3VsdCAtICRpbnRlcnZhbH0pJztcbiAgICAgICAgfSBAZWxzZSBpZiAoJG9wZXJhdG9yID09ICc+PScpIHtcbiAgICAgICAgICAgICRlbGVtZW50IDogJyhtaW4td2lkdGg6ICN7JHJlc3VsdH0pJztcbiAgICAgICAgfSBAZWxzZSBpZiAoJG9wZXJhdG9yID09ICc8PScpIHtcbiAgICAgICAgICAgICRlbGVtZW50IDogJyhtYXgtd2lkdGg6ICN7JHJlc3VsdH0pJztcbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICBAd2FybiAnI3skZXhwcmVzc2lvbn0gaXMgbWlzc2luZyBhbiBvcGVyYXRvci4nO1xuICAgICAgICB9XG4gICAgfSBAZWxzZSB7XG4gICAgICAgICRlbGVtZW50IDogJHJlc3VsdDtcbiAgICB9XG5cbiAgICBAcmV0dXJuICRlbGVtZW50O1xufVxuXG4vLy9cbi8vLyBSZXBsYWNlcyB0aGUgZmlyc3Qgb2NjdXJlbmNlIG9mIHRoZSBzdHJpbmcgd2l0aCB0aGUgcmVwbGFjZW1lbnQgc3RyaW5nXG4vLy9cbi8vLyBAYXV0aG9yIEVkdWFyZG8gQm91Y2FzXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gICAkc2VhcmNoICAtIFRoZSB2YWx1ZSBiZWluZyBzZWFyY2hlZCBmb3Jcbi8vLyBAcGFyYW0ge1N0cmluZ30gICAkcmVwbGFjZSAgLSBUaGUgcmVwbGFjZW1lbnQgc3RyaW5nXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICAgJHN1YmplY3QgIC0gVGhlIHN0cmluZyBiZWluZyByZXBsYWNlZCBvblxuLy8vXG4vLy8gQHJldHVybiB7U3RyaW5nIHwgTnVsbH1cbi8vL1xuQGZ1bmN0aW9uIHN0ci1yZXBsYWNlLWZpcnN0KCRzZWFyY2gsICRyZXBsYWNlLCAkc3ViamVjdCkge1xuICAgICRzZWFyY2gtc3RhcnQgOiBzdHItaW5kZXgoJHN1YmplY3QsICRzZWFyY2gpO1xuXG4gICAgQGlmICRzZWFyY2gtc3RhcnQgPT0gbnVsbCB7XG4gICAgICAgIEByZXR1cm4gJHN1YmplY3Q7XG4gICAgfVxuXG4gICAgJHJlc3VsdCA6IHN0ci1zbGljZSgkc3ViamVjdCwgMCwgJHNlYXJjaC1zdGFydCAtIDEpO1xuICAgICRyZXN1bHQgOiAkcmVzdWx0ICsgJHJlcGxhY2U7XG4gICAgJHJlc3VsdCA6ICRyZXN1bHQgKyBzdHItc2xpY2UoJHN1YmplY3QsICRzZWFyY2gtc3RhcnQgKyBzdHItbGVuZ3RoKCRzZWFyY2gpKTtcblxuICAgIEByZXR1cm4gJHJlc3VsdDtcbn1cblxuLy8vXG4vLy8gQ2FzdHMgYSBudW1iZXIgdG8gYSBzdHJpbmdcbi8vL1xuLy8vIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICAgJHN0cmluZyAgLSBOdW1iZXIgdG8gYmUgcGFyc2VkXG4vLy9cbi8vLyBAcmV0dXJuIHtMaXN0IHwgTnVsbH1cbi8vL1xuQGZ1bmN0aW9uIHRvLW51bWJlcigkc3RyaW5nKSB7XG4gICAgLy8gTWF0cmljZXNcbiAgICAkc3RyaW5ncyA6ICcwJyAnMScgJzInICczJyAnNCcgJzUnICc2JyAnNycgJzgnICc5JztcbiAgICAkbnVtYmVycyA6IDAgMSAyIDMgNCA1IDYgNyA4IDk7XG5cbiAgICAvLyBSZXN1bHRcbiAgICAkcmVzdWx0IDogMDtcbiAgICAkZGl2aWRlciA6IDA7XG4gICAgJG1pbnVzIDogZmFsc2U7XG5cbiAgICAvLyBMb29waW5nIHRocm91Z2ggYWxsIGNoYXJhY3RlcnNcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIHN0ci1sZW5ndGgoJHN0cmluZykge1xuICAgICAgICAkY2hhcmFjdGVyIDogc3RyLXNsaWNlKCRzdHJpbmcsICRpLCAkaSk7XG4gICAgICAgICRpbmRleCA6IGluZGV4KCRzdHJpbmdzLCAkY2hhcmFjdGVyKTtcblxuICAgICAgICBAaWYgJGNoYXJhY3RlciA9PSAnLScge1xuICAgICAgICAgICAgJG1pbnVzIDogdHJ1ZTtcbiAgICAgICAgfSBAZWxzZSBpZiAkY2hhcmFjdGVyID09ICcuJyB7XG4gICAgICAgICAgICAkZGl2aWRlciA6IDE7XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgQGlmIHR5cGUtb2YoJGluZGV4KSAhPSAnbnVtYmVyJyB7XG4gICAgICAgICAgICAgICAgJHJlc3VsdCA6IGlmKCRtaW51cywgJHJlc3VsdCAqIC0xLCAkcmVzdWx0KTtcbiAgICAgICAgICAgICAgICBAcmV0dXJuIF9sZW5ndGgoJHJlc3VsdCwgc3RyLXNsaWNlKCRzdHJpbmcsICRpKSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICRudW1iZXIgOiBudGgoJG51bWJlcnMsICRpbmRleCk7XG5cbiAgICAgICAgICAgIEBpZiAkZGl2aWRlciA9PSAwIHtcbiAgICAgICAgICAgICAgICAkcmVzdWx0IDogJHJlc3VsdCAqIDEwO1xuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gTW92ZSB0aGUgZGVjaW1hbCBkb3QgdG8gdGhlIGxlZnRcbiAgICAgICAgICAgICAgICAkZGl2aWRlciA6ICRkaXZpZGVyICogMTA7XG4gICAgICAgICAgICAgICAgJG51bWJlciA6ICRudW1iZXIgLyAkZGl2aWRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJHJlc3VsdCA6ICRyZXN1bHQgKyAkbnVtYmVyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQHJldHVybiBpZigkbWludXMsICRyZXN1bHQgKiAtMSwgJHJlc3VsdCk7XG59XG5cbkBmdW5jdGlvbiBfbGVuZ3RoKCRudW1iZXIsICR1bml0KSB7XG4gICAgJHN0cmluZ3MgOiAncHgnICdjbScgJ21tJyAnJScgJ2NoJyAncGljYScgJ2luJyAnZW0nICdyZW0nICdwdCcgJ3BjJyAnZXgnICd2dycgJ3ZoJyAndm1pbicgJ3ZtYXgnO1xuICAgICR1bml0cyA6IDFweCAxY20gMW1tIDElIDFjaCAxcGljYSAxaW4gMWVtIDFyZW0gMXB0IDFwYyAxZXggMXZ3IDF2aCAxdm1pbiAxdm1heDtcbiAgICAkaW5kZXggOiBpbmRleCgkc3RyaW5ncywgJHVuaXQpO1xuXG4gICAgQGlmIHR5cGUtb2YoJGluZGV4KSAhPSAnbnVtYmVyJyB7XG4gICAgICAgIEB3YXJuICdVbmtub3duIHVuaXQgYCN7JHVuaXR9YC4nO1xuICAgICAgICBAcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIEByZXR1cm4gJG51bWJlciAqIG50aCgkdW5pdHMsICRpbmRleCk7XG59XG4iLCJAbWl4aW4gZmFkZS1vdXQge1xyXG4gICAgb3BhY2l0eSAgICA6IDA7XHJcbiAgICB2aXNpYmlsaXR5IDogaGlkZGVuO1xyXG4gICAgdHJhbnNpdGlvbiA6IG9wYWNpdHkgLjVzIGVhc2UsIHZpc2liaWxpdHkgMHMgbGluZWFyIC41cztcclxufVxyXG5cclxuQG1peGluIGZhZGUtaW4ge1xyXG4gICAgb3BhY2l0eSAgICA6IDE7XHJcbiAgICB0cmFuc2l0aW9uIDogb3BhY2l0eSAuM3MgZWFzZSwgdmlzaWJpbGl0eSAwcztcclxuICAgIHZpc2liaWxpdHkgOiB2aXNpYmxlO1xyXG59XHJcblxyXG5AbWl4aW4gc3VibWVudSB7XHJcbiAgICB0b3AgICAgICAgIDogMTAwJTtcclxuICAgIGxlZnQgICAgICAgOiAwO1xyXG4gICAgLy9tYXJnaW4gICAgIDogMDtcclxuICAgIC8vcGFkZGluZyAgICA6IDA7XHJcbiAgICB6LWluZGV4ICAgIDogNTtcclxuICAgIHBvc2l0aW9uICAgOiBhYnNvbHV0ZTtcclxuICAgIGxpc3Qtc3R5bGUgOiBub25lO1xyXG4gICAgYSB7XHJcbiAgICAgICAgd2hpdGUtc3BhY2UgOiBub3dyYXA7XHJcbiAgICB9XHJcblxyXG4gICAgQGNvbnRlbnQ7XHJcbn1cclxuXHJcbkBtaXhpbiBzdWJtZW51LWhpZGRlbiB7XHJcbiAgICBAaW5jbHVkZSBmYWRlLW91dDtcclxuICAgIHRyYW5zZm9ybSAgOiB0cmFuc2xhdGVZKC0yMHB4KTtcclxuICAgIHRyYW5zaXRpb24gOiB0cmFuc2Zvcm0gLjVzLCBvcGFjaXR5IC41cyBlYXNlLCB2aXNpYmlsaXR5IDBzIGxpbmVhciAuNXM7XHJcbiAgICBAY29udGVudDtcclxufVxyXG5cclxuQG1peGluIHN1Ym1lbnUtdmlzaWJsZSB7XHJcbiAgICBAaW5jbHVkZSBmYWRlLWluO1xyXG4gICAgdHJhbnNmb3JtICA6IHRyYW5zbGF0ZVkoMCk7XHJcbiAgICB0cmFuc2l0aW9uIDogdHJhbnNmb3JtIC41cywgb3BhY2l0eSAuM3MgZWFzZSwgdmlzaWJpbGl0eSAwcztcclxuICAgIEBjb250ZW50O1xyXG59XHJcblxyXG5cclxuQG1peGluIHN1Yi1zdWJtZW51IHtcclxuICAgIHRvcCAgICAgICAgOiAwO1xyXG4gICAgbGVmdCAgICAgICA6IDEwMCU7XHJcbiAgICAvL21hcmdpbiAgICAgOiAwO1xyXG4gICAgLy9wYWRkaW5nICAgIDogMDtcclxuICAgIHotaW5kZXggICAgOiA1O1xyXG4gICAgcG9zaXRpb24gICA6IGFic29sdXRlO1xyXG4gICAgbGlzdC1zdHlsZSA6IG5vbmU7XHJcblxyXG4gICAgYSB7XHJcbiAgICAgICAgd2hpdGUtc3BhY2UgOiBub3dyYXA7XHJcbiAgICB9XHJcblxyXG4gICAgQGNvbnRlbnQ7XHJcbn1cclxuXHJcbkBtaXhpbiBzdWItc3VibWVudS1oaWRkZW4ge1xyXG4gICAgQGluY2x1ZGUgZmFkZS1vdXQ7XHJcbiAgICB0cmFuc2Zvcm0gIDogdHJhbnNsYXRlWCgtMjBweCk7XHJcbiAgICB0cmFuc2l0aW9uIDogdHJhbnNmb3JtIC41cywgb3BhY2l0eSAuNXMgZWFzZSwgdmlzaWJpbGl0eSAwcyBsaW5lYXIgLjVzO1xyXG4gICAgQGNvbnRlbnQ7XHJcblxyXG59XHJcblxyXG5AbWl4aW4gc3ViLXN1Ym1lbnUtdmlzaWJsZSB7XHJcbiAgICBAaW5jbHVkZSBmYWRlLWluO1xyXG4gICAgdHJhbnNmb3JtICA6IHRyYW5zbGF0ZVgoMCk7XHJcbiAgICB0cmFuc2l0aW9uIDogdHJhbnNmb3JtIC41cywgb3BhY2l0eSAuM3MgZWFzZSwgdmlzaWJpbGl0eSAwcztcclxuICAgIEBjb250ZW50O1xyXG59XHJcblxyXG5cclxuLnBhZ2UtdGVtcGxhdGUtc2JiIHtcclxuICAgIEBpbmNsdWRlIG1lZGlhKCc8MTIyNHB4JywgJz4xMDIzcHgnKSB7XHJcbiAgICAgICAgI3RvcC1tZW51IGEge1xyXG4gICAgICAgICAgICBwYWRkaW5nOiA1cHggM3B4O1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgc3BhbiB7XHJcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDFyZW07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICAgICAgLnNvY2lhbC1tZWRpYSAuc20taXRlbSB7XHJcbiAgICAgICAgICAgIG1hcmdpbjogMCAzcHg7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi5tZW51LXRyaWdnZXItYnV0dG9uIHtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcclxuICBcclxuICAgICY6aG92ZXIge1xyXG4gICAgICBjb2xvcjogJGMtYmx1ZTtcclxuICAgIH1cclxuICBcclxuICAgICY6YWZ0ZXIge1xyXG4gICAgICBjb250ZW50OiAkZmEtdmFyLWJhcnM7XHJcbiAgICAvLyAgIEBleHRlbmQgLmZhO1xyXG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgIGZvbnQ6IG5vcm1hbCBub3JtYWwgbm9ybWFsIDE0cHgvMSBGb250QXdlc29tZTtcclxuICAgICAgZm9udC1zaXplOiBpbmhlcml0O1xyXG4gICAgICB0ZXh0LXJlbmRlcmluZzogYXV0bztcclxuICAgICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XHJcbiAgICAgIGNvbG9yOiAkYy13aGl0ZTtcclxuICAgIH1cclxuICB9XHJcbiAgXHJcbiAgLm1lbnUtZHJvcGRvd24ge1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgcGFkZGluZzogMCAwIDAgMTcwcHg7XHJcbiAgICBsaXN0LXN0eWxlOiBub25lO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzU0NTI0ZjtcclxuICBcclxuICAgIC5tZW51LWl0ZW0ge1xyXG4gICAgICBvcmRlcjogMDtcclxuICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgXHJcbiAgICAgIGEgPiBzcGFuIHtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIHBhZGRpbmc6ICRzcC0xICRzcC0zICsgJHNwLTI7XHJcbiAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMC4zcztcclxuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMCAhaW1wb3J0YW50O1xyXG4gICAgICAgIGZvbnQtZmFtaWx5OiBPc3dhbGQsIEhlbHZldGljYSwgc2Fucy1zZXJpZiAhaW1wb3J0YW50O1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMThweCAhaW1wb3J0YW50O1xyXG4gICAgICB9XHJcbiAgICAgIC8qJjpsYXN0LW9mLXR5cGUgYSB7XHJcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDtcclxuICAgICAgfSovXHJcbiAgXHJcbiAgICAgICYubWVudS1pdGVtLWhhcy1jaGlsZHJlbiA+IGE6YWZ0ZXIge1xyXG4gICAgICAgIGNvbnRlbnQ6ICRmYS12YXItYW5nbGUtZG93bjtcclxuICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcztcclxuICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzcC0yO1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICBmb250OiBub3JtYWwgbm9ybWFsIG5vcm1hbCAxNHB4LzEgRm9udEF3ZXNvbWU7XHJcbiAgICAgICAgZm9udC1zaXplOiBpbmhlcml0O1xyXG4gICAgICAgIHRleHQtcmVuZGVyaW5nOiBhdXRvO1xyXG4gICAgICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xyXG4gICAgICAgIEBpbmNsdWRlIGYoMjZweCk7XHJcbiAgICAgIH1cclxuICBcclxuICAgICAgLnN1Yi1tZW51IHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYy13YXJtLWdyYXk7XHJcbiAgXHJcbiAgICAgICAgLm1lbnUtaXRlbSB7XHJcbiAgICAgICAgICAmOmJlZm9yZXtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGMtYmxhY2s7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBhIHtcclxuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gIFxyXG4gICAgICAgIEBpbmNsdWRlIHN1Ym1lbnUge1xyXG4gICAgICAgICAgcGFkZGluZzogJHNwLTMgI3skc3AtMyArICRzcC0yfTtcclxuICAgICAgICB9XHJcbiAgXHJcbiAgICAgICAgQGluY2x1ZGUgc3VibWVudS1oaWRkZW4ge1xyXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMHB4KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICBcclxuICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgPiBhIHtcclxuICAgICAgICAgIC8vY29sb3IgICAgICAgICAgIDogJGMtYmx1ZTtcclxuICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICAgICAgICB9XHJcbiAgXHJcbiAgICAgICAgJi5tZW51LWl0ZW0taGFzLWNoaWxkcmVuID4gYTphZnRlciB7XHJcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNHB4KTtcclxuICAgICAgICB9XHJcbiAgXHJcbiAgICAgICAgLnN1Yi1tZW51IHtcclxuICAgICAgICAgIEBpbmNsdWRlIHN1Ym1lbnUtdmlzaWJsZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgXHJcbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4gIFxyXG4gIEBpbmNsdWRlIG1lZGlhKFwiPDExMDBweFwiKSB7XHJcbiAgICAubWVudS1kcm9wZG93bntcclxuICAgICAgcGFkZGluZy1sZWZ0OiA1MHB4O1xyXG4gICAgfVxyXG4gIH1cclxuICBAaW5jbHVkZSBtZWRpYShcIjw5MDBweFwiKSB7XHJcbiAgICAubWVudS1kcm9wZG93biB7XHJcbiAgICAgICRtZW51LWl0ZW1zLXNwLXNtOiAkc3AtMjtcclxuICBcclxuICAgICAgLm1lbnUtaXRlbSB7XHJcbiAgICAgICAgYSB7XHJcbiAgICAgICAgICBwYWRkaW5nOiAkc3AtMSAwLjc1cmVtO1xyXG4gICAgICAgIH1cclxuICBcclxuICAgICAgICAmLm1lbnUtaXRlbS1oYXMtY2hpbGRyZW4gPiBhOmFmdGVyIHtcclxuICAgICAgICAgIHBhZGRpbmctbGVmdDogJG1lbnUtaXRlbXMtc3Atc207XHJcbiAgICAgICAgfVxyXG4gIFxyXG4gICAgICAgIC5zdWItbWVudSB7XHJcbiAgICAgICAgICBsZWZ0OiAtMS41cmVtO1xyXG4gICAgICAgICAgcGFkZGluZzogMCAkc3AtNCAkbWVudS1pdGVtcy1zcC1zbTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgQGluY2x1ZGUgbWVkaWEoXCI8NzUwcHhcIikge1xyXG4gICAgLm1lbnUtZHJvcGRvd24ge1xyXG4gICAgICB0b3A6IDEwMCU7XHJcbiAgICAgIHJpZ2h0OiAwO1xyXG4gICAgICB3aWR0aDogYXV0bztcclxuICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgei1pbmRleDogMTtcclxuICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XHJcbiAgICAgIHBhZGRpbmctdG9wOiAkc3AtMztcclxuICAgICAgcGFkZGluZy1sZWZ0OiAkc3AtMztcclxuICAgICAgcGFkZGluZy1yaWdodDogJHNwLTM7XHJcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAgIEBpbmNsdWRlIHN1Ym1lbnUtaGlkZGVuO1xyXG4gICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydCAhaW1wb3J0YW50O1xyXG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuICBcclxuICAgICAgLm1lbnUtaXRlbSB7XHJcbiAgICAgICAgb3JkZXI6IDE7XHJcbiAgICAgICAgLy9wYWRkaW5nOiAwICRzcC0zICRzcC00O1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRzcC00O1xyXG4gIFxyXG4gICAgICAgIC5zdWItbWVudSB7XHJcbiAgICAgICAgICBvcGFjaXR5OiAxO1xyXG4gICAgICAgICAgcG9zaXRpb246IHN0YXRpYztcclxuICAgICAgICAgIHRyYW5zZm9ybTogbm9uZTtcclxuICAgICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XHJcbiAgICAgICAgICBwYWRkaW5nOiAwO1xyXG4gIFxyXG4gICAgICAgICAgLm1lbnUtaXRlbSB7XHJcbiAgICAgICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICAgICAgLy9wYWRkaW5nOiAkc3AtMyAwIDA7XHJcbiAgXHJcbiAgICAgICAgICAgIGEge1xyXG4gICAgICAgICAgICAgIEBpbmNsdWRlIGYoMTRweCwgJGZ3LWxpZ2h0KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIFxyXG4gICAgLm1lbnUtdHJpZ2dlci1idXR0b24ge1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIH1cclxuICBcclxuICAgIC5tZW51LW9wZW4ge1xyXG4gICAgICAubWVudS10cmlnZ2VyLWJ1dHRvbjphZnRlciB7XHJcbiAgICAgICAgY29udGVudDogJGZhLXZhci10aW1lcztcclxuICAgICAgfVxyXG4gIFxyXG4gICAgICAubWVudS1kcm9wZG93biB7XHJcbiAgICAgICAgQGluY2x1ZGUgc3VibWVudS12aXNpYmxlO1xyXG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIFxyXG4gIEBpbmNsdWRlIG1lZGlhKFwiPDQ1MHB4XCIpIHtcclxuICAgIC5tZW51LWRyb3Bkb3duIHtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICB9XHJcbiAgfVxyXG4gIFxyXG5cclxuLm1pY3Jvc2l0ZS1oZWFkZXIge1xyXG4gICAgQGluY2x1ZGUgYmcoJGMtY3JlYW0tZGFyayk7XHJcbiAgICBib3JkZXItYm90dG9tOiA1cHggc29saWQgJGMtb3JhbmdlO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgbGVmdDogMDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgei1pbmRleDogMTEwMDtcclxuICAgIHBhZGRpbmctYm90dG9tOiAyMnB4O1xyXG4gICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcclxuICAgIC5tYXgtd2lkdGgge1xyXG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICB9XHJcbiAgXHJcbiAgICAuc2l0ZS1tZW51IHtcclxuICAgICAgYSB7XHJcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICBcclxuICAgICNsb2dvIHtcclxuICAgICAgd2lkdGg6IDIyMnB4O1xyXG4gICAgICBoZWlnaHQ6IDU5cHg7XHJcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgLy9AaW5jbHVkZSBiZyhjb3ZlciwgJy4uLy4uL2ltYWdlcy9sb2dvLWZ1bGwucG5nJywgbm8tcmVwZWF0LCAxMDAlIDUwJSk7XHJcbiAgICAgIHRyYW5zaXRpb246IHdpZHRoIDAuM3MgZWFzZSwgaGVpZ2h0IDAuM3MgZWFzZTtcclxuICAgIH1cclxuICAgICNsb2dvLFxyXG4gICAgI3RvcC1tZW51LFxyXG4gICAgLnNvY2lhbC1tZWRpYSB7XHJcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICAgICAgbWFyZ2luOiAwIDZweDtcclxuICAgICAgJjpmaXJzdC1jaGlsZCB7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XHJcbiAgICAgIH1cclxuICAgICAgJjpsYXN0LWNoaWxkIHtcclxuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICBcclxuICAgIC5saW5lcy1idXR0b24ge1xyXG4gICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgfVxyXG4gIFxyXG4gICAgJi5zY3JvbGwge1xyXG4gICAgICBwYWRkaW5nOiA3cHggMDtcclxuICAgICAgYm94LXNoYWRvdzogMCAwIDEwcHggcmdiYSgjMDAwLCAwLjIpO1xyXG4gICAgICAjbG9nbyB7XHJcbiAgICAgICAgd2lkdGg6IDM5cHg7XHJcbiAgICAgICAgaGVpZ2h0OiA1OXB4ICogMC43NDtcclxuICAgICAgICAvL0BpbmNsdWRlIGJnKGNvdmVyLCAnLi4vLi4vaW1hZ2VzL2xvZ28tZnVsbC5wbmcnLCBuby1yZXBlYXQsIDEwMCUgNTAlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBcclxuICAkYnV0dG9uLXNpemU6IDEuNzJyZW07XHJcbiAgJHRyYW5zaXRpb246IDAuM3M7XHJcbiAgLy8gaW5jcmVhc2UgdGhpcyB0byBzZWUgdGhlIHRyYW5zZm9ybWF0aW9ucyBpbiBzbG93LW1vdGlvblxyXG4gICRjb2xvcjogJGNvbG9yLXRleHQtMTtcclxuICBAbWl4aW4gbGluZSB7XHJcbiAgICB3aWR0aDogJGJ1dHRvbi1zaXplO1xyXG4gICAgaGVpZ2h0OiAkYnV0dG9uLXNpemUvNztcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIGJhY2tncm91bmQ6ICRjb2xvcjtcclxuICAgIHRyYW5zaXRpb246ICR0cmFuc2l0aW9uO1xyXG4gICAgYm9yZGVyLXJhZGl1czogJGJ1dHRvbi1zaXplLzE0O1xyXG4gIH1cclxuICBcclxuICAubGluZXMtYnV0dG9uIHtcclxuICAgIGJvdHRvbTogOXB4O1xyXG4gICAgcmlnaHQ6IDEwcHg7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICBib3JkZXI6IG5vbmU7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBwYWRkaW5nOiAkYnV0dG9uLXNpemUvMiAkYnV0dG9uLXNpemUvNDtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIGJhY2tncm91bmQ6IG5vbmU7XHJcbiAgICB0cmFuc2l0aW9uOiAkdHJhbnNpdGlvbjtcclxuICAgIHVzZXItc2VsZWN0OiBub25lO1xyXG4gIFxyXG4gICAgJjpob3ZlciB7XHJcbiAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICB9XHJcbiAgXHJcbiAgICAvLyAgICAmOmFjdGl2ZSB7XHJcbiAgICAvLyAgICAgICAgdHJhbnNpdGlvbiA6IGFsbDtcclxuICAgIC8vICAgICAgICBiYWNrZ3JvdW5kIDogcmdiYSgwLCAwLCAwLCAuMSk7XHJcbiAgICAvLyAgICB9XHJcbiAgfVxyXG4gIFxyXG4gIC5saW5lcyB7XHJcbiAgICAvL2NyZWF0ZSBtaWRkbGUgbGluZVxyXG4gICAgQGluY2x1ZGUgbGluZTtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBcclxuICAgIC8qY3JlYXRlIHRoZSB1cHBlciBhbmQgbG93ZXIgbGluZXMgYXMgcHNldWRvLWVsZW1lbnRzIG9mIHRoZSBtaWRkbGUgbGluZSovXHJcbiAgICAmOmJlZm9yZSxcclxuICAgICY6YWZ0ZXIge1xyXG4gICAgICBAaW5jbHVkZSBsaW5lO1xyXG4gICAgICBsZWZ0OiAwO1xyXG4gICAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIHRyYW5zZm9ybS1vcmlnaW46ICRidXR0b24tc2l6ZS8xNCBjZW50ZXI7XHJcbiAgICB9XHJcbiAgICAmOmJlZm9yZSB7XHJcbiAgICAgIHRvcDogJGJ1dHRvbi1zaXplLzMuNTtcclxuICAgIH1cclxuICAgICY6YWZ0ZXIge1xyXG4gICAgICB0b3A6IC0kYnV0dG9uLXNpemUvMy41O1xyXG4gICAgfVxyXG4gIH1cclxuICBcclxuICAubGluZXMtYnV0dG9uLnguY2xvc2UgLmxpbmVzIHtcclxuICAgIC8qaGlkZSB0aGUgbWlkZGxlIGxpbmUqL1xyXG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgXHJcbiAgICAvKm92ZXJsYXkgdGhlIGxpbmVzIGJ5IHNldHRpbmcgYm90aCB0aGVpciB0b3AgdmFsdWVzIHRvIDAqL1xyXG4gICAgJjpiZWZvcmUsXHJcbiAgICAmOmFmdGVyIHtcclxuICAgICAgdG9wOiAwO1xyXG4gICAgICB3aWR0aDogJGJ1dHRvbi1zaXplO1xyXG4gICAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgNTAlO1xyXG4gICAgfVxyXG4gIFxyXG4gICAgLy8gcm90YXRlIHRoZSBsaW5lcyB0byBmb3JtIHRoZSB4IHNoYXBlXHJcbiAgICAmOmJlZm9yZSB7XHJcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgNDVkZWcpO1xyXG4gICAgfVxyXG4gICAgJjphZnRlciB7XHJcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgLTQ1ZGVnKTtcclxuICAgIH1cclxuICB9XHJcbiAgXHJcbiAgLnNpdGUtbWVudSB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2Q1YTc3O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHotaW5kZXg6IDI7XHJcbiAgICBtYXJnaW4tdG9wOiAtMTBweDtcclxuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XHJcbiAgICBcclxuICAgIC5tZW51LXRyaWdnZXItYnV0dG9uIHtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIEBpbmNsdWRlIGYoMTZweCwgJGMtd2hpdGUsIGJvbGQpO1xyXG4gICAgICAmOjphZnRlciB7XHJcbiAgICAgICAgd2lkdGg6IDE0cHg7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIC5tZW51LWRyb3Bkb3duIHtcclxuICAgICAgdG9wOiAxMDAlO1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgcmlnaHQ6IDA7XHJcbiAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIHotaW5kZXg6IDE7XHJcbiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xyXG4gICAgICBwYWRkaW5nLXRvcDogJHNwLTM7XHJcbiAgICAgIHBhZGRpbmctbGVmdDogJHNwLTM7XHJcbiAgICAgIHBhZGRpbmctcmlnaHQ6ICRzcC0zO1xyXG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICBAaW5jbHVkZSBzdWJtZW51LWhpZGRlbjtcclxuICBcclxuICAgICAgLm1lbnUtaXRlbSB7XHJcbiAgICAgICAgb3JkZXI6IDE7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHNwLTQ7XHJcbiAgXHJcbiAgICAgICAgLnN1Yi1tZW51IHtcclxuICAgICAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xyXG4gICAgICAgICAgdHJhbnNmb3JtOiBub25lO1xyXG4gICAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcclxuICBcclxuICAgICAgICAgIC5tZW51LWl0ZW0ge1xyXG4gICAgICAgICAgICBtYXJnaW46IDA7XHJcbiAgXHJcbiAgICAgICAgICAgIGEge1xyXG4gICAgICAgICAgICAgIEBpbmNsdWRlIGYoMTRweCwgJGZ3LWxpZ2h0KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBcclxuICAubWVudS1vcGVuIHtcclxuICAgIC5zaXRlLW1lbnUge1xyXG4gICAgICAubWVudS10cmlnZ2VyLWJ1dHRvbjphZnRlciB7XHJcbiAgICAgICAgY29udGVudDogJGZhLXZhci10aW1lcztcclxuICAgICAgfVxyXG4gIFxyXG4gICAgICAubWVudS1kcm9wZG93biB7XHJcbiAgICAgICAgQGluY2x1ZGUgc3VibWVudS12aXNpYmxlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgXHJcbiAgICAubWljcm9zaXRlLWhlYWRlciB7XHJcbiAgICAgIGEge1xyXG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XHJcbiAgICAgIH1cclxuICAgICAgLm1lbnUtaXRlbSB7XHJcbiAgICAgICAgLnN1Yi1tZW51IHtcclxuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjLXdoaXRlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIFxyXG4gIFxyXG4gIH1cclxuICBcclxuICBAaW5jbHVkZSBtZWRpYShcIjxkZXNrdG9wXCIpIHtcclxuICAgIC5taWNyb3NpdGUtaGVhZGVyIHtcclxuICAgICAgJHRoZS1wZXJjZW50YWdlLW9mLXJlZHVjdGlvbjogMC43O1xyXG4gIFxyXG4gICAgICBwYWRkaW5nLWJvdHRvbTogMTBweDtcclxuICAgICAgI2xvZ28sXHJcbiAgICAgICN0b3AtbWVudSB7XHJcbiAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xyXG4gICAgICB9XHJcbiAgICAgIC5tYXgtd2lkdGgge1xyXG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICAgIH1cclxuICAgICAgI2xvZ28ge1xyXG4gICAgICAgIHdpZHRoOiAyMjJweCAqICR0aGUtcGVyY2VudGFnZS1vZi1yZWR1Y3Rpb247XHJcbiAgICAgICAgaGVpZ2h0OiA1OXB4ICogJHRoZS1wZXJjZW50YWdlLW9mLXJlZHVjdGlvbjtcclxuICAgICAgfVxyXG4gIFxyXG4gICAgICAmLnNjcm9sbCB7XHJcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDEwcHg7XHJcbiAgICAgICAgI2xvZ28ge1xyXG4gICAgICAgICAgd2lkdGg6IDIyMnB4ICogJHRoZS1wZXJjZW50YWdlLW9mLXJlZHVjdGlvbjtcclxuICAgICAgICAgIGhlaWdodDogNTlweCAqICR0aGUtcGVyY2VudGFnZS1vZi1yZWR1Y3Rpb247XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgXHJcbiAgICAgIC5zb2NpYWwtbWVkaWEge1xyXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgIH1cclxuICBcclxuICAgICAgLmxpbmVzLWJ1dHRvbiB7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICBcclxuICAgICN0b3AtbWVudSB7XHJcbiAgICAgIHRvcDogMTAwJTtcclxuICAgICAgcmlnaHQ6IC0xMDAlO1xyXG4gICAgICBtYXJnaW46IDA7XHJcbiAgICAgIC8vaGVpZ2h0ICAgICAgICAgICA6IDEwMCU7XHJcbiAgICAgIHBhZGRpbmc6IDEwcHg7XHJcbiAgICAgIG92ZXJmbG93OiBhdXRvO1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1iZy0xO1xyXG4gICAgICB0cmFuc2l0aW9uOiByaWdodCAwLjNzIGVhc2U7XHJcbiAgICAgIGJveC1zaGFkb3c6IC0xMHB4IDEwcHggMTBweCByZ2JhKCMwMDAsIDAuMSk7XHJcbiAgICAgID4gbGkge1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgIG1hcmdpbjogMTBweCAwO1xyXG4gICAgICB9XHJcbiAgICAgICYub3BlbiB7XHJcbiAgICAgICAgcmlnaHQ6IDAlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAudmlkZW8tYmFja2dyb3VuZCB7XHJcbiAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcbiAgXHJcbiAgICBmb290ZXIge1xyXG4gICAgICBoMyB7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTVweDtcclxuICAgICAgfVxyXG4gICAgICAuZm9vdGVyLWl0ZW0ge1xyXG4gICAgICAgIG1pbi13aWR0aDogMzIwcHg7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgXHJcbiIsIi5wYWdlLXRlbXBsYXRlLXNzIHtcblx0LmhlYWRlciB7XG5cdFx0cGFkZGluZyAgICA6IDEwcHggMDtcblx0XHRib3gtc2hhZG93IDogMCAycHggMCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG5cdFx0QGluY2x1ZGUgYmcoJGMtYmx1ZS1sdmlvbCk7XG5cblx0XHQjbG9nbyB7XG5cdFx0XHR3aWR0aCAgICAgICAgICAgICA6IDIyMHB4ICFpbXBvcnRhbnQ7XG5cdFx0XHRwYWRkaW5nICAgICAgICAgICA6IDNweCAwO1xuXHRcdFx0YmFja2dyb3VuZC1vcmlnaW4gOiBjb250ZW50LWJveDtcblx0XHRcdEBpbmNsdWRlIGJnKCdsb2dvX3N0b3J5X3NoaWZ0X3doaXRlLnBuZycsIGNvbnRhaW4sIGNvbnRlbnQtYm94KTtcblx0XHR9XG5cdH1cbn1cblxuLnBhZ2UtdGVtcGxhdGUtaG9tZS1zcyB7XG5cdC5oZWFkZXIge1xuXHRcdCNsb2dvIHtcblx0XHRcdGRpc3BsYXkgOiBub25lO1xuXHRcdH1cblx0fVxufVxuXG4ucGFnZS10ZW1wbGF0ZS1zcy1zdWJwYWdlIHtcblx0LmhlYWRlciB7XG5cdFx0I2xvZ28ge1xuXHRcdFx0ZGlzcGxheSA6IGlubGluZS1ibG9jaztcblx0XHR9XG5cdH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGggOiAxMDIzcHgpIHtcblxuXHQucGFnZS10ZW1wbGF0ZS1zcyB7XG5cdFx0I3RvcC1tZW51IHtcblx0XHRcdGJhY2tncm91bmQgOiAkYy1ibHVlLXZpb2w7XG5cdFx0fVxuXHR9XG5cdC5wYWdlLXRlbXBsYXRlLWhvbWUtc3Mge1xuXHRcdC5oZWFkZXIge1xuXHRcdFx0I2xvZ28ge1xuXHRcdFx0XHRkaXNwbGF5IDogaW5saW5lLWJsb2NrO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHQucGFnZS10ZW1wbGF0ZS1zcy1zdWJwYWdlIHtcblx0XHQuaGVhZGVyIHtcblx0XHRcdCNsb2dvIHtcblx0XHRcdFx0d2lkdGggIDogMTIwcHggIWltcG9ydGFudDtcblx0XHRcdFx0aGVpZ2h0IDogNjBweCAhaW1wb3J0YW50O1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuIiwiLnBhZ2UtdGVtcGxhdGUtc3Mge1xyXG4gICAgLmZvb3RlciB7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogLTE1cHg7XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIGNvbG9yOiAkYy13aGl0ZTtcclxuICAgICAgICBAaW5jbHVkZSBiZygkYy1ibHVlLXZpb2wpO1xyXG4gICAgICAgIFxyXG4gICAgICAgIC5tYXgtd2lkdGgge1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAzMHB4IDE1cHg7XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICBoMywgcCwgYSB7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogJGMtd2hpdGUgIWltcG9ydGFudDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICAuZm9vdGVyLWl0ZW0ge1xyXG4gICAgICAgICAgICBtaW4td2lkdGg6IDI4MHB4O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIFxyXG4gICAgLmZvb3QtbmF2IHtcclxuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgICAgIGhlaWdodDogNDcwcHg7XHJcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XHJcbiAgICAgICAgcGFkZGluZzogMTEwcHggMTVweCAwO1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgdG9wOiAtNDcwcHg7XHJcbiAgICAgICAgbGVmdDogMDtcclxuICAgICAgICByaWdodDogMDtcclxuICAgIH1cclxuICAgIC5mb290ZXItbG9nbyB7XHJcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xyXG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgICAgICBvYmplY3QtZml0OiBjb250YWluO1xyXG4gICAgfVxyXG4gICAgLmZvb3Rlci1jcmVkcyB7XHJcbiAgICAgICAgei1pbmRleDogNTtcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgZm9udC1zaXplOiAxMHB4O1xyXG4gICAgICAgIHBhZGRpbmctdG9wOiAyNXB4O1xyXG4gICAgICAgIFxyXG4gICAgICAgID4gYSB7XHJcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICA+IGEsICYge1xyXG4gICAgICAgICAgICBjb2xvcjogI2ZmZjtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBcclxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xyXG4gICAgICAgIC5mb290LW5hdiB7XHJcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAzMHB4O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iLCIucGFnZS10ZW1wbGF0ZS1zcyB7XG4gICAgI3RvcC1tZW51IHtcbiAgICAgICAgYTpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgZigxOHB4LCAkYy13aGl0ZSwgJ1JhbGV3YXknKTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMXB4O1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICB9XG4gICAgXG4gICAgLm1lbnUtaXRlbSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgXG4gICAgICAgIC5zdWItbWVudSB7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDIycHg7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdWJtZW51LWhpZGRlbjtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgPiAubWVudS1pdGVtIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjLWJsdWUtbHZpb2w7XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICAmOmhvdmVyIC5zdWItbWVudSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdWJtZW51LXZpc2libGU7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgfVxuICAgIFxuICAgIFxuICAgIC5zb2NpYWwtbWVkaWEge1xuICAgICAgICBhIHtcbiAgICAgICAgICAgIG1hcmdpbjogMCAxMHB4O1xuICAgICAgICAgICAgQGluY2x1ZGUgZigyMHB4LCAkYy13aGl0ZSk7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogLjNzO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMik7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRjLWdvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgLmxpbmVzLCAubGluZXM6YmVmb3JlLCAubGluZXM6YWZ0ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkYy13aGl0ZTtcbiAgICB9XG59XG4iLCIucGFnZS10ZW1wbGF0ZS1ob21lLXJyIHtcblx0LmhlYWRlciB7XG5cdFx0cGFkZGluZyA6IDEwcHggMDtcblx0XHRAaW5jbHVkZSBiZygkYy1saWdodC1ncmVlbik7XG5cdH1cbn1cblxuLnBhZ2UtdGVtcGxhdGUtaG9tZS1yci1zdWJwYWdlIHtcblx0LmhlYWRlciB7XG5cdFx0cGFkZGluZyA6IDMwcHggMDtcblx0XHRAaW5jbHVkZSBiZygkYy1jcmVhbS1kYXJrKTtcblx0XHRib3JkZXItYm90dG9tOiA1cHggc29saWQgJGMtb3JhbmdlO1xuXHR9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoIDogMTAyM3B4KSB7XG5cdC5wYWdlLXRlbXBsYXRlLXJyICN0b3AtbWVudXtcblx0XHRAaW5jbHVkZSBiZygkYy1jcmVhbS1kYXJrKTtcblx0fVxuXG5cdC5wYWdlLXRlbXBsYXRlLWhvbWUtcnIge1xuXHRcdC5oZWFkZXIgeyBcblx0XHRcdHBhZGRpbmcgOiAzMHB4IDA7XG5cdFx0XHQgI3RvcC1tZW51e1xuXHRcdFx0XHRAaW5jbHVkZSBiZygkYy1saWdodC1ncmVlbik7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdC5wYWdlLXRlbXBsYXRlLXJyLXN1YnBhZ2Uge1xuXHRcdCAjdG9wLW1lbnV7XG5cdFx0XHRAaW5jbHVkZSBiZygkYy1jcmVhbS1kYXJrKTtcblx0XHR9XG5cdH1cbn0iLCIucGFnZS10ZW1wbGF0ZS1yciB7XG4gICAgLmZvb3RlciB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IC0xNXB4O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGNvbG9yOiAkYy1ibGFjaztcbiAgICAgICAgQGluY2x1ZGUgYmcoJGMtbGlnaHQtZ3JlZW4pO1xuICAgICAgICBcbiAgICAgICAgLm1heC13aWR0aCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAzMHB4IDE1cHg7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIGgzLCBwLCBhIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGMtYmxhY2sgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgLmZvb3Rlci1pdGVtIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMjgwcHg7XG4gICAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgLmZvb3QtbmF2IHtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogLTI3MHB4O1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICB9XG5cbiAgICAuY2xvdWR7XG4gICAgICAgIGJhY2tncm91bmQ6IHVybCgnLi4vaW1hZ2VzL3JyLWNsb3Vkcy5wbmcnKSBjZW50ZXIgdG9wIC8gY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICBib3R0b206IDEwMCU7XG4gICAgfVxuICAgIC5jbG91ZC1iaWd7XG4gICAgICAgIHdpZHRoOiA5NTlweDtcbiAgICAgICAgaGVpZ2h0OiA2MDJweDtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVkoLTEpc2NhbGVYKC0xKTtcbiAgICAgICAgbGVmdDogLTUxN3B4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAtNDdweDtcbiAgICB9XG4gICAgLmNsb3VkLXNtYWxsZXJ7XG4gICAgICAgIHdpZHRoOiA1MTJweDtcbiAgICAgICAgaGVpZ2h0OiAzMjJweDtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVkoLTEpO1xuICAgICAgICByaWdodDogLTI3cHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IC0yNXB4O1xuICAgIH1cbiAgICAuYmx1ZS1iaXJke1xuICAgICAgICB3aWR0aDogMjM1cHg7XG4gICAgICAgIGhlaWdodDogMjQ5cHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHVybCgnLi4vaW1hZ2VzL3JyLWJsdWUtYmlyZHMucG5nJykgY2VudGVyIHRvcCAvIGNvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgYm90dG9tOiAxMDAlO1xuICAgICAgICByaWdodDogMTMwcHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgICB9XG4gICAgLnBhbG0tdHJlZXtcbiAgICAgICAgYmFja2dyb3VuZDogdXJsKCcuLi9pbWFnZXMvcnItcGFsbS10cmVlLnBuZycpIGNlbnRlciB0b3AgLyBjb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgIHdpZHRoOiAxNTBweDtcbiAgICAgICAgaGVpZ2h0OiA0MzVweDtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiAxMDAlIDEwMCU7XG4gICAgICAgIGJvdHRvbTogMTAwJTtcbiAgICAgICAgcmlnaHQ6IC01M3B4O1xuICAgIH1cblxuICAgIFxuXHQuYnRuLFxuXHRpbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcblx0XHRtaW4td2lkdGggICAgICAgOiAxNzBweDtcblx0XHRtYXJnaW4gICAgICAgICAgOiAxNXB4O1xuXHRcdHBhZGRpbmcgICAgICAgICA6IDEwcHg7XG5cdFx0QGluY2x1ZGUgZigxNXB4LCAkYy13aGl0ZSwgJGYtdG9maW5vLXJlZ3VsYXIpO1xuXHRcdGJvcmRlci1yYWRpdXMgICA6IDA7XG5cdFx0dGV4dC1kZWNvcmF0aW9uIDogbm9uZTtcblx0XHR0cmFuc2l0aW9uICAgICAgOiAuNXMgZWFzZTtcblxuXHRcdCY6aG92ZXIge1xuXHRcdFx0dGV4dC1kZWNvcmF0aW9uIDogbm9uZTtcblx0XHRcdGNvbG9yICAgICAgICAgICA6ICRjLXdoaXRlO1xuXHRcdFx0QGluY2x1ZGUgYmcoJGMtYXF1YS1kYXJrKTtcblx0XHRcdHRyYW5zZm9ybSAgICAgICA6IHJvdGF0ZSgzZGVnKSBzY2FsZSgxLjEpO1xuXHRcdH1cblxuXHRcdCYub3JhbmdlLFxuXHRcdCZbdHlwZT1cInN1Ym1pdFwiXSB7XG5cdFx0XHRAaW5jbHVkZSBiZygkYy1vcmFuZ2UpO1xuXHRcdFx0d29yZC1zcGFjaW5nIDogM3B4O1xuXHRcdFx0Y29sb3IgICAgICAgIDogJGMtd2hpdGU7XG5cblx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHRjb2xvciA6ICRjLXdoaXRlO1xuXHRcdFx0XHRAaW5jbHVkZSBiZygkYy1hcXVhLWRhcmspO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC5uaW5qYS1mb3Jtcy1yZXF1aXJlZC1pdGVtcyB7XG5cdFx0bWFyZ2luLWJvdHRvbSA6IDE1cHg7XG5cdFx0Y29sb3IgICAgICAgICA6ICRjLXdoaXRlO1xuXHR9XG5cblx0Lm5pbmphLWZvcm1zLXJlcS1zeW1ib2wge1xuXHRcdGNvbG9yIDogI2ZmMDAwMCAhaW1wb3J0YW50O1xuXHR9XG5cblx0Lm5pbmphLWZvcm1zLWZvcm0td3JhcCBsYWJlbCB7XG5cdFx0Zm9udC1zaXplIDogMjBweDtcblx0XHRjb2xvciAgICAgOiAkYy13aGl0ZTtcblx0fVxuXG5cdC5uaW5qYS1mb3Jtcy1mb3JtLXdyYXAgaW5wdXRbdHlwZT1cInRleHRcIl0sXG5cdC5uaW5qYS1mb3Jtcy1mb3JtLXdyYXAgdGV4dGFyZWEge1xuXHRcdG1pbi1oZWlnaHQgOiA0NXB4O1xuXHRcdHBhZGRpbmcgICAgOiA1cHggMTVweDtcblx0XHRAaW5jbHVkZSBmKDE5cHgpO1xuXHRcdGNvbG9yICAgICAgOiAkYy1kYXJrLWdyYXk7XG5cdFx0Ym9yZGVyICAgICA6IDNweCBzb2xpZCAkYy13aGl0ZTtcblx0XHRvdXRsaW5lICAgIDogbm9uZTtcblx0XHR0cmFuc2l0aW9uIDogLjVzIGVhc2U7XG5cblx0XHQmOmZvY3VzIHtcblx0XHRcdGJvcmRlciA6IDNweCBzb2xpZCAkYy1vcmFuZ2U7XG5cdFx0fVxuXHR9XG5cblx0Lm5pbmphLWZvcm1zLWZvcm0td3JhcCBpbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcblx0XHRtYXJnaW4gOiAwO1xuXHR9XG4gICAgXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgICAgIC5mb290LW5hdiB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMzBweDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuXG5cbiAgICAvKiBNRURJQSBRVUVSSUVTICovXG5AbWVkaWEgKG1heC13aWR0aDogMTEwMHB4KSB7XG4gICAgLnBhZ2UtdGVtcGxhdGUtcnJ7XG4gICAgICAgIC5wYWxtLXRyZWV7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgICAgIC5jbG91ZC1zbWFsbGVye1xuICAgICAgICAgICAgbGVmdDogNzAlO1xuICAgICAgICB9XG4gICAgICAgIC5jbG91ZC1iaWd7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDY1JTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDg5MHB4KSB7XG4gICAgLnBhZ2UtdGVtcGxhdGUtcnJ7XG4gICAgICAgIC5ibHVlLWJpcmR7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxufSIsIi5wYWdlLXRlbXBsYXRlLXJyIHtcblxuXHRvdmVyZmxvdy14OiBoaWRkZW47XG5cdCYucnItbGFuZy1lcyB7XG5cdFx0I3RvcC1tZW51IHtcblx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0fVxuXG5cdFx0Lm1heC13aWR0aC13aWRlciB7XG5cdFx0XHRtYXgtd2lkdGg6IDEwMCU7XG5cdFx0fVxuXHR9XG5cblx0I3RvcC1tZW51IHtcblx0XHRhe1xuXHRcdFx0cGFkZGluZzogOHB4IDEycHg7XG5cdFx0fVxuXHRcdGE6aG92ZXIge1xuXHRcdFx0dGV4dC1kZWNvcmF0aW9uIDogbm9uZTtcblx0XHR9XG5cdFx0c3BhbiB7XG5cdFx0XHRAaW5jbHVkZSBmKDE2cHgsICRjLWJsdWUtZGFyaywgJGYtdG9maW5vLXJlZ3VsYXIpO1xuXHRcdFx0bGV0dGVyLXNwYWNpbmcgOiAtM3B4O1xuXHRcdH1cblx0fVxuXHQmLnJyLWxhbmctZXMge1xuXHRcdCN0b3AtbWVudSB7XG5cdFx0XHRzcGFuIHtcblx0XHRcdFx0bGV0dGVyLXNwYWNpbmc6IC0zcHg7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdC5zb2NpYWwtbWVkaWEge1xuXHRcdGEge1xuXHRcdFx0bWFyZ2luICAgICAgICAgICA6IDAgMTBweDtcblx0XHRcdEBpbmNsdWRlIGYoMjBweCwgJGMtYmx1ZS1kYXJrKTtcblx0XHRcdGxpbmUtaGVpZ2h0ICAgICAgOiAxO1xuXHRcdFx0dmVydGljYWwtYWxpZ24gICA6IHRvcDtcblx0XHRcdGJhY2tncm91bmQtaW1hZ2UgOiBub25lO1xuXHRcdFx0dHJhbnNpdGlvbiAgICAgICA6IC4zcztcblxuXHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3IgOiB0cmFuc3BhcmVudDtcblx0XHRcdFx0dHJhbnNmb3JtICAgICAgICA6IHNjYWxlKDEuMik7XG5cdFx0XHRcdGNvbG9yICAgICAgICAgICAgOiAkYy1ibHVlO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG5AbWVkaWEobWF4LXdpZHRoOiAxMzUwcHgpIHtcblx0LnBhZ2UtdGVtcGxhdGUtcnIge1xuXHRcdCYucnItbGFuZy1lcyB7XG5cdFx0XHQuc29jaWFsLW1lZGlhIHtcblx0XHRcdFx0YSB7XG5cdFx0XHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0aGVhZGVyID4gZGl2ID4gYSA+IGltZyB7XG5cdFx0XHRoZWlnaHQ6IDQwcHg7XG5cdFx0fVxuXHR9XG59XG5cbkBtZWRpYShtYXgtd2lkdGg6IDEyNTBweCkge1xuXHQucGFnZS10ZW1wbGF0ZS1yciB7XG5cdFx0I3RvcC1tZW51IHtcblx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0fVxuXHRcdC5zb2NpYWwtbWVkaWEge1xuXHRcdFx0YSB7XG5cdFx0XHRcdG1hcmdpbjogMDtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQmLnJyLWxhbmctZXMge1xuXHRcdFx0I3RvcC1tZW51IHtcblx0XHRcdFx0bWFyZ2luOjA7XG5cdFx0XHRcdGEge1xuXHRcdFx0XHRcdHBhZGRpbmc6IDRweCA2cHg7XG5cdFx0XHRcdFx0c3BhbiB7XG5cdFx0XHRcdFx0XHRAaW5jbHVkZSBmKDE0cHgsICRjLWJsdWUtZGFyaywgJGYtdG9maW5vLXJlZ3VsYXIpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQuc29jaWFsLW1lZGlhIHtcblx0XHRcdFx0bWFyZ2luOiAwO1xuXG5cdFx0XHRcdGEge1xuXHRcdFx0XHRcdGZvbnQtc2l6ZTogMTRweDtcblx0XHRcdFx0XHRsaW5lLWhlaWdodDogMjBweDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHR9XG59IiwiLnBhZ2UtdGVtcGxhdGUtc3Mge1xyXG4gICAgXHJcbiAgICAuYmFuLWFycm93cy13cmFwIHtcclxuICAgICAgICB3aWR0aDogMDtcclxuICAgICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIGxlZnQ6IDUwJTtcclxuICAgICAgICB0b3A6IDA7XHJcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIC5iYW4tYXJyb3cge1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICBsZWZ0OiAwO1xyXG4gICAgICAgIHRvcDogLTUwMHB4O1xyXG4gICAgICAgIG9wYWNpdHk6IC4zO1xyXG4gICAgICAgIGFuaW1hdGlvbjogZmFkZSAzcyBhbHRlcm5hdGUgaW5maW5pdGUgZWFzZS1pbi1vdXQ7XHJcbiAgICAgICAgXHJcbiAgICAgICAgc3BhbiB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICB3aWR0aDogODBweDtcclxuICAgICAgICAgICAgaGVpZ2h0OiA5MHB4O1xyXG4gICAgICAgICAgICBhbmltYXRpb246IHN3aW0gM3MgYWx0ZXJuYXRlIGluZmluaXRlIGVhc2UtaW4tb3V0O1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoLi4vLi4vaW1hZ2VzL2Fycm93X3JpZ2h0LnBuZykgbGVmdCB0b3AgL2NvbnRhaW4gbm8tcmVwZWF0O1xyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICAmOmZpcnN0LW9mLXR5cGUge1xyXG4gICAgICAgICAgICBsZWZ0OiAtNDMwcHggIWltcG9ydGFudDtcclxuICAgICAgICAgICAgdG9wOiAxMDBweCAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICBhbmltYXRpb24tZGVsYXk6IC42cztcclxuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiA0cztcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIHNwYW4ge1xyXG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiA1cztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICAmOm50aC1vZi10eXBlKDIpIHtcclxuICAgICAgICAgICAgbGVmdDogLTI2MHB4ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgIHRvcDogMTkwcHggIWltcG9ydGFudDtcclxuICAgICAgICAgICAgYW5pbWF0aW9uLWRlbGF5OiAuNXM7XHJcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogM3M7XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICBzcGFuIHtcclxuICAgICAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogNnM7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICAgICAgJjpudGgtb2YtdHlwZSgzKSB7XHJcbiAgICAgICAgICAgIGxlZnQ6IC01OTBweCAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICB0b3A6IDIxMHB4ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kZWxheTogLjFzO1xyXG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDZzO1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgc3BhbiB7XHJcbiAgICAgICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDRzO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICAgICY6bnRoLW9mLXR5cGUoNCkge1xyXG4gICAgICAgICAgICBsZWZ0OiAtNDAwcHggIWltcG9ydGFudDtcclxuICAgICAgICAgICAgdG9wOiAyOTBweCAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICBhbmltYXRpb24tZGVsYXk6IC4ycztcclxuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiA0cztcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIHNwYW4ge1xyXG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiA3cztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICAmOm50aC1vZi10eXBlKDUpIHtcclxuICAgICAgICAgICAgbGVmdDogLTQwcHggIWltcG9ydGFudDtcclxuICAgICAgICAgICAgdG9wOiAzMzBweCAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICBhbmltYXRpb24tZGVsYXk6IC41cztcclxuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiA3cztcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIHNwYW4ge1xyXG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiA1LjVzO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICAgICY6bnRoLW9mLXR5cGUoNikge1xyXG4gICAgICAgICAgICBsZWZ0OiAyNzBweCAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICB0b3A6IDExMHB4ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kZWxheTogLjNzO1xyXG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDJzO1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgc3BhbiB7XHJcbiAgICAgICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDVzO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICAgICY6bnRoLW9mLXR5cGUoNykge1xyXG4gICAgICAgICAgICBsZWZ0OiA1MDBweCAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICB0b3A6IDE5MHB4ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kZWxheTogLjlzO1xyXG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDVzO1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgc3BhbiB7XHJcbiAgICAgICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDZzO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICAgICY6bnRoLW9mLXR5cGUoOCkge1xyXG4gICAgICAgICAgICBsZWZ0OiAyMjBweCAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICB0b3A6IDI4MHB4ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kZWxheTogLjdzO1xyXG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDZzO1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgc3BhbiB7XHJcbiAgICAgICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDdzO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICAgICY6bGFzdC1vZi10eXBlIHtcclxuICAgICAgICAgICAgbGVmdDogNDQwcHggIWltcG9ydGFudDtcclxuICAgICAgICAgICAgdG9wOiAzMjBweCAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICBhbmltYXRpb24tZGVsYXk6IC41cztcclxuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiA4cztcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIHNwYW4ge1xyXG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiA2LjVzO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgfVxyXG4gICAgXHJcbiAgICAuc3MtaG9tZSB7XHJcbiAgICAgICAgcGFkZGluZy10b3A6IDEyMHB4O1xyXG4gICAgICAgIEBpbmNsdWRlIGJnKCRjLWJsYWNrKTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgaDEge1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDQ1cHg7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IDkwMDtcclxuICAgICAgICBAaW5jbHVkZSBmKDY0cHgsICRjLWJsdWUtbHZpb2wpO1xyXG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAuOTtcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgXHJcbiAgICAgICAgc3BhbiB7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICAgICAgc3BhbjpiZWZvcmUge1xyXG4gICAgICAgICAgICBjb250ZW50OiAnJztcclxuICAgICAgICAgICAgd2lkdGg6IDEwMHB4O1xyXG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGMtYmx1ZS1sdmlvbDtcclxuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICByaWdodDogMTEwJTtcclxuICAgICAgICAgICAgdG9wOiA1MCU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICAgIHNwYW46YWZ0ZXIge1xyXG4gICAgICAgICAgICBjb250ZW50OiAnJztcclxuICAgICAgICAgICAgZGlzcGxheTogdGFibGU7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICBjbGVhcjogYm90aDtcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICAgICAgaSB7XHJcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxMzBweDtcclxuICAgICAgICAgICAgY29sb3I6ICRjLXdoaXRlO1xyXG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XHJcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICY6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwcHg7XHJcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGMtd2hpdGU7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgICAgICBsZWZ0OiAxMTAlO1xyXG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBcclxuICAgIC5wcm9tbyB7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgbWF4LXdpZHRoOiAzMjBweDtcclxuICAgICAgICBtYXJnaW46IDAgYXV0byA0NXB4O1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICBAaW5jbHVkZSBmKDIycHgsICRjLXdoaXRlKTtcclxuICAgICAgICBmb250LXdlaWdodDogOTAwO1xyXG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAuNXB4O1xyXG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICAgICAgdHJhbnNpdGlvbjogLjVzIGVhc2U7XHJcbiAgICAgICAgXHJcbiAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICAgIGltZyB7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW46IC01cHggMjVweCAwO1xyXG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKSBzY2FsZSgxLjIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICAgIGltZyB7XHJcbiAgICAgICAgICAgIHdpZHRoOiA2MHB4O1xyXG4gICAgICAgICAgICBtYXJnaW46IC01cHggMTVweCAwO1xyXG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG4gICAgICAgICAgICB0cmFuc2l0aW9uOiAuNXMgZWFzZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBcclxuICAgIC5zdWJ0ZXh0IHtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICBtYXgtd2lkdGg6IDYwMHB4O1xyXG4gICAgICAgIG1hcmdpbjogMCBhdXRvIDQ1cHg7XHJcbiAgICAgICAgcGFkZGluZzogMCAxNXB4O1xyXG4gICAgICAgIGNvbG9yOiAkYy13aGl0ZTtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIC5ob21lLW5hdiB7XHJcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgICAgICAvL2hlaWdodCA6IGNhbGMoMTAwdmggLSAzMjdweCk7XHJcbiAgICAgICAgdWwge1xyXG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDM0MHB4O1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAgICAgICBtYXJnaW46IDAgLTYwcHg7XHJcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgLyomOmhvdmVyIGxpIHtcclxuICAgICAgICAgICAgICAgIGZsZXggOiAwIDAgMTklO1xyXG4gICAgICAgICAgICB9Ki9cclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICAgICAgbGkge1xyXG4gICAgICAgICAgICBmbGV4OiAxIDEgMTAwMHB4O1xyXG4gICAgICAgICAgICBtYXJnaW46IDAgM3B4O1xyXG4gICAgICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgIHRyYW5zaXRpb246IC41cyBlYXNlO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNrZXcoLTE1ZGVnLCAwZGVnKTtcclxuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKG1kKSB7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgICAgICAgIC8vZmxleCA6IDAgMCAyNCUgIWltcG9ydGFudDtcclxuICAgICAgICAgICAgICAgIGZsZXg6IDEgMSAxMjAwcHggIWltcG9ydGFudDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICBsaTpmaXJzdC1vZi10eXBlIHtcclxuICAgICAgICAgICAgaDMsIHAge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiA0NXB4O1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMTVweDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICBsaTpsYXN0LW9mLXR5cGUge1xyXG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgaDMsIHAge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAxNXB4O1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogNDVweDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgLmJnIHtcclxuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICAgIGxpOmhvdmVyIHtcclxuICAgICAgICAgICAgLy9wYWRkaW5nIDogMCAzMHB4O1xyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICBhIHtcclxuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgICAgICBwYWRkaW5nOiA2MHB4IDA7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgICAgICAgICB0cmFuc2l0aW9uOiAuNXMgZWFzZTtcclxuICAgICAgICAgICAgei1pbmRleDogMjtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiBza2V3KDE1ZGVnLCAwZGVnKTtcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIGgzLCBwIHtcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgICAgICAgIHotaW5kZXg6IDI7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICAgICAgLmJnIHtcclxuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICBsZWZ0OiAtNDVweDtcclxuICAgICAgICAgICAgdG9wOiAwO1xyXG4gICAgICAgICAgICByaWdodDogLTQ1cHg7XHJcbiAgICAgICAgICAgIGJvdHRvbTogMDtcclxuICAgICAgICAgICAgei1pbmRleDogMTtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xyXG4gICAgICAgICAgICB0cmFuc2l0aW9uOiAuN3MgZWFzZTtcclxuICAgICAgICAgICAgIGZpbHRlcjogZ3JheXNjYWxlKDApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICBoMywgcCB7XHJcbiAgICAgICAgICAgIGNvbG9yOiAkYy13aGl0ZTtcclxuICAgICAgICAgICAgbWFyZ2luOiA1cHggLTIwcHg7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDdweCAzMHB4O1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNzUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICBoMyB7XHJcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIGYoMzJweCk7XHJcbiAgICAgICAgICAgIHRyYW5zaXRpb246IC43cyBlYXNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICBwIHtcclxuICAgICAgICAgICAgb3BhY2l0eTogMDtcclxuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgICAgICAgICAgbWF4LWhlaWdodDogMDtcclxuICAgICAgICAgICAgcGFkZGluZy10b3A6IDEwcHg7XHJcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBmKDE1cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2l0aW9uOiAuN3MgZWFzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICAgICAgYTpob3ZlciB7XHJcbiAgICAgICAgICAgIGgzIHtcclxuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIC5iZyB7XHJcbiAgICAgICAgICAgICAgICBmaWx0ZXI6IGdyYXlzY2FsZSgxKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgcCB7XHJcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiA2MDBweDtcclxuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICAgICAgLmljb24ge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxNTBweDtcclxuICAgICAgICAgICAgaGVpZ2h0OiAxNTBweDtcclxuICAgICAgICAgICAgbWFyZ2luOiAzMHB4IGF1dG8gMDtcclxuICAgICAgICAgICAgQGluY2x1ZGUgZig4MHB4LCAkYy1hcXVhLWRhcmspO1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBiZygkYy1kYXJrLWdyYXkpO1xyXG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCAkYy13aGl0ZSwgMCAwIDAgNHB4ICRjLWJsYWNrLCAwIDAgMCA2cHggJGMtd2hpdGUsO1xyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogOTgwcHgpIHtcclxuICAgICAgICAgICAgbGkge1xyXG4gICAgICAgICAgICAgICAgZmxleDogMSAxIDIyMHB4ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgICAgICAgICAgIGZsZXg6IDEgMSAyMjBweCAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4ud3BiX3dyYXBwZXIge1xyXG4gICAgdWwge1xyXG4gICAgICAgIGxpc3Qtc3R5bGU6IGRpc2M7XHJcbiAgICB9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgc3dpbSB7XHJcbiAgICAwJSB7XHJcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTI1cHgsIC01cHgpO1xyXG4gICAgfVxyXG4gICAgMTAwJSB7XHJcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMjVweCwgNXB4KTtcclxuICAgIH1cclxufVxyXG5cclxuQGtleWZyYW1lcyBmYWRlIHtcclxuICAgIDAlIHtcclxuICAgICAgICBvcGFjaXR5OiAuMztcclxuICAgIH1cclxuICAgIDEwMCUge1xyXG4gICAgICAgIG9wYWNpdHk6IDA7XHJcbiAgICB9XHJcbn1cclxuIiwiLnBhZ2UtdGVtcGxhdGUtc2JiIHtcclxuICAgIEBpbmNsdWRlIGJnKCRjLWJsdWUpO1xyXG4gICAgXHJcbiAgICAuc2JiLWhvbWUge1xyXG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDM1MHB4O1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICAubWFpbi1iYW5uZXIge1xyXG4gICAgICAgIG1pbi1oZWlnaHQ6IDc4MHB4O1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIC8vYmFja2dyb3VuZCAgICA6IHVybCgnLi4vaW1hZ2VzL2JnMl9tYWluX2Jhbm5lcl9zYmIucG5nJykgbm8tcmVwZWF0IGNlbnRlciB0b3AsXHJcbiAgICAgICAgLy91cmwoJy4uL2ltYWdlcy9iZ19tYWluX2Jhbm5lcl9zYmIuanBnJykgbm8tcmVwZWF0IGNlbnRlciB0b3A7XHJcbiAgICAgICAgXHJcbiAgICAgICAgaDEge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBmKDEwMHB4LCAkYy1vcmFuZ2UsICRmLVRldHJhKTtcclxuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IC45O1xyXG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogLTVweCAwICRjLWJsdWUtYXF1YSxcclxuICAgICAgICAgICAgMCAtNXB4IDFweCAkYy1ibHVlLWFxdWEsXHJcbiAgICAgICAgICAgIC01cHggLTVweCAxcHggJGMtYmx1ZS1hcXVhLFxyXG4gICAgICAgICAgICA1cHggMCAwICRjLWJsdWUtYXF1YSxcclxuICAgICAgICAgICAgNXB4IC01cHggMXB4ICRjLWJsdWUtYXF1YSxcclxuICAgICAgICAgICAgNXB4IDVweCAxcHggJGMtYmx1ZS1hcXVhLFxyXG4gICAgICAgICAgICAtNXB4IDVweCAxcHggJGMtYmx1ZS1hcXVhLFxyXG4gICAgICAgICAgICAtNXB4IDAgMXB4ICRjLWJsdWUtYXF1YSxcclxuICAgICAgICAgICAgMCA1cHggMXB4ICRjLWJsdWUtYXF1YTtcclxuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICB0b3A6IDIyMHB4ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgIGxlZnQ6IGluaXRpYWwgIWltcG9ydGFudDtcclxuICAgICAgICAgICAgcmlnaHQ6IDEyJTtcclxuICAgICAgICAgICAgei1pbmRleDogNjtcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIHNwYW4ge1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICY6bnRoLW9mLXR5cGUoMikge1xyXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA5MHB4O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAmOmxhc3Qtb2YtdHlwZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDE1MHB4O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICAgIGgyIHtcclxuICAgICAgICAgICAgQGluY2x1ZGUgZigyM3B4LCBib2xkLCAkYy1hcXVhLWRhcmssIEFyaWFsKTtcclxuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcclxuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICB0b3A6IDUzMHB4ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgIGxlZnQ6IGluaXRpYWwgIWltcG9ydGFudDtcclxuICAgICAgICAgICAgcmlnaHQ6IDYlO1xyXG4gICAgICAgICAgICB6LWluZGV4OiA2O1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgc3BhbiB7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA2MHB4O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgXHJcbiAgICAuaW5uZXItbWIge1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICBtYXgtd2lkdGg6IDEzNjBweDtcclxuICAgICAgICBtaW4taGVpZ2h0OiA3ODBweDtcclxuICAgICAgICBtYXJnaW46IDAgYXV0bztcclxuICAgICAgICB6LWluZGV4OiA1O1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICAuaW5uZXItYmctYmFjayB7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIGxlZnQ6IDA7XHJcbiAgICAgICAgcmlnaHQ6IDA7XHJcbiAgICAgICAgdG9wOiAwO1xyXG4gICAgICAgIHotaW5kZXg6IDE7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIC5zYmItY29udGVudCB7XHJcbiAgICAgICAgcGFkZGluZy10b3A6IDMwcHg7XHJcbiAgICAgICAgQGluY2x1ZGUgZigxOXB4LCAkYy13aGl0ZSwgJGYtTm9haC1SZWd1bGFyKTtcclxuICAgICAgICBsaW5lLWhlaWdodDogMS42O1xyXG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAuN3B4O1xyXG4gICAgICAgIHdvcmQtc3BhY2luZzogMXB4O1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNjcsIDE3NiwgMTg4LCAwLjcpO1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICB6LWluZGV4OiAxMTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgLmRpc25vbmUge1xyXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIC8qIEFOSU1BVEUgT0JKRUNUUyAqL1xyXG4gICAgLmJnLWFuaW1hdGUge1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xyXG4gICAgICAgIHotaW5kZXg6IDU7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIC5iZy1tYWluLXdyYXAge1xyXG4gICAgICAgIHdpZHRoOiAzMDAlO1xyXG4gICAgICAgIGhlaWdodDogNzgwcHg7XHJcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjLWJsdWUtbGlnaHQ7XHJcbiAgICAgICAgdG9wOiAyMHB4ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgbGVmdDogLTEwMCUgIWltcG9ydGFudDtcclxuICAgICAgICB6LWluZGV4OiAyO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICAuYmctbWFpbiB7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgaGVpZ2h0OiA3ODBweDtcclxuICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoJy4uL2ltYWdlcy9iZ19tYWluX2Jhbm5lcl9zYmJfbGVhZi5qcGcnKSBjZW50ZXIgdG9wO1xyXG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogYXV0byA3ODBweDtcclxuICAgICAgICBhbmltYXRpb246IHdpZ2dsZTIgMjBzIGluZmluaXRlIGFsdGVybmF0ZSBlYXNlLWluLW91dDtcclxuICAgIH1cclxuICAgIFxyXG4gICAgLmJnLWNsb3Vkcy13cmFwIHtcclxuICAgICAgICB3aWR0aDogNDAwJTtcclxuICAgICAgICBoZWlnaHQ6IDIyMHB4O1xyXG4gICAgICAgIHRvcDogMjBweCAhaW1wb3J0YW50O1xyXG4gICAgICAgIGxlZnQ6IC0xNTAlICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIC5iZy1jbG91ZHMge1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIGhlaWdodDogMjIwcHg7XHJcbiAgICAgICAgYmFja2dyb3VuZDogdXJsKCcuLi9pbWFnZXMvYmdfbWFpbl9iYW5uZXJfc2JiX2Nsb3VkczMucG5nJykgY2VudGVyIHRvcCAvIGNvdmVyIHJlcGVhdC14O1xyXG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogYXV0byAyMjBweDtcclxuICAgICAgICBhbmltYXRpb246IHdpZ2dsZSAyMHMgaW5maW5pdGUgYWx0ZXJuYXRlIGVhc2UtaW4tb3V0O1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICAuYmctbW9vbiB7XHJcbiAgICAgICAgd2lkdGg6IDIzMHB4O1xyXG4gICAgICAgIGhlaWdodDogMjMwcHg7XHJcbiAgICAgICAgdG9wOiA4MHB4ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgbGVmdDogaW5pdGlhbCAhaW1wb3J0YW50O1xyXG4gICAgICAgIHJpZ2h0OiAzNXB4ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgYmFja2dyb3VuZDogdXJsKCcuLi9pbWFnZXMvYmdfbWFpbl9iYW5uZXJfc2JiX21vb24ucG5nJykgbGVmdCB0b3AgLyBjb250YWluIG5vLXJlcGVhdDtcclxuICAgICAgICB6LWluZGV4OiAzO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICAuYmctYmlyZCB7XHJcbiAgICAgICAgd2lkdGg6IDEyNHB4O1xyXG4gICAgICAgIGhlaWdodDogMTAwcHg7XHJcbiAgICAgICAgdG9wOiAzMDBweCAhaW1wb3J0YW50O1xyXG4gICAgICAgIGxlZnQ6IGluaXRpYWwgIWltcG9ydGFudDtcclxuICAgICAgICByaWdodDogMTEwcHggIWltcG9ydGFudDtcclxuICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoJy4uL2ltYWdlcy9iZ19tYWluX2Jhbm5lcl9zYmJfYmlyZC5wbmcnKSBsZWZ0IHRvcCAvIGNvbnRhaW4gbm8tcmVwZWF0O1xyXG4gICAgICAgIGFuaW1hdGlvbjogdG9wLWRvd24gN3MgaW5maW5pdGUgbGluZWFyO1xyXG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDAgMCAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICAuYmctc3dpcmwtbGVmdCB7XHJcbiAgICAgICAgd2lkdGg6IDI2NXB4O1xyXG4gICAgICAgIGhlaWdodDogNDAwcHg7XHJcbiAgICAgICAgdG9wOiAyMTBweCAhaW1wb3J0YW50O1xyXG4gICAgICAgIGxlZnQ6IC01MHB4ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgYmFja2dyb3VuZDogdXJsKCcuLi9pbWFnZXMvYmdfbWFpbl9iYW5uZXJfc2JiX3N3aXJsLnBuZycpIGxlZnQgdG9wIC8gY29udGFpbiBuby1yZXBlYXQ7XHJcbiAgICAgICAgYW5pbWF0aW9uOiB0b3AtZG93bjIgNXMgaW5maW5pdGUgYWx0ZXJuYXRlIGVhc2UtaW4tb3V0O1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICAuYmctZmxvd2VyLXJpZ2h0IHtcclxuICAgICAgICB3aWR0aDogMTUwcHg7XHJcbiAgICAgICAgaGVpZ2h0OiA0MDBweDtcclxuICAgICAgICB0b3A6IGluaXRpYWwgIWltcG9ydGFudDtcclxuICAgICAgICBib3R0b206IDc1cHggIWltcG9ydGFudDtcclxuICAgICAgICBsZWZ0OiBpbml0aWFsICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgcmlnaHQ6IC0xNXB4ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgYmFja2dyb3VuZDogdXJsKCcuLi9pbWFnZXMvYmdfbWFpbl9iYW5uZXJfc2JiX2Zsb3dlci5wbmcnKSByaWdodCBib3R0b20gLyBjb250YWluIG5vLXJlcGVhdDtcclxuICAgIH1cclxuICAgIFxyXG4gICAgLmJnLXN3aXJsLXJpZ2h0IHtcclxuICAgICAgICB3aWR0aDogMzIwcHg7XHJcbiAgICAgICAgaGVpZ2h0OiA0NjBweDtcclxuICAgICAgICB0b3A6IGluaXRpYWwgIWltcG9ydGFudDtcclxuICAgICAgICBib3R0b206IC0yMHB4ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgbGVmdDogaW5pdGlhbCAhaW1wb3J0YW50O1xyXG4gICAgICAgIHJpZ2h0OiAwICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgYmFja2dyb3VuZDogdXJsKCcuLi9pbWFnZXMvYmdfbWFpbl9iYW5uZXJfc2JiX2xlYWZfbl9zd2lybC5wbmcnKSByaWdodCBib3R0b20gLyBjb250YWluIG5vLXJlcGVhdDtcclxuICAgIH1cclxuICAgIFxyXG4gICAgLmJnLWxlYWYtbGVmdCB7XHJcbiAgICAgICAgd2lkdGg6IDE4MHB4O1xyXG4gICAgICAgIGhlaWdodDogMjEwcHg7XHJcbiAgICAgICAgdG9wOiBpbml0aWFsICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgYm90dG9tOiAtMzBweCAhaW1wb3J0YW50O1xyXG4gICAgICAgIGxlZnQ6IDEwcHggIWltcG9ydGFudDtcclxuICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoJy4uL2ltYWdlcy9iZ19tYWluX2Jhbm5lcl9zYmJfbGVhZi5wbmcnKSBsZWZ0IHRvcCAvIGNvbnRhaW4gbm8tcmVwZWF0O1xyXG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDIwJSA3MCUgIWltcG9ydGFudDtcclxuICAgICAgICBhbmltYXRpb246IHN3aW5nIDRzIGluZmluaXRlIGFsdGVybmF0ZSBjdWJpYy1iZXppZXIoMC40NTUsIDAuMDMsIDAuNTE1LCAwLjk1NSk7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIC5iZy1ib3JkZXIge1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgICB0b3A6IGluaXRpYWwgIWltcG9ydGFudDtcclxuICAgICAgICBib3R0b206IDE1cHggIWltcG9ydGFudDtcclxuICAgICAgICBsZWZ0OiAwICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgYmFja2dyb3VuZDogdXJsKCcuLi9pbWFnZXMvYmdfbWFpbl9iYW5uZXJfc2JiX2JvcmRlci5wbmcnKSBjZW50ZXIgYm90dG9tIG5vLXJlcGVhdDtcclxuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDEyODBweCBhdXRvO1xyXG4gICAgICAgIHotaW5kZXg6IDM7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIC5iZy1wZW9wbGVzIHtcclxuICAgICAgICB3aWR0aDogMTA0MHB4O1xyXG4gICAgICAgIGhlaWdodDogNjEwcHg7XHJcbiAgICAgICAgdG9wOiBpbml0aWFsICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgbGVmdDogNTAlICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgYm90dG9tOiAxcHggIWltcG9ydGFudDtcclxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNzc4cHgsIDApICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgYmFja2dyb3VuZDogdXJsKC4uL2ltYWdlcy9iZ19tYWluX2Jhbm5lcl9zYmJfcGVvcGxlczIucG5nKSBsZWZ0IGJvdHRvbSAvY29udGFpbiBuby1yZXBlYXQ7XHJcbiAgICAgICAgei1pbmRleDogMztcclxuICAgIH1cclxuICAgIFxyXG4gICAgLmJnLWJyYW5jaCB7XHJcbiAgICAgICAgd2lkdGg6IDE5MHB4O1xyXG4gICAgICAgIGhlaWdodDogMTMwcHg7XHJcbiAgICAgICAgdG9wOiA1ODZweCAhaW1wb3J0YW50O1xyXG4gICAgICAgIGxlZnQ6IDUwJSAhaW1wb3J0YW50O1xyXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC04MHB4LCAwKSAhaW1wb3J0YW50O1xyXG4gICAgICAgIGJhY2tncm91bmQ6IHVybCgnLi4vaW1hZ2VzL2JnX21haW5fYmFubmVyX3NiYl9icmFuY2gucG5nJykgY2VudGVyIHRvcCAvIGNvbnRhaW4gbm8tcmVwZWF0O1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICAvKiBBTklNQVRFUyAqL1xyXG4gICAgXHJcbiAgICBAa2V5ZnJhbWVzIHRvcC1kb3duIHtcclxuICAgICAgICAwJSB7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC0xNXB4KSByb3RhdGVaKDBkZWcpO1xyXG4gICAgICAgIH1cclxuICAgICAgICAyNSUge1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNXB4LCAwKSByb3RhdGVaKC01ZGVnKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgNTAlIHtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMTVweCkgcm90YXRlWigwZGVnKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgNzUlIHtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoNXB4LCAwKSByb3RhdGVaKDVkZWcpO1xyXG4gICAgICAgIH1cclxuICAgICAgICAxMDAlIHtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTE1cHgpIHJvdGF0ZVooMGRlZyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgXHJcbiAgICBAa2V5ZnJhbWVzIHRvcC1kb3duMiB7XHJcbiAgICAgICAgMCUge1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMTVweCkgcm90YXRlWigwZGVnKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgMTAwJSB7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDE1cHgpIHJvdGF0ZVooMGRlZyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgXHJcbiAgICBAa2V5ZnJhbWVzIHN3aW5nIHtcclxuICAgICAgICAwJSB7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWig1ZGVnKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgMTAwJSB7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWigtNWRlZyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgXHJcbiAgICBAa2V5ZnJhbWVzIHdpZ2dsZSB7XHJcbiAgICAgICAgMCUge1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMTAwcHgsIDApO1xyXG4gICAgICAgIH1cclxuICAgICAgICA1MCUge1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMjBweCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIDEwMCUge1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxMDBweCwgMCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgXHJcbiAgICBAa2V5ZnJhbWVzIHdpZ2dsZTIge1xyXG4gICAgICAgIDAlIHtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTAwcHgsIDApO1xyXG4gICAgICAgIH1cclxuICAgICAgICAxMDAlIHtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTEwMHB4LCAwKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBcclxuICAgIC8qIE1FRElBIFFVRVJJRVMgKi9cclxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAyMDAxcHgpIHtcclxuICAgICAgICAubWFpbi1iYW5uZXIge1xyXG4gICAgICAgICAgICBoMiB7XHJcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjAlLCAwKSAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgXHJcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogMTQwMXB4KSBhbmQgKG1heC13aWR0aDogMjAwMHB4KSB7XHJcbiAgICAgICAgaDIge1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjAlLCAwKSAhaW1wb3J0YW50O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIFxyXG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkgYW5kIChtYXgtd2lkdGg6IDE0MDBweCkge1xyXG4gICAgICAgIGgyIHtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTEwJSwgMCkgIWltcG9ydGFudDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBcclxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAxMDIzcHgpIHtcclxuICAgICAgICAubWFpbi1iYW5uZXIge1xyXG4gICAgICAgICAgICBoMSB7XHJcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjAlLCAxMHB4KSAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICBoMiB7XHJcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjAlLCAwKSAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5saW5lcy1idXR0b24ge1xyXG4gICAgICAgICAgICB0b3A6IDA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5iZy1wZW9wbGVzIHtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTEwNTVweCwgMCkgIWltcG9ydGFudDtcclxuICAgICAgICAgICAgei1pbmRleDogMjtcclxuICAgICAgICB9XHJcbiAgICAgICAgLmJnLXN3aXJsLWxlZnQge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIFxyXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XHJcbiAgICAgICAgLm1haW4tYmFubmVyIHtcclxuICAgICAgICAgICAgaDEge1xyXG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTEwJSwgMjBweCkgIWltcG9ydGFudDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgaDIge1xyXG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTIwJSwgMCkgIWltcG9ydGFudDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAuc2JiLWhvbWUge1xyXG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogNTAwcHg7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgXHJcbiAgICBAbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcclxuICAgICAgICAubWFpbi1iYW5uZXIge1xyXG4gICAgICAgICAgICAuYmctbW9vbiB7XHJcbiAgICAgICAgICAgICAgICB0b3A6IDIwcHggIWltcG9ydGFudDtcclxuICAgICAgICAgICAgICAgIHJpZ2h0OiAtODVweCAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAuYmctYmlyZCB7XHJcbiAgICAgICAgICAgICAgICB0b3A6IDIxMHB4ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgICAgICByaWdodDogLTIwcHggIWltcG9ydGFudDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgLmJnLXBlb3BsZXMge1xyXG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTk0NXB4LCAwKSAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAuYmctZmxvd2VyLXJpZ2h0LFxyXG4gICAgICAgICAgICAuYmctc3dpcmwtcmlnaHQsXHJcbiAgICAgICAgICAgIC5iZy1sZWFmLWxlZnQge1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICBoMSB7XHJcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBmKDYwcHgpO1xyXG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTUlLCAzMHB4KSAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICBzcGFuIHtcclxuICAgICAgICAgICAgICAgICAgICAmOm50aC1vZi10eXBlKDIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDQwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICY6bGFzdC1vZi10eXBlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDgwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICBoMiB7XHJcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxMCUsIC03MHB4KSAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICBzcGFuIHtcclxuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMTBweDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIFxyXG4gICAgJi5zYmItbGFuZy1lcyB7XHJcbiAgICAgICAgLm1haW4tYmFubmVyIHtcclxuICAgICAgICAgICAgaDEge1xyXG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCkgIWltcG9ydGFudDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgaDIge1xyXG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCkgIWltcG9ydGFudDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzwxNDAwcHgnKSB7XHJcbiAgICAgICAgICAgICAgICBoMSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiA1LjI1cmVtO1xyXG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIGgyIHtcclxuICAgICAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDMzMHB4O1xyXG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKSAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIHNwYW4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzw2MjBweCcpIHtcclxuICAgICAgICAgICAgICAgIGgxIHtcclxuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDVyZW07XHJcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMzBweCwgMCkgIWltcG9ydGFudDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGgyIHtcclxuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDE4cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgLy9tYXgtd2lkdGg6IDE2MHB4O1xyXG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0zMHB4LCAtNzVweCkgIWltcG9ydGFudDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPDQ4MHB4Jykge1xyXG4gICAgICAgICAgICAgICAgaDEge1xyXG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogM3JlbTtcclxuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgzMHB4LCAwKSAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaDIge1xyXG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMThweDtcclxuICAgICAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDE2MHB4O1xyXG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDEwcHgsIC0xMDVweCkgIWltcG9ydGFudDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgIH1cclxufVxyXG5cclxuIiwiLnBhZ2UtdGVtcGxhdGUtcnIge1xuICBAaW5jbHVkZSBiZygkYy1saWdodC1ncmVlbik7XG4gIC5tYWluLXdyYXBwIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG4gIC5yci1ob21lIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBhZGRpbmctYm90dG9tOiAzNTBweDtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoXCIuLi9pbWFnZXMvcnItYmx1ZS1ncmFkaWVudC5wbmdcIikgbGVmdCBib3R0b207XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgfVxuXG4gIC5tYWluLWJhbm5lciB7XG4gICAgbWluLWhlaWdodDogODM4cHg7XG4gICAgbWFyZ2luLXRvcDogNTVweDtcbiAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXgtd2lkdGg6IDEzNjBweDtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJvcmRlcjogM3B4IHNvbGlkIGJsYWNrO1xuICB9XG5cbiAgLnJyLWNvbnRlbnQge1xuICAgIHBhZGRpbmctdG9wOiAzOHB4O1xuICAgIEBpbmNsdWRlIGYoXCIxNXB4LzIwcHhcIiwgJGMtZ3JheS10ZXh0LCAkZi1Ob2FoLUJvbGQpO1xuICAgIGxldHRlci1zcGFjaW5nOiAxLjVweDtcbiAgICB3b3JkLXNwYWNpbmc6IDNweDtcbiAgICBwIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgfVxuICB9XG5cbiAgLyogQU5JTUFURSBPQkpFQ1RTICovXG4gIC5iZy1tYWluIHtcbiAgICBsZWZ0OiAtMTUwcHg7XG4gICAgdG9wOiAyMHB4O1xuICAgIHdpZHRoOiAxMTQ5cHg7XG4gICAgaGVpZ2h0OiA3ODBweDtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoXCIuLi9pbWFnZXMvcnItYmx1ZS1ncmFkaWVudC5wbmdcIikgY2VudGVyIHRvcDtcbiAgICBhbmltYXRpb246IHdpZ2dsZTIgMjBzIGluZmluaXRlIGFsdGVybmF0ZSBlYXNlLWluLW91dDtcbiAgfVxuXG4gIC5iZy1jbG91ZHMge1xuICAgIHdpZHRoOiAxMzYzcHg7XG4gICAgaGVpZ2h0OiA4NTZweDtcbiAgICB0b3A6IC03MHB4O1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IC0xMzBweDtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoXCIuLi9pbWFnZXMvcnItY2xvdWRzLnBuZ1wiKSBjZW50ZXIgdG9wIC8gY292ZXIgcmVwZWF0LXg7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICBhbmltYXRpb246IHdpZ2dsZSAyMHMgaW5maW5pdGUgYWx0ZXJuYXRlIGVhc2UtaW4tb3V0O1xuICB9XG5cbiAgLmJnLWZsYWcge1xuICAgIHdpZHRoOiAyMTNweDtcbiAgICBoZWlnaHQ6IDMwMHB4O1xuICAgIHRvcDogYXV0bztcbiAgICBsZWZ0OiA2MTJweDtcbiAgICBib3R0b206IDIwOXB4O1xuICAgIGJhY2tncm91bmQ6IHVybChcIi4uL2ltYWdlcy9yci1mbGFnLnBuZ1wiKSBjZW50ZXIgdG9wIC8gY292ZXIgbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIH1cblxuICAuYmctYmlyZCB7XG4gICAgd2lkdGg6IDUxMnB4O1xuICAgIGhlaWdodDogMjQ3cHg7XG4gICAgdG9wOiAyMzBweDtcbiAgICBsZWZ0OiAyODlweDtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoXCIuLi9pbWFnZXMvcnItd2hpdGUtYmlyZHMucG5nXCIpIGxlZnQgdG9wIC8gY29udGFpbiBuby1yZXBlYXQ7XG4gICAgYW5pbWF0aW9uOiB0b3AtZG93biA3cyBpbmZpbml0ZSBsaW5lYXI7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogMCAwO1xuICB9XG5cbiAgLmJnLXRyZWUge1xuICAgIHdpZHRoOiAzMjZweDtcbiAgICBoZWlnaHQ6IDgyOXB4O1xuICAgIHRvcDogNDRweDtcbiAgICBsZWZ0OiAtMzdweDtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoXCIuLi9pbWFnZXMvcnItcGFsbS10cmVlLnBuZ1wiKSBsZWZ0IHRvcCAvIGNvbnRhaW4gbm8tcmVwZWF0O1xuICAgIGFuaW1hdGlvbjogc3dpbmcgNHMgaW5maW5pdGUgYWx0ZXJuYXRlXG4gICAgICBjdWJpYy1iZXppZXIoMC40NTUsIDAuMDMsIDAuNTE1LCAwLjk1NSk7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGJvdHRvbTtcbiAgfVxuICAud3JhcHAtaW5kdXN0cnkge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgfVxuICAuaW5kdXN0cnkge1xuICAgIHdpZHRoOiA1NjJweDtcbiAgICBoZWlnaHQ6IDM4MnB4O1xuICAgIHRvcDogNzRweDtcbiAgICBsZWZ0OiA2MCU7XG4gICAgYmFja2dyb3VuZDogdXJsKFwiLi4vaW1hZ2VzL3JyLWluZHVzdHJ5LXBsYW50LnBuZ1wiKSByaWdodCB0b3AgLyBjb250YWluXG4gICAgICBuby1yZXBlYXQ7XG4gIH1cblxuICAud3JhcHAtY2FyZHMge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgfVxuICAuY2FyZHMge1xuICAgIHdpZHRoOiA3MzBweDtcbiAgICBoZWlnaHQ6IDYyM3B4O1xuICAgIHRvcDogaW5pdGlhbDtcbiAgICBib3R0b206IC0zMHB4O1xuICAgIGxlZnQ6IDUwJTtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoXCIuLi9pbWFnZXMvcnItY2FyZHMucG5nXCIpIHJpZ2h0IGJvdHRvbSAvIGNvbnRhaW4gbm8tcmVwZWF0O1xuICB9XG5cbiAgLmJnLXBlb3BsZXMge1xuICAgIHdpZHRoOiA4MDRweDtcbiAgICBoZWlnaHQ6IDQzNXB4O1xuICAgIHRvcDogaW5pdGlhbDtcbiAgICBsZWZ0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoXCIuLi9pbWFnZXMvcnItcGVvcGxlLnBuZ1wiKSBsZWZ0IGJvdHRvbSAvIGNvbnRhaW4gbm8tcmVwZWF0O1xuICB9XG5cbiAgLnBocmFzZSB7XG4gICAgd2lkdGg6IDI5N3B4O1xuICAgIGhlaWdodDogNThweDtcbiAgICB0b3A6IDI3MnB4O1xuICAgIGxlZnQ6IDMzJTtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL3JyLXBocmFzZS5wbmcpIGxlZnQgYm90dG9tIC8gY29udGFpbiBuby1yZXBlYXQ7XG4gIH1cblxuICAuc2Nyb2xsLWFycm93IHtcbiAgICBAa2V5ZnJhbWVzIGJvdW5jZSB7XG4gICAgICAwJSwgMjAlLCA1MCUsIDgwJSwgMTAwJSB7XG4gICAgICAgIHRyYW5zZm9ybSA6IHRyYW5zbGF0ZVkoMCk7XG4gICAgICB9XG4gICAgICA0MCUge1xuICAgICAgICB0cmFuc2Zvcm0gOiB0cmFuc2xhdGVZKC0yMHB4KTtcbiAgICAgIH1cbiAgICAgIDYwJSB7XG4gICAgICAgIHRyYW5zZm9ybSA6IHRyYW5zbGF0ZVkoLTEwcHgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHdpZHRoOiAxMDBweDtcbiAgICBoZWlnaHQ6IDEwMHB4O1xuICAgIHRvcDogNzAwcHg7XG4gICAgbGVmdDogNTAlO1xuICAgIGFuaW1hdGlvbjogYm91bmNlIDVzIC41cyBpbmZpbml0ZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgei1pbmRleDogMTtcblxuICAgIC5mYS1hbmdsZS1kb3VibGUtZG93biB7XG4gICAgICBmb250LXNpemU6IDgwcHg7XG4gICAgICBjb2xvcjogd2hpdGU7XG4gICAgICB0ZXh0LXNoYWRvdzogMnB4IDJweCAxMHB4IGJsYWNrO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cblxuICB9XG5cbiAgLnRpdGxlIHtcbiAgICB3aWR0aDogNTc0cHg7XG4gICAgaGVpZ2h0OiAxNDVweDtcbiAgICBsZWZ0OiAxNyU7XG4gICAgdG9wOiA5NXB4O1xuICAgIGJhY2tncm91bmQ6IHVybCguLi9pbWFnZXMvcnItdGl0bGUucG5nKSBsZWZ0IGJvdHRvbSAvIGNvbnRhaW4gbm8tcmVwZWF0O1xuICB9XG5cbiAgLyogQU5JTUFURVMgKi9cblxuICBAa2V5ZnJhbWVzIHRvcC1kb3duIHtcbiAgICAwJSB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMTVweCkgcm90YXRlWigwZGVnKTtcbiAgICB9XG4gICAgMjUlIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01cHgsIDApIHJvdGF0ZVooLTVkZWcpO1xuICAgIH1cbiAgICA1MCUge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMTVweCkgcm90YXRlWigwZGVnKTtcbiAgICB9XG4gICAgNzUlIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDVweCwgMCkgcm90YXRlWig1ZGVnKTtcbiAgICB9XG4gICAgMTAwJSB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMTVweCkgcm90YXRlWigwZGVnKTtcbiAgICB9XG4gIH1cblxuICBAa2V5ZnJhbWVzIHRvcC1kb3duMiB7XG4gICAgMCUge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTE1cHgpIHJvdGF0ZVooMGRlZyk7XG4gICAgfVxuICAgIDEwMCUge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMTVweCkgcm90YXRlWigwZGVnKTtcbiAgICB9XG4gIH1cblxuICBAa2V5ZnJhbWVzIHN3aW5nIHtcbiAgICAwJSB7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZVooNWRlZyk7XG4gICAgfVxuICAgIDEwMCUge1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGVaKC01ZGVnKTtcbiAgICB9XG4gIH1cblxuICBAa2V5ZnJhbWVzIHdpZ2dsZSB7XG4gICAgMCUge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTEwMHB4LCAwKTtcbiAgICB9XG4gICAgNTAlIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC0yMHB4KTtcbiAgICB9XG4gICAgMTAwJSB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxMDBweCwgMCk7XG4gICAgfVxuICB9XG5cbiAgQGtleWZyYW1lcyB3aWdnbGUyIHtcbiAgICAwJSB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxMDBweCwgMCk7XG4gICAgfVxuICAgIDEwMCUge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTEwMHB4LCAwKTtcbiAgICB9XG4gIH1cblxuICAvKiBNRURJQSBRVUVSSUVTICovXG4gIEBtZWRpYSAobWF4LXdpZHRoOiAxMzYwcHgpIHtcbiAgICAubWFpbi1iYW5uZXIge1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgIH1cbiAgfVxuICBAbWVkaWEgKG1heC13aWR0aDogMTE4MHB4KSB7XG4gICAgLmluZHVzdHJ5IHtcbiAgICAgIGxlZnQ6IDcwMHB4O1xuICAgIH1cbiAgICAuY2FyZHMge1xuICAgICAgbGVmdDogNjAwcHg7XG4gICAgfVxuICB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA5MzBweCkge1xuICAgIC5iZy10cmVlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA4NTBweCkge1xuICAgIC5pbmR1c3RyeSxcbiAgICAuY2FyZHMge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gICAgLnRpdGxlLFxuICAgIC5waHJhc2Uge1xuICAgICAgbGVmdDogNTAlO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgIH1cbiAgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNjAwcHgpIHtcbiAgICAudGl0bGUge1xuICAgICAgd2lkdGg6IDkwJTtcbiAgICB9XG4gICAgLnBocmFzZSB7XG4gICAgICB3aWR0aDogNTAlO1xuICAgIH1cbiAgICAuYmctcGVvcGxlcyB7XG4gICAgICB3aWR0aDogMTM1JTtcbiAgICB9XG4gICAgLnNjcm9sbC1hcnJvdyB7XG4gICAgICB0b3A6IDc0MHB4O1xuICAgICAgcmlnaHQ6IC01JTtcbiAgICAgIGxlZnQ6IGluaXRpYWw7XG5cbiAgICAgIC5mYS1hbmdsZS1kb3VibGUtZG93biB7XG4gICAgICAgIGZvbnQtc2l6ZTogNTBweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDUwMHB4KSB7XG4gICAgLm1haW4tYmFubmVyIHtcbiAgICAgIG1pbi1oZWlnaHQ6IDczMHB4O1xuICAgIH1cbiAgICAuYmctYmlyZCB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgICAuc2Nyb2xsLWFycm93IHtcbiAgICAgIHRvcDogNjUwcHg7XG4gICAgICByaWdodDogLTUlO1xuICAgICAgbGVmdDogaW5pdGlhbDtcblxuICAgICAgLmZhLWFuZ2xlLWRvdWJsZS1kb3duIHtcbiAgICAgICAgZm9udC1zaXplOiA1MHB4O1xuICAgICAgfVxuXG4gICAgfVxuICB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA0MDBweCkge1xuICAgIC5tYWluLWJhbm5lciB7XG4gICAgICBtaW4taGVpZ2h0OiA1NzBweDtcbiAgICB9XG4gICAgLnRpdGxlIHtcbiAgICAgIHRvcDogNTBweDtcbiAgICB9XG4gICAgLnBocmFzZSB7XG4gICAgICB0b3A6IDIwMHB4O1xuICAgIH1cbiAgICAuc2Nyb2xsLWFycm93IHtcbiAgICAgIHRvcDogNDkwcHg7XG4gICAgICByaWdodDogLTUlO1xuICAgICAgbGVmdDogaW5pdGlhbDtcblxuICAgICAgLmZhLWFuZ2xlLWRvdWJsZS1kb3duIHtcbiAgICAgICAgZm9udC1zaXplOiA1MHB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC5jb250YWluZXIge1xuICAgIG1heC13aWR0aDogOTYwcHg7XG4gIH1cbn1cbiIsIi5wYWdlLXRlbXBsYXRlLXNzIHtcclxuXHQuc3Mtc3VicGFnZSB7XHJcblx0XHRwYWRkaW5nIDogMTIwcHggMTVweCAxNTBweDtcclxuXHJcblx0XHRoMSwgaDIsIGgzIHtcclxuXHRcdFx0bWFyZ2luLWJvdHRvbSA6IDMwcHg7XHJcblx0XHR9XHJcblx0XHRoMSwgaDIsIGgzLCBwLCBsaSwgc3BhbiB7XHJcblx0XHRcdC8vY29sb3IgOiAkYy13aGl0ZTtcclxuXHRcdH1cclxuXHRcdGEge1xyXG5cdFx0XHRjb2xvciAgICAgICAgICAgOiAkYy1vcmFuZ2U7XHJcblx0XHRcdHRleHQtZGVjb3JhdGlvbiA6IHVuZGVybGluZTtcclxuXHRcdH1cclxuXHRcdHAsIGxpLCBzcGFuIHtcclxuXHRcdFx0QGluY2x1ZGUgZigxOXB4KTtcclxuXHRcdFx0bGluZS1oZWlnaHQgICAgOiAxLjU7XHJcblx0XHRcdGxldHRlci1zcGFjaW5nIDogLjdweDtcclxuXHRcdFx0d29yZC1zcGFjaW5nICAgOiAxcHg7XHJcblx0XHR9XHJcblx0fVxyXG59IiwiLnBhZ2UtdGVtcGxhdGUtc2JiIHtcclxuICAgIC5zYmItc3VicGFnZSB7XHJcbiAgICAgICAgcGFkZGluZzogNzBweCAxNXB4IDQ1MHB4O1xyXG4gICAgICAgIFxyXG4gICAgICAgIGgxLCBoMiwgaDMge1xyXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xyXG4gICAgICAgICAgICBmb250LWZhbWlseTogXCJUZXRyYVwiICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICAgIGgxLCBoMiwgaDMsIHAsIGxpLCBzcGFuIHtcclxuICAgICAgICAgICAgY29sb3I6ICRjLXdoaXRlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICBhIHtcclxuICAgICAgICAgICAgY29sb3I6ICRjLW9yYW5nZTtcclxuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICAgIHAsIGxpLCBzcGFuIHtcclxuICAgICAgICAgICAgQGluY2x1ZGUgZigxOXB4LCAkYy13aGl0ZSwgJGYtTm9haC1SZWd1bGFyKTtcclxuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTtcclxuICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC43cHg7XHJcbiAgICAgICAgICAgIHdvcmQtc3BhY2luZzogMXB4O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIFxyXG4gICAgLy8mLnNiYi1sYW5nLWVzIHtcclxuICAgIC50YWdsaW5lIHtcclxuICAgICAgICByaWdodDogMCU7XHJcbiAgICAgICAgdGV4dC1zaGFkb3c6IC0xcHggLTFweCAwICRjLWJsdWUsXHJcbiAgICAgICAgMXB4IC0xcHggMCAkYy1ibHVlLFxyXG4gICAgICAgIC0xcHggMXB4IDAgJGMtYmx1ZSxcclxuICAgICAgICAxcHggMXB4IDAgJGMtYmx1ZTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgLy99XHJcbn1cclxuIiwiLnJyLXN1YnBhZ2Uge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZy10b3A6IDYwcHg7XG4gICAgcGFkZGluZy1ib3R0b206IDM1MHB4O1xuICAgIG1hcmdpbi10b3A6IDEwMXB4O1xuICAgIGJhY2tncm91bmQ6IHVybCgnLi4vaW1hZ2VzL3JyLWJsdWUtZ3JhZGllbnQucG5nJykgbGVmdCBib3R0b207XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICBoMSwgaDIsIGgzLCBoNHtcbiAgICAgICAgQGluY2x1ZGUgZigkYy1ncmF5LXRleHQsICRmLXRvZmluby1yZWd1bGFyKTtcbiAgICB9XG4gICAgaDF7XG4gICAgICAgIEBpbmNsdWRlIGYoMzBweCk7XG4gICAgfVxuICAgIGgye1xuICAgICAgICBAaW5jbHVkZSBmKDIwcHgpO1xuICAgIH1cbiAgICBoM3tcbiAgICAgICAgQGluY2x1ZGUgZigxNnB4KTtcbiAgICB9XG4gICAgaDR7XG4gICAgICAgIEBpbmNsdWRlIGYoMTNweCk7XG4gICAgfVxuICAgIHB7XG4gICAgICAgIEBpbmNsdWRlIGYoJzE1cHgvMjBweCcsICRjLWdyYXktdGV4dCwgJGYtTm9haC1Cb2xkKTtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDEuNXB4O1xuICAgICAgICB3b3JkLXNwYWNpbmc6IDNweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICAgICAgdGV4dC1pbmRlbnQ6IDEwcHg7XG4gICAgfVxufVxuXG4gICAgLyogTUVESUEgUVVFUklFUyAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDEwMjNweCkge1xuICAgIC5yci1zdWJwYWdlIHtcbiAgICAgICAgbWFyZ2luLXRvcDogNjRweDtcbiAgICB9XG59IiwiLy8gSGVscGVyc1xyXG5AaW1wb3J0IFwiaGVscGVycy9mdW5jdGlvbnNcIjtcclxuQGltcG9ydCBcImhlbHBlcnMvbWl4aW5zXCI7XHJcbkBpbXBvcnQgXCJoZWxwZXJzL2luY2x1ZGUtbWVkaWFcIjtcclxuLy9cclxuLy9cclxuLy8gQmFzZVxyXG5AaW1wb3J0IFwiYmFzZS92YXJpYWJsZXNcIjtcclxuQGltcG9ydCBcImJhc2UvdHlwb2dyYXBoeVwiO1xyXG5AaW1wb3J0IFwiYmFzZS9nbG9iYWxcIjtcclxuQGltcG9ydCBcImJhc2UvY29tbW9uXCI7XHJcbi8vXHJcbi8vXHJcbi8vIFZlbmRvcnNcclxuLy9AaW1wb3J0IFwifkBmb3J0YXdlc29tZS9mb250YXdlc29tZS1mcmVlL3Njc3MvZm9udGF3ZXNvbWVcIjtcclxuQGltcG9ydCBcIn5hbmltYXRlLmNzc1wiO1xyXG4vL1xyXG4vL1xyXG4vLyBDb21wb25lbnRzXHJcbkBpbXBvcnQgXCJjb21wb25lbnRzL2Jvb3RzdHJhcC1jdXN0b21cIjtcclxuQGltcG9ydCBcImNvbXBvbmVudHMvYmFjay10by10b3BcIjtcclxuQGltcG9ydCBcImNvbXBvbmVudHMvY29tbWVudHNcIjtcclxuQGltcG9ydCBcImNvbXBvbmVudHMvc3Bpbm5lclwiO1xyXG4vL1xyXG4vL1xyXG4vLyBMYXlvdXRcclxuQGltcG9ydCBcImxheW91dC9oZWFkZXJcIjtcclxuQGltcG9ydCBcImxheW91dC9mb290ZXJcIjtcclxuQGltcG9ydCBcImxheW91dC9wcmltYXJ5LW5hdlwiO1xyXG5AaW1wb3J0IFwibGF5b3V0L2hlYWRlci1zYmJcIjtcclxuQGltcG9ydCBcImxheW91dC9oZWFkZXItc3NcIjtcclxuQGltcG9ydCBcImxheW91dC9mb290ZXItc3NcIjtcclxuQGltcG9ydCBcImxheW91dC9wcmltYXJ5LW5hdi1zc1wiO1xyXG5AaW1wb3J0IFwibGF5b3V0L2hlYWRlci1yclwiO1xyXG5AaW1wb3J0IFwibGF5b3V0L2Zvb3Rlci1yclwiO1xyXG5AaW1wb3J0IFwibGF5b3V0L3ByaW1hcnktbmF2LXJyXCI7XHJcbi8vXHJcbi8vXHJcbi8vIFBhZ2VzXHJcbkBpbXBvcnQgXCJwYWdlcy9ob21lLXNzXCI7XHJcbkBpbXBvcnQgXCJwYWdlcy9ob21lLXNiYlwiO1xyXG5AaW1wb3J0IFwicGFnZXMvaG9tZS1yclwiO1xyXG5AaW1wb3J0IFwicGFnZXMvc3VicGFnZXMtc3NcIjsgXHJcbkBpbXBvcnQgXCJwYWdlcy9zdWJwYWdlcy1zYmJcIjtcclxuQGltcG9ydCBcInBhZ2VzL3N1YnBhZ2VzLXJyXCI7XHJcblxyXG4ubWF4LXdpZHRoLXdpZGVyIHtcclxuICAgIG1heC13aWR0aDogMTI0MHB4O1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XHJcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XHJcbn1cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==*/