@import url(../../bower_components/normalize-css/normalize.css);
@import url(../../bower_components/font-awesome/css/font-awesome.css);
@import url("https://fonts.googleapis.com/css?family=Roboto:300,400,400i,500,700,900");
html {
  box-sizing: border-box; }

*, *::after, *::before {
  box-sizing: inherit; }

body {
  margin: 0;
  color: #414141;
  font-family: "Roboto", sans-serif;
  background-color: #f3f3f3;
  font-size: 16px;
  line-height: 1.5; }
  @media screen and (max-width: 768px) {
    body {
      margin-top: 60px !important; } }

h1, h2, h3, h4, h5, h6 {
  margin: 0; }

h1 {
  text-transform: uppercase;
  font-size: 25px;
  font-weight: 900;
  line-height: 30px; }
  @media screen and (max-width: 480px) {
    h1 {
      font-size: 21px; } }

h2 {
  text-transform: uppercase;
  font-size: 22px;
  font-weight: 900;
  line-height: 30px; }
  @media screen and (max-width: 480px) {
    h2 {
      font-size: 19px; } }

img {
  display: block; }

hr {
  height: 1px;
  background-color: black;
  border: none;
  margin: 0; }

table {
  border-collapse: collapse; }

p {
  margin: 0 0 20px 0; }

a {
  color: #a9110c;
  outline: none;
  -webkit-transition: color 0.2s;
  -moz-transition: color 0.2s;
  transition: color 0.2s;
  text-decoration: none;
  cursor: pointer; }
  a:hover {
    color: #f0312b; }

b, strong {
  font-weight: bold; }

ul {
  margin-top: 0;
  margin-bottom: 20px; }

small {
  font-size: 85%; }

input {
  margin-bottom: 20px;
  height: auto;
  padding: 13px 20px;
  width: 100%;
  border: 0;
  background-color: #d5d5d5;
  font-family: "Roboto", sans-serif;
  font-size: 16px;
  font-weight: normal;
  line-height: 23px;
  border-radius: 0;
  outline: 0; }
  input:focus {
    box-shadow: none !important; }
  input::-webkit-input-placeholder {
    color: #565a5c;
    font-weight: 300; }
  input::-moz-placeholder {
    color: #565a5c;
    font-weight: 300; }
  input:-moz-placeholder {
    color: #565a5c;
    font-weight: 300; }
  input:-ms-input-placeholder {
    color: #565a5c;
    font-weight: 300; }
  input.error {
    border: 1px solid #a9110c; }

textarea {
  margin-bottom: 20px;
  height: 200px;
  padding: 13px 20px;
  width: 100%;
  resize: none;
  border: 0;
  background-color: #d5d5d5;
  font-family: "Roboto", sans-serif;
  font-size: 16px;
  font-weight: normal;
  border-radius: 0;
  outline: 0; }
  textarea:focus {
    box-shadow: none !important; }
  textarea::-webkit-input-placeholder {
    color: #565a5c;
    font-weight: 300; }
  textarea::-moz-placeholder {
    color: #565a5c;
    font-weight: 300; }
  textarea:-moz-placeholder {
    color: #565a5c;
    font-weight: 300; }
  textarea:-ms-input-placeholder {
    color: #565a5c;
    font-weight: 300; }

label {
  font-size: 16px;
  font-weight: 500;
  line-height: 34px; }

select {
  width: 100%;
  height: 49px; }

span.input-validation-error {
  color: #a9110c;
  position: relative;
  top: -15px; }

.helper-collumns2 {
  -webkit-columns: 2;
  -moz-columns: 2;
  columns: 2;
  -webkit-column-gap: 30px;
  -moz-column-gap: 30px;
  column-gap: 30px; }
  @media screen and (max-width: 480px) {
    .helper-collumns2 {
      -webkit-columns: 1;
      -moz-columns: 1;
      columns: 1; } }

.helper-collumns4 {
  -webkit-columns: 4;
  -moz-columns: 4;
  columns: 4;
  -webkit-column-gap: 30px;
  -moz-column-gap: 30px;
  column-gap: 30px; }
  @media screen and (max-width: 480px) {
    .helper-collumns4 {
      -webkit-columns: 1;
      -moz-columns: 1;
      columns: 1; } }

.helper-relative {
  position: relative; }

.banner {
  position: relative;
  margin-bottom: 50px;
  height: 420px;
  background-color: transparent;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover; }
  .banner-content {
    position: relative;
    height: 100%; }
  .banner-overlay {
    position: absolute;
    overflow: hidden;
    z-index: 100;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    font-size: 0; }
    .banner-overlay:before {
      content: '';
      display: inline-block;
      height: 100%;
      vertical-align: middle; }
    .banner-overlay > * {
      display: inline-block;
      vertical-align: middle;
      font-size: 0; }
    .banner-overlay > div {
      width: 100%; }
    .banner-overlay-box {
      padding: 20px;
      max-width: 45%;
      font-family: "Roboto", sans-serif;
      font-weight: 300;
      line-height: 1.1;
      color: white;
      font-size: 45px;
      background-color: rgba(38, 36, 36, 0.9);
      box-shadow: 5px -5px 0px 0px rgba(255, 255, 255, 0.75); }
    .banner-overlay-text {
      margin-top: 16px;
      display: block;
      font-size: 16px;
      font-weight: 300;
      line-height: 1.5; }
      .banner-overlay-text:first-child {
        margin-top: 0; }
    .banner-overlay .button {
      margin-bottom: 0; }
  .banner-mobileimage {
    display: none;
    background-color: transparent;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover; }
  @media screen and (max-width: 996px) {
    .banner {
      height: 400px; }
      .banner-overlay {
        font-size: 0; }
        .banner-overlay:before {
          content: '';
          display: inline-block;
          height: 100%;
          vertical-align: middle; }
        .banner-overlay > * {
          display: inline-block;
          vertical-align: middle;
          font-size: 0; }
        .banner-overlay-box {
          max-width: 62%;
          font-size: 40px; } }
  @media screen and (max-width: 768px) {
    .banner {
      height: 360px; }
      .banner-overlay {
        font-size: 0; }
        .banner-overlay:before {
          content: '';
          display: inline-block;
          height: 100%;
          vertical-align: middle; }
        .banner-overlay > * {
          display: inline-block;
          vertical-align: middle;
          font-size: 0; }
        .banner-overlay-box {
          max-width: 88%;
          font-size: 34px;
          line-height: 1.2; } }
  @media screen and (max-width: 480px) {
    .banner {
      height: 300px; }
      .banner-content {
        position: static; }
      .banner-overlay-box {
        vertical-align: bottom;
        max-width: 100%;
        width: 100%;
        font-size: 24px;
        box-shadow: none;
        padding: 20px 10px; } }

.title {
  font-size: 30px;
  color: #414141;
  text-transform: uppercase;
  font-weight: normal;
  line-height: 58px; }
  .title--narrow {
    line-height: 35px;
    margin-bottom: 20px; }
  .title--section {
    text-transform: none;
    font-size: 25px;
    font-weight: 300;
    line-height: 50px; }

.linkbox {
  position: relative;
  display: block;
  margin-bottom: 20px; }
  .linkbox:before {
    position: absolute;
    display: block;
    content: '';
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    background-color: rgba(0, 0, 0, 0.2);
    -webkit-transition: background-color, 0.2s;
    -moz-transition: background-color, 0.2s;
    transition: background-color, 0.2s; }
  .linkbox-image {
    width: 100%; }
  .linkbox-text {
    position: absolute;
    left: 0;
    bottom: 20px;
    width: 100%;
    padding-left: 20px;
    padding-right: 41px;
    font-size: 25px;
    font-weight: 900;
    color: white;
    display: inline-block;
    -webkit-transition: bottom, 0.2s;
    -moz-transition: bottom, 0.2s;
    transition: bottom, 0.2s; }
    .linkbox-text:after {
      display: inline-block;
      vertical-align: middle;
      margin-left: 12px;
      content: '';
      width: 19px;
      height: 19px;
      background: url(/img/arrow_right.svg) no-repeat 0 0;
      background-size: 19px 19px;
      margin-right: -31px;
      margin-top: -3px; }
  .linkbox:hover:before {
    background-color: rgba(0, 0, 0, 0.3); }
  .linkbox:hover .linkbox-text {
    bottom: 40px; }
  @media screen and (max-width: 768px) {
    .linkbox-text {
      line-height: 1.2; } }

.productbox {
  display: block;
  padding: 10px 10px 16px 10px;
  margin-bottom: 20px;
  text-align: center;
  color: #414141;
  font-weight: 300;
  text-decoration: none;
  background-color: white;
  box-shadow: 0 0 6px 0 transparent;
  -webkit-transition: box-shadow, 0.2s;
  -moz-transition: box-shadow, 0.2s;
  transition: box-shadow, 0.2s; }
  .productbox--youtube .productbox-imagewrapper:before {
    position: absolute;
    content: '';
    top: calc(50% - 33px);
    left: calc(50% - 38px);
    width: 76px;
    height: 66px;
    background: url(/img/youtube.svg) no-repeat 0 0; }
  .productbox--wide {
    padding: 0;
    margin-bottom: 10px; }
    .productbox--wide::after {
      clear: both;
      content: "";
      display: block; }
    .productbox--wide .productbox-imagewrapper {
      float: left;
      max-width: 30%;
      margin-right: 20px;
      margin-bottom: 0; }
    .productbox--wide .productbox-content {
      text-align: left;
      padding: 15px 10px 15px 0;
      overflow: hidden; }
  .productbox-date {
    display: block;
    margin-bottom: 7px;
    font-size: 12px;
    font-weight: normal;
    color: #a9110c; }
  .productbox-imagewrapper {
    position: relative;
    margin-bottom: 20px; }
  .productbox img {
    display: block;
    max-width: 100%;
    margin: 0 auto; }
  .productbox-title {
    display: block;
    font-weight: 500;
    margin-bottom: 6px; }
  .productbox-content {
    min-height: 102px; }
  .productbox:hover {
    box-shadow: 0 0 6px 0 rgba(38, 36, 36, 0.2);
    color: #414141; }
  @media screen and (max-width: 480px) {
    .productbox-content {
      min-height: 0; }
    .productbox--wide {
      padding-top: 10px; }
      .productbox--wide .productbox-imagewrapper {
        float: none;
        max-width: 100%;
        margin-right: 0; }
      .productbox--wide .productbox-content {
        padding: 15px 10px 15px 10px;
        overflow: hidden; } }

.profilebox {
  display: block;
  margin-bottom: 20px;
  background-color: white; }
  .profilebox img {
    display: block;
    max-width: 100%;
    margin: 0 auto;
    width: 100%; }
  .profilebox-name {
    display: block;
    font-size: 16px;
    font-weight: 500; }
  .profilebox-title {
    display: block;
    font-size: 14px;
    font-weight: 300;
    color: #565a5c; }
  .profilebox-content {
    min-height: 165px;
    padding: 20px 10px;
    text-align: center;
    color: #414141;
    font-weight: 300;
    font-size: 16px;
    line-height: 1.55; }
  @media screen and (max-width: 480px) {
    .profilebox-content {
      min-height: 0; } }

.quote {
  position: relative;
  padding: 22px 20px;
  font-style: italic;
  font-weight: normal; }
  .quote:before {
    position: absolute;
    left: 0;
    top: 15px;
    content: '';
    width: 15px;
    height: 11px;
    background: url("img/quote_start.png") no-repeat 0 0;
    background-size: 15px 11px; }
  .quote:after {
    position: absolute;
    right: 0;
    bottom: 15px;
    content: '';
    width: 16px;
    height: 11px;
    background: url("img/quote_end.png") no-repeat 0 0;
    background-size: 16px 11px; }

button.button, a.button, span.button > a, .button-extender, .contour .btn {
  display: inline-block;
  margin-bottom: 20px;
  padding: 14px 20px;
  line-height: 23px;
  border: none;
  font-family: "Roboto", sans-serif;
  font-weight: bold;
  font-size: 14px;
  text-align: center;
  text-decoration: none;
  text-transform: uppercase;
  color: white;
  background-color: #a9110c;
  border-radius: 0;
  cursor: pointer;
  -webkit-transition: background-color 0.2s;
  -moz-transition: background-color 0.2s;
  transition: background-color 0.2s; }
  button.button:hover, a.button:hover, span.button > a:hover, .button-extender:hover, .contour .btn:hover {
    color: white;
    background-color: #700b08; }
  button.button--arrow:after, a.button--arrow:after, span.button > a--arrow:after, .button-extender--arrow:after {
    display: inline-block;
    vertical-align: middle;
    margin-top: -2px;
    margin-left: 12px;
    content: '';
    width: 14px;
    height: 14px;
    background: url(/img/arrow_right.svg) no-repeat 0 0;
    background-size: 14px 14px; }
  button.button--wide, a.button--wide, span.button > a--wide, .button-extender--wide {
    width: 100%; }

.viewer-image {
  margin-bottom: 20px; }
  .viewer-image-slide {
    position: relative;
    opacity: 1;
    -webkit-transition: opacity 0.2s;
    -moz-transition: opacity 0.2s;
    transition: opacity 0.2s; }
    .viewer-image-slide:hover {
      opacity: 0.8 !important; }
    .viewer-image-slide img {
      margin: 0 auto;
      height: auto;
      max-width: 100%; }
    .viewer-image-slide:before {
      position: absolute;
      content: '';
      bottom: 0;
      right: 0;
      width: 37px;
      height: 37px;
      background: rgba(255, 255, 255, 0.8) url(/img/magnifier.svg) no-repeat center center; }
    .viewer-image-slide--youtube:after {
      position: absolute;
      content: '';
      top: calc(50% - 33px);
      left: calc(50% - 38px);
      width: 76px;
      height: 66px;
      background: url(/img/youtube.svg) no-repeat 0 0;
      background-size: 76px 66px; }

.viewer-navigation img {
  height: auto;
  width: 100%; }

.viewer-navigation-slide {
  position: relative;
  margin: 0 10px;
  opacity: 1;
  cursor: pointer;
  -webkit-transition: opacity 0.2s;
  -moz-transition: opacity 0.2s;
  transition: opacity 0.2s; }
  .viewer-navigation-slide:hover {
    opacity: .8; }
  .viewer-navigation-slide:focus {
    outline: 0; }
  .viewer-navigation-slide.slick-current {
    opacity: .8; }
  .viewer-navigation-slide--youtube:before {
    position: absolute;
    content: '';
    left: calc(50% - 22px);
    top: calc(50% - 19px);
    width: 44px;
    height: 38px;
    background: url(/img/youtube.svg) no-repeat 0 0;
    background-size: 44px 38px; }

.viewer-navigation .slick-list {
  margin: 0 -10px; }

.accordion {
  margin-bottom: 20px;
  display: none; }
  .accordion-title {
    display: block;
    margin-top: 2px;
    border: none;
    padding: 0 20px;
    text-align: center;
    font-size: 18px;
    line-height: 50px;
    font-weight: 900;
    color: #414141;
    background-color: #d5d5d5;
    cursor: pointer; }
    .accordion-title:focus {
      outline: 0; }
  .accordion-content {
    padding: 30px;
    background-color: #ebebeb; }
  .accordion p:last-child {
    margin-bottom: 0; }
  @media screen and (max-width: 768px) {
    .accordion {
      display: block; } }

.tabs {
  margin-bottom: 20px; }
  .tabs > ul {
    list-style-type: none;
    margin: 0;
    padding: 0; }
    .tabs > ul::after {
      clear: both;
      content: "";
      display: block; }
    .tabs > ul li {
      display: block;
      float: left;
      width: 100%;
      border-right: 1px solid #ebebeb; }
      .tabs > ul li:last-child {
        border-right: 0; }
      .tabs > ul li a {
        display: block;
        padding: 0 20px;
        text-align: center;
        font-size: 18px;
        line-height: 50px;
        font-weight: 900;
        color: #414141;
        background-color: #d5d5d5;
        text-decoration: none; }
      .tabs > ul li:focus {
        outline: 0; }
      .tabs > ul li.ui-tabs-active a {
        background-color: #ebebeb; }
  .tabs-content {
    padding: 20px 30px;
    background-color: #ebebeb; }
  .tabs--2 > ul li {
    width: 50%; }
  .tabs--3 > ul li {
    width: 33.333%; }
  .tabs--4 > ul li {
    width: 25%; }
  @media screen and (max-width: 768px) {
    .tabs {
      display: none; } }

.tablebox {
  margin-bottom: 20px; }
  .tablebox table {
    width: 100%;
    height: auto !important; }
    .tablebox table img {
      max-width: 100%; }
    .tablebox table tr td {
      padding: 13px 5px;
      line-height: 23px; }
      .tablebox table tr td:first-child {
        padding-left: 20px; }
      .tablebox table tr td:last-child {
        padding-right: 20px; }
    .tablebox table tr:nth-child(n+2) td {
      background-color: #fafafa;
      font-size: 14px;
      font-weight: 300;
      color: #414141;
      vertical-align: top; }
    .tablebox table tr:first-child td {
      background-color: #d5d5d5;
      font-size: 14px;
      font-weight: 500;
      color: #565a5c;
      text-align: left; }
  @media screen and (max-width: 480px) {
    .tablebox table, .tablebox thead, .tablebox tbody, .tablebox th, .tablebox td, .tablebox tr {
      display: block; }
    .tablebox tr:first-child {
      position: absolute;
      top: -9999px;
      left: -9999px; }
    .tablebox tr {
      border-top: 1px solid #ebebeb;
      height: auto !important; }
      .tablebox tr td {
        border: 0 !important;
        position: relative;
        padding-top: 6px !important;
        padding-left: 45% !important;
        width: 100% !important;
        text-align: left !important; }
        .tablebox tr td a {
          padding: 0; }
        .tablebox tr td:before {
          position: absolute;
          top: 6px;
          left: 6px;
          width: 40%;
          padding-right: 10px;
          font-weight: bold;
          content: attr(data-label);
          line-height: 17px; }
        .tablebox tr td:first-child {
          padding-top: 14px !important; }
          .tablebox tr td:first-child:before {
            top: 14px; }
        .tablebox tr td:last-child {
          padding-bottom: 14px !important; }
      .tablebox tr:last-child {
        border-bottom: 1px solid #ebebeb; } }

.mainlink {
  font-size: 14px;
  line-height: 32px;
  font-weight: bold;
  text-transform: uppercase;
  opacity: 1;
  white-space: nowrap;
  color: #a9110c !important;
  -webkit-transition: opacity 0.2s;
  -moz-transition: opacity 0.2s;
  transition: opacity 0.2s; }
  .mainlink:hover {
    color: #a9110c !important;
    opacity: .75; }
  .mainlink--arrow:after {
    display: inline-block;
    vertical-align: middle;
    margin-top: -2px;
    margin-left: 12px;
    content: '';
    width: 14px;
    height: 14px;
    background: url(/img/arrow_right_red.svg) no-repeat 0 0;
    background-size: 14px 14px; }
  .mainlink--filter:before {
    display: inline-block;
    vertical-align: middle;
    margin-top: -2px;
    margin-right: 12px;
    content: '';
    width: 18px;
    height: 12px;
    background: url(/img/filter.svg) no-repeat 0 0;
    background-size: 18px 12px; }
  .mainlink--white {
    color: white !important; }
    .mainlink--white:hover {
      color: white !important; }
    .mainlink--white.mainlink--arrow:after {
      background: url(/img/arrow_right.svg) no-repeat 0 0;
      background-size: 14px 14px; }
  .mainlink--dark {
    color: #414141 !important; }
    .mainlink--dark:hover {
      color: #414141 !important; }

.chosen-container {
  margin-bottom: 20px !important;
  font-size: 16px;
  font-weight: 300;
  text-align: left;
  width: 100% !important; }
  .chosen-container.error {
    border: 1px solid #a9110c; }
  .chosen-container:last-child {
    margin-bottom: 0 !important; }
  .chosen-container .chosen-single {
    height: 49px;
    outline: none !important;
    box-shadow: none;
    border-radius: 0;
    background: #d5d5d5 !important;
    border: 0 !important;
    box-shadow: none !important;
    padding: 0 20px; }
    .chosen-container .chosen-single span {
      line-height: 49px;
      color: #414141; }
    .chosen-container .chosen-single div {
      width: 36px; }
      .chosen-container .chosen-single div b {
        background: url("/img/chosen/chosen-sprite.png") no-repeat 4px 18px; }
    .chosen-container .chosen-single.chosen-default span {
      color: #565a5c; }
  .chosen-container.chosen-with-drop .chosen-single div b {
    background-position: -30px 17px; }
  .chosen-container .chosen-drop {
    margin-bottom: 20px;
    border: 0;
    background: #d5d5d5;
    box-shadow: none;
    font-size: 16px !important;
    border-radius: 0; }
    .chosen-container .chosen-drop ul {
      padding: 0;
      margin: 0; }
    .chosen-container .chosen-drop li {
      padding: 10px 20px !important; }
    .chosen-container .chosen-drop li.highlighted {
      color: #414141;
      background: none !important;
      background-color: #bcbcbc !important; }
  @media only screen and (-webkit-min-device-pixel-ratio: 1.5), only screen and (min-resolution: 144dpi), only screen and (min-resolution: 1.5dppx) {
    .chosen-container-single .chosen-single div b {
      background-image: url("/img/chosen/chosen-sprite@2x.png") !important;
      background-position: 6px 17px;
      background-size: 52px 37px !important;
      background-repeat: no-repeat !important; }
    .chosen-container.chosen-with-drop .chosen-single div b {
      background-position: -25px 16px; } }

.checkbox {
  display: inline-block;
  margin: 6px 0 20px 0; }
  .checkbox input[type="checkbox"] {
    display: none; }
  .checkbox input[type="checkbox"] + label {
    display: inline-block;
    vertical-align: middle;
    line-height: 25px;
    cursor: pointer;
    font-family: "Roboto", sans-serif;
    font-weight: normal;
    font-size: 16px; }
  .checkbox input[type="checkbox"] + label span {
    margin: -2px 7px 0 0;
    display: inline-block;
    vertical-align: middle;
    width: 25px;
    height: 25px;
    border-radius: 0;
    border: 0;
    cursor: pointer;
    background-color: #d5d5d5; }
  .checkbox input[type="checkbox"]:checked + label span {
    background: #d5d5d5 url(/img/check.svg) center center no-repeat;
    border: none; }

.asidelink {
  position: fixed;
  z-index: 600;
  bottom: 20px;
  right: 20px;
  opacity: 1;
  -webkit-transition: opacity 0.2s;
  -moz-transition: opacity 0.2s;
  transition: opacity 0.2s;
  display: none; }
  .asidelink:hover {
    opacity: .8; }
  .asidelink--visible {
    display: block; }
  .asidelink--stick {
    position: absolute;
    top: -90px; }
  .asidelink--contact {
    right: 100px;
    z-index: 2; }

.footer {
  position: relative;
  background-color: #262424;
  font-size: 12px;
  font-weight: normal;
  line-height: 22px;
  color: #929292; }
  .footer-content {
    padding: 50px 0; }
  .footer a {
    color: #929292; }
    .footer a:hover {
      color: #797979; }
  .footer p {
    margin-bottom: 22px; }
  .footer-title {
    display: block;
    margin-bottom: 2px;
    font-size: 12px;
    font-weight: bold;
    color: white;
    text-transform: uppercase; }
  .footer-list {
    list-style-type: none;
    margin: 0 0 20px 0;
    padding: 0; }
  .footer hr {
    background-color: #505050; }
  .footer-footer {
    margin-top: 20px;
    font-size: 12px; }
    .footer-footer ul {
      list-style-type: none;
      margin: 0;
      padding: 0; }
      .footer-footer ul::after {
        clear: both;
        content: "";
        display: block; }
      .footer-footer ul li {
        float: left; }
        .footer-footer ul li:after {
          content: '|';
          margin-left: 15px;
          margin-right: 15px; }
        .footer-footer ul li:last-child:after {
          content: none; }
  @media screen and (max-width: 768px) {
    .footer-list {
      -webkit-column-gap: 10px;
      -moz-column-gap: 10px;
      column-gap: 10px; }
    .footer-content {
      padding: 30px 0; } }

.socials-item {
  display: inline-block;
  margin-right: 10px;
  opacity: 1;
  -webkit-transition: opacity 0.2s;
  -moz-transition: opacity 0.2s;
  transition: opacity 0.2s; }
  .socials-item:last-child {
    margin-right: 0; }
  .socials-item:hover {
    opacity: .8; }

.teaser {
  padding: 14px 0 12px 0;
  background-color: white;
  font-size: 16px;
  font-weight: 300;
  line-height: 32px;
  text-transform: uppercase; }
  .teaser span {
    margin-right: 30px; }

.hero {
  position: relative;
  padding: 16px 0;
  min-height: 134px;
  color: white;
  background: url(/img/hero/orange.jpg) no-repeat center center;
  background-size: cover; }
  .hero h1 {
    margin-top: 17px; }
  .hero-text {
    display: block;
    margin: 15px 0 10px 0; }
  .theme-floortools .hero {
    background-image: url(img/hero/dark_red.jpg); }
  .theme-powertools .hero {
    background-image: url(img/hero/light_red.jpg); }
  .theme-safety .hero {
    background-image: url(img/hero/blue.jpg); }
  .theme-machines .hero {
    background-image: url(img/hero/dark_blue.jpg); }
  .theme-injection .hero {
    background-image: url(img/hero/teal.jpg); }
  .theme-measure .hero {
    background-image: url(img/hero/green.jpg); }
  .theme-rols .hero {
    background-image: url(img/hero/orange.jpg); }
  .theme-floor .hero {
    background-image: url(img/hero/grey.jpg); }
  .theme-polish .hero {
    background-image: url(img/hero/pink.jpg); }

.breadcrumbs {
  font-size: 14px;
  color: white;
  font-weight: 300; }
  .breadcrumbs a {
    color: white; }
    .breadcrumbs a:hover {
      color: #f3f3f3; }
  .breadcrumbs ul {
    list-style-type: none;
    margin: 0;
    padding: 0; }
    .breadcrumbs ul::after {
      clear: both;
      content: "";
      display: block; }
    .breadcrumbs ul li {
      float: left; }
      .breadcrumbs ul li:after {
        display: inline-block;
        vertical-align: middle;
        content: '';
        width: 6px;
        height: 12px;
        background: url(/img/angle_right.svg) no-repeat 0 0;
        margin: 0 20px; }
      .breadcrumbs ul li:last-child {
        cursor: default;
        pointer-events: none; }
        .breadcrumbs ul li:last-child:after {
          content: none; }

.menu {
  font-size: 13px;
  font-weight: bold;
  line-height: 1;
  background-color: #ebebeb;
  overflow: hidden; }
  .menu--stick {
    position: fixed;
    z-index: 500;
    top: 0px;
    left: 0;
    right: 0; }
  .menu ul {
    margin: 0;
    padding: 0;
    list-style-type: none;
    display: table;
    width: 100%;
    height: 100%; }
    .menu ul li {
      display: table-cell;
      width: auto;
      height: 100%;
      text-align: center;
      text-transform: uppercase; }
      .menu ul li a {
        position: relative;
        display: block;
        vertical-align: middle;
        height: 100%;
        padding: 0 5px 0 5px;
        color: #414141;
        -webkit-transition: background-color 0.2s;
        -moz-transition: background-color 0.2s;
        transition: background-color 0.2s;
        font-size: 0; }
        .menu ul li a:before {
          content: '';
          display: inline-block;
          height: 100%;
          vertical-align: middle; }
        .menu ul li a > * {
          display: inline-block;
          vertical-align: middle;
          font-size: 13px; }
        .menu ul li a:after {
          position: absolute;
          content: '';
          bottom: 0;
          left: 0;
          width: 100%;
          height: 2px;
          background-color: transparent;
          -webkit-transition: background-color 0.2s;
          -moz-transition: background-color 0.2s;
          transition: background-color 0.2s; }
        .menu ul li a:hover {
          background-color: #e1e1e1; }
        .menu ul li a span {
          display: inline-block;
          line-height: 15px;
          text-align: left;
          padding: 15px 0 15px 20px;
          background: url(/img/hexa/dark_red_hexa.svg) no-repeat 0 center; }
      .menu ul li.menu-item--active a {
        background-color: #e1e1e1; }
      .menu ul li.menu-item--floortools a span {
        background-image: url(/img/hexa/dark_red_hexa.svg); }
      .menu ul li.menu-item--floortools a:hover:after, .menu ul li.menu-item--floortools.menu-item--active a:after {
        background-color: #941d22; }
      .menu ul li.menu-item--powertools a span {
        background-image: url(/img/hexa/light_red_hexa.svg); }
      .menu ul li.menu-item--powertools a:hover:after, .menu ul li.menu-item--powertools.menu-item--active a:after {
        background-color: #e0542f; }
      .menu ul li.menu-item--safety a span {
        background-image: url(/img/hexa/light_blue_hexa.svg); }
      .menu ul li.menu-item--safety a:hover:after, .menu ul li.menu-item--safety.menu-item--active a:after {
        background-color: #009fd2; }
      .menu ul li.menu-item--machines a span {
        background-image: url(/img/hexa/dark_blue_hexa.svg); }
      .menu ul li.menu-item--machines a:hover:after, .menu ul li.menu-item--machines.menu-item--active a:after {
        background-color: #035385; }
      .menu ul li.menu-item--injection a span {
        background-image: url(/img/hexa/green_hexa.svg); }
      .menu ul li.menu-item--injection a:hover:after, .menu ul li.menu-item--injection.menu-item--active a:after {
        background-color: #14ab92; }
      .menu ul li.menu-item--measure a span {
        background-image: url(/img/hexa/teal_hexa.svg); }
      .menu ul li.menu-item--measure a:hover:after, .menu ul li.menu-item--measure.menu-item--active a:after {
        background-color: #9ec83c; }
      .menu ul li.menu-item--rols a span {
        background-image: url(/img/hexa/orange_hexa.svg); }
      .menu ul li.menu-item--rols a:hover:after, .menu ul li.menu-item--rols.menu-item--active a:after {
        background-color: #ed9a36; }
      .menu ul li.menu-item--floor a span {
        background-image: url(/img/hexa/grey_hexa.svg); }
      .menu ul li.menu-item--floor a:hover:after, .menu ul li.menu-item--floor.menu-item--active a:after {
        background-color: #6d6c63; }
      .menu ul li.menu-item--polish a span {
        background-image: url(/img/hexa/pink_hexa.svg); }
      .menu ul li.menu-item--polish a:hover:after, .menu ul li.menu-item--polish.menu-item--active a:after {
        background-color: #d81667; }
  @media screen and (max-width: 1180px) {
    .menu ul li span {
      font-size: 13px; } }
  @media screen and (max-width: 996px) {
    .menu ul li span {
      font-size: 12px;
      line-height: 14px !important;
      background-image: none !important;
      padding-left: 0 !important; } }

.header {
  position: relative;
  background-color: white; }
  .header:after {
    position: absolute;
    z-index: 500;
    content: '';
    top: 0;
    right: 0;
    left: 50%;
    height: 30px;
    background-color: #262424; }
  .header-bar {
    position: relative;
    z-index: 600;
    margin-left: 20px;
    height: 30px;
    background-color: #262424;
    color: white;
    text-align: right;
    font-size: 12px;
    text-transform: uppercase; }
    .header-bar:before {
      position: absolute;
      content: '';
      left: -15px;
      border-bottom: 30px solid transparent;
      border-right: 15px solid #262424; }
    .header-bar a {
      color: white;
      opacity: 1;
      -webkit-transition: opacity 0.2s;
      -moz-transition: opacity 0.2s;
      transition: opacity 0.2s; }
      .header-bar a:hover {
        opacity: .95; }
    .header-bar-language {
      display: inline-block;
      vertical-align: top;
      line-height: 30px; }
      .header-bar-language img {
        display: inline-block;
        vertical-align: top;
        margin-top: 8px;
        margin-right: 5px; }
    .header-bar .submenu {
      line-height: 30px; }
    .header-bar-seperator {
      display: inline-block;
      vertical-align: top;
      margin: 13px 20px 0 20px; }
  .header-panel {
    margin: 15px 0;
    height: 40px;
    font-size: 12px;
    vertical-align: middle;
    text-align: center; }
    .header-panel span, .header-panel a {
      display: inline-block;
      margin: 11px 0 0 10px; }
      .header-panel span:first-child, .header-panel a:first-child {
        margin-left: 0 !important; }
    .header-panel a {
      font-weight: bold;
      padding-left: 25px;
      line-height: 20px; }
      .header-panel a.header-panel-link--phone {
        background: url(/img/mobile.svg) no-repeat 0 1px;
        padding-left: 20px; }
      .header-panel a.header-panel-link--mail {
        background: url(/img/email.svg) no-repeat 0 center;
        padding-left: 25px; }
      .header-panel a.header-panel-link--order {
        background: url(/img/order.svg) no-repeat 0 center;
        padding-left: 25px; }
  .header-logo {
    display: inline-block;
    margin-top: 21px; }
    .header-logo img {
      max-width: 100%;
      opacity: 1;
      -webkit-transition: opacity 0.2s;
      -moz-transition: opacity 0.2s;
      transition: opacity 0.2s; }
    .header-logo:hover img {
      opacity: .85; }
  .header .searchitem {
    margin: 15px 0 0 0; }
  @media screen and (max-width: 996px) {
    .header-panel span, .header-panel a {
      margin-left: 4px;
      padding-left: 0 !important;
      background: none !important; }
    .header-bar {
      margin-left: 0; }
      .header-bar-seperator {
        margin: 13px 13px 0 13px; } }
  @media screen and (max-width: 768px) {
    .header {
      display: none; } }

.searchitem {
  position: relative;
  height: 40px; }
  .searchitem input {
    height: 100%;
    width: 100%;
    background-color: white;
    border: solid 1px #d5d5d5;
    font-size: 14px;
    padding-top: 8px;
    padding-bottom: 8px;
    -webkit-appearance: none;
    -moz-appearance: none;
    -ms-appearance: none;
    -o-appearance: none;
    appearance: none; }
    .searchitem input::-webkit-input-placeholder {
      color: #929292;
      font-weight: 300; }
    .searchitem input::-moz-placeholder {
      color: #929292;
      font-weight: 300; }
    .searchitem input:-moz-placeholder {
      color: #929292;
      font-weight: 300; }
    .searchitem input:-ms-input-placeholder {
      color: #929292;
      font-weight: 300; }
  .searchitem button {
    position: absolute;
    top: 1px;
    right: 1px;
    width: 40px;
    height: calc(100% - 2px);
    background: white url(/img/magnifyer.svg) no-repeat center center;
    border: 0;
    border-left: solid 1px #d5d5d5;
    cursor: pointer;
    opacity: 1;
    -webkit-transition: background-color 0.2s;
    -moz-transition: background-color 0.2s;
    transition: background-color 0.2s; }
    .searchitem button:hover {
      background-color: #fafafa; }

.submenu {
  display: inline-block;
  vertical-align: top;
  list-style-type: none;
  margin: 0;
  padding: 0; }
  .submenu::after {
    clear: both;
    content: "";
    display: block; }
  .submenu li {
    float: left;
    margin-right: 15px; }
    .submenu li:last-child {
      margin-right: 0; }
  @media screen and (max-width: 996px) {
    .submenu li {
      margin-right: 12px; } }

.teaserbox {
  position: relative;
  overflow: hidden; }
  .teaserbox > img {
    width: 100%; }
  .teaserbox-overlay {
    position: absolute;
    overflow: hidden;
    z-index: 100;
    bottom: 25px;
    left: 25px;
    max-height: calc(100% - 50px);
    overflow: auto; }
    .teaserbox-overlay .button {
      margin-bottom: 0; }
    .teaserbox-overlay-content {
      margin-top: 5px;
      padding: 20px;
      max-width: 85%;
      font-family: "Roboto", sans-serif;
      font-weight: 300;
      line-height: 1.5;
      color: white;
      font-size: 16px;
      background-color: rgba(38, 36, 36, 0.9);
      box-shadow: 5px -5px 0px 0px rgba(255, 255, 255, 0.75); }
      .teaserbox-overlay-content strong {
        font-weight: 500; }
  @media screen and (max-width: 480px) {
    .teaserbox-overlay {
      left: 0;
      bottom: 0;
      max-height: 100%; }
      .teaserbox-overlay-content {
        vertical-align: bottom;
        max-width: 100%;
        width: 100%;
        box-shadow: none;
        padding: 20px 10px; } }

.slideshow {
  margin-bottom: 20px; }
  .slideshow .banner {
    height: 570px;
    margin-bottom: 0; }
  .slideshow-dots {
    position: relative; }
    .slideshow-dots .slick-dots {
      position: absolute;
      bottom: 32px;
      width: 100%;
      list-style-type: none;
      margin: 0;
      padding: 0; }
      .slideshow-dots .slick-dots li {
        display: inline-block;
        margin: 0 6px;
        line-height: 5px; }
        .slideshow-dots .slick-dots li:first-child {
          margin-left: 0; }
        .slideshow-dots .slick-dots li:last-child {
          margin-right: 0; }
        .slideshow-dots .slick-dots li button {
          background: none;
          background-color: white;
          opacity: 0.5;
          height: 5px;
          width: 50px;
          border-radius: 0;
          border: 0;
          text-indent: -9999px;
          outline: none;
          padding: 0;
          cursor: pointer; }
        .slideshow-dots .slick-dots li.slick-active button {
          opacity: 1; }
  @media screen and (max-width: 996px) {
    .slideshow .banner {
      height: 400px; } }
  @media screen and (max-width: 768px) {
    .slideshow .banner {
      height: 360px; }
    .slideshow-dots {
      position: relative; }
      .slideshow-dots .slick-dots {
        bottom: 20px; } }
  @media screen and (max-width: 480px) {
    .slideshow .banner {
      height: auto;
      background: transparent !important; }
      .slideshow .banner-content {
        max-width: none !important; }
      .slideshow .banner-mobileimage {
        display: block;
        height: 300px; }
      .slideshow .banner-overlay {
        position: static; }
        .slideshow .banner-overlay-text {
          display: none; }
    .slideshow-dots {
      display: none; } }

.contactform {
  z-index: 3000;
  background-size: cover;
  background: #262424 center center; }
  .contactform label {
    color: #f3f3f3; }
  .contactform input, .contactform textarea, .contactform .chosen-single, .contactform .chosen-single span {
    background-color: #565a5c !important;
    color: #fafafa !important; }
    .contactform input::placeholder, .contactform textarea::placeholder, .contactform .chosen-single::placeholder, .contactform .chosen-single span::placeholder {
      color: #f3f3f3; }
    .contactform input.error, .contactform textarea.error, .contactform .chosen-single.error, .contactform .chosen-single span.error {
      border: 1px solid #a9110c; }
  .contactform textarea {
    height: 70px; }
  .contactform .chosen-drop {
    background-color: #565a5c !important; }
  .contactform .chosen-results {
    color: #f3f3f3 !important;
    box-shadow: 0px 5px 10px 0px rgba(0, 0, 0, 0.3); }
    .contactform .chosen-results li.highlighted {
      background-color: #626769 !important;
      color: #f3f3f3 !important; }
  .contactform-cell {
    padding: 23px 25px; }
    .contactform-cell:first-child {
      border-right: 2px solid #000; }
    .contactform-cell:last-child {
      padding-left: 10px; }
  .contactform-phone {
    color: #a9110c !important; }
  .contactform-email {
    color: #a9110c;
    text-decoration: underline !important; }
  .contactform p {
    font-family: "Roboto", sans-serif;
    font-size: 16px;
    font-weight: 300;
    line-height: 1.5;
    color: #ffffff; }
  .contactform-title {
    text-transform: uppercase;
    font-family: "Roboto", sans-serif;
    font-size: 25px;
    font-weight: 900;
    color: #ffffff; }

.video {
  position: relative;
  padding-bottom: 56.25%;
  /* 16:9 */
  height: 0;
  max-width: 100%;
  overflow: hidden; }
  .video iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%; }
  @media screen and (max-width: 480px) {
    .video-wrapper {
      margin-bottom: 10px; } }

.modal {
  max-width: 60%;
  padding: 20px;
  width: auto; }
  @media screen and (max-width: 768px) {
    .modal {
      max-width: 90%; } }
  @media screen and (max-width: 480px) {
    .modal {
      max-width: 100%;
      padding: 12px;
      width: 100%; } }
  .modal img {
    max-width: 100%;
    max-height: 100%; }

/*
 Max height is 94px. Limited by effect
*/
.choicebar {
  padding: 25px 0;
  color: white;
  background-color: #a9110c;
  height: 0;
  padding: 0;
  overflow: hidden;
  -webkit-transition: padding 0.8s, height 0.8s;
  -moz-transition: padding 0.8s, height 0.8s;
  transition: padding 0.8s, height 0.8s; }
  .choicebar--active {
    padding: 25px 0;
    height: 94px; }
  .choicebar-title {
    display: block;
    line-height: 44px;
    font-size: 30px;
    font-weight: 300; }
    .choicebar-title strong {
      font-weight: bold; }
  .choicebar-label {
    display: inline-block;
    padding-right: 15px;
    margin-top: 4px;
    vertical-align: top;
    text-transform: uppercase;
    font-size: 20px;
    font-weight: 300;
    border-right: 1px solid white;
    line-height: 36px; }
  .choicebar-list {
    display: inline-block;
    vertical-align: top;
    list-style-type: none;
    margin: 2px 0 0 20px;
    padding: 0; }
    .choicebar-list::after {
      clear: both;
      content: "";
      display: block; }
    .choicebar-list li {
      float: left;
      margin-left: 7px; }
      .choicebar-list li:first-child {
        margin-left: 0; }
      .choicebar-list li a {
        position: relative;
        display: block;
        width: 46px;
        height: 40px; }
        .choicebar-list li a:before {
          position: absolute;
          content: '';
          top: 0;
          left: 0;
          width: 100%;
          height: 100%;
          z-index: 100;
          background: url(/img/flags/shadow.svg) no-repeat 0 0;
          opacity: 0;
          -webkit-transition: opacity 0.3s;
          -moz-transition: opacity 0.3s;
          transition: opacity 0.3s; }
        .choicebar-list li a img {
          position: absolute;
          z-index: 150;
          left: 5px;
          top: 4px;
          width: 36px;
          height: 32px; }
        .choicebar-list li a:hover:before {
          opacity: 1; }
  @media screen and (max-width: 996px) {
    .choicebar-title {
      font-size: 23px; }
    .choicebar-list {
      margin-top: 7px; }
      .choicebar-list li a {
        width: 33px;
        height: 32px; }
        .choicebar-list li a:before {
          background: url(/img/flags/shadow.svg) no-repeat 0 0;
          background-size: 100% 100%; }
        .choicebar-list li a img {
          width: 27px;
          height: 24px;
          left: 3px;
          top: 4px; }
    .choicebar-label {
      font-size: 18px;
      margin-top: 6px; } }
  @media screen and (max-width: 768px) {
    .choicebar {
      display: none; } }

.mobileheader {
  display: none;
  height: 60px;
  position: fixed;
  z-index: 1000;
  top: 0;
  left: 0;
  width: 100%;
  background: white;
  border-bottom: 1px solid #ebebeb; }
  .mobileheader-logo img {
    max-width: 100%; }
  .mobileheader-logo-wrapper {
    overflow: hidden;
    height: 60px;
    font-size: 0; }
    .mobileheader-logo-wrapper:before {
      content: '';
      display: inline-block;
      height: 100%;
      vertical-align: middle; }
    .mobileheader-logo-wrapper > * {
      display: inline-block;
      vertical-align: middle;
      font-size: 0px; }
  .mobileheader-item {
    display: block;
    float: right;
    height: calc(60px - 1px);
    width: 60px;
    max-width: 30%;
    border-left: 1px solid #ebebeb;
    -webkit-transition: background-color 0.2s;
    -moz-transition: background-color 0.2s;
    transition: background-color 0.2s; }
    .mobileheader-item:hover {
      background-color: #f3f3f3 !important; }
    .mobileheader-item-wrapper::after {
      clear: both;
      content: "";
      display: block; }
    .mobileheader-item--mobile {
      background: url(/img/mobile.svg) no-repeat center center; }
    .mobileheader-item--mail {
      background: url(/img/email.svg) no-repeat center center; }
    .mobileheader-item--search {
      background: white url(/img/magnifyer_dark.svg) no-repeat center center; }
    .mobileheader-item--burger {
      background: white url(/img/burger.svg) no-repeat center center; }
      .mobilemenu-open .mobileheader-item--burger {
        background: white url(/img/close.svg) no-repeat center center; }
  @media screen and (max-width: 768px) {
    .mobileheader {
      display: block; } }

.mobilemenu {
  position: fixed;
  z-index: 1000;
  top: 60px;
  bottom: 0;
  box-shadow: 4px 4px 8px -4px rgba(0, 0, 0, 0.5);
  overflow-y: auto;
  background-color: white;
  left: calc(-100% - 10px);
  max-width: 450px;
  width: 100%;
  -webkit-transition: left 0.4s;
  -moz-transition: left 0.4s;
  transition: left 0.4s; }
  .mobilemenu-open .mobilemenu {
    left: 0; }
  .mobilemenu ul {
    margin: 0;
    padding: 0; }
    .mobilemenu ul li {
      position: relative; }
      .mobilemenu ul li:after {
        content: '';
        position: absolute;
        bottom: 0;
        height: 1px;
        left: 20px;
        right: 20px;
        background-color: #ebebeb; }
      .mobilemenu ul li:last-child:after {
        content: none; }
      .mobilemenu ul li a {
        display: block;
        line-height: 21px;
        padding: 15px 20px;
        -webkit-transition: background-color 0.2s;
        -moz-transition: background-color 0.2s;
        transition: background-color 0.2s;
        background-color: white;
        color: #a9110c; }
        .mobilemenu ul li a:hover {
          background-color: #f3f3f3;
          color: #a9110c; }
    .mobilemenu ul.mobilemenu-sub {
      margin-bottom: 20px; }
      .mobilemenu ul.mobilemenu-sub li a {
        background-color: #a9110c;
        color: white; }
        .mobilemenu ul.mobilemenu-sub li a:hover {
          background-color: #830d09;
          color: white; }
  .mobilemenu-title {
    display: block;
    margin: 0 20px 10px 20px;
    font-weight: 500; }
  .mobilemenu-flag {
    float: left;
    display: inline-block;
    margin: 10px; }
    .mobilemenu-flag img {
      opacity: 1;
      -webkit-transition: opacity 0.2s;
      -moz-transition: opacity 0.2s;
      transition: opacity 0.2s; }
    .mobilemenu-flag:hover img {
      opacity: .8; }
    .mobilemenu-flag-container {
      margin: 0 10px 20px 10px; }
      .mobilemenu-flag-container::after {
        clear: both;
        content: "";
        display: block; }
  @media screen and (min-width: 769px) {
    .mobilemenu {
      display: none; } }

#contour, .contour {
  padding: 0 !important; }

#contour label.fieldLabel, .contour label.fieldLabel {
  display: inline !important;
  font-weight: 500 !important; }

#contour fieldset, .contour fieldset {
  padding: 0 !important;
  margin: 0 !important; }

#contour .contourNavigation {
  padding: 0 !important; }

#contour input.text, #contour input.title, #contour textarea, #contour select,
.contour input.text, .contour input.title, .contour textarea, .contour select {
  margin: 0 0 20px 0 !important;
  border: 0 !important; }

#contour input.text:focus, #contour input.title:focus, #contour textarea:focus, #contour select:focus,
.contour input.text:focus, .contour input.title:focus, .contour textarea:focus, .contour select:focus {
  border: 0 !important; }

#contour input.text, #contour textarea,
.contour-wrapper .contour input.text, .contour-wrapper .contour textarea {
  max-width: none !important;
  padding: 13px 20px !important;
  width: 100% !important; }

#contour textarea,
.contour textarea {
  height: 200px !important; }

#contour span.checkboxlist, #contour span.radiobuttonlist, #contour span.checkbox,
.contour span.checkboxlist, .contour span.radiobuttonlist, .contour span.checkbox {
  float: none !important;
  padding: 0 !important; }

#contour .checkboxlist input, #contour .radiobuttonlist input, #contour .checkbox input,
.contour-wrapper .contour .checkboxlist input, .contour-wrapper .contour .radiobuttonlist input, .contour-wrapper .contour .checkbox input {
  display: none !important; }

.contour .btn {
  display: block;
  margin: 0 auto 20px auto;
  max-width: 240px; }

.contour .checkboxlist {
  margin-bottom: 20px; }
  .contour .checkboxlist label {
    font-weight: normal;
    cursor: pointer; }

.contour input[type="submit"] {
  margin-top: 60px !important; }

#contour input.contourError, #contour textarea.contourError, #contour input.input-validation-error, #contour textarea.input-validation-error .contour input.contourError,
.contour textarea.contourError, .contour input.input-validation-error, .contour textarea.input-validation-error {
  background: #d5d5d5 !important;
  border: 1px solid #a9110c !important; }

.contour-wrapper #contour span.contourError, .contour-wrapper #contour span.field-validation-error .contour span.contourError, .contour-wrapper .contour span.field-validation-error {
  color: #a9110c !important; }

#contour .field-validation-error, .contour .field-validation-error {
  padding-left: 0 !important;
  font-size: 14px;
  display: block;
  margin-bottom: 8px; }

.contourIndicator {
  color: #a9110c !important; }

@media screen and (max-width: 768px) {
  .contour input[type="submit"] {
    margin-top: 30px !important; } }

input.labelauty + label {
  display: inline-block !important;
  vertical-align: middle;
  background-color: none !important;
  padding: 0 !important;
  line-height: 25px;
  margin: -2px 5px 0 0 !important; }

input.labelauty + label > span.labelauty-unchecked-image, input.labelauty + label > span.labelauty-checked-image {
  width: 25px;
  height: 25px;
  background-color: #d5d5d5;
  background-position: center; }

input.labelauty + label > span.labelauty-unchecked-image {
  background-image: none; }

input.labelauty + label > span.labelauty-checked-image {
  background-image: url(/img/check.svg) !important; }

.rte {
  font-size: 16px;
  font-weight: 300;
  line-height: 1.5; }
  .rte h3 {
    font-size: 24px;
    font-weight: 300;
    line-height: 1.75; }
  .rte h4 {
    margin-bottom: 4px;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.9; }
  .rte img {
    display: inline-block; }

.supplier-login-container {
  max-width: 600px;
  width: 100%;
  margin: 0 auto;
  display: block; }

.supplier-login-email-input {
  margin-bottom: 20px; }

.supplier-login-password-input {
  margin-bottom: 30px; }

.supplier-login-box {
  padding: 35px;
  margin-top: 35px;
  margin-bottom: 35px;
  background-color: #fff; }
  .supplier-login-box-title {
    font-size: 30px;
    color: #414141;
    text-transform: uppercase;
    font-weight: normal;
    line-height: 58px;
    text-align: center; }
  .supplier-login-box-subtitle {
    font-size: 16px;
    font-weight: 300;
    line-height: 1.5;
    text-align: center; }

.supplier-login-error {
  color: red;
  text-align: center; }

.supplier-login-btn {
  background-color: #a9110c;
  color: #fff;
  -webkit-transition: background-color 0.2s;
  -moz-transition: background-color 0.2s;
  transition: background-color 0.2s; }
  .supplier-login-btn:hover {
    cursor: pointer;
    background-color: #700b08; }

#supplier-login-error {
  color: #a9110c;
  text-align: center; }

.seperator {
  width: 560px;
  height: 20px;
  margin: 0 auto;
  max-width: 100%;
  background: transparent url(/img/seperator.png) no-repeat center;
  background-size: 100% auto; }

.videobox {
  display: block;
  padding: 0;
  margin-bottom: 20px;
  color: #414141 !important;
  font-weight: 500;
  line-height: 25px;
  text-decoration: none; }
  .videobox-imagewrapper {
    position: relative;
    margin-bottom: 10px;
    opacity: 1;
    -webkit-transition: opacity 0.2s;
    -moz-transition: opacity 0.2s;
    transition: opacity 0.2s; }
    .videobox-imagewrapper:before {
      position: absolute;
      content: '';
      top: calc(50% - 33px);
      left: calc(50% - 38px);
      width: 76px;
      height: 66px;
      background: url(/img/youtube.svg) no-repeat 0 0; }
  .videobox img {
    display: block;
    width: 100%; }
  .videobox-content {
    min-height: 50px; }
  .videobox:hover .videobox-imagewrapper {
    opacity: 0.8; }
  @media screen and (max-width: 480px) {
    .videobox-content {
      min-height: 0; } }

.filteritem {
  display: inline-block;
  margin-bottom: 20px;
  padding: 9px 20px 8px 20px;
  line-height: 23px;
  font-family: "Roboto", sans-serif;
  font-weight: bold;
  font-size: 14px;
  text-align: center;
  text-decoration: none;
  color: #414141;
  background-color: #d5d5d5;
  border-radius: 0;
  cursor: pointer;
  -webkit-transition: background-color 0.2s;
  -moz-transition: background-color 0.2s;
  transition: background-color 0.2s; }
  .filteritem--active {
    background-color: #a9110c;
    color: white; }
  .filteritem:hover {
    color: #414141;
    background-color: #b6b6b6; }
    .filteritem:hover.filteritem--active {
      color: white;
      background-color: #700b08; }
  @media screen and (max-width: 480px) {
    .filteritem {
      margin-left: auto;
      margin-right: auto;
      width: calc(100% - 40px); } }
  @media (max-width: 380px) {
    .filteritem {
      width: 100%;
      margin-bottom: 15px; } }

.employees {
  margin-bottom: 35px;
  display: block;
  overflow: auto; }
  .employees .employee {
    background-color: #fff;
    text-align: center;
    max-width: 250px;
    margin: 0 auto;
    padding-bottom: 6px;
    margin-top: 15px; }
    .employees .employee a {
      font-size: 14px; }
    .employees .employee-name {
      margin: 28px 0 14px;
      color: #a9110c; }
    .employees .employee-location {
      font-size: 14px;
      font-style: italic;
      min-height: 43px; }
    .employees .employee-phone {
      width: 100%;
      font-size: 14px; }
    .employees .employee-photo {
      margin: 0 auto;
      max-width: 100%;
      width: 100%; }

.grid {
  /* Does not support negative shift  */ }
  .grid-full-height {
    height: 100%; }
  .grid-row {
    display: block; }
    .grid-row::after {
      clear: both;
      content: "";
      display: block; }
  .grid-outer-container {
    max-width: 1140px;
    margin-left: auto;
    margin-right: auto; }
    .grid-outer-container::after {
      clear: both;
      content: "";
      display: block; }
  .grid-fill-parent {
    width: 100%; }
  .grid-text-left {
    text-align: left; }
  .grid-text-center {
    text-align: center; }
  .grid-text-right {
    text-align: right; }
  .grid-hidden {
    display: none; }
  .grid-visible {
    display: block; }
  .grid-span1-nogap {
    float: left;
    display: block;
    width: 8.33333%; }
  .grid-span2-nogap {
    float: left;
    display: block;
    width: 16.66667%; }
  .grid-span3-nogap {
    float: left;
    display: block;
    width: 25%; }
  .grid-span4-nogap {
    float: left;
    display: block;
    width: 33.33333%; }
  .grid-span5-nogap {
    float: left;
    display: block;
    width: 41.66667%; }
  .grid-span6-nogap {
    float: left;
    display: block;
    width: 50%; }
  .grid-span7-nogap {
    float: left;
    display: block;
    width: 58.33333%; }
  .grid-span8-nogap {
    float: left;
    display: block;
    width: 66.66667%; }
  .grid-span9-nogap {
    float: left;
    display: block;
    width: 75%; }
  .grid-span10-nogap {
    float: left;
    display: block;
    width: 83.33333%; }
  .grid-span11-nogap {
    float: left;
    display: block;
    width: 91.66667%; }
  .grid-span12-nogap {
    float: left;
    display: block;
    width: 100%; }
  .grid-shift1-nogap {
    margin-left: 8.33333%; }
  .grid-shift2-nogap {
    margin-left: 16.66667%; }
  .grid-shift3-nogap {
    margin-left: 25%; }
  .grid-shift4-nogap {
    margin-left: 33.33333%; }
  .grid-shift5-nogap {
    margin-left: 41.66667%; }
  .grid-shift6-nogap {
    margin-left: 50%; }
  .grid-shift7-nogap {
    margin-left: 58.33333%; }
  .grid-shift8-nogap {
    margin-left: 66.66667%; }
  .grid-shift9-nogap {
    margin-left: 75%; }
  .grid-shift10-nogap {
    margin-left: 83.33333%; }
  .grid-shift11-nogap {
    margin-left: 91.66667%; }
  .grid-shift12-nogap {
    margin-left: 100%; }
  .grid-span1 {
    float: left;
    display: block;
    margin-right: 1.75801%;
    width: 6.72182%; }
    .grid-span1:last-child {
      margin-right: 0; }
  .grid-span2 {
    float: left;
    display: block;
    margin-right: 1.75801%;
    width: 15.20165%; }
    .grid-span2:last-child {
      margin-right: 0; }
  .grid-span3 {
    float: left;
    display: block;
    margin-right: 1.75801%;
    width: 23.68149%; }
    .grid-span3:last-child {
      margin-right: 0; }
  .grid-span4 {
    float: left;
    display: block;
    margin-right: 1.75801%;
    width: 32.16132%; }
    .grid-span4:last-child {
      margin-right: 0; }
  .grid-span5 {
    float: left;
    display: block;
    margin-right: 1.75801%;
    width: 40.64116%; }
    .grid-span5:last-child {
      margin-right: 0; }
  .grid-span6 {
    float: left;
    display: block;
    margin-right: 1.75801%;
    width: 49.12099%; }
    .grid-span6:last-child {
      margin-right: 0; }
  .grid-span7 {
    float: left;
    display: block;
    margin-right: 1.75801%;
    width: 57.60083%; }
    .grid-span7:last-child {
      margin-right: 0; }
  .grid-span8 {
    float: left;
    display: block;
    margin-right: 1.75801%;
    width: 66.08066%; }
    .grid-span8:last-child {
      margin-right: 0; }
  .grid-span9 {
    float: left;
    display: block;
    margin-right: 1.75801%;
    width: 74.5605%; }
    .grid-span9:last-child {
      margin-right: 0; }
  .grid-span10 {
    float: left;
    display: block;
    margin-right: 1.75801%;
    width: 83.04033%; }
    .grid-span10:last-child {
      margin-right: 0; }
  .grid-span11 {
    float: left;
    display: block;
    margin-right: 1.75801%;
    width: 91.52017%; }
    .grid-span11:last-child {
      margin-right: 0; }
  .grid-span12, .contactform #postalcode-error {
    float: left;
    display: block;
    margin-right: 1.75801%;
    width: 100%; }
    .grid-span12:last-child, .contactform #postalcode-error:last-child {
      margin-right: 0; }
  .grid-shift0 {
    margin-left: 0%; }
  .grid-shift1 {
    margin-left: 8.47983%; }
  .grid-shift2 {
    margin-left: 16.95967%; }
  .grid-shift3 {
    margin-left: 25.4395%; }
  .grid-shift4 {
    margin-left: 33.91934%; }
  .grid-shift5 {
    margin-left: 42.39917%; }
  .grid-shift6 {
    margin-left: 50.87901%; }
  .grid-shift7 {
    margin-left: 59.35884%; }
  .grid-shift8 {
    margin-left: 67.83868%; }
  .grid-shift9 {
    margin-left: 76.31851%; }
  .grid-shift10 {
    margin-left: 84.79835%; }
  .grid-shift11 {
    margin-left: 93.27818%; }
  .grid-shift-negative1 {
    margin-left: -8.47983%; }
  .grid-shift-negative2 {
    margin-left: -16.95967%; }
  .grid-shift-negative3 {
    margin-left: -25.4395%; }
  .grid-shift-negative4 {
    margin-left: -33.91934%; }
  .grid-shift-negative5 {
    margin-left: -42.39917%; }
  .grid-shift-negative6 {
    margin-left: -50.87901%; }
  .grid-shift-negative7 {
    margin-left: -59.35884%; }
  .grid-shift-negative8 {
    margin-left: -67.83868%; }
  .grid-shift-negative9 {
    margin-left: -76.31851%; }
  .grid-shift-negative10 {
    margin-left: -84.79835%; }
  .grid-shift-negative11 {
    margin-left: -93.27818%; }
  .grid-shift-negative12 {
    margin-left: -101.75801%; }
  .grid-omega {
    margin-right: 0; }
  .grid-omega1:nth-child(1n) {
    margin-right: 0; }
  .grid-omega1:nth-child(1n+1) {
    clear: left; }
  .grid-omega2:nth-child(2n) {
    margin-right: 0; }
  .grid-omega2:nth-child(2n+1) {
    clear: left; }
  .grid-omega3:nth-child(3n) {
    margin-right: 0; }
  .grid-omega3:nth-child(3n+1) {
    clear: left; }
  .grid-omega4:nth-child(4n) {
    margin-right: 0; }
  .grid-omega4:nth-child(4n+1) {
    clear: left; }
  .grid-omega5:nth-child(5n) {
    margin-right: 0; }
  .grid-omega5:nth-child(5n+1) {
    clear: left; }
  .grid-omega6:nth-child(6n) {
    margin-right: 0; }
  .grid-omega6:nth-child(6n+1) {
    clear: left; }
  .grid-omega7:nth-child(7n) {
    margin-right: 0; }
  .grid-omega7:nth-child(7n+1) {
    clear: left; }
  .grid-omega8:nth-child(8n) {
    margin-right: 0; }
  .grid-omega8:nth-child(8n+1) {
    clear: left; }
  .grid-omega9:nth-child(9n) {
    margin-right: 0; }
  .grid-omega9:nth-child(9n+1) {
    clear: left; }
  .grid-omega10:nth-child(10n) {
    margin-right: 0; }
  .grid-omega10:nth-child(10n+1) {
    clear: left; }
  .grid-omega11:nth-child(11n) {
    margin-right: 0; }
  .grid-omega11:nth-child(11n+1) {
    clear: left; }
  .grid-omega12:nth-child(12n) {
    margin-right: 0; }
  .grid-omega12:nth-child(12n+1) {
    clear: left; }
  .grid-gap0-below {
    margin-bottom: 0px; }
  .grid-gap1-below {
    margin-bottom: 10px; }
  .grid-gap2-below {
    margin-bottom: 20px; }
  .grid-gap3-below {
    margin-bottom: 30px; }
  .grid-gap4-below {
    margin-bottom: 40px; }
  .grid-gap5-below {
    margin-bottom: 50px; }
  .grid-gap6-below {
    margin-bottom: 60px; }
  .grid-gap7-below {
    margin-bottom: 70px; }
  .grid-gap8-below {
    margin-bottom: 80px; }
  .grid-gap9-below {
    margin-bottom: 90px; }
  .grid-gap10-below {
    margin-bottom: 100px; }
  .grid-gap0-above {
    margin-top: 0px; }
  .grid-gap1-above {
    margin-top: 10px; }
  .grid-gap2-above {
    margin-top: 20px; }
  .grid-gap3-above {
    margin-top: 30px; }
  .grid-gap4-above {
    margin-top: 40px; }
  .grid-gap5-above {
    margin-top: 50px; }
  .grid-gap6-above {
    margin-top: 60px; }
  .grid-gap7-above {
    margin-top: 70px; }
  .grid-gap8-above {
    margin-top: 80px; }
  .grid-gap9-above {
    margin-top: 90px; }
  .grid-gap10-above {
    margin-top: 100px; }
  @media screen and (max-width: 1180px) {
    .grid {
      /* Does not support negative shift  */ }
      .grid-desktop-row {
        display: block; }
        .grid-desktop-row::after {
          clear: both;
          content: "";
          display: block; }
      .grid-desktop-outer-container {
        max-width: 1140px;
        margin-left: auto;
        margin-right: auto; }
        .grid-desktop-outer-container::after {
          clear: both;
          content: "";
          display: block; }
      .grid-desktop-fill-parent {
        width: 100%; }
      .grid-desktop-text-left {
        text-align: left; }
      .grid-desktop-text-center {
        text-align: center; }
      .grid-desktop-text-right {
        text-align: right; }
      .grid-desktop-hidden {
        display: none; }
      .grid-desktop-visible {
        display: block; }
      .grid-desktop-span1-nogap {
        float: left;
        display: block;
        width: 8.33333%; }
      .grid-desktop-span2-nogap {
        float: left;
        display: block;
        width: 16.66667%; }
      .grid-desktop-span3-nogap {
        float: left;
        display: block;
        width: 25%; }
      .grid-desktop-span4-nogap {
        float: left;
        display: block;
        width: 33.33333%; }
      .grid-desktop-span5-nogap {
        float: left;
        display: block;
        width: 41.66667%; }
      .grid-desktop-span6-nogap {
        float: left;
        display: block;
        width: 50%; }
      .grid-desktop-span7-nogap {
        float: left;
        display: block;
        width: 58.33333%; }
      .grid-desktop-span8-nogap {
        float: left;
        display: block;
        width: 66.66667%; }
      .grid-desktop-span9-nogap {
        float: left;
        display: block;
        width: 75%; }
      .grid-desktop-span10-nogap {
        float: left;
        display: block;
        width: 83.33333%; }
      .grid-desktop-span11-nogap {
        float: left;
        display: block;
        width: 91.66667%; }
      .grid-desktop-span12-nogap {
        float: left;
        display: block;
        width: 100%; }
      .grid-desktop-shift1-nogap {
        margin-left: 8.33333%; }
      .grid-desktop-shift2-nogap {
        margin-left: 16.66667%; }
      .grid-desktop-shift3-nogap {
        margin-left: 25%; }
      .grid-desktop-shift4-nogap {
        margin-left: 33.33333%; }
      .grid-desktop-shift5-nogap {
        margin-left: 41.66667%; }
      .grid-desktop-shift6-nogap {
        margin-left: 50%; }
      .grid-desktop-shift7-nogap {
        margin-left: 58.33333%; }
      .grid-desktop-shift8-nogap {
        margin-left: 66.66667%; }
      .grid-desktop-shift9-nogap {
        margin-left: 75%; }
      .grid-desktop-shift10-nogap {
        margin-left: 83.33333%; }
      .grid-desktop-shift11-nogap {
        margin-left: 91.66667%; }
      .grid-desktop-shift12-nogap {
        margin-left: 100%; }
      .grid-desktop-span1 {
        float: left;
        display: block;
        margin-right: 1.75801%;
        width: 6.72182%; }
        .grid-desktop-span1:last-child {
          margin-right: 0; }
      .grid-desktop-span2 {
        float: left;
        display: block;
        margin-right: 1.75801%;
        width: 15.20165%; }
        .grid-desktop-span2:last-child {
          margin-right: 0; }
      .grid-desktop-span3 {
        float: left;
        display: block;
        margin-right: 1.75801%;
        width: 23.68149%; }
        .grid-desktop-span3:last-child {
          margin-right: 0; }
      .grid-desktop-span4 {
        float: left;
        display: block;
        margin-right: 1.75801%;
        width: 32.16132%; }
        .grid-desktop-span4:last-child {
          margin-right: 0; }
      .grid-desktop-span5 {
        float: left;
        display: block;
        margin-right: 1.75801%;
        width: 40.64116%; }
        .grid-desktop-span5:last-child {
          margin-right: 0; }
      .grid-desktop-span6 {
        float: left;
        display: block;
        margin-right: 1.75801%;
        width: 49.12099%; }
        .grid-desktop-span6:last-child {
          margin-right: 0; }
      .grid-desktop-span7 {
        float: left;
        display: block;
        margin-right: 1.75801%;
        width: 57.60083%; }
        .grid-desktop-span7:last-child {
          margin-right: 0; }
      .grid-desktop-span8 {
        float: left;
        display: block;
        margin-right: 1.75801%;
        width: 66.08066%; }
        .grid-desktop-span8:last-child {
          margin-right: 0; }
      .grid-desktop-span9 {
        float: left;
        display: block;
        margin-right: 1.75801%;
        width: 74.5605%; }
        .grid-desktop-span9:last-child {
          margin-right: 0; }
      .grid-desktop-span10 {
        float: left;
        display: block;
        margin-right: 1.75801%;
        width: 83.04033%; }
        .grid-desktop-span10:last-child {
          margin-right: 0; }
      .grid-desktop-span11 {
        float: left;
        display: block;
        margin-right: 1.75801%;
        width: 91.52017%; }
        .grid-desktop-span11:last-child {
          margin-right: 0; }
      .grid-desktop-span12 {
        float: left;
        display: block;
        margin-right: 1.75801%;
        width: 100%; }
        .grid-desktop-span12:last-child {
          margin-right: 0; }
      .grid-desktop-shift0 {
        margin-left: 0%; }
      .grid-desktop-shift1 {
        margin-left: 8.47983%; }
      .grid-desktop-shift2 {
        margin-left: 16.95967%; }
      .grid-desktop-shift3 {
        margin-left: 25.4395%; }
      .grid-desktop-shift4 {
        margin-left: 33.91934%; }
      .grid-desktop-shift5 {
        margin-left: 42.39917%; }
      .grid-desktop-shift6 {
        margin-left: 50.87901%; }
      .grid-desktop-shift7 {
        margin-left: 59.35884%; }
      .grid-desktop-shift8 {
        margin-left: 67.83868%; }
      .grid-desktop-shift9 {
        margin-left: 76.31851%; }
      .grid-desktop-shift10 {
        margin-left: 84.79835%; }
      .grid-desktop-shift11 {
        margin-left: 93.27818%; }
      .grid-desktop-shift-negative1 {
        margin-left: -8.47983%; }
      .grid-desktop-shift-negative2 {
        margin-left: -16.95967%; }
      .grid-desktop-shift-negative3 {
        margin-left: -25.4395%; }
      .grid-desktop-shift-negative4 {
        margin-left: -33.91934%; }
      .grid-desktop-shift-negative5 {
        margin-left: -42.39917%; }
      .grid-desktop-shift-negative6 {
        margin-left: -50.87901%; }
      .grid-desktop-shift-negative7 {
        margin-left: -59.35884%; }
      .grid-desktop-shift-negative8 {
        margin-left: -67.83868%; }
      .grid-desktop-shift-negative9 {
        margin-left: -76.31851%; }
      .grid-desktop-shift-negative10 {
        margin-left: -84.79835%; }
      .grid-desktop-shift-negative11 {
        margin-left: -93.27818%; }
      .grid-desktop-shift-negative12 {
        margin-left: -101.75801%; }
      .grid-desktop-omega {
        margin-right: 0; }
      .grid-desktop-omega1:nth-child(1n) {
        margin-right: 0; }
      .grid-desktop-omega1:nth-child(1n+1) {
        clear: left; }
      .grid-desktop-omega2:nth-child(2n) {
        margin-right: 0; }
      .grid-desktop-omega2:nth-child(2n+1) {
        clear: left; }
      .grid-desktop-omega3:nth-child(3n) {
        margin-right: 0; }
      .grid-desktop-omega3:nth-child(3n+1) {
        clear: left; }
      .grid-desktop-omega4:nth-child(4n) {
        margin-right: 0; }
      .grid-desktop-omega4:nth-child(4n+1) {
        clear: left; }
      .grid-desktop-omega5:nth-child(5n) {
        margin-right: 0; }
      .grid-desktop-omega5:nth-child(5n+1) {
        clear: left; }
      .grid-desktop-omega6:nth-child(6n) {
        margin-right: 0; }
      .grid-desktop-omega6:nth-child(6n+1) {
        clear: left; }
      .grid-desktop-omega7:nth-child(7n) {
        margin-right: 0; }
      .grid-desktop-omega7:nth-child(7n+1) {
        clear: left; }
      .grid-desktop-omega8:nth-child(8n) {
        margin-right: 0; }
      .grid-desktop-omega8:nth-child(8n+1) {
        clear: left; }
      .grid-desktop-omega9:nth-child(9n) {
        margin-right: 0; }
      .grid-desktop-omega9:nth-child(9n+1) {
        clear: left; }
      .grid-desktop-omega10:nth-child(10n) {
        margin-right: 0; }
      .grid-desktop-omega10:nth-child(10n+1) {
        clear: left; }
      .grid-desktop-omega11:nth-child(11n) {
        margin-right: 0; }
      .grid-desktop-omega11:nth-child(11n+1) {
        clear: left; }
      .grid-desktop-omega12:nth-child(12n) {
        margin-right: 0; }
      .grid-desktop-omega12:nth-child(12n+1) {
        clear: left; }
      .grid-desktop-gap0-below {
        margin-bottom: 0px; }
      .grid-desktop-gap1-below {
        margin-bottom: 10px; }
      .grid-desktop-gap2-below {
        margin-bottom: 20px; }
      .grid-desktop-gap3-below {
        margin-bottom: 30px; }
      .grid-desktop-gap4-below {
        margin-bottom: 40px; }
      .grid-desktop-gap5-below {
        margin-bottom: 50px; }
      .grid-desktop-gap6-below {
        margin-bottom: 60px; }
      .grid-desktop-gap7-below {
        margin-bottom: 70px; }
      .grid-desktop-gap8-below {
        margin-bottom: 80px; }
      .grid-desktop-gap9-below {
        margin-bottom: 90px; }
      .grid-desktop-gap10-below {
        margin-bottom: 100px; }
      .grid-desktop-gap0-above {
        margin-top: 0px; }
      .grid-desktop-gap1-above {
        margin-top: 10px; }
      .grid-desktop-gap2-above {
        margin-top: 20px; }
      .grid-desktop-gap3-above {
        margin-top: 30px; }
      .grid-desktop-gap4-above {
        margin-top: 40px; }
      .grid-desktop-gap5-above {
        margin-top: 50px; }
      .grid-desktop-gap6-above {
        margin-top: 60px; }
      .grid-desktop-gap7-above {
        margin-top: 70px; }
      .grid-desktop-gap8-above {
        margin-top: 80px; }
      .grid-desktop-gap9-above {
        margin-top: 90px; }
      .grid-desktop-gap10-above {
        margin-top: 100px; } }
  @media screen and (max-width: 996px) {
    .grid {
      /* Does not support negative shift  */ }
      .grid-laptop-row {
        display: block; }
        .grid-laptop-row::after {
          clear: both;
          content: "";
          display: block; }
      .grid-laptop-outer-container {
        max-width: 1140px;
        margin-left: auto;
        margin-right: auto; }
        .grid-laptop-outer-container::after {
          clear: both;
          content: "";
          display: block; }
      .grid-laptop-fill-parent {
        width: 100%; }
      .grid-laptop-text-left {
        text-align: left; }
      .grid-laptop-text-center {
        text-align: center; }
      .grid-laptop-text-right {
        text-align: right; }
      .grid-laptop-hidden {
        display: none; }
      .grid-laptop-visible {
        display: block; }
      .grid-laptop-span1-nogap {
        float: left;
        display: block;
        width: 8.33333%; }
      .grid-laptop-span2-nogap {
        float: left;
        display: block;
        width: 16.66667%; }
      .grid-laptop-span3-nogap {
        float: left;
        display: block;
        width: 25%; }
      .grid-laptop-span4-nogap {
        float: left;
        display: block;
        width: 33.33333%; }
      .grid-laptop-span5-nogap {
        float: left;
        display: block;
        width: 41.66667%; }
      .grid-laptop-span6-nogap {
        float: left;
        display: block;
        width: 50%; }
      .grid-laptop-span7-nogap {
        float: left;
        display: block;
        width: 58.33333%; }
      .grid-laptop-span8-nogap {
        float: left;
        display: block;
        width: 66.66667%; }
      .grid-laptop-span9-nogap {
        float: left;
        display: block;
        width: 75%; }
      .grid-laptop-span10-nogap {
        float: left;
        display: block;
        width: 83.33333%; }
      .grid-laptop-span11-nogap {
        float: left;
        display: block;
        width: 91.66667%; }
      .grid-laptop-span12-nogap {
        float: left;
        display: block;
        width: 100%; }
      .grid-laptop-shift1-nogap {
        margin-left: 8.33333%; }
      .grid-laptop-shift2-nogap {
        margin-left: 16.66667%; }
      .grid-laptop-shift3-nogap {
        margin-left: 25%; }
      .grid-laptop-shift4-nogap {
        margin-left: 33.33333%; }
      .grid-laptop-shift5-nogap {
        margin-left: 41.66667%; }
      .grid-laptop-shift6-nogap {
        margin-left: 50%; }
      .grid-laptop-shift7-nogap {
        margin-left: 58.33333%; }
      .grid-laptop-shift8-nogap {
        margin-left: 66.66667%; }
      .grid-laptop-shift9-nogap {
        margin-left: 75%; }
      .grid-laptop-shift10-nogap {
        margin-left: 83.33333%; }
      .grid-laptop-shift11-nogap {
        margin-left: 91.66667%; }
      .grid-laptop-shift12-nogap {
        margin-left: 100%; }
      .grid-laptop-span1 {
        float: left;
        display: block;
        margin-right: 1.75801%;
        width: 6.72182%; }
        .grid-laptop-span1:last-child {
          margin-right: 0; }
      .grid-laptop-span2 {
        float: left;
        display: block;
        margin-right: 1.75801%;
        width: 15.20165%; }
        .grid-laptop-span2:last-child {
          margin-right: 0; }
      .grid-laptop-span3 {
        float: left;
        display: block;
        margin-right: 1.75801%;
        width: 23.68149%; }
        .grid-laptop-span3:last-child {
          margin-right: 0; }
      .grid-laptop-span4 {
        float: left;
        display: block;
        margin-right: 1.75801%;
        width: 32.16132%; }
        .grid-laptop-span4:last-child {
          margin-right: 0; }
      .grid-laptop-span5 {
        float: left;
        display: block;
        margin-right: 1.75801%;
        width: 40.64116%; }
        .grid-laptop-span5:last-child {
          margin-right: 0; }
      .grid-laptop-span6 {
        float: left;
        display: block;
        margin-right: 1.75801%;
        width: 49.12099%; }
        .grid-laptop-span6:last-child {
          margin-right: 0; }
      .grid-laptop-span7 {
        float: left;
        display: block;
        margin-right: 1.75801%;
        width: 57.60083%; }
        .grid-laptop-span7:last-child {
          margin-right: 0; }
      .grid-laptop-span8 {
        float: left;
        display: block;
        margin-right: 1.75801%;
        width: 66.08066%; }
        .grid-laptop-span8:last-child {
          margin-right: 0; }
      .grid-laptop-span9 {
        float: left;
        display: block;
        margin-right: 1.75801%;
        width: 74.5605%; }
        .grid-laptop-span9:last-child {
          margin-right: 0; }
      .grid-laptop-span10 {
        float: left;
        display: block;
        margin-right: 1.75801%;
        width: 83.04033%; }
        .grid-laptop-span10:last-child {
          margin-right: 0; }
      .grid-laptop-span11 {
        float: left;
        display: block;
        margin-right: 1.75801%;
        width: 91.52017%; }
        .grid-laptop-span11:last-child {
          margin-right: 0; }
      .grid-laptop-span12 {
        float: left;
        display: block;
        margin-right: 1.75801%;
        width: 100%; }
        .grid-laptop-span12:last-child {
          margin-right: 0; }
      .grid-laptop-shift0 {
        margin-left: 0%; }
      .grid-laptop-shift1 {
        margin-left: 8.47983%; }
      .grid-laptop-shift2 {
        margin-left: 16.95967%; }
      .grid-laptop-shift3 {
        margin-left: 25.4395%; }
      .grid-laptop-shift4 {
        margin-left: 33.91934%; }
      .grid-laptop-shift5 {
        margin-left: 42.39917%; }
      .grid-laptop-shift6 {
        margin-left: 50.87901%; }
      .grid-laptop-shift7 {
        margin-left: 59.35884%; }
      .grid-laptop-shift8 {
        margin-left: 67.83868%; }
      .grid-laptop-shift9 {
        margin-left: 76.31851%; }
      .grid-laptop-shift10 {
        margin-left: 84.79835%; }
      .grid-laptop-shift11 {
        margin-left: 93.27818%; }
      .grid-laptop-shift-negative1 {
        margin-left: -8.47983%; }
      .grid-laptop-shift-negative2 {
        margin-left: -16.95967%; }
      .grid-laptop-shift-negative3 {
        margin-left: -25.4395%; }
      .grid-laptop-shift-negative4 {
        margin-left: -33.91934%; }
      .grid-laptop-shift-negative5 {
        margin-left: -42.39917%; }
      .grid-laptop-shift-negative6 {
        margin-left: -50.87901%; }
      .grid-laptop-shift-negative7 {
        margin-left: -59.35884%; }
      .grid-laptop-shift-negative8 {
        margin-left: -67.83868%; }
      .grid-laptop-shift-negative9 {
        margin-left: -76.31851%; }
      .grid-laptop-shift-negative10 {
        margin-left: -84.79835%; }
      .grid-laptop-shift-negative11 {
        margin-left: -93.27818%; }
      .grid-laptop-shift-negative12 {
        margin-left: -101.75801%; }
      .grid-laptop-omega {
        margin-right: 0; }
      .grid-laptop-omega1:nth-child(1n) {
        margin-right: 0; }
      .grid-laptop-omega1:nth-child(1n+1) {
        clear: left; }
      .grid-laptop-omega2:nth-child(2n) {
        margin-right: 0; }
      .grid-laptop-omega2:nth-child(2n+1) {
        clear: left; }
      .grid-laptop-omega3:nth-child(3n) {
        margin-right: 0; }
      .grid-laptop-omega3:nth-child(3n+1) {
        clear: left; }
      .grid-laptop-omega4:nth-child(4n) {
        margin-right: 0; }
      .grid-laptop-omega4:nth-child(4n+1) {
        clear: left; }
      .grid-laptop-omega5:nth-child(5n) {
        margin-right: 0; }
      .grid-laptop-omega5:nth-child(5n+1) {
        clear: left; }
      .grid-laptop-omega6:nth-child(6n) {
        margin-right: 0; }
      .grid-laptop-omega6:nth-child(6n+1) {
        clear: left; }
      .grid-laptop-omega7:nth-child(7n) {
        margin-right: 0; }
      .grid-laptop-omega7:nth-child(7n+1) {
        clear: left; }
      .grid-laptop-omega8:nth-child(8n) {
        margin-right: 0; }
      .grid-laptop-omega8:nth-child(8n+1) {
        clear: left; }
      .grid-laptop-omega9:nth-child(9n) {
        margin-right: 0; }
      .grid-laptop-omega9:nth-child(9n+1) {
        clear: left; }
      .grid-laptop-omega10:nth-child(10n) {
        margin-right: 0; }
      .grid-laptop-omega10:nth-child(10n+1) {
        clear: left; }
      .grid-laptop-omega11:nth-child(11n) {
        margin-right: 0; }
      .grid-laptop-omega11:nth-child(11n+1) {
        clear: left; }
      .grid-laptop-omega12:nth-child(12n) {
        margin-right: 0; }
      .grid-laptop-omega12:nth-child(12n+1) {
        clear: left; }
      .grid-laptop-gap0-below {
        margin-bottom: 0px; }
      .grid-laptop-gap1-below {
        margin-bottom: 10px; }
      .grid-laptop-gap2-below {
        margin-bottom: 20px; }
      .grid-laptop-gap3-below {
        margin-bottom: 30px; }
      .grid-laptop-gap4-below {
        margin-bottom: 40px; }
      .grid-laptop-gap5-below {
        margin-bottom: 50px; }
      .grid-laptop-gap6-below {
        margin-bottom: 60px; }
      .grid-laptop-gap7-below {
        margin-bottom: 70px; }
      .grid-laptop-gap8-below {
        margin-bottom: 80px; }
      .grid-laptop-gap9-below {
        margin-bottom: 90px; }
      .grid-laptop-gap10-below {
        margin-bottom: 100px; }
      .grid-laptop-gap0-above {
        margin-top: 0px; }
      .grid-laptop-gap1-above {
        margin-top: 10px; }
      .grid-laptop-gap2-above {
        margin-top: 20px; }
      .grid-laptop-gap3-above {
        margin-top: 30px; }
      .grid-laptop-gap4-above {
        margin-top: 40px; }
      .grid-laptop-gap5-above {
        margin-top: 50px; }
      .grid-laptop-gap6-above {
        margin-top: 60px; }
      .grid-laptop-gap7-above {
        margin-top: 70px; }
      .grid-laptop-gap8-above {
        margin-top: 80px; }
      .grid-laptop-gap9-above {
        margin-top: 90px; }
      .grid-laptop-gap10-above {
        margin-top: 100px; } }
  @media screen and (max-width: 768px) {
    .grid {
      /* Does not support negative shift  */ }
      .grid-tablet-row {
        display: block; }
        .grid-tablet-row::after {
          clear: both;
          content: "";
          display: block; }
      .grid-tablet-outer-container {
        max-width: 1140px;
        margin-left: auto;
        margin-right: auto; }
        .grid-tablet-outer-container::after {
          clear: both;
          content: "";
          display: block; }
      .grid-tablet-fill-parent {
        width: 100%; }
      .grid-tablet-text-left {
        text-align: left; }
      .grid-tablet-text-center {
        text-align: center; }
      .grid-tablet-text-right {
        text-align: right; }
      .grid-tablet-hidden {
        display: none; }
      .grid-tablet-visible {
        display: block; }
      .grid-tablet-span1-nogap {
        float: left;
        display: block;
        width: 8.33333%; }
      .grid-tablet-span2-nogap {
        float: left;
        display: block;
        width: 16.66667%; }
      .grid-tablet-span3-nogap {
        float: left;
        display: block;
        width: 25%; }
      .grid-tablet-span4-nogap {
        float: left;
        display: block;
        width: 33.33333%; }
      .grid-tablet-span5-nogap {
        float: left;
        display: block;
        width: 41.66667%; }
      .grid-tablet-span6-nogap {
        float: left;
        display: block;
        width: 50%; }
      .grid-tablet-span7-nogap {
        float: left;
        display: block;
        width: 58.33333%; }
      .grid-tablet-span8-nogap {
        float: left;
        display: block;
        width: 66.66667%; }
      .grid-tablet-span9-nogap {
        float: left;
        display: block;
        width: 75%; }
      .grid-tablet-span10-nogap {
        float: left;
        display: block;
        width: 83.33333%; }
      .grid-tablet-span11-nogap {
        float: left;
        display: block;
        width: 91.66667%; }
      .grid-tablet-span12-nogap {
        float: left;
        display: block;
        width: 100%; }
      .grid-tablet-shift1-nogap {
        margin-left: 8.33333%; }
      .grid-tablet-shift2-nogap {
        margin-left: 16.66667%; }
      .grid-tablet-shift3-nogap {
        margin-left: 25%; }
      .grid-tablet-shift4-nogap {
        margin-left: 33.33333%; }
      .grid-tablet-shift5-nogap {
        margin-left: 41.66667%; }
      .grid-tablet-shift6-nogap {
        margin-left: 50%; }
      .grid-tablet-shift7-nogap {
        margin-left: 58.33333%; }
      .grid-tablet-shift8-nogap {
        margin-left: 66.66667%; }
      .grid-tablet-shift9-nogap {
        margin-left: 75%; }
      .grid-tablet-shift10-nogap {
        margin-left: 83.33333%; }
      .grid-tablet-shift11-nogap {
        margin-left: 91.66667%; }
      .grid-tablet-shift12-nogap {
        margin-left: 100%; }
      .grid-tablet-span1 {
        float: left;
        display: block;
        margin-right: 1.75801%;
        width: 6.72182%; }
        .grid-tablet-span1:last-child {
          margin-right: 0; }
      .grid-tablet-span2 {
        float: left;
        display: block;
        margin-right: 1.75801%;
        width: 15.20165%; }
        .grid-tablet-span2:last-child {
          margin-right: 0; }
      .grid-tablet-span3 {
        float: left;
        display: block;
        margin-right: 1.75801%;
        width: 23.68149%; }
        .grid-tablet-span3:last-child {
          margin-right: 0; }
      .grid-tablet-span4 {
        float: left;
        display: block;
        margin-right: 1.75801%;
        width: 32.16132%; }
        .grid-tablet-span4:last-child {
          margin-right: 0; }
      .grid-tablet-span5 {
        float: left;
        display: block;
        margin-right: 1.75801%;
        width: 40.64116%; }
        .grid-tablet-span5:last-child {
          margin-right: 0; }
      .grid-tablet-span6 {
        float: left;
        display: block;
        margin-right: 1.75801%;
        width: 49.12099%; }
        .grid-tablet-span6:last-child {
          margin-right: 0; }
      .grid-tablet-span7 {
        float: left;
        display: block;
        margin-right: 1.75801%;
        width: 57.60083%; }
        .grid-tablet-span7:last-child {
          margin-right: 0; }
      .grid-tablet-span8 {
        float: left;
        display: block;
        margin-right: 1.75801%;
        width: 66.08066%; }
        .grid-tablet-span8:last-child {
          margin-right: 0; }
      .grid-tablet-span9 {
        float: left;
        display: block;
        margin-right: 1.75801%;
        width: 74.5605%; }
        .grid-tablet-span9:last-child {
          margin-right: 0; }
      .grid-tablet-span10 {
        float: left;
        display: block;
        margin-right: 1.75801%;
        width: 83.04033%; }
        .grid-tablet-span10:last-child {
          margin-right: 0; }
      .grid-tablet-span11 {
        float: left;
        display: block;
        margin-right: 1.75801%;
        width: 91.52017%; }
        .grid-tablet-span11:last-child {
          margin-right: 0; }
      .grid-tablet-span12 {
        float: left;
        display: block;
        margin-right: 1.75801%;
        width: 100%; }
        .grid-tablet-span12:last-child {
          margin-right: 0; }
      .grid-tablet-shift0 {
        margin-left: 0%; }
      .grid-tablet-shift1 {
        margin-left: 8.47983%; }
      .grid-tablet-shift2 {
        margin-left: 16.95967%; }
      .grid-tablet-shift3 {
        margin-left: 25.4395%; }
      .grid-tablet-shift4 {
        margin-left: 33.91934%; }
      .grid-tablet-shift5 {
        margin-left: 42.39917%; }
      .grid-tablet-shift6 {
        margin-left: 50.87901%; }
      .grid-tablet-shift7 {
        margin-left: 59.35884%; }
      .grid-tablet-shift8 {
        margin-left: 67.83868%; }
      .grid-tablet-shift9 {
        margin-left: 76.31851%; }
      .grid-tablet-shift10 {
        margin-left: 84.79835%; }
      .grid-tablet-shift11 {
        margin-left: 93.27818%; }
      .grid-tablet-shift-negative1 {
        margin-left: -8.47983%; }
      .grid-tablet-shift-negative2 {
        margin-left: -16.95967%; }
      .grid-tablet-shift-negative3 {
        margin-left: -25.4395%; }
      .grid-tablet-shift-negative4 {
        margin-left: -33.91934%; }
      .grid-tablet-shift-negative5 {
        margin-left: -42.39917%; }
      .grid-tablet-shift-negative6 {
        margin-left: -50.87901%; }
      .grid-tablet-shift-negative7 {
        margin-left: -59.35884%; }
      .grid-tablet-shift-negative8 {
        margin-left: -67.83868%; }
      .grid-tablet-shift-negative9 {
        margin-left: -76.31851%; }
      .grid-tablet-shift-negative10 {
        margin-left: -84.79835%; }
      .grid-tablet-shift-negative11 {
        margin-left: -93.27818%; }
      .grid-tablet-shift-negative12 {
        margin-left: -101.75801%; }
      .grid-tablet-omega {
        margin-right: 0; }
      .grid-tablet-omega1:nth-child(1n) {
        margin-right: 0; }
      .grid-tablet-omega1:nth-child(1n+1) {
        clear: left; }
      .grid-tablet-omega2:nth-child(2n) {
        margin-right: 0; }
      .grid-tablet-omega2:nth-child(2n+1) {
        clear: left; }
      .grid-tablet-omega3:nth-child(3n) {
        margin-right: 0; }
      .grid-tablet-omega3:nth-child(3n+1) {
        clear: left; }
      .grid-tablet-omega4:nth-child(4n) {
        margin-right: 0; }
      .grid-tablet-omega4:nth-child(4n+1) {
        clear: left; }
      .grid-tablet-omega5:nth-child(5n) {
        margin-right: 0; }
      .grid-tablet-omega5:nth-child(5n+1) {
        clear: left; }
      .grid-tablet-omega6:nth-child(6n) {
        margin-right: 0; }
      .grid-tablet-omega6:nth-child(6n+1) {
        clear: left; }
      .grid-tablet-omega7:nth-child(7n) {
        margin-right: 0; }
      .grid-tablet-omega7:nth-child(7n+1) {
        clear: left; }
      .grid-tablet-omega8:nth-child(8n) {
        margin-right: 0; }
      .grid-tablet-omega8:nth-child(8n+1) {
        clear: left; }
      .grid-tablet-omega9:nth-child(9n) {
        margin-right: 0; }
      .grid-tablet-omega9:nth-child(9n+1) {
        clear: left; }
      .grid-tablet-omega10:nth-child(10n) {
        margin-right: 0; }
      .grid-tablet-omega10:nth-child(10n+1) {
        clear: left; }
      .grid-tablet-omega11:nth-child(11n) {
        margin-right: 0; }
      .grid-tablet-omega11:nth-child(11n+1) {
        clear: left; }
      .grid-tablet-omega12:nth-child(12n) {
        margin-right: 0; }
      .grid-tablet-omega12:nth-child(12n+1) {
        clear: left; }
      .grid-tablet-gap0-below {
        margin-bottom: 0px; }
      .grid-tablet-gap1-below {
        margin-bottom: 10px; }
      .grid-tablet-gap2-below {
        margin-bottom: 20px; }
      .grid-tablet-gap3-below {
        margin-bottom: 30px; }
      .grid-tablet-gap4-below {
        margin-bottom: 40px; }
      .grid-tablet-gap5-below {
        margin-bottom: 50px; }
      .grid-tablet-gap6-below {
        margin-bottom: 60px; }
      .grid-tablet-gap7-below {
        margin-bottom: 70px; }
      .grid-tablet-gap8-below {
        margin-bottom: 80px; }
      .grid-tablet-gap9-below {
        margin-bottom: 90px; }
      .grid-tablet-gap10-below {
        margin-bottom: 100px; }
      .grid-tablet-gap0-above {
        margin-top: 0px; }
      .grid-tablet-gap1-above {
        margin-top: 10px; }
      .grid-tablet-gap2-above {
        margin-top: 20px; }
      .grid-tablet-gap3-above {
        margin-top: 30px; }
      .grid-tablet-gap4-above {
        margin-top: 40px; }
      .grid-tablet-gap5-above {
        margin-top: 50px; }
      .grid-tablet-gap6-above {
        margin-top: 60px; }
      .grid-tablet-gap7-above {
        margin-top: 70px; }
      .grid-tablet-gap8-above {
        margin-top: 80px; }
      .grid-tablet-gap9-above {
        margin-top: 90px; }
      .grid-tablet-gap10-above {
        margin-top: 100px; } }
  @media screen and (min-width: 769px) {
    .grid {
      /* Does not support negative shift  */ }
      .grid-tabletabove-row {
        display: block; }
        .grid-tabletabove-row::after {
          clear: both;
          content: "";
          display: block; }
      .grid-tabletabove-outer-container {
        max-width: 1140px;
        margin-left: auto;
        margin-right: auto; }
        .grid-tabletabove-outer-container::after {
          clear: both;
          content: "";
          display: block; }
      .grid-tabletabove-fill-parent {
        width: 100%; }
      .grid-tabletabove-text-left {
        text-align: left; }
      .grid-tabletabove-text-center {
        text-align: center; }
      .grid-tabletabove-text-right {
        text-align: right; }
      .grid-tabletabove-hidden {
        display: none; }
      .grid-tabletabove-visible {
        display: block; }
      .grid-tabletabove-span1-nogap {
        float: left;
        display: block;
        width: 8.33333%; }
      .grid-tabletabove-span2-nogap {
        float: left;
        display: block;
        width: 16.66667%; }
      .grid-tabletabove-span3-nogap {
        float: left;
        display: block;
        width: 25%; }
      .grid-tabletabove-span4-nogap {
        float: left;
        display: block;
        width: 33.33333%; }
      .grid-tabletabove-span5-nogap {
        float: left;
        display: block;
        width: 41.66667%; }
      .grid-tabletabove-span6-nogap {
        float: left;
        display: block;
        width: 50%; }
      .grid-tabletabove-span7-nogap {
        float: left;
        display: block;
        width: 58.33333%; }
      .grid-tabletabove-span8-nogap {
        float: left;
        display: block;
        width: 66.66667%; }
      .grid-tabletabove-span9-nogap {
        float: left;
        display: block;
        width: 75%; }
      .grid-tabletabove-span10-nogap {
        float: left;
        display: block;
        width: 83.33333%; }
      .grid-tabletabove-span11-nogap {
        float: left;
        display: block;
        width: 91.66667%; }
      .grid-tabletabove-span12-nogap {
        float: left;
        display: block;
        width: 100%; }
      .grid-tabletabove-shift1-nogap {
        margin-left: 8.33333%; }
      .grid-tabletabove-shift2-nogap {
        margin-left: 16.66667%; }
      .grid-tabletabove-shift3-nogap {
        margin-left: 25%; }
      .grid-tabletabove-shift4-nogap {
        margin-left: 33.33333%; }
      .grid-tabletabove-shift5-nogap {
        margin-left: 41.66667%; }
      .grid-tabletabove-shift6-nogap {
        margin-left: 50%; }
      .grid-tabletabove-shift7-nogap {
        margin-left: 58.33333%; }
      .grid-tabletabove-shift8-nogap {
        margin-left: 66.66667%; }
      .grid-tabletabove-shift9-nogap {
        margin-left: 75%; }
      .grid-tabletabove-shift10-nogap {
        margin-left: 83.33333%; }
      .grid-tabletabove-shift11-nogap {
        margin-left: 91.66667%; }
      .grid-tabletabove-shift12-nogap {
        margin-left: 100%; }
      .grid-tabletabove-span1 {
        float: left;
        display: block;
        margin-right: 1.75801%;
        width: 6.72182%; }
        .grid-tabletabove-span1:last-child {
          margin-right: 0; }
      .grid-tabletabove-span2 {
        float: left;
        display: block;
        margin-right: 1.75801%;
        width: 15.20165%; }
        .grid-tabletabove-span2:last-child {
          margin-right: 0; }
      .grid-tabletabove-span3 {
        float: left;
        display: block;
        margin-right: 1.75801%;
        width: 23.68149%; }
        .grid-tabletabove-span3:last-child {
          margin-right: 0; }
      .grid-tabletabove-span4 {
        float: left;
        display: block;
        margin-right: 1.75801%;
        width: 32.16132%; }
        .grid-tabletabove-span4:last-child {
          margin-right: 0; }
      .grid-tabletabove-span5 {
        float: left;
        display: block;
        margin-right: 1.75801%;
        width: 40.64116%; }
        .grid-tabletabove-span5:last-child {
          margin-right: 0; }
      .grid-tabletabove-span6 {
        float: left;
        display: block;
        margin-right: 1.75801%;
        width: 49.12099%; }
        .grid-tabletabove-span6:last-child {
          margin-right: 0; }
      .grid-tabletabove-span7 {
        float: left;
        display: block;
        margin-right: 1.75801%;
        width: 57.60083%; }
        .grid-tabletabove-span7:last-child {
          margin-right: 0; }
      .grid-tabletabove-span8 {
        float: left;
        display: block;
        margin-right: 1.75801%;
        width: 66.08066%; }
        .grid-tabletabove-span8:last-child {
          margin-right: 0; }
      .grid-tabletabove-span9 {
        float: left;
        display: block;
        margin-right: 1.75801%;
        width: 74.5605%; }
        .grid-tabletabove-span9:last-child {
          margin-right: 0; }
      .grid-tabletabove-span10 {
        float: left;
        display: block;
        margin-right: 1.75801%;
        width: 83.04033%; }
        .grid-tabletabove-span10:last-child {
          margin-right: 0; }
      .grid-tabletabove-span11 {
        float: left;
        display: block;
        margin-right: 1.75801%;
        width: 91.52017%; }
        .grid-tabletabove-span11:last-child {
          margin-right: 0; }
      .grid-tabletabove-span12 {
        float: left;
        display: block;
        margin-right: 1.75801%;
        width: 100%; }
        .grid-tabletabove-span12:last-child {
          margin-right: 0; }
      .grid-tabletabove-shift0 {
        margin-left: 0%; }
      .grid-tabletabove-shift1 {
        margin-left: 8.47983%; }
      .grid-tabletabove-shift2 {
        margin-left: 16.95967%; }
      .grid-tabletabove-shift3 {
        margin-left: 25.4395%; }
      .grid-tabletabove-shift4 {
        margin-left: 33.91934%; }
      .grid-tabletabove-shift5 {
        margin-left: 42.39917%; }
      .grid-tabletabove-shift6 {
        margin-left: 50.87901%; }
      .grid-tabletabove-shift7 {
        margin-left: 59.35884%; }
      .grid-tabletabove-shift8 {
        margin-left: 67.83868%; }
      .grid-tabletabove-shift9 {
        margin-left: 76.31851%; }
      .grid-tabletabove-shift10 {
        margin-left: 84.79835%; }
      .grid-tabletabove-shift11 {
        margin-left: 93.27818%; }
      .grid-tabletabove-shift-negative1 {
        margin-left: -8.47983%; }
      .grid-tabletabove-shift-negative2 {
        margin-left: -16.95967%; }
      .grid-tabletabove-shift-negative3 {
        margin-left: -25.4395%; }
      .grid-tabletabove-shift-negative4 {
        margin-left: -33.91934%; }
      .grid-tabletabove-shift-negative5 {
        margin-left: -42.39917%; }
      .grid-tabletabove-shift-negative6 {
        margin-left: -50.87901%; }
      .grid-tabletabove-shift-negative7 {
        margin-left: -59.35884%; }
      .grid-tabletabove-shift-negative8 {
        margin-left: -67.83868%; }
      .grid-tabletabove-shift-negative9 {
        margin-left: -76.31851%; }
      .grid-tabletabove-shift-negative10 {
        margin-left: -84.79835%; }
      .grid-tabletabove-shift-negative11 {
        margin-left: -93.27818%; }
      .grid-tabletabove-shift-negative12 {
        margin-left: -101.75801%; }
      .grid-tabletabove-omega {
        margin-right: 0; }
      .grid-tabletabove-omega1:nth-child(1n) {
        margin-right: 0; }
      .grid-tabletabove-omega1:nth-child(1n+1) {
        clear: left; }
      .grid-tabletabove-omega2:nth-child(2n) {
        margin-right: 0; }
      .grid-tabletabove-omega2:nth-child(2n+1) {
        clear: left; }
      .grid-tabletabove-omega3:nth-child(3n) {
        margin-right: 0; }
      .grid-tabletabove-omega3:nth-child(3n+1) {
        clear: left; }
      .grid-tabletabove-omega4:nth-child(4n) {
        margin-right: 0; }
      .grid-tabletabove-omega4:nth-child(4n+1) {
        clear: left; }
      .grid-tabletabove-omega5:nth-child(5n) {
        margin-right: 0; }
      .grid-tabletabove-omega5:nth-child(5n+1) {
        clear: left; }
      .grid-tabletabove-omega6:nth-child(6n) {
        margin-right: 0; }
      .grid-tabletabove-omega6:nth-child(6n+1) {
        clear: left; }
      .grid-tabletabove-omega7:nth-child(7n) {
        margin-right: 0; }
      .grid-tabletabove-omega7:nth-child(7n+1) {
        clear: left; }
      .grid-tabletabove-omega8:nth-child(8n) {
        margin-right: 0; }
      .grid-tabletabove-omega8:nth-child(8n+1) {
        clear: left; }
      .grid-tabletabove-omega9:nth-child(9n) {
        margin-right: 0; }
      .grid-tabletabove-omega9:nth-child(9n+1) {
        clear: left; }
      .grid-tabletabove-omega10:nth-child(10n) {
        margin-right: 0; }
      .grid-tabletabove-omega10:nth-child(10n+1) {
        clear: left; }
      .grid-tabletabove-omega11:nth-child(11n) {
        margin-right: 0; }
      .grid-tabletabove-omega11:nth-child(11n+1) {
        clear: left; }
      .grid-tabletabove-omega12:nth-child(12n) {
        margin-right: 0; }
      .grid-tabletabove-omega12:nth-child(12n+1) {
        clear: left; }
      .grid-tabletabove-gap0-below {
        margin-bottom: 0px; }
      .grid-tabletabove-gap1-below {
        margin-bottom: 10px; }
      .grid-tabletabove-gap2-below {
        margin-bottom: 20px; }
      .grid-tabletabove-gap3-below {
        margin-bottom: 30px; }
      .grid-tabletabove-gap4-below {
        margin-bottom: 40px; }
      .grid-tabletabove-gap5-below {
        margin-bottom: 50px; }
      .grid-tabletabove-gap6-below {
        margin-bottom: 60px; }
      .grid-tabletabove-gap7-below {
        margin-bottom: 70px; }
      .grid-tabletabove-gap8-below {
        margin-bottom: 80px; }
      .grid-tabletabove-gap9-below {
        margin-bottom: 90px; }
      .grid-tabletabove-gap10-below {
        margin-bottom: 100px; }
      .grid-tabletabove-gap0-above {
        margin-top: 0px; }
      .grid-tabletabove-gap1-above {
        margin-top: 10px; }
      .grid-tabletabove-gap2-above {
        margin-top: 20px; }
      .grid-tabletabove-gap3-above {
        margin-top: 30px; }
      .grid-tabletabove-gap4-above {
        margin-top: 40px; }
      .grid-tabletabove-gap5-above {
        margin-top: 50px; }
      .grid-tabletabove-gap6-above {
        margin-top: 60px; }
      .grid-tabletabove-gap7-above {
        margin-top: 70px; }
      .grid-tabletabove-gap8-above {
        margin-top: 80px; }
      .grid-tabletabove-gap9-above {
        margin-top: 90px; }
      .grid-tabletabove-gap10-above {
        margin-top: 100px; } }
  @media screen and (max-width: 480px) {
    .grid {
      /* Does not support negative shift  */ }
      .grid-mobile-row {
        display: block; }
        .grid-mobile-row::after {
          clear: both;
          content: "";
          display: block; }
      .grid-mobile-outer-container {
        max-width: 1140px;
        margin-left: auto;
        margin-right: auto; }
        .grid-mobile-outer-container::after {
          clear: both;
          content: "";
          display: block; }
      .grid-mobile-fill-parent {
        width: 100%; }
      .grid-mobile-text-left {
        text-align: left; }
      .grid-mobile-text-center {
        text-align: center; }
      .grid-mobile-text-right {
        text-align: right; }
      .grid-mobile-hidden {
        display: none; }
      .grid-mobile-visible {
        display: block; }
      .grid-mobile-span1-nogap {
        float: left;
        display: block;
        width: 8.33333%; }
      .grid-mobile-span2-nogap {
        float: left;
        display: block;
        width: 16.66667%; }
      .grid-mobile-span3-nogap {
        float: left;
        display: block;
        width: 25%; }
      .grid-mobile-span4-nogap {
        float: left;
        display: block;
        width: 33.33333%; }
      .grid-mobile-span5-nogap {
        float: left;
        display: block;
        width: 41.66667%; }
      .grid-mobile-span6-nogap {
        float: left;
        display: block;
        width: 50%; }
      .grid-mobile-span7-nogap {
        float: left;
        display: block;
        width: 58.33333%; }
      .grid-mobile-span8-nogap {
        float: left;
        display: block;
        width: 66.66667%; }
      .grid-mobile-span9-nogap {
        float: left;
        display: block;
        width: 75%; }
      .grid-mobile-span10-nogap {
        float: left;
        display: block;
        width: 83.33333%; }
      .grid-mobile-span11-nogap {
        float: left;
        display: block;
        width: 91.66667%; }
      .grid-mobile-span12-nogap {
        float: left;
        display: block;
        width: 100%; }
      .grid-mobile-shift1-nogap {
        margin-left: 8.33333%; }
      .grid-mobile-shift2-nogap {
        margin-left: 16.66667%; }
      .grid-mobile-shift3-nogap {
        margin-left: 25%; }
      .grid-mobile-shift4-nogap {
        margin-left: 33.33333%; }
      .grid-mobile-shift5-nogap {
        margin-left: 41.66667%; }
      .grid-mobile-shift6-nogap {
        margin-left: 50%; }
      .grid-mobile-shift7-nogap {
        margin-left: 58.33333%; }
      .grid-mobile-shift8-nogap {
        margin-left: 66.66667%; }
      .grid-mobile-shift9-nogap {
        margin-left: 75%; }
      .grid-mobile-shift10-nogap {
        margin-left: 83.33333%; }
      .grid-mobile-shift11-nogap {
        margin-left: 91.66667%; }
      .grid-mobile-shift12-nogap {
        margin-left: 100%; }
      .grid-mobile-span1 {
        float: left;
        display: block;
        margin-right: 1.75801%;
        width: 6.72182%; }
        .grid-mobile-span1:last-child {
          margin-right: 0; }
      .grid-mobile-span2 {
        float: left;
        display: block;
        margin-right: 1.75801%;
        width: 15.20165%; }
        .grid-mobile-span2:last-child {
          margin-right: 0; }
      .grid-mobile-span3 {
        float: left;
        display: block;
        margin-right: 1.75801%;
        width: 23.68149%; }
        .grid-mobile-span3:last-child {
          margin-right: 0; }
      .grid-mobile-span4 {
        float: left;
        display: block;
        margin-right: 1.75801%;
        width: 32.16132%; }
        .grid-mobile-span4:last-child {
          margin-right: 0; }
      .grid-mobile-span5 {
        float: left;
        display: block;
        margin-right: 1.75801%;
        width: 40.64116%; }
        .grid-mobile-span5:last-child {
          margin-right: 0; }
      .grid-mobile-span6 {
        float: left;
        display: block;
        margin-right: 1.75801%;
        width: 49.12099%; }
        .grid-mobile-span6:last-child {
          margin-right: 0; }
      .grid-mobile-span7 {
        float: left;
        display: block;
        margin-right: 1.75801%;
        width: 57.60083%; }
        .grid-mobile-span7:last-child {
          margin-right: 0; }
      .grid-mobile-span8 {
        float: left;
        display: block;
        margin-right: 1.75801%;
        width: 66.08066%; }
        .grid-mobile-span8:last-child {
          margin-right: 0; }
      .grid-mobile-span9 {
        float: left;
        display: block;
        margin-right: 1.75801%;
        width: 74.5605%; }
        .grid-mobile-span9:last-child {
          margin-right: 0; }
      .grid-mobile-span10 {
        float: left;
        display: block;
        margin-right: 1.75801%;
        width: 83.04033%; }
        .grid-mobile-span10:last-child {
          margin-right: 0; }
      .grid-mobile-span11 {
        float: left;
        display: block;
        margin-right: 1.75801%;
        width: 91.52017%; }
        .grid-mobile-span11:last-child {
          margin-right: 0; }
      .grid-mobile-span12 {
        float: left;
        display: block;
        margin-right: 1.75801%;
        width: 100%; }
        .grid-mobile-span12:last-child {
          margin-right: 0; }
      .grid-mobile-shift0 {
        margin-left: 0%; }
      .grid-mobile-shift1 {
        margin-left: 8.47983%; }
      .grid-mobile-shift2 {
        margin-left: 16.95967%; }
      .grid-mobile-shift3 {
        margin-left: 25.4395%; }
      .grid-mobile-shift4 {
        margin-left: 33.91934%; }
      .grid-mobile-shift5 {
        margin-left: 42.39917%; }
      .grid-mobile-shift6 {
        margin-left: 50.87901%; }
      .grid-mobile-shift7 {
        margin-left: 59.35884%; }
      .grid-mobile-shift8 {
        margin-left: 67.83868%; }
      .grid-mobile-shift9 {
        margin-left: 76.31851%; }
      .grid-mobile-shift10 {
        margin-left: 84.79835%; }
      .grid-mobile-shift11 {
        margin-left: 93.27818%; }
      .grid-mobile-shift-negative1 {
        margin-left: -8.47983%; }
      .grid-mobile-shift-negative2 {
        margin-left: -16.95967%; }
      .grid-mobile-shift-negative3 {
        margin-left: -25.4395%; }
      .grid-mobile-shift-negative4 {
        margin-left: -33.91934%; }
      .grid-mobile-shift-negative5 {
        margin-left: -42.39917%; }
      .grid-mobile-shift-negative6 {
        margin-left: -50.87901%; }
      .grid-mobile-shift-negative7 {
        margin-left: -59.35884%; }
      .grid-mobile-shift-negative8 {
        margin-left: -67.83868%; }
      .grid-mobile-shift-negative9 {
        margin-left: -76.31851%; }
      .grid-mobile-shift-negative10 {
        margin-left: -84.79835%; }
      .grid-mobile-shift-negative11 {
        margin-left: -93.27818%; }
      .grid-mobile-shift-negative12 {
        margin-left: -101.75801%; }
      .grid-mobile-omega {
        margin-right: 0; }
      .grid-mobile-omega1:nth-child(1n) {
        margin-right: 0; }
      .grid-mobile-omega1:nth-child(1n+1) {
        clear: left; }
      .grid-mobile-omega2:nth-child(2n) {
        margin-right: 0; }
      .grid-mobile-omega2:nth-child(2n+1) {
        clear: left; }
      .grid-mobile-omega3:nth-child(3n) {
        margin-right: 0; }
      .grid-mobile-omega3:nth-child(3n+1) {
        clear: left; }
      .grid-mobile-omega4:nth-child(4n) {
        margin-right: 0; }
      .grid-mobile-omega4:nth-child(4n+1) {
        clear: left; }
      .grid-mobile-omega5:nth-child(5n) {
        margin-right: 0; }
      .grid-mobile-omega5:nth-child(5n+1) {
        clear: left; }
      .grid-mobile-omega6:nth-child(6n) {
        margin-right: 0; }
      .grid-mobile-omega6:nth-child(6n+1) {
        clear: left; }
      .grid-mobile-omega7:nth-child(7n) {
        margin-right: 0; }
      .grid-mobile-omega7:nth-child(7n+1) {
        clear: left; }
      .grid-mobile-omega8:nth-child(8n) {
        margin-right: 0; }
      .grid-mobile-omega8:nth-child(8n+1) {
        clear: left; }
      .grid-mobile-omega9:nth-child(9n) {
        margin-right: 0; }
      .grid-mobile-omega9:nth-child(9n+1) {
        clear: left; }
      .grid-mobile-omega10:nth-child(10n) {
        margin-right: 0; }
      .grid-mobile-omega10:nth-child(10n+1) {
        clear: left; }
      .grid-mobile-omega11:nth-child(11n) {
        margin-right: 0; }
      .grid-mobile-omega11:nth-child(11n+1) {
        clear: left; }
      .grid-mobile-omega12:nth-child(12n) {
        margin-right: 0; }
      .grid-mobile-omega12:nth-child(12n+1) {
        clear: left; }
      .grid-mobile-gap0-below {
        margin-bottom: 0px; }
      .grid-mobile-gap1-below {
        margin-bottom: 10px; }
      .grid-mobile-gap2-below {
        margin-bottom: 20px; }
      .grid-mobile-gap3-below {
        margin-bottom: 30px; }
      .grid-mobile-gap4-below {
        margin-bottom: 40px; }
      .grid-mobile-gap5-below {
        margin-bottom: 50px; }
      .grid-mobile-gap6-below {
        margin-bottom: 60px; }
      .grid-mobile-gap7-below {
        margin-bottom: 70px; }
      .grid-mobile-gap8-below {
        margin-bottom: 80px; }
      .grid-mobile-gap9-below {
        margin-bottom: 90px; }
      .grid-mobile-gap10-below {
        margin-bottom: 100px; }
      .grid-mobile-gap0-above {
        margin-top: 0px; }
      .grid-mobile-gap1-above {
        margin-top: 10px; }
      .grid-mobile-gap2-above {
        margin-top: 20px; }
      .grid-mobile-gap3-above {
        margin-top: 30px; }
      .grid-mobile-gap4-above {
        margin-top: 40px; }
      .grid-mobile-gap5-above {
        margin-top: 50px; }
      .grid-mobile-gap6-above {
        margin-top: 60px; }
      .grid-mobile-gap7-above {
        margin-top: 70px; }
      .grid-mobile-gap8-above {
        margin-top: 80px; }
      .grid-mobile-gap9-above {
        margin-top: 90px; }
      .grid-mobile-gap10-above {
        margin-top: 100px; } }

/*############
Grid code
############*/
@media screen and (max-width: 1180px) {
  .grid-outer-container {
    max-width: 960px;
    margin-left: auto;
    margin-right: auto; }
    .grid-outer-container::after {
      clear: both;
      content: "";
      display: block; } }

@media screen and (max-width: 996px) {
  .grid-outer-container {
    max-width: calc(100% - 20px);
    margin-left: auto;
    margin-right: auto; }
    .grid-outer-container::after {
      clear: both;
      content: "";
      display: block; } }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmNzcyIsInNvdXJjZXMiOlsiYXBwLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9fYm91cmJvbi5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvc2V0dGluZ3MvX3ByZWZpeGVyLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9zZXR0aW5ncy9fcHgtdG8tZW0uc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL3NldHRpbmdzL19hc3NldC1waXBlbGluZS5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19hc3NpZ24taW5wdXRzLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX2NvbnRhaW5zLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX2NvbnRhaW5zLWZhbHN5LnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX2lzLWxlbmd0aC5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19pcy1saWdodC5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19pcy1udW1iZXIuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9faXMtc2l6ZS5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19weC10by1lbS5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19weC10by1yZW0uc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fc2hhZGUuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fc3RyaXAtdW5pdHMuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fdGludC5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL190cmFuc2l0aW9uLXByb3BlcnR5LW5hbWUuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fdW5wYWNrLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX21vZHVsYXItc2NhbGUuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX2NvbnZlcnQtdW5pdHMuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX2RpcmVjdGlvbmFsLXZhbHVlcy5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fZm9udC1zb3VyY2UtZGVjbGFyYXRpb24uc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX2dyYWRpZW50LXBvc2l0aW9ucy1wYXJzZXIuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX2xpbmVhci1hbmdsZS1wYXJzZXIuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX2xpbmVhci1ncmFkaWVudC1wYXJzZXIuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX2xpbmVhci1wb3NpdGlvbnMtcGFyc2VyLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19saW5lYXItc2lkZS1jb3JuZXItcGFyc2VyLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19yYWRpYWwtYXJnLXBhcnNlci5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fcmFkaWFsLXBvc2l0aW9ucy1wYXJzZXIuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX3JhZGlhbC1ncmFkaWVudC1wYXJzZXIuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX3JlbmRlci1ncmFkaWVudHMuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX3NoYXBlLXNpemUtc3RyaXBwZXIuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX3N0ci10by1udW0uc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2FuaW1hdGlvbi5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fYXBwZWFyYW5jZS5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fYmFja2ZhY2UtdmlzaWJpbGl0eS5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fYmFja2dyb3VuZC5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fYmFja2dyb3VuZC1pbWFnZS5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fYm9yZGVyLWltYWdlLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19jYWxjLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19jb2x1bW5zLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19maWx0ZXIuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2ZsZXgtYm94LnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19mb250LWZhY2Uuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2ZvbnQtZmVhdHVyZS1zZXR0aW5ncy5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9faGlkcGktbWVkaWEtcXVlcnkuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2h5cGhlbnMuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2ltYWdlLXJlbmRlcmluZy5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fa2V5ZnJhbWVzLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19saW5lYXItZ3JhZGllbnQuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX3BlcnNwZWN0aXZlLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19wbGFjZWhvbGRlci5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fcmFkaWFsLWdyYWRpZW50LnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19zZWxlY3Rpb24uc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX3RleHQtZGVjb3JhdGlvbi5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fdHJhbnNmb3JtLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL190cmFuc2l0aW9uLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL191c2VyLXNlbGVjdC5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19ib3JkZXItY29sb3Iuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fYm9yZGVyLXJhZGl1cy5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19ib3JkZXItc3R5bGUuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fYm9yZGVyLXdpZHRoLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX2J1dHRvbnMuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fY2xlYXJmaXguc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fZWxsaXBzaXMuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fZm9udC1zdGFja3Muc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9faGlkZS10ZXh0LnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX21hcmdpbi5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19wYWRkaW5nLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX3Bvc2l0aW9uLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX3ByZWZpeGVyLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX3JldGluYS1pbWFnZS5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19zaXplLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX3RleHQtaW5wdXRzLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX3RpbWluZy1mdW5jdGlvbnMuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fdHJpYW5nbGUuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fd29yZC13cmFwLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9fYm91cmJvbi1kZXByZWNhdGVkLXVwY29taW5nLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL25lYXQvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9fbmVhdC1oZWxwZXJzLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL25lYXQvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9taXhpbnMvX2NsZWFyZml4LnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL25lYXQvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX3ByaXZhdGUuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvbmVhdC9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fbmV3LWJyZWFrcG9pbnQuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvbmVhdC9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL3NldHRpbmdzL19ncmlkLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL25lYXQvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9zZXR0aW5ncy9fdmlzdWFsLWdyaWQuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvbmVhdC9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL3NldHRpbmdzL19kaXNhYmxlLXdhcm5pbmdzLnNjc3MiLCJjb25maWcuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvbmVhdC9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL19uZWF0LnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL25lYXQvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9ncmlkL19wcml2YXRlLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL25lYXQvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9ncmlkL19ib3gtc2l6aW5nLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL25lYXQvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9ncmlkL19vbWVnYS5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9uZWF0L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZ3JpZC9fb3V0ZXItY29udGFpbmVyLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL25lYXQvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9ncmlkL19zcGFuLWNvbHVtbnMuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvbmVhdC9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2dyaWQvX3Jvdy5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9uZWF0L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZ3JpZC9fc2hpZnQuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvbmVhdC9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2dyaWQvX3BhZC5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9uZWF0L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZ3JpZC9fZmlsbC1wYXJlbnQuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvbmVhdC9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2dyaWQvX21lZGlhLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL25lYXQvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9ncmlkL190by1kZXByZWNhdGUuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvbmVhdC9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2dyaWQvX3Zpc3VhbC1ncmlkLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL25lYXQvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9ncmlkL19kaXNwbGF5LWNvbnRleHQuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvbmVhdC9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2dyaWQvX2RpcmVjdGlvbi1jb250ZXh0LnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2tpY2tzdGFydC1zdHlsZS9fZ3JpZC5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9raWNrc3RhcnQtc3R5bGUvbWl4aW5zL192ZXJ0aWNhbC1jZW50ZXItY2hpbGQuc2NzcyIsImJhc2Uuc2NzcyIsImhlbHBlcnMuc2NzcyIsImNvbXBvbmVudHMvX2Jhbm5lci5zY3NzIiwiY29tcG9uZW50cy9fdGl0bGUuc2NzcyIsImNvbXBvbmVudHMvX2xpbmtib3guc2NzcyIsImNvbXBvbmVudHMvX3Byb2R1Y3Rib3guc2NzcyIsImNvbXBvbmVudHMvX3Byb2ZpbGVib3guc2NzcyIsImNvbXBvbmVudHMvX3F1b3RlLnNjc3MiLCJjb21wb25lbnRzL19idXR0b24uc2NzcyIsImNvbXBvbmVudHMvX3ZpZXdlci5zY3NzIiwiY29tcG9uZW50cy9fYWNjb3JkaW9uLnNjc3MiLCJjb21wb25lbnRzL190YWJzLnNjc3MiLCJjb21wb25lbnRzL190YWJsZWJveC5zY3NzIiwiY29tcG9uZW50cy9fbWFpbmxpbmsuc2NzcyIsImNvbXBvbmVudHMvX2Nob3Nlbi1jb250YWluZXIuc2NzcyIsImNvbXBvbmVudHMvX2NoZWNrYm94LnNjc3MiLCJjb21wb25lbnRzL19hc2lkZWxpbmsuc2NzcyIsImNvbXBvbmVudHMvX2Zvb3Rlci5zY3NzIiwiY29tcG9uZW50cy9fc29jaWFscy5zY3NzIiwiY29tcG9uZW50cy9fdGVhc2VyLnNjc3MiLCJjb21wb25lbnRzL19oZXJvLnNjc3MiLCJjb21wb25lbnRzL19icmVhZGNydW1icy5zY3NzIiwiY29tcG9uZW50cy9fbWVudS5zY3NzIiwiY29tcG9uZW50cy9faGVhZGVyLnNjc3MiLCJjb21wb25lbnRzL19zZWFyY2hpdGVtLnNjc3MiLCJjb21wb25lbnRzL19zdWJtZW51LnNjc3MiLCJjb21wb25lbnRzL190ZWFzZXJib3guc2NzcyIsImNvbXBvbmVudHMvX3NsaWRlc2hvdy5zY3NzIiwiY29tcG9uZW50cy9fY29udGFjdGZvcm0uc2NzcyIsImNvbXBvbmVudHMvX3ZpZGVvLnNjc3MiLCJjb21wb25lbnRzL19tb2RhbC5zY3NzIiwiY29tcG9uZW50cy9fY2hvaWNlYmFyLnNjc3MiLCJjb21wb25lbnRzL19tb2JpbGVoZWFkZXIuc2NzcyIsImNvbXBvbmVudHMvX21vYmlsZW1lbnUuc2NzcyIsImNvbXBvbmVudHMvX2NvbnRvdXIuc2NzcyIsImNvbXBvbmVudHMvX2xhYmVsYXV0eS5zY3NzIiwiY29tcG9uZW50cy9fcnRlLnNjc3MiLCJjb21wb25lbnRzL19zdXBwbGllci1sb2dpbi5zY3NzIiwiY29tcG9uZW50cy9fc2VwZXJhdG9yLnNjc3MiLCJjb21wb25lbnRzL192aWRlb2JveC5zY3NzIiwiY29tcG9uZW50cy9fZmlsdGVyaXRlbS5zY3NzIiwiY29tcG9uZW50cy9fZW1wbG95ZWVzLnNjc3MiXSwic291cmNlc0NvbnRlbnQiOlsiQGltcG9ydCBcIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvbm9ybWFsaXplLWNzcy9ub3JtYWxpemUuY3NzXCI7XG5AaW1wb3J0IFwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb250LWF3ZXNvbWUvY3NzL2ZvbnQtYXdlc29tZS5jc3NcIjtcblxuJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiBmYWxzZTtcblxuQGltcG9ydCBcIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2JvdXJib25cIjtcbkBpbXBvcnQgXCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL25lYXQvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9uZWF0LWhlbHBlcnNcIjtcbkBpbXBvcnQgXCJjb25maWdcIjtcbkBpbXBvcnQgXCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL25lYXQvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9uZWF0XCI7XG5AaW1wb3J0IFwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9raWNrc3RhcnQtc3R5bGUvZ3JpZFwiO1xuQGltcG9ydCBcIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMva2lja3N0YXJ0LXN0eWxlL21peGlucy92ZXJ0aWNhbC1jZW50ZXItY2hpbGRcIjtcbkBpbXBvcnQgXCJiYXNlXCI7XG5AaW1wb3J0IFwiaGVscGVyc1wiO1xuXG5AaW1wb3J0IFwiY29tcG9uZW50cy9iYW5uZXJcIixcbiAgICAgICAgXCJjb21wb25lbnRzL3RpdGxlXCIsXG4gICAgICAgIFwiY29tcG9uZW50cy9saW5rYm94XCIsXG4gICAgICAgIFwiY29tcG9uZW50cy9wcm9kdWN0Ym94XCIsXG4gICAgICAgIFwiY29tcG9uZW50cy9wcm9maWxlYm94XCIsXG4gICAgICAgIFwiY29tcG9uZW50cy9xdW90ZVwiLFxuICAgICAgICBcImNvbXBvbmVudHMvYnV0dG9uXCIsXG4gICAgICAgIFwiY29tcG9uZW50cy92aWV3ZXJcIixcbiAgICAgICAgXCJjb21wb25lbnRzL2FjY29yZGlvblwiLFxuICAgICAgICBcImNvbXBvbmVudHMvdGFic1wiLFxuICAgICAgICBcImNvbXBvbmVudHMvdGFibGVib3hcIixcbiAgICAgICAgXCJjb21wb25lbnRzL21haW5saW5rXCIsXG4gICAgICAgIFwiY29tcG9uZW50cy9jaG9zZW4tY29udGFpbmVyXCIsXG4gICAgICAgIFwiY29tcG9uZW50cy9jaGVja2JveFwiLFxuICAgICAgICBcImNvbXBvbmVudHMvYXNpZGVsaW5rXCIsXG4gICAgICAgIFwiY29tcG9uZW50cy9mb290ZXJcIixcbiAgICAgICAgXCJjb21wb25lbnRzL3NvY2lhbHNcIixcbiAgICAgICAgXCJjb21wb25lbnRzL3RlYXNlclwiLFxuICAgICAgICBcImNvbXBvbmVudHMvaGVyb1wiLFxuICAgICAgICBcImNvbXBvbmVudHMvYnJlYWRjcnVtYnNcIixcbiAgICAgICAgXCJjb21wb25lbnRzL21lbnVcIixcbiAgICAgICAgXCJjb21wb25lbnRzL2hlYWRlclwiLFxuICAgICAgICBcImNvbXBvbmVudHMvc2VhcmNoaXRlbVwiLFxuICAgICAgICBcImNvbXBvbmVudHMvc3VibWVudVwiLFxuICAgICAgICBcImNvbXBvbmVudHMvdGVhc2VyYm94XCIsXG4gICAgICAgIFwiY29tcG9uZW50cy9zbGlkZXNob3dcIixcbiAgICAgICAgXCJjb21wb25lbnRzL2NvbnRhY3Rmb3JtXCIsXG4gICAgICAgIFwiY29tcG9uZW50cy92aWRlb1wiLFxuICAgICAgICBcImNvbXBvbmVudHMvbW9kYWxcIixcbiAgICAgICAgXCJjb21wb25lbnRzL2Nob2ljZWJhclwiLFxuICAgICAgICBcImNvbXBvbmVudHMvbW9iaWxlaGVhZGVyXCIsXG4gICAgICAgIFwiY29tcG9uZW50cy9tb2JpbGVtZW51XCIsXG4gICAgICAgIFwiY29tcG9uZW50cy9jb250b3VyXCIsXG4gICAgICAgIFwiY29tcG9uZW50cy9sYWJlbGF1dHlcIixcbiAgICAgICAgXCJjb21wb25lbnRzL3J0ZVwiLFxuICAgICAgICBcImNvbXBvbmVudHMvc3VwcGxpZXItbG9naW5cIixcbiAgICAgICAgXCJjb21wb25lbnRzL3NlcGVyYXRvclwiLFxuICAgICAgICBcImNvbXBvbmVudHMvdmlkZW9ib3hcIixcbiAgICAgICAgXCJjb21wb25lbnRzL2ZpbHRlcml0ZW1cIixcbiAgICAgICAgXCJjb21wb25lbnRzL2VtcGxveWVlc1wiO1xuXG5cbkBpbmNsdWRlIGdyaWQoMTAsIChkZXNrdG9wOiAkZGVza3RvcCwgbGFwdG9wOiAkbGFwdG9wLCB0YWJsZXQ6ICR0YWJsZXQsIHRhYmxldGFib3ZlOiAkdGFibGV0YWJvdmUsIG1vYmlsZTogJG1vYmlsZSkpO1xuXG5cbi8qIyMjIyMjIyMjIyMjXG5HcmlkIGNvZGVcbiMjIyMjIyMjIyMjIyovXG4uZ3JpZC1vdXRlci1jb250YWluZXIge1xuICBAaW5jbHVkZSBtZWRpYSgkZGVza3RvcCkge1xuXHRcdEBpbmNsdWRlIG91dGVyLWNvbnRhaW5lcig5NjBweCk7XG5cdH1cbiAgQGluY2x1ZGUgbWVkaWEoJGxhcHRvcCkge1xuICAgIEBpbmNsdWRlIG91dGVyLWNvbnRhaW5lcihjYWxjKDEwMCUgLSAyMHB4KSk7XG4gIH1cbn1cbiIsIi8vIEJvdXJib24gNC4yLjdcbi8vIGh0dHA6Ly9ib3VyYm9uLmlvXG4vLyBDb3B5cmlnaHQgMjAxMS0yMDE1IHRob3VnaHRib3QsIGluYy5cbi8vIE1JVCBMaWNlbnNlXG5cbkBpbXBvcnQgXCJzZXR0aW5ncy9wcmVmaXhlclwiO1xuQGltcG9ydCBcInNldHRpbmdzL3B4LXRvLWVtXCI7XG5AaW1wb3J0IFwic2V0dGluZ3MvYXNzZXQtcGlwZWxpbmVcIjtcblxuQGltcG9ydCBcImZ1bmN0aW9ucy9hc3NpZ24taW5wdXRzXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL2NvbnRhaW5zXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL2NvbnRhaW5zLWZhbHN5XCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL2lzLWxlbmd0aFwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9pcy1saWdodFwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9pcy1udW1iZXJcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvaXMtc2l6ZVwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9weC10by1lbVwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9weC10by1yZW1cIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvc2hhZGVcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvc3RyaXAtdW5pdHNcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvdGludFwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy90cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvdW5wYWNrXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL21vZHVsYXItc2NhbGVcIjtcblxuQGltcG9ydCBcImhlbHBlcnMvY29udmVydC11bml0c1wiO1xuQGltcG9ydCBcImhlbHBlcnMvZGlyZWN0aW9uYWwtdmFsdWVzXCI7XG5AaW1wb3J0IFwiaGVscGVycy9mb250LXNvdXJjZS1kZWNsYXJhdGlvblwiO1xuQGltcG9ydCBcImhlbHBlcnMvZ3JhZGllbnQtcG9zaXRpb25zLXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvbGluZWFyLWFuZ2xlLXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvbGluZWFyLWdyYWRpZW50LXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvbGluZWFyLXBvc2l0aW9ucy1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL2xpbmVhci1zaWRlLWNvcm5lci1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL3JhZGlhbC1hcmctcGFyc2VyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9yYWRpYWwtcG9zaXRpb25zLXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvcmFkaWFsLWdyYWRpZW50LXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvcmVuZGVyLWdyYWRpZW50c1wiO1xuQGltcG9ydCBcImhlbHBlcnMvc2hhcGUtc2l6ZS1zdHJpcHBlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvc3RyLXRvLW51bVwiO1xuXG5AaW1wb3J0IFwiY3NzMy9hbmltYXRpb25cIjtcbkBpbXBvcnQgXCJjc3MzL2FwcGVhcmFuY2VcIjtcbkBpbXBvcnQgXCJjc3MzL2JhY2tmYWNlLXZpc2liaWxpdHlcIjtcbkBpbXBvcnQgXCJjc3MzL2JhY2tncm91bmRcIjtcbkBpbXBvcnQgXCJjc3MzL2JhY2tncm91bmQtaW1hZ2VcIjtcbkBpbXBvcnQgXCJjc3MzL2JvcmRlci1pbWFnZVwiO1xuQGltcG9ydCBcImNzczMvY2FsY1wiO1xuQGltcG9ydCBcImNzczMvY29sdW1uc1wiO1xuQGltcG9ydCBcImNzczMvZmlsdGVyXCI7XG5AaW1wb3J0IFwiY3NzMy9mbGV4LWJveFwiO1xuQGltcG9ydCBcImNzczMvZm9udC1mYWNlXCI7XG5AaW1wb3J0IFwiY3NzMy9mb250LWZlYXR1cmUtc2V0dGluZ3NcIjtcbkBpbXBvcnQgXCJjc3MzL2hpZHBpLW1lZGlhLXF1ZXJ5XCI7XG5AaW1wb3J0IFwiY3NzMy9oeXBoZW5zXCI7XG5AaW1wb3J0IFwiY3NzMy9pbWFnZS1yZW5kZXJpbmdcIjtcbkBpbXBvcnQgXCJjc3MzL2tleWZyYW1lc1wiO1xuQGltcG9ydCBcImNzczMvbGluZWFyLWdyYWRpZW50XCI7XG5AaW1wb3J0IFwiY3NzMy9wZXJzcGVjdGl2ZVwiO1xuQGltcG9ydCBcImNzczMvcGxhY2Vob2xkZXJcIjtcbkBpbXBvcnQgXCJjc3MzL3JhZGlhbC1ncmFkaWVudFwiO1xuQGltcG9ydCBcImNzczMvc2VsZWN0aW9uXCI7XG5AaW1wb3J0IFwiY3NzMy90ZXh0LWRlY29yYXRpb25cIjtcbkBpbXBvcnQgXCJjc3MzL3RyYW5zZm9ybVwiO1xuQGltcG9ydCBcImNzczMvdHJhbnNpdGlvblwiO1xuQGltcG9ydCBcImNzczMvdXNlci1zZWxlY3RcIjtcblxuQGltcG9ydCBcImFkZG9ucy9ib3JkZXItY29sb3JcIjtcbkBpbXBvcnQgXCJhZGRvbnMvYm9yZGVyLXJhZGl1c1wiO1xuQGltcG9ydCBcImFkZG9ucy9ib3JkZXItc3R5bGVcIjtcbkBpbXBvcnQgXCJhZGRvbnMvYm9yZGVyLXdpZHRoXCI7XG5AaW1wb3J0IFwiYWRkb25zL2J1dHRvbnNcIjtcbkBpbXBvcnQgXCJhZGRvbnMvY2xlYXJmaXhcIjtcbkBpbXBvcnQgXCJhZGRvbnMvZWxsaXBzaXNcIjtcbkBpbXBvcnQgXCJhZGRvbnMvZm9udC1zdGFja3NcIjtcbkBpbXBvcnQgXCJhZGRvbnMvaGlkZS10ZXh0XCI7XG5AaW1wb3J0IFwiYWRkb25zL21hcmdpblwiO1xuQGltcG9ydCBcImFkZG9ucy9wYWRkaW5nXCI7XG5AaW1wb3J0IFwiYWRkb25zL3Bvc2l0aW9uXCI7XG5AaW1wb3J0IFwiYWRkb25zL3ByZWZpeGVyXCI7XG5AaW1wb3J0IFwiYWRkb25zL3JldGluYS1pbWFnZVwiO1xuQGltcG9ydCBcImFkZG9ucy9zaXplXCI7XG5AaW1wb3J0IFwiYWRkb25zL3RleHQtaW5wdXRzXCI7XG5AaW1wb3J0IFwiYWRkb25zL3RpbWluZy1mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCJhZGRvbnMvdHJpYW5nbGVcIjtcbkBpbXBvcnQgXCJhZGRvbnMvd29yZC13cmFwXCI7XG5cbkBpbXBvcnQgXCJib3VyYm9uLWRlcHJlY2F0ZWQtdXBjb21pbmdcIjtcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIEdsb2JhbCB2YXJpYWJsZXMgdG8gZW5hYmxlIG9yIGRpc2FibGUgdmVuZG9yIHByZWZpeGVzXG5cbiRwcmVmaXgtZm9yLXdlYmtpdDogICAgdHJ1ZSAhZGVmYXVsdDtcbiRwcmVmaXgtZm9yLW1vemlsbGE6ICAgdHJ1ZSAhZGVmYXVsdDtcbiRwcmVmaXgtZm9yLW1pY3Jvc29mdDogdHJ1ZSAhZGVmYXVsdDtcbiRwcmVmaXgtZm9yLW9wZXJhOiAgICAgdHJ1ZSAhZGVmYXVsdDtcbiRwcmVmaXgtZm9yLXNwZWM6ICAgICAgdHJ1ZSAhZGVmYXVsdDtcbiIsIiRlbS1iYXNlOiAxNnB4ICFkZWZhdWx0O1xuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQSBnbG9iYWwgc2V0dGluZyB0byBlbmFibGUgb3IgZGlzYWJsZSB0aGUgYCRhc3NldC1waXBlbGluZWAgdmFyaWFibGUgZm9yIGFsbCBmdW5jdGlvbnMgdGhhdCBhY2NlcHQgaXQuXG4vLy9cbi8vLyBAdHlwZSBCb29sXG5cbiRhc3NldC1waXBlbGluZTogZmFsc2UgIWRlZmF1bHQ7XG4iLCJAZnVuY3Rpb24gYXNzaWduLWlucHV0cygkaW5wdXRzLCAkcHNldWRvOiBudWxsKSB7XG4gICRsaXN0OiAoKTtcblxuICBAZWFjaCAkaW5wdXQgaW4gJGlucHV0cyB7XG4gICAgJGlucHV0OiB1bnF1b3RlKCRpbnB1dCk7XG4gICAgJGlucHV0OiBpZigkcHNldWRvLCAkaW5wdXQgKyBcIjpcIiArICRwc2V1ZG8sICRpbnB1dCk7XG4gICAgJGxpc3Q6IGFwcGVuZCgkbGlzdCwgJGlucHV0LCBjb21tYSk7XG4gIH1cblxuICBAcmV0dXJuICRsaXN0O1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQ2hlY2tzIGlmIGEgbGlzdCBjb250YWlucyBhIHZhbHVlKHMpLlxuLy8vXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRsaXN0XG4vLy8gICBUaGUgbGlzdCB0byBjaGVjayBhZ2FpbnN0LlxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkdmFsdWVzXG4vLy8gICBBIHNpbmdsZSB2YWx1ZSBvciBsaXN0IG9mIHZhbHVlcyB0byBjaGVjayBmb3IuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIGNvbnRhaW5zKCRsaXN0LCAkdmFsdWUpXG4vLy9cbi8vLyBAcmV0dXJuIHtCb29sfVxuXG5AZnVuY3Rpb24gY29udGFpbnMoJGxpc3QsICR2YWx1ZXMuLi4pIHtcbiAgQGVhY2ggJHZhbHVlIGluICR2YWx1ZXMge1xuICAgIEBpZiB0eXBlLW9mKGluZGV4KCRsaXN0LCAkdmFsdWUpKSAhPSBcIm51bWJlclwiIHtcbiAgICAgIEByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiB0cnVlO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQ2hlY2tzIGlmIGEgbGlzdCBkb2VzIG5vdCBjb250YWlucyBhIHZhbHVlLlxuLy8vXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRsaXN0XG4vLy8gICBUaGUgbGlzdCB0byBjaGVjayBhZ2FpbnN0LlxuLy8vXG4vLy8gQHJldHVybiB7Qm9vbH1cblxuQGZ1bmN0aW9uIGNvbnRhaW5zLWZhbHN5KCRsaXN0KSB7XG4gIEBlYWNoICRpdGVtIGluICRsaXN0IHtcbiAgICBAaWYgbm90ICRpdGVtIHtcbiAgICAgIEByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuIGZhbHNlO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQ2hlY2tzIGZvciBhIHZhbGlkIENTUyBsZW5ndGguXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHZhbHVlXG5cbkBmdW5jdGlvbiBpcy1sZW5ndGgoJHZhbHVlKSB7XG4gIEByZXR1cm4gdHlwZS1vZigkdmFsdWUpICE9IFwibnVsbFwiIGFuZCAoc3RyLXNsaWNlKCR2YWx1ZSArIFwiXCIsIDEsIDQpID09IFwiY2FsY1wiXG4gICAgICAgb3IgaW5kZXgoYXV0byBpbmhlcml0IGluaXRpYWwgMCwgJHZhbHVlKVxuICAgICAgIG9yICh0eXBlLW9mKCR2YWx1ZSkgPT0gXCJudW1iZXJcIiBhbmQgbm90KHVuaXRsZXNzKCR2YWx1ZSkpKSk7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm9ncmFtYXRpY2FsbHkgZGV0ZXJtaW5lcyB3aGV0aGVyIGEgY29sb3IgaXMgbGlnaHQgb3IgZGFyay5cbi8vL1xuLy8vIEBsaW5rIGh0dHA6Ly9yb2JvdHMudGhvdWdodGJvdC5jb20vY2xvc2VyLWxvb2stY29sb3ItbGlnaHRuZXNzXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yIChIZXgpfSAkY29sb3Jcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgaXMtbGlnaHQoJGNvbG9yKVxuLy8vXG4vLy8gQHJldHVybiB7Qm9vbH1cblxuQGZ1bmN0aW9uIGlzLWxpZ2h0KCRoZXgtY29sb3IpIHtcbiAgJC1sb2NhbC1yZWQ6IHJlZChyZ2JhKCRoZXgtY29sb3IsIDEpKTtcbiAgJC1sb2NhbC1ncmVlbjogZ3JlZW4ocmdiYSgkaGV4LWNvbG9yLCAxKSk7XG4gICQtbG9jYWwtYmx1ZTogYmx1ZShyZ2JhKCRoZXgtY29sb3IsIDEpKTtcbiAgJC1sb2NhbC1saWdodG5lc3M6ICgkLWxvY2FsLXJlZCAqIDAuMjEyNiArICQtbG9jYWwtZ3JlZW4gKiAwLjcxNTIgKyAkLWxvY2FsLWJsdWUgKiAwLjA3MjIpIC8gMjU1O1xuXG4gIEByZXR1cm4gJC1sb2NhbC1saWdodG5lc3MgPiAwLjY7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBDaGVja3MgZm9yIGEgdmFsaWQgbnVtYmVyLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR2YWx1ZVxuLy8vXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBjb250YWluc1xuXG5AZnVuY3Rpb24gaXMtbnVtYmVyKCR2YWx1ZSkge1xuICBAcmV0dXJuIGNvbnRhaW5zKFwiMFwiIFwiMVwiIFwiMlwiIFwiM1wiIFwiNFwiIFwiNVwiIFwiNlwiIFwiN1wiIFwiOFwiIFwiOVwiIDAgMSAyIDMgNCA1IDYgNyA4IDksICR2YWx1ZSk7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBDaGVja3MgZm9yIGEgdmFsaWQgQ1NTIHNpemUuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHZhbHVlXG4vLy9cbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGNvbnRhaW5zXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBpcy1sZW5ndGhcblxuQGZ1bmN0aW9uIGlzLXNpemUoJHZhbHVlKSB7XG4gIEByZXR1cm4gaXMtbGVuZ3RoKCR2YWx1ZSlcbiAgICAgICAgICBvciBjb250YWlucyhcImZpbGxcIiBcImZpdC1jb250ZW50XCIgXCJtaW4tY29udGVudFwiIFwibWF4LWNvbnRlbnRcIiwgJHZhbHVlKTtcbn1cbiIsIi8vIENvbnZlcnQgcGl4ZWxzIHRvIGVtc1xuLy8gZWcuIGZvciBhIHJlbGF0aW9uYWwgdmFsdWUgb2YgMTJweCB3cml0ZSBlbSgxMikgd2hlbiB0aGUgcGFyZW50IGlzIDE2cHhcbi8vIGlmIHRoZSBwYXJlbnQgaXMgYW5vdGhlciB2YWx1ZSBzYXkgMjRweCB3cml0ZSBlbSgxMiwgMjQpXG5cbkBmdW5jdGlvbiBlbSgkcHh2YWwsICRiYXNlOiAkZW0tYmFzZSkge1xuICBAaWYgbm90IHVuaXRsZXNzKCRweHZhbCkge1xuICAgICRweHZhbDogc3RyaXAtdW5pdHMoJHB4dmFsKTtcbiAgfVxuICBAaWYgbm90IHVuaXRsZXNzKCRiYXNlKSB7XG4gICAgJGJhc2U6IHN0cmlwLXVuaXRzKCRiYXNlKTtcbiAgfVxuICBAcmV0dXJuICgkcHh2YWwgLyAkYmFzZSkgKiAxZW07XG59XG4iLCIvLyBDb252ZXJ0IHBpeGVscyB0byByZW1zXG4vLyBlZy4gZm9yIGEgcmVsYXRpb25hbCB2YWx1ZSBvZiAxMnB4IHdyaXRlIHJlbSgxMilcbi8vIEFzc3VtZXMgJGVtLWJhc2UgaXMgdGhlIGZvbnQtc2l6ZSBvZiA8aHRtbD5cblxuQGZ1bmN0aW9uIHJlbSgkcHh2YWwpIHtcbiAgQGlmIG5vdCB1bml0bGVzcygkcHh2YWwpIHtcbiAgICAkcHh2YWw6IHN0cmlwLXVuaXRzKCRweHZhbCk7XG4gIH1cblxuICAkYmFzZTogJGVtLWJhc2U7XG4gIEBpZiBub3QgdW5pdGxlc3MoJGJhc2UpIHtcbiAgICAkYmFzZTogc3RyaXAtdW5pdHMoJGJhc2UpO1xuICB9XG4gIEByZXR1cm4gKCRweHZhbCAvICRiYXNlKSAqIDFyZW07XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBNaXhlcyBhIGNvbG9yIHdpdGggYmxhY2suXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3Jcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyIChQZXJjZW50YWdlKX0gJHBlcmNlbnRcbi8vLyAgIFRoZSBhbW91bnQgb2YgYmxhY2sgdG8gYmUgbWl4ZWQgaW4uXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogc2hhZGUoI2ZmYmI1MiwgNjAlKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogIzY2NGEyMDtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXR1cm4ge0NvbG9yfVxuXG5AZnVuY3Rpb24gc2hhZGUoJGNvbG9yLCAkcGVyY2VudCkge1xuICBAcmV0dXJuIG1peCgjMDAwLCAkY29sb3IsICRwZXJjZW50KTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFN0cmlwcyB0aGUgdW5pdCBmcm9tIGEgbnVtYmVyLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXIgKFdpdGggVW5pdCl9ICR2YWx1ZVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAkZGltZW5zaW9uOiBzdHJpcC11bml0cygxMGVtKTtcbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgICRkaW1lbnNpb246IDEwO1xuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyIChVbml0bGVzcyl9XG5cbkBmdW5jdGlvbiBzdHJpcC11bml0cygkdmFsdWUpIHtcbiAgQHJldHVybiAoJHZhbHVlIC8gKCR2YWx1ZSAqIDAgKyAxKSk7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBNaXhlcyBhIGNvbG9yIHdpdGggd2hpdGUuXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3Jcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyIChQZXJjZW50YWdlKX0gJHBlcmNlbnRcbi8vLyAgIFRoZSBhbW91bnQgb2Ygd2hpdGUgdG8gYmUgbWl4ZWQgaW4uXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogdGludCgjNmVjYWE2LCA0MCUpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYThkZmM5O1xuLy8vICAgfVxuLy8vXG4vLy8gQHJldHVybiB7Q29sb3J9XG5cbkBmdW5jdGlvbiB0aW50KCRjb2xvciwgJHBlcmNlbnQpIHtcbiAgQHJldHVybiBtaXgoI2ZmZiwgJGNvbG9yLCAkcGVyY2VudCk7XG59XG4iLCIvLyBSZXR1cm4gdmVuZG9yLXByZWZpeGVkIHByb3BlcnR5IG5hbWVzIGlmIGFwcHJvcHJpYXRlXG4vLyBFeGFtcGxlOiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVzKCh0cmFuc2Zvcm0sIGNvbG9yLCBiYWNrZ3JvdW5kKSwgbW96KSAtPiAtbW96LXRyYW5zZm9ybSwgY29sb3IsIGJhY2tncm91bmRcbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbkBmdW5jdGlvbiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVzKCRwcm9wcywgJHZlbmRvcjogZmFsc2UpIHtcbiAgJG5ldy1wcm9wczogKCk7XG5cbiAgQGVhY2ggJHByb3AgaW4gJHByb3BzIHtcbiAgICAkbmV3LXByb3BzOiBhcHBlbmQoJG5ldy1wcm9wcywgdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lKCRwcm9wLCAkdmVuZG9yKSwgY29tbWEpO1xuICB9XG5cbiAgQHJldHVybiAkbmV3LXByb3BzO1xufVxuXG5AZnVuY3Rpb24gdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lKCRwcm9wLCAkdmVuZG9yOiBmYWxzZSkge1xuICAvLyBwdXQgb3RoZXIgcHJvcGVydGllcyB0aGF0IG5lZWQgdG8gYmUgcHJlZml4ZWQgaGVyZSBhc3dlbGxcbiAgQGlmICR2ZW5kb3IgYW5kICRwcm9wID09IHRyYW5zZm9ybSB7XG4gICAgQHJldHVybiB1bnF1b3RlKCctJyskdmVuZG9yKyctJyskcHJvcCk7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gJHByb3A7XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIENvbnZlcnRzIHNob3J0aGFuZCB0byB0aGUgNC12YWx1ZSBzeW50YXguXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRzaG9ydGhhbmRcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBtYXJnaW46IHVucGFjaygxZW0gMmVtKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgbWFyZ2luOiAxZW0gMmVtIDFlbSAyZW07XG4vLy8gICB9XG5cbkBmdW5jdGlvbiB1bnBhY2soJHNob3J0aGFuZCkge1xuICBAaWYgbGVuZ3RoKCRzaG9ydGhhbmQpID09IDEge1xuICAgIEByZXR1cm4gbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDEpO1xuICB9IEBlbHNlIGlmIGxlbmd0aCgkc2hvcnRoYW5kKSA9PSAyIHtcbiAgICBAcmV0dXJuIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMikgbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAyKTtcbiAgfSBAZWxzZSBpZiBsZW5ndGgoJHNob3J0aGFuZCkgPT0gMyB7XG4gICAgQHJldHVybiBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDIpIG50aCgkc2hvcnRoYW5kLCAzKSBudGgoJHNob3J0aGFuZCwgMik7XG4gIH0gQGVsc2Uge1xuICAgIEByZXR1cm4gJHNob3J0aGFuZDtcbiAgfVxufVxuIiwiLy8gU2NhbGluZyBWYXJpYWJsZXNcbiRnb2xkZW46ICAgICAgICAgICAxLjYxODtcbiRtaW5vci1zZWNvbmQ6ICAgICAxLjA2NztcbiRtYWpvci1zZWNvbmQ6ICAgICAxLjEyNTtcbiRtaW5vci10aGlyZDogICAgICAxLjI7XG4kbWFqb3ItdGhpcmQ6ICAgICAgMS4yNTtcbiRwZXJmZWN0LWZvdXJ0aDogICAxLjMzMztcbiRhdWdtZW50ZWQtZm91cnRoOiAxLjQxNDtcbiRwZXJmZWN0LWZpZnRoOiAgICAxLjU7XG4kbWlub3Itc2l4dGg6ICAgICAgMS42O1xuJG1ham9yLXNpeHRoOiAgICAgIDEuNjY3O1xuJG1pbm9yLXNldmVudGg6ICAgIDEuNzc4O1xuJG1ham9yLXNldmVudGg6ICAgIDEuODc1O1xuJG9jdGF2ZTogICAgICAgICAgIDI7XG4kbWFqb3ItdGVudGg6ICAgICAgMi41O1xuJG1ham9yLWVsZXZlbnRoOiAgIDIuNjY3O1xuJG1ham9yLXR3ZWxmdGg6ICAgIDM7XG4kZG91YmxlLW9jdGF2ZTogICAgNDtcblxuJG1vZHVsYXItc2NhbGUtcmF0aW86ICRwZXJmZWN0LWZvdXJ0aCAhZGVmYXVsdDtcbiRtb2R1bGFyLXNjYWxlLWJhc2U6IGVtKCRlbS1iYXNlKSAhZGVmYXVsdDtcblxuQGZ1bmN0aW9uIG1vZHVsYXItc2NhbGUoJGluY3JlbWVudCwgJHZhbHVlOiAkbW9kdWxhci1zY2FsZS1iYXNlLCAkcmF0aW86ICRtb2R1bGFyLXNjYWxlLXJhdGlvKSB7XG4gICR2MTogbnRoKCR2YWx1ZSwgMSk7XG4gICR2MjogbnRoKCR2YWx1ZSwgbGVuZ3RoKCR2YWx1ZSkpO1xuICAkdmFsdWU6ICR2MTtcblxuICAvLyBzY2FsZSAkdjIgdG8ganVzdCBhYm92ZSAkdjFcbiAgQHdoaWxlICR2MiA+ICR2MSB7XG4gICAgJHYyOiAoJHYyIC8gJHJhdGlvKTsgLy8gd2lsbCBiZSBvZmYtYnktMVxuICB9XG4gIEB3aGlsZSAkdjIgPCAkdjEge1xuICAgICR2MjogKCR2MiAqICRyYXRpbyk7IC8vIHdpbGwgZml4IG9mZi1ieS0xXG4gIH1cblxuICAvLyBjaGVjayBBRlRFUiBzY2FsaW5nICR2MiB0byBwcmV2ZW50IGRvdWJsZS1jb3VudGluZyBjb3JuZXItY2FzZVxuICAkZG91YmxlLXN0cmFuZGVkOiAkdjIgPiAkdjE7XG5cbiAgQGlmICRpbmNyZW1lbnQgPiAwIHtcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRpbmNyZW1lbnQge1xuICAgICAgQGlmICRkb3VibGUtc3RyYW5kZWQgYW5kICgkdjEgKiAkcmF0aW8pID4gJHYyIHtcbiAgICAgICAgJHZhbHVlOiAkdjI7XG4gICAgICAgICR2MjogKCR2MiAqICRyYXRpbyk7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgJHYxOiAoJHYxICogJHJhdGlvKTtcbiAgICAgICAgJHZhbHVlOiAkdjE7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGlmICRpbmNyZW1lbnQgPCAwIHtcbiAgICAvLyBhZGp1c3QgJHYyIHRvIGp1c3QgYmVsb3cgJHYxXG4gICAgQGlmICRkb3VibGUtc3RyYW5kZWQge1xuICAgICAgJHYyOiAoJHYyIC8gJHJhdGlvKTtcbiAgICB9XG5cbiAgICBAZm9yICRpIGZyb20gJGluY3JlbWVudCB0aHJvdWdoIC0xIHtcbiAgICAgIEBpZiAkZG91YmxlLXN0cmFuZGVkIGFuZCAoJHYxIC8gJHJhdGlvKSA8ICR2MiB7XG4gICAgICAgICR2YWx1ZTogJHYyO1xuICAgICAgICAkdjI6ICgkdjIgLyAkcmF0aW8pO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgICR2MTogKCR2MSAvICRyYXRpbyk7XG4gICAgICAgICR2YWx1ZTogJHYxO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlO1xufVxuIiwiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuLy8gSGVscGVyIGZ1bmN0aW9uIGZvciBzdHItdG8tbnVtIGZuLlxuLy8gU291cmNlOiBodHRwOi8vc2Fzc21laXN0ZXIuY29tL2dpc3QvOTY0NzQwOFxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuQGZ1bmN0aW9uIF9jb252ZXJ0LXVuaXRzKCRudW1iZXIsICR1bml0KSB7XG4gICRzdHJpbmdzOiBcInB4XCIsIFwiY21cIiwgXCJtbVwiLCBcIiVcIiwgXCJjaFwiLCBcInBpY2FcIiwgXCJpblwiLCBcImVtXCIsIFwicmVtXCIsIFwicHRcIiwgXCJwY1wiLCBcImV4XCIsIFwidndcIiwgXCJ2aFwiLCBcInZtaW5cIiwgXCJ2bWF4XCIsIFwiZGVnXCIsIFwicmFkXCIsIFwiZ3JhZFwiLCBcInR1cm5cIjtcbiAgJHVuaXRzOiAgIDFweCwgMWNtLCAxbW0sIDElLCAxY2gsIDFwaWNhLCAxaW4sIDFlbSwgMXJlbSwgMXB0LCAxcGMsIDFleCwgMXZ3LCAxdmgsIDF2bWluLCAxdm1heCwgMWRlZywgMXJhZCwgMWdyYWQsIDF0dXJuO1xuICAkaW5kZXg6IGluZGV4KCRzdHJpbmdzLCAkdW5pdCk7XG5cbiAgQGlmIG5vdCAkaW5kZXgge1xuICAgIEB3YXJuIFwiVW5rbm93biB1bml0IGAjeyR1bml0fWAuXCI7XG4gICAgQHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCRudW1iZXIpICE9IFwibnVtYmVyXCIge1xuICAgIEB3YXJuIFwiYCN7JG51bWJlcn0gaXMgbm90IGEgbnVtYmVyYFwiO1xuICAgIEByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBAcmV0dXJuICRudW1iZXIgKiBudGgoJHVuaXRzLCAkaW5kZXgpO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gRGlyZWN0aW9uYWwtcHJvcGVydHkgbWl4aW5zIGFyZSBzaG9ydGhhbmRzIGZvciB3cml0aW5nIHByb3BlcnRpZXMgbGlrZSB0aGUgZm9sbG93aW5nXG4vLy9cbi8vLyBAaWdub3JlIFlvdSBjYW4gYWxzbyB1c2UgYGZhbHNlYCBpbnN0ZWFkIG9mIGBudWxsYC5cbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHZhbHNcbi8vLyAgIExpc3Qgb2YgZGlyZWN0aW9uYWwgdmFsdWVzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgYm9yZGVyLXN0eWxlKGRvdHRlZCBudWxsKTtcbi8vLyAgICAgQGluY2x1ZGUgbWFyZ2luKG51bGwgMCAxMHB4KTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogZG90dGVkO1xuLy8vICAgICBib3JkZXItdG9wLXN0eWxlOiBkb3R0ZWQ7XG4vLy8gICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4vLy8gICAgIG1hcmdpbi1sZWZ0OiAwO1xuLy8vICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGNvbnRhaW5zLWZhbHN5XG4vLy9cbi8vLyBAcmV0dXJuIHtMaXN0fVxuXG5AZnVuY3Rpb24gY29sbGFwc2UtZGlyZWN0aW9uYWxzKCR2YWxzKSB7XG4gICRvdXRwdXQ6IG51bGw7XG5cbiAgJGE6IG50aCgkdmFscywgMSk7XG4gICRiOiBpZihsZW5ndGgoJHZhbHMpIDwgMiwgJGEsIG50aCgkdmFscywgMikpO1xuICAkYzogaWYobGVuZ3RoKCR2YWxzKSA8IDMsICRhLCBudGgoJHZhbHMsIDMpKTtcbiAgJGQ6IGlmKGxlbmd0aCgkdmFscykgPCAyLCAkYSwgbnRoKCR2YWxzLCBpZihsZW5ndGgoJHZhbHMpIDwgNCwgMiwgNCkpKTtcblxuICBAaWYgJGEgPT0gMCB7ICRhOiAwOyB9XG4gIEBpZiAkYiA9PSAwIHsgJGI6IDA7IH1cbiAgQGlmICRjID09IDAgeyAkYzogMDsgfVxuICBAaWYgJGQgPT0gMCB7ICRkOiAwOyB9XG5cbiAgQGlmICRhID09ICRiIGFuZCAkYSA9PSAkYyBhbmQgJGEgPT0gJGQgeyAkb3V0cHV0OiAkYTsgICAgICAgICAgfVxuICBAZWxzZSBpZiAkYSA9PSAkYyBhbmQgJGIgPT0gJGQgICAgICAgICB7ICRvdXRwdXQ6ICRhICRiOyAgICAgICB9XG4gIEBlbHNlIGlmICRiID09ICRkICAgICAgICAgICAgICAgICAgICAgIHsgJG91dHB1dDogJGEgJGIgJGM7ICAgIH1cbiAgQGVsc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAkb3V0cHV0OiAkYSAkYiAkYyAkZDsgfVxuXG4gIEByZXR1cm4gJG91dHB1dDtcbn1cblxuLy8vIE91dHB1dCBkaXJlY3Rpb25hbCBwcm9wZXJ0aWVzLCBmb3IgaW5zdGFuY2UgYG1hcmdpbmAuXG4vLy9cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkcHJlXG4vLy8gICBQcmVmaXggdG8gdXNlXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzdWZcbi8vLyAgIFN1ZmZpeCB0byB1c2Vcbi8vLyBAcGFyYW0ge0xpc3R9ICR2YWxzXG4vLy8gICBMaXN0IG9mIHZhbHVlc1xuLy8vXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBjb2xsYXBzZS1kaXJlY3Rpb25hbHNcbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGNvbnRhaW5zLWZhbHN5XG5cbkBtaXhpbiBkaXJlY3Rpb25hbC1wcm9wZXJ0eSgkcHJlLCAkc3VmLCAkdmFscykge1xuICAvLyBQcm9wZXJ0eSBOYW1lc1xuICAkdG9wOiAgICAkcHJlICsgXCItdG9wXCIgICAgKyBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xuICAkYm90dG9tOiAkcHJlICsgXCItYm90dG9tXCIgKyBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xuICAkbGVmdDogICAkcHJlICsgXCItbGVmdFwiICAgKyBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xuICAkcmlnaHQ6ICAkcHJlICsgXCItcmlnaHRcIiAgKyBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xuICAkYWxsOiAgICAkcHJlICsgICAgICAgICAgICAgaWYoJHN1ZiwgXCItI3skc3VmfVwiLCBcIlwiKTtcblxuICAkdmFsczogY29sbGFwc2UtZGlyZWN0aW9uYWxzKCR2YWxzKTtcblxuICBAaWYgY29udGFpbnMtZmFsc3koJHZhbHMpIHtcbiAgICBAaWYgbnRoKCR2YWxzLCAxKSB7ICN7JHRvcH06IG50aCgkdmFscywgMSk7IH1cblxuICAgIEBpZiBsZW5ndGgoJHZhbHMpID09IDEge1xuICAgICAgQGlmIG50aCgkdmFscywgMSkgeyAjeyRyaWdodH06IG50aCgkdmFscywgMSk7IH1cbiAgICB9IEBlbHNlIHtcbiAgICAgIEBpZiBudGgoJHZhbHMsIDIpIHsgI3skcmlnaHR9OiBudGgoJHZhbHMsIDIpOyB9XG4gICAgfVxuXG4gICAgQGlmIGxlbmd0aCgkdmFscykgPT0gMiB7XG4gICAgICBAaWYgbnRoKCR2YWxzLCAxKSB7ICN7JGJvdHRvbX06IG50aCgkdmFscywgMSk7IH1cbiAgICAgIEBpZiBudGgoJHZhbHMsIDIpIHsgI3skbGVmdH06ICAgbnRoKCR2YWxzLCAyKTsgfVxuICAgIH0gQGVsc2UgaWYgbGVuZ3RoKCR2YWxzKSA9PSAzIHtcbiAgICAgIEBpZiBudGgoJHZhbHMsIDMpIHsgI3skYm90dG9tfTogbnRoKCR2YWxzLCAzKTsgfVxuICAgICAgQGlmIG50aCgkdmFscywgMikgeyAjeyRsZWZ0fTogICBudGgoJHZhbHMsIDIpOyB9XG4gICAgfSBAZWxzZSBpZiBsZW5ndGgoJHZhbHMpID09IDQge1xuICAgICAgQGlmIG50aCgkdmFscywgMykgeyAjeyRib3R0b219OiBudGgoJHZhbHMsIDMpOyB9XG4gICAgICBAaWYgbnRoKCR2YWxzLCA0KSB7ICN7JGxlZnR9OiAgIG50aCgkdmFscywgNCk7IH1cbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgICN7JGFsbH06ICR2YWxzO1xuICB9XG59XG4iLCIvLyBVc2VkIGZvciBjcmVhdGluZyB0aGUgc291cmNlIHN0cmluZyBmb3IgZm9udHMgdXNpbmcgQGZvbnQtZmFjZVxuLy8gUmVmZXJlbmNlOiBodHRwOi8vZ29vLmdsL1J1MWJLUFxuXG5AZnVuY3Rpb24gZm9udC11cmwtcHJlZml4ZXIoJGFzc2V0LXBpcGVsaW5lKSB7XG4gIEBpZiAkYXNzZXQtcGlwZWxpbmUgPT0gdHJ1ZSB7XG4gICAgQHJldHVybiBmb250LXVybDtcbiAgfSBAZWxzZSB7XG4gICAgQHJldHVybiB1cmw7XG4gIH1cbn1cblxuQGZ1bmN0aW9uIGZvbnQtc291cmNlLWRlY2xhcmF0aW9uKFxuICAkZm9udC1mYW1pbHksXG4gICRmaWxlLXBhdGgsXG4gICRhc3NldC1waXBlbGluZSxcbiAgJGZpbGUtZm9ybWF0cyxcbiAgJGZvbnQtdXJsKSB7XG5cbiAgJHNyYzogKCk7XG5cbiAgJGZvcm1hdHMtbWFwOiAoXG4gICAgZW90OiAgIFwiI3skZmlsZS1wYXRofS5lb3Q/I2llZml4XCIgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIiksXG4gICAgd29mZjI6IFwiI3skZmlsZS1wYXRofS53b2ZmMlwiIGZvcm1hdChcIndvZmYyXCIpLFxuICAgIHdvZmY6ICBcIiN7JGZpbGUtcGF0aH0ud29mZlwiIGZvcm1hdChcIndvZmZcIiksXG4gICAgdHRmOiAgIFwiI3skZmlsZS1wYXRofS50dGZcIiBmb3JtYXQoXCJ0cnVldHlwZVwiKSxcbiAgICBzdmc6ICAgXCIjeyRmaWxlLXBhdGh9LnN2ZyMjeyRmb250LWZhbWlseX1cIiBmb3JtYXQoXCJzdmdcIilcbiAgKTtcblxuICBAZWFjaCAka2V5LCAkdmFsdWVzIGluICRmb3JtYXRzLW1hcCB7XG4gICAgQGlmIGNvbnRhaW5zKCRmaWxlLWZvcm1hdHMsICRrZXkpIHtcbiAgICAgICRmaWxlLXBhdGg6IG50aCgkdmFsdWVzLCAxKTtcbiAgICAgICRmb250LWZvcm1hdDogbnRoKCR2YWx1ZXMsIDIpO1xuXG4gICAgICBAaWYgJGFzc2V0LXBpcGVsaW5lID09IHRydWUge1xuICAgICAgICAkc3JjOiBhcHBlbmQoJHNyYywgZm9udC11cmwoJGZpbGUtcGF0aCkgJGZvbnQtZm9ybWF0LCBjb21tYSk7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgJHNyYzogYXBwZW5kKCRzcmMsIHVybCgkZmlsZS1wYXRoKSAkZm9udC1mb3JtYXQsIGNvbW1hKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRzcmM7XG59XG4iLCJAZnVuY3Rpb24gX2dyYWRpZW50LXBvc2l0aW9ucy1wYXJzZXIoJGdyYWRpZW50LXR5cGUsICRncmFkaWVudC1wb3NpdGlvbnMpIHtcbiAgQGlmICRncmFkaWVudC1wb3NpdGlvbnNcbiAgYW5kICgkZ3JhZGllbnQtdHlwZSA9PSBsaW5lYXIpXG4gIGFuZCAodHlwZS1vZigkZ3JhZGllbnQtcG9zaXRpb25zKSAhPSBjb2xvcikge1xuICAgICRncmFkaWVudC1wb3NpdGlvbnM6IF9saW5lYXItcG9zaXRpb25zLXBhcnNlcigkZ3JhZGllbnQtcG9zaXRpb25zKTtcbiAgfVxuICBAZWxzZSBpZiAkZ3JhZGllbnQtcG9zaXRpb25zXG4gIGFuZCAoJGdyYWRpZW50LXR5cGUgPT0gcmFkaWFsKVxuICBhbmQgKHR5cGUtb2YoJGdyYWRpZW50LXBvc2l0aW9ucykgIT0gY29sb3IpIHtcbiAgICAkZ3JhZGllbnQtcG9zaXRpb25zOiBfcmFkaWFsLXBvc2l0aW9ucy1wYXJzZXIoJGdyYWRpZW50LXBvc2l0aW9ucyk7XG4gIH1cbiAgQHJldHVybiAkZ3JhZGllbnQtcG9zaXRpb25zO1xufVxuIiwiLy8gUHJpdmF0ZSBmdW5jdGlvbiBmb3IgbGluZWFyLWdyYWRpZW50LXBhcnNlclxuQGZ1bmN0aW9uIF9saW5lYXItYW5nbGUtcGFyc2VyKCRpbWFnZSwgJGZpcnN0LXZhbCwgJHByZWZpeCwgJHN1ZmZpeCkge1xuICAkb2Zmc2V0OiBudWxsO1xuICAkdW5pdC1zaG9ydDogIHN0ci1zbGljZSgkZmlyc3QtdmFsLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpIC0gMiwgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSk7XG4gICR1bml0LWxvbmc6ICAgc3RyLXNsaWNlKCRmaXJzdC12YWwsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkgLSAzLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpKTtcblxuICBAaWYgKCR1bml0LWxvbmcgPT0gXCJncmFkXCIpIG9yXG4gICAgICAoJHVuaXQtbG9uZyA9PSBcInR1cm5cIikge1xuICAgICRvZmZzZXQ6IGlmKCR1bml0LWxvbmcgPT0gXCJncmFkXCIsIC0xMDBncmFkICogMywgLTAuNzV0dXJuKTtcbiAgfVxuXG4gIEBlbHNlIGlmICgkdW5pdC1zaG9ydCA9PSBcImRlZ1wiKSBvclxuICAgICAgICAgICAoJHVuaXQtc2hvcnQgPT0gXCJyYWRcIikge1xuICAgICRvZmZzZXQ6IGlmKCR1bml0LXNob3J0ID09IFwiZGVnXCIsIC05MCAqIDMsIDEuNnJhZCk7XG4gIH1cblxuICBAaWYgJG9mZnNldCB7XG4gICAgJG51bTogX3N0ci10by1udW0oJGZpcnN0LXZhbCk7XG5cbiAgICBAcmV0dXJuIChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkcHJlZml4ICsgKCRvZmZzZXQgLSAkbnVtKSArICRzdWZmaXgsXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcbiAgICApO1xuICB9XG59XG4iLCJAZnVuY3Rpb24gX2xpbmVhci1ncmFkaWVudC1wYXJzZXIoJGltYWdlKSB7XG4gICRpbWFnZTogdW5xdW90ZSgkaW1hZ2UpO1xuICAkZ3JhZGllbnRzOiAoKTtcbiAgJHN0YXJ0OiBzdHItaW5kZXgoJGltYWdlLCBcIihcIik7XG4gICRlbmQ6IHN0ci1pbmRleCgkaW1hZ2UsIFwiLFwiKTtcbiAgJGZpcnN0LXZhbDogc3RyLXNsaWNlKCRpbWFnZSwgJHN0YXJ0ICsgMSwgJGVuZCAtIDEpO1xuXG4gICRwcmVmaXg6IHN0ci1zbGljZSgkaW1hZ2UsIDEsICRzdGFydCk7XG4gICRzdWZmaXg6IHN0ci1zbGljZSgkaW1hZ2UsICRlbmQsIHN0ci1sZW5ndGgoJGltYWdlKSk7XG5cbiAgJGhhcy1tdWx0aXBsZS12YWxzOiBzdHItaW5kZXgoJGZpcnN0LXZhbCwgXCIgXCIpO1xuICAkaGFzLXNpbmdsZS1wb3NpdGlvbjogdW5xdW90ZShfcG9zaXRpb24tZmxpcHBlcigkZmlyc3QtdmFsKSArIFwiXCIpO1xuICAkaGFzLWFuZ2xlOiBpcy1udW1iZXIoc3RyLXNsaWNlKCRmaXJzdC12YWwsIDEsIDEpKTtcblxuICBAaWYgJGhhcy1tdWx0aXBsZS12YWxzIHtcbiAgICAkZ3JhZGllbnRzOiBfbGluZWFyLXNpZGUtY29ybmVyLXBhcnNlcigkaW1hZ2UsICRmaXJzdC12YWwsICRwcmVmaXgsICRzdWZmaXgsICRoYXMtbXVsdGlwbGUtdmFscyk7XG4gIH1cblxuICBAZWxzZSBpZiAkaGFzLXNpbmdsZS1wb3NpdGlvbiAhPSBcIlwiIHtcbiAgICAkcG9zOiB1bnF1b3RlKCRoYXMtc2luZ2xlLXBvc2l0aW9uICsgXCJcIik7XG5cbiAgICAkZ3JhZGllbnRzOiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJGltYWdlLFxuICAgICAgc3BlYy1pbWFnZTogJHByZWZpeCArIFwidG8gXCIgKyAkcG9zICsgJHN1ZmZpeFxuICAgICk7XG4gIH1cblxuICBAZWxzZSBpZiAkaGFzLWFuZ2xlIHtcbiAgICAvLyBSb3RhdGUgZGVncmVlIGZvciB3ZWJraXRcbiAgICAkZ3JhZGllbnRzOiBfbGluZWFyLWFuZ2xlLXBhcnNlcigkaW1hZ2UsICRmaXJzdC12YWwsICRwcmVmaXgsICRzdWZmaXgpO1xuICB9XG5cbiAgQGVsc2Uge1xuICAgICRncmFkaWVudHM6IChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkaW1hZ2UsXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcbiAgICApO1xuICB9XG5cbiAgQHJldHVybiAkZ3JhZGllbnRzO1xufVxuIiwiQGZ1bmN0aW9uIF9saW5lYXItcG9zaXRpb25zLXBhcnNlcigkcG9zKSB7XG4gICR0eXBlOiB0eXBlLW9mKG50aCgkcG9zLCAxKSk7XG4gICRzcGVjOiBudWxsO1xuICAkZGVncmVlOiBudWxsO1xuICAkc2lkZTogbnVsbDtcbiAgJGNvcm5lcjogbnVsbDtcbiAgJGxlbmd0aDogbGVuZ3RoKCRwb3MpO1xuICAvLyBQYXJzZSBTaWRlIGFuZCBjb3JuZXIgcG9zaXRpb25zXG4gIEBpZiAoJGxlbmd0aCA+IDEpIHtcbiAgICBAaWYgbnRoKCRwb3MsIDEpID09IFwidG9cIiB7IC8vIE5ld2VyIHN5bnRheFxuICAgICAgJHNpZGU6IG50aCgkcG9zLCAyKTtcblxuICAgICAgQGlmICRsZW5ndGggPT0gMiB7IC8vIGVnLiB0byB0b3BcbiAgICAgICAgLy8gU3dhcCBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHlcbiAgICAgICAgJGRlZ3JlZTogX3Bvc2l0aW9uLWZsaXBwZXIobnRoKCRwb3MsIDIpKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIGlmICRsZW5ndGggPT0gMyB7IC8vIGVnLiB0byB0b3AgbGVmdFxuICAgICAgICAkY29ybmVyOiBudGgoJHBvcywgMyk7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIGlmICRsZW5ndGggPT0gMiB7IC8vIE9sZGVyIHN5bnRheCAoXCJ0b3AgbGVmdFwiKVxuICAgICAgJHNpZGU6IF9wb3NpdGlvbi1mbGlwcGVyKG50aCgkcG9zLCAxKSk7XG4gICAgICAkY29ybmVyOiBfcG9zaXRpb24tZmxpcHBlcihudGgoJHBvcywgMikpO1xuICAgIH1cblxuICAgIEBpZiAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJsZWZ0IHRvcFwiKSBvciAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJ0b3AgbGVmdFwiKSB7XG4gICAgICAkZGVncmVlOiBfcG9zaXRpb24tZmxpcHBlcigjeyRzaWRlfSkgX3Bvc2l0aW9uLWZsaXBwZXIoI3skY29ybmVyfSk7XG4gICAgfVxuICAgIEBlbHNlIGlmIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcInJpZ2h0IHRvcFwiKSBvciAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJ0b3AgcmlnaHRcIikge1xuICAgICAgJGRlZ3JlZTogX3Bvc2l0aW9uLWZsaXBwZXIoI3skc2lkZX0pIF9wb3NpdGlvbi1mbGlwcGVyKCN7JGNvcm5lcn0pO1xuICAgIH1cbiAgICBAZWxzZSBpZiAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJyaWdodCBib3R0b21cIikgb3IgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwiYm90dG9tIHJpZ2h0XCIpIHtcbiAgICAgICRkZWdyZWU6IF9wb3NpdGlvbi1mbGlwcGVyKCN7JHNpZGV9KSBfcG9zaXRpb24tZmxpcHBlcigjeyRjb3JuZXJ9KTtcbiAgICB9XG4gICAgQGVsc2UgaWYgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwibGVmdCBib3R0b21cIikgb3IgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwiYm90dG9tIGxlZnRcIikge1xuICAgICAgJGRlZ3JlZTogX3Bvc2l0aW9uLWZsaXBwZXIoI3skc2lkZX0pIF9wb3NpdGlvbi1mbGlwcGVyKCN7JGNvcm5lcn0pO1xuICAgIH1cbiAgICAkc3BlYzogdG8gJHNpZGUgJGNvcm5lcjtcbiAgfVxuICBAZWxzZSBpZiAkbGVuZ3RoID09IDEge1xuICAgIC8vIFN3YXAgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5XG4gICAgQGlmICR0eXBlID09IHN0cmluZyB7XG4gICAgICAkZGVncmVlOiAkcG9zO1xuICAgICAgJHNwZWM6IHRvIF9wb3NpdGlvbi1mbGlwcGVyKCRwb3MpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkZGVncmVlOiAtMjcwIC0gJHBvczsgLy9yb3RhdGUgdGhlIGdyYWRpZW50IG9wcG9zaXRlIGZyb20gc3BlY1xuICAgICAgJHNwZWM6ICRwb3M7XG4gICAgfVxuICB9XG4gICRkZWdyZWU6IHVucXVvdGUoJGRlZ3JlZSArIFwiLFwiKTtcbiAgJHNwZWM6ICAgdW5xdW90ZSgkc3BlYyArIFwiLFwiKTtcbiAgQHJldHVybiAkZGVncmVlICRzcGVjO1xufVxuXG5AZnVuY3Rpb24gX3Bvc2l0aW9uLWZsaXBwZXIoJHBvcykge1xuICBAcmV0dXJuIGlmKCRwb3MgPT0gbGVmdCwgcmlnaHQsIG51bGwpXG4gICAgICAgICBpZigkcG9zID09IHJpZ2h0LCBsZWZ0LCBudWxsKVxuICAgICAgICAgaWYoJHBvcyA9PSB0b3AsIGJvdHRvbSwgbnVsbClcbiAgICAgICAgIGlmKCRwb3MgPT0gYm90dG9tLCB0b3AsIG51bGwpO1xufVxuIiwiLy8gUHJpdmF0ZSBmdW5jdGlvbiBmb3IgbGluZWFyLWdyYWRpZW50LXBhcnNlclxuQGZ1bmN0aW9uIF9saW5lYXItc2lkZS1jb3JuZXItcGFyc2VyKCRpbWFnZSwgJGZpcnN0LXZhbCwgJHByZWZpeCwgJHN1ZmZpeCwgJGhhcy1tdWx0aXBsZS12YWxzKSB7XG4gICR2YWwtMTogc3RyLXNsaWNlKCRmaXJzdC12YWwsIDEsICRoYXMtbXVsdGlwbGUtdmFscyAtIDEpO1xuICAkdmFsLTI6IHN0ci1zbGljZSgkZmlyc3QtdmFsLCAkaGFzLW11bHRpcGxlLXZhbHMgKyAxLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpKTtcbiAgJHZhbC0zOiBudWxsO1xuICAkaGFzLXZhbC0zOiBzdHItaW5kZXgoJHZhbC0yLCBcIiBcIik7XG5cbiAgQGlmICRoYXMtdmFsLTMge1xuICAgICR2YWwtMzogc3RyLXNsaWNlKCR2YWwtMiwgJGhhcy12YWwtMyArIDEsIHN0ci1sZW5ndGgoJHZhbC0yKSk7XG4gICAgJHZhbC0yOiBzdHItc2xpY2UoJHZhbC0yLCAxLCAkaGFzLXZhbC0zIC0gMSk7XG4gIH1cblxuICAkcG9zOiBfcG9zaXRpb24tZmxpcHBlcigkdmFsLTEpIF9wb3NpdGlvbi1mbGlwcGVyKCR2YWwtMikgX3Bvc2l0aW9uLWZsaXBwZXIoJHZhbC0zKTtcbiAgJHBvczogdW5xdW90ZSgkcG9zICsgXCJcIik7XG5cbiAgLy8gVXNlIG9sZCBzcGVjIGZvciB3ZWJraXRcbiAgQGlmICR2YWwtMSA9PSBcInRvXCIge1xuICAgIEByZXR1cm4gKFxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRwcmVmaXggKyAkcG9zICsgJHN1ZmZpeCxcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxuICAgICk7XG4gIH1cblxuICAvLyBCcmluZyB0aGUgY29kZSB1cCB0byBzcGVjXG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkaW1hZ2UsXG4gICAgICBzcGVjLWltYWdlOiAkcHJlZml4ICsgXCJ0byBcIiArICRwb3MgKyAkc3VmZml4XG4gICAgKTtcbiAgfVxufVxuIiwiQGZ1bmN0aW9uIF9yYWRpYWwtYXJnLXBhcnNlcigkZzEsICRnMiwgJHBvcywgJHNoYXBlLXNpemUpIHtcbiAgQGVhY2ggJHZhbHVlIGluICRnMSwgJGcyIHtcbiAgICAkZmlyc3QtdmFsOiBudGgoJHZhbHVlLCAxKTtcbiAgICAkcG9zLXR5cGU6ICB0eXBlLW9mKCRmaXJzdC12YWwpO1xuICAgICRzcGVjLWF0LWluZGV4OiBudWxsO1xuXG4gICAgLy8gRGV0ZXJtaW5lIGlmIHNwZWMgd2FzIHBhc3NlZCB0byBtaXhpblxuICAgIEBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gbGlzdCB7XG4gICAgICAkc3BlYy1hdC1pbmRleDogaWYoaW5kZXgoJHZhbHVlLCBhdCksIGluZGV4KCR2YWx1ZSwgYXQpLCBmYWxzZSk7XG4gICAgfVxuICAgIEBpZiAkc3BlYy1hdC1pbmRleCB7XG4gICAgICBAaWYgJHNwZWMtYXQtaW5kZXggPiAxIHtcbiAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAoJHNwZWMtYXQtaW5kZXggLSAxKSB7XG4gICAgICAgICAgJHNoYXBlLXNpemU6ICRzaGFwZS1zaXplIG50aCgkdmFsdWUsICRpKTtcbiAgICAgICAgfVxuICAgICAgICBAZm9yICRpIGZyb20gKCRzcGVjLWF0LWluZGV4ICsgMSkgdGhyb3VnaCBsZW5ndGgoJHZhbHVlKSB7XG4gICAgICAgICAgJHBvczogJHBvcyBudGgoJHZhbHVlLCAkaSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBlbHNlIGlmICRzcGVjLWF0LWluZGV4ID09IDEge1xuICAgICAgICBAZm9yICRpIGZyb20gKCRzcGVjLWF0LWluZGV4ICsgMSkgdGhyb3VnaCBsZW5ndGgoJHZhbHVlKSB7XG4gICAgICAgICAgJHBvczogJHBvcyBudGgoJHZhbHVlLCAkaSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICRnMTogbnVsbDtcbiAgICB9XG5cbiAgICAvLyBJZiBub3Qgc3BlYyBjYWxjdWxhdGUgY29ycmVjdCB2YWx1ZXNcbiAgICBAZWxzZSB7XG4gICAgICBAaWYgKCRwb3MtdHlwZSAhPSBjb2xvcikgb3IgKCRmaXJzdC12YWwgIT0gXCJ0cmFuc3BhcmVudFwiKSB7XG4gICAgICAgIEBpZiAoJHBvcy10eXBlID09IG51bWJlcilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjZW50ZXJcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJ0b3BcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJyaWdodFwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImJvdHRvbVwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImxlZnRcIikge1xuXG4gICAgICAgICAgJHBvczogJHZhbHVlO1xuXG4gICAgICAgICAgQGlmICRwb3MgPT0gJGcxIHtcbiAgICAgICAgICAgICRnMTogbnVsbDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWxzZSBpZlxuICAgICAgICAgICAoJGZpcnN0LXZhbCA9PSBcImVsbGlwc2VcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjaXJjbGVcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjbG9zZXN0LXNpZGVcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjbG9zZXN0LWNvcm5lclwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImZhcnRoZXN0LXNpZGVcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJmYXJ0aGVzdC1jb3JuZXJcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjb250YWluXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY292ZXJcIikge1xuXG4gICAgICAgICAgJHNoYXBlLXNpemU6ICR2YWx1ZTtcblxuICAgICAgICAgIEBpZiAkdmFsdWUgPT0gJGcxIHtcbiAgICAgICAgICAgICRnMTogbnVsbDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBAZWxzZSBpZiAkdmFsdWUgPT0gJGcyIHtcbiAgICAgICAgICAgICRnMjogbnVsbDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQHJldHVybiAkZzEsICRnMiwgJHBvcywgJHNoYXBlLXNpemU7XG59XG4iLCJAZnVuY3Rpb24gX3JhZGlhbC1wb3NpdGlvbnMtcGFyc2VyKCRncmFkaWVudC1wb3MpIHtcbiAgJHNoYXBlLXNpemU6IG50aCgkZ3JhZGllbnQtcG9zLCAxKTtcbiAgJHBvczogICAgICAgIG50aCgkZ3JhZGllbnQtcG9zLCAyKTtcbiAgJHNoYXBlLXNpemUtc3BlYzogX3NoYXBlLXNpemUtc3RyaXBwZXIoJHNoYXBlLXNpemUpO1xuXG4gICRwcmUtc3BlYzogdW5xdW90ZShpZigkcG9zLCBcIiN7JHBvc30sIFwiLCBudWxsKSlcbiAgICAgICAgICAgICB1bnF1b3RlKGlmKCRzaGFwZS1zaXplLCBcIiN7JHNoYXBlLXNpemV9LFwiLCBudWxsKSk7XG4gICRwb3Mtc3BlYzogaWYoJHBvcywgXCJhdCAjeyRwb3N9XCIsIG51bGwpO1xuXG4gICRzcGVjOiBcIiN7JHNoYXBlLXNpemUtc3BlY30gI3skcG9zLXNwZWN9XCI7XG5cbiAgLy8gQWRkIGNvbW1hXG4gIEBpZiAoJHNwZWMgIT0gXCIgIFwiKSB7XG4gICAgJHNwZWM6IFwiI3skc3BlY30sXCI7XG4gIH1cblxuICBAcmV0dXJuICRwcmUtc3BlYyAkc3BlYztcbn1cbiIsIkBmdW5jdGlvbiBfcmFkaWFsLWdyYWRpZW50LXBhcnNlcigkaW1hZ2UpIHtcbiAgJGltYWdlOiB1bnF1b3RlKCRpbWFnZSk7XG4gICRncmFkaWVudHM6ICgpO1xuICAkc3RhcnQ6IHN0ci1pbmRleCgkaW1hZ2UsIFwiKFwiKTtcbiAgJGVuZDogc3RyLWluZGV4KCRpbWFnZSwgXCIsXCIpO1xuICAkZmlyc3QtdmFsOiBzdHItc2xpY2UoJGltYWdlLCAkc3RhcnQgKyAxLCAkZW5kIC0gMSk7XG5cbiAgJHByZWZpeDogc3RyLXNsaWNlKCRpbWFnZSwgMSwgJHN0YXJ0KTtcbiAgJHN1ZmZpeDogc3RyLXNsaWNlKCRpbWFnZSwgJGVuZCwgc3RyLWxlbmd0aCgkaW1hZ2UpKTtcblxuICAkaXMtc3BlYy1zeW50YXg6IHN0ci1pbmRleCgkZmlyc3QtdmFsLCBcImF0XCIpO1xuXG4gIEBpZiAkaXMtc3BlYy1zeW50YXggYW5kICRpcy1zcGVjLXN5bnRheCA+IDEge1xuICAgICRrZXl3b3JkOiBzdHItc2xpY2UoJGZpcnN0LXZhbCwgMSwgJGlzLXNwZWMtc3ludGF4IC0gMik7XG4gICAgJHBvczogc3RyLXNsaWNlKCRmaXJzdC12YWwsICRpcy1zcGVjLXN5bnRheCArIDMsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkpO1xuICAgICRwb3M6IGFwcGVuZCgkcG9zLCAka2V5d29yZCwgY29tbWEpO1xuXG4gICAgJGdyYWRpZW50czogKFxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRwcmVmaXggKyAkcG9zICsgJHN1ZmZpeCxcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxuICAgICk7XG4gIH1cblxuICBAZWxzZSBpZiAkaXMtc3BlYy1zeW50YXggPT0gMSB7XG4gICAgJHBvczogc3RyLXNsaWNlKCRmaXJzdC12YWwsICRpcy1zcGVjLXN5bnRheCArIDMsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkpO1xuXG4gICAgJGdyYWRpZW50czogKFxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRwcmVmaXggKyAkcG9zICsgJHN1ZmZpeCxcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxuICAgICk7XG4gIH1cblxuICBAZWxzZSBpZiBzdHItaW5kZXgoJGltYWdlLCBcImNvdmVyXCIpIG9yIHN0ci1pbmRleCgkaW1hZ2UsIFwiY29udGFpblwiKSB7XG4gICAgQHdhcm4gXCJSYWRpYWwtZ3JhZGllbnQgbmVlZHMgdG8gYmUgdXBkYXRlZCB0byBjb25mb3JtIHRvIGxhdGVzdCBzcGVjLlwiO1xuXG4gICAgJGdyYWRpZW50czogKFxuICAgICAgd2Via2l0LWltYWdlOiBudWxsLFxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXG4gICAgKTtcbiAgfVxuXG4gIEBlbHNlIHtcbiAgICAkZ3JhZGllbnRzOiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJGltYWdlLFxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXG4gICAgKTtcbiAgfVxuXG4gIEByZXR1cm4gJGdyYWRpZW50cztcbn1cbiIsIi8vIFVzZXIgZm9yIGxpbmVhciBhbmQgcmFkaWFsIGdyYWRpZW50cyB3aXRoaW4gYmFja2dyb3VuZC1pbWFnZSBvciBib3JkZXItaW1hZ2UgcHJvcGVydGllc1xuXG5AZnVuY3Rpb24gX3JlbmRlci1ncmFkaWVudHMoJGdyYWRpZW50LXBvc2l0aW9ucywgJGdyYWRpZW50cywgJGdyYWRpZW50LXR5cGUsICR2ZW5kb3I6IGZhbHNlKSB7XG4gICRwcmUtc3BlYzogbnVsbDtcbiAgJHNwZWM6IG51bGw7XG4gICR2ZW5kb3ItZ3JhZGllbnRzOiBudWxsO1xuICBAaWYgJGdyYWRpZW50LXR5cGUgPT0gbGluZWFyIHtcbiAgICBAaWYgJGdyYWRpZW50LXBvc2l0aW9ucyB7XG4gICAgICAkcHJlLXNwZWM6IG50aCgkZ3JhZGllbnQtcG9zaXRpb25zLCAxKTtcbiAgICAgICRzcGVjOiAgICAgbnRoKCRncmFkaWVudC1wb3NpdGlvbnMsIDIpO1xuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSByYWRpYWwge1xuICAgICRwcmUtc3BlYzogbnRoKCRncmFkaWVudC1wb3NpdGlvbnMsIDEpO1xuICAgICRzcGVjOiAgICAgbnRoKCRncmFkaWVudC1wb3NpdGlvbnMsIDIpO1xuICB9XG5cbiAgQGlmICR2ZW5kb3Ige1xuICAgICR2ZW5kb3ItZ3JhZGllbnRzOiAtI3skdmVuZG9yfS0jeyRncmFkaWVudC10eXBlfS1ncmFkaWVudCgjeyRwcmUtc3BlY30gJGdyYWRpZW50cyk7XG4gIH1cbiAgQGVsc2UgaWYgJHZlbmRvciA9PSBmYWxzZSB7XG4gICAgJHZlbmRvci1ncmFkaWVudHM6IFwiI3skZ3JhZGllbnQtdHlwZX0tZ3JhZGllbnQoI3skc3BlY30gI3skZ3JhZGllbnRzfSlcIjtcbiAgICAkdmVuZG9yLWdyYWRpZW50czogdW5xdW90ZSgkdmVuZG9yLWdyYWRpZW50cyk7XG4gIH1cbiAgQHJldHVybiAkdmVuZG9yLWdyYWRpZW50cztcbn1cbiIsIkBmdW5jdGlvbiBfc2hhcGUtc2l6ZS1zdHJpcHBlcigkc2hhcGUtc2l6ZSkge1xuICAkc2hhcGUtc2l6ZS1zcGVjOiBudWxsO1xuICBAZWFjaCAkdmFsdWUgaW4gJHNoYXBlLXNpemUge1xuICAgIEBpZiAoJHZhbHVlID09IFwiY292ZXJcIikgb3IgKCR2YWx1ZSA9PSBcImNvbnRhaW5cIikge1xuICAgICAgJHZhbHVlOiBudWxsO1xuICAgIH1cbiAgICAkc2hhcGUtc2l6ZS1zcGVjOiBcIiN7JHNoYXBlLXNpemUtc3BlY30gI3skdmFsdWV9XCI7XG4gIH1cbiAgQHJldHVybiAkc2hhcGUtc2l6ZS1zcGVjO1xufVxuIiwiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuLy8gSGVscGVyIGZ1bmN0aW9uIGZvciBsaW5lYXIvcmFkaWFsLWdyYWRpZW50LXBhcnNlcnMuXG4vLyBTb3VyY2U6IGh0dHA6Ly9zYXNzbWVpc3Rlci5jb20vZ2lzdC85NjQ3NDA4XG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG5AZnVuY3Rpb24gX3N0ci10by1udW0oJHN0cmluZykge1xuICAvLyBNYXRyaWNlc1xuICAkc3RyaW5nczogXCIwXCIgXCIxXCIgXCIyXCIgXCIzXCIgXCI0XCIgXCI1XCIgXCI2XCIgXCI3XCIgXCI4XCIgXCI5XCI7XG4gICRudW1iZXJzOiAgMCAgIDEgICAyICAgMyAgIDQgICA1ICAgNiAgIDcgICA4ICAgOTtcblxuICAvLyBSZXN1bHRcbiAgJHJlc3VsdDogMDtcbiAgJGRpdmlkZXI6IDA7XG4gICRtaW51czogZmFsc2U7XG5cbiAgLy8gTG9vcGluZyB0aHJvdWdoIGFsbCBjaGFyYWN0ZXJzXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggc3RyLWxlbmd0aCgkc3RyaW5nKSB7XG4gICAgJGNoYXJhY3Rlcjogc3RyLXNsaWNlKCRzdHJpbmcsICRpLCAkaSk7XG4gICAgJGluZGV4OiBpbmRleCgkc3RyaW5ncywgJGNoYXJhY3Rlcik7XG5cbiAgICBAaWYgJGNoYXJhY3RlciA9PSBcIi1cIiB7XG4gICAgICAkbWludXM6IHRydWU7XG4gICAgfVxuXG4gICAgQGVsc2UgaWYgJGNoYXJhY3RlciA9PSBcIi5cIiB7XG4gICAgICAkZGl2aWRlcjogMTtcbiAgICB9XG5cbiAgICBAZWxzZSB7XG4gICAgICBAaWYgbm90ICRpbmRleCB7XG4gICAgICAgICRyZXN1bHQ6IGlmKCRtaW51cywgJHJlc3VsdCAqIC0xLCAkcmVzdWx0KTtcbiAgICAgICAgQHJldHVybiBfY29udmVydC11bml0cygkcmVzdWx0LCBzdHItc2xpY2UoJHN0cmluZywgJGkpKTtcbiAgICAgIH1cblxuICAgICAgJG51bWJlcjogbnRoKCRudW1iZXJzLCAkaW5kZXgpO1xuXG4gICAgICBAaWYgJGRpdmlkZXIgPT0gMCB7XG4gICAgICAgICRyZXN1bHQ6ICRyZXN1bHQgKiAxMDtcbiAgICAgIH1cblxuICAgICAgQGVsc2Uge1xuICAgICAgICAvLyBNb3ZlIHRoZSBkZWNpbWFsIGRvdCB0byB0aGUgbGVmdFxuICAgICAgICAkZGl2aWRlcjogJGRpdmlkZXIgKiAxMDtcbiAgICAgICAgJG51bWJlcjogJG51bWJlciAvICRkaXZpZGVyO1xuICAgICAgfVxuXG4gICAgICAkcmVzdWx0OiAkcmVzdWx0ICsgJG51bWJlcjtcbiAgICB9XG4gIH1cbiAgQHJldHVybiBpZigkbWludXMsICRyZXN1bHQgKiAtMSwgJHJlc3VsdCk7XG59XG4iLCIvLyBodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MzLWFuaW1hdGlvbnMvI3RoZS1hbmltYXRpb24tbmFtZS1wcm9wZXJ0eS1cbi8vIEVhY2ggb2YgdGhlc2UgbWl4aW5zIHN1cHBvcnQgY29tbWEgc2VwYXJhdGVkIGxpc3RzIG9mIHZhbHVlcywgd2hpY2ggYWxsb3dzIGRpZmZlcmVudCB0cmFuc2l0aW9ucyBmb3IgaW5kaXZpZHVhbCBwcm9wZXJ0aWVzIHRvIGJlIGRlc2NyaWJlZCBpbiBhIHNpbmdsZSBzdHlsZSBydWxlLiBFYWNoIHZhbHVlIGluIHRoZSBsaXN0IGNvcnJlc3BvbmRzIHRvIHRoZSB2YWx1ZSBhdCB0aGF0IHNhbWUgcG9zaXRpb24gaW4gdGhlIG90aGVyIHByb3BlcnRpZXMuXG5cbkBtaXhpbiBhbmltYXRpb24oJGFuaW1hdGlvbnMuLi4pIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLCAkYW5pbWF0aW9ucywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGFuaW1hdGlvbi1uYW1lKCRuYW1lcy4uLikge1xuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tbmFtZSwgJG5hbWVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYW5pbWF0aW9uLWR1cmF0aW9uKCR0aW1lcy4uLikge1xuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tZHVyYXRpb24sICR0aW1lcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb24oJG1vdGlvbnMuLi4pIHtcbiAgLy8gZWFzZSB8IGxpbmVhciB8IGVhc2UtaW4gfCBlYXNlLW91dCB8IGVhc2UtaW4tb3V0XG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb24sICRtb3Rpb25zLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCgkdmFsdWVzLi4uKSB7XG4gIC8vIGluZmluaXRlIHwgPG51bWJlcj5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCwgJHZhbHVlcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGFuaW1hdGlvbi1kaXJlY3Rpb24oJGRpcmVjdGlvbnMuLi4pIHtcbiAgLy8gbm9ybWFsIHwgYWx0ZXJuYXRlXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1kaXJlY3Rpb24sICRkaXJlY3Rpb25zLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYW5pbWF0aW9uLXBsYXktc3RhdGUoJHN0YXRlcy4uLikge1xuICAvLyBydW5uaW5nIHwgcGF1c2VkXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1wbGF5LXN0YXRlLCAkc3RhdGVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYW5pbWF0aW9uLWRlbGF5KCR0aW1lcy4uLikge1xuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tZGVsYXksICR0aW1lcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGFuaW1hdGlvbi1maWxsLW1vZGUoJG1vZGVzLi4uKSB7XG4gIC8vIG5vbmUgfCBmb3J3YXJkcyB8IGJhY2t3YXJkcyB8IGJvdGhcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWZpbGwtbW9kZSwgJG1vZGVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuIiwiQG1peGluIGFwcGVhcmFuY2UoJHZhbHVlKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGFwcGVhcmFuY2UsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xufVxuIiwiQG1peGluIGJhY2tmYWNlLXZpc2liaWxpdHkoJHZpc2liaWxpdHkpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYmFja2ZhY2UtdmlzaWJpbGl0eSwgJHZpc2liaWxpdHksIHdlYmtpdCBzcGVjKTtcbn1cbiIsIi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbi8vIEJhY2tncm91bmQgcHJvcGVydHkgZm9yIGFkZGluZyBtdWx0aXBsZSBiYWNrZ3JvdW5kcyB1c2luZyBzaG9ydGhhbmRcbi8vIG5vdGF0aW9uLlxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuXG5AbWl4aW4gYmFja2dyb3VuZCgkYmFja2dyb3VuZHMuLi4pIHtcbiAgJHdlYmtpdC1iYWNrZ3JvdW5kczogKCk7XG4gICRzcGVjLWJhY2tncm91bmRzOiAoKTtcblxuICBAZWFjaCAkYmFja2dyb3VuZCBpbiAkYmFja2dyb3VuZHMge1xuICAgICR3ZWJraXQtYmFja2dyb3VuZDogKCk7XG4gICAgJHNwZWMtYmFja2dyb3VuZDogKCk7XG4gICAgJGJhY2tncm91bmQtdHlwZTogdHlwZS1vZigkYmFja2dyb3VuZCk7XG5cbiAgICBAaWYgJGJhY2tncm91bmQtdHlwZSA9PSBzdHJpbmcgb3IgJGJhY2tncm91bmQtdHlwZSA9PSBsaXN0IHtcbiAgICAgICRiYWNrZ3JvdW5kLXN0cjogaWYoJGJhY2tncm91bmQtdHlwZSA9PSBsaXN0LCBudGgoJGJhY2tncm91bmQsIDEpLCAkYmFja2dyb3VuZCk7XG5cbiAgICAgICR1cmwtc3RyOiAgICAgICBzdHItc2xpY2UoJGJhY2tncm91bmQtc3RyLCAxLCAzKTtcbiAgICAgICRncmFkaWVudC10eXBlOiBzdHItc2xpY2UoJGJhY2tncm91bmQtc3RyLCAxLCA2KTtcblxuICAgICAgQGlmICR1cmwtc3RyID09IFwidXJsXCIge1xuICAgICAgICAkd2Via2l0LWJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgICAgICAkc3BlYy1iYWNrZ3JvdW5kOiAgICRiYWNrZ3JvdW5kO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSBcImxpbmVhclwiIHtcbiAgICAgICAgJGdyYWRpZW50czogX2xpbmVhci1ncmFkaWVudC1wYXJzZXIoXCIjeyRiYWNrZ3JvdW5kfVwiKTtcbiAgICAgICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XG4gICAgICAgICRzcGVjLWJhY2tncm91bmQ6ICAgbWFwLWdldCgkZ3JhZGllbnRzLCBzcGVjLWltYWdlKTtcbiAgICAgIH1cblxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJyYWRpYWxcIiB7XG4gICAgICAgICRncmFkaWVudHM6IF9yYWRpYWwtZ3JhZGllbnQtcGFyc2VyKFwiI3skYmFja2dyb3VuZH1cIik7XG4gICAgICAgICR3ZWJraXQtYmFja2dyb3VuZDogbWFwLWdldCgkZ3JhZGllbnRzLCB3ZWJraXQtaW1hZ2UpO1xuICAgICAgICAkc3BlYy1iYWNrZ3JvdW5kOiAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICAgICAgJHNwZWMtYmFja2dyb3VuZDogICAkYmFja2dyb3VuZDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAZWxzZSB7XG4gICAgICAkd2Via2l0LWJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgICAgJHNwZWMtYmFja2dyb3VuZDogICAkYmFja2dyb3VuZDtcbiAgICB9XG5cbiAgICAkd2Via2l0LWJhY2tncm91bmRzOiBhcHBlbmQoJHdlYmtpdC1iYWNrZ3JvdW5kcywgJHdlYmtpdC1iYWNrZ3JvdW5kLCBjb21tYSk7XG4gICAgJHNwZWMtYmFja2dyb3VuZHM6ICAgYXBwZW5kKCRzcGVjLWJhY2tncm91bmRzLCAgICRzcGVjLWJhY2tncm91bmQsICAgY29tbWEpO1xuICB9XG5cbiAgYmFja2dyb3VuZDogJHdlYmtpdC1iYWNrZ3JvdW5kcztcbiAgYmFja2dyb3VuZDogJHNwZWMtYmFja2dyb3VuZHM7XG59XG4iLCIvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG4vLyBCYWNrZ3JvdW5kLWltYWdlIHByb3BlcnR5IGZvciBhZGRpbmcgbXVsdGlwbGUgYmFja2dyb3VuZCBpbWFnZXMgd2l0aFxuLy8gZ3JhZGllbnRzLCBvciBmb3Igc3RyaW5naW5nIG11bHRpcGxlIGdyYWRpZW50cyB0b2dldGhlci5cbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cblxuQG1peGluIGJhY2tncm91bmQtaW1hZ2UoJGltYWdlcy4uLikge1xuICAkd2Via2l0LWltYWdlczogKCk7XG4gICRzcGVjLWltYWdlczogKCk7XG5cbiAgQGVhY2ggJGltYWdlIGluICRpbWFnZXMge1xuICAgICR3ZWJraXQtaW1hZ2U6ICgpO1xuICAgICRzcGVjLWltYWdlOiAoKTtcblxuICAgIEBpZiAodHlwZS1vZigkaW1hZ2UpID09IHN0cmluZykge1xuICAgICAgJHVybC1zdHI6ICAgICAgIHN0ci1zbGljZSgkaW1hZ2UsIDEsIDMpO1xuICAgICAgJGdyYWRpZW50LXR5cGU6IHN0ci1zbGljZSgkaW1hZ2UsIDEsIDYpO1xuXG4gICAgICBAaWYgJHVybC1zdHIgPT0gXCJ1cmxcIiB7XG4gICAgICAgICR3ZWJraXQtaW1hZ2U6ICRpbWFnZTtcbiAgICAgICAgJHNwZWMtaW1hZ2U6ICAgJGltYWdlO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSBcImxpbmVhclwiIHtcbiAgICAgICAgJGdyYWRpZW50czogX2xpbmVhci1ncmFkaWVudC1wYXJzZXIoJGltYWdlKTtcbiAgICAgICAgJHdlYmtpdC1pbWFnZTogIG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcbiAgICAgICAgJHNwZWMtaW1hZ2U6ICAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwicmFkaWFsXCIge1xuICAgICAgICAkZ3JhZGllbnRzOiBfcmFkaWFsLWdyYWRpZW50LXBhcnNlcigkaW1hZ2UpO1xuICAgICAgICAkd2Via2l0LWltYWdlOiBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XG4gICAgICAgICRzcGVjLWltYWdlOiAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJHdlYmtpdC1pbWFnZXM6IGFwcGVuZCgkd2Via2l0LWltYWdlcywgJHdlYmtpdC1pbWFnZSwgY29tbWEpO1xuICAgICRzcGVjLWltYWdlczogICBhcHBlbmQoJHNwZWMtaW1hZ2VzLCAgICRzcGVjLWltYWdlLCAgIGNvbW1hKTtcbiAgfVxuXG4gIGJhY2tncm91bmQtaW1hZ2U6ICR3ZWJraXQtaW1hZ2VzO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAkc3BlYy1pbWFnZXM7XG59XG4iLCJAbWl4aW4gYm9yZGVyLWltYWdlKCRib3JkZXJzLi4uKSB7XG4gICR3ZWJraXQtYm9yZGVyczogKCk7XG4gICRzcGVjLWJvcmRlcnM6ICgpO1xuXG4gIEBlYWNoICRib3JkZXIgaW4gJGJvcmRlcnMge1xuICAgICR3ZWJraXQtYm9yZGVyOiAoKTtcbiAgICAkc3BlYy1ib3JkZXI6ICgpO1xuICAgICRib3JkZXItdHlwZTogdHlwZS1vZigkYm9yZGVyKTtcblxuICAgIEBpZiAkYm9yZGVyLXR5cGUgPT0gc3RyaW5nIG9yIGxpc3Qge1xuICAgICAgJGJvcmRlci1zdHI6IGlmKCRib3JkZXItdHlwZSA9PSBsaXN0LCBudGgoJGJvcmRlciwgMSksICRib3JkZXIpO1xuXG4gICAgICAkdXJsLXN0cjogICAgICAgc3RyLXNsaWNlKCRib3JkZXItc3RyLCAxLCAzKTtcbiAgICAgICRncmFkaWVudC10eXBlOiBzdHItc2xpY2UoJGJvcmRlci1zdHIsIDEsIDYpO1xuXG4gICAgICBAaWYgJHVybC1zdHIgPT0gXCJ1cmxcIiB7XG4gICAgICAgICR3ZWJraXQtYm9yZGVyOiAkYm9yZGVyO1xuICAgICAgICAkc3BlYy1ib3JkZXI6ICAgJGJvcmRlcjtcbiAgICAgIH1cblxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJsaW5lYXJcIiB7XG4gICAgICAgICRncmFkaWVudHM6IF9saW5lYXItZ3JhZGllbnQtcGFyc2VyKFwiI3skYm9yZGVyfVwiKTtcbiAgICAgICAgJHdlYmtpdC1ib3JkZXI6IG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcbiAgICAgICAgJHNwZWMtYm9yZGVyOiAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwicmFkaWFsXCIge1xuICAgICAgICAkZ3JhZGllbnRzOiBfcmFkaWFsLWdyYWRpZW50LXBhcnNlcihcIiN7JGJvcmRlcn1cIik7XG4gICAgICAgICR3ZWJraXQtYm9yZGVyOiBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XG4gICAgICAgICRzcGVjLWJvcmRlcjogICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSB7XG4gICAgICAgICR3ZWJraXQtYm9yZGVyOiAkYm9yZGVyO1xuICAgICAgICAkc3BlYy1ib3JkZXI6ICAgJGJvcmRlcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAZWxzZSB7XG4gICAgICAkd2Via2l0LWJvcmRlcjogJGJvcmRlcjtcbiAgICAgICRzcGVjLWJvcmRlcjogICAkYm9yZGVyO1xuICAgIH1cblxuICAgICR3ZWJraXQtYm9yZGVyczogYXBwZW5kKCR3ZWJraXQtYm9yZGVycywgJHdlYmtpdC1ib3JkZXIsIGNvbW1hKTtcbiAgICAkc3BlYy1ib3JkZXJzOiAgIGFwcGVuZCgkc3BlYy1ib3JkZXJzLCAgICRzcGVjLWJvcmRlciwgICBjb21tYSk7XG4gIH1cblxuICAtd2Via2l0LWJvcmRlci1pbWFnZTogJHdlYmtpdC1ib3JkZXJzO1xuICAgICAgICAgIGJvcmRlci1pbWFnZTogJHNwZWMtYm9yZGVycztcbiAgICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xufVxuXG4vL0V4YW1wbGVzOlxuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKHVybChcImltYWdlLnBuZ1wiKSk7XG4vLyBAaW5jbHVkZSBib3JkZXItaW1hZ2UodXJsKFwiaW1hZ2UucG5nXCIpIDIwIHN0cmV0Y2gpO1xuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKGxpbmVhci1ncmFkaWVudCg0NWRlZywgb3JhbmdlLCB5ZWxsb3cpKTtcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZShsaW5lYXItZ3JhZGllbnQoNDVkZWcsIG9yYW5nZSwgeWVsbG93KSBzdHJldGNoKTtcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZShsaW5lYXItZ3JhZGllbnQoNDVkZWcsIG9yYW5nZSwgeWVsbG93KSAyMCAzMCA0MCA1MCBzdHJldGNoIHJvdW5kKTtcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZShyYWRpYWwtZ3JhZGllbnQodG9wLCBjb3Zlciwgb3JhbmdlLCB5ZWxsb3csIG9yYW5nZSkpO1xuIiwiQG1peGluIGNhbGMoJHByb3BlcnR5LCAkdmFsdWUpIHtcbiAgI3skcHJvcGVydHl9OiAtd2Via2l0LWNhbGMoI3skdmFsdWV9KTtcbiAgI3skcHJvcGVydHl9OiBjYWxjKCN7JHZhbHVlfSk7XG59XG4iLCJAbWl4aW4gY29sdW1ucygkYXJnOiBhdXRvKSB7XG4gIC8vIDxjb2x1bW4tY291bnQ+IHx8IDxjb2x1bW4td2lkdGg+XG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbnMsICRhcmcsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4tY291bnQoJGludDogYXV0bykge1xuICAvLyBhdXRvIHx8IGludGVnZXJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLWNvdW50LCAkaW50LCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLWdhcCgkbGVuZ3RoOiBub3JtYWwpIHtcbiAgLy8gbm9ybWFsIHx8IGxlbmd0aFxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tZ2FwLCAkbGVuZ3RoLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLWZpbGwoJGFyZzogYXV0bykge1xuICAvLyBhdXRvIHx8IGxlbmd0aFxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tZmlsbCwgJGFyZywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1ydWxlKCRhcmcpIHtcbiAgLy8gPGJvcmRlci13aWR0aD4gfHwgPGJvcmRlci1zdHlsZT4gfHwgPGNvbG9yPlxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tcnVsZSwgJGFyZywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1ydWxlLWNvbG9yKCRjb2xvcikge1xuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tcnVsZS1jb2xvciwgJGNvbG9yLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLXJ1bGUtc3R5bGUoJHN0eWxlOiBub25lKSB7XG4gIC8vIG5vbmUgfCBoaWRkZW4gfCBkYXNoZWQgfCBkb3R0ZWQgfCBkb3VibGUgfCBncm9vdmUgfCBpbnNldCB8IGluc2V0IHwgb3V0c2V0IHwgcmlkZ2UgfCBzb2xpZFxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tcnVsZS1zdHlsZSwgJHN0eWxlLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLXJ1bGUtd2lkdGggKCR3aWR0aDogbm9uZSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tcnVsZS13aWR0aCwgJHdpZHRoLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLXNwYW4oJGFyZzogbm9uZSkge1xuICAvLyBub25lIHx8IGFsbFxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tc3BhbiwgJGFyZywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi13aWR0aCgkbGVuZ3RoOiBhdXRvKSB7XG4gIC8vIGF1dG8gfHwgbGVuZ3RoXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi13aWR0aCwgJGxlbmd0aCwgd2Via2l0IG1veiBzcGVjKTtcbn1cbiIsIkBtaXhpbiBmaWx0ZXIoJGZ1bmN0aW9uOiBub25lKSB7XG4gIC8vIDxmaWx0ZXItZnVuY3Rpb24+IFs8ZmlsdGVyLWZ1bmN0aW9uXSogfCBub25lXG4gIEBpbmNsdWRlIHByZWZpeGVyKGZpbHRlciwgJGZ1bmN0aW9uLCB3ZWJraXQgc3BlYyk7XG59XG4iLCIvLyBDU1MzIEZsZXhpYmxlIEJveCBNb2RlbCBhbmQgcHJvcGVydHkgZGVmYXVsdHNcblxuLy8gQ3VzdG9tIHNob3J0aGFuZCBub3RhdGlvbiBmb3IgZmxleGJveFxuQG1peGluIGJveCgkb3JpZW50OiBpbmxpbmUtYXhpcywgJHBhY2s6IHN0YXJ0LCAkYWxpZ246IHN0cmV0Y2gpIHtcbiAgQGluY2x1ZGUgZGlzcGxheS1ib3g7XG4gIEBpbmNsdWRlIGJveC1vcmllbnQoJG9yaWVudCk7XG4gIEBpbmNsdWRlIGJveC1wYWNrKCRwYWNrKTtcbiAgQGluY2x1ZGUgYm94LWFsaWduKCRhbGlnbik7XG59XG5cbkBtaXhpbiBkaXNwbGF5LWJveCB7XG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICBkaXNwbGF5OiAtbW96LWJveDtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7IC8vIElFIDEwXG4gIGRpc3BsYXk6IGJveDtcbn1cblxuQG1peGluIGJveC1vcmllbnQoJG9yaWVudDogaW5saW5lLWF4aXMpIHtcbi8vIGhvcml6b250YWx8dmVydGljYWx8aW5saW5lLWF4aXN8YmxvY2stYXhpc3xpbmhlcml0XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1vcmllbnQsICRvcmllbnQsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBib3gtcGFjaygkcGFjazogc3RhcnQpIHtcbi8vIHN0YXJ0fGVuZHxjZW50ZXJ8anVzdGlmeVxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtcGFjaywgJHBhY2ssIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LXBhY2s6ICRwYWNrOyAvLyBJRSAxMFxufVxuXG5AbWl4aW4gYm94LWFsaWduKCRhbGlnbjogc3RyZXRjaCkge1xuLy8gc3RhcnR8ZW5kfGNlbnRlcnxiYXNlbGluZXxzdHJldGNoXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1hbGlnbiwgJGFsaWduLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1hbGlnbjogJGFsaWduOyAvLyBJRSAxMFxufVxuXG5AbWl4aW4gYm94LWRpcmVjdGlvbigkZGlyZWN0aW9uOiBub3JtYWwpIHtcbi8vIG5vcm1hbHxyZXZlcnNlfGluaGVyaXRcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWRpcmVjdGlvbiwgJGRpcmVjdGlvbiwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtZGlyZWN0aW9uOiAkZGlyZWN0aW9uOyAvLyBJRSAxMFxufVxuXG5AbWl4aW4gYm94LWxpbmVzKCRsaW5lczogc2luZ2xlKSB7XG4vLyBzaW5nbGV8bXVsdGlwbGVcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWxpbmVzLCAkbGluZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBib3gtb3JkaW5hbC1ncm91cCgkaW50OiAxKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1vcmRpbmFsLWdyb3VwLCAkaW50LCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1vcmRlcjogJGludDsgLy8gSUUgMTBcbn1cblxuQG1peGluIGJveC1mbGV4KCR2YWx1ZTogMCkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZmxleCwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleDogJHZhbHVlOyAvLyBJRSAxMFxufVxuXG5AbWl4aW4gYm94LWZsZXgtZ3JvdXAoJGludDogMSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZmxleC1ncm91cCwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuLy8gQ1NTMyBGbGV4aWJsZSBCb3ggTW9kZWwgYW5kIHByb3BlcnR5IGRlZmF1bHRzXG4vLyBVbmlmaWVkIGF0dHJpYnV0ZXMgZm9yIDIwMDksIDIwMTEsIGFuZCAyMDEyIGZsYXZvdXJzLlxuXG4vLyAyMDA5IC0gZGlzcGxheSAoYm94IHwgaW5saW5lLWJveClcbi8vIDIwMTEgLSBkaXNwbGF5IChmbGV4Ym94IHwgaW5saW5lLWZsZXhib3gpXG4vLyAyMDEyIC0gZGlzcGxheSAoZmxleCB8IGlubGluZS1mbGV4KVxuQG1peGluIGRpc3BsYXkoJHZhbHVlKSB7XG4vLyBmbGV4IHwgaW5saW5lLWZsZXhcbiAgQGlmICR2YWx1ZSA9PSBcImZsZXhcIiB7XG4gICAgLy8gMjAwOVxuICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAgIGRpc3BsYXk6IC1tb3otYm94O1xuICAgIGRpc3BsYXk6IGJveDtcblxuICAgIC8vIDIwMTJcbiAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gICAgZGlzcGxheTogLW1vei1mbGV4O1xuICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94OyAvLyAyMDExIChJRSAxMClcbiAgICBkaXNwbGF5OiBmbGV4O1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcImlubGluZS1mbGV4XCIge1xuICAgIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWJveDtcbiAgICBkaXNwbGF5OiAtbW96LWlubGluZS1ib3g7XG4gICAgZGlzcGxheTogaW5saW5lLWJveDtcblxuICAgIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWZsZXg7XG4gICAgZGlzcGxheTogLW1vei1pbmxpbmUtZmxleDtcbiAgICBkaXNwbGF5OiAtbXMtaW5saW5lLWZsZXhib3g7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIH0gQGVsc2Uge1xuICAgIGRpc3BsYXk6ICR2YWx1ZTtcbiAgfVxufVxuXG4vLyAyMDA5IC0gYm94LWZsZXggKGludGVnZXIpXG4vLyAyMDExIC0gZmxleCAoZGVjaW1hbCB8IHdpZHRoIGRlY2ltYWwpXG4vLyAyMDEyIC0gZmxleCAoaW50ZWdlciBpbnRlZ2VyIHdpZHRoKVxuQG1peGluIGZsZXgoJHZhbHVlKSB7XG5cbiAgLy8gR3JhYiBmbGV4LWdyb3cgZm9yIG9sZGVyIGJyb3dzZXJzLlxuICAkZmxleC1ncm93OiBudGgoJHZhbHVlLCAxKTtcblxuICAvLyAyMDA5XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1mbGV4LCAkZmxleC1ncm93LCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTEgKElFIDEwKSwgMjAxMlxuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgc3BlYyk7XG59XG5cbi8vIDIwMDkgLSBib3gtb3JpZW50ICggaG9yaXpvbnRhbCB8IHZlcnRpY2FsIHwgaW5saW5lLWF4aXMgfCBibG9jay1heGlzKVxuLy8gICAgICAtIGJveC1kaXJlY3Rpb24gKG5vcm1hbCB8IHJldmVyc2UpXG4vLyAyMDExIC0gZmxleC1kaXJlY3Rpb24gKHJvdyB8IHJvdy1yZXZlcnNlIHwgY29sdW1uIHwgY29sdW1uLXJldmVyc2UpXG4vLyAyMDEyIC0gZmxleC1kaXJlY3Rpb24gKHJvdyB8IHJvdy1yZXZlcnNlIHwgY29sdW1uIHwgY29sdW1uLXJldmVyc2UpXG5AbWl4aW4gZmxleC1kaXJlY3Rpb24oJHZhbHVlOiByb3cpIHtcblxuICAvLyBBbHQgdmFsdWVzLlxuICAkdmFsdWUtMjAwOTogJHZhbHVlO1xuICAkdmFsdWUtMjAxMTogJHZhbHVlO1xuICAkZGlyZWN0aW9uOiBub3JtYWw7XG5cbiAgQGlmICR2YWx1ZSA9PSByb3cge1xuICAgICR2YWx1ZS0yMDA5OiBob3Jpem9udGFsO1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcInJvdy1yZXZlcnNlXCIge1xuICAgICR2YWx1ZS0yMDA5OiBob3Jpem9udGFsO1xuICAgICRkaXJlY3Rpb246IHJldmVyc2U7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IGNvbHVtbiB7XG4gICAgJHZhbHVlLTIwMDk6IHZlcnRpY2FsO1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcImNvbHVtbi1yZXZlcnNlXCIge1xuICAgICR2YWx1ZS0yMDA5OiB2ZXJ0aWNhbDtcbiAgICAkZGlyZWN0aW9uOiByZXZlcnNlO1xuICB9XG5cbiAgLy8gMjAwOVxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtb3JpZW50LCAkdmFsdWUtMjAwOSwgd2Via2l0IG1veiBzcGVjKTtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWRpcmVjdGlvbiwgJGRpcmVjdGlvbiwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDEyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtZGlyZWN0aW9uLCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMSAoSUUgMTApXG4gIC1tcy1mbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xufVxuXG4vLyAyMDA5IC0gYm94LWxpbmVzIChzaW5nbGUgfCBtdWx0aXBsZSlcbi8vIDIwMTEgLSBmbGV4LXdyYXAgKG5vd3JhcCB8IHdyYXAgfCB3cmFwLXJldmVyc2UpXG4vLyAyMDEyIC0gZmxleC13cmFwIChub3dyYXAgfCB3cmFwIHwgd3JhcC1yZXZlcnNlKVxuQG1peGluIGZsZXgtd3JhcCgkdmFsdWU6IG5vd3JhcCkge1xuICAvLyBBbHQgdmFsdWVzXG4gICRhbHQtdmFsdWU6ICR2YWx1ZTtcbiAgQGlmICR2YWx1ZSA9PSBub3dyYXAge1xuICAgICRhbHQtdmFsdWU6IHNpbmdsZTtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gd3JhcCB7XG4gICAgJGFsdC12YWx1ZTogbXVsdGlwbGU7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwid3JhcC1yZXZlcnNlXCIge1xuICAgICRhbHQtdmFsdWU6IG11bHRpcGxlO1xuICB9XG5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWxpbmVzLCAkYWx0LXZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LXdyYXAsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBzcGVjKTtcbn1cblxuLy8gMjAwOSAtIFRPRE86IHBhcnNlIHZhbHVlcyBpbnRvIGZsZXgtZGlyZWN0aW9uL2ZsZXgtd3JhcFxuLy8gMjAxMSAtIFRPRE86IHBhcnNlIHZhbHVlcyBpbnRvIGZsZXgtZGlyZWN0aW9uL2ZsZXgtd3JhcFxuLy8gMjAxMiAtIGZsZXgtZmxvdyAoZmxleC1kaXJlY3Rpb24gfHwgZmxleC13cmFwKVxuQG1peGluIGZsZXgtZmxvdygkdmFsdWUpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1mbG93LCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbi8vIDIwMDkgLSBib3gtb3JkaW5hbC1ncm91cCAoaW50ZWdlcilcbi8vIDIwMTEgLSBmbGV4LW9yZGVyIChpbnRlZ2VyKVxuLy8gMjAxMiAtIG9yZGVyIChpbnRlZ2VyKVxuQG1peGluIG9yZGVyKCRpbnQ6IDApIHtcbiAgLy8gMjAwOVxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtb3JkaW5hbC1ncm91cCwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDEyXG4gIEBpbmNsdWRlIHByZWZpeGVyKG9yZGVyLCAkaW50LCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTEgKElFIDEwKVxuICAtbXMtZmxleC1vcmRlcjogJGludDtcbn1cblxuLy8gMjAxMiAtIGZsZXgtZ3JvdyAobnVtYmVyKVxuQG1peGluIGZsZXgtZ3JvdygkbnVtYmVyOiAwKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtZ3JvdywgJG51bWJlciwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtcG9zaXRpdmU6ICRudW1iZXI7XG59XG5cbi8vIDIwMTIgLSBmbGV4LXNocmluayAobnVtYmVyKVxuQG1peGluIGZsZXgtc2hyaW5rKCRudW1iZXI6IDEpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1zaHJpbmssICRudW1iZXIsIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LW5lZ2F0aXZlOiAkbnVtYmVyO1xufVxuXG4vLyAyMDEyIC0gZmxleC1iYXNpcyAobnVtYmVyKVxuQG1peGluIGZsZXgtYmFzaXMoJHdpZHRoOiBhdXRvKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtYmFzaXMsICR3aWR0aCwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6ICR3aWR0aDtcbn1cblxuLy8gMjAwOSAtIGJveC1wYWNrIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGp1c3RpZnkpXG4vLyAyMDExIC0gZmxleC1wYWNrIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGp1c3RpZnkpXG4vLyAyMDEyIC0ganVzdGlmeS1jb250ZW50IChmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBzcGFjZS1iZXR3ZWVuIHwgc3BhY2UtYXJvdW5kKVxuQG1peGluIGp1c3RpZnktY29udGVudCgkdmFsdWU6IGZsZXgtc3RhcnQpIHtcblxuICAvLyBBbHQgdmFsdWVzLlxuICAkYWx0LXZhbHVlOiAkdmFsdWU7XG4gIEBpZiAkdmFsdWUgPT0gXCJmbGV4LXN0YXJ0XCIge1xuICAgICRhbHQtdmFsdWU6IHN0YXJ0O1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcImZsZXgtZW5kXCIge1xuICAgICRhbHQtdmFsdWU6IGVuZDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJzcGFjZS1iZXR3ZWVuXCIge1xuICAgICRhbHQtdmFsdWU6IGp1c3RpZnk7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwic3BhY2UtYXJvdW5kXCIge1xuICAgICRhbHQtdmFsdWU6IGRpc3RyaWJ1dGU7XG4gIH1cblxuICAvLyAyMDA5XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1wYWNrLCAkYWx0LXZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoanVzdGlmeS1jb250ZW50LCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcblxuICAvLyAyMDExIChJRSAxMClcbiAgLW1zLWZsZXgtcGFjazogJGFsdC12YWx1ZTtcbn1cblxuLy8gMjAwOSAtIGJveC1hbGlnbiAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXG4vLyAyMDExIC0gZmxleC1hbGlnbiAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXG4vLyAyMDEyIC0gYWxpZ24taXRlbXMgKGZsZXgtc3RhcnQgfCBmbGV4LWVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcbkBtaXhpbiBhbGlnbi1pdGVtcygkdmFsdWU6IHN0cmV0Y2gpIHtcblxuICAkYWx0LXZhbHVlOiAkdmFsdWU7XG5cbiAgQGlmICR2YWx1ZSA9PSBcImZsZXgtc3RhcnRcIiB7XG4gICAgJGFsdC12YWx1ZTogc3RhcnQ7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwiZmxleC1lbmRcIiB7XG4gICAgJGFsdC12YWx1ZTogZW5kO1xuICB9XG5cbiAgLy8gMjAwOVxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtYWxpZ24sICRhbHQtdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMlxuICBAaW5jbHVkZSBwcmVmaXhlcihhbGlnbi1pdGVtcywgJHZhbHVlLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XG5cbiAgLy8gMjAxMSAoSUUgMTApXG4gIC1tcy1mbGV4LWFsaWduOiAkYWx0LXZhbHVlO1xufVxuXG4vLyAyMDExIC0gZmxleC1pdGVtLWFsaWduIChhdXRvIHwgc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXG4vLyAyMDEyIC0gYWxpZ24tc2VsZiAoYXV0byB8IGZsZXgtc3RhcnQgfCBmbGV4LWVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcbkBtaXhpbiBhbGlnbi1zZWxmKCR2YWx1ZTogYXV0bykge1xuXG4gICR2YWx1ZS0yMDExOiAkdmFsdWU7XG4gIEBpZiAkdmFsdWUgPT0gXCJmbGV4LXN0YXJ0XCIge1xuICAgICR2YWx1ZS0yMDExOiBzdGFydDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJmbGV4LWVuZFwiIHtcbiAgICAkdmFsdWUtMjAxMTogZW5kO1xuICB9XG5cbiAgLy8gMjAxMlxuICBAaW5jbHVkZSBwcmVmaXhlcihhbGlnbi1zZWxmLCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMSAoSUUgMTApXG4gIC1tcy1mbGV4LWl0ZW0tYWxpZ246ICR2YWx1ZS0yMDExO1xufVxuXG4vLyAyMDExIC0gZmxleC1saW5lLXBhY2sgKHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwganVzdGlmeSB8IGRpc3RyaWJ1dGUgfCBzdHJldGNoKVxuLy8gMjAxMiAtIGFsaWduLWNvbnRlbnQgKGZsZXgtc3RhcnQgfCBmbGV4LWVuZCB8IGNlbnRlciB8IHNwYWNlLWJldHdlZW4gfCBzcGFjZS1hcm91bmQgfCBzdHJldGNoKVxuQG1peGluIGFsaWduLWNvbnRlbnQoJHZhbHVlOiBzdHJldGNoKSB7XG5cbiAgJHZhbHVlLTIwMTE6ICR2YWx1ZTtcbiAgQGlmICR2YWx1ZSA9PSBcImZsZXgtc3RhcnRcIiB7XG4gICAgJHZhbHVlLTIwMTE6IHN0YXJ0O1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcImZsZXgtZW5kXCIge1xuICAgICR2YWx1ZS0yMDExOiBlbmQ7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwic3BhY2UtYmV0d2VlblwiIHtcbiAgICAkdmFsdWUtMjAxMToganVzdGlmeTtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJzcGFjZS1hcm91bmRcIiB7XG4gICAgJHZhbHVlLTIwMTE6IGRpc3RyaWJ1dGU7XG4gIH1cblxuICAvLyAyMDEyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFsaWduLWNvbnRlbnQsICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDExIChJRSAxMClcbiAgLW1zLWZsZXgtbGluZS1wYWNrOiAkdmFsdWUtMjAxMTtcbn1cbiIsIkBtaXhpbiBmb250LWZhY2UoXG4gICRmb250LWZhbWlseSxcbiAgJGZpbGUtcGF0aCxcbiAgJHdlaWdodDogbm9ybWFsLFxuICAkc3R5bGU6IG5vcm1hbCxcbiAgJGFzc2V0LXBpcGVsaW5lOiAkYXNzZXQtcGlwZWxpbmUsXG4gICRmaWxlLWZvcm1hdHM6IGVvdCB3b2ZmMiB3b2ZmIHR0ZiBzdmcpIHtcblxuICAkZm9udC11cmwtcHJlZml4OiBmb250LXVybC1wcmVmaXhlcigkYXNzZXQtcGlwZWxpbmUpO1xuXG4gIEBmb250LWZhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHk7XG4gICAgZm9udC1zdHlsZTogJHN0eWxlO1xuICAgIGZvbnQtd2VpZ2h0OiAkd2VpZ2h0O1xuXG4gICAgc3JjOiBmb250LXNvdXJjZS1kZWNsYXJhdGlvbihcbiAgICAgICRmb250LWZhbWlseSxcbiAgICAgICRmaWxlLXBhdGgsXG4gICAgICAkYXNzZXQtcGlwZWxpbmUsXG4gICAgICAkZmlsZS1mb3JtYXRzLFxuICAgICAgJGZvbnQtdXJsLXByZWZpeFxuICAgICk7XG4gIH1cbn1cbiIsIkBtaXhpbiBmb250LWZlYXR1cmUtc2V0dGluZ3MoJHNldHRpbmdzLi4uKSB7XG4gIEBpZiBsZW5ndGgoJHNldHRpbmdzKSA9PSAwIHsgJHNldHRpbmdzOiBub25lOyB9XG4gIEBpbmNsdWRlIHByZWZpeGVyKGZvbnQtZmVhdHVyZS1zZXR0aW5ncywgJHNldHRpbmdzLCB3ZWJraXQgbW96IG1zIHNwZWMpO1xufVxuIiwiLy8gSGlEUEkgbWl4aW4uIERlZmF1bHQgdmFsdWUgc2V0IHRvIDEuMyB0byB0YXJnZXQgR29vZ2xlIE5leHVzIDcgKGh0dHA6Ly9iamFuZ28uY29tL2FydGljbGVzL21pbi1kZXZpY2UtcGl4ZWwtcmF0aW8vKVxuQG1peGluIGhpZHBpKCRyYXRpbzogMS4zKSB7XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogJHJhdGlvKSxcbiAgb25seSBzY3JlZW4gYW5kIChtaW4tLW1vei1kZXZpY2UtcGl4ZWwtcmF0aW86ICRyYXRpbyksXG4gIG9ubHkgc2NyZWVuIGFuZCAoLW8tbWluLWRldmljZS1waXhlbC1yYXRpbzogI3skcmF0aW99LzEpLFxuICBvbmx5IHNjcmVlbiBhbmQgKG1pbi1yZXNvbHV0aW9uOiByb3VuZCgkcmF0aW8gKiA5NmRwaSkpLFxuICBvbmx5IHNjcmVlbiBhbmQgKG1pbi1yZXNvbHV0aW9uOiAkcmF0aW8gKiAxZHBweCkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG4iLCJAbWl4aW4gaHlwaGVucygkaHlwaGVuYXRpb246IG5vbmUpIHtcbiAgLy8gbm9uZSB8IG1hbnVhbCB8IGF1dG9cbiAgQGluY2x1ZGUgcHJlZml4ZXIoaHlwaGVucywgJGh5cGhlbmF0aW9uLCB3ZWJraXQgbW96IG1zIHNwZWMpO1xufVxuIiwiQG1peGluIGltYWdlLXJlbmRlcmluZyAoJG1vZGU6YXV0bykge1xuXG4gIEBpZiAoJG1vZGUgPT0gY3Jpc3AtZWRnZXMpIHtcbiAgICAtbXMtaW50ZXJwb2xhdGlvbi1tb2RlOiBuZWFyZXN0LW5laWdoYm9yOyAvLyBJRTgrXG4gICAgaW1hZ2UtcmVuZGVyaW5nOiAtbW96LWNyaXNwLWVkZ2VzO1xuICAgIGltYWdlLXJlbmRlcmluZzogLW8tY3Jpc3AtZWRnZXM7XG4gICAgaW1hZ2UtcmVuZGVyaW5nOiAtd2Via2l0LW9wdGltaXplLWNvbnRyYXN0O1xuICAgIGltYWdlLXJlbmRlcmluZzogY3Jpc3AtZWRnZXM7XG4gIH1cblxuICBAZWxzZSB7XG4gICAgaW1hZ2UtcmVuZGVyaW5nOiAkbW9kZTtcbiAgfVxufVxuIiwiLy8gQWRkcyBrZXlmcmFtZXMgYmxvY2tzIGZvciBzdXBwb3J0ZWQgcHJlZml4ZXMsIHJlbW92aW5nIHJlZHVuZGFudCBwcmVmaXhlcyBpbiB0aGUgYmxvY2sncyBjb250ZW50XG5AbWl4aW4ga2V5ZnJhbWVzKCRuYW1lKSB7XG4gICRvcmlnaW5hbC1wcmVmaXgtZm9yLXdlYmtpdDogICAgJHByZWZpeC1mb3Itd2Via2l0O1xuICAkb3JpZ2luYWwtcHJlZml4LWZvci1tb3ppbGxhOiAgICRwcmVmaXgtZm9yLW1vemlsbGE7XG4gICRvcmlnaW5hbC1wcmVmaXgtZm9yLW1pY3Jvc29mdDogJHByZWZpeC1mb3ItbWljcm9zb2Z0O1xuICAkb3JpZ2luYWwtcHJlZml4LWZvci1vcGVyYTogICAgICRwcmVmaXgtZm9yLW9wZXJhO1xuICAkb3JpZ2luYWwtcHJlZml4LWZvci1zcGVjOiAgICAgICRwcmVmaXgtZm9yLXNwZWM7XG5cbiAgQGlmICRvcmlnaW5hbC1wcmVmaXgtZm9yLXdlYmtpdCB7XG4gICAgQGluY2x1ZGUgZGlzYWJsZS1wcmVmaXgtZm9yLWFsbCgpO1xuICAgICRwcmVmaXgtZm9yLXdlYmtpdDogdHJ1ZSAhZ2xvYmFsO1xuICAgIEAtd2Via2l0LWtleWZyYW1lcyAjeyRuYW1lfSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cblxuICBAaWYgJG9yaWdpbmFsLXByZWZpeC1mb3ItbW96aWxsYSB7XG4gICAgQGluY2x1ZGUgZGlzYWJsZS1wcmVmaXgtZm9yLWFsbCgpO1xuICAgICRwcmVmaXgtZm9yLW1vemlsbGE6IHRydWUgIWdsb2JhbDtcbiAgICBALW1vei1rZXlmcmFtZXMgI3skbmFtZX0ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG5cbiAgJHByZWZpeC1mb3Itd2Via2l0OiAgICAkb3JpZ2luYWwtcHJlZml4LWZvci13ZWJraXQgICAgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3ItbW96aWxsYTogICAkb3JpZ2luYWwtcHJlZml4LWZvci1tb3ppbGxhICAgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3ItbWljcm9zb2Z0OiAkb3JpZ2luYWwtcHJlZml4LWZvci1taWNyb3NvZnQgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3Itb3BlcmE6ICAgICAkb3JpZ2luYWwtcHJlZml4LWZvci1vcGVyYSAgICAgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3Itc3BlYzogICAgICAkb3JpZ2luYWwtcHJlZml4LWZvci1zcGVjICAgICAgIWdsb2JhbDtcblxuICBAaWYgJG9yaWdpbmFsLXByZWZpeC1mb3Itc3BlYyB7XG4gICAgQGtleWZyYW1lcyAjeyRuYW1lfSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cbiIsIkBtaXhpbiBsaW5lYXItZ3JhZGllbnQoJHBvcywgJGcxLCAkZzI6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRnMzogbnVsbCwgJGc0OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZzU6IG51bGwsICRnNjogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGc3OiBudWxsLCAkZzg6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRnOTogbnVsbCwgJGcxMDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGZhbGxiYWNrOiBudWxsKSB7XG4gIC8vIERldGVjdCB3aGF0IHR5cGUgb2YgdmFsdWUgZXhpc3RzIGluICRwb3NcbiAgJHBvcy10eXBlOiB0eXBlLW9mKG50aCgkcG9zLCAxKSk7XG4gICRwb3Mtc3BlYzogbnVsbDtcbiAgJHBvcy1kZWdyZWU6IG51bGw7XG5cbiAgLy8gSWYgJHBvcyBpcyBtaXNzaW5nIGZyb20gbWl4aW4sIHJlYXNzaWduIHZhcnMgYW5kIGFkZCBkZWZhdWx0IHBvc2l0aW9uXG4gIEBpZiAoJHBvcy10eXBlID09IGNvbG9yKSBvciAobnRoKCRwb3MsIDEpID09IFwidHJhbnNwYXJlbnRcIikgIHtcbiAgICAkZzEwOiAkZzk7ICRnOTogJGc4OyAkZzg6ICRnNzsgJGc3OiAkZzY7ICRnNjogJGc1O1xuICAgICRnNTogJGc0OyAkZzQ6ICRnMzsgJGczOiAkZzI7ICRnMjogJGcxOyAkZzE6ICRwb3M7XG4gICAgJHBvczogbnVsbDtcbiAgfVxuXG4gIEBpZiAkcG9zIHtcbiAgICAkcG9zaXRpb25zOiBfbGluZWFyLXBvc2l0aW9ucy1wYXJzZXIoJHBvcyk7XG4gICAgJHBvcy1kZWdyZWU6IG50aCgkcG9zaXRpb25zLCAxKTtcbiAgICAkcG9zLXNwZWM6ICAgbnRoKCRwb3NpdGlvbnMsIDIpO1xuICB9XG5cbiAgJGZ1bGw6ICRnMSwgJGcyLCAkZzMsICRnNCwgJGc1LCAkZzYsICRnNywgJGc4LCAkZzksICRnMTA7XG5cbiAgLy8gU2V0ICRnMSBhcyB0aGUgZGVmYXVsdCBmYWxsYmFjayBjb2xvclxuICAkZmFsbGJhY2stY29sb3I6IG50aCgkZzEsIDEpO1xuXG4gIC8vIElmICRmYWxsYmFjayBpcyBhIGNvbG9yIHVzZSB0aGF0IGNvbG9yIGFzIHRoZSBmYWxsYmFjayBjb2xvclxuICBAaWYgKHR5cGUtb2YoJGZhbGxiYWNrKSA9PSBjb2xvcikgb3IgKCRmYWxsYmFjayA9PSBcInRyYW5zcGFyZW50XCIpIHtcbiAgICAkZmFsbGJhY2stY29sb3I6ICRmYWxsYmFjaztcbiAgfVxuXG4gIGJhY2tncm91bmQtY29sb3I6ICRmYWxsYmFjay1jb2xvcjtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoJHBvcy1kZWdyZWUgJGZ1bGwpOyAvLyBTYWZhcmkgNS4xKywgQ2hyb21lXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVucXVvdGUoXCJsaW5lYXItZ3JhZGllbnQoI3skcG9zLXNwZWN9I3skZnVsbH0pXCIpO1xufVxuIiwiQG1peGluIHBlcnNwZWN0aXZlKCRkZXB0aDogbm9uZSkge1xuICAvLyBub25lIHwgPGxlbmd0aD5cbiAgQGluY2x1ZGUgcHJlZml4ZXIocGVyc3BlY3RpdmUsICRkZXB0aCwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIHBlcnNwZWN0aXZlLW9yaWdpbigkdmFsdWU6IDUwJSA1MCUpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIocGVyc3BlY3RpdmUtb3JpZ2luLCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG4iLCJAbWl4aW4gcGxhY2Vob2xkZXIge1xuICAkcGxhY2Vob2xkZXJzOiBcIjotd2Via2l0LWlucHV0XCIgXCI6LW1velwiIFwiLW1velwiIFwiLW1zLWlucHV0XCI7XG4gIEBlYWNoICRwbGFjZWhvbGRlciBpbiAkcGxhY2Vob2xkZXJzIHtcbiAgICAmOiN7JHBsYWNlaG9sZGVyfS1wbGFjZWhvbGRlciB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIFJlcXVpcmVzIFNhc3MgMy4xK1xuQG1peGluIHJhZGlhbC1ncmFkaWVudCgkZzEsICRnMixcbiAgICAgICAgICAgICAgICAgICAgICAgJGczOiBudWxsLCAkZzQ6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRnNTogbnVsbCwgJGc2OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZzc6IG51bGwsICRnODogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGc5OiBudWxsLCAkZzEwOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkcG9zOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkc2hhcGUtc2l6ZTogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGZhbGxiYWNrOiBudWxsKSB7XG5cbiAgJGRhdGE6IF9yYWRpYWwtYXJnLXBhcnNlcigkZzEsICRnMiwgJHBvcywgJHNoYXBlLXNpemUpO1xuICAkZzE6ICBudGgoJGRhdGEsIDEpO1xuICAkZzI6ICBudGgoJGRhdGEsIDIpO1xuICAkcG9zOiBudGgoJGRhdGEsIDMpO1xuICAkc2hhcGUtc2l6ZTogbnRoKCRkYXRhLCA0KTtcblxuICAkZnVsbDogJGcxLCAkZzIsICRnMywgJGc0LCAkZzUsICRnNiwgJGc3LCAkZzgsICRnOSwgJGcxMDtcblxuICAvLyBTdHJpcCBkZXByZWNhdGVkIGNvdmVyL2NvbnRhaW4gZm9yIHNwZWNcbiAgJHNoYXBlLXNpemUtc3BlYzogX3NoYXBlLXNpemUtc3RyaXBwZXIoJHNoYXBlLXNpemUpO1xuXG4gIC8vIFNldCAkZzEgYXMgdGhlIGRlZmF1bHQgZmFsbGJhY2sgY29sb3JcbiAgJGZpcnN0LWNvbG9yOiBudGgoJGZ1bGwsIDEpO1xuICAkZmFsbGJhY2stY29sb3I6IG50aCgkZmlyc3QtY29sb3IsIDEpO1xuXG4gIEBpZiAodHlwZS1vZigkZmFsbGJhY2spID09IGNvbG9yKSBvciAoJGZhbGxiYWNrID09IFwidHJhbnNwYXJlbnRcIikge1xuICAgICRmYWxsYmFjay1jb2xvcjogJGZhbGxiYWNrO1xuICB9XG5cbiAgLy8gQWRkIENvbW1hcyBhbmQgc3BhY2VzXG4gICRzaGFwZS1zaXplOiBpZigkc2hhcGUtc2l6ZSwgXCIjeyRzaGFwZS1zaXplfSwgXCIsIG51bGwpO1xuICAkcG9zOiAgICAgICAgaWYoJHBvcywgXCIjeyRwb3N9LCBcIiwgbnVsbCk7XG4gICRwb3Mtc3BlYzogICBpZigkcG9zLCBcImF0ICN7JHBvc31cIiwgbnVsbCk7XG4gICRzaGFwZS1zaXplLXNwZWM6IGlmKCgkc2hhcGUtc2l6ZS1zcGVjICE9IFwiIFwiKSBhbmQgKCRwb3MgPT0gbnVsbCksIFwiI3skc2hhcGUtc2l6ZS1zcGVjfSwgXCIsIFwiI3skc2hhcGUtc2l6ZS1zcGVjfSBcIik7XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogICRmYWxsYmFjay1jb2xvcjtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1yYWRpYWwtZ3JhZGllbnQoI3skcG9zfSN7JHNoYXBlLXNpemV9I3skZnVsbH0pO1xuICBiYWNrZ3JvdW5kLWltYWdlOiByYWRpYWwtZ3JhZGllbnQoI3skc2hhcGUtc2l6ZS1zcGVjfSN7JHBvcy1zcGVjfSN7JGZ1bGx9KTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBPdXRwdXRzIHRoZSBzcGVjIGFuZCBwcmVmaXhlZCB2ZXJzaW9ucyBvZiB0aGUgYDo6c2VsZWN0aW9uYCBwc2V1ZG8tZWxlbWVudC5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge0Jvb2x9ICRjdXJyZW50LXNlbGVjdG9yIFtmYWxzZV1cclxuLy8vICAgSWYgc2V0IHRvIGB0cnVlYCwgaXQgdGFrZXMgdGhlIGN1cnJlbnQgZWxlbWVudCBpbnRvIGNvbnNpZGVyYXRpb24uXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBAaW5jbHVkZSBzZWxlY3Rpb24odHJ1ZSkge1xyXG4vLy8gICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYmI1MjtcclxuLy8vICAgICB9XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIC5lbGVtZW50OjotbW96LXNlbGVjdGlvbiB7XHJcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYmI1MjtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vICAgLmVsZW1lbnQ6OnNlbGVjdGlvbiB7XHJcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYmI1MjtcclxuLy8vICAgfVxyXG5cclxuQG1peGluIHNlbGVjdGlvbigkY3VycmVudC1zZWxlY3RvcjogZmFsc2UpIHtcclxuICBAaWYgJGN1cnJlbnQtc2VsZWN0b3Ige1xyXG4gICAgJjo6LW1vei1zZWxlY3Rpb24ge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuXHJcbiAgICAmOjpzZWxlY3Rpb24ge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9IEBlbHNlIHtcclxuICAgIDo6LW1vei1zZWxlY3Rpb24ge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuXHJcbiAgICA6OnNlbGVjdGlvbiB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCJAbWl4aW4gdGV4dC1kZWNvcmF0aW9uKCR2YWx1ZSkge1xuLy8gPHRleHQtZGVjb3JhdGlvbi1saW5lPiB8fCA8dGV4dC1kZWNvcmF0aW9uLXN0eWxlPiB8fCA8dGV4dC1kZWNvcmF0aW9uLWNvbG9yPlxuICBAaW5jbHVkZSBwcmVmaXhlcih0ZXh0LWRlY29yYXRpb24sICR2YWx1ZSwgbW96KTtcbn1cblxuQG1peGluIHRleHQtZGVjb3JhdGlvbi1saW5lKCRsaW5lOiBub25lKSB7XG4vLyBub25lIHx8IHVuZGVybGluZSB8fCBvdmVybGluZSB8fCBsaW5lLXRocm91Z2hcbiAgQGluY2x1ZGUgcHJlZml4ZXIodGV4dC1kZWNvcmF0aW9uLWxpbmUsICRsaW5lLCBtb3opO1xufVxuXG5AbWl4aW4gdGV4dC1kZWNvcmF0aW9uLXN0eWxlKCRzdHlsZTogc29saWQpIHtcbi8vIHNvbGlkIHx8IGRvdWJsZSB8fCBkb3R0ZWQgfHwgZGFzaGVkIHx8IHdhdnlcbiAgQGluY2x1ZGUgcHJlZml4ZXIodGV4dC1kZWNvcmF0aW9uLXN0eWxlLCAkc3R5bGUsIG1veiB3ZWJraXQpO1xufVxuXG5AbWl4aW4gdGV4dC1kZWNvcmF0aW9uLWNvbG9yKCRjb2xvcjogY3VycmVudENvbG9yKSB7XG4vLyBjdXJyZW50Q29sb3IgfHwgPGNvbG9yPlxuICBAaW5jbHVkZSBwcmVmaXhlcih0ZXh0LWRlY29yYXRpb24tY29sb3IsICRjb2xvciwgbW96KTtcbn1cbiIsIkBtaXhpbiB0cmFuc2Zvcm0oJHByb3BlcnR5OiBub25lKSB7XG4gIC8vIG5vbmUgfCA8dHJhbnNmb3JtLWZ1bmN0aW9uPlxuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2Zvcm0sICRwcm9wZXJ0eSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xufVxuXG5AbWl4aW4gdHJhbnNmb3JtLW9yaWdpbigkYXhlczogNTAlKSB7XG4gIC8vIHgtYXhpcyAtIGxlZnQgfCBjZW50ZXIgfCByaWdodCAgfCBsZW5ndGggfCAlXG4gIC8vIHktYXhpcyAtIHRvcCAgfCBjZW50ZXIgfCBib3R0b20gfCBsZW5ndGggfCAlXG4gIC8vIHotYXhpcyAtICAgICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGhcbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNmb3JtLW9yaWdpbiwgJGF4ZXMsIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcbn1cblxuQG1peGluIHRyYW5zZm9ybS1zdHlsZSgkc3R5bGU6IGZsYXQpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNmb3JtLXN0eWxlLCAkc3R5bGUsIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcbn1cbiIsIi8vIFNob3J0aGFuZCBtaXhpbi4gU3VwcG9ydHMgbXVsdGlwbGUgcGFyZW50aGVzZXMtZGVsaW1pbmF0ZWQgdmFsdWVzIGZvciBlYWNoIHZhcmlhYmxlLlxuLy8gRXhhbXBsZTogQGluY2x1ZGUgdHJhbnNpdGlvbiAoYWxsIDJzIGVhc2UtaW4tb3V0KTtcbi8vICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24gKG9wYWNpdHkgMXMgZWFzZS1pbiAycywgd2lkdGggMnMgZWFzZS1vdXQpO1xuLy8gICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1wcm9wZXJ0eSAodHJhbnNmb3JtLCBvcGFjaXR5KTtcblxuQG1peGluIHRyYW5zaXRpb24oJHByb3BlcnRpZXMuLi4pIHtcbiAgLy8gRml4IGZvciB2ZW5kb3ItcHJlZml4IHRyYW5zZm9ybSBwcm9wZXJ0eVxuICAkbmVlZHMtcHJlZml4ZXM6IGZhbHNlO1xuICAkd2Via2l0OiAoKTtcbiAgJG1vejogKCk7XG4gICRzcGVjOiAoKTtcblxuICAvLyBDcmVhdGUgbGlzdHMgZm9yIHZlbmRvci1wcmVmaXhlZCB0cmFuc2Zvcm1cbiAgQGVhY2ggJGxpc3QgaW4gJHByb3BlcnRpZXMge1xuICAgIEBpZiBudGgoJGxpc3QsIDEpID09IFwidHJhbnNmb3JtXCIge1xuICAgICAgJG5lZWRzLXByZWZpeGVzOiB0cnVlO1xuICAgICAgJGxpc3QxOiAtd2Via2l0LXRyYW5zZm9ybTtcbiAgICAgICRsaXN0MjogLW1vei10cmFuc2Zvcm07XG4gICAgICAkbGlzdDM6ICgpO1xuXG4gICAgICBAZWFjaCAkdmFyIGluICRsaXN0IHtcbiAgICAgICAgJGxpc3QzOiBqb2luKCRsaXN0MywgJHZhcik7XG5cbiAgICAgICAgQGlmICR2YXIgIT0gXCJ0cmFuc2Zvcm1cIiB7XG4gICAgICAgICAgJGxpc3QxOiBqb2luKCRsaXN0MSwgJHZhcik7XG4gICAgICAgICAgJGxpc3QyOiBqb2luKCRsaXN0MiwgJHZhcik7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJHdlYmtpdDogYXBwZW5kKCR3ZWJraXQsICRsaXN0MSk7XG4gICAgICAkbW96OiAgICBhcHBlbmQoJG1veiwgICAgJGxpc3QyKTtcbiAgICAgICRzcGVjOiAgIGFwcGVuZCgkc3BlYywgICAkbGlzdDMpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJHdlYmtpdDogYXBwZW5kKCR3ZWJraXQsICRsaXN0LCBjb21tYSk7XG4gICAgICAkbW96OiAgICBhcHBlbmQoJG1veiwgICAgJGxpc3QsIGNvbW1hKTtcbiAgICAgICRzcGVjOiAgIGFwcGVuZCgkc3BlYywgICAkbGlzdCwgY29tbWEpO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkbmVlZHMtcHJlZml4ZXMge1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogJHdlYmtpdDtcbiAgICAgICAtbW96LXRyYW5zaXRpb246ICRtb3o7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiAkc3BlYztcbiAgfSBAZWxzZSB7XG4gICAgQGlmIGxlbmd0aCgkcHJvcGVydGllcykgPj0gMSB7XG4gICAgICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2l0aW9uLCAkcHJvcGVydGllcywgd2Via2l0IG1veiBzcGVjKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICRwcm9wZXJ0aWVzOiBhbGwgMC4xNXMgZWFzZS1vdXQgMHM7XG4gICAgICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2l0aW9uLCAkcHJvcGVydGllcywgd2Via2l0IG1veiBzcGVjKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIHRyYW5zaXRpb24tcHJvcGVydHkoJHByb3BlcnRpZXMuLi4pIHtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVzKCRwcm9wZXJ0aWVzLCBcIndlYmtpdFwiKTtcbiAgICAgLW1vei10cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVzKCRwcm9wZXJ0aWVzLCBcIm1velwiKTtcbiAgICAgICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVzKCRwcm9wZXJ0aWVzLCBmYWxzZSk7XG59XG5cbkBtaXhpbiB0cmFuc2l0aW9uLWR1cmF0aW9uKCR0aW1lcy4uLikge1xuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2l0aW9uLWR1cmF0aW9uLCAkdGltZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbigkbW90aW9ucy4uLikge1xuICAvLyBlYXNlIHwgbGluZWFyIHwgZWFzZS1pbiB8IGVhc2Utb3V0IHwgZWFzZS1pbi1vdXQgfCBjdWJpYy1iZXppZXIoKVxuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbiwgJG1vdGlvbnMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiB0cmFuc2l0aW9uLWRlbGF5KCR0aW1lcy4uLikge1xuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2l0aW9uLWRlbGF5LCAkdGltZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG4iLCJAbWl4aW4gdXNlci1zZWxlY3QoJHZhbHVlOiBub25lKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKHVzZXItc2VsZWN0LCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgc3BlYyk7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm92aWRlcyBhIHF1aWNrIG1ldGhvZCBmb3IgdGFyZ2V0aW5nIGBib3JkZXItY29sb3JgIG9uIHNwZWNpZmljIHNpZGVzIG9mIGEgYm94LiBVc2UgYSBgbnVsbGAgdmFsdWUgdG8g4oCcc2tpcOKAnSBhIHNpZGUuXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICR2YWxzXG4vLy8gICBMaXN0IG9mIGFyZ3VtZW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIGJvcmRlci1jb2xvcigjYTYwYjU1ICM3NmNkOWMgbnVsbCAjZThhZTFhKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYm9yZGVyLWxlZnQtY29sb3I6ICNlOGFlMWE7XG4vLy8gICAgIGJvcmRlci1yaWdodC1jb2xvcjogIzc2Y2Q5Yztcbi8vLyAgICAgYm9yZGVyLXRvcC1jb2xvcjogI2E2MGI1NTtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIHttaXhpbn0gZGlyZWN0aW9uYWwtcHJvcGVydHlcbi8vL1xuLy8vIEBvdXRwdXQgYGJvcmRlci1jb2xvcmBcblxuQG1peGluIGJvcmRlci1jb2xvcigkdmFscy4uLikge1xuICBAaW5jbHVkZSBkaXJlY3Rpb25hbC1wcm9wZXJ0eShib3JkZXIsIGNvbG9yLCAkdmFscy4uLik7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm92aWRlcyBhIHF1aWNrIG1ldGhvZCBmb3IgdGFyZ2V0aW5nIGBib3JkZXItcmFkaXVzYCBvbiBib3RoIGNvcm5lcnMgb24gdGhlIHNpZGUgb2YgYSBib3guXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHJhZGlpXG4vLy8gICBMaXN0IG9mIGFyZ3VtZW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudC1vbmUge1xuLy8vICAgICBAaW5jbHVkZSBib3JkZXItdG9wLXJhZGl1cyg1cHgpO1xuLy8vICAgfVxuLy8vXG4vLy8gICAuZWxlbWVudC10d28ge1xuLy8vICAgICBAaW5jbHVkZSBib3JkZXItbGVmdC1yYWRpdXMoM3B4KTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50LW9uZSB7XG4vLy8gICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDVweDtcbi8vLyAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDVweDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLmVsZW1lbnQtdHdvIHtcbi8vLyAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogM3B4O1xuLy8vICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAzcHg7XG4vLy8gICB9XG4vLy9cbi8vLyBAb3V0cHV0IGBib3JkZXItcmFkaXVzYFxuXG5AbWl4aW4gYm9yZGVyLXRvcC1yYWRpdXMoJHJhZGlpKSB7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6ICRyYWRpaTtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICRyYWRpaTtcbn1cblxuQG1peGluIGJvcmRlci1yaWdodC1yYWRpdXMoJHJhZGlpKSB7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAkcmFkaWk7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkcmFkaWk7XG59XG5cbkBtaXhpbiBib3JkZXItYm90dG9tLXJhZGl1cygkcmFkaWkpIHtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogJHJhZGlpO1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogJHJhZGlpO1xufVxuXG5AbWl4aW4gYm9yZGVyLWxlZnQtcmFkaXVzKCRyYWRpaSkge1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAkcmFkaWk7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6ICRyYWRpaTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciB0YXJnZXRpbmcgYGJvcmRlci1zdHlsZWAgb24gc3BlY2lmaWMgc2lkZXMgb2YgYSBib3guIFVzZSBhIGBudWxsYCB2YWx1ZSB0byDigJxza2lw4oCdIGEgc2lkZS5cbi8vL1xuLy8vIEBwYXJhbSB7QXJnbGlzdH0gJHZhbHNcbi8vLyAgIExpc3Qgb2YgYXJndW1lbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgYm9yZGVyLXN0eWxlKGRhc2hlZCBudWxsIHNvbGlkKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7XG4vLy8gICAgIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIHttaXhpbn0gZGlyZWN0aW9uYWwtcHJvcGVydHlcbi8vL1xuLy8vIEBvdXRwdXQgYGJvcmRlci1zdHlsZWBcblxuQG1peGluIGJvcmRlci1zdHlsZSgkdmFscy4uLikge1xuICBAaW5jbHVkZSBkaXJlY3Rpb25hbC1wcm9wZXJ0eShib3JkZXIsIHN0eWxlLCAkdmFscy4uLik7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm92aWRlcyBhIHF1aWNrIG1ldGhvZCBmb3IgdGFyZ2V0aW5nIGBib3JkZXItd2lkdGhgIG9uIHNwZWNpZmljIHNpZGVzIG9mIGEgYm94LiBVc2UgYSBgbnVsbGAgdmFsdWUgdG8g4oCcc2tpcOKAnSBhIHNpZGUuXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICR2YWxzXG4vLy8gICBMaXN0IG9mIGFyZ3VtZW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIGJvcmRlci13aWR0aCgxZW0gbnVsbCAyMHB4KTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMjBweDtcbi8vLyAgICAgYm9yZGVyLXRvcC13aWR0aDogMWVtO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge21peGlufSBkaXJlY3Rpb25hbC1wcm9wZXJ0eVxuLy8vXG4vLy8gQG91dHB1dCBgYm9yZGVyLXdpZHRoYFxuXG5AbWl4aW4gYm9yZGVyLXdpZHRoKCR2YWxzLi4uKSB7XG4gIEBpbmNsdWRlIGRpcmVjdGlvbmFsLXByb3BlcnR5KGJvcmRlciwgd2lkdGgsICR2YWxzLi4uKTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIEdlbmVyYXRlcyB2YXJpYWJsZXMgZm9yIGFsbCBidXR0b25zLiBQbGVhc2Ugbm90ZSB0aGF0IHlvdSBtdXN0IHVzZSBpbnRlcnBvbGF0aW9uIG9uIHRoZSB2YXJpYWJsZTogYCN7JGFsbC1idXR0b25zfWAuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgICN7JGFsbC1idXR0b25zfSB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICNmMDA7XG4vLy8gICB9XG4vLy9cbi8vLyAgICN7JGFsbC1idXR0b25zLWZvY3VzfSxcbi8vLyAgICN7JGFsbC1idXR0b25zLWhvdmVyfSB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICMwZjA7XG4vLy8gICB9XG4vLy9cbi8vLyAgICN7JGFsbC1idXR0b25zLWFjdGl2ZX0ge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBmO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgYnV0dG9uLFxuLy8vICAgaW5wdXRbdHlwZT1cImJ1dHRvblwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJyZXNldFwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjAwO1xuLy8vICAgfVxuLy8vXG4vLy8gICBidXR0b246Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cInJlc2V0XCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXTpmb2N1cyxcbi8vLyAgIGJ1dHRvbjpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJidXR0b25cIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwicmVzZXRcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwic3VibWl0XCJdOmhvdmVyIHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogIzBmMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgYnV0dG9uOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJidXR0b25cIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cInJlc2V0XCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJzdWJtaXRcIl06YWN0aXZlIHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwZjtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIGFzc2lnbi1pbnB1dHNcbi8vL1xuLy8vIEB0eXBlIExpc3Rcbi8vL1xuLy8vIEB0b2RvIFJlbW92ZSBkb3VibGUgYXNzaWduZWQgdmFyaWFibGVzIChMaW5lcyA1OeKAkzYyKSBpbiB2NS4wLjBcblxuJGJ1dHRvbnMtbGlzdDogJ2J1dHRvbicsXG4gICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cImJ1dHRvblwiXScsXG4gICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInJlc2V0XCJdJyxcbiAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwic3VibWl0XCJdJztcblxuJGFsbC1idXR0b25zOiAgICAgICAgYXNzaWduLWlucHV0cygkYnV0dG9ucy1saXN0KTtcbiRhbGwtYnV0dG9ucy1hY3RpdmU6IGFzc2lnbi1pbnB1dHMoJGJ1dHRvbnMtbGlzdCwgYWN0aXZlKTtcbiRhbGwtYnV0dG9ucy1mb2N1czogIGFzc2lnbi1pbnB1dHMoJGJ1dHRvbnMtbGlzdCwgZm9jdXMpO1xuJGFsbC1idXR0b25zLWhvdmVyOiAgYXNzaWduLWlucHV0cygkYnV0dG9ucy1saXN0LCBob3Zlcik7XG5cbiRhbGwtYnV0dG9uLWlucHV0czogICAgICAgICRhbGwtYnV0dG9ucztcbiRhbGwtYnV0dG9uLWlucHV0cy1hY3RpdmU6ICRhbGwtYnV0dG9ucy1hY3RpdmU7XG4kYWxsLWJ1dHRvbi1pbnB1dHMtZm9jdXM6ICAkYWxsLWJ1dHRvbnMtZm9jdXM7XG4kYWxsLWJ1dHRvbi1pbnB1dHMtaG92ZXI6ICAkYWxsLWJ1dHRvbnMtaG92ZXI7XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm92aWRlcyBhbiBlYXN5IHdheSB0byBpbmNsdWRlIGEgY2xlYXJmaXggZm9yIGNvbnRhaW5pbmcgZmxvYXRzLlxuLy8vXG4vLy8gQGxpbmsgaHR0cDovL2Nzc21vam8uY29tL2xhdGVzdF9uZXdfY2xlYXJmaXhfc29fZmFyL1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQ6OmFmdGVyIHtcbi8vLyAgICAgY2xlYXI6IGJvdGg7XG4vLy8gICAgIGNvbnRlbnQ6IFwiXCI7XG4vLy8gICAgIGRpc3BsYXk6IHRhYmxlO1xuLy8vICAgfVxuXG5AbWl4aW4gY2xlYXJmaXgge1xuICAmOjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gVHJ1bmNhdGVzIHRleHQgYW5kIGFkZHMgYW4gZWxsaXBzaXMgdG8gcmVwcmVzZW50IG92ZXJmbG93LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3aWR0aCBbMTAwJV1cbi8vLyAgIE1heC13aWR0aCBmb3IgdGhlIHN0cmluZyB0byByZXNwZWN0IGJlZm9yZSBiZWluZyB0cnVuY2F0ZWRcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBlbGxpcHNpcztcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuLy8vICAgICBtYXgtd2lkdGg6IDEwMCU7XG4vLy8gICAgIG92ZXJmbG93OiBoaWRkZW47XG4vLy8gICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuLy8vICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuLy8vICAgICB3b3JkLXdyYXA6IG5vcm1hbDtcbi8vLyAgIH1cblxuQG1peGluIGVsbGlwc2lzKCR3aWR0aDogMTAwJSkge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1heC13aWR0aDogJHdpZHRoO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgd29yZC13cmFwOiBub3JtYWw7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBHZW9yZ2lhIGZvbnQgc3RhY2suXG4vLy9cbi8vLyBAdHlwZSBMaXN0XG5cbiRnZW9yZ2lhOiBcIkdlb3JnaWFcIiwgXCJDYW1icmlhXCIsIFwiVGltZXMgTmV3IFJvbWFuXCIsIFwiVGltZXNcIiwgc2VyaWY7XG5cbi8vLyBIZWx2ZXRpY2EgZm9udCBzdGFjay5cbi8vL1xuLy8vIEB0eXBlIExpc3RcblxuJGhlbHZldGljYTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBcIkhlbHZldGljYVwiLCBcIlJvYm90b1wiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG5cbi8vLyBMdWNpZGEgR3JhbmRlIGZvbnQgc3RhY2suXG4vLy9cbi8vLyBAdHlwZSBMaXN0XG5cbiRsdWNpZGEtZ3JhbmRlOiBcIkx1Y2lkYSBHcmFuZGVcIiwgXCJUYWhvbWFcIiwgXCJWZXJkYW5hXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcblxuLy8vIE1vbm9zcGFjZSBmb250IHN0YWNrLlxuLy8vXG4vLy8gQHR5cGUgTGlzdFxuXG4kbW9ub3NwYWNlOiBcIkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ub1wiLCBcIkNvbnNvbGFzXCIsIFwiQ291cmllclwiLCBtb25vc3BhY2U7XG5cbi8vLyBWZXJkYW5hIGZvbnQgc3RhY2suXG4vLy9cbi8vLyBAdHlwZSBMaXN0XG5cbiR2ZXJkYW5hOiBcIlZlcmRhbmFcIiwgXCJHZW5ldmFcIiwgc2Fucy1zZXJpZjtcbiIsIi8vLyBIaWRlcyB0aGUgdGV4dCBpbiBhbiBlbGVtZW50LCBjb21tb25seSB1c2VkIHRvIHNob3cgYW4gaW1hZ2UuIFNvbWUgZWxlbWVudHMgd2lsbCBuZWVkIGJsb2NrLWxldmVsIHN0eWxlcyBhcHBsaWVkLlxuLy8vXG4vLy8gQGxpbmsgaHR0cDovL3plbGRtYW4uY29tLzIwMTIvMDMvMDEvcmVwbGFjaW5nLXRoZS05OTk5cHgtaGFjay1uZXctaW1hZ2UtcmVwbGFjZW1lbnRcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBoaWRlLXRleHQ7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIG92ZXJmbG93OiBoaWRkZW47XG4vLy8gICAgIHRleHQtaW5kZW50OiAxMDElO1xuLy8vICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuLy8vICAgfVxuLy8vXG4vLy8gQHRvZG8gUmVtb3ZlIGhlaWdodCBhcmd1bWVudCBpbiB2NS4wLjBcblxuQG1peGluIGhpZGUtdGV4dCgkaGVpZ2h0OiBudWxsKSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtaW5kZW50OiAxMDElO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gIEBpZiAkaGVpZ2h0IHtcbiAgICBAd2FybiBcIlRoZSBgaGlkZS10ZXh0YCBtaXhpbiBoYXMgY2hhbmdlZCBhbmQgbm8gbG9uZ2VyIHJlcXVpcmVzIGEgaGVpZ2h0LiBUaGUgaGVpZ2h0IGFyZ3VtZW50IHdpbGwgbm8gbG9uZ2VyIGJlIGFjY2VwdGVkIGluIHY1LjAuMFwiO1xuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm92aWRlcyBhIHF1aWNrIG1ldGhvZCBmb3IgdGFyZ2V0aW5nIGBtYXJnaW5gIG9uIHNwZWNpZmljIHNpZGVzIG9mIGEgYm94LiBVc2UgYSBgbnVsbGAgdmFsdWUgdG8g4oCcc2tpcOKAnSBhIHNpZGUuXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICR2YWxzXG4vLy8gICBMaXN0IG9mIGFyZ3VtZW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIG1hcmdpbihudWxsIDEwcHggM2VtIDIwdmgpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBtYXJnaW4tYm90dG9tOiAzZW07XG4vLy8gICAgIG1hcmdpbi1sZWZ0OiAyMHZoO1xuLy8vICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSB7bWl4aW59IGRpcmVjdGlvbmFsLXByb3BlcnR5XG4vLy9cbi8vLyBAb3V0cHV0IGBtYXJnaW5gXG5cbkBtaXhpbiBtYXJnaW4oJHZhbHMuLi4pIHtcbiAgQGluY2x1ZGUgZGlyZWN0aW9uYWwtcHJvcGVydHkobWFyZ2luLCBmYWxzZSwgJHZhbHMuLi4pO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHRhcmdldGluZyBgcGFkZGluZ2Agb24gc3BlY2lmaWMgc2lkZXMgb2YgYSBib3guIFVzZSBhIGBudWxsYCB2YWx1ZSB0byDigJxza2lw4oCdIGEgc2lkZS5cbi8vL1xuLy8vIEBwYXJhbSB7QXJnbGlzdH0gJHZhbHNcbi8vLyAgIExpc3Qgb2YgYXJndW1lbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgcGFkZGluZygxMnZoIG51bGwgMTBweCA1JSk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuLy8vICAgICBwYWRkaW5nLWxlZnQ6IDUlO1xuLy8vICAgICBwYWRkaW5nLXRvcDogMTJ2aDtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIHttaXhpbn0gZGlyZWN0aW9uYWwtcHJvcGVydHlcbi8vL1xuLy8vIEBvdXRwdXQgYHBhZGRpbmdgXG5cbkBtaXhpbiBwYWRkaW5nKCR2YWxzLi4uKSB7XG4gIEBpbmNsdWRlIGRpcmVjdGlvbmFsLXByb3BlcnR5KHBhZGRpbmcsIGZhbHNlLCAkdmFscy4uLik7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm92aWRlcyBhIHF1aWNrIG1ldGhvZCBmb3Igc2V0dGluZyBhbiBlbGVtZW504oCZcyBwb3NpdGlvbi4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxuLy8vXG4vLy8gQHBhcmFtIHtQb3NpdGlvbn0gJHBvc2l0aW9uIFtyZWxhdGl2ZV1cbi8vLyAgIEEgQ1NTIHBvc2l0aW9uIHZhbHVlXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICRjb29yZGluYXRlcyBbbnVsbCBudWxsIG51bGwgbnVsbF1cbi8vLyAgIExpc3Qgb2YgdmFsdWVzIHRoYXQgY29ycmVzcG9uZCB0byB0aGUgNC12YWx1ZSBzeW50YXggZm9yIHRoZSBlZGdlcyBvZiBhIGJveFxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCAwIG51bGwgbnVsbCAxMGVtKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgbGVmdDogMTBlbTtcbi8vLyAgICAgcG9zaXRpb246IGFic29sdXRlO1xuLy8vICAgICB0b3A6IDA7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGlzLWxlbmd0aFxuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gdW5wYWNrXG5cbkBtaXhpbiBwb3NpdGlvbigkcG9zaXRpb246IHJlbGF0aXZlLCAkY29vcmRpbmF0ZXM6IG51bGwgbnVsbCBudWxsIG51bGwpIHtcbiAgQGlmIHR5cGUtb2YoJHBvc2l0aW9uKSA9PSBsaXN0IHtcbiAgICAkY29vcmRpbmF0ZXM6ICRwb3NpdGlvbjtcbiAgICAkcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG5cbiAgJGNvb3JkaW5hdGVzOiB1bnBhY2soJGNvb3JkaW5hdGVzKTtcblxuICAkb2Zmc2V0czogKFxuICAgIHRvcDogICAgbnRoKCRjb29yZGluYXRlcywgMSksXG4gICAgcmlnaHQ6ICBudGgoJGNvb3JkaW5hdGVzLCAyKSxcbiAgICBib3R0b206IG50aCgkY29vcmRpbmF0ZXMsIDMpLFxuICAgIGxlZnQ6ICAgbnRoKCRjb29yZGluYXRlcywgNClcbiAgKTtcblxuICBwb3NpdGlvbjogJHBvc2l0aW9uO1xuXG4gIEBlYWNoICRvZmZzZXQsICR2YWx1ZSBpbiAkb2Zmc2V0cyB7XG4gICAgQGlmIGlzLWxlbmd0aCgkdmFsdWUpIHtcbiAgICAgICN7JG9mZnNldH06ICR2YWx1ZTtcbiAgICB9XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIEEgbWl4aW4gZm9yIGdlbmVyYXRpbmcgdmVuZG9yIHByZWZpeGVzIG9uIG5vbi1zdGFuZGFyZGl6ZWQgcHJvcGVydGllcy5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkcHJvcGVydHlcbi8vLyAgIFByb3BlcnR5IHRvIHByZWZpeFxuLy8vXG4vLy8gQHBhcmFtIHsqfSAkdmFsdWVcbi8vLyAgIFZhbHVlIHRvIHVzZVxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkcHJlZml4ZXNcbi8vLyAgIFByZWZpeGVzIHRvIGRlZmluZVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIHByZWZpeGVyKGJvcmRlci1yYWRpdXMsIDEwcHgsIHdlYmtpdCBtcyBzcGVjKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAxMHB4O1xuLy8vICAgICAtbW96LWJvcmRlci1yYWRpdXM6IDEwcHg7XG4vLy8gICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSB7dmFyaWFibGV9ICRwcmVmaXgtZm9yLXdlYmtpdFxuLy8vIEByZXF1aXJlIHt2YXJpYWJsZX0gJHByZWZpeC1mb3ItbW96aWxsYVxuLy8vIEByZXF1aXJlIHt2YXJpYWJsZX0gJHByZWZpeC1mb3ItbWljcm9zb2Z0XG4vLy8gQHJlcXVpcmUge3ZhcmlhYmxlfSAkcHJlZml4LWZvci1vcGVyYVxuLy8vIEByZXF1aXJlIHt2YXJpYWJsZX0gJHByZWZpeC1mb3Itc3BlY1xuXG5AbWl4aW4gcHJlZml4ZXIoJHByb3BlcnR5LCAkdmFsdWUsICRwcmVmaXhlcykge1xuICBAZWFjaCAkcHJlZml4IGluICRwcmVmaXhlcyB7XG4gICAgQGlmICRwcmVmaXggPT0gd2Via2l0IHtcbiAgICAgIEBpZiAkcHJlZml4LWZvci13ZWJraXQge1xuICAgICAgICAtd2Via2l0LSN7JHByb3BlcnR5fTogJHZhbHVlO1xuICAgICAgfVxuICAgIH0gQGVsc2UgaWYgJHByZWZpeCA9PSBtb3oge1xuICAgICAgQGlmICRwcmVmaXgtZm9yLW1vemlsbGEge1xuICAgICAgICAtbW96LSN7JHByb3BlcnR5fTogJHZhbHVlO1xuICAgICAgfVxuICAgIH0gQGVsc2UgaWYgJHByZWZpeCA9PSBtcyB7XG4gICAgICBAaWYgJHByZWZpeC1mb3ItbWljcm9zb2Z0IHtcbiAgICAgICAgLW1zLSN7JHByb3BlcnR5fTogJHZhbHVlO1xuICAgICAgfVxuICAgIH0gQGVsc2UgaWYgJHByZWZpeCA9PSBvIHtcbiAgICAgIEBpZiAkcHJlZml4LWZvci1vcGVyYSB7XG4gICAgICAgIC1vLSN7JHByb3BlcnR5fTogJHZhbHVlO1xuICAgICAgfVxuICAgIH0gQGVsc2UgaWYgJHByZWZpeCA9PSBzcGVjIHtcbiAgICAgIEBpZiAkcHJlZml4LWZvci1zcGVjIHtcbiAgICAgICAgI3skcHJvcGVydHl9OiAkdmFsdWU7XG4gICAgICB9XG4gICAgfSBAZWxzZSAge1xuICAgICAgQHdhcm4gXCJVbnJlY29nbml6ZWQgcHJlZml4OiAjeyRwcmVmaXh9XCI7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBkaXNhYmxlLXByZWZpeC1mb3ItYWxsKCkge1xuICAkcHJlZml4LWZvci13ZWJraXQ6ICAgIGZhbHNlICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLW1vemlsbGE6ICAgZmFsc2UgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3ItbWljcm9zb2Z0OiBmYWxzZSAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1vcGVyYTogICAgIGZhbHNlICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLXNwZWM6ICAgICAgZmFsc2UgIWdsb2JhbDtcbn1cbiIsIkBtaXhpbiByZXRpbmEtaW1hZ2UoJGZpbGVuYW1lLCAkYmFja2dyb3VuZC1zaXplLCAkZXh0ZW5zaW9uOiBwbmcsICRyZXRpbmEtZmlsZW5hbWU6IG51bGwsICRyZXRpbmEtc3VmZml4OiBfMngsICRhc3NldC1waXBlbGluZTogJGFzc2V0LXBpcGVsaW5lKSB7XG4gIEBpZiAkYXNzZXQtcGlwZWxpbmUge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IGltYWdlLXVybChcIiN7JGZpbGVuYW1lfS4jeyRleHRlbnNpb259XCIpO1xuICB9IEBlbHNlIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAgICAgICB1cmwoXCIjeyRmaWxlbmFtZX0uI3skZXh0ZW5zaW9ufVwiKTtcbiAgfVxuXG4gIEBpbmNsdWRlIGhpZHBpIHtcbiAgICBAaWYgJGFzc2V0LXBpcGVsaW5lIHtcbiAgICAgIEBpZiAkcmV0aW5hLWZpbGVuYW1lIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogaW1hZ2UtdXJsKFwiI3skcmV0aW5hLWZpbGVuYW1lfS4jeyRleHRlbnNpb259XCIpO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGltYWdlLXVybChcIiN7JGZpbGVuYW1lfSN7JHJldGluYS1zdWZmaXh9LiN7JGV4dGVuc2lvbn1cIik7XG4gICAgICB9XG4gICAgfSBAZWxzZSB7XG4gICAgICBAaWYgJHJldGluYS1maWxlbmFtZSB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIiN7JHJldGluYS1maWxlbmFtZX0uI3skZXh0ZW5zaW9ufVwiKTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIjeyRmaWxlbmFtZX0jeyRyZXRpbmEtc3VmZml4fS4jeyRleHRlbnNpb259XCIpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGJhY2tncm91bmQtc2l6ZTogJGJhY2tncm91bmQtc2l6ZTtcbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gU2V0cyB0aGUgYHdpZHRoYCBhbmQgYGhlaWdodGAgb2YgdGhlIGVsZW1lbnQuXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRzaXplXG4vLy8gICBBIGxpc3Qgb2YgYXQgbW9zdCAyIHNpemUgdmFsdWVzLlxuLy8vXG4vLy8gICBJZiB0aGVyZSBpcyBvbmx5IGEgc2luZ2xlIHZhbHVlIGluIGAkc2l6ZWAgaXQgaXMgdXNlZCBmb3IgYm90aCB3aWR0aCBhbmQgaGVpZ2h0LiBBbGwgdW5pdHMgYXJlIHN1cHBvcnRlZC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmZpcnN0LWVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBzaXplKDJlbSk7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5zZWNvbmQtZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIHNpemUoYXV0byAxMGVtKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5maXJzdC1lbGVtZW50IHtcbi8vLyAgICAgd2lkdGg6IDJlbTtcbi8vLyAgICAgaGVpZ2h0OiAyZW07XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5zZWNvbmQtZWxlbWVudCB7XG4vLy8gICAgIHdpZHRoOiBhdXRvO1xuLy8vICAgICBoZWlnaHQ6IDEwZW07XG4vLy8gICB9XG4vLy9cbi8vLyBAdG9kbyBSZWZhY3RvciBpbiA1LjAuMCB0byB1c2UgYSBjb21tYS1zZXBhcmF0ZWQgYXJndW1lbnRcblxuQG1peGluIHNpemUoJHZhbHVlKSB7XG4gICR3aWR0aDogbnRoKCR2YWx1ZSwgMSk7XG4gICRoZWlnaHQ6ICR3aWR0aDtcblxuICBAaWYgbGVuZ3RoKCR2YWx1ZSkgPiAxIHtcbiAgICAkaGVpZ2h0OiBudGgoJHZhbHVlLCAyKTtcbiAgfVxuXG4gIEBpZiBpcy1zaXplKCRoZWlnaHQpIHtcbiAgICBoZWlnaHQ6ICRoZWlnaHQ7XG4gIH0gQGVsc2Uge1xuICAgIEB3YXJuIFwiYCN7JGhlaWdodH1gIGlzIG5vdCBhIHZhbGlkIGxlbmd0aCBmb3IgdGhlIGAkaGVpZ2h0YCBwYXJhbWV0ZXIgaW4gdGhlIGBzaXplYCBtaXhpbi5cIjtcbiAgfVxuXG4gIEBpZiBpcy1zaXplKCR3aWR0aCkge1xuICAgIHdpZHRoOiAkd2lkdGg7XG4gIH0gQGVsc2Uge1xuICAgIEB3YXJuIFwiYCN7JHdpZHRofWAgaXMgbm90IGEgdmFsaWQgbGVuZ3RoIGZvciB0aGUgYCR3aWR0aGAgcGFyYW1ldGVyIGluIHRoZSBgc2l6ZWAgbWl4aW4uXCI7XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIEdlbmVyYXRlcyB2YXJpYWJsZXMgZm9yIGFsbCB0ZXh0LWJhc2VkIGlucHV0cy4gUGxlYXNlIG5vdGUgdGhhdCB5b3UgbXVzdCB1c2UgaW50ZXJwb2xhdGlvbiBvbiB0aGUgdmFyaWFibGU6IGAjeyRhbGwtdGV4dC1pbnB1dHN9YC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgI3skYWxsLXRleHQtaW5wdXRzfSB7XG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICNmMDA7XG4vLy8gICB9XG4vLy9cbi8vLyAgICN7JGFsbC10ZXh0LWlucHV0cy1mb2N1c30sXG4vLy8gICAjeyRhbGwtdGV4dC1pbnB1dHMtaG92ZXJ9IHtcbi8vLyAgICAgYm9yZGVyOiAxcHggc29saWQgIzBmMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgI3skYWxsLXRleHQtaW5wdXRzLWFjdGl2ZX0ge1xuLy8vICAgICBib3JkZXI6IDFweCBzb2xpZCAjMDBmO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgaW5wdXRbdHlwZT1cImNvbG9yXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGVcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwiZW1haWxcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwibW9udGhcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cInNlYXJjaFwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZWxcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwidGV4dFwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ0aW1lXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cInVybFwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ3ZWVrXCJdLFxuLy8vICAgdGV4dGFyZWEge1xuLy8vICAgICBib3JkZXI6IDFweCBzb2xpZCAjZjAwO1xuLy8vICAgfVxuLy8vXG4vLy8gICBpbnB1dFt0eXBlPVwiY29sb3JcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZVwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZVwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJlbWFpbFwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJtb250aFwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJudW1iZXJcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwic2VhcmNoXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cInRlbFwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZXh0XCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cInRpbWVcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwidXJsXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cIndlZWtcIl06Zm9jdXMsXG4vLy8gICB0ZXh0YXJlYTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJjb2xvclwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRlXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cImVtYWlsXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cIm1vbnRoXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cIm51bWJlclwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJzZWFyY2hcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwidGVsXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cInRleHRcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwidGltZVwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJ1cmxcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwid2Vla1wiXTpob3Zlcixcbi8vLyAgIHRleHRhcmVhOmhvdmVyIHtcbi8vLyAgICAgYm9yZGVyOiAxcHggc29saWQgIzBmMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgaW5wdXRbdHlwZT1cImNvbG9yXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRlXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZVwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cImVtYWlsXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJtb250aFwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwic2VhcmNoXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZWxcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cInRleHRcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cInRpbWVcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cInVybFwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwid2Vla1wiXTphY3RpdmUsXG4vLy8gICB0ZXh0YXJlYTphY3RpdmUge1xuLy8vICAgICBib3JkZXI6IDFweCBzb2xpZCAjMDBmO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUgYXNzaWduLWlucHV0c1xuLy8vXG4vLy8gQHR5cGUgTGlzdFxuXG4kdGV4dC1pbnB1dHMtbGlzdDogJ2lucHV0W3R5cGU9XCJjb2xvclwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJkYXRlXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cImVtYWlsXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cIm1vbnRoXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cIm51bWJlclwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJwYXNzd29yZFwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJzZWFyY2hcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwidGVsXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInRleHRcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwidGltZVwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJ1cmxcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwid2Vla1wiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0Om5vdChbdHlwZV0pJyxcbiAgICAgICAgICAgICAgICAgICAndGV4dGFyZWEnO1xuXG4kYWxsLXRleHQtaW5wdXRzOiAgICAgICAgYXNzaWduLWlucHV0cygkdGV4dC1pbnB1dHMtbGlzdCk7XG4kYWxsLXRleHQtaW5wdXRzLWFjdGl2ZTogYXNzaWduLWlucHV0cygkdGV4dC1pbnB1dHMtbGlzdCwgYWN0aXZlKTtcbiRhbGwtdGV4dC1pbnB1dHMtZm9jdXM6ICBhc3NpZ24taW5wdXRzKCR0ZXh0LWlucHV0cy1saXN0LCBmb2N1cyk7XG4kYWxsLXRleHQtaW5wdXRzLWhvdmVyOiAgYXNzaWduLWlucHV0cygkdGV4dC1pbnB1dHMtbGlzdCwgaG92ZXIpO1xuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQ1NTIGN1YmljLWJlemllciB0aW1pbmcgZnVuY3Rpb25zLiBUaW1pbmcgZnVuY3Rpb25zIGNvdXJ0ZXN5IG9mIGpxdWVyeS5lYXNpZSAoZ2l0aHViLmNvbS9qYXVraWEvZWFzaWUpXG4vLy9cbi8vLyBUaW1pbmcgZnVuY3Rpb25zIGFyZSB0aGUgc2FtZSBhcyBkZW1vZWQgaGVyZTogaHR0cDovL2pxdWVyeXVpLmNvbS9yZXNvdXJjZXMvZGVtb3MvZWZmZWN0L2Vhc2luZy5odG1sXG4vLy9cbi8vLyBAdHlwZSBjdWJpYy1iZXppZXJcblxuJGVhc2UtaW4tcXVhZDogICAgICBjdWJpYy1iZXppZXIoMC41NTAsICAwLjA4NSwgMC42ODAsIDAuNTMwKTtcbiRlYXNlLWluLWN1YmljOiAgICAgY3ViaWMtYmV6aWVyKDAuNTUwLCAgMC4wNTUsIDAuNjc1LCAwLjE5MCk7XG4kZWFzZS1pbi1xdWFydDogICAgIGN1YmljLWJlemllcigwLjg5NSwgIDAuMDMwLCAwLjY4NSwgMC4yMjApO1xuJGVhc2UtaW4tcXVpbnQ6ICAgICBjdWJpYy1iZXppZXIoMC43NTUsICAwLjA1MCwgMC44NTUsIDAuMDYwKTtcbiRlYXNlLWluLXNpbmU6ICAgICAgY3ViaWMtYmV6aWVyKDAuNDcwLCAgMC4wMDAsIDAuNzQ1LCAwLjcxNSk7XG4kZWFzZS1pbi1leHBvOiAgICAgIGN1YmljLWJlemllcigwLjk1MCwgIDAuMDUwLCAwLjc5NSwgMC4wMzUpO1xuJGVhc2UtaW4tY2lyYzogICAgICBjdWJpYy1iZXppZXIoMC42MDAsICAwLjA0MCwgMC45ODAsIDAuMzM1KTtcbiRlYXNlLWluLWJhY2s6ICAgICAgY3ViaWMtYmV6aWVyKDAuNjAwLCAtMC4yODAsIDAuNzM1LCAwLjA0NSk7XG5cbiRlYXNlLW91dC1xdWFkOiAgICAgY3ViaWMtYmV6aWVyKDAuMjUwLCAgMC40NjAsIDAuNDUwLCAwLjk0MCk7XG4kZWFzZS1vdXQtY3ViaWM6ICAgIGN1YmljLWJlemllcigwLjIxNSwgIDAuNjEwLCAwLjM1NSwgMS4wMDApO1xuJGVhc2Utb3V0LXF1YXJ0OiAgICBjdWJpYy1iZXppZXIoMC4xNjUsICAwLjg0MCwgMC40NDAsIDEuMDAwKTtcbiRlYXNlLW91dC1xdWludDogICAgY3ViaWMtYmV6aWVyKDAuMjMwLCAgMS4wMDAsIDAuMzIwLCAxLjAwMCk7XG4kZWFzZS1vdXQtc2luZTogICAgIGN1YmljLWJlemllcigwLjM5MCwgIDAuNTc1LCAwLjU2NSwgMS4wMDApO1xuJGVhc2Utb3V0LWV4cG86ICAgICBjdWJpYy1iZXppZXIoMC4xOTAsICAxLjAwMCwgMC4yMjAsIDEuMDAwKTtcbiRlYXNlLW91dC1jaXJjOiAgICAgY3ViaWMtYmV6aWVyKDAuMDc1LCAgMC44MjAsIDAuMTY1LCAxLjAwMCk7XG4kZWFzZS1vdXQtYmFjazogICAgIGN1YmljLWJlemllcigwLjE3NSwgIDAuODg1LCAwLjMyMCwgMS4yNzUpO1xuXG4kZWFzZS1pbi1vdXQtcXVhZDogIGN1YmljLWJlemllcigwLjQ1NSwgIDAuMDMwLCAwLjUxNSwgMC45NTUpO1xuJGVhc2UtaW4tb3V0LWN1YmljOiBjdWJpYy1iZXppZXIoMC42NDUsICAwLjA0NSwgMC4zNTUsIDEuMDAwKTtcbiRlYXNlLWluLW91dC1xdWFydDogY3ViaWMtYmV6aWVyKDAuNzcwLCAgMC4wMDAsIDAuMTc1LCAxLjAwMCk7XG4kZWFzZS1pbi1vdXQtcXVpbnQ6IGN1YmljLWJlemllcigwLjg2MCwgIDAuMDAwLCAwLjA3MCwgMS4wMDApO1xuJGVhc2UtaW4tb3V0LXNpbmU6ICBjdWJpYy1iZXppZXIoMC40NDUsICAwLjA1MCwgMC41NTAsIDAuOTUwKTtcbiRlYXNlLWluLW91dC1leHBvOiAgY3ViaWMtYmV6aWVyKDEuMDAwLCAgMC4wMDAsIDAuMDAwLCAxLjAwMCk7XG4kZWFzZS1pbi1vdXQtY2lyYzogIGN1YmljLWJlemllcigwLjc4NSwgIDAuMTM1LCAwLjE1MCwgMC44NjApO1xuJGVhc2UtaW4tb3V0LWJhY2s6ICBjdWJpYy1iZXppZXIoMC42ODAsIC0wLjU1MCwgMC4yNjUsIDEuNTUwKTtcbiIsIkBtaXhpbiB0cmlhbmdsZSgkc2l6ZSwgJGNvbG9yLCAkZGlyZWN0aW9uKSB7XG4gICR3aWR0aDogbnRoKCRzaXplLCAxKTtcbiAgJGhlaWdodDogbnRoKCRzaXplLCBsZW5ndGgoJHNpemUpKTtcbiAgJGZvcmVncm91bmQtY29sb3I6IG50aCgkY29sb3IsIDEpO1xuICAkYmFja2dyb3VuZC1jb2xvcjogaWYobGVuZ3RoKCRjb2xvcikgPT0gMiwgbnRoKCRjb2xvciwgMiksIHRyYW5zcGFyZW50KTtcbiAgaGVpZ2h0OiAwO1xuICB3aWR0aDogMDtcblxuICBAaWYgKCRkaXJlY3Rpb24gPT0gdXApIG9yICgkZGlyZWN0aW9uID09IGRvd24pIG9yICgkZGlyZWN0aW9uID09IHJpZ2h0KSBvciAoJGRpcmVjdGlvbiA9PSBsZWZ0KSB7XG4gICAgJHdpZHRoOiAkd2lkdGggLyAyO1xuICAgICRoZWlnaHQ6IGlmKGxlbmd0aCgkc2l6ZSkgPiAxLCAkaGVpZ2h0LCAkaGVpZ2h0LzIpO1xuXG4gICAgQGlmICRkaXJlY3Rpb24gPT0gdXAge1xuICAgICAgYm9yZGVyLWJvdHRvbTogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1sZWZ0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gcmlnaHQge1xuICAgICAgYm9yZGVyLWJvdHRvbTogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLWxlZnQ6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItdG9wOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IGRvd24ge1xuICAgICAgYm9yZGVyLWxlZnQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXRvcDogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gbGVmdCB7XG4gICAgICBib3JkZXItYm90dG9tOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItcmlnaHQ6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItdG9wOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfVxuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IHVwLXJpZ2h0KSBvciAoJGRpcmVjdGlvbiA9PSB1cC1sZWZ0KSB7XG4gICAgYm9yZGVyLXRvcDogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcblxuICAgIEBpZiAkZGlyZWN0aW9uID09IHVwLXJpZ2h0IHtcbiAgICAgIGJvcmRlci1sZWZ0OiAgJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSB1cC1sZWZ0IHtcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH1cbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBkb3duLXJpZ2h0KSBvciAoJGRpcmVjdGlvbiA9PSBkb3duLWxlZnQpIHtcbiAgICBib3JkZXItYm90dG9tOiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuXG4gICAgQGlmICRkaXJlY3Rpb24gPT0gZG93bi1yaWdodCB7XG4gICAgICBib3JkZXItbGVmdDogICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gZG93bi1sZWZ0IHtcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH1cbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBpbnNldC11cCkge1xuICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGZvcmVncm91bmQtY29sb3I7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6ICRoZWlnaHQgJHdpZHRoO1xuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGluc2V0LWRvd24pIHtcbiAgICBib3JkZXItY29sb3I6ICRmb3JlZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAkaGVpZ2h0ICR3aWR0aDtcbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBpbnNldC1yaWdodCkge1xuICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGZvcmVncm91bmQtY29sb3I7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6ICR3aWR0aCAkaGVpZ2h0O1xuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGluc2V0LWxlZnQpIHtcbiAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yICRmb3JlZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAkd2lkdGggJGhlaWdodDtcbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYW4gZWFzeSB3YXkgdG8gY2hhbmdlIHRoZSBgd29yZC13cmFwYCBwcm9wZXJ0eS5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkd3JhcCBbYnJlYWstd29yZF1cbi8vLyAgIFZhbHVlIGZvciB0aGUgYHdvcmQtYnJlYWtgIHByb3BlcnR5LlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAud3JhcHBlciB7XG4vLy8gICAgIEBpbmNsdWRlIHdvcmQtd3JhcChicmVhay13b3JkKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC53cmFwcGVyIHtcbi8vLyAgICAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcbi8vLyAgICAgd29yZC1icmVhazogYnJlYWstYWxsO1xuLy8vICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4vLy8gICB9XG5cbkBtaXhpbiB3b3JkLXdyYXAoJHdyYXA6IGJyZWFrLXdvcmQpIHtcbiAgb3ZlcmZsb3ctd3JhcDogJHdyYXA7XG4gIHdvcmQtd3JhcDogJHdyYXA7XG5cbiAgQGlmICR3cmFwID09IGJyZWFrLXdvcmQge1xuICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcbiAgfSBAZWxzZSB7XG4gICAgd29yZC1icmVhazogJHdyYXA7XG4gIH1cbn1cbiIsIi8vIFRoZSBmb2xsb3dpbmcgZmVhdHVyZXMgaGF2ZSBiZWVuIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBNQUpPUiB2ZXJzaW9uIHJlbGVhc2VcblxuQG1peGluIGlubGluZS1ibG9jayB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICBAd2FybiBcIlRoZSBpbmxpbmUtYmxvY2sgbWl4aW4gaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gcmVsZWFzZVwiO1xufVxuXG5AbWl4aW4gYnV0dG9uICgkc3R5bGU6IHNpbXBsZSwgJGJhc2UtY29sb3I6ICM0Mjk0ZjAsICR0ZXh0LXNpemU6IGluaGVyaXQsICRwYWRkaW5nOiA3cHggMThweCkge1xuXG4gIEBpZiB0eXBlLW9mKCRzdHlsZSkgPT0gc3RyaW5nIGFuZCB0eXBlLW9mKCRiYXNlLWNvbG9yKSA9PSBjb2xvciB7XG4gICAgQGluY2x1ZGUgYnV0dG9uc3R5bGUoJHN0eWxlLCAkYmFzZS1jb2xvciwgJHRleHQtc2l6ZSwgJHBhZGRpbmcpO1xuICB9XG5cbiAgQGlmIHR5cGUtb2YoJHN0eWxlKSA9PSBzdHJpbmcgYW5kIHR5cGUtb2YoJGJhc2UtY29sb3IpID09IG51bWJlciB7XG4gICAgJHBhZGRpbmc6ICR0ZXh0LXNpemU7XG4gICAgJHRleHQtc2l6ZTogJGJhc2UtY29sb3I7XG4gICAgJGJhc2UtY29sb3I6ICM0Mjk0ZjA7XG5cbiAgICBAaWYgJHBhZGRpbmcgPT0gaW5oZXJpdCB7XG4gICAgICAkcGFkZGluZzogN3B4IDE4cHg7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnV0dG9uc3R5bGUoJHN0eWxlLCAkYmFzZS1jb2xvciwgJHRleHQtc2l6ZSwgJHBhZGRpbmcpO1xuICB9XG5cbiAgQGlmIHR5cGUtb2YoJHN0eWxlKSA9PSBjb2xvciBhbmQgdHlwZS1vZigkYmFzZS1jb2xvcikgPT0gY29sb3Ige1xuICAgICRiYXNlLWNvbG9yOiAkc3R5bGU7XG4gICAgJHN0eWxlOiBzaW1wbGU7XG4gICAgQGluY2x1ZGUgYnV0dG9uc3R5bGUoJHN0eWxlLCAkYmFzZS1jb2xvciwgJHRleHQtc2l6ZSwgJHBhZGRpbmcpO1xuICB9XG5cbiAgQGlmIHR5cGUtb2YoJHN0eWxlKSA9PSBjb2xvciBhbmQgdHlwZS1vZigkYmFzZS1jb2xvcikgPT0gbnVtYmVyIHtcbiAgICAkcGFkZGluZzogJHRleHQtc2l6ZTtcbiAgICAkdGV4dC1zaXplOiAkYmFzZS1jb2xvcjtcbiAgICAkYmFzZS1jb2xvcjogJHN0eWxlO1xuICAgICRzdHlsZTogc2ltcGxlO1xuXG4gICAgQGlmICRwYWRkaW5nID09IGluaGVyaXQge1xuICAgICAgJHBhZGRpbmc6IDdweCAxOHB4O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJ1dHRvbnN0eWxlKCRzdHlsZSwgJGJhc2UtY29sb3IsICR0ZXh0LXNpemUsICRwYWRkaW5nKTtcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCRzdHlsZSkgPT0gbnVtYmVyIHtcbiAgICAkcGFkZGluZzogJGJhc2UtY29sb3I7XG4gICAgJHRleHQtc2l6ZTogJHN0eWxlO1xuICAgICRiYXNlLWNvbG9yOiAjNDI5NGYwO1xuICAgICRzdHlsZTogc2ltcGxlO1xuXG4gICAgQGlmICRwYWRkaW5nID09ICM0Mjk0ZjAge1xuICAgICAgJHBhZGRpbmc6IDdweCAxOHB4O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJ1dHRvbnN0eWxlKCRzdHlsZSwgJGJhc2UtY29sb3IsICR0ZXh0LXNpemUsICRwYWRkaW5nKTtcbiAgfVxuXG4gICY6ZGlzYWJsZWQge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgb3BhY2l0eTogMC41O1xuICB9XG5cbiAgQHdhcm4gXCJUaGUgYnV0dG9uIG1peGluIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIHJlbGVhc2VcIjtcbn1cblxuLy8gU2VsZWN0b3IgU3R5bGUgQnV0dG9uXG5AbWl4aW4gYnV0dG9uc3R5bGUoJHR5cGUsICRiLWNvbG9yLCAkdC1zaXplLCAkcGFkKSB7XG4gIC8vIEdyYXlzY2FsZSBidXR0b25cbiAgQGlmICR0eXBlID09IHNpbXBsZSBhbmQgJGItY29sb3IgPT0gZ3JheXNjYWxlKCRiLWNvbG9yKSB7XG4gICAgQGluY2x1ZGUgc2ltcGxlKCRiLWNvbG9yLCB0cnVlLCAkdC1zaXplLCAkcGFkKTtcbiAgfVxuXG4gIEBpZiAkdHlwZSA9PSBzaGlueSBhbmQgJGItY29sb3IgPT0gZ3JheXNjYWxlKCRiLWNvbG9yKSB7XG4gICAgQGluY2x1ZGUgc2hpbnkoJGItY29sb3IsIHRydWUsICR0LXNpemUsICRwYWQpO1xuICB9XG5cbiAgQGlmICR0eXBlID09IHBpbGwgYW5kICRiLWNvbG9yID09IGdyYXlzY2FsZSgkYi1jb2xvcikge1xuICAgIEBpbmNsdWRlIHBpbGwoJGItY29sb3IsIHRydWUsICR0LXNpemUsICRwYWQpO1xuICB9XG5cbiAgQGlmICR0eXBlID09IGZsYXQgYW5kICRiLWNvbG9yID09IGdyYXlzY2FsZSgkYi1jb2xvcikge1xuICAgIEBpbmNsdWRlIGZsYXQoJGItY29sb3IsIHRydWUsICR0LXNpemUsICRwYWQpO1xuICB9XG5cbiAgLy8gQ29sb3JlZCBidXR0b25cbiAgQGlmICR0eXBlID09IHNpbXBsZSB7XG4gICAgQGluY2x1ZGUgc2ltcGxlKCRiLWNvbG9yLCBmYWxzZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cblxuICBAZWxzZSBpZiAkdHlwZSA9PSBzaGlueSB7XG4gICAgQGluY2x1ZGUgc2hpbnkoJGItY29sb3IsIGZhbHNlLCAkdC1zaXplLCAkcGFkKTtcbiAgfVxuXG4gIEBlbHNlIGlmICR0eXBlID09IHBpbGwge1xuICAgIEBpbmNsdWRlIHBpbGwoJGItY29sb3IsIGZhbHNlLCAkdC1zaXplLCAkcGFkKTtcbiAgfVxuXG4gIEBlbHNlIGlmICR0eXBlID09IGZsYXQge1xuICAgIEBpbmNsdWRlIGZsYXQoJGItY29sb3IsIGZhbHNlLCAkdC1zaXplLCAkcGFkKTtcbiAgfVxufVxuXG4vLyBTaW1wbGUgQnV0dG9uXG5AbWl4aW4gc2ltcGxlKCRiYXNlLWNvbG9yLCAkZ3JheXNjYWxlOiBmYWxzZSwgJHRleHRzaXplOiBpbmhlcml0LCAkcGFkZGluZzogN3B4IDE4cHgpIHtcbiAgJGNvbG9yOiAgICAgICAgIGhzbCgwLCAwLCAxMDAlKTtcbiAgJGJvcmRlcjogICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246ICA5JSwgICRsaWdodG5lc3M6IC0xNCUpO1xuICAkaW5zZXQtc2hhZG93OiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogLTglLCAgJGxpZ2h0bmVzczogIDE1JSk7XG4gICRzdG9wLWdyYWRpZW50OiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAgOSUsICAkbGlnaHRuZXNzOiAtMTElKTtcbiAgJHRleHQtc2hhZG93OiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246ICAxNSUsICRsaWdodG5lc3M6IC0xOCUpO1xuXG4gIEBpZiBpcy1saWdodCgkYmFzZS1jb2xvcikge1xuICAgICRjb2xvcjogICAgICAgaHNsKDAsIDAsIDIwJSk7XG4gICAgJHRleHQtc2hhZG93OiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAxMCUsICRsaWdodG5lc3M6IDQlKTtcbiAgfVxuXG4gIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICRib3JkZXI6ICAgICAgICBncmF5c2NhbGUoJGJvcmRlcik7XG4gICAgJGluc2V0LXNoYWRvdzogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93KTtcbiAgICAkc3RvcC1ncmFkaWVudDogZ3JheXNjYWxlKCRzdG9wLWdyYWRpZW50KTtcbiAgICAkdGV4dC1zaGFkb3c6ICAgZ3JheXNjYWxlKCR0ZXh0LXNoYWRvdyk7XG4gIH1cblxuICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgMCAkaW5zZXQtc2hhZG93O1xuICBjb2xvcjogJGNvbG9yO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogJHRleHRzaXplO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50ICgkYmFzZS1jb2xvciwgJHN0b3AtZ3JhZGllbnQpO1xuICBwYWRkaW5nOiAkcGFkZGluZztcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0ZXh0LXNoYWRvdzogMCAxcHggMCAkdGV4dC1zaGFkb3c7XG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG5cbiAgJjpob3Zlcjpub3QoOmRpc2FibGVkKSB7XG4gICAgJGJhc2UtY29sb3ItaG92ZXI6ICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IC00JSwgJGxpZ2h0bmVzczogLTUlKTtcbiAgICAkaW5zZXQtc2hhZG93LWhvdmVyOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogLTclLCAkbGlnaHRuZXNzOiAgNSUpO1xuICAgICRzdG9wLWdyYWRpZW50LWhvdmVyOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAgOCUsICRsaWdodG5lc3M6IC0xNCUpO1xuXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgICAkYmFzZS1jb2xvci1ob3ZlcjogICAgZ3JheXNjYWxlKCRiYXNlLWNvbG9yLWhvdmVyKTtcbiAgICAgICRpbnNldC1zaGFkb3ctaG92ZXI6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdy1ob3Zlcik7XG4gICAgICAkc3RvcC1ncmFkaWVudC1ob3ZlcjogZ3JheXNjYWxlKCRzdG9wLWdyYWRpZW50LWhvdmVyKTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQgKCRiYXNlLWNvbG9yLWhvdmVyLCAkc3RvcC1ncmFkaWVudC1ob3Zlcik7XG5cbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIDAgJGluc2V0LXNoYWRvdy1ob3ZlcjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cblxuICAmOmFjdGl2ZTpub3QoOmRpc2FibGVkKSxcbiAgJjpmb2N1czpub3QoOmRpc2FibGVkKSB7XG4gICAgJGJvcmRlci1hY3RpdmU6ICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDklLCAkbGlnaHRuZXNzOiAtMTQlKTtcbiAgICAkaW5zZXQtc2hhZG93LWFjdGl2ZTogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogNyUsICRsaWdodG5lc3M6IC0xNyUpO1xuXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgICAkYm9yZGVyLWFjdGl2ZTogICAgICAgZ3JheXNjYWxlKCRib3JkZXItYWN0aXZlKTtcbiAgICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiBncmF5c2NhbGUoJGluc2V0LXNoYWRvdy1hY3RpdmUpO1xuICAgIH1cblxuICAgIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItYWN0aXZlO1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCA4cHggNHB4ICRpbnNldC1zaGFkb3ctYWN0aXZlLCBpbnNldCAwIDAgOHB4IDRweCAkaW5zZXQtc2hhZG93LWFjdGl2ZTtcbiAgfVxufVxuXG4vLyBTaGlueSBCdXR0b25cbkBtaXhpbiBzaGlueSgkYmFzZS1jb2xvciwgJGdyYXlzY2FsZTogZmFsc2UsICR0ZXh0c2l6ZTogaW5oZXJpdCwgJHBhZGRpbmc6IDdweCAxOHB4KSB7XG4gICRjb2xvcjogICAgICAgICBoc2woMCwgMCwgMTAwJSk7XG4gICRib3JkZXI6ICAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC0xMTcsICRncmVlbjogLTExMSwgJGJsdWU6IC04MSk7XG4gICRib3JkZXItYm90dG9tOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC0xMjYsICRncmVlbjogLTEyNywgJGJsdWU6IC0xMjIpO1xuICAkZm91cnRoLXN0b3A6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtNzksICAkZ3JlZW46IC03MCwgICRibHVlOiAtNDYpO1xuICAkaW5zZXQtc2hhZG93OiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAgMzcsICAkZ3JlZW46ICAyOSwgICRibHVlOiAgMTIpO1xuICAkc2Vjb25kLXN0b3A6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtNTYsICAkZ3JlZW46IC01MCwgICRibHVlOiAtMzMpO1xuICAkdGV4dC1zaGFkb3c6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtMTQwLCAkZ3JlZW46IC0xNDEsICRibHVlOiAtMTE0KTtcbiAgJHRoaXJkLXN0b3A6ICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTg2LCAgJGdyZWVuOiAtNzUsICAkYmx1ZTogLTQ4KTtcblxuICBAaWYgaXMtbGlnaHQoJGJhc2UtY29sb3IpIHtcbiAgICAkY29sb3I6ICAgICAgIGhzbCgwLCAwLCAyMCUpO1xuICAgICR0ZXh0LXNoYWRvdzogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogMTAlLCAkbGlnaHRuZXNzOiA0JSk7XG4gIH1cblxuICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAkYm9yZGVyOiAgICAgICAgZ3JheXNjYWxlKCRib3JkZXIpO1xuICAgICRib3JkZXItYm90dG9tOiBncmF5c2NhbGUoJGJvcmRlci1ib3R0b20pO1xuICAgICRmb3VydGgtc3RvcDogICBncmF5c2NhbGUoJGZvdXJ0aC1zdG9wKTtcbiAgICAkaW5zZXQtc2hhZG93OiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3cpO1xuICAgICRzZWNvbmQtc3RvcDogICBncmF5c2NhbGUoJHNlY29uZC1zdG9wKTtcbiAgICAkdGV4dC1zaGFkb3c6ICAgZ3JheXNjYWxlKCR0ZXh0LXNoYWRvdyk7XG4gICAgJHRoaXJkLXN0b3A6ICAgIGdyYXlzY2FsZSgkdGhpcmQtc3RvcCk7XG4gIH1cblxuICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQodG9wLCAkYmFzZS1jb2xvciAwJSwgJHNlY29uZC1zdG9wIDUwJSwgJHRoaXJkLXN0b3AgNTAlLCAkZm91cnRoLXN0b3AgMTAwJSk7XG5cbiAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlcjtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRib3JkZXItYm90dG9tO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgMCAkaW5zZXQtc2hhZG93O1xuICBjb2xvcjogJGNvbG9yO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogJHRleHRzaXplO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgcGFkZGluZzogJHBhZGRpbmc7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0ZXh0LXNoYWRvdzogMCAtMXB4IDFweCAkdGV4dC1zaGFkb3c7XG5cbiAgJjpob3Zlcjpub3QoOmRpc2FibGVkKSB7XG4gICAgJGZpcnN0LXN0b3AtaG92ZXI6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC0xMywgJGdyZWVuOiAtMTUsICRibHVlOiAtMTgpO1xuICAgICRzZWNvbmQtc3RvcC1ob3ZlcjogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtNjYsICRncmVlbjogLTYyLCAkYmx1ZTogLTUxKTtcbiAgICAkdGhpcmQtc3RvcC1ob3ZlcjogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTkzLCAkZ3JlZW46IC04NSwgJGJsdWU6IC02Nik7XG4gICAgJGZvdXJ0aC1zdG9wLWhvdmVyOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC04NiwgJGdyZWVuOiAtODAsICRibHVlOiAtNjMpO1xuXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgICAkZmlyc3Qtc3RvcC1ob3ZlcjogIGdyYXlzY2FsZSgkZmlyc3Qtc3RvcC1ob3Zlcik7XG4gICAgICAkc2Vjb25kLXN0b3AtaG92ZXI6IGdyYXlzY2FsZSgkc2Vjb25kLXN0b3AtaG92ZXIpO1xuICAgICAgJHRoaXJkLXN0b3AtaG92ZXI6ICBncmF5c2NhbGUoJHRoaXJkLXN0b3AtaG92ZXIpO1xuICAgICAgJGZvdXJ0aC1zdG9wLWhvdmVyOiBncmF5c2NhbGUoJGZvdXJ0aC1zdG9wLWhvdmVyKTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQodG9wLCAkZmlyc3Qtc3RvcC1ob3ZlciAgMCUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHNlY29uZC1zdG9wLWhvdmVyIDUwJSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGhpcmQtc3RvcC1ob3ZlciAgNTAlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRmb3VydGgtc3RvcC1ob3ZlciAxMDAlKTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cblxuICAmOmFjdGl2ZTpub3QoOmRpc2FibGVkKSxcbiAgJjpmb2N1czpub3QoOmRpc2FibGVkKSB7XG4gICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTExMSwgJGdyZWVuOiAtMTE2LCAkYmx1ZTogLTEyMik7XG5cbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiBncmF5c2NhbGUoJGluc2V0LXNoYWRvdy1hY3RpdmUpO1xuICAgIH1cblxuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAyMHB4IDAgJGluc2V0LXNoYWRvdy1hY3RpdmU7XG4gIH1cbn1cblxuLy8gUGlsbCBCdXR0b25cbkBtaXhpbiBwaWxsKCRiYXNlLWNvbG9yLCAkZ3JheXNjYWxlOiBmYWxzZSwgJHRleHRzaXplOiBpbmhlcml0LCAkcGFkZGluZzogN3B4IDE4cHgpIHtcbiAgJGNvbG9yOiAgICAgICAgIGhzbCgwLCAwLCAxMDAlKTtcbiAgJGJvcmRlci1ib3R0b206IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDgsICRzYXR1cmF0aW9uOiAtMTElLCAkbGlnaHRuZXNzOiAtMjYlKTtcbiAgJGJvcmRlci1zaWRlczogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDQsICRzYXR1cmF0aW9uOiAtMjElLCAkbGlnaHRuZXNzOiAtMjElKTtcbiAgJGJvcmRlci10b3A6ICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogLTEsICRzYXR1cmF0aW9uOiAtMzAlLCAkbGlnaHRuZXNzOiAtMTUlKTtcbiAgJGluc2V0LXNoYWRvdzogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogLTEsICRzYXR1cmF0aW9uOiAtMSUsICAkbGlnaHRuZXNzOiAgNyUpO1xuICAkc3RvcC1ncmFkaWVudDogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgOCwgJHNhdHVyYXRpb246ICAxNCUsICRsaWdodG5lc3M6IC0xMCUpO1xuICAkdGV4dC1zaGFkb3c6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgNSwgJHNhdHVyYXRpb246IC0xOSUsICRsaWdodG5lc3M6IC0xNSUpO1xuXG4gIEBpZiBpcy1saWdodCgkYmFzZS1jb2xvcikge1xuICAgICRjb2xvcjogICAgICAgaHNsKDAsIDAsIDIwJSk7XG4gICAgJHRleHQtc2hhZG93OiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAxMCUsICRsaWdodG5lc3M6IDQlKTtcbiAgfVxuXG4gIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICRib3JkZXItYm90dG9tOiBncmF5c2NhbGUoJGJvcmRlci1ib3R0b20pO1xuICAgICRib3JkZXItc2lkZXM6ICBncmF5c2NhbGUoJGJvcmRlci1zaWRlcyk7XG4gICAgJGJvcmRlci10b3A6ICAgIGdyYXlzY2FsZSgkYm9yZGVyLXRvcCk7XG4gICAgJGluc2V0LXNoYWRvdzogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93KTtcbiAgICAkc3RvcC1ncmFkaWVudDogZ3JheXNjYWxlKCRzdG9wLWdyYWRpZW50KTtcbiAgICAkdGV4dC1zaGFkb3c6ICAgZ3JheXNjYWxlKCR0ZXh0LXNoYWRvdyk7XG4gIH1cblxuICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLXRvcDtcbiAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLXRvcCAkYm9yZGVyLXNpZGVzICRib3JkZXItYm90dG9tO1xuICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIDAgJGluc2V0LXNoYWRvdztcbiAgY29sb3I6ICRjb2xvcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6ICR0ZXh0c2l6ZTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCAoJGJhc2UtY29sb3IsICRzdG9wLWdyYWRpZW50KTtcbiAgcGFkZGluZzogJHBhZGRpbmc7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0ZXh0LXNoYWRvdzogMCAtMXB4IDFweCAkdGV4dC1zaGFkb3c7XG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG5cbiAgJjpob3Zlcjpub3QoOmRpc2FibGVkKSB7XG4gICAgJGJhc2UtY29sb3ItaG92ZXI6ICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaWdodG5lc3M6IC00LjUlKTtcbiAgICAkYm9yZGVyLWJvdHRvbTogICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgOCwgJHNhdHVyYXRpb246ICAxMy41JSwgJGxpZ2h0bmVzczogLTMyJSk7XG4gICAgJGJvcmRlci1zaWRlczogICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDQsICRzYXR1cmF0aW9uOiAtMiUsICAgICRsaWdodG5lc3M6IC0yNyUpO1xuICAgICRib3JkZXItdG9wOiAgICAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IC0xLCAkc2F0dXJhdGlvbjogLTE3JSwgICAkbGlnaHRuZXNzOiAtMjElKTtcbiAgICAkaW5zZXQtc2hhZG93LWhvdmVyOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAgICAgICAgICAgJHNhdHVyYXRpb246IC0xJSwgICAgJGxpZ2h0bmVzczogIDMlKTtcbiAgICAkc3RvcC1ncmFkaWVudC1ob3ZlcjogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgOCwgJHNhdHVyYXRpb246IC00JSwgICAgJGxpZ2h0bmVzczogLTE1LjUlKTtcbiAgICAkdGV4dC1zaGFkb3ctaG92ZXI6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgNSwgJHNhdHVyYXRpb246IC01JSwgICAgJGxpZ2h0bmVzczogLTIyJSk7XG5cbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRiYXNlLWNvbG9yLWhvdmVyOiAgICBncmF5c2NhbGUoJGJhc2UtY29sb3ItaG92ZXIpO1xuICAgICAgJGJvcmRlci1ib3R0b206ICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyLWJvdHRvbSk7XG4gICAgICAkYm9yZGVyLXNpZGVzOiAgICAgICAgZ3JheXNjYWxlKCRib3JkZXItc2lkZXMpO1xuICAgICAgJGJvcmRlci10b3A6ICAgICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyLXRvcCk7XG4gICAgICAkaW5zZXQtc2hhZG93LWhvdmVyOiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3ctaG92ZXIpO1xuICAgICAgJHN0b3AtZ3JhZGllbnQtaG92ZXI6IGdyYXlzY2FsZSgkc3RvcC1ncmFkaWVudC1ob3Zlcik7XG4gICAgICAkdGV4dC1zaGFkb3ctaG92ZXI6ICAgZ3JheXNjYWxlKCR0ZXh0LXNoYWRvdy1ob3Zlcik7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50ICgkYmFzZS1jb2xvci1ob3ZlciwgJHN0b3AtZ3JhZGllbnQtaG92ZXIpO1xuXG4gICAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLXRvcDtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItdG9wICRib3JkZXItc2lkZXMgJGJvcmRlci1ib3R0b207XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCAwICRpbnNldC1zaGFkb3ctaG92ZXI7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRleHQtc2hhZG93OiAwIC0xcHggMXB4ICR0ZXh0LXNoYWRvdy1ob3ZlcjtcbiAgfVxuXG4gICY6YWN0aXZlOm5vdCg6ZGlzYWJsZWQpLFxuICAmOmZvY3VzOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAkYWN0aXZlLWNvbG9yOiAgICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogNCwgICRzYXR1cmF0aW9uOiAtMTIlLCAgJGxpZ2h0bmVzczogLTEwJSk7XG4gICAgJGJvcmRlci1hY3RpdmU6ICAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IDYsICAkc2F0dXJhdGlvbjogLTIuNSUsICRsaWdodG5lc3M6IC0zMCUpO1xuICAgICRib3JkZXItYm90dG9tLWFjdGl2ZTogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAxMSwgJHNhdHVyYXRpb246ICA2JSwgICAkbGlnaHRuZXNzOiAtMzElKTtcbiAgICAkaW5zZXQtc2hhZG93LWFjdGl2ZTogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogOSwgICRzYXR1cmF0aW9uOiAgMiUsICAgJGxpZ2h0bmVzczogLTIxLjUlKTtcbiAgICAkdGV4dC1zaGFkb3ctYWN0aXZlOiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogNSwgICRzYXR1cmF0aW9uOiAtMTIlLCAgJGxpZ2h0bmVzczogLTIxLjUlKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGFjdGl2ZS1jb2xvcjogICAgICAgICBncmF5c2NhbGUoJGFjdGl2ZS1jb2xvcik7XG4gICAgICAkYm9yZGVyLWFjdGl2ZTogICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyLWFjdGl2ZSk7XG4gICAgICAkYm9yZGVyLWJvdHRvbS1hY3RpdmU6IGdyYXlzY2FsZSgkYm9yZGVyLWJvdHRvbS1hY3RpdmUpO1xuICAgICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdy1hY3RpdmUpO1xuICAgICAgJHRleHQtc2hhZG93LWFjdGl2ZTogICBncmF5c2NhbGUoJHRleHQtc2hhZG93LWFjdGl2ZSk7XG4gICAgfVxuXG4gICAgYmFja2dyb3VuZDogJGFjdGl2ZS1jb2xvcjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLWFjdGl2ZTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGJvcmRlci1ib3R0b20tYWN0aXZlO1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCA2cHggM3B4ICRpbnNldC1zaGFkb3ctYWN0aXZlO1xuICAgIHRleHQtc2hhZG93OiAwIC0xcHggMXB4ICR0ZXh0LXNoYWRvdy1hY3RpdmU7XG4gIH1cbn1cblxuLy8gRmxhdCBCdXR0b25cbkBtaXhpbiBmbGF0KCRiYXNlLWNvbG9yLCAkZ3JheXNjYWxlOiBmYWxzZSwgJHRleHRzaXplOiBpbmhlcml0LCAkcGFkZGluZzogN3B4IDE4cHgpIHtcbiAgJGNvbG9yOiAgICAgICAgIGhzbCgwLCAwLCAxMDAlKTtcblxuICBAaWYgaXMtbGlnaHQoJGJhc2UtY29sb3IpIHtcbiAgICAkY29sb3I6ICAgICAgIGhzbCgwLCAwLCAyMCUpO1xuICB9XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogJGJhc2UtY29sb3I7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYm9yZGVyOiAwO1xuICBjb2xvcjogJGNvbG9yO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogJHRleHRzaXplO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgcGFkZGluZzogJHBhZGRpbmc7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcblxuICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpe1xuICAgICRiYXNlLWNvbG9yLWhvdmVyOiAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiA0JSwgJGxpZ2h0bmVzczogNSUpO1xuXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgICAkYmFzZS1jb2xvci1ob3ZlcjogZ3JheXNjYWxlKCRiYXNlLWNvbG9yLWhvdmVyKTtcbiAgICB9XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFzZS1jb2xvci1ob3ZlcjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cblxuICAmOmFjdGl2ZTpub3QoOmRpc2FibGVkKSxcbiAgJjpmb2N1czpub3QoOmRpc2FibGVkKSB7XG4gICAgJGJhc2UtY29sb3ItYWN0aXZlOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAtNCUsICRsaWdodG5lc3M6IC01JSk7XG5cbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRiYXNlLWNvbG9yLWFjdGl2ZTogZ3JheXNjYWxlKCRiYXNlLWNvbG9yLWFjdGl2ZSk7XG4gICAgfVxuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhc2UtY29sb3ItYWN0aXZlO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxufVxuXG4vLyBGbGV4aWJsZSBncmlkXG5AZnVuY3Rpb24gZmxleC1ncmlkKCRjb2x1bW5zLCAkY29udGFpbmVyLWNvbHVtbnM6ICRmZy1tYXgtY29sdW1ucykge1xuICAkd2lkdGg6ICRjb2x1bW5zICogJGZnLWNvbHVtbiArICgkY29sdW1ucyAtIDEpICogJGZnLWd1dHRlcjtcbiAgJGNvbnRhaW5lci13aWR0aDogJGNvbnRhaW5lci1jb2x1bW5zICogJGZnLWNvbHVtbiArICgkY29udGFpbmVyLWNvbHVtbnMgLSAxKSAqICRmZy1ndXR0ZXI7XG4gIEByZXR1cm4gcGVyY2VudGFnZSgkd2lkdGggLyAkY29udGFpbmVyLXdpZHRoKTtcblxuICBAd2FybiBcIlRoZSBmbGV4LWdyaWQgZnVuY3Rpb24gaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gcmVsZWFzZVwiO1xufVxuXG4vLyBGbGV4aWJsZSBndXR0ZXJcbkBmdW5jdGlvbiBmbGV4LWd1dHRlcigkY29udGFpbmVyLWNvbHVtbnM6ICRmZy1tYXgtY29sdW1ucywgJGd1dHRlcjogJGZnLWd1dHRlcikge1xuICAkY29udGFpbmVyLXdpZHRoOiAkY29udGFpbmVyLWNvbHVtbnMgKiAkZmctY29sdW1uICsgKCRjb250YWluZXItY29sdW1ucyAtIDEpICogJGZnLWd1dHRlcjtcbiAgQHJldHVybiBwZXJjZW50YWdlKCRndXR0ZXIgLyAkY29udGFpbmVyLXdpZHRoKTtcblxuICBAd2FybiBcIlRoZSBmbGV4LWd1dHRlciBmdW5jdGlvbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiByZWxlYXNlXCI7XG59XG5cbkBmdW5jdGlvbiBncmlkLXdpZHRoKCRuKSB7XG4gIEByZXR1cm4gJG4gKiAkZ3ctY29sdW1uICsgKCRuIC0gMSkgKiAkZ3ctZ3V0dGVyO1xuXG4gIEB3YXJuIFwiVGhlIGdyaWQtd2lkdGggZnVuY3Rpb24gaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gcmVsZWFzZVwiO1xufVxuXG5AZnVuY3Rpb24gZ29sZGVuLXJhdGlvKCR2YWx1ZSwgJGluY3JlbWVudCkge1xuICBAcmV0dXJuIG1vZHVsYXItc2NhbGUoJGluY3JlbWVudCwgJHZhbHVlLCAkcmF0aW86ICRnb2xkZW4pO1xuXG4gIEB3YXJuIFwiVGhlIGdvbGRlbi1yYXRpbyBmdW5jdGlvbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiByZWxlYXNlLiBQbGVhc2UgdXNlIHRoZSBtb2R1bGFyLXNjYWxlIGZ1bmN0aW9uLCBpbnN0ZWFkLlwiO1xufVxuXG5AbWl4aW4gYm94LXNpemluZygkYm94KSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1zaXppbmcsICRib3gsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgQHdhcm4gXCJUaGUgYm94LXNpemluZyBtaXhpbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiByZWxlYXNlLiBUaGlzIHByb3BlcnR5IGNhbiBub3cgYmUgdXNlZCB1bi1wcmVmaXhlZC5cIjtcbn1cbiIsIi8vIE1peGluc1xuQGltcG9ydCBcIm1peGlucy9jbGVhcmZpeFwiO1xuXG4vLyBGdW5jdGlvbnNcbkBpbXBvcnQgXCJmdW5jdGlvbnMvcHJpdmF0ZVwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9uZXctYnJlYWtwb2ludFwiO1xuXG4vLyBTZXR0aW5nc1xuQGltcG9ydCBcInNldHRpbmdzL2dyaWRcIjtcbkBpbXBvcnQgXCJzZXR0aW5ncy92aXN1YWwtZ3JpZFwiO1xuQGltcG9ydCBcInNldHRpbmdzL2Rpc2FibGUtd2FybmluZ3NcIjtcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGFuIGVhc3kgd2F5IHRvIGluY2x1ZGUgYSBjbGVhcmZpeCBmb3IgY29udGFpbmluZyBmbG9hdHMuXG4vLy9cbi8vLyBAbGluayBodHRwOi8vZ29vLmdsL3lQNWhpWlxuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzc1xuLy8vICAgLmVsZW1lbnQ6OmFmdGVyIHtcbi8vLyAgICAgY2xlYXI6IGJvdGg7XG4vLy8gICAgIGNvbnRlbnQ6IFwiXCI7XG4vLy8gICAgIGRpc3BsYXk6IGJsb2NrO1xuLy8vICAgfVxuXG5AbWl4aW4gY2xlYXJmaXgge1xuICAmOjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuIiwiLy8gTm90IGZ1bmN0aW9uIGZvciBMaWJzYXNzIGNvbXBhdGliaWxpdHlcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzL2xpYnNhc3MvaXNzdWVzLzM2OFxuQGZ1bmN0aW9uIGlzLW5vdCgkdmFsdWUpIHtcbiAgQHJldHVybiBpZigkdmFsdWUsIGZhbHNlLCB0cnVlKTtcbn1cblxuLy8gQ2hlY2tzIGlmIGEgbnVtYmVyIGlzIGV2ZW5cbkBmdW5jdGlvbiBpcy1ldmVuKCRpbnQpIHtcbiAgQHJldHVybiAkaW50ICUgMiA9PSAwO1xufVxuXG4vLyBDaGVja3MgaWYgYW4gZWxlbWVudCBiZWxvbmdzIHRvIGEgbGlzdCBvciBub3RcbkBmdW5jdGlvbiBiZWxvbmdzLXRvKCR0ZXN0ZWQtaXRlbSwgJGxpc3QpIHtcbiAgQHJldHVybiBpcy1ub3Qobm90LWJlbG9uZ3MtdG8oJHRlc3RlZC1pdGVtLCAkbGlzdCkpO1xufVxuXG5AZnVuY3Rpb24gbm90LWJlbG9uZ3MtdG8oJHRlc3RlZC1pdGVtLCAkbGlzdCkge1xuICBAcmV0dXJuIGlzLW5vdChpbmRleCgkbGlzdCwgJHRlc3RlZC1pdGVtKSk7XG59XG5cbi8vIENvbnRhaW5zIGRpc3BsYXkgdmFsdWVcbkBmdW5jdGlvbiBjb250YWlucy1kaXNwbGF5LXZhbHVlKCRxdWVyeSkge1xuICBAcmV0dXJuIGJlbG9uZ3MtdG8odGFibGUsICRxdWVyeSlcbiAgICAgICBvciBiZWxvbmdzLXRvKGJsb2NrLCAkcXVlcnkpXG4gICAgICAgb3IgYmVsb25ncy10byhpbmxpbmUtYmxvY2ssICRxdWVyeSlcbiAgICAgICBvciBiZWxvbmdzLXRvKGlubGluZSwgJHF1ZXJ5KTtcbn1cblxuLy8gUGFyc2VzIHRoZSBmaXJzdCBhcmd1bWVudCBvZiBzcGFuLWNvbHVtbnMoKVxuQGZ1bmN0aW9uIGNvbnRhaW5lci1zcGFuKCRzcGFuOiAkc3Bhbikge1xuICBAaWYgbGVuZ3RoKCRzcGFuKSA9PSAzIHtcbiAgICAkY29udGFpbmVyLWNvbHVtbnM6IG50aCgkc3BhbiwgMyk7XG4gICAgQHJldHVybiAkY29udGFpbmVyLWNvbHVtbnM7XG4gIH0gQGVsc2UgaWYgbGVuZ3RoKCRzcGFuKSA9PSAyIHtcbiAgICAkY29udGFpbmVyLWNvbHVtbnM6IG50aCgkc3BhbiwgMik7XG4gICAgQHJldHVybiAkY29udGFpbmVyLWNvbHVtbnM7XG4gIH1cblxuICBAcmV0dXJuICRncmlkLWNvbHVtbnM7XG59XG5cbkBmdW5jdGlvbiBjb250YWluZXItc2hpZnQoJHNoaWZ0OiAkc2hpZnQpIHtcbiAgJHBhcmVudC1jb2x1bW5zOiAkZ3JpZC1jb2x1bW5zICFkZWZhdWx0ICFnbG9iYWw7XG5cbiAgQGlmIGxlbmd0aCgkc2hpZnQpID09IDMge1xuICAgICRjb250YWluZXItY29sdW1uczogbnRoKCRzaGlmdCwgMyk7XG4gICAgQHJldHVybiAkY29udGFpbmVyLWNvbHVtbnM7XG4gIH0gQGVsc2UgaWYgbGVuZ3RoKCRzaGlmdCkgPT0gMiB7XG4gICAgJGNvbnRhaW5lci1jb2x1bW5zOiBudGgoJHNoaWZ0LCAyKTtcbiAgICBAcmV0dXJuICRjb250YWluZXItY29sdW1ucztcbiAgfVxuXG4gIEByZXR1cm4gJHBhcmVudC1jb2x1bW5zO1xufVxuXG4vLyBHZW5lcmF0ZXMgYSBzdHJpcGVkIGJhY2tncm91bmRcbkBmdW5jdGlvbiBncmFkaWVudC1zdG9wcygkZ3JpZC1jb2x1bW5zLCAkY29sb3I6ICR2aXN1YWwtZ3JpZC1jb2xvcikge1xuICAkdHJhbnNwYXJlbnQ6IHRyYW5zcGFyZW50O1xuXG4gICRjb2x1bW4td2lkdGg6IGZsZXgtZ3JpZCgxLCAkZ3JpZC1jb2x1bW5zKTtcbiAgJGd1dHRlci13aWR0aDogZmxleC1ndXR0ZXIoJGdyaWQtY29sdW1ucyk7XG4gICRjb2x1bW4tb2Zmc2V0OiAkY29sdW1uLXdpZHRoO1xuXG4gICR2YWx1ZXM6ICgkdHJhbnNwYXJlbnQgMCwgJGNvbG9yIDApO1xuXG4gIEBmb3IgJGkgZnJvbSAxIHRvICRncmlkLWNvbHVtbnMqMiB7XG4gICAgQGlmIGlzLWV2ZW4oJGkpIHtcbiAgICAgICR2YWx1ZXM6IGFwcGVuZCgkdmFsdWVzLCAkdHJhbnNwYXJlbnQgJGNvbHVtbi1vZmZzZXQsIGNvbW1hKTtcbiAgICAgICR2YWx1ZXM6IGFwcGVuZCgkdmFsdWVzLCAkY29sb3IgJGNvbHVtbi1vZmZzZXQsIGNvbW1hKTtcbiAgICAgICRjb2x1bW4tb2Zmc2V0OiAkY29sdW1uLW9mZnNldCArICRjb2x1bW4td2lkdGg7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkdmFsdWVzOiBhcHBlbmQoJHZhbHVlcywgJGNvbG9yICRjb2x1bW4tb2Zmc2V0LCBjb21tYSk7XG4gICAgICAkdmFsdWVzOiBhcHBlbmQoJHZhbHVlcywgJHRyYW5zcGFyZW50ICRjb2x1bW4tb2Zmc2V0LCBjb21tYSk7XG4gICAgICAkY29sdW1uLW9mZnNldDogJGNvbHVtbi1vZmZzZXQgKyAkZ3V0dGVyLXdpZHRoO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlcztcbn1cblxuLy8gTGF5b3V0IGRpcmVjdGlvblxuQGZ1bmN0aW9uIGdldC1kaXJlY3Rpb24oJGxheW91dCwgJGRlZmF1bHQpIHtcbiAgJGRpcmVjdGlvbjogbnVsbDtcblxuICBAaWYgdG8tdXBwZXItY2FzZSgkbGF5b3V0KSA9PSBcIkxUUlwiIG9yIHRvLXVwcGVyLWNhc2UoJGxheW91dCkgPT0gXCJSVExcIiB7XG4gICAgJGRpcmVjdGlvbjogZGlyZWN0aW9uLWZyb20tbGF5b3V0KCRsYXlvdXQpO1xuICB9IEBlbHNlIHtcbiAgICAkZGlyZWN0aW9uOiBkaXJlY3Rpb24tZnJvbS1sYXlvdXQoJGRlZmF1bHQpO1xuICB9XG5cbiAgQHJldHVybiAkZGlyZWN0aW9uO1xufVxuXG5AZnVuY3Rpb24gZGlyZWN0aW9uLWZyb20tbGF5b3V0KCRsYXlvdXQpIHtcbiAgJGRpcmVjdGlvbjogbnVsbDtcblxuICBAaWYgdG8tdXBwZXItY2FzZSgkbGF5b3V0KSA9PSBcIkxUUlwiIHtcbiAgICAkZGlyZWN0aW9uOiByaWdodDtcbiAgfSBAZWxzZSB7XG4gICAgJGRpcmVjdGlvbjogbGVmdDtcbiAgfVxuXG4gIEByZXR1cm4gJGRpcmVjdGlvbjtcbn1cblxuQGZ1bmN0aW9uIGdldC1vcHBvc2l0ZS1kaXJlY3Rpb24oJGRpcmVjdGlvbikge1xuICAkb3Bwb3NpdGUtZGlyZWN0aW9uOiBsZWZ0O1xuXG4gIEBpZiAkZGlyZWN0aW9uID09IFwibGVmdFwiIHtcbiAgICAkb3Bwb3NpdGUtZGlyZWN0aW9uOiByaWdodDtcbiAgfVxuXG4gIEByZXR1cm4gJG9wcG9zaXRlLWRpcmVjdGlvbjtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFJldHVybnMgYSBtZWRpYSBjb250ZXh0IChtZWRpYSBxdWVyeSAvIGdyaWQgY29udGV4dCkgdGhhdCBjYW4gYmUgc3RvcmVkIGluIGEgdmFyaWFibGUgYW5kIHBhc3NlZCB0byBgbWVkaWEoKWAgYXMgYSBzaW5nbGUta2V5d29yZCBhcmd1bWVudC4gTWVkaWEgY29udGV4dHMgZGVmaW5lZCB1c2luZyBgbmV3LWJyZWFrcG9pbnRgIGFyZSB1c2VkIGJ5IHRoZSB2aXN1YWwgZ3JpZCwgYXMgbG9uZyBhcyB0aGV5IGFyZSBkZWZpbmVkIGJlZm9yZSBpbXBvcnRpbmcgTmVhdC5cbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHF1ZXJ5XG4vLy8gICBBIGxpc3Qgb2YgbWVkaWEgcXVlcnkgZmVhdHVyZXMgYW5kIHZhbHVlcy4gRWFjaCBgJGZlYXR1cmVgIHNob3VsZCBoYXZlIGEgY29ycmVzcG9uZGluZyBgJHZhbHVlYC5cbi8vL1xuLy8vICAgSWYgdGhlcmUgaXMgb25seSBhIHNpbmdsZSBgJHZhbHVlYCBpbiBgJHF1ZXJ5YCwgYCRkZWZhdWx0LWZlYXR1cmVgIGlzIGdvaW5nIHRvIGJlIHVzZWQuXG4vLy9cbi8vLyAgIFRoZSBudW1iZXIgb2YgdG90YWwgY29sdW1ucyBpbiB0aGUgZ3JpZCBjYW4gYmUgc2V0IGJ5IHBhc3NpbmcgYCRjb2x1bW5zYCBhdCB0aGUgZW5kIG9mIHRoZSBsaXN0IChvdmVycmlkZXMgYCR0b3RhbC1jb2x1bW5zYCkuIEZvciBhIGxpc3Qgb2YgdmFsaWQgdmFsdWVzIGZvciBgJGZlYXR1cmVgLCBjbGljayBbaGVyZV0oaHR0cDovL3d3dy53My5vcmcvVFIvY3NzMy1tZWRpYXF1ZXJpZXMvI21lZGlhMSkuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlciAodW5pdGxlc3MpfSAkdG90YWwtY29sdW1ucyBbJGdyaWQtY29sdW1uc11cbi8vLyAgIC0gTnVtYmVyIG9mIGNvbHVtbnMgdG8gdXNlIGluIHRoZSBuZXcgZ3JpZCBjb250ZXh0LiBDYW4gYmUgc2V0IGFzIGEgc2hvcnRoYW5kIGluIHRoZSBmaXJzdCBwYXJhbWV0ZXIuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgICRtb2JpbGU6IG5ldy1icmVha3BvaW50KG1heC13aWR0aCA0ODBweCA0KTtcbi8vL1xuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBtZWRpYSgkbW9iaWxlKSB7XG4vLy8gICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDQpO1xuLy8vICAgICB9XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0ODBweCkge1xuLy8vICAgICAuZWxlbWVudCB7XG4vLy8gICAgICAgZGlzcGxheTogYmxvY2s7XG4vLy8gICAgICAgZmxvYXQ6IGxlZnQ7XG4vLy8gICAgICAgbWFyZ2luLXJpZ2h0OiA3LjQyMjk3JTtcbi8vLyAgICAgICB3aWR0aDogMTAwJTtcbi8vLyAgICAgfVxuLy8vICAgICAuZWxlbWVudDpsYXN0LWNoaWxkIHtcbi8vLyAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4vLy8gICAgIH1cbi8vLyAgIH1cblxuQGZ1bmN0aW9uIG5ldy1icmVha3BvaW50KCRxdWVyeTogJGZlYXR1cmUgJHZhbHVlICRjb2x1bW5zLCAkdG90YWwtY29sdW1uczogJGdyaWQtY29sdW1ucykge1xuICBAaWYgbGVuZ3RoKCRxdWVyeSkgPT0gMSB7XG4gICAgJHF1ZXJ5OiAkZGVmYXVsdC1mZWF0dXJlIG50aCgkcXVlcnksIDEpICR0b3RhbC1jb2x1bW5zO1xuICB9IEBlbHNlIGlmIGlzLWV2ZW4obGVuZ3RoKCRxdWVyeSkpIHtcbiAgICAkcXVlcnk6IGFwcGVuZCgkcXVlcnksICR0b3RhbC1jb2x1bW5zKTtcbiAgfVxuXG4gIEBpZiBpcy1ub3QoYmVsb25ncy10bygkcXVlcnksICR2aXN1YWwtZ3JpZC1icmVha3BvaW50cykpIHtcbiAgICAkdmlzdWFsLWdyaWQtYnJlYWtwb2ludHM6IGFwcGVuZCgkdmlzdWFsLWdyaWQtYnJlYWtwb2ludHMsICRxdWVyeSwgY29tbWEpICFnbG9iYWw7XG4gIH1cblxuICBAcmV0dXJuICRxdWVyeTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFNldHMgdGhlIHJlbGF0aXZlIHdpZHRoIG9mIGEgc2luZ2xlIGdyaWQgY29sdW1uLiBUaGUgdW5pdCB1c2VkIHNob3VsZCBiZSB0aGUgc2FtZSBvbmUgdXNlZCB0byBkZWZpbmUgYCRndXR0ZXJgLiBTZXQgd2l0aCBhIGAhZ2xvYmFsYCBmbGFnLlxuLy8vXG4vLy8gQHR5cGUgTnVtYmVyIChVbml0KVxuXG4kY29sdW1uOiA0LjIzNThlbSAhZGVmYXVsdDtcblxuLy8vIFNldHMgdGhlIHJlbGF0aXZlIHdpZHRoIG9mIGEgc2luZ2xlIGdyaWQgZ3V0dGVyLiBUaGUgdW5pdCB1c2VkIHNob3VsZCBiZSB0aGUgc2FtZSBvbmUgdXNlZCB0byBkZWZpbmUgYCRjb2x1bW5gLiBTZXQgd2l0aCB0aGUgYCFnbG9iYWxgIGZsYWcuXG4vLy9cbi8vLyBAdHlwZSBOdW1iZXIgKFVuaXQpXG5cbiRndXR0ZXI6IDEuNjE4ZW0gIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIHRoZSB0b3RhbCBudW1iZXIgb2YgY29sdW1ucyBpbiB0aGUgZ3JpZC4gSXRzIHZhbHVlIGNhbiBiZSBvdmVycmlkZGVuIGluc2lkZSBhIG1lZGlhIHF1ZXJ5IHVzaW5nIHRoZSBgbWVkaWEoKWAgbWl4aW4uIFNldCB3aXRoIHRoZSBgIWdsb2JhbGAgZmxhZy5cbi8vL1xuLy8vIEB0eXBlIE51bWJlciAoVW5pdGxlc3MpXG5cbiRncmlkLWNvbHVtbnM6IDEyICFkZWZhdWx0O1xuXG4vLy8gU2V0cyB0aGUgbWF4LXdpZHRoIHByb3BlcnR5IG9mIHRoZSBlbGVtZW50IHRoYXQgaW5jbHVkZXMgYG91dGVyLWNvbnRhaW5lcigpYC4gU2V0IHdpdGggdGhlIGAhZ2xvYmFsYCBmbGFnLlxuLy8vXG4vLy8gQHR5cGUgTnVtYmVyIChVbml0KVxuLy8vXG4kbWF4LXdpZHRoOiAxMjAwcHggIWRlZmF1bHQ7XG5cbi8vLyBXaGVuIHNldCB0byB0cnVlLCBpdCBzZXRzIHRoZSBib3gtc2l6aW5nIHByb3BlcnR5IG9mIGFsbCBlbGVtZW50cyB0byBgYm9yZGVyLWJveGAuIFNldCB3aXRoIGEgYCFnbG9iYWxgIGZsYWcuXG4vLy9cbi8vLyBAdHlwZSBCb29sXG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICBodG1sIHtcbi8vLyAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuLy8vXG4vLy8gICAqLCAqOjphZnRlciwgKjo6YmVmb3JlIHtcbi8vLyAgICAgYm94LXNpemluZzogaW5oZXJpdDtcbi8vLyAgIH1cblxuJGJvcmRlci1ib3gtc2l6aW5nOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gU2V0cyB0aGUgZGVmYXVsdCBbbWVkaWEgZmVhdHVyZV0oaHR0cDovL3d3dy53My5vcmcvVFIvY3NzMy1tZWRpYXF1ZXJpZXMvI21lZGlhKSB0aGF0IGBtZWRpYSgpYCBhbmQgYG5ldy1icmVha3BvaW50KClgIHJldmVydCB0byB3aGVuIG9ubHkgYSBicmVha3BvaW50IHZhbHVlIGlzIHBhc3NlZC4gU2V0IHdpdGggYSBgIWdsb2JhbGAgZmxhZy5cbi8vL1xuLy8vIEB0eXBlIFN0cmluZ1xuXG4kZGVmYXVsdC1mZWF0dXJlOiBtaW4td2lkdGg7IC8vIERlZmF1bHQgQG1lZGlhIGZlYXR1cmUgZm9yIHRoZSBicmVha3BvaW50KCkgbWl4aW5cblxuLy8vU2V0cyB0aGUgZGVmYXVsdCBsYXlvdXQgZGlyZWN0aW9uIG9mIHRoZSBncmlkLiBDYW4gYmUgYExUUmAgb3IgYFJUTGAuIFNldCB3aXRoIGEgYCFnbG9iYWxgIGZsYWcuXG4vLy9cbi8vL0B0eXBlIFN0cmluZ1xuXG4kZGVmYXVsdC1sYXlvdXQtZGlyZWN0aW9uOiBMVFIgIWRlZmF1bHQ7XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBEaXNwbGF5cyB0aGUgdmlzdWFsIGdyaWQgd2hlbiBzZXQgdG8gdHJ1ZS4gVGhlIG92ZXJsYWlkIGdyaWQgbWF5IGJlIGZldyBwaXhlbHMgb2ZmIGRlcGVuZGluZyBvbiB0aGUgYnJvd3NlcidzIHJlbmRlcmluZyBlbmdpbmUgYW5kIHBpeGVsIHJvdW5kaW5nIGFsZ29yaXRobS4gU2V0IHdpdGggdGhlIGAhZ2xvYmFsYCBmbGFnLlxuLy8vXG4vLy8gQHR5cGUgQm9vbFxuXG4kdmlzdWFsLWdyaWQ6IGZhbHNlICFkZWZhdWx0O1xuXG4vLy8gU2V0cyB0aGUgdmlzdWFsIGdyaWQgY29sb3IuIFNldCB3aXRoIGAhZ2xvYmFsYCBmbGFnLlxuLy8vXG4vLy8gQHR5cGUgQ29sb3JcblxuJHZpc3VhbC1ncmlkLWNvbG9yOiAjZWVlICFkZWZhdWx0O1xuXG4vLy8gU2V0cyB0aGUgYHotaW5kZXhgIHByb3BlcnR5IG9mIHRoZSB2aXN1YWwgZ3JpZC4gQ2FuIGJlIGBiYWNrYCAoYmVoaW5kIGNvbnRlbnQpIG9yIGBmcm9udGAgKGluIGZyb250IG9mIGNvbnRlbnQpLiBTZXQgd2l0aCBgIWdsb2JhbGAgZmxhZy5cbi8vL1xuLy8vIEB0eXBlIFN0cmluZ1xuXG4kdmlzdWFsLWdyaWQtaW5kZXg6IGJhY2sgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIHRoZSBvcGFjaXR5IHByb3BlcnR5IG9mIHRoZSB2aXN1YWwgZ3JpZC4gU2V0IHdpdGggYCFnbG9iYWxgIGZsYWcuXG4vLy9cbi8vLyBAdHlwZSBOdW1iZXIgKHVuaXRsZXNzKVxuXG4kdmlzdWFsLWdyaWQtb3BhY2l0eTogMC40ICFkZWZhdWx0O1xuXG4kdmlzdWFsLWdyaWQtYnJlYWtwb2ludHM6ICgpICFkZWZhdWx0O1xuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gRGlzYWJsZSBhbGwgZGVwcmVjYXRpb24gd2FybmluZ3MuIERlZmF1bHRzIHRvIGBmYWxzZWAuIFNldCB3aXRoIGEgYCFnbG9iYWxgIGZsYWcuXG4vLy9cbi8vLyBAdHlwZSBCb29sXG5cbiRkaXNhYmxlLXdhcm5pbmdzOiBmYWxzZSAhZGVmYXVsdDtcblxuQG1peGluIC1uZWF0LXdhcm4oJG1lc3NhZ2UpIHtcbiAgQGlmICRkaXNhYmxlLXdhcm5pbmdzID09IGZhbHNlIHtcbiAgICBAd2FybiBcIiN7JG1lc3NhZ2V9XCI7XG4gIH1cbn1cbiIsIiRjb2x1bW46IDY1cHg7XG4kZ3V0dGVyOiAxN3B4O1xuJGdyaWQtY29sdW1uczogMTI7XG4kbWF4LXdpZHRoOiAxMTQwcHg7XG4kZGVmYXVsdC1mZWF0dXJlOiBtYXgtd2lkdGg7XG5cbiRkZXNrdG9wOiAgICAgICAgICAgbmV3LWJyZWFrcG9pbnQobWF4LXdpZHRoIDExODBweCk7XG4kbGFwdG9wOiAgICAgICAgICAgIG5ldy1icmVha3BvaW50KG1heC13aWR0aCA5OTZweCk7XG4kdGFibGV0YWJvdmU6ICAgICAgIG5ldy1icmVha3BvaW50KG1pbi13aWR0aCA3NjlweCk7XG4kdGFibGV0OiAgICAgICAgICAgIG5ldy1icmVha3BvaW50KG1heC13aWR0aCA3NjhweCk7XG4kbW9iaWxlOiAgICAgICAgICAgIG5ldy1icmVha3BvaW50KG1heC13aWR0aCA0ODBweCk7XG5cbiRjb2xvckdyZXlEYXJrZXN0OiAjNDE0MTQxO1xuJGNvbG9yQmxhY2s6ICMyNjI0MjQ7XG4kY29sb3JXaGl0ZTogI2YzZjNmMztcbiRjb2xvckJsYWNrMjA6IHJnYmEoMzgsIDM2LCAzNiwgMC4yKTtcbiRjb2xvclJlZDogI2E5MTEwYztcbiRjb2xvckdyZXk6ICNlYmViZWI7XG4kY29sb3JHcmV5RGFyazogI2Q1ZDVkNTtcbiRjb2xvck1ldGFsOiAjNTY1YTVjO1xuJGNvbG9yV2hpdGVyOiAjZmFmYWZhO1xuJGNvbG9yR3JleURhcmtlcjogIzkyOTI5MjtcbiRjb2xvck9yYW5nZTogI2UwNTQyZjtcbiRjb2xvclJvdWdlOiAjOTQxZDIyO1xuJGNvbG9yVGVhbDogIzAwOWZkMjtcbiRjb2xvclNlYTogIzAzNTM4NTtcbiRjb2xvckdyZWVuOiAjMTRhYjkyO1xuJGNvbG9yR3JlZW5MaWdodDogIzllYzgzYztcbiRjb2xvckJyb3dMaWdodDogI2VkOWEzNjtcbiRjb2xvckdyZXlCcm93bjogIzZkNmM2MztcbiRjb2xvckxpcHN0aWNrOiAjZDgxNjY3O1xuXG4kZm9udFJvYm90bzogJ1JvYm90bycsIHNhbnMtc2VyaWY7XG5cbiRoZWFkZXJCYXJIZWlnaHQ6IDMwcHg7XG4kbW9iaWxlSGVhZGVySGVpZ2h0OiA2MHB4O1xuXG5AaW1wb3J0IHVybCgnaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3M/ZmFtaWx5PVJvYm90bzozMDAsNDAwLDQwMGksNTAwLDcwMCw5MDAnKTtcbiIsIi8vIE5lYXQgMS44LjBcbi8vIGh0dHA6Ly9uZWF0LmJvdXJib24uaW9cbi8vIENvcHlyaWdodCAyMDEyLTIwMTUgdGhvdWdodGJvdCwgaW5jLlxuLy8gTUlUIExpY2Vuc2VcblxuLy8gSGVscGVyc1xuQGltcG9ydCBcIm5lYXQtaGVscGVyc1wiO1xuXG4vLyBHcmlkXG5AaW1wb3J0IFwiZ3JpZC9wcml2YXRlXCI7XG5AaW1wb3J0IFwiZ3JpZC9ib3gtc2l6aW5nXCI7XG5AaW1wb3J0IFwiZ3JpZC9vbWVnYVwiO1xuQGltcG9ydCBcImdyaWQvb3V0ZXItY29udGFpbmVyXCI7XG5AaW1wb3J0IFwiZ3JpZC9zcGFuLWNvbHVtbnNcIjtcbkBpbXBvcnQgXCJncmlkL3Jvd1wiO1xuQGltcG9ydCBcImdyaWQvc2hpZnRcIjtcbkBpbXBvcnQgXCJncmlkL3BhZFwiO1xuQGltcG9ydCBcImdyaWQvZmlsbC1wYXJlbnRcIjtcbkBpbXBvcnQgXCJncmlkL21lZGlhXCI7XG5AaW1wb3J0IFwiZ3JpZC90by1kZXByZWNhdGVcIjtcbkBpbXBvcnQgXCJncmlkL3Zpc3VhbC1ncmlkXCI7XG5AaW1wb3J0IFwiZ3JpZC9kaXNwbGF5LWNvbnRleHRcIjtcbkBpbXBvcnQgXCJncmlkL2RpcmVjdGlvbi1jb250ZXh0XCI7XG4iLCIkcGFyZW50LWNvbHVtbnM6ICRncmlkLWNvbHVtbnMgIWRlZmF1bHQ7XG4kZmctY29sdW1uOiAkY29sdW1uO1xuJGZnLWd1dHRlcjogJGd1dHRlcjtcbiRmZy1tYXgtY29sdW1uczogJGdyaWQtY29sdW1ucztcbiRjb250YWluZXItZGlzcGxheS10YWJsZTogZmFsc2UgIWRlZmF1bHQ7XG4kbGF5b3V0LWRpcmVjdGlvbjogTFRSICFkZWZhdWx0O1xuXG5AZnVuY3Rpb24gZmxleC1ncmlkKCRjb2x1bW5zLCAkY29udGFpbmVyLWNvbHVtbnM6ICRmZy1tYXgtY29sdW1ucykge1xuICAkd2lkdGg6ICRjb2x1bW5zICogJGZnLWNvbHVtbiArICgkY29sdW1ucyAtIDEpICogJGZnLWd1dHRlcjtcbiAgJGNvbnRhaW5lci13aWR0aDogJGNvbnRhaW5lci1jb2x1bW5zICogJGZnLWNvbHVtbiArICgkY29udGFpbmVyLWNvbHVtbnMgLSAxKSAqICRmZy1ndXR0ZXI7XG4gIEByZXR1cm4gcGVyY2VudGFnZSgkd2lkdGggLyAkY29udGFpbmVyLXdpZHRoKTtcbn1cblxuQGZ1bmN0aW9uIGZsZXgtZ3V0dGVyKCRjb250YWluZXItY29sdW1uczogJGZnLW1heC1jb2x1bW5zLCAkZ3V0dGVyOiAkZmctZ3V0dGVyKSB7XG4gICRjb250YWluZXItd2lkdGg6ICRjb250YWluZXItY29sdW1ucyAqICRmZy1jb2x1bW4gKyAoJGNvbnRhaW5lci1jb2x1bW5zIC0gMSkgKiAkZmctZ3V0dGVyO1xuICBAcmV0dXJuIHBlcmNlbnRhZ2UoJGd1dHRlciAvICRjb250YWluZXItd2lkdGgpO1xufVxuXG5AZnVuY3Rpb24gZ3JpZC13aWR0aCgkbikge1xuICBAcmV0dXJuICRuICogJGd3LWNvbHVtbiArICgkbiAtIDEpICogJGd3LWd1dHRlcjtcbn1cblxuQGZ1bmN0aW9uIGdldC1wYXJlbnQtY29sdW1ucygkY29sdW1ucykge1xuICBAaWYgJGNvbHVtbnMgIT0gJGdyaWQtY29sdW1ucyB7XG4gICAgJHBhcmVudC1jb2x1bW5zOiAkY29sdW1ucyAhZ2xvYmFsO1xuICB9IEBlbHNlIHtcbiAgICAkcGFyZW50LWNvbHVtbnM6ICRncmlkLWNvbHVtbnMgIWdsb2JhbDtcbiAgfVxuXG4gIEByZXR1cm4gJHBhcmVudC1jb2x1bW5zO1xufVxuXG5AZnVuY3Rpb24gaXMtZGlzcGxheS10YWJsZSgkY29udGFpbmVyLWlzLWRpc3BsYXktdGFibGUsICRkaXNwbGF5KSB7XG4gIEByZXR1cm4gJGNvbnRhaW5lci1pcy1kaXNwbGF5LXRhYmxlID09IHRydWUgb3IgJGRpc3BsYXkgPT0gdGFibGU7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbkBpZiAkYm9yZGVyLWJveC1zaXppbmcgPT0gdHJ1ZSB7XG4gIGh0bWwgeyAvLyBodHRwOi8vYml0Lmx5LzFxazJ0VlJcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB9XG5cbiAgKiB7XG4gICAgJixcbiAgICAmOjphZnRlcixcbiAgICAmOjpiZWZvcmUge1xuICAgICAgYm94LXNpemluZzogaW5oZXJpdDtcbiAgICB9XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFJlbW92ZXMgdGhlIGVsZW1lbnQncyBndXR0ZXIgbWFyZ2luLCByZWdhcmRsZXNzIG9mIGl0cyBwb3NpdGlvbiBpbiB0aGUgZ3JpZCBoaWVyYXJjaHkgb3IgZGlzcGxheSBwcm9wZXJ0eS4gSXQgY2FuIHRhcmdldCBhIHNwZWNpZmljIGVsZW1lbnQsIG9yIGV2ZXJ5IGBudGgtY2hpbGRgIG9jY3VycmVuY2UuIFdvcmtzIG9ubHkgd2l0aCBgYmxvY2tgIGxheW91dHMuXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRxdWVyeSBbYmxvY2tdXG4vLy8gICBMaXN0IG9mIGFyZ3VtZW50cy4gU3VwcG9ydGVkIGFyZ3VtZW50cyBhcmUgYG50aC1jaGlsZGAgc2VsZWN0b3JzICh0YXJnZXRzIGEgc3BlY2lmaWMgcHNldWRvIGVsZW1lbnQpIGFuZCBgYXV0b2AgKHRhcmdldHMgYGxhc3QtY2hpbGRgKS5cbi8vL1xuLy8vICAgV2hlbiBwYXNzZWQgYW4gYG50aC1jaGlsZGAgYXJndW1lbnQgb2YgdHlwZSBgKm5gIHdpdGggYGJsb2NrYCBkaXNwbGF5LCB0aGUgb21lZ2EgbWl4aW4gYXV0b21hdGljYWxseSBhZGRzIGEgY2xlYXIgdG8gdGhlIGAqbisxYCB0aCBlbGVtZW50LiBOb3RlIHRoYXQgY29tcG9zaXRlIGFyZ3VtZW50cyBzdWNoIGFzIGAybisxYCBkbyBub3Qgc3VwcG9ydCB0aGlzIGZlYXR1cmUuXG4vLy9cbi8vLyAgICoqRGVwcmVjYXRpb24gd2FybmluZyoqOiBUaGUgb21lZ2EgbWl4aW4gd2lsbCBubyBsb25nZXIgdGFrZSBhIGAkZGlyZWN0aW9uYCBhcmd1bWVudC4gVG8gY2hhbmdlIHRoZSBsYXlvdXQgZGlyZWN0aW9uLCB1c2UgYHJvdygkZGlyZWN0aW9uKWAgb3Igc2V0IGAkZGVmYXVsdC1sYXlvdXQtZGlyZWN0aW9uYCBpbnN0ZWFkLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIG9tZWdhO1xuLy8vICAgfVxuLy8vXG4vLy8gICAubnRoLWVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBvbWVnYSg0bik7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIG1hcmdpbi1yaWdodDogMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLm50aC1lbGVtZW50Om50aC1jaGlsZCg0bikge1xuLy8vICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5udGgtZWxlbWVudDpudGgtY2hpbGQoNG4rMSkge1xuLy8vICAgICBjbGVhcjogbGVmdDtcbi8vLyAgIH1cblxuQG1peGluIG9tZWdhKCRxdWVyeTogYmxvY2ssICRkaXJlY3Rpb246IGRlZmF1bHQpIHtcbiAgJHRhYmxlOiBiZWxvbmdzLXRvKHRhYmxlLCAkcXVlcnkpO1xuICAkYXV0bzogYmVsb25ncy10byhhdXRvLCAkcXVlcnkpO1xuXG4gIEBpZiAkZGlyZWN0aW9uICE9IGRlZmF1bHQge1xuICAgIEBpbmNsdWRlIC1uZWF0LXdhcm4oXCJUaGUgb21lZ2EgbWl4aW4gd2lsbCBubyBsb25nZXIgdGFrZSBhICRkaXJlY3Rpb24gYXJndW1lbnQuIFRvIGNoYW5nZSB0aGUgbGF5b3V0IGRpcmVjdGlvbiwgdXNlIHRoZSBkaXJlY3Rpb24oKXsuLi59IG1peGluLlwiKTtcbiAgfSBAZWxzZSB7XG4gICAgJGRpcmVjdGlvbjogZ2V0LWRpcmVjdGlvbigkbGF5b3V0LWRpcmVjdGlvbiwgJGRlZmF1bHQtbGF5b3V0LWRpcmVjdGlvbik7XG4gIH1cblxuICBAaWYgJHRhYmxlIHtcbiAgICBAaW5jbHVkZSAtbmVhdC13YXJuKFwiVGhlIG9tZWdhIG1peGluIG5vIGxvbmdlciByZW1vdmVzIHBhZGRpbmcgaW4gdGFibGUgbGF5b3V0cy5cIik7XG4gIH1cblxuICBAaWYgbGVuZ3RoKCRxdWVyeSkgPT0gMSB7XG4gICAgQGlmICRhdXRvIHtcbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi0jeyRkaXJlY3Rpb259OiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBlbHNlIGlmIGNvbnRhaW5zLWRpc3BsYXktdmFsdWUoJHF1ZXJ5KSBhbmQgJHRhYmxlID09IGZhbHNlIHtcbiAgICAgIG1hcmdpbi0jeyRkaXJlY3Rpb259OiAwO1xuICAgIH1cblxuICAgIEBlbHNlIHtcbiAgICAgIEBpbmNsdWRlIG50aC1jaGlsZCgkcXVlcnksICRkaXJlY3Rpb24pO1xuICAgIH1cbiAgfSBAZWxzZSBpZiBsZW5ndGgoJHF1ZXJ5KSA9PSAyIHtcbiAgICBAaWYgJGF1dG8ge1xuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLSN7JGRpcmVjdGlvbn06IDA7XG4gICAgICB9XG4gICAgfSBAZWxzZSB7XG4gICAgICBAaW5jbHVkZSBudGgtY2hpbGQobnRoKCRxdWVyeSwgMSksICRkaXJlY3Rpb24pO1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgQGluY2x1ZGUgLW5lYXQtd2FybihcIlRvbyBtYW55IGFyZ3VtZW50cyBwYXNzZWQgdG8gdGhlIG9tZWdhKCkgbWl4aW4uXCIpO1xuICB9XG59XG5cbkBtaXhpbiBudGgtY2hpbGQoJHF1ZXJ5LCAkZGlyZWN0aW9uKSB7XG4gICRvcHBvc2l0ZS1kaXJlY3Rpb246IGdldC1vcHBvc2l0ZS1kaXJlY3Rpb24oJGRpcmVjdGlvbik7XG5cbiAgJjpudGgtY2hpbGQoI3skcXVlcnl9KSB7XG4gICAgbWFyZ2luLSN7JGRpcmVjdGlvbn06IDA7XG4gIH1cblxuICBAaWYgdHlwZS1vZigkcXVlcnkpID09IG51bWJlciBhbmQgdW5pdCgkcXVlcnkpID09IFwiblwiIHtcbiAgICAmOm50aC1jaGlsZCgjeyRxdWVyeX0rMSkge1xuICAgICAgY2xlYXI6ICRvcHBvc2l0ZS1kaXJlY3Rpb247XG4gICAgfVxuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBNYWtlcyBhbiBlbGVtZW50IGEgb3V0ZXIgY29udGFpbmVyIGJ5IGNlbnRlcmluZyBpdCBpbiB0aGUgdmlld3BvcnQsIGNsZWFyaW5nIGl0cyBmbG9hdHMsIGFuZCBzZXR0aW5nIGl0cyBgbWF4LXdpZHRoYC5cbi8vLyBBbHRob3VnaCBvcHRpb25hbCwgdXNpbmcgYG91dGVyLWNvbnRhaW5lcmAgaXMgcmVjb21tZW5kZWQuIFRoZSBtaXhpbiBjYW4gYmUgY2FsbGVkIG9uIG1vcmUgdGhhbiBvbmUgZWxlbWVudCBwZXIgcGFnZSwgYXMgbG9uZyBhcyB0aGV5IGFyZSBub3QgbmVzdGVkLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXIgW3VuaXRdfSAkbG9jYWwtbWF4LXdpZHRoIFskbWF4LXdpZHRoXVxuLy8vICAgTWF4IHdpZHRoIHRvIGJlIGFwcGxpZWQgdG8gdGhlIGVsZW1lbnQuIENhbiBiZSBhIHBlcmNlbnRhZ2Ugb3IgYSBtZWFzdXJlLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIG91dGVyLWNvbnRhaW5lcigxMDAlKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgbWF4LXdpZHRoOiAxMDAlO1xuLy8vICAgICBtYXJnaW4tbGVmdDogYXV0bztcbi8vLyAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuLy8vICAgfVxuLy8vXG4vLy8gICAuZWxlbWVudDo6YWZ0ZXIge1xuLy8vICAgICBjbGVhcjogYm90aDtcbi8vLyAgICAgY29udGVudDogXCJcIjtcbi8vLyAgICAgZGlzcGxheTogdGFibGU7XG4vLy8gICB9XG5cbkBtaXhpbiBvdXRlci1jb250YWluZXIoJGxvY2FsLW1heC13aWR0aDogJG1heC13aWR0aCkge1xuICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgbWF4LXdpZHRoOiAkbG9jYWwtbWF4LXdpZHRoO1xuICBtYXJnaW46IHtcbiAgICBsZWZ0OiBhdXRvO1xuICAgIHJpZ2h0OiBhdXRvO1xuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBTcGVjaWZpZXMgdGhlIG51bWJlciBvZiBjb2x1bW5zIGFuIGVsZW1lbnQgc2hvdWxkIHNwYW4uIElmIHRoZSBzZWxlY3RvciBpcyBuZXN0ZWQgdGhlIG51bWJlciBvZiBjb2x1bW5zIG9mIGl0cyBwYXJlbnQgZWxlbWVudCBzaG91bGQgYmUgcGFzc2VkIGFzIGFuIGFyZ3VtZW50IGFzIHdlbGwuXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRzcGFuXG4vLy8gICBBIGxpc3QgY29udGFpbmluZyBgJGNvbHVtbnNgLCB0aGUgdW5pdGxlc3MgbnVtYmVyIG9mIGNvbHVtbnMgdGhlIGVsZW1lbnQgc3BhbnMgKHJlcXVpcmVkKSwgYW5kIGAkY29udGFpbmVyLWNvbHVtbnNgLCB0aGUgbnVtYmVyIG9mIGNvbHVtbnMgdGhlIHBhcmVudCBlbGVtZW50IHNwYW5zIChvcHRpb25hbCkuXG4vLy9cbi8vLyAgIElmIG9ubHkgb25lIHZhbHVlIGlzIHBhc3NlZCwgaXQgaXMgYXNzdW1lZCB0aGF0IGl0J3MgYCRjb2x1bW5zYCBhbmQgdGhhdCB0aGF0IGAkY29udGFpbmVyLWNvbHVtbnNgIGlzIGVxdWFsIHRvIGAkZ3JpZC1jb2x1bW5zYCwgdGhlIHRvdGFsIG51bWJlciBvZiBjb2x1bW5zIGluIHRoZSBncmlkLlxuLy8vXG4vLy8gICBUaGUgdmFsdWVzIGNhbiBiZSBzZXBhcmF0ZWQgd2l0aCBhbnkgc3RyaW5nIHN1Y2ggYXMgYG9mYCwgYC9gLCBldGMuXG4vLy9cbi8vLyAgIGAkY29sdW1uc2AgYWxzbyBhY2NlcHRzIGRlY2ltYWxzIGZvciB3aGVuIGl0J3MgbmVjZXNzYXJ5IHRvIGJyZWFrIG91dCBvZiB0aGUgc3RhbmRhcmQgZ3JpZC4gRS5nLiBQYXNzaW5nIGAyLjRgIGluIGEgc3RhbmRhcmQgMTIgY29sdW1uIGdyaWQgd2lsbCBkaXZpZGUgdGhlIHJvdyBpbnRvIDUgY29sdW1ucy5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZGlzcGxheSBbYmxvY2tdXG4vLy8gICBTZXRzIHRoZSBkaXNwbGF5IHByb3BlcnR5IG9mIHRoZSBlbGVtZW50LiBCeSBkZWZhdWx0IGl0IHNldHMgdGhlIGRpc3BsYXkgcHJvcGVydHkgb2YgdGhlIGVsZW1lbnQgdG8gYGJsb2NrYC5cbi8vL1xuLy8vICAgSWYgcGFzc2VkIGBibG9jay1jb2xsYXBzZWAsIGl0IGFsc28gcmVtb3ZlcyB0aGUgbWFyZ2luIGd1dHRlciBieSBhZGRpbmcgaXQgdG8gdGhlIGVsZW1lbnQgd2lkdGguXG4vLy9cbi8vLyAgIElmIHBhc3NlZCBgdGFibGVgLCBpdCBzZXRzIHRoZSBkaXNwbGF5IHByb3BlcnR5IHRvIGB0YWJsZS1jZWxsYCBhbmQgY2FsY3VsYXRlcyB0aGUgd2lkdGggb2YgdGhlIGVsZW1lbnQgd2l0aG91dCB0YWtpbmcgZ3V0dGVycyBpbnRvIGNvbnNpZGVyYXRpb24uIFRoZSByZXN1bHQgZG9lcyBub3QgYWxpZ24gd2l0aCB0aGUgYmxvY2stYmFzZWQgZ3JpZC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoNik7XG4vLy9cbi8vLyAgICAubmVzdGVkLWVsZW1lbnQge1xuLy8vICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDIgb2YgNik7XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGRpc3BsYXk6IGJsb2NrO1xuLy8vICAgICBmbG9hdDogbGVmdDtcbi8vLyAgICAgbWFyZ2luLXJpZ2h0OiAyLjM1NzY1JTtcbi8vLyAgICAgd2lkdGg6IDQ4LjgyMTE3JTtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLmVsZW1lbnQ6bGFzdC1jaGlsZCB7XG4vLy8gICAgIG1hcmdpbi1yaWdodDogMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLmVsZW1lbnQgLm5lc3RlZC1lbGVtZW50IHtcbi8vLyAgICAgZGlzcGxheTogYmxvY2s7XG4vLy8gICAgIGZsb2F0OiBsZWZ0O1xuLy8vICAgICBtYXJnaW4tcmlnaHQ6IDQuODI5MTYlO1xuLy8vICAgICB3aWR0aDogMzAuMTEzODklO1xuLy8vICAgfVxuLy8vXG4vLy8gICAuZWxlbWVudCAubmVzdGVkLWVsZW1lbnQ6bGFzdC1jaGlsZCB7XG4vLy8gICAgIG1hcmdpbi1yaWdodDogMDtcbi8vLyAgIH1cblxuQG1peGluIHNwYW4tY29sdW1ucygkc3BhbjogJGNvbHVtbnMgb2YgJGNvbnRhaW5lci1jb2x1bW5zLCAkZGlzcGxheTogYmxvY2spIHtcbiAgJGNvbHVtbnM6IG50aCgkc3BhbiwgMSk7XG4gICRjb250YWluZXItY29sdW1uczogY29udGFpbmVyLXNwYW4oJHNwYW4pO1xuXG4gICRwYXJlbnQtY29sdW1uczogZ2V0LXBhcmVudC1jb2x1bW5zKCRjb250YWluZXItY29sdW1ucykgIWdsb2JhbDtcblxuICAkZGlyZWN0aW9uOiBnZXQtZGlyZWN0aW9uKCRsYXlvdXQtZGlyZWN0aW9uLCAkZGVmYXVsdC1sYXlvdXQtZGlyZWN0aW9uKTtcbiAgJG9wcG9zaXRlLWRpcmVjdGlvbjogZ2V0LW9wcG9zaXRlLWRpcmVjdGlvbigkZGlyZWN0aW9uKTtcblxuICAkZGlzcGxheS10YWJsZTogaXMtZGlzcGxheS10YWJsZSgkY29udGFpbmVyLWRpc3BsYXktdGFibGUsICRkaXNwbGF5KTtcblxuICBAaWYgJGRpc3BsYXktdGFibGUgIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIHdpZHRoOiBwZXJjZW50YWdlKCRjb2x1bW5zIC8gJGNvbnRhaW5lci1jb2x1bW5zKTtcbiAgfSBAZWxzZSB7XG4gICAgZmxvYXQ6ICN7JG9wcG9zaXRlLWRpcmVjdGlvbn07XG5cbiAgICBAaWYgJGRpc3BsYXkgIT0gbm8tZGlzcGxheSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICBAaWYgJGRpc3BsYXkgPT0gY29sbGFwc2Uge1xuICAgICAgQGluY2x1ZGUgLW5lYXQtd2FybihcIlRoZSAnY29sbGFwc2UnIGFyZ3VtZW50IHdpbGwgYmUgZGVwcmVjYXRlZC4gVXNlICdibG9jay1jb2xsYXBzZScgaW5zdGVhZC5cIik7XG4gICAgfVxuXG4gICAgQGlmICRkaXNwbGF5ID09IGNvbGxhcHNlIG9yICRkaXNwbGF5ID09IGJsb2NrLWNvbGxhcHNlIHtcbiAgICAgIHdpZHRoOiBmbGV4LWdyaWQoJGNvbHVtbnMsICRjb250YWluZXItY29sdW1ucykgKyBmbGV4LWd1dHRlcigkY29udGFpbmVyLWNvbHVtbnMpO1xuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICB3aWR0aDogZmxleC1ncmlkKCRjb2x1bW5zLCAkY29udGFpbmVyLWNvbHVtbnMpO1xuICAgICAgfVxuXG4gICAgfSBAZWxzZSB7XG4gICAgICBtYXJnaW4tI3skZGlyZWN0aW9ufTogZmxleC1ndXR0ZXIoJGNvbnRhaW5lci1jb2x1bW5zKTtcbiAgICAgIHdpZHRoOiBmbGV4LWdyaWQoJGNvbHVtbnMsICRjb250YWluZXItY29sdW1ucyk7XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi0jeyRkaXJlY3Rpb259OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gRGVzaWduYXRlcyB0aGUgZWxlbWVudCBhcyBhIHJvdyBvZiBjb2x1bW5zIGluIHRoZSBncmlkIGxheW91dC4gSXQgY2xlYXJzIHRoZSBmbG9hdHMgb24gdGhlIGVsZW1lbnQgYW5kIHNldHMgaXRzIGRpc3BsYXkgcHJvcGVydHkuIFJvd3MgY2FuJ3QgYmUgbmVzdGVkLCBidXQgdGhlcmUgY2FuIGJlIG1vcmUgdGhhbiBvbmUgcm93IGVsZW1lbnTigJR3aXRoIGRpZmZlcmVudCBkaXNwbGF5IHByb3BlcnRpZXPigJRwZXIgbGF5b3V0LlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRkaXNwbGF5IFtkZWZhdWx0XVxuLy8vICBTZXRzIHRoZSBkaXNwbGF5IHByb3BlcnR5IG9mIHRoZSBlbGVtZW50IGFuZCB0aGUgZGlzcGxheSBjb250ZXh0IHRoYXQgd2lsbCBiZSB1c2VkIGJ5IGl0cyBjaGlsZHJlbi4gQ2FuIGJlIGBibG9ja2Agb3IgYHRhYmxlYC5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZGlyZWN0aW9uIFskZGVmYXVsdC1sYXlvdXQtZGlyZWN0aW9uXVxuLy8vICBTZXRzIHRoZSBsYXlvdXQgZGlyZWN0aW9uLiBDYW4gYmUgYExUUmAgKGxlZnQtdG8tcmlnaHQpIG9yIGBSVExgIChyaWdodC10by1sZWZ0KS5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAuZWxlbWVudCB7XG4vLy8gICAgQGluY2x1ZGUgcm93KCk7XG4vLy8gIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgLmVsZW1lbnQge1xuLy8vICAgICp6b29tOiAxO1xuLy8vICAgIGRpc3BsYXk6IGJsb2NrO1xuLy8vICB9XG4vLy9cbi8vLyAuZWxlbWVudDpiZWZvcmUsIC5lbGVtZW50OmFmdGVyIHtcbi8vLyAgIGNvbnRlbnQ6IFwiIFwiO1xuLy8vICAgZGlzcGxheTogdGFibGU7XG4vLy8gfVxuLy8vXG4vLy8gLmVsZW1lbnQ6YWZ0ZXIge1xuLy8vICAgY2xlYXI6IGJvdGg7XG4vLy8gfVxuXG5AbWl4aW4gcm93KCRkaXNwbGF5OiBkZWZhdWx0LCAkZGlyZWN0aW9uOiAkZGVmYXVsdC1sYXlvdXQtZGlyZWN0aW9uKSB7XG4gIEBpZiAkZGlyZWN0aW9uICE9ICRkZWZhdWx0LWxheW91dC1kaXJlY3Rpb24ge1xuICAgIEBpbmNsdWRlIC1uZWF0LXdhcm4oXCJUaGUgJGRpcmVjdGlvbiBhcmd1bWVudCB3aWxsIGJlIGRlcHJlY2F0ZWQgaW4gZnV0dXJlIHZlcnNpb25zIGluIGZhdm9yIG9mIHRoZSBkaXJlY3Rpb24oKXsuLi59IG1peGluLlwiKTtcbiAgfVxuXG4gICRsYXlvdXQtZGlyZWN0aW9uOiAkZGlyZWN0aW9uICFnbG9iYWw7XG5cbiAgQGlmICRkaXNwbGF5ICE9IGRlZmF1bHQge1xuICAgIEBpbmNsdWRlIC1uZWF0LXdhcm4oXCJUaGUgJGRpc3BsYXkgYXJndW1lbnQgd2lsbCBiZSBkZXByZWNhdGVkIGluIGZ1dHVyZSB2ZXJzaW9ucyBpbiBmYXZvciBvZiB0aGUgZGlzcGxheSgpey4uLn0gbWl4aW4uXCIpO1xuICB9XG5cbiAgQGlmICRkaXNwbGF5ID09IHRhYmxlIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBAaW5jbHVkZSBmaWxsLXBhcmVudDtcbiAgICB0YWJsZS1sYXlvdXQ6IGZpeGVkO1xuICAgICRjb250YWluZXItZGlzcGxheS10YWJsZTogdHJ1ZSAhZ2xvYmFsO1xuICB9IEBlbHNlIHtcbiAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICAkY29udGFpbmVyLWRpc3BsYXktdGFibGU6IGZhbHNlICFnbG9iYWw7XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFRyYW5zbGF0ZXMgYW4gZWxlbWVudCBob3Jpem9udGFsbHkgYnkgYSBudW1iZXIgb2YgY29sdW1ucy4gUG9zaXRpdmUgYXJndW1lbnRzIHNoaWZ0IHRoZSBlbGVtZW50IHRvIHRoZSBhY3RpdmUgbGF5b3V0IGRpcmVjdGlvbiwgd2hpbGUgbmVnYXRpdmUgb25lcyBzaGlmdCBpdCB0byB0aGUgb3Bwb3NpdGUgZGlyZWN0aW9uLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXIgKHVuaXRsZXNzKX0gJG4tY29sdW1ucyBbMV1cbi8vLyAgIE51bWJlciBvZiBjb2x1bW5zIGJ5IHdoaWNoIHRoZSBlbGVtZW50IHNoaWZ0cy5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBzaGlmdCgtMyk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1Mgb3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIG1hcmdpbi1sZWZ0OiAtMjUuNTg5NDElO1xuLy8vICAgfVxuXG5AbWl4aW4gc2hpZnQoJG4tY29sdW1uczogMSkge1xuICBAaW5jbHVkZSBzaGlmdC1pbi1jb250ZXh0KCRuLWNvbHVtbnMpO1xufVxuXG4vLy8gVHJhbnNsYXRlcyBhbiBlbGVtZW50IGhvcml6b250YWxseSBieSBhIG51bWJlciBvZiBjb2x1bW5zLCBpbiBhIHNwZWNpZmljIG5lc3RpbmcgY29udGV4dC5cbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHNoaWZ0XG4vLy8gICBBIGxpc3QgY29udGFpbmluZyB0aGUgbnVtYmVyIG9mIGNvbHVtbnMgdG8gc2hpZnQgKGAkY29sdW1uc2ApIGFuZCB0aGUgbnVtYmVyIG9mIGNvbHVtbnMgb2YgdGhlIHBhcmVudCBlbGVtZW50IChgJGNvbnRhaW5lci1jb2x1bW5zYCkuXG4vLy9cbi8vLyAgIFRoZSB0d28gdmFsdWVzIGNhbiBiZSBzZXBhcmF0ZWQgd2l0aCBhbnkgc3RyaW5nIHN1Y2ggYXMgYG9mYCwgYC9gLCBldGMuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgc2hpZnQoLTMgb2YgNik7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1Mgb3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIG1hcmdpbi1sZWZ0OiAtNTIuNDE0NTglO1xuLy8vICAgfVxuXG5AbWl4aW4gc2hpZnQtaW4tY29udGV4dCgkc2hpZnQ6ICRjb2x1bW5zIG9mICRjb250YWluZXItY29sdW1ucykge1xuICAkbi1jb2x1bW5zOiBudGgoJHNoaWZ0LCAxKTtcbiAgJHBhcmVudC1jb2x1bW5zOiBjb250YWluZXItc2hpZnQoJHNoaWZ0KSAhZ2xvYmFsO1xuXG4gICRkaXJlY3Rpb246IGdldC1kaXJlY3Rpb24oJGxheW91dC1kaXJlY3Rpb24sICRkZWZhdWx0LWxheW91dC1kaXJlY3Rpb24pO1xuICAkb3Bwb3NpdGUtZGlyZWN0aW9uOiBnZXQtb3Bwb3NpdGUtZGlyZWN0aW9uKCRkaXJlY3Rpb24pO1xuXG4gIG1hcmdpbi0jeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiAkbi1jb2x1bW5zICogZmxleC1ncmlkKDEsICRwYXJlbnQtY29sdW1ucykgKyAkbi1jb2x1bW5zICogZmxleC1ndXR0ZXIoJHBhcmVudC1jb2x1bW5zKTtcblxuICAvLyBSZXNldCBuZXN0aW5nIGNvbnRleHRcbiAgJHBhcmVudC1jb2x1bW5zOiAkZ3JpZC1jb2x1bW5zICFnbG9iYWw7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBBZGRzIHBhZGRpbmcgdG8gdGhlIGVsZW1lbnQuXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRwYWRkaW5nIFtmbGV4LWd1dHRlcigpXVxuLy8vICAgQSBsaXN0IG9mIHBhZGRpbmcgdmFsdWUocykgdG8gdXNlLiBQYXNzaW5nIGBkZWZhdWx0YCBpbiB0aGUgbGlzdCB3aWxsIHJlc3VsdCBpbiB1c2luZyB0aGUgZ3V0dGVyIHdpZHRoIGFzIGEgcGFkZGluZyB2YWx1ZS5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBwYWQoMzBweCAtMjBweCAxMHB4IGRlZmF1bHQpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBwYWRkaW5nOiAzMHB4IC0yMHB4IDEwcHggMi4zNTc2NSU7XG4vLy8gICB9XG5cbkBtaXhpbiBwYWQoJHBhZGRpbmc6IGZsZXgtZ3V0dGVyKCkpIHtcbiAgJHBhZGRpbmctbGlzdDogbnVsbDtcbiAgQGVhY2ggJHZhbHVlIGluICRwYWRkaW5nIHtcbiAgICAkdmFsdWU6IGlmKCR2YWx1ZSA9PSAnZGVmYXVsdCcsIGZsZXgtZ3V0dGVyKCksICR2YWx1ZSk7XG4gICAgJHBhZGRpbmctbGlzdDogam9pbigkcGFkZGluZy1saXN0LCAkdmFsdWUpO1xuICB9XG4gIHBhZGRpbmc6ICRwYWRkaW5nLWxpc3Q7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBGb3JjZXMgdGhlIGVsZW1lbnQgdG8gZmlsbCBpdHMgcGFyZW50IGNvbnRhaW5lci5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBmaWxsLXBhcmVudDtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgd2lkdGg6IDEwMCU7XG4vLy8gICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4vLy8gICB9XG5cbkBtaXhpbiBmaWxsLXBhcmVudCgpIHtcbiAgd2lkdGg6IDEwMCU7XG5cbiAgQGlmICRib3JkZXItYm94LXNpemluZyA9PSBmYWxzZSB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gT3V0cHV0cyBhIG1lZGlhLXF1ZXJ5IGJsb2NrIHdpdGggYW4gb3B0aW9uYWwgZ3JpZCBjb250ZXh0ICh0aGUgdG90YWwgbnVtYmVyIG9mIGNvbHVtbnMgdXNlZCBpbiB0aGUgZ3JpZCkuXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRxdWVyeVxuLy8vICAgQSBsaXN0IG9mIG1lZGlhIHF1ZXJ5IGZlYXR1cmVzIGFuZCB2YWx1ZXMsIHdoZXJlIGVhY2ggYCRmZWF0dXJlYCBzaG91bGQgaGF2ZSBhIGNvcnJlc3BvbmRpbmcgYCR2YWx1ZWAuXG4vLy8gICBGb3IgYSBsaXN0IG9mIHZhbGlkIHZhbHVlcyBmb3IgYCRmZWF0dXJlYCwgY2xpY2sgW2hlcmVdKGh0dHA6Ly93d3cudzMub3JnL1RSL2NzczMtbWVkaWFxdWVyaWVzLyNtZWRpYTEpLlxuLy8vXG4vLy8gICBJZiB0aGVyZSBpcyBvbmx5IGEgc2luZ2xlIGAkdmFsdWVgIGluIGAkcXVlcnlgLCBgJGRlZmF1bHQtZmVhdHVyZWAgaXMgZ29pbmcgdG8gYmUgdXNlZC5cbi8vL1xuLy8vICAgVGhlIG51bWJlciBvZiB0b3RhbCBjb2x1bW5zIGluIHRoZSBncmlkIGNhbiBiZSBzZXQgYnkgcGFzc2luZyBgJGNvbHVtbnNgIGF0IHRoZSBlbmQgb2YgdGhlIGxpc3QgKG92ZXJyaWRlcyBgJHRvdGFsLWNvbHVtbnNgKS5cbi8vL1xuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXIgKHVuaXRsZXNzKX0gJHRvdGFsLWNvbHVtbnMgWyRncmlkLWNvbHVtbnNdXG4vLy8gICAtIE51bWJlciBvZiBjb2x1bW5zIHRvIHVzZSBpbiB0aGUgbmV3IGdyaWQgY29udGV4dC4gQ2FuIGJlIHNldCBhcyBhIHNob3J0aGFuZCBpbiB0aGUgZmlyc3QgcGFyYW1ldGVyLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAucmVzcG9uc2l2ZS1lbGVtZW50IHtcbi8vLyAgICAgIEBpbmNsdWRlIG1lZGlhKDc2OXB4KSB7XG4vLy8gICAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg2KTtcbi8vLyAgICAgIH1cbi8vLyAgIH1cbi8vL1xuLy8vICAubmV3LWNvbnRleHQtZWxlbWVudCB7XG4vLy8gICAgQGluY2x1ZGUgbWVkaWEobWluLXdpZHRoIDMyMHB4IG1heC13aWR0aCA0ODBweCwgNikge1xuLy8vICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDYpO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjlweCkge1xuLy8vICAgIC5yZXNwb25zaXZlLWVsZW1lbnQge1xuLy8vICAgICAgZGlzcGxheTogYmxvY2s7XG4vLy8gICAgICBmbG9hdDogbGVmdDtcbi8vLyAgICAgIG1hcmdpbi1yaWdodDogMi4zNTc2NSU7XG4vLy8gICAgICB3aWR0aDogNDguODIxMTclO1xuLy8vICAgIH1cbi8vL1xuLy8vICAgIC5yZXNwb25zaXZlLWVsZW1lbnQ6bGFzdC1jaGlsZCB7XG4vLy8gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMzIwcHgpIGFuZCAobWF4LXdpZHRoOiA0ODBweCkge1xuLy8vICAgIC5uZXctY29udGV4dC1lbGVtZW50IHtcbi8vLyAgICAgIGRpc3BsYXk6IGJsb2NrO1xuLy8vICAgICAgZmxvYXQ6IGxlZnQ7XG4vLy8gICAgICBtYXJnaW4tcmlnaHQ6IDQuODI5MTYlO1xuLy8vICAgICAgd2lkdGg6IDEwMCU7XG4vLy8gICAgfVxuLy8vXG4vLy8gICAgLm5ldy1jb250ZXh0LWVsZW1lbnQ6bGFzdC1jaGlsZCB7XG4vLy8gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4vLy8gICAgfVxuLy8vICB9XG5cbkBtaXhpbiBtZWRpYSgkcXVlcnk6ICRmZWF0dXJlICR2YWx1ZSAkY29sdW1ucywgJHRvdGFsLWNvbHVtbnM6ICRncmlkLWNvbHVtbnMpIHtcbiAgQGlmIGxlbmd0aCgkcXVlcnkpID09IDEge1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kICgkZGVmYXVsdC1mZWF0dXJlOiBudGgoJHF1ZXJ5LCAxKSkge1xuICAgICAgJGRlZmF1bHQtZ3JpZC1jb2x1bW5zOiAkZ3JpZC1jb2x1bW5zO1xuICAgICAgJGdyaWQtY29sdW1uczogJHRvdGFsLWNvbHVtbnMgIWdsb2JhbDtcbiAgICAgIEBjb250ZW50O1xuICAgICAgJGdyaWQtY29sdW1uczogJGRlZmF1bHQtZ3JpZC1jb2x1bW5zICFnbG9iYWw7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICAkbG9vcC10bzogbGVuZ3RoKCRxdWVyeSk7XG4gICAgJG1lZGlhLXF1ZXJ5OiBcInNjcmVlbiBhbmQgXCI7XG4gICAgJGRlZmF1bHQtZ3JpZC1jb2x1bW5zOiAkZ3JpZC1jb2x1bW5zO1xuICAgICRncmlkLWNvbHVtbnM6ICR0b3RhbC1jb2x1bW5zICFnbG9iYWw7XG5cbiAgICBAaWYgaXMtbm90KGlzLWV2ZW4obGVuZ3RoKCRxdWVyeSkpKSB7XG4gICAgICAkZ3JpZC1jb2x1bW5zOiBudGgoJHF1ZXJ5LCAkbG9vcC10bykgIWdsb2JhbDtcbiAgICAgICRsb29wLXRvOiAkbG9vcC10byAtIDE7XG4gICAgfVxuXG4gICAgJGk6IDE7XG4gICAgQHdoaWxlICRpIDw9ICRsb29wLXRvIHtcbiAgICAgICRtZWRpYS1xdWVyeTogJG1lZGlhLXF1ZXJ5ICsgXCIoXCIgKyBudGgoJHF1ZXJ5LCAkaSkgKyBcIjogXCIgKyBudGgoJHF1ZXJ5LCAkaSArIDEpICsgXCIpIFwiO1xuXG4gICAgICBAaWYgKCRpICsgMSkgIT0gJGxvb3AtdG8ge1xuICAgICAgICAkbWVkaWEtcXVlcnk6ICRtZWRpYS1xdWVyeSArIFwiYW5kIFwiO1xuICAgICAgfVxuXG4gICAgICAkaTogJGkgKyAyO1xuICAgIH1cblxuICAgIEBtZWRpYSAjeyRtZWRpYS1xdWVyeX0ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgICAkZ3JpZC1jb2x1bW5zOiAkZGVmYXVsdC1ncmlkLWNvbHVtbnMgIWdsb2JhbDtcbiAgICB9XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuQG1peGluIGJyZWFrcG9pbnQoJHF1ZXJ5OiRmZWF0dXJlICR2YWx1ZSAkY29sdW1ucywgJHRvdGFsLWNvbHVtbnM6ICRncmlkLWNvbHVtbnMpIHtcbiAgQGluY2x1ZGUgLW5lYXQtd2FybihcIlRoZSBicmVha3BvaW50KCkgbWl4aW4gd2FzIHJlbmFtZWQgdG8gbWVkaWEoKSBpbiBOZWF0IDEuMC4gUGxlYXNlIHVwZGF0ZSB5b3VyIHByb2plY3Qgd2l0aCB0aGUgbmV3IHN5bnRheCBiZWZvcmUgdGhlIG5leHQgdmVyc2lvbiBidW1wLlwiKTtcblxuICBAaWYgbGVuZ3RoKCRxdWVyeSkgPT0gMSB7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKCRkZWZhdWx0LWZlYXR1cmU6IG50aCgkcXVlcnksIDEpKSB7XG4gICAgICAkZGVmYXVsdC1ncmlkLWNvbHVtbnM6ICRncmlkLWNvbHVtbnM7XG4gICAgICAkZ3JpZC1jb2x1bW5zOiAkdG90YWwtY29sdW1ucztcbiAgICAgIEBjb250ZW50O1xuICAgICAgJGdyaWQtY29sdW1uczogJGRlZmF1bHQtZ3JpZC1jb2x1bW5zO1xuICAgIH1cbiAgfSBAZWxzZSBpZiBsZW5ndGgoJHF1ZXJ5KSA9PSAyIHtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobnRoKCRxdWVyeSwgMSk6IG50aCgkcXVlcnksIDIpKSB7XG4gICAgICAkZGVmYXVsdC1ncmlkLWNvbHVtbnM6ICRncmlkLWNvbHVtbnM7XG4gICAgICAkZ3JpZC1jb2x1bW5zOiAkdG90YWwtY29sdW1ucztcbiAgICAgIEBjb250ZW50O1xuICAgICAgJGdyaWQtY29sdW1uczogJGRlZmF1bHQtZ3JpZC1jb2x1bW5zO1xuICAgIH1cbiAgfSBAZWxzZSBpZiBsZW5ndGgoJHF1ZXJ5KSA9PSAzIHtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobnRoKCRxdWVyeSwgMSk6IG50aCgkcXVlcnksIDIpKSB7XG4gICAgICAkZGVmYXVsdC1ncmlkLWNvbHVtbnM6ICRncmlkLWNvbHVtbnM7XG4gICAgICAkZ3JpZC1jb2x1bW5zOiBudGgoJHF1ZXJ5LCAzKTtcbiAgICAgIEBjb250ZW50O1xuICAgICAgJGdyaWQtY29sdW1uczogJGRlZmF1bHQtZ3JpZC1jb2x1bW5zO1xuICAgIH1cbiAgfSBAZWxzZSBpZiBsZW5ndGgoJHF1ZXJ5KSA9PSA0IHtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobnRoKCRxdWVyeSwgMSk6IG50aCgkcXVlcnksIDIpKSBhbmQgKG50aCgkcXVlcnksIDMpOiBudGgoJHF1ZXJ5LCA0KSkge1xuICAgICAgJGRlZmF1bHQtZ3JpZC1jb2x1bW5zOiAkZ3JpZC1jb2x1bW5zO1xuICAgICAgJGdyaWQtY29sdW1uczogJHRvdGFsLWNvbHVtbnM7XG4gICAgICBAY29udGVudDtcbiAgICAgICRncmlkLWNvbHVtbnM6ICRkZWZhdWx0LWdyaWQtY29sdW1ucztcbiAgICB9XG4gIH0gQGVsc2UgaWYgbGVuZ3RoKCRxdWVyeSkgPT0gNSB7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG50aCgkcXVlcnksIDEpOiBudGgoJHF1ZXJ5LCAyKSkgYW5kIChudGgoJHF1ZXJ5LCAzKTogbnRoKCRxdWVyeSwgNCkpIHtcbiAgICAgICRkZWZhdWx0LWdyaWQtY29sdW1uczogJGdyaWQtY29sdW1ucztcbiAgICAgICRncmlkLWNvbHVtbnM6IG50aCgkcXVlcnksIDUpO1xuICAgICAgQGNvbnRlbnQ7XG4gICAgICAkZ3JpZC1jb2x1bW5zOiAkZGVmYXVsdC1ncmlkLWNvbHVtbnM7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAaW5jbHVkZSAtbmVhdC13YXJuKFwiV3JvbmcgbnVtYmVyIG9mIGFyZ3VtZW50cyBmb3IgYnJlYWtwb2ludCgpLiBSZWFkIHRoZSBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGRldGFpbHMuXCIpO1xuICB9XG59XG5cbkBtaXhpbiBudGgtb21lZ2EoJG50aCwgJGRpc3BsYXk6IGJsb2NrLCAkZGlyZWN0aW9uOiBkZWZhdWx0KSB7XG4gIEBpbmNsdWRlIC1uZWF0LXdhcm4oXCJUaGUgbnRoLW9tZWdhKCkgbWl4aW4gaXMgZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSBvbWVnYSgpIGluc3RlYWQuXCIpO1xuICBAaW5jbHVkZSBvbWVnYSgkbnRoICRkaXNwbGF5LCAkZGlyZWN0aW9uKTtcbn1cblxuLy8vIFJlc2V0cyB0aGUgYWN0aXZlIGRpc3BsYXkgcHJvcGVydHkgdG8gYGJsb2NrYC4gUGFydGljdWxhcmx5IHVzZWZ1bCB3aGVuIGNoYW5naW5nIHRoZSBkaXNwbGF5IHByb3BlcnR5IGluIGEgc2luZ2xlIHJvdy5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSByb3codGFibGUpO1xuLy8vICAgICAvLyBDb250ZXh0IGNoYW5nZWQgdG8gdGFibGUgZGlzcGxheVxuLy8vICAgfVxuLy8vXG4vLy8gICBAaW5jbHVkZSByZXNldC1kaXNwbGF5O1xuLy8vICAgLy8gQ29udGV4dCBpcyByZXNldCB0byBibG9jayBkaXNwbGF5XG5cbkBtaXhpbiByZXNldC1kaXNwbGF5IHtcbiAgJGNvbnRhaW5lci1kaXNwbGF5LXRhYmxlOiBmYWxzZSAhZ2xvYmFsO1xuICBAaW5jbHVkZSAtbmVhdC13YXJuKFwiUmVzZXR0aW5nICRkaXNwbGF5IHdpbGwgYmUgZGVwcmVjYXRlZCBpbiBmdXR1cmUgdmVyc2lvbnMgaW4gZmF2b3Igb2YgdGhlIGRpc3BsYXkoKXsuLi59IG1peGluLlwiKTtcbn1cblxuLy8vIFJlc2V0cyB0aGUgYWN0aXZlIGxheW91dCBkaXJlY3Rpb24gdG8gdGhlIGRlZmF1bHQgdmFsdWUgc2V0IGluIGAkZGVmYXVsdC1sYXlvdXQtZGlyZWN0aW9uYC4gUGFydGljdWxhcmx5IHVzZWZ1bCB3aGVuIGNoYW5naW5nIHRoZSBsYXlvdXQgZGlyZWN0aW9uIGluIGEgc2luZ2xlIHJvdy5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSByb3coJGRpcmVjdGlvbjogUlRMKTtcbi8vLyAgICAgLy8gQ29udGV4dCBjaGFuZ2VkIHRvIHJpZ2h0LXRvLWxlZnRcbi8vLyAgIH1cbi8vL1xuLy8vICAgQGluY2x1ZGUgcmVzZXQtbGF5b3V0LWRpcmVjdGlvbjtcbi8vLyAgIC8vIENvbnRleHQgaXMgcmVzZXQgdG8gbGVmdC10by1yaWdodFxuXG5AbWl4aW4gcmVzZXQtbGF5b3V0LWRpcmVjdGlvbiB7XG4gICRsYXlvdXQtZGlyZWN0aW9uOiAkZGVmYXVsdC1sYXlvdXQtZGlyZWN0aW9uICFnbG9iYWw7XG4gIEBpbmNsdWRlIC1uZWF0LXdhcm4oXCJSZXNldHRpbmcgJGRpcmVjdGlvbiB3aWxsIGJlIGRlcHJlY2F0ZWQgaW4gZnV0dXJlIHZlcnNpb25zIGluIGZhdm9yIG9mIHRoZSBkaXJlY3Rpb24oKXsuLi59IG1peGluLlwiKTtcbn1cblxuLy8vIFJlc2V0cyBib3RoIHRoZSBhY3RpdmUgbGF5b3V0IGRpcmVjdGlvbiBhbmQgdGhlIGFjdGl2ZSBkaXNwbGF5IHByb3BlcnR5LlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIHJvdyh0YWJsZSwgUlRMKTtcbi8vLyAgICAgLy8gQ29udGV4dCBjaGFuZ2VkIHRvIHRhYmxlIHRhYmxlIGFuZCByaWdodC10by1sZWZ0XG4vLy8gICB9XG4vLy9cbi8vLyAgIEBpbmNsdWRlIHJlc2V0LWFsbDtcbi8vLyAgIC8vIENvbnRleHQgaXMgcmVzZXQgdG8gYmxvY2sgZGlzcGxheSBhbmQgbGVmdC10by1yaWdodFxuXG5AbWl4aW4gcmVzZXQtYWxsIHtcbiAgQGluY2x1ZGUgcmVzZXQtZGlzcGxheTtcbiAgQGluY2x1ZGUgcmVzZXQtbGF5b3V0LWRpcmVjdGlvbjtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuQG1peGluIGdyaWQtY29sdW1uLWdyYWRpZW50KCR2YWx1ZXMuLi4pIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQobGVmdCwgJHZhbHVlcyk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC1tb3otbGluZWFyLWdyYWRpZW50KGxlZnQsICR2YWx1ZXMpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtbXMtbGluZWFyLWdyYWRpZW50KGxlZnQsICR2YWx1ZXMpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQobGVmdCwgJHZhbHVlcyk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVucXVvdGUoXCJsaW5lYXItZ3JhZGllbnQodG8gbGVmdCwgI3skdmFsdWVzfSlcIik7XG59XG5cbkBpZiAkdmlzdWFsLWdyaWQgPT0gdHJ1ZSBvciAkdmlzdWFsLWdyaWQgPT0geWVzIHtcbiAgYm9keTpiZWZvcmUge1xuICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uLWdyYWRpZW50KGdyYWRpZW50LXN0b3BzKCRncmlkLWNvbHVtbnMpKTtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbGVmdDogMDtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBtYXgtd2lkdGg6ICRtYXgtd2lkdGg7XG4gICAgb3BhY2l0eTogJHZpc3VhbC1ncmlkLW9wYWNpdHk7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHJpZ2h0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgQGlmICR2aXN1YWwtZ3JpZC1pbmRleCA9PSBiYWNrIHtcbiAgICAgIHotaW5kZXg6IC0xO1xuICAgIH1cblxuICAgIEBlbHNlIGlmICR2aXN1YWwtZ3JpZC1pbmRleCA9PSBmcm9udCB7XG4gICAgICB6LWluZGV4OiA5OTk5O1xuICAgIH1cblxuICAgIEBlYWNoICRicmVha3BvaW50IGluICR2aXN1YWwtZ3JpZC1icmVha3BvaW50cyB7XG4gICAgICBAaWYgJGJyZWFrcG9pbnQge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgkYnJlYWtwb2ludCkge1xuICAgICAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uLWdyYWRpZW50KGdyYWRpZW50LXN0b3BzKCRncmlkLWNvbHVtbnMpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQ2hhbmdlcyB0aGUgZGlzcGxheSBwcm9wZXJ0eSB1c2VkIGJ5IG90aGVyIG1peGlucyBjYWxsZWQgaW4gdGhlIGNvZGUgYmxvY2sgYXJndW1lbnQuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGRpc3BsYXkgW2Jsb2NrXVxuLy8vICAgRGlzcGxheSB2YWx1ZSB0byBiZSB1c2VkIHdpdGhpbiB0aGUgYmxvY2suIENhbiBiZSBgdGFibGVgIG9yIGBibG9ja2AuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzXG4vLy8gICBAaW5jbHVkZSBkaXNwbGF5LWNvbnRleHQodGFibGUpIHtcbi8vLyAgICAuZGlzcGxheS10YWJsZSB7XG4vLy8gICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoNik7XG4vLy8gICAgIH1cbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzc1xuLy8vICAgLmRpc3BsYXktdGFibGUge1xuLy8vICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbi8vLyAgICAgIC4uLlxuLy8vICAgfVxuXG5AbWl4aW4gZGlzcGxheS1jb250ZXh0KCRkaXNwbGF5OiBibG9jaykge1xuICAkc2NvcGUtZGlzcGxheTogJGNvbnRhaW5lci1kaXNwbGF5LXRhYmxlO1xuICAkY29udGFpbmVyLWRpc3BsYXktdGFibGU6ICRkaXNwbGF5ID09IHRhYmxlICFnbG9iYWw7XG5cbiAgQGNvbnRlbnQ7XG5cbiAgJGNvbnRhaW5lci1kaXNwbGF5LXRhYmxlOiAkc2NvcGUtZGlzcGxheSAhZ2xvYmFsO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQ2hhbmdlcyB0aGUgZGlyZWN0aW9uIHByb3BlcnR5IHVzZWQgYnkgb3RoZXIgbWl4aW5zIGNhbGxlZCBpbiB0aGUgY29kZSBibG9jayBhcmd1bWVudC5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZGlyZWN0aW9uIFtsZWZ0LXRvLXJpZ2h0XVxuLy8vICAgTGF5b3V0IGRpcmVjdGlvbiB0byBiZSB1c2VkIHdpdGhpbiB0aGUgYmxvY2suIENhbiBiZSBgbGVmdC10by1yaWdodGAgb3IgYHJpZ2h0LXRvLWxlZnRgLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICBAaW5jbHVkZSBkaXJlY3Rpb24tY29udGV4dChyaWdodC10by1sZWZ0KSB7XG4vLy8gICAgLnJpZ2h0LXRvLWxlZnQtYmxvY2sge1xuLy8vICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDYpO1xuLy8vICAgICB9XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAucmlnaHQtdG8tbGVmdC1ibG9jayB7XG4vLy8gICAgIGZsb2F0OiByaWdodDtcbi8vLyAgICAgIC4uLlxuLy8vICAgfVxuXG5AbWl4aW4gZGlyZWN0aW9uLWNvbnRleHQoJGRpcmVjdGlvbjogbGVmdC10by1yaWdodCkge1xuICAkc2NvcGUtZGlyZWN0aW9uOiAkbGF5b3V0LWRpcmVjdGlvbjtcblxuICBAaWYgdG8tbG93ZXItY2FzZSgkZGlyZWN0aW9uKSA9PSBcImxlZnQtdG8tcmlnaHRcIiB7XG4gICAgJGxheW91dC1kaXJlY3Rpb246IExUUiAhZ2xvYmFsO1xuICB9IEBlbHNlIGlmIHRvLWxvd2VyLWNhc2UoJGRpcmVjdGlvbikgPT0gXCJyaWdodC10by1sZWZ0XCIge1xuICAgICRsYXlvdXQtZGlyZWN0aW9uOiBSVEwgIWdsb2JhbDtcbiAgfVxuXG4gIEBjb250ZW50O1xuXG4gICRsYXlvdXQtZGlyZWN0aW9uOiAkc2NvcGUtZGlyZWN0aW9uICFnbG9iYWw7XG59XG4iLCJAbWl4aW4gZ3JpZCgkdmVydGljYWwtZ2FwOjEwLCAkYnJlYWtwb2ludHM6KCkpIHtcbiAgQGlmIGxlbmd0aCgkYnJlYWtwb2ludHMpID4gMCBhbmQgdHlwZS1vZigkYnJlYWtwb2ludHMpICE9ICdtYXAnIHtcbiAgICBAZXJyb3IgJ0JyZWFrcG9pbnRzIGhhcyB0byBiZSBhIG1hcC4nXG4gIH1cblxuICAuZ3JpZCB7XG4gICAgJi1mdWxsLWhlaWdodCB7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnVpbGQtZ3JpZCgkdmVydGljYWwtZ2FwKTtcblxuICAgIEBlYWNoICRuYW1lLCAkYnJlYWtwb2ludCBpbiAkYnJlYWtwb2ludHMge1xuICAgICAgQGluY2x1ZGUgbWVkaWEoJGJyZWFrcG9pbnQpIHtcbiAgICAgICAgQGluY2x1ZGUgYnVpbGQtZ3JpZCgkdmVydGljYWwtZ2FwLCAnLScgKyAkbmFtZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBidWlsZC1ncmlkKCR2ZXJ0aWNhbC1nYXAsICRwcmVmaXg6JycpIHtcbiAgJiN7JHByZWZpeH0tcm93IHtcbiAgICBAaW5jbHVkZSByb3coKTtcbiAgfVxuICAmI3skcHJlZml4fS1vdXRlci1jb250YWluZXIge1xuICAgIEBpbmNsdWRlIG91dGVyLWNvbnRhaW5lcjtcbiAgfVxuICAmI3skcHJlZml4fS1maWxsLXBhcmVudCB7XG4gICAgQGluY2x1ZGUgZmlsbC1wYXJlbnQoKTtcbiAgfVxuICAmI3skcHJlZml4fS10ZXh0LWxlZnQge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gIH1cbiAgJiN7JHByZWZpeH0tdGV4dC1jZW50ZXIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuICAmI3skcHJlZml4fS10ZXh0LXJpZ2h0IHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgfVxuICAmI3skcHJlZml4fS1oaWRkZW4ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgJiN7JHByZWZpeH0tdmlzaWJsZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbiAgQGZvciAkY29sdW1uLWluZGV4IGZyb20gMSB0aHJvdWdoICRncmlkLWNvbHVtbnMge1xuICAgICYjeyRwcmVmaXh9LXNwYW4jeyRjb2x1bW4taW5kZXh9LW5vZ2FwIHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogcGVyY2VudGFnZSgkY29sdW1uLWluZGV4IC8gJGdyaWQtY29sdW1ucyk7XG4gICAgfVxuICB9XG4gIC8qIERvZXMgbm90IHN1cHBvcnQgbmVnYXRpdmUgc2hpZnQgICovXG4gIEBmb3IgJGNvbHVtbi1pbmRleCBmcm9tIDEgdGhyb3VnaCAkZ3JpZC1jb2x1bW5zIHtcbiAgICAmI3skcHJlZml4fS1zaGlmdCN7JGNvbHVtbi1pbmRleH0tbm9nYXAge1xuICAgICAgbWFyZ2luLWxlZnQ6IHBlcmNlbnRhZ2UoJGNvbHVtbi1pbmRleCAvICRncmlkLWNvbHVtbnMpO1xuICAgIH1cbiAgfVxuICBAZm9yICRjb2x1bW4taW5kZXggZnJvbSAxIHRocm91Z2ggJGdyaWQtY29sdW1ucyB7XG4gICAgJiN7JHByZWZpeH0tc3BhbiN7JGNvbHVtbi1pbmRleH0ge1xuICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKCRjb2x1bW4taW5kZXgpO1xuICAgIH1cbiAgfVxuICBAZm9yICRjb2x1bW4taW5kZXggZnJvbSAwIHRocm91Z2ggJGdyaWQtY29sdW1ucyAtIDEge1xuICAgICYjeyRwcmVmaXh9LXNoaWZ0I3skY29sdW1uLWluZGV4fSB7XG4gICAgICBAaW5jbHVkZSBzaGlmdCgkY29sdW1uLWluZGV4KTtcbiAgICB9XG4gIH1cbiAgQGZvciAkY29sdW1uLWluZGV4IGZyb20gMSB0aHJvdWdoICRncmlkLWNvbHVtbnMge1xuICAgICYjeyRwcmVmaXh9LXNoaWZ0LW5lZ2F0aXZlI3skY29sdW1uLWluZGV4fSB7XG4gICAgICBAaW5jbHVkZSBzaGlmdCgtJGNvbHVtbi1pbmRleCk7XG4gICAgfVxuICB9XG4gICYjeyRwcmVmaXh9LW9tZWdhIHtcbiAgICBAaW5jbHVkZSBvbWVnYSgpO1xuICB9XG4gIEBmb3IgJGNvbHVtbi1pbmRleCBmcm9tIDEgdGhyb3VnaCAkZ3JpZC1jb2x1bW5zIHtcbiAgICAmI3skcHJlZml4fS1vbWVnYSN7JGNvbHVtbi1pbmRleH0ge1xuICAgICAgQGluY2x1ZGUgb21lZ2EoJGNvbHVtbi1pbmRleCArIDBuKTtcbiAgICB9XG4gIH1cbiAgQGZvciAkZ2FwLWluZGV4IGZyb20gMCB0aHJvdWdoIDEwIHtcbiAgICAmI3skcHJlZml4fS1nYXAjeyRnYXAtaW5kZXh9LWJlbG93IHtcbiAgICAgIG1hcmdpbi1ib3R0b206ICR2ZXJ0aWNhbC1nYXAgKiAkZ2FwLWluZGV4ICsgcHg7XG4gICAgfVxuICB9XG4gIEBmb3IgJGdhcC1pbmRleCBmcm9tIDAgdGhyb3VnaCAxMCB7XG4gICAgJiN7JHByZWZpeH0tZ2FwI3skZ2FwLWluZGV4fS1hYm92ZSB7XG4gICAgICBtYXJnaW4tdG9wOiAkdmVydGljYWwtZ2FwICogJGdhcC1pbmRleCArIHB4O1xuICAgIH1cbiAgfVxufVxuIiwiQG1peGluIHZlcnRpY2FsLWNlbnRlci1jaGlsZCgkc2l6ZSkge1xuICAvLyBodHRwczovL2Nzcy10cmlja3MuY29tL2NlbnRlcmluZy1pbi10aGUtdW5rbm93bi9cblxuICBmb250LXNpemU6IDA7XG4gICY6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIH1cblxuICAmID4gKiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgZm9udC1zaXplOiAkc2l6ZTtcbiAgfVxufVxuIiwiYm9keSB7XG4gIG1hcmdpbjogMDtcbiAgY29sb3I6ICRjb2xvckdyZXlEYXJrZXN0O1xuICBmb250LWZhbWlseTogJGZvbnRSb2JvdG87XG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcldoaXRlO1xuICBmb250LXNpemU6IDE2cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIEBpbmNsdWRlIG1lZGlhKCR0YWJsZXQpIHtcbiAgICBtYXJnaW4tdG9wOiAkbW9iaWxlSGVhZGVySGVpZ2h0IWltcG9ydGFudDtcbiAgfVxufVxuaDEsIGgyLCBoMywgaDQsIGg1LCBoNntcbiAgbWFyZ2luOiAwO1xufVxuaDF7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtc2l6ZTogMjVweDtcbiAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgbGluZS1oZWlnaHQ6IDMwcHg7XG5cbiAgQGluY2x1ZGUgbWVkaWEoJG1vYmlsZSkge1xuICAgIGZvbnQtc2l6ZTogMjFweDtcbiAgfVxufVxuaDJ7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtc2l6ZTogMjJweDtcbiAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgbGluZS1oZWlnaHQ6IDMwcHg7XG5cbiAgQGluY2x1ZGUgbWVkaWEoJG1vYmlsZSkge1xuICAgIGZvbnQtc2l6ZTogMTlweDtcbiAgfVxufVxuaW1ne1xuICBkaXNwbGF5OiBibG9jaztcbn1cbmhye1xuICBoZWlnaHQ6IDFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7XG4gIGJvcmRlcjogbm9uZTtcbiAgbWFyZ2luOiAwO1xufVxudGFibGV7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG59XG5we1xuICBtYXJnaW46IDAgMCAyMHB4IDA7XG59XG5he1xuICBjb2xvcjogJGNvbG9yUmVkO1xuICBvdXRsaW5lOiBub25lO1xuICBAaW5jbHVkZSB0cmFuc2l0aW9uKGNvbG9yIC4ycyk7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICAmOmhvdmVye1xuICAgIGNvbG9yOiBsaWdodGVuKCRjb2xvclJlZCwgMjApO1xuICB9XG59XG5iLCBzdHJvbmd7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxudWx7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG59XG5zbWFsbHtcbiAgZm9udC1zaXplOiA4NSU7XG59XG5pbnB1dHtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgaGVpZ2h0OiBhdXRvO1xuICBwYWRkaW5nOiAxM3B4IDIwcHg7XG4gIHdpZHRoOiAxMDAlO1xuICBib3JkZXI6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2xvckdyZXlEYXJrO1xuICBmb250LWZhbWlseTogJGZvbnRSb2JvdG87XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDIzcHg7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIG91dGxpbmU6IDA7XG4gICY6Zm9jdXN7XG4gICAgYm94LXNoYWRvdzogbm9uZSFpbXBvcnRhbnQ7XG4gIH1cbiAgQGluY2x1ZGUgcGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiAkY29sb3JNZXRhbDtcbiAgICBmb250LXdlaWdodDogMzAwO1xuICB9XG5cbiAgJi5lcnJvciB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yUmVkO1xuICB9XG59XG50ZXh0YXJlYXtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgaGVpZ2h0OiAyMDBweDtcbiAgcGFkZGluZzogMTNweCAyMHB4O1xuICB3aWR0aDogMTAwJTtcbiAgcmVzaXplOiBub25lO1xuICBib3JkZXI6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2xvckdyZXlEYXJrO1xuICBmb250LWZhbWlseTogJGZvbnRSb2JvdG87XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgb3V0bGluZTogMDtcbiAgJjpmb2N1c3tcbiAgICBib3gtc2hhZG93OiBub25lIWltcG9ydGFudDtcbiAgfVxuICBAaW5jbHVkZSBwbGFjZWhvbGRlciB7XG4gICAgY29sb3I6ICRjb2xvck1ldGFsO1xuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIH1cbn1cbmxhYmVse1xuICBmb250LXNpemU6IDE2cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxpbmUtaGVpZ2h0OiAzNHB4O1xufVxuc2VsZWN0e1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiA0OXB4O1xufVxuXG5zcGFuLmlucHV0LXZhbGlkYXRpb24tZXJyb3Ige1xuICBjb2xvcjogJGNvbG9yUmVkO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogLTE1cHg7XG59XG4iLCIuaGVscGVyLWNvbGx1bW5zMntcbiAgQGluY2x1ZGUgY29sdW1ucygyKTtcbiAgQGluY2x1ZGUgY29sdW1uLWdhcCgzMHB4KTtcblxuICBAaW5jbHVkZSBtZWRpYSgkbW9iaWxlKSB7XG4gICAgQGluY2x1ZGUgY29sdW1ucygxKTtcbiAgfVxufVxuXG4uaGVscGVyLWNvbGx1bW5zNHtcbiAgQGluY2x1ZGUgY29sdW1ucyg0KTtcbiAgQGluY2x1ZGUgY29sdW1uLWdhcCgzMHB4KTtcblxuICBAaW5jbHVkZSBtZWRpYSgkbW9iaWxlKSB7XG4gICAgQGluY2x1ZGUgY29sdW1ucygxKTtcbiAgfVxufVxuXG4uaGVscGVyLXJlbGF0aXZle1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4iLCIuYmFubmVye1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi1ib3R0b206IDUwcHg7XG4gIGhlaWdodDogNDIwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICYtY29udGVudHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICB9XG4gICYtb3ZlcmxheXtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB6LWluZGV4OiAxMDA7XG4gICAgdG9wOiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIEBpbmNsdWRlIHZlcnRpY2FsLWNlbnRlci1jaGlsZCgwKTtcbiAgICAmPmRpdntcbiAgICAgIHdpZHRoOiAxMDAlXG4gICAgfVxuICAgICYtYm94e1xuICAgICAgcGFkZGluZzogMjBweDtcbiAgICAgIG1heC13aWR0aDogNDUlO1xuICAgICAgZm9udC1mYW1pbHk6ICRmb250Um9ib3RvO1xuICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjE7XG4gICAgICBjb2xvcjogd2hpdGU7XG4gICAgICBmb250LXNpemU6IDQ1cHg7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRjb2xvckJsYWNrLCAwLjkpO1xuICAgICAgYm94LXNoYWRvdzogNXB4IC01cHggMHB4IDBweCByZ2JhKHdoaXRlLCAwLjc1KTtcbiAgICB9XG4gICAgJi10ZXh0e1xuICAgICAgbWFyZ2luLXRvcDogMTZweDtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgICAmOmZpcnN0LWNoaWxke1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgfVxuICAgIH1cbiAgICAuYnV0dG9ue1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cbiAgJi1tb2JpbGVpbWFnZXtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgkbGFwdG9wKSB7XG4gICAgaGVpZ2h0OiA0MDBweDtcbiAgICAmLW92ZXJsYXl7XG4gICAgICBAaW5jbHVkZSB2ZXJ0aWNhbC1jZW50ZXItY2hpbGQoMCk7XG4gICAgICAmLWJveHtcbiAgICAgICAgbWF4LXdpZHRoOiA2MiU7XG4gICAgICAgIGZvbnQtc2l6ZTogNDBweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGluY2x1ZGUgbWVkaWEoJHRhYmxldCkge1xuICAgIGhlaWdodDogMzYwcHg7XG4gICAgJi1vdmVybGF5e1xuICAgICAgQGluY2x1ZGUgdmVydGljYWwtY2VudGVyLWNoaWxkKDApO1xuICAgICAgJi1ib3h7XG4gICAgICAgIG1heC13aWR0aDogODglO1xuICAgICAgICBmb250LXNpemU6IDM0cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBpbmNsdWRlIG1lZGlhKCRtb2JpbGUpIHtcbiAgICBoZWlnaHQ6IDMwMHB4O1xuICAgICYtY29udGVudHtcbiAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgfVxuICAgICYtb3ZlcmxheXtcbiAgICAgICYtYm94e1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBmb250LXNpemU6IDI0cHg7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IDIwcHggMTBweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi50aXRsZXtcbiAgZm9udC1zaXplOiAzMHB4O1xuICBjb2xvcjogJGNvbG9yR3JleURhcmtlc3Q7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiA1OHB4O1xuICAmLS1uYXJyb3d7XG4gICAgbGluZS1oZWlnaHQ6IDM1cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgfVxuICAmLS1zZWN0aW9ue1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIGZvbnQtc2l6ZTogMjVweDtcbiAgICBmb250LXdlaWdodDogMzAwO1xuICAgIGxpbmUtaGVpZ2h0OiA1MHB4O1xuICB9XG59XG4iLCIubGlua2JveHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgJjpiZWZvcmV7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgdG9wOiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMjApO1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMC4ycyk7XG4gIH1cbiAgJi1pbWFnZXtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICAmLXRleHR7XG4gICAgJGFycm93V2lkdGg6IDE5cHg7XG4gICAgJGFycm93TWFyZ2luOiAxMnB4O1xuXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgYm90dG9tOiAyMHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmctbGVmdDogMjBweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAoMTBweCArICRhcnJvd1dpZHRoICsgJGFycm93TWFyZ2luKTtcbiAgICBmb250LXNpemU6IDI1cHg7XG4gICAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbihib3R0b20sIC4ycyk7XG4gICAgJjphZnRlcntcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICBtYXJnaW4tbGVmdDogMTJweDtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgd2lkdGg6ICRhcnJvd1dpZHRoO1xuICAgICAgaGVpZ2h0OiAxOXB4O1xuICAgICAgYmFja2dyb3VuZDogdXJsKC9pbWcvYXJyb3dfcmlnaHQuc3ZnKSBuby1yZXBlYXQgMCAwO1xuICAgICAgYmFja2dyb3VuZC1zaXplOiAxOXB4IDE5cHg7XG4gICAgICBtYXJnaW4tcmlnaHQ6IC0oJGFycm93V2lkdGggKyAkYXJyb3dNYXJnaW4pO1xuICAgICAgbWFyZ2luLXRvcDogLTNweDtcbiAgICB9XG4gIH1cbiAgJjpob3ZlcntcbiAgICAmOmJlZm9yZXtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoYmxhY2ssIDAuMzApO1xuICAgIH1cbiAgICAubGlua2JveC10ZXh0e1xuICAgICAgYm90dG9tOiA0MHB4O1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKCR0YWJsZXQpIHtcbiAgICAmLXRleHR7XG4gICAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgIH1cbiAgfVxufVxuIiwiLnByb2R1Y3Rib3h7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAxMHB4IDEwcHggMTZweCAxMHB4O1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNvbG9yOiAkY29sb3JHcmV5RGFya2VzdDtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgYm94LXNoYWRvdzogMCAwIDZweCAwIHRyYW5zcGFyZW50O1xuICBAaW5jbHVkZSB0cmFuc2l0aW9uKGJveC1zaGFkb3csIC4ycyk7XG4gICYtLXlvdXR1YmV7XG4gICAgLnByb2R1Y3Rib3gtaW1hZ2V3cmFwcGVye1xuICAgICAgJjpiZWZvcmV7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHRvcDogY2FsYyg1MCUgLSAzM3B4KTtcbiAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAzOHB4KTtcbiAgICAgICAgd2lkdGg6IDc2cHg7XG4gICAgICAgIGhlaWdodDogNjZweDtcbiAgICAgICAgYmFja2dyb3VuZDogdXJsKC9pbWcveW91dHViZS5zdmcpIG5vLXJlcGVhdCAwIDA7XG4gICAgICB9XG4gICAgfVxuICB9XG4gICYtLXdpZGV7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgIEBpbmNsdWRlIGNsZWFyZml4KCk7XG4gICAgLnByb2R1Y3Rib3gtaW1hZ2V3cmFwcGVye1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBtYXgtd2lkdGg6IDMwJTtcbiAgICAgIG1hcmdpbi1yaWdodDogMjBweDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICAgIC5wcm9kdWN0Ym94LWNvbnRlbnR7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgcGFkZGluZzogMTVweCAxMHB4IDE1cHggMDtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgfVxuICB9XG4gICYtZGF0ZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLWJvdHRvbTogN3B4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGNvbG9yOiAkY29sb3JSZWQ7XG5cbiAgfVxuICAmLWltYWdld3JhcHBlcntcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgfVxuICBpbWd7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICB9XG4gICYtdGl0bGV7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBtYXJnaW4tYm90dG9tOiA2cHg7XG4gIH1cbiAgJi1jb250ZW50e1xuICAgIG1pbi1oZWlnaHQ6IDEwMnB4O1xuICB9XG4gICY6aG92ZXJ7XG4gICAgYm94LXNoYWRvdzogMCAwIDZweCAwICRjb2xvckJsYWNrMjA7XG4gICAgY29sb3I6ICRjb2xvckdyZXlEYXJrZXN0O1xuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJG1vYmlsZSkge1xuICAgICYtY29udGVudHtcbiAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgfVxuICAgICYtLXdpZGV7XG4gICAgICBwYWRkaW5nLXRvcDogMTBweDtcbiAgICAgIC5wcm9kdWN0Ym94LWltYWdld3JhcHBlcntcbiAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgfVxuICAgICAgLnByb2R1Y3Rib3gtY29udGVudHtcbiAgICAgICAgcGFkZGluZzogMTVweCAxMHB4IDE1cHggMTBweDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi5wcm9maWxlYm94e1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGltZ3tcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgJi1uYW1le1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICB9XG4gICYtdGl0bGV7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgY29sb3I6ICRjb2xvck1ldGFsO1xuICB9XG4gICYtY29udGVudHtcbiAgICBtaW4taGVpZ2h0OiAxNjVweDtcbiAgICBwYWRkaW5nOiAyMHB4IDEwcHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGNvbG9yOiAkY29sb3JHcmV5RGFya2VzdDtcbiAgICBmb250LXdlaWdodDogMzAwO1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBsaW5lLWhlaWdodDogMS41NTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKCRtb2JpbGUpIHtcbiAgICAmLWNvbnRlbnR7XG4gICAgICBtaW4taGVpZ2h0OiAwO1xuICAgIH1cbiAgfVxufVxuIiwiLnF1b3Rle1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmc6IDIycHggMjBweDtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICAmOmJlZm9yZXtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMDtcbiAgICB0b3A6IDE1cHg7XG4gICAgY29udGVudDogJyc7XG4gICAgd2lkdGg6IDE1cHg7XG4gICAgaGVpZ2h0OiAxMXB4O1xuICAgIGJhY2tncm91bmQ6IHVybCgnaW1nL3F1b3RlX3N0YXJ0LnBuZycpIG5vLXJlcGVhdCAwIDA7XG4gICAgYmFja2dyb3VuZC1zaXplOiAxNXB4IDExcHg7XG4gIH1cbiAgJjphZnRlcntcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAxNXB4O1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHdpZHRoOiAxNnB4O1xuICAgIGhlaWdodDogMTFweDtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoJ2ltZy9xdW90ZV9lbmQucG5nJykgbm8tcmVwZWF0IDAgMDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDE2cHggMTFweDtcbiAgfVxufVxuIiwiYnV0dG9uLmJ1dHRvbiwgYS5idXR0b24sIHNwYW4uYnV0dG9uPmEsIC5idXR0b24tZXh0ZW5kZXJ7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgcGFkZGluZzogMTRweCAyMHB4O1xuICBsaW5lLWhlaWdodDogMjNweDtcbiAgYm9yZGVyOiBub25lO1xuICBmb250LWZhbWlseTogJGZvbnRSb2JvdG87XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXNpemU6IDE0cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBjb2xvcjogd2hpdGU7XG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2xvclJlZDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBAaW5jbHVkZSB0cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgLjJzKTtcbiAgJjpob3ZlcntcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRjb2xvclJlZCwgMTIpO1xuICB9XG4gICYtLWFycm93e1xuICAgICY6YWZ0ZXJ7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgbWFyZ2luLXRvcDogLTJweDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAxMnB4O1xuICAgICAgY29udGVudDogJyc7XG4gICAgICB3aWR0aDogMTRweDtcbiAgICAgIGhlaWdodDogMTRweDtcbiAgICAgIGJhY2tncm91bmQ6IHVybCgvaW1nL2Fycm93X3JpZ2h0LnN2Zykgbm8tcmVwZWF0IDAgMDtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogMTRweCAxNHB4O1xuICAgIH1cbiAgfVxuICAmLS13aWRle1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG4iLCIudmlld2Vye1xuICAmLWltYWdle1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgJi1zbGlkZXtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKG9wYWNpdHkgLjJzKTtcbiAgICAgICY6aG92ZXJ7XG4gICAgICAgIG9wYWNpdHk6IC44IWltcG9ydGFudDtcbiAgICAgIH1cbiAgICAgIGltZ3tcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgfVxuICAgICAgJjpiZWZvcmV7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHdpZHRoOiAzN3B4O1xuICAgICAgICBoZWlnaHQ6IDM3cHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEod2hpdGUsIC44KSB1cmwoL2ltZy9tYWduaWZpZXIuc3ZnKSBuby1yZXBlYXQgY2VudGVyIGNlbnRlcjtcbiAgICAgIH1cbiAgICAgICYtLXlvdXR1YmV7XG4gICAgICAgICY6YWZ0ZXJ7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgIHRvcDogY2FsYyg1MCUgLSAzM3B4KTtcbiAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtIDM4cHgpO1xuICAgICAgICAgIHdpZHRoOiA3NnB4O1xuICAgICAgICAgIGhlaWdodDogNjZweDtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoL2ltZy95b3V0dWJlLnN2Zykgbm8tcmVwZWF0IDAgMDtcbiAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDc2cHggNjZweDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICAmLW5hdmlnYXRpb257XG4gICAgaW1ne1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICAgICYtc2xpZGUge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgbWFyZ2luOiAwIDEwcHg7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihvcGFjaXR5IC4ycyk7XG4gICAgICAmOmhvdmVye1xuICAgICAgICBvcGFjaXR5OiAuODtcbiAgICAgIH1cbiAgICAgICY6Zm9jdXN7XG4gICAgICAgIG91dGxpbmU6IDA7XG4gICAgICB9XG4gICAgICAmLnNsaWNrLWN1cnJlbnR7XG4gICAgICAgIG9wYWNpdHk6IC44O1xuICAgICAgfVxuICAgICAgJi0teW91dHViZXtcbiAgICAgICAgJjpiZWZvcmV7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gMjJweCk7XG4gICAgICAgICAgdG9wOiBjYWxjKDUwJSAtIDE5cHgpO1xuICAgICAgICAgIHdpZHRoOiA0NHB4O1xuICAgICAgICAgIGhlaWdodDogMzhweDtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoL2ltZy95b3V0dWJlLnN2Zykgbm8tcmVwZWF0IDAgMDtcbiAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDQ0cHggMzhweDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAuc2xpY2stbGlzdCB7XG4gICAgICBtYXJnaW46IDAgLTEwcHg7XG4gICAgfVxuICB9XG59XG4iLCIuYWNjb3JkaW9ue1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBkaXNwbGF5OiBub25lO1xuICAmLXRpdGxle1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi10b3A6IDJweDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgcGFkZGluZzogMCAyMHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgbGluZS1oZWlnaHQ6IDUwcHg7XG4gICAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgICBjb2xvcjogJGNvbG9yR3JleURhcmtlc3Q7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yR3JleURhcms7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICY6Zm9jdXN7XG4gICAgICBvdXRsaW5lOiAwO1xuICAgIH1cbiAgfVxuICAmLWNvbnRlbnR7XG4gICAgcGFkZGluZzogMzBweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3JHcmV5O1xuICB9XG4gIHA6bGFzdC1jaGlsZHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJHRhYmxldCkge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG4iLCIudGFic3tcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgPnVse1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBAaW5jbHVkZSBjbGVhcmZpeCgpO1xuICAgIGxpe1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgJGNvbG9yR3JleTtcbiAgICAgICY6bGFzdC1jaGlsZHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAwO1xuICAgICAgfVxuICAgICAgYXtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAgMjBweDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiA1MHB4O1xuICAgICAgICBmb250LXdlaWdodDogOTAwO1xuICAgICAgICBjb2xvcjogJGNvbG9yR3JleURhcmtlc3Q7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvckdyZXlEYXJrO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICB9XG4gICAgICAmOmZvY3Vze1xuICAgICAgICBvdXRsaW5lOiAwO1xuICAgICAgfVxuICAgICAgJi51aS10YWJzLWFjdGl2ZXtcbiAgICAgICAgYXtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3JHcmV5O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gICYtY29udGVudHtcbiAgICBwYWRkaW5nOiAyMHB4IDMwcHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yR3JleTtcbiAgfVxuICAmLS0ye1xuICAgID51bHtcbiAgICAgIGxpe1xuICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAmLS0ze1xuICAgID51bHtcbiAgICAgIGxpe1xuICAgICAgICB3aWR0aDogMzMuMzMzJTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgJi0tNHtcbiAgICA+dWx7XG4gICAgICBsaXtcbiAgICAgICAgd2lkdGg6IDI1JTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgkdGFibGV0KSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuIiwiLnRhYmxlYm94e1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICB0YWJsZXtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcblxuICAgIGltZyB7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgdHJ7XG4gICAgICB0ZHtcbiAgICAgICAgcGFkZGluZzogMTNweCA1cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyM3B4O1xuICAgICAgICAmOmZpcnN0LWNoaWxke1xuICAgICAgICAgIHBhZGRpbmctbGVmdDogMjBweDtcbiAgICAgICAgfVxuICAgICAgICAmOmxhc3QtY2hpbGR7XG4gICAgICAgICAgcGFkZGluZy1yaWdodDogMjBweDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJjpudGgtY2hpbGQobisyKSB0ZHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yV2hpdGVyO1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICAgIGNvbG9yOiAkY29sb3JHcmV5RGFya2VzdDtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgIH1cbiAgICAgICY6Zmlyc3QtY2hpbGQgdGR7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvckdyZXlEYXJrO1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIGNvbG9yOiAkY29sb3JNZXRhbDtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgkbW9iaWxlKSB7XG4gICAgdGFibGUsIHRoZWFkLCB0Ym9keSwgdGgsIHRkLCB0ciB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gICAgdHI6Zmlyc3QtY2hpbGQge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAtOTk5OXB4O1xuICAgICAgbGVmdDogLTk5OTlweDtcbiAgICB9XG4gICAgdHIge1xuICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRjb2xvckdyZXk7XG4gICAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcblxuICAgICAgdGQge1xuICAgICAgICBib3JkZXI6IDAhaW1wb3J0YW50O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHBhZGRpbmctdG9wOiA2cHghaW1wb3J0YW50O1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDQ1JSFpbXBvcnRhbnQ7XG4gICAgICAgIHdpZHRoOiAxMDAlIWltcG9ydGFudDtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdCFpbXBvcnRhbnQ7XG4gICAgICAgIGF7XG4gICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgfVxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHRvcDogNnB4O1xuICAgICAgICAgIGxlZnQ6IDZweDtcbiAgICAgICAgICB3aWR0aDogNDAlO1xuICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7XG4gICAgICAgICAgLy8gd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtbGFiZWwpO1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxN3B4O1xuICAgICAgICB9XG4gICAgICAgICY6Zmlyc3QtY2hpbGR7XG4gICAgICAgICAgcGFkZGluZy10b3A6IDE0cHghaW1wb3J0YW50O1xuICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIHRvcDogMTRweDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJjpsYXN0LWNoaWxke1xuICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAxNHB4IWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJjpsYXN0LWNoaWxke1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGNvbG9yR3JleTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi5tYWlubGlua3tcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsaW5lLWhlaWdodDogMzJweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIG9wYWNpdHk6IDE7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGNvbG9yOiAkY29sb3JSZWQhaW1wb3J0YW50O1xuICBAaW5jbHVkZSB0cmFuc2l0aW9uKG9wYWNpdHkgLjJzKTtcbiAgJjpob3ZlcntcbiAgICBjb2xvcjogJGNvbG9yUmVkIWltcG9ydGFudDtcbiAgICBvcGFjaXR5OiAuNzU7XG4gIH1cbiAgJi0tYXJyb3d7XG4gICAgJjphZnRlcntcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICBtYXJnaW4tdG9wOiAtMnB4O1xuICAgICAgbWFyZ2luLWxlZnQ6IDEycHg7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHdpZHRoOiAxNHB4O1xuICAgICAgaGVpZ2h0OiAxNHB4O1xuICAgICAgYmFja2dyb3VuZDogdXJsKC9pbWcvYXJyb3dfcmlnaHRfcmVkLnN2Zykgbm8tcmVwZWF0IDAgMDtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogMTRweCAxNHB4O1xuICAgIH1cbiAgfVxuICAmLS1maWx0ZXJ7XG4gICAgJjpiZWZvcmV7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgbWFyZ2luLXRvcDogLTJweDtcbiAgICAgIG1hcmdpbi1yaWdodDogMTJweDtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgd2lkdGg6IDE4cHg7XG4gICAgICBoZWlnaHQ6IDEycHg7XG4gICAgICBiYWNrZ3JvdW5kOiB1cmwoL2ltZy9maWx0ZXIuc3ZnKSBuby1yZXBlYXQgMCAwO1xuICAgICAgYmFja2dyb3VuZC1zaXplOiAxOHB4IDEycHg7XG4gICAgfVxuICB9XG4gICYtLXdoaXRle1xuICAgIGNvbG9yOiB3aGl0ZSFpbXBvcnRhbnQ7XG4gICAgJjpob3ZlcntcbiAgICAgIGNvbG9yOiB3aGl0ZSFpbXBvcnRhbnQ7XG4gICAgfVxuICAgICYubWFpbmxpbmstLWFycm93e1xuICAgICAgJjphZnRlcntcbiAgICAgICAgYmFja2dyb3VuZDogdXJsKC9pbWcvYXJyb3dfcmlnaHQuc3ZnKSBuby1yZXBlYXQgMCAwO1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDE0cHggMTRweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgJi0tZGFya3tcbiAgICBjb2xvcjogJGNvbG9yR3JleURhcmtlc3QhaW1wb3J0YW50O1xuICAgICY6aG92ZXJ7XG4gICAgICBjb2xvcjogJGNvbG9yR3JleURhcmtlc3QhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuIiwiLmNob3Nlbi1jb250YWluZXJ7XG4gIG1hcmdpbi1ib3R0b206IDIwcHghaW1wb3J0YW50O1xuICBmb250LXNpemU6IDE2cHg7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHdpZHRoOiAxMDAlIWltcG9ydGFudDtcblxuICAmLmVycm9yIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkY29sb3JSZWQ7XG4gIH1cblxuICAmOmxhc3QtY2hpbGR7XG4gICAgbWFyZ2luLWJvdHRvbTogMCFpbXBvcnRhbnQ7XG4gIH1cbiAgLmNob3Nlbi1zaW5nbGV7XG4gICAgaGVpZ2h0OiA0OXB4O1xuICAgIG91dGxpbmU6IG5vbmUhaW1wb3J0YW50O1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBiYWNrZ3JvdW5kOiAkY29sb3JHcmV5RGFyayFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyOiAwIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiBub25lIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOiAwIDIwcHg7XG4gICAgc3BhbntcbiAgICAgIGxpbmUtaGVpZ2h0OiA0OXB4O1xuICAgICAgY29sb3I6ICRjb2xvckdyZXlEYXJrZXN0O1xuICAgIH1cbiAgICBkaXZ7XG4gICAgICB3aWR0aDogMzZweDtcbiAgICAgIGJ7XG4gICAgICAgIGJhY2tncm91bmQ6IHVybCgnL2ltZy9jaG9zZW4vY2hvc2VuLXNwcml0ZS5wbmcnKSBuby1yZXBlYXQgNHB4IDE4cHg7XG4gICAgICB9XG4gICAgfVxuICAgICYuY2hvc2VuLWRlZmF1bHR7XG4gICAgICBzcGFue1xuICAgICAgICBjb2xvcjogJGNvbG9yTWV0YWw7XG4gICAgICB9XG4gICAgfVxuICB9XG4gICYuY2hvc2VuLXdpdGgtZHJvcCAuY2hvc2VuLXNpbmdsZSBkaXYgYntcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzBweCAxN3B4O1xuICB9XG4gIC5jaG9zZW4tZHJvcHtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgIGJvcmRlcjogMDtcbiAgICBiYWNrZ3JvdW5kOiAkY29sb3JHcmV5RGFyaztcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIGZvbnQtc2l6ZTogMTZweCFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICB1bHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBtYXJnaW46IDA7XG4gICAgfVxuICAgIGxpe1xuICAgICAgcGFkZGluZzogMTBweCAyMHB4IWltcG9ydGFudDtcbiAgICB9XG4gICAgbGkuaGlnaGxpZ2h0ZWR7XG4gICAgICBjb2xvcjogJGNvbG9yR3JleURhcmtlc3Q7XG4gICAgICBiYWNrZ3JvdW5kOiBub25lIWltcG9ydGFudDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigkY29sb3JHcmV5RGFyaywgMTApIWltcG9ydGFudDtcbiAgICB9XG4gIH1cblxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDEuNSksIG9ubHkgc2NyZWVuIGFuZCAobWluLXJlc29sdXRpb246IDE0NGRwaSksIG9ubHkgc2NyZWVuIGFuZCAobWluLXJlc29sdXRpb246IDEuNWRwcHgpIHtcbiAgICAmLXNpbmdsZSAuY2hvc2VuLXNpbmdsZSBkaXYgYiB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy9pbWcvY2hvc2VuL2Nob3Nlbi1zcHJpdGVAMngucG5nJykgIWltcG9ydGFudDtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IDZweCAxN3B4O1xuICAgICAgYmFja2dyb3VuZC1zaXplOiA1MnB4IDM3cHghaW1wb3J0YW50O1xuICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCAhaW1wb3J0YW50O1xuICAgIH1cbiAgICAmLmNob3Nlbi13aXRoLWRyb3AgLmNob3Nlbi1zaW5nbGUgZGl2IGJ7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjVweCAxNnB4O1xuICAgIH1cbiAgfVxufVxuIiwiLmNoZWNrYm94e1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbjogNnB4IDAgMjBweCAwO1xuICBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICAgIGRpc3BsYXk6bm9uZTtcbiAgfVxuICBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0gKyBsYWJlbCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgbGluZS1oZWlnaHQ6IDI1cHg7XG4gICAgY3Vyc29yOnBvaW50ZXI7XG4gICAgZm9udC1mYW1pbHk6ICRmb250Um9ib3RvO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICB9XG4gIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSArIGxhYmVsIHNwYW4ge1xuICAgIG1hcmdpbjogLTJweCA3cHggMCAwO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XG4gICAgd2lkdGg6IDI1cHg7XG4gICAgaGVpZ2h0OiAyNXB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgYm9yZGVyOiAwO1xuICAgIGN1cnNvcjpwb2ludGVyO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvckdyZXlEYXJrO1xuICB9XG4gIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXTpjaGVja2VkICsgbGFiZWwgc3BhbiB7XG4gICAgYmFja2dyb3VuZDogJGNvbG9yR3JleURhcmsgdXJsKC9pbWcvY2hlY2suc3ZnKSBjZW50ZXIgY2VudGVyIG5vLXJlcGVhdDtcbiAgICBib3JkZXI6IG5vbmU7XG4gIH1cbn1cbiIsIi5hc2lkZWxpbmsge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHotaW5kZXg6IDYwMDtcbiAgYm90dG9tOiAyMHB4O1xuICByaWdodDogMjBweDtcbiAgb3BhY2l0eTogMTtcbiAgQGluY2x1ZGUgdHJhbnNpdGlvbihvcGFjaXR5IC4ycyk7XG4gIGRpc3BsYXk6IG5vbmU7XG5cbiAgJjpob3ZlciB7XG4gICAgb3BhY2l0eTogLjg7XG4gIH1cblxuICAmLS12aXNpYmxlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gICYtLXN0aWNrIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAtOTBweDtcbiAgfVxuXG4gICYtLWNvbnRhY3Qge1xuICAgIHJpZ2h0OiAxMDBweDtcbiAgICB6LWluZGV4OiAyO1xuICB9XG59XG4iLCIuZm9vdGVye1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2xvckJsYWNrO1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAyMnB4O1xuICBjb2xvcjogJGNvbG9yR3JleURhcmtlcjtcbiAgJi1jb250ZW50e1xuICAgIHBhZGRpbmc6IDUwcHggMDtcbiAgfVxuICBhe1xuICAgIGNvbG9yOiAkY29sb3JHcmV5RGFya2VyO1xuICAgICY6aG92ZXJ7XG4gICAgICBjb2xvcjogZGFya2VuKCRjb2xvckdyZXlEYXJrZXIsIDEwKTtcbiAgICB9XG4gIH1cbiAgcHtcbiAgICBtYXJnaW4tYm90dG9tOiAyMnB4O1xuICB9XG4gICYtdGl0bGV7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLWJvdHRvbTogMnB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgfVxuICAmLWxpc3R7XG4gICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgIG1hcmdpbjogMCAwIDIwcHggMDtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG4gIGhye1xuICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigkY29sb3JHcmV5RGFya2VyLCAyNik7XG4gIH1cbiAgJi1mb290ZXJ7XG4gICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgdWx7XG4gICAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgICBsaXtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICY6YWZ0ZXJ7XG4gICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxNXB4O1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogMTVweDtcbiAgICAgICAgfVxuICAgICAgICAmOmxhc3QtY2hpbGQ6YWZ0ZXJ7XG4gICAgICAgICAgY29udGVudDogbm9uZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKCR0YWJsZXQpIHtcbiAgICAmLWxpc3R7XG4gICAgICBAaW5jbHVkZSBjb2x1bW4tZ2FwKDEwcHgpO1xuICAgIH1cbiAgICAmLWNvbnRlbnR7XG4gICAgICBwYWRkaW5nOiAzMHB4IDA7XG4gICAgfVxuICB9XG59XG4iLCIuc29jaWFsc3tcbiAgJi1pdGVte1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgb3BhY2l0eTogMTtcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKG9wYWNpdHkgLjJzKTtcbiAgICAmOmxhc3QtY2hpbGR7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgfVxuICAgICY6aG92ZXJ7XG4gICAgICBvcGFjaXR5OiAuODtcbiAgICB9XG4gIH1cbn1cbiIsIi50ZWFzZXJ7XG4gIHBhZGRpbmc6IDE0cHggMCAxMnB4IDA7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBmb250LXNpemU6IDE2cHg7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGxpbmUtaGVpZ2h0OiAzMnB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBzcGFue1xuICAgIG1hcmdpbi1yaWdodDogMzBweDtcbiAgfVxufVxuIiwiLmhlcm97XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZzogMTZweCAwO1xuICBtaW4taGVpZ2h0OiAxMzRweDtcbiAgY29sb3I6IHdoaXRlO1xuICBiYWNrZ3JvdW5kOiB1cmwoL2ltZy9oZXJvL29yYW5nZS5qcGcpIG5vLXJlcGVhdCBjZW50ZXIgY2VudGVyO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBoMXtcbiAgICBtYXJnaW4tdG9wOiAxN3B4O1xuICB9XG4gICYtdGV4dHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW46IDE1cHggMCAxMHB4IDA7XG4gIH1cbiAgLnRoZW1lLWZsb29ydG9vbHMgJntcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaW1nL2hlcm8vZGFya19yZWQuanBnKTtcbiAgfVxuICAudGhlbWUtcG93ZXJ0b29scyAme1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChpbWcvaGVyby9saWdodF9yZWQuanBnKTtcbiAgfVxuICAudGhlbWUtc2FmZXR5ICZ7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKGltZy9oZXJvL2JsdWUuanBnKTtcbiAgfVxuICAudGhlbWUtbWFjaGluZXMgJntcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaW1nL2hlcm8vZGFya19ibHVlLmpwZyk7XG4gIH1cbiAgLnRoZW1lLWluamVjdGlvbiAme1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChpbWcvaGVyby90ZWFsLmpwZyk7XG4gIH1cbiAgLnRoZW1lLW1lYXN1cmUgJntcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaW1nL2hlcm8vZ3JlZW4uanBnKTtcbiAgfVxuICAudGhlbWUtcm9scyAme1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChpbWcvaGVyby9vcmFuZ2UuanBnKTtcbiAgfVxuICAudGhlbWUtZmxvb3IgJntcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaW1nL2hlcm8vZ3JleS5qcGcpO1xuICB9XG4gIC50aGVtZS1wb2xpc2ggJntcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaW1nL2hlcm8vcGluay5qcGcpO1xuICB9XG59XG4iLCIuYnJlYWRjcnVtYnN7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgY29sb3I6IHdoaXRlO1xuICBmb250LXdlaWdodDogMzAwO1xuICBhe1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAmOmhvdmVye1xuICAgICAgY29sb3I6ICRjb2xvcldoaXRlO1xuICAgIH1cbiAgfVxuICB1bHtcbiAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXgoKTtcbiAgICBsaXtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgJjphZnRlcntcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgd2lkdGg6IDZweDtcbiAgICAgICAgaGVpZ2h0OiAxMnB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoL2ltZy9hbmdsZV9yaWdodC5zdmcpIG5vLXJlcGVhdCAwIDA7XG4gICAgICAgIG1hcmdpbjogMCAyMHB4O1xuICAgICAgfVxuICAgICAgJjpsYXN0LWNoaWxke1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAmOmFmdGVye1xuICAgICAgICAgIGNvbnRlbnQ6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi5tZW51e1xuICBmb250LXNpemU6IDEzcHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBsaW5lLWhlaWdodDogMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yR3JleTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgJi0tc3RpY2t7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHotaW5kZXg6IDUwMDtcbiAgICB0b3A6IDBweDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICB9XG4gIHVse1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbGl7XG4gICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgYXtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwYWRkaW5nOiAwIDVweCAwIDVweDtcbiAgICAgICAgY29sb3I6ICRjb2xvckdyZXlEYXJrZXN0O1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgLjJzKTtcbiAgICAgICAgQGluY2x1ZGUgdmVydGljYWwtY2VudGVyLWNoaWxkKDEzcHgpO1xuICAgICAgICAmOmFmdGVye1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgLjJzKTtcbiAgICAgICAgfVxuICAgICAgICAmOmhvdmVye1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigkY29sb3JHcmV5LCA0KTtcbiAgICAgICAgfVxuICAgICAgICBzcGFue1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICBsaW5lLWhlaWdodDogMTVweDtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgIHBhZGRpbmc6IDE1cHggMCAxNXB4IDIwcHg7XG4gICAgICAgICAgYmFja2dyb3VuZDogdXJsKC9pbWcvaGV4YS9kYXJrX3JlZF9oZXhhLnN2Zykgbm8tcmVwZWF0IDAgY2VudGVyO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAmLm1lbnUtaXRlbS0tYWN0aXZle1xuICAgICAgICBhe1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigkY29sb3JHcmV5LCA0KTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLm1lbnUtaXRlbS0tZmxvb3J0b29sc3tcbiAgICAgICAgYSBzcGFue1xuICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgvaW1nL2hleGEvZGFya19yZWRfaGV4YS5zdmcpO1xuICAgICAgICB9XG4gICAgICAgIGE6aG92ZXI6YWZ0ZXIsICYubWVudS1pdGVtLS1hY3RpdmUgYTphZnRlcntcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3JSb3VnZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLm1lbnUtaXRlbS0tcG93ZXJ0b29sc3tcbiAgICAgICAgYSBzcGFue1xuICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgvaW1nL2hleGEvbGlnaHRfcmVkX2hleGEuc3ZnKTtcbiAgICAgICAgfVxuICAgICAgICBhOmhvdmVyOmFmdGVyLCAmLm1lbnUtaXRlbS0tYWN0aXZlIGE6YWZ0ZXJ7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yT3JhbmdlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYubWVudS1pdGVtLS1zYWZldHl7XG4gICAgICAgIGEgc3BhbntcbiAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoL2ltZy9oZXhhL2xpZ2h0X2JsdWVfaGV4YS5zdmcpO1xuICAgICAgICB9XG4gICAgICAgIGE6aG92ZXI6YWZ0ZXIsICYubWVudS1pdGVtLS1hY3RpdmUgYTphZnRlcntcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3JUZWFsO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYubWVudS1pdGVtLS1tYWNoaW5lc3tcbiAgICAgICAgYSBzcGFue1xuICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgvaW1nL2hleGEvZGFya19ibHVlX2hleGEuc3ZnKTtcbiAgICAgICAgfVxuICAgICAgICBhOmhvdmVyOmFmdGVyLCAmLm1lbnUtaXRlbS0tYWN0aXZlIGE6YWZ0ZXJ7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yU2VhO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYubWVudS1pdGVtLS1pbmplY3Rpb257XG4gICAgICAgIGEgc3BhbntcbiAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoL2ltZy9oZXhhL2dyZWVuX2hleGEuc3ZnKTtcbiAgICAgICAgfVxuICAgICAgICBhOmhvdmVyOmFmdGVyLCAmLm1lbnUtaXRlbS0tYWN0aXZlIGE6YWZ0ZXJ7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yR3JlZW47XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5tZW51LWl0ZW0tLW1lYXN1cmV7XG4gICAgICAgIGEgc3BhbntcbiAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoL2ltZy9oZXhhL3RlYWxfaGV4YS5zdmcpO1xuICAgICAgICB9XG4gICAgICAgIGE6aG92ZXI6YWZ0ZXIsICYubWVudS1pdGVtLS1hY3RpdmUgYTphZnRlcntcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3JHcmVlbkxpZ2h0O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYubWVudS1pdGVtLS1yb2xze1xuICAgICAgICBhIHNwYW57XG4gICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC9pbWcvaGV4YS9vcmFuZ2VfaGV4YS5zdmcpO1xuICAgICAgICB9XG4gICAgICAgIGE6aG92ZXI6YWZ0ZXIsICYubWVudS1pdGVtLS1hY3RpdmUgYTphZnRlcntcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3JCcm93TGlnaHQ7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5tZW51LWl0ZW0tLWZsb29ye1xuICAgICAgICBhIHNwYW57XG4gICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC9pbWcvaGV4YS9ncmV5X2hleGEuc3ZnKTtcbiAgICAgICAgfVxuICAgICAgICBhOmhvdmVyOmFmdGVyLCAmLm1lbnUtaXRlbS0tYWN0aXZlIGE6YWZ0ZXJ7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yR3JleUJyb3duO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYubWVudS1pdGVtLS1wb2xpc2h7XG4gICAgICAgIGEgc3BhbntcbiAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoL2ltZy9oZXhhL3BpbmtfaGV4YS5zdmcpO1xuICAgICAgICB9XG4gICAgICAgIGE6aG92ZXI6YWZ0ZXIsICYubWVudS1pdGVtLS1hY3RpdmUgYTphZnRlcntcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3JMaXBzdGljaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKCRkZXNrdG9wKSB7XG4gICAgdWwgbGkgc3BhbntcbiAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICB9XG4gIH1cbiAgQGluY2x1ZGUgbWVkaWEoJGxhcHRvcCkge1xuICAgIHVsIGxpIHNwYW57XG4gICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICBsaW5lLWhlaWdodDogMTRweCFpbXBvcnRhbnQ7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lIWltcG9ydGFudDtcbiAgICAgIHBhZGRpbmctbGVmdDogMCFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG4iLCIuaGVhZGVye1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAmOmFmdGVye1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiA1MDA7XG4gICAgY29udGVudDogJyc7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGxlZnQ6IDUwJTtcbiAgICBoZWlnaHQ6ICRoZWFkZXJCYXJIZWlnaHQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yQmxhY2s7XG4gIH1cbiAgJi1iYXJ7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDYwMDtcbiAgICBtYXJnaW4tbGVmdDogMjBweDtcbiAgICBoZWlnaHQ6ICRoZWFkZXJCYXJIZWlnaHQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yQmxhY2s7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICY6YmVmb3Jle1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBsZWZ0OiAtMTVweDtcbiAgICAgIGJvcmRlci1ib3R0b206ICRoZWFkZXJCYXJIZWlnaHQgc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXItcmlnaHQ6IDE1cHggc29saWQgJGNvbG9yQmxhY2s7XG4gICAgfVxuICAgIGF7XG4gICAgICBjb2xvcjogd2hpdGU7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihvcGFjaXR5IC4ycyk7XG4gICAgICAmOmhvdmVye1xuICAgICAgICBvcGFjaXR5OiAuOTU7XG4gICAgICB9XG4gICAgfVxuICAgICYtbGFuZ3VhZ2V7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgbGluZS1oZWlnaHQ6ICRoZWFkZXJCYXJIZWlnaHQ7XG4gICAgICBpbWd7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgbWFyZ2luLXRvcDogOHB4O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICAgIH1cbiAgICB9XG4gICAgLnN1Ym1lbnV7XG4gICAgICBsaW5lLWhlaWdodDogJGhlYWRlckJhckhlaWdodDtcbiAgICB9XG4gICAgJi1zZXBlcmF0b3J7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgbWFyZ2luOiAxM3B4IDIwcHggMCAyMHB4O1xuICAgIH1cbiAgfVxuICAmLXBhbmVse1xuICAgIG1hcmdpbjogMTVweCAwO1xuICAgIGhlaWdodDogNDBweDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgc3BhbiwgYXtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIG1hcmdpbjogMTFweCAwIDAgMTBweDtcbiAgICAgICY6Zmlyc3QtY2hpbGR7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICB9XG4gICAgYXtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgcGFkZGluZy1sZWZ0OiAyNXB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgICAmLmhlYWRlci1wYW5lbC1saW5rLS1waG9uZXtcbiAgICAgICAgYmFja2dyb3VuZDogdXJsKC9pbWcvbW9iaWxlLnN2Zykgbm8tcmVwZWF0IDAgMXB4O1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG4gICAgICB9XG4gICAgICAmLmhlYWRlci1wYW5lbC1saW5rLS1tYWlse1xuICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoL2ltZy9lbWFpbC5zdmcpIG5vLXJlcGVhdCAwIGNlbnRlcjtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAyNXB4O1xuICAgICAgfVxuICAgICAgJi5oZWFkZXItcGFuZWwtbGluay0tb3JkZXJ7XG4gICAgICAgIGJhY2tncm91bmQ6IHVybCgvaW1nL29yZGVyLnN2Zykgbm8tcmVwZWF0IDAgY2VudGVyO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDI1cHg7XG4gICAgICB9XG4gICAgfVxuICB9XG4gICYtbG9nb3tcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luLXRvcDogMjFweDtcbiAgICBpbWd7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihvcGFjaXR5IC4ycyk7XG4gICAgfVxuICAgICY6aG92ZXIgaW1ne1xuICAgICAgb3BhY2l0eTogLjg1O1xuICAgIH1cbiAgfVxuICAuc2VhcmNoaXRlbXtcbiAgICBtYXJnaW46IDE1cHggMCAwIDA7XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgkbGFwdG9wKSB7XG4gICAgJi1wYW5lbCBzcGFuLCAmLXBhbmVsIGF7XG4gICAgICBtYXJnaW4tbGVmdDogNHB4O1xuICAgICAgcGFkZGluZy1sZWZ0OiAwIWltcG9ydGFudDtcbiAgICAgIGJhY2tncm91bmQ6IG5vbmUhaW1wb3J0YW50O1xuICAgIH1cbiAgICAmLWJhcntcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgJi1zZXBlcmF0b3J7XG4gICAgICAgIG1hcmdpbjogMTNweCAxM3B4IDAgMTNweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGluY2x1ZGUgbWVkaWEoJHRhYmxldCkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbiIsIi5zZWFyY2hpdGVte1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogNDBweDtcbiAgaW5wdXR7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgIGJvcmRlcjogc29saWQgMXB4ICRjb2xvckdyZXlEYXJrO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBwYWRkaW5nLXRvcDogOHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiA4cHg7XG4gICAgQGluY2x1ZGUgYXBwZWFyYW5jZShub25lKTtcbiAgICBAaW5jbHVkZSBwbGFjZWhvbGRlciB7XG4gICAgICBjb2xvcjogJGNvbG9yR3JleURhcmtlcjtcbiAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgfVxuICB9XG4gIGJ1dHRvbntcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAxcHg7XG4gICAgcmlnaHQ6IDFweDtcbiAgICB3aWR0aDogNDBweDtcbiAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDJweCk7XG4gICAgYmFja2dyb3VuZDogd2hpdGUgdXJsKC9pbWcvbWFnbmlmeWVyLnN2Zykgbm8tcmVwZWF0IGNlbnRlciBjZW50ZXI7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1sZWZ0OiBzb2xpZCAxcHggJGNvbG9yR3JleURhcms7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIC4ycyk7XG4gICAgJjpob3ZlcntcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcldoaXRlcjtcbiAgICB9XG4gIH1cblxufVxuIiwiLnN1Ym1lbnV7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgLy9mbG9hdDogbGVmdDtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIEBpbmNsdWRlIGNsZWFyZml4KCk7XG4gIGxpe1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbi1yaWdodDogMTVweDtcbiAgICAmOmxhc3QtY2hpbGR7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJGxhcHRvcCkge1xuICAgIGxpe1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICAgIH1cbiAgfVxufVxuIiwiLnRlYXNlcmJveHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICAmPmltZ3tcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICAmLW92ZXJsYXl7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgei1pbmRleDogMTAwO1xuICAgIGJvdHRvbTogMjVweDtcbiAgICBsZWZ0OiAyNXB4O1xuICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwJSAtIDUwcHgpO1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICAgIC5idXR0b257XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgICAmLWNvbnRlbnR7XG4gICAgICBtYXJnaW4tdG9wOiA1cHg7XG4gICAgICBwYWRkaW5nOiAyMHB4O1xuICAgICAgbWF4LXdpZHRoOiA4NSU7XG4gICAgICBmb250LWZhbWlseTogJGZvbnRSb2JvdG87XG4gICAgICBmb250LXdlaWdodDogMzAwO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJGNvbG9yQmxhY2ssIDAuOSk7XG4gICAgICBib3gtc2hhZG93OiA1cHggLTVweCAwcHggMHB4IHJnYmEod2hpdGUsIDAuNzUpO1xuICAgICAgc3Ryb25ne1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKCRtb2JpbGUpIHtcbiAgICAmLW92ZXJsYXl7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICYtY29udGVudHtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgcGFkZGluZzogMjBweCAxMHB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLnNsaWRlc2hvd3tcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgLmJhbm5lcntcbiAgICBoZWlnaHQ6IDU3MHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cblxuXG4gICYtZG90c3tcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgLnNsaWNrLWRvdHN7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBib3R0b206IDMycHg7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBsaXtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtYXJnaW46IDAgNnB4O1xuICAgICAgICBsaW5lLWhlaWdodDogNXB4O1xuICAgICAgICAmOmZpcnN0LWNoaWxke1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICB9XG4gICAgICAgICY6bGFzdC1jaGlsZHtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIH1cbiAgICAgICAgYnV0dG9ue1xuICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICAgIGhlaWdodDogNXB4O1xuICAgICAgICAgIHdpZHRoOiA1MHB4O1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICAgIHRleHQtaW5kZW50OiAtOTk5OXB4O1xuICAgICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cbiAgICAgICAgJi5zbGljay1hY3RpdmUgYnV0dG9ue1xuICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgkbGFwdG9wKSB7XG4gICAgLmJhbm5lcntcbiAgICAgIGhlaWdodDogNDAwcHg7XG4gICAgfVxuICB9XG4gIEBpbmNsdWRlIG1lZGlhKCR0YWJsZXQpIHtcbiAgICAuYmFubmVye1xuICAgICAgaGVpZ2h0OiAzNjBweDtcbiAgICB9XG4gICAgJi1kb3Rze1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgLnNsaWNrLWRvdHN7XG4gICAgICAgIGJvdHRvbTogMjBweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGluY2x1ZGUgbWVkaWEoJG1vYmlsZSkge1xuICAgIC5iYW5uZXJ7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCFpbXBvcnRhbnQ7XG4gICAgICAmLWNvbnRlbnR7XG4gICAgICAgIG1heC13aWR0aDogbm9uZSFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgICAmLW1vYmlsZWltYWdle1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAzMDBweDtcbiAgICAgIH1cbiAgICAgICYtb3ZlcmxheXtcbiAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgJi10ZXh0e1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgJi1kb3Rze1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbn1cbiIsIi5jb250YWN0Zm9ybSB7XG4gIHotaW5kZXg6IDMwMDA7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIGJhY2tncm91bmQ6ICRjb2xvckJsYWNrIGNlbnRlciBjZW50ZXI7XG5cbiAgI3Bvc3RhbGNvZGUtZXJyb3Ige1xuICAgIEBleHRlbmQgLmdyaWQtc3BhbjEyO1xuICB9XG5cbiAgbGFiZWwge1xuICAgIGNvbG9yOiAkY29sb3JXaGl0ZTtcbiAgfVxuXG4gIGlucHV0LCB0ZXh0YXJlYSwgLmNob3Nlbi1zaW5nbGUsIC5jaG9zZW4tc2luZ2xlIHNwYW4ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvck1ldGFsICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICRjb2xvcldoaXRlciAhaW1wb3J0YW50O1xuXG4gICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgY29sb3I6ICRjb2xvcldoaXRlO1xuICAgIH1cblxuICAgICYuZXJyb3Ige1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yUmVkXG4gICAgfVxuICB9XG5cbiAgdGV4dGFyZWEge1xuICAgIGhlaWdodDogNzBweDtcbiAgfVxuXG4gIC5jaG9zZW4tZHJvcCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yTWV0YWwgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5jaG9zZW4tcmVzdWx0cyB7XG4gICAgY29sb3I6ICRjb2xvcldoaXRlICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogMHB4IDVweCAxMHB4IDBweCByZ2JhKDAsMCwwLDAuMyk7XG5cbiAgICBsaS5oaWdobGlnaHRlZCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKCRjb2xvck1ldGFsLCA1KSAhaW1wb3J0YW50O1xuICAgICAgY29sb3I6ICRjb2xvcldoaXRlICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgJi1jZWxsIHtcbiAgICBwYWRkaW5nOiAyM3B4IDI1cHg7XG5cbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgIGJvcmRlci1yaWdodDogMnB4IHNvbGlkICMwMDA7XG4gICAgfVxuXG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgICB9XG4gIH1cblxuICAmLXBob25lIHtcbiAgICBjb2xvcjogJGNvbG9yUmVkICFpbXBvcnRhbnQ7XG4gIH1cblxuICAmLWVtYWlsIHtcbiAgICBjb2xvcjogJGNvbG9yUmVkO1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lICFpbXBvcnRhbnQ7XG4gIH1cblxuICBwIHtcbiAgICBmb250LWZhbWlseTogJGZvbnRSb2JvdG87XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICBjb2xvcjogI2ZmZmZmZjtcbiAgfVxuXG4gICYtdGl0bGUge1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgZm9udC1mYW1pbHk6ICRmb250Um9ib3RvO1xuICAgIGZvbnQtc2l6ZTogMjVweDtcbiAgICBmb250LXdlaWdodDogOTAwO1xuICAgIGNvbG9yOiAjZmZmZmZmO1xuICB9XG5cbn1cbiIsIi52aWRlb3tcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nLWJvdHRvbTogNTYuMjUlOyAvKiAxNjo5ICovXG4gIGhlaWdodDogMDtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gIGlmcmFtZSB7XG4gIFx0cG9zaXRpb246IGFic29sdXRlO1xuICBcdHRvcDogMDtcbiAgXHRsZWZ0OiAwO1xuICBcdHdpZHRoOiAxMDAlO1xuICBcdGhlaWdodDogMTAwJTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKCRtb2JpbGUpIHtcbiAgICAmLXdyYXBwZXJ7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgIH1cbiAgfVxufVxuIiwiLm1vZGFsIHtcbiAgbWF4LXdpZHRoOiA2MCU7XG4gIHBhZGRpbmc6IDIwcHg7XG4gIHdpZHRoOiBhdXRvO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCR0YWJsZXQpIHtcbiAgICBtYXgtd2lkdGg6IDkwJTtcbiAgfVxuICBAaW5jbHVkZSBtZWRpYSgkbW9iaWxlKSB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDEycHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICBpbWcge1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICB9XG59XG4iLCIvKlxuIE1heCBoZWlnaHQgaXMgOTRweC4gTGltaXRlZCBieSBlZmZlY3RcbiovXG4uY2hvaWNlYmFye1xuICBwYWRkaW5nOiAyNXB4IDA7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yUmVkO1xuICBoZWlnaHQ6IDA7XG4gIHBhZGRpbmc6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIEBpbmNsdWRlIHRyYW5zaXRpb24ocGFkZGluZyAuOHMsIGhlaWdodCAuOHMpO1xuICAmLS1hY3RpdmV7XG4gICAgcGFkZGluZzogMjVweCAwO1xuICAgIGhlaWdodDogOTRweDtcbiAgfVxuICAmLXRpdGxle1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGxpbmUtaGVpZ2h0OiA0NHB4O1xuICAgIGZvbnQtc2l6ZTogMzBweDtcbiAgICBmb250LXdlaWdodDogMzAwO1xuICAgIHN0cm9uZ3tcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIH1cbiAgfVxuICAmLWxhYmVse1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xuICAgIG1hcmdpbi10b3A6IDRweDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgZm9udC1zaXplOiAyMHB4O1xuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgd2hpdGU7XG4gICAgbGluZS1oZWlnaHQ6IDM2cHg7XG4gIH1cbiAgJi1saXN0e1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICBtYXJnaW46IDJweCAwIDAgMjBweDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIEBpbmNsdWRlIGNsZWFyZml4KCk7XG4gICAgbGl7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIG1hcmdpbi1sZWZ0OiA3cHg7XG4gICAgICAmOmZpcnN0LWNoaWxke1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgIH1cbiAgICAgIGF7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiA0NnB4O1xuICAgICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgICAgICY6YmVmb3Jle1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgei1pbmRleDogMTAwO1xuICAgICAgICAgIGJhY2tncm91bmQ6IHVybCgvaW1nL2ZsYWdzL3NoYWRvdy5zdmcpIG5vLXJlcGVhdCAwIDA7XG4gICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKG9wYWNpdHkgLjNzKTtcbiAgICAgICAgfVxuICAgICAgICBpbWd7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHotaW5kZXg6IDE1MDtcbiAgICAgICAgICBsZWZ0OiA1cHg7XG4gICAgICAgICAgdG9wOiA0cHg7XG4gICAgICAgICAgd2lkdGg6IDM2cHg7XG4gICAgICAgICAgaGVpZ2h0OiAzMnB4O1xuICAgICAgICB9XG4gICAgICAgICY6aG92ZXJ7XG4gICAgICAgICAgJjpiZWZvcmV7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKCRsYXB0b3ApIHtcbiAgICAmLXRpdGxle1xuICAgICAgZm9udC1zaXplOiAyM3B4O1xuICAgIH1cbiAgICAmLWxpc3R7XG4gICAgICBtYXJnaW4tdG9wOiA3cHg7XG4gICAgICBsaXtcbiAgICAgICAgYXtcbiAgICAgICAgICB3aWR0aDogMzNweDtcbiAgICAgICAgICBoZWlnaHQ6IDMycHg7XG4gICAgICAgICAgJjpiZWZvcmV7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoL2ltZy9mbGFncy9zaGFkb3cuc3ZnKSBuby1yZXBlYXQgMCAwO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiAxMDAlIDEwMCU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGltZ3tcbiAgICAgICAgICAgIHdpZHRoOiAyN3B4O1xuICAgICAgICAgICAgaGVpZ2h0OiAyNHB4O1xuICAgICAgICAgICAgbGVmdDogM3B4O1xuICAgICAgICAgICAgdG9wOiA0cHg7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgICYtbGFiZWx7XG4gICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICBtYXJnaW4tdG9wOiA2cHg7XG4gICAgfVxuICB9XG4gIEBpbmNsdWRlIG1lZGlhKCR0YWJsZXQpIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4iLCIubW9iaWxlaGVhZGVye1xuICBkaXNwbGF5OiBub25lO1xuICBoZWlnaHQ6ICRtb2JpbGVIZWFkZXJIZWlnaHQ7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgei1pbmRleDogMTAwMDtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkY29sb3JHcmV5O1xuXG4gICYtbG9nb3tcbiAgICBpbWd7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgfVxuICAgICYtd3JhcHBlcntcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICBoZWlnaHQ6ICRtb2JpbGVIZWFkZXJIZWlnaHQ7XG4gICAgICBAaW5jbHVkZSB2ZXJ0aWNhbC1jZW50ZXItY2hpbGQoMHB4KTtcbiAgICB9XG4gIH1cblxuICAmLWl0ZW17XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIGhlaWdodDogY2FsYygjeyRtb2JpbGVIZWFkZXJIZWlnaHR9IC0gMXB4KTtcbiAgICB3aWR0aDogNjBweDtcbiAgICBtYXgtd2lkdGg6IDMwJTtcbiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICRjb2xvckdyZXk7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIC4ycyk7XG4gICAgJjpob3ZlcntcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcldoaXRlIWltcG9ydGFudDtcbiAgICB9XG4gICAgJi13cmFwcGVye1xuICAgICAgQGluY2x1ZGUgY2xlYXJmaXgoKTtcbiAgICB9XG4gICAgJi0tbW9iaWxle1xuICAgICAgYmFja2dyb3VuZDogdXJsKC9pbWcvbW9iaWxlLnN2Zykgbm8tcmVwZWF0IGNlbnRlciBjZW50ZXI7XG4gICAgfVxuICAgICYtLW1haWx7XG4gICAgICBiYWNrZ3JvdW5kOiB1cmwoL2ltZy9lbWFpbC5zdmcpIG5vLXJlcGVhdCBjZW50ZXIgY2VudGVyO1xuICAgIH1cbiAgICAmLS1zZWFyY2h7XG4gICAgICBiYWNrZ3JvdW5kOiB3aGl0ZSB1cmwoL2ltZy9tYWduaWZ5ZXJfZGFyay5zdmcpIG5vLXJlcGVhdCBjZW50ZXIgY2VudGVyO1xuICAgIH1cbiAgICAmLS1idXJnZXJ7XG4gICAgICBiYWNrZ3JvdW5kOiB3aGl0ZSB1cmwoL2ltZy9idXJnZXIuc3ZnKSBuby1yZXBlYXQgY2VudGVyIGNlbnRlcjtcbiAgICAgIC5tb2JpbGVtZW51LW9wZW4gJntcbiAgICAgICAgYmFja2dyb3VuZDogd2hpdGUgdXJsKC9pbWcvY2xvc2Uuc3ZnKSBuby1yZXBlYXQgY2VudGVyIGNlbnRlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgkdGFibGV0KSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cbiIsIi5tb2JpbGVtZW51e1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHotaW5kZXg6IDEwMDA7XG4gIHRvcDogJG1vYmlsZUhlYWRlckhlaWdodDtcbiAgYm90dG9tOiAwO1xuICBib3gtc2hhZG93OiA0cHggNHB4IDhweCAtNHB4IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG5cbiAgbGVmdDogY2FsYygtMTAwJSAtIDEwcHgpO1xuICBtYXgtd2lkdGg6IDQ1MHB4O1xuICB3aWR0aDogMTAwJTtcbiAgQGluY2x1ZGUgdHJhbnNpdGlvbihsZWZ0IC40cyk7XG5cbiAgLm1vYmlsZW1lbnUtb3BlbiAme1xuICAgIGxlZnQ6IDA7XG4gIH1cblxuICB1bHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBsaXtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICY6YWZ0ZXJ7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICAgIGxlZnQ6IDIwcHg7XG4gICAgICAgIHJpZ2h0OiAyMHB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3JHcmV5O1xuICAgICAgfVxuICAgICAgJjpsYXN0LWNoaWxke1xuICAgICAgICAmOmFmdGVye1xuICAgICAgICAgIGNvbnRlbnQ6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGF7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBsaW5lLWhlaWdodDogMjFweDtcbiAgICAgICAgcGFkZGluZzogMTVweCAyMHB4O1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgLjJzKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgICAgIGNvbG9yOiAkY29sb3JSZWQ7XG4gICAgICAgICY6aG92ZXJ7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yV2hpdGU7XG4gICAgICAgICAgY29sb3I6ICRjb2xvclJlZDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAmLm1vYmlsZW1lbnUtc3Vie1xuICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICAgIGxpe1xuICAgICAgICBhe1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvclJlZDtcbiAgICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgICAgJjpob3ZlcntcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigkY29sb3JSZWQsIDgpO1xuICAgICAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICAmLXRpdGxle1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbjogMCAyMHB4IDEwcHggMjBweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICB9XG4gICYtZmxhZ3tcbiAgICBmbG9hdDogbGVmdDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luOiAxMHB4O1xuICAgIGltZ3tcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKG9wYWNpdHkgLjJzKTtcbiAgICB9XG4gICAgJjpob3ZlcntcbiAgICAgIGltZ3tcbiAgICAgICAgb3BhY2l0eTogLjg7XG4gICAgICB9XG4gICAgfVxuICAgICYtY29udGFpbmVye1xuICAgICAgQGluY2x1ZGUgY2xlYXJmaXgoKTtcbiAgICAgIG1hcmdpbjogMCAxMHB4IDIwcHggMTBweDtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgkdGFibGV0YWJvdmUpIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4iLCIjY29udG91ciwgLmNvbnRvdXJcbntcblx0cGFkZGluZzogMCFpbXBvcnRhbnQ7XG59XG4jY29udG91ciBsYWJlbC5maWVsZExhYmVsLCAuY29udG91ciBsYWJlbC5maWVsZExhYmVsXG57XG4gIGRpc3BsYXk6IGlubGluZSFpbXBvcnRhbnQ7XG5cdGZvbnQtd2VpZ2h0OiA1MDAhaW1wb3J0YW50O1xufVxuXG4jY29udG91ciBmaWVsZHNldCwgLmNvbnRvdXIgZmllbGRzZXRcbntcblx0cGFkZGluZzogMCFpbXBvcnRhbnQ7XG5cdG1hcmdpbjogMCFpbXBvcnRhbnQ7XG59XG5cbiNjb250b3VyIC5jb250b3VyTmF2aWdhdGlvbiB7XG4gIHBhZGRpbmc6IDAhaW1wb3J0YW50O1xufVxuXG4jY29udG91ciBpbnB1dC50ZXh0LCAjY29udG91ciBpbnB1dC50aXRsZSwgI2NvbnRvdXIgdGV4dGFyZWEsICNjb250b3VyIHNlbGVjdCxcbi5jb250b3VyIGlucHV0LnRleHQsIC5jb250b3VyIGlucHV0LnRpdGxlLCAuY29udG91ciB0ZXh0YXJlYSwgLmNvbnRvdXIgc2VsZWN0XG57XG5cdG1hcmdpbjogMCAwIDIwcHggMCFpbXBvcnRhbnQ7XG5cdGJvcmRlcjogMCFpbXBvcnRhbnQ7XG59XG4jY29udG91ciBpbnB1dC50ZXh0OmZvY3VzLCAjY29udG91ciBpbnB1dC50aXRsZTpmb2N1cywgI2NvbnRvdXIgdGV4dGFyZWE6Zm9jdXMsICNjb250b3VyIHNlbGVjdDpmb2N1cyxcbi5jb250b3VyIGlucHV0LnRleHQ6Zm9jdXMsIC5jb250b3VyIGlucHV0LnRpdGxlOmZvY3VzLCAuY29udG91ciB0ZXh0YXJlYTpmb2N1cywgLmNvbnRvdXIgc2VsZWN0OmZvY3VzXG57XG5cdGJvcmRlcjogMCFpbXBvcnRhbnQ7XG59XG5cbiNjb250b3VyIGlucHV0LnRleHQsICNjb250b3VyIHRleHRhcmVhLFxuLmNvbnRvdXItd3JhcHBlciAuY29udG91ciBpbnB1dC50ZXh0LCAuY29udG91ci13cmFwcGVyIC5jb250b3VyIHRleHRhcmVhXG57XG5cdG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50O1xuXHRwYWRkaW5nOiAxM3B4IDIwcHghaW1wb3J0YW50O1xuICB3aWR0aDogMTAwJSFpbXBvcnRhbnQ7XG59XG5cbiNjb250b3VyIHRleHRhcmVhLFxuLmNvbnRvdXIgdGV4dGFyZWFcbntcblx0aGVpZ2h0OiAyMDBweCFpbXBvcnRhbnQ7XG59XG5cbiNjb250b3VyIHNwYW4uY2hlY2tib3hsaXN0LCAjY29udG91ciBzcGFuLnJhZGlvYnV0dG9ubGlzdCwgI2NvbnRvdXIgc3Bhbi5jaGVja2JveCxcbi5jb250b3VyIHNwYW4uY2hlY2tib3hsaXN0LCAuY29udG91ciBzcGFuLnJhZGlvYnV0dG9ubGlzdCwgLmNvbnRvdXIgc3Bhbi5jaGVja2JveFxue1xuXHRmbG9hdDogbm9uZSFpbXBvcnRhbnQ7XG5cdHBhZGRpbmc6IDAhaW1wb3J0YW50O1xufVxuI2NvbnRvdXIgLmNoZWNrYm94bGlzdCBpbnB1dCwgI2NvbnRvdXIgLnJhZGlvYnV0dG9ubGlzdCBpbnB1dCwgI2NvbnRvdXIgLmNoZWNrYm94IGlucHV0LFxuLmNvbnRvdXItd3JhcHBlciAuY29udG91ciAuY2hlY2tib3hsaXN0IGlucHV0LCAuY29udG91ci13cmFwcGVyIC5jb250b3VyIC5yYWRpb2J1dHRvbmxpc3QgaW5wdXQsIC5jb250b3VyLXdyYXBwZXIgLmNvbnRvdXIgLmNoZWNrYm94IGlucHV0IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi5jb250b3VyIC5idG57XG4gIEBleHRlbmQgLmJ1dHRvbi1leHRlbmRlcjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMCBhdXRvIDIwcHggYXV0bztcbiAgbWF4LXdpZHRoOiAyNDBweDtcbn1cbi5jb250b3VyIC5jaGVja2JveGxpc3R7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIGxhYmVse1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG59XG4uY29udG91ciBpbnB1dFt0eXBlPVwic3VibWl0XCJde1xuICBtYXJnaW4tdG9wOiA2MHB4IWltcG9ydGFudDtcbn1cbiNjb250b3VyIGlucHV0LmNvbnRvdXJFcnJvciwgI2NvbnRvdXIgdGV4dGFyZWEuY29udG91ckVycm9yLCAjY29udG91ciBpbnB1dC5pbnB1dC12YWxpZGF0aW9uLWVycm9yLCAjY29udG91ciB0ZXh0YXJlYS5pbnB1dC12YWxpZGF0aW9uLWVycm9yIC5jb250b3VyIGlucHV0LmNvbnRvdXJFcnJvcixcbi5jb250b3VyIHRleHRhcmVhLmNvbnRvdXJFcnJvciwgLmNvbnRvdXIgaW5wdXQuaW5wdXQtdmFsaWRhdGlvbi1lcnJvciwgLmNvbnRvdXIgdGV4dGFyZWEuaW5wdXQtdmFsaWRhdGlvbi1lcnJvciB7XG4gICAgYmFja2dyb3VuZDogJGNvbG9yR3JleURhcmshaW1wb3J0YW50O1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkICRjb2xvclJlZCFpbXBvcnRhbnQ7XG59XG4uY29udG91ci13cmFwcGVyICNjb250b3VyIHNwYW4uY29udG91ckVycm9yLCAuY29udG91ci13cmFwcGVyICNjb250b3VyIHNwYW4uZmllbGQtdmFsaWRhdGlvbi1lcnJvciAuY29udG91ciBzcGFuLmNvbnRvdXJFcnJvciwgLmNvbnRvdXItd3JhcHBlciAuY29udG91ciBzcGFuLmZpZWxkLXZhbGlkYXRpb24tZXJyb3Ige1xuICBjb2xvcjogJGNvbG9yUmVkIWltcG9ydGFudDtcbn1cbiNjb250b3VyIC5maWVsZC12YWxpZGF0aW9uLWVycm9yLCAuY29udG91ciAuZmllbGQtdmFsaWRhdGlvbi1lcnJvciB7XG4gIHBhZGRpbmctbGVmdDogMCFpbXBvcnRhbnQ7XG5cdGZvbnQtc2l6ZTogMTRweDtcblx0ZGlzcGxheTogYmxvY2s7XG5cdG1hcmdpbi1ib3R0b206IDhweDtcbn1cbi5jb250b3VySW5kaWNhdG9ye1xuXHRjb2xvcjogJGNvbG9yUmVkIWltcG9ydGFudDtcbn1cblxuQGluY2x1ZGUgbWVkaWEoJHRhYmxldCkge1xuICAuY29udG91ciBpbnB1dFt0eXBlPVwic3VibWl0XCJde1xuICAgIG1hcmdpbi10b3A6IDMwcHghaW1wb3J0YW50O1xuICB9XG59XG4iLCJpbnB1dC5sYWJlbGF1dHkgKyBsYWJlbHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrIWltcG9ydGFudDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogbm9uZSFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDAhaW1wb3J0YW50O1xuICBsaW5lLWhlaWdodDogMjVweDtcbiAgbWFyZ2luOiAtMnB4IDVweCAwIDAhaW1wb3J0YW50O1xufVxuaW5wdXQubGFiZWxhdXR5ICsgbGFiZWwgPiBzcGFuLmxhYmVsYXV0eS11bmNoZWNrZWQtaW1hZ2UsIGlucHV0LmxhYmVsYXV0eSArIGxhYmVsID4gc3Bhbi5sYWJlbGF1dHktY2hlY2tlZC1pbWFnZSB7XG4gIHdpZHRoOiAyNXB4O1xuICBoZWlnaHQ6IDI1cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2xvckdyZXlEYXJrO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG59XG5pbnB1dC5sYWJlbGF1dHkgKyBsYWJlbCA+IHNwYW4ubGFiZWxhdXR5LXVuY2hlY2tlZC1pbWFnZSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG59XG5pbnB1dC5sYWJlbGF1dHkgKyBsYWJlbCA+IHNwYW4ubGFiZWxhdXR5LWNoZWNrZWQtaW1hZ2Uge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoL2ltZy9jaGVjay5zdmcpIWltcG9ydGFudDtcbn1cbiIsIi5ydGV7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgaDN7XG4gICAgZm9udC1zaXplOiAyNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgbGluZS1oZWlnaHQ6IDEuNzU7XG4gIH1cbiAgaDR7XG4gICAgbWFyZ2luLWJvdHRvbTogNHB4O1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjk7XG4gIH1cblxuICBpbWcge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgfVxufVxuIiwiLnN1cHBsaWVyLWxvZ2luIHtcbiAgJi1jb250YWluZXIge1xuICAgIG1heC13aWR0aDogNjAwcHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICAmLWVtYWlsLWlucHV0IHtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICB9XG5cbiAgJi1wYXNzd29yZC1pbnB1dCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMzBweDtcbiAgfVxuXG4gICYtYm94IHtcbiAgICBwYWRkaW5nOiAzNXB4O1xuICAgICAgbWFyZ2luLXRvcDogMzVweDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDM1cHg7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuXG4gICAgICAmLXRpdGxlIHtcbiAgICAgICAgICBmb250LXNpemU6IDMwcHg7XG4gICAgICAgIGNvbG9yOiAkY29sb3JHcmV5RGFya2VzdDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDU4cHg7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIH1cblxuICAgICAgJi1zdWJ0aXRsZSB7XG4gICAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICBmb250LXdlaWdodDogMzAwO1xuICAgICAgICBsaW5lLWhlaWdodDogMS41O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICB9XG4gIH1cblxuICAmLWVycm9yIHtcbiAgICBjb2xvcjogcmVkO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuXG4gICYtYnRuIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvclJlZDtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIC4ycyk7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigkY29sb3JSZWQsIDEyKTtcbiAgICB9XG4gIH1cbn1cblxuI3N1cHBsaWVyLWxvZ2luLWVycm9yIHtcbiAgY29sb3I6ICRjb2xvclJlZDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufSIsIi5zZXBlcmF0b3J7XG4gIHdpZHRoOiA1NjBweDtcbiAgaGVpZ2h0OiAyMHB4O1xuICBtYXJnaW46IDAgYXV0bztcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCB1cmwoL2ltZy9zZXBlcmF0b3IucG5nKSBuby1yZXBlYXQgY2VudGVyO1xuICBiYWNrZ3JvdW5kLXNpemU6IDEwMCUgYXV0bztcbn1cbiIsIi52aWRlb2JveHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIGNvbG9yOiAkY29sb3JHcmV5RGFya2VzdCFpbXBvcnRhbnQ7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxpbmUtaGVpZ2h0OiAyNXB4O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgJi1pbWFnZXdyYXBwZXJ7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgb3BhY2l0eTogMTtcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKG9wYWNpdHkgLjJzKTtcbiAgICAmOmJlZm9yZXtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgdG9wOiBjYWxjKDUwJSAtIDMzcHgpO1xuICAgICAgbGVmdDogY2FsYyg1MCUgLSAzOHB4KTtcbiAgICAgIHdpZHRoOiA3NnB4O1xuICAgICAgaGVpZ2h0OiA2NnB4O1xuICAgICAgYmFja2dyb3VuZDogdXJsKC9pbWcveW91dHViZS5zdmcpIG5vLXJlcGVhdCAwIDA7XG4gICAgfVxuICB9XG5cbiAgaW1ne1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG4gICYtY29udGVudHtcbiAgICBtaW4taGVpZ2h0OiA1MHB4O1xuICB9XG4gICY6aG92ZXJ7XG4gICAgLnZpZGVvYm94LWltYWdld3JhcHBlcntcbiAgICAgIG9wYWNpdHk6IDAuODtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgkbW9iaWxlKSB7XG4gICAgJi1jb250ZW50e1xuICAgICAgbWluLWhlaWdodDogMDtcbiAgICB9XG4gIH1cbn1cbiIsIi5maWx0ZXJpdGVte1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIHBhZGRpbmc6IDlweCAyMHB4IDhweCAyMHB4O1xuICBsaW5lLWhlaWdodDogMjNweDtcbiAgZm9udC1mYW1pbHk6ICRmb250Um9ib3RvO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY29sb3I6ICRjb2xvckdyZXlEYXJrZXN0O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3JHcmV5RGFyaztcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBAaW5jbHVkZSB0cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgLjJzKTtcbiAgJi0tYWN0aXZle1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvclJlZDtcbiAgICBjb2xvcjogd2hpdGU7XG4gIH1cbiAgJjpob3ZlcntcbiAgICBjb2xvcjogJGNvbG9yR3JleURhcmtlc3Q7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRjb2xvckdyZXlEYXJrLCAxMik7XG4gICAgJi5maWx0ZXJpdGVtLS1hY3RpdmV7XG4gICAgICBjb2xvcjogd2hpdGU7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJGNvbG9yUmVkLCAxMik7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJG1vYmlsZSkge1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gNDBweCk7XG4gIH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDM4MHB4KSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWJvdHRvbTogMTVweDtcbiAgfVxufVxuIiwiLmVtcGxveWVlcyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMzVweDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBvdmVyZmxvdzogYXV0bztcblxuXHQuZW1wbG95ZWUge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1heC13aWR0aDogMjUwcHg7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgcGFkZGluZy1ib3R0b206IDZweDtcbiAgICBtYXJnaW4tdG9wOiAxNXB4O1xuXG4gICAgYSB7XG4gICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgfVxuXG5cdFx0Ji1uYW1lIHtcblx0XHRcdG1hcmdpbjogMjhweCAwIDE0cHg7XG5cdCAgICBjb2xvcjogJGNvbG9yUmVkO1xuXHRcdH1cblxuXHRcdCYtbG9jYXRpb24ge1xuICAgIFx0Zm9udC1zaXplOiAxNHB4O1xuICBcdFx0Zm9udC1zdHlsZTogaXRhbGljO1xuICBcdFx0bWluLWhlaWdodDogNDNweDtcblx0XHR9XG5cblx0XHQmLXBob25lIHtcblx0ICAgIHdpZHRoOiAxMDAlO1xuICAgIFx0Zm9udC1zaXplOiAxNHB4O1xuXHRcdH1cblxuXHRcdCYtcGhvdG8ge1xuXHRcdFx0bWFyZ2luOiAwIGF1dG87XG5cdCAgICBtYXgtd2lkdGg6IDEwMCU7XG5cdCAgICB3aWR0aDogMTAwJTtcblx0XHR9XG5cdH1cbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxDQUFQLHVEQUFPO0FBQ1AsT0FBTyxDQUFQLDZEQUFPO0FzRm9DUCxPQUFPLENBQUMsOEVBQUk7QUdsQ1YsQUFBQSxJQUFJLENBQUM7RUFDSCxVQUFVLEVBQUUsVUFBVyxHQUN4Qjs7QUFFRCxBQUFBLENBQUMsRUFBRCxBQUFBLENBQUMsQUFFRSxPQUFPLEVBRlYsQUFBQSxDQUFDLEFBR0UsUUFBUSxDQUFDO0VBQ1IsVUFBVSxFQUFFLE9BQVEsR0FDckI7O0FlWkwsQUFBQSxJQUFJLENBQUM7RUFDSCxNQUFNLEVBQUUsQ0FBRTtFQUNWLEtBQUssRWxCVVksT0FBTztFa0JUeEIsV0FBVyxFbEI2QkEsUUFBUSxFQUFFLFVBQVU7RWtCNUIvQixnQkFBZ0IsRWxCVUwsT0FBTztFa0JUbEIsU0FBUyxFQUFFLElBQUs7RUFDaEIsV0FBVyxFQUFFLEdBQUksR0FJbEI7RVA0RUcsTUFBTSxDQUFOLE1BQU0sTUFBTSxTQUFTLEVBQUUsS0FBSztJT3RGaEMsQUFBQSxJQUFJLENBQUM7TUFRRCxVQUFVLEVsQjJCTyxJQUFJLENrQjNCVSxVQUFVLEdBRTVDOztBQUNELEFBQUEsRUFBRSxFQUFFLEFBQUEsRUFBRSxFQUFFLEFBQUEsRUFBRSxFQUFFLEFBQUEsRUFBRSxFQUFFLEFBQUEsRUFBRSxFQUFFLEFBQUEsRUFBRSxDQUFBO0VBQ3BCLE1BQU0sRUFBRSxDQUFFLEdBQ1g7O0FBQ0QsQUFBQSxFQUFFLENBQUE7RUFDQSxjQUFj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 */
