@charset "UTF-8";
/*
	Theme Name: Proven Men
	Description: 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 a,
.static-button,
.read-more .button {
  appearance: none;
  background-color: #c9282d;
  border: 0;
  color: #fff;
  cursor: pointer;
  display: inline-block;
  font-family: "Lato", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
  font-size: 1em;
  -webkit-font-smoothing: antialiased;
  font-weight: 500;
  line-height: 1;
  margin: 0 5px 15px 0;
  padding: 1em 3em;
  position: relative;
  text-decoration: none;
  text-transform: uppercase;
  transition: background-color 300ms ease;
  user-select: none;
  vertical-align: middle;
  white-space: nowrap; }
  .button a:before,
  .static-button:before,
  .read-more .button:before {
    content: '';
    border-left: 1px solid #c9282d;
    border-bottom: 1px solid #c9282d;
    padding: 5px;
    position: absolute;
    transition: all 300ms ease;
    top: 5px;
    left: -5px;
    right: 5px;
    bottom: -5px; }
    .mejs-inner .button a:before, .mejs-inner
    .static-button:before, .mejs-inner
    .read-more .button:before {
      display: none; }
  .button a:hover, .button a:focus,
  .static-button:hover,
  .static-button:focus,
  .read-more .button:hover,
  .read-more .button:focus {
    background-color: #9d1304;
    color: #fff; }
    .button a:hover:before, .button a:focus:before,
    .static-button:hover:before,
    .static-button:focus:before,
    .read-more .button:hover:before,
    .read-more .button:focus:before {
      border-left: 1px solid #9d1304;
      border-bottom: 1px solid #9d1304;
      top: 0;
      right: 0;
      bottom: 0;
      left: 0; }
  .button a:disabled,
  .static-button:disabled,
  .read-more .button:disabled {
    cursor: not-allowed;
    opacity: 0.5; }
    .button a:disabled:hover,
    .static-button:disabled:hover,
    .read-more .button:disabled:hover {
      background-color: #c9282d; }
  .button a.dark,
  .static-button.dark,
  .read-more .button.dark {
    background-color: #444;
    color: #fff; }
    .button a.dark:before,
    .static-button.dark:before,
    .read-more .button.dark:before {
      border-left: 1px solid #444;
      border-bottom: 1px solid #444; }
    .button a.dark:hover, .button a.dark:focus,
    .static-button.dark:hover,
    .static-button.dark:focus,
    .read-more .button.dark:hover,
    .read-more .button.dark:focus {
      background-color: #222;
      color: #fff; }
      .button a.dark:hover:before, .button a.dark:focus:before,
      .static-button.dark:hover:before,
      .static-button.dark:focus:before,
      .read-more .button.dark:hover:before,
      .read-more .button.dark:focus:before {
        border-left: 1px solid #222;
        border-bottom: 1px solid #222; }
  .button a.light,
  .static-button.light,
  .read-more .button.light {
    background-color: white;
    color: #222; }
    .button a.light:before,
    .static-button.light:before,
    .read-more .button.light:before {
      content: '';
      border-left: 1px solid #fff;
      border-bottom: 1px solid #fff;
      padding: 5px;
      position: absolute;
      transition: all 300ms ease;
      top: 0;
      left: -5px;
      right: 0;
      bottom: -5px; }
    .button a.light:hover, .button a.light:focus,
    .static-button.light:hover,
    .static-button.light:focus,
    .read-more .button.light:hover,
    .read-more .button.light:focus {
      background-color: #f9f9f9;
      color: #222; }
      .button a.light:hover:before, .button a.light:focus:before,
      .static-button.light:hover:before,
      .static-button.light:focus:before,
      .read-more .button.light:hover:before,
      .read-more .button.light:focus:before {
        border-left: 1px solid #f9f9f9;
        border-bottom: 1px solid #f9f9f9;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0; }
  .button a.small,
  .static-button.small,
  .read-more .button.small {
    font-size: 14px;
    padding: 0.75em 1.5em; }
    .button a.small:before,
    .static-button.small:before,
    .read-more .button.small:before {
      display: none; }

.black-button a {
  background-color: #222;
  color: white;
  display: block;
  font-weight: 100;
  padding: 0.75em 1.5em;
  text-align: center;
  text-transform: uppercase;
  transition: background-color 300ms ease; }
  .black-button a:hover {
    background-color: #3c3c3c;
    color: white; }

.white-button a {
  background-color: white;
  color: #c9282d;
  display: inline-block;
  font-weight: 100;
  padding: 0.375em;
  text-transform: uppercase;
  transition: background-color 300ms ease; }
  .white-button a:hover {
    background-color: #e6e6e6;
    color: #c9282d; }

.button.no-border :before,
button.no-border :before {
  display: none !important; }

.full-width {
  width: 100%; }
  .full-width a {
    width: 100%;
    text-align: center; }

.button {
  display: inline-block; }

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; }
  .page-template-landing .has-form-background ._row span label {
    display: inline-block; }

input,
select {
  display: block;
  font-family: "Lato", "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: #fff;
  border: 1px solid #f9f9f9;
  border-color: #c7c7c7;
  border-radius: 3px;
  box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.06);
  box-sizing: border-box;
  font-family: "Lato", "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: #959595; }
  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: #c9282d;
    box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.06), 0 0 5px rgba(180, 36, 40, 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: #f2f2f2;
    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 #f9f9f9; }

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-type: none;
  margin: 0;
  padding: 0; }

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

.check-list ul li,
.check-list ol li {
  margin-left: 2.5em;
  padding-bottom: 0.75em;
  position: relative; }
  .check-list ul li:before,
  .check-list ol li:before {
    content: "";
    background-image: url("assets/icons/check-mark.png");
    background-repeat: no-repeat;
    background-position: left center;
    background-size: contain;
    height: 22px;
    width: 22px;
    left: -30px;
    position: absolute; }

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

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

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

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

body {
  color: #222;
  font-family: "Lato", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
  font-size: 0.875em;
  line-height: 1.5; }
  @media only screen and (min-width: 800px) {
    body {
      font-size: 1em; } }

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: "Oswald", "Lato", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
  font-size: 1em;
  line-height: 1.2;
  margin: 0 0 0.75em;
  text-transform: uppercase; }

h1 {
  font-size: 3em; }

h2 {
  font-size: 2.25em; }

h3 {
  font-size: 1.875em; }

h4 {
  font-size: 1.625em; }

h5 {
  font-size: 1.375em; }

h6 {
  font-size: 1.125em; }

.mega-header {
  font-size: 42px; }
  @media only screen and (min-width: 900px) {
    .mega-header {
      font-size: 60px; } }

p {
  margin: 0 0 1.5em; }

a {
  color: #c9282d;
  text-decoration: none;
  transition: color 150ms ease; }
  a:active, a:focus, a:hover {
    color: #9d1304;
    outline: none; }

a.static-button {
  color: white; }
  a.static-button:active, a.static-button:focus, a.static-button:hover {
    color: white; }

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

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

.body-font {
  font-family: "Lato", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif; }

.heading-font {
  font-family: "Oswald", "Lato", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif; }

.capitalized {
  text-transform: capitalize; }

.uppercase {
  text-transform: uppercase; }

.move-text-up {
  display: inline-block;
  margin-top: -20px; }

.light {
  font-family: 300; }

.strikethrough {
  color: #c9282d;
  text-decoration: line-through; }

html {
  box-sizing: border-box; }

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

/* ## Site Containers
--------------------------------------------- */
.wrap {
  max-width: 1080px;
  margin-left: auto;
  margin-right: auto;
  padding: 0 1.5em; }
  .wrap::after {
    clear: both;
    content: "";
    display: table; }
  @media only screen and (min-width: 1440px) {
    .wrap {
      padding: 0; } }

.error404 .site-inner {
  padding: 5em 0; }

.post-type-archive-tribe_events .site-inner,
.single-tribe_events .site-inner,
.single-tribe_venue .site-inner {
  margin-top: 3em;
  margin-bottom: 3em; }
  @media screen and (min-width: 800px) {
    .post-type-archive-tribe_events .site-inner,
    .single-tribe_events .site-inner,
    .single-tribe_venue .site-inner {
      margin-top: 5em;
      margin-bottom: 5em; } }

/* ## 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: 800px) {
  .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 {
    float: left;
    display: block;
    margin-right: 2.35765%;
    width: 100%; }
    .full-width-content .content-sidebar-wrap .content:last-child {
      margin-right: 0; }
  .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%; } }

/**
* Avatar!!!!
*/
.avatar {
  float: left; }

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

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

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

/**
* Media
*/
.mejs-container {
  margin-bottom: 1.5em; }

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; }

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

img {
  height: auto; }

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

/**
* Site Title
*/
.site-title a,
.site-title a:hover {
  color: #444; }

.header-image .site-title > a {
  background: url(assets/images/logo.png) no-repeat left;
  background-size: contain;
  float: left;
  min-height: 79px;
  width: 50%; }
  @media screen and (min-width: 600px) {
    .header-image .site-title > a {
      background-size: contain;
      width: 30%; } }
  @media screen and (min-width: 800px) {
    .header-image .site-title > a {
      background-size: 90%;
      width: 100%; } }

/**
* Widget
*/
.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; }

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

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

.entry-content ul > li {
  list-style-type: none; }
  .entry-content ul > li:before {
    color: #c9282d;
    content: "•";
    position: relative;
    left: -7px;
    font-size: 18px;
    margin-left: -7px; }

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

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

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

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

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

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

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

/**
* Gallery
*
* 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 #444;
  height: auto;
  padding: 4px; }

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

/**
 * Components
 */
.site-header {
  background-color: #fff;
  position: relative;
  margin-top: -6px; }
  .site-header .wrap {
    max-width: 1200px;
    margin-left: auto;
    margin-right: auto; }
    .site-header .wrap::after {
      clear: both;
      content: "";
      display: table; }

/**
 * Title Area
 */
.title-area {
  overflow: auto;
  width: 100%; }
  @media screen and (min-width: 800px) {
    .title-area {
      float: left;
      display: block;
      margin-right: 2.35765%;
      width: 23.23176%; }
      .title-area:last-child {
        margin-right: 0; } }

.nav-primary {
  display: none; }
  @media screen and (min-width: 800px) {
    .nav-primary {
      float: left;
      display: block;
      margin-right: 2.35765%;
      width: 74.41059%;
      margin-right: 0; }
      .nav-primary:last-child {
        margin-right: 0; } }

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

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

.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: 800px) {
    .mobile-menu-icon {
      display: none; } }

.modaal-close:before {
  border-left: 0px;
  border-bottom: 0px;
  padding: 0px;
  right: 0px;
  bottom: 0px; }

.modaal-close:hover:before {
  top: 14px;
  left: 23px; }

.just-red-nav .red-bar-logo {
  width: 100px;
  height: 26px;
  background-image: url("assets/images/pm-logo.png");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: left;
  display: block;
  position: absolute;
  left: 1.5em;
  top: 50%;
  -webkit-transform: translateY(-50%);
  -moz-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  -o-transform: translateY(-50%);
  transform: translateY(-50%); }

.just-red-nav #mobile-menu .icon-close-container {
  top: 6px; }

.account-menu-wrap {
  background-color: #c9282d;
  display: none;
  width: 100%;
  padding: 0.75em 0; }
  @media screen and (min-width: 800px) {
    .account-menu-wrap {
      display: inline-block; } }
  .account-menu-wrap .wrap {
    max-width: 1200px;
    margin-left: auto;
    margin-right: auto;
    padding: 0px;
    position: relative; }
    .account-menu-wrap .wrap::after {
      clear: both;
      content: "";
      display: table; }
  .account-menu-wrap #menu-account-nav {
    visibility: hidden; }
    @media screen and (min-width: 800px) {
      .account-menu-wrap #menu-account-nav {
        visibility: visible; } }
  .account-menu-wrap li {
    float: right;
    padding-left: 1.5em;
    position: relative; }
    .account-menu-wrap li:before {
      content: "";
      background-color: white;
      width: 1px;
      height: 14px;
      position: absolute;
      left: 0px;
      top: 50%;
      -webkit-transform: translateY(-50%);
      -moz-transform: translateY(-50%);
      -ms-transform: translateY(-50%);
      -o-transform: translateY(-50%);
      transform: translateY(-50%); }
    .account-menu-wrap li:last-of-type:before {
      display: none; }
    .account-menu-wrap li a {
      color: white;
      padding: 0.75em 1.875em;
      text-transform: uppercase;
      font-family: "Oswald", "Lato", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
      font-size: 1em;
      position: relative; }
      .account-menu-wrap li a:hover {
        color: white; }
      .account-menu-wrap li a .sub-menu {
        display: none; }
  .account-menu-wrap li.menu-item-has-children {
    position: relative; }
    .account-menu-wrap li.menu-item-has-children:hover .sub-menu {
      visibility: visible; }
  .account-menu-wrap .sub-menu {
    background-color: #c9282d;
    left: 0;
    list-style: none;
    margin: 11px 0px 0px;
    opacity: 1;
    padding-bottom: 10px;
    position: absolute;
    text-align: left;
    text-transform: none;
    visibility: hidden;
    width: 200px;
    z-index: 280; }
    .account-menu-wrap .sub-menu.edge {
      left: auto;
      right: 0; }
    .account-menu-wrap .sub-menu li {
      border-left: 0px;
      clear: both;
      float: left;
      padding-left: 0px;
      width: 100%; }
      .account-menu-wrap .sub-menu li:before {
        display: none; }
      .account-menu-wrap .sub-menu li.dark-red a {
        background-color: #9d1304;
        font-size: 0.75em;
        font-weight: 700;
        opacity: 1;
        text-transform: uppercase; }
      .account-menu-wrap .sub-menu li a {
        display: block;
        padding: 0.375rem 1.5rem;
        width: 100%;
        width: auto;
        text-transform: capitalize;
        font-family: "Lato", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
        font-size: 0.875em;
        opacity: 0.5; }
        .account-menu-wrap .sub-menu li a:before {
          display: none; }
        .account-menu-wrap .sub-menu li a:hover {
          opacity: 1; }

.account-menu-portal a,
.account-menu-store a {
  position: relative;
  text-transform: uppercase;
  font-family: "Oswald", "Lato", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
  font-size: 1em; }
  .account-menu-portal a:before,
  .account-menu-store a:before {
    -webkit-transform: translateY(-50%);
    -moz-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    -o-transform: translateY(-50%);
    transform: translateY(-50%);
    background-image: url("assets/icons/padlock.svg");
    background-repeat: no-repeat;
    background-size: cover;
    content: "";
    height: 15px;
    left: 4px;
    position: absolute;
    top: 50%;
    width: 15px; }

.account-menu-portal:hover a:before,
.account-menu-store:hover a:before {
  opacity: 1; }

.account-menu-portal .sub-menu a,
.account-menu-store .sub-menu a {
  text-transform: capitalize;
  font-family: "Lato", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
  font-size: 0.875em; }
  .account-menu-portal .sub-menu a:before,
  .account-menu-store .sub-menu a:before {
    display: none; }

.account-menu-portal a:before {
  background-image: url("assets/icons/portal-icon.png"); }

.account-menu-store a:before {
  background-image: url("assets/icons/store-icon.png"); }

.account-menu-store .sub-menu {
  min-width: 202px; }
  .account-menu-store .sub-menu li:nth-child(1),
  .account-menu-store .sub-menu li:nth-child(2) {
    clear: none;
    display: inline-block;
    float: left;
    width: 50%; }
    .account-menu-store .sub-menu li:nth-child(1) a,
    .account-menu-store .sub-menu li:nth-child(2) a {
      text-transform: uppercase; }
  .account-menu-store .sub-menu li:nth-child(2) {
    position: relative; }
    .account-menu-store .sub-menu li:nth-child(2) a:before {
      -webkit-transform: translateY(-50%);
      -moz-transform: translateY(-50%);
      -ms-transform: translateY(-50%);
      -o-transform: translateY(-50%);
      transform: translateY(-50%);
      background-color: white;
      content: "";
      display: block !important;
      height: 14px;
      position: absolute;
      right: 0px;
      top: 50%;
      width: 1px; }

.mobile-menu .menu-account-nav-container {
  background-color: #c9282d;
  display: inline-block;
  width: 100%; }
  .mobile-menu .menu-account-nav-container .account-menu-portal,
  .mobile-menu .menu-account-nav-container .account-menu-store {
    background-color: #a12024; }
    .mobile-menu .menu-account-nav-container .account-menu-portal.menu-item-has-children:after,
    .mobile-menu .menu-account-nav-container .account-menu-store.menu-item-has-children:after {
      top: 12px !important; }
    .mobile-menu .menu-account-nav-container .account-menu-portal a,
    .mobile-menu .menu-account-nav-container .account-menu-store a {
      padding-left: 45px !important; }
      .mobile-menu .menu-account-nav-container .account-menu-portal a:before,
      .mobile-menu .menu-account-nav-container .account-menu-store a:before {
        -webkit-transform: translateY(-50%);
        -moz-transform: translateY(-50%);
        -ms-transform: translateY(-50%);
        -o-transform: translateY(-50%);
        transform: translateY(-50%);
        background-repeat: no-repeat;
        background-size: cover;
        content: "";
        height: 15px;
        left: 20px;
        position: absolute;
        top: 50%;
        width: 15px; }
    .mobile-menu .menu-account-nav-container .account-menu-portal .sub-menu li,
    .mobile-menu .menu-account-nav-container .account-menu-store .sub-menu li {
      width: 100% !important; }
      .mobile-menu .menu-account-nav-container .account-menu-portal .sub-menu li a,
      .mobile-menu .menu-account-nav-container .account-menu-store .sub-menu li a {
        background-color: #c9282d;
        display: inline-block;
        width: 100% !important;
        padding: 8px 20px !important;
        margin: 0px;
        font-size: 0.875em; }
      .mobile-menu .menu-account-nav-container .account-menu-portal .sub-menu li:last-of-type a,
      .mobile-menu .menu-account-nav-container .account-menu-store .sub-menu li:last-of-type a {
        padding-bottom: 16px !important; }
      .mobile-menu .menu-account-nav-container .account-menu-portal .sub-menu li.mobile-red a,
      .mobile-menu .menu-account-nav-container .account-menu-store .sub-menu li.mobile-red a {
        background-color: #b52428;
        text-transform: uppercase;
        font-size: 0.75em; }
  .mobile-menu .menu-account-nav-container .account-menu-store li:nth-child(1),
  .mobile-menu .menu-account-nav-container .account-menu-store li:nth-child(2) {
    clear: none;
    display: inline-block;
    float: left;
    width: auto !important; }
    .mobile-menu .menu-account-nav-container .account-menu-store li:nth-child(1) a,
    .mobile-menu .menu-account-nav-container .account-menu-store li:nth-child(2) a {
      background-color: #b52428;
      font-size: 0.75em; }
  .mobile-menu .menu-account-nav-container .account-menu-store li:nth-child(2) {
    position: relative; }
    .mobile-menu .menu-account-nav-container .account-menu-store li:nth-child(2) a:before {
      -webkit-transform: translateY(-50%);
      -moz-transform: translateY(-50%);
      -ms-transform: translateY(-50%);
      -o-transform: translateY(-50%);
      transform: translateY(-50%);
      background-color: white;
      content: "";
      display: block !important;
      height: 14px;
      position: absolute;
      left: 0px;
      top: 50%;
      width: 1px; }
    .mobile-menu .menu-account-nav-container .account-menu-store li:nth-child(2) a:after {
      content: '';
      display: block;
      position: absolute;
      width: 200%;
      height: 100%;
      top: 0;
      right: -200%;
      background-color: #b52428; }

.mobile-portal-trigger {
  position: relative; }
  @media screen and (min-width: 800px) {
    .mobile-portal-trigger {
      display: none; } }
  .mobile-portal-trigger:before {
    background-color: #e8a3a5;
    border-bottom: 1px solid white;
    color: white;
    content: 'PORTAL MENU';
    display: inline-block;
    font-family: "Oswald", "Lato", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
    font-size: 18px;
    font-weight: 100;
    padding: 1.5em;
    text-align: left;
    text-transform: uppercase;
    transition: background-color 300ms ease;
    width: 100%; }
  .mobile-portal-trigger:after {
    -webkit-transform: rotate(90deg);
    -moz-transform: rotate(90deg);
    -ms-transform: rotate(90deg);
    -o-transform: rotate(90deg);
    transform: rotate(90deg);
    background-image: url("assets/icons/play-button.svg");
    background-repeat: no-repeat;
    background-size: cover;
    content: '';
    height: 28px;
    opacity: 0.7;
    position: absolute;
    right: 1.5em;
    top: 26px;
    transition: all 300ms ease;
    width: 24px; }
  .mobile-portal-trigger:hover::before {
    background-color: #d1484c;
    cursor: pointer; }
  .mobile-portal-trigger:hover::after {
    cursor: pointer;
    opacity: 1; }
  .mobile-portal-trigger.is-open:after {
    -webkit-transform: rotate(-90deg);
    -moz-transform: rotate(-90deg);
    -ms-transform: rotate(-90deg);
    -o-transform: rotate(-90deg);
    transform: rotate(-90deg); }

.mobile-portal-menu-wrap #menu-portal-menu {
  display: none; }

.mobile-portal-menu-wrap li {
  background-color: #e8a3a5;
  border-bottom: 1px solid white;
  text-align: left;
  transition: background-color 300ms ease; }
  .mobile-portal-menu-wrap li a {
    color: white;
    display: block;
    font-family: "Oswald", "Lato", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
    font-size: 1.125em;
    font-weight: 100;
    padding: 1.5em;
    text-transform: uppercase; }
  .mobile-portal-menu-wrap li.current-menu-item, .mobile-portal-menu-wrap li:hover {
    background-color: #d1484c; }
  .mobile-portal-menu-wrap li.coming-soon {
    display: none; }

.mobile-portal-menu-wrap .sub-menu {
  display: none; }

@media screen and (min-width: 800px) {
  .mobile-portal-menu-wrap {
    display: none; } }

.portal-menu-wrap {
  display: none; }
  .portal-menu-wrap .sub-menu {
    display: none; }
  @media screen and (min-width: 800px) {
    .portal-menu-wrap {
      display: table;
      table-layout: fixed;
      width: 100%; }
      .portal-menu-wrap .menu {
        display: table-row;
        margin: 0;
        padding: 0; }
        .portal-menu-wrap .menu li {
          background-color: #e8a3a5;
          border-bottom: 0px;
          border-left: 1px solid white;
          display: table-cell;
          list-style: none;
          text-align: center;
          transition: background-color 300ms ease;
          vertical-align: middle; }
          .portal-menu-wrap .menu li a {
            color: white;
            display: block;
            font-family: "Oswald", "Lato", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
            font-size: 1.625em;
            font-weight: 100;
            padding: 1.5em 0.1875em;
            text-transform: uppercase; }
          .portal-menu-wrap .menu li.current-menu-item, .portal-menu-wrap .menu li:hover {
            background-color: #d1484c; }
          .portal-menu-wrap .menu li.current-menu-item {
            position: relative; }
            .portal-menu-wrap .menu li.current-menu-item:after {
              background-color: #d1484c;
              bottom: -5px;
              content: '';
              height: 2px;
              left: 2.5%;
              position: absolute;
              width: 95%; }
            .portal-menu-wrap .menu li.current-menu-item:before {
              -webkit-transform: translateX(-50%);
              -moz-transform: translateX(-50%);
              -ms-transform: translateX(-50%);
              -o-transform: translateX(-50%);
              transform: translateX(-50%);
              border-left: 10px solid transparent;
              border-right: 10px solid transparent;
              border-top: 10px solid #d1484c;
              bottom: -14px;
              content: '';
              display: block;
              height: 0;
              left: 50%;
              position: absolute;
              width: 0; }
          .portal-menu-wrap .menu li:first-of-type {
            border-left: 1px solid #e8a3a5; }
          .portal-menu-wrap .menu li.coming-soon {
            background-color: #a7a7a7;
            position: relative; }
            .portal-menu-wrap .menu li.coming-soon a {
              pointer-events: none;
              color: #d4d4d4; }
            .portal-menu-wrap .menu li.coming-soon:after, .portal-menu-wrap .menu li.coming-soon:before {
              -webkit-transform: translateX(-50%);
              -moz-transform: translateX(-50%);
              -ms-transform: translateX(-50%);
              -o-transform: translateX(-50%);
              transform: translateX(-50%);
              color: white;
              position: absolute;
              display: block;
              left: 50%; }
            .portal-menu-wrap .menu li.coming-soon:before {
              content: 'COMING';
              top: 1.125em; }
            .portal-menu-wrap .menu li.coming-soon:after {
              bottom: 1.125em;
              content: 'SOON'; } }

.genesis-nav-menu {
  clear: both;
  font-size: 0.875em;
  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 {
  text-align: right; }

.nav-primary .genesis-nav-menu a {
  color: #9ca3ae; }

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

.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: #c9282d; }

/**
* Menu Items
*/
.genesis-nav-menu .menu-item {
  display: inline-block;
  position: relative;
  text-align: left;
  text-transform: uppercase; }

.genesis-nav-menu a {
  color: #444;
  display: block;
  padding: 2.175em 1.5em; }

.nav-primary .menu-item:last-child a {
  color: white;
  background: #9ca3ae;
  font-family: "Oswald", "Lato", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
  font-weight: 700;
  transition: background-color 150ms ease; }
  .nav-primary .menu-item:last-child a:hover {
    background: #c9282d; }

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

.nav-primary ul.sub-menu {
  width: 200px;
  position: absolute;
  left: 0;
  list-style: none;
  text-align: left;
  text-transform: none;
  margin: 20px 0 0 0;
  padding: 10px 0 0 0;
  z-index: 280;
  visibility: hidden;
  opacity: 0;
  filter: alpha(opacity=0);
  -webkit-transition: all .3s ease-in-out;
  -moz-transition: all .3s ease-in-out;
  -o-transition: all .3s ease-in-out;
  transition: all .3s ease-in-out; }

.nav-primary .menu-item:hover ul.sub-menu {
  margin: 0;
  visibility: visible;
  opacity: 1;
  filter: alpha(opacity=100); }

.nav-primary ul.sub-menu .menu-item {
  background: #fff;
  clear: both;
  padding: 0;
  margin: 0;
  width: 100%;
  border-left: 1px solid #f5f5f5;
  border-right: 1px solid #f5f5f5; }
  .nav-primary ul.sub-menu .menu-item a {
    padding: 1.5em 1.5em 0.5em 1.5em; }
  .nav-primary ul.sub-menu .menu-item:last-child a {
    background: none;
    color: #222;
    font-family: "Lato", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
    font-weight: normal;
    padding-bottom: 1.5em; }
    .nav-primary ul.sub-menu .menu-item:last-child a:hover {
      color: #c9282d; }

.just-red-nav header {
  display: none; }

.just-red-nav .page-banner {
  margin-top: -6px; }

.just-red-nav .account-menu-wrap {
  display: inline-block !important; }

.page-banner {
  background-position: 50% 50%;
  background-size: cover;
  background-repeat: no-repeat;
  min-height: 300px;
  position: relative; }
  @media screen and (min-width: 800px) {
    .page-banner {
      min-height: 450px; } }
  .page-banner.small-height {
    min-height: 260px; }
    @media screen and (min-width: 800px) {
      .page-banner.small-height {
        min-height: 260px; } }
  .page-banner.medium-height {
    min-height: 360px; }
    @media screen and (min-width: 800px) {
      .page-banner.medium-height {
        min-height: 360px; } }

.page-banner .page-title {
  color: white;
  font-size: 3.75em;
  margin-bottom: 0; }

.page-banner .page-pre-title {
  color: white;
  font-family: "Lato", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
  font-size: 1.875em;
  font-weight: 100;
  margin-bottom: 0; }

.page-banner .title-content {
  -webkit-transform: translateY(-50%);
  -moz-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  -o-transform: translateY(-50%);
  transform: translateY(-50%);
  position: absolute;
  text-align: center;
  top: 50%;
  width: 100%; }

.page-banner .page-sub-title {
  color: white;
  font-family: "Lato", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
  font-size: 1.875em;
  font-weight: 100;
  margin-bottom: 0; }

.page-section {
  padding: 3em 1.5em; }
  @media screen and (min-width: 800px) {
    .page-section {
      padding: 5em 0; } }
  .page-section.video, .page-section.cta {
    padding: 0; }
  .page-section.stories {
    background: #f9f9f9; }

.page-section-title {
  margin-bottom: 1.5em;
  text-align: center; }

.video {
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  height: 580px;
  min-height: 580px;
  position: relative;
  overflow: hidden; }

.video-content {
  -webkit-transform: translateY(-50%);
  -moz-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  -o-transform: translateY(-50%);
  transform: translateY(-50%);
  color: white;
  display: none;
  position: absolute;
  text-align: center;
  top: 50%;
  width: 100%; }
  .hide-trial .video-content {
    display: block; }
  @media screen and (min-width: 800px) {
    .video-content {
      display: block; } }
  .video-content h1 {
    font-size: 72px;
    margin-bottom: 20px; }

.video-container {
  width: 100vw;
  height: 100vh;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 20000;
  background: #000;
  display: none; }

.video .video-container .video-element {
  -webkit-transform: translate(-50%, -50%);
  -moz-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  -o-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
  width: 100vw;
  height: 100vh;
  position: absolute;
  top: 50%;
  left: 50%; }

.video-close {
  position: absolute;
  top: 1vh;
  right: 2vw;
  cursor: pointer; }
  .admin-bar .video-close {
    top: 5vh; }
  .video-close svg {
    fill: white; }

.autoplay-video {
  -webkit-transform: translateY(-50%);
  -moz-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  -o-transform: translateY(-50%);
  transform: translateY(-50%);
  position: absolute;
  top: 50%;
  z-index: -1; }

.post-type-archive-tribe_events .tribe-events-list-separator-month:before {
  display: none; }

.post-type-archive-tribe_events .tribe-bar-views-list li.tribe-bar-views-option:before,
.post-type-archive-tribe_events li.tribe-events-nav-previous:before,
.post-type-archive-tribe_events li.tribe-events-nav-next:before,
.post-type-archive-tribe_events #legend_box #legend li:before,
.post-type-archive-tribe_events h2.tribe-events-list-event-title:before,
.post-type-archive-tribe_events .tribe-events-notices li:before {
  display: none; }

.post-type-archive-tribe_events .tribe-events-event-url a {
  word-break: break-word; }

.post-type-archive-tribe_events .tribe-events-loop .tribe-events-list-event-title {
  font-size: 1.3em;
  line-height: 1.2em;
  text-transform: uppercase;
  margin-bottom: 0.2em; }

.post-type-archive-tribe_events .tribe-events-loop .tribe-events-event-meta {
  font-size: 14px;
  margin-bottom: 2em !important; }
  .post-type-archive-tribe_events .tribe-events-loop .tribe-events-event-meta .event-is-recurring .tribe-events-divider {
    margin: 0 0.3em; }

.post-type-archive-tribe_events .tribe-events-event-image {
  width: 100% !important; }
  @media screen and (min-width: 600px) {
    .post-type-archive-tribe_events .tribe-events-event-image {
      width: 30% !important; } }

.post-type-archive-tribe_events .tribe-events-list-event-info {
  float: left; }
  @media screen and (min-width: 600px) {
    .post-type-archive-tribe_events .tribe-events-list-event-info {
      width: 67%; } }

.post-type-archive-tribe_events .tribe-events-tooltip .entry-title {
  font-size: 1.5em;
  margin-bottom: 0;
  text-transform: uppercase; }

.post-type-archive-tribe_events .tribe-events-tooltip .tribe-event-duration {
  font-size: 14px; }

/****
Events Single
****/
.single-tribe_events .site-inner > .wrap {
  max-width: none;
  width: 100%; }
  .single-tribe_events .site-inner > .wrap #tribe-events-pg-template {
    max-width: none;
    padding: 0; }

.single-tribe_events #tribe-events .tribe-events-single-event-title {
  margin: 0 0 0.75em;
  padding-bottom: 0.5em;
  font-weight: normal;
  text-transform: uppercase; }

.single-tribe_events #tribe-events #tribe-events-content {
  margin: 0 auto;
  padding: 0;
  max-width: 1080px;
  width: 90%; }
  .single-tribe_events #tribe-events #tribe-events-content .tribe-events-schedule {
    background: none;
    border: none;
    margin: 0;
    padding: 0; }

.tribe-events-notices li:before {
  display: none; }

.tribe-events-nav-pagination .tribe-events-sub-nav li {
  padding: 0; }
  .tribe-events-nav-pagination .tribe-events-sub-nav li a {
    padding: 10px 12px;
    font-size: 12px; }
    @media screen and (min-width: 600px) {
      .tribe-events-nav-pagination .tribe-events-sub-nav li a {
        font-size: 15px; } }
    .tribe-events-nav-pagination .tribe-events-sub-nav li a span {
      position: static;
      display: inline-block; }

#tribe-events-content .tribe-events-ical {
  background: none;
  color: #333; }
  @media screen and (min-width: 600px) {
    #tribe-events-content .tribe-events-ical {
      background: #9d1304;
      color: #fff; } }

.trial {
  -webkit-transition: all 1s ease;
  -moz-transition: all 1s ease;
  transition: all 1s ease;
  background: rgba(0, 0, 0, 0.7);
  bottom: 0;
  max-width: 450px;
  padding: 1.5em;
  position: absolute;
  right: 0;
  text-align: center;
  top: 0; }
  @media screen and (min-width: 600px) {
    .trial {
      padding: 3em; } }
  .trial .trial-title,
  .trial .trial-desc,
  .trial small {
    color: white; }
  .trial .trial-desc {
    font-size: 18px;
    font-weight: 300;
    margin-bottom: 1.5em; }
    @media screen and (min-width: 600px) {
      .trial .trial-desc {
        font-size: 22px; } }
  .trial input[type="text"],
  .trial input[type="email"] {
    background: none;
    border-radius: 0;
    color: white;
    padding: 10px; }
    .trial input[type="text"]::-webkit-input-placeholder,
    .trial input[type="email"]::-webkit-input-placeholder {
      text-transform: uppercase;
      color: #bbb; }
    .trial input[type="text"]::-moz-placeholder,
    .trial input[type="email"]::-moz-placeholder {
      text-transform: uppercase;
      color: #bbb; }
    .trial input[type="text"]:-moz-placeholder,
    .trial input[type="email"]:-moz-placeholder {
      text-transform: uppercase;
      color: #bbb; }
    .trial input[type="text"]:-ms-input-placeholder,
    .trial input[type="email"]:-ms-input-placeholder {
      text-transform: uppercase;
      color: #bbb; }
  .trial input[type="radio"] {
    margin-top: 0 !important; }
  .trial small {
    display: block;
    margin-bottom: 1.5em; }
  .trial input[type="submit"] {
    display: block;
    width: 100%; }
  .trial .gfield label {
    display: none !important; }
  .trial .gform_wrapper input[type="color"], .trial input[type="date"], .trial input[type="datetime"], .trial input[type="datetime-local"], .trial input[type="email"], .trial input[type="month"], .trial input[type="number"], .trial input[type="password"], .trial input[type="search"], .trial input[type="tel"], .trial input[type="text"], .trial input[type="time"], .trial input[type="url"], .trial input[type="week"], .trial textarea {
    border: 1px solid #f9f9f9;
    border-color: #fff;
    box-sizing: border-box;
    font-family: "Lato", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
    font-size: 1em;
    margin-bottom: 0.75em;
    padding: 0.5em !important;
    transition: border-color 150ms ease;
    width: 100% !important; }
  .trial .gform_wrapper {
    margin: 0; }
    .trial .gform_wrapper .gfield_checkbox li label {
      color: #fff; }
    .trial .gform_wrapper .gfield_radio li {
      margin-bottom: 8px !important; }
      .trial .gform_wrapper .gfield_radio li label {
        color: #fff;
        display: inline !important; }
  .trial .gform_wrapper .gform_footer {
    padding: 0; }
  .trial .gform_footer input[type="submit"].button {
    background-color: white;
    color: black; }
  .trial .gform_wrapper li.gfield.gfield_error {
    border: none;
    background: none;
    width: 100%;
    padding: 0;
    margin-top: 16px !important; }
  .trial .gform_wrapper div.validation_error {
    display: none;
    border: none;
    color: red;
    font-size: 15px;
    padding: 0;
    text-align: center; }
  .trial .gform_wrapper .validation_message {
    color: red;
    padding-top: 5px !important; }
  .trial .gfield_error .ginput_container {
    margin: 0 !important;
    max-width: 100% !important; }
    .trial .gfield_error .ginput_container input[type="color"], .trial .gfield_error .ginput_container input[type="date"], .trial .gfield_error .ginput_container input[type="datetime"], .trial .gfield_error .ginput_container input[type="datetime-local"], .trial .gfield_error .ginput_container input[type="email"], .trial .gfield_error .ginput_container input[type="month"], .trial .gfield_error .ginput_container input[type="number"], .trial .gfield_error .ginput_container input[type="password"], .trial .gfield_error .ginput_container input[type="search"], .trial .gfield_error .ginput_container input[type="tel"], .trial .gfield_error .ginput_container input[type="text"], .trial .gfield_error .ginput_container input[type="time"], .trial .gfield_error .ginput_container input[type="url"], .trial .gfield_error .ginput_container input[type="week"], .trial .gfield_error .ginput_container textarea {
      border-color: red !important; }
  @media screen and (min-width: 800px) {
    .trial.is-hidden {
      right: -450px; } }

.features .wrap .feature {
  height: 150px;
  background-repeat: no-repeat;
  background-size: cover;
  background-position: 50%;
  color: #fff;
  position: relative;
  display: block;
  margin-bottom: 2.4%; }
  @media screen and (min-width: 600px) {
    .features .wrap .feature {
      float: left;
      display: block;
      margin-right: 2.35765%;
      width: 48.82117%; }
      .features .wrap .feature:last-child {
        margin-right: 0; }
      .features .wrap .feature:nth-child(2) {
        margin-right: 0; } }
  @media screen and (min-width: 800px) {
    .features .wrap .feature {
      float: left;
      display: block;
      margin-right: 2.35765%;
      width: 23.23176%;
      margin-bottom: 0; }
      .features .wrap .feature:last-child {
        margin-right: 0; }
      .features .wrap .feature:nth-child(2) {
        margin-right: 2.35765%; }
      .features .wrap .feature:nth-child(2+1) {
        clear: none; } }
  .features .wrap .feature:after {
    content: "";
    background: #000;
    opacity: 0.4;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    transition: all 0.3s ease; }
  @media screen and (min-width: 600px) {
    .features .wrap .feature:hover:after {
      background: #c9282d;
      opacity: 0.8; } }
  .features .wrap .feature .feature-content {
    position: absolute;
    bottom: 10%;
    left: 5%;
    width: 90%;
    z-index: 99;
    text-align: center; }
    .features .wrap .feature .feature-content .feature-title {
      display: block;
      font-family: "Oswald", "Lato", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
      font-size: 24px;
      line-height: 1.2em;
      font-weight: 400; }

.page-template-default .content {
  margin-top: 5em; }

.entry-content ul, ol {
  list-style-position: inside;
  margin-bottom: 1.5em; }

.entry-content ul li,
.content ul li {
  list-style-type: none;
  margin-left: 20px;
  position: relative;
  margin-bottom: 10px; }

.entry-content ul > li > ul li,
.content ul > li > ul li {
  margin-top: 10px; }
  .entry-content ul > li > ul li:before,
  .content ul > li > ul li:before {
    content: '';
    position: absolute;
    width: 6px;
    height: 6px;
    background: #c9282d;
    top: 8px;
    left: -20px;
    border-radius: 50%; }

.entry-content ul > li:before,
.content ul > li:before {
  content: '';
  position: absolute;
  width: 8px;
  height: 8px;
  background: #c9282d;
  top: 8px;
  left: -20px;
  border-radius: 50%; }

.entry-content ul > li:last-child,
.content ul > li:last-child {
  margin-bottom: 0; }

.entry-content .ul-dots-right ul li,
.content .ul-dots-right ul li {
  margin-left: 0;
  margin-right: 20px;
  text-align: right; }

.entry-content .ul-dots-right ul > li > ul li:before,
.content .ul-dots-right ul > li > ul li:before {
  right: -20px;
  left: auto; }

.entry-content .ul-dots-right ul > li:before,
.content .ul-dots-right ul > li:before {
  left: auto;
  right: -20px; }

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

.sidebar li {
  padding-bottom: 0.75em; }

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

.sidebar .widget {
  background-color: white;
  border: 1px solid #f9f9f9;
  border-color: #d4d4d4;
  margin-bottom: 3em;
  padding: 1.5em; }
  .sidebar .widget.widget_social_links {
    border: none;
    padding: 0;
    text-align: center; }

.sidebar .widget .widget-title {
  border-bottom: 1px solid #f9f9f9;
  border-color: #d4d4d4;
  padding-bottom: 0.75em;
  text-align: center; }

.widget_newsletter_widget {
  text-align: center; }
  .widget_newsletter_widget .button {
    padding: 15px 38px; }

.woocommerce .sidebar {
  display: none; }

blockquote {
  border-left: 5px solid #c9282d;
  color: #c9282d; }

.comment-respond,
.entry-comments,
.entry-pings {
  background-color: white;
  margin-bottom: 2em; }

.comment-respond,
.entry-pings {
  padding: 2em 2em 1em; }

.entry-comments {
  padding: 2em; }

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

li.comment {
  background-color: #e6e6e6;
  border: 1px solid #f9f9f9;
  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: #e6e6e6;
  font-size: 1em;
  padding: 2em; }

.pagination {
  clear: both;
  margin: 3em 0; }
  @media screen and (min-width: 800px) {
    .pagination {
      padding: 0 1.5em; } }

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

.archive-pagination li {
  display: inline; }
  .archive-pagination li a {
    border: 1px solid #f9f9f9;
    border-color: #d4d4d4;
    cursor: pointer;
    display: inline-block;
    font-size: 1em;
    padding: 5px 10px; }
    .archive-pagination li a:hover {
      backgroud-color: #c9282d; }
  .archive-pagination li.active a {
    background-color: #c9282d;
    color: white; }

.call-to-action {
  position: relative; }
  .call-to-action .bg {
    opacity: 0.8;
    position: absolute;
    width: 100%;
    height: 100%; }
  .call-to-action .border {
    position: absolute;
    width: calc(100% - 60px);
    height: calc(100% - 60px);
    pointer-events: none;
    top: 50%;
    left: 50%;
    z-index: 2000;
    -webkit-transform: translate(-50%, -50%);
    -moz-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
    -o-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%); }
  .call-to-action .wrap {
    padding: 3em 1.5em;
    position: relative;
    z-index: 100; }
    @media screen and (min-width: 800px) {
      .call-to-action .wrap {
        padding-bottom: 4em;
        padding-top: 4em; } }
  .call-to-action.footer-cta .wrap {
    padding: 3em 1.5em; }
    @media screen and (min-width: 800px) {
      .call-to-action.footer-cta .wrap {
        padding: 8em 0; } }
  .call-to-action .cta-content *:not(a),
  .call-to-action .cta-content *:not(button) {
    color: #fff; }
  .call-to-action .cta-content *:last-child {
    margin-bottom: 0; }
  .call-to-action .cta-content .strikethrough {
    color: #c9282d;
    text-decoration: line-through; }
  .call-to-action .cta-content.has-table {
    display: table;
    width: 100%; }
  .call-to-action .cta-content .cell {
    display: table-cell;
    vertical-align: middle; }
  .call-to-action .cta-content .img-left, .call-to-action .cta-content .img-right {
    width: 25%; }
  .call-to-action .cta-content .text-right, .call-to-action .cta-content .text-left {
    width: 75%; }
  .call-to-action .cta-content .text-right {
    padding-left: 20px; }
  .call-to-action .cta-content .text-left {
    padding-right: 20px; }
  .call-to-action .cta-content hr {
    border: 2px solid white;
    display: block;
    margin: 0 auto;
    max-width: 80px; }

.single-post .call-to-action {
  margin: 1.5em 0; }

.single-post .call-to-action .wrap {
  padding: 60px;
  box-sizing: border-box;
  width: 100%; }

.footer-widgets {
  background: #c9282d;
  border-bottom: 3px solid rgba(255, 255, 255, 0.2);
  overflow: auto;
  margin-bottom: 1.5em;
  padding: 3em 0 1.5em 0; }
  .footer-widgets a {
    color: rgba(255, 255, 255, 0.7); }
    .footer-widgets a:hover {
      color: #fff; }

.social-link svg {
  background: rgba(255, 255, 255, 0.7);
  fill: #c9282d;
  height: 35px;
  padding: 5px;
  transition: background-color 150ms ease;
  width: 35px; }
  .social-link svg:hover {
    background: #fff; }
  .widget_social_links .social-link svg {
    background: rgba(0, 0, 0, 0.8);
    fill: white; }
    .widget_social_links .social-link svg:hover {
      background: #c9282d; }

.footer-widgets .menu .menu-item {
  display: block; }
  @media screen and (min-width: 600px) {
    .footer-widgets .menu .menu-item {
      display: inline; } }
  .footer-widgets .menu .menu-item a {
    padding: 0.75em 0; }
    @media screen and (min-width: 600px) {
      .footer-widgets .menu .menu-item a {
        padding: 0.75em; } }
    .footer-widgets .menu .menu-item a:hover {
      color: #fff; }
  .footer-widgets .menu .menu-item:first-child a {
    padding-left: 0; }
  .footer-widgets .menu .menu-item:last-child a {
    padding-right: 0; }

.site-footer {
  background-color: #c9282d;
  color: rgba(255, 255, 255, 0.5);
  font-size: 14px;
  line-height: 1.5;
  padding: 0;
  text-align: center; }
  @media screen and (min-width: 800px) {
    .site-footer {
      padding: 1.5em 0; } }
  .site-footer a {
    color: rgba(255, 255, 255, 0.5);
    font-weight: 700; }
    .site-footer a:hover {
      color: #fff; }

.footer-left,
.footer-right,
.footer-widgets-1,
.footer-widgets-2 {
  display: block;
  text-align: left; }
  @media screen and (min-width: 800px) {
    .footer-left,
    .footer-right,
    .footer-widgets-1,
    .footer-widgets-2 {
      float: left;
      text-align: left;
      width: 50%; } }

.footer-right,
.footer-widgets-2 {
  margin-top: 1.5em; }
  @media screen and (min-width: 800px) {
    .footer-right,
    .footer-widgets-2 {
      margin-top: 0;
      text-align: right; } }

.footer-creds {
  overflow: auto;
  padding-bottom: 3em; }

.has-overlay {
  position: relative; }

.has-overlay:before {
  content: "";
  background: #c9282d;
  height: 100%;
  opacity: 0.6;
  width: 100%; }

.tml-profile {
  margin-bottom: 3em; }
  .tml-profile th {
    border-bottom: 0px;
    padding-bottom: 0px; }
  .tml-profile td {
    padding: 0px; }

.tml-login,
.tml-resetpass {
  margin-bottom: 3em; }

.tml .tml-links {
  margin-left: 0; }
  .tml .tml-links li {
    margin-left: 0; }
    .tml .tml-links li:before {
      display: none; }

.tml .tml-submit-wrap input {
  appearance: none;
  background-color: #c9282d;
  border: 0;
  color: #fff;
  cursor: pointer;
  display: inline-block;
  font-family: "Lato", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
  font-size: 1em;
  -webkit-font-smoothing: antialiased;
  font-weight: 500;
  line-height: 1;
  margin: 0 5px 15px 0;
  padding: 1em 3em;
  position: relative;
  text-decoration: none;
  text-transform: uppercase;
  transition: background-color 300ms ease;
  user-select: none;
  vertical-align: middle;
  white-space: nowrap; }
  .tml .tml-submit-wrap input:hover, .tml .tml-submit-wrap input:focus {
    background-color: #9d1304;
    color: #fff; }

.pmpro-levels .content,
.pmpro-checkout .content,
.pmpro-billing .content,
.pmpro-confirmation .content,
.pmpro-account .content {
  margin-bottom: 3em; }

.move-left .mobile-show.mobile-menu-icon {
  display: none; }

.logged-in.admin-bar #mobile-menu {
  top: 32px; }
  @media (max-width: 782px) {
    .logged-in.admin-bar #mobile-menu {
      top: 46px; } }

#mobile-menu .icon-close-container {
  background-color: rgba(201, 40, 45, 0.5);
  left: -28px;
  top: 20px; }

#mobile-menu li a {
  margin-bottom: 0px;
  padding: 16px 20px;
  font-weight: inherit; }

#mobile-menu li.menu-item-has-children:after {
  right: 20px;
  top: 16px; }

#mobile-menu li.menu-item-has-children.active {
  padding-bottom: 0px; }

#mobile-menu.move-in {
  overflow: initial !important; }

#mobile-menu.mobile-menu {
  padding: 0px; }

#mobile-menu .sub-menu {
  padding-left: 0px; }
  #mobile-menu .sub-menu li {
    width: 100%; }
    #mobile-menu .sub-menu li a {
      padding: 7px 20px;
      width: 100%;
      display: inline-block; }

.store-cta-pop-up {
  bottom: 0;
  left: 0;
  position: fixed;
  right: 0;
  top: 0;
  display: none; }

.store-cta-pop-up-dark-bg {
  background-color: #444;
  bottom: 0;
  left: 0;
  opacity: 0.7;
  position: absolute;
  right: 0;
  top: 0; }

.store-cta-pop-up-inner {
  -webkit-transform: translate(-50%, -50%);
  -moz-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  -o-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  left: 50%;
  min-height: 300px;
  position: absolute;
  top: 50%;
  width: 400px;
  z-index: 10000; }
  @media (max-width: 400px) {
    .store-cta-pop-up-inner {
      width: 90%; } }
  .store-cta-pop-up-inner .store-cta-pop-inner-red-overlay {
    background-color: #c9282d;
    bottom: 0;
    left: 0;
    opacity: 0.7;
    position: absolute;
    right: 0;
    top: 0; }

.store-cta-pop-up-close {
  background-color: white;
  border-radius: 50%;
  color: black;
  height: 25px;
  position: absolute;
  right: -10px;
  top: -10px;
  width: 25px;
  transition: opacity 300ms ease;
  z-index: 10000; }
  .store-cta-pop-up-close:after {
    -webkit-transform: translate(-50%, -50%);
    -moz-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
    -o-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
    content: "X";
    left: 50%;
    line-height: 1;
    position: absolute;
    top: 50%; }
  .store-cta-pop-up-close:hover {
    opacity: 0.8;
    cursor: pointer; }

.store-cta-pop-up-inner-content {
  border: 2px solid white;
  bottom: 15px;
  left: 15px;
  position: absolute;
  right: 15px;
  top: 15px;
  z-index: 100000; }

.store-cta-pop-up-inner-content-insides {
  bottom: 1.5em;
  display: block;
  left: 15px;
  position: absolute;
  right: 15px;
  text-align: center;
  z-index: 1000000; }
  .store-cta-pop-up-inner-content-insides p {
    color: white;
    font-size: 22px;
    font-weight: 100; }

.store-cta-pop-up-btn a {
  background-color: white;
  display: inline-block;
  margin-bottom: 0.75em;
  padding: 15px 20px;
  position: relative; }
  .store-cta-pop-up-btn a:after {
    border: 1px solid #c9282d;
    bottom: 5px;
    content: "";
    left: 5px;
    opacity: 1;
    position: absolute;
    right: 5px;
    top: 5px;
    transition: opacity 300ms ease; }
  .store-cta-pop-up-btn a:hover {
    color: #c9282d; }
    .store-cta-pop-up-btn a:hover:after {
      opacity: 0; }

/**
 * Sections
 */
#flexible-section-repeater .informational-cta-section {
  position: relative;
  background: #f9f9f9; }
  #flexible-section-repeater .informational-cta-section.page-flexible-section {
    margin-bottom: 0; }
  #flexible-section-repeater .informational-cta-section .wrap {
    position: static; }
  #flexible-section-repeater .informational-cta-section .item {
    width: 100%; }
    @media screen and (min-width: 800px) {
      #flexible-section-repeater .informational-cta-section .item {
        width: 50%; } }
    #flexible-section-repeater .informational-cta-section .item.content {
      padding: 3em 0; }
      @media screen and (min-width: 800px) {
        #flexible-section-repeater .informational-cta-section .item.content {
          float: left;
          display: block;
          margin-right: 2.35765%;
          width: 48.82117%; }
          #flexible-section-repeater .informational-cta-section .item.content:last-child {
            margin-right: 0; } }
      @media screen and (min-width: 800px) {
        #flexible-section-repeater .informational-cta-section .item.content.right {
          margin-left: 51.17883%;
          padding-left: 3em; } }
    #flexible-section-repeater .informational-cta-section .item.image {
      display: none;
      position: absolute;
      width: 50%;
      height: 100%; }
      @media screen and (min-width: 800px) {
        #flexible-section-repeater .informational-cta-section .item.image {
          display: block; } }
      #flexible-section-repeater .informational-cta-section .item.image.left {
        left: 50%; }
      #flexible-section-repeater .informational-cta-section .item.image.right {
        right: 50%; }
      #flexible-section-repeater .informational-cta-section .item.image .bg {
        position: absolute;
        width: 100%;
        height: 100%;
        background-position: center;
        background-repeat: no-repeat; }

#flexible-section-repeater .sixty-fourty {
  padding: 3em 0;
  position: relative; }
  #flexible-section-repeater .sixty-fourty.page-flexible-section {
    margin-bottom: 0; }

@media screen and (min-width: 800px) {
  #flexible-section-repeater .sixty-fourty .item.content {
    float: left;
    display: block;
    margin-right: 2.35765%;
    width: 57.35098%; }
    #flexible-section-repeater .sixty-fourty .item.content:last-child {
      margin-right: 0; } }

#flexible-section-repeater .sixty-fourty .item.image {
  display: none; }
  @media screen and (min-width: 800px) {
    #flexible-section-repeater .sixty-fourty .item.image {
      float: left;
      display: block;
      margin-right: 2.35765%;
      width: 40.29137%;
      margin-right: 0; }
      #flexible-section-repeater .sixty-fourty .item.image:last-child {
        margin-right: 0; } }
  #flexible-section-repeater .sixty-fourty .item.image img {
    display: block;
    margin: 0 auto;
    width: 100%; }

.accordion-page .wrap.content:first-child {
  padding-bottom: 40px; }

.accordion-page .wrap.content:last-child {
  padding-top: 0; }

.accordion-page .wrap.no-content:first-child {
  padding: 0; }

.single-product .accordion-row {
  margin-bottom: 8px !important; }

.single-product .accordion-title {
  background-color: #a7a7a7 !important; }

.accordion-block {
  box-sizing: border-box; }
  .accordion-block .title {
    font-weight: 700;
    text-transform: uppercase; }
  .accordion-block .accordion-row {
    margin-bottom: 15px; }
    .accordion-block .accordion-row:last-child {
      margin-bottom: 0; }
    .accordion-block .accordion-row .accordion-title {
      padding: 10px 20px;
      background: #d4d4d4;
      color: #fff;
      text-transform: uppercase;
      position: relative;
      font-weight: 700;
      cursor: pointer;
      border: 1px solid #f9f9f9;
      -webkit-transition: 150ms ease;
      -moz-transition: 150ms ease;
      transition: 150ms ease; }
      .accordion-block .accordion-row .accordion-title svg {
        position: absolute;
        top: 50%;
        right: 15px;
        width: 30px;
        height: 30px;
        cursor: pointer;
        -webkit-transform: translateY(-50%);
        -moz-transform: translateY(-50%);
        -ms-transform: translateY(-50%);
        -o-transform: translateY(-50%);
        transform: translateY(-50%);
        -webkit-transition: 150ms ease;
        -moz-transition: 150ms ease;
        transition: 150ms ease; }
        .accordion-block .accordion-row .accordion-title svg path, .accordion-block .accordion-row .accordion-title svg polygon {
          fill: #fff; }
      .accordion-block .accordion-row .accordion-title:hover {
        border: 1px solid transparent;
        background: #c9282d; }
      .accordion-block .accordion-row .accordion-title.active {
        border: 1px solid transparent;
        background: #c9282d; }
        .accordion-block .accordion-row .accordion-title.active svg {
          -webkit-transform: translateY(-50%) rotate(45deg);
          -moz-transform: translateY(-50%) rotate(45deg);
          -ms-transform: translateY(-50%) rotate(45deg);
          -o-transform: translateY(-50%) rotate(45deg);
          transform: translateY(-50%) rotate(45deg); }
    .accordion-block .accordion-row .accordion-info {
      display: none;
      color: #686868;
      padding: 20px 20px 5px 20px;
      box-sizing: border-box; }
      .accordion-block .accordion-row .accordion-info *:last-child {
        margin-bottom: 0; }
      .accordion-block .accordion-row .accordion-info ul {
        margin-top: 10px; }
        .accordion-block .accordion-row .accordion-info ul li {
          list-style-type: none;
          margin-left: 20px;
          position: relative;
          margin-bottom: 10px; }
        .accordion-block .accordion-row .accordion-info ul > li > ul li {
          margin-top: 10px; }
          .accordion-block .accordion-row .accordion-info ul > li > ul li:before {
            content: '';
            position: absolute;
            width: 6px;
            height: 6px;
            background: #c9282d;
            top: 8px;
            left: -20px;
            border-radius: 50%; }
        .accordion-block .accordion-row .accordion-info ul > li:before {
          content: '';
          position: absolute;
          width: 8px;
          height: 8px;
          background: #c9282d;
          top: 8px;
          left: -20px;
          border-radius: 50%; }
        .accordion-block .accordion-row .accordion-info ul > li:last-child {
          margin-bottom: 0; }
      .accordion-block .accordion-row .accordion-info .ul-dots-right ul li {
        margin-left: 0;
        margin-right: 20px;
        text-align: right; }
      .accordion-block .accordion-row .accordion-info .ul-dots-right ul > li > ul li:before {
        right: -20px;
        left: auto; }
      .accordion-block .accordion-row .accordion-info .ul-dots-right ul > li:before {
        left: auto;
        right: -20px; }
    .accordion-block .accordion-row:first-child {
      padding-top: 0; }
    .accordion-block .accordion-row:last-child {
      padding-bottom: 0;
      border-bottom: none; }

#flexible-section-repeater .content-section .content *:last-child,
#flexible-section-repeater .content-section .l-content *:last-child,
#flexible-section-repeater .content-section .r-content *:last-child {
  margin-bottom: 0; }

#flexible-section-repeater .content-section .l-content,
#flexible-section-repeater .content-section .r-content {
  float: left;
  display: block;
  margin-right: 2.35765%;
  width: 100%; }
  #flexible-section-repeater .content-section .l-content:last-child,
  #flexible-section-repeater .content-section .r-content:last-child {
    margin-right: 0; }

#flexible-section-repeater .content-section .l-content {
  margin-bottom: 3em; }
  @media screen and (min-width: 800px) {
    #flexible-section-repeater .content-section .l-content {
      float: left;
      display: block;
      margin-right: 2.35765%;
      width: 48.82117%;
      margin-bottom: 0; }
      #flexible-section-repeater .content-section .l-content:last-child {
        margin-right: 0; } }

@media screen and (min-width: 800px) {
  #flexible-section-repeater .content-section .r-content {
    float: left;
    display: block;
    margin-right: 2.35765%;
    width: 48.82117%;
    margin-right: 0; }
    #flexible-section-repeater .content-section .r-content:last-child {
      margin-right: 0; } }

.tile-blocks {
  overflow: auto; }
  @media screen and (min-width: 800px) {
    .tile-blocks {
      display: -webkit-box;
      display: -moz-box;
      display: box;
      display: -webkit-flex;
      display: -moz-flex;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-orient: horizontal;
      -moz-box-orient: horizontal;
      box-orient: horizontal;
      -webkit-box-direction: normal;
      -moz-box-direction: normal;
      box-direction: normal;
      -webkit-flex-direction: row;
      -moz-flex-direction: row;
      flex-direction: row;
      -ms-flex-direction: row; } }

.tile-block {
  padding: 4.5em 3em;
  position: relative; }
  @media screen and (min-width: 800px) {
    .tile-block {
      -webkit-box-flex: 1;
      -moz-box-flex: 1;
      box-flex: 1;
      -webkit-flex: 1;
      -moz-flex: 1;
      -ms-flex: 1;
      flex: 1;
      min-height: 300px; } }
  .tile-block.has-red-overlay:after {
    background-color: #c9282d;
    content: '';
    bottom: 0;
    left: 0;
    opacity: 0.6;
    position: absolute;
    right: 0;
    top: 0;
    transition: opacity 150ms ease;
    z-index: 10; }
  .tile-block.has-bg {
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover; }
  .tile-block .tile-block-header,
  .tile-block .tile-block-excerpt,
  .tile-block .tile-block-footer {
    position: relative;
    z-index: 100; }

.tile-block.has-bg .tile-block-title,
.tile-block.has-bg .tile-block-excerpt p,
.tile-block.has-bg .tile-block-footer a {
  color: white; }

.tile-block-title {
  font-family: "Lato", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif; }

.tile-block-footer a {
  font-weight: 700; }
  .tile-block-footer a:hover {
    color: #fff; }

.page-flexible-section.page-section-stories {
  background: #f9f9f9;
  padding-top: 3em;
  padding-bottom: 3em; }
  @media screen and (min-width: 800px) {
    .page-flexible-section.page-section-stories {
      padding-top: 5em;
      padding-bottom: 5em; } }
  .page-flexible-section.page-section-stories.two-posts .stories {
    display: block;
    margin: 0 auto;
    width: 66.66667%; }
    .page-flexible-section.page-section-stories.two-posts .stories .story {
      width: 50%; }
  .page-flexible-section.page-section-stories.four-posts .stories {
    display: block;
    margin: 0 auto;
    width: 100%; }
    .page-flexible-section.page-section-stories.four-posts .stories .story {
      width: 25%; }

.page-flexible-section.icon-blurb-section {
  background-color: #f9f9f9; }

.page-flexible-section .blurb-title {
  font-family: "Lato", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
  font-weight: 700;
  font-size: 1.5em; }

.page-flexible-section .blurb {
  text-align: center;
  margin-bottom: 3em; }
  @media screen and (min-width: 600px) {
    .page-flexible-section .blurb {
      float: left;
      display: block;
      margin-right: 2.35765%;
      width: 23.23176%;
      margin-bottom: 0; }
      .page-flexible-section .blurb:last-child {
        margin-right: 0; } }

.page-flexible-section .blurb-icon {
  background-color: #c9282d;
  border-radius: 50%;
  height: 125px;
  margin: 0 auto 1.5em;
  position: relative;
  width: 125px; }
  .page-flexible-section .blurb-icon img {
    -webkit-transform: translate(-50%, -50%);
    -moz-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
    -o-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
    height: 50px;
    left: 50%;
    position: absolute;
    top: 50%;
    width: 50px; }

.page-flexible-section .blurb-content {
  text-align: center; }

.page-flexible-section.pricing-section .page-section-title,
.page-flexible-section.pricing-section .right-title {
  font-weight: 500; }

.page-flexible-section.pricing-section .right-title {
  font-size: 1.875em;
  margin-bottom: 1.5em; }

@media screen and (min-width: 600px) {
  .page-flexible-section.pricing-section .left-side {
    float: left;
    display: block;
    margin-right: 2.35765%;
    width: 40.29137%; }
    .page-flexible-section.pricing-section .left-side:last-child {
      margin-right: 0; } }

@media screen and (min-width: 600px) {
  .page-flexible-section.pricing-section .right-side {
    float: left;
    display: block;
    margin-right: 2.35765%;
    width: 57.35098%; }
    .page-flexible-section.pricing-section .right-side:last-child {
      margin-right: 0; } }

.page-flexible-section.pricing-section .right-coming-soon {
  background-color: #c9282d;
  color: white;
  font-size: 1.875em;
  line-height: 1.1;
  margin-top: 1.5em;
  max-width: 500px;
  opacity: 0.5;
  padding: 1.5em;
  text-transform: uppercase; }

.start-box {
  background-color: #f9f9f9;
  text-align: center; }
  @media screen and (min-width: 600px) {
    .start-box {
      max-width: 400px; } }
  .start-box .start-top {
    background-color: #c9282d; }
    .start-box .start-top h3 {
      color: white;
      font-size: 1.5em;
      font-weight: 500;
      padding: 0.75em;
      margin-bottom: 0; }
  .start-box .start-bottom {
    padding: 1.5em; }
  .start-box .start-norm-price .price,
  .start-box .start-reduced-price .price {
    color: #222;
    font-size: 3em; }
  .start-box .start-norm-price .price-period,
  .start-box .start-reduced-price .price-period {
    font-size: 1.125em; }
  .start-box .start-norm-price {
    border-bottom: 5px solid #d5d5d5;
    margin-bottom: 0.75em;
    padding-bottom: 0.75em; }
    .start-box .start-norm-price .price,
    .start-box .start-norm-price .price-period {
      color: #d5d5d5; }
    .start-box .start-norm-price .slashed .inner-slash {
      position: relative; }
      .start-box .start-norm-price .slashed .inner-slash:after {
        content: "";
        width: 100%;
        height: 3px;
        background-color: #c9282d;
        position: absolute;
        left: 0;
        top: 0;
        -webkit-transform: rotate(12deg);
        -moz-transform: rotate(12deg);
        -ms-transform: rotate(12deg);
        -o-transform: rotate(12deg);
        transform: rotate(12deg); }
  .start-box .start-blurb {
    margin-top: 1.5em;
    margin-bottom: 3em;
    text-align: left; }

.fifty-form-cta-section {
  /** AC Form Styles **/
  /** Error Styles **/ }
  .fifty-form-cta-section .sixcol {
    width: 48.5%;
    margin-left: 3%;
    float: left;
    position: relative; }
  .fifty-form-cta-section .sixcol:first-child {
    margin-left: 0; }
  .fifty-form-cta-section .content {
    margin-bottom: 3em !important; }
  .fifty-form-cta-section .has-form-background {
    background: #000;
    padding: 3em;
    box-sizing: border-box;
    color: #fff; }
  .fifty-form-cta-section .has-form-background .form-background {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 0;
    opacity: 0.5;
    display: block; }
  .fifty-form-cta-section .form-background {
    display: none; }
  .fifty-form-cta-section .has-form-background form {
    border-top: 4px solid #fff; }
  .fifty-form-cta-section form {
    width: 100%;
    border-top: 4px solid #c9282d;
    padding-top: 20px;
    position: relative;
    z-index: 200; }
  .fifty-form-cta-section ._form-title {
    font-size: 1.2em;
    font-weight: bold; }
  .fifty-form-cta-section ._form_element {
    margin-bottom: 1.5em;
    position: relative; }
  .fifty-form-cta-section ._form-label {
    font-weight: bold;
    padding-bottom: 0.5em;
    display: block; }
  .fifty-form-cta-section input[type="text"], .fifty-form-cta-section textarea, .fifty-form-cta-section select {
    width: 100%;
    padding: 15px;
    border: 1px solid #aaa;
    box-sizing: border-box;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box; }
  .fifty-form-cta-section .has-form-background input[type="text"], .fifty-form-cta-section .has-form-background textarea, .fifty-form-cta-section .has-form-background select {
    border: 1px solid transparent; }
  .fifty-form-cta-section input[type="text"]._has_error, .fifty-form-cta-section textarea._has_error, .fifty-form-cta-section select._has_error {
    border: 1px solid #f37c7b !important; }
  .fifty-form-cta-section select {
    width: 100%;
    height: 40px;
    box-sizing: border-box;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box; }
  .fifty-form-cta-section .has-form-background button {
    background: #fff;
    color: #333;
    border-color: #fff; }
  .fifty-form-cta-section button {
    background: #c9282d;
    color: #fff;
    font-size: 100%;
    font-weight: bold;
    padding: 15px 36px;
    /*border-radius: 100px;*/
    border: 2px solid #c9282d;
    text-transform: uppercase;
    cursor: pointer;
    -webkit-transition: all 0.5s ease;
    -moz-transition: all 0.5s ease;
    transition: all 0.5s ease; }
  .fifty-form-cta-section button:before {
    display: none !important; }
  .fifty-form-cta-section .has-form-background button:hover {
    color: #fff; }
  .fifty-form-cta-section button:hover {
    background: none;
    color: #c9282d; }
  .fifty-form-cta-section ._form-branding {
    display: none; }
  .fifty-form-cta-section ._error {
    display: block;
    position: absolute;
    font-size: 13px;
    z-index: 10000001; }
  .fifty-form-cta-section ._error._above {
    padding-bottom: 4px;
    top: -17px;
    right: 0; }
  .fifty-form-cta-section ._error._below {
    padding-top: 4px;
    top: 100%;
    right: 0; }
  .fifty-form-cta-section ._error._above ._error-arrow {
    bottom: 0;
    right: 15px;
    border-left: 5px solid transparent;
    border-right: 5px solid transparent;
    border-top: 5px solid #f37c7b; }
  .fifty-form-cta-section ._error._below ._error-arrow {
    top: 0;
    right: 15px;
    border-left: 5px solid transparent;
    border-right: 5px solid transparent;
    border-bottom: 5px solid #f37c7b; }
  .fifty-form-cta-section ._error-inner {
    padding: 8px 12px;
    background-color: #f37c7b;
    font-size: 13px;
    font-family: arial, sans-serif;
    color: #fff;
    text-align: center;
    text-decoration: none;
    -webkit-border-radius: 4px;
    -moz-border-radius: 4px;
    border-radius: 4px; }
  .fifty-form-cta-section ._error-inner._form_error {
    margin-bottom: 5px;
    position: absolute;
    text-align: left; }
  .fifty-form-cta-section ._button-wrapper ._error-inner._form_error {
    position: static; }
  .fifty-form-cta-section ._error-inner._no_arrow {
    margin-bottom: 10px; }
  .fifty-form-cta-section ._error-arrow {
    position: absolute;
    width: 0;
    height: 0; }
  .fifty-form-cta-section ._error-html {
    margin-bottom: 10px; }
  @media (max-width: 800px) {
    .fifty-form-cta-section .sixcol {
      width: 100%;
      margin: 0; } }

.juicerFeedSection {
  background: #c9282d; }
  .juicerFeedSection .sectionHeader {
    padding: 3em 0; }
    .juicerFeedSection .sectionHeader * {
      color: #fff; }
    .juicerFeedSection .sectionHeader h2:before {
      background: #fff; }
    .juicerFeedSection .sectionHeader *:last-child {
      margin-bottom: 0; }
  .juicerFeedSection li:before {
    display: none; }
  .juicerFeedSection .juicer-feed.slider .slick-prev {
    top: 30%; }
    .juicerFeedSection .juicer-feed.slider .slick-prev:before {
      display: block; }
  .juicerFeedSection .juicer-feed.slider .slick-next {
    top: 30%; }
    .juicerFeedSection .juicer-feed.slider .slick-next:before {
      display: block; }

#flexible-section-repeater .page-flexible-section.has-top-padding {
  padding-top: 3em; }

#flexible-section-repeater .page-flexible-section.has-bot-padding {
  padding-bottom: 3em; }

@media screen and (min-width: 800px) {
  #flexible-section-repeater .page-flexible-section.has-top-padding {
    padding-top: 5em; }
  #flexible-section-repeater .page-flexible-section.has-bot-padding {
    padding-bottom: 5em; } }

/**
 * Pages
 */
.mobile-bg {
  display: block;
  height: 580px;
  background-size: cover;
  background-position: center; }
  @media screen and (min-width: 800px) {
    .mobile-bg {
      display: none; } }

.autoplay-video {
  display: none; }
  @media screen and (min-width: 800px) {
    .autoplay-video {
      display: block;
      width: 100%; } }

.joel-story {
  background: #f9f9f9;
  overflow: auto;
  padding: 0; }
  @media screen and (min-width: 800px) {
    .joel-story {
      position: relative;
      height: 500px; } }

.joel-image,
.joel-content {
  display: block; }

.joel-image {
  display: none;
  min-height: 461px;
  width: 33.33333%;
  height: 100%;
  position: relative; }
  @media screen and (min-width: 800px) {
    .joel-image {
      display: block;
      position: absolute;
      left: 0px;
      height: 100%;
      background-repeat: no-repeat;
      background-size: cover;
      background-position: center top; } }

.joel-content {
  padding: 3em 1.5em; }
  @media screen and (min-width: 600px) {
    .joel-content {
      padding: 2em 1.5em; } }
  @media screen and (min-width: 800px) {
    .joel-content {
      -webkit-transform: translateY(-50%);
      -moz-transform: translateY(-50%);
      -ms-transform: translateY(-50%);
      -o-transform: translateY(-50%);
      transform: translateY(-50%);
      left: 35.83333%;
      padding-left: 1.5em;
      position: absolute;
      top: 50%;
      width: 64.16667%; } }

.joel-story.no-image {
  height: auto;
  text-align: center; }
  @media screen and (min-width: 800px) {
    .joel-story.no-image .joel-content {
      -webkit-transform: translateY(0);
      -moz-transform: translateY(0);
      -ms-transform: translateY(0);
      -o-transform: translateY(0);
      transform: translateY(0);
      left: 0;
      padding: 8em 1.5em;
      position: relative;
      top: 0;
      width: 100%;
      max-width: 1080px;
      margin: 0 auto; } }
  .joel-story.no-image .joel-content .joel-content-wrap {
    max-width: 100%; }

.joel-content-wrap {
  max-width: 780px; }
  .joel-content-wrap .button {
    margin-top: 1.5em; }

.stories .story {
  margin-bottom: 3em;
  padding: 0 1.5em;
  text-align: center;
  border: none; }
  .stories .story .story-image {
    border-radius: 50%;
    margin-bottom: 0.75em;
    display: inline-block; }
  @media screen and (min-width: 800px) {
    .stories .story {
      border-right: 1px solid #f9f9f9;
      border-color: #d4d4d4;
      display: block;
      float: left;
      margin-bottom: 1.5em;
      width: 33.33333%; }
      .stories .story:last-child {
        border: none; } }
  .stories .story .story-title {
    font-family: "Lato", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
    font-size: 1.5em;
    font-weight: 700; }

.slick-slider .slick-dots {
  position: absolute;
  -webkit-transform: translateX(-50%);
  -moz-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
  -o-transform: translateX(-50%);
  transform: translateX(-50%);
  left: 50%;
  bottom: 0px;
  text-align: center;
  width: auto;
  z-index: 50;
  margin: 0 !important;
  padding: 0; }
  .slick-slider .slick-dots > li {
    display: inline-block;
    width: 15px;
    height: 15px;
    background-color: transparent;
    border: 2px solid #c9282d;
    border-radius: 50%;
    margin-left: 6px;
    margin-bottom: 0 !important; }
    .slick-slider .slick-dots > li:first-of-type {
      margin-left: 0px; }
    .slick-slider .slick-dots > li.slick-active {
      background-color: #c9282d; }
    .slick-slider .slick-dots > li:before {
      display: none; }
    .slick-slider .slick-dots > li:hover {
      cursor: pointer; }
  .slick-slider .slick-dots > li button {
    display: none !important; }

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

.study-header {
  margin-bottom: 0.75em; }

.study-info {
  margin-bottom: 1.5em; }
  @media screen and (min-width: 800px) {
    .study-info {
      float: left;
      display: block;
      margin-right: 2.35765%;
      width: 57.35098%;
      margin-bottom: 0; }
      .study-info:last-child {
        margin-right: 0; } }
  .study-info .study-title {
    margin-bottom: 0; }
  .study-info .study-subtitle {
    font-size: 24px;
    font-weight: 100;
    text-transform: uppercase;
    margin-bottom: 0; }

.study-image {
  display: none; }
  @media screen and (min-width: 800px) {
    .study-image {
      display: block;
      float: left;
      display: block;
      margin-right: 2.35765%;
      width: 40.29137%;
      margin-right: 0; }
      .study-image:last-child {
        margin-right: 0; } }
  .study-image img {
    width: 100%; }

.study-footer {
  margin-top: 1.5em; }

.blog .content,
.single .content {
  margin-bottom: 5em;
  margin-top: 5em; }
  .blog .content article.post,
  .single .content article.post {
    margin-bottom: 3em; }
    @media screen and (min-width: 800px) {
      .blog .content article.post,
      .single .content article.post {
        padding: 1.5em 0; } }
    .blog .content article.post:first-child,
    .single .content article.post:first-child {
      padding-top: 0; }

.entry-title {
  color: #222;
  margin-bottom: 10px; }
  .entry-title a {
    color: #222; }
    .entry-title a:hover {
      color: #c9282d; }

.entry-meta {
  padding-top: 10px; }

.archive.post-type-archive .study-wrap,
.archive.woocommerce .study-wrap {
  width: 100%;
  margin-bottom: 1.5em; }
  @media screen and (min-width: 600px) {
    .archive.post-type-archive .study-wrap,
    .archive.woocommerce .study-wrap {
      float: left;
      display: block;
      margin-right: 2.35765%;
      width: 48.82117%; }
      .archive.post-type-archive .study-wrap:last-child,
      .archive.woocommerce .study-wrap:last-child {
        margin-right: 0; }
      .archive.post-type-archive .study-wrap:nth-child(2n),
      .archive.woocommerce .study-wrap:nth-child(2n) {
        margin-right: 0; }
      .archive.post-type-archive .study-wrap:nth-child(2n+1),
      .archive.woocommerce .study-wrap:nth-child(2n+1) {
        clear: left; } }
  @media screen and (min-width: 800px) {
    .archive.post-type-archive .study-wrap,
    .archive.woocommerce .study-wrap {
      float: left;
      display: block;
      margin-right: 2.35765%;
      width: 23.23176%; }
      .archive.post-type-archive .study-wrap:last-child,
      .archive.woocommerce .study-wrap:last-child {
        margin-right: 0; }
      .archive.post-type-archive .study-wrap:nth-child(2n),
      .archive.woocommerce .study-wrap:nth-child(2n) {
        margin-right: 2.35765%; }
      .archive.post-type-archive .study-wrap:nth-child(2n+1),
      .archive.woocommerce .study-wrap:nth-child(2n+1) {
        clear: none; }
      .archive.post-type-archive .study-wrap:nth-child(4n),
      .archive.woocommerce .study-wrap:nth-child(4n) {
        margin-right: 0; }
      .archive.post-type-archive .study-wrap:nth-child(4n+1),
      .archive.woocommerce .study-wrap:nth-child(4n+1) {
        clear: left; } }

.archive.post-type-archive .study,
.archive.woocommerce .study {
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center center;
  min-height: 225px;
  position: relative; }
  .archive.post-type-archive .study .study-slide-link,
  .archive.woocommerce .study .study-slide-link {
    height: 100%;
    position: absolute;
    transition: all 300ms ease !important;
    width: 100%; }
    .archive.post-type-archive .study .study-slide-link:hover,
    .archive.woocommerce .study .study-slide-link:hover {
      background-color: rgba(201, 40, 45, 0.6); }
      .archive.post-type-archive .study .study-slide-link:hover .hover-arrow,
      .archive.woocommerce .study .study-slide-link:hover .hover-arrow {
        visibility: visible; }
      .archive.post-type-archive .study .study-slide-link:hover:before,
      .archive.woocommerce .study .study-slide-link:hover:before {
        content: '';
        border-left: 1px solid #c9282d;
        border-bottom: 1px solid #c9282d;
        padding: 5px;
        position: absolute;
        transition: all 300ms ease;
        top: 5px;
        left: -5px;
        right: 5px;
        bottom: -5px; }
  .archive.post-type-archive .study .study-content,
  .archive.woocommerce .study .study-content {
    position: absolute;
    text-align: center;
    bottom: 1.5em;
    left: 0.75em;
    right: 0.75em; }
    .archive.post-type-archive .study .study-content .hover-arrow,
    .archive.woocommerce .study .study-content .hover-arrow {
      border-radius: 50%;
      border: 2px solid white;
      height: 40px;
      margin: 0 auto 2.625em;
      position: relative;
      transition: all 300ms ease !important;
      visibility: hidden;
      width: 40px; }
      .archive.post-type-archive .study .study-content .hover-arrow svg,
      .archive.woocommerce .study .study-content .hover-arrow svg {
        position: absolute;
        left: 50%;
        top: 50%;
        -webkit-transform: translate(-50%, -50%);
        -moz-transform: translate(-50%, -50%);
        -ms-transform: translate(-50%, -50%);
        -o-transform: translate(-50%, -50%);
        transform: translate(-50%, -50%); }
      .archive.post-type-archive .study .study-content .hover-arrow .cls-1,
      .archive.woocommerce .study .study-content .hover-arrow .cls-1 {
        fill: white; }
    .archive.post-type-archive .study .study-content .study-title,
    .archive.woocommerce .study .study-content .study-title {
      color: white;
      margin-bottom: 0;
      text-transform: uppercase; }
    .archive.post-type-archive .study .study-content .study-title,
    .archive.woocommerce .study .study-content .study-title {
      font-size: 1.25em; }

.archive .content {
  margin-bottom: 5em;
  margin-top: 5em; }
  .archive .content article.post {
    margin-bottom: 3em; }
    @media screen and (min-width: 800px) {
      .archive .content article.post {
        padding: 1.5em 0; } }
    .archive .content article.post:first-child {
      padding-top: 0; }

._form-content input {
  color: #444; }

.entry-content ul.tml-action-links > li:before {
  content: ""; }

.team-members {
  padding: 5em 0; }

.team-member {
  margin-bottom: 1.5em;
  text-align: center; }
  @media screen and (min-width: 800px) {
    .team-member {
      float: left;
      display: block;
      margin-right: 2.35765%;
      width: 31.76157%; }
      .team-member:last-child {
        margin-right: 0; }
      .team-member:nth-child(3n) {
        margin-right: 0; }
      .team-member:nth-child(3n+1) {
        clear: left; } }
  .team-member img {
    border: 3px solid #f9f9f9;
    margin-bottom: 10px; }
  .team-member h4,
  .team-member p {
    margin: 0; }
  .team-member .button {
    margin-top: 10px; }

.single-team-member {
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto; }
  .single-team-member::after {
    clear: both;
    content: "";
    display: table; }
  @media screen and (min-width: 800px) {
    .single-team-member .team-image {
      float: left;
      display: block;
      margin-right: 2.35765%;
      width: 31.76157%; }
      .single-team-member .team-image:last-child {
        margin-right: 0; } }
  .single-team-member .team-image img {
    border: 3px solid #f9f9f9; }
  @media screen and (min-width: 800px) {
    .single-team-member .team-info {
      float: left;
      display: block;
      margin-right: 2.35765%;
      width: 65.88078%;
      margin-right: 0; }
      .single-team-member .team-info:last-child {
        margin-right: 0; } }
  .single-team-member .team-phone,
  .single-team-member .team-email {
    margin-bottom: 10px; }
    .single-team-member .team-phone label,
    .single-team-member .team-email label {
      margin-bottom: 0; }

.single-study .vid-section-title {
  font-size: 3em; }

.single-study .vid-section-sub-title {
  font-family: "Lato", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
  font-size: 1.5em;
  font-weight: 100; }

.single-study .content {
  margin: 0; }

.single-study .summary-video {
  margin-top: 3em; }
  .single-study .summary-video .wistia-video-wrap {
    margin: 0 auto;
    max-width: 815px; }

.single-study .lower-part {
  display: inline-block;
  margin-top: 1.5em; }
  @media screen and (min-width: 800px) {
    .single-study .lower-part {
      margin: 4.5em 0; } }

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

@media screen and (min-width: 800px) {
  .single-study .left-column .inner-left {
    max-width: 90%; } }

@media screen and (min-width: 800px) {
  .single-study .right-column {
    float: left;
    display: block;
    margin-right: 2.35765%;
    width: 31.76157%; }
    .single-study .right-column:last-child {
      margin-right: 0; } }

.single-study .group-video {
  position: relative; }
  .single-study .group-video img {
    display: block; }
  @media screen and (min-width: 600px) {
    .single-study .group-video {
      float: right;
      margin-bottom: 0.75em;
      margin-left: 0.75em;
      width: 275px;
      max-width: 50%; } }
  .single-study .group-video:before {
    content: '';
    border-left: 1px solid #c9282d;
    border-bottom: 1px solid #c9282d;
    padding: 5px;
    position: absolute;
    top: 5px;
    left: -5px;
    right: 5px;
    bottom: -5px;
    transition: all 300ms ease !important; }
  .single-study .group-video:hover .overlink {
    opacity: 0.9; }
  .single-study .group-video:hover:before {
    border-left: 1px solid #9d1304;
    border-bottom: 1px solid #9d1304;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0; }
  .single-study .group-video .overlink {
    background-color: rgba(201, 40, 45, 0.4);
    bottom: 0;
    content: '';
    font-size: 20px;
    left: 0;
    position: absolute;
    right: 0;
    text-align: center;
    text-transform: uppercase;
    top: 0;
    transition: all 300ms ease !important; }
    .single-study .group-video .overlink .link-text {
      -webkit-transform: translate(-50%, -50%);
      -moz-transform: translate(-50%, -50%);
      -ms-transform: translate(-50%, -50%);
      -o-transform: translate(-50%, -50%);
      transform: translate(-50%, -50%);
      color: white;
      left: 50%;
      padding: 0.75em;
      position: absolute;
      text-align: center;
      top: 50%;
      width: 90%; }
  .single-study .group-video .play-wrap {
    border-radius: 50%;
    border: 2px solid white;
    height: 45px;
    margin: 0 auto;
    position: relative;
    width: 45px; }
  .single-study .group-video .play-button {
    transition: all 300ms ease; }
    .single-study .group-video .play-button svg {
      -webkit-transform: translate(-50%, -50%);
      -moz-transform: translate(-50%, -50%);
      -ms-transform: translate(-50%, -50%);
      -o-transform: translate(-50%, -50%);
      transform: translate(-50%, -50%);
      height: 20px;
      left: 55%;
      position: absolute;
      top: 50%;
      width: 20px; }

.single-study .summary {
  margin-bottom: 3em;
  margin-top: 1.5em; }

.single-study .info-link {
  padding: 3em;
  background-color: #f9f9f9; }

.single-study .checklist {
  background: #d1484c;
  margin-bottom: 3em;
  margin-top: 3em;
  padding-top: 3em;
  padding: 3em; }
  @media screen and (min-width: 800px) {
    .single-study .checklist {
      margin-top: 1em; } }
  @media screen and (min-width: 800px) {
    .single-study .checklist.has-video-above {
      margin-top: -9em;
      padding-top: 10em; } }
  .single-study .checklist .vid-section-title,
  .single-study .checklist .vid-section-sub-title {
    color: white; }
  .single-study .checklist .vid-section-title {
    margin-bottom: 0.625rem;
    line-height: 1; }
  .single-study .checklist .check-item {
    border-bottom: 2px solid #c9282d;
    padding: 0.75em 0; }
    .single-study .checklist .check-item:last-of-type {
      border-bottom: 0px; }
  .single-study .checklist .item {
    color: white;
    display: inline-block;
    font-size: 0.875em;
    margin-left: 40px;
    min-height: 40px;
    position: relative; }
    @media screen and (min-width: 600px) {
      .single-study .checklist .item {
        padding-top: 10px; } }
    @media screen and (min-width: 800px) {
      .single-study .checklist .item {
        padding-top: 0; } }
    .single-study .checklist .item:before {
      border: 2px solid white;
      content: "";
      display: inline-block;
      height: 30px;
      margin-left: -40px;
      position: absolute;
      top: 5px;
      width: 30px; }
  .single-study .checklist .print-single-study {
    color: white;
    display: inline-block;
    font-size: 1.25em;
    margin-top: 1.875rem;
    text-transform: uppercase; }
    .single-study .checklist .print-single-study:hover {
      cursor: pointer;
      text-decoration-color: white;
      text-decoration: underline; }

.single-study .resources {
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat; }
  .single-study .resources .vid-section-title {
    color: white;
    padding: 1.5em 0;
    text-align: center; }

.single-study .resource {
  background-color: rgba(201, 40, 45, 0.6);
  margin-bottom: 1.5em;
  padding: 1.5em;
  position: relative;
  transition: background-color 300ms ease; }
  @media screen and (min-width: 600px) {
    .single-study .resource {
      float: left;
      display: block;
      margin-right: 2.35765%;
      width: 31.76157%; }
      .single-study .resource:last-child {
        margin-right: 0; }
      .single-study .resource:nth-child(3n) {
        margin-right: 0; }
      .single-study .resource:nth-child(3n+1) {
        clear: left; } }
  .single-study .resource:hover {
    background-color: #c9282d; }
    .single-study .resource:hover .unhovered {
      visibility: hidden; }
    .single-study .resource:hover .hovered {
      visibility: visible; }
  .single-study .resource .unhovered {
    text-align: center;
    transition: background-color 300ms ease; }
    .single-study .resource .unhovered .download-icon img {
      height: 60px;
      margin: 3em 0;
      width: auto; }
  .single-study .resource .hovered {
    -webkit-transform: translateY(-50%);
    -moz-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    -o-transform: translateY(-50%);
    transform: translateY(-50%);
    left: 1.5em;
    position: absolute;
    right: 1.5em;
    top: 50%;
    transition: background-color 300ms ease;
    visibility: hidden; }
    .single-study .resource .hovered p {
      margin-top: 0.75em;
      margin-bottom: 0.75em; }
  .single-study .resource .white-button a {
    font-size: 0.875em; }
  .single-study .resource .resource-title,
  .single-study .resource p {
    color: white;
    margin-bottom: 0; }
  .single-study .resource .resource-title {
    font-weight: 100;
    font-size: 1.625em;
    font-family: "Lato", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif; }

.single-study .resources-wrapper {
  display: inline-block;
  margin-bottom: 3em;
  width: 100%; }

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

.page-template-template-church-portal .site-inner {
  margin: 3em 0; }

.portal-section .portal-studies-wrap,
.portal-section .portal-tech-wrap,
.portal-section .portal-blog-posts-wrap,
.portal-section .portal-blog-podcast-wrap {
  position: relative; }
  .portal-section .portal-studies-wrap .left-arrow,
  .portal-section .portal-studies-wrap .right-arrow,
  .portal-section .portal-tech-wrap .left-arrow,
  .portal-section .portal-tech-wrap .right-arrow,
  .portal-section .portal-blog-posts-wrap .left-arrow,
  .portal-section .portal-blog-posts-wrap .right-arrow,
  .portal-section .portal-blog-podcast-wrap .left-arrow,
  .portal-section .portal-blog-podcast-wrap .right-arrow {
    position: absolute;
    top: 50%;
    -webkit-transform: translate(0, -50%);
    -moz-transform: translate(0, -50%);
    -ms-transform: translate(0, -50%);
    -o-transform: translate(0, -50%);
    transform: translate(0, -50%);
    visibility: hidden; }
    @media (min-width: 1200px) {
      .portal-section .portal-studies-wrap .left-arrow,
      .portal-section .portal-studies-wrap .right-arrow,
      .portal-section .portal-tech-wrap .left-arrow,
      .portal-section .portal-tech-wrap .right-arrow,
      .portal-section .portal-blog-posts-wrap .left-arrow,
      .portal-section .portal-blog-posts-wrap .right-arrow,
      .portal-section .portal-blog-podcast-wrap .left-arrow,
      .portal-section .portal-blog-podcast-wrap .right-arrow {
        visibility: visible; } }
    .portal-section .portal-studies-wrap .left-arrow svg polyline,
    .portal-section .portal-studies-wrap .right-arrow svg polyline,
    .portal-section .portal-tech-wrap .left-arrow svg polyline,
    .portal-section .portal-tech-wrap .right-arrow svg polyline,
    .portal-section .portal-blog-posts-wrap .left-arrow svg polyline,
    .portal-section .portal-blog-posts-wrap .right-arrow svg polyline,
    .portal-section .portal-blog-podcast-wrap .left-arrow svg polyline,
    .portal-section .portal-blog-podcast-wrap .right-arrow svg polyline {
      stroke: #c9282d; }
    .portal-section .portal-studies-wrap .left-arrow:hover,
    .portal-section .portal-studies-wrap .right-arrow:hover,
    .portal-section .portal-tech-wrap .left-arrow:hover,
    .portal-section .portal-tech-wrap .right-arrow:hover,
    .portal-section .portal-blog-posts-wrap .left-arrow:hover,
    .portal-section .portal-blog-posts-wrap .right-arrow:hover,
    .portal-section .portal-blog-podcast-wrap .left-arrow:hover,
    .portal-section .portal-blog-podcast-wrap .right-arrow:hover {
      cursor: pointer; }
  .portal-section .portal-studies-wrap .left-arrow,
  .portal-section .portal-tech-wrap .left-arrow,
  .portal-section .portal-blog-posts-wrap .left-arrow,
  .portal-section .portal-blog-podcast-wrap .left-arrow {
    left: -65px; }
    .portal-section .portal-studies-wrap .left-arrow svg,
    .portal-section .portal-tech-wrap .left-arrow svg,
    .portal-section .portal-blog-posts-wrap .left-arrow svg,
    .portal-section .portal-blog-podcast-wrap .left-arrow svg {
      -webkit-transform: rotate(180deg);
      -moz-transform: rotate(180deg);
      -ms-transform: rotate(180deg);
      -o-transform: rotate(180deg);
      transform: rotate(180deg); }
    @media screen and (min-width: 600px) {
      .portal-section .portal-studies-wrap .left-arrow,
      .portal-section .portal-tech-wrap .left-arrow,
      .portal-section .portal-blog-posts-wrap .left-arrow,
      .portal-section .portal-blog-podcast-wrap .left-arrow {
        left: -45px; } }
  .portal-section .portal-studies-wrap .right-arrow,
  .portal-section .portal-tech-wrap .right-arrow,
  .portal-section .portal-blog-posts-wrap .right-arrow,
  .portal-section .portal-blog-podcast-wrap .right-arrow {
    right: -65px; }
    @media screen and (min-width: 600px) {
      .portal-section .portal-studies-wrap .right-arrow,
      .portal-section .portal-tech-wrap .right-arrow,
      .portal-section .portal-blog-posts-wrap .right-arrow,
      .portal-section .portal-blog-podcast-wrap .right-arrow {
        right: -45px; } }

.portal-section.studies-slider-section,
.portal-section.tech-slider-section {
  /* the slides */
  /* the parent */ }
  .portal-section.studies-slider-section .study-slide,
  .portal-section.studies-slider-section .tech-slide,
  .portal-section.tech-slider-section .study-slide,
  .portal-section.tech-slider-section .tech-slide {
    background-repeat: no-repeat;
    background-size: cover;
    min-height: 225px; }
  .portal-section.studies-slider-section .slick-slide,
  .portal-section.tech-slider-section .slick-slide {
    margin: 0 0.75em; }
  .portal-section.studies-slider-section .slick-list,
  .portal-section.tech-slider-section .slick-list {
    margin: -0.75em; }
  .portal-section.studies-slider-section .slick-dots,
  .portal-section.tech-slider-section .slick-dots {
    bottom: -3em; }
    .portal-section.studies-slider-section .slick-dots li,
    .portal-section.tech-slider-section .slick-dots li {
      margin: 0; }
    .portal-section.studies-slider-section .slick-dots button:before,
    .portal-section.tech-slider-section .slick-dots button:before {
      display: none; }
    .portal-section.studies-slider-section .slick-dots button,
    .portal-section.tech-slider-section .slick-dots button {
      background: #d4d4d4;
      border-radius: 50%;
      height: 5px;
      width: 5px; }
    .portal-section.studies-slider-section .slick-dots .slick-active button,
    .portal-section.tech-slider-section .slick-dots .slick-active button {
      background: #c9282d; }

.portal-section.studies-slider-section .study-slide {
  position: relative; }
  .portal-section.studies-slider-section .study-slide .study-slide-link {
    height: 100%;
    position: absolute;
    transition: all 300ms ease !important;
    width: 100%; }
    .portal-section.studies-slider-section .study-slide .study-slide-link:hover {
      background-color: rgba(201, 40, 45, 0.6); }
      .portal-section.studies-slider-section .study-slide .study-slide-link:hover .hover-arrow {
        visibility: visible; }
  .portal-section.studies-slider-section .study-slide .study-slide-content {
    position: absolute;
    text-align: center;
    bottom: 1.5em;
    left: 0.75em;
    right: 0.75em; }
    .portal-section.studies-slider-section .study-slide .study-slide-content .hover-arrow {
      border-radius: 50%;
      border: 2px solid white;
      height: 40px;
      margin: 0 auto 2.625em;
      position: relative;
      transition: all 300ms ease !important;
      visibility: hidden;
      width: 40px; }
      .portal-section.studies-slider-section .study-slide .study-slide-content .hover-arrow svg {
        position: absolute;
        left: 50%;
        top: 50%;
        -webkit-transform: translate(-50%, -50%);
        -moz-transform: translate(-50%, -50%);
        -ms-transform: translate(-50%, -50%);
        -o-transform: translate(-50%, -50%);
        transform: translate(-50%, -50%); }
      .portal-section.studies-slider-section .study-slide .study-slide-content .hover-arrow .cls-1 {
        fill: white; }
    .portal-section.studies-slider-section .study-slide .study-slide-content .slide-title {
      color: white;
      margin-bottom: 0;
      text-transform: uppercase; }
    .portal-section.studies-slider-section .study-slide .study-slide-content .slide-title {
      font-size: 1.25em; }

.portal-section.tech-slider-section .tech-slide {
  position: relative; }
  .portal-section.tech-slider-section .tech-slide .tech-slide-link {
    height: 100%;
    position: absolute;
    transition: all 300ms ease !important;
    width: 100%;
    color: white; }
    .portal-section.tech-slider-section .tech-slide .tech-slide-link:hover {
      background-color: rgba(201, 40, 45, 0.6); }
      .portal-section.tech-slider-section .tech-slide .tech-slide-link:hover .unhovered {
        display: none; }
      .portal-section.tech-slider-section .tech-slide .tech-slide-link:hover .hovered {
        display: block; }
  .portal-section.tech-slider-section .tech-slide .slide-title,
  .portal-section.tech-slider-section .tech-slide .slide-blurb {
    color: white;
    margin-bottom: 0; }
  .portal-section.tech-slider-section .tech-slide .unhovered,
  .portal-section.tech-slider-section .tech-slide .hovered {
    text-align: center; }
  .portal-section.tech-slider-section .tech-slide .unhovered {
    position: absolute;
    width: 100%;
    padding: 0.75em;
    bottom: 1.5em; }
  .portal-section.tech-slider-section .tech-slide .hovered {
    display: none;
    position: absolute;
    padding: 0.75em;
    top: 50%;
    left: 50%;
    width: 100%;
    -webkit-transform: translate(-50%, -50%);
    -moz-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
    -o-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%); }
    .portal-section.tech-slider-section .tech-slide .hovered p {
      margin-bottom: 0px; }

.portal-resource .coming-soon {
  background-color: #a7a7a7; }
  .portal-resource .coming-soon h3 {
    color: white;
    font-family: "Lato", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
    font-size: 1.875em;
    font-weight: 400;
    margin-bottom: 0;
    padding: 1.125em; }

.portal-resource .fifty-resource {
  background-size: cover;
  background-repeat: no-repeat;
  margin-bottom: 1.5em;
  min-height: 325px;
  position: relative; }
  @media screen and (min-width: 600px) {
    .portal-resource .fifty-resource {
      float: left;
      display: block;
      margin-right: 2.35765%;
      width: 48.82117%; }
      .portal-resource .fifty-resource:last-child {
        margin-right: 0; }
      .portal-resource .fifty-resource:nth-child(2n) {
        margin-right: 0; }
      .portal-resource .fifty-resource:nth-child(2n+1) {
        clear: left; } }
  .portal-resource .fifty-resource .resource-content {
    position: absolute;
    bottom: 1.5em;
    left: 1.5em;
    right: 1.5em; }
  .portal-resource .fifty-resource .resource-pretext,
  .portal-resource .fifty-resource .resource-title {
    margin-bottom: 0;
    color: white; }
  .portal-resource .fifty-resource .resource-pretext {
    font-family: "Lato", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
    font-size: 1.125em;
    font-weight: 100; }
  .portal-resource .fifty-resource .resource-title {
    font-size: 2.5em; }
  .portal-resource .fifty-resource .resource {
    height: 100%;
    position: absolute;
    transition: all 300ms ease !important;
    width: 100%; }
  .portal-resource .fifty-resource .coming-content {
    visibility: hidden; }
  .portal-resource .fifty-resource.avaliable .resource {
    background-color: rgba(201, 40, 45, 0.7); }
  .portal-resource .fifty-resource.avaliable:hover .resource {
    background-color: rgba(201, 40, 45, 0.8); }
  .portal-resource .fifty-resource.coming .coming-content {
    background-color: rgba(167, 167, 167, 0.7);
    height: 100%;
    position: absolute;
    visibility: visible !important;
    width: 100%; }
    .portal-resource .fifty-resource.coming .coming-content h4 {
      -webkit-transform: translate(-50%, -50%);
      -moz-transform: translate(-50%, -50%);
      -ms-transform: translate(-50%, -50%);
      -o-transform: translate(-50%, -50%);
      transform: translate(-50%, -50%);
      color: white;
      font-family: "Lato", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
      font-size: 2.5em;
      left: 50%;
      position: absolute;
      text-align: center;
      top: 50%;
      width: 100%; }

.dash-template .site-inner {
  margin-top: 4.5em;
  margin-bottom: 3em; }

.dash-template .dash-header {
  display: inline-block;
  margin-bottom: 1.5em;
  width: 100%; }
  .dash-template .dash-header .dash-sub-title {
    margin-bottom: 0; }
  .dash-template .dash-header .left {
    width: 100%; }
    @media screen and (min-width: 600px) {
      .dash-template .dash-header .left {
        float: left;
        display: block;
        margin-right: 2.35765%;
        width: 48.82117%; }
        .dash-template .dash-header .left:last-child {
          margin-right: 0; } }
  .dash-template .dash-header .right {
    width: 100%;
    display: none; }
    @media screen and (min-width: 600px) {
      .dash-template .dash-header .right {
        display: inline-block;
        float: left;
        display: block;
        margin-right: 2.35765%;
        width: 48.82117%;
        margin-right: 0; }
        .dash-template .dash-header .right:last-child {
          margin-right: 0; }
        .dash-template .dash-header .right .button {
          float: right; }
          .dash-template .dash-header .right .button a {
            margin-bottom: 0; } }

.dash-template .dash-leaders, .dash-template .dash-members {
  clear: both; }
  .dash-template .dash-leaders .first,
  .dash-template .dash-leaders .second, .dash-template .dash-members .first,
  .dash-template .dash-members .second {
    margin-bottom: 0.75em; }
    @media screen and (min-width: 800px) {
      .dash-template .dash-leaders .first,
      .dash-template .dash-leaders .second, .dash-template .dash-members .first,
      .dash-template .dash-members .second {
        width: 37.5%;
        float: left;
        margin-bottom: 0px; }
        .dash-template .dash-leaders .first input,
        .dash-template .dash-leaders .second input, .dash-template .dash-members .first input,
        .dash-template .dash-members .second input {
          width: 90% !important; } }
    .dash-template .dash-leaders .first input,
    .dash-template .dash-leaders .second input, .dash-template .dash-members .first input,
    .dash-template .dash-members .second input {
      background-color: #eeeeee;
      border-bottom: 2px solid white !important;
      border: none;
      font-family: "Lato", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
      font-weight: 100;
      width: 100%;
      padding: 0.1875em; }
      .dash-template .dash-leaders .first input:hover, .dash-template .dash-leaders .first input:focus,
      .dash-template .dash-leaders .second input:hover,
      .dash-template .dash-leaders .second input:focus, .dash-template .dash-members .first input:hover, .dash-template .dash-members .first input:focus,
      .dash-template .dash-members .second input:hover,
      .dash-template .dash-members .second input:focus {
        outline: none; }
    .dash-template .dash-leaders .first label,
    .dash-template .dash-leaders .second label, .dash-template .dash-members .first label,
    .dash-template .dash-members .second label {
      font-family: "Oswald", "Lato", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
      font-weight: 400; }
  .dash-template .dash-leaders .third, .dash-template .dash-members .third {
    text-align: center; }
    @media screen and (min-width: 800px) {
      .dash-template .dash-leaders .third, .dash-template .dash-members .third {
        width: 25%;
        float: left; } }
    .dash-template .dash-leaders .third .third-content, .dash-template .dash-members .third .third-content {
      width: 100%; }

.dash-template .gray-box {
  padding: 1.5em;
  margin-bottom: 0.375em; }
  .dash-template .gray-box:last-of-type {
    margin-bottom: 0; }
  @media screen and (min-width: 800px) {
    .dash-template .gray-box {
      padding: 1.5em 0 1.5em 3em; } }

.dash-template .dash-footer {
  margin-top: 0.75em; }
  .dash-template .dash-footer a {
    margin-bottom: 0; }

.circle-svg-btn {
  display: inline-block;
  margin-right: 0.75em;
  width: auto;
  transition: background-color 300ms ease; }
  .circle-svg-btn .svg-wrap {
    background-color: #474747;
    border-radius: 50%;
    height: 30px;
    margin: 0 auto 0.375em;
    position: relative;
    width: 30px; }
    .circle-svg-btn .svg-wrap svg {
      fill: white;
      width: 15px;
      height: 15px;
      position: absolute;
      top: 50%;
      left: 50%;
      -webkit-transform: translate(-50%, -50%);
      -moz-transform: translate(-50%, -50%);
      -ms-transform: translate(-50%, -50%);
      -o-transform: translate(-50%, -50%);
      transform: translate(-50%, -50%); }
  .circle-svg-btn .button-text {
    text-transform: uppercase;
    font-size: 0.875em;
    font-family: "Oswald", "Lato", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
    color: #222; }
  .circle-svg-btn:hover {
    opacity: 0.8; }
  .circle-svg-btn.revoke-button {
    opacity: 0.6;
    transition: background-color 300ms ease; }
    .circle-svg-btn.revoke-button:hover {
      opacity: 1.0; }
  .circle-svg-btn.pending-button {
    pointer-events: none;
    cursor: default;
    opacity: 0.6; }

.add-leader-button, .add-member-button {
  position: relative; }
  @media screen and (min-width: 800px) {
    .add-leader-button, .add-member-button {
      margin-top: 4px; } }
  .add-leader-button input[type='button'], .add-member-button input[type='button'] {
    margin-bottom: 0 !important;
    margin-right: 0 !important;
    width: 100%; }
  .add-leader-button .plus-svg-outer-wrap, .add-member-button .plus-svg-outer-wrap {
    position: absolute;
    left: 0.75em;
    top: 6px;
    pointer-events: none; }
    @media screen and (min-width: 800px) {
      .add-leader-button .plus-svg-outer-wrap, .add-member-button .plus-svg-outer-wrap {
        top: 8px; } }
  .add-leader-button .plus-svg-wrap, .add-member-button .plus-svg-wrap {
    background-color: white;
    border-radius: 50%;
    height: 30px;
    margin: 0 auto;
    position: relative;
    width: 30px;
    z-index: 10;
    transition: background-color 300ms ease; }
    .add-leader-button .plus-svg-wrap svg, .add-member-button .plus-svg-wrap svg {
      fill: #c9282d;
      width: 15px;
      height: 15px;
      position: absolute;
      top: 50%;
      left: 50%;
      -webkit-transform: translate(-50%, -50%);
      -moz-transform: translate(-50%, -50%);
      -ms-transform: translate(-50%, -50%);
      -o-transform: translate(-50%, -50%);
      transform: translate(-50%, -50%);
      transition: background-color 300ms ease; }
  .add-leader-button:hover .plus-svg-wrap, .add-member-button:hover .plus-svg-wrap {
    background-color: #e6e6e6; }

.glm-add-leader, .glm-add-member {
  position: relative; }

.glm-status-overlay {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  background: rgba(255, 165, 0, 0);
  z-index: 11;
  display: none; }
  .glm-status-overlay[data-glm-status="processing"] {
    background: rgba(255, 165, 0, 0.8); }
  .glm-status-overlay[data-glm-status="error"] {
    background: rgba(255, 0, 0, 0.8); }
  .glm-status-overlay .status {
    font-size: 1.5em;
    color: #fff;
    display: block;
    width: calc(100% - 40px);
    text-transform: uppercase;
    font-weight: 700;
    position: absolute;
    top: 50%;
    left: 50%;
    text-align: center;
    -webkit-transform: translate(-50%, -50%);
    -moz-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
    -o-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%); }

#glm-add-leader-clone,
#glm-add-member-clone {
  display: none; }

.glm-revoke-leader-action,
.glm-revoke-member-action {
  display: inline-block;
  cursor: pointer; }

.glm-leader-hide,
.glm-member-hide {
  display: none; }

.gray-box {
  background-color: #eeeeee;
  display: inline-block;
  width: 100%; }

.single-study.single-video-resource .left-column {
  width: 100%;
  float: none; }
  @media screen and (min-width: 800px) {
    .single-study.single-video-resource .left-column .inner-left {
      max-width: 100%; } }

.single-study.single-video-resource .lower-part {
  display: block;
  margin-bottom: 0px; }

#group-connect-sections .studies-slider-section,
#group-connect-sections .tech-slider-section,
#group-connect-sections .juicer-section {
  padding: 0;
  margin-top: 5em;
  margin-bottom: 5em; }

#group-connect-sections .juicer-section button {
  -webkit-transform: translate(0);
  -ms-transform: translate(0);
  transform: translate(0); }
  #group-connect-sections .juicer-section button:before {
    border: none;
    padding: 0;
    position: relative;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0; }

/**
 * WOO Stuff
 */
#add_payment_method .wc-proceed-to-checkout a.checkout-button, .woocommerce-cart .wc-proceed-to-checkout a.checkout-button, .woocommerce-checkout .wc-proceed-to-checkout a.checkout-button,
.single_add_to_cart_button, .woocommerce #payment #place_order, .woocommerce-page #payment #place_order, .woocommerce-page .woocommerce input.button {
  appearance: none;
  background-color: #c9282d !important;
  border-radius: 0 !important;
  border: 0;
  color: #fff !important;
  cursor: pointer;
  display: inline-block;
  font-family: "Lato", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif !important;
  font-size: 1em !important;
  -webkit-font-smoothing: antialiased;
  font-weight: 500 !important;
  line-height: 1 !important;
  margin: 0 5px 15px 0 !important;
  padding: 1em 3em !important;
  position: relative;
  text-decoration: none;
  text-transform: uppercase;
  transition: background-color 300ms ease;
  user-select: none;
  vertical-align: middle;
  white-space: nowrap; }
  #add_payment_method .wc-proceed-to-checkout a.checkout-button:before, .woocommerce-cart .wc-proceed-to-checkout a.checkout-button:before, .woocommerce-checkout .wc-proceed-to-checkout a.checkout-button:before,
  .single_add_to_cart_button:before, .woocommerce #payment #place_order:before, .woocommerce-page #payment #place_order:before, .woocommerce-page .woocommerce input.button:before {
    content: '';
    border-left: 1px solid #c9282d;
    border-bottom: 1px solid #c9282d;
    padding: 5px;
    position: absolute;
    transition: all 300ms ease;
    top: 5px;
    left: -5px;
    right: 5px;
    bottom: -5px; }
  #add_payment_method .wc-proceed-to-checkout a.checkout-button:hover, #add_payment_method .wc-proceed-to-checkout a.checkout-button:focus, .woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover, .woocommerce-cart .wc-proceed-to-checkout a.checkout-button:focus, .woocommerce-checkout .wc-proceed-to-checkout a.checkout-button:hover, .woocommerce-checkout .wc-proceed-to-checkout a.checkout-button:focus,
  .single_add_to_cart_button:hover,
  .single_add_to_cart_button:focus, .woocommerce #payment #place_order:hover, .woocommerce #payment #place_order:focus, .woocommerce-page #payment #place_order:hover, .woocommerce-page #payment #place_order:focus, .woocommerce-page .woocommerce input.button:hover, .woocommerce-page .woocommerce input.button:focus {
    background-color: #9d1304 !important;
    color: #fff; }
    #add_payment_method .wc-proceed-to-checkout a.checkout-button:hover:before, #add_payment_method .wc-proceed-to-checkout a.checkout-button:focus:before, .woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover:before, .woocommerce-cart .wc-proceed-to-checkout a.checkout-button:focus:before, .woocommerce-checkout .wc-proceed-to-checkout a.checkout-button:hover:before, .woocommerce-checkout .wc-proceed-to-checkout a.checkout-button:focus:before,
    .single_add_to_cart_button:hover:before,
    .single_add_to_cart_button:focus:before, .woocommerce #payment #place_order:hover:before, .woocommerce #payment #place_order:focus:before, .woocommerce-page #payment #place_order:hover:before, .woocommerce-page #payment #place_order:focus:before, .woocommerce-page .woocommerce input.button:hover:before, .woocommerce-page .woocommerce input.button:focus:before {
      border-left: 1px solid #9d1304;
      border-bottom: 1px solid #9d1304;
      top: 0;
      right: 0;
      bottom: 0;
      left: 0; }
  #add_payment_method .wc-proceed-to-checkout a.checkout-button:disabled, .woocommerce-cart .wc-proceed-to-checkout a.checkout-button:disabled, .woocommerce-checkout .wc-proceed-to-checkout a.checkout-button:disabled,
  .single_add_to_cart_button:disabled, .woocommerce #payment #place_order:disabled, .woocommerce-page #payment #place_order:disabled, .woocommerce-page .woocommerce input.button:disabled {
    cursor: not-allowed;
    opacity: 0.5; }
    #add_payment_method .wc-proceed-to-checkout a.checkout-button:disabled:hover, .woocommerce-cart .wc-proceed-to-checkout a.checkout-button:disabled:hover, .woocommerce-checkout .wc-proceed-to-checkout a.checkout-button:disabled:hover,
    .single_add_to_cart_button:disabled:hover, .woocommerce #payment #place_order:disabled:hover, .woocommerce-page #payment #place_order:disabled:hover, .woocommerce-page .woocommerce input.button:disabled:hover {
      background-color: #c9282d; }
  #add_payment_method .wc-proceed-to-checkout a.checkout-button.dark, .woocommerce-cart .wc-proceed-to-checkout a.checkout-button.dark, .woocommerce-checkout .wc-proceed-to-checkout a.checkout-button.dark,
  .single_add_to_cart_button.dark, .woocommerce #payment #place_order.dark, .woocommerce-page #payment #place_order.dark, .woocommerce-page .woocommerce input.button.dark {
    background-color: #444;
    color: #fff; }
    #add_payment_method .wc-proceed-to-checkout a.checkout-button.dark:before, .woocommerce-cart .wc-proceed-to-checkout a.checkout-button.dark:before, .woocommerce-checkout .wc-proceed-to-checkout a.checkout-button.dark:before,
    .single_add_to_cart_button.dark:before, .woocommerce #payment #place_order.dark:before, .woocommerce-page #payment #place_order.dark:before, .woocommerce-page .woocommerce input.button.dark:before {
      border-left: 1px solid #444;
      border-bottom: 1px solid #444; }
    #add_payment_method .wc-proceed-to-checkout a.checkout-button.dark:hover, #add_payment_method .wc-proceed-to-checkout a.checkout-button.dark:focus, .woocommerce-cart .wc-proceed-to-checkout a.checkout-button.dark:hover, .woocommerce-cart .wc-proceed-to-checkout a.checkout-button.dark:focus, .woocommerce-checkout .wc-proceed-to-checkout a.checkout-button.dark:hover, .woocommerce-checkout .wc-proceed-to-checkout a.checkout-button.dark:focus,
    .single_add_to_cart_button.dark:hover,
    .single_add_to_cart_button.dark:focus, .woocommerce #payment #place_order.dark:hover, .woocommerce #payment #place_order.dark:focus, .woocommerce-page #payment #place_order.dark:hover, .woocommerce-page #payment #place_order.dark:focus, .woocommerce-page .woocommerce input.button.dark:hover, .woocommerce-page .woocommerce input.button.dark:focus {
      background-color: #222;
      color: #fff; }
      #add_payment_method .wc-proceed-to-checkout a.checkout-button.dark:hover:before, #add_payment_method .wc-proceed-to-checkout a.checkout-button.dark:focus:before, .woocommerce-cart .wc-proceed-to-checkout a.checkout-button.dark:hover:before, .woocommerce-cart .wc-proceed-to-checkout a.checkout-button.dark:focus:before, .woocommerce-checkout .wc-proceed-to-checkout a.checkout-button.dark:hover:before, .woocommerce-checkout .wc-proceed-to-checkout a.checkout-button.dark:focus:before,
      .single_add_to_cart_button.dark:hover:before,
      .single_add_to_cart_button.dark:focus:before, .woocommerce #payment #place_order.dark:hover:before, .woocommerce #payment #place_order.dark:focus:before, .woocommerce-page #payment #place_order.dark:hover:before, .woocommerce-page #payment #place_order.dark:focus:before, .woocommerce-page .woocommerce input.button.dark:hover:before, .woocommerce-page .woocommerce input.button.dark:focus:before {
        border-left: 1px solid #222;
        border-bottom: 1px solid #222; }
  #add_payment_method .wc-proceed-to-checkout a.checkout-button.light, .woocommerce-cart .wc-proceed-to-checkout a.checkout-button.light, .woocommerce-checkout .wc-proceed-to-checkout a.checkout-button.light,
  .single_add_to_cart_button.light, .woocommerce #payment #place_order.light, .woocommerce-page #payment #place_order.light, .woocommerce-page .woocommerce input.button.light {
    background-color: white;
    color: #222; }
    #add_payment_method .wc-proceed-to-checkout a.checkout-button.light:before, .woocommerce-cart .wc-proceed-to-checkout a.checkout-button.light:before, .woocommerce-checkout .wc-proceed-to-checkout a.checkout-button.light:before,
    .single_add_to_cart_button.light:before, .woocommerce #payment #place_order.light:before, .woocommerce-page #payment #place_order.light:before, .woocommerce-page .woocommerce input.button.light:before {
      content: '';
      border-left: 1px solid #fff;
      border-bottom: 1px solid #fff;
      padding: 5px;
      position: absolute;
      transition: all 300ms ease;
      top: 0;
      left: -5px;
      right: 0;
      bottom: -5px; }
    #add_payment_method .wc-proceed-to-checkout a.checkout-button.light:hover, #add_payment_method .wc-proceed-to-checkout a.checkout-button.light:focus, .woocommerce-cart .wc-proceed-to-checkout a.checkout-button.light:hover, .woocommerce-cart .wc-proceed-to-checkout a.checkout-button.light:focus, .woocommerce-checkout .wc-proceed-to-checkout a.checkout-button.light:hover, .woocommerce-checkout .wc-proceed-to-checkout a.checkout-button.light:focus,
    .single_add_to_cart_button.light:hover,
    .single_add_to_cart_button.light:focus, .woocommerce #payment #place_order.light:hover, .woocommerce #payment #place_order.light:focus, .woocommerce-page #payment #place_order.light:hover, .woocommerce-page #payment #place_order.light:focus, .woocommerce-page .woocommerce input.button.light:hover, .woocommerce-page .woocommerce input.button.light:focus {
      background-color: #f9f9f9;
      color: #222; }
      #add_payment_method .wc-proceed-to-checkout a.checkout-button.light:hover:before, #add_payment_method .wc-proceed-to-checkout a.checkout-button.light:focus:before, .woocommerce-cart .wc-proceed-to-checkout a.checkout-button.light:hover:before, .woocommerce-cart .wc-proceed-to-checkout a.checkout-button.light:focus:before, .woocommerce-checkout .wc-proceed-to-checkout a.checkout-button.light:hover:before, .woocommerce-checkout .wc-proceed-to-checkout a.checkout-button.light:focus:before,
      .single_add_to_cart_button.light:hover:before,
      .single_add_to_cart_button.light:focus:before, .woocommerce #payment #place_order.light:hover:before, .woocommerce #payment #place_order.light:focus:before, .woocommerce-page #payment #place_order.light:hover:before, .woocommerce-page #payment #place_order.light:focus:before, .woocommerce-page .woocommerce input.button.light:hover:before, .woocommerce-page .woocommerce input.button.light:focus:before {
        border-left: 1px solid #f9f9f9;
        border-bottom: 1px solid #f9f9f9;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0; }
  #add_payment_method .wc-proceed-to-checkout a.checkout-button.small, .woocommerce-cart .wc-proceed-to-checkout a.checkout-button.small, .woocommerce-checkout .wc-proceed-to-checkout a.checkout-button.small,
  .single_add_to_cart_button.small, .woocommerce #payment #place_order.small, .woocommerce-page #payment #place_order.small, .woocommerce-page .woocommerce input.button.small {
    font-size: 14px;
    padding: 0.75em 1.5em; }
    #add_payment_method .wc-proceed-to-checkout a.checkout-button.small:before, .woocommerce-cart .wc-proceed-to-checkout a.checkout-button.small:before, .woocommerce-checkout .wc-proceed-to-checkout a.checkout-button.small:before,
    .single_add_to_cart_button.small:before, .woocommerce #payment #place_order.small:before, .woocommerce-page #payment #place_order.small:before, .woocommerce-page .woocommerce input.button.small:before {
      display: none; }

.woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
  width: 100%; }

.woo-category-section {
  display: block;
  clear: both;
  margin-bottom: 4.5em; }

.woo-category-slider-wrapper {
  position: relative;
  /* the slides */
  /* the parent */ }
  .woo-category-slider-wrapper .left-arrow,
  .woo-category-slider-wrapper .right-arrow {
    position: absolute;
    top: 50%;
    -webkit-transform: translate(0, -50%);
    -moz-transform: translate(0, -50%);
    -ms-transform: translate(0, -50%);
    -o-transform: translate(0, -50%);
    transform: translate(0, -50%);
    visibility: hidden; }
    @media (min-width: 1200px) {
      .woo-category-slider-wrapper .left-arrow,
      .woo-category-slider-wrapper .right-arrow {
        visibility: visible; } }
    .woo-category-slider-wrapper .left-arrow svg polyline,
    .woo-category-slider-wrapper .right-arrow svg polyline {
      stroke: #c9282d; }
    .woo-category-slider-wrapper .left-arrow:hover,
    .woo-category-slider-wrapper .right-arrow:hover {
      cursor: pointer; }
  .woo-category-slider-wrapper .left-arrow {
    left: -65px; }
    .woo-category-slider-wrapper .left-arrow svg {
      -webkit-transform: rotate(180deg);
      -moz-transform: rotate(180deg);
      -ms-transform: rotate(180deg);
      -o-transform: rotate(180deg);
      transform: rotate(180deg); }
    @media screen and (min-width: 600px) {
      .woo-category-slider-wrapper .left-arrow {
        left: -45px; } }
  .woo-category-slider-wrapper .right-arrow {
    right: -65px; }
    @media screen and (min-width: 600px) {
      .woo-category-slider-wrapper .right-arrow {
        right: -45px; } }
  .woo-category-slider-wrapper .category-slide {
    background-repeat: no-repeat;
    background-size: cover;
    min-height: 225px;
    position: relative; }
    .woo-category-slider-wrapper .category-slide .category-slide-link {
      height: 100%;
      position: absolute;
      transition: all 300ms ease !important;
      width: 100%; }
      .woo-category-slider-wrapper .category-slide .category-slide-link:hover {
        background-color: rgba(201, 40, 45, 0.6); }
        .woo-category-slider-wrapper .category-slide .category-slide-link:hover .hover-arrow {
          visibility: visible; }
    .woo-category-slider-wrapper .category-slide .slide-content {
      position: absolute;
      text-align: center;
      bottom: 1.5em;
      left: 0.75em;
      right: 0.75em; }
      .woo-category-slider-wrapper .category-slide .slide-content .hover-arrow {
        border-radius: 50%;
        border: 2px solid white;
        height: 40px;
        margin: 0 auto 1.5em;
        position: relative;
        transition: all 300ms ease !important;
        visibility: hidden;
        width: 40px; }
        .woo-category-slider-wrapper .category-slide .slide-content .hover-arrow svg {
          position: absolute;
          left: 50%;
          top: 50%;
          -webkit-transform: translate(-50%, -50%);
          -moz-transform: translate(-50%, -50%);
          -ms-transform: translate(-50%, -50%);
          -o-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%); }
        .woo-category-slider-wrapper .category-slide .slide-content .hover-arrow .cls-1 {
          fill: white; }
      .woo-category-slider-wrapper .category-slide .slide-content .slide-title {
        color: white;
        margin-bottom: 0;
        text-transform: uppercase;
        font-size: 1.25em; }
    .woo-category-slider-wrapper .category-slide .coming-soon {
      background-color: rgba(34, 34, 34, 0.5);
      height: 100%;
      position: absolute;
      width: 100%; }
      .woo-category-slider-wrapper .category-slide .coming-soon .coming-soon-content {
        bottom: 3.75em;
        color: white;
        left: 0.75em;
        text-transform: uppercase;
        position: absolute;
        right: 0.75em;
        text-align: center;
        font-size: 1em;
        font-family: "Lato", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
        font-weight: 100; }
  .woo-category-slider-wrapper .slick-slide {
    margin: 0 0.75em; }
  .woo-category-slider-wrapper .slick-list {
    margin: -0.75em; }
  .woo-category-slider-wrapper .slick-dots {
    bottom: -3em; }
    .woo-category-slider-wrapper .slick-dots li {
      margin: 0; }
    .woo-category-slider-wrapper .slick-dots button:before {
      display: none; }
    .woo-category-slider-wrapper .slick-dots button {
      background: #d4d4d4;
      border-radius: 50%;
      height: 5px;
      width: 5px; }
    .woo-category-slider-wrapper .slick-dots .slick-active button {
      background: #c9282d; }

.woocommerce .site-inner {
  margin-top: 4.5em; }

.woocommerce li:before {
  display: none; }

.woocommerce.archive .headline-title {
  font-size: 2.75em; }

.woocommerce.archive .category-intro {
  margin-bottom: 3em; }

.woocommerce.archive .products {
  margin-bottom: 3em; }

.woocommerce.archive .product-title {
  font-family: "Lato", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
  font-size: 1.875em;
  line-height: 1;
  margin-bottom: 0; }

.woocommerce.archive .woocommerce-Price-amount {
  color: #c9282d;
  font-family: "Lato", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
  font-size: 2.5em;
  font-weight: 100;
  line-height: 1; }

.woocommerce.archive .the-price {
  margin-bottom: 0.75em;
  color: #a7a7a7 !important; }
  .woocommerce.archive .the-price ins {
    text-decoration: none; }
  .woocommerce.archive .the-price del .woocommerce-Price-amount {
    color: #a7a7a7;
    text-decoration-color: #a7a7a7; }

.woocommerce.archive .product-excerpt p {
  margin-bottom: 0.75em; }

.woocommerce.archive .product-link {
  margin-top: 0.75em; }

.woocommerce.archive .proven-product {
  position: relative; }
  .woocommerce.archive .proven-product .product-image {
    display: block;
    min-height: 280px;
    background-repeat: no-repeat;
    background-size: cover; }
  .woocommerce.archive .proven-product .product-details {
    display: inline-block;
    margin: 1.5em 0 3em; }
  @media screen and (min-width: 600px) {
    .woocommerce.archive .proven-product .product-image,
    .woocommerce.archive .proven-product .product-details {
      width: 50%; }
    .woocommerce.archive .proven-product .product-image {
      position: absolute;
      display: block;
      height: 100%; }
    .woocommerce.archive .proven-product .product-details {
      margin-top: 0;
      margin-bottom: 0;
      padding: 3em; }
    .woocommerce.archive .proven-product:nth-child(even) .product-image {
      left: 50%; }
      .woocommerce.archive .proven-product:nth-child(even) .product-image .onsale {
        left: auto !important;
        right: 0 !important; }
    .woocommerce.archive .proven-product:nth-child(even) .product-details {
      padding-left: 0; }
    .woocommerce.archive .proven-product:nth-child(odd) .product-image {
      right: 50%; }
    .woocommerce.archive .proven-product:nth-child(odd) .product-details {
      padding-right: 0;
      margin-left: 50%; } }

.woocommerce.archive .study-content {
  width: 100%;
  height: 100%;
  top: 0 !important;
  bottom: 0 !important;
  left: 0 !important;
  right: 0 !important; }
  .woocommerce.archive .study-content .hover-arrow {
    position: absolute !important;
    top: 50%;
    left: 50%;
    -webkit-transform: translate(-50%, -50%);
    -moz-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
    -o-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%); }

.woocommerce.archive .archive-item-footer {
  display: inline-block;
  margin-top: 0.375em; }

.woocommerce.archive .archive-item-title {
  display: inline-block;
  float: left;
  text-transform: uppercase; }

.woocommerce.archive .archive-item-price {
  display: block;
  position: absolute;
  bottom: 0;
  right: 0;
  background-color: #c9282d;
  color: white;
  padding: 0.25rem; }

.woocommerce-checkout li:before {
  display: none !important; }

.woocommerce-checkout .content {
  margin: 3.75em 0; }

.woocommerce-checkout #order_review_heading {
  margin-top: 0.75em; }

.woocommerce-checkout .woocommerce-shipping-fields h3#ship-to-different-address {
  padding-left: 30px;
  position: relative; }
  .woocommerce-checkout .woocommerce-shipping-fields h3#ship-to-different-address label {
    margin-bottom: 0px; }
  .woocommerce-checkout .woocommerce-shipping-fields h3#ship-to-different-address #ship-to-different-address-checkbox {
    position: absolute;
    top: 50%;
    -webkit-transform: translateY(-50%);
    -moz-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    -o-transform: translateY(-50%);
    transform: translateY(-50%);
    left: 0px; }

.woocommerce span.onsale {
  background-color: #c9282d !important;
  top: 0 !important;
  left: 0 !important;
  border-radius: 0 !important;
  padding: 0px !important; }

.single-product div.summary {
  margin-bottom: 4.5em; }

@media screen and (min-width: 769px) {
  .single-product .images {
    width: 40% !important; } }

@media screen and (min-width: 769px) {
  .single-product .entry-summary {
    width: 60% !important;
    padding-left: 1.5em; } }

.single-product .product_title.entry-title {
  font-family: "Lato", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
  font-size: 2.25em;
  margin-bottom: 0; }

.single-product div.product p.price,
.single-product div.product span.price {
  color: #a7a7a7 !important; }

.single-product .price {
  line-height: 1;
  margin-bottom: 0.75em; }
  .single-product .price .woocommerce-Price-amount {
    font-family: "Lato", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
    font-weight: 100;
    font-size: 2em;
    color: #c9282d; }
  .single-product .price ins {
    text-decoration: none; }
  .single-product .price del .woocommerce-Price-amount {
    color: #a7a7a7;
    text-decoration-color: #a7a7a7; }

.single-product .description {
  margin-bottom: 0.75em; }
  .single-product .description p {
    margin-bottom: 0.75em; }

.single-product form.cart {
  margin-bottom: 0 !important; }

.single-product .single_add_to_cart_button {
  float: right !important; }
  @media (max-width: 500px) {
    .single-product .single_add_to_cart_button {
      margin-top: 0.75em !important; } }
  @media (min-width: 800px) and (max-width: 840px) {
    .single-product .single_add_to_cart_button {
      margin-top: 0.75em !important; } }

.single-product .quantity {
  background-color: #eeeeee !important;
  position: relative !important;
  width: 230px !important; }
  @media (max-width: 500px) {
    .single-product .quantity {
      width: 100% !important; } }
  @media (min-width: 800px) and (max-width: 840px) {
    .single-product .quantity {
      width: 100% !important; } }
  .single-product .quantity input[type=number]::-webkit-inner-spin-button,
  .single-product .quantity input[type=number]::-webkit-outer-spin-button {
    -webkit-appearance: none; }
  .single-product .quantity:before {
    content: 'QUANTITY:';
    position: absolute;
    left: 10px;
    top: 50%;
    -webkit-transform: translateY(-50%);
    -moz-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    -o-transform: translateY(-50%);
    transform: translateY(-50%); }

.single-product .quantity input[type="number"] {
  height: 42px !important;
  background-color: #eeeeee !important;
  border: none !important;
  box-shadow: none !important;
  margin-left: 95px !important; }

.single-product .minus,
.single-product .plus {
  background-color: #dddddd !important;
  border-radius: 0px !important;
  border: none !important;
  color: white !important;
  font-size: 24px !important;
  height: 42px !important;
  width: 42px !important;
  transition: background-color 300ms ease; }
  .single-product .minus:hover,
  .single-product .plus:hover {
    background-color: #aaaaaa !important; }

.single-product .minus {
  right: 44px !important; }

.single-product .woocommerce-tabs {
  margin-top: 0.75em; }

.single-product .speakers-wrap {
  margin-top: 3em;
  overflow: hidden; }
  .single-product .speakers-wrap .speakers-1 .speaker {
    width: 100%;
    margin-right: 0; }
    .single-product .speakers-wrap .speakers-1 .speaker .headshot {
      margin-right: 2em;
      float: left; }
  .single-product .speakers-wrap .speaker {
    margin-bottom: 30px; }
    @media screen and (min-width: 600px) {
      .single-product .speakers-wrap .speaker {
        float: left;
        display: block;
        margin-right: 2.35765%;
        width: 48.82117%; }
        .single-product .speakers-wrap .speaker:last-child {
          margin-right: 0; }
        .single-product .speakers-wrap .speaker:nth-child(2n) {
          margin-right: 0; }
        .single-product .speakers-wrap .speaker:nth-child(2n+1) {
          clear: left; } }
    .single-product .speakers-wrap .speaker .headshot {
      margin-bottom: 1em; }
    .single-product .speakers-wrap .speaker h5 {
      margin-bottom: 0.2em; }
    .single-product .speakers-wrap .speaker .speaker-title {
      font-weight: bold;
      margin-bottom: 1em; }
    .single-product .speakers-wrap .speaker .speaker-des {
      font-size: 0.875em; }

.woocommerce div.product div.images .woocommerce-product-gallery__wrapper {
  margin: 0px; }

.woocommerce-cart .cart-collaterals .cart_totals, .woocommerce-cart .woocommerce-page .cart-collaterals .cart_totals {
  width: 100% !important; }

@media screen and (min-width: 600px) {
  .woocommerce-cart .coupon #coupon_code {
    min-width: 200px; } }

@media screen and (min-width: 800px) {
  .woocommerce-cart .coupon #coupon_code {
    padding: 7.5px; } }

.woocommerce-cart .content {
  margin: 3.75em 0; }

.woocommerce-cart .cart-collaterals {
  margin-top: 1.5em; }

.woocommerce-account .entry-header {
  display: none; }

.woocommerce-account .content {
  margin-bottom: 3em; }

.woocommerce-page.woocommerce-account .woocommerce form.login {
  border: none !important;
  padding: 0px !important;
  max-width: 320px; }

.woocommerce .discount-share {
  background-color: #c9282d;
  color: white;
  display: block;
  width: 100%;
  padding-top: 1.5em;
  padding-bottom: 1.5em; }
  @media screen and (min-width: 800px) {
    .woocommerce .discount-share {
      padding: 0px; } }
  .woocommerce .discount-share .wrap {
    position: relative; }
  @media screen and (min-width: 800px) {
    .woocommerce .discount-share .glm-left-content,
    .woocommerce .discount-share .glm-right-content {
      float: left;
      width: 50%; } }
  .woocommerce .discount-share .glm-left-content {
    margin-bottom: 1.5em; }
    @media screen and (min-width: 800px) {
      .woocommerce .discount-share .glm-left-content {
        padding-right: 1.5em;
        margin-top: 1.5em; } }
    .woocommerce .discount-share .glm-left-content h2 {
      font-weight: 500;
      margin-bottom: 0px; }
    .woocommerce .discount-share .glm-left-content p {
      margin-bottom: 0px;
      opacity: 0.5;
      text-transform: capitalize; }
  .woocommerce .discount-share .glm-right-content #glm-email-coupon-input {
    background-color: #c9282d;
    border-color: white;
    border-radius: 0px;
    border-width: 2px;
    color: white;
    display: inline-block;
    float: left;
    font-weight: 100;
    height: 50px;
    margin: 0px;
    width: 100%; }
    .woocommerce .discount-share .glm-right-content #glm-email-coupon-input::-webkit-input-placeholder {
      color: white;
      text-transform: capitalize; }
    .woocommerce .discount-share .glm-right-content #glm-email-coupon-input::-moz-placeholder {
      color: white;
      text-transform: capitalize; }
    .woocommerce .discount-share .glm-right-content #glm-email-coupon-input:-moz-placeholder {
      color: white;
      text-transform: capitalize; }
    .woocommerce .discount-share .glm-right-content #glm-email-coupon-input:-ms-input-placeholder {
      color: white;
      text-transform: capitalize; }
  .woocommerce .discount-share .glm-right-content #glm-email-coupon-submit {
    background-color: white;
    color: #222;
    display: inline-block;
    float: left;
    margin: 0px;
    padding: 0px;
    width: 100%;
    height: 50px; }
  @media screen and (min-width: 600px) {
    .woocommerce .discount-share .glm-right-content #glm-email-coupon-input {
      border-right: 0px;
      width: 70%; }
    .woocommerce .discount-share .glm-right-content #glm-email-coupon-submit {
      width: 30%; } }
  @media screen and (min-width: 800px) {
    .woocommerce .discount-share .glm-right-content {
      position: absolute;
      right: 0px;
      top: 50%;
      -webkit-transform: translateY(-50%);
      -moz-transform: translateY(-50%);
      -ms-transform: translateY(-50%);
      -o-transform: translateY(-50%);
      transform: translateY(-50%); } }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGUuY3NzIiwic291cmNlcyI6WyJzdHlsZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL25vZGUtYm91cmJvbi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL19ib3VyYm9uLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbm9kZS1ib3VyYm9uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvc2V0dGluZ3MvX3ByZWZpeGVyLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbm9kZS1ib3VyYm9uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvc2V0dGluZ3MvX3B4LXRvLWVtLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbm9kZS1ib3VyYm9uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvc2V0dGluZ3MvX2Fzc2V0LXBpcGVsaW5lLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbm9kZS1ib3VyYm9uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19hc3NpZ24taW5wdXRzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbm9kZS1ib3VyYm9uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19jb250YWlucy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL25vZGUtYm91cmJvbi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fY29udGFpbnMtZmFsc3kuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ub2RlLWJvdXJib24vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX2lzLWxlbmd0aC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL25vZGUtYm91cmJvbi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9faXMtbGlnaHQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ub2RlLWJvdXJib24vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX2lzLW51bWJlci5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL25vZGUtYm91cmJvbi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9faXMtc2l6ZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL25vZGUtYm91cmJvbi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fcHgtdG8tZW0uc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ub2RlLWJvdXJib24vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX3B4LXRvLXJlbS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL25vZGUtYm91cmJvbi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fc2hhZGUuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ub2RlLWJvdXJib24vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX3N0cmlwLXVuaXRzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbm9kZS1ib3VyYm9uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL190aW50LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbm9kZS1ib3VyYm9uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL190cmFuc2l0aW9uLXByb3BlcnR5LW5hbWUuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ub2RlLWJvdXJib24vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX3VucGFjay5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL25vZGUtYm91cmJvbi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fbW9kdWxhci1zY2FsZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL25vZGUtYm91cmJvbi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX2NvbnZlcnQtdW5pdHMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ub2RlLWJvdXJib24vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19kaXJlY3Rpb25hbC12YWx1ZXMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ub2RlLWJvdXJib24vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19mb250LXNvdXJjZS1kZWNsYXJhdGlvbi5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL25vZGUtYm91cmJvbi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX2dyYWRpZW50LXBvc2l0aW9ucy1wYXJzZXIuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ub2RlLWJvdXJib24vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19saW5lYXItYW5nbGUtcGFyc2VyLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbm9kZS1ib3VyYm9uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fbGluZWFyLWdyYWRpZW50LXBhcnNlci5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL25vZGUtYm91cmJvbi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX2xpbmVhci1wb3NpdGlvbnMtcGFyc2VyLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbm9kZS1ib3VyYm9uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fbGluZWFyLXNpZGUtY29ybmVyLXBhcnNlci5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL25vZGUtYm91cmJvbi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX3JhZGlhbC1hcmctcGFyc2VyLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbm9kZS1ib3VyYm9uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fcmFkaWFsLXBvc2l0aW9ucy1wYXJzZXIuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ub2RlLWJvdXJib24vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19yYWRpYWwtZ3JhZGllbnQtcGFyc2VyLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbm9kZS1ib3VyYm9uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fcmVuZGVyLWdyYWRpZW50cy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL25vZGUtYm91cmJvbi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX3NoYXBlLXNpemUtc3RyaXBwZXIuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ub2RlLWJvdXJib24vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19zdHItdG8tbnVtLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbm9kZS1ib3VyYm9uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fYW5pbWF0aW9uLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbm9kZS1ib3VyYm9uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fYXBwZWFyYW5jZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL25vZGUtYm91cmJvbi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2JhY2tmYWNlLXZpc2liaWxpdHkuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ub2RlLWJvdXJib24vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19iYWNrZ3JvdW5kLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbm9kZS1ib3VyYm9uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fYmFja2dyb3VuZC1pbWFnZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL25vZGUtYm91cmJvbi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2JvcmRlci1pbWFnZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL25vZGUtYm91cmJvbi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2NhbGMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ub2RlLWJvdXJib24vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19jb2x1bW5zLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbm9kZS1ib3VyYm9uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fZmlsdGVyLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbm9kZS1ib3VyYm9uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fZmxleC1ib3guc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ub2RlLWJvdXJib24vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19mb250LWZhY2Uuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ub2RlLWJvdXJib24vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19mb250LWZlYXR1cmUtc2V0dGluZ3Muc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ub2RlLWJvdXJib24vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19oaWRwaS1tZWRpYS1xdWVyeS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL25vZGUtYm91cmJvbi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2h5cGhlbnMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ub2RlLWJvdXJib24vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19pbWFnZS1yZW5kZXJpbmcuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ub2RlLWJvdXJib24vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19rZXlmcmFtZXMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ub2RlLWJvdXJib24vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19saW5lYXItZ3JhZGllbnQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ub2RlLWJvdXJib24vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19wZXJzcGVjdGl2ZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL25vZGUtYm91cmJvbi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX3BsYWNlaG9sZGVyLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbm9kZS1ib3VyYm9uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fcmFkaWFsLWdyYWRpZW50LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbm9kZS1ib3VyYm9uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fc2VsZWN0aW9uLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbm9kZS1ib3VyYm9uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fdGV4dC1kZWNvcmF0aW9uLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbm9kZS1ib3VyYm9uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fdHJhbnNmb3JtLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbm9kZS1ib3VyYm9uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fdHJhbnNpdGlvbi5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL25vZGUtYm91cmJvbi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX3VzZXItc2VsZWN0LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbm9kZS1ib3VyYm9uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19ib3JkZXItY29sb3Iuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ub2RlLWJvdXJib24vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX2JvcmRlci1yYWRpdXMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ub2RlLWJvdXJib24vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX2JvcmRlci1zdHlsZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL25vZGUtYm91cmJvbi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fYm9yZGVyLXdpZHRoLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbm9kZS1ib3VyYm9uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19idXR0b25zLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbm9kZS1ib3VyYm9uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19jbGVhcmZpeC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL25vZGUtYm91cmJvbi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fZWxsaXBzaXMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ub2RlLWJvdXJib24vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX2ZvbnQtc3RhY2tzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbm9kZS1ib3VyYm9uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19oaWRlLXRleHQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ub2RlLWJvdXJib24vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX21hcmdpbi5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL25vZGUtYm91cmJvbi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fcGFkZGluZy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL25vZGUtYm91cmJvbi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fcG9zaXRpb24uc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ub2RlLWJvdXJib24vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX3ByZWZpeGVyLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbm9kZS1ib3VyYm9uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19yZXRpbmEtaW1hZ2Uuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ub2RlLWJvdXJib24vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX3NpemUuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ub2RlLWJvdXJib24vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX3RleHQtaW5wdXRzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbm9kZS1ib3VyYm9uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL190aW1pbmctZnVuY3Rpb25zLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbm9kZS1ib3VyYm9uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL190cmlhbmdsZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL25vZGUtYm91cmJvbi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fd29yZC13cmFwLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbm9kZS1ib3VyYm9uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvX2JvdXJib24tZGVwcmVjYXRlZC11cGNvbWluZy5zY3NzIiwiYmFzZS9fYmFzZS5zY3NzIiwiYmFzZS9fdmFyaWFibGVzLnNjc3MiLCJiYXNlL19ncmlkLXNldHRpbmdzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbm9kZS1uZWF0L25vZGVfbW9kdWxlcy9ib3VyYm9uLW5lYXQvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9fbmVhdC1oZWxwZXJzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbm9kZS1uZWF0L25vZGVfbW9kdWxlcy9ib3VyYm9uLW5lYXQvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX3ByaXZhdGUuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ub2RlLW5lYXQvbm9kZV9tb2R1bGVzL2JvdXJib24tbmVhdC9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fbmV3LWJyZWFrcG9pbnQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ub2RlLW5lYXQvbm9kZV9tb2R1bGVzL2JvdXJib24tbmVhdC9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL3NldHRpbmdzL19ncmlkLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbm9kZS1uZWF0L25vZGVfbW9kdWxlcy9ib3VyYm9uLW5lYXQvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9zZXR0aW5ncy9fdmlzdWFsLWdyaWQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ub2RlLW5lYXQvbm9kZV9tb2R1bGVzL2JvdXJib24tbmVhdC9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL3NldHRpbmdzL19kaXNhYmxlLXdhcm5pbmdzLnNjc3MiLCJiYXNlL19idXR0b25zLnNjc3MiLCJiYXNlL19mb3Jtcy5zY3NzIiwiYmFzZS9fbGlzdHMuc2NzcyIsImJhc2UvX3RhYmxlcy5zY3NzIiwiYmFzZS9fdHlwb2dyYXBoeS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL25vZGUtbmVhdC9ub2RlX21vZHVsZXMvYm91cmJvbi1uZWF0L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvX25lYXQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ub2RlLW5lYXQvbm9kZV9tb2R1bGVzL2JvdXJib24tbmVhdC9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2dyaWQvX3ByaXZhdGUuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ub2RlLW5lYXQvbm9kZV9tb2R1bGVzL2JvdXJib24tbmVhdC9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2dyaWQvX2JveC1zaXppbmcuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ub2RlLW5lYXQvbm9kZV9tb2R1bGVzL2JvdXJib24tbmVhdC9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2dyaWQvX29tZWdhLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbm9kZS1uZWF0L25vZGVfbW9kdWxlcy9ib3VyYm9uLW5lYXQvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9ncmlkL19vdXRlci1jb250YWluZXIuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ub2RlLW5lYXQvbm9kZV9tb2R1bGVzL2JvdXJib24tbmVhdC9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2dyaWQvX3NwYW4tY29sdW1ucy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL25vZGUtbmVhdC9ub2RlX21vZHVsZXMvYm91cmJvbi1uZWF0L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZ3JpZC9fcm93LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbm9kZS1uZWF0L25vZGVfbW9kdWxlcy9ib3VyYm9uLW5lYXQvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9ncmlkL19zaGlmdC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL25vZGUtbmVhdC9ub2RlX21vZHVsZXMvYm91cmJvbi1uZWF0L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZ3JpZC9fcGFkLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbm9kZS1uZWF0L25vZGVfbW9kdWxlcy9ib3VyYm9uLW5lYXQvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9ncmlkL19maWxsLXBhcmVudC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL25vZGUtbmVhdC9ub2RlX21vZHVsZXMvYm91cmJvbi1uZWF0L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZ3JpZC9fbWVkaWEuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ub2RlLW5lYXQvbm9kZV9tb2R1bGVzL2JvdXJib24tbmVhdC9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2dyaWQvX3RvLWRlcHJlY2F0ZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL25vZGUtbmVhdC9ub2RlX21vZHVsZXMvYm91cmJvbi1uZWF0L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZ3JpZC9fdmlzdWFsLWdyaWQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ub2RlLW5lYXQvbm9kZV9tb2R1bGVzL2JvdXJib24tbmVhdC9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2dyaWQvX2Rpc3BsYXktY29udGV4dC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL25vZGUtbmVhdC9ub2RlX21vZHVsZXMvYm91cmJvbi1uZWF0L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZ3JpZC9fZGlyZWN0aW9uLWNvbnRleHQuc2NzcyIsIl9zY2FmZm9sZC5zY3NzIiwiX2RlZmF1bHRzLnNjc3MiLCJjb21wb25lbnRzL19zaXRlLWhlYWRlci5zY3NzIiwiY29tcG9uZW50cy9fbW9kYWFsLnNjc3MiLCJjb21wb25lbnRzL19uYXYtYWNjb3VudC5zY3NzIiwiY29tcG9uZW50cy9fbmF2LXBvcnRhbC5zY3NzIiwiY29tcG9uZW50cy9fbmF2LnNjc3MiLCJjb21wb25lbnRzL19wYWdlLWJhbm5lci5zY3NzIiwiY29tcG9uZW50cy9fcGFnZS1zZWN0aW9uLnNjc3MiLCJjb21wb25lbnRzL192aWRlby5zY3NzIiwiY29tcG9uZW50cy9fZXZlbnRzLnNjc3MiLCJjb21wb25lbnRzL190cmlhbC5zY3NzIiwiY29tcG9uZW50cy9fZmVhdHVyZXMuc2NzcyIsImNvbXBvbmVudHMvX2NvbnRlbnQuc2NzcyIsImNvbXBvbmVudHMvX3NpZGViYXIuc2NzcyIsImNvbXBvbmVudHMvX2Jsb2NrcXVvdGUuc2NzcyIsImNvbXBvbmVudHMvX2NvbW1lbnRzLnNjc3MiLCJjb21wb25lbnRzL19wYWdpbmF0aW9uLnNjc3MiLCJjb21wb25lbnRzL19jYWxsLXRvLWFjdGlvbnMuc2NzcyIsImNvbXBvbmVudHMvX3NpdGUtZm9vdGVyLnNjc3MiLCJjb21wb25lbnRzL19vdmVybGF5LnNjc3MiLCJjb21wb25lbnRzL190aGVtZS1teS1sb2dpbi5zY3NzIiwiY29tcG9uZW50cy9fcG1wLnNjc3MiLCJjb21wb25lbnRzL19tb2JpbGUtbWVudS5zY3NzIiwiY29tcG9uZW50cy9fc3RvcmUtcG9wLXVwLnNjc3MiLCJzZWN0aW9ucy9fc2VjdGlvbnMuc2NzcyIsInNlY3Rpb25zL19maWZ0eS1maWZ0eS5zY3NzIiwic2VjdGlvbnMvX3NpeHR5LWZvdXJ0eS5zY3NzIiwic2VjdGlvbnMvX2FjY29yZGlvbi5zY3NzIiwic2VjdGlvbnMvX2NvbnRlbnQuc2NzcyIsInNlY3Rpb25zL190aWxlcy5zY3NzIiwic2VjdGlvbnMvX2Jsb2cuc2NzcyIsInNlY3Rpb25zL19pY29uLWJsdXJicy5zY3NzIiwic2VjdGlvbnMvX3ByaWNpbmctc2VjdGlvbi5zY3NzIiwic2VjdGlvbnMvX2ZpZnR5LWZvcm0uc2NzcyIsInNlY3Rpb25zL19qdWljZXIuc2NzcyIsInBhZ2VzL19ob21lLnNjc3MiLCJwYWdlcy9fYmxvZy5zY3NzIiwicGFnZXMvX2FyY2hpdmUtc3R1ZHkuc2NzcyIsInBhZ2VzL19hcmNoaXZlLnNjc3MiLCJwYWdlcy9fY29udGFjdC5zY3NzIiwicGFnZXMvX21lbWJlcnNoaXAuc2NzcyIsInBhZ2VzL190ZWFtLnNjc3MiLCJwYWdlcy9fc3R1ZHkuc2NzcyIsInBhZ2VzL19wb3J0YWwtcmVzb3VyY2VzLnNjc3MiLCJwYWdlcy9fY2h1cmNoLWRhc2hib2FyZC5zY3NzIiwicGFnZXMvX3ZpZGVvLXJlc291cmNlLnNjc3MiLCJwYWdlcy9fZ3JvdXAtY29ubmVjdC5zY3NzIiwid29vL193b28tYnV0dG9ucy5zY3NzIiwid29vL193b28tY2F0ZWdvcnktc2xpZGVyLnNjc3MiLCJ3b28vX3dvby1zaG9wLnNjc3MiLCJ3b28vX3dvby1jYXRlZ29yeS5zY3NzIiwid29vL193b28tY2hlY2tvdXQuc2NzcyIsIndvby9fd29vLXNpbmdsZS5zY3NzIiwid29vL193b28tY2FydC5zY3NzIiwid29vL193b28tYWNjb3VudC5zY3NzIiwid29vL193b28tZ2xtLXNoYXJlLWNvdXBvbi5zY3NzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qXG5cdFRoZW1lIE5hbWU6IFByb3ZlbiBNZW5cblx0RGVzY3JpcHRpb246IENoaWxkIHRoZW1lIG9mIEdlbmVzaXMsIGJ5IDxhIGhyZWY9XCJodHRwOi8vY2dkLmlvXCI+Q2xpZiBHcmlmZmluIERldmVsb3BtZW50IEluYzwvYT4uXG5cdEF1dGhvcjogQ2xpZiBHcmlmZmluIERldmVsb3BtZW50IEluYy5cblx0QXV0aG9yIFVSSTogaHR0cDovL2NnZC5pb1xuXG5cdFRlbXBsYXRlOiBnZW5lc2lzXG4qL1xuQGltcG9ydCBcImFzc2V0cy9jb21wb25lbnRzL25vcm1hbGl6ZS5jc3Mvbm9ybWFsaXplLmNzc1wiO1xuXG5AaW1wb3J0IFwiYm91cmJvblwiO1xuQGltcG9ydCBcImJhc2UvYmFzZVwiO1xuQGltcG9ydCBcIm5lYXRcIjtcblxuQGltcG9ydCBcInNjYWZmb2xkXCI7XG5AaW1wb3J0IFwiZGVmYXVsdHNcIjtcblxuLyoqXG4gKiBDb21wb25lbnRzXG4gKi9cblxuQGltcG9ydCBcImNvbXBvbmVudHMvc2l0ZS1oZWFkZXJcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL21vZGFhbFwiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvbmF2LWFjY291bnRcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL25hdi1wb3J0YWxcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL25hdlwiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvcGFnZS1iYW5uZXJcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL3BhZ2Utc2VjdGlvblwiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvdmlkZW9cIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL2V2ZW50c1wiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvdHJpYWxcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL2ZlYXR1cmVzXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9jb250ZW50XCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9zaWRlYmFyXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9ibG9ja3F1b3RlXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9jb21tZW50c1wiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvcGFnaW5hdGlvblwiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvY2FsbC10by1hY3Rpb25zXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9zaXRlLWZvb3RlclwiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvb3ZlcmxheVwiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvdGhlbWUtbXktbG9naW5cIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL3BtcFwiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvbW9iaWxlLW1lbnVcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL3N0b3JlLXBvcC11cFwiO1xuXG4vKipcbiAqIFNlY3Rpb25zXG4gKi9cbkBpbXBvcnQgXCJzZWN0aW9ucy9zZWN0aW9uc1wiO1xuXG4vKipcbiAqIFBhZ2VzXG4gKi9cblxuQGltcG9ydCBcInBhZ2VzL2hvbWVcIjtcbkBpbXBvcnQgXCJwYWdlcy9ibG9nXCI7XG5AaW1wb3J0IFwicGFnZXMvYXJjaGl2ZS1zdHVkeVwiO1xuQGltcG9ydCBcInBhZ2VzL2FyY2hpdmVcIjtcbkBpbXBvcnQgXCJwYWdlcy9jb250YWN0XCI7XG5AaW1wb3J0IFwicGFnZXMvbWVtYmVyc2hpcFwiO1xuQGltcG9ydCBcInBhZ2VzL3RlYW1cIjtcbkBpbXBvcnQgXCJwYWdlcy9zdHVkeVwiO1xuQGltcG9ydCBcInBhZ2VzL3BvcnRhbC1yZXNvdXJjZXNcIjtcbkBpbXBvcnQgXCJwYWdlcy9jaHVyY2gtZGFzaGJvYXJkXCI7XG5AaW1wb3J0IFwicGFnZXMvdmlkZW8tcmVzb3VyY2VcIjtcbkBpbXBvcnQgXCJwYWdlcy9ncm91cC1jb25uZWN0XCI7XG5cbi8qKlxuICogV09PIFN0dWZmXG4gKi9cblxuQGltcG9ydCBcIndvby93b28tYnV0dG9uc1wiO1xuQGltcG9ydCBcIndvby93b28tY2F0ZWdvcnktc2xpZGVyXCI7XG5AaW1wb3J0IFwid29vL3dvby1zaG9wXCI7XG5AaW1wb3J0IFwid29vL3dvby1jYXRlZ29yeVwiO1xuQGltcG9ydCBcIndvby93b28tY2hlY2tvdXRcIjtcbkBpbXBvcnQgXCJ3b28vd29vLXNpbmdsZVwiO1xuQGltcG9ydCBcIndvby93b28tY2FydFwiO1xuQGltcG9ydCBcIndvby93b28tYWNjb3VudFwiO1xuQGltcG9ydCBcIndvby93b28tZ2xtLXNoYXJlLWNvdXBvblwiO1xuIiwiLy8gQm91cmJvbiA0LjIuM1xuLy8gaHR0cDovL2JvdXJib24uaW9cbi8vIENvcHlyaWdodCAyMDExLTIwMTUgdGhvdWdodGJvdCwgaW5jLlxuLy8gTUlUIExpY2Vuc2VcblxuQGltcG9ydCBcInNldHRpbmdzL3ByZWZpeGVyXCI7XG5AaW1wb3J0IFwic2V0dGluZ3MvcHgtdG8tZW1cIjtcbkBpbXBvcnQgXCJzZXR0aW5ncy9hc3NldC1waXBlbGluZVwiO1xuXG5AaW1wb3J0IFwiZnVuY3Rpb25zL2Fzc2lnbi1pbnB1dHNcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvY29udGFpbnNcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvY29udGFpbnMtZmFsc3lcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvaXMtbGVuZ3RoXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL2lzLWxpZ2h0XCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL2lzLW51bWJlclwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9pcy1zaXplXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL3B4LXRvLWVtXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL3B4LXRvLXJlbVwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9zaGFkZVwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9zdHJpcC11bml0c1wiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy90aW50XCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL3RyYW5zaXRpb24tcHJvcGVydHktbmFtZVwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy91bnBhY2tcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvbW9kdWxhci1zY2FsZVwiO1xuXG5AaW1wb3J0IFwiaGVscGVycy9jb252ZXJ0LXVuaXRzXCI7XG5AaW1wb3J0IFwiaGVscGVycy9kaXJlY3Rpb25hbC12YWx1ZXNcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL2ZvbnQtc291cmNlLWRlY2xhcmF0aW9uXCI7XG5AaW1wb3J0IFwiaGVscGVycy9ncmFkaWVudC1wb3NpdGlvbnMtcGFyc2VyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9saW5lYXItYW5nbGUtcGFyc2VyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9saW5lYXItZ3JhZGllbnQtcGFyc2VyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9saW5lYXItcG9zaXRpb25zLXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvbGluZWFyLXNpZGUtY29ybmVyLXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvcmFkaWFsLWFyZy1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL3JhZGlhbC1wb3NpdGlvbnMtcGFyc2VyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9yYWRpYWwtZ3JhZGllbnQtcGFyc2VyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9yZW5kZXItZ3JhZGllbnRzXCI7XG5AaW1wb3J0IFwiaGVscGVycy9zaGFwZS1zaXplLXN0cmlwcGVyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9zdHItdG8tbnVtXCI7XG5cbkBpbXBvcnQgXCJjc3MzL2FuaW1hdGlvblwiO1xuQGltcG9ydCBcImNzczMvYXBwZWFyYW5jZVwiO1xuQGltcG9ydCBcImNzczMvYmFja2ZhY2UtdmlzaWJpbGl0eVwiO1xuQGltcG9ydCBcImNzczMvYmFja2dyb3VuZFwiO1xuQGltcG9ydCBcImNzczMvYmFja2dyb3VuZC1pbWFnZVwiO1xuQGltcG9ydCBcImNzczMvYm9yZGVyLWltYWdlXCI7XG5AaW1wb3J0IFwiY3NzMy9jYWxjXCI7XG5AaW1wb3J0IFwiY3NzMy9jb2x1bW5zXCI7XG5AaW1wb3J0IFwiY3NzMy9maWx0ZXJcIjtcbkBpbXBvcnQgXCJjc3MzL2ZsZXgtYm94XCI7XG5AaW1wb3J0IFwiY3NzMy9mb250LWZhY2VcIjtcbkBpbXBvcnQgXCJjc3MzL2ZvbnQtZmVhdHVyZS1zZXR0aW5nc1wiO1xuQGltcG9ydCBcImNzczMvaGlkcGktbWVkaWEtcXVlcnlcIjtcbkBpbXBvcnQgXCJjc3MzL2h5cGhlbnNcIjtcbkBpbXBvcnQgXCJjc3MzL2ltYWdlLXJlbmRlcmluZ1wiO1xuQGltcG9ydCBcImNzczMva2V5ZnJhbWVzXCI7XG5AaW1wb3J0IFwiY3NzMy9saW5lYXItZ3JhZGllbnRcIjtcbkBpbXBvcnQgXCJjc3MzL3BlcnNwZWN0aXZlXCI7XG5AaW1wb3J0IFwiY3NzMy9wbGFjZWhvbGRlclwiO1xuQGltcG9ydCBcImNzczMvcmFkaWFsLWdyYWRpZW50XCI7XG5AaW1wb3J0IFwiY3NzMy9zZWxlY3Rpb25cIjtcbkBpbXBvcnQgXCJjc3MzL3RleHQtZGVjb3JhdGlvblwiO1xuQGltcG9ydCBcImNzczMvdHJhbnNmb3JtXCI7XG5AaW1wb3J0IFwiY3NzMy90cmFuc2l0aW9uXCI7XG5AaW1wb3J0IFwiY3NzMy91c2VyLXNlbGVjdFwiO1xuXG5AaW1wb3J0IFwiYWRkb25zL2JvcmRlci1jb2xvclwiO1xuQGltcG9ydCBcImFkZG9ucy9ib3JkZXItcmFkaXVzXCI7XG5AaW1wb3J0IFwiYWRkb25zL2JvcmRlci1zdHlsZVwiO1xuQGltcG9ydCBcImFkZG9ucy9ib3JkZXItd2lkdGhcIjtcbkBpbXBvcnQgXCJhZGRvbnMvYnV0dG9uc1wiO1xuQGltcG9ydCBcImFkZG9ucy9jbGVhcmZpeFwiO1xuQGltcG9ydCBcImFkZG9ucy9lbGxpcHNpc1wiO1xuQGltcG9ydCBcImFkZG9ucy9mb250LXN0YWNrc1wiO1xuQGltcG9ydCBcImFkZG9ucy9oaWRlLXRleHRcIjtcbkBpbXBvcnQgXCJhZGRvbnMvbWFyZ2luXCI7XG5AaW1wb3J0IFwiYWRkb25zL3BhZGRpbmdcIjtcbkBpbXBvcnQgXCJhZGRvbnMvcG9zaXRpb25cIjtcbkBpbXBvcnQgXCJhZGRvbnMvcHJlZml4ZXJcIjtcbkBpbXBvcnQgXCJhZGRvbnMvcmV0aW5hLWltYWdlXCI7XG5AaW1wb3J0IFwiYWRkb25zL3NpemVcIjtcbkBpbXBvcnQgXCJhZGRvbnMvdGV4dC1pbnB1dHNcIjtcbkBpbXBvcnQgXCJhZGRvbnMvdGltaW5nLWZ1bmN0aW9uc1wiO1xuQGltcG9ydCBcImFkZG9ucy90cmlhbmdsZVwiO1xuQGltcG9ydCBcImFkZG9ucy93b3JkLXdyYXBcIjtcblxuQGltcG9ydCBcImJvdXJib24tZGVwcmVjYXRlZC11cGNvbWluZ1wiO1xuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gR2xvYmFsIHZhcmlhYmxlcyB0byBlbmFibGUgb3IgZGlzYWJsZSB2ZW5kb3IgcHJlZml4ZXNcblxuJHByZWZpeC1mb3Itd2Via2l0OiAgICB0cnVlICFkZWZhdWx0O1xuJHByZWZpeC1mb3ItbW96aWxsYTogICB0cnVlICFkZWZhdWx0O1xuJHByZWZpeC1mb3ItbWljcm9zb2Z0OiB0cnVlICFkZWZhdWx0O1xuJHByZWZpeC1mb3Itb3BlcmE6ICAgICB0cnVlICFkZWZhdWx0O1xuJHByZWZpeC1mb3Itc3BlYzogICAgICB0cnVlICFkZWZhdWx0O1xuIiwiJGVtLWJhc2U6IDE2cHggIWRlZmF1bHQ7XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBBIGdsb2JhbCBzZXR0aW5nIHRvIGVuYWJsZSBvciBkaXNhYmxlIHRoZSBgJGFzc2V0LXBpcGVsaW5lYCB2YXJpYWJsZSBmb3IgYWxsIGZ1bmN0aW9ucyB0aGF0IGFjY2VwdCBpdC5cbi8vL1xuLy8vIEB0eXBlIEJvb2xcblxuJGFzc2V0LXBpcGVsaW5lOiBmYWxzZSAhZGVmYXVsdDtcbiIsIkBmdW5jdGlvbiBhc3NpZ24taW5wdXRzKCRpbnB1dHMsICRwc2V1ZG86IG51bGwpIHtcbiAgJGxpc3Q6ICgpO1xuXG4gIEBlYWNoICRpbnB1dCBpbiAkaW5wdXRzIHtcbiAgICAkaW5wdXQ6IHVucXVvdGUoJGlucHV0KTtcbiAgICAkaW5wdXQ6IGlmKCRwc2V1ZG8sICRpbnB1dCArIFwiOlwiICsgJHBzZXVkbywgJGlucHV0KTtcbiAgICAkbGlzdDogYXBwZW5kKCRsaXN0LCAkaW5wdXQsIGNvbW1hKTtcbiAgfVxuXG4gIEByZXR1cm4gJGxpc3Q7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBDaGVja3MgaWYgYSBsaXN0IGNvbnRhaW5zIGEgdmFsdWUocykuXG4vLy9cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJGxpc3Rcbi8vLyAgIFRoZSBsaXN0IHRvIGNoZWNrIGFnYWluc3QuXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICR2YWx1ZXNcbi8vLyAgIEEgc2luZ2xlIHZhbHVlIG9yIGxpc3Qgb2YgdmFsdWVzIHRvIGNoZWNrIGZvci5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgY29udGFpbnMoJGxpc3QsICR2YWx1ZSlcbi8vL1xuLy8vIEByZXR1cm4ge0Jvb2x9XG5cbkBmdW5jdGlvbiBjb250YWlucygkbGlzdCwgJHZhbHVlcy4uLikge1xuICBAZWFjaCAkdmFsdWUgaW4gJHZhbHVlcyB7XG4gICAgQGlmIHR5cGUtb2YoaW5kZXgoJGxpc3QsICR2YWx1ZSkpICE9IFwibnVtYmVyXCIge1xuICAgICAgQHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuIHRydWU7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBDaGVja3MgaWYgYSBsaXN0IGRvZXMgbm90IGNvbnRhaW5zIGEgdmFsdWUuXG4vLy9cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJGxpc3Rcbi8vLyAgIFRoZSBsaXN0IHRvIGNoZWNrIGFnYWluc3QuXG4vLy9cbi8vLyBAcmV0dXJuIHtCb29sfVxuXG5AZnVuY3Rpb24gY29udGFpbnMtZmFsc3koJGxpc3QpIHtcbiAgQGVhY2ggJGl0ZW0gaW4gJGxpc3Qge1xuICAgIEBpZiBub3QgJGl0ZW0ge1xuICAgICAgQHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gZmFsc2U7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBDaGVja3MgZm9yIGEgdmFsaWQgQ1NTIGxlbmd0aC5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkdmFsdWVcblxuQGZ1bmN0aW9uIGlzLWxlbmd0aCgkdmFsdWUpIHtcbiAgQHJldHVybiB0eXBlLW9mKCR2YWx1ZSkgIT0gXCJudWxsXCIgYW5kIChzdHItc2xpY2UoJHZhbHVlICsgXCJcIiwgMSwgNCkgPT0gXCJjYWxjXCJcbiAgICAgICBvciBpbmRleChhdXRvIGluaGVyaXQgaW5pdGlhbCAwLCAkdmFsdWUpXG4gICAgICAgb3IgKHR5cGUtb2YoJHZhbHVlKSA9PSBcIm51bWJlclwiIGFuZCBub3QodW5pdGxlc3MoJHZhbHVlKSkpKTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb2dyYW1hdGljYWxseSBkZXRlcm1pbmVzIHdoZXRoZXIgYSBjb2xvciBpcyBsaWdodCBvciBkYXJrLlxuLy8vXG4vLy8gQGxpbmsgaHR0cDovL3JvYm90cy50aG91Z2h0Ym90LmNvbS9jbG9zZXItbG9vay1jb2xvci1saWdodG5lc3Ncbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3IgKEhleCl9ICRjb2xvclxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICBpcy1saWdodCgkY29sb3IpXG4vLy9cbi8vLyBAcmV0dXJuIHtCb29sfVxuXG5AZnVuY3Rpb24gaXMtbGlnaHQoJGhleC1jb2xvcikge1xuICAkLWxvY2FsLXJlZDogcmVkKHJnYmEoJGhleC1jb2xvciwgMSkpO1xuICAkLWxvY2FsLWdyZWVuOiBncmVlbihyZ2JhKCRoZXgtY29sb3IsIDEpKTtcbiAgJC1sb2NhbC1ibHVlOiBibHVlKHJnYmEoJGhleC1jb2xvciwgMSkpO1xuICAkLWxvY2FsLWxpZ2h0bmVzczogKCQtbG9jYWwtcmVkICogMC4yMTI2ICsgJC1sb2NhbC1ncmVlbiAqIDAuNzE1MiArICQtbG9jYWwtYmx1ZSAqIDAuMDcyMikgLyAyNTU7XG5cbiAgQHJldHVybiAkLWxvY2FsLWxpZ2h0bmVzcyA+IDAuNjtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIENoZWNrcyBmb3IgYSB2YWxpZCBudW1iZXIuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHZhbHVlXG4vLy9cbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGNvbnRhaW5zXG5cbkBmdW5jdGlvbiBpcy1udW1iZXIoJHZhbHVlKSB7XG4gIEByZXR1cm4gY29udGFpbnMoXCIwXCIgXCIxXCIgXCIyXCIgXCIzXCIgXCI0XCIgXCI1XCIgXCI2XCIgXCI3XCIgXCI4XCIgXCI5XCIgMCAxIDIgMyA0IDUgNiA3IDggOSwgJHZhbHVlKTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIENoZWNrcyBmb3IgYSB2YWxpZCBDU1Mgc2l6ZS5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkdmFsdWVcbi8vL1xuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gY29udGFpbnNcbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGlzLWxlbmd0aFxuXG5AZnVuY3Rpb24gaXMtc2l6ZSgkdmFsdWUpIHtcbiAgQHJldHVybiBpcy1sZW5ndGgoJHZhbHVlKVxuICAgICAgICAgIG9yIGNvbnRhaW5zKFwiZmlsbFwiIFwiZml0LWNvbnRlbnRcIiBcIm1pbi1jb250ZW50XCIgXCJtYXgtY29udGVudFwiLCAkdmFsdWUpO1xufVxuIiwiLy8gQ29udmVydCBwaXhlbHMgdG8gZW1zXG4vLyBlZy4gZm9yIGEgcmVsYXRpb25hbCB2YWx1ZSBvZiAxMnB4IHdyaXRlIGVtKDEyKSB3aGVuIHRoZSBwYXJlbnQgaXMgMTZweFxuLy8gaWYgdGhlIHBhcmVudCBpcyBhbm90aGVyIHZhbHVlIHNheSAyNHB4IHdyaXRlIGVtKDEyLCAyNClcblxuQGZ1bmN0aW9uIGVtKCRweHZhbCwgJGJhc2U6ICRlbS1iYXNlKSB7XG4gIEBpZiBub3QgdW5pdGxlc3MoJHB4dmFsKSB7XG4gICAgJHB4dmFsOiBzdHJpcC11bml0cygkcHh2YWwpO1xuICB9XG4gIEBpZiBub3QgdW5pdGxlc3MoJGJhc2UpIHtcbiAgICAkYmFzZTogc3RyaXAtdW5pdHMoJGJhc2UpO1xuICB9XG4gIEByZXR1cm4gKCRweHZhbCAvICRiYXNlKSAqIDFlbTtcbn1cbiIsIi8vIENvbnZlcnQgcGl4ZWxzIHRvIHJlbXNcbi8vIGVnLiBmb3IgYSByZWxhdGlvbmFsIHZhbHVlIG9mIDEycHggd3JpdGUgcmVtKDEyKVxuLy8gQXNzdW1lcyAkZW0tYmFzZSBpcyB0aGUgZm9udC1zaXplIG9mIDxodG1sPlxuXG5AZnVuY3Rpb24gcmVtKCRweHZhbCkge1xuICBAaWYgbm90IHVuaXRsZXNzKCRweHZhbCkge1xuICAgICRweHZhbDogc3RyaXAtdW5pdHMoJHB4dmFsKTtcbiAgfVxuXG4gICRiYXNlOiAkZW0tYmFzZTtcbiAgQGlmIG5vdCB1bml0bGVzcygkYmFzZSkge1xuICAgICRiYXNlOiBzdHJpcC11bml0cygkYmFzZSk7XG4gIH1cbiAgQHJldHVybiAoJHB4dmFsIC8gJGJhc2UpICogMXJlbTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIE1peGVzIGEgY29sb3Igd2l0aCBibGFjay5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvclxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXIgKFBlcmNlbnRhZ2UpfSAkcGVyY2VudFxuLy8vICAgVGhlIGFtb3VudCBvZiBibGFjayB0byBiZSBtaXhlZCBpbi5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBzaGFkZSgjZmZiYjUyLCA2MCUpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjY0YTIwO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJldHVybiB7Q29sb3J9XG5cbkBmdW5jdGlvbiBzaGFkZSgkY29sb3IsICRwZXJjZW50KSB7XG4gIEByZXR1cm4gbWl4KCMwMDAsICRjb2xvciwgJHBlcmNlbnQpO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gU3RyaXBzIHRoZSB1bml0IGZyb20gYSBudW1iZXIuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlciAoV2l0aCBVbml0KX0gJHZhbHVlXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgICRkaW1lbnNpb246IHN0cmlwLXVuaXRzKDEwZW0pO1xuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgJGRpbWVuc2lvbjogMTA7XG4vLy9cbi8vLyBAcmV0dXJuIHtOdW1iZXIgKFVuaXRsZXNzKX1cblxuQGZ1bmN0aW9uIHN0cmlwLXVuaXRzKCR2YWx1ZSkge1xuICBAcmV0dXJuICgkdmFsdWUgLyAoJHZhbHVlICogMCArIDEpKTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIE1peGVzIGEgY29sb3Igd2l0aCB3aGl0ZS5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvclxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXIgKFBlcmNlbnRhZ2UpfSAkcGVyY2VudFxuLy8vICAgVGhlIGFtb3VudCBvZiB3aGl0ZSB0byBiZSBtaXhlZCBpbi5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aW50KCM2ZWNhYTYsIDQwJSk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICNhOGRmYzk7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmV0dXJuIHtDb2xvcn1cblxuQGZ1bmN0aW9uIHRpbnQoJGNvbG9yLCAkcGVyY2VudCkge1xuICBAcmV0dXJuIG1peCgjZmZmLCAkY29sb3IsICRwZXJjZW50KTtcbn1cbiIsIi8vIFJldHVybiB2ZW5kb3ItcHJlZml4ZWQgcHJvcGVydHkgbmFtZXMgaWYgYXBwcm9wcmlhdGVcbi8vIEV4YW1wbGU6IHRyYW5zaXRpb24tcHJvcGVydHktbmFtZXMoKHRyYW5zZm9ybSwgY29sb3IsIGJhY2tncm91bmQpLCBtb3opIC0+IC1tb3otdHJhbnNmb3JtLCBjb2xvciwgYmFja2dyb3VuZFxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuQGZ1bmN0aW9uIHRyYW5zaXRpb24tcHJvcGVydHktbmFtZXMoJHByb3BzLCAkdmVuZG9yOiBmYWxzZSkge1xuICAkbmV3LXByb3BzOiAoKTtcblxuICBAZWFjaCAkcHJvcCBpbiAkcHJvcHMge1xuICAgICRuZXctcHJvcHM6IGFwcGVuZCgkbmV3LXByb3BzLCB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWUoJHByb3AsICR2ZW5kb3IpLCBjb21tYSk7XG4gIH1cblxuICBAcmV0dXJuICRuZXctcHJvcHM7XG59XG5cbkBmdW5jdGlvbiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWUoJHByb3AsICR2ZW5kb3I6IGZhbHNlKSB7XG4gIC8vIHB1dCBvdGhlciBwcm9wZXJ0aWVzIHRoYXQgbmVlZCB0byBiZSBwcmVmaXhlZCBoZXJlIGFzd2VsbFxuICBAaWYgJHZlbmRvciBhbmQgJHByb3AgPT0gdHJhbnNmb3JtIHtcbiAgICBAcmV0dXJuIHVucXVvdGUoJy0nKyR2ZW5kb3IrJy0nKyRwcm9wKTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiAkcHJvcDtcbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQ29udmVydHMgc2hvcnRoYW5kIHRvIHRoZSA0LXZhbHVlIHN5bnRheC5cbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHNob3J0aGFuZFxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIG1hcmdpbjogdW5wYWNrKDFlbSAyZW0pO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBtYXJnaW46IDFlbSAyZW0gMWVtIDJlbTtcbi8vLyAgIH1cblxuQGZ1bmN0aW9uIHVucGFjaygkc2hvcnRoYW5kKSB7XG4gIEBpZiBsZW5ndGgoJHNob3J0aGFuZCkgPT0gMSB7XG4gICAgQHJldHVybiBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMSk7XG4gIH0gQGVsc2UgaWYgbGVuZ3RoKCRzaG9ydGhhbmQpID09IDIge1xuICAgIEByZXR1cm4gbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAyKSBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDIpO1xuICB9IEBlbHNlIGlmIGxlbmd0aCgkc2hvcnRoYW5kKSA9PSAzIHtcbiAgICBAcmV0dXJuIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMikgbnRoKCRzaG9ydGhhbmQsIDMpIG50aCgkc2hvcnRoYW5kLCAyKTtcbiAgfSBAZWxzZSB7XG4gICAgQHJldHVybiAkc2hvcnRoYW5kO1xuICB9XG59XG4iLCIvLyBTY2FsaW5nIFZhcmlhYmxlc1xuJGdvbGRlbjogICAgICAgICAgIDEuNjE4O1xuJG1pbm9yLXNlY29uZDogICAgIDEuMDY3O1xuJG1ham9yLXNlY29uZDogICAgIDEuMTI1O1xuJG1pbm9yLXRoaXJkOiAgICAgIDEuMjtcbiRtYWpvci10aGlyZDogICAgICAxLjI1O1xuJHBlcmZlY3QtZm91cnRoOiAgIDEuMzMzO1xuJGF1Z21lbnRlZC1mb3VydGg6IDEuNDE0O1xuJHBlcmZlY3QtZmlmdGg6ICAgIDEuNTtcbiRtaW5vci1zaXh0aDogICAgICAxLjY7XG4kbWFqb3Itc2l4dGg6ICAgICAgMS42Njc7XG4kbWlub3Itc2V2ZW50aDogICAgMS43Nzg7XG4kbWFqb3Itc2V2ZW50aDogICAgMS44NzU7XG4kb2N0YXZlOiAgICAgICAgICAgMjtcbiRtYWpvci10ZW50aDogICAgICAyLjU7XG4kbWFqb3ItZWxldmVudGg6ICAgMi42Njc7XG4kbWFqb3ItdHdlbGZ0aDogICAgMztcbiRkb3VibGUtb2N0YXZlOiAgICA0O1xuXG4kbW9kdWxhci1zY2FsZS1yYXRpbzogJHBlcmZlY3QtZm91cnRoICFkZWZhdWx0O1xuJG1vZHVsYXItc2NhbGUtYmFzZTogZW0oJGVtLWJhc2UpICFkZWZhdWx0O1xuXG5AZnVuY3Rpb24gbW9kdWxhci1zY2FsZSgkaW5jcmVtZW50LCAkdmFsdWU6ICRtb2R1bGFyLXNjYWxlLWJhc2UsICRyYXRpbzogJG1vZHVsYXItc2NhbGUtcmF0aW8pIHtcbiAgJHYxOiBudGgoJHZhbHVlLCAxKTtcbiAgJHYyOiBudGgoJHZhbHVlLCBsZW5ndGgoJHZhbHVlKSk7XG4gICR2YWx1ZTogJHYxO1xuXG4gIC8vIHNjYWxlICR2MiB0byBqdXN0IGFib3ZlICR2MVxuICBAd2hpbGUgJHYyID4gJHYxIHtcbiAgICAkdjI6ICgkdjIgLyAkcmF0aW8pOyAvLyB3aWxsIGJlIG9mZi1ieS0xXG4gIH1cbiAgQHdoaWxlICR2MiA8ICR2MSB7XG4gICAgJHYyOiAoJHYyICogJHJhdGlvKTsgLy8gd2lsbCBmaXggb2ZmLWJ5LTFcbiAgfVxuXG4gIC8vIGNoZWNrIEFGVEVSIHNjYWxpbmcgJHYyIHRvIHByZXZlbnQgZG91YmxlLWNvdW50aW5nIGNvcm5lci1jYXNlXG4gICRkb3VibGUtc3RyYW5kZWQ6ICR2MiA+ICR2MTtcblxuICBAaWYgJGluY3JlbWVudCA+IDAge1xuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGluY3JlbWVudCB7XG4gICAgICBAaWYgJGRvdWJsZS1zdHJhbmRlZCBhbmQgKCR2MSAqICRyYXRpbykgPiAkdjIge1xuICAgICAgICAkdmFsdWU6ICR2MjtcbiAgICAgICAgJHYyOiAoJHYyICogJHJhdGlvKTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICAkdjE6ICgkdjEgKiAkcmF0aW8pO1xuICAgICAgICAkdmFsdWU6ICR2MTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaWYgJGluY3JlbWVudCA8IDAge1xuICAgIC8vIGFkanVzdCAkdjIgdG8ganVzdCBiZWxvdyAkdjFcbiAgICBAaWYgJGRvdWJsZS1zdHJhbmRlZCB7XG4gICAgICAkdjI6ICgkdjIgLyAkcmF0aW8pO1xuICAgIH1cblxuICAgIEBmb3IgJGkgZnJvbSAkaW5jcmVtZW50IHRocm91Z2ggLTEge1xuICAgICAgQGlmICRkb3VibGUtc3RyYW5kZWQgYW5kICgkdjEgLyAkcmF0aW8pIDwgJHYyIHtcbiAgICAgICAgJHZhbHVlOiAkdjI7XG4gICAgICAgICR2MjogKCR2MiAvICRyYXRpbyk7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgJHYxOiAoJHYxIC8gJHJhdGlvKTtcbiAgICAgICAgJHZhbHVlOiAkdjE7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkdmFsdWU7XG59XG4iLCIvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG4vLyBIZWxwZXIgZnVuY3Rpb24gZm9yIHN0ci10by1udW0gZm4uXG4vLyBTb3VyY2U6IGh0dHA6Ly9zYXNzbWVpc3Rlci5jb20vZ2lzdC85NjQ3NDA4XG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG5AZnVuY3Rpb24gX2NvbnZlcnQtdW5pdHMoJG51bWJlciwgJHVuaXQpIHtcbiAgJHN0cmluZ3M6IFwicHhcIiwgXCJjbVwiLCBcIm1tXCIsIFwiJVwiLCBcImNoXCIsIFwicGljYVwiLCBcImluXCIsIFwiZW1cIiwgXCJyZW1cIiwgXCJwdFwiLCBcInBjXCIsIFwiZXhcIiwgXCJ2d1wiLCBcInZoXCIsIFwidm1pblwiLCBcInZtYXhcIiwgXCJkZWdcIiwgXCJyYWRcIiwgXCJncmFkXCIsIFwidHVyblwiO1xuICAkdW5pdHM6ICAgMXB4LCAxY20sIDFtbSwgMSUsIDFjaCwgMXBpY2EsIDFpbiwgMWVtLCAxcmVtLCAxcHQsIDFwYywgMWV4LCAxdncsIDF2aCwgMXZtaW4sIDF2bWF4LCAxZGVnLCAxcmFkLCAxZ3JhZCwgMXR1cm47XG4gICRpbmRleDogaW5kZXgoJHN0cmluZ3MsICR1bml0KTtcblxuICBAaWYgbm90ICRpbmRleCB7XG4gICAgQHdhcm4gXCJVbmtub3duIHVuaXQgYCN7JHVuaXR9YC5cIjtcbiAgICBAcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgQGlmIHR5cGUtb2YoJG51bWJlcikgIT0gXCJudW1iZXJcIiB7XG4gICAgQHdhcm4gXCJgI3skbnVtYmVyfSBpcyBub3QgYSBudW1iZXJgXCI7XG4gICAgQHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIEByZXR1cm4gJG51bWJlciAqIG50aCgkdW5pdHMsICRpbmRleCk7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBEaXJlY3Rpb25hbC1wcm9wZXJ0eSBtaXhpbnMgYXJlIHNob3J0aGFuZHMgZm9yIHdyaXRpbmcgcHJvcGVydGllcyBsaWtlIHRoZSBmb2xsb3dpbmdcbi8vL1xuLy8vIEBpZ25vcmUgWW91IGNhbiBhbHNvIHVzZSBgZmFsc2VgIGluc3RlYWQgb2YgYG51bGxgLlxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkdmFsc1xuLy8vICAgTGlzdCBvZiBkaXJlY3Rpb25hbCB2YWx1ZXNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBib3JkZXItc3R5bGUoZG90dGVkIG51bGwpO1xuLy8vICAgICBAaW5jbHVkZSBtYXJnaW4obnVsbCAwIDEwcHgpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBib3JkZXItYm90dG9tLXN0eWxlOiBkb3R0ZWQ7XG4vLy8gICAgIGJvcmRlci10b3Atc3R5bGU6IGRvdHRlZDtcbi8vLyAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbi8vLyAgICAgbWFyZ2luLWxlZnQ6IDA7XG4vLy8gICAgIG1hcmdpbi1yaWdodDogMDtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gY29udGFpbnMtZmFsc3lcbi8vL1xuLy8vIEByZXR1cm4ge0xpc3R9XG5cbkBmdW5jdGlvbiBjb2xsYXBzZS1kaXJlY3Rpb25hbHMoJHZhbHMpIHtcbiAgJG91dHB1dDogbnVsbDtcblxuICAkYTogbnRoKCR2YWxzLCAxKTtcbiAgJGI6IGlmKGxlbmd0aCgkdmFscykgPCAyLCAkYSwgbnRoKCR2YWxzLCAyKSk7XG4gICRjOiBpZihsZW5ndGgoJHZhbHMpIDwgMywgJGEsIG50aCgkdmFscywgMykpO1xuICAkZDogaWYobGVuZ3RoKCR2YWxzKSA8IDIsICRhLCBudGgoJHZhbHMsIGlmKGxlbmd0aCgkdmFscykgPCA0LCAyLCA0KSkpO1xuXG4gIEBpZiAkYSA9PSAwIHsgJGE6IDA7IH1cbiAgQGlmICRiID09IDAgeyAkYjogMDsgfVxuICBAaWYgJGMgPT0gMCB7ICRjOiAwOyB9XG4gIEBpZiAkZCA9PSAwIHsgJGQ6IDA7IH1cblxuICBAaWYgJGEgPT0gJGIgYW5kICRhID09ICRjIGFuZCAkYSA9PSAkZCB7ICRvdXRwdXQ6ICRhOyAgICAgICAgICB9XG4gIEBlbHNlIGlmICRhID09ICRjIGFuZCAkYiA9PSAkZCAgICAgICAgIHsgJG91dHB1dDogJGEgJGI7ICAgICAgIH1cbiAgQGVsc2UgaWYgJGIgPT0gJGQgICAgICAgICAgICAgICAgICAgICAgeyAkb3V0cHV0OiAkYSAkYiAkYzsgICAgfVxuICBAZWxzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICRvdXRwdXQ6ICRhICRiICRjICRkOyB9XG5cbiAgQHJldHVybiAkb3V0cHV0O1xufVxuXG4vLy8gT3V0cHV0IGRpcmVjdGlvbmFsIHByb3BlcnRpZXMsIGZvciBpbnN0YW5jZSBgbWFyZ2luYC5cbi8vL1xuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRwcmVcbi8vLyAgIFByZWZpeCB0byB1c2Vcbi8vLyBAcGFyYW0ge1N0cmluZ30gJHN1ZlxuLy8vICAgU3VmZml4IHRvIHVzZVxuLy8vIEBwYXJhbSB7TGlzdH0gJHZhbHNcbi8vLyAgIExpc3Qgb2YgdmFsdWVzXG4vLy9cbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGNvbGxhcHNlLWRpcmVjdGlvbmFsc1xuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gY29udGFpbnMtZmFsc3lcblxuQG1peGluIGRpcmVjdGlvbmFsLXByb3BlcnR5KCRwcmUsICRzdWYsICR2YWxzKSB7XG4gIC8vIFByb3BlcnR5IE5hbWVzXG4gICR0b3A6ICAgICRwcmUgKyBcIi10b3BcIiAgICArIGlmKCRzdWYsIFwiLSN7JHN1Zn1cIiwgXCJcIik7XG4gICRib3R0b206ICRwcmUgKyBcIi1ib3R0b21cIiArIGlmKCRzdWYsIFwiLSN7JHN1Zn1cIiwgXCJcIik7XG4gICRsZWZ0OiAgICRwcmUgKyBcIi1sZWZ0XCIgICArIGlmKCRzdWYsIFwiLSN7JHN1Zn1cIiwgXCJcIik7XG4gICRyaWdodDogICRwcmUgKyBcIi1yaWdodFwiICArIGlmKCRzdWYsIFwiLSN7JHN1Zn1cIiwgXCJcIik7XG4gICRhbGw6ICAgICRwcmUgKyAgICAgICAgICAgICBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xuXG4gICR2YWxzOiBjb2xsYXBzZS1kaXJlY3Rpb25hbHMoJHZhbHMpO1xuXG4gIEBpZiBjb250YWlucy1mYWxzeSgkdmFscykge1xuICAgIEBpZiBudGgoJHZhbHMsIDEpIHsgI3skdG9wfTogbnRoKCR2YWxzLCAxKTsgfVxuXG4gICAgQGlmIGxlbmd0aCgkdmFscykgPT0gMSB7XG4gICAgICBAaWYgbnRoKCR2YWxzLCAxKSB7ICN7JHJpZ2h0fTogbnRoKCR2YWxzLCAxKTsgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgQGlmIG50aCgkdmFscywgMikgeyAjeyRyaWdodH06IG50aCgkdmFscywgMik7IH1cbiAgICB9XG5cbiAgICBAaWYgbGVuZ3RoKCR2YWxzKSA9PSAyIHtcbiAgICAgIEBpZiBudGgoJHZhbHMsIDEpIHsgI3skYm90dG9tfTogbnRoKCR2YWxzLCAxKTsgfVxuICAgICAgQGlmIG50aCgkdmFscywgMikgeyAjeyRsZWZ0fTogICBudGgoJHZhbHMsIDIpOyB9XG4gICAgfSBAZWxzZSBpZiBsZW5ndGgoJHZhbHMpID09IDMge1xuICAgICAgQGlmIG50aCgkdmFscywgMykgeyAjeyRib3R0b219OiBudGgoJHZhbHMsIDMpOyB9XG4gICAgICBAaWYgbnRoKCR2YWxzLCAyKSB7ICN7JGxlZnR9OiAgIG50aCgkdmFscywgMik7IH1cbiAgICB9IEBlbHNlIGlmIGxlbmd0aCgkdmFscykgPT0gNCB7XG4gICAgICBAaWYgbnRoKCR2YWxzLCAzKSB7ICN7JGJvdHRvbX06IG50aCgkdmFscywgMyk7IH1cbiAgICAgIEBpZiBudGgoJHZhbHMsIDQpIHsgI3skbGVmdH06ICAgbnRoKCR2YWxzLCA0KTsgfVxuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgI3skYWxsfTogJHZhbHM7XG4gIH1cbn1cbiIsIi8vIFVzZWQgZm9yIGNyZWF0aW5nIHRoZSBzb3VyY2Ugc3RyaW5nIGZvciBmb250cyB1c2luZyBAZm9udC1mYWNlXG4vLyBSZWZlcmVuY2U6IGh0dHA6Ly9nb28uZ2wvUnUxYktQXG5cbkBmdW5jdGlvbiBmb250LXVybC1wcmVmaXhlcigkYXNzZXQtcGlwZWxpbmUpIHtcbiAgQGlmICRhc3NldC1waXBlbGluZSA9PSB0cnVlIHtcbiAgICBAcmV0dXJuIGZvbnQtdXJsO1xuICB9IEBlbHNlIHtcbiAgICBAcmV0dXJuIHVybDtcbiAgfVxufVxuXG5AZnVuY3Rpb24gZm9udC1zb3VyY2UtZGVjbGFyYXRpb24oXG4gICRmb250LWZhbWlseSxcbiAgJGZpbGUtcGF0aCxcbiAgJGFzc2V0LXBpcGVsaW5lLFxuICAkZmlsZS1mb3JtYXRzLFxuICAkZm9udC11cmwpIHtcblxuICAkc3JjOiAoKTtcblxuICAkZm9ybWF0cy1tYXA6IChcbiAgICBlb3Q6ICAgXCIjeyRmaWxlLXBhdGh9LmVvdD8jaWVmaXhcIiBmb3JtYXQoXCJlbWJlZGRlZC1vcGVudHlwZVwiKSxcbiAgICB3b2ZmMjogXCIjeyRmaWxlLXBhdGh9LndvZmYyXCIgZm9ybWF0KFwid29mZjJcIiksXG4gICAgd29mZjogIFwiI3skZmlsZS1wYXRofS53b2ZmXCIgZm9ybWF0KFwid29mZlwiKSxcbiAgICB0dGY6ICAgXCIjeyRmaWxlLXBhdGh9LnR0ZlwiIGZvcm1hdChcInRydWV0eXBlXCIpLFxuICAgIHN2ZzogICBcIiN7JGZpbGUtcGF0aH0uc3ZnIyN7JGZvbnQtZmFtaWx5fVwiIGZvcm1hdChcInN2Z1wiKVxuICApO1xuXG4gIEBlYWNoICRrZXksICR2YWx1ZXMgaW4gJGZvcm1hdHMtbWFwIHtcbiAgICBAaWYgY29udGFpbnMoJGZpbGUtZm9ybWF0cywgJGtleSkge1xuICAgICAgJGZpbGUtcGF0aDogbnRoKCR2YWx1ZXMsIDEpO1xuICAgICAgJGZvbnQtZm9ybWF0OiBudGgoJHZhbHVlcywgMik7XG5cbiAgICAgIEBpZiAkYXNzZXQtcGlwZWxpbmUgPT0gdHJ1ZSB7XG4gICAgICAgICRzcmM6IGFwcGVuZCgkc3JjLCBmb250LXVybCgkZmlsZS1wYXRoKSAkZm9udC1mb3JtYXQsIGNvbW1hKTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICAkc3JjOiBhcHBlbmQoJHNyYywgdXJsKCRmaWxlLXBhdGgpICRmb250LWZvcm1hdCwgY29tbWEpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJHNyYztcbn1cbiIsIkBmdW5jdGlvbiBfZ3JhZGllbnQtcG9zaXRpb25zLXBhcnNlcigkZ3JhZGllbnQtdHlwZSwgJGdyYWRpZW50LXBvc2l0aW9ucykge1xuICBAaWYgJGdyYWRpZW50LXBvc2l0aW9uc1xuICBhbmQgKCRncmFkaWVudC10eXBlID09IGxpbmVhcilcbiAgYW5kICh0eXBlLW9mKCRncmFkaWVudC1wb3NpdGlvbnMpICE9IGNvbG9yKSB7XG4gICAgJGdyYWRpZW50LXBvc2l0aW9uczogX2xpbmVhci1wb3NpdGlvbnMtcGFyc2VyKCRncmFkaWVudC1wb3NpdGlvbnMpO1xuICB9XG4gIEBlbHNlIGlmICRncmFkaWVudC1wb3NpdGlvbnNcbiAgYW5kICgkZ3JhZGllbnQtdHlwZSA9PSByYWRpYWwpXG4gIGFuZCAodHlwZS1vZigkZ3JhZGllbnQtcG9zaXRpb25zKSAhPSBjb2xvcikge1xuICAgICRncmFkaWVudC1wb3NpdGlvbnM6IF9yYWRpYWwtcG9zaXRpb25zLXBhcnNlcigkZ3JhZGllbnQtcG9zaXRpb25zKTtcbiAgfVxuICBAcmV0dXJuICRncmFkaWVudC1wb3NpdGlvbnM7XG59XG4iLCIvLyBQcml2YXRlIGZ1bmN0aW9uIGZvciBsaW5lYXItZ3JhZGllbnQtcGFyc2VyXG5AZnVuY3Rpb24gX2xpbmVhci1hbmdsZS1wYXJzZXIoJGltYWdlLCAkZmlyc3QtdmFsLCAkcHJlZml4LCAkc3VmZml4KSB7XG4gICRvZmZzZXQ6IG51bGw7XG4gICR1bml0LXNob3J0OiAgc3RyLXNsaWNlKCRmaXJzdC12YWwsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkgLSAyLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpKTtcbiAgJHVuaXQtbG9uZzogICBzdHItc2xpY2UoJGZpcnN0LXZhbCwgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSAtIDMsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkpO1xuXG4gIEBpZiAoJHVuaXQtbG9uZyA9PSBcImdyYWRcIikgb3JcbiAgICAgICgkdW5pdC1sb25nID09IFwidHVyblwiKSB7XG4gICAgJG9mZnNldDogaWYoJHVuaXQtbG9uZyA9PSBcImdyYWRcIiwgLTEwMGdyYWQgKiAzLCAtMC43NXR1cm4pO1xuICB9XG5cbiAgQGVsc2UgaWYgKCR1bml0LXNob3J0ID09IFwiZGVnXCIpIG9yXG4gICAgICAgICAgICgkdW5pdC1zaG9ydCA9PSBcInJhZFwiKSB7XG4gICAgJG9mZnNldDogaWYoJHVuaXQtc2hvcnQgPT0gXCJkZWdcIiwgLTkwICogMywgMS42cmFkKTtcbiAgfVxuXG4gIEBpZiAkb2Zmc2V0IHtcbiAgICAkbnVtOiBfc3RyLXRvLW51bSgkZmlyc3QtdmFsKTtcblxuICAgIEByZXR1cm4gKFxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRwcmVmaXggKyAoJG9mZnNldCAtICRudW0pICsgJHN1ZmZpeCxcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxuICAgICk7XG4gIH1cbn1cbiIsIkBmdW5jdGlvbiBfbGluZWFyLWdyYWRpZW50LXBhcnNlcigkaW1hZ2UpIHtcbiAgJGltYWdlOiB1bnF1b3RlKCRpbWFnZSk7XG4gICRncmFkaWVudHM6ICgpO1xuICAkc3RhcnQ6IHN0ci1pbmRleCgkaW1hZ2UsIFwiKFwiKTtcbiAgJGVuZDogc3RyLWluZGV4KCRpbWFnZSwgXCIsXCIpO1xuICAkZmlyc3QtdmFsOiBzdHItc2xpY2UoJGltYWdlLCAkc3RhcnQgKyAxLCAkZW5kIC0gMSk7XG5cbiAgJHByZWZpeDogc3RyLXNsaWNlKCRpbWFnZSwgMCwgJHN0YXJ0KTtcbiAgJHN1ZmZpeDogc3RyLXNsaWNlKCRpbWFnZSwgJGVuZCwgc3RyLWxlbmd0aCgkaW1hZ2UpKTtcblxuICAkaGFzLW11bHRpcGxlLXZhbHM6IHN0ci1pbmRleCgkZmlyc3QtdmFsLCBcIiBcIik7XG4gICRoYXMtc2luZ2xlLXBvc2l0aW9uOiB1bnF1b3RlKF9wb3NpdGlvbi1mbGlwcGVyKCRmaXJzdC12YWwpICsgXCJcIik7XG4gICRoYXMtYW5nbGU6IGlzLW51bWJlcihzdHItc2xpY2UoJGZpcnN0LXZhbCwgMCwgMCkpO1xuXG4gIEBpZiAkaGFzLW11bHRpcGxlLXZhbHMge1xuICAgICRncmFkaWVudHM6IF9saW5lYXItc2lkZS1jb3JuZXItcGFyc2VyKCRpbWFnZSwgJGZpcnN0LXZhbCwgJHByZWZpeCwgJHN1ZmZpeCwgJGhhcy1tdWx0aXBsZS12YWxzKTtcbiAgfVxuXG4gIEBlbHNlIGlmICRoYXMtc2luZ2xlLXBvc2l0aW9uICE9IFwiXCIge1xuICAgICRwb3M6IHVucXVvdGUoJGhhcy1zaW5nbGUtcG9zaXRpb24gKyBcIlwiKTtcblxuICAgICRncmFkaWVudHM6IChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkaW1hZ2UsXG4gICAgICBzcGVjLWltYWdlOiAkcHJlZml4ICsgXCJ0byBcIiArICRwb3MgKyAkc3VmZml4XG4gICAgKTtcbiAgfVxuXG4gIEBlbHNlIGlmICRoYXMtYW5nbGUge1xuICAgIC8vIFJvdGF0ZSBkZWdyZWUgZm9yIHdlYmtpdFxuICAgICRncmFkaWVudHM6IF9saW5lYXItYW5nbGUtcGFyc2VyKCRpbWFnZSwgJGZpcnN0LXZhbCwgJHByZWZpeCwgJHN1ZmZpeCk7XG4gIH1cblxuICBAZWxzZSB7XG4gICAgJGdyYWRpZW50czogKFxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRpbWFnZSxcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxuICAgICk7XG4gIH1cblxuICBAcmV0dXJuICRncmFkaWVudHM7XG59XG4iLCJAZnVuY3Rpb24gX2xpbmVhci1wb3NpdGlvbnMtcGFyc2VyKCRwb3MpIHtcbiAgJHR5cGU6IHR5cGUtb2YobnRoKCRwb3MsIDEpKTtcbiAgJHNwZWM6IG51bGw7XG4gICRkZWdyZWU6IG51bGw7XG4gICRzaWRlOiBudWxsO1xuICAkY29ybmVyOiBudWxsO1xuICAkbGVuZ3RoOiBsZW5ndGgoJHBvcyk7XG4gIC8vIFBhcnNlIFNpZGUgYW5kIGNvcm5lciBwb3NpdGlvbnNcbiAgQGlmICgkbGVuZ3RoID4gMSkge1xuICAgIEBpZiBudGgoJHBvcywgMSkgPT0gXCJ0b1wiIHsgLy8gTmV3ZXIgc3ludGF4XG4gICAgICAkc2lkZTogbnRoKCRwb3MsIDIpO1xuXG4gICAgICBAaWYgJGxlbmd0aCA9PSAyIHsgLy8gZWcuIHRvIHRvcFxuICAgICAgICAvLyBTd2FwIGZvciBiYWNrd2FyZHMgY29tcGF0YWJpbGl0eVxuICAgICAgICAkZGVncmVlOiBfcG9zaXRpb24tZmxpcHBlcihudGgoJHBvcywgMikpO1xuICAgICAgfVxuICAgICAgQGVsc2UgaWYgJGxlbmd0aCA9PSAzIHsgLy8gZWcuIHRvIHRvcCBsZWZ0XG4gICAgICAgICRjb3JuZXI6IG50aCgkcG9zLCAzKTtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2UgaWYgJGxlbmd0aCA9PSAyIHsgLy8gT2xkZXIgc3ludGF4IChcInRvcCBsZWZ0XCIpXG4gICAgICAkc2lkZTogX3Bvc2l0aW9uLWZsaXBwZXIobnRoKCRwb3MsIDEpKTtcbiAgICAgICRjb3JuZXI6IF9wb3NpdGlvbi1mbGlwcGVyKG50aCgkcG9zLCAyKSk7XG4gICAgfVxuXG4gICAgQGlmIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcImxlZnQgdG9wXCIpIG9yIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcInRvcCBsZWZ0XCIpIHtcbiAgICAgICRkZWdyZWU6IF9wb3NpdGlvbi1mbGlwcGVyKCN7JHNpZGV9KSBfcG9zaXRpb24tZmxpcHBlcigjeyRjb3JuZXJ9KTtcbiAgICB9XG4gICAgQGVsc2UgaWYgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwicmlnaHQgdG9wXCIpIG9yIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcInRvcCByaWdodFwiKSB7XG4gICAgICAkZGVncmVlOiBfcG9zaXRpb24tZmxpcHBlcigjeyRzaWRlfSkgX3Bvc2l0aW9uLWZsaXBwZXIoI3skY29ybmVyfSk7XG4gICAgfVxuICAgIEBlbHNlIGlmIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcInJpZ2h0IGJvdHRvbVwiKSBvciAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJib3R0b20gcmlnaHRcIikge1xuICAgICAgJGRlZ3JlZTogX3Bvc2l0aW9uLWZsaXBwZXIoI3skc2lkZX0pIF9wb3NpdGlvbi1mbGlwcGVyKCN7JGNvcm5lcn0pO1xuICAgIH1cbiAgICBAZWxzZSBpZiAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJsZWZ0IGJvdHRvbVwiKSBvciAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJib3R0b20gbGVmdFwiKSB7XG4gICAgICAkZGVncmVlOiBfcG9zaXRpb24tZmxpcHBlcigjeyRzaWRlfSkgX3Bvc2l0aW9uLWZsaXBwZXIoI3skY29ybmVyfSk7XG4gICAgfVxuICAgICRzcGVjOiB0byAkc2lkZSAkY29ybmVyO1xuICB9XG4gIEBlbHNlIGlmICRsZW5ndGggPT0gMSB7XG4gICAgLy8gU3dhcCBmb3IgYmFja3dhcmRzIGNvbXBhdGFiaWxpdHlcbiAgICBAaWYgJHR5cGUgPT0gc3RyaW5nIHtcbiAgICAgICRkZWdyZWU6ICRwb3M7XG4gICAgICAkc3BlYzogdG8gX3Bvc2l0aW9uLWZsaXBwZXIoJHBvcyk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICRkZWdyZWU6IC0yNzAgLSAkcG9zOyAvL3JvdGF0ZSB0aGUgZ3JhZGllbnQgb3Bwb3NpdGUgZnJvbSBzcGVjXG4gICAgICAkc3BlYzogJHBvcztcbiAgICB9XG4gIH1cbiAgJGRlZ3JlZTogdW5xdW90ZSgkZGVncmVlICsgXCIsXCIpO1xuICAkc3BlYzogICB1bnF1b3RlKCRzcGVjICsgXCIsXCIpO1xuICBAcmV0dXJuICRkZWdyZWUgJHNwZWM7XG59XG5cbkBmdW5jdGlvbiBfcG9zaXRpb24tZmxpcHBlcigkcG9zKSB7XG4gIEByZXR1cm4gaWYoJHBvcyA9PSBsZWZ0LCByaWdodCwgbnVsbClcbiAgICAgICAgIGlmKCRwb3MgPT0gcmlnaHQsIGxlZnQsIG51bGwpXG4gICAgICAgICBpZigkcG9zID09IHRvcCwgYm90dG9tLCBudWxsKVxuICAgICAgICAgaWYoJHBvcyA9PSBib3R0b20sIHRvcCwgbnVsbCk7XG59XG4iLCIvLyBQcml2YXRlIGZ1bmN0aW9uIGZvciBsaW5lYXItZ3JhZGllbnQtcGFyc2VyXG5AZnVuY3Rpb24gX2xpbmVhci1zaWRlLWNvcm5lci1wYXJzZXIoJGltYWdlLCAkZmlyc3QtdmFsLCAkcHJlZml4LCAkc3VmZml4LCAkaGFzLW11bHRpcGxlLXZhbHMpIHtcbiAgJHZhbC0xOiBzdHItc2xpY2UoJGZpcnN0LXZhbCwgMCwgJGhhcy1tdWx0aXBsZS12YWxzIC0gMSApO1xuICAkdmFsLTI6IHN0ci1zbGljZSgkZmlyc3QtdmFsLCAkaGFzLW11bHRpcGxlLXZhbHMgKyAxLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpKTtcbiAgJHZhbC0zOiBudWxsO1xuICAkaGFzLXZhbC0zOiBzdHItaW5kZXgoJHZhbC0yLCBcIiBcIik7XG5cbiAgQGlmICRoYXMtdmFsLTMge1xuICAgICR2YWwtMzogc3RyLXNsaWNlKCR2YWwtMiwgJGhhcy12YWwtMyArIDEsIHN0ci1sZW5ndGgoJHZhbC0yKSk7XG4gICAgJHZhbC0yOiBzdHItc2xpY2UoJHZhbC0yLCAwLCAkaGFzLXZhbC0zIC0gMSk7XG4gIH1cblxuICAkcG9zOiBfcG9zaXRpb24tZmxpcHBlcigkdmFsLTEpIF9wb3NpdGlvbi1mbGlwcGVyKCR2YWwtMikgX3Bvc2l0aW9uLWZsaXBwZXIoJHZhbC0zKTtcbiAgJHBvczogdW5xdW90ZSgkcG9zICsgXCJcIik7XG5cbiAgLy8gVXNlIG9sZCBzcGVjIGZvciB3ZWJraXRcbiAgQGlmICR2YWwtMSA9PSBcInRvXCIge1xuICAgIEByZXR1cm4gKFxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRwcmVmaXggKyAkcG9zICsgJHN1ZmZpeCxcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxuICAgICk7XG4gIH1cblxuICAvLyBCcmluZyB0aGUgY29kZSB1cCB0byBzcGVjXG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkaW1hZ2UsXG4gICAgICBzcGVjLWltYWdlOiAkcHJlZml4ICsgXCJ0byBcIiArICRwb3MgKyAkc3VmZml4XG4gICAgKTtcbiAgfVxufVxuIiwiQGZ1bmN0aW9uIF9yYWRpYWwtYXJnLXBhcnNlcigkZzEsICRnMiwgJHBvcywgJHNoYXBlLXNpemUpIHtcbiAgQGVhY2ggJHZhbHVlIGluICRnMSwgJGcyIHtcbiAgICAkZmlyc3QtdmFsOiBudGgoJHZhbHVlLCAxKTtcbiAgICAkcG9zLXR5cGU6ICB0eXBlLW9mKCRmaXJzdC12YWwpO1xuICAgICRzcGVjLWF0LWluZGV4OiBudWxsO1xuXG4gICAgLy8gRGV0ZXJtaW5lIGlmIHNwZWMgd2FzIHBhc3NlZCB0byBtaXhpblxuICAgIEBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gbGlzdCB7XG4gICAgICAkc3BlYy1hdC1pbmRleDogaWYoaW5kZXgoJHZhbHVlLCBhdCksIGluZGV4KCR2YWx1ZSwgYXQpLCBmYWxzZSk7XG4gICAgfVxuICAgIEBpZiAkc3BlYy1hdC1pbmRleCB7XG4gICAgICBAaWYgJHNwZWMtYXQtaW5kZXggPiAxIHtcbiAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAoJHNwZWMtYXQtaW5kZXggLSAxKSB7XG4gICAgICAgICAgJHNoYXBlLXNpemU6ICRzaGFwZS1zaXplIG50aCgkdmFsdWUsICRpKTtcbiAgICAgICAgfVxuICAgICAgICBAZm9yICRpIGZyb20gKCRzcGVjLWF0LWluZGV4ICsgMSkgdGhyb3VnaCBsZW5ndGgoJHZhbHVlKSB7XG4gICAgICAgICAgJHBvczogJHBvcyBudGgoJHZhbHVlLCAkaSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBlbHNlIGlmICRzcGVjLWF0LWluZGV4ID09IDEge1xuICAgICAgICBAZm9yICRpIGZyb20gKCRzcGVjLWF0LWluZGV4ICsgMSkgdGhyb3VnaCBsZW5ndGgoJHZhbHVlKSB7XG4gICAgICAgICAgJHBvczogJHBvcyBudGgoJHZhbHVlLCAkaSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICRnMTogbnVsbDtcbiAgICB9XG5cbiAgICAvLyBJZiBub3Qgc3BlYyBjYWxjdWxhdGUgY29ycmVjdCB2YWx1ZXNcbiAgICBAZWxzZSB7XG4gICAgICBAaWYgKCRwb3MtdHlwZSAhPSBjb2xvcikgb3IgKCRmaXJzdC12YWwgIT0gXCJ0cmFuc3BhcmVudFwiKSB7XG4gICAgICAgIEBpZiAoJHBvcy10eXBlID09IG51bWJlcilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjZW50ZXJcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJ0b3BcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJyaWdodFwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImJvdHRvbVwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImxlZnRcIikge1xuXG4gICAgICAgICAgJHBvczogJHZhbHVlO1xuXG4gICAgICAgICAgQGlmICRwb3MgPT0gJGcxIHtcbiAgICAgICAgICAgICRnMTogbnVsbDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWxzZSBpZlxuICAgICAgICAgICAoJGZpcnN0LXZhbCA9PSBcImVsbGlwc2VcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjaXJjbGVcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjbG9zZXN0LXNpZGVcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjbG9zZXN0LWNvcm5lclwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImZhcnRoZXN0LXNpZGVcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJmYXJ0aGVzdC1jb3JuZXJcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjb250YWluXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY292ZXJcIikge1xuXG4gICAgICAgICAgJHNoYXBlLXNpemU6ICR2YWx1ZTtcblxuICAgICAgICAgIEBpZiAkdmFsdWUgPT0gJGcxIHtcbiAgICAgICAgICAgICRnMTogbnVsbDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBAZWxzZSBpZiAkdmFsdWUgPT0gJGcyIHtcbiAgICAgICAgICAgICRnMjogbnVsbDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQHJldHVybiAkZzEsICRnMiwgJHBvcywgJHNoYXBlLXNpemU7XG59XG4iLCJAZnVuY3Rpb24gX3JhZGlhbC1wb3NpdGlvbnMtcGFyc2VyKCRncmFkaWVudC1wb3MpIHtcbiAgJHNoYXBlLXNpemU6IG50aCgkZ3JhZGllbnQtcG9zLCAxKTtcbiAgJHBvczogICAgICAgIG50aCgkZ3JhZGllbnQtcG9zLCAyKTtcbiAgJHNoYXBlLXNpemUtc3BlYzogX3NoYXBlLXNpemUtc3RyaXBwZXIoJHNoYXBlLXNpemUpO1xuXG4gICRwcmUtc3BlYzogdW5xdW90ZShpZigkcG9zLCBcIiN7JHBvc30sIFwiLCBudWxsKSlcbiAgICAgICAgICAgICB1bnF1b3RlKGlmKCRzaGFwZS1zaXplLCBcIiN7JHNoYXBlLXNpemV9LFwiLCBudWxsKSk7XG4gICRwb3Mtc3BlYzogaWYoJHBvcywgXCJhdCAjeyRwb3N9XCIsIG51bGwpO1xuXG4gICRzcGVjOiBcIiN7JHNoYXBlLXNpemUtc3BlY30gI3skcG9zLXNwZWN9XCI7XG5cbiAgLy8gQWRkIGNvbW1hXG4gIEBpZiAoJHNwZWMgIT0gXCIgIFwiKSB7XG4gICAgJHNwZWM6IFwiI3skc3BlY30sXCI7XG4gIH1cblxuICBAcmV0dXJuICRwcmUtc3BlYyAkc3BlYztcbn1cbiIsIkBmdW5jdGlvbiBfcmFkaWFsLWdyYWRpZW50LXBhcnNlcigkaW1hZ2UpIHtcbiAgJGltYWdlOiB1bnF1b3RlKCRpbWFnZSk7XG4gICRncmFkaWVudHM6ICgpO1xuICAkc3RhcnQ6IHN0ci1pbmRleCgkaW1hZ2UsIFwiKFwiKTtcbiAgJGVuZDogc3RyLWluZGV4KCRpbWFnZSwgXCIsXCIpO1xuICAkZmlyc3QtdmFsOiBzdHItc2xpY2UoJGltYWdlLCAkc3RhcnQgKyAxLCAkZW5kIC0gMSk7XG5cbiAgJHByZWZpeDogc3RyLXNsaWNlKCRpbWFnZSwgMCwgJHN0YXJ0KTtcbiAgJHN1ZmZpeDogc3RyLXNsaWNlKCRpbWFnZSwgJGVuZCwgc3RyLWxlbmd0aCgkaW1hZ2UpKTtcblxuICAkaXMtc3BlYy1zeW50YXg6IHN0ci1pbmRleCgkZmlyc3QtdmFsLCBcImF0XCIpO1xuXG4gIEBpZiAkaXMtc3BlYy1zeW50YXggYW5kICRpcy1zcGVjLXN5bnRheCA+IDEge1xuICAgICRrZXl3b3JkOiBzdHItc2xpY2UoJGZpcnN0LXZhbCwgMSwgJGlzLXNwZWMtc3ludGF4IC0gMik7XG4gICAgJHBvczogc3RyLXNsaWNlKCRmaXJzdC12YWwsICRpcy1zcGVjLXN5bnRheCArIDMsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkpO1xuICAgICRwb3M6IGFwcGVuZCgkcG9zLCAka2V5d29yZCwgY29tbWEpO1xuXG4gICAgJGdyYWRpZW50czogKFxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRwcmVmaXggKyAkcG9zICsgJHN1ZmZpeCxcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxuICAgICk7XG4gIH1cblxuICBAZWxzZSBpZiAkaXMtc3BlYy1zeW50YXggPT0gMSB7XG4gICAgJHBvczogc3RyLXNsaWNlKCRmaXJzdC12YWwsICRpcy1zcGVjLXN5bnRheCArIDMsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkpO1xuXG4gICAgJGdyYWRpZW50czogKFxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRwcmVmaXggKyAkcG9zICsgJHN1ZmZpeCxcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxuICAgICk7XG4gIH1cblxuICBAZWxzZSBpZiBzdHItaW5kZXgoJGltYWdlLCBcImNvdmVyXCIpIG9yIHN0ci1pbmRleCgkaW1hZ2UsIFwiY29udGFpblwiKSB7XG4gICAgQHdhcm4gXCJSYWRpYWwtZ3JhZGllbnQgbmVlZHMgdG8gYmUgdXBkYXRlZCB0byBjb25mb3JtIHRvIGxhdGVzdCBzcGVjLlwiO1xuXG4gICAgJGdyYWRpZW50czogKFxuICAgICAgd2Via2l0LWltYWdlOiBudWxsLFxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXG4gICAgKTtcbiAgfVxuXG4gIEBlbHNlIHtcbiAgICAkZ3JhZGllbnRzOiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJGltYWdlLFxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXG4gICAgKTtcbiAgfVxuXG4gIEByZXR1cm4gJGdyYWRpZW50cztcbn1cbiIsIi8vIFVzZXIgZm9yIGxpbmVhciBhbmQgcmFkaWFsIGdyYWRpZW50cyB3aXRoaW4gYmFja2dyb3VuZC1pbWFnZSBvciBib3JkZXItaW1hZ2UgcHJvcGVydGllc1xuXG5AZnVuY3Rpb24gX3JlbmRlci1ncmFkaWVudHMoJGdyYWRpZW50LXBvc2l0aW9ucywgJGdyYWRpZW50cywgJGdyYWRpZW50LXR5cGUsICR2ZW5kb3I6IGZhbHNlKSB7XG4gICRwcmUtc3BlYzogbnVsbDtcbiAgJHNwZWM6IG51bGw7XG4gICR2ZW5kb3ItZ3JhZGllbnRzOiBudWxsO1xuICBAaWYgJGdyYWRpZW50LXR5cGUgPT0gbGluZWFyIHtcbiAgICBAaWYgJGdyYWRpZW50LXBvc2l0aW9ucyB7XG4gICAgICAkcHJlLXNwZWM6IG50aCgkZ3JhZGllbnQtcG9zaXRpb25zLCAxKTtcbiAgICAgICRzcGVjOiAgICAgbnRoKCRncmFkaWVudC1wb3NpdGlvbnMsIDIpO1xuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSByYWRpYWwge1xuICAgICRwcmUtc3BlYzogbnRoKCRncmFkaWVudC1wb3NpdGlvbnMsIDEpO1xuICAgICRzcGVjOiAgICAgbnRoKCRncmFkaWVudC1wb3NpdGlvbnMsIDIpO1xuICB9XG5cbiAgQGlmICR2ZW5kb3Ige1xuICAgICR2ZW5kb3ItZ3JhZGllbnRzOiAtI3skdmVuZG9yfS0jeyRncmFkaWVudC10eXBlfS1ncmFkaWVudCgjeyRwcmUtc3BlY30gJGdyYWRpZW50cyk7XG4gIH1cbiAgQGVsc2UgaWYgJHZlbmRvciA9PSBmYWxzZSB7XG4gICAgJHZlbmRvci1ncmFkaWVudHM6IFwiI3skZ3JhZGllbnQtdHlwZX0tZ3JhZGllbnQoI3skc3BlY30gI3skZ3JhZGllbnRzfSlcIjtcbiAgICAkdmVuZG9yLWdyYWRpZW50czogdW5xdW90ZSgkdmVuZG9yLWdyYWRpZW50cyk7XG4gIH1cbiAgQHJldHVybiAkdmVuZG9yLWdyYWRpZW50cztcbn1cbiIsIkBmdW5jdGlvbiBfc2hhcGUtc2l6ZS1zdHJpcHBlcigkc2hhcGUtc2l6ZSkge1xuICAkc2hhcGUtc2l6ZS1zcGVjOiBudWxsO1xuICBAZWFjaCAkdmFsdWUgaW4gJHNoYXBlLXNpemUge1xuICAgIEBpZiAoJHZhbHVlID09IFwiY292ZXJcIikgb3IgKCR2YWx1ZSA9PSBcImNvbnRhaW5cIikge1xuICAgICAgJHZhbHVlOiBudWxsO1xuICAgIH1cbiAgICAkc2hhcGUtc2l6ZS1zcGVjOiBcIiN7JHNoYXBlLXNpemUtc3BlY30gI3skdmFsdWV9XCI7XG4gIH1cbiAgQHJldHVybiAkc2hhcGUtc2l6ZS1zcGVjO1xufVxuIiwiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuLy8gSGVscGVyIGZ1bmN0aW9uIGZvciBsaW5lYXIvcmFkaWFsLWdyYWRpZW50LXBhcnNlcnMuXG4vLyBTb3VyY2U6IGh0dHA6Ly9zYXNzbWVpc3Rlci5jb20vZ2lzdC85NjQ3NDA4XG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG5AZnVuY3Rpb24gX3N0ci10by1udW0oJHN0cmluZykge1xuICAvLyBNYXRyaWNlc1xuICAkc3RyaW5nczogXCIwXCIgXCIxXCIgXCIyXCIgXCIzXCIgXCI0XCIgXCI1XCIgXCI2XCIgXCI3XCIgXCI4XCIgXCI5XCI7XG4gICRudW1iZXJzOiAgMCAgIDEgICAyICAgMyAgIDQgICA1ICAgNiAgIDcgICA4ICAgOTtcblxuICAvLyBSZXN1bHRcbiAgJHJlc3VsdDogMDtcbiAgJGRpdmlkZXI6IDA7XG4gICRtaW51czogZmFsc2U7XG5cbiAgLy8gTG9vcGluZyB0aHJvdWdoIGFsbCBjaGFyYWN0ZXJzXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggc3RyLWxlbmd0aCgkc3RyaW5nKSB7XG4gICAgJGNoYXJhY3Rlcjogc3RyLXNsaWNlKCRzdHJpbmcsICRpLCAkaSk7XG4gICAgJGluZGV4OiBpbmRleCgkc3RyaW5ncywgJGNoYXJhY3Rlcik7XG5cbiAgICBAaWYgJGNoYXJhY3RlciA9PSBcIi1cIiB7XG4gICAgICAkbWludXM6IHRydWU7XG4gICAgfVxuXG4gICAgQGVsc2UgaWYgJGNoYXJhY3RlciA9PSBcIi5cIiB7XG4gICAgICAkZGl2aWRlcjogMTtcbiAgICB9XG5cbiAgICBAZWxzZSB7XG4gICAgICBAaWYgbm90ICRpbmRleCB7XG4gICAgICAgICRyZXN1bHQ6IGlmKCRtaW51cywgJHJlc3VsdCAqIC0xLCAkcmVzdWx0KTtcbiAgICAgICAgQHJldHVybiBfY29udmVydC11bml0cygkcmVzdWx0LCBzdHItc2xpY2UoJHN0cmluZywgJGkpKTtcbiAgICAgIH1cblxuICAgICAgJG51bWJlcjogbnRoKCRudW1iZXJzLCAkaW5kZXgpO1xuXG4gICAgICBAaWYgJGRpdmlkZXIgPT0gMCB7XG4gICAgICAgICRyZXN1bHQ6ICRyZXN1bHQgKiAxMDtcbiAgICAgIH1cblxuICAgICAgQGVsc2Uge1xuICAgICAgICAvLyBNb3ZlIHRoZSBkZWNpbWFsIGRvdCB0byB0aGUgbGVmdFxuICAgICAgICAkZGl2aWRlcjogJGRpdmlkZXIgKiAxMDtcbiAgICAgICAgJG51bWJlcjogJG51bWJlciAvICRkaXZpZGVyO1xuICAgICAgfVxuXG4gICAgICAkcmVzdWx0OiAkcmVzdWx0ICsgJG51bWJlcjtcbiAgICB9XG4gIH1cbiAgQHJldHVybiBpZigkbWludXMsICRyZXN1bHQgKiAtMSwgJHJlc3VsdCk7XG59XG4iLCIvLyBodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MzLWFuaW1hdGlvbnMvI3RoZS1hbmltYXRpb24tbmFtZS1wcm9wZXJ0eS1cbi8vIEVhY2ggb2YgdGhlc2UgbWl4aW5zIHN1cHBvcnQgY29tbWEgc2VwYXJhdGVkIGxpc3RzIG9mIHZhbHVlcywgd2hpY2ggYWxsb3dzIGRpZmZlcmVudCB0cmFuc2l0aW9ucyBmb3IgaW5kaXZpZHVhbCBwcm9wZXJ0aWVzIHRvIGJlIGRlc2NyaWJlZCBpbiBhIHNpbmdsZSBzdHlsZSBydWxlLiBFYWNoIHZhbHVlIGluIHRoZSBsaXN0IGNvcnJlc3BvbmRzIHRvIHRoZSB2YWx1ZSBhdCB0aGF0IHNhbWUgcG9zaXRpb24gaW4gdGhlIG90aGVyIHByb3BlcnRpZXMuXG5cbkBtaXhpbiBhbmltYXRpb24oJGFuaW1hdGlvbnMuLi4pIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLCAkYW5pbWF0aW9ucywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGFuaW1hdGlvbi1uYW1lKCRuYW1lcy4uLikge1xuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tbmFtZSwgJG5hbWVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYW5pbWF0aW9uLWR1cmF0aW9uKCR0aW1lcy4uLikge1xuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tZHVyYXRpb24sICR0aW1lcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb24oJG1vdGlvbnMuLi4pIHtcbiAgLy8gZWFzZSB8IGxpbmVhciB8IGVhc2UtaW4gfCBlYXNlLW91dCB8IGVhc2UtaW4tb3V0XG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb24sICRtb3Rpb25zLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCgkdmFsdWVzLi4uKSB7XG4gIC8vIGluZmluaXRlIHwgPG51bWJlcj5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCwgJHZhbHVlcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGFuaW1hdGlvbi1kaXJlY3Rpb24oJGRpcmVjdGlvbnMuLi4pIHtcbiAgLy8gbm9ybWFsIHwgYWx0ZXJuYXRlXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1kaXJlY3Rpb24sICRkaXJlY3Rpb25zLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYW5pbWF0aW9uLXBsYXktc3RhdGUoJHN0YXRlcy4uLikge1xuICAvLyBydW5uaW5nIHwgcGF1c2VkXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1wbGF5LXN0YXRlLCAkc3RhdGVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYW5pbWF0aW9uLWRlbGF5KCR0aW1lcy4uLikge1xuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tZGVsYXksICR0aW1lcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGFuaW1hdGlvbi1maWxsLW1vZGUoJG1vZGVzLi4uKSB7XG4gIC8vIG5vbmUgfCBmb3J3YXJkcyB8IGJhY2t3YXJkcyB8IGJvdGhcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWZpbGwtbW9kZSwgJG1vZGVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuIiwiQG1peGluIGFwcGVhcmFuY2UoJHZhbHVlKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGFwcGVhcmFuY2UsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xufVxuIiwiQG1peGluIGJhY2tmYWNlLXZpc2liaWxpdHkoJHZpc2liaWxpdHkpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYmFja2ZhY2UtdmlzaWJpbGl0eSwgJHZpc2liaWxpdHksIHdlYmtpdCBzcGVjKTtcbn1cbiIsIi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbi8vIEJhY2tncm91bmQgcHJvcGVydHkgZm9yIGFkZGluZyBtdWx0aXBsZSBiYWNrZ3JvdW5kcyB1c2luZyBzaG9ydGhhbmRcbi8vIG5vdGF0aW9uLlxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuXG5AbWl4aW4gYmFja2dyb3VuZCgkYmFja2dyb3VuZHMuLi4pIHtcbiAgJHdlYmtpdC1iYWNrZ3JvdW5kczogKCk7XG4gICRzcGVjLWJhY2tncm91bmRzOiAoKTtcblxuICBAZWFjaCAkYmFja2dyb3VuZCBpbiAkYmFja2dyb3VuZHMge1xuICAgICR3ZWJraXQtYmFja2dyb3VuZDogKCk7XG4gICAgJHNwZWMtYmFja2dyb3VuZDogKCk7XG4gICAgJGJhY2tncm91bmQtdHlwZTogdHlwZS1vZigkYmFja2dyb3VuZCk7XG5cbiAgICBAaWYgJGJhY2tncm91bmQtdHlwZSA9PSBzdHJpbmcgb3IgJGJhY2tncm91bmQtdHlwZSA9PSBsaXN0IHtcbiAgICAgICRiYWNrZ3JvdW5kLXN0cjogaWYoJGJhY2tncm91bmQtdHlwZSA9PSBsaXN0LCBudGgoJGJhY2tncm91bmQsIDEpLCAkYmFja2dyb3VuZCk7XG5cbiAgICAgICR1cmwtc3RyOiAgICAgICBzdHItc2xpY2UoJGJhY2tncm91bmQtc3RyLCAwLCAzKTtcbiAgICAgICRncmFkaWVudC10eXBlOiBzdHItc2xpY2UoJGJhY2tncm91bmQtc3RyLCAwLCA2KTtcblxuICAgICAgQGlmICR1cmwtc3RyID09IFwidXJsXCIge1xuICAgICAgICAkd2Via2l0LWJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgICAgICAkc3BlYy1iYWNrZ3JvdW5kOiAgICRiYWNrZ3JvdW5kO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSBcImxpbmVhclwiIHtcbiAgICAgICAgJGdyYWRpZW50czogX2xpbmVhci1ncmFkaWVudC1wYXJzZXIoXCIjeyRiYWNrZ3JvdW5kfVwiKTtcbiAgICAgICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XG4gICAgICAgICRzcGVjLWJhY2tncm91bmQ6ICAgbWFwLWdldCgkZ3JhZGllbnRzLCBzcGVjLWltYWdlKTtcbiAgICAgIH1cblxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJyYWRpYWxcIiB7XG4gICAgICAgICRncmFkaWVudHM6IF9yYWRpYWwtZ3JhZGllbnQtcGFyc2VyKFwiI3skYmFja2dyb3VuZH1cIik7XG4gICAgICAgICR3ZWJraXQtYmFja2dyb3VuZDogbWFwLWdldCgkZ3JhZGllbnRzLCB3ZWJraXQtaW1hZ2UpO1xuICAgICAgICAkc3BlYy1iYWNrZ3JvdW5kOiAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICAgICAgJHNwZWMtYmFja2dyb3VuZDogICAkYmFja2dyb3VuZDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAZWxzZSB7XG4gICAgICAkd2Via2l0LWJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgICAgJHNwZWMtYmFja2dyb3VuZDogICAkYmFja2dyb3VuZDtcbiAgICB9XG5cbiAgICAkd2Via2l0LWJhY2tncm91bmRzOiBhcHBlbmQoJHdlYmtpdC1iYWNrZ3JvdW5kcywgJHdlYmtpdC1iYWNrZ3JvdW5kLCBjb21tYSk7XG4gICAgJHNwZWMtYmFja2dyb3VuZHM6ICAgYXBwZW5kKCRzcGVjLWJhY2tncm91bmRzLCAgICRzcGVjLWJhY2tncm91bmQsICAgY29tbWEpO1xuICB9XG5cbiAgYmFja2dyb3VuZDogJHdlYmtpdC1iYWNrZ3JvdW5kcztcbiAgYmFja2dyb3VuZDogJHNwZWMtYmFja2dyb3VuZHM7XG59XG4iLCIvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG4vLyBCYWNrZ3JvdW5kLWltYWdlIHByb3BlcnR5IGZvciBhZGRpbmcgbXVsdGlwbGUgYmFja2dyb3VuZCBpbWFnZXMgd2l0aFxuLy8gZ3JhZGllbnRzLCBvciBmb3Igc3RyaW5naW5nIG11bHRpcGxlIGdyYWRpZW50cyB0b2dldGhlci5cbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cblxuQG1peGluIGJhY2tncm91bmQtaW1hZ2UoJGltYWdlcy4uLikge1xuICAkd2Via2l0LWltYWdlczogKCk7XG4gICRzcGVjLWltYWdlczogKCk7XG5cbiAgQGVhY2ggJGltYWdlIGluICRpbWFnZXMge1xuICAgICR3ZWJraXQtaW1hZ2U6ICgpO1xuICAgICRzcGVjLWltYWdlOiAoKTtcblxuICAgIEBpZiAodHlwZS1vZigkaW1hZ2UpID09IHN0cmluZykge1xuICAgICAgJHVybC1zdHI6ICAgICAgIHN0ci1zbGljZSgkaW1hZ2UsIDAsIDMpO1xuICAgICAgJGdyYWRpZW50LXR5cGU6IHN0ci1zbGljZSgkaW1hZ2UsIDAsIDYpO1xuXG4gICAgICBAaWYgJHVybC1zdHIgPT0gXCJ1cmxcIiB7XG4gICAgICAgICR3ZWJraXQtaW1hZ2U6ICRpbWFnZTtcbiAgICAgICAgJHNwZWMtaW1hZ2U6ICAgJGltYWdlO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSBcImxpbmVhclwiIHtcbiAgICAgICAgJGdyYWRpZW50czogX2xpbmVhci1ncmFkaWVudC1wYXJzZXIoJGltYWdlKTtcbiAgICAgICAgJHdlYmtpdC1pbWFnZTogIG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcbiAgICAgICAgJHNwZWMtaW1hZ2U6ICAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwicmFkaWFsXCIge1xuICAgICAgICAkZ3JhZGllbnRzOiBfcmFkaWFsLWdyYWRpZW50LXBhcnNlcigkaW1hZ2UpO1xuICAgICAgICAkd2Via2l0LWltYWdlOiBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XG4gICAgICAgICRzcGVjLWltYWdlOiAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJHdlYmtpdC1pbWFnZXM6IGFwcGVuZCgkd2Via2l0LWltYWdlcywgJHdlYmtpdC1pbWFnZSwgY29tbWEpO1xuICAgICRzcGVjLWltYWdlczogICBhcHBlbmQoJHNwZWMtaW1hZ2VzLCAgICRzcGVjLWltYWdlLCAgIGNvbW1hKTtcbiAgfVxuXG4gIGJhY2tncm91bmQtaW1hZ2U6ICR3ZWJraXQtaW1hZ2VzO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAkc3BlYy1pbWFnZXM7XG59XG4iLCJAbWl4aW4gYm9yZGVyLWltYWdlKCRib3JkZXJzLi4uKSB7XG4gICR3ZWJraXQtYm9yZGVyczogKCk7XG4gICRzcGVjLWJvcmRlcnM6ICgpO1xuXG4gIEBlYWNoICRib3JkZXIgaW4gJGJvcmRlcnMge1xuICAgICR3ZWJraXQtYm9yZGVyOiAoKTtcbiAgICAkc3BlYy1ib3JkZXI6ICgpO1xuICAgICRib3JkZXItdHlwZTogdHlwZS1vZigkYm9yZGVyKTtcblxuICAgIEBpZiAkYm9yZGVyLXR5cGUgPT0gc3RyaW5nIG9yIGxpc3Qge1xuICAgICAgJGJvcmRlci1zdHI6IGlmKCRib3JkZXItdHlwZSA9PSBsaXN0LCBudGgoJGJvcmRlciwgMSksICRib3JkZXIpO1xuXG4gICAgICAkdXJsLXN0cjogICAgICAgc3RyLXNsaWNlKCRib3JkZXItc3RyLCAwLCAzKTtcbiAgICAgICRncmFkaWVudC10eXBlOiBzdHItc2xpY2UoJGJvcmRlci1zdHIsIDAsIDYpO1xuXG4gICAgICBAaWYgJHVybC1zdHIgPT0gXCJ1cmxcIiB7XG4gICAgICAgICR3ZWJraXQtYm9yZGVyOiAkYm9yZGVyO1xuICAgICAgICAkc3BlYy1ib3JkZXI6ICAgJGJvcmRlcjtcbiAgICAgIH1cblxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJsaW5lYXJcIiB7XG4gICAgICAgICRncmFkaWVudHM6IF9saW5lYXItZ3JhZGllbnQtcGFyc2VyKFwiI3skYm9yZGVyfVwiKTtcbiAgICAgICAgJHdlYmtpdC1ib3JkZXI6IG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcbiAgICAgICAgJHNwZWMtYm9yZGVyOiAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwicmFkaWFsXCIge1xuICAgICAgICAkZ3JhZGllbnRzOiBfcmFkaWFsLWdyYWRpZW50LXBhcnNlcihcIiN7JGJvcmRlcn1cIik7XG4gICAgICAgICR3ZWJraXQtYm9yZGVyOiBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XG4gICAgICAgICRzcGVjLWJvcmRlcjogICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSB7XG4gICAgICAgICR3ZWJraXQtYm9yZGVyOiAkYm9yZGVyO1xuICAgICAgICAkc3BlYy1ib3JkZXI6ICAgJGJvcmRlcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAZWxzZSB7XG4gICAgICAkd2Via2l0LWJvcmRlcjogJGJvcmRlcjtcbiAgICAgICRzcGVjLWJvcmRlcjogICAkYm9yZGVyO1xuICAgIH1cblxuICAgICR3ZWJraXQtYm9yZGVyczogYXBwZW5kKCR3ZWJraXQtYm9yZGVycywgJHdlYmtpdC1ib3JkZXIsIGNvbW1hKTtcbiAgICAkc3BlYy1ib3JkZXJzOiAgIGFwcGVuZCgkc3BlYy1ib3JkZXJzLCAgICRzcGVjLWJvcmRlciwgICBjb21tYSk7XG4gIH1cblxuICAtd2Via2l0LWJvcmRlci1pbWFnZTogJHdlYmtpdC1ib3JkZXJzO1xuICAgICAgICAgIGJvcmRlci1pbWFnZTogJHNwZWMtYm9yZGVycztcbiAgICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xufVxuXG4vL0V4YW1wbGVzOlxuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKHVybChcImltYWdlLnBuZ1wiKSk7XG4vLyBAaW5jbHVkZSBib3JkZXItaW1hZ2UodXJsKFwiaW1hZ2UucG5nXCIpIDIwIHN0cmV0Y2gpO1xuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKGxpbmVhci1ncmFkaWVudCg0NWRlZywgb3JhbmdlLCB5ZWxsb3cpKTtcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZShsaW5lYXItZ3JhZGllbnQoNDVkZWcsIG9yYW5nZSwgeWVsbG93KSBzdHJldGNoKTtcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZShsaW5lYXItZ3JhZGllbnQoNDVkZWcsIG9yYW5nZSwgeWVsbG93KSAyMCAzMCA0MCA1MCBzdHJldGNoIHJvdW5kKTtcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZShyYWRpYWwtZ3JhZGllbnQodG9wLCBjb3Zlciwgb3JhbmdlLCB5ZWxsb3csIG9yYW5nZSkpO1xuIiwiQG1peGluIGNhbGMoJHByb3BlcnR5LCAkdmFsdWUpIHtcbiAgI3skcHJvcGVydHl9OiAtd2Via2l0LWNhbGMoI3skdmFsdWV9KTtcbiAgI3skcHJvcGVydHl9OiBjYWxjKCN7JHZhbHVlfSk7XG59XG4iLCJAbWl4aW4gY29sdW1ucygkYXJnOiBhdXRvKSB7XG4gIC8vIDxjb2x1bW4tY291bnQ+IHx8IDxjb2x1bW4td2lkdGg+XG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbnMsICRhcmcsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4tY291bnQoJGludDogYXV0bykge1xuICAvLyBhdXRvIHx8IGludGVnZXJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLWNvdW50LCAkaW50LCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLWdhcCgkbGVuZ3RoOiBub3JtYWwpIHtcbiAgLy8gbm9ybWFsIHx8IGxlbmd0aFxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tZ2FwLCAkbGVuZ3RoLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLWZpbGwoJGFyZzogYXV0bykge1xuICAvLyBhdXRvIHx8IGxlbmd0aFxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tZmlsbCwgJGFyZywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1ydWxlKCRhcmcpIHtcbiAgLy8gPGJvcmRlci13aWR0aD4gfHwgPGJvcmRlci1zdHlsZT4gfHwgPGNvbG9yPlxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tcnVsZSwgJGFyZywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1ydWxlLWNvbG9yKCRjb2xvcikge1xuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tcnVsZS1jb2xvciwgJGNvbG9yLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLXJ1bGUtc3R5bGUoJHN0eWxlOiBub25lKSB7XG4gIC8vIG5vbmUgfCBoaWRkZW4gfCBkYXNoZWQgfCBkb3R0ZWQgfCBkb3VibGUgfCBncm9vdmUgfCBpbnNldCB8IGluc2V0IHwgb3V0c2V0IHwgcmlkZ2UgfCBzb2xpZFxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tcnVsZS1zdHlsZSwgJHN0eWxlLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLXJ1bGUtd2lkdGggKCR3aWR0aDogbm9uZSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tcnVsZS13aWR0aCwgJHdpZHRoLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLXNwYW4oJGFyZzogbm9uZSkge1xuICAvLyBub25lIHx8IGFsbFxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tc3BhbiwgJGFyZywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi13aWR0aCgkbGVuZ3RoOiBhdXRvKSB7XG4gIC8vIGF1dG8gfHwgbGVuZ3RoXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi13aWR0aCwgJGxlbmd0aCwgd2Via2l0IG1veiBzcGVjKTtcbn1cbiIsIkBtaXhpbiBmaWx0ZXIoJGZ1bmN0aW9uOiBub25lKSB7XG4gIC8vIDxmaWx0ZXItZnVuY3Rpb24+IFs8ZmlsdGVyLWZ1bmN0aW9uXSogfCBub25lXG4gIEBpbmNsdWRlIHByZWZpeGVyKGZpbHRlciwgJGZ1bmN0aW9uLCB3ZWJraXQgc3BlYyk7XG59XG4iLCIvLyBDU1MzIEZsZXhpYmxlIEJveCBNb2RlbCBhbmQgcHJvcGVydHkgZGVmYXVsdHNcblxuLy8gQ3VzdG9tIHNob3J0aGFuZCBub3RhdGlvbiBmb3IgZmxleGJveFxuQG1peGluIGJveCgkb3JpZW50OiBpbmxpbmUtYXhpcywgJHBhY2s6IHN0YXJ0LCAkYWxpZ246IHN0cmV0Y2gpIHtcbiAgQGluY2x1ZGUgZGlzcGxheS1ib3g7XG4gIEBpbmNsdWRlIGJveC1vcmllbnQoJG9yaWVudCk7XG4gIEBpbmNsdWRlIGJveC1wYWNrKCRwYWNrKTtcbiAgQGluY2x1ZGUgYm94LWFsaWduKCRhbGlnbik7XG59XG5cbkBtaXhpbiBkaXNwbGF5LWJveCB7XG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICBkaXNwbGF5OiAtbW96LWJveDtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7IC8vIElFIDEwXG4gIGRpc3BsYXk6IGJveDtcbn1cblxuQG1peGluIGJveC1vcmllbnQoJG9yaWVudDogaW5saW5lLWF4aXMpIHtcbi8vIGhvcml6b250YWx8dmVydGljYWx8aW5saW5lLWF4aXN8YmxvY2stYXhpc3xpbmhlcml0XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1vcmllbnQsICRvcmllbnQsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBib3gtcGFjaygkcGFjazogc3RhcnQpIHtcbi8vIHN0YXJ0fGVuZHxjZW50ZXJ8anVzdGlmeVxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtcGFjaywgJHBhY2ssIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LXBhY2s6ICRwYWNrOyAvLyBJRSAxMFxufVxuXG5AbWl4aW4gYm94LWFsaWduKCRhbGlnbjogc3RyZXRjaCkge1xuLy8gc3RhcnR8ZW5kfGNlbnRlcnxiYXNlbGluZXxzdHJldGNoXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1hbGlnbiwgJGFsaWduLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1hbGlnbjogJGFsaWduOyAvLyBJRSAxMFxufVxuXG5AbWl4aW4gYm94LWRpcmVjdGlvbigkZGlyZWN0aW9uOiBub3JtYWwpIHtcbi8vIG5vcm1hbHxyZXZlcnNlfGluaGVyaXRcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWRpcmVjdGlvbiwgJGRpcmVjdGlvbiwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtZGlyZWN0aW9uOiAkZGlyZWN0aW9uOyAvLyBJRSAxMFxufVxuXG5AbWl4aW4gYm94LWxpbmVzKCRsaW5lczogc2luZ2xlKSB7XG4vLyBzaW5nbGV8bXVsdGlwbGVcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWxpbmVzLCAkbGluZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBib3gtb3JkaW5hbC1ncm91cCgkaW50OiAxKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1vcmRpbmFsLWdyb3VwLCAkaW50LCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1vcmRlcjogJGludDsgLy8gSUUgMTBcbn1cblxuQG1peGluIGJveC1mbGV4KCR2YWx1ZTogMCkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZmxleCwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleDogJHZhbHVlOyAvLyBJRSAxMFxufVxuXG5AbWl4aW4gYm94LWZsZXgtZ3JvdXAoJGludDogMSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZmxleC1ncm91cCwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuLy8gQ1NTMyBGbGV4aWJsZSBCb3ggTW9kZWwgYW5kIHByb3BlcnR5IGRlZmF1bHRzXG4vLyBVbmlmaWVkIGF0dHJpYnV0ZXMgZm9yIDIwMDksIDIwMTEsIGFuZCAyMDEyIGZsYXZvdXJzLlxuXG4vLyAyMDA5IC0gZGlzcGxheSAoYm94IHwgaW5saW5lLWJveClcbi8vIDIwMTEgLSBkaXNwbGF5IChmbGV4Ym94IHwgaW5saW5lLWZsZXhib3gpXG4vLyAyMDEyIC0gZGlzcGxheSAoZmxleCB8IGlubGluZS1mbGV4KVxuQG1peGluIGRpc3BsYXkoJHZhbHVlKSB7XG4vLyBmbGV4IHwgaW5saW5lLWZsZXhcbiAgQGlmICR2YWx1ZSA9PSBcImZsZXhcIiB7XG4gICAgLy8gMjAwOVxuICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAgIGRpc3BsYXk6IC1tb3otYm94O1xuICAgIGRpc3BsYXk6IGJveDtcblxuICAgIC8vIDIwMTJcbiAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gICAgZGlzcGxheTogLW1vei1mbGV4O1xuICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94OyAvLyAyMDExIChJRSAxMClcbiAgICBkaXNwbGF5OiBmbGV4O1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcImlubGluZS1mbGV4XCIge1xuICAgIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWJveDtcbiAgICBkaXNwbGF5OiAtbW96LWlubGluZS1ib3g7XG4gICAgZGlzcGxheTogaW5saW5lLWJveDtcblxuICAgIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWZsZXg7XG4gICAgZGlzcGxheTogLW1vei1pbmxpbmUtZmxleDtcbiAgICBkaXNwbGF5OiAtbXMtaW5saW5lLWZsZXhib3g7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIH0gQGVsc2Uge1xuICAgIGRpc3BsYXk6ICR2YWx1ZTtcbiAgfVxufVxuXG4vLyAyMDA5IC0gYm94LWZsZXggKGludGVnZXIpXG4vLyAyMDExIC0gZmxleCAoZGVjaW1hbCB8IHdpZHRoIGRlY2ltYWwpXG4vLyAyMDEyIC0gZmxleCAoaW50ZWdlciBpbnRlZ2VyIHdpZHRoKVxuQG1peGluIGZsZXgoJHZhbHVlKSB7XG5cbiAgLy8gR3JhYiBmbGV4LWdyb3cgZm9yIG9sZGVyIGJyb3dzZXJzLlxuICAkZmxleC1ncm93OiBudGgoJHZhbHVlLCAxKTtcblxuICAvLyAyMDA5XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1mbGV4LCAkZmxleC1ncm93LCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTEgKElFIDEwKSwgMjAxMlxuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgc3BlYyk7XG59XG5cbi8vIDIwMDkgLSBib3gtb3JpZW50ICggaG9yaXpvbnRhbCB8IHZlcnRpY2FsIHwgaW5saW5lLWF4aXMgfCBibG9jay1heGlzKVxuLy8gICAgICAtIGJveC1kaXJlY3Rpb24gKG5vcm1hbCB8IHJldmVyc2UpXG4vLyAyMDExIC0gZmxleC1kaXJlY3Rpb24gKHJvdyB8IHJvdy1yZXZlcnNlIHwgY29sdW1uIHwgY29sdW1uLXJldmVyc2UpXG4vLyAyMDEyIC0gZmxleC1kaXJlY3Rpb24gKHJvdyB8IHJvdy1yZXZlcnNlIHwgY29sdW1uIHwgY29sdW1uLXJldmVyc2UpXG5AbWl4aW4gZmxleC1kaXJlY3Rpb24oJHZhbHVlOiByb3cpIHtcblxuICAvLyBBbHQgdmFsdWVzLlxuICAkdmFsdWUtMjAwOTogJHZhbHVlO1xuICAkdmFsdWUtMjAxMTogJHZhbHVlO1xuICAkZGlyZWN0aW9uOiBub3JtYWw7XG5cbiAgQGlmICR2YWx1ZSA9PSByb3cge1xuICAgICR2YWx1ZS0yMDA5OiBob3Jpem9udGFsO1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcInJvdy1yZXZlcnNlXCIge1xuICAgICR2YWx1ZS0yMDA5OiBob3Jpem9udGFsO1xuICAgICRkaXJlY3Rpb246IHJldmVyc2U7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IGNvbHVtbiB7XG4gICAgJHZhbHVlLTIwMDk6IHZlcnRpY2FsO1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcImNvbHVtbi1yZXZlcnNlXCIge1xuICAgICR2YWx1ZS0yMDA5OiB2ZXJ0aWNhbDtcbiAgICAkZGlyZWN0aW9uOiByZXZlcnNlO1xuICB9XG5cbiAgLy8gMjAwOVxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtb3JpZW50LCAkdmFsdWUtMjAwOSwgd2Via2l0IG1veiBzcGVjKTtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWRpcmVjdGlvbiwgJGRpcmVjdGlvbiwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDEyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtZGlyZWN0aW9uLCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMSAoSUUgMTApXG4gIC1tcy1mbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xufVxuXG4vLyAyMDA5IC0gYm94LWxpbmVzIChzaW5nbGUgfCBtdWx0aXBsZSlcbi8vIDIwMTEgLSBmbGV4LXdyYXAgKG5vd3JhcCB8IHdyYXAgfCB3cmFwLXJldmVyc2UpXG4vLyAyMDEyIC0gZmxleC13cmFwIChub3dyYXAgfCB3cmFwIHwgd3JhcC1yZXZlcnNlKVxuQG1peGluIGZsZXgtd3JhcCgkdmFsdWU6IG5vd3JhcCkge1xuICAvLyBBbHQgdmFsdWVzXG4gICRhbHQtdmFsdWU6ICR2YWx1ZTtcbiAgQGlmICR2YWx1ZSA9PSBub3dyYXAge1xuICAgICRhbHQtdmFsdWU6IHNpbmdsZTtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gd3JhcCB7XG4gICAgJGFsdC12YWx1ZTogbXVsdGlwbGU7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwid3JhcC1yZXZlcnNlXCIge1xuICAgICRhbHQtdmFsdWU6IG11bHRpcGxlO1xuICB9XG5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWxpbmVzLCAkYWx0LXZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LXdyYXAsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBzcGVjKTtcbn1cblxuLy8gMjAwOSAtIFRPRE86IHBhcnNlIHZhbHVlcyBpbnRvIGZsZXgtZGlyZWN0aW9uL2ZsZXgtd3JhcFxuLy8gMjAxMSAtIFRPRE86IHBhcnNlIHZhbHVlcyBpbnRvIGZsZXgtZGlyZWN0aW9uL2ZsZXgtd3JhcFxuLy8gMjAxMiAtIGZsZXgtZmxvdyAoZmxleC1kaXJlY3Rpb24gfHwgZmxleC13cmFwKVxuQG1peGluIGZsZXgtZmxvdygkdmFsdWUpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1mbG93LCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbi8vIDIwMDkgLSBib3gtb3JkaW5hbC1ncm91cCAoaW50ZWdlcilcbi8vIDIwMTEgLSBmbGV4LW9yZGVyIChpbnRlZ2VyKVxuLy8gMjAxMiAtIG9yZGVyIChpbnRlZ2VyKVxuQG1peGluIG9yZGVyKCRpbnQ6IDApIHtcbiAgLy8gMjAwOVxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtb3JkaW5hbC1ncm91cCwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDEyXG4gIEBpbmNsdWRlIHByZWZpeGVyKG9yZGVyLCAkaW50LCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTEgKElFIDEwKVxuICAtbXMtZmxleC1vcmRlcjogJGludDtcbn1cblxuLy8gMjAxMiAtIGZsZXgtZ3JvdyAobnVtYmVyKVxuQG1peGluIGZsZXgtZ3JvdygkbnVtYmVyOiAwKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtZ3JvdywgJG51bWJlciwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtcG9zaXRpdmU6ICRudW1iZXI7XG59XG5cbi8vIDIwMTIgLSBmbGV4LXNocmluayAobnVtYmVyKVxuQG1peGluIGZsZXgtc2hyaW5rKCRudW1iZXI6IDEpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1zaHJpbmssICRudW1iZXIsIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LW5lZ2F0aXZlOiAkbnVtYmVyO1xufVxuXG4vLyAyMDEyIC0gZmxleC1iYXNpcyAobnVtYmVyKVxuQG1peGluIGZsZXgtYmFzaXMoJHdpZHRoOiBhdXRvKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtYmFzaXMsICR3aWR0aCwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6ICR3aWR0aDtcbn1cblxuLy8gMjAwOSAtIGJveC1wYWNrIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGp1c3RpZnkpXG4vLyAyMDExIC0gZmxleC1wYWNrIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGp1c3RpZnkpXG4vLyAyMDEyIC0ganVzdGlmeS1jb250ZW50IChmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBzcGFjZS1iZXR3ZWVuIHwgc3BhY2UtYXJvdW5kKVxuQG1peGluIGp1c3RpZnktY29udGVudCgkdmFsdWU6IGZsZXgtc3RhcnQpIHtcblxuICAvLyBBbHQgdmFsdWVzLlxuICAkYWx0LXZhbHVlOiAkdmFsdWU7XG4gIEBpZiAkdmFsdWUgPT0gXCJmbGV4LXN0YXJ0XCIge1xuICAgICRhbHQtdmFsdWU6IHN0YXJ0O1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcImZsZXgtZW5kXCIge1xuICAgICRhbHQtdmFsdWU6IGVuZDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJzcGFjZS1iZXR3ZWVuXCIge1xuICAgICRhbHQtdmFsdWU6IGp1c3RpZnk7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwic3BhY2UtYXJvdW5kXCIge1xuICAgICRhbHQtdmFsdWU6IGRpc3RyaWJ1dGU7XG4gIH1cblxuICAvLyAyMDA5XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1wYWNrLCAkYWx0LXZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoanVzdGlmeS1jb250ZW50LCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcblxuICAvLyAyMDExIChJRSAxMClcbiAgLW1zLWZsZXgtcGFjazogJGFsdC12YWx1ZTtcbn1cblxuLy8gMjAwOSAtIGJveC1hbGlnbiAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXG4vLyAyMDExIC0gZmxleC1hbGlnbiAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXG4vLyAyMDEyIC0gYWxpZ24taXRlbXMgKGZsZXgtc3RhcnQgfCBmbGV4LWVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcbkBtaXhpbiBhbGlnbi1pdGVtcygkdmFsdWU6IHN0cmV0Y2gpIHtcblxuICAkYWx0LXZhbHVlOiAkdmFsdWU7XG5cbiAgQGlmICR2YWx1ZSA9PSBcImZsZXgtc3RhcnRcIiB7XG4gICAgJGFsdC12YWx1ZTogc3RhcnQ7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwiZmxleC1lbmRcIiB7XG4gICAgJGFsdC12YWx1ZTogZW5kO1xuICB9XG5cbiAgLy8gMjAwOVxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtYWxpZ24sICRhbHQtdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMlxuICBAaW5jbHVkZSBwcmVmaXhlcihhbGlnbi1pdGVtcywgJHZhbHVlLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XG5cbiAgLy8gMjAxMSAoSUUgMTApXG4gIC1tcy1mbGV4LWFsaWduOiAkYWx0LXZhbHVlO1xufVxuXG4vLyAyMDExIC0gZmxleC1pdGVtLWFsaWduIChhdXRvIHwgc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXG4vLyAyMDEyIC0gYWxpZ24tc2VsZiAoYXV0byB8IGZsZXgtc3RhcnQgfCBmbGV4LWVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcbkBtaXhpbiBhbGlnbi1zZWxmKCR2YWx1ZTogYXV0bykge1xuXG4gICR2YWx1ZS0yMDExOiAkdmFsdWU7XG4gIEBpZiAkdmFsdWUgPT0gXCJmbGV4LXN0YXJ0XCIge1xuICAgICR2YWx1ZS0yMDExOiBzdGFydDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJmbGV4LWVuZFwiIHtcbiAgICAkdmFsdWUtMjAxMTogZW5kO1xuICB9XG5cbiAgLy8gMjAxMlxuICBAaW5jbHVkZSBwcmVmaXhlcihhbGlnbi1zZWxmLCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMSAoSUUgMTApXG4gIC1tcy1mbGV4LWl0ZW0tYWxpZ246ICR2YWx1ZS0yMDExO1xufVxuXG4vLyAyMDExIC0gZmxleC1saW5lLXBhY2sgKHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwganVzdGlmeSB8IGRpc3RyaWJ1dGUgfCBzdHJldGNoKVxuLy8gMjAxMiAtIGFsaWduLWNvbnRlbnQgKGZsZXgtc3RhcnQgfCBmbGV4LWVuZCB8IGNlbnRlciB8IHNwYWNlLWJldHdlZW4gfCBzcGFjZS1hcm91bmQgfCBzdHJldGNoKVxuQG1peGluIGFsaWduLWNvbnRlbnQoJHZhbHVlOiBzdHJldGNoKSB7XG5cbiAgJHZhbHVlLTIwMTE6ICR2YWx1ZTtcbiAgQGlmICR2YWx1ZSA9PSBcImZsZXgtc3RhcnRcIiB7XG4gICAgJHZhbHVlLTIwMTE6IHN0YXJ0O1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcImZsZXgtZW5kXCIge1xuICAgICR2YWx1ZS0yMDExOiBlbmQ7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwic3BhY2UtYmV0d2VlblwiIHtcbiAgICAkdmFsdWUtMjAxMToganVzdGlmeTtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJzcGFjZS1hcm91bmRcIiB7XG4gICAgJHZhbHVlLTIwMTE6IGRpc3RyaWJ1dGU7XG4gIH1cblxuICAvLyAyMDEyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFsaWduLWNvbnRlbnQsICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDExIChJRSAxMClcbiAgLW1zLWZsZXgtbGluZS1wYWNrOiAkdmFsdWUtMjAxMTtcbn1cbiIsIkBtaXhpbiBmb250LWZhY2UoXG4gICRmb250LWZhbWlseSxcbiAgJGZpbGUtcGF0aCxcbiAgJHdlaWdodDogbm9ybWFsLFxuICAkc3R5bGU6IG5vcm1hbCxcbiAgJGFzc2V0LXBpcGVsaW5lOiAkYXNzZXQtcGlwZWxpbmUsXG4gICRmaWxlLWZvcm1hdHM6IGVvdCB3b2ZmMiB3b2ZmIHR0ZiBzdmcpIHtcblxuICAkZm9udC11cmwtcHJlZml4OiBmb250LXVybC1wcmVmaXhlcigkYXNzZXQtcGlwZWxpbmUpO1xuXG4gIEBmb250LWZhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHk7XG4gICAgZm9udC1zdHlsZTogJHN0eWxlO1xuICAgIGZvbnQtd2VpZ2h0OiAkd2VpZ2h0O1xuXG4gICAgc3JjOiBmb250LXNvdXJjZS1kZWNsYXJhdGlvbihcbiAgICAgICRmb250LWZhbWlseSxcbiAgICAgICRmaWxlLXBhdGgsXG4gICAgICAkYXNzZXQtcGlwZWxpbmUsXG4gICAgICAkZmlsZS1mb3JtYXRzLFxuICAgICAgJGZvbnQtdXJsLXByZWZpeFxuICAgICk7XG4gIH1cbn1cbiIsIkBtaXhpbiBmb250LWZlYXR1cmUtc2V0dGluZ3MoJHNldHRpbmdzLi4uKSB7XG4gIEBpZiBsZW5ndGgoJHNldHRpbmdzKSA9PSAwIHsgJHNldHRpbmdzOiBub25lOyB9XG4gIEBpbmNsdWRlIHByZWZpeGVyKGZvbnQtZmVhdHVyZS1zZXR0aW5ncywgJHNldHRpbmdzLCB3ZWJraXQgbW96IG1zIHNwZWMpO1xufVxuIiwiLy8gSGlEUEkgbWl4aW4uIERlZmF1bHQgdmFsdWUgc2V0IHRvIDEuMyB0byB0YXJnZXQgR29vZ2xlIE5leHVzIDcgKGh0dHA6Ly9iamFuZ28uY29tL2FydGljbGVzL21pbi1kZXZpY2UtcGl4ZWwtcmF0aW8vKVxuQG1peGluIGhpZHBpKCRyYXRpbzogMS4zKSB7XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogJHJhdGlvKSxcbiAgb25seSBzY3JlZW4gYW5kIChtaW4tLW1vei1kZXZpY2UtcGl4ZWwtcmF0aW86ICRyYXRpbyksXG4gIG9ubHkgc2NyZWVuIGFuZCAoLW8tbWluLWRldmljZS1waXhlbC1yYXRpbzogI3skcmF0aW99LzEpLFxuICBvbmx5IHNjcmVlbiBhbmQgKG1pbi1yZXNvbHV0aW9uOiByb3VuZCgkcmF0aW8gKiA5NmRwaSkpLFxuICBvbmx5IHNjcmVlbiBhbmQgKG1pbi1yZXNvbHV0aW9uOiAkcmF0aW8gKiAxZHBweCkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG4iLCJAbWl4aW4gaHlwaGVucygkaHlwaGVuYXRpb246IG5vbmUpIHtcbiAgLy8gbm9uZSB8IG1hbnVhbCB8IGF1dG9cbiAgQGluY2x1ZGUgcHJlZml4ZXIoaHlwaGVucywgJGh5cGhlbmF0aW9uLCB3ZWJraXQgbW96IG1zIHNwZWMpO1xufVxuIiwiQG1peGluIGltYWdlLXJlbmRlcmluZyAoJG1vZGU6YXV0bykge1xuXG4gIEBpZiAoJG1vZGUgPT0gY3Jpc3AtZWRnZXMpIHtcbiAgICAtbXMtaW50ZXJwb2xhdGlvbi1tb2RlOiBuZWFyZXN0LW5laWdoYm9yOyAvLyBJRTgrXG4gICAgaW1hZ2UtcmVuZGVyaW5nOiAtbW96LWNyaXNwLWVkZ2VzO1xuICAgIGltYWdlLXJlbmRlcmluZzogLW8tY3Jpc3AtZWRnZXM7XG4gICAgaW1hZ2UtcmVuZGVyaW5nOiAtd2Via2l0LW9wdGltaXplLWNvbnRyYXN0O1xuICAgIGltYWdlLXJlbmRlcmluZzogY3Jpc3AtZWRnZXM7XG4gIH1cblxuICBAZWxzZSB7XG4gICAgaW1hZ2UtcmVuZGVyaW5nOiAkbW9kZTtcbiAgfVxufVxuIiwiLy8gQWRkcyBrZXlmcmFtZXMgYmxvY2tzIGZvciBzdXBwb3J0ZWQgcHJlZml4ZXMsIHJlbW92aW5nIHJlZHVuZGFudCBwcmVmaXhlcyBpbiB0aGUgYmxvY2sncyBjb250ZW50XG5AbWl4aW4ga2V5ZnJhbWVzKCRuYW1lKSB7XG4gICRvcmlnaW5hbC1wcmVmaXgtZm9yLXdlYmtpdDogICAgJHByZWZpeC1mb3Itd2Via2l0O1xuICAkb3JpZ2luYWwtcHJlZml4LWZvci1tb3ppbGxhOiAgICRwcmVmaXgtZm9yLW1vemlsbGE7XG4gICRvcmlnaW5hbC1wcmVmaXgtZm9yLW1pY3Jvc29mdDogJHByZWZpeC1mb3ItbWljcm9zb2Z0O1xuICAkb3JpZ2luYWwtcHJlZml4LWZvci1vcGVyYTogICAgICRwcmVmaXgtZm9yLW9wZXJhO1xuICAkb3JpZ2luYWwtcHJlZml4LWZvci1zcGVjOiAgICAgICRwcmVmaXgtZm9yLXNwZWM7XG5cbiAgQGlmICRvcmlnaW5hbC1wcmVmaXgtZm9yLXdlYmtpdCB7XG4gICAgQGluY2x1ZGUgZGlzYWJsZS1wcmVmaXgtZm9yLWFsbCgpO1xuICAgICRwcmVmaXgtZm9yLXdlYmtpdDogdHJ1ZSAhZ2xvYmFsO1xuICAgIEAtd2Via2l0LWtleWZyYW1lcyAjeyRuYW1lfSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cblxuICBAaWYgJG9yaWdpbmFsLXByZWZpeC1mb3ItbW96aWxsYSB7XG4gICAgQGluY2x1ZGUgZGlzYWJsZS1wcmVmaXgtZm9yLWFsbCgpO1xuICAgICRwcmVmaXgtZm9yLW1vemlsbGE6IHRydWUgIWdsb2JhbDtcbiAgICBALW1vei1rZXlmcmFtZXMgI3skbmFtZX0ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG5cbiAgJHByZWZpeC1mb3Itd2Via2l0OiAgICAkb3JpZ2luYWwtcHJlZml4LWZvci13ZWJraXQgICAgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3ItbW96aWxsYTogICAkb3JpZ2luYWwtcHJlZml4LWZvci1tb3ppbGxhICAgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3ItbWljcm9zb2Z0OiAkb3JpZ2luYWwtcHJlZml4LWZvci1taWNyb3NvZnQgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3Itb3BlcmE6ICAgICAkb3JpZ2luYWwtcHJlZml4LWZvci1vcGVyYSAgICAgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3Itc3BlYzogICAgICAkb3JpZ2luYWwtcHJlZml4LWZvci1zcGVjICAgICAgIWdsb2JhbDtcblxuICBAaWYgJG9yaWdpbmFsLXByZWZpeC1mb3Itc3BlYyB7XG4gICAgQGtleWZyYW1lcyAjeyRuYW1lfSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cbiIsIkBtaXhpbiBsaW5lYXItZ3JhZGllbnQoJHBvcywgJGcxLCAkZzI6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRnMzogbnVsbCwgJGc0OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZzU6IG51bGwsICRnNjogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGc3OiBudWxsLCAkZzg6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRnOTogbnVsbCwgJGcxMDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGZhbGxiYWNrOiBudWxsKSB7XG4gIC8vIERldGVjdCB3aGF0IHR5cGUgb2YgdmFsdWUgZXhpc3RzIGluICRwb3NcbiAgJHBvcy10eXBlOiB0eXBlLW9mKG50aCgkcG9zLCAxKSk7XG4gICRwb3Mtc3BlYzogbnVsbDtcbiAgJHBvcy1kZWdyZWU6IG51bGw7XG5cbiAgLy8gSWYgJHBvcyBpcyBtaXNzaW5nIGZyb20gbWl4aW4sIHJlYXNzaWduIHZhcnMgYW5kIGFkZCBkZWZhdWx0IHBvc2l0aW9uXG4gIEBpZiAoJHBvcy10eXBlID09IGNvbG9yKSBvciAobnRoKCRwb3MsIDEpID09IFwidHJhbnNwYXJlbnRcIikgIHtcbiAgICAkZzEwOiAkZzk7ICRnOTogJGc4OyAkZzg6ICRnNzsgJGc3OiAkZzY7ICRnNjogJGc1O1xuICAgICRnNTogJGc0OyAkZzQ6ICRnMzsgJGczOiAkZzI7ICRnMjogJGcxOyAkZzE6ICRwb3M7XG4gICAgJHBvczogbnVsbDtcbiAgfVxuXG4gIEBpZiAkcG9zIHtcbiAgICAkcG9zaXRpb25zOiBfbGluZWFyLXBvc2l0aW9ucy1wYXJzZXIoJHBvcyk7XG4gICAgJHBvcy1kZWdyZWU6IG50aCgkcG9zaXRpb25zLCAxKTtcbiAgICAkcG9zLXNwZWM6ICAgbnRoKCRwb3NpdGlvbnMsIDIpO1xuICB9XG5cbiAgJGZ1bGw6ICRnMSwgJGcyLCAkZzMsICRnNCwgJGc1LCAkZzYsICRnNywgJGc4LCAkZzksICRnMTA7XG5cbiAgLy8gU2V0ICRnMSBhcyB0aGUgZGVmYXVsdCBmYWxsYmFjayBjb2xvclxuICAkZmFsbGJhY2stY29sb3I6IG50aCgkZzEsIDEpO1xuXG4gIC8vIElmICRmYWxsYmFjayBpcyBhIGNvbG9yIHVzZSB0aGF0IGNvbG9yIGFzIHRoZSBmYWxsYmFjayBjb2xvclxuICBAaWYgKHR5cGUtb2YoJGZhbGxiYWNrKSA9PSBjb2xvcikgb3IgKCRmYWxsYmFjayA9PSBcInRyYW5zcGFyZW50XCIpIHtcbiAgICAkZmFsbGJhY2stY29sb3I6ICRmYWxsYmFjaztcbiAgfVxuXG4gIGJhY2tncm91bmQtY29sb3I6ICRmYWxsYmFjay1jb2xvcjtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoJHBvcy1kZWdyZWUgJGZ1bGwpOyAvLyBTYWZhcmkgNS4xKywgQ2hyb21lXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVucXVvdGUoXCJsaW5lYXItZ3JhZGllbnQoI3skcG9zLXNwZWN9I3skZnVsbH0pXCIpO1xufVxuIiwiQG1peGluIHBlcnNwZWN0aXZlKCRkZXB0aDogbm9uZSkge1xuICAvLyBub25lIHwgPGxlbmd0aD5cbiAgQGluY2x1ZGUgcHJlZml4ZXIocGVyc3BlY3RpdmUsICRkZXB0aCwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIHBlcnNwZWN0aXZlLW9yaWdpbigkdmFsdWU6IDUwJSA1MCUpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIocGVyc3BlY3RpdmUtb3JpZ2luLCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG4iLCJAbWl4aW4gcGxhY2Vob2xkZXIge1xuICAkcGxhY2Vob2xkZXJzOiBcIjotd2Via2l0LWlucHV0XCIgXCI6LW1velwiIFwiLW1velwiIFwiLW1zLWlucHV0XCI7XG4gIEBlYWNoICRwbGFjZWhvbGRlciBpbiAkcGxhY2Vob2xkZXJzIHtcbiAgICAmOiN7JHBsYWNlaG9sZGVyfS1wbGFjZWhvbGRlciB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIFJlcXVpcmVzIFNhc3MgMy4xK1xuQG1peGluIHJhZGlhbC1ncmFkaWVudCgkZzEsICRnMixcbiAgICAgICAgICAgICAgICAgICAgICAgJGczOiBudWxsLCAkZzQ6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRnNTogbnVsbCwgJGc2OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZzc6IG51bGwsICRnODogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGc5OiBudWxsLCAkZzEwOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkcG9zOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkc2hhcGUtc2l6ZTogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGZhbGxiYWNrOiBudWxsKSB7XG5cbiAgJGRhdGE6IF9yYWRpYWwtYXJnLXBhcnNlcigkZzEsICRnMiwgJHBvcywgJHNoYXBlLXNpemUpO1xuICAkZzE6ICBudGgoJGRhdGEsIDEpO1xuICAkZzI6ICBudGgoJGRhdGEsIDIpO1xuICAkcG9zOiBudGgoJGRhdGEsIDMpO1xuICAkc2hhcGUtc2l6ZTogbnRoKCRkYXRhLCA0KTtcblxuICAkZnVsbDogJGcxLCAkZzIsICRnMywgJGc0LCAkZzUsICRnNiwgJGc3LCAkZzgsICRnOSwgJGcxMDtcblxuICAvLyBTdHJpcCBkZXByZWNhdGVkIGNvdmVyL2NvbnRhaW4gZm9yIHNwZWNcbiAgJHNoYXBlLXNpemUtc3BlYzogX3NoYXBlLXNpemUtc3RyaXBwZXIoJHNoYXBlLXNpemUpO1xuXG4gIC8vIFNldCAkZzEgYXMgdGhlIGRlZmF1bHQgZmFsbGJhY2sgY29sb3JcbiAgJGZpcnN0LWNvbG9yOiBudGgoJGZ1bGwsIDEpO1xuICAkZmFsbGJhY2stY29sb3I6IG50aCgkZmlyc3QtY29sb3IsIDEpO1xuXG4gIEBpZiAodHlwZS1vZigkZmFsbGJhY2spID09IGNvbG9yKSBvciAoJGZhbGxiYWNrID09IFwidHJhbnNwYXJlbnRcIikge1xuICAgICRmYWxsYmFjay1jb2xvcjogJGZhbGxiYWNrO1xuICB9XG5cbiAgLy8gQWRkIENvbW1hcyBhbmQgc3BhY2VzXG4gICRzaGFwZS1zaXplOiBpZigkc2hhcGUtc2l6ZSwgXCIjeyRzaGFwZS1zaXplfSwgXCIsIG51bGwpO1xuICAkcG9zOiAgICAgICAgaWYoJHBvcywgXCIjeyRwb3N9LCBcIiwgbnVsbCk7XG4gICRwb3Mtc3BlYzogICBpZigkcG9zLCBcImF0ICN7JHBvc31cIiwgbnVsbCk7XG4gICRzaGFwZS1zaXplLXNwZWM6IGlmKCgkc2hhcGUtc2l6ZS1zcGVjICE9IFwiIFwiKSBhbmQgKCRwb3MgPT0gbnVsbCksIFwiI3skc2hhcGUtc2l6ZS1zcGVjfSwgXCIsIFwiI3skc2hhcGUtc2l6ZS1zcGVjfSBcIik7XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogICRmYWxsYmFjay1jb2xvcjtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1yYWRpYWwtZ3JhZGllbnQodW5xdW90ZSgjeyRwb3N9I3skc2hhcGUtc2l6ZX0jeyRmdWxsfSkpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1bnF1b3RlKFwicmFkaWFsLWdyYWRpZW50KCN7JHNoYXBlLXNpemUtc3BlY30jeyRwb3Mtc3BlY30jeyRmdWxsfSlcIik7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gT3V0cHV0cyB0aGUgc3BlYyBhbmQgcHJlZml4ZWQgdmVyc2lvbnMgb2YgdGhlIGA6OnNlbGVjdGlvbmAgcHNldWRvLWVsZW1lbnQuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtCb29sfSAkY3VycmVudC1zZWxlY3RvciBbZmFsc2VdXHJcbi8vLyAgIElmIHNldCB0byBgdHJ1ZWAsIGl0IHRha2VzIHRoZSBjdXJyZW50IGVsZW1lbnQgaW50byBjb25zaWRlcmF0aW9uLlxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgQGluY2x1ZGUgc2VsZWN0aW9uKHRydWUpIHtcclxuLy8vICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmJiNTI7XHJcbi8vLyAgICAgfVxyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxyXG4vLy8gICAuZWxlbWVudDo6LW1vei1zZWxlY3Rpb24ge1xyXG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmJiNTI7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyAgIC5lbGVtZW50OjpzZWxlY3Rpb24ge1xyXG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmJiNTI7XHJcbi8vLyAgIH1cclxuXHJcbkBtaXhpbiBzZWxlY3Rpb24oJGN1cnJlbnQtc2VsZWN0b3I6IGZhbHNlKSB7XHJcbiAgQGlmICRjdXJyZW50LXNlbGVjdG9yIHtcclxuICAgICY6Oi1tb3otc2VsZWN0aW9uIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgJjo6c2VsZWN0aW9uIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfSBAZWxzZSB7XHJcbiAgICA6Oi1tb3otc2VsZWN0aW9uIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgOjpzZWxlY3Rpb24ge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiQG1peGluIHRleHQtZGVjb3JhdGlvbigkdmFsdWUpIHtcbi8vIDx0ZXh0LWRlY29yYXRpb24tbGluZT4gfHwgPHRleHQtZGVjb3JhdGlvbi1zdHlsZT4gfHwgPHRleHQtZGVjb3JhdGlvbi1jb2xvcj5cbiAgQGluY2x1ZGUgcHJlZml4ZXIodGV4dC1kZWNvcmF0aW9uLCAkdmFsdWUsIG1veik7XG59XG5cbkBtaXhpbiB0ZXh0LWRlY29yYXRpb24tbGluZSgkbGluZTogbm9uZSkge1xuLy8gbm9uZSB8fCB1bmRlcmxpbmUgfHwgb3ZlcmxpbmUgfHwgbGluZS10aHJvdWdoXG4gIEBpbmNsdWRlIHByZWZpeGVyKHRleHQtZGVjb3JhdGlvbi1saW5lLCAkbGluZSwgbW96KTtcbn1cblxuQG1peGluIHRleHQtZGVjb3JhdGlvbi1zdHlsZSgkc3R5bGU6IHNvbGlkKSB7XG4vLyBzb2xpZCB8fCBkb3VibGUgfHwgZG90dGVkIHx8IGRhc2hlZCB8fCB3YXZ5XG4gIEBpbmNsdWRlIHByZWZpeGVyKHRleHQtZGVjb3JhdGlvbi1zdHlsZSwgJHN0eWxlLCBtb3ogd2Via2l0KTtcbn1cblxuQG1peGluIHRleHQtZGVjb3JhdGlvbi1jb2xvcigkY29sb3I6IGN1cnJlbnRDb2xvcikge1xuLy8gY3VycmVudENvbG9yIHx8IDxjb2xvcj5cbiAgQGluY2x1ZGUgcHJlZml4ZXIodGV4dC1kZWNvcmF0aW9uLWNvbG9yLCAkY29sb3IsIG1veik7XG59XG4iLCJAbWl4aW4gdHJhbnNmb3JtKCRwcm9wZXJ0eTogbm9uZSkge1xuICAvLyBub25lIHwgPHRyYW5zZm9ybS1mdW5jdGlvbj5cbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNmb3JtLCAkcHJvcGVydHksIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcbn1cblxuQG1peGluIHRyYW5zZm9ybS1vcmlnaW4oJGF4ZXM6IDUwJSkge1xuICAvLyB4LWF4aXMgLSBsZWZ0IHwgY2VudGVyIHwgcmlnaHQgIHwgbGVuZ3RoIHwgJVxuICAvLyB5LWF4aXMgLSB0b3AgIHwgY2VudGVyIHwgYm90dG9tIHwgbGVuZ3RoIHwgJVxuICAvLyB6LWF4aXMgLSAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoXG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zZm9ybS1vcmlnaW4sICRheGVzLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XG59XG5cbkBtaXhpbiB0cmFuc2Zvcm0tc3R5bGUoJHN0eWxlOiBmbGF0KSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zZm9ybS1zdHlsZSwgJHN0eWxlLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XG59XG4iLCIvLyBTaG9ydGhhbmQgbWl4aW4uIFN1cHBvcnRzIG11bHRpcGxlIHBhcmVudGhlc2VzLWRlbGltaW5hdGVkIHZhbHVlcyBmb3IgZWFjaCB2YXJpYWJsZS5cbi8vIEV4YW1wbGU6IEBpbmNsdWRlIHRyYW5zaXRpb24gKGFsbCAycyBlYXNlLWluLW91dCk7XG4vLyAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uIChvcGFjaXR5IDFzIGVhc2UtaW4gMnMsIHdpZHRoIDJzIGVhc2Utb3V0KTtcbi8vICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tcHJvcGVydHkgKHRyYW5zZm9ybSwgb3BhY2l0eSk7XG5cbkBtaXhpbiB0cmFuc2l0aW9uKCRwcm9wZXJ0aWVzLi4uKSB7XG4gIC8vIEZpeCBmb3IgdmVuZG9yLXByZWZpeCB0cmFuc2Zvcm0gcHJvcGVydHlcbiAgJG5lZWRzLXByZWZpeGVzOiBmYWxzZTtcbiAgJHdlYmtpdDogKCk7XG4gICRtb3o6ICgpO1xuICAkc3BlYzogKCk7XG5cbiAgLy8gQ3JlYXRlIGxpc3RzIGZvciB2ZW5kb3ItcHJlZml4ZWQgdHJhbnNmb3JtXG4gIEBlYWNoICRsaXN0IGluICRwcm9wZXJ0aWVzIHtcbiAgICBAaWYgbnRoKCRsaXN0LCAxKSA9PSBcInRyYW5zZm9ybVwiIHtcbiAgICAgICRuZWVkcy1wcmVmaXhlczogdHJ1ZTtcbiAgICAgICRsaXN0MTogLXdlYmtpdC10cmFuc2Zvcm07XG4gICAgICAkbGlzdDI6IC1tb3otdHJhbnNmb3JtO1xuICAgICAgJGxpc3QzOiAoKTtcblxuICAgICAgQGVhY2ggJHZhciBpbiAkbGlzdCB7XG4gICAgICAgICRsaXN0Mzogam9pbigkbGlzdDMsICR2YXIpO1xuXG4gICAgICAgIEBpZiAkdmFyICE9IFwidHJhbnNmb3JtXCIge1xuICAgICAgICAgICRsaXN0MTogam9pbigkbGlzdDEsICR2YXIpO1xuICAgICAgICAgICRsaXN0Mjogam9pbigkbGlzdDIsICR2YXIpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICR3ZWJraXQ6IGFwcGVuZCgkd2Via2l0LCAkbGlzdDEpO1xuICAgICAgJG1vejogICAgYXBwZW5kKCRtb3osICAgICRsaXN0Mik7XG4gICAgICAkc3BlYzogICBhcHBlbmQoJHNwZWMsICAgJGxpc3QzKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICR3ZWJraXQ6IGFwcGVuZCgkd2Via2l0LCAkbGlzdCwgY29tbWEpO1xuICAgICAgJG1vejogICAgYXBwZW5kKCRtb3osICAgICRsaXN0LCBjb21tYSk7XG4gICAgICAkc3BlYzogICBhcHBlbmQoJHNwZWMsICAgJGxpc3QsIGNvbW1hKTtcbiAgICB9XG4gIH1cblxuICBAaWYgJG5lZWRzLXByZWZpeGVzIHtcbiAgICAtd2Via2l0LXRyYW5zaXRpb246ICR3ZWJraXQ7XG4gICAgICAgLW1vei10cmFuc2l0aW9uOiAkbW96O1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogJHNwZWM7XG4gIH0gQGVsc2Uge1xuICAgIEBpZiBsZW5ndGgoJHByb3BlcnRpZXMpID49IDEge1xuICAgICAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbiwgJHByb3BlcnRpZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkcHJvcGVydGllczogYWxsIDAuMTVzIGVhc2Utb3V0IDBzO1xuICAgICAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbiwgJHByb3BlcnRpZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiB0cmFuc2l0aW9uLXByb3BlcnR5KCRwcm9wZXJ0aWVzLi4uKSB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lcygkcHJvcGVydGllcywgXCJ3ZWJraXRcIik7XG4gICAgIC1tb3otdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lcygkcHJvcGVydGllcywgXCJtb3pcIik7XG4gICAgICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lcygkcHJvcGVydGllcywgZmFsc2UpO1xufVxuXG5AbWl4aW4gdHJhbnNpdGlvbi1kdXJhdGlvbigkdGltZXMuLi4pIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbi1kdXJhdGlvbiwgJHRpbWVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24oJG1vdGlvbnMuLi4pIHtcbiAgLy8gZWFzZSB8IGxpbmVhciB8IGVhc2UtaW4gfCBlYXNlLW91dCB8IGVhc2UtaW4tb3V0IHwgY3ViaWMtYmV6aWVyKClcbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24sICRtb3Rpb25zLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gdHJhbnNpdGlvbi1kZWxheSgkdGltZXMuLi4pIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbi1kZWxheSwgJHRpbWVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuIiwiQG1peGluIHVzZXItc2VsZWN0KCR2YWx1ZTogbm9uZSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcih1c2VyLXNlbGVjdCwgJHZhbHVlLCB3ZWJraXQgbW96IG1zIHNwZWMpO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHRhcmdldGluZyBgYm9yZGVyLWNvbG9yYCBvbiBzcGVjaWZpYyBzaWRlcyBvZiBhIGJveC4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkdmFsc1xuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBib3JkZXItY29sb3IoI2E2MGI1NSAjNzZjZDljIG51bGwgI2U4YWUxYSk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJvcmRlci1sZWZ0LWNvbG9yOiAjZThhZTFhO1xuLy8vICAgICBib3JkZXItcmlnaHQtY29sb3I6ICM3NmNkOWM7XG4vLy8gICAgIGJvcmRlci10b3AtY29sb3I6ICNhNjBiNTU7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSB7bWl4aW59IGRpcmVjdGlvbmFsLXByb3BlcnR5XG4vLy9cbi8vLyBAb3V0cHV0IGBib3JkZXItY29sb3JgXG5cbkBtaXhpbiBib3JkZXItY29sb3IoJHZhbHMuLi4pIHtcbiAgQGluY2x1ZGUgZGlyZWN0aW9uYWwtcHJvcGVydHkoYm9yZGVyLCBjb2xvciwgJHZhbHMuLi4pO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHRhcmdldGluZyBgYm9yZGVyLXJhZGl1c2Agb24gYm90aCBjb3JuZXJzIG9uIHRoZSBzaWRlIG9mIGEgYm94LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRyYWRpaVxuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQtb25lIHtcbi8vLyAgICAgQGluY2x1ZGUgYm9yZGVyLXRvcC1yYWRpdXMoNXB4KTtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLmVsZW1lbnQtdHdvIHtcbi8vLyAgICAgQGluY2x1ZGUgYm9yZGVyLWxlZnQtcmFkaXVzKDNweCk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudC1vbmUge1xuLy8vICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA1cHg7XG4vLy8gICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA1cHg7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5lbGVtZW50LXR3byB7XG4vLy8gICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDNweDtcbi8vLyAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogM3B4O1xuLy8vICAgfVxuLy8vXG4vLy8gQG91dHB1dCBgYm9yZGVyLXJhZGl1c2BcblxuQG1peGluIGJvcmRlci10b3AtcmFkaXVzKCRyYWRpaSkge1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkcmFkaWk7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkcmFkaWk7XG59XG5cbkBtaXhpbiBib3JkZXItcmlnaHQtcmFkaXVzKCRyYWRpaSkge1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogJHJhZGlpO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogJHJhZGlpO1xufVxuXG5AbWl4aW4gYm9yZGVyLWJvdHRvbS1yYWRpdXMoJHJhZGlpKSB7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICRyYWRpaTtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6ICRyYWRpaTtcbn1cblxuQG1peGluIGJvcmRlci1sZWZ0LXJhZGl1cygkcmFkaWkpIHtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogJHJhZGlpO1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkcmFkaWk7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm92aWRlcyBhIHF1aWNrIG1ldGhvZCBmb3IgdGFyZ2V0aW5nIGBib3JkZXItc3R5bGVgIG9uIHNwZWNpZmljIHNpZGVzIG9mIGEgYm94LiBVc2UgYSBgbnVsbGAgdmFsdWUgdG8g4oCcc2tpcOKAnSBhIHNpZGUuXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICR2YWxzXG4vLy8gICBMaXN0IG9mIGFyZ3VtZW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIGJvcmRlci1zdHlsZShkYXNoZWQgbnVsbCBzb2xpZCk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkO1xuLy8vICAgICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSB7bWl4aW59IGRpcmVjdGlvbmFsLXByb3BlcnR5XG4vLy9cbi8vLyBAb3V0cHV0IGBib3JkZXItc3R5bGVgXG5cbkBtaXhpbiBib3JkZXItc3R5bGUoJHZhbHMuLi4pIHtcbiAgQGluY2x1ZGUgZGlyZWN0aW9uYWwtcHJvcGVydHkoYm9yZGVyLCBzdHlsZSwgJHZhbHMuLi4pO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHRhcmdldGluZyBgYm9yZGVyLXdpZHRoYCBvbiBzcGVjaWZpYyBzaWRlcyBvZiBhIGJveC4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkdmFsc1xuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBib3JkZXItd2lkdGgoMWVtIG51bGwgMjBweCk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDIwcHg7XG4vLy8gICAgIGJvcmRlci10b3Atd2lkdGg6IDFlbTtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIHttaXhpbn0gZGlyZWN0aW9uYWwtcHJvcGVydHlcbi8vL1xuLy8vIEBvdXRwdXQgYGJvcmRlci13aWR0aGBcblxuQG1peGluIGJvcmRlci13aWR0aCgkdmFscy4uLikge1xuICBAaW5jbHVkZSBkaXJlY3Rpb25hbC1wcm9wZXJ0eShib3JkZXIsIHdpZHRoLCAkdmFscy4uLik7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBHZW5lcmF0ZXMgdmFyaWFibGVzIGZvciBhbGwgYnV0dG9ucy4gUGxlYXNlIG5vdGUgdGhhdCB5b3UgbXVzdCB1c2UgaW50ZXJwb2xhdGlvbiBvbiB0aGUgdmFyaWFibGU6IGAjeyRhbGwtYnV0dG9uc31gLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAjeyRhbGwtYnV0dG9uc30ge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjAwO1xuLy8vICAgfVxuLy8vXG4vLy8gICAjeyRhbGwtYnV0dG9ucy1mb2N1c30sXG4vLy8gICAjeyRhbGwtYnV0dG9ucy1ob3Zlcn0ge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGYwO1xuLy8vICAgfVxuLy8vXG4vLy8gICAjeyRhbGwtYnV0dG9ucy1hY3RpdmV9IHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwZjtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIGJ1dHRvbixcbi8vLyAgIGlucHV0W3R5cGU9XCJidXR0b25cIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwicmVzZXRcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogI2YwMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgYnV0dG9uOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cImJ1dHRvblwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJyZXNldFwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJzdWJtaXRcIl06Zm9jdXMsXG4vLy8gICBidXR0b246aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cInJlc2V0XCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXTpob3ZlciB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICMwZjA7XG4vLy8gICB9XG4vLy9cbi8vLyAgIGJ1dHRvbjphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJyZXNldFwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwic3VibWl0XCJdOmFjdGl2ZSB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICMwMGY7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSBhc3NpZ24taW5wdXRzXG4vLy9cbi8vLyBAdHlwZSBMaXN0XG4vLy9cbi8vLyBAdG9kbyBSZW1vdmUgZG91YmxlIGFzc2lnbmVkIHZhcmlhYmxlcyAoTGluZXMgNTnigJM2MikgaW4gdjUuMC4wXG5cbiRidXR0b25zLWxpc3Q6ICdidXR0b24nLFxuICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJidXR0b25cIl0nLFxuICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJyZXNldFwiXScsXG4gICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSc7XG5cbiRhbGwtYnV0dG9uczogICAgICAgIGFzc2lnbi1pbnB1dHMoJGJ1dHRvbnMtbGlzdCk7XG4kYWxsLWJ1dHRvbnMtYWN0aXZlOiBhc3NpZ24taW5wdXRzKCRidXR0b25zLWxpc3QsIGFjdGl2ZSk7XG4kYWxsLWJ1dHRvbnMtZm9jdXM6ICBhc3NpZ24taW5wdXRzKCRidXR0b25zLWxpc3QsIGZvY3VzKTtcbiRhbGwtYnV0dG9ucy1ob3ZlcjogIGFzc2lnbi1pbnB1dHMoJGJ1dHRvbnMtbGlzdCwgaG92ZXIpO1xuXG4kYWxsLWJ1dHRvbi1pbnB1dHM6ICAgICAgICAkYWxsLWJ1dHRvbnM7XG4kYWxsLWJ1dHRvbi1pbnB1dHMtYWN0aXZlOiAkYWxsLWJ1dHRvbnMtYWN0aXZlO1xuJGFsbC1idXR0b24taW5wdXRzLWZvY3VzOiAgJGFsbC1idXR0b25zLWZvY3VzO1xuJGFsbC1idXR0b24taW5wdXRzLWhvdmVyOiAgJGFsbC1idXR0b25zLWhvdmVyO1xuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYW4gZWFzeSB3YXkgdG8gaW5jbHVkZSBhIGNsZWFyZml4IGZvciBjb250YWluaW5nIGZsb2F0cy5cbi8vL1xuLy8vIEBsaW5rIGh0dHA6Ly9jc3Ntb2pvLmNvbS9sYXRlc3RfbmV3X2NsZWFyZml4X3NvX2Zhci9cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50OjphZnRlciB7XG4vLy8gICAgIGNsZWFyOiBib3RoO1xuLy8vICAgICBjb250ZW50OiBcIlwiO1xuLy8vICAgICBkaXNwbGF5OiB0YWJsZTtcbi8vLyAgIH1cblxuQG1peGluIGNsZWFyZml4IHtcbiAgJjo6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoO1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZGlzcGxheTogdGFibGU7XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFRydW5jYXRlcyB0ZXh0IGFuZCBhZGRzIGFuIGVsbGlwc2lzIHRvIHJlcHJlc2VudCBvdmVyZmxvdy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2lkdGggWzEwMCVdXG4vLy8gICBNYXgtd2lkdGggZm9yIHRoZSBzdHJpbmcgdG8gcmVzcGVjdCBiZWZvcmUgYmVpbmcgdHJ1bmNhdGVkXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgZWxsaXBzaXM7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbi8vLyAgICAgbWF4LXdpZHRoOiAxMDAlO1xuLy8vICAgICBvdmVyZmxvdzogaGlkZGVuO1xuLy8vICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbi8vLyAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbi8vLyAgICAgd29yZC13cmFwOiBub3JtYWw7XG4vLy8gICB9XG5cbkBtaXhpbiBlbGxpcHNpcygkd2lkdGg6IDEwMCUpIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXgtd2lkdGg6ICR3aWR0aDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHdvcmQtd3JhcDogbm9ybWFsO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gR2VvcmdpYSBmb250IHN0YWNrLlxuLy8vXG4vLy8gQHR5cGUgTGlzdFxuXG4kZ2VvcmdpYTogXCJHZW9yZ2lhXCIsIFwiQ2FtYnJpYVwiLCBcIlRpbWVzIE5ldyBSb21hblwiLCBcIlRpbWVzXCIsIHNlcmlmO1xuXG4vLy8gSGVsdmV0aWNhIGZvbnQgc3RhY2suXG4vLy9cbi8vLyBAdHlwZSBMaXN0XG5cbiRoZWx2ZXRpY2E6IFwiSGVsdmV0aWNhIE5ldWVcIiwgXCJIZWx2ZXRpY2FcIiwgXCJSb2JvdG9cIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xuXG4vLy8gTHVjaWRhIEdyYW5kZSBmb250IHN0YWNrLlxuLy8vXG4vLy8gQHR5cGUgTGlzdFxuXG4kbHVjaWRhLWdyYW5kZTogXCJMdWNpZGEgR3JhbmRlXCIsIFwiVGFob21hXCIsIFwiVmVyZGFuYVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG5cbi8vLyBNb25vc3BhY2UgZm9udCBzdGFjay5cbi8vL1xuLy8vIEB0eXBlIExpc3RcblxuJG1vbm9zcGFjZTogXCJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm9cIiwgXCJDb25zb2xhc1wiLCBcIkNvdXJpZXJcIiwgbW9ub3NwYWNlO1xuXG4vLy8gVmVyZGFuYSBmb250IHN0YWNrLlxuLy8vXG4vLy8gQHR5cGUgTGlzdFxuXG4kdmVyZGFuYTogXCJWZXJkYW5hXCIsIFwiR2VuZXZhXCIsIHNhbnMtc2VyaWY7XG4iLCIvLy8gSGlkZXMgdGhlIHRleHQgaW4gYW4gZWxlbWVudCwgY29tbW9ubHkgdXNlZCB0byBzaG93IGFuIGltYWdlLiBTb21lIGVsZW1lbnRzIHdpbGwgbmVlZCBibG9jay1sZXZlbCBzdHlsZXMgYXBwbGllZC5cbi8vL1xuLy8vIEBsaW5rIGh0dHA6Ly96ZWxkbWFuLmNvbS8yMDEyLzAzLzAxL3JlcGxhY2luZy10aGUtOTk5OXB4LWhhY2stbmV3LWltYWdlLXJlcGxhY2VtZW50XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgaGlkZS10ZXh0O1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBvdmVyZmxvdzogaGlkZGVuO1xuLy8vICAgICB0ZXh0LWluZGVudDogMTAxJTtcbi8vLyAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbi8vLyAgIH1cbi8vL1xuLy8vIEB0b2RvIFJlbW92ZSBoZWlnaHQgYXJndW1lbnQgaW4gdjUuMC4wXG5cbkBtaXhpbiBoaWRlLXRleHQoJGhlaWdodDogbnVsbCkge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LWluZGVudDogMTAxJTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICBAaWYgJGhlaWdodCB7XG4gICAgQHdhcm4gXCJUaGUgYGhpZGUtdGV4dGAgbWl4aW4gaGFzIGNoYW5nZWQgYW5kIG5vIGxvbmdlciByZXF1aXJlcyBhIGhlaWdodC4gVGhlIGhlaWdodCBhcmd1bWVudCB3aWxsIG5vIGxvbmdlciBiZSBhY2NlcHRlZCBpbiB2NS4wLjBcIjtcbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHRhcmdldGluZyBgbWFyZ2luYCBvbiBzcGVjaWZpYyBzaWRlcyBvZiBhIGJveC4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkdmFsc1xuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBtYXJnaW4obnVsbCAxMHB4IDNlbSAyMHZoKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgbWFyZ2luLWJvdHRvbTogM2VtO1xuLy8vICAgICBtYXJnaW4tbGVmdDogMjB2aDtcbi8vLyAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge21peGlufSBkaXJlY3Rpb25hbC1wcm9wZXJ0eVxuLy8vXG4vLy8gQG91dHB1dCBgbWFyZ2luYFxuXG5AbWl4aW4gbWFyZ2luKCR2YWxzLi4uKSB7XG4gIEBpbmNsdWRlIGRpcmVjdGlvbmFsLXByb3BlcnR5KG1hcmdpbiwgZmFsc2UsICR2YWxzLi4uKTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciB0YXJnZXRpbmcgYHBhZGRpbmdgIG9uIHNwZWNpZmljIHNpZGVzIG9mIGEgYm94LiBVc2UgYSBgbnVsbGAgdmFsdWUgdG8g4oCcc2tpcOKAnSBhIHNpZGUuXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICR2YWxzXG4vLy8gICBMaXN0IG9mIGFyZ3VtZW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIHBhZGRpbmcoMTJ2aCBudWxsIDEwcHggNSUpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBwYWRkaW5nLWJvdHRvbTogMTBweDtcbi8vLyAgICAgcGFkZGluZy1sZWZ0OiA1JTtcbi8vLyAgICAgcGFkZGluZy10b3A6IDEydmg7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSB7bWl4aW59IGRpcmVjdGlvbmFsLXByb3BlcnR5XG4vLy9cbi8vLyBAb3V0cHV0IGBwYWRkaW5nYFxuXG5AbWl4aW4gcGFkZGluZygkdmFscy4uLikge1xuICBAaW5jbHVkZSBkaXJlY3Rpb25hbC1wcm9wZXJ0eShwYWRkaW5nLCBmYWxzZSwgJHZhbHMuLi4pO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHNldHRpbmcgYW4gZWxlbWVudOKAmXMgcG9zaXRpb24uIFVzZSBhIGBudWxsYCB2YWx1ZSB0byDigJxza2lw4oCdIGEgc2lkZS5cbi8vL1xuLy8vIEBwYXJhbSB7UG9zaXRpb259ICRwb3NpdGlvbiBbcmVsYXRpdmVdXG4vLy8gICBBIENTUyBwb3NpdGlvbiB2YWx1ZVxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkY29vcmRpbmF0ZXMgW251bGwgbnVsbCBudWxsIG51bGxdXG4vLy8gICBMaXN0IG9mIHZhbHVlcyB0aGF0IGNvcnJlc3BvbmQgdG8gdGhlIDQtdmFsdWUgc3ludGF4IGZvciB0aGUgZWRnZXMgb2YgYSBib3hcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgMCBudWxsIG51bGwgMTBlbSk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGxlZnQ6IDEwZW07XG4vLy8gICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbi8vLyAgICAgdG9wOiAwO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBpcy1sZW5ndGhcbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IHVucGFja1xuXG5AbWl4aW4gcG9zaXRpb24oJHBvc2l0aW9uOiByZWxhdGl2ZSwgJGNvb3JkaW5hdGVzOiBudWxsIG51bGwgbnVsbCBudWxsKSB7XG4gIEBpZiB0eXBlLW9mKCRwb3NpdGlvbikgPT0gbGlzdCB7XG4gICAgJGNvb3JkaW5hdGVzOiAkcG9zaXRpb247XG4gICAgJHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxuXG4gICRjb29yZGluYXRlczogdW5wYWNrKCRjb29yZGluYXRlcyk7XG5cbiAgJG9mZnNldHM6IChcbiAgICB0b3A6ICAgIG50aCgkY29vcmRpbmF0ZXMsIDEpLFxuICAgIHJpZ2h0OiAgbnRoKCRjb29yZGluYXRlcywgMiksXG4gICAgYm90dG9tOiBudGgoJGNvb3JkaW5hdGVzLCAzKSxcbiAgICBsZWZ0OiAgIG50aCgkY29vcmRpbmF0ZXMsIDQpXG4gICk7XG5cbiAgcG9zaXRpb246ICRwb3NpdGlvbjtcblxuICBAZWFjaCAkb2Zmc2V0LCAkdmFsdWUgaW4gJG9mZnNldHMge1xuICAgIEBpZiBpcy1sZW5ndGgoJHZhbHVlKSB7XG4gICAgICAjeyRvZmZzZXR9OiAkdmFsdWU7XG4gICAgfVxuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBBIG1peGluIGZvciBnZW5lcmF0aW5nIHZlbmRvciBwcmVmaXhlcyBvbiBub24tc3RhbmRhcmRpemVkIHByb3BlcnRpZXMuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHByb3BlcnR5XG4vLy8gICBQcm9wZXJ0eSB0byBwcmVmaXhcbi8vL1xuLy8vIEBwYXJhbSB7Kn0gJHZhbHVlXG4vLy8gICBWYWx1ZSB0byB1c2Vcbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHByZWZpeGVzXG4vLy8gICBQcmVmaXhlcyB0byBkZWZpbmVcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBwcmVmaXhlcihib3JkZXItcmFkaXVzLCAxMHB4LCB3ZWJraXQgbXMgc3BlYyk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMTBweDtcbi8vLyAgICAgLW1vei1ib3JkZXItcmFkaXVzOiAxMHB4O1xuLy8vICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge3ZhcmlhYmxlfSAkcHJlZml4LWZvci13ZWJraXRcbi8vLyBAcmVxdWlyZSB7dmFyaWFibGV9ICRwcmVmaXgtZm9yLW1vemlsbGFcbi8vLyBAcmVxdWlyZSB7dmFyaWFibGV9ICRwcmVmaXgtZm9yLW1pY3Jvc29mdFxuLy8vIEByZXF1aXJlIHt2YXJpYWJsZX0gJHByZWZpeC1mb3Itb3BlcmFcbi8vLyBAcmVxdWlyZSB7dmFyaWFibGV9ICRwcmVmaXgtZm9yLXNwZWNcblxuQG1peGluIHByZWZpeGVyKCRwcm9wZXJ0eSwgJHZhbHVlLCAkcHJlZml4ZXMpIHtcbiAgQGVhY2ggJHByZWZpeCBpbiAkcHJlZml4ZXMge1xuICAgIEBpZiAkcHJlZml4ID09IHdlYmtpdCB7XG4gICAgICBAaWYgJHByZWZpeC1mb3Itd2Via2l0IHtcbiAgICAgICAgLXdlYmtpdC0jeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIGlmICRwcmVmaXggPT0gbW96IHtcbiAgICAgIEBpZiAkcHJlZml4LWZvci1tb3ppbGxhIHtcbiAgICAgICAgLW1vei0jeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIGlmICRwcmVmaXggPT0gbXMge1xuICAgICAgQGlmICRwcmVmaXgtZm9yLW1pY3Jvc29mdCB7XG4gICAgICAgIC1tcy0jeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIGlmICRwcmVmaXggPT0gbyB7XG4gICAgICBAaWYgJHByZWZpeC1mb3Itb3BlcmEge1xuICAgICAgICAtby0jeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIGlmICRwcmVmaXggPT0gc3BlYyB7XG4gICAgICBAaWYgJHByZWZpeC1mb3Itc3BlYyB7XG4gICAgICAgICN7JHByb3BlcnR5fTogJHZhbHVlO1xuICAgICAgfVxuICAgIH0gQGVsc2UgIHtcbiAgICAgIEB3YXJuIFwiVW5yZWNvZ25pemVkIHByZWZpeDogI3skcHJlZml4fVwiO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZGlzYWJsZS1wcmVmaXgtZm9yLWFsbCgpIHtcbiAgJHByZWZpeC1mb3Itd2Via2l0OiAgICBmYWxzZSAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1tb3ppbGxhOiAgIGZhbHNlICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLW1pY3Jvc29mdDogZmFsc2UgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3Itb3BlcmE6ICAgICBmYWxzZSAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1zcGVjOiAgICAgIGZhbHNlICFnbG9iYWw7XG59XG4iLCJAbWl4aW4gcmV0aW5hLWltYWdlKCRmaWxlbmFtZSwgJGJhY2tncm91bmQtc2l6ZSwgJGV4dGVuc2lvbjogcG5nLCAkcmV0aW5hLWZpbGVuYW1lOiBudWxsLCAkcmV0aW5hLXN1ZmZpeDogXzJ4LCAkYXNzZXQtcGlwZWxpbmU6ICRhc3NldC1waXBlbGluZSkge1xuICBAaWYgJGFzc2V0LXBpcGVsaW5lIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBpbWFnZS11cmwoXCIjeyRmaWxlbmFtZX0uI3skZXh0ZW5zaW9ufVwiKTtcbiAgfSBAZWxzZSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogICAgICAgdXJsKFwiI3skZmlsZW5hbWV9LiN7JGV4dGVuc2lvbn1cIik7XG4gIH1cblxuICBAaW5jbHVkZSBoaWRwaSB7XG4gICAgQGlmICRhc3NldC1waXBlbGluZSB7XG4gICAgICBAaWYgJHJldGluYS1maWxlbmFtZSB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGltYWdlLXVybChcIiN7JHJldGluYS1maWxlbmFtZX0uI3skZXh0ZW5zaW9ufVwiKTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBpbWFnZS11cmwoXCIjeyRmaWxlbmFtZX0jeyRyZXRpbmEtc3VmZml4fS4jeyRleHRlbnNpb259XCIpO1xuICAgICAgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgQGlmICRyZXRpbmEtZmlsZW5hbWUge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIjeyRyZXRpbmEtZmlsZW5hbWV9LiN7JGV4dGVuc2lvbn1cIik7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiI3skZmlsZW5hbWV9I3skcmV0aW5hLXN1ZmZpeH0uI3skZXh0ZW5zaW9ufVwiKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBiYWNrZ3JvdW5kLXNpemU6ICRiYWNrZ3JvdW5kLXNpemU7XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFNldHMgdGhlIGB3aWR0aGAgYW5kIGBoZWlnaHRgIG9mIHRoZSBlbGVtZW50LlxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkc2l6ZVxuLy8vICAgQSBsaXN0IG9mIGF0IG1vc3QgMiBzaXplIHZhbHVlcy5cbi8vL1xuLy8vICAgSWYgdGhlcmUgaXMgb25seSBhIHNpbmdsZSB2YWx1ZSBpbiBgJHNpemVgIGl0IGlzIHVzZWQgZm9yIGJvdGggd2lkdGggYW5kIGhlaWdodC4gQWxsIHVuaXRzIGFyZSBzdXBwb3J0ZWQuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5maXJzdC1lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgc2l6ZSgyZW0pO1xuLy8vICAgfVxuLy8vXG4vLy8gICAuc2Vjb25kLWVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBzaXplKGF1dG8gMTBlbSk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZmlyc3QtZWxlbWVudCB7XG4vLy8gICAgIHdpZHRoOiAyZW07XG4vLy8gICAgIGhlaWdodDogMmVtO1xuLy8vICAgfVxuLy8vXG4vLy8gICAuc2Vjb25kLWVsZW1lbnQge1xuLy8vICAgICB3aWR0aDogYXV0bztcbi8vLyAgICAgaGVpZ2h0OiAxMGVtO1xuLy8vICAgfVxuLy8vXG4vLy8gQHRvZG8gUmVmYWN0b3IgaW4gNS4wLjAgdG8gdXNlIGEgY29tbWEtc2VwYXJhdGVkIGFyZ3VtZW50XG5cbkBtaXhpbiBzaXplKCR2YWx1ZSkge1xuICAkd2lkdGg6IG50aCgkdmFsdWUsIDEpO1xuICAkaGVpZ2h0OiAkd2lkdGg7XG5cbiAgQGlmIGxlbmd0aCgkdmFsdWUpID4gMSB7XG4gICAgJGhlaWdodDogbnRoKCR2YWx1ZSwgMik7XG4gIH1cblxuICBAaWYgaXMtc2l6ZSgkaGVpZ2h0KSB7XG4gICAgaGVpZ2h0OiAkaGVpZ2h0O1xuICB9IEBlbHNlIHtcbiAgICBAd2FybiBcImAjeyRoZWlnaHR9YCBpcyBub3QgYSB2YWxpZCBsZW5ndGggZm9yIHRoZSBgJGhlaWdodGAgcGFyYW1ldGVyIGluIHRoZSBgc2l6ZWAgbWl4aW4uXCI7XG4gIH1cblxuICBAaWYgaXMtc2l6ZSgkd2lkdGgpIHtcbiAgICB3aWR0aDogJHdpZHRoO1xuICB9IEBlbHNlIHtcbiAgICBAd2FybiBcImAjeyR3aWR0aH1gIGlzIG5vdCBhIHZhbGlkIGxlbmd0aCBmb3IgdGhlIGAkd2lkdGhgIHBhcmFtZXRlciBpbiB0aGUgYHNpemVgIG1peGluLlwiO1xuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBHZW5lcmF0ZXMgdmFyaWFibGVzIGZvciBhbGwgdGV4dC1iYXNlZCBpbnB1dHMuIFBsZWFzZSBub3RlIHRoYXQgeW91IG11c3QgdXNlIGludGVycG9sYXRpb24gb24gdGhlIHZhcmlhYmxlOiBgI3skYWxsLXRleHQtaW5wdXRzfWAuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgICN7JGFsbC10ZXh0LWlucHV0c30ge1xuLy8vICAgICBib3JkZXI6IDFweCBzb2xpZCAjZjAwO1xuLy8vICAgfVxuLy8vXG4vLy8gICAjeyRhbGwtdGV4dC1pbnB1dHMtZm9jdXN9LFxuLy8vICAgI3skYWxsLXRleHQtaW5wdXRzLWhvdmVyfSB7XG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICMwZjA7XG4vLy8gICB9XG4vLy9cbi8vLyAgICN7JGFsbC10ZXh0LWlucHV0cy1hY3RpdmV9IHtcbi8vLyAgICAgYm9yZGVyOiAxcHggc29saWQgIzAwZjtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIGlucHV0W3R5cGU9XCJjb2xvclwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRlXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cImVtYWlsXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cIm1vbnRoXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cIm51bWJlclwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJzZWFyY2hcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwidGVsXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cInRleHRcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwidGltZVwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ1cmxcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwid2Vla1wiXSxcbi8vLyAgIHRleHRhcmVhIHtcbi8vLyAgICAgYm9yZGVyOiAxcHggc29saWQgI2YwMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgaW5wdXRbdHlwZT1cImNvbG9yXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGVcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwiZW1haWxcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwibW9udGhcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cInNlYXJjaFwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZWxcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwidGV4dFwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJ0aW1lXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cInVybFwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJ3ZWVrXCJdOmZvY3VzLFxuLy8vICAgdGV4dGFyZWE6Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwiY29sb3JcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZVwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZVwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJlbWFpbFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJtb250aFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJudW1iZXJcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwic2VhcmNoXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cInRlbFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZXh0XCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cInRpbWVcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwidXJsXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cIndlZWtcIl06aG92ZXIsXG4vLy8gICB0ZXh0YXJlYTpob3ZlciB7XG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICMwZjA7XG4vLy8gICB9XG4vLy9cbi8vLyAgIGlucHV0W3R5cGU9XCJjb2xvclwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZVwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJlbWFpbFwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwibW9udGhcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cIm51bWJlclwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cInNlYXJjaFwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwidGVsXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZXh0XCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ0aW1lXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ1cmxcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cIndlZWtcIl06YWN0aXZlLFxuLy8vICAgdGV4dGFyZWE6YWN0aXZlIHtcbi8vLyAgICAgYm9yZGVyOiAxcHggc29saWQgIzAwZjtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIGFzc2lnbi1pbnB1dHNcbi8vL1xuLy8vIEB0eXBlIExpc3RcblxuJHRleHQtaW5wdXRzLWxpc3Q6ICdpbnB1dFt0eXBlPVwiY29sb3JcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwiZGF0ZVwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJkYXRldGltZVwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJlbWFpbFwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJtb250aFwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJudW1iZXJcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwic2VhcmNoXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInRlbFwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJ0ZXh0XCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInRpbWVcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwidXJsXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cIndlZWtcIl0nLFxuICAgICAgICAgICAgICAgICAgICd0ZXh0YXJlYSc7XG5cbiRhbGwtdGV4dC1pbnB1dHM6ICAgICAgICBhc3NpZ24taW5wdXRzKCR0ZXh0LWlucHV0cy1saXN0KTtcbiRhbGwtdGV4dC1pbnB1dHMtYWN0aXZlOiBhc3NpZ24taW5wdXRzKCR0ZXh0LWlucHV0cy1saXN0LCBhY3RpdmUpO1xuJGFsbC10ZXh0LWlucHV0cy1mb2N1czogIGFzc2lnbi1pbnB1dHMoJHRleHQtaW5wdXRzLWxpc3QsIGZvY3VzKTtcbiRhbGwtdGV4dC1pbnB1dHMtaG92ZXI6ICBhc3NpZ24taW5wdXRzKCR0ZXh0LWlucHV0cy1saXN0LCBob3Zlcik7XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBDU1MgY3ViaWMtYmV6aWVyIHRpbWluZyBmdW5jdGlvbnMuIFRpbWluZyBmdW5jdGlvbnMgY291cnRlc3kgb2YganF1ZXJ5LmVhc2llIChnaXRodWIuY29tL2phdWtpYS9lYXNpZSlcbi8vL1xuLy8vIFRpbWluZyBmdW5jdGlvbnMgYXJlIHRoZSBzYW1lIGFzIGRlbW9lZCBoZXJlOiBodHRwOi8vanF1ZXJ5dWkuY29tL3Jlc291cmNlcy9kZW1vcy9lZmZlY3QvZWFzaW5nLmh0bWxcbi8vL1xuLy8vIEB0eXBlIGN1YmljLWJlemllclxuXG4kZWFzZS1pbi1xdWFkOiAgICAgIGN1YmljLWJlemllcigwLjU1MCwgIDAuMDg1LCAwLjY4MCwgMC41MzApO1xuJGVhc2UtaW4tY3ViaWM6ICAgICBjdWJpYy1iZXppZXIoMC41NTAsICAwLjA1NSwgMC42NzUsIDAuMTkwKTtcbiRlYXNlLWluLXF1YXJ0OiAgICAgY3ViaWMtYmV6aWVyKDAuODk1LCAgMC4wMzAsIDAuNjg1LCAwLjIyMCk7XG4kZWFzZS1pbi1xdWludDogICAgIGN1YmljLWJlemllcigwLjc1NSwgIDAuMDUwLCAwLjg1NSwgMC4wNjApO1xuJGVhc2UtaW4tc2luZTogICAgICBjdWJpYy1iZXppZXIoMC40NzAsICAwLjAwMCwgMC43NDUsIDAuNzE1KTtcbiRlYXNlLWluLWV4cG86ICAgICAgY3ViaWMtYmV6aWVyKDAuOTUwLCAgMC4wNTAsIDAuNzk1LCAwLjAzNSk7XG4kZWFzZS1pbi1jaXJjOiAgICAgIGN1YmljLWJlemllcigwLjYwMCwgIDAuMDQwLCAwLjk4MCwgMC4zMzUpO1xuJGVhc2UtaW4tYmFjazogICAgICBjdWJpYy1iZXppZXIoMC42MDAsIC0wLjI4MCwgMC43MzUsIDAuMDQ1KTtcblxuJGVhc2Utb3V0LXF1YWQ6ICAgICBjdWJpYy1iZXppZXIoMC4yNTAsICAwLjQ2MCwgMC40NTAsIDAuOTQwKTtcbiRlYXNlLW91dC1jdWJpYzogICAgY3ViaWMtYmV6aWVyKDAuMjE1LCAgMC42MTAsIDAuMzU1LCAxLjAwMCk7XG4kZWFzZS1vdXQtcXVhcnQ6ICAgIGN1YmljLWJlemllcigwLjE2NSwgIDAuODQwLCAwLjQ0MCwgMS4wMDApO1xuJGVhc2Utb3V0LXF1aW50OiAgICBjdWJpYy1iZXppZXIoMC4yMzAsICAxLjAwMCwgMC4zMjAsIDEuMDAwKTtcbiRlYXNlLW91dC1zaW5lOiAgICAgY3ViaWMtYmV6aWVyKDAuMzkwLCAgMC41NzUsIDAuNTY1LCAxLjAwMCk7XG4kZWFzZS1vdXQtZXhwbzogICAgIGN1YmljLWJlemllcigwLjE5MCwgIDEuMDAwLCAwLjIyMCwgMS4wMDApO1xuJGVhc2Utb3V0LWNpcmM6ICAgICBjdWJpYy1iZXppZXIoMC4wNzUsICAwLjgyMCwgMC4xNjUsIDEuMDAwKTtcbiRlYXNlLW91dC1iYWNrOiAgICAgY3ViaWMtYmV6aWVyKDAuMTc1LCAgMC44ODUsIDAuMzIwLCAxLjI3NSk7XG5cbiRlYXNlLWluLW91dC1xdWFkOiAgY3ViaWMtYmV6aWVyKDAuNDU1LCAgMC4wMzAsIDAuNTE1LCAwLjk1NSk7XG4kZWFzZS1pbi1vdXQtY3ViaWM6IGN1YmljLWJlemllcigwLjY0NSwgIDAuMDQ1LCAwLjM1NSwgMS4wMDApO1xuJGVhc2UtaW4tb3V0LXF1YXJ0OiBjdWJpYy1iZXppZXIoMC43NzAsICAwLjAwMCwgMC4xNzUsIDEuMDAwKTtcbiRlYXNlLWluLW91dC1xdWludDogY3ViaWMtYmV6aWVyKDAuODYwLCAgMC4wMDAsIDAuMDcwLCAxLjAwMCk7XG4kZWFzZS1pbi1vdXQtc2luZTogIGN1YmljLWJlemllcigwLjQ0NSwgIDAuMDUwLCAwLjU1MCwgMC45NTApO1xuJGVhc2UtaW4tb3V0LWV4cG86ICBjdWJpYy1iZXppZXIoMS4wMDAsICAwLjAwMCwgMC4wMDAsIDEuMDAwKTtcbiRlYXNlLWluLW91dC1jaXJjOiAgY3ViaWMtYmV6aWVyKDAuNzg1LCAgMC4xMzUsIDAuMTUwLCAwLjg2MCk7XG4kZWFzZS1pbi1vdXQtYmFjazogIGN1YmljLWJlemllcigwLjY4MCwgLTAuNTUwLCAwLjI2NSwgMS41NTApO1xuIiwiQG1peGluIHRyaWFuZ2xlKCRzaXplLCAkY29sb3IsICRkaXJlY3Rpb24pIHtcbiAgJHdpZHRoOiBudGgoJHNpemUsIDEpO1xuICAkaGVpZ2h0OiBudGgoJHNpemUsIGxlbmd0aCgkc2l6ZSkpO1xuICAkZm9yZWdyb3VuZC1jb2xvcjogbnRoKCRjb2xvciwgMSk7XG4gICRiYWNrZ3JvdW5kLWNvbG9yOiBpZihsZW5ndGgoJGNvbG9yKSA9PSAyLCBudGgoJGNvbG9yLCAyKSwgdHJhbnNwYXJlbnQpO1xuICBoZWlnaHQ6IDA7XG4gIHdpZHRoOiAwO1xuXG4gIEBpZiAoJGRpcmVjdGlvbiA9PSB1cCkgb3IgKCRkaXJlY3Rpb24gPT0gZG93bikgb3IgKCRkaXJlY3Rpb24gPT0gcmlnaHQpIG9yICgkZGlyZWN0aW9uID09IGxlZnQpIHtcbiAgICAkd2lkdGg6ICR3aWR0aCAvIDI7XG4gICAgJGhlaWdodDogaWYobGVuZ3RoKCRzaXplKSA+IDEsICRoZWlnaHQsICRoZWlnaHQvMik7XG5cbiAgICBAaWYgJGRpcmVjdGlvbiA9PSB1cCB7XG4gICAgICBib3JkZXItYm90dG9tOiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLWxlZnQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSByaWdodCB7XG4gICAgICBib3JkZXItYm90dG9tOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItbGVmdDogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci10b3A6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gZG93biB7XG4gICAgICBib3JkZXItbGVmdDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXJpZ2h0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItdG9wOiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBsZWZ0IHtcbiAgICAgIGJvcmRlci1ib3R0b206ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1yaWdodDogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci10b3A6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9XG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gdXAtcmlnaHQpIG9yICgkZGlyZWN0aW9uID09IHVwLWxlZnQpIHtcbiAgICBib3JkZXItdG9wOiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuXG4gICAgQGlmICRkaXJlY3Rpb24gPT0gdXAtcmlnaHQge1xuICAgICAgYm9yZGVyLWxlZnQ6ICAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IHVwLWxlZnQge1xuICAgICAgYm9yZGVyLXJpZ2h0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfVxuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGRvd24tcmlnaHQpIG9yICgkZGlyZWN0aW9uID09IGRvd24tbGVmdCkge1xuICAgIGJvcmRlci1ib3R0b206ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG5cbiAgICBAaWYgJGRpcmVjdGlvbiA9PSBkb3duLXJpZ2h0IHtcbiAgICAgIGJvcmRlci1sZWZ0OiAgJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBkb3duLWxlZnQge1xuICAgICAgYm9yZGVyLXJpZ2h0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfVxuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGluc2V0LXVwKSB7XG4gICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogJGhlaWdodCAkd2lkdGg7XG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gaW5zZXQtZG93bikge1xuICAgIGJvcmRlci1jb2xvcjogJGZvcmVncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3I7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6ICRoZWlnaHQgJHdpZHRoO1xuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGluc2V0LXJpZ2h0KSB7XG4gICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogJHdpZHRoICRoZWlnaHQ7XG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gaW5zZXQtbGVmdCkge1xuICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQtY29sb3IgJGZvcmVncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3I7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6ICR3aWR0aCAkaGVpZ2h0O1xuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm92aWRlcyBhbiBlYXN5IHdheSB0byBjaGFuZ2UgdGhlIGB3b3JkLXdyYXBgIHByb3BlcnR5LlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR3cmFwIFticmVhay13b3JkXVxuLy8vICAgVmFsdWUgZm9yIHRoZSBgd29yZC1icmVha2AgcHJvcGVydHkuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC53cmFwcGVyIHtcbi8vLyAgICAgQGluY2x1ZGUgd29yZC13cmFwKGJyZWFrLXdvcmQpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLndyYXBwZXIge1xuLy8vICAgICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xuLy8vICAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XG4vLy8gICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbi8vLyAgIH1cblxuQG1peGluIHdvcmQtd3JhcCgkd3JhcDogYnJlYWstd29yZCkge1xuICBvdmVyZmxvdy13cmFwOiAkd3JhcDtcbiAgd29yZC13cmFwOiAkd3JhcDtcblxuICBAaWYgJHdyYXAgPT0gYnJlYWstd29yZCB7XG4gICAgd29yZC1icmVhazogYnJlYWstYWxsO1xuICB9IEBlbHNlIHtcbiAgICB3b3JkLWJyZWFrOiAkd3JhcDtcbiAgfVxufVxuIiwiLy8gVGhlIGZvbGxvd2luZyBmZWF0dXJlcyBoYXZlIGJlZW4gZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IE1BSk9SIHZlcnNpb24gcmVsZWFzZVxuXG5AbWl4aW4gaW5saW5lLWJsb2NrIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gIEB3YXJuIFwiVGhlIGlubGluZS1ibG9jayBtaXhpbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiByZWxlYXNlXCI7XG59XG5cbkBtaXhpbiBidXR0b24gKCRzdHlsZTogc2ltcGxlLCAkYmFzZS1jb2xvcjogIzQyOTRmMCwgJHRleHQtc2l6ZTogaW5oZXJpdCwgJHBhZGRpbmc6IDdweCAxOHB4KSB7XG5cbiAgQGlmIHR5cGUtb2YoJHN0eWxlKSA9PSBzdHJpbmcgYW5kIHR5cGUtb2YoJGJhc2UtY29sb3IpID09IGNvbG9yIHtcbiAgICBAaW5jbHVkZSBidXR0b25zdHlsZSgkc3R5bGUsICRiYXNlLWNvbG9yLCAkdGV4dC1zaXplLCAkcGFkZGluZyk7XG4gIH1cblxuICBAaWYgdHlwZS1vZigkc3R5bGUpID09IHN0cmluZyBhbmQgdHlwZS1vZigkYmFzZS1jb2xvcikgPT0gbnVtYmVyIHtcbiAgICAkcGFkZGluZzogJHRleHQtc2l6ZTtcbiAgICAkdGV4dC1zaXplOiAkYmFzZS1jb2xvcjtcbiAgICAkYmFzZS1jb2xvcjogIzQyOTRmMDtcblxuICAgIEBpZiAkcGFkZGluZyA9PSBpbmhlcml0IHtcbiAgICAgICRwYWRkaW5nOiA3cHggMThweDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBidXR0b25zdHlsZSgkc3R5bGUsICRiYXNlLWNvbG9yLCAkdGV4dC1zaXplLCAkcGFkZGluZyk7XG4gIH1cblxuICBAaWYgdHlwZS1vZigkc3R5bGUpID09IGNvbG9yIGFuZCB0eXBlLW9mKCRiYXNlLWNvbG9yKSA9PSBjb2xvciB7XG4gICAgJGJhc2UtY29sb3I6ICRzdHlsZTtcbiAgICAkc3R5bGU6IHNpbXBsZTtcbiAgICBAaW5jbHVkZSBidXR0b25zdHlsZSgkc3R5bGUsICRiYXNlLWNvbG9yLCAkdGV4dC1zaXplLCAkcGFkZGluZyk7XG4gIH1cblxuICBAaWYgdHlwZS1vZigkc3R5bGUpID09IGNvbG9yIGFuZCB0eXBlLW9mKCRiYXNlLWNvbG9yKSA9PSBudW1iZXIge1xuICAgICRwYWRkaW5nOiAkdGV4dC1zaXplO1xuICAgICR0ZXh0LXNpemU6ICRiYXNlLWNvbG9yO1xuICAgICRiYXNlLWNvbG9yOiAkc3R5bGU7XG4gICAgJHN0eWxlOiBzaW1wbGU7XG5cbiAgICBAaWYgJHBhZGRpbmcgPT0gaW5oZXJpdCB7XG4gICAgICAkcGFkZGluZzogN3B4IDE4cHg7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnV0dG9uc3R5bGUoJHN0eWxlLCAkYmFzZS1jb2xvciwgJHRleHQtc2l6ZSwgJHBhZGRpbmcpO1xuICB9XG5cbiAgQGlmIHR5cGUtb2YoJHN0eWxlKSA9PSBudW1iZXIge1xuICAgICRwYWRkaW5nOiAkYmFzZS1jb2xvcjtcbiAgICAkdGV4dC1zaXplOiAkc3R5bGU7XG4gICAgJGJhc2UtY29sb3I6ICM0Mjk0ZjA7XG4gICAgJHN0eWxlOiBzaW1wbGU7XG5cbiAgICBAaWYgJHBhZGRpbmcgPT0gIzQyOTRmMCB7XG4gICAgICAkcGFkZGluZzogN3B4IDE4cHg7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnV0dG9uc3R5bGUoJHN0eWxlLCAkYmFzZS1jb2xvciwgJHRleHQtc2l6ZSwgJHBhZGRpbmcpO1xuICB9XG5cbiAgJjpkaXNhYmxlZCB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBvcGFjaXR5OiAwLjU7XG4gIH1cblxuICBAd2FybiBcIlRoZSBidXR0b24gbWl4aW4gaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gcmVsZWFzZVwiO1xufVxuXG4vLyBTZWxlY3RvciBTdHlsZSBCdXR0b25cbkBtaXhpbiBidXR0b25zdHlsZSgkdHlwZSwgJGItY29sb3IsICR0LXNpemUsICRwYWQpIHtcbiAgLy8gR3JheXNjYWxlIGJ1dHRvblxuICBAaWYgJHR5cGUgPT0gc2ltcGxlIGFuZCAkYi1jb2xvciA9PSBncmF5c2NhbGUoJGItY29sb3IpIHtcbiAgICBAaW5jbHVkZSBzaW1wbGUoJGItY29sb3IsIHRydWUsICR0LXNpemUsICRwYWQpO1xuICB9XG5cbiAgQGlmICR0eXBlID09IHNoaW55IGFuZCAkYi1jb2xvciA9PSBncmF5c2NhbGUoJGItY29sb3IpIHtcbiAgICBAaW5jbHVkZSBzaGlueSgkYi1jb2xvciwgdHJ1ZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cblxuICBAaWYgJHR5cGUgPT0gcGlsbCBhbmQgJGItY29sb3IgPT0gZ3JheXNjYWxlKCRiLWNvbG9yKSB7XG4gICAgQGluY2x1ZGUgcGlsbCgkYi1jb2xvciwgdHJ1ZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cblxuICBAaWYgJHR5cGUgPT0gZmxhdCBhbmQgJGItY29sb3IgPT0gZ3JheXNjYWxlKCRiLWNvbG9yKSB7XG4gICAgQGluY2x1ZGUgZmxhdCgkYi1jb2xvciwgdHJ1ZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cblxuICAvLyBDb2xvcmVkIGJ1dHRvblxuICBAaWYgJHR5cGUgPT0gc2ltcGxlIHtcbiAgICBAaW5jbHVkZSBzaW1wbGUoJGItY29sb3IsIGZhbHNlLCAkdC1zaXplLCAkcGFkKTtcbiAgfVxuXG4gIEBlbHNlIGlmICR0eXBlID09IHNoaW55IHtcbiAgICBAaW5jbHVkZSBzaGlueSgkYi1jb2xvciwgZmFsc2UsICR0LXNpemUsICRwYWQpO1xuICB9XG5cbiAgQGVsc2UgaWYgJHR5cGUgPT0gcGlsbCB7XG4gICAgQGluY2x1ZGUgcGlsbCgkYi1jb2xvciwgZmFsc2UsICR0LXNpemUsICRwYWQpO1xuICB9XG5cbiAgQGVsc2UgaWYgJHR5cGUgPT0gZmxhdCB7XG4gICAgQGluY2x1ZGUgZmxhdCgkYi1jb2xvciwgZmFsc2UsICR0LXNpemUsICRwYWQpO1xuICB9XG59XG5cbi8vIFNpbXBsZSBCdXR0b25cbkBtaXhpbiBzaW1wbGUoJGJhc2UtY29sb3IsICRncmF5c2NhbGU6IGZhbHNlLCAkdGV4dHNpemU6IGluaGVyaXQsICRwYWRkaW5nOiA3cHggMThweCkge1xuICAkY29sb3I6ICAgICAgICAgaHNsKDAsIDAsIDEwMCUpO1xuICAkYm9yZGVyOiAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogIDklLCAgJGxpZ2h0bmVzczogLTE0JSk7XG4gICRpbnNldC1zaGFkb3c6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAtOCUsICAkbGlnaHRuZXNzOiAgMTUlKTtcbiAgJHN0b3AtZ3JhZGllbnQ6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246ICA5JSwgICRsaWdodG5lc3M6IC0xMSUpO1xuICAkdGV4dC1zaGFkb3c6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogIDE1JSwgJGxpZ2h0bmVzczogLTE4JSk7XG5cbiAgQGlmIGlzLWxpZ2h0KCRiYXNlLWNvbG9yKSB7XG4gICAgJGNvbG9yOiAgICAgICBoc2woMCwgMCwgMjAlKTtcbiAgICAkdGV4dC1zaGFkb3c6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDEwJSwgJGxpZ2h0bmVzczogNCUpO1xuICB9XG5cbiAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgJGJvcmRlcjogICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyKTtcbiAgICAkaW5zZXQtc2hhZG93OiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3cpO1xuICAgICRzdG9wLWdyYWRpZW50OiBncmF5c2NhbGUoJHN0b3AtZ3JhZGllbnQpO1xuICAgICR0ZXh0LXNoYWRvdzogICBncmF5c2NhbGUoJHRleHQtc2hhZG93KTtcbiAgfVxuXG4gIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCAwICRpbnNldC1zaGFkb3c7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAkdGV4dHNpemU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQgKCRiYXNlLWNvbG9yLCAkc3RvcC1ncmFkaWVudCk7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtc2hhZG93OiAwIDFweCAwICR0ZXh0LXNoYWRvdztcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcblxuICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAkYmFzZS1jb2xvci1ob3ZlcjogICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogLTQlLCAkbGlnaHRuZXNzOiAtNSUpO1xuICAgICRpbnNldC1zaGFkb3ctaG92ZXI6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAtNyUsICRsaWdodG5lc3M6ICA1JSk7XG4gICAgJHN0b3AtZ3JhZGllbnQtaG92ZXI6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246ICA4JSwgJGxpZ2h0bmVzczogLTE0JSk7XG5cbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRiYXNlLWNvbG9yLWhvdmVyOiAgICBncmF5c2NhbGUoJGJhc2UtY29sb3ItaG92ZXIpO1xuICAgICAgJGluc2V0LXNoYWRvdy1ob3ZlcjogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93LWhvdmVyKTtcbiAgICAgICRzdG9wLWdyYWRpZW50LWhvdmVyOiBncmF5c2NhbGUoJHN0b3AtZ3JhZGllbnQtaG92ZXIpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCAoJGJhc2UtY29sb3ItaG92ZXIsICRzdG9wLWdyYWRpZW50LWhvdmVyKTtcblxuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgMCAkaW5zZXQtc2hhZG93LWhvdmVyO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuXG4gICY6YWN0aXZlOm5vdCg6ZGlzYWJsZWQpLFxuICAmOmZvY3VzOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAkYm9yZGVyLWFjdGl2ZTogICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogOSUsICRsaWdodG5lc3M6IC0xNCUpO1xuICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiA3JSwgJGxpZ2h0bmVzczogLTE3JSk7XG5cbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRib3JkZXItYWN0aXZlOiAgICAgICBncmF5c2NhbGUoJGJvcmRlci1hY3RpdmUpO1xuICAgICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6IGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93LWFjdGl2ZSk7XG4gICAgfVxuXG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci1hY3RpdmU7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDhweCA0cHggJGluc2V0LXNoYWRvdy1hY3RpdmUsIGluc2V0IDAgMCA4cHggNHB4ICRpbnNldC1zaGFkb3ctYWN0aXZlO1xuICB9XG59XG5cbi8vIFNoaW55IEJ1dHRvblxuQG1peGluIHNoaW55KCRiYXNlLWNvbG9yLCAkZ3JheXNjYWxlOiBmYWxzZSwgJHRleHRzaXplOiBpbmhlcml0LCAkcGFkZGluZzogN3B4IDE4cHgpIHtcbiAgJGNvbG9yOiAgICAgICAgIGhzbCgwLCAwLCAxMDAlKTtcbiAgJGJvcmRlcjogICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTExNywgJGdyZWVuOiAtMTExLCAkYmx1ZTogLTgxKTtcbiAgJGJvcmRlci1ib3R0b206IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTEyNiwgJGdyZWVuOiAtMTI3LCAkYmx1ZTogLTEyMik7XG4gICRmb3VydGgtc3RvcDogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC03OSwgICRncmVlbjogLTcwLCAgJGJsdWU6IC00Nik7XG4gICRpbnNldC1zaGFkb3c6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6ICAzNywgICRncmVlbjogIDI5LCAgJGJsdWU6ICAxMik7XG4gICRzZWNvbmQtc3RvcDogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC01NiwgICRncmVlbjogLTUwLCAgJGJsdWU6IC0zMyk7XG4gICR0ZXh0LXNoYWRvdzogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC0xNDAsICRncmVlbjogLTE0MSwgJGJsdWU6IC0xMTQpO1xuICAkdGhpcmQtc3RvcDogICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtODYsICAkZ3JlZW46IC03NSwgICRibHVlOiAtNDgpO1xuXG4gIEBpZiBpcy1saWdodCgkYmFzZS1jb2xvcikge1xuICAgICRjb2xvcjogICAgICAgaHNsKDAsIDAsIDIwJSk7XG4gICAgJHRleHQtc2hhZG93OiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAxMCUsICRsaWdodG5lc3M6IDQlKTtcbiAgfVxuXG4gIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICRib3JkZXI6ICAgICAgICBncmF5c2NhbGUoJGJvcmRlcik7XG4gICAgJGJvcmRlci1ib3R0b206IGdyYXlzY2FsZSgkYm9yZGVyLWJvdHRvbSk7XG4gICAgJGZvdXJ0aC1zdG9wOiAgIGdyYXlzY2FsZSgkZm91cnRoLXN0b3ApO1xuICAgICRpbnNldC1zaGFkb3c6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdyk7XG4gICAgJHNlY29uZC1zdG9wOiAgIGdyYXlzY2FsZSgkc2Vjb25kLXN0b3ApO1xuICAgICR0ZXh0LXNoYWRvdzogICBncmF5c2NhbGUoJHRleHQtc2hhZG93KTtcbiAgICAkdGhpcmQtc3RvcDogICAgZ3JheXNjYWxlKCR0aGlyZC1zdG9wKTtcbiAgfVxuXG4gIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCh0b3AsICRiYXNlLWNvbG9yIDAlLCAkc2Vjb25kLXN0b3AgNTAlLCAkdGhpcmQtc3RvcCA1MCUsICRmb3VydGgtc3RvcCAxMDAlKTtcblxuICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGJvcmRlci1ib3R0b207XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCAwICRpbnNldC1zaGFkb3c7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAkdGV4dHNpemU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBwYWRkaW5nOiAkcGFkZGluZztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtc2hhZG93OiAwIC0xcHggMXB4ICR0ZXh0LXNoYWRvdztcblxuICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAkZmlyc3Qtc3RvcC1ob3ZlcjogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTEzLCAkZ3JlZW46IC0xNSwgJGJsdWU6IC0xOCk7XG4gICAgJHNlY29uZC1zdG9wLWhvdmVyOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC02NiwgJGdyZWVuOiAtNjIsICRibHVlOiAtNTEpO1xuICAgICR0aGlyZC1zdG9wLWhvdmVyOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtOTMsICRncmVlbjogLTg1LCAkYmx1ZTogLTY2KTtcbiAgICAkZm91cnRoLXN0b3AtaG92ZXI6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTg2LCAkZ3JlZW46IC04MCwgJGJsdWU6IC02Myk7XG5cbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRmaXJzdC1zdG9wLWhvdmVyOiAgZ3JheXNjYWxlKCRmaXJzdC1zdG9wLWhvdmVyKTtcbiAgICAgICRzZWNvbmQtc3RvcC1ob3ZlcjogZ3JheXNjYWxlKCRzZWNvbmQtc3RvcC1ob3Zlcik7XG4gICAgICAkdGhpcmQtc3RvcC1ob3ZlcjogIGdyYXlzY2FsZSgkdGhpcmQtc3RvcC1ob3Zlcik7XG4gICAgICAkZm91cnRoLXN0b3AtaG92ZXI6IGdyYXlzY2FsZSgkZm91cnRoLXN0b3AtaG92ZXIpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCh0b3AsICRmaXJzdC1zdG9wLWhvdmVyICAwJSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc2Vjb25kLXN0b3AtaG92ZXIgNTAlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGlyZC1zdG9wLWhvdmVyICA1MCUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGZvdXJ0aC1zdG9wLWhvdmVyIDEwMCUpO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuXG4gICY6YWN0aXZlOm5vdCg6ZGlzYWJsZWQpLFxuICAmOmZvY3VzOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAkaW5zZXQtc2hhZG93LWFjdGl2ZTogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtMTExLCAkZ3JlZW46IC0xMTYsICRibHVlOiAtMTIyKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6IGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93LWFjdGl2ZSk7XG4gICAgfVxuXG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDIwcHggMCAkaW5zZXQtc2hhZG93LWFjdGl2ZTtcbiAgfVxufVxuXG4vLyBQaWxsIEJ1dHRvblxuQG1peGluIHBpbGwoJGJhc2UtY29sb3IsICRncmF5c2NhbGU6IGZhbHNlLCAkdGV4dHNpemU6IGluaGVyaXQsICRwYWRkaW5nOiA3cHggMThweCkge1xuICAkY29sb3I6ICAgICAgICAgaHNsKDAsIDAsIDEwMCUpO1xuICAkYm9yZGVyLWJvdHRvbTogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgOCwgJHNhdHVyYXRpb246IC0xMSUsICRsaWdodG5lc3M6IC0yNiUpO1xuICAkYm9yZGVyLXNpZGVzOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgNCwgJHNhdHVyYXRpb246IC0yMSUsICRsaWdodG5lc3M6IC0yMSUpO1xuICAkYm9yZGVyLXRvcDogICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAtMSwgJHNhdHVyYXRpb246IC0zMCUsICRsaWdodG5lc3M6IC0xNSUpO1xuICAkaW5zZXQtc2hhZG93OiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAtMSwgJHNhdHVyYXRpb246IC0xJSwgICRsaWdodG5lc3M6ICA3JSk7XG4gICRzdG9wLWdyYWRpZW50OiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA4LCAkc2F0dXJhdGlvbjogIDE0JSwgJGxpZ2h0bmVzczogLTEwJSk7XG4gICR0ZXh0LXNoYWRvdzogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA1LCAkc2F0dXJhdGlvbjogLTE5JSwgJGxpZ2h0bmVzczogLTE1JSk7XG5cbiAgQGlmIGlzLWxpZ2h0KCRiYXNlLWNvbG9yKSB7XG4gICAgJGNvbG9yOiAgICAgICBoc2woMCwgMCwgMjAlKTtcbiAgICAkdGV4dC1zaGFkb3c6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDEwJSwgJGxpZ2h0bmVzczogNCUpO1xuICB9XG5cbiAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgJGJvcmRlci1ib3R0b206IGdyYXlzY2FsZSgkYm9yZGVyLWJvdHRvbSk7XG4gICAgJGJvcmRlci1zaWRlczogIGdyYXlzY2FsZSgkYm9yZGVyLXNpZGVzKTtcbiAgICAkYm9yZGVyLXRvcDogICAgZ3JheXNjYWxlKCRib3JkZXItdG9wKTtcbiAgICAkaW5zZXQtc2hhZG93OiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3cpO1xuICAgICRzdG9wLWdyYWRpZW50OiBncmF5c2NhbGUoJHN0b3AtZ3JhZGllbnQpO1xuICAgICR0ZXh0LXNoYWRvdzogICBncmF5c2NhbGUoJHRleHQtc2hhZG93KTtcbiAgfVxuXG4gIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItdG9wO1xuICBib3JkZXItY29sb3I6ICRib3JkZXItdG9wICRib3JkZXItc2lkZXMgJGJvcmRlci1ib3R0b207XG4gIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgMCAkaW5zZXQtc2hhZG93O1xuICBjb2xvcjogJGNvbG9yO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogJHRleHRzaXplO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMTtcbiAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50ICgkYmFzZS1jb2xvciwgJHN0b3AtZ3JhZGllbnQpO1xuICBwYWRkaW5nOiAkcGFkZGluZztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtc2hhZG93OiAwIC0xcHggMXB4ICR0ZXh0LXNoYWRvdztcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcblxuICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAkYmFzZS1jb2xvci1ob3ZlcjogICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpZ2h0bmVzczogLTQuNSUpO1xuICAgICRib3JkZXItYm90dG9tOiAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA4LCAkc2F0dXJhdGlvbjogIDEzLjUlLCAkbGlnaHRuZXNzOiAtMzIlKTtcbiAgICAkYm9yZGVyLXNpZGVzOiAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgNCwgJHNhdHVyYXRpb246IC0yJSwgICAgJGxpZ2h0bmVzczogLTI3JSk7XG4gICAgJGJvcmRlci10b3A6ICAgICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogLTEsICRzYXR1cmF0aW9uOiAtMTclLCAgICRsaWdodG5lc3M6IC0yMSUpO1xuICAgICRpbnNldC1zaGFkb3ctaG92ZXI6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICAgICAgICAgICAkc2F0dXJhdGlvbjogLTElLCAgICAkbGlnaHRuZXNzOiAgMyUpO1xuICAgICRzdG9wLWdyYWRpZW50LWhvdmVyOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA4LCAkc2F0dXJhdGlvbjogLTQlLCAgICAkbGlnaHRuZXNzOiAtMTUuNSUpO1xuICAgICR0ZXh0LXNoYWRvdy1ob3ZlcjogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA1LCAkc2F0dXJhdGlvbjogLTUlLCAgICAkbGlnaHRuZXNzOiAtMjIlKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGJhc2UtY29sb3ItaG92ZXI6ICAgIGdyYXlzY2FsZSgkYmFzZS1jb2xvci1ob3Zlcik7XG4gICAgICAkYm9yZGVyLWJvdHRvbTogICAgICAgZ3JheXNjYWxlKCRib3JkZXItYm90dG9tKTtcbiAgICAgICRib3JkZXItc2lkZXM6ICAgICAgICBncmF5c2NhbGUoJGJvcmRlci1zaWRlcyk7XG4gICAgICAkYm9yZGVyLXRvcDogICAgICAgICAgZ3JheXNjYWxlKCRib3JkZXItdG9wKTtcbiAgICAgICRpbnNldC1zaGFkb3ctaG92ZXI6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdy1ob3Zlcik7XG4gICAgICAkc3RvcC1ncmFkaWVudC1ob3ZlcjogZ3JheXNjYWxlKCRzdG9wLWdyYWRpZW50LWhvdmVyKTtcbiAgICAgICR0ZXh0LXNoYWRvdy1ob3ZlcjogICBncmF5c2NhbGUoJHRleHQtc2hhZG93LWhvdmVyKTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQgKCRiYXNlLWNvbG9yLWhvdmVyLCAkc3RvcC1ncmFkaWVudC1ob3Zlcik7XG5cbiAgICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItdG9wO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci10b3AgJGJvcmRlci1zaWRlcyAkYm9yZGVyLWJvdHRvbTtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIDAgJGluc2V0LXNoYWRvdy1ob3ZlcjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdGV4dC1zaGFkb3c6IDAgLTFweCAxcHggJHRleHQtc2hhZG93LWhvdmVyO1xuICB9XG5cbiAgJjphY3RpdmU6bm90KDpkaXNhYmxlZCksXG4gICY6Zm9jdXM6bm90KDpkaXNhYmxlZCkge1xuICAgICRhY3RpdmUtY29sb3I6ICAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiA0LCAgJHNhdHVyYXRpb246IC0xMiUsICAkbGlnaHRuZXNzOiAtMTAlKTtcbiAgICAkYm9yZGVyLWFjdGl2ZTogICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogNiwgICRzYXR1cmF0aW9uOiAtMi41JSwgJGxpZ2h0bmVzczogLTMwJSk7XG4gICAgJGJvcmRlci1ib3R0b20tYWN0aXZlOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IDExLCAkc2F0dXJhdGlvbjogIDYlLCAgICRsaWdodG5lc3M6IC0zMSUpO1xuICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiA5LCAgJHNhdHVyYXRpb246ICAyJSwgICAkbGlnaHRuZXNzOiAtMjEuNSUpO1xuICAgICR0ZXh0LXNoYWRvdy1hY3RpdmU6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiA1LCAgJHNhdHVyYXRpb246IC0xMiUsICAkbGlnaHRuZXNzOiAtMjEuNSUpO1xuXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgICAkYWN0aXZlLWNvbG9yOiAgICAgICAgIGdyYXlzY2FsZSgkYWN0aXZlLWNvbG9yKTtcbiAgICAgICRib3JkZXItYWN0aXZlOiAgICAgICAgZ3JheXNjYWxlKCRib3JkZXItYWN0aXZlKTtcbiAgICAgICRib3JkZXItYm90dG9tLWFjdGl2ZTogZ3JheXNjYWxlKCRib3JkZXItYm90dG9tLWFjdGl2ZSk7XG4gICAgICAkaW5zZXQtc2hhZG93LWFjdGl2ZTogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93LWFjdGl2ZSk7XG4gICAgICAkdGV4dC1zaGFkb3ctYWN0aXZlOiAgIGdyYXlzY2FsZSgkdGV4dC1zaGFkb3ctYWN0aXZlKTtcbiAgICB9XG5cbiAgICBiYWNrZ3JvdW5kOiAkYWN0aXZlLWNvbG9yO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItYWN0aXZlO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkYm9yZGVyLWJvdHRvbS1hY3RpdmU7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDZweCAzcHggJGluc2V0LXNoYWRvdy1hY3RpdmU7XG4gICAgdGV4dC1zaGFkb3c6IDAgLTFweCAxcHggJHRleHQtc2hhZG93LWFjdGl2ZTtcbiAgfVxufVxuXG4vLyBGbGF0IEJ1dHRvblxuQG1peGluIGZsYXQoJGJhc2UtY29sb3IsICRncmF5c2NhbGU6IGZhbHNlLCAkdGV4dHNpemU6IGluaGVyaXQsICRwYWRkaW5nOiA3cHggMThweCkge1xuICAkY29sb3I6ICAgICAgICAgaHNsKDAsIDAsIDEwMCUpO1xuXG4gIEBpZiBpcy1saWdodCgkYmFzZS1jb2xvcikge1xuICAgICRjb2xvcjogICAgICAgaHNsKDAsIDAsIDIwJSk7XG4gIH1cblxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFzZS1jb2xvcjtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBib3JkZXI6IDA7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAkdGV4dHNpemU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBwYWRkaW5nOiAkcGFkZGluZztcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuXG4gICY6aG92ZXI6bm90KDpkaXNhYmxlZCl7XG4gICAgJGJhc2UtY29sb3ItaG92ZXI6ICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDQlLCAkbGlnaHRuZXNzOiA1JSk7XG5cbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRiYXNlLWNvbG9yLWhvdmVyOiBncmF5c2NhbGUoJGJhc2UtY29sb3ItaG92ZXIpO1xuICAgIH1cblxuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYXNlLWNvbG9yLWhvdmVyO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuXG4gICY6YWN0aXZlOm5vdCg6ZGlzYWJsZWQpLFxuICAmOmZvY3VzOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAkYmFzZS1jb2xvci1hY3RpdmU6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IC00JSwgJGxpZ2h0bmVzczogLTUlKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGJhc2UtY29sb3ItYWN0aXZlOiBncmF5c2NhbGUoJGJhc2UtY29sb3ItYWN0aXZlKTtcbiAgICB9XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFzZS1jb2xvci1hY3RpdmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG59XG5cbi8vIEZsZXhpYmxlIGdyaWRcbkBmdW5jdGlvbiBmbGV4LWdyaWQoJGNvbHVtbnMsICRjb250YWluZXItY29sdW1uczogJGZnLW1heC1jb2x1bW5zKSB7XG4gICR3aWR0aDogJGNvbHVtbnMgKiAkZmctY29sdW1uICsgKCRjb2x1bW5zIC0gMSkgKiAkZmctZ3V0dGVyO1xuICAkY29udGFpbmVyLXdpZHRoOiAkY29udGFpbmVyLWNvbHVtbnMgKiAkZmctY29sdW1uICsgKCRjb250YWluZXItY29sdW1ucyAtIDEpICogJGZnLWd1dHRlcjtcbiAgQHJldHVybiBwZXJjZW50YWdlKCR3aWR0aCAvICRjb250YWluZXItd2lkdGgpO1xuXG4gIEB3YXJuIFwiVGhlIGZsZXgtZ3JpZCBmdW5jdGlvbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiByZWxlYXNlXCI7XG59XG5cbi8vIEZsZXhpYmxlIGd1dHRlclxuQGZ1bmN0aW9uIGZsZXgtZ3V0dGVyKCRjb250YWluZXItY29sdW1uczogJGZnLW1heC1jb2x1bW5zLCAkZ3V0dGVyOiAkZmctZ3V0dGVyKSB7XG4gICRjb250YWluZXItd2lkdGg6ICRjb250YWluZXItY29sdW1ucyAqICRmZy1jb2x1bW4gKyAoJGNvbnRhaW5lci1jb2x1bW5zIC0gMSkgKiAkZmctZ3V0dGVyO1xuICBAcmV0dXJuIHBlcmNlbnRhZ2UoJGd1dHRlciAvICRjb250YWluZXItd2lkdGgpO1xuXG4gIEB3YXJuIFwiVGhlIGZsZXgtZ3V0dGVyIGZ1bmN0aW9uIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIHJlbGVhc2VcIjtcbn1cblxuQGZ1bmN0aW9uIGdyaWQtd2lkdGgoJG4pIHtcbiAgQHJldHVybiAkbiAqICRndy1jb2x1bW4gKyAoJG4gLSAxKSAqICRndy1ndXR0ZXI7XG5cbiAgQHdhcm4gXCJUaGUgZ3JpZC13aWR0aCBmdW5jdGlvbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiByZWxlYXNlXCI7XG59XG5cbkBmdW5jdGlvbiBnb2xkZW4tcmF0aW8oJHZhbHVlLCAkaW5jcmVtZW50KSB7XG4gIEByZXR1cm4gbW9kdWxhci1zY2FsZSgkaW5jcmVtZW50LCAkdmFsdWUsICRyYXRpbzogJGdvbGRlbik7XG5cbiAgQHdhcm4gXCJUaGUgZ29sZGVuLXJhdGlvIGZ1bmN0aW9uIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIHJlbGVhc2UuIFBsZWFzZSB1c2UgdGhlIG1vZHVsYXItc2NhbGUgZnVuY3Rpb24sIGluc3RlYWQuXCI7XG59XG5cbkBtaXhpbiBib3gtc2l6aW5nKCRib3gpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LXNpemluZywgJGJveCwgd2Via2l0IG1veiBzcGVjKTtcblxuICBAd2FybiBcIlRoZSBib3gtc2l6aW5nIG1peGluIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIHJlbGVhc2UuIFRoaXMgcHJvcGVydHkgY2FuIG5vdyBiZSB1c2VkIHVuLXByZWZpeGVkLlwiO1xufVxuIiwiLy8gQml0dGVycyAxLjIuMFxuLy8gaHR0cDovL2JpdHRlcnMuYm91cmJvbi5pb1xuLy8gQ29weXJpZ2h0IDIwMTMtMjAxNSB0aG91Z2h0Ym90LCBpbmMuXG4vLyBNSVQgTGljZW5zZVxuXG5AaW1wb3J0IFwidmFyaWFibGVzXCI7XG5cbi8vIE5lYXQgU2V0dGluZ3MgLS0gdW5jb21tZW50IGlmIHVzaW5nIE5lYXQgLS0gbXVzdCBiZSBpbXBvcnRlZCBiZWZvcmUgTmVhdFxuQGltcG9ydCBcImdyaWQtc2V0dGluZ3NcIjtcblxuQGltcG9ydCBcImJ1dHRvbnNcIjtcbkBpbXBvcnQgXCJmb3Jtc1wiO1xuQGltcG9ydCBcImxpc3RzXCI7XG5AaW1wb3J0IFwidGFibGVzXCI7XG5AaW1wb3J0IFwidHlwb2dyYXBoeVwiO1xuIiwiLy8gVHlwb2dyYXBoeVxuJGJhc2UtZm9udC1mYW1pbHk6ICdMYXRvJywgJGhlbHZldGljYTtcbiRoZWFkaW5nLWZvbnQtZmFtaWx5OiAnT3N3YWxkJywgJGJhc2UtZm9udC1mYW1pbHk7XG5cbi8vIEZvbnQgU2l6ZXNcbiRiYXNlLWZvbnQtc2l6ZTogMWVtO1xuXG4vLyBMaW5lIGhlaWdodFxuJGJhc2UtbGluZS1oZWlnaHQ6IDEuNTtcbiRoZWFkaW5nLWxpbmUtaGVpZ2h0OiAxLjI7XG5cbi8vIE90aGVyIFNpemVzXG4kYmFzZS1ib3JkZXItcmFkaXVzOiAzcHg7XG4kYmFzZS1zcGFjaW5nOiAkYmFzZS1saW5lLWhlaWdodCAqIDFlbTtcbiRzbWFsbC1zcGFjaW5nOiAkYmFzZS1zcGFjaW5nIC8gMjtcbiRsYXJnZS1zcGFjaW5nOiA1ZW07XG4kYmFzZS16LWluZGV4OiAwO1xuXG4vLyBDb2xvcnNcbiRkYXJrLXJlZDogIzlkMTMwNDtcbiRyZWQ6ICNjOTI4MmQ7XG4kbGlnaHQtcmVkOiAjZDE0ODRjO1xuJGJsYWNrOiAjMjIyO1xuJGRhcmstZ3JheTogIzQ0NDtcbiRuYXYtZ3JheTogIzljYTNhZTtcbiRtZWRpdW0tZ3JheTogI2Q0ZDRkNDtcbiRkYXJraXNoLWdyYXk6ICNhN2E3YTc7XG4kbGlnaHQtZ3JheTogI2Y5ZjlmOTtcbiRkYXNoLWdyYXk6ICNlZWVlZWU7XG4kbmF2LWRhcmstcmVkOiAjYTEyMDI0O1xuJG5hdi1tZWQtcmVkOiAjYjUyNDI4O1xuXG5cbi8vIEZvbnQgQ29sb3JzXG4kYmFzZS1mb250LWNvbG9yOiAkYmxhY2s7XG4kYWN0aW9uLWNvbG9yOiAkcmVkO1xuXG4vLyBGb250IFNpemVzXG4kaDEtZm9udC1zaXplOiBlbSg0OCk7XG4kaDItZm9udC1zaXplOiBlbSgzNik7XG4kaDMtZm9udC1zaXplOiBlbSgzMCk7XG4kaDQtZm9udC1zaXplOiBlbSgyNik7XG4kaDUtZm9udC1zaXplOiBlbSgyMik7XG4kaDYtZm9udC1zaXplOiBlbSgxOCk7XG5cbi8vIEJvcmRlclxuJGJhc2UtYm9yZGVyLWNvbG9yOiAkbGlnaHQtZ3JheTtcbiRiYXNlLWJvcmRlcjogMXB4IHNvbGlkICRiYXNlLWJvcmRlci1jb2xvcjtcblxuLy8gQmFja2dyb3VuZCBDb2xvcnNcbiRiYXNlLWJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4kc2Vjb25kYXJ5LWJhY2tncm91bmQtY29sb3I6IHRpbnQoJGJhc2UtYm9yZGVyLWNvbG9yLCA3NSUpO1xuXG4vLyBGb3Jtc1xuJGZvcm0tYm94LXNoYWRvdzogaW5zZXQgMCAxcHggM3B4IHJnYmEoIzAwMCwgMC4wNik7XG4kZm9ybS1ib3gtc2hhZG93LWZvY3VzOiAkZm9ybS1ib3gtc2hhZG93LCAwIDAgNXB4IGFkanVzdC1jb2xvcigkYWN0aW9uLWNvbG9yLCAkbGlnaHRuZXNzOiAtNSUsICRhbHBoYTogLTAuMyk7XG5cbi8vIEFuaW1hdGlvbnNcbiRiYXNlLWR1cmF0aW9uOiAxNTBtcztcbiRiYXNlLXRpbWluZzogZWFzZTtcblxuQG1peGluIGJnLWltYWdlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG4vLyBPbWVnYSByZXNldCBpcyB1c2VmdWwgZm9yIHRpbWVzIHdoZW4geW91IGdvIGZyb20gb25lIFwic3BhbiBjb2x1bW5cIiBzZXR0aW5nIHRvIGFub3RoZXIuIElmIHlvdSBnbyBmcm9tIDMgdG8gMiBjb2x1bW5zIHlvdSdsbCBsaWtlbHkgbmVlZCB0byByZXNldCAzbi4gQW5kIHRoZW4gd2hlbiB5b3UgZ28gZnJvbSAyIHRvIDMgeW91J2QgbGlrZWx5IG5lZWQgdG8gcmVzZXQgMm4uXG5AbWl4aW4gb21lZ2EtcmVzZXQoICRudGggKSB7XG4gJjpudGgtY2hpbGQoI3skbnRofSkgeyBtYXJnaW4tcmlnaHQ6IGZsZXgtZ3V0dGVyKCk7IH1cbiAmOm50aC1jaGlsZCgjeyRudGh9KzEpIHsgY2xlYXI6IG5vbmUgfVxufVxuIiwiQGltcG9ydCBcIm5lYXQtaGVscGVyc1wiO1xuXG4vLyBOZWF0IE92ZXJyaWRlc1xuLy8gJGNvbHVtbjogOTBweDtcbi8vICRndXR0ZXI6IDMwcHg7XG4kZ3JpZC1jb2x1bW5zOiAxMjtcbiRtYXgtd2lkdGg6IDEyMDBweDtcblxuLy8gTmVhdCBCcmVha3BvaW50c1xuJG1lZGl1bS1zY3JlZW46IDYwMHB4O1xuJGxhcmdlLXNjcmVlbjogODAwcHg7XG5cbiRtZWRpdW0tc2NyZWVuLXVwOiBuZXctYnJlYWtwb2ludChtaW4td2lkdGggJG1lZGl1bS1zY3JlZW4gMTIpO1xuJGxhcmdlLXNjcmVlbi11cDogbmV3LWJyZWFrcG9pbnQobWluLXdpZHRoICRsYXJnZS1zY3JlZW4gMTIpO1xuXG4kd29vLWxhcmdlLXVwOiBuZXctYnJlYWtwb2ludChtaW4td2lkdGggNzY5cHggMTIpO1xuIiwiLy8gRnVuY3Rpb25zXG5AaW1wb3J0IFwiZnVuY3Rpb25zL3ByaXZhdGVcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvbmV3LWJyZWFrcG9pbnRcIjtcblxuLy8gU2V0dGluZ3NcbkBpbXBvcnQgXCJzZXR0aW5ncy9ncmlkXCI7XG5AaW1wb3J0IFwic2V0dGluZ3MvdmlzdWFsLWdyaWRcIjtcbkBpbXBvcnQgXCJzZXR0aW5ncy9kaXNhYmxlLXdhcm5pbmdzXCI7XG4iLCIvLyBOb3QgZnVuY3Rpb24gZm9yIExpYnNhc3MgY29tcGF0aWJpbGl0eVxuLy8gaHR0cHM6Ly9naXRodWIuY29tL3Nhc3MvbGlic2Fzcy9pc3N1ZXMvMzY4XG5AZnVuY3Rpb24gaXMtbm90KCR2YWx1ZSkge1xuICBAcmV0dXJuIGlmKCR2YWx1ZSwgZmFsc2UsIHRydWUpO1xufVxuXG4vLyBDaGVja3MgaWYgYSBudW1iZXIgaXMgZXZlblxuQGZ1bmN0aW9uIGlzLWV2ZW4oJGludCkge1xuICBAcmV0dXJuICRpbnQgJSAyID09IDA7XG59XG5cbi8vIENoZWNrcyBpZiBhbiBlbGVtZW50IGJlbG9uZ3MgdG8gYSBsaXN0IG9yIG5vdFxuQGZ1bmN0aW9uIGJlbG9uZ3MtdG8oJHRlc3RlZC1pdGVtLCAkbGlzdCkge1xuICBAcmV0dXJuIGlzLW5vdChub3QtYmVsb25ncy10bygkdGVzdGVkLWl0ZW0sICRsaXN0KSk7XG59XG5cbkBmdW5jdGlvbiBub3QtYmVsb25ncy10bygkdGVzdGVkLWl0ZW0sICRsaXN0KSB7XG4gIEByZXR1cm4gaXMtbm90KGluZGV4KCRsaXN0LCAkdGVzdGVkLWl0ZW0pKTtcbn1cblxuLy8gQ29udGFpbnMgZGlzcGxheSB2YWx1ZVxuQGZ1bmN0aW9uIGNvbnRhaW5zLWRpc3BsYXktdmFsdWUoJHF1ZXJ5KSB7XG4gIEByZXR1cm4gYmVsb25ncy10byh0YWJsZSwgJHF1ZXJ5KVxuICAgICAgIG9yIGJlbG9uZ3MtdG8oYmxvY2ssICRxdWVyeSlcbiAgICAgICBvciBiZWxvbmdzLXRvKGlubGluZS1ibG9jaywgJHF1ZXJ5KVxuICAgICAgIG9yIGJlbG9uZ3MtdG8oaW5saW5lLCAkcXVlcnkpO1xufVxuXG4vLyBQYXJzZXMgdGhlIGZpcnN0IGFyZ3VtZW50IG9mIHNwYW4tY29sdW1ucygpXG5AZnVuY3Rpb24gY29udGFpbmVyLXNwYW4oJHNwYW46ICRzcGFuKSB7XG4gIEBpZiBsZW5ndGgoJHNwYW4pID09IDMge1xuICAgICRjb250YWluZXItY29sdW1uczogbnRoKCRzcGFuLCAzKTtcbiAgICBAcmV0dXJuICRjb250YWluZXItY29sdW1ucztcbiAgfSBAZWxzZSBpZiBsZW5ndGgoJHNwYW4pID09IDIge1xuICAgICRjb250YWluZXItY29sdW1uczogbnRoKCRzcGFuLCAyKTtcbiAgICBAcmV0dXJuICRjb250YWluZXItY29sdW1ucztcbiAgfVxuXG4gIEByZXR1cm4gJGdyaWQtY29sdW1ucztcbn1cblxuQGZ1bmN0aW9uIGNvbnRhaW5lci1zaGlmdCgkc2hpZnQ6ICRzaGlmdCkge1xuICAkcGFyZW50LWNvbHVtbnM6ICRncmlkLWNvbHVtbnMgIWRlZmF1bHQgIWdsb2JhbDtcblxuICBAaWYgbGVuZ3RoKCRzaGlmdCkgPT0gMyB7XG4gICAgJGNvbnRhaW5lci1jb2x1bW5zOiBudGgoJHNoaWZ0LCAzKTtcbiAgICBAcmV0dXJuICRjb250YWluZXItY29sdW1ucztcbiAgfSBAZWxzZSBpZiBsZW5ndGgoJHNoaWZ0KSA9PSAyIHtcbiAgICAkY29udGFpbmVyLWNvbHVtbnM6IG50aCgkc2hpZnQsIDIpO1xuICAgIEByZXR1cm4gJGNvbnRhaW5lci1jb2x1bW5zO1xuICB9XG5cbiAgQHJldHVybiAkcGFyZW50LWNvbHVtbnM7XG59XG5cbi8vIEdlbmVyYXRlcyBhIHN0cmlwZWQgYmFja2dyb3VuZFxuQGZ1bmN0aW9uIGdyYWRpZW50LXN0b3BzKCRncmlkLWNvbHVtbnMsICRjb2xvcjogJHZpc3VhbC1ncmlkLWNvbG9yKSB7XG4gICR0cmFuc3BhcmVudDogdHJhbnNwYXJlbnQ7XG5cbiAgJGNvbHVtbi13aWR0aDogZmxleC1ncmlkKDEsICRncmlkLWNvbHVtbnMpO1xuICAkZ3V0dGVyLXdpZHRoOiBmbGV4LWd1dHRlcigkZ3JpZC1jb2x1bW5zKTtcbiAgJGNvbHVtbi1vZmZzZXQ6ICRjb2x1bW4td2lkdGg7XG5cbiAgJHZhbHVlczogKCR0cmFuc3BhcmVudCAwLCAkY29sb3IgMCk7XG5cbiAgQGZvciAkaSBmcm9tIDEgdG8gJGdyaWQtY29sdW1ucyoyIHtcbiAgICBAaWYgaXMtZXZlbigkaSkge1xuICAgICAgJHZhbHVlczogYXBwZW5kKCR2YWx1ZXMsICR0cmFuc3BhcmVudCAkY29sdW1uLW9mZnNldCwgY29tbWEpO1xuICAgICAgJHZhbHVlczogYXBwZW5kKCR2YWx1ZXMsICRjb2xvciAkY29sdW1uLW9mZnNldCwgY29tbWEpO1xuICAgICAgJGNvbHVtbi1vZmZzZXQ6ICRjb2x1bW4tb2Zmc2V0ICsgJGNvbHVtbi13aWR0aDtcbiAgICB9IEBlbHNlIHtcbiAgICAgICR2YWx1ZXM6IGFwcGVuZCgkdmFsdWVzLCAkY29sb3IgJGNvbHVtbi1vZmZzZXQsIGNvbW1hKTtcbiAgICAgICR2YWx1ZXM6IGFwcGVuZCgkdmFsdWVzLCAkdHJhbnNwYXJlbnQgJGNvbHVtbi1vZmZzZXQsIGNvbW1hKTtcbiAgICAgICRjb2x1bW4tb2Zmc2V0OiAkY29sdW1uLW9mZnNldCArICRndXR0ZXItd2lkdGg7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkdmFsdWVzO1xufVxuXG4vLyBMYXlvdXQgZGlyZWN0aW9uXG5AZnVuY3Rpb24gZ2V0LWRpcmVjdGlvbigkbGF5b3V0LCAkZGVmYXVsdCkge1xuICAkZGlyZWN0aW9uOiBudWxsO1xuXG4gIEBpZiB0by11cHBlci1jYXNlKCRsYXlvdXQpID09IFwiTFRSXCIgb3IgdG8tdXBwZXItY2FzZSgkbGF5b3V0KSA9PSBcIlJUTFwiIHtcbiAgICAkZGlyZWN0aW9uOiBkaXJlY3Rpb24tZnJvbS1sYXlvdXQoJGxheW91dCk7XG4gIH0gQGVsc2Uge1xuICAgICRkaXJlY3Rpb246IGRpcmVjdGlvbi1mcm9tLWxheW91dCgkZGVmYXVsdCk7XG4gIH1cblxuICBAcmV0dXJuICRkaXJlY3Rpb247XG59XG5cbkBmdW5jdGlvbiBkaXJlY3Rpb24tZnJvbS1sYXlvdXQoJGxheW91dCkge1xuICAkZGlyZWN0aW9uOiBudWxsO1xuXG4gIEBpZiB0by11cHBlci1jYXNlKCRsYXlvdXQpID09IFwiTFRSXCIge1xuICAgICRkaXJlY3Rpb246IHJpZ2h0O1xuICB9IEBlbHNlIHtcbiAgICAkZGlyZWN0aW9uOiBsZWZ0O1xuICB9XG5cbiAgQHJldHVybiAkZGlyZWN0aW9uO1xufVxuXG5AZnVuY3Rpb24gZ2V0LW9wcG9zaXRlLWRpcmVjdGlvbigkZGlyZWN0aW9uKSB7XG4gICRvcHBvc2l0ZS1kaXJlY3Rpb246IGxlZnQ7XG5cbiAgQGlmICRkaXJlY3Rpb24gPT0gXCJsZWZ0XCIge1xuICAgICRvcHBvc2l0ZS1kaXJlY3Rpb246IHJpZ2h0O1xuICB9XG5cbiAgQHJldHVybiAkb3Bwb3NpdGUtZGlyZWN0aW9uO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUmV0dXJucyBhIG1lZGlhIGNvbnRleHQgKG1lZGlhIHF1ZXJ5IC8gZ3JpZCBjb250ZXh0KSB0aGF0IGNhbiBiZSBzdG9yZWQgaW4gYSB2YXJpYWJsZSBhbmQgcGFzc2VkIHRvIGBtZWRpYSgpYCBhcyBhIHNpbmdsZS1rZXl3b3JkIGFyZ3VtZW50LiBNZWRpYSBjb250ZXh0cyBkZWZpbmVkIHVzaW5nIGBuZXctYnJlYWtwb2ludGAgYXJlIHVzZWQgYnkgdGhlIHZpc3VhbCBncmlkLCBhcyBsb25nIGFzIHRoZXkgYXJlIGRlZmluZWQgYmVmb3JlIGltcG9ydGluZyBOZWF0LlxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkcXVlcnlcbi8vLyAgIEEgbGlzdCBvZiBtZWRpYSBxdWVyeSBmZWF0dXJlcyBhbmQgdmFsdWVzLiBFYWNoIGAkZmVhdHVyZWAgc2hvdWxkIGhhdmUgYSBjb3JyZXNwb25kaW5nIGAkdmFsdWVgLlxuLy8vXG4vLy8gICBJZiB0aGVyZSBpcyBvbmx5IGEgc2luZ2xlIGAkdmFsdWVgIGluIGAkcXVlcnlgLCBgJGRlZmF1bHQtZmVhdHVyZWAgaXMgZ29pbmcgdG8gYmUgdXNlZC5cbi8vL1xuLy8vICAgVGhlIG51bWJlciBvZiB0b3RhbCBjb2x1bW5zIGluIHRoZSBncmlkIGNhbiBiZSBzZXQgYnkgcGFzc2luZyBgJGNvbHVtbnNgIGF0IHRoZSBlbmQgb2YgdGhlIGxpc3QgKG92ZXJyaWRlcyBgJHRvdGFsLWNvbHVtbnNgKS4gRm9yIGEgbGlzdCBvZiB2YWxpZCB2YWx1ZXMgZm9yIGAkZmVhdHVyZWAsIGNsaWNrIFtoZXJlXShodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MzLW1lZGlhcXVlcmllcy8jbWVkaWExKS5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyICh1bml0bGVzcyl9ICR0b3RhbC1jb2x1bW5zIFskZ3JpZC1jb2x1bW5zXVxuLy8vICAgLSBOdW1iZXIgb2YgY29sdW1ucyB0byB1c2UgaW4gdGhlIG5ldyBncmlkIGNvbnRleHQuIENhbiBiZSBzZXQgYXMgYSBzaG9ydGhhbmQgaW4gdGhlIGZpcnN0IHBhcmFtZXRlci5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgJG1vYmlsZTogbmV3LWJyZWFrcG9pbnQobWF4LXdpZHRoIDQ4MHB4IDQpO1xuLy8vXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIG1lZGlhKCRtb2JpbGUpIHtcbi8vLyAgICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoNCk7XG4vLy8gICAgIH1cbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4vLy8gICAgIC5lbGVtZW50IHtcbi8vLyAgICAgICBkaXNwbGF5OiBibG9jaztcbi8vLyAgICAgICBmbG9hdDogbGVmdDtcbi8vLyAgICAgICBtYXJnaW4tcmlnaHQ6IDcuNDIyOTclO1xuLy8vICAgICAgIHdpZHRoOiAxMDAlO1xuLy8vICAgICB9XG4vLy8gICAgIC5lbGVtZW50Omxhc3QtY2hpbGQge1xuLy8vICAgICAgIG1hcmdpbi1yaWdodDogMDtcbi8vLyAgICAgfVxuLy8vICAgfVxuXG5AZnVuY3Rpb24gbmV3LWJyZWFrcG9pbnQoJHF1ZXJ5OiAkZmVhdHVyZSAkdmFsdWUgJGNvbHVtbnMsICR0b3RhbC1jb2x1bW5zOiAkZ3JpZC1jb2x1bW5zKSB7XG4gIEBpZiBsZW5ndGgoJHF1ZXJ5KSA9PSAxIHtcbiAgICAkcXVlcnk6ICRkZWZhdWx0LWZlYXR1cmUgbnRoKCRxdWVyeSwgMSkgJHRvdGFsLWNvbHVtbnM7XG4gIH0gQGVsc2UgaWYgaXMtZXZlbihsZW5ndGgoJHF1ZXJ5KSkge1xuICAgICRxdWVyeTogYXBwZW5kKCRxdWVyeSwgJHRvdGFsLWNvbHVtbnMpO1xuICB9XG5cbiAgQGlmIGlzLW5vdChiZWxvbmdzLXRvKCRxdWVyeSwgJHZpc3VhbC1ncmlkLWJyZWFrcG9pbnRzKSkge1xuICAgICR2aXN1YWwtZ3JpZC1icmVha3BvaW50czogYXBwZW5kKCR2aXN1YWwtZ3JpZC1icmVha3BvaW50cywgJHF1ZXJ5LCBjb21tYSkgIWdsb2JhbDtcbiAgfVxuXG4gIEByZXR1cm4gJHF1ZXJ5O1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gU2V0cyB0aGUgcmVsYXRpdmUgd2lkdGggb2YgYSBzaW5nbGUgZ3JpZCBjb2x1bW4uIFRoZSB1bml0IHVzZWQgc2hvdWxkIGJlIHRoZSBzYW1lIG9uZSB1c2VkIHRvIGRlZmluZSBgJGd1dHRlcmAuIFRvIGxlYXJuIG1vcmUgYWJvdXQgbW9kdWxhci1zY2FsZSgpIHNlZSBbQm91cmJvbiBkb2NzXShodHRwOi8vYm91cmJvbi5pby9kb2NzLyNtb2R1bGFyLXNjYWxlKS4gU2V0IHdpdGggYSBgIWdsb2JhbGAgZmxhZy5cbi8vL1xuLy8vIEB0eXBlIE51bWJlciAoVW5pdClcblxuJGNvbHVtbjogbW9kdWxhci1zY2FsZSgzLCAxZW0sICRnb2xkZW4pICFkZWZhdWx0O1xuXG4vLy8gU2V0cyB0aGUgcmVsYXRpdmUgd2lkdGggb2YgYSBzaW5nbGUgZ3JpZCBndXR0ZXIuIFRoZSB1bml0IHVzZWQgc2hvdWxkIGJlIHRoZSBzYW1lIG9uZSB1c2VkIHRvIGRlZmluZSBgJGNvbHVtbmAuIFRvIGxlYXJuIG1vcmUgYWJvdXQgbW9kdWxhci1zY2FsZSgpIHNlZSBbQm91cmJvbiBkb2NzXShodHRwOi8vYm91cmJvbi5pby9kb2NzLyNtb2R1bGFyLXNjYWxlKS4gU2V0IHdpdGggdGhlIGAhZ2xvYmFsYCBmbGFnLlxuLy8vXG4vLy8gQHR5cGUgTnVtYmVyIChVbml0KVxuXG4kZ3V0dGVyOiBtb2R1bGFyLXNjYWxlKDEsIDFlbSwgJGdvbGRlbikgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIHRoZSB0b3RhbCBudW1iZXIgb2YgY29sdW1ucyBpbiB0aGUgZ3JpZC4gSXRzIHZhbHVlIGNhbiBiZSBvdmVycmlkZGVuIGluc2lkZSBhIG1lZGlhIHF1ZXJ5IHVzaW5nIHRoZSBgbWVkaWEoKWAgbWl4aW4uIFNldCB3aXRoIHRoZSBgIWdsb2JhbGAgZmxhZy5cbi8vL1xuLy8vIEB0eXBlIE51bWJlciAoVW5pdGxlc3MpXG5cbiRncmlkLWNvbHVtbnM6IDEyICFkZWZhdWx0O1xuXG4vLy8gU2V0cyB0aGUgbWF4LXdpZHRoIHByb3BlcnR5IG9mIHRoZSBlbGVtZW50IHRoYXQgaW5jbHVkZXMgYG91dGVyLWNvbnRhaW5lcigpYC4gVG8gbGVhcm4gbW9yZSBhYm91dCBgZW0oKWAgc2VlIFtCb3VyYm9uIGRvY3NdKGh0dHA6Ly9ib3VyYm9uLmlvL2RvY3MvI3B4LXRvLWVtKS4gU2V0IHdpdGggdGhlIGAhZ2xvYmFsYCBmbGFnLlxuLy8vXG4vLy8gQHR5cGUgTnVtYmVyIChVbml0KVxuLy8vXG4kbWF4LXdpZHRoOiBlbSgxMDg4KSAhZGVmYXVsdDtcblxuLy8vIFdoZW4gc2V0IHRvIHRydWUsIGl0IHNldHMgdGhlIGJveC1zaXppbmcgcHJvcGVydHkgb2YgYWxsIGVsZW1lbnRzIHRvIGBib3JkZXItYm94YC4gU2V0IHdpdGggYSBgIWdsb2JhbGAgZmxhZy5cbi8vL1xuLy8vIEB0eXBlIEJvb2xcbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIGh0bWwge1xuLy8vICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG4vLy9cbi8vLyAgICosICo6OmFmdGVyLCAqOjpiZWZvcmUge1xuLy8vICAgICBib3gtc2l6aW5nOiBpbmhlcml0O1xuLy8vICAgfVxuXG4kYm9yZGVyLWJveC1zaXppbmc6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIHRoZSBkZWZhdWx0IFttZWRpYSBmZWF0dXJlXShodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MzLW1lZGlhcXVlcmllcy8jbWVkaWEpIHRoYXQgYG1lZGlhKClgIGFuZCBgbmV3LWJyZWFrcG9pbnQoKWAgcmV2ZXJ0IHRvIHdoZW4gb25seSBhIGJyZWFrcG9pbnQgdmFsdWUgaXMgcGFzc2VkLiBTZXQgd2l0aCBhIGAhZ2xvYmFsYCBmbGFnLlxuLy8vXG4vLy8gQHR5cGUgU3RyaW5nXG5cbiRkZWZhdWx0LWZlYXR1cmU6IG1pbi13aWR0aDsgLy8gRGVmYXVsdCBAbWVkaWEgZmVhdHVyZSBmb3IgdGhlIGJyZWFrcG9pbnQoKSBtaXhpblxuXG4vLy9TZXRzIHRoZSBkZWZhdWx0IGxheW91dCBkaXJlY3Rpb24gb2YgdGhlIGdyaWQuIENhbiBiZSBgTFRSYCBvciBgUlRMYC4gU2V0IHdpdGggYSBgIWdsb2JhbGAgZmxhZy5cbi8vL1xuLy8vQHR5cGUgU3RyaW5nXG5cbiRkZWZhdWx0LWxheW91dC1kaXJlY3Rpb246IExUUiAhZGVmYXVsdDtcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIERpc3BsYXlzIHRoZSB2aXN1YWwgZ3JpZCB3aGVuIHNldCB0byB0cnVlLiBUaGUgb3ZlcmxhaWQgZ3JpZCBtYXkgYmUgZmV3IHBpeGVscyBvZmYgZGVwZW5kaW5nIG9uIHRoZSBicm93c2VyJ3MgcmVuZGVyaW5nIGVuZ2luZSBhbmQgcGl4ZWwgcm91bmRpbmcgYWxnb3JpdGhtLiBTZXQgd2l0aCB0aGUgYCFnbG9iYWxgIGZsYWcuXG4vLy9cbi8vLyBAdHlwZSBCb29sXG5cbiR2aXN1YWwtZ3JpZDogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIHRoZSB2aXN1YWwgZ3JpZCBjb2xvci4gU2V0IHdpdGggYCFnbG9iYWxgIGZsYWcuXG4vLy9cbi8vLyBAdHlwZSBDb2xvclxuXG4kdmlzdWFsLWdyaWQtY29sb3I6ICNlZWUgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIHRoZSBgei1pbmRleGAgcHJvcGVydHkgb2YgdGhlIHZpc3VhbCBncmlkLiBDYW4gYmUgYGJhY2tgIChiZWhpbmQgY29udGVudCkgb3IgYGZyb250YCAoaW4gZnJvbnQgb2YgY29udGVudCkuIFNldCB3aXRoIGAhZ2xvYmFsYCBmbGFnLlxuLy8vXG4vLy8gQHR5cGUgU3RyaW5nXG5cbiR2aXN1YWwtZ3JpZC1pbmRleDogYmFjayAhZGVmYXVsdDtcblxuLy8vIFNldHMgdGhlIG9wYWNpdHkgcHJvcGVydHkgb2YgdGhlIHZpc3VhbCBncmlkLiBTZXQgd2l0aCBgIWdsb2JhbGAgZmxhZy5cbi8vL1xuLy8vIEB0eXBlIE51bWJlciAodW5pdGxlc3MpXG5cbiR2aXN1YWwtZ3JpZC1vcGFjaXR5OiAwLjQgIWRlZmF1bHQ7XG5cbiR2aXN1YWwtZ3JpZC1icmVha3BvaW50czogKCkgIWRlZmF1bHQ7XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBEaXNhYmxlIGFsbCBkZXByZWNhdGlvbiB3YXJuaW5ncy4gRGVmYXVsdHMgdG8gYGZhbHNlYC4gU2V0IHdpdGggYSBgIWdsb2JhbGAgZmxhZy5cbi8vL1xuLy8vIEB0eXBlIEJvb2xcblxuJGRpc2FibGUtd2FybmluZ3M6IGZhbHNlICFkZWZhdWx0O1xuXG5AbWl4aW4gLW5lYXQtd2FybigkbWVzc2FnZSkge1xuICBAaWYgJGRpc2FibGUtd2FybmluZ3MgPT0gZmFsc2Uge1xuICAgIEB3YXJuIFwiI3skbWVzc2FnZX1cIjtcbiAgfVxufVxuIiwiXG4uYnV0dG9uIGEsXG4uc3RhdGljLWJ1dHRvbixcbi5yZWFkLW1vcmUgLmJ1dHRvbiB7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYWN0aW9uLWNvbG9yO1xuICAgIGJvcmRlcjogMDtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZvbnQtZmFtaWx5OiAkYmFzZS1mb250LWZhbWlseTtcbiAgICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZTtcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIG1hcmdpbjogMCA1cHggMTVweCAwO1xuICAgIHBhZGRpbmc6ICRzbWFsbC1zcGFjaW5nKzAuMjUgJGJhc2Utc3BhY2luZyoyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDMwMG1zICRiYXNlLXRpbWluZztcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICRhY3Rpb24tY29sb3I7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkYWN0aW9uLWNvbG9yO1xuICAgICAgICBwYWRkaW5nOiA1cHg7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDMwMG1zICRiYXNlLXRpbWluZztcbiAgICAgICAgdG9wOiA1cHg7XG4gICAgICAgIGxlZnQ6IC01cHg7XG4gICAgICAgIHJpZ2h0OiA1cHg7XG4gICAgICAgIGJvdHRvbTogLTVweDtcblxuICAgICAgICAubWVqcy1pbm5lciAmIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGFyay1yZWQ7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgJGRhcmstcmVkO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRkYXJrLXJlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICY6ZGlzYWJsZWQge1xuICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYWN0aW9uLWNvbG9yO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5kYXJrIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGRhcmstZ3JheTtcbiAgICAgICAgY29sb3I6ICNmZmY7XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAkZGFyay1ncmF5O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRkYXJrLWdyYXk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRibGFjaztcbiAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xuXG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAkYmxhY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRibGFjaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICYubGlnaHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICAgICAgY29sb3I6ICRibGFjaztcblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2ZmZjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZmZmO1xuICAgICAgICAgICAgcGFkZGluZzogNXB4O1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDMwMG1zICRiYXNlLXRpbWluZztcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IC01cHg7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogLTVweDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGxpZ2h0LWdyYXk7XG4gICAgICAgICAgICBjb2xvcjogJGJsYWNrO1xuXG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAkbGlnaHQtZ3JheTtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGxpZ2h0LWdyYXk7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5zbWFsbCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgcGFkZGluZzogJHNtYWxsLXNwYWNpbmcgJHNtYWxsLXNwYWNpbmcqMjtcblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG59XG5cbi5ibGFjay1idXR0b24gYSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJsYWNrO1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXdlaWdodDogMTAwO1xuICAgIHBhZGRpbmc6ICRzbWFsbC1zcGFjaW5nICRiYXNlLXNwYWNpbmc7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAzMDBtcyAkYmFzZS10aW1pbmc7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbigkYmxhY2ssIDEwJSk7XG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICB9XG59XG5cbi53aGl0ZS1idXR0b24gYSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgY29sb3I6ICRyZWQ7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZvbnQtd2VpZ2h0OiAxMDA7XG4gICAgcGFkZGluZzogJHNtYWxsLXNwYWNpbmcvMjtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMzAwbXMgJGJhc2UtdGltaW5nO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbih3aGl0ZSwgMTAlKTtcbiAgICAgICAgY29sb3I6ICRyZWQ7XG4gICAgfVxufVxuXG4uYnV0dG9uLm5vLWJvcmRlcixcbmJ1dHRvbi5uby1ib3JkZXIge1xuICAgIDpiZWZvcmUge1xuICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxufVxuXG4uZnVsbC13aWR0aCB7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICBhIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG59XG5cbi5idXR0b24ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbiIsImZpZWxkc2V0IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXI6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG59XG5cbmxlZ2VuZCB7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBtYXJnaW4tYm90dG9tOiAkc21hbGwtc3BhY2luZyAvIDI7XG4gICAgcGFkZGluZzogMDtcbn1cblxubGFiZWwge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbWFyZ2luLWJvdHRvbTogJHNtYWxsLXNwYWNpbmcgLyAyO1xuXG4gICAgLnBhZ2UtdGVtcGxhdGUtbGFuZGluZyAuaGFzLWZvcm0tYmFja2dyb3VuZCAuX3JvdyBzcGFuICYge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgfVxufVxuXG5pbnB1dCxcbnNlbGVjdCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1mYW1pbHk6ICRiYXNlLWZvbnQtZmFtaWx5O1xuICAgIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplO1xufVxuXG4jeyRhbGwtdGV4dC1pbnB1dHN9LFxuc2VsZWN0W211bHRpcGxlXSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhc2UtYmFja2dyb3VuZC1jb2xvcjtcbiAgICBib3JkZXI6ICRiYXNlLWJvcmRlcjtcbiAgICBib3JkZXItY29sb3I6IHNoYWRlKCRiYXNlLWJvcmRlci1jb2xvciwgMjAlKTtcbiAgICBib3JkZXItcmFkaXVzOiAkYmFzZS1ib3JkZXItcmFkaXVzO1xuICAgIGJveC1zaGFkb3c6ICRmb3JtLWJveC1zaGFkb3c7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBmb250LWZhbWlseTogJGJhc2UtZm9udC1mYW1pbHk7XG4gICAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemU7XG4gICAgbWFyZ2luLWJvdHRvbTogJHNtYWxsLXNwYWNpbmc7XG4gICAgcGFkZGluZzogJGJhc2Utc3BhY2luZyAvIDM7XG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yICRiYXNlLWR1cmF0aW9uICRiYXNlLXRpbWluZztcbiAgICB3aWR0aDogMTAwJTtcblxuICAgICY6aG92ZXIge1xuICAgICAgICBib3JkZXItY29sb3I6IHNoYWRlKCRiYXNlLWJvcmRlci1jb2xvciwgNDAlKTtcbiAgICB9XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkYWN0aW9uLWNvbG9yO1xuICAgICAgICBib3gtc2hhZG93OiAkZm9ybS1ib3gtc2hhZG93LWZvY3VzO1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgIH1cblxuICAgICY6ZGlzYWJsZWQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBzaGFkZSgkYmFzZS1iYWNrZ3JvdW5kLWNvbG9yLCA1JSk7XG4gICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBib3JkZXI6ICRiYXNlLWJvcmRlcjtcbiAgICAgICAgfVxuICAgIH1cbn1cblxudGV4dGFyZWEge1xuICAgIHJlc2l6ZTogdmVydGljYWw7XG59XG5cblt0eXBlPVwic2VhcmNoXCJdIHtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xufVxuXG5bdHlwZT1cImNoZWNrYm94XCJdLFxuW3R5cGU9XCJyYWRpb1wiXSB7XG4gICAgZGlzcGxheTogaW5saW5lO1xuICAgIG1hcmdpbi1yaWdodDogJHNtYWxsLXNwYWNpbmcgLyAyO1xufVxuXG5bdHlwZT1cImZpbGVcIl0ge1xuICAgIG1hcmdpbi1ib3R0b206ICRzbWFsbC1zcGFjaW5nO1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG5zZWxlY3Qge1xuICAgIG1hcmdpbi1ib3R0b206ICRiYXNlLXNwYWNpbmc7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIHdpZHRoOiBhdXRvO1xufVxuIiwidWwsXG5vbCB7XG4gICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xufVxuXG5kbCB7XG4gICAgbWFyZ2luLWJvdHRvbTogJHNtYWxsLXNwYWNpbmc7XG5cbiAgICBkdCB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIG1hcmdpbi10b3A6ICRzbWFsbC1zcGFjaW5nO1xuICAgIH1cblxuICAgIGRkIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cbn1cblxuLmNoZWNrLWxpc3Qge1xuXG4gICAgdWwgbGksXG4gICAgb2wgbGkge1xuICAgICAgICBtYXJnaW4tbGVmdDogMi41ZW07XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAkc21hbGwtc3BhY2luZztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2Fzc2V0cy9pY29ucy9jaGVjay1tYXJrLnBuZycpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGxlZnQgY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICAgICAgICAgICAgaGVpZ2h0OiAyMnB4O1xuICAgICAgICAgICAgd2lkdGg6IDIycHg7XG4gICAgICAgICAgICBsZWZ0OiAtMzBweDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgfVxuXG5cblxuICAgIH1cbn1cbiIsInRhYmxlIHtcbiAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICAgIG1hcmdpbjogJHNtYWxsLXNwYWNpbmcgMDtcbiAgICB0YWJsZS1sYXlvdXQ6IGZpeGVkO1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG50aCB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHNoYWRlKCRiYXNlLWJvcmRlci1jb2xvciwgMjUlKTtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIHBhZGRpbmc6ICRzbWFsbC1zcGFjaW5nIDA7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxudGQge1xuICAgIGJvcmRlci1ib3R0b206ICRiYXNlLWJvcmRlcjtcbiAgICBwYWRkaW5nOiAkc21hbGwtc3BhY2luZyAwO1xufVxuXG50cixcbnRkLFxudGgge1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG4iLCJib2R5IHtcbiAgICBjb2xvcjogJGJhc2UtZm9udC1jb2xvcjtcbiAgICBmb250LWZhbWlseTogJGJhc2UtZm9udC1mYW1pbHk7XG4gICAgZm9udC1zaXplOiBlbSgxNCk7XG4gICAgbGluZS1oZWlnaHQ6ICRiYXNlLWxpbmUtaGVpZ2h0O1xuXG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkbGFyZ2Utc2NyZWVuKSB7XG4gICAgICAgIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplO1xuICAgIH1cbn1cblxuaDEsXG5oMixcbmgzLFxuaDQsXG5oNSxcbmg2IHtcbiAgICBmb250LWZhbWlseTogJGhlYWRpbmctZm9udC1mYW1pbHk7XG4gICAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6ICRoZWFkaW5nLWxpbmUtaGVpZ2h0O1xuICAgIG1hcmdpbjogMCAwICRzbWFsbC1zcGFjaW5nO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG5cbmgxIHtcbiAgICBmb250LXNpemU6ICRoMS1mb250LXNpemU7XG59XG5cbmgyIHtcbiAgICBmb250LXNpemU6ICRoMi1mb250LXNpemU7XG59XG5cbmgzIHtcbiAgICBmb250LXNpemU6ICRoMy1mb250LXNpemU7XG59XG5cbmg0IHtcbiAgICBmb250LXNpemU6ICRoNC1mb250LXNpemU7XG59XG5cbmg1IHtcbiAgICBmb250LXNpemU6ICRoNS1mb250LXNpemU7XG59XG5cbmg2IHtcbiAgICBmb250LXNpemU6ICRoNi1mb250LXNpemU7XG59XG5cblxuLm1lZ2EtaGVhZGVyIHtcbiAgICBmb250LXNpemU6IDQycHg7XG5cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDkwMHB4KSB7XG4gICAgICAgIGZvbnQtc2l6ZTogNjBweDtcbiAgICB9XG59XG5cbnAge1xuICAgIG1hcmdpbjogMCAwIDEuNWVtO1xufVxuXG5hIHtcbiAgICBjb2xvcjogJGFjdGlvbi1jb2xvcjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgdHJhbnNpdGlvbjogY29sb3IgJGJhc2UtZHVyYXRpb24gJGJhc2UtdGltaW5nO1xuXG4gICAgJjphY3RpdmUsXG4gICAgJjpmb2N1cyxcbiAgICAmOmhvdmVyIHtcbiAgICAgICAgY29sb3I6ICRkYXJrLXJlZDtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICB9XG59XG5cbmEuc3RhdGljLWJ1dHRvbiB7XG4gICAgY29sb3I6IHdoaXRlO1xuXG4gICAgJjphY3RpdmUsXG4gICAgJjpmb2N1cyxcbiAgICAmOmhvdmVyIHtcbiAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgIH1cbn1cblxuaHIge1xuICAgIGJvcmRlci1ib3R0b206ICRiYXNlLWJvcmRlcjtcbiAgICBib3JkZXItbGVmdDogMDtcbiAgICBib3JkZXItcmlnaHQ6IDA7XG4gICAgYm9yZGVyLXRvcDogMDtcbiAgICBib3JkZXItY29sb3I6ICRhY3Rpb24tY29sb3I7XG4gICAgbWFyZ2luOiAkYmFzZS1zcGFjaW5nIDA7XG59XG5cbmltZyxcbnBpY3R1cmUge1xuICAgIG1hcmdpbjogMDtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG59XG5cbi5ib2R5LWZvbnQge1xuICAgIGZvbnQtZmFtaWx5OiAkYmFzZS1mb250LWZhbWlseTtcbn1cblxuLmhlYWRpbmctZm9udCB7XG4gICAgZm9udC1mYW1pbHk6ICRoZWFkaW5nLWZvbnQtZmFtaWx5O1xufVxuXG4uY2FwaXRhbGl6ZWQge1xuICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xufVxuXG4udXBwZXJjYXNlIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG4ubW92ZS10ZXh0LXVwIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luLXRvcDogLTIwcHg7XG59XG5cbi5saWdodCB7XG4gICAgZm9udC1mYW1pbHk6IDMwMDtcbn1cblxuLnN0cmlrZXRocm91Z2gge1xuICAgIGNvbG9yOiAkYWN0aW9uLWNvbG9yO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xufSIsIi8vIE5lYXQgMS43LjJcbi8vIGh0dHA6Ly9uZWF0LmJvdXJib24uaW9cbi8vIENvcHlyaWdodCAyMDEyLTIwMTUgdGhvdWdodGJvdCwgaW5jLlxuLy8gTUlUIExpY2Vuc2VcblxuLy8gSGVscGVyc1xuQGltcG9ydCBcIm5lYXQtaGVscGVyc1wiO1xuXG4vLyBHcmlkXG5AaW1wb3J0IFwiZ3JpZC9wcml2YXRlXCI7XG5AaW1wb3J0IFwiZ3JpZC9ib3gtc2l6aW5nXCI7XG5AaW1wb3J0IFwiZ3JpZC9vbWVnYVwiO1xuQGltcG9ydCBcImdyaWQvb3V0ZXItY29udGFpbmVyXCI7XG5AaW1wb3J0IFwiZ3JpZC9zcGFuLWNvbHVtbnNcIjtcbkBpbXBvcnQgXCJncmlkL3Jvd1wiO1xuQGltcG9ydCBcImdyaWQvc2hpZnRcIjtcbkBpbXBvcnQgXCJncmlkL3BhZFwiO1xuQGltcG9ydCBcImdyaWQvZmlsbC1wYXJlbnRcIjtcbkBpbXBvcnQgXCJncmlkL21lZGlhXCI7XG5AaW1wb3J0IFwiZ3JpZC90by1kZXByZWNhdGVcIjtcbkBpbXBvcnQgXCJncmlkL3Zpc3VhbC1ncmlkXCI7XG5AaW1wb3J0IFwiZ3JpZC9kaXNwbGF5LWNvbnRleHRcIjtcbkBpbXBvcnQgXCJncmlkL2RpcmVjdGlvbi1jb250ZXh0XCI7XG4iLCIkcGFyZW50LWNvbHVtbnM6ICRncmlkLWNvbHVtbnMgIWRlZmF1bHQ7XG4kZmctY29sdW1uOiAkY29sdW1uO1xuJGZnLWd1dHRlcjogJGd1dHRlcjtcbiRmZy1tYXgtY29sdW1uczogJGdyaWQtY29sdW1ucztcbiRjb250YWluZXItZGlzcGxheS10YWJsZTogZmFsc2UgIWRlZmF1bHQ7XG4kbGF5b3V0LWRpcmVjdGlvbjogTFRSICFkZWZhdWx0O1xuXG5AZnVuY3Rpb24gZmxleC1ncmlkKCRjb2x1bW5zLCAkY29udGFpbmVyLWNvbHVtbnM6ICRmZy1tYXgtY29sdW1ucykge1xuICAkd2lkdGg6ICRjb2x1bW5zICogJGZnLWNvbHVtbiArICgkY29sdW1ucyAtIDEpICogJGZnLWd1dHRlcjtcbiAgJGNvbnRhaW5lci13aWR0aDogJGNvbnRhaW5lci1jb2x1bW5zICogJGZnLWNvbHVtbiArICgkY29udGFpbmVyLWNvbHVtbnMgLSAxKSAqICRmZy1ndXR0ZXI7XG4gIEByZXR1cm4gcGVyY2VudGFnZSgkd2lkdGggLyAkY29udGFpbmVyLXdpZHRoKTtcbn1cblxuQGZ1bmN0aW9uIGZsZXgtZ3V0dGVyKCRjb250YWluZXItY29sdW1uczogJGZnLW1heC1jb2x1bW5zLCAkZ3V0dGVyOiAkZmctZ3V0dGVyKSB7XG4gICRjb250YWluZXItd2lkdGg6ICRjb250YWluZXItY29sdW1ucyAqICRmZy1jb2x1bW4gKyAoJGNvbnRhaW5lci1jb2x1bW5zIC0gMSkgKiAkZmctZ3V0dGVyO1xuICBAcmV0dXJuIHBlcmNlbnRhZ2UoJGd1dHRlciAvICRjb250YWluZXItd2lkdGgpO1xufVxuXG5AZnVuY3Rpb24gZ3JpZC13aWR0aCgkbikge1xuICBAcmV0dXJuICRuICogJGd3LWNvbHVtbiArICgkbiAtIDEpICogJGd3LWd1dHRlcjtcbn1cblxuQGZ1bmN0aW9uIGdldC1wYXJlbnQtY29sdW1ucygkY29sdW1ucykge1xuICBAaWYgJGNvbHVtbnMgIT0gJGdyaWQtY29sdW1ucyB7XG4gICAgJHBhcmVudC1jb2x1bW5zOiAkY29sdW1ucyAhZ2xvYmFsO1xuICB9IEBlbHNlIHtcbiAgICAkcGFyZW50LWNvbHVtbnM6ICRncmlkLWNvbHVtbnMgIWdsb2JhbDtcbiAgfVxuXG4gIEByZXR1cm4gJHBhcmVudC1jb2x1bW5zO1xufVxuXG5AZnVuY3Rpb24gaXMtZGlzcGxheS10YWJsZSgkY29udGFpbmVyLWlzLWRpc3BsYXktdGFibGUsICRkaXNwbGF5KSB7XG4gIEByZXR1cm4gJGNvbnRhaW5lci1pcy1kaXNwbGF5LXRhYmxlID09IHRydWUgb3IgJGRpc3BsYXkgPT0gdGFibGU7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbkBpZiAkYm9yZGVyLWJveC1zaXppbmcgPT0gdHJ1ZSB7XG4gIGh0bWwgeyAvLyBodHRwOi8vYml0Lmx5LzFxazJ0VlJcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB9XG5cbiAgKiB7XG4gICAgJixcbiAgICAmOjphZnRlcixcbiAgICAmOjpiZWZvcmUge1xuICAgICAgYm94LXNpemluZzogaW5oZXJpdDtcbiAgICB9XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFJlbW92ZXMgdGhlIGVsZW1lbnQncyBndXR0ZXIgbWFyZ2luLCByZWdhcmRsZXNzIG9mIGl0cyBwb3NpdGlvbiBpbiB0aGUgZ3JpZCBoaWVyYXJjaHkgb3IgZGlzcGxheSBwcm9wZXJ0eS4gSXQgY2FuIHRhcmdldCBhIHNwZWNpZmljIGVsZW1lbnQsIG9yIGV2ZXJ5IGBudGgtY2hpbGRgIG9jY3VycmVuY2UuIFdvcmtzIG9ubHkgd2l0aCBgYmxvY2tgIGxheW91dHMuXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRxdWVyeSBbYmxvY2tdXG4vLy8gICBMaXN0IG9mIGFyZ3VtZW50cy4gU3VwcG9ydGVkIGFyZ3VtZW50cyBhcmUgYG50aC1jaGlsZGAgc2VsZWN0b3JzICh0YXJnZXRzIGEgc3BlY2lmaWMgcHNldWRvIGVsZW1lbnQpIGFuZCBgYXV0b2AgKHRhcmdldHMgYGxhc3QtY2hpbGRgKS5cbi8vL1xuLy8vICAgV2hlbiBwYXNzZWQgYW4gYG50aC1jaGlsZGAgYXJndW1lbnQgb2YgdHlwZSBgKm5gIHdpdGggYGJsb2NrYCBkaXNwbGF5LCB0aGUgb21lZ2EgbWl4aW4gYXV0b21hdGljYWxseSBhZGRzIGEgY2xlYXIgdG8gdGhlIGAqbisxYCB0aCBlbGVtZW50LiBOb3RlIHRoYXQgY29tcG9zaXRlIGFyZ3VtZW50cyBzdWNoIGFzIGAybisxYCBkbyBub3Qgc3VwcG9ydCB0aGlzIGZlYXR1cmUuXG4vLy9cbi8vLyAgICoqRGVwcmVjYXRpb24gd2FybmluZyoqOiBUaGUgb21lZ2EgbWl4aW4gd2lsbCBubyBsb25nZXIgdGFrZSBhIGAkZGlyZWN0aW9uYCBhcmd1bWVudC4gVG8gY2hhbmdlIHRoZSBsYXlvdXQgZGlyZWN0aW9uLCB1c2UgYHJvdygkZGlyZWN0aW9uKWAgb3Igc2V0IGAkZGVmYXVsdC1sYXlvdXQtZGlyZWN0aW9uYCBpbnN0ZWFkLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIG9tZWdhO1xuLy8vICAgfVxuLy8vXG4vLy8gICAubnRoLWVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBvbWVnYSg0bik7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIG1hcmdpbi1yaWdodDogMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLm50aC1lbGVtZW50Om50aC1jaGlsZCg0bikge1xuLy8vICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5udGgtZWxlbWVudDpudGgtY2hpbGQoNG4rMSkge1xuLy8vICAgICBjbGVhcjogbGVmdDtcbi8vLyAgIH1cblxuQG1peGluIG9tZWdhKCRxdWVyeTogYmxvY2ssICRkaXJlY3Rpb246IGRlZmF1bHQpIHtcbiAgJHRhYmxlOiBiZWxvbmdzLXRvKHRhYmxlLCAkcXVlcnkpO1xuICAkYXV0bzogYmVsb25ncy10byhhdXRvLCAkcXVlcnkpO1xuXG4gIEBpZiAkZGlyZWN0aW9uICE9IGRlZmF1bHQge1xuICAgIEBpbmNsdWRlIC1uZWF0LXdhcm4oXCJUaGUgb21lZ2EgbWl4aW4gd2lsbCBubyBsb25nZXIgdGFrZSBhICRkaXJlY3Rpb24gYXJndW1lbnQuIFRvIGNoYW5nZSB0aGUgbGF5b3V0IGRpcmVjdGlvbiwgdXNlIHRoZSBkaXJlY3Rpb24oKXsuLi59IG1peGluLlwiKTtcbiAgfSBAZWxzZSB7XG4gICAgJGRpcmVjdGlvbjogZ2V0LWRpcmVjdGlvbigkbGF5b3V0LWRpcmVjdGlvbiwgJGRlZmF1bHQtbGF5b3V0LWRpcmVjdGlvbik7XG4gIH1cblxuICBAaWYgJHRhYmxlIHtcbiAgICBAaW5jbHVkZSAtbmVhdC13YXJuKFwiVGhlIG9tZWdhIG1peGluIG5vIGxvbmdlciByZW1vdmVzIHBhZGRpbmcgaW4gdGFibGUgbGF5b3V0cy5cIik7XG4gIH1cblxuICBAaWYgbGVuZ3RoKCRxdWVyeSkgPT0gMSB7XG4gICAgQGlmICRhdXRvIHtcbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi0jeyRkaXJlY3Rpb259OiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBlbHNlIGlmIGNvbnRhaW5zLWRpc3BsYXktdmFsdWUoJHF1ZXJ5KSBhbmQgJHRhYmxlID09IGZhbHNlIHtcbiAgICAgIG1hcmdpbi0jeyRkaXJlY3Rpb259OiAwO1xuICAgIH1cblxuICAgIEBlbHNlIHtcbiAgICAgIEBpbmNsdWRlIG50aC1jaGlsZCgkcXVlcnksICRkaXJlY3Rpb24pO1xuICAgIH1cbiAgfSBAZWxzZSBpZiBsZW5ndGgoJHF1ZXJ5KSA9PSAyIHtcbiAgICBAaWYgJGF1dG8ge1xuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLSN7JGRpcmVjdGlvbn06IDA7XG4gICAgICB9XG4gICAgfSBAZWxzZSB7XG4gICAgICBAaW5jbHVkZSBudGgtY2hpbGQobnRoKCRxdWVyeSwgMSksICRkaXJlY3Rpb24pO1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgQGluY2x1ZGUgLW5lYXQtd2FybihcIlRvbyBtYW55IGFyZ3VtZW50cyBwYXNzZWQgdG8gdGhlIG9tZWdhKCkgbWl4aW4uXCIpO1xuICB9XG59XG5cbkBtaXhpbiBudGgtY2hpbGQoJHF1ZXJ5LCAkZGlyZWN0aW9uKSB7XG4gICRvcHBvc2l0ZS1kaXJlY3Rpb246IGdldC1vcHBvc2l0ZS1kaXJlY3Rpb24oJGRpcmVjdGlvbik7XG5cbiAgJjpudGgtY2hpbGQoI3skcXVlcnl9KSB7XG4gICAgbWFyZ2luLSN7JGRpcmVjdGlvbn06IDA7XG4gIH1cblxuICBAaWYgdHlwZS1vZigkcXVlcnkpID09IG51bWJlciBhbmQgdW5pdCgkcXVlcnkpID09IFwiblwiIHtcbiAgICAmOm50aC1jaGlsZCgjeyRxdWVyeX0rMSkge1xuICAgICAgY2xlYXI6ICRvcHBvc2l0ZS1kaXJlY3Rpb247XG4gICAgfVxuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBNYWtlcyBhbiBlbGVtZW50IGEgb3V0ZXIgY29udGFpbmVyIGJ5IGNlbnRyaW5nIGl0IGluIHRoZSB2aWV3cG9ydCwgY2xlYXJpbmcgaXRzIGZsb2F0cywgYW5kIHNldHRpbmcgaXRzIGBtYXgtd2lkdGhgLlxuLy8vIEFsdGhvdWdoIG9wdGlvbmFsLCB1c2luZyBgb3V0ZXItY29udGFpbmVyYCBpcyByZWNvbW1lbmRlZC4gVGhlIG1peGluIGNhbiBiZSBjYWxsZWQgb24gbW9yZSB0aGFuIG9uZSBlbGVtZW50IHBlciBwYWdlLCBhcyBsb25nIGFzIHRoZXkgYXJlIG5vdCBuZXN0ZWQuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlciBbdW5pdF19ICRsb2NhbC1tYXgtd2lkdGggWyRtYXgtd2lkdGhdXG4vLy8gICBNYXggd2lkdGggdG8gYmUgYXBwbGllZCB0byB0aGUgZWxlbWVudC4gQ2FuIGJlIGEgcGVyY2VudGFnZSBvciBhIG1lYXN1cmUuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgb3V0ZXItY29udGFpbmVyKDEwMCUpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICAqem9vbTogMTtcbi8vLyAgICAgbWF4LXdpZHRoOiAxMDAlO1xuLy8vICAgICBtYXJnaW4tbGVmdDogYXV0bztcbi8vLyAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuLy8vICAgfVxuLy8vXG4vLy8gICAuZWxlbWVudDpiZWZvcmUsIC5lbGVtZW50OmFmdGVyIHtcbi8vLyAgICAgY29udGVudDogXCIgXCI7XG4vLy8gICAgIGRpc3BsYXk6IHRhYmxlO1xuLy8vICAgfVxuLy8vXG4vLy8gICAuZWxlbWVudDphZnRlciB7XG4vLy8gICAgIGNsZWFyOiBib3RoO1xuLy8vICAgfVxuXG5AbWl4aW4gb3V0ZXItY29udGFpbmVyKCRsb2NhbC1tYXgtd2lkdGg6ICRtYXgtd2lkdGgpIHtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIG1heC13aWR0aDogJGxvY2FsLW1heC13aWR0aDtcbiAgbWFyZ2luOiB7XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogYXV0bztcbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gU3BlY2lmaWVzIHRoZSBudW1iZXIgb2YgY29sdW1ucyBhbiBlbGVtZW50IHNob3VsZCBzcGFuLiBJZiB0aGUgc2VsZWN0b3IgaXMgbmVzdGVkIHRoZSBudW1iZXIgb2YgY29sdW1ucyBvZiBpdHMgcGFyZW50IGVsZW1lbnQgc2hvdWxkIGJlIHBhc3NlZCBhcyBhbiBhcmd1bWVudCBhcyB3ZWxsLlxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkc3BhblxuLy8vICAgQSBsaXN0IGNvbnRhaW5pbmcgYCRjb2x1bW5zYCwgdGhlIHVuaXRsZXNzIG51bWJlciBvZiBjb2x1bW5zIHRoZSBlbGVtZW50IHNwYW5zIChyZXF1aXJlZCksIGFuZCBgJGNvbnRhaW5lci1jb2x1bW5zYCwgdGhlIG51bWJlciBvZiBjb2x1bW5zIHRoZSBwYXJlbnQgZWxlbWVudCBzcGFucyAob3B0aW9uYWwpLlxuLy8vXG4vLy8gICBJZiBvbmx5IG9uZSB2YWx1ZSBpcyBwYXNzZWQsIGl0IGlzIGFzc3VtZWQgdGhhdCBpdCdzIGAkY29sdW1uc2AgYW5kIHRoYXQgdGhhdCBgJGNvbnRhaW5lci1jb2x1bW5zYCBpcyBlcXVhbCB0byBgJGdyaWQtY29sdW1uc2AsIHRoZSB0b3RhbCBudW1iZXIgb2YgY29sdW1ucyBpbiB0aGUgZ3JpZC5cbi8vL1xuLy8vICAgVGhlIHZhbHVlcyBjYW4gYmUgc2VwYXJhdGVkIHdpdGggYW55IHN0cmluZyBzdWNoIGFzIGBvZmAsIGAvYCwgZXRjLlxuLy8vXG4vLy8gICBgJGNvbHVtbnNgIGFsc28gYWNjZXB0cyBkZWNpbWFscyBmb3Igd2hlbiBpdCdzIG5lY2Vzc2FyeSB0byBicmVhayBvdXQgb2YgdGhlIHN0YW5kYXJkIGdyaWQuIEUuZy4gUGFzc2luZyBgMi40YCBpbiBhIHN0YW5kYXJkIDEyIGNvbHVtbiBncmlkIHdpbGwgZGl2aWRlIHRoZSByb3cgaW50byA1IGNvbHVtbnMuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGRpc3BsYXkgW2Jsb2NrXVxuLy8vICAgU2V0cyB0aGUgZGlzcGxheSBwcm9wZXJ0eSBvZiB0aGUgZWxlbWVudC4gQnkgZGVmYXVsdCBpdCBzZXRzIHRoZSBkaXNwbGF5IHByb3BlcnQgb2YgdGhlIGVsZW1lbnQgdG8gYGJsb2NrYC5cbi8vL1xuLy8vICAgSWYgcGFzc2VkIGBibG9jay1jb2xsYXBzZWAsIGl0IGFsc28gcmVtb3ZlcyB0aGUgbWFyZ2luIGd1dHRlciBieSBhZGRpbmcgaXQgdG8gdGhlIGVsZW1lbnQgd2lkdGguXG4vLy9cbi8vLyAgIElmIHBhc3NlZCBgdGFibGVgLCBpdCBzZXRzIHRoZSBkaXNwbGF5IHByb3BlcnR5IHRvIGB0YWJsZS1jZWxsYCBhbmQgY2FsY3VsYXRlcyB0aGUgd2lkdGggb2YgdGhlIGVsZW1lbnQgd2l0aG91dCB0YWtpbmcgZ3V0dGVycyBpbnRvIGNvbnNpZGVyYXRpb24uIFRoZSByZXN1bHQgZG9lcyBub3QgYWxpZ24gd2l0aCB0aGUgYmxvY2stYmFzZWQgZ3JpZC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoNik7XG4vLy9cbi8vLyAgICAubmVzdGVkLWVsZW1lbnQge1xuLy8vICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDIgb2YgNik7XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGRpc3BsYXk6IGJsb2NrO1xuLy8vICAgICBmbG9hdDogbGVmdDtcbi8vLyAgICAgbWFyZ2luLXJpZ2h0OiAyLjM1NzY1JTtcbi8vLyAgICAgd2lkdGg6IDQ4LjgyMTE3JTtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLmVsZW1lbnQ6bGFzdC1jaGlsZCB7XG4vLy8gICAgIG1hcmdpbi1yaWdodDogMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLmVsZW1lbnQgLm5lc3RlZC1lbGVtZW50IHtcbi8vLyAgICAgZGlzcGxheTogYmxvY2s7XG4vLy8gICAgIGZsb2F0OiBsZWZ0O1xuLy8vICAgICBtYXJnaW4tcmlnaHQ6IDQuODI5MTYlO1xuLy8vICAgICB3aWR0aDogMzAuMTEzODklO1xuLy8vICAgfVxuLy8vXG4vLy8gICAuZWxlbWVudCAubmVzdGVkLWVsZW1lbnQ6bGFzdC1jaGlsZCB7XG4vLy8gICAgIG1hcmdpbi1yaWdodDogMDtcbi8vLyAgIH1cblxuQG1peGluIHNwYW4tY29sdW1ucygkc3BhbjogJGNvbHVtbnMgb2YgJGNvbnRhaW5lci1jb2x1bW5zLCAkZGlzcGxheTogYmxvY2spIHtcbiAgJGNvbHVtbnM6IG50aCgkc3BhbiwgMSk7XG4gICRjb250YWluZXItY29sdW1uczogY29udGFpbmVyLXNwYW4oJHNwYW4pO1xuXG4gICRwYXJlbnQtY29sdW1uczogZ2V0LXBhcmVudC1jb2x1bW5zKCRjb250YWluZXItY29sdW1ucykgIWdsb2JhbDtcblxuICAkZGlyZWN0aW9uOiBnZXQtZGlyZWN0aW9uKCRsYXlvdXQtZGlyZWN0aW9uLCAkZGVmYXVsdC1sYXlvdXQtZGlyZWN0aW9uKTtcbiAgJG9wcG9zaXRlLWRpcmVjdGlvbjogZ2V0LW9wcG9zaXRlLWRpcmVjdGlvbigkZGlyZWN0aW9uKTtcblxuICAkZGlzcGxheS10YWJsZTogaXMtZGlzcGxheS10YWJsZSgkY29udGFpbmVyLWRpc3BsYXktdGFibGUsICRkaXNwbGF5KTtcblxuICBAaWYgJGRpc3BsYXktdGFibGUgIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIHdpZHRoOiBwZXJjZW50YWdlKCRjb2x1bW5zIC8gJGNvbnRhaW5lci1jb2x1bW5zKTtcbiAgfSBAZWxzZSB7XG4gICAgZmxvYXQ6ICN7JG9wcG9zaXRlLWRpcmVjdGlvbn07XG5cbiAgICBAaWYgJGRpc3BsYXkgIT0gbm8tZGlzcGxheSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICBAaWYgJGRpc3BsYXkgPT0gY29sbGFwc2Uge1xuICAgICAgQGluY2x1ZGUgLW5lYXQtd2FybihcIlRoZSAnY29sbGFwc2UnIGFyZ3VtZW50IHdpbGwgYmUgZGVwcmVjYXRlZC4gVXNlICdibG9jay1jb2xsYXBzZScgaW5zdGVhZC5cIik7XG4gICAgfVxuXG4gICAgQGlmICRkaXNwbGF5ID09IGNvbGxhcHNlIG9yICRkaXNwbGF5ID09IGJsb2NrLWNvbGxhcHNlIHtcbiAgICAgIHdpZHRoOiBmbGV4LWdyaWQoJGNvbHVtbnMsICRjb250YWluZXItY29sdW1ucykgKyBmbGV4LWd1dHRlcigkY29udGFpbmVyLWNvbHVtbnMpO1xuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICB3aWR0aDogZmxleC1ncmlkKCRjb2x1bW5zLCAkY29udGFpbmVyLWNvbHVtbnMpO1xuICAgICAgfVxuXG4gICAgfSBAZWxzZSB7XG4gICAgICBtYXJnaW4tI3skZGlyZWN0aW9ufTogZmxleC1ndXR0ZXIoJGNvbnRhaW5lci1jb2x1bW5zKTtcbiAgICAgIHdpZHRoOiBmbGV4LWdyaWQoJGNvbHVtbnMsICRjb250YWluZXItY29sdW1ucyk7XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi0jeyRkaXJlY3Rpb259OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gRGVzaWduYXRlcyB0aGUgZWxlbWVudCBhcyBhIHJvdyBvZiBjb2x1bW5zIGluIHRoZSBncmlkIGxheW91dC4gSXQgY2xlYXJzIHRoZSBmbG9hdHMgb24gdGhlIGVsZW1lbnQgYW5kIHNldHMgaXRzIGRpc3BsYXkgcHJvcGVydHkuIFJvd3MgY2FuJ3QgYmUgbmVzdGVkLCBidXQgdGhlcmUgY2FuIGJlIG1vcmUgdGhhbiBvbmUgcm93IGVsZW1lbnTigJR3aXRoIGRpZmZlcmVudCBkaXNwbGF5IHByb3BlcnRpZXPigJRwZXIgbGF5b3V0LlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRkaXNwbGF5IFtkZWZhdWx0XVxuLy8vICBTZXRzIHRoZSBkaXNwbGF5IHByb3BlcnR5IG9mIHRoZSBlbGVtZW50IGFuZCB0aGUgZGlzcGxheSBjb250ZXh0IHRoYXQgd2lsbCBiZSB1c2VkIGJ5IGl0cyBjaGlsZHJlbi4gQ2FuIGJlIGBibG9ja2Agb3IgYHRhYmxlYC5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZGlyZWN0aW9uIFskZGVmYXVsdC1sYXlvdXQtZGlyZWN0aW9uXVxuLy8vICBTZXRzIHRoZSBsYXlvdXQgZGlyZWN0aW9uLiBDYW4gYmUgYExUUmAgKGxlZnQtdG8tcmlnaHQpIG9yIGBSVExgIChyaWdodC10by1sZWZ0KS5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAuZWxlbWVudCB7XG4vLy8gICAgQGluY2x1ZGUgcm93KCk7XG4vLy8gIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgLmVsZW1lbnQge1xuLy8vICAgICp6b29tOiAxO1xuLy8vICAgIGRpc3BsYXk6IGJsb2NrO1xuLy8vICB9XG4vLy9cbi8vLyAuZWxlbWVudDpiZWZvcmUsIC5lbGVtZW50OmFmdGVyIHtcbi8vLyAgIGNvbnRlbnQ6IFwiIFwiO1xuLy8vICAgZGlzcGxheTogdGFibGU7XG4vLy8gfVxuLy8vXG4vLy8gLmVsZW1lbnQ6YWZ0ZXIge1xuLy8vICAgY2xlYXI6IGJvdGg7XG4vLy8gfVxuXG5AbWl4aW4gcm93KCRkaXNwbGF5OiBkZWZhdWx0LCAkZGlyZWN0aW9uOiAkZGVmYXVsdC1sYXlvdXQtZGlyZWN0aW9uKSB7XG4gIEBpZiAkZGlyZWN0aW9uICE9ICRkZWZhdWx0LWxheW91dC1kaXJlY3Rpb24ge1xuICAgIEBpbmNsdWRlIC1uZWF0LXdhcm4oXCJUaGUgJGRpcmVjdGlvbiBhcmd1bWVudCB3aWxsIGJlIGRlcHJlY2F0ZWQgaW4gZnV0dXJlIHZlcnNpb25zIGluIGZhdm9yIG9mIHRoZSBkaXJlY3Rpb24oKXsuLi59IG1peGluLlwiKTtcbiAgfVxuXG4gICRsYXlvdXQtZGlyZWN0aW9uOiAkZGlyZWN0aW9uICFnbG9iYWw7XG5cbiAgQGlmICRkaXNwbGF5ICE9IGRlZmF1bHQge1xuICAgIEBpbmNsdWRlIC1uZWF0LXdhcm4oXCJUaGUgJGRpc3BsYXkgYXJndW1lbnQgd2lsbCBiZSBkZXByZWNhdGVkIGluIGZ1dHVyZSB2ZXJzaW9ucyBpbiBmYXZvciBvZiB0aGUgZGlzcGxheSgpey4uLn0gbWl4aW4uXCIpO1xuICB9XG5cbiAgQGlmICRkaXNwbGF5ID09IHRhYmxlIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBAaW5jbHVkZSBmaWxsLXBhcmVudDtcbiAgICB0YWJsZS1sYXlvdXQ6IGZpeGVkO1xuICAgICRjb250YWluZXItZGlzcGxheS10YWJsZTogdHJ1ZSAhZ2xvYmFsO1xuICB9IEBlbHNlIHtcbiAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICAkY29udGFpbmVyLWRpc3BsYXktdGFibGU6IGZhbHNlICFnbG9iYWw7XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFRyYW5zbGF0ZXMgYW4gZWxlbWVudCBob3Jpem9udGFsbHkgYnkgYSBudW1iZXIgb2YgY29sdW1ucy4gUG9zaXRpdmUgYXJndW1lbnRzIHNoaWZ0IHRoZSBlbGVtZW50IHRvIHRoZSBhY3RpdmUgbGF5b3V0IGRpcmVjdGlvbiwgd2hpbGUgbmVnYXRpdmUgb25lcyBzaGlmdCBpdCB0byB0aGUgb3Bwb3NpdGUgZGlyZWN0aW9uLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXIgKHVuaXRsZXNzKX0gJG4tY29sdW1ucyBbMV1cbi8vLyAgIE51bWJlciBvZiBjb2x1bW5zIGJ5IHdoaWNoIHRoZSBlbGVtZW50IHNoaWZ0cy5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBzaGlmdCgtMyk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1Mgb3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIG1hcmdpbi1sZWZ0OiAtMjUuNTg5NDElO1xuLy8vICAgfVxuXG5AbWl4aW4gc2hpZnQoJG4tY29sdW1uczogMSkge1xuICBAaW5jbHVkZSBzaGlmdC1pbi1jb250ZXh0KCRuLWNvbHVtbnMpO1xufVxuXG4vLy8gVHJhbnNsYXRlcyBhbiBlbGVtZW50IGhvcml6b250YWxseSBieSBhIG51bWJlciBvZiBjb2x1bW5zLCBpbiBhIHNwZWNpZmljIG5lc3RpbmcgY29udGV4dC5cbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHNoaWZ0XG4vLy8gICBBIGxpc3QgY29udGFpbmluZyB0aGUgbnVtYmVyIG9mIGNvbHVtbnMgdG8gc2hpZnQgKGAkY29sdW1uc2ApIGFuZCB0aGUgbnVtYmVyIG9mIGNvbHVtbnMgb2YgdGhlIHBhcmVudCBlbGVtZW50IChgJGNvbnRhaW5lci1jb2x1bW5zYCkuXG4vLy9cbi8vLyAgIFRoZSB0d28gdmFsdWVzIGNhbiBiZSBzZXBhcmF0ZWQgd2l0aCBhbnkgc3RyaW5nIHN1Y2ggYXMgYG9mYCwgYC9gLCBldGMuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgc2hpZnQoLTMgb2YgNik7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1Mgb3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIG1hcmdpbi1sZWZ0OiAtNTIuNDE0NTglO1xuLy8vICAgfVxuXG5AbWl4aW4gc2hpZnQtaW4tY29udGV4dCgkc2hpZnQ6ICRjb2x1bW5zIG9mICRjb250YWluZXItY29sdW1ucykge1xuICAkbi1jb2x1bW5zOiBudGgoJHNoaWZ0LCAxKTtcbiAgJHBhcmVudC1jb2x1bW5zOiBjb250YWluZXItc2hpZnQoJHNoaWZ0KSAhZ2xvYmFsO1xuXG4gICRkaXJlY3Rpb246IGdldC1kaXJlY3Rpb24oJGxheW91dC1kaXJlY3Rpb24sICRkZWZhdWx0LWxheW91dC1kaXJlY3Rpb24pO1xuICAkb3Bwb3NpdGUtZGlyZWN0aW9uOiBnZXQtb3Bwb3NpdGUtZGlyZWN0aW9uKCRkaXJlY3Rpb24pO1xuXG4gIG1hcmdpbi0jeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiAkbi1jb2x1bW5zICogZmxleC1ncmlkKDEsICRwYXJlbnQtY29sdW1ucykgKyAkbi1jb2x1bW5zICogZmxleC1ndXR0ZXIoJHBhcmVudC1jb2x1bW5zKTtcblxuICAvLyBSZXNldCBuZXN0aW5nIGNvbnRleHRcbiAgJHBhcmVudC1jb2x1bW5zOiAkZ3JpZC1jb2x1bW5zICFnbG9iYWw7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBBZGRzIHBhZGRpbmcgdG8gdGhlIGVsZW1lbnQuXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRwYWRkaW5nIFtmbGV4LWd1dHRlcigpXVxuLy8vICAgQSBsaXN0IG9mIHBhZGRpbmcgdmFsdWUocykgdG8gdXNlLiBQYXNzaW5nIGBkZWZhdWx0YCBpbiB0aGUgbGlzdCB3aWxsIHJlc3VsdCBpbiB1c2luZyB0aGUgZ3V0dGVyIHdpZHRoIGFzIGEgcGFkZGluZyB2YWx1ZS5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBwYWQoMzBweCAtMjBweCAxMHB4IGRlZmF1bHQpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBwYWRkaW5nOiAzMHB4IC0yMHB4IDEwcHggMi4zNTc2NSU7XG4vLy8gICB9XG5cbkBtaXhpbiBwYWQoJHBhZGRpbmc6IGZsZXgtZ3V0dGVyKCkpIHtcbiAgJHBhZGRpbmctbGlzdDogbnVsbDtcbiAgQGVhY2ggJHZhbHVlIGluICRwYWRkaW5nIHtcbiAgICAkdmFsdWU6IGlmKCR2YWx1ZSA9PSAnZGVmYXVsdCcsIGZsZXgtZ3V0dGVyKCksICR2YWx1ZSk7XG4gICAgJHBhZGRpbmctbGlzdDogam9pbigkcGFkZGluZy1saXN0LCAkdmFsdWUpO1xuICB9XG4gIHBhZGRpbmc6ICRwYWRkaW5nLWxpc3Q7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBGb3JjZXMgdGhlIGVsZW1lbnQgdG8gZmlsbCBpdHMgcGFyZW50IGNvbnRhaW5lci5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBmaWxsLXBhcmVudDtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgd2lkdGg6IDEwMCU7XG4vLy8gICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4vLy8gICB9XG5cbkBtaXhpbiBmaWxsLXBhcmVudCgpIHtcbiAgd2lkdGg6IDEwMCU7XG5cbiAgQGlmICRib3JkZXItYm94LXNpemluZyA9PSBmYWxzZSB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gT3V0cHV0cyBhIG1lZGlhLXF1ZXJ5IGJsb2NrIHdpdGggYW4gb3B0aW9uYWwgZ3JpZCBjb250ZXh0ICh0aGUgdG90YWwgbnVtYmVyIG9mIGNvbHVtbnMgdXNlZCBpbiB0aGUgZ3JpZCkuXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRxdWVyeVxuLy8vICAgQSBsaXN0IG9mIG1lZGlhIHF1ZXJ5IGZlYXR1cmVzIGFuZCB2YWx1ZXMsIHdoZXJlIGVhY2ggYCRmZWF0dXJlYCBzaG91bGQgaGF2ZSBhIGNvcnJlc3BvbmRpbmcgYCR2YWx1ZWAuXG4vLy8gICBGb3IgYSBsaXN0IG9mIHZhbGlkIHZhbHVlcyBmb3IgYCRmZWF0dXJlYCwgY2xpY2sgW2hlcmVdKGh0dHA6Ly93d3cudzMub3JnL1RSL2NzczMtbWVkaWFxdWVyaWVzLyNtZWRpYTEpLlxuLy8vXG4vLy8gICBJZiB0aGVyZSBpcyBvbmx5IGEgc2luZ2xlIGAkdmFsdWVgIGluIGAkcXVlcnlgLCBgJGRlZmF1bHQtZmVhdHVyZWAgaXMgZ29pbmcgdG8gYmUgdXNlZC5cbi8vL1xuLy8vICAgVGhlIG51bWJlciBvZiB0b3RhbCBjb2x1bW5zIGluIHRoZSBncmlkIGNhbiBiZSBzZXQgYnkgcGFzc2luZyBgJGNvbHVtbnNgIGF0IHRoZSBlbmQgb2YgdGhlIGxpc3QgKG92ZXJyaWRlcyBgJHRvdGFsLWNvbHVtbnNgKS5cbi8vL1xuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXIgKHVuaXRsZXNzKX0gJHRvdGFsLWNvbHVtbnMgWyRncmlkLWNvbHVtbnNdXG4vLy8gICAtIE51bWJlciBvZiBjb2x1bW5zIHRvIHVzZSBpbiB0aGUgbmV3IGdyaWQgY29udGV4dC4gQ2FuIGJlIHNldCBhcyBhIHNob3J0aGFuZCBpbiB0aGUgZmlyc3QgcGFyYW1ldGVyLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAucmVzcG9uc2l2ZS1lbGVtZW50IHtcbi8vLyAgICAgIEBpbmNsdWRlIG1lZGlhKDc2OXB4KSB7XG4vLy8gICAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg2KTtcbi8vLyAgICAgIH1cbi8vLyAgIH1cbi8vL1xuLy8vICAubmV3LWNvbnRleHQtZWxlbWVudCB7XG4vLy8gICAgQGluY2x1ZGUgbWVkaWEobWluLXdpZHRoIDMyMHB4IG1heC13aWR0aCA0ODBweCwgNikge1xuLy8vICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDYpO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjlweCkge1xuLy8vICAgIC5yZXNwb25zaXZlLWVsZW1lbnQge1xuLy8vICAgICAgZGlzcGxheTogYmxvY2s7XG4vLy8gICAgICBmbG9hdDogbGVmdDtcbi8vLyAgICAgIG1hcmdpbi1yaWdodDogMi4zNTc2NSU7XG4vLy8gICAgICB3aWR0aDogNDguODIxMTclO1xuLy8vICAgIH1cbi8vL1xuLy8vICAgIC5yZXNwb25zaXZlLWVsZW1lbnQ6bGFzdC1jaGlsZCB7XG4vLy8gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMzIwcHgpIGFuZCAobWF4LXdpZHRoOiA0ODBweCkge1xuLy8vICAgIC5uZXctY29udGV4dC1lbGVtZW50IHtcbi8vLyAgICAgIGRpc3BsYXk6IGJsb2NrO1xuLy8vICAgICAgZmxvYXQ6IGxlZnQ7XG4vLy8gICAgICBtYXJnaW4tcmlnaHQ6IDQuODI5MTYlO1xuLy8vICAgICAgd2lkdGg6IDEwMCU7XG4vLy8gICAgfVxuLy8vXG4vLy8gICAgLm5ldy1jb250ZXh0LWVsZW1lbnQ6bGFzdC1jaGlsZCB7XG4vLy8gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4vLy8gICAgfVxuLy8vICB9XG5cbkBtaXhpbiBtZWRpYSgkcXVlcnk6ICRmZWF0dXJlICR2YWx1ZSAkY29sdW1ucywgJHRvdGFsLWNvbHVtbnM6ICRncmlkLWNvbHVtbnMpIHtcbiAgQGlmIGxlbmd0aCgkcXVlcnkpID09IDEge1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kICgkZGVmYXVsdC1mZWF0dXJlOiBudGgoJHF1ZXJ5LCAxKSkge1xuICAgICAgJGRlZmF1bHQtZ3JpZC1jb2x1bW5zOiAkZ3JpZC1jb2x1bW5zO1xuICAgICAgJGdyaWQtY29sdW1uczogJHRvdGFsLWNvbHVtbnMgIWdsb2JhbDtcbiAgICAgIEBjb250ZW50O1xuICAgICAgJGdyaWQtY29sdW1uczogJGRlZmF1bHQtZ3JpZC1jb2x1bW5zICFnbG9iYWw7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICAkbG9vcC10bzogbGVuZ3RoKCRxdWVyeSk7XG4gICAgJG1lZGlhLXF1ZXJ5OiBcInNjcmVlbiBhbmQgXCI7XG4gICAgJGRlZmF1bHQtZ3JpZC1jb2x1bW5zOiAkZ3JpZC1jb2x1bW5zO1xuICAgICRncmlkLWNvbHVtbnM6ICR0b3RhbC1jb2x1bW5zICFnbG9iYWw7XG5cbiAgICBAaWYgaXMtbm90KGlzLWV2ZW4obGVuZ3RoKCRxdWVyeSkpKSB7XG4gICAgICAkZ3JpZC1jb2x1bW5zOiBudGgoJHF1ZXJ5LCAkbG9vcC10bykgIWdsb2JhbDtcbiAgICAgICRsb29wLXRvOiAkbG9vcC10byAtIDE7XG4gICAgfVxuXG4gICAgJGk6IDE7XG4gICAgQHdoaWxlICRpIDw9ICRsb29wLXRvIHtcbiAgICAgICRtZWRpYS1xdWVyeTogJG1lZGlhLXF1ZXJ5ICsgXCIoXCIgKyBudGgoJHF1ZXJ5LCAkaSkgKyBcIjogXCIgKyBudGgoJHF1ZXJ5LCAkaSArIDEpICsgXCIpIFwiO1xuXG4gICAgICBAaWYgKCRpICsgMSkgIT0gJGxvb3AtdG8ge1xuICAgICAgICAkbWVkaWEtcXVlcnk6ICRtZWRpYS1xdWVyeSArIFwiYW5kIFwiO1xuICAgICAgfVxuXG4gICAgICAkaTogJGkgKyAyO1xuICAgIH1cblxuICAgIEBtZWRpYSAjeyRtZWRpYS1xdWVyeX0ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgICAkZ3JpZC1jb2x1bW5zOiAkZGVmYXVsdC1ncmlkLWNvbHVtbnMgIWdsb2JhbDtcbiAgICB9XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuQG1peGluIGJyZWFrcG9pbnQoJHF1ZXJ5OiRmZWF0dXJlICR2YWx1ZSAkY29sdW1ucywgJHRvdGFsLWNvbHVtbnM6ICRncmlkLWNvbHVtbnMpIHtcbiAgQGluY2x1ZGUgLW5lYXQtd2FybihcIlRoZSBicmVha3BvaW50KCkgbWl4aW4gd2FzIHJlbmFtZWQgdG8gbWVkaWEoKSBpbiBOZWF0IDEuMC4gUGxlYXNlIHVwZGF0ZSB5b3VyIHByb2plY3Qgd2l0aCB0aGUgbmV3IHN5bnRheCBiZWZvcmUgdGhlIG5leHQgdmVyc2lvbiBidW1wLlwiKTtcblxuICBAaWYgbGVuZ3RoKCRxdWVyeSkgPT0gMSB7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKCRkZWZhdWx0LWZlYXR1cmU6IG50aCgkcXVlcnksIDEpKSB7XG4gICAgICAkZGVmYXVsdC1ncmlkLWNvbHVtbnM6ICRncmlkLWNvbHVtbnM7XG4gICAgICAkZ3JpZC1jb2x1bW5zOiAkdG90YWwtY29sdW1ucztcbiAgICAgIEBjb250ZW50O1xuICAgICAgJGdyaWQtY29sdW1uczogJGRlZmF1bHQtZ3JpZC1jb2x1bW5zO1xuICAgIH1cbiAgfSBAZWxzZSBpZiBsZW5ndGgoJHF1ZXJ5KSA9PSAyIHtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobnRoKCRxdWVyeSwgMSk6IG50aCgkcXVlcnksIDIpKSB7XG4gICAgICAkZGVmYXVsdC1ncmlkLWNvbHVtbnM6ICRncmlkLWNvbHVtbnM7XG4gICAgICAkZ3JpZC1jb2x1bW5zOiAkdG90YWwtY29sdW1ucztcbiAgICAgIEBjb250ZW50O1xuICAgICAgJGdyaWQtY29sdW1uczogJGRlZmF1bHQtZ3JpZC1jb2x1bW5zO1xuICAgIH1cbiAgfSBAZWxzZSBpZiBsZW5ndGgoJHF1ZXJ5KSA9PSAzIHtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobnRoKCRxdWVyeSwgMSk6IG50aCgkcXVlcnksIDIpKSB7XG4gICAgICAkZGVmYXVsdC1ncmlkLWNvbHVtbnM6ICRncmlkLWNvbHVtbnM7XG4gICAgICAkZ3JpZC1jb2x1bW5zOiBudGgoJHF1ZXJ5LCAzKTtcbiAgICAgIEBjb250ZW50O1xuICAgICAgJGdyaWQtY29sdW1uczogJGRlZmF1bHQtZ3JpZC1jb2x1bW5zO1xuICAgIH1cbiAgfSBAZWxzZSBpZiBsZW5ndGgoJHF1ZXJ5KSA9PSA0IHtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobnRoKCRxdWVyeSwgMSk6IG50aCgkcXVlcnksIDIpKSBhbmQgKG50aCgkcXVlcnksIDMpOiBudGgoJHF1ZXJ5LCA0KSkge1xuICAgICAgJGRlZmF1bHQtZ3JpZC1jb2x1bW5zOiAkZ3JpZC1jb2x1bW5zO1xuICAgICAgJGdyaWQtY29sdW1uczogJHRvdGFsLWNvbHVtbnM7XG4gICAgICBAY29udGVudDtcbiAgICAgICRncmlkLWNvbHVtbnM6ICRkZWZhdWx0LWdyaWQtY29sdW1ucztcbiAgICB9XG4gIH0gQGVsc2UgaWYgbGVuZ3RoKCRxdWVyeSkgPT0gNSB7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG50aCgkcXVlcnksIDEpOiBudGgoJHF1ZXJ5LCAyKSkgYW5kIChudGgoJHF1ZXJ5LCAzKTogbnRoKCRxdWVyeSwgNCkpIHtcbiAgICAgICRkZWZhdWx0LWdyaWQtY29sdW1uczogJGdyaWQtY29sdW1ucztcbiAgICAgICRncmlkLWNvbHVtbnM6IG50aCgkcXVlcnksIDUpO1xuICAgICAgQGNvbnRlbnQ7XG4gICAgICAkZ3JpZC1jb2x1bW5zOiAkZGVmYXVsdC1ncmlkLWNvbHVtbnM7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAaW5jbHVkZSAtbmVhdC13YXJuKFwiV3JvbmcgbnVtYmVyIG9mIGFyZ3VtZW50cyBmb3IgYnJlYWtwb2ludCgpLiBSZWFkIHRoZSBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGRldGFpbHMuXCIpO1xuICB9XG59XG5cbkBtaXhpbiBudGgtb21lZ2EoJG50aCwgJGRpc3BsYXk6IGJsb2NrLCAkZGlyZWN0aW9uOiBkZWZhdWx0KSB7XG4gIEBpbmNsdWRlIC1uZWF0LXdhcm4oXCJUaGUgbnRoLW9tZWdhKCkgbWl4aW4gaXMgZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSBvbWVnYSgpIGluc3RlYWQuXCIpO1xuICBAaW5jbHVkZSBvbWVnYSgkbnRoICRkaXNwbGF5LCAkZGlyZWN0aW9uKTtcbn1cblxuLy8vIFJlc2V0cyB0aGUgYWN0aXZlIGRpc3BsYXkgcHJvcGVydHkgdG8gYGJsb2NrYC4gUGFydGljdWxhcmx5IHVzZWZ1bCB3aGVuIGNoYW5naW5nIHRoZSBkaXNwbGF5IHByb3BlcnR5IGluIGEgc2luZ2xlIHJvdy5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSByb3codGFibGUpO1xuLy8vICAgICAvLyBDb250ZXh0IGNoYW5nZWQgdG8gdGFibGUgZGlzcGxheVxuLy8vICAgfVxuLy8vXG4vLy8gICBAaW5jbHVkZSByZXNldC1kaXNwbGF5O1xuLy8vICAgLy8gQ29udGV4dCBpcyByZXNldCB0byBibG9jayBkaXNwbGF5XG5cbkBtaXhpbiByZXNldC1kaXNwbGF5IHtcbiAgJGNvbnRhaW5lci1kaXNwbGF5LXRhYmxlOiBmYWxzZSAhZ2xvYmFsO1xuICBAaW5jbHVkZSAtbmVhdC13YXJuKFwiUmVzZXR0aW5nICRkaXNwbGF5IHdpbGwgYmUgZGVwcmVjYXRlZCBpbiBmdXR1cmUgdmVyc2lvbnMgaW4gZmF2b3Igb2YgdGhlIGRpc3BsYXkoKXsuLi59IG1peGluLlwiKTtcbn1cblxuLy8vIFJlc2V0cyB0aGUgYWN0aXZlIGxheW91dCBkaXJlY3Rpb24gdG8gdGhlIGRlZmF1bHQgdmFsdWUgc2V0IGluIGAkZGVmYXVsdC1sYXlvdXQtZGlyZWN0aW9uYC4gUGFydGljdWxhcmx5IHVzZWZ1bCB3aGVuIGNoYW5naW5nIHRoZSBsYXlvdXQgZGlyZWN0aW9uIGluIGEgc2luZ2xlIHJvdy5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSByb3coJGRpcmVjdGlvbjogUlRMKTtcbi8vLyAgICAgLy8gQ29udGV4dCBjaGFuZ2VkIHRvIHJpZ2h0LXRvLWxlZnRcbi8vLyAgIH1cbi8vL1xuLy8vICAgQGluY2x1ZGUgcmVzZXQtbGF5b3V0LWRpcmVjdGlvbjtcbi8vLyAgIC8vIENvbnRleHQgaXMgcmVzZXQgdG8gbGVmdC10by1yaWdodFxuXG5AbWl4aW4gcmVzZXQtbGF5b3V0LWRpcmVjdGlvbiB7XG4gICRsYXlvdXQtZGlyZWN0aW9uOiAkZGVmYXVsdC1sYXlvdXQtZGlyZWN0aW9uICFnbG9iYWw7XG4gIEBpbmNsdWRlIC1uZWF0LXdhcm4oXCJSZXNldHRpbmcgJGRpcmVjdGlvbiB3aWxsIGJlIGRlcHJlY2F0ZWQgaW4gZnV0dXJlIHZlcnNpb25zIGluIGZhdm9yIG9mIHRoZSBkaXJlY3Rpb24oKXsuLi59IG1peGluLlwiKTtcbn1cblxuLy8vIFJlc2V0cyBib3RoIHRoZSBhY3RpdmUgbGF5b3V0IGRpcmVjdGlvbiBhbmQgdGhlIGFjdGl2ZSBkaXNwbGF5IHByb3BlcnR5LlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIHJvdyh0YWJsZSwgUlRMKTtcbi8vLyAgICAgLy8gQ29udGV4dCBjaGFuZ2VkIHRvIHRhYmxlIHRhYmxlIGFuZCByaWdodC10by1sZWZ0XG4vLy8gICB9XG4vLy9cbi8vLyAgIEBpbmNsdWRlIHJlc2V0LWFsbDtcbi8vLyAgIC8vIENvbnRleHQgaXMgcmVzZXQgdG8gYmxvY2sgZGlzcGxheSBhbmQgbGVmdC10by1yaWdodFxuXG5AbWl4aW4gcmVzZXQtYWxsIHtcbiAgQGluY2x1ZGUgcmVzZXQtZGlzcGxheTtcbiAgQGluY2x1ZGUgcmVzZXQtbGF5b3V0LWRpcmVjdGlvbjtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuQG1peGluIGdyaWQtY29sdW1uLWdyYWRpZW50KCR2YWx1ZXMuLi4pIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQobGVmdCwgJHZhbHVlcyk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC1tb3otbGluZWFyLWdyYWRpZW50KGxlZnQsICR2YWx1ZXMpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtbXMtbGluZWFyLWdyYWRpZW50KGxlZnQsICR2YWx1ZXMpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQobGVmdCwgJHZhbHVlcyk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVucXVvdGUoXCJsaW5lYXItZ3JhZGllbnQodG8gbGVmdCwgI3skdmFsdWVzfSlcIik7XG59XG5cbkBpZiAkdmlzdWFsLWdyaWQgPT0gdHJ1ZSBvciAkdmlzdWFsLWdyaWQgPT0geWVzIHtcbiAgYm9keTpiZWZvcmUge1xuICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uLWdyYWRpZW50KGdyYWRpZW50LXN0b3BzKCRncmlkLWNvbHVtbnMpKTtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbGVmdDogMDtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBtYXgtd2lkdGg6ICRtYXgtd2lkdGg7XG4gICAgb3BhY2l0eTogJHZpc3VhbC1ncmlkLW9wYWNpdHk7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHJpZ2h0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgQGlmICR2aXN1YWwtZ3JpZC1pbmRleCA9PSBiYWNrIHtcbiAgICAgIHotaW5kZXg6IC0xO1xuICAgIH1cblxuICAgIEBlbHNlIGlmICR2aXN1YWwtZ3JpZC1pbmRleCA9PSBmcm9udCB7XG4gICAgICB6LWluZGV4OiA5OTk5O1xuICAgIH1cblxuICAgIEBlYWNoICRicmVha3BvaW50IGluICR2aXN1YWwtZ3JpZC1icmVha3BvaW50cyB7XG4gICAgICBAaWYgJGJyZWFrcG9pbnQge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgkYnJlYWtwb2ludCkge1xuICAgICAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uLWdyYWRpZW50KGdyYWRpZW50LXN0b3BzKCRncmlkLWNvbHVtbnMpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQ2hhbmdlcyB0aGUgZGlzcGxheSBwcm9wZXJ0eSB1c2VkIGJ5IG90aGVyIG1peGlucyBjYWxsZWQgaW4gdGhlIGNvZGUgYmxvY2sgYXJndW1lbnQuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGRpc3BsYXkgW2Jsb2NrXVxuLy8vICAgRGlzcGxheSB2YWx1ZSB0byBiZSB1c2VkIHdpdGhpbiB0aGUgYmxvY2suIENhbiBiZSBgdGFibGVgIG9yIGBibG9ja2AuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzXG4vLy8gICBAaW5jbHVkZSBkaXNwbGF5LWNvbnRleHQodGFibGUpIHtcbi8vLyAgICAuZGlzcGxheS10YWJsZSB7XG4vLy8gICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoNik7XG4vLy8gICAgIH1cbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzc1xuLy8vICAgLmRpc3BsYXktdGFibGUge1xuLy8vICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbi8vLyAgICAgIC4uLlxuLy8vICAgfVxuXG5AbWl4aW4gZGlzcGxheS1jb250ZXh0KCRkaXNwbGF5OiBibG9jaykge1xuICAkc2NvcGUtZGlzcGxheTogJGNvbnRhaW5lci1kaXNwbGF5LXRhYmxlO1xuICAkY29udGFpbmVyLWRpc3BsYXktdGFibGU6ICRkaXNwbGF5ID09IHRhYmxlICFnbG9iYWw7XG5cbiAgQGNvbnRlbnQ7XG5cbiAgJGNvbnRhaW5lci1kaXNwbGF5LXRhYmxlOiAkc2NvcGUtZGlzcGxheSAhZ2xvYmFsO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQ2hhbmdlcyB0aGUgZGlyZWN0aW9uIHByb3BlcnR5IHVzZWQgYnkgb3RoZXIgbWl4aW5zIGNhbGxlZCBpbiB0aGUgY29kZSBibG9jayBhcmd1bWVudC5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZGlyZWN0aW9uIFtsZWZ0LXRvLXJpZ2h0XVxuLy8vICAgTGF5b3V0IGRpcmVjdGlvbiB0byBiZSB1c2VkIHdpdGhpbiB0aGUgYmxvY2suIENhbiBiZSBgbGVmdC10by1yaWdodGAgb3IgYHJpZ2h0LXRvLWxlZnRgLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICBAaW5jbHVkZSBkaXJlY3Rpb24tY29udGV4dChyaWdodC10by1sZWZ0KSB7XG4vLy8gICAgLnJpZ2h0LXRvLWxlZnQtYmxvY2sge1xuLy8vICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDYpO1xuLy8vICAgICB9XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAucmlnaHQtdG8tbGVmdC1ibG9jayB7XG4vLy8gICAgIGZsb2F0OiByaWdodDtcbi8vLyAgICAgIC4uLlxuLy8vICAgfVxuXG5AbWl4aW4gZGlyZWN0aW9uLWNvbnRleHQoJGRpcmVjdGlvbjogbGVmdC10by1yaWdodCkge1xuICAkc2NvcGUtZGlyZWN0aW9uOiAkbGF5b3V0LWRpcmVjdGlvbjtcblxuICBAaWYgdG8tbG93ZXItY2FzZSgkZGlyZWN0aW9uKSA9PSBcImxlZnQtdG8tcmlnaHRcIiB7XG4gICAgJGxheW91dC1kaXJlY3Rpb246IExUUiAhZ2xvYmFsO1xuICB9IEBlbHNlIGlmIHRvLWxvd2VyLWNhc2UoJGRpcmVjdGlvbikgPT0gXCJyaWdodC10by1sZWZ0XCIge1xuICAgICRsYXlvdXQtZGlyZWN0aW9uOiBSVEwgIWdsb2JhbDtcbiAgfVxuXG4gIEBjb250ZW50O1xuXG4gICRsYXlvdXQtZGlyZWN0aW9uOiAkc2NvcGUtZGlyZWN0aW9uICFnbG9iYWw7XG59XG4iLCIvKiAjIyBTaXRlIENvbnRhaW5lcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4ud3JhcCB7XG4gICAgQGluY2x1ZGUgb3V0ZXItY29udGFpbmVyKDEwODBweCk7XG4gICAgcGFkZGluZzogMCAkYmFzZS1zcGFjaW5nO1xuXG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxNDQwcHgpIHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICB9XG59XG5cbi5lcnJvcjQwNCAuc2l0ZS1pbm5lciB7XG4gICAgcGFkZGluZzogNWVtIDA7XG59XG5cbi5wb3N0LXR5cGUtYXJjaGl2ZS10cmliZV9ldmVudHMgLnNpdGUtaW5uZXIsXG4uc2luZ2xlLXRyaWJlX2V2ZW50cyAuc2l0ZS1pbm5lcixcbi5zaW5nbGUtdHJpYmVfdmVudWUgLnNpdGUtaW5uZXIge1xuICAgIG1hcmdpbi10b3A6IDNlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAzZW07XG4gICAgQGluY2x1ZGUgbWVkaWEoICRsYXJnZS1zY3JlZW4tdXAgKSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDVlbTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNWVtO1xuICAgIH1cbn1cblxuLyogIyMgQ29sdW1uIFdpZHRocyBhbmQgUG9zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5jb250ZW50LFxuLnNpZGViYXItcHJpbWFyeSxcbi5mdWxsLXdpZHRoIC5jb250ZW50IHtcbiAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMTIpO1xuICAgIEBpbmNsdWRlIG9tZWdhKCk7XG59XG5cbkBpbmNsdWRlIG1lZGlhKCRsYXJnZS1zY3JlZW4tdXApIHtcblxuICAgIC5jb250ZW50LXNpZGViYXIgLmNvbnRlbnQtc2lkZWJhci13cmFwLFxuICAgIC5zaWRlYmFyLWNvbnRlbnQgLmNvbnRlbnQtc2lkZWJhci13cmFwLFxuICAgIC5mdWxsLXdpZHRoLWNvbnRlbnQgLmNvbnRlbnQtc2lkZWJhci13cmFwIHtcbiAgICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDEyKTtcbiAgICAgICAgQGluY2x1ZGUgb21lZ2E7XG4gICAgfVxuXG4gICAgLmZ1bGwtd2lkdGgtY29udGVudCAuY29udGVudC1zaWRlYmFyLXdyYXAge1xuICAgICAgICAuY29udGVudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMTIgb3IgMTIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmNvbnRlbnQtc2lkZWJhciAuY29udGVudC1zaWRlYmFyLXdyYXAge1xuICAgICAgICAuY29udGVudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoOSBvZiAxMik7XG4gICAgICAgIH1cblxuICAgICAgICAuc2lkZWJhci1wcmltYXJ5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucygzIG9mIDEyKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIG9tZWdhO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnNpZGViYXItY29udGVudCAuY29udGVudC1zaWRlYmFyLXdyYXAge1xuICAgICAgICAuY29udGVudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoOSBvciAxMik7XG4gICAgICAgICAgICBAaW5jbHVkZSBvbWVnYTtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5zaWRlYmFyLXByaW1hcnkge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDMgb2YgMTIpO1xuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMi4zNTc2NSU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuY29udGVudC1zaWRlYmFyLXNpZGViYXIgLmNvbnRlbnQtc2lkZWJhci13cmFwLFxuICAgIC5zaWRlYmFyLXNpZGViYXItY29udGVudCAuY29udGVudC1zaWRlYmFyLXdyYXAsXG4gICAgLnNpZGViYXItY29udGVudC1zaWRlYmFyIC5jb250ZW50LXNpZGViYXItd3JhcCB7XG4gICAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg5KTtcblxuICAgICAgICAuY29udGVudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoNiBvZiA5KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5zaWRlYmFyLXByaW1hcnkge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDMgb2YgOSk7XG4gICAgICAgICAgICBAaW5jbHVkZSBvbWVnYTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jb250ZW50LXNpZGViYXItc2lkZWJhciAuc2lkZWJhci1zZWNvbmRhcnkge1xuICAgICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMyk7XG4gICAgICAgIEBpbmNsdWRlIG9tZWdhO1xuICAgIH1cblxuICAgIC5zaWRlYmFyLXNpZGViYXItY29udGVudCAuY29udGVudC1zaWRlYmFyLXdyYXAge1xuICAgICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoOSk7XG4gICAgICAgIEBpbmNsdWRlIG9tZWdhO1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG5cbiAgICAgICAgLnNpZGViYXItcHJpbWFyeSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMyBvZiA5KTtcblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDIuMzU3NjUlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmNvbnRlbnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDYgb2YgOSk7XG4gICAgICAgICAgICBAaW5jbHVkZSBvbWVnYTtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5zaWRlYmFyLXNpZGViYXItY29udGVudCAuc2lkZWJhci1zZWNvbmRhcnkge1xuICAgICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMyk7XG5cbiAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDIuMzU3NjUlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnNpZGViYXItY29udGVudC1zaWRlYmFyIC5jb250ZW50LXNpZGViYXItd3JhcCB7XG4gICAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg5KTtcbiAgICAgICAgQGluY2x1ZGUgb21lZ2E7XG4gICAgICAgIGZsb2F0OiByaWdodDtcblxuICAgICAgICAuY29udGVudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoNiBvZiA5KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5zaWRlYmFyLXByaW1hcnkge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDMgb2YgOSk7XG4gICAgICAgICAgICBAaW5jbHVkZSBvbWVnYTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5zaWRlYmFyLWNvbnRlbnQtc2lkZWJhciAuc2lkZWJhci1zZWNvbmRhcnkge1xuICAgICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMyk7XG5cbiAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDIuMzU3NjUlO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLyoqXG4qIEF2YXRhciEhISFcbiovXG5cbi5hdmF0YXIge1xuICAgIGZsb2F0OiBsZWZ0O1xufVxuXG4uYWxpZ25sZWZ0IC5hdmF0YXIsXG4uYXV0aG9yLWJveCAuYXZhdGFyIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDI0cHg7XG59XG5cbi5hbGlnbnJpZ2h0IC5hdmF0YXIge1xuICAgIG1hcmdpbi1sZWZ0OiAyNHB4O1xufVxuXG4uY29tbWVudCAuYXZhdGFyIHtcbiAgICBtYXJnaW46IDAgMTZweCAyNHB4IDA7XG59XG5cbi8qKlxuKiBNZWRpYVxuKi9cblxuLm1lanMtY29udGFpbmVyIHtcbiAgICBtYXJnaW4tYm90dG9tOiAkYmFzZS1zcGFjaW5nO1xufVxuXG5hLmFsaWduY2VudGVyIGltZyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiAwIGF1dG87XG59XG5cbmEuYWxpZ25ub25lIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi5hbGlnbmxlZnQge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi5hbGlnbnJpZ2h0IHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG5cbmEuYWxpZ25sZWZ0LFxuYS5hbGlnbm5vbmUsXG5hLmFsaWducmlnaHQge1xuICAgIG1heC13aWR0aDogMTAwJTtcbn1cblxuaW1nLmNlbnRlcmVkLFxuLmFsaWduY2VudGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW46IDAgYXV0byAkYmFzZS1zcGFjaW5nKjI7XG59XG5cbmltZy5hbGlnbm5vbmUsXG4uYWxpZ25ub25lIHtcbiAgICBtYXJnaW4tYm90dG9tOiAkYmFzZS1zcGFjaW5nO1xufVxuXG5hLmFsaWdubGVmdCxcbmltZy5hbGlnbmxlZnQsXG4ud3AtY2FwdGlvbi5hbGlnbmxlZnQge1xuICAgIG1hcmdpbjogMCAkYmFzZS1zcGFjaW5nKjIgJGJhc2Utc3BhY2luZyoyIDA7XG59XG5cbmEuYWxpZ25yaWdodCxcbmltZy5hbGlnbnJpZ2h0LFxuLndwLWNhcHRpb24uYWxpZ25yaWdodCB7XG4gICAgbWFyZ2luOiAwIDAgJGJhc2Utc3BhY2luZyoyICRiYXNlLXNwYWNpbmcqMjtcbn1cblxuLndwLWNhcHRpb24tdGV4dCB7XG4gICAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uZW50cnktY29udGVudCBwLndwLWNhcHRpb24tdGV4dCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLyoqXG4qIE9iamVjdHNcbiovXG5cbmVtYmVkLFxuaWZyYW1lLFxuaW1nLFxub2JqZWN0LFxudmlkZW8sXG4ud3AtY2FwdGlvbiB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xufVxuXG5pbWcge1xuICAgIGhlaWdodDogYXV0bztcbn1cblxuLmZlYXR1cmVkLWNvbnRlbnQgaW1nLFxuLmdhbGxlcnkgaW1nIHtcbiAgICB3aWR0aDogYXV0bztcbn1cblxuLyoqXG4qIFNpdGUgVGl0bGVcbiovXG5cbi5zaXRlLXRpdGxlIHtcbiAgICBhLFxuICAgIGE6aG92ZXIge1xuICAgICAgICBjb2xvcjogJGRhcmstZ3JheTtcbiAgICB9XG59XG5cbi5oZWFkZXItaW1hZ2UgLnNpdGUtdGl0bGUgPiBhIHtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoYXNzZXRzL2ltYWdlcy9sb2dvLnBuZykgbm8tcmVwZWF0IGxlZnQ7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1pbi1oZWlnaHQ6IDc5cHg7XG4gICAgd2lkdGg6IDUwJTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCRtZWRpdW0tc2NyZWVuLXVwKSB7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgICAgICAgd2lkdGg6IDMwJTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkbGFyZ2Utc2NyZWVuLXVwKSB7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogOTAlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG59XG5cblxuLyoqXG4qIFdpZGdldFxuKi9cblxuLndpZGdldCB7XG4gICAgd29yZC13cmFwOiBicmVhay13b3JkO1xufVxuXG4ud2lkZ2V0IGxpIGxpIHtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgbWFyZ2luOiAwIDAgMCAkYmFzZS1zcGFjaW5nKjI7XG4gICAgcGFkZGluZzogMDtcbn1cblxuLndpZGdldF9jYWxlbmRhciB0YWJsZSB7XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbi53aWRnZXRfY2FsZW5kYXIgdGQsXG4ud2lkZ2V0X2NhbGVuZGFyIHRoIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi8qKlxuKiBFbnRyeSBDb250ZW50XG4qL1xuXG4uZW50cnktY29udGVudCBvbCxcbi5lbnRyeS1jb250ZW50IHVsIHtcbiAgICBtYXJnaW4tYm90dG9tOiAyOHB4O1xuICAgIG1hcmdpbi1sZWZ0OiA0MHB4O1xufVxuXG4uZW50cnktY29udGVudCBvbCA+IGxpIHtcbiAgICBsaXN0LXN0eWxlLXR5cGU6IGRpc2M7XG59XG5cbi5lbnRyeS1jb250ZW50IHVsID4gbGkge1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcblxuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29sb3I6ICRhY3Rpb24tY29sb3I7XG4gICAgICAgIGNvbnRlbnQ6IFwi4oCiXCI7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbGVmdDogLTdweDtcbiAgICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgICBtYXJnaW4tbGVmdDogLTdweDtcbiAgICB9XG59XG5cbi5lbnRyeS1jb250ZW50IG9sIG9sLFxuLmVudHJ5LWNvbnRlbnQgdWwgdWwge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5lbnRyeS1jb250ZW50IGNvZGUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMzMzM7XG4gICAgY29sb3I6ICNkZGQ7XG59XG5cblxuLyoqXG4qIEVudHJ5IE1ldGFcbiovXG5cbnAuZW50cnktbWV0YSB7XG4gICAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemU7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLmVudHJ5LWhlYWRlciAuZW50cnktbWV0YSB7XG4gICAgbWFyZ2luLWJvdHRvbTogJGJhc2Utc3BhY2luZztcbn1cblxuLmVudHJ5LWZvb3RlciAuZW50cnktbWV0YSB7XG4gICAgYm9yZGVyLXRvcDogJGJhc2UtYm9yZGVyO1xuICAgIHBhZGRpbmctdG9wOiAkYmFzZS1zcGFjaW5nO1xufVxuXG4uZW50cnktY2F0ZWdvcmllcyxcbi5lbnRyeS10YWdzIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbn1cblxuLmVudHJ5LWNvbW1lbnRzLWxpbms6OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXDIwMTRcIjtcbiAgICBtYXJnaW46IDAgJGJhc2Utc3BhY2luZyAwICRiYXNlLXNwYWNpbmcvMjtcbn1cblxuLyoqXG4qIEdhbGxlcnlcbipcbiogV2UgYXJlbid0IGdvaW5nIHRvIHVzZSBOZWF0IGZvciB0aGlzIGdhbGxlcnkgZHVlIHRvIHRoZSBwb3NzaWJsZSBudW1iZXIgb2YgZ2FsbGVyeSBjb2x1bW5zXG4qIHRoYXQgZG9uJ3QgZWFzaWx5IGJyZWFrIGludG8gMTIuXG4qXG4qL1xuXG4uZ2FsbGVyeSB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmdhbGxlcnktaXRlbSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luOiAwIDAgMjhweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5nYWxsZXJ5LWNvbHVtbnMtMiAuZ2FsbGVyeS1pdGVtIHtcbiAgICB3aWR0aDogNTAlO1xufVxuXG4uZ2FsbGVyeS1jb2x1bW5zLTMgLmdhbGxlcnktaXRlbSB7XG4gICAgd2lkdGg6IDMzJTtcbn1cblxuLmdhbGxlcnktY29sdW1ucy00IC5nYWxsZXJ5LWl0ZW0ge1xuICAgIHdpZHRoOiAyNSU7XG59XG5cbi5nYWxsZXJ5LWNvbHVtbnMtNSAuZ2FsbGVyeS1pdGVtIHtcbiAgICB3aWR0aDogMjAlO1xufVxuXG4uZ2FsbGVyeS1jb2x1bW5zLTYgLmdhbGxlcnktaXRlbSB7XG4gICAgd2lkdGg6IDE2LjY2NjYlO1xufVxuXG4uZ2FsbGVyeS1jb2x1bW5zLTcgLmdhbGxlcnktaXRlbSB7XG4gICAgd2lkdGg6IDE0LjI4NTclO1xufVxuXG4uZ2FsbGVyeS1jb2x1bW5zLTggLmdhbGxlcnktaXRlbSB7XG4gICAgd2lkdGg6IDEyLjUlO1xufVxuXG4uZ2FsbGVyeS1jb2x1bW5zLTkgLmdhbGxlcnktaXRlbSB7XG4gICAgd2lkdGg6IDExLjExMTElO1xufVxuXG4uZ2FsbGVyeSBpbWcge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRkYXJrLWdyYXk7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHBhZGRpbmc6IDRweDtcbn1cblxuLmdhbGxlcnkgaW1nOmhvdmVyIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG59XG4iLCIuc2l0ZS1oZWFkZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbi10b3A6IC02cHg7XG5cbiAgICAud3JhcCB7XG4gICAgICAgIEBpbmNsdWRlIG91dGVyLWNvbnRhaW5lcigxMjAwcHgpO1xuICAgIH1cbn1cblxuLyoqXG4gKiBUaXRsZSBBcmVhXG4gKi9cblxuLnRpdGxlLWFyZWEge1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJGxhcmdlLXNjcmVlbi11cCkge1xuICAgICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMyk7XG4gICAgfVxufVxuXG4ubmF2LXByaW1hcnkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkbGFyZ2Utc2NyZWVuLXVwKSB7XG4gICAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg5KTtcbiAgICAgICAgQGluY2x1ZGUgb21lZ2EoKTtcbiAgICB9XG59XG5cbi5zaXRlLWRlc2NyaXB0aW9uLFxuLnNpdGUtdGl0bGUge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5oZWFkZXItaW1hZ2UgLnNpdGUtZGVzY3JpcHRpb24sXG4uaGVhZGVyLWltYWdlIC5zaXRlLXRpdGxlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB0ZXh0LWluZGVudDogLTk5OTlweDtcbn1cblxuLm1vYmlsZS1tZW51LWljb24ge1xuICAgIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGVZKC01MCUpKTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgcmlnaHQ6IDMwcHg7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkbGFyZ2Utc2NyZWVuLXVwKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuIiwiLm1vZGFhbC1jbG9zZSB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBib3JkZXItbGVmdDogMHB4O1xuICAgICAgICBib3JkZXItYm90dG9tOiAwcHg7XG4gICAgICAgIHBhZGRpbmc6IDBweDtcbiAgICAgICAgcmlnaHQ6IDBweDtcbiAgICAgICAgYm90dG9tOiAwcHg7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIHRvcDogMTRweDtcbiAgICAgICAgICAgIGxlZnQ6IDIzcHg7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIkcG9ydGFsLW1lbnUtaXRlbS1iZy1jb2xvcjogI2U4YTNhNTtcbiRwb3J0YWwtbWVudS1pdGVtLWJnLWhvdmVyLWNvbG9yOiAjZDE0ODRjO1xuJHN1Yi1tZW51LWJhc2UtcGFkZGluZzogMS41cmVtO1xuXG4uanVzdC1yZWQtbmF2IHtcbiAgICAucmVkLWJhci1sb2dvIHtcbiAgICAgICAgd2lkdGg6IDEwMHB4O1xuICAgICAgICBoZWlnaHQ6IDI2cHg7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnYXNzZXRzL2ltYWdlcy9wbS1sb2dvLnBuZycpO1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGxlZnQ7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6ICRiYXNlLXNwYWNpbmc7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0oIHRyYW5zbGF0ZVkoIC01MCUgKSApO1xuICAgIH1cblxuICAgICNtb2JpbGUtbWVudSAuaWNvbi1jbG9zZS1jb250YWluZXIge1xuICAgICAgICB0b3A6IDZweDtcbiAgICB9XG59XG5cbi5hY2NvdW50LW1lbnUtd3JhcCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHJlZDtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6ICRzbWFsbC1zcGFjaW5nIDA7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSggJGxhcmdlLXNjcmVlbi11cCApIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cblxuICAgIC53cmFwIHtcbiAgICAgICAgQGluY2x1ZGUgb3V0ZXItY29udGFpbmVyKDEyMDBweCk7XG4gICAgICAgIHBhZGRpbmc6IDBweDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cblxuICAgICNtZW51LWFjY291bnQtbmF2IHtcbiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCAkbGFyZ2Utc2NyZWVuLXVwICkge1xuICAgICAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGxpIHtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICBwYWRkaW5nLWxlZnQ6ICRiYXNlLXNwYWNpbmc7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgICAgICAgICB3aWR0aDogMXB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAxNHB4O1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMHB4O1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0oIHRyYW5zbGF0ZVkoIC01MCUgKSApO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBhIHtcbiAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzbWFsbC1zcGFjaW5nICRiYXNlLXNwYWNpbmcqMS4yNTtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgICBmb250LWZhbWlseTogJGhlYWRpbmctZm9udC1mYW1pbHk7XG4gICAgICAgICAgICBmb250LXNpemU6IGVtKCAxNnB4ICk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnN1Yi1tZW51IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICBsaS5tZW51LWl0ZW0taGFzLWNoaWxkcmVuIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIC5zdWItbWVudSB7XG4gICAgICAgICAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5zdWItbWVudSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRyZWQ7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgIG1hcmdpbjogMTFweCAwcHggMHB4O1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTBweDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICB3aWR0aDogMjAwcHg7XG4gICAgICAgIHotaW5kZXg6IDI4MDtcblxuICAgICAgICAmLmVkZ2Uge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cblxuICAgICAgICBsaSB7XG4gICAgICAgICAgICBib3JkZXItbGVmdDogMHB4O1xuICAgICAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMHB4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLmRhcmstcmVkIHtcbiAgICAgICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGRhcmstcmVkO1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IGVtKCAxMnB4ICk7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAkc3ViLW1lbnUtYmFzZS1wYWRkaW5nLzQgJHN1Yi1tZW51LWJhc2UtcGFkZGluZztcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcbiAgICAgICAgICAgICAgICBmb250LWZhbWlseTogJGJhc2UtZm9udC1mYW1pbHk7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBlbSggMTRweCApO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgfVxuXG59XG5cbi5hY2NvdW50LW1lbnUtcG9ydGFsLFxuLmFjY291bnQtbWVudS1zdG9yZSB7XG5cbiAgICBhIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBmb250LWZhbWlseTogJGhlYWRpbmctZm9udC1mYW1pbHk7XG4gICAgICAgIGZvbnQtc2l6ZTogZW0oIDE2cHggKTtcbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKCB0cmFuc2xhdGVZKCAtNTAlICkgKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnYXNzZXRzL2ljb25zL3BhZGxvY2suc3ZnJyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICBoZWlnaHQ6IDE1cHg7XG4gICAgICAgICAgICBsZWZ0OiA0cHg7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxNXB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGEge1xuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuc3ViLW1lbnUge1xuICAgICAgICBhIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRiYXNlLWZvbnQtZmFtaWx5O1xuICAgICAgICAgICAgZm9udC1zaXplOiBlbSggMTRweCApO1xuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbn1cblxuJi5hY2NvdW50LW1lbnUtcG9ydGFsIGE6YmVmb3Jle1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnYXNzZXRzL2ljb25zL3BvcnRhbC1pY29uLnBuZycpO1xufVxuXG4mLmFjY291bnQtbWVudS1zdG9yZSBhOmJlZm9yZXtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2Fzc2V0cy9pY29ucy9zdG9yZS1pY29uLnBuZycpO1xufVxuXG4uYWNjb3VudC1tZW51LXN0b3JlIC5zdWItbWVudSB7XG4gICAgbWluLXdpZHRoOiAyMDJweDtcblxuICAgIGxpOm50aC1jaGlsZCgxKSxcbiAgICBsaTpudGgtY2hpbGQoMiksIHtcbiAgICAgICAgY2xlYXI6IG5vbmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIHdpZHRoOiA1MCU7XG5cbiAgICAgICAgYSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbGk6bnRoLWNoaWxkKDIpIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIGEge1xuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybSggdHJhbnNsYXRlWSggLTUwJSApICk7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTRweDtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDBweDtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMXB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4ubW9iaWxlLW1lbnUgLm1lbnUtYWNjb3VudC1uYXYtY29udGFpbmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcmVkO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIC5hY2NvdW50LW1lbnUtcG9ydGFsLFxuICAgIC5hY2NvdW50LW1lbnUtc3RvcmUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbmF2LWRhcmstcmVkO1xuXG4gICAgICAgICYubWVudS1pdGVtLWhhcy1jaGlsZHJlbjphZnRlciB7XG4gICAgICAgICAgICB0b3A6IDEycHggIWltcG9ydGFudDtcbiAgICAgICAgfVxuXG4gICAgICAgIGEge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiA0NXB4ICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0oIHRyYW5zbGF0ZVkoIC01MCUgKSApO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVweDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAyMHB4O1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTVweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5zdWItbWVudSBsaSB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHJlZDtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiA4cHggMjBweCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMHB4O1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogZW0oMTRweCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1vZi10eXBlIHtcbiAgICAgICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDE2cHggIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYubW9iaWxlLXJlZCB7XG4gICAgICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRuYXYtbWVkLXJlZDtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiBlbSgxMnB4KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5hY2NvdW50LW1lbnUtc3RvcmUge1xuICAgICAgICBsaTpudGgtY2hpbGQoMSksXG4gICAgICAgIGxpOm50aC1jaGlsZCgyKSwge1xuICAgICAgICAgICAgY2xlYXI6IG5vbmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRuYXYtbWVkLXJlZDtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IGVtKDEycHgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgbGk6bnRoLWNoaWxkKDIpIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0oIHRyYW5zbGF0ZVkoIC01MCUgKSApO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxNHB4O1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDBweDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxcHg7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjAwJTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAtMjAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG5hdi1tZWQtcmVkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIiRwb3J0YWwtbWVudS1pdGVtLWJnLWNvbG9yOiAjZThhM2E1O1xuJHBvcnRhbC1tZW51LWl0ZW0tYmctaG92ZXItY29sb3I6ICNkMTQ4NGM7XG5cbi8vIE1vYmlsZSBQb3J0YWwgTWVudSBUcmlnZ2VyXG4ubW9iaWxlLXBvcnRhbC10cmlnZ2VyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSggJGxhcmdlLXNjcmVlbi11cCApIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwb3J0YWwtbWVudS1pdGVtLWJnLWNvbG9yO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgd2hpdGU7XG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgY29udGVudDogJ1BPUlRBTCBNRU5VJztcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBmb250LWZhbWlseTogJGhlYWRpbmctZm9udC1mYW1pbHk7XG4gICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDEwMDtcbiAgICAgICAgcGFkZGluZzogJGJhc2Utc3BhY2luZyoxO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDMwMG1zICRiYXNlLXRpbWluZztcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICB9XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKCByb3RhdGUoIDkwZGVnICkgKTtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdhc3NldHMvaWNvbnMvcGxheS1idXR0b24uc3ZnJyk7XG4gICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBoZWlnaHQ6IDI4cHg7XG4gICAgICAgIG9wYWNpdHk6IDAuNztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogJGJhc2Utc3BhY2luZztcbiAgICAgICAgdG9wOiAyNnB4O1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMzAwbXMgJGJhc2UtdGltaW5nO1xuICAgICAgICB3aWR0aDogMjRweDtcbiAgICB9XG5cbiAgICAmOmhvdmVyOjpiZWZvcmUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcG9ydGFsLW1lbnUtaXRlbS1iZy1ob3Zlci1jb2xvcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cblxuICAgICY6aG92ZXI6OmFmdGVyIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICYuaXMtb3BlbiB7XG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKCByb3RhdGUoIC05MGRlZyApICk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vIE1vYmlsZSBQb3J0YWwgTWVudVxuLm1vYmlsZS1wb3J0YWwtbWVudS13cmFwIHtcblxuICAgICNtZW51LXBvcnRhbC1tZW51IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICBsaSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwb3J0YWwtbWVudS1pdGVtLWJnLWNvbG9yO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMzAwbXMgJGJhc2UtdGltaW5nO1xuXG4gICAgICAgIGEge1xuICAgICAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBmb250LWZhbWlseTogJGhlYWRpbmctZm9udC1mYW1pbHk7XG4gICAgICAgICAgICBmb250LXNpemU6IGVtKDE4cHgpO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDEwMDtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRiYXNlLXNwYWNpbmcqMTtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLmN1cnJlbnQtbWVudS1pdGVtLFxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwb3J0YWwtbWVudS1pdGVtLWJnLWhvdmVyLWNvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5jb21pbmctc29vbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnN1Yi1tZW51IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYSggJGxhcmdlLXNjcmVlbi11cCApIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbn1cblxuLy8gRGVza3RvcCBQb3J0YWwgTWVudSBTdHlsZXNcbi5wb3J0YWwtbWVudS13cmFwIHtcbiAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgLnN1Yi1tZW51IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYSggJGxhcmdlLXNjcmVlbi11cCApIHtcbiAgICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICAgIHRhYmxlLWxheW91dDogZml4ZWQ7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgIC5tZW51IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IHRhYmxlLXJvdztcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgICAgICAgIGxpIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcG9ydGFsLW1lbnUtaXRlbS1iZy1jb2xvcjtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAwcHg7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB3aGl0ZTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgICAgICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMzAwbXMgJGJhc2UtdGltaW5nO1xuICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRoZWFkaW5nLWZvbnQtZmFtaWx5O1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IGVtKDI2cHgpO1xuICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogMTAwO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAkYmFzZS1zcGFjaW5nKjEgJHNtYWxsLXNwYWNpbmcvNDtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmLmN1cnJlbnQtbWVudS1pdGVtLFxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcG9ydGFsLW1lbnUtaXRlbS1iZy1ob3Zlci1jb2xvcjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmLmN1cnJlbnQtbWVudS1pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHBvcnRhbC1tZW51LWl0ZW0tYmctaG92ZXItY29sb3I7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3R0b206IC01cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGVmdDogMi41JTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiA5NSU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0oIHRyYW5zbGF0ZVgoIC01MCUgKSApO1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDEwcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQ6IDEwcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxMHB4IHNvbGlkICRwb3J0YWwtbWVudS1pdGVtLWJnLWhvdmVyLWNvbG9yO1xuICAgICAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMTRweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgJHBvcnRhbC1tZW51LWl0ZW0tYmctY29sb3I7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJi5jb21pbmctc29vbiB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRkYXJraXNoLWdyYXk7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRtZWRpdW0tZ3JheTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICY6YWZ0ZXIsXG4gICAgICAgICAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybSggdHJhbnNsYXRlWCggLTUwJSApICk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICdDT01JTkcnO1xuICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiAkYmFzZS1zcGFjaW5nKi43NTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAkYmFzZS1zcGFjaW5nKi43NTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICdTT09OJztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi5nZW5lc2lzLW5hdi1tZW51IHtcbiAgICBjbGVhcjogYm90aDtcbiAgICBmb250LXNpemU6IGVtKDE0KTtcbiAgICBsaW5lLWhlaWdodDogJGJhc2UtbGluZS1oZWlnaHQ7XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbi5nZW5lc2lzLW5hdi1tZW51ID4gLmZpcnN0ID4gYSB7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xufVxuXG4uZ2VuZXNpcy1uYXYtbWVudSA+IC5sYXN0ID4gYSB7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbn1cblxuLmdlbmVzaXMtbmF2LW1lbnUgPiAucmlnaHQge1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgIHBhZGRpbmc6ICRiYXNlLXNwYWNpbmcqMiAwO1xufVxuXG4uZ2VuZXNpcy1uYXYtbWVudSA+IC5yaWdodCA+IGEge1xuICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICBwYWRkaW5nOiAwO1xufVxuXG4uZ2VuZXNpcy1uYXYtbWVudSA+IC5yc3MgPiBhIHtcbiAgICBtYXJnaW4tbGVmdDogNDhweDtcbn1cblxuLmdlbmVzaXMtbmF2LW1lbnUgPiAuc2VhcmNoIHtcbiAgICBwYWRkaW5nOiAkYmFzZS1zcGFjaW5nIDAgMDtcbn1cblxuLnNpdGUtaGVhZGVyIC5nZW5lc2lzLW5hdi1tZW51IGxpIGxpIHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbn1cblxuLm5hdi1wcmltYXJ5IHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuLm5hdi1wcmltYXJ5IC5nZW5lc2lzLW5hdi1tZW51IGEge1xuICAgIGNvbG9yOiAkbmF2LWdyYXk7XG59XG5cbi5uYXYtcHJpbWFyeSAuZ2VuZXNpcy1uYXYtbWVudSAuc3ViLW1lbnUgYSB7XG4gICAgY29sb3I6ICRkYXJrLWdyYXk7XG59XG5cbi5uYXYtcHJpbWFyeSAuZ2VuZXNpcy1uYXYtbWVudSBhOmhvdmVyLFxuLm5hdi1wcmltYXJ5IC5nZW5lc2lzLW5hdi1tZW51IC5jdXJyZW50LW1lbnUtaXRlbSA+IGEsXG4ubmF2LXByaW1hcnkgLmdlbmVzaXMtbmF2LW1lbnUgLnN1Yi1tZW51IC5jdXJyZW50LW1lbnUtaXRlbSA+IGE6aG92ZXIge1xuICAgIGNvbG9yOiAkYWN0aW9uLWNvbG9yO1xufVxuXG5cblxuLyoqXG4qIE1lbnUgSXRlbXNcbiovXG5cbi5nZW5lc2lzLW5hdi1tZW51IC5tZW51LWl0ZW0ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG4uZ2VuZXNpcy1uYXYtbWVudSBhIHtcbiAgICBjb2xvcjogJGRhcmstZ3JheTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAkYmFzZS1zcGFjaW5nKjEuNDUgJGJhc2Utc3BhY2luZztcbn1cblxuLm5hdi1wcmltYXJ5IC5tZW51LWl0ZW06bGFzdC1jaGlsZCBhIHtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgYmFja2dyb3VuZDogJG5hdi1ncmF5O1xuICAgIGZvbnQtZmFtaWx5OiAkaGVhZGluZy1mb250LWZhbWlseTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgJGJhc2UtZHVyYXRpb24gJGJhc2UtdGltaW5nO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRhY3Rpb24tY29sb3I7XG4gICAgfVxufVxuXG4uZ2VuZXNpcy1uYXYtbWVudSBhOmhvdmVyLFxuLmdlbmVzaXMtbmF2LW1lbnUgLmN1cnJlbnQtbWVudS1pdGVtID4gYSxcbi5nZW5lc2lzLW5hdi1tZW51IC5zdWItbWVudSAuY3VycmVudC1tZW51LWl0ZW0gPiBhOmhvdmVyIHtcbiAgICBjb2xvcjogJGFjdGlvbi1jb2xvcjtcbn1cblxuLm5hdi1wcmltYXJ5IHVsLnN1Yi1tZW51IHtcbiAgICB3aWR0aDogMjAwcHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIG1hcmdpbjogMjBweCAwIDAgMDtcbiAgICBwYWRkaW5nOiAxMHB4IDAgMCAwO1xuICAgIHotaW5kZXg6IDI4MDtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgb3BhY2l0eTogMDtcbiAgICBmaWx0ZXI6IGFscGhhKG9wYWNpdHk9MCk7XG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgLjNzIGVhc2UtaW4tb3V0O1xuICAgIC1tb3otdHJhbnNpdGlvbjogYWxsIC4zcyBlYXNlLWluLW91dDtcbiAgICAtby10cmFuc2l0aW9uOiBhbGwgLjNzIGVhc2UtaW4tb3V0O1xuICAgIHRyYW5zaXRpb246IGFsbCAuM3MgZWFzZS1pbi1vdXQ7XG59XG5cbi5uYXYtcHJpbWFyeSAubWVudS1pdGVtOmhvdmVyIHVsLnN1Yi1tZW51IHtcbiAgICBtYXJnaW46IDA7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICBvcGFjaXR5OiAxO1xuICAgIGZpbHRlcjogYWxwaGEob3BhY2l0eT0xMDApO1xufVxuXG4ubmF2LXByaW1hcnkgdWwuc3ViLW1lbnUgLm1lbnUtaXRlbSB7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBjbGVhcjogYm90aDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNmNWY1ZjU7XG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2Y1ZjVmNTtcblxuICAgIGEge1xuICAgICAgICBwYWRkaW5nOiAxLjVlbSAxLjVlbSAwLjVlbSAxLjVlbTtcbiAgICB9XG5cbiAgICAmOmxhc3QtY2hpbGQgYSB7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgIGNvbG9yOiAkYmFzZS1mb250LWNvbG9yO1xuICAgICAgICBmb250LWZhbWlseTogJGJhc2UtZm9udC1mYW1pbHk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAxLjVlbTtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkYWN0aW9uLWNvbG9yO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyBGb3Igc3BlY2lhbCBwYWdlcyB3ZSdsbCByZW1vdmUgdGhlIHdoaXRlIGhlYWRlci5cbi5qdXN0LXJlZC1uYXYge1xuICAgIGhlYWRlciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLnBhZ2UtYmFubmVyIHtcbiAgICAgICAgbWFyZ2luLXRvcDogLTZweDtcbiAgICB9XG5cbiAgICAuYWNjb3VudC1tZW51LXdyYXAge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDtcbiAgICB9XG59XG4iLCIucGFnZS1iYW5uZXIge1xuXHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCUgNTAlO1xuXHRiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuXHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuXHRtaW4taGVpZ2h0OiAzMDBweDtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdEBpbmNsdWRlIG1lZGlhKCRsYXJnZS1zY3JlZW4tdXApIHtcblx0XHRtaW4taGVpZ2h0OiA0NTBweDtcblx0fVxuXG5cdCYuc21hbGwtaGVpZ2h0IHtcblx0XHRtaW4taGVpZ2h0OiAyNjBweDtcblx0XHRAaW5jbHVkZSBtZWRpYSgkbGFyZ2Utc2NyZWVuLXVwKSB7XG5cdFx0XHRtaW4taGVpZ2h0OiAyNjBweDtcblx0XHR9XG5cdH1cblxuXHQmLm1lZGl1bS1oZWlnaHQge1xuXHRcdG1pbi1oZWlnaHQ6IDM2MHB4O1xuXHRcdEBpbmNsdWRlIG1lZGlhKCRsYXJnZS1zY3JlZW4tdXApIHtcblx0XHRcdG1pbi1oZWlnaHQ6IDM2MHB4O1xuXHRcdH1cblx0fVxufVxuXG4ucGFnZS1iYW5uZXIgLnBhZ2UtdGl0bGUge1xuXHRjb2xvcjogd2hpdGU7XG5cdGZvbnQtc2l6ZTogZW0oNjApO1xuXHRtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4ucGFnZS1iYW5uZXIgLnBhZ2UtcHJlLXRpdGxlIHtcblx0Y29sb3I6IHdoaXRlO1xuXHRmb250LWZhbWlseTogJGJhc2UtZm9udC1mYW1pbHk7XG5cdGZvbnQtc2l6ZTogZW0oMzBweCk7XG5cdGZvbnQtd2VpZ2h0OiAxMDA7XG5cdG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5wYWdlLWJhbm5lciAudGl0bGUtY29udGVudCB7XG5cdEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGVZKC01MCUpKTtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdHRvcDogNTAlO1xuXHR3aWR0aDogMTAwJTtcbn1cblxuLnBhZ2UtYmFubmVyIC5wYWdlLXN1Yi10aXRsZSB7XG5cdGNvbG9yOiB3aGl0ZTtcblx0Zm9udC1mYW1pbHk6ICRiYXNlLWZvbnQtZmFtaWx5O1xuXHRmb250LXNpemU6IGVtKDMwcHgpO1xuXHRmb250LXdlaWdodDogMTAwO1xuXHRtYXJnaW4tYm90dG9tOiAwO1xufVxuIiwiLnBhZ2Utc2VjdGlvbiB7XG5cdHBhZGRpbmc6ICgkYmFzZS1zcGFjaW5nKjIpICRiYXNlLXNwYWNpbmc7XG5cblx0QGluY2x1ZGUgbWVkaWEoJGxhcmdlLXNjcmVlbi11cCkge1xuXHRcdHBhZGRpbmc6ICRsYXJnZS1zcGFjaW5nIDA7XG5cdH1cblxuXHQmLnZpZGVvLFxuXHQmLmN0YSB7XG5cdFx0cGFkZGluZzogMDtcblx0fVxuXG5cdCYuc3RvcmllcyB7XG5cdFx0YmFja2dyb3VuZDogJGxpZ2h0LWdyYXk7XG5cdH1cbn1cblxuLnBhZ2Utc2VjdGlvbi10aXRsZSB7XG5cdG1hcmdpbi1ib3R0b206ICRiYXNlLXNwYWNpbmc7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbiIsIi52aWRlbyB7XG5cdGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcblx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0YmFja2dyb3VuZC1zaXplOiBjb3Zlcjtcblx0aGVpZ2h0OiA1ODBweDtcblx0bWluLWhlaWdodDogNTgwcHg7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLnZpZGVvLWNvbnRlbnQge1xuXHRAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlWSgtNTAlKSk7XG5cdGNvbG9yOiB3aGl0ZTtcblx0ZGlzcGxheTogbm9uZTtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdHRvcDogNTAlO1xuXHR3aWR0aDogMTAwJTtcblxuXHQuaGlkZS10cmlhbCAmIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0fVxuXG5cdEBpbmNsdWRlIG1lZGlhKCRsYXJnZS1zY3JlZW4tdXApIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0fVxuXG5cdGgxIHtcblx0XHRmb250LXNpemU6IDcycHg7XG5cdFx0bWFyZ2luLWJvdHRvbTogMjBweDtcblx0fVxufVxuXG4udmlkZW8tY29udGFpbmVyIHtcblx0d2lkdGg6IDEwMHZ3O1xuXHRoZWlnaHQ6IDEwMHZoO1xuXHRwb3NpdGlvbjogZml4ZWQ7XG5cdHRvcDogMDtcblx0bGVmdDogMDtcblx0ei1pbmRleDogMjAwMDA7XG5cdGJhY2tncm91bmQ6ICMwMDA7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5cbi52aWRlbyAudmlkZW8tY29udGFpbmVyIC52aWRlby1lbGVtZW50IHtcblx0QGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSk7XG4gICAgd2lkdGg6IDEwMHZ3O1xuICAgIGhlaWdodDogMTAwdmg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIGxlZnQ6IDUwJTtcbn1cblxuLnZpZGVvLWNsb3NlIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDF2aDtcblx0cmlnaHQ6IDJ2dztcblx0Y3Vyc29yOiBwb2ludGVyO1xuXG5cdC5hZG1pbi1iYXIgJiB7XG5cdFx0dG9wOiA1dmg7XG5cdH1cblxuXHRzdmcge1xuXHRcdGZpbGw6IHdoaXRlO1xuXHR9XG59XG5cbi5hdXRvcGxheS12aWRlbyB7XG5cdEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGVZKC01MCUpKTtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDUwJTtcblx0ei1pbmRleDogLTE7XG59XG4iLCIucG9zdC10eXBlLWFyY2hpdmUtdHJpYmVfZXZlbnRzIHtcblxuICAgIC50cmliZS1ldmVudHMtbGlzdC1zZXBhcmF0b3ItbW9udGg6YmVmb3JlIHtcbiAgICBcdGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXHRcblx0LnRyaWJlLWJhci12aWV3cy1saXN0IGxpLnRyaWJlLWJhci12aWV3cy1vcHRpb24sXG5cdGxpLnRyaWJlLWV2ZW50cy1uYXYtcHJldmlvdXMsXG5cdGxpLnRyaWJlLWV2ZW50cy1uYXYtbmV4dCxcblx0I2xlZ2VuZF9ib3ggI2xlZ2VuZCBsaSxcblx0aDIudHJpYmUtZXZlbnRzLWxpc3QtZXZlbnQtdGl0bGUsXG5cdC50cmliZS1ldmVudHMtbm90aWNlcyBsaSB7XG5cdCAgICAmOmJlZm9yZSB7XG5cdCAgICAgICAgZGlzcGxheTogbm9uZTtcblx0ICAgIH1cblx0fVxuXG5cdC50cmliZS1ldmVudHMtZXZlbnQtdXJsIGEge1xuXHQgICAgd29yZC1icmVhazogYnJlYWstd29yZDtcblx0fVxuXG5cdC50cmliZS1ldmVudHMtbG9vcCB7XG5cblx0XHQudHJpYmUtZXZlbnRzLWxpc3QtZXZlbnQtdGl0bGUge1xuXHRcdFx0Zm9udC1zaXplOiAxLjNlbTtcblx0XHRcdGxpbmUtaGVpZ2h0OiAxLjJlbTtcblx0XHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAwLjJlbTtcblx0XHR9XG5cblx0XHQudHJpYmUtZXZlbnRzLWV2ZW50LW1ldGEge1xuXHRcdFx0Zm9udC1zaXplOiAxNHB4O1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogMmVtICFpbXBvcnRhbnQ7XG5cblx0XHRcdC5ldmVudC1pcy1yZWN1cnJpbmcgLnRyaWJlLWV2ZW50cy1kaXZpZGVyIHtcblx0XHRcdFx0bWFyZ2luOiAwIDAuM2VtO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC50cmliZS1ldmVudHMtZXZlbnQtaW1hZ2Uge1xuXHRcdHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG5cdFx0QGluY2x1ZGUgbWVkaWEoICRtZWRpdW0tc2NyZWVuLXVwICkge1xuXHRcdFx0d2lkdGg6IDMwJSAhaW1wb3J0YW50O1xuXHRcdH1cblx0fVxuXG5cdC50cmliZS1ldmVudHMtbGlzdC1ldmVudC1pbmZvIHtcblx0XHRmbG9hdDogbGVmdDtcblx0XHRAaW5jbHVkZSBtZWRpYSggJG1lZGl1bS1zY3JlZW4tdXAgKSB7XG5cdFx0XHR3aWR0aDogNjclO1xuXHRcdH1cblx0fVxuXG5cdC50cmliZS1ldmVudHMtdG9vbHRpcCB7XG5cblx0XHQuZW50cnktdGl0bGUge1xuXHRcdFx0Zm9udC1zaXplOiAxLjVlbTtcblx0XHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdFx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRcdH1cblxuXHRcdC50cmliZS1ldmVudC1kdXJhdGlvbiB7XG5cdFx0XHRmb250LXNpemU6IDE0cHg7XG5cdFx0fVxuXHR9XG59XG5cbi8qKioqXG5FdmVudHMgU2luZ2xlXG4qKioqL1xuLnNpbmdsZS10cmliZV9ldmVudHMge1xuXG5cdC5zaXRlLWlubmVyID4gLndyYXAge1xuXHRcdG1heC13aWR0aDogbm9uZTtcblx0XHR3aWR0aDogMTAwJTtcblxuXHRcdCN0cmliZS1ldmVudHMtcGctdGVtcGxhdGUge1xuXHRcdFx0bWF4LXdpZHRoOiBub25lO1xuXHRcdFx0cGFkZGluZzogMDtcblx0XHR9XG5cdH1cblxuXHQjdHJpYmUtZXZlbnRzIHtcblxuXHRcdC50cmliZS1ldmVudHMtc2luZ2xlLWV2ZW50LXRpdGxlIHtcblx0XHRcdG1hcmdpbjogMCAwICRzbWFsbC1zcGFjaW5nO1xuXHRcdFx0cGFkZGluZy1ib3R0b206IDAuNWVtO1xuXHRcdFx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcblx0XHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdFx0fVxuXG5cdFx0I3RyaWJlLWV2ZW50cy1jb250ZW50IHtcblx0XHRcdG1hcmdpbjogMCBhdXRvO1xuXHRcdFx0cGFkZGluZzogMDtcblx0XHRcdG1heC13aWR0aDogMTA4MHB4O1xuXHRcdFx0d2lkdGg6IDkwJTtcblxuXHRcdFx0LnRyaWJlLWV2ZW50cy1zY2hlZHVsZSB7XG5cdFx0XHRcdGJhY2tncm91bmQ6IG5vbmU7XG5cdFx0XHRcdGJvcmRlcjogbm9uZTtcblx0XHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0XHRwYWRkaW5nOiAwO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG4udHJpYmUtZXZlbnRzLW5vdGljZXMge1xuXG5cdGxpOmJlZm9yZSB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxufVxuXG4udHJpYmUtZXZlbnRzLW5hdi1wYWdpbmF0aW9uIHtcblxuXHQudHJpYmUtZXZlbnRzLXN1Yi1uYXYge1xuXG5cdFx0bGkge1xuXHRcdFx0cGFkZGluZzogMDtcblxuXHRcdFx0YSB7XG5cdFx0XHRcdHBhZGRpbmc6IDEwcHggMTJweDtcblx0XHRcdFx0Zm9udC1zaXplOiAxMnB4O1xuXG5cdFx0XHRcdEBpbmNsdWRlIG1lZGlhKCAkbWVkaXVtLXNjcmVlbi11cCApIHtcblx0XHRcdFx0XHRmb250LXNpemU6IDE1cHg7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRzcGFuIHtcblx0XHRcdFx0XHRwb3NpdGlvbjogc3RhdGljO1xuXHRcdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG4jdHJpYmUtZXZlbnRzLWNvbnRlbnQge1xuXHQudHJpYmUtZXZlbnRzLWljYWwge1xuXHRcdGJhY2tncm91bmQ6IG5vbmU7XG5cdFx0Y29sb3I6ICMzMzM7XG5cblx0XHRAaW5jbHVkZSBtZWRpYSggJG1lZGl1bS1zY3JlZW4tdXAgKSB7XG5cdFx0XHRiYWNrZ3JvdW5kOiAkZGFyay1yZWQ7XG5cdFx0XHRjb2xvcjogI2ZmZjtcblx0XHR9XG5cdH1cbn0iLCIudHJpYWwge1xuXHRAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCAxcyAkYmFzZS10aW1pbmcpO1xuXHRiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuNyk7XG5cdGJvdHRvbTogMDtcblx0bWF4LXdpZHRoOiA0NTBweDtcblx0cGFkZGluZzogJGJhc2Utc3BhY2luZztcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRyaWdodDogMDtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHR0b3A6IDA7XG5cblx0XHRAaW5jbHVkZSBtZWRpYSgkbWVkaXVtLXNjcmVlbi11cCkge1xuXHRcdFx0cGFkZGluZzogJGJhc2Utc3BhY2luZyoyO1xuXHRcdH1cblxuXHQudHJpYWwtdGl0bGUsXG5cdC50cmlhbC1kZXNjLFxuXHRzbWFsbCB7XG5cdFx0Y29sb3I6IHdoaXRlO1xuXHR9XG5cblx0LnRyaWFsLWRlc2Mge1xuXHRcdGZvbnQtc2l6ZTogMThweDtcblx0XHRmb250LXdlaWdodDogMzAwO1xuXHRcdG1hcmdpbi1ib3R0b206ICRiYXNlLXNwYWNpbmc7XG5cblx0XHRcdEBpbmNsdWRlIG1lZGlhKCRtZWRpdW0tc2NyZWVuLXVwKSB7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMjJweDtcblx0XHRcdH1cblx0fVxuXG5cdGlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxuXHRpbnB1dFt0eXBlPVwiZW1haWxcIl0ge1xuXHRcdGJhY2tncm91bmQ6IG5vbmU7XG5cdFx0Ym9yZGVyLXJhZGl1czogMDtcblx0XHRjb2xvcjogd2hpdGU7XG5cdFx0cGFkZGluZzogMTBweDtcblxuXHRcdEBpbmNsdWRlIHBsYWNlaG9sZGVyIHtcblx0XHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdFx0XHRjb2xvcjogI2JiYjtcblx0XHR9XG5cdH1cblxuXHRpbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuXHRcdG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcblx0fVxuXG5cdHNtYWxsIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRtYXJnaW4tYm90dG9tOiAkYmFzZS1zcGFjaW5nO1xuXHR9XG5cblx0aW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdH1cblxuXHQuZ2ZpZWxkIGxhYmVsIHtcblx0XHRkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG5cdH1cblxuXHQuZ2Zvcm1fd3JhcHBlciAjeyRhbGwtdGV4dC1pbnB1dHN9IHtcblx0ICAgIGJvcmRlcjogJGJhc2UtYm9yZGVyO1xuXHQgICAgYm9yZGVyLWNvbG9yOiAjZmZmO1xuXHQgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblx0ICAgIGZvbnQtZmFtaWx5OiAkYmFzZS1mb250LWZhbWlseTtcblx0ICAgIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplO1xuXHQgICAgbWFyZ2luLWJvdHRvbTogJHNtYWxsLXNwYWNpbmc7XG5cdCAgICBwYWRkaW5nOiAkYmFzZS1zcGFjaW5nIC8gMyAhaW1wb3J0YW50O1xuXHQgICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yICRiYXNlLWR1cmF0aW9uICRiYXNlLXRpbWluZztcblx0ICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG5cdH1cblx0Lmdmb3JtX3dyYXBwZXIge1xuXHRcdG1hcmdpbjogMDtcblxuXHRcdC5nZmllbGRfY2hlY2tib3gge1xuXHQgICAgXHRsaSB7XG5cdCAgICBcdFx0bGFiZWwge1xuXHQgICAgXHRcdFx0Y29sb3I6I2ZmZjtcblx0ICAgIFx0XHR9XG5cdCAgICBcdH1cblx0ICAgIH1cblx0ICAgIC5nZmllbGRfcmFkaW8ge1xuXHQgICAgXHRsaSB7XG5cdCAgICBcdFx0bWFyZ2luLWJvdHRvbTogOHB4ICFpbXBvcnRhbnQ7XG5cblx0ICAgIFx0XHRsYWJlbCB7XG5cdCAgICBcdFx0XHRjb2xvcjojZmZmO1xuXHQgICAgXHRcdFx0ZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7XG5cdCAgICBcdFx0fVxuXHQgICAgXHR9XG5cdCAgICB9XG5cdH1cblxuXHQuZ2Zvcm1fd3JhcHBlciAuZ2Zvcm1fZm9vdGVyIHtcblx0XHRwYWRkaW5nOiAwO1xuXHR9XG5cblx0Lmdmb3JtX2Zvb3RlciBpbnB1dFt0eXBlPVwic3VibWl0XCJdLmJ1dHRvbiB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG5cdFx0Y29sb3I6IGJsYWNrO1xuXHR9XG5cblx0Lmdmb3JtX3dyYXBwZXIgbGkuZ2ZpZWxkLmdmaWVsZF9lcnJvciB7XG5cdFx0Ym9yZGVyOiBub25lO1xuXHRcdGJhY2tncm91bmQ6IG5vbmU7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0cGFkZGluZzogMDtcblx0XHRtYXJnaW4tdG9wOiAxNnB4ICFpbXBvcnRhbnQ7XG5cdH1cblxuXHQuZ2Zvcm1fd3JhcHBlciBkaXYudmFsaWRhdGlvbl9lcnJvciB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0XHRib3JkZXI6IG5vbmU7XG5cdFx0Y29sb3I6IHJlZDtcblx0XHRmb250LXNpemU6IDE1cHg7XG5cdFx0cGFkZGluZzogMDtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdH1cblxuXHQuZ2Zvcm1fd3JhcHBlciAudmFsaWRhdGlvbl9tZXNzYWdlIHtcblx0XHRjb2xvcjogcmVkO1xuXHRcdHBhZGRpbmctdG9wOiA1cHggIWltcG9ydGFudDtcblx0fVxuXG5cdC5nZmllbGRfZXJyb3IgLmdpbnB1dF9jb250YWluZXIge1xuXHRcdG1hcmdpbjogMCAhaW1wb3J0YW50O1xuXHRcdG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuXG5cdFx0I3skYWxsLXRleHQtaW5wdXRzfSB7XG5cdFx0XHRib3JkZXItY29sb3I6IHJlZCAhaW1wb3J0YW50O1xuXHRcdH1cblx0fVxuXG5cdEBpbmNsdWRlIG1lZGlhKCRsYXJnZS1zY3JlZW4tdXApIHtcblx0XHQmLmlzLWhpZGRlbiB7XG5cdFx0XHRyaWdodDogLTQ1MHB4O1xuXHRcdH1cblx0fVxufVxuIiwiLmZlYXR1cmVzIHtcblxuXHQud3JhcCB7XG5cblx0XHQuZmVhdHVyZSB7XG5cdFx0XHRoZWlnaHQ6IDE1MHB4O1xuXHRcdFx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0XHRcdGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG5cdFx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCU7XG5cdFx0XHRjb2xvcjogI2ZmZjtcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogMi40JTtcblxuXHRcdFx0QGluY2x1ZGUgbWVkaWEoJG1lZGl1bS1zY3JlZW4tdXApIHtcblx0XHRcdFx0QGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDYpO1xuXHRcdFx0XHRAaW5jbHVkZSBvbWVnYSgyKTtcblx0XHRcdH1cblxuXHRcdFx0QGluY2x1ZGUgbWVkaWEoJGxhcmdlLXNjcmVlbi11cCkge1xuXHRcdFx0XHRAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMyk7XG5cdFx0XHRcdEBpbmNsdWRlIG9tZWdhLXJlc2V0KDIpO1xuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHRcdFx0fVxuXG5cdFx0XHQmOmFmdGVyIHtcblx0XHRcdFx0Y29udGVudDogXCJcIjtcblx0XHRcdFx0YmFja2dyb3VuZDogIzAwMDtcblx0XHRcdFx0b3BhY2l0eTogMC40O1xuXHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdHRvcDogMDtcblx0XHRcdFx0cmlnaHQ6IDA7XG5cdFx0XHRcdGJvdHRvbTogMDtcblx0XHRcdFx0bGVmdDogMDtcblx0XHRcdFx0dHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcblx0XHRcdH1cblxuXHRcdFx0QGluY2x1ZGUgbWVkaWEoJG1lZGl1bS1zY3JlZW4tdXApIHtcblx0XHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdFx0JjphZnRlciB7XG5cdFx0XHRcdFx0XHRiYWNrZ3JvdW5kOiAkYWN0aW9uLWNvbG9yO1xuXHRcdFx0XHRcdFx0b3BhY2l0eTogMC44O1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQuZmVhdHVyZS1jb250ZW50IHtcblx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHRib3R0b206IDEwJTtcblx0XHRcdFx0bGVmdDogNSU7XG5cdFx0XHRcdHdpZHRoOiA5MCU7XG5cdFx0XHRcdHotaW5kZXg6IDk5O1xuXHRcdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHRcdFxuXHRcdFx0XHQuZmVhdHVyZS10aXRsZSB7XG5cdFx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdFx0Zm9udC1mYW1pbHk6ICRoZWFkaW5nLWZvbnQtZmFtaWx5O1xuXHRcdFx0XHRcdGZvbnQtc2l6ZTogMjRweDtcblx0XHRcdFx0XHRsaW5lLWhlaWdodDogMS4yZW07XG5cdFx0XHRcdFx0Zm9udC13ZWlnaHQ6IDQwMDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxufSIsIi5wYWdlLXRlbXBsYXRlLWRlZmF1bHQgLmNvbnRlbnQge1xuXHRtYXJnaW4tdG9wOiA1ZW07XG59XG5cbi5lbnRyeS1jb250ZW50IHVsLCBvbCB7XG5cdGxpc3Qtc3R5bGUtcG9zaXRpb246IGluc2lkZTtcblx0bWFyZ2luLWJvdHRvbTogMS41ZW07XG59XG5cbi5lbnRyeS1jb250ZW50IHVsLFxuLmNvbnRlbnQgdWwge1xuXG5cdGxpIHtcblx0XHRsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG5cdFx0bWFyZ2luLWxlZnQ6IDIwcHg7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdG1hcmdpbi1ib3R0b206IDEwcHg7XG5cdH1cblxuXHQmID4gbGkge1xuXG5cdFx0JiA+IHVsIGxpIHtcblx0XHRcdG1hcmdpbi10b3A6IDEwcHg7XG5cblx0XHRcdCY6YmVmb3JlIHtcblx0XHRcdFx0Y29udGVudDogJyc7XG5cdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0d2lkdGg6IDZweDtcblx0XHRcdFx0aGVpZ2h0OiA2cHg7XG5cdFx0XHRcdGJhY2tncm91bmQ6ICRhY3Rpb24tY29sb3I7XG5cdFx0XHRcdHRvcDogOHB4O1xuXHRcdFx0XHRsZWZ0OiAtMjBweDtcblx0XHRcdFx0Ym9yZGVyLXJhZGl1czogNTAlO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCY6YmVmb3JlIHtcblx0XHRcdGNvbnRlbnQ6ICcnO1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0d2lkdGg6IDhweDtcblx0XHRcdGhlaWdodDogOHB4O1xuXHRcdFx0YmFja2dyb3VuZDogJGFjdGlvbi1jb2xvcjtcblx0XHRcdHRvcDogOHB4O1xuXHRcdFx0bGVmdDogLTIwcHg7XG5cdFx0XHRib3JkZXItcmFkaXVzOiA1MCU7XG5cdFx0fVxuXG5cdFx0JjpsYXN0LWNoaWxkIHsgbWFyZ2luLWJvdHRvbTogMDsgfVxuXHR9XG59XG5cbi5lbnRyeS1jb250ZW50IC51bC1kb3RzLXJpZ2h0LFxuLmNvbnRlbnQgLnVsLWRvdHMtcmlnaHQge1xuXHR1bCB7XG5cblx0XHRsaSB7XG5cdFx0XHRtYXJnaW4tbGVmdDogMDtcblx0XHRcdG1hcmdpbi1yaWdodDogMjBweDtcblx0XHRcdHRleHQtYWxpZ246IHJpZ2h0O1xuXHRcdH1cblxuXHRcdCYgPiBsaSB7XG5cdFx0XHQmID4gdWwgbGkge1xuXHRcdFx0XHQmOmJlZm9yZSB7XG5cdFx0XHRcdFx0cmlnaHQ6IC0yMHB4O1xuXHRcdFx0XHRcdGxlZnQ6IGF1dG87XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0JjpiZWZvcmUge1xuXHRcdFx0XHRsZWZ0OiBhdXRvO1xuXHRcdFx0XHRyaWdodDogLTIwcHg7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG4iLCIuc2lkZWJhciB7XG4gICAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemU7XG4gICAgbWFyZ2luLXRvcDogNWVtO1xufVxuXG4uc2lkZWJhciBsaSB7XG4gICAgcGFkZGluZy1ib3R0b206ICRzbWFsbC1zcGFjaW5nO1xufVxuXG4uc2lkZWJhciBwOmxhc3QtY2hpbGQsXG4uc2lkZWJhciB1bCA+IGxpOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5zaWRlYmFyIC53aWRnZXQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgIGJvcmRlcjogJGJhc2UtYm9yZGVyO1xuICAgIGJvcmRlci1jb2xvcjogJG1lZGl1bS1ncmF5O1xuICAgIG1hcmdpbi1ib3R0b206ICRiYXNlLXNwYWNpbmcqMjtcbiAgICBwYWRkaW5nOiAkYmFzZS1zcGFjaW5nO1xuXG4gICAgJi53aWRnZXRfc29jaWFsX2xpbmtzIHtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxufVxuXG4uc2lkZWJhciAud2lkZ2V0IC53aWRnZXQtdGl0bGUge1xuICAgIGJvcmRlci1ib3R0b206ICRiYXNlLWJvcmRlcjtcbiAgICBib3JkZXItY29sb3I6ICRtZWRpdW0tZ3JheTtcbiAgICBwYWRkaW5nLWJvdHRvbTogJHNtYWxsLXNwYWNpbmc7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ud2lkZ2V0X25ld3NsZXR0ZXJfd2lkZ2V0IHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAuYnV0dG9uIHtcbiAgICAgICAgcGFkZGluZzogMTVweCAzOHB4O1xuICAgIH1cbn1cblxuLndvb2NvbW1lcmNlIHtcbiAgICAuc2lkZWJhciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuIiwiYmxvY2txdW90ZSB7XG5cdGJvcmRlci1sZWZ0OiA1cHggc29saWQgJGFjdGlvbi1jb2xvcjtcblx0Y29sb3I6ICRhY3Rpb24tY29sb3I7XG59XG4iLCIkY29tbWVudC1iYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcblxuLmNvbW1lbnQtcmVzcG9uZCxcbi5lbnRyeS1jb21tZW50cyxcbi5lbnRyeS1waW5ncyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbW1lbnQtYmFja2dyb3VuZC1jb2xvcjtcbiAgICBtYXJnaW4tYm90dG9tOiAkYmFzZS1mb250LXNpemUqMjtcbn1cblxuLmNvbW1lbnQtcmVzcG9uZCxcbi5lbnRyeS1waW5ncyB7XG4gICAgcGFkZGluZzogJGJhc2UtZm9udC1zaXplKjIgJGJhc2UtZm9udC1zaXplKjIgJGJhc2UtZm9udC1zaXplO1xufVxuXG4uZW50cnktY29tbWVudHMge1xuICAgIHBhZGRpbmc6ICRiYXNlLWZvbnQtc2l6ZSoyO1xufVxuXG4uY29tbWVudC1oZWFkZXIge1xuICAgIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplO1xufVxuXG5saS5jb21tZW50IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJGNvbW1lbnQtYmFja2dyb3VuZC1jb2xvciwgMTApO1xuICAgIGJvcmRlcjogJGJhc2UtYm9yZGVyO1xuICAgIGJvcmRlci1yaWdodDogbm9uZTtcbn1cblxuLmNvbW1lbnQtY29udGVudCB7XG4gICAgY2xlYXI6IGJvdGg7XG59XG5cbi5jb21tZW50LWxpc3QgbGkge1xuICAgIG1hcmdpbi10b3A6ICRiYXNlLWZvbnQtc2l6ZTtcbiAgICBwYWRkaW5nOiAkYmFzZS1mb250LXNpemUqMjtcblxuICAgIGxpIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJGJhc2UtZm9udC1zaXplKjI7XG4gICAgfVxufVxuXG4uY29tbWVudC1yZXNwb25kIGlucHV0W3R5cGU9XCJlbWFpbFwiXSxcbi5jb21tZW50LXJlc3BvbmQgaW5wdXRbdHlwZT1cInRleHRcIl0sXG4uY29tbWVudC1yZXNwb25kIGlucHV0W3R5cGU9XCJ1cmxcIl0ge1xuICAgIHdpZHRoOiA1MCU7XG59XG5cbi5jb21tZW50LXJlc3BvbmQgbGFiZWwge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1yaWdodDogJGJhc2UtZm9udC1zaXplO1xufVxuXG4uZW50cnktY29tbWVudHMgLmNvbW1lbnQtYXV0aG9yIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4uZW50cnktcGluZ3MgLnJlcGx5IHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4uYnlwb3N0YXV0aG9yIHtcbn1cblxuLmZvcm0tYWxsb3dlZC10YWdzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJGNvbW1lbnQtYmFja2dyb3VuZC1jb2xvciwxMCk7XG4gICAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemU7XG4gICAgcGFkZGluZzogJGJhc2UtZm9udC1zaXplKjI7XG59XG4iLCIucGFnaW5hdGlvbiB7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgbWFyZ2luOiAkYmFzZS1zcGFjaW5nKjIgMDtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCRsYXJnZS1zY3JlZW4tdXApIHtcbiAgICAgICAgcGFkZGluZzogMCAkYmFzZS1zcGFjaW5nO1xuICAgIH1cbn1cblxuLmFkamFjZW50LWVudHJ5LXBhZ2luYXRpb24ge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5hcmNoaXZlLXBhZ2luYXRpb24gbGkge1xuICAgIGRpc3BsYXk6IGlubGluZTtcblxuICAgIGEge1xuICAgICAgICBib3JkZXI6ICRiYXNlLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkbWVkaXVtLWdyYXk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZTtcbiAgICAgICAgcGFkZGluZzogNXB4IDEwcHg7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdWQtY29sb3I6ICRhY3Rpb24tY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLmFjdGl2ZSBhIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGFjdGlvbi1jb2xvcjtcbiAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgIH1cbn1cbiIsIi5jYWxsLXRvLWFjdGlvbiB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHQuYmcge1xuXHRcdG9wYWNpdHk6IDAuODtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0aGVpZ2h0OiAxMDAlO1xuXHR9XG5cblx0LmJvcmRlciB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHdpZHRoOiBjYWxjKDEwMCUgLSA2MHB4KTtcblx0XHRoZWlnaHQ6IGNhbGMoMTAwJSAtIDYwcHgpO1xuXHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHRcdHRvcDogNTAlO1xuXHRcdGxlZnQ6IDUwJTtcblx0XHR6LWluZGV4OiAyMDAwO1xuXG5cdFx0QGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSk7XG5cdH1cblxuXHQud3JhcCB7XG5cdFx0cGFkZGluZzogM2VtICRiYXNlLXNwYWNpbmc7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdHotaW5kZXg6IDEwMDtcblxuXHRcdEBpbmNsdWRlIG1lZGlhKCRsYXJnZS1zY3JlZW4tdXApIHtcblx0XHRcdHBhZGRpbmctYm90dG9tOiA0ZW07XG5cdFx0XHRwYWRkaW5nLXRvcDogNGVtO1xuXHRcdH1cblx0fVxuXG5cdCYuZm9vdGVyLWN0YSB7XG5cdFx0LndyYXAge1xuXHRcdFx0cGFkZGluZzogM2VtICRiYXNlLXNwYWNpbmc7XG5cblx0XHRcdEBpbmNsdWRlIG1lZGlhKCRsYXJnZS1zY3JlZW4tdXApIHtcblx0XHRcdFx0cGFkZGluZzogOGVtIDA7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0LmN0YS1jb250ZW50IHtcblx0XHQqOm5vdChhKSxcblx0XHQqOm5vdChidXR0b24pIHtcblx0XHRcdGNvbG9yOiAjZmZmO1xuXHRcdH1cblxuXHRcdCo6bGFzdC1jaGlsZCB7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHRcdH1cblxuXHRcdC5zdHJpa2V0aHJvdWdoIHtcblx0XHRcdGNvbG9yOiAjYzkyODJkO1xuXHRcdFx0dGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG5cdFx0fVxuXG5cdFx0Ji5oYXMtdGFibGUge1xuXHRcdFx0ZGlzcGxheTogdGFibGU7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHR9XG5cblx0XHQuY2VsbCB7XG5cdFx0XHRkaXNwbGF5OiB0YWJsZS1jZWxsO1xuXHRcdFx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0XHR9XG5cblx0XHQuaW1nLWxlZnQsIC5pbWctcmlnaHQge1xuXHRcdFx0d2lkdGg6IDI1JTtcblx0XHR9XG5cblx0XHQudGV4dC1yaWdodCwgLnRleHQtbGVmdCB7XG5cdFx0XHR3aWR0aDogNzUlO1xuXHRcdH1cblxuXHRcdC50ZXh0LXJpZ2h0IHtcblx0XHRcdHBhZGRpbmctbGVmdDogMjBweDtcblx0XHR9XG5cblx0XHQudGV4dC1sZWZ0IHtcblx0XHRcdHBhZGRpbmctcmlnaHQ6IDIwcHg7XG5cdFx0fVxuXG5cdFx0aHIge1xuXHRcdFx0Ym9yZGVyOiAycHggc29saWQgd2hpdGU7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdG1hcmdpbjogMCBhdXRvO1xuXHRcdFx0bWF4LXdpZHRoOiA4MHB4O1xuXHRcdH1cblx0fVxufVxuXG4uc2luZ2xlLXBvc3QgLmNhbGwtdG8tYWN0aW9uIHtcblx0bWFyZ2luOiAkYmFzZS1zcGFjaW5nIDA7XG59XG5cbi5zaW5nbGUtcG9zdCAuY2FsbC10by1hY3Rpb24gLndyYXAge1xuXHRwYWRkaW5nOiA2MHB4O1xuXHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHR3aWR0aDogMTAwJVxufVxuXG4vLyAuY2FsbC10by1hY3Rpb24tYWx0IHtcbi8vIFx0YmFja2dyb3VuZDogJGN0YS1hbHQtYmc7XG4vL1xuLy8gXHQuYmcge1xuLy8gXHRcdG9wYWNpdHk6ICRjdGEtYWx0LWJnLW9wYWNpdHk7XG4vLyBcdH1cbi8vXG4vLyBcdC5pbmZvIHtcbi8vIFx0XHRtYXgtd2lkdGg6IGNhbGMoMTAwJSAtIDI0MHB4KTtcbi8vIFx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuLy9cbi8vIFx0XHQuYWNjZW50LXRpdGxlIHtcbi8vIFx0XHRcdGNvbG9yOiAkY29sb3ItMjtcbi8vIFx0XHR9XG4vLyBcdFx0Lm5vcm1hbC10aXRsZSB7XG4vLyBcdFx0XHRjb2xvcjogJGN0YS1hbHQtbm9ybWFsLXRpdGxlLWNvbG9yO1xuLy8gXHRcdFx0Zm9udC1zaXplOiAkY3RhLWFsdC1ub3JtYWwtdGl0bGUtc2l6ZTtcbi8vIFx0XHR9XG4vLyBcdH1cbi8vXG4vLyBcdC5idXR0b24td3JhcCB7XG4vLyBcdFx0dGV4dC1hbGlnbjogbGVmdDtcbi8vIFx0XHRtYXJnaW4tdG9wOiAwO1xuLy8gXHR9XG4vL1xuLy8gXHQucGluay1idXR0b24ge1xuLy8gXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcbi8vIFx0XHR0b3A6IDUwJTtcbi8vIFx0XHRyaWdodDogMDtcbi8vXG4vLyBcdFx0QGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZVkoLTUwJSkpO1xuLy8gXHR9XG4vLyB9XG4iLCIuZm9vdGVyLXdpZGdldHMge1xuICAgIGJhY2tncm91bmQ6ICRhY3Rpb24tY29sb3I7XG4gICAgYm9yZGVyLWJvdHRvbTogM3B4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC4yKTtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgICBtYXJnaW4tYm90dG9tOiAkYmFzZS1zcGFjaW5nO1xuICAgIHBhZGRpbmc6ICRiYXNlLXNwYWNpbmcqMiAwICRiYXNlLXNwYWNpbmcgMDtcblxuICAgIGEge1xuICAgICAgICBjb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwwLjcpO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5zb2NpYWwtbGluayBzdmcge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC43KTtcbiAgICBmaWxsOiAkYWN0aW9uLWNvbG9yO1xuICAgIGhlaWdodDogMzVweDtcbiAgICBwYWRkaW5nOiA1cHg7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAkYmFzZS1kdXJhdGlvbiAkYmFzZS10aW1pbmc7XG4gICAgd2lkdGg6IDM1cHg7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICB9XG5cbiAgICAud2lkZ2V0X3NvY2lhbF9saW5rcyAmIHtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjgpO1xuICAgICAgICBmaWxsOiB3aGl0ZTtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRhY3Rpb24tY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5mb290ZXItd2lkZ2V0cyAubWVudSAubWVudS1pdGVtIHtcbiAgICBkaXNwbGF5OiBibG9jaztcblxuICAgIEBpbmNsdWRlIG1lZGlhKCRtZWRpdW0tc2NyZWVuLXVwKSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICB9XG5cbiAgICBhIHtcbiAgICAgICAgcGFkZGluZzogJHNtYWxsLXNwYWNpbmcgMDtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgkbWVkaXVtLXNjcmVlbi11cCkge1xuICAgICAgICAgICAgcGFkZGluZzogJHNtYWxsLXNwYWNpbmc7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJjpmaXJzdC1jaGlsZCBhIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIH1cblxuICAgICY6bGFzdC1jaGlsZCBhIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICB9XG59XG5cbi5zaXRlLWZvb3RlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGFjdGlvbi1jb2xvcjtcbiAgICBjb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwwLjUpO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBsaW5lLWhlaWdodDogJGJhc2UtbGluZS1oZWlnaHQ7XG4gICAgcGFkZGluZzogMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkbGFyZ2Utc2NyZWVuLXVwKSB7XG4gICAgICAgIHBhZGRpbmc6ICRiYXNlLXNwYWNpbmcgMDtcbiAgICB9XG5cbiAgICBhIHtcbiAgICAgICAgY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC41KTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uZm9vdGVyLWxlZnQsXG4uZm9vdGVyLXJpZ2h0LFxuLmZvb3Rlci13aWRnZXRzLTEsXG4uZm9vdGVyLXdpZGdldHMtMiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCRsYXJnZS1zY3JlZW4tdXApIHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIHdpZHRoOiA1MCU7XG4gICAgfVxufVxuXG4uZm9vdGVyLXJpZ2h0LFxuLmZvb3Rlci13aWRnZXRzLTIge1xuICAgIG1hcmdpbi10b3A6ICRiYXNlLXNwYWNpbmc7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkbGFyZ2Utc2NyZWVuLXVwKSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIH1cbn1cblxuLmZvb3Rlci1jcmVkcyB7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgcGFkZGluZy1ib3R0b206IDNlbTtcbn1cbiIsIi5oYXMtb3ZlcmxheSB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmhhcy1vdmVybGF5OmJlZm9yZSB7XG5cdGNvbnRlbnQ6IFwiXCI7XG5cdGJhY2tncm91bmQ6ICRyZWQ7XG5cdGhlaWdodDogMTAwJTtcblx0b3BhY2l0eTogMC42O1xuXHR3aWR0aDogMTAwJTtcblxufVxuIiwiLnRtbC1wcm9maWxlIHtcblxuICAgIG1hcmdpbi1ib3R0b206ICRiYXNlLXNwYWNpbmcqMjtcblxuICAgIHRoIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMHB4O1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMHB4O1xuICAgIH1cblxuICAgIHRkIHtcbiAgICAgICAgcGFkZGluZzogMHB4O1xuICAgIH1cbn1cblxuLnRtbC1sb2dpbixcbi50bWwtcmVzZXRwYXNzIHtcbiAgICBtYXJnaW4tYm90dG9tOiAkYmFzZS1zcGFjaW5nKjI7XG59XG5cbi50bWwge1xuXG4gICAgLnRtbC1saW5rcyB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuXG4gICAgICAgIGxpIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuXG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC50bWwtc3VibWl0LXdyYXAge1xuXG4gICAgICAgIGlucHV0IHtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYWN0aW9uLWNvbG9yO1xuICAgICAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBmb250LWZhbWlseTogJGJhc2UtZm9udC1mYW1pbHk7XG4gICAgICAgICAgICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZTtcbiAgICAgICAgICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDVweCAxNXB4IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc21hbGwtc3BhY2luZyswLjI1ICRiYXNlLXNwYWNpbmcqMjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDMwMG1zICRiYXNlLXRpbWluZztcbiAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGFyay1yZWQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59IiwiLnBtcHJvLWxldmVscyxcbi5wbXByby1jaGVja291dCxcbi5wbXByby1iaWxsaW5nLFxuLnBtcHJvLWNvbmZpcm1hdGlvbixcbi5wbXByby1hY2NvdW50IHtcbiAgICAuY29udGVudCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRiYXNlLXNwYWNpbmcqMjtcbiAgICB9XG59XG4iLCIubW92ZS1sZWZ0IHtcbiAgICAubW9iaWxlLXNob3cubW9iaWxlLW1lbnUtaWNvbiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG4ubG9nZ2VkLWluLmFkbWluLWJhciB7XG4gICAgI21vYmlsZS1tZW51IHtcbiAgICAgICAgdG9wOiAzMnB4O1xuXG4gICAgICAgIEBtZWRpYSAoIG1heC13aWR0aDogNzgycHggKSB7XG4gICAgICAgICAgICB0b3A6IDQ2cHg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbiNtb2JpbGUtbWVudSB7XG4gICAgLmljb24tY2xvc2UtY29udGFpbmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoICRyZWQsIDAuNSApO1xuICAgICAgbGVmdDogLTI4cHg7XG4gICAgICB0b3A6IDIwcHg7XG4gICAgfVxuXG4gICAgbGkge1xuXG4gICAgICAgIGEge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMHB4O1xuICAgICAgICAgICAgcGFkZGluZzogMTZweCAyMHB4O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLm1lbnUtaXRlbS1oYXMtY2hpbGRyZW4ge1xuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDIwcHg7XG4gICAgICAgICAgICAgICAgdG9wOiAxNnB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICYubW92ZS1pbiB7XG4gICAgICAgIG92ZXJmbG93OiBpbml0aWFsICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgJi5tb2JpbGUtbWVudSB7XG4gICAgICAgIHBhZGRpbmc6IDBweDtcbiAgICB9XG5cbiAgICAuc3ViLW1lbnUge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDBweDtcblxuICAgICAgICBsaSB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogN3B4IDIwcHg7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG59XG4iLCIuc3RvcmUtY3RhLXBvcC11cCB7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHJpZ2h0OiAwO1xuICAgIHRvcDogMDtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4uc3RvcmUtY3RhLXBvcC11cC1kYXJrLWJnIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGFyay1ncmF5O1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIG9wYWNpdHk6IDAuNztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDA7XG4gICAgdG9wOiAwO1xufVxuXG4uc3RvcmUtY3RhLXBvcC11cC1pbm5lciB7XG4gICAgQGluY2x1ZGUgdHJhbnNmb3JtKCB0cmFuc2xhdGUoIC01MCUsIC01MCUgKSApO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgbGVmdDogNTAlO1xuICAgIG1pbi1oZWlnaHQ6IDMwMHB4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICB3aWR0aDogNDAwcHg7XG4gICAgei1pbmRleDogMTAwMDA7XG5cbiAgICBAbWVkaWEoIG1heC13aWR0aDogNDAwcHggKSB7XG4gICAgICAgIHdpZHRoOiA5MCU7XG4gICAgfVxuXG4gICAgLnN0b3JlLWN0YS1wb3AtaW5uZXItcmVkLW92ZXJsYXkge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcmVkO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIG9wYWNpdHk6IDAuNztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgdG9wOiAwO1xuICAgIH1cbn1cblxuLnN0b3JlLWN0YS1wb3AtdXAtY2xvc2Uge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBjb2xvcjogYmxhY2s7XG4gICAgaGVpZ2h0OiAyNXB4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogLTEwcHg7XG4gICAgdG9wOiAtMTBweDtcbiAgICB3aWR0aDogMjVweDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDMwMG1zICRiYXNlLXRpbWluZztcbiAgICB6LWluZGV4OiAxMDAwMDtcblxuICAgICY6YWZ0ZXIge1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0oIHRyYW5zbGF0ZSggLTUwJSwgLTUwJSApICk7XG4gICAgICAgIGNvbnRlbnQ6IFwiWFwiO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgICBvcGFjaXR5OiAwLjg7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG59XG5cblxuLnN0b3JlLWN0YS1wb3AtdXAtaW5uZXItY29udGVudCB7XG4gICAgYm9yZGVyOiAycHggc29saWQgd2hpdGU7XG4gICAgYm90dG9tOiAxNXB4O1xuICAgIGxlZnQ6IDE1cHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAxNXB4O1xuICAgIHRvcDogMTVweDtcbiAgICB6LWluZGV4OiAxMDAwMDA7XG59XG5cbi5zdG9yZS1jdGEtcG9wLXVwLWlubmVyLWNvbnRlbnQtaW5zaWRlcyB7XG4gICAgYm90dG9tOiAkYmFzZS1zcGFjaW5nO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGxlZnQ6IDE1cHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAxNXB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB6LWluZGV4OiAxMDAwMDAwO1xuXG4gICAgcCB7XG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgZm9udC1zaXplOiAyMnB4O1xuICAgICAgICBmb250LXdlaWdodDogMTAwO1xuICAgIH1cbn1cblxuLnN0b3JlLWN0YS1wb3AtdXAtYnRuIHtcblxuICAgIGEge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkc21hbGwtc3BhY2luZztcbiAgICAgICAgcGFkZGluZzogMTVweCAyMHB4O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkcmVkO1xuICAgICAgICAgICAgYm90dG9tOiA1cHg7XG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgbGVmdDogNXB4O1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHJpZ2h0OiA1cHg7XG4gICAgICAgICAgICB0b3A6IDVweDtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMzAwbXMgJGJhc2UtdGltaW5nO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBjb2xvcjogJHJlZDtcblxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxufVxuIiwiQGltcG9ydCBcImZpZnR5LWZpZnR5XCI7XG5AaW1wb3J0IFwic2l4dHktZm91cnR5XCI7XG5AaW1wb3J0IFwiYWNjb3JkaW9uXCI7XG5AaW1wb3J0IFwiY29udGVudFwiO1xuQGltcG9ydCBcInRpbGVzXCI7XG5AaW1wb3J0IFwiYmxvZ1wiO1xuQGltcG9ydCBcImljb24tYmx1cmJzXCI7XG5AaW1wb3J0IFwicHJpY2luZy1zZWN0aW9uXCI7XG5AaW1wb3J0IFwiZmlmdHktZm9ybVwiO1xuQGltcG9ydCBcImp1aWNlclwiO1xuXG4jZmxleGlibGUtc2VjdGlvbi1yZXBlYXRlciB7XG5cblx0LnBhZ2UtZmxleGlibGUtc2VjdGlvbiB7XG5cdFx0Ji5oYXMtdG9wLXBhZGRpbmcge1xuXHRcdFx0cGFkZGluZy10b3A6IDNlbTtcblx0XHR9XG5cblx0XHQmLmhhcy1ib3QtcGFkZGluZyB7XG5cdFx0XHRwYWRkaW5nLWJvdHRvbTogM2VtO1xuXHRcdH1cblxuXHRcdEBpbmNsdWRlIG1lZGlhKCRsYXJnZS1zY3JlZW4tdXApIHtcblx0XHRcdCYuaGFzLXRvcC1wYWRkaW5nIHtcblx0XHRcdFx0cGFkZGluZy10b3A6IDVlbTtcblx0XHRcdH1cblxuXHRcdFx0Ji5oYXMtYm90LXBhZGRpbmcge1xuXHRcdFx0XHRwYWRkaW5nLWJvdHRvbTogNWVtO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuIiwiI2ZsZXhpYmxlLXNlY3Rpb24tcmVwZWF0ZXIge1xuICAgIC5pbmZvcm1hdGlvbmFsLWN0YS1zZWN0aW9uIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheTtcblxuICAgICAgICAmLnBhZ2UtZmxleGlibGUtc2VjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLndyYXAgeyBwb3NpdGlvbjogc3RhdGljOyB9XG5cbiAgICAgICAgLml0ZW0ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCRsYXJnZS1zY3JlZW4tdXApIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLmNvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6ICRiYXNlLXNwYWNpbmcqMiAwO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJGxhcmdlLXNjcmVlbi11cCkge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoNik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJi5yaWdodCB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCRsYXJnZS1zY3JlZW4tdXApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIHNoaWZ0KDYpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkYmFzZS1zcGFjaW5nKjI7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYuaW1hZ2Uge1xuICAgICAgICAgICAgICAgICRwb3MtcGVyY2VudDogNTAlO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJGxhcmdlLXNjcmVlbi11cCkge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmLmxlZnQgeyBsZWZ0OiAkcG9zLXBlcmNlbnQ7IH1cbiAgICAgICAgICAgICAgICAmLnJpZ2h0IHsgcmlnaHQ6ICRwb3MtcGVyY2VudDsgfVxuXG4gICAgICAgICAgICAgICAgLmJnIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYmctaW1hZ2U7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIjZmxleGlibGUtc2VjdGlvbi1yZXBlYXRlciAuc2l4dHktZm91cnR5IHtcbiAgICBwYWRkaW5nOiAkYmFzZS1zcGFjaW5nKjIgMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAmLnBhZ2UtZmxleGlibGUtc2VjdGlvbiB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxufVxuXG4jZmxleGlibGUtc2VjdGlvbi1yZXBlYXRlciAuc2l4dHktZm91cnR5IC5pdGVtIHtcblxuICAgICYuY29udGVudCB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCRsYXJnZS1zY3JlZW4tdXApIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg3KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYuaW1hZ2Uge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCRsYXJnZS1zY3JlZW4tdXApIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg1KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIG9tZWdhKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpbWcge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiJGFjY29yZGlvbi10ZW1wbGF0ZS1jbG9zZS1jb2xvcjogI2ZmZjtcbiRhY2NvcmRpb24tdGVtcGxhdGUtdGl0bGUtaG92ZXItY29sb3I6ICNmZmY7XG4kYWNjb3JkaW9uLXRlbXBsYXRlLWluZm8tY29sb3I6ICM2ODY4Njg7XG5cbi5hY2NvcmRpb24tcGFnZSB7XG5cdC53cmFwLmNvbnRlbnQge1xuXHRcdCY6Zmlyc3QtY2hpbGQge1xuXHRcdFx0cGFkZGluZy1ib3R0b206IDQwcHg7XG5cdFx0fVxuXHRcdCY6bGFzdC1jaGlsZCB7XG5cdFx0XHRwYWRkaW5nLXRvcDogMDtcblx0XHR9XG5cdH1cblxuXHQud3JhcC5uby1jb250ZW50IHtcblx0XHQmOmZpcnN0LWNoaWxkIHtcblx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0fVxuXHR9XG59XG5cbi5zaW5nbGUtcHJvZHVjdCB7XG5cdC5hY2NvcmRpb24tcm93IHtcblx0XHRtYXJnaW4tYm90dG9tOiA4cHggIWltcG9ydGFudDtcblx0fVxuXG5cdC5hY2NvcmRpb24tdGl0bGUge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICRkYXJraXNoLWdyYXkgIWltcG9ydGFudDtcblx0fVxufVxuXG4uYWNjb3JkaW9uLWJsb2NrIHtcblx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblxuXHQudGl0bGUge1xuXHRcdGZvbnQtd2VpZ2h0OiA3MDA7XG5cdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0fVxuXG5cdC5hY2NvcmRpb24tcm93IHtcblx0XHRtYXJnaW4tYm90dG9tOiAxNXB4O1xuXG5cdFx0JjpsYXN0LWNoaWxkIHtcblx0XHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdFx0fVxuXG5cdFx0LmFjY29yZGlvbi10aXRsZSB7XG5cdFx0XHRwYWRkaW5nOiAxMHB4IDIwcHg7XG5cdFx0XHRiYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXk7XG5cdFx0XHRjb2xvcjogI2ZmZjtcblx0XHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHRmb250LXdlaWdodDogNzAwO1xuXHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdFx0Ym9yZGVyOiAkYmFzZS1ib3JkZXI7XG5cblx0XHRcdEBpbmNsdWRlIHRyYW5zaXRpb24oJGJhc2UtZHVyYXRpb24gJGJhc2UtdGltaW5nKTtcblxuXHRcdFx0c3ZnIHtcblx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHR0b3A6IDUwJTtcblx0XHRcdFx0cmlnaHQ6IDE1cHg7XG5cdFx0XHRcdHdpZHRoOiAzMHB4O1xuXHRcdFx0XHRoZWlnaHQ6IDMwcHg7XG5cdFx0XHRcdGN1cnNvcjogcG9pbnRlcjtcblxuXHRcdFx0XHRAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlWSgtNTAlKSk7XG5cdFx0XHRcdEBpbmNsdWRlIHRyYW5zaXRpb24oJGJhc2UtZHVyYXRpb24gJGJhc2UtdGltaW5nKTtcblxuXHRcdFx0XHRwYXRoLCBwb2x5Z29uIHtcblx0XHRcdFx0XHRmaWxsOiAkYWNjb3JkaW9uLXRlbXBsYXRlLWNsb3NlLWNvbG9yO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHRib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcblx0XHRcdFx0YmFja2dyb3VuZDogJGFjdGlvbi1jb2xvcjtcblx0XHRcdH1cblxuXHRcdFx0Ji5hY3RpdmUge1xuXHRcdFx0XHRib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcblx0XHRcdFx0YmFja2dyb3VuZDogJGFjdGlvbi1jb2xvcjtcblx0XHRcdFx0c3ZnIHsgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKSk7IH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHQuYWNjb3JkaW9uLWluZm8ge1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHRcdGNvbG9yOiAkYWNjb3JkaW9uLXRlbXBsYXRlLWluZm8tY29sb3I7XG5cdFx0XHRwYWRkaW5nOiAyMHB4IDIwcHggNXB4IDIwcHg7XG5cdFx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG5cdFx0XHQqOmxhc3QtY2hpbGQge1xuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHRcdFx0fVxuXG5cdFx0XHR1bCB7XG5cdFx0XHRcdG1hcmdpbi10b3A6IDEwcHg7XG5cblx0XHRcdFx0bGkge1xuXHRcdFx0XHRcdGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcblx0XHRcdFx0XHRtYXJnaW4tbGVmdDogMjBweDtcblx0XHRcdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMTBweDtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdCYgPiBsaSB7XG5cblx0XHRcdFx0XHQmID4gdWwgbGkge1xuXHRcdFx0XHRcdFx0bWFyZ2luLXRvcDogMTBweDtcblxuXHRcdFx0XHRcdFx0JjpiZWZvcmUge1xuXHRcdFx0XHRcdFx0XHRjb250ZW50OiAnJztcblx0XHRcdFx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHRcdFx0XHR3aWR0aDogNnB4O1xuXHRcdFx0XHRcdFx0XHRoZWlnaHQ6IDZweDtcblx0XHRcdFx0XHRcdFx0YmFja2dyb3VuZDogJGFjdGlvbi1jb2xvcjtcblx0XHRcdFx0XHRcdFx0dG9wOiA4cHg7XG5cdFx0XHRcdFx0XHRcdGxlZnQ6IC0yMHB4O1xuXHRcdFx0XHRcdFx0XHRib3JkZXItcmFkaXVzOiA1MCU7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0JjpiZWZvcmUge1xuXHRcdFx0XHRcdFx0Y29udGVudDogJyc7XG5cdFx0XHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdFx0XHR3aWR0aDogOHB4O1xuXHRcdFx0XHRcdFx0aGVpZ2h0OiA4cHg7XG5cdFx0XHRcdFx0XHRiYWNrZ3JvdW5kOiAkYWN0aW9uLWNvbG9yO1xuXHRcdFx0XHRcdFx0dG9wOiA4cHg7XG5cdFx0XHRcdFx0XHRsZWZ0OiAtMjBweDtcblx0XHRcdFx0XHRcdGJvcmRlci1yYWRpdXM6IDUwJTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHQmOmxhc3QtY2hpbGQgeyBtYXJnaW4tYm90dG9tOiAwOyB9XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0LnVsLWRvdHMtcmlnaHQge1xuXHRcdFx0XHR1bCB7XG5cblx0XHRcdFx0XHRsaSB7XG5cdFx0XHRcdFx0XHRtYXJnaW4tbGVmdDogMDtcblx0XHRcdFx0XHRcdG1hcmdpbi1yaWdodDogMjBweDtcblx0XHRcdFx0XHRcdHRleHQtYWxpZ246IHJpZ2h0O1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdCYgPiBsaSB7XG5cdFx0XHRcdFx0XHQmID4gdWwgbGkge1xuXHRcdFx0XHRcdFx0XHQmOmJlZm9yZSB7XG5cdFx0XHRcdFx0XHRcdFx0cmlnaHQ6IC0yMHB4O1xuXHRcdFx0XHRcdFx0XHRcdGxlZnQ6IGF1dG87XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0JjpiZWZvcmUge1xuXHRcdFx0XHRcdFx0XHRsZWZ0OiBhdXRvO1xuXHRcdFx0XHRcdFx0XHRyaWdodDogLTIwcHg7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0JjpmaXJzdC1jaGlsZCB7IHBhZGRpbmctdG9wOiAwOyB9XG5cdFx0JjpsYXN0LWNoaWxkIHtcblx0XHRcdHBhZGRpbmctYm90dG9tOiAwO1xuXHRcdFx0Ym9yZGVyLWJvdHRvbTogbm9uZTtcblx0XHR9XG5cdH1cbn1cbiIsIiNmbGV4aWJsZS1zZWN0aW9uLXJlcGVhdGVyIHtcblx0LmNvbnRlbnQtc2VjdGlvbiB7XG5cdFx0LmNvbnRlbnQsXG5cdFx0LmwtY29udGVudCxcblx0XHQuci1jb250ZW50IHtcblx0XHRcdCo6bGFzdC1jaGlsZCB7XG5cdFx0XHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LmwtY29udGVudCxcbiAgICAgICAgLnItY29udGVudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMTIpO1xuICAgICAgICB9XG5cbiAgICAgICAgLmwtY29udGVudCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAzZW07XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgkbGFyZ2Utc2NyZWVuLXVwKSB7XG4gICAgICAgICAgICAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg2KTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLnItY29udGVudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgkbGFyZ2Utc2NyZWVuLXVwKSB7XG4gICAgICAgICAgICAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg2KTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBvbWVnYSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cdH1cbn1cbiIsIi50aWxlLWJsb2NrcyB7XG5cdG92ZXJmbG93OiBhdXRvO1xuXG5cdEBpbmNsdWRlIG1lZGlhKCRsYXJnZS1zY3JlZW4tdXApIHtcblx0XHRAaW5jbHVkZSBkaXNwbGF5KGZsZXgpO1xuXHRcdEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKHJvdyk7XG5cdH1cbn1cblxuLnRpbGUtYmxvY2sge1xuXHRwYWRkaW5nOiAkYmFzZS1zcGFjaW5nKjMgJGJhc2Utc3BhY2luZyoyO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0QGluY2x1ZGUgbWVkaWEoJGxhcmdlLXNjcmVlbi11cCkge1xuXHRcdEBpbmNsdWRlIGZsZXgoMSk7XG5cdFx0bWluLWhlaWdodDogMzAwcHg7XG5cdH1cblxuXHQmLmhhcy1yZWQtb3ZlcmxheSB7XG5cdFx0JjphZnRlciB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkcmVkO1xuXHRcdFx0Y29udGVudDogJyc7XG5cdFx0XHRib3R0b206IDA7XG5cdFx0XHRsZWZ0OiAwO1xuXHRcdFx0b3BhY2l0eTogMC42O1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0cmlnaHQ6IDA7XG5cdFx0XHR0b3A6IDA7XG5cdFx0XHR0cmFuc2l0aW9uOiBvcGFjaXR5ICRiYXNlLWR1cmF0aW9uICRiYXNlLXRpbWluZztcblx0XHRcdHotaW5kZXg6IDEwO1xuXHRcdH1cblx0fVxuXG5cdCYuaGFzLWJnIHtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG5cdFx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0XHRiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuXHR9XG5cblx0LnRpbGUtYmxvY2staGVhZGVyLFxuXHQudGlsZS1ibG9jay1leGNlcnB0LFxuXHQudGlsZS1ibG9jay1mb290ZXIge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHR6LWluZGV4OiAxMDA7XG5cdH1cbn1cblxuLnRpbGUtYmxvY2suaGFzLWJnIC50aWxlLWJsb2NrLXRpdGxlLFxuLnRpbGUtYmxvY2suaGFzLWJnIC50aWxlLWJsb2NrLWV4Y2VycHQgcCxcbi50aWxlLWJsb2NrLmhhcy1iZyAudGlsZS1ibG9jay1mb290ZXIgYSB7XG5cdGNvbG9yOiB3aGl0ZTtcbn1cblxuLnRpbGUtYmxvY2stdGl0bGUge1xuXHRmb250LWZhbWlseTogJGJhc2UtZm9udC1mYW1pbHk7XG59XG5cbi50aWxlLWJsb2NrLWZvb3RlciBhIHtcblx0Zm9udC13ZWlnaHQ6IDcwMDtcblxuXHQmOmhvdmVyIHtcblx0XHRjb2xvcjogI2ZmZjtcblx0fVxufVxuIiwiLnBhZ2UtZmxleGlibGUtc2VjdGlvbi5wYWdlLXNlY3Rpb24tc3RvcmllcyB7XG5cdGJhY2tncm91bmQ6ICRsaWdodC1ncmF5O1xuXHRwYWRkaW5nLXRvcDogM2VtO1xuXHRwYWRkaW5nLWJvdHRvbTogM2VtO1xuXG5cdEBpbmNsdWRlIG1lZGlhKCRsYXJnZS1zY3JlZW4tdXApIHtcblx0XHRwYWRkaW5nLXRvcDogNWVtO1xuXHRcdHBhZGRpbmctYm90dG9tOiA1ZW07XG5cdH1cblxuXG5cdCYudHdvLXBvc3RzIC5zdG9yaWVzIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRtYXJnaW46IDAgYXV0bztcblx0XHR3aWR0aDogcGVyY2VudGFnZSgyLzMpO1xuXG5cdFx0LnN0b3J5IHtcblx0XHRcdHdpZHRoOiBwZXJjZW50YWdlKDEvMik7XG5cdFx0fVxuXHR9XG5cblx0Ji5mb3VyLXBvc3RzIC5zdG9yaWVzIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRtYXJnaW46IDAgYXV0bztcblx0XHR3aWR0aDogMTAwJTtcblxuXHRcdC5zdG9yeSB7XG5cdFx0XHR3aWR0aDogcGVyY2VudGFnZSgxLzQpO1xuXHRcdH1cblx0fVxufVxuIiwiLnBhZ2UtZmxleGlibGUtc2VjdGlvbiB7XG5cbiAgICAmLmljb24tYmx1cmItc2VjdGlvbiB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRsaWdodC1ncmF5O1xuICAgIH1cblxuICAgIC5ibHVyYi10aXRsZSB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkYmFzZS1mb250LWZhbWlseTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemUqMS41O1xuICAgIH1cblxuICAgIC5ibHVyYiB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJGJhc2Utc3BhY2luZyoyO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCAkbWVkaXVtLXNjcmVlbi11cCApIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucygzKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5ibHVyYi1pY29uIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHJlZDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICBoZWlnaHQ6IDEyNXB4O1xuICAgICAgICBtYXJnaW46IDAgYXV0byAkYmFzZS1zcGFjaW5nO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHdpZHRoOiAxMjVweDtcblxuICAgICAgICBpbWcge1xuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSk7XG4gICAgICAgICAgICBoZWlnaHQ6IDUwcHg7XG4gICAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHdpZHRoOiA1MHB4O1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAuYmx1cmItY29udGVudCB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG59XG4iLCIucGFnZS1mbGV4aWJsZS1zZWN0aW9uLnByaWNpbmctc2VjdGlvbiB7XG5cbiAgICAucGFnZS1zZWN0aW9uLXRpdGxlLFxuICAgIC5yaWdodC10aXRsZSB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgfVxuXG4gICAgLnJpZ2h0LXRpdGxlIHtcbiAgICAgICAgZm9udC1zaXplOiBlbSgzMHB4KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJGJhc2Utc3BhY2luZztcbiAgICB9XG5cbiAgICAubGVmdC1zaWRlIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoICRtZWRpdW0tc2NyZWVuLXVwICkge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnJpZ2h0LXNpZGUge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSggJG1lZGl1bS1zY3JlZW4tdXAgKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucmlnaHQtY29taW5nLXNvb24ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcmVkO1xuICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgIGZvbnQtc2l6ZTogZW0oMzBweCk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE7XG4gICAgICAgIG1hcmdpbi10b3A6ICRiYXNlLXNwYWNpbmc7XG4gICAgICAgIG1heC13aWR0aDogNTAwcHg7XG4gICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgcGFkZGluZzogJGJhc2Utc3BhY2luZztcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICB9XG5cbn1cblxuLy8gQ2FuIGJlIHVzZWQgZ2xvYmFsbHlcbi5zdGFydC1ib3gge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRsaWdodC1ncmF5O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCAkbWVkaXVtLXNjcmVlbi11cCApIHtcbiAgICAgICAgbWF4LXdpZHRoOiA0MDBweDtcbiAgICB9XG5cbiAgICAuc3RhcnQtdG9wIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHJlZDtcbiAgICAgICAgaDMge1xuICAgICAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICAgICAgZm9udC1zaXplOiBlbSgyNHB4KTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc21hbGwtc3BhY2luZztcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuc3RhcnQtYm90dG9tIHtcbiAgICAgICAgcGFkZGluZzogJGJhc2Utc3BhY2luZztcbiAgICB9XG5cbiAgICAuc3RhcnQtbm9ybS1wcmljZSxcbiAgICAuc3RhcnQtcmVkdWNlZC1wcmljZSB7XG4gICAgICAgIC5wcmljZSB7XG4gICAgICAgICAgICBjb2xvcjogJGJsYWNrO1xuICAgICAgICAgICAgZm9udC1zaXplOiBlbSg0OHB4KTtcbiAgICAgICAgfVxuICAgICAgICAucHJpY2UtcGVyaW9kIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogZW0oMThweCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuc3RhcnQtbm9ybS1wcmljZSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDVweCBzb2xpZCBsaWdodGVuKCAkYmxhY2ssIDcwJSk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRzbWFsbC1zcGFjaW5nO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogJHNtYWxsLXNwYWNpbmc7XG5cbiAgICAgICAgLnByaWNlLFxuICAgICAgICAucHJpY2UtcGVyaW9kIHtcbiAgICAgICAgICAgIGNvbG9yOiBsaWdodGVuKCAkYmxhY2ssIDcwJSk7XG4gICAgICAgIH1cblxuICAgICAgICAuc2xhc2hlZCB7XG4gICAgICAgICAgICAuaW5uZXItc2xhc2gge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogM3B4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcmVkO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKCByb3RhdGUoMTJkZWcpICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnN0YXJ0LWJsdXJiIHtcbiAgICAgICAgbWFyZ2luLXRvcDogJGJhc2Utc3BhY2luZztcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJGJhc2Utc3BhY2luZyoyO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIH1cbn1cbiIsIi5maWZ0eS1mb3JtLWN0YS1zZWN0aW9uIHtcblxuICAgIC5zaXhjb2wge1xuICAgICAgICB3aWR0aDogNDguNSU7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAzJTtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB9XG4gICAgLnNpeGNvbDpmaXJzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIH1cbiAgICAuY29udGVudCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDNlbSAhaW1wb3J0YW50O1xuICAgIH1cbiAgICAuaGFzLWZvcm0tYmFja2dyb3VuZCB7XG4gICAgICAgIGJhY2tncm91bmQ6ICMwMDA7XG4gICAgICAgIHBhZGRpbmc6IDNlbTtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgfVxuICAgIC5oYXMtZm9ybS1iYWNrZ3JvdW5kIC5mb3JtLWJhY2tncm91bmQge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgei1pbmRleDogMDtcbiAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gICAgLmZvcm0tYmFja2dyb3VuZCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICAgIC8qKiBBQyBGb3JtIFN0eWxlcyAqKi9cbiAgICAuaGFzLWZvcm0tYmFja2dyb3VuZCBmb3JtIHtcbiAgICAgICAgYm9yZGVyLXRvcDogNHB4IHNvbGlkICNmZmY7XG4gICAgfVxuXG4gICAgZm9ybSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBib3JkZXItdG9wOiA0cHggc29saWQgI2M5MjgyZDtcbiAgICAgICAgcGFkZGluZy10b3A6IDIwcHg7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogMjAwO1xuICAgIH1cbiAgICAuX2Zvcm0tdGl0bGUge1xuICAgICAgICBmb250LXNpemU6IDEuMmVtO1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB9XG4gICAgLl9mb3JtX2VsZW1lbnQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjVlbTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cbiAgICAuX2Zvcm0tbGFiZWwge1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNWVtO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gICAgaW5wdXRbdHlwZT1cInRleHRcIl0sIHRleHRhcmVhLCBzZWxlY3Qge1xuICAgICAgICB3aWR0aDoxMDAlO1xuICAgICAgICBwYWRkaW5nOiAxNXB4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjYWFhO1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAtd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDtcbiAgICAgICAgLW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7XG4gICAgfVxuICAgIC5oYXMtZm9ybS1iYWNrZ3JvdW5kIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLCAuaGFzLWZvcm0tYmFja2dyb3VuZCB0ZXh0YXJlYSwgLmhhcy1mb3JtLWJhY2tncm91bmQgc2VsZWN0IHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgfVxuICAgIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLl9oYXNfZXJyb3IsIHRleHRhcmVhLl9oYXNfZXJyb3IsIHNlbGVjdC5faGFzX2Vycm9yIHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2YzN2M3YiAhaW1wb3J0YW50O1xuICAgIH1cbiAgICBzZWxlY3Qge1xuICAgICAgICB3aWR0aDoxMDAlO1xuICAgICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIC13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94O1xuICAgICAgICAtbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDtcbiAgICB9XG4gICAgLmhhcy1mb3JtLWJhY2tncm91bmQgYnV0dG9uIHtcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAgICAgY29sb3I6ICMzMzM7XG4gICAgICAgIGJvcmRlci1jb2xvcjogI2ZmZjtcbiAgICB9XG4gICAgYnV0dG9uIHtcbiAgICAgICAgYmFja2dyb3VuZDogI2M5MjgyZDtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIGZvbnQtc2l6ZTogMTAwJTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIHBhZGRpbmc6IDE1cHggMzZweDtcbiAgICAgICAgLypib3JkZXItcmFkaXVzOiAxMDBweDsqL1xuICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAjYzkyODJkO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuNXMgZWFzZTtcbiAgICAgICAgLW1vei10cmFuc2l0aW9uOiBhbGwgMC41cyBlYXNlO1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC41cyBlYXNlO1xuICAgIH1cbiAgICBidXR0b246YmVmb3JlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgICAuaGFzLWZvcm0tYmFja2dyb3VuZCBidXR0b246aG92ZXIge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICB9XG4gICAgYnV0dG9uOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgY29sb3I6ICNjOTI4MmQ7XG4gICAgfVxuICAgIC5fZm9ybS1icmFuZGluZyB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLyoqIEVycm9yIFN0eWxlcyAqKi9cbiAgICAuX2Vycm9yIHtcbiAgICAgICAgZGlzcGxheTpibG9jaztcbiAgICAgICAgcG9zaXRpb246YWJzb2x1dGU7XG4gICAgICAgIGZvbnQtc2l6ZToxM3B4O1xuICAgICAgICB6LWluZGV4OjEwMDAwMDAxO1xuICAgIH1cbiAgICAuX2Vycm9yLl9hYm92ZSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOjRweDtcbiAgICAgICAgdG9wOi0xN3B4O1xuICAgICAgICByaWdodDowO1xuICAgIH1cbiAgICAuX2Vycm9yLl9iZWxvdyB7XG4gICAgICAgIHBhZGRpbmctdG9wOjRweDtcbiAgICAgICAgdG9wOjEwMCU7XG4gICAgICAgIHJpZ2h0OjA7XG4gICAgfVxuICAgIC5fZXJyb3IuX2Fib3ZlIC5fZXJyb3ItYXJyb3cge1xuICAgICAgICBib3R0b206MDtcbiAgICAgICAgcmlnaHQ6MTVweDtcbiAgICAgICAgYm9yZGVyLWxlZnQ6NXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXItcmlnaHQ6NXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXItdG9wOjVweCBzb2xpZCAjZjM3YzdiO1xuICAgIH1cbiAgICAuX2Vycm9yLl9iZWxvdyAuX2Vycm9yLWFycm93IHtcbiAgICAgICAgdG9wOjA7XG4gICAgICAgIHJpZ2h0OjE1cHg7XG4gICAgICAgIGJvcmRlci1sZWZ0OjVweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OjVweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTo1cHggc29saWQgI2YzN2M3YjtcbiAgICB9XG4gICAgLl9lcnJvci1pbm5lciB7XG4gICAgICAgIHBhZGRpbmc6OHB4IDEycHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6I2YzN2M3YjtcbiAgICAgICAgZm9udC1zaXplOjEzcHg7XG4gICAgICAgIGZvbnQtZmFtaWx5OmFyaWFsLCBzYW5zLXNlcmlmO1xuICAgICAgICBjb2xvcjojZmZmO1xuICAgICAgICB0ZXh0LWFsaWduOmNlbnRlcjtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOm5vbmU7XG4gICAgICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czo0cHg7XG4gICAgICAgIC1tb3otYm9yZGVyLXJhZGl1czo0cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6NHB4O1xuICAgIH1cbiAgICAuX2Vycm9yLWlubmVyLl9mb3JtX2Vycm9yIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTo1cHg7XG4gICAgICAgIHBvc2l0aW9uOmFic29sdXRlO1xuICAgICAgICB0ZXh0LWFsaWduOmxlZnQ7XG4gICAgfVxuICAgIC5fYnV0dG9uLXdyYXBwZXIgLl9lcnJvci1pbm5lci5fZm9ybV9lcnJvciB7XG4gICAgICAgIHBvc2l0aW9uOnN0YXRpYztcbiAgICB9XG4gICAgLl9lcnJvci1pbm5lci5fbm9fYXJyb3cge1xuICAgICAgICBtYXJnaW4tYm90dG9tOjEwcHg7XG4gICAgfVxuICAgIC5fZXJyb3ItYXJyb3cge1xuICAgICAgICBwb3NpdGlvbjphYnNvbHV0ZTtcbiAgICAgICAgd2lkdGg6MDtcbiAgICAgICAgaGVpZ2h0OjA7XG4gICAgfVxuICAgIC5fZXJyb3ItaHRtbCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206MTBweDtcbiAgICB9XG5cbiAgICBAbWVkaWEgKG1heC13aWR0aDogODAwcHgpIHtcbiAgICAgICAgLnNpeGNvbCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbjowO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLmp1aWNlckZlZWRTZWN0aW9uIHtcbiAgICBiYWNrZ3JvdW5kOiAkcmVkO1xuXG4gICAgLnNlY3Rpb25IZWFkZXIge1xuICAgICAgICBwYWRkaW5nOiAzZW0gMDtcblxuICAgICAgICAqIHtcbiAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICB9XG5cbiAgICAgICAgaDI6YmVmb3JlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgICAgIH1cblxuICAgICAgICAqOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGxpOmJlZm9yZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLmp1aWNlci1mZWVkLnNsaWRlciAuc2xpY2stcHJldiB7XG4gICAgICAgIHRvcDogMzAlO1xuICAgICAgICBcbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuanVpY2VyLWZlZWQuc2xpZGVyIC5zbGljay1uZXh0IHtcbiAgICAgICAgdG9wOiAzMCU7XG4gICAgICAgIFxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuICAgIH1cbn0iLCIubW9iaWxlLWJnIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDU4MHB4O1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJGxhcmdlLXNjcmVlbi11cCkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuLmF1dG9wbGF5LXZpZGVvIHtcbiAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJGxhcmdlLXNjcmVlbi11cCkge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxufVxuXG4gLmpvZWwtc3Rvcnkge1xuXHRiYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheTtcbiAgICAvLyBtYXJnaW4tdG9wOiAtMzBweDtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgICBwYWRkaW5nOiAwO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoICRsYXJnZS1zY3JlZW4tdXAgKSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgaGVpZ2h0OiA1MDBweDtcbiAgICB9XG59XG5cbi5qb2VsLWltYWdlLFxuLmpvZWwtY29udGVudCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5qb2VsLWltYWdlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIG1pbi1oZWlnaHQ6IDQ2MXB4O1xuICAgIHdpZHRoOiBwZXJjZW50YWdlKDEvMyk7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCRsYXJnZS1zY3JlZW4tdXApIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogMHB4O1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciB0b3A7XG4gICAgfVxufVxuXG4uam9lbC1jb250ZW50IHtcbiAgICBwYWRkaW5nOiAoJGJhc2Utc3BhY2luZyoyKSAkYmFzZS1zcGFjaW5nO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJG1lZGl1bS1zY3JlZW4tdXApIHtcbiAgICAgICAgcGFkZGluZzogMmVtIDEuNWVtO1xuICAgIH1cbiAgICBAaW5jbHVkZSBtZWRpYSgkbGFyZ2Utc2NyZWVuLXVwKSB7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybSggdHJhbnNsYXRlWSggLTUwJSApICk7XG4gICAgICAgIGxlZnQ6IHBlcmNlbnRhZ2UoMS8zKSsyLjUlO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6ICRiYXNlLXNwYWNpbmc7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIHdpZHRoOiBwZXJjZW50YWdlKDIvMyktMi41JTtcbiAgICB9XG59XG5cbi5qb2VsLXN0b3J5Lm5vLWltYWdlIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgLmpvZWwtY29udGVudCB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCRsYXJnZS1zY3JlZW4tdXApIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybSggdHJhbnNsYXRlWSggMCApICk7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZzogOGVtIDEuNWVtO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwODBweDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgLmpvZWwtY29udGVudC13cmFwIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmpvZWwtY29udGVudC13cmFwIHtcbiAgICBtYXgtd2lkdGg6IDc4MHB4O1xuXHQuYnV0dG9uIHtcblx0XHRtYXJnaW4tdG9wOiAkYmFzZS1zcGFjaW5nO1xuXHR9XG59XG5cbi5zdG9yaWVzIC5zdG9yeSB7XG5cdG1hcmdpbi1ib3R0b206ICRiYXNlLXNwYWNpbmcqMjtcblx0cGFkZGluZzogMCAkYmFzZS1zcGFjaW5nO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgYm9yZGVyOiBub25lO1xuXG5cdC5zdG9yeS1pbWFnZSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBcdG1hcmdpbi1ib3R0b206ICRzbWFsbC1zcGFjaW5nO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgfVxuXG5cdEBpbmNsdWRlIG1lZGlhKCRsYXJnZS1zY3JlZW4tdXApIHtcblx0XHRib3JkZXItcmlnaHQ6ICRiYXNlLWJvcmRlcjtcblx0XHRib3JkZXItY29sb3I6ICRtZWRpdW0tZ3JheTtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRmbG9hdDogbGVmdDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJGJhc2Utc3BhY2luZztcblx0XHR3aWR0aDogcGVyY2VudGFnZSgxLzMpO1xuXG4gICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgLy8gcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIC8vIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblx0fVxuXG5cdC5zdG9yeS10aXRsZSB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkYmFzZS1mb250LWZhbWlseTtcbiAgICAgICAgZm9udC1zaXplOiBlbSgyNCk7XG5cdFx0Zm9udC13ZWlnaHQ6IDcwMDtcblx0fVxufVxuXG4uc2xpY2stc2xpZGVyIHtcbiAgICAuc2xpY2stZG90cyB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKCB0cmFuc2xhdGVYKCAtNTAlICkgKTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICBib3R0b206IDBweDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgei1pbmRleDogNTA7XG4gICAgICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICAgICAgICBwYWRkaW5nOiAwO1xuXG4gICAgICAgID4gbGkge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDE1cHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDE1cHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICRyZWQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogNnB4O1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuXG4gICAgICAgICAgICAmOmZpcnN0LW9mLXR5cGUge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwcHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYuc2xpY2stYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcmVkO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgPiBsaSBidXR0b24ge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uc3R1ZHkgLndyYXAge1xuXHRAaW5jbHVkZSBvdXRlci1jb250YWluZXIoMTA4MHB4KTtcbn1cblxuLnN0dWR5LWhlYWRlciB7XG4gICAgbWFyZ2luLWJvdHRvbTogJHNtYWxsLXNwYWNpbmc7XG59XG5cbi5zdHVkeS1pbmZvIHtcblx0bWFyZ2luLWJvdHRvbTogJGJhc2Utc3BhY2luZztcblxuXHRAaW5jbHVkZSBtZWRpYSgkbGFyZ2Utc2NyZWVuLXVwKSB7XG5cdFx0QGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDcpO1xuXHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdH1cblxuXHQuc3R1ZHktdGl0bGUge1xuXHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdH1cblxuXHQuc3R1ZHktc3VidGl0bGUge1xuXHRcdGZvbnQtc2l6ZTogMjRweDtcblx0XHRmb250LXdlaWdodDogMTAwO1xuXHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG5cdH1cbn1cblxuLnN0dWR5LWltYWdlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIFxuICAgIEBpbmNsdWRlIG1lZGlhKCRsYXJnZS1zY3JlZW4tdXApIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg1KTtcbiAgICAgICAgQGluY2x1ZGUgb21lZ2E7XG5cdH1cblxuXHRpbWcge1xuXHRcdHdpZHRoOiAxMDAlO1xuXHR9XG59XG5cbi5zdHVkeS1mb290ZXIge1xuXHRtYXJnaW4tdG9wOiAkYmFzZS1zcGFjaW5nO1xufVxuIiwiLmJsb2cgLmNvbnRlbnQsXG4uc2luZ2xlIC5jb250ZW50IHtcblx0bWFyZ2luLWJvdHRvbTogNWVtO1xuXHRtYXJnaW4tdG9wOiA1ZW07XG5cblx0YXJ0aWNsZS5wb3N0IHtcblx0XHRtYXJnaW4tYm90dG9tOiAkYmFzZS1zcGFjaW5nKjI7XG5cblx0XHRAaW5jbHVkZSBtZWRpYSgkbGFyZ2Utc2NyZWVuLXVwKSB7XG5cdFx0XHRwYWRkaW5nOiAkYmFzZS1zcGFjaW5nIDA7XG5cdFx0fVxuXG5cdFx0JjpmaXJzdC1jaGlsZCB7XG5cdFx0XHRwYWRkaW5nLXRvcDogMDtcblx0XHR9XG5cdH1cbn1cblxuLmVudHJ5LXRpdGxlIHtcblx0Y29sb3I6ICRiYXNlLWZvbnQtY29sb3I7XG5cdG1hcmdpbi1ib3R0b206IDEwcHg7XG5cblx0YSB7XG5cdFx0Y29sb3I6ICRiYXNlLWZvbnQtY29sb3I7XG5cblx0XHQmOmhvdmVyIHtcblx0XHRcdGNvbG9yOiAkYWN0aW9uLWNvbG9yO1xuXHRcdH1cblx0fVxufVxuXG4uZW50cnktbWV0YSB7XG5cdHBhZGRpbmctdG9wOiAxMHB4O1xufVxuIiwiLmFyY2hpdmUucG9zdC10eXBlLWFyY2hpdmUsXG4uYXJjaGl2ZS53b29jb21tZXJjZSB7XG4gICAgLnN0dWR5LXdyYXAge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJGJhc2Utc3BhY2luZztcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSggJG1lZGl1bS1zY3JlZW4tdXAgKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoNik7XG4gICAgICAgICAgICBAaW5jbHVkZSBvbWVnYSgybik7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSggJGxhcmdlLXNjcmVlbi11cCApIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucygzKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIG9tZWdhLXJlc2V0KDJuKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIG9tZWdhKDRuKTtcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLnN0dWR5IHtcbiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbiAgICAgICAgbWluLWhlaWdodDogMjI1cHg7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAuc3R1ZHktc2xpZGUtbGluayB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMzAwbXMgJGJhc2UtdGltaW5nICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSggJHJlZCwgMC42KTtcblxuICAgICAgICAgICAgICAgIC5ob3Zlci1hcnJvdyB7XG4gICAgICAgICAgICAgICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAkYWN0aW9uLWNvbG9yO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGFjdGlvbi1jb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogNXB4O1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAzMDBtcyAkYmFzZS10aW1pbmc7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogNXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAtNXB4O1xuICAgICAgICAgICAgICAgICAgICByaWdodDogNXB4O1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC01cHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLnN0dWR5LWNvbnRlbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgYm90dG9tOiAkYmFzZS1zcGFjaW5nO1xuICAgICAgICAgICAgbGVmdDogJHNtYWxsLXNwYWNpbmc7XG4gICAgICAgICAgICByaWdodDogJHNtYWxsLXNwYWNpbmc7XG5cbiAgICAgICAgICAgIC5ob3Zlci1hcnJvdyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHdoaXRlO1xuICAgICAgICAgICAgICAgIGhlaWdodDogNDBweDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgYXV0byAkYmFzZS1zcGFjaW5nKjEuNzU7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAzMDBtcyAkYmFzZS10aW1pbmcgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgd2lkdGg6IDQwcHg7XG5cbiAgICAgICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGUoLTUwJSwgLTUwJSkpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5jbHMtMSB7XG4gICAgICAgICAgICAgICAgICAgIGZpbGw6IHdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnN0dWR5LXRpdGxlIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuc3R1ZHktdGl0bGUge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogZW0oMjBweCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgIH1cbn1cbiIsIi5hcmNoaXZlIC5jb250ZW50IHtcblx0bWFyZ2luLWJvdHRvbTogNWVtO1xuXHRtYXJnaW4tdG9wOiA1ZW07XG5cblx0YXJ0aWNsZS5wb3N0IHtcblx0XHRtYXJnaW4tYm90dG9tOiAkYmFzZS1zcGFjaW5nKjI7XG5cblx0XHRAaW5jbHVkZSBtZWRpYSgkbGFyZ2Utc2NyZWVuLXVwKSB7XG5cdFx0XHRwYWRkaW5nOiAkYmFzZS1zcGFjaW5nIDA7XG5cdFx0fVxuXG5cdFx0JjpmaXJzdC1jaGlsZCB7XG5cdFx0XHRwYWRkaW5nLXRvcDogMDtcblx0XHR9XG5cdH1cbn1cbiIsIi5fZm9ybS1jb250ZW50IHtcbiAgICBpbnB1dCB7XG4gICAgICAgIGNvbG9yOiAkZGFyay1ncmF5O1xuICAgIH1cbn1cbiIsIi5lbnRyeS1jb250ZW50IHVsLnRtbC1hY3Rpb24tbGlua3MgPiBsaTpiZWZvcmUge1xuXHRjb250ZW50OiBcIlwiO1xufVxuIiwiLnRlYW0tbWVtYmVycyB7XG5cdHBhZGRpbmc6IDVlbSAwO1xufVxuXG4udGVhbS1tZW1iZXIge1xuXHRtYXJnaW4tYm90dG9tOiAkYmFzZS1zcGFjaW5nO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cblx0QGluY2x1ZGUgbWVkaWEoJGxhcmdlLXNjcmVlbi11cCkge1xuXHRcdEBpbmNsdWRlIHNwYW4tY29sdW1ucyg0KTtcblx0XHRAaW5jbHVkZSBvbWVnYSgzbik7XG5cdH1cblxuXHRpbWcge1xuXHRcdGJvcmRlcjogM3B4IHNvbGlkICRsaWdodC1ncmF5O1xuXHRcdG1hcmdpbi1ib3R0b206IDEwcHg7XG5cdH1cblxuXHRoNCxcblx0cCB7XG5cdFx0bWFyZ2luOiAwO1xuXHR9XG5cblx0LmJ1dHRvbiB7XG5cdFx0bWFyZ2luLXRvcDogMTBweDtcblx0fVxufVxuXG4uc2luZ2xlLXRlYW0tbWVtYmVyIHtcblx0QGluY2x1ZGUgb3V0ZXItY29udGFpbmVyO1xuXG5cdC50ZWFtLWltYWdlIHtcblxuXHRcdEBpbmNsdWRlIG1lZGlhKCRsYXJnZS1zY3JlZW4tdXApIHtcblx0XHRcdEBpbmNsdWRlIHNwYW4tY29sdW1ucyg0KTtcblx0XHR9XG5cblx0XHRpbWcge1xuXHRcdFx0Ym9yZGVyOiAzcHggc29saWQgJGxpZ2h0LWdyYXk7XG5cdFx0fVxuXHR9XG5cblx0LnRlYW0taW5mbyB7XG5cblx0XHRAaW5jbHVkZSBtZWRpYSgkbGFyZ2Utc2NyZWVuLXVwKSB7XG5cdFx0XHRAaW5jbHVkZSBzcGFuLWNvbHVtbnMoOCk7XG5cdFx0XHRAaW5jbHVkZSBvbWVnYTtcblx0XHR9XG5cdH1cblxuXHQudGVhbS1waG9uZSxcblx0LnRlYW0tZW1haWwge1xuXHRcdG1hcmdpbi1ib3R0b206IDEwcHg7XG5cblx0XHRsYWJlbCB7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHRcdH1cblx0fVxufVxuIiwiLnNpbmdsZS1zdHVkeSB7XG5cbiAgICAudmlkLXNlY3Rpb24tdGl0bGUge1xuICAgICAgICBmb250LXNpemU6IGVtKDQ4cHgpO1xuICAgICAgICAvLyBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cblxuICAgIC52aWQtc2VjdGlvbi1zdWItdGl0bGUge1xuICAgICAgICBmb250LWZhbWlseTogJGJhc2UtZm9udC1mYW1pbHk7XG4gICAgICAgIGZvbnQtc2l6ZTogZW0oMjRweCk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAxMDA7XG4gICAgfVxuXG4gICAgLmNvbnRlbnQge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgLy8gVGhlIHN1bW1hcnkgdmlkZW8gc2l6aW5nIGFuZCBwb3NpdGlvbmluZ1xuICAgIC5zdW1tYXJ5LXZpZGVvIHtcbiAgICAgICAgbWFyZ2luLXRvcDogJGJhc2Utc3BhY2luZyoyO1xuXG4gICAgICAgIC8vIEBpbmNsdWRlIG1lZGlhKCAkbWVkaXVtLXNjcmVlbi11cCkge1xuICAgICAgICAvLyAgICAgbWFyZ2luLXRvcDogLTYwcHg7XG4gICAgICAgIC8vIH1cblxuICAgICAgICAud2lzdGlhLXZpZGVvLXdyYXAge1xuICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDgxNXB4O1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAubG93ZXItcGFydCB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgbWFyZ2luLXRvcDogJGJhc2Utc3BhY2luZztcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoICRsYXJnZS1zY3JlZW4tdXAgKSB7XG4gICAgICAgICAgICBtYXJnaW46ICRiYXNlLXNwYWNpbmcqMyAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gTGVmdCBjb2x1bW4gc2l6aW5nXG4gICAgLmxlZnQtY29sdW1uIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoICRsYXJnZS1zY3JlZW4tdXAgKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoOCk7XG4gICAgICAgIH1cblxuICAgICAgICAuaW5uZXItbGVmdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSggJGxhcmdlLXNjcmVlbi11cCkge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogOTAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gUmlnaHQgY29sdW1uIHNpemluZ1xuICAgIC5yaWdodC1jb2x1bW4ge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSggJGxhcmdlLXNjcmVlbi11cCApIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg0KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIExlZnQgc2lkZSBHcm91cCBWaWRlbyBTdHlsZXNcbiAgICAuZ3JvdXAtdmlkZW8ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoICRtZWRpdW0tc2NyZWVuLXVwICkge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogJHNtYWxsLXNwYWNpbmc7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNtYWxsLXNwYWNpbmc7XG4gICAgICAgICAgICB3aWR0aDogMjc1cHg7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDUwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAkYWN0aW9uLWNvbG9yO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRhY3Rpb24tY29sb3I7XG4gICAgICAgICAgICBwYWRkaW5nOiA1cHg7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDVweDtcbiAgICAgICAgICAgIGxlZnQ6IC01cHg7XG4gICAgICAgICAgICByaWdodDogNXB4O1xuICAgICAgICAgICAgYm90dG9tOiAtNXB4O1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDMwMG1zICRiYXNlLXRpbWluZyAhaW1wb3J0YW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlciB7XG5cbiAgICAgICAgICAgIC5vdmVybGluayB7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC45O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAkZGFyay1yZWQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRkYXJrLXJlZDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgICAgIC5vdmVybGluayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCAkcmVkLCAwLjQpO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDMwMG1zICRiYXNlLXRpbWluZyAhaW1wb3J0YW50O1xuXG4gICAgICAgICAgICAubGluay10ZXh0IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlKC01MCUsIC01MCUpKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6ICRzbWFsbC1zcGFjaW5nO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDkwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5wbGF5LXdyYXAge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgICAgYm9yZGVyOiAycHggc29saWQgd2hpdGU7XG4gICAgICAgICAgICBoZWlnaHQ6IDQ1cHg7XG4gICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiA0NXB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLnBsYXktYnV0dG9uIHtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAzMDBtcyAkYmFzZS10aW1pbmc7XG4gICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGUoLTUwJSwgLTUwJSkpO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgICAgICAgICBsZWZ0OiA1NSU7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnN1bW1hcnkge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkYmFzZS1zcGFjaW5nKjI7XG4gICAgICAgIG1hcmdpbi10b3A6ICRiYXNlLXNwYWNpbmc7XG4gICAgfVxuXG4gICAgLy8gSW5mbyBhbmQgTGluayBzZWN0aW9uXG4gICAgLmluZm8tbGluayB7XG4gICAgICAgIHBhZGRpbmc6ICRiYXNlLXNwYWNpbmcqMjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGxpZ2h0LWdyYXk7XG4gICAgfVxuXG4gICAgLy8gQ2hlY2tsaXN0IG9uIHRoZSByaWdodCBzaWRlXG4gICAgLmNoZWNrbGlzdCB7XG5cbiAgICAgICAgYmFja2dyb3VuZDogJGxpZ2h0LXJlZDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJGJhc2Utc3BhY2luZyoyO1xuICAgICAgICBtYXJnaW4tdG9wOiAkYmFzZS1zcGFjaW5nKjI7XG4gICAgICAgIHBhZGRpbmctdG9wOiAkYmFzZS1zcGFjaW5nKjI7XG4gICAgICAgIHBhZGRpbmc6ICRiYXNlLXNwYWNpbmcqMjtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSggJGxhcmdlLXNjcmVlbi11cCApIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuaGFzLXZpZGVvLWFib3ZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCAkbGFyZ2Utc2NyZWVuLXVwICkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IC0kYmFzZS1zcGFjaW5nKjY7XG4gICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDEwZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuXG4gICAgICAgIC52aWQtc2VjdGlvbi10aXRsZSxcbiAgICAgICAgLnZpZC1zZWN0aW9uLXN1Yi10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAudmlkLXNlY3Rpb24tdGl0bGUge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtKDEwcHgpO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgIH1cblxuICAgICAgICAuY2hlY2staXRlbSB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgJHJlZDtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzbWFsbC1zcGFjaW5nIDA7XG5cbiAgICAgICAgICAgICY6bGFzdC1vZi10eXBlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuaXRlbSB7XG4gICAgICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBmb250LXNpemU6IGVtKDE0cHgpO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDQwcHg7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiA0MHB4O1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSggJG1lZGl1bS1zY3JlZW4tdXAgKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDEwcHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCAkbGFyZ2Utc2NyZWVuLXVwICkge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAycHggc29saWQgd2hpdGU7XG4gICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAzMHB4O1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtNDBweDtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiA1cHg7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDMwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAucHJpbnQtc2luZ2xlLXN0dWR5IHtcbiAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogZW0oMjBweCk7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiByZW0oMzBweCk7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uLWNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIEJvdHRvbSBvZiB0aGUgcGFnZSByZXNvdXJjZSBzdHlsaW5nLlxuXG4gICAgLnJlc291cmNlcyB7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblxuICAgICAgICAudmlkLXNlY3Rpb24tdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICAgICAgcGFkZGluZzogJGJhc2Utc3BhY2luZyAwO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnJlc291cmNlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSggJHJlZCwgMC42ICk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRiYXNlLXNwYWNpbmc7XG4gICAgICAgIHBhZGRpbmc6ICRiYXNlLXNwYWNpbmc7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAzMDBtcyAkYmFzZS10aW1pbmc7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoICRtZWRpdW0tc2NyZWVuLXVwICkge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgb21lZ2EoM24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcmVkO1xuICAgICAgICAgICAgLnVuaG92ZXJlZCB7XG4gICAgICAgICAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuaG92ZXJlZCB7XG4gICAgICAgICAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC51bmhvdmVyZWQge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAzMDBtcyAkYmFzZS10aW1pbmc7XG5cbiAgICAgICAgICAgIC5kb3dubG9hZC1pY29uIHtcbiAgICAgICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDYwcHg7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogJGJhc2Utc3BhY2luZyoyIDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICAgICAgLmhvdmVyZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZVkoLTUwJSkpO1xuICAgICAgICAgICAgbGVmdDogJGJhc2Utc3BhY2luZztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHJpZ2h0OiAkYmFzZS1zcGFjaW5nO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDMwMG1zICRiYXNlLXRpbWluZztcbiAgICAgICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcblxuICAgICAgICAgICAgcCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNtYWxsLXNwYWNpbmc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogJHNtYWxsLXNwYWNpbmc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAud2hpdGUtYnV0dG9uIGEge1xuICAgICAgICAgICAgZm9udC1zaXplOiBlbSgxNHB4KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5yZXNvdXJjZS10aXRsZSxcbiAgICAgICAgcCB7XG4gICAgICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLnJlc291cmNlLXRpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAxMDA7XG4gICAgICAgICAgICBmb250LXNpemU6IGVtKDI2cHgpO1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRiYXNlLWZvbnQtZmFtaWx5O1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAucmVzb3VyY2VzLXdyYXBwZXIge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRiYXNlLXNwYWNpbmcqMjtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG59XG4iLCJcbi5wb3J0YWwtc2VjdGlvbiB7XG4gICAgcGFkZGluZzogJGJhc2Utc3BhY2luZyAwO1xufVxuXG4ucGFnZS10ZW1wbGF0ZS10ZW1wbGF0ZS1jaHVyY2gtcG9ydGFsIHtcbiAgICAuc2l0ZS1pbm5lciB7XG4gICAgICAgIG1hcmdpbjogJGJhc2Utc3BhY2luZyoyIDA7XG4gICAgfVxufVxuXG4vLyBCYXNpYyBzbGlkZXIgc2V0IHVwXG4ucG9ydGFsLXNlY3Rpb24ge1xuXG4gICAgLnBvcnRhbC1zdHVkaWVzLXdyYXAsXG4gICAgLnBvcnRhbC10ZWNoLXdyYXAsXG4gICAgLnBvcnRhbC1ibG9nLXBvc3RzLXdyYXAsXG4gICAgLnBvcnRhbC1ibG9nLXBvZGNhc3Qtd3JhcCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAubGVmdC1hcnJvdyxcbiAgICAgICAgLnJpZ2h0LWFycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZSgwLCAtNTAlKSk7XG4gICAgICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG5cbiAgICAgICAgICAgIEBtZWRpYSggbWluLXdpZHRoOiAxMjAwcHggKSB7XG4gICAgICAgICAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICAvLyB3aWR0aDogMTAwcHg7XG4gICAgICAgICAgICAgICAgLy8gaGVpZ2h0OiAxMjVweDtcbiAgICAgICAgICAgICAgICBwb2x5bGluZSB7XG4gICAgICAgICAgICAgICAgICAgIHN0cm9rZTogJHJlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIH1cblxuXG4gICAgICAgIH1cblxuICAgICAgICAubGVmdC1hcnJvdyB7XG4gICAgICAgICAgICBsZWZ0OiAtNjVweDtcbiAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHJvdGF0ZSgxODBkZWcpKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoICRtZWRpdW0tc2NyZWVuLXVwICkge1xuICAgICAgICAgICAgICAgIGxlZnQ6IC00NXB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLnJpZ2h0LWFycm93IHtcbiAgICAgICAgICAgIHJpZ2h0OiAtNjVweDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoICRtZWRpdW0tc2NyZWVuLXVwICkge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAtNDVweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxufVxuXG4vLyBTbGlkZXIgU2xpZGUgU3R5bGVzXG4ucG9ydGFsLXNlY3Rpb24uc3R1ZGllcy1zbGlkZXItc2VjdGlvbixcbi5wb3J0YWwtc2VjdGlvbi50ZWNoLXNsaWRlci1zZWN0aW9uIHtcblxuICAgIC5zdHVkeS1zbGlkZSxcbiAgICAudGVjaC1zbGlkZSB7XG4gICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDIyNXB4O1xuICAgIH1cblxuICAgIC8qIHRoZSBzbGlkZXMgKi9cbiAgICAuc2xpY2stc2xpZGUge1xuICAgICAgICBtYXJnaW46IDAgJHNtYWxsLXNwYWNpbmc7XG4gICAgfVxuICAgIC8qIHRoZSBwYXJlbnQgKi9cbiAgICAuc2xpY2stbGlzdCB7XG4gICAgICAgIG1hcmdpbjogMCAtJHNtYWxsLXNwYWNpbmc7XG4gICAgfVxuXG4gICAgLnNsaWNrLWRvdHMge1xuICAgICAgICBib3R0b206IC0kYmFzZS1zcGFjaW5nKjI7XG5cbiAgICAgICAgbGkge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgYnV0dG9uOmJlZm9yZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgICAgIGhlaWdodDogNXB4O1xuICAgICAgICAgICAgd2lkdGg6IDVweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5zbGljay1hY3RpdmUgYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRyZWQ7XG4gICAgICAgIH1cbiAgICB9XG5cbn1cblxuLy8gU3R1ZGllcyBTbGlkZXIgU2V0dXBcbi5wb3J0YWwtc2VjdGlvbi5zdHVkaWVzLXNsaWRlci1zZWN0aW9uIHtcbiAgICAuc3R1ZHktc2xpZGUge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgLnN0dWR5LXNsaWRlLWxpbmsge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDMwMG1zICRiYXNlLXRpbWluZyAhaW1wb3J0YW50O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoICRyZWQsIDAuNik7XG5cbiAgICAgICAgICAgICAgICAuaG92ZXItYXJyb3cge1xuICAgICAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5zdHVkeS1zbGlkZS1jb250ZW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGJvdHRvbTogJGJhc2Utc3BhY2luZztcbiAgICAgICAgICAgIGxlZnQ6ICRzbWFsbC1zcGFjaW5nO1xuICAgICAgICAgICAgcmlnaHQ6ICRzbWFsbC1zcGFjaW5nO1xuXG4gICAgICAgICAgICAuaG92ZXItYXJyb3cge1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCB3aGl0ZTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG8gJGJhc2Utc3BhY2luZyoxLjc1O1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMzAwbXMgJGJhc2UtdGltaW5nICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgICAgIHdpZHRoOiA0MHB4O1xuXG4gICAgICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlKC01MCUsIC01MCUpKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAuY2xzLTEge1xuICAgICAgICAgICAgICAgICAgICBmaWxsOiB3aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5zbGlkZS10aXRsZSB7XG4gICAgICAgICAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnNsaWRlLXRpdGxlIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IGVtKDIwcHgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyBUZWNoIFNsaWRlciBTZXR1cFxuLnBvcnRhbC1zZWN0aW9uLnRlY2gtc2xpZGVyLXNlY3Rpb24ge1xuICAgIC50ZWNoLXNsaWRlIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIC50ZWNoLXNsaWRlLWxpbmsge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDMwMG1zICRiYXNlLXRpbWluZyAhaW1wb3J0YW50O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogd2hpdGU7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoICRyZWQsIDAuNik7XG5cbiAgICAgICAgICAgICAgICAudW5ob3ZlcmVkIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAuaG92ZXJlZCB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5zbGlkZS10aXRsZSxcbiAgICAgICAgLnNsaWRlLWJsdXJiIHtcbiAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICAudW5ob3ZlcmVkLFxuICAgICAgICAuaG92ZXJlZCB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAudW5ob3ZlcmVkIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZzogJHNtYWxsLXNwYWNpbmc7XG4gICAgICAgICAgICBib3R0b206ICRiYXNlLXNwYWNpbmc7XG4gICAgICAgIH1cblxuICAgICAgICAuaG92ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgcGFkZGluZzogJHNtYWxsLXNwYWNpbmc7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSk7XG5cbiAgICAgICAgICAgIHAge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgfVxufVxuXG4vLyBTZXQgdXAgdGhlIGNvbWluZyBzb29uIHNlY3Rpb25zIGFuZCBkaXZzXG4ucG9ydGFsLXJlc291cmNlIHtcbiAgICAuY29taW5nLXNvb24ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGFya2lzaC1ncmF5O1xuICAgICAgICBoMyB7XG4gICAgICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgICAgICBmb250LWZhbWlseTogJGJhc2UtZm9udC1mYW1pbHk7XG4gICAgICAgICAgICBmb250LXNpemU6IGVtKDMwcHgpO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiAkYmFzZS1zcGFjaW5nKi43NTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuXG4ucG9ydGFsLXJlc291cmNlIHtcbiAgICAuZmlmdHktcmVzb3VyY2Uge1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkYmFzZS1zcGFjaW5nO1xuICAgICAgICBtaW4taGVpZ2h0OiAzMjVweDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCAkbWVkaXVtLXNjcmVlbi11cCApIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg2KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIG9tZWdhKDJuKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5yZXNvdXJjZS1jb250ZW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogJGJhc2Utc3BhY2luZztcbiAgICAgICAgICAgIGxlZnQ6ICRiYXNlLXNwYWNpbmc7XG4gICAgICAgICAgICByaWdodDogJGJhc2Utc3BhY2luZztcbiAgICAgICAgfVxuXG4gICAgICAgIC5yZXNvdXJjZS1wcmV0ZXh0LFxuICAgICAgICAucmVzb3VyY2UtdGl0bGUge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5yZXNvdXJjZS1wcmV0ZXh0IHtcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAkYmFzZS1mb250LWZhbWlseTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogZW0oMThweCk7XG4gICAgICAgICAgICBmb250LXdlaWdodDogMTAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLnJlc291cmNlLXRpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogZW0oNDBweCk7XG4gICAgICAgIH1cblxuICAgICAgICAucmVzb3VyY2Uge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDMwMG1zICRiYXNlLXRpbWluZyAhaW1wb3J0YW50O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAuY29taW5nLWNvbnRlbnQge1xuICAgICAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5hdmFsaWFibGUge1xuICAgICAgICAgICAgLnJlc291cmNlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCAkcmVkLCAwLjcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAucmVzb3VyY2Uge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCAkcmVkLCAwLjgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYuY29taW5nIHtcbiAgICAgICAgICAgIC5jb21pbmctY29udGVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSggJGRhcmtpc2gtZ3JheSwgMC43KTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHZpc2liaWxpdHk6IHZpc2libGUgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAgICAgICAgIGg0IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRiYXNlLWZvbnQtZmFtaWx5O1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IGVtKDQwcHgpO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICB9XG59XG4iLCIkc3ZnLWJ0bi1jb2xvcjogIzQ3NDc0NztcblxuLmRhc2gtdGVtcGxhdGUge1xuXG4gICAgLnNpdGUtaW5uZXIge1xuICAgICAgICBtYXJnaW4tdG9wOiAkYmFzZS1zcGFjaW5nKjM7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRiYXNlLXNwYWNpbmcqMjtcbiAgICB9XG5cbiAgICAuZGFzaC1oZWFkZXIge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRiYXNlLXNwYWNpbmc7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgIC5kYXNoLXN1Yi10aXRsZSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLmxlZnQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCAkbWVkaXVtLXNjcmVlbi11cCApIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoNik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAucmlnaHQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSggJG1lZGl1bS1zY3JlZW4tdXAgKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg2KTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBvbWVnYSgpO1xuXG4gICAgICAgICAgICAgICAgLmJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAuZGFzaC1sZWFkZXJzLCAuZGFzaC1tZW1iZXJzIHtcbiAgICAgICAgY2xlYXI6IGJvdGg7XG5cbiAgICAgICAgLmZpcnN0LFxuICAgICAgICAuc2Vjb25kIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRzbWFsbC1zcGFjaW5nO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSggJGxhcmdlLXNjcmVlbi11cCApIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMzcuNSU7XG4gICAgICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMHB4O1xuXG4gICAgICAgICAgICAgICAgaW5wdXQge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogOTAlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpbnB1dCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGRhc2gtZ3JheTtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgd2hpdGUgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRiYXNlLWZvbnQtZmFtaWx5O1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAxMDA7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogJHNtYWxsLXNwYWNpbmcvNDtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBsYWJlbCB7XG4gICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRoZWFkaW5nLWZvbnQtZmFtaWx5O1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAudGhpcmQge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSggJGxhcmdlLXNjcmVlbi11cCApIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMjUlO1xuICAgICAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAudGhpcmQtY29udGVudCB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5ncmF5LWJveCB7XG4gICAgICAgIHBhZGRpbmc6ICRiYXNlLXNwYWNpbmc7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRzbWFsbC1zcGFjaW5nLzI7XG5cbiAgICAgICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCAkbGFyZ2Utc2NyZWVuLXVwICkge1xuICAgICAgICAgICAgcGFkZGluZzogJGJhc2Utc3BhY2luZyAwICRiYXNlLXNwYWNpbmcgJGJhc2Utc3BhY2luZyoyIDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5kYXNoLWZvb3RlciB7XG5cbiAgICAgICAgbWFyZ2luLXRvcDogJHNtYWxsLXNwYWNpbmc7XG5cbiAgICAgICAgYSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG59XG5cbi5jaXJjbGUtc3ZnLWJ0biB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbi1yaWdodDogJHNtYWxsLXNwYWNpbmc7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAzMDBtcyAkYmFzZS10aW1pbmc7XG5cbiAgICAuc3ZnLXdyYXAge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc3ZnLWJ0bi1jb2xvcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICBoZWlnaHQ6IDMwcHg7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvICRzbWFsbC1zcGFjaW5nLzI7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgd2lkdGg6IDMwcHg7XG5cbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIGZpbGw6IHdoaXRlO1xuICAgICAgICAgICAgd2lkdGg6IDE1cHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDE1cHg7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybSggdHJhbnNsYXRlKCAtNTAlLCAtNTAlICkgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5idXR0b24tdGV4dCB7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGZvbnQtc2l6ZTogZW0oMTRweCk7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkaGVhZGluZy1mb250LWZhbWlseTtcbiAgICAgICAgY29sb3I6ICRibGFjaztcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgb3BhY2l0eTogMC44O1xuICAgIH1cblxuICAgICYucmV2b2tlLWJ1dHRvbiB7XG4gICAgICAgIG9wYWNpdHk6IDAuNjtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAzMDBtcyAkYmFzZS10aW1pbmc7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBvcGFjaXR5OiAxLjA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLnBlbmRpbmctYnV0dG9uIHtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgb3BhY2l0eTogMC42O1xuICAgIH1cbn1cblxuLmFkZC1sZWFkZXItYnV0dG9uLCAuYWRkLW1lbWJlci1idXR0b24ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBAaW5jbHVkZSBtZWRpYSggJGxhcmdlLXNjcmVlbi11cCApIHtcbiAgICAgICAgbWFyZ2luLXRvcDogNHB4O1xuICAgIH1cblxuICAgIGlucHV0W3R5cGU9J2J1dHRvbiddIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgLnBsdXMtc3ZnLW91dGVyLXdyYXAge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6ICRzbWFsbC1zcGFjaW5nO1xuICAgICAgICB0b3A6IDZweDtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoICRsYXJnZS1zY3JlZW4tdXAgKSB7XG4gICAgICAgICAgICB0b3A6IDhweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wbHVzLXN2Zy13cmFwIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgaGVpZ2h0OiAzMHB4O1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB3aWR0aDogMzBweDtcbiAgICAgICAgei1pbmRleDogMTA7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMzAwbXMgJGJhc2UtdGltaW5nO1xuXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICBmaWxsOiAkcmVkO1xuICAgICAgICAgICAgd2lkdGg6IDE1cHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDE1cHg7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybSggdHJhbnNsYXRlKCAtNTAlLCAtNTAlICkgKTtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMzAwbXMgJGJhc2UtdGltaW5nO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIC5wbHVzLXN2Zy13cmFwIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbih3aGl0ZSwgMTAlKTtcbiAgICAgICAgfVxuICAgIH1cblxufVxuXG4uZ2xtLWFkZC1sZWFkZXIsIC5nbG0tYWRkLW1lbWJlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uZ2xtLXN0YXR1cy1vdmVybGF5IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LDE2NSwwLDAuMCk7XG4gICAgei1pbmRleDogMTE7XG4gICAgZGlzcGxheTogbm9uZTtcblxuICAgICZbZGF0YS1nbG0tc3RhdHVzPVwicHJvY2Vzc2luZ1wiXSB7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LDE2NSwwLDAuOCk7XG4gICAgfVxuXG4gICAgJltkYXRhLWdsbS1zdGF0dXM9XCJlcnJvclwiXSB7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LDAsMCwwLjgpO1xuICAgIH1cblxuICAgIC5zdGF0dXMge1xuICAgICAgICBmb250LXNpemU6IDEuNWVtO1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSA0MHB4KTtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSk7XG4gICAgfVxufVxuXG4jZ2xtLWFkZC1sZWFkZXItY2xvbmUsXG4jZ2xtLWFkZC1tZW1iZXItY2xvbmUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uZ2xtLXJldm9rZS1sZWFkZXItYWN0aW9uLFxuLmdsbS1yZXZva2UtbWVtYmVyLWFjdGlvbntcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uZ2xtLWxlYWRlci1oaWRlLFxuLmdsbS1tZW1iZXItaGlkZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8vIEJhc2UgR3JheSBCb3ggc3R5bGUgY2FuIGJlIHVzZWQgYW55d2hlcmUuXG4uZ3JheS1ib3gge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRkYXNoLWdyYXk7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xufVxuIiwiLnNpbmdsZS1zdHVkeS5zaW5nbGUtdmlkZW8tcmVzb3VyY2Uge1xuXG4gICAgLy8gTGVmdCBjb2x1bW4gc2l6aW5nXG4gICAgLmxlZnQtY29sdW1uIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGZsb2F0OiBub25lO1xuXG4gICAgICAgIC5pbm5lci1sZWZ0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCAkbGFyZ2Utc2NyZWVuLXVwKSB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmxvd2VyLXBhcnQge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMHB4O1xuICAgIH1cblxufVxuIiwiI2dyb3VwLWNvbm5lY3Qtc2VjdGlvbnMge1xuXG5cdC5zdHVkaWVzLXNsaWRlci1zZWN0aW9uLFxuXHQudGVjaC1zbGlkZXItc2VjdGlvbixcblx0Lmp1aWNlci1zZWN0aW9uIHtcblx0XHRwYWRkaW5nOiAwO1xuXHRcdG1hcmdpbi10b3A6IDVlbTtcblx0XHRtYXJnaW4tYm90dG9tOiA1ZW07XG5cdH1cblxuXHQuanVpY2VyLXNlY3Rpb24ge1xuXG5cdFx0YnV0dG9ue1xuXHRcdFx0LXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwKTtcblx0XHQgICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlKDApO1xuXHRcdCAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwKTtcblxuXHRcdFx0JjpiZWZvcmUge1xuXHRcdFx0XHRib3JkZXI6IG5vbmU7XG5cdFx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdFx0dG9wOiAwO1xuXHRcdFx0XHRsZWZ0OiAwO1xuXHRcdFx0XHRib3R0b206IDA7XG5cdFx0XHRcdHJpZ2h0OiAwO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufSIsIiNhZGRfcGF5bWVudF9tZXRob2QgLndjLXByb2NlZWQtdG8tY2hlY2tvdXQgYS5jaGVja291dC1idXR0b24sIC53b29jb21tZXJjZS1jYXJ0IC53Yy1wcm9jZWVkLXRvLWNoZWNrb3V0IGEuY2hlY2tvdXQtYnV0dG9uLCAud29vY29tbWVyY2UtY2hlY2tvdXQgLndjLXByb2NlZWQtdG8tY2hlY2tvdXQgYS5jaGVja291dC1idXR0b24sXG4uc2luZ2xlX2FkZF90b19jYXJ0X2J1dHRvbiwgLndvb2NvbW1lcmNlICNwYXltZW50ICNwbGFjZV9vcmRlciwgLndvb2NvbW1lcmNlLXBhZ2UgI3BheW1lbnQgI3BsYWNlX29yZGVyLCAud29vY29tbWVyY2UtcGFnZSAud29vY29tbWVyY2UgaW5wdXQuYnV0dG9uIHtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRhY3Rpb24tY29sb3IgIWltcG9ydGFudDtcbiAgICBib3JkZXItcmFkaXVzOiAwICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyOiAwO1xuICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmb250LWZhbWlseTogJGJhc2UtZm9udC1mYW1pbHkgIWltcG9ydGFudDtcbiAgICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZSAhaW1wb3J0YW50O1xuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDAgIWltcG9ydGFudDtcbiAgICBsaW5lLWhlaWdodDogMSAhaW1wb3J0YW50O1xuICAgIG1hcmdpbjogMCA1cHggMTVweCAwICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogJHNtYWxsLXNwYWNpbmcrMC4yNSAkYmFzZS1zcGFjaW5nKjIgIWltcG9ydGFudDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAzMDBtcyAkYmFzZS10aW1pbmc7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAkYWN0aW9uLWNvbG9yO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGFjdGlvbi1jb2xvcjtcbiAgICAgICAgcGFkZGluZzogNXB4O1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAzMDBtcyAkYmFzZS10aW1pbmc7XG4gICAgICAgIHRvcDogNXB4O1xuICAgICAgICBsZWZ0OiAtNXB4O1xuICAgICAgICByaWdodDogNXB4O1xuICAgICAgICBib3R0b206IC01cHg7XG4gICAgfVxuXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGRhcmstcmVkICFpbXBvcnRhbnQ7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgJGRhcmstcmVkO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRkYXJrLXJlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICY6ZGlzYWJsZWQge1xuICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYWN0aW9uLWNvbG9yO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5kYXJrIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGRhcmstZ3JheTtcbiAgICAgICAgY29sb3I6ICNmZmY7XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAkZGFyay1ncmF5O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRkYXJrLWdyYXk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRibGFjaztcbiAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xuXG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAkYmxhY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRibGFjaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICYubGlnaHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICAgICAgY29sb3I6ICRibGFjaztcblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2ZmZjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZmZmO1xuICAgICAgICAgICAgcGFkZGluZzogNXB4O1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDMwMG1zICRiYXNlLXRpbWluZztcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IC01cHg7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogLTVweDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGxpZ2h0LWdyYXk7XG4gICAgICAgICAgICBjb2xvcjogJGJsYWNrO1xuXG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAkbGlnaHQtZ3JheTtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGxpZ2h0LWdyYXk7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5zbWFsbCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgcGFkZGluZzogJHNtYWxsLXNwYWNpbmcgJHNtYWxsLXNwYWNpbmcqMjtcblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG59XG5cbi53b29jb21tZXJjZS1jYXJ0IC53Yy1wcm9jZWVkLXRvLWNoZWNrb3V0IGEuY2hlY2tvdXQtYnV0dG9uLCB7XG4gICAgd2lkdGg6IDEwMCU7XG59XG4iLCIud29vLWNhdGVnb3J5LXNlY3Rpb24ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGNsZWFyOiBib3RoO1xuICAgIG1hcmdpbi1ib3R0b206ICRiYXNlLXNwYWNpbmcqMztcbn1cblxuLndvby1jYXRlZ29yeS1zbGlkZXItd3JhcHBlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgLmxlZnQtYXJyb3csXG4gICAgLnJpZ2h0LWFycm93IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZSgwLCAtNTAlKSk7XG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgQG1lZGlhKCBtaW4td2lkdGg6IDEyMDBweCApIHtcbiAgICAgICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBzdmcge1xuICAgICAgICAgICAgcG9seWxpbmUge1xuICAgICAgICAgICAgICAgIHN0cm9rZTogJHJlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmxlZnQtYXJyb3cge1xuICAgICAgICBsZWZ0OiAtNjVweDtcblxuICAgICAgICBzdmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHJvdGF0ZSgxODBkZWcpKTtcbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBtZWRpYSggJG1lZGl1bS1zY3JlZW4tdXAgKSB7XG4gICAgICAgICAgICBsZWZ0OiAtNDVweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5yaWdodC1hcnJvdyB7XG4gICAgICAgIHJpZ2h0OiAtNjVweDtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoICRtZWRpdW0tc2NyZWVuLXVwICkge1xuICAgICAgICAgICAgcmlnaHQ6IC00NXB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmNhdGVnb3J5LXNsaWRlIHtcbiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgbWluLWhlaWdodDogMjI1cHg7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAuY2F0ZWdvcnktc2xpZGUtbGluayB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMzAwbXMgJGJhc2UtdGltaW5nICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSggJHJlZCwgMC42KTtcblxuICAgICAgICAgICAgICAgIC5ob3Zlci1hcnJvdyB7XG4gICAgICAgICAgICAgICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLnNsaWRlLWNvbnRlbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgYm90dG9tOiAkYmFzZS1zcGFjaW5nO1xuICAgICAgICAgICAgbGVmdDogJHNtYWxsLXNwYWNpbmc7XG4gICAgICAgICAgICByaWdodDogJHNtYWxsLXNwYWNpbmc7XG5cbiAgICAgICAgICAgIC5ob3Zlci1hcnJvdyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHdoaXRlO1xuICAgICAgICAgICAgICAgIGhlaWdodDogNDBweDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgYXV0byAkYmFzZS1zcGFjaW5nO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMzAwbXMgJGJhc2UtdGltaW5nICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgICAgIHdpZHRoOiA0MHB4O1xuXG4gICAgICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlKC01MCUsIC01MCUpKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAuY2xzLTEge1xuICAgICAgICAgICAgICAgICAgICBmaWxsOiB3aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5zbGlkZS10aXRsZSB7XG4gICAgICAgICAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IGVtKDIwcHgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmNvbWluZy1zb29uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoICRibGFjaywgMC41ICk7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAgICAgLmNvbWluZy1zb29uLWNvbnRlbnQge1xuICAgICAgICAgICAgICAgIGJvdHRvbTogJGJhc2Utc3BhY2luZyoyLjU7XG4gICAgICAgICAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6ICRzbWFsbC1zcGFjaW5nO1xuICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAkc21hbGwtc3BhY2luZztcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBlbSgxNnB4KTtcbiAgICAgICAgICAgICAgICBmb250LWZhbWlseTogJGJhc2UtZm9udC1mYW1pbHk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDEwMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvKiB0aGUgc2xpZGVzICovXG4gICAgLnNsaWNrLXNsaWRlIHtcbiAgICAgICAgbWFyZ2luOiAwICRzbWFsbC1zcGFjaW5nO1xuICAgIH1cbiAgICAvKiB0aGUgcGFyZW50ICovXG4gICAgLnNsaWNrLWxpc3Qge1xuICAgICAgICBtYXJnaW46IDAgLSRzbWFsbC1zcGFjaW5nO1xuICAgIH1cblxuICAgIC5zbGljay1kb3RzIHtcbiAgICAgICAgYm90dG9tOiAtJGJhc2Utc3BhY2luZyoyO1xuXG4gICAgICAgIGxpIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIGJ1dHRvbjpiZWZvcmUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGJ1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXk7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDVweDtcbiAgICAgICAgICAgIHdpZHRoOiA1cHg7XG4gICAgICAgIH1cblxuICAgICAgICAuc2xpY2stYWN0aXZlIGJ1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkcmVkO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLndvb2NvbW1lcmNlIHtcblxuICAgIC5zaXRlLWlubmVyIHtcbiAgICAgICAgbWFyZ2luLXRvcDogJGJhc2Utc3BhY2luZyozO1xuICAgIH1cblxuICAgIGxpOmJlZm9yZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuIiwiLndvb2NvbW1lcmNlLmFyY2hpdmUge1xuXG4gICAgLmhlYWRsaW5lLXRpdGxlIHtcbiAgICAgICAgZm9udC1zaXplOiBlbSg0NHB4KTtcbiAgICB9XG5cbiAgICAuY2F0ZWdvcnktaW50cm8ge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkYmFzZS1zcGFjaW5nKjI7XG4gICAgfVxuXG4gICAgLnByb2R1Y3RzIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJGJhc2Utc3BhY2luZyoyO1xuICAgIH1cblxuICAgIC5wcm9kdWN0LXRpdGxlIHtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRiYXNlLWZvbnQtZmFtaWx5O1xuICAgICAgICBmb250LXNpemU6IGVtKDMwcHgpO1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICAud29vY29tbWVyY2UtUHJpY2UtYW1vdW50IHtcbiAgICAgICAgY29sb3I6ICRyZWQ7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkYmFzZS1mb250LWZhbWlseTtcbiAgICAgICAgZm9udC1zaXplOiBlbSg0MHB4KTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDEwMDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgfVxuXG4gICAgLnRoZS1wcmljZSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRzbWFsbC1zcGFjaW5nO1xuICAgICAgICBjb2xvcjogJGRhcmtpc2gtZ3JheSAhaW1wb3J0YW50O1xuXG4gICAgICAgIGlucyB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBkZWwge1xuICAgICAgICAgICAgLndvb2NvbW1lcmNlLVByaWNlLWFtb3VudCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRkYXJraXNoLWdyYXk7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uLWNvbG9yOiAkZGFya2lzaC1ncmF5O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnByb2R1Y3QtZXhjZXJwdCB7XG4gICAgICAgIHAge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogJHNtYWxsLXNwYWNpbmc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucHJvZHVjdC1saW5rIHtcbiAgICAgICAgbWFyZ2luLXRvcDogJHNtYWxsLXNwYWNpbmc7XG4gICAgfVxuXG4gICAgLnByb3Zlbi1wcm9kdWN0IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIC5wcm9kdWN0LWltYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMjgwcHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wcm9kdWN0LWRldGFpbHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAkYmFzZS1zcGFjaW5nIDAgJGJhc2Utc3BhY2luZyoyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoICRtZWRpdW0tc2NyZWVuLXVwICkge1xuXG4gICAgICAgICAgICAucHJvZHVjdC1pbWFnZSxcbiAgICAgICAgICAgIC5wcm9kdWN0LWRldGFpbHMge1xuICAgICAgICAgICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5wcm9kdWN0LWltYWdlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAucHJvZHVjdC1kZXRhaWxzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogJGJhc2Utc3BhY2luZyoyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgLnByb2R1Y3QtaW1hZ2Uge1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiA1MCU7XG5cbiAgICAgICAgICAgICAgICAgICAgLm9uc2FsZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICByaWdodDogMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLnByb2R1Y3QtZGV0YWlscyB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bnRoLWNoaWxkKG9kZCkge1xuICAgICAgICAgICAgICAgIC5wcm9kdWN0LWltYWdlIHtcbiAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IDUwJTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAucHJvZHVjdC1kZXRhaWxzIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5zdHVkeS1jb250ZW50IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIGJvdHRvbTogMCAhaW1wb3J0YW50O1xuICAgICAgICBsZWZ0OiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIHJpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIC5ob3Zlci1hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKCB0cmFuc2xhdGUoIC01MCUsIC01MCUgKSApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmFyY2hpdmUtaXRlbS1mb290ZXIge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIG1hcmdpbi10b3A6ICRzbWFsbC1zcGFjaW5nLzI7XG4gICAgfVxuXG4gICAgLmFyY2hpdmUtaXRlbS10aXRsZSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgfVxuXG4gICAgLmFyY2hpdmUtaXRlbS1wcmljZSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRyZWQ7XG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgcGFkZGluZzogcmVtKDRweCk7XG4gICAgfVxuXG59XG4iLCIud29vY29tbWVyY2UtY2hlY2tvdXQge1xuICAgIGxpOmJlZm9yZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuY29udGVudCB7XG4gICAgICAgIG1hcmdpbjogJGJhc2Utc3BhY2luZyoyLjUgMDtcbiAgICB9XG5cbiAgICAjb3JkZXJfcmV2aWV3X2hlYWRpbmcge1xuICAgICAgICBtYXJnaW4tdG9wOiAkYmFzZS1zcGFjaW5nLzI7XG4gICAgfVxuXG4gICAgLndvb2NvbW1lcmNlLXNoaXBwaW5nLWZpZWxkcyBoMyNzaGlwLXRvLWRpZmZlcmVudC1hZGRyZXNzIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAzMHB4O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgI3NoaXAtdG8tZGlmZmVyZW50LWFkZHJlc3MtY2hlY2tib3gge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0oIHRyYW5zbGF0ZVkoIC01MCUgKSApO1xuICAgICAgICAgICAgbGVmdDogMHB4O1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiJHFiZy1jb2xvcjogI2VlZWVlZTtcbiRxYnV0dG9uLWJnLWNvbG9yOiAjZGRkZGRkO1xuXG4ud29vY29tbWVyY2Ugc3Bhbi5vbnNhbGUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRyZWQgIWltcG9ydGFudDtcbiAgICB0b3A6IDAgIWltcG9ydGFudDtcbiAgICBsZWZ0OiAwICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogMCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmc6IDBweCAhaW1wb3J0YW50O1xufVxuXG4uc2luZ2xlLXByb2R1Y3Qge1xuXG5cbiAgICBkaXYuc3VtbWFyeSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRiYXNlLXNwYWNpbmcqMztcbiAgICB9XG5cbiAgICAuaW1hZ2VzIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoICR3b28tbGFyZ2UtdXAgKSB7XG4gICAgICAgICAgICB3aWR0aDogNDAlICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuZW50cnktc3VtbWFyeSB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCAkd29vLWxhcmdlLXVwICkge1xuICAgICAgICAgICAgd2lkdGg6IDYwJSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkYmFzZS1zcGFjaW5nO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnByb2R1Y3RfdGl0bGUuZW50cnktdGl0bGUge1xuICAgICAgICBmb250LWZhbWlseTogJGJhc2UtZm9udC1mYW1pbHk7XG4gICAgICAgIGZvbnQtc2l6ZTogZW0oMzZweCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuXG4gICAgZGl2LnByb2R1Y3QgcC5wcmljZSxcbiAgICBkaXYucHJvZHVjdCBzcGFuLnByaWNlIHtcbiAgICAgICAgY29sb3I6ICRkYXJraXNoLWdyYXkgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAucHJpY2Uge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHNtYWxsLXNwYWNpbmc7XG5cbiAgICAgICAgLndvb2NvbW1lcmNlLVByaWNlLWFtb3VudCB7XG4gICAgICAgICAgICBmb250LWZhbWlseTogJGJhc2UtZm9udC1mYW1pbHk7XG4gICAgICAgICAgICBmb250LXdlaWdodDogMTAwO1xuICAgICAgICAgICAgZm9udC1zaXplOiBlbSgzMnB4KTtcbiAgICAgICAgICAgIGNvbG9yOiAkcmVkO1xuICAgICAgICB9XG5cbiAgICAgICAgaW5zIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGRlbCB7XG4gICAgICAgICAgICAud29vY29tbWVyY2UtUHJpY2UtYW1vdW50IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGRhcmtpc2gtZ3JheTtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb24tY29sb3I6ICRkYXJraXNoLWdyYXk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuZGVzY3JpcHRpb24ge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkc21hbGwtc3BhY2luZztcblxuICAgICAgICBwIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRzbWFsbC1zcGFjaW5nO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZm9ybS5jYXJ0IHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5zaW5nbGVfYWRkX3RvX2NhcnRfYnV0dG9uIHtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0ICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDUwMHB4KSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc21hbGwtc3BhY2luZyAhaW1wb3J0YW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQG1lZGlhICggbWluLXdpZHRoOiA4MDBweCApIGFuZCAoIG1heC13aWR0aDogODQwcHgpe1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNtYWxsLXNwYWNpbmcgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5xdWFudGl0eSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRxYmctY29sb3IgIWltcG9ydGFudDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gICAgICAgIHdpZHRoOiAyMzBweCAhaW1wb3J0YW50O1xuXG4gICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA1MDBweCkge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBtZWRpYSAoIG1pbi13aWR0aDogODAwcHggKSBhbmQgKCBtYXgtd2lkdGg6IDg0MHB4KXtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBpbnB1dFt0eXBlPW51bWJlcl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG4gICAgICAgIGlucHV0W3R5cGU9bnVtYmVyXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gICAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogJ1FVQU5USVRZOic7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAxMHB4O1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0oIHRyYW5zbGF0ZVkoIC01MCUgKSApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnF1YW50aXR5IGlucHV0W3R5cGU9XCJudW1iZXJcIl0ge1xuICAgICAgICBoZWlnaHQ6IDQycHggIWltcG9ydGFudDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHFiZy1jb2xvciAhaW1wb3J0YW50O1xuICAgICAgICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICBtYXJnaW4tbGVmdDogOTVweCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5taW51cyxcbiAgICAucGx1cyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRxYnV0dG9uLWJnLWNvbG9yICFpbXBvcnRhbnQ7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDBweCAhaW1wb3J0YW50O1xuICAgICAgICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG4gICAgICAgIGZvbnQtc2l6ZTogMjRweCAhaW1wb3J0YW50O1xuICAgICAgICBoZWlnaHQ6IDQycHggIWltcG9ydGFudDtcbiAgICAgICAgd2lkdGg6IDQycHggIWltcG9ydGFudDtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAzMDBtcyAkYmFzZS10aW1pbmc7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oICRxYnV0dG9uLWJnLWNvbG9yLCAyMCUgKSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnBsdXMge1xuXG4gICAgfVxuXG4gICAgLm1pbnVzIHtcbiAgICAgICAgcmlnaHQ6IDQ0cHggIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAud29vY29tbWVyY2UtdGFicyB7XG4gICAgICAgIG1hcmdpbi10b3A6ICRiYXNlLXNwYWNpbmcvMjtcbiAgICB9XG5cbiAgICAuc3BlYWtlcnMtd3JhcCB7XG4gICAgICAgIG1hcmdpbi10b3A6IDNlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAuc3BlYWtlcnMtMSB7XG5cbiAgICAgICAgICAgIC5zcGVha2VyIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG5cbiAgICAgICAgICAgICAgICAuaGVhZHNob3Qge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDJlbTtcbiAgICAgICAgICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLnNwZWFrZXIge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMzBweDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoICRtZWRpdW0tc2NyZWVuLXVwICkge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg2KTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBvbWVnYSgybik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5oZWFkc2hvdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMWVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBoNSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5zcGVha2VyLXRpdGxlIHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5zcGVha2VyLWRlcyB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBlbSgxNCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbn1cblxuLndvb2NvbW1lcmNlIGRpdi5wcm9kdWN0IGRpdi5pbWFnZXMgLndvb2NvbW1lcmNlLXByb2R1Y3QtZ2FsbGVyeV9fd3JhcHBlciB7XG4gICAgbWFyZ2luOiAwcHg7XG59XG4iLCIud29vY29tbWVyY2UtY2FydCB7XG4gICAgLmNhcnQtY29sbGF0ZXJhbHMgLmNhcnRfdG90YWxzLCAud29vY29tbWVyY2UtcGFnZSAuY2FydC1jb2xsYXRlcmFscyAuY2FydF90b3RhbHMge1xuICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5jb3Vwb24gI2NvdXBvbl9jb2RlIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoICRtZWRpdW0tc2NyZWVuLXVwICkge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCAkbGFyZ2Utc2NyZWVuLXVwICkge1xuICAgICAgICAgICAgcGFkZGluZzogNy41cHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuY29udGVudCB7XG4gICAgICAgIG1hcmdpbjogJGJhc2Utc3BhY2luZyoyLjUgMDtcbiAgICB9XG5cbiAgICAuY2FydC1jb2xsYXRlcmFscyB7XG4gICAgICAgIG1hcmdpbi10b3A6ICRiYXNlLXNwYWNpbmc7XG4gICAgfVxufVxuIiwiLndvb2NvbW1lcmNlLWFjY291bnQge1xuXG4gICAgLmVudHJ5LWhlYWRlciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLmNvbnRlbnQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkYmFzZS1zcGFjaW5nKjI7XG4gICAgfVxufVxuXG4ud29vY29tbWVyY2UtcGFnZS53b29jb21tZXJjZS1hY2NvdW50IC53b29jb21tZXJjZSBmb3JtLmxvZ2luIHtcbiAgICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOiAwcHggIWltcG9ydGFudDtcbiAgICBtYXgtd2lkdGg6IDMyMHB4O1xufVxuIiwiLndvb2NvbW1lcmNlIC5kaXNjb3VudC1zaGFyZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHJlZDtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZy10b3A6ICRiYXNlLXNwYWNpbmc7XG4gICAgcGFkZGluZy1ib3R0b206ICRiYXNlLXNwYWNpbmc7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSggJGxhcmdlLXNjcmVlbi11cCApIHtcbiAgICAgICAgcGFkZGluZzogMHB4O1xuICAgIH1cblxuICAgIC53cmFwIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cblxuICAgIC5nbG0tbGVmdC1jb250ZW50LFxuICAgIC5nbG0tcmlnaHQtY29udGVudCB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCAkbGFyZ2Utc2NyZWVuLXVwICkge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmdsbS1sZWZ0LWNvbnRlbnQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkYmFzZS1zcGFjaW5nO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCAkbGFyZ2Utc2NyZWVuLXVwICkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJGJhc2Utc3BhY2luZztcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRiYXNlLXNwYWNpbmc7XG4gICAgICAgIH1cblxuICAgICAgICBoMiB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgcCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwcHg7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5nbG0tcmlnaHQtY29udGVudCB7XG5cbiAgICAgICAgI2dsbS1lbWFpbC1jb3Vwb24taW5wdXQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHJlZDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwcHg7XG4gICAgICAgICAgICBib3JkZXItd2lkdGg6IDJweDtcbiAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDEwMDtcbiAgICAgICAgICAgIGhlaWdodDogNTBweDtcbiAgICAgICAgICAgIG1hcmdpbjogMHB4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBAaW5jbHVkZSBwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG4gICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgICNnbG0tZW1haWwtY291cG9uLXN1Ym1pdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkYmxhY2s7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbjogMHB4O1xuICAgICAgICAgICAgcGFkZGluZzogMHB4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDUwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSggJG1lZGl1bS1zY3JlZW4tdXAgKSB7XG4gICAgICAgICAgICAjZ2xtLWVtYWlsLWNvdXBvbi1pbnB1dCB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAwcHg7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDcwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI2dsbS1lbWFpbC1jb3Vwb24tc3VibWl0IHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMzAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoICRsYXJnZS1zY3JlZW4tdXAgKSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICByaWdodDogMHB4O1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0oIHRyYW5zbGF0ZVkoIC01MCUgKSApO1xuICAgICAgICB9XG5cbiAgICB9XG59XG4iXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7OztFQU9FO0FBQ0YsT0FBTyxDQUFQLGtEQUFPO0F3RlBQLEFBQVEsT0FBRCxDQUFDLENBQUM7QUFDVCxBQUFBLGNBQWM7QUFDZCxBQUFXLFVBQUQsQ0FBQyxPQUFPLENBQUM7RUFDZixVQUFVLEVBQUUsSUFBSztFQUNqQixnQkFBZ0IsRVJlZCxPQUFPO0VRZFQsTUFBTSxFQUFFLENBQUU7RUFDVixLQUFLLEVBQUUsSUFBSztFQUNaLE1BQU0sRUFBRSxPQUFRO0VBQ2hCLE9BQU8sRUFBRSxZQUFhO0VBQ3RCLFdBQVcsRVJUSSxNQUFNLEVkV2IsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsVUFBVTtFc0JEcEUsU0FBUyxFUk5JLEdBQUc7RVFPaEIsc0JBQXNCLEVBQUUsV0FBWTtFQUNwQyxXQUFXLEVBQUUsR0FBSTtFQUNqQixXQUFXLEVBQUUsQ0FBRTtFQUNmLE1BQU0sRUFBRSxZQUFhO0VBQ3JCLE9BQU8sRUFBRSxHQUFjLENBQU0sR0FBYTtFQUMxQyxRQUFRLEVBQUUsUUFBUztFQUNuQixlQUFlLEVBQUUsSUFBSztFQUN0QixjQUFjLEVBQUUsU0FBVTtFQUMxQixVQUFVLEVBQUUsZ0JBQWdCLENBQUMsS0FBSyxDUnVDeEIsSUFBSTtFUXRDZCxXQUFXLEVBQUUsSUFBSztFQUNsQixjQUFjLEVBQUUsTUFBTztFQUN2QixXQUFXLEVBQUUsTUFBTyxHQTBHdkI7RUFoSUQsQUFBUSxPQUFELENBQUMsQ0FBQyxBQXdCSixPQUFPO0VBdkJaLEFBQUEsY0FBYyxBQXVCVCxPQUFPO0VBdEJaLEFBQVcsVUFBRCxDQUFDLE9BQU8sQUFzQmIs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 */
