html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline; }

/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
  display: block; }

body {
  line-height: 1; }

ol, ul {
  list-style: none; }

blockquote, q {
  quotes: none; }

blockquote:before, blockquote:after,
q:before, q:after {
  content: '';
  content: none; }

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

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

img {
  max-width: 100%; }

@media (min-width: 768px) {
  .mobile {
    display: none; } }

.desktop {
  display: none; }
  @media (min-width: 768px) {
    .desktop {
      display: block; } }

html {
  height: 100%;
  background: -webkit-linear-gradient(#234957, #29103f);
  background: linear-gradient(#234957, #29103f); }

body {
  background: -webkit-linear-gradient(#234957, #29103f);
  background: linear-gradient(#234957, #29103f);
  font-family: "roboto-slab", "Helvetica", "Arial";
  color: #fff;
  min-height: 100%; }

.section {
  position: relative;
  padding: 30px 0; }
  @media (min-width: 768px) {
    .section {
      padding: 50px 0; } }
  .section:first-child:before {
    border-top: none; }
  .section.reverse {
    background: transparent; }
  .section:after {
    content: "";
    position: absolute; }

h1 {
  text-transform: uppercase;
  font-size: 30px;
  font-family: "aller-display";
  font-weight: 400;
  text-shadow: 0 2px 0px rgba(0, 0, 0, 0.4);
  display: block;
  color: #fff;
  margin-bottom: 20px; }
  @media (min-width: 768px) {
    h1 {
      font-size: 54px;
      text-shadow: 0 3px 0px rgba(0, 0, 0, 0.4); } }

h2 {
  color: #fff;
  font-size: 24px;
  line-height: 1.3;
  margin-bottom: 20px; }
  @media (min-width: 768px) {
    h2 {
      font-size: 32px; } }

h2.prehead {
  font-size: 16px;
  font-family: "open-sans", "Helvetica", "Arial";
  font-weight: 600;
  text-shadow: 0 2px 0px rgba(0, 0, 0, 0.5);
  margin-bottom: 0px; }

h3.subtitle {
  text-transform: uppercase;
  font-size: 24px;
  font-family: "aller-display";
  font-weight: 400;
  color: #fff;
  margin-bottom: 40px;
  text-align: center;
  text-shadow: 0 2px 0px rgba(0, 0, 0, 0.2);
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }
  @media (min-width: 768px) {
    h3.subtitle {
      text-align: left;
      font-size: 28px;
      text-shadow: 0 3px 0px rgba(0, 0, 0, 0.2); } }
  h3.subtitle.large {
    font-size: 28px; }
    @media (min-width: 768px) {
      h3.subtitle.large {
        font-size: 40px; } }

p, li {
  font-size: 16px;
  font-weight: 400; }
  @media (min-width: 768px) {
    p, li {
      font-size: 18px; } }

p {
  line-height: 1.5;
  font-weight: 400;
  margin-bottom: 25px;
  font-family: "open-sans", "Helvetica", "Arial";
  color: #e3e7e7;
  text-shadow: 0 2px 1px rgba(0, 0, 0, 0.5); }
  p strong {
    font-weight: 700; }

li, dl, dt, dd {
  font-family: "open-sans", "Helvetica", "Arial";
  font-weight: 400; }
  li a, dl a, dt a, dd a {
    color: #e3e7e7; }
    li a:hover, dl a:hover, dt a:hover, dd a:hover {
      color: #fff; }

strong {
  font-weight: 500; }

a {
  text-decoration: none;
  -webkit-transition: color 0.5s;
  -moz-transition: color 0.5s;
  transition: color 0.5s; }

.button {
  outline: none;
  border: none;
  display: inline-block;
  padding: 15px 35px;
  min-width: 150px;
  text-transform: uppercase;
  color: #234957;
  cursor: pointer;
  background: #98f1e1;
  border-radius: 4px;
  letter-spacing: 1px;
  font-weight: bold;
  font-family: "aller-display";
  font-size: 16px;
  box-shadow: 0 2px 3px 2px rgba(0, 0, 0, 0.15);
  -webkit-transform: scale(1) translateZ(0px);
  -moz-transform: scale(1) translateZ(0px);
  -ms-transform: scale(1) translateZ(0px);
  -o-transform: scale(1) translateZ(0px);
  transform: scale(1) translateZ(0px);
  -webkit-transition: box-shadow 0.25s, -webkit-transform 0.25s, background 0.25s;
  -moz-transition: box-shadow 0.25s, -moz-transform 0.25s, background 0.25s;
  transition: box-shadow 0.25s, transform 0.25s, background 0.25s; }
  .button:hover {
    box-shadow: 0 1px 1px 1px rgba(0, 0, 0, 0.5);
    background: #a1f2e4;
    -webkit-transform: scale(0.98) translateZ(0px);
    -moz-transform: scale(0.98) translateZ(0px);
    -ms-transform: scale(0.98) translateZ(0px);
    -o-transform: scale(0.98) translateZ(0px);
    transform: scale(0.98) translateZ(0px);
    -webkit-transition: box-shadow 0.25s, -webkit-transform 0.25s, background 0.25s;
    -moz-transition: box-shadow 0.25s, -moz-transform 0.25s, background 0.25s;
    transition: box-shadow 0.25s, transform 0.25s, background 0.25s; }

.button.mac:before {
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: '\f179';
  margin-right: 10px;
  font-size: 21px;
  line-height: 16px; }

dl {
  max-width: 800px;
  margin: 75px auto 0; }
  dl em {
    font-style: italic; }
  dl dt, dl dd {
    color: #fff;
    text-align: left;
    line-height: 1.5;
    margin-bottom: 25px;
    font-weight: 400;
    font-size: 18px; }
  dl dt {
    font-weight: bold;
    text-transform: uppercase;
    font-size: 24px;
    font-family: "aller-display";
    font-weight: 400;
    color: #fff;
    margin-bottom: 40px;
    text-align: center;
    text-shadow: 0 2px 0px rgba(0, 0, 0, 0.2);
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-align: left; }
    @media (min-width: 768px) {
      dl dt {
        text-align: left;
        font-size: 28px;
        text-shadow: 0 3px 0px rgba(0, 0, 0, 0.2); } }
  dl dd {
    margin-bottom: 50px; }
    dl dd:last-child {
      margin-bottom: 0px; }
    dl dd ul {
      display: block;
      margin-top: 20px; }
      dl dd ul li {
        margin-bottom: 20px;
        font-weight: 400;
        position: relative;
        padding-left: 15px;
        margin-left: 15px; }
        dl dd ul li:before {
          position: absolute;
          top: 10px;
          left: 0px;
          content: '';
          display: inline-block;
          width: 6px;
          height: 6px;
          vertical-align: middle;
          border-radius: 500px;
          line-height: 18px;
          background: #fff; }

.wrapper {
  padding: 0 10px;
  max-width: 1300px;
  margin: 0px auto;
  position: relative; }
  .wrapper::after {
    clear: both;
    content: "";
    display: table; }
  @media (min-width: 768px) {
    .wrapper {
      padding: 0 20px; } }

.trello {
  display: block;
  text-align: center;
  margin: 0px auto; }
  .trello p, .trello a {
    color: #e3e7e7;
    font-weight: 400;
    font-size: 16px;
    line-height: 1.5;
    margin: 0px;
    margin-bottom: 15px; }
  .trello a {
    text-decoration: underline;
    -webkit-transition: color 0.5s;
    -moz-transition: color 0.5s;
    transition: color 0.5s; }
    .trello a:hover {
      color: #fff;
      -webkit-transition: color 0.25s;
      -moz-transition: color 0.25s;
      transition: color 0.25s; }

.teal {
  color: #9bf0e1; }

h2 {
  font-family: "aller-display";
  text-transform: uppercase; }

.referral.submitted form .contents,
.referral.submitted form button, .newsletter.submitted form .contents,
.newsletter.submitted form button, .stats.submitted form .contents,
.stats.submitted form button {
  display: none !important; }

.referral.submitted .success, .newsletter.submitted .success, .stats.submitted .success {
  display: block !important; }

.referral .success, .newsletter .success, .stats .success {
  display: none;
  text-align: center; }
  .referral .success h3, .newsletter .success h3, .stats .success h3 {
    font-size: 21px;
    font-weight: 300;
    color: #2ecc71;
    line-height: 1.3; }
    @media (min-width: 768px) {
      .referral .success h3, .newsletter .success h3, .stats .success h3 {
        font-size: 28px; } }

.referral .merchandise, .newsletter .merchandise, .stats .merchandise {
  display: block;
  margin-top: 50px; }
  .referral .merchandise li, .newsletter .merchandise li, .stats .merchandise li {
    font-size: 16px;
    font-weight: 600;
    margin-bottom: 30px; }
    @media (min-width: 768px) {
      .referral .merchandise li, .newsletter .merchandise li, .stats .merchandise li {
        font-size: 21px; } }

.referral form, .newsletter form, .stats form {
  text-align: center;
  max-width: 560px;
  margin: 0px auto;
  color: #9bf0e1; }
  .referral form .contents, .newsletter form .contents, .stats form .contents {
    border: 1px solid rgba(255, 255, 255, 0.25);
    padding: 20px 20px; }
    @media (min-width: 768px) {
      .referral form .contents, .newsletter form .contents, .stats form .contents {
        padding: 30px 50px 40px; } }
  .referral form button[type="submit"], .newsletter form button[type="submit"], .stats form button[type="submit"] {
    margin-top: 50px;
    outline: none;
    border: none;
    display: inline-block;
    padding: 15px 35px;
    min-width: 150px;
    text-transform: uppercase;
    color: #234957;
    cursor: pointer;
    background: #98f1e1;
    border-radius: 4px;
    letter-spacing: 1px;
    font-weight: bold;
    font-family: "aller-display";
    font-size: 16px;
    box-shadow: 0 2px 3px 2px rgba(0, 0, 0, 0.15);
    -webkit-transform: scale(1) translateZ(0px);
    -moz-transform: scale(1) translateZ(0px);
    -ms-transform: scale(1) translateZ(0px);
    -o-transform: scale(1) translateZ(0px);
    transform: scale(1) translateZ(0px);
    -webkit-transition: box-shadow 0.25s, -webkit-transform 0.25s, background 0.25s;
    -moz-transition: box-shadow 0.25s, -moz-transform 0.25s, background 0.25s;
    transition: box-shadow 0.25s, transform 0.25s, background 0.25s; }
    .referral form button[type="submit"]:hover, .newsletter form button[type="submit"]:hover, .stats form button[type="submit"]:hover {
      box-shadow: 0 1px 1px 1px rgba(0, 0, 0, 0.5);
      background: #a1f2e4;
      -webkit-transform: scale(0.98) translateZ(0px);
      -moz-transform: scale(0.98) translateZ(0px);
      -ms-transform: scale(0.98) translateZ(0px);
      -o-transform: scale(0.98) translateZ(0px);
      transform: scale(0.98) translateZ(0px);
      -webkit-transition: box-shadow 0.25s, -webkit-transform 0.25s, background 0.25s;
      -moz-transition: box-shadow 0.25s, -moz-transform 0.25s, background 0.25s;
      transition: box-shadow 0.25s, transform 0.25s, background 0.25s; }
  .referral form label, .newsletter form label, .stats form label {
    text-align: left;
    display: block;
    margin-bottom: 25px;
    color: #fff;
    opacity: .95;
    font-size: 16px;
    line-height: 1;
    margin-top: 10px;
    font-weight: 300; }
    .referral form label em, .newsletter form label em, .stats form label em {
      font-style: italic;
      font-weight: 100; }
  .referral form input, .newsletter form input, .stats form input {
    outline: none;
    background: transparent;
    box-shadow: none;
    border: none;
    border-bottom: 1px solid rgba(255, 255, 255, 0.25);
    line-height: 24px;
    font-size: 24px;
    padding-bottom: 5px;
    color: #fff;
    width: 100%;
    display: block;
    font-weight: 300;
    font-family: "open-sans", "Helvetica", "Arial"; }
    .referral form input::-webkit-input-placeholder, .newsletter form input::-webkit-input-placeholder, .stats form input::-webkit-input-placeholder {
      color: #e3e7e7; }
    .referral form input::-moz-placeholder, .newsletter form input::-moz-placeholder, .stats form input::-moz-placeholder {
      color: #e3e7e7; }
    .referral form input:-moz-placeholder, .newsletter form input:-moz-placeholder, .stats form input:-moz-placeholder {
      color: #e3e7e7; }
    .referral form input:-ms-input-placeholder, .newsletter form input:-ms-input-placeholder, .stats form input:-ms-input-placeholder {
      color: #e3e7e7; }
  .referral form .row, .newsletter form .row, .stats form .row {
    margin-bottom: 40px; }
    .referral form .row:last-child, .newsletter form .row:last-child, .stats form .row:last-child {
      margin-bottom: 0px; }

.subtle {
  opacity: .75;
  text-transform: uppercase;
  font-family: "open-sans", "Helvetica", "Arial";
  font-weight: 100;
  font-size: 14px; }

.download {
  text-align: center; }
  .download > div {
    margin-bottom: 40px; }
    .download > div a {
      min-width: 270px; }
  .download .app-store {
    display: block;
    margin-top: 40px;
    margin-bottom: 40px; }
    .download .app-store p {
      margin-bottom: 25px !important;
      opacity: .75; }
    .download .app-store img {
      max-width: 130px;
      margin-bottom: 0px !important;
      vertical-align: top;
      width: 100%; }
      @media (min-width: 768px) {
        .download .app-store img {
          max-width: 150px; } }
    .download .app-store a:first-child {
      margin-right: 15px; }
    .download .app-store a img {
      display: inline-block;
      box-shadow: 0 2px 3px 2px rgba(0, 0, 0, 0.15);
      border-radius: 6px;
      -webkit-transform: scale(1) translateZ(0px);
      -moz-transform: scale(1) translateZ(0px);
      -ms-transform: scale(1) translateZ(0px);
      -o-transform: scale(1) translateZ(0px);
      transform: scale(1) translateZ(0px);
      -webkit-transition: box-shadow 0.25s, -webkit-transform 0.25s, background 0.25s;
      -moz-transition: box-shadow 0.25s, -moz-transform 0.25s, background 0.25s;
      transition: box-shadow 0.25s, transform 0.25s, background 0.25s; }
    .download .app-store a:hover img {
      box-shadow: 0 1px 1px 1px rgba(0, 0, 0, 0.5);
      -webkit-transform: scale(0.98) translateZ(0px);
      -moz-transform: scale(0.98) translateZ(0px);
      -ms-transform: scale(0.98) translateZ(0px);
      -o-transform: scale(0.98) translateZ(0px);
      transform: scale(0.98) translateZ(0px);
      -webkit-transition: box-shadow 0.25s, -webkit-transform 0.25s, background 0.25s;
      -moz-transition: box-shadow 0.25s, -moz-transform 0.25s, background 0.25s;
      transition: box-shadow 0.25s, transform 0.25s, background 0.25s; }
  .download .subtle {
    margin-top: 40px; }

.newsletter h3 {
  text-align: center;
  margin-bottom: 20px; }

.newsletter h5 {
  color: #fff;
  font-size: 18px;
  font-weight: 300;
  text-align: center;
  margin: 0px auto;
  max-width: 1100px;
  line-height: 1.5;
  margin-bottom: 60px;
  text-shadow: 0 2px 0px rgba(0, 0, 0, 0.2); }
  @media (min-width: 768px) {
    .newsletter h5 {
      font-size: 21px; } }

.newsletter .success {
  margin-top: 80px; }

.video {
  margin-top: 80px; }
  .video iframe {
    border: 1px solid rgba(255, 255, 255, 0.25);
    max-width: 100%; }

.social {
  display: block;
  margin-bottom: 20px;
  margin-top: 0px;
  z-index: 1; }
  .social .icons {
    display: inline-block;
    background: rgba(0, 0, 0, 0.5);
    border-radius: 5px;
    overflow: hidden;
    padding: 0 5px; }
    .social .icons a {
      display: inline-block;
      font-size: 21px;
      width: 40px;
      height: 40px;
      line-height: 40px;
      text-align: center;
      vertical-align: center;
      color: #e3e7e7; }
      .social .icons a:hover {
        color: #fff; }
      .social .icons a:before {
        font: normal normal normal 14px/1 FontAwesome;
        font-size: inherit;
        text-rendering: auto;
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale;
        content: '\f09a'; }
      .social .icons a.twitter:before {
        content: '\f099'; }
      .social .icons a.email:before {
        content: '\f0e0'; }
      .social .icons a.reddit:before {
        content: '\f281'; }

/* Scroll in View */
html body.landing.index *.siv,
html body.landing.invite *.siv,
html body.stats *.siv,
html body.top-tracks *.siv,
html body.info *.siv {
  opacity: 0;
  position: relative;
  -webkit-transform: translateY(14px) translateZ(0px) !important;
  -moz-transform: translateY(14px) translateZ(0px) !important;
  -ms-transform: translateY(14px) translateZ(0px) !important;
  -o-transform: translateY(14px) translateZ(0px) !important;
  transform: translateY(14px) translateZ(0px) !important;
  -webkit-transition: all .5s ease-out !important;
  -moz-transition: all .5s ease-out !important;
  -ms-transition: all .5s ease-out !important;
  -o-transition: all .5s ease-out !important;
  transition: all .5s ease-out !important; }
  html body.landing.index *.siv.visible,
  html body.landing.invite *.siv.visible,
  html body.stats *.siv.visible,
  html body.top-tracks *.siv.visible,
  html body.info *.siv.visible {
    -webkit-transform: translateY(0px) !important;
    -moz-transform: translateY(0px) !important;
    -ms-transform: translateY(0px) !important;
    -o-transform: translateY(0px) !important;
    transform: translateY(0px) !important;
    opacity: 1; }

/* Disable on tablet and phones */
body.mobile.landing.index .siv,
body.mobile.landing.invite .siv,
body.mobile.stats .siv,
body.mobile.top-tracks .siv,
body.mobile.info .siv {
  top: auto;
  opacity: 1;
  transform: translateY(0px) translateZ(0px) !important; }

.header {
  display: block;
  width: 100%;
  background: rgba(0, 0, 0, 0.25);
  z-index: 1;
  position: relative;
  margin-bottom: 125px;
  top: 30px; }
  .header .wrapper > ul.left::after {
    clear: both;
    content: "";
    display: table; }
  .header .wrapper > ul.left > a:first-child li {
    vertical-align: middle; }
    .header .wrapper > ul.left > a:first-child li:after {
      content: none; }
    .header .wrapper > ul.left > a:first-child li img {
      display: inline-block;
      width: 100px;
      height: auto;
      line-height: 50px;
      vertical-align: middle;
      position: relative;
      top: -25px;
      border-radius: 5000px; }
  .header .wrapper > ul.left li {
    float: left;
    padding: 0 20px;
    line-height: 50px;
    font-size: 16px;
    height: 50px;
    color: #fff;
    border-bottom: 0px solid #9bf0e1;
    position: relative;
    font-weight: 500;
    -webkit-transition: color 0.5s;
    -moz-transition: color 0.5s;
    transition: color 0.5s; }
    .header .wrapper > ul.left li:hover {
      color: #9bf0e1; }
  .header ul.right {
    position: absolute;
    top: 0px;
    right: 0px;
    height: 50px; }
    .header ul.right li {
      float: left;
      line-height: 50px;
      vertical-align: middle;
      position: relative;
      text-align: center; }
      .header ul.right li a {
        display: inline-block;
        position: relative;
        font-size: 21px;
        color: #fff;
        vertical-align: top;
        text-align: center;
        padding: 0 15px;
        -webkit-transition: color 0.5s;
        -moz-transition: color 0.5s;
        transition: color 0.5s; }
        .header ul.right li a:hover {
          -webkit-transition: color 0.25s;
          -moz-transition: color 0.25s;
          transition: color 0.25s;
          color: #9bf0e1; }
        .header ul.right li a:after {
          font: normal normal normal 14px/1 FontAwesome;
          font-size: inherit;
          text-rendering: auto;
          -webkit-font-smoothing: antialiased;
          -moz-osx-font-smoothing: grayscale;
          display: inline-block; }
        .header ul.right li a.in:after {
          content: '\f16d'; }
        .header ul.right li a.em:after {
          content: '\f003'; }

#footer {
  position: relative;
  z-index: 1;
  text-align: center;
  padding: 50px 0;
  font-weight: 300; }
  #footer a {
    -webkit-transition: color 0.5s;
    -moz-transition: color 0.5s;
    transition: color 0.5s;
    color: #e3e7e7; }
    #footer a:hover {
      color: #fff;
      -webkit-transition: color 0.25s;
      -moz-transition: color 0.25s;
      transition: color 0.25s; }
  #footer .top {
    margin-bottom: 25px; }
    #footer .top > ul {
      text-align: center; }
      #footer .top > ul > li {
        display: inline-block;
        position: relative;
        font-weight: 300; }
        @media (min-width: 768px) {
          #footer .top > ul > li:first-child:after {
            position: absolute;
            right: -3px;
            top: 0px;
            height: 100%;
            border-right: 1px solid #fff;
            content: '';
            opacity: .25; } }
        #footer .top > ul > li:first-child {
          margin-bottom: 25px; }
          @media (min-width: 768px) {
            #footer .top > ul > li:first-child {
              margin-bottom: 0px; } }
          #footer .top > ul > li:first-child span {
            display: inline-block;
            color: #e3e7e7;
            font-size: 14px;
            font-weight: 500; }
          #footer .top > ul > li:first-child a {
            margin: 0px; }
            #footer .top > ul > li:first-child a:last-child {
              margin-right: 30px; }
        #footer .top > ul > li a {
          display: inline-block;
          position: relative;
          margin: 0 30px;
          font-size: 24px;
          vertical-align: top; }
          #footer .top > ul > li a > span {
            font-size: 14px;
            font-weight: 500;
            display: inline-block;
            vertical-align: middle; }
          #footer .top > ul > li a:after {
            font: normal normal normal 14px/1 FontAwesome;
            font-size: inherit;
            text-rendering: auto;
            -webkit-font-smoothing: antialiased;
            -moz-osx-font-smoothing: grayscale;
            display: inline-block;
            margin-left: 20px; }
            @media (min-width: 340px) {
              #footer .top > ul > li a:after {
                margin-left: 30px; } }
          #footer .top > ul > li a.rd:after {
            content: '\f281'; }
          #footer .top > ul > li a.in:after {
            content: '\f16d'; }
          #footer .top > ul > li a.tw:after {
            content: '\f099'; }
          #footer .top > ul > li a.fb:after {
            content: '\f09a'; }
          #footer .top > ul > li a.dc:after {
            content: '\f198'; }
          #footer .top > ul > li a.sp:after {
            content: '\f1bc'; }
          #footer .top > ul > li a.em:after {
            margin-left: 15px;
            content: '\f003'; }
  #footer .bottom {
    text-align: center;
    margin-top: 40px; }
    #footer .bottom > div {
      margin-bottom: 10px; }
    @media (min-width: 768px) {
      #footer .bottom > div {
        display: inline-block;
        margin: 0 20px; } }
    #footer .bottom a {
      display: inline-block;
      color: #e3e7e7;
      font-family: "open-sans", "Helvetica", "Arial";
      font-size: 16px;
      font-weight: 500; }
      #footer .bottom a:hover {
        color: #fff; }
  #footer .last {
    margin-top: 50px;
    font-family: "open-sans", "Helvetica", "Arial"; }
    #footer .last a {
      color: #e3e7e7;
      font-size: 14px; }
      #footer .last a:hover {
        color: #fff; }

.logo-block {
  display: inline-block;
  margin-bottom: 30px; }
  .logo-block img.logo {
    margin: 0px 0 10px 0;
    max-width: 200px;
    border-radius: 20px;
    box-shadow: 0 4px 5px rgba(0, 0, 0, 0.75); }

body.landing.mobile .section.intro .wrapper.bottom .left .download > div:first-child {
  display: block;
  margin-bottom: 10px; }

body.landing.mobile .section.intro .wrapper.bottom .left .download .app-store {
  display: none; }

body.landing.mobile .section.intro .wrapper.middle .download {
  display: none; }

body.landing.mobile .section.intro .wrapper.middle .app-store {
  display: block; }

body.landing.index {
  background: -webkit-linear-gradient(#234957, #29103f, #422859, #2a2859, #285559, #234957);
  background: linear-gradient(#234957, #29103f, #422859, #2a2859, #285559, #234957); }
  body.landing.index .section:before {
    display: none; }

body.landing .section.intro {
  padding-top: 50px; }
  body.landing .section.intro .wrapper.top {
    text-align: center; }
    body.landing .section.intro .wrapper.top h3 {
      color: #fff;
      font-size: 18px;
      font-weight: 300;
      text-align: center;
      margin: 0px auto;
      max-width: 1100px;
      line-height: 1.5;
      margin-bottom: 60px;
      text-shadow: 0 2px 0px rgba(0, 0, 0, 0.2);
      margin-bottom: 40px; }
      @media (min-width: 768px) {
        body.landing .section.intro .wrapper.top h3 {
          font-size: 21px; } }
  body.landing .section.intro .wrapper.middle {
    text-align: center;
    margin-bottom: 80px; }
    body.landing .section.intro .wrapper.middle h3 {
      text-align: center; }
    body.landing .section.intro .wrapper.middle .app-store {
      display: block;
      margin-top: 40px;
      margin-bottom: 40px;
      margin: 0px;
      display: none; }
      body.landing .section.intro .wrapper.middle .app-store p {
        margin-bottom: 25px !important;
        opacity: .75; }
      body.landing .section.intro .wrapper.middle .app-store img {
        max-width: 130px;
        margin-bottom: 0px !important;
        vertical-align: top;
        width: 100%; }
        @media (min-width: 768px) {
          body.landing .section.intro .wrapper.middle .app-store img {
            max-width: 150px; } }
      body.landing .section.intro .wrapper.middle .app-store a:first-child {
        margin-right: 15px; }
      body.landing .section.intro .wrapper.middle .app-store a img {
        display: inline-block;
        box-shadow: 0 2px 3px 2px rgba(0, 0, 0, 0.15);
        border-radius: 6px;
        -webkit-transform: scale(1) translateZ(0px);
        -moz-transform: scale(1) translateZ(0px);
        -ms-transform: scale(1) translateZ(0px);
        -o-transform: scale(1) translateZ(0px);
        transform: scale(1) translateZ(0px);
        -webkit-transition: box-shadow 0.25s, -webkit-transform 0.25s, background 0.25s;
        -moz-transition: box-shadow 0.25s, -moz-transform 0.25s, background 0.25s;
        transition: box-shadow 0.25s, transform 0.25s, background 0.25s; }
      body.landing .section.intro .wrapper.middle .app-store a:hover img {
        box-shadow: 0 1px 1px 1px rgba(0, 0, 0, 0.5);
        -webkit-transform: scale(0.98) translateZ(0px);
        -moz-transform: scale(0.98) translateZ(0px);
        -ms-transform: scale(0.98) translateZ(0px);
        -o-transform: scale(0.98) translateZ(0px);
        transform: scale(0.98) translateZ(0px);
        -webkit-transition: box-shadow 0.25s, -webkit-transform 0.25s, background 0.25s;
        -moz-transition: box-shadow 0.25s, -moz-transform 0.25s, background 0.25s;
        transition: box-shadow 0.25s, transform 0.25s, background 0.25s; }
  body.landing .section.intro .wrapper.bottom {
    padding-right: 0px; }
    @media (min-width: 768px) {
      body.landing .section.intro .wrapper.bottom .left, body.landing .section.intro .wrapper.bottom .right {
        width: 50%; } }
    @media (min-width: 768px) {
      body.landing .section.intro .wrapper.bottom .left {
        padding-top: 25px; } }
    body.landing .section.intro .wrapper.bottom .left h3 img {
      max-width: 27px;
      vertical-align: bottom;
      margin-left: 8px; }
    @media (min-width: 768px) {
      body.landing .section.intro .wrapper.bottom .right {
        float: right;
        width: calc(100% - 460px); } }
    body.landing .section.intro .wrapper.bottom .right > span {
      font-weight: 300;
      display: block;
      text-align: center;
      line-height: 1.5;
      font-size: 14px; }
      body.landing .section.intro .wrapper.bottom .right > span > span, body.landing .section.intro .wrapper.bottom .right > span > a {
        opacity: .5;
        -webkit-transition: opacity 0.5s;
        -moz-transition: opacity 0.5s;
        transition: opacity 0.5s; }
      body.landing .section.intro .wrapper.bottom .right > span a {
        text-decoration: underline;
        color: #fff;
        display: inline-block; }
        body.landing .section.intro .wrapper.bottom .right > span a:hover {
          opacity: 1;
          -webkit-transition: opacity 0.25s;
          -moz-transition: opacity 0.25s;
          transition: opacity 0.25s; }
    body.landing .section.intro .wrapper.bottom .left {
      margin: 0px auto;
      max-width: 460px; }
      @media (min-width: 768px) {
        body.landing .section.intro .wrapper.bottom .left {
          float: left;
          padding-right: 20px; } }
      body.landing .section.intro .wrapper.bottom .left .download {
        margin-top: 20px; }
        body.landing .section.intro .wrapper.bottom .left .download > div:first-child {
          display: none; }

body.landing .section.stat-links {
  padding-top: 0px; }
  body.landing .section.stat-links a {
    color: #fff;
    text-decoration: underline; }

body.landing .section.donate .wrapper {
  max-width: 1020px; }

@media (max-width: 768px) {
  body.landing .section.donate .right {
    display: none; }
  body.landing .section.donate .left div {
    text-align: center; } }

body.landing .section.donate .right img {
  padding-left: 50px;
  max-width: 300; }

body.landing .section.voting:before, body.landing .section.chatting:before, body.landing .section.music-blog:before {
  border: none;
  background: -webkit-linear-gradient(#29103f, #422859);
  background: linear-gradient(#29103f, #422859); }

body.landing .section.voting .wrapper .left, body.landing .section.chatting .wrapper .left, body.landing .section.music-blog .wrapper .left {
  text-align: center; }
  @media (min-width: 768px) {
    body.landing .section.voting .wrapper .left, body.landing .section.chatting .wrapper .left, body.landing .section.music-blog .wrapper .left {
      float: left;
      width: 50%; }
      body.landing .section.voting .wrapper .left img, body.landing .section.chatting .wrapper .left img, body.landing .section.music-blog .wrapper .left img {
        max-width: 350px;
        border-radius: 5px;
        box-shadow: 0 2px 5px 1px rgba(0, 0, 0, 0.5); } }

body.landing .section.voting .wrapper .right, body.landing .section.chatting .wrapper .right, body.landing .section.music-blog .wrapper .right {
  margin: 0px auto;
  max-width: 480px; }
  @media (min-width: 768px) {
    body.landing .section.voting .wrapper .right, body.landing .section.chatting .wrapper .right, body.landing .section.music-blog .wrapper .right {
      float: right;
      width: 50%;
      position: absolute;
      left: 50%;
      top: 50%;
      -webkit-transform: translateY(-50%);
      -moz-transform: translateY(-50%);
      -ms-transform: translateY(-50%);
      -o-transform: translateY(-50%);
      transform: translateY(-50%); } }

body.landing .section.djing:before,
body.landing .section.stat-links:before,
body.landing .section.donate:before {
  border: none;
  background: -webkit-linear-gradient(#422859, #2a2859);
  background: linear-gradient(#422859, #2a2859); }

body.landing .section.djing .wrapper .right,
body.landing .section.stat-links .wrapper .right,
body.landing .section.donate .wrapper .right {
  text-align: center; }
  @media (min-width: 768px) {
    body.landing .section.djing .wrapper .right,
    body.landing .section.stat-links .wrapper .right,
    body.landing .section.donate .wrapper .right {
      float: right;
      padding-left: 0px;
      width: calc(100% - 520px); } }

body.landing .section.djing .wrapper .left,
body.landing .section.stat-links .wrapper .left,
body.landing .section.donate .wrapper .left {
  margin: 0px auto;
  max-width: 520px; }
  @media (min-width: 768px) {
    body.landing .section.djing .wrapper .left,
    body.landing .section.stat-links .wrapper .left,
    body.landing .section.donate .wrapper .left {
      float: right;
      width: 50%;
      position: absolute;
      left: 50px;
      top: 50%;
      padding-right: 20px;
      -webkit-transform: translateY(-50%);
      -moz-transform: translateY(-50%);
      -ms-transform: translateY(-50%);
      -o-transform: translateY(-50%);
      transform: translateY(-50%); } }

body.landing .section.chatting:before, body.landing .section.music-blog:before {
  border: none;
  background: -webkit-linear-gradient(#2a2859, #285559);
  background: linear-gradient(#2a2859, #285559); }

body.landing .section.chatting .wrapper .left img, body.landing .section.music-blog .wrapper .left img {
  max-width: 700px;
  width: 100%; }

body.landing .section.chatting .wrapper .right, body.landing .section.music-blog .wrapper .right {
  max-width: 600px; }
  @media (min-width: 768px) {
    body.landing .section.chatting .wrapper .right, body.landing .section.music-blog .wrapper .right {
      padding-left: 70px;
      padding-right: 10px; } }
  body.landing .section.chatting .wrapper .right div, body.landing .section.music-blog .wrapper .right div {
    margin-bottom: 15px; }
    @media (max-width: 768px) {
      body.landing .section.chatting .wrapper .right div, body.landing .section.music-blog .wrapper .right div {
        text-align: center;
        margin-bottom: 30px; } }

body.landing .section.chatting .bottom, body.landing .section.music-blog .bottom {
  margin-top: 100px; }
  body.landing .section.chatting .bottom h3, body.landing .section.music-blog .bottom h3 {
    margin: 0px auto;
    text-align: center;
    margin-bottom: 50px; }

body.features .wrapper ul.features {
  margin-bottom: 50px; }

body.invite .section.intro:before {
  -webkit-transform: skewY(0deg);
  -moz-transform: skewY(0deg);
  -ms-transform: skewY(0deg);
  -o-transform: skewY(0deg);
  transform: skewY(0deg); }

body.invite .section.intro .wrapper.top h2.redirect {
  margin-top: 15px;
  margin-bottom: 50px;
  text-shadow: 0 3px 0px rgba(0, 0, 0, 0.2); }

body.invite .section.intro .wrapper.top > div {
  margin-top: 25px; }
  body.invite .section.intro .wrapper.top > div a {
    width: 250px; }

body.invite .section.intro .wrapper.top h3 {
  margin-bottom: 0px; }

body.invite .section.intro .wrapper.top p {
  margin-bottom: 30px;
  margin-top: 10px;
  font-weight: 300;
  color: #fff;
  font-family: "roboto-slab", "Helvetica", "Arial";
  font-size: 20px;
  text-shadow: 0 2px 0px rgba(0, 0, 0, 0.2); }

body.invite .section.intro .wrapper.bottom {
  margin-top: 70px; }

body.invite .section.intro h3.subtitle {
  text-align: center;
  display: block; }

body.invite .download {
  text-align: center; }
  body.invite .download > div {
    margin: 25px 0; }

body.referral .section.intro:before, body.invite .section.intro:before {
  height: 100%;
  -webkit-transform: skewY(0deg);
  -moz-transform: skewY(0deg);
  -ms-transform: skewY(0deg);
  -o-transform: skewY(0deg);
  transform: skewY(0deg); }

body.help .help-section {
  max-width: 920px;
  margin: 75px auto 0; }
  body.help .help-section em {
    font-style: italic; }
  body.help .help-section h4, body.help .help-section p {
    color: #fff;
    text-align: left;
    line-height: 1.5;
    margin-bottom: 25px;
    font-weight: 400;
    font-size: 18px; }
    body.help .help-section h4 a, body.help .help-section p a {
      color: #fff;
      text-decoration: underline; }
  body.help .help-section strong {
    font-weight: 700; }
  body.help .help-section h4 {
    font-weight: bold;
    text-transform: uppercase;
    font-size: 24px;
    font-family: "aller-display";
    font-weight: 400;
    color: #fff;
    margin-bottom: 40px;
    text-align: center;
    text-shadow: 0 2px 0px rgba(0, 0, 0, 0.2);
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-align: left;
    vertical-align: middle; }
    @media (min-width: 768px) {
      body.help .help-section h4 {
        text-align: left;
        font-size: 28px;
        text-shadow: 0 3px 0px rgba(0, 0, 0, 0.2); } }
    body.help .help-section h4 > span.num {
      display: inline-block;
      width: 40px;
      height: 40px;
      line-height: 40px;
      margin-right: 15px;
      font-family: "aller-display";
      background: #3498DB;
      color: #fff;
      text-align: center;
      display: inline-block;
      border-radius: 50px;
      font-size: 21px;
      box-shadow: 0 2px 3px 0px rgba(0, 0, 0, 0.5);
      position: relative;
      top: -2px; }
  body.help .help-section .img {
    box-shadow: 0 2px 3px 0 rgba(0, 0, 0, 0.5);
    position: relative;
    display: block;
    line-height: 0px;
    margin-bottom: 50px;
    position: relative; }
    body.help .help-section .img.tall {
      max-width: 400px;
      margin: 0px auto;
      margin-bottom: 50px; }
    body.help .help-section .img.thin {
      max-width: 500px;
      margin: 0px auto;
      margin-bottom: 50px; }
    body.help .help-section .img ul {
      position: absolute;
      width: 100%;
      height: 100%;
      top: 0px;
      left: 0px;
      counter-reset: tooltip;
      margin: 0px;
      padding: 0px; }
      body.help .help-section .img ul li {
        border: 0px;
        position: absolute;
        top: 0px;
        left: 0px;
        -webkit-transform: translateX(-50%);
        -moz-transform: translateX(-50%);
        -ms-transform: translateX(-50%);
        -o-transform: translateX(-50%);
        transform: translateX(-50%); }
        body.help .help-section .img ul li:after {
          counter-increment: tooltip;
          content: counter(tooltip);
          font-size: 10px;
          width: 20px;
          height: 20px;
          line-height: 20px;
          cursor: pointer;
          font-family: "aller-display";
          background: #98f1e1;
          color: #234957;
          text-align: center;
          display: inline-block;
          border-radius: 50px;
          box-shadow: 0 2px 3px 0px rgba(0, 0, 0, 0.5);
          -webkit-transition: all 0.5s;
          -moz-transition: all 0.5s;
          transition: all 0.5s; }
          @media (min-width: 768px) {
            body.help .help-section .img ul li:after {
              font-size: 14px;
              line-height: 28px;
              width: 28px;
              height: 28px; } }
        body.help .help-section .img ul li:hover:after {
          background: #c5f7ee;
          color: #122715;
          box-shadow: 0 1px 1px 0px rgba(0, 0, 0, 0.75);
          -webkit-transition: all 0.25s;
          -moz-transition: all 0.25s;
          transition: all 0.25s; }
  body.help .help-section > ul {
    counter-reset: tooltip; }
    body.help .help-section > ul li {
      text-align: left;
      margin-bottom: 50px;
      font-weight: 400;
      line-height: 1.5; }
      body.help .help-section > ul li:last-child {
        margin-bottom: 0px; }
      body.help .help-section > ul li:before {
        counter-increment: tooltip;
        content: counter(tooltip);
        font-size: 14px;
        cursor: pointer;
        font-family: "aller-display";
        color: #234957;
        width: 28px;
        height: 28px;
        background: #98f1e1;
        text-align: center;
        display: inline-block;
        border-radius: 50px;
        line-height: 28px;
        box-shadow: 0 2px 3px 0px rgba(0, 0, 0, 0.5);
        margin-right: 20px; }
    body.help .help-section > ul a {
      text-decoration: underline;
      color: #fff; }
  body.help .help-section.blue .img ul li:after {
    color: #fff;
    background: #3498DB; }
  body.help .help-section.blue .img ul li:hover:after {
    background: #217dbb; }
  body.help .help-section p {
    margin-bottom: 50px; }
    body.help .help-section p:last-child {
      margin-bottom: 0px; }
    body.help .help-section p ul {
      display: block;
      margin-top: 20px; }
      body.help .help-section p ul li {
        margin-bottom: 20px;
        font-weight: 400;
        position: relative;
        padding-left: 15px;
        margin-left: 15px; }
        body.help .help-section p ul li:before {
          position: absolute;
          top: 10px;
          left: 0px;
          content: '';
          display: inline-block;
          width: 6px;
          height: 6px;
          vertical-align: middle;
          border-radius: 500px;
          line-height: 18px;
          background: #fff; }

body.compare .features-section {
  text-align: center; }
  body.compare .features-section > div.features {
    margin-bottom: 50px; }
    @media (min-width: 768px) {
      body.compare .features-section > div.features {
        display: inline-block;
        width: 270px;
        margin: 0 75px;
        vertical-align: top; } }
    body.compare .features-section > div.features h3 {
      text-transform: uppercase;
      font-size: 24px;
      font-family: "aller-display";
      font-weight: 400;
      color: #fff;
      margin-bottom: 40px;
      text-align: center;
      text-shadow: 0 2px 0px rgba(0, 0, 0, 0.2);
      text-rendering: optimizeLegibility;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      text-align: center !important;
      display: block; }
      @media (min-width: 768px) {
        body.compare .features-section > div.features h3 {
          text-align: left;
          font-size: 28px;
          text-shadow: 0 3px 0px rgba(0, 0, 0, 0.2); } }
    body.compare .features-section > div.features ul li {
      text-align: left;
      padding: 10px 0;
      font-weight: 300;
      font-family: "roboto-slab", "Helvetica", "Arial";
      color: #ededed; }
      body.compare .features-section > div.features ul li:before {
        font: normal normal normal 14px/1 FontAwesome;
        font-size: inherit;
        text-rendering: auto;
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale;
        content: '\f00c';
        margin-right: 15px;
        color: #2ecc71; }

body.comparisons ul.compare-list {
  max-width: 300px;
  margin: 0px auto;
  display: block;
  border: 1px solid rgba(255, 255, 255, 0.25);
  padding: 50px 25px; }
  body.comparisons ul.compare-list li {
    margin: 20px 0;
    font-size: 21px; }
  body.comparisons ul.compare-list a {
    color: #fff;
    font-weight: 300;
    text-align: left; }
    body.comparisons ul.compare-list a:hover {
      text-decoration: underline; }

.stats h1, .top-tracks h1, .info h1 {
  text-align: center; }

.stats .section.intro, .top-tracks .section.intro, .info .section.intro {
  padding-top: 50px;
  padding-bottom: 20px; }
  .stats .section.intro .wrapper, .top-tracks .section.intro .wrapper, .info .section.intro .wrapper {
    text-align: center;
    position: static; }
    .stats .section.intro .wrapper h3, .top-tracks .section.intro .wrapper h3, .info .section.intro .wrapper h3 {
      color: #fff;
      font-size: 18px;
      font-weight: 300;
      text-align: center;
      margin: 0px auto;
      max-width: 1100px;
      line-height: 1.5;
      margin-bottom: 60px;
      text-shadow: 0 2px 0px rgba(0, 0, 0, 0.2);
      margin-bottom: 40px; }
      @media (min-width: 768px) {
        .stats .section.intro .wrapper h3, .top-tracks .section.intro .wrapper h3, .info .section.intro .wrapper h3 {
          font-size: 21px; } }

.stats form, .top-tracks form, .info form {
  width: 100%;
  max-width: 550px;
  margin-bottom: 30px;
  margin-top: -30px; }
  .stats form::after, .top-tracks form::after, .info form::after {
    clear: both;
    content: "";
    display: table; }
  .stats form label, .top-tracks form label, .info form label {
    font-family: "open-sans", "Helvetica", "Arial";
    font-weight: 500;
    color: #e3e7e7;
    display: block;
    line-height: 1.5;
    text-align: center;
    margin-bottom: 15px; }
  .stats form input, .top-tracks form input, .info form input {
    float: left;
    height: 50px;
    width: calc(100% - 150px);
    border: none;
    border-right: 0px;
    font-size: 19px;
    padding: 0px;
    padding-left: 20px;
    line-height: 50px;
    vertical-align: middle;
    background: rgba(0, 0, 0, 0.5);
    font-weight: 400;
    border-top-left-radius: 4px;
    border-bottom-left-radius: 4px; }
  .stats form button[type="submit"], .top-tracks form button[type="submit"], .info form button[type="submit"] {
    float: left;
    width: 150px;
    margin: 0px !important;
    background: #5f82f7;
    color: #fff;
    box-shadow: none;
    font-weight: 400;
    border-top-left-radius: 0px;
    border-bottom-left-radius: 0px; }
    .stats form button[type="submit"]:hover, .top-tracks form button[type="submit"]:hover, .info form button[type="submit"]:hover {
      transform: none;
      box-shadow: none;
      background: #466ff6; }

.stats ul.rooms, .top-tracks ul.rooms, .info ul.rooms {
  margin-bottom: 23px;
  border-radius: 8px;
  text-align: center;
  width: calc(100% + 10px);
  margin-left: -5px; }
  .stats ul.rooms::after, .top-tracks ul.rooms::after, .info ul.rooms::after {
    clear: both;
    content: "";
    display: table; }
  .stats ul.rooms > li, .top-tracks ul.rooms > li, .info ul.rooms > li {
    vertical-align: top;
    display: inline-block;
    float: left;
    width: 100%;
    height: 350px;
    margin-top: 10px;
    padding: 0 5px;
    transition: all 0.5s cubic-bezier(0.23, 1, 0.32, 1);
    transform: scale(1) translateY(0px) translateZ(0px); }
    @media (min-width: 768px) {
      .stats ul.rooms > li, .top-tracks ul.rooms > li, .info ul.rooms > li {
        width: 25%; } }
    .stats ul.rooms > li > span, .top-tracks ul.rooms > li > span, .info ul.rooms > li > span {
      display: inline-block;
      border: 1px solid rgba(255, 255, 255, 0.025);
      box-shadow: 0 2px 7px 1px rgba(0, 0, 0, 0.4);
      transition: all 0.5s cubic-bezier(0.23, 1, 0.32, 1); }
    .stats ul.rooms > li:hover, .top-tracks ul.rooms > li:hover, .info ul.rooms > li:hover {
      transform: scale(1.015) translateY(-3px) translateZ(0px);
      transition: all 0.325s cubic-bezier(0.23, 1, 0.32, 1); }
      .stats ul.rooms > li:hover > span, .top-tracks ul.rooms > li:hover > span, .info ul.rooms > li:hover > span {
        transition: all 0.325s cubic-bezier(0.23, 1, 0.32, 1);
        box-shadow: 0 2px 14px 1px rgba(0, 0, 0, 0.4); }
    .stats ul.rooms > li > span, .top-tracks ul.rooms > li > span, .info ul.rooms > li > span {
      display: inline-block;
      height: 100%;
      width: 100%;
      overflow: hidden; }
    .stats ul.rooms > li .content, .top-tracks ul.rooms > li .content, .info ul.rooms > li .content {
      height: 100%;
      position: relative; }
      .stats ul.rooms > li .content .img, .top-tracks ul.rooms > li .content .img, .info ul.rooms > li .content .img {
        height: 100%;
        width: 100%;
        position: relative;
        background-size: cover;
        background-position: center; }
        .stats ul.rooms > li .content .img:after, .top-tracks ul.rooms > li .content .img:after, .info ul.rooms > li .content .img:after {
          content: '';
          background: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.9) 85%, black 100%);
          position: absolute;
          top: 0px;
          left: 0px;
          width: 100%;
          height: 100%; }
      .stats ul.rooms > li .content .top, .top-tracks ul.rooms > li .content .top, .info ul.rooms > li .content .top {
        position: absolute;
        top: 30%;
        left: 0px;
        padding: 0 10px;
        text-align: center;
        width: 100%;
        transform: translateY(-50%); }
        .stats ul.rooms > li .content .top .title, .stats ul.rooms > li .content .top .track-info, .stats ul.rooms > li .content .top .name, .top-tracks ul.rooms > li .content .top .title, .top-tracks ul.rooms > li .content .top .track-info, .top-tracks ul.rooms > li .content .top .name, .info ul.rooms > li .content .top .title, .info ul.rooms > li .content .top .track-info, .info ul.rooms > li .content .top .name {
          text-shadow: 0 1px 1px rgba(20, 42, 51, 0.5); }
        .stats ul.rooms > li .content .top .title, .top-tracks ul.rooms > li .content .top .title, .info ul.rooms > li .content .top .title {
          font-size: 26px;
          font-weight: 600;
          line-height: 1.25;
          margin-bottom: 10px;
          text-shadow: 0 2px 1px rgba(20, 42, 51, 0.5);
          overflow-wrap: break-word;
          word-wrap: break-word; }
        .stats ul.rooms > li .content .top .track-info, .top-tracks ul.rooms > li .content .top .track-info, .info ul.rooms > li .content .top .track-info {
          font-weight: 400;
          font-size: 18px;
          line-height: 1.25; }
          .stats ul.rooms > li .content .top .track-info .name, .top-tracks ul.rooms > li .content .top .track-info .name, .info ul.rooms > li .content .top .track-info .name {
            margin: 0px;
            padding: 0px;
            margin-bottom: 3px;
            font-size: 18px;
            line-height: 1.3;
            font-weight: 500;
            max-height: 46px;
            overflow: hidden;
            max-width: calc(100%);
            overflow-wrap: break-word;
            word-wrap: break-word; }
          .stats ul.rooms > li .content .top .track-info .artists, .top-tracks ul.rooms > li .content .top .track-info .artists, .info ul.rooms > li .content .top .track-info .artists {
            font-size: 12px;
            font-weight: 400;
            white-space: nowrap;
            vertical-align: bottom;
            text-overflow: ellipsis;
            overflow: hidden;
            line-height: 1.3;
            color: #e5e9ea;
            margin-top: 7px;
            font-size: 14px;
            font-weight: 400;
            padding: 0 10px; }
            .stats ul.rooms > li .content .top .track-info .artists > li, .top-tracks ul.rooms > li .content .top .track-info .artists > li, .info ul.rooms > li .content .top .track-info .artists > li {
              display: inline;
              margin-left: 5px;
              font-size: inherit; }
              .stats ul.rooms > li .content .top .track-info .artists > li:after, .top-tracks ul.rooms > li .content .top .track-info .artists > li:after, .info ul.rooms > li .content .top .track-info .artists > li:after {
                content: ','; }
              .stats ul.rooms > li .content .top .track-info .artists > li:first-child, .top-tracks ul.rooms > li .content .top .track-info .artists > li:first-child, .info ul.rooms > li .content .top .track-info .artists > li:first-child {
                margin-left: 0px; }
              .stats ul.rooms > li .content .top .track-info .artists > li:last-child:after, .top-tracks ul.rooms > li .content .top .track-info .artists > li:last-child:after, .info ul.rooms > li .content .top .track-info .artists > li:last-child:after {
                content: ''; }
    .stats ul.rooms > li .bottom, .top-tracks ul.rooms > li .bottom, .info ul.rooms > li .bottom {
      position: absolute;
      bottom: 0px;
      left: 0px;
      width: 100%;
      height: auto;
      padding: 10px;
      text-align: left;
      z-index: 1; }
    .stats ul.rooms > li.private, .top-tracks ul.rooms > li.private, .info ul.rooms > li.private {
      position: relative; }
      .stats ul.rooms > li.private:before, .top-tracks ul.rooms > li.private:before, .info ul.rooms > li.private:before {
        font: normal normal normal 14px/1 FontAwesome;
        font-size: inherit;
        text-rendering: auto;
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale;
        content: '\f023';
        position: absolute;
        top: 10px;
        right: 10px;
        opacity: 1;
        font-size: 18px;
        width: 34px;
        height: 34px;
        background: rgba(0, 0, 0, 0.5);
        border: 1px solid rgba(255, 255, 255, 0.25);
        border-radius: 500px;
        line-height: 32px;
        text-align: center;
        color: #fff;
        z-index: 2;
        text-shadow: 0 1px 0px #142a33;
        box-shadow: 0 1px 1px #142a33; }
    .stats ul.rooms > li > a, .top-tracks ul.rooms > li > a, .info ul.rooms > li > a {
      color: #fff; }
    .stats ul.rooms > li .title, .top-tracks ul.rooms > li .title, .info ul.rooms > li .title {
      font-weight: 500;
      font-size: 18px;
      margin-bottom: 5px; }
    .stats ul.rooms > li .meta, .top-tracks ul.rooms > li .meta, .info ul.rooms > li .meta {
      margin-top: 3px; }
    .stats ul.rooms > li .meta, .stats ul.rooms > li .current-track, .top-tracks ul.rooms > li .meta, .top-tracks ul.rooms > li .current-track, .info ul.rooms > li .meta, .info ul.rooms > li .current-track {
      color: #e3e7e7;
      letter-spacing: .5px;
      font-size: 15px;
      line-height: 1.4;
      font-weight: 400; }
      .stats ul.rooms > li .meta::after, .stats ul.rooms > li .current-track::after, .top-tracks ul.rooms > li .meta::after, .top-tracks ul.rooms > li .current-track::after, .info ul.rooms > li .meta::after, .info ul.rooms > li .current-track::after {
        clear: both;
        content: "";
        display: table; }
      .stats ul.rooms > li .meta > li, .stats ul.rooms > li .current-track > li, .top-tracks ul.rooms > li .meta > li, .top-tracks ul.rooms > li .current-track > li, .info ul.rooms > li .meta > li, .info ul.rooms > li .current-track > li {
        display: block;
        margin-bottom: 5px; }
        .stats ul.rooms > li .meta > li::after, .stats ul.rooms > li .current-track > li::after, .top-tracks ul.rooms > li .meta > li::after, .top-tracks ul.rooms > li .current-track > li::after, .info ul.rooms > li .meta > li::after, .info ul.rooms > li .current-track > li::after {
          clear: both;
          content: "";
          display: table; }
        .stats ul.rooms > li .meta > li > div, .stats ul.rooms > li .current-track > li > div, .top-tracks ul.rooms > li .meta > li > div, .top-tracks ul.rooms > li .current-track > li > div, .info ul.rooms > li .meta > li > div, .info ul.rooms > li .current-track > li > div {
          float: left;
          margin-right: 15px;
          line-height: 21px;
          font-size: 12px;
          text-transform: uppercase;
          font-weight: 600;
          vertical-align: middle; }
          .stats ul.rooms > li .meta > li > div strong, .stats ul.rooms > li .current-track > li > div strong, .top-tracks ul.rooms > li .meta > li > div strong, .top-tracks ul.rooms > li .current-track > li > div strong, .info ul.rooms > li .meta > li > div strong, .info ul.rooms > li .current-track > li > div strong {
            font-size: 15px;
            line-height: 15px;
            font-weight: 600;
            color: #fff;
            letter-spacing: normal; }
            .stats ul.rooms > li .meta > li > div strong > span, .stats ul.rooms > li .current-track > li > div strong > span, .top-tracks ul.rooms > li .meta > li > div strong > span, .top-tracks ul.rooms > li .current-track > li > div strong > span, .info ul.rooms > li .meta > li > div strong > span, .info ul.rooms > li .current-track > li > div strong > span {
              font-size: 20px;
              line-height: 15px; }
        .stats ul.rooms > li .meta > li div.genre, .stats ul.rooms > li .current-track > li div.genre, .top-tracks ul.rooms > li .meta > li div.genre, .top-tracks ul.rooms > li .current-track > li div.genre, .info ul.rooms > li .meta > li div.genre, .info ul.rooms > li .current-track > li div.genre {
          color: #e3e7e7;
          font-weight: 600;
          max-height: 105px;
          overflow: hidden;
          text-transform: uppercase;
          font-size: 12px;
          line-height: 21px;
          vertical-align: middle; }
          .stats ul.rooms > li .meta > li div.genre strong, .stats ul.rooms > li .current-track > li div.genre strong, .top-tracks ul.rooms > li .meta > li div.genre strong, .top-tracks ul.rooms > li .current-track > li div.genre strong, .info ul.rooms > li .meta > li div.genre strong, .info ul.rooms > li .current-track > li div.genre strong {
            text-transform: none;
            font-weight: 400;
            color: #fff;
            font-size: 15px;
            line-height: 21px;
            letter-spacing: normal; }

.stats-detail .section.intro {
  margin-bottom: 0px;
  padding-bottom: 0px; }

.stats-detail .top-tracks, .stats-detail .bottom-tracks, .stats-detail .stars, .stats-detail .top-users, .stats-detail .bottom-users {
  text-align: center;
  padding-top: 0px; }
  .stats-detail .top-tracks .title h3, .stats-detail .bottom-tracks .title h3, .stats-detail .stars .title h3, .stats-detail .top-users .title h3, .stats-detail .bottom-users .title h3 {
    color: #fff;
    display: inline-block;
    background: #2ecc71;
    padding: 15px 25px;
    border-radius: 4px;
    box-shadow: 0 4px 0px rgba(0, 0, 0, 0.25);
    margin-bottom: 60px; }
    .stats-detail .top-tracks .title h3:before, .stats-detail .bottom-tracks .title h3:before, .stats-detail .stars .title h3:before, .stats-detail .top-users .title h3:before, .stats-detail .bottom-users .title h3:before {
      font: normal normal normal 14px/1 FontAwesome;
      font-size: inherit;
      text-rendering: auto;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      content: '\f164';
      margin-right: 10px; }

.stats-detail .bottom-tracks .title h3,
.stats-detail .bottom-users .title h3 {
  background: #F62459; }
  .stats-detail .bottom-tracks .title h3:before,
  .stats-detail .bottom-users .title h3:before {
    content: '\f165'; }

.stats-detail .stars .title h3 {
  background: #F1C40F; }
  .stats-detail .stars .title h3:before {
    content: '\f005'; }

.stats-detail .users {
  max-width: 800px;
  counter-reset: users; }
  @media (max-width: 768px) {
    .stats-detail .users {
      margin-left: 10px; } }
  .stats-detail .users > li {
    position: relative;
    background: rgba(0, 0, 0, 0.25);
    margin-bottom: 20px;
    border-radius: 500px;
    border-top-right-radius: 150px;
    border-bottom-right-radius: 150px; }
    .stats-detail .users > li:before {
      counter-increment: users;
      content: counter(users);
      position: absolute;
      top: 0px;
      left: 0px;
      z-index: 1;
      color: #fff;
      font-size: 18px;
      font-weight: bold;
      width: 30px;
      height: 30px;
      margin-top: -10px;
      margin-left: -10px;
      text-align: center;
      line-height: 30px;
      border-radius: 500px;
      background: #2ecc71;
      text-shadow: 0 2px 0 rgba(0, 0, 0, 0.25);
      box-shadow: 0 5px 0 0 rgba(0, 0, 0, 0.25); }
    @media (min-width: 768px) {
      .stats-detail .users > li {
        float: left;
        width: calc(50% - 10px);
        margin-bottom: 40px;
        margin-right: 10px;
        border-radius: 500px; }
        .stats-detail .users > li:nth-child(odd) {
          margin-left: 10px;
          margin-right: 0px; } }
    .stats-detail .users > li .content {
      padding-left: 10px;
      position: absolute;
      top: 50%;
      left: 75px;
      width: calc(100% - 75px);
      padding-right: 15px;
      -webkit-transform: translateY(-50%);
      -moz-transform: translateY(-50%);
      -ms-transform: translateY(-50%);
      -o-transform: translateY(-50%);
      transform: translateY(-50%); }
      .stats-detail .users > li .content p {
        text-align: left;
        margin: 0px; }
        .stats-detail .users > li .content p:first-child {
          color: #fff;
          font-weight: 600;
          font-size: 21px;
          overflow: hidden;
          position: relative;
          white-space: nowrap;
          width: 100%;
          text-overflow: ellipsis; }
        .stats-detail .users > li .content p:last-child {
          color: #2ecc71;
          font-size: 14px;
          font-weight: 500;
          letter-spacing: .5px; }
          .stats-detail .users > li .content p:last-child:before {
            font: normal normal normal 14px/1 FontAwesome;
            font-size: inherit;
            text-rendering: auto;
            -webkit-font-smoothing: antialiased;
            -moz-osx-font-smoothing: grayscale;
            content: '\f164';
            margin-right: 5px;
            font-size: 16px; }
    .stats-detail .users > li div.img {
      width: 75px;
      height: 75px;
      border-radius: 500px;
      overflow: hidden;
      background-position: center;
      background-size: cover;
      border: 2px solid #142a33;
      box-shadow: 0 2px 0 rgba(0, 0, 0, 0.15); }
    .stats-detail .users > li:first-child {
      margin-left: -5px; }
      @media (min-width: 768px) {
        .stats-detail .users > li:first-child {
          width: 80%;
          max-width: 500px;
          margin-left: 0px;
          margin-left: auto;
          margin-right: auto;
          display: block;
          float: none; } }
      .stats-detail .users > li:first-child:before {
        width: 40px;
        height: 40px;
        font-size: 24px;
        line-height: 40px; }
      .stats-detail .users > li:first-child div.img {
        width: 85px;
        height: 85px; }
        @media (min-width: 768px) {
          .stats-detail .users > li:first-child div.img {
            width: 100px;
            height: 100px; } }
      .stats-detail .users > li:first-child .content {
        left: 85px;
        width: calc(100% - 85px);
        padding-right: 15px; }
        @media (min-width: 768px) {
          .stats-detail .users > li:first-child .content {
            left: 100px;
            width: calc(100% - 100px);
            padding-right: 15px; } }
        .stats-detail .users > li:first-child .content p:first-child {
          font-size: 26px;
          line-height: 26px;
          margin-bottom: 7px; }
          @media (min-width: 768px) {
            .stats-detail .users > li:first-child .content p:first-child {
              font-size: 32px;
              line-height: 32px;
              margin-bottom: 12px; } }
        .stats-detail .users > li:first-child .content p:last-child {
          font-size: 16px;
          font-weight: 600;
          letter-spacing: 1px; }
          .stats-detail .users > li:first-child .content p:last-child:before {
            font-size: 21px; }

.stats-detail .stars .users > li:before {
  background: #F1C40F; }

.stats-detail .stars .users > li p:last-child {
  color: #F1C40F; }

.stats-detail .stars .users > li:before {
  background: #F1C40F; }

.stats-detail .stars .users > li p:last-child {
  color: #F1C40F; }
  .stats-detail .stars .users > li p:last-child:before {
    content: '\f005'; }

.stats-detail .bottom-users {
  display: none; }
  .stats-detail .bottom-users .users > li:before {
    background: #F62459; }
  .stats-detail .bottom-users .users > li p:last-child {
    color: #F62459; }
    .stats-detail .bottom-users .users > li p:last-child:before {
      content: '\f165'; }

.stats-detail .tracks {
  counter-reset: tracks; }
  .stats-detail .tracks::after {
    clear: both;
    content: "";
    display: table; }
  .stats-detail .tracks > li {
    position: relative;
    width: 100%;
    padding: 0 10px;
    height: 100px; }
    @media (min-width: 768px) {
      .stats-detail .tracks > li {
        float: left;
        width: 50%;
        height: 100px;
        margin-bottom: 40px; } }
    @media (min-width: 1000px) {
      .stats-detail .tracks > li {
        width: 25%;
        height: 350px; } }
    .stats-detail .tracks > li iframe {
      width: 100%;
      height: 100%; }
    .stats-detail .tracks > li:before {
      counter-increment: tracks;
      content: counter(tracks);
      position: absolute;
      top: 0px;
      left: 0px;
      z-index: 1;
      color: #fff;
      font-size: 28px;
      font-weight: bold;
      width: 48px;
      height: 48px;
      margin-top: -15px;
      margin-left: -15px;
      text-align: center;
      line-height: 48px;
      border-radius: 500px;
      background: #2ecc71;
      text-shadow: 0 2px 0 rgba(0, 0, 0, 0.25);
      box-shadow: 0 5px 0 0 rgba(0, 0, 0, 0.25); }
      @media (max-width: 768px) {
        .stats-detail .tracks > li:before {
          width: 35px;
          height: 35px;
          margin-top: -15px;
          margin-left: -8px;
          line-height: 35px;
          font-size: 21px; } }

.stats-detail .bottom-tracks .tracks > li:before {
  background: #F62459; }

.stats-detail .section.back {
  margin-top: 0px;
  padding-top: 0px;
  padding-bottom: 0px; }
  .stats-detail .section.back a h3:before {
    font: normal normal normal 14px/1 FontAwesome;
    font-size: inherit;
    text-rendering: auto;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    content: '\f053';
    margin-right: 10px; }
  .stats-detail .section.back a h3 {
    text-align: center;
    color: #e3e7e7;
    -webkit-transition: color 0.5s;
    -moz-transition: color 0.5s;
    transition: color 0.5s; }
  .stats-detail .section.back a:hover h3 {
    color: #fff; }

.stats-detail .to-stats {
  padding: 0 10px;
  max-width: 1300px;
  margin: 0px auto;
  position: relative;
  text-align: center; }
  .stats-detail .to-stats::after {
    clear: both;
    content: "";
    display: table; }
  @media (min-width: 768px) {
    .stats-detail .to-stats {
      padding: 0 20px; } }
  .stats-detail .to-stats h3 {
    text-align: center;
    margin-bottom: 15px; }
  .stats-detail .to-stats a {
    font-size: 18px;
    color: #e3e7e7;
    font-weight: 300;
    display: inline-block; }
    .stats-detail .to-stats a:hover {
      color: #fff; }
    .stats-detail .to-stats a:after {
      font: normal normal normal 14px/1 FontAwesome;
      font-size: inherit;
      text-rendering: auto;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      content: '\f178';
      margin-left: 10px; }

body.top-tracks .section.intro {
  margin-bottom: 0px;
  padding-bottom: 0px; }
  body.top-tracks .section.intro .wrapper h3 {
    margin-bottom: 8px; }

body.top-tracks .date-range {
  text-align: center;
  font-size: 18px;
  font-weight: 300;
  font-family: "roboto-slab", "Helvetica", "Arial";
  color: #e3e7e7;
  text-shadow: 0 2px 1px rgba(20, 42, 51, 0.5); }

body.top-tracks .wrapper ul.tracks {
  max-width: 500px;
  margin: 0px auto;
  margin-top: 60px; }
  @media (min-width: 768px) {
    body.top-tracks .wrapper ul.tracks {
      margin-top: 75px; } }
  body.top-tracks .wrapper ul.tracks > li {
    margin-bottom: 40px;
    position: relative; }
    @media (min-width: 768px) {
      body.top-tracks .wrapper ul.tracks > li {
        margin-bottom: 50px; } }
    body.top-tracks .wrapper ul.tracks > li > div.idx {
      background: #2ecc71;
      font-weight: 700;
      text-shadow: 0 1px 1px rgba(0, 0, 0, 0.5);
      position: absolute;
      top: -25px;
      left: -5px;
      font-size: 28px;
      z-index: 2;
      border-radius: 10px;
      overflow: hidden;
      padding: 5px 10px;
      box-shadow: 0 3px 1px rgba(0, 0, 0, 0.5); }
      @media (min-width: 768px) {
        body.top-tracks .wrapper ul.tracks > li > div.idx {
          font-size: 32px;
          left: -10px; } }
      body.top-tracks .wrapper ul.tracks > li > div.idx > span {
        vertical-align: top;
        font-size: 21px;
        font-weight: 400; }
    body.top-tracks .wrapper ul.tracks > li > div.track-info {
      background: rgba(0, 0, 0, 0.5);
      display: block;
      padding: 25px;
      border-radius: 3px;
      position: relative;
      z-index: 1; }
      body.top-tracks .wrapper ul.tracks > li > div.track-info > .title {
        font-size: 19px;
        margin-bottom: 3px;
        white-space: nowrap;
        text-overflow: ellipsis;
        overflow: hidden;
        line-height: 1.3; }
      body.top-tracks .wrapper ul.tracks > li > div.track-info > .artists {
        font-size: 14px;
        opacity: .7;
        white-space: nowrap;
        text-overflow: ellipsis;
        overflow: hidden;
        line-height: 1.3;
        margin-bottom: 3px; }
      body.top-tracks .wrapper ul.tracks > li > div.track-info > .actions {
        margin-top: 10px;
        margin-bottom: 0px;
        font-size: 12px;
        position: absolute;
        bottom: 8px;
        right: 10px; }
        body.top-tracks .wrapper ul.tracks > li > div.track-info > .actions img {
          height: 15px;
          line-height: 0;
          margin-right: 7px;
          vertical-align: middle;
          position: relative;
          top: -1px; }
    body.top-tracks .wrapper ul.tracks > li > div.thumbs {
      position: absolute;
      min-width: 200px;
      top: -20px;
      right: 0px;
      color: #fff;
      font-size: 14px;
      text-shadow: 0 1px 1px rgba(0, 0, 0, 0.5);
      font-weight: 600;
      text-align: right; }
      body.top-tracks .wrapper ul.tracks > li > div.thumbs > div {
        display: inline-block;
        margin-left: 8px; }
        body.top-tracks .wrapper ul.tracks > li > div.thumbs > div:before {
          font: normal normal normal 14px/1 FontAwesome;
          font-size: inherit;
          text-rendering: auto;
          -webkit-font-smoothing: antialiased;
          -moz-osx-font-smoothing: grayscale;
          content: '\f164';
          color: #2ecc71;
          font-size: 16px;
          margin-right: 4px; }
        body.top-tracks .wrapper ul.tracks > li > div.thumbs > div.thumbs-down:before {
          content: '\f165';
          color: #F62459; }
  body.top-tracks .wrapper ul.tracks iframe {
    background: #282828;
    width: 100%;
    margin: 0px;
    border-radius: 4px;
    overflow: hidden;
    box-shadow: 0 2px 1px rgba(0, 0, 0, 0.5);
    height: 75px; }
    @media (min-width: 768px) {
      body.top-tracks .wrapper ul.tracks iframe {
        height: 89px; } }

body.top-tracks .footer {
  padding: 0 10px;
  max-width: 1300px;
  margin: 0px auto;
  position: relative;
  text-align: center; }
  body.top-tracks .footer::after {
    clear: both;
    content: "";
    display: table; }
  @media (min-width: 768px) {
    body.top-tracks .footer {
      padding: 0 20px; } }
  body.top-tracks .footer .wrapper {
    max-width: 500px; }
  body.top-tracks .footer a {
    font-size: 18px;
    color: #e3e7e7;
    font-weight: 300;
    display: inline-block;
    font-family: "roboto-slab", "Helvetica", "Arial"; }
    body.top-tracks .footer a:first-child {
      margin-right: 30px;
      float: left; }
    body.top-tracks .footer a:last-child {
      margin-left: 30px;
      float: right; }
    body.top-tracks .footer a:hover {
      color: #fff; }
    body.top-tracks .footer a:first-child:before {
      font: normal normal normal 14px/1 FontAwesome;
      font-size: inherit;
      text-rendering: auto;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      content: '\f177';
      margin-right: 10px; }
    body.top-tracks .footer a:last-child:after {
      font: normal normal normal 14px/1 FontAwesome;
      font-size: inherit;
      text-rendering: auto;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      content: '\f178';
      margin-left: 10px; }

body.info .section.intro {
  margin-bottom: 0px;
  padding-bottom: 0px; }
  body.info .section.intro .wrapper h3 {
    margin-bottom: 8px; }

body.info .section.stats {
  margin: 0px;
  padding: 0px;
  padding-top: 10px; }
  body.info .section.stats ul {
    text-align: center; }
    body.info .section.stats ul li {
      display: inline-block;
      color: #2ecc71;
      font-weight: 700;
      font-size: 21px;
      margin: 0 20px;
      text-shadow: 0 1px 1px rgba(0, 0, 0, 0.5);
      margin-bottom: 15px;
      text-align: center; }
      body.info .section.stats ul li:before {
        font: normal normal normal 14px/1 FontAwesome;
        font-size: inherit;
        text-rendering: auto;
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale;
        font-size: 24px;
        vertical-align: center;
        content: '\f164';
        margin-right: 8px; }
      body.info .section.stats ul li.thumbs-down {
        color: #F62459; }
        body.info .section.stats ul li.thumbs-down:before {
          color: #F62459;
          content: '\f165'; }
      body.info .section.stats ul li.stars {
        color: #F1C40F; }
        body.info .section.stats ul li.stars:before {
          color: #F1C40F;
          content: '\f005'; }

body.info .section.songs {
  padding-bottom: 0px; }
  @media (min-width: 768px) {
    body.info .section.songs.most-played {
      padding-top: 40px; } }
  body.info .section.songs .title {
    text-align: center; }
  body.info .section.songs .title h3 {
    color: #fff;
    display: inline-block;
    background: #2ecc71;
    padding: 15px 25px;
    border-radius: 4px;
    box-shadow: 0 4px 0px rgba(0, 0, 0, 0.25);
    margin-bottom: 60px;
    background: #5f82f7; }
    body.info .section.songs .title h3:before {
      font: normal normal normal 14px/1 FontAwesome;
      font-size: inherit;
      text-rendering: auto;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      content: '\f164';
      margin-right: 10px; }
    body.info .section.songs .title h3:before {
      content: '\f04b'; }

body.info .wrapper ul.tracks {
  max-width: 1000px;
  margin: 0px auto; }
  body.info .wrapper ul.tracks li {
    padding: 0 10px;
    position: relative;
    margin-bottom: 30px; }
    @media (min-width: 768px) {
      body.info .wrapper ul.tracks li {
        width: 50%;
        float: left;
        padding-right: 20px;
        margin-bottom: 40px; }
        body.info .wrapper ul.tracks li:nth-child(even) {
          padding-left: 20px;
          padding-right: 0px; } }
    body.info .wrapper ul.tracks li iframe {
      background: #282828;
      width: 100%;
      margin: 0px;
      border-radius: 4px;
      overflow: hidden;
      box-shadow: 0 2px 1px rgba(0, 0, 0, 0.5);
      height: 80px; }
      @media (min-width: 768px) {
        body.info .wrapper ul.tracks li iframe {
          height: 89px; } }
    body.info .wrapper ul.tracks li > div {
      position: relative; }
    body.info .wrapper ul.tracks li div.idx {
      background: #5f82f7;
      font-weight: 700;
      text-shadow: 0 1px 1px rgba(0, 0, 0, 0.5);
      position: absolute;
      top: -20px;
      left: -20px;
      font-size: 21px;
      border-radius: 500px;
      overflow: hidden;
      width: 40px;
      height: 40px;
      line-height: 40px;
      vertical-align: middle;
      text-align: center;
      box-shadow: 0 3px 1px rgba(0, 0, 0, 0.5); }
      @media (min-width: 768px) {
        body.info .wrapper ul.tracks li div.idx {
          font-size: 24px;
          left: -20px; } }
      body.info .wrapper ul.tracks li div.idx > span {
        vertical-align: top;
        font-size: 21px;
        font-weight: 400; }
    body.info .wrapper ul.tracks li div.thumbs {
      position: absolute;
      min-width: 200px;
      top: -20px;
      right: 0px;
      color: #fff;
      font-size: 14px;
      text-shadow: 0 1px 1px rgba(0, 0, 0, 0.5);
      font-weight: 600;
      text-align: right; }
      body.info .wrapper ul.tracks li div.thumbs > div {
        display: inline-block;
        margin-left: 8px; }
        body.info .wrapper ul.tracks li div.thumbs > div:before {
          font: normal normal normal 14px/1 FontAwesome;
          font-size: inherit;
          text-rendering: auto;
          -webkit-font-smoothing: antialiased;
          -moz-osx-font-smoothing: grayscale;
          content: '\f164';
          color: #2ecc71;
          font-size: 16px;
          margin-right: 4px; }
        body.info .wrapper ul.tracks li div.thumbs > div.thumbs-down:before {
          content: '\f165';
          color: #F62459; }

body.info .section.thumbs-up .title h3 {
  background: #2ecc71; }
  body.info .section.thumbs-up .title h3:before {
    content: '\f164'; }

body.info .section.thumbs-up .wrapper ul.tracks .idx {
  background: #2ecc71; }

body.info .section.thumbs-down .title h3 {
  background: #F62459; }
  body.info .section.thumbs-down .title h3:before {
    content: '\f165'; }

body.info .section.thumbs-down .wrapper ul.tracks .idx {
  background: #F62459; }

body.info .section.back {
  margin-top: 0px;
  padding-top: 0px;
  padding-bottom: 0px;
  padding-top: 70px; }
  body.info .section.back a h3:before {
    font: normal normal normal 14px/1 FontAwesome;
    font-size: inherit;
    text-rendering: auto;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    content: '\f053';
    margin-right: 10px; }
  body.info .section.back a h3 {
    text-align: center;
    color: #e3e7e7;
    -webkit-transition: color 0.5s;
    -moz-transition: color 0.5s;
    transition: color 0.5s; }
  body.info .section.back a:hover h3 {
    color: #fff; }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5jc3MiLCJzb3VyY2VzIjpbIm1haW4uc2NzcyIsIl9yZXNldC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9fYm91cmJvbi5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9zZXR0aW5ncy9fcHJlZml4ZXIuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvc2V0dGluZ3MvX3B4LXRvLWVtLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL3NldHRpbmdzL19hc3NldC1waXBlbGluZS5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX2Fzc2lnbi1pbnB1dHMuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19jb250YWlucy5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX2NvbnRhaW5zLWZhbHN5LnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9faXMtbGVuZ3RoLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9faXMtbGlnaHQuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19pcy1udW1iZXIuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19pcy1zaXplLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fcHgtdG8tZW0uc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19weC10by1yZW0uc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19zaGFkZS5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX3N0cmlwLXVuaXRzLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fdGludC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX3RyYW5zaXRpb24tcHJvcGVydHktbmFtZS5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX3VucGFjay5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX21vZHVsYXItc2NhbGUuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fY29udmVydC11bml0cy5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19kaXJlY3Rpb25hbC12YWx1ZXMuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fZm9udC1zb3VyY2UtZGVjbGFyYXRpb24uc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fZ3JhZGllbnQtcG9zaXRpb25zLXBhcnNlci5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19saW5lYXItYW5nbGUtcGFyc2VyLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX2xpbmVhci1ncmFkaWVudC1wYXJzZXIuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fbGluZWFyLXBvc2l0aW9ucy1wYXJzZXIuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fbGluZWFyLXNpZGUtY29ybmVyLXBhcnNlci5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19yYWRpYWwtYXJnLXBhcnNlci5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19yYWRpYWwtcG9zaXRpb25zLXBhcnNlci5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19yYWRpYWwtZ3JhZGllbnQtcGFyc2VyLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX3JlbmRlci1ncmFkaWVudHMuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fc2hhcGUtc2l6ZS1zdHJpcHBlci5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19zdHItdG8tbnVtLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2FuaW1hdGlvbi5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19hcHBlYXJhbmNlLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2JhY2tmYWNlLXZpc2liaWxpdHkuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fYmFja2dyb3VuZC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19iYWNrZ3JvdW5kLWltYWdlLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2JvcmRlci1pbWFnZS5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19jYWxjLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2NvbHVtbnMuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fZmlsdGVyLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2ZsZXgtYm94LnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2ZvbnQtZmFjZS5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19mb250LWZlYXR1cmUtc2V0dGluZ3Muc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9faGlkcGktbWVkaWEtcXVlcnkuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9faHlwaGVucy5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19pbWFnZS1yZW5kZXJpbmcuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fa2V5ZnJhbWVzLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2xpbmVhci1ncmFkaWVudC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19wZXJzcGVjdGl2ZS5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19wbGFjZWhvbGRlci5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19yYWRpYWwtZ3JhZGllbnQuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fc2VsZWN0aW9uLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX3RleHQtZGVjb3JhdGlvbi5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL190cmFuc2Zvcm0uc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fdHJhbnNpdGlvbi5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL191c2VyLXNlbGVjdC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX2JvcmRlci1jb2xvci5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX2JvcmRlci1yYWRpdXMuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19ib3JkZXItc3R5bGUuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19ib3JkZXItd2lkdGguc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19idXR0b25zLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fY2xlYXJmaXguc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19lbGxpcHNpcy5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX2ZvbnQtc3RhY2tzLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9faGlkZS10ZXh0LnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fbWFyZ2luLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fcGFkZGluZy5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX3Bvc2l0aW9uLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fcHJlZml4ZXIuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19yZXRpbmEtaW1hZ2Uuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19zaXplLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fdGV4dC1pbnB1dHMuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL190aW1pbmctZnVuY3Rpb25zLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fdHJpYW5nbGUuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL193b3JkLXdyYXAuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvX2JvdXJib24tZGVwcmVjYXRlZC11cGNvbWluZy5zY3NzIiwiX2ZvbnRzLnNjc3MiLCJfdmFyaWFibGVzLnNjc3MiLCJfbWl4aW5zLnNjc3MiLCJfZ2xvYmFsLnNjc3MiLCJfaGVhZGVyLnNjc3MiLCJfZm9vdGVyLnNjc3MiLCJfbGFuZGluZy5zY3NzIiwiX2ZlYXR1cmVzLnNjc3MiLCJfaW52aXRlLnNjc3MiLCJfcmVmZXJyYWxzLnNjc3MiLCJfaGVscC5zY3NzIiwiX2NvbXBhcmUuc2NzcyIsIl9zdGF0cy5zY3NzIl0sInNvdXJjZXNDb250ZW50IjpbIkBpbXBvcnQgXCJyZXNldFwiO1xuQGltcG9ydCBcImJvdXJib25cIjtcbkBpbXBvcnQgXCJmb250c1wiO1xuXG5AaW1wb3J0IFwidmFyaWFibGVzXCI7XG5AaW1wb3J0IFwibWl4aW5zXCI7XG5cbkBpbXBvcnQgXCJnbG9iYWxcIjtcbkBpbXBvcnQgXCJoZWFkZXJcIjtcbkBpbXBvcnQgXCJmb290ZXJcIjtcbkBpbXBvcnQgXCJsYW5kaW5nXCI7XG5AaW1wb3J0IFwiZmVhdHVyZXNcIjtcbkBpbXBvcnQgXCJpbnZpdGVcIjtcbkBpbXBvcnQgXCJyZWZlcnJhbHNcIjtcbkBpbXBvcnQgXCJoZWxwXCI7XG5AaW1wb3J0IFwiY29tcGFyZVwiO1xuQGltcG9ydCBcInN0YXRzXCI7IiwiaHRtbCwgYm9keSwgZGl2LCBzcGFuLCBhcHBsZXQsIG9iamVjdCwgaWZyYW1lLFxuaDEsIGgyLCBoMywgaDQsIGg1LCBoNiwgcCwgYmxvY2txdW90ZSwgcHJlLFxuYSwgYWJiciwgYWNyb255bSwgYWRkcmVzcywgYmlnLCBjaXRlLCBjb2RlLFxuZGVsLCBkZm4sIGVtLCBpbWcsIGlucywga2JkLCBxLCBzLCBzYW1wLFxuc21hbGwsIHN0cmlrZSwgc3Ryb25nLCBzdWIsIHN1cCwgdHQsIHZhcixcbmIsIHUsIGksIGNlbnRlcixcbmRsLCBkdCwgZGQsIG9sLCB1bCwgbGksXG5maWVsZHNldCwgZm9ybSwgbGFiZWwsIGxlZ2VuZCxcbnRhYmxlLCBjYXB0aW9uLCB0Ym9keSwgdGZvb3QsIHRoZWFkLCB0ciwgdGgsIHRkLFxuYXJ0aWNsZSwgYXNpZGUsIGNhbnZhcywgZGV0YWlscywgZW1iZWQsIFxuZmlndXJlLCBmaWdjYXB0aW9uLCBmb290ZXIsIGhlYWRlciwgaGdyb3VwLCBcbm1lbnUsIG5hdiwgb3V0cHV0LCBydWJ5LCBzZWN0aW9uLCBzdW1tYXJ5LFxudGltZSwgbWFyaywgYXVkaW8sIHZpZGVvIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IDA7XG4gIGZvbnQtc2l6ZTogMTAwJTtcbiAgZm9udDogaW5oZXJpdDtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuLyogSFRNTDUgZGlzcGxheS1yb2xlIHJlc2V0IGZvciBvbGRlciBicm93c2VycyAqL1xuYXJ0aWNsZSwgYXNpZGUsIGRldGFpbHMsIGZpZ2NhcHRpb24sIGZpZ3VyZSwgXG5mb290ZXIsIGhlYWRlciwgaGdyb3VwLCBtZW51LCBuYXYsIHNlY3Rpb24ge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbmJvZHkge1xuICBsaW5lLWhlaWdodDogMTtcbn1cbm9sLCB1bCB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG5ibG9ja3F1b3RlLCBxIHtcbiAgcXVvdGVzOiBub25lO1xufVxuYmxvY2txdW90ZTpiZWZvcmUsIGJsb2NrcXVvdGU6YWZ0ZXIsXG5xOmJlZm9yZSwgcTphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBjb250ZW50OiBub25lO1xufVxudGFibGUge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBib3JkZXItc3BhY2luZzogMDtcbn0iLCIvLyBCb3VyYm9uIDQuMi43XG4vLyBodHRwOi8vYm91cmJvbi5pb1xuLy8gQ29weXJpZ2h0IDIwMTEtMjAxNSB0aG91Z2h0Ym90LCBpbmMuXG4vLyBNSVQgTGljZW5zZVxuXG5AaW1wb3J0IFwic2V0dGluZ3MvcHJlZml4ZXJcIjtcbkBpbXBvcnQgXCJzZXR0aW5ncy9weC10by1lbVwiO1xuQGltcG9ydCBcInNldHRpbmdzL2Fzc2V0LXBpcGVsaW5lXCI7XG5cbkBpbXBvcnQgXCJmdW5jdGlvbnMvYXNzaWduLWlucHV0c1wiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9jb250YWluc1wiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9jb250YWlucy1mYWxzeVwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9pcy1sZW5ndGhcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvaXMtbGlnaHRcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvaXMtbnVtYmVyXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL2lzLXNpemVcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvcHgtdG8tZW1cIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvcHgtdG8tcmVtXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL3NoYWRlXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL3N0cmlwLXVuaXRzXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL3RpbnRcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL3VucGFja1wiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9tb2R1bGFyLXNjYWxlXCI7XG5cbkBpbXBvcnQgXCJoZWxwZXJzL2NvbnZlcnQtdW5pdHNcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL2RpcmVjdGlvbmFsLXZhbHVlc1wiO1xuQGltcG9ydCBcImhlbHBlcnMvZm9udC1zb3VyY2UtZGVjbGFyYXRpb25cIjtcbkBpbXBvcnQgXCJoZWxwZXJzL2dyYWRpZW50LXBvc2l0aW9ucy1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL2xpbmVhci1hbmdsZS1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL2xpbmVhci1ncmFkaWVudC1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL2xpbmVhci1wb3NpdGlvbnMtcGFyc2VyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9saW5lYXItc2lkZS1jb3JuZXItcGFyc2VyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9yYWRpYWwtYXJnLXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvcmFkaWFsLXBvc2l0aW9ucy1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL3JhZGlhbC1ncmFkaWVudC1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL3JlbmRlci1ncmFkaWVudHNcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL3NoYXBlLXNpemUtc3RyaXBwZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL3N0ci10by1udW1cIjtcblxuQGltcG9ydCBcImNzczMvYW5pbWF0aW9uXCI7XG5AaW1wb3J0IFwiY3NzMy9hcHBlYXJhbmNlXCI7XG5AaW1wb3J0IFwiY3NzMy9iYWNrZmFjZS12aXNpYmlsaXR5XCI7XG5AaW1wb3J0IFwiY3NzMy9iYWNrZ3JvdW5kXCI7XG5AaW1wb3J0IFwiY3NzMy9iYWNrZ3JvdW5kLWltYWdlXCI7XG5AaW1wb3J0IFwiY3NzMy9ib3JkZXItaW1hZ2VcIjtcbkBpbXBvcnQgXCJjc3MzL2NhbGNcIjtcbkBpbXBvcnQgXCJjc3MzL2NvbHVtbnNcIjtcbkBpbXBvcnQgXCJjc3MzL2ZpbHRlclwiO1xuQGltcG9ydCBcImNzczMvZmxleC1ib3hcIjtcbkBpbXBvcnQgXCJjc3MzL2ZvbnQtZmFjZVwiO1xuQGltcG9ydCBcImNzczMvZm9udC1mZWF0dXJlLXNldHRpbmdzXCI7XG5AaW1wb3J0IFwiY3NzMy9oaWRwaS1tZWRpYS1xdWVyeVwiO1xuQGltcG9ydCBcImNzczMvaHlwaGVuc1wiO1xuQGltcG9ydCBcImNzczMvaW1hZ2UtcmVuZGVyaW5nXCI7XG5AaW1wb3J0IFwiY3NzMy9rZXlmcmFtZXNcIjtcbkBpbXBvcnQgXCJjc3MzL2xpbmVhci1ncmFkaWVudFwiO1xuQGltcG9ydCBcImNzczMvcGVyc3BlY3RpdmVcIjtcbkBpbXBvcnQgXCJjc3MzL3BsYWNlaG9sZGVyXCI7XG5AaW1wb3J0IFwiY3NzMy9yYWRpYWwtZ3JhZGllbnRcIjtcbkBpbXBvcnQgXCJjc3MzL3NlbGVjdGlvblwiO1xuQGltcG9ydCBcImNzczMvdGV4dC1kZWNvcmF0aW9uXCI7XG5AaW1wb3J0IFwiY3NzMy90cmFuc2Zvcm1cIjtcbkBpbXBvcnQgXCJjc3MzL3RyYW5zaXRpb25cIjtcbkBpbXBvcnQgXCJjc3MzL3VzZXItc2VsZWN0XCI7XG5cbkBpbXBvcnQgXCJhZGRvbnMvYm9yZGVyLWNvbG9yXCI7XG5AaW1wb3J0IFwiYWRkb25zL2JvcmRlci1yYWRpdXNcIjtcbkBpbXBvcnQgXCJhZGRvbnMvYm9yZGVyLXN0eWxlXCI7XG5AaW1wb3J0IFwiYWRkb25zL2JvcmRlci13aWR0aFwiO1xuQGltcG9ydCBcImFkZG9ucy9idXR0b25zXCI7XG5AaW1wb3J0IFwiYWRkb25zL2NsZWFyZml4XCI7XG5AaW1wb3J0IFwiYWRkb25zL2VsbGlwc2lzXCI7XG5AaW1wb3J0IFwiYWRkb25zL2ZvbnQtc3RhY2tzXCI7XG5AaW1wb3J0IFwiYWRkb25zL2hpZGUtdGV4dFwiO1xuQGltcG9ydCBcImFkZG9ucy9tYXJnaW5cIjtcbkBpbXBvcnQgXCJhZGRvbnMvcGFkZGluZ1wiO1xuQGltcG9ydCBcImFkZG9ucy9wb3NpdGlvblwiO1xuQGltcG9ydCBcImFkZG9ucy9wcmVmaXhlclwiO1xuQGltcG9ydCBcImFkZG9ucy9yZXRpbmEtaW1hZ2VcIjtcbkBpbXBvcnQgXCJhZGRvbnMvc2l6ZVwiO1xuQGltcG9ydCBcImFkZG9ucy90ZXh0LWlucHV0c1wiO1xuQGltcG9ydCBcImFkZG9ucy90aW1pbmctZnVuY3Rpb25zXCI7XG5AaW1wb3J0IFwiYWRkb25zL3RyaWFuZ2xlXCI7XG5AaW1wb3J0IFwiYWRkb25zL3dvcmQtd3JhcFwiO1xuXG5AaW1wb3J0IFwiYm91cmJvbi1kZXByZWNhdGVkLXVwY29taW5nXCI7XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBHbG9iYWwgdmFyaWFibGVzIHRvIGVuYWJsZSBvciBkaXNhYmxlIHZlbmRvciBwcmVmaXhlc1xuXG4kcHJlZml4LWZvci13ZWJraXQ6ICAgIHRydWUgIWRlZmF1bHQ7XG4kcHJlZml4LWZvci1tb3ppbGxhOiAgIHRydWUgIWRlZmF1bHQ7XG4kcHJlZml4LWZvci1taWNyb3NvZnQ6IHRydWUgIWRlZmF1bHQ7XG4kcHJlZml4LWZvci1vcGVyYTogICAgIHRydWUgIWRlZmF1bHQ7XG4kcHJlZml4LWZvci1zcGVjOiAgICAgIHRydWUgIWRlZmF1bHQ7XG4iLCIkZW0tYmFzZTogMTZweCAhZGVmYXVsdDtcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIEEgZ2xvYmFsIHNldHRpbmcgdG8gZW5hYmxlIG9yIGRpc2FibGUgdGhlIGAkYXNzZXQtcGlwZWxpbmVgIHZhcmlhYmxlIGZvciBhbGwgZnVuY3Rpb25zIHRoYXQgYWNjZXB0IGl0LlxuLy8vXG4vLy8gQHR5cGUgQm9vbFxuXG4kYXNzZXQtcGlwZWxpbmU6IGZhbHNlICFkZWZhdWx0O1xuIiwiQGZ1bmN0aW9uIGFzc2lnbi1pbnB1dHMoJGlucHV0cywgJHBzZXVkbzogbnVsbCkge1xuICAkbGlzdDogKCk7XG5cbiAgQGVhY2ggJGlucHV0IGluICRpbnB1dHMge1xuICAgICRpbnB1dDogdW5xdW90ZSgkaW5wdXQpO1xuICAgICRpbnB1dDogaWYoJHBzZXVkbywgJGlucHV0ICsgXCI6XCIgKyAkcHNldWRvLCAkaW5wdXQpO1xuICAgICRsaXN0OiBhcHBlbmQoJGxpc3QsICRpbnB1dCwgY29tbWEpO1xuICB9XG5cbiAgQHJldHVybiAkbGlzdDtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIENoZWNrcyBpZiBhIGxpc3QgY29udGFpbnMgYSB2YWx1ZShzKS5cbi8vL1xuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkbGlzdFxuLy8vICAgVGhlIGxpc3QgdG8gY2hlY2sgYWdhaW5zdC5cbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHZhbHVlc1xuLy8vICAgQSBzaW5nbGUgdmFsdWUgb3IgbGlzdCBvZiB2YWx1ZXMgdG8gY2hlY2sgZm9yLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICBjb250YWlucygkbGlzdCwgJHZhbHVlKVxuLy8vXG4vLy8gQHJldHVybiB7Qm9vbH1cblxuQGZ1bmN0aW9uIGNvbnRhaW5zKCRsaXN0LCAkdmFsdWVzLi4uKSB7XG4gIEBlYWNoICR2YWx1ZSBpbiAkdmFsdWVzIHtcbiAgICBAaWYgdHlwZS1vZihpbmRleCgkbGlzdCwgJHZhbHVlKSkgIT0gXCJudW1iZXJcIiB7XG4gICAgICBAcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gdHJ1ZTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIENoZWNrcyBpZiBhIGxpc3QgZG9lcyBub3QgY29udGFpbnMgYSB2YWx1ZS5cbi8vL1xuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkbGlzdFxuLy8vICAgVGhlIGxpc3QgdG8gY2hlY2sgYWdhaW5zdC5cbi8vL1xuLy8vIEByZXR1cm4ge0Jvb2x9XG5cbkBmdW5jdGlvbiBjb250YWlucy1mYWxzeSgkbGlzdCkge1xuICBAZWFjaCAkaXRlbSBpbiAkbGlzdCB7XG4gICAgQGlmIG5vdCAkaXRlbSB7XG4gICAgICBAcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiBmYWxzZTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIENoZWNrcyBmb3IgYSB2YWxpZCBDU1MgbGVuZ3RoLlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR2YWx1ZVxuXG5AZnVuY3Rpb24gaXMtbGVuZ3RoKCR2YWx1ZSkge1xuICBAcmV0dXJuIHR5cGUtb2YoJHZhbHVlKSAhPSBcIm51bGxcIiBhbmQgKHN0ci1zbGljZSgkdmFsdWUgKyBcIlwiLCAxLCA0KSA9PSBcImNhbGNcIlxuICAgICAgIG9yIGluZGV4KGF1dG8gaW5oZXJpdCBpbml0aWFsIDAsICR2YWx1ZSlcbiAgICAgICBvciAodHlwZS1vZigkdmFsdWUpID09IFwibnVtYmVyXCIgYW5kIG5vdCh1bml0bGVzcygkdmFsdWUpKSkpO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvZ3JhbWF0aWNhbGx5IGRldGVybWluZXMgd2hldGhlciBhIGNvbG9yIGlzIGxpZ2h0IG9yIGRhcmsuXG4vLy9cbi8vLyBAbGluayBodHRwOi8vcm9ib3RzLnRob3VnaHRib3QuY29tL2Nsb3Nlci1sb29rLWNvbG9yLWxpZ2h0bmVzc1xuLy8vXG4vLy8gQHBhcmFtIHtDb2xvciAoSGV4KX0gJGNvbG9yXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIGlzLWxpZ2h0KCRjb2xvcilcbi8vL1xuLy8vIEByZXR1cm4ge0Jvb2x9XG5cbkBmdW5jdGlvbiBpcy1saWdodCgkaGV4LWNvbG9yKSB7XG4gICQtbG9jYWwtcmVkOiByZWQocmdiYSgkaGV4LWNvbG9yLCAxKSk7XG4gICQtbG9jYWwtZ3JlZW46IGdyZWVuKHJnYmEoJGhleC1jb2xvciwgMSkpO1xuICAkLWxvY2FsLWJsdWU6IGJsdWUocmdiYSgkaGV4LWNvbG9yLCAxKSk7XG4gICQtbG9jYWwtbGlnaHRuZXNzOiAoJC1sb2NhbC1yZWQgKiAwLjIxMjYgKyAkLWxvY2FsLWdyZWVuICogMC43MTUyICsgJC1sb2NhbC1ibHVlICogMC4wNzIyKSAvIDI1NTtcblxuICBAcmV0dXJuICQtbG9jYWwtbGlnaHRuZXNzID4gMC42O1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQ2hlY2tzIGZvciBhIHZhbGlkIG51bWJlci5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdmFsdWVcbi8vL1xuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gY29udGFpbnNcblxuQGZ1bmN0aW9uIGlzLW51bWJlcigkdmFsdWUpIHtcbiAgQHJldHVybiBjb250YWlucyhcIjBcIiBcIjFcIiBcIjJcIiBcIjNcIiBcIjRcIiBcIjVcIiBcIjZcIiBcIjdcIiBcIjhcIiBcIjlcIiAwIDEgMiAzIDQgNSA2IDcgOCA5LCAkdmFsdWUpO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQ2hlY2tzIGZvciBhIHZhbGlkIENTUyBzaXplLlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR2YWx1ZVxuLy8vXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBjb250YWluc1xuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gaXMtbGVuZ3RoXG5cbkBmdW5jdGlvbiBpcy1zaXplKCR2YWx1ZSkge1xuICBAcmV0dXJuIGlzLWxlbmd0aCgkdmFsdWUpXG4gICAgICAgICAgb3IgY29udGFpbnMoXCJmaWxsXCIgXCJmaXQtY29udGVudFwiIFwibWluLWNvbnRlbnRcIiBcIm1heC1jb250ZW50XCIsICR2YWx1ZSk7XG59XG4iLCIvLyBDb252ZXJ0IHBpeGVscyB0byBlbXNcbi8vIGVnLiBmb3IgYSByZWxhdGlvbmFsIHZhbHVlIG9mIDEycHggd3JpdGUgZW0oMTIpIHdoZW4gdGhlIHBhcmVudCBpcyAxNnB4XG4vLyBpZiB0aGUgcGFyZW50IGlzIGFub3RoZXIgdmFsdWUgc2F5IDI0cHggd3JpdGUgZW0oMTIsIDI0KVxuXG5AZnVuY3Rpb24gZW0oJHB4dmFsLCAkYmFzZTogJGVtLWJhc2UpIHtcbiAgQGlmIG5vdCB1bml0bGVzcygkcHh2YWwpIHtcbiAgICAkcHh2YWw6IHN0cmlwLXVuaXRzKCRweHZhbCk7XG4gIH1cbiAgQGlmIG5vdCB1bml0bGVzcygkYmFzZSkge1xuICAgICRiYXNlOiBzdHJpcC11bml0cygkYmFzZSk7XG4gIH1cbiAgQHJldHVybiAoJHB4dmFsIC8gJGJhc2UpICogMWVtO1xufVxuIiwiLy8gQ29udmVydCBwaXhlbHMgdG8gcmVtc1xuLy8gZWcuIGZvciBhIHJlbGF0aW9uYWwgdmFsdWUgb2YgMTJweCB3cml0ZSByZW0oMTIpXG4vLyBBc3N1bWVzICRlbS1iYXNlIGlzIHRoZSBmb250LXNpemUgb2YgPGh0bWw+XG5cbkBmdW5jdGlvbiByZW0oJHB4dmFsKSB7XG4gIEBpZiBub3QgdW5pdGxlc3MoJHB4dmFsKSB7XG4gICAgJHB4dmFsOiBzdHJpcC11bml0cygkcHh2YWwpO1xuICB9XG5cbiAgJGJhc2U6ICRlbS1iYXNlO1xuICBAaWYgbm90IHVuaXRsZXNzKCRiYXNlKSB7XG4gICAgJGJhc2U6IHN0cmlwLXVuaXRzKCRiYXNlKTtcbiAgfVxuICBAcmV0dXJuICgkcHh2YWwgLyAkYmFzZSkgKiAxcmVtO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gTWl4ZXMgYSBjb2xvciB3aXRoIGJsYWNrLlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlciAoUGVyY2VudGFnZSl9ICRwZXJjZW50XG4vLy8gICBUaGUgYW1vdW50IG9mIGJsYWNrIHRvIGJlIG1peGVkIGluLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6IHNoYWRlKCNmZmJiNTIsIDYwJSk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICM2NjRhMjA7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmV0dXJuIHtDb2xvcn1cblxuQGZ1bmN0aW9uIHNoYWRlKCRjb2xvciwgJHBlcmNlbnQpIHtcbiAgQHJldHVybiBtaXgoIzAwMCwgJGNvbG9yLCAkcGVyY2VudCk7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBTdHJpcHMgdGhlIHVuaXQgZnJvbSBhIG51bWJlci5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyIChXaXRoIFVuaXQpfSAkdmFsdWVcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgJGRpbWVuc2lvbjogc3RyaXAtdW5pdHMoMTBlbSk7XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAkZGltZW5zaW9uOiAxMDtcbi8vL1xuLy8vIEByZXR1cm4ge051bWJlciAoVW5pdGxlc3MpfVxuXG5AZnVuY3Rpb24gc3RyaXAtdW5pdHMoJHZhbHVlKSB7XG4gIEByZXR1cm4gKCR2YWx1ZSAvICgkdmFsdWUgKiAwICsgMSkpO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gTWl4ZXMgYSBjb2xvciB3aXRoIHdoaXRlLlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlciAoUGVyY2VudGFnZSl9ICRwZXJjZW50XG4vLy8gICBUaGUgYW1vdW50IG9mIHdoaXRlIHRvIGJlIG1peGVkIGluLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6IHRpbnQoIzZlY2FhNiwgNDAlKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogI2E4ZGZjOTtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXR1cm4ge0NvbG9yfVxuXG5AZnVuY3Rpb24gdGludCgkY29sb3IsICRwZXJjZW50KSB7XG4gIEByZXR1cm4gbWl4KCNmZmYsICRjb2xvciwgJHBlcmNlbnQpO1xufVxuIiwiLy8gUmV0dXJuIHZlbmRvci1wcmVmaXhlZCBwcm9wZXJ0eSBuYW1lcyBpZiBhcHByb3ByaWF0ZVxuLy8gRXhhbXBsZTogdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lcygodHJhbnNmb3JtLCBjb2xvciwgYmFja2dyb3VuZCksIG1veikgLT4gLW1vei10cmFuc2Zvcm0sIGNvbG9yLCBiYWNrZ3JvdW5kXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG5AZnVuY3Rpb24gdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lcygkcHJvcHMsICR2ZW5kb3I6IGZhbHNlKSB7XG4gICRuZXctcHJvcHM6ICgpO1xuXG4gIEBlYWNoICRwcm9wIGluICRwcm9wcyB7XG4gICAgJG5ldy1wcm9wczogYXBwZW5kKCRuZXctcHJvcHMsIHRyYW5zaXRpb24tcHJvcGVydHktbmFtZSgkcHJvcCwgJHZlbmRvciksIGNvbW1hKTtcbiAgfVxuXG4gIEByZXR1cm4gJG5ldy1wcm9wcztcbn1cblxuQGZ1bmN0aW9uIHRyYW5zaXRpb24tcHJvcGVydHktbmFtZSgkcHJvcCwgJHZlbmRvcjogZmFsc2UpIHtcbiAgLy8gcHV0IG90aGVyIHByb3BlcnRpZXMgdGhhdCBuZWVkIHRvIGJlIHByZWZpeGVkIGhlcmUgYXN3ZWxsXG4gIEBpZiAkdmVuZG9yIGFuZCAkcHJvcCA9PSB0cmFuc2Zvcm0ge1xuICAgIEByZXR1cm4gdW5xdW90ZSgnLScrJHZlbmRvcisnLScrJHByb3ApO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuICRwcm9wO1xuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBDb252ZXJ0cyBzaG9ydGhhbmQgdG8gdGhlIDQtdmFsdWUgc3ludGF4LlxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkc2hvcnRoYW5kXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgbWFyZ2luOiB1bnBhY2soMWVtIDJlbSk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIG1hcmdpbjogMWVtIDJlbSAxZW0gMmVtO1xuLy8vICAgfVxuXG5AZnVuY3Rpb24gdW5wYWNrKCRzaG9ydGhhbmQpIHtcbiAgQGlmIGxlbmd0aCgkc2hvcnRoYW5kKSA9PSAxIHtcbiAgICBAcmV0dXJuIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAxKTtcbiAgfSBAZWxzZSBpZiBsZW5ndGgoJHNob3J0aGFuZCkgPT0gMiB7XG4gICAgQHJldHVybiBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDIpIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMik7XG4gIH0gQGVsc2UgaWYgbGVuZ3RoKCRzaG9ydGhhbmQpID09IDMge1xuICAgIEByZXR1cm4gbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAyKSBudGgoJHNob3J0aGFuZCwgMykgbnRoKCRzaG9ydGhhbmQsIDIpO1xuICB9IEBlbHNlIHtcbiAgICBAcmV0dXJuICRzaG9ydGhhbmQ7XG4gIH1cbn1cbiIsIi8vIFNjYWxpbmcgVmFyaWFibGVzXG4kZ29sZGVuOiAgICAgICAgICAgMS42MTg7XG4kbWlub3Itc2Vjb25kOiAgICAgMS4wNjc7XG4kbWFqb3Itc2Vjb25kOiAgICAgMS4xMjU7XG4kbWlub3ItdGhpcmQ6ICAgICAgMS4yO1xuJG1ham9yLXRoaXJkOiAgICAgIDEuMjU7XG4kcGVyZmVjdC1mb3VydGg6ICAgMS4zMzM7XG4kYXVnbWVudGVkLWZvdXJ0aDogMS40MTQ7XG4kcGVyZmVjdC1maWZ0aDogICAgMS41O1xuJG1pbm9yLXNpeHRoOiAgICAgIDEuNjtcbiRtYWpvci1zaXh0aDogICAgICAxLjY2NztcbiRtaW5vci1zZXZlbnRoOiAgICAxLjc3ODtcbiRtYWpvci1zZXZlbnRoOiAgICAxLjg3NTtcbiRvY3RhdmU6ICAgICAgICAgICAyO1xuJG1ham9yLXRlbnRoOiAgICAgIDIuNTtcbiRtYWpvci1lbGV2ZW50aDogICAyLjY2NztcbiRtYWpvci10d2VsZnRoOiAgICAzO1xuJGRvdWJsZS1vY3RhdmU6ICAgIDQ7XG5cbiRtb2R1bGFyLXNjYWxlLXJhdGlvOiAkcGVyZmVjdC1mb3VydGggIWRlZmF1bHQ7XG4kbW9kdWxhci1zY2FsZS1iYXNlOiBlbSgkZW0tYmFzZSkgIWRlZmF1bHQ7XG5cbkBmdW5jdGlvbiBtb2R1bGFyLXNjYWxlKCRpbmNyZW1lbnQsICR2YWx1ZTogJG1vZHVsYXItc2NhbGUtYmFzZSwgJHJhdGlvOiAkbW9kdWxhci1zY2FsZS1yYXRpbykge1xuICAkdjE6IG50aCgkdmFsdWUsIDEpO1xuICAkdjI6IG50aCgkdmFsdWUsIGxlbmd0aCgkdmFsdWUpKTtcbiAgJHZhbHVlOiAkdjE7XG5cbiAgLy8gc2NhbGUgJHYyIHRvIGp1c3QgYWJvdmUgJHYxXG4gIEB3aGlsZSAkdjIgPiAkdjEge1xuICAgICR2MjogKCR2MiAvICRyYXRpbyk7IC8vIHdpbGwgYmUgb2ZmLWJ5LTFcbiAgfVxuICBAd2hpbGUgJHYyIDwgJHYxIHtcbiAgICAkdjI6ICgkdjIgKiAkcmF0aW8pOyAvLyB3aWxsIGZpeCBvZmYtYnktMVxuICB9XG5cbiAgLy8gY2hlY2sgQUZURVIgc2NhbGluZyAkdjIgdG8gcHJldmVudCBkb3VibGUtY291bnRpbmcgY29ybmVyLWNhc2VcbiAgJGRvdWJsZS1zdHJhbmRlZDogJHYyID4gJHYxO1xuXG4gIEBpZiAkaW5jcmVtZW50ID4gMCB7XG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkaW5jcmVtZW50IHtcbiAgICAgIEBpZiAkZG91YmxlLXN0cmFuZGVkIGFuZCAoJHYxICogJHJhdGlvKSA+ICR2MiB7XG4gICAgICAgICR2YWx1ZTogJHYyO1xuICAgICAgICAkdjI6ICgkdjIgKiAkcmF0aW8pO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgICR2MTogKCR2MSAqICRyYXRpbyk7XG4gICAgICAgICR2YWx1ZTogJHYxO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpZiAkaW5jcmVtZW50IDwgMCB7XG4gICAgLy8gYWRqdXN0ICR2MiB0byBqdXN0IGJlbG93ICR2MVxuICAgIEBpZiAkZG91YmxlLXN0cmFuZGVkIHtcbiAgICAgICR2MjogKCR2MiAvICRyYXRpbyk7XG4gICAgfVxuXG4gICAgQGZvciAkaSBmcm9tICRpbmNyZW1lbnQgdGhyb3VnaCAtMSB7XG4gICAgICBAaWYgJGRvdWJsZS1zdHJhbmRlZCBhbmQgKCR2MSAvICRyYXRpbykgPCAkdjIge1xuICAgICAgICAkdmFsdWU6ICR2MjtcbiAgICAgICAgJHYyOiAoJHYyIC8gJHJhdGlvKTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICAkdjE6ICgkdjEgLyAkcmF0aW8pO1xuICAgICAgICAkdmFsdWU6ICR2MTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZTtcbn1cbiIsIi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbi8vIEhlbHBlciBmdW5jdGlvbiBmb3Igc3RyLXRvLW51bSBmbi5cbi8vIFNvdXJjZTogaHR0cDovL3Nhc3NtZWlzdGVyLmNvbS9naXN0Lzk2NDc0MDhcbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbkBmdW5jdGlvbiBfY29udmVydC11bml0cygkbnVtYmVyLCAkdW5pdCkge1xuICAkc3RyaW5nczogXCJweFwiLCBcImNtXCIsIFwibW1cIiwgXCIlXCIsIFwiY2hcIiwgXCJwaWNhXCIsIFwiaW5cIiwgXCJlbVwiLCBcInJlbVwiLCBcInB0XCIsIFwicGNcIiwgXCJleFwiLCBcInZ3XCIsIFwidmhcIiwgXCJ2bWluXCIsIFwidm1heFwiLCBcImRlZ1wiLCBcInJhZFwiLCBcImdyYWRcIiwgXCJ0dXJuXCI7XG4gICR1bml0czogICAxcHgsIDFjbSwgMW1tLCAxJSwgMWNoLCAxcGljYSwgMWluLCAxZW0sIDFyZW0sIDFwdCwgMXBjLCAxZXgsIDF2dywgMXZoLCAxdm1pbiwgMXZtYXgsIDFkZWcsIDFyYWQsIDFncmFkLCAxdHVybjtcbiAgJGluZGV4OiBpbmRleCgkc3RyaW5ncywgJHVuaXQpO1xuXG4gIEBpZiBub3QgJGluZGV4IHtcbiAgICBAd2FybiBcIlVua25vd24gdW5pdCBgI3skdW5pdH1gLlwiO1xuICAgIEByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBAaWYgdHlwZS1vZigkbnVtYmVyKSAhPSBcIm51bWJlclwiIHtcbiAgICBAd2FybiBcImAjeyRudW1iZXJ9IGlzIG5vdCBhIG51bWJlcmBcIjtcbiAgICBAcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgQHJldHVybiAkbnVtYmVyICogbnRoKCR1bml0cywgJGluZGV4KTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIERpcmVjdGlvbmFsLXByb3BlcnR5IG1peGlucyBhcmUgc2hvcnRoYW5kcyBmb3Igd3JpdGluZyBwcm9wZXJ0aWVzIGxpa2UgdGhlIGZvbGxvd2luZ1xuLy8vXG4vLy8gQGlnbm9yZSBZb3UgY2FuIGFsc28gdXNlIGBmYWxzZWAgaW5zdGVhZCBvZiBgbnVsbGAuXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICR2YWxzXG4vLy8gICBMaXN0IG9mIGRpcmVjdGlvbmFsIHZhbHVlc1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIGJvcmRlci1zdHlsZShkb3R0ZWQgbnVsbCk7XG4vLy8gICAgIEBpbmNsdWRlIG1hcmdpbihudWxsIDAgMTBweCk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IGRvdHRlZDtcbi8vLyAgICAgYm9yZGVyLXRvcC1zdHlsZTogZG90dGVkO1xuLy8vICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuLy8vICAgICBtYXJnaW4tbGVmdDogMDtcbi8vLyAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBjb250YWlucy1mYWxzeVxuLy8vXG4vLy8gQHJldHVybiB7TGlzdH1cblxuQGZ1bmN0aW9uIGNvbGxhcHNlLWRpcmVjdGlvbmFscygkdmFscykge1xuICAkb3V0cHV0OiBudWxsO1xuXG4gICRhOiBudGgoJHZhbHMsIDEpO1xuICAkYjogaWYobGVuZ3RoKCR2YWxzKSA8IDIsICRhLCBudGgoJHZhbHMsIDIpKTtcbiAgJGM6IGlmKGxlbmd0aCgkdmFscykgPCAzLCAkYSwgbnRoKCR2YWxzLCAzKSk7XG4gICRkOiBpZihsZW5ndGgoJHZhbHMpIDwgMiwgJGEsIG50aCgkdmFscywgaWYobGVuZ3RoKCR2YWxzKSA8IDQsIDIsIDQpKSk7XG5cbiAgQGlmICRhID09IDAgeyAkYTogMDsgfVxuICBAaWYgJGIgPT0gMCB7ICRiOiAwOyB9XG4gIEBpZiAkYyA9PSAwIHsgJGM6IDA7IH1cbiAgQGlmICRkID09IDAgeyAkZDogMDsgfVxuXG4gIEBpZiAkYSA9PSAkYiBhbmQgJGEgPT0gJGMgYW5kICRhID09ICRkIHsgJG91dHB1dDogJGE7ICAgICAgICAgIH1cbiAgQGVsc2UgaWYgJGEgPT0gJGMgYW5kICRiID09ICRkICAgICAgICAgeyAkb3V0cHV0OiAkYSAkYjsgICAgICAgfVxuICBAZWxzZSBpZiAkYiA9PSAkZCAgICAgICAgICAgICAgICAgICAgICB7ICRvdXRwdXQ6ICRhICRiICRjOyAgICB9XG4gIEBlbHNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgJG91dHB1dDogJGEgJGIgJGMgJGQ7IH1cblxuICBAcmV0dXJuICRvdXRwdXQ7XG59XG5cbi8vLyBPdXRwdXQgZGlyZWN0aW9uYWwgcHJvcGVydGllcywgZm9yIGluc3RhbmNlIGBtYXJnaW5gLlxuLy8vXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHByZVxuLy8vICAgUHJlZml4IHRvIHVzZVxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc3VmXG4vLy8gICBTdWZmaXggdG8gdXNlXG4vLy8gQHBhcmFtIHtMaXN0fSAkdmFsc1xuLy8vICAgTGlzdCBvZiB2YWx1ZXNcbi8vL1xuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gY29sbGFwc2UtZGlyZWN0aW9uYWxzXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBjb250YWlucy1mYWxzeVxuXG5AbWl4aW4gZGlyZWN0aW9uYWwtcHJvcGVydHkoJHByZSwgJHN1ZiwgJHZhbHMpIHtcbiAgLy8gUHJvcGVydHkgTmFtZXNcbiAgJHRvcDogICAgJHByZSArIFwiLXRvcFwiICAgICsgaWYoJHN1ZiwgXCItI3skc3VmfVwiLCBcIlwiKTtcbiAgJGJvdHRvbTogJHByZSArIFwiLWJvdHRvbVwiICsgaWYoJHN1ZiwgXCItI3skc3VmfVwiLCBcIlwiKTtcbiAgJGxlZnQ6ICAgJHByZSArIFwiLWxlZnRcIiAgICsgaWYoJHN1ZiwgXCItI3skc3VmfVwiLCBcIlwiKTtcbiAgJHJpZ2h0OiAgJHByZSArIFwiLXJpZ2h0XCIgICsgaWYoJHN1ZiwgXCItI3skc3VmfVwiLCBcIlwiKTtcbiAgJGFsbDogICAgJHByZSArICAgICAgICAgICAgIGlmKCRzdWYsIFwiLSN7JHN1Zn1cIiwgXCJcIik7XG5cbiAgJHZhbHM6IGNvbGxhcHNlLWRpcmVjdGlvbmFscygkdmFscyk7XG5cbiAgQGlmIGNvbnRhaW5zLWZhbHN5KCR2YWxzKSB7XG4gICAgQGlmIG50aCgkdmFscywgMSkgeyAjeyR0b3B9OiBudGgoJHZhbHMsIDEpOyB9XG5cbiAgICBAaWYgbGVuZ3RoKCR2YWxzKSA9PSAxIHtcbiAgICAgIEBpZiBudGgoJHZhbHMsIDEpIHsgI3skcmlnaHR9OiBudGgoJHZhbHMsIDEpOyB9XG4gICAgfSBAZWxzZSB7XG4gICAgICBAaWYgbnRoKCR2YWxzLCAyKSB7ICN7JHJpZ2h0fTogbnRoKCR2YWxzLCAyKTsgfVxuICAgIH1cblxuICAgIEBpZiBsZW5ndGgoJHZhbHMpID09IDIge1xuICAgICAgQGlmIG50aCgkdmFscywgMSkgeyAjeyRib3R0b219OiBudGgoJHZhbHMsIDEpOyB9XG4gICAgICBAaWYgbnRoKCR2YWxzLCAyKSB7ICN7JGxlZnR9OiAgIG50aCgkdmFscywgMik7IH1cbiAgICB9IEBlbHNlIGlmIGxlbmd0aCgkdmFscykgPT0gMyB7XG4gICAgICBAaWYgbnRoKCR2YWxzLCAzKSB7ICN7JGJvdHRvbX06IG50aCgkdmFscywgMyk7IH1cbiAgICAgIEBpZiBudGgoJHZhbHMsIDIpIHsgI3skbGVmdH06ICAgbnRoKCR2YWxzLCAyKTsgfVxuICAgIH0gQGVsc2UgaWYgbGVuZ3RoKCR2YWxzKSA9PSA0IHtcbiAgICAgIEBpZiBudGgoJHZhbHMsIDMpIHsgI3skYm90dG9tfTogbnRoKCR2YWxzLCAzKTsgfVxuICAgICAgQGlmIG50aCgkdmFscywgNCkgeyAjeyRsZWZ0fTogICBudGgoJHZhbHMsIDQpOyB9XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICAjeyRhbGx9OiAkdmFscztcbiAgfVxufVxuIiwiLy8gVXNlZCBmb3IgY3JlYXRpbmcgdGhlIHNvdXJjZSBzdHJpbmcgZm9yIGZvbnRzIHVzaW5nIEBmb250LWZhY2Vcbi8vIFJlZmVyZW5jZTogaHR0cDovL2dvby5nbC9SdTFiS1BcblxuQGZ1bmN0aW9uIGZvbnQtdXJsLXByZWZpeGVyKCRhc3NldC1waXBlbGluZSkge1xuICBAaWYgJGFzc2V0LXBpcGVsaW5lID09IHRydWUge1xuICAgIEByZXR1cm4gZm9udC11cmw7XG4gIH0gQGVsc2Uge1xuICAgIEByZXR1cm4gdXJsO1xuICB9XG59XG5cbkBmdW5jdGlvbiBmb250LXNvdXJjZS1kZWNsYXJhdGlvbihcbiAgJGZvbnQtZmFtaWx5LFxuICAkZmlsZS1wYXRoLFxuICAkYXNzZXQtcGlwZWxpbmUsXG4gICRmaWxlLWZvcm1hdHMsXG4gICRmb250LXVybCkge1xuXG4gICRzcmM6ICgpO1xuXG4gICRmb3JtYXRzLW1hcDogKFxuICAgIGVvdDogICBcIiN7JGZpbGUtcGF0aH0uZW90PyNpZWZpeFwiIGZvcm1hdChcImVtYmVkZGVkLW9wZW50eXBlXCIpLFxuICAgIHdvZmYyOiBcIiN7JGZpbGUtcGF0aH0ud29mZjJcIiBmb3JtYXQoXCJ3b2ZmMlwiKSxcbiAgICB3b2ZmOiAgXCIjeyRmaWxlLXBhdGh9LndvZmZcIiBmb3JtYXQoXCJ3b2ZmXCIpLFxuICAgIHR0ZjogICBcIiN7JGZpbGUtcGF0aH0udHRmXCIgZm9ybWF0KFwidHJ1ZXR5cGVcIiksXG4gICAgc3ZnOiAgIFwiI3skZmlsZS1wYXRofS5zdmcjI3skZm9udC1mYW1pbHl9XCIgZm9ybWF0KFwic3ZnXCIpXG4gICk7XG5cbiAgQGVhY2ggJGtleSwgJHZhbHVlcyBpbiAkZm9ybWF0cy1tYXAge1xuICAgIEBpZiBjb250YWlucygkZmlsZS1mb3JtYXRzLCAka2V5KSB7XG4gICAgICAkZmlsZS1wYXRoOiBudGgoJHZhbHVlcywgMSk7XG4gICAgICAkZm9udC1mb3JtYXQ6IG50aCgkdmFsdWVzLCAyKTtcblxuICAgICAgQGlmICRhc3NldC1waXBlbGluZSA9PSB0cnVlIHtcbiAgICAgICAgJHNyYzogYXBwZW5kKCRzcmMsIGZvbnQtdXJsKCRmaWxlLXBhdGgpICRmb250LWZvcm1hdCwgY29tbWEpO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgICRzcmM6IGFwcGVuZCgkc3JjLCB1cmwoJGZpbGUtcGF0aCkgJGZvbnQtZm9ybWF0LCBjb21tYSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkc3JjO1xufVxuIiwiQGZ1bmN0aW9uIF9ncmFkaWVudC1wb3NpdGlvbnMtcGFyc2VyKCRncmFkaWVudC10eXBlLCAkZ3JhZGllbnQtcG9zaXRpb25zKSB7XG4gIEBpZiAkZ3JhZGllbnQtcG9zaXRpb25zXG4gIGFuZCAoJGdyYWRpZW50LXR5cGUgPT0gbGluZWFyKVxuICBhbmQgKHR5cGUtb2YoJGdyYWRpZW50LXBvc2l0aW9ucykgIT0gY29sb3IpIHtcbiAgICAkZ3JhZGllbnQtcG9zaXRpb25zOiBfbGluZWFyLXBvc2l0aW9ucy1wYXJzZXIoJGdyYWRpZW50LXBvc2l0aW9ucyk7XG4gIH1cbiAgQGVsc2UgaWYgJGdyYWRpZW50LXBvc2l0aW9uc1xuICBhbmQgKCRncmFkaWVudC10eXBlID09IHJhZGlhbClcbiAgYW5kICh0eXBlLW9mKCRncmFkaWVudC1wb3NpdGlvbnMpICE9IGNvbG9yKSB7XG4gICAgJGdyYWRpZW50LXBvc2l0aW9uczogX3JhZGlhbC1wb3NpdGlvbnMtcGFyc2VyKCRncmFkaWVudC1wb3NpdGlvbnMpO1xuICB9XG4gIEByZXR1cm4gJGdyYWRpZW50LXBvc2l0aW9ucztcbn1cbiIsIi8vIFByaXZhdGUgZnVuY3Rpb24gZm9yIGxpbmVhci1ncmFkaWVudC1wYXJzZXJcbkBmdW5jdGlvbiBfbGluZWFyLWFuZ2xlLXBhcnNlcigkaW1hZ2UsICRmaXJzdC12YWwsICRwcmVmaXgsICRzdWZmaXgpIHtcbiAgJG9mZnNldDogbnVsbDtcbiAgJHVuaXQtc2hvcnQ6ICBzdHItc2xpY2UoJGZpcnN0LXZhbCwgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSAtIDIsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkpO1xuICAkdW5pdC1sb25nOiAgIHN0ci1zbGljZSgkZmlyc3QtdmFsLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpIC0gMywgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSk7XG5cbiAgQGlmICgkdW5pdC1sb25nID09IFwiZ3JhZFwiKSBvclxuICAgICAgKCR1bml0LWxvbmcgPT0gXCJ0dXJuXCIpIHtcbiAgICAkb2Zmc2V0OiBpZigkdW5pdC1sb25nID09IFwiZ3JhZFwiLCAtMTAwZ3JhZCAqIDMsIC0wLjc1dHVybik7XG4gIH1cblxuICBAZWxzZSBpZiAoJHVuaXQtc2hvcnQgPT0gXCJkZWdcIikgb3JcbiAgICAgICAgICAgKCR1bml0LXNob3J0ID09IFwicmFkXCIpIHtcbiAgICAkb2Zmc2V0OiBpZigkdW5pdC1zaG9ydCA9PSBcImRlZ1wiLCAtOTAgKiAzLCAxLjZyYWQpO1xuICB9XG5cbiAgQGlmICRvZmZzZXQge1xuICAgICRudW06IF9zdHItdG8tbnVtKCRmaXJzdC12YWwpO1xuXG4gICAgQHJldHVybiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJHByZWZpeCArICgkb2Zmc2V0IC0gJG51bSkgKyAkc3VmZml4LFxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXG4gICAgKTtcbiAgfVxufVxuIiwiQGZ1bmN0aW9uIF9saW5lYXItZ3JhZGllbnQtcGFyc2VyKCRpbWFnZSkge1xuICAkaW1hZ2U6IHVucXVvdGUoJGltYWdlKTtcbiAgJGdyYWRpZW50czogKCk7XG4gICRzdGFydDogc3RyLWluZGV4KCRpbWFnZSwgXCIoXCIpO1xuICAkZW5kOiBzdHItaW5kZXgoJGltYWdlLCBcIixcIik7XG4gICRmaXJzdC12YWw6IHN0ci1zbGljZSgkaW1hZ2UsICRzdGFydCArIDEsICRlbmQgLSAxKTtcblxuICAkcHJlZml4OiBzdHItc2xpY2UoJGltYWdlLCAxLCAkc3RhcnQpO1xuICAkc3VmZml4OiBzdHItc2xpY2UoJGltYWdlLCAkZW5kLCBzdHItbGVuZ3RoKCRpbWFnZSkpO1xuXG4gICRoYXMtbXVsdGlwbGUtdmFsczogc3RyLWluZGV4KCRmaXJzdC12YWwsIFwiIFwiKTtcbiAgJGhhcy1zaW5nbGUtcG9zaXRpb246IHVucXVvdGUoX3Bvc2l0aW9uLWZsaXBwZXIoJGZpcnN0LXZhbCkgKyBcIlwiKTtcbiAgJGhhcy1hbmdsZTogaXMtbnVtYmVyKHN0ci1zbGljZSgkZmlyc3QtdmFsLCAxLCAxKSk7XG5cbiAgQGlmICRoYXMtbXVsdGlwbGUtdmFscyB7XG4gICAgJGdyYWRpZW50czogX2xpbmVhci1zaWRlLWNvcm5lci1wYXJzZXIoJGltYWdlLCAkZmlyc3QtdmFsLCAkcHJlZml4LCAkc3VmZml4LCAkaGFzLW11bHRpcGxlLXZhbHMpO1xuICB9XG5cbiAgQGVsc2UgaWYgJGhhcy1zaW5nbGUtcG9zaXRpb24gIT0gXCJcIiB7XG4gICAgJHBvczogdW5xdW90ZSgkaGFzLXNpbmdsZS1wb3NpdGlvbiArIFwiXCIpO1xuXG4gICAgJGdyYWRpZW50czogKFxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRpbWFnZSxcbiAgICAgIHNwZWMtaW1hZ2U6ICRwcmVmaXggKyBcInRvIFwiICsgJHBvcyArICRzdWZmaXhcbiAgICApO1xuICB9XG5cbiAgQGVsc2UgaWYgJGhhcy1hbmdsZSB7XG4gICAgLy8gUm90YXRlIGRlZ3JlZSBmb3Igd2Via2l0XG4gICAgJGdyYWRpZW50czogX2xpbmVhci1hbmdsZS1wYXJzZXIoJGltYWdlLCAkZmlyc3QtdmFsLCAkcHJlZml4LCAkc3VmZml4KTtcbiAgfVxuXG4gIEBlbHNlIHtcbiAgICAkZ3JhZGllbnRzOiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJGltYWdlLFxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXG4gICAgKTtcbiAgfVxuXG4gIEByZXR1cm4gJGdyYWRpZW50cztcbn1cbiIsIkBmdW5jdGlvbiBfbGluZWFyLXBvc2l0aW9ucy1wYXJzZXIoJHBvcykge1xuICAkdHlwZTogdHlwZS1vZihudGgoJHBvcywgMSkpO1xuICAkc3BlYzogbnVsbDtcbiAgJGRlZ3JlZTogbnVsbDtcbiAgJHNpZGU6IG51bGw7XG4gICRjb3JuZXI6IG51bGw7XG4gICRsZW5ndGg6IGxlbmd0aCgkcG9zKTtcbiAgLy8gUGFyc2UgU2lkZSBhbmQgY29ybmVyIHBvc2l0aW9uc1xuICBAaWYgKCRsZW5ndGggPiAxKSB7XG4gICAgQGlmIG50aCgkcG9zLCAxKSA9PSBcInRvXCIgeyAvLyBOZXdlciBzeW50YXhcbiAgICAgICRzaWRlOiBudGgoJHBvcywgMik7XG5cbiAgICAgIEBpZiAkbGVuZ3RoID09IDIgeyAvLyBlZy4gdG8gdG9wXG4gICAgICAgIC8vIFN3YXAgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5XG4gICAgICAgICRkZWdyZWU6IF9wb3NpdGlvbi1mbGlwcGVyKG50aCgkcG9zLCAyKSk7XG4gICAgICB9XG4gICAgICBAZWxzZSBpZiAkbGVuZ3RoID09IDMgeyAvLyBlZy4gdG8gdG9wIGxlZnRcbiAgICAgICAgJGNvcm5lcjogbnRoKCRwb3MsIDMpO1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSBpZiAkbGVuZ3RoID09IDIgeyAvLyBPbGRlciBzeW50YXggKFwidG9wIGxlZnRcIilcbiAgICAgICRzaWRlOiBfcG9zaXRpb24tZmxpcHBlcihudGgoJHBvcywgMSkpO1xuICAgICAgJGNvcm5lcjogX3Bvc2l0aW9uLWZsaXBwZXIobnRoKCRwb3MsIDIpKTtcbiAgICB9XG5cbiAgICBAaWYgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwibGVmdCB0b3BcIikgb3IgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwidG9wIGxlZnRcIikge1xuICAgICAgJGRlZ3JlZTogX3Bvc2l0aW9uLWZsaXBwZXIoI3skc2lkZX0pIF9wb3NpdGlvbi1mbGlwcGVyKCN7JGNvcm5lcn0pO1xuICAgIH1cbiAgICBAZWxzZSBpZiAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJyaWdodCB0b3BcIikgb3IgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwidG9wIHJpZ2h0XCIpIHtcbiAgICAgICRkZWdyZWU6IF9wb3NpdGlvbi1mbGlwcGVyKCN7JHNpZGV9KSBfcG9zaXRpb24tZmxpcHBlcigjeyRjb3JuZXJ9KTtcbiAgICB9XG4gICAgQGVsc2UgaWYgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwicmlnaHQgYm90dG9tXCIpIG9yIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcImJvdHRvbSByaWdodFwiKSB7XG4gICAgICAkZGVncmVlOiBfcG9zaXRpb24tZmxpcHBlcigjeyRzaWRlfSkgX3Bvc2l0aW9uLWZsaXBwZXIoI3skY29ybmVyfSk7XG4gICAgfVxuICAgIEBlbHNlIGlmIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcImxlZnQgYm90dG9tXCIpIG9yIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcImJvdHRvbSBsZWZ0XCIpIHtcbiAgICAgICRkZWdyZWU6IF9wb3NpdGlvbi1mbGlwcGVyKCN7JHNpZGV9KSBfcG9zaXRpb24tZmxpcHBlcigjeyRjb3JuZXJ9KTtcbiAgICB9XG4gICAgJHNwZWM6IHRvICRzaWRlICRjb3JuZXI7XG4gIH1cbiAgQGVsc2UgaWYgJGxlbmd0aCA9PSAxIHtcbiAgICAvLyBTd2FwIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eVxuICAgIEBpZiAkdHlwZSA9PSBzdHJpbmcge1xuICAgICAgJGRlZ3JlZTogJHBvcztcbiAgICAgICRzcGVjOiB0byBfcG9zaXRpb24tZmxpcHBlcigkcG9zKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJGRlZ3JlZTogLTI3MCAtICRwb3M7IC8vcm90YXRlIHRoZSBncmFkaWVudCBvcHBvc2l0ZSBmcm9tIHNwZWNcbiAgICAgICRzcGVjOiAkcG9zO1xuICAgIH1cbiAgfVxuICAkZGVncmVlOiB1bnF1b3RlKCRkZWdyZWUgKyBcIixcIik7XG4gICRzcGVjOiAgIHVucXVvdGUoJHNwZWMgKyBcIixcIik7XG4gIEByZXR1cm4gJGRlZ3JlZSAkc3BlYztcbn1cblxuQGZ1bmN0aW9uIF9wb3NpdGlvbi1mbGlwcGVyKCRwb3MpIHtcbiAgQHJldHVybiBpZigkcG9zID09IGxlZnQsIHJpZ2h0LCBudWxsKVxuICAgICAgICAgaWYoJHBvcyA9PSByaWdodCwgbGVmdCwgbnVsbClcbiAgICAgICAgIGlmKCRwb3MgPT0gdG9wLCBib3R0b20sIG51bGwpXG4gICAgICAgICBpZigkcG9zID09IGJvdHRvbSwgdG9wLCBudWxsKTtcbn1cbiIsIi8vIFByaXZhdGUgZnVuY3Rpb24gZm9yIGxpbmVhci1ncmFkaWVudC1wYXJzZXJcbkBmdW5jdGlvbiBfbGluZWFyLXNpZGUtY29ybmVyLXBhcnNlcigkaW1hZ2UsICRmaXJzdC12YWwsICRwcmVmaXgsICRzdWZmaXgsICRoYXMtbXVsdGlwbGUtdmFscykge1xuICAkdmFsLTE6IHN0ci1zbGljZSgkZmlyc3QtdmFsLCAxLCAkaGFzLW11bHRpcGxlLXZhbHMgLSAxKTtcbiAgJHZhbC0yOiBzdHItc2xpY2UoJGZpcnN0LXZhbCwgJGhhcy1tdWx0aXBsZS12YWxzICsgMSwgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSk7XG4gICR2YWwtMzogbnVsbDtcbiAgJGhhcy12YWwtMzogc3RyLWluZGV4KCR2YWwtMiwgXCIgXCIpO1xuXG4gIEBpZiAkaGFzLXZhbC0zIHtcbiAgICAkdmFsLTM6IHN0ci1zbGljZSgkdmFsLTIsICRoYXMtdmFsLTMgKyAxLCBzdHItbGVuZ3RoKCR2YWwtMikpO1xuICAgICR2YWwtMjogc3RyLXNsaWNlKCR2YWwtMiwgMSwgJGhhcy12YWwtMyAtIDEpO1xuICB9XG5cbiAgJHBvczogX3Bvc2l0aW9uLWZsaXBwZXIoJHZhbC0xKSBfcG9zaXRpb24tZmxpcHBlcigkdmFsLTIpIF9wb3NpdGlvbi1mbGlwcGVyKCR2YWwtMyk7XG4gICRwb3M6IHVucXVvdGUoJHBvcyArIFwiXCIpO1xuXG4gIC8vIFVzZSBvbGQgc3BlYyBmb3Igd2Via2l0XG4gIEBpZiAkdmFsLTEgPT0gXCJ0b1wiIHtcbiAgICBAcmV0dXJuIChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkcHJlZml4ICsgJHBvcyArICRzdWZmaXgsXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcbiAgICApO1xuICB9XG5cbiAgLy8gQnJpbmcgdGhlIGNvZGUgdXAgdG8gc3BlY1xuICBAZWxzZSB7XG4gICAgQHJldHVybiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJGltYWdlLFxuICAgICAgc3BlYy1pbWFnZTogJHByZWZpeCArIFwidG8gXCIgKyAkcG9zICsgJHN1ZmZpeFxuICAgICk7XG4gIH1cbn1cbiIsIkBmdW5jdGlvbiBfcmFkaWFsLWFyZy1wYXJzZXIoJGcxLCAkZzIsICRwb3MsICRzaGFwZS1zaXplKSB7XG4gIEBlYWNoICR2YWx1ZSBpbiAkZzEsICRnMiB7XG4gICAgJGZpcnN0LXZhbDogbnRoKCR2YWx1ZSwgMSk7XG4gICAgJHBvcy10eXBlOiAgdHlwZS1vZigkZmlyc3QtdmFsKTtcbiAgICAkc3BlYy1hdC1pbmRleDogbnVsbDtcblxuICAgIC8vIERldGVybWluZSBpZiBzcGVjIHdhcyBwYXNzZWQgdG8gbWl4aW5cbiAgICBAaWYgdHlwZS1vZigkdmFsdWUpID09IGxpc3Qge1xuICAgICAgJHNwZWMtYXQtaW5kZXg6IGlmKGluZGV4KCR2YWx1ZSwgYXQpLCBpbmRleCgkdmFsdWUsIGF0KSwgZmFsc2UpO1xuICAgIH1cbiAgICBAaWYgJHNwZWMtYXQtaW5kZXgge1xuICAgICAgQGlmICRzcGVjLWF0LWluZGV4ID4gMSB7XG4gICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggKCRzcGVjLWF0LWluZGV4IC0gMSkge1xuICAgICAgICAgICRzaGFwZS1zaXplOiAkc2hhcGUtc2l6ZSBudGgoJHZhbHVlLCAkaSk7XG4gICAgICAgIH1cbiAgICAgICAgQGZvciAkaSBmcm9tICgkc3BlYy1hdC1pbmRleCArIDEpIHRocm91Z2ggbGVuZ3RoKCR2YWx1ZSkge1xuICAgICAgICAgICRwb3M6ICRwb3MgbnRoKCR2YWx1ZSwgJGkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZWxzZSBpZiAkc3BlYy1hdC1pbmRleCA9PSAxIHtcbiAgICAgICAgQGZvciAkaSBmcm9tICgkc3BlYy1hdC1pbmRleCArIDEpIHRocm91Z2ggbGVuZ3RoKCR2YWx1ZSkge1xuICAgICAgICAgICRwb3M6ICRwb3MgbnRoKCR2YWx1ZSwgJGkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAkZzE6IG51bGw7XG4gICAgfVxuXG4gICAgLy8gSWYgbm90IHNwZWMgY2FsY3VsYXRlIGNvcnJlY3QgdmFsdWVzXG4gICAgQGVsc2Uge1xuICAgICAgQGlmICgkcG9zLXR5cGUgIT0gY29sb3IpIG9yICgkZmlyc3QtdmFsICE9IFwidHJhbnNwYXJlbnRcIikge1xuICAgICAgICBAaWYgKCRwb3MtdHlwZSA9PSBudW1iZXIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY2VudGVyXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwidG9wXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwicmlnaHRcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJib3R0b21cIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJsZWZ0XCIpIHtcblxuICAgICAgICAgICRwb3M6ICR2YWx1ZTtcblxuICAgICAgICAgIEBpZiAkcG9zID09ICRnMSB7XG4gICAgICAgICAgICAkZzE6IG51bGw7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVsc2UgaWZcbiAgICAgICAgICAgKCRmaXJzdC12YWwgPT0gXCJlbGxpcHNlXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY2lyY2xlXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY2xvc2VzdC1zaWRlXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY2xvc2VzdC1jb3JuZXJcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJmYXJ0aGVzdC1zaWRlXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiZmFydGhlc3QtY29ybmVyXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY29udGFpblwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImNvdmVyXCIpIHtcblxuICAgICAgICAgICRzaGFwZS1zaXplOiAkdmFsdWU7XG5cbiAgICAgICAgICBAaWYgJHZhbHVlID09ICRnMSB7XG4gICAgICAgICAgICAkZzE6IG51bGw7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQGVsc2UgaWYgJHZhbHVlID09ICRnMiB7XG4gICAgICAgICAgICAkZzI6IG51bGw7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEByZXR1cm4gJGcxLCAkZzIsICRwb3MsICRzaGFwZS1zaXplO1xufVxuIiwiQGZ1bmN0aW9uIF9yYWRpYWwtcG9zaXRpb25zLXBhcnNlcigkZ3JhZGllbnQtcG9zKSB7XG4gICRzaGFwZS1zaXplOiBudGgoJGdyYWRpZW50LXBvcywgMSk7XG4gICRwb3M6ICAgICAgICBudGgoJGdyYWRpZW50LXBvcywgMik7XG4gICRzaGFwZS1zaXplLXNwZWM6IF9zaGFwZS1zaXplLXN0cmlwcGVyKCRzaGFwZS1zaXplKTtcblxuICAkcHJlLXNwZWM6IHVucXVvdGUoaWYoJHBvcywgXCIjeyRwb3N9LCBcIiwgbnVsbCkpXG4gICAgICAgICAgICAgdW5xdW90ZShpZigkc2hhcGUtc2l6ZSwgXCIjeyRzaGFwZS1zaXplfSxcIiwgbnVsbCkpO1xuICAkcG9zLXNwZWM6IGlmKCRwb3MsIFwiYXQgI3skcG9zfVwiLCBudWxsKTtcblxuICAkc3BlYzogXCIjeyRzaGFwZS1zaXplLXNwZWN9ICN7JHBvcy1zcGVjfVwiO1xuXG4gIC8vIEFkZCBjb21tYVxuICBAaWYgKCRzcGVjICE9IFwiICBcIikge1xuICAgICRzcGVjOiBcIiN7JHNwZWN9LFwiO1xuICB9XG5cbiAgQHJldHVybiAkcHJlLXNwZWMgJHNwZWM7XG59XG4iLCJAZnVuY3Rpb24gX3JhZGlhbC1ncmFkaWVudC1wYXJzZXIoJGltYWdlKSB7XG4gICRpbWFnZTogdW5xdW90ZSgkaW1hZ2UpO1xuICAkZ3JhZGllbnRzOiAoKTtcbiAgJHN0YXJ0OiBzdHItaW5kZXgoJGltYWdlLCBcIihcIik7XG4gICRlbmQ6IHN0ci1pbmRleCgkaW1hZ2UsIFwiLFwiKTtcbiAgJGZpcnN0LXZhbDogc3RyLXNsaWNlKCRpbWFnZSwgJHN0YXJ0ICsgMSwgJGVuZCAtIDEpO1xuXG4gICRwcmVmaXg6IHN0ci1zbGljZSgkaW1hZ2UsIDEsICRzdGFydCk7XG4gICRzdWZmaXg6IHN0ci1zbGljZSgkaW1hZ2UsICRlbmQsIHN0ci1sZW5ndGgoJGltYWdlKSk7XG5cbiAgJGlzLXNwZWMtc3ludGF4OiBzdHItaW5kZXgoJGZpcnN0LXZhbCwgXCJhdFwiKTtcblxuICBAaWYgJGlzLXNwZWMtc3ludGF4IGFuZCAkaXMtc3BlYy1zeW50YXggPiAxIHtcbiAgICAka2V5d29yZDogc3RyLXNsaWNlKCRmaXJzdC12YWwsIDEsICRpcy1zcGVjLXN5bnRheCAtIDIpO1xuICAgICRwb3M6IHN0ci1zbGljZSgkZmlyc3QtdmFsLCAkaXMtc3BlYy1zeW50YXggKyAzLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpKTtcbiAgICAkcG9zOiBhcHBlbmQoJHBvcywgJGtleXdvcmQsIGNvbW1hKTtcblxuICAgICRncmFkaWVudHM6IChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkcHJlZml4ICsgJHBvcyArICRzdWZmaXgsXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcbiAgICApO1xuICB9XG5cbiAgQGVsc2UgaWYgJGlzLXNwZWMtc3ludGF4ID09IDEge1xuICAgICRwb3M6IHN0ci1zbGljZSgkZmlyc3QtdmFsLCAkaXMtc3BlYy1zeW50YXggKyAzLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpKTtcblxuICAgICRncmFkaWVudHM6IChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkcHJlZml4ICsgJHBvcyArICRzdWZmaXgsXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcbiAgICApO1xuICB9XG5cbiAgQGVsc2UgaWYgc3RyLWluZGV4KCRpbWFnZSwgXCJjb3ZlclwiKSBvciBzdHItaW5kZXgoJGltYWdlLCBcImNvbnRhaW5cIikge1xuICAgIEB3YXJuIFwiUmFkaWFsLWdyYWRpZW50IG5lZWRzIHRvIGJlIHVwZGF0ZWQgdG8gY29uZm9ybSB0byBsYXRlc3Qgc3BlYy5cIjtcblxuICAgICRncmFkaWVudHM6IChcbiAgICAgIHdlYmtpdC1pbWFnZTogbnVsbCxcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxuICAgICk7XG4gIH1cblxuICBAZWxzZSB7XG4gICAgJGdyYWRpZW50czogKFxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRpbWFnZSxcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxuICAgICk7XG4gIH1cblxuICBAcmV0dXJuICRncmFkaWVudHM7XG59XG4iLCIvLyBVc2VyIGZvciBsaW5lYXIgYW5kIHJhZGlhbCBncmFkaWVudHMgd2l0aGluIGJhY2tncm91bmQtaW1hZ2Ugb3IgYm9yZGVyLWltYWdlIHByb3BlcnRpZXNcblxuQGZ1bmN0aW9uIF9yZW5kZXItZ3JhZGllbnRzKCRncmFkaWVudC1wb3NpdGlvbnMsICRncmFkaWVudHMsICRncmFkaWVudC10eXBlLCAkdmVuZG9yOiBmYWxzZSkge1xuICAkcHJlLXNwZWM6IG51bGw7XG4gICRzcGVjOiBudWxsO1xuICAkdmVuZG9yLWdyYWRpZW50czogbnVsbDtcbiAgQGlmICRncmFkaWVudC10eXBlID09IGxpbmVhciB7XG4gICAgQGlmICRncmFkaWVudC1wb3NpdGlvbnMge1xuICAgICAgJHByZS1zcGVjOiBudGgoJGdyYWRpZW50LXBvc2l0aW9ucywgMSk7XG4gICAgICAkc3BlYzogICAgIG50aCgkZ3JhZGllbnQtcG9zaXRpb25zLCAyKTtcbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gcmFkaWFsIHtcbiAgICAkcHJlLXNwZWM6IG50aCgkZ3JhZGllbnQtcG9zaXRpb25zLCAxKTtcbiAgICAkc3BlYzogICAgIG50aCgkZ3JhZGllbnQtcG9zaXRpb25zLCAyKTtcbiAgfVxuXG4gIEBpZiAkdmVuZG9yIHtcbiAgICAkdmVuZG9yLWdyYWRpZW50czogLSN7JHZlbmRvcn0tI3skZ3JhZGllbnQtdHlwZX0tZ3JhZGllbnQoI3skcHJlLXNwZWN9ICRncmFkaWVudHMpO1xuICB9XG4gIEBlbHNlIGlmICR2ZW5kb3IgPT0gZmFsc2Uge1xuICAgICR2ZW5kb3ItZ3JhZGllbnRzOiBcIiN7JGdyYWRpZW50LXR5cGV9LWdyYWRpZW50KCN7JHNwZWN9ICN7JGdyYWRpZW50c30pXCI7XG4gICAgJHZlbmRvci1ncmFkaWVudHM6IHVucXVvdGUoJHZlbmRvci1ncmFkaWVudHMpO1xuICB9XG4gIEByZXR1cm4gJHZlbmRvci1ncmFkaWVudHM7XG59XG4iLCJAZnVuY3Rpb24gX3NoYXBlLXNpemUtc3RyaXBwZXIoJHNoYXBlLXNpemUpIHtcbiAgJHNoYXBlLXNpemUtc3BlYzogbnVsbDtcbiAgQGVhY2ggJHZhbHVlIGluICRzaGFwZS1zaXplIHtcbiAgICBAaWYgKCR2YWx1ZSA9PSBcImNvdmVyXCIpIG9yICgkdmFsdWUgPT0gXCJjb250YWluXCIpIHtcbiAgICAgICR2YWx1ZTogbnVsbDtcbiAgICB9XG4gICAgJHNoYXBlLXNpemUtc3BlYzogXCIjeyRzaGFwZS1zaXplLXNwZWN9ICN7JHZhbHVlfVwiO1xuICB9XG4gIEByZXR1cm4gJHNoYXBlLXNpemUtc3BlYztcbn1cbiIsIi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbi8vIEhlbHBlciBmdW5jdGlvbiBmb3IgbGluZWFyL3JhZGlhbC1ncmFkaWVudC1wYXJzZXJzLlxuLy8gU291cmNlOiBodHRwOi8vc2Fzc21laXN0ZXIuY29tL2dpc3QvOTY0NzQwOFxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuQGZ1bmN0aW9uIF9zdHItdG8tbnVtKCRzdHJpbmcpIHtcbiAgLy8gTWF0cmljZXNcbiAgJHN0cmluZ3M6IFwiMFwiIFwiMVwiIFwiMlwiIFwiM1wiIFwiNFwiIFwiNVwiIFwiNlwiIFwiN1wiIFwiOFwiIFwiOVwiO1xuICAkbnVtYmVyczogIDAgICAxICAgMiAgIDMgICA0ICAgNSAgIDYgICA3ICAgOCAgIDk7XG5cbiAgLy8gUmVzdWx0XG4gICRyZXN1bHQ6IDA7XG4gICRkaXZpZGVyOiAwO1xuICAkbWludXM6IGZhbHNlO1xuXG4gIC8vIExvb3BpbmcgdGhyb3VnaCBhbGwgY2hhcmFjdGVyc1xuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIHN0ci1sZW5ndGgoJHN0cmluZykge1xuICAgICRjaGFyYWN0ZXI6IHN0ci1zbGljZSgkc3RyaW5nLCAkaSwgJGkpO1xuICAgICRpbmRleDogaW5kZXgoJHN0cmluZ3MsICRjaGFyYWN0ZXIpO1xuXG4gICAgQGlmICRjaGFyYWN0ZXIgPT0gXCItXCIge1xuICAgICAgJG1pbnVzOiB0cnVlO1xuICAgIH1cblxuICAgIEBlbHNlIGlmICRjaGFyYWN0ZXIgPT0gXCIuXCIge1xuICAgICAgJGRpdmlkZXI6IDE7XG4gICAgfVxuXG4gICAgQGVsc2Uge1xuICAgICAgQGlmIG5vdCAkaW5kZXgge1xuICAgICAgICAkcmVzdWx0OiBpZigkbWludXMsICRyZXN1bHQgKiAtMSwgJHJlc3VsdCk7XG4gICAgICAgIEByZXR1cm4gX2NvbnZlcnQtdW5pdHMoJHJlc3VsdCwgc3RyLXNsaWNlKCRzdHJpbmcsICRpKSk7XG4gICAgICB9XG5cbiAgICAgICRudW1iZXI6IG50aCgkbnVtYmVycywgJGluZGV4KTtcblxuICAgICAgQGlmICRkaXZpZGVyID09IDAge1xuICAgICAgICAkcmVzdWx0OiAkcmVzdWx0ICogMTA7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgLy8gTW92ZSB0aGUgZGVjaW1hbCBkb3QgdG8gdGhlIGxlZnRcbiAgICAgICAgJGRpdmlkZXI6ICRkaXZpZGVyICogMTA7XG4gICAgICAgICRudW1iZXI6ICRudW1iZXIgLyAkZGl2aWRlcjtcbiAgICAgIH1cblxuICAgICAgJHJlc3VsdDogJHJlc3VsdCArICRudW1iZXI7XG4gICAgfVxuICB9XG4gIEByZXR1cm4gaWYoJG1pbnVzLCAkcmVzdWx0ICogLTEsICRyZXN1bHQpO1xufVxuIiwiLy8gaHR0cDovL3d3dy53My5vcmcvVFIvY3NzMy1hbmltYXRpb25zLyN0aGUtYW5pbWF0aW9uLW5hbWUtcHJvcGVydHktXG4vLyBFYWNoIG9mIHRoZXNlIG1peGlucyBzdXBwb3J0IGNvbW1hIHNlcGFyYXRlZCBsaXN0cyBvZiB2YWx1ZXMsIHdoaWNoIGFsbG93cyBkaWZmZXJlbnQgdHJhbnNpdGlvbnMgZm9yIGluZGl2aWR1YWwgcHJvcGVydGllcyB0byBiZSBkZXNjcmliZWQgaW4gYSBzaW5nbGUgc3R5bGUgcnVsZS4gRWFjaCB2YWx1ZSBpbiB0aGUgbGlzdCBjb3JyZXNwb25kcyB0byB0aGUgdmFsdWUgYXQgdGhhdCBzYW1lIHBvc2l0aW9uIGluIHRoZSBvdGhlciBwcm9wZXJ0aWVzLlxuXG5AbWl4aW4gYW5pbWF0aW9uKCRhbmltYXRpb25zLi4uKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbiwgJGFuaW1hdGlvbnMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBhbmltYXRpb24tbmFtZSgkbmFtZXMuLi4pIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLW5hbWUsICRuYW1lcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGFuaW1hdGlvbi1kdXJhdGlvbigkdGltZXMuLi4pIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWR1cmF0aW9uLCAkdGltZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uKCRtb3Rpb25zLi4uKSB7XG4gIC8vIGVhc2UgfCBsaW5lYXIgfCBlYXNlLWluIHwgZWFzZS1vdXQgfCBlYXNlLWluLW91dFxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uLCAkbW90aW9ucywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQoJHZhbHVlcy4uLikge1xuICAvLyBpbmZpbml0ZSB8IDxudW1iZXI+XG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQsICR2YWx1ZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBhbmltYXRpb24tZGlyZWN0aW9uKCRkaXJlY3Rpb25zLi4uKSB7XG4gIC8vIG5vcm1hbCB8IGFsdGVybmF0ZVxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tZGlyZWN0aW9uLCAkZGlyZWN0aW9ucywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGFuaW1hdGlvbi1wbGF5LXN0YXRlKCRzdGF0ZXMuLi4pIHtcbiAgLy8gcnVubmluZyB8IHBhdXNlZFxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tcGxheS1zdGF0ZSwgJHN0YXRlcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGFuaW1hdGlvbi1kZWxheSgkdGltZXMuLi4pIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWRlbGF5LCAkdGltZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBhbmltYXRpb24tZmlsbC1tb2RlKCRtb2Rlcy4uLikge1xuICAvLyBub25lIHwgZm9yd2FyZHMgfCBiYWNrd2FyZHMgfCBib3RoXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1maWxsLW1vZGUsICRtb2Rlcywgd2Via2l0IG1veiBzcGVjKTtcbn1cbiIsIkBtaXhpbiBhcHBlYXJhbmNlKCR2YWx1ZSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihhcHBlYXJhbmNlLCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcbn1cbiIsIkBtaXhpbiBiYWNrZmFjZS12aXNpYmlsaXR5KCR2aXNpYmlsaXR5KSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJhY2tmYWNlLXZpc2liaWxpdHksICR2aXNpYmlsaXR5LCB3ZWJraXQgc3BlYyk7XG59XG4iLCIvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG4vLyBCYWNrZ3JvdW5kIHByb3BlcnR5IGZvciBhZGRpbmcgbXVsdGlwbGUgYmFja2dyb3VuZHMgdXNpbmcgc2hvcnRoYW5kXG4vLyBub3RhdGlvbi5cbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cblxuQG1peGluIGJhY2tncm91bmQoJGJhY2tncm91bmRzLi4uKSB7XG4gICR3ZWJraXQtYmFja2dyb3VuZHM6ICgpO1xuICAkc3BlYy1iYWNrZ3JvdW5kczogKCk7XG5cbiAgQGVhY2ggJGJhY2tncm91bmQgaW4gJGJhY2tncm91bmRzIHtcbiAgICAkd2Via2l0LWJhY2tncm91bmQ6ICgpO1xuICAgICRzcGVjLWJhY2tncm91bmQ6ICgpO1xuICAgICRiYWNrZ3JvdW5kLXR5cGU6IHR5cGUtb2YoJGJhY2tncm91bmQpO1xuXG4gICAgQGlmICRiYWNrZ3JvdW5kLXR5cGUgPT0gc3RyaW5nIG9yICRiYWNrZ3JvdW5kLXR5cGUgPT0gbGlzdCB7XG4gICAgICAkYmFja2dyb3VuZC1zdHI6IGlmKCRiYWNrZ3JvdW5kLXR5cGUgPT0gbGlzdCwgbnRoKCRiYWNrZ3JvdW5kLCAxKSwgJGJhY2tncm91bmQpO1xuXG4gICAgICAkdXJsLXN0cjogICAgICAgc3RyLXNsaWNlKCRiYWNrZ3JvdW5kLXN0ciwgMSwgMyk7XG4gICAgICAkZ3JhZGllbnQtdHlwZTogc3RyLXNsaWNlKCRiYWNrZ3JvdW5kLXN0ciwgMSwgNik7XG5cbiAgICAgIEBpZiAkdXJsLXN0ciA9PSBcInVybFwiIHtcbiAgICAgICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICAgICAgJHNwZWMtYmFja2dyb3VuZDogICAkYmFja2dyb3VuZDtcbiAgICAgIH1cblxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJsaW5lYXJcIiB7XG4gICAgICAgICRncmFkaWVudHM6IF9saW5lYXItZ3JhZGllbnQtcGFyc2VyKFwiI3skYmFja2dyb3VuZH1cIik7XG4gICAgICAgICR3ZWJraXQtYmFja2dyb3VuZDogbWFwLWdldCgkZ3JhZGllbnRzLCB3ZWJraXQtaW1hZ2UpO1xuICAgICAgICAkc3BlYy1iYWNrZ3JvdW5kOiAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwicmFkaWFsXCIge1xuICAgICAgICAkZ3JhZGllbnRzOiBfcmFkaWFsLWdyYWRpZW50LXBhcnNlcihcIiN7JGJhY2tncm91bmR9XCIpO1xuICAgICAgICAkd2Via2l0LWJhY2tncm91bmQ6IG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcbiAgICAgICAgJHNwZWMtYmFja2dyb3VuZDogICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSB7XG4gICAgICAgICR3ZWJraXQtYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgICAgICRzcGVjLWJhY2tncm91bmQ6ICAgJGJhY2tncm91bmQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGVsc2Uge1xuICAgICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICAgICRzcGVjLWJhY2tncm91bmQ6ICAgJGJhY2tncm91bmQ7XG4gICAgfVxuXG4gICAgJHdlYmtpdC1iYWNrZ3JvdW5kczogYXBwZW5kKCR3ZWJraXQtYmFja2dyb3VuZHMsICR3ZWJraXQtYmFja2dyb3VuZCwgY29tbWEpO1xuICAgICRzcGVjLWJhY2tncm91bmRzOiAgIGFwcGVuZCgkc3BlYy1iYWNrZ3JvdW5kcywgICAkc3BlYy1iYWNrZ3JvdW5kLCAgIGNvbW1hKTtcbiAgfVxuXG4gIGJhY2tncm91bmQ6ICR3ZWJraXQtYmFja2dyb3VuZHM7XG4gIGJhY2tncm91bmQ6ICRzcGVjLWJhY2tncm91bmRzO1xufVxuIiwiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuLy8gQmFja2dyb3VuZC1pbWFnZSBwcm9wZXJ0eSBmb3IgYWRkaW5nIG11bHRpcGxlIGJhY2tncm91bmQgaW1hZ2VzIHdpdGhcbi8vIGdyYWRpZW50cywgb3IgZm9yIHN0cmluZ2luZyBtdWx0aXBsZSBncmFkaWVudHMgdG9nZXRoZXIuXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG5cbkBtaXhpbiBiYWNrZ3JvdW5kLWltYWdlKCRpbWFnZXMuLi4pIHtcbiAgJHdlYmtpdC1pbWFnZXM6ICgpO1xuICAkc3BlYy1pbWFnZXM6ICgpO1xuXG4gIEBlYWNoICRpbWFnZSBpbiAkaW1hZ2VzIHtcbiAgICAkd2Via2l0LWltYWdlOiAoKTtcbiAgICAkc3BlYy1pbWFnZTogKCk7XG5cbiAgICBAaWYgKHR5cGUtb2YoJGltYWdlKSA9PSBzdHJpbmcpIHtcbiAgICAgICR1cmwtc3RyOiAgICAgICBzdHItc2xpY2UoJGltYWdlLCAxLCAzKTtcbiAgICAgICRncmFkaWVudC10eXBlOiBzdHItc2xpY2UoJGltYWdlLCAxLCA2KTtcblxuICAgICAgQGlmICR1cmwtc3RyID09IFwidXJsXCIge1xuICAgICAgICAkd2Via2l0LWltYWdlOiAkaW1hZ2U7XG4gICAgICAgICRzcGVjLWltYWdlOiAgICRpbWFnZTtcbiAgICAgIH1cblxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJsaW5lYXJcIiB7XG4gICAgICAgICRncmFkaWVudHM6IF9saW5lYXItZ3JhZGllbnQtcGFyc2VyKCRpbWFnZSk7XG4gICAgICAgICR3ZWJraXQtaW1hZ2U6ICBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XG4gICAgICAgICRzcGVjLWltYWdlOiAgICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSBcInJhZGlhbFwiIHtcbiAgICAgICAgJGdyYWRpZW50czogX3JhZGlhbC1ncmFkaWVudC1wYXJzZXIoJGltYWdlKTtcbiAgICAgICAgJHdlYmtpdC1pbWFnZTogbWFwLWdldCgkZ3JhZGllbnRzLCB3ZWJraXQtaW1hZ2UpO1xuICAgICAgICAkc3BlYy1pbWFnZTogICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xuICAgICAgfVxuICAgIH1cblxuICAgICR3ZWJraXQtaW1hZ2VzOiBhcHBlbmQoJHdlYmtpdC1pbWFnZXMsICR3ZWJraXQtaW1hZ2UsIGNvbW1hKTtcbiAgICAkc3BlYy1pbWFnZXM6ICAgYXBwZW5kKCRzcGVjLWltYWdlcywgICAkc3BlYy1pbWFnZSwgICBjb21tYSk7XG4gIH1cblxuICBiYWNrZ3JvdW5kLWltYWdlOiAkd2Via2l0LWltYWdlcztcbiAgYmFja2dyb3VuZC1pbWFnZTogJHNwZWMtaW1hZ2VzO1xufVxuIiwiQG1peGluIGJvcmRlci1pbWFnZSgkYm9yZGVycy4uLikge1xuICAkd2Via2l0LWJvcmRlcnM6ICgpO1xuICAkc3BlYy1ib3JkZXJzOiAoKTtcblxuICBAZWFjaCAkYm9yZGVyIGluICRib3JkZXJzIHtcbiAgICAkd2Via2l0LWJvcmRlcjogKCk7XG4gICAgJHNwZWMtYm9yZGVyOiAoKTtcbiAgICAkYm9yZGVyLXR5cGU6IHR5cGUtb2YoJGJvcmRlcik7XG5cbiAgICBAaWYgJGJvcmRlci10eXBlID09IHN0cmluZyBvciBsaXN0IHtcbiAgICAgICRib3JkZXItc3RyOiBpZigkYm9yZGVyLXR5cGUgPT0gbGlzdCwgbnRoKCRib3JkZXIsIDEpLCAkYm9yZGVyKTtcblxuICAgICAgJHVybC1zdHI6ICAgICAgIHN0ci1zbGljZSgkYm9yZGVyLXN0ciwgMSwgMyk7XG4gICAgICAkZ3JhZGllbnQtdHlwZTogc3RyLXNsaWNlKCRib3JkZXItc3RyLCAxLCA2KTtcblxuICAgICAgQGlmICR1cmwtc3RyID09IFwidXJsXCIge1xuICAgICAgICAkd2Via2l0LWJvcmRlcjogJGJvcmRlcjtcbiAgICAgICAgJHNwZWMtYm9yZGVyOiAgICRib3JkZXI7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwibGluZWFyXCIge1xuICAgICAgICAkZ3JhZGllbnRzOiBfbGluZWFyLWdyYWRpZW50LXBhcnNlcihcIiN7JGJvcmRlcn1cIik7XG4gICAgICAgICR3ZWJraXQtYm9yZGVyOiBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XG4gICAgICAgICRzcGVjLWJvcmRlcjogICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSBcInJhZGlhbFwiIHtcbiAgICAgICAgJGdyYWRpZW50czogX3JhZGlhbC1ncmFkaWVudC1wYXJzZXIoXCIjeyRib3JkZXJ9XCIpO1xuICAgICAgICAkd2Via2l0LWJvcmRlcjogbWFwLWdldCgkZ3JhZGllbnRzLCB3ZWJraXQtaW1hZ2UpO1xuICAgICAgICAkc3BlYy1ib3JkZXI6ICAgbWFwLWdldCgkZ3JhZGllbnRzLCBzcGVjLWltYWdlKTtcbiAgICAgIH1cblxuICAgICAgQGVsc2Uge1xuICAgICAgICAkd2Via2l0LWJvcmRlcjogJGJvcmRlcjtcbiAgICAgICAgJHNwZWMtYm9yZGVyOiAgICRib3JkZXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGVsc2Uge1xuICAgICAgJHdlYmtpdC1ib3JkZXI6ICRib3JkZXI7XG4gICAgICAkc3BlYy1ib3JkZXI6ICAgJGJvcmRlcjtcbiAgICB9XG5cbiAgICAkd2Via2l0LWJvcmRlcnM6IGFwcGVuZCgkd2Via2l0LWJvcmRlcnMsICR3ZWJraXQtYm9yZGVyLCBjb21tYSk7XG4gICAgJHNwZWMtYm9yZGVyczogICBhcHBlbmQoJHNwZWMtYm9yZGVycywgICAkc3BlYy1ib3JkZXIsICAgY29tbWEpO1xuICB9XG5cbiAgLXdlYmtpdC1ib3JkZXItaW1hZ2U6ICR3ZWJraXQtYm9yZGVycztcbiAgICAgICAgICBib3JkZXItaW1hZ2U6ICRzcGVjLWJvcmRlcnM7XG4gICAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbn1cblxuLy9FeGFtcGxlczpcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZSh1cmwoXCJpbWFnZS5wbmdcIikpO1xuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKHVybChcImltYWdlLnBuZ1wiKSAyMCBzdHJldGNoKTtcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZShsaW5lYXItZ3JhZGllbnQoNDVkZWcsIG9yYW5nZSwgeWVsbG93KSk7XG4vLyBAaW5jbHVkZSBib3JkZXItaW1hZ2UobGluZWFyLWdyYWRpZW50KDQ1ZGVnLCBvcmFuZ2UsIHllbGxvdykgc3RyZXRjaCk7XG4vLyBAaW5jbHVkZSBib3JkZXItaW1hZ2UobGluZWFyLWdyYWRpZW50KDQ1ZGVnLCBvcmFuZ2UsIHllbGxvdykgMjAgMzAgNDAgNTAgc3RyZXRjaCByb3VuZCk7XG4vLyBAaW5jbHVkZSBib3JkZXItaW1hZ2UocmFkaWFsLWdyYWRpZW50KHRvcCwgY292ZXIsIG9yYW5nZSwgeWVsbG93LCBvcmFuZ2UpKTtcbiIsIkBtaXhpbiBjYWxjKCRwcm9wZXJ0eSwgJHZhbHVlKSB7XG4gICN7JHByb3BlcnR5fTogLXdlYmtpdC1jYWxjKCN7JHZhbHVlfSk7XG4gICN7JHByb3BlcnR5fTogY2FsYygjeyR2YWx1ZX0pO1xufVxuIiwiQG1peGluIGNvbHVtbnMoJGFyZzogYXV0bykge1xuICAvLyA8Y29sdW1uLWNvdW50PiB8fCA8Y29sdW1uLXdpZHRoPlxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW5zLCAkYXJnLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLWNvdW50KCRpbnQ6IGF1dG8pIHtcbiAgLy8gYXV0byB8fCBpbnRlZ2VyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1jb3VudCwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1nYXAoJGxlbmd0aDogbm9ybWFsKSB7XG4gIC8vIG5vcm1hbCB8fCBsZW5ndGhcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLWdhcCwgJGxlbmd0aCwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1maWxsKCRhcmc6IGF1dG8pIHtcbiAgLy8gYXV0byB8fCBsZW5ndGhcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLWZpbGwsICRhcmcsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4tcnVsZSgkYXJnKSB7XG4gIC8vIDxib3JkZXItd2lkdGg+IHx8IDxib3JkZXItc3R5bGU+IHx8IDxjb2xvcj5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXJ1bGUsICRhcmcsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4tcnVsZS1jb2xvcigkY29sb3IpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXJ1bGUtY29sb3IsICRjb2xvciwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1ydWxlLXN0eWxlKCRzdHlsZTogbm9uZSkge1xuICAvLyBub25lIHwgaGlkZGVuIHwgZGFzaGVkIHwgZG90dGVkIHwgZG91YmxlIHwgZ3Jvb3ZlIHwgaW5zZXQgfCBpbnNldCB8IG91dHNldCB8IHJpZGdlIHwgc29saWRcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXJ1bGUtc3R5bGUsICRzdHlsZSwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1ydWxlLXdpZHRoICgkd2lkdGg6IG5vbmUpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXJ1bGUtd2lkdGgsICR3aWR0aCwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1zcGFuKCRhcmc6IG5vbmUpIHtcbiAgLy8gbm9uZSB8fCBhbGxcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXNwYW4sICRhcmcsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4td2lkdGgoJGxlbmd0aDogYXV0bykge1xuICAvLyBhdXRvIHx8IGxlbmd0aFxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4td2lkdGgsICRsZW5ndGgsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG4iLCJAbWl4aW4gZmlsdGVyKCRmdW5jdGlvbjogbm9uZSkge1xuICAvLyA8ZmlsdGVyLWZ1bmN0aW9uPiBbPGZpbHRlci1mdW5jdGlvbl0qIHwgbm9uZVxuICBAaW5jbHVkZSBwcmVmaXhlcihmaWx0ZXIsICRmdW5jdGlvbiwgd2Via2l0IHNwZWMpO1xufVxuIiwiLy8gQ1NTMyBGbGV4aWJsZSBCb3ggTW9kZWwgYW5kIHByb3BlcnR5IGRlZmF1bHRzXG5cbi8vIEN1c3RvbSBzaG9ydGhhbmQgbm90YXRpb24gZm9yIGZsZXhib3hcbkBtaXhpbiBib3goJG9yaWVudDogaW5saW5lLWF4aXMsICRwYWNrOiBzdGFydCwgJGFsaWduOiBzdHJldGNoKSB7XG4gIEBpbmNsdWRlIGRpc3BsYXktYm94O1xuICBAaW5jbHVkZSBib3gtb3JpZW50KCRvcmllbnQpO1xuICBAaW5jbHVkZSBib3gtcGFjaygkcGFjayk7XG4gIEBpbmNsdWRlIGJveC1hbGlnbigkYWxpZ24pO1xufVxuXG5AbWl4aW4gZGlzcGxheS1ib3gge1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgZGlzcGxheTogLW1vei1ib3g7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94OyAvLyBJRSAxMFxuICBkaXNwbGF5OiBib3g7XG59XG5cbkBtaXhpbiBib3gtb3JpZW50KCRvcmllbnQ6IGlubGluZS1heGlzKSB7XG4vLyBob3Jpem9udGFsfHZlcnRpY2FsfGlubGluZS1heGlzfGJsb2NrLWF4aXN8aW5oZXJpdFxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtb3JpZW50LCAkb3JpZW50LCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYm94LXBhY2soJHBhY2s6IHN0YXJ0KSB7XG4vLyBzdGFydHxlbmR8Y2VudGVyfGp1c3RpZnlcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LXBhY2ssICRwYWNrLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1wYWNrOiAkcGFjazsgLy8gSUUgMTBcbn1cblxuQG1peGluIGJveC1hbGlnbigkYWxpZ246IHN0cmV0Y2gpIHtcbi8vIHN0YXJ0fGVuZHxjZW50ZXJ8YmFzZWxpbmV8c3RyZXRjaFxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtYWxpZ24sICRhbGlnbiwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtYWxpZ246ICRhbGlnbjsgLy8gSUUgMTBcbn1cblxuQG1peGluIGJveC1kaXJlY3Rpb24oJGRpcmVjdGlvbjogbm9ybWFsKSB7XG4vLyBub3JtYWx8cmV2ZXJzZXxpbmhlcml0XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1kaXJlY3Rpb24sICRkaXJlY3Rpb24sIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LWRpcmVjdGlvbjogJGRpcmVjdGlvbjsgLy8gSUUgMTBcbn1cblxuQG1peGluIGJveC1saW5lcygkbGluZXM6IHNpbmdsZSkge1xuLy8gc2luZ2xlfG11bHRpcGxlXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1saW5lcywgJGxpbmVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYm94LW9yZGluYWwtZ3JvdXAoJGludDogMSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtb3JkaW5hbC1ncm91cCwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtb3JkZXI6ICRpbnQ7IC8vIElFIDEwXG59XG5cbkBtaXhpbiBib3gtZmxleCgkdmFsdWU6IDApIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWZsZXgsICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXg6ICR2YWx1ZTsgLy8gSUUgMTBcbn1cblxuQG1peGluIGJveC1mbGV4LWdyb3VwKCRpbnQ6IDEpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWZsZXgtZ3JvdXAsICRpbnQsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbi8vIENTUzMgRmxleGlibGUgQm94IE1vZGVsIGFuZCBwcm9wZXJ0eSBkZWZhdWx0c1xuLy8gVW5pZmllZCBhdHRyaWJ1dGVzIGZvciAyMDA5LCAyMDExLCBhbmQgMjAxMiBmbGF2b3Vycy5cblxuLy8gMjAwOSAtIGRpc3BsYXkgKGJveCB8IGlubGluZS1ib3gpXG4vLyAyMDExIC0gZGlzcGxheSAoZmxleGJveCB8IGlubGluZS1mbGV4Ym94KVxuLy8gMjAxMiAtIGRpc3BsYXkgKGZsZXggfCBpbmxpbmUtZmxleClcbkBtaXhpbiBkaXNwbGF5KCR2YWx1ZSkge1xuLy8gZmxleCB8IGlubGluZS1mbGV4XG4gIEBpZiAkdmFsdWUgPT0gXCJmbGV4XCIge1xuICAgIC8vIDIwMDlcbiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgICBkaXNwbGF5OiAtbW96LWJveDtcbiAgICBkaXNwbGF5OiBib3g7XG5cbiAgICAvLyAyMDEyXG4gICAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICAgIGRpc3BsYXk6IC1tb3otZmxleDtcbiAgICBkaXNwbGF5OiAtbXMtZmxleGJveDsgLy8gMjAxMSAoSUUgMTApXG4gICAgZGlzcGxheTogZmxleDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJpbmxpbmUtZmxleFwiIHtcbiAgICBkaXNwbGF5OiAtd2Via2l0LWlubGluZS1ib3g7XG4gICAgZGlzcGxheTogLW1vei1pbmxpbmUtYm94O1xuICAgIGRpc3BsYXk6IGlubGluZS1ib3g7XG5cbiAgICBkaXNwbGF5OiAtd2Via2l0LWlubGluZS1mbGV4O1xuICAgIGRpc3BsYXk6IC1tb3otaW5saW5lLWZsZXg7XG4gICAgZGlzcGxheTogLW1zLWlubGluZS1mbGV4Ym94O1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICB9IEBlbHNlIHtcbiAgICBkaXNwbGF5OiAkdmFsdWU7XG4gIH1cbn1cblxuLy8gMjAwOSAtIGJveC1mbGV4IChpbnRlZ2VyKVxuLy8gMjAxMSAtIGZsZXggKGRlY2ltYWwgfCB3aWR0aCBkZWNpbWFsKVxuLy8gMjAxMiAtIGZsZXggKGludGVnZXIgaW50ZWdlciB3aWR0aClcbkBtaXhpbiBmbGV4KCR2YWx1ZSkge1xuXG4gIC8vIEdyYWIgZmxleC1ncm93IGZvciBvbGRlciBicm93c2Vycy5cbiAgJGZsZXgtZ3JvdzogbnRoKCR2YWx1ZSwgMSk7XG5cbiAgLy8gMjAwOVxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZmxleCwgJGZsZXgtZ3Jvdywgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDExIChJRSAxMCksIDIwMTJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleCwgJHZhbHVlLCB3ZWJraXQgbW96IG1zIHNwZWMpO1xufVxuXG4vLyAyMDA5IC0gYm94LW9yaWVudCAoIGhvcml6b250YWwgfCB2ZXJ0aWNhbCB8IGlubGluZS1heGlzIHwgYmxvY2stYXhpcylcbi8vICAgICAgLSBib3gtZGlyZWN0aW9uIChub3JtYWwgfCByZXZlcnNlKVxuLy8gMjAxMSAtIGZsZXgtZGlyZWN0aW9uIChyb3cgfCByb3ctcmV2ZXJzZSB8IGNvbHVtbiB8IGNvbHVtbi1yZXZlcnNlKVxuLy8gMjAxMiAtIGZsZXgtZGlyZWN0aW9uIChyb3cgfCByb3ctcmV2ZXJzZSB8IGNvbHVtbiB8IGNvbHVtbi1yZXZlcnNlKVxuQG1peGluIGZsZXgtZGlyZWN0aW9uKCR2YWx1ZTogcm93KSB7XG5cbiAgLy8gQWx0IHZhbHVlcy5cbiAgJHZhbHVlLTIwMDk6ICR2YWx1ZTtcbiAgJHZhbHVlLTIwMTE6ICR2YWx1ZTtcbiAgJGRpcmVjdGlvbjogbm9ybWFsO1xuXG4gIEBpZiAkdmFsdWUgPT0gcm93IHtcbiAgICAkdmFsdWUtMjAwOTogaG9yaXpvbnRhbDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJyb3ctcmV2ZXJzZVwiIHtcbiAgICAkdmFsdWUtMjAwOTogaG9yaXpvbnRhbDtcbiAgICAkZGlyZWN0aW9uOiByZXZlcnNlO1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBjb2x1bW4ge1xuICAgICR2YWx1ZS0yMDA5OiB2ZXJ0aWNhbDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJjb2x1bW4tcmV2ZXJzZVwiIHtcbiAgICAkdmFsdWUtMjAwOTogdmVydGljYWw7XG4gICAgJGRpcmVjdGlvbjogcmV2ZXJzZTtcbiAgfVxuXG4gIC8vIDIwMDlcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LW9yaWVudCwgJHZhbHVlLTIwMDksIHdlYmtpdCBtb3ogc3BlYyk7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1kaXJlY3Rpb24sICRkaXJlY3Rpb24sIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMlxuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LWRpcmVjdGlvbiwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTEgKElFIDEwKVxuICAtbXMtZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcbn1cblxuLy8gMjAwOSAtIGJveC1saW5lcyAoc2luZ2xlIHwgbXVsdGlwbGUpXG4vLyAyMDExIC0gZmxleC13cmFwIChub3dyYXAgfCB3cmFwIHwgd3JhcC1yZXZlcnNlKVxuLy8gMjAxMiAtIGZsZXgtd3JhcCAobm93cmFwIHwgd3JhcCB8IHdyYXAtcmV2ZXJzZSlcbkBtaXhpbiBmbGV4LXdyYXAoJHZhbHVlOiBub3dyYXApIHtcbiAgLy8gQWx0IHZhbHVlc1xuICAkYWx0LXZhbHVlOiAkdmFsdWU7XG4gIEBpZiAkdmFsdWUgPT0gbm93cmFwIHtcbiAgICAkYWx0LXZhbHVlOiBzaW5nbGU7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IHdyYXAge1xuICAgICRhbHQtdmFsdWU6IG11bHRpcGxlO1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcIndyYXAtcmV2ZXJzZVwiIHtcbiAgICAkYWx0LXZhbHVlOiBtdWx0aXBsZTtcbiAgfVxuXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1saW5lcywgJGFsdC12YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC13cmFwLCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgc3BlYyk7XG59XG5cbi8vIDIwMDkgLSBUT0RPOiBwYXJzZSB2YWx1ZXMgaW50byBmbGV4LWRpcmVjdGlvbi9mbGV4LXdyYXBcbi8vIDIwMTEgLSBUT0RPOiBwYXJzZSB2YWx1ZXMgaW50byBmbGV4LWRpcmVjdGlvbi9mbGV4LXdyYXBcbi8vIDIwMTIgLSBmbGV4LWZsb3cgKGZsZXgtZGlyZWN0aW9uIHx8IGZsZXgtd3JhcClcbkBtaXhpbiBmbGV4LWZsb3coJHZhbHVlKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtZmxvdywgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG4vLyAyMDA5IC0gYm94LW9yZGluYWwtZ3JvdXAgKGludGVnZXIpXG4vLyAyMDExIC0gZmxleC1vcmRlciAoaW50ZWdlcilcbi8vIDIwMTIgLSBvcmRlciAoaW50ZWdlcilcbkBtaXhpbiBvcmRlcigkaW50OiAwKSB7XG4gIC8vIDIwMDlcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LW9yZGluYWwtZ3JvdXAsICRpbnQsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMlxuICBAaW5jbHVkZSBwcmVmaXhlcihvcmRlciwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDExIChJRSAxMClcbiAgLW1zLWZsZXgtb3JkZXI6ICRpbnQ7XG59XG5cbi8vIDIwMTIgLSBmbGV4LWdyb3cgKG51bWJlcilcbkBtaXhpbiBmbGV4LWdyb3coJG51bWJlcjogMCkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LWdyb3csICRudW1iZXIsIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LXBvc2l0aXZlOiAkbnVtYmVyO1xufVxuXG4vLyAyMDEyIC0gZmxleC1zaHJpbmsgKG51bWJlcilcbkBtaXhpbiBmbGV4LXNocmluaygkbnVtYmVyOiAxKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtc2hyaW5rLCAkbnVtYmVyLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1uZWdhdGl2ZTogJG51bWJlcjtcbn1cblxuLy8gMjAxMiAtIGZsZXgtYmFzaXMgKG51bWJlcilcbkBtaXhpbiBmbGV4LWJhc2lzKCR3aWR0aDogYXV0bykge1xuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LWJhc2lzLCAkd2lkdGgsIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiAkd2lkdGg7XG59XG5cbi8vIDIwMDkgLSBib3gtcGFjayAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBqdXN0aWZ5KVxuLy8gMjAxMSAtIGZsZXgtcGFjayAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBqdXN0aWZ5KVxuLy8gMjAxMiAtIGp1c3RpZnktY29udGVudCAoZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgc3BhY2UtYmV0d2VlbiB8IHNwYWNlLWFyb3VuZClcbkBtaXhpbiBqdXN0aWZ5LWNvbnRlbnQoJHZhbHVlOiBmbGV4LXN0YXJ0KSB7XG5cbiAgLy8gQWx0IHZhbHVlcy5cbiAgJGFsdC12YWx1ZTogJHZhbHVlO1xuICBAaWYgJHZhbHVlID09IFwiZmxleC1zdGFydFwiIHtcbiAgICAkYWx0LXZhbHVlOiBzdGFydDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJmbGV4LWVuZFwiIHtcbiAgICAkYWx0LXZhbHVlOiBlbmQ7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwic3BhY2UtYmV0d2VlblwiIHtcbiAgICAkYWx0LXZhbHVlOiBqdXN0aWZ5O1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcInNwYWNlLWFyb3VuZFwiIHtcbiAgICAkYWx0LXZhbHVlOiBkaXN0cmlidXRlO1xuICB9XG5cbiAgLy8gMjAwOVxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtcGFjaywgJGFsdC12YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDEyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGp1c3RpZnktY29udGVudCwgJHZhbHVlLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XG5cbiAgLy8gMjAxMSAoSUUgMTApXG4gIC1tcy1mbGV4LXBhY2s6ICRhbHQtdmFsdWU7XG59XG5cbi8vIDIwMDkgLSBib3gtYWxpZ24gKHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxuLy8gMjAxMSAtIGZsZXgtYWxpZ24gKHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxuLy8gMjAxMiAtIGFsaWduLWl0ZW1zIChmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXG5AbWl4aW4gYWxpZ24taXRlbXMoJHZhbHVlOiBzdHJldGNoKSB7XG5cbiAgJGFsdC12YWx1ZTogJHZhbHVlO1xuXG4gIEBpZiAkdmFsdWUgPT0gXCJmbGV4LXN0YXJ0XCIge1xuICAgICRhbHQtdmFsdWU6IHN0YXJ0O1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcImZsZXgtZW5kXCIge1xuICAgICRhbHQtdmFsdWU6IGVuZDtcbiAgfVxuXG4gIC8vIDIwMDlcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWFsaWduLCAkYWx0LXZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYWxpZ24taXRlbXMsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xuXG4gIC8vIDIwMTEgKElFIDEwKVxuICAtbXMtZmxleC1hbGlnbjogJGFsdC12YWx1ZTtcbn1cblxuLy8gMjAxMSAtIGZsZXgtaXRlbS1hbGlnbiAoYXV0byB8IHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxuLy8gMjAxMiAtIGFsaWduLXNlbGYgKGF1dG8gfCBmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXG5AbWl4aW4gYWxpZ24tc2VsZigkdmFsdWU6IGF1dG8pIHtcblxuICAkdmFsdWUtMjAxMTogJHZhbHVlO1xuICBAaWYgJHZhbHVlID09IFwiZmxleC1zdGFydFwiIHtcbiAgICAkdmFsdWUtMjAxMTogc3RhcnQ7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwiZmxleC1lbmRcIiB7XG4gICAgJHZhbHVlLTIwMTE6IGVuZDtcbiAgfVxuXG4gIC8vIDIwMTJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYWxpZ24tc2VsZiwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTEgKElFIDEwKVxuICAtbXMtZmxleC1pdGVtLWFsaWduOiAkdmFsdWUtMjAxMTtcbn1cblxuLy8gMjAxMSAtIGZsZXgtbGluZS1wYWNrIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGp1c3RpZnkgfCBkaXN0cmlidXRlIHwgc3RyZXRjaClcbi8vIDIwMTIgLSBhbGlnbi1jb250ZW50IChmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBzcGFjZS1iZXR3ZWVuIHwgc3BhY2UtYXJvdW5kIHwgc3RyZXRjaClcbkBtaXhpbiBhbGlnbi1jb250ZW50KCR2YWx1ZTogc3RyZXRjaCkge1xuXG4gICR2YWx1ZS0yMDExOiAkdmFsdWU7XG4gIEBpZiAkdmFsdWUgPT0gXCJmbGV4LXN0YXJ0XCIge1xuICAgICR2YWx1ZS0yMDExOiBzdGFydDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJmbGV4LWVuZFwiIHtcbiAgICAkdmFsdWUtMjAxMTogZW5kO1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcInNwYWNlLWJldHdlZW5cIiB7XG4gICAgJHZhbHVlLTIwMTE6IGp1c3RpZnk7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwic3BhY2UtYXJvdW5kXCIge1xuICAgICR2YWx1ZS0yMDExOiBkaXN0cmlidXRlO1xuICB9XG5cbiAgLy8gMjAxMlxuICBAaW5jbHVkZSBwcmVmaXhlcihhbGlnbi1jb250ZW50LCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMSAoSUUgMTApXG4gIC1tcy1mbGV4LWxpbmUtcGFjazogJHZhbHVlLTIwMTE7XG59XG4iLCJAbWl4aW4gZm9udC1mYWNlKFxuICAkZm9udC1mYW1pbHksXG4gICRmaWxlLXBhdGgsXG4gICR3ZWlnaHQ6IG5vcm1hbCxcbiAgJHN0eWxlOiBub3JtYWwsXG4gICRhc3NldC1waXBlbGluZTogJGFzc2V0LXBpcGVsaW5lLFxuICAkZmlsZS1mb3JtYXRzOiBlb3Qgd29mZjIgd29mZiB0dGYgc3ZnKSB7XG5cbiAgJGZvbnQtdXJsLXByZWZpeDogZm9udC11cmwtcHJlZml4ZXIoJGFzc2V0LXBpcGVsaW5lKTtcblxuICBAZm9udC1mYWNlIHtcbiAgICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5O1xuICAgIGZvbnQtc3R5bGU6ICRzdHlsZTtcbiAgICBmb250LXdlaWdodDogJHdlaWdodDtcblxuICAgIHNyYzogZm9udC1zb3VyY2UtZGVjbGFyYXRpb24oXG4gICAgICAkZm9udC1mYW1pbHksXG4gICAgICAkZmlsZS1wYXRoLFxuICAgICAgJGFzc2V0LXBpcGVsaW5lLFxuICAgICAgJGZpbGUtZm9ybWF0cyxcbiAgICAgICRmb250LXVybC1wcmVmaXhcbiAgICApO1xuICB9XG59XG4iLCJAbWl4aW4gZm9udC1mZWF0dXJlLXNldHRpbmdzKCRzZXR0aW5ncy4uLikge1xuICBAaWYgbGVuZ3RoKCRzZXR0aW5ncykgPT0gMCB7ICRzZXR0aW5nczogbm9uZTsgfVxuICBAaW5jbHVkZSBwcmVmaXhlcihmb250LWZlYXR1cmUtc2V0dGluZ3MsICRzZXR0aW5ncywgd2Via2l0IG1veiBtcyBzcGVjKTtcbn1cbiIsIi8vIEhpRFBJIG1peGluLiBEZWZhdWx0IHZhbHVlIHNldCB0byAxLjMgdG8gdGFyZ2V0IEdvb2dsZSBOZXh1cyA3IChodHRwOi8vYmphbmdvLmNvbS9hcnRpY2xlcy9taW4tZGV2aWNlLXBpeGVsLXJhdGlvLylcbkBtaXhpbiBoaWRwaSgkcmF0aW86IDEuMykge1xuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86ICRyYXRpbyksXG4gIG9ubHkgc2NyZWVuIGFuZCAobWluLS1tb3otZGV2aWNlLXBpeGVsLXJhdGlvOiAkcmF0aW8pLFxuICBvbmx5IHNjcmVlbiBhbmQgKC1vLW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86ICN7JHJhdGlvfS8xKSxcbiAgb25seSBzY3JlZW4gYW5kIChtaW4tcmVzb2x1dGlvbjogcm91bmQoJHJhdGlvICogOTZkcGkpKSxcbiAgb25seSBzY3JlZW4gYW5kIChtaW4tcmVzb2x1dGlvbjogJHJhdGlvICogMWRwcHgpIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuIiwiQG1peGluIGh5cGhlbnMoJGh5cGhlbmF0aW9uOiBub25lKSB7XG4gIC8vIG5vbmUgfCBtYW51YWwgfCBhdXRvXG4gIEBpbmNsdWRlIHByZWZpeGVyKGh5cGhlbnMsICRoeXBoZW5hdGlvbiwgd2Via2l0IG1veiBtcyBzcGVjKTtcbn1cbiIsIkBtaXhpbiBpbWFnZS1yZW5kZXJpbmcgKCRtb2RlOmF1dG8pIHtcblxuICBAaWYgKCRtb2RlID09IGNyaXNwLWVkZ2VzKSB7XG4gICAgLW1zLWludGVycG9sYXRpb24tbW9kZTogbmVhcmVzdC1uZWlnaGJvcjsgLy8gSUU4K1xuICAgIGltYWdlLXJlbmRlcmluZzogLW1vei1jcmlzcC1lZGdlcztcbiAgICBpbWFnZS1yZW5kZXJpbmc6IC1vLWNyaXNwLWVkZ2VzO1xuICAgIGltYWdlLXJlbmRlcmluZzogLXdlYmtpdC1vcHRpbWl6ZS1jb250cmFzdDtcbiAgICBpbWFnZS1yZW5kZXJpbmc6IGNyaXNwLWVkZ2VzO1xuICB9XG5cbiAgQGVsc2Uge1xuICAgIGltYWdlLXJlbmRlcmluZzogJG1vZGU7XG4gIH1cbn1cbiIsIi8vIEFkZHMga2V5ZnJhbWVzIGJsb2NrcyBmb3Igc3VwcG9ydGVkIHByZWZpeGVzLCByZW1vdmluZyByZWR1bmRhbnQgcHJlZml4ZXMgaW4gdGhlIGJsb2NrJ3MgY29udGVudFxuQG1peGluIGtleWZyYW1lcygkbmFtZSkge1xuICAkb3JpZ2luYWwtcHJlZml4LWZvci13ZWJraXQ6ICAgICRwcmVmaXgtZm9yLXdlYmtpdDtcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3ItbW96aWxsYTogICAkcHJlZml4LWZvci1tb3ppbGxhO1xuICAkb3JpZ2luYWwtcHJlZml4LWZvci1taWNyb3NvZnQ6ICRwcmVmaXgtZm9yLW1pY3Jvc29mdDtcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3Itb3BlcmE6ICAgICAkcHJlZml4LWZvci1vcGVyYTtcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3Itc3BlYzogICAgICAkcHJlZml4LWZvci1zcGVjO1xuXG4gIEBpZiAkb3JpZ2luYWwtcHJlZml4LWZvci13ZWJraXQge1xuICAgIEBpbmNsdWRlIGRpc2FibGUtcHJlZml4LWZvci1hbGwoKTtcbiAgICAkcHJlZml4LWZvci13ZWJraXQ6IHRydWUgIWdsb2JhbDtcbiAgICBALXdlYmtpdC1rZXlmcmFtZXMgI3skbmFtZX0ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG5cbiAgQGlmICRvcmlnaW5hbC1wcmVmaXgtZm9yLW1vemlsbGEge1xuICAgIEBpbmNsdWRlIGRpc2FibGUtcHJlZml4LWZvci1hbGwoKTtcbiAgICAkcHJlZml4LWZvci1tb3ppbGxhOiB0cnVlICFnbG9iYWw7XG4gICAgQC1tb3ota2V5ZnJhbWVzICN7JG5hbWV9IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuXG4gICRwcmVmaXgtZm9yLXdlYmtpdDogICAgJG9yaWdpbmFsLXByZWZpeC1mb3Itd2Via2l0ICAgICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLW1vemlsbGE6ICAgJG9yaWdpbmFsLXByZWZpeC1mb3ItbW96aWxsYSAgICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLW1pY3Jvc29mdDogJG9yaWdpbmFsLXByZWZpeC1mb3ItbWljcm9zb2Z0ICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLW9wZXJhOiAgICAgJG9yaWdpbmFsLXByZWZpeC1mb3Itb3BlcmEgICAgICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLXNwZWM6ICAgICAgJG9yaWdpbmFsLXByZWZpeC1mb3Itc3BlYyAgICAgICFnbG9iYWw7XG5cbiAgQGlmICRvcmlnaW5hbC1wcmVmaXgtZm9yLXNwZWMge1xuICAgIEBrZXlmcmFtZXMgI3skbmFtZX0ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG4iLCJAbWl4aW4gbGluZWFyLWdyYWRpZW50KCRwb3MsICRnMSwgJGcyOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZzM6IG51bGwsICRnNDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGc1OiBudWxsLCAkZzY6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRnNzogbnVsbCwgJGc4OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZzk6IG51bGwsICRnMTA6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRmYWxsYmFjazogbnVsbCkge1xuICAvLyBEZXRlY3Qgd2hhdCB0eXBlIG9mIHZhbHVlIGV4aXN0cyBpbiAkcG9zXG4gICRwb3MtdHlwZTogdHlwZS1vZihudGgoJHBvcywgMSkpO1xuICAkcG9zLXNwZWM6IG51bGw7XG4gICRwb3MtZGVncmVlOiBudWxsO1xuXG4gIC8vIElmICRwb3MgaXMgbWlzc2luZyBmcm9tIG1peGluLCByZWFzc2lnbiB2YXJzIGFuZCBhZGQgZGVmYXVsdCBwb3NpdGlvblxuICBAaWYgKCRwb3MtdHlwZSA9PSBjb2xvcikgb3IgKG50aCgkcG9zLCAxKSA9PSBcInRyYW5zcGFyZW50XCIpICB7XG4gICAgJGcxMDogJGc5OyAkZzk6ICRnODsgJGc4OiAkZzc7ICRnNzogJGc2OyAkZzY6ICRnNTtcbiAgICAkZzU6ICRnNDsgJGc0OiAkZzM7ICRnMzogJGcyOyAkZzI6ICRnMTsgJGcxOiAkcG9zO1xuICAgICRwb3M6IG51bGw7XG4gIH1cblxuICBAaWYgJHBvcyB7XG4gICAgJHBvc2l0aW9uczogX2xpbmVhci1wb3NpdGlvbnMtcGFyc2VyKCRwb3MpO1xuICAgICRwb3MtZGVncmVlOiBudGgoJHBvc2l0aW9ucywgMSk7XG4gICAgJHBvcy1zcGVjOiAgIG50aCgkcG9zaXRpb25zLCAyKTtcbiAgfVxuXG4gICRmdWxsOiAkZzEsICRnMiwgJGczLCAkZzQsICRnNSwgJGc2LCAkZzcsICRnOCwgJGc5LCAkZzEwO1xuXG4gIC8vIFNldCAkZzEgYXMgdGhlIGRlZmF1bHQgZmFsbGJhY2sgY29sb3JcbiAgJGZhbGxiYWNrLWNvbG9yOiBudGgoJGcxLCAxKTtcblxuICAvLyBJZiAkZmFsbGJhY2sgaXMgYSBjb2xvciB1c2UgdGhhdCBjb2xvciBhcyB0aGUgZmFsbGJhY2sgY29sb3JcbiAgQGlmICh0eXBlLW9mKCRmYWxsYmFjaykgPT0gY29sb3IpIG9yICgkZmFsbGJhY2sgPT0gXCJ0cmFuc3BhcmVudFwiKSB7XG4gICAgJGZhbGxiYWNrLWNvbG9yOiAkZmFsbGJhY2s7XG4gIH1cblxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZmFsbGJhY2stY29sb3I7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KCRwb3MtZGVncmVlICRmdWxsKTsgLy8gU2FmYXJpIDUuMSssIENocm9tZVxuICBiYWNrZ3JvdW5kLWltYWdlOiB1bnF1b3RlKFwibGluZWFyLWdyYWRpZW50KCN7JHBvcy1zcGVjfSN7JGZ1bGx9KVwiKTtcbn1cbiIsIkBtaXhpbiBwZXJzcGVjdGl2ZSgkZGVwdGg6IG5vbmUpIHtcbiAgLy8gbm9uZSB8IDxsZW5ndGg+XG4gIEBpbmNsdWRlIHByZWZpeGVyKHBlcnNwZWN0aXZlLCAkZGVwdGgsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBwZXJzcGVjdGl2ZS1vcmlnaW4oJHZhbHVlOiA1MCUgNTAlKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKHBlcnNwZWN0aXZlLW9yaWdpbiwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuIiwiQG1peGluIHBsYWNlaG9sZGVyIHtcbiAgJHBsYWNlaG9sZGVyczogXCI6LXdlYmtpdC1pbnB1dFwiIFwiOi1tb3pcIiBcIi1tb3pcIiBcIi1tcy1pbnB1dFwiO1xuICBAZWFjaCAkcGxhY2Vob2xkZXIgaW4gJHBsYWNlaG9sZGVycyB7XG4gICAgJjojeyRwbGFjZWhvbGRlcn0tcGxhY2Vob2xkZXIge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG4iLCIvLyBSZXF1aXJlcyBTYXNzIDMuMStcbkBtaXhpbiByYWRpYWwtZ3JhZGllbnQoJGcxLCAkZzIsXG4gICAgICAgICAgICAgICAgICAgICAgICRnMzogbnVsbCwgJGc0OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZzU6IG51bGwsICRnNjogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGc3OiBudWxsLCAkZzg6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRnOTogbnVsbCwgJGcxMDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJHBvczogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJHNoYXBlLXNpemU6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRmYWxsYmFjazogbnVsbCkge1xuXG4gICRkYXRhOiBfcmFkaWFsLWFyZy1wYXJzZXIoJGcxLCAkZzIsICRwb3MsICRzaGFwZS1zaXplKTtcbiAgJGcxOiAgbnRoKCRkYXRhLCAxKTtcbiAgJGcyOiAgbnRoKCRkYXRhLCAyKTtcbiAgJHBvczogbnRoKCRkYXRhLCAzKTtcbiAgJHNoYXBlLXNpemU6IG50aCgkZGF0YSwgNCk7XG5cbiAgJGZ1bGw6ICRnMSwgJGcyLCAkZzMsICRnNCwgJGc1LCAkZzYsICRnNywgJGc4LCAkZzksICRnMTA7XG5cbiAgLy8gU3RyaXAgZGVwcmVjYXRlZCBjb3Zlci9jb250YWluIGZvciBzcGVjXG4gICRzaGFwZS1zaXplLXNwZWM6IF9zaGFwZS1zaXplLXN0cmlwcGVyKCRzaGFwZS1zaXplKTtcblxuICAvLyBTZXQgJGcxIGFzIHRoZSBkZWZhdWx0IGZhbGxiYWNrIGNvbG9yXG4gICRmaXJzdC1jb2xvcjogbnRoKCRmdWxsLCAxKTtcbiAgJGZhbGxiYWNrLWNvbG9yOiBudGgoJGZpcnN0LWNvbG9yLCAxKTtcblxuICBAaWYgKHR5cGUtb2YoJGZhbGxiYWNrKSA9PSBjb2xvcikgb3IgKCRmYWxsYmFjayA9PSBcInRyYW5zcGFyZW50XCIpIHtcbiAgICAkZmFsbGJhY2stY29sb3I6ICRmYWxsYmFjaztcbiAgfVxuXG4gIC8vIEFkZCBDb21tYXMgYW5kIHNwYWNlc1xuICAkc2hhcGUtc2l6ZTogaWYoJHNoYXBlLXNpemUsIFwiI3skc2hhcGUtc2l6ZX0sIFwiLCBudWxsKTtcbiAgJHBvczogICAgICAgIGlmKCRwb3MsIFwiI3skcG9zfSwgXCIsIG51bGwpO1xuICAkcG9zLXNwZWM6ICAgaWYoJHBvcywgXCJhdCAjeyRwb3N9XCIsIG51bGwpO1xuICAkc2hhcGUtc2l6ZS1zcGVjOiBpZigoJHNoYXBlLXNpemUtc3BlYyAhPSBcIiBcIikgYW5kICgkcG9zID09IG51bGwpLCBcIiN7JHNoYXBlLXNpemUtc3BlY30sIFwiLCBcIiN7JHNoYXBlLXNpemUtc3BlY30gXCIpO1xuXG4gIGJhY2tncm91bmQtY29sb3I6ICAkZmFsbGJhY2stY29sb3I7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtcmFkaWFsLWdyYWRpZW50KCN7JHBvc30jeyRzaGFwZS1zaXplfSN7JGZ1bGx9KTtcbiAgYmFja2dyb3VuZC1pbWFnZTogcmFkaWFsLWdyYWRpZW50KCN7JHNoYXBlLXNpemUtc3BlY30jeyRwb3Mtc3BlY30jeyRmdWxsfSk7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gT3V0cHV0cyB0aGUgc3BlYyBhbmQgcHJlZml4ZWQgdmVyc2lvbnMgb2YgdGhlIGA6OnNlbGVjdGlvbmAgcHNldWRvLWVsZW1lbnQuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtCb29sfSAkY3VycmVudC1zZWxlY3RvciBbZmFsc2VdXHJcbi8vLyAgIElmIHNldCB0byBgdHJ1ZWAsIGl0IHRha2VzIHRoZSBjdXJyZW50IGVsZW1lbnQgaW50byBjb25zaWRlcmF0aW9uLlxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgQGluY2x1ZGUgc2VsZWN0aW9uKHRydWUpIHtcclxuLy8vICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmJiNTI7XHJcbi8vLyAgICAgfVxyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxyXG4vLy8gICAuZWxlbWVudDo6LW1vei1zZWxlY3Rpb24ge1xyXG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmJiNTI7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyAgIC5lbGVtZW50OjpzZWxlY3Rpb24ge1xyXG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmJiNTI7XHJcbi8vLyAgIH1cclxuXHJcbkBtaXhpbiBzZWxlY3Rpb24oJGN1cnJlbnQtc2VsZWN0b3I6IGZhbHNlKSB7XHJcbiAgQGlmICRjdXJyZW50LXNlbGVjdG9yIHtcclxuICAgICY6Oi1tb3otc2VsZWN0aW9uIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgJjo6c2VsZWN0aW9uIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfSBAZWxzZSB7XHJcbiAgICA6Oi1tb3otc2VsZWN0aW9uIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgOjpzZWxlY3Rpb24ge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiQG1peGluIHRleHQtZGVjb3JhdGlvbigkdmFsdWUpIHtcbi8vIDx0ZXh0LWRlY29yYXRpb24tbGluZT4gfHwgPHRleHQtZGVjb3JhdGlvbi1zdHlsZT4gfHwgPHRleHQtZGVjb3JhdGlvbi1jb2xvcj5cbiAgQGluY2x1ZGUgcHJlZml4ZXIodGV4dC1kZWNvcmF0aW9uLCAkdmFsdWUsIG1veik7XG59XG5cbkBtaXhpbiB0ZXh0LWRlY29yYXRpb24tbGluZSgkbGluZTogbm9uZSkge1xuLy8gbm9uZSB8fCB1bmRlcmxpbmUgfHwgb3ZlcmxpbmUgfHwgbGluZS10aHJvdWdoXG4gIEBpbmNsdWRlIHByZWZpeGVyKHRleHQtZGVjb3JhdGlvbi1saW5lLCAkbGluZSwgbW96KTtcbn1cblxuQG1peGluIHRleHQtZGVjb3JhdGlvbi1zdHlsZSgkc3R5bGU6IHNvbGlkKSB7XG4vLyBzb2xpZCB8fCBkb3VibGUgfHwgZG90dGVkIHx8IGRhc2hlZCB8fCB3YXZ5XG4gIEBpbmNsdWRlIHByZWZpeGVyKHRleHQtZGVjb3JhdGlvbi1zdHlsZSwgJHN0eWxlLCBtb3ogd2Via2l0KTtcbn1cblxuQG1peGluIHRleHQtZGVjb3JhdGlvbi1jb2xvcigkY29sb3I6IGN1cnJlbnRDb2xvcikge1xuLy8gY3VycmVudENvbG9yIHx8IDxjb2xvcj5cbiAgQGluY2x1ZGUgcHJlZml4ZXIodGV4dC1kZWNvcmF0aW9uLWNvbG9yLCAkY29sb3IsIG1veik7XG59XG4iLCJAbWl4aW4gdHJhbnNmb3JtKCRwcm9wZXJ0eTogbm9uZSkge1xuICAvLyBub25lIHwgPHRyYW5zZm9ybS1mdW5jdGlvbj5cbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNmb3JtLCAkcHJvcGVydHksIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcbn1cblxuQG1peGluIHRyYW5zZm9ybS1vcmlnaW4oJGF4ZXM6IDUwJSkge1xuICAvLyB4LWF4aXMgLSBsZWZ0IHwgY2VudGVyIHwgcmlnaHQgIHwgbGVuZ3RoIHwgJVxuICAvLyB5LWF4aXMgLSB0b3AgIHwgY2VudGVyIHwgYm90dG9tIHwgbGVuZ3RoIHwgJVxuICAvLyB6LWF4aXMgLSAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoXG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zZm9ybS1vcmlnaW4sICRheGVzLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XG59XG5cbkBtaXhpbiB0cmFuc2Zvcm0tc3R5bGUoJHN0eWxlOiBmbGF0KSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zZm9ybS1zdHlsZSwgJHN0eWxlLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XG59XG4iLCIvLyBTaG9ydGhhbmQgbWl4aW4uIFN1cHBvcnRzIG11bHRpcGxlIHBhcmVudGhlc2VzLWRlbGltaW5hdGVkIHZhbHVlcyBmb3IgZWFjaCB2YXJpYWJsZS5cbi8vIEV4YW1wbGU6IEBpbmNsdWRlIHRyYW5zaXRpb24gKGFsbCAycyBlYXNlLWluLW91dCk7XG4vLyAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uIChvcGFjaXR5IDFzIGVhc2UtaW4gMnMsIHdpZHRoIDJzIGVhc2Utb3V0KTtcbi8vICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tcHJvcGVydHkgKHRyYW5zZm9ybSwgb3BhY2l0eSk7XG5cbkBtaXhpbiB0cmFuc2l0aW9uKCRwcm9wZXJ0aWVzLi4uKSB7XG4gIC8vIEZpeCBmb3IgdmVuZG9yLXByZWZpeCB0cmFuc2Zvcm0gcHJvcGVydHlcbiAgJG5lZWRzLXByZWZpeGVzOiBmYWxzZTtcbiAgJHdlYmtpdDogKCk7XG4gICRtb3o6ICgpO1xuICAkc3BlYzogKCk7XG5cbiAgLy8gQ3JlYXRlIGxpc3RzIGZvciB2ZW5kb3ItcHJlZml4ZWQgdHJhbnNmb3JtXG4gIEBlYWNoICRsaXN0IGluICRwcm9wZXJ0aWVzIHtcbiAgICBAaWYgbnRoKCRsaXN0LCAxKSA9PSBcInRyYW5zZm9ybVwiIHtcbiAgICAgICRuZWVkcy1wcmVmaXhlczogdHJ1ZTtcbiAgICAgICRsaXN0MTogLXdlYmtpdC10cmFuc2Zvcm07XG4gICAgICAkbGlzdDI6IC1tb3otdHJhbnNmb3JtO1xuICAgICAgJGxpc3QzOiAoKTtcblxuICAgICAgQGVhY2ggJHZhciBpbiAkbGlzdCB7XG4gICAgICAgICRsaXN0Mzogam9pbigkbGlzdDMsICR2YXIpO1xuXG4gICAgICAgIEBpZiAkdmFyICE9IFwidHJhbnNmb3JtXCIge1xuICAgICAgICAgICRsaXN0MTogam9pbigkbGlzdDEsICR2YXIpO1xuICAgICAgICAgICRsaXN0Mjogam9pbigkbGlzdDIsICR2YXIpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICR3ZWJraXQ6IGFwcGVuZCgkd2Via2l0LCAkbGlzdDEpO1xuICAgICAgJG1vejogICAgYXBwZW5kKCRtb3osICAgICRsaXN0Mik7XG4gICAgICAkc3BlYzogICBhcHBlbmQoJHNwZWMsICAgJGxpc3QzKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICR3ZWJraXQ6IGFwcGVuZCgkd2Via2l0LCAkbGlzdCwgY29tbWEpO1xuICAgICAgJG1vejogICAgYXBwZW5kKCRtb3osICAgICRsaXN0LCBjb21tYSk7XG4gICAgICAkc3BlYzogICBhcHBlbmQoJHNwZWMsICAgJGxpc3QsIGNvbW1hKTtcbiAgICB9XG4gIH1cblxuICBAaWYgJG5lZWRzLXByZWZpeGVzIHtcbiAgICAtd2Via2l0LXRyYW5zaXRpb246ICR3ZWJraXQ7XG4gICAgICAgLW1vei10cmFuc2l0aW9uOiAkbW96O1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogJHNwZWM7XG4gIH0gQGVsc2Uge1xuICAgIEBpZiBsZW5ndGgoJHByb3BlcnRpZXMpID49IDEge1xuICAgICAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbiwgJHByb3BlcnRpZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkcHJvcGVydGllczogYWxsIDAuMTVzIGVhc2Utb3V0IDBzO1xuICAgICAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbiwgJHByb3BlcnRpZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiB0cmFuc2l0aW9uLXByb3BlcnR5KCRwcm9wZXJ0aWVzLi4uKSB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lcygkcHJvcGVydGllcywgXCJ3ZWJraXRcIik7XG4gICAgIC1tb3otdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lcygkcHJvcGVydGllcywgXCJtb3pcIik7XG4gICAgICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lcygkcHJvcGVydGllcywgZmFsc2UpO1xufVxuXG5AbWl4aW4gdHJhbnNpdGlvbi1kdXJhdGlvbigkdGltZXMuLi4pIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbi1kdXJhdGlvbiwgJHRpbWVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24oJG1vdGlvbnMuLi4pIHtcbiAgLy8gZWFzZSB8IGxpbmVhciB8IGVhc2UtaW4gfCBlYXNlLW91dCB8IGVhc2UtaW4tb3V0IHwgY3ViaWMtYmV6aWVyKClcbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24sICRtb3Rpb25zLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gdHJhbnNpdGlvbi1kZWxheSgkdGltZXMuLi4pIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbi1kZWxheSwgJHRpbWVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuIiwiQG1peGluIHVzZXItc2VsZWN0KCR2YWx1ZTogbm9uZSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcih1c2VyLXNlbGVjdCwgJHZhbHVlLCB3ZWJraXQgbW96IG1zIHNwZWMpO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHRhcmdldGluZyBgYm9yZGVyLWNvbG9yYCBvbiBzcGVjaWZpYyBzaWRlcyBvZiBhIGJveC4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkdmFsc1xuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBib3JkZXItY29sb3IoI2E2MGI1NSAjNzZjZDljIG51bGwgI2U4YWUxYSk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJvcmRlci1sZWZ0LWNvbG9yOiAjZThhZTFhO1xuLy8vICAgICBib3JkZXItcmlnaHQtY29sb3I6ICM3NmNkOWM7XG4vLy8gICAgIGJvcmRlci10b3AtY29sb3I6ICNhNjBiNTU7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSB7bWl4aW59IGRpcmVjdGlvbmFsLXByb3BlcnR5XG4vLy9cbi8vLyBAb3V0cHV0IGBib3JkZXItY29sb3JgXG5cbkBtaXhpbiBib3JkZXItY29sb3IoJHZhbHMuLi4pIHtcbiAgQGluY2x1ZGUgZGlyZWN0aW9uYWwtcHJvcGVydHkoYm9yZGVyLCBjb2xvciwgJHZhbHMuLi4pO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHRhcmdldGluZyBgYm9yZGVyLXJhZGl1c2Agb24gYm90aCBjb3JuZXJzIG9uIHRoZSBzaWRlIG9mIGEgYm94LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRyYWRpaVxuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQtb25lIHtcbi8vLyAgICAgQGluY2x1ZGUgYm9yZGVyLXRvcC1yYWRpdXMoNXB4KTtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLmVsZW1lbnQtdHdvIHtcbi8vLyAgICAgQGluY2x1ZGUgYm9yZGVyLWxlZnQtcmFkaXVzKDNweCk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudC1vbmUge1xuLy8vICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA1cHg7XG4vLy8gICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA1cHg7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5lbGVtZW50LXR3byB7XG4vLy8gICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDNweDtcbi8vLyAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogM3B4O1xuLy8vICAgfVxuLy8vXG4vLy8gQG91dHB1dCBgYm9yZGVyLXJhZGl1c2BcblxuQG1peGluIGJvcmRlci10b3AtcmFkaXVzKCRyYWRpaSkge1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkcmFkaWk7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkcmFkaWk7XG59XG5cbkBtaXhpbiBib3JkZXItcmlnaHQtcmFkaXVzKCRyYWRpaSkge1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogJHJhZGlpO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogJHJhZGlpO1xufVxuXG5AbWl4aW4gYm9yZGVyLWJvdHRvbS1yYWRpdXMoJHJhZGlpKSB7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICRyYWRpaTtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6ICRyYWRpaTtcbn1cblxuQG1peGluIGJvcmRlci1sZWZ0LXJhZGl1cygkcmFkaWkpIHtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogJHJhZGlpO1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkcmFkaWk7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm92aWRlcyBhIHF1aWNrIG1ldGhvZCBmb3IgdGFyZ2V0aW5nIGBib3JkZXItc3R5bGVgIG9uIHNwZWNpZmljIHNpZGVzIG9mIGEgYm94LiBVc2UgYSBgbnVsbGAgdmFsdWUgdG8g4oCcc2tpcOKAnSBhIHNpZGUuXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICR2YWxzXG4vLy8gICBMaXN0IG9mIGFyZ3VtZW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIGJvcmRlci1zdHlsZShkYXNoZWQgbnVsbCBzb2xpZCk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkO1xuLy8vICAgICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSB7bWl4aW59IGRpcmVjdGlvbmFsLXByb3BlcnR5XG4vLy9cbi8vLyBAb3V0cHV0IGBib3JkZXItc3R5bGVgXG5cbkBtaXhpbiBib3JkZXItc3R5bGUoJHZhbHMuLi4pIHtcbiAgQGluY2x1ZGUgZGlyZWN0aW9uYWwtcHJvcGVydHkoYm9yZGVyLCBzdHlsZSwgJHZhbHMuLi4pO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHRhcmdldGluZyBgYm9yZGVyLXdpZHRoYCBvbiBzcGVjaWZpYyBzaWRlcyBvZiBhIGJveC4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkdmFsc1xuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBib3JkZXItd2lkdGgoMWVtIG51bGwgMjBweCk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDIwcHg7XG4vLy8gICAgIGJvcmRlci10b3Atd2lkdGg6IDFlbTtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIHttaXhpbn0gZGlyZWN0aW9uYWwtcHJvcGVydHlcbi8vL1xuLy8vIEBvdXRwdXQgYGJvcmRlci13aWR0aGBcblxuQG1peGluIGJvcmRlci13aWR0aCgkdmFscy4uLikge1xuICBAaW5jbHVkZSBkaXJlY3Rpb25hbC1wcm9wZXJ0eShib3JkZXIsIHdpZHRoLCAkdmFscy4uLik7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBHZW5lcmF0ZXMgdmFyaWFibGVzIGZvciBhbGwgYnV0dG9ucy4gUGxlYXNlIG5vdGUgdGhhdCB5b3UgbXVzdCB1c2UgaW50ZXJwb2xhdGlvbiBvbiB0aGUgdmFyaWFibGU6IGAjeyRhbGwtYnV0dG9uc31gLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAjeyRhbGwtYnV0dG9uc30ge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjAwO1xuLy8vICAgfVxuLy8vXG4vLy8gICAjeyRhbGwtYnV0dG9ucy1mb2N1c30sXG4vLy8gICAjeyRhbGwtYnV0dG9ucy1ob3Zlcn0ge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGYwO1xuLy8vICAgfVxuLy8vXG4vLy8gICAjeyRhbGwtYnV0dG9ucy1hY3RpdmV9IHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwZjtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIGJ1dHRvbixcbi8vLyAgIGlucHV0W3R5cGU9XCJidXR0b25cIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwicmVzZXRcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogI2YwMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgYnV0dG9uOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cImJ1dHRvblwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJyZXNldFwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJzdWJtaXRcIl06Zm9jdXMsXG4vLy8gICBidXR0b246aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cInJlc2V0XCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXTpob3ZlciB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICMwZjA7XG4vLy8gICB9XG4vLy9cbi8vLyAgIGJ1dHRvbjphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJyZXNldFwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwic3VibWl0XCJdOmFjdGl2ZSB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICMwMGY7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSBhc3NpZ24taW5wdXRzXG4vLy9cbi8vLyBAdHlwZSBMaXN0XG4vLy9cbi8vLyBAdG9kbyBSZW1vdmUgZG91YmxlIGFzc2lnbmVkIHZhcmlhYmxlcyAoTGluZXMgNTnigJM2MikgaW4gdjUuMC4wXG5cbiRidXR0b25zLWxpc3Q6ICdidXR0b24nLFxuICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJidXR0b25cIl0nLFxuICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJyZXNldFwiXScsXG4gICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSc7XG5cbiRhbGwtYnV0dG9uczogICAgICAgIGFzc2lnbi1pbnB1dHMoJGJ1dHRvbnMtbGlzdCk7XG4kYWxsLWJ1dHRvbnMtYWN0aXZlOiBhc3NpZ24taW5wdXRzKCRidXR0b25zLWxpc3QsIGFjdGl2ZSk7XG4kYWxsLWJ1dHRvbnMtZm9jdXM6ICBhc3NpZ24taW5wdXRzKCRidXR0b25zLWxpc3QsIGZvY3VzKTtcbiRhbGwtYnV0dG9ucy1ob3ZlcjogIGFzc2lnbi1pbnB1dHMoJGJ1dHRvbnMtbGlzdCwgaG92ZXIpO1xuXG4kYWxsLWJ1dHRvbi1pbnB1dHM6ICAgICAgICAkYWxsLWJ1dHRvbnM7XG4kYWxsLWJ1dHRvbi1pbnB1dHMtYWN0aXZlOiAkYWxsLWJ1dHRvbnMtYWN0aXZlO1xuJGFsbC1idXR0b24taW5wdXRzLWZvY3VzOiAgJGFsbC1idXR0b25zLWZvY3VzO1xuJGFsbC1idXR0b24taW5wdXRzLWhvdmVyOiAgJGFsbC1idXR0b25zLWhvdmVyO1xuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYW4gZWFzeSB3YXkgdG8gaW5jbHVkZSBhIGNsZWFyZml4IGZvciBjb250YWluaW5nIGZsb2F0cy5cbi8vL1xuLy8vIEBsaW5rIGh0dHA6Ly9jc3Ntb2pvLmNvbS9sYXRlc3RfbmV3X2NsZWFyZml4X3NvX2Zhci9cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50OjphZnRlciB7XG4vLy8gICAgIGNsZWFyOiBib3RoO1xuLy8vICAgICBjb250ZW50OiBcIlwiO1xuLy8vICAgICBkaXNwbGF5OiB0YWJsZTtcbi8vLyAgIH1cblxuQG1peGluIGNsZWFyZml4IHtcbiAgJjo6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoO1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZGlzcGxheTogdGFibGU7XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFRydW5jYXRlcyB0ZXh0IGFuZCBhZGRzIGFuIGVsbGlwc2lzIHRvIHJlcHJlc2VudCBvdmVyZmxvdy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2lkdGggWzEwMCVdXG4vLy8gICBNYXgtd2lkdGggZm9yIHRoZSBzdHJpbmcgdG8gcmVzcGVjdCBiZWZvcmUgYmVpbmcgdHJ1bmNhdGVkXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgZWxsaXBzaXM7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbi8vLyAgICAgbWF4LXdpZHRoOiAxMDAlO1xuLy8vICAgICBvdmVyZmxvdzogaGlkZGVuO1xuLy8vICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbi8vLyAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbi8vLyAgICAgd29yZC13cmFwOiBub3JtYWw7XG4vLy8gICB9XG5cbkBtaXhpbiBlbGxpcHNpcygkd2lkdGg6IDEwMCUpIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXgtd2lkdGg6ICR3aWR0aDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHdvcmQtd3JhcDogbm9ybWFsO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gR2VvcmdpYSBmb250IHN0YWNrLlxuLy8vXG4vLy8gQHR5cGUgTGlzdFxuXG4kZ2VvcmdpYTogXCJHZW9yZ2lhXCIsIFwiQ2FtYnJpYVwiLCBcIlRpbWVzIE5ldyBSb21hblwiLCBcIlRpbWVzXCIsIHNlcmlmO1xuXG4vLy8gSGVsdmV0aWNhIGZvbnQgc3RhY2suXG4vLy9cbi8vLyBAdHlwZSBMaXN0XG5cbiRoZWx2ZXRpY2E6IFwiSGVsdmV0aWNhIE5ldWVcIiwgXCJIZWx2ZXRpY2FcIiwgXCJSb2JvdG9cIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xuXG4vLy8gTHVjaWRhIEdyYW5kZSBmb250IHN0YWNrLlxuLy8vXG4vLy8gQHR5cGUgTGlzdFxuXG4kbHVjaWRhLWdyYW5kZTogXCJMdWNpZGEgR3JhbmRlXCIsIFwiVGFob21hXCIsIFwiVmVyZGFuYVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG5cbi8vLyBNb25vc3BhY2UgZm9udCBzdGFjay5cbi8vL1xuLy8vIEB0eXBlIExpc3RcblxuJG1vbm9zcGFjZTogXCJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm9cIiwgXCJDb25zb2xhc1wiLCBcIkNvdXJpZXJcIiwgbW9ub3NwYWNlO1xuXG4vLy8gVmVyZGFuYSBmb250IHN0YWNrLlxuLy8vXG4vLy8gQHR5cGUgTGlzdFxuXG4kdmVyZGFuYTogXCJWZXJkYW5hXCIsIFwiR2VuZXZhXCIsIHNhbnMtc2VyaWY7XG4iLCIvLy8gSGlkZXMgdGhlIHRleHQgaW4gYW4gZWxlbWVudCwgY29tbW9ubHkgdXNlZCB0byBzaG93IGFuIGltYWdlLiBTb21lIGVsZW1lbnRzIHdpbGwgbmVlZCBibG9jay1sZXZlbCBzdHlsZXMgYXBwbGllZC5cbi8vL1xuLy8vIEBsaW5rIGh0dHA6Ly96ZWxkbWFuLmNvbS8yMDEyLzAzLzAxL3JlcGxhY2luZy10aGUtOTk5OXB4LWhhY2stbmV3LWltYWdlLXJlcGxhY2VtZW50XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgaGlkZS10ZXh0O1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBvdmVyZmxvdzogaGlkZGVuO1xuLy8vICAgICB0ZXh0LWluZGVudDogMTAxJTtcbi8vLyAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbi8vLyAgIH1cbi8vL1xuLy8vIEB0b2RvIFJlbW92ZSBoZWlnaHQgYXJndW1lbnQgaW4gdjUuMC4wXG5cbkBtaXhpbiBoaWRlLXRleHQoJGhlaWdodDogbnVsbCkge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LWluZGVudDogMTAxJTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICBAaWYgJGhlaWdodCB7XG4gICAgQHdhcm4gXCJUaGUgYGhpZGUtdGV4dGAgbWl4aW4gaGFzIGNoYW5nZWQgYW5kIG5vIGxvbmdlciByZXF1aXJlcyBhIGhlaWdodC4gVGhlIGhlaWdodCBhcmd1bWVudCB3aWxsIG5vIGxvbmdlciBiZSBhY2NlcHRlZCBpbiB2NS4wLjBcIjtcbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHRhcmdldGluZyBgbWFyZ2luYCBvbiBzcGVjaWZpYyBzaWRlcyBvZiBhIGJveC4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkdmFsc1xuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBtYXJnaW4obnVsbCAxMHB4IDNlbSAyMHZoKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgbWFyZ2luLWJvdHRvbTogM2VtO1xuLy8vICAgICBtYXJnaW4tbGVmdDogMjB2aDtcbi8vLyAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge21peGlufSBkaXJlY3Rpb25hbC1wcm9wZXJ0eVxuLy8vXG4vLy8gQG91dHB1dCBgbWFyZ2luYFxuXG5AbWl4aW4gbWFyZ2luKCR2YWxzLi4uKSB7XG4gIEBpbmNsdWRlIGRpcmVjdGlvbmFsLXByb3BlcnR5KG1hcmdpbiwgZmFsc2UsICR2YWxzLi4uKTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciB0YXJnZXRpbmcgYHBhZGRpbmdgIG9uIHNwZWNpZmljIHNpZGVzIG9mIGEgYm94LiBVc2UgYSBgbnVsbGAgdmFsdWUgdG8g4oCcc2tpcOKAnSBhIHNpZGUuXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICR2YWxzXG4vLy8gICBMaXN0IG9mIGFyZ3VtZW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIHBhZGRpbmcoMTJ2aCBudWxsIDEwcHggNSUpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBwYWRkaW5nLWJvdHRvbTogMTBweDtcbi8vLyAgICAgcGFkZGluZy1sZWZ0OiA1JTtcbi8vLyAgICAgcGFkZGluZy10b3A6IDEydmg7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSB7bWl4aW59IGRpcmVjdGlvbmFsLXByb3BlcnR5XG4vLy9cbi8vLyBAb3V0cHV0IGBwYWRkaW5nYFxuXG5AbWl4aW4gcGFkZGluZygkdmFscy4uLikge1xuICBAaW5jbHVkZSBkaXJlY3Rpb25hbC1wcm9wZXJ0eShwYWRkaW5nLCBmYWxzZSwgJHZhbHMuLi4pO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHNldHRpbmcgYW4gZWxlbWVudOKAmXMgcG9zaXRpb24uIFVzZSBhIGBudWxsYCB2YWx1ZSB0byDigJxza2lw4oCdIGEgc2lkZS5cbi8vL1xuLy8vIEBwYXJhbSB7UG9zaXRpb259ICRwb3NpdGlvbiBbcmVsYXRpdmVdXG4vLy8gICBBIENTUyBwb3NpdGlvbiB2YWx1ZVxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkY29vcmRpbmF0ZXMgW251bGwgbnVsbCBudWxsIG51bGxdXG4vLy8gICBMaXN0IG9mIHZhbHVlcyB0aGF0IGNvcnJlc3BvbmQgdG8gdGhlIDQtdmFsdWUgc3ludGF4IGZvciB0aGUgZWRnZXMgb2YgYSBib3hcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgMCBudWxsIG51bGwgMTBlbSk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGxlZnQ6IDEwZW07XG4vLy8gICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbi8vLyAgICAgdG9wOiAwO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBpcy1sZW5ndGhcbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IHVucGFja1xuXG5AbWl4aW4gcG9zaXRpb24oJHBvc2l0aW9uOiByZWxhdGl2ZSwgJGNvb3JkaW5hdGVzOiBudWxsIG51bGwgbnVsbCBudWxsKSB7XG4gIEBpZiB0eXBlLW9mKCRwb3NpdGlvbikgPT0gbGlzdCB7XG4gICAgJGNvb3JkaW5hdGVzOiAkcG9zaXRpb247XG4gICAgJHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxuXG4gICRjb29yZGluYXRlczogdW5wYWNrKCRjb29yZGluYXRlcyk7XG5cbiAgJG9mZnNldHM6IChcbiAgICB0b3A6ICAgIG50aCgkY29vcmRpbmF0ZXMsIDEpLFxuICAgIHJpZ2h0OiAgbnRoKCRjb29yZGluYXRlcywgMiksXG4gICAgYm90dG9tOiBudGgoJGNvb3JkaW5hdGVzLCAzKSxcbiAgICBsZWZ0OiAgIG50aCgkY29vcmRpbmF0ZXMsIDQpXG4gICk7XG5cbiAgcG9zaXRpb246ICRwb3NpdGlvbjtcblxuICBAZWFjaCAkb2Zmc2V0LCAkdmFsdWUgaW4gJG9mZnNldHMge1xuICAgIEBpZiBpcy1sZW5ndGgoJHZhbHVlKSB7XG4gICAgICAjeyRvZmZzZXR9OiAkdmFsdWU7XG4gICAgfVxuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBBIG1peGluIGZvciBnZW5lcmF0aW5nIHZlbmRvciBwcmVmaXhlcyBvbiBub24tc3RhbmRhcmRpemVkIHByb3BlcnRpZXMuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHByb3BlcnR5XG4vLy8gICBQcm9wZXJ0eSB0byBwcmVmaXhcbi8vL1xuLy8vIEBwYXJhbSB7Kn0gJHZhbHVlXG4vLy8gICBWYWx1ZSB0byB1c2Vcbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHByZWZpeGVzXG4vLy8gICBQcmVmaXhlcyB0byBkZWZpbmVcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBwcmVmaXhlcihib3JkZXItcmFkaXVzLCAxMHB4LCB3ZWJraXQgbXMgc3BlYyk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMTBweDtcbi8vLyAgICAgLW1vei1ib3JkZXItcmFkaXVzOiAxMHB4O1xuLy8vICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge3ZhcmlhYmxlfSAkcHJlZml4LWZvci13ZWJraXRcbi8vLyBAcmVxdWlyZSB7dmFyaWFibGV9ICRwcmVmaXgtZm9yLW1vemlsbGFcbi8vLyBAcmVxdWlyZSB7dmFyaWFibGV9ICRwcmVmaXgtZm9yLW1pY3Jvc29mdFxuLy8vIEByZXF1aXJlIHt2YXJpYWJsZX0gJHByZWZpeC1mb3Itb3BlcmFcbi8vLyBAcmVxdWlyZSB7dmFyaWFibGV9ICRwcmVmaXgtZm9yLXNwZWNcblxuQG1peGluIHByZWZpeGVyKCRwcm9wZXJ0eSwgJHZhbHVlLCAkcHJlZml4ZXMpIHtcbiAgQGVhY2ggJHByZWZpeCBpbiAkcHJlZml4ZXMge1xuICAgIEBpZiAkcHJlZml4ID09IHdlYmtpdCB7XG4gICAgICBAaWYgJHByZWZpeC1mb3Itd2Via2l0IHtcbiAgICAgICAgLXdlYmtpdC0jeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIGlmICRwcmVmaXggPT0gbW96IHtcbiAgICAgIEBpZiAkcHJlZml4LWZvci1tb3ppbGxhIHtcbiAgICAgICAgLW1vei0jeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIGlmICRwcmVmaXggPT0gbXMge1xuICAgICAgQGlmICRwcmVmaXgtZm9yLW1pY3Jvc29mdCB7XG4gICAgICAgIC1tcy0jeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIGlmICRwcmVmaXggPT0gbyB7XG4gICAgICBAaWYgJHByZWZpeC1mb3Itb3BlcmEge1xuICAgICAgICAtby0jeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIGlmICRwcmVmaXggPT0gc3BlYyB7XG4gICAgICBAaWYgJHByZWZpeC1mb3Itc3BlYyB7XG4gICAgICAgICN7JHByb3BlcnR5fTogJHZhbHVlO1xuICAgICAgfVxuICAgIH0gQGVsc2UgIHtcbiAgICAgIEB3YXJuIFwiVW5yZWNvZ25pemVkIHByZWZpeDogI3skcHJlZml4fVwiO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZGlzYWJsZS1wcmVmaXgtZm9yLWFsbCgpIHtcbiAgJHByZWZpeC1mb3Itd2Via2l0OiAgICBmYWxzZSAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1tb3ppbGxhOiAgIGZhbHNlICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLW1pY3Jvc29mdDogZmFsc2UgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3Itb3BlcmE6ICAgICBmYWxzZSAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1zcGVjOiAgICAgIGZhbHNlICFnbG9iYWw7XG59XG4iLCJAbWl4aW4gcmV0aW5hLWltYWdlKCRmaWxlbmFtZSwgJGJhY2tncm91bmQtc2l6ZSwgJGV4dGVuc2lvbjogcG5nLCAkcmV0aW5hLWZpbGVuYW1lOiBudWxsLCAkcmV0aW5hLXN1ZmZpeDogXzJ4LCAkYXNzZXQtcGlwZWxpbmU6ICRhc3NldC1waXBlbGluZSkge1xuICBAaWYgJGFzc2V0LXBpcGVsaW5lIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBpbWFnZS11cmwoXCIjeyRmaWxlbmFtZX0uI3skZXh0ZW5zaW9ufVwiKTtcbiAgfSBAZWxzZSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogICAgICAgdXJsKFwiI3skZmlsZW5hbWV9LiN7JGV4dGVuc2lvbn1cIik7XG4gIH1cblxuICBAaW5jbHVkZSBoaWRwaSB7XG4gICAgQGlmICRhc3NldC1waXBlbGluZSB7XG4gICAgICBAaWYgJHJldGluYS1maWxlbmFtZSB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGltYWdlLXVybChcIiN7JHJldGluYS1maWxlbmFtZX0uI3skZXh0ZW5zaW9ufVwiKTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBpbWFnZS11cmwoXCIjeyRmaWxlbmFtZX0jeyRyZXRpbmEtc3VmZml4fS4jeyRleHRlbnNpb259XCIpO1xuICAgICAgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgQGlmICRyZXRpbmEtZmlsZW5hbWUge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIjeyRyZXRpbmEtZmlsZW5hbWV9LiN7JGV4dGVuc2lvbn1cIik7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiI3skZmlsZW5hbWV9I3skcmV0aW5hLXN1ZmZpeH0uI3skZXh0ZW5zaW9ufVwiKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBiYWNrZ3JvdW5kLXNpemU6ICRiYWNrZ3JvdW5kLXNpemU7XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFNldHMgdGhlIGB3aWR0aGAgYW5kIGBoZWlnaHRgIG9mIHRoZSBlbGVtZW50LlxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkc2l6ZVxuLy8vICAgQSBsaXN0IG9mIGF0IG1vc3QgMiBzaXplIHZhbHVlcy5cbi8vL1xuLy8vICAgSWYgdGhlcmUgaXMgb25seSBhIHNpbmdsZSB2YWx1ZSBpbiBgJHNpemVgIGl0IGlzIHVzZWQgZm9yIGJvdGggd2lkdGggYW5kIGhlaWdodC4gQWxsIHVuaXRzIGFyZSBzdXBwb3J0ZWQuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5maXJzdC1lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgc2l6ZSgyZW0pO1xuLy8vICAgfVxuLy8vXG4vLy8gICAuc2Vjb25kLWVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBzaXplKGF1dG8gMTBlbSk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZmlyc3QtZWxlbWVudCB7XG4vLy8gICAgIHdpZHRoOiAyZW07XG4vLy8gICAgIGhlaWdodDogMmVtO1xuLy8vICAgfVxuLy8vXG4vLy8gICAuc2Vjb25kLWVsZW1lbnQge1xuLy8vICAgICB3aWR0aDogYXV0bztcbi8vLyAgICAgaGVpZ2h0OiAxMGVtO1xuLy8vICAgfVxuLy8vXG4vLy8gQHRvZG8gUmVmYWN0b3IgaW4gNS4wLjAgdG8gdXNlIGEgY29tbWEtc2VwYXJhdGVkIGFyZ3VtZW50XG5cbkBtaXhpbiBzaXplKCR2YWx1ZSkge1xuICAkd2lkdGg6IG50aCgkdmFsdWUsIDEpO1xuICAkaGVpZ2h0OiAkd2lkdGg7XG5cbiAgQGlmIGxlbmd0aCgkdmFsdWUpID4gMSB7XG4gICAgJGhlaWdodDogbnRoKCR2YWx1ZSwgMik7XG4gIH1cblxuICBAaWYgaXMtc2l6ZSgkaGVpZ2h0KSB7XG4gICAgaGVpZ2h0OiAkaGVpZ2h0O1xuICB9IEBlbHNlIHtcbiAgICBAd2FybiBcImAjeyRoZWlnaHR9YCBpcyBub3QgYSB2YWxpZCBsZW5ndGggZm9yIHRoZSBgJGhlaWdodGAgcGFyYW1ldGVyIGluIHRoZSBgc2l6ZWAgbWl4aW4uXCI7XG4gIH1cblxuICBAaWYgaXMtc2l6ZSgkd2lkdGgpIHtcbiAgICB3aWR0aDogJHdpZHRoO1xuICB9IEBlbHNlIHtcbiAgICBAd2FybiBcImAjeyR3aWR0aH1gIGlzIG5vdCBhIHZhbGlkIGxlbmd0aCBmb3IgdGhlIGAkd2lkdGhgIHBhcmFtZXRlciBpbiB0aGUgYHNpemVgIG1peGluLlwiO1xuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBHZW5lcmF0ZXMgdmFyaWFibGVzIGZvciBhbGwgdGV4dC1iYXNlZCBpbnB1dHMuIFBsZWFzZSBub3RlIHRoYXQgeW91IG11c3QgdXNlIGludGVycG9sYXRpb24gb24gdGhlIHZhcmlhYmxlOiBgI3skYWxsLXRleHQtaW5wdXRzfWAuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgICN7JGFsbC10ZXh0LWlucHV0c30ge1xuLy8vICAgICBib3JkZXI6IDFweCBzb2xpZCAjZjAwO1xuLy8vICAgfVxuLy8vXG4vLy8gICAjeyRhbGwtdGV4dC1pbnB1dHMtZm9jdXN9LFxuLy8vICAgI3skYWxsLXRleHQtaW5wdXRzLWhvdmVyfSB7XG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICMwZjA7XG4vLy8gICB9XG4vLy9cbi8vLyAgICN7JGFsbC10ZXh0LWlucHV0cy1hY3RpdmV9IHtcbi8vLyAgICAgYm9yZGVyOiAxcHggc29saWQgIzAwZjtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIGlucHV0W3R5cGU9XCJjb2xvclwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRlXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cImVtYWlsXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cIm1vbnRoXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cIm51bWJlclwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJzZWFyY2hcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwidGVsXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cInRleHRcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwidGltZVwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ1cmxcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwid2Vla1wiXSxcbi8vLyAgIHRleHRhcmVhIHtcbi8vLyAgICAgYm9yZGVyOiAxcHggc29saWQgI2YwMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgaW5wdXRbdHlwZT1cImNvbG9yXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGVcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwiZW1haWxcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwibW9udGhcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cInNlYXJjaFwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZWxcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwidGV4dFwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJ0aW1lXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cInVybFwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJ3ZWVrXCJdOmZvY3VzLFxuLy8vICAgdGV4dGFyZWE6Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwiY29sb3JcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZVwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZVwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJlbWFpbFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJtb250aFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJudW1iZXJcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwic2VhcmNoXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cInRlbFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZXh0XCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cInRpbWVcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwidXJsXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cIndlZWtcIl06aG92ZXIsXG4vLy8gICB0ZXh0YXJlYTpob3ZlciB7XG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICMwZjA7XG4vLy8gICB9XG4vLy9cbi8vLyAgIGlucHV0W3R5cGU9XCJjb2xvclwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZVwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJlbWFpbFwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwibW9udGhcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cIm51bWJlclwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cInNlYXJjaFwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwidGVsXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZXh0XCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ0aW1lXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ1cmxcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cIndlZWtcIl06YWN0aXZlLFxuLy8vICAgdGV4dGFyZWE6YWN0aXZlIHtcbi8vLyAgICAgYm9yZGVyOiAxcHggc29saWQgIzAwZjtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIGFzc2lnbi1pbnB1dHNcbi8vL1xuLy8vIEB0eXBlIExpc3RcblxuJHRleHQtaW5wdXRzLWxpc3Q6ICdpbnB1dFt0eXBlPVwiY29sb3JcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwiZGF0ZVwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJkYXRldGltZVwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJlbWFpbFwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJtb250aFwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJudW1iZXJcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwic2VhcmNoXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInRlbFwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJ0ZXh0XCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInRpbWVcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwidXJsXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cIndlZWtcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dDpub3QoW3R5cGVdKScsXG4gICAgICAgICAgICAgICAgICAgJ3RleHRhcmVhJztcblxuJGFsbC10ZXh0LWlucHV0czogICAgICAgIGFzc2lnbi1pbnB1dHMoJHRleHQtaW5wdXRzLWxpc3QpO1xuJGFsbC10ZXh0LWlucHV0cy1hY3RpdmU6IGFzc2lnbi1pbnB1dHMoJHRleHQtaW5wdXRzLWxpc3QsIGFjdGl2ZSk7XG4kYWxsLXRleHQtaW5wdXRzLWZvY3VzOiAgYXNzaWduLWlucHV0cygkdGV4dC1pbnB1dHMtbGlzdCwgZm9jdXMpO1xuJGFsbC10ZXh0LWlucHV0cy1ob3ZlcjogIGFzc2lnbi1pbnB1dHMoJHRleHQtaW5wdXRzLWxpc3QsIGhvdmVyKTtcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIENTUyBjdWJpYy1iZXppZXIgdGltaW5nIGZ1bmN0aW9ucy4gVGltaW5nIGZ1bmN0aW9ucyBjb3VydGVzeSBvZiBqcXVlcnkuZWFzaWUgKGdpdGh1Yi5jb20vamF1a2lhL2Vhc2llKVxuLy8vXG4vLy8gVGltaW5nIGZ1bmN0aW9ucyBhcmUgdGhlIHNhbWUgYXMgZGVtb2VkIGhlcmU6IGh0dHA6Ly9qcXVlcnl1aS5jb20vcmVzb3VyY2VzL2RlbW9zL2VmZmVjdC9lYXNpbmcuaHRtbFxuLy8vXG4vLy8gQHR5cGUgY3ViaWMtYmV6aWVyXG5cbiRlYXNlLWluLXF1YWQ6ICAgICAgY3ViaWMtYmV6aWVyKDAuNTUwLCAgMC4wODUsIDAuNjgwLCAwLjUzMCk7XG4kZWFzZS1pbi1jdWJpYzogICAgIGN1YmljLWJlemllcigwLjU1MCwgIDAuMDU1LCAwLjY3NSwgMC4xOTApO1xuJGVhc2UtaW4tcXVhcnQ6ICAgICBjdWJpYy1iZXppZXIoMC44OTUsICAwLjAzMCwgMC42ODUsIDAuMjIwKTtcbiRlYXNlLWluLXF1aW50OiAgICAgY3ViaWMtYmV6aWVyKDAuNzU1LCAgMC4wNTAsIDAuODU1LCAwLjA2MCk7XG4kZWFzZS1pbi1zaW5lOiAgICAgIGN1YmljLWJlemllcigwLjQ3MCwgIDAuMDAwLCAwLjc0NSwgMC43MTUpO1xuJGVhc2UtaW4tZXhwbzogICAgICBjdWJpYy1iZXppZXIoMC45NTAsICAwLjA1MCwgMC43OTUsIDAuMDM1KTtcbiRlYXNlLWluLWNpcmM6ICAgICAgY3ViaWMtYmV6aWVyKDAuNjAwLCAgMC4wNDAsIDAuOTgwLCAwLjMzNSk7XG4kZWFzZS1pbi1iYWNrOiAgICAgIGN1YmljLWJlemllcigwLjYwMCwgLTAuMjgwLCAwLjczNSwgMC4wNDUpO1xuXG4kZWFzZS1vdXQtcXVhZDogICAgIGN1YmljLWJlemllcigwLjI1MCwgIDAuNDYwLCAwLjQ1MCwgMC45NDApO1xuJGVhc2Utb3V0LWN1YmljOiAgICBjdWJpYy1iZXppZXIoMC4yMTUsICAwLjYxMCwgMC4zNTUsIDEuMDAwKTtcbiRlYXNlLW91dC1xdWFydDogICAgY3ViaWMtYmV6aWVyKDAuMTY1LCAgMC44NDAsIDAuNDQwLCAxLjAwMCk7XG4kZWFzZS1vdXQtcXVpbnQ6ICAgIGN1YmljLWJlemllcigwLjIzMCwgIDEuMDAwLCAwLjMyMCwgMS4wMDApO1xuJGVhc2Utb3V0LXNpbmU6ICAgICBjdWJpYy1iZXppZXIoMC4zOTAsICAwLjU3NSwgMC41NjUsIDEuMDAwKTtcbiRlYXNlLW91dC1leHBvOiAgICAgY3ViaWMtYmV6aWVyKDAuMTkwLCAgMS4wMDAsIDAuMjIwLCAxLjAwMCk7XG4kZWFzZS1vdXQtY2lyYzogICAgIGN1YmljLWJlemllcigwLjA3NSwgIDAuODIwLCAwLjE2NSwgMS4wMDApO1xuJGVhc2Utb3V0LWJhY2s6ICAgICBjdWJpYy1iZXppZXIoMC4xNzUsICAwLjg4NSwgMC4zMjAsIDEuMjc1KTtcblxuJGVhc2UtaW4tb3V0LXF1YWQ6ICBjdWJpYy1iZXppZXIoMC40NTUsICAwLjAzMCwgMC41MTUsIDAuOTU1KTtcbiRlYXNlLWluLW91dC1jdWJpYzogY3ViaWMtYmV6aWVyKDAuNjQ1LCAgMC4wNDUsIDAuMzU1LCAxLjAwMCk7XG4kZWFzZS1pbi1vdXQtcXVhcnQ6IGN1YmljLWJlemllcigwLjc3MCwgIDAuMDAwLCAwLjE3NSwgMS4wMDApO1xuJGVhc2UtaW4tb3V0LXF1aW50OiBjdWJpYy1iZXppZXIoMC44NjAsICAwLjAwMCwgMC4wNzAsIDEuMDAwKTtcbiRlYXNlLWluLW91dC1zaW5lOiAgY3ViaWMtYmV6aWVyKDAuNDQ1LCAgMC4wNTAsIDAuNTUwLCAwLjk1MCk7XG4kZWFzZS1pbi1vdXQtZXhwbzogIGN1YmljLWJlemllcigxLjAwMCwgIDAuMDAwLCAwLjAwMCwgMS4wMDApO1xuJGVhc2UtaW4tb3V0LWNpcmM6ICBjdWJpYy1iZXppZXIoMC43ODUsICAwLjEzNSwgMC4xNTAsIDAuODYwKTtcbiRlYXNlLWluLW91dC1iYWNrOiAgY3ViaWMtYmV6aWVyKDAuNjgwLCAtMC41NTAsIDAuMjY1LCAxLjU1MCk7XG4iLCJAbWl4aW4gdHJpYW5nbGUoJHNpemUsICRjb2xvciwgJGRpcmVjdGlvbikge1xuICAkd2lkdGg6IG50aCgkc2l6ZSwgMSk7XG4gICRoZWlnaHQ6IG50aCgkc2l6ZSwgbGVuZ3RoKCRzaXplKSk7XG4gICRmb3JlZ3JvdW5kLWNvbG9yOiBudGgoJGNvbG9yLCAxKTtcbiAgJGJhY2tncm91bmQtY29sb3I6IGlmKGxlbmd0aCgkY29sb3IpID09IDIsIG50aCgkY29sb3IsIDIpLCB0cmFuc3BhcmVudCk7XG4gIGhlaWdodDogMDtcbiAgd2lkdGg6IDA7XG5cbiAgQGlmICgkZGlyZWN0aW9uID09IHVwKSBvciAoJGRpcmVjdGlvbiA9PSBkb3duKSBvciAoJGRpcmVjdGlvbiA9PSByaWdodCkgb3IgKCRkaXJlY3Rpb24gPT0gbGVmdCkge1xuICAgICR3aWR0aDogJHdpZHRoIC8gMjtcbiAgICAkaGVpZ2h0OiBpZihsZW5ndGgoJHNpemUpID4gMSwgJGhlaWdodCwgJGhlaWdodC8yKTtcblxuICAgIEBpZiAkZGlyZWN0aW9uID09IHVwIHtcbiAgICAgIGJvcmRlci1ib3R0b206ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItbGVmdDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXJpZ2h0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IHJpZ2h0IHtcbiAgICAgIGJvcmRlci1ib3R0b206ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1sZWZ0OiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXRvcDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBkb3duIHtcbiAgICAgIGJvcmRlci1sZWZ0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci10b3A6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IGxlZnQge1xuICAgICAgYm9yZGVyLWJvdHRvbTogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXJpZ2h0OiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXRvcDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH1cbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSB1cC1yaWdodCkgb3IgKCRkaXJlY3Rpb24gPT0gdXAtbGVmdCkge1xuICAgIGJvcmRlci10b3A6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG5cbiAgICBAaWYgJGRpcmVjdGlvbiA9PSB1cC1yaWdodCB7XG4gICAgICBib3JkZXItbGVmdDogICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gdXAtbGVmdCB7XG4gICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9XG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gZG93bi1yaWdodCkgb3IgKCRkaXJlY3Rpb24gPT0gZG93bi1sZWZ0KSB7XG4gICAgYm9yZGVyLWJvdHRvbTogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcblxuICAgIEBpZiAkZGlyZWN0aW9uID09IGRvd24tcmlnaHQge1xuICAgICAgYm9yZGVyLWxlZnQ6ICAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IGRvd24tbGVmdCB7XG4gICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9XG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gaW5zZXQtdXApIHtcbiAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRmb3JlZ3JvdW5kLWNvbG9yO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAkaGVpZ2h0ICR3aWR0aDtcbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBpbnNldC1kb3duKSB7XG4gICAgYm9yZGVyLWNvbG9yOiAkZm9yZWdyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogJGhlaWdodCAkd2lkdGg7XG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gaW5zZXQtcmlnaHQpIHtcbiAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRmb3JlZ3JvdW5kLWNvbG9yO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAkd2lkdGggJGhlaWdodDtcbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBpbnNldC1sZWZ0KSB7XG4gICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvciAkZm9yZWdyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogJHdpZHRoICRoZWlnaHQ7XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGFuIGVhc3kgd2F5IHRvIGNoYW5nZSB0aGUgYHdvcmQtd3JhcGAgcHJvcGVydHkuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHdyYXAgW2JyZWFrLXdvcmRdXG4vLy8gICBWYWx1ZSBmb3IgdGhlIGB3b3JkLWJyZWFrYCBwcm9wZXJ0eS5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLndyYXBwZXIge1xuLy8vICAgICBAaW5jbHVkZSB3b3JkLXdyYXAoYnJlYWstd29yZCk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAud3JhcHBlciB7XG4vLy8gICAgIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG4vLy8gICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcbi8vLyAgICAgd29yZC13cmFwOiBicmVhay13b3JkO1xuLy8vICAgfVxuXG5AbWl4aW4gd29yZC13cmFwKCR3cmFwOiBicmVhay13b3JkKSB7XG4gIG92ZXJmbG93LXdyYXA6ICR3cmFwO1xuICB3b3JkLXdyYXA6ICR3cmFwO1xuXG4gIEBpZiAkd3JhcCA9PSBicmVhay13b3JkIHtcbiAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XG4gIH0gQGVsc2Uge1xuICAgIHdvcmQtYnJlYWs6ICR3cmFwO1xuICB9XG59XG4iLCIvLyBUaGUgZm9sbG93aW5nIGZlYXR1cmVzIGhhdmUgYmVlbiBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgTUFKT1IgdmVyc2lvbiByZWxlYXNlXG5cbkBtaXhpbiBpbmxpbmUtYmxvY2sge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgQHdhcm4gXCJUaGUgaW5saW5lLWJsb2NrIG1peGluIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIHJlbGVhc2VcIjtcbn1cblxuQG1peGluIGJ1dHRvbiAoJHN0eWxlOiBzaW1wbGUsICRiYXNlLWNvbG9yOiAjNDI5NGYwLCAkdGV4dC1zaXplOiBpbmhlcml0LCAkcGFkZGluZzogN3B4IDE4cHgpIHtcblxuICBAaWYgdHlwZS1vZigkc3R5bGUpID09IHN0cmluZyBhbmQgdHlwZS1vZigkYmFzZS1jb2xvcikgPT0gY29sb3Ige1xuICAgIEBpbmNsdWRlIGJ1dHRvbnN0eWxlKCRzdHlsZSwgJGJhc2UtY29sb3IsICR0ZXh0LXNpemUsICRwYWRkaW5nKTtcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCRzdHlsZSkgPT0gc3RyaW5nIGFuZCB0eXBlLW9mKCRiYXNlLWNvbG9yKSA9PSBudW1iZXIge1xuICAgICRwYWRkaW5nOiAkdGV4dC1zaXplO1xuICAgICR0ZXh0LXNpemU6ICRiYXNlLWNvbG9yO1xuICAgICRiYXNlLWNvbG9yOiAjNDI5NGYwO1xuXG4gICAgQGlmICRwYWRkaW5nID09IGluaGVyaXQge1xuICAgICAgJHBhZGRpbmc6IDdweCAxOHB4O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJ1dHRvbnN0eWxlKCRzdHlsZSwgJGJhc2UtY29sb3IsICR0ZXh0LXNpemUsICRwYWRkaW5nKTtcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCRzdHlsZSkgPT0gY29sb3IgYW5kIHR5cGUtb2YoJGJhc2UtY29sb3IpID09IGNvbG9yIHtcbiAgICAkYmFzZS1jb2xvcjogJHN0eWxlO1xuICAgICRzdHlsZTogc2ltcGxlO1xuICAgIEBpbmNsdWRlIGJ1dHRvbnN0eWxlKCRzdHlsZSwgJGJhc2UtY29sb3IsICR0ZXh0LXNpemUsICRwYWRkaW5nKTtcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCRzdHlsZSkgPT0gY29sb3IgYW5kIHR5cGUtb2YoJGJhc2UtY29sb3IpID09IG51bWJlciB7XG4gICAgJHBhZGRpbmc6ICR0ZXh0LXNpemU7XG4gICAgJHRleHQtc2l6ZTogJGJhc2UtY29sb3I7XG4gICAgJGJhc2UtY29sb3I6ICRzdHlsZTtcbiAgICAkc3R5bGU6IHNpbXBsZTtcblxuICAgIEBpZiAkcGFkZGluZyA9PSBpbmhlcml0IHtcbiAgICAgICRwYWRkaW5nOiA3cHggMThweDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBidXR0b25zdHlsZSgkc3R5bGUsICRiYXNlLWNvbG9yLCAkdGV4dC1zaXplLCAkcGFkZGluZyk7XG4gIH1cblxuICBAaWYgdHlwZS1vZigkc3R5bGUpID09IG51bWJlciB7XG4gICAgJHBhZGRpbmc6ICRiYXNlLWNvbG9yO1xuICAgICR0ZXh0LXNpemU6ICRzdHlsZTtcbiAgICAkYmFzZS1jb2xvcjogIzQyOTRmMDtcbiAgICAkc3R5bGU6IHNpbXBsZTtcblxuICAgIEBpZiAkcGFkZGluZyA9PSAjNDI5NGYwIHtcbiAgICAgICRwYWRkaW5nOiA3cHggMThweDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBidXR0b25zdHlsZSgkc3R5bGUsICRiYXNlLWNvbG9yLCAkdGV4dC1zaXplLCAkcGFkZGluZyk7XG4gIH1cblxuICAmOmRpc2FibGVkIHtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIG9wYWNpdHk6IDAuNTtcbiAgfVxuXG4gIEB3YXJuIFwiVGhlIGJ1dHRvbiBtaXhpbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiByZWxlYXNlXCI7XG59XG5cbi8vIFNlbGVjdG9yIFN0eWxlIEJ1dHRvblxuQG1peGluIGJ1dHRvbnN0eWxlKCR0eXBlLCAkYi1jb2xvciwgJHQtc2l6ZSwgJHBhZCkge1xuICAvLyBHcmF5c2NhbGUgYnV0dG9uXG4gIEBpZiAkdHlwZSA9PSBzaW1wbGUgYW5kICRiLWNvbG9yID09IGdyYXlzY2FsZSgkYi1jb2xvcikge1xuICAgIEBpbmNsdWRlIHNpbXBsZSgkYi1jb2xvciwgdHJ1ZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cblxuICBAaWYgJHR5cGUgPT0gc2hpbnkgYW5kICRiLWNvbG9yID09IGdyYXlzY2FsZSgkYi1jb2xvcikge1xuICAgIEBpbmNsdWRlIHNoaW55KCRiLWNvbG9yLCB0cnVlLCAkdC1zaXplLCAkcGFkKTtcbiAgfVxuXG4gIEBpZiAkdHlwZSA9PSBwaWxsIGFuZCAkYi1jb2xvciA9PSBncmF5c2NhbGUoJGItY29sb3IpIHtcbiAgICBAaW5jbHVkZSBwaWxsKCRiLWNvbG9yLCB0cnVlLCAkdC1zaXplLCAkcGFkKTtcbiAgfVxuXG4gIEBpZiAkdHlwZSA9PSBmbGF0IGFuZCAkYi1jb2xvciA9PSBncmF5c2NhbGUoJGItY29sb3IpIHtcbiAgICBAaW5jbHVkZSBmbGF0KCRiLWNvbG9yLCB0cnVlLCAkdC1zaXplLCAkcGFkKTtcbiAgfVxuXG4gIC8vIENvbG9yZWQgYnV0dG9uXG4gIEBpZiAkdHlwZSA9PSBzaW1wbGUge1xuICAgIEBpbmNsdWRlIHNpbXBsZSgkYi1jb2xvciwgZmFsc2UsICR0LXNpemUsICRwYWQpO1xuICB9XG5cbiAgQGVsc2UgaWYgJHR5cGUgPT0gc2hpbnkge1xuICAgIEBpbmNsdWRlIHNoaW55KCRiLWNvbG9yLCBmYWxzZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cblxuICBAZWxzZSBpZiAkdHlwZSA9PSBwaWxsIHtcbiAgICBAaW5jbHVkZSBwaWxsKCRiLWNvbG9yLCBmYWxzZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cblxuICBAZWxzZSBpZiAkdHlwZSA9PSBmbGF0IHtcbiAgICBAaW5jbHVkZSBmbGF0KCRiLWNvbG9yLCBmYWxzZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cbn1cblxuLy8gU2ltcGxlIEJ1dHRvblxuQG1peGluIHNpbXBsZSgkYmFzZS1jb2xvciwgJGdyYXlzY2FsZTogZmFsc2UsICR0ZXh0c2l6ZTogaW5oZXJpdCwgJHBhZGRpbmc6IDdweCAxOHB4KSB7XG4gICRjb2xvcjogICAgICAgICBoc2woMCwgMCwgMTAwJSk7XG4gICRib3JkZXI6ICAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAgOSUsICAkbGlnaHRuZXNzOiAtMTQlKTtcbiAgJGluc2V0LXNoYWRvdzogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IC04JSwgICRsaWdodG5lc3M6ICAxNSUpO1xuICAkc3RvcC1ncmFkaWVudDogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogIDklLCAgJGxpZ2h0bmVzczogLTExJSk7XG4gICR0ZXh0LXNoYWRvdzogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAgMTUlLCAkbGlnaHRuZXNzOiAtMTglKTtcblxuICBAaWYgaXMtbGlnaHQoJGJhc2UtY29sb3IpIHtcbiAgICAkY29sb3I6ICAgICAgIGhzbCgwLCAwLCAyMCUpO1xuICAgICR0ZXh0LXNoYWRvdzogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogMTAlLCAkbGlnaHRuZXNzOiA0JSk7XG4gIH1cblxuICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAkYm9yZGVyOiAgICAgICAgZ3JheXNjYWxlKCRib3JkZXIpO1xuICAgICRpbnNldC1zaGFkb3c6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdyk7XG4gICAgJHN0b3AtZ3JhZGllbnQ6IGdyYXlzY2FsZSgkc3RvcC1ncmFkaWVudCk7XG4gICAgJHRleHQtc2hhZG93OiAgIGdyYXlzY2FsZSgkdGV4dC1zaGFkb3cpO1xuICB9XG5cbiAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIDAgJGluc2V0LXNoYWRvdztcbiAgY29sb3I6ICRjb2xvcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6ICR0ZXh0c2l6ZTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCAoJGJhc2UtY29sb3IsICRzdG9wLWdyYWRpZW50KTtcbiAgcGFkZGluZzogJHBhZGRpbmc7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC1zaGFkb3c6IDAgMXB4IDAgJHRleHQtc2hhZG93O1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuXG4gICY6aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICAgICRiYXNlLWNvbG9yLWhvdmVyOiAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAtNCUsICRsaWdodG5lc3M6IC01JSk7XG4gICAgJGluc2V0LXNoYWRvdy1ob3ZlcjogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IC03JSwgJGxpZ2h0bmVzczogIDUlKTtcbiAgICAkc3RvcC1ncmFkaWVudC1ob3ZlcjogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogIDglLCAkbGlnaHRuZXNzOiAtMTQlKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGJhc2UtY29sb3ItaG92ZXI6ICAgIGdyYXlzY2FsZSgkYmFzZS1jb2xvci1ob3Zlcik7XG4gICAgICAkaW5zZXQtc2hhZG93LWhvdmVyOiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3ctaG92ZXIpO1xuICAgICAgJHN0b3AtZ3JhZGllbnQtaG92ZXI6IGdyYXlzY2FsZSgkc3RvcC1ncmFkaWVudC1ob3Zlcik7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50ICgkYmFzZS1jb2xvci1ob3ZlciwgJHN0b3AtZ3JhZGllbnQtaG92ZXIpO1xuXG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCAwICRpbnNldC1zaGFkb3ctaG92ZXI7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG5cbiAgJjphY3RpdmU6bm90KDpkaXNhYmxlZCksXG4gICY6Zm9jdXM6bm90KDpkaXNhYmxlZCkge1xuICAgICRib3JkZXItYWN0aXZlOiAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiA5JSwgJGxpZ2h0bmVzczogLTE0JSk7XG4gICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDclLCAkbGlnaHRuZXNzOiAtMTclKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGJvcmRlci1hY3RpdmU6ICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyLWFjdGl2ZSk7XG4gICAgICAkaW5zZXQtc2hhZG93LWFjdGl2ZTogZ3JheXNjYWxlKCRpbnNldC1zaGFkb3ctYWN0aXZlKTtcbiAgICB9XG5cbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLWFjdGl2ZTtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgOHB4IDRweCAkaW5zZXQtc2hhZG93LWFjdGl2ZSwgaW5zZXQgMCAwIDhweCA0cHggJGluc2V0LXNoYWRvdy1hY3RpdmU7XG4gIH1cbn1cblxuLy8gU2hpbnkgQnV0dG9uXG5AbWl4aW4gc2hpbnkoJGJhc2UtY29sb3IsICRncmF5c2NhbGU6IGZhbHNlLCAkdGV4dHNpemU6IGluaGVyaXQsICRwYWRkaW5nOiA3cHggMThweCkge1xuICAkY29sb3I6ICAgICAgICAgaHNsKDAsIDAsIDEwMCUpO1xuICAkYm9yZGVyOiAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtMTE3LCAkZ3JlZW46IC0xMTEsICRibHVlOiAtODEpO1xuICAkYm9yZGVyLWJvdHRvbTogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtMTI2LCAkZ3JlZW46IC0xMjcsICRibHVlOiAtMTIyKTtcbiAgJGZvdXJ0aC1zdG9wOiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTc5LCAgJGdyZWVuOiAtNzAsICAkYmx1ZTogLTQ2KTtcbiAgJGluc2V0LXNoYWRvdzogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogIDM3LCAgJGdyZWVuOiAgMjksICAkYmx1ZTogIDEyKTtcbiAgJHNlY29uZC1zdG9wOiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTU2LCAgJGdyZWVuOiAtNTAsICAkYmx1ZTogLTMzKTtcbiAgJHRleHQtc2hhZG93OiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTE0MCwgJGdyZWVuOiAtMTQxLCAkYmx1ZTogLTExNCk7XG4gICR0aGlyZC1zdG9wOiAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC04NiwgICRncmVlbjogLTc1LCAgJGJsdWU6IC00OCk7XG5cbiAgQGlmIGlzLWxpZ2h0KCRiYXNlLWNvbG9yKSB7XG4gICAgJGNvbG9yOiAgICAgICBoc2woMCwgMCwgMjAlKTtcbiAgICAkdGV4dC1zaGFkb3c6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDEwJSwgJGxpZ2h0bmVzczogNCUpO1xuICB9XG5cbiAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgJGJvcmRlcjogICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyKTtcbiAgICAkYm9yZGVyLWJvdHRvbTogZ3JheXNjYWxlKCRib3JkZXItYm90dG9tKTtcbiAgICAkZm91cnRoLXN0b3A6ICAgZ3JheXNjYWxlKCRmb3VydGgtc3RvcCk7XG4gICAgJGluc2V0LXNoYWRvdzogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93KTtcbiAgICAkc2Vjb25kLXN0b3A6ICAgZ3JheXNjYWxlKCRzZWNvbmQtc3RvcCk7XG4gICAgJHRleHQtc2hhZG93OiAgIGdyYXlzY2FsZSgkdGV4dC1zaGFkb3cpO1xuICAgICR0aGlyZC1zdG9wOiAgICBncmF5c2NhbGUoJHRoaXJkLXN0b3ApO1xuICB9XG5cbiAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50KHRvcCwgJGJhc2UtY29sb3IgMCUsICRzZWNvbmQtc3RvcCA1MCUsICR0aGlyZC1zdG9wIDUwJSwgJGZvdXJ0aC1zdG9wIDEwMCUpO1xuXG4gIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXI7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkYm9yZGVyLWJvdHRvbTtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIDAgJGluc2V0LXNoYWRvdztcbiAgY29sb3I6ICRjb2xvcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6ICR0ZXh0c2l6ZTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC1zaGFkb3c6IDAgLTFweCAxcHggJHRleHQtc2hhZG93O1xuXG4gICY6aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICAgICRmaXJzdC1zdG9wLWhvdmVyOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtMTMsICRncmVlbjogLTE1LCAkYmx1ZTogLTE4KTtcbiAgICAkc2Vjb25kLXN0b3AtaG92ZXI6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTY2LCAkZ3JlZW46IC02MiwgJGJsdWU6IC01MSk7XG4gICAgJHRoaXJkLXN0b3AtaG92ZXI6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC05MywgJGdyZWVuOiAtODUsICRibHVlOiAtNjYpO1xuICAgICRmb3VydGgtc3RvcC1ob3ZlcjogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtODYsICRncmVlbjogLTgwLCAkYmx1ZTogLTYzKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGZpcnN0LXN0b3AtaG92ZXI6ICBncmF5c2NhbGUoJGZpcnN0LXN0b3AtaG92ZXIpO1xuICAgICAgJHNlY29uZC1zdG9wLWhvdmVyOiBncmF5c2NhbGUoJHNlY29uZC1zdG9wLWhvdmVyKTtcbiAgICAgICR0aGlyZC1zdG9wLWhvdmVyOiAgZ3JheXNjYWxlKCR0aGlyZC1zdG9wLWhvdmVyKTtcbiAgICAgICRmb3VydGgtc3RvcC1ob3ZlcjogZ3JheXNjYWxlKCRmb3VydGgtc3RvcC1ob3Zlcik7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50KHRvcCwgJGZpcnN0LXN0b3AtaG92ZXIgIDAlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzZWNvbmQtc3RvcC1ob3ZlciA1MCUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXJkLXN0b3AtaG92ZXIgIDUwJSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZm91cnRoLXN0b3AtaG92ZXIgMTAwJSk7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG5cbiAgJjphY3RpdmU6bm90KDpkaXNhYmxlZCksXG4gICY6Zm9jdXM6bm90KDpkaXNhYmxlZCkge1xuICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC0xMTEsICRncmVlbjogLTExNiwgJGJsdWU6IC0xMjIpO1xuXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgICAkaW5zZXQtc2hhZG93LWFjdGl2ZTogZ3JheXNjYWxlKCRpbnNldC1zaGFkb3ctYWN0aXZlKTtcbiAgICB9XG5cbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMjBweCAwICRpbnNldC1zaGFkb3ctYWN0aXZlO1xuICB9XG59XG5cbi8vIFBpbGwgQnV0dG9uXG5AbWl4aW4gcGlsbCgkYmFzZS1jb2xvciwgJGdyYXlzY2FsZTogZmFsc2UsICR0ZXh0c2l6ZTogaW5oZXJpdCwgJHBhZGRpbmc6IDdweCAxOHB4KSB7XG4gICRjb2xvcjogICAgICAgICBoc2woMCwgMCwgMTAwJSk7XG4gICRib3JkZXItYm90dG9tOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA4LCAkc2F0dXJhdGlvbjogLTExJSwgJGxpZ2h0bmVzczogLTI2JSk7XG4gICRib3JkZXItc2lkZXM6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA0LCAkc2F0dXJhdGlvbjogLTIxJSwgJGxpZ2h0bmVzczogLTIxJSk7XG4gICRib3JkZXItdG9wOiAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IC0xLCAkc2F0dXJhdGlvbjogLTMwJSwgJGxpZ2h0bmVzczogLTE1JSk7XG4gICRpbnNldC1zaGFkb3c6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IC0xLCAkc2F0dXJhdGlvbjogLTElLCAgJGxpZ2h0bmVzczogIDclKTtcbiAgJHN0b3AtZ3JhZGllbnQ6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDgsICRzYXR1cmF0aW9uOiAgMTQlLCAkbGlnaHRuZXNzOiAtMTAlKTtcbiAgJHRleHQtc2hhZG93OiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDUsICRzYXR1cmF0aW9uOiAtMTklLCAkbGlnaHRuZXNzOiAtMTUlKTtcblxuICBAaWYgaXMtbGlnaHQoJGJhc2UtY29sb3IpIHtcbiAgICAkY29sb3I6ICAgICAgIGhzbCgwLCAwLCAyMCUpO1xuICAgICR0ZXh0LXNoYWRvdzogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogMTAlLCAkbGlnaHRuZXNzOiA0JSk7XG4gIH1cblxuICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAkYm9yZGVyLWJvdHRvbTogZ3JheXNjYWxlKCRib3JkZXItYm90dG9tKTtcbiAgICAkYm9yZGVyLXNpZGVzOiAgZ3JheXNjYWxlKCRib3JkZXItc2lkZXMpO1xuICAgICRib3JkZXItdG9wOiAgICBncmF5c2NhbGUoJGJvcmRlci10b3ApO1xuICAgICRpbnNldC1zaGFkb3c6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdyk7XG4gICAgJHN0b3AtZ3JhZGllbnQ6IGdyYXlzY2FsZSgkc3RvcC1ncmFkaWVudCk7XG4gICAgJHRleHQtc2hhZG93OiAgIGdyYXlzY2FsZSgkdGV4dC1zaGFkb3cpO1xuICB9XG5cbiAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci10b3A7XG4gIGJvcmRlci1jb2xvcjogJGJvcmRlci10b3AgJGJvcmRlci1zaWRlcyAkYm9yZGVyLWJvdHRvbTtcbiAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCAwICRpbnNldC1zaGFkb3c7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAkdGV4dHNpemU7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQgKCRiYXNlLWNvbG9yLCAkc3RvcC1ncmFkaWVudCk7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC1zaGFkb3c6IDAgLTFweCAxcHggJHRleHQtc2hhZG93O1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuXG4gICY6aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICAgICRiYXNlLWNvbG9yLWhvdmVyOiAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGlnaHRuZXNzOiAtNC41JSk7XG4gICAgJGJvcmRlci1ib3R0b206ICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDgsICRzYXR1cmF0aW9uOiAgMTMuNSUsICRsaWdodG5lc3M6IC0zMiUpO1xuICAgICRib3JkZXItc2lkZXM6ICAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA0LCAkc2F0dXJhdGlvbjogLTIlLCAgICAkbGlnaHRuZXNzOiAtMjclKTtcbiAgICAkYm9yZGVyLXRvcDogICAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAtMSwgJHNhdHVyYXRpb246IC0xNyUsICAgJGxpZ2h0bmVzczogLTIxJSk7XG4gICAgJGluc2V0LXNoYWRvdy1ob3ZlcjogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgICAgICAgICAgICRzYXR1cmF0aW9uOiAtMSUsICAgICRsaWdodG5lc3M6ICAzJSk7XG4gICAgJHN0b3AtZ3JhZGllbnQtaG92ZXI6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDgsICRzYXR1cmF0aW9uOiAtNCUsICAgICRsaWdodG5lc3M6IC0xNS41JSk7XG4gICAgJHRleHQtc2hhZG93LWhvdmVyOiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDUsICRzYXR1cmF0aW9uOiAtNSUsICAgICRsaWdodG5lc3M6IC0yMiUpO1xuXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgICAkYmFzZS1jb2xvci1ob3ZlcjogICAgZ3JheXNjYWxlKCRiYXNlLWNvbG9yLWhvdmVyKTtcbiAgICAgICRib3JkZXItYm90dG9tOiAgICAgICBncmF5c2NhbGUoJGJvcmRlci1ib3R0b20pO1xuICAgICAgJGJvcmRlci1zaWRlczogICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyLXNpZGVzKTtcbiAgICAgICRib3JkZXItdG9wOiAgICAgICAgICBncmF5c2NhbGUoJGJvcmRlci10b3ApO1xuICAgICAgJGluc2V0LXNoYWRvdy1ob3ZlcjogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93LWhvdmVyKTtcbiAgICAgICRzdG9wLWdyYWRpZW50LWhvdmVyOiBncmF5c2NhbGUoJHN0b3AtZ3JhZGllbnQtaG92ZXIpO1xuICAgICAgJHRleHQtc2hhZG93LWhvdmVyOiAgIGdyYXlzY2FsZSgkdGV4dC1zaGFkb3ctaG92ZXIpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCAoJGJhc2UtY29sb3ItaG92ZXIsICRzdG9wLWdyYWRpZW50LWhvdmVyKTtcblxuICAgIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci10b3A7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLXRvcCAkYm9yZGVyLXNpZGVzICRib3JkZXItYm90dG9tO1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgMCAkaW5zZXQtc2hhZG93LWhvdmVyO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0ZXh0LXNoYWRvdzogMCAtMXB4IDFweCAkdGV4dC1zaGFkb3ctaG92ZXI7XG4gIH1cblxuICAmOmFjdGl2ZTpub3QoOmRpc2FibGVkKSxcbiAgJjpmb2N1czpub3QoOmRpc2FibGVkKSB7XG4gICAgJGFjdGl2ZS1jb2xvcjogICAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IDQsICAkc2F0dXJhdGlvbjogLTEyJSwgICRsaWdodG5lc3M6IC0xMCUpO1xuICAgICRib3JkZXItYWN0aXZlOiAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiA2LCAgJHNhdHVyYXRpb246IC0yLjUlLCAkbGlnaHRuZXNzOiAtMzAlKTtcbiAgICAkYm9yZGVyLWJvdHRvbS1hY3RpdmU6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogMTEsICRzYXR1cmF0aW9uOiAgNiUsICAgJGxpZ2h0bmVzczogLTMxJSk7XG4gICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IDksICAkc2F0dXJhdGlvbjogIDIlLCAgICRsaWdodG5lc3M6IC0yMS41JSk7XG4gICAgJHRleHQtc2hhZG93LWFjdGl2ZTogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IDUsICAkc2F0dXJhdGlvbjogLTEyJSwgICRsaWdodG5lc3M6IC0yMS41JSk7XG5cbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRhY3RpdmUtY29sb3I6ICAgICAgICAgZ3JheXNjYWxlKCRhY3RpdmUtY29sb3IpO1xuICAgICAgJGJvcmRlci1hY3RpdmU6ICAgICAgICBncmF5c2NhbGUoJGJvcmRlci1hY3RpdmUpO1xuICAgICAgJGJvcmRlci1ib3R0b20tYWN0aXZlOiBncmF5c2NhbGUoJGJvcmRlci1ib3R0b20tYWN0aXZlKTtcbiAgICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3ctYWN0aXZlKTtcbiAgICAgICR0ZXh0LXNoYWRvdy1hY3RpdmU6ICAgZ3JheXNjYWxlKCR0ZXh0LXNoYWRvdy1hY3RpdmUpO1xuICAgIH1cblxuICAgIGJhY2tncm91bmQ6ICRhY3RpdmUtY29sb3I7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci1hY3RpdmU7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRib3JkZXItYm90dG9tLWFjdGl2ZTtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgNnB4IDNweCAkaW5zZXQtc2hhZG93LWFjdGl2ZTtcbiAgICB0ZXh0LXNoYWRvdzogMCAtMXB4IDFweCAkdGV4dC1zaGFkb3ctYWN0aXZlO1xuICB9XG59XG5cbi8vIEZsYXQgQnV0dG9uXG5AbWl4aW4gZmxhdCgkYmFzZS1jb2xvciwgJGdyYXlzY2FsZTogZmFsc2UsICR0ZXh0c2l6ZTogaW5oZXJpdCwgJHBhZGRpbmc6IDdweCAxOHB4KSB7XG4gICRjb2xvcjogICAgICAgICBoc2woMCwgMCwgMTAwJSk7XG5cbiAgQGlmIGlzLWxpZ2h0KCRiYXNlLWNvbG9yKSB7XG4gICAgJGNvbG9yOiAgICAgICBoc2woMCwgMCwgMjAlKTtcbiAgfVxuXG4gIGJhY2tncm91bmQtY29sb3I6ICRiYXNlLWNvbG9yO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGJvcmRlcjogMDtcbiAgY29sb3I6ICRjb2xvcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6ICR0ZXh0c2l6ZTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG5cbiAgJjpob3Zlcjpub3QoOmRpc2FibGVkKXtcbiAgICAkYmFzZS1jb2xvci1ob3ZlcjogICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogNCUsICRsaWdodG5lc3M6IDUlKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGJhc2UtY29sb3ItaG92ZXI6IGdyYXlzY2FsZSgkYmFzZS1jb2xvci1ob3Zlcik7XG4gICAgfVxuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhc2UtY29sb3ItaG92ZXI7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG5cbiAgJjphY3RpdmU6bm90KDpkaXNhYmxlZCksXG4gICY6Zm9jdXM6bm90KDpkaXNhYmxlZCkge1xuICAgICRiYXNlLWNvbG9yLWFjdGl2ZTogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogLTQlLCAkbGlnaHRuZXNzOiAtNSUpO1xuXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgICAkYmFzZS1jb2xvci1hY3RpdmU6IGdyYXlzY2FsZSgkYmFzZS1jb2xvci1hY3RpdmUpO1xuICAgIH1cblxuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYXNlLWNvbG9yLWFjdGl2ZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbn1cblxuLy8gRmxleGlibGUgZ3JpZFxuQGZ1bmN0aW9uIGZsZXgtZ3JpZCgkY29sdW1ucywgJGNvbnRhaW5lci1jb2x1bW5zOiAkZmctbWF4LWNvbHVtbnMpIHtcbiAgJHdpZHRoOiAkY29sdW1ucyAqICRmZy1jb2x1bW4gKyAoJGNvbHVtbnMgLSAxKSAqICRmZy1ndXR0ZXI7XG4gICRjb250YWluZXItd2lkdGg6ICRjb250YWluZXItY29sdW1ucyAqICRmZy1jb2x1bW4gKyAoJGNvbnRhaW5lci1jb2x1bW5zIC0gMSkgKiAkZmctZ3V0dGVyO1xuICBAcmV0dXJuIHBlcmNlbnRhZ2UoJHdpZHRoIC8gJGNvbnRhaW5lci13aWR0aCk7XG5cbiAgQHdhcm4gXCJUaGUgZmxleC1ncmlkIGZ1bmN0aW9uIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIHJlbGVhc2VcIjtcbn1cblxuLy8gRmxleGlibGUgZ3V0dGVyXG5AZnVuY3Rpb24gZmxleC1ndXR0ZXIoJGNvbnRhaW5lci1jb2x1bW5zOiAkZmctbWF4LWNvbHVtbnMsICRndXR0ZXI6ICRmZy1ndXR0ZXIpIHtcbiAgJGNvbnRhaW5lci13aWR0aDogJGNvbnRhaW5lci1jb2x1bW5zICogJGZnLWNvbHVtbiArICgkY29udGFpbmVyLWNvbHVtbnMgLSAxKSAqICRmZy1ndXR0ZXI7XG4gIEByZXR1cm4gcGVyY2VudGFnZSgkZ3V0dGVyIC8gJGNvbnRhaW5lci13aWR0aCk7XG5cbiAgQHdhcm4gXCJUaGUgZmxleC1ndXR0ZXIgZnVuY3Rpb24gaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gcmVsZWFzZVwiO1xufVxuXG5AZnVuY3Rpb24gZ3JpZC13aWR0aCgkbikge1xuICBAcmV0dXJuICRuICogJGd3LWNvbHVtbiArICgkbiAtIDEpICogJGd3LWd1dHRlcjtcblxuICBAd2FybiBcIlRoZSBncmlkLXdpZHRoIGZ1bmN0aW9uIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIHJlbGVhc2VcIjtcbn1cblxuQGZ1bmN0aW9uIGdvbGRlbi1yYXRpbygkdmFsdWUsICRpbmNyZW1lbnQpIHtcbiAgQHJldHVybiBtb2R1bGFyLXNjYWxlKCRpbmNyZW1lbnQsICR2YWx1ZSwgJHJhdGlvOiAkZ29sZGVuKTtcblxuICBAd2FybiBcIlRoZSBnb2xkZW4tcmF0aW8gZnVuY3Rpb24gaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gcmVsZWFzZS4gUGxlYXNlIHVzZSB0aGUgbW9kdWxhci1zY2FsZSBmdW5jdGlvbiwgaW5zdGVhZC5cIjtcbn1cblxuQG1peGluIGJveC1zaXppbmcoJGJveCkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtc2l6aW5nLCAkYm94LCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIEB3YXJuIFwiVGhlIGJveC1zaXppbmcgbWl4aW4gaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gcmVsZWFzZS4gVGhpcyBwcm9wZXJ0eSBjYW4gbm93IGJlIHVzZWQgdW4tcHJlZml4ZWQuXCI7XG59XG4iLCIiLCIkd2hpdGU6ICNmZmY7XG4kYmxhY2s6ICMwMDA7XG4kZ3JleTogbGlnaHRlbigjOTVBNUE2LCAyOCk7XG5cbiRkYXJrLWJsdWU6ICMyMzQ5NTc7XG4kZGFyay1ibHVlLWxpZ2h0OiBkYXJrZW4oIzM0NDk1RSwgMik7XG4kZGFyay1ibHVlLWRhcms6IGRhcmtlbigkZGFyay1ibHVlLCAxMCk7XG4kcHVycGxlOiAjMjkxMDNmO1xuJHRlYWw6ICM5YmYwZTE7XG4kYmx1ZTogIzM0OThEQjtcbiRsaWdodC1ncmV5OiAjYjJiMmIyO1xuJGdyZWVuOiAjMmVjYzcxO1xuJHJlZDogI0Y2MjQ1OTtcbiRwdXJwLWJsdWU6IGRhcmtlbigjNzc5NWY4LCA1KTtcbiR5ZWxsb3c6ICNGMUM0MEY7XG5cbiRzbG93OiAuNXM7XG4kZmFzdDogLjI1cztcblxuJHNpdGUtd2lkdGg6IDEzMDBweDtcblxuJG1vYmlsZTogNzY4cHg7XG4kZGVza3RvcDogMTI1MHB4O1xuXG4kc2FuczogJ29wZW4tc2FucycsICdIZWx2ZXRpY2EnLCAnQXJpYWwnO1xuJGRpc3BsYXk6ICdhbGxlci1kaXNwbGF5JztcbiRzbGFiOiAncm9ib3RvLXNsYWInLCAnSGVsdmV0aWNhJywgJ0FyaWFsJztcbi8vICRzYW5zOiAnbWljLTMyLW5ldy1yb3VuZGVkLXdlYicsICdIZWx2ZXRpY2EnLCAnQXJpYWwnO1xuIiwiQG1peGluIGZhIHtcbiAgZm9udDpub3JtYWwgbm9ybWFsIG5vcm1hbCAxNHB4LzEgRm9udEF3ZXNvbWU7XG4gIGZvbnQtc2l6ZTppbmhlcml0O1xuICB0ZXh0LXJlbmRlcmluZzphdXRvO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOmFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzpncmF5c2NhbGU7ICBcbn1cblxuQG1peGluIGFudGlhbGlhc2VkIHtcbiAgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG59XG5cbkBtaXhpbiB3cmFwcGVyIHtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIHBhZGRpbmc6IDAgMTBweDtcbiAgbWF4LXdpZHRoOiAkc2l0ZS13aWR0aDtcbiAgbWFyZ2luOiAwcHggYXV0bztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIEBtZWRpYShtaW4td2lkdGg6ICRtb2JpbGUpIHtcbiAgICBwYWRkaW5nOiAwIDIwcHg7XG4gIH1cbn1cblxuQG1peGluIGJ1dHRvbiB7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiAxNXB4IDM1cHg7XG4gIG1pbi13aWR0aDogMTUwcHg7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGNvbG9yOiAjMjM0OTU3O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIC8vIGJhY2tncm91bmQ6ICRibGFjaztcbiAgYmFja2dyb3VuZDogIzk4ZjFlMTtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAvLyBtYXJnaW4tdG9wOiA4MHB4O1xuICBsZXR0ZXItc3BhY2luZzogMXB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1mYW1pbHk6ICRkaXNwbGF5O1xuICBmb250LXNpemU6IDE2cHg7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDNweCAycHggcmdiYSgwLDAsMCwuMTUpO1xuICBAaW5jbHVkZSB0cmFuc2Zvcm0oc2NhbGUoMSkgdHJhbnNsYXRlWigwcHgpKTtcbiAgQGluY2x1ZGUgdHJhbnNpdGlvbihib3gtc2hhZG93ICRmYXN0LCB0cmFuc2Zvcm0gJGZhc3QsIGJhY2tncm91bmQgJGZhc3QpO1xuXG4gICY6aG92ZXIge1xuICAgIGJveC1zaGFkb3c6IDAgMXB4IDFweCAxcHggcmdiYSgwLDAsMCwuNSk7XG4gICAgYmFja2dyb3VuZDogbGlnaHRlbigjOThmMWUxLCAyKTtcbiAgICBAaW5jbHVkZSB0cmFuc2Zvcm0oc2NhbGUoLjk4KSB0cmFuc2xhdGVaKDBweCkpO1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYm94LXNoYWRvdyAkZmFzdCwgdHJhbnNmb3JtICRmYXN0LCBiYWNrZ3JvdW5kICRmYXN0KTtcbiAgfSAgXG59XG5cbkBtaXhpbiBzdWJ0aXRsZSB7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtc2l6ZTogMjRweDtcbiAgZm9udC1mYW1pbHk6ICRkaXNwbGF5O1xuICBmb250LXdlaWdodDogNDAwO1xuICBjb2xvcjogJHdoaXRlO1xuICBtYXJnaW4tYm90dG9tOiA0MHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtc2hhZG93OiAwIDJweCAwcHggcmdiYSgwLDAsMCwuMik7XG4gIEBpbmNsdWRlIGFudGlhbGlhc2VkO1xuXG4gIEBtZWRpYShtaW4td2lkdGg6ICRtb2JpbGUpIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIGZvbnQtc2l6ZTogMjhweDtcbiAgICB0ZXh0LXNoYWRvdzogMCAzcHggMHB4IHJnYmEoMCwwLDAsLjIpO1xuICB9XG59XG5cbkBtaXhpbiBzdWJ0ZXh0IHtcbiAgY29sb3I6ICR3aGl0ZTtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBAbWVkaWEobWluLXdpZHRoOiAkbW9iaWxlKSB7XG4gICAgZm9udC1zaXplOiAyMXB4O1xuICB9XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luOiAwcHggYXV0bztcbiAgbWF4LXdpZHRoOiAxMTAwcHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIG1hcmdpbi1ib3R0b206IDYwcHg7XG4gIHRleHQtc2hhZG93OiAwIDJweCAwcHggcmdiYSgwLDAsMCwuMik7XG59XG5cbkBtaXhpbiBhcnRpc3RzIHtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgbGluZS1oZWlnaHQ6IDEuMztcbiAgY29sb3I6IGxpZ2h0ZW4oJGdyZXksIDEpO1xuXG4gID4gbGkge1xuICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICBtYXJnaW4tbGVmdDogNXB4O1xuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICAvLyBsZXR0ZXItc3BhY2luZzogLjc1cHg7XG4gICAgLy8gbGV0dGVyLXNwYWNpbmc6IDFweDtcblxuICAgICY6YWZ0ZXIge1xuICAgICAgY29udGVudDogJywnO1xuICAgIH1cblxuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWxlZnQ6IDBweDtcbiAgICB9XG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgJjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgfVxuICAgIH1cbiAgfSAgXG59XG5cbkBtaXhpbiBhcHAtc3RvcmUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLXRvcDogNDBweDtcbiAgbWFyZ2luLWJvdHRvbTogNDBweDtcblxuICBwIHtcbiAgICBtYXJnaW4tYm90dG9tOiAyNXB4ICFpbXBvcnRhbnQ7XG4gICAgb3BhY2l0eTogLjc1O1xuICB9XG5cbiAgaW1nIHtcbiAgICBtYXgtd2lkdGg6IDEzMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDBweCAhaW1wb3J0YW50O1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICBAbWVkaWEobWluLXdpZHRoOiAkbW9iaWxlKSB7ICAgICAgXG4gICAgICBtYXgtd2lkdGg6IDE1MHB4O1xuICAgIH1cbiAgfVxuXG4gIGE6Zmlyc3QtY2hpbGQge1xuICAgIG1hcmdpbi1yaWdodDogMTVweDtcbiAgfVxuXG4gIGEge1xuICAgIGltZyB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBib3gtc2hhZG93OiAwIDJweCAzcHggMnB4IHJnYmEoMCwwLDAsLjE1KTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybShzY2FsZSgxKSB0cmFuc2xhdGVaKDBweCkpO1xuICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihib3gtc2hhZG93ICRmYXN0LCB0cmFuc2Zvcm0gJGZhc3QsIGJhY2tncm91bmQgJGZhc3QpO1xuICAgIH1cblxuICAgICY6aG92ZXIgaW1nIHtcbiAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDFweCAxcHggcmdiYSgwLDAsMCwuNSk7XG4gICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0oc2NhbGUoLjk4KSB0cmFuc2xhdGVaKDBweCkpO1xuICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihib3gtc2hhZG93ICRmYXN0LCB0cmFuc2Zvcm0gJGZhc3QsIGJhY2tncm91bmQgJGZhc3QpO1xuICAgIH1cbiAgfVxufSIsIiosICo6YmVmb3JlLCAqOmFmdGVyIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuaW1nIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xufVxuXG4ubW9iaWxlIHtcbiAgQG1lZGlhKG1pbi13aWR0aDogJG1vYmlsZSkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLmRlc2t0b3Age1xuICBkaXNwbGF5OiBub25lO1xuICBAbWVkaWEobWluLXdpZHRoOiAkbW9iaWxlKSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cblxuaHRtbCB7XG4gIGhlaWdodDogMTAwJTtcbiAgQGluY2x1ZGUgYmFja2dyb3VuZChsaW5lYXItZ3JhZGllbnQoJGRhcmstYmx1ZSwgJHB1cnBsZSkpO1xufVxuXG5ib2R5IHtcbiAgQGluY2x1ZGUgYmFja2dyb3VuZChsaW5lYXItZ3JhZGllbnQoJGRhcmstYmx1ZSwgJHB1cnBsZSkpO1xuICBmb250LWZhbWlseTogJHNsYWI7XG4gIGNvbG9yOiAkd2hpdGU7XG4gIG1pbi1oZWlnaHQ6IDEwMCU7XG59XG5cbi5zZWN0aW9uIHtcbiAgLy8gZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nOiAzMHB4IDA7XG5cbiAgQG1lZGlhKG1pbi13aWR0aDogJG1vYmlsZSkge1xuICAgIHBhZGRpbmc6IDUwcHggMDtcbiAgfVxuICAvLyBAaW5jbHVkZSBiYWNrZ3JvdW5kKGxpbmVhci1ncmFkaWVudCgkZGFyay1ibHVlLCAkcHVycGxlKSk7XG5cbiAgJjpmaXJzdC1jaGlsZCB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgICB9XG4gIH1cblxuICAmLnJldmVyc2Uge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICY6YmVmb3JlIHtcbiAgICAgIC8vIEBpbmNsdWRlIHRyYW5zZm9ybShza2V3WSgtNGRlZykpO1xuICAgICAgLy8gQGluY2x1ZGUgYmFja2dyb3VuZChsaW5lYXItZ3JhZGllbnQoJHB1cnBsZSwgJGRhcmstYmx1ZSA4MCUpKTtcbiAgICB9XG4gIH1cbiAgXG4gICY6YmVmb3JlIHtcbiAgICAvLyBjb250ZW50OiBcIlwiO1xuICAgIC8vIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAvLyB6LWluZGV4OiAtMTtcbiAgICAvLyB3aWR0aDogMTAwJTtcbiAgICAvLyBoZWlnaHQ6IDEwMCU7XG4gICAgLy8gdG9wOiAwO1xuICAgIC8vIC8vIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKCR3aGl0ZSwgLjUpO1xuICAgIC8vIEBpbmNsdWRlIHRyYW5zZm9ybShza2V3WSg0ZGVnKSk7XG4gICAgLy8gQGluY2x1ZGUgYmFja2dyb3VuZChsaW5lYXItZ3JhZGllbnQoJGRhcmstYmx1ZSwgJHB1cnBsZSA4MCUpKTtcbiAgfVxuXG4gICY6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICB9XG59XG5cbmgxIHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC1zaXplOiAzMHB4O1xuICBmb250LWZhbWlseTogJGRpc3BsYXk7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIHRleHQtc2hhZG93OiAwIDJweCAwcHggcmdiYSgwLDAsMCwuNCk7XG4gIGRpc3BsYXk6IGJsb2NrO1xuXG4gIEBtZWRpYShtaW4td2lkdGg6ICRtb2JpbGUpIHtcbiAgICBmb250LXNpemU6IDU0cHg7XG4gICAgdGV4dC1zaGFkb3c6IDAgM3B4IDBweCByZ2JhKDAsMCwwLC40KTtcbiAgfVxuXG4gIGNvbG9yOiAkd2hpdGU7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG59XG5cbmgyIHtcbiAgY29sb3I6ICR3aGl0ZTtcbiAgZm9udC1zaXplOiAyNHB4O1xuICBsaW5lLWhlaWdodDogMS4zO1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuXG4gIEBtZWRpYShtaW4td2lkdGg6ICRtb2JpbGUpIHtcbiAgICBmb250LXNpemU6IDMycHg7XG4gIH1cbn1cblxuaDIucHJlaGVhZCB7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgZm9udC1mYW1pbHk6ICRzYW5zO1xuICBmb250LXdlaWdodDogNjAwO1xuICB0ZXh0LXNoYWRvdzogMCAycHggMHB4IHJnYmEoMCwwLDAsLjUpO1xuICBtYXJnaW4tYm90dG9tOiAwcHg7XG59XG5cbmgzLnN1YnRpdGxlIHtcbiAgQGluY2x1ZGUgc3VidGl0bGU7XG5cbiAgJi5sYXJnZSB7XG4gICAgZm9udC1zaXplOiAyOHB4O1xuICAgIEBtZWRpYShtaW4td2lkdGg6ICRtb2JpbGUpIHtcbiAgICAgIGZvbnQtc2l6ZTogNDBweDtcbiAgICB9XG4gIH1cbn1cblxucCwgbGkge1xuICBmb250LXNpemU6IDE2cHg7XG4gIEBtZWRpYShtaW4td2lkdGg6ICRtb2JpbGUpIHtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gIH1cbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cblxucCB7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIG1hcmdpbi1ib3R0b206IDI1cHg7XG4gIGZvbnQtZmFtaWx5OiAkc2FucztcbiAgY29sb3I6ICRncmV5O1xuICB0ZXh0LXNoYWRvdzogMCAycHggMXB4IHJnYmEoMCwwLDAsLjUpO1xuXG4gIHN0cm9uZyB7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgfVxufVxuXG5saSwgZGwsIGR0LCBkZCB7XG4gIGZvbnQtZmFtaWx5OiAkc2FucztcbiAgZm9udC13ZWlnaHQ6IDQwMDtcblxuICBhIHtcbiAgICBjb2xvcjogJGdyZXk7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgfVxuICB9XG59XG5cbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbmEge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIEBpbmNsdWRlIHRyYW5zaXRpb24oY29sb3IgJHNsb3cpO1xufVxuXG4uYnV0dG9uIHtcbiAgQGluY2x1ZGUgYnV0dG9uO1xufVxuXG4uYnV0dG9uLm1hYyB7XG4gICY6YmVmb3JlIHtcbiAgICBAaW5jbHVkZSBmYTtcbiAgICBjb250ZW50OiAnXFxmMTc5JztcbiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgZm9udC1zaXplOiAyMXB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxNnB4O1xuICB9XG59XG5cblxuZGwge1xuICBtYXgtd2lkdGg6IDgwMHB4O1xuICBtYXJnaW46IDc1cHggYXV0byAwO1xuICBcbiAgZW0ge1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgfVxuXG4gIGR0LCBkZCB7XG4gICAgY29sb3I6ICR3aGl0ZTtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgbWFyZ2luLWJvdHRvbTogMjVweDtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAvLyB0ZXh0LXNoYWRvdzogMXB4IDFweCAwcHggJGJsYWNrO1xuICB9XG5cbiAgZHQge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIEBpbmNsdWRlIHN1YnRpdGxlO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gIH1cblxuICBkZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogNTBweDtcblxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwcHg7XG4gICAgfVxuXG4gICAgdWwge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBtYXJnaW4tdG9wOiAyMHB4O1xuXG4gICAgICBsaSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAxNXB4O1xuICAgICAgICBtYXJnaW4tbGVmdDogMTVweDtcblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHRvcDogMTBweDtcbiAgICAgICAgICBsZWZ0OiAwcHg7XG4gICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgIHdpZHRoOiA2cHg7XG4gICAgICAgICAgaGVpZ2h0OiA2cHg7XG4gICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MDBweDtcbiAgICAgICAgICBsaW5lLWhlaWdodDogMThweDtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAkd2hpdGU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLndyYXBwZXIge1xuICBAaW5jbHVkZSB3cmFwcGVyO1xufVxuXG4udHJlbGxvIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgLy8gYmFja2dyb3VuZDogJHB1cnBsZTtcbiAgbWFyZ2luOiAwcHggYXV0bztcblxuICBwLCBhIHtcbiAgICBjb2xvcjogJGdyZXk7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICBtYXJnaW46IDBweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuICB9XG5cbiAgYSB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbihjb2xvciAkc2xvdyk7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGNvbG9yICRmYXN0KTtcbiAgICB9XG4gIH1cbn1cblxuLnRlYWwge1xuICBjb2xvcjogJHRlYWw7XG59XG5cbmgyIHtcbiAgZm9udC1mYW1pbHk6ICRkaXNwbGF5O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG4ucmVmZXJyYWwsIC5uZXdzbGV0dGVyLCAuc3RhdHMge1xuICAmLnN1Ym1pdHRlZCBmb3JtIC5jb250ZW50cyxcbiAgJi5zdWJtaXR0ZWQgZm9ybSBidXR0b24sIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbiAgJi5zdWJtaXR0ZWQgLnN1Y2Nlc3Mge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuc3VjY2VzcyB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICBoMyB7XG4gICAgICBmb250LXNpemU6IDIxcHg7XG4gICAgICBAbWVkaWEobWluLXdpZHRoOiAkbW9iaWxlKSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMjhweDtcbiAgICAgIH1cbiAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICBjb2xvcjogJGdyZWVuO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuMztcbiAgICB9XG4gIH1cblxuICAubWVyY2hhbmRpc2Uge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi10b3A6IDUwcHg7XG5cbiAgICBsaSB7XG4gICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMzBweDtcblxuICAgICAgQG1lZGlhKG1pbi13aWR0aDogJG1vYmlsZSkge1xuICAgICAgICBmb250LXNpemU6IDIxcHg7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZm9ybSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1heC13aWR0aDogNTYwcHg7XG4gICAgbWFyZ2luOiAwcHggYXV0bztcbiAgICBjb2xvcjogJHRlYWw7XG5cbiAgICAuY29udGVudHMge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgkd2hpdGUsIC4yNSk7XG4gICAgICBwYWRkaW5nOiAyMHB4IDIwcHg7XG5cbiAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRtb2JpbGUpIHtcbiAgICAgICAgcGFkZGluZzogMzBweCA1MHB4IDQwcHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgYnV0dG9uW3R5cGU9XCJzdWJtaXRcIl0ge1xuICAgICAgbWFyZ2luLXRvcDogNTBweDtcbiAgICAgIEBpbmNsdWRlIGJ1dHRvbjtcbiAgICB9XG4gICAgXG4gICAgbGFiZWwge1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMjVweDtcbiAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICBvcGFjaXR5OiAuOTU7XG4gICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgICBmb250LXdlaWdodDogMzAwO1xuXG4gICAgICBlbSB7XG4gICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgZm9udC13ZWlnaHQ6IDEwMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpbnB1dCB7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoJHdoaXRlLCAuMjUpO1xuICAgICAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gICAgICBmb250LXNpemU6IDI0cHg7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogNXB4O1xuICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBmb250LXdlaWdodDogMzAwO1xuICAgICAgZm9udC1mYW1pbHk6ICRzYW5zO1xuXG4gICAgICBAaW5jbHVkZSBwbGFjZWhvbGRlcntcbiAgICAgICAgY29sb3I6ICRncmV5O1xuICAgICAgfVxuICAgIH1cblxuICAgIC5yb3cge1xuICAgICAgbWFyZ2luLWJvdHRvbTogNDBweDtcblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMHB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4uc3VidGxlIHtcbiAgb3BhY2l0eTogLjc1O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBmb250LWZhbWlseTogJHNhbnM7XG4gIGZvbnQtd2VpZ2h0OiAxMDA7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cblxuLmRvd25sb2FkIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gID4gZGl2IHtcbiAgICBtYXJnaW4tYm90dG9tOiA0MHB4O1xuICAgIGEge1xuICAgICAgbWluLXdpZHRoOiAyNzBweDtcbiAgICB9XG4gIH1cblxuICAuYXBwLXN0b3JlIHtcbiAgICBAaW5jbHVkZSBhcHAtc3RvcmU7XG4gIH1cblxuICAuc3VidGxlIHtcbiAgICBtYXJnaW4tdG9wOiA0MHB4O1xuICB9ICBcbn1cblxuLm5ld3NsZXR0ZXIge1xuXG4gIGgzIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgfVxuXG4gIGg1IHtcbiAgICBAaW5jbHVkZSBzdWJ0ZXh0O1xuICB9XG5cbiAgLnN1Y2Nlc3Mge1xuICAgIG1hcmdpbi10b3A6IDgwcHg7XG4gIH1cbn1cblxuLnZpZGVvIHtcbiAgbWFyZ2luLXRvcDogODBweDtcblxuICBpZnJhbWUge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoJHdoaXRlLCAuMjUpO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgfVxufVxuXG4uc29jaWFsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIG1hcmdpbi10b3A6IDBweDtcbiAgei1pbmRleDogMTtcblxuICAuaWNvbnMge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLC41KTtcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwYWRkaW5nOiAwIDVweDtcblxuICAgIGEge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgZm9udC1zaXplOiAyMXB4O1xuICAgICAgd2lkdGg6IDQwcHg7XG4gICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgICBsaW5lLWhlaWdodDogNDBweDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBjZW50ZXI7XG4gICAgICBjb2xvcjogJGdyZXk7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgfVxuXG4gICAgICAmOmJlZm9yZSB7XG4gICAgICAgIEBpbmNsdWRlIGZhO1xuICAgICAgICBjb250ZW50OiAnXFxmMDlhJztcbiAgICAgIH1cblxuICAgICAgJi50d2l0dGVyOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICdcXGYwOTknO1xuICAgICAgfVxuXG4gICAgICAmLmVtYWlsOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICdcXGYwZTAnO1xuICAgICAgfVxuXG4gICAgICAmLnJlZGRpdDpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAnXFxmMjgxJztcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLyogU2Nyb2xsIGluIFZpZXcgKi9cbmh0bWwgYm9keS5sYW5kaW5nLmluZGV4ICouc2l2LFxuaHRtbCBib2R5LmxhbmRpbmcuaW52aXRlICouc2l2LFxuaHRtbCBib2R5LnN0YXRzICouc2l2LFxuaHRtbCBib2R5LnRvcC10cmFja3MgKi5zaXYsXG5odG1sIGJvZHkuaW5mbyAqLnNpdiB7XG4gIG9wYWNpdHk6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgxNHB4KSB0cmFuc2xhdGVaKDBweCkgIWltcG9ydGFudDtcbiAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTRweCkgdHJhbnNsYXRlWigwcHgpICFpbXBvcnRhbnQ7XG4gIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTRweCkgdHJhbnNsYXRlWigwcHgpICFpbXBvcnRhbnQ7XG4gIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgxNHB4KSB0cmFuc2xhdGVaKDBweCkgIWltcG9ydGFudDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDE0cHgpIHRyYW5zbGF0ZVooMHB4KSAhaW1wb3J0YW50O1xuXG5cbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgLjVzIGVhc2Utb3V0ICFpbXBvcnRhbnQ7XG4gIC1tb3otdHJhbnNpdGlvbjogICAgYWxsIC41cyBlYXNlLW91dCAhaW1wb3J0YW50O1xuICAtbXMtdHJhbnNpdGlvbjogICAgIGFsbCAuNXMgZWFzZS1vdXQgIWltcG9ydGFudDtcbiAgLW8tdHJhbnNpdGlvbjogICAgICBhbGwgLjVzIGVhc2Utb3V0ICFpbXBvcnRhbnQ7XG4gIHRyYW5zaXRpb246ICAgICAgICAgYWxsIC41cyBlYXNlLW91dCAhaW1wb3J0YW50O1xuXG5cbiAgJi52aXNpYmxlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwcHgpICFpbXBvcnRhbnQ7XG4gICAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMHB4KSAhaW1wb3J0YW50O1xuICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMHB4KSAhaW1wb3J0YW50O1xuICAgIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwcHgpICFpbXBvcnRhbnQ7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDBweCkgIWltcG9ydGFudDtcblxuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuLyogRGlzYWJsZSBvbiB0YWJsZXQgYW5kIHBob25lcyAqL1xuYm9keS5tb2JpbGUubGFuZGluZy5pbmRleCxcbmJvZHkubW9iaWxlLmxhbmRpbmcuaW52aXRlLFxuYm9keS5tb2JpbGUuc3RhdHMsXG5ib2R5Lm1vYmlsZS50b3AtdHJhY2tzLFxuYm9keS5tb2JpbGUuaW5mbyB7XG4gIC5zaXYge1xuICAgIHRvcDogYXV0bztcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwcHgpIHRyYW5zbGF0ZVooMHB4KSAhaW1wb3J0YW50O1xuICB9XG59IiwiQG1peGluIGJvdHRvbS1saW5lLWhvdmVyIHtcbiAgJjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMXB4O1xuICAgIGJvdHRvbTogLTFweDtcbiAgICBsZWZ0OiAwO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgYmFja2dyb3VuZDogJHRlYWw7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbihvcGFjaXR5ICRzbG93KTtcbiAgfVxuXG4gICY6aG92ZXIge1xuICAgIGNvbG9yOiAkdGVhbDtcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGNvbG9yICRmYXN0KTtcblxuICAgICY6YWZ0ZXIge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24ob3BhY2l0eSAkZmFzdCk7XG4gICAgfVxuICB9ICBcbn1cblxuLmhlYWRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZDogcmdiYSgkYmxhY2ssIC4yNSk7XG4gIHotaW5kZXg6IDE7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLWJvdHRvbTogMTI1cHg7XG4gIC8vIG1hcmdpbi10b3A6IDE1cHg7XG4gIC8vIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKCR0ZWFsLCAuMjUpO1xuICAvLyBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgkdGVhbCwgLjI1KTtcbiAgdG9wOiAzMHB4O1xuICAvLyBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlWSgtMTBweCkpO1xuXG4gIC53cmFwcGVyIHtcbiAgICA+IHVsLmxlZnQge1xuICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG5cbiAgICAgID4gYTpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGxpIHtcbiAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiBub25lO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwcHg7XG4gICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogNTBweDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB0b3A6IC0yNXB4O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAwMHB4O1xuICAgICAgICAgICAgLy8gYm94LXNoYWRvdzogMCAwIDEwcHggMXB4IHJnYmEoJHRlYWwsIC4yNSk7XG4gICAgICAgICAgICAvLyBAaW5jbHVkZSB0cmFuc2l0aW9uKGJveC1zaGFkb3cgJHNsb3cpO1xuXG4gICAgICAgICAgICAvLyAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgLy8gYm94LXNoYWRvdzogMCAwIDE1cHggMXB4IHJnYmEoJHRlYWwsIC41KTtcbiAgICAgICAgICAgICAgLy8gQGluY2x1ZGUgdHJhbnNpdGlvbihib3gtc2hhZG93ICRmYXN0KTtcbiAgICAgICAgICAgIC8vIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgbGkge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgcGFkZGluZzogMCAyMHB4O1xuICAgICAgICBsaW5lLWhlaWdodDogNTBweDtcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICBoZWlnaHQ6IDUwcHg7XG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDBweCBzb2xpZCAkdGVhbDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGNvbG9yICRzbG93KTtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICBjb2xvcjogJHRlYWw7XG4gICAgICAgIH1cbiAgICAgICAgLy8gQGluY2x1ZGUgYm90dG9tLWxpbmUtaG92ZXI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdWwucmlnaHQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDBweDtcbiAgICByaWdodDogMHB4O1xuICAgIGhlaWdodDogNTBweDtcblxuICAgIGxpIHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgbGluZS1oZWlnaHQ6IDUwcHg7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICBhIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGZvbnQtc2l6ZTogMjFweDtcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBwYWRkaW5nOiAwIDE1cHg7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oY29sb3IgJHNsb3cpO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oY29sb3IgJGZhc3QpO1xuICAgICAgICAgIGNvbG9yOiAkdGVhbDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgIEBpbmNsdWRlIGZhO1xuICAgICAgICAgIGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5pbjphZnRlciB7XG4gICAgICAgICAgY29udGVudDogJ1xcZjE2ZCc7XG4gICAgICAgIH1cblxuICAgICAgICAmLmVtOmFmdGVyIHtcbiAgICAgICAgICBjb250ZW50OiAnXFxmMDAzJztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufSIsIiNmb290ZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDE7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcGFkZGluZzogNTBweCAwO1xuICBmb250LXdlaWdodDogMzAwO1xuXG4gIGEge1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oY29sb3IgJHNsb3cpO1xuICAgIGNvbG9yOiAkZ3JleTtcblxuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oY29sb3IgJGZhc3QpO1xuICAgIH1cbiAgfVxuXG4gIC50b3Age1xuICAgIG1hcmdpbi1ib3R0b206IDI1cHg7XG5cbiAgICA+IHVsIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgPiBsaSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBmb250LXdlaWdodDogMzAwO1xuXG4gICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRtb2JpbGUpIHtcbiAgICAgICAgICAmOmZpcnN0LWNoaWxkOmFmdGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHJpZ2h0OiAtM3B4O1xuICAgICAgICAgICAgdG9wOiAwcHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAkd2hpdGU7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIG9wYWNpdHk6IC4yNTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyNXB4O1xuXG4gICAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJG1vYmlsZSkge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMHB4O1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRncmV5O1xuICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBhIHtcbiAgICAgICAgICAgIG1hcmdpbjogMHB4O1xuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDMwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgYSB7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICBtYXJnaW46IDAgMzBweDtcbiAgICAgICAgICBmb250LXNpemU6IDI0cHg7XG4gICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcblxuICAgICAgICAgID4gc3BhbiB7XG4gICAgICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZhO1xuICAgICAgICAgICAgZGlzcGxheTppbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMjBweDtcbiAgICAgICAgICAgIEBtZWRpYShtaW4td2lkdGg6IDM0MHB4KSB7XG4gICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAzMHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgICYucmQ6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJ1xcZjI4MSc7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJi5pbjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnXFxmMTZkJztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAmLnR3OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICdcXGYwOTknO1xuICAgICAgICAgIH1cblxuICAgICAgICAgICYuZmI6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJ1xcZjA5YSc7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJi5kYzphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnXFxmMTk4JztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAmLnNwOmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICdcXGYxYmMnO1xuICAgICAgICAgIH1cblxuICAgICAgICAgICYuZW06YWZ0ZXIge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDE1cHg7XG4gICAgICAgICAgICBjb250ZW50OiAnXFxmMDAzJztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuYm90dG9tIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbWFyZ2luLXRvcDogNDBweDtcblxuICAgID4gZGl2IHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgfVxuICAgIFxuICAgIEBtZWRpYShtaW4td2lkdGg6ICRtb2JpbGUpIHtcbiAgICAgID4gZGl2IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtYXJnaW46IDAgMjBweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBhIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIGNvbG9yOiAkZ3JleTtcbiAgICAgIGZvbnQtZmFtaWx5OiAkc2FucztcbiAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5sYXN0IHtcbiAgICBtYXJnaW4tdG9wOiA1MHB4O1xuICAgIGZvbnQtZmFtaWx5OiAkc2FucztcblxuICAgIGEge1xuICAgICAgY29sb3I6ICRncmV5O1xuICAgICAgZm9udC1zaXplOiAxNHB4O1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn0iLCIubG9nby1ibG9jayB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogMzBweDtcblxuICBpbWcubG9nbyB7XG4gICAgbWFyZ2luOiAwcHggMCAxMHB4IDA7XG4gICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICAgIGJveC1zaGFkb3c6IDAgNHB4IDVweCByZ2JhKDAsMCwwLC43NSk7XG4gIH1cbn1cblxuYm9keS5sYW5kaW5nLm1vYmlsZSB7XG4gIC5zZWN0aW9uLmludHJvIC53cmFwcGVyLmJvdHRvbSAubGVmdCB7XG4gICAgLmRvd25sb2FkID4gZGl2OmZpcnN0LWNoaWxkIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICB9XG4gICAgLmRvd25sb2FkIC5hcHAtc3RvcmUge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAuc2VjdGlvbi5pbnRybyAud3JhcHBlci5taWRkbGUge1xuICAgIC5kb3dubG9hZCB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC5hcHAtc3RvcmUge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICB9XG59XG5cbmJvZHkubGFuZGluZyB7XG5cbiAgJi5pbmRleCB7XG4gICAgQGluY2x1ZGUgYmFja2dyb3VuZChsaW5lYXItZ3JhZGllbnQoJGRhcmstYmx1ZSwgJHB1cnBsZSwgIzQyMjg1OSwgIzJhMjg1OSwgIzI4NTU1OSwgJGRhcmstYmx1ZSkpO1xuXG4gICAgLnNlY3Rpb246YmVmb3JlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLnNlY3Rpb24uaW50cm8ge1xuICAgIHBhZGRpbmctdG9wOiA1MHB4O1xuXG4gICAgLndyYXBwZXIudG9wIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIC8vIG1hcmdpbi1ib3R0b206IDUwcHg7XG5cbiAgICAgIGgzIHtcbiAgICAgICAgQGluY2x1ZGUgc3VidGV4dDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNDBweDtcbiAgICAgIH1cblxuICAgIH1cblxuICAgIC53cmFwcGVyLm1pZGRsZSB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBtYXJnaW4tYm90dG9tOiA4MHB4O1xuXG4gICAgICBoMyB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIH1cblxuICAgICAgLmFwcC1zdG9yZSB7XG4gICAgICAgIEBpbmNsdWRlIGFwcC1zdG9yZTtcbiAgICAgICAgbWFyZ2luOiAwcHg7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLndyYXBwZXIuYm90dG9tIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDBweDtcblxuICAgICAgLmxlZnQsIC5yaWdodCB7XG4gICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRtb2JpbGUpIHtcbiAgICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5sZWZ0IHtcbiAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJG1vYmlsZSkge1xuICAgICAgICAgIHBhZGRpbmctdG9wOiAyNXB4O1xuICAgICAgICB9XG4gICAgICAgIGgzIHtcbiAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyN3B4O1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5yaWdodCB7XG4gICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRtb2JpbGUpIHtcbiAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDQ2MHB4KTtcblxuICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAvLyB3aWR0aDogMTAwMHB4O1xuICAgICAgICAgICAgLy8gbWF4LXdpZHRoOiBub25lO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICA+IHNwYW4ge1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuXG4gICAgICAgICAgPiBzcGFuLCA+IGEge1xuICAgICAgICAgICAgb3BhY2l0eTogLjU7XG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKG9wYWNpdHkgJHNsb3cpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGEge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihvcGFjaXR5ICRmYXN0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmxlZnQge1xuICAgICAgICBtYXJnaW46IDBweCBhdXRvO1xuICAgICAgICBtYXgtd2lkdGg6IDQ2MHB4O1xuICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkbW9iaWxlKSB7XG4gICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgcGFkZGluZy1yaWdodDogMjBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5kb3dubG9hZCB7XG4gICAgICAgICAgbWFyZ2luLXRvcDogMjBweDtcblxuICAgICAgICAgID4gZGl2OmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLnNlY3Rpb24uc3RhdC1saW5rcyB7XG4gICAgcGFkZGluZy10b3A6IDBweDtcblxuICAgIGEge1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB9XG4gIH1cblxuICAuc2VjdGlvbi5kb25hdGUge1xuICAgIC53cmFwcGVyIHtcbiAgICAgIG1heC13aWR0aDogMTAyMHB4O1xuICAgIH1cblxuICAgIEBtZWRpYShtYXgtd2lkdGg6ICRtb2JpbGUpIHtcbiAgICAgIC5yaWdodCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgICAubGVmdCB7XG4gICAgICAgIGRpdiB7XG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIC5yaWdodCBpbWcge1xuICAgICAgcGFkZGluZy1sZWZ0OiA1MHB4O1xuICAgICAgbWF4LXdpZHRoOiAzMDA7XG4gICAgfVxuICB9XG5cbiAgLnNlY3Rpb24udm90aW5nLCAuc2VjdGlvbi5jaGF0dGluZywgLnNlY3Rpb24ubXVzaWMtYmxvZyB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgQGluY2x1ZGUgYmFja2dyb3VuZChsaW5lYXItZ3JhZGllbnQoJHB1cnBsZSwgIzQyMjg1OSkpO1xuICAgIH1cblxuICAgIC53cmFwcGVyIHtcbiAgICAgIC5sZWZ0IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRtb2JpbGUpIHtcbiAgICAgICAgICBmbG9hdDogbGVmdDsgXG4gICAgICAgICAgd2lkdGg6IDUwJTtcblxuICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDM1MHB4O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAycHggNXB4IDFweCByZ2JhKDAsMCwwLC41KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgfVxuXG4gICAgICAucmlnaHQge1xuICAgICAgICBtYXJnaW46IDBweCBhdXRvO1xuICAgICAgICBtYXgtd2lkdGg6IDQ4MHB4O1xuXG4gICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRtb2JpbGUpIHtcbiAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGVZKC01MCUpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG5cbiAgLnNlY3Rpb24uZGppbmcsXG4gIC5zZWN0aW9uLnN0YXQtbGlua3MsXG4gIC5zZWN0aW9uLmRvbmF0ZSB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgQGluY2x1ZGUgYmFja2dyb3VuZChsaW5lYXItZ3JhZGllbnQoIzQyMjg1OSwgIzJhMjg1OSkpO1xuICAgIH1cblxuICAgIC53cmFwcGVyIHtcbiAgICAgIC5yaWdodCB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJG1vYmlsZSkge1xuICAgICAgICAgIGZsb2F0OiByaWdodDsgXG4gICAgICAgICAgcGFkZGluZy1sZWZ0OiAwcHg7XG4gICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDUyMHB4KTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAubGVmdCB7XG4gICAgICAgIG1hcmdpbjogMHB4IGF1dG87XG4gICAgICAgIG1heC13aWR0aDogNTIwcHg7XG5cbiAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJG1vYmlsZSkge1xuICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICBsZWZ0OiA1MHB4O1xuICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDIwcHg7XG4gICAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZVkoLTUwJSkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLnNlY3Rpb24uY2hhdHRpbmcsIC5zZWN0aW9uLm11c2ljLWJsb2cge1xuICAgICY6YmVmb3JlIHtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIEBpbmNsdWRlIGJhY2tncm91bmQobGluZWFyLWdyYWRpZW50KCMyYTI4NTksICMyODU1NTkpKTtcbiAgICB9XG5cbiAgICAud3JhcHBlciB7XG4gICAgICAubGVmdCB7XG4gICAgICAgIGltZyB7XG4gICAgICAgICAgbWF4LXdpZHRoOiA3MDBweDtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAucmlnaHQge1xuICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkbW9iaWxlKSB7XG4gICAgICAgICAgcGFkZGluZy1sZWZ0OiA3MHB4O1xuICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7XG4gICAgICAgIH1cbiAgICAgICAgbWF4LXdpZHRoOiA2MDBweDtcblxuICAgICAgICBkaXYge1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XG4gICAgICAgICAgQG1lZGlhKG1heC13aWR0aDogJG1vYmlsZSkge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMzBweDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAuYm90dG9tIHtcbiAgICAgIG1hcmdpbi10b3A6IDEwMHB4O1xuXG4gICAgICBoMyB7XG4gICAgICAgIG1hcmdpbjogMHB4IGF1dG87XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNTBweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsImJvZHkuZmVhdHVyZXMge1xuICAud3JhcHBlciB7XG4gICAgdWwuZmVhdHVyZXMge1xuICAgICAgbWFyZ2luLWJvdHRvbTogNTBweDtcbiAgICB9XG4gIH1cbn1cbiIsImJvZHkuaW52aXRlIHtcbiAgLnNlY3Rpb24uaW50cm8ge1xuICAgICY6YmVmb3JlIHtcbiAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybShza2V3WSgwZGVnKSk7XG4gICAgfVxuXG4gICAgLndyYXBwZXIudG9wIGgzIHtcbiAgICAgIC8vIG1hcmdpbi1ib3R0b206IDBweDtcbiAgICB9XG5cbiAgICAud3JhcHBlci50b3Age1xuICAgICAgLy8gbWFyZ2luLWJvdHRvbTogMTAwcHg7XG5cbiAgICAgIGgyLnJlZGlyZWN0IHtcbiAgICAgICAgbWFyZ2luLXRvcDogMTVweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNTBweDtcbiAgICAgICAgdGV4dC1zaGFkb3c6IDAgM3B4IDBweCByZ2JhKDAsMCwwLC4yKTtcbiAgICAgIH1cblxuICAgICAgPiBkaXYge1xuICAgICAgICBtYXJnaW4tdG9wOiAyNXB4O1xuICAgICAgICBhIHtcbiAgICAgICAgICB3aWR0aDogMjUwcHg7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaDMge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwcHg7XG4gICAgICB9XG5cbiAgICAgIHAge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xuICAgICAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgICAgICBmb250LXdlaWdodDogMzAwO1xuICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICBmb250LWZhbWlseSA6ICRzbGFiO1xuICAgICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgICAgIHRleHQtc2hhZG93OiAwIDJweCAwcHggcmdiYSgwLCAwLCAwLCAwLjIpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC53cmFwcGVyLmJvdHRvbSB7XG4gICAgICBtYXJnaW4tdG9wOiA3MHB4O1xuICAgIH1cblxuICAgIGgzLnN1YnRpdGxlIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGRpc3BsYXk6IGJsb2NrOyBcbiAgICB9XG4gIH1cblxuICAuZG93bmxvYWQge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgID4gZGl2IHtcbiAgICAgIG1hcmdpbjogMjVweCAwO1xuICAgIH1cblxuICAgIC5zdWJ0bGUge1xuICAgICAgLy8gbWFyZ2luLXRvcDogMzBweDtcbiAgICB9XG4gIH1cbn0iLCJib2R5LnJlZmVycmFsLCBib2R5Lmludml0ZSB7XG4gIC5zZWN0aW9uLmludHJvIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0oc2tld1koMGRlZykpO1xuICAgIH1cbiAgICAud3JhcHBlci50b3Age1xuICAgICAgLy8gbWFyZ2luLWJvdHRvbTogMHB4O1xuICAgIH1cbiAgfVxuXG4gICNmb290ZXIge1xuICAgIC8vIHBhZGRpbmctdG9wOiAwcHg7XG4gIH1cbn0iLCJib2R5LmhlbHAge1xuICAuaGVscC1zZWN0aW9uIHtcbiAgICBtYXgtd2lkdGg6IDkyMHB4O1xuICAgIG1hcmdpbjogNzVweCBhdXRvIDA7XG4gICAgXG4gICAgZW0ge1xuICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIH1cblxuICAgIGg0LCBwIHtcbiAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICAgIG1hcmdpbi1ib3R0b206IDI1cHg7XG4gICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgLy8gdGV4dC1zaGFkb3c6IDFweCAxcHggMHB4ICRibGFjaztcblxuICAgICAgYSB7XG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgfVxuXG4gICAgfVxuXG4gICAgc3Ryb25nIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgfVxuXG4gICAgaDQge1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICBAaW5jbHVkZSBzdWJ0aXRsZTtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICA+IHNwYW4ubnVtIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB3aWR0aDogNDBweDtcbiAgICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgICBsaW5lLWhlaWdodDogNDBweDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxNXB4O1xuICAgICAgICBmb250LWZhbWlseTogJGRpc3BsYXk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRibHVlO1xuICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTBweDtcbiAgICAgICAgZm9udC1zaXplOiAyMXB4O1xuICAgICAgICBib3gtc2hhZG93OiAwIDJweCAzcHggMHB4IHJnYmEoMCwwLDAsLjUpO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHRvcDogLTJweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuaW1nIHtcbiAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDNweCAwIHJnYmEoMCwwLDAsLjUpO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBsaW5lLWhlaWdodDogMHB4O1xuICAgICAgbWFyZ2luLWJvdHRvbTogNTBweDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgJi50YWxsIHtcbiAgICAgICAgbWF4LXdpZHRoOiA0MDBweDtcbiAgICAgICAgbWFyZ2luOiAwcHggYXV0bztcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNTBweDtcbiAgICAgIH1cblxuICAgICAgJi50aGluIHtcbiAgICAgICAgbWF4LXdpZHRoOiA1MDBweDtcbiAgICAgICAgbWFyZ2luOiAwcHggYXV0bztcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNTBweDsgICAgICAgIFxuICAgICAgfVxuXG4gICAgICB1bCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgdG9wOiAwcHg7XG4gICAgICAgIGxlZnQ6IDBweDtcbiAgICAgICAgY291bnRlci1yZXNldDogdG9vbHRpcDtcbiAgICAgICAgbWFyZ2luOiAwcHg7XG4gICAgICAgIHBhZGRpbmc6IDBweDtcblxuICAgICAgICBsaSB7XG4gICAgICAgICAgYm9yZGVyOiAwcHg7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHRvcDogMHB4O1xuICAgICAgICAgIGxlZnQ6IDBweDtcbiAgICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlWCgtNTAlKSk7XG5cbiAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGNvdW50ZXItaW5jcmVtZW50OiB0b29sdGlwO1xuICAgICAgICAgICAgY29udGVudDogY291bnRlcih0b29sdGlwKTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICAgICAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBmb250LWZhbWlseTogJGRpc3BsYXk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjOThmMWUxO1xuICAgICAgICAgICAgY29sb3I6ICMyMzQ5NTc7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MHB4O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAycHggM3B4IDBweCByZ2JhKDAsMCwwLC41KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsICRzbG93KTtcblxuICAgICAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJG1vYmlsZSkge1xuICAgICAgICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyOHB4O1xuICAgICAgICAgICAgICB3aWR0aDogMjhweDtcbiAgICAgICAgICAgICAgaGVpZ2h0OiAyOHB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJjpob3ZlcjphZnRlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaWdodGVuKCM5OGYxZTEsIDEwKTtcbiAgICAgICAgICAgIGNvbG9yOiBkYXJrZW4oIzIzNDkyNywgMTApO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAxcHggMXB4IDBweCByZ2JhKDAsMCwwLC43NSk7XG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCAkZmFzdCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgPiB1bCB7XG4gICAgICBjb3VudGVyLXJlc2V0OiB0b29sdGlwO1xuXG4gICAgICBsaSB7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDUwcHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tIDowcHg7XG4gICAgICAgIH1cblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgY291bnRlci1pbmNyZW1lbnQ6IHRvb2x0aXA7XG4gICAgICAgICAgY29udGVudDogY291bnRlcih0b29sdGlwKTtcbiAgICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgIGZvbnQtZmFtaWx5OiAkZGlzcGxheTtcbiAgICAgICAgICBjb2xvcjogIzIzNDk1NztcbiAgICAgICAgICB3aWR0aDogMjhweDtcbiAgICAgICAgICBoZWlnaHQ6IDI4cHg7XG4gICAgICAgICAgYmFja2dyb3VuZDogIzk4ZjFlMTtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwcHg7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDI4cHg7XG4gICAgICAgICAgYm94LXNoYWRvdzogMCAycHggM3B4IDBweCByZ2JhKDAsMCwwLC41KTtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gICAgICAgIH1cbiAgICAgIH0gIFxuXG4gICAgICBhIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICB9ICAgIFxuICAgIH1cblxuICAgICYuYmx1ZSB7XG4gICAgICAuaW1nIHVsIGxpOmFmdGVyIHtcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJGJsdWU7XG4gICAgICB9XG5cbiAgICAgIC5pbWcgdWwgbGk6aG92ZXI6YWZ0ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiBkYXJrZW4oJGJsdWUsIDEwKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDUwcHg7XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDBweDtcbiAgICAgIH1cblxuICAgICAgdWwge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luLXRvcDogMjBweDtcblxuICAgICAgICBsaSB7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDE1cHg7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IDE1cHg7XG5cbiAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwcHg7XG4gICAgICAgICAgICBsZWZ0OiAwcHg7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiA2cHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDZweDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MDBweDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxOHB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHdoaXRlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfX0iLCJib2R5LmNvbXBhcmUge1xuICAuZmVhdHVyZXMtc2VjdGlvbiB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgPiBkaXYuZmVhdHVyZXMge1xuICAgICAgbWFyZ2luLWJvdHRvbTogNTBweDtcbiAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRtb2JpbGUpIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB3aWR0aDogMjcwcHg7XG4gICAgICAgIG1hcmdpbjogMCA3NXB4O1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgfVxuXG4gICAgICBoMyB7XG4gICAgICAgIEBpbmNsdWRlIHN1YnRpdGxlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG5cbiAgICAgIHVsIHtcbiAgICAgICAgbGkge1xuICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgcGFkZGluZzogMTBweCAwO1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICAgICAgZm9udC1mYW1pbHk6ICRzbGFiO1xuICAgICAgICAgIGNvbG9yOiBkYXJrZW4oJHdoaXRlLCA3KTtcblxuICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZhO1xuICAgICAgICAgICAgY29udGVudDogJ1xcZjAwYyc7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDE1cHg7XG4gICAgICAgICAgICBjb2xvcjogJGdyZWVuO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5ib2R5LmNvbXBhcmlzb25zIHtcbiAgdWwuY29tcGFyZS1saXN0IHtcbiAgICBtYXgtd2lkdGg6IDMwMHB4O1xuICAgIG1hcmdpbjogMHB4IGF1dG87XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgkd2hpdGUsIC4yNSk7XG4gICAgcGFkZGluZzogNTBweCAyNXB4O1xuXG4gICAgbGkge1xuICAgICAgbWFyZ2luOiAyMHB4IDA7IFxuICAgICAgZm9udC1zaXplOiAyMXB4O1xuICAgIH1cblxuICAgIGEge1xuICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG59IiwiLnN0YXRzLCAudG9wLXRyYWNrcywgLmluZm8ge1xuICBoMSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG5cbiAgLnNlY3Rpb24uaW50cm8ge1xuICAgIHBhZGRpbmctdG9wOiA1MHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAyMHB4O1xuICAgIC53cmFwcGVyIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAvLyBtYXJnaW4tYm90dG9tOiA1MHB4O1xuXG4gICAgICBoMyB7XG4gICAgICAgIEBpbmNsdWRlIHN1YnRleHQ7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDQwcHg7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZm9ybSB7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiA1NTBweDtcbiAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xuICAgIG1hcmdpbi10b3A6IC0zMHB4O1xuXG4gICAgbGFiZWwge1xuICAgICAgZm9udC1mYW1pbHk6ICRzYW5zO1xuICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgIGNvbG9yOiAkZ3JleTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XG4gICAgfVxuXG4gICAgaW5wdXQge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBoZWlnaHQ6IDUwcHg7XG4gICAgICB3aWR0aDogY2FsYygxMDAlIC0gMTUwcHgpO1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgYm9yZGVyLXJpZ2h0OiAwcHg7XG4gICAgICBmb250LXNpemU6IDE5cHg7XG4gICAgICBwYWRkaW5nOiAwcHg7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG4gICAgICBsaW5lLWhlaWdodDogNTBweDtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLC41KTtcbiAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA0cHg7XG4gICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA0cHg7XG4gICAgfVxuXG4gICAgYnV0dG9uW3R5cGU9XCJzdWJtaXRcIl0ge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICB3aWR0aDogMTUwcHg7XG4gICAgICBtYXJnaW46IDBweCAhaW1wb3J0YW50O1xuICAgICAgYmFja2dyb3VuZDogJHB1cnAtYmx1ZTtcbiAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDBweDtcbiAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDBweDtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgYmFja2dyb3VuZDogZGFya2VuKCRwdXJwLWJsdWUsIDUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHVsLnJvb21zIHtcbiAgICBtYXJnaW4tYm90dG9tOiAyM3B4O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSArIDEwcHgpO1xuICAgIG1hcmdpbi1sZWZ0OiAtNXB4O1xuICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuXG4gICAgPiBsaSB7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRtb2JpbGUpIHtcbiAgICAgICAgd2lkdGg6IDI1JTtcbiAgICAgIH1cbiAgICAgIGhlaWdodDogMzUwcHg7XG4gICAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgICAgcGFkZGluZzogMCA1cHg7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgLjVzIGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKTtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSkgdHJhbnNsYXRlWSgwcHgpIHRyYW5zbGF0ZVooMHB4KTtcblxuICAgICAgPiBzcGFuIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LC4wMjUpO1xuICAgICAgICBib3gtc2hhZG93OiAwIDJweCA3cHggMXB4IHJnYmEoMCwwLDAsLjQwKTtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIC41cyBjdWJpYy1iZXppZXIoMC4yMywgMSwgMC4zMiwgMSk7XG4gICAgICB9XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDE1KSB0cmFuc2xhdGVZKC0zcHgpIHRyYW5zbGF0ZVooMHB4KTtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIC4zMjVzIGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKTtcbiAgICAgICAgPiBzcGFuIHtcbiAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgLjMyNXMgY3ViaWMtYmV6aWVyKDAuMjMsIDEsIDAuMzIsIDEpO1xuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDE0cHggMXB4IHJnYmEoMCwwLDAsLjQwKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICA+IHNwYW4ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICB9XG5cbiAgICAgIC5jb250ZW50IHtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgLmltZyB7XG4gICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcblxuICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQocmdiYSgwLDAsMCwuNSksIHJnYmEoMCwwLDAsLjkwKSA4NSUsIHJnYmEoMCwwLDAsMSkgMTAwJSk7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDBweDtcbiAgICAgICAgICAgIGxlZnQ6IDBweDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgLnRvcCB7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHRvcDogMzAlO1xuICAgICAgICAgIGxlZnQ6IDBweDtcbiAgICAgICAgICBwYWRkaW5nOiAwIDEwcHg7XG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcblxuICAgICAgICAgIC50aXRsZSwgLnRyYWNrLWluZm8sIC5uYW1lIHtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAxcHggcmdiYSgkZGFyay1ibHVlLWRhcmssLjUpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC50aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDI2cHg7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjU7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMnB4IDFweCByZ2JhKCRkYXJrLWJsdWUtZGFyaywuNSk7XG4gICAgICAgICAgICAvLyBsZXR0ZXItc3BhY2luZzogLjhweDtcbiAgICAgICAgICAgIC8vIEBpbmNsdWRlIGFudGlhbGlhc2VkO1xuICAgICAgICAgICAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcbiAgICAgICAgICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDsgICAgICAgICAgIFxuICAgICAgICAgIH1cblxuICAgICAgICAgIC50cmFjay1pbmZvIHtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS4yNTtcblxuICAgICAgICAgICAgLm5hbWUge1xuICAgICAgICAgICAgICBtYXJnaW46IDBweDtcbiAgICAgICAgICAgICAgcGFkZGluZzogMHB4O1xuICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAzcHg7XG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMztcbiAgICAgICAgICAgICAgLy8gbWF4LXdpZHRoOiA3MCU7XG4gICAgICAgICAgICAgIC8vIGxldHRlci1zcGFjaW5nOiAuNXB4O1xuICAgICAgICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiA0NnB4O1xuICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICBtYXgtd2lkdGg6IGNhbGMoMTAwJSk7XG4gICAgICAgICAgICAgIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG4gICAgICAgICAgICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDsgICAgICAgICAgIFxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuYXJ0aXN0cyB7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIGFydGlzdHM7XG4gICAgICAgICAgICAgIG1hcmdpbi10b3A6IDdweDtcbiAgICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICAgICAgICBwYWRkaW5nOiAwIDEwcHg7XG4gICAgICAgICAgICAgIC8vIGxldHRlci1zcGFjaW5nOiAxcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5ib3R0b20ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGJvdHRvbTogMHB4O1xuICAgICAgICBsZWZ0OiAwcHg7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgICAgIC8vIGJhY2tncm91bmQ6ICRkYXJrLWJsdWUtZGFyazsgXG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIHotaW5kZXg6IDE7XG4gICAgICB9XG5cbiAgICAgICYucHJpdmF0ZSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgQGluY2x1ZGUgZmE7XG4gICAgICAgICAgY29udGVudDogJ1xcZjAyMyc7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHRvcDogMTBweDtcbiAgICAgICAgICByaWdodDogMTBweDtcbiAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgICB3aWR0aDogMzRweDtcbiAgICAgICAgICBoZWlnaHQ6IDM0cHg7XG4gICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwuNSk7XG4gICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuMjUpO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwMHB4O1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAzMnB4O1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDBweCByZ2JhKCRkYXJrLWJsdWUtZGFyaywxKTtcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDFweCAxcHggcmdiYSgkZGFyay1ibHVlLWRhcmssMSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIC8vIGJvcmRlci10b3A6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgLy8gYmFja2dyb3VuZDogJGRhcmstYmx1ZS1saWdodDtcbiAgICAgIH1cblxuICAgICAgPiBhIHtcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgIH1cblxuICAgICAgLnRpdGxlIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7ICAgICAgICAgIFxuICAgICAgfVxuXG4gICAgICAubWV0YSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDNweDtcbiAgICAgIH1cblxuICAgICAgLm1ldGEsIC5jdXJyZW50LXRyYWNrIHtcbiAgICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgICAgIGNvbG9yOiAkZ3JleTtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC41cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcblxuICAgICAgICA+IGxpIHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gICAgICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG5cbiAgICAgICAgICA+IGRpdiB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMTVweDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyMXB4O1xuICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICBzdHJvbmcge1xuICAgICAgICAgICAgICBmb250LXNpemU6IDE1cHg7XG4gICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxNXB4O1xuICAgICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuXG4gICAgICAgICAgICAgID4gc3BhbiB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAyMHB4O1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxNXB4O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgZGl2LmdlbnJlIHtcbiAgICAgICAgICAgIC8vIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGNvbG9yOiAkZ3JleTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDVweDtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDIxcHg7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICBzdHJvbmcge1xuICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICAgICAgLy8gbGV0dGVyLXNwYWNpbmc6IDFweDtcbiAgICAgICAgICAgICAgZm9udC1zaXplOiAxNXB4O1xuICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMjFweDtcbiAgICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gY29sb3ItdGl0bGUge1xuICBjb2xvcjogJHdoaXRlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJhY2tncm91bmQ6ICRncmVlbjtcbiAgcGFkZGluZzogMTVweCAyNXB4O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJveC1zaGFkb3c6IDAgNHB4IDBweCByZ2JhKDAsMCwwLC4yNSk7XG4gIG1hcmdpbi1ib3R0b206IDYwcHg7XG5cbiAgJjpiZWZvcmUge1xuICAgIEBpbmNsdWRlIGZhO1xuICAgIGNvbnRlbnQ6ICdcXGYxNjQnO1xuICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgfVxufVxuXG5AbWl4aW4gYmFjay1zZWN0aW9uIHtcbiAgbWFyZ2luLXRvcDogMHB4O1xuICBwYWRkaW5nLXRvcDogMHB4O1xuICBwYWRkaW5nLWJvdHRvbTogMHB4O1xuXG4gIGEgaDM6YmVmb3JlIHtcbiAgICBAaW5jbHVkZSBmYTtcbiAgICBjb250ZW50OiAnXFxmMDUzJztcbiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gIH1cbiAgYSB7XG4gICAgaDMge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgY29sb3I6ICRncmV5O1xuICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihjb2xvciAkc2xvdyk7XG4gICAgfVxuXG4gICAgJjpob3ZlciBoMyB7XG4gICAgICBjb2xvcjogJHdoaXRlO1xuICAgIH1cbiAgfVxufVxuXG4uc3RhdHMtZGV0YWlsIHtcblxuICAuc2VjdGlvbi5pbnRybyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAwcHg7XG4gIH1cblxuICAudG9wLXRyYWNrcywgLmJvdHRvbS10cmFja3MsIC5zdGFycywgLnRvcC11c2VycywgLmJvdHRvbS11c2VycyB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBhZGRpbmctdG9wOiAwcHg7XG5cbiAgICAudGl0bGUgaDMge1xuICAgICAgQGluY2x1ZGUgY29sb3ItdGl0bGU7XG4gICAgfVxuICB9XG5cbiAgLmJvdHRvbS10cmFja3MgLnRpdGxlIGgzLFxuICAuYm90dG9tLXVzZXJzIC50aXRsZSBoMyB7XG4gICAgYmFja2dyb3VuZDogJHJlZDtcblxuICAgICY6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICdcXGYxNjUnO1xuICAgIH1cbiAgfVxuXG5cbiAgLnN0YXJzIC50aXRsZSBoMyB7XG4gICAgYmFja2dyb3VuZDogJHllbGxvdztcblxuICAgICY6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICdcXGYwMDUnO1xuICAgIH1cbiAgfVxuXG4gIC51c2VycyB7XG4gICAgbWF4LXdpZHRoOiA4MDBweDtcbiAgICBjb3VudGVyLXJlc2V0OiB1c2VycztcbiAgICBAbWVkaWEobWF4LXdpZHRoOiAkbW9iaWxlKSB7XG4gICAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICB9XG5cbiAgICA+IGxpIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsLjI1KTtcbiAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgICBib3JkZXItcmFkaXVzOiA1MDBweDtcbiAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAxNTBweDtcbiAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAxNTBweDtcblxuICAgICAgJjpiZWZvcmUge1xuICAgICAgICBjb3VudGVyLWluY3JlbWVudDogdXNlcnM7XG4gICAgICAgIGNvbnRlbnQ6IGNvdW50ZXIodXNlcnMpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMHB4O1xuICAgICAgICBsZWZ0OiAwcHg7XG4gICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIHdpZHRoOiAzMHB4O1xuICAgICAgICBoZWlnaHQ6IDMwcHg7XG4gICAgICAgIG1hcmdpbi10b3A6IC0xMHB4O1xuICAgICAgICBtYXJnaW4tbGVmdDogLTEwcHg7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDMwcHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwMHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAkZ3JlZW47XG4gICAgICAgIHRleHQtc2hhZG93OiAwIDJweCAwIHJnYmEoMCwwLDAsLjI1KTtcbiAgICAgICAgYm94LXNoYWRvdzogMCA1cHggMCAwIHJnYmEoMCwwLDAsLjI1KTtcbiAgICAgIH1cblxuICAgICAgQG1lZGlhKG1pbi13aWR0aDogJG1vYmlsZSkge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgd2lkdGg6IGNhbGMoNTAlIC0gMTBweCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDQwcHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAwcHg7XG5cbiAgICAgICAgJjpudGgtY2hpbGQob2RkKSB7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwcHg7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmNvbnRlbnQge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDc1cHg7XG4gICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSA3NXB4KTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMTVweDtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZVkoLTUwJSkpO1xuXG4gICAgICAgIHAge1xuICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgbWFyZ2luOiAwcHg7XG5cbiAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICAgICAgZm9udC1zaXplOiAyMXB4O1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgIH1cblxuICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBjb2xvcjogJGdyZWVuO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAuNXB4O1xuXG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIGZhO1xuICAgICAgICAgICAgICBjb250ZW50OiAnXFxmMTY0JztcbiAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgZGl2LmltZyB7XG4gICAgICAgIHdpZHRoOiA3NXB4O1xuICAgICAgICBoZWlnaHQ6IDc1cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwMHB4O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICRkYXJrLWJsdWUtZGFyaztcbiAgICAgICAgYm94LXNoYWRvdzogMCAycHggMCByZ2JhKDAsMCwwLC4xNSk7XG4gICAgICB9XG5cbiAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tbGVmdDogLTVweDtcblxuICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkbW9iaWxlKSB7XG4gICAgICAgICAgd2lkdGg6IDgwJTtcbiAgICAgICAgICBtYXgtd2lkdGg6IDUwMHB4O1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwcHg7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgIHdpZHRoOiA0MHB4O1xuICAgICAgICAgIGhlaWdodDogNDBweDtcbiAgICAgICAgICBmb250LXNpemU6IDI0cHg7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDQwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBkaXYuaW1nIHtcbiAgICAgICAgICB3aWR0aDogODVweDtcbiAgICAgICAgICBoZWlnaHQ6IDg1cHg7XG5cbiAgICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkbW9iaWxlKSB7XG4gICAgICAgICAgICB3aWR0aDogMTAwcHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMHB4O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5jb250ZW50IHtcbiAgICAgICAgICBsZWZ0OiA4NXB4O1xuICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSA4NXB4KTtcbiAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xuXG4gICAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJG1vYmlsZSkge1xuICAgICAgICAgICAgbGVmdDogMTAwcHg7XG4gICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gMTAwcHgpO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMTVweDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBwIHtcbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICBmb250LXNpemU6IDI2cHg7XG4gICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyNnB4O1xuICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA3cHg7XG5cbiAgICAgICAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJG1vYmlsZSkge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMzJweDtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMzJweDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDFweDtcblxuICAgICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAyMXB4O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLnN0YXJzIHtcbiAgICAudXNlcnMgPiBsaSB7XG4gICAgICAmOmJlZm9yZSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR5ZWxsb3c7XG4gICAgICB9XG5cbiAgICAgIHA6bGFzdC1jaGlsZCB7XG4gICAgICAgIGNvbG9yOiAkeWVsbG93O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5zdGFycyB7XG4gICAgLnVzZXJzID4gbGkge1xuICAgICAgJjpiZWZvcmUge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkeWVsbG93O1xuICAgICAgfVxuXG4gICAgICBwOmxhc3QtY2hpbGQge1xuICAgICAgICBjb2xvcjogJHllbGxvdztcblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgY29udGVudDogJ1xcZjAwNSc7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuYm90dG9tLXVzZXJzIHtcbiAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgLnVzZXJzID4gbGkge1xuICAgICAgJjpiZWZvcmUge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkcmVkO1xuICAgICAgfVxuXG4gICAgICBwOmxhc3QtY2hpbGQge1xuICAgICAgICBjb2xvcjogJHJlZDtcblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgY29udGVudDogJ1xcZjE2NSc7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAudHJhY2tzIHtcbiAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICBjb3VudGVyLXJlc2V0OiB0cmFja3M7XG4gICAgPiBsaSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgICAgIGhlaWdodDogMTAwcHg7XG5cbiAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRtb2JpbGUpIHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgIGhlaWdodDogMTAwcHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDQwcHg7ICAgICAgICBcbiAgICAgIH1cblxuICAgICAgQG1lZGlhKG1pbi13aWR0aDogMTAwMHB4KSB7XG4gICAgICAgIHdpZHRoOiAyNSU7XG4gICAgICAgIGhlaWdodDogMzUwcHg7XG4gICAgICB9XG5cbiAgICAgIGlmcmFtZSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICB9XG5cbiAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgY291bnRlci1pbmNyZW1lbnQ6IHRyYWNrcztcbiAgICAgICAgY29udGVudDogY291bnRlcih0cmFja3MpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMHB4O1xuICAgICAgICBsZWZ0OiAwcHg7XG4gICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgIGZvbnQtc2l6ZTogMjhweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIHdpZHRoOiA0OHB4O1xuICAgICAgICBoZWlnaHQ6IDQ4cHg7XG4gICAgICAgIG1hcmdpbi10b3A6IC0xNXB4O1xuICAgICAgICBtYXJnaW4tbGVmdDogLTE1cHg7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDQ4cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwMHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAkZ3JlZW47XG4gICAgICAgIHRleHQtc2hhZG93OiAwIDJweCAwIHJnYmEoMCwwLDAsLjI1KTtcbiAgICAgICAgYm94LXNoYWRvdzogMCA1cHggMCAwIHJnYmEoMCwwLDAsLjI1KTtcblxuICAgICAgICBAbWVkaWEobWF4LXdpZHRoOiAkbW9iaWxlKSB7XG4gICAgICAgICAgd2lkdGg6IDM1cHg7XG4gICAgICAgICAgaGVpZ2h0OiAzNXB4O1xuICAgICAgICAgIG1hcmdpbi10b3A6IC0xNXB4O1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtOHB4O1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAzNXB4O1xuICAgICAgICAgIGZvbnQtc2l6ZTogMjFweDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5ib3R0b20tdHJhY2tzIC50cmFja3MgPiBsaTpiZWZvcmUge1xuICAgIGJhY2tncm91bmQ6ICRyZWQ7XG4gIH1cblxuICAuc2VjdGlvbi5iYWNrIHtcbiAgICBAaW5jbHVkZSBiYWNrLXNlY3Rpb247XG4gIH1cblxuICAudG8tc3RhdHMge1xuICAgIEBpbmNsdWRlIHdyYXBwZXI7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgaDMge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMTVweDtcbiAgICB9XG5cbiAgICBhIHtcbiAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgIGNvbG9yOiAkZ3JleTtcbiAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgfVxuXG4gICAgICAmOmFmdGVyIHtcbiAgICAgICAgQGluY2x1ZGUgZmE7XG4gICAgICAgIGNvbnRlbnQ6ICdcXGYxNzgnO1xuICAgICAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuYm9keS50b3AtdHJhY2tzIHtcblxuICAuc2VjdGlvbi5pbnRybyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAwcHg7XG5cbiAgICAud3JhcHBlciBoMyB7XG4gICAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICAgfVxuICB9XG5cbiAgLmRhdGUtcmFuZ2Uge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICBmb250LWZhbWlseTogJHNsYWI7XG4gICAgY29sb3I6ICRncmV5O1xuICAgIHRleHQtc2hhZG93OiAwIDJweCAxcHggcmdiYSgkZGFyay1ibHVlLWRhcmssLjUpOyAgXG4gIH1cblxuICAud3JhcHBlciB1bC50cmFja3Mge1xuICAgIG1heC13aWR0aDogNTAwcHg7XG4gICAgbWFyZ2luOiAwcHggYXV0bztcbiAgICBtYXJnaW4tdG9wOiA2MHB4O1xuXG4gICAgQG1lZGlhKG1pbi13aWR0aDogJG1vYmlsZSkge1xuICAgICAgbWFyZ2luLXRvcDogNzVweDtcbiAgICB9XG5cbiAgICA+IGxpIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDQwcHg7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRtb2JpbGUpIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNTBweDtcbiAgICAgIH1cblxuICAgICAgPiBkaXYuaWR4IHtcbiAgICAgICAgYmFja2dyb3VuZDogJGdyZWVuO1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggMXB4IHJnYmEoMCwwLDAsLjUpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogLTI1cHg7XG4gICAgICAgIGxlZnQ6IC01cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMjhweDtcbiAgICAgICAgei1pbmRleDogMjtcblxuICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkbW9iaWxlKSB7XG4gICAgICAgICAgZm9udC1zaXplOiAzMnB4O1xuICAgICAgICAgIGxlZnQ6IC0xMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgcGFkZGluZzogNXB4IDEwcHg7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgM3B4IDFweCByZ2JhKDAsMCwwLC41KTtcblxuICAgICAgICA+IHNwYW4ge1xuICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgZm9udC1zaXplOiAyMXB4O1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgPiBkaXYudHJhY2staW5mbyB7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsLjUpO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcGFkZGluZzogMjVweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6IDE7XG5cbiAgICAgICAgPiAudGl0bGUge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMTlweDtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAzcHg7XG4gICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG4gICAgICAgIH1cblxuICAgICAgICA+IC5hcnRpc3RzIHtcbiAgICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgICAgb3BhY2l0eTogLjc7XG4gICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogM3B4O1xuICAgICAgICB9XG5cbiAgICAgICAgPiAuYWN0aW9ucyB7XG4gICAgICAgICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwcHg7XG4gICAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICBib3R0b206IDhweDtcbiAgICAgICAgICByaWdodDogMTBweDtcblxuICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDE1cHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogN3B4O1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHRvcDogLTFweDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgPiBkaXYudGh1bWJzIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwMHB4O1xuICAgICAgICB0b3A6IC0yMHB4O1xuICAgICAgICByaWdodDogMHB4O1xuICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAxcHggcmdiYSgwLDAsMCwuNSk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuXG4gICAgICAgID4gZGl2IHtcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IDhweDtcbiAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBmYTtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICdcXGYxNjQnO1xuICAgICAgICAgICAgY29sb3I6ICRncmVlbjtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogNHB4O1xuICAgICAgICAgIH1cblxuICAgICAgICAgICYudGh1bWJzLWRvd246YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICdcXGYxNjUnO1xuICAgICAgICAgICAgY29sb3I6ICRyZWQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWZyYW1lIHtcbiAgICAgIGJhY2tncm91bmQ6ICMyODI4Mjg7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG1hcmdpbjogMHB4O1xuICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDFweCByZ2JhKDAsMCwwLDAuNSk7XG4gICAgICBoZWlnaHQ6IDc1cHg7XG5cbiAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRtb2JpbGUpIHtcbiAgICAgICAgaGVpZ2h0OiA4OXB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5mb290ZXIge1xuICAgIEBpbmNsdWRlIHdyYXBwZXI7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgLndyYXBwZXIge1xuICAgICAgbWF4LXdpZHRoOiA1MDBweDtcbiAgICB9XG4gICAgYSB7XG4gICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICBjb2xvcjogJGdyZXk7XG4gICAgICBmb250LXdlaWdodDogMzAwO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgZm9udC1mYW1pbHk6ICRzbGFiO1xuXG4gICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAzMHB4O1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgIH1cblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDMwcHg7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgIH1cblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICB9XG5cbiAgICAgICY6Zmlyc3QtY2hpbGQ6YmVmb3JlIHtcbiAgICAgICAgQGluY2x1ZGUgZmE7XG4gICAgICAgIGNvbnRlbnQ6ICdcXGYxNzcnO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgICB9XG5cbiAgICAgICY6bGFzdC1jaGlsZDphZnRlciB7XG4gICAgICAgIEBpbmNsdWRlIGZhO1xuICAgICAgICBjb250ZW50OiAnXFxmMTc4JztcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmJvZHkuaW5mbyB7XG4gIC5zZWN0aW9uLmludHJvIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwcHg7XG4gICAgcGFkZGluZy1ib3R0b206IDBweDtcblxuICAgIC53cmFwcGVyIGgzIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDhweDtcbiAgICB9XG4gIH1cblxuICAuc2VjdGlvbi5zdGF0cyB7XG4gICAgbWFyZ2luOiAwcHg7XG4gICAgcGFkZGluZzogMHB4O1xuICAgIHBhZGRpbmctdG9wOiAxMHB4O1xuXG4gICAgdWwge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICBsaSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgY29sb3I6ICRncmVlbjtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgZm9udC1zaXplOiAyMXB4O1xuICAgICAgICBtYXJnaW46IDAgMjBweDtcbiAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDFweCByZ2JhKDAsMCwwLC41KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTVweDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICBAaW5jbHVkZSBmYTtcbiAgICAgICAgICBmb250LXNpemU6IDI0cHg7XG4gICAgICAgICAgdmVydGljYWwtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICBjb250ZW50OiAnXFxmMTY0JztcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgICAgICAgfVxuXG4gICAgICAgICYudGh1bWJzLWRvd24ge1xuICAgICAgICAgIGNvbG9yOiAkcmVkO1xuXG4gICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgY29sb3I6ICRyZWQ7XG4gICAgICAgICAgICBjb250ZW50OiAnXFxmMTY1JztcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLnN0YXJzIHtcbiAgICAgICAgICBjb2xvcjogJHllbGxvdztcblxuICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbG9yOiAkeWVsbG93O1xuICAgICAgICAgICAgY29udGVudDogJ1xcZjAwNSc7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLnNlY3Rpb24uc29uZ3Mge1xuICAgIHBhZGRpbmctYm90dG9tOiAwcHg7XG5cbiAgICAmLm1vc3QtcGxheWVkIHtcbiAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRtb2JpbGUpIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDQwcHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnRpdGxlIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG5cbiAgICAudGl0bGUgaDMge1xuICAgICAgQGluY2x1ZGUgY29sb3ItdGl0bGVcbiAgICAgIGJhY2tncm91bmQ6ICRwdXJwLWJsdWU7XG5cbiAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJ1xcZjA0Yic7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLndyYXBwZXIgdWwudHJhY2tzIHtcbiAgICBtYXgtd2lkdGg6IDEwMDBweDtcbiAgICBtYXJnaW46IDBweCBhdXRvO1xuXG4gICAgbGkge1xuICAgICAgcGFkZGluZzogMCAxMHB4O1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMzBweDtcbiAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRtb2JpbGUpIHtcbiAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDIwcHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDQwcHg7XG5cbiAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgIHBhZGRpbmctbGVmdDogMjBweDtcbiAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwcHg7XG4gICAgICAgIH1cbiAgICAgIH1cblxuXG4gICAgICBpZnJhbWUge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjMjgyODI4O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luOiAwcHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgYm94LXNoYWRvdzogMCAycHggMXB4IHJnYmEoMCwwLDAsMC41KTtcbiAgICAgICAgaGVpZ2h0OiA4MHB4O1xuXG4gICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRtb2JpbGUpIHtcbiAgICAgICAgICBoZWlnaHQ6IDg5cHg7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgPiBkaXYge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB9XG5cbiAgICAgIGRpdi5pZHgge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkcHVycC1ibHVlO1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggMXB4IHJnYmEoMCwwLDAsLjUpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogLTIwcHg7XG4gICAgICAgIGxlZnQ6IC0yMHB4O1xuICAgICAgICBmb250LXNpemU6IDIxcHg7XG5cbiAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJG1vYmlsZSkge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICAgICAgICBsZWZ0OiAtMjBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwMHB4O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB3aWR0aDogNDBweDtcbiAgICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgICBsaW5lLWhlaWdodDogNDBweDtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3gtc2hhZG93OiAwIDNweCAxcHggcmdiYSgwLDAsMCwuNSk7XG5cbiAgICAgICAgPiBzcGFuIHtcbiAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMjFweDtcbiAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGRpdi50aHVtYnMge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjAwcHg7XG4gICAgICAgIHRvcDogLTIwcHg7XG4gICAgICAgIHJpZ2h0OiAwcHg7XG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDFweCByZ2JhKDAsMCwwLC41KTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG5cbiAgICAgICAgPiBkaXYge1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICBtYXJnaW4tbGVmdDogOHB4O1xuICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZhO1xuICAgICAgICAgICAgY29udGVudDogJ1xcZjE2NCc7XG4gICAgICAgICAgICBjb2xvcjogJGdyZWVuO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA0cHg7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJi50aHVtYnMtZG93bjpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogJ1xcZjE2NSc7XG4gICAgICAgICAgICBjb2xvcjogJHJlZDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuc2VjdGlvbi50aHVtYnMtdXAge1xuICAgIC50aXRsZSBoMyB7XG4gICAgICBiYWNrZ3JvdW5kOiAkZ3JlZW47XG5cbiAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJ1xcZjE2NCc7XG4gICAgICB9XG4gICAgfVxuICAgIC53cmFwcGVyIHVsLnRyYWNrcyAuaWR4IHtcbiAgICAgIGJhY2tncm91bmQ6ICRncmVlbjtcbiAgICB9XG4gIH1cblxuICAuc2VjdGlvbi50aHVtYnMtZG93biB7XG4gICAgLnRpdGxlIGgzIHtcbiAgICAgIGJhY2tncm91bmQ6ICRyZWQ7XG5cbiAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJ1xcZjE2NSc7XG4gICAgICB9XG4gICAgfVxuICAgIC53cmFwcGVyIHVsLnRyYWNrcyAuaWR4IHtcbiAgICAgIGJhY2tncm91bmQ6ICRyZWQ7XG4gICAgfVxuICB9XG5cbiAgLnNlY3Rpb24uYmFjayB7XG4gICAgQGluY2x1ZGUgYmFjay1zZWN0aW9uO1xuICAgIHBhZGRpbmctdG9wOiA3MHB4O1xuICB9XG5cbn0iXSwibWFwcGluZ3MiOiJBQ0FBLEFBQUEsSUFBSSxFQUFFLEFBQUEsSUFBSSxFQUFFLEFBQUEsR0FBRyxFQUFFLEFBQUEsSUFBSSxFQUFFLEFBQUEsTUFBTSxFQUFFLEFBQUEsTUFBTSxFQUFFLEFBQUEsTUFBTTtBQUM3QyxBQUFBLEVBQUUsRUFBRSxBQUFBLEVBQUUsRUFBRSxBQUFBLEVBQUUsRUFBRSxBQUFBLEVBQUUsRUFBRSxBQUFBLEVBQUUsRUFBRSxBQUFBLEVBQUUsRUFBRSxBQUFBLENBQUMsRUFBRSxBQUFBLFVBQVUsRUFBRSxBQUFBLEdBQUc7QUFDMUMsQUFBQSxDQUFDLEVBQUUsQUFBQSxJQUFJLEVBQUUsQUFBQSxPQUFPLEVBQUUsQUFBQSxPQUFPLEVBQUUsQUFBQSxHQUFHLEVBQUUsQUFBQSxJQUFJLEVBQUUsQUFBQSxJQUFJO0FBQzFDLEFBQUEsR0FBRyxFQUFFLEFBQUEsR0FBRyxFQUFFLEFBQUEsRUFBRSxFQUFFLEFBQUEsR0FBRyxFQUFFLEFBQUEsR0FBRyxFQUFFLEFBQUEsR0FBRyxFQUFFLEFBQUEsQ0FBQyxFQUFFLEFBQUEsQ0FBQyxFQUFFLEFBQUEsSUFBSTtBQUN2QyxBQUFBLEtBQUssRUFBRSxBQUFBLE1BQU0sRUFBRSxBQUFBLE1BQU0sRUFBRSxBQUFBLEdBQUcsRUFBRSxBQUFBLEdBQUcsRUFBRSxBQUFBLEVBQUUsRUFBRSxBQUFBLEdBQUc7QUFDeEMsQUFBQSxDQUFDLEVBQUUsQUFBQSxDQUFDLEVBQUUsQUFBQSxDQUFDLEVBQUUsQUFBQSxNQUFNO0FBQ2YsQUFBQSxFQUFFLEVBQUUsQUFBQSxFQUFFLEVBQUUsQUFBQSxFQUFFLEVBQUUsQUFBQSxFQUFFLEVBQUUsQUFBQSxFQUFFLEVBQUUsQUFBQSxFQUFFO0FBQ3RCLEFBQUEsUUFBUSxFQUFFLEFBQUEsSUFBSSxFQUFFLEFBQUEsS0FBSyxFQUFFLEFBQUEsTUFBTTtBQUM3QixBQUFBLEtBQUssRUFBRSxBQUFBLE9BQU8sRUFBRSxBQUFBLEtBQUssRUFBRSxBQUFBLEtBQUssRUFBRSxBQUFBLEtBQUssRUFBRSxBQUFBLEVBQUUsRUFBRSxBQUFBLEVBQUUsRUFBRSxBQUFBLEVBQUU7QUFDL0MsQUFBQSxPQUFPLEVBQUUsQUFBQSxLQUFLLEVBQUUsQUFBQSxNQUFNLEVBQUUsQUFBQSxPQUFPLEVBQUUsQUFBQSxLQUFLO0FBQ3RDLEFBQUEsTUFBTSxFQUFFLEFBQUEs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 */
