/*- Global Variables -*/
@import url("https://fonts.googleapis.com/css2?family=Roboto+Slab:wght@100..900&display=swap");
@media (max-width: 768px) {
  .container {
    max-width: 720px; } }

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  -ms-box-sizing: border-box; }

main {
  display: block; }

pre {
  font-family: monospace, monospace;
  font-size: 1rem; }

b,
strong {
  font-weight: bolder; }

::-moz-selection {
  background: #0088ff;
  color: #ffffff;
  text-shadow: none;
  border: 0;
  outline: none; }

::selection {
  background: #0088ff;
  color: #ffffff;
  text-shadow: none;
  border: 0;
  outline: none; }

code,
kbd,
samp {
  font-family: monospace, monospace;
  font-size: 1rem; }

small {
  font-size: 80%; }

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

sub {
  bottom: -0.25em; }

sup {
  top: -0.5em; }

img {
  max-width: 100%;
  height: auto;
  border: 0; }

button,
input,
optgroup,
select,
textarea {
  font-family: inherit;
  font-size: 100%;
  line-height: 1.15;
  margin: 0; }
  button:focus,
  input:focus,
  optgroup:focus,
  select:focus,
  textarea:focus {
    outline: none !important; }

button,
input {
  overflow: visible; }

button,
select {
  text-transform: none; }

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

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

button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
  outline: 1px dotted #0088ff; }

button:active, button:focus {
  outline: none;
  border: none; }

fieldset {
  padding: 0.35rem 0.75rem 0.625rem; }

legend {
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  color: inherit;
  display: table;
  max-width: 100%;
  padding: 0;
  white-space: normal; }

progress {
  vertical-align: baseline; }

textarea {
  overflow: auto; }

[type="checkbox"],
[type="radio"] {
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  /* 1 */
  padding: 0;
  /* 2 */ }

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

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

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

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

details {
  display: block; }

summary {
  display: list-item; }

template {
  display: none; }

[hidden] {
  display: none; }

iframe {
  max-width: 100% !important; }

h1,
h2,
h3,
h4,
h5,
h6 {
  margin: 0;
  padding: 0;
  font-weight: 500; }

ul {
  margin: 0;
  padding: 0; }
  ul li {
    list-style: none; }

figure {
  width: 100% !important; }

[class*="icons-"] {
  display: inline-block; }

/*animations*/
/******************
* Bounce in right *
*******************/
.animated {
  -webkit-animation-duration: 1s;
  animation-duration: 1s;
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both; }

.slow {
  -webkit-animation-duration: 1.5s;
  animation-duration: 1.5s;
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both; }

.slower {
  -webkit-animation-duration: 2s;
  animation-duration: 2s;
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both; }

.slowest {
  -webkit-animation-duration: 3s;
  animation-duration: 3s;
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both; }

/* Added by Andy Meetan */
.delay-250 {
  -webkit-animation-delay: 0.25s;
  animation-delay: 0.25s; }

.delay-500 {
  -webkit-animation-delay: 0.5s;
  animation-delay: 0.5s; }

.delay-750 {
  -webkit-animation-delay: 0.75s;
  animation-delay: 0.75s; }

.delay-1000 {
  -webkit-animation-delay: 1.0s;
  animation-delay: 1.0s; }

.delay-1250 {
  -webkit-animation-delay: 1.25s;
  animation-delay: 1.25s; }

.delay-1500 {
  -webkit-animation-delay: 1.5s;
  animation-delay: 1.5s; }

.delay-1750 {
  -webkit-animation-delay: 1.75s;
  animation-delay: 1.75s; }

.delay-2000 {
  -webkit-animation-delay: 2.0s;
  animation-delay: 2.0s; }

.delay-2500 {
  -webkit-animation-delay: 2.5s;
  animation-delay: 2.5s; }

.delay-2000 {
  -webkit-animation-delay: 2.0s;
  animation-delay: 2.0s; }

.delay-2500 {
  -webkit-animation-delay: 2.5s;
  animation-delay: 2.5s; }

.delay-3000 {
  -webkit-animation-delay: 3.0s;
  animation-delay: 3.0s; }

.delay-3500 {
  -webkit-animation-delay: 3.5s;
  animation-delay: 3.5s; }

.bounceInRight, .bounceInLeft, .bounceInUp, .bounceInDown {
  opacity: 0;
  -webkit-transform: translateX(400px);
  -ms-transform: translateX(400px);
  transform: translateX(400px); }

.fadeInRight, .fadeInLeft, .fadeInUp, .fadeInDown {
  opacity: 0;
  -webkit-transform: translateX(400px);
  -ms-transform: translateX(400px);
  transform: translateX(400px); }

.flipInX, .flipInY, .rotateIn, .rotateInUpLeft, .rotateInUpRight, .rotateInDownLeft, .rotateDownUpRight, .rollIn {
  opacity: 0; }

.lightSpeedInRight, .lightSpeedInLeft {
  opacity: 0;
  -webkit-transform: translateX(400px);
  -ms-transform: translateX(400px);
  transform: translateX(400px); }

/***********
* bounceIn *
************/
@-webkit-keyframes bounceIn {
  0% {
    opacity: 0;
    -webkit-transform: scale(0.3); }
  50% {
    opacity: 1;
    -webkit-transform: scale(1.05); }
  70% {
    -webkit-transform: scale(0.9); }
  100% {
    -webkit-transform: scale(1); } }

@keyframes bounceIn {
  0% {
    opacity: 0;
    -webkit-transform: scale(0.3);
    transform: scale(0.3); }
  50% {
    opacity: 1;
    -webkit-transform: scale(1.05);
    transform: scale(1.05); }
  70% {
    -webkit-transform: scale(0.9);
    transform: scale(0.9); }
  100% {
    -webkit-transform: scale(1);
    transform: scale(1); } }

.bounceIn.go {
  -webkit-animation-name: bounceIn;
  animation-name: bounceIn; }

/****************
* bounceInRight *
****************/
@-webkit-keyframes bounceInRight {
  0% {
    opacity: 0;
    -webkit-transform: translateX(400px); }
  60% {
    -webkit-transform: translateX(-30px); }
  80% {
    -webkit-transform: translateX(10px); }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0); } }

@keyframes bounceInRight {
  0% {
    opacity: 0;
    -webkit-transform: translateX(400px);
    transform: translateX(400px); }
  60% {
    -webkit-transform: translateX(-30px);
    transform: translateX(-30px); }
  80% {
    -webkit-transform: translateX(10px);
    transform: translateX(10px); }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0);
    transform: translateX(0); } }

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

/******************
* Bounce in left *
*******************/
@-webkit-keyframes bounceInLeft {
  0% {
    opacity: 0;
    -webkit-transform: translateX(-400px); }
  60% {
    -webkit-transform: translateX(30px); }
  80% {
    -webkit-transform: translateX(-10px); }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0); } }

@keyframes bounceInLeft {
  0% {
    opacity: 0;
    -webkit-transform: translateX(-400px);
    transform: translateX(-400px); }
  60% {
    -webkit-transform: translateX(30px);
    transform: translateX(30px); }
  80% {
    -webkit-transform: translateX(-10px);
    transform: translateX(-10px); }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0);
    transform: translateX(0); } }

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

/******************
* Bounce in up *
*******************/
@-webkit-keyframes bounceInUp {
  0% {
    opacity: 0;
    -webkit-transform: translateY(400px); }
  60% {
    -webkit-transform: translateY(-30px); }
  80% {
    -webkit-transform: translateY(10px); }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0); } }

@keyframes bounceInUp {
  0% {
    opacity: 0;
    -webkit-transform: translateY(400px);
    transform: translateY(400px); }
  60% {
    -webkit-transform: translateY(-30px);
    transform: translateY(-30px); }
  80% {
    -webkit-transform: translateY(10px);
    transform: translateY(10px); }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0);
    transform: translateY(0); } }

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

/******************
* Bounce in down *
*******************/
@-webkit-keyframes bounceInDown {
  0% {
    opacity: 0;
    -webkit-transform: translateY(-400px); }
  60% {
    -webkit-transform: translateY(30px); }
  80% {
    -webkit-transform: translateY(-10px); }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0); } }

@keyframes bounceInDown {
  0% {
    opacity: 0;
    -webkit-transform: translateY(-400px);
    transform: translateY(-400px); }
  60% {
    -webkit-transform: translateY(30px);
    transform: translateY(30px); }
  80% {
    -webkit-transform: translateY(-10px);
    transform: translateY(-10px); }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0);
    transform: translateY(0); } }

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

/**********
* Fade In *
**********/
@-webkit-keyframes fadeIn {
  0% {
    opacity: 0; }
  100% {
    opacity: 1;
    display: block; } }

@keyframes fadeIn {
  0% {
    opacity: 0; }
  100% {
    opacity: 1;
    display: block; } }

.fadeIn {
  opacity: 0; }

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

/**********
* Grow in *
***********/
@-webkit-keyframes growIn {
  0% {
    -webkit-transform: scale(0.2);
    opacity: 0; }
  50% {
    -webkit-transform: scale(1.2); }
  100% {
    -webkit-transform: scale(1);
    opacity: 1; } }

@keyframes growIn {
  0% {
    -webkit-transform: scale(0.2);
    transform: scale(0.2);
    opacity: 0; }
  50% {
    -webkit-transform: scale(1.2);
    transform: scale(1.2); }
  100% {
    -webkit-transform: scale(1);
    transform: scale(1);
    opacity: 1; } }

.growIn {
  -webkit-transform: scale(0.2);
  -ms-transform: scale(0.2);
  transform: scale(0.2);
  opacity: 0; }

.growIn.go {
  -webkit-animation-name: growIn;
  animation-name: growIn; }

/********
* Shake *
********/
@-webkit-keyframes shake {
  0%, 100% {
    -webkit-transform: translateX(0); }
  10%, 30%, 50%, 70%, 90% {
    -webkit-transform: translateX(-10px); }
  20%, 40%, 60%, 80% {
    -webkit-transform: translateX(10px); } }

@keyframes shake {
  0%, 100% {
    -webkit-transform: translateX(0);
    transform: translateX(0); }
  10%, 30%, 50%, 70%, 90% {
    -webkit-transform: translateX(-10px);
    transform: translateX(-10px); }
  20%, 40%, 60%, 80% {
    -webkit-transform: translateX(10px);
    transform: translateX(10px); } }

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

/********
* ShakeUp *
********/
@-webkit-keyframes shakeUp {
  0%, 100% {
    -webkit-transform: translateY(0); }
  10%, 30%, 50%, 70%, 90% {
    -webkit-transform: translateY(-10px); }
  20%, 40%, 60%, 80% {
    -webkit-transform: translateY(10px); } }

@keyframes shakeUp {
  0%, 100% {
    -webkit-transform: translateY(0);
    transform: translateY(0); }
  10%, 30%, 50%, 70%, 90% {
    -webkit-transform: translateY(-10px);
    transform: translateY(-10px); }
  20%, 40%, 60%, 80% {
    -webkit-transform: translateY(10px);
    transform: translateY(10px); } }

.shakeUp.go {
  -webkit-animation-name: shakeUp;
  animation-name: shakeUp; }

/*************
* FadeInLeft *
*************/
@-webkit-keyframes fadeInLeft {
  0% {
    opacity: 0;
    -webkit-transform: translateX(-400px); }
  50% {
    opacity: 0.3; }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0); } }

@keyframes fadeInLeft {
  0% {
    opacity: 0;
    -webkit-transform: translateX(-400px);
    transform: translateX(-400px); }
  50% {
    opacity: 0.3; }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0);
    transform: translateX(0); } }

.fadeInLeft {
  opacity: 0;
  -webkit-transform: translateX(-400px);
  -ms-transform: translateX(-400px);
  transform: translateX(-400px); }

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

/*************
* FadeInRight *
*************/
@-webkit-keyframes fadeInRight {
  0% {
    opacity: 0;
    -webkit-transform: translateX(400px); }
  50% {
    opacity: 0.3; }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0); } }

@keyframes fadeInRight {
  0% {
    opacity: 0;
    -webkit-transform: translateX(400px);
    transform: translateX(400px); }
  50% {
    opacity: 0.3; }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0);
    transform: translateX(0); } }

.fadeInRight {
  opacity: 0;
  -webkit-transform: translateX(400px);
  -ms-transform: translateX(400px);
  transform: translateX(400px); }

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

/*************
* FadeInUp *
*************/
@-webkit-keyframes fadeInUp {
  0% {
    opacity: 0;
    -webkit-transform: translateY(400px); }
  50% {
    opacity: 0.3; }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0); } }

@keyframes fadeInUp {
  0% {
    opacity: 0;
    -webkit-transform: translateY(400px);
    transform: translateY(400px); }
  50% {
    opacity: 0.3; }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0);
    transform: translateY(0); } }

.fadeInUp {
  opacity: 0;
  -webkit-transform: translateY(400px);
  -ms-transform: translateY(400px);
  transform: translateY(400px); }

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

/*************
* FadeInDown *
*************/
@-webkit-keyframes fadeInDown {
  0% {
    opacity: 0;
    -webkit-transform: translateY(-400px); }
  50% {
    opacity: 0.3; }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0); } }

@keyframes fadeInDown {
  0% {
    opacity: 0;
    -webkit-transform: translateY(-400px);
    transform: translateY(-400px); }
  50% {
    opacity: 0.3; }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0);
    transform: translateY(0); } }

.fadeInDown {
  opacity: 0;
  -webkit-transform: translateY(-400px);
  -ms-transform: translateY(-400px);
  transform: translateY(-400px); }

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

/*****************
* rotateIn *
*****************/
@-webkit-keyframes rotateIn {
  0% {
    -webkit-transform-origin: center center;
    -webkit-transform: rotate(-200deg);
    opacity: 0; }
  100% {
    -webkit-transform-origin: center center;
    -webkit-transform: rotate(0);
    opacity: 1; } }

@keyframes rotateIn {
  0% {
    -webkit-transform-origin: center center;
    transform-origin: center center;
    -webkit-transform: rotate(-200deg);
    transform: rotate(-200deg);
    opacity: 0; }
  100% {
    -webkit-transform-origin: center center;
    transform-origin: center center;
    -webkit-transform: rotate(0);
    transform: rotate(0);
    opacity: 1; } }

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

/*****************
* rotateInUpLeft *
*****************/
@-webkit-keyframes rotateInUpLeft {
  0% {
    -webkit-transform-origin: left bottom;
    -webkit-transform: rotate(90deg);
    opacity: 0; }
  100% {
    -webkit-transform-origin: left bottom;
    -webkit-transform: rotate(0);
    opacity: 1; } }

@keyframes rotateInUpLeft {
  0% {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: rotate(90deg);
    transform: rotate(90deg);
    opacity: 0; }
  100% {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: rotate(0);
    transform: rotate(0);
    opacity: 1; } }

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

/*******************
* rotateInDownLeft *
*******************/
@-webkit-keyframes rotateInDownLeft {
  0% {
    -webkit-transform-origin: left bottom;
    -webkit-transform: rotate(-90deg);
    opacity: 0; }
  100% {
    -webkit-transform-origin: left bottom;
    -webkit-transform: rotate(0);
    opacity: 1; } }

@keyframes rotateInDownLeft {
  0% {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: rotate(-90deg);
    transform: rotate(-90deg);
    opacity: 0; }
  100% {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: rotate(0);
    transform: rotate(0);
    opacity: 1; } }

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

/******************
* rotateInUpRight *
*******************/
@-webkit-keyframes rotateInUpRight {
  0% {
    -webkit-transform-origin: right bottom;
    -webkit-transform: rotate(-90deg);
    opacity: 0; }
  100% {
    -webkit-transform-origin: right bottom;
    -webkit-transform: rotate(0);
    opacity: 1; } }

@keyframes rotateInUpRight {
  0% {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: rotate(-90deg);
    transform: rotate(-90deg);
    opacity: 0; }
  100% {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: rotate(0);
    transform: rotate(0);
    opacity: 1; } }

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

/********************
* rotateInDownRight *
********************/
@-webkit-keyframes rotateInDownRight {
  0% {
    -webkit-transform-origin: right bottom;
    -webkit-transform: rotate(90deg);
    opacity: 0; }
  100% {
    -webkit-transform-origin: right bottom;
    -webkit-transform: rotate(0);
    opacity: 1; } }

@keyframes rotateInDownRight {
  0% {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: rotate(90deg);
    transform: rotate(90deg);
    opacity: 0; }
  100% {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: rotate(0);
    transform: rotate(0);
    opacity: 1; } }

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

/*********
* rollIn *
**********/
@-webkit-keyframes rollIn {
  0% {
    opacity: 0;
    -webkit-transform: translateX(-100%) rotate(-120deg); }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0px) rotate(0deg); } }

@keyframes rollIn {
  0% {
    opacity: 0;
    -webkit-transform: translateX(-100%) rotate(-120deg);
    transform: translateX(-100%) rotate(-120deg); }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0px) rotate(0deg);
    transform: translateX(0px) rotate(0deg); } }

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

/*********
* wiggle *
**********/
@-webkit-keyframes wiggle {
  0% {
    -webkit-transform: skewX(9deg); }
  10% {
    -webkit-transform: skewX(-8deg); }
  20% {
    -webkit-transform: skewX(7deg); }
  30% {
    -webkit-transform: skewX(-6deg); }
  40% {
    -webkit-transform: skewX(5deg); }
  50% {
    -webkit-transform: skewX(-4deg); }
  60% {
    -webkit-transform: skewX(3deg); }
  70% {
    -webkit-transform: skewX(-2deg); }
  80% {
    -webkit-transform: skewX(1deg); }
  90% {
    -webkit-transform: skewX(0deg); }
  100% {
    -webkit-transform: skewX(0deg); } }

@keyframes wiggle {
  0% {
    -webkit-transform: skewX(9deg);
    transform: skewX(9deg); }
  10% {
    -webkit-transform: skewX(-8deg);
    transform: skewX(-8deg); }
  20% {
    -webkit-transform: skewX(7deg);
    transform: skewX(7deg); }
  30% {
    -webkit-transform: skewX(-6deg);
    transform: skewX(-6deg); }
  40% {
    -webkit-transform: skewX(5deg);
    transform: skewX(5deg); }
  50% {
    -webkit-transform: skewX(-4deg);
    transform: skewX(-4deg); }
  60% {
    -webkit-transform: skewX(3deg);
    transform: skewX(3deg); }
  70% {
    -webkit-transform: skewX(-2deg);
    transform: skewX(-2deg); }
  80% {
    -webkit-transform: skewX(1deg);
    transform: skewX(1deg); }
  90% {
    -webkit-transform: skewX(0deg);
    transform: skewX(0deg); }
  100% {
    -webkit-transform: skewX(0deg);
    transform: skewX(0deg); } }

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

/********
* swing *
*********/
@-webkit-keyframes swing {
  20%, 40%, 60%, 80%, 100% {
    -webkit-transform-origin: top center; }
  20% {
    -webkit-transform: rotate(15deg); }
  40% {
    -webkit-transform: rotate(-10deg); }
  60% {
    -webkit-transform: rotate(5deg); }
  80% {
    -webkit-transform: rotate(-5deg); }
  100% {
    -webkit-transform: rotate(0deg); } }

@keyframes swing {
  20% {
    -webkit-transform: rotate(15deg);
    transform: rotate(15deg); }
  40% {
    -webkit-transform: rotate(-10deg);
    transform: rotate(-10deg); }
  60% {
    -webkit-transform: rotate(5deg);
    transform: rotate(5deg); }
  80% {
    -webkit-transform: rotate(-5deg);
    transform: rotate(-5deg); }
  100% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg); } }

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

/*******
* tada *
********/
@-webkit-keyframes tada {
  0% {
    -webkit-transform: scale(1); }
  10%, 20% {
    -webkit-transform: scale(0.9) rotate(-3deg); }
  30%, 50%, 70%, 90% {
    -webkit-transform: scale(1.1) rotate(3deg); }
  40%, 60%, 80% {
    -webkit-transform: scale(1.1) rotate(-3deg); }
  100% {
    -webkit-transform: scale(1) rotate(0); } }

@keyframes tada {
  0% {
    -webkit-transform: scale(1);
    transform: scale(1); }
  10%, 20% {
    -webkit-transform: scale(0.9) rotate(-3deg);
    transform: scale(0.9) rotate(-3deg); }
  30%, 50%, 70%, 90% {
    -webkit-transform: scale(1.1) rotate(3deg);
    transform: scale(1.1) rotate(3deg); }
  40%, 60%, 80% {
    -webkit-transform: scale(1.1) rotate(-3deg);
    transform: scale(1.1) rotate(-3deg); }
  100% {
    -webkit-transform: scale(1) rotate(0);
    transform: scale(1) rotate(0); } }

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

/*********
* wobble *
**********/
@-webkit-keyframes wobble {
  0% {
    -webkit-transform: translateX(0%); }
  15% {
    -webkit-transform: translateX(-25%) rotate(-5deg); }
  30% {
    -webkit-transform: translateX(20%) rotate(3deg); }
  45% {
    -webkit-transform: translateX(-15%) rotate(-3deg); }
  60% {
    -webkit-transform: translateX(10%) rotate(2deg); }
  75% {
    -webkit-transform: translateX(-5%) rotate(-1deg); }
  100% {
    -webkit-transform: translateX(0%); } }

@keyframes wobble {
  0% {
    -webkit-transform: translateX(0%);
    transform: translateX(0%); }
  15% {
    -webkit-transform: translateX(-25%) rotate(-5deg);
    transform: translateX(-25%) rotate(-5deg); }
  30% {
    -webkit-transform: translateX(20%) rotate(3deg);
    transform: translateX(20%) rotate(3deg); }
  45% {
    -webkit-transform: translateX(-15%) rotate(-3deg);
    transform: translateX(-15%) rotate(-3deg); }
  60% {
    -webkit-transform: translateX(10%) rotate(2deg);
    transform: translateX(10%) rotate(2deg); }
  75% {
    -webkit-transform: translateX(-5%) rotate(-1deg);
    transform: translateX(-5%) rotate(-1deg); }
  100% {
    -webkit-transform: translateX(0%);
    transform: translateX(0%); } }

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

/********
* pulse *
*********/
@-webkit-keyframes pulse {
  0% {
    -webkit-transform: scale(1); }
  50% {
    -webkit-transform: scale(1.1); }
  100% {
    -webkit-transform: scale(1); } }

@keyframes pulse {
  0% {
    -webkit-transform: scale(1);
    transform: scale(1); }
  50% {
    -webkit-transform: scale(1.1);
    transform: scale(1.1); }
  100% {
    -webkit-transform: scale(1);
    transform: scale(1); } }

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

/***************
* lightSpeedInRight *
****************/
@-webkit-keyframes lightSpeedInRight {
  0% {
    -webkit-transform: translateX(100%) skewX(-30deg);
    opacity: 0; }
  60% {
    -webkit-transform: translateX(-20%) skewX(30deg);
    opacity: 1; }
  80% {
    -webkit-transform: translateX(0%) skewX(-15deg);
    opacity: 1; }
  100% {
    -webkit-transform: translateX(0%) skewX(0deg);
    opacity: 1; } }

@keyframes lightSpeedInRight {
  0% {
    -webkit-transform: translateX(100%) skewX(-30deg);
    transform: translateX(100%) skewX(-30deg);
    opacity: 0; }
  60% {
    -webkit-transform: translateX(-20%) skewX(30deg);
    transform: translateX(-20%) skewX(30deg);
    opacity: 1; }
  80% {
    -webkit-transform: translateX(0%) skewX(-15deg);
    transform: translateX(0%) skewX(-15deg);
    opacity: 1; }
  100% {
    -webkit-transform: translateX(0%) skewX(0deg);
    transform: translateX(0%) skewX(0deg);
    opacity: 1; } }

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

/***************
* lightSpeedInLeft *
****************/
@-webkit-keyframes lightSpeedInLeft {
  0% {
    -webkit-transform: translateX(-100%) skewX(30deg);
    opacity: 0; }
  60% {
    -webkit-transform: translateX(20%) skewX(-30deg);
    opacity: 1; }
  80% {
    -webkit-transform: translateX(0%) skewX(15deg);
    opacity: 1; }
  100% {
    -webkit-transform: translateX(0%) skewX(0deg);
    opacity: 1; } }

@keyframes lightSpeedInLeft {
  0% {
    -webkit-transform: translateX(-100%) skewX(30deg);
    transform: translateX(-100%) skewX(30deg);
    opacity: 0; }
  60% {
    -webkit-transform: translateX(20%) skewX(-30deg);
    transform: translateX(20%) skewX(-30deg);
    opacity: 1; }
  80% {
    -webkit-transform: translateX(0%) skewX(15deg);
    transform: translateX(0%) skewX(15deg);
    opacity: 1; }
  100% {
    -webkit-transform: translateX(0%) skewX(0deg);
    transform: translateX(0%) skewX(0deg);
    opacity: 1; } }

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

/*******
* Flip *
*******/
@-webkit-keyframes flip {
  0% {
    -webkit-transform: perspective(400px) rotateY(0);
    -webkit-animation-timing-function: ease-out; }
  40% {
    -webkit-transform: perspective(400px) translateZ(150px) rotateY(170deg);
    -webkit-animation-timing-function: ease-out; }
  50% {
    -webkit-transform: perspective(400px) translateZ(150px) rotateY(190deg) scale(1);
    -webkit-animation-timing-function: ease-in; }
  80% {
    -webkit-transform: perspective(400px) rotateY(360deg) scale(0.95);
    -webkit-animation-timing-function: ease-in; }
  100% {
    -webkit-transform: perspective(400px) scale(1);
    -webkit-animation-timing-function: ease-in; } }

@keyframes flip {
  0% {
    -webkit-transform: perspective(400px) rotateY(0);
    transform: perspective(400px) rotateY(0);
    -webkit-animation-timing-function: ease-out;
    animation-timing-function: ease-out; }
  40% {
    -webkit-transform: perspective(400px) translateZ(150px) rotateY(170deg);
    transform: perspective(400px) translateZ(150px) rotateY(170deg);
    -webkit-animation-timing-function: ease-out;
    animation-timing-function: ease-out; }
  50% {
    -webkit-transform: perspective(400px) translateZ(150px) rotateY(190deg) scale(1);
    transform: perspective(400px) translateZ(150px) rotateY(190deg) scale(1);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in; }
  80% {
    -webkit-transform: perspective(400px) rotateY(360deg) scale(0.95);
    transform: perspective(400px) rotateY(360deg) scale(0.95);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in; }
  100% {
    -webkit-transform: perspective(400px) scale(1);
    transform: perspective(400px) scale(1);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in; } }

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

/**********
* flipInX *
**********/
@-webkit-keyframes flipInX {
  0% {
    -webkit-transform: perspective(400px) rotateX(90deg);
    opacity: 0; }
  40% {
    -webkit-transform: perspective(400px) rotateX(-10deg); }
  70% {
    -webkit-transform: perspective(400px) rotateX(10deg); }
  100% {
    -webkit-transform: perspective(400px) rotateX(0deg);
    opacity: 1; } }

@keyframes flipInX {
  0% {
    -webkit-transform: perspective(400px) rotateX(90deg);
    transform: perspective(400px) rotateX(90deg);
    opacity: 0; }
  40% {
    -webkit-transform: perspective(400px) rotateX(-10deg);
    transform: perspective(400px) rotateX(-10deg); }
  70% {
    -webkit-transform: perspective(400px) rotateX(10deg);
    transform: perspective(400px) rotateX(10deg); }
  100% {
    -webkit-transform: perspective(400px) rotateX(0deg);
    transform: perspective(400px) rotateX(0deg);
    opacity: 1; } }

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

/**********
* flipInY *
**********/
@-webkit-keyframes flipInY {
  0% {
    -webkit-transform: perspective(400px) rotateY(90deg);
    opacity: 0; }
  40% {
    -webkit-transform: perspective(400px) rotateY(-10deg); }
  70% {
    -webkit-transform: perspective(400px) rotateY(10deg); }
  100% {
    -webkit-transform: perspective(400px) rotateY(0deg);
    opacity: 1; } }

@keyframes flipInY {
  0% {
    -webkit-transform: perspective(400px) rotateY(90deg);
    transform: perspective(400px) rotateY(90deg);
    opacity: 0; }
  40% {
    -webkit-transform: perspective(400px) rotateY(-10deg);
    transform: perspective(400px) rotateY(-10deg); }
  70% {
    -webkit-transform: perspective(400px) rotateY(10deg);
    transform: perspective(400px) rotateY(10deg); }
  100% {
    -webkit-transform: perspective(400px) rotateY(0deg);
    transform: perspective(400px) rotateY(0deg);
    opacity: 1; } }

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

/*****************
* Out animations *
*****************/
/************
* bounceOut *
*************/
@-webkit-keyframes bounceOut {
  0% {
    -webkit-transform: scale(1); }
  25% {
    -webkit-transform: scale(0.95); }
  50% {
    opacity: 1;
    -webkit-transform: scale(1.1); }
  100% {
    opacity: 0;
    -webkit-transform: scale(0.3); } }

@keyframes bounceOut {
  0% {
    -webkit-transform: scale(1);
    transform: scale(1); }
  25% {
    -webkit-transform: scale(0.95);
    transform: scale(0.95); }
  50% {
    opacity: 1;
    -webkit-transform: scale(1.1);
    transform: scale(1.1); }
  100% {
    opacity: 0;
    -webkit-transform: scale(0.3);
    transform: scale(0.3); } }

.bounceOut.goAway {
  -webkit-animation-name: bounceOut;
  animation-name: bounceOut; }

/************
* bounceOutUp *
*************/
@-webkit-keyframes bounceOutUp {
  0% {
    -webkit-transform: translateY(0); }
  20% {
    opacity: 1;
    -webkit-transform: translateY(20px); }
  100% {
    opacity: 0;
    -webkit-transform: translateY(-2000px); } }

@keyframes bounceOutUp {
  0% {
    -webkit-transform: translateY(0);
    transform: translateY(0); }
  20% {
    opacity: 1;
    -webkit-transform: translateY(20px);
    transform: translateY(20px); }
  100% {
    opacity: 0;
    -webkit-transform: translateY(-2000px);
    transform: translateY(-2000px); } }

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

/************
* bounceOutDown *
*************/
@-webkit-keyframes bounceOutDown {
  0% {
    -webkit-transform: translateY(0); }
  20% {
    opacity: 1;
    -webkit-transform: translateY(-20px); }
  100% {
    opacity: 0;
    -webkit-transform: translateY(2000px); } }

@keyframes bounceOutDown {
  0% {
    -webkit-transform: translateY(0);
    transform: translateY(0); }
  20% {
    opacity: 1;
    -webkit-transform: translateY(-20px);
    transform: translateY(-20px); }
  100% {
    opacity: 0;
    -webkit-transform: translateY(2000px);
    transform: translateY(2000px); } }

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

/************
* bounceOutLeft *
*************/
@-webkit-keyframes bounceOutLeft {
  0% {
    -webkit-transform: translateX(0); }
  20% {
    opacity: 1;
    -webkit-transform: translateX(20px); }
  100% {
    opacity: 0;
    -webkit-transform: translateX(-2000px); } }

@keyframes bounceOutLeft {
  0% {
    -webkit-transform: translateX(0);
    transform: translateX(0); }
  20% {
    opacity: 1;
    -webkit-transform: translateX(20px);
    transform: translateX(20px); }
  100% {
    opacity: 0;
    -webkit-transform: translateX(-2000px);
    transform: translateX(-2000px); } }

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

/************
* bounceOutRight *
*************/
@-webkit-keyframes bounceOutRight {
  0% {
    -webkit-transform: translateX(0); }
  20% {
    opacity: 1;
    -webkit-transform: translateX(-20px); }
  100% {
    opacity: 0;
    -webkit-transform: translateX(2000px); } }

@keyframes bounceOutRight {
  0% {
    -webkit-transform: translateX(0);
    transform: translateX(0); }
  20% {
    opacity: 1;
    -webkit-transform: translateX(-20px);
    transform: translateX(-20px); }
  100% {
    opacity: 0;
    -webkit-transform: translateX(2000px);
    transform: translateX(2000px); } }

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

/************
* fadeOut *
*************/
@-webkit-keyframes fadeOut {
  0% {
    opacity: 1; }
  100% {
    opacity: 0; } }

@keyframes fadeOut {
  0% {
    opacity: 1; }
  100% {
    opacity: 0; } }

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

/************
* fadeOutUp *
*************/
@-webkit-keyframes fadeOutUp {
  0% {
    opacity: 1;
    -webkit-transform: translateY(0); }
  100% {
    opacity: 0;
    -webkit-transform: translateY(-2000px); } }

@keyframes fadeOutUp {
  0% {
    opacity: 1;
    -webkit-transform: translateY(0);
    transform: translateY(0); }
  100% {
    opacity: 0;
    -webkit-transform: translateY(-2000px);
    transform: translateY(-2000px); } }

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

/************
* fadeOutDown *
*************/
@-webkit-keyframes fadeOutDown {
  0% {
    opacity: 1;
    -webkit-transform: translateY(0); }
  100% {
    opacity: 0;
    -webkit-transform: translateY(2000px); } }

@keyframes fadeOutDown {
  0% {
    opacity: 1;
    -webkit-transform: translateY(0);
    transform: translateY(0); }
  100% {
    opacity: 0;
    -webkit-transform: translateY(2000px);
    transform: translateY(2000px); } }

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

/************
* fadeOutLeft *
*************/
@-webkit-keyframes fadeOutLeft {
  0% {
    opacity: 1;
    -webkit-transform: translateX(0); }
  100% {
    opacity: 0;
    -webkit-transform: translateX(-2000px); } }

@keyframes fadeOutLeft {
  0% {
    opacity: 1;
    -webkit-transform: translateX(0);
    transform: translateX(0); }
  100% {
    opacity: 0;
    -webkit-transform: translateX(-2000px);
    transform: translateX(-2000px); } }

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

/************
* fadeOutRight *
*************/
@-webkit-keyframes fadeOutRight {
  0% {
    opacity: 1;
    -webkit-transform: translateX(0); }
  100% {
    opacity: 0;
    -webkit-transform: translateX(2000px); } }

@keyframes fadeOutRight {
  0% {
    opacity: 1;
    -webkit-transform: translateX(0);
    transform: translateX(0); }
  100% {
    opacity: 0;
    -webkit-transform: translateX(2000px);
    transform: translateX(2000px); } }

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

/************
* flipOutX *
*************/
@-webkit-keyframes flipOutX {
  0% {
    -webkit-transform: perspective(400px) rotateX(0deg);
    opacity: 1; }
  100% {
    -webkit-transform: perspective(400px) rotateX(90deg);
    opacity: 0; } }

@keyframes flipOutX {
  0% {
    -webkit-transform: perspective(400px) rotateX(0deg);
    transform: perspective(400px) rotateX(0deg);
    opacity: 1; }
  100% {
    -webkit-transform: perspective(400px) rotateX(90deg);
    transform: perspective(400px) rotateX(90deg);
    opacity: 0; } }

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

/************
* flipOutY *
*************/
@-webkit-keyframes flipOutY {
  0% {
    -webkit-transform: perspective(400px) rotateY(0deg);
    opacity: 1; }
  100% {
    -webkit-transform: perspective(400px) rotateY(90deg);
    opacity: 0; } }

@keyframes flipOutY {
  0% {
    -webkit-transform: perspective(400px) rotateY(0deg);
    transform: perspective(400px) rotateY(0deg);
    opacity: 1; }
  100% {
    -webkit-transform: perspective(400px) rotateY(90deg);
    transform: perspective(400px) rotateY(90deg);
    opacity: 0; } }

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

/************
* lightSpeedOutRight *
*************/
@-webkit-keyframes lightSpeedOutRight {
  0% {
    -webkit-transform: translateX(0%) skewX(0deg);
    opacity: 1; }
  100% {
    -webkit-transform: translateX(100%) skewX(-30deg);
    opacity: 0; } }

@keyframes lightSpeedOutRight {
  0% {
    -webkit-transform: translateX(0%) skewX(0deg);
    transform: translateX(0%) skewX(0deg);
    opacity: 1; }
  100% {
    -webkit-transform: translateX(100%) skewX(-30deg);
    transform: translateX(100%) skewX(-30deg);
    opacity: 0; } }

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

/************
* lightSpeedOutLeft *
*************/
@-webkit-keyframes lightSpeedOutLeft {
  0% {
    -webkit-transform: translateX(0%) skewX(0deg);
    opacity: 1; }
  100% {
    -webkit-transform: translateX(-100%) skewX(30deg);
    opacity: 0; } }

@keyframes lightSpeedOutLeft {
  0% {
    -webkit-transform: translateX(0%) skewX(0deg);
    transform: translateX(0%) skewX(0deg);
    opacity: 1; }
  100% {
    -webkit-transform: translateX(-100%) skewX(30deg);
    transform: translateX(-100%) skewX(30deg);
    opacity: 0; } }

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

/************
* rotateOut *
*************/
@-webkit-keyframes rotateOut {
  0% {
    -webkit-transform-origin: center center;
    -webkit-transform: rotate(0);
    opacity: 1; }
  100% {
    -webkit-transform-origin: center center;
    -webkit-transform: rotate(200deg);
    opacity: 0; } }

@keyframes rotateOut {
  0% {
    -webkit-transform-origin: center center;
    transform-origin: center center;
    -webkit-transform: rotate(0);
    transform: rotate(0);
    opacity: 1; }
  100% {
    -webkit-transform-origin: center center;
    transform-origin: center center;
    -webkit-transform: rotate(200deg);
    transform: rotate(200deg);
    opacity: 0; } }

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

/************
* rotateOutUpLeft *
*************/
@-webkit-keyframes rotateOutUpLeft {
  0% {
    -webkit-transform-origin: left bottom;
    -webkit-transform: rotate(0);
    opacity: 1; }
  100% {
    -webkit-transform-origin: left bottom;
    -webkit-transform: rotate(-90deg);
    opacity: 0; } }

@keyframes rotateOutUpLeft {
  0% {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: rotate(0);
    transform: rotate(0);
    opacity: 1; }
  100% {
    -transform-origin: left bottom;
    -transform: rotate(-90deg);
    opacity: 0; } }

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

/************
* rotateOutDownLeft *
*************/
@-webkit-keyframes rotateOutDownLeft {
  0% {
    -webkit-transform-origin: left bottom;
    -webkit-transform: rotate(0);
    opacity: 1; }
  100% {
    -webkit-transform-origin: left bottom;
    -webkit-transform: rotate(90deg);
    opacity: 0; } }

@keyframes rotateOutDownLeft {
  0% {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: rotate(0);
    transform: rotate(0);
    opacity: 1; }
  100% {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: rotate(90deg);
    transform: rotate(90deg);
    opacity: 0; } }

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

/************
* rotateOutUpRight *
*************/
@-webkit-keyframes rotateOutUpRight {
  0% {
    -webkit-transform-origin: right bottom;
    -webkit-transform: rotate(0);
    opacity: 1; }
  100% {
    -webkit-transform-origin: right bottom;
    -webkit-transform: rotate(90deg);
    opacity: 0; } }

@keyframes rotateOutUpRight {
  0% {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: rotate(0);
    transform: rotate(0);
    opacity: 1; }
  100% {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: rotate(90deg);
    transform: rotate(90deg);
    opacity: 0; } }

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

/************
* rollOut *
*************/
@-webkit-keyframes rollOut {
  0% {
    opacity: 1;
    -webkit-transform: translateX(0px) rotate(0deg); }
  100% {
    opacity: 0;
    -webkit-transform: translateX(100%) rotate(120deg); } }

@keyframes rollOut {
  0% {
    opacity: 1;
    -webkit-transform: translateX(0px) rotate(0deg);
    transform: translateX(0px) rotate(0deg); }
  100% {
    opacity: 0;
    -webkit-transform: translateX(100%) rotate(120deg);
    transform: translateX(100%) rotate(120deg); } }

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

/*****************
* Short Animations
*******************/
/*********************
* fadeInUpShort
*********************/
@-webkit-keyframes fadeInUpShort {
  0% {
    opacity: 0;
    -webkit-transform: translateY(20px); }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0); } }

@keyframes fadeInUpShort {
  0% {
    opacity: 0;
    -webkit-transform: translateY(20px);
    transform: translateY(20px); }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0);
    transform: translateY(0); } }

.fadeInUpShort {
  opacity: 0;
  -webkit-transform: translateY(20px);
  -ms-transform: translateY(20px);
  transform: translateY(20px); }

.fadeInUpShort.go {
  -webkit-animation-name: fadeInUpShort;
  animation-name: fadeInUpShort; }

/*********************
* fadeInDownShort
*********************/
@-webkit-keyframes fadeInDownShort {
  0% {
    opacity: 0;
    -webkit-transform: translateY(-20px); }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0); } }

@keyframes fadeInDownShort {
  0% {
    opacity: 0;
    -webkit-transform: translateY(-20px);
    transform: translateY(-20px); }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0);
    transform: translateY(0); } }

.fadeInDownShort {
  opacity: 0;
  -webkit-transform: translateY(-20px);
  -ms-transform: translateY(-20px);
  transform: translateY(-20px); }

.fadeInDownShort.go {
  -webkit-animation-name: fadeInDownShort;
  animation-name: fadeInDownShort; }

/*********************
* fadeInRightShort 
*********************/
@-webkit-keyframes fadeInRightShort {
  0% {
    opacity: 0;
    -webkit-transform: translateX(20px); }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0); } }

@keyframes fadeInRightShort {
  0% {
    opacity: 0;
    -webkit-transform: translateX(20px);
    transform: translateX(20px); }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0);
    transform: translateX(0); } }

.fadeInRightShort {
  opacity: 0;
  -webkit-transform: translateX(20px);
  -ms-transform: translateX(20px);
  transform: translateX(20px); }

.fadeInRightShort.go {
  -webkit-animation-name: fadeInRightShort;
  animation-name: fadeInRightShort; }

/*********************
* fadeInLeftShort 
*********************/
@-webkit-keyframes fadeInLeftShort {
  0% {
    opacity: 0;
    -webkit-transform: translateX(-20px); }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0); } }

@keyframes fadeInLeftShort {
  0% {
    opacity: 0;
    -webkit-transform: translateX(-20px);
    transform: translateX(-20px); }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0);
    transform: translateX(0); } }

.fadeInLeftShort {
  opacity: 0;
  -webkit-transform: translateX(-20px);
  -ms-transform: translateX(-20px);
  transform: translateX(-20px); }

.fadeInLeftShort.go {
  -webkit-animation-name: fadeInLeftShort;
  animation-name: fadeInLeftShort; }

.fancybox-enabled {
  overflow: hidden; }

.fancybox-enabled body {
  overflow: visible;
  -ms-touch-action: none;
  touch-action: none; }

.fancybox-container {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 99993;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden; }

/* Make sure that the first one is on the top */
.fancybox-container ~ .fancybox-container {
  z-index: 99992; }

.fancybox-bg {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: #0f0f11;
  opacity: 0;
  -webkit-transition-timing-function: cubic-bezier(0.55, 0.06, 0.68, 0.19);
  -o-transition-timing-function: cubic-bezier(0.55, 0.06, 0.68, 0.19);
  transition-timing-function: cubic-bezier(0.55, 0.06, 0.68, 0.19);
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden; }

.fancybox-container--ready .fancybox-bg {
  opacity: 0.87;
  -webkit-transition-timing-function: cubic-bezier(0.22, 0.61, 0.36, 1);
  -o-transition-timing-function: cubic-bezier(0.22, 0.61, 0.36, 1);
  transition-timing-function: cubic-bezier(0.22, 0.61, 0.36, 1); }

.fancybox-controls {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  text-align: center;
  opacity: 0;
  z-index: 99994;
  -webkit-transition: opacity .2s;
  -o-transition: opacity .2s;
  transition: opacity .2s;
  pointer-events: none;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  direction: ltr; }

.fancybox-show-controls .fancybox-controls {
  opacity: 1; }

.fancybox-infobar {
  display: none; }

.fancybox-show-infobar .fancybox-infobar {
  display: inline-block;
  pointer-events: all; }

.fancybox-infobar__body {
  display: inline-block;
  width: 70px;
  line-height: 44px;
  font-size: 13px;
  font-family: "Helvetica Neue",Helvetica,Arial,sans-serif;
  text-align: center;
  color: #ddd;
  background-color: rgba(30, 30, 30, 0.7);
  pointer-events: none;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -webkit-touch-callout: none;
  -webkit-tap-highlight-color: transparent;
  -webkit-font-smoothing: subpixel-antialiased; }

.fancybox-buttons {
  position: absolute;
  top: 0;
  right: 0;
  display: none;
  pointer-events: all; }

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

.fancybox-slider-wrap {
  overflow: hidden;
  direction: ltr; }

.fancybox-slider-wrap,
.fancybox-slider {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  padding: 0;
  margin: 0;
  z-index: 99993;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  -webkit-tap-highlight-color: transparent; }

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

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

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

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

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

.fancybox-content {
  display: inline-block;
  position: relative;
  margin: 44px auto;
  padding: 0;
  border: 0;
  width: 80%;
  height: calc(100% - 88px);
  vertical-align: middle;
  line-height: normal;
  text-align: left;
  white-space: normal;
  outline: none;
  font-size: 16px;
  font-family: Arial, sans-serif;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  -webkit-tap-highlight-color: transparent;
  -webkit-overflow-scrolling: touch; }

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

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

.fancybox-placeholder {
  position: absolute;
  top: 0;
  left: 0;
  margin: 0;
  padding: 0;
  border: 0;
  z-index: 99995;
  background: transparent;
  cursor: default;
  overflow: visible;
  -webkit-transform-origin: top left;
  -ms-transform-origin: top left;
  transform-origin: top left;
  -webkit-background-size: 100% 100%;
  background-size: 100% 100%;
  background-repeat: no-repeat;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden; }

.fancybox-image,
.fancybox-spaceball {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  max-width: none;
  max-height: none;
  background: transparent;
  -webkit-background-size: 100% 100%;
  background-size: 100% 100%; }

.fancybox-controls--canzoomOut .fancybox-placeholder {
  cursor: -webkit-zoom-out;
  cursor: zoom-out; }

.fancybox-controls--canzoomIn .fancybox-placeholder {
  cursor: -webkit-zoom-in;
  cursor: zoom-in; }

.fancybox-controls--canGrab .fancybox-placeholder {
  cursor: -webkit-grab;
  cursor: grab; }

.fancybox-controls--isGrabbing .fancybox-placeholder {
  cursor: -webkit-grabbing;
  cursor: grabbing; }

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

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

.fancybox-error {
  position: absolute;
  margin: 0;
  padding: 40px;
  top: 50%;
  left: 50%;
  width: 380px;
  max-width: 100%;
  -webkit-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
  background: #fff;
  cursor: default; }

.fancybox-error p {
  margin: 0;
  padding: 0;
  color: #444;
  font: 16px/20px "Helvetica Neue",Helvetica,Arial,sans-serif; }

.fancybox-close-small {
  position: absolute;
  top: 4px;
  right: 4px;
  padding: 0;
  margin: 0;
  width: 30px;
  height: 30px;
  font: 21px/1 Arial,"Helvetica Neue",Helvetica,sans-serif;
  color: #888;
  font-weight: 300;
  text-align: center;
  -webkit-border-radius: 50%;
  border-radius: 50%;
  border-width: 0;
  cursor: pointer;
  background: #fff;
  -webkit-transition: background .2s;
  -o-transition: background .2s;
  transition: background .2s;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  z-index: 2; }

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

.fancybox-slide--video .fancybox-close-small {
  top: -36px;
  right: -36px;
  background: transparent; }

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

/* Caption */
.fancybox-caption-wrap {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 60px 30px 0 30px;
  z-index: 99998;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  background: -webkit-gradient(linear, left top, left bottom, from(transparent), color-stop(20%, rgba(0, 0, 0, 0.1)), color-stop(40%, rgba(0, 0, 0, 0.2)), color-stop(80%, rgba(0, 0, 0, 0.6)), to(rgba(0, 0, 0, 0.8)));
  background: -webkit-linear-gradient(top, transparent 0%, rgba(0, 0, 0, 0.1) 20%, rgba(0, 0, 0, 0.2) 40%, rgba(0, 0, 0, 0.6) 80%, rgba(0, 0, 0, 0.8) 100%);
  background: -o-linear-gradient(top, transparent 0%, rgba(0, 0, 0, 0.1) 20%, rgba(0, 0, 0, 0.2) 40%, rgba(0, 0, 0, 0.6) 80%, rgba(0, 0, 0, 0.8) 100%);
  background: linear-gradient(to bottom, transparent 0%, rgba(0, 0, 0, 0.1) 20%, rgba(0, 0, 0, 0.2) 40%, rgba(0, 0, 0, 0.6) 80%, rgba(0, 0, 0, 0.8) 100%);
  opacity: 0;
  -webkit-transition: opacity .2s;
  -o-transition: opacity .2s;
  transition: opacity .2s;
  pointer-events: none; }

.fancybox-show-caption .fancybox-caption-wrap {
  opacity: 1; }

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

.fancybox-caption a,
.fancybox-caption button {
  pointer-events: all; }

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

/* Buttons */
.fancybox-button {
  display: inline-block;
  position: relative;
  width: 44px;
  height: 44px;
  line-height: 44px;
  margin: 0;
  padding: 0;
  border: 0;
  -webkit-border-radius: 0;
  border-radius: 0;
  cursor: pointer;
  background: transparent;
  color: #fff;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  vertical-align: top;
  outline: none; }

.fancybox-button--disabled {
  cursor: default;
  pointer-events: none; }

.fancybox-infobar__body, .fancybox-button {
  background: rgba(30, 30, 30, 0.6); }

.fancybox-button:hover {
  background: rgba(0, 0, 0, 0.8); }

.fancybox-button::before,
.fancybox-button::after {
  content: '';
  pointer-events: none;
  position: absolute;
  border-color: #fff;
  background-color: currentColor;
  color: currentColor;
  opacity: 0.9;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  display: inline-block; }

.fancybox-button--disabled::before,
.fancybox-button--disabled::after {
  opacity: 0.5; }

.fancybox-button--left::after {
  left: 20px;
  top: 18px;
  width: 6px;
  height: 6px;
  background: transparent;
  border-top: solid 2px currentColor;
  border-right: solid 2px currentColor;
  -webkit-transform: rotate(-135deg);
  -ms-transform: rotate(-135deg);
  transform: rotate(-135deg); }

.fancybox-button--right::after {
  right: 20px;
  top: 18px;
  width: 6px;
  height: 6px;
  background: transparent;
  border-top: solid 2px currentColor;
  border-right: solid 2px currentColor;
  -webkit-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  transform: rotate(45deg); }

.fancybox-button--left {
  -webkit-border-bottom-left-radius: 5px;
  border-bottom-left-radius: 5px; }

.fancybox-button--right {
  -webkit-border-bottom-right-radius: 5px;
  border-bottom-right-radius: 5px; }

.fancybox-button--close {
  float: right; }

.fancybox-button--close::before, .fancybox-button--close::after {
  content: '';
  display: inline-block;
  position: absolute;
  height: 2px;
  width: 16px;
  top: calc(50% - 1px);
  left: calc(50% - 8px); }

.fancybox-button--close::before {
  -webkit-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  transform: rotate(45deg); }

.fancybox-button--close::after {
  -webkit-transform: rotate(-45deg);
  -ms-transform: rotate(-45deg);
  transform: rotate(-45deg); }

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

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

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

/* Styling for Small-Screen Devices */
@media all and (max-width: 800px) {
  .fancybox-controls {
    text-align: left; }
  .fancybox-button--left,
  .fancybox-button--right,
  .fancybox-buttons button:not(.fancybox-button--close) {
    display: none !important; }
  .fancybox-caption {
    padding: 20px 0;
    margin: 0; } }

/* Fullscreen  */
.fancybox-button--fullscreen::before {
  width: 15px;
  height: 11px;
  left: 15px;
  top: 16px;
  border: 2px solid;
  background: none; }

/* Slideshow button */
.fancybox-button--play::before {
  top: 16px;
  left: 18px;
  width: 0;
  height: 0;
  border-top: 6px inset transparent;
  border-bottom: 6px inset transparent;
  border-left: 10px solid;
  -webkit-border-radius: 1px;
  border-radius: 1px;
  background: transparent; }

.fancybox-button--pause::before {
  top: 16px;
  left: 18px;
  width: 7px;
  height: 11px;
  border-style: solid;
  border-width: 0 2px 0 2px;
  background: transparent; }

/* Thumbs */
.fancybox-button--thumbs span {
  font-size: 23px; }

.fancybox-button--thumbs::before {
  top: 20px;
  left: 21px;
  width: 3px;
  height: 3px;
  -webkit-box-shadow: 0 -4px 0, -4px -4px 0, 4px -4px 0, 0 0 0 32px inset, -4px 0 0, 4px 0 0, 0 4px 0, -4px 4px 0, 4px 4px 0;
  box-shadow: 0 -4px 0, -4px -4px 0, 4px -4px 0, 0 0 0 32px inset, -4px 0 0, 4px 0 0, 0 4px 0, -4px 4px 0, 4px 4px 0; }

.fancybox-container--thumbs .fancybox-controls,
.fancybox-container--thumbs .fancybox-slider-wrap,
.fancybox-container--thumbs .fancybox-caption-wrap {
  right: 220px; }

.fancybox-thumbs {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: auto;
  width: 220px;
  margin: 0;
  padding: 5px 5px 0 0;
  background: #fff;
  z-index: 99993;
  word-break: normal;
  -webkit-overflow-scrolling: touch;
  -webkit-tap-highlight-color: transparent;
  -webkit-box-sizing: border-box;
  box-sizing: border-box; }

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

.fancybox-thumbs > ul > li {
  float: left;
  overflow: hidden;
  max-width: 50%;
  padding: 0;
  margin: 0;
  width: 105px;
  height: 75px;
  position: relative;
  cursor: pointer;
  outline: none;
  border: 5px solid #fff;
  border-top-width: 0;
  border-right-width: 0;
  -webkit-tap-highlight-color: transparent;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  -webkit-box-sizing: border-box;
  box-sizing: border-box; }

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

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

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

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

/* Styling for Small-Screen Devices */
@media all and (max-width: 800px) {
  .fancybox-thumbs {
    display: none !important; }
  .fancybox-container--thumbs .fancybox-controls,
  .fancybox-container--thumbs .fancybox-slider-wrap,
  .fancybox-container--thumbs .fancybox-caption-wrap {
    right: 0; } }

/*animations*/
/******************
* Bounce in right *
*******************/
.animated {
  -webkit-animation-duration: 1s;
  animation-duration: 1s;
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both; }

.slow {
  -webkit-animation-duration: 1.5s;
  animation-duration: 1.5s;
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both; }

.slower {
  -webkit-animation-duration: 2s;
  animation-duration: 2s;
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both; }

.slowest {
  -webkit-animation-duration: 3s;
  animation-duration: 3s;
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both; }

/* Added by Andy Meetan */
.delay-250 {
  -webkit-animation-delay: 0.25s;
  animation-delay: 0.25s; }

.delay-500 {
  -webkit-animation-delay: 0.5s;
  animation-delay: 0.5s; }

.delay-750 {
  -webkit-animation-delay: 0.75s;
  animation-delay: 0.75s; }

.delay-1000 {
  -webkit-animation-delay: 1.0s;
  animation-delay: 1.0s; }

.delay-1250 {
  -webkit-animation-delay: 1.25s;
  animation-delay: 1.25s; }

.delay-1500 {
  -webkit-animation-delay: 1.5s;
  animation-delay: 1.5s; }

.delay-1750 {
  -webkit-animation-delay: 1.75s;
  animation-delay: 1.75s; }

.delay-2000 {
  -webkit-animation-delay: 2.0s;
  animation-delay: 2.0s; }

.delay-2500 {
  -webkit-animation-delay: 2.5s;
  animation-delay: 2.5s; }

.delay-2000 {
  -webkit-animation-delay: 2.0s;
  animation-delay: 2.0s; }

.delay-2500 {
  -webkit-animation-delay: 2.5s;
  animation-delay: 2.5s; }

.delay-3000 {
  -webkit-animation-delay: 3.0s;
  animation-delay: 3.0s; }

.delay-3500 {
  -webkit-animation-delay: 3.5s;
  animation-delay: 3.5s; }

.bounceInRight,
.bounceInLeft,
.bounceInUp,
.bounceInDown {
  opacity: 0;
  -webkit-transform: translateX(400px);
  -ms-transform: translateX(400px);
  transform: translateX(400px); }

.fadeInRight,
.fadeInLeft,
.fadeInUp,
.fadeInDown {
  opacity: 0;
  -webkit-transform: translateX(400px);
  -ms-transform: translateX(400px);
  transform: translateX(400px); }

.flipInX,
.flipInY,
.rotateIn,
.rotateInUpLeft,
.rotateInUpRight,
.rotateInDownLeft,
.rotateDownUpRight,
.rollIn {
  opacity: 0; }

.lightSpeedInRight,
.lightSpeedInLeft {
  opacity: 0;
  -webkit-transform: translateX(400px);
  -ms-transform: translateX(400px);
  transform: translateX(400px); }

/***********
* bounceIn *
************/
@-webkit-keyframes bounceIn {
  0% {
    opacity: 0;
    -webkit-transform: scale(0.3); }
  50% {
    opacity: 1;
    -webkit-transform: scale(1.05); }
  70% {
    -webkit-transform: scale(0.9); }
  100% {
    -webkit-transform: scale(1); } }

@keyframes bounceIn {
  0% {
    opacity: 0;
    -webkit-transform: scale(0.3);
    transform: scale(0.3); }
  50% {
    opacity: 1;
    -webkit-transform: scale(1.05);
    transform: scale(1.05); }
  70% {
    -webkit-transform: scale(0.9);
    transform: scale(0.9); }
  100% {
    -webkit-transform: scale(1);
    transform: scale(1); } }

.bounceIn.go {
  -webkit-animation-name: bounceIn;
  animation-name: bounceIn; }

/****************
* bounceInRight *
****************/
@-webkit-keyframes bounceInRight {
  0% {
    opacity: 0;
    -webkit-transform: translateX(400px); }
  60% {
    -webkit-transform: translateX(-30px); }
  80% {
    -webkit-transform: translateX(10px); }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0); } }

@keyframes bounceInRight {
  0% {
    opacity: 0;
    -webkit-transform: translateX(400px);
    transform: translateX(400px); }
  60% {
    -webkit-transform: translateX(-30px);
    transform: translateX(-30px); }
  80% {
    -webkit-transform: translateX(10px);
    transform: translateX(10px); }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0);
    transform: translateX(0); } }

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

/******************
* Bounce in left *
*******************/
@-webkit-keyframes bounceInLeft {
  0% {
    opacity: 0;
    -webkit-transform: translateX(-400px); }
  60% {
    -webkit-transform: translateX(30px); }
  80% {
    -webkit-transform: translateX(-10px); }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0); } }

@keyframes bounceInLeft {
  0% {
    opacity: 0;
    -webkit-transform: translateX(-400px);
    transform: translateX(-400px); }
  60% {
    -webkit-transform: translateX(30px);
    transform: translateX(30px); }
  80% {
    -webkit-transform: translateX(-10px);
    transform: translateX(-10px); }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0);
    transform: translateX(0); } }

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

/******************
* Bounce in up *
*******************/
@-webkit-keyframes bounceInUp {
  0% {
    opacity: 0;
    -webkit-transform: translateY(400px); }
  60% {
    -webkit-transform: translateY(-30px); }
  80% {
    -webkit-transform: translateY(10px); }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0); } }

@keyframes bounceInUp {
  0% {
    opacity: 0;
    -webkit-transform: translateY(400px);
    transform: translateY(400px); }
  60% {
    -webkit-transform: translateY(-30px);
    transform: translateY(-30px); }
  80% {
    -webkit-transform: translateY(10px);
    transform: translateY(10px); }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0);
    transform: translateY(0); } }

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

/******************
* Bounce in down *
*******************/
@-webkit-keyframes bounceInDown {
  0% {
    opacity: 0;
    -webkit-transform: translateY(-400px); }
  60% {
    -webkit-transform: translateY(30px); }
  80% {
    -webkit-transform: translateY(-10px); }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0); } }

@keyframes bounceInDown {
  0% {
    opacity: 0;
    -webkit-transform: translateY(-400px);
    transform: translateY(-400px); }
  60% {
    -webkit-transform: translateY(30px);
    transform: translateY(30px); }
  80% {
    -webkit-transform: translateY(-10px);
    transform: translateY(-10px); }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0);
    transform: translateY(0); } }

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

/**********
* Fade In *
**********/
@-webkit-keyframes fadeIn {
  0% {
    opacity: 0; }
  100% {
    opacity: 1;
    display: block; } }

@keyframes fadeIn {
  0% {
    opacity: 0; }
  100% {
    opacity: 1;
    display: block; } }

.fadeIn {
  opacity: 0; }

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

/**********
* Grow in *
***********/
@-webkit-keyframes growIn {
  0% {
    -webkit-transform: scale(0.2);
    opacity: 0; }
  50% {
    -webkit-transform: scale(1.2); }
  100% {
    -webkit-transform: scale(1);
    opacity: 1; } }

@keyframes growIn {
  0% {
    -webkit-transform: scale(0.2);
    transform: scale(0.2);
    opacity: 0; }
  50% {
    -webkit-transform: scale(1.2);
    transform: scale(1.2); }
  100% {
    -webkit-transform: scale(1);
    transform: scale(1);
    opacity: 1; } }

.growIn {
  -webkit-transform: scale(0.2);
  -ms-transform: scale(0.2);
  transform: scale(0.2);
  opacity: 0; }

.growIn.go {
  -webkit-animation-name: growIn;
  animation-name: growIn; }

/********
* Shake *
********/
@-webkit-keyframes shake {
  0%,
  100% {
    -webkit-transform: translateX(0); }
  10%,
  30%,
  50%,
  70%,
  90% {
    -webkit-transform: translateX(-10px); }
  20%,
  40%,
  60%,
  80% {
    -webkit-transform: translateX(10px); } }

@keyframes shake {
  0%,
  100% {
    -webkit-transform: translateX(0);
    transform: translateX(0); }
  10%,
  30%,
  50%,
  70%,
  90% {
    -webkit-transform: translateX(-10px);
    transform: translateX(-10px); }
  20%,
  40%,
  60%,
  80% {
    -webkit-transform: translateX(10px);
    transform: translateX(10px); } }

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

/********
* ShakeUp *
********/
@-webkit-keyframes shakeUp {
  0%,
  100% {
    -webkit-transform: translateY(0); }
  10%,
  30%,
  50%,
  70%,
  90% {
    -webkit-transform: translateY(-10px); }
  20%,
  40%,
  60%,
  80% {
    -webkit-transform: translateY(10px); } }

@keyframes shakeUp {
  0%,
  100% {
    -webkit-transform: translateY(0);
    transform: translateY(0); }
  10%,
  30%,
  50%,
  70%,
  90% {
    -webkit-transform: translateY(-10px);
    transform: translateY(-10px); }
  20%,
  40%,
  60%,
  80% {
    -webkit-transform: translateY(10px);
    transform: translateY(10px); } }

.shakeUp.go {
  -webkit-animation-name: shakeUp;
  animation-name: shakeUp; }

/*************
* FadeInLeft *
*************/
@-webkit-keyframes fadeInLeft {
  0% {
    opacity: 0;
    -webkit-transform: translateX(-400px); }
  50% {
    opacity: 0.3; }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0); } }

@keyframes fadeInLeft {
  0% {
    opacity: 0;
    -webkit-transform: translateX(-400px);
    transform: translateX(-400px); }
  50% {
    opacity: 0.3; }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0);
    transform: translateX(0); } }

.fadeInLeft {
  opacity: 0;
  -webkit-transform: translateX(-400px);
  -ms-transform: translateX(-400px);
  transform: translateX(-400px); }

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

/*************
* FadeInRight *
*************/
@-webkit-keyframes fadeInRight {
  0% {
    opacity: 0;
    -webkit-transform: translateX(400px); }
  50% {
    opacity: 0.3; }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0); } }

@keyframes fadeInRight {
  0% {
    opacity: 0;
    -webkit-transform: translateX(400px);
    transform: translateX(400px); }
  50% {
    opacity: 0.3; }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0);
    transform: translateX(0); } }

.fadeInRight {
  opacity: 0;
  -webkit-transform: translateX(400px);
  -ms-transform: translateX(400px);
  transform: translateX(400px); }

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

/*************
* FadeInUp *
*************/
@-webkit-keyframes fadeInUp {
  0% {
    opacity: 0;
    -webkit-transform: translateY(400px); }
  50% {
    opacity: 0.3; }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0); } }

@keyframes fadeInUp {
  0% {
    opacity: 0;
    -webkit-transform: translateY(400px);
    transform: translateY(400px); }
  50% {
    opacity: 0.3; }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0);
    transform: translateY(0); } }

.fadeInUp {
  opacity: 0;
  -webkit-transform: translateY(400px);
  -ms-transform: translateY(400px);
  transform: translateY(400px); }

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

/*************
* FadeInDown *
*************/
@-webkit-keyframes fadeInDown {
  0% {
    opacity: 0;
    -webkit-transform: translateY(-400px); }
  50% {
    opacity: 0.3; }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0); } }

@keyframes fadeInDown {
  0% {
    opacity: 0;
    -webkit-transform: translateY(-400px);
    transform: translateY(-400px); }
  50% {
    opacity: 0.3; }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0);
    transform: translateY(0); } }

.fadeInDown {
  opacity: 0;
  -webkit-transform: translateY(-400px);
  -ms-transform: translateY(-400px);
  transform: translateY(-400px); }

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

/*****************
* rotateIn *
*****************/
@-webkit-keyframes rotateIn {
  0% {
    -webkit-transform-origin: center center;
    -webkit-transform: rotate(-200deg);
    opacity: 0; }
  100% {
    -webkit-transform-origin: center center;
    -webkit-transform: rotate(0);
    opacity: 1; } }

@keyframes rotateIn {
  0% {
    -webkit-transform-origin: center center;
    transform-origin: center center;
    -webkit-transform: rotate(-200deg);
    transform: rotate(-200deg);
    opacity: 0; }
  100% {
    -webkit-transform-origin: center center;
    transform-origin: center center;
    -webkit-transform: rotate(0);
    transform: rotate(0);
    opacity: 1; } }

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

/*****************
* rotateInUpLeft *
*****************/
@-webkit-keyframes rotateInUpLeft {
  0% {
    -webkit-transform-origin: left bottom;
    -webkit-transform: rotate(90deg);
    opacity: 0; }
  100% {
    -webkit-transform-origin: left bottom;
    -webkit-transform: rotate(0);
    opacity: 1; } }

@keyframes rotateInUpLeft {
  0% {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: rotate(90deg);
    transform: rotate(90deg);
    opacity: 0; }
  100% {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: rotate(0);
    transform: rotate(0);
    opacity: 1; } }

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

/*******************
* rotateInDownLeft *
*******************/
@-webkit-keyframes rotateInDownLeft {
  0% {
    -webkit-transform-origin: left bottom;
    -webkit-transform: rotate(-90deg);
    opacity: 0; }
  100% {
    -webkit-transform-origin: left bottom;
    -webkit-transform: rotate(0);
    opacity: 1; } }

@keyframes rotateInDownLeft {
  0% {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: rotate(-90deg);
    transform: rotate(-90deg);
    opacity: 0; }
  100% {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: rotate(0);
    transform: rotate(0);
    opacity: 1; } }

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

/******************
* rotateInUpRight *
*******************/
@-webkit-keyframes rotateInUpRight {
  0% {
    -webkit-transform-origin: right bottom;
    -webkit-transform: rotate(-90deg);
    opacity: 0; }
  100% {
    -webkit-transform-origin: right bottom;
    -webkit-transform: rotate(0);
    opacity: 1; } }

@keyframes rotateInUpRight {
  0% {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: rotate(-90deg);
    transform: rotate(-90deg);
    opacity: 0; }
  100% {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: rotate(0);
    transform: rotate(0);
    opacity: 1; } }

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

/********************
* rotateInDownRight *
********************/
@-webkit-keyframes rotateInDownRight {
  0% {
    -webkit-transform-origin: right bottom;
    -webkit-transform: rotate(90deg);
    opacity: 0; }
  100% {
    -webkit-transform-origin: right bottom;
    -webkit-transform: rotate(0);
    opacity: 1; } }

@keyframes rotateInDownRight {
  0% {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: rotate(90deg);
    transform: rotate(90deg);
    opacity: 0; }
  100% {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: rotate(0);
    transform: rotate(0);
    opacity: 1; } }

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

/*********
* rollIn *
**********/
@-webkit-keyframes rollIn {
  0% {
    opacity: 0;
    -webkit-transform: translateX(-100%) rotate(-120deg); }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0px) rotate(0deg); } }

@keyframes rollIn {
  0% {
    opacity: 0;
    -webkit-transform: translateX(-100%) rotate(-120deg);
    transform: translateX(-100%) rotate(-120deg); }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0px) rotate(0deg);
    transform: translateX(0px) rotate(0deg); } }

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

/*********
* wiggle *
**********/
@-webkit-keyframes wiggle {
  0% {
    -webkit-transform: skewX(9deg); }
  10% {
    -webkit-transform: skewX(-8deg); }
  20% {
    -webkit-transform: skewX(7deg); }
  30% {
    -webkit-transform: skewX(-6deg); }
  40% {
    -webkit-transform: skewX(5deg); }
  50% {
    -webkit-transform: skewX(-4deg); }
  60% {
    -webkit-transform: skewX(3deg); }
  70% {
    -webkit-transform: skewX(-2deg); }
  80% {
    -webkit-transform: skewX(1deg); }
  90% {
    -webkit-transform: skewX(0deg); }
  100% {
    -webkit-transform: skewX(0deg); } }

@keyframes wiggle {
  0% {
    -webkit-transform: skewX(9deg);
    transform: skewX(9deg); }
  10% {
    -webkit-transform: skewX(-8deg);
    transform: skewX(-8deg); }
  20% {
    -webkit-transform: skewX(7deg);
    transform: skewX(7deg); }
  30% {
    -webkit-transform: skewX(-6deg);
    transform: skewX(-6deg); }
  40% {
    -webkit-transform: skewX(5deg);
    transform: skewX(5deg); }
  50% {
    -webkit-transform: skewX(-4deg);
    transform: skewX(-4deg); }
  60% {
    -webkit-transform: skewX(3deg);
    transform: skewX(3deg); }
  70% {
    -webkit-transform: skewX(-2deg);
    transform: skewX(-2deg); }
  80% {
    -webkit-transform: skewX(1deg);
    transform: skewX(1deg); }
  90% {
    -webkit-transform: skewX(0deg);
    transform: skewX(0deg); }
  100% {
    -webkit-transform: skewX(0deg);
    transform: skewX(0deg); } }

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

/********
* swing *
*********/
@-webkit-keyframes swing {
  20%,
  40%,
  60%,
  80%,
  100% {
    -webkit-transform-origin: top center; }
  20% {
    -webkit-transform: rotate(15deg); }
  40% {
    -webkit-transform: rotate(-10deg); }
  60% {
    -webkit-transform: rotate(5deg); }
  80% {
    -webkit-transform: rotate(-5deg); }
  100% {
    -webkit-transform: rotate(0deg); } }

@keyframes swing {
  20% {
    -webkit-transform: rotate(15deg);
    transform: rotate(15deg); }
  40% {
    -webkit-transform: rotate(-10deg);
    transform: rotate(-10deg); }
  60% {
    -webkit-transform: rotate(5deg);
    transform: rotate(5deg); }
  80% {
    -webkit-transform: rotate(-5deg);
    transform: rotate(-5deg); }
  100% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg); } }

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

/*******
* tada *
********/
@-webkit-keyframes tada {
  0% {
    -webkit-transform: scale(1); }
  10%,
  20% {
    -webkit-transform: scale(0.9) rotate(-3deg); }
  30%,
  50%,
  70%,
  90% {
    -webkit-transform: scale(1.1) rotate(3deg); }
  40%,
  60%,
  80% {
    -webkit-transform: scale(1.1) rotate(-3deg); }
  100% {
    -webkit-transform: scale(1) rotate(0); } }

@keyframes tada {
  0% {
    -webkit-transform: scale(1);
    transform: scale(1); }
  10%,
  20% {
    -webkit-transform: scale(0.9) rotate(-3deg);
    transform: scale(0.9) rotate(-3deg); }
  30%,
  50%,
  70%,
  90% {
    -webkit-transform: scale(1.1) rotate(3deg);
    transform: scale(1.1) rotate(3deg); }
  40%,
  60%,
  80% {
    -webkit-transform: scale(1.1) rotate(-3deg);
    transform: scale(1.1) rotate(-3deg); }
  100% {
    -webkit-transform: scale(1) rotate(0);
    transform: scale(1) rotate(0); } }

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

/*********
* wobble *
**********/
@-webkit-keyframes wobble {
  0% {
    -webkit-transform: translateX(0%); }
  15% {
    -webkit-transform: translateX(-25%) rotate(-5deg); }
  30% {
    -webkit-transform: translateX(20%) rotate(3deg); }
  45% {
    -webkit-transform: translateX(-15%) rotate(-3deg); }
  60% {
    -webkit-transform: translateX(10%) rotate(2deg); }
  75% {
    -webkit-transform: translateX(-5%) rotate(-1deg); }
  100% {
    -webkit-transform: translateX(0%); } }

@keyframes wobble {
  0% {
    -webkit-transform: translateX(0%);
    transform: translateX(0%); }
  15% {
    -webkit-transform: translateX(-25%) rotate(-5deg);
    transform: translateX(-25%) rotate(-5deg); }
  30% {
    -webkit-transform: translateX(20%) rotate(3deg);
    transform: translateX(20%) rotate(3deg); }
  45% {
    -webkit-transform: translateX(-15%) rotate(-3deg);
    transform: translateX(-15%) rotate(-3deg); }
  60% {
    -webkit-transform: translateX(10%) rotate(2deg);
    transform: translateX(10%) rotate(2deg); }
  75% {
    -webkit-transform: translateX(-5%) rotate(-1deg);
    transform: translateX(-5%) rotate(-1deg); }
  100% {
    -webkit-transform: translateX(0%);
    transform: translateX(0%); } }

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

/********
* pulse *
*********/
@-webkit-keyframes pulse {
  0% {
    -webkit-transform: scale(0.95);
    transform: scale(0.95);
    -webkit-box-shadow: 0 0 0 0 rgba(0, 0, 0, 0.7);
    box-shadow: 0 0 0 0 rgba(0, 0, 0, 0.7); }
  70% {
    -webkit-transform: scale(1);
    transform: scale(1);
    -webkit-box-shadow: 0 0 0 10px rgba(0, 0, 0, 0);
    box-shadow: 0 0 0 10px rgba(0, 0, 0, 0); }
  100% {
    -webkit-transform: scale(0.95);
    transform: scale(0.95);
    -webkit-box-shadow: 0 0 0 0 rgba(0, 0, 0, 0);
    box-shadow: 0 0 0 0 rgba(0, 0, 0, 0); } }

@keyframes pulse {
  0% {
    -webkit-transform: scale(0.95);
    transform: scale(0.95);
    -webkit-box-shadow: 0 0 0 0 rgba(0, 0, 0, 0.7);
    box-shadow: 0 0 0 0 rgba(0, 0, 0, 0.7); }
  70% {
    -webkit-transform: scale(1);
    transform: scale(1);
    -webkit-box-shadow: 0 0 0 10px rgba(0, 0, 0, 0);
    box-shadow: 0 0 0 10px rgba(0, 0, 0, 0); }
  100% {
    -webkit-transform: scale(0.95);
    transform: scale(0.95);
    -webkit-box-shadow: 0 0 0 0 rgba(0, 0, 0, 0);
    box-shadow: 0 0 0 0 rgba(0, 0, 0, 0); } }

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

/***************
* lightSpeedInRight *
****************/
@-webkit-keyframes lightSpeedInRight {
  0% {
    -webkit-transform: translateX(100%) skewX(-30deg);
    opacity: 0; }
  60% {
    -webkit-transform: translateX(-20%) skewX(30deg);
    opacity: 1; }
  80% {
    -webkit-transform: translateX(0%) skewX(-15deg);
    opacity: 1; }
  100% {
    -webkit-transform: translateX(0%) skewX(0deg);
    opacity: 1; } }

@keyframes lightSpeedInRight {
  0% {
    -webkit-transform: translateX(100%) skewX(-30deg);
    transform: translateX(100%) skewX(-30deg);
    opacity: 0; }
  60% {
    -webkit-transform: translateX(-20%) skewX(30deg);
    transform: translateX(-20%) skewX(30deg);
    opacity: 1; }
  80% {
    -webkit-transform: translateX(0%) skewX(-15deg);
    transform: translateX(0%) skewX(-15deg);
    opacity: 1; }
  100% {
    -webkit-transform: translateX(0%) skewX(0deg);
    transform: translateX(0%) skewX(0deg);
    opacity: 1; } }

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

/***************
* lightSpeedInLeft *
****************/
@-webkit-keyframes lightSpeedInLeft {
  0% {
    -webkit-transform: translateX(-100%) skewX(30deg);
    opacity: 0; }
  60% {
    -webkit-transform: translateX(20%) skewX(-30deg);
    opacity: 1; }
  80% {
    -webkit-transform: translateX(0%) skewX(15deg);
    opacity: 1; }
  100% {
    -webkit-transform: translateX(0%) skewX(0deg);
    opacity: 1; } }

@keyframes lightSpeedInLeft {
  0% {
    -webkit-transform: translateX(-100%) skewX(30deg);
    transform: translateX(-100%) skewX(30deg);
    opacity: 0; }
  60% {
    -webkit-transform: translateX(20%) skewX(-30deg);
    transform: translateX(20%) skewX(-30deg);
    opacity: 1; }
  80% {
    -webkit-transform: translateX(0%) skewX(15deg);
    transform: translateX(0%) skewX(15deg);
    opacity: 1; }
  100% {
    -webkit-transform: translateX(0%) skewX(0deg);
    transform: translateX(0%) skewX(0deg);
    opacity: 1; } }

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

/*******
* Flip *
*******/
@-webkit-keyframes flip {
  0% {
    -webkit-transform: perspective(400px) rotateY(0);
    -webkit-animation-timing-function: ease-out; }
  40% {
    -webkit-transform: perspective(400px) translateZ(150px) rotateY(170deg);
    -webkit-animation-timing-function: ease-out; }
  50% {
    -webkit-transform: perspective(400px) translateZ(150px) rotateY(190deg) scale(1);
    -webkit-animation-timing-function: ease-in; }
  80% {
    -webkit-transform: perspective(400px) rotateY(360deg) scale(0.95);
    -webkit-animation-timing-function: ease-in; }
  100% {
    -webkit-transform: perspective(400px) scale(1);
    -webkit-animation-timing-function: ease-in; } }

@keyframes flip {
  0% {
    -webkit-transform: perspective(400px) rotateY(0);
    transform: perspective(400px) rotateY(0);
    -webkit-animation-timing-function: ease-out;
    animation-timing-function: ease-out; }
  40% {
    -webkit-transform: perspective(400px) translateZ(150px) rotateY(170deg);
    transform: perspective(400px) translateZ(150px) rotateY(170deg);
    -webkit-animation-timing-function: ease-out;
    animation-timing-function: ease-out; }
  50% {
    -webkit-transform: perspective(400px) translateZ(150px) rotateY(190deg) scale(1);
    transform: perspective(400px) translateZ(150px) rotateY(190deg) scale(1);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in; }
  80% {
    -webkit-transform: perspective(400px) rotateY(360deg) scale(0.95);
    transform: perspective(400px) rotateY(360deg) scale(0.95);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in; }
  100% {
    -webkit-transform: perspective(400px) scale(1);
    transform: perspective(400px) scale(1);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in; } }

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

/**********
* flipInX *
**********/
@-webkit-keyframes flipInX {
  0% {
    -webkit-transform: perspective(400px) rotateX(90deg);
    opacity: 0; }
  40% {
    -webkit-transform: perspective(400px) rotateX(-10deg); }
  70% {
    -webkit-transform: perspective(400px) rotateX(10deg); }
  100% {
    -webkit-transform: perspective(400px) rotateX(0deg);
    opacity: 1; } }

@keyframes flipInX {
  0% {
    -webkit-transform: perspective(400px) rotateX(90deg);
    transform: perspective(400px) rotateX(90deg);
    opacity: 0; }
  40% {
    -webkit-transform: perspective(400px) rotateX(-10deg);
    transform: perspective(400px) rotateX(-10deg); }
  70% {
    -webkit-transform: perspective(400px) rotateX(10deg);
    transform: perspective(400px) rotateX(10deg); }
  100% {
    -webkit-transform: perspective(400px) rotateX(0deg);
    transform: perspective(400px) rotateX(0deg);
    opacity: 1; } }

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

/**********
* flipInY *
**********/
@-webkit-keyframes flipInY {
  0% {
    -webkit-transform: perspective(400px) rotateY(90deg);
    opacity: 0; }
  40% {
    -webkit-transform: perspective(400px) rotateY(-10deg); }
  70% {
    -webkit-transform: perspective(400px) rotateY(10deg); }
  100% {
    -webkit-transform: perspective(400px) rotateY(0deg);
    opacity: 1; } }

@keyframes flipInY {
  0% {
    -webkit-transform: perspective(400px) rotateY(90deg);
    transform: perspective(400px) rotateY(90deg);
    opacity: 0; }
  40% {
    -webkit-transform: perspective(400px) rotateY(-10deg);
    transform: perspective(400px) rotateY(-10deg); }
  70% {
    -webkit-transform: perspective(400px) rotateY(10deg);
    transform: perspective(400px) rotateY(10deg); }
  100% {
    -webkit-transform: perspective(400px) rotateY(0deg);
    transform: perspective(400px) rotateY(0deg);
    opacity: 1; } }

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

/*****************
* Out animations *
*****************/
/************
* bounceOut *
*************/
@-webkit-keyframes bounceOut {
  0% {
    -webkit-transform: scale(1); }
  25% {
    -webkit-transform: scale(0.95); }
  50% {
    opacity: 1;
    -webkit-transform: scale(1.1); }
  100% {
    opacity: 0;
    -webkit-transform: scale(0.3); } }

@keyframes bounceOut {
  0% {
    -webkit-transform: scale(1);
    transform: scale(1); }
  25% {
    -webkit-transform: scale(0.95);
    transform: scale(0.95); }
  50% {
    opacity: 1;
    -webkit-transform: scale(1.1);
    transform: scale(1.1); }
  100% {
    opacity: 0;
    -webkit-transform: scale(0.3);
    transform: scale(0.3); } }

.bounceOut.goAway {
  -webkit-animation-name: bounceOut;
  animation-name: bounceOut; }

/************
* bounceOutUp *
*************/
@-webkit-keyframes bounceOutUp {
  0% {
    -webkit-transform: translateY(0); }
  20% {
    opacity: 1;
    -webkit-transform: translateY(20px); }
  100% {
    opacity: 0;
    -webkit-transform: translateY(-2000px); } }

@keyframes bounceOutUp {
  0% {
    -webkit-transform: translateY(0);
    transform: translateY(0); }
  20% {
    opacity: 1;
    -webkit-transform: translateY(20px);
    transform: translateY(20px); }
  100% {
    opacity: 0;
    -webkit-transform: translateY(-2000px);
    transform: translateY(-2000px); } }

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

/************
* bounceOutDown *
*************/
@-webkit-keyframes bounceOutDown {
  0% {
    -webkit-transform: translateY(0); }
  20% {
    opacity: 1;
    -webkit-transform: translateY(-20px); }
  100% {
    opacity: 0;
    -webkit-transform: translateY(2000px); } }

@keyframes bounceOutDown {
  0% {
    -webkit-transform: translateY(0);
    transform: translateY(0); }
  20% {
    opacity: 1;
    -webkit-transform: translateY(-20px);
    transform: translateY(-20px); }
  100% {
    opacity: 0;
    -webkit-transform: translateY(2000px);
    transform: translateY(2000px); } }

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

/************
* bounceOutLeft *
*************/
@-webkit-keyframes bounceOutLeft {
  0% {
    -webkit-transform: translateX(0); }
  20% {
    opacity: 1;
    -webkit-transform: translateX(20px); }
  100% {
    opacity: 0;
    -webkit-transform: translateX(-2000px); } }

@keyframes bounceOutLeft {
  0% {
    -webkit-transform: translateX(0);
    transform: translateX(0); }
  20% {
    opacity: 1;
    -webkit-transform: translateX(20px);
    transform: translateX(20px); }
  100% {
    opacity: 0;
    -webkit-transform: translateX(-2000px);
    transform: translateX(-2000px); } }

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

/************
* bounceOutRight *
*************/
@-webkit-keyframes bounceOutRight {
  0% {
    -webkit-transform: translateX(0); }
  20% {
    opacity: 1;
    -webkit-transform: translateX(-20px); }
  100% {
    opacity: 0;
    -webkit-transform: translateX(2000px); } }

@keyframes bounceOutRight {
  0% {
    -webkit-transform: translateX(0);
    transform: translateX(0); }
  20% {
    opacity: 1;
    -webkit-transform: translateX(-20px);
    transform: translateX(-20px); }
  100% {
    opacity: 0;
    -webkit-transform: translateX(2000px);
    transform: translateX(2000px); } }

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

/************
* fadeOut *
*************/
@-webkit-keyframes fadeOut {
  0% {
    opacity: 1; }
  100% {
    opacity: 0; } }

@keyframes fadeOut {
  0% {
    opacity: 1; }
  100% {
    opacity: 0; } }

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

/************
* fadeOutUp *
*************/
@-webkit-keyframes fadeOutUp {
  0% {
    opacity: 1;
    -webkit-transform: translateY(0); }
  100% {
    opacity: 0;
    -webkit-transform: translateY(-2000px); } }

@keyframes fadeOutUp {
  0% {
    opacity: 1;
    -webkit-transform: translateY(0);
    transform: translateY(0); }
  100% {
    opacity: 0;
    -webkit-transform: translateY(-2000px);
    transform: translateY(-2000px); } }

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

/************
* fadeOutDown *
*************/
@-webkit-keyframes fadeOutDown {
  0% {
    opacity: 1;
    -webkit-transform: translateY(0); }
  100% {
    opacity: 0;
    -webkit-transform: translateY(2000px); } }

@keyframes fadeOutDown {
  0% {
    opacity: 1;
    -webkit-transform: translateY(0);
    transform: translateY(0); }
  100% {
    opacity: 0;
    -webkit-transform: translateY(2000px);
    transform: translateY(2000px); } }

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

/************
* fadeOutLeft *
*************/
@-webkit-keyframes fadeOutLeft {
  0% {
    opacity: 1;
    -webkit-transform: translateX(0); }
  100% {
    opacity: 0;
    -webkit-transform: translateX(-2000px); } }

@keyframes fadeOutLeft {
  0% {
    opacity: 1;
    -webkit-transform: translateX(0);
    transform: translateX(0); }
  100% {
    opacity: 0;
    -webkit-transform: translateX(-2000px);
    transform: translateX(-2000px); } }

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

/************
* fadeOutRight *
*************/
@-webkit-keyframes fadeOutRight {
  0% {
    opacity: 1;
    -webkit-transform: translateX(0); }
  100% {
    opacity: 0;
    -webkit-transform: translateX(2000px); } }

@keyframes fadeOutRight {
  0% {
    opacity: 1;
    -webkit-transform: translateX(0);
    transform: translateX(0); }
  100% {
    opacity: 0;
    -webkit-transform: translateX(2000px);
    transform: translateX(2000px); } }

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

/************
* flipOutX *
*************/
@-webkit-keyframes flipOutX {
  0% {
    -webkit-transform: perspective(400px) rotateX(0deg);
    opacity: 1; }
  100% {
    -webkit-transform: perspective(400px) rotateX(90deg);
    opacity: 0; } }

@keyframes flipOutX {
  0% {
    -webkit-transform: perspective(400px) rotateX(0deg);
    transform: perspective(400px) rotateX(0deg);
    opacity: 1; }
  100% {
    -webkit-transform: perspective(400px) rotateX(90deg);
    transform: perspective(400px) rotateX(90deg);
    opacity: 0; } }

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

/************
* flipOutY *
*************/
@-webkit-keyframes flipOutY {
  0% {
    -webkit-transform: perspective(400px) rotateY(0deg);
    opacity: 1; }
  100% {
    -webkit-transform: perspective(400px) rotateY(90deg);
    opacity: 0; } }

@keyframes flipOutY {
  0% {
    -webkit-transform: perspective(400px) rotateY(0deg);
    transform: perspective(400px) rotateY(0deg);
    opacity: 1; }
  100% {
    -webkit-transform: perspective(400px) rotateY(90deg);
    transform: perspective(400px) rotateY(90deg);
    opacity: 0; } }

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

/************
* lightSpeedOutRight *
*************/
@-webkit-keyframes lightSpeedOutRight {
  0% {
    -webkit-transform: translateX(0%) skewX(0deg);
    opacity: 1; }
  100% {
    -webkit-transform: translateX(100%) skewX(-30deg);
    opacity: 0; } }

@keyframes lightSpeedOutRight {
  0% {
    -webkit-transform: translateX(0%) skewX(0deg);
    transform: translateX(0%) skewX(0deg);
    opacity: 1; }
  100% {
    -webkit-transform: translateX(100%) skewX(-30deg);
    transform: translateX(100%) skewX(-30deg);
    opacity: 0; } }

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

/************
* lightSpeedOutLeft *
*************/
@-webkit-keyframes lightSpeedOutLeft {
  0% {
    -webkit-transform: translateX(0%) skewX(0deg);
    opacity: 1; }
  100% {
    -webkit-transform: translateX(-100%) skewX(30deg);
    opacity: 0; } }

@keyframes lightSpeedOutLeft {
  0% {
    -webkit-transform: translateX(0%) skewX(0deg);
    transform: translateX(0%) skewX(0deg);
    opacity: 1; }
  100% {
    -webkit-transform: translateX(-100%) skewX(30deg);
    transform: translateX(-100%) skewX(30deg);
    opacity: 0; } }

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

/************
* rotateOut *
*************/
@-webkit-keyframes rotateOut {
  0% {
    -webkit-transform-origin: center center;
    -webkit-transform: rotate(0);
    opacity: 1; }
  100% {
    -webkit-transform-origin: center center;
    -webkit-transform: rotate(200deg);
    opacity: 0; } }

@keyframes rotateOut {
  0% {
    -webkit-transform-origin: center center;
    transform-origin: center center;
    -webkit-transform: rotate(0);
    transform: rotate(0);
    opacity: 1; }
  100% {
    -webkit-transform-origin: center center;
    transform-origin: center center;
    -webkit-transform: rotate(200deg);
    transform: rotate(200deg);
    opacity: 0; } }

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

/************
* rotateOutUpLeft *
*************/
@-webkit-keyframes rotateOutUpLeft {
  0% {
    -webkit-transform-origin: left bottom;
    -webkit-transform: rotate(0);
    opacity: 1; }
  100% {
    -webkit-transform-origin: left bottom;
    -webkit-transform: rotate(-90deg);
    opacity: 0; } }

@keyframes rotateOutUpLeft {
  0% {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: rotate(0);
    transform: rotate(0);
    opacity: 1; }
  100% {
    -transform-origin: left bottom;
    -transform: rotate(-90deg);
    opacity: 0; } }

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

/************
* rotateOutDownLeft *
*************/
@-webkit-keyframes rotateOutDownLeft {
  0% {
    -webkit-transform-origin: left bottom;
    -webkit-transform: rotate(0);
    opacity: 1; }
  100% {
    -webkit-transform-origin: left bottom;
    -webkit-transform: rotate(90deg);
    opacity: 0; } }

@keyframes rotateOutDownLeft {
  0% {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: rotate(0);
    transform: rotate(0);
    opacity: 1; }
  100% {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: rotate(90deg);
    transform: rotate(90deg);
    opacity: 0; } }

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

/************
* rotateOutUpRight *
*************/
@-webkit-keyframes rotateOutUpRight {
  0% {
    -webkit-transform-origin: right bottom;
    -webkit-transform: rotate(0);
    opacity: 1; }
  100% {
    -webkit-transform-origin: right bottom;
    -webkit-transform: rotate(90deg);
    opacity: 0; } }

@keyframes rotateOutUpRight {
  0% {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: rotate(0);
    transform: rotate(0);
    opacity: 1; }
  100% {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: rotate(90deg);
    transform: rotate(90deg);
    opacity: 0; } }

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

/************
* rollOut *
*************/
@-webkit-keyframes rollOut {
  0% {
    opacity: 1;
    -webkit-transform: translateX(0px) rotate(0deg); }
  100% {
    opacity: 0;
    -webkit-transform: translateX(100%) rotate(120deg); } }

@keyframes rollOut {
  0% {
    opacity: 1;
    -webkit-transform: translateX(0px) rotate(0deg);
    transform: translateX(0px) rotate(0deg); }
  100% {
    opacity: 0;
    -webkit-transform: translateX(100%) rotate(120deg);
    transform: translateX(100%) rotate(120deg); } }

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

/*****************
* Short Animations
*******************/
/*********************
* fadeInUpShort
*********************/
@-webkit-keyframes fadeInUpShort {
  0% {
    opacity: 0;
    -webkit-transform: translateY(20px); }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0); } }

@keyframes fadeInUpShort {
  0% {
    opacity: 0;
    -webkit-transform: translateY(20px);
    transform: translateY(20px); }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0);
    transform: translateY(0); } }

.fadeInUpShort {
  opacity: 0;
  -webkit-transform: translateY(20px);
  -ms-transform: translateY(20px);
  transform: translateY(20px); }

.fadeInUpShort.go {
  -webkit-animation-name: fadeInUpShort;
  animation-name: fadeInUpShort; }

/*********************
* fadeInDownShort
*********************/
@-webkit-keyframes fadeInDownShort {
  0% {
    opacity: 0;
    -webkit-transform: translateY(-20px); }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0); } }

@keyframes fadeInDownShort {
  0% {
    opacity: 0;
    -webkit-transform: translateY(-20px);
    transform: translateY(-20px); }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0);
    transform: translateY(0); } }

.fadeInDownShort {
  opacity: 0;
  -webkit-transform: translateY(-20px);
  -ms-transform: translateY(-20px);
  transform: translateY(-20px); }

.fadeInDownShort.go {
  -webkit-animation-name: fadeInDownShort;
  animation-name: fadeInDownShort; }

/*********************
* fadeInRightShort 
*********************/
@-webkit-keyframes fadeInRightShort {
  0% {
    opacity: 0;
    -webkit-transform: translateX(20px); }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0); } }

@keyframes fadeInRightShort {
  0% {
    opacity: 0;
    -webkit-transform: translateX(20px);
    transform: translateX(20px); }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0);
    transform: translateX(0); } }

.fadeInRightShort {
  opacity: 0;
  -webkit-transform: translateX(20px);
  -ms-transform: translateX(20px);
  transform: translateX(20px); }

.fadeInRightShort.go {
  -webkit-animation-name: fadeInRightShort;
  animation-name: fadeInRightShort; }

/*********************
* fadeInLeftShort 
*********************/
@-webkit-keyframes fadeInLeftShort {
  0% {
    opacity: 0;
    -webkit-transform: translateX(-20px); }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0); } }

@keyframes fadeInLeftShort {
  0% {
    opacity: 0;
    -webkit-transform: translateX(-20px);
    transform: translateX(-20px); }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0);
    transform: translateX(0); } }

.fadeInLeftShort {
  opacity: 0;
  -webkit-transform: translateX(-20px);
  -ms-transform: translateX(-20px);
  transform: translateX(-20px); }

.fadeInLeftShort.go {
  -webkit-animation-name: fadeInLeftShort;
  animation-name: fadeInLeftShort; }

/**********
* Zoom in *
***********/
@-webkit-keyframes zoomIn {
  0% {
    -webkit-transform: scale(5);
    transform: scale(5);
    opacity: 0; }
  80% {
    -webkit-transform: scale(0.8);
    transform: scale(0.8);
    opacity: .8; }
  80% {
    -webkit-transform: scale(0.8);
    transform: scale(0.8); }
  90% {
    -webkit-transform: scale(1.1);
    transform: scale(1.1); }
  100% {
    -webkit-transform: scale(1);
    transform: scale(1);
    opacity: 1; } }

@keyframes zoomIn {
  0% {
    -webkit-transform: scale(5);
    transform: scale(5);
    opacity: 0; }
  80% {
    -webkit-transform: scale(0.8);
    transform: scale(0.8);
    opacity: .8; }
  80% {
    -webkit-transform: scale(0.8);
    transform: scale(0.8); }
  90% {
    -webkit-transform: scale(1.1);
    transform: scale(1.1); }
  100% {
    -webkit-transform: scale(1);
    transform: scale(1);
    opacity: 1; } }

.zoomIn {
  -webkit-transform: scale(5);
  -ms-transform: scale(5);
  transform: scale(5);
  opacity: 0; }

.zoomIn.go {
  -webkit-animation-name: zoomIn;
  animation-name: zoomIn;
  -webkit-animation-duration: .5s;
  animation-duration: .5s; }

/********
* ShakeUp2 *
Shake and pause 
********/
@keyframes shakeUp2 {
  0%,
  50%,
  100% {
    -webkit-transform: translateY(0);
    transform: translateY(0); }
  70%,
  90% {
    -webkit-transform: translateY(-10px);
    transform: translateY(-10px); }
  60%,
  80% {
    -webkit-transform: translateY(10px);
    transform: translateY(10px); } }

.shakeup2 {
  -webkit-animation-name: shakeUp2;
  animation-name: shakeUp2; }

.shake2 {
  /* Start the shake animation and make the animation last for 0.5 seconds */
  -webkit-animation: shake 1s;
  animation: shake 1s;
  /* When the animation is finished, start again */
  -webkit-animation-iteration-count: infinite;
  animation-iteration-count: infinite; }

@keyframes shake {
  0% {
    -webkit-transform: translate(1px, 1px) rotate(0deg);
    transform: translate(1px, 1px) rotate(0deg); }
  10% {
    -webkit-transform: translate(-1px, -2px) rotate(-1deg);
    transform: translate(-1px, -2px) rotate(-1deg); }
  20% {
    -webkit-transform: translate(-3px, 0px) rotate(1deg);
    transform: translate(-3px, 0px) rotate(1deg); }
  30% {
    -webkit-transform: translate(3px, 2px) rotate(0deg);
    transform: translate(3px, 2px) rotate(0deg); }
  40% {
    -webkit-transform: translate(1px, -1px) rotate(1deg);
    transform: translate(1px, -1px) rotate(1deg); }
  50% {
    -webkit-transform: translate(-1px, 2px) rotate(-1deg);
    transform: translate(-1px, 2px) rotate(-1deg); }
  60% {
    -webkit-transform: translate(-3px, 1px) rotate(0deg);
    transform: translate(-3px, 1px) rotate(0deg); }
  70% {
    -webkit-transform: translate(3px, 1px) rotate(-1deg);
    transform: translate(3px, 1px) rotate(-1deg); }
  80% {
    -webkit-transform: translate(-1px, -1px) rotate(1deg);
    transform: translate(-1px, -1px) rotate(1deg); }
  90% {
    -webkit-transform: translate(1px, 2px) rotate(0deg);
    transform: translate(1px, 2px) rotate(0deg); }
  100% {
    -webkit-transform: translate(1px, -2px) rotate(-1deg);
    transform: translate(1px, -2px) rotate(-1deg); } }

@-webkit-keyframes flashlight {
  0% {
    -webkit-transform: translate(0, 0) scale(1);
    transform: translate(0, 0) scale(1); }
  100% {
    -webkit-transform: translate(-20px, -40px) scale(1.1);
    transform: translate(-20px, -40px) scale(1.1); } }

@keyframes flashlight {
  0% {
    -webkit-transform: translate(0, 0) scale(1);
    -ms-transform: translate(0, 0) scale(1);
    transform: translate(0, 0) scale(1); }
  100% {
    -webkit-transform: translate(-20px, -40px) scale(1.1);
    -ms-transform: translate(-20px, -40px) scale(1.1);
    transform: translate(-20px, -40px) scale(1.1); } }

.rotating {
  -webkit-animation: rotating 30s linear infinite;
  animation: rotating 30s linear infinite; }

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

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

/*--- About Text ---*/
/* text truncate multiline */
/*--- About Images ---*/
/*--- About Position ---*/
/*------------------------------------------------------*/
/*--- About Button ---*/
/*------------------------------------------------------*/
/*--- Customize Scrollbar ---*/
/*--- About Text ---*/
/*--- Smooth Scroll ---*/
::-moz-selection {
  color: #004CA2;
  background: #c0c0c0; }
::selection {
  color: #004CA2;
  background: #c0c0c0; }

/*--- Animate a ---*/
a {
  -webkit-transition: all .2s;
  -o-transition: all .2s;
  transition: all .2s; }
  a img {
    -webkit-transition: all 0.2s ease-in-out;
    -o-transition: all 0.2s ease-in-out;
    transition: all 0.2s ease-in-out; }

/*--- Customize Scrollbar ---*/
/*--- Common ClassName ---*/
.loop-infinite {
  -webkit-animation-iteration-count: infinite;
  animation-iteration-count: infinite; }

.loop-5 {
  -webkit-animation-iteration-count: 5;
  animation-iteration-count: 5; }

/*--- About Button ---*/
.btn-image {
  position: relative;
  overflow: hidden;
  display: inline-block;
  vertical-align: middle;
  line-height: 0; }
  .btn-image img:last-child {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    visibility: hidden;
    opacity: 0; }
  .btn-image:hover img:last-child {
    visibility: visible;
    opacity: 1; }

.btn-hover-zoom {
  display: inline-block;
  -webkit-transition: all 0.2s ease-in-out;
  -o-transition: all 0.2s ease-in-out;
  transition: all 0.2s ease-in-out; }
  .btn-hover-zoom:hover {
    -webkit-transform: scale(1.1);
    -ms-transform: scale(1.1);
    transform: scale(1.1); }

.btn-hover-translateX {
  display: inline-block;
  -webkit-transition: -webkit-transform 0.1s ease-in-out;
  transition: -webkit-transform 0.1s ease-in-out;
  -o-transition: transform 0.1s ease-in-out;
  transition: transform 0.1s ease-in-out;
  transition: transform 0.1s ease-in-out, -webkit-transform 0.1s ease-in-out; }
  .btn-hover-translateX:hover {
    -webkit-transform: translateX(-10px);
    -ms-transform: translateX(-10px);
    transform: translateX(-10px); }

.btn-hover-translateY {
  display: inline-block;
  -webkit-transition: -webkit-transform 0.1s ease-in-out;
  transition: -webkit-transform 0.1s ease-in-out;
  -o-transition: transform 0.1s ease-in-out;
  transition: transform 0.1s ease-in-out;
  transition: transform 0.1s ease-in-out, -webkit-transform 0.1s ease-in-out; }
  .btn-hover-translateY:hover {
    -webkit-transform: translateY(-5px);
    -ms-transform: translateY(-5px);
    transform: translateY(-5px); }

.btn-hover-underline {
  position: relative;
  display: inline-block;
  text-decoration: none; }
  .btn-hover-underline:before {
    width: 0;
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
    transform: translateX(-50%);
    height: 1px;
    background: #000;
    -webkit-transition: all 0.2s ease-in-out;
    -o-transition: all 0.2s ease-in-out;
    transition: all 0.2s ease-in-out; }
  .btn-hover-underline:hover:before {
    width: 100%; }

.btn-hover-border-wrapping {
  padding: 20px;
  font-size: 18px;
  position: relative;
  border: none; }
  .btn-hover-border-wrapping:before {
    content: "";
    position: absolute;
    z-index: -1;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    border: #fff000 dashed;
    border-width: 0;
    -webkit-transition: border-width 0.1s ease-out;
    -o-transition: border-width 0.1s ease-out;
    transition: border-width 0.1s ease-out; }
  .btn-hover-border-wrapping:hover:before {
    z-index: 1;
    -webkit-transform: translateY(0);
    -ms-transform: translateY(0);
    transform: translateY(0);
    border-width: 5px; }

.btn-hover-shine {
  display: inline-block;
  position: relative;
  overflow: hidden; }
  .btn-hover-shine:after {
    content: '';
    position: absolute;
    pointer-events: none;
    top: -110%;
    left: -210%;
    width: 200%;
    height: 200%;
    opacity: 0;
    background: -webkit-gradient(linear, left top, right top, from(rgba(255, 255, 255, 0.13)), color-stop(77%, rgba(255, 255, 255, 0.13)), color-stop(92%, rgba(255, 255, 255, 0.5)), to(rgba(255, 255, 255, 0)));
    background: -webkit-linear-gradient(left, rgba(255, 255, 255, 0.13) 0%, rgba(255, 255, 255, 0.13) 77%, rgba(255, 255, 255, 0.5) 92%, rgba(255, 255, 255, 0) 100%);
    background: -o-linear-gradient(left, rgba(255, 255, 255, 0.13) 0%, rgba(255, 255, 255, 0.13) 77%, rgba(255, 255, 255, 0.5) 92%, rgba(255, 255, 255, 0) 100%);
    background: linear-gradient(to right, rgba(255, 255, 255, 0.13) 0%, rgba(255, 255, 255, 0.13) 77%, rgba(255, 255, 255, 0.5) 92%, rgba(255, 255, 255, 0) 100%);
    -webkit-transform: rotate(30deg);
    -ms-transform: rotate(30deg);
    transform: rotate(30deg); }
  .btn-hover-shine:hover:after {
    -webkit-animation: shine .75s;
    animation: shine .75s;
    opacity: 1;
    top: -30%;
    left: -30%;
    -webkit-transition-property: left, top, opacity;
    -o-transition-property: left, top, opacity;
    transition-property: left, top, opacity;
    -webkit-transition-duration: 1s, 1s, .15s;
    -o-transition-duration: 1s, 1s, .15s;
    transition-duration: 1s, 1s, .15s;
    -webkit-transition-timing-function: ease;
    -o-transition-timing-function: ease;
    transition-timing-function: ease; }

/*--- About Text ---*/
.text-truncate {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  padding-bottom: 0 !important; }

.text-stroke {
  font-size: 100px;
  color: #fff;
  text-transform: uppercase;
  background: -webkit-linear-gradient(90deg, #000 20%, #f00 50%);
  /* Chrome10+,Safari5.1+ */
  -webkit-text-stroke: 5px rgba(255, 255, 255, 0.01);
  -webkit-background-clip: text; }

.text-gradient {
  text-transform: uppercase;
  font-weight: normal;
  font-size: 100px;
  background: #000;
  background: -webkit-linear-gradient(legacy-direction(180deg), #000, #f00, #fff000);
  background: -webkit-gradient(linear, left top, left bottom, from(#000), color-stop(#f00), to(#fff000));
  background: -webkit-linear-gradient(top, #000, #f00, #fff000);
  background: -o-linear-gradient(top, #000, #f00, #fff000);
  background: linear-gradient(180deg, #000, #f00, #fff000);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent; }

/*--- About Image ---*/
.image-fit {
  width: 250px;
  display: block;
  height: 350px;
  -o-object-fit: cover;
  object-fit: cover;
  -o-object-position: center;
  object-position: center;
  -webkit-transition: all 0.2s ease-in-out;
  -o-transition: all 0.2s ease-in-out;
  transition: all 0.2s ease-in-out; }

/*--- About Effect ---*/
.effect-gradient-linear {
  background: #77D7E7;
  background: -webkit-linear-gradient(legacy-direction(to bottom), #77D7E7 50%, #ff0000 50%, #fff000 100%);
  background: -webkit-gradient(linear, left top, left bottom, color-stop(50%, #77D7E7), color-stop(50%, #ff0000), to(#fff000));
  background: -webkit-linear-gradient(top, #77D7E7 50%, #ff0000 50%, #fff000 100%);
  background: -o-linear-gradient(top, #77D7E7 50%, #ff0000 50%, #fff000 100%);
  background: linear-gradient(to bottom, #77D7E7 50%, #ff0000 50%, #fff000 100%); }

/*--- About Other ---*/
.hover-stop-animated:hover {
  -webkit-animation-play-state: paused;
  animation-play-state: paused;
  -webkit-animation: step-end;
  -moz-animationanimation: step-end;
  animation: step-end; }

@font-face {
  font-family: "SF";
  src: url(../fonts/SF-Pro-Display-Regular.eot);
  src: url(../fonts/SF-Pro-Display-Regular.eot#iefix) format("eot"), url(../fonts/SF-Pro-Display-Regular.woff2) format("woff2"), url(../fonts/SF-Pro-Display-Regular.woff) format("woff"), url(../fonts/SF-Pro-Display-Regular.ttf) format("truetype"), url(../fonts/SF-Pro-Display-Regular.svg) format("svg"); }

:root {
  /* Not my favorite that line-height has to be united, but needed */
  --lh: 1.4rem; }

html {
  font-size: 16px;
  line-height: var(--lh); }

a {
  transition: color 0.2s ease-out;
  -moz-transition: color 0.2s ease-out;
  -o-transition: color 0.2s ease-out;
  -webkit-transition: color 0.2s ease-out;
  -ms-transition: color 0.2s ease-out;
  background-color: transparent;
  cursor: pointer;
  color: #4c0e0d;
  text-decoration: none; }
  a:hover, a:focus {
    text-decoration: none !important;
    outline: none;
    color: #781614; }

.show-mobile {
  display: none; }
  @media only screen and (max-width: 768px) {
    .show-mobile {
      display: block; } }

.show-desktop {
  display: block; }
  @media only screen and (max-width: 768px) {
    .show-desktop {
      display: none; } }

html {
  width: 100%; }
  @media only screen and (max-width: 1100px) {
    html {
      height: initial;
      overflow: visible; } }

body {
  height: 100%;
  position: relative;
  font-family: SF; }

.wrapper {
  width: 100%;
  background: url(../images/bg.jpg) no-repeat center top/cover;
  font-size: 18px; }
  @media only screen and (max-width: 1100px) {
    .wrapper {
      background: url(../images/bg-mobile.jpg) no-repeat center top/cover;
      height: initial; } }
  @media only screen and (max-width: 480px) {
    .wrapper {
      -webkit-background-size: 145% 100%;
      background-size: 145% 100%; } }

p {
  margin: 0;
  padding: 0; }

.container {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: reverse;
  -webkit-flex-direction: column-reverse;
  -ms-flex-direction: column-reverse;
  flex-direction: column-reverse;
  width: 1156px;
  max-width: 100%;
  margin: 0 auto;
  position: relative;
  z-index: 5;
  padding: 150px 0 0 0; }
  @media only screen and (max-width: 1100px) {
    .container {
      padding-top: 0%;
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
      -webkit-flex-direction: column;
      -ms-flex-direction: column;
      flex-direction: column; } }

.avatar {
  position: absolute;
  top: 10px;
  left: 0;
  -webkit-border-radius: 22px;
  border-radius: 22px; }

.logo {
  -webkit-box-pack: center;
  -webkit-justify-content: center;
  -ms-flex-pack: center;
  justify-content: center;
  position: absolute;
  top: 0px;
  left: 30px;
  -webkit-transform: translateX(0%);
  -ms-transform: translateX(0%);
  transform: translateX(0%);
  z-index: 6; }
  @media only screen and (max-width: 1100px) {
    .logo {
      position: relative;
      left: 0; }
      .logo img {
        max-width: 190px; } }
  @media only screen and (max-width: 880px) {
    .logo {
      top: 0; } }
  @media only screen and (max-width: 480px) {
    .logo {
      top: 7%; } }
  .logo a {
    display: block;
    text-align: center; }

.text {
  position: absolute;
  top: 0;
  left: 400px; }
  @media only screen and (max-width: 1100px) {
    .text {
      position: relative;
      width: 350px;
      max-width: 80%;
      left: 50%;
      -webkit-transform: translateX(-50%);
      -ms-transform: translateX(-50%);
      transform: translateX(-50%); } }

.sub-text {
  display: none;
  text-align: center; }
  @media only screen and (max-width: 1100px) {
    .sub-text {
      display: block;
      text-align: center;
      margin: 0 auto 0px; } }

.buttons {
  width: 100%;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
  -ms-flex-pack: center;
  justify-content: center; }
  @media only screen and (max-width: 1100px) {
    .buttons {
      position: relative;
      left: 0;
      -webkit-transform: translateX(0);
      -ms-transform: translateX(0);
      transform: translateX(0);
      margin-bottom: 10px; }
      .buttons img {
        max-width: 250px; } }
  @media only screen and (max-width: 480px) {
    .buttons img {
      max-width: 160px; } }

.duatop {
  width: 1156px;
  height: 685px;
  background: url(../images/duatop-bg.png) no-repeat 0 0/cover;
  padding: 0px 0px 0;
  margin: -20px auto 0px;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  position: relative; }
  @media only screen and (max-width: 1100px) {
    .duatop {
      display: block;
      width: 580px;
      height: 495px;
      padding: 3% 4% 0% 4%;
      margin: 0 auto;
      background: url(../images/duatop-bg-mobile.png) no-repeat center top/cover; } }
  @media only screen and (max-width: 1100px) and (max-width: 480px) {
    .duatop {
      max-width: 100%;
      height: 400px;
      padding-left: 7%;
      padding-right: 7%; } }
  @media only screen and (max-width: 1100px) and (max-width: 400px) {
    .duatop {
      padding-left: 2%;
      padding-right: 2%; } }
  .duatop-days {
    width: 200px;
    margin: 360px 0 0 100px;
    color: #fbf7e5;
    text-align: center;
    font-size: 21px;
    font-weight: 400;
    line-height: 1;
    font-family: "Roboto Slab"; }
    .duatop-days p {
      padding: 0 0%; }
      @media only screen and (max-width: 1100px) {
        .duatop-days p {
          width: 40%;
          font-size: 22px;
          padding-top: 15px; } }
      @media only screen and (max-width: 768px) {
        .duatop-days p {
          padding-top: 20px;
          padding-left: 40px;
          font-size: 20px; } }
      @media only screen and (max-width: 480px) {
        .duatop-days p {
          padding-top: 15px;
          width: 40%;
          font-size: 18px; } }
      @media only screen and (max-width: 400px) {
        .duatop-days p {
          padding-left: 20px; } }
    @media only screen and (max-width: 1100px) {
      .duatop-days {
        width: 85%;
        display: -webkit-box;
        display: -webkit-flex;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-pack: center;
        -webkit-justify-content: center;
        -ms-flex-pack: center;
        justify-content: center;
        -webkit-box-align: center;
        -webkit-align-items: center;
        -ms-flex-align: center;
        align-items: center;
        margin: 0 auto 2%;
        color: #fff;
        text-align: center;
        font-size: 24px;
        font-weight: 400;
        font-family: "Roboto Slab"; } }
    @media only screen and (max-width: 480px) {
      .duatop-days {
        width: 100%;
        font-size: 26px; } }
    @media only screen and (max-width: 400px) {
      .duatop-days {
        font-size: 14px; } }
    .duatop-days .day {
      width: 150px;
      font-size: 80px;
      line-height: 0.9;
      margin: 0 auto 77px;
      background: #fbf6e2;
      background: -webkit-linear-gradient(legacy-direction(180deg), #fbf6e2, #f7b941);
      background: -webkit-gradient(linear, left top, left bottom, from(#fbf6e2), to(#f7b941));
      background: -webkit-linear-gradient(top, #fbf6e2, #f7b941);
      background: -o-linear-gradient(top, #fbf6e2, #f7b941);
      background: linear-gradient(180deg, #fbf6e2, #f7b941);
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent; }
      @media only screen and (max-width: 1100px) {
        .duatop-days .day {
          font-size: 60px;
          margin-bottom: 0px; } }
      .duatop-days .day span {
        display: block; }
    .duatop-days .date {
      font-size: 28px;
      line-height: 1.1;
      color: #fff;
      margin: 0 0 20px; }
      @media only screen and (max-width: 1100px) {
        .duatop-days .date {
          font-size: 22px; } }
    .duatop-days .time {
      color: #fbf7e5;
      font-weight: 600;
      font-size: 36px;
      font-family: 'Time New Roman';
      padding: 0 7% 0 3%; }
      @media only screen and (max-width: 1100px) {
        .duatop-days .time {
          width: 35%;
          font-size: 26px;
          padding-top: 16px; } }
      @media only screen and (max-width: 768px) {
        .duatop-days .time {
          padding-top: 26px; } }
      @media only screen and (max-width: 480px) {
        .duatop-days .time {
          padding-top: 15px;
          padding-right: 40px;
          padding-left: 0;
          font-size: 22px; } }
      @media only screen and (max-width: 400px) {
        .duatop-days .time {
          padding-right: 20px; } }
  .duatop-table {
    width: 630px;
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-flow: column;
    -ms-flex-flow: column;
    flex-flow: column;
    color: #151b3b;
    font-size: 16px;
    text-align: center;
    margin: 165px 0 0 130px;
    height: 400px; }
    @media only screen and (max-width: 1100px) {
      .duatop-table {
        margin: 0 auto;
        width: 90%;
        height: 65%; } }
  @media only screen and (max-width: 1100px) and (max-width: 480px) {
    .duatop-table {
      width: 100%;
      font-size: 14px; } }
    .duatop-table thead {
      font-family: "Roboto Slab";
      font-size: 17px;
      background: #454d7d; }
      @media only screen and (max-width: 480px) {
        .duatop-table thead {
          font-size: 14px; } }
      .duatop-table thead tr td {
        color: #c3ebfa; }
    .duatop-table tr {
      width: 100%;
      display: table;
      table-layout: fixed; }
      .duatop-table tr:not(:last-child) {
        border-bottom: solid 1px #d4e6f5; }
      .duatop-table tr td {
        padding: 5px 5px 2px;
        text-align: center;
        color: #151b3b; }
    .duatop-table tbody {
      -webkit-box-flex: 1;
      -webkit-flex: 1 1 auto;
      -ms-flex: 1 1 auto;
      flex: 1 1 auto;
      display: block;
      height: 400px;
      overflow: auto; }
      .duatop-table tbody::-webkit-scrollbar-track {
        -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
        background-color: #fff;
        -webkit-border-radius: 5px;
        border-radius: 5px; }
      .duatop-table tbody::-webkit-scrollbar {
        width: 5px;
        background-color: #fff;
        -webkit-border-radius: 5px;
        border-radius: 5px; }
      .duatop-table tbody::-webkit-scrollbar-thumb {
        -webkit-border-radius: 5px;
        border-radius: 5px;
        background-color: #4e4540; }

/*--- Popup ---*/
.popup {
  opacity: 0;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  z-index: 1001;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
  -ms-flex-pack: center;
  justify-content: center;
  visibility: hidden;
  -webkit-transition: all 0.5s;
  -o-transition: all 0.5s;
  transition: all 0.5s; }
  .popup .popup-bg {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background: rgba(0, 0, 0, 0.7); }
  .popup.active {
    visibility: visible;
    opacity: 1; }
  .popup-close {
    padding: 0px;
    display: block;
    position: absolute;
    right: 0%;
    top: -65px; }
    .popup-close:hover {
      -webkit-filter: brightness(150%);
      filter: brightness(150%); }
  .popup-content {
    z-index: 2;
    -webkit-transform: scale(0);
    -ms-transform: scale(0);
    transform: scale(0);
    -webkit-transition: all 0.3s;
    -o-transition: all 0.3s;
    transition: all 0.3s;
    pointer-events: none;
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -webkit-align-items: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -webkit-justify-content: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
    -ms-flex-direction: column;
    flex-direction: column; }
  .popup.active .popup-content {
    -webkit-transform: scale(1);
    -ms-transform: scale(1);
    transform: scale(1);
    pointer-events: all; }

.popup-title {
  text-align: center;
  margin: 0 0 20px; }

.popup-thele {
  text-align: justify;
  width: 580px;
  height: 595px;
  max-width: 100%;
  background: url(../images/popup-bg.png) no-repeat center top/100% 100%;
  padding: 5% 3%; }
  @media only screen and (max-width: 780px) {
    .popup-thele {
      padding: 7% 7%; } }
  @media only screen and (max-width: 480px) {
    .popup-thele {
      padding: 12% 10% 15% 12%;
      height: 550px; } }
  .popup-thele table {
    font-size: 16px;
    width: 100%;
    border-collapse: collapse; }
    .popup-thele table thead {
      background: #000; }
      .popup-thele table thead td {
        text-transform: uppercase;
        font-weight: bold;
        color: #fffcef;
        padding: 5px;
        text-align: center; }
    .popup-thele table tbody tr:nth-child(odd) {
      background-color: #fffbea; }
    .popup-thele table tbody tr:nth-child(even) {
      background-color: #fffbea; }
    .popup-thele table td {
      border: solid 1px #333;
      text-transform: none;
      font-weight: normal;
      color: #000;
      padding: 5px;
      text-align: center; }
  .popup-thele .StaticMain {
    font-size: 16px;
    color: #69412d; }
    .popup-thele .StaticMain * {
      max-width: 100%; }

.popup-scroll {
  height: 100%;
  width: 100%;
  padding-right: 10px;
  overflow: auto; }
  .popup-scroll::-webkit-scrollbar-track {
    -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
    background-color: #2d2d2d;
    -webkit-border-radius: 5px;
    border-radius: 5px; }
  .popup-scroll::-webkit-scrollbar {
    width: 3px;
    background-color: #2d2d2d;
    -webkit-border-radius: 5px;
    border-radius: 5px; }
  .popup-scroll::-webkit-scrollbar-thumb {
    -webkit-border-radius: 5px;
    border-radius: 5px;
    background-color: #525252; }

.bgover {
  background: rgba(0, 0, 0, 0.7);
  position: fixed;
  width: 100%;
  height: 100%;
  z-index: 100;
  left: 0;
  top: 0;
  right: 0;
  bottom: 0; }

/**********
* Zoom in *
***********/
@-webkit-keyframes zoomIn {
  0% {
    -webkit-transform: scale(5);
    transform: scale(5);
    opacity: 0; }
  80% {
    -webkit-transform: scale(0.8);
    transform: scale(0.8);
    opacity: .8; }
  80% {
    -webkit-transform: scale(0.8);
    transform: scale(0.8); }
  90% {
    -webkit-transform: scale(1.1);
    transform: scale(1.1); }
  100% {
    -webkit-transform: scale(1);
    transform: scale(1);
    opacity: 1; } }

@keyframes zoomIn {
  0% {
    -webkit-transform: scale(5);
    transform: scale(5);
    opacity: 0; }
  80% {
    -webkit-transform: scale(0.8);
    transform: scale(0.8);
    opacity: .8; }
  80% {
    -webkit-transform: scale(0.8);
    transform: scale(0.8); }
  90% {
    -webkit-transform: scale(1.1);
    transform: scale(1.1); }
  100% {
    -webkit-transform: scale(1);
    transform: scale(1);
    opacity: 1; } }

.zoomIn {
  -webkit-transform: scale(5);
  -ms-transform: scale(5);
  transform: scale(5);
  opacity: 0; }

.zoomIn.go {
  -webkit-animation-name: zoomIn;
  animation-name: zoomIn;
  -webkit-animation-duration: .5s;
  animation-duration: .5s; }

/********
* ShakeUp *
********/
@-webkit-keyframes shakeUp2 {
  0%,
  10%,
  20%,
  30%,
  100% {
    -webkit-transform: translateY(0); }
  50%,
  70%,
  90% {
    -webkit-transform: translateY(-10px); }
  40%,
  60%,
  80% {
    -webkit-transform: translateY(10px); } }

@keyframes shakeUp2 {
  0%,
  50%,
  100% {
    -webkit-transform: translateY(0);
    transform: translateY(0); }
  70%,
  90% {
    -webkit-transform: translateY(-10px);
    transform: translateY(-10px); }
  60%,
  80% {
    -webkit-transform: translateY(10px);
    transform: translateY(10px); } }

.shakeUp2.go {
  -webkit-animation-name: shakeUp2;
  animation-name: shakeUp2; }

@-webkit-keyframes lanterna {
  0% {
    -webkit-transform: translate(0, 0) scale(1);
    transform: translate(0, 0) scale(1); }
  100% {
    -webkit-transform: translate(-20px, -40px) scale(1.1);
    transform: translate(-20px, -40px) scale(1.1); } }

@keyframes lanterna {
  0% {
    -webkit-transform: translate(0, 0) scale(1);
    -ms-transform: translate(0, 0) scale(1);
    transform: translate(0, 0) scale(1); }
  100% {
    -webkit-transform: translate(-20px, -40px) scale(1.1);
    -ms-transform: translate(-20px, -40px) scale(1.1);
    transform: translate(-20px, -40px) scale(1.1); } }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNldHRpbmcvX3ZhcmlhYmxlLnNjc3MiLCJ0aGVtZS9fbG9hZC1mb250cy5zY3NzIiwic2V0dGluZy9fcmVzZXQuc2NzcyIsInN0eWxlLmNzcyIsInZlbmRvci9fYW5pbWF0aW9ucy5zY3NzIiwidmVuZG9yL19mYW5jeWJveC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hudC1zY3NzLW5wbS9zcmMvc2Nzcy92ZW5kb3IvX2FuaW1hdGUuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9obnQtc2Nzcy1ucG0vc3JjL3Njc3MvdmVuZG9yL19hbmltYXRlLW15LW93bi5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hudC1zY3NzLW5wbS9zcmMvc2Nzcy92ZW5kb3IvX21peGlucy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hudC1zY3NzLW5wbS9zcmMvc2Nzcy92ZW5kb3IvX2V4dGVuZC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hudC1zY3NzLW5wbS9zcmMvc2Nzcy92ZW5kb3IvX2NvbW1vbi5zY3NzIiwidGhlbWUvX2NvbW1vbi5zY3NzIiwidGhlbWUvX3BhZ2VzLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsd0JBQXdCO0FDU3hCLCtGQUFZO0FEU1o7RUFDRTtJQUNFLGlCQUFnQixFQUdqQixFQUFBOztBRXZCSDtFQUNFLFVBQVM7RUFDVCxXQUFVO0VBQ1YsdUJBQXNCO0VBQ3RCLDRCQUEyQjtFQUMzQiwrQkFBOEI7RUFDOUIsMkJBQTBCLEVBQzNCOztBQVlEO0VBQ0UsZUFBYyxFQUNmOztBQUVEO0VBQ0Usa0NBQWlDO0VBQ2pDLGdCQUFlLEVBQ2hCOztBQUVEOztFQUVFLG9CQUFtQixFQUNwQjs7QUFFRDtFQUNFLG9CQUFtQjtFQUNuQixlQUFjO0VBQ2Qsa0JBQWlCO0VBQ2pCLFVBQVM7RUFDVCxjQUFhLEVBQ2Q7O0FBTkQ7RUFDRSxvQkFBbUI7RUFDbkIsZUFBYztFQUNkLGtCQUFpQjtFQUNqQixVQUFTO0VBQ1QsY0FBYSxF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RSxzREFBcUQ7SUFDckQsOENBQTZDLEVBQUEsRUFBQTs7QUFJakQ7RUFDRTtJQUNFLDRDQUEyQztJQUMzQyx3Q0FBdUM7SUFDdkMsb0NBQW1DLEVBQUE7RUFHckM7SUFDRSxzREFBcUQ7SUFDckQsa0RBQWlEO0lBQ2pELDhDQUE2QyxFQUFBLEVBQUEiLCJmaWxlIjoic3R5bGUuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLyotIEdsb2JhbCBWYXJpYWJsZXMgLSovXHJcbiRtYWluQ29sb3I6ICM3MjUyMmI7XHJcbiRtYWluTGlua0NvbG9yOiAjNGMwZTBkO1xyXG4kbWFpbkxpbmtDb2xvci1ob3ZlcjogbGlnaHRlbigkbWFpbkxpbmtDb2xvciwgMTAlKTtcclxuJGJhY2tncm91bmRDb2xvcjogI2Y4ZjJmMDtcclxuJGZvbnRTaXplSHRtbFRhZzogMTZweDtcclxuJGZvbnRTaXplOiAxcmVtOyAvLyA9PSAxNnB4XHJcbiRmb250Tm9ybWFsOiA0MDA7XHJcbiRmb250Qm9sZDogNTAwO1xyXG4kZm9udEJvbGRlcjogNzAwO1xyXG4kbGluZUhlaWdodDogMS41O1xyXG4kZm9udEZhbWlseTogU0Y7XHJcblxyXG4kZ3JpZC1ndXR0ZXItd2lkdGg6IDEwcHg7XHJcbiRjb250YWluZXItd2lkdGg6IDExNTZweDtcclxuXHJcblxyXG5cclxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgLmNvbnRhaW5lciB7XHJcbiAgICBtYXgtd2lkdGg6IDcyMHB4O1xyXG4gICAgLy8gbWF4LXdpZHRoOiAkY29udGFpbmVyLXdpZHRoICFpbXBvcnRhbnQ7XHJcbiAgICAvLyB3aWR0aDogJGNvbnRhaW5lci13aWR0aCAhaW1wb3J0YW50O1xyXG4gIH1cclxufVxyXG5cclxuIiwiLy8gQGZvbnQtZmFjZSB7XHJcbi8vICAgZm9udC1mYW1pbHk6IFwiU0ZcIjtcclxuLy8gICBzcmM6IHVybCguLi9mb250cy9TRi1Qcm8tRGlzcGxheS1SZWd1bGFyLmVvdCk7XHJcbi8vICAgc3JjOiB1cmwoLi4vZm9udHMvU0YtUHJvLURpc3BsYXktUmVndWxhci5lb3QjaWVmaXgpIGZvcm1hdChcImVvdFwiKSxcclxuLy8gICAgIHVybCguLi9mb250cy9TRi1Qcm8tRGlzcGxheS1SZWd1bGFyLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyksXHJcbi8vICAgICB1cmwoLi4vZm9udHMvU0YtUHJvLURpc3BsYXktUmVndWxhci53b2ZmKSBmb3JtYXQoJ3dvZmYnKSxcclxuLy8gICAgIHVybCguLi9mb250cy9TRi1Qcm8tRGlzcGxheS1SZWd1bGFyLnR0ZikgZm9ybWF0KCd0cnVldHlwZScpLFxyXG4vLyAgICAgdXJsKC4uL2ZvbnRzL1NGLVByby1EaXNwbGF5LVJlZ3VsYXIuc3ZnKSBmb3JtYXQoJ3N2ZycpO1xyXG4vLyB9XHJcbkBpbXBvcnQgdXJsKCdodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2NzczI/ZmFtaWx5PVJvYm90bytTbGFiOndnaHRAMTAwLi45MDAmZGlzcGxheT1zd2FwJyk7XHJcblxyXG5AZm9udC1mYWNlIHtcclxuICBmb250LWZhbWlseTogXCJTRlwiO1xyXG4gIHNyYzogdXJsKC4uL2ZvbnRzL1NGLVByby1EaXNwbGF5LVJlZ3VsYXIuZW90KTtcclxuICBzcmM6IHVybCguLi9mb250cy9TRi1Qcm8tRGlzcGxheS1SZWd1bGFyLmVvdCNpZWZpeCkgZm9ybWF0KFwiZW90XCIpLFxyXG4gICAgdXJsKC4uL2ZvbnRzL1NGLVByby1EaXNwbGF5LVJlZ3VsYXIud29mZjIpIGZvcm1hdCgnd29mZjInKSxcclxuICAgIHVybCguLi9mb250cy9TRi1Qcm8tRGlzcGxheS1SZWd1bGFyLndvZmYpIGZvcm1hdCgnd29mZicpLFxyXG4gICAgdXJsKC4uL2ZvbnRzL1NGLVByby1EaXNwbGF5LVJlZ3VsYXIudHRmKSBmb3JtYXQoJ3RydWV0eXBlJyksXHJcbiAgICB1cmwoLi4vZm9udHMvU0YtUHJvLURpc3BsYXktUmVndWxhci5zdmcpIGZvcm1hdCgnc3ZnJyk7XHJcbn0iLCIqIHtcclxuICBtYXJnaW46IDA7XHJcbiAgcGFkZGluZzogMDtcclxuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gIC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgLW1zLWJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbn1cclxuXHJcblxyXG5ib2R5IHtcclxuXHJcbiAgLy8gLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XHJcbiAgLy8gLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcclxuICAvLyB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVTcGVlZDtcclxuICAvLyBvdmVyZmxvdy14OiBoaWRkZW47XHJcbiAgLy8gbWFyZ2luOiAwO1xyXG59XHJcblxyXG5tYWluIHtcclxuICBkaXNwbGF5OiBibG9jaztcclxufVxyXG5cclxucHJlIHtcclxuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XHJcbiAgZm9udC1zaXplOiAxcmVtO1xyXG59XHJcblxyXG5iLFxyXG5zdHJvbmcge1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkZXI7XHJcbn1cclxuXHJcbjo6c2VsZWN0aW9uIHtcclxuICBiYWNrZ3JvdW5kOiAjMDA4OGZmO1xyXG4gIGNvbG9yOiAjZmZmZmZmO1xyXG4gIHRleHQtc2hhZG93OiBub25lO1xyXG4gIGJvcmRlcjogMDtcclxuICBvdXRsaW5lOiBub25lO1xyXG59XHJcblxyXG5jb2RlLFxyXG5rYmQsXHJcbnNhbXAge1xyXG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcclxuICBmb250LXNpemU6IDFyZW07XHJcbn1cclxuXHJcbnNtYWxsIHtcclxuICBmb250LXNpemU6IDgwJTtcclxufVxyXG5cclxuc3ViLFxyXG5zdXAge1xyXG4gIGZvbnQtc2l6ZTogNzUlO1xyXG4gIGxpbmUtaGVpZ2h0OiAwO1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XHJcbn1cclxuXHJcbnN1YiB7XHJcbiAgYm90dG9tOiAtMC4yNWVtO1xyXG59XHJcblxyXG5zdXAge1xyXG4gIHRvcDogLTAuNWVtO1xyXG59XHJcblxyXG5pbWcge1xyXG4gIG1heC13aWR0aDogMTAwJTtcclxuICBoZWlnaHQ6IGF1dG87XHJcbiAgYm9yZGVyOiAwO1xyXG59XHJcblxyXG5idXR0b24sXHJcbmlucHV0LFxyXG5vcHRncm91cCxcclxuc2VsZWN0LFxyXG50ZXh0YXJlYSB7XHJcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XHJcbiAgZm9udC1zaXplOiAxMDAlO1xyXG4gIGxpbmUtaGVpZ2h0OiAxLjE1O1xyXG4gIG1hcmdpbjogMDtcclxuXHJcbiAgJjpmb2N1cyB7XHJcbiAgICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG59XHJcblxyXG5idXR0b24sXHJcbmlucHV0IHtcclxuICBvdmVyZmxvdzogdmlzaWJsZTtcclxufVxyXG5cclxuYnV0dG9uLFxyXG5zZWxlY3Qge1xyXG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xyXG59XHJcblxyXG5idXR0b24sXHJcblt0eXBlPVwiYnV0dG9uXCJdLFxyXG5bdHlwZT1cInJlc2V0XCJdLFxyXG5bdHlwZT1cInN1Ym1pdFwiXSB7XHJcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XHJcbn1cclxuXHJcbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcclxuW3R5cGU9XCJidXR0b25cIl06Oi1tb3otZm9jdXMtaW5uZXIsXHJcblt0eXBlPVwicmVzZXRcIl06Oi1tb3otZm9jdXMtaW5uZXIsXHJcblt0eXBlPVwic3VibWl0XCJdOjotbW96LWZvY3VzLWlubmVyIHtcclxuICBib3JkZXItc3R5bGU6IG5vbmU7XHJcbiAgcGFkZGluZzogMDtcclxufVxyXG5cclxuYnV0dG9uOi1tb3otZm9jdXNyaW5nLFxyXG5bdHlwZT1cImJ1dHRvblwiXTotbW96LWZvY3VzcmluZyxcclxuW3R5cGU9XCJyZXNldFwiXTotbW96LWZvY3VzcmluZyxcclxuW3R5cGU9XCJzdWJtaXRcIl06LW1vei1mb2N1c3Jpbmcge1xyXG4gIG91dGxpbmU6IDFweCBkb3R0ZWQgIzAwODhmZjtcclxufVxyXG5cclxuYnV0dG9uIHtcclxuXHJcbiAgJjphY3RpdmUsXHJcbiAgJjpmb2N1cyB7XHJcbiAgICBvdXRsaW5lOiBub25lO1xyXG4gICAgYm9yZGVyOiBub25lO1xyXG4gIH1cclxufVxyXG5cclxuZmllbGRzZXQge1xyXG4gIHBhZGRpbmc6IDAuMzVyZW0gMC43NXJlbSAwLjYyNXJlbTtcclxufVxyXG5cclxubGVnZW5kIHtcclxuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gIGNvbG9yOiBpbmhlcml0O1xyXG4gIGRpc3BsYXk6IHRhYmxlO1xyXG4gIG1heC13aWR0aDogMTAwJTtcclxuICBwYWRkaW5nOiAwO1xyXG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XHJcbn1cclxuXHJcbnByb2dyZXNzIHtcclxuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XHJcbn1cclxuXHJcbnRleHRhcmVhIHtcclxuICBvdmVyZmxvdzogYXV0bztcclxufVxyXG5cclxuW3R5cGU9XCJjaGVja2JveFwiXSxcclxuW3R5cGU9XCJyYWRpb1wiXSB7XHJcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAvKiAxICovXHJcbiAgcGFkZGluZzogMDtcclxuICAvKiAyICovXHJcbn1cclxuXHJcblt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxyXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XHJcbiAgaGVpZ2h0OiBhdXRvO1xyXG59XHJcblxyXG5bdHlwZT1cInNlYXJjaFwiXSB7XHJcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XHJcbiAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7XHJcbn1cclxuXHJcblt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcclxuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XHJcbn1cclxuXHJcbjo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xyXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xyXG4gIGZvbnQ6IGluaGVyaXQ7XHJcbn1cclxuXHJcbmRldGFpbHMge1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG59XHJcblxyXG5zdW1tYXJ5IHtcclxuICBkaXNwbGF5OiBsaXN0LWl0ZW07XHJcbn1cclxuXHJcbnRlbXBsYXRlIHtcclxuICBkaXNwbGF5OiBub25lO1xyXG59XHJcblxyXG5baGlkZGVuXSB7XHJcbiAgZGlzcGxheTogbm9uZTtcclxufVxyXG5cclxuaWZyYW1lIHtcclxuICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcclxufVxyXG5cclxuaDEsXHJcbmgyLFxyXG5oMyxcclxuaDQsXHJcbmg1LFxyXG5oNiB7XHJcbiAgbWFyZ2luOiAwO1xyXG4gIHBhZGRpbmc6IDA7XHJcbiAgZm9udC13ZWlnaHQ6IDUwMDtcclxufVxyXG5cclxuXHJcblxyXG51bCB7XHJcbiAgbWFyZ2luOiAwO1xyXG4gIHBhZGRpbmc6IDA7XHJcblxyXG4gIGxpIHtcclxuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XHJcbiAgfVxyXG59XHJcblxyXG5maWd1cmUge1xyXG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbltjbGFzcyAqPVwiaWNvbnMtXCJdIHtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbn0iLCIvKi0gR2xvYmFsIFZhcmlhYmxlcyAtKi9cbkBpbXBvcnQgdXJsKFwiaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3MyP2ZhbWlseT1Sb2JvdG8rU2xhYjp3Z2h0QDEwMC4uOTAwJmRpc3BsYXk9c3dhcFwiKTtcbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAuY29udGFpbmVyIHtcbiAgICBtYXgtd2lkdGg6IDcyMHB4OyB9IH1cblxuKiB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC1tcy1ib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG5cbm1haW4ge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG5wcmUge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gIGZvbnQtc2l6ZTogMXJlbTsgfVxuXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGRlcjsgfVxuXG46OnNlbGVjdGlvbiB7XG4gIGJhY2tncm91bmQ6ICMwMDg4ZmY7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgYm9yZGVyOiAwO1xuICBvdXRsaW5lOiBub25lOyB9XG5cbmNvZGUsXG5rYmQsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICBmb250LXNpemU6IDFyZW07IH1cblxuc21hbGwge1xuICBmb250LXNpemU6IDgwJTsgfVxuXG5zdWIsXG5zdXAge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyB9XG5cbnN1YiB7XG4gIGJvdHRvbTogLTAuMjVlbTsgfVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTsgfVxuXG5pbWcge1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbiAgYm9yZGVyOiAwOyB9XG5cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXNpemU6IDEwMCU7XG4gIGxpbmUtaGVpZ2h0OiAxLjE1O1xuICBtYXJnaW46IDA7IH1cbiAgYnV0dG9uOmZvY3VzLFxuICBpbnB1dDpmb2N1cyxcbiAgb3B0Z3JvdXA6Zm9jdXMsXG4gIHNlbGVjdDpmb2N1cyxcbiAgdGV4dGFyZWE6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmUgIWltcG9ydGFudDsgfVxuXG5idXR0b24sXG5pbnB1dCB7XG4gIG92ZXJmbG93OiB2aXNpYmxlOyB9XG5cbmJ1dHRvbixcbnNlbGVjdCB7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lOyB9XG5cbmJ1dHRvbixcblt0eXBlPVwiYnV0dG9uXCJdLFxuW3R5cGU9XCJyZXNldFwiXSxcblt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IH1cblxuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJidXR0b25cIl06Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cInJlc2V0XCJdOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJzdWJtaXRcIl06Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG4gIHBhZGRpbmc6IDA7IH1cblxuYnV0dG9uOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJidXR0b25cIl06LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cInJlc2V0XCJdOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJzdWJtaXRcIl06LW1vei1mb2N1c3Jpbmcge1xuICBvdXRsaW5lOiAxcHggZG90dGVkICMwMDg4ZmY7IH1cblxuYnV0dG9uOmFjdGl2ZSwgYnV0dG9uOmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbiAgYm9yZGVyOiBub25lOyB9XG5cbmZpZWxkc2V0IHtcbiAgcGFkZGluZzogMC4zNXJlbSAwLjc1cmVtIDAuNjI1cmVtOyB9XG5cbmxlZ2VuZCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAwO1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsOyB9XG5cbnByb2dyZXNzIHtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyB9XG5cbnRleHRhcmVhIHtcbiAgb3ZlcmZsb3c6IGF1dG87IH1cblxuW3R5cGU9XCJjaGVja2JveFwiXSxcblt0eXBlPVwicmFkaW9cIl0ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAvKiAxICovXG4gIHBhZGRpbmc6IDA7XG4gIC8qIDIgKi8gfVxuXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcblt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgaGVpZ2h0OiBhdXRvOyB9XG5cblt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4OyB9XG5cblt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOyB9XG5cbjo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbiAgZm9udDogaW5oZXJpdDsgfVxuXG5kZXRhaWxzIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGxpc3QtaXRlbTsgfVxuXG50ZW1wbGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuW2hpZGRlbl0ge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbmlmcmFtZSB7XG4gIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9XG5cbmgxLFxuaDIsXG5oMyxcbmg0LFxuaDUsXG5oNiB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgZm9udC13ZWlnaHQ6IDUwMDsgfVxuXG51bCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDsgfVxuICB1bCBsaSB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTsgfVxuXG5maWd1cmUge1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9XG5cbltjbGFzcyo9XCJpY29ucy1cIl0ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cblxuLyphbmltYXRpb25zKi9cbi8qKioqKioqKioqKioqKioqKipcclxuKiBCb3VuY2UgaW4gcmlnaHQgKlxyXG4qKioqKioqKioqKioqKioqKioqL1xuLmFuaW1hdGVkIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDFzO1xuICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAtd2Via2l0LWFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7XG4gIGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7IH1cblxuLnNsb3cge1xuICAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogMS41cztcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxLjVzO1xuICAtd2Via2l0LWFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7XG4gIGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7IH1cblxuLnNsb3dlciB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiAycztcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAycztcbiAgLXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOiBib3RoO1xuICBhbmltYXRpb24tZmlsbC1tb2RlOiBib3RoOyB9XG5cbi5zbG93ZXN0IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDNzO1xuICBhbmltYXRpb24tZHVyYXRpb246IDNzO1xuICAtd2Via2l0LWFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7XG4gIGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7IH1cblxuLyogQWRkZWQgYnkgQW5keSBNZWV0YW4gKi9cbi5kZWxheS0yNTAge1xuICAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogMC4yNXM7XG4gIC1tb3otYW5pbWF0aW9uLWRlbGF5OiAwLjI1cztcbiAgLW8tYW5pbWF0aW9uLWRlbGF5OiAwLjI1cztcbiAgYW5pbWF0aW9uLWRlbGF5OiAwLjI1czsgfVxuXG4uZGVsYXktNTAwIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IDAuNXM7XG4gIC1tb3otYW5pbWF0aW9uLWRlbGF5OiAwLjVzO1xuICAtby1hbmltYXRpb24tZGVsYXk6IDAuNXM7XG4gIGFuaW1hdGlvbi1kZWxheTogMC41czsgfVxuXG4uZGVsYXktNzUwIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IDAuNzVzO1xuICAtbW96LWFuaW1hdGlvbi1kZWxheTogMC43NXM7XG4gIC1vLWFuaW1hdGlvbi1kZWxheTogMC43NXM7XG4gIGFuaW1hdGlvbi1kZWxheTogMC43NXM7IH1cblxuLmRlbGF5LTEwMDAge1xuICAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogMS4wcztcbiAgLW1vei1hbmltYXRpb24tZGVsYXk6IDEuMHM7XG4gIC1vLWFuaW1hdGlvbi1kZWxheTogMS4wcztcbiAgYW5pbWF0aW9uLWRlbGF5OiAxLjBzOyB9XG5cbi5kZWxheS0xMjUwIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IDEuMjVzO1xuICAtbW96LWFuaW1hdGlvbi1kZWxheTogMS4yNXM7XG4gIC1vLWFuaW1hdGlvbi1kZWxheTogMS4yNXM7XG4gIGFuaW1hdGlvbi1kZWxheTogMS4yNXM7IH1cblxuLmRlbGF5LTE1MDAge1xuICAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogMS41cztcbiAgLW1vei1hbmltYXRpb24tZGVsYXk6IDEuNXM7XG4gIC1vLWFuaW1hdGlvbi1kZWxheTogMS41cztcbiAgYW5pbWF0aW9uLWRlbGF5OiAxLjVzOyB9XG5cbi5kZWxheS0xNzUwIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IDEuNzVzO1xuICAtbW96LWFuaW1hdGlvbi1kZWxheTogMS43NXM7XG4gIC1vLWFuaW1hdGlvbi1kZWxheTogMS43NXM7XG4gIGFuaW1hdGlvbi1kZWxheTogMS43NXM7IH1cblxuLmRlbGF5LTIwMDAge1xuICAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogMi4wcztcbiAgLW1vei1hbmltYXRpb24tZGVsYXk6IDIuMHM7XG4gIC1vLWFuaW1hdGlvbi1kZWxheTogMi4wcztcbiAgYW5pbWF0aW9uLWRlbGF5OiAyLjBzOyB9XG5cbi5kZWxheS0yNTAwIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IDIuNXM7XG4gIC1tb3otYW5pbWF0aW9uLWRlbGF5OiAyLjVzO1xuICAtby1hbmltYXRpb24tZGVsYXk6IDIuNXM7XG4gIGFuaW1hdGlvbi1kZWxheTogMi41czsgfVxuXG4uZGVsYXktMjAwMCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAyLjBzO1xuICAtbW96LWFuaW1hdGlvbi1kZWxheTogMi4wcztcbiAgLW8tYW5pbWF0aW9uLWRlbGF5OiAyLjBzO1xuICBhbmltYXRpb24tZGVsYXk6IDIuMHM7IH1cblxuLmRlbGF5LTI1MDAge1xuICAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogMi41cztcbiAgLW1vei1hbmltYXRpb24tZGVsYXk6IDIuNXM7XG4gIC1vLWFuaW1hdGlvbi1kZWxheTogMi41cztcbiAgYW5pbWF0aW9uLWRlbGF5OiAyLjVzOyB9XG5cbi5kZWxheS0zMDAwIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IDMuMHM7XG4gIC1tb3otYW5pbWF0aW9uLWRlbGF5OiAzLjBzO1xuICAtby1hbmltYXRpb24tZGVsYXk6IDMuMHM7XG4gIGFuaW1hdGlvbi1kZWxheTogMy4wczsgfVxuXG4uZGVsYXktMzUwMCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAzLjVzO1xuICAtbW96LWFuaW1hdGlvbi1kZWxheTogMy41cztcbiAgLW8tYW5pbWF0aW9uLWRlbGF5OiAzLjVzO1xuICBhbmltYXRpb24tZGVsYXk6IDMuNXM7IH1cblxuLmJvdW5jZUluUmlnaHQsIC5ib3VuY2VJbkxlZnQsIC5ib3VuY2VJblVwLCAuYm91bmNlSW5Eb3duIHtcbiAgb3BhY2l0eTogMDtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNDAwcHgpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNDAwcHgpOyB9XG5cbi5mYWRlSW5SaWdodCwgLmZhZGVJbkxlZnQsIC5mYWRlSW5VcCwgLmZhZGVJbkRvd24ge1xuICBvcGFjaXR5OiAwO1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCg0MDBweCk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg0MDBweCk7IH1cblxuLmZsaXBJblgsIC5mbGlwSW5ZLCAucm90YXRlSW4sIC5yb3RhdGVJblVwTGVmdCwgLnJvdGF0ZUluVXBSaWdodCwgLnJvdGF0ZUluRG93bkxlZnQsIC5yb3RhdGVEb3duVXBSaWdodCwgLnJvbGxJbiB7XG4gIG9wYWNpdHk6IDA7IH1cblxuLmxpZ2h0U3BlZWRJblJpZ2h0LCAubGlnaHRTcGVlZEluTGVmdCB7XG4gIG9wYWNpdHk6IDA7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDQwMHB4KTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDQwMHB4KTsgfVxuXG4vKioqKioqKioqKipcclxuKiBib3VuY2VJbiAqXHJcbioqKioqKioqKioqKi9cbkAtd2Via2l0LWtleWZyYW1lcyBib3VuY2VJbiB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjMpOyB9XG4gIDUwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMS4wNSk7IH1cbiAgNzAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMC45KTsgfVxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7IH0gfVxuXG5Aa2V5ZnJhbWVzIGJvdW5jZUluIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjMpOyB9XG4gIDUwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDUpOyB9XG4gIDcwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjkpOyB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7IH0gfVxuXG4uYm91bmNlSW4uZ28ge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBib3VuY2VJbjtcbiAgYW5pbWF0aW9uLW5hbWU6IGJvdW5jZUluOyB9XG5cbi8qKioqKioqKioqKioqKioqXHJcbiogYm91bmNlSW5SaWdodCAqXHJcbioqKioqKioqKioqKioqKiovXG5ALXdlYmtpdC1rZXlmcmFtZXMgYm91bmNlSW5SaWdodCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDQwMHB4KTsgfVxuICA2MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0zMHB4KTsgfVxuICA4MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwcHgpOyB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IH0gfVxuXG5Aa2V5ZnJhbWVzIGJvdW5jZUluUmlnaHQge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNDAwcHgpOyB9XG4gIDYwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0zMHB4KTsgfVxuICA4MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMHB4KTsgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgfSB9XG5cbi5ib3VuY2VJblJpZ2h0LmdvIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogYm91bmNlSW5SaWdodDtcbiAgYW5pbWF0aW9uLW5hbWU6IGJvdW5jZUluUmlnaHQ7IH1cblxuLyoqKioqKioqKioqKioqKioqKlxyXG4qIEJvdW5jZSBpbiBsZWZ0ICpcclxuKioqKioqKioqKioqKioqKioqKi9cbkAtd2Via2l0LWtleWZyYW1lcyBib3VuY2VJbkxlZnQge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNDAwcHgpOyB9XG4gIDYwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMzBweCk7IH1cbiAgODAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTBweCk7IH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgfSB9XG5cbkBrZXlmcmFtZXMgYm91bmNlSW5MZWZ0IHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC00MDBweCk7IH1cbiAgNjAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMzBweCk7IH1cbiAgODAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwcHgpOyB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyB9IH1cblxuLmJvdW5jZUluTGVmdC5nbyB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGJvdW5jZUluTGVmdDtcbiAgYW5pbWF0aW9uLW5hbWU6IGJvdW5jZUluTGVmdDsgfVxuXG4vKioqKioqKioqKioqKioqKioqXHJcbiogQm91bmNlIGluIHVwICpcclxuKioqKioqKioqKioqKioqKioqKi9cbkAtd2Via2l0LWtleWZyYW1lcyBib3VuY2VJblVwIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNDAwcHgpOyB9XG4gIDYwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTMwcHgpOyB9XG4gIDgwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTBweCk7IH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgfSB9XG5cbkBrZXlmcmFtZXMgYm91bmNlSW5VcCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg0MDBweCk7IH1cbiAgNjAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTMwcHgpOyB9XG4gIDgwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwcHgpOyB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9IH1cblxuLmJvdW5jZUluVXAuZ28ge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBib3VuY2VJblVwO1xuICBhbmltYXRpb24tbmFtZTogYm91bmNlSW5VcDsgfVxuXG4vKioqKioqKioqKioqKioqKioqXHJcbiogQm91bmNlIGluIGRvd24gKlxyXG4qKioqKioqKioqKioqKioqKioqL1xuQC13ZWJraXQta2V5ZnJhbWVzIGJvdW5jZUluRG93biB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC00MDBweCk7IH1cbiAgNjAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgzMHB4KTsgfVxuICA4MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMHB4KTsgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9IH1cblxuQGtleWZyYW1lcyBib3VuY2VJbkRvd24ge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTQwMHB4KTsgfVxuICA2MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgzMHB4KTsgfVxuICA4MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTBweCk7IH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH0gfVxuXG4uYm91bmNlSW5Eb3duLmdvIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogYm91bmNlSW5Eb3duO1xuICBhbmltYXRpb24tbmFtZTogYm91bmNlSW5Eb3duOyB9XG5cbi8qKioqKioqKioqXHJcbiogRmFkZSBJbiAqXHJcbioqKioqKioqKiovXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZUluIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7IH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICBkaXNwbGF5OiBibG9jazsgfSB9XG5cbkBrZXlmcmFtZXMgZmFkZUluIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7IH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICBkaXNwbGF5OiBibG9jazsgfSB9XG5cbi5mYWRlSW4ge1xuICBvcGFjaXR5OiAwOyB9XG5cbi5mYWRlSW4uZ28ge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmYWRlSW47XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlSW47IH1cblxuLyoqKioqKioqKipcclxuKiBHcm93IGluICpcclxuKioqKioqKioqKiovXG5ALXdlYmtpdC1rZXlmcmFtZXMgZ3Jvd0luIHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjIpO1xuICAgIG9wYWNpdHk6IDA7IH1cbiAgNTAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMS4yKTsgfVxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgb3BhY2l0eTogMTsgfSB9XG5cbkBrZXlmcmFtZXMgZ3Jvd0luIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC4yKTtcbiAgICBvcGFjaXR5OiAwOyB9XG4gIDUwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjIpOyB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgb3BhY2l0eTogMTsgfSB9XG5cbi5ncm93SW4ge1xuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMC4yKTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjIpO1xuICBvcGFjaXR5OiAwOyB9XG5cbi5ncm93SW4uZ28ge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBncm93SW47XG4gIGFuaW1hdGlvbi1uYW1lOiBncm93SW47IH1cblxuLyoqKioqKioqXHJcbiogU2hha2UgKlxyXG4qKioqKioqKi9cbkAtd2Via2l0LWtleWZyYW1lcyBzaGFrZSB7XG4gIDAlLCAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgfVxuICAxMCUsIDMwJSwgNTAlLCA3MCUsIDkwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwcHgpOyB9XG4gIDIwJSwgNDAlLCA2MCUsIDgwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTBweCk7IH0gfVxuXG5Aa2V5ZnJhbWVzIHNoYWtlIHtcbiAgMCUsIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgfVxuICAxMCUsIDMwJSwgNTAlLCA3MCUsIDkwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMHB4KTsgfVxuICAyMCUsIDQwJSwgNjAlLCA4MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMHB4KTsgfSB9XG5cbi5zaGFrZS5nbyB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHNoYWtlO1xuICBhbmltYXRpb24tbmFtZTogc2hha2U7IH1cblxuLyoqKioqKioqXHJcbiogU2hha2VVcCAqXHJcbioqKioqKioqL1xuQC13ZWJraXQta2V5ZnJhbWVzIHNoYWtlVXAge1xuICAwJSwgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH1cbiAgMTAlLCAzMCUsIDUwJSwgNzAlLCA5MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMHB4KTsgfVxuICAyMCUsIDQwJSwgNjAlLCA4MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwcHgpOyB9IH1cblxuQGtleWZyYW1lcyBzaGFrZVVwIHtcbiAgMCUsIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgfVxuICAxMCUsIDMwJSwgNTAlLCA3MCUsIDkwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMHB4KTsgfVxuICAyMCUsIDQwJSwgNjAlLCA4MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMHB4KTsgfSB9XG5cbi5zaGFrZVVwLmdvIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogc2hha2VVcDtcbiAgYW5pbWF0aW9uLW5hbWU6IHNoYWtlVXA7IH1cblxuLyoqKioqKioqKioqKipcclxuKiBGYWRlSW5MZWZ0ICpcclxuKioqKioqKioqKioqKi9cbkAtd2Via2l0LWtleWZyYW1lcyBmYWRlSW5MZWZ0IHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTQwMHB4KTsgfVxuICA1MCUge1xuICAgIG9wYWNpdHk6IDAuMzsgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyB9IH1cblxuQGtleWZyYW1lcyBmYWRlSW5MZWZ0IHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC00MDBweCk7IH1cbiAgNTAlIHtcbiAgICBvcGFjaXR5OiAwLjM7IH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IH0gfVxuXG4uZmFkZUluTGVmdCB7XG4gIG9wYWNpdHk6IDA7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC00MDBweCk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNDAwcHgpOyB9XG5cbi5mYWRlSW5MZWZ0LmdvIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmFkZUluTGVmdDtcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVJbkxlZnQ7IH1cblxuLyoqKioqKioqKioqKipcclxuKiBGYWRlSW5SaWdodCAqXHJcbioqKioqKioqKioqKiovXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZUluUmlnaHQge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCg0MDBweCk7IH1cbiAgNTAlIHtcbiAgICBvcGFjaXR5OiAwLjM7IH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgfSB9XG5cbkBrZXlmcmFtZXMgZmFkZUluUmlnaHQge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNDAwcHgpOyB9XG4gIDUwJSB7XG4gICAgb3BhY2l0eTogMC4zOyB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyB9IH1cblxuLmZhZGVJblJpZ2h0IHtcbiAgb3BhY2l0eTogMDtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNDAwcHgpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNDAwcHgpOyB9XG5cbi5mYWRlSW5SaWdodC5nbyB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZhZGVJblJpZ2h0O1xuICBhbmltYXRpb24tbmFtZTogZmFkZUluUmlnaHQ7IH1cblxuLyoqKioqKioqKioqKipcclxuKiBGYWRlSW5VcCAqXHJcbioqKioqKioqKioqKiovXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZUluVXAge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSg0MDBweCk7IH1cbiAgNTAlIHtcbiAgICBvcGFjaXR5OiAwLjM7IH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgfSB9XG5cbkBrZXlmcmFtZXMgZmFkZUluVXAge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNDAwcHgpOyB9XG4gIDUwJSB7XG4gICAgb3BhY2l0eTogMC4zOyB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9IH1cblxuLmZhZGVJblVwIHtcbiAgb3BhY2l0eTogMDtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNDAwcHgpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNDAwcHgpOyB9XG5cbi5mYWRlSW5VcC5nbyB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZhZGVJblVwO1xuICBhbmltYXRpb24tbmFtZTogZmFkZUluVXA7IH1cblxuLyoqKioqKioqKioqKipcclxuKiBGYWRlSW5Eb3duICpcclxuKioqKioqKioqKioqKi9cbkAtd2Via2l0LWtleWZyYW1lcyBmYWRlSW5Eb3duIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTQwMHB4KTsgfVxuICA1MCUge1xuICAgIG9wYWNpdHk6IDAuMzsgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9IH1cblxuQGtleWZyYW1lcyBmYWRlSW5Eb3duIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC00MDBweCk7IH1cbiAgNTAlIHtcbiAgICBvcGFjaXR5OiAwLjM7IH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH0gfVxuXG4uZmFkZUluRG93biB7XG4gIG9wYWNpdHk6IDA7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC00MDBweCk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNDAwcHgpOyB9XG5cbi5mYWRlSW5Eb3duLmdvIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmFkZUluRG93bjtcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVJbkRvd247IH1cblxuLyoqKioqKioqKioqKioqKioqXHJcbiogcm90YXRlSW4gKlxyXG4qKioqKioqKioqKioqKioqKi9cbkAtd2Via2l0LWtleWZyYW1lcyByb3RhdGVJbiB7XG4gIDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXI7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgtMjAwZGVnKTtcbiAgICBvcGFjaXR5OiAwOyB9XG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGNlbnRlcjtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDApO1xuICAgIG9wYWNpdHk6IDE7IH0gfVxuXG5Aa2V5ZnJhbWVzIHJvdGF0ZUluIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXI7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTIwMGRlZyk7XG4gICAgb3BhY2l0eTogMDsgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDApO1xuICAgIG9wYWNpdHk6IDE7IH0gfVxuXG4ucm90YXRlSW4uZ28ge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiByb3RhdGVJbjtcbiAgYW5pbWF0aW9uLW5hbWU6IHJvdGF0ZUluOyB9XG5cbi8qKioqKioqKioqKioqKioqKlxyXG4qIHJvdGF0ZUluVXBMZWZ0ICpcclxuKioqKioqKioqKioqKioqKiovXG5ALXdlYmtpdC1rZXlmcmFtZXMgcm90YXRlSW5VcExlZnQge1xuICAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcbiAgICBvcGFjaXR5OiAwOyB9XG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwKTtcbiAgICBvcGFjaXR5OiAxOyB9IH1cblxuQGtleWZyYW1lcyByb3RhdGVJblVwTGVmdCB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG4gICAgb3BhY2l0eTogMDsgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwKTtcbiAgICBvcGFjaXR5OiAxOyB9IH1cblxuLnJvdGF0ZUluVXBMZWZ0LmdvIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogcm90YXRlSW5VcExlZnQ7XG4gIGFuaW1hdGlvbi1uYW1lOiByb3RhdGVJblVwTGVmdDsgfVxuXG4vKioqKioqKioqKioqKioqKioqKlxyXG4qIHJvdGF0ZUluRG93bkxlZnQgKlxyXG4qKioqKioqKioqKioqKioqKioqL1xuQC13ZWJraXQta2V5ZnJhbWVzIHJvdGF0ZUluRG93bkxlZnQge1xuICAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XG4gICAgb3BhY2l0eTogMDsgfVxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMCk7XG4gICAgb3BhY2l0eTogMTsgfSB9XG5cbkBrZXlmcmFtZXMgcm90YXRlSW5Eb3duTGVmdCB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuICAgIG9wYWNpdHk6IDA7IH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMCk7XG4gICAgb3BhY2l0eTogMTsgfSB9XG5cbi5yb3RhdGVJbkRvd25MZWZ0LmdvIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogcm90YXRlSW5Eb3duTGVmdDtcbiAgYW5pbWF0aW9uLW5hbWU6IHJvdGF0ZUluRG93bkxlZnQ7IH1cblxuLyoqKioqKioqKioqKioqKioqKlxyXG4qIHJvdGF0ZUluVXBSaWdodCAqXHJcbioqKioqKioqKioqKioqKioqKiovXG5ALXdlYmtpdC1rZXlmcmFtZXMgcm90YXRlSW5VcFJpZ2h0IHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbiAgICBvcGFjaXR5OiAwOyB9XG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMCk7XG4gICAgb3BhY2l0eTogMTsgfSB9XG5cbkBrZXlmcmFtZXMgcm90YXRlSW5VcFJpZ2h0IHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuICAgIG9wYWNpdHk6IDA7IH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDApO1xuICAgIG9wYWNpdHk6IDE7IH0gfVxuXG4ucm90YXRlSW5VcFJpZ2h0LmdvIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogcm90YXRlSW5VcFJpZ2h0O1xuICBhbmltYXRpb24tbmFtZTogcm90YXRlSW5VcFJpZ2h0OyB9XG5cbi8qKioqKioqKioqKioqKioqKioqKlxyXG4qIHJvdGF0ZUluRG93blJpZ2h0ICpcclxuKioqKioqKioqKioqKioqKioqKiovXG5ALXdlYmtpdC1rZXlmcmFtZXMgcm90YXRlSW5Eb3duUmlnaHQge1xuICAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG4gICAgb3BhY2l0eTogMDsgfVxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDApO1xuICAgIG9wYWNpdHk6IDE7IH0gfVxuXG5Aa2V5ZnJhbWVzIHJvdGF0ZUluRG93blJpZ2h0IHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG4gICAgb3BhY2l0eTogMDsgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMCk7XG4gICAgb3BhY2l0eTogMTsgfSB9XG5cbi5yb3RhdGVJbkRvd25SaWdodC5nbyB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHJvdGF0ZUluRG93blJpZ2h0O1xuICBhbmltYXRpb24tbmFtZTogcm90YXRlSW5Eb3duUmlnaHQ7IH1cblxuLyoqKioqKioqKlxyXG4qIHJvbGxJbiAqXHJcbioqKioqKioqKiovXG5ALXdlYmtpdC1rZXlmcmFtZXMgcm9sbEluIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpIHJvdGF0ZSgtMTIwZGVnKTsgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDBweCkgcm90YXRlKDBkZWcpOyB9IH1cblxuQGtleWZyYW1lcyByb2xsSW4ge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpIHJvdGF0ZSgtMTIwZGVnKTsgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwcHgpIHJvdGF0ZSgwZGVnKTsgfSB9XG5cbi5yb2xsSW4uZ28ge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiByb2xsSW47XG4gIGFuaW1hdGlvbi1uYW1lOiByb2xsSW47IH1cblxuLyoqKioqKioqKlxyXG4qIHdpZ2dsZSAqXHJcbioqKioqKioqKiovXG5ALXdlYmtpdC1rZXlmcmFtZXMgd2lnZ2xlIHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBza2V3WCg5ZGVnKTsgfVxuICAxMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBza2V3WCgtOGRlZyk7IH1cbiAgMjAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2tld1goN2RlZyk7IH1cbiAgMzAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2tld1goLTZkZWcpOyB9XG4gIDQwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNrZXdYKDVkZWcpOyB9XG4gIDUwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNrZXdYKC00ZGVnKTsgfVxuICA2MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBza2V3WCgzZGVnKTsgfVxuICA3MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBza2V3WCgtMmRlZyk7IH1cbiAgODAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2tld1goMWRlZyk7IH1cbiAgOTAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2tld1goMGRlZyk7IH1cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNrZXdYKDBkZWcpOyB9IH1cblxuQGtleWZyYW1lcyB3aWdnbGUge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiBza2V3WCg5ZGVnKTsgfVxuICAxMCUge1xuICAgIHRyYW5zZm9ybTogc2tld1goLThkZWcpOyB9XG4gIDIwJSB7XG4gICAgdHJhbnNmb3JtOiBza2V3WCg3ZGVnKTsgfVxuICAzMCUge1xuICAgIHRyYW5zZm9ybTogc2tld1goLTZkZWcpOyB9XG4gIDQwJSB7XG4gICAgdHJhbnNmb3JtOiBza2V3WCg1ZGVnKTsgfVxuICA1MCUge1xuICAgIHRyYW5zZm9ybTogc2tld1goLTRkZWcpOyB9XG4gIDYwJSB7XG4gICAgdHJhbnNmb3JtOiBza2V3WCgzZGVnKTsgfVxuICA3MCUge1xuICAgIHRyYW5zZm9ybTogc2tld1goLTJkZWcpOyB9XG4gIDgwJSB7XG4gICAgdHJhbnNmb3JtOiBza2V3WCgxZGVnKTsgfVxuICA5MCUge1xuICAgIHRyYW5zZm9ybTogc2tld1goMGRlZyk7IH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBza2V3WCgwZGVnKTsgfSB9XG5cbi53aWdnbGUuZ28ge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiB3aWdnbGU7XG4gIGFuaW1hdGlvbi1uYW1lOiB3aWdnbGU7XG4gIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjsgfVxuXG4vKioqKioqKipcclxuKiBzd2luZyAqXHJcbioqKioqKioqKi9cbkAtd2Via2l0LWtleWZyYW1lcyBzd2luZyB7XG4gIDIwJSwgNDAlLCA2MCUsIDgwJSwgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiB0b3AgY2VudGVyOyB9XG4gIDIwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgxNWRlZyk7IH1cbiAgNDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKC0xMGRlZyk7IH1cbiAgNjAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDVkZWcpOyB9XG4gIDgwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgtNWRlZyk7IH1cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfSB9XG5cbkBrZXlmcmFtZXMgc3dpbmcge1xuICAyMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDE1ZGVnKTsgfVxuICA0MCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKC0xMGRlZyk7IH1cbiAgNjAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSg1ZGVnKTsgfVxuICA4MCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKC01ZGVnKTsgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfSB9XG5cbi5zd2luZy5nbyB7XG4gIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogdG9wIGNlbnRlcjtcbiAgdHJhbnNmb3JtLW9yaWdpbjogdG9wIGNlbnRlcjtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogc3dpbmc7XG4gIGFuaW1hdGlvbi1uYW1lOiBzd2luZzsgfVxuXG4vKioqKioqKlxyXG4qIHRhZGEgKlxyXG4qKioqKioqKi9cbkAtd2Via2l0LWtleWZyYW1lcyB0YWRhIHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxKTsgfVxuICAxMCUsIDIwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDAuOSkgcm90YXRlKC0zZGVnKTsgfVxuICAzMCUsIDUwJSwgNzAlLCA5MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxLjEpIHJvdGF0ZSgzZGVnKTsgfVxuICA0MCUsIDYwJSwgODAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMS4xKSByb3RhdGUoLTNkZWcpOyB9XG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxKSByb3RhdGUoMCk7IH0gfVxuXG5Aa2V5ZnJhbWVzIHRhZGEge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTsgfVxuICAxMCUsIDIwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjkpIHJvdGF0ZSgtM2RlZyk7IH1cbiAgMzAlLCA1MCUsIDcwJSwgOTAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSkgcm90YXRlKDNkZWcpOyB9XG4gIDQwJSwgNjAlLCA4MCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xKSByb3RhdGUoLTNkZWcpOyB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSkgcm90YXRlKDApOyB9IH1cblxuLnRhZGEuZ28ge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiB0YWRhO1xuICBhbmltYXRpb24tbmFtZTogdGFkYTsgfVxuXG4vKioqKioqKioqXHJcbiogd29iYmxlICpcclxuKioqKioqKioqKi9cbkAtd2Via2l0LWtleWZyYW1lcyB3b2JibGUge1xuICAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCUpOyB9XG4gIDE1JSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTI1JSkgcm90YXRlKC01ZGVnKTsgfVxuICAzMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwJSkgcm90YXRlKDNkZWcpOyB9XG4gIDQ1JSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTE1JSkgcm90YXRlKC0zZGVnKTsgfVxuICA2MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwJSkgcm90YXRlKDJkZWcpOyB9XG4gIDc1JSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUlKSByb3RhdGUoLTFkZWcpOyB9XG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDAlKTsgfSB9XG5cbkBrZXlmcmFtZXMgd29iYmxlIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwJSk7IH1cbiAgMTUlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTI1JSkgcm90YXRlKC01ZGVnKTsgfVxuICAzMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgyMCUpIHJvdGF0ZSgzZGVnKTsgfVxuICA0NSUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTUlKSByb3RhdGUoLTNkZWcpOyB9XG4gIDYwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwJSkgcm90YXRlKDJkZWcpOyB9XG4gIDc1JSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01JSkgcm90YXRlKC0xZGVnKTsgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCUpOyB9IH1cblxuLndvYmJsZS5nbyB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHdvYmJsZTtcbiAgYW5pbWF0aW9uLW5hbWU6IHdvYmJsZTsgfVxuXG4vKioqKioqKipcclxuKiBwdWxzZSAqXHJcbioqKioqKioqKi9cbkAtd2Via2l0LWtleWZyYW1lcyBwdWxzZSB7XG4gIDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7IH1cbiAgNTAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMS4xKTsgfVxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7IH0gfVxuXG5Aa2V5ZnJhbWVzIHB1bHNlIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7IH1cbiAgNTAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7IH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTsgfSB9XG5cbi5wdWxzZS5nbyB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHB1bHNlO1xuICBhbmltYXRpb24tbmFtZTogcHVsc2U7IH1cblxuLyoqKioqKioqKioqKioqKlxyXG4qIGxpZ2h0U3BlZWRJblJpZ2h0ICpcclxuKioqKioqKioqKioqKioqKi9cbkAtd2Via2l0LWtleWZyYW1lcyBsaWdodFNwZWVkSW5SaWdodCB7XG4gIDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKSBza2V3WCgtMzBkZWcpO1xuICAgIG9wYWNpdHk6IDA7IH1cbiAgNjAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMjAlKSBza2V3WCgzMGRlZyk7XG4gICAgb3BhY2l0eTogMTsgfVxuICA4MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDAlKSBza2V3WCgtMTVkZWcpO1xuICAgIG9wYWNpdHk6IDE7IH1cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCUpIHNrZXdYKDBkZWcpO1xuICAgIG9wYWNpdHk6IDE7IH0gfVxuXG5Aa2V5ZnJhbWVzIGxpZ2h0U3BlZWRJblJpZ2h0IHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKSBza2V3WCgtMzBkZWcpO1xuICAgIG9wYWNpdHk6IDA7IH1cbiAgNjAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTIwJSkgc2tld1goMzBkZWcpO1xuICAgIG9wYWNpdHk6IDE7IH1cbiAgODAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCUpIHNrZXdYKC0xNWRlZyk7XG4gICAgb3BhY2l0eTogMTsgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCUpIHNrZXdYKDBkZWcpO1xuICAgIG9wYWNpdHk6IDE7IH0gfVxuXG4ubGlnaHRTcGVlZEluUmlnaHQuZ28ge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBsaWdodFNwZWVkSW5SaWdodDtcbiAgYW5pbWF0aW9uLW5hbWU6IGxpZ2h0U3BlZWRJblJpZ2h0O1xuICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDsgfVxuXG4vKioqKioqKioqKioqKioqXHJcbiogbGlnaHRTcGVlZEluTGVmdCAqXHJcbioqKioqKioqKioqKioqKiovXG5ALXdlYmtpdC1rZXlmcmFtZXMgbGlnaHRTcGVlZEluTGVmdCB7XG4gIDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSkgc2tld1goMzBkZWcpO1xuICAgIG9wYWNpdHk6IDA7IH1cbiAgNjAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgyMCUpIHNrZXdYKC0zMGRlZyk7XG4gICAgb3BhY2l0eTogMTsgfVxuICA4MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDAlKSBza2V3WCgxNWRlZyk7XG4gICAgb3BhY2l0eTogMTsgfVxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgwJSkgc2tld1goMGRlZyk7XG4gICAgb3BhY2l0eTogMTsgfSB9XG5cbkBrZXlmcmFtZXMgbGlnaHRTcGVlZEluTGVmdCB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpIHNrZXdYKDMwZGVnKTtcbiAgICBvcGFjaXR5OiAwOyB9XG4gIDYwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwJSkgc2tld1goLTMwZGVnKTtcbiAgICBvcGFjaXR5OiAxOyB9XG4gIDgwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDAlKSBza2V3WCgxNWRlZyk7XG4gICAgb3BhY2l0eTogMTsgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCUpIHNrZXdYKDBkZWcpO1xuICAgIG9wYWNpdHk6IDE7IH0gfVxuXG4ubGlnaHRTcGVlZEluTGVmdC5nbyB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGxpZ2h0U3BlZWRJbkxlZnQ7XG4gIGFuaW1hdGlvbi1uYW1lOiBsaWdodFNwZWVkSW5MZWZ0O1xuICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDsgfVxuXG4vKioqKioqKlxyXG4qIEZsaXAgKlxyXG4qKioqKioqL1xuQC13ZWJraXQta2V5ZnJhbWVzIGZsaXAge1xuICAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKDApO1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7IH1cbiAgNDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHRyYW5zbGF0ZVooMTUwcHgpIHJvdGF0ZVkoMTcwZGVnKTtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0OyB9XG4gIDUwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSB0cmFuc2xhdGVaKDE1MHB4KSByb3RhdGVZKDE5MGRlZykgc2NhbGUoMSk7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluOyB9XG4gIDgwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKDM2MGRlZykgc2NhbGUoMC45NSk7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluOyB9XG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgc2NhbGUoMSk7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluOyB9IH1cblxuQGtleWZyYW1lcyBmbGlwIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoMCk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7IH1cbiAgNDAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSB0cmFuc2xhdGVaKDE1MHB4KSByb3RhdGVZKDE3MGRlZyk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7IH1cbiAgNTAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSB0cmFuc2xhdGVaKDE1MHB4KSByb3RhdGVZKDE5MGRlZykgc2NhbGUoMSk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjsgfVxuICA4MCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoMzYwZGVnKSBzY2FsZSgwLjk1KTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluOyB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHNjYWxlKDEpO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47IH0gfVxuXG4uZmxpcC5nbyB7XG4gIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogdmlzaWJsZSAhaW1wb3J0YW50O1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmbGlwO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG4gIGFuaW1hdGlvbi1uYW1lOiBmbGlwOyB9XG5cbi8qKioqKioqKioqXHJcbiogZmxpcEluWCAqXHJcbioqKioqKioqKiovXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmxpcEluWCB7XG4gIDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoOTBkZWcpO1xuICAgIG9wYWNpdHk6IDA7IH1cbiAgNDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoLTEwZGVnKTsgfVxuICA3MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWCgxMGRlZyk7IH1cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKDBkZWcpO1xuICAgIG9wYWNpdHk6IDE7IH0gfVxuXG5Aa2V5ZnJhbWVzIGZsaXBJblgge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWCg5MGRlZyk7XG4gICAgb3BhY2l0eTogMDsgfVxuICA0MCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoLTEwZGVnKTsgfVxuICA3MCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoMTBkZWcpOyB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoMGRlZyk7XG4gICAgb3BhY2l0eTogMTsgfSB9XG5cbi5mbGlwSW5YLmdvIHtcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZsaXBJblg7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IHZpc2libGUgIWltcG9ydGFudDtcbiAgYW5pbWF0aW9uLW5hbWU6IGZsaXBJblg7IH1cblxuLyoqKioqKioqKipcclxuKiBmbGlwSW5ZICpcclxuKioqKioqKioqKi9cbkAtd2Via2l0LWtleWZyYW1lcyBmbGlwSW5ZIHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWSg5MGRlZyk7XG4gICAgb3BhY2l0eTogMDsgfVxuICA0MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWSgtMTBkZWcpOyB9XG4gIDcwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKDEwZGVnKTsgfVxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoMGRlZyk7XG4gICAgb3BhY2l0eTogMTsgfSB9XG5cbkBrZXlmcmFtZXMgZmxpcEluWSB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKDkwZGVnKTtcbiAgICBvcGFjaXR5OiAwOyB9XG4gIDQwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWSgtMTBkZWcpOyB9XG4gIDcwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWSgxMGRlZyk7IH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWSgwZGVnKTtcbiAgICBvcGFjaXR5OiAxOyB9IH1cblxuLmZsaXBJblkuZ28ge1xuICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IHZpc2libGUgIWltcG9ydGFudDtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmxpcEluWTtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogdmlzaWJsZSAhaW1wb3J0YW50O1xuICBhbmltYXRpb24tbmFtZTogZmxpcEluWTsgfVxuXG4vKioqKioqKioqKioqKioqKipcclxuKiBPdXQgYW5pbWF0aW9ucyAqXHJcbioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKlxyXG4qIGJvdW5jZU91dCAqXHJcbioqKioqKioqKioqKiovXG5ALXdlYmtpdC1rZXlmcmFtZXMgYm91bmNlT3V0IHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxKTsgfVxuICAyNSUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjk1KTsgfVxuICA1MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEuMSk7IH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMC4zKTsgfSB9XG5cbkBrZXlmcmFtZXMgYm91bmNlT3V0IHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7IH1cbiAgMjUlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTUpOyB9XG4gIDUwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7IH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuMyk7IH0gfVxuXG4uYm91bmNlT3V0LmdvQXdheSB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGJvdW5jZU91dDtcbiAgYW5pbWF0aW9uLW5hbWU6IGJvdW5jZU91dDsgfVxuXG4vKioqKioqKioqKioqXHJcbiogYm91bmNlT3V0VXAgKlxyXG4qKioqKioqKioqKioqL1xuQC13ZWJraXQta2V5ZnJhbWVzIGJvdW5jZU91dFVwIHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9XG4gIDIwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgyMHB4KTsgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yMDAwcHgpOyB9IH1cblxuQGtleWZyYW1lcyBib3VuY2VPdXRVcCB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH1cbiAgMjAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyMHB4KTsgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjAwMHB4KTsgfSB9XG5cbi5ib3VuY2VPdXRVcC5nb0F3YXkge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBib3VuY2VPdXRVcDtcbiAgYW5pbWF0aW9uLW5hbWU6IGJvdW5jZU91dFVwOyB9XG5cbi8qKioqKioqKioqKipcclxuKiBib3VuY2VPdXREb3duICpcclxuKioqKioqKioqKioqKi9cbkAtd2Via2l0LWtleWZyYW1lcyBib3VuY2VPdXREb3duIHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9XG4gIDIwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjBweCk7IH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgyMDAwcHgpOyB9IH1cblxuQGtleWZyYW1lcyBib3VuY2VPdXREb3duIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgfVxuICAyMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yMHB4KTsgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyMDAwcHgpOyB9IH1cblxuLmJvdW5jZU91dERvd24uZ29Bd2F5IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogYm91bmNlT3V0RG93bjtcbiAgYW5pbWF0aW9uLW5hbWU6IGJvdW5jZU91dERvd247IH1cblxuLyoqKioqKioqKioqKlxyXG4qIGJvdW5jZU91dExlZnQgKlxyXG4qKioqKioqKioqKioqL1xuQC13ZWJraXQta2V5ZnJhbWVzIGJvdW5jZU91dExlZnQge1xuICAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IH1cbiAgMjAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwcHgpOyB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTIwMDBweCk7IH0gfVxuXG5Aa2V5ZnJhbWVzIGJvdW5jZU91dExlZnQge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyB9XG4gIDIwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjBweCk7IH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTIwMDBweCk7IH0gfVxuXG4uYm91bmNlT3V0TGVmdC5nb0F3YXkge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBib3VuY2VPdXRMZWZ0O1xuICBhbmltYXRpb24tbmFtZTogYm91bmNlT3V0TGVmdDsgfVxuXG4vKioqKioqKioqKioqXHJcbiogYm91bmNlT3V0UmlnaHQgKlxyXG4qKioqKioqKioqKioqL1xuQC13ZWJraXQta2V5ZnJhbWVzIGJvdW5jZU91dFJpZ2h0IHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyB9XG4gIDIwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMjBweCk7IH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgyMDAwcHgpOyB9IH1cblxuQGtleWZyYW1lcyBib3VuY2VPdXRSaWdodCB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IH1cbiAgMjAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMjBweCk7IH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjAwMHB4KTsgfSB9XG5cbi5ib3VuY2VPdXRSaWdodC5nb0F3YXkge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBib3VuY2VPdXRSaWdodDtcbiAgYW5pbWF0aW9uLW5hbWU6IGJvdW5jZU91dFJpZ2h0OyB9XG5cbi8qKioqKioqKioqKipcclxuKiBmYWRlT3V0ICpcclxuKioqKioqKioqKioqKi9cbkAtd2Via2l0LWtleWZyYW1lcyBmYWRlT3V0IHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDE7IH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDsgfSB9XG5cbkBrZXlmcmFtZXMgZmFkZU91dCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAxOyB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7IH0gfVxuXG4uZmFkZU91dC5nb0F3YXkge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0O1xuICBhbmltYXRpb24tbmFtZTogZmFkZU91dDsgfVxuXG4vKioqKioqKioqKioqXHJcbiogZmFkZU91dFVwICpcclxuKioqKioqKioqKioqKi9cbkAtd2Via2l0LWtleWZyYW1lcyBmYWRlT3V0VXAge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yMDAwcHgpOyB9IH1cblxuQGtleWZyYW1lcyBmYWRlT3V0VXAge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTIwMDBweCk7IH0gfVxuXG4uZmFkZU91dFVwLmdvQXdheSB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXRVcDtcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXRVcDsgfVxuXG4vKioqKioqKioqKioqXHJcbiogZmFkZU91dERvd24gKlxyXG4qKioqKioqKioqKioqL1xuQC13ZWJraXQta2V5ZnJhbWVzIGZhZGVPdXREb3duIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgyMDAwcHgpOyB9IH1cblxuQGtleWZyYW1lcyBmYWRlT3V0RG93biB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyMDAwcHgpOyB9IH1cblxuLmZhZGVPdXREb3duLmdvQXdheSB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXREb3duO1xuICBhbmltYXRpb24tbmFtZTogZmFkZU91dERvd247IH1cblxuLyoqKioqKioqKioqKlxyXG4qIGZhZGVPdXRMZWZ0ICpcclxuKioqKioqKioqKioqKi9cbkAtd2Via2l0LWtleWZyYW1lcyBmYWRlT3V0TGVmdCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTIwMDBweCk7IH0gfVxuXG5Aa2V5ZnJhbWVzIGZhZGVPdXRMZWZ0IHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0yMDAwcHgpOyB9IH1cblxuLmZhZGVPdXRMZWZ0LmdvQXdheSB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXRMZWZ0O1xuICBhbmltYXRpb24tbmFtZTogZmFkZU91dExlZnQ7IH1cblxuLyoqKioqKioqKioqKlxyXG4qIGZhZGVPdXRSaWdodCAqXHJcbioqKioqKioqKioqKiovXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZU91dFJpZ2h0IHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgyMDAwcHgpOyB9IH1cblxuQGtleWZyYW1lcyBmYWRlT3V0UmlnaHQge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjAwMHB4KTsgfSB9XG5cbi5mYWRlT3V0UmlnaHQuZ29Bd2F5IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmFkZU91dFJpZ2h0O1xuICBhbmltYXRpb24tbmFtZTogZmFkZU91dFJpZ2h0OyB9XG5cbi8qKioqKioqKioqKipcclxuKiBmbGlwT3V0WCAqXHJcbioqKioqKioqKioqKiovXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmxpcE91dFgge1xuICAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKDBkZWcpO1xuICAgIG9wYWNpdHk6IDE7IH1cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKDkwZGVnKTtcbiAgICBvcGFjaXR5OiAwOyB9IH1cblxuQGtleWZyYW1lcyBmbGlwT3V0WCB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKDBkZWcpO1xuICAgIG9wYWNpdHk6IDE7IH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWCg5MGRlZyk7XG4gICAgb3BhY2l0eTogMDsgfSB9XG5cbi5mbGlwT3V0WC5nb0F3YXkge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmbGlwT3V0WDtcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG4gIGFuaW1hdGlvbi1uYW1lOiBmbGlwT3V0WDtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogdmlzaWJsZSAhaW1wb3J0YW50OyB9XG5cbi8qKioqKioqKioqKipcclxuKiBmbGlwT3V0WSAqXHJcbioqKioqKioqKioqKiovXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmxpcE91dFkge1xuICAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKDBkZWcpO1xuICAgIG9wYWNpdHk6IDE7IH1cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKDkwZGVnKTtcbiAgICBvcGFjaXR5OiAwOyB9IH1cblxuQGtleWZyYW1lcyBmbGlwT3V0WSB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKDBkZWcpO1xuICAgIG9wYWNpdHk6IDE7IH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWSg5MGRlZyk7XG4gICAgb3BhY2l0eTogMDsgfSB9XG5cbi5mbGlwT3V0WSB7XG4gIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogdmlzaWJsZSAhaW1wb3J0YW50O1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmbGlwT3V0WTtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogdmlzaWJsZSAhaW1wb3J0YW50O1xuICBhbmltYXRpb24tbmFtZTogZmxpcE91dFk7IH1cblxuLyoqKioqKioqKioqKlxyXG4qIGxpZ2h0U3BlZWRPdXRSaWdodCAqXHJcbioqKioqKioqKioqKiovXG5ALXdlYmtpdC1rZXlmcmFtZXMgbGlnaHRTcGVlZE91dFJpZ2h0IHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDAlKSBza2V3WCgwZGVnKTtcbiAgICBvcGFjaXR5OiAxOyB9XG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpIHNrZXdYKC0zMGRlZyk7XG4gICAgb3BhY2l0eTogMDsgfSB9XG5cbkBrZXlmcmFtZXMgbGlnaHRTcGVlZE91dFJpZ2h0IHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwJSkgc2tld1goMGRlZyk7XG4gICAgb3BhY2l0eTogMTsgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSkgc2tld1goLTMwZGVnKTtcbiAgICBvcGFjaXR5OiAwOyB9IH1cblxuLmxpZ2h0U3BlZWRPdXRSaWdodC5nb0F3YXkge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBsaWdodFNwZWVkT3V0UmlnaHQ7XG4gIGFuaW1hdGlvbi1uYW1lOiBsaWdodFNwZWVkT3V0UmlnaHQ7XG4gIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjsgfVxuXG4vKioqKioqKioqKioqXHJcbiogbGlnaHRTcGVlZE91dExlZnQgKlxyXG4qKioqKioqKioqKioqL1xuQC13ZWJraXQta2V5ZnJhbWVzIGxpZ2h0U3BlZWRPdXRMZWZ0IHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDAlKSBza2V3WCgwZGVnKTtcbiAgICBvcGFjaXR5OiAxOyB9XG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKSBza2V3WCgzMGRlZyk7XG4gICAgb3BhY2l0eTogMDsgfSB9XG5cbkBrZXlmcmFtZXMgbGlnaHRTcGVlZE91dExlZnQge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDAlKSBza2V3WCgwZGVnKTtcbiAgICBvcGFjaXR5OiAxOyB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSkgc2tld1goMzBkZWcpO1xuICAgIG9wYWNpdHk6IDA7IH0gfVxuXG4ubGlnaHRTcGVlZE91dExlZnQuZ29Bd2F5IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogbGlnaHRTcGVlZE91dExlZnQ7XG4gIGFuaW1hdGlvbi1uYW1lOiBsaWdodFNwZWVkT3V0TGVmdDtcbiAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluO1xuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluOyB9XG5cbi8qKioqKioqKioqKipcclxuKiByb3RhdGVPdXQgKlxyXG4qKioqKioqKioqKioqL1xuQC13ZWJraXQta2V5ZnJhbWVzIHJvdGF0ZU91dCB7XG4gIDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXI7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwKTtcbiAgICBvcGFjaXR5OiAxOyB9XG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGNlbnRlcjtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDIwMGRlZyk7XG4gICAgb3BhY2l0eTogMDsgfSB9XG5cbkBrZXlmcmFtZXMgcm90YXRlT3V0IHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXI7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMCk7XG4gICAgb3BhY2l0eTogMTsgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDIwMGRlZyk7XG4gICAgb3BhY2l0eTogMDsgfSB9XG5cbi5yb3RhdGVPdXQuZ29Bd2F5IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogcm90YXRlT3V0O1xuICBhbmltYXRpb24tbmFtZTogcm90YXRlT3V0OyB9XG5cbi8qKioqKioqKioqKipcclxuKiByb3RhdGVPdXRVcExlZnQgKlxyXG4qKioqKioqKioqKioqL1xuQC13ZWJraXQta2V5ZnJhbWVzIHJvdGF0ZU91dFVwTGVmdCB7XG4gIDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMCk7XG4gICAgb3BhY2l0eTogMTsgfVxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbiAgICBvcGFjaXR5OiAwOyB9IH1cblxuQGtleWZyYW1lcyByb3RhdGVPdXRVcExlZnQge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMCk7XG4gICAgb3BhY2l0eTogMTsgfVxuICAxMDAlIHtcbiAgICAtdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgLXRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XG4gICAgb3BhY2l0eTogMDsgfSB9XG5cbi5yb3RhdGVPdXRVcExlZnQuZ29Bd2F5IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogcm90YXRlT3V0VXBMZWZ0O1xuICBhbmltYXRpb24tbmFtZTogcm90YXRlT3V0VXBMZWZ0OyB9XG5cbi8qKioqKioqKioqKipcclxuKiByb3RhdGVPdXREb3duTGVmdCAqXHJcbioqKioqKioqKioqKiovXG5ALXdlYmtpdC1rZXlmcmFtZXMgcm90YXRlT3V0RG93bkxlZnQge1xuICAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDApO1xuICAgIG9wYWNpdHk6IDE7IH1cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcbiAgICBvcGFjaXR5OiAwOyB9IH1cblxuQGtleWZyYW1lcyByb3RhdGVPdXREb3duTGVmdCB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwKTtcbiAgICBvcGFjaXR5OiAxOyB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcbiAgICBvcGFjaXR5OiAwOyB9IH1cblxuLnJvdGF0ZU91dERvd25MZWZ0LmdvQXdheSB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHJvdGF0ZU91dERvd25MZWZ0O1xuICBhbmltYXRpb24tbmFtZTogcm90YXRlT3V0RG93bkxlZnQ7IH1cblxuLyoqKioqKioqKioqKlxyXG4qIHJvdGF0ZU91dFVwUmlnaHQgKlxyXG4qKioqKioqKioqKioqL1xuQC13ZWJraXQta2V5ZnJhbWVzIHJvdGF0ZU91dFVwUmlnaHQge1xuICAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwKTtcbiAgICBvcGFjaXR5OiAxOyB9XG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xuICAgIG9wYWNpdHk6IDA7IH0gfVxuXG5Aa2V5ZnJhbWVzIHJvdGF0ZU91dFVwUmlnaHQge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDApO1xuICAgIG9wYWNpdHk6IDE7IH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcbiAgICBvcGFjaXR5OiAwOyB9IH1cblxuLnJvdGF0ZU91dFVwUmlnaHQuZ29Bd2F5IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogcm90YXRlT3V0VXBSaWdodDtcbiAgYW5pbWF0aW9uLW5hbWU6IHJvdGF0ZU91dFVwUmlnaHQ7IH1cblxuLyoqKioqKioqKioqKlxyXG4qIHJvbGxPdXQgKlxyXG4qKioqKioqKioqKioqL1xuQC13ZWJraXQta2V5ZnJhbWVzIHJvbGxPdXQge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgwcHgpIHJvdGF0ZSgwZGVnKTsgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpIHJvdGF0ZSgxMjBkZWcpOyB9IH1cblxuQGtleWZyYW1lcyByb2xsT3V0IHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDBweCkgcm90YXRlKDBkZWcpOyB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpIHJvdGF0ZSgxMjBkZWcpOyB9IH1cblxuLnJvbGxPdXQuZ29Bd2F5IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogcm9sbE91dDtcbiAgYW5pbWF0aW9uLW5hbWU6IHJvbGxPdXQ7IH1cblxuLyoqKioqKioqKioqKioqKioqXHJcbiogU2hvcnQgQW5pbWF0aW9uc1xyXG4qKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKlxyXG4qIGZhZGVJblVwU2hvcnRcclxuKioqKioqKioqKioqKioqKioqKioqL1xuQC13ZWJraXQta2V5ZnJhbWVzIGZhZGVJblVwU2hvcnQge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgyMHB4KTsgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9IH1cblxuQGtleWZyYW1lcyBmYWRlSW5VcFNob3J0IHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDIwcHgpOyB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9IH1cblxuLmZhZGVJblVwU2hvcnQge1xuICBvcGFjaXR5OiAwO1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgyMHB4KTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDIwcHgpOyB9XG5cbi5mYWRlSW5VcFNob3J0LmdvIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmFkZUluVXBTaG9ydDtcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVJblVwU2hvcnQ7IH1cblxuLyoqKioqKioqKioqKioqKioqKioqKlxyXG4qIGZhZGVJbkRvd25TaG9ydFxyXG4qKioqKioqKioqKioqKioqKioqKiovXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZUluRG93blNob3J0IHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTIwcHgpOyB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH0gfVxuXG5Aa2V5ZnJhbWVzIGZhZGVJbkRvd25TaG9ydCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjBweCk7IH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH0gfVxuXG4uZmFkZUluRG93blNob3J0IHtcbiAgb3BhY2l0eTogMDtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTIwcHgpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTIwcHgpOyB9XG5cbi5mYWRlSW5Eb3duU2hvcnQuZ28ge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmYWRlSW5Eb3duU2hvcnQ7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlSW5Eb3duU2hvcnQ7IH1cblxuLyoqKioqKioqKioqKioqKioqKioqKlxyXG4qIGZhZGVJblJpZ2h0U2hvcnQgXHJcbioqKioqKioqKioqKioqKioqKioqKi9cbkAtd2Via2l0LWtleWZyYW1lcyBmYWRlSW5SaWdodFNob3J0IHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjBweCk7IH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgfSB9XG5cbkBrZXlmcmFtZXMgZmFkZUluUmlnaHRTaG9ydCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgyMHB4KTsgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgfSB9XG5cbi5mYWRlSW5SaWdodFNob3J0IHtcbiAgb3BhY2l0eTogMDtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjBweCk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgyMHB4KTsgfVxuXG4uZmFkZUluUmlnaHRTaG9ydC5nbyB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZhZGVJblJpZ2h0U2hvcnQ7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlSW5SaWdodFNob3J0OyB9XG5cbi8qKioqKioqKioqKioqKioqKioqKipcclxuKiBmYWRlSW5MZWZ0U2hvcnQgXHJcbioqKioqKioqKioqKioqKioqKioqKi9cbkAtd2Via2l0LWtleWZyYW1lcyBmYWRlSW5MZWZ0U2hvcnQge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMjBweCk7IH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgfSB9XG5cbkBrZXlmcmFtZXMgZmFkZUluTGVmdFNob3J0IHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0yMHB4KTsgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgfSB9XG5cbi5mYWRlSW5MZWZ0U2hvcnQge1xuICBvcGFjaXR5OiAwO1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMjBweCk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMjBweCk7IH1cblxuLmZhZGVJbkxlZnRTaG9ydC5nbyB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZhZGVJbkxlZnRTaG9ydDtcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVJbkxlZnRTaG9ydDsgfVxuXG4uZmFuY3lib3gtZW5hYmxlZCB7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuLmZhbmN5Ym94LWVuYWJsZWQgYm9keSB7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICAtbXMtdG91Y2gtYWN0aW9uOiBub25lO1xuICB0b3VjaC1hY3Rpb246IG5vbmU7IH1cblxuLmZhbmN5Ym94LWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB6LWluZGV4OiA5OTk5MztcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsgfVxuXG4vKiBNYWtlIHN1cmUgdGhhdCB0aGUgZmlyc3Qgb25lIGlzIG9uIHRoZSB0b3AgKi9cbi5mYW5jeWJveC1jb250YWluZXIgfiAuZmFuY3lib3gtY29udGFpbmVyIHtcbiAgei1pbmRleDogOTk5OTI7IH1cblxuLmZhbmN5Ym94LWJnIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIGJhY2tncm91bmQ6ICMwZjBmMTE7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41NSwgMC4wNiwgMC42OCwgMC4xOSk7XG4gIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuLmZhbmN5Ym94LWNvbnRhaW5lci0tcmVhZHkgLmZhbmN5Ym94LWJnIHtcbiAgb3BhY2l0eTogMC44NztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIyLCAwLjYxLCAwLjM2LCAxKTsgfVxuXG4uZmFuY3lib3gtY29udHJvbHMge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgb3BhY2l0eTogMDtcbiAgei1pbmRleDogOTk5OTQ7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgLjJzO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgZGlyZWN0aW9uOiBsdHI7IH1cblxuLmZhbmN5Ym94LXNob3ctY29udHJvbHMgLmZhbmN5Ym94LWNvbnRyb2xzIHtcbiAgb3BhY2l0eTogMTsgfVxuXG4uZmFuY3lib3gtaW5mb2JhciB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLmZhbmN5Ym94LXNob3ctaW5mb2JhciAuZmFuY3lib3gtaW5mb2JhciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcG9pbnRlci1ldmVudHM6IGFsbDsgfVxuXG4uZmFuY3lib3gtaW5mb2Jhcl9fYm9keSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDcwcHg7XG4gIGxpbmUtaGVpZ2h0OiA0NHB4O1xuICBmb250LXNpemU6IDEzcHg7XG4gIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsSGVsdmV0aWNhLEFyaWFsLHNhbnMtc2VyaWY7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY29sb3I6ICNkZGQ7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMzAsIDMwLCAzMCwgMC43KTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogc3VicGl4ZWwtYW50aWFsaWFzZWQ7IH1cblxuLmZhbmN5Ym94LWJ1dHRvbnMge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvaW50ZXItZXZlbnRzOiBhbGw7IH1cblxuLmZhbmN5Ym94LXNob3ctYnV0dG9ucyAuZmFuY3lib3gtYnV0dG9ucyB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi5mYW5jeWJveC1zbGlkZXItd3JhcCB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGRpcmVjdGlvbjogbHRyOyB9XG5cbi5mYW5jeWJveC1zbGlkZXItd3JhcCxcbi5mYW5jeWJveC1zbGlkZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgYm90dG9tOiAwO1xuICByaWdodDogMDtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xuICB6LWluZGV4OiA5OTk5MztcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuXG4uZmFuY3lib3gtc2xpZGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBvdmVyZmxvdzogYXV0bztcbiAgb3V0bGluZTogbm9uZTtcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB6LWluZGV4OiA5OTk5NDtcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoOyB9XG5cbi5mYW5jeWJveC1zbGlkZTo6YmVmb3JlIHtcbiAgY29udGVudDogJyc7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMDsgfVxuXG4uZmFuY3lib3gtc2xpZGUgPiAqIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmc6IDI0cHg7XG4gIG1hcmdpbjogNDRweCAwIDQ0cHg7XG4gIGJvcmRlci13aWR0aDogMDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cblxuLmZhbmN5Ym94LXNsaWRlLS1pbWFnZSB7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuLmZhbmN5Ym94LXNsaWRlLS1pbWFnZTo6YmVmb3JlIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4uZmFuY3lib3gtY29udGVudCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW46IDQ0cHggYXV0bztcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiAwO1xuICB3aWR0aDogODAlO1xuICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDg4cHgpO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICBvdXRsaW5lOiBub25lO1xuICBmb250LXNpemU6IDE2cHg7XG4gIGZvbnQtZmFtaWx5OiBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoOyB9XG5cbi5mYW5jeWJveC1pZnJhbWUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQ6ICNmZmY7IH1cblxuLmZhbmN5Ym94LXNsaWRlLS12aWRlbyAuZmFuY3lib3gtY29udGVudCxcbi5mYW5jeWJveC1zbGlkZS0tdmlkZW8gLmZhbmN5Ym94LWlmcmFtZSB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyB9XG5cbi5mYW5jeWJveC1wbGFjZWhvbGRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogMDtcbiAgei1pbmRleDogOTk5OTU7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjdXJzb3I6IGRlZmF1bHQ7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IHRvcCBsZWZ0O1xuICAtbXMtdHJhbnNmb3JtLW9yaWdpbjogdG9wIGxlZnQ7XG4gIHRyYW5zZm9ybS1vcmlnaW46IHRvcCBsZWZ0O1xuICBiYWNrZ3JvdW5kLXNpemU6IDEwMCUgMTAwJTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsgfVxuXG4uZmFuY3lib3gtaW1hZ2UsXG4uZmFuY3lib3gtc3BhY2ViYWxsIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiAwO1xuICBtYXgtd2lkdGg6IG5vbmU7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBiYWNrZ3JvdW5kLXNpemU6IDEwMCUgMTAwJTsgfVxuXG4uZmFuY3lib3gtY29udHJvbHMtLWNhbnpvb21PdXQgLmZhbmN5Ym94LXBsYWNlaG9sZGVyIHtcbiAgY3Vyc29yOiAtd2Via2l0LXpvb20tb3V0O1xuICBjdXJzb3I6IHpvb20tb3V0OyB9XG5cbi5mYW5jeWJveC1jb250cm9scy0tY2Fuem9vbUluIC5mYW5jeWJveC1wbGFjZWhvbGRlciB7XG4gIGN1cnNvcjogLXdlYmtpdC16b29tLWluO1xuICBjdXJzb3I6IHpvb20taW47IH1cblxuLmZhbmN5Ym94LWNvbnRyb2xzLS1jYW5HcmFiIC5mYW5jeWJveC1wbGFjZWhvbGRlciB7XG4gIGN1cnNvcjogLXdlYmtpdC1ncmFiO1xuICBjdXJzb3I6IGdyYWI7IH1cblxuLmZhbmN5Ym94LWNvbnRyb2xzLS1pc0dyYWJiaW5nIC5mYW5jeWJveC1wbGFjZWhvbGRlciB7XG4gIGN1cnNvcjogLXdlYmtpdC1ncmFiYmluZztcbiAgY3Vyc29yOiBncmFiYmluZzsgfVxuXG4uZmFuY3lib3gtc3BhY2ViYWxsIHtcbiAgei1pbmRleDogMTsgfVxuXG4uZmFuY3lib3gtdG1wIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC05OTk5cHg7XG4gIGxlZnQ6IC05OTk5cHg7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjsgfVxuXG4uZmFuY3lib3gtZXJyb3Ige1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogNDBweDtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgd2lkdGg6IDM4MHB4O1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIGN1cnNvcjogZGVmYXVsdDsgfVxuXG4uZmFuY3lib3gtZXJyb3IgcCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgY29sb3I6ICM0NDQ7XG4gIGZvbnQ6IDE2cHgvMjBweCBcIkhlbHZldGljYSBOZXVlXCIsSGVsdmV0aWNhLEFyaWFsLHNhbnMtc2VyaWY7IH1cblxuLmZhbmN5Ym94LWNsb3NlLXNtYWxsIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDRweDtcbiAgcmlnaHQ6IDRweDtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xuICB3aWR0aDogMzBweDtcbiAgaGVpZ2h0OiAzMHB4O1xuICBmb250OiAyMXB4LzEgQXJpYWwsXCJIZWx2ZXRpY2EgTmV1ZVwiLEhlbHZldGljYSxzYW5zLXNlcmlmO1xuICBjb2xvcjogIzg4ODtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJvcmRlci13aWR0aDogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIC4ycztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgei1pbmRleDogMjsgfVxuXG4uZmFuY3lib3gtY2xvc2Utc21hbGw6Zm9jdXMge1xuICBvdXRsaW5lOiAxcHggZG90dGVkICM4ODg7IH1cblxuLmZhbmN5Ym94LXNsaWRlLS12aWRlbyAuZmFuY3lib3gtY2xvc2Utc21hbGwge1xuICB0b3A6IC0zNnB4O1xuICByaWdodDogLTM2cHg7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyB9XG5cbi5mYW5jeWJveC1jbG9zZS1zbWFsbDpob3ZlciB7XG4gIGNvbG9yOiAjNTU1O1xuICBiYWNrZ3JvdW5kOiAjZWVlOyB9XG5cbi8qIENhcHRpb24gKi9cbi5mYW5jeWJveC1jYXB0aW9uLXdyYXAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIHBhZGRpbmc6IDYwcHggMzBweCAwIDMwcHg7XG4gIHotaW5kZXg6IDk5OTk4O1xuICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCB0cmFuc3BhcmVudCAwJSwgcmdiYSgwLCAwLCAwLCAwLjEpIDIwJSwgcmdiYSgwLCAwLCAwLCAwLjIpIDQwJSwgcmdiYSgwLCAwLCAwLCAwLjYpIDgwJSwgcmdiYSgwLCAwLCAwLCAwLjgpIDEwMCUpO1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IC4ycztcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cblxuLmZhbmN5Ym94LXNob3ctY2FwdGlvbiAuZmFuY3lib3gtY2FwdGlvbi13cmFwIHtcbiAgb3BhY2l0eTogMTsgfVxuXG4uZmFuY3lib3gtY2FwdGlvbiB7XG4gIHBhZGRpbmc6IDMwcHggMDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KTtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLEhlbHZldGljYSxBcmlhbCxzYW5zLXNlcmlmO1xuICBjb2xvcjogI2ZmZjtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogbm9uZTsgfVxuXG4uZmFuY3lib3gtY2FwdGlvbiBhLFxuLmZhbmN5Ym94LWNhcHRpb24gYnV0dG9uIHtcbiAgcG9pbnRlci1ldmVudHM6IGFsbDsgfVxuXG4uZmFuY3lib3gtY2FwdGlvbiBhIHtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG5cbi8qIEJ1dHRvbnMgKi9cbi5mYW5jeWJveC1idXR0b24ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDQ0cHg7XG4gIGhlaWdodDogNDRweDtcbiAgbGluZS1oZWlnaHQ6IDQ0cHg7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogI2ZmZjtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgb3V0bGluZTogbm9uZTsgfVxuXG4uZmFuY3lib3gtYnV0dG9uLS1kaXNhYmxlZCB7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cblxuLmZhbmN5Ym94LWluZm9iYXJfX2JvZHksIC5mYW5jeWJveC1idXR0b24ge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDMwLCAzMCwgMzAsIDAuNik7IH1cblxuLmZhbmN5Ym94LWJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC44KTsgfVxuXG4uZmFuY3lib3gtYnV0dG9uOjpiZWZvcmUsXG4uZmFuY3lib3gtYnV0dG9uOjphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3JkZXItY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6IGN1cnJlbnRDb2xvcjtcbiAgY29sb3I6IGN1cnJlbnRDb2xvcjtcbiAgb3BhY2l0eTogMC45O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cblxuLmZhbmN5Ym94LWJ1dHRvbi0tZGlzYWJsZWQ6OmJlZm9yZSxcbi5mYW5jeWJveC1idXR0b24tLWRpc2FibGVkOjphZnRlciB7XG4gIG9wYWNpdHk6IDAuNTsgfVxuXG4uZmFuY3lib3gtYnV0dG9uLS1sZWZ0OjphZnRlciB7XG4gIGxlZnQ6IDIwcHg7XG4gIHRvcDogMThweDtcbiAgd2lkdGg6IDZweDtcbiAgaGVpZ2h0OiA2cHg7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXItdG9wOiBzb2xpZCAycHggY3VycmVudENvbG9yO1xuICBib3JkZXItcmlnaHQ6IHNvbGlkIDJweCBjdXJyZW50Q29sb3I7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoLTEzNWRlZyk7XG4gIC1tcy10cmFuc2Zvcm06IHJvdGF0ZSgtMTM1ZGVnKTtcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTEzNWRlZyk7IH1cblxuLmZhbmN5Ym94LWJ1dHRvbi0tcmlnaHQ6OmFmdGVyIHtcbiAgcmlnaHQ6IDIwcHg7XG4gIHRvcDogMThweDtcbiAgd2lkdGg6IDZweDtcbiAgaGVpZ2h0OiA2cHg7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXItdG9wOiBzb2xpZCAycHggY3VycmVudENvbG9yO1xuICBib3JkZXItcmlnaHQ6IHNvbGlkIDJweCBjdXJyZW50Q29sb3I7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAtbXMtdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7IH1cblxuLmZhbmN5Ym94LWJ1dHRvbi0tbGVmdCB7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDVweDsgfVxuXG4uZmFuY3lib3gtYnV0dG9uLS1yaWdodCB7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA1cHg7IH1cblxuLmZhbmN5Ym94LWJ1dHRvbi0tY2xvc2Uge1xuICBmbG9hdDogcmlnaHQ7IH1cblxuLmZhbmN5Ym94LWJ1dHRvbi0tY2xvc2U6OmJlZm9yZSwgLmZhbmN5Ym94LWJ1dHRvbi0tY2xvc2U6OmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBoZWlnaHQ6IDJweDtcbiAgd2lkdGg6IDE2cHg7XG4gIHRvcDogY2FsYyg1MCUgLSAxcHgpO1xuICBsZWZ0OiBjYWxjKDUwJSAtIDhweCk7IH1cblxuLmZhbmN5Ym94LWJ1dHRvbi0tY2xvc2U6OmJlZm9yZSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAtbXMtdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7IH1cblxuLmZhbmN5Ym94LWJ1dHRvbi0tY2xvc2U6OmFmdGVyIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xuICAtbXMtdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTsgfVxuXG4vKiBMb2FkaW5nIHNwaW5uZXIgKi9cbi5mYW5jeWJveC1sb2FkaW5nIHtcbiAgYm9yZGVyOiA2cHggc29saWQgcmdiYSgxMDAsIDEwMCwgMTAwLCAwLjQpO1xuICBib3JkZXItdG9wOiA2cHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjYpO1xuICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICBoZWlnaHQ6IDUwcHg7XG4gIHdpZHRoOiA1MHB4O1xuICAtd2Via2l0LWFuaW1hdGlvbjogZmFuY3lib3gtcm90YXRlIC44cyBpbmZpbml0ZSBsaW5lYXI7XG4gIGFuaW1hdGlvbjogZmFuY3lib3gtcm90YXRlIC44cyBpbmZpbml0ZSBsaW5lYXI7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi10b3A6IC0yNXB4O1xuICBtYXJnaW4tbGVmdDogLTI1cHg7XG4gIHotaW5kZXg6IDk5OTk5OyB9XG5cbkAtd2Via2l0LWtleWZyYW1lcyBmYW5jeWJveC1yb3RhdGUge1xuICBmcm9tIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOyB9XG4gIHRvIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM1OWRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzU5ZGVnKTsgfSB9XG5cbkBrZXlmcmFtZXMgZmFuY3lib3gtcm90YXRlIHtcbiAgZnJvbSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfVxuICB0byB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNTlkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDM1OWRlZyk7IH0gfVxuXG4vKiBTdHlsaW5nIGZvciBTbWFsbC1TY3JlZW4gRGV2aWNlcyAqL1xuQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogODAwcHgpIHtcbiAgLmZhbmN5Ym94LWNvbnRyb2xzIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gIC5mYW5jeWJveC1idXR0b24tLWxlZnQsXG4gIC5mYW5jeWJveC1idXR0b24tLXJpZ2h0LFxuICAuZmFuY3lib3gtYnV0dG9ucyBidXR0b246bm90KC5mYW5jeWJveC1idXR0b24tLWNsb3NlKSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG4gIC5mYW5jeWJveC1jYXB0aW9uIHtcbiAgICBwYWRkaW5nOiAyMHB4IDA7XG4gICAgbWFyZ2luOiAwOyB9IH1cblxuLyogRnVsbHNjcmVlbiAgKi9cbi5mYW5jeWJveC1idXR0b24tLWZ1bGxzY3JlZW46OmJlZm9yZSB7XG4gIHdpZHRoOiAxNXB4O1xuICBoZWlnaHQ6IDExcHg7XG4gIGxlZnQ6IDE1cHg7XG4gIHRvcDogMTZweDtcbiAgYm9yZGVyOiAycHggc29saWQ7XG4gIGJhY2tncm91bmQ6IG5vbmU7IH1cblxuLyogU2xpZGVzaG93IGJ1dHRvbiAqL1xuLmZhbmN5Ym94LWJ1dHRvbi0tcGxheTo6YmVmb3JlIHtcbiAgdG9wOiAxNnB4O1xuICBsZWZ0OiAxOHB4O1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXItdG9wOiA2cHggaW5zZXQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1ib3R0b206IDZweCBpbnNldCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWxlZnQ6IDEwcHggc29saWQ7XG4gIGJvcmRlci1yYWRpdXM6IDFweDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH1cblxuLmZhbmN5Ym94LWJ1dHRvbi0tcGF1c2U6OmJlZm9yZSB7XG4gIHRvcDogMTZweDtcbiAgbGVmdDogMThweDtcbiAgd2lkdGg6IDdweDtcbiAgaGVpZ2h0OiAxMXB4O1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDAgMnB4IDAgMnB4O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgfVxuXG4vKiBUaHVtYnMgKi9cbi5mYW5jeWJveC1idXR0b24tLXRodW1icyBzcGFuIHtcbiAgZm9udC1zaXplOiAyM3B4OyB9XG5cbi5mYW5jeWJveC1idXR0b24tLXRodW1iczo6YmVmb3JlIHtcbiAgdG9wOiAyMHB4O1xuICBsZWZ0OiAyMXB4O1xuICB3aWR0aDogM3B4O1xuICBoZWlnaHQ6IDNweDtcbiAgYm94LXNoYWRvdzogMCAtNHB4IDAsIC00cHggLTRweCAwLCA0cHggLTRweCAwLCAwIDAgMCAzMnB4IGluc2V0LCAtNHB4IDAgMCwgNHB4IDAgMCwgMCA0cHggMCwgLTRweCA0cHggMCwgNHB4IDRweCAwOyB9XG5cbi5mYW5jeWJveC1jb250YWluZXItLXRodW1icyAuZmFuY3lib3gtY29udHJvbHMsXG4uZmFuY3lib3gtY29udGFpbmVyLS10aHVtYnMgLmZhbmN5Ym94LXNsaWRlci13cmFwLFxuLmZhbmN5Ym94LWNvbnRhaW5lci0tdGh1bWJzIC5mYW5jeWJveC1jYXB0aW9uLXdyYXAge1xuICByaWdodDogMjIwcHg7IH1cblxuLmZhbmN5Ym94LXRodW1icyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiBhdXRvO1xuICB3aWR0aDogMjIwcHg7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogNXB4IDVweCAwIDA7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIHotaW5kZXg6IDk5OTkzO1xuICB3b3JkLWJyZWFrOiBub3JtYWw7XG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuXG4uZmFuY3lib3gtdGh1bWJzID4gdWwge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIGZvbnQtc2l6ZTogMDsgfVxuXG4uZmFuY3lib3gtdGh1bWJzID4gdWwgPiBsaSB7XG4gIGZsb2F0OiBsZWZ0O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBtYXgtd2lkdGg6IDUwJTtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xuICB3aWR0aDogMTA1cHg7XG4gIGhlaWdodDogNzVweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJvcmRlcjogNXB4IHNvbGlkICNmZmY7XG4gIGJvcmRlci10b3Atd2lkdGg6IDA7XG4gIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuXG5saS5mYW5jeWJveC10aHVtYnMtbG9hZGluZyB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4xKTsgfVxuXG4uZmFuY3lib3gtdGh1bWJzID4gdWwgPiBsaSA+IGltZyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBtaW4td2lkdGg6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDEwMCU7XG4gIG1heC13aWR0aDogbm9uZTtcbiAgbWF4LWhlaWdodDogbm9uZTtcbiAgLXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lO1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHVzZXItc2VsZWN0OiBub25lOyB9XG5cbi5mYW5jeWJveC10aHVtYnMgPiB1bCA+IGxpOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICcnO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICBib3JkZXI6IDRweCBzb2xpZCAjNGVhN2Y5O1xuICB6LWluZGV4OiA5OTk5MTtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuNDYsIDAuNDUsIDAuOTQpOyB9XG5cbi5mYW5jeWJveC10aHVtYnMgPiB1bCA+IGxpLmZhbmN5Ym94LXRodW1icy1hY3RpdmU6YmVmb3JlIHtcbiAgb3BhY2l0eTogMTsgfVxuXG4vKiBTdHlsaW5nIGZvciBTbWFsbC1TY3JlZW4gRGV2aWNlcyAqL1xuQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogODAwcHgpIHtcbiAgLmZhbmN5Ym94LXRodW1icyB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG4gIC5mYW5jeWJveC1jb250YWluZXItLXRodW1icyAuZmFuY3lib3gtY29udHJvbHMsXG4gIC5mYW5jeWJveC1jb250YWluZXItLXRodW1icyAuZmFuY3lib3gtc2xpZGVyLXdyYXAsXG4gIC5mYW5jeWJveC1jb250YWluZXItLXRodW1icyAuZmFuY3lib3gtY2FwdGlvbi13cmFwIHtcbiAgICByaWdodDogMDsgfSB9XG5cbi8qYW5pbWF0aW9ucyovXG4vKioqKioqKioqKioqKioqKioqXG4qIEJvdW5jZSBpbiByaWdodCAqXG4qKioqKioqKioqKioqKioqKioqL1xuLmFuaW1hdGVkIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDFzO1xuICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAtd2Via2l0LWFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7XG4gIGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7IH1cblxuLnNsb3cge1xuICAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogMS41cztcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxLjVzO1xuICAtd2Via2l0LWFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7XG4gIGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7IH1cblxuLnNsb3dlciB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiAycztcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAycztcbiAgLXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOiBib3RoO1xuICBhbmltYXRpb24tZmlsbC1tb2RlOiBib3RoOyB9XG5cbi5zbG93ZXN0IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDNzO1xuICBhbmltYXRpb24tZHVyYXRpb246IDNzO1xuICAtd2Via2l0LWFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7XG4gIGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7IH1cblxuLyogQWRkZWQgYnkgQW5keSBNZWV0YW4gKi9cbi5kZWxheS0yNTAge1xuICAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogMC4yNXM7XG4gIC1tb3otYW5pbWF0aW9uLWRlbGF5OiAwLjI1cztcbiAgLW8tYW5pbWF0aW9uLWRlbGF5OiAwLjI1cztcbiAgYW5pbWF0aW9uLWRlbGF5OiAwLjI1czsgfVxuXG4uZGVsYXktNTAwIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IDAuNXM7XG4gIC1tb3otYW5pbWF0aW9uLWRlbGF5OiAwLjVzO1xuICAtby1hbmltYXRpb24tZGVsYXk6IDAuNXM7XG4gIGFuaW1hdGlvbi1kZWxheTogMC41czsgfVxuXG4uZGVsYXktNzUwIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IDAuNzVzO1xuICAtbW96LWFuaW1hdGlvbi1kZWxheTogMC43NXM7XG4gIC1vLWFuaW1hdGlvbi1kZWxheTogMC43NXM7XG4gIGFuaW1hdGlvbi1kZWxheTogMC43NXM7IH1cblxuLmRlbGF5LTEwMDAge1xuICAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogMS4wcztcbiAgLW1vei1hbmltYXRpb24tZGVsYXk6IDEuMHM7XG4gIC1vLWFuaW1hdGlvbi1kZWxheTogMS4wcztcbiAgYW5pbWF0aW9uLWRlbGF5OiAxLjBzOyB9XG5cbi5kZWxheS0xMjUwIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IDEuMjVzO1xuICAtbW96LWFuaW1hdGlvbi1kZWxheTogMS4yNXM7XG4gIC1vLWFuaW1hdGlvbi1kZWxheTogMS4yNXM7XG4gIGFuaW1hdGlvbi1kZWxheTogMS4yNXM7IH1cblxuLmRlbGF5LTE1MDAge1xuICAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogMS41cztcbiAgLW1vei1hbmltYXRpb24tZGVsYXk6IDEuNXM7XG4gIC1vLWFuaW1hdGlvbi1kZWxheTogMS41cztcbiAgYW5pbWF0aW9uLWRlbGF5OiAxLjVzOyB9XG5cbi5kZWxheS0xNzUwIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IDEuNzVzO1xuICAtbW96LWFuaW1hdGlvbi1kZWxheTogMS43NXM7XG4gIC1vLWFuaW1hdGlvbi1kZWxheTogMS43NXM7XG4gIGFuaW1hdGlvbi1kZWxheTogMS43NXM7IH1cblxuLmRlbGF5LTIwMDAge1xuICAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogMi4wcztcbiAgLW1vei1hbmltYXRpb24tZGVsYXk6IDIuMHM7XG4gIC1vLWFuaW1hdGlvbi1kZWxheTogMi4wcztcbiAgYW5pbWF0aW9uLWRlbGF5OiAyLjBzOyB9XG5cbi5kZWxheS0yNTAwIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IDIuNXM7XG4gIC1tb3otYW5pbWF0aW9uLWRlbGF5OiAyLjVzO1xuICAtby1hbmltYXRpb24tZGVsYXk6IDIuNXM7XG4gIGFuaW1hdGlvbi1kZWxheTogMi41czsgfVxuXG4uZGVsYXktMjAwMCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAyLjBzO1xuICAtbW96LWFuaW1hdGlvbi1kZWxheTogMi4wcztcbiAgLW8tYW5pbWF0aW9uLWRlbGF5OiAyLjBzO1xuICBhbmltYXRpb24tZGVsYXk6IDIuMHM7IH1cblxuLmRlbGF5LTI1MDAge1xuICAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogMi41cztcbiAgLW1vei1hbmltYXRpb24tZGVsYXk6IDIuNXM7XG4gIC1vLWFuaW1hdGlvbi1kZWxheTogMi41cztcbiAgYW5pbWF0aW9uLWRlbGF5OiAyLjVzOyB9XG5cbi5kZWxheS0zMDAwIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IDMuMHM7XG4gIC1tb3otYW5pbWF0aW9uLWRlbGF5OiAzLjBzO1xuICAtby1hbmltYXRpb24tZGVsYXk6IDMuMHM7XG4gIGFuaW1hdGlvbi1kZWxheTogMy4wczsgfVxuXG4uZGVsYXktMzUwMCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAzLjVzO1xuICAtbW96LWFuaW1hdGlvbi1kZWxheTogMy41cztcbiAgLW8tYW5pbWF0aW9uLWRlbGF5OiAzLjVzO1xuICBhbmltYXRpb24tZGVsYXk6IDMuNXM7IH1cblxuLmJvdW5jZUluUmlnaHQsXG4uYm91bmNlSW5MZWZ0LFxuLmJvdW5jZUluVXAsXG4uYm91bmNlSW5Eb3duIHtcbiAgb3BhY2l0eTogMDtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNDAwcHgpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNDAwcHgpOyB9XG5cbi5mYWRlSW5SaWdodCxcbi5mYWRlSW5MZWZ0LFxuLmZhZGVJblVwLFxuLmZhZGVJbkRvd24ge1xuICBvcGFjaXR5OiAwO1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCg0MDBweCk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg0MDBweCk7IH1cblxuLmZsaXBJblgsXG4uZmxpcEluWSxcbi5yb3RhdGVJbixcbi5yb3RhdGVJblVwTGVmdCxcbi5yb3RhdGVJblVwUmlnaHQsXG4ucm90YXRlSW5Eb3duTGVmdCxcbi5yb3RhdGVEb3duVXBSaWdodCxcbi5yb2xsSW4ge1xuICBvcGFjaXR5OiAwOyB9XG5cbi5saWdodFNwZWVkSW5SaWdodCxcbi5saWdodFNwZWVkSW5MZWZ0IHtcbiAgb3BhY2l0eTogMDtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNDAwcHgpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNDAwcHgpOyB9XG5cbi8qKioqKioqKioqKlxuKiBib3VuY2VJbiAqXG4qKioqKioqKioqKiovXG5ALXdlYmtpdC1rZXlmcmFtZXMgYm91bmNlSW4ge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMC4zKTsgfVxuICA1MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEuMDUpOyB9XG4gIDcwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDAuOSk7IH1cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpOyB9IH1cblxuQGtleWZyYW1lcyBib3VuY2VJbiB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC4zKTsgfVxuICA1MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjA1KTsgfVxuICA3MCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC45KTsgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpOyB9IH1cblxuLmJvdW5jZUluLmdvIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogYm91bmNlSW47XG4gIGFuaW1hdGlvbi1uYW1lOiBib3VuY2VJbjsgfVxuXG4vKioqKioqKioqKioqKioqKlxuKiBib3VuY2VJblJpZ2h0ICpcbioqKioqKioqKioqKioqKiovXG5ALXdlYmtpdC1rZXlmcmFtZXMgYm91bmNlSW5SaWdodCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDQwMHB4KTsgfVxuICA2MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0zMHB4KTsgfVxuICA4MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwcHgpOyB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IH0gfVxuXG5Aa2V5ZnJhbWVzIGJvdW5jZUluUmlnaHQge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNDAwcHgpOyB9XG4gIDYwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0zMHB4KTsgfVxuICA4MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMHB4KTsgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgfSB9XG5cbi5ib3VuY2VJblJpZ2h0LmdvIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogYm91bmNlSW5SaWdodDtcbiAgYW5pbWF0aW9uLW5hbWU6IGJvdW5jZUluUmlnaHQ7IH1cblxuLyoqKioqKioqKioqKioqKioqKlxuKiBCb3VuY2UgaW4gbGVmdCAqXG4qKioqKioqKioqKioqKioqKioqL1xuQC13ZWJraXQta2V5ZnJhbWVzIGJvdW5jZUluTGVmdCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC00MDBweCk7IH1cbiAgNjAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgzMHB4KTsgfVxuICA4MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMHB4KTsgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyB9IH1cblxuQGtleWZyYW1lcyBib3VuY2VJbkxlZnQge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTQwMHB4KTsgfVxuICA2MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgzMHB4KTsgfVxuICA4MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTBweCk7IH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IH0gfVxuXG4uYm91bmNlSW5MZWZ0LmdvIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogYm91bmNlSW5MZWZ0O1xuICBhbmltYXRpb24tbmFtZTogYm91bmNlSW5MZWZ0OyB9XG5cbi8qKioqKioqKioqKioqKioqKipcbiogQm91bmNlIGluIHVwICpcbioqKioqKioqKioqKioqKioqKiovXG5ALXdlYmtpdC1rZXlmcmFtZXMgYm91bmNlSW5VcCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDQwMHB4KTsgfVxuICA2MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zMHB4KTsgfVxuICA4MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwcHgpOyB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH0gfVxuXG5Aa2V5ZnJhbWVzIGJvdW5jZUluVXAge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNDAwcHgpOyB9XG4gIDYwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zMHB4KTsgfVxuICA4MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMHB4KTsgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgfSB9XG5cbi5ib3VuY2VJblVwLmdvIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogYm91bmNlSW5VcDtcbiAgYW5pbWF0aW9uLW5hbWU6IGJvdW5jZUluVXA7IH1cblxuLyoqKioqKioqKioqKioqKioqKlxuKiBCb3VuY2UgaW4gZG93biAqXG4qKioqKioqKioqKioqKioqKioqL1xuQC13ZWJraXQta2V5ZnJhbWVzIGJvdW5jZUluRG93biB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC00MDBweCk7IH1cbiAgNjAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgzMHB4KTsgfVxuICA4MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMHB4KTsgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9IH1cblxuQGtleWZyYW1lcyBib3VuY2VJbkRvd24ge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTQwMHB4KTsgfVxuICA2MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgzMHB4KTsgfVxuICA4MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTBweCk7IH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH0gfVxuXG4uYm91bmNlSW5Eb3duLmdvIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogYm91bmNlSW5Eb3duO1xuICBhbmltYXRpb24tbmFtZTogYm91bmNlSW5Eb3duOyB9XG5cbi8qKioqKioqKioqXG4qIEZhZGUgSW4gKlxuKioqKioqKioqKi9cbkAtd2Via2l0LWtleWZyYW1lcyBmYWRlSW4ge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDsgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9IH1cblxuQGtleWZyYW1lcyBmYWRlSW4ge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDsgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9IH1cblxuLmZhZGVJbiB7XG4gIG9wYWNpdHk6IDA7IH1cblxuLmZhZGVJbi5nbyB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZhZGVJbjtcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVJbjsgfVxuXG4vKioqKioqKioqKlxuKiBHcm93IGluICpcbioqKioqKioqKioqL1xuQC13ZWJraXQta2V5ZnJhbWVzIGdyb3dJbiB7XG4gIDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMC4yKTtcbiAgICBvcGFjaXR5OiAwOyB9XG4gIDUwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEuMik7IH1cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIG9wYWNpdHk6IDE7IH0gfVxuXG5Aa2V5ZnJhbWVzIGdyb3dJbiB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuMik7XG4gICAgb3BhY2l0eTogMDsgfVxuICA1MCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4yKTsgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIG9wYWNpdHk6IDE7IH0gfVxuXG4uZ3Jvd0luIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDAuMik7XG4gIHRyYW5zZm9ybTogc2NhbGUoMC4yKTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uZ3Jvd0luLmdvIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZ3Jvd0luO1xuICBhbmltYXRpb24tbmFtZTogZ3Jvd0luOyB9XG5cbi8qKioqKioqKlxuKiBTaGFrZSAqXG4qKioqKioqKi9cbkAtd2Via2l0LWtleWZyYW1lcyBzaGFrZSB7XG4gIDAlLFxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgfVxuICAxMCUsXG4gIDMwJSxcbiAgNTAlLFxuICA3MCUsXG4gIDkwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwcHgpOyB9XG4gIDIwJSxcbiAgNDAlLFxuICA2MCUsXG4gIDgwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTBweCk7IH0gfVxuXG5Aa2V5ZnJhbWVzIHNoYWtlIHtcbiAgMCUsXG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgfVxuICAxMCUsXG4gIDMwJSxcbiAgNTAlLFxuICA3MCUsXG4gIDkwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMHB4KTsgfVxuICAyMCUsXG4gIDQwJSxcbiAgNjAlLFxuICA4MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMHB4KTsgfSB9XG5cbi5zaGFrZS5nbyB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHNoYWtlO1xuICBhbmltYXRpb24tbmFtZTogc2hha2U7IH1cblxuLyoqKioqKioqXG4qIFNoYWtlVXAgKlxuKioqKioqKiovXG5ALXdlYmtpdC1rZXlmcmFtZXMgc2hha2VVcCB7XG4gIDAlLFxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgfVxuICAxMCUsXG4gIDMwJSxcbiAgNTAlLFxuICA3MCUsXG4gIDkwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwcHgpOyB9XG4gIDIwJSxcbiAgNDAlLFxuICA2MCUsXG4gIDgwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTBweCk7IH0gfVxuXG5Aa2V5ZnJhbWVzIHNoYWtlVXAge1xuICAwJSxcbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9XG4gIDEwJSxcbiAgMzAlLFxuICA1MCUsXG4gIDcwJSxcbiAgOTAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwcHgpOyB9XG4gIDIwJSxcbiAgNDAlLFxuICA2MCUsXG4gIDgwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwcHgpOyB9IH1cblxuLnNoYWtlVXAuZ28ge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBzaGFrZVVwO1xuICBhbmltYXRpb24tbmFtZTogc2hha2VVcDsgfVxuXG4vKioqKioqKioqKioqKlxuKiBGYWRlSW5MZWZ0ICpcbioqKioqKioqKioqKiovXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZUluTGVmdCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC00MDBweCk7IH1cbiAgNTAlIHtcbiAgICBvcGFjaXR5OiAwLjM7IH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgfSB9XG5cbkBrZXlmcmFtZXMgZmFkZUluTGVmdCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNDAwcHgpOyB9XG4gIDUwJSB7XG4gICAgb3BhY2l0eTogMC4zOyB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyB9IH1cblxuLmZhZGVJbkxlZnQge1xuICBvcGFjaXR5OiAwO1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNDAwcHgpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTQwMHB4KTsgfVxuXG4uZmFkZUluTGVmdC5nbyB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZhZGVJbkxlZnQ7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlSW5MZWZ0OyB9XG5cbi8qKioqKioqKioqKioqXG4qIEZhZGVJblJpZ2h0ICpcbioqKioqKioqKioqKiovXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZUluUmlnaHQge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCg0MDBweCk7IH1cbiAgNTAlIHtcbiAgICBvcGFjaXR5OiAwLjM7IH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgfSB9XG5cbkBrZXlmcmFtZXMgZmFkZUluUmlnaHQge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNDAwcHgpOyB9XG4gIDUwJSB7XG4gICAgb3BhY2l0eTogMC4zOyB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyB9IH1cblxuLmZhZGVJblJpZ2h0IHtcbiAgb3BhY2l0eTogMDtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNDAwcHgpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNDAwcHgpOyB9XG5cbi5mYWRlSW5SaWdodC5nbyB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZhZGVJblJpZ2h0O1xuICBhbmltYXRpb24tbmFtZTogZmFkZUluUmlnaHQ7IH1cblxuLyoqKioqKioqKioqKipcbiogRmFkZUluVXAgKlxuKioqKioqKioqKioqKi9cbkAtd2Via2l0LWtleWZyYW1lcyBmYWRlSW5VcCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDQwMHB4KTsgfVxuICA1MCUge1xuICAgIG9wYWNpdHk6IDAuMzsgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9IH1cblxuQGtleWZyYW1lcyBmYWRlSW5VcCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg0MDBweCk7IH1cbiAgNTAlIHtcbiAgICBvcGFjaXR5OiAwLjM7IH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH0gfVxuXG4uZmFkZUluVXAge1xuICBvcGFjaXR5OiAwO1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSg0MDBweCk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg0MDBweCk7IH1cblxuLmZhZGVJblVwLmdvIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmFkZUluVXA7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlSW5VcDsgfVxuXG4vKioqKioqKioqKioqKlxuKiBGYWRlSW5Eb3duICpcbioqKioqKioqKioqKiovXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZUluRG93biB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC00MDBweCk7IH1cbiAgNTAlIHtcbiAgICBvcGFjaXR5OiAwLjM7IH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgfSB9XG5cbkBrZXlmcmFtZXMgZmFkZUluRG93biB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNDAwcHgpOyB9XG4gIDUwJSB7XG4gICAgb3BhY2l0eTogMC4zOyB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9IH1cblxuLmZhZGVJbkRvd24ge1xuICBvcGFjaXR5OiAwO1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNDAwcHgpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTQwMHB4KTsgfVxuXG4uZmFkZUluRG93bi5nbyB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZhZGVJbkRvd247XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlSW5Eb3duOyB9XG5cbi8qKioqKioqKioqKioqKioqKlxuKiByb3RhdGVJbiAqXG4qKioqKioqKioqKioqKioqKi9cbkAtd2Via2l0LWtleWZyYW1lcyByb3RhdGVJbiB7XG4gIDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXI7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgtMjAwZGVnKTtcbiAgICBvcGFjaXR5OiAwOyB9XG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGNlbnRlcjtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDApO1xuICAgIG9wYWNpdHk6IDE7IH0gfVxuXG5Aa2V5ZnJhbWVzIHJvdGF0ZUluIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXI7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTIwMGRlZyk7XG4gICAgb3BhY2l0eTogMDsgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDApO1xuICAgIG9wYWNpdHk6IDE7IH0gfVxuXG4ucm90YXRlSW4uZ28ge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiByb3RhdGVJbjtcbiAgYW5pbWF0aW9uLW5hbWU6IHJvdGF0ZUluOyB9XG5cbi8qKioqKioqKioqKioqKioqKlxuKiByb3RhdGVJblVwTGVmdCAqXG4qKioqKioqKioqKioqKioqKi9cbkAtd2Via2l0LWtleWZyYW1lcyByb3RhdGVJblVwTGVmdCB7XG4gIDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xuICAgIG9wYWNpdHk6IDA7IH1cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDApO1xuICAgIG9wYWNpdHk6IDE7IH0gfVxuXG5Aa2V5ZnJhbWVzIHJvdGF0ZUluVXBMZWZ0IHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcbiAgICBvcGFjaXR5OiAwOyB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDApO1xuICAgIG9wYWNpdHk6IDE7IH0gfVxuXG4ucm90YXRlSW5VcExlZnQuZ28ge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiByb3RhdGVJblVwTGVmdDtcbiAgYW5pbWF0aW9uLW5hbWU6IHJvdGF0ZUluVXBMZWZ0OyB9XG5cbi8qKioqKioqKioqKioqKioqKioqXG4qIHJvdGF0ZUluRG93bkxlZnQgKlxuKioqKioqKioqKioqKioqKioqKi9cbkAtd2Via2l0LWtleWZyYW1lcyByb3RhdGVJbkRvd25MZWZ0IHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuICAgIG9wYWNpdHk6IDA7IH1cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDApO1xuICAgIG9wYWNpdHk6IDE7IH0gfVxuXG5Aa2V5ZnJhbWVzIHJvdGF0ZUluRG93bkxlZnQge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbiAgICBvcGFjaXR5OiAwOyB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDApO1xuICAgIG9wYWNpdHk6IDE7IH0gfVxuXG4ucm90YXRlSW5Eb3duTGVmdC5nbyB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHJvdGF0ZUluRG93bkxlZnQ7XG4gIGFuaW1hdGlvbi1uYW1lOiByb3RhdGVJbkRvd25MZWZ0OyB9XG5cbi8qKioqKioqKioqKioqKioqKipcbiogcm90YXRlSW5VcFJpZ2h0ICpcbioqKioqKioqKioqKioqKioqKiovXG5ALXdlYmtpdC1rZXlmcmFtZXMgcm90YXRlSW5VcFJpZ2h0IHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbiAgICBvcGFjaXR5OiAwOyB9XG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMCk7XG4gICAgb3BhY2l0eTogMTsgfSB9XG5cbkBrZXlmcmFtZXMgcm90YXRlSW5VcFJpZ2h0IHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuICAgIG9wYWNpdHk6IDA7IH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDApO1xuICAgIG9wYWNpdHk6IDE7IH0gfVxuXG4ucm90YXRlSW5VcFJpZ2h0LmdvIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogcm90YXRlSW5VcFJpZ2h0O1xuICBhbmltYXRpb24tbmFtZTogcm90YXRlSW5VcFJpZ2h0OyB9XG5cbi8qKioqKioqKioqKioqKioqKioqKlxuKiByb3RhdGVJbkRvd25SaWdodCAqXG4qKioqKioqKioqKioqKioqKioqKi9cbkAtd2Via2l0LWtleWZyYW1lcyByb3RhdGVJbkRvd25SaWdodCB7XG4gIDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcbiAgICBvcGFjaXR5OiAwOyB9XG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMCk7XG4gICAgb3BhY2l0eTogMTsgfSB9XG5cbkBrZXlmcmFtZXMgcm90YXRlSW5Eb3duUmlnaHQge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcbiAgICBvcGFjaXR5OiAwOyB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwKTtcbiAgICBvcGFjaXR5OiAxOyB9IH1cblxuLnJvdGF0ZUluRG93blJpZ2h0LmdvIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogcm90YXRlSW5Eb3duUmlnaHQ7XG4gIGFuaW1hdGlvbi1uYW1lOiByb3RhdGVJbkRvd25SaWdodDsgfVxuXG4vKioqKioqKioqXG4qIHJvbGxJbiAqXG4qKioqKioqKioqL1xuQC13ZWJraXQta2V5ZnJhbWVzIHJvbGxJbiB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKSByb3RhdGUoLTEyMGRlZyk7IH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgwcHgpIHJvdGF0ZSgwZGVnKTsgfSB9XG5cbkBrZXlmcmFtZXMgcm9sbEluIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKSByb3RhdGUoLTEyMGRlZyk7IH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMHB4KSByb3RhdGUoMGRlZyk7IH0gfVxuXG4ucm9sbEluLmdvIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogcm9sbEluO1xuICBhbmltYXRpb24tbmFtZTogcm9sbEluOyB9XG5cbi8qKioqKioqKipcbiogd2lnZ2xlICpcbioqKioqKioqKiovXG5ALXdlYmtpdC1rZXlmcmFtZXMgd2lnZ2xlIHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBza2V3WCg5ZGVnKTsgfVxuICAxMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBza2V3WCgtOGRlZyk7IH1cbiAgMjAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2tld1goN2RlZyk7IH1cbiAgMzAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2tld1goLTZkZWcpOyB9XG4gIDQwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNrZXdYKDVkZWcpOyB9XG4gIDUwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNrZXdYKC00ZGVnKTsgfVxuICA2MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBza2V3WCgzZGVnKTsgfVxuICA3MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBza2V3WCgtMmRlZyk7IH1cbiAgODAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2tld1goMWRlZyk7IH1cbiAgOTAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2tld1goMGRlZyk7IH1cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNrZXdYKDBkZWcpOyB9IH1cblxuQGtleWZyYW1lcyB3aWdnbGUge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiBza2V3WCg5ZGVnKTsgfVxuICAxMCUge1xuICAgIHRyYW5zZm9ybTogc2tld1goLThkZWcpOyB9XG4gIDIwJSB7XG4gICAgdHJhbnNmb3JtOiBza2V3WCg3ZGVnKTsgfVxuICAzMCUge1xuICAgIHRyYW5zZm9ybTogc2tld1goLTZkZWcpOyB9XG4gIDQwJSB7XG4gICAgdHJhbnNmb3JtOiBza2V3WCg1ZGVnKTsgfVxuICA1MCUge1xuICAgIHRyYW5zZm9ybTogc2tld1goLTRkZWcpOyB9XG4gIDYwJSB7XG4gICAgdHJhbnNmb3JtOiBza2V3WCgzZGVnKTsgfVxuICA3MCUge1xuICAgIHRyYW5zZm9ybTogc2tld1goLTJkZWcpOyB9XG4gIDgwJSB7XG4gICAgdHJhbnNmb3JtOiBza2V3WCgxZGVnKTsgfVxuICA5MCUge1xuICAgIHRyYW5zZm9ybTogc2tld1goMGRlZyk7IH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBza2V3WCgwZGVnKTsgfSB9XG5cbi53aWdnbGUuZ28ge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiB3aWdnbGU7XG4gIGFuaW1hdGlvbi1uYW1lOiB3aWdnbGU7XG4gIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjsgfVxuXG4vKioqKioqKipcbiogc3dpbmcgKlxuKioqKioqKioqL1xuQC13ZWJraXQta2V5ZnJhbWVzIHN3aW5nIHtcbiAgMjAlLFxuICA0MCUsXG4gIDYwJSxcbiAgODAlLFxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IHRvcCBjZW50ZXI7IH1cbiAgMjAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDE1ZGVnKTsgfVxuICA0MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoLTEwZGVnKTsgfVxuICA2MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoNWRlZyk7IH1cbiAgODAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKC01ZGVnKTsgfVxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDBkZWcpOyB9IH1cblxuQGtleWZyYW1lcyBzd2luZyB7XG4gIDIwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMTVkZWcpOyB9XG4gIDQwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTEwZGVnKTsgfVxuICA2MCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDVkZWcpOyB9XG4gIDgwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTVkZWcpOyB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOyB9IH1cblxuLnN3aW5nLmdvIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiB0b3AgY2VudGVyO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgY2VudGVyO1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBzd2luZztcbiAgYW5pbWF0aW9uLW5hbWU6IHN3aW5nOyB9XG5cbi8qKioqKioqXG4qIHRhZGEgKlxuKioqKioqKiovXG5ALXdlYmtpdC1rZXlmcmFtZXMgdGFkYSB7XG4gIDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7IH1cbiAgMTAlLFxuICAyMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjkpIHJvdGF0ZSgtM2RlZyk7IH1cbiAgMzAlLFxuICA1MCUsXG4gIDcwJSxcbiAgOTAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMS4xKSByb3RhdGUoM2RlZyk7IH1cbiAgNDAlLFxuICA2MCUsXG4gIDgwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEuMSkgcm90YXRlKC0zZGVnKTsgfVxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSkgcm90YXRlKDApOyB9IH1cblxuQGtleWZyYW1lcyB0YWRhIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7IH1cbiAgMTAlLFxuICAyMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC45KSByb3RhdGUoLTNkZWcpOyB9XG4gIDMwJSxcbiAgNTAlLFxuICA3MCUsXG4gIDkwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpIHJvdGF0ZSgzZGVnKTsgfVxuICA0MCUsXG4gIDYwJSxcbiAgODAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSkgcm90YXRlKC0zZGVnKTsgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpIHJvdGF0ZSgwKTsgfSB9XG5cbi50YWRhLmdvIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogdGFkYTtcbiAgYW5pbWF0aW9uLW5hbWU6IHRhZGE7IH1cblxuLyoqKioqKioqKlxuKiB3b2JibGUgKlxuKioqKioqKioqKi9cbkAtd2Via2l0LWtleWZyYW1lcyB3b2JibGUge1xuICAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCUpOyB9XG4gIDE1JSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTI1JSkgcm90YXRlKC01ZGVnKTsgfVxuICAzMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwJSkgcm90YXRlKDNkZWcpOyB9XG4gIDQ1JSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTE1JSkgcm90YXRlKC0zZGVnKTsgfVxuICA2MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwJSkgcm90YXRlKDJkZWcpOyB9XG4gIDc1JSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUlKSByb3RhdGUoLTFkZWcpOyB9XG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDAlKTsgfSB9XG5cbkBrZXlmcmFtZXMgd29iYmxlIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwJSk7IH1cbiAgMTUlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTI1JSkgcm90YXRlKC01ZGVnKTsgfVxuICAzMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgyMCUpIHJvdGF0ZSgzZGVnKTsgfVxuICA0NSUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTUlKSByb3RhdGUoLTNkZWcpOyB9XG4gIDYwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwJSkgcm90YXRlKDJkZWcpOyB9XG4gIDc1JSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01JSkgcm90YXRlKC0xZGVnKTsgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCUpOyB9IH1cblxuLndvYmJsZS5nbyB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHdvYmJsZTtcbiAgYW5pbWF0aW9uLW5hbWU6IHdvYmJsZTsgfVxuXG4vKioqKioqKipcbiogcHVsc2UgKlxuKioqKioqKioqL1xuQC13ZWJraXQta2V5ZnJhbWVzIHB1bHNlIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC45NSk7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgMCByZ2JhKDAsIDAsIDAsIDAuNyk7IH1cbiAgNzAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDEwcHggcmdiYSgwLCAwLCAwLCAwKTsgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTUpO1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDAgcmdiYSgwLCAwLCAwLCAwKTsgfSB9XG5cbkBrZXlmcmFtZXMgcHVsc2Uge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk1KTtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAwIHJnYmEoMCwgMCwgMCwgMC43KTsgfVxuICA3MCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgMTBweCByZ2JhKDAsIDAsIDAsIDApOyB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC45NSk7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgMCByZ2JhKDAsIDAsIDAsIDApOyB9IH1cblxuLnB1bHNlLmdvIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogcHVsc2U7XG4gIGFuaW1hdGlvbi1uYW1lOiBwdWxzZTsgfVxuXG4vKioqKioqKioqKioqKioqXG4qIGxpZ2h0U3BlZWRJblJpZ2h0ICpcbioqKioqKioqKioqKioqKiovXG5ALXdlYmtpdC1rZXlmcmFtZXMgbGlnaHRTcGVlZEluUmlnaHQge1xuICAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSkgc2tld1goLTMwZGVnKTtcbiAgICBvcGFjaXR5OiAwOyB9XG4gIDYwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTIwJSkgc2tld1goMzBkZWcpO1xuICAgIG9wYWNpdHk6IDE7IH1cbiAgODAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgwJSkgc2tld1goLTE1ZGVnKTtcbiAgICBvcGFjaXR5OiAxOyB9XG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDAlKSBza2V3WCgwZGVnKTtcbiAgICBvcGFjaXR5OiAxOyB9IH1cblxuQGtleWZyYW1lcyBsaWdodFNwZWVkSW5SaWdodCB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSkgc2tld1goLTMwZGVnKTtcbiAgICBvcGFjaXR5OiAwOyB9XG4gIDYwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0yMCUpIHNrZXdYKDMwZGVnKTtcbiAgICBvcGFjaXR5OiAxOyB9XG4gIDgwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDAlKSBza2V3WCgtMTVkZWcpO1xuICAgIG9wYWNpdHk6IDE7IH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDAlKSBza2V3WCgwZGVnKTtcbiAgICBvcGFjaXR5OiAxOyB9IH1cblxuLmxpZ2h0U3BlZWRJblJpZ2h0LmdvIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogbGlnaHRTcGVlZEluUmlnaHQ7XG4gIGFuaW1hdGlvbi1uYW1lOiBsaWdodFNwZWVkSW5SaWdodDtcbiAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDtcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7IH1cblxuLyoqKioqKioqKioqKioqKlxuKiBsaWdodFNwZWVkSW5MZWZ0ICpcbioqKioqKioqKioqKioqKiovXG5ALXdlYmtpdC1rZXlmcmFtZXMgbGlnaHRTcGVlZEluTGVmdCB7XG4gIDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSkgc2tld1goMzBkZWcpO1xuICAgIG9wYWNpdHk6IDA7IH1cbiAgNjAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgyMCUpIHNrZXdYKC0zMGRlZyk7XG4gICAgb3BhY2l0eTogMTsgfVxuICA4MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDAlKSBza2V3WCgxNWRlZyk7XG4gICAgb3BhY2l0eTogMTsgfVxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgwJSkgc2tld1goMGRlZyk7XG4gICAgb3BhY2l0eTogMTsgfSB9XG5cbkBrZXlmcmFtZXMgbGlnaHRTcGVlZEluTGVmdCB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpIHNrZXdYKDMwZGVnKTtcbiAgICBvcGFjaXR5OiAwOyB9XG4gIDYwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwJSkgc2tld1goLTMwZGVnKTtcbiAgICBvcGFjaXR5OiAxOyB9XG4gIDgwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDAlKSBza2V3WCgxNWRlZyk7XG4gICAgb3BhY2l0eTogMTsgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCUpIHNrZXdYKDBkZWcpO1xuICAgIG9wYWNpdHk6IDE7IH0gfVxuXG4ubGlnaHRTcGVlZEluTGVmdC5nbyB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGxpZ2h0U3BlZWRJbkxlZnQ7XG4gIGFuaW1hdGlvbi1uYW1lOiBsaWdodFNwZWVkSW5MZWZ0O1xuICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDsgfVxuXG4vKioqKioqKlxuKiBGbGlwICpcbioqKioqKiovXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmxpcCB7XG4gIDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoMCk7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDsgfVxuICA0MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgdHJhbnNsYXRlWigxNTBweCkgcm90YXRlWSgxNzBkZWcpO1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7IH1cbiAgNTAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHRyYW5zbGF0ZVooMTUwcHgpIHJvdGF0ZVkoMTkwZGVnKSBzY2FsZSgxKTtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47IH1cbiAgODAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoMzYwZGVnKSBzY2FsZSgwLjk1KTtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47IH1cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSBzY2FsZSgxKTtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47IH0gfVxuXG5Aa2V5ZnJhbWVzIGZsaXAge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWSgwKTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDsgfVxuICA0MCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHRyYW5zbGF0ZVooMTUwcHgpIHJvdGF0ZVkoMTcwZGVnKTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDsgfVxuICA1MCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHRyYW5zbGF0ZVooMTUwcHgpIHJvdGF0ZVkoMTkwZGVnKSBzY2FsZSgxKTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluOyB9XG4gIDgwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWSgzNjBkZWcpIHNjYWxlKDAuOTUpO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47IH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgc2NhbGUoMSk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjsgfSB9XG5cbi5mbGlwLmdvIHtcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZsaXA7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IHZpc2libGUgIWltcG9ydGFudDtcbiAgYW5pbWF0aW9uLW5hbWU6IGZsaXA7IH1cblxuLyoqKioqKioqKipcbiogZmxpcEluWCAqXG4qKioqKioqKioqL1xuQC13ZWJraXQta2V5ZnJhbWVzIGZsaXBJblgge1xuICAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKDkwZGVnKTtcbiAgICBvcGFjaXR5OiAwOyB9XG4gIDQwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKC0xMGRlZyk7IH1cbiAgNzAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoMTBkZWcpOyB9XG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWCgwZGVnKTtcbiAgICBvcGFjaXR5OiAxOyB9IH1cblxuQGtleWZyYW1lcyBmbGlwSW5YIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoOTBkZWcpO1xuICAgIG9wYWNpdHk6IDA7IH1cbiAgNDAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKC0xMGRlZyk7IH1cbiAgNzAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKDEwZGVnKTsgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKDBkZWcpO1xuICAgIG9wYWNpdHk6IDE7IH0gfVxuXG4uZmxpcEluWC5nbyB7XG4gIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogdmlzaWJsZSAhaW1wb3J0YW50O1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmbGlwSW5YO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG4gIGFuaW1hdGlvbi1uYW1lOiBmbGlwSW5YOyB9XG5cbi8qKioqKioqKioqXG4qIGZsaXBJblkgKlxuKioqKioqKioqKi9cbkAtd2Via2l0LWtleWZyYW1lcyBmbGlwSW5ZIHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWSg5MGRlZyk7XG4gICAgb3BhY2l0eTogMDsgfVxuICA0MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWSgtMTBkZWcpOyB9XG4gIDcwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKDEwZGVnKTsgfVxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoMGRlZyk7XG4gICAgb3BhY2l0eTogMTsgfSB9XG5cbkBrZXlmcmFtZXMgZmxpcEluWSB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKDkwZGVnKTtcbiAgICBvcGFjaXR5OiAwOyB9XG4gIDQwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWSgtMTBkZWcpOyB9XG4gIDcwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWSgxMGRlZyk7IH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWSgwZGVnKTtcbiAgICBvcGFjaXR5OiAxOyB9IH1cblxuLmZsaXBJblkuZ28ge1xuICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IHZpc2libGUgIWltcG9ydGFudDtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmxpcEluWTtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogdmlzaWJsZSAhaW1wb3J0YW50O1xuICBhbmltYXRpb24tbmFtZTogZmxpcEluWTsgfVxuXG4vKioqKioqKioqKioqKioqKipcbiogT3V0IGFuaW1hdGlvbnMgKlxuKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqXG4qIGJvdW5jZU91dCAqXG4qKioqKioqKioqKioqL1xuQC13ZWJraXQta2V5ZnJhbWVzIGJvdW5jZU91dCB7XG4gIDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7IH1cbiAgMjUlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMC45NSk7IH1cbiAgNTAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxLjEpOyB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDAuMyk7IH0gfVxuXG5Aa2V5ZnJhbWVzIGJvdW5jZU91dCB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpOyB9XG4gIDI1JSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk1KTsgfVxuICA1MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpOyB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjMpOyB9IH1cblxuLmJvdW5jZU91dC5nb0F3YXkge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBib3VuY2VPdXQ7XG4gIGFuaW1hdGlvbi1uYW1lOiBib3VuY2VPdXQ7IH1cblxuLyoqKioqKioqKioqKlxuKiBib3VuY2VPdXRVcCAqXG4qKioqKioqKioqKioqL1xuQC13ZWJraXQta2V5ZnJhbWVzIGJvdW5jZU91dFVwIHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9XG4gIDIwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgyMHB4KTsgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yMDAwcHgpOyB9IH1cblxuQGtleWZyYW1lcyBib3VuY2VPdXRVcCB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH1cbiAgMjAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyMHB4KTsgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjAwMHB4KTsgfSB9XG5cbi5ib3VuY2VPdXRVcC5nb0F3YXkge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBib3VuY2VPdXRVcDtcbiAgYW5pbWF0aW9uLW5hbWU6IGJvdW5jZU91dFVwOyB9XG5cbi8qKioqKioqKioqKipcbiogYm91bmNlT3V0RG93biAqXG4qKioqKioqKioqKioqL1xuQC13ZWJraXQta2V5ZnJhbWVzIGJvdW5jZU91dERvd24ge1xuICAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH1cbiAgMjAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yMHB4KTsgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDIwMDBweCk7IH0gfVxuXG5Aa2V5ZnJhbWVzIGJvdW5jZU91dERvd24ge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9XG4gIDIwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTIwcHgpOyB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDIwMDBweCk7IH0gfVxuXG4uYm91bmNlT3V0RG93bi5nb0F3YXkge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBib3VuY2VPdXREb3duO1xuICBhbmltYXRpb24tbmFtZTogYm91bmNlT3V0RG93bjsgfVxuXG4vKioqKioqKioqKioqXG4qIGJvdW5jZU91dExlZnQgKlxuKioqKioqKioqKioqKi9cbkAtd2Via2l0LWtleWZyYW1lcyBib3VuY2VPdXRMZWZ0IHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyB9XG4gIDIwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgyMHB4KTsgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0yMDAwcHgpOyB9IH1cblxuQGtleWZyYW1lcyBib3VuY2VPdXRMZWZ0IHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgfVxuICAyMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwcHgpOyB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0yMDAwcHgpOyB9IH1cblxuLmJvdW5jZU91dExlZnQuZ29Bd2F5IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogYm91bmNlT3V0TGVmdDtcbiAgYW5pbWF0aW9uLW5hbWU6IGJvdW5jZU91dExlZnQ7IH1cblxuLyoqKioqKioqKioqKlxuKiBib3VuY2VPdXRSaWdodCAqXG4qKioqKioqKioqKioqL1xuQC13ZWJraXQta2V5ZnJhbWVzIGJvdW5jZU91dFJpZ2h0IHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyB9XG4gIDIwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMjBweCk7IH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgyMDAwcHgpOyB9IH1cblxuQGtleWZyYW1lcyBib3VuY2VPdXRSaWdodCB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IH1cbiAgMjAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMjBweCk7IH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjAwMHB4KTsgfSB9XG5cbi5ib3VuY2VPdXRSaWdodC5nb0F3YXkge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBib3VuY2VPdXRSaWdodDtcbiAgYW5pbWF0aW9uLW5hbWU6IGJvdW5jZU91dFJpZ2h0OyB9XG5cbi8qKioqKioqKioqKipcbiogZmFkZU91dCAqXG4qKioqKioqKioqKioqL1xuQC13ZWJraXQta2V5ZnJhbWVzIGZhZGVPdXQge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMTsgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwOyB9IH1cblxuQGtleWZyYW1lcyBmYWRlT3V0IHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDE7IH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDsgfSB9XG5cbi5mYWRlT3V0LmdvQXdheSB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXQ7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0OyB9XG5cbi8qKioqKioqKioqKipcbiogZmFkZU91dFVwICpcbioqKioqKioqKioqKiovXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZU91dFVwIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjAwMHB4KTsgfSB9XG5cbkBrZXlmcmFtZXMgZmFkZU91dFVwIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yMDAwcHgpOyB9IH1cblxuLmZhZGVPdXRVcC5nb0F3YXkge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0VXA7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0VXA7IH1cblxuLyoqKioqKioqKioqKlxuKiBmYWRlT3V0RG93biAqXG4qKioqKioqKioqKioqL1xuQC13ZWJraXQta2V5ZnJhbWVzIGZhZGVPdXREb3duIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgyMDAwcHgpOyB9IH1cblxuQGtleWZyYW1lcyBmYWRlT3V0RG93biB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyMDAwcHgpOyB9IH1cblxuLmZhZGVPdXREb3duLmdvQXdheSB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXREb3duO1xuICBhbmltYXRpb24tbmFtZTogZmFkZU91dERvd247IH1cblxuLyoqKioqKioqKioqKlxuKiBmYWRlT3V0TGVmdCAqXG4qKioqKioqKioqKioqL1xuQC13ZWJraXQta2V5ZnJhbWVzIGZhZGVPdXRMZWZ0IHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMjAwMHB4KTsgfSB9XG5cbkBrZXlmcmFtZXMgZmFkZU91dExlZnQge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTIwMDBweCk7IH0gfVxuXG4uZmFkZU91dExlZnQuZ29Bd2F5IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmFkZU91dExlZnQ7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0TGVmdDsgfVxuXG4vKioqKioqKioqKioqXG4qIGZhZGVPdXRSaWdodCAqXG4qKioqKioqKioqKioqL1xuQC13ZWJraXQta2V5ZnJhbWVzIGZhZGVPdXRSaWdodCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjAwMHB4KTsgfSB9XG5cbkBrZXlmcmFtZXMgZmFkZU91dFJpZ2h0IHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwMDBweCk7IH0gfVxuXG4uZmFkZU91dFJpZ2h0LmdvQXdheSB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXRSaWdodDtcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXRSaWdodDsgfVxuXG4vKioqKioqKioqKioqXG4qIGZsaXBPdXRYICpcbioqKioqKioqKioqKiovXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmxpcE91dFgge1xuICAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKDBkZWcpO1xuICAgIG9wYWNpdHk6IDE7IH1cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKDkwZGVnKTtcbiAgICBvcGFjaXR5OiAwOyB9IH1cblxuQGtleWZyYW1lcyBmbGlwT3V0WCB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKDBkZWcpO1xuICAgIG9wYWNpdHk6IDE7IH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWCg5MGRlZyk7XG4gICAgb3BhY2l0eTogMDsgfSB9XG5cbi5mbGlwT3V0WC5nb0F3YXkge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmbGlwT3V0WDtcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG4gIGFuaW1hdGlvbi1uYW1lOiBmbGlwT3V0WDtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogdmlzaWJsZSAhaW1wb3J0YW50OyB9XG5cbi8qKioqKioqKioqKipcbiogZmxpcE91dFkgKlxuKioqKioqKioqKioqKi9cbkAtd2Via2l0LWtleWZyYW1lcyBmbGlwT3V0WSB7XG4gIDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoMGRlZyk7XG4gICAgb3BhY2l0eTogMTsgfVxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoOTBkZWcpO1xuICAgIG9wYWNpdHk6IDA7IH0gfVxuXG5Aa2V5ZnJhbWVzIGZsaXBPdXRZIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoMGRlZyk7XG4gICAgb3BhY2l0eTogMTsgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKDkwZGVnKTtcbiAgICBvcGFjaXR5OiAwOyB9IH1cblxuLmZsaXBPdXRZIHtcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZsaXBPdXRZO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG4gIGFuaW1hdGlvbi1uYW1lOiBmbGlwT3V0WTsgfVxuXG4vKioqKioqKioqKioqXG4qIGxpZ2h0U3BlZWRPdXRSaWdodCAqXG4qKioqKioqKioqKioqL1xuQC13ZWJraXQta2V5ZnJhbWVzIGxpZ2h0U3BlZWRPdXRSaWdodCB7XG4gIDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgwJSkgc2tld1goMGRlZyk7XG4gICAgb3BhY2l0eTogMTsgfVxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKSBza2V3WCgtMzBkZWcpO1xuICAgIG9wYWNpdHk6IDA7IH0gfVxuXG5Aa2V5ZnJhbWVzIGxpZ2h0U3BlZWRPdXRSaWdodCB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCUpIHNrZXdYKDBkZWcpO1xuICAgIG9wYWNpdHk6IDE7IH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpIHNrZXdYKC0zMGRlZyk7XG4gICAgb3BhY2l0eTogMDsgfSB9XG5cbi5saWdodFNwZWVkT3V0UmlnaHQuZ29Bd2F5IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogbGlnaHRTcGVlZE91dFJpZ2h0O1xuICBhbmltYXRpb24tbmFtZTogbGlnaHRTcGVlZE91dFJpZ2h0O1xuICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47IH1cblxuLyoqKioqKioqKioqKlxuKiBsaWdodFNwZWVkT3V0TGVmdCAqXG4qKioqKioqKioqKioqL1xuQC13ZWJraXQta2V5ZnJhbWVzIGxpZ2h0U3BlZWRPdXRMZWZ0IHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDAlKSBza2V3WCgwZGVnKTtcbiAgICBvcGFjaXR5OiAxOyB9XG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKSBza2V3WCgzMGRlZyk7XG4gICAgb3BhY2l0eTogMDsgfSB9XG5cbkBrZXlmcmFtZXMgbGlnaHRTcGVlZE91dExlZnQge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDAlKSBza2V3WCgwZGVnKTtcbiAgICBvcGFjaXR5OiAxOyB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSkgc2tld1goMzBkZWcpO1xuICAgIG9wYWNpdHk6IDA7IH0gfVxuXG4ubGlnaHRTcGVlZE91dExlZnQuZ29Bd2F5IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogbGlnaHRTcGVlZE91dExlZnQ7XG4gIGFuaW1hdGlvbi1uYW1lOiBsaWdodFNwZWVkT3V0TGVmdDtcbiAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluO1xuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluOyB9XG5cbi8qKioqKioqKioqKipcbiogcm90YXRlT3V0ICpcbioqKioqKioqKioqKiovXG5ALXdlYmtpdC1rZXlmcmFtZXMgcm90YXRlT3V0IHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGNlbnRlcjtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDApO1xuICAgIG9wYWNpdHk6IDE7IH1cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMjAwZGVnKTtcbiAgICBvcGFjaXR5OiAwOyB9IH1cblxuQGtleWZyYW1lcyByb3RhdGVPdXQge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGNlbnRlcjtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwKTtcbiAgICBvcGFjaXR5OiAxOyB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXI7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMjAwZGVnKTtcbiAgICBvcGFjaXR5OiAwOyB9IH1cblxuLnJvdGF0ZU91dC5nb0F3YXkge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiByb3RhdGVPdXQ7XG4gIGFuaW1hdGlvbi1uYW1lOiByb3RhdGVPdXQ7IH1cblxuLyoqKioqKioqKioqKlxuKiByb3RhdGVPdXRVcExlZnQgKlxuKioqKioqKioqKioqKi9cbkAtd2Via2l0LWtleWZyYW1lcyByb3RhdGVPdXRVcExlZnQge1xuICAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDApO1xuICAgIG9wYWNpdHk6IDE7IH1cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XG4gICAgb3BhY2l0eTogMDsgfSB9XG5cbkBrZXlmcmFtZXMgcm90YXRlT3V0VXBMZWZ0IHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDApO1xuICAgIG9wYWNpdHk6IDE7IH1cbiAgMTAwJSB7XG4gICAgLXRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgIC10cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuICAgIG9wYWNpdHk6IDA7IH0gfVxuXG4ucm90YXRlT3V0VXBMZWZ0LmdvQXdheSB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHJvdGF0ZU91dFVwTGVmdDtcbiAgYW5pbWF0aW9uLW5hbWU6IHJvdGF0ZU91dFVwTGVmdDsgfVxuXG4vKioqKioqKioqKioqXG4qIHJvdGF0ZU91dERvd25MZWZ0ICpcbioqKioqKioqKioqKiovXG5ALXdlYmtpdC1rZXlmcmFtZXMgcm90YXRlT3V0RG93bkxlZnQge1xuICAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDApO1xuICAgIG9wYWNpdHk6IDE7IH1cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcbiAgICBvcGFjaXR5OiAwOyB9IH1cblxuQGtleWZyYW1lcyByb3RhdGVPdXREb3duTGVmdCB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwKTtcbiAgICBvcGFjaXR5OiAxOyB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcbiAgICBvcGFjaXR5OiAwOyB9IH1cblxuLnJvdGF0ZU91dERvd25MZWZ0LmdvQXdheSB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHJvdGF0ZU91dERvd25MZWZ0O1xuICBhbmltYXRpb24tbmFtZTogcm90YXRlT3V0RG93bkxlZnQ7IH1cblxuLyoqKioqKioqKioqKlxuKiByb3RhdGVPdXRVcFJpZ2h0ICpcbioqKioqKioqKioqKiovXG5ALXdlYmtpdC1rZXlmcmFtZXMgcm90YXRlT3V0VXBSaWdodCB7XG4gIDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDApO1xuICAgIG9wYWNpdHk6IDE7IH1cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG4gICAgb3BhY2l0eTogMDsgfSB9XG5cbkBrZXlmcmFtZXMgcm90YXRlT3V0VXBSaWdodCB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMCk7XG4gICAgb3BhY2l0eTogMTsgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xuICAgIG9wYWNpdHk6IDA7IH0gfVxuXG4ucm90YXRlT3V0VXBSaWdodC5nb0F3YXkge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiByb3RhdGVPdXRVcFJpZ2h0O1xuICBhbmltYXRpb24tbmFtZTogcm90YXRlT3V0VXBSaWdodDsgfVxuXG4vKioqKioqKioqKioqXG4qIHJvbGxPdXQgKlxuKioqKioqKioqKioqKi9cbkAtd2Via2l0LWtleWZyYW1lcyByb2xsT3V0IHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMHB4KSByb3RhdGUoMGRlZyk7IH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKSByb3RhdGUoMTIwZGVnKTsgfSB9XG5cbkBrZXlmcmFtZXMgcm9sbE91dCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwcHgpIHJvdGF0ZSgwZGVnKTsgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKSByb3RhdGUoMTIwZGVnKTsgfSB9XG5cbi5yb2xsT3V0LmdvQXdheSB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHJvbGxPdXQ7XG4gIGFuaW1hdGlvbi1uYW1lOiByb2xsT3V0OyB9XG5cbi8qKioqKioqKioqKioqKioqKlxuKiBTaG9ydCBBbmltYXRpb25zXG4qKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKlxuKiBmYWRlSW5VcFNob3J0XG4qKioqKioqKioqKioqKioqKioqKiovXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZUluVXBTaG9ydCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDIwcHgpOyB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH0gfVxuXG5Aa2V5ZnJhbWVzIGZhZGVJblVwU2hvcnQge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjBweCk7IH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH0gfVxuXG4uZmFkZUluVXBTaG9ydCB7XG4gIG9wYWNpdHk6IDA7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDIwcHgpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjBweCk7IH1cblxuLmZhZGVJblVwU2hvcnQuZ28ge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmYWRlSW5VcFNob3J0O1xuICBhbmltYXRpb24tbmFtZTogZmFkZUluVXBTaG9ydDsgfVxuXG4vKioqKioqKioqKioqKioqKioqKioqXG4qIGZhZGVJbkRvd25TaG9ydFxuKioqKioqKioqKioqKioqKioqKioqL1xuQC13ZWJraXQta2V5ZnJhbWVzIGZhZGVJbkRvd25TaG9ydCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yMHB4KTsgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9IH1cblxuQGtleWZyYW1lcyBmYWRlSW5Eb3duU2hvcnQge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTIwcHgpOyB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9IH1cblxuLmZhZGVJbkRvd25TaG9ydCB7XG4gIG9wYWNpdHk6IDA7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yMHB4KTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yMHB4KTsgfVxuXG4uZmFkZUluRG93blNob3J0LmdvIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmFkZUluRG93blNob3J0O1xuICBhbmltYXRpb24tbmFtZTogZmFkZUluRG93blNob3J0OyB9XG5cbi8qKioqKioqKioqKioqKioqKioqKipcbiogZmFkZUluUmlnaHRTaG9ydCBcbioqKioqKioqKioqKioqKioqKioqKi9cbkAtd2Via2l0LWtleWZyYW1lcyBmYWRlSW5SaWdodFNob3J0IHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjBweCk7IH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgfSB9XG5cbkBrZXlmcmFtZXMgZmFkZUluUmlnaHRTaG9ydCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgyMHB4KTsgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgfSB9XG5cbi5mYWRlSW5SaWdodFNob3J0IHtcbiAgb3BhY2l0eTogMDtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjBweCk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgyMHB4KTsgfVxuXG4uZmFkZUluUmlnaHRTaG9ydC5nbyB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZhZGVJblJpZ2h0U2hvcnQ7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlSW5SaWdodFNob3J0OyB9XG5cbi8qKioqKioqKioqKioqKioqKioqKipcbiogZmFkZUluTGVmdFNob3J0IFxuKioqKioqKioqKioqKioqKioqKioqL1xuQC13ZWJraXQta2V5ZnJhbWVzIGZhZGVJbkxlZnRTaG9ydCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0yMHB4KTsgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyB9IH1cblxuQGtleWZyYW1lcyBmYWRlSW5MZWZ0U2hvcnQge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTIwcHgpOyB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyB9IH1cblxuLmZhZGVJbkxlZnRTaG9ydCB7XG4gIG9wYWNpdHk6IDA7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0yMHB4KTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0yMHB4KTsgfVxuXG4uZmFkZUluTGVmdFNob3J0LmdvIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmFkZUluTGVmdFNob3J0O1xuICBhbmltYXRpb24tbmFtZTogZmFkZUluTGVmdFNob3J0OyB9XG5cbi8qKioqKioqKioqXG4qIFpvb20gaW4gKlxuKioqKioqKioqKiovXG5ALXdlYmtpdC1rZXlmcmFtZXMgem9vbUluIHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSg1KTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDUpO1xuICAgIG9wYWNpdHk6IDA7IH1cbiAgODAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMC44KTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOCk7XG4gICAgb3BhY2l0eTogLjg7IH1cbiAgODAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMC44KTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOCk7IH1cbiAgOTAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMS4xKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7IH1cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgb3BhY2l0eTogMTsgfSB9XG5cbkBrZXlmcmFtZXMgem9vbUluIHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSg1KTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDUpO1xuICAgIG9wYWNpdHk6IDA7IH1cbiAgODAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMC44KTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOCk7XG4gICAgb3BhY2l0eTogLjg7IH1cbiAgODAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMC44KTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOCk7IH1cbiAgOTAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMS4xKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7IH1cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgb3BhY2l0eTogMTsgfSB9XG5cbi56b29tSW4ge1xuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoNSk7XG4gIC1tcy10cmFuc2Zvcm06IHNjYWxlKDUpO1xuICB0cmFuc2Zvcm06IHNjYWxlKDUpO1xuICBvcGFjaXR5OiAwOyB9XG5cbi56b29tSW4uZ28ge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiB6b29tSW47XG4gIGFuaW1hdGlvbi1uYW1lOiB6b29tSW47XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogLjVzOyB9XG5cbi8qKioqKioqKlxuKiBTaGFrZVVwMiAqXG5TaGFrZSBhbmQgcGF1c2UgXG4qKioqKioqKi9cbkBrZXlmcmFtZXMgc2hha2VVcDIge1xuICAwJSxcbiAgNTAlLFxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH1cbiAgNzAlLFxuICA5MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMHB4KTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwcHgpOyB9XG4gIDYwJSxcbiAgODAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMHB4KTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTBweCk7IH0gfVxuXG4uc2hha2V1cDIge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBzaGFrZVVwMjtcbiAgYW5pbWF0aW9uLW5hbWU6IHNoYWtlVXAyOyB9XG5cbi5zaGFrZTIge1xuICAvKiBTdGFydCB0aGUgc2hha2UgYW5pbWF0aW9uIGFuZCBtYWtlIHRoZSBhbmltYXRpb24gbGFzdCBmb3IgMC41IHNlY29uZHMgKi9cbiAgYW5pbWF0aW9uOiBzaGFrZSAxcztcbiAgLyogV2hlbiB0aGUgYW5pbWF0aW9uIGlzIGZpbmlzaGVkLCBzdGFydCBhZ2FpbiAqL1xuICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTsgfVxuXG5Aa2V5ZnJhbWVzIHNoYWtlIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDFweCwgMXB4KSByb3RhdGUoMGRlZyk7IH1cbiAgMTAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMXB4LCAtMnB4KSByb3RhdGUoLTFkZWcpOyB9XG4gIDIwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTNweCwgMHB4KSByb3RhdGUoMWRlZyk7IH1cbiAgMzAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgzcHgsIDJweCkgcm90YXRlKDBkZWcpOyB9XG4gIDQwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMXB4LCAtMXB4KSByb3RhdGUoMWRlZyk7IH1cbiAgNTAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMXB4LCAycHgpIHJvdGF0ZSgtMWRlZyk7IH1cbiAgNjAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtM3B4LCAxcHgpIHJvdGF0ZSgwZGVnKTsgfVxuICA3MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDNweCwgMXB4KSByb3RhdGUoLTFkZWcpOyB9XG4gIDgwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTFweCwgLTFweCkgcm90YXRlKDFkZWcpOyB9XG4gIDkwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMXB4LCAycHgpIHJvdGF0ZSgwZGVnKTsgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxcHgsIC0ycHgpIHJvdGF0ZSgtMWRlZyk7IH0gfVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmxhc2hsaWdodCB7XG4gIDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApIHNjYWxlKDEpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApIHNjYWxlKDEpOyB9XG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTIwcHgsIC00MHB4KSBzY2FsZSgxLjEpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0yMHB4LCAtNDBweCkgc2NhbGUoMS4xKTsgfSB9XG5cbkBrZXlmcmFtZXMgZmxhc2hsaWdodCB7XG4gIDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApIHNjYWxlKDEpO1xuICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKSBzY2FsZSgxKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKSBzY2FsZSgxKTsgfVxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC0yMHB4LCAtNDBweCkgc2NhbGUoMS4xKTtcbiAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTIwcHgsIC00MHB4KSBzY2FsZSgxLjEpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0yMHB4LCAtNDBweCkgc2NhbGUoMS4xKTsgfSB9XG5cbi5yb3RhdGluZyB7XG4gIGFuaW1hdGlvbjogcm90YXRpbmcgMzBzIGxpbmVhciBpbmZpbml0ZTsgfVxuXG5Aa2V5ZnJhbWVzIHJvdGF0aW9uIHtcbiAgZnJvbSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH1cbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDM1OWRlZyk7IH0gfVxuXG4vKi0tLSBBYm91dCBUZXh0IC0tLSovXG4vKiB0ZXh0IHRydW5jYXRlIG11bHRpbGluZSAqL1xuLyotLS0gQWJvdXQgSW1hZ2VzIC0tLSovXG4vKi0tLSBBYm91dCBQb3NpdGlvbiAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gQWJvdXQgQnV0dG9uIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSBDdXN0b21pemUgU2Nyb2xsYmFyIC0tLSovXG4vKi0tLSBBYm91dCBUZXh0IC0tLSovXG4vKi0tLSBTbW9vdGggU2Nyb2xsIC0tLSovXG46OnNlbGVjdGlvbiB7XG4gIGNvbG9yOiAjMDA0Q0EyO1xuICBiYWNrZ3JvdW5kOiAjYzBjMGMwOyB9XG5cbi8qLS0tIEFuaW1hdGUgYSAtLS0qL1xuYSB7XG4gIHRyYW5zaXRpb246IGFsbCAuMnM7IH1cbiAgYSBpbWcge1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4tb3V0OyB9XG5cbi8qLS0tIEN1c3RvbWl6ZSBTY3JvbGxiYXIgLS0tKi9cbi8qLS0tIENvbW1vbiBDbGFzc05hbWUgLS0tKi9cbi5sb29wLWluZmluaXRlIHtcbiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7IH1cblxuLmxvb3AtNSB7XG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IDU7IH1cblxuLyotLS0gQWJvdXQgQnV0dG9uIC0tLSovXG4uYnRuLWltYWdlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGxpbmUtaGVpZ2h0OiAwOyB9XG4gIC5idG4taW1hZ2UgaW1nOmxhc3QtY2hpbGQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIG9wYWNpdHk6IDA7IH1cbiAgLmJ0bi1pbWFnZTpob3ZlciBpbWc6bGFzdC1jaGlsZCB7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICBvcGFjaXR5OiAxOyB9XG5cbi5idG4taG92ZXItem9vbSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7IH1cbiAgLmJ0bi1ob3Zlci16b29tOmhvdmVyIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7IH1cblxuLmJ0bi1ob3Zlci10cmFuc2xhdGVYIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xcyBlYXNlLWluLW91dDsgfVxuICAuYnRuLWhvdmVyLXRyYW5zbGF0ZVg6aG92ZXIge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTBweCk7IH1cblxuLmJ0bi1ob3Zlci10cmFuc2xhdGVZIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xcyBlYXNlLWluLW91dDsgfVxuICAuYnRuLWhvdmVyLXRyYW5zbGF0ZVk6aG92ZXIge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNXB4KTsgfVxuXG4uYnRuLWhvdmVyLXVuZGVybGluZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgLmJ0bi1ob3Zlci11bmRlcmxpbmU6YmVmb3JlIHtcbiAgICB3aWR0aDogMDtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgYmFja2dyb3VuZDogIzAwMDtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDsgfVxuICAuYnRuLWhvdmVyLXVuZGVybGluZTpob3ZlcjpiZWZvcmUge1xuICAgIHdpZHRoOiAxMDAlOyB9XG5cbi5idG4taG92ZXItYm9yZGVyLXdyYXBwaW5nIHtcbiAgcGFkZGluZzogMjBweDtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJvcmRlcjogbm9uZTsgfVxuICAuYnRuLWhvdmVyLWJvcmRlci13cmFwcGluZzpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6IC0xO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgdG9wOiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBib3JkZXI6ICNmZmYwMDAgZGFzaGVkO1xuICAgIGJvcmRlci13aWR0aDogMDtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItd2lkdGggMC4xcyBlYXNlLW91dDsgfVxuICAuYnRuLWhvdmVyLWJvcmRlci13cmFwcGluZzpob3ZlcjpiZWZvcmUge1xuICAgIHotaW5kZXg6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICAgIGJvcmRlci13aWR0aDogNXB4OyB9XG5cbi5idG4taG92ZXItc2hpbmUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAuYnRuLWhvdmVyLXNoaW5lOmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgdG9wOiAtMTEwJTtcbiAgICBsZWZ0OiAtMjEwJTtcbiAgICB3aWR0aDogMjAwJTtcbiAgICBoZWlnaHQ6IDIwMCU7XG4gICAgb3BhY2l0eTogMDtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMykgMCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMykgNzclLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSkgOTIlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDApIDEwMCUpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTsgfVxuICAuYnRuLWhvdmVyLXNoaW5lOmhvdmVyOmFmdGVyIHtcbiAgICAtd2Via2l0LWFuaW1hdGlvbjogc2hpbmUgLjc1cztcbiAgICBhbmltYXRpb246IHNoaW5lIC43NXM7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0b3A6IC0zMCU7XG4gICAgbGVmdDogLTMwJTtcbiAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiBsZWZ0LCB0b3AsIG9wYWNpdHk7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMXMsIDFzLCAuMTVzO1xuICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlOyB9XG5cbi8qLS0tIEFib3V0IFRleHQgLS0tKi9cbi50ZXh0LXRydW5jYXRlIHtcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gIC13ZWJraXQtbGluZS1jbGFtcDogMjtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZy1ib3R0b206IDAgIWltcG9ydGFudDsgfVxuXG4udGV4dC1zdHJva2Uge1xuICBmb250LXNpemU6IDEwMHB4O1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoOTBkZWcsICMwMDAgMjAlLCAjZjAwIDUwJSk7XG4gIC8qIENocm9tZTEwKyxTYWZhcmk1LjErICovXG4gIC13ZWJraXQtdGV4dC1zdHJva2U6IDVweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDEpO1xuICAtd2Via2l0LWJhY2tncm91bmQtY2xpcDogdGV4dDsgfVxuXG4udGV4dC1ncmFkaWVudCB7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc2l6ZTogMTAwcHg7XG4gIGJhY2tncm91bmQ6ICMwMDA7XG4gIGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KGxlZ2FjeS1kaXJlY3Rpb24oMTgwZGVnKSwgIzAwMCwgI2YwMCwgI2ZmZjAwMCk7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsICMwMDAsICNmMDAsICNmZmYwMDApO1xuICAtd2Via2l0LWJhY2tncm91bmQtY2xpcDogdGV4dDtcbiAgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6IHRyYW5zcGFyZW50OyB9XG5cbi8qLS0tIEFib3V0IEltYWdlIC0tLSovXG4uaW1hZ2UtZml0IHtcbiAgd2lkdGg6IDI1MHB4O1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiAzNTBweDtcbiAgb2JqZWN0LWZpdDogY292ZXI7XG4gIG9iamVjdC1wb3NpdGlvbjogY2VudGVyO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDsgfVxuXG4vKi0tLSBBYm91dCBFZmZlY3QgLS0tKi9cbi5lZmZlY3QtZ3JhZGllbnQtbGluZWFyIHtcbiAgYmFja2dyb3VuZDogIzc3RDdFNztcbiAgYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQobGVnYWN5LWRpcmVjdGlvbih0byBib3R0b20pLCAjNzdEN0U3IDUwJSwgI2ZmMDAwMCA1MCUsICNmZmYwMDAgMTAwJSk7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICM3N0Q3RTcgNTAlLCAjZmYwMDAwIDUwJSwgI2ZmZjAwMCAxMDAlKTsgfVxuXG4vKi0tLSBBYm91dCBPdGhlciAtLS0qL1xuLmhvdmVyLXN0b3AtYW5pbWF0ZWQ6aG92ZXIge1xuICAtd2Via2l0LWFuaW1hdGlvbi1wbGF5LXN0YXRlOiBwYXVzZWQ7XG4gIC1tb3otYW5pbWF0aW9uLXBsYXktc3RhdGU6IHBhdXNlZDtcbiAgLW8tYW5pbWF0aW9uLXBsYXktc3RhdGU6IHBhdXNlZDtcbiAgYW5pbWF0aW9uLXBsYXktc3RhdGU6IHBhdXNlZDtcbiAgLXdlYmtpdC1hbmltYXRpb246IHN0ZXAtZW5kO1xuICAtbW96LWFuaW1hdGlvbmFuaW1hdGlvbjogc3RlcC1lbmQ7XG4gIGFuaW1hdGlvbjogc3RlcC1lbmQ7IH1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiBcIlNGXCI7XG4gIHNyYzogdXJsKC4uL2ZvbnRzL1NGLVByby1EaXNwbGF5LVJlZ3VsYXIuZW90KTtcbiAgc3JjOiB1cmwoLi4vZm9udHMvU0YtUHJvLURpc3BsYXktUmVndWxhci5lb3QjaWVmaXgpIGZvcm1hdChcImVvdFwiKSwgdXJsKC4uL2ZvbnRzL1NGLVByby1EaXNwbGF5LVJlZ3VsYXIud29mZjIpIGZvcm1hdChcIndvZmYyXCIpLCB1cmwoLi4vZm9udHMvU0YtUHJvLURpc3BsYXktUmVndWxhci53b2ZmKSBmb3JtYXQoXCJ3b2ZmXCIpLCB1cmwoLi4vZm9udHMvU0YtUHJvLURpc3BsYXktUmVndWxhci50dGYpIGZvcm1hdChcInRydWV0eXBlXCIpLCB1cmwoLi4vZm9udHMvU0YtUHJvLURpc3BsYXktUmVndWxhci5zdmcpIGZvcm1hdChcInN2Z1wiKTsgfVxuXG46cm9vdCB7XG4gIC8qIE5vdCBteSBmYXZvcml0ZSB0aGF0IGxpbmUtaGVpZ2h0IGhhcyB0byBiZSB1bml0ZWQsIGJ1dCBuZWVkZWQgKi9cbiAgLS1saDogMS40cmVtOyB9XG5cbmh0bWwge1xuICBmb250LXNpemU6IDE2cHg7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1saCk7IH1cblxuYSB7XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuMnMgZWFzZS1vdXQ7XG4gIC1tb3otdHJhbnNpdGlvbjogY29sb3IgMC4ycyBlYXNlLW91dDtcbiAgLW8tdHJhbnNpdGlvbjogY29sb3IgMC4ycyBlYXNlLW91dDtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBjb2xvciAwLjJzIGVhc2Utb3V0O1xuICAtbXMtdHJhbnNpdGlvbjogY29sb3IgMC4ycyBlYXNlLW91dDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgY29sb3I6ICM0YzBlMGQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICBhOmhvdmVyLCBhOmZvY3VzIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGNvbG9yOiAjNzgxNjE0OyB9XG5cbi5zaG93LW1vYmlsZSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgIC5zaG93LW1vYmlsZSB7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfSB9XG5cbi5zaG93LWRlc2t0b3Age1xuICBkaXNwbGF5OiBibG9jazsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgLnNob3ctZGVza3RvcCB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9IH1cblxuaHRtbCB7XG4gIHdpZHRoOiAxMDAlOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTEwMHB4KSB7XG4gICAgaHRtbCB7XG4gICAgICBoZWlnaHQ6IGluaXRpYWw7XG4gICAgICBvdmVyZmxvdzogdmlzaWJsZTsgfSB9XG5cbmJvZHkge1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZm9udC1mYW1pbHk6IFNGOyB9XG5cbi53cmFwcGVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQ6IHVybCguLi9pbWFnZXMvYmcuanBnKSBuby1yZXBlYXQgY2VudGVyIHRvcC9jb3ZlcjtcbiAgZm9udC1zaXplOiAxOHB4OyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTEwMHB4KSB7XG4gICAgLndyYXBwZXIge1xuICAgICAgYmFja2dyb3VuZDogdXJsKC4uL2ltYWdlcy9iZy1tb2JpbGUuanBnKSBuby1yZXBlYXQgY2VudGVyIHRvcC9jb3ZlcjtcbiAgICAgIGhlaWdodDogaW5pdGlhbDsgfSB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgICAud3JhcHBlciB7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IDE0NSUgMTAwJTsgfSB9XG5cbnAge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7IH1cblxuLmNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcbiAgd2lkdGg6IDExNTZweDtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDAgYXV0bztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiA1O1xuICBwYWRkaW5nOiAxNTBweCAwIDAgMDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExMDBweCkge1xuICAgIC5jb250YWluZXIge1xuICAgICAgcGFkZGluZy10b3A6IDAlO1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfSB9XG5cbi5hdmF0YXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTBweDtcbiAgbGVmdDogMDtcbiAgYm9yZGVyLXJhZGl1czogMjJweDsgfVxuXG4ubG9nbyB7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMHB4O1xuICBsZWZ0OiAzMHB4O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCUpO1xuICB6LWluZGV4OiA2OyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTEwMHB4KSB7XG4gICAgLmxvZ28ge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgbGVmdDogMDsgfVxuICAgICAgLmxvZ28gaW1nIHtcbiAgICAgICAgbWF4LXdpZHRoOiAxOTBweDsgfSB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogODgwcHgpIHtcbiAgICAubG9nbyB7XG4gICAgICB0b3A6IDA7IH0gfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gICAgLmxvZ28ge1xuICAgICAgdG9wOiA3JTsgfSB9XG4gIC5sb2dvIGEge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4udGV4dCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiA0MDBweDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExMDBweCkge1xuICAgIC50ZXh0IHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHdpZHRoOiAzNTBweDtcbiAgICAgIG1heC13aWR0aDogODAlO1xuICAgICAgbGVmdDogNTAlO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpOyB9IH1cblxuLnN1Yi10ZXh0IHtcbiAgZGlzcGxheTogbm9uZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTEwMHB4KSB7XG4gICAgLnN1Yi10ZXh0IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgbWFyZ2luOiAwIGF1dG8gMHB4OyB9IH1cblxuLmJ1dHRvbnMge1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTAwcHgpIHtcbiAgICAuYnV0dG9ucyB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsgfVxuICAgICAgLmJ1dHRvbnMgaW1nIHtcbiAgICAgICAgbWF4LXdpZHRoOiAyNTBweDsgfSB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgICAuYnV0dG9ucyBpbWcge1xuICAgICAgbWF4LXdpZHRoOiAxNjBweDsgfSB9XG5cbi5kdWF0b3Age1xuICB3aWR0aDogMTE1NnB4O1xuICBoZWlnaHQ6IDY4NXB4O1xuICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL2R1YXRvcC1iZy5wbmcpIG5vLXJlcGVhdCAwIDAvY292ZXI7XG4gIHBhZGRpbmc6IDBweCAwcHggMDtcbiAgbWFyZ2luOiAtMjBweCBhdXRvIDBweDtcbiAgZGlzcGxheTogZmxleDtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTEwMHB4KSB7XG4gICAgLmR1YXRvcCB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHdpZHRoOiA1ODBweDtcbiAgICAgIGhlaWdodDogNDk1cHg7XG4gICAgICBwYWRkaW5nOiAzJSA0JSAwJSA0JTtcbiAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgYmFja2dyb3VuZDogdXJsKC4uL2ltYWdlcy9kdWF0b3AtYmctbW9iaWxlLnBuZykgbm8tcmVwZWF0IGNlbnRlciB0b3AvY292ZXI7IH0gfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExMDBweCkgYW5kIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gICAgLmR1YXRvcCB7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDQwMHB4O1xuICAgICAgcGFkZGluZy1sZWZ0OiA3JTtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDclOyB9IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTAwcHgpIGFuZCAobWF4LXdpZHRoOiA0MDBweCkge1xuICAgIC5kdWF0b3Age1xuICAgICAgcGFkZGluZy1sZWZ0OiAyJTtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDIlOyB9IH1cbiAgLmR1YXRvcC1kYXlzIHtcbiAgICB3aWR0aDogMjAwcHg7XG4gICAgbWFyZ2luOiAzNjBweCAwIDAgMTAwcHg7XG4gICAgY29sb3I6ICNmYmY3ZTU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogMjFweDtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGZvbnQtZmFtaWx5OiBcIlJvYm90byBTbGFiXCI7IH1cbiAgICAuZHVhdG9wLWRheXMgcCB7XG4gICAgICBwYWRkaW5nOiAwIDAlOyB9XG4gICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExMDBweCkge1xuICAgICAgICAuZHVhdG9wLWRheXMgcCB7XG4gICAgICAgICAgd2lkdGg6IDQwJTtcbiAgICAgICAgICBmb250LXNpemU6IDIycHg7XG4gICAgICAgICAgcGFkZGluZy10b3A6IDE1cHg7IH0gfVxuICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgICAgICAuZHVhdG9wLWRheXMgcCB7XG4gICAgICAgICAgcGFkZGluZy10b3A6IDIwcHg7XG4gICAgICAgICAgcGFkZGluZy1sZWZ0OiA0MHB4O1xuICAgICAgICAgIGZvbnQtc2l6ZTogMjBweDsgfSB9XG4gICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gICAgICAgIC5kdWF0b3AtZGF5cyBwIHtcbiAgICAgICAgICBwYWRkaW5nLXRvcDogMTVweDtcbiAgICAgICAgICB3aWR0aDogNDAlO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMThweDsgfSB9XG4gICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQwMHB4KSB7XG4gICAgICAgIC5kdWF0b3AtZGF5cyBwIHtcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7IH0gfVxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTEwMHB4KSB7XG4gICAgICAuZHVhdG9wLWRheXMge1xuICAgICAgICB3aWR0aDogODUlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiAwIGF1dG8gMiU7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgZm9udC1mYW1pbHk6IFwiUm9ib3RvIFNsYWJcIjsgfSB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0ODBweCkge1xuICAgICAgLmR1YXRvcC1kYXlzIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGZvbnQtc2l6ZTogMjZweDsgfSB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0MDBweCkge1xuICAgICAgLmR1YXRvcC1kYXlzIHtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4OyB9IH1cbiAgICAuZHVhdG9wLWRheXMgLmRheSB7XG4gICAgICB3aWR0aDogMTUwcHg7XG4gICAgICBmb250LXNpemU6IDgwcHg7XG4gICAgICBsaW5lLWhlaWdodDogMC45O1xuICAgICAgbWFyZ2luOiAwIGF1dG8gNzdweDtcbiAgICAgIGJhY2tncm91bmQ6ICNmYmY2ZTI7XG4gICAgICBiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudChsZWdhY3ktZGlyZWN0aW9uKDE4MGRlZyksICNmYmY2ZTIsICNmN2I5NDEpO1xuICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgI2ZiZjZlMiwgI2Y3Yjk0MSk7XG4gICAgICAtd2Via2l0LWJhY2tncm91bmQtY2xpcDogdGV4dDtcbiAgICAgIC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTAwcHgpIHtcbiAgICAgICAgLmR1YXRvcC1kYXlzIC5kYXkge1xuICAgICAgICAgIGZvbnQtc2l6ZTogNjBweDtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwcHg7IH0gfVxuICAgICAgLmR1YXRvcC1kYXlzIC5kYXkgc3BhbiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgLmR1YXRvcC1kYXlzIC5kYXRlIHtcbiAgICAgIGZvbnQtc2l6ZTogMjhweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjE7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIG1hcmdpbjogMCAwIDIwcHg7IH1cbiAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTEwMHB4KSB7XG4gICAgICAgIC5kdWF0b3AtZGF5cyAuZGF0ZSB7XG4gICAgICAgICAgZm9udC1zaXplOiAyMnB4OyB9IH1cbiAgICAuZHVhdG9wLWRheXMgLnRpbWUge1xuICAgICAgY29sb3I6ICNmYmY3ZTU7XG4gICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgZm9udC1zaXplOiAzNnB4O1xuICAgICAgZm9udC1mYW1pbHk6ICdUaW1lIE5ldyBSb21hbic7XG4gICAgICBwYWRkaW5nOiAwIDclIDAgMyU7IH1cbiAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTEwMHB4KSB7XG4gICAgICAgIC5kdWF0b3AtZGF5cyAudGltZSB7XG4gICAgICAgICAgd2lkdGg6IDM1JTtcbiAgICAgICAgICBmb250LXNpemU6IDI2cHg7XG4gICAgICAgICAgcGFkZGluZy10b3A6IDE2cHg7IH0gfVxuICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgICAgICAuZHVhdG9wLWRheXMgLnRpbWUge1xuICAgICAgICAgIHBhZGRpbmctdG9wOiAyNnB4OyB9IH1cbiAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgICAgICAgLmR1YXRvcC1kYXlzIC50aW1lIHtcbiAgICAgICAgICBwYWRkaW5nLXRvcDogMTVweDtcbiAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiA0MHB4O1xuICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICBmb250LXNpemU6IDIycHg7IH0gfVxuICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0MDBweCkge1xuICAgICAgICAuZHVhdG9wLWRheXMgLnRpbWUge1xuICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDIwcHg7IH0gfVxuICAuZHVhdG9wLXRhYmxlIHtcbiAgICB3aWR0aDogNjMwcHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWZsb3c6IGNvbHVtbjtcbiAgICBjb2xvcjogIzE1MWIzYjtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbjogMTY1cHggMCAwIDEzMHB4O1xuICAgIGhlaWdodDogNDAwcHg7IH1cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExMDBweCkge1xuICAgICAgLmR1YXRvcC10YWJsZSB7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICB3aWR0aDogOTAlO1xuICAgICAgICBoZWlnaHQ6IDY1JTsgfSB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTEwMHB4KSBhbmQgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgICAuZHVhdG9wLXRhYmxlIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgZm9udC1zaXplOiAxNHB4OyB9IH1cbiAgICAuZHVhdG9wLXRhYmxlIHRoZWFkIHtcbiAgICAgIGZvbnQtZmFtaWx5OiBcIlJvYm90byBTbGFiXCI7XG4gICAgICBmb250LXNpemU6IDE3cHg7XG4gICAgICBiYWNrZ3JvdW5kOiAjNDU0ZDdkOyB9XG4gICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gICAgICAgIC5kdWF0b3AtdGFibGUgdGhlYWQge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDsgfSB9XG4gICAgICAuZHVhdG9wLXRhYmxlIHRoZWFkIHRyIHRkIHtcbiAgICAgICAgY29sb3I6ICNjM2ViZmE7IH1cbiAgICAuZHVhdG9wLXRhYmxlIHRyIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICB0YWJsZS1sYXlvdXQ6IGZpeGVkOyB9XG4gICAgICAuZHVhdG9wLXRhYmxlIHRyOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggI2Q0ZTZmNTsgfVxuICAgICAgLmR1YXRvcC10YWJsZSB0ciB0ZCB7XG4gICAgICAgIHBhZGRpbmc6IDVweCA1cHggMnB4O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGNvbG9yOiAjMTUxYjNiOyB9XG4gICAgLmR1YXRvcC10YWJsZSB0Ym9keSB7XG4gICAgICBmbGV4OiAxIDEgYXV0bztcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgaGVpZ2h0OiA0MDBweDtcbiAgICAgIG92ZXJmbG93OiBhdXRvOyB9XG4gICAgICAuZHVhdG9wLXRhYmxlIHRib2R5Ojotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XG4gICAgICAgIC13ZWJraXQtYm94LXNoYWRvdzogaW5zZXQgMCAwIDZweCByZ2JhKDAsIDAsIDAsIDAuMyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDsgfVxuICAgICAgLmR1YXRvcC10YWJsZSB0Ym9keTo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgICAgICB3aWR0aDogNXB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1cHg7IH1cbiAgICAgIC5kdWF0b3AtdGFibGUgdGJvZHk6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGU0NTQwOyB9XG5cbi8qLS0tIFBvcHVwIC0tLSovXG4ucG9wdXAge1xuICBvcGFjaXR5OiAwO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwdmg7XG4gIHotaW5kZXg6IDEwMDE7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHRyYW5zaXRpb246IGFsbCAwLjVzOyB9XG4gIC5wb3B1cCAucG9wdXAtYmcge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjcpOyB9XG4gIC5wb3B1cC5hY3RpdmUge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgb3BhY2l0eTogMTsgfVxuICAucG9wdXAtY2xvc2Uge1xuICAgIHBhZGRpbmc6IDBweDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDAlO1xuICAgIHRvcDogLTY1cHg7IH1cbiAgICAucG9wdXAtY2xvc2U6aG92ZXIge1xuICAgICAgZmlsdGVyOiBicmlnaHRuZXNzKDE1MCUpOyB9XG4gIC5wb3B1cC1jb250ZW50IHtcbiAgICB6LWluZGV4OiAyO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMCk7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3M7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cbiAgLnBvcHVwLmFjdGl2ZSAucG9wdXAtY29udGVudCB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICBwb2ludGVyLWV2ZW50czogYWxsOyB9XG5cbi5wb3B1cC10aXRsZSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luOiAwIDAgMjBweDsgfVxuXG4ucG9wdXAtdGhlbGUge1xuICB0ZXh0LWFsaWduOiBqdXN0aWZ5O1xuICB3aWR0aDogNTgwcHg7XG4gIGhlaWdodDogNTk1cHg7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZDogdXJsKC4uL2ltYWdlcy9wb3B1cC1iZy5wbmcpIG5vLXJlcGVhdCBjZW50ZXIgdG9wLzEwMCUgMTAwJTtcbiAgcGFkZGluZzogNSUgMyU7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3ODBweCkge1xuICAgIC5wb3B1cC10aGVsZSB7XG4gICAgICBwYWRkaW5nOiA3JSA3JTsgfSB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgICAucG9wdXAtdGhlbGUge1xuICAgICAgcGFkZGluZzogMTIlIDEwJSAxNSUgMTIlO1xuICAgICAgaGVpZ2h0OiA1NTBweDsgfSB9XG4gIC5wb3B1cC10aGVsZSB0YWJsZSB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7IH1cbiAgICAucG9wdXAtdGhlbGUgdGFibGUgdGhlYWQge1xuICAgICAgYmFja2dyb3VuZDogIzAwMDsgfVxuICAgICAgLnBvcHVwLXRoZWxlIHRhYmxlIHRoZWFkIHRkIHtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIGNvbG9yOiAjZmZmY2VmO1xuICAgICAgICBwYWRkaW5nOiA1cHg7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgIC5wb3B1cC10aGVsZSB0YWJsZSB0Ym9keSB0cjpudGgtY2hpbGQob2RkKSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmYmVhOyB9XG4gICAgLnBvcHVwLXRoZWxlIHRhYmxlIHRib2R5IHRyOm50aC1jaGlsZChldmVuKSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmYmVhOyB9XG4gICAgLnBvcHVwLXRoZWxlIHRhYmxlIHRkIHtcbiAgICAgIGJvcmRlcjogc29saWQgMXB4ICMzMzM7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICBjb2xvcjogIzAwMDtcbiAgICAgIHBhZGRpbmc6IDVweDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAucG9wdXAtdGhlbGUgLlN0YXRpY01haW4ge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBjb2xvcjogIzY5NDEyZDsgfVxuICAgIC5wb3B1cC10aGVsZSAuU3RhdGljTWFpbiAqIHtcbiAgICAgIG1heC13aWR0aDogMTAwJTsgfVxuXG4ucG9wdXAtc2Nyb2xsIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZy1yaWdodDogMTBweDtcbiAgb3ZlcmZsb3c6IGF1dG87IH1cbiAgLnBvcHVwLXNjcm9sbDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sge1xuICAgIC13ZWJraXQtYm94LXNoYWRvdzogaW5zZXQgMCAwIDZweCByZ2JhKDAsIDAsIDAsIDAuMyk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzJkMmQyZDtcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7IH1cbiAgLnBvcHVwLXNjcm9sbDo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgIHdpZHRoOiAzcHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzJkMmQyZDtcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7IH1cbiAgLnBvcHVwLXNjcm9sbDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTI1MjUyOyB9XG5cbi5iZ292ZXIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNyk7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgei1pbmRleDogMTAwO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7IH1cblxuLyoqKioqKioqKipcclxuKiBab29tIGluICpcclxuKioqKioqKioqKiovXG5ALXdlYmtpdC1rZXlmcmFtZXMgem9vbUluIHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSg1KTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDUpO1xuICAgIG9wYWNpdHk6IDA7IH1cbiAgODAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMC44KTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOCk7XG4gICAgb3BhY2l0eTogLjg7IH1cbiAgODAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMC44KTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOCk7IH1cbiAgOTAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMS4xKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7IH1cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgb3BhY2l0eTogMTsgfSB9XG5cbkBrZXlmcmFtZXMgem9vbUluIHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSg1KTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDUpO1xuICAgIG9wYWNpdHk6IDA7IH1cbiAgODAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMC44KTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOCk7XG4gICAgb3BhY2l0eTogLjg7IH1cbiAgODAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMC44KTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOCk7IH1cbiAgOTAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMS4xKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7IH1cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgb3BhY2l0eTogMTsgfSB9XG5cbi56b29tSW4ge1xuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoNSk7XG4gIC1tcy10cmFuc2Zvcm06IHNjYWxlKDUpO1xuICB0cmFuc2Zvcm06IHNjYWxlKDUpO1xuICBvcGFjaXR5OiAwOyB9XG5cbi56b29tSW4uZ28ge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiB6b29tSW47XG4gIGFuaW1hdGlvbi1uYW1lOiB6b29tSW47XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogLjVzOyB9XG5cbi8qKioqKioqKlxyXG4qIFNoYWtlVXAgKlxyXG4qKioqKioqKi9cbkAtd2Via2l0LWtleWZyYW1lcyBzaGFrZVVwMiB7XG4gIDAlLFxuICAxMCUsXG4gIDIwJSxcbiAgMzAlLFxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgfVxuICA1MCUsXG4gIDcwJSxcbiAgOTAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTBweCk7IH1cbiAgNDAlLFxuICA2MCUsXG4gIDgwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTBweCk7IH0gfVxuXG5Aa2V5ZnJhbWVzIHNoYWtlVXAyIHtcbiAgMCUsXG4gIDUwJSxcbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9XG4gIDcwJSxcbiAgOTAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTBweCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMHB4KTsgfVxuICA2MCUsXG4gIDgwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTBweCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwcHgpOyB9IH1cblxuLnNoYWtlVXAyLmdvIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogc2hha2VVcDI7XG4gIGFuaW1hdGlvbi1uYW1lOiBzaGFrZVVwMjsgfVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgbGFudGVybmEge1xuICAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKSBzY2FsZSgxKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKSBzY2FsZSgxKTsgfVxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC0yMHB4LCAtNDBweCkgc2NhbGUoMS4xKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjBweCwgLTQwcHgpIHNjYWxlKDEuMSk7IH0gfVxuXG5Aa2V5ZnJhbWVzIGxhbnRlcm5hIHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCkgc2NhbGUoMSk7XG4gICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApIHNjYWxlKDEpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApIHNjYWxlKDEpOyB9XG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTIwcHgsIC00MHB4KSBzY2FsZSgxLjEpO1xuICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjBweCwgLTQwcHgpIHNjYWxlKDEuMSk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTIwcHgsIC00MHB4KSBzY2FsZSgxLjEpOyB9IH1cbiIsIi8qYW5pbWF0aW9ucyovXHJcblxyXG4vKioqKioqKioqKioqKioqKioqXHJcbiogQm91bmNlIGluIHJpZ2h0ICpcclxuKioqKioqKioqKioqKioqKioqKi9cclxuXHJcblxyXG4uYW5pbWF0ZWQgeyBcclxuICAgIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiAxczsgXHJcbiAgICBhbmltYXRpb24tZHVyYXRpb246IDFzOyBcclxuICAgIC13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDsgXHJcbiAgICBhbmltYXRpb24tZmlsbC1tb2RlOiBib3RoOyBcclxufSBcclxuLnNsb3d7XHJcbiAgICAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDEuNXM7IFxyXG4gICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxLjVzOyBcclxuICAgIC13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDsgXHJcbiAgICBhbmltYXRpb24tZmlsbC1tb2RlOiBib3RoOyBcclxufVxyXG4uc2xvd2Vye1xyXG4gICAgIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiAyczsgXHJcbiAgICBhbmltYXRpb24tZHVyYXRpb246IDJzOyBcclxuICAgIC13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDsgXHJcbiAgICBhbmltYXRpb24tZmlsbC1tb2RlOiBib3RoOyBcclxufVxyXG4uc2xvd2VzdHtcclxuICAgICAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogM3M7IFxyXG4gICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAzczsgXHJcbiAgICAtd2Via2l0LWFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7IFxyXG4gICAgYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDsgXHJcbn1cclxuXHJcbi8qIEFkZGVkIGJ5IEFuZHkgTWVldGFuICovXHJcbi5kZWxheS0yNTAge1xyXG4gICAgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6MC4yNXM7XHJcbiAgICAtbW96LWFuaW1hdGlvbi1kZWxheTowLjI1cztcclxuICAgIC1vLWFuaW1hdGlvbi1kZWxheTowLjI1cztcclxuICAgIGFuaW1hdGlvbi1kZWxheTowLjI1cztcclxufVxyXG4uZGVsYXktNTAwIHtcclxuICAgIC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OjAuNXM7XHJcbiAgICAtbW96LWFuaW1hdGlvbi1kZWxheTowLjVzO1xyXG4gICAgLW8tYW5pbWF0aW9uLWRlbGF5OjAuNXM7XHJcbiAgICBhbmltYXRpb24tZGVsYXk6MC41cztcclxufVxyXG4uZGVsYXktNzUwIHtcclxuICAgIC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OjAuNzVzO1xyXG4gICAgLW1vei1hbmltYXRpb24tZGVsYXk6MC43NXM7XHJcbiAgICAtby1hbmltYXRpb24tZGVsYXk6MC43NXM7XHJcbiAgICBhbmltYXRpb24tZGVsYXk6MC43NXM7XHJcbn1cclxuLmRlbGF5LTEwMDAge1xyXG4gICAgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6MS4wcztcclxuICAgIC1tb3otYW5pbWF0aW9uLWRlbGF5OjEuMHM7XHJcbiAgICAtby1hbmltYXRpb24tZGVsYXk6MS4wcztcclxuICAgIGFuaW1hdGlvbi1kZWxheToxLjBzO1xyXG59XHJcbi5kZWxheS0xMjUwIHtcclxuICAgIC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OjEuMjVzO1xyXG4gICAgLW1vei1hbmltYXRpb24tZGVsYXk6MS4yNXM7XHJcbiAgICAtby1hbmltYXRpb24tZGVsYXk6MS4yNXM7XHJcbiAgICBhbmltYXRpb24tZGVsYXk6MS4yNXM7XHJcbn1cclxuLmRlbGF5LTE1MDAge1xyXG4gICAgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6MS41cztcclxuICAgIC1tb3otYW5pbWF0aW9uLWRlbGF5OjEuNXM7XHJcbiAgICAtby1hbmltYXRpb24tZGVsYXk6MS41cztcclxuICAgIGFuaW1hdGlvbi1kZWxheToxLjVzO1xyXG59XHJcbi5kZWxheS0xNzUwIHtcclxuICAgIC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OjEuNzVzO1xyXG4gICAgLW1vei1hbmltYXRpb24tZGVsYXk6MS43NXM7XHJcbiAgICAtby1hbmltYXRpb24tZGVsYXk6MS43NXM7XHJcbiAgICBhbmltYXRpb24tZGVsYXk6MS43NXM7XHJcbn1cclxuLmRlbGF5LTIwMDAge1xyXG4gICAgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6Mi4wcztcclxuICAgIC1tb3otYW5pbWF0aW9uLWRlbGF5OjIuMHM7XHJcbiAgICAtby1hbmltYXRpb24tZGVsYXk6Mi4wcztcclxuICAgIGFuaW1hdGlvbi1kZWxheToyLjBzO1xyXG59XHJcbi5kZWxheS0yNTAwIHtcclxuICAgIC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OjIuNXM7XHJcbiAgICAtbW96LWFuaW1hdGlvbi1kZWxheToyLjVzO1xyXG4gICAgLW8tYW5pbWF0aW9uLWRlbGF5OjIuNXM7XHJcbiAgICBhbmltYXRpb24tZGVsYXk6Mi41cztcclxufVxyXG4uZGVsYXktMjAwMCB7XHJcbiAgICAtd2Via2l0LWFuaW1hdGlvbi1kZWxheToyLjBzO1xyXG4gICAgLW1vei1hbmltYXRpb24tZGVsYXk6Mi4wcztcclxuICAgIC1vLWFuaW1hdGlvbi1kZWxheToyLjBzO1xyXG4gICAgYW5pbWF0aW9uLWRlbGF5OjIuMHM7XHJcbn1cclxuLmRlbGF5LTI1MDAge1xyXG4gICAgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6Mi41cztcclxuICAgIC1tb3otYW5pbWF0aW9uLWRlbGF5OjIuNXM7XHJcbiAgICAtby1hbmltYXRpb24tZGVsYXk6Mi41cztcclxuICAgIGFuaW1hdGlvbi1kZWxheToyLjVzO1xyXG59XHJcbi5kZWxheS0zMDAwIHtcclxuICAgIC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OjMuMHM7XHJcbiAgICAtbW96LWFuaW1hdGlvbi1kZWxheTozLjBzO1xyXG4gICAgLW8tYW5pbWF0aW9uLWRlbGF5OjMuMHM7XHJcbiAgICBhbmltYXRpb24tZGVsYXk6My4wcztcclxufVxyXG4uZGVsYXktMzUwMCB7XHJcbiAgICAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTozLjVzO1xyXG4gICAgLW1vei1hbmltYXRpb24tZGVsYXk6My41cztcclxuICAgIC1vLWFuaW1hdGlvbi1kZWxheTozLjVzO1xyXG4gICAgYW5pbWF0aW9uLWRlbGF5OjMuNXM7XHJcbn1cclxuXHJcbi5ib3VuY2VJblJpZ2h0LCAuYm91bmNlSW5MZWZ0LCAuYm91bmNlSW5VcCwgLmJvdW5jZUluRG93bntcclxuICAgIG9wYWNpdHk6MDtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDQwMHB4KTsgXHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNDAwcHgpOyBcclxufVxyXG4uZmFkZUluUmlnaHQsIC5mYWRlSW5MZWZ0LCAuZmFkZUluVXAsIC5mYWRlSW5Eb3due1xyXG4gICAgb3BhY2l0eTowO1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNDAwcHgpOyBcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg0MDBweCk7IFxyXG59XHJcblxyXG4uZmxpcEluWCwgLmZsaXBJblksIC5yb3RhdGVJbiwgLnJvdGF0ZUluVXBMZWZ0LCAucm90YXRlSW5VcFJpZ2h0LCAucm90YXRlSW5Eb3duTGVmdCwgLnJvdGF0ZURvd25VcFJpZ2h0LCAucm9sbElue1xyXG4gICAgb3BhY2l0eTowO1xyXG59XHJcblxyXG4ubGlnaHRTcGVlZEluUmlnaHQsIC5saWdodFNwZWVkSW5MZWZ0e1xyXG4gICAgb3BhY2l0eTowO1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNDAwcHgpOyBcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg0MDBweCk7IFxyXG59XHJcblxyXG4vKioqKioqKioqKipcclxuKiBib3VuY2VJbiAqXHJcbioqKioqKioqKioqKi9cclxuQC13ZWJraXQta2V5ZnJhbWVzIGJvdW5jZUluIHsgXHJcbiAgICAwJSB7IFxyXG4gICAgICAgIG9wYWNpdHk6IDA7IFxyXG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSguMyk7IFxyXG4gICAgfSBcclxuXHJcbiAgICA1MCUgeyBcclxuICAgICAgICBvcGFjaXR5OiAxOyBcclxuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMS4wNSk7IFxyXG4gICAgfSBcclxuXHJcbiAgICA3MCUgeyBcclxuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoLjkpOyBcclxuICAgIH0gXHJcblxyXG4gICAgMTAwJSB7IFxyXG4gICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7IFxyXG4gICAgfSBcclxufSBcclxuXHJcbkBrZXlmcmFtZXMgYm91bmNlSW4geyBcclxuICAgIDAlIHsgXHJcbiAgICAgICAgb3BhY2l0eTogMDsgXHJcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSguMyk7IFxyXG4gICAgfSBcclxuXHJcbiAgICA1MCUgeyBcclxuICAgICAgICBvcGFjaXR5OiAxOyBcclxuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDUpOyBcclxuICAgIH0gXHJcblxyXG4gICAgNzAlIHsgXHJcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSguOSk7IFxyXG4gICAgfSBcclxuXHJcbiAgICAxMDAlIHsgXHJcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTsgXHJcbiAgICB9IFxyXG59IFxyXG5cclxuLmJvdW5jZUluLmdvIHsgXHJcbiAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBib3VuY2VJbjsgXHJcbiAgICBhbmltYXRpb24tbmFtZTogYm91bmNlSW47IFxyXG59XHJcblxyXG4vKioqKioqKioqKioqKioqKlxyXG4qIGJvdW5jZUluUmlnaHQgKlxyXG4qKioqKioqKioqKioqKioqL1xyXG5cclxuQC13ZWJraXQta2V5ZnJhbWVzIGJvdW5jZUluUmlnaHQgeyBcclxuICAgIDAlIHsgXHJcbiAgICAgICAgb3BhY2l0eTogMDsgXHJcbiAgICAgICAgXHJcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNDAwcHgpOyBcclxuICAgIH0gXHJcbiAgICA2MCUgeyBcclxuICAgICAgICBcclxuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMzBweCk7IFxyXG4gICAgfSBcclxuICAgIDgwJSB7IFxyXG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwcHgpOyBcclxuICAgIH0gXHJcbiAgICAxMDAlIHtcclxuICAgIG9wYWNpdHk6IDE7XHJcbiAgICAgXHJcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IFxyXG4gICAgfSBcclxufSBcclxuXHJcbkBrZXlmcmFtZXMgYm91bmNlSW5SaWdodCB7IFxyXG4gICAgMCUgeyBcclxuICAgICAgICBvcGFjaXR5OiAwOyBcclxuICAgICAgICBcclxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNDAwcHgpOyBcclxuICAgIH0gXHJcbiAgICA2MCUgeyBcclxuICAgICAgICBcclxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTMwcHgpOyBcclxuICAgIH0gXHJcbiAgICA4MCUgeyBcclxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTBweCk7IFxyXG4gICAgfSBcclxuICAgIDEwMCUge1xyXG4gICAgb3BhY2l0eTogMTtcclxuICAgICBcclxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IFxyXG4gICAgfSBcclxufSBcclxuXHJcblxyXG4uYm91bmNlSW5SaWdodC5nbyB7IFxyXG4gICAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogYm91bmNlSW5SaWdodDsgXHJcbiAgICBhbmltYXRpb24tbmFtZTogYm91bmNlSW5SaWdodDsgXHJcbn1cclxuXHJcbi8qKioqKioqKioqKioqKioqKipcclxuKiBCb3VuY2UgaW4gbGVmdCAqXHJcbioqKioqKioqKioqKioqKioqKiovXHJcblxyXG5ALXdlYmtpdC1rZXlmcmFtZXMgYm91bmNlSW5MZWZ0IHsgXHJcbiAgICAwJSB7IFxyXG4gICAgICAgIG9wYWNpdHk6IDA7IFxyXG4gICAgICAgIFxyXG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC00MDBweCk7IFxyXG4gICAgfSBcclxuICAgIDYwJSB7IFxyXG4gICAgICAgXHJcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMzBweCk7IFxyXG4gICAgfSBcclxuICAgIDgwJSB7IFxyXG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMHB4KTsgXHJcbiAgICB9IFxyXG4gICAgMTAwJSB7XHJcbiAgICAgICAgb3BhY2l0eTogMTtcclxuICAgICAgICAgXHJcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IFxyXG4gICAgfSBcclxufSBcclxuXHJcbkBrZXlmcmFtZXMgYm91bmNlSW5MZWZ0IHsgXHJcbiAgICAwJSB7IFxyXG4gICAgICAgIG9wYWNpdHk6IDA7IFxyXG4gICAgICAgIFxyXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNDAwcHgpOyBcclxuICAgIH0gXHJcbiAgICA2MCUgeyBcclxuICAgICAgIFxyXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgzMHB4KTsgXHJcbiAgICB9IFxyXG4gICAgODAlIHsgXHJcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMHB4KTsgXHJcbiAgICB9IFxyXG4gICAgMTAwJSB7XHJcbiAgICAgICAgb3BhY2l0eTogMTtcclxuICAgICAgICAgXHJcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyBcclxuICAgIH0gXHJcbn0gXHJcblxyXG4uYm91bmNlSW5MZWZ0LmdvIHsgXHJcbiAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBib3VuY2VJbkxlZnQ7IFxyXG4gICAgYW5pbWF0aW9uLW5hbWU6IGJvdW5jZUluTGVmdDsgXHJcbn1cclxuXHJcbi8qKioqKioqKioqKioqKioqKipcclxuKiBCb3VuY2UgaW4gdXAgKlxyXG4qKioqKioqKioqKioqKioqKioqL1xyXG5cclxuQC13ZWJraXQta2V5ZnJhbWVzIGJvdW5jZUluVXAgeyBcclxuICAgIDAlIHsgXHJcbiAgICAgICAgb3BhY2l0eTogMDsgXHJcbiAgICAgICAgXHJcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNDAwcHgpOyBcclxuICAgIH0gXHJcbiAgICA2MCUgeyBcclxuICAgICAgIFxyXG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zMHB4KTsgXHJcbiAgICB9IFxyXG4gICAgODAlIHsgXHJcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTBweCk7IFxyXG4gICAgfSBcclxuICAgIDEwMCUge1xyXG4gICAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICAgICAgIFxyXG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyBcclxuICAgIH0gXHJcbn0gXHJcblxyXG5Aa2V5ZnJhbWVzIGJvdW5jZUluVXAgeyBcclxuICAgIDAlIHsgXHJcbiAgICAgICAgb3BhY2l0eTogMDsgXHJcbiAgICAgICAgXHJcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDQwMHB4KTsgXHJcbiAgICB9IFxyXG4gICAgNjAlIHsgXHJcbiAgICAgICBcclxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTMwcHgpOyBcclxuICAgIH0gXHJcbiAgICA4MCUgeyBcclxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTBweCk7IFxyXG4gICAgfSBcclxuICAgIDEwMCUge1xyXG4gICAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICAgICAgIFxyXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgXHJcbiAgICB9IFxyXG59IFxyXG5cclxuLmJvdW5jZUluVXAuZ28geyBcclxuICAgIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGJvdW5jZUluVXA7IFxyXG4gICAgYW5pbWF0aW9uLW5hbWU6IGJvdW5jZUluVXA7IFxyXG59XHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqKlxyXG4qIEJvdW5jZSBpbiBkb3duICpcclxuKioqKioqKioqKioqKioqKioqKi9cclxuXHJcbkAtd2Via2l0LWtleWZyYW1lcyBib3VuY2VJbkRvd24geyBcclxuICAgIDAlIHsgXHJcbiAgICAgICAgb3BhY2l0eTogMDsgXHJcbiAgICAgICAgXHJcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTQwMHB4KTsgXHJcbiAgICB9IFxyXG4gICAgNjAlIHsgXHJcbiAgICAgICBcclxuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgzMHB4KTsgXHJcbiAgICB9IFxyXG4gICAgODAlIHsgXHJcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwcHgpOyBcclxuICAgIH0gXHJcbiAgICAxMDAlIHtcclxuICAgICAgICBvcGFjaXR5OiAxO1xyXG4gICAgICAgICBcclxuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgXHJcbiAgICB9IFxyXG59IFxyXG5cclxuQGtleWZyYW1lcyBib3VuY2VJbkRvd24geyBcclxuICAgIDAlIHsgXHJcbiAgICAgICAgb3BhY2l0eTogMDsgXHJcbiAgICAgICAgXHJcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC00MDBweCk7IFxyXG4gICAgfSBcclxuICAgIDYwJSB7IFxyXG4gICAgICAgXHJcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDMwcHgpOyBcclxuICAgIH0gXHJcbiAgICA4MCUgeyBcclxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwcHgpOyBcclxuICAgIH0gXHJcbiAgICAxMDAlIHtcclxuICAgICAgICBvcGFjaXR5OiAxO1xyXG4gICAgICAgICBcclxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IFxyXG4gICAgfSBcclxufSBcclxuXHJcbi5ib3VuY2VJbkRvd24uZ28geyBcclxuICAgIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGJvdW5jZUluRG93bjsgXHJcbiAgICBhbmltYXRpb24tbmFtZTogYm91bmNlSW5Eb3duOyBcclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqXHJcbiogRmFkZSBJbiAqXHJcbioqKioqKioqKiovIFxyXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZUluIHsgXHJcbiAgICAwJSB7b3BhY2l0eTogMDt9IFxyXG4gICAgMTAwJSB7b3BhY2l0eTogMTtcclxuICAgICAgICBkaXNwbGF5OmJsb2NrO30gXHJcbn0gXHJcbkBrZXlmcmFtZXMgZmFkZUluIHsgXHJcbiAgICAwJSB7b3BhY2l0eTogMDt9IFxyXG4gICAgMTAwJSB7b3BhY2l0eTogMTtcclxuICAgICAgICBkaXNwbGF5OmJsb2NrO30gXHJcbn1cclxuLmZhZGVJbntcclxuICAgIG9wYWNpdHk6MDtcclxufVxyXG4uZmFkZUluLmdvIHsgXHJcbiAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmYWRlSW47IFxyXG4gICAgYW5pbWF0aW9uLW5hbWU6IGZhZGVJbjsgXHJcbn1cclxuXHJcbi8qKioqKioqKioqXHJcbiogR3JvdyBpbiAqXHJcbioqKioqKioqKioqL1xyXG5cclxuQC13ZWJraXQta2V5ZnJhbWVzIGdyb3dJbiB7IFxyXG4gICAgMCUgeyBcclxuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMC4yKTsgXHJcbiAgICAgICAgb3BhY2l0eTowO1xyXG4gICAgfSBcclxuICAgIDUwJSB7IFxyXG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxLjIpOyBcclxuICAgICAgICBcclxuICAgIH0gXHJcbiAgICAxMDAlIHsgXHJcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpOyBcclxuICAgICAgICBvcGFjaXR5OjE7XHJcbiAgICB9IFxyXG59IFxyXG5Aa2V5ZnJhbWVzIGdyb3dJbiB7IFxyXG4gICAgMCUgeyBcclxuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuMik7IFxyXG4gICAgICAgIG9wYWNpdHk6MDtcclxuICAgIH0gXHJcbiAgICA1MCUgeyBcclxuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMik7IFxyXG4gICAgICAgIFxyXG4gICAgfSBcclxuICAgIDEwMCUgeyBcclxuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpOyBcclxuICAgICAgICBvcGFjaXR5OjE7XHJcbiAgICB9IFxyXG59IFxyXG4uZ3Jvd0luIHsgXHJcblxyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDAuMik7XHJcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuMik7XHJcbiAgICBvcGFjaXR5OjA7XHJcbn1cclxuLmdyb3dJbi5nb3tcclxuICAgIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGdyb3dJbjsgXHJcbiAgICBhbmltYXRpb24tbmFtZTogZ3Jvd0luOyBcclxufVxyXG5cclxuLyoqKioqKioqXHJcbiogU2hha2UgKlxyXG4qKioqKioqKi9cclxuQC13ZWJraXQta2V5ZnJhbWVzIHNoYWtlIHsgXHJcbiAgICAwJSwgMTAwJSB7LXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7fSBcclxuICAgIDEwJSwgMzAlLCA1MCUsIDcwJSwgOTAlIHstd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTBweCk7fSBcclxuICAgIDIwJSwgNDAlLCA2MCUsIDgwJSB7LXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTBweCk7fSBcclxufSBcclxuQGtleWZyYW1lcyBzaGFrZSB7IFxyXG4gICAgMCUsIDEwMCUge3RyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTt9IFxyXG4gICAgMTAlLCAzMCUsIDUwJSwgNzAlLCA5MCUge3RyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTBweCk7fSBcclxuICAgIDIwJSwgNDAlLCA2MCUsIDgwJSB7dHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwcHgpO30gXHJcbn0gXHJcbi5zaGFrZS5nbyB7IFxyXG4gICAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogc2hha2U7IFxyXG4gICAgYW5pbWF0aW9uLW5hbWU6IHNoYWtlOyBcclxufVxyXG5cclxuLyoqKioqKioqXHJcbiogU2hha2VVcCAqXHJcbioqKioqKioqL1xyXG5ALXdlYmtpdC1rZXlmcmFtZXMgc2hha2VVcCB7IFxyXG4gICAgMCUsIDEwMCUgey13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO30gXHJcbiAgICAxMCUsIDMwJSwgNTAlLCA3MCUsIDkwJSB7LXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwcHgpO30gXHJcbiAgICAyMCUsIDQwJSwgNjAlLCA4MCUgey13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwcHgpO30gXHJcbn0gXHJcbkBrZXlmcmFtZXMgc2hha2VVcCB7IFxyXG4gICAgMCUsIDEwMCUge3RyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTt9IFxyXG4gICAgMTAlLCAzMCUsIDUwJSwgNzAlLCA5MCUge3RyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTBweCk7fSBcclxuICAgIDIwJSwgNDAlLCA2MCUsIDgwJSB7dHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwcHgpO30gXHJcbn0gXHJcbi5zaGFrZVVwLmdvIHsgXHJcbiAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBzaGFrZVVwOyBcclxuICAgIGFuaW1hdGlvbi1uYW1lOiBzaGFrZVVwOyBcclxufVxyXG5cclxuLyoqKioqKioqKioqKipcclxuKiBGYWRlSW5MZWZ0ICpcclxuKioqKioqKioqKioqKi9cclxuXHJcbkAtd2Via2l0LWtleWZyYW1lcyBmYWRlSW5MZWZ0IHsgXHJcbiAgICAwJSB7IFxyXG4gICAgICAgIG9wYWNpdHk6IDA7IFxyXG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC00MDBweCk7IFxyXG4gICAgfSBcclxuICAgIDUwJXtcclxuICAgICAgIG9wYWNpdHk6IDAuMzsgXHJcbiAgICB9XHJcbiAgICAxMDAlIHsgXHJcbiAgICAgICAgb3BhY2l0eTogMTsgXHJcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IFxyXG4gICAgfSBcclxufSBcclxuQGtleWZyYW1lcyBmYWRlSW5MZWZ0IHsgXHJcbiAgICAwJSB7IFxyXG4gICAgICAgIG9wYWNpdHk6IDA7IFxyXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNDAwcHgpOyBcclxuICAgIH0gXHJcbiAgICA1MCV7XHJcbiAgICAgICBvcGFjaXR5OiAwLjM7IFxyXG4gICAgfVxyXG4gICAgMTAwJSB7IFxyXG4gICAgICAgIG9wYWNpdHk6IDE7IFxyXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgXHJcbiAgICB9IFxyXG59IFxyXG4uZmFkZUluTGVmdHsgXHJcbiAgICBvcGFjaXR5OiAwOyBcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC00MDBweCk7IFxyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC00MDBweCk7XHJcbn1cclxuLmZhZGVJbkxlZnQuZ28geyBcclxuICAgIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZhZGVJbkxlZnQ7IFxyXG4gICAgYW5pbWF0aW9uLW5hbWU6IGZhZGVJbkxlZnQ7IFxyXG59XHJcblxyXG5cclxuLyoqKioqKioqKioqKipcclxuKiBGYWRlSW5SaWdodCAqXHJcbioqKioqKioqKioqKiovXHJcblxyXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZUluUmlnaHQgeyBcclxuICAgIDAlIHsgXHJcbiAgICAgICAgb3BhY2l0eTogMDsgXHJcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNDAwcHgpOyBcclxuICAgIH0gXHJcbiAgICA1MCV7XHJcbiAgICAgICBvcGFjaXR5OiAwLjM7IFxyXG4gICAgfVxyXG4gICAgMTAwJSB7IFxyXG4gICAgICAgIG9wYWNpdHk6IDE7IFxyXG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyBcclxuICAgIH0gXHJcbn0gXHJcbkBrZXlmcmFtZXMgZmFkZUluUmlnaHQgeyBcclxuICAgIDAlIHsgXHJcbiAgICAgICAgb3BhY2l0eTogMDsgXHJcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDQwMHB4KTsgXHJcbiAgICB9IFxyXG4gICAgNTAle1xyXG4gICAgICAgb3BhY2l0eTogMC4zOyBcclxuICAgIH1cclxuICAgIDEwMCUgeyBcclxuICAgICAgICBvcGFjaXR5OiAxOyBcclxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IFxyXG4gICAgfSBcclxufSBcclxuLmZhZGVJblJpZ2h0eyBcclxuICAgIG9wYWNpdHk6IDA7IFxyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNDAwcHgpOyBcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg0MDBweCk7XHJcbn1cclxuLmZhZGVJblJpZ2h0LmdvIHsgXHJcbiAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmYWRlSW5SaWdodDsgXHJcbiAgICBhbmltYXRpb24tbmFtZTogZmFkZUluUmlnaHQ7IFxyXG59XHJcblxyXG4vKioqKioqKioqKioqKlxyXG4qIEZhZGVJblVwICpcclxuKioqKioqKioqKioqKi9cclxuXHJcbkAtd2Via2l0LWtleWZyYW1lcyBmYWRlSW5VcCB7IFxyXG4gICAgMCUgeyBcclxuICAgICAgICBvcGFjaXR5OiAwOyBcclxuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSg0MDBweCk7IFxyXG4gICAgfSBcclxuICAgIDUwJXtcclxuICAgICAgIG9wYWNpdHk6IDAuMzsgXHJcbiAgICB9XHJcbiAgICAxMDAlIHsgXHJcbiAgICAgICAgb3BhY2l0eTogMTsgXHJcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IFxyXG4gICAgfSBcclxufSBcclxuQGtleWZyYW1lcyBmYWRlSW5VcCB7IFxyXG4gICAgMCUgeyBcclxuICAgICAgICBvcGFjaXR5OiAwOyBcclxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNDAwcHgpOyBcclxuICAgIH0gXHJcbiAgICA1MCV7XHJcbiAgICAgICBvcGFjaXR5OiAwLjM7IFxyXG4gICAgfVxyXG4gICAgMTAwJSB7IFxyXG4gICAgICAgIG9wYWNpdHk6IDE7IFxyXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgXHJcbiAgICB9IFxyXG59IFxyXG4uZmFkZUluVXB7IFxyXG4gICAgb3BhY2l0eTogMDsgXHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSg0MDBweCk7IFxyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDQwMHB4KTtcclxufVxyXG4uZmFkZUluVXAuZ28geyBcclxuICAgIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZhZGVJblVwOyBcclxuICAgIGFuaW1hdGlvbi1uYW1lOiBmYWRlSW5VcDsgXHJcbn1cclxuXHJcbi8qKioqKioqKioqKioqXHJcbiogRmFkZUluRG93biAqXHJcbioqKioqKioqKioqKiovXHJcblxyXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZUluRG93biB7IFxyXG4gICAgMCUgeyBcclxuICAgICAgICBvcGFjaXR5OiAwOyBcclxuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNDAwcHgpOyBcclxuICAgIH0gXHJcbiAgICA1MCV7XHJcbiAgICAgICBvcGFjaXR5OiAwLjM7IFxyXG4gICAgfVxyXG4gICAgMTAwJSB7IFxyXG4gICAgICAgIG9wYWNpdHk6IDE7IFxyXG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyBcclxuICAgIH0gXHJcbn0gXHJcbkBrZXlmcmFtZXMgZmFkZUluRG93biB7IFxyXG4gICAgMCUgeyBcclxuICAgICAgICBvcGFjaXR5OiAwOyBcclxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTQwMHB4KTsgXHJcbiAgICB9IFxyXG4gICAgNTAle1xyXG4gICAgICAgb3BhY2l0eTogMC4zOyBcclxuICAgIH1cclxuICAgIDEwMCUgeyBcclxuICAgICAgICBvcGFjaXR5OiAxOyBcclxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IFxyXG4gICAgfSBcclxufSBcclxuLmZhZGVJbkRvd257IFxyXG4gICAgb3BhY2l0eTogMDsgXHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNDAwcHgpOyBcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNDAwcHgpO1xyXG59XHJcbi5mYWRlSW5Eb3duLmdvIHsgXHJcbiAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmYWRlSW5Eb3duOyBcclxuICAgIGFuaW1hdGlvbi1uYW1lOiBmYWRlSW5Eb3duOyBcclxufVxyXG5cclxuLyoqKioqKioqKioqKioqKioqXHJcbiogcm90YXRlSW4gKlxyXG4qKioqKioqKioqKioqKioqKi9cclxuQC13ZWJraXQta2V5ZnJhbWVzIHJvdGF0ZUluIHsgXHJcbiAgICAwJSB7IFxyXG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGNlbnRlcjsgXHJcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgtMjAwZGVnKTsgXHJcbiAgICAgICAgb3BhY2l0eTogMDsgXHJcbiAgICB9IFxyXG4gICAgMTAwJSB7IFxyXG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGNlbnRlcjsgXHJcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwKTsgXHJcbiAgICAgICAgb3BhY2l0eTogMTsgXHJcbiAgICB9IFxyXG59IFxyXG5Aa2V5ZnJhbWVzIHJvdGF0ZUluIHsgXHJcbiAgICAwJSB7IFxyXG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXI7IFxyXG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC0yMDBkZWcpOyBcclxuICAgICAgICBvcGFjaXR5OiAwOyBcclxuICAgIH0gXHJcbiAgICAxMDAlIHsgXHJcbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGNlbnRlcjsgXHJcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMCk7IFxyXG4gICAgICAgIG9wYWNpdHk6IDE7IFxyXG4gICAgfSBcclxufSBcclxuLnJvdGF0ZUluLmdvIHsgXHJcbiAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiByb3RhdGVJbjsgXHJcbiAgICBhbmltYXRpb24tbmFtZTogcm90YXRlSW47IFxyXG59XHJcblxyXG4vKioqKioqKioqKioqKioqKipcclxuKiByb3RhdGVJblVwTGVmdCAqXHJcbioqKioqKioqKioqKioqKioqL1xyXG5cclxuQC13ZWJraXQta2V5ZnJhbWVzIHJvdGF0ZUluVXBMZWZ0IHsgXHJcbiAgICAwJSB7IFxyXG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207IFxyXG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpOyBcclxuICAgICAgICBvcGFjaXR5OiAwOyBcclxuICAgIH0gXHJcbiAgICAxMDAlIHsgXHJcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTsgXHJcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwKTsgXHJcbiAgICAgICAgb3BhY2l0eTogMTsgXHJcbiAgICB9IFxyXG59IFxyXG5Aa2V5ZnJhbWVzIHJvdGF0ZUluVXBMZWZ0IHsgXHJcbiAgICAwJSB7IFxyXG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tOyBcclxuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7IFxyXG4gICAgICAgIG9wYWNpdHk6IDA7IFxyXG4gICAgfSBcclxuICAgIDEwMCUgeyBcclxuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTsgXHJcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMCk7IFxyXG4gICAgICAgIG9wYWNpdHk6IDE7IFxyXG4gICAgfSBcclxufSBcclxuLnJvdGF0ZUluVXBMZWZ0LmdvIHsgXHJcbiAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiByb3RhdGVJblVwTGVmdDsgXHJcbiAgICBhbmltYXRpb24tbmFtZTogcm90YXRlSW5VcExlZnQ7IFxyXG59XHJcblxyXG4vKioqKioqKioqKioqKioqKioqKlxyXG4qIHJvdGF0ZUluRG93bkxlZnQgKlxyXG4qKioqKioqKioqKioqKioqKioqL1xyXG5ALXdlYmtpdC1rZXlmcmFtZXMgcm90YXRlSW5Eb3duTGVmdCB7IFxyXG4gICAgMCUgeyBcclxuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tOyBcclxuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7IFxyXG4gICAgICAgIG9wYWNpdHk6IDA7IFxyXG4gICAgfSBcclxuICAgIDEwMCUgeyBcclxuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tOyBcclxuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDApOyBcclxuICAgICAgICBvcGFjaXR5OiAxOyBcclxuICAgIH0gXHJcbn0gXHJcbkBrZXlmcmFtZXMgcm90YXRlSW5Eb3duTGVmdCB7IFxyXG4gICAgMCUgeyBcclxuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTsgXHJcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTsgXHJcbiAgICAgICAgb3BhY2l0eTogMDsgXHJcbiAgICB9IFxyXG4gICAgMTAwJSB7IFxyXG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tOyBcclxuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwKTsgXHJcbiAgICAgICAgb3BhY2l0eTogMTsgXHJcbiAgICB9IFxyXG59IFxyXG4ucm90YXRlSW5Eb3duTGVmdC5nbyB7IFxyXG4gICAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogcm90YXRlSW5Eb3duTGVmdDsgXHJcbiAgICBhbmltYXRpb24tbmFtZTogcm90YXRlSW5Eb3duTGVmdDsgXHJcbn1cclxuXHJcbi8qKioqKioqKioqKioqKioqKipcclxuKiByb3RhdGVJblVwUmlnaHQgKlxyXG4qKioqKioqKioqKioqKioqKioqL1xyXG5cclxuQC13ZWJraXQta2V5ZnJhbWVzIHJvdGF0ZUluVXBSaWdodCB7IFxyXG4gICAgMCUgeyBcclxuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTsgXHJcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpOyBcclxuICAgICAgICBvcGFjaXR5OiAwOyBcclxuICAgIH0gXHJcbiAgICAxMDAlIHsgXHJcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207IFxyXG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMCk7IFxyXG4gICAgICAgIG9wYWNpdHk6IDE7IFxyXG4gICAgfSBcclxufSBcclxuQGtleWZyYW1lcyByb3RhdGVJblVwUmlnaHQgeyBcclxuICAgIDAlIHsgXHJcbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tOyBcclxuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpOyBcclxuICAgICAgICBvcGFjaXR5OiAwOyBcclxuICAgIH0gXHJcbiAgICAxMDAlIHsgXHJcbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tOyBcclxuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwKTsgXHJcbiAgICAgICAgb3BhY2l0eTogMTsgXHJcbiAgICB9IFxyXG59IFxyXG4ucm90YXRlSW5VcFJpZ2h0LmdvIHsgXHJcbiAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiByb3RhdGVJblVwUmlnaHQ7IFxyXG4gICAgYW5pbWF0aW9uLW5hbWU6IHJvdGF0ZUluVXBSaWdodDsgXHJcbn1cclxuXHJcbi8qKioqKioqKioqKioqKioqKioqKlxyXG4qIHJvdGF0ZUluRG93blJpZ2h0ICpcclxuKioqKioqKioqKioqKioqKioqKiovXHJcblxyXG5ALXdlYmtpdC1rZXlmcmFtZXMgcm90YXRlSW5Eb3duUmlnaHQgeyBcclxuICAgIDAlIHsgXHJcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207IFxyXG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpOyBcclxuICAgICAgICBvcGFjaXR5OiAwOyBcclxuICAgIH0gXHJcbiAgICAxMDAlIHsgXHJcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207IFxyXG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMCk7IFxyXG4gICAgICAgIG9wYWNpdHk6IDE7IFxyXG4gICAgfSBcclxufSBcclxuQGtleWZyYW1lcyByb3RhdGVJbkRvd25SaWdodCB7IFxyXG4gICAgMCUgeyBcclxuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207IFxyXG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTsgXHJcbiAgICAgICAgb3BhY2l0eTogMDsgXHJcbiAgICB9IFxyXG4gICAgMTAwJSB7IFxyXG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTsgXHJcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMCk7IFxyXG4gICAgICAgIG9wYWNpdHk6IDE7IFxyXG4gICAgfSBcclxufSBcclxuLnJvdGF0ZUluRG93blJpZ2h0LmdvIHsgXHJcbiAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiByb3RhdGVJbkRvd25SaWdodDsgXHJcbiAgICBhbmltYXRpb24tbmFtZTogcm90YXRlSW5Eb3duUmlnaHQ7IFxyXG59XHJcblxyXG4vKioqKioqKioqXHJcbiogcm9sbEluICpcclxuKioqKioqKioqKi9cclxuXHJcbkAtd2Via2l0LWtleWZyYW1lcyByb2xsSW4geyBcclxuICAgIDAlIHsgb3BhY2l0eTogMDsgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpIHJvdGF0ZSgtMTIwZGVnKTsgfSBcclxuICAgIDEwMCUgeyBvcGFjaXR5OiAxOyAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgwcHgpIHJvdGF0ZSgwZGVnKTsgfSBcclxufSBcclxuQGtleWZyYW1lcyByb2xsSW4geyBcclxuICAgIDAlIHsgb3BhY2l0eTogMDsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKSByb3RhdGUoLTEyMGRlZyk7IH0gXHJcbiAgICAxMDAlIHsgb3BhY2l0eTogMTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDBweCkgcm90YXRlKDBkZWcpOyB9IFxyXG59IFxyXG4ucm9sbEluLmdvIHsgXHJcbiAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiByb2xsSW47IFxyXG4gICAgYW5pbWF0aW9uLW5hbWU6IHJvbGxJbjsgXHJcbn1cclxuXHJcbi8qKioqKioqKipcclxuKiB3aWdnbGUgKlxyXG4qKioqKioqKioqL1xyXG5cclxuQC13ZWJraXQta2V5ZnJhbWVzIHdpZ2dsZSB7IFxyXG4gICAgMCUgeyAtd2Via2l0LXRyYW5zZm9ybTogc2tld1goOWRlZyk7IH0gXHJcbiAgICAxMCUgeyAtd2Via2l0LXRyYW5zZm9ybTogc2tld1goLThkZWcpOyB9IFxyXG4gICAgMjAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHNrZXdYKDdkZWcpOyB9IFxyXG4gICAgMzAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHNrZXdYKC02ZGVnKTsgfSBcclxuICAgIDQwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiBza2V3WCg1ZGVnKTsgfSBcclxuICAgIDUwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiBza2V3WCgtNGRlZyk7IH0gXHJcbiAgICA2MCUgeyAtd2Via2l0LXRyYW5zZm9ybTogc2tld1goM2RlZyk7IH0gXHJcbiAgICA3MCUgeyAtd2Via2l0LXRyYW5zZm9ybTogc2tld1goLTJkZWcpOyB9IFxyXG4gICAgODAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHNrZXdYKDFkZWcpOyB9IFxyXG4gICAgOTAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHNrZXdYKDBkZWcpOyB9IFxyXG4gICAgMTAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiBza2V3WCgwZGVnKTsgfSBcclxufSBcclxuQGtleWZyYW1lcyB3aWdnbGUgeyBcclxuICAgIDAlIHsgdHJhbnNmb3JtOiBza2V3WCg5ZGVnKTsgfSBcclxuICAgIDEwJSB7IHRyYW5zZm9ybTogc2tld1goLThkZWcpOyB9IFxyXG4gICAgMjAlIHsgdHJhbnNmb3JtOiBza2V3WCg3ZGVnKTsgfSBcclxuICAgIDMwJSB7IHRyYW5zZm9ybTogc2tld1goLTZkZWcpOyB9IFxyXG4gICAgNDAlIHsgdHJhbnNmb3JtOiBza2V3WCg1ZGVnKTsgfSBcclxuICAgIDUwJSB7IHRyYW5zZm9ybTogc2tld1goLTRkZWcpOyB9IFxyXG4gICAgNjAlIHsgdHJhbnNmb3JtOiBza2V3WCgzZGVnKTsgfSBcclxuICAgIDcwJSB7IHRyYW5zZm9ybTogc2tld1goLTJkZWcpOyB9IFxyXG4gICAgODAlIHsgdHJhbnNmb3JtOiBza2V3WCgxZGVnKTsgfSBcclxuICAgIDkwJSB7IHRyYW5zZm9ybTogc2tld1goMGRlZyk7IH0gXHJcbiAgICAxMDAlIHsgdHJhbnNmb3JtOiBza2V3WCgwZGVnKTsgfSBcclxufSBcclxuLndpZ2dsZS5nbyB7IFxyXG4gICAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogd2lnZ2xlOyBcclxuICAgIGFuaW1hdGlvbi1uYW1lOiB3aWdnbGU7IFxyXG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluOyBcclxuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47IFxyXG59IFxyXG5cclxuLyoqKioqKioqXHJcbiogc3dpbmcgKlxyXG4qKioqKioqKiovXHJcblxyXG5ALXdlYmtpdC1rZXlmcmFtZXMgc3dpbmcgeyBcclxuICAgIDIwJSwgNDAlLCA2MCUsIDgwJSwgMTAwJSB7IC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogdG9wIGNlbnRlcjsgfSBcclxuICAgIDIwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMTVkZWcpOyB9IFxyXG4gICAgNDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgtMTBkZWcpOyB9IFxyXG4gICAgNjAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg1ZGVnKTsgfSBcclxuICAgIDgwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoLTVkZWcpOyB9IFxyXG4gICAgMTAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH0gXHJcbn0gXHJcbkBrZXlmcmFtZXMgc3dpbmcgeyBcclxuICAgIDIwJSB7IHRyYW5zZm9ybTogcm90YXRlKDE1ZGVnKTsgfSBcclxuICAgIDQwJSB7IHRyYW5zZm9ybTogcm90YXRlKC0xMGRlZyk7IH0gXHJcbiAgICA2MCUgeyB0cmFuc2Zvcm06IHJvdGF0ZSg1ZGVnKTsgfSBcclxuICAgIDgwJSB7IHRyYW5zZm9ybTogcm90YXRlKC01ZGVnKTsgfSBcclxuICAgIDEwMCUgeyB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfSBcclxufSBcclxuLnN3aW5nLmdvIHsgXHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IHRvcCBjZW50ZXI7IFxyXG4gICAgdHJhbnNmb3JtLW9yaWdpbjogdG9wIGNlbnRlcjsgXHJcbiAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBzd2luZzsgXHJcbiAgICBhbmltYXRpb24tbmFtZTogc3dpbmc7IFxyXG59XHJcblxyXG4vKioqKioqKlxyXG4qIHRhZGEgKlxyXG4qKioqKioqKi9cclxuXHJcbkAtd2Via2l0LWtleWZyYW1lcyB0YWRhIHsgXHJcbiAgICAwJSB7LXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpO30gXHJcbiAgICAxMCUsIDIwJSB7LXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDAuOSkgcm90YXRlKC0zZGVnKTt9IFxyXG4gICAgMzAlLCA1MCUsIDcwJSwgOTAlIHstd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMS4xKSByb3RhdGUoM2RlZyk7fSBcclxuICAgIDQwJSwgNjAlLCA4MCUgey13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxLjEpIHJvdGF0ZSgtM2RlZyk7fSBcclxuICAgIDEwMCUgey13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxKSByb3RhdGUoMCk7fSBcclxufSBcclxuQGtleWZyYW1lcyB0YWRhIHsgXHJcbiAgICAwJSB7dHJhbnNmb3JtOiBzY2FsZSgxKTt9IFxyXG4gICAgMTAlLCAyMCUge3RyYW5zZm9ybTogc2NhbGUoMC45KSByb3RhdGUoLTNkZWcpO30gXHJcbiAgICAzMCUsIDUwJSwgNzAlLCA5MCUge3RyYW5zZm9ybTogc2NhbGUoMS4xKSByb3RhdGUoM2RlZyk7fSBcclxuICAgIDQwJSwgNjAlLCA4MCUge3RyYW5zZm9ybTogc2NhbGUoMS4xKSByb3RhdGUoLTNkZWcpO30gXHJcbiAgICAxMDAlIHt0cmFuc2Zvcm06IHNjYWxlKDEpIHJvdGF0ZSgwKTt9IFxyXG59IFxyXG4udGFkYS5nbyB7IFxyXG4gICAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogdGFkYTsgXHJcbiAgICBhbmltYXRpb24tbmFtZTogdGFkYTsgXHJcbn1cclxuXHJcbi8qKioqKioqKipcclxuKiB3b2JibGUgKlxyXG4qKioqKioqKioqL1xyXG5cclxuQC13ZWJraXQta2V5ZnJhbWVzIHdvYmJsZSB7IFxyXG4gIDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCUpOyB9IFxyXG4gIDE1JSB7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0yNSUpIHJvdGF0ZSgtNWRlZyk7IH0gXHJcbiAgMzAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjAlKSByb3RhdGUoM2RlZyk7IH0gXHJcbiAgNDUlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTE1JSkgcm90YXRlKC0zZGVnKTsgfSBcclxuICA2MCUgeyAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMCUpIHJvdGF0ZSgyZGVnKTsgfSBcclxuICA3NSUgeyAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNSUpIHJvdGF0ZSgtMWRlZyk7IH0gXHJcbiAgMTAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDAlKTsgfSBcclxufSBcclxuQGtleWZyYW1lcyB3b2JibGUgeyBcclxuICAwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwJSk7IH0gXHJcbiAgMTUlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0yNSUpIHJvdGF0ZSgtNWRlZyk7IH0gXHJcbiAgMzAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwJSkgcm90YXRlKDNkZWcpOyB9IFxyXG4gIDQ1JSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTUlKSByb3RhdGUoLTNkZWcpOyB9IFxyXG4gIDYwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMCUpIHJvdGF0ZSgyZGVnKTsgfSBcclxuICA3NSUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUlKSByb3RhdGUoLTFkZWcpOyB9IFxyXG4gIDEwMCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCUpOyB9IFxyXG59IFxyXG4ud29iYmxlLmdvIHsgXHJcbiAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiB3b2JibGU7IFxyXG4gICAgYW5pbWF0aW9uLW5hbWU6IHdvYmJsZTsgXHJcbn1cclxuXHJcbi8qKioqKioqKlxyXG4qIHB1bHNlICpcclxuKioqKioqKioqL1xyXG5cclxuQC13ZWJraXQta2V5ZnJhbWVzIHB1bHNlIHsgXHJcbiAgICAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxKTsgfSBcclxuICAgIDUwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxLjEpOyB9IFxyXG4gICAgMTAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxKTsgfSBcclxufSBcclxuQGtleWZyYW1lcyBwdWxzZSB7IFxyXG4gICAgMCUgeyB0cmFuc2Zvcm06IHNjYWxlKDEpOyB9IFxyXG4gICAgNTAlIHsgdHJhbnNmb3JtOiBzY2FsZSgxLjEpOyB9IFxyXG4gICAgMTAwJSB7IHRyYW5zZm9ybTogc2NhbGUoMSk7IH0gXHJcbn0gXHJcbi5wdWxzZS5nbyB7IFxyXG4gICAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogcHVsc2U7IFxyXG4gICAgYW5pbWF0aW9uLW5hbWU6IHB1bHNlOyBcclxufVxyXG5cclxuLyoqKioqKioqKioqKioqKlxyXG4qIGxpZ2h0U3BlZWRJblJpZ2h0ICpcclxuKioqKioqKioqKioqKioqKi9cclxuQC13ZWJraXQta2V5ZnJhbWVzIGxpZ2h0U3BlZWRJblJpZ2h0IHsgXHJcbiAgIDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSkgc2tld1goLTMwZGVnKTsgb3BhY2l0eTogMDsgfSBcclxuICAgIDYwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0yMCUpIHNrZXdYKDMwZGVnKTsgb3BhY2l0eTogMTsgfSBcclxuICAgIDgwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDAlKSBza2V3WCgtMTVkZWcpOyBvcGFjaXR5OiAxOyB9IFxyXG4gICAgMTAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDAlKSBza2V3WCgwZGVnKTsgb3BhY2l0eTogMTsgfSBcclxufSBcclxuQGtleWZyYW1lcyBsaWdodFNwZWVkSW5SaWdodCB7IFxyXG4gICAgMCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSkgc2tld1goLTMwZGVnKTsgb3BhY2l0eTogMDsgfSBcclxuICAgIDYwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMjAlKSBza2V3WCgzMGRlZyk7IG9wYWNpdHk6IDE7IH0gXHJcbiAgICA4MCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCUpIHNrZXdYKC0xNWRlZyk7IG9wYWNpdHk6IDE7IH0gXHJcbiAgICAxMDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDAlKSBza2V3WCgwZGVnKTsgb3BhY2l0eTogMTsgfSBcclxufSBcclxuLmxpZ2h0U3BlZWRJblJpZ2h0LmdvIHsgXHJcbiAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBsaWdodFNwZWVkSW5SaWdodDsgXHJcbiAgICBhbmltYXRpb24tbmFtZTogbGlnaHRTcGVlZEluUmlnaHQ7IFxyXG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDsgXHJcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDsgXHJcbn0gXHJcblxyXG4vKioqKioqKioqKioqKioqXHJcbiogbGlnaHRTcGVlZEluTGVmdCAqXHJcbioqKioqKioqKioqKioqKiovXHJcbkAtd2Via2l0LWtleWZyYW1lcyBsaWdodFNwZWVkSW5MZWZ0IHsgXHJcbiAgIDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpIHNrZXdYKDMwZGVnKTsgb3BhY2l0eTogMDsgfSBcclxuICAgIDYwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwJSkgc2tld1goLTMwZGVnKTsgb3BhY2l0eTogMTsgfSBcclxuICAgIDgwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDAlKSBza2V3WCgxNWRlZyk7IG9wYWNpdHk6IDE7IH0gXHJcbiAgICAxMDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCUpIHNrZXdYKDBkZWcpOyBvcGFjaXR5OiAxOyB9IFxyXG59IFxyXG5Aa2V5ZnJhbWVzIGxpZ2h0U3BlZWRJbkxlZnQgeyBcclxuICAgIDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKSBza2V3WCgzMGRlZyk7IG9wYWNpdHk6IDA7IH0gXHJcbiAgICA2MCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjAlKSBza2V3WCgtMzBkZWcpOyBvcGFjaXR5OiAxOyB9IFxyXG4gICAgODAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDAlKSBza2V3WCgxNWRlZyk7IG9wYWNpdHk6IDE7IH0gXHJcbiAgICAxMDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDAlKSBza2V3WCgwZGVnKTsgb3BhY2l0eTogMTsgfSBcclxufSBcclxuLmxpZ2h0U3BlZWRJbkxlZnQuZ28geyBcclxuICAgIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGxpZ2h0U3BlZWRJbkxlZnQ7IFxyXG4gICAgYW5pbWF0aW9uLW5hbWU6IGxpZ2h0U3BlZWRJbkxlZnQ7IFxyXG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDsgXHJcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDsgXHJcbn0gXHJcblxyXG5cclxuLyoqKioqKipcclxuKiBGbGlwICpcclxuKioqKioqKi9cclxuQC13ZWJraXQta2V5ZnJhbWVzIGZsaXAgeyBcclxuICAgIDAlIHsgXHJcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKDApOyBcclxuICAgICAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0OyBcclxuICAgIH0gXHJcbiAgICA0MCUgeyBcclxuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHRyYW5zbGF0ZVooMTUwcHgpIHJvdGF0ZVkoMTcwZGVnKTsgXHJcbiAgICAgICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDsgXHJcbiAgICB9IFxyXG4gICAgNTAlIHsgXHJcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSB0cmFuc2xhdGVaKDE1MHB4KSByb3RhdGVZKDE5MGRlZykgc2NhbGUoMSk7IFxyXG4gICAgICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjsgXHJcbiAgICB9IFxyXG4gICAgODAlIHsgXHJcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKDM2MGRlZykgc2NhbGUoLjk1KTsgXHJcbiAgICAgICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluOyBcclxuICAgIH0gXHJcbiAgICAxMDAlIHsgXHJcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSBzY2FsZSgxKTsgXHJcbiAgICAgICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluOyBcclxuICAgIH0gXHJcbn1cclxuQGtleWZyYW1lcyBmbGlwIHsgXHJcbiAgICAwJSB7IFxyXG4gICAgICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoMCk7IFxyXG4gICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0OyBcclxuICAgIH0gXHJcbiAgICA0MCUgeyBcclxuICAgICAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSB0cmFuc2xhdGVaKDE1MHB4KSByb3RhdGVZKDE3MGRlZyk7IFxyXG4gICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0OyBcclxuICAgIH0gXHJcbiAgICA1MCUgeyBcclxuICAgICAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSB0cmFuc2xhdGVaKDE1MHB4KSByb3RhdGVZKDE5MGRlZykgc2NhbGUoMSk7IFxyXG4gICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47IFxyXG4gICAgfSBcclxuICAgIDgwJSB7IFxyXG4gICAgICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoMzYwZGVnKSBzY2FsZSguOTUpOyBcclxuICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluOyBcclxuICAgIH0gXHJcbiAgICAxMDAlIHsgXHJcbiAgICAgICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgc2NhbGUoMSk7IFxyXG4gICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47IFxyXG4gICAgfSBcclxufSBcclxuLmZsaXAuZ28geyBcclxuICAgIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogdmlzaWJsZSAhaW1wb3J0YW50OyBcclxuICAgIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZsaXA7IFxyXG4gICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogdmlzaWJsZSAhaW1wb3J0YW50OyBcclxuICAgIGFuaW1hdGlvbi1uYW1lOiBmbGlwOyBcclxufVxyXG5cclxuLyoqKioqKioqKipcclxuKiBmbGlwSW5YICpcclxuKioqKioqKioqKi9cclxuQC13ZWJraXQta2V5ZnJhbWVzIGZsaXBJblggeyBcclxuICAgIDAlIHsgXHJcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKDkwZGVnKTsgXHJcbiAgICAgICAgb3BhY2l0eTogMDsgXHJcbiAgICB9IFxyXG4gICAgNDAlIHsgXHJcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKC0xMGRlZyk7IFxyXG4gICAgfSBcclxuICAgIDcwJSB7IFxyXG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWCgxMGRlZyk7IFxyXG4gICAgfSBcclxuICAgIDEwMCUgeyBcclxuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoMGRlZyk7IFxyXG4gICAgICAgIG9wYWNpdHk6IDE7IFxyXG4gICAgfSBcclxufSBcclxuQGtleWZyYW1lcyBmbGlwSW5YIHsgXHJcbiAgICAwJSB7IFxyXG4gICAgICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoOTBkZWcpOyBcclxuICAgICAgICBvcGFjaXR5OiAwOyBcclxuICAgIH0gXHJcbiAgICA0MCUgeyBcclxuICAgICAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKC0xMGRlZyk7IFxyXG4gICAgfSBcclxuICAgIDcwJSB7IFxyXG4gICAgICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoMTBkZWcpOyBcclxuICAgIH0gXHJcbiAgICAxMDAlIHsgXHJcbiAgICAgICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWCgwZGVnKTsgXHJcbiAgICAgICAgb3BhY2l0eTogMTsgXHJcbiAgICB9IFxyXG59IFxyXG4uZmxpcEluWC5nbyB7IFxyXG4gICAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiB2aXNpYmxlICFpbXBvcnRhbnQ7IFxyXG4gICAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmxpcEluWDsgXHJcbiAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiB2aXNpYmxlICFpbXBvcnRhbnQ7IFxyXG4gICAgYW5pbWF0aW9uLW5hbWU6IGZsaXBJblg7IFxyXG59XHJcblxyXG4vKioqKioqKioqKlxyXG4qIGZsaXBJblkgKlxyXG4qKioqKioqKioqL1xyXG5cclxuQC13ZWJraXQta2V5ZnJhbWVzIGZsaXBJblkgeyBcclxuICAgIDAlIHsgXHJcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKDkwZGVnKTsgXHJcbiAgICAgICAgb3BhY2l0eTogMDsgXHJcbiAgICB9IFxyXG4gICAgNDAlIHsgXHJcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKC0xMGRlZyk7IFxyXG4gICAgfSBcclxuICAgIDcwJSB7IFxyXG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWSgxMGRlZyk7IFxyXG4gICAgfSBcclxuICAgIDEwMCUgeyBcclxuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoMGRlZyk7IFxyXG4gICAgICAgIG9wYWNpdHk6IDE7IFxyXG4gICAgfSBcclxufSBcclxuQGtleWZyYW1lcyBmbGlwSW5ZIHsgXHJcbiAgICAwJSB7IFxyXG4gICAgICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoOTBkZWcpOyBcclxuICAgICAgICBvcGFjaXR5OiAwOyBcclxuICAgIH0gXHJcbiAgICA0MCUgeyBcclxuICAgICAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKC0xMGRlZyk7IFxyXG4gICAgfSBcclxuICAgIDcwJSB7IFxyXG4gICAgICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoMTBkZWcpOyBcclxuICAgIH0gXHJcbiAgICAxMDAlIHsgXHJcbiAgICAgICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWSgwZGVnKTsgXHJcbiAgICAgICAgb3BhY2l0eTogMTsgXHJcbiAgICB9IFxyXG59IFxyXG4uZmxpcEluWS5nbyB7IFxyXG4gICAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiB2aXNpYmxlICFpbXBvcnRhbnQ7IFxyXG4gICAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmxpcEluWTsgXHJcbiAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiB2aXNpYmxlICFpbXBvcnRhbnQ7IFxyXG4gICAgYW5pbWF0aW9uLW5hbWU6IGZsaXBJblk7IFxyXG59XHJcblxyXG4vKioqKioqKioqKioqKioqKipcclxuKiBPdXQgYW5pbWF0aW9ucyAqXHJcbioqKioqKioqKioqKioqKioqL1xyXG5cclxuXHJcbi8qKioqKioqKioqKipcclxuKiBib3VuY2VPdXQgKlxyXG4qKioqKioqKioqKioqL1xyXG5ALXdlYmtpdC1rZXlmcmFtZXMgYm91bmNlT3V0IHsgXHJcbiAgICAwJSB7IFxyXG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxKTsgXHJcbiAgICB9IFxyXG4gICAgMjUlIHsgXHJcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKC45NSk7IFxyXG4gICAgfSBcclxuICAgIDUwJSB7IFxyXG4gICAgICAgIG9wYWNpdHk6IDE7IFxyXG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxLjEpOyBcclxuICAgIH0gXHJcbiAgICAxMDAlIHsgXHJcbiAgICAgICAgb3BhY2l0eTogMDsgXHJcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKC4zKTsgXHJcbiAgICB9IFxyXG59IFxyXG5Aa2V5ZnJhbWVzIGJvdW5jZU91dCB7IFxyXG4gICAgMCUgeyBcclxuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpOyBcclxuICAgIH0gXHJcbiAgICAyNSUgeyBcclxuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKC45NSk7IFxyXG4gICAgfSBcclxuICAgIDUwJSB7IFxyXG4gICAgICAgIG9wYWNpdHk6IDE7IFxyXG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xKTsgXHJcbiAgICB9IFxyXG4gICAgMTAwJSB7IFxyXG4gICAgICAgIG9wYWNpdHk6IDA7IFxyXG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoLjMpOyBcclxuICAgIH0gXHJcbn0gXHJcbi5ib3VuY2VPdXQuZ29Bd2F5IHsgXHJcbiAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBib3VuY2VPdXQ7IFxyXG4gICAgYW5pbWF0aW9uLW5hbWU6IGJvdW5jZU91dDsgXHJcbn1cclxuXHJcbi8qKioqKioqKioqKipcclxuKiBib3VuY2VPdXRVcCAqXHJcbioqKioqKioqKioqKiovXHJcbkAtd2Via2l0LWtleWZyYW1lcyBib3VuY2VPdXRVcCB7IFxyXG4gICAgMCUgeyBcclxuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgXHJcbiAgICB9IFxyXG4gICAgMjAlIHsgXHJcbiAgICAgICAgb3BhY2l0eTogMTsgXHJcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjBweCk7IFxyXG4gICAgfSBcclxuICAgIDEwMCUgeyBcclxuICAgICAgICBvcGFjaXR5OiAwOyBcclxuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjAwMHB4KTsgXHJcbiAgICB9IFxyXG59IFxyXG5Aa2V5ZnJhbWVzIGJvdW5jZU91dFVwIHsgXHJcbiAgICAwJSB7IFxyXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgXHJcbiAgICB9IFxyXG4gICAgMjAlIHsgXHJcbiAgICAgICAgb3BhY2l0eTogMTsgXHJcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDIwcHgpOyBcclxuICAgIH0gXHJcbiAgICAxMDAlIHsgXHJcbiAgICAgICAgb3BhY2l0eTogMDsgXHJcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yMDAwcHgpOyBcclxuICAgIH0gXHJcbn0gXHJcbi5ib3VuY2VPdXRVcC5nb0F3YXkgeyBcclxuICAgIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGJvdW5jZU91dFVwOyBcclxuICAgIGFuaW1hdGlvbi1uYW1lOiBib3VuY2VPdXRVcDsgXHJcbn1cclxuXHJcbi8qKioqKioqKioqKipcclxuKiBib3VuY2VPdXREb3duICpcclxuKioqKioqKioqKioqKi9cclxuQC13ZWJraXQta2V5ZnJhbWVzIGJvdW5jZU91dERvd24geyBcclxuICAgIDAlIHsgXHJcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IFxyXG4gICAgfSBcclxuICAgIDIwJSB7IFxyXG4gICAgICAgIG9wYWNpdHk6IDE7IFxyXG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yMHB4KTsgXHJcbiAgICB9IFxyXG4gICAgMTAwJSB7IFxyXG4gICAgICAgIG9wYWNpdHk6IDA7IFxyXG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDIwMDBweCk7IFxyXG4gICAgfSBcclxufSBcclxuQGtleWZyYW1lcyBib3VuY2VPdXREb3duIHsgXHJcbiAgICAwJSB7IFxyXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgXHJcbiAgICB9IFxyXG4gICAgMjAlIHsgXHJcbiAgICAgICAgb3BhY2l0eTogMTsgXHJcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yMHB4KTsgXHJcbiAgICB9IFxyXG4gICAgMTAwJSB7IFxyXG4gICAgICAgIG9wYWNpdHk6IDA7IFxyXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyMDAwcHgpOyBcclxuICAgIH0gXHJcbn0gXHJcbi5ib3VuY2VPdXREb3duLmdvQXdheSB7IFxyXG4gICAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogYm91bmNlT3V0RG93bjsgXHJcbiAgICBhbmltYXRpb24tbmFtZTogYm91bmNlT3V0RG93bjsgXHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqXHJcbiogYm91bmNlT3V0TGVmdCAqXHJcbioqKioqKioqKioqKiovXHJcbkAtd2Via2l0LWtleWZyYW1lcyBib3VuY2VPdXRMZWZ0IHsgXHJcbiAgICAwJSB7IFxyXG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyBcclxuICAgIH0gXHJcbiAgICAyMCUgeyBcclxuICAgICAgICBvcGFjaXR5OiAxOyBcclxuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgyMHB4KTsgXHJcbiAgICB9IFxyXG4gICAgMTAwJSB7IFxyXG4gICAgICAgIG9wYWNpdHk6IDA7IFxyXG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0yMDAwcHgpOyBcclxuICAgIH0gXHJcbn0gXHJcbkBrZXlmcmFtZXMgYm91bmNlT3V0TGVmdCB7IFxyXG4gICAgMCUgeyBcclxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IFxyXG4gICAgfSBcclxuICAgIDIwJSB7IFxyXG4gICAgICAgIG9wYWNpdHk6IDE7IFxyXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgyMHB4KTsgXHJcbiAgICB9IFxyXG4gICAgMTAwJSB7IFxyXG4gICAgICAgIG9wYWNpdHk6IDA7IFxyXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMjAwMHB4KTsgXHJcbiAgICB9IFxyXG59IFxyXG4uYm91bmNlT3V0TGVmdC5nb0F3YXkgeyBcclxuICAgIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGJvdW5jZU91dExlZnQ7IFxyXG4gICAgYW5pbWF0aW9uLW5hbWU6IGJvdW5jZU91dExlZnQ7IFxyXG59XHJcblxyXG4vKioqKioqKioqKioqXHJcbiogYm91bmNlT3V0UmlnaHQgKlxyXG4qKioqKioqKioqKioqL1xyXG5ALXdlYmtpdC1rZXlmcmFtZXMgYm91bmNlT3V0UmlnaHQgeyBcclxuICAgIDAlIHsgXHJcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IFxyXG4gICAgfSBcclxuICAgIDIwJSB7IFxyXG4gICAgICAgIG9wYWNpdHk6IDE7IFxyXG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0yMHB4KTsgXHJcbiAgICB9IFxyXG4gICAgMTAwJSB7IFxyXG4gICAgICAgIG9wYWNpdHk6IDA7IFxyXG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwMDBweCk7IFxyXG4gICAgfSBcclxufSBcclxuQGtleWZyYW1lcyBib3VuY2VPdXRSaWdodCB7IFxyXG4gICAgMCUgeyBcclxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IFxyXG4gICAgfSBcclxuICAgIDIwJSB7IFxyXG4gICAgICAgIG9wYWNpdHk6IDE7IFxyXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMjBweCk7IFxyXG4gICAgfSBcclxuICAgIDEwMCUgeyBcclxuICAgICAgICBvcGFjaXR5OiAwOyBcclxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjAwMHB4KTsgXHJcbiAgICB9IFxyXG59IFxyXG4uYm91bmNlT3V0UmlnaHQuZ29Bd2F5IHsgXHJcbiAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBib3VuY2VPdXRSaWdodDsgXHJcbiAgICBhbmltYXRpb24tbmFtZTogYm91bmNlT3V0UmlnaHQ7IFxyXG59XHJcblxyXG4vKioqKioqKioqKioqXHJcbiogZmFkZU91dCAqXHJcbioqKioqKioqKioqKiovXHJcbkAtd2Via2l0LWtleWZyYW1lcyBmYWRlT3V0IHsgXHJcbiAgICAwJSB7b3BhY2l0eTogMTt9IFxyXG4gICAgMTAwJSB7b3BhY2l0eTogMDt9IFxyXG59IFxyXG5Aa2V5ZnJhbWVzIGZhZGVPdXQgeyBcclxuICAgIDAlIHtvcGFjaXR5OiAxO30gXHJcbiAgICAxMDAlIHtvcGFjaXR5OiAwO30gXHJcbn0gXHJcbi5mYWRlT3V0LmdvQXdheSB7IFxyXG4gICAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmFkZU91dDsgXHJcbiAgICBhbmltYXRpb24tbmFtZTogZmFkZU91dDsgXHJcbn1cclxuXHJcbi8qKioqKioqKioqKipcclxuKiBmYWRlT3V0VXAgKlxyXG4qKioqKioqKioqKioqL1xyXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZU91dFVwIHsgXHJcbiAgICAwJSB7IFxyXG4gICAgICAgIG9wYWNpdHk6IDE7IFxyXG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyBcclxuICAgIH0gXHJcbiAgICAxMDAlIHsgXHJcbiAgICAgICAgb3BhY2l0eTogMDsgXHJcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTIwMDBweCk7IFxyXG4gICAgfSBcclxufSBcclxuQGtleWZyYW1lcyBmYWRlT3V0VXAgeyBcclxuICAgIDAlIHsgXHJcbiAgICAgICAgb3BhY2l0eTogMTsgXHJcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyBcclxuICAgIH0gXHJcbiAgICAxMDAlIHsgXHJcbiAgICAgICAgb3BhY2l0eTogMDsgXHJcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yMDAwcHgpOyBcclxuICAgIH0gXHJcbn0gXHJcbi5mYWRlT3V0VXAuZ29Bd2F5IHsgXHJcbiAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0VXA7IFxyXG4gICAgYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXRVcDsgXHJcbn1cclxuXHJcbi8qKioqKioqKioqKipcclxuKiBmYWRlT3V0RG93biAqXHJcbioqKioqKioqKioqKiovXHJcbkAtd2Via2l0LWtleWZyYW1lcyBmYWRlT3V0RG93biB7IFxyXG4gICAgMCUgeyBcclxuICAgICAgICBvcGFjaXR5OiAxOyBcclxuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgXHJcbiAgICB9IFxyXG4gICAgMTAwJSB7IFxyXG4gICAgICAgIG9wYWNpdHk6IDA7IFxyXG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDIwMDBweCk7IFxyXG4gICAgfSBcclxufSBcclxuQGtleWZyYW1lcyBmYWRlT3V0RG93biB7IFxyXG4gICAgMCUgeyBcclxuICAgICAgICBvcGFjaXR5OiAxOyBcclxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IFxyXG4gICAgfSBcclxuICAgIDEwMCUgeyBcclxuICAgICAgICBvcGFjaXR5OiAwOyBcclxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjAwMHB4KTsgXHJcbiAgICB9IFxyXG59IFxyXG4uZmFkZU91dERvd24uZ29Bd2F5IHsgXHJcbiAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0RG93bjsgXHJcbiAgICBhbmltYXRpb24tbmFtZTogZmFkZU91dERvd247IFxyXG59XHJcblxyXG4vKioqKioqKioqKioqXHJcbiogZmFkZU91dExlZnQgKlxyXG4qKioqKioqKioqKioqL1xyXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZU91dExlZnQgeyBcclxuICAgIDAlIHsgXHJcbiAgICAgICAgb3BhY2l0eTogMTsgXHJcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IFxyXG4gICAgfSBcclxuICAgIDEwMCUgeyBcclxuICAgICAgICBvcGFjaXR5OiAwOyBcclxuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMjAwMHB4KTsgXHJcbiAgICB9IFxyXG59IFxyXG5Aa2V5ZnJhbWVzIGZhZGVPdXRMZWZ0IHsgXHJcbiAgICAwJSB7IFxyXG4gICAgICAgIG9wYWNpdHk6IDE7IFxyXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgXHJcbiAgICB9IFxyXG4gICAgMTAwJSB7IFxyXG4gICAgICAgIG9wYWNpdHk6IDA7IFxyXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMjAwMHB4KTsgXHJcbiAgICB9IFxyXG59IFxyXG4uZmFkZU91dExlZnQuZ29Bd2F5IHsgXHJcbiAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0TGVmdDsgXHJcbiAgICBhbmltYXRpb24tbmFtZTogZmFkZU91dExlZnQ7IFxyXG59XHJcblxyXG4vKioqKioqKioqKioqXHJcbiogZmFkZU91dFJpZ2h0ICpcclxuKioqKioqKioqKioqKi9cclxuQC13ZWJraXQta2V5ZnJhbWVzIGZhZGVPdXRSaWdodCB7IFxyXG4gICAgMCUgeyBcclxuICAgICAgICBvcGFjaXR5OiAxOyBcclxuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgXHJcbiAgICB9IFxyXG4gICAgMTAwJSB7IFxyXG4gICAgICAgIG9wYWNpdHk6IDA7IFxyXG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwMDBweCk7IFxyXG4gICAgfSBcclxufSBcclxuQGtleWZyYW1lcyBmYWRlT3V0UmlnaHQgeyBcclxuICAgIDAlIHsgXHJcbiAgICAgICAgb3BhY2l0eTogMTsgXHJcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyBcclxuICAgIH0gXHJcbiAgICAxMDAlIHsgXHJcbiAgICAgICAgb3BhY2l0eTogMDsgXHJcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwMDBweCk7IFxyXG4gICAgfSBcclxufSBcclxuLmZhZGVPdXRSaWdodC5nb0F3YXkgeyBcclxuICAgIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXRSaWdodDsgXHJcbiAgICBhbmltYXRpb24tbmFtZTogZmFkZU91dFJpZ2h0OyBcclxufVxyXG4vKioqKioqKioqKioqXHJcbiogZmxpcE91dFggKlxyXG4qKioqKioqKioqKioqL1xyXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmxpcE91dFggeyBcclxuICAgIDAlIHsgXHJcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKDBkZWcpOyBcclxuICAgICAgICBvcGFjaXR5OiAxOyBcclxuICAgIH0gXHJcbiAgICAxMDAlIHsgXHJcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKDkwZGVnKTsgXHJcbiAgICAgICAgb3BhY2l0eTogMDsgXHJcbiAgICB9IFxyXG59IFxyXG5Aa2V5ZnJhbWVzIGZsaXBPdXRYIHsgXHJcbiAgICAwJSB7IFxyXG4gICAgICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoMGRlZyk7IFxyXG4gICAgICAgIG9wYWNpdHk6IDE7IFxyXG4gICAgfSBcclxuICAgIDEwMCUgeyBcclxuICAgICAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKDkwZGVnKTsgXHJcbiAgICAgICAgb3BhY2l0eTogMDsgXHJcbiAgICB9IFxyXG59IFxyXG4uZmxpcE91dFguZ29Bd2F5IHsgXHJcbiAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmbGlwT3V0WDsgXHJcbiAgICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IHZpc2libGUgIWltcG9ydGFudDsgXHJcbiAgICBhbmltYXRpb24tbmFtZTogZmxpcE91dFg7IFxyXG4gICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogdmlzaWJsZSAhaW1wb3J0YW50OyBcclxufVxyXG5cclxuLyoqKioqKioqKioqKlxyXG4qIGZsaXBPdXRZICpcclxuKioqKioqKioqKioqKi9cclxuQC13ZWJraXQta2V5ZnJhbWVzIGZsaXBPdXRZIHsgXHJcbiAgICAwJSB7IFxyXG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWSgwZGVnKTsgXHJcbiAgICAgICAgb3BhY2l0eTogMTsgXHJcbiAgICB9IFxyXG4gICAgMTAwJSB7IFxyXG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWSg5MGRlZyk7IFxyXG4gICAgICAgIG9wYWNpdHk6IDA7IFxyXG4gICAgfSBcclxufSBcclxuQGtleWZyYW1lcyBmbGlwT3V0WSB7IFxyXG4gICAgMCUgeyBcclxuICAgICAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKDBkZWcpOyBcclxuICAgICAgICBvcGFjaXR5OiAxOyBcclxuICAgIH0gXHJcbiAgICAxMDAlIHsgXHJcbiAgICAgICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWSg5MGRlZyk7IFxyXG4gICAgICAgIG9wYWNpdHk6IDA7IFxyXG4gICAgfSBcclxufSBcclxuLmZsaXBPdXRZIHsgXHJcbiAgICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IHZpc2libGUgIWltcG9ydGFudDsgXHJcbiAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmbGlwT3V0WTsgXHJcbiAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiB2aXNpYmxlICFpbXBvcnRhbnQ7IFxyXG4gICAgYW5pbWF0aW9uLW5hbWU6IGZsaXBPdXRZOyBcclxufVxyXG5cclxuLyoqKioqKioqKioqKlxyXG4qIGxpZ2h0U3BlZWRPdXRSaWdodCAqXHJcbioqKioqKioqKioqKiovXHJcbkAtd2Via2l0LWtleWZyYW1lcyBsaWdodFNwZWVkT3V0UmlnaHQgeyBcclxuICAgIDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCUpIHNrZXdYKDBkZWcpOyBvcGFjaXR5OiAxOyB9IFxyXG4gICAgMTAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpIHNrZXdYKC0zMGRlZyk7IG9wYWNpdHk6IDA7IH0gXHJcbn0gXHJcbkBrZXlmcmFtZXMgbGlnaHRTcGVlZE91dFJpZ2h0IHsgXHJcbiAgICAwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwJSkgc2tld1goMGRlZyk7IG9wYWNpdHk6IDE7IH0gXHJcbiAgICAxMDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpIHNrZXdYKC0zMGRlZyk7IG9wYWNpdHk6IDA7IH0gXHJcbn0gXHJcbi5saWdodFNwZWVkT3V0UmlnaHQuZ29Bd2F5IHsgXHJcbiAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBsaWdodFNwZWVkT3V0UmlnaHQ7IFxyXG4gICAgYW5pbWF0aW9uLW5hbWU6IGxpZ2h0U3BlZWRPdXRSaWdodDsgXHJcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47IFxyXG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjsgXHJcbn0gXHJcblxyXG5cclxuLyoqKioqKioqKioqKlxyXG4qIGxpZ2h0U3BlZWRPdXRMZWZ0ICpcclxuKioqKioqKioqKioqKi9cclxuQC13ZWJraXQta2V5ZnJhbWVzIGxpZ2h0U3BlZWRPdXRMZWZ0IHsgXHJcbiAgICAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDAlKSBza2V3WCgwZGVnKTsgb3BhY2l0eTogMTsgfSBcclxuICAgIDEwMCUgeyAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSkgc2tld1goMzBkZWcpOyBvcGFjaXR5OiAwOyB9IFxyXG59IFxyXG5Aa2V5ZnJhbWVzIGxpZ2h0U3BlZWRPdXRMZWZ0IHsgXHJcbiAgICAwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwJSkgc2tld1goMGRlZyk7IG9wYWNpdHk6IDE7IH0gXHJcbiAgICAxMDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKSBza2V3WCgzMGRlZyk7IG9wYWNpdHk6IDA7IH0gXHJcbn0gXHJcbi5saWdodFNwZWVkT3V0TGVmdC5nb0F3YXkgeyBcclxuICAgIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGxpZ2h0U3BlZWRPdXRMZWZ0OyBcclxuICAgIGFuaW1hdGlvbi1uYW1lOiBsaWdodFNwZWVkT3V0TGVmdDsgXHJcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47IFxyXG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjsgXHJcblxyXG59IFxyXG5cclxuLyoqKioqKioqKioqKlxyXG4qIHJvdGF0ZU91dCAqXHJcbioqKioqKioqKioqKiovXHJcbkAtd2Via2l0LWtleWZyYW1lcyByb3RhdGVPdXQgeyBcclxuICAgIDAlIHsgXHJcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyOyBcclxuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDApOyBcclxuICAgICAgICBvcGFjaXR5OiAxOyBcclxuICAgIH0gXHJcbiAgICAxMDAlIHsgXHJcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyOyBcclxuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDIwMGRlZyk7IFxyXG4gICAgICAgIG9wYWNpdHk6IDA7IFxyXG4gICAgfSBcclxufSBcclxuQGtleWZyYW1lcyByb3RhdGVPdXQgeyBcclxuICAgIDAlIHsgXHJcbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGNlbnRlcjsgXHJcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMCk7IFxyXG4gICAgICAgIG9wYWNpdHk6IDE7IFxyXG4gICAgfSBcclxuICAgIDEwMCUgeyBcclxuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyOyBcclxuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgyMDBkZWcpOyBcclxuICAgICAgICBvcGFjaXR5OiAwOyBcclxuICAgIH0gXHJcbn0gXHJcbi5yb3RhdGVPdXQuZ29Bd2F5IHsgXHJcbiAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiByb3RhdGVPdXQ7IFxyXG4gICAgYW5pbWF0aW9uLW5hbWU6IHJvdGF0ZU91dDsgXHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqXHJcbiogcm90YXRlT3V0VXBMZWZ0ICpcclxuKioqKioqKioqKioqKi9cclxuQC13ZWJraXQta2V5ZnJhbWVzIHJvdGF0ZU91dFVwTGVmdCB7IFxyXG4gICAgMCUgeyBcclxuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tOyBcclxuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDApOyBcclxuICAgICAgICBvcGFjaXR5OiAxOyBcclxuICAgIH0gXHJcbiAgICAxMDAlIHsgXHJcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTsgXHJcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpOyBcclxuICAgICAgICBvcGFjaXR5OiAwOyBcclxuICAgIH0gXHJcbn0gXHJcbkBrZXlmcmFtZXMgcm90YXRlT3V0VXBMZWZ0IHsgXHJcbiAgICAwJSB7IFxyXG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tOyBcclxuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwKTsgXHJcbiAgICAgICAgb3BhY2l0eTogMTsgXHJcbiAgICB9IFxyXG4gICAgMTAwJSB7IFxyXG4gICAgICAgIC10cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTsgXHJcbiAgICAgICAgLXRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7IFxyXG4gICAgICAgIG9wYWNpdHk6IDA7IFxyXG4gICAgfSBcclxufSBcclxuLnJvdGF0ZU91dFVwTGVmdC5nb0F3YXkgeyBcclxuICAgIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHJvdGF0ZU91dFVwTGVmdDsgXHJcbiAgICBhbmltYXRpb24tbmFtZTogcm90YXRlT3V0VXBMZWZ0OyBcclxufVxyXG5cclxuLyoqKioqKioqKioqKlxyXG4qIHJvdGF0ZU91dERvd25MZWZ0ICpcclxuKioqKioqKioqKioqKi9cclxuXHJcbkAtd2Via2l0LWtleWZyYW1lcyByb3RhdGVPdXREb3duTGVmdCB7IFxyXG4gICAgMCUgeyBcclxuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tOyBcclxuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDApOyBcclxuICAgICAgICBvcGFjaXR5OiAxOyBcclxuICAgIH0gXHJcbiAgICAxMDAlIHsgXHJcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTsgXHJcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7IFxyXG4gICAgICAgIG9wYWNpdHk6IDA7IFxyXG4gICAgfSBcclxufSBcclxuQGtleWZyYW1lcyByb3RhdGVPdXREb3duTGVmdCB7IFxyXG4gICAgMCUgeyBcclxuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTsgXHJcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMCk7IFxyXG4gICAgICAgIG9wYWNpdHk6IDE7IFxyXG4gICAgfSBcclxuICAgIDEwMCUgeyBcclxuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTsgXHJcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpOyBcclxuICAgICAgICBvcGFjaXR5OiAwOyBcclxuICAgIH0gXHJcbn0gXHJcbi5yb3RhdGVPdXREb3duTGVmdC5nb0F3YXkgeyBcclxuICAgIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHJvdGF0ZU91dERvd25MZWZ0OyBcclxuICAgIGFuaW1hdGlvbi1uYW1lOiByb3RhdGVPdXREb3duTGVmdDsgXHJcbn1cclxuLyoqKioqKioqKioqKlxyXG4qIHJvdGF0ZU91dFVwUmlnaHQgKlxyXG4qKioqKioqKioqKioqL1xyXG5cclxuQC13ZWJraXQta2V5ZnJhbWVzIHJvdGF0ZU91dFVwUmlnaHQgeyBcclxuICAgIDAlIHsgXHJcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207IFxyXG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMCk7IFxyXG4gICAgICAgIG9wYWNpdHk6IDE7IFxyXG4gICAgfSBcclxuICAgIDEwMCUgeyBcclxuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTsgXHJcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7IFxyXG4gICAgICAgIG9wYWNpdHk6IDA7IFxyXG4gICAgfSBcclxufSBcclxuQGtleWZyYW1lcyByb3RhdGVPdXRVcFJpZ2h0IHsgXHJcbiAgICAwJSB7IFxyXG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTsgXHJcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMCk7IFxyXG4gICAgICAgIG9wYWNpdHk6IDE7IFxyXG4gICAgfSBcclxuICAgIDEwMCUgeyBcclxuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207IFxyXG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTsgXHJcbiAgICAgICAgb3BhY2l0eTogMDsgXHJcbiAgICB9IFxyXG59IFxyXG4ucm90YXRlT3V0VXBSaWdodC5nb0F3YXkgeyBcclxuICAgIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHJvdGF0ZU91dFVwUmlnaHQ7IFxyXG4gICAgYW5pbWF0aW9uLW5hbWU6IHJvdGF0ZU91dFVwUmlnaHQ7IFxyXG59XHJcblxyXG4vKioqKioqKioqKioqXHJcbiogcm9sbE91dCAqXHJcbioqKioqKioqKioqKiovXHJcbkAtd2Via2l0LWtleWZyYW1lcyByb2xsT3V0IHsgXHJcbiAgICAwJSB7IFxyXG4gICAgICAgIG9wYWNpdHk6IDE7IFxyXG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDBweCkgcm90YXRlKDBkZWcpOyBcclxuICAgIH0gXHJcbiAgICAxMDAlIHsgXHJcbiAgICAgICAgb3BhY2l0eTogMDsgXHJcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSkgcm90YXRlKDEyMGRlZyk7IFxyXG4gICAgfSBcclxufSBcclxuQGtleWZyYW1lcyByb2xsT3V0IHsgXHJcbiAgICAwJSB7IFxyXG4gICAgICAgIG9wYWNpdHk6IDE7IFxyXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwcHgpIHJvdGF0ZSgwZGVnKTsgXHJcbiAgICB9IFxyXG4gICAgMTAwJSB7IFxyXG4gICAgICAgIG9wYWNpdHk6IDA7IFxyXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKSByb3RhdGUoMTIwZGVnKTsgXHJcbiAgICB9IFxyXG59IFxyXG4ucm9sbE91dC5nb0F3YXkgeyBcclxuICAgIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHJvbGxPdXQ7IFxyXG4gICAgYW5pbWF0aW9uLW5hbWU6IHJvbGxPdXQ7IFxyXG59XHJcbi8qKioqKioqKioqKioqKioqKlxyXG4qIFNob3J0IEFuaW1hdGlvbnNcclxuKioqKioqKioqKioqKioqKioqKi9cclxuXHJcbi8qKioqKioqKioqKioqKioqKioqKipcclxuKiBmYWRlSW5VcFNob3J0XHJcbioqKioqKioqKioqKioqKioqKioqKi9cclxuQC13ZWJraXQta2V5ZnJhbWVzIGZhZGVJblVwU2hvcnQgeyBcclxuICAgIDAlIHsgXHJcbiAgICAgICAgb3BhY2l0eTogMDsgXHJcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjBweCk7IFxyXG4gICAgfSBcclxuICAgIDEwMCUgeyBcclxuICAgICAgICBvcGFjaXR5OiAxOyBcclxuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgXHJcbiAgICB9IFxyXG59IFxyXG5cclxuQGtleWZyYW1lcyBmYWRlSW5VcFNob3J0IHsgXHJcbiAgICAwJSB7IFxyXG4gICAgICAgIG9wYWNpdHk6IDA7IFxyXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyMHB4KTsgXHJcbiAgICB9IFxyXG4gICAgMTAwJSB7IFxyXG4gICAgICAgIG9wYWNpdHk6IDE7IFxyXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgXHJcbiAgICB9IFxyXG59IFxyXG4uZmFkZUluVXBTaG9ydHtcclxuICAgIG9wYWNpdHk6IDA7IFxyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjBweCk7IFxyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDIwcHgpOyBcclxufVxyXG4uZmFkZUluVXBTaG9ydC5nbyB7IFxyXG4gICAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmFkZUluVXBTaG9ydDsgXHJcbiAgICBhbmltYXRpb24tbmFtZTogZmFkZUluVXBTaG9ydDsgXHJcbn1cclxuXHJcbi8qKioqKioqKioqKioqKioqKioqKipcclxuKiBmYWRlSW5Eb3duU2hvcnRcclxuKioqKioqKioqKioqKioqKioqKioqL1xyXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZUluRG93blNob3J0IHsgXHJcbiAgICAwJSB7IFxyXG4gICAgICAgIG9wYWNpdHk6IDA7IFxyXG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yMHB4KTsgXHJcbiAgICB9IFxyXG4gICAgMTAwJSB7IFxyXG4gICAgICAgIG9wYWNpdHk6IDE7IFxyXG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyBcclxuICAgIH0gXHJcbn0gXHJcblxyXG5Aa2V5ZnJhbWVzIGZhZGVJbkRvd25TaG9ydCB7IFxyXG4gICAgMCUgeyBcclxuICAgICAgICBvcGFjaXR5OiAwOyBcclxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTIwcHgpOyBcclxuICAgIH0gXHJcbiAgICAxMDAlIHsgXHJcbiAgICAgICAgb3BhY2l0eTogMTsgXHJcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyBcclxuICAgIH0gXHJcbn0gXHJcbi5mYWRlSW5Eb3duU2hvcnR7XHJcbiAgICBvcGFjaXR5OiAwOyBcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yMHB4KTsgXHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTIwcHgpOyBcclxufVxyXG4uZmFkZUluRG93blNob3J0LmdvIHsgXHJcbiAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmYWRlSW5Eb3duU2hvcnQ7IFxyXG4gICAgYW5pbWF0aW9uLW5hbWU6IGZhZGVJbkRvd25TaG9ydDsgXHJcbn1cclxuXHJcbi8qKioqKioqKioqKioqKioqKioqKipcclxuKiBmYWRlSW5SaWdodFNob3J0IFxyXG4qKioqKioqKioqKioqKioqKioqKiovXHJcbkAtd2Via2l0LWtleWZyYW1lcyBmYWRlSW5SaWdodFNob3J0IHsgXHJcbiAgICAwJSB7IFxyXG4gICAgICAgIG9wYWNpdHk6IDA7IFxyXG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwcHgpOyBcclxuICAgIH0gXHJcbiAgICAxMDAlIHsgXHJcbiAgICAgICAgb3BhY2l0eTogMTsgXHJcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IFxyXG4gICAgfSBcclxufSBcclxuQGtleWZyYW1lcyBmYWRlSW5SaWdodFNob3J0IHsgXHJcbiAgICAwJSB7IFxyXG4gICAgICAgIG9wYWNpdHk6IDA7IFxyXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgyMHB4KTsgXHJcbiAgICB9IFxyXG4gICAgMTAwJSB7IFxyXG4gICAgICAgIG9wYWNpdHk6IDE7IFxyXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgXHJcbiAgICB9IFxyXG59IFxyXG4uZmFkZUluUmlnaHRTaG9ydCB7IFxyXG4gICAgb3BhY2l0eTogMDsgXHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgyMHB4KTsgIFxyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwcHgpOyBcclxufVxyXG4uZmFkZUluUmlnaHRTaG9ydC5nbyB7IFxyXG4gICAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmFkZUluUmlnaHRTaG9ydDsgXHJcbiAgICBhbmltYXRpb24tbmFtZTogZmFkZUluUmlnaHRTaG9ydDsgXHJcbn1cclxuXHJcbi8qKioqKioqKioqKioqKioqKioqKipcclxuKiBmYWRlSW5MZWZ0U2hvcnQgXHJcbioqKioqKioqKioqKioqKioqKioqKi9cclxuQC13ZWJraXQta2V5ZnJhbWVzIGZhZGVJbkxlZnRTaG9ydCB7IFxyXG4gICAgMCUgeyBcclxuICAgICAgICBvcGFjaXR5OiAwOyBcclxuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMjBweCk7IFxyXG4gICAgfSBcclxuICAgIDEwMCUgeyBcclxuICAgICAgICBvcGFjaXR5OiAxOyBcclxuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgXHJcbiAgICB9IFxyXG59IFxyXG5Aa2V5ZnJhbWVzIGZhZGVJbkxlZnRTaG9ydCB7IFxyXG4gICAgMCUgeyBcclxuICAgICAgICBvcGFjaXR5OiAwOyBcclxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTIwcHgpOyBcclxuICAgIH0gXHJcbiAgICAxMDAlIHsgXHJcbiAgICAgICAgb3BhY2l0eTogMTsgXHJcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyBcclxuICAgIH0gXHJcbn0gXHJcbi5mYWRlSW5MZWZ0U2hvcnQgeyBcclxuICAgIG9wYWNpdHk6IDA7IFxyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTIwcHgpOyAgXHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTIwcHgpOyBcclxufVxyXG4uZmFkZUluTGVmdFNob3J0LmdvIHsgXHJcbiAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmYWRlSW5MZWZ0U2hvcnQ7IFxyXG4gICAgYW5pbWF0aW9uLW5hbWU6IGZhZGVJbkxlZnRTaG9ydDsgXHJcbn1cclxuIiwiLmZhbmN5Ym94LWVuYWJsZWQge1xyXG4gIG92ZXJmbG93OiBoaWRkZW47IH1cclxuXHJcbi5mYW5jeWJveC1lbmFibGVkIGJvZHkge1xyXG4gIG92ZXJmbG93OiB2aXNpYmxlO1xyXG4gIC1tcy10b3VjaC1hY3Rpb246IG5vbmU7XHJcbiAgdG91Y2gtYWN0aW9uOiBub25lOyB9XHJcblxyXG4uZmFuY3lib3gtY29udGFpbmVyIHtcclxuICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgdG9wOiAwO1xyXG4gIGxlZnQ6IDA7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgaGVpZ2h0OiAxMDAlO1xyXG4gIHotaW5kZXg6IDk5OTkzO1xyXG4gIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xyXG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsgfVxyXG5cclxuLyogTWFrZSBzdXJlIHRoYXQgdGhlIGZpcnN0IG9uZSBpcyBvbiB0aGUgdG9wICovXHJcbi5mYW5jeWJveC1jb250YWluZXIgfiAuZmFuY3lib3gtY29udGFpbmVyIHtcclxuICB6LWluZGV4OiA5OTk5MjsgfVxyXG5cclxuLmZhbmN5Ym94LWJnIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiAwO1xyXG4gIHJpZ2h0OiAwO1xyXG4gIGJvdHRvbTogMDtcclxuICBsZWZ0OiAwO1xyXG4gIGJhY2tncm91bmQ6ICMwZjBmMTE7XHJcbiAgb3BhY2l0eTogMDtcclxuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNTUsIDAuMDYsIDAuNjgsIDAuMTkpO1xyXG4gIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xyXG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsgfVxyXG5cclxuLmZhbmN5Ym94LWNvbnRhaW5lci0tcmVhZHkgLmZhbmN5Ym94LWJnIHtcclxuICBvcGFjaXR5OiAwLjg3O1xyXG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yMiwgMC42MSwgMC4zNiwgMSk7IH1cclxuXHJcbi5mYW5jeWJveC1jb250cm9scyB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHRvcDogMDtcclxuICBsZWZ0OiAwO1xyXG4gIHJpZ2h0OiAwO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICBvcGFjaXR5OiAwO1xyXG4gIHotaW5kZXg6IDk5OTk0O1xyXG4gIHRyYW5zaXRpb246IG9wYWNpdHkgLjJzO1xyXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG4gIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xyXG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcclxuICBkaXJlY3Rpb246IGx0cjsgfVxyXG5cclxuLmZhbmN5Ym94LXNob3ctY29udHJvbHMgLmZhbmN5Ym94LWNvbnRyb2xzIHtcclxuICBvcGFjaXR5OiAxOyB9XHJcblxyXG4uZmFuY3lib3gtaW5mb2JhciB7XHJcbiAgZGlzcGxheTogbm9uZTsgfVxyXG5cclxuLmZhbmN5Ym94LXNob3ctaW5mb2JhciAuZmFuY3lib3gtaW5mb2JhciB7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIHBvaW50ZXItZXZlbnRzOiBhbGw7IH1cclxuXHJcbi5mYW5jeWJveC1pbmZvYmFyX19ib2R5IHtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgd2lkdGg6IDcwcHg7XHJcbiAgbGluZS1oZWlnaHQ6IDQ0cHg7XHJcbiAgZm9udC1zaXplOiAxM3B4O1xyXG4gIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsSGVsdmV0aWNhLEFyaWFsLHNhbnMtc2VyaWY7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIGNvbG9yOiAjZGRkO1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMzAsIDMwLCAzMCwgMC43KTtcclxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xyXG4gIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xyXG4gIHVzZXItc2VsZWN0OiBub25lO1xyXG4gIC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTtcclxuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IHN1YnBpeGVsLWFudGlhbGlhc2VkOyB9XHJcblxyXG4uZmFuY3lib3gtYnV0dG9ucyB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHRvcDogMDtcclxuICByaWdodDogMDtcclxuICBkaXNwbGF5OiBub25lO1xyXG4gIHBvaW50ZXItZXZlbnRzOiBhbGw7IH1cclxuXHJcbi5mYW5jeWJveC1zaG93LWJ1dHRvbnMgLmZhbmN5Ym94LWJ1dHRvbnMge1xyXG4gIGRpc3BsYXk6IGJsb2NrOyB9XHJcblxyXG4uZmFuY3lib3gtc2xpZGVyLXdyYXAge1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgZGlyZWN0aW9uOiBsdHI7IH1cclxuXHJcbi5mYW5jeWJveC1zbGlkZXItd3JhcCxcclxuLmZhbmN5Ym94LXNsaWRlciB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHRvcDogMDtcclxuICBsZWZ0OiAwO1xyXG4gIGJvdHRvbTogMDtcclxuICByaWdodDogMDtcclxuICBwYWRkaW5nOiAwO1xyXG4gIG1hcmdpbjogMDtcclxuICB6LWluZGV4OiA5OTk5MztcclxuICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcclxuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XHJcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDsgfVxyXG5cclxuLmZhbmN5Ym94LXNsaWRlIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiAwO1xyXG4gIGxlZnQ6IDA7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgaGVpZ2h0OiAxMDAlO1xyXG4gIG1hcmdpbjogMDtcclxuICBwYWRkaW5nOiAwO1xyXG4gIG92ZXJmbG93OiBhdXRvO1xyXG4gIG91dGxpbmU6IG5vbmU7XHJcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcclxuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICB6LWluZGV4OiA5OTk5NDtcclxuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7IH1cclxuXHJcbi5mYW5jeWJveC1zbGlkZTo6YmVmb3JlIHtcclxuICBjb250ZW50OiAnJztcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbiAgd2lkdGg6IDA7IH1cclxuXHJcbi5mYW5jeWJveC1zbGlkZSA+ICoge1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgcGFkZGluZzogMjRweDtcclxuICBtYXJnaW46IDQ0cHggMCA0NHB4O1xyXG4gIGJvcmRlci13aWR0aDogMDtcclxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG4gIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcclxuICBvdmVyZmxvdzogYXV0bztcclxuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XHJcblxyXG4uZmFuY3lib3gtc2xpZGUtLWltYWdlIHtcclxuICBvdmVyZmxvdzogaGlkZGVuOyB9XHJcblxyXG4uZmFuY3lib3gtc2xpZGUtLWltYWdlOjpiZWZvcmUge1xyXG4gIGRpc3BsYXk6IG5vbmU7IH1cclxuXHJcbi5mYW5jeWJveC1jb250ZW50IHtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIG1hcmdpbjogNDRweCBhdXRvO1xyXG4gIHBhZGRpbmc6IDA7XHJcbiAgYm9yZGVyOiAwO1xyXG4gIHdpZHRoOiA4MCU7XHJcbiAgaGVpZ2h0OiBjYWxjKDEwMCUgLSA4OHB4KTtcclxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XHJcbiAgdGV4dC1hbGlnbjogbGVmdDtcclxuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xyXG4gIG91dGxpbmU6IG5vbmU7XHJcbiAgZm9udC1zaXplOiAxNnB4O1xyXG4gIGZvbnQtZmFtaWx5OiBBcmlhbCwgc2Fucy1zZXJpZjtcclxuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoOyB9XHJcblxyXG4uZmFuY3lib3gtaWZyYW1lIHtcclxuICBkaXNwbGF5OiBibG9jaztcclxuICBtYXJnaW46IDA7XHJcbiAgcGFkZGluZzogMDtcclxuICBib3JkZXI6IDA7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgaGVpZ2h0OiAxMDAlO1xyXG4gIGJhY2tncm91bmQ6ICNmZmY7IH1cclxuXHJcbi5mYW5jeWJveC1zbGlkZS0tdmlkZW8gLmZhbmN5Ym94LWNvbnRlbnQsXHJcbi5mYW5jeWJveC1zbGlkZS0tdmlkZW8gLmZhbmN5Ym94LWlmcmFtZSB7XHJcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH1cclxuXHJcbi5mYW5jeWJveC1wbGFjZWhvbGRlciB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHRvcDogMDtcclxuICBsZWZ0OiAwO1xyXG4gIG1hcmdpbjogMDtcclxuICBwYWRkaW5nOiAwO1xyXG4gIGJvcmRlcjogMDtcclxuICB6LWluZGV4OiA5OTk5NTtcclxuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICBjdXJzb3I6IGRlZmF1bHQ7XHJcbiAgb3ZlcmZsb3c6IHZpc2libGU7XHJcbiAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiB0b3AgbGVmdDtcclxuICAtbXMtdHJhbnNmb3JtLW9yaWdpbjogdG9wIGxlZnQ7XHJcbiAgdHJhbnNmb3JtLW9yaWdpbjogdG9wIGxlZnQ7XHJcbiAgYmFja2dyb3VuZC1zaXplOiAxMDAlIDEwMCU7XHJcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcclxuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47IH1cclxuXHJcbi5mYW5jeWJveC1pbWFnZSxcclxuLmZhbmN5Ym94LXNwYWNlYmFsbCB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHRvcDogMDtcclxuICBsZWZ0OiAwO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogMTAwJTtcclxuICBtYXJnaW46IDA7XHJcbiAgcGFkZGluZzogMDtcclxuICBib3JkZXI6IDA7XHJcbiAgbWF4LXdpZHRoOiBub25lO1xyXG4gIG1heC1oZWlnaHQ6IG5vbmU7XHJcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgYmFja2dyb3VuZC1zaXplOiAxMDAlIDEwMCU7IH1cclxuXHJcbi5mYW5jeWJveC1jb250cm9scy0tY2Fuem9vbU91dCAuZmFuY3lib3gtcGxhY2Vob2xkZXIge1xyXG4gIGN1cnNvcjogLXdlYmtpdC16b29tLW91dDtcclxuICBjdXJzb3I6IHpvb20tb3V0OyB9XHJcblxyXG4uZmFuY3lib3gtY29udHJvbHMtLWNhbnpvb21JbiAuZmFuY3lib3gtcGxhY2Vob2xkZXIge1xyXG4gIGN1cnNvcjogLXdlYmtpdC16b29tLWluO1xyXG4gIGN1cnNvcjogem9vbS1pbjsgfVxyXG5cclxuLmZhbmN5Ym94LWNvbnRyb2xzLS1jYW5HcmFiIC5mYW5jeWJveC1wbGFjZWhvbGRlciB7XHJcbiAgY3Vyc29yOiAtd2Via2l0LWdyYWI7XHJcbiAgY3Vyc29yOiBncmFiOyB9XHJcblxyXG4uZmFuY3lib3gtY29udHJvbHMtLWlzR3JhYmJpbmcgLmZhbmN5Ym94LXBsYWNlaG9sZGVyIHtcclxuICBjdXJzb3I6IC13ZWJraXQtZ3JhYmJpbmc7XHJcbiAgY3Vyc29yOiBncmFiYmluZzsgfVxyXG5cclxuLmZhbmN5Ym94LXNwYWNlYmFsbCB7XHJcbiAgei1pbmRleDogMTsgfVxyXG5cclxuLmZhbmN5Ym94LXRtcCB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHRvcDogLTk5OTlweDtcclxuICBsZWZ0OiAtOTk5OXB4O1xyXG4gIHZpc2liaWxpdHk6IGhpZGRlbjsgfVxyXG5cclxuLmZhbmN5Ym94LWVycm9yIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgbWFyZ2luOiAwO1xyXG4gIHBhZGRpbmc6IDQwcHg7XHJcbiAgdG9wOiA1MCU7XHJcbiAgbGVmdDogNTAlO1xyXG4gIHdpZHRoOiAzODBweDtcclxuICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcclxuICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XHJcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XHJcbiAgYmFja2dyb3VuZDogI2ZmZjtcclxuICBjdXJzb3I6IGRlZmF1bHQ7IH1cclxuXHJcbi5mYW5jeWJveC1lcnJvciBwIHtcclxuICBtYXJnaW46IDA7XHJcbiAgcGFkZGluZzogMDtcclxuICBjb2xvcjogIzQ0NDtcclxuICBmb250OiAxNnB4LzIwcHggXCJIZWx2ZXRpY2EgTmV1ZVwiLEhlbHZldGljYSxBcmlhbCxzYW5zLXNlcmlmOyB9XHJcblxyXG4uZmFuY3lib3gtY2xvc2Utc21hbGwge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB0b3A6IDRweDtcclxuICByaWdodDogNHB4O1xyXG4gIHBhZGRpbmc6IDA7XHJcbiAgbWFyZ2luOiAwO1xyXG4gIHdpZHRoOiAzMHB4O1xyXG4gIGhlaWdodDogMzBweDtcclxuICBmb250OiAyMXB4LzEgQXJpYWwsXCJIZWx2ZXRpY2EgTmV1ZVwiLEhlbHZldGljYSxzYW5zLXNlcmlmO1xyXG4gIGNvbG9yOiAjODg4O1xyXG4gIGZvbnQtd2VpZ2h0OiAzMDA7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICBib3JkZXItd2lkdGg6IDA7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIGJhY2tncm91bmQ6ICNmZmY7XHJcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAuMnM7XHJcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICB6LWluZGV4OiAyOyB9XHJcblxyXG4uZmFuY3lib3gtY2xvc2Utc21hbGw6Zm9jdXMge1xyXG4gIG91dGxpbmU6IDFweCBkb3R0ZWQgIzg4ODsgfVxyXG5cclxuLmZhbmN5Ym94LXNsaWRlLS12aWRlbyAuZmFuY3lib3gtY2xvc2Utc21hbGwge1xyXG4gIHRvcDogLTM2cHg7XHJcbiAgcmlnaHQ6IC0zNnB4O1xyXG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyB9XHJcblxyXG4uZmFuY3lib3gtY2xvc2Utc21hbGw6aG92ZXIge1xyXG4gIGNvbG9yOiAjNTU1O1xyXG4gIGJhY2tncm91bmQ6ICNlZWU7IH1cclxuXHJcbi8qIENhcHRpb24gKi9cclxuLmZhbmN5Ym94LWNhcHRpb24td3JhcCB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIGJvdHRvbTogMDtcclxuICBsZWZ0OiAwO1xyXG4gIHJpZ2h0OiAwO1xyXG4gIHBhZGRpbmc6IDYwcHggMzBweCAwIDMwcHg7XHJcbiAgei1pbmRleDogOTk5OTg7XHJcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XHJcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xyXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgdHJhbnNwYXJlbnQgMCUsIHJnYmEoMCwgMCwgMCwgMC4xKSAyMCUsIHJnYmEoMCwgMCwgMCwgMC4yKSA0MCUsIHJnYmEoMCwgMCwgMCwgMC42KSA4MCUsIHJnYmEoMCwgMCwgMCwgMC44KSAxMDAlKTtcclxuICBvcGFjaXR5OiAwO1xyXG4gIHRyYW5zaXRpb246IG9wYWNpdHkgLjJzO1xyXG4gIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XHJcblxyXG4uZmFuY3lib3gtc2hvdy1jYXB0aW9uIC5mYW5jeWJveC1jYXB0aW9uLXdyYXAge1xyXG4gIG9wYWNpdHk6IDE7IH1cclxuXHJcbi5mYW5jeWJveC1jYXB0aW9uIHtcclxuICBwYWRkaW5nOiAzMHB4IDA7XHJcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KTtcclxuICBmb250LXNpemU6IDE0cHg7XHJcbiAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWVcIixIZWx2ZXRpY2EsQXJpYWwsc2Fucy1zZXJpZjtcclxuICBjb2xvcjogI2ZmZjtcclxuICBsaW5lLWhlaWdodDogMjBweDtcclxuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IG5vbmU7IH1cclxuXHJcbi5mYW5jeWJveC1jYXB0aW9uIGEsXHJcbi5mYW5jeWJveC1jYXB0aW9uIGJ1dHRvbiB7XHJcbiAgcG9pbnRlci1ldmVudHM6IGFsbDsgfVxyXG5cclxuLmZhbmN5Ym94LWNhcHRpb24gYSB7XHJcbiAgY29sb3I6ICNmZmY7XHJcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cclxuXHJcbi8qIEJ1dHRvbnMgKi9cclxuLmZhbmN5Ym94LWJ1dHRvbiB7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICB3aWR0aDogNDRweDtcclxuICBoZWlnaHQ6IDQ0cHg7XHJcbiAgbGluZS1oZWlnaHQ6IDQ0cHg7XHJcbiAgbWFyZ2luOiAwO1xyXG4gIHBhZGRpbmc6IDA7XHJcbiAgYm9yZGVyOiAwO1xyXG4gIGJvcmRlci1yYWRpdXM6IDA7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG4gIGNvbG9yOiAjZmZmO1xyXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcclxuICBvdXRsaW5lOiBub25lOyB9XHJcblxyXG4uZmFuY3lib3gtYnV0dG9uLS1kaXNhYmxlZCB7XHJcbiAgY3Vyc29yOiBkZWZhdWx0O1xyXG4gIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XHJcblxyXG4uZmFuY3lib3gtaW5mb2Jhcl9fYm9keSwgLmZhbmN5Ym94LWJ1dHRvbiB7XHJcbiAgYmFja2dyb3VuZDogcmdiYSgzMCwgMzAsIDMwLCAwLjYpOyB9XHJcblxyXG4uZmFuY3lib3gtYnV0dG9uOmhvdmVyIHtcclxuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuOCk7IH1cclxuXHJcbi5mYW5jeWJveC1idXR0b246OmJlZm9yZSxcclxuLmZhbmN5Ym94LWJ1dHRvbjo6YWZ0ZXIge1xyXG4gIGNvbnRlbnQ6ICcnO1xyXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBib3JkZXItY29sb3I6ICNmZmY7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogY3VycmVudENvbG9yO1xyXG4gIGNvbG9yOiBjdXJyZW50Q29sb3I7XHJcbiAgb3BhY2l0eTogMC45O1xyXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XHJcblxyXG4uZmFuY3lib3gtYnV0dG9uLS1kaXNhYmxlZDo6YmVmb3JlLFxyXG4uZmFuY3lib3gtYnV0dG9uLS1kaXNhYmxlZDo6YWZ0ZXIge1xyXG4gIG9wYWNpdHk6IDAuNTsgfVxyXG5cclxuLmZhbmN5Ym94LWJ1dHRvbi0tbGVmdDo6YWZ0ZXIge1xyXG4gIGxlZnQ6IDIwcHg7XHJcbiAgdG9wOiAxOHB4O1xyXG4gIHdpZHRoOiA2cHg7XHJcbiAgaGVpZ2h0OiA2cHg7XHJcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgYm9yZGVyLXRvcDogc29saWQgMnB4IGN1cnJlbnRDb2xvcjtcclxuICBib3JkZXItcmlnaHQ6IHNvbGlkIDJweCBjdXJyZW50Q29sb3I7XHJcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgtMTM1ZGVnKTtcclxuICAtbXMtdHJhbnNmb3JtOiByb3RhdGUoLTEzNWRlZyk7XHJcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTEzNWRlZyk7IH1cclxuXHJcbi5mYW5jeWJveC1idXR0b24tLXJpZ2h0OjphZnRlciB7XHJcbiAgcmlnaHQ6IDIwcHg7XHJcbiAgdG9wOiAxOHB4O1xyXG4gIHdpZHRoOiA2cHg7XHJcbiAgaGVpZ2h0OiA2cHg7XHJcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgYm9yZGVyLXRvcDogc29saWQgMnB4IGN1cnJlbnRDb2xvcjtcclxuICBib3JkZXItcmlnaHQ6IHNvbGlkIDJweCBjdXJyZW50Q29sb3I7XHJcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XHJcbiAgLW1zLXRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcclxuICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7IH1cclxuXHJcbi5mYW5jeWJveC1idXR0b24tLWxlZnQge1xyXG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDVweDsgfVxyXG5cclxuLmZhbmN5Ym94LWJ1dHRvbi0tcmlnaHQge1xyXG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA1cHg7IH1cclxuXHJcbi5mYW5jeWJveC1idXR0b24tLWNsb3NlIHtcclxuICBmbG9hdDogcmlnaHQ7IH1cclxuXHJcbi5mYW5jeWJveC1idXR0b24tLWNsb3NlOjpiZWZvcmUsIC5mYW5jeWJveC1idXR0b24tLWNsb3NlOjphZnRlciB7XHJcbiAgY29udGVudDogJyc7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBoZWlnaHQ6IDJweDtcclxuICB3aWR0aDogMTZweDtcclxuICB0b3A6IGNhbGMoNTAlIC0gMXB4KTtcclxuICBsZWZ0OiBjYWxjKDUwJSAtIDhweCk7IH1cclxuXHJcbi5mYW5jeWJveC1idXR0b24tLWNsb3NlOjpiZWZvcmUge1xyXG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xyXG4gIC1tcy10cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XHJcbiAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpOyB9XHJcblxyXG4uZmFuY3lib3gtYnV0dG9uLS1jbG9zZTo6YWZ0ZXIge1xyXG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcclxuICAtbXMtdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcclxuICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpOyB9XHJcblxyXG4vKiBMb2FkaW5nIHNwaW5uZXIgKi9cclxuLmZhbmN5Ym94LWxvYWRpbmcge1xyXG4gIGJvcmRlcjogNnB4IHNvbGlkIHJnYmEoMTAwLCAxMDAsIDEwMCwgMC40KTtcclxuICBib3JkZXItdG9wOiA2cHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjYpO1xyXG4gIGJvcmRlci1yYWRpdXM6IDEwMCU7XHJcbiAgaGVpZ2h0OiA1MHB4O1xyXG4gIHdpZHRoOiA1MHB4O1xyXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBmYW5jeWJveC1yb3RhdGUgLjhzIGluZmluaXRlIGxpbmVhcjtcclxuICBhbmltYXRpb246IGZhbmN5Ym94LXJvdGF0ZSAuOHMgaW5maW5pdGUgbGluZWFyO1xyXG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB0b3A6IDUwJTtcclxuICBsZWZ0OiA1MCU7XHJcbiAgbWFyZ2luLXRvcDogLTI1cHg7XHJcbiAgbWFyZ2luLWxlZnQ6IC0yNXB4O1xyXG4gIHotaW5kZXg6IDk5OTk5OyB9XHJcblxyXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmFuY3lib3gtcm90YXRlIHtcclxuICBmcm9tIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XHJcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfVxyXG4gIHRvIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzU5ZGVnKTtcclxuICAgIHRyYW5zZm9ybTogcm90YXRlKDM1OWRlZyk7IH0gfVxyXG5cclxuQGtleWZyYW1lcyBmYW5jeWJveC1yb3RhdGUge1xyXG4gIGZyb20ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcclxuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOyB9XHJcbiAgdG8ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNTlkZWcpO1xyXG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzU5ZGVnKTsgfSB9XHJcblxyXG4vKiBTdHlsaW5nIGZvciBTbWFsbC1TY3JlZW4gRGV2aWNlcyAqL1xyXG5AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA4MDBweCkge1xyXG4gIC5mYW5jeWJveC1jb250cm9scyB7XHJcbiAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9XHJcbiAgLmZhbmN5Ym94LWJ1dHRvbi0tbGVmdCxcclxuICAuZmFuY3lib3gtYnV0dG9uLS1yaWdodCxcclxuICAuZmFuY3lib3gtYnV0dG9ucyBidXR0b246bm90KC5mYW5jeWJveC1idXR0b24tLWNsb3NlKSB7XHJcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cclxuICAuZmFuY3lib3gtY2FwdGlvbiB7XHJcbiAgICBwYWRkaW5nOiAyMHB4IDA7XHJcbiAgICBtYXJnaW46IDA7IH0gfVxyXG5cclxuLyogRnVsbHNjcmVlbiAgKi9cclxuLmZhbmN5Ym94LWJ1dHRvbi0tZnVsbHNjcmVlbjo6YmVmb3JlIHtcclxuICB3aWR0aDogMTVweDtcclxuICBoZWlnaHQ6IDExcHg7XHJcbiAgbGVmdDogMTVweDtcclxuICB0b3A6IDE2cHg7XHJcbiAgYm9yZGVyOiAycHggc29saWQ7XHJcbiAgYmFja2dyb3VuZDogbm9uZTsgfVxyXG5cclxuLyogU2xpZGVzaG93IGJ1dHRvbiAqL1xyXG4uZmFuY3lib3gtYnV0dG9uLS1wbGF5OjpiZWZvcmUge1xyXG4gIHRvcDogMTZweDtcclxuICBsZWZ0OiAxOHB4O1xyXG4gIHdpZHRoOiAwO1xyXG4gIGhlaWdodDogMDtcclxuICBib3JkZXItdG9wOiA2cHggaW5zZXQgdHJhbnNwYXJlbnQ7XHJcbiAgYm9yZGVyLWJvdHRvbTogNnB4IGluc2V0IHRyYW5zcGFyZW50O1xyXG4gIGJvcmRlci1sZWZ0OiAxMHB4IHNvbGlkO1xyXG4gIGJvcmRlci1yYWRpdXM6IDFweDtcclxuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgfVxyXG5cclxuLmZhbmN5Ym94LWJ1dHRvbi0tcGF1c2U6OmJlZm9yZSB7XHJcbiAgdG9wOiAxNnB4O1xyXG4gIGxlZnQ6IDE4cHg7XHJcbiAgd2lkdGg6IDdweDtcclxuICBoZWlnaHQ6IDExcHg7XHJcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcclxuICBib3JkZXItd2lkdGg6IDAgMnB4IDAgMnB4O1xyXG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyB9XHJcblxyXG4vKiBUaHVtYnMgKi9cclxuLmZhbmN5Ym94LWJ1dHRvbi0tdGh1bWJzIHNwYW4ge1xyXG4gIGZvbnQtc2l6ZTogMjNweDsgfVxyXG5cclxuLmZhbmN5Ym94LWJ1dHRvbi0tdGh1bWJzOjpiZWZvcmUge1xyXG4gIHRvcDogMjBweDtcclxuICBsZWZ0OiAyMXB4O1xyXG4gIHdpZHRoOiAzcHg7XHJcbiAgaGVpZ2h0OiAzcHg7XHJcbiAgYm94LXNoYWRvdzogMCAtNHB4IDAsIC00cHggLTRweCAwLCA0cHggLTRweCAwLCAwIDAgMCAzMnB4IGluc2V0LCAtNHB4IDAgMCwgNHB4IDAgMCwgMCA0cHggMCwgLTRweCA0cHggMCwgNHB4IDRweCAwOyB9XHJcblxyXG4uZmFuY3lib3gtY29udGFpbmVyLS10aHVtYnMgLmZhbmN5Ym94LWNvbnRyb2xzLFxyXG4uZmFuY3lib3gtY29udGFpbmVyLS10aHVtYnMgLmZhbmN5Ym94LXNsaWRlci13cmFwLFxyXG4uZmFuY3lib3gtY29udGFpbmVyLS10aHVtYnMgLmZhbmN5Ym94LWNhcHRpb24td3JhcCB7XHJcbiAgcmlnaHQ6IDIyMHB4OyB9XHJcblxyXG4uZmFuY3lib3gtdGh1bWJzIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiAwO1xyXG4gIHJpZ2h0OiAwO1xyXG4gIGJvdHRvbTogMDtcclxuICBsZWZ0OiBhdXRvO1xyXG4gIHdpZHRoOiAyMjBweDtcclxuICBtYXJnaW46IDA7XHJcbiAgcGFkZGluZzogNXB4IDVweCAwIDA7XHJcbiAgYmFja2dyb3VuZDogI2ZmZjtcclxuICB6LWluZGV4OiA5OTk5MztcclxuICB3b3JkLWJyZWFrOiBub3JtYWw7XHJcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xyXG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxyXG5cclxuLmZhbmN5Ym94LXRodW1icyA+IHVsIHtcclxuICBsaXN0LXN0eWxlOiBub25lO1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgaGVpZ2h0OiAxMDAlO1xyXG4gIG1hcmdpbjogMDtcclxuICBwYWRkaW5nOiAwO1xyXG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcclxuICBvdmVyZmxvdy15OiBhdXRvO1xyXG4gIGZvbnQtc2l6ZTogMDsgfVxyXG5cclxuLmZhbmN5Ym94LXRodW1icyA+IHVsID4gbGkge1xyXG4gIGZsb2F0OiBsZWZ0O1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgbWF4LXdpZHRoOiA1MCU7XHJcbiAgcGFkZGluZzogMDtcclxuICBtYXJnaW46IDA7XHJcbiAgd2lkdGg6IDEwNXB4O1xyXG4gIGhlaWdodDogNzVweDtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIG91dGxpbmU6IG5vbmU7XHJcbiAgYm9yZGVyOiA1cHggc29saWQgI2ZmZjtcclxuICBib3JkZXItdG9wLXdpZHRoOiAwO1xyXG4gIGJvcmRlci1yaWdodC13aWR0aDogMDtcclxuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xyXG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcclxuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XHJcblxyXG5saS5mYW5jeWJveC10aHVtYnMtbG9hZGluZyB7XHJcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjEpOyB9XHJcblxyXG4uZmFuY3lib3gtdGh1bWJzID4gdWwgPiBsaSA+IGltZyB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHRvcDogMDtcclxuICBsZWZ0OiAwO1xyXG4gIG1pbi13aWR0aDogMTAwJTtcclxuICBtaW4taGVpZ2h0OiAxMDAlO1xyXG4gIG1heC13aWR0aDogbm9uZTtcclxuICBtYXgtaGVpZ2h0OiBub25lO1xyXG4gIC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTtcclxuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xyXG4gIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xyXG4gIHVzZXItc2VsZWN0OiBub25lOyB9XHJcblxyXG4uZmFuY3lib3gtdGh1bWJzID4gdWwgPiBsaTpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6ICcnO1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB0b3A6IDA7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgYm90dG9tOiAwO1xyXG4gIGxlZnQ6IDA7XHJcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xyXG4gIGJvcmRlcjogNHB4IHNvbGlkICM0ZWE3Zjk7XHJcbiAgei1pbmRleDogOTk5OTE7XHJcbiAgb3BhY2l0eTogMDtcclxuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBjdWJpYy1iZXppZXIoMC4yNSwgMC40NiwgMC40NSwgMC45NCk7IH1cclxuXHJcbi5mYW5jeWJveC10aHVtYnMgPiB1bCA+IGxpLmZhbmN5Ym94LXRodW1icy1hY3RpdmU6YmVmb3JlIHtcclxuICBvcGFjaXR5OiAxOyB9XHJcblxyXG4vKiBTdHlsaW5nIGZvciBTbWFsbC1TY3JlZW4gRGV2aWNlcyAqL1xyXG5AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA4MDBweCkge1xyXG4gIC5mYW5jeWJveC10aHVtYnMge1xyXG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XHJcbiAgLmZhbmN5Ym94LWNvbnRhaW5lci0tdGh1bWJzIC5mYW5jeWJveC1jb250cm9scyxcclxuICAuZmFuY3lib3gtY29udGFpbmVyLS10aHVtYnMgLmZhbmN5Ym94LXNsaWRlci13cmFwLFxyXG4gIC5mYW5jeWJveC1jb250YWluZXItLXRodW1icyAuZmFuY3lib3gtY2FwdGlvbi13cmFwIHtcclxuICAgIHJpZ2h0OiAwOyB9IH1cclxuIiwiLyphbmltYXRpb25zKi9cblxuLyoqKioqKioqKioqKioqKioqKlxuKiBCb3VuY2UgaW4gcmlnaHQgKlxuKioqKioqKioqKioqKioqKioqKi9cblxuXG4uYW5pbWF0ZWQge1xuICAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gIC13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDtcbiAgYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDtcbn1cblxuLnNsb3cge1xuICAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogMS41cztcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxLjVzO1xuICAtd2Via2l0LWFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7XG4gIGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7XG59XG5cbi5zbG93ZXIge1xuICAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogMnM7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMnM7XG4gIC13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDtcbiAgYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDtcbn1cblxuLnNsb3dlc3Qge1xuICAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogM3M7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogM3M7XG4gIC13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDtcbiAgYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDtcbn1cblxuLyogQWRkZWQgYnkgQW5keSBNZWV0YW4gKi9cbi5kZWxheS0yNTAge1xuICAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogMC4yNXM7XG4gIC1tb3otYW5pbWF0aW9uLWRlbGF5OiAwLjI1cztcbiAgLW8tYW5pbWF0aW9uLWRlbGF5OiAwLjI1cztcbiAgYW5pbWF0aW9uLWRlbGF5OiAwLjI1cztcbn1cblxuLmRlbGF5LTUwMCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAwLjVzO1xuICAtbW96LWFuaW1hdGlvbi1kZWxheTogMC41cztcbiAgLW8tYW5pbWF0aW9uLWRlbGF5OiAwLjVzO1xuICBhbmltYXRpb24tZGVsYXk6IDAuNXM7XG59XG5cbi5kZWxheS03NTAge1xuICAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogMC43NXM7XG4gIC1tb3otYW5pbWF0aW9uLWRlbGF5OiAwLjc1cztcbiAgLW8tYW5pbWF0aW9uLWRlbGF5OiAwLjc1cztcbiAgYW5pbWF0aW9uLWRlbGF5OiAwLjc1cztcbn1cblxuLmRlbGF5LTEwMDAge1xuICAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogMS4wcztcbiAgLW1vei1hbmltYXRpb24tZGVsYXk6IDEuMHM7XG4gIC1vLWFuaW1hdGlvbi1kZWxheTogMS4wcztcbiAgYW5pbWF0aW9uLWRlbGF5OiAxLjBzO1xufVxuXG4uZGVsYXktMTI1MCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAxLjI1cztcbiAgLW1vei1hbmltYXRpb24tZGVsYXk6IDEuMjVzO1xuICAtby1hbmltYXRpb24tZGVsYXk6IDEuMjVzO1xuICBhbmltYXRpb24tZGVsYXk6IDEuMjVzO1xufVxuXG4uZGVsYXktMTUwMCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAxLjVzO1xuICAtbW96LWFuaW1hdGlvbi1kZWxheTogMS41cztcbiAgLW8tYW5pbWF0aW9uLWRlbGF5OiAxLjVzO1xuICBhbmltYXRpb24tZGVsYXk6IDEuNXM7XG59XG5cbi5kZWxheS0xNzUwIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IDEuNzVzO1xuICAtbW96LWFuaW1hdGlvbi1kZWxheTogMS43NXM7XG4gIC1vLWFuaW1hdGlvbi1kZWxheTogMS43NXM7XG4gIGFuaW1hdGlvbi1kZWxheTogMS43NXM7XG59XG5cbi5kZWxheS0yMDAwIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IDIuMHM7XG4gIC1tb3otYW5pbWF0aW9uLWRlbGF5OiAyLjBzO1xuICAtby1hbmltYXRpb24tZGVsYXk6IDIuMHM7XG4gIGFuaW1hdGlvbi1kZWxheTogMi4wcztcbn1cblxuLmRlbGF5LTI1MDAge1xuICAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogMi41cztcbiAgLW1vei1hbmltYXRpb24tZGVsYXk6IDIuNXM7XG4gIC1vLWFuaW1hdGlvbi1kZWxheTogMi41cztcbiAgYW5pbWF0aW9uLWRlbGF5OiAyLjVzO1xufVxuXG4uZGVsYXktMjAwMCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAyLjBzO1xuICAtbW96LWFuaW1hdGlvbi1kZWxheTogMi4wcztcbiAgLW8tYW5pbWF0aW9uLWRlbGF5OiAyLjBzO1xuICBhbmltYXRpb24tZGVsYXk6IDIuMHM7XG59XG5cbi5kZWxheS0yNTAwIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IDIuNXM7XG4gIC1tb3otYW5pbWF0aW9uLWRlbGF5OiAyLjVzO1xuICAtby1hbmltYXRpb24tZGVsYXk6IDIuNXM7XG4gIGFuaW1hdGlvbi1kZWxheTogMi41cztcbn1cblxuLmRlbGF5LTMwMDAge1xuICAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogMy4wcztcbiAgLW1vei1hbmltYXRpb24tZGVsYXk6IDMuMHM7XG4gIC1vLWFuaW1hdGlvbi1kZWxheTogMy4wcztcbiAgYW5pbWF0aW9uLWRlbGF5OiAzLjBzO1xufVxuXG4uZGVsYXktMzUwMCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAzLjVzO1xuICAtbW96LWFuaW1hdGlvbi1kZWxheTogMy41cztcbiAgLW8tYW5pbWF0aW9uLWRlbGF5OiAzLjVzO1xuICBhbmltYXRpb24tZGVsYXk6IDMuNXM7XG59XG5cbi5ib3VuY2VJblJpZ2h0LFxuLmJvdW5jZUluTGVmdCxcbi5ib3VuY2VJblVwLFxuLmJvdW5jZUluRG93biB7XG4gIG9wYWNpdHk6IDA7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDQwMHB4KTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDQwMHB4KTtcbn1cblxuLmZhZGVJblJpZ2h0LFxuLmZhZGVJbkxlZnQsXG4uZmFkZUluVXAsXG4uZmFkZUluRG93biB7XG4gIG9wYWNpdHk6IDA7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDQwMHB4KTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDQwMHB4KTtcbn1cblxuLmZsaXBJblgsXG4uZmxpcEluWSxcbi5yb3RhdGVJbixcbi5yb3RhdGVJblVwTGVmdCxcbi5yb3RhdGVJblVwUmlnaHQsXG4ucm90YXRlSW5Eb3duTGVmdCxcbi5yb3RhdGVEb3duVXBSaWdodCxcbi5yb2xsSW4ge1xuICBvcGFjaXR5OiAwO1xufVxuXG4ubGlnaHRTcGVlZEluUmlnaHQsXG4ubGlnaHRTcGVlZEluTGVmdCB7XG4gIG9wYWNpdHk6IDA7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDQwMHB4KTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDQwMHB4KTtcbn1cblxuLyoqKioqKioqKioqXG4qIGJvdW5jZUluICpcbioqKioqKioqKioqKi9cbkAtd2Via2l0LWtleWZyYW1lcyBib3VuY2VJbiB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSguMyk7XG4gIH1cblxuICA1MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEuMDUpO1xuICB9XG5cbiAgNzAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoLjkpO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgYm91bmNlSW4ge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKC4zKTtcbiAgfVxuXG4gIDUwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDUpO1xuICB9XG5cbiAgNzAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKC45KTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIH1cbn1cblxuLmJvdW5jZUluLmdvIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogYm91bmNlSW47XG4gIGFuaW1hdGlvbi1uYW1lOiBib3VuY2VJbjtcbn1cblxuLyoqKioqKioqKioqKioqKipcbiogYm91bmNlSW5SaWdodCAqXG4qKioqKioqKioqKioqKioqL1xuXG5ALXdlYmtpdC1rZXlmcmFtZXMgYm91bmNlSW5SaWdodCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNDAwcHgpO1xuICB9XG5cbiAgNjAlIHtcblxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0zMHB4KTtcbiAgfVxuXG4gIDgwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTBweCk7XG4gIH1cblxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBib3VuY2VJblJpZ2h0IHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG5cbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNDAwcHgpO1xuICB9XG5cbiAgNjAlIHtcblxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMzBweCk7XG4gIH1cblxuICA4MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMHB4KTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG5cbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gIH1cbn1cblxuXG4uYm91bmNlSW5SaWdodC5nbyB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGJvdW5jZUluUmlnaHQ7XG4gIGFuaW1hdGlvbi1uYW1lOiBib3VuY2VJblJpZ2h0O1xufVxuXG4vKioqKioqKioqKioqKioqKioqXG4qIEJvdW5jZSBpbiBsZWZ0ICpcbioqKioqKioqKioqKioqKioqKiovXG5cbkAtd2Via2l0LWtleWZyYW1lcyBib3VuY2VJbkxlZnQge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcblxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC00MDBweCk7XG4gIH1cblxuICA2MCUge1xuXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMzBweCk7XG4gIH1cblxuICA4MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMHB4KTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG5cbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGJvdW5jZUluTGVmdCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC00MDBweCk7XG4gIH1cblxuICA2MCUge1xuXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDMwcHgpO1xuICB9XG5cbiAgODAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwcHgpO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcblxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgfVxufVxuXG4uYm91bmNlSW5MZWZ0LmdvIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogYm91bmNlSW5MZWZ0O1xuICBhbmltYXRpb24tbmFtZTogYm91bmNlSW5MZWZ0O1xufVxuXG4vKioqKioqKioqKioqKioqKioqXG4qIEJvdW5jZSBpbiB1cCAqXG4qKioqKioqKioqKioqKioqKioqL1xuXG5ALXdlYmtpdC1rZXlmcmFtZXMgYm91bmNlSW5VcCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNDAwcHgpO1xuICB9XG5cbiAgNjAlIHtcblxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zMHB4KTtcbiAgfVxuXG4gIDgwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTBweCk7XG4gIH1cblxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBib3VuY2VJblVwIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG5cbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNDAwcHgpO1xuICB9XG5cbiAgNjAlIHtcblxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMzBweCk7XG4gIH1cblxuICA4MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMHB4KTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG5cbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gIH1cbn1cblxuLmJvdW5jZUluVXAuZ28ge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBib3VuY2VJblVwO1xuICBhbmltYXRpb24tbmFtZTogYm91bmNlSW5VcDtcbn1cblxuXG4vKioqKioqKioqKioqKioqKioqXG4qIEJvdW5jZSBpbiBkb3duICpcbioqKioqKioqKioqKioqKioqKiovXG5cbkAtd2Via2l0LWtleWZyYW1lcyBib3VuY2VJbkRvd24ge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcblxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC00MDBweCk7XG4gIH1cblxuICA2MCUge1xuXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMzBweCk7XG4gIH1cblxuICA4MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMHB4KTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG5cbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGJvdW5jZUluRG93biB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC00MDBweCk7XG4gIH1cblxuICA2MCUge1xuXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDMwcHgpO1xuICB9XG5cbiAgODAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwcHgpO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcblxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgfVxufVxuXG4uYm91bmNlSW5Eb3duLmdvIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogYm91bmNlSW5Eb3duO1xuICBhbmltYXRpb24tbmFtZTogYm91bmNlSW5Eb3duO1xufVxuXG5cbi8qKioqKioqKioqXG4qIEZhZGUgSW4gKlxuKioqKioqKioqKi9cbkAtd2Via2l0LWtleWZyYW1lcyBmYWRlSW4ge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuXG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBmYWRlSW4ge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuXG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cblxuLmZhZGVJbiB7XG4gIG9wYWNpdHk6IDA7XG59XG5cbi5mYWRlSW4uZ28ge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmYWRlSW47XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlSW47XG59XG5cbi8qKioqKioqKioqXG4qIEdyb3cgaW4gKlxuKioqKioqKioqKiovXG5cbkAtd2Via2l0LWtleWZyYW1lcyBncm93SW4ge1xuICAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDAuMik7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuXG4gIDUwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEuMik7XG5cbiAgfVxuXG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgZ3Jvd0luIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC4yKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgNTAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMik7XG5cbiAgfVxuXG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG4uZ3Jvd0luIHtcblxuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMC4yKTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjIpO1xuICBvcGFjaXR5OiAwO1xufVxuXG4uZ3Jvd0luLmdvIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZ3Jvd0luO1xuICBhbmltYXRpb24tbmFtZTogZ3Jvd0luO1xufVxuXG4vKioqKioqKipcbiogU2hha2UgKlxuKioqKioqKiovXG5ALXdlYmtpdC1rZXlmcmFtZXMgc2hha2Uge1xuXG4gIDAlLFxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgfVxuXG4gIDEwJSxcbiAgMzAlLFxuICA1MCUsXG4gIDcwJSxcbiAgOTAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTBweCk7XG4gIH1cblxuICAyMCUsXG4gIDQwJSxcbiAgNjAlLFxuICA4MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwcHgpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgc2hha2Uge1xuXG4gIDAlLFxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gIH1cblxuICAxMCUsXG4gIDMwJSxcbiAgNTAlLFxuICA3MCUsXG4gIDkwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMHB4KTtcbiAgfVxuXG4gIDIwJSxcbiAgNDAlLFxuICA2MCUsXG4gIDgwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwcHgpO1xuICB9XG59XG5cbi5zaGFrZS5nbyB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHNoYWtlO1xuICBhbmltYXRpb24tbmFtZTogc2hha2U7XG59XG5cbi8qKioqKioqKlxuKiBTaGFrZVVwICpcbioqKioqKioqL1xuQC13ZWJraXQta2V5ZnJhbWVzIHNoYWtlVXAge1xuXG4gIDAlLFxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgfVxuXG4gIDEwJSxcbiAgMzAlLFxuICA1MCUsXG4gIDcwJSxcbiAgOTAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTBweCk7XG4gIH1cblxuICAyMCUsXG4gIDQwJSxcbiAgNjAlLFxuICA4MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwcHgpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgc2hha2VVcCB7XG5cbiAgMCUsXG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgfVxuXG4gIDEwJSxcbiAgMzAlLFxuICA1MCUsXG4gIDcwJSxcbiAgOTAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwcHgpO1xuICB9XG5cbiAgMjAlLFxuICA0MCUsXG4gIDYwJSxcbiAgODAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTBweCk7XG4gIH1cbn1cblxuLnNoYWtlVXAuZ28ge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBzaGFrZVVwO1xuICBhbmltYXRpb24tbmFtZTogc2hha2VVcDtcbn1cblxuLyoqKioqKioqKioqKipcbiogRmFkZUluTGVmdCAqXG4qKioqKioqKioqKioqL1xuXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZUluTGVmdCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC00MDBweCk7XG4gIH1cblxuICA1MCUge1xuICAgIG9wYWNpdHk6IDAuMztcbiAgfVxuXG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBmYWRlSW5MZWZ0IHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC00MDBweCk7XG4gIH1cblxuICA1MCUge1xuICAgIG9wYWNpdHk6IDAuMztcbiAgfVxuXG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICB9XG59XG5cbi5mYWRlSW5MZWZ0IHtcbiAgb3BhY2l0eTogMDtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTQwMHB4KTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC00MDBweCk7XG59XG5cbi5mYWRlSW5MZWZ0LmdvIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmFkZUluTGVmdDtcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVJbkxlZnQ7XG59XG5cblxuLyoqKioqKioqKioqKipcbiogRmFkZUluUmlnaHQgKlxuKioqKioqKioqKioqKi9cblxuQC13ZWJraXQta2V5ZnJhbWVzIGZhZGVJblJpZ2h0IHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNDAwcHgpO1xuICB9XG5cbiAgNTAlIHtcbiAgICBvcGFjaXR5OiAwLjM7XG4gIH1cblxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgZmFkZUluUmlnaHQge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNDAwcHgpO1xuICB9XG5cbiAgNTAlIHtcbiAgICBvcGFjaXR5OiAwLjM7XG4gIH1cblxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgfVxufVxuXG4uZmFkZUluUmlnaHQge1xuICBvcGFjaXR5OiAwO1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCg0MDBweCk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg0MDBweCk7XG59XG5cbi5mYWRlSW5SaWdodC5nbyB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZhZGVJblJpZ2h0O1xuICBhbmltYXRpb24tbmFtZTogZmFkZUluUmlnaHQ7XG59XG5cbi8qKioqKioqKioqKioqXG4qIEZhZGVJblVwICpcbioqKioqKioqKioqKiovXG5cbkAtd2Via2l0LWtleWZyYW1lcyBmYWRlSW5VcCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDQwMHB4KTtcbiAgfVxuXG4gIDUwJSB7XG4gICAgb3BhY2l0eTogMC4zO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGZhZGVJblVwIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDQwMHB4KTtcbiAgfVxuXG4gIDUwJSB7XG4gICAgb3BhY2l0eTogMC4zO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gIH1cbn1cblxuLmZhZGVJblVwIHtcbiAgb3BhY2l0eTogMDtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNDAwcHgpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNDAwcHgpO1xufVxuXG4uZmFkZUluVXAuZ28ge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmYWRlSW5VcDtcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVJblVwO1xufVxuXG4vKioqKioqKioqKioqKlxuKiBGYWRlSW5Eb3duICpcbioqKioqKioqKioqKiovXG5cbkAtd2Via2l0LWtleWZyYW1lcyBmYWRlSW5Eb3duIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTQwMHB4KTtcbiAgfVxuXG4gIDUwJSB7XG4gICAgb3BhY2l0eTogMC4zO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGZhZGVJbkRvd24ge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTQwMHB4KTtcbiAgfVxuXG4gIDUwJSB7XG4gICAgb3BhY2l0eTogMC4zO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gIH1cbn1cblxuLmZhZGVJbkRvd24ge1xuICBvcGFjaXR5OiAwO1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNDAwcHgpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTQwMHB4KTtcbn1cblxuLmZhZGVJbkRvd24uZ28ge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmYWRlSW5Eb3duO1xuICBhbmltYXRpb24tbmFtZTogZmFkZUluRG93bjtcbn1cblxuLyoqKioqKioqKioqKioqKioqXG4qIHJvdGF0ZUluICpcbioqKioqKioqKioqKioqKioqL1xuQC13ZWJraXQta2V5ZnJhbWVzIHJvdGF0ZUluIHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGNlbnRlcjtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKC0yMDBkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cblxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXI7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgcm90YXRlSW4ge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGNlbnRlcjtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMjAwZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGNlbnRlcjtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbi5yb3RhdGVJbi5nbyB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHJvdGF0ZUluO1xuICBhbmltYXRpb24tbmFtZTogcm90YXRlSW47XG59XG5cbi8qKioqKioqKioqKioqKioqKlxuKiByb3RhdGVJblVwTGVmdCAqXG4qKioqKioqKioqKioqKioqKi9cblxuQC13ZWJraXQta2V5ZnJhbWVzIHJvdGF0ZUluVXBMZWZ0IHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuXG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgcm90YXRlSW5VcExlZnQge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cblxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbi5yb3RhdGVJblVwTGVmdC5nbyB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHJvdGF0ZUluVXBMZWZ0O1xuICBhbmltYXRpb24tbmFtZTogcm90YXRlSW5VcExlZnQ7XG59XG5cbi8qKioqKioqKioqKioqKioqKioqXG4qIHJvdGF0ZUluRG93bkxlZnQgKlxuKioqKioqKioqKioqKioqKioqKi9cbkAtd2Via2l0LWtleWZyYW1lcyByb3RhdGVJbkRvd25MZWZ0IHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cblxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMCk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHJvdGF0ZUluRG93bkxlZnQge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMCk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG4ucm90YXRlSW5Eb3duTGVmdC5nbyB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHJvdGF0ZUluRG93bkxlZnQ7XG4gIGFuaW1hdGlvbi1uYW1lOiByb3RhdGVJbkRvd25MZWZ0O1xufVxuXG4vKioqKioqKioqKioqKioqKioqXG4qIHJvdGF0ZUluVXBSaWdodCAqXG4qKioqKioqKioqKioqKioqKioqL1xuXG5ALXdlYmtpdC1rZXlmcmFtZXMgcm90YXRlSW5VcFJpZ2h0IHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgcm90YXRlSW5VcFJpZ2h0IHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cblxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMCk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG4ucm90YXRlSW5VcFJpZ2h0LmdvIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogcm90YXRlSW5VcFJpZ2h0O1xuICBhbmltYXRpb24tbmFtZTogcm90YXRlSW5VcFJpZ2h0O1xufVxuXG4vKioqKioqKioqKioqKioqKioqKipcbiogcm90YXRlSW5Eb3duUmlnaHQgKlxuKioqKioqKioqKioqKioqKioqKiovXG5cbkAtd2Via2l0LWtleWZyYW1lcyByb3RhdGVJbkRvd25SaWdodCB7XG4gIDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgcm90YXRlSW5Eb3duUmlnaHQge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDApO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuLnJvdGF0ZUluRG93blJpZ2h0LmdvIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogcm90YXRlSW5Eb3duUmlnaHQ7XG4gIGFuaW1hdGlvbi1uYW1lOiByb3RhdGVJbkRvd25SaWdodDtcbn1cblxuLyoqKioqKioqKlxuKiByb2xsSW4gKlxuKioqKioqKioqKi9cblxuQC13ZWJraXQta2V5ZnJhbWVzIHJvbGxJbiB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKSByb3RhdGUoLTEyMGRlZyk7XG4gIH1cblxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDBweCkgcm90YXRlKDBkZWcpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgcm9sbEluIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKSByb3RhdGUoLTEyMGRlZyk7XG4gIH1cblxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgfVxufVxuXG4ucm9sbEluLmdvIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogcm9sbEluO1xuICBhbmltYXRpb24tbmFtZTogcm9sbEluO1xufVxuXG4vKioqKioqKioqXG4qIHdpZ2dsZSAqXG4qKioqKioqKioqL1xuXG5ALXdlYmtpdC1rZXlmcmFtZXMgd2lnZ2xlIHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBza2V3WCg5ZGVnKTtcbiAgfVxuXG4gIDEwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNrZXdYKC04ZGVnKTtcbiAgfVxuXG4gIDIwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNrZXdYKDdkZWcpO1xuICB9XG5cbiAgMzAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2tld1goLTZkZWcpO1xuICB9XG5cbiAgNDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2tld1goNWRlZyk7XG4gIH1cblxuICA1MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBza2V3WCgtNGRlZyk7XG4gIH1cblxuICA2MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBza2V3WCgzZGVnKTtcbiAgfVxuXG4gIDcwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNrZXdYKC0yZGVnKTtcbiAgfVxuXG4gIDgwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNrZXdYKDFkZWcpO1xuICB9XG5cbiAgOTAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2tld1goMGRlZyk7XG4gIH1cblxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2tld1goMGRlZyk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyB3aWdnbGUge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiBza2V3WCg5ZGVnKTtcbiAgfVxuXG4gIDEwJSB7XG4gICAgdHJhbnNmb3JtOiBza2V3WCgtOGRlZyk7XG4gIH1cblxuICAyMCUge1xuICAgIHRyYW5zZm9ybTogc2tld1goN2RlZyk7XG4gIH1cblxuICAzMCUge1xuICAgIHRyYW5zZm9ybTogc2tld1goLTZkZWcpO1xuICB9XG5cbiAgNDAlIHtcbiAgICB0cmFuc2Zvcm06IHNrZXdYKDVkZWcpO1xuICB9XG5cbiAgNTAlIHtcbiAgICB0cmFuc2Zvcm06IHNrZXdYKC00ZGVnKTtcbiAgfVxuXG4gIDYwJSB7XG4gICAgdHJhbnNmb3JtOiBza2V3WCgzZGVnKTtcbiAgfVxuXG4gIDcwJSB7XG4gICAgdHJhbnNmb3JtOiBza2V3WCgtMmRlZyk7XG4gIH1cblxuICA4MCUge1xuICAgIHRyYW5zZm9ybTogc2tld1goMWRlZyk7XG4gIH1cblxuICA5MCUge1xuICAgIHRyYW5zZm9ybTogc2tld1goMGRlZyk7XG4gIH1cblxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHNrZXdYKDBkZWcpO1xuICB9XG59XG5cbi53aWdnbGUuZ28ge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiB3aWdnbGU7XG4gIGFuaW1hdGlvbi1uYW1lOiB3aWdnbGU7XG4gIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbn1cblxuLyoqKioqKioqXG4qIHN3aW5nICpcbioqKioqKioqKi9cblxuQC13ZWJraXQta2V5ZnJhbWVzIHN3aW5nIHtcblxuICAyMCUsXG4gIDQwJSxcbiAgNjAlLFxuICA4MCUsXG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogdG9wIGNlbnRlcjtcbiAgfVxuXG4gIDIwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgxNWRlZyk7XG4gIH1cblxuICA0MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoLTEwZGVnKTtcbiAgfVxuXG4gIDYwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg1ZGVnKTtcbiAgfVxuXG4gIDgwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgtNWRlZyk7XG4gIH1cblxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgc3dpbmcge1xuICAyMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDE1ZGVnKTtcbiAgfVxuXG4gIDQwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTEwZGVnKTtcbiAgfVxuXG4gIDYwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoNWRlZyk7XG4gIH1cblxuICA4MCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKC01ZGVnKTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICB9XG59XG5cbi5zd2luZy5nbyB7XG4gIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogdG9wIGNlbnRlcjtcbiAgdHJhbnNmb3JtLW9yaWdpbjogdG9wIGNlbnRlcjtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogc3dpbmc7XG4gIGFuaW1hdGlvbi1uYW1lOiBzd2luZztcbn1cblxuLyoqKioqKipcbiogdGFkYSAqXG4qKioqKioqKi9cblxuQC13ZWJraXQta2V5ZnJhbWVzIHRhZGEge1xuICAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpO1xuICB9XG5cbiAgMTAlLFxuICAyMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjkpIHJvdGF0ZSgtM2RlZyk7XG4gIH1cblxuICAzMCUsXG4gIDUwJSxcbiAgNzAlLFxuICA5MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxLjEpIHJvdGF0ZSgzZGVnKTtcbiAgfVxuXG4gIDQwJSxcbiAgNjAlLFxuICA4MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxLjEpIHJvdGF0ZSgtM2RlZyk7XG4gIH1cblxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSkgcm90YXRlKDApO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgdGFkYSB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICB9XG5cbiAgMTAlLFxuICAyMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC45KSByb3RhdGUoLTNkZWcpO1xuICB9XG5cbiAgMzAlLFxuICA1MCUsXG4gIDcwJSxcbiAgOTAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSkgcm90YXRlKDNkZWcpO1xuICB9XG5cbiAgNDAlLFxuICA2MCUsXG4gIDgwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpIHJvdGF0ZSgtM2RlZyk7XG4gIH1cblxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpIHJvdGF0ZSgwKTtcbiAgfVxufVxuXG4udGFkYS5nbyB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHRhZGE7XG4gIGFuaW1hdGlvbi1uYW1lOiB0YWRhO1xufVxuXG4vKioqKioqKioqXG4qIHdvYmJsZSAqXG4qKioqKioqKioqL1xuXG5ALXdlYmtpdC1rZXlmcmFtZXMgd29iYmxlIHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDAlKTtcbiAgfVxuXG4gIDE1JSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTI1JSkgcm90YXRlKC01ZGVnKTtcbiAgfVxuXG4gIDMwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjAlKSByb3RhdGUoM2RlZyk7XG4gIH1cblxuICA0NSUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xNSUpIHJvdGF0ZSgtM2RlZyk7XG4gIH1cblxuICA2MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwJSkgcm90YXRlKDJkZWcpO1xuICB9XG5cbiAgNzUlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNSUpIHJvdGF0ZSgtMWRlZyk7XG4gIH1cblxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgwJSk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyB3b2JibGUge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDAlKTtcbiAgfVxuXG4gIDE1JSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0yNSUpIHJvdGF0ZSgtNWRlZyk7XG4gIH1cblxuICAzMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgyMCUpIHJvdGF0ZSgzZGVnKTtcbiAgfVxuXG4gIDQ1JSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xNSUpIHJvdGF0ZSgtM2RlZyk7XG4gIH1cblxuICA2MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMCUpIHJvdGF0ZSgyZGVnKTtcbiAgfVxuXG4gIDc1JSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01JSkgcm90YXRlKC0xZGVnKTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwJSk7XG4gIH1cbn1cblxuLndvYmJsZS5nbyB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHdvYmJsZTtcbiAgYW5pbWF0aW9uLW5hbWU6IHdvYmJsZTtcbn1cblxuLyoqKioqKioqXG4qIHB1bHNlICpcbioqKioqKioqKi9cblxuQC13ZWJraXQta2V5ZnJhbWVzIHB1bHNlIHtcbiAgLy8gMCUge1xuICAvLyAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgLy8gfVxuXG4gIC8vIDUwJSB7XG4gIC8vICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEuMSk7XG4gIC8vIH1cblxuICAvLyAxMDAlIHtcbiAgLy8gICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIC8vIH1cbiAgMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC45NSk7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgMCByZ2JhKDAsIDAsIDAsIDAuNyk7XG4gIH1cblxuICA3MCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgMTBweCByZ2JhKDAsIDAsIDAsIDApO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk1KTtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAwIHJnYmEoMCwgMCwgMCwgMCk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBwdWxzZSB7XG4gIC8vIDAlIHtcbiAgLy8gICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAvLyB9XG5cbiAgLy8gNTAlIHtcbiAgLy8gICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7XG4gIC8vIH1cblxuICAvLyAxMDAlIHtcbiAgLy8gICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAvLyB9XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTUpO1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDAgcmdiYSgwLCAwLCAwLCAwLjcpO1xuICB9XG5cbiAgNzAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDEwcHggcmdiYSgwLCAwLCAwLCAwKTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC45NSk7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgMCByZ2JhKDAsIDAsIDAsIDApO1xuICB9XG59XG5cbi5wdWxzZS5nbyB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHB1bHNlO1xuICBhbmltYXRpb24tbmFtZTogcHVsc2U7XG59XG5cbi8qKioqKioqKioqKioqKipcbiogbGlnaHRTcGVlZEluUmlnaHQgKlxuKioqKioqKioqKioqKioqKi9cbkAtd2Via2l0LWtleWZyYW1lcyBsaWdodFNwZWVkSW5SaWdodCB7XG4gIDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKSBza2V3WCgtMzBkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cblxuICA2MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0yMCUpIHNrZXdYKDMwZGVnKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgODAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgwJSkgc2tld1goLTE1ZGVnKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCUpIHNrZXdYKDBkZWcpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBsaWdodFNwZWVkSW5SaWdodCB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSkgc2tld1goLTMwZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgNjAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTIwJSkgc2tld1goMzBkZWcpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICA4MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwJSkgc2tld1goLTE1ZGVnKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDAlKSBza2V3WCgwZGVnKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbi5saWdodFNwZWVkSW5SaWdodC5nbyB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGxpZ2h0U3BlZWRJblJpZ2h0O1xuICBhbmltYXRpb24tbmFtZTogbGlnaHRTcGVlZEluUmlnaHQ7XG4gIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xufVxuXG4vKioqKioqKioqKioqKioqXG4qIGxpZ2h0U3BlZWRJbkxlZnQgKlxuKioqKioqKioqKioqKioqKi9cbkAtd2Via2l0LWtleWZyYW1lcyBsaWdodFNwZWVkSW5MZWZ0IHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKSBza2V3WCgzMGRlZyk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuXG4gIDYwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjAlKSBza2V3WCgtMzBkZWcpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICA4MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDAlKSBza2V3WCgxNWRlZyk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDAlKSBza2V3WCgwZGVnKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgbGlnaHRTcGVlZEluTGVmdCB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpIHNrZXdYKDMwZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgNjAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjAlKSBza2V3WCgtMzBkZWcpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICA4MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwJSkgc2tld1goMTVkZWcpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCUpIHNrZXdYKDBkZWcpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuLmxpZ2h0U3BlZWRJbkxlZnQuZ28ge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBsaWdodFNwZWVkSW5MZWZ0O1xuICBhbmltYXRpb24tbmFtZTogbGlnaHRTcGVlZEluTGVmdDtcbiAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDtcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XG59XG5cblxuLyoqKioqKipcbiogRmxpcCAqXG4qKioqKioqL1xuQC13ZWJraXQta2V5ZnJhbWVzIGZsaXAge1xuICAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKDApO1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XG4gIH1cblxuICA0MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgdHJhbnNsYXRlWigxNTBweCkgcm90YXRlWSgxNzBkZWcpO1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XG4gIH1cblxuICA1MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgdHJhbnNsYXRlWigxNTBweCkgcm90YXRlWSgxOTBkZWcpIHNjYWxlKDEpO1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbiAgfVxuXG4gIDgwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKDM2MGRlZykgc2NhbGUoLjk1KTtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47XG4gIH1cblxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHNjYWxlKDEpO1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGZsaXAge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWSgwKTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDtcbiAgfVxuXG4gIDQwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgdHJhbnNsYXRlWigxNTBweCkgcm90YXRlWSgxNzBkZWcpO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xuICB9XG5cbiAgNTAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSB0cmFuc2xhdGVaKDE1MHB4KSByb3RhdGVZKDE5MGRlZykgc2NhbGUoMSk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbiAgfVxuXG4gIDgwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWSgzNjBkZWcpIHNjYWxlKC45NSk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbiAgfVxuXG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHNjYWxlKDEpO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47XG4gIH1cbn1cblxuLmZsaXAuZ28ge1xuICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IHZpc2libGUgIWltcG9ydGFudDtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmxpcDtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogdmlzaWJsZSAhaW1wb3J0YW50O1xuICBhbmltYXRpb24tbmFtZTogZmxpcDtcbn1cblxuLyoqKioqKioqKipcbiogZmxpcEluWCAqXG4qKioqKioqKioqL1xuQC13ZWJraXQta2V5ZnJhbWVzIGZsaXBJblgge1xuICAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKDkwZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgNDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoLTEwZGVnKTtcbiAgfVxuXG4gIDcwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKDEwZGVnKTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWCgwZGVnKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgZmxpcEluWCB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKDkwZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgNDAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKC0xMGRlZyk7XG4gIH1cblxuICA3MCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoMTBkZWcpO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWCgwZGVnKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbi5mbGlwSW5YLmdvIHtcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZsaXBJblg7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IHZpc2libGUgIWltcG9ydGFudDtcbiAgYW5pbWF0aW9uLW5hbWU6IGZsaXBJblg7XG59XG5cbi8qKioqKioqKioqXG4qIGZsaXBJblkgKlxuKioqKioqKioqKi9cblxuQC13ZWJraXQta2V5ZnJhbWVzIGZsaXBJblkge1xuICAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKDkwZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgNDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoLTEwZGVnKTtcbiAgfVxuXG4gIDcwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKDEwZGVnKTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWSgwZGVnKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgZmxpcEluWSB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKDkwZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgNDAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKC0xMGRlZyk7XG4gIH1cblxuICA3MCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoMTBkZWcpO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWSgwZGVnKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbi5mbGlwSW5ZLmdvIHtcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZsaXBJblk7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IHZpc2libGUgIWltcG9ydGFudDtcbiAgYW5pbWF0aW9uLW5hbWU6IGZsaXBJblk7XG59XG5cbi8qKioqKioqKioqKioqKioqKlxuKiBPdXQgYW5pbWF0aW9ucyAqXG4qKioqKioqKioqKioqKioqKi9cblxuXG4vKioqKioqKioqKioqXG4qIGJvdW5jZU91dCAqXG4qKioqKioqKioqKioqL1xuQC13ZWJraXQta2V5ZnJhbWVzIGJvdW5jZU91dCB7XG4gIDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIH1cblxuICAyNSUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSguOTUpO1xuICB9XG5cbiAgNTAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoLjMpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgYm91bmNlT3V0IHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIH1cblxuICAyNSUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoLjk1KTtcbiAgfVxuXG4gIDUwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7XG4gIH1cblxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoLjMpO1xuICB9XG59XG5cbi5ib3VuY2VPdXQuZ29Bd2F5IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogYm91bmNlT3V0O1xuICBhbmltYXRpb24tbmFtZTogYm91bmNlT3V0O1xufVxuXG4vKioqKioqKioqKioqXG4qIGJvdW5jZU91dFVwICpcbioqKioqKioqKioqKiovXG5ALXdlYmtpdC1rZXlmcmFtZXMgYm91bmNlT3V0VXAge1xuICAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gIH1cblxuICAyMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjBweCk7XG4gIH1cblxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yMDAwcHgpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgYm91bmNlT3V0VXAge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICB9XG5cbiAgMjAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyMHB4KTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yMDAwcHgpO1xuICB9XG59XG5cbi5ib3VuY2VPdXRVcC5nb0F3YXkge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBib3VuY2VPdXRVcDtcbiAgYW5pbWF0aW9uLW5hbWU6IGJvdW5jZU91dFVwO1xufVxuXG4vKioqKioqKioqKioqXG4qIGJvdW5jZU91dERvd24gKlxuKioqKioqKioqKioqKi9cbkAtd2Via2l0LWtleWZyYW1lcyBib3VuY2VPdXREb3duIHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICB9XG5cbiAgMjAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yMHB4KTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjAwMHB4KTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGJvdW5jZU91dERvd24ge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICB9XG5cbiAgMjAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjBweCk7XG4gIH1cblxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyMDAwcHgpO1xuICB9XG59XG5cbi5ib3VuY2VPdXREb3duLmdvQXdheSB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGJvdW5jZU91dERvd247XG4gIGFuaW1hdGlvbi1uYW1lOiBib3VuY2VPdXREb3duO1xufVxuXG5cbi8qKioqKioqKioqKipcbiogYm91bmNlT3V0TGVmdCAqXG4qKioqKioqKioqKioqL1xuQC13ZWJraXQta2V5ZnJhbWVzIGJvdW5jZU91dExlZnQge1xuICAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gIH1cblxuICAyMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjBweCk7XG4gIH1cblxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0yMDAwcHgpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgYm91bmNlT3V0TGVmdCB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gIH1cblxuICAyMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwcHgpO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTIwMDBweCk7XG4gIH1cbn1cblxuLmJvdW5jZU91dExlZnQuZ29Bd2F5IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogYm91bmNlT3V0TGVmdDtcbiAgYW5pbWF0aW9uLW5hbWU6IGJvdW5jZU91dExlZnQ7XG59XG5cbi8qKioqKioqKioqKipcbiogYm91bmNlT3V0UmlnaHQgKlxuKioqKioqKioqKioqKi9cbkAtd2Via2l0LWtleWZyYW1lcyBib3VuY2VPdXRSaWdodCB7XG4gIDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgfVxuXG4gIDIwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMjBweCk7XG4gIH1cblxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwMDBweCk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBib3VuY2VPdXRSaWdodCB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gIH1cblxuICAyMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0yMHB4KTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwMDBweCk7XG4gIH1cbn1cblxuLmJvdW5jZU91dFJpZ2h0LmdvQXdheSB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGJvdW5jZU91dFJpZ2h0O1xuICBhbmltYXRpb24tbmFtZTogYm91bmNlT3V0UmlnaHQ7XG59XG5cbi8qKioqKioqKioqKipcbiogZmFkZU91dCAqXG4qKioqKioqKioqKioqL1xuQC13ZWJraXQta2V5ZnJhbWVzIGZhZGVPdXQge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBmYWRlT3V0IHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbi5mYWRlT3V0LmdvQXdheSB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXQ7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0O1xufVxuXG4vKioqKioqKioqKioqXG4qIGZhZGVPdXRVcCAqXG4qKioqKioqKioqKioqL1xuQC13ZWJraXQta2V5ZnJhbWVzIGZhZGVPdXRVcCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjAwMHB4KTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGZhZGVPdXRVcCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yMDAwcHgpO1xuICB9XG59XG5cbi5mYWRlT3V0VXAuZ29Bd2F5IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmFkZU91dFVwO1xuICBhbmltYXRpb24tbmFtZTogZmFkZU91dFVwO1xufVxuXG4vKioqKioqKioqKioqXG4qIGZhZGVPdXREb3duICpcbioqKioqKioqKioqKiovXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZU91dERvd24ge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjAwMHB4KTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGZhZGVPdXREb3duIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjAwMHB4KTtcbiAgfVxufVxuXG4uZmFkZU91dERvd24uZ29Bd2F5IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmFkZU91dERvd247XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0RG93bjtcbn1cblxuLyoqKioqKioqKioqKlxuKiBmYWRlT3V0TGVmdCAqXG4qKioqKioqKioqKioqL1xuQC13ZWJraXQta2V5ZnJhbWVzIGZhZGVPdXRMZWZ0IHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gIH1cblxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0yMDAwcHgpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgZmFkZU91dExlZnQge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gIH1cblxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMjAwMHB4KTtcbiAgfVxufVxuXG4uZmFkZU91dExlZnQuZ29Bd2F5IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmFkZU91dExlZnQ7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0TGVmdDtcbn1cblxuLyoqKioqKioqKioqKlxuKiBmYWRlT3V0UmlnaHQgKlxuKioqKioqKioqKioqKi9cbkAtd2Via2l0LWtleWZyYW1lcyBmYWRlT3V0UmlnaHQge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjAwMHB4KTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGZhZGVPdXRSaWdodCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwMDBweCk7XG4gIH1cbn1cblxuLmZhZGVPdXRSaWdodC5nb0F3YXkge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0UmlnaHQ7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0UmlnaHQ7XG59XG5cbi8qKioqKioqKioqKipcbiogZmxpcE91dFggKlxuKioqKioqKioqKioqKi9cbkAtd2Via2l0LWtleWZyYW1lcyBmbGlwT3V0WCB7XG4gIDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoMGRlZyk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWCg5MGRlZyk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGZsaXBPdXRYIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoMGRlZyk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoOTBkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuLmZsaXBPdXRYLmdvQXdheSB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZsaXBPdXRYO1xuICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IHZpc2libGUgIWltcG9ydGFudDtcbiAgYW5pbWF0aW9uLW5hbWU6IGZsaXBPdXRYO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG59XG5cbi8qKioqKioqKioqKipcbiogZmxpcE91dFkgKlxuKioqKioqKioqKioqKi9cbkAtd2Via2l0LWtleWZyYW1lcyBmbGlwT3V0WSB7XG4gIDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoMGRlZyk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWSg5MGRlZyk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGZsaXBPdXRZIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoMGRlZyk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoOTBkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuLmZsaXBPdXRZIHtcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZsaXBPdXRZO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG4gIGFuaW1hdGlvbi1uYW1lOiBmbGlwT3V0WTtcbn1cblxuLyoqKioqKioqKioqKlxuKiBsaWdodFNwZWVkT3V0UmlnaHQgKlxuKioqKioqKioqKioqKi9cbkAtd2Via2l0LWtleWZyYW1lcyBsaWdodFNwZWVkT3V0UmlnaHQge1xuICAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCUpIHNrZXdYKDBkZWcpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKSBza2V3WCgtMzBkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBsaWdodFNwZWVkT3V0UmlnaHQge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDAlKSBza2V3WCgwZGVnKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpIHNrZXdYKC0zMGRlZyk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuXG4ubGlnaHRTcGVlZE91dFJpZ2h0LmdvQXdheSB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGxpZ2h0U3BlZWRPdXRSaWdodDtcbiAgYW5pbWF0aW9uLW5hbWU6IGxpZ2h0U3BlZWRPdXRSaWdodDtcbiAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluO1xuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluO1xufVxuXG5cbi8qKioqKioqKioqKipcbiogbGlnaHRTcGVlZE91dExlZnQgKlxuKioqKioqKioqKioqKi9cbkAtd2Via2l0LWtleWZyYW1lcyBsaWdodFNwZWVkT3V0TGVmdCB7XG4gIDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgwJSkgc2tld1goMGRlZyk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKSBza2V3WCgzMGRlZyk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGxpZ2h0U3BlZWRPdXRMZWZ0IHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwJSkgc2tld1goMGRlZyk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSkgc2tld1goMzBkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuLmxpZ2h0U3BlZWRPdXRMZWZ0LmdvQXdheSB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGxpZ2h0U3BlZWRPdXRMZWZ0O1xuICBhbmltYXRpb24tbmFtZTogbGlnaHRTcGVlZE91dExlZnQ7XG4gIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcblxufVxuXG4vKioqKioqKioqKioqXG4qIHJvdGF0ZU91dCAqXG4qKioqKioqKioqKioqL1xuQC13ZWJraXQta2V5ZnJhbWVzIHJvdGF0ZU91dCB7XG4gIDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXI7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMjAwZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgcm90YXRlT3V0IHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXI7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMCk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXI7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMjAwZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbi5yb3RhdGVPdXQuZ29Bd2F5IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogcm90YXRlT3V0O1xuICBhbmltYXRpb24tbmFtZTogcm90YXRlT3V0O1xufVxuXG5cbi8qKioqKioqKioqKipcbiogcm90YXRlT3V0VXBMZWZ0ICpcbioqKioqKioqKioqKiovXG5ALXdlYmtpdC1rZXlmcmFtZXMgcm90YXRlT3V0VXBMZWZ0IHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHJvdGF0ZU91dFVwTGVmdCB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgLXRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgIC10cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuLnJvdGF0ZU91dFVwTGVmdC5nb0F3YXkge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiByb3RhdGVPdXRVcExlZnQ7XG4gIGFuaW1hdGlvbi1uYW1lOiByb3RhdGVPdXRVcExlZnQ7XG59XG5cbi8qKioqKioqKioqKipcbiogcm90YXRlT3V0RG93bkxlZnQgKlxuKioqKioqKioqKioqKi9cblxuQC13ZWJraXQta2V5ZnJhbWVzIHJvdGF0ZU91dERvd25MZWZ0IHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgcm90YXRlT3V0RG93bkxlZnQge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMCk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbi5yb3RhdGVPdXREb3duTGVmdC5nb0F3YXkge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiByb3RhdGVPdXREb3duTGVmdDtcbiAgYW5pbWF0aW9uLW5hbWU6IHJvdGF0ZU91dERvd25MZWZ0O1xufVxuXG4vKioqKioqKioqKioqXG4qIHJvdGF0ZU91dFVwUmlnaHQgKlxuKioqKioqKioqKioqKi9cblxuQC13ZWJraXQta2V5ZnJhbWVzIHJvdGF0ZU91dFVwUmlnaHQge1xuICAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHJvdGF0ZU91dFVwUmlnaHQge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDApO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuLnJvdGF0ZU91dFVwUmlnaHQuZ29Bd2F5IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogcm90YXRlT3V0VXBSaWdodDtcbiAgYW5pbWF0aW9uLW5hbWU6IHJvdGF0ZU91dFVwUmlnaHQ7XG59XG5cbi8qKioqKioqKioqKipcbiogcm9sbE91dCAqXG4qKioqKioqKioqKioqL1xuQC13ZWJraXQta2V5ZnJhbWVzIHJvbGxPdXQge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSkgcm90YXRlKDEyMGRlZyk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyByb2xsT3V0IHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDBweCkgcm90YXRlKDBkZWcpO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSkgcm90YXRlKDEyMGRlZyk7XG4gIH1cbn1cblxuLnJvbGxPdXQuZ29Bd2F5IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogcm9sbE91dDtcbiAgYW5pbWF0aW9uLW5hbWU6IHJvbGxPdXQ7XG59XG5cbi8qKioqKioqKioqKioqKioqKlxuKiBTaG9ydCBBbmltYXRpb25zXG4qKioqKioqKioqKioqKioqKioqL1xuXG4vKioqKioqKioqKioqKioqKioqKioqXG4qIGZhZGVJblVwU2hvcnRcbioqKioqKioqKioqKioqKioqKioqKi9cbkAtd2Via2l0LWtleWZyYW1lcyBmYWRlSW5VcFNob3J0IHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjBweCk7XG4gIH1cblxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgZmFkZUluVXBTaG9ydCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyMHB4KTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICB9XG59XG5cbi5mYWRlSW5VcFNob3J0IHtcbiAgb3BhY2l0eTogMDtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjBweCk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyMHB4KTtcbn1cblxuLmZhZGVJblVwU2hvcnQuZ28ge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmYWRlSW5VcFNob3J0O1xuICBhbmltYXRpb24tbmFtZTogZmFkZUluVXBTaG9ydDtcbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKlxuKiBmYWRlSW5Eb3duU2hvcnRcbioqKioqKioqKioqKioqKioqKioqKi9cbkAtd2Via2l0LWtleWZyYW1lcyBmYWRlSW5Eb3duU2hvcnQge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjBweCk7XG4gIH1cblxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgZmFkZUluRG93blNob3J0IHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yMHB4KTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICB9XG59XG5cbi5mYWRlSW5Eb3duU2hvcnQge1xuICBvcGFjaXR5OiAwO1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjBweCk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjBweCk7XG59XG5cbi5mYWRlSW5Eb3duU2hvcnQuZ28ge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmYWRlSW5Eb3duU2hvcnQ7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlSW5Eb3duU2hvcnQ7XG59XG5cbi8qKioqKioqKioqKioqKioqKioqKipcbiogZmFkZUluUmlnaHRTaG9ydCBcbioqKioqKioqKioqKioqKioqKioqKi9cbkAtd2Via2l0LWtleWZyYW1lcyBmYWRlSW5SaWdodFNob3J0IHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjBweCk7XG4gIH1cblxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgZmFkZUluUmlnaHRTaG9ydCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgyMHB4KTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICB9XG59XG5cbi5mYWRlSW5SaWdodFNob3J0IHtcbiAgb3BhY2l0eTogMDtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjBweCk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgyMHB4KTtcbn1cblxuLmZhZGVJblJpZ2h0U2hvcnQuZ28ge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmYWRlSW5SaWdodFNob3J0O1xuICBhbmltYXRpb24tbmFtZTogZmFkZUluUmlnaHRTaG9ydDtcbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKlxuKiBmYWRlSW5MZWZ0U2hvcnQgXG4qKioqKioqKioqKioqKioqKioqKiovXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZUluTGVmdFNob3J0IHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTIwcHgpO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGZhZGVJbkxlZnRTaG9ydCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMjBweCk7XG4gIH1cblxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgfVxufVxuXG4uZmFkZUluTGVmdFNob3J0IHtcbiAgb3BhY2l0eTogMDtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTIwcHgpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTIwcHgpO1xufVxuXG4uZmFkZUluTGVmdFNob3J0LmdvIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmFkZUluTGVmdFNob3J0O1xuICBhbmltYXRpb24tbmFtZTogZmFkZUluTGVmdFNob3J0O1xufVxuIiwiLyoqKioqKioqKipcbiogWm9vbSBpbiAqXG4qKioqKioqKioqKi9cbkAtd2Via2l0LWtleWZyYW1lcyB6b29tSW4ge1xuICAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDUpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoNSk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuXG4gIDgwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKC44KTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKC44KTtcbiAgICBvcGFjaXR5OiAuODtcbiAgfVxuXG4gIDgwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKC44KTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKC44KTtcbiAgfVxuXG4gIDkwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEuMSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHpvb21JbiB7XG4gIDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoNSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSg1KTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgODAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoLjgpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoLjgpO1xuICAgIG9wYWNpdHk6IC44O1xuICB9XG5cbiAgODAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoLjgpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoLjgpO1xuICB9XG5cbiAgOTAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMS4xKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7XG4gIH1cblxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbi56b29tSW4ge1xuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoNSk7XG4gIC1tcy10cmFuc2Zvcm06IHNjYWxlKDUpO1xuICB0cmFuc2Zvcm06IHNjYWxlKDUpO1xuICBvcGFjaXR5OiAwO1xufVxuXG4uem9vbUluLmdvIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogem9vbUluO1xuICBhbmltYXRpb24tbmFtZTogem9vbUluO1xuICBhbmltYXRpb24tZHVyYXRpb246IC41cztcbn1cblxuXG4vKioqKioqKipcbiogU2hha2VVcDIgKlxuU2hha2UgYW5kIHBhdXNlIFxuKioqKioqKiovXG4vLyBALXdlYmtpdC1rZXlmcmFtZXMgc2hha2VVcDIge1xuXG4vLyAgIDAlLFxuLy8gICAxMCUsXG4vLyAgIDIwJSxcbi8vICAgMzAlLFxuLy8gICAxMDAlIHtcbi8vICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbi8vICAgfVxuXG5cbi8vICAgNTAlLFxuLy8gICA3MCUsXG4vLyAgIDkwJSB7XG4vLyAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwcHgpO1xuLy8gICB9XG5cbi8vICAgNDAlLFxuLy8gICA2MCUsXG4vLyAgIDgwJSB7XG4vLyAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTBweCk7XG4vLyAgIH1cbi8vIH1cblxuQGtleWZyYW1lcyBzaGFrZVVwMiB7XG5cbiAgMCUsXG4gIDUwJSxcbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICB9XG5cblxuICA3MCUsXG4gIDkwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwcHgpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTBweCk7XG4gIH1cblxuICA2MCUsXG4gIDgwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTBweCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwcHgpO1xuICB9XG59XG5cbi5zaGFrZXVwMiB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHNoYWtlVXAyO1xuICBhbmltYXRpb24tbmFtZTogc2hha2VVcDI7XG59XG5cbi5zaGFrZTIge1xuICAvKiBTdGFydCB0aGUgc2hha2UgYW5pbWF0aW9uIGFuZCBtYWtlIHRoZSBhbmltYXRpb24gbGFzdCBmb3IgMC41IHNlY29uZHMgKi9cbiAgYW5pbWF0aW9uOiBzaGFrZSAxcztcblxuICAvKiBXaGVuIHRoZSBhbmltYXRpb24gaXMgZmluaXNoZWQsIHN0YXJ0IGFnYWluICovXG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xufVxuXG5Aa2V5ZnJhbWVzIHNoYWtlIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDFweCwgMXB4KSByb3RhdGUoMGRlZyk7XG4gIH1cblxuICAxMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xcHgsIC0ycHgpIHJvdGF0ZSgtMWRlZyk7XG4gIH1cblxuICAyMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0zcHgsIDBweCkgcm90YXRlKDFkZWcpO1xuICB9XG5cbiAgMzAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgzcHgsIDJweCkgcm90YXRlKDBkZWcpO1xuICB9XG5cbiAgNDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxcHgsIC0xcHgpIHJvdGF0ZSgxZGVnKTtcbiAgfVxuXG4gIDUwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTFweCwgMnB4KSByb3RhdGUoLTFkZWcpO1xuICB9XG5cbiAgNjAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtM3B4LCAxcHgpIHJvdGF0ZSgwZGVnKTtcbiAgfVxuXG4gIDcwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoM3B4LCAxcHgpIHJvdGF0ZSgtMWRlZyk7XG4gIH1cblxuICA4MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xcHgsIC0xcHgpIHJvdGF0ZSgxZGVnKTtcbiAgfVxuXG4gIDkwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMXB4LCAycHgpIHJvdGF0ZSgwZGVnKTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDFweCwgLTJweCkgcm90YXRlKC0xZGVnKTtcbiAgfVxufVxuXG5cbkAtd2Via2l0LWtleWZyYW1lcyBmbGFzaGxpZ2h0IHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCkgc2NhbGUoMSk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCkgc2NhbGUoMSk7XG4gIH1cblxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC0yMHB4LCAtNDBweCkgc2NhbGUoMS4xKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjBweCwgLTQwcHgpIHNjYWxlKDEuMSk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBmbGFzaGxpZ2h0IHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCkgc2NhbGUoMSk7XG4gICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApIHNjYWxlKDEpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApIHNjYWxlKDEpO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjBweCwgLTQwcHgpIHNjYWxlKDEuMSk7XG4gICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlKC0yMHB4LCAtNDBweCkgc2NhbGUoMS4xKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjBweCwgLTQwcHgpIHNjYWxlKDEuMSk7XG4gIH1cbn1cblxuLnJvdGF0aW5nIHtcbiAgLy8gLXdlYmtpdC1hbmltYXRpb246IHJvdGF0aW5nIDJzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xuICAvLyAtbW96LWFuaW1hdGlvbjogcm90YXRpbmcgMnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG4gIC8vIC1tcy1hbmltYXRpb246IHJvdGF0aW5nIDJzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xuICAvLyAtby1hbmltYXRpb246IHJvdGF0aW5nIDJzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xuICBhbmltYXRpb246IHJvdGF0aW5nIDMwcyBsaW5lYXIgaW5maW5pdGU7XG4gIFxufVxuXG5Aa2V5ZnJhbWVzIHJvdGF0aW9uIHtcbiAgZnJvbSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gIH1cblxuICB0byB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzU5ZGVnKTtcbiAgfVxufSIsIi8qLS0tIEFib3V0IFRleHQgLS0tKi9cbkBtaXhpbiB0ZXh0LWFsaWduKCRhbGlnbkhvcml6b3RhbDogbm9ybWFsLCAkYWxpZ25WZXJ0aWNhbDogbm9ybWFsKSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogJGFsaWduSG9yaXpvdGFsO1xuICBhbGlnbi1pdGVtczogJGFsaWduVmVydGljYWw7XG59XG5cbkBtaXhpbiB0ZXh0LWRlY29yKCRjb2xvcjogaW5oZXJpdCwgJGZvbnRTaXplOiBpbmhlcml0LCAkdGV4dFRyYW5zZm9ybTogaW5oZXJpdCwgJHRleHRBbGlnbjogaW5oZXJpdCwgJGZvbnRXZWlnaHQ6IG5vcm1hbCkge1xuICBjb2xvcjogJGNvbG9yO1xuICB0ZXh0LXRyYW5zZm9ybTogJHRleHRUcmFuc2Zvcm07XG4gIHRleHQtYWxpZ246ICR0ZXh0QWxpZ247XG4gIGZvbnQtd2VpZ2h0OiAkZm9udFdlaWdodDtcblxuICBAaWYgJGZvbnRTaXplICE9aW5oZXJpdCB7XG4gICAgZm9udC1zaXplOiAkZm9udFNpemU7XG4gIH1cbn1cblxuQG1peGluIHRleHQtc3Ryb2tlKCRzdHJva2VUaGljaywgJHN0cm9rZURpcmVjdCwgJHN0cm9rZUNvbG9yMSwgJHN0cm9rZUNvbG9yMikge1xuICBiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCgkc3Ryb2tlRGlyZWN0LCAkc3Ryb2tlQ29sb3IxLCAkc3Ryb2tlQ29sb3IyKTtcbiAgLyogQ2hyb21lMTArLFNhZmFyaTUuMSsgKi9cbiAgLXdlYmtpdC10ZXh0LXN0cm9rZTogJHN0cm9rZVRoaWNrIHJnYmEoMjU1LCAyNTUsIDI1NSwgLjAxKTtcbiAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7XG59XG5cbkBtaXhpbiB0ZXh0LWdyYWRpZW50KCRkaXJlY3Rpb246IHRvIGJvdHRvbSwgJGNvbG9yLXN0b3BzLi4uKSB7XG4gIC8vIFRoZSB2YWx1ZXMgdG8gdG9wLCB0byBib3R0b20sIHRvIGxlZnQsIGFuZCB0byByaWdodCBhcmUgZXF1aXZhbGVudCB0byB0aGUgYW5nbGVzIDBkZWcsIDE4MGRlZywgMjcwZGVnLCBhbmQgOTBkZWcsIHJlc3BlY3RpdmVseS4gVGhlIG90aGVyIHZhbHVlcyBhcmUgdHJhbnNsYXRlZCBpbnRvIGFuIGFuZ2xlLlxuICBAaWYgaXMtZGlyZWN0aW9uKCRkaXJlY3Rpb24pPT1mYWxzZSB7XG4gICAgJGNvbG9yLXN0b3BzOiAkZGlyZWN0aW9uLCAkY29sb3Itc3RvcHM7XG4gICAgJGRpcmVjdGlvbjogMTgwZGVnO1xuICB9XG4gIGJhY2tncm91bmQ6IG50aChudGgoJGNvbG9yLXN0b3BzLCAxKSwgMSk7XG4gIGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KGxlZ2FjeS1kaXJlY3Rpb24oJGRpcmVjdGlvbiksICRjb2xvci1zdG9wcyk7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgkZGlyZWN0aW9uLCAkY29sb3Itc3RvcHMpO1xuICAtd2Via2l0LWJhY2tncm91bmQtY2xpcDogdGV4dDtcbiAgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4vKiB0ZXh0IHRydW5jYXRlIG11bHRpbGluZSAqL1xuQG1peGluIHRleHQtdHJ1bmNhdGUoJGxpbmVDb3VudDogMikge1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAkbGluZUNvdW50O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuXG59XG5cbi8vIHRleHQgZWxsaXBzaXNcbkBtaXhpbiB0ZXh0LWVsbGlwc2lzKCR3aWR0aCkge1xuICB3aWR0aDogJHdpZHRoO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cblxuXG4vLyB0ZXh0IHNoYWRvd1xuQG1peGluIHRleHQtc2hhZG93KCR4LCAkeSwgJGJsdXIsICRjb2xvciwgJHRyYW5wYXJlbnQpIHtcbiAgZmlsdGVyOiBkcm9wLXNoYWRvdygkeCAkeSAkYmx1ciByZ2JhKCRjb2xvciwgJHRyYW5wYXJlbnQpKTtcbn1cblxuXG5cbi8vIEFib3V0IFJlc3BvbnNpdmVcbkBtaXhpbiBtcS1taW4tbWF4KCRtaW4sICRtYXgpIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIGFuZCAobWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQG1peGluIG1xLW1pbigkdmFsdWUpIHtcbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkdmFsdWUpIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AbWl4aW4gbXEtbWF4KCR2YWx1ZSkge1xuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICR2YWx1ZSkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8qLS0tIEFib3V0IEltYWdlcyAtLS0qL1xuQG1peGluIGltYWdlLWZpdCgkaGVpZ2h0KSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6ICRoZWlnaHQ7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xuICBvYmplY3QtcG9zaXRpb246IGNlbnRlcjtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7XG59XG5cbi8vLSBHcmF5c2NhbGU6IDEgLCBOb25lOiAwXG5AbWl4aW4gaW1hZ2UtZ3JheXNjYWxlKCR2YWx1ZToxKSB7XG4gIGZpbHRlcjogZ3JheTsgICAvKiBJRTYtOSAqL1xuICAtd2Via2l0LWZpbHRlcjogZ3JheXNjYWxlKCR2YWx1ZSk7ICAvKiBHb29nbGUgQ2hyb21lLCBTYWZhcmkgNisgJiBPcGVyYSAxNSsgKi9cbiAgZmlsdGVyOiBncmF5c2NhbGUoJHZhbHVlKTsgICAvKiBNaWNyb3NvZnQgRWRnZSBhbmQgRmlyZWZveCAzNSsgKi9cbn1cblxuXG5cbi8qLS0tIEFib3V0IFBvc2l0aW9uIC0tLSovXG5AbWl4aW4gcG9zaXRpb24oJHBvc2l0aW9uOiByZWxhdGl2ZSwgJGNvb3JkaW5hdGVzOiBudWxsIG51bGwgbnVsbCBudWxsKSB7XG4gIEBpZiB0eXBlLW9mKCRwb3NpdGlvbik9PWxpc3Qge1xuICAgICRjb29yZGluYXRlczogJHBvc2l0aW9uO1xuICAgICRwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cblxuICAkY29vcmRpbmF0ZXM6IHVucGFjaygkY29vcmRpbmF0ZXMpO1xuICAkb2Zmc2V0czogKHRvcDogbnRoKCRjb29yZGluYXRlcywgMSksXG4gICAgcmlnaHQ6IG50aCgkY29vcmRpbmF0ZXMsIDIpLFxuICAgIGJvdHRvbTogbnRoKCRjb29yZGluYXRlcywgMyksXG4gICAgbGVmdDogbnRoKCRjb29yZGluYXRlcywgNCkpO1xuICBwb3NpdGlvbjogJHBvc2l0aW9uO1xuXG4gIEBlYWNoICRvZmZzZXQsXG4gICR2YWx1ZSBpbiAkb2Zmc2V0cyB7XG4gICAgQGlmIGlzLWxlbmd0aCgkdmFsdWUpIHtcbiAgICAgICN7JG9mZnNldH06ICR2YWx1ZTtcbiAgICB9XG4gIH1cbn1cblxuLy8tLS0gQWJvdXQgRWZmZWN0IEhvdmVyIC0tLSovXG5AbWl4aW4gZWZmZWN0LWdyYWRpZW50LWxpbmVhcigkZGlyZWN0aW9uLCAkY29sb3Itc3RvcHMuLi4pIHtcbiAgLy8gVGhlIHZhbHVlcyB0byB0b3AsIHRvIGJvdHRvbSwgdG8gbGVmdCwgYW5kIHRvIHJpZ2h0IGFyZSBlcXVpdmFsZW50IHRvIHRoZSBhbmdsZXMgMGRlZywgMTgwZGVnLCAyNzBkZWcsIGFuZCA5MGRlZywgcmVzcGVjdGl2ZWx5LiBUaGUgb3RoZXIgdmFsdWVzIGFyZSB0cmFuc2xhdGVkIGludG8gYW4gYW5nbGUuXG4gIEBpZiBpcy1kaXJlY3Rpb24oJGRpcmVjdGlvbik9PWZhbHNlIHtcbiAgICAkY29sb3Itc3RvcHM6ICRkaXJlY3Rpb24sICRjb2xvci1zdG9wcztcbiAgICAkZGlyZWN0aW9uOiAxODBkZWc7XG4gIH1cbiAgYmFja2dyb3VuZDogbnRoKG50aCgkY29sb3Itc3RvcHMsIDEpLCAxKTtcbiAgYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQobGVnYWN5LWRpcmVjdGlvbigkZGlyZWN0aW9uKSwgJGNvbG9yLXN0b3BzKTtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KCRkaXJlY3Rpb24sICRjb2xvci1zdG9wcyk7XG59XG5cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gQWJvdXQgQnV0dG9uIC0tLSovXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuXG4vLy0tLSBCVE4gRWZmZWN0XG5AbWl4aW4gaG92ZXItYm9yZGVyLXdyYXBwaW5nKCRib3JkZXJDb2xvcjogIzIwOThEMSwgJGJvcmRlclN0eWxlOiBzb2xpZCwgJGJvcmRlcldpZHRoOiA1cHgpIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3JkZXI6IG5vbmU7XG4gICY6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiAtMTtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIHRvcDogMDtcbiAgICBib3R0b206IDA7XG4gICAgYm9yZGVyOiAkYm9yZGVyQ29sb3IgJGJvcmRlclN0eWxlO1xuICAgIGJvcmRlci13aWR0aDogMDtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItd2lkdGggMC4xcyBlYXNlLW91dDtcbiAgfVxuXG4gICY6aG92ZXI6YmVmb3JlIHtcbiAgICB6LWluZGV4OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICBib3JkZXItd2lkdGg6ICRib3JkZXJXaWR0aDtcbiAgfVxufVxuXG5AbWl4aW4gaG92ZXItdHJhbnNsYXRlWCgkdmFsdWUpIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xcyBlYXNlLWluLW91dDtcblxuICAmOmhvdmVyIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoJHZhbHVlKTtcbiAgfVxufVxuQG1peGluIGhvdmVyLXRyYW5zbGF0ZVkoJHZhbHVlKSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMXMgZWFzZS1pbi1vdXQ7XG5cbiAgJjpob3ZlciB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKCR2YWx1ZSk7XG4gIH1cbn1cblxuXG4vKi0tLSBDdXN0b21pemUgU2Nyb2xsYmFyIC0tLSovXG5AbWl4aW4gc2Nyb2xsLWJhciggJGNvbG9yLXNjcm9sbC1iYXItdGh1bWIsICRjb2xvci1zY3JvbGwtYmFyLCAkc2Nyb2xsYmFyLXdpZHRoOiA1cHgpIHtcbiAgLy8gc2Nyb2xsYmFyLXdpZHRoOiAkc2Nyb2xsYmFyLXdpZHRoO1xuICAvLyBzY3JvbGxiYXItY29sb3I6ICRjb2xvci1zY3JvbGwtYmFyICRjb2xvci1zY3JvbGwtYmFyLXRodW1iO1xuICAvLyAmOjotd2Via2l0LXNjcm9sbGJhciB7IC8qIFdvcmtzIG9uIENocm9tZSwgRWRnZSwgYW5kIFNhZmFyaSAqL1xuICAvLyAgIHdpZHRoOiAkc2Nyb2xsYmFyLXdpZHRoO1xuICAvLyB9XG5cbiAgLy8gJjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sge1xuICAvLyAgIGJhY2tncm91bmQ6ICRjb2xvci1zY3JvbGwtYmFyLXRodW1iO1xuICAvLyAgIGJvcmRlci1yYWRpdXM6ICRzY3JvbGxiYXItd2lkdGg7XG4gIC8vIH1cblxuICAvLyAmOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gIC8vICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLXNjcm9sbC1iYXI7XG4gIC8vICAgYm9yZGVyLXJhZGl1czogJHNjcm9sbGJhci13aWR0aDtcbiAgLy8gICBib3JkZXI6IDFweCBzb2xpZCAkY29sb3Itc2Nyb2xsLWJhcjtcbiAgLy8gfVxuXG4gICY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6IGluc2V0IDAgMCA2cHggcmdiYSgwLCAwLCAwLCAwLjMpO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1zY3JvbGwtYmFyO1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgfVxuXG4gICY6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICB3aWR0aDogJHNjcm9sbGJhci13aWR0aDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3Itc2Nyb2xsLWJhcjtcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIH1cblxuICAmOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1zY3JvbGwtYmFyLXRodW1iO1xuICB9XG4gIG92ZXJmbG93OiBhdXRvO1xuICBcbn1cblxuIiwiLyotLS0gQWJvdXQgVGV4dCAtLS0qL1xuLy8gJXRleHQtY2VudGVyIHtcbi8vICAgZGlzcGxheTogZmxleDtcbi8vICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4vLyB9XG5cbi8vICV0ZXh0LW1pZGRsZSB7XG4vLyAgIGRpc3BsYXk6IGZsZXg7XG4vLyAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4vLyB9XG5cbi8vICV0ZXh0LWNlbnRlci1taWRkbGUge1xuLy8gICBkaXNwbGF5OiBmbGV4O1xuLy8gICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbi8vICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbi8vIH1cblxuXG4iLCIkY29sb3ItMTogIzAwNENBMjtcbiRjb2xvci0yOiAjYzBjMGMwO1xuXG4vKi0tLSBTbW9vdGggU2Nyb2xsIC0tLSovXG5odG1sIHtcbiAgLy8gc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7XG59XG46OnNlbGVjdGlvbiB7XG4gIGNvbG9yOiAkY29sb3ItMTtcbiAgYmFja2dyb3VuZDogJGNvbG9yLTI7XG59XG5cbi8qLS0tIEFuaW1hdGUgYSAtLS0qL1xuYSB7XG4gIHRyYW5zaXRpb246IGFsbCAuMnM7XG4gIGltZyB7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7XG4gIH1cbn1cblxuLyotLS0gQ3VzdG9taXplIFNjcm9sbGJhciAtLS0qL1xuLy8gKiB7IC8qIFdvcmsgb24gRmlyZWZveCAqL1xuLy8gICBzY3JvbGxiYXItd2lkdGg6IDVweDtcbi8vICAgc2Nyb2xsYmFyLWNvbG9yOiAkY29sb3ItMSAkY29sb3ItMjtcbi8vIH1cblxuLy8gKjo6LXdlYmtpdC1zY3JvbGxiYXIgeyAvKiBXb3JrcyBvbiBDaHJvbWUsIEVkZ2UsIGFuZCBTYWZhcmkgKi9cbi8vICAgd2lkdGg6IDVweDtcbi8vIH1cblxuLy8gKjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sge1xuLy8gICBiYWNrZ3JvdW5kOiAkY29sb3ItMjtcbi8vICAgYm9yZGVyLXJhZGl1czogNXB4O1xuLy8gfVxuXG4vLyAqOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4vLyAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci0xO1xuLy8gICBib3JkZXItcmFkaXVzOiA1cHg7XG4vLyAgIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvci0xO1xuLy8gfVxuXG5cblxuLyotLS0gQ29tbW9uIENsYXNzTmFtZSAtLS0qL1xuLmxvb3AtaW5maW5pdGUge1xuICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbn1cblxuLmxvb3AtNSB7XG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IDU7XG59XG5cbi8vIC5mbGFzaC1saWdodCB7XG4vLyAgIGFuaW1hdGlvbjogZmxhc2hsaWdodCAzcyBlYXNlLWluLW91dCA1cyBpbmZpbml0ZSBhbHRlcm5hdGU7XG4vLyAgIC8vIC13ZWJraXQtYW5pbWF0aW9uOiBmbGFzaGxpZ2h0IDNzIGVhc2UtaW4tb3V0IDBzIGluZmluaXRlIGFsdGVybmF0ZTtcbi8vIH1cblxuXG5cbi8qLS0tIEFib3V0IEJ1dHRvbiAtLS0qL1xuLmJ0bi1pbWFnZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBsaW5lLWhlaWdodDogMDtcbiAgaW1nOmxhc3QtY2hpbGQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cblxuICAmOmhvdmVyIHtcbiAgICBpbWc6bGFzdC1jaGlsZCB7XG4gICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG4gIH1cbn1cblxuXG5cbi5idG4taG92ZXItem9vbSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7XG4gICY6aG92ZXIge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xKTtcbiAgfVxufVxuXG4uYnRuLWhvdmVyLXRyYW5zbGF0ZVgge1xuICBAaW5jbHVkZSBob3Zlci10cmFuc2xhdGVYKC0xMHB4KTtcbn1cblxuLmJ0bi1ob3Zlci10cmFuc2xhdGVZIHtcbiAgQGluY2x1ZGUgaG92ZXItdHJhbnNsYXRlWSgtNXB4KTtcbn1cblxuLmJ0bi1ob3Zlci11bmRlcmxpbmUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICY6YmVmb3JlIHtcbiAgICB3aWR0aDogMDtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgYmFja2dyb3VuZDogIzAwMDtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDtcbiAgfVxuXG4gICY6aG92ZXI6YmVmb3JlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuXG4uYnRuLWhvdmVyLWJvcmRlci13cmFwcGluZyB7XG4gIHBhZGRpbmc6IDIwcHg7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgQGluY2x1ZGUgaG92ZXItYm9yZGVyLXdyYXBwaW5nKCNmZmYwMDAsIGRhc2hlZCwgNXB4KTtcbn1cblxuLmJ0bi1ob3Zlci1zaGluZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICAmOmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgdG9wOiAtMTEwJTtcbiAgICBsZWZ0OiAtMjEwJTtcbiAgICB3aWR0aDogMjAwJTtcbiAgICBoZWlnaHQ6IDIwMCU7XG4gICAgb3BhY2l0eTogMDtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsXG4gICAgICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMykgMCUsXG4gICAgICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMykgNzclLFxuICAgICAgICByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSkgOTIlLFxuICAgICAgICByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMCkgMTAwJSk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICB9XG5cbiAgJjpob3ZlcjphZnRlciB7XG4gICAgLXdlYmtpdC1hbmltYXRpb246IHNoaW5lIC43NXM7XG4gICAgYW5pbWF0aW9uOiBzaGluZSAuNzVzO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdG9wOiAtMzAlO1xuICAgIGxlZnQ6IC0zMCU7XG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogbGVmdCxcbiAgICAgIHRvcCxcbiAgICAgIG9wYWNpdHk7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMXMsXG4gICAgICAxcyxcbiAgICAgIC4xNXM7XG4gICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2U7XG4gIH1cbn1cblxuLyotLS0gQWJvdXQgVGV4dCAtLS0qL1xuLnRleHQtdHJ1bmNhdGUge1xuICBAaW5jbHVkZSB0ZXh0LXRydW5jYXRlKDIpO1xufVxuXG4udGV4dC1zdHJva2Uge1xuICBmb250LXNpemU6IDEwMHB4O1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgQGluY2x1ZGUgdGV4dC1zdHJva2UoNXB4LCA5MGRlZywgIzAwMCAyMCUsICNmMDAgNTAlKTtcbn1cblxuLnRleHQtZ3JhZGllbnQge1xuICBAaW5jbHVkZSB0ZXh0LWRlY29yKG51bGwsIDEwMHB4LCB1cHBlcmNhc2UsIG51bGwpO1xuICBAaW5jbHVkZSB0ZXh0LWdyYWRpZW50KDE4MGRlZywgIzAwMCwgI2YwMCwgI2ZmZjAwMCk7XG59XG5cblxuLyotLS0gQWJvdXQgSW1hZ2UgLS0tKi9cbi5pbWFnZS1maXQge1xuICB3aWR0aDogMjUwcHg7XG4gIEBpbmNsdWRlIGltYWdlLWZpdCgzNTBweCk7XG59XG5cbi8qLS0tIEFib3V0IEVmZmVjdCAtLS0qL1xuLmVmZmVjdC1ncmFkaWVudC1saW5lYXIge1xuICBAaW5jbHVkZSBlZmZlY3QtZ3JhZGllbnQtbGluZWFyKHRvIGJvdHRvbSwgIzc3RDdFNyA1MCUsICNmZjAwMDAgNTAlLCAjZmZmMDAwIDEwMCUpO1xufVxuXG4vKi0tLSBBYm91dCBPdGhlciAtLS0qL1xuLmhvdmVyLXN0b3AtYW5pbWF0ZWQge1xuICAmOmhvdmVyIHtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi1wbGF5LXN0YXRlOiBwYXVzZWQ7XG4gICAgLW1vei1hbmltYXRpb24tcGxheS1zdGF0ZTogcGF1c2VkO1xuICAgIC1vLWFuaW1hdGlvbi1wbGF5LXN0YXRlOiBwYXVzZWQ7XG4gICAgYW5pbWF0aW9uLXBsYXktc3RhdGU6IHBhdXNlZDtcbiAgICAtd2Via2l0LWFuaW1hdGlvbjogc3RlcC1lbmQ7XG4gICAgLW1vei1hbmltYXRpb25hbmltYXRpb246IHN0ZXAtZW5kO1xuICAgIGFuaW1hdGlvbjogc3RlcC1lbmQ7XG4gIH1cbn0iLCI6cm9vdCB7XHJcbiAgICAvKiBOb3QgbXkgZmF2b3JpdGUgdGhhdCBsaW5lLWhlaWdodCBoYXMgdG8gYmUgdW5pdGVkLCBidXQgbmVlZGVkICovXHJcbiAgICAtLWxoOiAxLjRyZW07XHJcbn1cclxuXHJcbmh0bWwge1xyXG4gICAgZm9udC1zaXplOiAkZm9udFNpemVIdG1sVGFnO1xyXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxoKTtcclxufVxyXG5cclxuYm9keSB7XHJcbiAgICAvLyBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZENvbG9yICFpbXBvcnRhbnQ7XHJcbiAgICAvLyBjb2xvcjogJG1haW5Db2xvciAhaW1wb3J0YW50O1xyXG4gICAgLy8gZm9udC13ZWlnaHQ6ICRmb250Tm9ybWFsICFpbXBvcnRhbnQ7XHJcbiAgICAvLyBsaW5lLWhlaWdodDogJGxpbmVIZWlnaHQgIWltcG9ydGFudDtcclxuICAgIC8vIGZvbnQtZmFtaWx5OiAkZm9udEZhbWlseSAhaW1wb3J0YW50O1xyXG4gICAgLy8gQGluY2x1ZGUgZm9udC1zaXplKDE2cHgpO1xyXG59XHJcblxyXG5hIHtcclxuICAgIHRyYW5zaXRpb246IGNvbG9yIDAuMnMgZWFzZS1vdXQ7XHJcbiAgICAtbW96LXRyYW5zaXRpb246IGNvbG9yIDAuMnMgZWFzZS1vdXQ7XHJcbiAgICAtby10cmFuc2l0aW9uOiBjb2xvciAwLjJzIGVhc2Utb3V0O1xyXG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiBjb2xvciAwLjJzIGVhc2Utb3V0O1xyXG4gICAgLW1zLXRyYW5zaXRpb246IGNvbG9yIDAuMnMgZWFzZS1vdXQ7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIGNvbG9yOiAkbWFpbkxpbmtDb2xvcjtcclxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuXHJcbiAgICAmOmhvdmVyLFxyXG4gICAgJjpmb2N1cyB7XHJcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgb3V0bGluZTogbm9uZTtcclxuICAgICAgICBjb2xvcjogJG1haW5MaW5rQ29sb3ItaG92ZXI7XHJcbiAgICB9XHJcbn1cclxuXHJcbi5zaG93LW1vYmlsZSB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgQGluY2x1ZGUgbXEtbWF4KDc2OHB4KSB7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICB9XHJcbn1cclxuXHJcbi5zaG93LWRlc2t0b3Age1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBAaW5jbHVkZSBtcS1tYXgoNzY4cHgpIHtcclxuICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgfVxyXG59IiwiaHRtbCB7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgLy8gaGVpZ2h0OiAxMDAlO1xyXG4gIC8vIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgQGluY2x1ZGUgbXEtbWF4KDExMDBweCkge1xyXG4gICAgaGVpZ2h0OiBpbml0aWFsO1xyXG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XHJcbiAgfVxyXG59XHJcblxyXG5ib2R5IHtcclxuICAvLyBiYWNrZ3JvdW5kOiAjZjdmY2ZlO1xyXG4gIC8vIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGZvbnQtZmFtaWx5OiAkZm9udEZhbWlseTtcclxufVxyXG4ud3JhcHBlciB7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgLy8gaGVpZ2h0OiAxMDB2aDtcclxuICAvLyBvdmVyZmxvdzogaGlkZGVuO1xyXG4gIGJhY2tncm91bmQ6IHVybCguLi9pbWFnZXMvYmcuanBnKSBuby1yZXBlYXQgY2VudGVyIHRvcC9jb3ZlcjtcclxuICBmb250LXNpemU6IDE4cHg7XHJcblxyXG5cclxuICBcclxuICBAaW5jbHVkZSBtcS1tYXgoMTEwMHB4KSB7XHJcbiAgICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL2JnLW1vYmlsZS5qcGcpIG5vLXJlcGVhdCBjZW50ZXIgdG9wL2NvdmVyO1xyXG4gICAgaGVpZ2h0OiBpbml0aWFsO1xyXG4gIH1cclxuICBAaW5jbHVkZSBtcS1tYXgoNDgwcHgpIHtcclxuICAgIGJhY2tncm91bmQtc2l6ZTogMTQ1JSAxMDAlO1xyXG4gICAgXHJcbiAgfVxyXG59XHJcblxyXG5wIHtcclxuICBtYXJnaW46IDA7XHJcbiAgcGFkZGluZzogMDtcclxufVxyXG4uY29udGFpbmVyIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcclxuICB3aWR0aDogJGNvbnRhaW5lci13aWR0aDtcclxuICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgLy8gbWluLWhlaWdodDogMTAwdmg7XHJcbiAgbWFyZ2luOiAwIGF1dG87XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIHotaW5kZXg6IDU7XHJcbiAgcGFkZGluZzogMTUwcHggMCAwIDA7XHJcbiAgQGluY2x1ZGUgbXEtbWF4KDExMDBweCkge1xyXG4gICAgcGFkZGluZy10b3A6IDAlO1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIFxyXG4gIH1cclxuICBAaW5jbHVkZSBtcS1tYXgoMTA4MHB4KSB7XHJcbiAgICBcclxuICB9XHJcbiAgQGluY2x1ZGUgbXEtbWF4KDQ4MHB4KSB7XHJcbiAgICBcclxuICB9XHJcbiAgQGluY2x1ZGUgbXEtbWF4KDQwMHB4KSB7XHJcbiAgfVxyXG4gIEBpbmNsdWRlIG1xLW1heCgzODBweCkge1xyXG4gICBcclxuICB9XHJcbn1cclxuLmF2YXRhciB7XHJcbiAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDEwcHggbnVsbCBudWxsIDApO1xyXG4gIGJvcmRlci1yYWRpdXM6IDIycHg7XHJcbn1cclxuLmxvZ28ge1xyXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB0b3A6IDBweDtcclxuICBsZWZ0OiAzMHB4O1xyXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwJSk7XHJcbiAgei1pbmRleDogNjtcclxuICBAaW5jbHVkZSBtcS1tYXgoMTEwMHB4KSB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgaW1nIHtcclxuICAgICAgbWF4LXdpZHRoOiAxOTBweDtcclxuICAgIH1cclxuICB9XHJcbiAgQGluY2x1ZGUgbXEtbWF4KDg4MHB4KSB7XHJcbiAgICB0b3A6IDA7XHJcbiAgfVxyXG4gIEBpbmNsdWRlIG1xLW1heCg0ODBweCkge1xyXG4gICAgdG9wOiA3JTtcclxuICB9XHJcblxyXG4gIGEge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuXHJcbi50ZXh0IHtcclxuICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgMCBudWxsIG51bGwgNDAwcHgpO1xyXG4gIC8vIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcclxuICBAaW5jbHVkZSBtcS1tYXgoMTEwMHB4KSB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICB3aWR0aDogMzUwcHg7XHJcbiAgICBtYXgtd2lkdGg6IDgwJTtcclxuICAgIGxlZnQ6IDUwJTtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcclxuICB9XHJcbn1cclxuXHJcblxyXG4uc3ViLXRleHQge1xyXG4gIGRpc3BsYXk6IG5vbmU7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIEBpbmNsdWRlIG1xLW1heCgxMTAwcHgpIHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgbWFyZ2luOiAwIGF1dG8gMHB4O1xyXG4gIH1cclxufVxyXG5cclxuLmJ1dHRvbnMge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIC8vIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCBudWxsIG51bGwgMCA1MCUpO1xyXG4gIFxyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgQGluY2x1ZGUgbXEtbWF4KDExMDBweCkge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgbGVmdDogMDtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcclxuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XHJcbiAgICBpbWcge1xyXG4gICAgICBtYXgtd2lkdGg6IDI1MHB4O1xyXG4gICAgfVxyXG4gIH1cclxuICBAaW5jbHVkZSBtcS1tYXgoNDgwcHgpIHtcclxuICAgIGltZyB7XHJcbiAgICAgIG1heC13aWR0aDogMTYwcHg7XHJcbiAgICB9XHJcbiAgfVxyXG4gIFxyXG59XHJcblxyXG5cclxuXHJcbi5kdWF0b3Age1xyXG4gIHdpZHRoOiAkY29udGFpbmVyLXdpZHRoO1xyXG4gIGhlaWdodDogNjg1cHg7XHJcbiAgYmFja2dyb3VuZDogdXJsKC4uL2ltYWdlcy9kdWF0b3AtYmcucG5nKSBuby1yZXBlYXQgMCAwL2NvdmVyO1xyXG4gIHBhZGRpbmc6IDBweCAwcHggMDtcclxuICBtYXJnaW46IC0yMHB4IGF1dG8gMHB4O1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIEBpbmNsdWRlIG1xLW1heCgxMTAwcHgpIHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgd2lkdGg6IDU4MHB4O1xyXG4gICAgaGVpZ2h0OiA0OTVweDtcclxuICAgIHBhZGRpbmc6IDMlIDQlIDAlIDQlO1xyXG4gICAgbWFyZ2luOiAwIGF1dG87XHJcbiAgICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL2R1YXRvcC1iZy1tb2JpbGUucG5nKSBuby1yZXBlYXQgY2VudGVyIHRvcC9jb3ZlcjtcclxuICAgIEBpbmNsdWRlIG1xLW1heCg0ODBweCkge1xyXG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgICAgIGhlaWdodDogNDAwcHg7XHJcbiAgICAgIC8vIGJhY2tncm91bmQtc2l6ZTogMTUwJSA5MCU7XHJcbiAgICAgIHBhZGRpbmctbGVmdDogNyU7XHJcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDclO1xyXG4gICAgfVxyXG4gICAgQGluY2x1ZGUgbXEtbWF4KDQwMHB4KSB7XHJcbiAgICAgIHBhZGRpbmctbGVmdDogMiU7XHJcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDIlO1xyXG4gICAgfVxyXG4gIH1cclxuICAmLWRheXMge1xyXG4gICAgd2lkdGg6IDIwMHB4O1xyXG4gICAgbWFyZ2luOiAzNjBweCAwIDAgMTAwcHg7XHJcbiAgICBjb2xvcjogI2ZiZjdlNTtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGZvbnQtc2l6ZTogMjFweDtcclxuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XHJcbiAgICBsaW5lLWhlaWdodDogMTtcclxuICAgIGZvbnQtZmFtaWx5OiBcIlJvYm90byBTbGFiXCI7XHJcbiAgICBwIHtcclxuICAgICAgcGFkZGluZzogMCAwJTtcclxuICAgICAgQGluY2x1ZGUgbXEtbWF4KDExMDBweCkge1xyXG4gICAgICAgIHdpZHRoOiA0MCU7XHJcbiAgICAgICAgZm9udC1zaXplOiAyMnB4O1xyXG4gICAgICAgIHBhZGRpbmctdG9wOiAxNXB4O1xyXG4gICAgICB9XHJcbiAgICAgIEBpbmNsdWRlIG1xLW1heCg3NjhweCkge1xyXG4gICAgICAgIHBhZGRpbmctdG9wOiAyMHB4O1xyXG4gICAgICAgIHBhZGRpbmctbGVmdDogNDBweDtcclxuICAgICAgICBmb250LXNpemU6IDIwcHg7XHJcblxyXG4gICAgICB9XHJcbiAgICAgIEBpbmNsdWRlIG1xLW1heCg0ODBweCkge1xyXG4gICAgICAgIHBhZGRpbmctdG9wOiAxNXB4O1xyXG4gICAgICAgIC8vIHBhZGRpbmctbGVmdDogNDBweDtcclxuICAgICAgICB3aWR0aDogNDAlO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMThweDtcclxuICAgICAgfVxyXG4gICAgICBAaW5jbHVkZSBtcS1tYXgoNDAwcHgpIHtcclxuICAgICAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIEBpbmNsdWRlIG1xLW1heCgxMTAwcHgpIHtcclxuICAgICAgd2lkdGg6IDg1JTtcclxuICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgIG1hcmdpbjogMCBhdXRvIDIlO1xyXG4gICAgICBjb2xvcjogI2ZmZjtcclxuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICBmb250LXNpemU6IDI0cHg7XHJcbiAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XHJcbiAgICAgIC8vIGxpbmUtaGVpZ2h0OiAxO1xyXG4gICAgICBmb250LWZhbWlseTogXCJSb2JvdG8gU2xhYlwiOyAgICBcclxuICAgICAgLy8gQGluY2x1ZGUgdGV4dC1zdHJva2UoM3B4LCAwZGVnLCAjOWE1MDI3LCAjOWE1MDI3KTtcclxuICAgICAgXHJcbiAgICB9XHJcbiAgICBAaW5jbHVkZSBtcS1tYXgoNDgwcHgpIHtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIGZvbnQtc2l6ZTogMjZweDtcclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBtcS1tYXgoNDAwcHgpIHtcclxuICAgICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgfVxyXG5cclxuICAgIC5kYXkge1xyXG4gICAgICB3aWR0aDogMTUwcHg7XHJcbiAgICAgIGZvbnQtc2l6ZTogODBweDtcclxuICAgICAgLy8gZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgICAgbGluZS1oZWlnaHQ6IDAuOTtcclxuICAgICAgbWFyZ2luOiAwIGF1dG8gNzdweDtcclxuICAgICAgQGluY2x1ZGUgdGV4dC1ncmFkaWVudCgxODBkZWcsICNmYmY2ZTIsICNmN2I5NDEpO1xyXG4gICAgICBAaW5jbHVkZSBtcS1tYXgoMTEwMHB4KSB7IFxyXG4gICAgICAgIGZvbnQtc2l6ZTogNjBweDtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAwcHg7XHJcbiAgICAgIH1cclxuICAgICAgc3BhbiB7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuZGF0ZSB7XHJcbiAgICAgIGZvbnQtc2l6ZTogMjhweDtcclxuICAgICAgbGluZS1oZWlnaHQ6IDEuMTtcclxuICAgICAgY29sb3I6ICNmZmY7XHJcbiAgICAgIG1hcmdpbjogMCAwIDIwcHg7XHJcbiAgICAgIEBpbmNsdWRlIG1xLW1heCgxMTAwcHgpIHtcclxuICAgICAgICBmb250LXNpemU6IDIycHg7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAudGltZSB7XHJcbiAgICAgIEBpbmNsdWRlIHRleHQtZGVjb3IoI2ZiZjdlNSwgMzZweCwgbnVsbCwgbnVsbCwgNjAwKTtcclxuICAgICAgLy8gbGluZS1oZWlnaHQ6IDEuNjtcclxuICAgICAgZm9udC1mYW1pbHk6ICdUaW1lIE5ldyBSb21hbic7XHJcbiAgICAgIHBhZGRpbmc6IDAgNyUgMCAzJTtcclxuICAgICAgQGluY2x1ZGUgbXEtbWF4KDExMDBweCkge1xyXG4gICAgICAgIHdpZHRoOiAzNSU7XHJcbiAgICAgICAgZm9udC1zaXplOiAyNnB4O1xyXG4gICAgICAgIHBhZGRpbmctdG9wOiAxNnB4O1xyXG4gICAgICB9XHJcbiAgICAgIEBpbmNsdWRlIG1xLW1heCg3NjhweCkge1xyXG4gICAgICAgIHBhZGRpbmctdG9wOiAyNnB4O1xyXG4gICAgICAgIC8vIGZvbnQtc2l6ZTogMjJweDtcclxuICAgICAgfVxyXG4gICAgICBAaW5jbHVkZSBtcS1tYXgoNDgwcHgpIHtcclxuICAgICAgICBwYWRkaW5nLXRvcDogMTVweDtcclxuICAgICAgICBwYWRkaW5nLXJpZ2h0OiA0MHB4O1xyXG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcclxuICAgICAgICBmb250LXNpemU6IDIycHg7XHJcbiAgICAgIH1cclxuICAgICAgQGluY2x1ZGUgbXEtbWF4KDQwMHB4KSB7XHJcbiAgICAgICAgcGFkZGluZy1yaWdodDogMjBweDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi10YWJsZSB7XHJcbiAgICB3aWR0aDogNjMwcHg7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1mbG93OiBjb2x1bW47XHJcbiAgICBjb2xvcjogIzE1MWIzYjtcclxuICAgIGZvbnQtc2l6ZTogMTZweDtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIG1hcmdpbjogMTY1cHggMCAwIDEzMHB4O1xyXG4gICAgaGVpZ2h0OiA0MDBweDtcclxuICAgIEBpbmNsdWRlIG1xLW1heCgxMTAwcHgpIHtcclxuICAgICAgbWFyZ2luOiAwIGF1dG87XHJcbiAgICAgIHdpZHRoOiA5MCU7XHJcbiAgICAgIGhlaWdodDogNjUlO1xyXG4gICAgICBAaW5jbHVkZSBtcS1tYXgoNDgwcHgpIHtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICBmb250LXNpemU6IDE0cHg7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB0aGVhZCB7XHJcbiAgICAgIFxyXG4gICAgICBmb250LWZhbWlseTogXCJSb2JvdG8gU2xhYlwiO1xyXG4gICAgICBmb250LXNpemU6IDE3cHg7XHJcbiAgICAgIC8vIGJhY2tncm91bmQ6IHVybCguLi9pbWFnZXMvdGFibGUtaGVhZC1iZy5qcGcpIG5vLXJlcGVhdCAwIDAgLyAxMDAlIDEwMCU7XHJcbiAgICAgIGJhY2tncm91bmQ6ICM0NTRkN2Q7XHJcbiAgICAgIEBpbmNsdWRlIG1xLW1heCg0ODBweCkge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICAgICAgfVxyXG4gICAgICB0ciB0ZCB7XHJcbiAgICAgICAgLy8gQGluY2x1ZGUgdGV4dC1zdHJva2UoM3B4LCAwZGVnLCAjZDA0NDI0ICwgI2QwNDQyNCk7XHJcbiAgICAgICAgY29sb3I6ICNjM2ViZmE7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB0ciB7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICBkaXNwbGF5OiB0YWJsZTtcclxuICAgICAgdGFibGUtbGF5b3V0OiBmaXhlZDtcclxuXHJcbiAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XHJcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4ICNkNGU2ZjU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRkIHtcclxuICAgICAgICBwYWRkaW5nOiA1cHggNXB4IDJweDtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgY29sb3I6ICMxNTFiM2I7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB0Ym9keSB7XHJcbiAgICAgIGZsZXg6IDEgMSBhdXRvO1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgaGVpZ2h0OiA0MDBweDtcclxuICAgICAgQGluY2x1ZGUgc2Nyb2xsLWJhcigjNGU0NTQwLCAjZmZmLCA1cHgpO1xyXG4gICAgfVxyXG5cclxuICB9XHJcbn1cclxuXHJcblxyXG5cclxuXHJcbi8qLS0tIFBvcHVwIC0tLSovXHJcbi5wb3B1cCB7XHJcbiAgb3BhY2l0eTogMDtcclxuICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgdG9wOiAwO1xyXG4gIGxlZnQ6IDA7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgaGVpZ2h0OiAxMDB2aDtcclxuICB6LWluZGV4OiAxMDAxO1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICB2aXNpYmlsaXR5OiBoaWRkZW47XHJcbiAgdHJhbnNpdGlvbjogYWxsIDAuNXM7XHJcblxyXG4gIC5wb3B1cC1iZyB7XHJcbiAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgMCAwIDAgMCk7XHJcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNyk7XHJcbiAgfVxyXG5cclxuICAmLmFjdGl2ZSB7XHJcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xyXG4gICAgb3BhY2l0eTogMTtcclxuICAgIC8vIGFuaW1hdGlvbjogZ3Jvd0luIDAuNXMgZWFzZS1pbi1vdXQ7XHJcbiAgICAvLyAtd2Via2l0LWFuaW1hdGlvbjogZ3Jvd0luIDAuNXMgZWFzZS1pbi1vdXQ7XHJcbiAgfVxyXG5cclxuICAmLWNsb3NlIHtcclxuICAgIHBhZGRpbmc6IDBweDtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgcmlnaHQ6IDAlO1xyXG4gICAgdG9wOiAtNjVweDtcclxuICAgIC8vIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcclxuXHJcbiAgICAmOmhvdmVyIHtcclxuICAgICAgZmlsdGVyOiBicmlnaHRuZXNzKDE1MCUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi1jb250ZW50IHtcclxuICAgIHotaW5kZXg6IDI7XHJcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xyXG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3M7XHJcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIH1cclxuXHJcbiAgJi5hY3RpdmUgJi1jb250ZW50IHtcclxuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XHJcbiAgICBwb2ludGVyLWV2ZW50czogYWxsO1xyXG4gIH1cclxufVxyXG4ucG9wdXAtdGl0bGUge1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICBtYXJnaW46IDAgMCAyMHB4O1xyXG59XHJcbi5wb3B1cC10aGVsZSB7XHJcbiAgdGV4dC1hbGlnbjoganVzdGlmeTtcclxuICB3aWR0aDogNTgwcHg7XHJcbiAgaGVpZ2h0OiA1OTVweDtcclxuICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgYmFja2dyb3VuZDogdXJsKC4uL2ltYWdlcy9wb3B1cC1iZy5wbmcpIG5vLXJlcGVhdCBjZW50ZXIgdG9wLzEwMCUgMTAwJTtcclxuICBwYWRkaW5nOiA1JSAzJTtcclxuXHJcbiAgQGluY2x1ZGUgbXEtbWF4KDc4MHB4KSB7XHJcbiAgICBwYWRkaW5nOiA3JSA3JTtcclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIG1xLW1heCg0ODBweCkge1xyXG4gICAgcGFkZGluZzogMTIlIDEwJSAxNSUgMTIlO1xyXG4gICAgaGVpZ2h0OiA1NTBweDtcclxuICB9XHJcblxyXG4gIC5wb3B1cC1jbG9zZSB7XHJcbiAgICAvLyByaWdodDogLTYlO1xyXG4gICAgLy8gdG9wOiAxNy41JTtcclxuICB9XHJcblxyXG4gIHRhYmxlIHtcclxuICAgIGZvbnQtc2l6ZTogMTZweDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcclxuXHJcbiAgICB0aGVhZCB7XHJcbiAgICAgIGJhY2tncm91bmQ6ICMwMDA7XHJcblxyXG4gICAgICB0ZCB7XHJcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgICAgICBjb2xvcjogI2ZmZmNlZjtcclxuICAgICAgICBwYWRkaW5nOiA1cHg7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGJvZHkgdHI6bnRoLWNoaWxkKG9kZCkge1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmYmVhO1xyXG5cclxuICAgIH1cclxuXHJcbiAgICB0Ym9keSB0cjpudGgtY2hpbGQoZXZlbikge1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmYmVhO1xyXG4gICAgfVxyXG5cclxuICAgIHRkIHtcclxuICAgICAgYm9yZGVyOiBzb2xpZCAxcHggIzMzMztcclxuICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XHJcbiAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgICAgIGNvbG9yOiAjMDAwO1xyXG4gICAgICBwYWRkaW5nOiA1cHg7XHJcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5TdGF0aWNNYWluIHtcclxuICAgIGZvbnQtc2l6ZTogMTZweDtcclxuICAgIGNvbG9yOiAjNjk0MTJkO1xyXG4gICAgKiB7XHJcbiAgICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuLnBvcHVwLXNjcm9sbCB7XHJcbiAgaGVpZ2h0OiAxMDAlO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIHBhZGRpbmctcmlnaHQ6IDEwcHg7XHJcbiAgQGluY2x1ZGUgc2Nyb2xsLWJhcigjNTI1MjUyLCAjMmQyZDJkLCAzcHgpO1xyXG5cclxufVxyXG4uYmdvdmVyIHtcclxuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNyk7XHJcbiAgcG9zaXRpb246IGZpeGVkO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogMTAwJTtcclxuICB6LWluZGV4OiAxMDA7XHJcbiAgbGVmdDogMDtcclxuICB0b3A6IDA7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgYm90dG9tOiAwO1xyXG59XHJcbi8qKioqKioqKioqXHJcbiogWm9vbSBpbiAqXHJcbioqKioqKioqKioqL1xyXG5ALXdlYmtpdC1rZXlmcmFtZXMgem9vbUluIHtcclxuICAwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoNSk7XHJcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDUpO1xyXG4gICAgb3BhY2l0eTogMDtcclxuICB9XHJcblxyXG4gIDgwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoLjgpO1xyXG4gICAgdHJhbnNmb3JtOiBzY2FsZSguOCk7XHJcbiAgICBvcGFjaXR5OiAuODtcclxuICB9XHJcblxyXG4gIDgwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoLjgpO1xyXG4gICAgdHJhbnNmb3JtOiBzY2FsZSguOCk7XHJcbiAgfVxyXG5cclxuICA5MCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEuMSk7XHJcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7XHJcbiAgfVxyXG5cclxuICAxMDAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxKTtcclxuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XHJcbiAgICBvcGFjaXR5OiAxO1xyXG4gIH1cclxufVxyXG5cclxuQGtleWZyYW1lcyB6b29tSW4ge1xyXG4gIDAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSg1KTtcclxuICAgIHRyYW5zZm9ybTogc2NhbGUoNSk7XHJcbiAgICBvcGFjaXR5OiAwO1xyXG4gIH1cclxuXHJcbiAgODAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSguOCk7XHJcbiAgICB0cmFuc2Zvcm06IHNjYWxlKC44KTtcclxuICAgIG9wYWNpdHk6IC44O1xyXG4gIH1cclxuICA4MCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKC44KTtcclxuICAgIHRyYW5zZm9ybTogc2NhbGUoLjgpO1xyXG4gIH1cclxuICA5MCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEuMSk7XHJcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7XHJcbiAgfVxyXG4gIDEwMCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpO1xyXG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcclxuICAgIG9wYWNpdHk6IDE7XHJcbiAgfSBcclxufVxyXG5cclxuXHJcbi56b29tSW4ge1xyXG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSg1KTtcclxuICAtbXMtdHJhbnNmb3JtOiBzY2FsZSg1KTtcclxuICB0cmFuc2Zvcm06IHNjYWxlKDUpO1xyXG4gIG9wYWNpdHk6IDA7XHJcbn1cclxuXHJcbi56b29tSW4uZ28ge1xyXG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHpvb21JbjtcclxuICBhbmltYXRpb24tbmFtZTogem9vbUluO1xyXG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogLjVzO1xyXG59XHJcblxyXG5cclxuLyoqKioqKioqXHJcbiogU2hha2VVcCAqXHJcbioqKioqKioqL1xyXG5ALXdlYmtpdC1rZXlmcmFtZXMgc2hha2VVcDIge1xyXG5cclxuICAwJSxcclxuICAxMCUsXHJcbiAgMjAlLFxyXG4gIDMwJSxcclxuICAxMDAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xyXG4gIH1cclxuXHJcblxyXG4gIDUwJSxcclxuICA3MCUsXHJcbiAgOTAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMHB4KTtcclxuICB9XHJcblxyXG4gIDQwJSxcclxuICA2MCUsXHJcbiAgODAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwcHgpO1xyXG4gIH1cclxufVxyXG5cclxuQGtleWZyYW1lcyBzaGFrZVVwMiB7XHJcblxyXG4gIDAlLFxyXG4gIDUwJSxcclxuICAxMDAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xyXG4gIH1cclxuXHJcblxyXG4gIDcwJSxcclxuICA5MCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwcHgpO1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMHB4KTtcclxuICB9XHJcblxyXG4gIDYwJSxcclxuICA4MCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTBweCk7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTBweCk7XHJcbiAgfVxyXG59XHJcblxyXG4uc2hha2VVcDIuZ28ge1xyXG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHNoYWtlVXAyO1xyXG4gIGFuaW1hdGlvbi1uYW1lOiBzaGFrZVVwMjtcclxufVxyXG5cclxuXHJcbkAtd2Via2l0LWtleWZyYW1lcyBsYW50ZXJuYSB7XHJcbiAgMCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKSBzY2FsZSgxKTtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApIHNjYWxlKDEpO1xyXG4gIH1cclxuXHJcbiAgMTAwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC0yMHB4LCAtNDBweCkgc2NhbGUoMS4xKTtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0yMHB4LCAtNDBweCkgc2NhbGUoMS4xKTtcclxuICB9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgbGFudGVybmEge1xyXG4gIDAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCkgc2NhbGUoMSk7XHJcbiAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCkgc2NhbGUoMSk7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKSBzY2FsZSgxKTtcclxuICB9XHJcblxyXG4gIDEwMCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjBweCwgLTQwcHgpIHNjYWxlKDEuMSk7XHJcbiAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTIwcHgsIC00MHB4KSBzY2FsZSgxLjEpO1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTIwcHgsIC00MHB4KSBzY2FsZSgxLjEpO1xyXG4gIH1cclxufVxyXG4iXX0= */
