/*
	Theme Name: Gaping Void
	Description: Gapingvoid.com Child theme of Genesis, by <a href="http://cgd.io">Clif Griffin Development Inc</a>.
	Author: Clif Griffin Development Inc.
	Author URI: http://cgd.io

	Template: genesis
*/
@import url(assets/components/normalize.css/normalize.css);
button, input[type="button"], input[type="reset"], input[type="submit"],
.button,
.adjacent-entry-pagination .pagination-previous a,
.adjacent-entry-pagination .pagination-next a {
  appearance: none;
  background-color: #4a90e2;
  border: 0;
  border-radius: 3px;
  color: #fff;
  cursor: pointer;
  display: inline-block;
  font-family: "proxima-nova", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
  font-size: 1em;
  -webkit-font-smoothing: antialiased;
  font-weight: 600;
  line-height: 1;
  padding: 0.75em 1.5em;
  text-decoration: none;
  transition: background-color 150ms ease;
  user-select: none;
  vertical-align: middle;
  white-space: nowrap; }
  button:hover, button:focus, input[type="button"]:hover, input[type="button"]:focus, input[type="reset"]:hover, input[type="reset"]:focus, input[type="submit"]:hover, input[type="submit"]:focus,
  .button:hover,
  .button:focus,
  .adjacent-entry-pagination .pagination-previous a:hover,
  .adjacent-entry-pagination .pagination-previous a:focus,
  .adjacent-entry-pagination .pagination-next a:hover,
  .adjacent-entry-pagination .pagination-next a:focus {
    background-color: #3b73b5;
    color: #fff; }
  button:disabled, input[type="button"]:disabled, input[type="reset"]:disabled, input[type="submit"]:disabled,
  .button:disabled,
  .adjacent-entry-pagination .pagination-previous a:disabled,
  .adjacent-entry-pagination .pagination-next a:disabled {
    cursor: not-allowed;
    opacity: 0.5; }
    button:disabled:hover, input[type="button"]:disabled:hover, input[type="reset"]:disabled:hover, input[type="submit"]:disabled:hover,
    .button:disabled:hover,
    .adjacent-entry-pagination .pagination-previous a:disabled:hover,
    .adjacent-entry-pagination .pagination-next a:disabled:hover {
      background-color: #4a90e2; }
  button a, input[type="button"] a, input[type="reset"] a, input[type="submit"] a,
  .button a,
  .adjacent-entry-pagination .pagination-previous a a,
  .adjacent-entry-pagination .pagination-next a a {
    color: white; }
    button a:hover, input[type="button"] a:hover, input[type="reset"] a:hover, input[type="submit"] a:hover,
    .button a:hover,
    .adjacent-entry-pagination .pagination-previous a a:hover,
    .adjacent-entry-pagination .pagination-next a a:hover {
      color: white; }

fieldset {
  background-color: transparent;
  border: 0;
  margin: 0;
  padding: 0; }

legend {
  font-weight: 600;
  margin-bottom: 0.375em;
  padding: 0; }

label {
  display: block;
  font-weight: 600;
  margin-bottom: 0.375em; }

input,
select {
  display: block;
  font-family: "proxima-nova", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
  font-size: 1em; }

input[type="color"], input[type="date"], input[type="datetime"], input[type="datetime-local"], input[type="email"], input[type="month"], input[type="number"], input[type="password"], input[type="search"], input[type="tel"], input[type="text"], input[type="time"], input[type="url"], input[type="week"], textarea,
select[multiple] {
  background-color: #f4f4f4;
  border: 1px solid #ababab;
  border-radius: 5px;
  box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.06);
  box-sizing: border-box;
  font-family: "proxima-nova", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
  font-size: 1em;
  margin-bottom: 0.75em;
  padding: 0.5em;
  transition: border-color 150ms ease;
  width: 100%; }
  input[type="color"]:hover, input[type="date"]:hover, input[type="datetime"]:hover, input[type="datetime-local"]:hover, input[type="email"]:hover, input[type="month"]:hover, input[type="number"]:hover, input[type="password"]:hover, input[type="search"]:hover, input[type="tel"]:hover, input[type="text"]:hover, input[type="time"]:hover, input[type="url"]:hover, input[type="week"]:hover, textarea:hover,
  select[multiple]:hover {
    border-color: #898989; }
  input[type="color"]:focus, input[type="date"]:focus, input[type="datetime"]:focus, input[type="datetime-local"]:focus, input[type="email"]:focus, input[type="month"]:focus, input[type="number"]:focus, input[type="password"]:focus, input[type="search"]:focus, input[type="tel"]:focus, input[type="text"]:focus, input[type="time"]:focus, input[type="url"]:focus, input[type="week"]:focus, textarea:focus,
  select[multiple]:focus {
    border-color: #4a90e2;
    box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.06), 0 0 5px rgba(52, 131, 222, 0.7);
    outline: none; }
  input[type="color"]:disabled, input[type="date"]:disabled, input[type="datetime"]:disabled, input[type="datetime-local"]:disabled, input[type="email"]:disabled, input[type="month"]:disabled, input[type="number"]:disabled, input[type="password"]:disabled, input[type="search"]:disabled, input[type="tel"]:disabled, input[type="text"]:disabled, input[type="time"]:disabled, input[type="url"]:disabled, input[type="week"]:disabled, textarea:disabled,
  select[multiple]:disabled {
    background-color: #e8e8e8;
    cursor: not-allowed; }
    input[type="color"]:disabled:hover, input[type="date"]:disabled:hover, input[type="datetime"]:disabled:hover, input[type="datetime-local"]:disabled:hover, input[type="email"]:disabled:hover, input[type="month"]:disabled:hover, input[type="number"]:disabled:hover, input[type="password"]:disabled:hover, input[type="search"]:disabled:hover, input[type="tel"]:disabled:hover, input[type="text"]:disabled:hover, input[type="time"]:disabled:hover, input[type="url"]:disabled:hover, input[type="week"]:disabled:hover, textarea:disabled:hover,
    select[multiple]:disabled:hover {
      border: 1px solid #ababab; }

textarea {
  resize: vertical; }

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

[type="checkbox"],
[type="radio"] {
  display: inline;
  margin-right: 0.375em; }

[type="file"] {
  margin-bottom: 0.75em;
  width: 100%; }

select {
  margin-bottom: 1.5em;
  max-width: 100%;
  width: auto; }

ul,
ol {
  list-style-position: inside;
  margin: 0;
  margin-bottom: 0.75em;
  padding: 0; }
  ul.menu,
  ol.menu {
    margin-bottom: 0; }

dl {
  margin-bottom: 0.75em; }
  dl dt {
    font-weight: 600;
    margin-top: 0.75em; }
  dl dd {
    margin: 0; }

table {
  border-collapse: collapse;
  margin: 0.75em 0;
  table-layout: fixed;
  width: 100%; }

th {
  border-bottom: 1px solid gray;
  font-weight: 600;
  padding: 0.75em 0;
  text-align: left; }

td {
  border-bottom: 1px solid #ababab;
  padding: 0.75em 0; }

tr,
td,
th {
  vertical-align: middle; }

body {
  color: #555;
  font-family: "proxima-nova", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
  font-size: 1em;
  font-weight: 500;
  line-height: 1.5; }

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: "proxima-nova", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
  font-size: 1em;
  font-weight: 200;
  line-height: 1.2;
  margin: 0 0 0.75em; }

h1 {
  font-size: 2.25em; }

h2 {
  font-size: 2em; }

h3 {
  font-size: 1.75em; }

h4 {
  font-size: 1.5em; }

h5 {
  font-size: 1.25em; }

h6 {
  font-size: 1em; }

.mega-header {
  font-size: 60px; }

p {
  margin: 0 0 0.75em; }
  p + h1,
  p + h2,
  p + h3,
  p + h4,
  p + h5,
  p + h6 {
    margin-top: 0.75em; }
  p > a > .button,
  p > a.button {
    margin: 0.75em 0; }

a {
  color: #4a90e2;
  text-decoration: none;
  transition: color 150ms ease; }
  a:active, a:focus, a:hover {
    color: #386caa; }

hr {
  border-bottom: 1px solid #ababab;
  border-left: 0;
  border-right: 0;
  border-top: 0;
  margin: 1.5em 0; }

img,
picture {
  margin: 0;
  max-width: 100%; }

html {
  box-sizing: border-box; }

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

/* ## Site Containers
--------------------------------------------- */
.site-inner:not(.full),
.wrap {
  max-width: 1000px;
  margin-left: auto;
  margin-right: auto; }
  .site-inner:not(.full)::after,
  .wrap::after {
    clear: both;
    content: "";
    display: table; }

.site-inner {
  background: white;
  position: relative;
  z-index: 10; }

.site-inner:not(.full),
.site-header .wrap,
.page-banner .wrap {
  padding: 0 1.875em; }
  @media screen and (min-width: 900px) {
    .site-inner:not(.full),
    .site-header .wrap,
    .page-banner .wrap {
      padding: 0; } }

@media screen and (min-width: 900px) {
  .page-banner .wrap,
  .page .entry-content,
  .page .content,
  .page .entry-header {
    max-width: 860px;
    margin-left: auto;
    margin-right: auto;
    padding: 0; }
    .page-banner .wrap::after,
    .page .entry-content::after,
    .page .content::after,
    .page .entry-header::after {
      clear: both;
      content: "";
      display: table; } }

.page .content {
  display: block;
  margin: 0 auto;
  float: none; }

/* ## Column Widths and Positions
--------------------------------------------- */
.content,
.sidebar-primary,
.full-width .content {
  float: left;
  display: block;
  margin-right: 2.35765%;
  width: 100%;
  margin-right: 0; }
  .content:last-child,
  .sidebar-primary:last-child,
  .full-width .content:last-child {
    margin-right: 0; }

@media screen and (min-width: 900px) {
  .content-sidebar .content-sidebar-wrap,
  .sidebar-content .content-sidebar-wrap,
  .full-width-content .content-sidebar-wrap {
    float: left;
    display: block;
    margin-right: 2.35765%;
    width: 100%;
    margin-right: 0; }
    .content-sidebar .content-sidebar-wrap:last-child,
    .sidebar-content .content-sidebar-wrap:last-child,
    .full-width-content .content-sidebar-wrap:last-child {
      margin-right: 0; }
  .full-width-content .content-sidebar-wrap .content {
    display: block;
    margin: 0 auto;
    float: none; }
  .content-sidebar .content-sidebar-wrap .content {
    float: left;
    display: block;
    margin-right: 2.35765%;
    width: 74.41059%; }
    .content-sidebar .content-sidebar-wrap .content:last-child {
      margin-right: 0; }
  .content-sidebar .content-sidebar-wrap .sidebar-primary {
    float: left;
    display: block;
    margin-right: 2.35765%;
    width: 23.23176%;
    margin-right: 0; }
    .content-sidebar .content-sidebar-wrap .sidebar-primary:last-child {
      margin-right: 0; }
  .sidebar-content .content-sidebar-wrap .content {
    float: left;
    display: block;
    margin-right: 2.35765%;
    width: 74.41059%;
    margin-right: 0;
    float: right; }
    .sidebar-content .content-sidebar-wrap .content:last-child {
      margin-right: 0; }
  .sidebar-content .content-sidebar-wrap .sidebar-primary {
    float: left;
    display: block;
    margin-right: 2.35765%;
    width: 23.23176%; }
    .sidebar-content .content-sidebar-wrap .sidebar-primary:last-child {
      margin-right: 0; }
    .sidebar-content .content-sidebar-wrap .sidebar-primary:last-child {
      margin-right: 2.35765%; }
  .content-sidebar-sidebar .content-sidebar-wrap,
  .sidebar-sidebar-content .content-sidebar-wrap,
  .sidebar-content-sidebar .content-sidebar-wrap {
    float: left;
    display: block;
    margin-right: 2.35765%;
    width: 74.41059%; }
    .content-sidebar-sidebar .content-sidebar-wrap:last-child,
    .sidebar-sidebar-content .content-sidebar-wrap:last-child,
    .sidebar-content-sidebar .content-sidebar-wrap:last-child {
      margin-right: 0; }
    .content-sidebar-sidebar .content-sidebar-wrap .content,
    .sidebar-sidebar-content .content-sidebar-wrap .content,
    .sidebar-content-sidebar .content-sidebar-wrap .content {
      float: left;
      display: block;
      margin-right: 3.16844%;
      width: 65.61052%; }
      .content-sidebar-sidebar .content-sidebar-wrap .content:last-child,
      .sidebar-sidebar-content .content-sidebar-wrap .content:last-child,
      .sidebar-content-sidebar .content-sidebar-wrap .content:last-child {
        margin-right: 0; }
    .content-sidebar-sidebar .content-sidebar-wrap .sidebar-primary,
    .sidebar-sidebar-content .content-sidebar-wrap .sidebar-primary,
    .sidebar-content-sidebar .content-sidebar-wrap .sidebar-primary {
      float: left;
      display: block;
      margin-right: 3.16844%;
      width: 31.22104%;
      margin-right: 0; }
      .content-sidebar-sidebar .content-sidebar-wrap .sidebar-primary:last-child,
      .sidebar-sidebar-content .content-sidebar-wrap .sidebar-primary:last-child,
      .sidebar-content-sidebar .content-sidebar-wrap .sidebar-primary:last-child {
        margin-right: 0; }
  .content-sidebar-sidebar .sidebar-secondary {
    float: left;
    display: block;
    margin-right: 2.35765%;
    width: 23.23176%;
    margin-right: 0; }
    .content-sidebar-sidebar .sidebar-secondary:last-child {
      margin-right: 0; }
  .sidebar-sidebar-content .content-sidebar-wrap {
    float: left;
    display: block;
    margin-right: 2.35765%;
    width: 74.41059%;
    margin-right: 0;
    float: right; }
    .sidebar-sidebar-content .content-sidebar-wrap:last-child {
      margin-right: 0; }
    .sidebar-sidebar-content .content-sidebar-wrap .sidebar-primary {
      float: left;
      display: block;
      margin-right: 3.16844%;
      width: 31.22104%; }
      .sidebar-sidebar-content .content-sidebar-wrap .sidebar-primary:last-child {
        margin-right: 0; }
      .sidebar-sidebar-content .content-sidebar-wrap .sidebar-primary:last-child {
        margin-right: 2.35765%; }
    .sidebar-sidebar-content .content-sidebar-wrap .content {
      float: left;
      display: block;
      margin-right: 3.16844%;
      width: 65.61052%;
      margin-right: 0;
      float: right; }
      .sidebar-sidebar-content .content-sidebar-wrap .content:last-child {
        margin-right: 0; }
  .sidebar-sidebar-content .sidebar-secondary {
    float: left;
    display: block;
    margin-right: 2.35765%;
    width: 23.23176%; }
    .sidebar-sidebar-content .sidebar-secondary:last-child {
      margin-right: 0; }
    .sidebar-sidebar-content .sidebar-secondary:first-child {
      margin-right: 2.35765%; }
  .sidebar-content-sidebar .content-sidebar-wrap {
    float: left;
    display: block;
    margin-right: 2.35765%;
    width: 74.41059%;
    margin-right: 0;
    float: right; }
    .sidebar-content-sidebar .content-sidebar-wrap:last-child {
      margin-right: 0; }
    .sidebar-content-sidebar .content-sidebar-wrap .content {
      float: left;
      display: block;
      margin-right: 3.16844%;
      width: 65.61052%; }
      .sidebar-content-sidebar .content-sidebar-wrap .content:last-child {
        margin-right: 0; }
    .sidebar-content-sidebar .content-sidebar-wrap .sidebar-primary {
      float: left;
      display: block;
      margin-right: 3.16844%;
      width: 31.22104%;
      margin-right: 0; }
      .sidebar-content-sidebar .content-sidebar-wrap .sidebar-primary:last-child {
        margin-right: 0; }
  .sidebar-content-sidebar .sidebar-secondary {
    float: left;
    display: block;
    margin-right: 2.35765%;
    width: 23.23176%; }
    .sidebar-content-sidebar .sidebar-secondary:last-child {
      margin-right: 0; }
    .sidebar-content-sidebar .sidebar-secondary:first-child {
      margin-right: 2.35765%; } }

embed,
iframe,
img,
object,
video,
.wp-caption {
  max-width: 100%; }

img {
  height: auto; }

.featured-content img,
.gallery img {
  width: auto; }

.avatar {
  float: left; }

.alignleft .avatar,
.author-box .avatar {
  margin-right: 24px; }

.alignright .avatar {
  margin-left: 24px; }

.comment .avatar {
  margin: 0 16px 24px 0; }

a.aligncenter img {
  display: block;
  margin: 0 auto; }

a.alignnone {
  display: inline-block; }

.alignleft {
  float: left;
  text-align: left; }

.alignright {
  float: right;
  text-align: right; }

a.alignleft,
a.alignnone,
a.alignright {
  max-width: 100%; }

img.centered,
.aligncenter {
  display: block;
  margin: 0 auto 3em; }

img.alignnone,
.alignnone {
  margin-bottom: 1.5em; }

a.alignleft,
img.alignleft,
.wp-caption.alignleft {
  margin: 0 3em 3em 0; }

a.alignright,
img.alignright,
.wp-caption.alignright {
  margin: 0 0 3em 3em; }

.wp-caption-text {
  font-size: 1em;
  text-align: center; }

.entry-content p.wp-caption-text {
  margin-bottom: 0; }

.widget {
  word-wrap: break-word; }

.widget li li {
  border: none;
  margin: 0 0 0 3em;
  padding: 0; }

.widget_calendar table {
  width: 100%; }

.widget_calendar td,
.widget_calendar th {
  text-align: center; }

.nav-trigger {
  -webkit-transform: translateY(-50%);
  -moz-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  -o-transform: translateY(-50%);
  transform: translateY(-50%);
  display: block;
  height: 45px;
  position: absolute;
  right: 15px;
  top: 50%;
  width: 45px; }
  .nav-trigger span, .nav-trigger span::before, .nav-trigger span::after {
    /* hamburger icon in CSS */
    position: absolute;
    display: inline-block;
    height: 3px;
    width: 24px;
    background: #555; }
  .nav-trigger span {
    /* line in the center */
    position: absolute;
    top: 50%;
    right: 10px;
    margin-top: -2px;
    -webkit-transition: background 0.3s 0.3s;
    -moz-transition: background 0.3s 0.3s;
    transition: background 0.3s 0.3s; }
  .nav-trigger span::before, .nav-trigger span::after {
    /* other 2 lines */
    content: '';
    right: 0;
    /* Force Hardware Acceleration in WebKit */
    -webkit-transform: translateZ(0);
    -moz-transform: translateZ(0);
    -ms-transform: translateZ(0);
    -o-transform: translateZ(0);
    transform: translateZ(0);
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    -webkit-transform-origin: 0% 50%;
    -moz-transform-origin: 0% 50%;
    -ms-transform-origin: 0% 50%;
    -o-transform-origin: 0% 50%;
    transform-origin: 0% 50%;
    -webkit-transition: -webkit-transform 0.3s 0.3s;
    -moz-transition: -moz-transform 0.3s 0.3s;
    transition: transform 0.3s 0.3s; }
  .nav-trigger span::before {
    /* menu icon top line */
    top: -6px; }
  .nav-trigger span::after {
    /* menu icon bottom line */
    top: 6px; }
  .nav-trigger.mobile-is-open span {
    /* hide line in the center */
    background: rgba(255, 255, 255, 0); }
  .nav-trigger.mobile-is-open span::before, .nav-trigger.mobile-is-open span::after {
    /* keep visible other 2 lines */
    background: #555; }
  .nav-trigger.mobile-is-open span::before {
    -webkit-transform: translateX(4px) translateY(-3px) rotate(45deg);
    -moz-transform: translateX(4px) translateY(-3px) rotate(45deg);
    -ms-transform: translateX(4px) translateY(-3px) rotate(45deg);
    -o-transform: translateX(4px) translateY(-3px) rotate(45deg);
    transform: translateX(4px) translateY(-3px) rotate(45deg); }
  .nav-trigger.mobile-is-open span::after {
    -webkit-transform: translateX(4px) translateY(2px) rotate(-45deg);
    -moz-transform: translateX(4px) translateY(2px) rotate(-45deg);
    -ms-transform: translateX(4px) translateY(2px) rotate(-45deg);
    -o-transform: translateX(4px) translateY(2px) rotate(-45deg);
    transform: translateX(4px) translateY(2px) rotate(-45deg); }

@media screen and (min-width: 900px) {
  .nav-trigger {
    display: none; } }

.site-title a,
.site-title a:hover {
  color: #4a4a4a; }

.header-image .site-title > a {
  background: url(assets/images/logo.png) no-repeat left;
  background-size: contain;
  float: left;
  min-height: 50px;
  width: 100%; }

.genesis-nav-menu .menu-item {
  display: inline-block;
  text-align: left; }

.genesis-nav-menu a {
  color: #4a4a4a;
  display: block;
  padding-left: 1.875em; }

.genesis-nav-menu a:hover,
.genesis-nav-menu .current-menu-item > a,
.genesis-nav-menu .sub-menu .current-menu-item > a:hover {
  color: #4a90e2; }

.page-title {
  font-size: 42px;
  font-weight: 500;
  color: #555;
  margin: 0; }

.page-desc {
  color: #555;
  font-size: 30px;
  font-weight: 100;
  line-height: 36px;
  margin: 0; }

.featured-image {
  padding-bottom: 0.9375em; }
  .featured-image img {
    display: block;
    margin: 0 auto; }

/*******
** We aren't going to use Neat for this gallery due to the possible number of gallery columns
** that don't easily break into 12.
*******/
.gallery {
  overflow: hidden; }

.gallery-item {
  float: left;
  margin: 0 0 28px;
  text-align: center; }

.gallery-columns-2 .gallery-item {
  width: 50%; }

.gallery-columns-3 .gallery-item {
  width: 33%; }

.gallery-columns-4 .gallery-item {
  width: 25%; }

.gallery-columns-5 .gallery-item {
  width: 20%; }

.gallery-columns-6 .gallery-item {
  width: 16.6666%; }

.gallery-columns-7 .gallery-item {
  width: 14.2857%; }

.gallery-columns-8 .gallery-item {
  width: 12.5%; }

.gallery-columns-9 .gallery-item {
  width: 11.1111%; }

.gallery img {
  border: 1px solid #4a4a4a;
  height: auto;
  padding: 4px; }

.gallery img:hover {
  border: 1px solid #ababab; }

.breadcrumb {
  background: #f4f4f4;
  color: #555;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 1px;
  padding: 1.875em 1.875em; }
  @media screen and (min-width: 900px) {
    .breadcrumb {
      padding: 1.875em 0; } }

.title-area {
  float: left;
  display: block;
  margin-right: 2.35765%;
  width: 100%;
  margin-right: 0;
  padding: 12px 0; }
  .title-area:last-child {
    margin-right: 0; }
  @media screen and (min-width: 900px) {
    .title-area {
      float: left;
      display: block;
      margin-right: 2.35765%;
      width: 23.23176%;
      padding: 12px;
      padding-left: 0; }
      .title-area:last-child {
        margin-right: 0; } }

.header-full-width .title-area {
  width: 100%; }

.site-description,
.site-title {
  margin-bottom: 0; }

.header-image .site-description,
.header-image .site-title {
  display: block;
  text-indent: -9999px; }

.genesis-nav-menu .sub-menu {
  -webkit-transition: opacity 0.4s ease-in-out;
  -moz-transition: opacity 0.4s ease-in-out;
  transition: opacity 0.4s ease-in-out;
  background: white;
  border: 1px solid #ababab;
  border-top: none;
  left: -9999px;
  margin-left: 1.875em;
  margin-top: 5px;
  opacity: 0;
  position: absolute;
  width: 18.75em;
  z-index: 100;
  top: 0;
  margin-top: 59px; }
  .genesis-nav-menu .sub-menu:after, .genesis-nav-menu .sub-menu:before {
    border: 10px solid transparent;
    content: '';
    height: 0;
    position: absolute;
    width: 0; }
  .genesis-nav-menu .sub-menu:before {
    border-bottom-color: #fff;
    position: absolute;
    top: -20px;
    left: 5%;
    z-index: 2; }
  .genesis-nav-menu .sub-menu:after {
    border-bottom-color: #ababab;
    position: absolute;
    top: -21px;
    left: 5%;
    z-index: 1; }

.genesis-nav-menu .sub-menu a {
  border-top: none;
  font-size: 1em;
  line-height: 1;
  padding: 0.75em;
  position: relative;
  width: 18.75em; }

.genesis-nav-menu .sub-menu .sub-menu {
  margin: -55px 0 0 199px; }

.genesis-nav-menu .menu-item:hover {
  position: static; }

.genesis-nav-menu .menu-item:hover > .sub-menu {
  left: auto;
  opacity: 1; }

.site-header .sub-menu {
  border-top: 1px solid #ababab; }

.site-header .sub-menu .sub-menu {
  margin-top: -56px; }

.entry-content ol,
.entry-content ul {
  margin-bottom: 28px;
  margin-left: 40px; }

.entry-content ol > li {
  list-style-type: decimal; }

.entry-content ul > li {
  list-style-type: disc; }

.entry-content ol ol,
.entry-content ul ul {
  margin-bottom: 0; }

.entry-content code {
  background-color: #333;
  color: #ddd; }

p.entry-meta {
  font-size: 1em;
  margin-bottom: 0; }

.entry-header .entry-meta {
  margin-bottom: 3em; }

.entry-footer .entry-meta {
  border-top: 1px solid #ababab;
  padding-top: 3em; }

.entry-categories,
.entry-tags {
  display: block; }

.entry-comments-link::before {
  content: "\2014";
  margin: 0 1.5em 0 0.75em; }

.pagination {
  clear: both;
  margin: 3em 0; }
  .pagination .pagination-previous, .pagination .pagination-next {
    float: none;
    width: 100%;
    margin-bottom: 5px;
    text-align: center; }
    @media screen and (min-width: 600px) {
      .pagination .pagination-previous, .pagination .pagination-next {
        width: 50%; } }
  .pagination .pagination-previous a, .pagination .pagination-next a {
    width: 100%; }
    @media screen and (min-width: 600px) {
      .pagination .pagination-previous a, .pagination .pagination-next a {
        width: auto;
        margin-bottom: 0px; } }
  @media screen and (min-width: 600px) {
    .pagination .pagination-previous a, .pagination .pagination-previous {
      float: left; } }
  @media screen and (min-width: 600px) {
    .pagination .pagination-next a, .pagination .pagination-next {
      float: right; } }

.adjacent-entry-pagination {
  margin-bottom: 0; }

.archive-pagination li {
  display: inline; }
  .archive-pagination li a {
    -webkit-transition: all 0.2s ease;
    -moz-transition: all 0.2s ease;
    transition: all 0.2s ease;
    background-color: #4a4a4a;
    color: white;
    cursor: pointer;
    display: inline-block;
    font-size: 1em;
    line-height: 1;
    padding: 6px 10px; }
    .archive-pagination li a:hover {
      background-color: #4a90e2; }
  .archive-pagination li.active a {
    background-color: #4a90e2; }

.top-utils .pagination {
  margin: 0; }

.top-utils .search-form {
  display: inline-block; }
  .top-utils .search-form input[type="search"] {
    background: white;
    margin: 0;
    width: 320px; }
  .top-utils .search-form input[type="submit"] {
    display: none; }

.adjacent-entry-pagination {
  overflow: auto; }

.site-header .header-widget-area {
  display: none; }
  @media screen and (min-width: 900px) {
    .site-header .header-widget-area {
      display: block;
      padding: 0.625em 0;
      padding-top: 1em; } }

@media screen and (min-width: 900px) {
  .widget_search_social {
    float: right;
    margin-bottom: 0.9375em; }
  .widget_search_social .search-form-wrapper,
  .widget_search_social .social-links {
    display: block;
    float: left; }
  .widget_search_social .search-form-wrapper {
    background: #d8d8d8;
    border: none;
    border-radius: 3px;
    overflow: auto; }
  .widget_search_social .search-form-icon,
  .widget_search_social .search-form {
    display: block;
    float: left; }
  .widget_search_social .search-form-icon {
    padding: 0 5px; }
    .widget_search_social .search-form-icon svg {
      height: 14px;
      width: 14px; }
  .widget_search_social .search-form input[type="search"] {
    background: #d8d8d8;
    border: none;
    box-shadow: none;
    font-size: 11px;
    margin: 0;
    padding: 6px;
    width: 150px; }
  .widget_search_social .search-form input[type="submit"] {
    display: none; }
  .widget_search_social .social-links {
    border-left: 1px solid #ababab;
    margin-left: 15px;
    padding-left: 15px; }
  .widget_search_social .social-link {
    position: relative;
    top: 3px; }
  .widget_search_social .social-link a svg {
    -webkit-transition: all 150ms ease;
    -moz-transition: all 150ms ease;
    transition: all 150ms ease;
    fill: #555;
    height: 18px;
    width: 18px; }
  .widget_search_social .social-link a:hover svg {
    fill: #4a90e2; } }

.services-menu {
  position: fixed;
  top: -100%;
  left: 0;
  opacity: 0;
  right: 0;
  text-align: center;
  transition: opacity 150ms ease;
  z-index: 1000; }
  .services-menu li {
    display: inline;
    padding: 0 20px; }
  .services-menu.is-present {
    opacity: 1;
    top: 0; }

/* Dropdown control */
.selectBox-dropdown {
  min-width: 150px;
  position: relative;
  border: solid 1px #BBB;
  line-height: 1.5;
  text-decoration: none;
  text-align: left;
  color: #000;
  outline: none;
  vertical-align: middle;
  background: #F2F2F2;
  background: -moz-linear-gradient(top, #F8F8F8 1%, #E1E1E1 100%);
  background: -webkit-gradient(linear, left top, left bottom, color-stop(1%, #F8F8F8), color-stop(100%, #E1E1E1));
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#F8F8F8', endColorstr='#E1E1E1', GradientType=0);
  -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.75);
  -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.75);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.75);
  -webkit-border-radius: 4px;
  -moz-border-radius: 4px;
  border-radius: 4px;
  display: inline-block;
  cursor: default; }

.selectBox-dropdown:focus,
.selectBox-dropdown:focus .selectBox-arrow {
  border-color: #666; }

.selectBox-dropdown.selectBox-menuShowing {
  -moz-border-radius-bottomleft: 0;
  -moz-border-radius-bottomright: 0;
  -webkit-border-bottom-left-radius: 0;
  -webkit-border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0; }

.selectBox-dropdown .selectBox-label {
  padding: 2px 8px;
  display: inline-block;
  white-space: nowrap;
  overflow: hidden; }

.selectBox-dropdown .selectBox-arrow {
  position: absolute;
  top: 0;
  right: 0;
  width: 23px;
  height: 100%;
  background: url(jquery.selectBox-arrow.gif) 50% center no-repeat;
  border-left: solid 1px #BBB; }

/* Dropdown menu */
.selectBox-dropdown-menu {
  position: absolute;
  z-index: 99999;
  max-height: 200px;
  min-height: 1em;
  border: solid 1px #BBB;
  /* should be the same border width as .selectBox-dropdown */
  background: #FFF;
  -moz-box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
  -webkit-box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
  overflow: auto;
  -webkit-overflow-scrolling: touch; }

/* Inline control */
.selectBox-inline {
  min-width: 150px;
  outline: none;
  border: solid 1px #BBB;
  background: #FFF;
  display: inline-block;
  -webkit-border-radius: 4px;
  -moz-border-radius: 4px;
  border-radius: 4px;
  overflow: auto; }

.selectBox-inline:focus {
  border-color: #666; }

/* Options */
.selectBox-options,
.selectBox-options LI,
.selectBox-options LI A {
  list-style: none;
  display: block;
  cursor: default;
  padding: 0;
  margin: 0; }

.selectBox-options LI A {
  line-height: 1.5;
  padding: 0 .5em;
  white-space: nowrap;
  overflow: hidden;
  background: 6px center no-repeat; }

.selectBox-options LI.selectBox-hover A {
  background-color: #EEE; }

.selectBox-options LI.selectBox-disabled A {
  color: #888;
  background-color: transparent; }

.selectBox-options LI.selectBox-selected A {
  background-color: #C8DEF4; }

.selectBox-options .selectBox-optgroup {
  color: #666;
  background: #EEE;
  font-weight: bold;
  line-height: 1.5;
  padding: 0 .3em;
  white-space: nowrap; }

/* Disabled state */
.selectBox.selectBox-disabled {
  color: #888 !important; }

.selectBox-dropdown.selectBox-disabled .selectBox-arrow {
  opacity: .5;
  filter: alpha(opacity=50);
  border-color: #666; }

.selectBox-inline.selectBox-disabled {
  color: #888 !important; }

.selectBox-inline.selectBox-disabled .selectBox-options A {
  background-color: transparent !important; }

.selectBox {
  background: #4a90e2 !important;
  color: white !important;
  font-size: 14px !important;
  border-radius: 5px !important;
  margin-bottom: 0.75em;
  position: relative !important;
  width: 100% !important; }
  @media screen and (min-width: 900px) {
    .selectBox {
      margin-bottom: 0;
      width: 155px !important; } }

.selectBox-dropdown .selectBox-label {
  padding-top: 7px !important; }

.selectBox-dropdown-menu {
  width: 100%;
  position: absolute;
  z-index: 999;
  overflow: auto; }

.selectBox-dropdown .selectBox-arrow {
  position: absolute !important;
  background: url("assets/images/drop-down-arrow.png") no-repeat !important;
  border: none !important;
  width: 11px !important;
  height: 6px !important;
  right: 15px !important;
  top: 14px !important;
  cursor: pointer !important; }

.site-header {
  background-color: #fff;
  border-bottom: 1px solid #e6e6e6;
  position: relative; }
  .site-header .wrap {
    max-width: 1200px;
    margin-left: auto;
    margin-right: auto; }
    .site-header .wrap::after {
      clear: both;
      content: "";
      display: table; }
  @media screen and (min-width: 900px) {
    .site-header {
      min-height: 4.6875em; } }

.site-header .widget-area {
  float: left;
  display: block;
  margin-right: 2.35765%;
  width: 100%;
  margin-right: 0;
  display: none;
  text-align: left; }
  .site-header .widget-area:last-child {
    margin-right: 0; }
  @media screen and (min-width: 900px) {
    .site-header .widget-area {
      float: left;
      display: block;
      margin-right: 2.35765%;
      width: 74.41059%;
      margin-right: 0;
      display: block;
      text-align: right; }
      .site-header .widget-area:last-child {
        margin-right: 0; } }

#menu-main-menu-1 .nav-search {
  position: relative;
  width: 40px;
  height: 16px; }
  #menu-main-menu-1 .nav-search svg {
    position: absolute;
    top: 0;
    left: 12px;
    width: 20px;
    fill: #4a4a4a; }
  #menu-main-menu-1 .nav-search:hover svg {
    fill: #4a90e2; }

.header-widget-area {
  position: relative; }

.navbar-search {
  display: none;
  background-color: white;
  position: absolute;
  top: 0;
  width: 100%;
  height: 100%;
  z-index: 1000; }
  .navbar-search .nav-search-wrap {
    padding-top: 18px;
    position: relative; }
  .navbar-search form {
    width: 95%; }
    .navbar-search form input {
      background-color: white; }
  .navbar-search .close-nav-search {
    position: absolute;
    top: 24px;
    right: 0; }
    .navbar-search .close-nav-search:hover {
      cursor: pointer; }

.genesis-nav-menu {
  clear: both;
  font-size: 1em;
  line-height: 1.5;
  width: 100%; }

.genesis-nav-menu > .first > a {
  padding-left: 0; }

.genesis-nav-menu > .last > a {
  padding-right: 0; }

.genesis-nav-menu > .right {
  color: white;
  float: right;
  list-style-type: none;
  padding: 3em 0; }

.genesis-nav-menu > .right > a {
  display: inline;
  padding: 0; }

.genesis-nav-menu > .rss > a {
  margin-left: 48px; }

.genesis-nav-menu > .search {
  padding: 1.5em 0 0; }

.site-header .genesis-nav-menu li li {
  margin-left: 0; }

.nav-primary {
  background-color: #4a4a4a; }

.nav-primary .genesis-nav-menu a {
  color: white; }

.nav-primary .genesis-nav-menu .sub-menu a {
  color: #4a4a4a; }

.nav-primary .genesis-nav-menu a:hover,
.nav-primary .genesis-nav-menu .current-menu-item > a,
.nav-primary .genesis-nav-menu .sub-menu .current-menu-item > a:hover {
  color: #4a90e2; }

.nav-secondary {
  background-color: white; }

@media screen and (min-width: 900px) {
  .site-header .menu-item {
    font-size: 15px;
    font-weight: 500;
    line-height: 43px; } }

.site-subheader {
  background: #4a4a4a; }
  .site-subheader .wrap {
    max-width: 1200px;
    margin-left: auto;
    margin-right: auto; }
    .site-subheader .wrap::after {
      clear: both;
      content: "";
      display: table; }

.site-subheader .genesis-nav-menu {
  text-align: center;
  padding: 10px 0; }
  @media screen and (min-width: 600px) {
    .site-subheader .genesis-nav-menu {
      text-align: right; } }
  .site-subheader .genesis-nav-menu .menu-item {
    font-size: 14px; }
    .site-subheader .genesis-nav-menu .menu-item:first-child a {
      padding-left: 0; }
      @media screen and (min-width: 600px) {
        .site-subheader .genesis-nav-menu .menu-item:first-child a {
          padding-left: 1.875em; } }
  .site-subheader .genesis-nav-menu .menu-item a {
    color: white; }
    .site-subheader .genesis-nav-menu .menu-item a:hover {
      color: #4a90e2; }

.site-subheader .newsletter-button a {
  -webkit-transition: background-color 150ms ease;
  -moz-transition: background-color 150ms ease;
  transition: background-color 150ms ease;
  background: #4a90e2;
  border-radius: 3px;
  color: white;
  margin-left: 20px;
  padding: 5px 10px; }
  .site-subheader .newsletter-button a:hover {
    color: white !important;
    background: #4382cb; }

.site-subheader .wpmenucartli a {
  padding-left: 1.25em; }
  @media (max-width: 1230px) {
    .site-subheader .wpmenucartli a {
      padding-right: 1.25em; } }

@-webkit-keyframes slideUp {
  0% {
    -webkit-transform: translateY(80%); }
  100% {
    -webkit-transform: translateY(0); } }

@-moz-keyframes slideUp {
  0% {
    -moz-transform: translateY(80%); }
  100% {
    -moz-transform: translateY(0); } }

@keyframes slideUp {
  0% {
    -webkit-transform: translateY(80%);
    -moz-transform: translateY(80%);
    -ms-transform: translateY(80%);
    -o-transform: translateY(80%);
    transform: translateY(80%); }
  100% {
    -webkit-transform: translateY(0);
    -moz-transform: translateY(0);
    -ms-transform: translateY(0);
    -o-transform: translateY(0);
    transform: translateY(0); } }

.page-banner {
  background: #f4f4f4;
  z-index: 1; }
  .page-banner .wrap {
    padding: 3.125em 1.875em;
    position: relative; }
    @media screen and (min-width: 900px) {
      .page-banner .wrap {
        padding: 3.125em 0; } }

.page-banner-image {
  position: absolute;
  bottom: -5px;
  right: 30px;
  z-index: 1; }
  @media screen and (min-width: 600px) {
    .page-banner-image {
      -webkit-transform: translateY(100%);
      -moz-transform: translateY(100%);
      -ms-transform: translateY(100%);
      -o-transform: translateY(100%);
      transform: translateY(100%);
      -webkit-animation: slideUp 2s ease-in-out;
      -moz-animation: slideUp 2s ease-in-out;
      animation: slideUp 2s ease-in-out;
      -webkit-animation-fill-mode: forwards;
      -moz-animation-fill-mode: forwards;
      animation-fill-mode: forwards;
      -webkit-animation-delay: 0.2s;
      -moz-animation-delay: 0.2s;
      animation-delay: 0.2s; } }
  @media screen and (min-width: 900px) {
    .page-banner-image {
      right: 0; } }
  .page-banner-image img {
    width: 125px; }
    @media screen and (min-width: 600px) {
      .page-banner-image img {
        width: 185px; } }

@-webkit-keyframes bounce {
  0%, 30%, 50%, 70% {
    -webkit-transform: translateY(30%); }
  20% {
    -webkit-transform: translateY(20%); }
  60% {
    -webkit-transform: translateY(20%); }
  100% {
    -webkit-transform: translateY(0%); } }

@-moz-keyframes bounce {
  0%, 30%, 50%, 70% {
    -moz-transform: translateY(30%); }
  20% {
    -moz-transform: translateY(20%); }
  60% {
    -moz-transform: translateY(20%); }
  100% {
    -moz-transform: translateY(0%); } }

@keyframes bounce {
  0%, 30%, 50%, 70% {
    -webkit-transform: translateY(30%);
    -moz-transform: translateY(30%);
    -ms-transform: translateY(30%);
    -o-transform: translateY(30%);
    transform: translateY(30%); }
  20% {
    -webkit-transform: translateY(20%);
    -moz-transform: translateY(20%);
    -ms-transform: translateY(20%);
    -o-transform: translateY(20%);
    transform: translateY(20%); }
  60% {
    -webkit-transform: translateY(20%);
    -moz-transform: translateY(20%);
    -ms-transform: translateY(20%);
    -o-transform: translateY(20%);
    transform: translateY(20%); }
  100% {
    -webkit-transform: translateY(0%);
    -moz-transform: translateY(0%);
    -ms-transform: translateY(0%);
    -o-transform: translateY(0%);
    transform: translateY(0%); } }

.page-newsletter {
  background: #4a4a4a;
  color: white;
  overflow: auto;
  padding: 25px;
  text-align: center; }
  .page-template-template-culture-sub .page-newsletter,
  .page-template-template-culture-design .page-newsletter,
  .home .page-newsletter {
    display: none; }
  .page-newsletter span {
    font-weight: 300; }
  .page-newsletter .wrap {
    position: relative; }
  .page-newsletter .page-newsletter-content,
  .page-newsletter form {
    display: inline-block; }
  .page-newsletter form {
    color: #555;
    margin-top: 15px;
    width: 100%; }
    @media screen and (min-width: 900px) {
      .page-newsletter form {
        width: 350px; } }
  .page-newsletter input[type="text"],
  .page-newsletter input[type="email"] {
    background: white;
    display: inline-block;
    margin-bottom: 0;
    max-width: 200px; }
  .page-newsletter input[type="text"] {
    float: left; }
    @media screen and (min-width: 900px) {
      .page-newsletter input[type="text"] {
        float: none; } }
  .page-newsletter input[type="submit"] {
    border-radius: 5px;
    float: right;
    height: 40px;
    margin-bottom: 0;
    margin-left: -10px;
    padding: 9px 25px; }

.page-newsletter-image {
  display: none;
  position: absolute;
  bottom: -32px; }
  @media screen and (min-width: 900px) {
    .page-newsletter-image {
      display: block; } }
  .page-newsletter-image.left {
    -webkit-animation: bounce 2s 1;
    -moz-animation: bounce 2s 1;
    animation: bounce 2s 1;
    left: 60px; }
  .page-newsletter-image.right {
    right: 50px; }

.entry {
  margin-bottom: 6em;
  padding: 1.875em 0; }

.content .entry {
  background-color: white; }

.content-sidebar-wrap {
  margin-top: 1.25em; }

.culture-desc ul {
  margin-left: 15px; }
  .culture-desc ul li {
    list-style-type: none;
    margin-left: 20px;
    position: relative;
    margin-bottom: 10px; }
  .culture-desc ul > li > ul li {
    margin-top: 10px; }
    .culture-desc ul > li > ul li:before {
      content: '';
      position: absolute;
      width: 6px;
      height: 6px;
      background: #4a90e2;
      top: 8px;
      left: -20px;
      border-radius: 50%; }
  .culture-desc ul > li:before {
    content: '';
    position: absolute;
    width: 8px;
    height: 8px;
    background: #4a90e2;
    top: 8px;
    left: -20px;
    border-radius: 50%; }
  .culture-desc ul > li:last-child {
    margin-bottom: 0; }

.post .entry-content img:first-child {
  display: block;
  margin: 0 auto; }
  @media screen and (min-width: 600px) {
    .post .entry-content img:first-child {
      max-width: 600px; } }

.comment-respond,
.entry-comments,
.entry-pings {
  background-color: #f4f4f4;
  padding: 30px;
  margin-bottom: 2em; }
  .comment-respond input[type="color"], .comment-respond input[type="date"], .comment-respond input[type="datetime"], .comment-respond input[type="datetime-local"], .comment-respond input[type="email"], .comment-respond input[type="month"], .comment-respond input[type="number"], .comment-respond input[type="password"], .comment-respond input[type="search"], .comment-respond input[type="tel"], .comment-respond input[type="text"], .comment-respond input[type="time"], .comment-respond input[type="url"], .comment-respond input[type="week"], .comment-respond textarea,
  .entry-comments input[type="color"],
  .entry-comments input[type="date"],
  .entry-comments input[type="datetime"],
  .entry-comments input[type="datetime-local"],
  .entry-comments input[type="email"],
  .entry-comments input[type="month"],
  .entry-comments input[type="number"],
  .entry-comments input[type="password"],
  .entry-comments input[type="search"],
  .entry-comments input[type="tel"],
  .entry-comments input[type="text"],
  .entry-comments input[type="time"],
  .entry-comments input[type="url"],
  .entry-comments input[type="week"],
  .entry-comments textarea,
  .entry-pings input[type="color"],
  .entry-pings input[type="date"],
  .entry-pings input[type="datetime"],
  .entry-pings input[type="datetime-local"],
  .entry-pings input[type="email"],
  .entry-pings input[type="month"],
  .entry-pings input[type="number"],
  .entry-pings input[type="password"],
  .entry-pings input[type="search"],
  .entry-pings input[type="tel"],
  .entry-pings input[type="text"],
  .entry-pings input[type="time"],
  .entry-pings input[type="url"],
  .entry-pings input[type="week"],
  .entry-pings textarea {
    background: white; }

.entry-comments {
  padding: 2em; }

.comment-header {
  font-size: 1em; }

li.comment {
  background-color: #dbdbdb;
  border: 1px solid #ababab;
  border-right: none; }

.comment-content {
  clear: both; }

.comment-list li {
  margin-top: 1em;
  padding: 2em; }
  .comment-list li li {
    margin-right: -2em; }

.comment-respond input[type="email"],
.comment-respond input[type="text"],
.comment-respond input[type="url"] {
  width: 50%; }

.comment-respond label {
  display: block;
  margin-right: 1em; }

.entry-comments .comment-author {
  margin-bottom: 0; }

.entry-pings .reply {
  display: none; }

.form-allowed-tags {
  background-color: #dbdbdb;
  font-size: 1em;
  padding: 2em; }

.sidebar {
  font-size: 1em;
  margin-top: 6em; }

.sidebar li {
  border-bottom: 1px solid #ababab;
  margin-bottom: 1.5em;
  padding-bottom: 1.5em; }

.sidebar p:last-child,
.sidebar ul > li:last-child {
  margin-bottom: 0; }

.sidebar .widget {
  background-color: white;
  margin-bottom: 3em;
  padding: 1.5em; }

.footer-widgets {
  background-color: white;
  border-top: 1px solid #e6e6e6;
  clear: both;
  padding: 30px 0;
  padding-bottom: 0; }

.footer-widgets .widget {
  margin-bottom: 30px;
  text-align: center; }
  .footer-widgets .widget:last-child {
    margin-bottom: 0; }

.footer-widgets ul {
  text-align: center; }

.footer-widgets li {
  display: inline-block;
  border: none;
  padding: 0 15px; }

.social-link {
  padding: 0 20px; }

.social-link a svg {
  -webkit-transition: color 150ms ease;
  -moz-transition: color 150ms ease;
  transition: color 150ms ease; }

.social-link a:hover svg {
  fill: #4a90e2; }

.site-footer {
  background-color: #fff;
  font-size: 1em;
  line-height: 1.5;
  padding: 1.5em 0;
  text-align: center; }

.site-footer p {
  margin-bottom: 0; }

.mobile-menu-icon {
  -webkit-transform: translateY(-50%);
  -moz-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  -o-transform: translateY(-50%);
  transform: translateY(-50%);
  position: absolute;
  top: 50%;
  right: 30px; }
  @media screen and (min-width: 900px) {
    .mobile-menu-icon {
      display: none; } }

#mobile-menu input[type=search] {
  background-color: white; }

@media screen and (min-width: 900px) {
  .single-team_member .content > .team-member-image {
    float: left;
    display: block;
    margin-right: 2.35765%;
    width: 31.76157%; }
    .single-team_member .content > .team-member-image:last-child {
      margin-right: 0; } }

@media screen and (min-width: 900px) {
  .single-team_member .content > .team_member {
    float: left;
    display: block;
    margin-right: 2.35765%;
    width: 65.88078%;
    margin-right: 0; }
    .single-team_member .content > .team_member:last-child {
      margin-right: 0; } }

.single-team_member .content-sidebar-wrap {
  margin-top: 3.75em; }

.single-team_member .entry-header {
  margin-bottom: 1.875em; }

.single-team_member .entry {
  margin-bottom: 0;
  padding-top: 0; }

.single-team_member .entry-title {
  margin-bottom: 10px; }

.page-template-template-about .site-inner {
  margin-bottom: 3em; }

.team-members {
  padding-bottom: 3em; }

.team-member {
  background: white;
  margin-bottom: 1.875em; }
  @media screen and (min-width: 600px) {
    .team-member {
      float: left;
      display: block;
      margin-right: 2.35765%;
      width: 48.82117%; }
      .team-member:last-child {
        margin-right: 0; }
      .team-member:nth-child(2n) {
        margin-right: 0; }
      .team-member:nth-child(2n+1) {
        clear: left; } }
  @media screen and (min-width: 900px) {
    .team-member {
      float: left;
      display: block;
      margin-right: 2.35765%;
      width: 31.76157%; }
      .team-member:last-child {
        margin-right: 0; }
      .team-member:nth-child(2n) {
        margin-right: 2.35765%; }
      .team-member:nth-child(2n+1) {
        clear: none; }
      .team-member:nth-child(3n) {
        margin-right: 0; }
      .team-member:nth-child(3n+1) {
        clear: left; } }

.team-member .team-member-image {
  float: none;
  margin: 0;
  position: relative; }
  .team-member .team-member-image:hover .overlay a {
    opacity: 1; }
  .team-member .team-member-image img {
    width: 100%;
    display: block; }

.team-member-meta {
  padding: 15px 25px; }

.team-member-name {
  margin-bottom: 0.3125em; }

.team-member-title {
  font-weight: 500; }

.overlay a {
  -webkit-transition: all 0.2s ease-in-out;
  -moz-transition: all 0.2s ease-in-out;
  transition: all 0.2s ease-in-out;
  display: -webkit-box;
  display: -moz-box;
  display: box;
  display: -webkit-flex;
  display: -moz-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -moz-box-pack: center;
  box-pack: center;
  -webkit-justify-content: center;
  -moz-justify-content: center;
  -ms-justify-content: center;
  -o-justify-content: center;
  justify-content: center;
  -ms-flex-pack: center;
  -webkit-box-align: center;
  -moz-box-align: center;
  box-align: center;
  -webkit-align-items: center;
  -moz-align-items: center;
  -ms-align-items: center;
  -o-align-items: center;
  align-items: center;
  -ms-flex-align: center;
  background: rgba(0, 0, 0, 0.7);
  color: white;
  height: 100%;
  opacity: 0;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100%; }

.overlay-text svg {
  -webkit-transition: color 150ms ease;
  -moz-transition: color 150ms ease;
  transition: color 150ms ease;
  display: block;
  height: 50px;
  width: 50px;
  margin-bottom: 10px;
  margin-left: 7px;
  fill: #fff; }

.single-team_member.single .entry-title {
  border: none;
  margin-top: 0; }

.single-team_member h2 {
  font-size: 1.75em;
  font-weight: 500; }

.page-template-template-about .entry {
  margin-bottom: 30px; }

.blog,
.category,
.search,
.blog .site-inner,
.category .site-inner,
.search .site-inner {
  background: #f4f4f4; }

.blog .content,
.category .content,
.search .content {
  max-width: 68em;
  margin-left: auto;
  margin-right: auto; }
  .blog .content::after,
  .category .content::after,
  .search .content::after {
    clear: both;
    content: "";
    display: table; }

.blog .content .entry,
.category .content .entry,
.search .content .entry,
.single .related-posts .entry {
  background: white;
  margin-bottom: 1.875em;
  padding-top: 30px;
  position: relative; }
  @media screen and (min-width: 600px) {
    .blog .content .entry,
    .category .content .entry,
    .search .content .entry,
    .single .related-posts .entry {
      float: left;
      display: block;
      margin-right: 2.35765%;
      width: 48.82117%;
      min-height: 517px;
      padding-top: 0; }
      .blog .content .entry:last-child,
      .category .content .entry:last-child,
      .search .content .entry:last-child,
      .single .related-posts .entry:last-child {
        margin-right: 0; }
      .blog .content .entry:nth-child(2n),
      .category .content .entry:nth-child(2n),
      .search .content .entry:nth-child(2n),
      .single .related-posts .entry:nth-child(2n) {
        margin-right: 0; }
      .blog .content .entry:nth-child(2n+1),
      .category .content .entry:nth-child(2n+1),
      .search .content .entry:nth-child(2n+1),
      .single .related-posts .entry:nth-child(2n+1) {
        clear: left; } }
  @media screen and (min-width: 900px) {
    .blog .content .entry,
    .category .content .entry,
    .search .content .entry,
    .single .related-posts .entry {
      float: left;
      display: block;
      margin-right: 2.35765%;
      width: 31.76157%; }
      .blog .content .entry:last-child,
      .category .content .entry:last-child,
      .search .content .entry:last-child,
      .single .related-posts .entry:last-child {
        margin-right: 0; }
      .blog .content .entry:nth-child(2n),
      .category .content .entry:nth-child(2n),
      .search .content .entry:nth-child(2n),
      .single .related-posts .entry:nth-child(2n) {
        margin-right: 2.35765%; }
      .blog .content .entry:nth-child(2n+1),
      .category .content .entry:nth-child(2n+1),
      .search .content .entry:nth-child(2n+1),
      .single .related-posts .entry:nth-child(2n+1) {
        clear: none; }
      .blog .content .entry:nth-child(3n),
      .category .content .entry:nth-child(3n),
      .search .content .entry:nth-child(3n),
      .single .related-posts .entry:nth-child(3n) {
        margin-right: 0; }
      .blog .content .entry:nth-child(3n+1),
      .category .content .entry:nth-child(3n+1),
      .search .content .entry:nth-child(3n+1),
      .single .related-posts .entry:nth-child(3n+1) {
        clear: left; } }
  .blog .content .entry .entry-content p,
  .category .content .entry .entry-content p,
  .search .content .entry .entry-content p,
  .single .related-posts .entry .entry-content p {
    font-size: 14px; }

.blog .entry-title,
.category .entry-title,
.search .entry-title,
.related-posts .entry-title {
  font-size: 24px;
  font-weight: 500;
  margin-bottom: 10px;
  padding: 0 20px; }
  @media screen and (min-width: 600px) {
    .blog .entry-title,
    .category .entry-title,
    .search .entry-title,
    .related-posts .entry-title {
      margin-top: 20px; } }

.blog .entry-content,
.blog .entry-footer,
.category .entry-content,
.category .entry-footer,
.search .entry-content,
.search .entry-footer,
.related-posts .entry-footer,
.related-posts .entry-content {
  padding: 0 20px; }

.blog .entry-footer,
.category .entry-footer,
.search .entry-footer,
.related-posts .entry-footer {
  position: absolute;
  bottom: 20px;
  left: 0;
  right: 0; }

.continue-reading {
  float: right; }

.entry-date {
  font-style: italic; }

.top-utils {
  padding: 15px 0; }
  @media screen and (min-width: 900px) {
    .top-utils {
      padding: 15px 0 30px 0; } }
  .top-utils .pagination {
    display: inline-block; }
  @media screen and (min-width: 900px) {
    .top-utils .top-utils-right {
      float: right; } }

.top-utils-right {
  margin-top: 0.75em;
  overflow: auto; }
  @media screen and (min-width: 900px) {
    .top-utils-right {
      margin-top: 0;
      padding: 0; } }
  .top-utils-right .archive,
  .top-utils-right .categories {
    display: block;
    width: 100%; }
    @media screen and (min-width: 900px) {
      .top-utils-right .archive,
      .top-utils-right .categories {
        float: left;
        margin-left: 10px;
        width: auto; } }

.single .content .entry,
.comment-respond {
  max-width: 800px;
  margin-left: auto;
  margin-right: auto; }
  .single .content .entry::after,
  .comment-respond::after {
    clear: both;
    content: "";
    display: table; }

.single .entry {
  margin-bottom: 30px; }

.single .entry-meta {
  line-height: 34px;
  margin-bottom: 0;
  display: inline-block; }

.single .entry-header .sharedaddy {
  float: right; }
  .single .entry-header .sharedaddy ul {
    margin-bottom: 0 !important; }

.single .entry-title {
  border-top: 1px solid #ababab;
  font-weight: 500;
  margin-top: 15px;
  padding-top: 15px; }

.single .related-posts .entry-title {
  border: none; }

.single .entry-footer {
  border-top: 1px solid #ababab;
  padding: 15px 0; }
  .single .entry-footer .sharedaddy {
    float: right; }

.single .related-posts .entry-footer {
  border: none;
  padding: 0 20px; }

.single .featured-image {
  border: 3px solid #f4f4f4;
  margin-bottom: 1.875em; }

.entry-content ul:not(.soliloquy-slider):not(.gform_fields) {
  margin-left: 1.5em;
  margin-bottom: 1.5em; }
  .entry-content ul:not(.soliloquy-slider):not(.gform_fields) li {
    list-style-type: none;
    margin-left: 20px;
    position: relative;
    margin-bottom: 10px; }
  .entry-content ul:not(.soliloquy-slider):not(.gform_fields) > li > ul li {
    margin-top: 10px; }
    .entry-content ul:not(.soliloquy-slider):not(.gform_fields) > li > ul li:before {
      content: '';
      position: absolute;
      width: 6px;
      height: 6px;
      background: #4a90e2;
      top: 8px;
      left: -20px;
      border-radius: 50%; }
  .entry-content ul:not(.soliloquy-slider):not(.gform_fields) > li:before {
    content: '';
    position: absolute;
    width: 8px;
    height: 8px;
    background: #4a90e2;
    top: 8px;
    left: -20px;
    border-radius: 50%; }
  .entry-content ul:not(.soliloquy-slider):not(.gform_fields) > li:last-child {
    margin-bottom: 0; }

.logo-list-wrap {
  max-width: 890px;
  margin-left: auto;
  margin-right: auto; }
  .logo-list-wrap::after {
    clear: both;
    content: "";
    display: table; }

.logo-list-image {
  float: left;
  display: block;
  margin-right: 2.35765%;
  width: 48.82117%;
  height: 150px;
  position: relative; }
  .logo-list-image:last-child {
    margin-right: 0; }
  .logo-list-image:nth-child(2n) {
    margin-right: 0; }
  .logo-list-image:nth-child(2n+1) {
    clear: left; }
  @media screen and (min-width: 900px) {
    .logo-list-image {
      float: left;
      display: block;
      margin-right: 2.35765%;
      width: 23.23176%; }
      .logo-list-image:last-child {
        margin-right: 0; }
      .logo-list-image:nth-child(2n) {
        margin-right: 2.35765%; }
      .logo-list-image:nth-child(2n+1) {
        clear: none; }
      .logo-list-image:nth-child(4n) {
        margin-right: 0; }
      .logo-list-image:nth-child(4n+1) {
        clear: left; } }
  .logo-list-image img {
    -webkit-transform: translateY(-50%);
    -moz-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    -o-transform: translateY(-50%);
    transform: translateY(-50%);
    display: block;
    margin: 0 auto;
    position: absolute;
    top: 50%;
    left: 0;
    right: 0; }

.page-template-template-clients .slider {
  margin-bottom: 0 !important; }

.page-client-logos .home-client-logo {
  padding-right: 30px;
  position: relative; }
  .page-client-logos .home-client-logo:last-child {
    padding-right: 30px; }
  .page-client-logos .home-client-logo img {
    -webkit-transform: translateY(-50%);
    -moz-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    -o-transform: translateY(-50%);
    transform: translateY(-50%);
    display: block;
    margin: 0 auto;
    position: absolute;
    left: 0;
    right: 0;
    top: 50%;
    width: 150px; }

@-webkit-keyframes bounce {
  0%, 20%, 50%, 80%, 100% {
    -webkit-transform: translateY(0); }
  40% {
    -webkit-transform: translateY(-10px); }
  60% {
    -webkit-transform: translateY(-5px); } }

@-moz-keyframes bounce {
  0%, 20%, 50%, 80%, 100% {
    -moz-transform: translateY(0); }
  40% {
    -moz-transform: translateY(-10px); }
  60% {
    -moz-transform: translateY(-5px); } }

@keyframes bounce {
  0%, 20%, 50%, 80%, 100% {
    -webkit-transform: translateY(0);
    -moz-transform: translateY(0);
    -ms-transform: translateY(0);
    -o-transform: translateY(0);
    transform: translateY(0); }
  40% {
    -webkit-transform: translateY(-10px);
    -moz-transform: translateY(-10px);
    -ms-transform: translateY(-10px);
    -o-transform: translateY(-10px);
    transform: translateY(-10px); }
  60% {
    -webkit-transform: translateY(-5px);
    -moz-transform: translateY(-5px);
    -ms-transform: translateY(-5px);
    -o-transform: translateY(-5px);
    transform: translateY(-5px); } }

.bounce {
  -webkit-animation: bounce 2s infinite;
  -moz-animation: bounce 2s infinite;
  animation: bounce 2s infinite; }

.slider {
  margin-top: 30px; }

.home-slider .slide {
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  min-height: 600px; }

.slick-dots {
  bottom: 30px !important;
  display: none !important; }
  .home-clients .slick-dots {
    bottom: 0 !important; }
  @media screen and (min-width: 600px) {
    .slick-dots {
      display: block !important; } }

.slick-dots li button:before {
  color: #555 !important;
  font-size: 10px !important;
  opacity: 1 !important; }
  .home-clients .slick-dots li button:before {
    color: #ccc !important; }

.slick-dots li.slick-active button:before {
  color: white !important; }
  .home-clients .slick-dots li.slick-active button:before {
    color: #555 !important; }

.home-slider-wrap {
  position: relative; }

.home-slider.slick-slider {
  margin-bottom: 0; }

.home-slider-overlay {
  background: rgba(0, 0, 0, 0.7);
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0; }

.home-slider-content {
  -webkit-transform: translateY(-50%);
  -moz-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  -o-transform: translateY(-50%);
  transform: translateY(-50%);
  color: white;
  padding: 0 10px;
  position: absolute;
  left: 0;
  right: 0;
  text-align: center;
  top: 50%; }
  @media screen and (min-width: 900px) {
    .home-slider-content {
      padding: 0; } }

.home-slider-title {
  margin-bottom: 15px; }
  @media screen and (min-width: 900px) {
    .home-slider-title {
      font-size: 60px;
      padding: 0 150px; } }

.home-slider-subtitle {
  color: #4a90e2;
  margin-bottom: 60px; }

.home-slider-link {
  background: #4a90e2;
  border-radius: 3px;
  color: white;
  font-size: 24px;
  padding: 0.75em 1.5em;
  text-transform: lowercase;
  transition: background-color 150ms ease; }
  .home-slider-link:hover {
    background: #4382cb;
    color: white; }

.home-slider-arrow {
  display: block;
  margin-top: 90px; }
  .home-slider-arrow svg {
    height: 50px;
    width: 50px;
    fill: white; }

.slick-slide {
  outline: none; }
  .slick-slide img {
    width: 100%; }

.page-template-template-press .entry {
  display: none; }

.press-articles {
  padding: 30px 0; }

.press-article {
  overflow: auto;
  padding-bottom: 20px;
  margin-bottom: 20px; }

@media screen and (min-width: 900px) {
  .press-article-image,
  .press-article-content {
    display: block;
    float: left; } }

.press-article-image img {
  width: 100%; }

@media screen and (min-width: 900px) {
  .press-article-image {
    height: 235px;
    width: 32%; } }

.press-article-content {
  padding: 0 15px; }
  .press-article-content p {
    font-size: 0.85em; }
  @media screen and (min-width: 900px) {
    .press-article-content {
      width: 68%; } }

.press-article-title {
  margin-bottom: 5px; }

.press-article-link {
  float: right; }

.culture {
  overflow: auto; }

.culture-content, .culture-image {
  display: block; }
  @media screen and (min-width: 900px) {
    .culture-content, .culture-image {
      float: left;
      width: 50%; } }

.culture-content {
  padding: 1.875em; }
  @media screen and (min-width: 900px) {
    .culture-content {
      padding: 5.625em;
      padding-bottom: 0; } }
  .home .culture-content {
    border-top: 1px solid #c3c3c3; }

.culture-title.section-title {
  text-align: left; }

.culture-image {
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
  min-height: 300px; }
  @media screen and (min-width: 600px) {
    .culture-image {
      min-height: 600px;
      background-size: cover; } }

.features {
  background: #f4f4f4;
  clear: both;
  padding: 3.75em 0.75em;
  text-align: center; }
  @media screen and (min-width: 900px) {
    .features {
      padding: 3.75em 0; } }

.section-title {
  color: #4a90e2;
  text-align: center; }

.feature-blocks {
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
  padding: 3.75em 0; }
  .feature-blocks::after {
    clear: both;
    content: "";
    display: table; }

.feature-block {
  margin-bottom: 3.75em;
  padding: 0 0.9375em; }
  .feature-block:last-child {
    margin-bottom: 0; }
  @media screen and (min-width: 900px) {
    .feature-block {
      float: left;
      display: block;
      margin-right: 2.35765%;
      width: 31.76157%;
      margin-bottom: 0; }
      .feature-block:last-child {
        margin-right: 0; }
      .feature-block:nth-child(3n) {
        margin-right: 0; }
      .feature-block:nth-child(3n+1) {
        clear: left; } }

.feature-block-icon {
  margin-bottom: 0.9375em; }

.feature-block-icon svg {
  height: 50px;
  width: 50px; }

.feature-block-link {
  display: block; }

.feature-block input[type="text"],
.feature-block input[type="email"] {
  background: white;
  text-align: center; }

.feature-block input[type="submit"] {
  display: block;
  width: 100%; }

.home-clients {
  padding: 1.875em 0.75em;
  text-align: center; }
  @media screen and (min-width: 900px) {
    .home-clients {
      padding: 3.75em 0 0; } }
  .home-clients .slick-slider {
    margin-bottom: 0px; }
    @media screen and (min-width: 600px) {
      .home-clients .slick-slider {
        margin-bottom: 30px !important; } }

.home-client-logo {
  background-repeat: no-repeat;
  background-position: center;
  min-height: 120px !important; }
  @media screen and (min-width: 600px) {
    .home-client-logo {
      min-height: 210px !important; } }

.page-hero {
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  min-height: 300px;
  position: relative; }
  @media screen and (min-width: 900px) {
    .page-hero {
      min-height: 500px; } }
  .single-client .page-hero {
    min-height: 220px; }
    @media screen and (min-width: 900px) {
      .single-client .page-hero {
        min-height: 220px; } }
  .page-hero .page-hero-content {
    -webkit-transform: translateY(-50%);
    -moz-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    -o-transform: translateY(-50%);
    transform: translateY(-50%);
    color: white;
    left: 0;
    right: 0;
    padding: 0 30px;
    position: absolute;
    text-align: center;
    top: 50%;
    z-index: 100; }
    @media screen and (min-width: 900px) {
      .page-hero .page-hero-content {
        padding: 0 120px; } }
  .page-hero .page-hero-title {
    margin-bottom: 0px; }
    @media screen and (min-width: 900px) {
      .page-hero .page-hero-title {
        font-size: 60px; } }
  .page-hero .page-hero-subtitle {
    color: #4a90e2; }
  .page-hero .overlay {
    background: rgba(0, 0, 0, 0.7);
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0; }

.services-menu {
  background: #f4f4f4;
  border-bottom: #c3c3c3;
  padding: 20px; }
  .services-menu li:first-child a, .services-menu li:first-child {
    padding-left: 0; }
  .services-menu li {
    display: inline-block; }

.culture-top-content {
  display: block;
  font-size: 22px;
  margin: 60px auto;
  max-width: 680px;
  text-align: center; }

.culture-design-features-section {
  background: #f4f4f4;
  margin-bottom: 60px;
  padding: 30px;
  text-align: center; }

.culture-design-features {
  max-width: 68em;
  margin-left: auto;
  margin-right: auto;
  text-align: center; }
  .culture-design-features::after {
    clear: both;
    content: "";
    display: table; }

.culture-design-feature {
  display: block;
  letter-spacing: 1px;
  min-height: 90px;
  padding: 0 30px;
  position: relative;
  text-align: center;
  text-transform: lowercase; }
  @media screen and (min-width: 900px) {
    .culture-design-feature {
      float: left;
      width: 25%; }
      .culture-design-feature:nth-child(5), .culture-design-feature:nth-child(6) {
        width: 50%; }
        .culture-design-feature:nth-child(5) p, .culture-design-feature:nth-child(6) p {
          padding: 0 90px; } }
  .culture-design-feature p {
    -webkit-transform: translateY(-50%);
    -moz-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    -o-transform: translateY(-50%);
    transform: translateY(-50%);
    padding: 0 15px;
    position: absolute;
    top: 50%;
    left: 0;
    right: 0; }

.culture-bottom-content {
  max-width: 68em;
  margin-left: auto;
  margin-right: auto;
  display: block;
  margin: 0 auto;
  margin-bottom: 60px;
  max-width: 680px;
  text-align: center; }
  .culture-bottom-content::after {
    clear: both;
    content: "";
    display: table; }

.culture-contact-form {
  display: block;
  margin: 0 auto;
  margin-bottom: 60px;
  max-width: 680px;
  text-align: center; }

.art-blocks {
  overflow: auto; }

.art-block {
  display: block;
  float: left;
  padding: 60px 1.5em;
  text-align: center;
  width: 33.33333%; }
  .art-block.image {
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat; }

.art-images {
  margin-bottom: 60px; }

.art-images .wrap {
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto; }
  .art-images .wrap::after {
    clear: both;
    content: "";
    display: table; }

.art-cta {
  margin-bottom: 60px;
  text-align: center; }

.white-popup {
  position: relative;
  background: #FFF;
  padding: 20px;
  width: auto;
  max-width: 800px;
  margin: 20px auto; }

.footer-cta {
  background: #4a4a4a;
  color: white;
  padding: 60px 0.75em;
  text-align: center; }
  @media screen and (min-width: 900px) {
    .footer-cta {
      padding: 60px 0; } }
  .page-template-template-culture-sub .footer-cta,
  .page-template-template-culture-design .footer-cta {
    display: none; }

.page-template-template-contact .content {
  max-width: 68em;
  margin-left: auto;
  margin-right: auto; }
  .page-template-template-contact .content::after {
    clear: both;
    content: "";
    display: table; }
  .page-template-template-contact .content .contact-sidebar {
    float: left;
    display: block;
    margin-right: 2.35765%;
    width: 31.76157%;
    padding: 1.875em 0; }
    .page-template-template-contact .content .contact-sidebar:last-child {
      margin-right: 0; }
  .page-template-template-contact .content .entry {
    float: left;
    display: block;
    margin-right: 2.35765%;
    width: 65.88078%;
    margin-right: 0; }
    .page-template-template-contact .content .entry:last-child {
      margin-right: 0; }

.contact-sidebar .contact-sidebar-address,
.contact-sidebar .contact-sidebar-phone,
.contact-sidebar .contact-sidebar-email,
.contact-sidebar .contact-sidebar-twitter {
  margin-bottom: 10px; }

.contact-sidebar .button {
  display: block;
  text-align: center;
  width: 100%; }

.newsletter.shortcode {
  background: #f4f4f4;
  border-radius: 3px;
  margin: 30px 0;
  padding: 60px;
  text-align: center; }
  .newsletter.shortcode form {
    overflow: auto; }
  .newsletter.shortcode input[type="text"],
  .newsletter.shortcode input[type="email"] {
    background: white;
    border-bottom-right-radius: 0;
    border-top-right-radius: 0;
    height: 40px;
    width: 100%; }
  .newsletter.shortcode input[type="submit"] {
    width: 100%;
    border-top-left-radius: 0;
    border-bottom-left-radius: 0; }
  @media screen and (min-width: 600px) {
    .newsletter.shortcode input[type="text"],
    .newsletter.shortcode input[type="email"],
    .newsletter.shortcode input[type="submit"] {
      display: block;
      float: left; }
    .newsletter.shortcode input[type="text"],
    .newsletter.shortcode input[type="email"] {
      width: 70%; }
    .newsletter.shortcode input[type="submit"] {
      width: 30%; } }

.testimonials-shortcode {
  text-align: center;
  padding: 30px; }

.testimonial {
  text-align: center; }
  .testimonial img {
    display: block;
    margin: 0 auto;
    margin-bottom: 15px; }

.testimonials .slick-dots {
  bottom: -45px !important;
  margin-left: 0; }

.testimonials .slick-dots li.slick-active button:before {
  color: #ccc !important; }

.related-posts {
  background: #f4f4f4;
  margin-top: 30px;
  padding: 30px; }

.search-results .search-form-wrapper {
  margin: 0 auto;
  text-align: center;
  padding: 2em 0 3em; }

.search-results #searchform input[type=text] {
  width: auto;
  display: inline; }

.search-results #searchform input[type=submit] {
  width: auto;
  display: inline;
  margin-top: -5px; }

@media screen and (min-width: 600px) {
  .store-landing.page .content {
    padding-bottom: 1.5em; } }

.store-landing.page .slick-slider {
  margin-bottom: 0px; }

.store-landing.page .content-sidebar-wrap {
  margin-top: 0px; }

.store-landing.page .store-landing-section.hero-slider .slick-next {
  right: 25px;
  z-index: 1000; }

.store-landing.page .store-landing-section.hero-slider .slick-prev {
  left: 25px;
  z-index: 1000; }

.store-landing.page .store-landing-section.hero-slider .hero-slide {
  -webkit-transition: all 1s ease-in-out;
  -moz-transition: all 1s ease-in-out;
  transition: all 1s ease-in-out;
  position: relative;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  min-height: 500px; }
  .store-landing.page .store-landing-section.hero-slider .hero-slide:after {
    -webkit-transition: all 1s ease-in-out;
    -moz-transition: all 1s ease-in-out;
    transition: all 1s ease-in-out;
    background-color: rgba(255, 255, 255, 0.7);
    content: '';
    display: block;
    height: 100%;
    left: 0;
    position: absolute;
    top: 0;
    width: 100%; }
  .store-landing.page .store-landing-section.hero-slider .hero-slide .wrap {
    position: relative;
    z-index: 100; }

.store-landing.page .store-landing-section.hero-slider .hero-content-wrap {
  min-height: 500px;
  position: relative;
  z-index: 100; }

.store-landing.page .store-landing-section.hero-slider .hero-content {
  -webkit-transform: translate(-50%, -50%);
  -moz-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  -o-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
  left: 50%;
  position: absolute;
  text-align: center;
  top: 50%;
  width: 85%; }
  .store-landing.page .store-landing-section.hero-slider .hero-content .hero-title,
  .store-landing.page .store-landing-section.hero-slider .hero-content .hero-sub-title,
  .store-landing.page .store-landing-section.hero-slider .hero-content .closing-sub-title {
    color: #4a4a4a;
    font-weight: 400; }
  .store-landing.page .store-landing-section.hero-slider .hero-content .hero-title,
  .store-landing.page .store-landing-section.hero-slider .hero-content .closing-sub-title {
    line-height: 1;
    margin-bottom: 0.375em;
    font-size: 1.225em;
    font-style: italic; }
    @media screen and (min-width: 600px) {
      .store-landing.page .store-landing-section.hero-slider .hero-content .hero-title,
      .store-landing.page .store-landing-section.hero-slider .hero-content .closing-sub-title {
        font-size: 1.75em; } }
    .store-landing.page .store-landing-section.hero-slider .hero-content .hero-title .hero-title-at,
    .store-landing.page .store-landing-section.hero-slider .hero-content .closing-sub-title .hero-title-at {
      display: block;
      margin-top: 0.1875em; }
  .store-landing.page .store-landing-section.hero-slider .hero-content .hero-sub-title {
    margin: 3em 0; }
  @media (max-width: 900px) {
    .store-landing.page .store-landing-section.hero-slider .hero-content .sub-title-ext {
      display: none; } }
  .store-landing.page .store-landing-section.hero-slider .hero-content .closing-sub-title {
    margin: 0.75em 0; }

.store-landing.page .store-landing-section.product-blocks {
  display: inline-block;
  margin: 3em 0 1.5em; }
  @media screen and (min-width: 600px) {
    .store-landing.page .store-landing-section.product-blocks {
      display: -webkit-box;
      display: -moz-box;
      display: box;
      display: -webkit-flex;
      display: -moz-flex;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-lines: multiple;
      -moz-box-lines: multiple;
      box-lines: multiple;
      -webkit-flex-wrap: wrap;
      -moz-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
      flex-wrap: wrap; } }

.store-landing.page .product-block {
  display: block;
  padding-bottom: 1.5em;
  padding-top: 1.5em;
  position: relative;
  text-align: center; }
  @media screen and (min-width: 600px) {
    .store-landing.page .product-block {
      width: 50%; }
      .store-landing.page .product-block:nth-child(odd) {
        clear: both;
        padding-right: 1.5em; }
      .store-landing.page .product-block:nth-child(even) {
        padding-left: 1.5em; } }
  .store-landing.page .product-block .product-block-title {
    line-height: 1;
    margin: 0.75em; }
  .store-landing.page .product-block .product-block-blurb {
    margin-bottom: 3.75em; }
  .store-landing.page .product-block .product-block-inner {
    display: block;
    height: 100%;
    width: 100%; }
    .store-landing.page .product-block .product-block-inner .button {
      -webkit-transform: translateX(-50%);
      -moz-transform: translateX(-50%);
      -ms-transform: translateX(-50%);
      -o-transform: translateX(-50%);
      transform: translateX(-50%);
      bottom: 0;
      left: 50%;
      position: absolute; }

.flexible-section {
  padding: 1.5em 0; }

.flexible-section .button,
.flexible-section img {
  margin-bottom: 1.5em; }

.flexible-section img {
  margin-top: 1.5em; }

.flexible-section.testimonial {
  border-bottom: 1px solid #ababab;
  border-top: 1px solid #ababab;
  clear: both;
  text-align: left; }
  .flexible-section.testimonial .button {
    margin-bottom: 0; }

.flexible-section.video iframe {
  height: 400px;
  width: 100% !important;
  margin-bottom: 0.75em; }

.fifty-fifty {
  overflow: auto; }

@media screen and (min-width: 900px) {
  .fifty-fifty-content,
  .fifty-fifty-image {
    display: block;
    float: left;
    width: 50%; } }

.fifty-fifty-content {
  padding: 1.875em; }
  .right .fifty-fifty-content {
    float: right; }
  .fifty-fifty-content .button {
    margin-bottom: 0.75em; }
  @media screen and (min-width: 900px) {
    .fifty-fifty-content {
      padding: 5.625em;
      padding-bottom: 0; } }

.fifty-fifty-image {
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
  min-height: 250px; }
  .right .fifty-fifty-image {
    clear: both; }
    @media screen and (min-width: 900px) {
      .right .fifty-fifty-image {
        float: left;
        clear: none !important; } }
  @media screen and (min-width: 600px) {
    .fifty-fifty-image {
      background-size: cover;
      min-height: 600px; } }

.content-blocks {
  overflow: auto;
  padding: 1.5em 0; }

.content-block {
  display: block;
  float: left;
  padding: 1.5em;
  padding-bottom: 0;
  text-align: center;
  width: 33.33333%; }

.content-block-image {
  margin-bottom: 1.5em; }
  .content-block-image img {
    display: block;
    margin: 0 auto; }

.cta {
  padding: 4.5em 0;
  text-align: center; }
  .cta.has-bg .cta-title {
    color: white; }

.page-id-52119 .cta .button {
  padding: 20px 90px; }

.gallery {
  margin: 1.5em 0; }

@media screen and (min-width: 900px) {
  .progress-content,
  .progress-bar {
    float: left;
    display: block;
    margin-right: 2.35765%;
    width: 48.82117%; }
    .progress-content:last-child,
    .progress-bar:last-child {
      margin-right: 0; } }

.progress-content {
  padding: 0 0.9375em; }
  @media screen and (min-width: 900px) {
    .progress-content {
      padding: 0; } }

.progress-bar {
  padding: 1.5em; }
  @media screen and (min-width: 900px) {
    .progress-bar {
      margin-right: 0; } }

.progress-pie-chart {
  width: 200px;
  height: 200px;
  border-radius: 50%;
  background-color: #E5E5E5;
  position: relative; }
  .progress-pie-chart.gt-50 {
    background-color: #81CE97; }

.ppc-progress {
  content: "";
  position: absolute;
  border-radius: 50%;
  left: calc(50% - 100px);
  top: calc(50% - 100px);
  width: 200px;
  height: 200px;
  clip: rect(0, 200px, 200px, 100px); }
  .ppc-progress .ppc-progress-fill {
    content: "";
    position: absolute;
    border-radius: 50%;
    left: calc(50% - 100px);
    top: calc(50% - 100px);
    width: 200px;
    height: 200px;
    clip: rect(0, 100px, 200px, 0);
    background: #81CE97; }
  .gt-50 .ppc-progress {
    clip: rect(0, 100px, 200px, 0); }
    .gt-50 .ppc-progress .ppc-progress-fill {
      clip: rect(0, 200px, 200px, 100px);
      background: #E5E5E5; }

.ppc-percents {
  content: "";
  position: absolute;
  border-radius: 50%;
  left: calc(50% - 173.91304px/2);
  top: calc(50% - 173.91304px/2);
  width: 173.91304px;
  height: 173.91304px;
  background: #fff;
  text-align: center;
  display: table; }
  .ppc-percents span {
    display: block;
    font-size: 2.6em;
    font-weight: bold;
    color: #81CE97; }

.pcc-percents-wrapper {
  display: table-cell;
  vertical-align: middle; }

body {
  font-family: Arial;
  background: #f7f7f7; }

.progress-pie-chart {
  margin: 0 auto 0; }

.content-section .wrap {
  padding: 0 0.9375em; }
  @media screen and (min-width: 900px) {
    .content-section .wrap {
      padding: 0; } }
  .content-section .wrap *:last-child {
    margin-bottom: 0px; }
    .content-section .wrap *:last-child .button {
      margin-bottom: 0px; }

.woocommerce-page .site-inner .wrap {
  margin: 0 auto;
  max-width: 90%;
  padding-bottom: 1.5em;
  padding-top: 1.5em; }
  .woocommerce-page .site-inner .wrap .content {
    margin: 0 !important;
    max-width: 100%; }
  .woocommerce-page .site-inner .wrap article {
    margin-bottom: 0;
    padding-top: 0; }

.woocommerce-page .wrap {
  background-color: transparent !important; }

.woocommerce-page .site-inner {
  background-color: white; }

.woocommerce-page .add_to_cart_button,
.woocommerce-page .product_type_grouped {
  background-color: #ababab !important;
  color: white !important; }
  .woocommerce-page .add_to_cart_button:hover,
  .woocommerce-page .product_type_grouped:hover {
    background-color: #898989 !important; }

.woocommerce-page #reviews .avatar {
  display: none; }

.woocommerce-page #reviews .comment-text {
  margin-left: 0 !important; }

.woocommerce-page #reviews li {
  list-style: none; }

.woocommerce-page .woocommerce-message {
  border-top-color: #4a90e2; }

.woocommerce form .form-row label {
  font-weight: 100;
  line-height: 1.5 !important; }

.woocommerce mark {
  display: none; }

.woocommerce .product-category img {
  margin-bottom: 0 !important; }

.woocommerce .product-category h3 {
  font-weight: bold;
  max-width: 100% !important; }

.woocommerce .product-category:hover h3 {
  color: #3b73b5 !important; }

.woocommerce .products {
  margin: 1.5em 0 !important; }

.woocommerce ul.products li.product {
  background-color: transparent;
  margin-bottom: 0.75em !important; }
  @media (max-width: 600px) {
    .woocommerce ul.products li.product {
      margin-left: 0;
      margin-right: 0;
      width: 100% !important; } }
  .woocommerce ul.products li.product img {
    margin-bottom: 0 !important; }
  .woocommerce ul.products li.product .product-lower {
    position: relative; }
  .woocommerce ul.products li.product h3 {
    color: #555;
    max-width: 60%; }
  .woocommerce ul.products li.product .star-rating {
    display: none; }
  .woocommerce ul.products li.product .price {
    color: #555 !important;
    font-size: 1em !important;
    position: absolute;
    right: 0.375em;
    top: 0.375em; }
  .woocommerce ul.products li.product .button {
    margin: 0.1875em auto 0.75em auto !important;
    text-align: center;
    width: 100%; }
  .woocommerce ul.products li.product .added_to_cart {
    margin-bottom: 0.375em !important; }
  .woocommerce ul.products li.product:hover .button {
    background-color: #3b73b5; }

.woocommerce.single-product .woocommerce-message {
  background-color: #e8e8e8; }
  .woocommerce.single-product .woocommerce-message .button {
    background-color: #4a90e2 !important;
    color: white !important; }
    .woocommerce.single-product .woocommerce-message .button:hover {
      background-color: #3b73b5 !important; }

.woocommerce.single-product .product {
  background-color: transparent; }

.woocommerce.single-product .summary h1 {
  border-top: none;
  line-height: 1;
  margin-bottom: 0.375em; }

.woocommerce.single-product .summary .woocommerce-product-rating {
  margin-bottom: 0.75em; }

.woocommerce.single-product .summary .woocommerce-Price-amount {
  color: #555; }

.woocommerce.single-product .summary .quantity input.qty {
  padding: 7.5px !important; }

.woocommerce.single-product .summary .price {
  margin-bottom: 0.75em; }

.woocommerce.single-product .summary .cart {
  margin-bottom: 0.75em; }

.woocommerce.single-product .summary .product-addon {
  margin: 0 !important;
  margin-bottom: 0.75em !important; }
  .woocommerce.single-product .summary .product-addon:first-of-type {
    margin-top: 0.75em !important; }

.woocommerce.single-product .summary .addon-name {
  font-size: 1.125em !important;
  margin-bottom: 0.375em !important;
  font-weight: 400 !important; }

.woocommerce.single-product .summary abbr[title] {
  border-bottom: none !important; }

.woocommerce.single-product .summary form .form-row {
  padding: 0px !important; }
  .woocommerce.single-product .summary form .form-row label {
    font-weight: 200 !important;
    font-size: 0.875em; }
    .woocommerce.single-product .summary form .form-row label input {
      margin-top: 0.1875em; }
    .woocommerce.single-product .summary form .form-row label small {
      display: none; }

.woocommerce.single-product .single_add_to_cart_button {
  background-color: #4a90e2 !important;
  color: white !important; }
  .woocommerce.single-product .single_add_to_cart_button:hover {
    background-color: #3b73b5 !important; }

@media (max-width: 600px) {
  .woocommerce.single-product .wc-tabs {
    width: 100%; }
    .woocommerce.single-product .wc-tabs li {
      width: 100%; }
      .woocommerce.single-product .wc-tabs li a {
        width: 100%; } }

dl.product-addon-totals dt {
  margin-top: 0px !important; }

.woocommerce-error li:before {
  display: none; }

.woocommerce-cart.woocommerce-page .wrap {
  background-color: white; }

.woocommerce-cart.woocommerce-page .entry-header a.button {
  display: inline-block;
  float: right; }
  @media (max-width: 350px) {
    .woocommerce-cart.woocommerce-page .entry-header a.button {
      font-size: 0.875em;
      margin-bottom: 0.75em; } }

@media (max-width: 600px) {
  .woocommerce-cart.woocommerce-page .coupon input {
    width: 100% !important; }
  .woocommerce-cart.woocommerce-page .coupon input[type="submit"] {
    margin-top: 0.375em; } }

.woocommerce-cart.woocommerce-page .entry {
  margin-bottom: 0; }

.woocommerce-cart.woocommerce-page .cart_item {
  margin-bottom: 1.5em; }
  .woocommerce-cart.woocommerce-page .cart_item:nth-child(even) {
    background-color: #f4f4f4; }

.woocommerce-cart.woocommerce-page .cart-collaterals .cart_totals {
  float: none !important;
  width: auto !important; }

.woocommerce-cart.woocommerce-page .checkout-button {
  background-color: #4a90e2 !important;
  color: white !important; }
  .woocommerce-cart.woocommerce-page .checkout-button:hover, .woocommerce-cart.woocommerce-page .checkout-button:focus {
    background-color: #3b73b5 !important;
    color: #fff !important; }

.woocommerce-cart.woocommerce-page .quantity input[type="number"] {
  padding: 7.5px !important;
  width: 100% !important; }

.woocommerce table.shop_table thead {
  background-color: #dfdcde !important; }

.woocommerce table.shop_table tr:nth-child(even), .woocommerce table.shop_table tr.order_item:nth-child(odd) {
  background-color: #f4f4f4 !important; }

.woocommerce table.shop_table tr.cart-subtotal {
  background-color: #dfdcde !important; }

.woocommerce table.shop_table th {
  border: none !important; }

.woocommerce table.shop_table td {
  border: none !important; }
  .woocommerce table.shop_table td.actions {
    background-color: white !important;
    border-top: 1px solid #f4f4f4 !important; }

.woocommerce #content table.cart td.actions .input-text,
.woocommerce table.cart td.actions .input-text,
.woocommerce-page #content table.cart td.actions .input-text,
.woocommerce-page table.cart td.actions .input-text {
  padding-bottom: 7.5px !important;
  padding-top: 7.5px !important; }
  @media screen and (min-width: 600px) {
    .woocommerce #content table.cart td.actions .input-text,
    .woocommerce table.cart td.actions .input-text,
    .woocommerce-page #content table.cart td.actions .input-text,
    .woocommerce-page table.cart td.actions .input-text {
      width: auto !important; } }

#shipping_method li {
  list-style: none !important; }
  #shipping_method li:before {
    display: none; }
  #shipping_method li label {
    font-weight: 300 !important; }

#payment {
  background-color: #f4f4f4 !important;
  margin-top: 3em; }
  #payment ul {
    border-color: #4a4a4a !important; }
  #payment .payment_box:after,
  #payment .payment_box:before,
  #payment li:before {
    display: none !important; }
  #payment #place_order {
    display: block;
    margin-bottom: 0 !important;
    font-size: 1.25em;
    margin-bottom: 1em;
    padding: 1em;
    text-align: center;
    width: 100%;
    background-color: #4a90e2 !important;
    color: white !important; }
    #payment #place_order:hover, #payment #place_order:focus {
      background-color: #3b73b5 !important;
      color: #fff !important; }

#order_review_heading {
  margin-top: 1.5em; }

.wc_payment_methods {
  border-bottom: 0px !important; }
  .wc_payment_methods .upper-details {
    display: inline-block;
    width: 100%; }
    .wc_payment_methods .upper-details input[type="radio"],
    .wc_payment_methods .upper-details label {
      display: block !important;
      float: left !important; }
    .wc_payment_methods .upper-details input[type="radio"] {
      margin-top: 6px !important; }
    .wc_payment_methods .upper-details a {
      margin-left: 0.75em; }
  .wc_payment_methods .lower-details {
    display: inline-block;
    width: 100%; }
    .wc_payment_methods .lower-details input {
      background-color: white !important; }
  .wc_payment_methods .payment_box {
    margin-top: 0px !important; }

#ship-to-different-address {
  position: relative; }
  #ship-to-different-address label {
    display: inline-block;
    font-size: 20px !important;
    font-weight: 300 !important;
    margin-bottom: 0 !important;
    margin-left: 1.125em; }
  #ship-to-different-address #ship-to-different-address-checkbox {
    left: 0;
    position: absolute;
    top: 40%; }

#cgd_gift_note_field {
  clear: both; }

.woocommerce-pagination ul,
.woocommerce-pagination li {
  border: none !important; }
  .woocommerce-pagination ul .current,
  .woocommerce-pagination li .current {
    background-color: #4a90e2 !important;
    color: white !important; }
  .woocommerce-pagination ul .page-numbers,
  .woocommerce-pagination li .page-numbers {
    background-color: #4a4a4a;
    color: white !important;
    margin-right: 4px !important;
    padding: 6px 10px !important;
    transition: all 150ms ease; }
    .woocommerce-pagination ul .page-numbers:hover,
    .woocommerce-pagination li .page-numbers:hover {
      background-color: #4a90e2 !important; }

.woocommerce-order-received .shop_table.order_details .order_item:nth-child(even) {
  background-color: #f4f4f4 !important; }

.woocommerce-order-received .shop_table.order_details .order_item:nth-child(odd) {
  background-color: white !important; }

.woocommerce-order-received .shop_table.order_details tfoot tr:first-child {
  background-color: #dfdcde !important; }

.woocommerce-order-received .order_details {
  margin-left: 0 !important;
  margin-top: 1.5em !important; }
  .woocommerce-order-received .order_details li {
    margin-left: 0 !important;
    border-right-color: #333 !important;
    border-right-style: solid !important; }
    .woocommerce-order-received .order_details li:before {
      display: none; }
    .woocommerce-order-received .order_details li:last-of-type {
      border-right: none !important; }

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGUuY3NzIiwic291cmNlcyI6WyJzdHlsZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9fYm91cmJvbi5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9zZXR0aW5ncy9fcHJlZml4ZXIuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvc2V0dGluZ3MvX3B4LXRvLWVtLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL3NldHRpbmdzL19hc3NldC1waXBlbGluZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX2Fzc2lnbi1pbnB1dHMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19jb250YWlucy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX2NvbnRhaW5zLWZhbHN5LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9faXMtbGVuZ3RoLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9faXMtbGlnaHQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19pcy1udW1iZXIuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19pcy1zaXplLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fcHgtdG8tZW0uc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19weC10by1yZW0uc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19zaGFkZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX3N0cmlwLXVuaXRzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fdGludC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX3RyYW5zaXRpb24tcHJvcGVydHktbmFtZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX3VucGFjay5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX21vZHVsYXItc2NhbGUuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fY29udmVydC11bml0cy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19kaXJlY3Rpb25hbC12YWx1ZXMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fZm9udC1zb3VyY2UtZGVjbGFyYXRpb24uc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fZ3JhZGllbnQtcG9zaXRpb25zLXBhcnNlci5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19saW5lYXItYW5nbGUtcGFyc2VyLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX2xpbmVhci1ncmFkaWVudC1wYXJzZXIuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fbGluZWFyLXBvc2l0aW9ucy1wYXJzZXIuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fbGluZWFyLXNpZGUtY29ybmVyLXBhcnNlci5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19yYWRpYWwtYXJnLXBhcnNlci5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19yYWRpYWwtcG9zaXRpb25zLXBhcnNlci5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19yYWRpYWwtZ3JhZGllbnQtcGFyc2VyLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX3JlbmRlci1ncmFkaWVudHMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fc2hhcGUtc2l6ZS1zdHJpcHBlci5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19zdHItdG8tbnVtLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2FuaW1hdGlvbi5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19hcHBlYXJhbmNlLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2JhY2tmYWNlLXZpc2liaWxpdHkuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fYmFja2dyb3VuZC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19iYWNrZ3JvdW5kLWltYWdlLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2JvcmRlci1pbWFnZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19jYWxjLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2NvbHVtbnMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fZmlsdGVyLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2ZsZXgtYm94LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2ZvbnQtZmFjZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19mb250LWZlYXR1cmUtc2V0dGluZ3Muc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9faGlkcGktbWVkaWEtcXVlcnkuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9faHlwaGVucy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19pbWFnZS1yZW5kZXJpbmcuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fa2V5ZnJhbWVzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2xpbmVhci1ncmFkaWVudC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19wZXJzcGVjdGl2ZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19wbGFjZWhvbGRlci5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19yYWRpYWwtZ3JhZGllbnQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fc2VsZWN0aW9uLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX3RleHQtZGVjb3JhdGlvbi5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL190cmFuc2Zvcm0uc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fdHJhbnNpdGlvbi5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL191c2VyLXNlbGVjdC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX2JvcmRlci1jb2xvci5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX2JvcmRlci1yYWRpdXMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19ib3JkZXItc3R5bGUuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19ib3JkZXItd2lkdGguc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19idXR0b25zLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fY2xlYXJmaXguc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19lbGxpcHNpcy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX2ZvbnQtc3RhY2tzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9faGlkZS10ZXh0LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fbWFyZ2luLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fcGFkZGluZy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX3Bvc2l0aW9uLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fcHJlZml4ZXIuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19yZXRpbmEtaW1hZ2Uuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19zaXplLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fdGV4dC1pbnB1dHMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL190aW1pbmctZnVuY3Rpb25zLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fdHJpYW5nbGUuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL193b3JkLXdyYXAuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvX2JvdXJib24tZGVwcmVjYXRlZC11cGNvbWluZy5zY3NzIiwiYmFzZS9fYmFzZS5zY3NzIiwiYmFzZS9fdmFyaWFibGVzLnNjc3MiLCJiYXNlL19ncmlkLXNldHRpbmdzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi1uZWF0L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvX25lYXQtaGVscGVycy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24tbmVhdC9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fcHJpdmF0ZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24tbmVhdC9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fbmV3LWJyZWFrcG9pbnQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uLW5lYXQvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9zZXR0aW5ncy9fZ3JpZC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24tbmVhdC9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL3NldHRpbmdzL192aXN1YWwtZ3JpZC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24tbmVhdC9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL3NldHRpbmdzL19kaXNhYmxlLXdhcm5pbmdzLnNjc3MiLCJiYXNlL19idXR0b25zLnNjc3MiLCJiYXNlL19mb3Jtcy5zY3NzIiwiYmFzZS9fbGlzdHMuc2NzcyIsImJhc2UvX3RhYmxlcy5zY3NzIiwiYmFzZS9fdHlwb2dyYXBoeS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24tbmVhdC9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL19uZWF0LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi1uZWF0L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZ3JpZC9fcHJpdmF0ZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24tbmVhdC9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2dyaWQvX2JveC1zaXppbmcuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uLW5lYXQvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9ncmlkL19vbWVnYS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24tbmVhdC9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2dyaWQvX291dGVyLWNvbnRhaW5lci5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24tbmVhdC9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2dyaWQvX3NwYW4tY29sdW1ucy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24tbmVhdC9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2dyaWQvX3Jvdy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24tbmVhdC9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2dyaWQvX3NoaWZ0LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi1uZWF0L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZ3JpZC9fcGFkLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi1uZWF0L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZ3JpZC9fZmlsbC1wYXJlbnQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uLW5lYXQvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9ncmlkL19tZWRpYS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24tbmVhdC9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2dyaWQvX3RvLWRlcHJlY2F0ZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24tbmVhdC9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2dyaWQvX3Zpc3VhbC1ncmlkLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi1uZWF0L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZ3JpZC9fZGlzcGxheS1jb250ZXh0LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi1uZWF0L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZ3JpZC9fZGlyZWN0aW9uLWNvbnRleHQuc2NzcyIsIl9zY2FmZm9sZC5zY3NzIiwiYXRvbXMvX29iamVjdHMuc2NzcyIsImF0b21zL19hdmF0YXIuc2NzcyIsImF0b21zL19tZWRpYS5zY3NzIiwiYXRvbXMvX3dpZGdldC5zY3NzIiwiYXRvbXMvX25hdi10cmlnZ2VyLnNjc3MiLCJhdG9tcy9fc2l0ZS10aXRsZS5zY3NzIiwiYXRvbXMvX3NpdGUtZGVzY3JpcHRpb24uc2NzcyIsImF0b21zL19tZW51LWl0ZW1zLnNjc3MiLCJhdG9tcy9fcGFnZS10aXRsZS5zY3NzIiwiYXRvbXMvX3BhZ2UtZGVzYy5zY3NzIiwiYXRvbXMvX2ZlYXR1cmVkLWltYWdlLnNjc3MiLCJtb2xlY3VsZXMvX2dhbGxlcnkuc2NzcyIsIm1vbGVjdWxlcy9fYnJlYWRjcnVtYnMuc2NzcyIsIm1vbGVjdWxlcy9fc3RpY2t5LXBvc3Quc2NzcyIsIm1vbGVjdWxlcy9fdGl0bGUtYXJlYS5zY3NzIiwibW9sZWN1bGVzL19zdWItbWVudS5zY3NzIiwibW9sZWN1bGVzL19lbnRyeS1jb250ZW50LnNjc3MiLCJtb2xlY3VsZXMvX2VudHJ5LW1ldGEuc2NzcyIsIm1vbGVjdWxlcy9fcGFnaW5hdGlvbi5zY3NzIiwibW9sZWN1bGVzL19oZWFkZXItd2lkZ2V0LWFyZWEuc2NzcyIsIm1vbGVjdWxlcy9fc2VhcmNoLXNvY2lhbC13aWRnZXQuc2NzcyIsIm1vbGVjdWxlcy9fc2VydmljZXMtbWVudS5zY3NzIiwibW9sZWN1bGVzL19zZWxlY3Rib3guc2NzcyIsIm9yZ2FuaXNtcy9fc2l0ZS1oZWFkZXIuc2NzcyIsIm9yZ2FuaXNtcy9fbmF2LnNjc3MiLCJvcmdhbmlzbXMvX3NpdGUtc3ViaGVhZGVyLnNjc3MiLCJvcmdhbmlzbXMvX3BhZ2UtYmFubmVyLnNjc3MiLCJvcmdhbmlzbXMvX3BhZ2UtbmV3c2xldHRlci5zY3NzIiwib3JnYW5pc21zL19lbnRyeS5zY3NzIiwib3JnYW5pc21zL19jb21tZW50cy5zY3NzIiwib3JnYW5pc21zL19zaWRlYmFycy5zY3NzIiwib3JnYW5pc21zL19mb290ZXItd2lkZ2V0cy5zY3NzIiwib3JnYW5pc21zL19zaXRlLWZvb3Rlci5zY3NzIiwib3JnYW5pc21zL19tb2JpbGUtbWVudS5zY3NzIiwib3JnYW5pc21zL190ZWFtLW1lbWJlcnMuc2NzcyIsIm9yZ2FuaXNtcy9fYmxvZy5zY3NzIiwib3JnYW5pc21zL19jbGllbnRzLnNjc3MiLCJvcmdhbmlzbXMvX3NsaWRlci5zY3NzIiwib3JnYW5pc21zL19wcmVzcy5zY3NzIiwib3JnYW5pc21zL19ob21lLnNjc3MiLCJvcmdhbmlzbXMvX3BhZ2UtaGVyby5zY3NzIiwib3JnYW5pc21zL19jdWx0dXJlLnNjc3MiLCJvcmdhbmlzbXMvX2Zvb3Rlci1jdGEuc2NzcyIsIm9yZ2FuaXNtcy9fY29udGFjdC5zY3NzIiwib3JnYW5pc21zL19uZXdzbGV0dGVyLnNjc3MiLCJvcmdhbmlzbXMvX3Rlc3RpbW9uaWFscy5zY3NzIiwib3JnYW5pc21zL19yZWxhdGVkLXBvc3RzLnNjc3MiLCJvcmdhbmlzbXMvX3BhZ2Uuc2NzcyIsIm9yZ2FuaXNtcy9fc3RvcmUtbGFuZGluZy5zY3NzIiwic2VjdGlvbnMvX3NlY3Rpb25zLnNjc3MiLCJzZWN0aW9ucy9fZmlmdHktZmlmdHkuc2NzcyIsInNlY3Rpb25zL19ibG9ja3Muc2NzcyIsInNlY3Rpb25zL19jdGEuc2NzcyIsInNlY3Rpb25zL19nYWxsZXJ5LnNjc3MiLCJzZWN0aW9ucy9fcHJvZ3Jlc3Muc2NzcyIsInNlY3Rpb25zL19jb250ZW50LnNjc3MiLCJ3b29jb21tZXJjZS9fMDAtZ2VuZXJhbC5zY3NzIiwid29vY29tbWVyY2UvX3Nob3Auc2NzcyIsIndvb2NvbW1lcmNlL19zaW5nbGUtcHJvZHVjdC5zY3NzIiwid29vY29tbWVyY2UvX2NhcnQuc2NzcyIsIndvb2NvbW1lcmNlL19jaGVja291dC5zY3NzIiwid29vY29tbWVyY2UvX3BhZ2luYXRpb24uc2NzcyIsIndvb2NvbW1lcmNlL190aGFuay15b3Uuc2NzcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuXHRUaGVtZSBOYW1lOiBHYXBpbmcgVm9pZFxuXHREZXNjcmlwdGlvbjogR2FwaW5ndm9pZC5jb20gQ2hpbGQgdGhlbWUgb2YgR2VuZXNpcywgYnkgPGEgaHJlZj1cImh0dHA6Ly9jZ2QuaW9cIj5DbGlmIEdyaWZmaW4gRGV2ZWxvcG1lbnQgSW5jPC9hPi5cblx0QXV0aG9yOiBDbGlmIEdyaWZmaW4gRGV2ZWxvcG1lbnQgSW5jLlxuXHRBdXRob3IgVVJJOiBodHRwOi8vY2dkLmlvXG5cblx0VGVtcGxhdGU6IGdlbmVzaXNcbiovXG5AaW1wb3J0IFwiYXNzZXRzL2NvbXBvbmVudHMvbm9ybWFsaXplLmNzcy9ub3JtYWxpemUuY3NzXCI7XG5cbkBpbXBvcnQgXCJib3VyYm9uXCI7XG5AaW1wb3J0IFwiYmFzZS9iYXNlXCI7XG5AaW1wb3J0IFwibmVhdFwiO1xuXG5AaW1wb3J0IFwic2NhZmZvbGRcIjtcblxuQGltcG9ydCBcImF0b21zL29iamVjdHNcIjtcbkBpbXBvcnQgXCJhdG9tcy9hdmF0YXJcIjtcbkBpbXBvcnQgXCJhdG9tcy9tZWRpYVwiO1xuQGltcG9ydCBcImF0b21zL3dpZGdldFwiO1xuQGltcG9ydCBcImF0b21zL25hdi10cmlnZ2VyXCI7XG5AaW1wb3J0IFwiYXRvbXMvc2l0ZS10aXRsZVwiO1xuQGltcG9ydCBcImF0b21zL3NpdGUtZGVzY3JpcHRpb25cIjtcbkBpbXBvcnQgXCJhdG9tcy9tZW51LWl0ZW1zXCI7XG5AaW1wb3J0IFwiYXRvbXMvcGFnZS10aXRsZVwiO1xuQGltcG9ydCBcImF0b21zL3BhZ2UtZGVzY1wiO1xuQGltcG9ydCBcImF0b21zL2ZlYXR1cmVkLWltYWdlXCI7XG5cbkBpbXBvcnQgXCJtb2xlY3VsZXMvZ2FsbGVyeVwiO1xuQGltcG9ydCBcIm1vbGVjdWxlcy9icmVhZGNydW1ic1wiO1xuQGltcG9ydCBcIm1vbGVjdWxlcy9zdGlja3ktcG9zdFwiO1xuQGltcG9ydCBcIm1vbGVjdWxlcy90aXRsZS1hcmVhXCI7XG5AaW1wb3J0IFwibW9sZWN1bGVzL3N1Yi1tZW51XCI7XG5AaW1wb3J0IFwibW9sZWN1bGVzL2VudHJ5LWNvbnRlbnRcIjtcbkBpbXBvcnQgXCJtb2xlY3VsZXMvZW50cnktbWV0YVwiO1xuQGltcG9ydCBcIm1vbGVjdWxlcy9wYWdpbmF0aW9uXCI7XG5AaW1wb3J0IFwibW9sZWN1bGVzL2hlYWRlci13aWRnZXQtYXJlYVwiO1xuQGltcG9ydCBcIm1vbGVjdWxlcy9zZWFyY2gtc29jaWFsLXdpZGdldFwiO1xuQGltcG9ydCBcIm1vbGVjdWxlcy9zZXJ2aWNlcy1tZW51XCI7XG5AaW1wb3J0IFwibW9sZWN1bGVzL3NlbGVjdGJveFwiO1xuXG5AaW1wb3J0IFwib3JnYW5pc21zL3NpdGUtaGVhZGVyXCI7XG5AaW1wb3J0IFwib3JnYW5pc21zL25hdlwiO1xuQGltcG9ydCBcIm9yZ2FuaXNtcy9zaXRlLXN1YmhlYWRlclwiO1xuQGltcG9ydCBcIm9yZ2FuaXNtcy9wYWdlLWJhbm5lclwiO1xuQGltcG9ydCBcIm9yZ2FuaXNtcy9wYWdlLW5ld3NsZXR0ZXJcIjtcbkBpbXBvcnQgXCJvcmdhbmlzbXMvZW50cnlcIjtcbkBpbXBvcnQgXCJvcmdhbmlzbXMvY29tbWVudHNcIjtcbkBpbXBvcnQgXCJvcmdhbmlzbXMvc2lkZWJhcnNcIjtcbkBpbXBvcnQgXCJvcmdhbmlzbXMvZm9vdGVyLXdpZGdldHNcIjtcbkBpbXBvcnQgXCJvcmdhbmlzbXMvc2l0ZS1mb290ZXJcIjtcbkBpbXBvcnQgXCJvcmdhbmlzbXMvbW9iaWxlLW1lbnVcIjtcbkBpbXBvcnQgXCJvcmdhbmlzbXMvdGVhbS1tZW1iZXJzXCI7XG5AaW1wb3J0IFwib3JnYW5pc21zL2Jsb2dcIjtcbkBpbXBvcnQgXCJvcmdhbmlzbXMvY2xpZW50c1wiO1xuQGltcG9ydCBcIm9yZ2FuaXNtcy9zbGlkZXJcIjtcbkBpbXBvcnQgXCJvcmdhbmlzbXMvcHJlc3NcIjtcbkBpbXBvcnQgXCJvcmdhbmlzbXMvaG9tZVwiO1xuQGltcG9ydCBcIm9yZ2FuaXNtcy9wYWdlLWhlcm9cIjtcbkBpbXBvcnQgXCJvcmdhbmlzbXMvY3VsdHVyZVwiO1xuQGltcG9ydCBcIm9yZ2FuaXNtcy9mb290ZXItY3RhXCI7XG5AaW1wb3J0IFwib3JnYW5pc21zL2NvbnRhY3RcIjtcbkBpbXBvcnQgXCJvcmdhbmlzbXMvbmV3c2xldHRlclwiO1xuQGltcG9ydCBcIm9yZ2FuaXNtcy90ZXN0aW1vbmlhbHNcIjtcbkBpbXBvcnQgXCJvcmdhbmlzbXMvcmVsYXRlZC1wb3N0c1wiO1xuQGltcG9ydCBcIm9yZ2FuaXNtcy9wYWdlXCI7XG5AaW1wb3J0IFwib3JnYW5pc21zL3N0b3JlLWxhbmRpbmdcIjtcblxuQGltcG9ydCBcInNlY3Rpb25zL3NlY3Rpb25zXCI7XG5AaW1wb3J0IFwic2VjdGlvbnMvZmlmdHktZmlmdHlcIjtcbkBpbXBvcnQgXCJzZWN0aW9ucy9ibG9ja3NcIjtcbkBpbXBvcnQgXCJzZWN0aW9ucy9jdGFcIjtcbkBpbXBvcnQgXCJzZWN0aW9ucy9nYWxsZXJ5XCI7XG5AaW1wb3J0IFwic2VjdGlvbnMvcHJvZ3Jlc3NcIjtcbkBpbXBvcnQgXCJzZWN0aW9ucy9jb250ZW50XCI7XG5cbi8vIFdvb0NvbW1lcmNlIFN0eWxlc1xuQGltcG9ydCBcIndvb2NvbW1lcmNlLzAwLWdlbmVyYWxcIjtcbkBpbXBvcnQgXCJ3b29jb21tZXJjZS9zaG9wXCI7XG5AaW1wb3J0IFwid29vY29tbWVyY2Uvc2luZ2xlLXByb2R1Y3RcIjtcbkBpbXBvcnQgXCJ3b29jb21tZXJjZS9jYXJ0XCI7XG5AaW1wb3J0IFwid29vY29tbWVyY2UvY2hlY2tvdXRcIjtcbkBpbXBvcnQgXCJ3b29jb21tZXJjZS9wYWdpbmF0aW9uXCI7XG5AaW1wb3J0IFwid29vY29tbWVyY2UvdGhhbmsteW91XCI7XG4iLCIvLyBCb3VyYm9uIDQuMi4zXG4vLyBodHRwOi8vYm91cmJvbi5pb1xuLy8gQ29weXJpZ2h0IDIwMTEtMjAxNSB0aG91Z2h0Ym90LCBpbmMuXG4vLyBNSVQgTGljZW5zZVxuXG5AaW1wb3J0IFwic2V0dGluZ3MvcHJlZml4ZXJcIjtcbkBpbXBvcnQgXCJzZXR0aW5ncy9weC10by1lbVwiO1xuQGltcG9ydCBcInNldHRpbmdzL2Fzc2V0LXBpcGVsaW5lXCI7XG5cbkBpbXBvcnQgXCJmdW5jdGlvbnMvYXNzaWduLWlucHV0c1wiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9jb250YWluc1wiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9jb250YWlucy1mYWxzeVwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9pcy1sZW5ndGhcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvaXMtbGlnaHRcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvaXMtbnVtYmVyXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL2lzLXNpemVcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvcHgtdG8tZW1cIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvcHgtdG8tcmVtXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL3NoYWRlXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL3N0cmlwLXVuaXRzXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL3RpbnRcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL3VucGFja1wiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9tb2R1bGFyLXNjYWxlXCI7XG5cbkBpbXBvcnQgXCJoZWxwZXJzL2NvbnZlcnQtdW5pdHNcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL2RpcmVjdGlvbmFsLXZhbHVlc1wiO1xuQGltcG9ydCBcImhlbHBlcnMvZm9udC1zb3VyY2UtZGVjbGFyYXRpb25cIjtcbkBpbXBvcnQgXCJoZWxwZXJzL2dyYWRpZW50LXBvc2l0aW9ucy1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL2xpbmVhci1hbmdsZS1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL2xpbmVhci1ncmFkaWVudC1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL2xpbmVhci1wb3NpdGlvbnMtcGFyc2VyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9saW5lYXItc2lkZS1jb3JuZXItcGFyc2VyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9yYWRpYWwtYXJnLXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvcmFkaWFsLXBvc2l0aW9ucy1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL3JhZGlhbC1ncmFkaWVudC1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL3JlbmRlci1ncmFkaWVudHNcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL3NoYXBlLXNpemUtc3RyaXBwZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL3N0ci10by1udW1cIjtcblxuQGltcG9ydCBcImNzczMvYW5pbWF0aW9uXCI7XG5AaW1wb3J0IFwiY3NzMy9hcHBlYXJhbmNlXCI7XG5AaW1wb3J0IFwiY3NzMy9iYWNrZmFjZS12aXNpYmlsaXR5XCI7XG5AaW1wb3J0IFwiY3NzMy9iYWNrZ3JvdW5kXCI7XG5AaW1wb3J0IFwiY3NzMy9iYWNrZ3JvdW5kLWltYWdlXCI7XG5AaW1wb3J0IFwiY3NzMy9ib3JkZXItaW1hZ2VcIjtcbkBpbXBvcnQgXCJjc3MzL2NhbGNcIjtcbkBpbXBvcnQgXCJjc3MzL2NvbHVtbnNcIjtcbkBpbXBvcnQgXCJjc3MzL2ZpbHRlclwiO1xuQGltcG9ydCBcImNzczMvZmxleC1ib3hcIjtcbkBpbXBvcnQgXCJjc3MzL2ZvbnQtZmFjZVwiO1xuQGltcG9ydCBcImNzczMvZm9udC1mZWF0dXJlLXNldHRpbmdzXCI7XG5AaW1wb3J0IFwiY3NzMy9oaWRwaS1tZWRpYS1xdWVyeVwiO1xuQGltcG9ydCBcImNzczMvaHlwaGVuc1wiO1xuQGltcG9ydCBcImNzczMvaW1hZ2UtcmVuZGVyaW5nXCI7XG5AaW1wb3J0IFwiY3NzMy9rZXlmcmFtZXNcIjtcbkBpbXBvcnQgXCJjc3MzL2xpbmVhci1ncmFkaWVudFwiO1xuQGltcG9ydCBcImNzczMvcGVyc3BlY3RpdmVcIjtcbkBpbXBvcnQgXCJjc3MzL3BsYWNlaG9sZGVyXCI7XG5AaW1wb3J0IFwiY3NzMy9yYWRpYWwtZ3JhZGllbnRcIjtcbkBpbXBvcnQgXCJjc3MzL3NlbGVjdGlvblwiO1xuQGltcG9ydCBcImNzczMvdGV4dC1kZWNvcmF0aW9uXCI7XG5AaW1wb3J0IFwiY3NzMy90cmFuc2Zvcm1cIjtcbkBpbXBvcnQgXCJjc3MzL3RyYW5zaXRpb25cIjtcbkBpbXBvcnQgXCJjc3MzL3VzZXItc2VsZWN0XCI7XG5cbkBpbXBvcnQgXCJhZGRvbnMvYm9yZGVyLWNvbG9yXCI7XG5AaW1wb3J0IFwiYWRkb25zL2JvcmRlci1yYWRpdXNcIjtcbkBpbXBvcnQgXCJhZGRvbnMvYm9yZGVyLXN0eWxlXCI7XG5AaW1wb3J0IFwiYWRkb25zL2JvcmRlci13aWR0aFwiO1xuQGltcG9ydCBcImFkZG9ucy9idXR0b25zXCI7XG5AaW1wb3J0IFwiYWRkb25zL2NsZWFyZml4XCI7XG5AaW1wb3J0IFwiYWRkb25zL2VsbGlwc2lzXCI7XG5AaW1wb3J0IFwiYWRkb25zL2ZvbnQtc3RhY2tzXCI7XG5AaW1wb3J0IFwiYWRkb25zL2hpZGUtdGV4dFwiO1xuQGltcG9ydCBcImFkZG9ucy9tYXJnaW5cIjtcbkBpbXBvcnQgXCJhZGRvbnMvcGFkZGluZ1wiO1xuQGltcG9ydCBcImFkZG9ucy9wb3NpdGlvblwiO1xuQGltcG9ydCBcImFkZG9ucy9wcmVmaXhlclwiO1xuQGltcG9ydCBcImFkZG9ucy9yZXRpbmEtaW1hZ2VcIjtcbkBpbXBvcnQgXCJhZGRvbnMvc2l6ZVwiO1xuQGltcG9ydCBcImFkZG9ucy90ZXh0LWlucHV0c1wiO1xuQGltcG9ydCBcImFkZG9ucy90aW1pbmctZnVuY3Rpb25zXCI7XG5AaW1wb3J0IFwiYWRkb25zL3RyaWFuZ2xlXCI7XG5AaW1wb3J0IFwiYWRkb25zL3dvcmQtd3JhcFwiO1xuXG5AaW1wb3J0IFwiYm91cmJvbi1kZXByZWNhdGVkLXVwY29taW5nXCI7XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBHbG9iYWwgdmFyaWFibGVzIHRvIGVuYWJsZSBvciBkaXNhYmxlIHZlbmRvciBwcmVmaXhlc1xuXG4kcHJlZml4LWZvci13ZWJraXQ6ICAgIHRydWUgIWRlZmF1bHQ7XG4kcHJlZml4LWZvci1tb3ppbGxhOiAgIHRydWUgIWRlZmF1bHQ7XG4kcHJlZml4LWZvci1taWNyb3NvZnQ6IHRydWUgIWRlZmF1bHQ7XG4kcHJlZml4LWZvci1vcGVyYTogICAgIHRydWUgIWRlZmF1bHQ7XG4kcHJlZml4LWZvci1zcGVjOiAgICAgIHRydWUgIWRlZmF1bHQ7XG4iLCIkZW0tYmFzZTogMTZweCAhZGVmYXVsdDtcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIEEgZ2xvYmFsIHNldHRpbmcgdG8gZW5hYmxlIG9yIGRpc2FibGUgdGhlIGAkYXNzZXQtcGlwZWxpbmVgIHZhcmlhYmxlIGZvciBhbGwgZnVuY3Rpb25zIHRoYXQgYWNjZXB0IGl0LlxuLy8vXG4vLy8gQHR5cGUgQm9vbFxuXG4kYXNzZXQtcGlwZWxpbmU6IGZhbHNlICFkZWZhdWx0O1xuIiwiQGZ1bmN0aW9uIGFzc2lnbi1pbnB1dHMoJGlucHV0cywgJHBzZXVkbzogbnVsbCkge1xuICAkbGlzdDogKCk7XG5cbiAgQGVhY2ggJGlucHV0IGluICRpbnB1dHMge1xuICAgICRpbnB1dDogdW5xdW90ZSgkaW5wdXQpO1xuICAgICRpbnB1dDogaWYoJHBzZXVkbywgJGlucHV0ICsgXCI6XCIgKyAkcHNldWRvLCAkaW5wdXQpO1xuICAgICRsaXN0OiBhcHBlbmQoJGxpc3QsICRpbnB1dCwgY29tbWEpO1xuICB9XG5cbiAgQHJldHVybiAkbGlzdDtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIENoZWNrcyBpZiBhIGxpc3QgY29udGFpbnMgYSB2YWx1ZShzKS5cbi8vL1xuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkbGlzdFxuLy8vICAgVGhlIGxpc3QgdG8gY2hlY2sgYWdhaW5zdC5cbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHZhbHVlc1xuLy8vICAgQSBzaW5nbGUgdmFsdWUgb3IgbGlzdCBvZiB2YWx1ZXMgdG8gY2hlY2sgZm9yLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICBjb250YWlucygkbGlzdCwgJHZhbHVlKVxuLy8vXG4vLy8gQHJldHVybiB7Qm9vbH1cblxuQGZ1bmN0aW9uIGNvbnRhaW5zKCRsaXN0LCAkdmFsdWVzLi4uKSB7XG4gIEBlYWNoICR2YWx1ZSBpbiAkdmFsdWVzIHtcbiAgICBAaWYgdHlwZS1vZihpbmRleCgkbGlzdCwgJHZhbHVlKSkgIT0gXCJudW1iZXJcIiB7XG4gICAgICBAcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gdHJ1ZTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIENoZWNrcyBpZiBhIGxpc3QgZG9lcyBub3QgY29udGFpbnMgYSB2YWx1ZS5cbi8vL1xuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkbGlzdFxuLy8vICAgVGhlIGxpc3QgdG8gY2hlY2sgYWdhaW5zdC5cbi8vL1xuLy8vIEByZXR1cm4ge0Jvb2x9XG5cbkBmdW5jdGlvbiBjb250YWlucy1mYWxzeSgkbGlzdCkge1xuICBAZWFjaCAkaXRlbSBpbiAkbGlzdCB7XG4gICAgQGlmIG5vdCAkaXRlbSB7XG4gICAgICBAcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiBmYWxzZTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIENoZWNrcyBmb3IgYSB2YWxpZCBDU1MgbGVuZ3RoLlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR2YWx1ZVxuXG5AZnVuY3Rpb24gaXMtbGVuZ3RoKCR2YWx1ZSkge1xuICBAcmV0dXJuIHR5cGUtb2YoJHZhbHVlKSAhPSBcIm51bGxcIiBhbmQgKHN0ci1zbGljZSgkdmFsdWUgKyBcIlwiLCAxLCA0KSA9PSBcImNhbGNcIlxuICAgICAgIG9yIGluZGV4KGF1dG8gaW5oZXJpdCBpbml0aWFsIDAsICR2YWx1ZSlcbiAgICAgICBvciAodHlwZS1vZigkdmFsdWUpID09IFwibnVtYmVyXCIgYW5kIG5vdCh1bml0bGVzcygkdmFsdWUpKSkpO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvZ3JhbWF0aWNhbGx5IGRldGVybWluZXMgd2hldGhlciBhIGNvbG9yIGlzIGxpZ2h0IG9yIGRhcmsuXG4vLy9cbi8vLyBAbGluayBodHRwOi8vcm9ib3RzLnRob3VnaHRib3QuY29tL2Nsb3Nlci1sb29rLWNvbG9yLWxpZ2h0bmVzc1xuLy8vXG4vLy8gQHBhcmFtIHtDb2xvciAoSGV4KX0gJGNvbG9yXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIGlzLWxpZ2h0KCRjb2xvcilcbi8vL1xuLy8vIEByZXR1cm4ge0Jvb2x9XG5cbkBmdW5jdGlvbiBpcy1saWdodCgkaGV4LWNvbG9yKSB7XG4gICQtbG9jYWwtcmVkOiByZWQocmdiYSgkaGV4LWNvbG9yLCAxKSk7XG4gICQtbG9jYWwtZ3JlZW46IGdyZWVuKHJnYmEoJGhleC1jb2xvciwgMSkpO1xuICAkLWxvY2FsLWJsdWU6IGJsdWUocmdiYSgkaGV4LWNvbG9yLCAxKSk7XG4gICQtbG9jYWwtbGlnaHRuZXNzOiAoJC1sb2NhbC1yZWQgKiAwLjIxMjYgKyAkLWxvY2FsLWdyZWVuICogMC43MTUyICsgJC1sb2NhbC1ibHVlICogMC4wNzIyKSAvIDI1NTtcblxuICBAcmV0dXJuICQtbG9jYWwtbGlnaHRuZXNzID4gMC42O1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQ2hlY2tzIGZvciBhIHZhbGlkIG51bWJlci5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdmFsdWVcbi8vL1xuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gY29udGFpbnNcblxuQGZ1bmN0aW9uIGlzLW51bWJlcigkdmFsdWUpIHtcbiAgQHJldHVybiBjb250YWlucyhcIjBcIiBcIjFcIiBcIjJcIiBcIjNcIiBcIjRcIiBcIjVcIiBcIjZcIiBcIjdcIiBcIjhcIiBcIjlcIiAwIDEgMiAzIDQgNSA2IDcgOCA5LCAkdmFsdWUpO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQ2hlY2tzIGZvciBhIHZhbGlkIENTUyBzaXplLlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR2YWx1ZVxuLy8vXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBjb250YWluc1xuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gaXMtbGVuZ3RoXG5cbkBmdW5jdGlvbiBpcy1zaXplKCR2YWx1ZSkge1xuICBAcmV0dXJuIGlzLWxlbmd0aCgkdmFsdWUpXG4gICAgICAgICAgb3IgY29udGFpbnMoXCJmaWxsXCIgXCJmaXQtY29udGVudFwiIFwibWluLWNvbnRlbnRcIiBcIm1heC1jb250ZW50XCIsICR2YWx1ZSk7XG59XG4iLCIvLyBDb252ZXJ0IHBpeGVscyB0byBlbXNcbi8vIGVnLiBmb3IgYSByZWxhdGlvbmFsIHZhbHVlIG9mIDEycHggd3JpdGUgZW0oMTIpIHdoZW4gdGhlIHBhcmVudCBpcyAxNnB4XG4vLyBpZiB0aGUgcGFyZW50IGlzIGFub3RoZXIgdmFsdWUgc2F5IDI0cHggd3JpdGUgZW0oMTIsIDI0KVxuXG5AZnVuY3Rpb24gZW0oJHB4dmFsLCAkYmFzZTogJGVtLWJhc2UpIHtcbiAgQGlmIG5vdCB1bml0bGVzcygkcHh2YWwpIHtcbiAgICAkcHh2YWw6IHN0cmlwLXVuaXRzKCRweHZhbCk7XG4gIH1cbiAgQGlmIG5vdCB1bml0bGVzcygkYmFzZSkge1xuICAgICRiYXNlOiBzdHJpcC11bml0cygkYmFzZSk7XG4gIH1cbiAgQHJldHVybiAoJHB4dmFsIC8gJGJhc2UpICogMWVtO1xufVxuIiwiLy8gQ29udmVydCBwaXhlbHMgdG8gcmVtc1xuLy8gZWcuIGZvciBhIHJlbGF0aW9uYWwgdmFsdWUgb2YgMTJweCB3cml0ZSByZW0oMTIpXG4vLyBBc3N1bWVzICRlbS1iYXNlIGlzIHRoZSBmb250LXNpemUgb2YgPGh0bWw+XG5cbkBmdW5jdGlvbiByZW0oJHB4dmFsKSB7XG4gIEBpZiBub3QgdW5pdGxlc3MoJHB4dmFsKSB7XG4gICAgJHB4dmFsOiBzdHJpcC11bml0cygkcHh2YWwpO1xuICB9XG5cbiAgJGJhc2U6ICRlbS1iYXNlO1xuICBAaWYgbm90IHVuaXRsZXNzKCRiYXNlKSB7XG4gICAgJGJhc2U6IHN0cmlwLXVuaXRzKCRiYXNlKTtcbiAgfVxuICBAcmV0dXJuICgkcHh2YWwgLyAkYmFzZSkgKiAxcmVtO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gTWl4ZXMgYSBjb2xvciB3aXRoIGJsYWNrLlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlciAoUGVyY2VudGFnZSl9ICRwZXJjZW50XG4vLy8gICBUaGUgYW1vdW50IG9mIGJsYWNrIHRvIGJlIG1peGVkIGluLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6IHNoYWRlKCNmZmJiNTIsIDYwJSk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICM2NjRhMjA7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmV0dXJuIHtDb2xvcn1cblxuQGZ1bmN0aW9uIHNoYWRlKCRjb2xvciwgJHBlcmNlbnQpIHtcbiAgQHJldHVybiBtaXgoIzAwMCwgJGNvbG9yLCAkcGVyY2VudCk7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBTdHJpcHMgdGhlIHVuaXQgZnJvbSBhIG51bWJlci5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyIChXaXRoIFVuaXQpfSAkdmFsdWVcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgJGRpbWVuc2lvbjogc3RyaXAtdW5pdHMoMTBlbSk7XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAkZGltZW5zaW9uOiAxMDtcbi8vL1xuLy8vIEByZXR1cm4ge051bWJlciAoVW5pdGxlc3MpfVxuXG5AZnVuY3Rpb24gc3RyaXAtdW5pdHMoJHZhbHVlKSB7XG4gIEByZXR1cm4gKCR2YWx1ZSAvICgkdmFsdWUgKiAwICsgMSkpO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gTWl4ZXMgYSBjb2xvciB3aXRoIHdoaXRlLlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlciAoUGVyY2VudGFnZSl9ICRwZXJjZW50XG4vLy8gICBUaGUgYW1vdW50IG9mIHdoaXRlIHRvIGJlIG1peGVkIGluLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6IHRpbnQoIzZlY2FhNiwgNDAlKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogI2E4ZGZjOTtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXR1cm4ge0NvbG9yfVxuXG5AZnVuY3Rpb24gdGludCgkY29sb3IsICRwZXJjZW50KSB7XG4gIEByZXR1cm4gbWl4KCNmZmYsICRjb2xvciwgJHBlcmNlbnQpO1xufVxuIiwiLy8gUmV0dXJuIHZlbmRvci1wcmVmaXhlZCBwcm9wZXJ0eSBuYW1lcyBpZiBhcHByb3ByaWF0ZVxuLy8gRXhhbXBsZTogdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lcygodHJhbnNmb3JtLCBjb2xvciwgYmFja2dyb3VuZCksIG1veikgLT4gLW1vei10cmFuc2Zvcm0sIGNvbG9yLCBiYWNrZ3JvdW5kXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG5AZnVuY3Rpb24gdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lcygkcHJvcHMsICR2ZW5kb3I6IGZhbHNlKSB7XG4gICRuZXctcHJvcHM6ICgpO1xuXG4gIEBlYWNoICRwcm9wIGluICRwcm9wcyB7XG4gICAgJG5ldy1wcm9wczogYXBwZW5kKCRuZXctcHJvcHMsIHRyYW5zaXRpb24tcHJvcGVydHktbmFtZSgkcHJvcCwgJHZlbmRvciksIGNvbW1hKTtcbiAgfVxuXG4gIEByZXR1cm4gJG5ldy1wcm9wcztcbn1cblxuQGZ1bmN0aW9uIHRyYW5zaXRpb24tcHJvcGVydHktbmFtZSgkcHJvcCwgJHZlbmRvcjogZmFsc2UpIHtcbiAgLy8gcHV0IG90aGVyIHByb3BlcnRpZXMgdGhhdCBuZWVkIHRvIGJlIHByZWZpeGVkIGhlcmUgYXN3ZWxsXG4gIEBpZiAkdmVuZG9yIGFuZCAkcHJvcCA9PSB0cmFuc2Zvcm0ge1xuICAgIEByZXR1cm4gdW5xdW90ZSgnLScrJHZlbmRvcisnLScrJHByb3ApO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuICRwcm9wO1xuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBDb252ZXJ0cyBzaG9ydGhhbmQgdG8gdGhlIDQtdmFsdWUgc3ludGF4LlxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkc2hvcnRoYW5kXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgbWFyZ2luOiB1bnBhY2soMWVtIDJlbSk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIG1hcmdpbjogMWVtIDJlbSAxZW0gMmVtO1xuLy8vICAgfVxuXG5AZnVuY3Rpb24gdW5wYWNrKCRzaG9ydGhhbmQpIHtcbiAgQGlmIGxlbmd0aCgkc2hvcnRoYW5kKSA9PSAxIHtcbiAgICBAcmV0dXJuIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAxKTtcbiAgfSBAZWxzZSBpZiBsZW5ndGgoJHNob3J0aGFuZCkgPT0gMiB7XG4gICAgQHJldHVybiBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDIpIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMik7XG4gIH0gQGVsc2UgaWYgbGVuZ3RoKCRzaG9ydGhhbmQpID09IDMge1xuICAgIEByZXR1cm4gbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAyKSBudGgoJHNob3J0aGFuZCwgMykgbnRoKCRzaG9ydGhhbmQsIDIpO1xuICB9IEBlbHNlIHtcbiAgICBAcmV0dXJuICRzaG9ydGhhbmQ7XG4gIH1cbn1cbiIsIi8vIFNjYWxpbmcgVmFyaWFibGVzXG4kZ29sZGVuOiAgICAgICAgICAgMS42MTg7XG4kbWlub3Itc2Vjb25kOiAgICAgMS4wNjc7XG4kbWFqb3Itc2Vjb25kOiAgICAgMS4xMjU7XG4kbWlub3ItdGhpcmQ6ICAgICAgMS4yO1xuJG1ham9yLXRoaXJkOiAgICAgIDEuMjU7XG4kcGVyZmVjdC1mb3VydGg6ICAgMS4zMzM7XG4kYXVnbWVudGVkLWZvdXJ0aDogMS40MTQ7XG4kcGVyZmVjdC1maWZ0aDogICAgMS41O1xuJG1pbm9yLXNpeHRoOiAgICAgIDEuNjtcbiRtYWpvci1zaXh0aDogICAgICAxLjY2NztcbiRtaW5vci1zZXZlbnRoOiAgICAxLjc3ODtcbiRtYWpvci1zZXZlbnRoOiAgICAxLjg3NTtcbiRvY3RhdmU6ICAgICAgICAgICAyO1xuJG1ham9yLXRlbnRoOiAgICAgIDIuNTtcbiRtYWpvci1lbGV2ZW50aDogICAyLjY2NztcbiRtYWpvci10d2VsZnRoOiAgICAzO1xuJGRvdWJsZS1vY3RhdmU6ICAgIDQ7XG5cbiRtb2R1bGFyLXNjYWxlLXJhdGlvOiAkcGVyZmVjdC1mb3VydGggIWRlZmF1bHQ7XG4kbW9kdWxhci1zY2FsZS1iYXNlOiBlbSgkZW0tYmFzZSkgIWRlZmF1bHQ7XG5cbkBmdW5jdGlvbiBtb2R1bGFyLXNjYWxlKCRpbmNyZW1lbnQsICR2YWx1ZTogJG1vZHVsYXItc2NhbGUtYmFzZSwgJHJhdGlvOiAkbW9kdWxhci1zY2FsZS1yYXRpbykge1xuICAkdjE6IG50aCgkdmFsdWUsIDEpO1xuICAkdjI6IG50aCgkdmFsdWUsIGxlbmd0aCgkdmFsdWUpKTtcbiAgJHZhbHVlOiAkdjE7XG5cbiAgLy8gc2NhbGUgJHYyIHRvIGp1c3QgYWJvdmUgJHYxXG4gIEB3aGlsZSAkdjIgPiAkdjEge1xuICAgICR2MjogKCR2MiAvICRyYXRpbyk7IC8vIHdpbGwgYmUgb2ZmLWJ5LTFcbiAgfVxuICBAd2hpbGUgJHYyIDwgJHYxIHtcbiAgICAkdjI6ICgkdjIgKiAkcmF0aW8pOyAvLyB3aWxsIGZpeCBvZmYtYnktMVxuICB9XG5cbiAgLy8gY2hlY2sgQUZURVIgc2NhbGluZyAkdjIgdG8gcHJldmVudCBkb3VibGUtY291bnRpbmcgY29ybmVyLWNhc2VcbiAgJGRvdWJsZS1zdHJhbmRlZDogJHYyID4gJHYxO1xuXG4gIEBpZiAkaW5jcmVtZW50ID4gMCB7XG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkaW5jcmVtZW50IHtcbiAgICAgIEBpZiAkZG91YmxlLXN0cmFuZGVkIGFuZCAoJHYxICogJHJhdGlvKSA+ICR2MiB7XG4gICAgICAgICR2YWx1ZTogJHYyO1xuICAgICAgICAkdjI6ICgkdjIgKiAkcmF0aW8pO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgICR2MTogKCR2MSAqICRyYXRpbyk7XG4gICAgICAgICR2YWx1ZTogJHYxO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpZiAkaW5jcmVtZW50IDwgMCB7XG4gICAgLy8gYWRqdXN0ICR2MiB0byBqdXN0IGJlbG93ICR2MVxuICAgIEBpZiAkZG91YmxlLXN0cmFuZGVkIHtcbiAgICAgICR2MjogKCR2MiAvICRyYXRpbyk7XG4gICAgfVxuXG4gICAgQGZvciAkaSBmcm9tICRpbmNyZW1lbnQgdGhyb3VnaCAtMSB7XG4gICAgICBAaWYgJGRvdWJsZS1zdHJhbmRlZCBhbmQgKCR2MSAvICRyYXRpbykgPCAkdjIge1xuICAgICAgICAkdmFsdWU6ICR2MjtcbiAgICAgICAgJHYyOiAoJHYyIC8gJHJhdGlvKTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICAkdjE6ICgkdjEgLyAkcmF0aW8pO1xuICAgICAgICAkdmFsdWU6ICR2MTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZTtcbn1cbiIsIi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbi8vIEhlbHBlciBmdW5jdGlvbiBmb3Igc3RyLXRvLW51bSBmbi5cbi8vIFNvdXJjZTogaHR0cDovL3Nhc3NtZWlzdGVyLmNvbS9naXN0Lzk2NDc0MDhcbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbkBmdW5jdGlvbiBfY29udmVydC11bml0cygkbnVtYmVyLCAkdW5pdCkge1xuICAkc3RyaW5nczogXCJweFwiLCBcImNtXCIsIFwibW1cIiwgXCIlXCIsIFwiY2hcIiwgXCJwaWNhXCIsIFwiaW5cIiwgXCJlbVwiLCBcInJlbVwiLCBcInB0XCIsIFwicGNcIiwgXCJleFwiLCBcInZ3XCIsIFwidmhcIiwgXCJ2bWluXCIsIFwidm1heFwiLCBcImRlZ1wiLCBcInJhZFwiLCBcImdyYWRcIiwgXCJ0dXJuXCI7XG4gICR1bml0czogICAxcHgsIDFjbSwgMW1tLCAxJSwgMWNoLCAxcGljYSwgMWluLCAxZW0sIDFyZW0sIDFwdCwgMXBjLCAxZXgsIDF2dywgMXZoLCAxdm1pbiwgMXZtYXgsIDFkZWcsIDFyYWQsIDFncmFkLCAxdHVybjtcbiAgJGluZGV4OiBpbmRleCgkc3RyaW5ncywgJHVuaXQpO1xuXG4gIEBpZiBub3QgJGluZGV4IHtcbiAgICBAd2FybiBcIlVua25vd24gdW5pdCBgI3skdW5pdH1gLlwiO1xuICAgIEByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBAaWYgdHlwZS1vZigkbnVtYmVyKSAhPSBcIm51bWJlclwiIHtcbiAgICBAd2FybiBcImAjeyRudW1iZXJ9IGlzIG5vdCBhIG51bWJlcmBcIjtcbiAgICBAcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgQHJldHVybiAkbnVtYmVyICogbnRoKCR1bml0cywgJGluZGV4KTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIERpcmVjdGlvbmFsLXByb3BlcnR5IG1peGlucyBhcmUgc2hvcnRoYW5kcyBmb3Igd3JpdGluZyBwcm9wZXJ0aWVzIGxpa2UgdGhlIGZvbGxvd2luZ1xuLy8vXG4vLy8gQGlnbm9yZSBZb3UgY2FuIGFsc28gdXNlIGBmYWxzZWAgaW5zdGVhZCBvZiBgbnVsbGAuXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICR2YWxzXG4vLy8gICBMaXN0IG9mIGRpcmVjdGlvbmFsIHZhbHVlc1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIGJvcmRlci1zdHlsZShkb3R0ZWQgbnVsbCk7XG4vLy8gICAgIEBpbmNsdWRlIG1hcmdpbihudWxsIDAgMTBweCk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IGRvdHRlZDtcbi8vLyAgICAgYm9yZGVyLXRvcC1zdHlsZTogZG90dGVkO1xuLy8vICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuLy8vICAgICBtYXJnaW4tbGVmdDogMDtcbi8vLyAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBjb250YWlucy1mYWxzeVxuLy8vXG4vLy8gQHJldHVybiB7TGlzdH1cblxuQGZ1bmN0aW9uIGNvbGxhcHNlLWRpcmVjdGlvbmFscygkdmFscykge1xuICAkb3V0cHV0OiBudWxsO1xuXG4gICRhOiBudGgoJHZhbHMsIDEpO1xuICAkYjogaWYobGVuZ3RoKCR2YWxzKSA8IDIsICRhLCBudGgoJHZhbHMsIDIpKTtcbiAgJGM6IGlmKGxlbmd0aCgkdmFscykgPCAzLCAkYSwgbnRoKCR2YWxzLCAzKSk7XG4gICRkOiBpZihsZW5ndGgoJHZhbHMpIDwgMiwgJGEsIG50aCgkdmFscywgaWYobGVuZ3RoKCR2YWxzKSA8IDQsIDIsIDQpKSk7XG5cbiAgQGlmICRhID09IDAgeyAkYTogMDsgfVxuICBAaWYgJGIgPT0gMCB7ICRiOiAwOyB9XG4gIEBpZiAkYyA9PSAwIHsgJGM6IDA7IH1cbiAgQGlmICRkID09IDAgeyAkZDogMDsgfVxuXG4gIEBpZiAkYSA9PSAkYiBhbmQgJGEgPT0gJGMgYW5kICRhID09ICRkIHsgJG91dHB1dDogJGE7ICAgICAgICAgIH1cbiAgQGVsc2UgaWYgJGEgPT0gJGMgYW5kICRiID09ICRkICAgICAgICAgeyAkb3V0cHV0OiAkYSAkYjsgICAgICAgfVxuICBAZWxzZSBpZiAkYiA9PSAkZCAgICAgICAgICAgICAgICAgICAgICB7ICRvdXRwdXQ6ICRhICRiICRjOyAgICB9XG4gIEBlbHNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgJG91dHB1dDogJGEgJGIgJGMgJGQ7IH1cblxuICBAcmV0dXJuICRvdXRwdXQ7XG59XG5cbi8vLyBPdXRwdXQgZGlyZWN0aW9uYWwgcHJvcGVydGllcywgZm9yIGluc3RhbmNlIGBtYXJnaW5gLlxuLy8vXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHByZVxuLy8vICAgUHJlZml4IHRvIHVzZVxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc3VmXG4vLy8gICBTdWZmaXggdG8gdXNlXG4vLy8gQHBhcmFtIHtMaXN0fSAkdmFsc1xuLy8vICAgTGlzdCBvZiB2YWx1ZXNcbi8vL1xuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gY29sbGFwc2UtZGlyZWN0aW9uYWxzXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBjb250YWlucy1mYWxzeVxuXG5AbWl4aW4gZGlyZWN0aW9uYWwtcHJvcGVydHkoJHByZSwgJHN1ZiwgJHZhbHMpIHtcbiAgLy8gUHJvcGVydHkgTmFtZXNcbiAgJHRvcDogICAgJHByZSArIFwiLXRvcFwiICAgICsgaWYoJHN1ZiwgXCItI3skc3VmfVwiLCBcIlwiKTtcbiAgJGJvdHRvbTogJHByZSArIFwiLWJvdHRvbVwiICsgaWYoJHN1ZiwgXCItI3skc3VmfVwiLCBcIlwiKTtcbiAgJGxlZnQ6ICAgJHByZSArIFwiLWxlZnRcIiAgICsgaWYoJHN1ZiwgXCItI3skc3VmfVwiLCBcIlwiKTtcbiAgJHJpZ2h0OiAgJHByZSArIFwiLXJpZ2h0XCIgICsgaWYoJHN1ZiwgXCItI3skc3VmfVwiLCBcIlwiKTtcbiAgJGFsbDogICAgJHByZSArICAgICAgICAgICAgIGlmKCRzdWYsIFwiLSN7JHN1Zn1cIiwgXCJcIik7XG5cbiAgJHZhbHM6IGNvbGxhcHNlLWRpcmVjdGlvbmFscygkdmFscyk7XG5cbiAgQGlmIGNvbnRhaW5zLWZhbHN5KCR2YWxzKSB7XG4gICAgQGlmIG50aCgkdmFscywgMSkgeyAjeyR0b3B9OiBudGgoJHZhbHMsIDEpOyB9XG5cbiAgICBAaWYgbGVuZ3RoKCR2YWxzKSA9PSAxIHtcbiAgICAgIEBpZiBudGgoJHZhbHMsIDEpIHsgI3skcmlnaHR9OiBudGgoJHZhbHMsIDEpOyB9XG4gICAgfSBAZWxzZSB7XG4gICAgICBAaWYgbnRoKCR2YWxzLCAyKSB7ICN7JHJpZ2h0fTogbnRoKCR2YWxzLCAyKTsgfVxuICAgIH1cblxuICAgIEBpZiBsZW5ndGgoJHZhbHMpID09IDIge1xuICAgICAgQGlmIG50aCgkdmFscywgMSkgeyAjeyRib3R0b219OiBudGgoJHZhbHMsIDEpOyB9XG4gICAgICBAaWYgbnRoKCR2YWxzLCAyKSB7ICN7JGxlZnR9OiAgIG50aCgkdmFscywgMik7IH1cbiAgICB9IEBlbHNlIGlmIGxlbmd0aCgkdmFscykgPT0gMyB7XG4gICAgICBAaWYgbnRoKCR2YWxzLCAzKSB7ICN7JGJvdHRvbX06IG50aCgkdmFscywgMyk7IH1cbiAgICAgIEBpZiBudGgoJHZhbHMsIDIpIHsgI3skbGVmdH06ICAgbnRoKCR2YWxzLCAyKTsgfVxuICAgIH0gQGVsc2UgaWYgbGVuZ3RoKCR2YWxzKSA9PSA0IHtcbiAgICAgIEBpZiBudGgoJHZhbHMsIDMpIHsgI3skYm90dG9tfTogbnRoKCR2YWxzLCAzKTsgfVxuICAgICAgQGlmIG50aCgkdmFscywgNCkgeyAjeyRsZWZ0fTogICBudGgoJHZhbHMsIDQpOyB9XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICAjeyRhbGx9OiAkdmFscztcbiAgfVxufVxuIiwiLy8gVXNlZCBmb3IgY3JlYXRpbmcgdGhlIHNvdXJjZSBzdHJpbmcgZm9yIGZvbnRzIHVzaW5nIEBmb250LWZhY2Vcbi8vIFJlZmVyZW5jZTogaHR0cDovL2dvby5nbC9SdTFiS1BcblxuQGZ1bmN0aW9uIGZvbnQtdXJsLXByZWZpeGVyKCRhc3NldC1waXBlbGluZSkge1xuICBAaWYgJGFzc2V0LXBpcGVsaW5lID09IHRydWUge1xuICAgIEByZXR1cm4gZm9udC11cmw7XG4gIH0gQGVsc2Uge1xuICAgIEByZXR1cm4gdXJsO1xuICB9XG59XG5cbkBmdW5jdGlvbiBmb250LXNvdXJjZS1kZWNsYXJhdGlvbihcbiAgJGZvbnQtZmFtaWx5LFxuICAkZmlsZS1wYXRoLFxuICAkYXNzZXQtcGlwZWxpbmUsXG4gICRmaWxlLWZvcm1hdHMsXG4gICRmb250LXVybCkge1xuXG4gICRzcmM6ICgpO1xuXG4gICRmb3JtYXRzLW1hcDogKFxuICAgIGVvdDogICBcIiN7JGZpbGUtcGF0aH0uZW90PyNpZWZpeFwiIGZvcm1hdChcImVtYmVkZGVkLW9wZW50eXBlXCIpLFxuICAgIHdvZmYyOiBcIiN7JGZpbGUtcGF0aH0ud29mZjJcIiBmb3JtYXQoXCJ3b2ZmMlwiKSxcbiAgICB3b2ZmOiAgXCIjeyRmaWxlLXBhdGh9LndvZmZcIiBmb3JtYXQoXCJ3b2ZmXCIpLFxuICAgIHR0ZjogICBcIiN7JGZpbGUtcGF0aH0udHRmXCIgZm9ybWF0KFwidHJ1ZXR5cGVcIiksXG4gICAgc3ZnOiAgIFwiI3skZmlsZS1wYXRofS5zdmcjI3skZm9udC1mYW1pbHl9XCIgZm9ybWF0KFwic3ZnXCIpXG4gICk7XG5cbiAgQGVhY2ggJGtleSwgJHZhbHVlcyBpbiAkZm9ybWF0cy1tYXAge1xuICAgIEBpZiBjb250YWlucygkZmlsZS1mb3JtYXRzLCAka2V5KSB7XG4gICAgICAkZmlsZS1wYXRoOiBudGgoJHZhbHVlcywgMSk7XG4gICAgICAkZm9udC1mb3JtYXQ6IG50aCgkdmFsdWVzLCAyKTtcblxuICAgICAgQGlmICRhc3NldC1waXBlbGluZSA9PSB0cnVlIHtcbiAgICAgICAgJHNyYzogYXBwZW5kKCRzcmMsIGZvbnQtdXJsKCRmaWxlLXBhdGgpICRmb250LWZvcm1hdCwgY29tbWEpO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgICRzcmM6IGFwcGVuZCgkc3JjLCB1cmwoJGZpbGUtcGF0aCkgJGZvbnQtZm9ybWF0LCBjb21tYSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkc3JjO1xufVxuIiwiQGZ1bmN0aW9uIF9ncmFkaWVudC1wb3NpdGlvbnMtcGFyc2VyKCRncmFkaWVudC10eXBlLCAkZ3JhZGllbnQtcG9zaXRpb25zKSB7XG4gIEBpZiAkZ3JhZGllbnQtcG9zaXRpb25zXG4gIGFuZCAoJGdyYWRpZW50LXR5cGUgPT0gbGluZWFyKVxuICBhbmQgKHR5cGUtb2YoJGdyYWRpZW50LXBvc2l0aW9ucykgIT0gY29sb3IpIHtcbiAgICAkZ3JhZGllbnQtcG9zaXRpb25zOiBfbGluZWFyLXBvc2l0aW9ucy1wYXJzZXIoJGdyYWRpZW50LXBvc2l0aW9ucyk7XG4gIH1cbiAgQGVsc2UgaWYgJGdyYWRpZW50LXBvc2l0aW9uc1xuICBhbmQgKCRncmFkaWVudC10eXBlID09IHJhZGlhbClcbiAgYW5kICh0eXBlLW9mKCRncmFkaWVudC1wb3NpdGlvbnMpICE9IGNvbG9yKSB7XG4gICAgJGdyYWRpZW50LXBvc2l0aW9uczogX3JhZGlhbC1wb3NpdGlvbnMtcGFyc2VyKCRncmFkaWVudC1wb3NpdGlvbnMpO1xuICB9XG4gIEByZXR1cm4gJGdyYWRpZW50LXBvc2l0aW9ucztcbn1cbiIsIi8vIFByaXZhdGUgZnVuY3Rpb24gZm9yIGxpbmVhci1ncmFkaWVudC1wYXJzZXJcbkBmdW5jdGlvbiBfbGluZWFyLWFuZ2xlLXBhcnNlcigkaW1hZ2UsICRmaXJzdC12YWwsICRwcmVmaXgsICRzdWZmaXgpIHtcbiAgJG9mZnNldDogbnVsbDtcbiAgJHVuaXQtc2hvcnQ6ICBzdHItc2xpY2UoJGZpcnN0LXZhbCwgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSAtIDIsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkpO1xuICAkdW5pdC1sb25nOiAgIHN0ci1zbGljZSgkZmlyc3QtdmFsLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpIC0gMywgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSk7XG5cbiAgQGlmICgkdW5pdC1sb25nID09IFwiZ3JhZFwiKSBvclxuICAgICAgKCR1bml0LWxvbmcgPT0gXCJ0dXJuXCIpIHtcbiAgICAkb2Zmc2V0OiBpZigkdW5pdC1sb25nID09IFwiZ3JhZFwiLCAtMTAwZ3JhZCAqIDMsIC0wLjc1dHVybik7XG4gIH1cblxuICBAZWxzZSBpZiAoJHVuaXQtc2hvcnQgPT0gXCJkZWdcIikgb3JcbiAgICAgICAgICAgKCR1bml0LXNob3J0ID09IFwicmFkXCIpIHtcbiAgICAkb2Zmc2V0OiBpZigkdW5pdC1zaG9ydCA9PSBcImRlZ1wiLCAtOTAgKiAzLCAxLjZyYWQpO1xuICB9XG5cbiAgQGlmICRvZmZzZXQge1xuICAgICRudW06IF9zdHItdG8tbnVtKCRmaXJzdC12YWwpO1xuXG4gICAgQHJldHVybiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJHByZWZpeCArICgkb2Zmc2V0IC0gJG51bSkgKyAkc3VmZml4LFxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXG4gICAgKTtcbiAgfVxufVxuIiwiQGZ1bmN0aW9uIF9saW5lYXItZ3JhZGllbnQtcGFyc2VyKCRpbWFnZSkge1xuICAkaW1hZ2U6IHVucXVvdGUoJGltYWdlKTtcbiAgJGdyYWRpZW50czogKCk7XG4gICRzdGFydDogc3RyLWluZGV4KCRpbWFnZSwgXCIoXCIpO1xuICAkZW5kOiBzdHItaW5kZXgoJGltYWdlLCBcIixcIik7XG4gICRmaXJzdC12YWw6IHN0ci1zbGljZSgkaW1hZ2UsICRzdGFydCArIDEsICRlbmQgLSAxKTtcblxuICAkcHJlZml4OiBzdHItc2xpY2UoJGltYWdlLCAwLCAkc3RhcnQpO1xuICAkc3VmZml4OiBzdHItc2xpY2UoJGltYWdlLCAkZW5kLCBzdHItbGVuZ3RoKCRpbWFnZSkpO1xuXG4gICRoYXMtbXVsdGlwbGUtdmFsczogc3RyLWluZGV4KCRmaXJzdC12YWwsIFwiIFwiKTtcbiAgJGhhcy1zaW5nbGUtcG9zaXRpb246IHVucXVvdGUoX3Bvc2l0aW9uLWZsaXBwZXIoJGZpcnN0LXZhbCkgKyBcIlwiKTtcbiAgJGhhcy1hbmdsZTogaXMtbnVtYmVyKHN0ci1zbGljZSgkZmlyc3QtdmFsLCAwLCAwKSk7XG5cbiAgQGlmICRoYXMtbXVsdGlwbGUtdmFscyB7XG4gICAgJGdyYWRpZW50czogX2xpbmVhci1zaWRlLWNvcm5lci1wYXJzZXIoJGltYWdlLCAkZmlyc3QtdmFsLCAkcHJlZml4LCAkc3VmZml4LCAkaGFzLW11bHRpcGxlLXZhbHMpO1xuICB9XG5cbiAgQGVsc2UgaWYgJGhhcy1zaW5nbGUtcG9zaXRpb24gIT0gXCJcIiB7XG4gICAgJHBvczogdW5xdW90ZSgkaGFzLXNpbmdsZS1wb3NpdGlvbiArIFwiXCIpO1xuXG4gICAgJGdyYWRpZW50czogKFxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRpbWFnZSxcbiAgICAgIHNwZWMtaW1hZ2U6ICRwcmVmaXggKyBcInRvIFwiICsgJHBvcyArICRzdWZmaXhcbiAgICApO1xuICB9XG5cbiAgQGVsc2UgaWYgJGhhcy1hbmdsZSB7XG4gICAgLy8gUm90YXRlIGRlZ3JlZSBmb3Igd2Via2l0XG4gICAgJGdyYWRpZW50czogX2xpbmVhci1hbmdsZS1wYXJzZXIoJGltYWdlLCAkZmlyc3QtdmFsLCAkcHJlZml4LCAkc3VmZml4KTtcbiAgfVxuXG4gIEBlbHNlIHtcbiAgICAkZ3JhZGllbnRzOiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJGltYWdlLFxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXG4gICAgKTtcbiAgfVxuXG4gIEByZXR1cm4gJGdyYWRpZW50cztcbn1cbiIsIkBmdW5jdGlvbiBfbGluZWFyLXBvc2l0aW9ucy1wYXJzZXIoJHBvcykge1xuICAkdHlwZTogdHlwZS1vZihudGgoJHBvcywgMSkpO1xuICAkc3BlYzogbnVsbDtcbiAgJGRlZ3JlZTogbnVsbDtcbiAgJHNpZGU6IG51bGw7XG4gICRjb3JuZXI6IG51bGw7XG4gICRsZW5ndGg6IGxlbmd0aCgkcG9zKTtcbiAgLy8gUGFyc2UgU2lkZSBhbmQgY29ybmVyIHBvc2l0aW9uc1xuICBAaWYgKCRsZW5ndGggPiAxKSB7XG4gICAgQGlmIG50aCgkcG9zLCAxKSA9PSBcInRvXCIgeyAvLyBOZXdlciBzeW50YXhcbiAgICAgICRzaWRlOiBudGgoJHBvcywgMik7XG5cbiAgICAgIEBpZiAkbGVuZ3RoID09IDIgeyAvLyBlZy4gdG8gdG9wXG4gICAgICAgIC8vIFN3YXAgZm9yIGJhY2t3YXJkcyBjb21wYXRhYmlsaXR5XG4gICAgICAgICRkZWdyZWU6IF9wb3NpdGlvbi1mbGlwcGVyKG50aCgkcG9zLCAyKSk7XG4gICAgICB9XG4gICAgICBAZWxzZSBpZiAkbGVuZ3RoID09IDMgeyAvLyBlZy4gdG8gdG9wIGxlZnRcbiAgICAgICAgJGNvcm5lcjogbnRoKCRwb3MsIDMpO1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSBpZiAkbGVuZ3RoID09IDIgeyAvLyBPbGRlciBzeW50YXggKFwidG9wIGxlZnRcIilcbiAgICAgICRzaWRlOiBfcG9zaXRpb24tZmxpcHBlcihudGgoJHBvcywgMSkpO1xuICAgICAgJGNvcm5lcjogX3Bvc2l0aW9uLWZsaXBwZXIobnRoKCRwb3MsIDIpKTtcbiAgICB9XG5cbiAgICBAaWYgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwibGVmdCB0b3BcIikgb3IgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwidG9wIGxlZnRcIikge1xuICAgICAgJGRlZ3JlZTogX3Bvc2l0aW9uLWZsaXBwZXIoI3skc2lkZX0pIF9wb3NpdGlvbi1mbGlwcGVyKCN7JGNvcm5lcn0pO1xuICAgIH1cbiAgICBAZWxzZSBpZiAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJyaWdodCB0b3BcIikgb3IgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwidG9wIHJpZ2h0XCIpIHtcbiAgICAgICRkZWdyZWU6IF9wb3NpdGlvbi1mbGlwcGVyKCN7JHNpZGV9KSBfcG9zaXRpb24tZmxpcHBlcigjeyRjb3JuZXJ9KTtcbiAgICB9XG4gICAgQGVsc2UgaWYgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwicmlnaHQgYm90dG9tXCIpIG9yIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcImJvdHRvbSByaWdodFwiKSB7XG4gICAgICAkZGVncmVlOiBfcG9zaXRpb24tZmxpcHBlcigjeyRzaWRlfSkgX3Bvc2l0aW9uLWZsaXBwZXIoI3skY29ybmVyfSk7XG4gICAgfVxuICAgIEBlbHNlIGlmIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcImxlZnQgYm90dG9tXCIpIG9yIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcImJvdHRvbSBsZWZ0XCIpIHtcbiAgICAgICRkZWdyZWU6IF9wb3NpdGlvbi1mbGlwcGVyKCN7JHNpZGV9KSBfcG9zaXRpb24tZmxpcHBlcigjeyRjb3JuZXJ9KTtcbiAgICB9XG4gICAgJHNwZWM6IHRvICRzaWRlICRjb3JuZXI7XG4gIH1cbiAgQGVsc2UgaWYgJGxlbmd0aCA9PSAxIHtcbiAgICAvLyBTd2FwIGZvciBiYWNrd2FyZHMgY29tcGF0YWJpbGl0eVxuICAgIEBpZiAkdHlwZSA9PSBzdHJpbmcge1xuICAgICAgJGRlZ3JlZTogJHBvcztcbiAgICAgICRzcGVjOiB0byBfcG9zaXRpb24tZmxpcHBlcigkcG9zKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJGRlZ3JlZTogLTI3MCAtICRwb3M7IC8vcm90YXRlIHRoZSBncmFkaWVudCBvcHBvc2l0ZSBmcm9tIHNwZWNcbiAgICAgICRzcGVjOiAkcG9zO1xuICAgIH1cbiAgfVxuICAkZGVncmVlOiB1bnF1b3RlKCRkZWdyZWUgKyBcIixcIik7XG4gICRzcGVjOiAgIHVucXVvdGUoJHNwZWMgKyBcIixcIik7XG4gIEByZXR1cm4gJGRlZ3JlZSAkc3BlYztcbn1cblxuQGZ1bmN0aW9uIF9wb3NpdGlvbi1mbGlwcGVyKCRwb3MpIHtcbiAgQHJldHVybiBpZigkcG9zID09IGxlZnQsIHJpZ2h0LCBudWxsKVxuICAgICAgICAgaWYoJHBvcyA9PSByaWdodCwgbGVmdCwgbnVsbClcbiAgICAgICAgIGlmKCRwb3MgPT0gdG9wLCBib3R0b20sIG51bGwpXG4gICAgICAgICBpZigkcG9zID09IGJvdHRvbSwgdG9wLCBudWxsKTtcbn1cbiIsIi8vIFByaXZhdGUgZnVuY3Rpb24gZm9yIGxpbmVhci1ncmFkaWVudC1wYXJzZXJcbkBmdW5jdGlvbiBfbGluZWFyLXNpZGUtY29ybmVyLXBhcnNlcigkaW1hZ2UsICRmaXJzdC12YWwsICRwcmVmaXgsICRzdWZmaXgsICRoYXMtbXVsdGlwbGUtdmFscykge1xuICAkdmFsLTE6IHN0ci1zbGljZSgkZmlyc3QtdmFsLCAwLCAkaGFzLW11bHRpcGxlLXZhbHMgLSAxICk7XG4gICR2YWwtMjogc3RyLXNsaWNlKCRmaXJzdC12YWwsICRoYXMtbXVsdGlwbGUtdmFscyArIDEsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkpO1xuICAkdmFsLTM6IG51bGw7XG4gICRoYXMtdmFsLTM6IHN0ci1pbmRleCgkdmFsLTIsIFwiIFwiKTtcblxuICBAaWYgJGhhcy12YWwtMyB7XG4gICAgJHZhbC0zOiBzdHItc2xpY2UoJHZhbC0yLCAkaGFzLXZhbC0zICsgMSwgc3RyLWxlbmd0aCgkdmFsLTIpKTtcbiAgICAkdmFsLTI6IHN0ci1zbGljZSgkdmFsLTIsIDAsICRoYXMtdmFsLTMgLSAxKTtcbiAgfVxuXG4gICRwb3M6IF9wb3NpdGlvbi1mbGlwcGVyKCR2YWwtMSkgX3Bvc2l0aW9uLWZsaXBwZXIoJHZhbC0yKSBfcG9zaXRpb24tZmxpcHBlcigkdmFsLTMpO1xuICAkcG9zOiB1bnF1b3RlKCRwb3MgKyBcIlwiKTtcblxuICAvLyBVc2Ugb2xkIHNwZWMgZm9yIHdlYmtpdFxuICBAaWYgJHZhbC0xID09IFwidG9cIiB7XG4gICAgQHJldHVybiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJHByZWZpeCArICRwb3MgKyAkc3VmZml4LFxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXG4gICAgKTtcbiAgfVxuXG4gIC8vIEJyaW5nIHRoZSBjb2RlIHVwIHRvIHNwZWNcbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gKFxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRpbWFnZSxcbiAgICAgIHNwZWMtaW1hZ2U6ICRwcmVmaXggKyBcInRvIFwiICsgJHBvcyArICRzdWZmaXhcbiAgICApO1xuICB9XG59XG4iLCJAZnVuY3Rpb24gX3JhZGlhbC1hcmctcGFyc2VyKCRnMSwgJGcyLCAkcG9zLCAkc2hhcGUtc2l6ZSkge1xuICBAZWFjaCAkdmFsdWUgaW4gJGcxLCAkZzIge1xuICAgICRmaXJzdC12YWw6IG50aCgkdmFsdWUsIDEpO1xuICAgICRwb3MtdHlwZTogIHR5cGUtb2YoJGZpcnN0LXZhbCk7XG4gICAgJHNwZWMtYXQtaW5kZXg6IG51bGw7XG5cbiAgICAvLyBEZXRlcm1pbmUgaWYgc3BlYyB3YXMgcGFzc2VkIHRvIG1peGluXG4gICAgQGlmIHR5cGUtb2YoJHZhbHVlKSA9PSBsaXN0IHtcbiAgICAgICRzcGVjLWF0LWluZGV4OiBpZihpbmRleCgkdmFsdWUsIGF0KSwgaW5kZXgoJHZhbHVlLCBhdCksIGZhbHNlKTtcbiAgICB9XG4gICAgQGlmICRzcGVjLWF0LWluZGV4IHtcbiAgICAgIEBpZiAkc3BlYy1hdC1pbmRleCA+IDEge1xuICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICgkc3BlYy1hdC1pbmRleCAtIDEpIHtcbiAgICAgICAgICAkc2hhcGUtc2l6ZTogJHNoYXBlLXNpemUgbnRoKCR2YWx1ZSwgJGkpO1xuICAgICAgICB9XG4gICAgICAgIEBmb3IgJGkgZnJvbSAoJHNwZWMtYXQtaW5kZXggKyAxKSB0aHJvdWdoIGxlbmd0aCgkdmFsdWUpIHtcbiAgICAgICAgICAkcG9zOiAkcG9zIG50aCgkdmFsdWUsICRpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGVsc2UgaWYgJHNwZWMtYXQtaW5kZXggPT0gMSB7XG4gICAgICAgIEBmb3IgJGkgZnJvbSAoJHNwZWMtYXQtaW5kZXggKyAxKSB0aHJvdWdoIGxlbmd0aCgkdmFsdWUpIHtcbiAgICAgICAgICAkcG9zOiAkcG9zIG50aCgkdmFsdWUsICRpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJGcxOiBudWxsO1xuICAgIH1cblxuICAgIC8vIElmIG5vdCBzcGVjIGNhbGN1bGF0ZSBjb3JyZWN0IHZhbHVlc1xuICAgIEBlbHNlIHtcbiAgICAgIEBpZiAoJHBvcy10eXBlICE9IGNvbG9yKSBvciAoJGZpcnN0LXZhbCAhPSBcInRyYW5zcGFyZW50XCIpIHtcbiAgICAgICAgQGlmICgkcG9zLXR5cGUgPT0gbnVtYmVyKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImNlbnRlclwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcInRvcFwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcInJpZ2h0XCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiYm90dG9tXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwibGVmdFwiKSB7XG5cbiAgICAgICAgICAkcG9zOiAkdmFsdWU7XG5cbiAgICAgICAgICBAaWYgJHBvcyA9PSAkZzEge1xuICAgICAgICAgICAgJGcxOiBudWxsO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlbHNlIGlmXG4gICAgICAgICAgICgkZmlyc3QtdmFsID09IFwiZWxsaXBzZVwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImNpcmNsZVwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImNsb3Nlc3Qtc2lkZVwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImNsb3Nlc3QtY29ybmVyXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiZmFydGhlc3Qtc2lkZVwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImZhcnRoZXN0LWNvcm5lclwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImNvbnRhaW5cIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjb3ZlclwiKSB7XG5cbiAgICAgICAgICAkc2hhcGUtc2l6ZTogJHZhbHVlO1xuXG4gICAgICAgICAgQGlmICR2YWx1ZSA9PSAkZzEge1xuICAgICAgICAgICAgJGcxOiBudWxsO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIEBlbHNlIGlmICR2YWx1ZSA9PSAkZzIge1xuICAgICAgICAgICAgJGcyOiBudWxsO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAcmV0dXJuICRnMSwgJGcyLCAkcG9zLCAkc2hhcGUtc2l6ZTtcbn1cbiIsIkBmdW5jdGlvbiBfcmFkaWFsLXBvc2l0aW9ucy1wYXJzZXIoJGdyYWRpZW50LXBvcykge1xuICAkc2hhcGUtc2l6ZTogbnRoKCRncmFkaWVudC1wb3MsIDEpO1xuICAkcG9zOiAgICAgICAgbnRoKCRncmFkaWVudC1wb3MsIDIpO1xuICAkc2hhcGUtc2l6ZS1zcGVjOiBfc2hhcGUtc2l6ZS1zdHJpcHBlcigkc2hhcGUtc2l6ZSk7XG5cbiAgJHByZS1zcGVjOiB1bnF1b3RlKGlmKCRwb3MsIFwiI3skcG9zfSwgXCIsIG51bGwpKVxuICAgICAgICAgICAgIHVucXVvdGUoaWYoJHNoYXBlLXNpemUsIFwiI3skc2hhcGUtc2l6ZX0sXCIsIG51bGwpKTtcbiAgJHBvcy1zcGVjOiBpZigkcG9zLCBcImF0ICN7JHBvc31cIiwgbnVsbCk7XG5cbiAgJHNwZWM6IFwiI3skc2hhcGUtc2l6ZS1zcGVjfSAjeyRwb3Mtc3BlY31cIjtcblxuICAvLyBBZGQgY29tbWFcbiAgQGlmICgkc3BlYyAhPSBcIiAgXCIpIHtcbiAgICAkc3BlYzogXCIjeyRzcGVjfSxcIjtcbiAgfVxuXG4gIEByZXR1cm4gJHByZS1zcGVjICRzcGVjO1xufVxuIiwiQGZ1bmN0aW9uIF9yYWRpYWwtZ3JhZGllbnQtcGFyc2VyKCRpbWFnZSkge1xuICAkaW1hZ2U6IHVucXVvdGUoJGltYWdlKTtcbiAgJGdyYWRpZW50czogKCk7XG4gICRzdGFydDogc3RyLWluZGV4KCRpbWFnZSwgXCIoXCIpO1xuICAkZW5kOiBzdHItaW5kZXgoJGltYWdlLCBcIixcIik7XG4gICRmaXJzdC12YWw6IHN0ci1zbGljZSgkaW1hZ2UsICRzdGFydCArIDEsICRlbmQgLSAxKTtcblxuICAkcHJlZml4OiBzdHItc2xpY2UoJGltYWdlLCAwLCAkc3RhcnQpO1xuICAkc3VmZml4OiBzdHItc2xpY2UoJGltYWdlLCAkZW5kLCBzdHItbGVuZ3RoKCRpbWFnZSkpO1xuXG4gICRpcy1zcGVjLXN5bnRheDogc3RyLWluZGV4KCRmaXJzdC12YWwsIFwiYXRcIik7XG5cbiAgQGlmICRpcy1zcGVjLXN5bnRheCBhbmQgJGlzLXNwZWMtc3ludGF4ID4gMSB7XG4gICAgJGtleXdvcmQ6IHN0ci1zbGljZSgkZmlyc3QtdmFsLCAxLCAkaXMtc3BlYy1zeW50YXggLSAyKTtcbiAgICAkcG9zOiBzdHItc2xpY2UoJGZpcnN0LXZhbCwgJGlzLXNwZWMtc3ludGF4ICsgMywgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSk7XG4gICAgJHBvczogYXBwZW5kKCRwb3MsICRrZXl3b3JkLCBjb21tYSk7XG5cbiAgICAkZ3JhZGllbnRzOiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJHByZWZpeCArICRwb3MgKyAkc3VmZml4LFxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXG4gICAgKTtcbiAgfVxuXG4gIEBlbHNlIGlmICRpcy1zcGVjLXN5bnRheCA9PSAxIHtcbiAgICAkcG9zOiBzdHItc2xpY2UoJGZpcnN0LXZhbCwgJGlzLXNwZWMtc3ludGF4ICsgMywgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSk7XG5cbiAgICAkZ3JhZGllbnRzOiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJHByZWZpeCArICRwb3MgKyAkc3VmZml4LFxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXG4gICAgKTtcbiAgfVxuXG4gIEBlbHNlIGlmIHN0ci1pbmRleCgkaW1hZ2UsIFwiY292ZXJcIikgb3Igc3RyLWluZGV4KCRpbWFnZSwgXCJjb250YWluXCIpIHtcbiAgICBAd2FybiBcIlJhZGlhbC1ncmFkaWVudCBuZWVkcyB0byBiZSB1cGRhdGVkIHRvIGNvbmZvcm0gdG8gbGF0ZXN0IHNwZWMuXCI7XG5cbiAgICAkZ3JhZGllbnRzOiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IG51bGwsXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcbiAgICApO1xuICB9XG5cbiAgQGVsc2Uge1xuICAgICRncmFkaWVudHM6IChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkaW1hZ2UsXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcbiAgICApO1xuICB9XG5cbiAgQHJldHVybiAkZ3JhZGllbnRzO1xufVxuIiwiLy8gVXNlciBmb3IgbGluZWFyIGFuZCByYWRpYWwgZ3JhZGllbnRzIHdpdGhpbiBiYWNrZ3JvdW5kLWltYWdlIG9yIGJvcmRlci1pbWFnZSBwcm9wZXJ0aWVzXG5cbkBmdW5jdGlvbiBfcmVuZGVyLWdyYWRpZW50cygkZ3JhZGllbnQtcG9zaXRpb25zLCAkZ3JhZGllbnRzLCAkZ3JhZGllbnQtdHlwZSwgJHZlbmRvcjogZmFsc2UpIHtcbiAgJHByZS1zcGVjOiBudWxsO1xuICAkc3BlYzogbnVsbDtcbiAgJHZlbmRvci1ncmFkaWVudHM6IG51bGw7XG4gIEBpZiAkZ3JhZGllbnQtdHlwZSA9PSBsaW5lYXIge1xuICAgIEBpZiAkZ3JhZGllbnQtcG9zaXRpb25zIHtcbiAgICAgICRwcmUtc3BlYzogbnRoKCRncmFkaWVudC1wb3NpdGlvbnMsIDEpO1xuICAgICAgJHNwZWM6ICAgICBudGgoJGdyYWRpZW50LXBvc2l0aW9ucywgMik7XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IHJhZGlhbCB7XG4gICAgJHByZS1zcGVjOiBudGgoJGdyYWRpZW50LXBvc2l0aW9ucywgMSk7XG4gICAgJHNwZWM6ICAgICBudGgoJGdyYWRpZW50LXBvc2l0aW9ucywgMik7XG4gIH1cblxuICBAaWYgJHZlbmRvciB7XG4gICAgJHZlbmRvci1ncmFkaWVudHM6IC0jeyR2ZW5kb3J9LSN7JGdyYWRpZW50LXR5cGV9LWdyYWRpZW50KCN7JHByZS1zcGVjfSAkZ3JhZGllbnRzKTtcbiAgfVxuICBAZWxzZSBpZiAkdmVuZG9yID09IGZhbHNlIHtcbiAgICAkdmVuZG9yLWdyYWRpZW50czogXCIjeyRncmFkaWVudC10eXBlfS1ncmFkaWVudCgjeyRzcGVjfSAjeyRncmFkaWVudHN9KVwiO1xuICAgICR2ZW5kb3ItZ3JhZGllbnRzOiB1bnF1b3RlKCR2ZW5kb3ItZ3JhZGllbnRzKTtcbiAgfVxuICBAcmV0dXJuICR2ZW5kb3ItZ3JhZGllbnRzO1xufVxuIiwiQGZ1bmN0aW9uIF9zaGFwZS1zaXplLXN0cmlwcGVyKCRzaGFwZS1zaXplKSB7XG4gICRzaGFwZS1zaXplLXNwZWM6IG51bGw7XG4gIEBlYWNoICR2YWx1ZSBpbiAkc2hhcGUtc2l6ZSB7XG4gICAgQGlmICgkdmFsdWUgPT0gXCJjb3ZlclwiKSBvciAoJHZhbHVlID09IFwiY29udGFpblwiKSB7XG4gICAgICAkdmFsdWU6IG51bGw7XG4gICAgfVxuICAgICRzaGFwZS1zaXplLXNwZWM6IFwiI3skc2hhcGUtc2l6ZS1zcGVjfSAjeyR2YWx1ZX1cIjtcbiAgfVxuICBAcmV0dXJuICRzaGFwZS1zaXplLXNwZWM7XG59XG4iLCIvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG4vLyBIZWxwZXIgZnVuY3Rpb24gZm9yIGxpbmVhci9yYWRpYWwtZ3JhZGllbnQtcGFyc2Vycy5cbi8vIFNvdXJjZTogaHR0cDovL3Nhc3NtZWlzdGVyLmNvbS9naXN0Lzk2NDc0MDhcbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbkBmdW5jdGlvbiBfc3RyLXRvLW51bSgkc3RyaW5nKSB7XG4gIC8vIE1hdHJpY2VzXG4gICRzdHJpbmdzOiBcIjBcIiBcIjFcIiBcIjJcIiBcIjNcIiBcIjRcIiBcIjVcIiBcIjZcIiBcIjdcIiBcIjhcIiBcIjlcIjtcbiAgJG51bWJlcnM6ICAwICAgMSAgIDIgICAzICAgNCAgIDUgICA2ICAgNyAgIDggICA5O1xuXG4gIC8vIFJlc3VsdFxuICAkcmVzdWx0OiAwO1xuICAkZGl2aWRlcjogMDtcbiAgJG1pbnVzOiBmYWxzZTtcblxuICAvLyBMb29waW5nIHRocm91Z2ggYWxsIGNoYXJhY3RlcnNcbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCBzdHItbGVuZ3RoKCRzdHJpbmcpIHtcbiAgICAkY2hhcmFjdGVyOiBzdHItc2xpY2UoJHN0cmluZywgJGksICRpKTtcbiAgICAkaW5kZXg6IGluZGV4KCRzdHJpbmdzLCAkY2hhcmFjdGVyKTtcblxuICAgIEBpZiAkY2hhcmFjdGVyID09IFwiLVwiIHtcbiAgICAgICRtaW51czogdHJ1ZTtcbiAgICB9XG5cbiAgICBAZWxzZSBpZiAkY2hhcmFjdGVyID09IFwiLlwiIHtcbiAgICAgICRkaXZpZGVyOiAxO1xuICAgIH1cblxuICAgIEBlbHNlIHtcbiAgICAgIEBpZiBub3QgJGluZGV4IHtcbiAgICAgICAgJHJlc3VsdDogaWYoJG1pbnVzLCAkcmVzdWx0ICogLTEsICRyZXN1bHQpO1xuICAgICAgICBAcmV0dXJuIF9jb252ZXJ0LXVuaXRzKCRyZXN1bHQsIHN0ci1zbGljZSgkc3RyaW5nLCAkaSkpO1xuICAgICAgfVxuXG4gICAgICAkbnVtYmVyOiBudGgoJG51bWJlcnMsICRpbmRleCk7XG5cbiAgICAgIEBpZiAkZGl2aWRlciA9PSAwIHtcbiAgICAgICAgJHJlc3VsdDogJHJlc3VsdCAqIDEwO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSB7XG4gICAgICAgIC8vIE1vdmUgdGhlIGRlY2ltYWwgZG90IHRvIHRoZSBsZWZ0XG4gICAgICAgICRkaXZpZGVyOiAkZGl2aWRlciAqIDEwO1xuICAgICAgICAkbnVtYmVyOiAkbnVtYmVyIC8gJGRpdmlkZXI7XG4gICAgICB9XG5cbiAgICAgICRyZXN1bHQ6ICRyZXN1bHQgKyAkbnVtYmVyO1xuICAgIH1cbiAgfVxuICBAcmV0dXJuIGlmKCRtaW51cywgJHJlc3VsdCAqIC0xLCAkcmVzdWx0KTtcbn1cbiIsIi8vIGh0dHA6Ly93d3cudzMub3JnL1RSL2NzczMtYW5pbWF0aW9ucy8jdGhlLWFuaW1hdGlvbi1uYW1lLXByb3BlcnR5LVxuLy8gRWFjaCBvZiB0aGVzZSBtaXhpbnMgc3VwcG9ydCBjb21tYSBzZXBhcmF0ZWQgbGlzdHMgb2YgdmFsdWVzLCB3aGljaCBhbGxvd3MgZGlmZmVyZW50IHRyYW5zaXRpb25zIGZvciBpbmRpdmlkdWFsIHByb3BlcnRpZXMgdG8gYmUgZGVzY3JpYmVkIGluIGEgc2luZ2xlIHN0eWxlIHJ1bGUuIEVhY2ggdmFsdWUgaW4gdGhlIGxpc3QgY29ycmVzcG9uZHMgdG8gdGhlIHZhbHVlIGF0IHRoYXQgc2FtZSBwb3NpdGlvbiBpbiB0aGUgb3RoZXIgcHJvcGVydGllcy5cblxuQG1peGluIGFuaW1hdGlvbigkYW5pbWF0aW9ucy4uLikge1xuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24sICRhbmltYXRpb25zLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYW5pbWF0aW9uLW5hbWUoJG5hbWVzLi4uKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1uYW1lLCAkbmFtZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBhbmltYXRpb24tZHVyYXRpb24oJHRpbWVzLi4uKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1kdXJhdGlvbiwgJHRpbWVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbigkbW90aW9ucy4uLikge1xuICAvLyBlYXNlIHwgbGluZWFyIHwgZWFzZS1pbiB8IGVhc2Utb3V0IHwgZWFzZS1pbi1vdXRcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbiwgJG1vdGlvbnMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50KCR2YWx1ZXMuLi4pIHtcbiAgLy8gaW5maW5pdGUgfCA8bnVtYmVyPlxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24taXRlcmF0aW9uLWNvdW50LCAkdmFsdWVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYW5pbWF0aW9uLWRpcmVjdGlvbigkZGlyZWN0aW9ucy4uLikge1xuICAvLyBub3JtYWwgfCBhbHRlcm5hdGVcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWRpcmVjdGlvbiwgJGRpcmVjdGlvbnMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBhbmltYXRpb24tcGxheS1zdGF0ZSgkc3RhdGVzLi4uKSB7XG4gIC8vIHJ1bm5pbmcgfCBwYXVzZWRcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLXBsYXktc3RhdGUsICRzdGF0ZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBhbmltYXRpb24tZGVsYXkoJHRpbWVzLi4uKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1kZWxheSwgJHRpbWVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYW5pbWF0aW9uLWZpbGwtbW9kZSgkbW9kZXMuLi4pIHtcbiAgLy8gbm9uZSB8IGZvcndhcmRzIHwgYmFja3dhcmRzIHwgYm90aFxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tZmlsbC1tb2RlLCAkbW9kZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG4iLCJAbWl4aW4gYXBwZWFyYW5jZSgkdmFsdWUpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYXBwZWFyYW5jZSwgJHZhbHVlLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XG59XG4iLCJAbWl4aW4gYmFja2ZhY2UtdmlzaWJpbGl0eSgkdmlzaWJpbGl0eSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihiYWNrZmFjZS12aXNpYmlsaXR5LCAkdmlzaWJpbGl0eSwgd2Via2l0IHNwZWMpO1xufVxuIiwiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuLy8gQmFja2dyb3VuZCBwcm9wZXJ0eSBmb3IgYWRkaW5nIG11bHRpcGxlIGJhY2tncm91bmRzIHVzaW5nIHNob3J0aGFuZFxuLy8gbm90YXRpb24uXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG5cbkBtaXhpbiBiYWNrZ3JvdW5kKCRiYWNrZ3JvdW5kcy4uLikge1xuICAkd2Via2l0LWJhY2tncm91bmRzOiAoKTtcbiAgJHNwZWMtYmFja2dyb3VuZHM6ICgpO1xuXG4gIEBlYWNoICRiYWNrZ3JvdW5kIGluICRiYWNrZ3JvdW5kcyB7XG4gICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiAoKTtcbiAgICAkc3BlYy1iYWNrZ3JvdW5kOiAoKTtcbiAgICAkYmFja2dyb3VuZC10eXBlOiB0eXBlLW9mKCRiYWNrZ3JvdW5kKTtcblxuICAgIEBpZiAkYmFja2dyb3VuZC10eXBlID09IHN0cmluZyBvciAkYmFja2dyb3VuZC10eXBlID09IGxpc3Qge1xuICAgICAgJGJhY2tncm91bmQtc3RyOiBpZigkYmFja2dyb3VuZC10eXBlID09IGxpc3QsIG50aCgkYmFja2dyb3VuZCwgMSksICRiYWNrZ3JvdW5kKTtcblxuICAgICAgJHVybC1zdHI6ICAgICAgIHN0ci1zbGljZSgkYmFja2dyb3VuZC1zdHIsIDAsIDMpO1xuICAgICAgJGdyYWRpZW50LXR5cGU6IHN0ci1zbGljZSgkYmFja2dyb3VuZC1zdHIsIDAsIDYpO1xuXG4gICAgICBAaWYgJHVybC1zdHIgPT0gXCJ1cmxcIiB7XG4gICAgICAgICR3ZWJraXQtYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgICAgICRzcGVjLWJhY2tncm91bmQ6ICAgJGJhY2tncm91bmQ7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwibGluZWFyXCIge1xuICAgICAgICAkZ3JhZGllbnRzOiBfbGluZWFyLWdyYWRpZW50LXBhcnNlcihcIiN7JGJhY2tncm91bmR9XCIpO1xuICAgICAgICAkd2Via2l0LWJhY2tncm91bmQ6IG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcbiAgICAgICAgJHNwZWMtYmFja2dyb3VuZDogICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSBcInJhZGlhbFwiIHtcbiAgICAgICAgJGdyYWRpZW50czogX3JhZGlhbC1ncmFkaWVudC1wYXJzZXIoXCIjeyRiYWNrZ3JvdW5kfVwiKTtcbiAgICAgICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XG4gICAgICAgICRzcGVjLWJhY2tncm91bmQ6ICAgbWFwLWdldCgkZ3JhZGllbnRzLCBzcGVjLWltYWdlKTtcbiAgICAgIH1cblxuICAgICAgQGVsc2Uge1xuICAgICAgICAkd2Via2l0LWJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgICAgICAkc3BlYy1iYWNrZ3JvdW5kOiAgICRiYWNrZ3JvdW5kO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBlbHNlIHtcbiAgICAgICR3ZWJraXQtYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgICAkc3BlYy1iYWNrZ3JvdW5kOiAgICRiYWNrZ3JvdW5kO1xuICAgIH1cblxuICAgICR3ZWJraXQtYmFja2dyb3VuZHM6IGFwcGVuZCgkd2Via2l0LWJhY2tncm91bmRzLCAkd2Via2l0LWJhY2tncm91bmQsIGNvbW1hKTtcbiAgICAkc3BlYy1iYWNrZ3JvdW5kczogICBhcHBlbmQoJHNwZWMtYmFja2dyb3VuZHMsICAgJHNwZWMtYmFja2dyb3VuZCwgICBjb21tYSk7XG4gIH1cblxuICBiYWNrZ3JvdW5kOiAkd2Via2l0LWJhY2tncm91bmRzO1xuICBiYWNrZ3JvdW5kOiAkc3BlYy1iYWNrZ3JvdW5kcztcbn1cbiIsIi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbi8vIEJhY2tncm91bmQtaW1hZ2UgcHJvcGVydHkgZm9yIGFkZGluZyBtdWx0aXBsZSBiYWNrZ3JvdW5kIGltYWdlcyB3aXRoXG4vLyBncmFkaWVudHMsIG9yIGZvciBzdHJpbmdpbmcgbXVsdGlwbGUgZ3JhZGllbnRzIHRvZ2V0aGVyLlxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuXG5AbWl4aW4gYmFja2dyb3VuZC1pbWFnZSgkaW1hZ2VzLi4uKSB7XG4gICR3ZWJraXQtaW1hZ2VzOiAoKTtcbiAgJHNwZWMtaW1hZ2VzOiAoKTtcblxuICBAZWFjaCAkaW1hZ2UgaW4gJGltYWdlcyB7XG4gICAgJHdlYmtpdC1pbWFnZTogKCk7XG4gICAgJHNwZWMtaW1hZ2U6ICgpO1xuXG4gICAgQGlmICh0eXBlLW9mKCRpbWFnZSkgPT0gc3RyaW5nKSB7XG4gICAgICAkdXJsLXN0cjogICAgICAgc3RyLXNsaWNlKCRpbWFnZSwgMCwgMyk7XG4gICAgICAkZ3JhZGllbnQtdHlwZTogc3RyLXNsaWNlKCRpbWFnZSwgMCwgNik7XG5cbiAgICAgIEBpZiAkdXJsLXN0ciA9PSBcInVybFwiIHtcbiAgICAgICAgJHdlYmtpdC1pbWFnZTogJGltYWdlO1xuICAgICAgICAkc3BlYy1pbWFnZTogICAkaW1hZ2U7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwibGluZWFyXCIge1xuICAgICAgICAkZ3JhZGllbnRzOiBfbGluZWFyLWdyYWRpZW50LXBhcnNlcigkaW1hZ2UpO1xuICAgICAgICAkd2Via2l0LWltYWdlOiAgbWFwLWdldCgkZ3JhZGllbnRzLCB3ZWJraXQtaW1hZ2UpO1xuICAgICAgICAkc3BlYy1pbWFnZTogICAgbWFwLWdldCgkZ3JhZGllbnRzLCBzcGVjLWltYWdlKTtcbiAgICAgIH1cblxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJyYWRpYWxcIiB7XG4gICAgICAgICRncmFkaWVudHM6IF9yYWRpYWwtZ3JhZGllbnQtcGFyc2VyKCRpbWFnZSk7XG4gICAgICAgICR3ZWJraXQtaW1hZ2U6IG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcbiAgICAgICAgJHNwZWMtaW1hZ2U6ICAgbWFwLWdldCgkZ3JhZGllbnRzLCBzcGVjLWltYWdlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAkd2Via2l0LWltYWdlczogYXBwZW5kKCR3ZWJraXQtaW1hZ2VzLCAkd2Via2l0LWltYWdlLCBjb21tYSk7XG4gICAgJHNwZWMtaW1hZ2VzOiAgIGFwcGVuZCgkc3BlYy1pbWFnZXMsICAgJHNwZWMtaW1hZ2UsICAgY29tbWEpO1xuICB9XG5cbiAgYmFja2dyb3VuZC1pbWFnZTogJHdlYmtpdC1pbWFnZXM7XG4gIGJhY2tncm91bmQtaW1hZ2U6ICRzcGVjLWltYWdlcztcbn1cbiIsIkBtaXhpbiBib3JkZXItaW1hZ2UoJGJvcmRlcnMuLi4pIHtcbiAgJHdlYmtpdC1ib3JkZXJzOiAoKTtcbiAgJHNwZWMtYm9yZGVyczogKCk7XG5cbiAgQGVhY2ggJGJvcmRlciBpbiAkYm9yZGVycyB7XG4gICAgJHdlYmtpdC1ib3JkZXI6ICgpO1xuICAgICRzcGVjLWJvcmRlcjogKCk7XG4gICAgJGJvcmRlci10eXBlOiB0eXBlLW9mKCRib3JkZXIpO1xuXG4gICAgQGlmICRib3JkZXItdHlwZSA9PSBzdHJpbmcgb3IgbGlzdCB7XG4gICAgICAkYm9yZGVyLXN0cjogaWYoJGJvcmRlci10eXBlID09IGxpc3QsIG50aCgkYm9yZGVyLCAxKSwgJGJvcmRlcik7XG5cbiAgICAgICR1cmwtc3RyOiAgICAgICBzdHItc2xpY2UoJGJvcmRlci1zdHIsIDAsIDMpO1xuICAgICAgJGdyYWRpZW50LXR5cGU6IHN0ci1zbGljZSgkYm9yZGVyLXN0ciwgMCwgNik7XG5cbiAgICAgIEBpZiAkdXJsLXN0ciA9PSBcInVybFwiIHtcbiAgICAgICAgJHdlYmtpdC1ib3JkZXI6ICRib3JkZXI7XG4gICAgICAgICRzcGVjLWJvcmRlcjogICAkYm9yZGVyO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSBcImxpbmVhclwiIHtcbiAgICAgICAgJGdyYWRpZW50czogX2xpbmVhci1ncmFkaWVudC1wYXJzZXIoXCIjeyRib3JkZXJ9XCIpO1xuICAgICAgICAkd2Via2l0LWJvcmRlcjogbWFwLWdldCgkZ3JhZGllbnRzLCB3ZWJraXQtaW1hZ2UpO1xuICAgICAgICAkc3BlYy1ib3JkZXI6ICAgbWFwLWdldCgkZ3JhZGllbnRzLCBzcGVjLWltYWdlKTtcbiAgICAgIH1cblxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJyYWRpYWxcIiB7XG4gICAgICAgICRncmFkaWVudHM6IF9yYWRpYWwtZ3JhZGllbnQtcGFyc2VyKFwiI3skYm9yZGVyfVwiKTtcbiAgICAgICAgJHdlYmtpdC1ib3JkZXI6IG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcbiAgICAgICAgJHNwZWMtYm9yZGVyOiAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJHdlYmtpdC1ib3JkZXI6ICRib3JkZXI7XG4gICAgICAgICRzcGVjLWJvcmRlcjogICAkYm9yZGVyO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBlbHNlIHtcbiAgICAgICR3ZWJraXQtYm9yZGVyOiAkYm9yZGVyO1xuICAgICAgJHNwZWMtYm9yZGVyOiAgICRib3JkZXI7XG4gICAgfVxuXG4gICAgJHdlYmtpdC1ib3JkZXJzOiBhcHBlbmQoJHdlYmtpdC1ib3JkZXJzLCAkd2Via2l0LWJvcmRlciwgY29tbWEpO1xuICAgICRzcGVjLWJvcmRlcnM6ICAgYXBwZW5kKCRzcGVjLWJvcmRlcnMsICAgJHNwZWMtYm9yZGVyLCAgIGNvbW1hKTtcbiAgfVxuXG4gIC13ZWJraXQtYm9yZGVyLWltYWdlOiAkd2Via2l0LWJvcmRlcnM7XG4gICAgICAgICAgYm9yZGVyLWltYWdlOiAkc3BlYy1ib3JkZXJzO1xuICAgICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG59XG5cbi8vRXhhbXBsZXM6XG4vLyBAaW5jbHVkZSBib3JkZXItaW1hZ2UodXJsKFwiaW1hZ2UucG5nXCIpKTtcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZSh1cmwoXCJpbWFnZS5wbmdcIikgMjAgc3RyZXRjaCk7XG4vLyBAaW5jbHVkZSBib3JkZXItaW1hZ2UobGluZWFyLWdyYWRpZW50KDQ1ZGVnLCBvcmFuZ2UsIHllbGxvdykpO1xuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKGxpbmVhci1ncmFkaWVudCg0NWRlZywgb3JhbmdlLCB5ZWxsb3cpIHN0cmV0Y2gpO1xuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKGxpbmVhci1ncmFkaWVudCg0NWRlZywgb3JhbmdlLCB5ZWxsb3cpIDIwIDMwIDQwIDUwIHN0cmV0Y2ggcm91bmQpO1xuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKHJhZGlhbC1ncmFkaWVudCh0b3AsIGNvdmVyLCBvcmFuZ2UsIHllbGxvdywgb3JhbmdlKSk7XG4iLCJAbWl4aW4gY2FsYygkcHJvcGVydHksICR2YWx1ZSkge1xuICAjeyRwcm9wZXJ0eX06IC13ZWJraXQtY2FsYygjeyR2YWx1ZX0pO1xuICAjeyRwcm9wZXJ0eX06IGNhbGMoI3skdmFsdWV9KTtcbn1cbiIsIkBtaXhpbiBjb2x1bW5zKCRhcmc6IGF1dG8pIHtcbiAgLy8gPGNvbHVtbi1jb3VudD4gfHwgPGNvbHVtbi13aWR0aD5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1ucywgJGFyZywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1jb3VudCgkaW50OiBhdXRvKSB7XG4gIC8vIGF1dG8gfHwgaW50ZWdlclxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tY291bnQsICRpbnQsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4tZ2FwKCRsZW5ndGg6IG5vcm1hbCkge1xuICAvLyBub3JtYWwgfHwgbGVuZ3RoXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1nYXAsICRsZW5ndGgsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4tZmlsbCgkYXJnOiBhdXRvKSB7XG4gIC8vIGF1dG8gfHwgbGVuZ3RoXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1maWxsLCAkYXJnLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLXJ1bGUoJGFyZykge1xuICAvLyA8Ym9yZGVyLXdpZHRoPiB8fCA8Ym9yZGVyLXN0eWxlPiB8fCA8Y29sb3I+XG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1ydWxlLCAkYXJnLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLXJ1bGUtY29sb3IoJGNvbG9yKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1ydWxlLWNvbG9yLCAkY29sb3IsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4tcnVsZS1zdHlsZSgkc3R5bGU6IG5vbmUpIHtcbiAgLy8gbm9uZSB8IGhpZGRlbiB8IGRhc2hlZCB8IGRvdHRlZCB8IGRvdWJsZSB8IGdyb292ZSB8IGluc2V0IHwgaW5zZXQgfCBvdXRzZXQgfCByaWRnZSB8IHNvbGlkXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1ydWxlLXN0eWxlLCAkc3R5bGUsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4tcnVsZS13aWR0aCAoJHdpZHRoOiBub25lKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1ydWxlLXdpZHRoLCAkd2lkdGgsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4tc3BhbigkYXJnOiBub25lKSB7XG4gIC8vIG5vbmUgfHwgYWxsXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1zcGFuLCAkYXJnLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLXdpZHRoKCRsZW5ndGg6IGF1dG8pIHtcbiAgLy8gYXV0byB8fCBsZW5ndGhcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXdpZHRoLCAkbGVuZ3RoLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuIiwiQG1peGluIGZpbHRlcigkZnVuY3Rpb246IG5vbmUpIHtcbiAgLy8gPGZpbHRlci1mdW5jdGlvbj4gWzxmaWx0ZXItZnVuY3Rpb25dKiB8IG5vbmVcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmlsdGVyLCAkZnVuY3Rpb24sIHdlYmtpdCBzcGVjKTtcbn1cbiIsIi8vIENTUzMgRmxleGlibGUgQm94IE1vZGVsIGFuZCBwcm9wZXJ0eSBkZWZhdWx0c1xuXG4vLyBDdXN0b20gc2hvcnRoYW5kIG5vdGF0aW9uIGZvciBmbGV4Ym94XG5AbWl4aW4gYm94KCRvcmllbnQ6IGlubGluZS1heGlzLCAkcGFjazogc3RhcnQsICRhbGlnbjogc3RyZXRjaCkge1xuICBAaW5jbHVkZSBkaXNwbGF5LWJveDtcbiAgQGluY2x1ZGUgYm94LW9yaWVudCgkb3JpZW50KTtcbiAgQGluY2x1ZGUgYm94LXBhY2soJHBhY2spO1xuICBAaW5jbHVkZSBib3gtYWxpZ24oJGFsaWduKTtcbn1cblxuQG1peGluIGRpc3BsYXktYm94IHtcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gIGRpc3BsYXk6IC1tb3otYm94O1xuICBkaXNwbGF5OiAtbXMtZmxleGJveDsgLy8gSUUgMTBcbiAgZGlzcGxheTogYm94O1xufVxuXG5AbWl4aW4gYm94LW9yaWVudCgkb3JpZW50OiBpbmxpbmUtYXhpcykge1xuLy8gaG9yaXpvbnRhbHx2ZXJ0aWNhbHxpbmxpbmUtYXhpc3xibG9jay1heGlzfGluaGVyaXRcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LW9yaWVudCwgJG9yaWVudCwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGJveC1wYWNrKCRwYWNrOiBzdGFydCkge1xuLy8gc3RhcnR8ZW5kfGNlbnRlcnxqdXN0aWZ5XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1wYWNrLCAkcGFjaywgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtcGFjazogJHBhY2s7IC8vIElFIDEwXG59XG5cbkBtaXhpbiBib3gtYWxpZ24oJGFsaWduOiBzdHJldGNoKSB7XG4vLyBzdGFydHxlbmR8Y2VudGVyfGJhc2VsaW5lfHN0cmV0Y2hcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWFsaWduLCAkYWxpZ24sIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LWFsaWduOiAkYWxpZ247IC8vIElFIDEwXG59XG5cbkBtaXhpbiBib3gtZGlyZWN0aW9uKCRkaXJlY3Rpb246IG5vcm1hbCkge1xuLy8gbm9ybWFsfHJldmVyc2V8aW5oZXJpdFxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZGlyZWN0aW9uLCAkZGlyZWN0aW9uLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1kaXJlY3Rpb246ICRkaXJlY3Rpb247IC8vIElFIDEwXG59XG5cbkBtaXhpbiBib3gtbGluZXMoJGxpbmVzOiBzaW5nbGUpIHtcbi8vIHNpbmdsZXxtdWx0aXBsZVxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtbGluZXMsICRsaW5lcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGJveC1vcmRpbmFsLWdyb3VwKCRpbnQ6IDEpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LW9yZGluYWwtZ3JvdXAsICRpbnQsIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LW9yZGVyOiAkaW50OyAvLyBJRSAxMFxufVxuXG5AbWl4aW4gYm94LWZsZXgoJHZhbHVlOiAwKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1mbGV4LCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4OiAkdmFsdWU7IC8vIElFIDEwXG59XG5cbkBtaXhpbiBib3gtZmxleC1ncm91cCgkaW50OiAxKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1mbGV4LWdyb3VwLCAkaW50LCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG4vLyBDU1MzIEZsZXhpYmxlIEJveCBNb2RlbCBhbmQgcHJvcGVydHkgZGVmYXVsdHNcbi8vIFVuaWZpZWQgYXR0cmlidXRlcyBmb3IgMjAwOSwgMjAxMSwgYW5kIDIwMTIgZmxhdm91cnMuXG5cbi8vIDIwMDkgLSBkaXNwbGF5IChib3ggfCBpbmxpbmUtYm94KVxuLy8gMjAxMSAtIGRpc3BsYXkgKGZsZXhib3ggfCBpbmxpbmUtZmxleGJveClcbi8vIDIwMTIgLSBkaXNwbGF5IChmbGV4IHwgaW5saW5lLWZsZXgpXG5AbWl4aW4gZGlzcGxheSgkdmFsdWUpIHtcbi8vIGZsZXggfCBpbmxpbmUtZmxleFxuICBAaWYgJHZhbHVlID09IFwiZmxleFwiIHtcbiAgICAvLyAyMDA5XG4gICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gICAgZGlzcGxheTogLW1vei1ib3g7XG4gICAgZGlzcGxheTogYm94O1xuXG4gICAgLy8gMjAxMlxuICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgICBkaXNwbGF5OiAtbW96LWZsZXg7XG4gICAgZGlzcGxheTogLW1zLWZsZXhib3g7IC8vIDIwMTEgKElFIDEwKVxuICAgIGRpc3BsYXk6IGZsZXg7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwiaW5saW5lLWZsZXhcIiB7XG4gICAgZGlzcGxheTogLXdlYmtpdC1pbmxpbmUtYm94O1xuICAgIGRpc3BsYXk6IC1tb3otaW5saW5lLWJveDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYm94O1xuXG4gICAgZGlzcGxheTogLXdlYmtpdC1pbmxpbmUtZmxleDtcbiAgICBkaXNwbGF5OiAtbW96LWlubGluZS1mbGV4O1xuICAgIGRpc3BsYXk6IC1tcy1pbmxpbmUtZmxleGJveDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgfSBAZWxzZSB7XG4gICAgZGlzcGxheTogJHZhbHVlO1xuICB9XG59XG5cbi8vIDIwMDkgLSBib3gtZmxleCAoaW50ZWdlcilcbi8vIDIwMTEgLSBmbGV4IChkZWNpbWFsIHwgd2lkdGggZGVjaW1hbClcbi8vIDIwMTIgLSBmbGV4IChpbnRlZ2VyIGludGVnZXIgd2lkdGgpXG5AbWl4aW4gZmxleCgkdmFsdWUpIHtcblxuICAvLyBHcmFiIGZsZXgtZ3JvdyBmb3Igb2xkZXIgYnJvd3NlcnMuXG4gICRmbGV4LWdyb3c6IG50aCgkdmFsdWUsIDEpO1xuXG4gIC8vIDIwMDlcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWZsZXgsICRmbGV4LWdyb3csIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMSAoSUUgMTApLCAyMDEyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBzcGVjKTtcbn1cblxuLy8gMjAwOSAtIGJveC1vcmllbnQgKCBob3Jpem9udGFsIHwgdmVydGljYWwgfCBpbmxpbmUtYXhpcyB8IGJsb2NrLWF4aXMpXG4vLyAgICAgIC0gYm94LWRpcmVjdGlvbiAobm9ybWFsIHwgcmV2ZXJzZSlcbi8vIDIwMTEgLSBmbGV4LWRpcmVjdGlvbiAocm93IHwgcm93LXJldmVyc2UgfCBjb2x1bW4gfCBjb2x1bW4tcmV2ZXJzZSlcbi8vIDIwMTIgLSBmbGV4LWRpcmVjdGlvbiAocm93IHwgcm93LXJldmVyc2UgfCBjb2x1bW4gfCBjb2x1bW4tcmV2ZXJzZSlcbkBtaXhpbiBmbGV4LWRpcmVjdGlvbigkdmFsdWU6IHJvdykge1xuXG4gIC8vIEFsdCB2YWx1ZXMuXG4gICR2YWx1ZS0yMDA5OiAkdmFsdWU7XG4gICR2YWx1ZS0yMDExOiAkdmFsdWU7XG4gICRkaXJlY3Rpb246IG5vcm1hbDtcblxuICBAaWYgJHZhbHVlID09IHJvdyB7XG4gICAgJHZhbHVlLTIwMDk6IGhvcml6b250YWw7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwicm93LXJldmVyc2VcIiB7XG4gICAgJHZhbHVlLTIwMDk6IGhvcml6b250YWw7XG4gICAgJGRpcmVjdGlvbjogcmV2ZXJzZTtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gY29sdW1uIHtcbiAgICAkdmFsdWUtMjAwOTogdmVydGljYWw7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwiY29sdW1uLXJldmVyc2VcIiB7XG4gICAgJHZhbHVlLTIwMDk6IHZlcnRpY2FsO1xuICAgICRkaXJlY3Rpb246IHJldmVyc2U7XG4gIH1cblxuICAvLyAyMDA5XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1vcmllbnQsICR2YWx1ZS0yMDA5LCB3ZWJraXQgbW96IHNwZWMpO1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZGlyZWN0aW9uLCAkZGlyZWN0aW9uLCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1kaXJlY3Rpb24sICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDExIChJRSAxMClcbiAgLW1zLWZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG59XG5cbi8vIDIwMDkgLSBib3gtbGluZXMgKHNpbmdsZSB8IG11bHRpcGxlKVxuLy8gMjAxMSAtIGZsZXgtd3JhcCAobm93cmFwIHwgd3JhcCB8IHdyYXAtcmV2ZXJzZSlcbi8vIDIwMTIgLSBmbGV4LXdyYXAgKG5vd3JhcCB8IHdyYXAgfCB3cmFwLXJldmVyc2UpXG5AbWl4aW4gZmxleC13cmFwKCR2YWx1ZTogbm93cmFwKSB7XG4gIC8vIEFsdCB2YWx1ZXNcbiAgJGFsdC12YWx1ZTogJHZhbHVlO1xuICBAaWYgJHZhbHVlID09IG5vd3JhcCB7XG4gICAgJGFsdC12YWx1ZTogc2luZ2xlO1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSB3cmFwIHtcbiAgICAkYWx0LXZhbHVlOiBtdWx0aXBsZTtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJ3cmFwLXJldmVyc2VcIiB7XG4gICAgJGFsdC12YWx1ZTogbXVsdGlwbGU7XG4gIH1cblxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtbGluZXMsICRhbHQtdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtd3JhcCwgJHZhbHVlLCB3ZWJraXQgbW96IG1zIHNwZWMpO1xufVxuXG4vLyAyMDA5IC0gVE9ETzogcGFyc2UgdmFsdWVzIGludG8gZmxleC1kaXJlY3Rpb24vZmxleC13cmFwXG4vLyAyMDExIC0gVE9ETzogcGFyc2UgdmFsdWVzIGludG8gZmxleC1kaXJlY3Rpb24vZmxleC13cmFwXG4vLyAyMDEyIC0gZmxleC1mbG93IChmbGV4LWRpcmVjdGlvbiB8fCBmbGV4LXdyYXApXG5AbWl4aW4gZmxleC1mbG93KCR2YWx1ZSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LWZsb3csICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuLy8gMjAwOSAtIGJveC1vcmRpbmFsLWdyb3VwIChpbnRlZ2VyKVxuLy8gMjAxMSAtIGZsZXgtb3JkZXIgKGludGVnZXIpXG4vLyAyMDEyIC0gb3JkZXIgKGludGVnZXIpXG5AbWl4aW4gb3JkZXIoJGludDogMCkge1xuICAvLyAyMDA5XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1vcmRpbmFsLWdyb3VwLCAkaW50LCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTJcbiAgQGluY2x1ZGUgcHJlZml4ZXIob3JkZXIsICRpbnQsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMSAoSUUgMTApXG4gIC1tcy1mbGV4LW9yZGVyOiAkaW50O1xufVxuXG4vLyAyMDEyIC0gZmxleC1ncm93IChudW1iZXIpXG5AbWl4aW4gZmxleC1ncm93KCRudW1iZXI6IDApIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1ncm93LCAkbnVtYmVyLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1wb3NpdGl2ZTogJG51bWJlcjtcbn1cblxuLy8gMjAxMiAtIGZsZXgtc2hyaW5rIChudW1iZXIpXG5AbWl4aW4gZmxleC1zaHJpbmsoJG51bWJlcjogMSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LXNocmluaywgJG51bWJlciwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtbmVnYXRpdmU6ICRudW1iZXI7XG59XG5cbi8vIDIwMTIgLSBmbGV4LWJhc2lzIChudW1iZXIpXG5AbWl4aW4gZmxleC1iYXNpcygkd2lkdGg6IGF1dG8pIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1iYXNpcywgJHdpZHRoLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogJHdpZHRoO1xufVxuXG4vLyAyMDA5IC0gYm94LXBhY2sgKHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwganVzdGlmeSlcbi8vIDIwMTEgLSBmbGV4LXBhY2sgKHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwganVzdGlmeSlcbi8vIDIwMTIgLSBqdXN0aWZ5LWNvbnRlbnQgKGZsZXgtc3RhcnQgfCBmbGV4LWVuZCB8IGNlbnRlciB8IHNwYWNlLWJldHdlZW4gfCBzcGFjZS1hcm91bmQpXG5AbWl4aW4ganVzdGlmeS1jb250ZW50KCR2YWx1ZTogZmxleC1zdGFydCkge1xuXG4gIC8vIEFsdCB2YWx1ZXMuXG4gICRhbHQtdmFsdWU6ICR2YWx1ZTtcbiAgQGlmICR2YWx1ZSA9PSBcImZsZXgtc3RhcnRcIiB7XG4gICAgJGFsdC12YWx1ZTogc3RhcnQ7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwiZmxleC1lbmRcIiB7XG4gICAgJGFsdC12YWx1ZTogZW5kO1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcInNwYWNlLWJldHdlZW5cIiB7XG4gICAgJGFsdC12YWx1ZToganVzdGlmeTtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJzcGFjZS1hcm91bmRcIiB7XG4gICAgJGFsdC12YWx1ZTogZGlzdHJpYnV0ZTtcbiAgfVxuXG4gIC8vIDIwMDlcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LXBhY2ssICRhbHQtdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMlxuICBAaW5jbHVkZSBwcmVmaXhlcihqdXN0aWZ5LWNvbnRlbnQsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xuXG4gIC8vIDIwMTEgKElFIDEwKVxuICAtbXMtZmxleC1wYWNrOiAkYWx0LXZhbHVlO1xufVxuXG4vLyAyMDA5IC0gYm94LWFsaWduIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcbi8vIDIwMTEgLSBmbGV4LWFsaWduIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcbi8vIDIwMTIgLSBhbGlnbi1pdGVtcyAoZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxuQG1peGluIGFsaWduLWl0ZW1zKCR2YWx1ZTogc3RyZXRjaCkge1xuXG4gICRhbHQtdmFsdWU6ICR2YWx1ZTtcblxuICBAaWYgJHZhbHVlID09IFwiZmxleC1zdGFydFwiIHtcbiAgICAkYWx0LXZhbHVlOiBzdGFydDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJmbGV4LWVuZFwiIHtcbiAgICAkYWx0LXZhbHVlOiBlbmQ7XG4gIH1cblxuICAvLyAyMDA5XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1hbGlnbiwgJGFsdC12YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDEyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFsaWduLWl0ZW1zLCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcblxuICAvLyAyMDExIChJRSAxMClcbiAgLW1zLWZsZXgtYWxpZ246ICRhbHQtdmFsdWU7XG59XG5cbi8vIDIwMTEgLSBmbGV4LWl0ZW0tYWxpZ24gKGF1dG8gfCBzdGFydCB8IGVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcbi8vIDIwMTIgLSBhbGlnbi1zZWxmIChhdXRvIHwgZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxuQG1peGluIGFsaWduLXNlbGYoJHZhbHVlOiBhdXRvKSB7XG5cbiAgJHZhbHVlLTIwMTE6ICR2YWx1ZTtcbiAgQGlmICR2YWx1ZSA9PSBcImZsZXgtc3RhcnRcIiB7XG4gICAgJHZhbHVlLTIwMTE6IHN0YXJ0O1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcImZsZXgtZW5kXCIge1xuICAgICR2YWx1ZS0yMDExOiBlbmQ7XG4gIH1cblxuICAvLyAyMDEyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFsaWduLXNlbGYsICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDExIChJRSAxMClcbiAgLW1zLWZsZXgtaXRlbS1hbGlnbjogJHZhbHVlLTIwMTE7XG59XG5cbi8vIDIwMTEgLSBmbGV4LWxpbmUtcGFjayAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBqdXN0aWZ5IHwgZGlzdHJpYnV0ZSB8IHN0cmV0Y2gpXG4vLyAyMDEyIC0gYWxpZ24tY29udGVudCAoZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgc3BhY2UtYmV0d2VlbiB8IHNwYWNlLWFyb3VuZCB8IHN0cmV0Y2gpXG5AbWl4aW4gYWxpZ24tY29udGVudCgkdmFsdWU6IHN0cmV0Y2gpIHtcblxuICAkdmFsdWUtMjAxMTogJHZhbHVlO1xuICBAaWYgJHZhbHVlID09IFwiZmxleC1zdGFydFwiIHtcbiAgICAkdmFsdWUtMjAxMTogc3RhcnQ7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwiZmxleC1lbmRcIiB7XG4gICAgJHZhbHVlLTIwMTE6IGVuZDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJzcGFjZS1iZXR3ZWVuXCIge1xuICAgICR2YWx1ZS0yMDExOiBqdXN0aWZ5O1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcInNwYWNlLWFyb3VuZFwiIHtcbiAgICAkdmFsdWUtMjAxMTogZGlzdHJpYnV0ZTtcbiAgfVxuXG4gIC8vIDIwMTJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYWxpZ24tY29udGVudCwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTEgKElFIDEwKVxuICAtbXMtZmxleC1saW5lLXBhY2s6ICR2YWx1ZS0yMDExO1xufVxuIiwiQG1peGluIGZvbnQtZmFjZShcbiAgJGZvbnQtZmFtaWx5LFxuICAkZmlsZS1wYXRoLFxuICAkd2VpZ2h0OiBub3JtYWwsXG4gICRzdHlsZTogbm9ybWFsLFxuICAkYXNzZXQtcGlwZWxpbmU6ICRhc3NldC1waXBlbGluZSxcbiAgJGZpbGUtZm9ybWF0czogZW90IHdvZmYyIHdvZmYgdHRmIHN2Zykge1xuXG4gICRmb250LXVybC1wcmVmaXg6IGZvbnQtdXJsLXByZWZpeGVyKCRhc3NldC1waXBlbGluZSk7XG5cbiAgQGZvbnQtZmFjZSB7XG4gICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseTtcbiAgICBmb250LXN0eWxlOiAkc3R5bGU7XG4gICAgZm9udC13ZWlnaHQ6ICR3ZWlnaHQ7XG5cbiAgICBzcmM6IGZvbnQtc291cmNlLWRlY2xhcmF0aW9uKFxuICAgICAgJGZvbnQtZmFtaWx5LFxuICAgICAgJGZpbGUtcGF0aCxcbiAgICAgICRhc3NldC1waXBlbGluZSxcbiAgICAgICRmaWxlLWZvcm1hdHMsXG4gICAgICAkZm9udC11cmwtcHJlZml4XG4gICAgKTtcbiAgfVxufVxuIiwiQG1peGluIGZvbnQtZmVhdHVyZS1zZXR0aW5ncygkc2V0dGluZ3MuLi4pIHtcbiAgQGlmIGxlbmd0aCgkc2V0dGluZ3MpID09IDAgeyAkc2V0dGluZ3M6IG5vbmU7IH1cbiAgQGluY2x1ZGUgcHJlZml4ZXIoZm9udC1mZWF0dXJlLXNldHRpbmdzLCAkc2V0dGluZ3MsIHdlYmtpdCBtb3ogbXMgc3BlYyk7XG59XG4iLCIvLyBIaURQSSBtaXhpbi4gRGVmYXVsdCB2YWx1ZSBzZXQgdG8gMS4zIHRvIHRhcmdldCBHb29nbGUgTmV4dXMgNyAoaHR0cDovL2JqYW5nby5jb20vYXJ0aWNsZXMvbWluLWRldmljZS1waXhlbC1yYXRpby8pXG5AbWl4aW4gaGlkcGkoJHJhdGlvOiAxLjMpIHtcbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAkcmF0aW8pLFxuICBvbmx5IHNjcmVlbiBhbmQgKG1pbi0tbW96LWRldmljZS1waXhlbC1yYXRpbzogJHJhdGlvKSxcbiAgb25seSBzY3JlZW4gYW5kICgtby1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAjeyRyYXRpb30vMSksXG4gIG9ubHkgc2NyZWVuIGFuZCAobWluLXJlc29sdXRpb246IHJvdW5kKCRyYXRpbyAqIDk2ZHBpKSksXG4gIG9ubHkgc2NyZWVuIGFuZCAobWluLXJlc29sdXRpb246ICRyYXRpbyAqIDFkcHB4KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cbiIsIkBtaXhpbiBoeXBoZW5zKCRoeXBoZW5hdGlvbjogbm9uZSkge1xuICAvLyBub25lIHwgbWFudWFsIHwgYXV0b1xuICBAaW5jbHVkZSBwcmVmaXhlcihoeXBoZW5zLCAkaHlwaGVuYXRpb24sIHdlYmtpdCBtb3ogbXMgc3BlYyk7XG59XG4iLCJAbWl4aW4gaW1hZ2UtcmVuZGVyaW5nICgkbW9kZTphdXRvKSB7XG5cbiAgQGlmICgkbW9kZSA9PSBjcmlzcC1lZGdlcykge1xuICAgIC1tcy1pbnRlcnBvbGF0aW9uLW1vZGU6IG5lYXJlc3QtbmVpZ2hib3I7IC8vIElFOCtcbiAgICBpbWFnZS1yZW5kZXJpbmc6IC1tb3otY3Jpc3AtZWRnZXM7XG4gICAgaW1hZ2UtcmVuZGVyaW5nOiAtby1jcmlzcC1lZGdlcztcbiAgICBpbWFnZS1yZW5kZXJpbmc6IC13ZWJraXQtb3B0aW1pemUtY29udHJhc3Q7XG4gICAgaW1hZ2UtcmVuZGVyaW5nOiBjcmlzcC1lZGdlcztcbiAgfVxuXG4gIEBlbHNlIHtcbiAgICBpbWFnZS1yZW5kZXJpbmc6ICRtb2RlO1xuICB9XG59XG4iLCIvLyBBZGRzIGtleWZyYW1lcyBibG9ja3MgZm9yIHN1cHBvcnRlZCBwcmVmaXhlcywgcmVtb3ZpbmcgcmVkdW5kYW50IHByZWZpeGVzIGluIHRoZSBibG9jaydzIGNvbnRlbnRcbkBtaXhpbiBrZXlmcmFtZXMoJG5hbWUpIHtcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3Itd2Via2l0OiAgICAkcHJlZml4LWZvci13ZWJraXQ7XG4gICRvcmlnaW5hbC1wcmVmaXgtZm9yLW1vemlsbGE6ICAgJHByZWZpeC1mb3ItbW96aWxsYTtcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3ItbWljcm9zb2Z0OiAkcHJlZml4LWZvci1taWNyb3NvZnQ7XG4gICRvcmlnaW5hbC1wcmVmaXgtZm9yLW9wZXJhOiAgICAgJHByZWZpeC1mb3Itb3BlcmE7XG4gICRvcmlnaW5hbC1wcmVmaXgtZm9yLXNwZWM6ICAgICAgJHByZWZpeC1mb3Itc3BlYztcblxuICBAaWYgJG9yaWdpbmFsLXByZWZpeC1mb3Itd2Via2l0IHtcbiAgICBAaW5jbHVkZSBkaXNhYmxlLXByZWZpeC1mb3ItYWxsKCk7XG4gICAgJHByZWZpeC1mb3Itd2Via2l0OiB0cnVlICFnbG9iYWw7XG4gICAgQC13ZWJraXQta2V5ZnJhbWVzICN7JG5hbWV9IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkb3JpZ2luYWwtcHJlZml4LWZvci1tb3ppbGxhIHtcbiAgICBAaW5jbHVkZSBkaXNhYmxlLXByZWZpeC1mb3ItYWxsKCk7XG4gICAgJHByZWZpeC1mb3ItbW96aWxsYTogdHJ1ZSAhZ2xvYmFsO1xuICAgIEAtbW96LWtleWZyYW1lcyAjeyRuYW1lfSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cblxuICAkcHJlZml4LWZvci13ZWJraXQ6ICAgICRvcmlnaW5hbC1wcmVmaXgtZm9yLXdlYmtpdCAgICAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1tb3ppbGxhOiAgICRvcmlnaW5hbC1wcmVmaXgtZm9yLW1vemlsbGEgICAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1taWNyb3NvZnQ6ICRvcmlnaW5hbC1wcmVmaXgtZm9yLW1pY3Jvc29mdCAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1vcGVyYTogICAgICRvcmlnaW5hbC1wcmVmaXgtZm9yLW9wZXJhICAgICAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1zcGVjOiAgICAgICRvcmlnaW5hbC1wcmVmaXgtZm9yLXNwZWMgICAgICAhZ2xvYmFsO1xuXG4gIEBpZiAkb3JpZ2luYWwtcHJlZml4LWZvci1zcGVjIHtcbiAgICBAa2V5ZnJhbWVzICN7JG5hbWV9IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuIiwiQG1peGluIGxpbmVhci1ncmFkaWVudCgkcG9zLCAkZzEsICRnMjogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGczOiBudWxsLCAkZzQ6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRnNTogbnVsbCwgJGc2OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZzc6IG51bGwsICRnODogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGc5OiBudWxsLCAkZzEwOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZmFsbGJhY2s6IG51bGwpIHtcbiAgLy8gRGV0ZWN0IHdoYXQgdHlwZSBvZiB2YWx1ZSBleGlzdHMgaW4gJHBvc1xuICAkcG9zLXR5cGU6IHR5cGUtb2YobnRoKCRwb3MsIDEpKTtcbiAgJHBvcy1zcGVjOiBudWxsO1xuICAkcG9zLWRlZ3JlZTogbnVsbDtcblxuICAvLyBJZiAkcG9zIGlzIG1pc3NpbmcgZnJvbSBtaXhpbiwgcmVhc3NpZ24gdmFycyBhbmQgYWRkIGRlZmF1bHQgcG9zaXRpb25cbiAgQGlmICgkcG9zLXR5cGUgPT0gY29sb3IpIG9yIChudGgoJHBvcywgMSkgPT0gXCJ0cmFuc3BhcmVudFwiKSAge1xuICAgICRnMTA6ICRnOTsgJGc5OiAkZzg7ICRnODogJGc3OyAkZzc6ICRnNjsgJGc2OiAkZzU7XG4gICAgJGc1OiAkZzQ7ICRnNDogJGczOyAkZzM6ICRnMjsgJGcyOiAkZzE7ICRnMTogJHBvcztcbiAgICAkcG9zOiBudWxsO1xuICB9XG5cbiAgQGlmICRwb3Mge1xuICAgICRwb3NpdGlvbnM6IF9saW5lYXItcG9zaXRpb25zLXBhcnNlcigkcG9zKTtcbiAgICAkcG9zLWRlZ3JlZTogbnRoKCRwb3NpdGlvbnMsIDEpO1xuICAgICRwb3Mtc3BlYzogICBudGgoJHBvc2l0aW9ucywgMik7XG4gIH1cblxuICAkZnVsbDogJGcxLCAkZzIsICRnMywgJGc0LCAkZzUsICRnNiwgJGc3LCAkZzgsICRnOSwgJGcxMDtcblxuICAvLyBTZXQgJGcxIGFzIHRoZSBkZWZhdWx0IGZhbGxiYWNrIGNvbG9yXG4gICRmYWxsYmFjay1jb2xvcjogbnRoKCRnMSwgMSk7XG5cbiAgLy8gSWYgJGZhbGxiYWNrIGlzIGEgY29sb3IgdXNlIHRoYXQgY29sb3IgYXMgdGhlIGZhbGxiYWNrIGNvbG9yXG4gIEBpZiAodHlwZS1vZigkZmFsbGJhY2spID09IGNvbG9yKSBvciAoJGZhbGxiYWNrID09IFwidHJhbnNwYXJlbnRcIikge1xuICAgICRmYWxsYmFjay1jb2xvcjogJGZhbGxiYWNrO1xuICB9XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogJGZhbGxiYWNrLWNvbG9yO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCgkcG9zLWRlZ3JlZSAkZnVsbCk7IC8vIFNhZmFyaSA1LjErLCBDaHJvbWVcbiAgYmFja2dyb3VuZC1pbWFnZTogdW5xdW90ZShcImxpbmVhci1ncmFkaWVudCgjeyRwb3Mtc3BlY30jeyRmdWxsfSlcIik7XG59XG4iLCJAbWl4aW4gcGVyc3BlY3RpdmUoJGRlcHRoOiBub25lKSB7XG4gIC8vIG5vbmUgfCA8bGVuZ3RoPlxuICBAaW5jbHVkZSBwcmVmaXhlcihwZXJzcGVjdGl2ZSwgJGRlcHRoLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gcGVyc3BlY3RpdmUtb3JpZ2luKCR2YWx1ZTogNTAlIDUwJSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihwZXJzcGVjdGl2ZS1vcmlnaW4sICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcbn1cbiIsIkBtaXhpbiBwbGFjZWhvbGRlciB7XG4gICRwbGFjZWhvbGRlcnM6IFwiOi13ZWJraXQtaW5wdXRcIiBcIjotbW96XCIgXCItbW96XCIgXCItbXMtaW5wdXRcIjtcbiAgQGVhY2ggJHBsYWNlaG9sZGVyIGluICRwbGFjZWhvbGRlcnMge1xuICAgICY6I3skcGxhY2Vob2xkZXJ9LXBsYWNlaG9sZGVyIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuIiwiLy8gUmVxdWlyZXMgU2FzcyAzLjErXG5AbWl4aW4gcmFkaWFsLWdyYWRpZW50KCRnMSwgJGcyLFxuICAgICAgICAgICAgICAgICAgICAgICAkZzM6IG51bGwsICRnNDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGc1OiBudWxsLCAkZzY6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRnNzogbnVsbCwgJGc4OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZzk6IG51bGwsICRnMTA6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRwb3M6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRzaGFwZS1zaXplOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZmFsbGJhY2s6IG51bGwpIHtcblxuICAkZGF0YTogX3JhZGlhbC1hcmctcGFyc2VyKCRnMSwgJGcyLCAkcG9zLCAkc2hhcGUtc2l6ZSk7XG4gICRnMTogIG50aCgkZGF0YSwgMSk7XG4gICRnMjogIG50aCgkZGF0YSwgMik7XG4gICRwb3M6IG50aCgkZGF0YSwgMyk7XG4gICRzaGFwZS1zaXplOiBudGgoJGRhdGEsIDQpO1xuXG4gICRmdWxsOiAkZzEsICRnMiwgJGczLCAkZzQsICRnNSwgJGc2LCAkZzcsICRnOCwgJGc5LCAkZzEwO1xuXG4gIC8vIFN0cmlwIGRlcHJlY2F0ZWQgY292ZXIvY29udGFpbiBmb3Igc3BlY1xuICAkc2hhcGUtc2l6ZS1zcGVjOiBfc2hhcGUtc2l6ZS1zdHJpcHBlcigkc2hhcGUtc2l6ZSk7XG5cbiAgLy8gU2V0ICRnMSBhcyB0aGUgZGVmYXVsdCBmYWxsYmFjayBjb2xvclxuICAkZmlyc3QtY29sb3I6IG50aCgkZnVsbCwgMSk7XG4gICRmYWxsYmFjay1jb2xvcjogbnRoKCRmaXJzdC1jb2xvciwgMSk7XG5cbiAgQGlmICh0eXBlLW9mKCRmYWxsYmFjaykgPT0gY29sb3IpIG9yICgkZmFsbGJhY2sgPT0gXCJ0cmFuc3BhcmVudFwiKSB7XG4gICAgJGZhbGxiYWNrLWNvbG9yOiAkZmFsbGJhY2s7XG4gIH1cblxuICAvLyBBZGQgQ29tbWFzIGFuZCBzcGFjZXNcbiAgJHNoYXBlLXNpemU6IGlmKCRzaGFwZS1zaXplLCBcIiN7JHNoYXBlLXNpemV9LCBcIiwgbnVsbCk7XG4gICRwb3M6ICAgICAgICBpZigkcG9zLCBcIiN7JHBvc30sIFwiLCBudWxsKTtcbiAgJHBvcy1zcGVjOiAgIGlmKCRwb3MsIFwiYXQgI3skcG9zfVwiLCBudWxsKTtcbiAgJHNoYXBlLXNpemUtc3BlYzogaWYoKCRzaGFwZS1zaXplLXNwZWMgIT0gXCIgXCIpIGFuZCAoJHBvcyA9PSBudWxsKSwgXCIjeyRzaGFwZS1zaXplLXNwZWN9LCBcIiwgXCIjeyRzaGFwZS1zaXplLXNwZWN9IFwiKTtcblxuICBiYWNrZ3JvdW5kLWNvbG9yOiAgJGZhbGxiYWNrLWNvbG9yO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LXJhZGlhbC1ncmFkaWVudCh1bnF1b3RlKCN7JHBvc30jeyRzaGFwZS1zaXplfSN7JGZ1bGx9KSk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVucXVvdGUoXCJyYWRpYWwtZ3JhZGllbnQoI3skc2hhcGUtc2l6ZS1zcGVjfSN7JHBvcy1zcGVjfSN7JGZ1bGx9KVwiKTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBPdXRwdXRzIHRoZSBzcGVjIGFuZCBwcmVmaXhlZCB2ZXJzaW9ucyBvZiB0aGUgYDo6c2VsZWN0aW9uYCBwc2V1ZG8tZWxlbWVudC5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge0Jvb2x9ICRjdXJyZW50LXNlbGVjdG9yIFtmYWxzZV1cclxuLy8vICAgSWYgc2V0IHRvIGB0cnVlYCwgaXQgdGFrZXMgdGhlIGN1cnJlbnQgZWxlbWVudCBpbnRvIGNvbnNpZGVyYXRpb24uXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBAaW5jbHVkZSBzZWxlY3Rpb24odHJ1ZSkge1xyXG4vLy8gICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYmI1MjtcclxuLy8vICAgICB9XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIC5lbGVtZW50OjotbW96LXNlbGVjdGlvbiB7XHJcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYmI1MjtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vICAgLmVsZW1lbnQ6OnNlbGVjdGlvbiB7XHJcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYmI1MjtcclxuLy8vICAgfVxyXG5cclxuQG1peGluIHNlbGVjdGlvbigkY3VycmVudC1zZWxlY3RvcjogZmFsc2UpIHtcclxuICBAaWYgJGN1cnJlbnQtc2VsZWN0b3Ige1xyXG4gICAgJjo6LW1vei1zZWxlY3Rpb24ge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuXHJcbiAgICAmOjpzZWxlY3Rpb24ge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9IEBlbHNlIHtcclxuICAgIDo6LW1vei1zZWxlY3Rpb24ge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuXHJcbiAgICA6OnNlbGVjdGlvbiB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCJAbWl4aW4gdGV4dC1kZWNvcmF0aW9uKCR2YWx1ZSkge1xuLy8gPHRleHQtZGVjb3JhdGlvbi1saW5lPiB8fCA8dGV4dC1kZWNvcmF0aW9uLXN0eWxlPiB8fCA8dGV4dC1kZWNvcmF0aW9uLWNvbG9yPlxuICBAaW5jbHVkZSBwcmVmaXhlcih0ZXh0LWRlY29yYXRpb24sICR2YWx1ZSwgbW96KTtcbn1cblxuQG1peGluIHRleHQtZGVjb3JhdGlvbi1saW5lKCRsaW5lOiBub25lKSB7XG4vLyBub25lIHx8IHVuZGVybGluZSB8fCBvdmVybGluZSB8fCBsaW5lLXRocm91Z2hcbiAgQGluY2x1ZGUgcHJlZml4ZXIodGV4dC1kZWNvcmF0aW9uLWxpbmUsICRsaW5lLCBtb3opO1xufVxuXG5AbWl4aW4gdGV4dC1kZWNvcmF0aW9uLXN0eWxlKCRzdHlsZTogc29saWQpIHtcbi8vIHNvbGlkIHx8IGRvdWJsZSB8fCBkb3R0ZWQgfHwgZGFzaGVkIHx8IHdhdnlcbiAgQGluY2x1ZGUgcHJlZml4ZXIodGV4dC1kZWNvcmF0aW9uLXN0eWxlLCAkc3R5bGUsIG1veiB3ZWJraXQpO1xufVxuXG5AbWl4aW4gdGV4dC1kZWNvcmF0aW9uLWNvbG9yKCRjb2xvcjogY3VycmVudENvbG9yKSB7XG4vLyBjdXJyZW50Q29sb3IgfHwgPGNvbG9yPlxuICBAaW5jbHVkZSBwcmVmaXhlcih0ZXh0LWRlY29yYXRpb24tY29sb3IsICRjb2xvciwgbW96KTtcbn1cbiIsIkBtaXhpbiB0cmFuc2Zvcm0oJHByb3BlcnR5OiBub25lKSB7XG4gIC8vIG5vbmUgfCA8dHJhbnNmb3JtLWZ1bmN0aW9uPlxuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2Zvcm0sICRwcm9wZXJ0eSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xufVxuXG5AbWl4aW4gdHJhbnNmb3JtLW9yaWdpbigkYXhlczogNTAlKSB7XG4gIC8vIHgtYXhpcyAtIGxlZnQgfCBjZW50ZXIgfCByaWdodCAgfCBsZW5ndGggfCAlXG4gIC8vIHktYXhpcyAtIHRvcCAgfCBjZW50ZXIgfCBib3R0b20gfCBsZW5ndGggfCAlXG4gIC8vIHotYXhpcyAtICAgICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGhcbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNmb3JtLW9yaWdpbiwgJGF4ZXMsIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcbn1cblxuQG1peGluIHRyYW5zZm9ybS1zdHlsZSgkc3R5bGU6IGZsYXQpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNmb3JtLXN0eWxlLCAkc3R5bGUsIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcbn1cbiIsIi8vIFNob3J0aGFuZCBtaXhpbi4gU3VwcG9ydHMgbXVsdGlwbGUgcGFyZW50aGVzZXMtZGVsaW1pbmF0ZWQgdmFsdWVzIGZvciBlYWNoIHZhcmlhYmxlLlxuLy8gRXhhbXBsZTogQGluY2x1ZGUgdHJhbnNpdGlvbiAoYWxsIDJzIGVhc2UtaW4tb3V0KTtcbi8vICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24gKG9wYWNpdHkgMXMgZWFzZS1pbiAycywgd2lkdGggMnMgZWFzZS1vdXQpO1xuLy8gICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1wcm9wZXJ0eSAodHJhbnNmb3JtLCBvcGFjaXR5KTtcblxuQG1peGluIHRyYW5zaXRpb24oJHByb3BlcnRpZXMuLi4pIHtcbiAgLy8gRml4IGZvciB2ZW5kb3ItcHJlZml4IHRyYW5zZm9ybSBwcm9wZXJ0eVxuICAkbmVlZHMtcHJlZml4ZXM6IGZhbHNlO1xuICAkd2Via2l0OiAoKTtcbiAgJG1vejogKCk7XG4gICRzcGVjOiAoKTtcblxuICAvLyBDcmVhdGUgbGlzdHMgZm9yIHZlbmRvci1wcmVmaXhlZCB0cmFuc2Zvcm1cbiAgQGVhY2ggJGxpc3QgaW4gJHByb3BlcnRpZXMge1xuICAgIEBpZiBudGgoJGxpc3QsIDEpID09IFwidHJhbnNmb3JtXCIge1xuICAgICAgJG5lZWRzLXByZWZpeGVzOiB0cnVlO1xuICAgICAgJGxpc3QxOiAtd2Via2l0LXRyYW5zZm9ybTtcbiAgICAgICRsaXN0MjogLW1vei10cmFuc2Zvcm07XG4gICAgICAkbGlzdDM6ICgpO1xuXG4gICAgICBAZWFjaCAkdmFyIGluICRsaXN0IHtcbiAgICAgICAgJGxpc3QzOiBqb2luKCRsaXN0MywgJHZhcik7XG5cbiAgICAgICAgQGlmICR2YXIgIT0gXCJ0cmFuc2Zvcm1cIiB7XG4gICAgICAgICAgJGxpc3QxOiBqb2luKCRsaXN0MSwgJHZhcik7XG4gICAgICAgICAgJGxpc3QyOiBqb2luKCRsaXN0MiwgJHZhcik7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJHdlYmtpdDogYXBwZW5kKCR3ZWJraXQsICRsaXN0MSk7XG4gICAgICAkbW96OiAgICBhcHBlbmQoJG1veiwgICAgJGxpc3QyKTtcbiAgICAgICRzcGVjOiAgIGFwcGVuZCgkc3BlYywgICAkbGlzdDMpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJHdlYmtpdDogYXBwZW5kKCR3ZWJraXQsICRsaXN0LCBjb21tYSk7XG4gICAgICAkbW96OiAgICBhcHBlbmQoJG1veiwgICAgJGxpc3QsIGNvbW1hKTtcbiAgICAgICRzcGVjOiAgIGFwcGVuZCgkc3BlYywgICAkbGlzdCwgY29tbWEpO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkbmVlZHMtcHJlZml4ZXMge1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogJHdlYmtpdDtcbiAgICAgICAtbW96LXRyYW5zaXRpb246ICRtb3o7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiAkc3BlYztcbiAgfSBAZWxzZSB7XG4gICAgQGlmIGxlbmd0aCgkcHJvcGVydGllcykgPj0gMSB7XG4gICAgICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2l0aW9uLCAkcHJvcGVydGllcywgd2Via2l0IG1veiBzcGVjKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICRwcm9wZXJ0aWVzOiBhbGwgMC4xNXMgZWFzZS1vdXQgMHM7XG4gICAgICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2l0aW9uLCAkcHJvcGVydGllcywgd2Via2l0IG1veiBzcGVjKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIHRyYW5zaXRpb24tcHJvcGVydHkoJHByb3BlcnRpZXMuLi4pIHtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVzKCRwcm9wZXJ0aWVzLCBcIndlYmtpdFwiKTtcbiAgICAgLW1vei10cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVzKCRwcm9wZXJ0aWVzLCBcIm1velwiKTtcbiAgICAgICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVzKCRwcm9wZXJ0aWVzLCBmYWxzZSk7XG59XG5cbkBtaXhpbiB0cmFuc2l0aW9uLWR1cmF0aW9uKCR0aW1lcy4uLikge1xuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2l0aW9uLWR1cmF0aW9uLCAkdGltZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbigkbW90aW9ucy4uLikge1xuICAvLyBlYXNlIHwgbGluZWFyIHwgZWFzZS1pbiB8IGVhc2Utb3V0IHwgZWFzZS1pbi1vdXQgfCBjdWJpYy1iZXppZXIoKVxuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbiwgJG1vdGlvbnMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiB0cmFuc2l0aW9uLWRlbGF5KCR0aW1lcy4uLikge1xuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2l0aW9uLWRlbGF5LCAkdGltZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG4iLCJAbWl4aW4gdXNlci1zZWxlY3QoJHZhbHVlOiBub25lKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKHVzZXItc2VsZWN0LCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgc3BlYyk7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm92aWRlcyBhIHF1aWNrIG1ldGhvZCBmb3IgdGFyZ2V0aW5nIGBib3JkZXItY29sb3JgIG9uIHNwZWNpZmljIHNpZGVzIG9mIGEgYm94LiBVc2UgYSBgbnVsbGAgdmFsdWUgdG8g4oCcc2tpcOKAnSBhIHNpZGUuXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICR2YWxzXG4vLy8gICBMaXN0IG9mIGFyZ3VtZW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIGJvcmRlci1jb2xvcigjYTYwYjU1ICM3NmNkOWMgbnVsbCAjZThhZTFhKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYm9yZGVyLWxlZnQtY29sb3I6ICNlOGFlMWE7XG4vLy8gICAgIGJvcmRlci1yaWdodC1jb2xvcjogIzc2Y2Q5Yztcbi8vLyAgICAgYm9yZGVyLXRvcC1jb2xvcjogI2E2MGI1NTtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIHttaXhpbn0gZGlyZWN0aW9uYWwtcHJvcGVydHlcbi8vL1xuLy8vIEBvdXRwdXQgYGJvcmRlci1jb2xvcmBcblxuQG1peGluIGJvcmRlci1jb2xvcigkdmFscy4uLikge1xuICBAaW5jbHVkZSBkaXJlY3Rpb25hbC1wcm9wZXJ0eShib3JkZXIsIGNvbG9yLCAkdmFscy4uLik7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm92aWRlcyBhIHF1aWNrIG1ldGhvZCBmb3IgdGFyZ2V0aW5nIGBib3JkZXItcmFkaXVzYCBvbiBib3RoIGNvcm5lcnMgb24gdGhlIHNpZGUgb2YgYSBib3guXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHJhZGlpXG4vLy8gICBMaXN0IG9mIGFyZ3VtZW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudC1vbmUge1xuLy8vICAgICBAaW5jbHVkZSBib3JkZXItdG9wLXJhZGl1cyg1cHgpO1xuLy8vICAgfVxuLy8vXG4vLy8gICAuZWxlbWVudC10d28ge1xuLy8vICAgICBAaW5jbHVkZSBib3JkZXItbGVmdC1yYWRpdXMoM3B4KTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50LW9uZSB7XG4vLy8gICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDVweDtcbi8vLyAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDVweDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLmVsZW1lbnQtdHdvIHtcbi8vLyAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogM3B4O1xuLy8vICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAzcHg7XG4vLy8gICB9XG4vLy9cbi8vLyBAb3V0cHV0IGBib3JkZXItcmFkaXVzYFxuXG5AbWl4aW4gYm9yZGVyLXRvcC1yYWRpdXMoJHJhZGlpKSB7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6ICRyYWRpaTtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICRyYWRpaTtcbn1cblxuQG1peGluIGJvcmRlci1yaWdodC1yYWRpdXMoJHJhZGlpKSB7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAkcmFkaWk7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkcmFkaWk7XG59XG5cbkBtaXhpbiBib3JkZXItYm90dG9tLXJhZGl1cygkcmFkaWkpIHtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogJHJhZGlpO1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogJHJhZGlpO1xufVxuXG5AbWl4aW4gYm9yZGVyLWxlZnQtcmFkaXVzKCRyYWRpaSkge1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAkcmFkaWk7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6ICRyYWRpaTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciB0YXJnZXRpbmcgYGJvcmRlci1zdHlsZWAgb24gc3BlY2lmaWMgc2lkZXMgb2YgYSBib3guIFVzZSBhIGBudWxsYCB2YWx1ZSB0byDigJxza2lw4oCdIGEgc2lkZS5cbi8vL1xuLy8vIEBwYXJhbSB7QXJnbGlzdH0gJHZhbHNcbi8vLyAgIExpc3Qgb2YgYXJndW1lbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgYm9yZGVyLXN0eWxlKGRhc2hlZCBudWxsIHNvbGlkKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7XG4vLy8gICAgIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIHttaXhpbn0gZGlyZWN0aW9uYWwtcHJvcGVydHlcbi8vL1xuLy8vIEBvdXRwdXQgYGJvcmRlci1zdHlsZWBcblxuQG1peGluIGJvcmRlci1zdHlsZSgkdmFscy4uLikge1xuICBAaW5jbHVkZSBkaXJlY3Rpb25hbC1wcm9wZXJ0eShib3JkZXIsIHN0eWxlLCAkdmFscy4uLik7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm92aWRlcyBhIHF1aWNrIG1ldGhvZCBmb3IgdGFyZ2V0aW5nIGBib3JkZXItd2lkdGhgIG9uIHNwZWNpZmljIHNpZGVzIG9mIGEgYm94LiBVc2UgYSBgbnVsbGAgdmFsdWUgdG8g4oCcc2tpcOKAnSBhIHNpZGUuXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICR2YWxzXG4vLy8gICBMaXN0IG9mIGFyZ3VtZW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIGJvcmRlci13aWR0aCgxZW0gbnVsbCAyMHB4KTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMjBweDtcbi8vLyAgICAgYm9yZGVyLXRvcC13aWR0aDogMWVtO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge21peGlufSBkaXJlY3Rpb25hbC1wcm9wZXJ0eVxuLy8vXG4vLy8gQG91dHB1dCBgYm9yZGVyLXdpZHRoYFxuXG5AbWl4aW4gYm9yZGVyLXdpZHRoKCR2YWxzLi4uKSB7XG4gIEBpbmNsdWRlIGRpcmVjdGlvbmFsLXByb3BlcnR5KGJvcmRlciwgd2lkdGgsICR2YWxzLi4uKTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIEdlbmVyYXRlcyB2YXJpYWJsZXMgZm9yIGFsbCBidXR0b25zLiBQbGVhc2Ugbm90ZSB0aGF0IHlvdSBtdXN0IHVzZSBpbnRlcnBvbGF0aW9uIG9uIHRoZSB2YXJpYWJsZTogYCN7JGFsbC1idXR0b25zfWAuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgICN7JGFsbC1idXR0b25zfSB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICNmMDA7XG4vLy8gICB9XG4vLy9cbi8vLyAgICN7JGFsbC1idXR0b25zLWZvY3VzfSxcbi8vLyAgICN7JGFsbC1idXR0b25zLWhvdmVyfSB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICMwZjA7XG4vLy8gICB9XG4vLy9cbi8vLyAgICN7JGFsbC1idXR0b25zLWFjdGl2ZX0ge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBmO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgYnV0dG9uLFxuLy8vICAgaW5wdXRbdHlwZT1cImJ1dHRvblwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJyZXNldFwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjAwO1xuLy8vICAgfVxuLy8vXG4vLy8gICBidXR0b246Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cInJlc2V0XCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXTpmb2N1cyxcbi8vLyAgIGJ1dHRvbjpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJidXR0b25cIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwicmVzZXRcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwic3VibWl0XCJdOmhvdmVyIHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogIzBmMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgYnV0dG9uOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJidXR0b25cIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cInJlc2V0XCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJzdWJtaXRcIl06YWN0aXZlIHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwZjtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIGFzc2lnbi1pbnB1dHNcbi8vL1xuLy8vIEB0eXBlIExpc3Rcbi8vL1xuLy8vIEB0b2RvIFJlbW92ZSBkb3VibGUgYXNzaWduZWQgdmFyaWFibGVzIChMaW5lcyA1OeKAkzYyKSBpbiB2NS4wLjBcblxuJGJ1dHRvbnMtbGlzdDogJ2J1dHRvbicsXG4gICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cImJ1dHRvblwiXScsXG4gICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInJlc2V0XCJdJyxcbiAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwic3VibWl0XCJdJztcblxuJGFsbC1idXR0b25zOiAgICAgICAgYXNzaWduLWlucHV0cygkYnV0dG9ucy1saXN0KTtcbiRhbGwtYnV0dG9ucy1hY3RpdmU6IGFzc2lnbi1pbnB1dHMoJGJ1dHRvbnMtbGlzdCwgYWN0aXZlKTtcbiRhbGwtYnV0dG9ucy1mb2N1czogIGFzc2lnbi1pbnB1dHMoJGJ1dHRvbnMtbGlzdCwgZm9jdXMpO1xuJGFsbC1idXR0b25zLWhvdmVyOiAgYXNzaWduLWlucHV0cygkYnV0dG9ucy1saXN0LCBob3Zlcik7XG5cbiRhbGwtYnV0dG9uLWlucHV0czogICAgICAgICRhbGwtYnV0dG9ucztcbiRhbGwtYnV0dG9uLWlucHV0cy1hY3RpdmU6ICRhbGwtYnV0dG9ucy1hY3RpdmU7XG4kYWxsLWJ1dHRvbi1pbnB1dHMtZm9jdXM6ICAkYWxsLWJ1dHRvbnMtZm9jdXM7XG4kYWxsLWJ1dHRvbi1pbnB1dHMtaG92ZXI6ICAkYWxsLWJ1dHRvbnMtaG92ZXI7XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm92aWRlcyBhbiBlYXN5IHdheSB0byBpbmNsdWRlIGEgY2xlYXJmaXggZm9yIGNvbnRhaW5pbmcgZmxvYXRzLlxuLy8vXG4vLy8gQGxpbmsgaHR0cDovL2Nzc21vam8uY29tL2xhdGVzdF9uZXdfY2xlYXJmaXhfc29fZmFyL1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQ6OmFmdGVyIHtcbi8vLyAgICAgY2xlYXI6IGJvdGg7XG4vLy8gICAgIGNvbnRlbnQ6IFwiXCI7XG4vLy8gICAgIGRpc3BsYXk6IHRhYmxlO1xuLy8vICAgfVxuXG5AbWl4aW4gY2xlYXJmaXgge1xuICAmOjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gVHJ1bmNhdGVzIHRleHQgYW5kIGFkZHMgYW4gZWxsaXBzaXMgdG8gcmVwcmVzZW50IG92ZXJmbG93LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3aWR0aCBbMTAwJV1cbi8vLyAgIE1heC13aWR0aCBmb3IgdGhlIHN0cmluZyB0byByZXNwZWN0IGJlZm9yZSBiZWluZyB0cnVuY2F0ZWRcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBlbGxpcHNpcztcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuLy8vICAgICBtYXgtd2lkdGg6IDEwMCU7XG4vLy8gICAgIG92ZXJmbG93OiBoaWRkZW47XG4vLy8gICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuLy8vICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuLy8vICAgICB3b3JkLXdyYXA6IG5vcm1hbDtcbi8vLyAgIH1cblxuQG1peGluIGVsbGlwc2lzKCR3aWR0aDogMTAwJSkge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1heC13aWR0aDogJHdpZHRoO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgd29yZC13cmFwOiBub3JtYWw7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBHZW9yZ2lhIGZvbnQgc3RhY2suXG4vLy9cbi8vLyBAdHlwZSBMaXN0XG5cbiRnZW9yZ2lhOiBcIkdlb3JnaWFcIiwgXCJDYW1icmlhXCIsIFwiVGltZXMgTmV3IFJvbWFuXCIsIFwiVGltZXNcIiwgc2VyaWY7XG5cbi8vLyBIZWx2ZXRpY2EgZm9udCBzdGFjay5cbi8vL1xuLy8vIEB0eXBlIExpc3RcblxuJGhlbHZldGljYTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBcIkhlbHZldGljYVwiLCBcIlJvYm90b1wiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG5cbi8vLyBMdWNpZGEgR3JhbmRlIGZvbnQgc3RhY2suXG4vLy9cbi8vLyBAdHlwZSBMaXN0XG5cbiRsdWNpZGEtZ3JhbmRlOiBcIkx1Y2lkYSBHcmFuZGVcIiwgXCJUYWhvbWFcIiwgXCJWZXJkYW5hXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcblxuLy8vIE1vbm9zcGFjZSBmb250IHN0YWNrLlxuLy8vXG4vLy8gQHR5cGUgTGlzdFxuXG4kbW9ub3NwYWNlOiBcIkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ub1wiLCBcIkNvbnNvbGFzXCIsIFwiQ291cmllclwiLCBtb25vc3BhY2U7XG5cbi8vLyBWZXJkYW5hIGZvbnQgc3RhY2suXG4vLy9cbi8vLyBAdHlwZSBMaXN0XG5cbiR2ZXJkYW5hOiBcIlZlcmRhbmFcIiwgXCJHZW5ldmFcIiwgc2Fucy1zZXJpZjtcbiIsIi8vLyBIaWRlcyB0aGUgdGV4dCBpbiBhbiBlbGVtZW50LCBjb21tb25seSB1c2VkIHRvIHNob3cgYW4gaW1hZ2UuIFNvbWUgZWxlbWVudHMgd2lsbCBuZWVkIGJsb2NrLWxldmVsIHN0eWxlcyBhcHBsaWVkLlxuLy8vXG4vLy8gQGxpbmsgaHR0cDovL3plbGRtYW4uY29tLzIwMTIvMDMvMDEvcmVwbGFjaW5nLXRoZS05OTk5cHgtaGFjay1uZXctaW1hZ2UtcmVwbGFjZW1lbnRcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBoaWRlLXRleHQ7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIG92ZXJmbG93OiBoaWRkZW47XG4vLy8gICAgIHRleHQtaW5kZW50OiAxMDElO1xuLy8vICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuLy8vICAgfVxuLy8vXG4vLy8gQHRvZG8gUmVtb3ZlIGhlaWdodCBhcmd1bWVudCBpbiB2NS4wLjBcblxuQG1peGluIGhpZGUtdGV4dCgkaGVpZ2h0OiBudWxsKSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtaW5kZW50OiAxMDElO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gIEBpZiAkaGVpZ2h0IHtcbiAgICBAd2FybiBcIlRoZSBgaGlkZS10ZXh0YCBtaXhpbiBoYXMgY2hhbmdlZCBhbmQgbm8gbG9uZ2VyIHJlcXVpcmVzIGEgaGVpZ2h0LiBUaGUgaGVpZ2h0IGFyZ3VtZW50IHdpbGwgbm8gbG9uZ2VyIGJlIGFjY2VwdGVkIGluIHY1LjAuMFwiO1xuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm92aWRlcyBhIHF1aWNrIG1ldGhvZCBmb3IgdGFyZ2V0aW5nIGBtYXJnaW5gIG9uIHNwZWNpZmljIHNpZGVzIG9mIGEgYm94LiBVc2UgYSBgbnVsbGAgdmFsdWUgdG8g4oCcc2tpcOKAnSBhIHNpZGUuXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICR2YWxzXG4vLy8gICBMaXN0IG9mIGFyZ3VtZW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIG1hcmdpbihudWxsIDEwcHggM2VtIDIwdmgpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBtYXJnaW4tYm90dG9tOiAzZW07XG4vLy8gICAgIG1hcmdpbi1sZWZ0OiAyMHZoO1xuLy8vICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSB7bWl4aW59IGRpcmVjdGlvbmFsLXByb3BlcnR5XG4vLy9cbi8vLyBAb3V0cHV0IGBtYXJnaW5gXG5cbkBtaXhpbiBtYXJnaW4oJHZhbHMuLi4pIHtcbiAgQGluY2x1ZGUgZGlyZWN0aW9uYWwtcHJvcGVydHkobWFyZ2luLCBmYWxzZSwgJHZhbHMuLi4pO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHRhcmdldGluZyBgcGFkZGluZ2Agb24gc3BlY2lmaWMgc2lkZXMgb2YgYSBib3guIFVzZSBhIGBudWxsYCB2YWx1ZSB0byDigJxza2lw4oCdIGEgc2lkZS5cbi8vL1xuLy8vIEBwYXJhbSB7QXJnbGlzdH0gJHZhbHNcbi8vLyAgIExpc3Qgb2YgYXJndW1lbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgcGFkZGluZygxMnZoIG51bGwgMTBweCA1JSk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuLy8vICAgICBwYWRkaW5nLWxlZnQ6IDUlO1xuLy8vICAgICBwYWRkaW5nLXRvcDogMTJ2aDtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIHttaXhpbn0gZGlyZWN0aW9uYWwtcHJvcGVydHlcbi8vL1xuLy8vIEBvdXRwdXQgYHBhZGRpbmdgXG5cbkBtaXhpbiBwYWRkaW5nKCR2YWxzLi4uKSB7XG4gIEBpbmNsdWRlIGRpcmVjdGlvbmFsLXByb3BlcnR5KHBhZGRpbmcsIGZhbHNlLCAkdmFscy4uLik7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm92aWRlcyBhIHF1aWNrIG1ldGhvZCBmb3Igc2V0dGluZyBhbiBlbGVtZW504oCZcyBwb3NpdGlvbi4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxuLy8vXG4vLy8gQHBhcmFtIHtQb3NpdGlvbn0gJHBvc2l0aW9uIFtyZWxhdGl2ZV1cbi8vLyAgIEEgQ1NTIHBvc2l0aW9uIHZhbHVlXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICRjb29yZGluYXRlcyBbbnVsbCBudWxsIG51bGwgbnVsbF1cbi8vLyAgIExpc3Qgb2YgdmFsdWVzIHRoYXQgY29ycmVzcG9uZCB0byB0aGUgNC12YWx1ZSBzeW50YXggZm9yIHRoZSBlZGdlcyBvZiBhIGJveFxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCAwIG51bGwgbnVsbCAxMGVtKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgbGVmdDogMTBlbTtcbi8vLyAgICAgcG9zaXRpb246IGFic29sdXRlO1xuLy8vICAgICB0b3A6IDA7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGlzLWxlbmd0aFxuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gdW5wYWNrXG5cbkBtaXhpbiBwb3NpdGlvbigkcG9zaXRpb246IHJlbGF0aXZlLCAkY29vcmRpbmF0ZXM6IG51bGwgbnVsbCBudWxsIG51bGwpIHtcbiAgQGlmIHR5cGUtb2YoJHBvc2l0aW9uKSA9PSBsaXN0IHtcbiAgICAkY29vcmRpbmF0ZXM6ICRwb3NpdGlvbjtcbiAgICAkcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG5cbiAgJGNvb3JkaW5hdGVzOiB1bnBhY2soJGNvb3JkaW5hdGVzKTtcblxuICAkb2Zmc2V0czogKFxuICAgIHRvcDogICAgbnRoKCRjb29yZGluYXRlcywgMSksXG4gICAgcmlnaHQ6ICBudGgoJGNvb3JkaW5hdGVzLCAyKSxcbiAgICBib3R0b206IG50aCgkY29vcmRpbmF0ZXMsIDMpLFxuICAgIGxlZnQ6ICAgbnRoKCRjb29yZGluYXRlcywgNClcbiAgKTtcblxuICBwb3NpdGlvbjogJHBvc2l0aW9uO1xuXG4gIEBlYWNoICRvZmZzZXQsICR2YWx1ZSBpbiAkb2Zmc2V0cyB7XG4gICAgQGlmIGlzLWxlbmd0aCgkdmFsdWUpIHtcbiAgICAgICN7JG9mZnNldH06ICR2YWx1ZTtcbiAgICB9XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIEEgbWl4aW4gZm9yIGdlbmVyYXRpbmcgdmVuZG9yIHByZWZpeGVzIG9uIG5vbi1zdGFuZGFyZGl6ZWQgcHJvcGVydGllcy5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkcHJvcGVydHlcbi8vLyAgIFByb3BlcnR5IHRvIHByZWZpeFxuLy8vXG4vLy8gQHBhcmFtIHsqfSAkdmFsdWVcbi8vLyAgIFZhbHVlIHRvIHVzZVxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkcHJlZml4ZXNcbi8vLyAgIFByZWZpeGVzIHRvIGRlZmluZVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIHByZWZpeGVyKGJvcmRlci1yYWRpdXMsIDEwcHgsIHdlYmtpdCBtcyBzcGVjKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAxMHB4O1xuLy8vICAgICAtbW96LWJvcmRlci1yYWRpdXM6IDEwcHg7XG4vLy8gICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSB7dmFyaWFibGV9ICRwcmVmaXgtZm9yLXdlYmtpdFxuLy8vIEByZXF1aXJlIHt2YXJpYWJsZX0gJHByZWZpeC1mb3ItbW96aWxsYVxuLy8vIEByZXF1aXJlIHt2YXJpYWJsZX0gJHByZWZpeC1mb3ItbWljcm9zb2Z0XG4vLy8gQHJlcXVpcmUge3ZhcmlhYmxlfSAkcHJlZml4LWZvci1vcGVyYVxuLy8vIEByZXF1aXJlIHt2YXJpYWJsZX0gJHByZWZpeC1mb3Itc3BlY1xuXG5AbWl4aW4gcHJlZml4ZXIoJHByb3BlcnR5LCAkdmFsdWUsICRwcmVmaXhlcykge1xuICBAZWFjaCAkcHJlZml4IGluICRwcmVmaXhlcyB7XG4gICAgQGlmICRwcmVmaXggPT0gd2Via2l0IHtcbiAgICAgIEBpZiAkcHJlZml4LWZvci13ZWJraXQge1xuICAgICAgICAtd2Via2l0LSN7JHByb3BlcnR5fTogJHZhbHVlO1xuICAgICAgfVxuICAgIH0gQGVsc2UgaWYgJHByZWZpeCA9PSBtb3oge1xuICAgICAgQGlmICRwcmVmaXgtZm9yLW1vemlsbGEge1xuICAgICAgICAtbW96LSN7JHByb3BlcnR5fTogJHZhbHVlO1xuICAgICAgfVxuICAgIH0gQGVsc2UgaWYgJHByZWZpeCA9PSBtcyB7XG4gICAgICBAaWYgJHByZWZpeC1mb3ItbWljcm9zb2Z0IHtcbiAgICAgICAgLW1zLSN7JHByb3BlcnR5fTogJHZhbHVlO1xuICAgICAgfVxuICAgIH0gQGVsc2UgaWYgJHByZWZpeCA9PSBvIHtcbiAgICAgIEBpZiAkcHJlZml4LWZvci1vcGVyYSB7XG4gICAgICAgIC1vLSN7JHByb3BlcnR5fTogJHZhbHVlO1xuICAgICAgfVxuICAgIH0gQGVsc2UgaWYgJHByZWZpeCA9PSBzcGVjIHtcbiAgICAgIEBpZiAkcHJlZml4LWZvci1zcGVjIHtcbiAgICAgICAgI3skcHJvcGVydHl9OiAkdmFsdWU7XG4gICAgICB9XG4gICAgfSBAZWxzZSAge1xuICAgICAgQHdhcm4gXCJVbnJlY29nbml6ZWQgcHJlZml4OiAjeyRwcmVmaXh9XCI7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBkaXNhYmxlLXByZWZpeC1mb3ItYWxsKCkge1xuICAkcHJlZml4LWZvci13ZWJraXQ6ICAgIGZhbHNlICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLW1vemlsbGE6ICAgZmFsc2UgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3ItbWljcm9zb2Z0OiBmYWxzZSAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1vcGVyYTogICAgIGZhbHNlICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLXNwZWM6ICAgICAgZmFsc2UgIWdsb2JhbDtcbn1cbiIsIkBtaXhpbiByZXRpbmEtaW1hZ2UoJGZpbGVuYW1lLCAkYmFja2dyb3VuZC1zaXplLCAkZXh0ZW5zaW9uOiBwbmcsICRyZXRpbmEtZmlsZW5hbWU6IG51bGwsICRyZXRpbmEtc3VmZml4OiBfMngsICRhc3NldC1waXBlbGluZTogJGFzc2V0LXBpcGVsaW5lKSB7XG4gIEBpZiAkYXNzZXQtcGlwZWxpbmUge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IGltYWdlLXVybChcIiN7JGZpbGVuYW1lfS4jeyRleHRlbnNpb259XCIpO1xuICB9IEBlbHNlIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAgICAgICB1cmwoXCIjeyRmaWxlbmFtZX0uI3skZXh0ZW5zaW9ufVwiKTtcbiAgfVxuXG4gIEBpbmNsdWRlIGhpZHBpIHtcbiAgICBAaWYgJGFzc2V0LXBpcGVsaW5lIHtcbiAgICAgIEBpZiAkcmV0aW5hLWZpbGVuYW1lIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogaW1hZ2UtdXJsKFwiI3skcmV0aW5hLWZpbGVuYW1lfS4jeyRleHRlbnNpb259XCIpO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGltYWdlLXVybChcIiN7JGZpbGVuYW1lfSN7JHJldGluYS1zdWZmaXh9LiN7JGV4dGVuc2lvbn1cIik7XG4gICAgICB9XG4gICAgfSBAZWxzZSB7XG4gICAgICBAaWYgJHJldGluYS1maWxlbmFtZSB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIiN7JHJldGluYS1maWxlbmFtZX0uI3skZXh0ZW5zaW9ufVwiKTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIjeyRmaWxlbmFtZX0jeyRyZXRpbmEtc3VmZml4fS4jeyRleHRlbnNpb259XCIpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGJhY2tncm91bmQtc2l6ZTogJGJhY2tncm91bmQtc2l6ZTtcbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gU2V0cyB0aGUgYHdpZHRoYCBhbmQgYGhlaWdodGAgb2YgdGhlIGVsZW1lbnQuXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRzaXplXG4vLy8gICBBIGxpc3Qgb2YgYXQgbW9zdCAyIHNpemUgdmFsdWVzLlxuLy8vXG4vLy8gICBJZiB0aGVyZSBpcyBvbmx5IGEgc2luZ2xlIHZhbHVlIGluIGAkc2l6ZWAgaXQgaXMgdXNlZCBmb3IgYm90aCB3aWR0aCBhbmQgaGVpZ2h0LiBBbGwgdW5pdHMgYXJlIHN1cHBvcnRlZC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmZpcnN0LWVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBzaXplKDJlbSk7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5zZWNvbmQtZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIHNpemUoYXV0byAxMGVtKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5maXJzdC1lbGVtZW50IHtcbi8vLyAgICAgd2lkdGg6IDJlbTtcbi8vLyAgICAgaGVpZ2h0OiAyZW07XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5zZWNvbmQtZWxlbWVudCB7XG4vLy8gICAgIHdpZHRoOiBhdXRvO1xuLy8vICAgICBoZWlnaHQ6IDEwZW07XG4vLy8gICB9XG4vLy9cbi8vLyBAdG9kbyBSZWZhY3RvciBpbiA1LjAuMCB0byB1c2UgYSBjb21tYS1zZXBhcmF0ZWQgYXJndW1lbnRcblxuQG1peGluIHNpemUoJHZhbHVlKSB7XG4gICR3aWR0aDogbnRoKCR2YWx1ZSwgMSk7XG4gICRoZWlnaHQ6ICR3aWR0aDtcblxuICBAaWYgbGVuZ3RoKCR2YWx1ZSkgPiAxIHtcbiAgICAkaGVpZ2h0OiBudGgoJHZhbHVlLCAyKTtcbiAgfVxuXG4gIEBpZiBpcy1zaXplKCRoZWlnaHQpIHtcbiAgICBoZWlnaHQ6ICRoZWlnaHQ7XG4gIH0gQGVsc2Uge1xuICAgIEB3YXJuIFwiYCN7JGhlaWdodH1gIGlzIG5vdCBhIHZhbGlkIGxlbmd0aCBmb3IgdGhlIGAkaGVpZ2h0YCBwYXJhbWV0ZXIgaW4gdGhlIGBzaXplYCBtaXhpbi5cIjtcbiAgfVxuXG4gIEBpZiBpcy1zaXplKCR3aWR0aCkge1xuICAgIHdpZHRoOiAkd2lkdGg7XG4gIH0gQGVsc2Uge1xuICAgIEB3YXJuIFwiYCN7JHdpZHRofWAgaXMgbm90IGEgdmFsaWQgbGVuZ3RoIGZvciB0aGUgYCR3aWR0aGAgcGFyYW1ldGVyIGluIHRoZSBgc2l6ZWAgbWl4aW4uXCI7XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIEdlbmVyYXRlcyB2YXJpYWJsZXMgZm9yIGFsbCB0ZXh0LWJhc2VkIGlucHV0cy4gUGxlYXNlIG5vdGUgdGhhdCB5b3UgbXVzdCB1c2UgaW50ZXJwb2xhdGlvbiBvbiB0aGUgdmFyaWFibGU6IGAjeyRhbGwtdGV4dC1pbnB1dHN9YC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgI3skYWxsLXRleHQtaW5wdXRzfSB7XG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICNmMDA7XG4vLy8gICB9XG4vLy9cbi8vLyAgICN7JGFsbC10ZXh0LWlucHV0cy1mb2N1c30sXG4vLy8gICAjeyRhbGwtdGV4dC1pbnB1dHMtaG92ZXJ9IHtcbi8vLyAgICAgYm9yZGVyOiAxcHggc29saWQgIzBmMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgI3skYWxsLXRleHQtaW5wdXRzLWFjdGl2ZX0ge1xuLy8vICAgICBib3JkZXI6IDFweCBzb2xpZCAjMDBmO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgaW5wdXRbdHlwZT1cImNvbG9yXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGVcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwiZW1haWxcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwibW9udGhcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cInNlYXJjaFwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZWxcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwidGV4dFwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ0aW1lXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cInVybFwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ3ZWVrXCJdLFxuLy8vICAgdGV4dGFyZWEge1xuLy8vICAgICBib3JkZXI6IDFweCBzb2xpZCAjZjAwO1xuLy8vICAgfVxuLy8vXG4vLy8gICBpbnB1dFt0eXBlPVwiY29sb3JcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZVwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZVwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJlbWFpbFwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJtb250aFwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJudW1iZXJcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwic2VhcmNoXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cInRlbFwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZXh0XCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cInRpbWVcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwidXJsXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cIndlZWtcIl06Zm9jdXMsXG4vLy8gICB0ZXh0YXJlYTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJjb2xvclwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRlXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cImVtYWlsXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cIm1vbnRoXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cIm51bWJlclwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJzZWFyY2hcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwidGVsXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cInRleHRcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwidGltZVwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJ1cmxcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwid2Vla1wiXTpob3Zlcixcbi8vLyAgIHRleHRhcmVhOmhvdmVyIHtcbi8vLyAgICAgYm9yZGVyOiAxcHggc29saWQgIzBmMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgaW5wdXRbdHlwZT1cImNvbG9yXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRlXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZVwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cImVtYWlsXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJtb250aFwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwic2VhcmNoXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZWxcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cInRleHRcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cInRpbWVcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cInVybFwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwid2Vla1wiXTphY3RpdmUsXG4vLy8gICB0ZXh0YXJlYTphY3RpdmUge1xuLy8vICAgICBib3JkZXI6IDFweCBzb2xpZCAjMDBmO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUgYXNzaWduLWlucHV0c1xuLy8vXG4vLy8gQHR5cGUgTGlzdFxuXG4kdGV4dC1pbnB1dHMtbGlzdDogJ2lucHV0W3R5cGU9XCJjb2xvclwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJkYXRlXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cImVtYWlsXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cIm1vbnRoXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cIm51bWJlclwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJwYXNzd29yZFwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJzZWFyY2hcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwidGVsXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInRleHRcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwidGltZVwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJ1cmxcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwid2Vla1wiXScsXG4gICAgICAgICAgICAgICAgICAgJ3RleHRhcmVhJztcblxuJGFsbC10ZXh0LWlucHV0czogICAgICAgIGFzc2lnbi1pbnB1dHMoJHRleHQtaW5wdXRzLWxpc3QpO1xuJGFsbC10ZXh0LWlucHV0cy1hY3RpdmU6IGFzc2lnbi1pbnB1dHMoJHRleHQtaW5wdXRzLWxpc3QsIGFjdGl2ZSk7XG4kYWxsLXRleHQtaW5wdXRzLWZvY3VzOiAgYXNzaWduLWlucHV0cygkdGV4dC1pbnB1dHMtbGlzdCwgZm9jdXMpO1xuJGFsbC10ZXh0LWlucHV0cy1ob3ZlcjogIGFzc2lnbi1pbnB1dHMoJHRleHQtaW5wdXRzLWxpc3QsIGhvdmVyKTtcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIENTUyBjdWJpYy1iZXppZXIgdGltaW5nIGZ1bmN0aW9ucy4gVGltaW5nIGZ1bmN0aW9ucyBjb3VydGVzeSBvZiBqcXVlcnkuZWFzaWUgKGdpdGh1Yi5jb20vamF1a2lhL2Vhc2llKVxuLy8vXG4vLy8gVGltaW5nIGZ1bmN0aW9ucyBhcmUgdGhlIHNhbWUgYXMgZGVtb2VkIGhlcmU6IGh0dHA6Ly9qcXVlcnl1aS5jb20vcmVzb3VyY2VzL2RlbW9zL2VmZmVjdC9lYXNpbmcuaHRtbFxuLy8vXG4vLy8gQHR5cGUgY3ViaWMtYmV6aWVyXG5cbiRlYXNlLWluLXF1YWQ6ICAgICAgY3ViaWMtYmV6aWVyKDAuNTUwLCAgMC4wODUsIDAuNjgwLCAwLjUzMCk7XG4kZWFzZS1pbi1jdWJpYzogICAgIGN1YmljLWJlemllcigwLjU1MCwgIDAuMDU1LCAwLjY3NSwgMC4xOTApO1xuJGVhc2UtaW4tcXVhcnQ6ICAgICBjdWJpYy1iZXppZXIoMC44OTUsICAwLjAzMCwgMC42ODUsIDAuMjIwKTtcbiRlYXNlLWluLXF1aW50OiAgICAgY3ViaWMtYmV6aWVyKDAuNzU1LCAgMC4wNTAsIDAuODU1LCAwLjA2MCk7XG4kZWFzZS1pbi1zaW5lOiAgICAgIGN1YmljLWJlemllcigwLjQ3MCwgIDAuMDAwLCAwLjc0NSwgMC43MTUpO1xuJGVhc2UtaW4tZXhwbzogICAgICBjdWJpYy1iZXppZXIoMC45NTAsICAwLjA1MCwgMC43OTUsIDAuMDM1KTtcbiRlYXNlLWluLWNpcmM6ICAgICAgY3ViaWMtYmV6aWVyKDAuNjAwLCAgMC4wNDAsIDAuOTgwLCAwLjMzNSk7XG4kZWFzZS1pbi1iYWNrOiAgICAgIGN1YmljLWJlemllcigwLjYwMCwgLTAuMjgwLCAwLjczNSwgMC4wNDUpO1xuXG4kZWFzZS1vdXQtcXVhZDogICAgIGN1YmljLWJlemllcigwLjI1MCwgIDAuNDYwLCAwLjQ1MCwgMC45NDApO1xuJGVhc2Utb3V0LWN1YmljOiAgICBjdWJpYy1iZXppZXIoMC4yMTUsICAwLjYxMCwgMC4zNTUsIDEuMDAwKTtcbiRlYXNlLW91dC1xdWFydDogICAgY3ViaWMtYmV6aWVyKDAuMTY1LCAgMC44NDAsIDAuNDQwLCAxLjAwMCk7XG4kZWFzZS1vdXQtcXVpbnQ6ICAgIGN1YmljLWJlemllcigwLjIzMCwgIDEuMDAwLCAwLjMyMCwgMS4wMDApO1xuJGVhc2Utb3V0LXNpbmU6ICAgICBjdWJpYy1iZXppZXIoMC4zOTAsICAwLjU3NSwgMC41NjUsIDEuMDAwKTtcbiRlYXNlLW91dC1leHBvOiAgICAgY3ViaWMtYmV6aWVyKDAuMTkwLCAgMS4wMDAsIDAuMjIwLCAxLjAwMCk7XG4kZWFzZS1vdXQtY2lyYzogICAgIGN1YmljLWJlemllcigwLjA3NSwgIDAuODIwLCAwLjE2NSwgMS4wMDApO1xuJGVhc2Utb3V0LWJhY2s6ICAgICBjdWJpYy1iZXppZXIoMC4xNzUsICAwLjg4NSwgMC4zMjAsIDEuMjc1KTtcblxuJGVhc2UtaW4tb3V0LXF1YWQ6ICBjdWJpYy1iZXppZXIoMC40NTUsICAwLjAzMCwgMC41MTUsIDAuOTU1KTtcbiRlYXNlLWluLW91dC1jdWJpYzogY3ViaWMtYmV6aWVyKDAuNjQ1LCAgMC4wNDUsIDAuMzU1LCAxLjAwMCk7XG4kZWFzZS1pbi1vdXQtcXVhcnQ6IGN1YmljLWJlemllcigwLjc3MCwgIDAuMDAwLCAwLjE3NSwgMS4wMDApO1xuJGVhc2UtaW4tb3V0LXF1aW50OiBjdWJpYy1iZXppZXIoMC44NjAsICAwLjAwMCwgMC4wNzAsIDEuMDAwKTtcbiRlYXNlLWluLW91dC1zaW5lOiAgY3ViaWMtYmV6aWVyKDAuNDQ1LCAgMC4wNTAsIDAuNTUwLCAwLjk1MCk7XG4kZWFzZS1pbi1vdXQtZXhwbzogIGN1YmljLWJlemllcigxLjAwMCwgIDAuMDAwLCAwLjAwMCwgMS4wMDApO1xuJGVhc2UtaW4tb3V0LWNpcmM6ICBjdWJpYy1iZXppZXIoMC43ODUsICAwLjEzNSwgMC4xNTAsIDAuODYwKTtcbiRlYXNlLWluLW91dC1iYWNrOiAgY3ViaWMtYmV6aWVyKDAuNjgwLCAtMC41NTAsIDAuMjY1LCAxLjU1MCk7XG4iLCJAbWl4aW4gdHJpYW5nbGUoJHNpemUsICRjb2xvciwgJGRpcmVjdGlvbikge1xuICAkd2lkdGg6IG50aCgkc2l6ZSwgMSk7XG4gICRoZWlnaHQ6IG50aCgkc2l6ZSwgbGVuZ3RoKCRzaXplKSk7XG4gICRmb3JlZ3JvdW5kLWNvbG9yOiBudGgoJGNvbG9yLCAxKTtcbiAgJGJhY2tncm91bmQtY29sb3I6IGlmKGxlbmd0aCgkY29sb3IpID09IDIsIG50aCgkY29sb3IsIDIpLCB0cmFuc3BhcmVudCk7XG4gIGhlaWdodDogMDtcbiAgd2lkdGg6IDA7XG5cbiAgQGlmICgkZGlyZWN0aW9uID09IHVwKSBvciAoJGRpcmVjdGlvbiA9PSBkb3duKSBvciAoJGRpcmVjdGlvbiA9PSByaWdodCkgb3IgKCRkaXJlY3Rpb24gPT0gbGVmdCkge1xuICAgICR3aWR0aDogJHdpZHRoIC8gMjtcbiAgICAkaGVpZ2h0OiBpZihsZW5ndGgoJHNpemUpID4gMSwgJGhlaWdodCwgJGhlaWdodC8yKTtcblxuICAgIEBpZiAkZGlyZWN0aW9uID09IHVwIHtcbiAgICAgIGJvcmRlci1ib3R0b206ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItbGVmdDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXJpZ2h0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IHJpZ2h0IHtcbiAgICAgIGJvcmRlci1ib3R0b206ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1sZWZ0OiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXRvcDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBkb3duIHtcbiAgICAgIGJvcmRlci1sZWZ0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci10b3A6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IGxlZnQge1xuICAgICAgYm9yZGVyLWJvdHRvbTogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXJpZ2h0OiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXRvcDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH1cbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSB1cC1yaWdodCkgb3IgKCRkaXJlY3Rpb24gPT0gdXAtbGVmdCkge1xuICAgIGJvcmRlci10b3A6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG5cbiAgICBAaWYgJGRpcmVjdGlvbiA9PSB1cC1yaWdodCB7XG4gICAgICBib3JkZXItbGVmdDogICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gdXAtbGVmdCB7XG4gICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9XG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gZG93bi1yaWdodCkgb3IgKCRkaXJlY3Rpb24gPT0gZG93bi1sZWZ0KSB7XG4gICAgYm9yZGVyLWJvdHRvbTogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcblxuICAgIEBpZiAkZGlyZWN0aW9uID09IGRvd24tcmlnaHQge1xuICAgICAgYm9yZGVyLWxlZnQ6ICAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IGRvd24tbGVmdCB7XG4gICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9XG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gaW5zZXQtdXApIHtcbiAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRmb3JlZ3JvdW5kLWNvbG9yO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAkaGVpZ2h0ICR3aWR0aDtcbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBpbnNldC1kb3duKSB7XG4gICAgYm9yZGVyLWNvbG9yOiAkZm9yZWdyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogJGhlaWdodCAkd2lkdGg7XG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gaW5zZXQtcmlnaHQpIHtcbiAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRmb3JlZ3JvdW5kLWNvbG9yO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAkd2lkdGggJGhlaWdodDtcbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBpbnNldC1sZWZ0KSB7XG4gICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvciAkZm9yZWdyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogJHdpZHRoICRoZWlnaHQ7XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGFuIGVhc3kgd2F5IHRvIGNoYW5nZSB0aGUgYHdvcmQtd3JhcGAgcHJvcGVydHkuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHdyYXAgW2JyZWFrLXdvcmRdXG4vLy8gICBWYWx1ZSBmb3IgdGhlIGB3b3JkLWJyZWFrYCBwcm9wZXJ0eS5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLndyYXBwZXIge1xuLy8vICAgICBAaW5jbHVkZSB3b3JkLXdyYXAoYnJlYWstd29yZCk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAud3JhcHBlciB7XG4vLy8gICAgIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG4vLy8gICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcbi8vLyAgICAgd29yZC13cmFwOiBicmVhay13b3JkO1xuLy8vICAgfVxuXG5AbWl4aW4gd29yZC13cmFwKCR3cmFwOiBicmVhay13b3JkKSB7XG4gIG92ZXJmbG93LXdyYXA6ICR3cmFwO1xuICB3b3JkLXdyYXA6ICR3cmFwO1xuXG4gIEBpZiAkd3JhcCA9PSBicmVhay13b3JkIHtcbiAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XG4gIH0gQGVsc2Uge1xuICAgIHdvcmQtYnJlYWs6ICR3cmFwO1xuICB9XG59XG4iLCIvLyBUaGUgZm9sbG93aW5nIGZlYXR1cmVzIGhhdmUgYmVlbiBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgTUFKT1IgdmVyc2lvbiByZWxlYXNlXG5cbkBtaXhpbiBpbmxpbmUtYmxvY2sge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgQHdhcm4gXCJUaGUgaW5saW5lLWJsb2NrIG1peGluIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIHJlbGVhc2VcIjtcbn1cblxuQG1peGluIGJ1dHRvbiAoJHN0eWxlOiBzaW1wbGUsICRiYXNlLWNvbG9yOiAjNDI5NGYwLCAkdGV4dC1zaXplOiBpbmhlcml0LCAkcGFkZGluZzogN3B4IDE4cHgpIHtcblxuICBAaWYgdHlwZS1vZigkc3R5bGUpID09IHN0cmluZyBhbmQgdHlwZS1vZigkYmFzZS1jb2xvcikgPT0gY29sb3Ige1xuICAgIEBpbmNsdWRlIGJ1dHRvbnN0eWxlKCRzdHlsZSwgJGJhc2UtY29sb3IsICR0ZXh0LXNpemUsICRwYWRkaW5nKTtcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCRzdHlsZSkgPT0gc3RyaW5nIGFuZCB0eXBlLW9mKCRiYXNlLWNvbG9yKSA9PSBudW1iZXIge1xuICAgICRwYWRkaW5nOiAkdGV4dC1zaXplO1xuICAgICR0ZXh0LXNpemU6ICRiYXNlLWNvbG9yO1xuICAgICRiYXNlLWNvbG9yOiAjNDI5NGYwO1xuXG4gICAgQGlmICRwYWRkaW5nID09IGluaGVyaXQge1xuICAgICAgJHBhZGRpbmc6IDdweCAxOHB4O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJ1dHRvbnN0eWxlKCRzdHlsZSwgJGJhc2UtY29sb3IsICR0ZXh0LXNpemUsICRwYWRkaW5nKTtcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCRzdHlsZSkgPT0gY29sb3IgYW5kIHR5cGUtb2YoJGJhc2UtY29sb3IpID09IGNvbG9yIHtcbiAgICAkYmFzZS1jb2xvcjogJHN0eWxlO1xuICAgICRzdHlsZTogc2ltcGxlO1xuICAgIEBpbmNsdWRlIGJ1dHRvbnN0eWxlKCRzdHlsZSwgJGJhc2UtY29sb3IsICR0ZXh0LXNpemUsICRwYWRkaW5nKTtcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCRzdHlsZSkgPT0gY29sb3IgYW5kIHR5cGUtb2YoJGJhc2UtY29sb3IpID09IG51bWJlciB7XG4gICAgJHBhZGRpbmc6ICR0ZXh0LXNpemU7XG4gICAgJHRleHQtc2l6ZTogJGJhc2UtY29sb3I7XG4gICAgJGJhc2UtY29sb3I6ICRzdHlsZTtcbiAgICAkc3R5bGU6IHNpbXBsZTtcblxuICAgIEBpZiAkcGFkZGluZyA9PSBpbmhlcml0IHtcbiAgICAgICRwYWRkaW5nOiA3cHggMThweDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBidXR0b25zdHlsZSgkc3R5bGUsICRiYXNlLWNvbG9yLCAkdGV4dC1zaXplLCAkcGFkZGluZyk7XG4gIH1cblxuICBAaWYgdHlwZS1vZigkc3R5bGUpID09IG51bWJlciB7XG4gICAgJHBhZGRpbmc6ICRiYXNlLWNvbG9yO1xuICAgICR0ZXh0LXNpemU6ICRzdHlsZTtcbiAgICAkYmFzZS1jb2xvcjogIzQyOTRmMDtcbiAgICAkc3R5bGU6IHNpbXBsZTtcblxuICAgIEBpZiAkcGFkZGluZyA9PSAjNDI5NGYwIHtcbiAgICAgICRwYWRkaW5nOiA3cHggMThweDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBidXR0b25zdHlsZSgkc3R5bGUsICRiYXNlLWNvbG9yLCAkdGV4dC1zaXplLCAkcGFkZGluZyk7XG4gIH1cblxuICAmOmRpc2FibGVkIHtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIG9wYWNpdHk6IDAuNTtcbiAgfVxuXG4gIEB3YXJuIFwiVGhlIGJ1dHRvbiBtaXhpbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiByZWxlYXNlXCI7XG59XG5cbi8vIFNlbGVjdG9yIFN0eWxlIEJ1dHRvblxuQG1peGluIGJ1dHRvbnN0eWxlKCR0eXBlLCAkYi1jb2xvciwgJHQtc2l6ZSwgJHBhZCkge1xuICAvLyBHcmF5c2NhbGUgYnV0dG9uXG4gIEBpZiAkdHlwZSA9PSBzaW1wbGUgYW5kICRiLWNvbG9yID09IGdyYXlzY2FsZSgkYi1jb2xvcikge1xuICAgIEBpbmNsdWRlIHNpbXBsZSgkYi1jb2xvciwgdHJ1ZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cblxuICBAaWYgJHR5cGUgPT0gc2hpbnkgYW5kICRiLWNvbG9yID09IGdyYXlzY2FsZSgkYi1jb2xvcikge1xuICAgIEBpbmNsdWRlIHNoaW55KCRiLWNvbG9yLCB0cnVlLCAkdC1zaXplLCAkcGFkKTtcbiAgfVxuXG4gIEBpZiAkdHlwZSA9PSBwaWxsIGFuZCAkYi1jb2xvciA9PSBncmF5c2NhbGUoJGItY29sb3IpIHtcbiAgICBAaW5jbHVkZSBwaWxsKCRiLWNvbG9yLCB0cnVlLCAkdC1zaXplLCAkcGFkKTtcbiAgfVxuXG4gIEBpZiAkdHlwZSA9PSBmbGF0IGFuZCAkYi1jb2xvciA9PSBncmF5c2NhbGUoJGItY29sb3IpIHtcbiAgICBAaW5jbHVkZSBmbGF0KCRiLWNvbG9yLCB0cnVlLCAkdC1zaXplLCAkcGFkKTtcbiAgfVxuXG4gIC8vIENvbG9yZWQgYnV0dG9uXG4gIEBpZiAkdHlwZSA9PSBzaW1wbGUge1xuICAgIEBpbmNsdWRlIHNpbXBsZSgkYi1jb2xvciwgZmFsc2UsICR0LXNpemUsICRwYWQpO1xuICB9XG5cbiAgQGVsc2UgaWYgJHR5cGUgPT0gc2hpbnkge1xuICAgIEBpbmNsdWRlIHNoaW55KCRiLWNvbG9yLCBmYWxzZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cblxuICBAZWxzZSBpZiAkdHlwZSA9PSBwaWxsIHtcbiAgICBAaW5jbHVkZSBwaWxsKCRiLWNvbG9yLCBmYWxzZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cblxuICBAZWxzZSBpZiAkdHlwZSA9PSBmbGF0IHtcbiAgICBAaW5jbHVkZSBmbGF0KCRiLWNvbG9yLCBmYWxzZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cbn1cblxuLy8gU2ltcGxlIEJ1dHRvblxuQG1peGluIHNpbXBsZSgkYmFzZS1jb2xvciwgJGdyYXlzY2FsZTogZmFsc2UsICR0ZXh0c2l6ZTogaW5oZXJpdCwgJHBhZGRpbmc6IDdweCAxOHB4KSB7XG4gICRjb2xvcjogICAgICAgICBoc2woMCwgMCwgMTAwJSk7XG4gICRib3JkZXI6ICAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAgOSUsICAkbGlnaHRuZXNzOiAtMTQlKTtcbiAgJGluc2V0LXNoYWRvdzogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IC04JSwgICRsaWdodG5lc3M6ICAxNSUpO1xuICAkc3RvcC1ncmFkaWVudDogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogIDklLCAgJGxpZ2h0bmVzczogLTExJSk7XG4gICR0ZXh0LXNoYWRvdzogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAgMTUlLCAkbGlnaHRuZXNzOiAtMTglKTtcblxuICBAaWYgaXMtbGlnaHQoJGJhc2UtY29sb3IpIHtcbiAgICAkY29sb3I6ICAgICAgIGhzbCgwLCAwLCAyMCUpO1xuICAgICR0ZXh0LXNoYWRvdzogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogMTAlLCAkbGlnaHRuZXNzOiA0JSk7XG4gIH1cblxuICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAkYm9yZGVyOiAgICAgICAgZ3JheXNjYWxlKCRib3JkZXIpO1xuICAgICRpbnNldC1zaGFkb3c6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdyk7XG4gICAgJHN0b3AtZ3JhZGllbnQ6IGdyYXlzY2FsZSgkc3RvcC1ncmFkaWVudCk7XG4gICAgJHRleHQtc2hhZG93OiAgIGdyYXlzY2FsZSgkdGV4dC1zaGFkb3cpO1xuICB9XG5cbiAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIDAgJGluc2V0LXNoYWRvdztcbiAgY29sb3I6ICRjb2xvcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6ICR0ZXh0c2l6ZTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCAoJGJhc2UtY29sb3IsICRzdG9wLWdyYWRpZW50KTtcbiAgcGFkZGluZzogJHBhZGRpbmc7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC1zaGFkb3c6IDAgMXB4IDAgJHRleHQtc2hhZG93O1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuXG4gICY6aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICAgICRiYXNlLWNvbG9yLWhvdmVyOiAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAtNCUsICRsaWdodG5lc3M6IC01JSk7XG4gICAgJGluc2V0LXNoYWRvdy1ob3ZlcjogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IC03JSwgJGxpZ2h0bmVzczogIDUlKTtcbiAgICAkc3RvcC1ncmFkaWVudC1ob3ZlcjogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogIDglLCAkbGlnaHRuZXNzOiAtMTQlKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGJhc2UtY29sb3ItaG92ZXI6ICAgIGdyYXlzY2FsZSgkYmFzZS1jb2xvci1ob3Zlcik7XG4gICAgICAkaW5zZXQtc2hhZG93LWhvdmVyOiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3ctaG92ZXIpO1xuICAgICAgJHN0b3AtZ3JhZGllbnQtaG92ZXI6IGdyYXlzY2FsZSgkc3RvcC1ncmFkaWVudC1ob3Zlcik7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50ICgkYmFzZS1jb2xvci1ob3ZlciwgJHN0b3AtZ3JhZGllbnQtaG92ZXIpO1xuXG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCAwICRpbnNldC1zaGFkb3ctaG92ZXI7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG5cbiAgJjphY3RpdmU6bm90KDpkaXNhYmxlZCksXG4gICY6Zm9jdXM6bm90KDpkaXNhYmxlZCkge1xuICAgICRib3JkZXItYWN0aXZlOiAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiA5JSwgJGxpZ2h0bmVzczogLTE0JSk7XG4gICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDclLCAkbGlnaHRuZXNzOiAtMTclKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGJvcmRlci1hY3RpdmU6ICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyLWFjdGl2ZSk7XG4gICAgICAkaW5zZXQtc2hhZG93LWFjdGl2ZTogZ3JheXNjYWxlKCRpbnNldC1zaGFkb3ctYWN0aXZlKTtcbiAgICB9XG5cbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLWFjdGl2ZTtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgOHB4IDRweCAkaW5zZXQtc2hhZG93LWFjdGl2ZSwgaW5zZXQgMCAwIDhweCA0cHggJGluc2V0LXNoYWRvdy1hY3RpdmU7XG4gIH1cbn1cblxuLy8gU2hpbnkgQnV0dG9uXG5AbWl4aW4gc2hpbnkoJGJhc2UtY29sb3IsICRncmF5c2NhbGU6IGZhbHNlLCAkdGV4dHNpemU6IGluaGVyaXQsICRwYWRkaW5nOiA3cHggMThweCkge1xuICAkY29sb3I6ICAgICAgICAgaHNsKDAsIDAsIDEwMCUpO1xuICAkYm9yZGVyOiAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtMTE3LCAkZ3JlZW46IC0xMTEsICRibHVlOiAtODEpO1xuICAkYm9yZGVyLWJvdHRvbTogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtMTI2LCAkZ3JlZW46IC0xMjcsICRibHVlOiAtMTIyKTtcbiAgJGZvdXJ0aC1zdG9wOiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTc5LCAgJGdyZWVuOiAtNzAsICAkYmx1ZTogLTQ2KTtcbiAgJGluc2V0LXNoYWRvdzogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogIDM3LCAgJGdyZWVuOiAgMjksICAkYmx1ZTogIDEyKTtcbiAgJHNlY29uZC1zdG9wOiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTU2LCAgJGdyZWVuOiAtNTAsICAkYmx1ZTogLTMzKTtcbiAgJHRleHQtc2hhZG93OiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTE0MCwgJGdyZWVuOiAtMTQxLCAkYmx1ZTogLTExNCk7XG4gICR0aGlyZC1zdG9wOiAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC04NiwgICRncmVlbjogLTc1LCAgJGJsdWU6IC00OCk7XG5cbiAgQGlmIGlzLWxpZ2h0KCRiYXNlLWNvbG9yKSB7XG4gICAgJGNvbG9yOiAgICAgICBoc2woMCwgMCwgMjAlKTtcbiAgICAkdGV4dC1zaGFkb3c6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDEwJSwgJGxpZ2h0bmVzczogNCUpO1xuICB9XG5cbiAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgJGJvcmRlcjogICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyKTtcbiAgICAkYm9yZGVyLWJvdHRvbTogZ3JheXNjYWxlKCRib3JkZXItYm90dG9tKTtcbiAgICAkZm91cnRoLXN0b3A6ICAgZ3JheXNjYWxlKCRmb3VydGgtc3RvcCk7XG4gICAgJGluc2V0LXNoYWRvdzogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93KTtcbiAgICAkc2Vjb25kLXN0b3A6ICAgZ3JheXNjYWxlKCRzZWNvbmQtc3RvcCk7XG4gICAgJHRleHQtc2hhZG93OiAgIGdyYXlzY2FsZSgkdGV4dC1zaGFkb3cpO1xuICAgICR0aGlyZC1zdG9wOiAgICBncmF5c2NhbGUoJHRoaXJkLXN0b3ApO1xuICB9XG5cbiAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50KHRvcCwgJGJhc2UtY29sb3IgMCUsICRzZWNvbmQtc3RvcCA1MCUsICR0aGlyZC1zdG9wIDUwJSwgJGZvdXJ0aC1zdG9wIDEwMCUpO1xuXG4gIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXI7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkYm9yZGVyLWJvdHRvbTtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIDAgJGluc2V0LXNoYWRvdztcbiAgY29sb3I6ICRjb2xvcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6ICR0ZXh0c2l6ZTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC1zaGFkb3c6IDAgLTFweCAxcHggJHRleHQtc2hhZG93O1xuXG4gICY6aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICAgICRmaXJzdC1zdG9wLWhvdmVyOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtMTMsICRncmVlbjogLTE1LCAkYmx1ZTogLTE4KTtcbiAgICAkc2Vjb25kLXN0b3AtaG92ZXI6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTY2LCAkZ3JlZW46IC02MiwgJGJsdWU6IC01MSk7XG4gICAgJHRoaXJkLXN0b3AtaG92ZXI6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC05MywgJGdyZWVuOiAtODUsICRibHVlOiAtNjYpO1xuICAgICRmb3VydGgtc3RvcC1ob3ZlcjogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtODYsICRncmVlbjogLTgwLCAkYmx1ZTogLTYzKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGZpcnN0LXN0b3AtaG92ZXI6ICBncmF5c2NhbGUoJGZpcnN0LXN0b3AtaG92ZXIpO1xuICAgICAgJHNlY29uZC1zdG9wLWhvdmVyOiBncmF5c2NhbGUoJHNlY29uZC1zdG9wLWhvdmVyKTtcbiAgICAgICR0aGlyZC1zdG9wLWhvdmVyOiAgZ3JheXNjYWxlKCR0aGlyZC1zdG9wLWhvdmVyKTtcbiAgICAgICRmb3VydGgtc3RvcC1ob3ZlcjogZ3JheXNjYWxlKCRmb3VydGgtc3RvcC1ob3Zlcik7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50KHRvcCwgJGZpcnN0LXN0b3AtaG92ZXIgIDAlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzZWNvbmQtc3RvcC1ob3ZlciA1MCUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXJkLXN0b3AtaG92ZXIgIDUwJSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZm91cnRoLXN0b3AtaG92ZXIgMTAwJSk7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG5cbiAgJjphY3RpdmU6bm90KDpkaXNhYmxlZCksXG4gICY6Zm9jdXM6bm90KDpkaXNhYmxlZCkge1xuICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC0xMTEsICRncmVlbjogLTExNiwgJGJsdWU6IC0xMjIpO1xuXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgICAkaW5zZXQtc2hhZG93LWFjdGl2ZTogZ3JheXNjYWxlKCRpbnNldC1zaGFkb3ctYWN0aXZlKTtcbiAgICB9XG5cbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMjBweCAwICRpbnNldC1zaGFkb3ctYWN0aXZlO1xuICB9XG59XG5cbi8vIFBpbGwgQnV0dG9uXG5AbWl4aW4gcGlsbCgkYmFzZS1jb2xvciwgJGdyYXlzY2FsZTogZmFsc2UsICR0ZXh0c2l6ZTogaW5oZXJpdCwgJHBhZGRpbmc6IDdweCAxOHB4KSB7XG4gICRjb2xvcjogICAgICAgICBoc2woMCwgMCwgMTAwJSk7XG4gICRib3JkZXItYm90dG9tOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA4LCAkc2F0dXJhdGlvbjogLTExJSwgJGxpZ2h0bmVzczogLTI2JSk7XG4gICRib3JkZXItc2lkZXM6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA0LCAkc2F0dXJhdGlvbjogLTIxJSwgJGxpZ2h0bmVzczogLTIxJSk7XG4gICRib3JkZXItdG9wOiAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IC0xLCAkc2F0dXJhdGlvbjogLTMwJSwgJGxpZ2h0bmVzczogLTE1JSk7XG4gICRpbnNldC1zaGFkb3c6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IC0xLCAkc2F0dXJhdGlvbjogLTElLCAgJGxpZ2h0bmVzczogIDclKTtcbiAgJHN0b3AtZ3JhZGllbnQ6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDgsICRzYXR1cmF0aW9uOiAgMTQlLCAkbGlnaHRuZXNzOiAtMTAlKTtcbiAgJHRleHQtc2hhZG93OiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDUsICRzYXR1cmF0aW9uOiAtMTklLCAkbGlnaHRuZXNzOiAtMTUlKTtcblxuICBAaWYgaXMtbGlnaHQoJGJhc2UtY29sb3IpIHtcbiAgICAkY29sb3I6ICAgICAgIGhzbCgwLCAwLCAyMCUpO1xuICAgICR0ZXh0LXNoYWRvdzogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogMTAlLCAkbGlnaHRuZXNzOiA0JSk7XG4gIH1cblxuICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAkYm9yZGVyLWJvdHRvbTogZ3JheXNjYWxlKCRib3JkZXItYm90dG9tKTtcbiAgICAkYm9yZGVyLXNpZGVzOiAgZ3JheXNjYWxlKCRib3JkZXItc2lkZXMpO1xuICAgICRib3JkZXItdG9wOiAgICBncmF5c2NhbGUoJGJvcmRlci10b3ApO1xuICAgICRpbnNldC1zaGFkb3c6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdyk7XG4gICAgJHN0b3AtZ3JhZGllbnQ6IGdyYXlzY2FsZSgkc3RvcC1ncmFkaWVudCk7XG4gICAgJHRleHQtc2hhZG93OiAgIGdyYXlzY2FsZSgkdGV4dC1zaGFkb3cpO1xuICB9XG5cbiAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci10b3A7XG4gIGJvcmRlci1jb2xvcjogJGJvcmRlci10b3AgJGJvcmRlci1zaWRlcyAkYm9yZGVyLWJvdHRvbTtcbiAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCAwICRpbnNldC1zaGFkb3c7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAkdGV4dHNpemU7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQgKCRiYXNlLWNvbG9yLCAkc3RvcC1ncmFkaWVudCk7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC1zaGFkb3c6IDAgLTFweCAxcHggJHRleHQtc2hhZG93O1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuXG4gICY6aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICAgICRiYXNlLWNvbG9yLWhvdmVyOiAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGlnaHRuZXNzOiAtNC41JSk7XG4gICAgJGJvcmRlci1ib3R0b206ICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDgsICRzYXR1cmF0aW9uOiAgMTMuNSUsICRsaWdodG5lc3M6IC0zMiUpO1xuICAgICRib3JkZXItc2lkZXM6ICAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA0LCAkc2F0dXJhdGlvbjogLTIlLCAgICAkbGlnaHRuZXNzOiAtMjclKTtcbiAgICAkYm9yZGVyLXRvcDogICAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAtMSwgJHNhdHVyYXRpb246IC0xNyUsICAgJGxpZ2h0bmVzczogLTIxJSk7XG4gICAgJGluc2V0LXNoYWRvdy1ob3ZlcjogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgICAgICAgICAgICRzYXR1cmF0aW9uOiAtMSUsICAgICRsaWdodG5lc3M6ICAzJSk7XG4gICAgJHN0b3AtZ3JhZGllbnQtaG92ZXI6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDgsICRzYXR1cmF0aW9uOiAtNCUsICAgICRsaWdodG5lc3M6IC0xNS41JSk7XG4gICAgJHRleHQtc2hhZG93LWhvdmVyOiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDUsICRzYXR1cmF0aW9uOiAtNSUsICAgICRsaWdodG5lc3M6IC0yMiUpO1xuXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgICAkYmFzZS1jb2xvci1ob3ZlcjogICAgZ3JheXNjYWxlKCRiYXNlLWNvbG9yLWhvdmVyKTtcbiAgICAgICRib3JkZXItYm90dG9tOiAgICAgICBncmF5c2NhbGUoJGJvcmRlci1ib3R0b20pO1xuICAgICAgJGJvcmRlci1zaWRlczogICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyLXNpZGVzKTtcbiAgICAgICRib3JkZXItdG9wOiAgICAgICAgICBncmF5c2NhbGUoJGJvcmRlci10b3ApO1xuICAgICAgJGluc2V0LXNoYWRvdy1ob3ZlcjogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93LWhvdmVyKTtcbiAgICAgICRzdG9wLWdyYWRpZW50LWhvdmVyOiBncmF5c2NhbGUoJHN0b3AtZ3JhZGllbnQtaG92ZXIpO1xuICAgICAgJHRleHQtc2hhZG93LWhvdmVyOiAgIGdyYXlzY2FsZSgkdGV4dC1zaGFkb3ctaG92ZXIpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCAoJGJhc2UtY29sb3ItaG92ZXIsICRzdG9wLWdyYWRpZW50LWhvdmVyKTtcblxuICAgIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci10b3A7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLXRvcCAkYm9yZGVyLXNpZGVzICRib3JkZXItYm90dG9tO1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgMCAkaW5zZXQtc2hhZG93LWhvdmVyO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0ZXh0LXNoYWRvdzogMCAtMXB4IDFweCAkdGV4dC1zaGFkb3ctaG92ZXI7XG4gIH1cblxuICAmOmFjdGl2ZTpub3QoOmRpc2FibGVkKSxcbiAgJjpmb2N1czpub3QoOmRpc2FibGVkKSB7XG4gICAgJGFjdGl2ZS1jb2xvcjogICAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IDQsICAkc2F0dXJhdGlvbjogLTEyJSwgICRsaWdodG5lc3M6IC0xMCUpO1xuICAgICRib3JkZXItYWN0aXZlOiAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiA2LCAgJHNhdHVyYXRpb246IC0yLjUlLCAkbGlnaHRuZXNzOiAtMzAlKTtcbiAgICAkYm9yZGVyLWJvdHRvbS1hY3RpdmU6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogMTEsICRzYXR1cmF0aW9uOiAgNiUsICAgJGxpZ2h0bmVzczogLTMxJSk7XG4gICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IDksICAkc2F0dXJhdGlvbjogIDIlLCAgICRsaWdodG5lc3M6IC0yMS41JSk7XG4gICAgJHRleHQtc2hhZG93LWFjdGl2ZTogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IDUsICAkc2F0dXJhdGlvbjogLTEyJSwgICRsaWdodG5lc3M6IC0yMS41JSk7XG5cbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRhY3RpdmUtY29sb3I6ICAgICAgICAgZ3JheXNjYWxlKCRhY3RpdmUtY29sb3IpO1xuICAgICAgJGJvcmRlci1hY3RpdmU6ICAgICAgICBncmF5c2NhbGUoJGJvcmRlci1hY3RpdmUpO1xuICAgICAgJGJvcmRlci1ib3R0b20tYWN0aXZlOiBncmF5c2NhbGUoJGJvcmRlci1ib3R0b20tYWN0aXZlKTtcbiAgICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3ctYWN0aXZlKTtcbiAgICAgICR0ZXh0LXNoYWRvdy1hY3RpdmU6ICAgZ3JheXNjYWxlKCR0ZXh0LXNoYWRvdy1hY3RpdmUpO1xuICAgIH1cblxuICAgIGJhY2tncm91bmQ6ICRhY3RpdmUtY29sb3I7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci1hY3RpdmU7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRib3JkZXItYm90dG9tLWFjdGl2ZTtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgNnB4IDNweCAkaW5zZXQtc2hhZG93LWFjdGl2ZTtcbiAgICB0ZXh0LXNoYWRvdzogMCAtMXB4IDFweCAkdGV4dC1zaGFkb3ctYWN0aXZlO1xuICB9XG59XG5cbi8vIEZsYXQgQnV0dG9uXG5AbWl4aW4gZmxhdCgkYmFzZS1jb2xvciwgJGdyYXlzY2FsZTogZmFsc2UsICR0ZXh0c2l6ZTogaW5oZXJpdCwgJHBhZGRpbmc6IDdweCAxOHB4KSB7XG4gICRjb2xvcjogICAgICAgICBoc2woMCwgMCwgMTAwJSk7XG5cbiAgQGlmIGlzLWxpZ2h0KCRiYXNlLWNvbG9yKSB7XG4gICAgJGNvbG9yOiAgICAgICBoc2woMCwgMCwgMjAlKTtcbiAgfVxuXG4gIGJhY2tncm91bmQtY29sb3I6ICRiYXNlLWNvbG9yO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGJvcmRlcjogMDtcbiAgY29sb3I6ICRjb2xvcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6ICR0ZXh0c2l6ZTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG5cbiAgJjpob3Zlcjpub3QoOmRpc2FibGVkKXtcbiAgICAkYmFzZS1jb2xvci1ob3ZlcjogICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogNCUsICRsaWdodG5lc3M6IDUlKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGJhc2UtY29sb3ItaG92ZXI6IGdyYXlzY2FsZSgkYmFzZS1jb2xvci1ob3Zlcik7XG4gICAgfVxuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhc2UtY29sb3ItaG92ZXI7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG5cbiAgJjphY3RpdmU6bm90KDpkaXNhYmxlZCksXG4gICY6Zm9jdXM6bm90KDpkaXNhYmxlZCkge1xuICAgICRiYXNlLWNvbG9yLWFjdGl2ZTogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogLTQlLCAkbGlnaHRuZXNzOiAtNSUpO1xuXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgICAkYmFzZS1jb2xvci1hY3RpdmU6IGdyYXlzY2FsZSgkYmFzZS1jb2xvci1hY3RpdmUpO1xuICAgIH1cblxuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYXNlLWNvbG9yLWFjdGl2ZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbn1cblxuLy8gRmxleGlibGUgZ3JpZFxuQGZ1bmN0aW9uIGZsZXgtZ3JpZCgkY29sdW1ucywgJGNvbnRhaW5lci1jb2x1bW5zOiAkZmctbWF4LWNvbHVtbnMpIHtcbiAgJHdpZHRoOiAkY29sdW1ucyAqICRmZy1jb2x1bW4gKyAoJGNvbHVtbnMgLSAxKSAqICRmZy1ndXR0ZXI7XG4gICRjb250YWluZXItd2lkdGg6ICRjb250YWluZXItY29sdW1ucyAqICRmZy1jb2x1bW4gKyAoJGNvbnRhaW5lci1jb2x1bW5zIC0gMSkgKiAkZmctZ3V0dGVyO1xuICBAcmV0dXJuIHBlcmNlbnRhZ2UoJHdpZHRoIC8gJGNvbnRhaW5lci13aWR0aCk7XG5cbiAgQHdhcm4gXCJUaGUgZmxleC1ncmlkIGZ1bmN0aW9uIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIHJlbGVhc2VcIjtcbn1cblxuLy8gRmxleGlibGUgZ3V0dGVyXG5AZnVuY3Rpb24gZmxleC1ndXR0ZXIoJGNvbnRhaW5lci1jb2x1bW5zOiAkZmctbWF4LWNvbHVtbnMsICRndXR0ZXI6ICRmZy1ndXR0ZXIpIHtcbiAgJGNvbnRhaW5lci13aWR0aDogJGNvbnRhaW5lci1jb2x1bW5zICogJGZnLWNvbHVtbiArICgkY29udGFpbmVyLWNvbHVtbnMgLSAxKSAqICRmZy1ndXR0ZXI7XG4gIEByZXR1cm4gcGVyY2VudGFnZSgkZ3V0dGVyIC8gJGNvbnRhaW5lci13aWR0aCk7XG5cbiAgQHdhcm4gXCJUaGUgZmxleC1ndXR0ZXIgZnVuY3Rpb24gaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gcmVsZWFzZVwiO1xufVxuXG5AZnVuY3Rpb24gZ3JpZC13aWR0aCgkbikge1xuICBAcmV0dXJuICRuICogJGd3LWNvbHVtbiArICgkbiAtIDEpICogJGd3LWd1dHRlcjtcblxuICBAd2FybiBcIlRoZSBncmlkLXdpZHRoIGZ1bmN0aW9uIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIHJlbGVhc2VcIjtcbn1cblxuQGZ1bmN0aW9uIGdvbGRlbi1yYXRpbygkdmFsdWUsICRpbmNyZW1lbnQpIHtcbiAgQHJldHVybiBtb2R1bGFyLXNjYWxlKCRpbmNyZW1lbnQsICR2YWx1ZSwgJHJhdGlvOiAkZ29sZGVuKTtcblxuICBAd2FybiBcIlRoZSBnb2xkZW4tcmF0aW8gZnVuY3Rpb24gaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gcmVsZWFzZS4gUGxlYXNlIHVzZSB0aGUgbW9kdWxhci1zY2FsZSBmdW5jdGlvbiwgaW5zdGVhZC5cIjtcbn1cblxuQG1peGluIGJveC1zaXppbmcoJGJveCkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtc2l6aW5nLCAkYm94LCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIEB3YXJuIFwiVGhlIGJveC1zaXppbmcgbWl4aW4gaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gcmVsZWFzZS4gVGhpcyBwcm9wZXJ0eSBjYW4gbm93IGJlIHVzZWQgdW4tcHJlZml4ZWQuXCI7XG59XG4iLCIvLyBCaXR0ZXJzIDEuMi4wXG4vLyBodHRwOi8vYml0dGVycy5ib3VyYm9uLmlvXG4vLyBDb3B5cmlnaHQgMjAxMy0yMDE1IHRob3VnaHRib3QsIGluYy5cbi8vIE1JVCBMaWNlbnNlXG5cbkBpbXBvcnQgXCJ2YXJpYWJsZXNcIjtcblxuLy8gTmVhdCBTZXR0aW5ncyAtLSB1bmNvbW1lbnQgaWYgdXNpbmcgTmVhdCAtLSBtdXN0IGJlIGltcG9ydGVkIGJlZm9yZSBOZWF0XG5AaW1wb3J0IFwiZ3JpZC1zZXR0aW5nc1wiO1xuXG5AaW1wb3J0IFwiYnV0dG9uc1wiO1xuQGltcG9ydCBcImZvcm1zXCI7XG5AaW1wb3J0IFwibGlzdHNcIjtcbkBpbXBvcnQgXCJ0YWJsZXNcIjtcbkBpbXBvcnQgXCJ0eXBvZ3JhcGh5XCI7XG4iLCIvLyBUeXBvZ3JhcGh5XG4kYmFzZS1mb250LWZhbWlseTogJ3Byb3hpbWEtbm92YScsICRoZWx2ZXRpY2E7XG4kaGVhZGluZy1mb250LWZhbWlseTogJGJhc2UtZm9udC1mYW1pbHk7XG5cbi8vIEZvbnQgU2l6ZXNcbiRiYXNlLWZvbnQtc2l6ZTogMWVtO1xuJGgxLWZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplICogMi4yNTtcbiRoMi1mb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZSAqIDI7XG4kaDMtZm9udC1zaXplOiAkYmFzZS1mb250LXNpemUgKiAxLjc1O1xuJGg0LWZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplICogMS41O1xuJGg1LWZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplICogMS4yNTtcbiRoNi1mb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZTtcblxuLy8gTGluZSBoZWlnaHRcbiRiYXNlLWxpbmUtaGVpZ2h0OiAxLjU7XG4kaGVhZGluZy1saW5lLWhlaWdodDogMS4yO1xuXG4vLyBPdGhlciBTaXplc1xuJGJhc2UtYm9yZGVyLXJhZGl1czogM3B4O1xuJGJhc2Utc3BhY2luZzogJGJhc2UtbGluZS1oZWlnaHQgKiAxZW07XG4kc21hbGwtc3BhY2luZzogJGJhc2Utc3BhY2luZyAvIDI7XG4kYmFzZS16LWluZGV4OiAwO1xuXG4vLyBDb2xvcnNcbiRibHVlOiAjNGE5MGUyO1xuJGRhcmstZ3JheTogIzRhNGE0YTtcbiR0ZXh0LWdyYXk6ICM1NTU7XG4kbWVkaXVtLWdyYXk6ICNhYmFiYWI7XG4kbGlnaHQtZ3JheTogI2Y0ZjRmNDtcbiR3b28tbGlnaHQtZ3JheTogI2RmZGNkZTtcblxuLy8gRm9udCBDb2xvcnNcbiRiYXNlLWZvbnQtY29sb3I6ICR0ZXh0LWdyYXk7XG4kYWN0aW9uLWNvbG9yOiAkYmx1ZTtcblxuLy8gQm9yZGVyXG4kYmFzZS1ib3JkZXItY29sb3I6ICRtZWRpdW0tZ3JheTtcbiRiYXNlLWJvcmRlcjogMXB4IHNvbGlkICRiYXNlLWJvcmRlci1jb2xvcjtcblxuLy8gQmFja2dyb3VuZCBDb2xvcnNcbiRiYXNlLWJhY2tncm91bmQtY29sb3I6ICRsaWdodC1ncmF5O1xuJHNlY29uZGFyeS1iYWNrZ3JvdW5kLWNvbG9yOiB0aW50KCRiYXNlLWJvcmRlci1jb2xvciwgNzUlKTtcblxuLy8gRm9ybXNcbiRmb3JtLWJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDNweCByZ2JhKCMwMDAsIDAuMDYpO1xuJGZvcm0tYm94LXNoYWRvdy1mb2N1czogJGZvcm0tYm94LXNoYWRvdywgMCAwIDVweCBhZGp1c3QtY29sb3IoJGFjdGlvbi1jb2xvciwgJGxpZ2h0bmVzczogLTUlLCAkYWxwaGE6IC0wLjMpO1xuXG4vLyBBbmltYXRpb25zXG4kYmFzZS1kdXJhdGlvbjogMTUwbXM7XG4kYmFzZS10aW1pbmc6IGVhc2U7XG5cbkBtaXhpbiBvbWVnYS1yZXNldCgkbnRoKSB7XG4gICY6bnRoLWNoaWxkKCN7JG50aH0pIHsgbWFyZ2luLXJpZ2h0OiBmbGV4LWd1dHRlcigpOyB9XG4gICY6bnRoLWNoaWxkKCN7JG50aH0rMSkgeyBjbGVhcjogbm9uZSB9XG59XG5cbi8vIGJnIGFsbG93cyBzaW1wbHkgYWRkaXRpb24gb2YgYmFja2dyb3VuZCBwb3NpdGlvbiwgc2l6ZSBhbmQgcmVwZWF0LiBEZWZhdWx0cyB0byBjZW50ZXIsIGNvdmVyIGFuZCBuby1yZXBlYXQuXG5AbWl4aW4gYmcoICRwb3NpdGlvbjogY2VudGVyLCAkc2l6ZTogY292ZXIsICRyZXBlYXQ6IG5vLXJlcGVhdCApIHtcblx0YmFja2dyb3VuZC1wb3NpdGlvbjogJHBvc2l0aW9uO1xuXHRiYWNrZ3JvdW5kLXJlcGVhdDogJHJlcGVhdDtcblx0YmFja2dyb3VuZC1zaXplOiAkc2l6ZTtcbn1cblxuQG1peGluIGJnX292ZXJsYXkoICRjb2xvcjogJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDAuNyApIHtcblx0QGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgMXMgZWFzZS1pbi1vdXQpO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0JjphZnRlciB7XG5cdFx0QGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgMXMgZWFzZS1pbi1vdXQpO1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHJnYmEoICRjb2xvciwgJG9wYWNpdHkgKTtcblx0XHRjb250ZW50OiAnJztcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0bGVmdDogMDtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0dG9wOiAwO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHR9XG5cblx0LndyYXAge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6IDEwMDtcbiAgICB9XG59XG4iLCJAaW1wb3J0IFwibmVhdC1oZWxwZXJzXCI7IC8vIG9yIFwiLi4vbmVhdC9uZWF0LWhlbHBlcnNcIiB3aGVuIG5vdCBpbiBSYWlsc1xuXG4vLyBOZWF0IE92ZXJyaWRlc1xuLy8gJGNvbHVtbjogOTBweDtcbi8vICRndXR0ZXI6IDMwcHg7XG4vLyAkZ3JpZC1jb2x1bW5zOiAxMjtcbi8vICRtYXgtd2lkdGg6IDEyMDBweDtcblxuLy8gTmVhdCBCcmVha3BvaW50c1xuJG1lZGl1bS1zY3JlZW46IDYwMHB4O1xuJGxhcmdlLXNjcmVlbjogOTAwcHg7XG5cbiRtZWRpdW0tc2NyZWVuLXVwOiBuZXctYnJlYWtwb2ludChtaW4td2lkdGggJG1lZGl1bS1zY3JlZW4gMTIpO1xuJGxhcmdlLXNjcmVlbi11cDogbmV3LWJyZWFrcG9pbnQobWluLXdpZHRoICRsYXJnZS1zY3JlZW4gMTIpO1xuIiwiLy8gRnVuY3Rpb25zXG5AaW1wb3J0IFwiZnVuY3Rpb25zL3ByaXZhdGVcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvbmV3LWJyZWFrcG9pbnRcIjtcblxuLy8gU2V0dGluZ3NcbkBpbXBvcnQgXCJzZXR0aW5ncy9ncmlkXCI7XG5AaW1wb3J0IFwic2V0dGluZ3MvdmlzdWFsLWdyaWRcIjtcbkBpbXBvcnQgXCJzZXR0aW5ncy9kaXNhYmxlLXdhcm5pbmdzXCI7XG4iLCIvLyBOb3QgZnVuY3Rpb24gZm9yIExpYnNhc3MgY29tcGF0aWJpbGl0eVxuLy8gaHR0cHM6Ly9naXRodWIuY29tL3Nhc3MvbGlic2Fzcy9pc3N1ZXMvMzY4XG5AZnVuY3Rpb24gaXMtbm90KCR2YWx1ZSkge1xuICBAcmV0dXJuIGlmKCR2YWx1ZSwgZmFsc2UsIHRydWUpO1xufVxuXG4vLyBDaGVja3MgaWYgYSBudW1iZXIgaXMgZXZlblxuQGZ1bmN0aW9uIGlzLWV2ZW4oJGludCkge1xuICBAcmV0dXJuICRpbnQgJSAyID09IDA7XG59XG5cbi8vIENoZWNrcyBpZiBhbiBlbGVtZW50IGJlbG9uZ3MgdG8gYSBsaXN0IG9yIG5vdFxuQGZ1bmN0aW9uIGJlbG9uZ3MtdG8oJHRlc3RlZC1pdGVtLCAkbGlzdCkge1xuICBAcmV0dXJuIGlzLW5vdChub3QtYmVsb25ncy10bygkdGVzdGVkLWl0ZW0sICRsaXN0KSk7XG59XG5cbkBmdW5jdGlvbiBub3QtYmVsb25ncy10bygkdGVzdGVkLWl0ZW0sICRsaXN0KSB7XG4gIEByZXR1cm4gaXMtbm90KGluZGV4KCRsaXN0LCAkdGVzdGVkLWl0ZW0pKTtcbn1cblxuLy8gQ29udGFpbnMgZGlzcGxheSB2YWx1ZVxuQGZ1bmN0aW9uIGNvbnRhaW5zLWRpc3BsYXktdmFsdWUoJHF1ZXJ5KSB7XG4gIEByZXR1cm4gYmVsb25ncy10byh0YWJsZSwgJHF1ZXJ5KVxuICAgICAgIG9yIGJlbG9uZ3MtdG8oYmxvY2ssICRxdWVyeSlcbiAgICAgICBvciBiZWxvbmdzLXRvKGlubGluZS1ibG9jaywgJHF1ZXJ5KVxuICAgICAgIG9yIGJlbG9uZ3MtdG8oaW5saW5lLCAkcXVlcnkpO1xufVxuXG4vLyBQYXJzZXMgdGhlIGZpcnN0IGFyZ3VtZW50IG9mIHNwYW4tY29sdW1ucygpXG5AZnVuY3Rpb24gY29udGFpbmVyLXNwYW4oJHNwYW46ICRzcGFuKSB7XG4gIEBpZiBsZW5ndGgoJHNwYW4pID09IDMge1xuICAgICRjb250YWluZXItY29sdW1uczogbnRoKCRzcGFuLCAzKTtcbiAgICBAcmV0dXJuICRjb250YWluZXItY29sdW1ucztcbiAgfSBAZWxzZSBpZiBsZW5ndGgoJHNwYW4pID09IDIge1xuICAgICRjb250YWluZXItY29sdW1uczogbnRoKCRzcGFuLCAyKTtcbiAgICBAcmV0dXJuICRjb250YWluZXItY29sdW1ucztcbiAgfVxuXG4gIEByZXR1cm4gJGdyaWQtY29sdW1ucztcbn1cblxuQGZ1bmN0aW9uIGNvbnRhaW5lci1zaGlmdCgkc2hpZnQ6ICRzaGlmdCkge1xuICAkcGFyZW50LWNvbHVtbnM6ICRncmlkLWNvbHVtbnMgIWRlZmF1bHQgIWdsb2JhbDtcblxuICBAaWYgbGVuZ3RoKCRzaGlmdCkgPT0gMyB7XG4gICAgJGNvbnRhaW5lci1jb2x1bW5zOiBudGgoJHNoaWZ0LCAzKTtcbiAgICBAcmV0dXJuICRjb250YWluZXItY29sdW1ucztcbiAgfSBAZWxzZSBpZiBsZW5ndGgoJHNoaWZ0KSA9PSAyIHtcbiAgICAkY29udGFpbmVyLWNvbHVtbnM6IG50aCgkc2hpZnQsIDIpO1xuICAgIEByZXR1cm4gJGNvbnRhaW5lci1jb2x1bW5zO1xuICB9XG5cbiAgQHJldHVybiAkcGFyZW50LWNvbHVtbnM7XG59XG5cbi8vIEdlbmVyYXRlcyBhIHN0cmlwZWQgYmFja2dyb3VuZFxuQGZ1bmN0aW9uIGdyYWRpZW50LXN0b3BzKCRncmlkLWNvbHVtbnMsICRjb2xvcjogJHZpc3VhbC1ncmlkLWNvbG9yKSB7XG4gICR0cmFuc3BhcmVudDogdHJhbnNwYXJlbnQ7XG5cbiAgJGNvbHVtbi13aWR0aDogZmxleC1ncmlkKDEsICRncmlkLWNvbHVtbnMpO1xuICAkZ3V0dGVyLXdpZHRoOiBmbGV4LWd1dHRlcigkZ3JpZC1jb2x1bW5zKTtcbiAgJGNvbHVtbi1vZmZzZXQ6ICRjb2x1bW4td2lkdGg7XG5cbiAgJHZhbHVlczogKCR0cmFuc3BhcmVudCAwLCAkY29sb3IgMCk7XG5cbiAgQGZvciAkaSBmcm9tIDEgdG8gJGdyaWQtY29sdW1ucyoyIHtcbiAgICBAaWYgaXMtZXZlbigkaSkge1xuICAgICAgJHZhbHVlczogYXBwZW5kKCR2YWx1ZXMsICR0cmFuc3BhcmVudCAkY29sdW1uLW9mZnNldCwgY29tbWEpO1xuICAgICAgJHZhbHVlczogYXBwZW5kKCR2YWx1ZXMsICRjb2xvciAkY29sdW1uLW9mZnNldCwgY29tbWEpO1xuICAgICAgJGNvbHVtbi1vZmZzZXQ6ICRjb2x1bW4tb2Zmc2V0ICsgJGNvbHVtbi13aWR0aDtcbiAgICB9IEBlbHNlIHtcbiAgICAgICR2YWx1ZXM6IGFwcGVuZCgkdmFsdWVzLCAkY29sb3IgJGNvbHVtbi1vZmZzZXQsIGNvbW1hKTtcbiAgICAgICR2YWx1ZXM6IGFwcGVuZCgkdmFsdWVzLCAkdHJhbnNwYXJlbnQgJGNvbHVtbi1vZmZzZXQsIGNvbW1hKTtcbiAgICAgICRjb2x1bW4tb2Zmc2V0OiAkY29sdW1uLW9mZnNldCArICRndXR0ZXItd2lkdGg7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkdmFsdWVzO1xufVxuXG4vLyBMYXlvdXQgZGlyZWN0aW9uXG5AZnVuY3Rpb24gZ2V0LWRpcmVjdGlvbigkbGF5b3V0LCAkZGVmYXVsdCkge1xuICAkZGlyZWN0aW9uOiBudWxsO1xuXG4gIEBpZiB0by11cHBlci1jYXNlKCRsYXlvdXQpID09IFwiTFRSXCIgb3IgdG8tdXBwZXItY2FzZSgkbGF5b3V0KSA9PSBcIlJUTFwiIHtcbiAgICAkZGlyZWN0aW9uOiBkaXJlY3Rpb24tZnJvbS1sYXlvdXQoJGxheW91dCk7XG4gIH0gQGVsc2Uge1xuICAgICRkaXJlY3Rpb246IGRpcmVjdGlvbi1mcm9tLWxheW91dCgkZGVmYXVsdCk7XG4gIH1cblxuICBAcmV0dXJuICRkaXJlY3Rpb247XG59XG5cbkBmdW5jdGlvbiBkaXJlY3Rpb24tZnJvbS1sYXlvdXQoJGxheW91dCkge1xuICAkZGlyZWN0aW9uOiBudWxsO1xuXG4gIEBpZiB0by11cHBlci1jYXNlKCRsYXlvdXQpID09IFwiTFRSXCIge1xuICAgICRkaXJlY3Rpb246IHJpZ2h0O1xuICB9IEBlbHNlIHtcbiAgICAkZGlyZWN0aW9uOiBsZWZ0O1xuICB9XG5cbiAgQHJldHVybiAkZGlyZWN0aW9uO1xufVxuXG5AZnVuY3Rpb24gZ2V0LW9wcG9zaXRlLWRpcmVjdGlvbigkZGlyZWN0aW9uKSB7XG4gICRvcHBvc2l0ZS1kaXJlY3Rpb246IGxlZnQ7XG5cbiAgQGlmICRkaXJlY3Rpb24gPT0gXCJsZWZ0XCIge1xuICAgICRvcHBvc2l0ZS1kaXJlY3Rpb246IHJpZ2h0O1xuICB9XG5cbiAgQHJldHVybiAkb3Bwb3NpdGUtZGlyZWN0aW9uO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUmV0dXJucyBhIG1lZGlhIGNvbnRleHQgKG1lZGlhIHF1ZXJ5IC8gZ3JpZCBjb250ZXh0KSB0aGF0IGNhbiBiZSBzdG9yZWQgaW4gYSB2YXJpYWJsZSBhbmQgcGFzc2VkIHRvIGBtZWRpYSgpYCBhcyBhIHNpbmdsZS1rZXl3b3JkIGFyZ3VtZW50LiBNZWRpYSBjb250ZXh0cyBkZWZpbmVkIHVzaW5nIGBuZXctYnJlYWtwb2ludGAgYXJlIHVzZWQgYnkgdGhlIHZpc3VhbCBncmlkLCBhcyBsb25nIGFzIHRoZXkgYXJlIGRlZmluZWQgYmVmb3JlIGltcG9ydGluZyBOZWF0LlxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkcXVlcnlcbi8vLyAgIEEgbGlzdCBvZiBtZWRpYSBxdWVyeSBmZWF0dXJlcyBhbmQgdmFsdWVzLiBFYWNoIGAkZmVhdHVyZWAgc2hvdWxkIGhhdmUgYSBjb3JyZXNwb25kaW5nIGAkdmFsdWVgLlxuLy8vXG4vLy8gICBJZiB0aGVyZSBpcyBvbmx5IGEgc2luZ2xlIGAkdmFsdWVgIGluIGAkcXVlcnlgLCBgJGRlZmF1bHQtZmVhdHVyZWAgaXMgZ29pbmcgdG8gYmUgdXNlZC5cbi8vL1xuLy8vICAgVGhlIG51bWJlciBvZiB0b3RhbCBjb2x1bW5zIGluIHRoZSBncmlkIGNhbiBiZSBzZXQgYnkgcGFzc2luZyBgJGNvbHVtbnNgIGF0IHRoZSBlbmQgb2YgdGhlIGxpc3QgKG92ZXJyaWRlcyBgJHRvdGFsLWNvbHVtbnNgKS4gRm9yIGEgbGlzdCBvZiB2YWxpZCB2YWx1ZXMgZm9yIGAkZmVhdHVyZWAsIGNsaWNrIFtoZXJlXShodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MzLW1lZGlhcXVlcmllcy8jbWVkaWExKS5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyICh1bml0bGVzcyl9ICR0b3RhbC1jb2x1bW5zIFskZ3JpZC1jb2x1bW5zXVxuLy8vICAgLSBOdW1iZXIgb2YgY29sdW1ucyB0byB1c2UgaW4gdGhlIG5ldyBncmlkIGNvbnRleHQuIENhbiBiZSBzZXQgYXMgYSBzaG9ydGhhbmQgaW4gdGhlIGZpcnN0IHBhcmFtZXRlci5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgJG1vYmlsZTogbmV3LWJyZWFrcG9pbnQobWF4LXdpZHRoIDQ4MHB4IDQpO1xuLy8vXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIG1lZGlhKCRtb2JpbGUpIHtcbi8vLyAgICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoNCk7XG4vLy8gICAgIH1cbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4vLy8gICAgIC5lbGVtZW50IHtcbi8vLyAgICAgICBkaXNwbGF5OiBibG9jaztcbi8vLyAgICAgICBmbG9hdDogbGVmdDtcbi8vLyAgICAgICBtYXJnaW4tcmlnaHQ6IDcuNDIyOTclO1xuLy8vICAgICAgIHdpZHRoOiAxMDAlO1xuLy8vICAgICB9XG4vLy8gICAgIC5lbGVtZW50Omxhc3QtY2hpbGQge1xuLy8vICAgICAgIG1hcmdpbi1yaWdodDogMDtcbi8vLyAgICAgfVxuLy8vICAgfVxuXG5AZnVuY3Rpb24gbmV3LWJyZWFrcG9pbnQoJHF1ZXJ5OiAkZmVhdHVyZSAkdmFsdWUgJGNvbHVtbnMsICR0b3RhbC1jb2x1bW5zOiAkZ3JpZC1jb2x1bW5zKSB7XG4gIEBpZiBsZW5ndGgoJHF1ZXJ5KSA9PSAxIHtcbiAgICAkcXVlcnk6ICRkZWZhdWx0LWZlYXR1cmUgbnRoKCRxdWVyeSwgMSkgJHRvdGFsLWNvbHVtbnM7XG4gIH0gQGVsc2UgaWYgaXMtZXZlbihsZW5ndGgoJHF1ZXJ5KSkge1xuICAgICRxdWVyeTogYXBwZW5kKCRxdWVyeSwgJHRvdGFsLWNvbHVtbnMpO1xuICB9XG5cbiAgQGlmIGlzLW5vdChiZWxvbmdzLXRvKCRxdWVyeSwgJHZpc3VhbC1ncmlkLWJyZWFrcG9pbnRzKSkge1xuICAgICR2aXN1YWwtZ3JpZC1icmVha3BvaW50czogYXBwZW5kKCR2aXN1YWwtZ3JpZC1icmVha3BvaW50cywgJHF1ZXJ5LCBjb21tYSkgIWdsb2JhbDtcbiAgfVxuXG4gIEByZXR1cm4gJHF1ZXJ5O1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gU2V0cyB0aGUgcmVsYXRpdmUgd2lkdGggb2YgYSBzaW5nbGUgZ3JpZCBjb2x1bW4uIFRoZSB1bml0IHVzZWQgc2hvdWxkIGJlIHRoZSBzYW1lIG9uZSB1c2VkIHRvIGRlZmluZSBgJGd1dHRlcmAuIFRvIGxlYXJuIG1vcmUgYWJvdXQgbW9kdWxhci1zY2FsZSgpIHNlZSBbQm91cmJvbiBkb2NzXShodHRwOi8vYm91cmJvbi5pby9kb2NzLyNtb2R1bGFyLXNjYWxlKS4gU2V0IHdpdGggYSBgIWdsb2JhbGAgZmxhZy5cbi8vL1xuLy8vIEB0eXBlIE51bWJlciAoVW5pdClcblxuJGNvbHVtbjogbW9kdWxhci1zY2FsZSgzLCAxZW0sICRnb2xkZW4pICFkZWZhdWx0O1xuXG4vLy8gU2V0cyB0aGUgcmVsYXRpdmUgd2lkdGggb2YgYSBzaW5nbGUgZ3JpZCBndXR0ZXIuIFRoZSB1bml0IHVzZWQgc2hvdWxkIGJlIHRoZSBzYW1lIG9uZSB1c2VkIHRvIGRlZmluZSBgJGNvbHVtbmAuIFRvIGxlYXJuIG1vcmUgYWJvdXQgbW9kdWxhci1zY2FsZSgpIHNlZSBbQm91cmJvbiBkb2NzXShodHRwOi8vYm91cmJvbi5pby9kb2NzLyNtb2R1bGFyLXNjYWxlKS4gU2V0IHdpdGggdGhlIGAhZ2xvYmFsYCBmbGFnLlxuLy8vXG4vLy8gQHR5cGUgTnVtYmVyIChVbml0KVxuXG4kZ3V0dGVyOiBtb2R1bGFyLXNjYWxlKDEsIDFlbSwgJGdvbGRlbikgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIHRoZSB0b3RhbCBudW1iZXIgb2YgY29sdW1ucyBpbiB0aGUgZ3JpZC4gSXRzIHZhbHVlIGNhbiBiZSBvdmVycmlkZGVuIGluc2lkZSBhIG1lZGlhIHF1ZXJ5IHVzaW5nIHRoZSBgbWVkaWEoKWAgbWl4aW4uIFNldCB3aXRoIHRoZSBgIWdsb2JhbGAgZmxhZy5cbi8vL1xuLy8vIEB0eXBlIE51bWJlciAoVW5pdGxlc3MpXG5cbiRncmlkLWNvbHVtbnM6IDEyICFkZWZhdWx0O1xuXG4vLy8gU2V0cyB0aGUgbWF4LXdpZHRoIHByb3BlcnR5IG9mIHRoZSBlbGVtZW50IHRoYXQgaW5jbHVkZXMgYG91dGVyLWNvbnRhaW5lcigpYC4gVG8gbGVhcm4gbW9yZSBhYm91dCBgZW0oKWAgc2VlIFtCb3VyYm9uIGRvY3NdKGh0dHA6Ly9ib3VyYm9uLmlvL2RvY3MvI3B4LXRvLWVtKS4gU2V0IHdpdGggdGhlIGAhZ2xvYmFsYCBmbGFnLlxuLy8vXG4vLy8gQHR5cGUgTnVtYmVyIChVbml0KVxuLy8vXG4kbWF4LXdpZHRoOiBlbSgxMDg4KSAhZGVmYXVsdDtcblxuLy8vIFdoZW4gc2V0IHRvIHRydWUsIGl0IHNldHMgdGhlIGJveC1zaXppbmcgcHJvcGVydHkgb2YgYWxsIGVsZW1lbnRzIHRvIGBib3JkZXItYm94YC4gU2V0IHdpdGggYSBgIWdsb2JhbGAgZmxhZy5cbi8vL1xuLy8vIEB0eXBlIEJvb2xcbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIGh0bWwge1xuLy8vICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG4vLy9cbi8vLyAgICosICo6OmFmdGVyLCAqOjpiZWZvcmUge1xuLy8vICAgICBib3gtc2l6aW5nOiBpbmhlcml0O1xuLy8vICAgfVxuXG4kYm9yZGVyLWJveC1zaXppbmc6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIHRoZSBkZWZhdWx0IFttZWRpYSBmZWF0dXJlXShodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MzLW1lZGlhcXVlcmllcy8jbWVkaWEpIHRoYXQgYG1lZGlhKClgIGFuZCBgbmV3LWJyZWFrcG9pbnQoKWAgcmV2ZXJ0IHRvIHdoZW4gb25seSBhIGJyZWFrcG9pbnQgdmFsdWUgaXMgcGFzc2VkLiBTZXQgd2l0aCBhIGAhZ2xvYmFsYCBmbGFnLlxuLy8vXG4vLy8gQHR5cGUgU3RyaW5nXG5cbiRkZWZhdWx0LWZlYXR1cmU6IG1pbi13aWR0aDsgLy8gRGVmYXVsdCBAbWVkaWEgZmVhdHVyZSBmb3IgdGhlIGJyZWFrcG9pbnQoKSBtaXhpblxuXG4vLy9TZXRzIHRoZSBkZWZhdWx0IGxheW91dCBkaXJlY3Rpb24gb2YgdGhlIGdyaWQuIENhbiBiZSBgTFRSYCBvciBgUlRMYC4gU2V0IHdpdGggYSBgIWdsb2JhbGAgZmxhZy5cbi8vL1xuLy8vQHR5cGUgU3RyaW5nXG5cbiRkZWZhdWx0LWxheW91dC1kaXJlY3Rpb246IExUUiAhZGVmYXVsdDtcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIERpc3BsYXlzIHRoZSB2aXN1YWwgZ3JpZCB3aGVuIHNldCB0byB0cnVlLiBUaGUgb3ZlcmxhaWQgZ3JpZCBtYXkgYmUgZmV3IHBpeGVscyBvZmYgZGVwZW5kaW5nIG9uIHRoZSBicm93c2VyJ3MgcmVuZGVyaW5nIGVuZ2luZSBhbmQgcGl4ZWwgcm91bmRpbmcgYWxnb3JpdGhtLiBTZXQgd2l0aCB0aGUgYCFnbG9iYWxgIGZsYWcuXG4vLy9cbi8vLyBAdHlwZSBCb29sXG5cbiR2aXN1YWwtZ3JpZDogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIHRoZSB2aXN1YWwgZ3JpZCBjb2xvci4gU2V0IHdpdGggYCFnbG9iYWxgIGZsYWcuXG4vLy9cbi8vLyBAdHlwZSBDb2xvclxuXG4kdmlzdWFsLWdyaWQtY29sb3I6ICNlZWUgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIHRoZSBgei1pbmRleGAgcHJvcGVydHkgb2YgdGhlIHZpc3VhbCBncmlkLiBDYW4gYmUgYGJhY2tgIChiZWhpbmQgY29udGVudCkgb3IgYGZyb250YCAoaW4gZnJvbnQgb2YgY29udGVudCkuIFNldCB3aXRoIGAhZ2xvYmFsYCBmbGFnLlxuLy8vXG4vLy8gQHR5cGUgU3RyaW5nXG5cbiR2aXN1YWwtZ3JpZC1pbmRleDogYmFjayAhZGVmYXVsdDtcblxuLy8vIFNldHMgdGhlIG9wYWNpdHkgcHJvcGVydHkgb2YgdGhlIHZpc3VhbCBncmlkLiBTZXQgd2l0aCBgIWdsb2JhbGAgZmxhZy5cbi8vL1xuLy8vIEB0eXBlIE51bWJlciAodW5pdGxlc3MpXG5cbiR2aXN1YWwtZ3JpZC1vcGFjaXR5OiAwLjQgIWRlZmF1bHQ7XG5cbiR2aXN1YWwtZ3JpZC1icmVha3BvaW50czogKCkgIWRlZmF1bHQ7XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBEaXNhYmxlIGFsbCBkZXByZWNhdGlvbiB3YXJuaW5ncy4gRGVmYXVsdHMgdG8gYGZhbHNlYC4gU2V0IHdpdGggYSBgIWdsb2JhbGAgZmxhZy5cbi8vL1xuLy8vIEB0eXBlIEJvb2xcblxuJGRpc2FibGUtd2FybmluZ3M6IGZhbHNlICFkZWZhdWx0O1xuXG5AbWl4aW4gLW5lYXQtd2FybigkbWVzc2FnZSkge1xuICBAaWYgJGRpc2FibGUtd2FybmluZ3MgPT0gZmFsc2Uge1xuICAgIEB3YXJuIFwiI3skbWVzc2FnZX1cIjtcbiAgfVxufVxuIiwiI3skYWxsLWJ1dHRvbnN9LFxuLmJ1dHRvbixcbi5hZGphY2VudC1lbnRyeS1wYWdpbmF0aW9uIC5wYWdpbmF0aW9uLXByZXZpb3VzIGEgLFxuLmFkamFjZW50LWVudHJ5LXBhZ2luYXRpb24gLnBhZ2luYXRpb24tbmV4dCBhIHtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRhY3Rpb24tY29sb3I7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6ICRiYXNlLWJvcmRlci1yYWRpdXM7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmb250LWZhbWlseTogJGJhc2UtZm9udC1mYW1pbHk7XG4gICAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemU7XG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBwYWRkaW5nOiAkc21hbGwtc3BhY2luZyAkYmFzZS1zcGFjaW5nO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yICRiYXNlLWR1cmF0aW9uICRiYXNlLXRpbWluZztcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBzaGFkZSgkYWN0aW9uLWNvbG9yLCAyMCUpO1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICB9XG5cbiAgICAmOmRpc2FibGVkIHtcbiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGFjdGlvbi1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGEge1xuICAgICAgICBjb2xvcjogd2hpdGU7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJmaWVsZHNldCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IDA7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbn1cblxubGVnZW5kIHtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luLWJvdHRvbTogJHNtYWxsLXNwYWNpbmcgLyAyO1xuICBwYWRkaW5nOiAwO1xufVxuXG5sYWJlbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXdlaWdodDogNjAwO1xuICBtYXJnaW4tYm90dG9tOiAkc21hbGwtc3BhY2luZyAvIDI7XG59XG5cbmlucHV0LFxuc2VsZWN0IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtZmFtaWx5OiAkYmFzZS1mb250LWZhbWlseTtcbiAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemU7XG59XG5cbiN7JGFsbC10ZXh0LWlucHV0c30sXG5zZWxlY3RbbXVsdGlwbGVdIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJhc2UtYmFja2dyb3VuZC1jb2xvcjtcbiAgYm9yZGVyOiAkYmFzZS1ib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgYm94LXNoYWRvdzogJGZvcm0tYm94LXNoYWRvdztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgZm9udC1mYW1pbHk6ICRiYXNlLWZvbnQtZmFtaWx5O1xuICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZTtcbiAgbWFyZ2luLWJvdHRvbTogJHNtYWxsLXNwYWNpbmc7XG4gIHBhZGRpbmc6ICRiYXNlLXNwYWNpbmcgLyAzO1xuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgJGJhc2UtZHVyYXRpb24gJGJhc2UtdGltaW5nO1xuICB3aWR0aDogMTAwJTtcblxuICAmOmhvdmVyIHtcbiAgICBib3JkZXItY29sb3I6IHNoYWRlKCRiYXNlLWJvcmRlci1jb2xvciwgMjAlKTtcbiAgfVxuXG4gICY6Zm9jdXMge1xuICAgIGJvcmRlci1jb2xvcjogJGFjdGlvbi1jb2xvcjtcbiAgICBib3gtc2hhZG93OiAkZm9ybS1ib3gtc2hhZG93LWZvY3VzO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gIH1cblxuICAmOmRpc2FibGVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBzaGFkZSgkYmFzZS1iYWNrZ3JvdW5kLWNvbG9yLCA1JSk7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICY6aG92ZXIge1xuICAgICAgYm9yZGVyOiAkYmFzZS1ib3JkZXI7XG4gICAgfVxuICB9XG59XG5cbnRleHRhcmVhIHtcbiAgcmVzaXplOiB2ZXJ0aWNhbDtcbn1cblxuW3R5cGU9XCJzZWFyY2hcIl0ge1xuICBhcHBlYXJhbmNlOiBub25lO1xufVxuXG5bdHlwZT1cImNoZWNrYm94XCJdLFxuW3R5cGU9XCJyYWRpb1wiXSB7XG4gIGRpc3BsYXk6IGlubGluZTtcbiAgbWFyZ2luLXJpZ2h0OiAkc21hbGwtc3BhY2luZyAvIDI7XG59XG5cblt0eXBlPVwiZmlsZVwiXSB7XG4gIG1hcmdpbi1ib3R0b206ICRzbWFsbC1zcGFjaW5nO1xuICB3aWR0aDogMTAwJTtcbn1cblxuc2VsZWN0IHtcbiAgbWFyZ2luLWJvdHRvbTogJGJhc2Utc3BhY2luZztcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICB3aWR0aDogYXV0bztcbn1cbiIsInVsLFxub2wge1xuICAvLyBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIGxpc3Qtc3R5bGUtcG9zaXRpb246IGluc2lkZTtcbiAgbWFyZ2luOiAwO1xuICBtYXJnaW4tYm90dG9tOiAkc21hbGwtc3BhY2luZztcbiAgcGFkZGluZzogMDtcblxuICAmLm1lbnUge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuZGwge1xuICBtYXJnaW4tYm90dG9tOiAkc21hbGwtc3BhY2luZztcblxuICBkdCB7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBtYXJnaW4tdG9wOiAkc21hbGwtc3BhY2luZztcbiAgfVxuXG4gIGRkIHtcbiAgICBtYXJnaW46IDA7XG4gIH1cbn1cbiIsInRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgbWFyZ2luOiAkc21hbGwtc3BhY2luZyAwO1xuICB0YWJsZS1sYXlvdXQ6IGZpeGVkO1xuICB3aWR0aDogMTAwJTtcbn1cblxudGgge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgc2hhZGUoJGJhc2UtYm9yZGVyLWNvbG9yLCAyNSUpO1xuICBmb250LXdlaWdodDogNjAwO1xuICBwYWRkaW5nOiAkc21hbGwtc3BhY2luZyAwO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG50ZCB7XG4gIGJvcmRlci1ib3R0b206ICRiYXNlLWJvcmRlcjtcbiAgcGFkZGluZzogJHNtYWxsLXNwYWNpbmcgMDtcbn1cblxudHIsXG50ZCxcbnRoIHtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbiIsImJvZHkge1xuICBjb2xvcjogJGJhc2UtZm9udC1jb2xvcjtcbiAgZm9udC1mYW1pbHk6ICRiYXNlLWZvbnQtZmFtaWx5O1xuICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGluZS1oZWlnaHQ6ICRiYXNlLWxpbmUtaGVpZ2h0O1xufVxuXG5oMSxcbmgyLFxuaDMsXG5oNCxcbmg1LFxuaDYge1xuICBmb250LWZhbWlseTogJGhlYWRpbmctZm9udC1mYW1pbHk7XG4gIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplO1xuICBmb250LXdlaWdodDogMjAwO1xuICBsaW5lLWhlaWdodDogJGhlYWRpbmctbGluZS1oZWlnaHQ7XG4gIG1hcmdpbjogMCAwICRzbWFsbC1zcGFjaW5nO1xufVxuXG5oMSB7XG4gIGZvbnQtc2l6ZTogJGgxLWZvbnQtc2l6ZTtcbn1cblxuaDIge1xuICBmb250LXNpemU6ICRoMi1mb250LXNpemU7XG59XG5cbmgzIHtcbiAgZm9udC1zaXplOiAkaDMtZm9udC1zaXplO1xufVxuXG5oNCB7XG4gIGZvbnQtc2l6ZTogJGg0LWZvbnQtc2l6ZTtcbn1cblxuaDUge1xuICBmb250LXNpemU6ICRoNS1mb250LXNpemU7XG59XG5cbmg2IHtcbiAgZm9udC1zaXplOiAkaDYtZm9udC1zaXplO1xufVxuXG4ubWVnYS1oZWFkZXIge1xuICAgIGZvbnQtc2l6ZTogNjBweDtcbn1cblxucCB7XG4gIG1hcmdpbjogMCAwICRzbWFsbC1zcGFjaW5nO1xuXG4gICsgaDEsXG4gICsgaDIsXG4gICsgaDMsXG4gICsgaDQsXG4gICsgaDUsXG4gICsgaDYge1xuICAgICAgbWFyZ2luLXRvcDogJHNtYWxsLXNwYWNpbmc7XG4gIH1cblxuICA+IGEgPi5idXR0b24sXG4gID4gYS5idXR0b24ge1xuICAgICAgbWFyZ2luOiAkc21hbGwtc3BhY2luZyAwO1xuICB9XG59XG5cbmEge1xuICBjb2xvcjogJGFjdGlvbi1jb2xvcjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0cmFuc2l0aW9uOiBjb2xvciAkYmFzZS1kdXJhdGlvbiAkYmFzZS10aW1pbmc7XG5cbiAgJjphY3RpdmUsXG4gICY6Zm9jdXMsXG4gICY6aG92ZXIge1xuICAgIGNvbG9yOiBzaGFkZSgkYWN0aW9uLWNvbG9yLCAyNSUpO1xuICB9XG59XG5cbmhyIHtcbiAgYm9yZGVyLWJvdHRvbTogJGJhc2UtYm9yZGVyO1xuICBib3JkZXItbGVmdDogMDtcbiAgYm9yZGVyLXJpZ2h0OiAwO1xuICBib3JkZXItdG9wOiAwO1xuICBtYXJnaW46ICRiYXNlLXNwYWNpbmcgMDtcbn1cblxuaW1nLFxucGljdHVyZSB7XG4gIG1hcmdpbjogMDtcbiAgbWF4LXdpZHRoOiAxMDAlO1xufVxuIiwiLy8gTmVhdCAxLjcuMlxuLy8gaHR0cDovL25lYXQuYm91cmJvbi5pb1xuLy8gQ29weXJpZ2h0IDIwMTItMjAxNSB0aG91Z2h0Ym90LCBpbmMuXG4vLyBNSVQgTGljZW5zZVxuXG4vLyBIZWxwZXJzXG5AaW1wb3J0IFwibmVhdC1oZWxwZXJzXCI7XG5cbi8vIEdyaWRcbkBpbXBvcnQgXCJncmlkL3ByaXZhdGVcIjtcbkBpbXBvcnQgXCJncmlkL2JveC1zaXppbmdcIjtcbkBpbXBvcnQgXCJncmlkL29tZWdhXCI7XG5AaW1wb3J0IFwiZ3JpZC9vdXRlci1jb250YWluZXJcIjtcbkBpbXBvcnQgXCJncmlkL3NwYW4tY29sdW1uc1wiO1xuQGltcG9ydCBcImdyaWQvcm93XCI7XG5AaW1wb3J0IFwiZ3JpZC9zaGlmdFwiO1xuQGltcG9ydCBcImdyaWQvcGFkXCI7XG5AaW1wb3J0IFwiZ3JpZC9maWxsLXBhcmVudFwiO1xuQGltcG9ydCBcImdyaWQvbWVkaWFcIjtcbkBpbXBvcnQgXCJncmlkL3RvLWRlcHJlY2F0ZVwiO1xuQGltcG9ydCBcImdyaWQvdmlzdWFsLWdyaWRcIjtcbkBpbXBvcnQgXCJncmlkL2Rpc3BsYXktY29udGV4dFwiO1xuQGltcG9ydCBcImdyaWQvZGlyZWN0aW9uLWNvbnRleHRcIjtcbiIsIiRwYXJlbnQtY29sdW1uczogJGdyaWQtY29sdW1ucyAhZGVmYXVsdDtcbiRmZy1jb2x1bW46ICRjb2x1bW47XG4kZmctZ3V0dGVyOiAkZ3V0dGVyO1xuJGZnLW1heC1jb2x1bW5zOiAkZ3JpZC1jb2x1bW5zO1xuJGNvbnRhaW5lci1kaXNwbGF5LXRhYmxlOiBmYWxzZSAhZGVmYXVsdDtcbiRsYXlvdXQtZGlyZWN0aW9uOiBMVFIgIWRlZmF1bHQ7XG5cbkBmdW5jdGlvbiBmbGV4LWdyaWQoJGNvbHVtbnMsICRjb250YWluZXItY29sdW1uczogJGZnLW1heC1jb2x1bW5zKSB7XG4gICR3aWR0aDogJGNvbHVtbnMgKiAkZmctY29sdW1uICsgKCRjb2x1bW5zIC0gMSkgKiAkZmctZ3V0dGVyO1xuICAkY29udGFpbmVyLXdpZHRoOiAkY29udGFpbmVyLWNvbHVtbnMgKiAkZmctY29sdW1uICsgKCRjb250YWluZXItY29sdW1ucyAtIDEpICogJGZnLWd1dHRlcjtcbiAgQHJldHVybiBwZXJjZW50YWdlKCR3aWR0aCAvICRjb250YWluZXItd2lkdGgpO1xufVxuXG5AZnVuY3Rpb24gZmxleC1ndXR0ZXIoJGNvbnRhaW5lci1jb2x1bW5zOiAkZmctbWF4LWNvbHVtbnMsICRndXR0ZXI6ICRmZy1ndXR0ZXIpIHtcbiAgJGNvbnRhaW5lci13aWR0aDogJGNvbnRhaW5lci1jb2x1bW5zICogJGZnLWNvbHVtbiArICgkY29udGFpbmVyLWNvbHVtbnMgLSAxKSAqICRmZy1ndXR0ZXI7XG4gIEByZXR1cm4gcGVyY2VudGFnZSgkZ3V0dGVyIC8gJGNvbnRhaW5lci13aWR0aCk7XG59XG5cbkBmdW5jdGlvbiBncmlkLXdpZHRoKCRuKSB7XG4gIEByZXR1cm4gJG4gKiAkZ3ctY29sdW1uICsgKCRuIC0gMSkgKiAkZ3ctZ3V0dGVyO1xufVxuXG5AZnVuY3Rpb24gZ2V0LXBhcmVudC1jb2x1bW5zKCRjb2x1bW5zKSB7XG4gIEBpZiAkY29sdW1ucyAhPSAkZ3JpZC1jb2x1bW5zIHtcbiAgICAkcGFyZW50LWNvbHVtbnM6ICRjb2x1bW5zICFnbG9iYWw7XG4gIH0gQGVsc2Uge1xuICAgICRwYXJlbnQtY29sdW1uczogJGdyaWQtY29sdW1ucyAhZ2xvYmFsO1xuICB9XG5cbiAgQHJldHVybiAkcGFyZW50LWNvbHVtbnM7XG59XG5cbkBmdW5jdGlvbiBpcy1kaXNwbGF5LXRhYmxlKCRjb250YWluZXItaXMtZGlzcGxheS10YWJsZSwgJGRpc3BsYXkpIHtcbiAgQHJldHVybiAkY29udGFpbmVyLWlzLWRpc3BsYXktdGFibGUgPT0gdHJ1ZSBvciAkZGlzcGxheSA9PSB0YWJsZTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuQGlmICRib3JkZXItYm94LXNpemluZyA9PSB0cnVlIHtcbiAgaHRtbCB7IC8vIGh0dHA6Ly9iaXQubHkvMXFrMnRWUlxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIH1cblxuICAqIHtcbiAgICAmLFxuICAgICY6OmFmdGVyLFxuICAgICY6OmJlZm9yZSB7XG4gICAgICBib3gtc2l6aW5nOiBpbmhlcml0O1xuICAgIH1cbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUmVtb3ZlcyB0aGUgZWxlbWVudCdzIGd1dHRlciBtYXJnaW4sIHJlZ2FyZGxlc3Mgb2YgaXRzIHBvc2l0aW9uIGluIHRoZSBncmlkIGhpZXJhcmNoeSBvciBkaXNwbGF5IHByb3BlcnR5LiBJdCBjYW4gdGFyZ2V0IGEgc3BlY2lmaWMgZWxlbWVudCwgb3IgZXZlcnkgYG50aC1jaGlsZGAgb2NjdXJyZW5jZS4gV29ya3Mgb25seSB3aXRoIGBibG9ja2AgbGF5b3V0cy5cbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHF1ZXJ5IFtibG9ja11cbi8vLyAgIExpc3Qgb2YgYXJndW1lbnRzLiBTdXBwb3J0ZWQgYXJndW1lbnRzIGFyZSBgbnRoLWNoaWxkYCBzZWxlY3RvcnMgKHRhcmdldHMgYSBzcGVjaWZpYyBwc2V1ZG8gZWxlbWVudCkgYW5kIGBhdXRvYCAodGFyZ2V0cyBgbGFzdC1jaGlsZGApLlxuLy8vXG4vLy8gICBXaGVuIHBhc3NlZCBhbiBgbnRoLWNoaWxkYCBhcmd1bWVudCBvZiB0eXBlIGAqbmAgd2l0aCBgYmxvY2tgIGRpc3BsYXksIHRoZSBvbWVnYSBtaXhpbiBhdXRvbWF0aWNhbGx5IGFkZHMgYSBjbGVhciB0byB0aGUgYCpuKzFgIHRoIGVsZW1lbnQuIE5vdGUgdGhhdCBjb21wb3NpdGUgYXJndW1lbnRzIHN1Y2ggYXMgYDJuKzFgIGRvIG5vdCBzdXBwb3J0IHRoaXMgZmVhdHVyZS5cbi8vL1xuLy8vICAgKipEZXByZWNhdGlvbiB3YXJuaW5nKio6IFRoZSBvbWVnYSBtaXhpbiB3aWxsIG5vIGxvbmdlciB0YWtlIGEgYCRkaXJlY3Rpb25gIGFyZ3VtZW50LiBUbyBjaGFuZ2UgdGhlIGxheW91dCBkaXJlY3Rpb24sIHVzZSBgcm93KCRkaXJlY3Rpb24pYCBvciBzZXQgYCRkZWZhdWx0LWxheW91dC1kaXJlY3Rpb25gIGluc3RlYWQuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgb21lZ2E7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5udGgtZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIG9tZWdhKDRuKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuLy8vICAgfVxuLy8vXG4vLy8gICAubnRoLWVsZW1lbnQ6bnRoLWNoaWxkKDRuKSB7XG4vLy8gICAgIG1hcmdpbi1yaWdodDogMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLm50aC1lbGVtZW50Om50aC1jaGlsZCg0bisxKSB7XG4vLy8gICAgIGNsZWFyOiBsZWZ0O1xuLy8vICAgfVxuXG5AbWl4aW4gb21lZ2EoJHF1ZXJ5OiBibG9jaywgJGRpcmVjdGlvbjogZGVmYXVsdCkge1xuICAkdGFibGU6IGJlbG9uZ3MtdG8odGFibGUsICRxdWVyeSk7XG4gICRhdXRvOiBiZWxvbmdzLXRvKGF1dG8sICRxdWVyeSk7XG5cbiAgQGlmICRkaXJlY3Rpb24gIT0gZGVmYXVsdCB7XG4gICAgQGluY2x1ZGUgLW5lYXQtd2FybihcIlRoZSBvbWVnYSBtaXhpbiB3aWxsIG5vIGxvbmdlciB0YWtlIGEgJGRpcmVjdGlvbiBhcmd1bWVudC4gVG8gY2hhbmdlIHRoZSBsYXlvdXQgZGlyZWN0aW9uLCB1c2UgdGhlIGRpcmVjdGlvbigpey4uLn0gbWl4aW4uXCIpO1xuICB9IEBlbHNlIHtcbiAgICAkZGlyZWN0aW9uOiBnZXQtZGlyZWN0aW9uKCRsYXlvdXQtZGlyZWN0aW9uLCAkZGVmYXVsdC1sYXlvdXQtZGlyZWN0aW9uKTtcbiAgfVxuXG4gIEBpZiAkdGFibGUge1xuICAgIEBpbmNsdWRlIC1uZWF0LXdhcm4oXCJUaGUgb21lZ2EgbWl4aW4gbm8gbG9uZ2VyIHJlbW92ZXMgcGFkZGluZyBpbiB0YWJsZSBsYXlvdXRzLlwiKTtcbiAgfVxuXG4gIEBpZiBsZW5ndGgoJHF1ZXJ5KSA9PSAxIHtcbiAgICBAaWYgJGF1dG8ge1xuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLSN7JGRpcmVjdGlvbn06IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGVsc2UgaWYgY29udGFpbnMtZGlzcGxheS12YWx1ZSgkcXVlcnkpIGFuZCAkdGFibGUgPT0gZmFsc2Uge1xuICAgICAgbWFyZ2luLSN7JGRpcmVjdGlvbn06IDA7XG4gICAgfVxuXG4gICAgQGVsc2Uge1xuICAgICAgQGluY2x1ZGUgbnRoLWNoaWxkKCRxdWVyeSwgJGRpcmVjdGlvbik7XG4gICAgfVxuICB9IEBlbHNlIGlmIGxlbmd0aCgkcXVlcnkpID09IDIge1xuICAgIEBpZiAkYXV0byB7XG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tI3skZGlyZWN0aW9ufTogMDtcbiAgICAgIH1cbiAgICB9IEBlbHNlIHtcbiAgICAgIEBpbmNsdWRlIG50aC1jaGlsZChudGgoJHF1ZXJ5LCAxKSwgJGRpcmVjdGlvbik7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAaW5jbHVkZSAtbmVhdC13YXJuKFwiVG9vIG1hbnkgYXJndW1lbnRzIHBhc3NlZCB0byB0aGUgb21lZ2EoKSBtaXhpbi5cIik7XG4gIH1cbn1cblxuQG1peGluIG50aC1jaGlsZCgkcXVlcnksICRkaXJlY3Rpb24pIHtcbiAgJG9wcG9zaXRlLWRpcmVjdGlvbjogZ2V0LW9wcG9zaXRlLWRpcmVjdGlvbigkZGlyZWN0aW9uKTtcblxuICAmOm50aC1jaGlsZCgjeyRxdWVyeX0pIHtcbiAgICBtYXJnaW4tI3skZGlyZWN0aW9ufTogMDtcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCRxdWVyeSkgPT0gbnVtYmVyIGFuZCB1bml0KCRxdWVyeSkgPT0gXCJuXCIge1xuICAgICY6bnRoLWNoaWxkKCN7JHF1ZXJ5fSsxKSB7XG4gICAgICBjbGVhcjogJG9wcG9zaXRlLWRpcmVjdGlvbjtcbiAgICB9XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIE1ha2VzIGFuIGVsZW1lbnQgYSBvdXRlciBjb250YWluZXIgYnkgY2VudHJpbmcgaXQgaW4gdGhlIHZpZXdwb3J0LCBjbGVhcmluZyBpdHMgZmxvYXRzLCBhbmQgc2V0dGluZyBpdHMgYG1heC13aWR0aGAuXG4vLy8gQWx0aG91Z2ggb3B0aW9uYWwsIHVzaW5nIGBvdXRlci1jb250YWluZXJgIGlzIHJlY29tbWVuZGVkLiBUaGUgbWl4aW4gY2FuIGJlIGNhbGxlZCBvbiBtb3JlIHRoYW4gb25lIGVsZW1lbnQgcGVyIHBhZ2UsIGFzIGxvbmcgYXMgdGhleSBhcmUgbm90IG5lc3RlZC5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyIFt1bml0XX0gJGxvY2FsLW1heC13aWR0aCBbJG1heC13aWR0aF1cbi8vLyAgIE1heCB3aWR0aCB0byBiZSBhcHBsaWVkIHRvIHRoZSBlbGVtZW50LiBDYW4gYmUgYSBwZXJjZW50YWdlIG9yIGEgbWVhc3VyZS5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBvdXRlci1jb250YWluZXIoMTAwJSk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgICp6b29tOiAxO1xuLy8vICAgICBtYXgtd2lkdGg6IDEwMCU7XG4vLy8gICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuLy8vICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5lbGVtZW50OmJlZm9yZSwgLmVsZW1lbnQ6YWZ0ZXIge1xuLy8vICAgICBjb250ZW50OiBcIiBcIjtcbi8vLyAgICAgZGlzcGxheTogdGFibGU7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5lbGVtZW50OmFmdGVyIHtcbi8vLyAgICAgY2xlYXI6IGJvdGg7XG4vLy8gICB9XG5cbkBtaXhpbiBvdXRlci1jb250YWluZXIoJGxvY2FsLW1heC13aWR0aDogJG1heC13aWR0aCkge1xuICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgbWF4LXdpZHRoOiAkbG9jYWwtbWF4LXdpZHRoO1xuICBtYXJnaW46IHtcbiAgICBsZWZ0OiBhdXRvO1xuICAgIHJpZ2h0OiBhdXRvO1xuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBTcGVjaWZpZXMgdGhlIG51bWJlciBvZiBjb2x1bW5zIGFuIGVsZW1lbnQgc2hvdWxkIHNwYW4uIElmIHRoZSBzZWxlY3RvciBpcyBuZXN0ZWQgdGhlIG51bWJlciBvZiBjb2x1bW5zIG9mIGl0cyBwYXJlbnQgZWxlbWVudCBzaG91bGQgYmUgcGFzc2VkIGFzIGFuIGFyZ3VtZW50IGFzIHdlbGwuXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRzcGFuXG4vLy8gICBBIGxpc3QgY29udGFpbmluZyBgJGNvbHVtbnNgLCB0aGUgdW5pdGxlc3MgbnVtYmVyIG9mIGNvbHVtbnMgdGhlIGVsZW1lbnQgc3BhbnMgKHJlcXVpcmVkKSwgYW5kIGAkY29udGFpbmVyLWNvbHVtbnNgLCB0aGUgbnVtYmVyIG9mIGNvbHVtbnMgdGhlIHBhcmVudCBlbGVtZW50IHNwYW5zIChvcHRpb25hbCkuXG4vLy9cbi8vLyAgIElmIG9ubHkgb25lIHZhbHVlIGlzIHBhc3NlZCwgaXQgaXMgYXNzdW1lZCB0aGF0IGl0J3MgYCRjb2x1bW5zYCBhbmQgdGhhdCB0aGF0IGAkY29udGFpbmVyLWNvbHVtbnNgIGlzIGVxdWFsIHRvIGAkZ3JpZC1jb2x1bW5zYCwgdGhlIHRvdGFsIG51bWJlciBvZiBjb2x1bW5zIGluIHRoZSBncmlkLlxuLy8vXG4vLy8gICBUaGUgdmFsdWVzIGNhbiBiZSBzZXBhcmF0ZWQgd2l0aCBhbnkgc3RyaW5nIHN1Y2ggYXMgYG9mYCwgYC9gLCBldGMuXG4vLy9cbi8vLyAgIGAkY29sdW1uc2AgYWxzbyBhY2NlcHRzIGRlY2ltYWxzIGZvciB3aGVuIGl0J3MgbmVjZXNzYXJ5IHRvIGJyZWFrIG91dCBvZiB0aGUgc3RhbmRhcmQgZ3JpZC4gRS5nLiBQYXNzaW5nIGAyLjRgIGluIGEgc3RhbmRhcmQgMTIgY29sdW1uIGdyaWQgd2lsbCBkaXZpZGUgdGhlIHJvdyBpbnRvIDUgY29sdW1ucy5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZGlzcGxheSBbYmxvY2tdXG4vLy8gICBTZXRzIHRoZSBkaXNwbGF5IHByb3BlcnR5IG9mIHRoZSBlbGVtZW50LiBCeSBkZWZhdWx0IGl0IHNldHMgdGhlIGRpc3BsYXkgcHJvcGVydCBvZiB0aGUgZWxlbWVudCB0byBgYmxvY2tgLlxuLy8vXG4vLy8gICBJZiBwYXNzZWQgYGJsb2NrLWNvbGxhcHNlYCwgaXQgYWxzbyByZW1vdmVzIHRoZSBtYXJnaW4gZ3V0dGVyIGJ5IGFkZGluZyBpdCB0byB0aGUgZWxlbWVudCB3aWR0aC5cbi8vL1xuLy8vICAgSWYgcGFzc2VkIGB0YWJsZWAsIGl0IHNldHMgdGhlIGRpc3BsYXkgcHJvcGVydHkgdG8gYHRhYmxlLWNlbGxgIGFuZCBjYWxjdWxhdGVzIHRoZSB3aWR0aCBvZiB0aGUgZWxlbWVudCB3aXRob3V0IHRha2luZyBndXR0ZXJzIGludG8gY29uc2lkZXJhdGlvbi4gVGhlIHJlc3VsdCBkb2VzIG5vdCBhbGlnbiB3aXRoIHRoZSBibG9jay1iYXNlZCBncmlkLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg2KTtcbi8vL1xuLy8vICAgIC5uZXN0ZWQtZWxlbWVudCB7XG4vLy8gICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMiBvZiA2KTtcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgZGlzcGxheTogYmxvY2s7XG4vLy8gICAgIGZsb2F0OiBsZWZ0O1xuLy8vICAgICBtYXJnaW4tcmlnaHQ6IDIuMzU3NjUlO1xuLy8vICAgICB3aWR0aDogNDguODIxMTclO1xuLy8vICAgfVxuLy8vXG4vLy8gICAuZWxlbWVudDpsYXN0LWNoaWxkIHtcbi8vLyAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuLy8vICAgfVxuLy8vXG4vLy8gICAuZWxlbWVudCAubmVzdGVkLWVsZW1lbnQge1xuLy8vICAgICBkaXNwbGF5OiBibG9jaztcbi8vLyAgICAgZmxvYXQ6IGxlZnQ7XG4vLy8gICAgIG1hcmdpbi1yaWdodDogNC44MjkxNiU7XG4vLy8gICAgIHdpZHRoOiAzMC4xMTM4OSU7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5lbGVtZW50IC5uZXN0ZWQtZWxlbWVudDpsYXN0LWNoaWxkIHtcbi8vLyAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuLy8vICAgfVxuXG5AbWl4aW4gc3Bhbi1jb2x1bW5zKCRzcGFuOiAkY29sdW1ucyBvZiAkY29udGFpbmVyLWNvbHVtbnMsICRkaXNwbGF5OiBibG9jaykge1xuICAkY29sdW1uczogbnRoKCRzcGFuLCAxKTtcbiAgJGNvbnRhaW5lci1jb2x1bW5zOiBjb250YWluZXItc3Bhbigkc3Bhbik7XG5cbiAgJHBhcmVudC1jb2x1bW5zOiBnZXQtcGFyZW50LWNvbHVtbnMoJGNvbnRhaW5lci1jb2x1bW5zKSAhZ2xvYmFsO1xuXG4gICRkaXJlY3Rpb246IGdldC1kaXJlY3Rpb24oJGxheW91dC1kaXJlY3Rpb24sICRkZWZhdWx0LWxheW91dC1kaXJlY3Rpb24pO1xuICAkb3Bwb3NpdGUtZGlyZWN0aW9uOiBnZXQtb3Bwb3NpdGUtZGlyZWN0aW9uKCRkaXJlY3Rpb24pO1xuXG4gICRkaXNwbGF5LXRhYmxlOiBpcy1kaXNwbGF5LXRhYmxlKCRjb250YWluZXItZGlzcGxheS10YWJsZSwgJGRpc3BsYXkpO1xuXG4gIEBpZiAkZGlzcGxheS10YWJsZSAge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgd2lkdGg6IHBlcmNlbnRhZ2UoJGNvbHVtbnMgLyAkY29udGFpbmVyLWNvbHVtbnMpO1xuICB9IEBlbHNlIHtcbiAgICBmbG9hdDogI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTtcblxuICAgIEBpZiAkZGlzcGxheSAhPSBuby1kaXNwbGF5IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIEBpZiAkZGlzcGxheSA9PSBjb2xsYXBzZSB7XG4gICAgICBAaW5jbHVkZSAtbmVhdC13YXJuKFwiVGhlICdjb2xsYXBzZScgYXJndW1lbnQgd2lsbCBiZSBkZXByZWNhdGVkLiBVc2UgJ2Jsb2NrLWNvbGxhcHNlJyBpbnN0ZWFkLlwiKTtcbiAgICB9XG5cbiAgICBAaWYgJGRpc3BsYXkgPT0gY29sbGFwc2Ugb3IgJGRpc3BsYXkgPT0gYmxvY2stY29sbGFwc2Uge1xuICAgICAgd2lkdGg6IGZsZXgtZ3JpZCgkY29sdW1ucywgJGNvbnRhaW5lci1jb2x1bW5zKSArIGZsZXgtZ3V0dGVyKCRjb250YWluZXItY29sdW1ucyk7XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIHdpZHRoOiBmbGV4LWdyaWQoJGNvbHVtbnMsICRjb250YWluZXItY29sdW1ucyk7XG4gICAgICB9XG5cbiAgICB9IEBlbHNlIHtcbiAgICAgIG1hcmdpbi0jeyRkaXJlY3Rpb259OiBmbGV4LWd1dHRlcigkY29udGFpbmVyLWNvbHVtbnMpO1xuICAgICAgd2lkdGg6IGZsZXgtZ3JpZCgkY29sdW1ucywgJGNvbnRhaW5lci1jb2x1bW5zKTtcblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLSN7JGRpcmVjdGlvbn06IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBEZXNpZ25hdGVzIHRoZSBlbGVtZW50IGFzIGEgcm93IG9mIGNvbHVtbnMgaW4gdGhlIGdyaWQgbGF5b3V0LiBJdCBjbGVhcnMgdGhlIGZsb2F0cyBvbiB0aGUgZWxlbWVudCBhbmQgc2V0cyBpdHMgZGlzcGxheSBwcm9wZXJ0eS4gUm93cyBjYW4ndCBiZSBuZXN0ZWQsIGJ1dCB0aGVyZSBjYW4gYmUgbW9yZSB0aGFuIG9uZSByb3cgZWxlbWVudOKAlHdpdGggZGlmZmVyZW50IGRpc3BsYXkgcHJvcGVydGllc+KAlHBlciBsYXlvdXQuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGRpc3BsYXkgW2RlZmF1bHRdXG4vLy8gIFNldHMgdGhlIGRpc3BsYXkgcHJvcGVydHkgb2YgdGhlIGVsZW1lbnQgYW5kIHRoZSBkaXNwbGF5IGNvbnRleHQgdGhhdCB3aWxsIGJlIHVzZWQgYnkgaXRzIGNoaWxkcmVuLiBDYW4gYmUgYGJsb2NrYCBvciBgdGFibGVgLlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRkaXJlY3Rpb24gWyRkZWZhdWx0LWxheW91dC1kaXJlY3Rpb25dXG4vLy8gIFNldHMgdGhlIGxheW91dCBkaXJlY3Rpb24uIENhbiBiZSBgTFRSYCAobGVmdC10by1yaWdodCkgb3IgYFJUTGAgKHJpZ2h0LXRvLWxlZnQpLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gIC5lbGVtZW50IHtcbi8vLyAgICBAaW5jbHVkZSByb3coKTtcbi8vLyAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAuZWxlbWVudCB7XG4vLy8gICAgKnpvb206IDE7XG4vLy8gICAgZGlzcGxheTogYmxvY2s7XG4vLy8gIH1cbi8vL1xuLy8vIC5lbGVtZW50OmJlZm9yZSwgLmVsZW1lbnQ6YWZ0ZXIge1xuLy8vICAgY29udGVudDogXCIgXCI7XG4vLy8gICBkaXNwbGF5OiB0YWJsZTtcbi8vLyB9XG4vLy9cbi8vLyAuZWxlbWVudDphZnRlciB7XG4vLy8gICBjbGVhcjogYm90aDtcbi8vLyB9XG5cbkBtaXhpbiByb3coJGRpc3BsYXk6IGRlZmF1bHQsICRkaXJlY3Rpb246ICRkZWZhdWx0LWxheW91dC1kaXJlY3Rpb24pIHtcbiAgQGlmICRkaXJlY3Rpb24gIT0gJGRlZmF1bHQtbGF5b3V0LWRpcmVjdGlvbiB7XG4gICAgQGluY2x1ZGUgLW5lYXQtd2FybihcIlRoZSAkZGlyZWN0aW9uIGFyZ3VtZW50IHdpbGwgYmUgZGVwcmVjYXRlZCBpbiBmdXR1cmUgdmVyc2lvbnMgaW4gZmF2b3Igb2YgdGhlIGRpcmVjdGlvbigpey4uLn0gbWl4aW4uXCIpO1xuICB9XG5cbiAgJGxheW91dC1kaXJlY3Rpb246ICRkaXJlY3Rpb24gIWdsb2JhbDtcblxuICBAaWYgJGRpc3BsYXkgIT0gZGVmYXVsdCB7XG4gICAgQGluY2x1ZGUgLW5lYXQtd2FybihcIlRoZSAkZGlzcGxheSBhcmd1bWVudCB3aWxsIGJlIGRlcHJlY2F0ZWQgaW4gZnV0dXJlIHZlcnNpb25zIGluIGZhdm9yIG9mIHRoZSBkaXNwbGF5KCl7Li4ufSBtaXhpbi5cIik7XG4gIH1cblxuICBAaWYgJGRpc3BsYXkgPT0gdGFibGUge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIEBpbmNsdWRlIGZpbGwtcGFyZW50O1xuICAgIHRhYmxlLWxheW91dDogZml4ZWQ7XG4gICAgJGNvbnRhaW5lci1kaXNwbGF5LXRhYmxlOiB0cnVlICFnbG9iYWw7XG4gIH0gQGVsc2Uge1xuICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICRjb250YWluZXItZGlzcGxheS10YWJsZTogZmFsc2UgIWdsb2JhbDtcbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gVHJhbnNsYXRlcyBhbiBlbGVtZW50IGhvcml6b250YWxseSBieSBhIG51bWJlciBvZiBjb2x1bW5zLiBQb3NpdGl2ZSBhcmd1bWVudHMgc2hpZnQgdGhlIGVsZW1lbnQgdG8gdGhlIGFjdGl2ZSBsYXlvdXQgZGlyZWN0aW9uLCB3aGlsZSBuZWdhdGl2ZSBvbmVzIHNoaWZ0IGl0IHRvIHRoZSBvcHBvc2l0ZSBkaXJlY3Rpb24uXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlciAodW5pdGxlc3MpfSAkbi1jb2x1bW5zIFsxXVxuLy8vICAgTnVtYmVyIG9mIGNvbHVtbnMgYnkgd2hpY2ggdGhlIGVsZW1lbnQgc2hpZnRzLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIHNoaWZ0KC0zKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBvdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgbWFyZ2luLWxlZnQ6IC0yNS41ODk0MSU7XG4vLy8gICB9XG5cbkBtaXhpbiBzaGlmdCgkbi1jb2x1bW5zOiAxKSB7XG4gIEBpbmNsdWRlIHNoaWZ0LWluLWNvbnRleHQoJG4tY29sdW1ucyk7XG59XG5cbi8vLyBUcmFuc2xhdGVzIGFuIGVsZW1lbnQgaG9yaXpvbnRhbGx5IGJ5IGEgbnVtYmVyIG9mIGNvbHVtbnMsIGluIGEgc3BlY2lmaWMgbmVzdGluZyBjb250ZXh0LlxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkc2hpZnRcbi8vLyAgIEEgbGlzdCBjb250YWluaW5nIHRoZSBudW1iZXIgb2YgY29sdW1ucyB0byBzaGlmdCAoYCRjb2x1bW5zYCkgYW5kIHRoZSBudW1iZXIgb2YgY29sdW1ucyBvZiB0aGUgcGFyZW50IGVsZW1lbnQgKGAkY29udGFpbmVyLWNvbHVtbnNgKS5cbi8vL1xuLy8vICAgVGhlIHR3byB2YWx1ZXMgY2FuIGJlIHNlcGFyYXRlZCB3aXRoIGFueSBzdHJpbmcgc3VjaCBhcyBgb2ZgLCBgL2AsIGV0Yy5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBzaGlmdCgtMyBvZiA2KTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBvdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgbWFyZ2luLWxlZnQ6IC01Mi40MTQ1OCU7XG4vLy8gICB9XG5cbkBtaXhpbiBzaGlmdC1pbi1jb250ZXh0KCRzaGlmdDogJGNvbHVtbnMgb2YgJGNvbnRhaW5lci1jb2x1bW5zKSB7XG4gICRuLWNvbHVtbnM6IG50aCgkc2hpZnQsIDEpO1xuICAkcGFyZW50LWNvbHVtbnM6IGNvbnRhaW5lci1zaGlmdCgkc2hpZnQpICFnbG9iYWw7XG5cbiAgJGRpcmVjdGlvbjogZ2V0LWRpcmVjdGlvbigkbGF5b3V0LWRpcmVjdGlvbiwgJGRlZmF1bHQtbGF5b3V0LWRpcmVjdGlvbik7XG4gICRvcHBvc2l0ZS1kaXJlY3Rpb246IGdldC1vcHBvc2l0ZS1kaXJlY3Rpb24oJGRpcmVjdGlvbik7XG5cbiAgbWFyZ2luLSN7JG9wcG9zaXRlLWRpcmVjdGlvbn06ICRuLWNvbHVtbnMgKiBmbGV4LWdyaWQoMSwgJHBhcmVudC1jb2x1bW5zKSArICRuLWNvbHVtbnMgKiBmbGV4LWd1dHRlcigkcGFyZW50LWNvbHVtbnMpO1xuXG4gIC8vIFJlc2V0IG5lc3RpbmcgY29udGV4dFxuICAkcGFyZW50LWNvbHVtbnM6ICRncmlkLWNvbHVtbnMgIWdsb2JhbDtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIEFkZHMgcGFkZGluZyB0byB0aGUgZWxlbWVudC5cbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHBhZGRpbmcgW2ZsZXgtZ3V0dGVyKCldXG4vLy8gICBBIGxpc3Qgb2YgcGFkZGluZyB2YWx1ZShzKSB0byB1c2UuIFBhc3NpbmcgYGRlZmF1bHRgIGluIHRoZSBsaXN0IHdpbGwgcmVzdWx0IGluIHVzaW5nIHRoZSBndXR0ZXIgd2lkdGggYXMgYSBwYWRkaW5nIHZhbHVlLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIHBhZCgzMHB4IC0yMHB4IDEwcHggZGVmYXVsdCk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIHBhZGRpbmc6IDMwcHggLTIwcHggMTBweCAyLjM1NzY1JTtcbi8vLyAgIH1cblxuQG1peGluIHBhZCgkcGFkZGluZzogZmxleC1ndXR0ZXIoKSkge1xuICAkcGFkZGluZy1saXN0OiBudWxsO1xuICBAZWFjaCAkdmFsdWUgaW4gJHBhZGRpbmcge1xuICAgICR2YWx1ZTogaWYoJHZhbHVlID09ICdkZWZhdWx0JywgZmxleC1ndXR0ZXIoKSwgJHZhbHVlKTtcbiAgICAkcGFkZGluZy1saXN0OiBqb2luKCRwYWRkaW5nLWxpc3QsICR2YWx1ZSk7XG4gIH1cbiAgcGFkZGluZzogJHBhZGRpbmctbGlzdDtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIEZvcmNlcyB0aGUgZWxlbWVudCB0byBmaWxsIGl0cyBwYXJlbnQgY29udGFpbmVyLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIGZpbGwtcGFyZW50O1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICB3aWR0aDogMTAwJTtcbi8vLyAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbi8vLyAgIH1cblxuQG1peGluIGZpbGwtcGFyZW50KCkge1xuICB3aWR0aDogMTAwJTtcblxuICBAaWYgJGJvcmRlci1ib3gtc2l6aW5nID09IGZhbHNlIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBPdXRwdXRzIGEgbWVkaWEtcXVlcnkgYmxvY2sgd2l0aCBhbiBvcHRpb25hbCBncmlkIGNvbnRleHQgKHRoZSB0b3RhbCBudW1iZXIgb2YgY29sdW1ucyB1c2VkIGluIHRoZSBncmlkKS5cbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHF1ZXJ5XG4vLy8gICBBIGxpc3Qgb2YgbWVkaWEgcXVlcnkgZmVhdHVyZXMgYW5kIHZhbHVlcywgd2hlcmUgZWFjaCBgJGZlYXR1cmVgIHNob3VsZCBoYXZlIGEgY29ycmVzcG9uZGluZyBgJHZhbHVlYC5cbi8vLyAgIEZvciBhIGxpc3Qgb2YgdmFsaWQgdmFsdWVzIGZvciBgJGZlYXR1cmVgLCBjbGljayBbaGVyZV0oaHR0cDovL3d3dy53My5vcmcvVFIvY3NzMy1tZWRpYXF1ZXJpZXMvI21lZGlhMSkuXG4vLy9cbi8vLyAgIElmIHRoZXJlIGlzIG9ubHkgYSBzaW5nbGUgYCR2YWx1ZWAgaW4gYCRxdWVyeWAsIGAkZGVmYXVsdC1mZWF0dXJlYCBpcyBnb2luZyB0byBiZSB1c2VkLlxuLy8vXG4vLy8gICBUaGUgbnVtYmVyIG9mIHRvdGFsIGNvbHVtbnMgaW4gdGhlIGdyaWQgY2FuIGJlIHNldCBieSBwYXNzaW5nIGAkY29sdW1uc2AgYXQgdGhlIGVuZCBvZiB0aGUgbGlzdCAob3ZlcnJpZGVzIGAkdG90YWwtY29sdW1uc2ApLlxuLy8vXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlciAodW5pdGxlc3MpfSAkdG90YWwtY29sdW1ucyBbJGdyaWQtY29sdW1uc11cbi8vLyAgIC0gTnVtYmVyIG9mIGNvbHVtbnMgdG8gdXNlIGluIHRoZSBuZXcgZ3JpZCBjb250ZXh0LiBDYW4gYmUgc2V0IGFzIGEgc2hvcnRoYW5kIGluIHRoZSBmaXJzdCBwYXJhbWV0ZXIuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5yZXNwb25zaXZlLWVsZW1lbnQge1xuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoNzY5cHgpIHtcbi8vLyAgICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDYpO1xuLy8vICAgICAgfVxuLy8vICAgfVxuLy8vXG4vLy8gIC5uZXctY29udGV4dC1lbGVtZW50IHtcbi8vLyAgICBAaW5jbHVkZSBtZWRpYShtaW4td2lkdGggMzIwcHggbWF4LXdpZHRoIDQ4MHB4LCA2KSB7XG4vLy8gICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoNik7XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OXB4KSB7XG4vLy8gICAgLnJlc3BvbnNpdmUtZWxlbWVudCB7XG4vLy8gICAgICBkaXNwbGF5OiBibG9jaztcbi8vLyAgICAgIGZsb2F0OiBsZWZ0O1xuLy8vICAgICAgbWFyZ2luLXJpZ2h0OiAyLjM1NzY1JTtcbi8vLyAgICAgIHdpZHRoOiA0OC44MjExNyU7XG4vLy8gICAgfVxuLy8vXG4vLy8gICAgLnJlc3BvbnNpdmUtZWxlbWVudDpsYXN0LWNoaWxkIHtcbi8vLyAgICAgIG1hcmdpbi1yaWdodDogMDtcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAzMjBweCkgYW5kIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4vLy8gICAgLm5ldy1jb250ZXh0LWVsZW1lbnQge1xuLy8vICAgICAgZGlzcGxheTogYmxvY2s7XG4vLy8gICAgICBmbG9hdDogbGVmdDtcbi8vLyAgICAgIG1hcmdpbi1yaWdodDogNC44MjkxNiU7XG4vLy8gICAgICB3aWR0aDogMTAwJTtcbi8vLyAgICB9XG4vLy9cbi8vLyAgICAubmV3LWNvbnRleHQtZWxlbWVudDpsYXN0LWNoaWxkIHtcbi8vLyAgICAgIG1hcmdpbi1yaWdodDogMDtcbi8vLyAgICB9XG4vLy8gIH1cblxuQG1peGluIG1lZGlhKCRxdWVyeTogJGZlYXR1cmUgJHZhbHVlICRjb2x1bW5zLCAkdG90YWwtY29sdW1uczogJGdyaWQtY29sdW1ucykge1xuICBAaWYgbGVuZ3RoKCRxdWVyeSkgPT0gMSB7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKCRkZWZhdWx0LWZlYXR1cmU6IG50aCgkcXVlcnksIDEpKSB7XG4gICAgICAkZGVmYXVsdC1ncmlkLWNvbHVtbnM6ICRncmlkLWNvbHVtbnM7XG4gICAgICAkZ3JpZC1jb2x1bW5zOiAkdG90YWwtY29sdW1ucyAhZ2xvYmFsO1xuICAgICAgQGNvbnRlbnQ7XG4gICAgICAkZ3JpZC1jb2x1bW5zOiAkZGVmYXVsdC1ncmlkLWNvbHVtbnMgIWdsb2JhbDtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgICRsb29wLXRvOiBsZW5ndGgoJHF1ZXJ5KTtcbiAgICAkbWVkaWEtcXVlcnk6IFwic2NyZWVuIGFuZCBcIjtcbiAgICAkZGVmYXVsdC1ncmlkLWNvbHVtbnM6ICRncmlkLWNvbHVtbnM7XG4gICAgJGdyaWQtY29sdW1uczogJHRvdGFsLWNvbHVtbnMgIWdsb2JhbDtcblxuICAgIEBpZiBpcy1ub3QoaXMtZXZlbihsZW5ndGgoJHF1ZXJ5KSkpIHtcbiAgICAgICRncmlkLWNvbHVtbnM6IG50aCgkcXVlcnksICRsb29wLXRvKSAhZ2xvYmFsO1xuICAgICAgJGxvb3AtdG86ICRsb29wLXRvIC0gMTtcbiAgICB9XG5cbiAgICAkaTogMTtcbiAgICBAd2hpbGUgJGkgPD0gJGxvb3AtdG8ge1xuICAgICAgJG1lZGlhLXF1ZXJ5OiAkbWVkaWEtcXVlcnkgKyBcIihcIiArIG50aCgkcXVlcnksICRpKSArIFwiOiBcIiArIG50aCgkcXVlcnksICRpICsgMSkgKyBcIikgXCI7XG5cbiAgICAgIEBpZiAoJGkgKyAxKSAhPSAkbG9vcC10byB7XG4gICAgICAgICRtZWRpYS1xdWVyeTogJG1lZGlhLXF1ZXJ5ICsgXCJhbmQgXCI7XG4gICAgICB9XG5cbiAgICAgICRpOiAkaSArIDI7XG4gICAgfVxuXG4gICAgQG1lZGlhICN7JG1lZGlhLXF1ZXJ5fSB7XG4gICAgICBAY29udGVudDtcbiAgICAgICRncmlkLWNvbHVtbnM6ICRkZWZhdWx0LWdyaWQtY29sdW1ucyAhZ2xvYmFsO1xuICAgIH1cbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG5AbWl4aW4gYnJlYWtwb2ludCgkcXVlcnk6JGZlYXR1cmUgJHZhbHVlICRjb2x1bW5zLCAkdG90YWwtY29sdW1uczogJGdyaWQtY29sdW1ucykge1xuICBAaW5jbHVkZSAtbmVhdC13YXJuKFwiVGhlIGJyZWFrcG9pbnQoKSBtaXhpbiB3YXMgcmVuYW1lZCB0byBtZWRpYSgpIGluIE5lYXQgMS4wLiBQbGVhc2UgdXBkYXRlIHlvdXIgcHJvamVjdCB3aXRoIHRoZSBuZXcgc3ludGF4IGJlZm9yZSB0aGUgbmV4dCB2ZXJzaW9uIGJ1bXAuXCIpO1xuXG4gIEBpZiBsZW5ndGgoJHF1ZXJ5KSA9PSAxIHtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAoJGRlZmF1bHQtZmVhdHVyZTogbnRoKCRxdWVyeSwgMSkpIHtcbiAgICAgICRkZWZhdWx0LWdyaWQtY29sdW1uczogJGdyaWQtY29sdW1ucztcbiAgICAgICRncmlkLWNvbHVtbnM6ICR0b3RhbC1jb2x1bW5zO1xuICAgICAgQGNvbnRlbnQ7XG4gICAgICAkZ3JpZC1jb2x1bW5zOiAkZGVmYXVsdC1ncmlkLWNvbHVtbnM7XG4gICAgfVxuICB9IEBlbHNlIGlmIGxlbmd0aCgkcXVlcnkpID09IDIge1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChudGgoJHF1ZXJ5LCAxKTogbnRoKCRxdWVyeSwgMikpIHtcbiAgICAgICRkZWZhdWx0LWdyaWQtY29sdW1uczogJGdyaWQtY29sdW1ucztcbiAgICAgICRncmlkLWNvbHVtbnM6ICR0b3RhbC1jb2x1bW5zO1xuICAgICAgQGNvbnRlbnQ7XG4gICAgICAkZ3JpZC1jb2x1bW5zOiAkZGVmYXVsdC1ncmlkLWNvbHVtbnM7XG4gICAgfVxuICB9IEBlbHNlIGlmIGxlbmd0aCgkcXVlcnkpID09IDMge1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChudGgoJHF1ZXJ5LCAxKTogbnRoKCRxdWVyeSwgMikpIHtcbiAgICAgICRkZWZhdWx0LWdyaWQtY29sdW1uczogJGdyaWQtY29sdW1ucztcbiAgICAgICRncmlkLWNvbHVtbnM6IG50aCgkcXVlcnksIDMpO1xuICAgICAgQGNvbnRlbnQ7XG4gICAgICAkZ3JpZC1jb2x1bW5zOiAkZGVmYXVsdC1ncmlkLWNvbHVtbnM7XG4gICAgfVxuICB9IEBlbHNlIGlmIGxlbmd0aCgkcXVlcnkpID09IDQge1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChudGgoJHF1ZXJ5LCAxKTogbnRoKCRxdWVyeSwgMikpIGFuZCAobnRoKCRxdWVyeSwgMyk6IG50aCgkcXVlcnksIDQpKSB7XG4gICAgICAkZGVmYXVsdC1ncmlkLWNvbHVtbnM6ICRncmlkLWNvbHVtbnM7XG4gICAgICAkZ3JpZC1jb2x1bW5zOiAkdG90YWwtY29sdW1ucztcbiAgICAgIEBjb250ZW50O1xuICAgICAgJGdyaWQtY29sdW1uczogJGRlZmF1bHQtZ3JpZC1jb2x1bW5zO1xuICAgIH1cbiAgfSBAZWxzZSBpZiBsZW5ndGgoJHF1ZXJ5KSA9PSA1IHtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobnRoKCRxdWVyeSwgMSk6IG50aCgkcXVlcnksIDIpKSBhbmQgKG50aCgkcXVlcnksIDMpOiBudGgoJHF1ZXJ5LCA0KSkge1xuICAgICAgJGRlZmF1bHQtZ3JpZC1jb2x1bW5zOiAkZ3JpZC1jb2x1bW5zO1xuICAgICAgJGdyaWQtY29sdW1uczogbnRoKCRxdWVyeSwgNSk7XG4gICAgICBAY29udGVudDtcbiAgICAgICRncmlkLWNvbHVtbnM6ICRkZWZhdWx0LWdyaWQtY29sdW1ucztcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBpbmNsdWRlIC1uZWF0LXdhcm4oXCJXcm9uZyBudW1iZXIgb2YgYXJndW1lbnRzIGZvciBicmVha3BvaW50KCkuIFJlYWQgdGhlIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgZGV0YWlscy5cIik7XG4gIH1cbn1cblxuQG1peGluIG50aC1vbWVnYSgkbnRoLCAkZGlzcGxheTogYmxvY2ssICRkaXJlY3Rpb246IGRlZmF1bHQpIHtcbiAgQGluY2x1ZGUgLW5lYXQtd2FybihcIlRoZSBudGgtb21lZ2EoKSBtaXhpbiBpcyBkZXByZWNhdGVkLiBQbGVhc2UgdXNlIG9tZWdhKCkgaW5zdGVhZC5cIik7XG4gIEBpbmNsdWRlIG9tZWdhKCRudGggJGRpc3BsYXksICRkaXJlY3Rpb24pO1xufVxuXG4vLy8gUmVzZXRzIHRoZSBhY3RpdmUgZGlzcGxheSBwcm9wZXJ0eSB0byBgYmxvY2tgLiBQYXJ0aWN1bGFybHkgdXNlZnVsIHdoZW4gY2hhbmdpbmcgdGhlIGRpc3BsYXkgcHJvcGVydHkgaW4gYSBzaW5nbGUgcm93LlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIHJvdyh0YWJsZSk7XG4vLy8gICAgIC8vIENvbnRleHQgY2hhbmdlZCB0byB0YWJsZSBkaXNwbGF5XG4vLy8gICB9XG4vLy9cbi8vLyAgIEBpbmNsdWRlIHJlc2V0LWRpc3BsYXk7XG4vLy8gICAvLyBDb250ZXh0IGlzIHJlc2V0IHRvIGJsb2NrIGRpc3BsYXlcblxuQG1peGluIHJlc2V0LWRpc3BsYXkge1xuICAkY29udGFpbmVyLWRpc3BsYXktdGFibGU6IGZhbHNlICFnbG9iYWw7XG4gIEBpbmNsdWRlIC1uZWF0LXdhcm4oXCJSZXNldHRpbmcgJGRpc3BsYXkgd2lsbCBiZSBkZXByZWNhdGVkIGluIGZ1dHVyZSB2ZXJzaW9ucyBpbiBmYXZvciBvZiB0aGUgZGlzcGxheSgpey4uLn0gbWl4aW4uXCIpO1xufVxuXG4vLy8gUmVzZXRzIHRoZSBhY3RpdmUgbGF5b3V0IGRpcmVjdGlvbiB0byB0aGUgZGVmYXVsdCB2YWx1ZSBzZXQgaW4gYCRkZWZhdWx0LWxheW91dC1kaXJlY3Rpb25gLiBQYXJ0aWN1bGFybHkgdXNlZnVsIHdoZW4gY2hhbmdpbmcgdGhlIGxheW91dCBkaXJlY3Rpb24gaW4gYSBzaW5nbGUgcm93LlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIHJvdygkZGlyZWN0aW9uOiBSVEwpO1xuLy8vICAgICAvLyBDb250ZXh0IGNoYW5nZWQgdG8gcmlnaHQtdG8tbGVmdFxuLy8vICAgfVxuLy8vXG4vLy8gICBAaW5jbHVkZSByZXNldC1sYXlvdXQtZGlyZWN0aW9uO1xuLy8vICAgLy8gQ29udGV4dCBpcyByZXNldCB0byBsZWZ0LXRvLXJpZ2h0XG5cbkBtaXhpbiByZXNldC1sYXlvdXQtZGlyZWN0aW9uIHtcbiAgJGxheW91dC1kaXJlY3Rpb246ICRkZWZhdWx0LWxheW91dC1kaXJlY3Rpb24gIWdsb2JhbDtcbiAgQGluY2x1ZGUgLW5lYXQtd2FybihcIlJlc2V0dGluZyAkZGlyZWN0aW9uIHdpbGwgYmUgZGVwcmVjYXRlZCBpbiBmdXR1cmUgdmVyc2lvbnMgaW4gZmF2b3Igb2YgdGhlIGRpcmVjdGlvbigpey4uLn0gbWl4aW4uXCIpO1xufVxuXG4vLy8gUmVzZXRzIGJvdGggdGhlIGFjdGl2ZSBsYXlvdXQgZGlyZWN0aW9uIGFuZCB0aGUgYWN0aXZlIGRpc3BsYXkgcHJvcGVydHkuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgcm93KHRhYmxlLCBSVEwpO1xuLy8vICAgICAvLyBDb250ZXh0IGNoYW5nZWQgdG8gdGFibGUgdGFibGUgYW5kIHJpZ2h0LXRvLWxlZnRcbi8vLyAgIH1cbi8vL1xuLy8vICAgQGluY2x1ZGUgcmVzZXQtYWxsO1xuLy8vICAgLy8gQ29udGV4dCBpcyByZXNldCB0byBibG9jayBkaXNwbGF5IGFuZCBsZWZ0LXRvLXJpZ2h0XG5cbkBtaXhpbiByZXNldC1hbGwge1xuICBAaW5jbHVkZSByZXNldC1kaXNwbGF5O1xuICBAaW5jbHVkZSByZXNldC1sYXlvdXQtZGlyZWN0aW9uO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG5AbWl4aW4gZ3JpZC1jb2x1bW4tZ3JhZGllbnQoJHZhbHVlcy4uLikge1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudChsZWZ0LCAkdmFsdWVzKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogLW1vei1saW5lYXItZ3JhZGllbnQobGVmdCwgJHZhbHVlcyk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC1tcy1saW5lYXItZ3JhZGllbnQobGVmdCwgJHZhbHVlcyk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC1vLWxpbmVhci1ncmFkaWVudChsZWZ0LCAkdmFsdWVzKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdW5xdW90ZShcImxpbmVhci1ncmFkaWVudCh0byBsZWZ0LCAjeyR2YWx1ZXN9KVwiKTtcbn1cblxuQGlmICR2aXN1YWwtZ3JpZCA9PSB0cnVlIG9yICR2aXN1YWwtZ3JpZCA9PSB5ZXMge1xuICBib2R5OmJlZm9yZSB7XG4gICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tZ3JhZGllbnQoZ3JhZGllbnQtc3RvcHMoJGdyaWQtY29sdW1ucykpO1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBsZWZ0OiAwO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIG1heC13aWR0aDogJG1heC13aWR0aDtcbiAgICBvcGFjaXR5OiAkdmlzdWFsLWdyaWQtb3BhY2l0eTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgcmlnaHQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICBAaWYgJHZpc3VhbC1ncmlkLWluZGV4ID09IGJhY2sge1xuICAgICAgei1pbmRleDogLTE7XG4gICAgfVxuXG4gICAgQGVsc2UgaWYgJHZpc3VhbC1ncmlkLWluZGV4ID09IGZyb250IHtcbiAgICAgIHotaW5kZXg6IDk5OTk7XG4gICAgfVxuXG4gICAgQGVhY2ggJGJyZWFrcG9pbnQgaW4gJHZpc3VhbC1ncmlkLWJyZWFrcG9pbnRzIHtcbiAgICAgIEBpZiAkYnJlYWtwb2ludCB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCRicmVha3BvaW50KSB7XG4gICAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tZ3JhZGllbnQoZ3JhZGllbnQtc3RvcHMoJGdyaWQtY29sdW1ucykpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBDaGFuZ2VzIHRoZSBkaXNwbGF5IHByb3BlcnR5IHVzZWQgYnkgb3RoZXIgbWl4aW5zIGNhbGxlZCBpbiB0aGUgY29kZSBibG9jayBhcmd1bWVudC5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZGlzcGxheSBbYmxvY2tdXG4vLy8gICBEaXNwbGF5IHZhbHVlIHRvIGJlIHVzZWQgd2l0aGluIHRoZSBibG9jay4gQ2FuIGJlIGB0YWJsZWAgb3IgYGJsb2NrYC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgIEBpbmNsdWRlIGRpc3BsYXktY29udGV4dCh0YWJsZSkge1xuLy8vICAgIC5kaXNwbGF5LXRhYmxlIHtcbi8vLyAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg2KTtcbi8vLyAgICAgfVxuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzXG4vLy8gICAuZGlzcGxheS10YWJsZSB7XG4vLy8gICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuLy8vICAgICAgLi4uXG4vLy8gICB9XG5cbkBtaXhpbiBkaXNwbGF5LWNvbnRleHQoJGRpc3BsYXk6IGJsb2NrKSB7XG4gICRzY29wZS1kaXNwbGF5OiAkY29udGFpbmVyLWRpc3BsYXktdGFibGU7XG4gICRjb250YWluZXItZGlzcGxheS10YWJsZTogJGRpc3BsYXkgPT0gdGFibGUgIWdsb2JhbDtcblxuICBAY29udGVudDtcblxuICAkY29udGFpbmVyLWRpc3BsYXktdGFibGU6ICRzY29wZS1kaXNwbGF5ICFnbG9iYWw7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBDaGFuZ2VzIHRoZSBkaXJlY3Rpb24gcHJvcGVydHkgdXNlZCBieSBvdGhlciBtaXhpbnMgY2FsbGVkIGluIHRoZSBjb2RlIGJsb2NrIGFyZ3VtZW50LlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRkaXJlY3Rpb24gW2xlZnQtdG8tcmlnaHRdXG4vLy8gICBMYXlvdXQgZGlyZWN0aW9uIHRvIGJlIHVzZWQgd2l0aGluIHRoZSBibG9jay4gQ2FuIGJlIGBsZWZ0LXRvLXJpZ2h0YCBvciBgcmlnaHQtdG8tbGVmdGAuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIEBpbmNsdWRlIGRpcmVjdGlvbi1jb250ZXh0KHJpZ2h0LXRvLWxlZnQpIHtcbi8vLyAgICAucmlnaHQtdG8tbGVmdC1ibG9jayB7XG4vLy8gICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoNik7XG4vLy8gICAgIH1cbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5yaWdodC10by1sZWZ0LWJsb2NrIHtcbi8vLyAgICAgZmxvYXQ6IHJpZ2h0O1xuLy8vICAgICAgLi4uXG4vLy8gICB9XG5cbkBtaXhpbiBkaXJlY3Rpb24tY29udGV4dCgkZGlyZWN0aW9uOiBsZWZ0LXRvLXJpZ2h0KSB7XG4gICRzY29wZS1kaXJlY3Rpb246ICRsYXlvdXQtZGlyZWN0aW9uO1xuXG4gIEBpZiB0by1sb3dlci1jYXNlKCRkaXJlY3Rpb24pID09IFwibGVmdC10by1yaWdodFwiIHtcbiAgICAkbGF5b3V0LWRpcmVjdGlvbjogTFRSICFnbG9iYWw7XG4gIH0gQGVsc2UgaWYgdG8tbG93ZXItY2FzZSgkZGlyZWN0aW9uKSA9PSBcInJpZ2h0LXRvLWxlZnRcIiB7XG4gICAgJGxheW91dC1kaXJlY3Rpb246IFJUTCAhZ2xvYmFsO1xuICB9XG5cbiAgQGNvbnRlbnQ7XG5cbiAgJGxheW91dC1kaXJlY3Rpb246ICRzY29wZS1kaXJlY3Rpb24gIWdsb2JhbDtcbn1cbiIsIi8qICMjIFNpdGUgQ29udGFpbmVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uc2l0ZS1pbm5lcjpub3QoLmZ1bGwpLFxuLndyYXAge1xuICAgIEBpbmNsdWRlIG91dGVyLWNvbnRhaW5lcigxMDAwcHgpO1xufVxuXG4uc2l0ZS1pbm5lciB7XG4gICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDEwO1xufVxuXG4uc2l0ZS1pbm5lcjpub3QoLmZ1bGwpLFxuLnNpdGUtaGVhZGVyIC53cmFwLFxuLnBhZ2UtYmFubmVyIC53cmFwIHtcbiAgICBwYWRkaW5nOiAwIGVtKDMwKTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCRsYXJnZS1zY3JlZW4tdXApIHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICB9XG59XG5cbi5wYWdlLWJhbm5lciAud3JhcCxcbi5wYWdlIC5lbnRyeS1jb250ZW50LFxuLnBhZ2UgLmNvbnRlbnQsXG4ucGFnZSAuZW50cnktaGVhZGVyIHtcbiAgICBAaW5jbHVkZSBtZWRpYSgkbGFyZ2Utc2NyZWVuLXVwKSB7XG4gICAgICAgIEBpbmNsdWRlIG91dGVyLWNvbnRhaW5lcig4NjBweCk7XG4gICAgICAgIHBhZGRpbmcgOjA7XG4gICAgfVxufVxuXG4ucGFnZSAuY29udGVudCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgZmxvYXQ6IG5vbmU7XG59XG5cbi8qICMjIENvbHVtbiBXaWR0aHMgYW5kIFBvc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uY29udGVudCxcbi5zaWRlYmFyLXByaW1hcnksXG4uZnVsbC13aWR0aCAuY29udGVudCB7XG4gICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDEyKTtcbiAgICBAaW5jbHVkZSBvbWVnYSgpO1xufVxuXG5AaW5jbHVkZSBtZWRpYSgkbGFyZ2Utc2NyZWVuLXVwKSB7XG5cbiAgICAuY29udGVudC1zaWRlYmFyIC5jb250ZW50LXNpZGViYXItd3JhcCxcbiAgICAuc2lkZWJhci1jb250ZW50IC5jb250ZW50LXNpZGViYXItd3JhcCxcbiAgICAuZnVsbC13aWR0aC1jb250ZW50IC5jb250ZW50LXNpZGViYXItd3JhcCB7XG4gICAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucygxMik7XG4gICAgICAgIEBpbmNsdWRlIG9tZWdhO1xuICAgIH1cblxuICAgIC5mdWxsLXdpZHRoLWNvbnRlbnQgLmNvbnRlbnQtc2lkZWJhci13cmFwIHtcbiAgICAgICAgLmNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmNvbnRlbnQtc2lkZWJhciAuY29udGVudC1zaWRlYmFyLXdyYXAge1xuICAgICAgICAuY29udGVudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoOSBvZiAxMik7XG4gICAgICAgIH1cblxuICAgICAgICAuc2lkZWJhci1wcmltYXJ5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucygzIG9mIDEyKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIG9tZWdhO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnNpZGViYXItY29udGVudCAuY29udGVudC1zaWRlYmFyLXdyYXAge1xuICAgICAgICAuY29udGVudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoOSBvciAxMik7XG4gICAgICAgICAgICBAaW5jbHVkZSBvbWVnYTtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5zaWRlYmFyLXByaW1hcnkge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDMgb2YgMTIpO1xuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMi4zNTc2NSU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuY29udGVudC1zaWRlYmFyLXNpZGViYXIgLmNvbnRlbnQtc2lkZWJhci13cmFwLFxuICAgIC5zaWRlYmFyLXNpZGViYXItY29udGVudCAuY29udGVudC1zaWRlYmFyLXdyYXAsXG4gICAgLnNpZGViYXItY29udGVudC1zaWRlYmFyIC5jb250ZW50LXNpZGViYXItd3JhcCB7XG4gICAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg5KTtcblxuICAgICAgICAuY29udGVudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoNiBvZiA5KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5zaWRlYmFyLXByaW1hcnkge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDMgb2YgOSk7XG4gICAgICAgICAgICBAaW5jbHVkZSBvbWVnYTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jb250ZW50LXNpZGViYXItc2lkZWJhciAuc2lkZWJhci1zZWNvbmRhcnkge1xuICAgICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMyk7XG4gICAgICAgIEBpbmNsdWRlIG9tZWdhO1xuICAgIH1cblxuICAgIC5zaWRlYmFyLXNpZGViYXItY29udGVudCAuY29udGVudC1zaWRlYmFyLXdyYXAge1xuICAgICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoOSk7XG4gICAgICAgIEBpbmNsdWRlIG9tZWdhO1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG5cbiAgICAgICAgLnNpZGViYXItcHJpbWFyeSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMyBvZiA5KTtcblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDIuMzU3NjUlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmNvbnRlbnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDYgb2YgOSk7XG4gICAgICAgICAgICBAaW5jbHVkZSBvbWVnYTtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5zaWRlYmFyLXNpZGViYXItY29udGVudCAuc2lkZWJhci1zZWNvbmRhcnkge1xuICAgICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMyk7XG5cbiAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDIuMzU3NjUlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnNpZGViYXItY29udGVudC1zaWRlYmFyIC5jb250ZW50LXNpZGViYXItd3JhcCB7XG4gICAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg5KTtcbiAgICAgICAgQGluY2x1ZGUgb21lZ2E7XG4gICAgICAgIGZsb2F0OiByaWdodDtcblxuICAgICAgICAuY29udGVudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoNiBvZiA5KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5zaWRlYmFyLXByaW1hcnkge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDMgb2YgOSk7XG4gICAgICAgICAgICBAaW5jbHVkZSBvbWVnYTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5zaWRlYmFyLWNvbnRlbnQtc2lkZWJhciAuc2lkZWJhci1zZWNvbmRhcnkge1xuICAgICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMyk7XG5cbiAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDIuMzU3NjUlO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiZW1iZWQsXG5pZnJhbWUsXG5pbWcsXG5vYmplY3QsXG52aWRlbyxcbi53cC1jYXB0aW9uIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG59XG5cbmltZyB7XG4gICAgaGVpZ2h0OiBhdXRvO1xufVxuXG4uZmVhdHVyZWQtY29udGVudCBpbWcsXG4uZ2FsbGVyeSBpbWcge1xuICAgIHdpZHRoOiBhdXRvO1xufVxuIiwiLmF2YXRhciB7XG4gICAgZmxvYXQ6IGxlZnQ7XG59XG5cbi5hbGlnbmxlZnQgLmF2YXRhcixcbi5hdXRob3ItYm94IC5hdmF0YXIge1xuICAgIG1hcmdpbi1yaWdodDogMjRweDtcbn1cblxuLmFsaWducmlnaHQgLmF2YXRhciB7XG4gICAgbWFyZ2luLWxlZnQ6IDI0cHg7XG59XG5cbi5jb21tZW50IC5hdmF0YXIge1xuICAgIG1hcmdpbjogMCAxNnB4IDI0cHggMDtcbn1cbiIsImEuYWxpZ25jZW50ZXIgaW1nIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW46IDAgYXV0bztcbn1cblxuYS5hbGlnbm5vbmUge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLmFsaWdubGVmdCB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuLmFsaWducmlnaHQge1xuICAgIGZsb2F0OiByaWdodDtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuYS5hbGlnbmxlZnQsXG5hLmFsaWdubm9uZSxcbmEuYWxpZ25yaWdodCB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xufVxuXG5pbWcuY2VudGVyZWQsXG4uYWxpZ25jZW50ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbjogMCBhdXRvICRiYXNlLXNwYWNpbmcqMjtcbn1cblxuaW1nLmFsaWdubm9uZSxcbi5hbGlnbm5vbmUge1xuICAgIG1hcmdpbi1ib3R0b206ICRiYXNlLXNwYWNpbmc7XG59XG5cbmEuYWxpZ25sZWZ0LFxuaW1nLmFsaWdubGVmdCxcbi53cC1jYXB0aW9uLmFsaWdubGVmdCB7XG4gICAgbWFyZ2luOiAwICRiYXNlLXNwYWNpbmcqMiAkYmFzZS1zcGFjaW5nKjIgMDtcbn1cblxuYS5hbGlnbnJpZ2h0LFxuaW1nLmFsaWducmlnaHQsXG4ud3AtY2FwdGlvbi5hbGlnbnJpZ2h0IHtcbiAgICBtYXJnaW46IDAgMCAkYmFzZS1zcGFjaW5nKjIgJGJhc2Utc3BhY2luZyoyO1xufVxuXG4ud3AtY2FwdGlvbi10ZXh0IHtcbiAgICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5lbnRyeS1jb250ZW50IHAud3AtY2FwdGlvbi10ZXh0IHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xufVxuIiwiLndpZGdldCB7XG4gICAgd29yZC13cmFwOiBicmVhay13b3JkO1xufVxuXG4ud2lkZ2V0IGxpIGxpIHtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgbWFyZ2luOiAwIDAgMCAkYmFzZS1zcGFjaW5nKjI7XG4gICAgcGFkZGluZzogMDtcbn1cblxuLndpZGdldF9jYWxlbmRhciB0YWJsZSB7XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbi53aWRnZXRfY2FsZW5kYXIgdGQsXG4ud2lkZ2V0X2NhbGVuZGFyIHRoIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4iLCIubmF2LXRyaWdnZXIge1xuXHRcdEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGVZKC01MCUpKTtcblx0ICAgIGRpc3BsYXk6IGJsb2NrO1xuXHQgICAgaGVpZ2h0OiA0NXB4O1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRyaWdodDogMTVweDtcblx0XHR0b3A6IDUwJTtcblx0ICAgIHdpZHRoOiA0NXB4O1xuXG5cdCAgICBzcGFuLCBzcGFuOjpiZWZvcmUsIHNwYW46OmFmdGVyIHtcblx0ICAgICAgICAvKiBoYW1idXJnZXIgaWNvbiBpbiBDU1MgKi9cblx0ICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cdCAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHQgICAgICAgIGhlaWdodDogM3B4O1xuXHQgICAgICAgIHdpZHRoOiAyNHB4O1xuXHQgICAgICAgIGJhY2tncm91bmQ6ICR0ZXh0LWdyYXk7XG5cdCAgICB9XG5cblx0ICAgIHNwYW4ge1xuXHQgICAgICAgIC8qIGxpbmUgaW4gdGhlIGNlbnRlciAqL1xuXHQgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0ICAgICAgICB0b3A6IDUwJTtcblx0ICAgICAgICByaWdodDogMTBweDtcblx0ICAgICAgICBtYXJnaW4tdG9wOiAtMnB4O1xuXHQgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYmFja2dyb3VuZCAuM3MgLjNzKTtcblx0ICAgIH1cblxuXHQgICAgc3Bhbjo6YmVmb3JlLCBzcGFuOjphZnRlciB7XG5cdCAgICAgICAgLyogb3RoZXIgMiBsaW5lcyAqL1xuXHQgICAgICAgIGNvbnRlbnQ6ICcnO1xuXHQgICAgICAgIHJpZ2h0OiAwO1xuXHQgICAgICAgIC8qIEZvcmNlIEhhcmR3YXJlIEFjY2VsZXJhdGlvbiBpbiBXZWJLaXQgKi9cblx0ICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlWigwKSk7XG5cdCAgICAgICAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG5cdCAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuXHQgICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybS1vcmlnaW4oMCUgNTAlKTtcblx0ICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKHRyYW5zZm9ybSAuM3MgLjNzKTtcblx0ICAgIH1cblxuXHQgICAgc3Bhbjo6YmVmb3JlIHtcblx0ICAgICAgICAvKiBtZW51IGljb24gdG9wIGxpbmUgKi9cblx0ICAgICAgICB0b3A6IC02cHg7XG5cdCAgICB9XG5cblx0ICAgIHNwYW46OmFmdGVyIHtcblx0ICAgICAgICAvKiBtZW51IGljb24gYm90dG9tIGxpbmUgKi9cblx0ICAgICAgICB0b3A6IDZweDtcblx0ICAgIH1cblxuXHQgICAgJi5tb2JpbGUtaXMtb3BlbiB7XG5cdCAgICAgICAgc3BhbiB7XG5cdCAgICAgICAgICAgIC8qIGhpZGUgbGluZSBpbiB0aGUgY2VudGVyICovXG5cdCAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEod2hpdGUsIDApO1xuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHNwYW46OmJlZm9yZSwgc3Bhbjo6YWZ0ZXIge1xuXHQgICAgICAgICAgICAvKiBrZWVwIHZpc2libGUgb3RoZXIgMiBsaW5lcyAqL1xuXHQgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkdGV4dC1ncmF5O1xuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHNwYW46OmJlZm9yZSB7XG5cdCAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGVYKDRweCkgdHJhbnNsYXRlWSgtM3B4KSByb3RhdGUoNDVkZWcpKTtcblx0ICAgICAgICB9XG5cblx0ICAgICAgICBzcGFuOjphZnRlciB7XG5cdCAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGVYKDRweCkgdHJhbnNsYXRlWSgycHgpIHJvdGF0ZSgtNDVkZWcpKTtcblx0ICAgICAgICB9XG5cdCAgICB9XG5cdH1cblxuQGluY2x1ZGUgbWVkaWEoJGxhcmdlLXNjcmVlbi11cCkge1xuXHQubmF2LXRyaWdnZXIge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cbn1cbiIsIi5zaXRlLXRpdGxlIHtcbiAgICBhLFxuICAgIGE6aG92ZXIge1xuICAgICAgICBjb2xvcjogJGRhcmstZ3JheTtcbiAgICB9XG59XG5cbi5oZWFkZXItaW1hZ2UgLnNpdGUtdGl0bGUgPiBhIHtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoYXNzZXRzL2ltYWdlcy9sb2dvLnBuZykgbm8tcmVwZWF0IGxlZnQ7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1pbi1oZWlnaHQ6IDUwcHg7XG4gICAgd2lkdGg6IDEwMCU7XG59XG4iLCIuc2l0ZS1kZXNjcmlwdGlvbiB7XG5cbn1cbiIsIi5nZW5lc2lzLW5hdi1tZW51IC5tZW51LWl0ZW0ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG4uZ2VuZXNpcy1uYXYtbWVudSBhIHtcbiAgICBjb2xvcjogJGRhcmstZ3JheTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nLWxlZnQ6IGVtKDMwKTtcbn1cblxuLmdlbmVzaXMtbmF2LW1lbnUgYTpob3Zlcixcbi5nZW5lc2lzLW5hdi1tZW51IC5jdXJyZW50LW1lbnUtaXRlbSA+IGEsXG4uZ2VuZXNpcy1uYXYtbWVudSAuc3ViLW1lbnUgLmN1cnJlbnQtbWVudS1pdGVtID4gYTpob3ZlciB7XG4gICAgY29sb3I6ICRibHVlO1xufVxuIiwiLnBhZ2UtdGl0bGUge1xuXHRmb250LXNpemU6IDQycHg7XG5cdGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgY29sb3I6ICR0ZXh0LWdyYXk7XG5cdG1hcmdpbjogMDtcbn1cbiIsIi5wYWdlLWRlc2Mge1xuICAgIGNvbG9yOiAkdGV4dC1ncmF5O1xuXHRmb250LXNpemU6IDMwcHg7XG4gICAgZm9udC13ZWlnaHQ6IDEwMDtcbiAgICBsaW5lLWhlaWdodDogMzZweDtcbiAgICBtYXJnaW46IDA7XG59XG4iLCIuZmVhdHVyZWQtaW1hZ2Uge1xuXHRwYWRkaW5nLWJvdHRvbTogZW0oMTUpO1xuXG5cdGltZyB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0bWFyZ2luOiAwIGF1dG87XG5cdH1cbn1cbiIsIi8qKioqKioqXG4qKiBXZSBhcmVuJ3QgZ29pbmcgdG8gdXNlIE5lYXQgZm9yIHRoaXMgZ2FsbGVyeSBkdWUgdG8gdGhlIHBvc3NpYmxlIG51bWJlciBvZiBnYWxsZXJ5IGNvbHVtbnNcbioqIHRoYXQgZG9uJ3QgZWFzaWx5IGJyZWFrIGludG8gMTIuXG4qKioqKioqL1xuXG5cbi5nYWxsZXJ5IHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uZ2FsbGVyeS1pdGVtIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW46IDAgMCAyOHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmdhbGxlcnktY29sdW1ucy0yIC5nYWxsZXJ5LWl0ZW0ge1xuICAgIHdpZHRoOiA1MCU7XG59XG5cbi5nYWxsZXJ5LWNvbHVtbnMtMyAuZ2FsbGVyeS1pdGVtIHtcbiAgICB3aWR0aDogMzMlO1xufVxuXG4uZ2FsbGVyeS1jb2x1bW5zLTQgLmdhbGxlcnktaXRlbSB7XG4gICAgd2lkdGg6IDI1JTtcbn1cblxuLmdhbGxlcnktY29sdW1ucy01IC5nYWxsZXJ5LWl0ZW0ge1xuICAgIHdpZHRoOiAyMCU7XG59XG5cbi5nYWxsZXJ5LWNvbHVtbnMtNiAuZ2FsbGVyeS1pdGVtIHtcbiAgICB3aWR0aDogMTYuNjY2NiU7XG59XG5cbi5nYWxsZXJ5LWNvbHVtbnMtNyAuZ2FsbGVyeS1pdGVtIHtcbiAgICB3aWR0aDogMTQuMjg1NyU7XG59XG5cbi5nYWxsZXJ5LWNvbHVtbnMtOCAuZ2FsbGVyeS1pdGVtIHtcbiAgICB3aWR0aDogMTIuNSU7XG59XG5cbi5nYWxsZXJ5LWNvbHVtbnMtOSAuZ2FsbGVyeS1pdGVtIHtcbiAgICB3aWR0aDogMTEuMTExMSU7XG59XG5cbi5nYWxsZXJ5IGltZyB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGRhcmstZ3JheTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgcGFkZGluZzogNHB4O1xufVxuXG4uZ2FsbGVyeSBpbWc6aG92ZXIge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcbn1cbiIsIi5icmVhZGNydW1iIHtcblx0YmFja2dyb3VuZDogJGxpZ2h0LWdyYXk7XG5cdGNvbG9yOiAkdGV4dC1ncmF5O1xuXHRmb250LXNpemU6IDExcHg7XG5cdGZvbnQtd2VpZ2h0OiA1MDA7XG5cdGxldHRlci1zcGFjaW5nOiAxcHg7XG5cdHBhZGRpbmc6IGVtKDMwKSBlbSgzMCk7XG5cblx0QGluY2x1ZGUgbWVkaWEoJGxhcmdlLXNjcmVlbi11cCkge1xuXHRcdHBhZGRpbmc6IGVtKDMwKSAwO1xuXHR9XG59XG4iLCIuc3RpY2t5IHtcbiAgICBcbn1cbiIsIi50aXRsZS1hcmVhIHtcbiAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMTIpO1xuICAgIEBpbmNsdWRlIG9tZWdhO1xuICAgIHBhZGRpbmc6IDEycHggMDtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCRsYXJnZS1zY3JlZW4tdXApIHtcbiAgICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDMpO1xuICAgICAgICBwYWRkaW5nOiAxMnB4O1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgfVxufVxuXG4uaGVhZGVyLWZ1bGwtd2lkdGggLnRpdGxlLWFyZWEge1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4uc2l0ZS1kZXNjcmlwdGlvbixcbi5zaXRlLXRpdGxlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4uaGVhZGVyLWltYWdlIC5zaXRlLWRlc2NyaXB0aW9uLFxuLmhlYWRlci1pbWFnZSAuc2l0ZS10aXRsZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgdGV4dC1pbmRlbnQ6IC05OTk5cHg7XG59XG4iLCIkc3ViLW1lbnUtd2lkdGg6IGVtKDMwMCk7XG5cbi5nZW5lc2lzLW5hdi1tZW51IC5zdWItbWVudSB7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbihvcGFjaXR5IC40cyBlYXNlLWluLW91dCk7XG4gICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgYm9yZGVyOiAkYmFzZS1ib3JkZXI7XG4gICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgICBsZWZ0OiAtOTk5OXB4O1xuICAgIG1hcmdpbi1sZWZ0OiAxLjg3NWVtO1xuICAgIG1hcmdpbi10b3A6IDVweDtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogJHN1Yi1tZW51LXdpZHRoO1xuICAgIHotaW5kZXg6IDEwMDtcbiAgICB0b3A6IDA7XG4gICAgbWFyZ2luLXRvcDogNTlweDtcblxuICAgICY6YWZ0ZXIsXG4gICAgJjpiZWZvcmUge1xuICAgICAgICBib3JkZXI6IDEwcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgd2lkdGg6IDA7XG4gICAgfVxuXG4gICAgJjpiZWZvcmUge1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAjZmZmO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogLTIwcHg7XG4gICAgICAgIGxlZnQ6IDUlO1xuICAgICAgICB6LWluZGV4OiAyO1xuICAgIH1cblxuICAgICY6YWZ0ZXIge1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkYmFzZS1ib3JkZXItY29sb3I7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAtMjFweDtcbiAgICAgICAgbGVmdDogNSU7XG4gICAgICAgIHotaW5kZXg6IDE7XG4gICAgfVxufVxuXG4uZ2VuZXNpcy1uYXYtbWVudSAuc3ViLW1lbnUgYSB7XG4gICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBwYWRkaW5nOiAkYmFzZS1zcGFjaW5nLzI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiAkc3ViLW1lbnUtd2lkdGg7XG59XG5cbi5nZW5lc2lzLW5hdi1tZW51IC5zdWItbWVudSAuc3ViLW1lbnUge1xuICAgIG1hcmdpbjogLTU1cHggMCAwIDE5OXB4O1xufVxuXG4uZ2VuZXNpcy1uYXYtbWVudSAubWVudS1pdGVtOmhvdmVyIHtcbiAgICBwb3NpdGlvbjogc3RhdGljO1xufVxuXG4uZ2VuZXNpcy1uYXYtbWVudSAubWVudS1pdGVtOmhvdmVyID4gLnN1Yi1tZW51IHtcbiAgICBsZWZ0OiBhdXRvO1xuICAgIG9wYWNpdHk6IDE7XG59XG5cbi5zaXRlLWhlYWRlciAuc3ViLW1lbnUge1xuICAgIGJvcmRlci10b3A6ICRiYXNlLWJvcmRlcjtcbn1cblxuLnNpdGUtaGVhZGVyIC5zdWItbWVudSAuc3ViLW1lbnUge1xuICAgIG1hcmdpbi10b3A6IC01NnB4O1xufVxuIiwiLmVudHJ5LWNvbnRlbnQgb2wsXG4uZW50cnktY29udGVudCB1bCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMjhweDtcbiAgICBtYXJnaW4tbGVmdDogNDBweDtcbn1cblxuLmVudHJ5LWNvbnRlbnQgb2wgPiBsaSB7XG4gICAgbGlzdC1zdHlsZS10eXBlOiBkZWNpbWFsO1xufVxuXG4uZW50cnktY29udGVudCB1bCA+IGxpIHtcbiAgICBsaXN0LXN0eWxlLXR5cGU6IGRpc2M7XG59XG5cbi5lbnRyeS1jb250ZW50IG9sIG9sLFxuLmVudHJ5LWNvbnRlbnQgdWwgdWwge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5lbnRyeS1jb250ZW50IGNvZGUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMzMzM7XG4gICAgY29sb3I6ICNkZGQ7XG59XG4iLCJwLmVudHJ5LW1ldGEge1xuICAgIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5lbnRyeS1oZWFkZXIgLmVudHJ5LW1ldGEge1xuICAgIG1hcmdpbi1ib3R0b206ICRiYXNlLXNwYWNpbmcqMjtcbn1cblxuLmVudHJ5LWZvb3RlciAuZW50cnktbWV0YSB7XG4gICAgYm9yZGVyLXRvcDogJGJhc2UtYm9yZGVyO1xuICAgIHBhZGRpbmctdG9wOiAkYmFzZS1zcGFjaW5nKjI7XG59XG5cbi5lbnRyeS1jYXRlZ29yaWVzLFxuLmVudHJ5LXRhZ3Mge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uZW50cnktY29tbWVudHMtbGluazo6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcMjAxNFwiO1xuICAgIG1hcmdpbjogMCAkYmFzZS1zcGFjaW5nIDAgJGJhc2Utc3BhY2luZy8yO1xufVxuIiwiLnBhZ2luYXRpb24ge1xuICAgIGNsZWFyOiBib3RoO1xuICAgIG1hcmdpbjogJGJhc2Utc3BhY2luZyoyIDA7XG5cbiAgICAucGFnaW5hdGlvbi1wcmV2aW91cywgLnBhZ2luYXRpb24tbmV4dCB7XG4gICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJG1lZGl1bS1zY3JlZW4tdXApIHtcbiAgICAgICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgIH1cbiAgICB9XG5cblxuICAgIC5wYWdpbmF0aW9uLXByZXZpb3VzIGEsIC5wYWdpbmF0aW9uLW5leHQgYSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCRtZWRpdW0tc2NyZWVuLXVwKSB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDBweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wYWdpbmF0aW9uLXByZXZpb3VzIGEsIC5wYWdpbmF0aW9uLXByZXZpb3VzIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJG1lZGl1bS1zY3JlZW4tdXApIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnBhZ2luYXRpb24tbmV4dCBhLCAucGFnaW5hdGlvbi1uZXh0IHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJG1lZGl1bS1zY3JlZW4tdXApIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgfVxuICAgIH1cblxufVxuXG4uYWRqYWNlbnQtZW50cnktcGFnaW5hdGlvbiB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLmFyY2hpdmUtcGFnaW5hdGlvbiBsaSB7XG4gICAgZGlzcGxheTogaW5saW5lO1xuXG4gICAgYSB7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIDAuMnMgZWFzZSk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRkYXJrLWdyYXk7XG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplO1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgcGFkZGluZzogNnB4IDEwcHg7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmx1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYuYWN0aXZlIGEge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmx1ZTtcbiAgICB9XG59XG5cbi50b3AtdXRpbHMgLnBhZ2luYXRpb24ge1xuICAgIG1hcmdpbjogMDtcbn1cblxuLnRvcC11dGlscyAuc2VhcmNoLWZvcm0ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgIGlucHV0W3R5cGU9XCJzZWFyY2hcIl0ge1xuICAgICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB3aWR0aDogMzIwcHg7XG4gICAgfVxuXG4gICAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG4uYWRqYWNlbnQtZW50cnktcGFnaW5hdGlvbiB7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG59XG4iLCIuc2l0ZS1oZWFkZXIgLmhlYWRlci13aWRnZXQtYXJlYSB7XG5cdGRpc3BsYXk6IG5vbmU7XG5cblx0QGluY2x1ZGUgbWVkaWEoJGxhcmdlLXNjcmVlbi11cCkge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHBhZGRpbmc6IGVtKDEwKSAwO1xuXHRcdHBhZGRpbmctdG9wOiAxZW07XG5cdH1cbn1cbiIsIiRzZWFyY2hfYmc6ICNkOGQ4ZDg7XG5cbkBpbmNsdWRlIG1lZGlhKCRsYXJnZS1zY3JlZW4tdXApIHtcblx0LndpZGdldF9zZWFyY2hfc29jaWFsIHtcblx0XHRmbG9hdDogcmlnaHQ7XG5cdFx0bWFyZ2luLWJvdHRvbTogZW0oMTUpO1xuXHR9XG5cblx0LndpZGdldF9zZWFyY2hfc29jaWFsIC5zZWFyY2gtZm9ybS13cmFwcGVyLFxuXHQud2lkZ2V0X3NlYXJjaF9zb2NpYWwgLnNvY2lhbC1saW5rcyB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0ZmxvYXQ6IGxlZnQ7XG5cdH1cblxuXHQud2lkZ2V0X3NlYXJjaF9zb2NpYWwgLnNlYXJjaC1mb3JtLXdyYXBwZXIge1xuXHRcdGJhY2tncm91bmQ6ICRzZWFyY2hfYmc7XG5cdFx0Ym9yZGVyOiBub25lO1xuXHRcdGJvcmRlci1yYWRpdXM6IDNweDtcblx0XHRvdmVyZmxvdzogYXV0bztcblx0fVxuXG5cdC53aWRnZXRfc2VhcmNoX3NvY2lhbCAuc2VhcmNoLWZvcm0taWNvbixcblx0LndpZGdldF9zZWFyY2hfc29jaWFsIC5zZWFyY2gtZm9ybSB7XG5cdFx0ZGlzcGxheTogYmxvY2s7IGZsb2F0OiBsZWZ0O1xuXHR9XG5cblx0LndpZGdldF9zZWFyY2hfc29jaWFsIC5zZWFyY2gtZm9ybS1pY29uIHtcblx0XHRwYWRkaW5nOiAwIDVweDtcblx0XHRzdmcge1xuXHRcdFx0aGVpZ2h0OiAxNHB4O1xuXHRcdFx0d2lkdGg6IDE0cHg7XG5cdFx0fVxuXHR9XG5cblx0LndpZGdldF9zZWFyY2hfc29jaWFsIC5zZWFyY2gtZm9ybSBpbnB1dFt0eXBlPVwic2VhcmNoXCJdIHtcblx0XHRiYWNrZ3JvdW5kOiAkc2VhcmNoX2JnO1xuXHRcdGJvcmRlcjogbm9uZTtcblx0XHRib3gtc2hhZG93OiBub25lO1xuXHRcdGZvbnQtc2l6ZTogMTFweDtcblx0XHRtYXJnaW46IDA7XG5cdFx0cGFkZGluZzogNnB4O1xuXHRcdHdpZHRoOiAxNTBweDtcblx0fVxuXG5cdC53aWRnZXRfc2VhcmNoX3NvY2lhbCAuc2VhcmNoLWZvcm0gaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxuXG5cdC53aWRnZXRfc2VhcmNoX3NvY2lhbCAuc29jaWFsLWxpbmtzIHtcblx0XHRib3JkZXItbGVmdDogJGJhc2UtYm9yZGVyO1xuXHRcdG1hcmdpbi1sZWZ0OiAxNXB4O1xuXHRcdHBhZGRpbmctbGVmdDogMTVweDtcblx0fVxuXG5cdC53aWRnZXRfc2VhcmNoX3NvY2lhbCAuc29jaWFsLWxpbmsge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHR0b3A6IDNweDtcblx0fVxuXG5cdC53aWRnZXRfc2VhcmNoX3NvY2lhbCAuc29jaWFsLWxpbmsgYSB7XG5cblx0XHRzdmcge1xuXHRcdFx0QGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgJGJhc2UtZHVyYXRpb24gJGJhc2UtdGltaW5nKTtcblx0XHRcdGZpbGw6ICR0ZXh0LWdyYXk7XG5cdFx0XHRoZWlnaHQ6IDE4cHg7XG5cdFx0XHR3aWR0aDogMThweDtcblx0XHR9XG5cblx0XHQmOmhvdmVyIHtcblx0XHRcdHN2ZyB7XG5cdFx0XHRcdGZpbGw6ICRhY3Rpb24tY29sb3I7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cbn1cbiIsIi5zZXJ2aWNlcy1tZW51IHtcblx0cG9zaXRpb246IGZpeGVkO1xuXHR0b3A6IC0xMDAlO1xuXHRsZWZ0OiAwO1xuXHRvcGFjaXR5OiAwO1xuXHRyaWdodDogMDtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHR0cmFuc2l0aW9uOiBvcGFjaXR5ICRiYXNlLWR1cmF0aW9uICRiYXNlLXRpbWluZztcblx0ei1pbmRleDogMTAwMDtcblxuXHRsaSB7XG5cdFx0ZGlzcGxheTogaW5saW5lO1xuXHRcdHBhZGRpbmc6IDAgMjBweDtcblx0fVxuXG5cdCYuaXMtcHJlc2VudCB7XG5cdFx0b3BhY2l0eTogMTtcblx0XHR0b3A6IDA7XG5cdH1cbn1cbiIsIi8qIERyb3Bkb3duIGNvbnRyb2wgKi9cbi5zZWxlY3RCb3gtZHJvcGRvd24ge1xuICAgIG1pbi13aWR0aDogMTUwcHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJvcmRlcjogc29saWQgMXB4ICNCQkI7XG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBjb2xvcjogIzAwMDtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgYmFja2dyb3VuZDogI0YyRjJGMjtcbiAgICBiYWNrZ3JvdW5kOiAtbW96LWxpbmVhci1ncmFkaWVudCh0b3AsICNGOEY4RjggMSUsICNFMUUxRTEgMTAwJSk7XG4gICAgYmFja2dyb3VuZDogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9wLCBsZWZ0IGJvdHRvbSwgY29sb3Itc3RvcCgxJSwgI0Y4RjhGOCksIGNvbG9yLXN0b3AoMTAwJSwgI0UxRTFFMSkpO1xuICAgIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9JyNGOEY4RjgnLCBlbmRDb2xvcnN0cj0nI0UxRTFFMScsIEdyYWRpZW50VHlwZT0wKTtcbiAgICAtbW96LWJveC1zaGFkb3c6IDAgMXB4IDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAuNzUpO1xuICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCAxcHggMCByZ2JhKDI1NSwgMjU1LCAyNTUsIC43NSk7XG4gICAgYm94LXNoYWRvdzogMCAxcHggMCByZ2JhKDI1NSwgMjU1LCAyNTUsIC43NSk7XG4gICAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgLW1vei1ib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi5zZWxlY3RCb3gtZHJvcGRvd246Zm9jdXMsXG4uc2VsZWN0Qm94LWRyb3Bkb3duOmZvY3VzIC5zZWxlY3RCb3gtYXJyb3cge1xuICAgIGJvcmRlci1jb2xvcjogIzY2Njtcbn1cblxuLnNlbGVjdEJveC1kcm9wZG93bi5zZWxlY3RCb3gtbWVudVNob3dpbmcge1xuICAgIC1tb3otYm9yZGVyLXJhZGl1cy1ib3R0b21sZWZ0OiAwO1xuICAgIC1tb3otYm9yZGVyLXJhZGl1cy1ib3R0b21yaWdodDogMDtcbiAgICAtd2Via2l0LWJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG4gICAgLXdlYmtpdC1ib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbiAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xufVxuXG4uc2VsZWN0Qm94LWRyb3Bkb3duIC5zZWxlY3RCb3gtbGFiZWwge1xuICAgIHBhZGRpbmc6IDJweCA4cHg7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLnNlbGVjdEJveC1kcm9wZG93biAuc2VsZWN0Qm94LWFycm93IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIHdpZHRoOiAyM3B4O1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoanF1ZXJ5LnNlbGVjdEJveC1hcnJvdy5naWYpIDUwJSBjZW50ZXIgbm8tcmVwZWF0O1xuICAgIGJvcmRlci1sZWZ0OiBzb2xpZCAxcHggI0JCQjtcbn1cblxuLyogRHJvcGRvd24gbWVudSAqL1xuLnNlbGVjdEJveC1kcm9wZG93bi1tZW51IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogOTk5OTk7XG4gICAgbWF4LWhlaWdodDogMjAwcHg7XG4gICAgbWluLWhlaWdodDogMWVtO1xuICAgIGJvcmRlcjogc29saWQgMXB4ICNCQkI7IC8qIHNob3VsZCBiZSB0aGUgc2FtZSBib3JkZXIgd2lkdGggYXMgLnNlbGVjdEJveC1kcm9wZG93biAqL1xuICAgIGJhY2tncm91bmQ6ICNGRkY7XG4gICAgLW1vei1ib3gtc2hhZG93OiAwIDJweCA2cHggcmdiYSgwLCAwLCAwLCAuMik7XG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDJweCA2cHggcmdiYSgwLCAwLCAwLCAuMik7XG4gICAgYm94LXNoYWRvdzogMCAycHggNnB4IHJnYmEoMCwgMCwgMCwgLjIpO1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbn1cblxuLyogSW5saW5lIGNvbnRyb2wgKi9cbi5zZWxlY3RCb3gtaW5saW5lIHtcbiAgICBtaW4td2lkdGg6IDE1MHB4O1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYm9yZGVyOiBzb2xpZCAxcHggI0JCQjtcbiAgICBiYWNrZ3JvdW5kOiAjRkZGO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAtbW96LWJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi5zZWxlY3RCb3gtaW5saW5lOmZvY3VzIHtcbiAgICBib3JkZXItY29sb3I6ICM2NjY7XG59XG5cbi8qIE9wdGlvbnMgKi9cbi5zZWxlY3RCb3gtb3B0aW9ucyxcbi5zZWxlY3RCb3gtb3B0aW9ucyBMSSxcbi5zZWxlY3RCb3gtb3B0aW9ucyBMSSBBIHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDtcbn1cblxuLnNlbGVjdEJveC1vcHRpb25zIExJIEEge1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgcGFkZGluZzogMCAuNWVtO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBiYWNrZ3JvdW5kOiA2cHggY2VudGVyIG5vLXJlcGVhdDtcbn1cblxuLnNlbGVjdEJveC1vcHRpb25zIExJLnNlbGVjdEJveC1ob3ZlciBBIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRUVFO1xufVxuXG4uc2VsZWN0Qm94LW9wdGlvbnMgTEkuc2VsZWN0Qm94LWRpc2FibGVkIEEge1xuICAgIGNvbG9yOiAjODg4O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4uc2VsZWN0Qm94LW9wdGlvbnMgTEkuc2VsZWN0Qm94LXNlbGVjdGVkIEEge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNDOERFRjQ7XG59XG5cbi5zZWxlY3RCb3gtb3B0aW9ucyAuc2VsZWN0Qm94LW9wdGdyb3VwIHtcbiAgICBjb2xvcjogIzY2NjtcbiAgICBiYWNrZ3JvdW5kOiAjRUVFO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgcGFkZGluZzogMCAuM2VtO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi8qIERpc2FibGVkIHN0YXRlICovXG4uc2VsZWN0Qm94LnNlbGVjdEJveC1kaXNhYmxlZCB7XG4gICAgY29sb3I6ICM4ODggIWltcG9ydGFudDtcbn1cblxuLnNlbGVjdEJveC1kcm9wZG93bi5zZWxlY3RCb3gtZGlzYWJsZWQgLnNlbGVjdEJveC1hcnJvdyB7XG4gICAgb3BhY2l0eTogLjU7XG4gICAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PTUwKTtcbiAgICBib3JkZXItY29sb3I6ICM2NjY7XG59XG5cbi5zZWxlY3RCb3gtaW5saW5lLnNlbGVjdEJveC1kaXNhYmxlZCB7XG4gICAgY29sb3I6ICM4ODggIWltcG9ydGFudDtcbn1cblxuLnNlbGVjdEJveC1pbmxpbmUuc2VsZWN0Qm94LWRpc2FibGVkIC5zZWxlY3RCb3gtb3B0aW9ucyBBIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuXG4uc2VsZWN0Qm94e1xuXHRiYWNrZ3JvdW5kOiAjNGE5MGUyICFpbXBvcnRhbnQ7XG5cdGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xuXHRmb250LXNpemU6IDE0cHggIWltcG9ydGFudDtcblx0Ym9yZGVyLXJhZGl1czogNXB4ICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWJvdHRvbTogJHNtYWxsLXNwYWNpbmc7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkbGFyZ2Utc2NyZWVuLXVwKSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIHdpZHRoOiAxNTVweCAhaW1wb3J0YW50O1xuICAgIH1cbn1cblxuLnNlbGVjdEJveC1kcm9wZG93biAuc2VsZWN0Qm94LWxhYmVsIHtcblx0cGFkZGluZy10b3A6IDdweCAhaW1wb3J0YW50O1xufVxuLnNlbGVjdEJveC1kcm9wZG93bi1tZW51IHtcblx0d2lkdGg6IDEwMCU7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0ei1pbmRleDogOTk5O1xuICBcdG92ZXJmbG93OiBhdXRvO1xufVxuXG4uc2VsZWN0Qm94LWRyb3Bkb3duIC5zZWxlY3RCb3gtYXJyb3cge1xuXHRwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcblx0YmFja2dyb3VuZDogdXJsKCdhc3NldHMvaW1hZ2VzL2Ryb3AtZG93bi1hcnJvdy5wbmcnKSBuby1yZXBlYXQgIWltcG9ydGFudDtcblx0Ym9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG5cdHdpZHRoOiAxMXB4ICFpbXBvcnRhbnQ7XG5cdGhlaWdodDogNnB4ICFpbXBvcnRhbnQ7XG5cdHJpZ2h0OiAxNXB4ICFpbXBvcnRhbnQ7XG5cdHRvcDogMTRweCAhaW1wb3J0YW50O1xuXHRjdXJzb3I6IHBvaW50ZXIgIWltcG9ydGFudDtcbn1cbiIsIiRzaXRlLWhlYWRlci1oZWlnaHQ6IGVtKDc1KTtcblxuLnNpdGUtaGVhZGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTZlNmU2O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIC53cmFwIHtcbiAgICAgICAgQGluY2x1ZGUgb3V0ZXItY29udGFpbmVyKDEyMDBweCk7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJGxhcmdlLXNjcmVlbi11cCkge1xuICAgICAgICBtaW4taGVpZ2h0OiAkc2l0ZS1oZWFkZXItaGVpZ2h0O1xuICAgIH1cbn1cblxuLnNpdGUtaGVhZGVyIC53aWRnZXQtYXJlYSB7XG4gICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDEyKTtcbiAgICBAaW5jbHVkZSBvbWVnYTtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkbGFyZ2Utc2NyZWVuLXVwKSB7XG4gICAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg5KTtcbiAgICAgICAgQGluY2x1ZGUgb21lZ2E7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICB9XG59XG5cblxuI21lbnUtbWFpbi1tZW51LTEgLm5hdi1zZWFyY2gge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogNDBweDtcbiAgICBoZWlnaHQ6IDE2cHg7XG5cbiAgICBzdmcge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMTJweDtcbiAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgIGZpbGw6ICRkYXJrLWdyYXk7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICBmaWxsOiAkYmx1ZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmhlYWRlci13aWRnZXQtYXJlYSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4ubmF2YmFyLXNlYXJjaCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB6LWluZGV4OiAxMDAwO1xuXG4gICAgLm5hdi1zZWFyY2gtd3JhcCB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAxOHB4O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgfVxuXG4gICAgZm9ybSB7XG4gICAgICAgIHdpZHRoOiA5NSU7XG4gICAgICAgIGlucHV0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmNsb3NlLW5hdi1zZWFyY2gge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMjRweDtcbiAgICAgICAgcmlnaHQ6IDA7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIuZ2VuZXNpcy1uYXYtbWVudSB7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6ICRiYXNlLWxpbmUtaGVpZ2h0O1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4uZ2VuZXNpcy1uYXYtbWVudSA+IC5maXJzdCA+IGEge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbn1cblxuLmdlbmVzaXMtbmF2LW1lbnUgPiAubGFzdCA+IGEge1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG59XG5cbi5nZW5lc2lzLW5hdi1tZW51ID4gLnJpZ2h0IHtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICBwYWRkaW5nOiAkYmFzZS1zcGFjaW5nKjIgMDtcbn1cblxuLmdlbmVzaXMtbmF2LW1lbnUgPiAucmlnaHQgPiBhIHtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgcGFkZGluZzogMDtcbn1cblxuLmdlbmVzaXMtbmF2LW1lbnUgPiAucnNzID4gYSB7XG4gICAgbWFyZ2luLWxlZnQ6IDQ4cHg7XG59XG5cbi5nZW5lc2lzLW5hdi1tZW51ID4gLnNlYXJjaCB7XG4gICAgcGFkZGluZzogJGJhc2Utc3BhY2luZyAwIDA7XG59XG5cbi5zaXRlLWhlYWRlciAuZ2VuZXNpcy1uYXYtbWVudSBsaSBsaSB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG59XG5cbi5uYXYtcHJpbWFyeSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGRhcmstZ3JheTtcbn1cblxuLm5hdi1wcmltYXJ5IC5nZW5lc2lzLW5hdi1tZW51IGEge1xuICAgIGNvbG9yOiB3aGl0ZTtcbn1cblxuLm5hdi1wcmltYXJ5IC5nZW5lc2lzLW5hdi1tZW51IC5zdWItbWVudSBhIHtcbiAgICBjb2xvcjogJGRhcmstZ3JheTtcbn1cblxuLm5hdi1wcmltYXJ5IC5nZW5lc2lzLW5hdi1tZW51IGE6aG92ZXIsXG4ubmF2LXByaW1hcnkgLmdlbmVzaXMtbmF2LW1lbnUgLmN1cnJlbnQtbWVudS1pdGVtID4gYSxcbi5uYXYtcHJpbWFyeSAuZ2VuZXNpcy1uYXYtbWVudSAuc3ViLW1lbnUgLmN1cnJlbnQtbWVudS1pdGVtID4gYTpob3ZlciB7XG4gICAgY29sb3I6ICRibHVlO1xufVxuXG4ubmF2LXNlY29uZGFyeSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG5cbi5zaXRlLWhlYWRlciAubWVudS1pdGVtIHtcbiAgICBAaW5jbHVkZSBtZWRpYSgkbGFyZ2Utc2NyZWVuLXVwKSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDQzcHg7XG4gICAgfVxufVxuIiwiLnNpdGUtc3ViaGVhZGVyIHtcblx0YmFja2dyb3VuZDogJGRhcmstZ3JheTtcblxuXHQud3JhcCB7XG5cdFx0QGluY2x1ZGUgb3V0ZXItY29udGFpbmVyKDEyMDBweCk7XG5cdH1cbn1cblxuLnNpdGUtc3ViaGVhZGVyIC5nZW5lc2lzLW5hdi1tZW51IHtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRwYWRkaW5nOiAxMHB4IDA7XG5cblx0QGluY2x1ZGUgbWVkaWEoJG1lZGl1bS1zY3JlZW4tdXApIHtcblx0XHR0ZXh0LWFsaWduOiByaWdodDtcblx0fVxuXG5cdC5tZW51LWl0ZW0ge1xuXHRcdGZvbnQtc2l6ZTogMTRweDtcblxuXHRcdCY6Zmlyc3QtY2hpbGQgYSB7XG5cdFx0XHRwYWRkaW5nLWxlZnQ6IDA7XG5cblx0XHRcdEBpbmNsdWRlIG1lZGlhKCRtZWRpdW0tc2NyZWVuLXVwKSB7XG5cdFx0XHRcdHBhZGRpbmctbGVmdDogMS44NzVlbTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQubWVudS1pdGVtIGEge1xuXHRcdGNvbG9yOiB3aGl0ZTtcblxuXHRcdCY6aG92ZXIge1xuXHRcdFx0Y29sb3I6ICRhY3Rpb24tY29sb3I7XG5cdFx0fVxuXHR9XG59XG5cbi5zaXRlLXN1YmhlYWRlciAubmV3c2xldHRlci1idXR0b24ge1xuXG5cdGEge1xuXHRcdEBpbmNsdWRlIHRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciAkYmFzZS1kdXJhdGlvbiAkYmFzZS10aW1pbmcpO1xuXHRcdGJhY2tncm91bmQ6ICRhY3Rpb24tY29sb3I7XG5cdFx0Ym9yZGVyLXJhZGl1czogJGJhc2UtYm9yZGVyLXJhZGl1cztcblx0XHRjb2xvcjogd2hpdGU7XG5cdFx0bWFyZ2luLWxlZnQ6IDIwcHg7XG5cdFx0cGFkZGluZzogNXB4IDEwcHg7XG5cblx0XHQmOmhvdmVyIHtcblx0XHRcdGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xuXHRcdFx0YmFja2dyb3VuZDogc2hhZGUoJGFjdGlvbi1jb2xvciwgMTApO1xuXHRcdH1cblx0fVxufVxuXG5cbi5zaXRlLXN1YmhlYWRlciAud3BtZW51Y2FydGxpIHtcblxuXHRhIHtcblx0XHRwYWRkaW5nLWxlZnQ6IDEuMjVlbTtcblx0XHRAbWVkaWEgKCBtYXgtd2lkdGg6IDEyMzBweCApIHtcblx0XHRcdHBhZGRpbmctcmlnaHQ6IDEuMjVlbTtcblx0XHR9XG5cdH1cbn1cbiIsIkBpbmNsdWRlIGtleWZyYW1lcyhzbGlkZVVwKSB7XG5cdDAlIHtcblx0XHRAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlWSg4MCUpKTtcblx0fVxuXHQxMDAlIHtcblx0XHRAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlWSgwKSk7XG5cdH1cbn1cblxuLnBhZ2UtYmFubmVyIHtcblx0YmFja2dyb3VuZDogJGxpZ2h0LWdyYXk7XG5cdHotaW5kZXg6IDE7XG5cblx0LndyYXAge1xuXHRcdHBhZGRpbmc6IGVtKDUwKSBlbSgzMCk7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdFx0QGluY2x1ZGUgbWVkaWEoJGxhcmdlLXNjcmVlbi11cCkge1xuXHRcdFx0cGFkZGluZzogZW0oNTApIDA7XG5cdFx0fVxuXHR9XG59XG5cbi5wYWdlLWJhbm5lci1pbWFnZSB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0Ym90dG9tOiAtNXB4O1xuXHRyaWdodDogMzBweDtcblx0ei1pbmRleDogMTtcblxuXHRAaW5jbHVkZSBtZWRpYSgkbWVkaXVtLXNjcmVlbi11cCkge1xuXHRcdEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGVZKDEwMCUpKTtcblx0XHRAaW5jbHVkZSBhbmltYXRpb24oc2xpZGVVcCAyLjBzIGVhc2UtaW4tb3V0KTtcblx0XHRAaW5jbHVkZSBhbmltYXRpb24tZmlsbC1tb2RlKGZvcndhcmRzKTtcblx0XHRAaW5jbHVkZSBhbmltYXRpb24tZGVsYXkoMC4ycyk7XG5cdH1cblxuXHRAaW5jbHVkZSBtZWRpYSgkbGFyZ2Utc2NyZWVuLXVwKSB7XG5cdFx0cmlnaHQ6IDA7XG5cdH1cblxuXHRpbWcge1xuXHRcdHdpZHRoOiAxMjVweDtcblxuXHRcdEBpbmNsdWRlIG1lZGlhKCRtZWRpdW0tc2NyZWVuLXVwKSB7XG5cdFx0XHR3aWR0aDogMTg1cHg7XG5cdFx0fVxuXHR9XG59XG4iLCIkbmV3c2xldHRlcl9iZzogIzRhNGE0YTtcblxuQGluY2x1ZGUga2V5ZnJhbWVzKGJvdW5jZSkge1xuXHQwJSwgMzAlLCA1MCUsIDcwJSB7XG5cdFx0QGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZVkoMzAlKSk7XG5cdH1cblx0MjAlIHtcblx0XHRAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlWSgyMCUpKTtcblx0fVxuXHQ2MCUge1xuXHRcdEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGVZKDIwJSkpO1xuXHR9XG5cdDEwMCUge1xuXHRcdEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGVZKDAlKSk7XG5cdH1cbn1cblxuLnBhZ2UtbmV3c2xldHRlciB7XG5cdGJhY2tncm91bmQ6ICRuZXdzbGV0dGVyX2JnO1xuXHRjb2xvcjogd2hpdGU7XG5cdG92ZXJmbG93OiBhdXRvO1xuXHRwYWRkaW5nOiAyNXB4O1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cblx0LnBhZ2UtdGVtcGxhdGUtdGVtcGxhdGUtY3VsdHVyZS1zdWIgJixcblx0LnBhZ2UtdGVtcGxhdGUtdGVtcGxhdGUtY3VsdHVyZS1kZXNpZ24gJixcblx0LmhvbWUgJiB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxuXG5cdHNwYW4ge1xuXHRcdGZvbnQtd2VpZ2h0OiAzMDA7XG5cdH1cblxuXHQud3JhcCB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR9XG5cblx0LnBhZ2UtbmV3c2xldHRlci1jb250ZW50LFxuXHRmb3JtIHtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdH1cblxuXHRmb3JtIHtcblx0XHRjb2xvcjogJHRleHQtZ3JheTtcblx0XHRtYXJnaW4tdG9wOiAxNXB4O1xuXHRcdHdpZHRoOiAxMDAlO1xuXG5cdFx0QGluY2x1ZGUgbWVkaWEoJGxhcmdlLXNjcmVlbi11cCkge1xuXHRcdFx0d2lkdGg6IDM1MHB4O1xuXHRcdH1cblx0fVxuXG5cdGlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxuXHRpbnB1dFt0eXBlPVwiZW1haWxcIl0ge1xuXHRcdGJhY2tncm91bmQ6IHdoaXRlO1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHRcdG1heC13aWR0aDogMjAwcHg7XG5cdH1cblxuXHRpbnB1dFt0eXBlPVwidGV4dFwiXSB7XG5cdFx0ZmxvYXQ6IGxlZnQ7XG5cblx0XHRAaW5jbHVkZSBtZWRpYSgkbGFyZ2Utc2NyZWVuLXVwKSB7XG5cdFx0XHRmbG9hdDogbm9uZTtcblx0XHR9XG5cdH1cblxuXHRpbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcblx0XHRib3JkZXItcmFkaXVzOiA1cHg7XG5cdFx0ZmxvYXQ6IHJpZ2h0O1xuXHRcdGhlaWdodDogNDBweDtcblx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHRcdG1hcmdpbi1sZWZ0OiAtMTBweDtcblx0XHRwYWRkaW5nOiA5cHggMjVweDtcblx0fVxufVxuXG4ucGFnZS1uZXdzbGV0dGVyLWltYWdlIHtcblx0ZGlzcGxheTogbm9uZTtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRib3R0b206IC0zMnB4O1xuXG5cdEBpbmNsdWRlIG1lZGlhKCRsYXJnZS1zY3JlZW4tdXApIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0fVxuXG5cdCYubGVmdCB7XG5cdFx0QGluY2x1ZGUgYW5pbWF0aW9uKGJvdW5jZSAycyAxKTtcblx0XHRsZWZ0OiA2MHB4O1xuXHR9XG5cblx0Ji5yaWdodCB7XG5cdFx0cmlnaHQ6IDUwcHg7XG5cdH1cbn1cbiIsIi5lbnRyeSB7XG4gICAgbWFyZ2luLWJvdHRvbTogJGJhc2Utc3BhY2luZyo0O1xuICAgIHBhZGRpbmc6IGVtKDMwKSAwO1xufVxuXG4uY29udGVudCAuZW50cnkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuXG4uY29udGVudC1zaWRlYmFyLXdyYXAge1xuICAgIG1hcmdpbi10b3A6IGVtKDIwKTtcbn1cblxuLmN1bHR1cmUtZGVzYyB1bCB7XG4gICAgbWFyZ2luLWxlZnQ6IDE1cHg7XG5cblx0bGkge1xuXHRcdGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcblx0XHRtYXJnaW4tbGVmdDogMjBweDtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0bWFyZ2luLWJvdHRvbTogMTBweDtcblx0fVxuXG5cdCYgPiBsaSB7XG5cblx0XHQmID4gdWwgbGkge1xuXHRcdFx0bWFyZ2luLXRvcDogMTBweDtcblxuXHRcdFx0JjpiZWZvcmUge1xuXHRcdFx0XHRjb250ZW50OiAnJztcblx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHR3aWR0aDogNnB4O1xuXHRcdFx0XHRoZWlnaHQ6IDZweDtcblx0XHRcdFx0YmFja2dyb3VuZDogJGFjdGlvbi1jb2xvcjtcblx0XHRcdFx0dG9wOiA4cHg7XG5cdFx0XHRcdGxlZnQ6IC0yMHB4O1xuXHRcdFx0XHRib3JkZXItcmFkaXVzOiA1MCU7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0JjpiZWZvcmUge1xuXHRcdFx0Y29udGVudDogJyc7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHR3aWR0aDogOHB4O1xuXHRcdFx0aGVpZ2h0OiA4cHg7XG5cdFx0XHRiYWNrZ3JvdW5kOiAkYWN0aW9uLWNvbG9yO1xuXHRcdFx0dG9wOiA4cHg7XG5cdFx0XHRsZWZ0OiAtMjBweDtcblx0XHRcdGJvcmRlci1yYWRpdXM6IDUwJTtcblx0XHR9XG5cblx0XHQmOmxhc3QtY2hpbGQgeyBtYXJnaW4tYm90dG9tOiAwOyB9XG5cdH1cbn1cblxuLnBvc3QgLmVudHJ5LWNvbnRlbnQgaW1nOmZpcnN0LWNoaWxkIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW46IDAgYXV0bztcblxuICAgIEBpbmNsdWRlIG1lZGlhKCRtZWRpdW0tc2NyZWVuLXVwKSB7XG4gICAgICAgIG1heC13aWR0aDogNjAwcHg7XG4gICAgfVxufVxuIiwiJGNvbW1lbnQtYmFja2dyb3VuZC1jb2xvcjogJGxpZ2h0LWdyYXk7XG5cbi5jb21tZW50LXJlc3BvbmQsXG4uZW50cnktY29tbWVudHMsXG4uZW50cnktcGluZ3Mge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb21tZW50LWJhY2tncm91bmQtY29sb3I7XG4gICAgcGFkZGluZzogMzBweDtcbiAgICBtYXJnaW4tYm90dG9tOiAkYmFzZS1mb250LXNpemUqMjtcblxuICAgICN7JGFsbC10ZXh0LWlucHV0c30ge1xuICAgICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICB9XG59XG5cbi5lbnRyeS1jb21tZW50cyB7XG4gICAgcGFkZGluZzogJGJhc2UtZm9udC1zaXplKjI7XG59XG5cbi5jb21tZW50LWhlYWRlciB7XG4gICAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemU7XG59XG5cbmxpLmNvbW1lbnQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigkY29tbWVudC1iYWNrZ3JvdW5kLWNvbG9yLCAxMCk7XG4gICAgYm9yZGVyOiAkYmFzZS1ib3JkZXI7XG4gICAgYm9yZGVyLXJpZ2h0OiBub25lO1xufVxuXG4uY29tbWVudC1jb250ZW50IHtcbiAgICBjbGVhcjogYm90aDtcbn1cblxuLmNvbW1lbnQtbGlzdCBsaSB7XG4gICAgbWFyZ2luLXRvcDogJGJhc2UtZm9udC1zaXplO1xuICAgIHBhZGRpbmc6ICRiYXNlLWZvbnQtc2l6ZSoyO1xuXG4gICAgbGkge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kYmFzZS1mb250LXNpemUqMjtcbiAgICB9XG59XG5cbi5jb21tZW50LXJlc3BvbmQgaW5wdXRbdHlwZT1cImVtYWlsXCJdLFxuLmNvbW1lbnQtcmVzcG9uZCBpbnB1dFt0eXBlPVwidGV4dFwiXSxcbi5jb21tZW50LXJlc3BvbmQgaW5wdXRbdHlwZT1cInVybFwiXSB7XG4gICAgd2lkdGg6IDUwJTtcbn1cblxuLmNvbW1lbnQtcmVzcG9uZCBsYWJlbCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLXJpZ2h0OiAkYmFzZS1mb250LXNpemU7XG59XG5cbi5lbnRyeS1jb21tZW50cyAuY29tbWVudC1hdXRob3Ige1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5lbnRyeS1waW5ncyAucmVwbHkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5ieXBvc3RhdXRob3Ige1xufVxuXG4uZm9ybS1hbGxvd2VkLXRhZ3Mge1xuICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigkY29tbWVudC1iYWNrZ3JvdW5kLWNvbG9yLDEwKTtcbiAgICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZTtcbiAgICBwYWRkaW5nOiAkYmFzZS1mb250LXNpemUqMjtcbn1cbiIsIi5zaWRlYmFyIHtcbiAgICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZTtcbiAgICBtYXJnaW4tdG9wOiAkYmFzZS1zcGFjaW5nKjQ7XG59XG5cbi5zaWRlYmFyIGxpIHtcbiAgICBib3JkZXItYm90dG9tOiAkYmFzZS1ib3JkZXI7XG4gICAgbWFyZ2luLWJvdHRvbTogJGJhc2Utc3BhY2luZztcbiAgICBwYWRkaW5nLWJvdHRvbTogJGJhc2Utc3BhY2luZztcbn1cblxuLnNpZGViYXIgcDpsYXN0LWNoaWxkLFxuLnNpZGViYXIgdWwgPiBsaTpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4uc2lkZWJhciAud2lkZ2V0IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICBtYXJnaW4tYm90dG9tOiAkYmFzZS1zcGFjaW5nKjI7XG4gICAgcGFkZGluZzogJGJhc2Utc3BhY2luZztcbn1cbiIsIi5mb290ZXItd2lkZ2V0cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlNmU2ZTY7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgcGFkZGluZzogMzBweCAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4uZm9vdGVyLXdpZGdldHMgLndpZGdldCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMzBweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbn1cblxuLmZvb3Rlci13aWRnZXRzIHVsIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5mb290ZXItd2lkZ2V0cyBsaSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBwYWRkaW5nOiAwIDE1cHg7XG59XG5cbi5zb2NpYWwtbGluayB7XG4gICAgcGFkZGluZzogMCAyMHB4O1xufVxuXG4uc29jaWFsLWxpbmsgYSBzdmcge1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oY29sb3IgJGJhc2UtZHVyYXRpb24gJGJhc2UtdGltaW5nKTtcbn1cblxuLnNvY2lhbC1saW5rIGE6aG92ZXIgc3ZnIHtcbiAgICBmaWxsOiAkYWN0aW9uLWNvbG9yO1xufVxuIiwiLnNpdGUtZm9vdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiAkYmFzZS1saW5lLWhlaWdodDtcbiAgICBwYWRkaW5nOiAkYmFzZS1zcGFjaW5nIDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uc2l0ZS1mb290ZXIgcCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbn1cbiIsIi5tb2JpbGUtbWVudS1pY29uIHtcblx0QGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZVkoLTUwJSkpO1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRvcDogNTAlO1xuXHRyaWdodDogMzBweDtcblxuXHRAaW5jbHVkZSBtZWRpYSgkbGFyZ2Utc2NyZWVuLXVwKSB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxufVxuXG4jbW9iaWxlLW1lbnUgaW5wdXRbdHlwZT1zZWFyY2hdIHtcblx0YmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4iLCIuc2luZ2xlLXRlYW1fbWVtYmVyIC5jb250ZW50ID4gLnRlYW0tbWVtYmVyLWltYWdlIHtcblx0QGluY2x1ZGUgbWVkaWEoJGxhcmdlLXNjcmVlbi11cCkge1xuXHRcdEBpbmNsdWRlIHNwYW4tY29sdW1ucyg0KTtcblx0fVxufVxuXG4uc2luZ2xlLXRlYW1fbWVtYmVyIC5jb250ZW50ID4gLnRlYW1fbWVtYmVyIHtcblx0QGluY2x1ZGUgbWVkaWEoJGxhcmdlLXNjcmVlbi11cCkge1xuXHRcdEBpbmNsdWRlIHNwYW4tY29sdW1ucyg4KTtcblx0XHRAaW5jbHVkZSBvbWVnYTtcblx0fVxufVxuLnNpbmdsZS10ZWFtX21lbWJlciAuY29udGVudC1zaWRlYmFyLXdyYXAge1xuXHRtYXJnaW4tdG9wOiBlbSg2MCk7XG59XG5cbi5zaW5nbGUtdGVhbV9tZW1iZXIgLmVudHJ5LWhlYWRlciB7XG5cdG1hcmdpbi1ib3R0b206IGVtKDMwKTtcbn1cblxuLnNpbmdsZS10ZWFtX21lbWJlciAuZW50cnkge1xuXHRtYXJnaW4tYm90dG9tOiAwO1xuXHRwYWRkaW5nLXRvcDogMDtcbn1cblxuLnNpbmdsZS10ZWFtX21lbWJlciAuZW50cnktdGl0bGUge1xuXHRtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuXG4ucGFnZS10ZW1wbGF0ZS10ZW1wbGF0ZS1hYm91dCAuc2l0ZS1pbm5lciB7XG5cdG1hcmdpbi1ib3R0b206ICRiYXNlLXNwYWNpbmcqMjtcbn1cblxuLnRlYW0tbWVtYmVycyB7XG5cdHBhZGRpbmctYm90dG9tOiAkYmFzZS1zcGFjaW5nKjI7XG59XG5cbi50ZWFtLW1lbWJlciB7XG5cdGJhY2tncm91bmQ6IHdoaXRlO1xuXHRtYXJnaW4tYm90dG9tOiBlbSgzMCk7XG5cblx0QGluY2x1ZGUgbWVkaWEoJG1lZGl1bS1zY3JlZW4tdXApIHtcblx0XHRAaW5jbHVkZSBzcGFuLWNvbHVtbnMoNik7XG5cdFx0QGluY2x1ZGUgb21lZ2EoMm4pO1xuXHR9XG5cblx0QGluY2x1ZGUgbWVkaWEoJGxhcmdlLXNjcmVlbi11cCkge1xuXHRcdEBpbmNsdWRlIHNwYW4tY29sdW1ucyg0KTtcblx0XHRAaW5jbHVkZSBvbWVnYS1yZXNldCgybik7XG5cdFx0QGluY2x1ZGUgb21lZ2EoM24pO1xuXHR9XG59XG5cbi50ZWFtLW1lbWJlciAudGVhbS1tZW1iZXItaW1hZ2Uge1xuXHRmbG9hdDogbm9uZTtcblx0bWFyZ2luOiAwO1xuXHQvLyBtYXgtaGVpZ2h0OiA0NzFweDtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdCY6aG92ZXIge1xuXHRcdC5vdmVybGF5IGEge1xuXHRcdFx0b3BhY2l0eTogMTtcblx0XHR9XG5cdH1cblxuXHRpbWcge1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHR9XG59XG5cbi50ZWFtLW1lbWJlci1tZXRhIHtcblx0cGFkZGluZzogMTVweCAyNXB4O1xufVxuXG4udGVhbS1tZW1iZXItbmFtZSB7XG5cdG1hcmdpbi1ib3R0b206IGVtKDUpO1xufVxuXG4udGVhbS1tZW1iZXItdGl0bGUge1xuXHRmb250LXdlaWdodDogNTAwO1xufVxuXG4ub3ZlcmxheSBhIHtcblx0QGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgMC4ycyBlYXNlLWluLW91dCk7XG5cdEBpbmNsdWRlIGRpc3BsYXkoZmxleCk7XG5cdEBpbmNsdWRlIGp1c3RpZnktY29udGVudChjZW50ZXIpO1xuXHRAaW5jbHVkZSBhbGlnbi1pdGVtcyhjZW50ZXIpO1xuXHRiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuNyk7XG5cdGNvbG9yOiB3aGl0ZTtcblx0aGVpZ2h0OiAxMDAlO1xuXHRvcGFjaXR5OiAwO1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRvcDogMDtcblx0cmlnaHQ6IDA7XG5cdGJvdHRvbTogMDtcblx0bGVmdDogMDtcblx0d2lkdGg6IDEwMCU7XG59XG5cbi5vdmVybGF5LXRleHQge1xuXHRzdmcge1xuXHRcdEBpbmNsdWRlIHRyYW5zaXRpb24oY29sb3IgMTUwbXMgZWFzZSk7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0aGVpZ2h0OiA1MHB4O1xuXHRcdHdpZHRoOiA1MHB4O1xuXHRcdG1hcmdpbi1ib3R0b206IDEwcHg7XG5cdFx0bWFyZ2luLWxlZnQ6IDdweDtcblx0XHRmaWxsOiAjZmZmO1xuXHR9XG59XG5cbi5zaW5nbGUtdGVhbV9tZW1iZXIuc2luZ2xlIC5lbnRyeS10aXRsZSB7XG5cdGJvcmRlcjogbm9uZTtcblx0bWFyZ2luLXRvcDogMDtcbn1cblxuLnNpbmdsZS10ZWFtX21lbWJlciBoMiB7XG5cdGZvbnQtc2l6ZTogMS43NWVtO1xuXHRmb250LXdlaWdodDogNTAwO1xufVxuXG4ucGFnZS10ZW1wbGF0ZS10ZW1wbGF0ZS1hYm91dCAuZW50cnkge1xuXHRtYXJnaW4tYm90dG9tOiAzMHB4O1xufVxuIiwiLmJsb2csXG4uY2F0ZWdvcnksXG4uc2VhcmNoLFxuLmJsb2cgLnNpdGUtaW5uZXIsXG4uY2F0ZWdvcnkgLnNpdGUtaW5uZXIsXG4uc2VhcmNoIC5zaXRlLWlubmVyIHtcblx0YmFja2dyb3VuZDogJGxpZ2h0LWdyYXk7XG59XG5cbi5ibG9nIC5jb250ZW50LFxuLmNhdGVnb3J5IC5jb250ZW50LFxuLnNlYXJjaCAuY29udGVudCB7XG5cdEBpbmNsdWRlIG91dGVyLWNvbnRhaW5lcigpO1xufVxuXG4uYmxvZyAuY29udGVudCAuZW50cnksXG4uY2F0ZWdvcnkgLmNvbnRlbnQgLmVudHJ5LFxuLnNlYXJjaCAuY29udGVudCAuZW50cnksXG4uc2luZ2xlIC5yZWxhdGVkLXBvc3RzIC5lbnRyeSB7XG5cdGJhY2tncm91bmQ6IHdoaXRlO1xuXHRtYXJnaW4tYm90dG9tOiBlbSgzMCk7XG5cdHBhZGRpbmctdG9wOiAzMHB4O1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0QGluY2x1ZGUgbWVkaWEoJG1lZGl1bS1zY3JlZW4tdXApIHtcblx0XHRAaW5jbHVkZSBzcGFuLWNvbHVtbnMoNik7XG5cdFx0QGluY2x1ZGUgb21lZ2EoMm4pO1xuXHRcdG1pbi1oZWlnaHQ6IDUxN3B4O1xuXHRcdHBhZGRpbmctdG9wOiAwO1xuXHR9XG5cblx0QGluY2x1ZGUgbWVkaWEoJGxhcmdlLXNjcmVlbi11cCkge1xuXHRcdEBpbmNsdWRlIHNwYW4tY29sdW1ucyg0KTtcblx0XHRAaW5jbHVkZSBvbWVnYS1yZXNldCgybik7XG5cdFx0QGluY2x1ZGUgb21lZ2EoM24pO1xuXHR9XG5cblx0LmVudHJ5LWNvbnRlbnQgcCB7XG5cdFx0Zm9udC1zaXplOiAxNHB4O1xuXHR9XG59XG5cbi5ibG9nIC5lbnRyeS10aXRsZSxcbi5jYXRlZ29yeSAuZW50cnktdGl0bGUsXG4uc2VhcmNoIC5lbnRyeS10aXRsZSxcbi5yZWxhdGVkLXBvc3RzIC5lbnRyeS10aXRsZSB7XG5cdGZvbnQtc2l6ZTogMjRweDtcblx0Zm9udC13ZWlnaHQ6IDUwMDtcblx0bWFyZ2luLWJvdHRvbTogMTBweDtcblx0cGFkZGluZzogMCAyMHB4O1xuXG5cdEBpbmNsdWRlIG1lZGlhKCRtZWRpdW0tc2NyZWVuLXVwKSB7XG5cdFx0bWFyZ2luLXRvcDogMjBweDtcblx0fVxufVxuXG4uYmxvZyAuZW50cnktY29udGVudCxcbi5ibG9nIC5lbnRyeS1mb290ZXIsXG4uY2F0ZWdvcnkgLmVudHJ5LWNvbnRlbnQsXG4uY2F0ZWdvcnkgLmVudHJ5LWZvb3Rlcixcbi5zZWFyY2ggLmVudHJ5LWNvbnRlbnQsXG4uc2VhcmNoIC5lbnRyeS1mb290ZXIsXG4ucmVsYXRlZC1wb3N0cyAuZW50cnktZm9vdGVyLFxuLnJlbGF0ZWQtcG9zdHMgLmVudHJ5LWNvbnRlbnQge1xuXHRwYWRkaW5nOiAwIDIwcHg7XG59XG5cbi5ibG9nIC5lbnRyeS1mb290ZXIsXG4uY2F0ZWdvcnkgLmVudHJ5LWZvb3Rlcixcbi5zZWFyY2ggLmVudHJ5LWZvb3Rlcixcbi5yZWxhdGVkLXBvc3RzIC5lbnRyeS1mb290ZXIge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdGJvdHRvbTogMjBweDtcblx0bGVmdDogMDtcblx0cmlnaHQ6IDA7XG59XG5cbi5jb250aW51ZS1yZWFkaW5nIHtcblx0ZmxvYXQ6IHJpZ2h0O1xufVxuXG4uZW50cnktZGF0ZSB7XG5cdGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuLnRvcC11dGlscyB7XG5cdHBhZGRpbmc6IDE1cHggMDtcblxuXHRAaW5jbHVkZSBtZWRpYSgkbGFyZ2Utc2NyZWVuLXVwKSB7XG5cdFx0cGFkZGluZzogMTVweCAwIDMwcHggMDtcblx0fVxuXG5cdC5wYWdpbmF0aW9uIHtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdH1cblxuXHQudG9wLXV0aWxzLXJpZ2h0IHtcblx0XHRAaW5jbHVkZSBtZWRpYSgkbGFyZ2Utc2NyZWVuLXVwKSB7XG5cdFx0XHRmbG9hdDogcmlnaHQ7XG5cdFx0fVxuXHR9XG59XG5cbi50b3AtdXRpbHMtcmlnaHQge1xuXHRtYXJnaW4tdG9wOiAkc21hbGwtc3BhY2luZztcblx0b3ZlcmZsb3c6IGF1dG87XG5cblx0QGluY2x1ZGUgbWVkaWEoJGxhcmdlLXNjcmVlbi11cCkge1xuXHRcdG1hcmdpbi10b3A6IDA7XG5cdFx0cGFkZGluZzogMDtcblx0fVxuXG5cdC5hcmNoaXZlLFxuXHQuY2F0ZWdvcmllcyB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0d2lkdGg6IDEwMCU7XG5cblx0XHRAaW5jbHVkZSBtZWRpYSgkbGFyZ2Utc2NyZWVuLXVwKSB7XG5cdFx0XHRmbG9hdDogbGVmdDtcblx0XHRcdG1hcmdpbi1sZWZ0OiAxMHB4O1xuXHRcdFx0d2lkdGg6IGF1dG87XG5cdFx0fVxuXHR9XG59XG5cbi5zaW5nbGUgLmNvbnRlbnQgLmVudHJ5LFxuLmNvbW1lbnQtcmVzcG9uZCB7XG5cdEBpbmNsdWRlIG91dGVyLWNvbnRhaW5lcig4MDBweCk7XG59XG5cbi5zaW5nbGUgLmVudHJ5IHtcblx0bWFyZ2luLWJvdHRvbTogMzBweDtcbn1cblxuLnNpbmdsZSAuZW50cnktbWV0YSB7XG5cdGxpbmUtaGVpZ2h0OiAzNHB4O1xuXHRtYXJnaW4tYm90dG9tOiAwO1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi5zaW5nbGUgLmVudHJ5LWhlYWRlciAuc2hhcmVkYWRkeSB7XG5cdGZsb2F0OiByaWdodDtcblxuXHR1bCB7XG5cdFx0bWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuXHR9XG59XG5cbi5zaW5nbGUgLmVudHJ5LXRpdGxlIHtcblx0Ym9yZGVyLXRvcDogJGJhc2UtYm9yZGVyO1xuXHRmb250LXdlaWdodDogNTAwO1xuXHRtYXJnaW4tdG9wOiAxNXB4O1xuXHRwYWRkaW5nLXRvcDogMTVweDtcbn1cblxuLnNpbmdsZSAucmVsYXRlZC1wb3N0cyAuZW50cnktdGl0bGUge1xuXHRib3JkZXI6IG5vbmU7XG59XG5cbi5zaW5nbGUgLmVudHJ5LWZvb3RlciB7XG5cdGJvcmRlci10b3A6ICRiYXNlLWJvcmRlcjtcblx0cGFkZGluZzogMTVweCAwO1xuXG5cdC5zaGFyZWRhZGR5IHtcblx0XHRmbG9hdDogcmlnaHQ7XG5cdH1cbn1cblxuLnNpbmdsZSAucmVsYXRlZC1wb3N0cyAuZW50cnktZm9vdGVyIHtcblx0Ym9yZGVyOiBub25lO1xuXHRwYWRkaW5nOiAwIDIwcHg7XG59XG5cbi5zaW5nbGUgLmZlYXR1cmVkLWltYWdlIHtcblx0Ym9yZGVyOiAzcHggc29saWQgJGxpZ2h0LWdyYXk7XG5cdG1hcmdpbi1ib3R0b206IGVtKDMwKTtcbn1cblxuLmVudHJ5LWNvbnRlbnQge1xuXHR1bDpub3QoLnNvbGlsb3F1eS1zbGlkZXIpOm5vdCguZ2Zvcm1fZmllbGRzKSB7XG5cdFx0bWFyZ2luLWxlZnQ6ICRiYXNlLXNwYWNpbmc7XG5cdFx0bWFyZ2luLWJvdHRvbTogJGJhc2Utc3BhY2luZztcblxuXHRcdGxpIHtcblx0XHRcdGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcblx0XHRcdG1hcmdpbi1sZWZ0OiAyMHB4O1xuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogMTBweDtcblx0XHR9XG5cblx0XHQmID4gbGkge1xuXG5cdFx0XHQmID4gdWwgbGkge1xuXHRcdFx0XHRtYXJnaW4tdG9wOiAxMHB4O1xuXG5cdFx0XHRcdCY6YmVmb3JlIHtcblx0XHRcdFx0XHRjb250ZW50OiAnJztcblx0XHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdFx0d2lkdGg6IDZweDtcblx0XHRcdFx0XHRoZWlnaHQ6IDZweDtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kOiAkYWN0aW9uLWNvbG9yO1xuXHRcdFx0XHRcdHRvcDogOHB4O1xuXHRcdFx0XHRcdGxlZnQ6IC0yMHB4O1xuXHRcdFx0XHRcdGJvcmRlci1yYWRpdXM6IDUwJTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQmOmJlZm9yZSB7XG5cdFx0XHRcdGNvbnRlbnQ6ICcnO1xuXHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdHdpZHRoOiA4cHg7XG5cdFx0XHRcdGhlaWdodDogOHB4O1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiAkYWN0aW9uLWNvbG9yO1xuXHRcdFx0XHR0b3A6IDhweDtcblx0XHRcdFx0bGVmdDogLTIwcHg7XG5cdFx0XHRcdGJvcmRlci1yYWRpdXM6IDUwJTtcblx0XHRcdH1cblxuXHRcdFx0JjpsYXN0LWNoaWxkIHsgbWFyZ2luLWJvdHRvbTogMDsgfVxuXHRcdH1cblx0fVxufVxuIiwiLmxvZ28tbGlzdC13cmFwIHtcblx0QGluY2x1ZGUgb3V0ZXItY29udGFpbmVyKDg5MHB4KTtcbn1cblxuLmxvZ28tbGlzdC1pbWFnZSB7XG5cdEBpbmNsdWRlIHNwYW4tY29sdW1ucyg2KTtcblx0QGluY2x1ZGUgb21lZ2EoMm4pO1xuXHRoZWlnaHQ6IDE1MHB4O1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0QGluY2x1ZGUgbWVkaWEoJGxhcmdlLXNjcmVlbi11cCkge1xuXHRcdEBpbmNsdWRlIHNwYW4tY29sdW1ucygzKTtcblx0XHRAaW5jbHVkZSBvbWVnYS1yZXNldCgybik7XG5cdFx0QGluY2x1ZGUgb21lZ2EoNG4pO1xuXHR9XG5cblx0aW1nIHtcblx0XHRAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlWSgtNTAlKSk7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0bWFyZ2luOiAwIGF1dG87XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHRvcDogNTAlO1xuXHRcdGxlZnQ6IDA7XG5cdFx0cmlnaHQ6IDA7XG5cdH1cbn1cblxuLnBhZ2UtdGVtcGxhdGUtdGVtcGxhdGUtY2xpZW50cyAuc2xpZGVyIHtcblx0bWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xufVxuXG4ucGFnZS1jbGllbnQtbG9nb3MgLmhvbWUtY2xpZW50LWxvZ28ge1xuXHRwYWRkaW5nLXJpZ2h0OiAzMHB4O1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0JjpsYXN0LWNoaWxkIHtcblx0XHRwYWRkaW5nLXJpZ2h0OiAzMHB4O1xuXHR9XG5cblx0aW1nIHtcblx0XHRAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlWSgtNTAlKSk7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0bWFyZ2luOiAwIGF1dG87XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdGxlZnQ6IDA7XG5cdFx0cmlnaHQ6IDA7XG5cdFx0dG9wOiA1MCU7XG5cdFx0d2lkdGg6IDE1MHB4O1xuXHR9XG59XG4iLCJAaW5jbHVkZSBrZXlmcmFtZXMoYm91bmNlKSB7XG5cdDAlLCAyMCUsIDUwJSwgODAlLCAxMDAlIHtcblx0XHRAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlWSgwKSk7XG5cdH1cblx0NDAlIHtcblx0XHRAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlWSgtMTBweCkpO1xuXHR9XG5cdDYwJSB7XG5cdFx0QGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZVkoLTVweCkpO1xuXHR9XG59XG5cbi5ib3VuY2Uge1xuXHRAaW5jbHVkZSBhbmltYXRpb24oYm91bmNlIDJzIGluZmluaXRlKTtcbn1cblxuXG4uc2xpZGVyIHtcblx0bWFyZ2luLXRvcDogMzBweDtcbn1cblxuLmhvbWUtc2xpZGVyIC5zbGlkZSB7XG5cdGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG5cdGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcblx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0bWluLWhlaWdodDogNjAwcHg7XG59XG5cbi5zbGljay1kb3RzIHtcblx0Ym90dG9tOiAzMHB4ICFpbXBvcnRhbnQ7XG5cdGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcblxuXHQuaG9tZS1jbGllbnRzICYge1xuXHRcdGJvdHRvbTogMCAhaW1wb3J0YW50O1xuXHR9XG5cblx0QGluY2x1ZGUgbWVkaWEoJG1lZGl1bS1zY3JlZW4tdXApIHtcblx0XHRkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuXHR9XG5cblxufVxuXG5cbi5zbGljay1kb3RzIGxpIGJ1dHRvbjpiZWZvcmUge1xuXHRjb2xvcjogIzU1NSAhaW1wb3J0YW50O1xuXHRmb250LXNpemU6IDEwcHggIWltcG9ydGFudDtcblx0b3BhY2l0eTogMSAhaW1wb3J0YW50O1xuXG5cdC5ob21lLWNsaWVudHMgJiB7XG5cdFx0Y29sb3I6ICNjY2MgIWltcG9ydGFudDtcblx0fVxufVxuXG4uc2xpY2stZG90cyBsaS5zbGljay1hY3RpdmUgYnV0dG9uOmJlZm9yZSB7XG5cdGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xuXG5cdC5ob21lLWNsaWVudHMgJiB7XG5cdFx0Y29sb3I6ICM1NTUgIWltcG9ydGFudDtcblx0fVxufVxuXG4uaG9tZS1zbGlkZXItd3JhcCB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmhvbWUtc2xpZGVyLnNsaWNrLXNsaWRlciB7XG5cdG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5ob21lLXNsaWRlci1vdmVybGF5IHtcblx0YmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjcpO1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRvcDogMDtcblx0bGVmdDogMDtcblx0cmlnaHQ6IDA7XG5cdGJvdHRvbTogMDtcbn1cblxuLmhvbWUtc2xpZGVyLWNvbnRlbnQge1xuXHRAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlWSgtNTAlKSk7XG5cdGNvbG9yOiB3aGl0ZTtcblx0cGFkZGluZzogMCAxMHB4O1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdGxlZnQ6IDA7XG5cdHJpZ2h0OiAwO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdHRvcDogNTAlO1xuXG5cdEBpbmNsdWRlIG1lZGlhKCRsYXJnZS1zY3JlZW4tdXApIHtcblx0XHRwYWRkaW5nOiAwO1xuXHR9XG59XG5cbi5ob21lLXNsaWRlci10aXRsZSB7XG5cdG1hcmdpbi1ib3R0b206IDE1cHg7XG5cblx0QGluY2x1ZGUgbWVkaWEoJGxhcmdlLXNjcmVlbi11cCkge1xuXHRcdGZvbnQtc2l6ZTogNjBweDtcblx0XHRwYWRkaW5nOiAwIDE1MHB4O1xuXHR9XG59XG5cbi5ob21lLXNsaWRlci1zdWJ0aXRsZSB7XG5cdGNvbG9yOiAkYWN0aW9uLWNvbG9yO1xuXHRtYXJnaW4tYm90dG9tOiA2MHB4O1xufVxuXG4uaG9tZS1zbGlkZXItbGluayB7XG5cdGJhY2tncm91bmQ6ICRhY3Rpb24tY29sb3I7XG5cdGJvcmRlci1yYWRpdXM6ICRiYXNlLWJvcmRlci1yYWRpdXM7XG5cdGNvbG9yOiB3aGl0ZTtcblx0Zm9udC1zaXplOiAyNHB4O1xuXHRwYWRkaW5nOiAkc21hbGwtc3BhY2luZyAkYmFzZS1zcGFjaW5nO1xuXHR0ZXh0LXRyYW5zZm9ybTogbG93ZXJjYXNlO1xuXHR0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yICRiYXNlLWR1cmF0aW9uICRiYXNlLXRpbWluZztcblxuXHQmOmhvdmVyIHtcblx0XHRiYWNrZ3JvdW5kOiBzaGFkZSgkYWN0aW9uLWNvbG9yLCAxMCk7XG5cdFx0Y29sb3I6IHdoaXRlO1xuXHR9XG59XG5cbi5ob21lLXNsaWRlci1hcnJvdyB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRtYXJnaW4tdG9wOiA5MHB4O1xuXG5cdHN2ZyB7XG5cdFx0aGVpZ2h0OiA1MHB4O1xuXHRcdHdpZHRoOiA1MHB4O1xuXHRcdGZpbGw6IHdoaXRlO1xuXHR9XG59XG5cbi5zbGljay1zbGlkZSB7XG5cdG91dGxpbmU6IG5vbmU7XG5cblx0aW1nIHtcblx0XHR3aWR0aDogMTAwJTtcblx0fVxufVxuIiwiLnBhZ2UtdGVtcGxhdGUtdGVtcGxhdGUtcHJlc3MgLmVudHJ5IHtcblx0ZGlzcGxheTogbm9uZTtcbn1cblxuLnByZXNzLWFydGljbGVzIHtcblx0cGFkZGluZzogMzBweCAwO1xufVxuLnByZXNzLWFydGljbGUge1xuXHRvdmVyZmxvdzogYXV0bztcblx0cGFkZGluZy1ib3R0b206IDIwcHg7XG5cdG1hcmdpbi1ib3R0b206IDIwcHg7XG59XG5cbi5wcmVzcy1hcnRpY2xlLWltYWdlLFxuLnByZXNzLWFydGljbGUtY29udGVudCB7XG5cdEBpbmNsdWRlIG1lZGlhKCRsYXJnZS1zY3JlZW4tdXApIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRmbG9hdDogbGVmdDtcblx0fVxufVxuXG4ucHJlc3MtYXJ0aWNsZS1pbWFnZSBpbWcge1xuXHR3aWR0aDogMTAwJTtcbn1cblxuLnByZXNzLWFydGljbGUtaW1hZ2Uge1xuXG5cdEBpbmNsdWRlIG1lZGlhKCRsYXJnZS1zY3JlZW4tdXApIHtcblx0XHRoZWlnaHQ6IDIzNXB4O1xuXHRcdHdpZHRoOiAzMiU7XG5cdH1cbn1cblxuLnByZXNzLWFydGljbGUtY29udGVudCB7XG5cdHBhZGRpbmc6IDAgMTVweDtcblxuXHRwIHtcblx0XHRmb250LXNpemU6IDAuODVlbTtcblx0fVxuXG5cdEBpbmNsdWRlIG1lZGlhKCRsYXJnZS1zY3JlZW4tdXApIHtcblx0XHR3aWR0aDogNjglO1xuXHR9XG59XG5cbi5wcmVzcy1hcnRpY2xlLXRpdGxlIHtcblx0bWFyZ2luLWJvdHRvbTogNXB4O1xufVxuXG4ucHJlc3MtYXJ0aWNsZS1saW5rIHtcblx0ZmxvYXQ6IHJpZ2h0O1xufVxuIiwiLmN1bHR1cmUge1xuXHRvdmVyZmxvdzogYXV0bztcbn1cblxuLmN1bHR1cmUtY29udGVudCwgLmN1bHR1cmUtaW1hZ2Uge1xuXHRkaXNwbGF5OiBibG9jaztcblxuXHRAaW5jbHVkZSBtZWRpYSgkbGFyZ2Utc2NyZWVuLXVwKSB7XG5cdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0d2lkdGg6IDUwJTtcblx0fVxufVxuXG4uY3VsdHVyZS1jb250ZW50IHtcblx0cGFkZGluZzogZW0oMzApO1xuXG5cdEBpbmNsdWRlIG1lZGlhKCRsYXJnZS1zY3JlZW4tdXApIHtcblx0XHRwYWRkaW5nOiBlbSg5MCk7XG5cdFx0cGFkZGluZy1ib3R0b206IDA7XG5cdH1cblxuXHQuaG9tZSAmIHtcblx0XHRib3JkZXItdG9wOiAxcHggc29saWQgc2hhZGUoJGxpZ2h0LWdyYXksIDIwJSk7XG5cdH1cbn1cblxuLmN1bHR1cmUtdGl0bGUuc2VjdGlvbi10aXRsZSB7XG5cdHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi5jdWx0dXJlLWltYWdlIHtcblx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuXHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuXHRiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG5cdG1pbi1oZWlnaHQ6IDMwMHB4O1xuXG5cdEBpbmNsdWRlIG1lZGlhKCRtZWRpdW0tc2NyZWVuLXVwKSB7XG5cdFx0bWluLWhlaWdodDogNjAwcHg7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG5cdH1cblxufVxuXG4uZmVhdHVyZXMge1xuXHRiYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheTtcblx0Y2xlYXI6IGJvdGg7XG5cdHBhZGRpbmc6IGVtKDYwKSAkc21hbGwtc3BhY2luZztcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXG5cdEBpbmNsdWRlIG1lZGlhKCRsYXJnZS1zY3JlZW4tdXApIHtcblx0XHRwYWRkaW5nOiBlbSg2MCkgMDtcblx0fVxufVxuXG4uc2VjdGlvbi10aXRsZSB7XG5cdGNvbG9yOiAkYWN0aW9uLWNvbG9yO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5mZWF0dXJlLWJsb2NrcyB7XG5cdEBpbmNsdWRlIG91dGVyLWNvbnRhaW5lcigxMjAwcHgpO1xuXHRwYWRkaW5nOiBlbSg2MCkgMDtcbn1cblxuLmZlYXR1cmUtYmxvY2sge1xuXHRtYXJnaW4tYm90dG9tOiBlbSg2MCk7XG5cdHBhZGRpbmc6IDAgZW0oMTUpO1xuXG5cdCY6bGFzdC1jaGlsZCB7XG5cdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0fVxuXG5cdEBpbmNsdWRlIG1lZGlhKCRsYXJnZS1zY3JlZW4tdXApIHtcblx0XHRAaW5jbHVkZSBzcGFuLWNvbHVtbnMoNCk7XG5cdFx0QGluY2x1ZGUgb21lZ2EoM24pO1xuXHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdH1cbn1cblxuLmZlYXR1cmUtYmxvY2staWNvbiB7XG5cdG1hcmdpbi1ib3R0b206IGVtKDE1KTtcbn1cblxuLmZlYXR1cmUtYmxvY2staWNvbiBzdmcge1xuXHRoZWlnaHQ6IDUwcHg7XG5cdHdpZHRoOiA1MHB4O1xufVxuXG4uZmVhdHVyZS1ibG9jay1saW5rIHtcblx0ZGlzcGxheTogYmxvY2s7XG59XG5cbi5mZWF0dXJlLWJsb2NrIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxuLmZlYXR1cmUtYmxvY2sgaW5wdXRbdHlwZT1cImVtYWlsXCJdIHtcblx0YmFja2dyb3VuZDogd2hpdGU7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmZlYXR1cmUtYmxvY2sgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHR3aWR0aDogMTAwJTtcbn1cblxuLmhvbWUtY2xpZW50cyB7XG5cdHBhZGRpbmc6IGVtKDMwKSAkc21hbGwtc3BhY2luZztcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXG5cdEBpbmNsdWRlIG1lZGlhKCRsYXJnZS1zY3JlZW4tdXApIHtcblx0XHRwYWRkaW5nOiBlbSg2MCkgMCAwO1xuXHR9XG5cblx0LnNsaWNrLXNsaWRlciB7XG5cdFx0bWFyZ2luLWJvdHRvbTogMHB4O1xuXG5cdFx0QGluY2x1ZGUgbWVkaWEoJG1lZGl1bS1zY3JlZW4tdXApIHtcblx0XHRcdG1hcmdpbi1ib3R0b206IDMwcHggIWltcG9ydGFudDtcblx0XHR9XG5cdH1cbn1cblxuLmhvbWUtY2xpZW50LWxvZ28ge1xuXHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuXHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG5cdG1pbi1oZWlnaHQ6IDEyMHB4ICFpbXBvcnRhbnQ7XG5cblx0QGluY2x1ZGUgbWVkaWEoJG1lZGl1bS1zY3JlZW4tdXApIHtcblx0XHRtaW4taGVpZ2h0OiAyMTBweCAhaW1wb3J0YW50O1xuXHR9XG59XG4iLCIucGFnZS1oZXJvIHtcblx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuXHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuXHRiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuXHRtaW4taGVpZ2h0OiAzMDBweDtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdEBpbmNsdWRlIG1lZGlhKCRsYXJnZS1zY3JlZW4tdXApIHtcblx0XHRtaW4taGVpZ2h0OiA1MDBweDtcblx0fVxuXG5cdC5zaW5nbGUtY2xpZW50ICYge1xuXHRcdG1pbi1oZWlnaHQ6IDIyMHB4O1xuXG5cdFx0QGluY2x1ZGUgbWVkaWEoJGxhcmdlLXNjcmVlbi11cCkge1xuXHRcdFx0bWluLWhlaWdodDogMjIwcHg7XG5cdFx0fVxuXHR9XG5cblx0LnBhZ2UtaGVyby1jb250ZW50IHtcblx0XHRAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlWSgtNTAlKSk7XG5cdFx0Y29sb3I6IHdoaXRlO1xuXHRcdGxlZnQ6IDA7XG5cdFx0cmlnaHQ6IDA7XG5cdFx0cGFkZGluZzogMCAzMHB4O1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0dG9wOiA1MCU7XG5cdFx0ei1pbmRleDogMTAwO1xuXG5cdFx0QGluY2x1ZGUgbWVkaWEoJGxhcmdlLXNjcmVlbi11cCkge1xuXHRcdFx0cGFkZGluZzogMCAxMjBweDtcblx0XHR9XG5cdH1cblxuXHQucGFnZS1oZXJvLXRpdGxlIHtcblx0XHRtYXJnaW4tYm90dG9tOiAwcHg7XG5cblx0XHRAaW5jbHVkZSBtZWRpYSgkbGFyZ2Utc2NyZWVuLXVwKSB7XG5cdFx0XHRmb250LXNpemU6IDYwcHg7XG5cdFx0fVxuXHR9XG5cblx0LnBhZ2UtaGVyby1zdWJ0aXRsZSB7XG5cdFx0Y29sb3I6ICRhY3Rpb24tY29sb3I7XG5cdH1cblxuXHQub3ZlcmxheSB7XG5cdFx0YmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjcpO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR0b3A6IDA7XG5cdFx0bGVmdDogMDtcblx0XHRyaWdodDogMDtcblx0XHRib3R0b206IDA7XG5cdH1cbn1cblxuLnNlcnZpY2VzLW1lbnUge1xuXHRiYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheTtcblx0Ym9yZGVyLWJvdHRvbTogc2hhZGUoJGxpZ2h0LWdyYXksIDIwJSk7XG5cdHBhZGRpbmc6IDIwcHg7XG5cblx0bGk6Zmlyc3QtY2hpbGQgYSwgbGk6Zmlyc3QtY2hpbGQge1xuXHRcdHBhZGRpbmctbGVmdDogMDtcblx0fVxuXG5cdGxpIHtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdH1cblxuXHRAaW5jbHVkZSBtZWRpYSgkbWVkaXVtLXNjcmVlbi11cCkge1xuXG5cdH1cbn1cbiIsIi5jdWx0dXJlLXRvcC1jb250ZW50IHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdGZvbnQtc2l6ZTogMjJweDtcblx0bWFyZ2luOiA2MHB4IGF1dG87XG5cdG1heC13aWR0aDogNjgwcHg7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmN1bHR1cmUtZGVzaWduLWZlYXR1cmVzLXNlY3Rpb24ge1xuXHRiYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheTtcblx0bWFyZ2luLWJvdHRvbTogNjBweDtcblx0cGFkZGluZzogMzBweDtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uY3VsdHVyZS1kZXNpZ24tZmVhdHVyZXMge1xuXHRAaW5jbHVkZSBvdXRlci1jb250YWluZXI7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuXG4uY3VsdHVyZS1kZXNpZ24tZmVhdHVyZSB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRsZXR0ZXItc3BhY2luZzogMXB4O1xuXHRtaW4taGVpZ2h0OiA5MHB4O1xuXHRwYWRkaW5nOiAwIDMwcHg7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHR0ZXh0LXRyYW5zZm9ybTogbG93ZXJjYXNlO1xuXG5cdEBpbmNsdWRlIG1lZGlhKCRsYXJnZS1zY3JlZW4tdXApIHtcblx0XHRmbG9hdDogbGVmdDtcblx0XHR3aWR0aDogcGVyY2VudGFnZSgxLzQpO1xuXG5cdFx0JjpudGgtY2hpbGQoNSksXG5cdFx0JjpudGgtY2hpbGQoNikge1xuXHRcdFx0d2lkdGg6IDUwJTtcblxuXHRcdFx0cCB7XG5cdFx0XHRcdHBhZGRpbmc6IDAgOTBweDtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRwIHtcblx0XHRAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlWSgtNTAlKSk7XG5cdFx0cGFkZGluZzogMCAxNXB4O1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR0b3A6IDUwJTtcblx0XHRsZWZ0OiAwO1xuXHRcdHJpZ2h0OiAwO1xuXHR9XG59XG5cbi5jdWx0dXJlLWJvdHRvbS1jb250ZW50IHtcblx0QGluY2x1ZGUgb3V0ZXItY29udGFpbmVyO1xuXHRkaXNwbGF5OiBibG9jaztcblx0bWFyZ2luOiAwIGF1dG87XG5cdG1hcmdpbi1ib3R0b206IDYwcHg7XG5cdG1heC13aWR0aDogNjgwcHg7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmN1bHR1cmUtY29udGFjdC1mb3JtIHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdG1hcmdpbjogMCBhdXRvO1xuXHRtYXJnaW4tYm90dG9tOiA2MHB4O1xuXHRtYXgtd2lkdGg6IDY4MHB4O1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5hcnQtYmxvY2tzIHtcblx0b3ZlcmZsb3c6IGF1dG87XG59XG5cbi5hcnQtYmxvY2sge1xuXHRkaXNwbGF5OiBibG9jaztcblx0ZmxvYXQ6IGxlZnQ7XG5cdHBhZGRpbmc6IDYwcHggJGJhc2Utc3BhY2luZztcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHR3aWR0aDogcGVyY2VudGFnZSgxLzMpO1xuXG5cdCYuaW1hZ2Uge1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcblx0XHRiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuXHRcdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG5cdH1cbn1cblxuLmFydC1pbWFnZXMge1xuXHRtYXJnaW4tYm90dG9tOiA2MHB4O1xufVxuXG4uYXJ0LWltYWdlcyAud3JhcCB7XG5cdEBpbmNsdWRlIG91dGVyLWNvbnRhaW5lcigxMjAwcHgpO1xufVxuXG4uYXJ0LWN0YSB7XG5cdG1hcmdpbi1ib3R0b206IDYwcHg7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLndoaXRlLXBvcHVwIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRiYWNrZ3JvdW5kOiAjRkZGO1xuXHRwYWRkaW5nOiAyMHB4O1xuXHR3aWR0aDogYXV0bztcblx0bWF4LXdpZHRoOiA4MDBweDtcblx0bWFyZ2luOiAyMHB4IGF1dG87XG59XG4iLCIuZm9vdGVyLWN0YSB7XG5cdGJhY2tncm91bmQ6ICRkYXJrLWdyYXk7XG5cdGNvbG9yOiB3aGl0ZTtcblx0cGFkZGluZzogNjBweCAkc21hbGwtc3BhY2luZztcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXG5cdEBpbmNsdWRlIG1lZGlhKCRsYXJnZS1zY3JlZW4tdXApIHtcblx0XHRwYWRkaW5nOiA2MHB4IDA7XG5cdH1cblxuXHQucGFnZS10ZW1wbGF0ZS10ZW1wbGF0ZS1jdWx0dXJlLXN1YiAmLFxuXHQucGFnZS10ZW1wbGF0ZS10ZW1wbGF0ZS1jdWx0dXJlLWRlc2lnbiAmIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG59XG4iLCIucGFnZS10ZW1wbGF0ZS10ZW1wbGF0ZS1jb250YWN0IC5jb250ZW50IHtcblx0QGluY2x1ZGUgb3V0ZXItY29udGFpbmVyKCk7XG5cblx0LmNvbnRhY3Qtc2lkZWJhciB7XG5cdFx0QGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDQpO1xuXHRcdHBhZGRpbmc6IDEuODc1ZW0gMDtcblx0fVxuXG5cdC5lbnRyeSB7XG5cdFx0QGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDgpO1xuXHRcdEBpbmNsdWRlIG9tZWdhO1xuXHR9XG59XG5cbi5jb250YWN0LXNpZGViYXIge1xuXHQuY29udGFjdC1zaWRlYmFyLWFkZHJlc3MsXG5cdC5jb250YWN0LXNpZGViYXItcGhvbmUsXG5cdC5jb250YWN0LXNpZGViYXItZW1haWwsXG5cdC5jb250YWN0LXNpZGViYXItdHdpdHRlciB7XG5cdFx0bWFyZ2luLWJvdHRvbTogMTBweDtcblx0fVxuXG5cdC5idXR0b24ge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHR3aWR0aDogMTAwJTtcblx0fVxufVxuIiwiLm5ld3NsZXR0ZXIuc2hvcnRjb2RlIHtcblx0YmFja2dyb3VuZDogJGxpZ2h0LWdyYXk7XG5cdGJvcmRlci1yYWRpdXM6ICRiYXNlLWJvcmRlci1yYWRpdXM7XG5cdG1hcmdpbjogMzBweCAwO1xuXHRwYWRkaW5nOiA2MHB4O1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cblx0Zm9ybSB7XG5cdFx0b3ZlcmZsb3c6IGF1dG87XG5cdH1cblxuXHRpbnB1dFt0eXBlPVwidGV4dFwiXSxcblx0aW5wdXRbdHlwZT1cImVtYWlsXCJdIHtcblx0XHRiYWNrZ3JvdW5kOiB3aGl0ZTtcblx0XHRib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcblx0XHRib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcblx0XHRoZWlnaHQ6IDQwcHg7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdH1cblxuXHRpbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuXHRcdGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG5cdH1cblxuXHRAaW5jbHVkZSBtZWRpYSgkbWVkaXVtLXNjcmVlbi11cCkge1xuXHRcdGlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxuXHRcdGlucHV0W3R5cGU9XCJlbWFpbFwiXSxcblx0XHRpbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0fVxuXG5cdFx0aW5wdXRbdHlwZT1cInRleHRcIl0sXG5cdFx0aW5wdXRbdHlwZT1cImVtYWlsXCJdIHtcblx0XHRcdHdpZHRoOiA3MCU7XG5cdFx0fVxuXG5cdFx0aW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG5cdFx0XHR3aWR0aDogMzAlO1xuXHRcdH1cblx0fVxufVxuIiwiLnRlc3RpbW9uaWFscy1zaG9ydGNvZGUge1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdHBhZGRpbmc6IDMwcHg7XG59XG4udGVzdGltb25pYWwge1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cblx0aW1nIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRtYXJnaW46IDAgYXV0bztcblx0XHRtYXJnaW4tYm90dG9tOiAxNXB4O1xuXHR9XG59XG5cbi50ZXN0aW1vbmlhbHMgLnNsaWNrLWRvdHMge1xuXHRib3R0b206IC00NXB4ICFpbXBvcnRhbnQ7XG5cdG1hcmdpbi1sZWZ0OiAwO1xufVxuXG4udGVzdGltb25pYWxzIC5zbGljay1kb3RzIGxpLnNsaWNrLWFjdGl2ZSBidXR0b246YmVmb3JlIHtcblx0Y29sb3I6ICNjY2MgIWltcG9ydGFudDtcbn1cbiIsIi5yZWxhdGVkLXBvc3RzIHtcblx0YmFja2dyb3VuZDogJGxpZ2h0LWdyYXk7XG5cdG1hcmdpbi10b3A6IDMwcHg7XG5cdHBhZGRpbmc6IDMwcHg7XG59XG4iLCJcbi5zZWFyY2gtcmVzdWx0cyB7XG4gICAgLnNlYXJjaC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiAyZW0gMCAzZW07XG4gICAgfVxuXG4gICAgI3NlYXJjaGZvcm0ge1xuICAgICAgICBpbnB1dFt0eXBlPXRleHRdIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgaW5wdXRbdHlwZT1zdWJtaXRdIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogLTVweDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi5zdG9yZS1sYW5kaW5nLnBhZ2Uge1xuXG4gICAgLmNvbnRlbnQge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSggJG1lZGl1bS1zY3JlZW4tdXAgKSB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogJGJhc2Utc3BhY2luZztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5zbGljay1zbGlkZXIge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwcHg7XG4gICAgfVxuXG4gICAgLmNvbnRlbnQtc2lkZWJhci13cmFwIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMHB4O1xuICAgIH1cblxuICAgIC5zdG9yZS1sYW5kaW5nLXNlY3Rpb24uaGVyby1zbGlkZXIge1xuXG4gICAgICAgIC5zbGljay1uZXh0IHtcbiAgICAgICAgICAgIHJpZ2h0OiAyNXB4O1xuICAgICAgICAgICAgei1pbmRleDogMTAwMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5zbGljay1wcmV2IHtcbiAgICAgICAgICAgIGxlZnQ6IDI1cHg7XG4gICAgICAgICAgICB6LWluZGV4OiAxMDAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLmhlcm8tc2xpZGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgYmdfb3ZlcmxheSggd2hpdGUsIDAuNyApO1xuICAgICAgICAgICAgQGluY2x1ZGUgYmcoKTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDUwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLmhlcm8tY29udGVudC13cmFwIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDUwMHB4O1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogMTAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLmhlcm8tY29udGVudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0oIHRyYW5zbGF0ZSggLTUwJSwgLTUwJSApICk7XG4gICAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHdpZHRoOiA4NSU7XG5cbiAgICAgICAgICAgIC5oZXJvLXRpdGxlLFxuICAgICAgICAgICAgLmhlcm8tc3ViLXRpdGxlLFxuICAgICAgICAgICAgLmNsb3Npbmctc3ViLXRpdGxlIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGRhcmstZ3JheTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuaGVyby10aXRsZSxcbiAgICAgICAgICAgIC5jbG9zaW5nLXN1Yi10aXRsZSB7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogJHNtYWxsLXNwYWNpbmcvMjtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICRoMy1mb250LXNpemUqMC43O1xuICAgICAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCAkbWVkaXVtLXNjcmVlbi11cCApIHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAkaDMtZm9udC1zaXplO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5oZXJvLXRpdGxlLWF0IHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzbWFsbC1zcGFjaW5nLzQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuaGVyby1zdWItdGl0bGUge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogJGJhc2Utc3BhY2luZyoyIDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5zdWItdGl0bGUtZXh0IHtcbiAgICAgICAgICAgICAgICBAbWVkaWEgKCBtYXgtd2lkdGg6ICRsYXJnZS1zY3JlZW4gKSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuY2xvc2luZy1zdWItdGl0bGUge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogJHNtYWxsLXNwYWNpbmcgMDtcbiAgICAgICAgICAgIH1cblxuXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuc3RvcmUtbGFuZGluZy1zZWN0aW9uLnByb2R1Y3QtYmxvY2tzIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtYXJnaW46ICRiYXNlLXNwYWNpbmcqMiAwICRiYXNlLXNwYWNpbmc7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoICRtZWRpdW0tc2NyZWVuLXVwICkge1xuICAgICAgICAgICAgQGluY2x1ZGUgZGlzcGxheShmbGV4KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZsZXgtd3JhcCh3cmFwKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wcm9kdWN0LWJsb2NrIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAkYmFzZS1zcGFjaW5nO1xuICAgICAgICBwYWRkaW5nLXRvcDogJGJhc2Utc3BhY2luZztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoICRtZWRpdW0tc2NyZWVuLXVwICkge1xuICAgICAgICAgICAgd2lkdGg6IHBlcmNlbnRhZ2UoMS8yKTtcblxuICAgICAgICAgICAgJjpudGgtY2hpbGQoIG9kZCApIHtcbiAgICAgICAgICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkYmFzZS1zcGFjaW5nO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOm50aC1jaGlsZCggZXZlbiApIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRiYXNlLXNwYWNpbmc7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgICAgIC5wcm9kdWN0LWJsb2NrLXRpdGxlIHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICAgICAgbWFyZ2luOiAkc21hbGwtc3BhY2luZztcbiAgICAgICAgfVxuXG4gICAgICAgIC5wcm9kdWN0LWJsb2NrLWJsdXJiIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRiYXNlLXNwYWNpbmcqMi41O1xuICAgICAgICB9XG5cbiAgICAgICAgLnByb2R1Y3QtYmxvY2staW5uZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAgICAgLmJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKCB0cmFuc2xhdGVYKCAtNTAlICkgKTtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxufVxuIiwiLmZsZXhpYmxlLXNlY3Rpb24ge1xuXHRwYWRkaW5nOiAkYmFzZS1zcGFjaW5nIDA7XG59XG5cbi5mbGV4aWJsZS1zZWN0aW9uIC5idXR0b24sXG4uZmxleGlibGUtc2VjdGlvbiBpbWcge1xuXHRtYXJnaW4tYm90dG9tOiAkYmFzZS1zcGFjaW5nO1xufVxuXG4uZmxleGlibGUtc2VjdGlvbiBpbWcge1xuXHRtYXJnaW4tdG9wOiAkYmFzZS1zcGFjaW5nO1xufVxuXG4uZmxleGlibGUtc2VjdGlvbi50ZXN0aW1vbmlhbCB7XG5cdGJvcmRlci1ib3R0b206ICRiYXNlLWJvcmRlcjtcblx0Ym9yZGVyLXRvcDogJGJhc2UtYm9yZGVyO1xuXHRjbGVhcjogYm90aDtcblx0dGV4dC1hbGlnbjogbGVmdDtcblxuXHQuYnV0dG9uIHtcblx0XHRtYXJnaW4tYm90dG9tOiAwXG5cdH1cbn1cblxuLmZsZXhpYmxlLXNlY3Rpb24udmlkZW8gaWZyYW1lIHtcblx0aGVpZ2h0OiA0MDBweDtcblx0d2lkdGg6IDEwMCUgIWltcG9ydGFudDtcblx0bWFyZ2luLWJvdHRvbTogJGJhc2Utc3BhY2luZy8yO1xufVxuIiwiLmZpZnR5LWZpZnR5IHtcblx0b3ZlcmZsb3c6IGF1dG87XG59XG5cbi5maWZ0eS1maWZ0eS1jb250ZW50LFxuLmZpZnR5LWZpZnR5LWltYWdlIHtcblxuXHRAaW5jbHVkZSBtZWRpYSgkbGFyZ2Utc2NyZWVuLXVwKSB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0d2lkdGg6IHBlcmNlbnRhZ2UoMS8yKTtcblx0fVxufVxuXG4uZmlmdHktZmlmdHktY29udGVudCB7XG5cdHBhZGRpbmc6IGVtKDMwKTtcblxuXHQucmlnaHQgJiB7XG5cdFx0ZmxvYXQ6IHJpZ2h0O1xuXHR9XG5cblx0LmJ1dHRvbiB7XG5cdFx0bWFyZ2luLWJvdHRvbTogJHNtYWxsLXNwYWNpbmc7XG5cdH1cblxuXHRAaW5jbHVkZSBtZWRpYSgkbGFyZ2Utc2NyZWVuLXVwKSB7XG5cdFx0cGFkZGluZzogZW0oOTApO1xuXHRcdHBhZGRpbmctYm90dG9tOiAwO1xuXHR9XG59XG5cbi5maWZ0eS1maWZ0eS1pbWFnZSB7XG5cdGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcblx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0YmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuXHRtaW4taGVpZ2h0OiAyNTBweDtcblxuXG5cdC5yaWdodCAmIHtcblx0XHRjbGVhcjogYm90aDtcblx0XHRAaW5jbHVkZSBtZWRpYSgkbGFyZ2Utc2NyZWVuLXVwKSB7XG5cdFx0XHRmbG9hdDogbGVmdDtcblx0XHRcdGNsZWFyOiBub25lICFpbXBvcnRhbnQ7XG5cdFx0fVxuXHR9XG5cblx0QGluY2x1ZGUgbWVkaWEoJG1lZGl1bS1zY3JlZW4tdXApIHtcblx0XHRiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuXHRcdG1pbi1oZWlnaHQ6IDYwMHB4O1xuXHR9XG5cbn1cbiIsIi5jb250ZW50LWJsb2NrcyB7XG5cdG92ZXJmbG93OiBhdXRvO1xuXHRwYWRkaW5nOiAkYmFzZS1zcGFjaW5nIDA7XG59XG5cbi5jb250ZW50LWJsb2NrIHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdGZsb2F0OiBsZWZ0O1xuXHRwYWRkaW5nOiAkYmFzZS1zcGFjaW5nO1xuXHRwYWRkaW5nLWJvdHRvbTogMDtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHR3aWR0aDogcGVyY2VudGFnZSgxLzMpO1xufVxuXG4uY29udGVudC1ibG9jay1pbWFnZSB7XG5cdG1hcmdpbi1ib3R0b206ICRiYXNlLXNwYWNpbmc7XG5cblx0aW1nIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRtYXJnaW46IDAgYXV0bztcblx0fVxufVxuIiwiLmN0YSB7XG5cdHBhZGRpbmc6ICRiYXNlLXNwYWNpbmcqMyAwO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cblx0Ji5oYXMtYmcgLmN0YS10aXRsZSB7XG5cdFx0Y29sb3I6IHdoaXRlO1xuXHR9XG59XG5cbi5wYWdlLWlkLTUyMTE5IC5jdGEgLmJ1dHRvbiB7XG5cdHBhZGRpbmc6IDIwcHggOTBweDtcbn1cbiIsIi5nYWxsZXJ5IHtcblx0bWFyZ2luOiAkYmFzZS1zcGFjaW5nIDA7XG59XG4iLCIucHJvZ3Jlc3MtY29udGVudCxcbi5wcm9ncmVzcy1iYXIge1xuXHRAaW5jbHVkZSBtZWRpYSgkbGFyZ2Utc2NyZWVuLXVwKSB7XG5cdFx0QGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDYpO1xuXHR9XG59XG5cbi5wcm9ncmVzcy1jb250ZW50IHtcblx0cGFkZGluZzogMCBlbSgxNSk7XG5cblx0QGluY2x1ZGUgbWVkaWEoJGxhcmdlLXNjcmVlbi11cCkge1xuXHRcdHBhZGRpbmc6IDA7XG5cdH1cbn1cblxuLnByb2dyZXNzLWJhciB7XG5cdHBhZGRpbmc6ICRiYXNlLXNwYWNpbmc7XG5cblx0QGluY2x1ZGUgbWVkaWEoJGxhcmdlLXNjcmVlbi11cCkge1xuXHRcdEBpbmNsdWRlIG9tZWdhO1xuXHR9XG59XG5cbkBtaXhpbiBjaXJjbGUoJHNpemUpIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2l6ZS8yfSk7XG4gIHRvcDogY2FsYyg1MCUgLSAjeyRzaXplLzJ9KTtcbiAgd2lkdGg6ICRzaXplO1xuICBoZWlnaHQ6ICRzaXplO1xufVxuXG4kc2l6ZTogMjAwcHg7XG4ucHJvZ3Jlc3MtcGllLWNoYXJ0IHtcbiAgd2lkdGg6ICRzaXplO1xuICBoZWlnaHQ6ICRzaXplO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNFNUU1RTU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgJi5ndC01MCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzgxQ0U5NztcbiAgfVxufVxuLnBwYy1wcm9ncmVzcyB7XG4gIEBpbmNsdWRlIGNpcmNsZSgkc2l6ZSk7XG4gIGNsaXA6IHJlY3QoMCwgJHNpemUsICRzaXplLCAjeyRzaXplLzJ9KTtcbiAgLnBwYy1wcm9ncmVzcy1maWxsIHtcbiAgICBAaW5jbHVkZSBjaXJjbGUoJHNpemUpO1xuICAgIGNsaXA6IHJlY3QoMCwgI3skc2l6ZS8yfSwgJHNpemUsIDApO1xuICAgIGJhY2tncm91bmQ6ICM4MUNFOTc7XG4gICAgLy8gdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICB9XG4gIC5ndC01MCAmIHtcbiAgICBjbGlwOiByZWN0KDAsICN7JHNpemUvMn0sICRzaXplLCAwKTtcbiAgICAucHBjLXByb2dyZXNzLWZpbGwge1xuICAgICAgY2xpcDogcmVjdCgwLCAkc2l6ZSwgJHNpemUsICN7JHNpemUvMn0pO1xuICAgICAgYmFja2dyb3VuZDogI0U1RTVFNTtcbiAgICB9XG4gIH1cbn1cbi5wcGMtcGVyY2VudHMge1xuICBAaW5jbHVkZSBjaXJjbGUoI3skc2l6ZS8xLjE1fSk7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZGlzcGxheTogdGFibGU7XG4gIHNwYW4ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMi42ZW07XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgY29sb3I6ICM4MUNFOTc7XG4gIH1cbn1cbi5wY2MtcGVyY2VudHMtd3JhcHBlciB7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cblxuXG5ib2R5IHtcbiAgZm9udC1mYW1pbHk6IEFyaWFsO1xuICBiYWNrZ3JvdW5kOiAjZjdmN2Y3O1xufVxuLnByb2dyZXNzLXBpZS1jaGFydCB7XG4gIG1hcmdpbjogMCBhdXRvIDA7XG59XG4iLCIuY29udGVudC1zZWN0aW9uIC53cmFwIHtcblx0cGFkZGluZzogMCBlbSgxNSk7XG5cblx0QGluY2x1ZGUgbWVkaWEoJGxhcmdlLXNjcmVlbi11cCkge1xuXHRcdHBhZGRpbmc6IDA7XG5cdH1cblxuXHQqOmxhc3QtY2hpbGQge1xuXHRcdG1hcmdpbi1ib3R0b206IDBweDtcblxuXHRcdC5idXR0b24ge1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogMHB4O1xuXHRcdH1cblxuXHR9XG59XG4iLCIud29vY29tbWVyY2UtcGFnZSB7XG5cbiAgICAuc2l0ZS1pbm5lciAud3JhcCB7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICBtYXgtd2lkdGg6IDkwJTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206ICRiYXNlLXNwYWNpbmc7XG4gICAgICAgIHBhZGRpbmctdG9wOiAkYmFzZS1zcGFjaW5nO1xuXG4gICAgICAgIC5jb250ZW50IHtcbiAgICAgICAgICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgYXJ0aWNsZSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAud3JhcCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLnNpdGUtaW5uZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICB9XG5cbiAgICAvLyBBZGQgdG8gQ2FydCBCdXR0b24gLSBncmlkXG4gICAgLmFkZF90b19jYXJ0X2J1dHRvbixcbiAgICAucHJvZHVjdF90eXBlX2dyb3VwZWQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbWVkaXVtLWdyYXkgIWltcG9ydGFudDtcbiAgICAgICAgY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBzaGFkZSgkbWVkaXVtLWdyYXksIDIwJSkgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFJlbW92ZSB0aGUgZ3Jhdml0YXIgZnJvbSByZXZpZXcuXG4gICAgI3Jldmlld3Mge1xuICAgICAgICAuYXZhdGFyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAuY29tbWVudC10ZXh0IHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBsaSB7XG4gICAgICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLndvb2NvbW1lcmNlLW1lc3NhZ2Uge1xuICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAkYmx1ZTtcbiAgICB9XG59XG5cbi53b29jb21tZXJjZSBmb3JtIC5mb3JtLXJvdyBsYWJlbCB7XG4gICAgZm9udC13ZWlnaHQ6IDEwMDtcbiAgICBsaW5lLWhlaWdodDogMS41ICFpbXBvcnRhbnQ7XG59XG4iLCIud29vY29tbWVyY2Uge1xuXG4gICAgbWFyayB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLnByb2R1Y3QtY2F0ZWdvcnkge1xuXG4gICAgICAgIGltZyB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBoMyB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBoMyB7XG4gICAgICAgICAgICAgICAgY29sb3I6IHNoYWRlKCRhY3Rpb24tY29sb3IsIDIwJSkgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLnByb2R1Y3RzIHtcbiAgICAgICAgbWFyZ2luOiAkYmFzZS1zcGFjaW5nIDAgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICB1bC5wcm9kdWN0cyBsaS5wcm9kdWN0IHtcbiAgICAgICAgLy8gcGFkZGluZzogMjBweCAhaW1wb3J0YW50O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHNtYWxsLXNwYWNpbmcgIWltcG9ydGFudDtcblxuICAgICAgICBAbWVkaWEgKCBtYXgtd2lkdGg6ICRtZWRpdW0tc2NyZWVuICkge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICB9XG5cbiAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wcm9kdWN0LWxvd2VyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGgzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkdGV4dC1ncmF5O1xuICAgICAgICAgICAgbWF4LXdpZHRoOiA2MCU7XG4gICAgICAgIH1cblxuICAgICAgICAuc3Rhci1yYXRpbmcge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wcmljZSB7XG4gICAgICAgICAgICBjb2xvcjogJHRleHQtZ3JheSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgZm9udC1zaXplOiBlbSgxNnB4KSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgcmlnaHQ6ICRzbWFsbC1zcGFjaW5nLzI7XG4gICAgICAgICAgICB0b3A6ICRzbWFsbC1zcGFjaW5nLzI7XG4gICAgICAgIH1cblxuICAgICAgICAuYnV0dG9uIHtcbiAgICAgICAgICAgIG1hcmdpbjogJHNtYWxsLXNwYWNpbmcvNCBhdXRvICRzbWFsbC1zcGFjaW5nIGF1dG8gIWltcG9ydGFudDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgLmFkZGVkX3RvX2NhcnQge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogJHNtYWxsLXNwYWNpbmcvMiAhaW1wb3J0YW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAuYnV0dG9uIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBzaGFkZSgkYWN0aW9uLWNvbG9yLCAyMCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLndvb2NvbW1lcmNlLnNpbmdsZS1wcm9kdWN0IHtcblxuICAgIC53b29jb21tZXJjZS1tZXNzYWdlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogc2hhZGUoJGxpZ2h0LWdyYXksIDUlKTtcblxuICAgICAgICAuYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRhY3Rpb24tY29sb3IgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBzaGFkZSgkYWN0aW9uLWNvbG9yLCAyMCUpICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5wcm9kdWN0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgfVxuXG4gICAgLnN1bW1hcnkge1xuXG4gICAgICAgIGgxIHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IG5vbmU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRzbWFsbC1zcGFjaW5nLzI7XG4gICAgICAgIH1cblxuICAgICAgICAud29vY29tbWVyY2UtcHJvZHVjdC1yYXRpbmcge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogJHNtYWxsLXNwYWNpbmc7XG4gICAgICAgIH1cblxuICAgICAgICAud29vY29tbWVyY2UtUHJpY2UtYW1vdW50IHtcbiAgICAgICAgICAgIGNvbG9yOiAkdGV4dC1ncmF5O1xuICAgICAgICB9XG5cbiAgICAgICAgLnF1YW50aXR5IGlucHV0LnF0eSB7XG4gICAgICAgICAgICBwYWRkaW5nOiA3LjVweCAhaW1wb3J0YW50O1xuICAgICAgICB9XG5cbiAgICAgICAgLnByaWNlIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRzbWFsbC1zcGFjaW5nO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNhcnQge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogJHNtYWxsLXNwYWNpbmc7XG4gICAgICAgIH1cblxuICAgICAgICAucHJvZHVjdC1hZGRvbiB7XG4gICAgICAgICAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRzbWFsbC1zcGFjaW5nICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgICAgICY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNtYWxsLXNwYWNpbmcgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5hZGRvbi1uYW1lIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogZW0oMThweCkgIWltcG9ydGFudDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRzbWFsbC1zcGFjaW5nLzIgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDAgIWltcG9ydGFudDtcbiAgICAgICAgfVxuXG4gICAgICAgIGFiYnJbdGl0bGVdIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvcm0gLmZvcm0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDBweCAhaW1wb3J0YW50O1xuXG4gICAgICAgICAgICBsYWJlbCB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDIwMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogZW0oMTRweCk7XG5cbiAgICAgICAgICAgICAgICBpbnB1dCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzbWFsbC1zcGFjaW5nLzQ7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgc21hbGwge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIEFkZCB0byBDYXJ0IEJ1dHRvbiAtIHNpbmdsZVxuICAgIC5zaW5nbGVfYWRkX3RvX2NhcnRfYnV0dG9uIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGFjdGlvbi1jb2xvciAhaW1wb3J0YW50O1xuICAgICAgICBjb2xvcjogd2hpdGUgIWltcG9ydGFudDtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHNoYWRlKCRhY3Rpb24tY29sb3IsIDIwJSkgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC53Yy10YWJzIHtcblxuICAgICAgICBAbWVkaWEoIG1heC13aWR0aDogJG1lZGl1bS1zY3JlZW4gKSB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAgICAgbGkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxufVxuXG4vLyBSZW1vdmUgYWRkIG9uIG1hcmdpbiB0b3BcbmRsLnByb2R1Y3QtYWRkb24tdG90YWxzIGR0IHtcbiAgICBtYXJnaW4tdG9wOiAwcHggIWltcG9ydGFudDtcbn1cbiIsIi8vIENhcnRcblxuLndvb2NvbW1lcmNlLWVycm9yIHtcbiAgICBsaSB7XG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbiAud29vY29tbWVyY2UtY2FydC53b29jb21tZXJjZS1wYWdlIHtcblxuICAgICAud3JhcCB7XG4gICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICAgfVxuXG4gICAgIC5lbnRyeS1oZWFkZXIge1xuXG4gICAgICAgICBhLmJ1dHRvbiB7XG4gICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgIGZsb2F0OiByaWdodDtcblxuICAgICAgICAgICAgIEBtZWRpYSAoIG1heC13aWR0aDogMzUwcHggKSB7XG4gICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogZW0oMTRweCk7XG4gICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRzbWFsbC1zcGFjaW5nO1xuICAgICAgICAgICAgIH1cbiAgICAgICAgIH1cbiAgICAgfVxuXG4gICAgIC5jb3Vwb24ge1xuICAgICAgICAgQG1lZGlhICggbWF4LXdpZHRoOiAkbWVkaXVtLXNjcmVlbiApIHtcbiAgICAgICAgICAgICBpbnB1dCB7XG4gICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNtYWxsLXNwYWNpbmcvMjtcbiAgICAgICAgICAgICB9XG5cbiAgICAgICAgIH1cbiAgICAgfVxuXG4gICAgIC5lbnRyeSB7XG4gICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICB9XG5cbiAgICAgLmNhcnRfaXRlbSB7XG4gICAgICAgICBtYXJnaW4tYm90dG9tOiAkYmFzZS1zcGFjaW5nO1xuXG4gICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGxpZ2h0LWdyYXk7XG4gICAgICAgICB9XG4gICAgIH1cblxuICAgIC5jYXJ0LWNvbGxhdGVyYWxzIC5jYXJ0X3RvdGFscyB7XG4gICAgICAgIGZsb2F0OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLmNoZWNrb3V0LWJ1dHRvbiB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRibHVlICFpbXBvcnRhbnQ7XG4gICAgICAgIGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogc2hhZGUoJGFjdGlvbi1jb2xvciwgMjAlKSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgY29sb3I6ICNmZmYgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5xdWFudGl0eSB7XG4gICAgICAgIGlucHV0W3R5cGU9XCJudW1iZXJcIl0ge1xuICAgICAgICAgICAgcGFkZGluZzogNy41cHggIWltcG9ydGFudDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vIFRhYmxlIHN0dWZmXG4ud29vY29tbWVyY2UgdGFibGUuc2hvcF90YWJsZSAge1xuXG4gICAgdGhlYWQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd29vLWxpZ2h0LWdyYXkgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICB0ciB7XG5cbiAgICAgICAgJjpudGgtY2hpbGQoZXZlbiksXG4gICAgICAgICYub3JkZXJfaXRlbTpudGgtY2hpbGQob2RkKSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbGlnaHQtZ3JheSAhaW1wb3J0YW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi5jYXJ0LXN1YnRvdGFsIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3b28tbGlnaHQtZ3JheSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdGgge1xuICAgICAgICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG5cbn1cblxuLndvb2NvbW1lcmNlIHRhYmxlLnNob3BfdGFibGUgdGQge1xuICAgIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuXG4gICAgJi5hY3Rpb25zIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGUgIWltcG9ydGFudDtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRsaWdodC1ncmF5ICFpbXBvcnRhbnQ7XG4gICAgfVxufVxuXG4vLyBUd2VhayB0byB0aGUgY291cG9uIGNvZGUgaW5wdXRcbiYud29vY29tbWVyY2UgI2NvbnRlbnQgdGFibGUuY2FydCB0ZC5hY3Rpb25zIC5pbnB1dC10ZXh0LFxuLndvb2NvbW1lcmNlIHRhYmxlLmNhcnQgdGQuYWN0aW9ucyAuaW5wdXQtdGV4dCxcbi53b29jb21tZXJjZS1wYWdlICNjb250ZW50IHRhYmxlLmNhcnQgdGQuYWN0aW9ucyAuaW5wdXQtdGV4dCxcbi53b29jb21tZXJjZS1wYWdlIHRhYmxlLmNhcnQgdGQuYWN0aW9ucyAuaW5wdXQtdGV4dCB7XG4gICAgcGFkZGluZy1ib3R0b206IDcuNXB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy10b3A6IDcuNXB4ICFpbXBvcnRhbnQ7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSggJG1lZGl1bS1zY3JlZW4tdXAgKSB7XG4gICAgICAgIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgfVxufVxuXG4vLyBTaGlwcGluZyBTdHlsZXNcbiNzaGlwcGluZ19tZXRob2Qge1xuICAgIGxpIHtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZSAhaW1wb3J0YW50O1xuXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBsYWJlbCB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogMzAwICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cblxuICAgIH1cbn1cbiIsIi8vIENoZWNrb3V0IFBhZ2VcbiNwYXltZW50IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbGlnaHQtZ3JheSAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi10b3A6ICRiYXNlLXNwYWNpbmcqMjtcblxuICAgIHVsIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkZGFyay1ncmF5ICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLnBheW1lbnRfYm94OmFmdGVyLFxuICAgIC5wYXltZW50X2JveDpiZWZvcmUsXG4gICAgbGk6YmVmb3JlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgICNwbGFjZV9vcmRlciB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4yNWVtO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxZW07XG4gICAgICAgIHBhZGRpbmc6IDFlbTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJsdWUgIWltcG9ydGFudDtcbiAgICAgICAgY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBzaGFkZSgkYWN0aW9uLWNvbG9yLCAyMCUpICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxuXG59XG5cbiNvcmRlcl9yZXZpZXdfaGVhZGluZyB7XG4gICAgbWFyZ2luLXRvcDogJGJhc2Utc3BhY2luZztcbn1cblxuLndjX3BheW1lbnRfbWV0aG9kcyB7XG4gICAgYm9yZGVyLWJvdHRvbTogMHB4ICFpbXBvcnRhbnQ7XG5cbiAgICAudXBwZXItZGV0YWlscyB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgaW5wdXRbdHlwZT1cInJhZGlvXCJdLFxuICAgICAgICBsYWJlbCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQgIWltcG9ydGFudDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiA2cHggIWltcG9ydGFudDtcbiAgICAgICAgfVxuXG4gICAgICAgIGEge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzbWFsbC1zcGFjaW5nO1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAubG93ZXItZGV0YWlscyB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgaW5wdXQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGUgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wYXltZW50X2JveCB7XG4gICAgICAgIG1hcmdpbi10b3A6IDBweCAhaW1wb3J0YW50O1xuICAgIH1cbn1cblxuI3NoaXAtdG8tZGlmZmVyZW50LWFkZHJlc3Mge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIGxhYmVsIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBmb250LXNpemU6IDIwcHggIWltcG9ydGFudDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDMwMCAhaW1wb3J0YW50O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAkYmFzZS1zcGFjaW5nKi43NTtcbiAgICB9XG5cbiAgICAjc2hpcC10by1kaWZmZXJlbnQtYWRkcmVzcy1jaGVja2JveCB7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA0MCU7XG4gICAgfVxufVxuXG5cbiNjZ2RfZ2lmdF9ub3RlX2ZpZWxkIHtcbiAgICBjbGVhcjogYm90aDtcbn1cbiIsIi53b29jb21tZXJjZS1wYWdpbmF0aW9uIHtcblxuICAgIHVsLFxuICAgIGxpIHtcbiAgICAgICAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgLmN1cnJlbnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJsdWUgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xuICAgICAgICB9XG5cbiAgICAgICAgLnBhZ2UtbnVtYmVycyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGFyay1ncmF5O1xuICAgICAgICAgICAgY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDRweCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgcGFkZGluZzogNnB4IDEwcHggIWltcG9ydGFudDtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAkYmFzZS1kdXJhdGlvbiAkYmFzZS10aW1pbmc7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRibHVlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIud29vY29tbWVyY2Utb3JkZXItcmVjZWl2ZWQge1xuXG4gICAgLnNob3BfdGFibGUub3JkZXJfZGV0YWlscyB7XG5cbiAgICAgICAgLm9yZGVyX2l0ZW06bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRsaWdodC1ncmF5ICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAub3JkZXJfaXRlbTpudGgtY2hpbGQob2RkKSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xuICAgICAgICB9XG5cbiAgICAgICAgdGZvb3Qge1xuICAgICAgICAgICAgdHI6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3b28tbGlnaHQtZ3JheSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm9yZGVyX2RldGFpbHMge1xuICAgICAgICBtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50O1xuICAgICAgICBtYXJnaW4tdG9wOiAkYmFzZS1zcGFjaW5nICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgbGkge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogIzMzMyAhaW1wb3J0YW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXN0eWxlOiBzb2xpZCAhaW1wb3J0YW50O1xuXG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1yaWdodDogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztFQU9FO0FBQ0YsT0FBTyxDQUFQLGtEQUFPO0F3RlJQLEFBQUEsTUFBTSxFQUFFLEFBQW1CLEtBQWQsQ0FBQSxBQUFBLElBQUMsQ0FBSyxRQUFRLEFBQWIsR0FBZ0IsQUFBa0IsS0FBYixDQUFBLEFBQUEsSUFBQyxDQUFLLE9BQU8sQUFBWixHQUFlLEFBQW1CLEtBQWQsQ0FBQSxBQUFBLElBQUMsQ0FBSyxRQUFRLEFBQWI7QUFDekQsQUFBQSxPQUFPO0FBQ1AsQUFBZ0QsMEJBQXRCLENBQUMsb0JBQW9CLENBQUMsQ0FBQztBQUNqRCxBQUE0QywwQkFBbEIsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBSDdDO0VBQ0ksVUFBVSxFQUFFLElBQUs7RUFDakIs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TmhCLEFBTVEsdUJBTmUsQ0FHbkIsRUFBRSxDQUdFLFFBQVEsQ0FBQztJQUNMLGdCQUFnQixFMUZpQnJCLE9BQU8sQzBGakJzQixVQUFVO0lBQ2xDLEtBQUssRUFBRSxnQkFBaUIsR0FDM0I7RUFUVCxBQVdRLHVCQVhlLENBRW5CLEVBQUUsQ0FTRSxhQUFhO0VBWHJCLEFBV1EsdUJBWGUsQ0FHbkIsRUFBRSxDQVFFLGFBQWEsQ0FBQztJQUNWLGdCQUFnQixFMUZhaEIsT0FBTztJMEZaUCxLQUFLLEVBQUUsZ0JBQWlCO0lBQ3hCLFlBQVksRUFBRSxjQUFlO0lBQzdCLE9BQU8sRUFBRSxtQkFBb0I7SUFDN0IsVUFBVSxFQUFFLEdBQUcsQzFGZ0NYLEtBQUssQ0FDUCxJQUFJLEcwRjVCVDtJQXJCVCxBQVdRLHVCQVhlLENBRW5CLEVBQUUsQ0FTRSxhQUFhLEFBT1IsTUFBTTtJQWxCbkIsQUFXUSx1QkFYZSxDQUduQixFQUFFLENBUUUsYUFBYSxBQU9SLE1BQU0sQ0FBQztNQUNKLGdCQUFnQixFMUZLekIsT0FBTyxDMEZMMEIsVUFBVSxHQUNyQzs7QUNwQmIsQUFJa0MsMkJBSlAsQ0FFdkIsV0FBVyxBQUFBLGNBQWMsQ0FFckIsV0FBVyxBQUFBLFVBQVcsQ0FBQSxBQUFBLElBQUksRUFBRTtFQUN4QixnQkFBZ0IsRTNGdUJmLE9BQU8sQzJGdkJzQixVQUFVLEdBQzNDOztBQU5ULEFBUWlDLDJCQVJOLENBRXZCLFdBQVcsQUFBQSxjQUFjLENBTXJCLFdBQVcsQUFBQSxVQUFXLENBQUEsQUFBQSxHQUFHLEVBQUU7RUFDdkIsZ0JBQWdCLEVBQUUsZ0JBQWlCLEdBQ3RDOztBQVZULEFBYWMsMkJBYmEsQ0FFdkIsV0FBVyxBQUFBLGNBQWMsQ0FVckIsS0FBSyxDQUNELEVBQUUsQUFBQSxZQUFZLENBQUM7RUFDWCxnQkFBZ0IsRTNGZWYsT0FBTyxDMkZmMEIsVUFBVSxHQUMvQzs7QUFmYixBQW1CSSwyQkFuQnVCLENBbUJ2QixjQUFjLENBQUM7RUFDWCxXQUFXLEVBQUUsWUFBYTtFQUMxQixVQUFVLEUzRkZILEtBQWlCLEMyRkVFLFVBQVUsR0FldkM7RUFwQ0wsQUF1QlEsMkJBdkJtQixDQW1CdkIsY0FBYyxDQUlWLEVBQUUsQ0FBQztJQUNDLFdBQVcsRUFBRSxZQUFhO0lBQzFCLGtCQUFrQixFQUFFLGVBQWdCO0lBQ3BDLGtCQUFrQixFQUFFLGdCQUFpQixHQVN4QztJQW5DVCxBQXVCUSwyQkF2Qm1CLENBbUJ2QixjQUFjLENBSVYsRUFBRSxBQUtHLE9BQU8sQ0FBQztNQUNMLE9BQU8sRUFBRSxJQUFLLEdBQ2pCO0lBOUJiLEFBdUJRLDJCQXZCbUIsQ0FtQnZCLGNBQWMsQ0FJVixFQUFFLEFBU0csYUFBYSxDQUFDO01BQ1gsWUFBWSxFQUFFLGVBQWdCLEdBQ2pDIiwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiL3NvdXJjZS8ifQ== */
