@charset "UTF-8";
/*
	Theme Name: Torlesse
	Theme URI: http://www.avocadesign.co.nz
	Description: A mobile responsive and HTML5 theme built for the Genesis Framework.
	Author: Avoca Design
	Author URI: http://www.avocadesign.co.nz

	Version: 1.0

	Tags: black, white, one-column, two-columns, fixed-width, custom-menu, full-width-template, sticky-post, theme-options, threaded-comments, translation-ready

	Template: genesis
	Template Version: 1.0

	License: GPL-2.0+
	License URI: http://www.opensource.org/licenses/gpl-license.php
*/
.site-inner .wrap {
  max-width: 76.046em;
  margin-left: auto;
  margin-right: auto;
  padding: 0 !important; }
  .site-inner .wrap:after {
    content: " ";
    display: block;
    clear: both; }

/*
 * Modular Scale Settings
 *
 * http://www.modularscale.com by Tim Brown
 * https://github.com/Team-Sass/modular-scale
 * version 2 syntax
 */
/*
	 * Sizing
	 */
/*! normalize.css v3.0.2 | MIT License | git.io/normalize */
/**
 * 1. Set default font family to sans-serif.
 * 2. Prevent iOS text size adjust after orientation change, without disabling
 *    user zoom.
 */
html {
  font-family: sans-serif;
  /* 1 */
  -ms-text-size-adjust: 100%;
  /* 2 */
  -webkit-text-size-adjust: 100%;
  /* 2 */ }

/**
 * Remove default margin.
 */
body {
  margin: 0; }

/* HTML5 display definitions
   ========================================================================== */
/**
 * Correct `block` display not defined for any HTML5 element in IE 8/9.
 * Correct `block` display not defined for `details` or `summary` in IE 10/11
 * and Firefox.
 * Correct `block` display not defined for `main` in IE 11.
 */
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
menu,
nav,
section,
summary {
  display: block; }

/**
 * 1. Correct `inline-block` display not defined in IE 8/9.
 * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
 */
audio,
canvas,
progress,
video {
  display: inline-block;
  /* 1 */
  vertical-align: baseline;
  /* 2 */ }

/**
 * Prevent modern browsers from displaying `audio` without controls.
 * Remove excess height in iOS 5 devices.
 */
audio:not([controls]) {
  display: none;
  height: 0; }

/**
 * Address `[hidden]` styling not present in IE 8/9/10.
 * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22.
 */
[hidden],
template {
  display: none; }

/* Links
   ========================================================================== */
/**
 * Remove the gray background color from active links in IE 10.
 */
a {
  background-color: transparent; }

/**
 * Improve readability when focused and also mouse hovered in all browsers.
 */
a:active,
a:hover {
  outline: 0; }

/* Text-level semantics
   ========================================================================== */
/**
 * Address styling not present in IE 8/9/10/11, Safari, and Chrome.
 */
abbr[title] {
  border-bottom: 1px dotted; }

/**
 * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
 */
b,
strong {
  font-weight: bold; }

/**
 * Address styling not present in Safari and Chrome.
 */
dfn {
  font-style: italic; }

/**
 * Address variable `h1` font-size and margin within `section` and `article`
 * contexts in Firefox 4+, Safari, and Chrome.
 */
h1 {
  font-size: 2em;
  margin: 0.67em 0; }

/**
 * Address styling not present in IE 8/9.
 */
mark {
  background: #ff0;
  color: #000; }

/**
 * Address inconsistent and variable font size in all browsers.
 */
small {
  font-size: 80%; }

/**
 * Prevent `sub` and `sup` affecting `line-height` in all browsers.
 */
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline; }

sup {
  top: -0.5em; }

sub {
  bottom: -0.25em; }

/* Embedded content
   ========================================================================== */
/**
 * Remove border when inside `a` element in IE 8/9/10.
 */
img {
  border: 0; }

/**
 * Correct overflow not hidden in IE 9/10/11.
 */
svg:not(:root) {
  overflow: hidden; }

/* Grouping content
   ========================================================================== */
/**
 * Address margin not present in IE 8/9 and Safari.
 */
figure {
  margin: 1em 40px; }

/**
 * Address differences between Firefox and other browsers.
 */
hr {
  box-sizing: content-box;
  height: 0; }

/**
 * Contain overflow in all browsers.
 */
pre {
  overflow: auto; }

/**
 * Address odd `em`-unit font size rendering in all browsers.
 */
code,
kbd,
pre,
samp {
  font-family: monospace, monospace;
  font-size: 1em; }

/* Forms
   ========================================================================== */
/**
 * Known limitation: by default, Chrome and Safari on OS X allow very limited
 * styling of `select`, unless a `border` property is set.
 */
/**
 * 1. Correct color not being inherited.
 *    Known issue: affects color of disabled elements.
 * 2. Correct font properties not being inherited.
 * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
 */
button,
input,
optgroup,
select,
textarea {
  color: inherit;
  /* 1 */
  font: inherit;
  /* 2 */
  margin: 0;
  /* 3 */ }

/**
 * Address `overflow` set to `hidden` in IE 8/9/10/11.
 */
button {
  overflow: visible; }

/**
 * Address inconsistent `text-transform` inheritance for `button` and `select`.
 * All other form control elements do not inherit `text-transform` values.
 * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
 * Correct `select` style inheritance in Firefox.
 */
button,
select {
  text-transform: none; }

/**
 * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
 *    and `video` controls.
 * 2. Correct inability to style clickable `input` types in iOS.
 * 3. Improve usability and consistency of cursor style between image-type
 *    `input` and others.
 */
button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
  -webkit-appearance: button;
  /* 2 */
  cursor: pointer;
  /* 3 */ }

/**
 * Re-set default cursor for disabled elements.
 */
button[disabled],
html input[disabled] {
  cursor: default; }

/**
 * Remove inner padding and border in Firefox 4+.
 */
button::-moz-focus-inner,
input::-moz-focus-inner {
  border: 0;
  padding: 0; }

/**
 * Address Firefox 4+ setting `line-height` on `input` using `!important` in
 * the UA stylesheet.
 */
input {
  line-height: normal; }

/**
 * It's recommended that you don't attempt to style these elements.
 * Firefox's implementation doesn't respect box-sizing, padding, or width.
 *
 * 1. Address box sizing set to `content-box` in IE 8/9/10.
 * 2. Remove excess padding in IE 8/9/10.
 */
input[type="checkbox"],
input[type="radio"] {
  box-sizing: border-box;
  /* 1 */
  padding: 0;
  /* 2 */ }

/**
 * Fix the cursor style for Chrome's increment/decrement buttons. For certain
 * `font-size` values of the `input`, it causes the cursor style of the
 * decrement button to change from `default` to `text`.
 */
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
  height: auto; }

/**
 * 1. Address `appearance` set to `searchfield` in Safari and Chrome.
 * 2. Address `box-sizing` set to `border-box` in Safari and Chrome
 *    (include `-moz` to future-proof).
 */
input[type="search"] {
  -webkit-appearance: textfield;
  /* 1 */
  /* 2 */
  box-sizing: content-box; }

/**
 * Remove inner padding and search cancel button in Safari and Chrome on OS X.
 * Safari (but not Chrome) clips the cancel button when the search input has
 * padding (and `textfield` appearance).
 */
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none; }

/**
 * Define consistent border, margin, and padding.
 */
fieldset {
  border: 1px solid #c0c0c0;
  margin: 0 2px;
  padding: 0.35em 0.625em 0.75em; }

/**
 * 1. Correct `color` not being inherited in IE 8/9/10/11.
 * 2. Remove padding so people aren't caught out if they zero out fieldsets.
 */
legend {
  border: 0;
  /* 1 */
  padding: 0;
  /* 2 */ }

/**
 * Remove default vertical scrollbar in IE 8/9/10/11.
 */
textarea {
  overflow: auto; }

/**
 * Don't inherit the `font-weight` (applied by a rule above).
 * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
 */
optgroup {
  font-weight: bold; }

/* Tables
   ========================================================================== */
/**
 * Remove most spacing between table cells.
 */
table {
  border-collapse: collapse;
  border-spacing: 0; }

td,
th {
  padding: 0; }

/* ## Box Sizing
--------------------------------------------- */
*,
input[type="search"] {
  box-sizing: border-box; }

/**
 * For modern browsers
 * 1. The space content is one way to avoid an Opera bug when the
 *    contenteditable attribute is included anywhere else in the document.
 *    Otherwise it causes space to appear at the top and bottom of elements
 *    that are clearfixed.
 * 2. The use of `table` rather than `block` is only necessary if using
 *    `:before` to contain the top-margins of child elements.
 */
.cf:before,
.cf:after {
  content: " ";
  /* 1 */
  display: table;
  /* 2 */ }

.cf:after {
  clear: both; }

/**
 * For IE 6/7 only
 * Include this rule to trigger hasLayout and contain floats.
 */
.cf {
  *zoom: 1; }

/* ## Float Clearing
--------------------------------------------- */
.author-box:before,
.clearfix:before,
.entry:before,
.entry-content:before,
.footer-widgets:before,
.nav-primary:before,
.nav-secondary:before,
.pagination:before,
.site-container:before,
.site-footer:before,
.site-header:before,
.site-inner:before,
.wrap:before {
  content: " ";
  display: table; }

.author-box:after,
.clearfix:after,
.entry:after,
.entry-content:after,
.footer-widgets:after,
.nav-primary:after,
.nav-secondary:after,
.pagination:after,
.site-container:after,
.site-footer:after,
.site-header:after,
.site-inner:after,
.wrap:after {
  clear: both;
  content: " ";
  display: table; }

/* ## Column Classes
--------------------------------------------- */
/* Link: http://twitter.github.io/bootstrap/assets/css/bootstrap-responsive.css */
.five-sixths,
.four-sixths,
.one-fourth,
.one-half,
.one-sixth,
.one-third,
.three-fourths,
.three-sixths,
.two-fourths,
.two-sixths,
.two-thirds {
  float: left;
  margin-left: 2.564102564102564%; }

.one-half,
.three-sixths,
.two-fourths {
  width: 48.717948717948715%; }

.one-third,
.two-sixths {
  width: 31.623931623931625%; }

.four-sixths,
.two-thirds {
  width: 65.81196581196582%; }

.one-fourth {
  width: 23.076923076923077%; }

.three-fourths {
  width: 74.35897435897436%; }

.one-sixth {
  width: 14.52991452991453%; }

.five-sixths {
  width: 82.90598290598291%; }

.first {
  clear: both;
  margin-left: 0; }

@media only screen and (max-width: 800px) {
  .five-sixths,
  .four-sixths,
  .one-fourth,
  .one-half,
  .one-sixth,
  .one-third,
  .three-fourths,
  .three-sixths,
  .two-fourths,
  .two-sixths,
  .two-thirds {
    margin: 0;
    width: 100%; } }

/* Magnific Popup CSS */
.mfp-bg {
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1042;
  overflow: hidden;
  position: fixed;
  background: #0b0b0b;
  opacity: 0.8;
  filter: alpha(opacity=80); }

.mfp-wrap {
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1043;
  position: fixed;
  outline: none !important;
  -webkit-backface-visibility: hidden; }

.mfp-container {
  text-align: center;
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  padding: 0 8px;
  box-sizing: border-box; }

.mfp-container:before {
  content: '';
  display: inline-block;
  height: 100%;
  vertical-align: middle; }

.mfp-align-top .mfp-container:before {
  display: none; }

.mfp-content {
  position: relative;
  display: inline-block;
  vertical-align: middle;
  margin: 0 auto;
  text-align: left;
  z-index: 1045; }

.mfp-inline-holder .mfp-content,
.mfp-ajax-holder .mfp-content {
  width: 100%;
  cursor: auto; }

.mfp-ajax-cur {
  cursor: progress; }

.mfp-zoom-out-cur, .mfp-zoom-out-cur .mfp-image-holder .mfp-close {
  cursor: -webkit-zoom-out;
  cursor: zoom-out; }

.mfp-zoom {
  cursor: pointer;
  cursor: -webkit-zoom-in;
  cursor: zoom-in; }

.mfp-auto-cursor .mfp-content {
  cursor: auto; }

.mfp-close,
.mfp-arrow,
.mfp-preloader,
.mfp-counter {
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
      user-select: none; }

.mfp-loading.mfp-figure {
  display: none; }

.mfp-hide {
  display: none !important; }

.mfp-preloader {
  color: #CCC;
  position: absolute;
  top: 50%;
  width: auto;
  text-align: center;
  margin-top: -0.8em;
  left: 8px;
  right: 8px;
  z-index: 1044; }

.mfp-preloader a {
  color: #CCC; }

.mfp-preloader a:hover {
  color: #FFF; }

.mfp-s-ready .mfp-preloader {
  display: none; }

.mfp-s-error .mfp-content {
  display: none; }

button.mfp-close,
button.mfp-arrow {
  overflow: visible;
  cursor: pointer;
  background: transparent;
  border: 0;
  -webkit-appearance: none;
  display: block;
  outline: none;
  padding: 0;
  z-index: 1046;
  box-shadow: none; }

button::-moz-focus-inner {
  padding: 0;
  border: 0; }

.mfp-close {
  width: 44px;
  height: 44px;
  line-height: 44px;
  position: absolute;
  right: 0;
  top: 0;
  text-decoration: none;
  text-align: center;
  opacity: 0.65;
  filter: alpha(opacity=65);
  padding: 0 0 18px 10px;
  color: #FFF;
  font-style: normal;
  font-size: 28px;
  font-family: Arial, Baskerville, monospace; }

.mfp-close:hover,
.mfp-close:focus {
  opacity: 1;
  filter: alpha(opacity=100); }

.mfp-close:active {
  top: 1px; }

.mfp-close-btn-in .mfp-close {
  color: #333; }

.mfp-image-holder .mfp-close,
.mfp-iframe-holder .mfp-close {
  color: #FFF;
  right: -6px;
  text-align: right;
  padding-right: 6px;
  width: 100%; }

.mfp-counter {
  position: absolute;
  top: 0;
  right: 0;
  color: #CCC;
  font-size: 12px;
  line-height: 18px;
  white-space: nowrap; }

.mfp-arrow {
  position: absolute;
  opacity: 0.65;
  filter: alpha(opacity=65);
  margin: 0;
  top: 50%;
  margin-top: -55px;
  padding: 0;
  width: 90px;
  height: 110px;
  -webkit-tap-highlight-color: transparent; }

.mfp-arrow:active {
  margin-top: -54px; }

.mfp-arrow:hover,
.mfp-arrow:focus {
  opacity: 1;
  filter: alpha(opacity=100); }

.mfp-arrow:before,
.mfp-arrow:after,
.mfp-arrow .mfp-b,
.mfp-arrow .mfp-a {
  content: '';
  display: block;
  width: 0;
  height: 0;
  position: absolute;
  left: 0;
  top: 0;
  margin-top: 35px;
  margin-left: 35px;
  border: medium inset transparent; }

.mfp-arrow:after,
.mfp-arrow .mfp-a {
  border-top-width: 13px;
  border-bottom-width: 13px;
  top: 8px; }

.mfp-arrow:before,
.mfp-arrow .mfp-b {
  border-top-width: 21px;
  border-bottom-width: 21px;
  opacity: 0.7; }

.mfp-arrow-left {
  left: 0; }

.mfp-arrow-left:after,
.mfp-arrow-left .mfp-a {
  border-right: 17px solid #FFF;
  margin-left: 31px; }

.mfp-arrow-left:before,
.mfp-arrow-left .mfp-b {
  margin-left: 25px;
  border-right: 27px solid #3F3F3F; }

.mfp-arrow-right {
  right: 0; }

.mfp-arrow-right:after,
.mfp-arrow-right .mfp-a {
  border-left: 17px solid #FFF;
  margin-left: 39px; }

.mfp-arrow-right:before,
.mfp-arrow-right .mfp-b {
  border-left: 27px solid #3F3F3F; }

.mfp-iframe-holder {
  padding-top: 40px;
  padding-bottom: 40px; }

.mfp-iframe-holder .mfp-content {
  line-height: 0;
  width: 100%;
  max-width: 900px; }

.mfp-iframe-holder .mfp-close {
  top: -40px; }

.mfp-iframe-scaler {
  width: 100%;
  height: 0;
  overflow: hidden;
  padding-top: 56.25%; }

.mfp-iframe-scaler iframe {
  position: absolute;
  display: block;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
  background: #000; }

/* Main image in popup */
img.mfp-img {
  width: auto;
  max-width: 100%;
  height: auto;
  display: block;
  line-height: 0;
  box-sizing: border-box;
  padding: 40px 0 40px;
  margin: 0 auto; }

/* The shadow behind the image */
.mfp-figure {
  line-height: 0; }

.mfp-figure:after {
  content: '';
  position: absolute;
  left: 0;
  top: 40px;
  bottom: 40px;
  display: block;
  right: 0;
  width: auto;
  height: auto;
  z-index: -1;
  box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
  background: #444; }

.mfp-figure small {
  color: #BDBDBD;
  display: block;
  font-size: 12px;
  line-height: 14px; }

.mfp-figure figure {
  margin: 0; }

.mfp-bottom-bar {
  margin-top: -36px;
  position: absolute;
  top: 100%;
  left: 0;
  width: 100%;
  cursor: auto; }

.mfp-title {
  text-align: left;
  line-height: 18px;
  color: #F3F3F3;
  word-wrap: break-word;
  padding-right: 36px; }

.mfp-image-holder .mfp-content {
  max-width: 100%; }

.mfp-gallery .mfp-image-holder .mfp-figure {
  cursor: pointer; }

@media screen and (max-width: 800px) and (orientation: landscape), screen and (max-height: 300px) {
  /**
       * Remove all paddings around the image on small screen
       */
  .mfp-img-mobile .mfp-image-holder {
    padding-left: 0;
    padding-right: 0; }
  .mfp-img-mobile img.mfp-img {
    padding: 0; }
  .mfp-img-mobile .mfp-figure:after {
    top: 0;
    bottom: 0; }
  .mfp-img-mobile .mfp-figure small {
    display: inline;
    margin-left: 5px; }
  .mfp-img-mobile .mfp-bottom-bar {
    background: rgba(0, 0, 0, 0.6);
    bottom: 0;
    margin: 0;
    top: auto;
    padding: 3px 5px;
    position: fixed;
    box-sizing: border-box; }
  .mfp-img-mobile .mfp-bottom-bar:empty {
    padding: 0; }
  .mfp-img-mobile .mfp-counter {
    right: 5px;
    top: 3px; }
  .mfp-img-mobile .mfp-close {
    top: 0;
    right: 0;
    width: 35px;
    height: 35px;
    line-height: 35px;
    background: rgba(0, 0, 0, 0.6);
    position: fixed;
    text-align: center;
    padding: 0; } }

@media all and (max-width: 900px) {
  .mfp-arrow {
    -webkit-transform: scale(0.75);
    transform: scale(0.75); }
  .mfp-arrow-left {
    -webkit-transform-origin: 0;
    transform-origin: 0; }
  .mfp-arrow-right {
    -webkit-transform-origin: 100%;
    transform-origin: 100%; }
  .mfp-container {
    padding-left: 6px;
    padding-right: 6px; } }

.mfp-ie7 .mfp-img {
  padding: 0; }

.mfp-ie7 .mfp-bottom-bar {
  width: 600px;
  left: 50%;
  margin-left: -300px;
  margin-top: 5px;
  padding-bottom: 5px; }

.mfp-ie7 .mfp-container {
  padding: 0; }

.mfp-ie7 .mfp-content {
  padding-top: 44px; }

.mfp-ie7 .mfp-close {
  top: 0;
  right: 0;
  padding-top: 0; }

/*
* 	Main Icon mixin
*
* 	Based on http://jaydenseric.com/blog/fun-with-sass-and-font-icons 
*
*	e.g. 
*	@include icon('phone', 'before', true, $large, $top:-3px, $margin:5px);
* 	@include icon('phone', 'before', true, $large, $top:-3px, $margin:5px) {
*		color: black;
* 	}
*/
@font-face {
  font-family: "entypo";
  src: url("fonts/entypo/entypo-plus.eot");
  src: url("fonts/entypo/entypo-plus.eot?#iefix") format("embedded-opentype"), url("fonts/entypo/entypo-plus.woff") format("woff"), url("fonts/entypo/entypo-plus.ttf") format("truetype"), url("fonts/entypo/entypo-plus.svg#entypo") format("svg");
  font-weight: normal;
  font-style: normal;
  speak: none; }

/*
 * Social Network Colours
 *
 * http://designpieces.com/2012/12/social-media-colours-hex-and-rgb/
 */
/*
 * Brand Colours
 */
/*
* Backgrounds
*/
.bg-light {
  background: #f8f8f8; }

.bg-medium {
  background: #e2e1e0; }

.bg-dark {
  background: #585552; }

.bg-blue .fl-col-content {
  background: #308FA1; }

.bg-turquoise .fl-col-content {
  background: #007B77; }

.bg-green .fl-col-content {
  background: #2F7533; }

.bg-orange .fl-col-content {
  background: #cf4520; }

.bg-pink .fl-col-content {
  background: #C91641; }

.bg-yellow .fl-col-content {
  background-color: #FED800; }

.bg-charcol .fl-col-content {
  background-color: #3B3D3B; }

.accents-mark .fl-col-content {
  background-image: url(images/accents-mark.png);
  background-repeat: no-repeat;
  background-position: -50px -130px; }

/*
 * Buttons
 */
.button.primary {
  background: #585552;
  color: #fff; }

.button.secondary {
  background: #f8f8f8;
  color: #585552; }

.button.outline {
  border: 1px solid #585552;
  color: #585552; }

.toggle-plus-button:after, .accents-toggle-control:after {
  content: "";
  position: relative;
  display: inline-block;
  width: auto;
  text-decoration: none;
  text-rendering: optimizeLegibility !important;
  -webkit-font-smoothing: antialiased !important;
  -moz-osx-font-smoothing: grayscale !important;
  speak: none;
  text-transform: none;
  line-height: normal;
  font-style: normal;
  font-variant: normal;
  font-weight: normal;
  font-family: "entypo";
  font-size: 16px;
  font-size: 1.3em;
  margin-left: 5px;
  position: relative;
  top: 0;
  float: right;
  color: #308FA1;
  margin-top: -1.1em; }

.toggle-plus-button-expanded:after, .accents-toggle-control.expanded:after {
  content: "";
  position: relative;
  display: inline-block;
  width: auto;
  text-decoration: none;
  text-rendering: optimizeLegibility !important;
  -webkit-font-smoothing: antialiased !important;
  -moz-osx-font-smoothing: grayscale !important;
  speak: none;
  text-transform: none;
  line-height: normal;
  font-style: normal;
  font-variant: normal;
  font-weight: normal;
  font-family: "entypo";
  font-size: 16px;
  font-size: 1.3em;
  margin-left: 5px;
  position: relative;
  top: 0;
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg); }

/*
 * Social Network Colours
 *
 * http://designpieces.com/2012/12/social-media-colours-hex-and-rgb/
 */
/*
 * Brand Colours
 */
/*
* Backgrounds
*/
.bg-light {
  background: #f8f8f8; }

.bg-medium {
  background: #e2e1e0; }

.bg-dark {
  background: #585552; }

.bg-blue .fl-col-content {
  background: #308FA1; }

.bg-turquoise .fl-col-content {
  background: #007B77; }

.bg-green .fl-col-content {
  background: #2F7533; }

.bg-orange .fl-col-content {
  background: #cf4520; }

.bg-pink .fl-col-content {
  background: #C91641; }

.bg-yellow .fl-col-content {
  background-color: #FED800; }

.bg-charcol .fl-col-content {
  background-color: #3B3D3B; }

.accents-mark .fl-col-content {
  background-image: url(images/accents-mark.png);
  background-repeat: no-repeat;
  background-position: -50px -130px; }

/*
 * Buttons
 */
.button.primary {
  background: #585552;
  color: #fff; }

.button.secondary {
  background: #f8f8f8;
  color: #585552; }

.button.outline {
  border: 1px solid #585552;
  color: #585552; }

/* ## Typographical Elements
--------------------------------------------- */
body {
  background-color: #fff;
  color: #3B3D3B;
  font-family: 'Source Sans', sans-serif;
  font-size: 18px;
  font-weight: 400;
  line-height: 1.625;
  margin: 0; }
  @media (max-width: 767px) {
    body {
      font-size: 17.1px; } }

a,
button,
input:focus,
input[type="button"],
input[type="reset"],
input[type="submit"],
textarea:focus,
.button,
.gallery img {
  -webkit-transition: all 0.1s ease-in-out;
  transition: all 0.1s ease-in-out; }

::-moz-selection {
  background-color: #333;
  color: #fff; }

::selection {
  background-color: #333;
  color: #fff; }

a {
  color: #308FA1;
  text-decoration: none; }

a:hover {
  color: #333; }

p {
  margin: 0 0 28px;
  padding: 0; }

ol,
ul {
  margin: 0;
  padding: 0; }

li {
  list-style-type: none; }

b,
strong {
  font-weight: 700; }

blockquote,
cite,
em,
i {
  font-style: italic; }

blockquote {
  margin: 40px; }

blockquote::before {
  content: "\201C";
  display: block;
  font-size: 30px;
  height: 0;
  left: -20px;
  position: relative;
  top: -10px; }

/* ## Headings
--------------------------------------------- */
.heading-style, h1,
h2,
h3,
h4,
h5,
h6, .fl-module-heading h1.fl-heading, .fl-module-heading h2.fl-heading, .fl-module-heading h3.fl-heading, .fl-module-heading h4.fl-heading, .fl-module-heading h5.fl-heading, .fl-module-heading h6.fl-heading {
  color: #308FA1;
  font-family: 'Source Sans', sans-serif;
  font-weight: 400;
  line-height: 1.4;
  margin: 0 0 20px; }

h1 {
  font-size: 30px;
  color: #3B3D3B; }
  @media (max-width: 767px) {
    h1 {
      font-size: 29px; } }

h2 {
  font-size: 30px; }
  @media (max-width: 767px) {
    h2 {
      font-size: 18px; } }

h3 {
  font-size: 29px; }
  @media (max-width: 767px) {
    h3 {
      font-size: 18px; } }

h4 {
  font-size: 18px; }
  @media (max-width: 767px) {
    h4 {
      font-size: 18px; } }

h5 {
  font-size: 18px; }

h6 {
  font-size: 18px; }

@media (max-width: 767px) {
  h1 {
    font-size: 30px; }
  h2 {
    font-size: 29px; }
  h3 {
    font-size: 18px; }
  h4 {
    font-size: 18px; }
  h5 {
    font-size: 17.1px; }
  h6 {
    font-size: 17.1px; } }

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

img {
  height: auto; }

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

/* Responsive Menu
--------------------------------------------- */
.responsive-menu-icon {
  cursor: pointer;
  display: none;
  margin-bottom: -1px;
  text-align: center; }

.responsive-menu-icon::before {
  content: "\f333";
  display: inline-block;
  font: normal 20px/1 'dashicons';
  margin: 0 auto;
  /*padding: 10px;*/
  padding: 10px 5px 10px 10px; }

.nav-primary .responsive-menu-icon::before {
  color: #3B3D3B; }

.menu-text {
  color: #3B3D3B;
  line-height: 1;
  vertical-align: top;
  margin-top: 11px;
  display: inline-block; }

/* # Structure and Layout
---------------------------------------------------------------------------------------------------- */
/* ## Site Containers
--------------------------------------------- */
.site-inner,
.wrap {
  margin: 0 auto;
  max-width: 1200px; }

.site-inner {
  clear: both;
  padding-top: 40px; }

/* ## Column Widths and Positions
--------------------------------------------- */
/* ### Wrapping div for .content and .sidebar-primary */
.content-sidebar-sidebar .content-sidebar-wrap,
.sidebar-content-sidebar .content-sidebar-wrap,
.sidebar-sidebar-content .content-sidebar-wrap {
  width: 82.97872%;
  float: left;
  margin-right: 2.12766%; }

.content-sidebar-sidebar .content-sidebar-wrap {
  margin-left: 0; }

.sidebar-content-sidebar .content-sidebar-wrap,
.sidebar-sidebar-content .content-sidebar-wrap,
.sidebar-content .content-sidebar-wrap {
  float: right;
  margin-right: 0; }

/* ### Content */
.content {
  width: 65.95745%;
  float: left;
  margin-right: 2.12766%; }

.sidebar-content .content,
.sidebar-sidebar-content .content {
  float: right;
  margin-right: 0; }

.content-sidebar .content,
.content-sidebar-sidebar .content,
.sidebar-content-sidebar .content {
  margin-left: 0; }

.full-width-content .content {
  width: 100%; }

/* ### Primary Sidebar */
.sidebar-primary {
  width: 31.91489%;
  float: left;
  margin-right: 2.12766%;
  float: right;
  margin-right: 0; }

.sidebar-content .sidebar-primary,
.sidebar-sidebar-content .sidebar-primary {
  margin-left: 0;
  float: left; }

/* ### Secondary Sidebar */
.sidebar-secondary {
  margin-left: 0;
  width: 14.89362%;
  float: left;
  margin-right: 2.12766%; }

.content-sidebar-sidebar .sidebar-secondary {
  float: right;
  margin-right: 0; }

@media (max-width: 1200px) {
  .site-inner,
  .wrap {
    max-width: 1030px; } }

@media (max-width: 1024px) {
  .site-inner,
  .wrap {
    max-width: 800px; }
  .site-header .wrap {
    padding: 20px 5%; }
  .sidebar-secondary,
  .content-sidebar-sidebar .content-sidebar-wrap,
  .sidebar-content-sidebar .content-sidebar-wrap,
  .sidebar-sidebar-content .content-sidebar-wrap {
    width: 100%; }
  .header-image .title-area {
    background-position: center top; }
  .genesis-nav-menu li,
  .site-header ul.genesis-nav-menu,
  .site-header .search-form {
    float: none; }
  .genesis-nav-menu,
  .site-description,
  .site-header .title-area,
  .site-header .search-form,
  .site-title {
    text-align: center; }
  .genesis-nav-menu a,
  .genesis-nav-menu > .first > a,
  .genesis-nav-menu > .last > a {
    padding: 20px 16px; }
  .site-header .search-form {
    margin: 16px auto;
    /*width: 50%;*/
    width: 234px; }
  .genesis-nav-menu li.right,
  .genesis-nav-menu.responsive-menu .menu-item.right {
    display: none; } }

@media (max-width: 767px) {
  .site-inner,
  .wrap {
    padding-left: 5%;
    padding-right: 5%; }
  .content,
  .content-sidebar-sidebar .content,
  .content-sidebar-sidebar .content-sidebar-wrap,
  .footer-widgets-1,
  .footer-widgets-2,
  .footer-widgets-3,
  .sidebar-content-sidebar .content,
  .sidebar-content-sidebar .content-sidebar-wrap,
  .sidebar-primary,
  .sidebar-secondary,
  .sidebar-sidebar-content .content,
  .sidebar-sidebar-content .content-sidebar-wrap,
  .site-header .widget-area,
  .title-area {
    width: 100%; }
  .archive-description,
  .author-box,
  .comment-respond,
  .entry,
  .entry-comments,
  .entry-pings,
  .sidebar .widget,
  .site-header {
    padding: 0; }
  .archive-pagination li a {
    margin-bottom: 4px; }
  .sidebar .widget.enews-widget {
    padding: 40px; }
  .genesis-nav-menu.responsive-menu > .menu-item > .sub-menu,
  .genesis-nav-menu.responsive-menu {
    display: none; }
  .genesis-nav-menu.responsive-menu .menu-item,
  .responsive-menu-icon {
    display: block; }
  .genesis-nav-menu.responsive-menu .menu-item {
    margin: 0; }
  .genesis-nav-menu.responsive-menu .menu-item:hover {
    position: static; }
  .genesis-nav-menu.responsive-menu .current-menu-item > a,
  .genesis-nav-menu.responsive-menu .sub-menu .current-menu-item > a:hover,
  .genesis-nav-menu.responsive-menu a,
  .genesis-nav-menu.responsive-menu a:hover {
    background: none;
    line-height: 1;
    padding: 16px 20px; }
  .nav-primary .genesis-nav-menu.responsive-menu .current-menu-item > a,
  .nav-primary .genesis-nav-menu.responsive-menu .sub-menu .current-menu-item > a:hover,
  .nav-primary .genesis-nav-menu.responsive-menu a,
  .nav-primary .genesis-nav-menu.responsive-menu a:hover {
    color: #3B3D3B; }
  .genesis-nav-menu.responsive-menu .menu-item-has-children {
    cursor: pointer; }
  .genesis-nav-menu.responsive-menu .menu-item-has-children > a {
    margin-right: 60px; }
  .genesis-nav-menu.responsive-menu > .menu-item-has-children:before {
    content: "\f347";
    float: right;
    font: normal 16px/1 'dashicons';
    height: 16px;
    padding: 16px 20px;
    right: 0;
    text-align: right;
    z-index: 9999; }
  .nav-primary .genesis-nav-menu.responsive-menu > .menu-item-has-children:before {
    color: #3B3D3B; }
  .genesis-nav-menu.responsive-menu .menu-open.menu-item-has-children:before {
    content: "\f343"; }
  .genesis-nav-menu.responsive-menu .sub-menu {
    border: none;
    left: auto;
    opacity: 1;
    padding-left: 25px;
    position: relative;
    -webkit-transition: opacity .4s ease-in-out;
    transition: opacity .4s ease-in-out;
    width: 100%;
    z-index: 99; }
  .genesis-nav-menu.responsive-menu .sub-menu .sub-menu {
    margin: 0; }
  .genesis-nav-menu.responsive-menu .sub-menu .current-menu-item > a:hover,
  .genesis-nav-menu.responsive-menu .sub-menu li a,
  .genesis-nav-menu.responsive-menu .sub-menu li a:hover {
    background: none;
    border: none;
    padding: 12px 20px;
    position: relative;
    width: 100%; } }

@media only screen and (max-width: 568px) {
  .comment-respond input[type="email"],
  .comment-respond input[type="text"],
  .comment-respond input[type="url"] {
    width: 100%; } }

/* ## Forms
--------------------------------------------- */
input,
select,
textarea {
  background-color: #fff;
  border: 1px solid #ddd;
  color: #333;
  font-size: 18px;
  font-weight: 300;
  padding: 16px;
  width: 100%; }

input:focus,
textarea:focus {
  border: 1px solid #999;
  outline: none; }

input[type="checkbox"],
input[type="image"],
input[type="radio"] {
  width: auto; }

::-moz-placeholder {
  color: #333;
  font-weight: 300;
  opacity: 1; }

::-webkit-input-placeholder {
  color: #333;
  font-weight: 300; }

button,
input[type="button"],
input[type="reset"],
input[type="submit"],
.button {
  background-color: #333;
  border: none;
  color: #fff;
  cursor: pointer;
  font-size: 16px;
  font-weight: 300;
  padding: 16px 24px;
  text-transform: uppercase;
  width: auto; }

.footer-widgets button,
.footer-widgets input[type="button"],
.footer-widgets input[type="reset"],
.footer-widgets input[type="submit"],
.footer-widgets .button {
  background-color: #e5554e;
  color: #fff; }

button:hover,
input:hover[type="button"],
input:hover[type="reset"],
input:hover[type="submit"],
.button:hover {
  background-color: #e5554e;
  color: #fff; }

.entry-content .button:hover {
  color: #fff; }

.footer-widgets button:hover,
.footer-widgets input:hover[type="button"],
.footer-widgets input:hover[type="reset"],
.footer-widgets input:hover[type="submit"],
.footer-widgets .button:hover {
  background-color: #fff;
  color: #333; }

.button {
  display: inline-block; }

input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-results-button {
  display: none; }

/* ## Tables
--------------------------------------------- */
table {
  border-collapse: collapse;
  border-spacing: 0;
  line-height: 2;
  margin-bottom: 40px;
  width: 100%; }

tbody {
  border-bottom: 1px solid #ddd; }

td,
th {
  text-align: left; }

td {
  border-top: 1px solid #ddd;
  padding: 6px 0; }

th {
  font-weight: 400; }

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

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

/* # Common Classes
---------------------------------------------------------------------------------------------------- */
/* ## Avatar
--------------------------------------------- */
.avatar {
  float: left; }

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

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

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

/* ## Genesis
--------------------------------------------- */
.breadcrumb {
  margin-bottom: 20px; }

.archive-description,
.author-box {
  background-color: #fff;
  font-size: 16px;
  margin-bottom: 40px;
  padding: 40px; }

.author-box-title {
  font-size: 16px;
  margin-bottom: 4px; }

.archive-description p:last-child,
.author-box p:last-child {
  margin-bottom: 0; }

/* ## Search Form
--------------------------------------------- */
.search-form {
  overflow: hidden; }

.site-header .search-form {
  float: right;
  margin-top: 12px; }

.entry-content .search-form {
  width: 50%; }

.genesis-nav-menu .search input[type="submit"],
.widget_search input[type="submit"] {
  border: 0;
  clip: rect(0, 0, 0, 0);
  height: 1px;
  margin: -1px;
  padding: 0;
  position: absolute;
  width: 1px; }

/* To clear search input field's text when the search field gets focus */
input[type="search"]:focus::-webkit-input-placeholder {
  color: transparent; }

input[type="search"]:focus:-moz-placeholder {
  color: transparent; }

/* Firefox 18- */
input[type="search"]:focus::-moz-placeholder {
  color: transparent; }

/* Firefox 19+ */
input[type="search"]:focus:-ms-input-placeholder {
  color: transparent; }

/* oldIE ;) */
/* ## Titles
--------------------------------------------- */
.archive-title {
  font-size: 20px; }

.entry-title {
  font-size: 36px; }

.page .entry-title {
  margin-bottom: 24px; }

.entry-title a,
.sidebar .widget-title a {
  color: #333; }

.entry-title a:hover {
  color: #e5554e; }

.widget-title {
  font-size: 18px;
  margin-bottom: 20px; }

.footer-widgets .widget-title {
  color: #fff; }

/* ## WordPress
--------------------------------------------- */
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 24px; }

img.alignnone,
.alignnone {
  margin-bottom: 12px; }

a.alignleft,
img.alignleft,
.wp-caption.alignleft {
  margin: 0 24px 24px 0; }

a.alignright,
img.alignright,
.wp-caption.alignright {
  margin: 0 0 24px 24px; }

.wp-caption-text {
  font-size: 14px;
  font-weight: 700;
  text-align: center; }

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

.colour-block, .booking-button, .photo-link {
  display: block;
  width: 100%;
  font-size: 20px;
  text-align: center;
  color: #fff;
  padding: 50px 0;
  font-family: Source Sans, sans-serif; }
  .colour-block:hover, .booking-button:hover, .photo-link:hover {
    color: rgba(255, 255, 255, 0.85); }

.booking-button {
  color: #fff;
  font-size: 40px;
  padding: 100px 0 100px; }
  .booking-button:before {
    content: "";
    position: relative;
    display: inline-block;
    width: auto;
    text-decoration: none;
    text-rendering: optimizeLegibility !important;
    -webkit-font-smoothing: antialiased !important;
    -moz-osx-font-smoothing: grayscale !important;
    speak: none;
    text-transform: none;
    line-height: normal;
    font-style: normal;
    font-variant: normal;
    font-weight: normal;
    font-family: "entypo";
    font-size: 16px;
    font-size: 40px;
    margin-right: 6px;
    position: relative;
    top: -2px;
    margin-left: 2px; }
  .booking-button:hover {
    color: rgba(255, 255, 255, 0.85); }

.bg-yellow .booking-button {
  color: #3B3D3B; }
  .bg-yellow .booking-button:hover {
    color: rgba(59, 61, 59, 0.85); }

.photo-link {
  position: relative;
  overflow: hidden;
  min-height: 200px; }
  .photo-link .text {
    background: #cf4520;
    font-size: 50px;
    padding: 0 29px;
    float: right;
    right: 0; }
  .photo-link.stay {
    padding: 10px 0 130px; }
  .photo-link.play {
    padding: 130px 0 10px; }

.homepage-heading-link a {
  font-family: Source Sans, sans-serif;
  padding: 15px 0 0;
  width: 100%;
  display: block;
  color: #fff; }

.slideshow .fl-col-content {
  padding: 0; }

.homepage-grid .fl-col-content {
  margin: 0 10px; }

@media (max-width: 767px) {
  .homepage-grid .fl-col-content {
    padding-top: 0;
    margin-bottom: 10px; } }

.page-nav-links .fl-col-content {
  padding: 0; }
  .page-nav-links .fl-col-content .booking-button {
    padding: 80px 0; }
  .page-nav-links .fl-col-content .stay {
    padding: 20px 0 140px; }
  .page-nav-links .fl-col-content .play {
    padding: 140px 0 20px; }

/* # Widgets
---------------------------------------------------------------------------------------------------- */
.widget {
  word-wrap: break-word; }

.widget ol > li {
  list-style-position: inside;
  list-style-type: decimal;
  padding-left: 20px;
  text-indent: -20px; }

.widget li li {
  border: none;
  margin: 0 0 0 30px;
  padding: 0; }

.widget_calendar table {
  width: 100%; }

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

/* ## Featured Content
--------------------------------------------- */
.featured-content .entry {
  border-bottom: 2px solid #f5f5f5;
  margin-bottom: 20px;
  padding: 0 0 24px; }

.footer-widgets .entry {
  border-bottom: 1px dotted #666; }

.featured-content .entry-title {
  font-size: 20px; }

/* # Plugins
---------------------------------------------------------------------------------------------------- */
/* ## Genesis eNews Extended
--------------------------------------------- */
.enews-widget,
.enews-widget .widget-title {
  color: #fff; }

.sidebar .widget.enews-widget {
  background-color: #333; }

.enews-widget input,
.enews-widget input:focus {
  border: 1px solid #333; }

.enews-widget input {
  font-size: 16px;
  margin-bottom: 16px; }

.enews-widget input[type="submit"] {
  background-color: #e5554e;
  color: #fff;
  margin: 0;
  width: 100%; }

.enews-widget input:hover[type="submit"] {
  background-color: #fff;
  color: #333; }

.enews form + p {
  margin-top: 24px; }

/* ## Jetpack
--------------------------------------------- */
#wpstats {
  display: none; }

/* To avoid noticeable vertical movement for hover state of Soliloquy's Control Nav (typically circles) and bxSlider's left and right arrows */
.soliloquy-container .soliloquy-control-nav li a,
.soliloquy-theme-classic .soliloquy-pager-link,
.bx-wrapper .bx-controls-direction a {
  -webkit-transition: none;
  transition: none; }

/* To remove bottom border for Soliloquy controls */
.entry-content .soliloquy-controls-direction a, .entry-content a.soliloquy-pager-link {
  border-bottom: none; }

/* # Site Header
---------------------------------------------------------------------------------------------------- */
.site-header {
  background-color: #fff;
  border-bottom: 5px solid #cf4520;
  /*min-height: 160px;*/ }
  .site-header .wrap {
    padding: 40px 0 0; }
    @media (max-width: 767px) {
      .site-header .wrap {
        padding-top: 5px; } }

/* ## Title Area
--------------------------------------------- */
.title-area {
  float: left;
  padding: 10px 0 10px 29px;
  width: 280px; }
  @media (min-width: 768px) {
    .title-area {
      padding-top: 0;
      margin-top: -20px;
      margin-bottom: 10px; } }
  @media (max-width: 767px) {
    .title-area {
      float: none;
      margin: 0 auto; } }

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

.site-title {
  font-size: 32px;
  font-weight: 400;
  line-height: 1.2; }
  @media (min-width: 768px) {
    .site-title {
      position: relative;
      z-index: 99; } }

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

.site-title a img {
  vertical-align: top; }

.header-image .site-title > a {
  background: url(images/logo.svg) no-repeat left !important;
  background-size: 250px !important;
  float: left;
  min-height: 120px;
  width: 100%;
  margin-left: -15px; }

.site-description {
  font-size: 16px;
  font-weight: 300;
  line-height: 1.5; }

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

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

/* ## Widget Area
--------------------------------------------- */
.site-header .widget-area {
  float: right;
  text-align: right;
  /*width: 800px;*/ }
  @media (max-width: 767px) {
    .site-header .widget-area {
      text-align: center;
      float: none; } }
  .site-header .widget-area a.button.booking {
    background-color: #cf4520;
    color: #fff;
    padding: 10px 20px;
    margin-bottom: 5px; }
    .site-header .widget-area a.button.booking:before {
      content: "";
      position: relative;
      display: inline-block;
      width: auto;
      text-decoration: none;
      text-rendering: optimizeLegibility !important;
      -webkit-font-smoothing: antialiased !important;
      -moz-osx-font-smoothing: grayscale !important;
      speak: none;
      text-transform: none;
      line-height: normal;
      font-style: normal;
      font-variant: normal;
      font-weight: normal;
      font-family: "entypo";
      font-size: 16px;
      font-size: 1.3em;
      margin-right: 6px;
      position: relative;
      top: -1px;
      margin-left: 2px; }
  @media (max-width: 767px) {
    .site-header .widget-area .booking-button,
    .site-header .widget-area .phone-number,
    .site-header .widget-area .yha-logo {
      display: inline-block; }
    .site-header .widget-area a.button.booking {
      background: white;
      color: #3B3D3B; } }
  @media (min-width: 768px) {
    .site-header .widget-area {
      margin-top: -40px; }
      .site-header .widget-area .booking-button,
      .site-header .widget-area .phone-number,
      .site-header .widget-area .yha-logo {
        float: left; }
      .site-header .widget-area .phone-number {
        padding-top: 10px;
        padding-right: 20px; }
      .site-header .widget-area .yha-logo {
        padding-right: 20px;
        padding-top: 3px; }
        .site-header .widget-area .yha-logo img {
          float: left; }
        .site-header .widget-area .yha-logo .yha-header-text {
          padding: 7px 0 0 10px;
          display: inline-block; } }
  @media (max-width: 1024px) {
    .site-header .widget-area {
      margin-top: 0; }
      .site-header .widget-area .booking.button {
        clear: both; }
      .site-header .widget-area .yha-logo {
        float: right; }
      .site-header .widget-area .booking.button {
        float: right; } }
  @media (max-width: 767px) {
    .site-header .widget-area {
      margin-top: 0px; }
      .site-header .widget-area .booking.button,
      .site-header .widget-area .phone-number,
      .site-header .widget-area .yha-logo {
        display: inline-block;
        float: none; }
      .site-header .widget-area .yha-logo img {
        float: left; }
      .site-header .widget-area .yha-logo .yha-header-text {
        padding: 7px 0 0 10px;
        display: inline-block; }
      .site-header .widget-area a.button.booking {
        background: white;
        color: #3B3D3B; } }

/* # Site Navigation
---------------------------------------------------------------------------------------------------- */
.nav-primary {
  width: 100%; }
  @media (min-width: 768px) {
    .nav-primary {
      margin-top: -100px;
      clear: both;
      float: right; } }
  @media (max-width: 1024px) {
    .nav-primary {
      margin-top: 0;
      float: left; }
      .nav-primary .wrap {
        margin-top: 0;
        padding-top: 0; } }

.genesis-nav-menu {
  clear: both;
  line-height: 1;
  width: 100%;
  padding-left: 14.5px;
  text-align: right; }
  @media (max-width: 1024px) {
    .genesis-nav-menu {
      text-align: center; } }
  .genesis-nav-menu .sub-menu a {
    background-color: #fff;
    color: #3B3D3B;
    border-top: none;
    border-bottom: none;
    font-size: 14px;
    padding: 20px;
    position: relative;
    width: 200px; }
  .genesis-nav-menu .sub-menu li:last-of-type a {
    border-bottom: 5px solid #cf4520; }

.blue-menu .genesis-nav-menu {
  border-bottom-color: #308FA1; }

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

.genesis-nav-menu a {
  color: #3B3D3B;
  display: block;
  padding: 20px 14.5px 15px; }
  @media (max-width: 1024px) {
    .genesis-nav-menu a {
      padding: 20px 9.66667px 15px !important; } }

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

.genesis-nav-menu .sub-menu {
  left: -9999px;
  opacity: 0;
  position: absolute;
  -webkit-transition: opacity .4s ease-in-out;
  transition: opacity .4s ease-in-out;
  width: 200px;
  z-index: 99; }

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

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

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

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

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

.genesis-nav-menu > .right {
  color: #fff;
  float: right;
  list-style-type: none;
  padding: 30px 0; }

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

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

.genesis-nav-menu > .search {
  padding: 10px 0 0; }

/* ## Site Header Navigation
--------------------------------------------- */
.site-header .sub-menu .sub-menu {
  margin-top: -56px; }

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

/* ## Primary Navigation
--------------------------------------------- */
.nav-primary {
  background-color: #fff; }

.nav-primary .genesis-nav-menu a {
  color: #3B3D3B; }

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

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

/* ## Secondary Navigation
--------------------------------------------- */
.nav-secondary {
  background-color: #fff; }

.footer-widgets .wrap,
.site-inner .wrap {
  padding-left: 29px;
  padding-right: 29px; }

/* # Footer Widgets
---------------------------------------------------------------------------------------------------- */
.footer-widgets {
  background-color: #cf4520;
  clear: both;
  padding-top: 40px;
  color: #fff; }
  .footer-widgets a {
    color: #f3bdaf; }
  .footer-widgets a.button {
    color: #fff;
    background: #e26340;
    border-bottom: none; }
    .footer-widgets a.button:hover {
      color: #fff;
      background: #e57557; }
  .footer-widgets input {
    border: 1px solid #585552; }
  .footer-widgets li {
    margin-bottom: 10px;
    padding-bottom: 10px; }
  .footer-widgets .facebook:before,
  .footer-widgets .youtube:before,
  .footer-widgets .instagram:before {
    color: #f3bdaf !important; }

.footer-widgets .widget {
  margin-bottom: 40px; }

.footer-widgets p:last-child {
  margin-bottom: 0; }

@media (min-width: 768px) {
  .footer-widgets-1,
  .footer-widgets-2,
  .footer-widgets-3,
  .footer-widgets-4 {
    width: 23.40426%;
    float: left;
    margin-right: 2.12766%; }
  .footer-widgets-2 {
    width: 14.89362%;
    float: left;
    margin-right: 2.12766%; }
  .footer-widgets-4 {
    width: 31.91489%;
    float: left;
    margin-right: 2.12766%;
    float: right;
    margin-right: 0; } }

/* # Site Footer
---------------------------------------------------------------------------------------------------- */
.site-footer {
  background-color: #cf4520;
  font-size: 16px;
  line-height: 1;
  padding: 40px 0;
  text-align: center;
  color: #fff; }
  .site-footer p {
    margin-bottom: 0; }
  .site-footer a {
    color: #f3bdaf; }

/* # Content Area
---------------------------------------------------------------------------------------------------- */
/* ## Entries
--------------------------------------------- */
.entry {
  margin-bottom: 48px;
  padding: 18px 29px; }
  .entry .entry-header,
  .entry .entry-footer {
    padding: 0; }

.content .entry {
  background-color: #fff; }

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

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

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

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

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

/* ## Entry Meta
--------------------------------------------- */
p.entry-meta {
  font-size: 16px;
  margin-bottom: 0; }

.entry-header .entry-meta {
  margin-bottom: 24px; }

.entry-footer .entry-meta {
  padding-top: 24px; }

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

.entry-comments-link::before {
  content: "\2014";
  margin: 0 6px 0 2px; }

/* ## Pagination
--------------------------------------------- */
.pagination {
  clear: both;
  margin: 40px 0; }

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

.archive-pagination li {
  display: inline; }

.archive-pagination li a {
  background-color: #333;
  color: #fff;
  cursor: pointer;
  display: inline-block;
  font-size: 16px;
  padding: 8px 12px; }

.archive-pagination li a:hover,
.archive-pagination .active a {
  background-color: #e5554e; }

/* ## Comments
--------------------------------------------- */
.comment-respond,
.entry-comments,
.entry-pings {
  background-color: #fff;
  margin-bottom: 40px; }

.comment-respond,
.entry-pings {
  padding: 40px 40px 16px; }

.entry-comments {
  padding: 40px; }

.comment-header {
  font-size: 16px; }

li.comment {
  background-color: #f5f5f5;
  border: 2px solid #fff;
  border-right: none; }

.comment-content {
  clear: both; }

.comment-list li {
  margin-top: 24px;
  padding: 32px; }

.comment-list li li {
  margin-right: -32px; }

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

.comment-respond label {
  display: block;
  margin-right: 12px; }

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

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

.form-allowed-tags {
  background-color: #f5f5f5;
  font-size: 16px;
  padding: 24px; }

/* # Sidebars
---------------------------------------------------------------------------------------------------- */
.sidebar {
  font-size: 16px; }

.sidebar li {
  border-bottom: 1px dotted #ddd;
  margin-bottom: 10px;
  padding-bottom: 10px; }

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

.sidebar .widget {
  background-color: #f8f8f8;
  margin-bottom: 30px;
  padding: 29px; }

/*
 * Page Builder
 * (Beaver builder) - default styling
 */
.fl-builder .entry {
  padding: 0; }
  .fl-builder .entry .entry-header,
  .fl-builder .entry .entry-footer {
    padding: 18px 29px 0; }

@media (max-width: 1024px) {
  .fl-builder .site-inner {
    padding: 0; } }

@media (max-width: 767px) {
  .fl-builder .site-inner {
    padding: 0; } }

.fl-row-content {
  padding: 29px; }

.fl-col-content {
  margin: 0 18px;
  padding-top: 18px;
  padding-bottom: 18px; }

.fl-col-group {
  margin-left: -18px;
  margin-right: -18px; }
  @media (max-width: 767px) {
    .fl-col-group {
      margin-left: 0;
      margin-right: 0; } }

@media (max-width: 767px) {
  .fl-col-small {
    max-width: 100% !important; } }

.fl-module-heading h1.fl-heading {
  color: #3B3D3B; }

.fl-cta-wrap .fl-cta-title {
  color: #3B3D3B !important; }

.content-sidebar .fl-row-content,
.content-sidebar .fl-col-content,
.sidebar-content .fl-row-content,
.sidebar-content .fl-col-content,
.content-sidebar-sidebar .fl-row-content,
.content-sidebar-sidebar .fl-col-content,
.sidebar-content-sidebar .fl-row-content,
.sidebar-content-sidebar .fl-col-content,
.sidebar-sidebar-content .fl-row-content,
.sidebar-sidebar-content .fl-col-content {
  padding-top: 0;
  padding-bottom: 0; }

.content-sidebar .fl-row.padding .fl-row-content,
.sidebar-content .fl-row.padding .fl-row-content,
.content-sidebar-sidebar .fl-row.padding .fl-row-content,
.sidebar-content-sidebar .fl-row.padding .fl-row-content,
.sidebar-sidebar-content .fl-row.padding .fl-row-content {
  padding: 29px; }

.fl-col.padding .fl-col-content {
  padding: 18px; }

.edge-to-edge .fl-row-content,
.edge-to-edge .fl-col-content {
  padding: 0; }

.page-template-page_builder .site-inner,
.page-template-page_landing .site-inner {
  max-width: 100%;
  padding-top: 0; }
  .page-template-page_builder .site-inner .wrap,
  .page-template-page_landing .site-inner .wrap {
    width: 100%;
    max-width: 100%; }
  .page-template-page_builder .site-inner .entry,
  .page-template-page_landing .site-inner .entry {
    margin-bottom: 0; }

@media (max-width: 767px) {
  .fl-col.bg-light {
    padding: 11px 18px !important; }
    .fl-col.bg-light .fl-module-content {
      margin-top: -11px;
      margin-bottom: -18px; } }

@media (max-width: 767px) {
  .play-grid .fl-col {
    width: 46.66667%;
    float: left;
    margin-bottom: 11px; }
    .play-grid .fl-col:nth-child(2n + 1) {
      margin-left: 0;
      margin-right: -100%;
      clear: both;
      margin-left: 0; }
    .play-grid .fl-col:nth-child(2n + 2) {
      margin-left: 53.33333%;
      margin-right: -100%;
      clear: none; }
    .play-grid .fl-col .fl-col-content {
      padding-top: 0 !important; }
  .play-grid .fl-col-small {
    width: 46.66667% !important; } }

/**
 * Icon Fonts
 */
.phone-number {
  margin-bottom: 11px; }
  .phone-number:before {
    content: "";
    position: relative;
    display: inline-block;
    width: auto;
    text-decoration: none;
    text-rendering: optimizeLegibility !important;
    -webkit-font-smoothing: antialiased !important;
    -moz-osx-font-smoothing: grayscale !important;
    speak: none;
    text-transform: none;
    line-height: normal;
    font-style: normal;
    font-variant: normal;
    font-weight: normal;
    font-family: "entypo";
    font-size: 16px;
    font-size: 1.3em;
    margin-right: 6px;
    position: relative;
    top: 1px;
    margin-left: 2px; }

.mobile-number {
  margin-bottom: 11px; }
  .mobile-number:before {
    content: "";
    position: relative;
    display: inline-block;
    width: auto;
    text-decoration: none;
    text-rendering: optimizeLegibility !important;
    -webkit-font-smoothing: antialiased !important;
    -moz-osx-font-smoothing: grayscale !important;
    speak: none;
    text-transform: none;
    line-height: normal;
    font-style: normal;
    font-variant: normal;
    font-weight: normal;
    font-family: "entypo";
    font-size: 16px;
    font-size: 1.3em;
    margin-right: 10px;
    position: relative;
    top: 1px;
    margin-left: 3px; }

.address-full {
  margin-bottom: 11px; }
  .address-full:before {
    content: "";
    position: relative;
    display: inline-block;
    width: auto;
    text-decoration: none;
    text-rendering: optimizeLegibility !important;
    -webkit-font-smoothing: antialiased !important;
    -moz-osx-font-smoothing: grayscale !important;
    speak: none;
    text-transform: none;
    line-height: normal;
    font-style: normal;
    font-variant: normal;
    font-weight: normal;
    font-family: "entypo";
    font-size: 16px;
    font-size: 1.3em;
    margin-right: 5px;
    position: relative;
    top: 0;
    float: left;
    display: block; }
  .address-full .street-address-wrap,
  .address-full .city-postcode {
    padding-left: 25px; }

.social-network-link {
  margin-bottom: 11px; }
  .social-network-link.facebook:before {
    content: "";
    position: relative;
    display: inline-block;
    width: auto;
    text-decoration: none;
    text-rendering: optimizeLegibility !important;
    -webkit-font-smoothing: antialiased !important;
    -moz-osx-font-smoothing: grayscale !important;
    speak: none;
    text-transform: none;
    line-height: normal;
    font-style: normal;
    font-variant: normal;
    font-weight: normal;
    font-family: "entypo";
    font-size: 16px;
    font-size: 1.3em;
    margin-right: 7px;
    position: relative;
    top: 1px;
    color: #3b5998; }

.contact-us-page-content {
  margin-top: 18px; }

@media (min-width: 768px) {
  .content .room-container {
    width: 31.91489%;
    float: left;
    padding-top: 18px; }
    .content .room-container:nth-child(3n + 1) {
      margin-left: 0;
      margin-right: -100%;
      clear: both;
      margin-left: 0; }
    .content .room-container:nth-child(3n + 2) {
      margin-left: 34.04255%;
      margin-right: -100%;
      clear: none; }
    .content .room-container:nth-child(3n + 3) {
      margin-left: 68.08511%;
      margin-right: -100%;
      clear: none; } }

@media (min-width: 768px) {
  .content .list .room-container {
    width: 100%;
    float: left;
    margin-left: 0;
    margin-right: 0; } }

.content .list .room-container h4,
.sidebar .room-container h4 {
  margin-bottom: 0; }

.content .list .room-container .room-rates,
.sidebar .room-container .room-rates {
  margin-bottom: 18px; }

.accents-toggle-control {
  position: relative;
  padding: 18px 18px;
  margin-top: -10px;
  background: #F8F8F8; }
  .accents-toggle-control h3 {
    margin-bottom: 0; }

.accents-toggle-box {
  background: #F8F8F8;
  padding: 18px 18px; }
  .accents-toggle-box .button {
    background-color: #cf4520;
    color: #fff;
    padding: 10px 20px;
    margin-bottom: 5px; }

#TB_window {
  width: 100% !important;
  height: 100% !important;
  margin-top: 0px !important;
  margin-left: 0px !important;
  top: 15% !important;
  right: 10% !important;
  bottom: 15% !important;
  left: 10% !important;
  width: 80% !important;
  height: 50% !important; }

#TB_ajaxContent {
  width: 100% !important;
  height: 100% !important; }

#TB_Image {
  width: auto !important;
  max-width: 100%;
  height: auto !important;
  max-height: 100%;
  margin: auto !important;
  position: absolute;
  top: 0px;
  bottom: 0px;
  left: 0px;
  right: 0px;
  padding: 20px;
  border: none !important; }

@media (min-width: 992px) {
  #TB_window {
    top: 10% !important;
    bottom: 10% !important;
    height: 80% !important; } }

.facilities-icon h3, .facilities-icon h4 {
  color: #616461; }

.facilities-icon .fl-callout-text {
  margin-top: -10px;
  color: #6d716d;
  font-size: 16.2px;
  font-style: italic; }

/*
 * Any general site Custom SASS starts here...
 * Try and keep SASS organised in partials and imported above for clarity
 */

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0eWxlLmNzcyIsInN0eWxlLnNjc3MiLCJzZXR0aW5ncy9fc3V6eS1zZXR0aW5ncy5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9zdXN5L3Nhc3Mvc3VzeS9vdXRwdXQvc3VwcG9ydC9fcmVtLnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL3N1c3kvc2Fzcy9zdXN5L2xhbmd1YWdlL3N1c3kvX2NvbnRhaW5lci5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9zdXN5L3Nhc3Mvc3VzeS9vdXRwdXQvc3VwcG9ydC9fY2xlYXJmaXguc2NzcyIsInV0aWxpdGllcy9fbm9ybWFsaXplLnNjc3MiLCJ1dGlsaXRpZXMvX2RlZmF1bHRzLnNjc3MiLCJ1dGlsaXRpZXMvX2NsZWFyZml4LnNjc3MiLCJ1dGlsaXRpZXMvX2NvbHVtbnMuc2NzcyIsInV0aWxpdGllcy9fbWFnbmlmaWMtbGlnaHRib3guc2NzcyIsInV0aWxpdGllcy9fZW50eXBvLnNjc3MiLCJfY29sb3Vycy5zY3NzIiwidXRpbGl0aWVzL190b2dnbGUuc2NzcyIsIl90eXBvZ3JhcGh5LnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL21vZHVsYXItc2NhbGUvc3R5bGVzaGVldHMvbW9kdWxhci1zY2FsZS9fcm91bmQtcHguc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvY29tcGFzcy1icmVha3BvaW50L3N0eWxlc2hlZXRzL19icmVha3BvaW50LnNjc3MiLCJfcmVzcG9uc2l2ZS1tZW51LnNjc3MiLCJfbGF5b3V0LnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL3N1c3kvc2Fzcy9zdXN5L2xhbmd1YWdlL3N1c3kvX3NwYW4uc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvc3VzeS9zYXNzL3N1c3kvb3V0cHV0L3NoYXJlZC9fZGlyZWN0aW9uLnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL3N1c3kvc2Fzcy9zdXN5L2xhbmd1YWdlL3N1c3kvX2d1dHRlcnMuc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvc3VzeS9zYXNzL3N1c3kvb3V0cHV0L2Zsb2F0L19lbmQuc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvc3VzeS9zYXNzL3N1c3kvbGFuZ3VhZ2Uvc3VzeS9fcm93cy5zY3NzIiwiY29udGVudC1saWIvX2Zvcm1zLnNjc3MiLCJjb250ZW50LWxpYi9fdGFibGVzLnNjc3MiLCJjb250ZW50LWxpYi9fZ2FsbGVyaWVzLnNjc3MiLCJjb250ZW50LWxpYi9fY29tbW9uLWNsYXNzZXMuc2NzcyIsIl9ob21lcGFnZS5zY3NzIiwiX3dpZGdldHMuc2NzcyIsInBsdWdpbnMvX2dlbmVyYWwuc2NzcyIsInBsdWdpbnMvX3NvbGlsb3F1eS5zY3NzIiwiX2hlYWRlci5zY3NzIiwiX25hdmlnYXRpb24uc2NzcyIsIl9mb290ZXIuc2NzcyIsIl9jb250ZW50LnNjc3MiLCJfc2lkZWJhcnMuc2NzcyIsIl9wYWdlLWJ1aWxkZXIuc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvc3VzeS9zYXNzL3N1c3kvbGFuZ3VhZ2Uvc3VzeS9faXNvbGF0ZS5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9zdXN5L3Nhc3Mvc3VzeS9sYW5ndWFnZS9zdXN5L19nYWxsZXJ5LnNjc3MiLCJfaWNvbi1mb250cy5zY3NzIiwiX3Jvb21zLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUJBQWlCO0FDQWpCOzs7Ozs7Ozs7Ozs7Ozs7O0VBZ0JFO0FDUEY7RUNVSSxvQkNxQ3dCO0VEckN4QixrQkNxRG9DO0VEckRwQyxtQkNxRG1FO0VGN0R0RSxzQkFBc0IsRUFDdEI7RUFIRDtJR0dNLGFBQWE7SUFDYixlQUFlO0lBQ2YsWUFBWSxFQUNiOztBSERMOzs7Ozs7R0FNRztBQVFGOztJQUVHO0FJOUJKLDREQUE0RDtBQUU1RDs7OztHQUlHO0FBRUg7RUFDRSx3QkFBd0I7RUFBRSxPQUFPO0VB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LHVCQUF1QjtFQUN2QixxQkFBcUI7RUFDckIsc0JBQXNCO0VBQ3RCLHVCQUF1QixFQUN4Qjs7QUFFRDtFQUNHLHVCQUF1QjtFQUN2Qix3QkFBd0IsRUFDMUI7O0FBRUQ7RUFDRSx1QkFBdUI7RUFDdkIsZ0JBQWdCO0VBQ2hCLHdCQUF3QjtFQUN4QixpQkFBaUI7RUFDakIsd0JBQXdCO0VBQ3hCLG1CQUFtQjtFQUNuQixTQUFTO0VBQ1QsWUFBWTtFQUNaLFVBQVU7RUFDVixXQUFXO0VBQ1gsY0FBYztFQUNkLHdCQUF3QixFQUN6Qjs7QUFFRDtFQUNFO0lBQ0Usb0JBQW9CO0lBQ3BCLHVCQUF1QjtJQUN2Qix1QkFBdUIsRUFDeEIsRUFBQTs7QUFHSDtFQUVNLGVBQWMsRUFDaEI7O0FBSEo7RUFNTSxrQkFBa0I7RUFDbEIsZUFBYztFQUNkLGtCQUFnQjtFQUNoQixtQkFBbUIsRUFDckI7O0F4Q3pESjs7O0dBR0ciLCJmaWxlIjoic3R5bGUuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQGNoYXJzZXQgXCJVVEYtOFwiO1xuLypcblx0VGhlbWUgTmFtZTogVG9ybGVzc2Vcblx0VGhlbWUgVVJJOiBodHRwOi8vd3d3LmF2b2NhZGVzaWduLmNvLm56XG5cdERlc2NyaXB0aW9uOiBBIG1vYmlsZSByZXNwb25zaXZlIGFuZCBIVE1MNSB0aGVtZSBidWlsdCBmb3IgdGhlIEdlbmVzaXMgRnJhbWV3b3JrLlxuXHRBdXRob3I6IEF2b2NhIERlc2lnblxuXHRBdXRob3IgVVJJOiBodHRwOi8vd3d3LmF2b2NhZGVzaWduLmNvLm56XG5cblx0VmVyc2lvbjogMS4wXG5cblx0VGFnczogYmxhY2ssIHdoaXRlLCBvbmUtY29sdW1uLCB0d28tY29sdW1ucywgZml4ZWQtd2lkdGgsIGN1c3RvbS1tZW51LCBmdWxsLXdpZHRoLXRlbXBsYXRlLCBzdGlja3ktcG9zdCwgdGhlbWUtb3B0aW9ucywgdGhyZWFkZWQtY29tbWVudHMsIHRyYW5zbGF0aW9uLXJlYWR5XG5cblx0VGVtcGxhdGU6IGdlbmVzaXNcblx0VGVtcGxhdGUgVmVyc2lvbjogMS4wXG5cblx0TGljZW5zZTogR1BMLTIuMCtcblx0TGljZW5zZSBVUkk6IGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvZ3BsLWxpY2Vuc2UucGhwXG4qL1xuLnNpdGUtaW5uZXIgLndyYXAge1xuICBtYXgtd2lkdGg6IDc2LjA0NmVtO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7IH1cbiAgLnNpdGUtaW5uZXIgLndyYXA6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiIFwiO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGNsZWFyOiBib3RoOyB9XG5cbi8qXG4gKiBNb2R1bGFyIFNjYWxlIFNldHRpbmdzXG4gKlxuICogaHR0cDovL3d3dy5tb2R1bGFyc2NhbGUuY29tIGJ5IFRpbSBCcm93blxuICogaHR0cHM6Ly9naXRodWIuY29tL1RlYW0tU2Fzcy9tb2R1bGFyLXNjYWxlXG4gKiB2ZXJzaW9uIDIgc3ludGF4XG4gKi9cbi8qXG5cdCAqIFNpemluZ1xuXHQgKi9cbi8qISBub3JtYWxpemUuY3NzIHYzLjAuMiB8IE1JVCBMaWNlbnNlIHwgZ2l0LmlvL25vcm1hbGl6ZSAqL1xuLyoqXG4gKiAxLiBTZXQgZGVmYXVsdCBmb250IGZhbWlseSB0byBzYW5zLXNlcmlmLlxuICogMi4gUHJldmVudCBpT1MgdGV4dCBzaXplIGFkanVzdCBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2UsIHdpdGhvdXQgZGlzYWJsaW5nXG4gKiAgICB1c2VyIHpvb20uXG4gKi9cbmh0bWwge1xuICBmb250LWZhbWlseTogc2Fucy1zZXJpZjtcbiAgLyogMSAqL1xuICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgLyogMiAqL1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAqIFJlbW92ZSBkZWZhdWx0IG1hcmdpbi5cbiAqL1xuYm9keSB7XG4gIG1hcmdpbjogMDsgfVxuXG4vKiBIVE1MNSBkaXNwbGF5IGRlZmluaXRpb25zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYW55IEhUTUw1IGVsZW1lbnQgaW4gSUUgOC85LlxuICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGBkZXRhaWxzYCBvciBgc3VtbWFyeWAgaW4gSUUgMTAvMTFcbiAqIGFuZCBGaXJlZm94LlxuICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGBtYWluYCBpbiBJRSAxMS5cbiAqL1xuYXJ0aWNsZSxcbmFzaWRlLFxuZGV0YWlscyxcbmZpZ2NhcHRpb24sXG5maWd1cmUsXG5mb290ZXIsXG5oZWFkZXIsXG5oZ3JvdXAsXG5tYWluLFxubWVudSxcbm5hdixcbnNlY3Rpb24sXG5zdW1tYXJ5IHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IGBpbmxpbmUtYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgaW4gSUUgOC85LlxuICogMi4gTm9ybWFsaXplIHZlcnRpY2FsIGFsaWdubWVudCBvZiBgcHJvZ3Jlc3NgIGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuICovXG5hdWRpbyxcbmNhbnZhcyxcbnByb2dyZXNzLFxudmlkZW8ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIC8qIDEgKi9cbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICAvKiAyICovIH1cblxuLyoqXG4gKiBQcmV2ZW50IG1vZGVybiBicm93c2VycyBmcm9tIGRpc3BsYXlpbmcgYGF1ZGlvYCB3aXRob3V0IGNvbnRyb2xzLlxuICogUmVtb3ZlIGV4Y2VzcyBoZWlnaHQgaW4gaU9TIDUgZGV2aWNlcy5cbiAqL1xuYXVkaW86bm90KFtjb250cm9sc10pIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgaGVpZ2h0OiAwOyB9XG5cbi8qKlxuICogQWRkcmVzcyBgW2hpZGRlbl1gIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LzEwLlxuICogSGlkZSB0aGUgYHRlbXBsYXRlYCBlbGVtZW50IGluIElFIDgvOS8xMSwgU2FmYXJpLCBhbmQgRmlyZWZveCA8IDIyLlxuICovXG5baGlkZGVuXSxcbnRlbXBsYXRlIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4vKiBMaW5rc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgY29sb3IgZnJvbSBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG4gKi9cbmEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuXG4vKipcbiAqIEltcHJvdmUgcmVhZGFiaWxpdHkgd2hlbiBmb2N1c2VkIGFuZCBhbHNvIG1vdXNlIGhvdmVyZWQgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5hOmFjdGl2ZSxcbmE6aG92ZXIge1xuICBvdXRsaW5lOiAwOyB9XG5cbi8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LzEwLzExLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gKi9cbmFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZDsgfVxuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGUgc2V0IHRvIGBib2xkZXJgIGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbi8qKlxuICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIFNhZmFyaSBhbmQgQ2hyb21lLlxuICovXG5kZm4ge1xuICBmb250LXN0eWxlOiBpdGFsaWM7IH1cblxuLyoqXG4gKiBBZGRyZXNzIHZhcmlhYmxlIGBoMWAgZm9udC1zaXplIGFuZCBtYXJnaW4gd2l0aGluIGBzZWN0aW9uYCBhbmQgYGFydGljbGVgXG4gKiBjb250ZXh0cyBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gKi9cbmgxIHtcbiAgZm9udC1zaXplOiAyZW07XG4gIG1hcmdpbjogMC42N2VtIDA7IH1cblxuLyoqXG4gKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LlxuICovXG5tYXJrIHtcbiAgYmFja2dyb3VuZDogI2ZmMDtcbiAgY29sb3I6ICMwMDA7IH1cblxuLyoqXG4gKiBBZGRyZXNzIGluY29uc2lzdGVudCBhbmQgdmFyaWFibGUgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqL1xuc21hbGwge1xuICBmb250LXNpemU6IDgwJTsgfVxuXG4vKipcbiAqIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGFmZmVjdGluZyBgbGluZS1oZWlnaHRgIGluIGFsbCBicm93c2Vycy5cbiAqL1xuc3ViLFxuc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgfVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTsgfVxuXG5zdWIge1xuICBib3R0b206IC0wLjI1ZW07IH1cblxuLyogRW1iZWRkZWQgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogUmVtb3ZlIGJvcmRlciB3aGVuIGluc2lkZSBgYWAgZWxlbWVudCBpbiBJRSA4LzkvMTAuXG4gKi9cbmltZyB7XG4gIGJvcmRlcjogMDsgfVxuXG4vKipcbiAqIENvcnJlY3Qgb3ZlcmZsb3cgbm90IGhpZGRlbiBpbiBJRSA5LzEwLzExLlxuICovXG5zdmc6bm90KDpyb290KSB7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuLyogR3JvdXBpbmcgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogQWRkcmVzcyBtYXJnaW4gbm90IHByZXNlbnQgaW4gSUUgOC85IGFuZCBTYWZhcmkuXG4gKi9cbmZpZ3VyZSB7XG4gIG1hcmdpbjogMWVtIDQwcHg7IH1cblxuLyoqXG4gKiBBZGRyZXNzIGRpZmZlcmVuY2VzIGJldHdlZW4gRmlyZWZveCBhbmQgb3RoZXIgYnJvd3NlcnMuXG4gKi9cbmhyIHtcbiAgLW1vei1ib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIGhlaWdodDogMDsgfVxuXG4vKipcbiAqIENvbnRhaW4gb3ZlcmZsb3cgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5wcmUge1xuICBvdmVyZmxvdzogYXV0bzsgfVxuXG4vKipcbiAqIEFkZHJlc3Mgb2RkIGBlbWAtdW5pdCBmb250IHNpemUgcmVuZGVyaW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xuY29kZSxcbmtiZCxcbnByZSxcbnNhbXAge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gIGZvbnQtc2l6ZTogMWVtOyB9XG5cbi8qIEZvcm1zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBLbm93biBsaW1pdGF0aW9uOiBieSBkZWZhdWx0LCBDaHJvbWUgYW5kIFNhZmFyaSBvbiBPUyBYIGFsbG93IHZlcnkgbGltaXRlZFxuICogc3R5bGluZyBvZiBgc2VsZWN0YCwgdW5sZXNzIGEgYGJvcmRlcmAgcHJvcGVydHkgaXMgc2V0LlxuICovXG4vKipcbiAqIDEuIENvcnJlY3QgY29sb3Igbm90IGJlaW5nIGluaGVyaXRlZC5cbiAqICAgIEtub3duIGlzc3VlOiBhZmZlY3RzIGNvbG9yIG9mIGRpc2FibGVkIGVsZW1lbnRzLlxuICogMi4gQ29ycmVjdCBmb250IHByb3BlcnRpZXMgbm90IGJlaW5nIGluaGVyaXRlZC5cbiAqIDMuIEFkZHJlc3MgbWFyZ2lucyBzZXQgZGlmZmVyZW50bHkgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICovXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBjb2xvcjogaW5oZXJpdDtcbiAgLyogMSAqL1xuICBmb250OiBpbmhlcml0O1xuICAvKiAyICovXG4gIG1hcmdpbjogMDtcbiAgLyogMyAqLyB9XG5cbi8qKlxuICogQWRkcmVzcyBgb3ZlcmZsb3dgIHNldCB0byBgaGlkZGVuYCBpbiBJRSA4LzkvMTAvMTEuXG4gKi9cbmJ1dHRvbiB7XG4gIG92ZXJmbG93OiB2aXNpYmxlOyB9XG5cbi8qKlxuICogQWRkcmVzcyBpbmNvbnNpc3RlbnQgYHRleHQtdHJhbnNmb3JtYCBpbmhlcml0YW5jZSBmb3IgYGJ1dHRvbmAgYW5kIGBzZWxlY3RgLlxuICogQWxsIG90aGVyIGZvcm0gY29udHJvbCBlbGVtZW50cyBkbyBub3QgaW5oZXJpdCBgdGV4dC10cmFuc2Zvcm1gIHZhbHVlcy5cbiAqIENvcnJlY3QgYGJ1dHRvbmAgc3R5bGUgaW5oZXJpdGFuY2UgaW4gRmlyZWZveCwgSUUgOC85LzEwLzExLCBhbmQgT3BlcmEuXG4gKiBDb3JyZWN0IGBzZWxlY3RgIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3guXG4gKi9cbmJ1dHRvbixcbnNlbGVjdCB7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lOyB9XG5cbi8qKlxuICogMS4gQXZvaWQgdGhlIFdlYktpdCBidWcgaW4gQW5kcm9pZCA0LjAuKiB3aGVyZSAoMikgZGVzdHJveXMgbmF0aXZlIGBhdWRpb2BcbiAqICAgIGFuZCBgdmlkZW9gIGNvbnRyb2xzLlxuICogMi4gQ29ycmVjdCBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIGBpbnB1dGAgdHlwZXMgaW4gaU9TLlxuICogMy4gSW1wcm92ZSB1c2FiaWxpdHkgYW5kIGNvbnNpc3RlbmN5IG9mIGN1cnNvciBzdHlsZSBiZXR3ZWVuIGltYWdlLXR5cGVcbiAqICAgIGBpbnB1dGAgYW5kIG90aGVycy5cbiAqL1xuYnV0dG9uLFxuaHRtbCBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdLFxuaW5wdXRbdHlwZT1cInJlc2V0XCJdLFxuaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xuICAvKiAyICovXG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgLyogMyAqLyB9XG5cbi8qKlxuICogUmUtc2V0IGRlZmF1bHQgY3Vyc29yIGZvciBkaXNhYmxlZCBlbGVtZW50cy5cbiAqL1xuYnV0dG9uW2Rpc2FibGVkXSxcbmh0bWwgaW5wdXRbZGlzYWJsZWRdIHtcbiAgY3Vyc29yOiBkZWZhdWx0OyB9XG5cbi8qKlxuICogUmVtb3ZlIGlubmVyIHBhZGRpbmcgYW5kIGJvcmRlciBpbiBGaXJlZm94IDQrLlxuICovXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5pbnB1dDo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlcjogMDtcbiAgcGFkZGluZzogMDsgfVxuXG4vKipcbiAqIEFkZHJlc3MgRmlyZWZveCA0KyBzZXR0aW5nIGBsaW5lLWhlaWdodGAgb24gYGlucHV0YCB1c2luZyBgIWltcG9ydGFudGAgaW5cbiAqIHRoZSBVQSBzdHlsZXNoZWV0LlxuICovXG5pbnB1dCB7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7IH1cblxuLyoqXG4gKiBJdCdzIHJlY29tbWVuZGVkIHRoYXQgeW91IGRvbid0IGF0dGVtcHQgdG8gc3R5bGUgdGhlc2UgZWxlbWVudHMuXG4gKiBGaXJlZm94J3MgaW1wbGVtZW50YXRpb24gZG9lc24ndCByZXNwZWN0IGJveC1zaXppbmcsIHBhZGRpbmcsIG9yIHdpZHRoLlxuICpcbiAqIDEuIEFkZHJlc3MgYm94IHNpemluZyBzZXQgdG8gYGNvbnRlbnQtYm94YCBpbiBJRSA4LzkvMTAuXG4gKiAyLiBSZW1vdmUgZXhjZXNzIHBhZGRpbmcgaW4gSUUgOC85LzEwLlxuICovXG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sXG5pbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAvKiAxICovXG4gIHBhZGRpbmc6IDA7XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAqIEZpeCB0aGUgY3Vyc29yIHN0eWxlIGZvciBDaHJvbWUncyBpbmNyZW1lbnQvZGVjcmVtZW50IGJ1dHRvbnMuIEZvciBjZXJ0YWluXG4gKiBgZm9udC1zaXplYCB2YWx1ZXMgb2YgdGhlIGBpbnB1dGAsIGl0IGNhdXNlcyB0aGUgY3Vyc29yIHN0eWxlIG9mIHRoZVxuICogZGVjcmVtZW50IGJ1dHRvbiB0byBjaGFuZ2UgZnJvbSBgZGVmYXVsdGAgdG8gYHRleHRgLlxuICovXG5pbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bzsgfVxuXG4vKipcbiAqIDEuIEFkZHJlc3MgYGFwcGVhcmFuY2VgIHNldCB0byBgc2VhcmNoZmllbGRgIGluIFNhZmFyaSBhbmQgQ2hyb21lLlxuICogMi4gQWRkcmVzcyBgYm94LXNpemluZ2Agc2V0IHRvIGBib3JkZXItYm94YCBpbiBTYWZhcmkgYW5kIENocm9tZVxuICogICAgKGluY2x1ZGUgYC1tb3pgIHRvIGZ1dHVyZS1wcm9vZikuXG4gKi9cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDtcbiAgLyogMSAqL1xuICAtbW96LWJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAtd2Via2l0LWJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAvKiAyICovXG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94OyB9XG5cbi8qKlxuICogUmVtb3ZlIGlubmVyIHBhZGRpbmcgYW5kIHNlYXJjaCBjYW5jZWwgYnV0dG9uIGluIFNhZmFyaSBhbmQgQ2hyb21lIG9uIE9TIFguXG4gKiBTYWZhcmkgKGJ1dCBub3QgQ2hyb21lKSBjbGlwcyB0aGUgY2FuY2VsIGJ1dHRvbiB3aGVuIHRoZSBzZWFyY2ggaW5wdXQgaGFzXG4gKiBwYWRkaW5nIChhbmQgYHRleHRmaWVsZGAgYXBwZWFyYW5jZSkuXG4gKi9cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOyB9XG5cbi8qKlxuICogRGVmaW5lIGNvbnNpc3RlbnQgYm9yZGVyLCBtYXJnaW4sIGFuZCBwYWRkaW5nLlxuICovXG5maWVsZHNldCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjMGMwYzA7XG4gIG1hcmdpbjogMCAycHg7XG4gIHBhZGRpbmc6IDAuMzVlbSAwLjYyNWVtIDAuNzVlbTsgfVxuXG4vKipcbiAqIDEuIENvcnJlY3QgYGNvbG9yYCBub3QgYmVpbmcgaW5oZXJpdGVkIGluIElFIDgvOS8xMC8xMS5cbiAqIDIuIFJlbW92ZSBwYWRkaW5nIHNvIHBlb3BsZSBhcmVuJ3QgY2F1Z2h0IG91dCBpZiB0aGV5IHplcm8gb3V0IGZpZWxkc2V0cy5cbiAqL1xubGVnZW5kIHtcbiAgYm9yZGVyOiAwO1xuICAvKiAxICovXG4gIHBhZGRpbmc6IDA7XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAqIFJlbW92ZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRSA4LzkvMTAvMTEuXG4gKi9cbnRleHRhcmVhIHtcbiAgb3ZlcmZsb3c6IGF1dG87IH1cblxuLyoqXG4gKiBEb24ndCBpbmhlcml0IHRoZSBgZm9udC13ZWlnaHRgIChhcHBsaWVkIGJ5IGEgcnVsZSBhYm92ZSkuXG4gKiBOT1RFOiB0aGUgZGVmYXVsdCBjYW5ub3Qgc2FmZWx5IGJlIGNoYW5nZWQgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gT1MgWC5cbiAqL1xub3B0Z3JvdXAge1xuICBmb250LXdlaWdodDogYm9sZDsgfVxuXG4vKiBUYWJsZXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIFJlbW92ZSBtb3N0IHNwYWNpbmcgYmV0d2VlbiB0YWJsZSBjZWxscy5cbiAqL1xudGFibGUge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBib3JkZXItc3BhY2luZzogMDsgfVxuXG50ZCxcbnRoIHtcbiAgcGFkZGluZzogMDsgfVxuXG4vKiAjIyBCb3ggU2l6aW5nXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbiosXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAtbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cblxuLyoqXG4gKiBGb3IgbW9kZXJuIGJyb3dzZXJzXG4gKiAxLiBUaGUgc3BhY2UgY29udGVudCBpcyBvbmUgd2F5IHRvIGF2b2lkIGFuIE9wZXJhIGJ1ZyB3aGVuIHRoZVxuICogICAgY29udGVudGVkaXRhYmxlIGF0dHJpYnV0ZSBpcyBpbmNsdWRlZCBhbnl3aGVyZSBlbHNlIGluIHRoZSBkb2N1bWVudC5cbiAqICAgIE90aGVyd2lzZSBpdCBjYXVzZXMgc3BhY2UgdG8gYXBwZWFyIGF0IHRoZSB0b3AgYW5kIGJvdHRvbSBvZiBlbGVtZW50c1xuICogICAgdGhhdCBhcmUgY2xlYXJmaXhlZC5cbiAqIDIuIFRoZSB1c2Ugb2YgYHRhYmxlYCByYXRoZXIgdGhhbiBgYmxvY2tgIGlzIG9ubHkgbmVjZXNzYXJ5IGlmIHVzaW5nXG4gKiAgICBgOmJlZm9yZWAgdG8gY29udGFpbiB0aGUgdG9wLW1hcmdpbnMgb2YgY2hpbGQgZWxlbWVudHMuXG4gKi9cbi5jZjpiZWZvcmUsXG4uY2Y6YWZ0ZXIge1xuICBjb250ZW50OiBcIiBcIjtcbiAgLyogMSAqL1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgLyogMiAqLyB9XG5cbi5jZjphZnRlciB7XG4gIGNsZWFyOiBib3RoOyB9XG5cbi8qKlxuICogRm9yIElFIDYvNyBvbmx5XG4gKiBJbmNsdWRlIHRoaXMgcnVsZSB0byB0cmlnZ2VyIGhhc0xheW91dCBhbmQgY29udGFpbiBmbG9hdHMuXG4gKi9cbi5jZiB7XG4gICp6b29tOiAxOyB9XG5cbi8qICMjIEZsb2F0IENsZWFyaW5nXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5hdXRob3ItYm94OmJlZm9yZSxcbi5jbGVhcmZpeDpiZWZvcmUsXG4uZW50cnk6YmVmb3JlLFxuLmVudHJ5LWNvbnRlbnQ6YmVmb3JlLFxuLmZvb3Rlci13aWRnZXRzOmJlZm9yZSxcbi5uYXYtcHJpbWFyeTpiZWZvcmUsXG4ubmF2LXNlY29uZGFyeTpiZWZvcmUsXG4ucGFnaW5hdGlvbjpiZWZvcmUsXG4uc2l0ZS1jb250YWluZXI6YmVmb3JlLFxuLnNpdGUtZm9vdGVyOmJlZm9yZSxcbi5zaXRlLWhlYWRlcjpiZWZvcmUsXG4uc2l0ZS1pbm5lcjpiZWZvcmUsXG4ud3JhcDpiZWZvcmUge1xuICBjb250ZW50OiBcIiBcIjtcbiAgZGlzcGxheTogdGFibGU7IH1cblxuLmF1dGhvci1ib3g6YWZ0ZXIsXG4uY2xlYXJmaXg6YWZ0ZXIsXG4uZW50cnk6YWZ0ZXIsXG4uZW50cnktY29udGVudDphZnRlcixcbi5mb290ZXItd2lkZ2V0czphZnRlcixcbi5uYXYtcHJpbWFyeTphZnRlcixcbi5uYXYtc2Vjb25kYXJ5OmFmdGVyLFxuLnBhZ2luYXRpb246YWZ0ZXIsXG4uc2l0ZS1jb250YWluZXI6YWZ0ZXIsXG4uc2l0ZS1mb290ZXI6YWZ0ZXIsXG4uc2l0ZS1oZWFkZXI6YWZ0ZXIsXG4uc2l0ZS1pbm5lcjphZnRlcixcbi53cmFwOmFmdGVyIHtcbiAgY2xlYXI6IGJvdGg7XG4gIGNvbnRlbnQ6IFwiIFwiO1xuICBkaXNwbGF5OiB0YWJsZTsgfVxuXG4vKiAjIyBDb2x1bW4gQ2xhc3Nlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiBMaW5rOiBodHRwOi8vdHdpdHRlci5naXRodWIuaW8vYm9vdHN0cmFwL2Fzc2V0cy9jc3MvYm9vdHN0cmFwLXJlc3BvbnNpdmUuY3NzICovXG4uZml2ZS1zaXh0aHMsXG4uZm91ci1zaXh0aHMsXG4ub25lLWZvdXJ0aCxcbi5vbmUtaGFsZixcbi5vbmUtc2l4dGgsXG4ub25lLXRoaXJkLFxuLnRocmVlLWZvdXJ0aHMsXG4udGhyZWUtc2l4dGhzLFxuLnR3by1mb3VydGhzLFxuLnR3by1zaXh0aHMsXG4udHdvLXRoaXJkcyB7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW4tbGVmdDogMi41NjQxMDI1NjQxMDI1NjQlOyB9XG5cbi5vbmUtaGFsZixcbi50aHJlZS1zaXh0aHMsXG4udHdvLWZvdXJ0aHMge1xuICB3aWR0aDogNDguNzE3OTQ4NzE3OTQ4NzE1JTsgfVxuXG4ub25lLXRoaXJkLFxuLnR3by1zaXh0aHMge1xuICB3aWR0aDogMzEuNjIzOTMxNjIzOTMxNjI1JTsgfVxuXG4uZm91ci1zaXh0aHMsXG4udHdvLXRoaXJkcyB7XG4gIHdpZHRoOiA2NS44MTE5NjU4MTE5NjU4MiU7IH1cblxuLm9uZS1mb3VydGgge1xuICB3aWR0aDogMjMuMDc2OTIzMDc2OTIzMDc3JTsgfVxuXG4udGhyZWUtZm91cnRocyB7XG4gIHdpZHRoOiA3NC4zNTg5NzQzNTg5NzQzNiU7IH1cblxuLm9uZS1zaXh0aCB7XG4gIHdpZHRoOiAxNC41Mjk5MTQ1Mjk5MTQ1MyU7IH1cblxuLmZpdmUtc2l4dGhzIHtcbiAgd2lkdGg6IDgyLjkwNTk4MjkwNTk4MjkxJTsgfVxuXG4uZmlyc3Qge1xuICBjbGVhcjogYm90aDtcbiAgbWFyZ2luLWxlZnQ6IDA7IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4MDBweCkge1xuICAuZml2ZS1zaXh0aHMsXG4gIC5mb3VyLXNpeHRocyxcbiAgLm9uZS1mb3VydGgsXG4gIC5vbmUtaGFsZixcbiAgLm9uZS1zaXh0aCxcbiAgLm9uZS10aGlyZCxcbiAgLnRocmVlLWZvdXJ0aHMsXG4gIC50aHJlZS1zaXh0aHMsXG4gIC50d28tZm91cnRocyxcbiAgLnR3by1zaXh0aHMsXG4gIC50d28tdGhpcmRzIHtcbiAgICBtYXJnaW46IDA7XG4gICAgd2lkdGg6IDEwMCU7IH0gfVxuXG4vKiBNYWduaWZpYyBQb3B1cCBDU1MgKi9cbi5tZnAtYmcge1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHotaW5kZXg6IDEwNDI7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgYmFja2dyb3VuZDogIzBiMGIwYjtcbiAgb3BhY2l0eTogMC44O1xuICBmaWx0ZXI6IGFscGhhKG9wYWNpdHk9ODApOyB9XG5cbi5tZnAtd3JhcCB7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgei1pbmRleDogMTA0MztcbiAgcG9zaXRpb246IGZpeGVkO1xuICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7XG4gIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbi5tZnAtY29udGFpbmVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgcGFkZGluZzogMCA4cHg7XG4gIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG5cbi5tZnAtY29udGFpbmVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICcnO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGhlaWdodDogMTAwJTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfVxuXG4ubWZwLWFsaWduLXRvcCAubWZwLWNvbnRhaW5lcjpiZWZvcmUge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5tZnAtY29udGVudCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXJnaW46IDAgYXV0bztcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgei1pbmRleDogMTA0NTsgfVxuXG4ubWZwLWlubGluZS1ob2xkZXIgLm1mcC1jb250ZW50LFxuLm1mcC1hamF4LWhvbGRlciAubWZwLWNvbnRlbnQge1xuICB3aWR0aDogMTAwJTtcbiAgY3Vyc29yOiBhdXRvOyB9XG5cbi5tZnAtYWpheC1jdXIge1xuICBjdXJzb3I6IHByb2dyZXNzOyB9XG5cbi5tZnAtem9vbS1vdXQtY3VyLCAubWZwLXpvb20tb3V0LWN1ciAubWZwLWltYWdlLWhvbGRlciAubWZwLWNsb3NlIHtcbiAgY3Vyc29yOiAtbW96LXpvb20tb3V0O1xuICBjdXJzb3I6IC13ZWJraXQtem9vbS1vdXQ7XG4gIGN1cnNvcjogem9vbS1vdXQ7IH1cblxuLm1mcC16b29tIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjdXJzb3I6IC13ZWJraXQtem9vbS1pbjtcbiAgY3Vyc29yOiAtbW96LXpvb20taW47XG4gIGN1cnNvcjogem9vbS1pbjsgfVxuXG4ubWZwLWF1dG8tY3Vyc29yIC5tZnAtY29udGVudCB7XG4gIGN1cnNvcjogYXV0bzsgfVxuXG4ubWZwLWNsb3NlLFxuLm1mcC1hcnJvdyxcbi5tZnAtcHJlbG9hZGVyLFxuLm1mcC1jb3VudGVyIHtcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7IH1cblxuLm1mcC1sb2FkaW5nLm1mcC1maWd1cmUge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5tZnAtaGlkZSB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4ubWZwLXByZWxvYWRlciB7XG4gIGNvbG9yOiAjQ0NDO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICB3aWR0aDogYXV0bztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW4tdG9wOiAtMC44ZW07XG4gIGxlZnQ6IDhweDtcbiAgcmlnaHQ6IDhweDtcbiAgei1pbmRleDogMTA0NDsgfVxuXG4ubWZwLXByZWxvYWRlciBhIHtcbiAgY29sb3I6ICNDQ0M7IH1cblxuLm1mcC1wcmVsb2FkZXIgYTpob3ZlciB7XG4gIGNvbG9yOiAjRkZGOyB9XG5cbi5tZnAtcy1yZWFkeSAubWZwLXByZWxvYWRlciB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLm1mcC1zLWVycm9yIC5tZnAtY29udGVudCB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuYnV0dG9uLm1mcC1jbG9zZSxcbmJ1dHRvbi5tZnAtYXJyb3cge1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAwO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBvdXRsaW5lOiBub25lO1xuICBwYWRkaW5nOiAwO1xuICB6LWluZGV4OiAxMDQ2O1xuICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7XG4gIGJveC1zaGFkb3c6IG5vbmU7IH1cblxuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyIHtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiAwOyB9XG5cbi5tZnAtY2xvc2Uge1xuICB3aWR0aDogNDRweDtcbiAgaGVpZ2h0OiA0NHB4O1xuICBsaW5lLWhlaWdodDogNDRweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMDtcbiAgdG9wOiAwO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgb3BhY2l0eTogMC42NTtcbiAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PTY1KTtcbiAgcGFkZGluZzogMCAwIDE4cHggMTBweDtcbiAgY29sb3I6ICNGRkY7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1zaXplOiAyOHB4O1xuICBmb250LWZhbWlseTogQXJpYWwsIEJhc2tlcnZpbGxlLCBtb25vc3BhY2U7IH1cblxuLm1mcC1jbG9zZTpob3Zlcixcbi5tZnAtY2xvc2U6Zm9jdXMge1xuICBvcGFjaXR5OiAxO1xuICBmaWx0ZXI6IGFscGhhKG9wYWNpdHk9MTAwKTsgfVxuXG4ubWZwLWNsb3NlOmFjdGl2ZSB7XG4gIHRvcDogMXB4OyB9XG5cbi5tZnAtY2xvc2UtYnRuLWluIC5tZnAtY2xvc2Uge1xuICBjb2xvcjogIzMzMzsgfVxuXG4ubWZwLWltYWdlLWhvbGRlciAubWZwLWNsb3NlLFxuLm1mcC1pZnJhbWUtaG9sZGVyIC5tZnAtY2xvc2Uge1xuICBjb2xvcjogI0ZGRjtcbiAgcmlnaHQ6IC02cHg7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBwYWRkaW5nLXJpZ2h0OiA2cHg7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbi5tZnAtY291bnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgY29sb3I6ICNDQ0M7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbGluZS1oZWlnaHQ6IDE4cHg7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cblxuLm1mcC1hcnJvdyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgb3BhY2l0eTogMC42NTtcbiAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PTY1KTtcbiAgbWFyZ2luOiAwO1xuICB0b3A6IDUwJTtcbiAgbWFyZ2luLXRvcDogLTU1cHg7XG4gIHBhZGRpbmc6IDA7XG4gIHdpZHRoOiA5MHB4O1xuICBoZWlnaHQ6IDExMHB4O1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG5cbi5tZnAtYXJyb3c6YWN0aXZlIHtcbiAgbWFyZ2luLXRvcDogLTU0cHg7IH1cblxuLm1mcC1hcnJvdzpob3Zlcixcbi5tZnAtYXJyb3c6Zm9jdXMge1xuICBvcGFjaXR5OiAxO1xuICBmaWx0ZXI6IGFscGhhKG9wYWNpdHk9MTAwKTsgfVxuXG4ubWZwLWFycm93OmJlZm9yZSxcbi5tZnAtYXJyb3c6YWZ0ZXIsXG4ubWZwLWFycm93IC5tZnAtYixcbi5tZnAtYXJyb3cgLm1mcC1hIHtcbiAgY29udGVudDogJyc7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgbWFyZ2luLXRvcDogMzVweDtcbiAgbWFyZ2luLWxlZnQ6IDM1cHg7XG4gIGJvcmRlcjogbWVkaXVtIGluc2V0IHRyYW5zcGFyZW50OyB9XG5cbi5tZnAtYXJyb3c6YWZ0ZXIsXG4ubWZwLWFycm93IC5tZnAtYSB7XG4gIGJvcmRlci10b3Atd2lkdGg6IDEzcHg7XG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDEzcHg7XG4gIHRvcDogOHB4OyB9XG5cbi5tZnAtYXJyb3c6YmVmb3JlLFxuLm1mcC1hcnJvdyAubWZwLWIge1xuICBib3JkZXItdG9wLXdpZHRoOiAyMXB4O1xuICBib3JkZXItYm90dG9tLXdpZHRoOiAyMXB4O1xuICBvcGFjaXR5OiAwLjc7IH1cblxuLm1mcC1hcnJvdy1sZWZ0IHtcbiAgbGVmdDogMDsgfVxuXG4ubWZwLWFycm93LWxlZnQ6YWZ0ZXIsXG4ubWZwLWFycm93LWxlZnQgLm1mcC1hIHtcbiAgYm9yZGVyLXJpZ2h0OiAxN3B4IHNvbGlkICNGRkY7XG4gIG1hcmdpbi1sZWZ0OiAzMXB4OyB9XG5cbi5tZnAtYXJyb3ctbGVmdDpiZWZvcmUsXG4ubWZwLWFycm93LWxlZnQgLm1mcC1iIHtcbiAgbWFyZ2luLWxlZnQ6IDI1cHg7XG4gIGJvcmRlci1yaWdodDogMjdweCBzb2xpZCAjM0YzRjNGOyB9XG5cbi5tZnAtYXJyb3ctcmlnaHQge1xuICByaWdodDogMDsgfVxuXG4ubWZwLWFycm93LXJpZ2h0OmFmdGVyLFxuLm1mcC1hcnJvdy1yaWdodCAubWZwLWEge1xuICBib3JkZXItbGVmdDogMTdweCBzb2xpZCAjRkZGO1xuICBtYXJnaW4tbGVmdDogMzlweDsgfVxuXG4ubWZwLWFycm93LXJpZ2h0OmJlZm9yZSxcbi5tZnAtYXJyb3ctcmlnaHQgLm1mcC1iIHtcbiAgYm9yZGVyLWxlZnQ6IDI3cHggc29saWQgIzNGM0YzRjsgfVxuXG4ubWZwLWlmcmFtZS1ob2xkZXIge1xuICBwYWRkaW5nLXRvcDogNDBweDtcbiAgcGFkZGluZy1ib3R0b206IDQwcHg7IH1cblxuLm1mcC1pZnJhbWUtaG9sZGVyIC5tZnAtY29udGVudCB7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiA5MDBweDsgfVxuXG4ubWZwLWlmcmFtZS1ob2xkZXIgLm1mcC1jbG9zZSB7XG4gIHRvcDogLTQwcHg7IH1cblxuLm1mcC1pZnJhbWUtc2NhbGVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZy10b3A6IDU2LjI1JTsgfVxuXG4ubWZwLWlmcmFtZS1zY2FsZXIgaWZyYW1lIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBib3gtc2hhZG93OiAwIDAgOHB4IHJnYmEoMCwgMCwgMCwgMC42KTtcbiAgYmFja2dyb3VuZDogIzAwMDsgfVxuXG4vKiBNYWluIGltYWdlIGluIHBvcHVwICovXG5pbWcubWZwLWltZyB7XG4gIHdpZHRoOiBhdXRvO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbiAgZGlzcGxheTogYmxvY2s7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgcGFkZGluZzogNDBweCAwIDQwcHg7XG4gIG1hcmdpbjogMCBhdXRvOyB9XG5cbi8qIFRoZSBzaGFkb3cgYmVoaW5kIHRoZSBpbWFnZSAqL1xuLm1mcC1maWd1cmUge1xuICBsaW5lLWhlaWdodDogMDsgfVxuXG4ubWZwLWZpZ3VyZTphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIHRvcDogNDBweDtcbiAgYm90dG9tOiA0MHB4O1xuICBkaXNwbGF5OiBibG9jaztcbiAgcmlnaHQ6IDA7XG4gIHdpZHRoOiBhdXRvO1xuICBoZWlnaHQ6IGF1dG87XG4gIHotaW5kZXg6IC0xO1xuICBib3gtc2hhZG93OiAwIDAgOHB4IHJnYmEoMCwgMCwgMCwgMC42KTtcbiAgYmFja2dyb3VuZDogIzQ0NDsgfVxuXG4ubWZwLWZpZ3VyZSBzbWFsbCB7XG4gIGNvbG9yOiAjQkRCREJEO1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAxMnB4O1xuICBsaW5lLWhlaWdodDogMTRweDsgfVxuXG4ubWZwLWZpZ3VyZSBmaWd1cmUge1xuICBtYXJnaW46IDA7IH1cblxuLm1mcC1ib3R0b20tYmFyIHtcbiAgbWFyZ2luLXRvcDogLTM2cHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxMDAlO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgY3Vyc29yOiBhdXRvOyB9XG5cbi5tZnAtdGl0bGUge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBsaW5lLWhlaWdodDogMThweDtcbiAgY29sb3I6ICNGM0YzRjM7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgcGFkZGluZy1yaWdodDogMzZweDsgfVxuXG4ubWZwLWltYWdlLWhvbGRlciAubWZwLWNvbnRlbnQge1xuICBtYXgtd2lkdGg6IDEwMCU7IH1cblxuLm1mcC1nYWxsZXJ5IC5tZnAtaW1hZ2UtaG9sZGVyIC5tZnAtZmlndXJlIHtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDgwMHB4KSBhbmQgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpLCBzY3JlZW4gYW5kIChtYXgtaGVpZ2h0OiAzMDBweCkge1xuICAvKipcbiAgICAgICAqIFJlbW92ZSBhbGwgcGFkZGluZ3MgYXJvdW5kIHRoZSBpbWFnZSBvbiBzbWFsbCBzY3JlZW5cbiAgICAgICAqL1xuICAubWZwLWltZy1tb2JpbGUgLm1mcC1pbWFnZS1ob2xkZXIge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwOyB9XG4gIC5tZnAtaW1nLW1vYmlsZSBpbWcubWZwLWltZyB7XG4gICAgcGFkZGluZzogMDsgfVxuICAubWZwLWltZy1tb2JpbGUgLm1mcC1maWd1cmU6YWZ0ZXIge1xuICAgIHRvcDogMDtcbiAgICBib3R0b206IDA7IH1cbiAgLm1mcC1pbWctbW9iaWxlIC5tZnAtZmlndXJlIHNtYWxsIHtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgbWFyZ2luLWxlZnQ6IDVweDsgfVxuICAubWZwLWltZy1tb2JpbGUgLm1mcC1ib3R0b20tYmFyIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNik7XG4gICAgYm90dG9tOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICB0b3A6IGF1dG87XG4gICAgcGFkZGluZzogM3B4IDVweDtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG4gIC5tZnAtaW1nLW1vYmlsZSAubWZwLWJvdHRvbS1iYXI6ZW1wdHkge1xuICAgIHBhZGRpbmc6IDA7IH1cbiAgLm1mcC1pbWctbW9iaWxlIC5tZnAtY291bnRlciB7XG4gICAgcmlnaHQ6IDVweDtcbiAgICB0b3A6IDNweDsgfVxuICAubWZwLWltZy1tb2JpbGUgLm1mcC1jbG9zZSB7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIHdpZHRoOiAzNXB4O1xuICAgIGhlaWdodDogMzVweDtcbiAgICBsaW5lLWhlaWdodDogMzVweDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNik7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAwOyB9IH1cblxuQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogOTAwcHgpIHtcbiAgLm1mcC1hcnJvdyB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDAuNzUpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC43NSk7IH1cbiAgLm1mcC1hcnJvdy1sZWZ0IHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IDA7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogMDsgfVxuICAubWZwLWFycm93LXJpZ2h0IHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IDEwMCU7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogMTAwJTsgfVxuICAubWZwLWNvbnRhaW5lciB7XG4gICAgcGFkZGluZy1sZWZ0OiA2cHg7XG4gICAgcGFkZGluZy1yaWdodDogNnB4OyB9IH1cblxuLm1mcC1pZTcgLm1mcC1pbWcge1xuICBwYWRkaW5nOiAwOyB9XG5cbi5tZnAtaWU3IC5tZnAtYm90dG9tLWJhciB7XG4gIHdpZHRoOiA2MDBweDtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW4tbGVmdDogLTMwMHB4O1xuICBtYXJnaW4tdG9wOiA1cHg7XG4gIHBhZGRpbmctYm90dG9tOiA1cHg7IH1cblxuLm1mcC1pZTcgLm1mcC1jb250YWluZXIge1xuICBwYWRkaW5nOiAwOyB9XG5cbi5tZnAtaWU3IC5tZnAtY29udGVudCB7XG4gIHBhZGRpbmctdG9wOiA0NHB4OyB9XG5cbi5tZnAtaWU3IC5tZnAtY2xvc2Uge1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBwYWRkaW5nLXRvcDogMDsgfVxuXG4vKlxuKiBcdE1haW4gSWNvbiBtaXhpblxuKlxuKiBcdEJhc2VkIG9uIGh0dHA6Ly9qYXlkZW5zZXJpYy5jb20vYmxvZy9mdW4td2l0aC1zYXNzLWFuZC1mb250LWljb25zIFxuKlxuKlx0ZS5nLiBcbipcdEBpbmNsdWRlIGljb24oJ3Bob25lJywgJ2JlZm9yZScsIHRydWUsICRsYXJnZSwgJHRvcDotM3B4LCAkbWFyZ2luOjVweCk7XG4qIFx0QGluY2x1ZGUgaWNvbigncGhvbmUnLCAnYmVmb3JlJywgdHJ1ZSwgJGxhcmdlLCAkdG9wOi0zcHgsICRtYXJnaW46NXB4KSB7XG4qXHRcdGNvbG9yOiBibGFjaztcbiogXHR9XG4qL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiBcImVudHlwb1wiO1xuICBzcmM6IHVybChcImZvbnRzL2VudHlwby9lbnR5cG8tcGx1cy5lb3RcIik7XG4gIHNyYzogdXJsKFwiZm9udHMvZW50eXBvL2VudHlwby1wbHVzLmVvdD8jaWVmaXhcIikgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIiksIHVybChcImZvbnRzL2VudHlwby9lbnR5cG8tcGx1cy53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksIHVybChcImZvbnRzL2VudHlwby9lbnR5cG8tcGx1cy50dGZcIikgZm9ybWF0KFwidHJ1ZXR5cGVcIiksIHVybChcImZvbnRzL2VudHlwby9lbnR5cG8tcGx1cy5zdmcjZW50eXBvXCIpIGZvcm1hdChcInN2Z1wiKTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBzcGVhazogbm9uZTsgfVxuXG4vKlxuICogU29jaWFsIE5ldHdvcmsgQ29sb3Vyc1xuICpcbiAqIGh0dHA6Ly9kZXNpZ25waWVjZXMuY29tLzIwMTIvMTIvc29jaWFsLW1lZGlhLWNvbG91cnMtaGV4LWFuZC1yZ2IvXG4gKi9cbi8qXG4gKiBCcmFuZCBDb2xvdXJzXG4gKi9cbi8qXG4qIEJhY2tncm91bmRzXG4qL1xuLmJnLWxpZ2h0IHtcbiAgYmFja2dyb3VuZDogI2Y4ZjhmODsgfVxuXG4uYmctbWVkaXVtIHtcbiAgYmFja2dyb3VuZDogI2UyZTFlMDsgfVxuXG4uYmctZGFyayB7XG4gIGJhY2tncm91bmQ6ICM1ODU1NTI7IH1cblxuLmJnLWJsdWUgLmZsLWNvbC1jb250ZW50IHtcbiAgYmFja2dyb3VuZDogIzMwOEZBMTsgfVxuXG4uYmctdHVycXVvaXNlIC5mbC1jb2wtY29udGVudCB7XG4gIGJhY2tncm91bmQ6ICMwMDdCNzc7IH1cblxuLmJnLWdyZWVuIC5mbC1jb2wtY29udGVudCB7XG4gIGJhY2tncm91bmQ6ICMyRjc1MzM7IH1cblxuLmJnLW9yYW5nZSAuZmwtY29sLWNvbnRlbnQge1xuICBiYWNrZ3JvdW5kOiAjY2Y0NTIwOyB9XG5cbi5iZy1waW5rIC5mbC1jb2wtY29udGVudCB7XG4gIGJhY2tncm91bmQ6ICNDOTE2NDE7IH1cblxuLmJnLXllbGxvdyAuZmwtY29sLWNvbnRlbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkVEODAwOyB9XG5cbi5iZy1jaGFyY29sIC5mbC1jb2wtY29udGVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzQjNEM0I7IH1cblxuLmFjY2VudHMtbWFyayAuZmwtY29sLWNvbnRlbnQge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaW1hZ2VzL2FjY2VudHMtbWFyay5wbmcpO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNTBweCAtMTMwcHg7IH1cblxuLypcbiAqIEJ1dHRvbnNcbiAqL1xuLmJ1dHRvbi5wcmltYXJ5IHtcbiAgYmFja2dyb3VuZDogIzU4NTU1MjtcbiAgY29sb3I6ICNmZmY7IH1cblxuLmJ1dHRvbi5zZWNvbmRhcnkge1xuICBiYWNrZ3JvdW5kOiAjZjhmOGY4O1xuICBjb2xvcjogIzU4NTU1MjsgfVxuXG4uYnV0dG9uLm91dGxpbmUge1xuICBib3JkZXI6IDFweCBzb2xpZCAjNTg1NTUyO1xuICBjb2xvcjogIzU4NTU1MjsgfVxuXG4udG9nZ2xlLXBsdXMtYnV0dG9uOmFmdGVyLCAuYWNjZW50cy10b2dnbGUtY29udHJvbDphZnRlciB7XG4gIGNvbnRlbnQ6IFwi7qCXXCI7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogYXV0bztcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5ICFpbXBvcnRhbnQ7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkICFpbXBvcnRhbnQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGUgIWltcG9ydGFudDtcbiAgc3BlYWs6IG5vbmU7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LWZhbWlseTogXCJlbnR5cG9cIjtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBmb250LXNpemU6IDEuM2VtO1xuICBtYXJnaW4tbGVmdDogNXB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogMDtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBjb2xvcjogIzMwOEZBMTtcbiAgbWFyZ2luLXRvcDogLTEuMWVtOyB9XG5cbi50b2dnbGUtcGx1cy1idXR0b24tZXhwYW5kZWQ6YWZ0ZXIsIC5hY2NlbnRzLXRvZ2dsZS1jb250cm9sLmV4cGFuZGVkOmFmdGVyIHtcbiAgY29udGVudDogXCLuoJdcIjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiBhdXRvO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHkgIWltcG9ydGFudDtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQgIWltcG9ydGFudDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZSAhaW1wb3J0YW50O1xuICBzcGVhazogbm9uZTtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtZmFtaWx5OiBcImVudHlwb1wiO1xuICBmb250LXNpemU6IDE2cHg7XG4gIGZvbnQtc2l6ZTogMS4zZW07XG4gIG1hcmdpbi1sZWZ0OiA1cHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiAwO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7IH1cblxuLypcbiAqIFNvY2lhbCBOZXR3b3JrIENvbG91cnNcbiAqXG4gKiBodHRwOi8vZGVzaWducGllY2VzLmNvbS8yMDEyLzEyL3NvY2lhbC1tZWRpYS1jb2xvdXJzLWhleC1hbmQtcmdiL1xuICovXG4vKlxuICogQnJhbmQgQ29sb3Vyc1xuICovXG4vKlxuKiBCYWNrZ3JvdW5kc1xuKi9cbi5iZy1saWdodCB7XG4gIGJhY2tncm91bmQ6ICNmOGY4Zjg7IH1cblxuLmJnLW1lZGl1bSB7XG4gIGJhY2tncm91bmQ6ICNlMmUxZTA7IH1cblxuLmJnLWRhcmsge1xuICBiYWNrZ3JvdW5kOiAjNTg1NTUyOyB9XG5cbi5iZy1ibHVlIC5mbC1jb2wtY29udGVudCB7XG4gIGJhY2tncm91bmQ6ICMzMDhGQTE7IH1cblxuLmJnLXR1cnF1b2lzZSAuZmwtY29sLWNvbnRlbnQge1xuICBiYWNrZ3JvdW5kOiAjMDA3Qjc3OyB9XG5cbi5iZy1ncmVlbiAuZmwtY29sLWNvbnRlbnQge1xuICBiYWNrZ3JvdW5kOiAjMkY3NTMzOyB9XG5cbi5iZy1vcmFuZ2UgLmZsLWNvbC1jb250ZW50IHtcbiAgYmFja2dyb3VuZDogI2NmNDUyMDsgfVxuXG4uYmctcGluayAuZmwtY29sLWNvbnRlbnQge1xuICBiYWNrZ3JvdW5kOiAjQzkxNjQxOyB9XG5cbi5iZy15ZWxsb3cgLmZsLWNvbC1jb250ZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZFRDgwMDsgfVxuXG4uYmctY2hhcmNvbCAuZmwtY29sLWNvbnRlbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjM0IzRDNCOyB9XG5cbi5hY2NlbnRzLW1hcmsgLmZsLWNvbC1jb250ZW50IHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKGltYWdlcy9hY2NlbnRzLW1hcmsucG5nKTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTUwcHggLTEzMHB4OyB9XG5cbi8qXG4gKiBCdXR0b25zXG4gKi9cbi5idXR0b24ucHJpbWFyeSB7XG4gIGJhY2tncm91bmQ6ICM1ODU1NTI7XG4gIGNvbG9yOiAjZmZmOyB9XG5cbi5idXR0b24uc2Vjb25kYXJ5IHtcbiAgYmFja2dyb3VuZDogI2Y4ZjhmODtcbiAgY29sb3I6ICM1ODU1NTI7IH1cblxuLmJ1dHRvbi5vdXRsaW5lIHtcbiAgYm9yZGVyOiAxcHggc29saWQgIzU4NTU1MjtcbiAgY29sb3I6ICM1ODU1NTI7IH1cblxuLyogIyMgVHlwb2dyYXBoaWNhbCBFbGVtZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5ib2R5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgY29sb3I6ICMzQjNEM0I7XG4gIGZvbnQtZmFtaWx5OiAnU291cmNlIFNhbnMnLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE4cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjYyNTtcbiAgbWFyZ2luOiAwOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgIGJvZHkge1xuICAgICAgZm9udC1zaXplOiAxNy4xcHg7IH0gfVxuXG5hLFxuYnV0dG9uLFxuaW5wdXQ6Zm9jdXMsXG5pbnB1dFt0eXBlPVwiYnV0dG9uXCJdLFxuaW5wdXRbdHlwZT1cInJlc2V0XCJdLFxuaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSxcbnRleHRhcmVhOmZvY3VzLFxuLmJ1dHRvbixcbi5nYWxsZXJ5IGltZyB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuMXMgZWFzZS1pbi1vdXQ7XG4gIC1tb3otdHJhbnNpdGlvbjogYWxsIDAuMXMgZWFzZS1pbi1vdXQ7XG4gIC1tcy10cmFuc2l0aW9uOiBhbGwgMC4xcyBlYXNlLWluLW91dDtcbiAgLW8tdHJhbnNpdGlvbjogYWxsIDAuMXMgZWFzZS1pbi1vdXQ7XG4gIHRyYW5zaXRpb246IGFsbCAwLjFzIGVhc2UtaW4tb3V0OyB9XG5cbjo6LW1vei1zZWxlY3Rpb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzMzO1xuICBjb2xvcjogI2ZmZjsgfVxuXG46OnNlbGVjdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzMzM7XG4gIGNvbG9yOiAjZmZmOyB9XG5cbmEge1xuICBjb2xvcjogIzMwOEZBMTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG5cbmE6aG92ZXIge1xuICBjb2xvcjogIzMzMzsgfVxuXG5wIHtcbiAgbWFyZ2luOiAwIDAgMjhweDtcbiAgcGFkZGluZzogMDsgfVxuXG5vbCxcbnVsIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwOyB9XG5cbmxpIHtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lOyB9XG5cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogNzAwOyB9XG5cbmJsb2NrcXVvdGUsXG5jaXRlLFxuZW0sXG5pIHtcbiAgZm9udC1zdHlsZTogaXRhbGljOyB9XG5cbmJsb2NrcXVvdGUge1xuICBtYXJnaW46IDQwcHg7IH1cblxuYmxvY2txdW90ZTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXDIwMUNcIjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogMzBweDtcbiAgaGVpZ2h0OiAwO1xuICBsZWZ0OiAtMjBweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IC0xMHB4OyB9XG5cbi8qICMjIEhlYWRpbmdzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5oZWFkaW5nLXN0eWxlLCBoMSxcbmgyLFxuaDMsXG5oNCxcbmg1LFxuaDYsIC5mbC1tb2R1bGUtaGVhZGluZyBoMS5mbC1oZWFkaW5nLCAuZmwtbW9kdWxlLWhlYWRpbmcgaDIuZmwtaGVhZGluZywgLmZsLW1vZHVsZS1oZWFkaW5nIGgzLmZsLWhlYWRpbmcsIC5mbC1tb2R1bGUtaGVhZGluZyBoNC5mbC1oZWFkaW5nLCAuZmwtbW9kdWxlLWhlYWRpbmcgaDUuZmwtaGVhZGluZywgLmZsLW1vZHVsZS1oZWFkaW5nIGg2LmZsLWhlYWRpbmcge1xuICBjb2xvcjogIzMwOEZBMTtcbiAgZm9udC1mYW1pbHk6ICdTb3VyY2UgU2FucycsIHNhbnMtc2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIG1hcmdpbjogMCAwIDIwcHg7IH1cblxuaDEge1xuICBmb250LXNpemU6IDMwcHg7XG4gIGNvbG9yOiAjM0IzRDNCOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgIGgxIHtcbiAgICAgIGZvbnQtc2l6ZTogMjlweDsgfSB9XG5cbmgyIHtcbiAgZm9udC1zaXplOiAzMHB4OyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgIGgyIHtcbiAgICAgIGZvbnQtc2l6ZTogMThweDsgfSB9XG5cbmgzIHtcbiAgZm9udC1zaXplOiAyOXB4OyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgIGgzIHtcbiAgICAgIGZvbnQtc2l6ZTogMThweDsgfSB9XG5cbmg0IHtcbiAgZm9udC1zaXplOiAxOHB4OyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgIGg0IHtcbiAgICAgIGZvbnQtc2l6ZTogMThweDsgfSB9XG5cbmg1IHtcbiAgZm9udC1zaXplOiAxOHB4OyB9XG5cbmg2IHtcbiAgZm9udC1zaXplOiAxOHB4OyB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICBoMSB7XG4gICAgZm9udC1zaXplOiAzMHB4OyB9XG4gIGgyIHtcbiAgICBmb250LXNpemU6IDI5cHg7IH1cbiAgaDMge1xuICAgIGZvbnQtc2l6ZTogMThweDsgfVxuICBoNCB7XG4gICAgZm9udC1zaXplOiAxOHB4OyB9XG4gIGg1IHtcbiAgICBmb250LXNpemU6IDE3LjFweDsgfVxuICBoNiB7XG4gICAgZm9udC1zaXplOiAxNy4xcHg7IH0gfVxuXG4vKiAjIyBPYmplY3RzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbmVtYmVkLFxuaWZyYW1lLFxuaW1nLFxub2JqZWN0LFxudmlkZW8sXG4ud3AtY2FwdGlvbiB7XG4gIG1heC13aWR0aDogMTAwJTsgfVxuXG5pbWcge1xuICBoZWlnaHQ6IGF1dG87IH1cblxuLmZlYXR1cmVkLWNvbnRlbnQgaW1nLFxuLmdhbGxlcnkgaW1nIHtcbiAgd2lkdGg6IGF1dG87IH1cblxuLyogUmVzcG9uc2l2ZSBNZW51XG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5yZXNwb25zaXZlLW1lbnUtaWNvbiB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogbm9uZTtcbiAgbWFyZ2luLWJvdHRvbTogLTFweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbi5yZXNwb25zaXZlLW1lbnUtaWNvbjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzMzNcIjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250OiBub3JtYWwgMjBweC8xICdkYXNoaWNvbnMnO1xuICBtYXJnaW46IDAgYXV0bztcbiAgLypwYWRkaW5nOiAxMHB4OyovXG4gIHBhZGRpbmc6IDEwcHggNXB4IDEwcHggMTBweDsgfVxuXG4ubmF2LXByaW1hcnkgLnJlc3BvbnNpdmUtbWVudS1pY29uOjpiZWZvcmUge1xuICBjb2xvcjogIzNCM0QzQjsgfVxuXG4ubWVudS10ZXh0IHtcbiAgY29sb3I6ICMzQjNEM0I7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICBtYXJnaW4tdG9wOiAxMXB4O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cblxuLyogIyBTdHJ1Y3R1cmUgYW5kIExheW91dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogIyMgU2l0ZSBDb250YWluZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5zaXRlLWlubmVyLFxuLndyYXAge1xuICBtYXJnaW46IDAgYXV0bztcbiAgbWF4LXdpZHRoOiAxMjAwcHg7IH1cblxuLnNpdGUtaW5uZXIge1xuICBjbGVhcjogYm90aDtcbiAgcGFkZGluZy10b3A6IDQwcHg7IH1cblxuLyogIyMgQ29sdW1uIFdpZHRocyBhbmQgUG9zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qICMjIyBXcmFwcGluZyBkaXYgZm9yIC5jb250ZW50IGFuZCAuc2lkZWJhci1wcmltYXJ5ICovXG4uY29udGVudC1zaWRlYmFyLXNpZGViYXIgLmNvbnRlbnQtc2lkZWJhci13cmFwLFxuLnNpZGViYXItY29udGVudC1zaWRlYmFyIC5jb250ZW50LXNpZGViYXItd3JhcCxcbi5zaWRlYmFyLXNpZGViYXItY29udGVudCAuY29udGVudC1zaWRlYmFyLXdyYXAge1xuICB3aWR0aDogODIuOTc4NzIlO1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luLXJpZ2h0OiAyLjEyNzY2JTsgfVxuXG4uY29udGVudC1zaWRlYmFyLXNpZGViYXIgLmNvbnRlbnQtc2lkZWJhci13cmFwIHtcbiAgbWFyZ2luLWxlZnQ6IDA7IH1cblxuLnNpZGViYXItY29udGVudC1zaWRlYmFyIC5jb250ZW50LXNpZGViYXItd3JhcCxcbi5zaWRlYmFyLXNpZGViYXItY29udGVudCAuY29udGVudC1zaWRlYmFyLXdyYXAsXG4uc2lkZWJhci1jb250ZW50IC5jb250ZW50LXNpZGViYXItd3JhcCB7XG4gIGZsb2F0OiByaWdodDtcbiAgbWFyZ2luLXJpZ2h0OiAwOyB9XG5cbi8qICMjIyBDb250ZW50ICovXG4uY29udGVudCB7XG4gIHdpZHRoOiA2NS45NTc0NSU7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW4tcmlnaHQ6IDIuMTI3NjYlOyB9XG5cbi5zaWRlYmFyLWNvbnRlbnQgLmNvbnRlbnQsXG4uc2lkZWJhci1zaWRlYmFyLWNvbnRlbnQgLmNvbnRlbnQge1xuICBmbG9hdDogcmlnaHQ7XG4gIG1hcmdpbi1yaWdodDogMDsgfVxuXG4uY29udGVudC1zaWRlYmFyIC5jb250ZW50LFxuLmNvbnRlbnQtc2lkZWJhci1zaWRlYmFyIC5jb250ZW50LFxuLnNpZGViYXItY29udGVudC1zaWRlYmFyIC5jb250ZW50IHtcbiAgbWFyZ2luLWxlZnQ6IDA7IH1cblxuLmZ1bGwtd2lkdGgtY29udGVudCAuY29udGVudCB7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbi8qICMjIyBQcmltYXJ5IFNpZGViYXIgKi9cbi5zaWRlYmFyLXByaW1hcnkge1xuICB3aWR0aDogMzEuOTE0ODklO1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luLXJpZ2h0OiAyLjEyNzY2JTtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW4tcmlnaHQ6IDA7IH1cblxuLnNpZGViYXItY29udGVudCAuc2lkZWJhci1wcmltYXJ5LFxuLnNpZGViYXItc2lkZWJhci1jb250ZW50IC5zaWRlYmFyLXByaW1hcnkge1xuICBtYXJnaW4tbGVmdDogMDtcbiAgZmxvYXQ6IGxlZnQ7IH1cblxuLyogIyMjIFNlY29uZGFyeSBTaWRlYmFyICovXG4uc2lkZWJhci1zZWNvbmRhcnkge1xuICBtYXJnaW4tbGVmdDogMDtcbiAgd2lkdGg6IDE0Ljg5MzYyJTtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbi1yaWdodDogMi4xMjc2NiU7IH1cblxuLmNvbnRlbnQtc2lkZWJhci1zaWRlYmFyIC5zaWRlYmFyLXNlY29uZGFyeSB7XG4gIGZsb2F0OiByaWdodDtcbiAgbWFyZ2luLXJpZ2h0OiAwOyB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAxMjAwcHgpIHtcbiAgLnNpdGUtaW5uZXIsXG4gIC53cmFwIHtcbiAgICBtYXgtd2lkdGg6IDEwMzBweDsgfSB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAxMDI0cHgpIHtcbiAgLnNpdGUtaW5uZXIsXG4gIC53cmFwIHtcbiAgICBtYXgtd2lkdGg6IDgwMHB4OyB9XG4gIC5zaXRlLWhlYWRlciAud3JhcCB7XG4gICAgcGFkZGluZzogMjBweCA1JTsgfVxuICAuc2lkZWJhci1zZWNvbmRhcnksXG4gIC5jb250ZW50LXNpZGViYXItc2lkZWJhciAuY29udGVudC1zaWRlYmFyLXdyYXAsXG4gIC5zaWRlYmFyLWNvbnRlbnQtc2lkZWJhciAuY29udGVudC1zaWRlYmFyLXdyYXAsXG4gIC5zaWRlYmFyLXNpZGViYXItY29udGVudCAuY29udGVudC1zaWRlYmFyLXdyYXAge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIC5oZWFkZXItaW1hZ2UgLnRpdGxlLWFyZWEge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciB0b3A7IH1cbiAgLmdlbmVzaXMtbmF2LW1lbnUgbGksXG4gIC5zaXRlLWhlYWRlciB1bC5nZW5lc2lzLW5hdi1tZW51LFxuICAuc2l0ZS1oZWFkZXIgLnNlYXJjaC1mb3JtIHtcbiAgICBmbG9hdDogbm9uZTsgfVxuICAuZ2VuZXNpcy1uYXYtbWVudSxcbiAgLnNpdGUtZGVzY3JpcHRpb24sXG4gIC5zaXRlLWhlYWRlciAudGl0bGUtYXJlYSxcbiAgLnNpdGUtaGVhZGVyIC5zZWFyY2gtZm9ybSxcbiAgLnNpdGUtdGl0bGUge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAuZ2VuZXNpcy1uYXYtbWVudSBhLFxuICAuZ2VuZXNpcy1uYXYtbWVudSA+IC5maXJzdCA+IGEsXG4gIC5nZW5lc2lzLW5hdi1tZW51ID4gLmxhc3QgPiBhIHtcbiAgICBwYWRkaW5nOiAyMHB4IDE2cHg7IH1cbiAgLnNpdGUtaGVhZGVyIC5zZWFyY2gtZm9ybSB7XG4gICAgbWFyZ2luOiAxNnB4IGF1dG87XG4gICAgLyp3aWR0aDogNTAlOyovXG4gICAgd2lkdGg6IDIzNHB4OyB9XG4gIC5nZW5lc2lzLW5hdi1tZW51IGxpLnJpZ2h0LFxuICAuZ2VuZXNpcy1uYXYtbWVudS5yZXNwb25zaXZlLW1lbnUgLm1lbnUtaXRlbS5yaWdodCB7XG4gICAgZGlzcGxheTogbm9uZTsgfSB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAuc2l0ZS1pbm5lcixcbiAgLndyYXAge1xuICAgIHBhZGRpbmctbGVmdDogNSU7XG4gICAgcGFkZGluZy1yaWdodDogNSU7IH1cbiAgLmNvbnRlbnQsXG4gIC5jb250ZW50LXNpZGViYXItc2lkZWJhciAuY29udGVudCxcbiAgLmNvbnRlbnQtc2lkZWJhci1zaWRlYmFyIC5jb250ZW50LXNpZGViYXItd3JhcCxcbiAgLmZvb3Rlci13aWRnZXRzLTEsXG4gIC5mb290ZXItd2lkZ2V0cy0yLFxuICAuZm9vdGVyLXdpZGdldHMtMyxcbiAgLnNpZGViYXItY29udGVudC1zaWRlYmFyIC5jb250ZW50LFxuICAuc2lkZWJhci1jb250ZW50LXNpZGViYXIgLmNvbnRlbnQtc2lkZWJhci13cmFwLFxuICAuc2lkZWJhci1wcmltYXJ5LFxuICAuc2lkZWJhci1zZWNvbmRhcnksXG4gIC5zaWRlYmFyLXNpZGViYXItY29udGVudCAuY29udGVudCxcbiAgLnNpZGViYXItc2lkZWJhci1jb250ZW50IC5jb250ZW50LXNpZGViYXItd3JhcCxcbiAgLnNpdGUtaGVhZGVyIC53aWRnZXQtYXJlYSxcbiAgLnRpdGxlLWFyZWEge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIC5hcmNoaXZlLWRlc2NyaXB0aW9uLFxuICAuYXV0aG9yLWJveCxcbiAgLmNvbW1lbnQtcmVzcG9uZCxcbiAgLmVudHJ5LFxuICAuZW50cnktY29tbWVudHMsXG4gIC5lbnRyeS1waW5ncyxcbiAgLnNpZGViYXIgLndpZGdldCxcbiAgLnNpdGUtaGVhZGVyIHtcbiAgICBwYWRkaW5nOiAwOyB9XG4gIC5hcmNoaXZlLXBhZ2luYXRpb24gbGkgYSB7XG4gICAgbWFyZ2luLWJvdHRvbTogNHB4OyB9XG4gIC5zaWRlYmFyIC53aWRnZXQuZW5ld3Mtd2lkZ2V0IHtcbiAgICBwYWRkaW5nOiA0MHB4OyB9XG4gIC5nZW5lc2lzLW5hdi1tZW51LnJlc3BvbnNpdmUtbWVudSA+IC5tZW51LWl0ZW0gPiAuc3ViLW1lbnUsXG4gIC5nZW5lc2lzLW5hdi1tZW51LnJlc3BvbnNpdmUtbWVudSB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAuZ2VuZXNpcy1uYXYtbWVudS5yZXNwb25zaXZlLW1lbnUgLm1lbnUtaXRlbSxcbiAgLnJlc3BvbnNpdmUtbWVudS1pY29uIHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuICAuZ2VuZXNpcy1uYXYtbWVudS5yZXNwb25zaXZlLW1lbnUgLm1lbnUtaXRlbSB7XG4gICAgbWFyZ2luOiAwOyB9XG4gIC5nZW5lc2lzLW5hdi1tZW51LnJlc3BvbnNpdmUtbWVudSAubWVudS1pdGVtOmhvdmVyIHtcbiAgICBwb3NpdGlvbjogc3RhdGljOyB9XG4gIC5nZW5lc2lzLW5hdi1tZW51LnJlc3BvbnNpdmUtbWVudSAuY3VycmVudC1tZW51LWl0ZW0gPiBhLFxuICAuZ2VuZXNpcy1uYXYtbWVudS5yZXNwb25zaXZlLW1lbnUgLnN1Yi1tZW51IC5jdXJyZW50LW1lbnUtaXRlbSA+IGE6aG92ZXIsXG4gIC5nZW5lc2lzLW5hdi1tZW51LnJlc3BvbnNpdmUtbWVudSBhLFxuICAuZ2VuZXNpcy1uYXYtbWVudS5yZXNwb25zaXZlLW1lbnUgYTpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBwYWRkaW5nOiAxNnB4IDIwcHg7IH1cbiAgLm5hdi1wcmltYXJ5IC5nZW5lc2lzLW5hdi1tZW51LnJlc3BvbnNpdmUtbWVudSAuY3VycmVudC1tZW51LWl0ZW0gPiBhLFxuICAubmF2LXByaW1hcnkgLmdlbmVzaXMtbmF2LW1lbnUucmVzcG9uc2l2ZS1tZW51IC5zdWItbWVudSAuY3VycmVudC1tZW51LWl0ZW0gPiBhOmhvdmVyLFxuICAubmF2LXByaW1hcnkgLmdlbmVzaXMtbmF2LW1lbnUucmVzcG9uc2l2ZS1tZW51IGEsXG4gIC5uYXYtcHJpbWFyeSAuZ2VuZXNpcy1uYXYtbWVudS5yZXNwb25zaXZlLW1lbnUgYTpob3ZlciB7XG4gICAgY29sb3I6ICMzQjNEM0I7IH1cbiAgLmdlbmVzaXMtbmF2LW1lbnUucmVzcG9uc2l2ZS1tZW51IC5tZW51LWl0ZW0taGFzLWNoaWxkcmVuIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgLmdlbmVzaXMtbmF2LW1lbnUucmVzcG9uc2l2ZS1tZW51IC5tZW51LWl0ZW0taGFzLWNoaWxkcmVuID4gYSB7XG4gICAgbWFyZ2luLXJpZ2h0OiA2MHB4OyB9XG4gIC5nZW5lc2lzLW5hdi1tZW51LnJlc3BvbnNpdmUtbWVudSA+IC5tZW51LWl0ZW0taGFzLWNoaWxkcmVuOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYzNDdcIjtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgZm9udDogbm9ybWFsIDE2cHgvMSAnZGFzaGljb25zJztcbiAgICBoZWlnaHQ6IDE2cHg7XG4gICAgcGFkZGluZzogMTZweCAyMHB4O1xuICAgIHJpZ2h0OiAwO1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIHotaW5kZXg6IDk5OTk7IH1cbiAgLm5hdi1wcmltYXJ5IC5nZW5lc2lzLW5hdi1tZW51LnJlc3BvbnNpdmUtbWVudSA+IC5tZW51LWl0ZW0taGFzLWNoaWxkcmVuOmJlZm9yZSB7XG4gICAgY29sb3I6ICMzQjNEM0I7IH1cbiAgLmdlbmVzaXMtbmF2LW1lbnUucmVzcG9uc2l2ZS1tZW51IC5tZW51LW9wZW4ubWVudS1pdGVtLWhhcy1jaGlsZHJlbjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMzQzXCI7IH1cbiAgLmdlbmVzaXMtbmF2LW1lbnUucmVzcG9uc2l2ZS1tZW51IC5zdWItbWVudSB7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGxlZnQ6IGF1dG87XG4gICAgb3BhY2l0eTogMTtcbiAgICBwYWRkaW5nLWxlZnQ6IDI1cHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIC1tb3otdHJhbnNpdGlvbjogb3BhY2l0eSAuNHMgZWFzZS1pbi1vdXQ7XG4gICAgLW1zLXRyYW5zaXRpb246IG9wYWNpdHkgLjRzIGVhc2UtaW4tb3V0O1xuICAgIC1vLXRyYW5zaXRpb246IG9wYWNpdHkgLjRzIGVhc2UtaW4tb3V0O1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAuNHMgZWFzZS1pbi1vdXQ7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAuNHMgZWFzZS1pbi1vdXQ7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgei1pbmRleDogOTk7IH1cbiAgLmdlbmVzaXMtbmF2LW1lbnUucmVzcG9uc2l2ZS1tZW51IC5zdWItbWVudSAuc3ViLW1lbnUge1xuICAgIG1hcmdpbjogMDsgfVxuICAuZ2VuZXNpcy1uYXYtbWVudS5yZXNwb25zaXZlLW1lbnUgLnN1Yi1tZW51IC5jdXJyZW50LW1lbnUtaXRlbSA+IGE6aG92ZXIsXG4gIC5nZW5lc2lzLW5hdi1tZW51LnJlc3BvbnNpdmUtbWVudSAuc3ViLW1lbnUgbGkgYSxcbiAgLmdlbmVzaXMtbmF2LW1lbnUucmVzcG9uc2l2ZS1tZW51IC5zdWItbWVudSBsaSBhOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBwYWRkaW5nOiAxMnB4IDIwcHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiAxMDAlOyB9IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1NjhweCkge1xuICAuY29tbWVudC1yZXNwb25kIGlucHV0W3R5cGU9XCJlbWFpbFwiXSxcbiAgLmNvbW1lbnQtcmVzcG9uZCBpbnB1dFt0eXBlPVwidGV4dFwiXSxcbiAgLmNvbW1lbnQtcmVzcG9uZCBpbnB1dFt0eXBlPVwidXJsXCJdIHtcbiAgICB3aWR0aDogMTAwJTsgfSB9XG5cbi8qICMjIEZvcm1zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbmlucHV0LFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICBjb2xvcjogIzMzMztcbiAgZm9udC1zaXplOiAxOHB4O1xuICBmb250LXdlaWdodDogMzAwO1xuICBwYWRkaW5nOiAxNnB4O1xuICB3aWR0aDogMTAwJTsgfVxuXG5pbnB1dDpmb2N1cyxcbnRleHRhcmVhOmZvY3VzIHtcbiAgYm9yZGVyOiAxcHggc29saWQgIzk5OTtcbiAgb3V0bGluZTogbm9uZTsgfVxuXG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sXG5pbnB1dFt0eXBlPVwiaW1hZ2VcIl0sXG5pbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICB3aWR0aDogYXV0bzsgfVxuXG46Oi1tb3otcGxhY2Vob2xkZXIge1xuICBjb2xvcjogIzMzMztcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgb3BhY2l0eTogMTsgfVxuXG46Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xuICBjb2xvcjogIzMzMztcbiAgZm9udC13ZWlnaHQ6IDMwMDsgfVxuXG5idXR0b24sXG5pbnB1dFt0eXBlPVwiYnV0dG9uXCJdLFxuaW5wdXRbdHlwZT1cInJlc2V0XCJdLFxuaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSxcbi5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzMzO1xuICBib3JkZXI6IG5vbmU7XG4gIGNvbG9yOiAjZmZmO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgcGFkZGluZzogMTZweCAyNHB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB3aWR0aDogYXV0bzsgfVxuXG4uZm9vdGVyLXdpZGdldHMgYnV0dG9uLFxuLmZvb3Rlci13aWRnZXRzIGlucHV0W3R5cGU9XCJidXR0b25cIl0sXG4uZm9vdGVyLXdpZGdldHMgaW5wdXRbdHlwZT1cInJlc2V0XCJdLFxuLmZvb3Rlci13aWRnZXRzIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0sXG4uZm9vdGVyLXdpZGdldHMgLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNTU1NGU7XG4gIGNvbG9yOiAjZmZmOyB9XG5cbmJ1dHRvbjpob3ZlcixcbmlucHV0OmhvdmVyW3R5cGU9XCJidXR0b25cIl0sXG5pbnB1dDpob3Zlclt0eXBlPVwicmVzZXRcIl0sXG5pbnB1dDpob3Zlclt0eXBlPVwic3VibWl0XCJdLFxuLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNTU1NGU7XG4gIGNvbG9yOiAjZmZmOyB9XG5cbi5lbnRyeS1jb250ZW50IC5idXR0b246aG92ZXIge1xuICBjb2xvcjogI2ZmZjsgfVxuXG4uZm9vdGVyLXdpZGdldHMgYnV0dG9uOmhvdmVyLFxuLmZvb3Rlci13aWRnZXRzIGlucHV0OmhvdmVyW3R5cGU9XCJidXR0b25cIl0sXG4uZm9vdGVyLXdpZGdldHMgaW5wdXQ6aG92ZXJbdHlwZT1cInJlc2V0XCJdLFxuLmZvb3Rlci13aWRnZXRzIGlucHV0OmhvdmVyW3R5cGU9XCJzdWJtaXRcIl0sXG4uZm9vdGVyLXdpZGdldHMgLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGNvbG9yOiAjMzMzOyB9XG5cbi5idXR0b24ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cblxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLXJlc3VsdHMtYnV0dG9uIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4vKiAjIyBUYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xudGFibGUge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBib3JkZXItc3BhY2luZzogMDtcbiAgbGluZS1oZWlnaHQ6IDI7XG4gIG1hcmdpbi1ib3R0b206IDQwcHg7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbnRib2R5IHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkZGQ7IH1cblxudGQsXG50aCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7IH1cblxudGQge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2RkZDtcbiAgcGFkZGluZzogNnB4IDA7IH1cblxudGgge1xuICBmb250LXdlaWdodDogNDAwOyB9XG5cbi8qICMjIEdhbGxlcnlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLmdhbGxlcnkge1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG5cbi5nYWxsZXJ5LWl0ZW0ge1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luOiAwIDAgMjhweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbi5nYWxsZXJ5LWNvbHVtbnMtMiAuZ2FsbGVyeS1pdGVtIHtcbiAgd2lkdGg6IDUwJTsgfVxuXG4uZ2FsbGVyeS1jb2x1bW5zLTMgLmdhbGxlcnktaXRlbSB7XG4gIHdpZHRoOiAzMyU7IH1cblxuLmdhbGxlcnktY29sdW1ucy00IC5nYWxsZXJ5LWl0ZW0ge1xuICB3aWR0aDogMjUlOyB9XG5cbi5nYWxsZXJ5LWNvbHVtbnMtNSAuZ2FsbGVyeS1pdGVtIHtcbiAgd2lkdGg6IDIwJTsgfVxuXG4uZ2FsbGVyeS1jb2x1bW5zLTYgLmdhbGxlcnktaXRlbSB7XG4gIHdpZHRoOiAxNi42NjY2JTsgfVxuXG4uZ2FsbGVyeS1jb2x1bW5zLTcgLmdhbGxlcnktaXRlbSB7XG4gIHdpZHRoOiAxNC4yODU3JTsgfVxuXG4uZ2FsbGVyeS1jb2x1bW5zLTggLmdhbGxlcnktaXRlbSB7XG4gIHdpZHRoOiAxMi41JTsgfVxuXG4uZ2FsbGVyeS1jb2x1bW5zLTkgLmdhbGxlcnktaXRlbSB7XG4gIHdpZHRoOiAxMS4xMTExJTsgfVxuXG4uZ2FsbGVyeSBpbWcge1xuICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICBoZWlnaHQ6IGF1dG87XG4gIHBhZGRpbmc6IDRweDsgfVxuXG4uZ2FsbGVyeSBpbWc6aG92ZXIge1xuICBib3JkZXI6IDFweCBzb2xpZCAjOTk5OyB9XG5cbi8qICMgQ29tbW9uIENsYXNzZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qICMjIEF2YXRhclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uYXZhdGFyIHtcbiAgZmxvYXQ6IGxlZnQ7IH1cblxuLmFsaWdubGVmdCAuYXZhdGFyLFxuLmF1dGhvci1ib3ggLmF2YXRhciB7XG4gIG1hcmdpbi1yaWdodDogMjRweDsgfVxuXG4uYWxpZ25yaWdodCAuYXZhdGFyIHtcbiAgbWFyZ2luLWxlZnQ6IDI0cHg7IH1cblxuLmNvbW1lbnQgLmF2YXRhciB7XG4gIG1hcmdpbjogMCAxNnB4IDI0cHggMDsgfVxuXG4vKiAjIyBHZW5lc2lzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5icmVhZGNydW1iIHtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDsgfVxuXG4uYXJjaGl2ZS1kZXNjcmlwdGlvbixcbi5hdXRob3ItYm94IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBtYXJnaW4tYm90dG9tOiA0MHB4O1xuICBwYWRkaW5nOiA0MHB4OyB9XG5cbi5hdXRob3ItYm94LXRpdGxlIHtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBtYXJnaW4tYm90dG9tOiA0cHg7IH1cblxuLmFyY2hpdmUtZGVzY3JpcHRpb24gcDpsYXN0LWNoaWxkLFxuLmF1dGhvci1ib3ggcDpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4vKiAjIyBTZWFyY2ggRm9ybVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uc2VhcmNoLWZvcm0ge1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG5cbi5zaXRlLWhlYWRlciAuc2VhcmNoLWZvcm0ge1xuICBmbG9hdDogcmlnaHQ7XG4gIG1hcmdpbi10b3A6IDEycHg7IH1cblxuLmVudHJ5LWNvbnRlbnQgLnNlYXJjaC1mb3JtIHtcbiAgd2lkdGg6IDUwJTsgfVxuXG4uZ2VuZXNpcy1uYXYtbWVudSAuc2VhcmNoIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0sXG4ud2lkZ2V0X3NlYXJjaCBpbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbiAgYm9yZGVyOiAwO1xuICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xuICBoZWlnaHQ6IDFweDtcbiAgbWFyZ2luOiAtMXB4O1xuICBwYWRkaW5nOiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxcHg7IH1cblxuLyogVG8gY2xlYXIgc2VhcmNoIGlucHV0IGZpZWxkJ3MgdGV4dCB3aGVuIHRoZSBzZWFyY2ggZmllbGQgZ2V0cyBmb2N1cyAqL1xuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTpmb2N1czo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiB0cmFuc3BhcmVudDsgfVxuXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOmZvY3VzOi1tb3otcGxhY2Vob2xkZXIge1xuICBjb2xvcjogdHJhbnNwYXJlbnQ7IH1cblxuLyogRmlyZWZveCAxOC0gKi9cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Zm9jdXM6Oi1tb3otcGxhY2Vob2xkZXIge1xuICBjb2xvcjogdHJhbnNwYXJlbnQ7IH1cblxuLyogRmlyZWZveCAxOSsgKi9cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Zm9jdXM6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IHRyYW5zcGFyZW50OyB9XG5cbi8qIG9sZElFIDspICovXG4vKiAjIyBUaXRsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLmFyY2hpdmUtdGl0bGUge1xuICBmb250LXNpemU6IDIwcHg7IH1cblxuLmVudHJ5LXRpdGxlIHtcbiAgZm9udC1zaXplOiAzNnB4OyB9XG5cbi5wYWdlIC5lbnRyeS10aXRsZSB7XG4gIG1hcmdpbi1ib3R0b206IDI0cHg7IH1cblxuLmVudHJ5LXRpdGxlIGEsXG4uc2lkZWJhciAud2lkZ2V0LXRpdGxlIGEge1xuICBjb2xvcjogIzMzMzsgfVxuXG4uZW50cnktdGl0bGUgYTpob3ZlciB7XG4gIGNvbG9yOiAjZTU1NTRlOyB9XG5cbi53aWRnZXQtdGl0bGUge1xuICBmb250LXNpemU6IDE4cHg7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7IH1cblxuLmZvb3Rlci13aWRnZXRzIC53aWRnZXQtdGl0bGUge1xuICBjb2xvcjogI2ZmZjsgfVxuXG4vKiAjIyBXb3JkUHJlc3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuYS5hbGlnbmNlbnRlciBpbWcge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAwIGF1dG87IH1cblxuYS5hbGlnbm5vbmUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cblxuLmFsaWdubGVmdCB7XG4gIGZsb2F0OiBsZWZ0O1xuICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG5cbi5hbGlnbnJpZ2h0IHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICB0ZXh0LWFsaWduOiByaWdodDsgfVxuXG5hLmFsaWdubGVmdCxcbmEuYWxpZ25ub25lLFxuYS5hbGlnbnJpZ2h0IHtcbiAgbWF4LXdpZHRoOiAxMDAlOyB9XG5cbmltZy5jZW50ZXJlZCxcbi5hbGlnbmNlbnRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDAgYXV0byAyNHB4OyB9XG5cbmltZy5hbGlnbm5vbmUsXG4uYWxpZ25ub25lIHtcbiAgbWFyZ2luLWJvdHRvbTogMTJweDsgfVxuXG5hLmFsaWdubGVmdCxcbmltZy5hbGlnbmxlZnQsXG4ud3AtY2FwdGlvbi5hbGlnbmxlZnQge1xuICBtYXJnaW46IDAgMjRweCAyNHB4IDA7IH1cblxuYS5hbGlnbnJpZ2h0LFxuaW1nLmFsaWducmlnaHQsXG4ud3AtY2FwdGlvbi5hbGlnbnJpZ2h0IHtcbiAgbWFyZ2luOiAwIDAgMjRweCAyNHB4OyB9XG5cbi53cC1jYXB0aW9uLXRleHQge1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4uZW50cnktY29udGVudCBwLndwLWNhcHRpb24tdGV4dCB7XG4gIG1hcmdpbi1ib3R0b206IDA7IH1cblxuLmNvbG91ci1ibG9jaywgLmJvb2tpbmctYnV0dG9uLCAucGhvdG8tbGluayB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgZm9udC1zaXplOiAyMHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNvbG9yOiAjZmZmO1xuICBwYWRkaW5nOiA1MHB4IDA7XG4gIGZvbnQtZmFtaWx5OiBTb3VyY2UgU2Fucywgc2Fucy1zZXJpZjsgfVxuICAuY29sb3VyLWJsb2NrOmhvdmVyLCAuYm9va2luZy1idXR0b246aG92ZXIsIC5waG90by1saW5rOmhvdmVyIHtcbiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjg1KTsgfVxuXG4uYm9va2luZy1idXR0b24ge1xuICBjb2xvcjogI2ZmZjtcbiAgZm9udC1zaXplOiA0MHB4O1xuICBwYWRkaW5nOiAxMDBweCAwIDEwMHB4OyB9XG4gIC5ib29raW5nLWJ1dHRvbjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwi7qGbXCI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogYXV0bztcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eSAhaW1wb3J0YW50O1xuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkICFpbXBvcnRhbnQ7XG4gICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZSAhaW1wb3J0YW50O1xuICAgIHNwZWFrOiBub25lO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgZm9udC1mYW1pbHk6IFwiZW50eXBvXCI7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGZvbnQtc2l6ZTogNDBweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAtMnB4O1xuICAgIG1hcmdpbi1sZWZ0OiAycHg7IH1cbiAgLmJvb2tpbmctYnV0dG9uOmhvdmVyIHtcbiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjg1KTsgfVxuXG4uYmcteWVsbG93IC5ib29raW5nLWJ1dHRvbiB7XG4gIGNvbG9yOiAjM0IzRDNCOyB9XG4gIC5iZy15ZWxsb3cgLmJvb2tpbmctYnV0dG9uOmhvdmVyIHtcbiAgICBjb2xvcjogcmdiYSg1OSwgNjEsIDU5LCAwLjg1KTsgfVxuXG4ucGhvdG8tbGluayB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgbWluLWhlaWdodDogMjAwcHg7IH1cbiAgLnBob3RvLWxpbmsgLnRleHQge1xuICAgIGJhY2tncm91bmQ6ICNjZjQ1MjA7XG4gICAgZm9udC1zaXplOiA1MHB4O1xuICAgIHBhZGRpbmc6IDAgMjlweDtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgcmlnaHQ6IDA7IH1cbiAgLnBob3RvLWxpbmsuc3RheSB7XG4gICAgcGFkZGluZzogMTBweCAwIDEzMHB4OyB9XG4gIC5waG90by1saW5rLnBsYXkge1xuICAgIHBhZGRpbmc6IDEzMHB4IDAgMTBweDsgfVxuXG4uaG9tZXBhZ2UtaGVhZGluZy1saW5rIGEge1xuICBmb250LWZhbWlseTogU291cmNlIFNhbnMsIHNhbnMtc2VyaWY7XG4gIHBhZGRpbmc6IDE1cHggMCAwO1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGNvbG9yOiAjZmZmOyB9XG5cbi5zbGlkZXNob3cgLmZsLWNvbC1jb250ZW50IHtcbiAgcGFkZGluZzogMDsgfVxuXG4uaG9tZXBhZ2UtZ3JpZCAuZmwtY29sLWNvbnRlbnQge1xuICBtYXJnaW46IDAgMTBweDsgfVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLmhvbWVwYWdlLWdyaWQgLmZsLWNvbC1jb250ZW50IHtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4OyB9IH1cblxuLnBhZ2UtbmF2LWxpbmtzIC5mbC1jb2wtY29udGVudCB7XG4gIHBhZGRpbmc6IDA7IH1cbiAgLnBhZ2UtbmF2LWxpbmtzIC5mbC1jb2wtY29udGVudCAuYm9va2luZy1idXR0b24ge1xuICAgIHBhZGRpbmc6IDgwcHggMDsgfVxuICAucGFnZS1uYXYtbGlua3MgLmZsLWNvbC1jb250ZW50IC5zdGF5IHtcbiAgICBwYWRkaW5nOiAyMHB4IDAgMTQwcHg7IH1cbiAgLnBhZ2UtbmF2LWxpbmtzIC5mbC1jb2wtY29udGVudCAucGxheSB7XG4gICAgcGFkZGluZzogMTQwcHggMCAyMHB4OyB9XG5cbi8qICMgV2lkZ2V0c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLndpZGdldCB7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDsgfVxuXG4ud2lkZ2V0IG9sID4gbGkge1xuICBsaXN0LXN0eWxlLXBvc2l0aW9uOiBpbnNpZGU7XG4gIGxpc3Qtc3R5bGUtdHlwZTogZGVjaW1hbDtcbiAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICB0ZXh0LWluZGVudDogLTIwcHg7IH1cblxuLndpZGdldCBsaSBsaSB7XG4gIGJvcmRlcjogbm9uZTtcbiAgbWFyZ2luOiAwIDAgMCAzMHB4O1xuICBwYWRkaW5nOiAwOyB9XG5cbi53aWRnZXRfY2FsZW5kYXIgdGFibGUge1xuICB3aWR0aDogMTAwJTsgfVxuXG4ud2lkZ2V0X2NhbGVuZGFyIHRkLFxuLndpZGdldF9jYWxlbmRhciB0aCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4vKiAjIyBGZWF0dXJlZCBDb250ZW50XG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5mZWF0dXJlZC1jb250ZW50IC5lbnRyeSB7XG4gIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjZjVmNWY1O1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBwYWRkaW5nOiAwIDAgMjRweDsgfVxuXG4uZm9vdGVyLXdpZGdldHMgLmVudHJ5IHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZCAjNjY2OyB9XG5cbi5mZWF0dXJlZC1jb250ZW50IC5lbnRyeS10aXRsZSB7XG4gIGZvbnQtc2l6ZTogMjBweDsgfVxuXG4vKiAjIFBsdWdpbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qICMjIEdlbmVzaXMgZU5ld3MgRXh0ZW5kZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLmVuZXdzLXdpZGdldCxcbi5lbmV3cy13aWRnZXQgLndpZGdldC10aXRsZSB7XG4gIGNvbG9yOiAjZmZmOyB9XG5cbi5zaWRlYmFyIC53aWRnZXQuZW5ld3Mtd2lkZ2V0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsgfVxuXG4uZW5ld3Mtd2lkZ2V0IGlucHV0LFxuLmVuZXdzLXdpZGdldCBpbnB1dDpmb2N1cyB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICMzMzM7IH1cblxuLmVuZXdzLXdpZGdldCBpbnB1dCB7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgbWFyZ2luLWJvdHRvbTogMTZweDsgfVxuXG4uZW5ld3Mtd2lkZ2V0IGlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTU1NTRlO1xuICBjb2xvcjogI2ZmZjtcbiAgbWFyZ2luOiAwO1xuICB3aWR0aDogMTAwJTsgfVxuXG4uZW5ld3Mtd2lkZ2V0IGlucHV0OmhvdmVyW3R5cGU9XCJzdWJtaXRcIl0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBjb2xvcjogIzMzMzsgfVxuXG4uZW5ld3MgZm9ybSArIHAge1xuICBtYXJnaW4tdG9wOiAyNHB4OyB9XG5cbi8qICMjIEpldHBhY2tcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuI3dwc3RhdHMge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi8qIFRvIGF2b2lkIG5vdGljZWFibGUgdmVydGljYWwgbW92ZW1lbnQgZm9yIGhvdmVyIHN0YXRlIG9mIFNvbGlsb3F1eSdzIENvbnRyb2wgTmF2ICh0eXBpY2FsbHkgY2lyY2xlcykgYW5kIGJ4U2xpZGVyJ3MgbGVmdCBhbmQgcmlnaHQgYXJyb3dzICovXG4uc29saWxvcXV5LWNvbnRhaW5lciAuc29saWxvcXV5LWNvbnRyb2wtbmF2IGxpIGEsXG4uc29saWxvcXV5LXRoZW1lLWNsYXNzaWMgLnNvbGlsb3F1eS1wYWdlci1saW5rLFxuLmJ4LXdyYXBwZXIgLmJ4LWNvbnRyb2xzLWRpcmVjdGlvbiBhIHtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBub25lO1xuICAtbW96LXRyYW5zaXRpb246IG5vbmU7XG4gIC1tcy10cmFuc2l0aW9uOiBub25lO1xuICAtby10cmFuc2l0aW9uOiBub25lO1xuICB0cmFuc2l0aW9uOiBub25lOyB9XG5cbi8qIFRvIHJlbW92ZSBib3R0b20gYm9yZGVyIGZvciBTb2xpbG9xdXkgY29udHJvbHMgKi9cbi5lbnRyeS1jb250ZW50IC5zb2xpbG9xdXktY29udHJvbHMtZGlyZWN0aW9uIGEsIC5lbnRyeS1jb250ZW50IGEuc29saWxvcXV5LXBhZ2VyLWxpbmsge1xuICBib3JkZXItYm90dG9tOiBub25lOyB9XG5cbi8qICMgU2l0ZSBIZWFkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5zaXRlLWhlYWRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJvcmRlci1ib3R0b206IDVweCBzb2xpZCAjY2Y0NTIwO1xuICAvKm1pbi1oZWlnaHQ6IDE2MHB4OyovIH1cbiAgLnNpdGUtaGVhZGVyIC53cmFwIHtcbiAgICBwYWRkaW5nOiA0MHB4IDAgMDsgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgICAgLnNpdGUtaGVhZGVyIC53cmFwIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDVweDsgfSB9XG5cbi8qICMjIFRpdGxlIEFyZWFcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLnRpdGxlLWFyZWEge1xuICBmbG9hdDogbGVmdDtcbiAgcGFkZGluZzogMTBweCAwIDEwcHggMjlweDtcbiAgd2lkdGg6IDI4MHB4OyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAgIC50aXRsZS1hcmVhIHtcbiAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgbWFyZ2luLXRvcDogLTIwcHg7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxMHB4OyB9IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgLnRpdGxlLWFyZWEge1xuICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICBtYXJnaW46IDAgYXV0bzsgfSB9XG5cbi5oZWFkZXItZnVsbC13aWR0aCAudGl0bGUtYXJlYSB7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbi5zaXRlLXRpdGxlIHtcbiAgZm9udC1zaXplOiAzMnB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMS4yOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAgIC5zaXRlLXRpdGxlIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHotaW5kZXg6IDk5OyB9IH1cblxuLnNpdGUtdGl0bGUgYSxcbi5zaXRlLXRpdGxlIGE6aG92ZXIge1xuICBjb2xvcjogIzMzMzsgfVxuXG4uc2l0ZS10aXRsZSBhIGltZyB7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7IH1cblxuLmhlYWRlci1pbWFnZSAuc2l0ZS10aXRsZSA+IGEge1xuICBiYWNrZ3JvdW5kOiB1cmwoaW1hZ2VzL2xvZ28uc3ZnKSBuby1yZXBlYXQgbGVmdCAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLXNpemU6IDI1MHB4ICFpbXBvcnRhbnQ7XG4gIGZsb2F0OiBsZWZ0O1xuICBtaW4taGVpZ2h0OiAxMjBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1sZWZ0OiAtMTVweDsgfVxuXG4uc2l0ZS1kZXNjcmlwdGlvbiB7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgbGluZS1oZWlnaHQ6IDEuNTsgfVxuXG4uc2l0ZS1kZXNjcmlwdGlvbixcbi5zaXRlLXRpdGxlIHtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4uaGVhZGVyLWltYWdlIC5zaXRlLWRlc2NyaXB0aW9uLFxuLmhlYWRlci1pbWFnZSAuc2l0ZS10aXRsZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB0ZXh0LWluZGVudDogLTk5OTlweDsgfVxuXG4vKiAjIyBXaWRnZXQgQXJlYVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uc2l0ZS1oZWFkZXIgLndpZGdldC1hcmVhIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgLyp3aWR0aDogODAwcHg7Ki8gfVxuICBAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAuc2l0ZS1oZWFkZXIgLndpZGdldC1hcmVhIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGZsb2F0OiBub25lOyB9IH1cbiAgLnNpdGUtaGVhZGVyIC53aWRnZXQtYXJlYSBhLmJ1dHRvbi5ib29raW5nIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2Y0NTIwO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIHBhZGRpbmc6IDEwcHggMjBweDtcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7IH1cbiAgICAuc2l0ZS1oZWFkZXIgLndpZGdldC1hcmVhIGEuYnV0dG9uLmJvb2tpbmc6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IFwi7qGbXCI7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHkgIWltcG9ydGFudDtcbiAgICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkICFpbXBvcnRhbnQ7XG4gICAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlICFpbXBvcnRhbnQ7XG4gICAgICBzcGVhazogbm9uZTtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICAgIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgIGZvbnQtZmFtaWx5OiBcImVudHlwb1wiO1xuICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgZm9udC1zaXplOiAxLjNlbTtcbiAgICAgIG1hcmdpbi1yaWdodDogNnB4O1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgdG9wOiAtMXB4O1xuICAgICAgbWFyZ2luLWxlZnQ6IDJweDsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAuc2l0ZS1oZWFkZXIgLndpZGdldC1hcmVhIC5ib29raW5nLWJ1dHRvbixcbiAgICAuc2l0ZS1oZWFkZXIgLndpZGdldC1hcmVhIC5waG9uZS1udW1iZXIsXG4gICAgLnNpdGUtaGVhZGVyIC53aWRnZXQtYXJlYSAueWhhLWxvZ28ge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG4gICAgLnNpdGUtaGVhZGVyIC53aWRnZXQtYXJlYSBhLmJ1dHRvbi5ib29raW5nIHtcbiAgICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgICAgY29sb3I6ICMzQjNEM0I7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAuc2l0ZS1oZWFkZXIgLndpZGdldC1hcmVhIHtcbiAgICAgIG1hcmdpbi10b3A6IC00MHB4OyB9XG4gICAgICAuc2l0ZS1oZWFkZXIgLndpZGdldC1hcmVhIC5ib29raW5nLWJ1dHRvbixcbiAgICAgIC5zaXRlLWhlYWRlciAud2lkZ2V0LWFyZWEgLnBob25lLW51bWJlcixcbiAgICAgIC5zaXRlLWhlYWRlciAud2lkZ2V0LWFyZWEgLnloYS1sb2dvIHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgICAgIC5zaXRlLWhlYWRlciAud2lkZ2V0LWFyZWEgLnBob25lLW51bWJlciB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAxMHB4O1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAyMHB4OyB9XG4gICAgICAuc2l0ZS1oZWFkZXIgLndpZGdldC1hcmVhIC55aGEtbG9nbyB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDIwcHg7XG4gICAgICAgIHBhZGRpbmctdG9wOiAzcHg7IH1cbiAgICAgICAgLnNpdGUtaGVhZGVyIC53aWRnZXQtYXJlYSAueWhhLWxvZ28gaW1nIHtcbiAgICAgICAgICBmbG9hdDogbGVmdDsgfVxuICAgICAgICAuc2l0ZS1oZWFkZXIgLndpZGdldC1hcmVhIC55aGEtbG9nbyAueWhhLWhlYWRlci10ZXh0IHtcbiAgICAgICAgICBwYWRkaW5nOiA3cHggMCAwIDEwcHg7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAgIC5zaXRlLWhlYWRlciAud2lkZ2V0LWFyZWEge1xuICAgICAgbWFyZ2luLXRvcDogMDsgfVxuICAgICAgLnNpdGUtaGVhZGVyIC53aWRnZXQtYXJlYSAuYm9va2luZy5idXR0b24ge1xuICAgICAgICBjbGVhcjogYm90aDsgfVxuICAgICAgLnNpdGUtaGVhZGVyIC53aWRnZXQtYXJlYSAueWhhLWxvZ28ge1xuICAgICAgICBmbG9hdDogcmlnaHQ7IH1cbiAgICAgIC5zaXRlLWhlYWRlciAud2lkZ2V0LWFyZWEgLmJvb2tpbmcuYnV0dG9uIHtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0OyB9IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgLnNpdGUtaGVhZGVyIC53aWRnZXQtYXJlYSB7XG4gICAgICBtYXJnaW4tdG9wOiAwcHg7IH1cbiAgICAgIC5zaXRlLWhlYWRlciAud2lkZ2V0LWFyZWEgLmJvb2tpbmcuYnV0dG9uLFxuICAgICAgLnNpdGUtaGVhZGVyIC53aWRnZXQtYXJlYSAucGhvbmUtbnVtYmVyLFxuICAgICAgLnNpdGUtaGVhZGVyIC53aWRnZXQtYXJlYSAueWhhLWxvZ28ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGZsb2F0OiBub25lOyB9XG4gICAgICAuc2l0ZS1oZWFkZXIgLndpZGdldC1hcmVhIC55aGEtbG9nbyBpbWcge1xuICAgICAgICBmbG9hdDogbGVmdDsgfVxuICAgICAgLnNpdGUtaGVhZGVyIC53aWRnZXQtYXJlYSAueWhhLWxvZ28gLnloYS1oZWFkZXItdGV4dCB7XG4gICAgICAgIHBhZGRpbmc6IDdweCAwIDAgMTBweDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG4gICAgICAuc2l0ZS1oZWFkZXIgLndpZGdldC1hcmVhIGEuYnV0dG9uLmJvb2tpbmcge1xuICAgICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICAgICAgY29sb3I6ICMzQjNEM0I7IH0gfVxuXG4vKiAjIFNpdGUgTmF2aWdhdGlvblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLm5hdi1wcmltYXJ5IHtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgLm5hdi1wcmltYXJ5IHtcbiAgICAgIG1hcmdpbi10b3A6IC0xMDBweDtcbiAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgZmxvYXQ6IHJpZ2h0OyB9IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAgIC5uYXYtcHJpbWFyeSB7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgICAgIC5uYXYtcHJpbWFyeSAud3JhcCB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgIHBhZGRpbmctdG9wOiAwOyB9IH1cblxuLmdlbmVzaXMtbmF2LW1lbnUge1xuICBjbGVhcjogYm90aDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nLWxlZnQ6IDE0LjVweDtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAgIC5nZW5lc2lzLW5hdi1tZW51IHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfSB9XG4gIC5nZW5lc2lzLW5hdi1tZW51IC5zdWItbWVudSBhIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIGNvbG9yOiAjM0IzRDNCO1xuICAgIGJvcmRlci10b3A6IG5vbmU7XG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgcGFkZGluZzogMjBweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDIwMHB4OyB9XG4gIC5nZW5lc2lzLW5hdi1tZW51IC5zdWItbWVudSBsaTpsYXN0LW9mLXR5cGUgYSB7XG4gICAgYm9yZGVyLWJvdHRvbTogNXB4IHNvbGlkICNjZjQ1MjA7IH1cblxuLmJsdWUtbWVudSAuZ2VuZXNpcy1uYXYtbWVudSB7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6ICMzMDhGQTE7IH1cblxuLmdlbmVzaXMtbmF2LW1lbnUgLm1lbnUtaXRlbSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdGV4dC1hbGlnbjogbGVmdDsgfVxuXG4uZ2VuZXNpcy1uYXYtbWVudSBhIHtcbiAgY29sb3I6ICMzQjNEM0I7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAyMHB4IDE0LjVweCAxNXB4OyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiAxMDI0cHgpIHtcbiAgICAuZ2VuZXNpcy1uYXYtbWVudSBhIHtcbiAgICAgIHBhZGRpbmc6IDIwcHggOS42NjY2N3B4IDE1cHggIWltcG9ydGFudDsgfSB9XG5cbi5nZW5lc2lzLW5hdi1tZW51IGE6aG92ZXIsXG4uZ2VuZXNpcy1uYXYtbWVudSAuY3VycmVudC1tZW51LWl0ZW0gPiBhLFxuLmdlbmVzaXMtbmF2LW1lbnUgLnN1Yi1tZW51IC5jdXJyZW50LW1lbnUtaXRlbSA+IGE6aG92ZXIge1xuICBjb2xvcjogIzIyMjMyMjsgfVxuXG4uZ2VuZXNpcy1uYXYtbWVudSAuc3ViLW1lbnUge1xuICBsZWZ0OiAtOTk5OXB4O1xuICBvcGFjaXR5OiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAuNHMgZWFzZS1pbi1vdXQ7XG4gIC1tb3otdHJhbnNpdGlvbjogb3BhY2l0eSAuNHMgZWFzZS1pbi1vdXQ7XG4gIC1tcy10cmFuc2l0aW9uOiBvcGFjaXR5IC40cyBlYXNlLWluLW91dDtcbiAgLW8tdHJhbnNpdGlvbjogb3BhY2l0eSAuNHMgZWFzZS1pbi1vdXQ7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgLjRzIGVhc2UtaW4tb3V0O1xuICB3aWR0aDogMjAwcHg7XG4gIHotaW5kZXg6IDk5OyB9XG5cbi5nZW5lc2lzLW5hdi1tZW51IC5zdWItbWVudSAuc3ViLW1lbnUge1xuICBtYXJnaW46IC01NXB4IDAgMCAxOTlweDsgfVxuXG4uZ2VuZXNpcy1uYXYtbWVudSAubWVudS1pdGVtOmhvdmVyIHtcbiAgcG9zaXRpb246IHN0YXRpYzsgfVxuXG4uZ2VuZXNpcy1uYXYtbWVudSAubWVudS1pdGVtOmhvdmVyID4gLnN1Yi1tZW51IHtcbiAgbGVmdDogYXV0bztcbiAgb3BhY2l0eTogMTsgfVxuXG4uZ2VuZXNpcy1uYXYtbWVudSA+IC5maXJzdCA+IGEge1xuICBwYWRkaW5nLWxlZnQ6IDA7IH1cblxuLmdlbmVzaXMtbmF2LW1lbnUgPiAubGFzdCA+IGEge1xuICBwYWRkaW5nLXJpZ2h0OiAwOyB9XG5cbi5nZW5lc2lzLW5hdi1tZW51ID4gLnJpZ2h0IHtcbiAgY29sb3I6ICNmZmY7XG4gIGZsb2F0OiByaWdodDtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICBwYWRkaW5nOiAzMHB4IDA7IH1cblxuLmdlbmVzaXMtbmF2LW1lbnUgPiAucmlnaHQgPiBhIHtcbiAgZGlzcGxheTogaW5saW5lO1xuICBwYWRkaW5nOiAwOyB9XG5cbi5nZW5lc2lzLW5hdi1tZW51ID4gLnJzcyA+IGEge1xuICBtYXJnaW4tbGVmdDogNDhweDsgfVxuXG4uZ2VuZXNpcy1uYXYtbWVudSA+IC5zZWFyY2gge1xuICBwYWRkaW5nOiAxMHB4IDAgMDsgfVxuXG4vKiAjIyBTaXRlIEhlYWRlciBOYXZpZ2F0aW9uXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5zaXRlLWhlYWRlciAuc3ViLW1lbnUgLnN1Yi1tZW51IHtcbiAgbWFyZ2luLXRvcDogLTU2cHg7IH1cblxuLnNpdGUtaGVhZGVyIC5nZW5lc2lzLW5hdi1tZW51IGxpIGxpIHtcbiAgbWFyZ2luLWxlZnQ6IDA7IH1cblxuLyogIyMgUHJpbWFyeSBOYXZpZ2F0aW9uXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5uYXYtcHJpbWFyeSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7IH1cblxuLm5hdi1wcmltYXJ5IC5nZW5lc2lzLW5hdi1tZW51IGEge1xuICBjb2xvcjogIzNCM0QzQjsgfVxuXG4ubmF2LXByaW1hcnkgLmdlbmVzaXMtbmF2LW1lbnUgLnN1Yi1tZW51IGEge1xuICBjb2xvcjogIzNCM0QzQjsgfVxuXG4ubmF2LXByaW1hcnkgLmdlbmVzaXMtbmF2LW1lbnUgYTpob3Zlcixcbi5uYXYtcHJpbWFyeSAuZ2VuZXNpcy1uYXYtbWVudSAuY3VycmVudC1tZW51LWl0ZW0gPiBhLFxuLm5hdi1wcmltYXJ5IC5nZW5lc2lzLW5hdi1tZW51IC5zdWItbWVudSAuY3VycmVudC1tZW51LWl0ZW0gPiBhOmhvdmVyIHtcbiAgY29sb3I6ICMyMjIzMjI7IH1cblxuLyogIyMgU2Vjb25kYXJ5IE5hdmlnYXRpb25cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLm5hdi1zZWNvbmRhcnkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB9XG5cbi5mb290ZXItd2lkZ2V0cyAud3JhcCxcbi5zaXRlLWlubmVyIC53cmFwIHtcbiAgcGFkZGluZy1sZWZ0OiAyOXB4O1xuICBwYWRkaW5nLXJpZ2h0OiAyOXB4OyB9XG5cbi8qICMgRm9vdGVyIFdpZGdldHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5mb290ZXItd2lkZ2V0cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjZjQ1MjA7XG4gIGNsZWFyOiBib3RoO1xuICBwYWRkaW5nLXRvcDogNDBweDtcbiAgY29sb3I6ICNmZmY7IH1cbiAgLmZvb3Rlci13aWRnZXRzIGEge1xuICAgIGNvbG9yOiAjZjNiZGFmOyB9XG4gIC5mb290ZXItd2lkZ2V0cyBhLmJ1dHRvbiB7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgYmFja2dyb3VuZDogI2UyNjM0MDtcbiAgICBib3JkZXItYm90dG9tOiBub25lOyB9XG4gICAgLmZvb3Rlci13aWRnZXRzIGEuYnV0dG9uOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgYmFja2dyb3VuZDogI2U1NzU1NzsgfVxuICAuZm9vdGVyLXdpZGdldHMgaW5wdXQge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICM1ODU1NTI7IH1cbiAgLmZvb3Rlci13aWRnZXRzIGxpIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAxMHB4OyB9XG4gIC5mb290ZXItd2lkZ2V0cyAuZmFjZWJvb2s6YmVmb3JlLFxuICAuZm9vdGVyLXdpZGdldHMgLnlvdXR1YmU6YmVmb3JlLFxuICAuZm9vdGVyLXdpZGdldHMgLmluc3RhZ3JhbTpiZWZvcmUge1xuICAgIGNvbG9yOiAjZjNiZGFmICFpbXBvcnRhbnQ7IH1cblxuLmZvb3Rlci13aWRnZXRzIC53aWRnZXQge1xuICBtYXJnaW4tYm90dG9tOiA0MHB4OyB9XG5cbi5mb290ZXItd2lkZ2V0cyBwOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuZm9vdGVyLXdpZGdldHMtMSxcbiAgLmZvb3Rlci13aWRnZXRzLTIsXG4gIC5mb290ZXItd2lkZ2V0cy0zLFxuICAuZm9vdGVyLXdpZGdldHMtNCB7XG4gICAgd2lkdGg6IDIzLjQwNDI2JTtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tcmlnaHQ6IDIuMTI3NjYlOyB9XG4gIC5mb290ZXItd2lkZ2V0cy0yIHtcbiAgICB3aWR0aDogMTQuODkzNjIlO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbi1yaWdodDogMi4xMjc2NiU7IH1cbiAgLmZvb3Rlci13aWRnZXRzLTQge1xuICAgIHdpZHRoOiAzMS45MTQ4OSU7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiAyLjEyNzY2JTtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgbWFyZ2luLXJpZ2h0OiAwOyB9IH1cblxuLyogIyBTaXRlIEZvb3RlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLnNpdGUtZm9vdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NmNDUyMDtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBsaW5lLWhlaWdodDogMTtcbiAgcGFkZGluZzogNDBweCAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNvbG9yOiAjZmZmOyB9XG4gIC5zaXRlLWZvb3RlciBwIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIC5zaXRlLWZvb3RlciBhIHtcbiAgICBjb2xvcjogI2YzYmRhZjsgfVxuXG4vKiAjIENvbnRlbnQgQXJlYVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogIyMgRW50cmllc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uZW50cnkge1xuICBtYXJnaW4tYm90dG9tOiA0OHB4O1xuICBwYWRkaW5nOiAxOHB4IDI5cHg7IH1cbiAgLmVudHJ5IC5lbnRyeS1oZWFkZXIsXG4gIC5lbnRyeSAuZW50cnktZm9vdGVyIHtcbiAgICBwYWRkaW5nOiAwOyB9XG5cbi5jb250ZW50IC5lbnRyeSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7IH1cblxuLmVudHJ5LWNvbnRlbnQgb2wsXG4uZW50cnktY29udGVudCB1bCB7XG4gIG1hcmdpbi1ib3R0b206IDI4cHg7XG4gIG1hcmdpbi1sZWZ0OiA0MHB4OyB9XG5cbi5lbnRyeS1jb250ZW50IG9sID4gbGkge1xuICBsaXN0LXN0eWxlLXR5cGU6IGRlY2ltYWw7IH1cblxuLmVudHJ5LWNvbnRlbnQgdWwgPiBsaSB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogZGlzYzsgfVxuXG4uZW50cnktY29udGVudCBvbCBvbCxcbi5lbnRyeS1jb250ZW50IHVsIHVsIHtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4uZW50cnktY29udGVudCBjb2RlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMztcbiAgY29sb3I6ICNkZGQ7IH1cblxuLyogIyMgRW50cnkgTWV0YVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5wLmVudHJ5LW1ldGEge1xuICBmb250LXNpemU6IDE2cHg7XG4gIG1hcmdpbi1ib3R0b206IDA7IH1cblxuLmVudHJ5LWhlYWRlciAuZW50cnktbWV0YSB7XG4gIG1hcmdpbi1ib3R0b206IDI0cHg7IH1cblxuLmVudHJ5LWZvb3RlciAuZW50cnktbWV0YSB7XG4gIHBhZGRpbmctdG9wOiAyNHB4OyB9XG5cbi5lbnRyeS1jYXRlZ29yaWVzLFxuLmVudHJ5LXRhZ3Mge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4uZW50cnktY29tbWVudHMtbGluazo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXDIwMTRcIjtcbiAgbWFyZ2luOiAwIDZweCAwIDJweDsgfVxuXG4vKiAjIyBQYWdpbmF0aW9uXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5wYWdpbmF0aW9uIHtcbiAgY2xlYXI6IGJvdGg7XG4gIG1hcmdpbjogNDBweCAwOyB9XG5cbi5hZGphY2VudC1lbnRyeS1wYWdpbmF0aW9uIHtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4uYXJjaGl2ZS1wYWdpbmF0aW9uIGxpIHtcbiAgZGlzcGxheTogaW5saW5lOyB9XG5cbi5hcmNoaXZlLXBhZ2luYXRpb24gbGkgYSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzMzM7XG4gIGNvbG9yOiAjZmZmO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAxNnB4O1xuICBwYWRkaW5nOiA4cHggMTJweDsgfVxuXG4uYXJjaGl2ZS1wYWdpbmF0aW9uIGxpIGE6aG92ZXIsXG4uYXJjaGl2ZS1wYWdpbmF0aW9uIC5hY3RpdmUgYSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNTU1NGU7IH1cblxuLyogIyMgQ29tbWVudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLmNvbW1lbnQtcmVzcG9uZCxcbi5lbnRyeS1jb21tZW50cyxcbi5lbnRyeS1waW5ncyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIG1hcmdpbi1ib3R0b206IDQwcHg7IH1cblxuLmNvbW1lbnQtcmVzcG9uZCxcbi5lbnRyeS1waW5ncyB7XG4gIHBhZGRpbmc6IDQwcHggNDBweCAxNnB4OyB9XG5cbi5lbnRyeS1jb21tZW50cyB7XG4gIHBhZGRpbmc6IDQwcHg7IH1cblxuLmNvbW1lbnQtaGVhZGVyIHtcbiAgZm9udC1zaXplOiAxNnB4OyB9XG5cbmxpLmNvbW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xuICBib3JkZXI6IDJweCBzb2xpZCAjZmZmO1xuICBib3JkZXItcmlnaHQ6IG5vbmU7IH1cblxuLmNvbW1lbnQtY29udGVudCB7XG4gIGNsZWFyOiBib3RoOyB9XG5cbi5jb21tZW50LWxpc3QgbGkge1xuICBtYXJnaW4tdG9wOiAyNHB4O1xuICBwYWRkaW5nOiAzMnB4OyB9XG5cbi5jb21tZW50LWxpc3QgbGkgbGkge1xuICBtYXJnaW4tcmlnaHQ6IC0zMnB4OyB9XG5cbi5jb21tZW50LXJlc3BvbmQgaW5wdXRbdHlwZT1cImVtYWlsXCJdLFxuLmNvbW1lbnQtcmVzcG9uZCBpbnB1dFt0eXBlPVwidGV4dFwiXSxcbi5jb21tZW50LXJlc3BvbmQgaW5wdXRbdHlwZT1cInVybFwiXSB7XG4gIHdpZHRoOiA1MCU7IH1cblxuLmNvbW1lbnQtcmVzcG9uZCBsYWJlbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tcmlnaHQ6IDEycHg7IH1cblxuLmVudHJ5LWNvbW1lbnRzIC5jb21tZW50LWF1dGhvciB7XG4gIG1hcmdpbi1ib3R0b206IDA7IH1cblxuLmVudHJ5LXBpbmdzIC5yZXBseSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLmZvcm0tYWxsb3dlZC10YWdzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y1ZjVmNTtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBwYWRkaW5nOiAyNHB4OyB9XG5cbi8qICMgU2lkZWJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5zaWRlYmFyIHtcbiAgZm9udC1zaXplOiAxNnB4OyB9XG5cbi5zaWRlYmFyIGxpIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZCAjZGRkO1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICBwYWRkaW5nLWJvdHRvbTogMTBweDsgfVxuXG4uc2lkZWJhciBwOmxhc3QtY2hpbGQsXG4uc2lkZWJhciB1bCA+IGxpOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi5zaWRlYmFyIC53aWRnZXQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjhmOGY4O1xuICBtYXJnaW4tYm90dG9tOiAzMHB4O1xuICBwYWRkaW5nOiAyOXB4OyB9XG5cbi8qXG4gKiBQYWdlIEJ1aWxkZXJcbiAqIChCZWF2ZXIgYnVpbGRlcikgLSBkZWZhdWx0IHN0eWxpbmdcbiAqL1xuLmZsLWJ1aWxkZXIgLmVudHJ5IHtcbiAgcGFkZGluZzogMDsgfVxuICAuZmwtYnVpbGRlciAuZW50cnkgLmVudHJ5LWhlYWRlcixcbiAgLmZsLWJ1aWxkZXIgLmVudHJ5IC5lbnRyeS1mb290ZXIge1xuICAgIHBhZGRpbmc6IDE4cHggMjlweCAwOyB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAxMDI0cHgpIHtcbiAgLmZsLWJ1aWxkZXIgLnNpdGUtaW5uZXIge1xuICAgIHBhZGRpbmc6IDA7IH0gfVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLmZsLWJ1aWxkZXIgLnNpdGUtaW5uZXIge1xuICAgIHBhZGRpbmc6IDA7IH0gfVxuXG4uZmwtcm93LWNvbnRlbnQge1xuICBwYWRkaW5nOiAyOXB4OyB9XG5cbi5mbC1jb2wtY29udGVudCB7XG4gIG1hcmdpbjogMCAxOHB4O1xuICBwYWRkaW5nLXRvcDogMThweDtcbiAgcGFkZGluZy1ib3R0b206IDE4cHg7IH1cblxuLmZsLWNvbC1ncm91cCB7XG4gIG1hcmdpbi1sZWZ0OiAtMThweDtcbiAgbWFyZ2luLXJpZ2h0OiAtMThweDsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAuZmwtY29sLWdyb3VwIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9IH1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5mbC1jb2wtc21hbGwge1xuICAgIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9IH1cblxuLmZsLW1vZHVsZS1oZWFkaW5nIGgxLmZsLWhlYWRpbmcge1xuICBjb2xvcjogIzNCM0QzQjsgfVxuXG4uZmwtY3RhLXdyYXAgLmZsLWN0YS10aXRsZSB7XG4gIGNvbG9yOiAjM0IzRDNCICFpbXBvcnRhbnQ7IH1cblxuLmNvbnRlbnQtc2lkZWJhciAuZmwtcm93LWNvbnRlbnQsXG4uY29udGVudC1zaWRlYmFyIC5mbC1jb2wtY29udGVudCxcbi5zaWRlYmFyLWNvbnRlbnQgLmZsLXJvdy1jb250ZW50LFxuLnNpZGViYXItY29udGVudCAuZmwtY29sLWNvbnRlbnQsXG4uY29udGVudC1zaWRlYmFyLXNpZGViYXIgLmZsLXJvdy1jb250ZW50LFxuLmNvbnRlbnQtc2lkZWJhci1zaWRlYmFyIC5mbC1jb2wtY29udGVudCxcbi5zaWRlYmFyLWNvbnRlbnQtc2lkZWJhciAuZmwtcm93LWNvbnRlbnQsXG4uc2lkZWJhci1jb250ZW50LXNpZGViYXIgLmZsLWNvbC1jb250ZW50LFxuLnNpZGViYXItc2lkZWJhci1jb250ZW50IC5mbC1yb3ctY29udGVudCxcbi5zaWRlYmFyLXNpZGViYXItY29udGVudCAuZmwtY29sLWNvbnRlbnQge1xuICBwYWRkaW5nLXRvcDogMDtcbiAgcGFkZGluZy1ib3R0b206IDA7IH1cblxuLmNvbnRlbnQtc2lkZWJhciAuZmwtcm93LnBhZGRpbmcgLmZsLXJvdy1jb250ZW50LFxuLnNpZGViYXItY29udGVudCAuZmwtcm93LnBhZGRpbmcgLmZsLXJvdy1jb250ZW50LFxuLmNvbnRlbnQtc2lkZWJhci1zaWRlYmFyIC5mbC1yb3cucGFkZGluZyAuZmwtcm93LWNvbnRlbnQsXG4uc2lkZWJhci1jb250ZW50LXNpZGViYXIgLmZsLXJvdy5wYWRkaW5nIC5mbC1yb3ctY29udGVudCxcbi5zaWRlYmFyLXNpZGViYXItY29udGVudCAuZmwtcm93LnBhZGRpbmcgLmZsLXJvdy1jb250ZW50IHtcbiAgcGFkZGluZzogMjlweDsgfVxuXG4uZmwtY29sLnBhZGRpbmcgLmZsLWNvbC1jb250ZW50IHtcbiAgcGFkZGluZzogMThweDsgfVxuXG4uZWRnZS10by1lZGdlIC5mbC1yb3ctY29udGVudCxcbi5lZGdlLXRvLWVkZ2UgLmZsLWNvbC1jb250ZW50IHtcbiAgcGFkZGluZzogMDsgfVxuXG4ucGFnZS10ZW1wbGF0ZS1wYWdlX2J1aWxkZXIgLnNpdGUtaW5uZXIsXG4ucGFnZS10ZW1wbGF0ZS1wYWdlX2xhbmRpbmcgLnNpdGUtaW5uZXIge1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmctdG9wOiAwOyB9XG4gIC5wYWdlLXRlbXBsYXRlLXBhZ2VfYnVpbGRlciAuc2l0ZS1pbm5lciAud3JhcCxcbiAgLnBhZ2UtdGVtcGxhdGUtcGFnZV9sYW5kaW5nIC5zaXRlLWlubmVyIC53cmFwIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7IH1cbiAgLnBhZ2UtdGVtcGxhdGUtcGFnZV9idWlsZGVyIC5zaXRlLWlubmVyIC5lbnRyeSxcbiAgLnBhZ2UtdGVtcGxhdGUtcGFnZV9sYW5kaW5nIC5zaXRlLWlubmVyIC5lbnRyeSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLmZsLWNvbC5iZy1saWdodCB7XG4gICAgcGFkZGluZzogMTFweCAxOHB4ICFpbXBvcnRhbnQ7IH1cbiAgICAuZmwtY29sLmJnLWxpZ2h0IC5mbC1tb2R1bGUtY29udGVudCB7XG4gICAgICBtYXJnaW4tdG9wOiAtMTFweDtcbiAgICAgIG1hcmdpbi1ib3R0b206IC0xOHB4OyB9IH1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5wbGF5LWdyaWQgLmZsLWNvbCB7XG4gICAgd2lkdGg6IDQ2LjY2NjY3JTtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tYm90dG9tOiAxMXB4OyB9XG4gICAgLnBsYXktZ3JpZCAuZmwtY29sOm50aC1jaGlsZCgybiArIDEpIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAtMTAwJTtcbiAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgICAucGxheS1ncmlkIC5mbC1jb2w6bnRoLWNoaWxkKDJuICsgMikge1xuICAgICAgbWFyZ2luLWxlZnQ6IDUzLjMzMzMzJTtcbiAgICAgIG1hcmdpbi1yaWdodDogLTEwMCU7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC5wbGF5LWdyaWQgLmZsLWNvbCAuZmwtY29sLWNvbnRlbnQge1xuICAgICAgcGFkZGluZy10b3A6IDAgIWltcG9ydGFudDsgfVxuICAucGxheS1ncmlkIC5mbC1jb2wtc21hbGwge1xuICAgIHdpZHRoOiA0Ni42NjY2NyUgIWltcG9ydGFudDsgfSB9XG5cbi8qKlxuICogSWNvbiBGb250c1xuICovXG4ucGhvbmUtbnVtYmVyIHtcbiAgbWFyZ2luLWJvdHRvbTogMTFweDsgfVxuICAucGhvbmUtbnVtYmVyOmJlZm9yZSB7XG4gICAgY29udGVudDogXCLuoZRcIjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5ICFpbXBvcnRhbnQ7XG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQgIWltcG9ydGFudDtcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlICFpbXBvcnRhbnQ7XG4gICAgc3BlYWs6IG5vbmU7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LWZhbWlseTogXCJlbnR5cG9cIjtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgZm9udC1zaXplOiAxLjNlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxcHg7XG4gICAgbWFyZ2luLWxlZnQ6IDJweDsgfVxuXG4ubW9iaWxlLW51bWJlciB7XG4gIG1hcmdpbi1ib3R0b206IDExcHg7IH1cbiAgLm1vYmlsZS1udW1iZXI6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIu6irFwiO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHkgIWltcG9ydGFudDtcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZCAhaW1wb3J0YW50O1xuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGUgIWltcG9ydGFudDtcbiAgICBzcGVhazogbm9uZTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtZmFtaWx5OiBcImVudHlwb1wiO1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBmb250LXNpemU6IDEuM2VtO1xuICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxcHg7XG4gICAgbWFyZ2luLWxlZnQ6IDNweDsgfVxuXG4uYWRkcmVzcy1mdWxsIHtcbiAgbWFyZ2luLWJvdHRvbTogMTFweDsgfVxuICAuYWRkcmVzcy1mdWxsOmJlZm9yZSB7XG4gICAgY29udGVudDogXCLuoYFcIjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5ICFpbXBvcnRhbnQ7XG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQgIWltcG9ydGFudDtcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlICFpbXBvcnRhbnQ7XG4gICAgc3BlYWs6IG5vbmU7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LWZhbWlseTogXCJlbnR5cG9cIjtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgZm9udC1zaXplOiAxLjNlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAwO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC5hZGRyZXNzLWZ1bGwgLnN0cmVldC1hZGRyZXNzLXdyYXAsXG4gIC5hZGRyZXNzLWZ1bGwgLmNpdHktcG9zdGNvZGUge1xuICAgIHBhZGRpbmctbGVmdDogMjVweDsgfVxuXG4uc29jaWFsLW5ldHdvcmstbGluayB7XG4gIG1hcmdpbi1ib3R0b206IDExcHg7IH1cbiAgLnNvY2lhbC1uZXR3b3JrLWxpbmsuZmFjZWJvb2s6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIu6jtVwiO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHkgIWltcG9ydGFudDtcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZCAhaW1wb3J0YW50O1xuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGUgIWltcG9ydGFudDtcbiAgICBzcGVhazogbm9uZTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtZmFtaWx5OiBcImVudHlwb1wiO1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBmb250LXNpemU6IDEuM2VtO1xuICAgIG1hcmdpbi1yaWdodDogN3B4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDFweDtcbiAgICBjb2xvcjogIzNiNTk5ODsgfVxuXG4uY29udGFjdC11cy1wYWdlLWNvbnRlbnQge1xuICBtYXJnaW4tdG9wOiAxOHB4OyB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuY29udGVudCAucm9vbS1jb250YWluZXIge1xuICAgIHdpZHRoOiAzMS45MTQ4OSU7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgcGFkZGluZy10b3A6IDE4cHg7IH1cbiAgICAuY29udGVudCAucm9vbS1jb250YWluZXI6bnRoLWNoaWxkKDNuICsgMSkge1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICBtYXJnaW4tcmlnaHQ6IC0xMDAlO1xuICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICBtYXJnaW4tbGVmdDogMDsgfVxuICAgIC5jb250ZW50IC5yb29tLWNvbnRhaW5lcjpudGgtY2hpbGQoM24gKyAyKSB7XG4gICAgICBtYXJnaW4tbGVmdDogMzQuMDQyNTUlO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAtMTAwJTtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLmNvbnRlbnQgLnJvb20tY29udGFpbmVyOm50aC1jaGlsZCgzbiArIDMpIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiA2OC4wODUxMSU7XG4gICAgICBtYXJnaW4tcmlnaHQ6IC0xMDAlO1xuICAgICAgY2xlYXI6IG5vbmU7IH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmNvbnRlbnQgLmxpc3QgLnJvb20tY29udGFpbmVyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7IH0gfVxuXG4uY29udGVudCAubGlzdCAucm9vbS1jb250YWluZXIgaDQsXG4uc2lkZWJhciAucm9vbS1jb250YWluZXIgaDQge1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi5jb250ZW50IC5saXN0IC5yb29tLWNvbnRhaW5lciAucm9vbS1yYXRlcyxcbi5zaWRlYmFyIC5yb29tLWNvbnRhaW5lciAucm9vbS1yYXRlcyB7XG4gIG1hcmdpbi1ib3R0b206IDE4cHg7IH1cblxuLmFjY2VudHMtdG9nZ2xlLWNvbnRyb2wge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmc6IDE4cHggMThweDtcbiAgbWFyZ2luLXRvcDogLTEwcHg7XG4gIGJhY2tncm91bmQ6ICNGOEY4Rjg7IH1cbiAgLmFjY2VudHMtdG9nZ2xlLWNvbnRyb2wgaDMge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cblxuLmFjY2VudHMtdG9nZ2xlLWJveCB7XG4gIGJhY2tncm91bmQ6ICNGOEY4Rjg7XG4gIHBhZGRpbmc6IDE4cHggMThweDsgfVxuICAuYWNjZW50cy10b2dnbGUtYm94IC5idXR0b24ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNjZjQ1MjA7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgcGFkZGluZzogMTBweCAyMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDVweDsgfVxuXG4jVEJfd2luZG93IHtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi10b3A6IDBweCAhaW1wb3J0YW50O1xuICBtYXJnaW4tbGVmdDogMHB4ICFpbXBvcnRhbnQ7XG4gIHRvcDogMTUlICFpbXBvcnRhbnQ7XG4gIHJpZ2h0OiAxMCUgIWltcG9ydGFudDtcbiAgYm90dG9tOiAxNSUgIWltcG9ydGFudDtcbiAgbGVmdDogMTAlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiA4MCUgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiA1MCUgIWltcG9ydGFudDsgfVxuXG4jVEJfYWpheENvbnRlbnQge1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDEwMCUgIWltcG9ydGFudDsgfVxuXG4jVEJfSW1hZ2Uge1xuICB3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICBtYXgtaGVpZ2h0OiAxMDAlO1xuICBtYXJnaW46IGF1dG8gIWltcG9ydGFudDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDBweDtcbiAgYm90dG9tOiAwcHg7XG4gIGxlZnQ6IDBweDtcbiAgcmlnaHQ6IDBweDtcbiAgcGFkZGluZzogMjBweDtcbiAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gICNUQl93aW5kb3cge1xuICAgIHRvcDogMTAlICFpbXBvcnRhbnQ7XG4gICAgYm90dG9tOiAxMCUgIWltcG9ydGFudDtcbiAgICBoZWlnaHQ6IDgwJSAhaW1wb3J0YW50OyB9IH1cblxuLmZhY2lsaXRpZXMtaWNvbiBoMywgLmZhY2lsaXRpZXMtaWNvbiBoNCB7XG4gIGNvbG9yOiAjNjE2NDYxOyB9XG5cbi5mYWNpbGl0aWVzLWljb24gLmZsLWNhbGxvdXQtdGV4dCB7XG4gIG1hcmdpbi10b3A6IC0xMHB4O1xuICBjb2xvcjogIzZkNzE2ZDtcbiAgZm9udC1zaXplOiAxNi4ycHg7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYzsgfVxuXG4vKlxuICogQW55IGdlbmVyYWwgc2l0ZSBDdXN0b20gU0FTUyBzdGFydHMgaGVyZS4uLlxuICogVHJ5IGFuZCBrZWVwIFNBU1Mgb3JnYW5pc2VkIGluIHBhcnRpYWxzIGFuZCBpbXBvcnRlZCBhYm92ZSBmb3IgY2xhcml0eVxuICovXG4iLCIvKlxuXHRUaGVtZSBOYW1lOiBUb3JsZXNzZVxuXHRUaGVtZSBVUkk6IGh0dHA6Ly93d3cuYXZvY2FkZXNpZ24uY28ubnpcblx0RGVzY3JpcHRpb246IEEgbW9iaWxlIHJlc3BvbnNpdmUgYW5kIEhUTUw1IHRoZW1lIGJ1aWx0IGZvciB0aGUgR2VuZXNpcyBGcmFtZXdvcmsuXG5cdEF1dGhvcjogQXZvY2EgRGVzaWduXG5cdEF1dGhvciBVUkk6IGh0dHA6Ly93d3cuYXZvY2FkZXNpZ24uY28ubnpcblxuXHRWZXJzaW9uOiAxLjBcblxuXHRUYWdzOiBibGFjaywgd2hpdGUsIG9uZS1jb2x1bW4sIHR3by1jb2x1bW5zLCBmaXhlZC13aWR0aCwgY3VzdG9tLW1lbnUsIGZ1bGwtd2lkdGgtdGVtcGxhdGUsIHN0aWNreS1wb3N0LCB0aGVtZS1vcHRpb25zLCB0aHJlYWRlZC1jb21tZW50cywgdHJhbnNsYXRpb24tcmVhZHlcblxuXHRUZW1wbGF0ZTogZ2VuZXNpc1xuXHRUZW1wbGF0ZSBWZXJzaW9uOiAxLjBcblxuXHRMaWNlbnNlOiBHUEwtMi4wK1xuXHRMaWNlbnNlIFVSSTogaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9ncGwtbGljZW5zZS5waHBcbiovXG5cbi8vSW1wb3J0IEJvd2VyIENvbXBvbmVudHNcbkBpbXBvcnQgXCJzdXN5L3Nhc3Mvc3VzeVwiO1xuQGltcG9ydCBcImNvbXBhc3MtYnJlYWtwb2ludC9zdHlsZXNoZWV0cy9icmVha3BvaW50XCI7XG5AaW1wb3J0IFwibW9kdWxhci1zY2FsZS9zdHlsZXNoZWV0cy9tb2R1bGFyLXNjYWxlXCI7XG5cbi8vIFNldHRpbmdzXG5AaW1wb3J0IFwic2V0dGluZ3MvbG9hZFwiO1xuQGltcG9ydCBcInV0aWxpdGllcy9sb2FkXCI7XG5cbi8vIFN0eWxlIGFuZCBTdHJ1Y3R1cmVcbkBpbXBvcnQgXCJjb2xvdXJzXCI7XG5AaW1wb3J0IFwidHlwb2dyYXBoeVwiO1xuQGltcG9ydCBcInJlc3BvbnNpdmUtbWVudVwiO1xuQGltcG9ydCBcImxheW91dFwiO1xuQGltcG9ydCBcImNvbnRlbnQtbGliL2xvYWRcIjtcblxuLy8gVGhlbWUgU2VjdGlvbnNcbkBpbXBvcnQgXCJob21lcGFnZVwiO1xuQGltcG9ydCBcIndpZGdldHNcIjtcbkBpbXBvcnQgXCJwbHVnaW5zL2xvYWRcIjtcbkBpbXBvcnQgXCJoZWFkZXJcIjtcbkBpbXBvcnQgXCJuYXZpZ2F0aW9uXCI7XG5AaW1wb3J0IFwiZm9vdGVyXCI7XG5AaW1wb3J0IFwiY29udGVudFwiO1xuQGltcG9ydCBcInNpZGViYXJzXCI7XG5AaW1wb3J0IFwicGFnZS1idWlsZGVyXCI7XG5AaW1wb3J0IFwiaWNvbi1mb250c1wiO1xuQGltcG9ydCBcInJvb21zXCI7XG5cbi8qXG4gKiBBbnkgZ2VuZXJhbCBzaXRlIEN1c3RvbSBTQVNTIHN0YXJ0cyBoZXJlLi4uXG4gKiBUcnkgYW5kIGtlZXAgU0FTUyBvcmdhbmlzZWQgaW4gcGFydGlhbHMgYW5kIGltcG9ydGVkIGFib3ZlIGZvciBjbGFyaXR5XG4gKi9cbiIsIi8vIFNldHVwIEdyaWQgZm9yIFNVU1lcbiRzdXN5OiAoXG4gIC8vIHRoZSBiYXNpY3NcbiAgY29sdW1uczogMTIsXG4gIGd1dHRlcnM6IDEuNjE4ZW0gLyA0Ljg1NGVtLFxuICBjb2x1bW4td2lkdGg6IDQuODU0ZW0sXG4pO1xuXG4vLyBTZXR1cCBDb250YWluZXIgZm9yIFNVU1lcbi5zaXRlLWlubmVyIC53cmFwIHtcblx0QGluY2x1ZGUgY29udGFpbmVyO1xuXHRwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG59XG5cbi8qXG4gKiBNb2R1bGFyIFNjYWxlIFNldHRpbmdzXG4gKlxuICogaHR0cDovL3d3dy5tb2R1bGFyc2NhbGUuY29tIGJ5IFRpbSBCcm93blxuICogaHR0cHM6Ly9naXRodWIuY29tL1RlYW0tU2Fzcy9tb2R1bGFyLXNjYWxlXG4gKiB2ZXJzaW9uIDIgc3ludGF4XG4gKi9cbiRtcy1yYXRpbzogJGdvbGRlbjtcdFx0XHRcdFx0XHQvLyBSYXRpbyBmb3IgTW9kdWxhciBTY2FsZVxuJGJhc2UtZm9udC1zaXplOiAxOHB4O1xuJGltcG9ydGFudE51bTogNzhweDtcbiRtcy1iYXNlOiAkYmFzZS1mb250LXNpemUgJGltcG9ydGFudE51bTtcblxuLy8gVG9ybGVzc2UgRGVmYXVsdCBTY2FsZSBWYWx1ZXM6IDE2LCAxOCwgMjYsIDMwLCA0MiwgNDgsIDY4LCA3OCwgMTEwLCAxMjY7XG5cblx0Lypcblx0ICogU2l6aW5nXG5cdCAqL1xuXHQkeHNtYWxsOiBtcygtMik7XG5cdCRzbWFsbDogbXMoLTEpO1xuXHQkbm9ybTogbXMoMCk7XHRcdFx0XHRcdFx0XHRcdFx0Ly8gJGJhc2UtZm9udC1zaXplICgxNnB4ID09IGRlZmF1bHQpXG5cdCRtZWQ6IG1zKDEpO1xuXHQkbGFyZ2U6IG1zKDIpO1xuXHQkbGFyZ2VyOiBtcygzKTtcblx0JHhsYXJnZTogbXMoNCk7XG5cdCR4eGxhcmdlOiBtcyg1KTtcblx0JHh4eGxhcmdlOiBtcyg2KTtcblx0JHJlYWxseWJpZzogbXMoOCk7XG5cdCR0cmVtZW5kb3VzOiBtcyg5KTtcblx0JGFic3VyZDogbXMoMTApO1xuIiwiLy8gcmVtIFN1cHBvcnRcbi8vID09PT09PT09PT09XG5cbi8vIHJlbVxuLy8gLS0tXG4vLyBDaGVjayBmb3IgYW4gZXhpc3Rpbmcgc3VwcG9ydCBtaXhpbiwgb3Igb3V0cHV0IGRpcmVjdGx5LlxuLy8gLSAkcHJvcCAgOiA8Y3NzIHByb3BlcnR5PlxuLy8gLSAkdmFsICAgOiA8Y3NzIHZhbHVlPlxuQG1peGluIHN1c3ktcmVtKFxuICAkcHJvcCxcbiAgJHZhbFxuKSB7XG4gICRfcmVxczogKFxuICAgIHZhcmlhYmxlOiByaHl0aG0tdW5pdCByZW0td2l0aC1weC1mYWxsYmFjayxcbiAgICBtaXhpbjogcmVtLFxuICApO1xuICBAaWYgc3VzeS1zdXBwb3J0KHJlbSwgJF9yZXFzLCAkd2FybjogZmFsc2UpIGFuZCAkcmh5dGhtLXVuaXQgPT0gcmVtIHtcbiAgICBAaW5jbHVkZSByZW0oJHByb3AsICR2YWwpO1xuICB9IEBlbHNlIHtcbiAgICAjeyRwcm9wfTogJHZhbDtcbiAgfVxufVxuIiwiLy8gQ29udGFpbmVyIFN5bnRheFxuLy8gPT09PT09PT09PT09PT09PVxuXG4vLyBDb250YWluZXIgW21peGluXVxuLy8gLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFNldCBhIGNvbnRhaW5lciBlbGVtZW50XG4vLyAtIFskbGF5b3V0XSAgOiA8c2V0dGluZ3M+XG5AbWl4aW4gY29udGFpbmVyKFxuICAkbGF5b3V0OiAkc3VzeVxuKSB7XG4gICRpbnNwZWN0ICAgIDogJGxheW91dDtcbiAgJGxheW91dCAgICAgOiBwYXJzZS1ncmlkKCRsYXlvdXQpO1xuXG4gICRfd2lkdGggICAgIDogZ2V0LWNvbnRhaW5lci13aWR0aCgkbGF5b3V0KTtcbiAgJF9qdXN0aWZ5ICAgOiBwYXJzZS1jb250YWluZXItcG9zaXRpb24oc3VzeS1nZXQoY29udGFpbmVyLXBvc2l0aW9uLCAkbGF5b3V0KSk7XG4gICRfcHJvcGVydHkgIDogaWYoc3VzeS1nZXQobWF0aCwgJGxheW91dCkgPT0gc3RhdGljLCB3aWR0aCwgbWF4LXdpZHRoKTtcblxuICAkX2JveCAgICAgICA6IHN1c3ktZ2V0KGJveC1zaXppbmcsICRsYXlvdXQpO1xuXG4gIEBpZiAkX2JveCB7XG4gICAgQGluY2x1ZGUgb3V0cHV0KChib3gtc2l6aW5nOiAkX2JveCkpO1xuICB9XG5cbiAgQGluY2x1ZGUgc3VzeS1pbnNwZWN0KGNvbnRhaW5lciwgJGluc3BlY3QpO1xuICBAaW5jbHVkZSBmbG9hdC1jb250YWluZXIoJF93aWR0aCwgJF9qdXN0aWZ5LCAkX3Byb3BlcnR5KTtcbiAgQGluY2x1ZGUgc2hvdy1ncmlkKCRsYXlvdXQpO1xufVxuXG4vLyBDb250YWluZXIgW2Z1bmN0aW9uXVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFJldHVybiBjb250YWluZXIgd2lkdGhcbi8vIC0gWyRsYXlvdXRdICA6IDxzZXR0aW5ncz5cbkBmdW5jdGlvbiBjb250YWluZXIoXG4gICRsYXlvdXQ6ICRzdXN5XG4pIHtcbiAgJGxheW91dDogcGFyc2UtZ3JpZCgkbGF5b3V0KTtcbiAgQHJldHVybiBnZXQtY29udGFpbmVyLXdpZHRoKCRsYXlvdXQpO1xufVxuXG4vLyBHZXQgQ29udGFpbmVyIFdpZHRoXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBDYWxjdWxhdGUgdGhlIGNvbnRhaW5lciB3aWR0aFxuLy8gLSBbJGxheW91dF06IDxzZXR0aW5ncz5cbkBmdW5jdGlvbiBnZXQtY29udGFpbmVyLXdpZHRoKFxuICAkbGF5b3V0OiAkc3VzeVxuKSB7XG4gICRsYXlvdXQgICAgICAgICA6IHBhcnNlLWdyaWQoJGxheW91dCk7XG4gICRfd2lkdGggICAgICAgICA6IHN1c3ktZ2V0KGNvbnRhaW5lciwgJGxheW91dCk7XG4gICRfY29sdW1uLXdpZHRoICA6IHN1c3ktZ2V0KGNvbHVtbi13aWR0aCwgJGxheW91dCk7XG4gICRfbWF0aCAgICAgICAgICA6IHN1c3ktZ2V0KG1hdGgsICRsYXlvdXQpO1xuXG4gIEBpZiBub3QoJF93aWR0aCkgb3IgJF93aWR0aCA9PSBhdXRvIHtcbiAgICBAaWYgdmFsaWQtY29sdW1uLW1hdGgoJF9tYXRoLCAkX2NvbHVtbi13aWR0aCkge1xuICAgICAgJF9jb2x1bW5zICAgOiBzdXN5LWdldChjb2x1bW5zLCAkbGF5b3V0KTtcbiAgICAgICRfZ3V0dGVycyAgIDogc3VzeS1nZXQoZ3V0dGVycywgJGxheW91dCk7XG4gICAgICAkX3NwcmVhZCAgICA6IGlmKGlzLXNwbGl0KCRsYXlvdXQpLCB3aWRlLCBuYXJyb3cpO1xuICAgICAgJF93aWR0aCAgICAgOiBzdXN5LXN1bSgkX2NvbHVtbnMsICRfZ3V0dGVycywgJF9zcHJlYWQpICogJF9jb2x1bW4td2lkdGg7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkX3dpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJF93aWR0aDtcbn1cblxuLy8gUGFyc2UgQ29udGFpbmVyIFBvc2l0aW9uXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFBhcnNlIHRoZSAkY29udGFpbmVyLXBvc2l0aW9uIGludG8gbWFyZ2luIHZhbHVlcy5cbi8vIC0gWyRqdXN0aWZ5XSAgIDogbGVmdCB8IGNlbnRlciB8IHJpZ2h0IHwgPGxlbmd0aD4gWzxsZW5ndGg+XVxuQGZ1bmN0aW9uIHBhcnNlLWNvbnRhaW5lci1wb3NpdGlvbihcbiAgJGp1c3RpZnk6IG1hcC1nZXQoJHN1c3ktZGVmYXVsdHMsIGNvbnRhaW5lci1wb3NpdGlvbilcbikge1xuICAkX3JldHVybjogaWYoJGp1c3RpZnkgPT0gbGVmdCwgMCwgYXV0bykgaWYoJGp1c3RpZnkgPT0gcmlnaHQsIDAsIGF1dG8pO1xuXG4gIEBpZiBub3QoaW5kZXgobGVmdCByaWdodCBjZW50ZXIsICRqdXN0aWZ5KSkge1xuICAgICRfcmV0dXJuOiBudGgoJGp1c3RpZnksIDEpO1xuICAgICRfcmV0dXJuOiAkX3JldHVybiBpZihsZW5ndGgoJGp1c3RpZnkpID4gMSwgbnRoKCRqdXN0aWZ5LCAyKSwgJF9yZXR1cm4pO1xuICB9XG5cbiAgQHJldHVybiAkX3JldHVybjtcbn1cbiIsIi8vIFN1c3kgRmFsbGJhY2sgQ2xlYXJmaXhcbi8vID09PT09PT09PT09PT09PT09PT09PT1cblxuXG4vLyBDbGVhcmZpeFxuLy8gLS0tLS0tLS1cbi8vIENoZWNrIGZvciBhbiBleGlzdGluZyBzdXBwb3J0IG1peGluLCBvciBwcm92aWRlIGEgc2ltcGxlIGZhbGxiYWNrLlxuQG1peGluIHN1c3ktY2xlYXJmaXgge1xuICBAaWYgc3VzeS1zdXBwb3J0KGNsZWFyZml4LCAobWl4aW46IGNsZWFyZml4KSkge1xuICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICB9IEBlbHNlIHtcbiAgICAmOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiIFwiO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBjbGVhcjogYm90aDtcbiAgICB9XG4gIH1cbn1cbiIsIi8qISBub3JtYWxpemUuY3NzIHYzLjAuMiB8IE1JVCBMaWNlbnNlIHwgZ2l0LmlvL25vcm1hbGl6ZSAqL1xuXG4vKipcbiAqIDEuIFNldCBkZWZhdWx0IGZvbnQgZmFtaWx5IHRvIHNhbnMtc2VyaWYuXG4gKiAyLiBQcmV2ZW50IGlPUyB0ZXh0IHNpemUgYWRqdXN0IGFmdGVyIG9yaWVudGF0aW9uIGNoYW5nZSwgd2l0aG91dCBkaXNhYmxpbmdcbiAqICAgIHVzZXIgem9vbS5cbiAqL1xuXG5odG1sIHtcbiAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7IC8qIDEgKi9cbiAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIGRlZmF1bHQgbWFyZ2luLlxuICovXG5cbmJvZHkge1xuICBtYXJnaW46IDA7XG59XG5cbi8qIEhUTUw1IGRpc3BsYXkgZGVmaW5pdGlvbnNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGFueSBIVE1MNSBlbGVtZW50IGluIElFIDgvOS5cbiAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBgZGV0YWlsc2Agb3IgYHN1bW1hcnlgIGluIElFIDEwLzExXG4gKiBhbmQgRmlyZWZveC5cbiAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBgbWFpbmAgaW4gSUUgMTEuXG4gKi9cblxuYXJ0aWNsZSxcbmFzaWRlLFxuZGV0YWlscyxcbmZpZ2NhcHRpb24sXG5maWd1cmUsXG5mb290ZXIsXG5oZWFkZXIsXG5oZ3JvdXAsXG5tYWluLFxubWVudSxcbm5hdixcbnNlY3Rpb24sXG5zdW1tYXJ5IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCBgaW5saW5lLWJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGluIElFIDgvOS5cbiAqIDIuIE5vcm1hbGl6ZSB2ZXJ0aWNhbCBhbGlnbm1lbnQgb2YgYHByb2dyZXNzYCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbiAqL1xuXG5hdWRpbyxcbmNhbnZhcyxcbnByb2dyZXNzLFxudmlkZW8ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IC8qIDEgKi9cbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyAvKiAyICovXG59XG5cbi8qKlxuICogUHJldmVudCBtb2Rlcm4gYnJvd3NlcnMgZnJvbSBkaXNwbGF5aW5nIGBhdWRpb2Agd2l0aG91dCBjb250cm9scy5cbiAqIFJlbW92ZSBleGNlc3MgaGVpZ2h0IGluIGlPUyA1IGRldmljZXMuXG4gKi9cblxuYXVkaW86bm90KFtjb250cm9sc10pIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgaGVpZ2h0OiAwO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgYFtoaWRkZW5dYCBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS8xMC5cbiAqIEhpZGUgdGhlIGB0ZW1wbGF0ZWAgZWxlbWVudCBpbiBJRSA4LzkvMTEsIFNhZmFyaSwgYW5kIEZpcmVmb3ggPCAyMi5cbiAqL1xuXG5baGlkZGVuXSxcbnRlbXBsYXRlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLyogTGlua3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgY29sb3IgZnJvbSBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG4gKi9cblxuYSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4vKipcbiAqIEltcHJvdmUgcmVhZGFiaWxpdHkgd2hlbiBmb2N1c2VkIGFuZCBhbHNvIG1vdXNlIGhvdmVyZWQgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbmE6YWN0aXZlLFxuYTpob3ZlciB7XG4gIG91dGxpbmU6IDA7XG59XG5cbi8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkvMTAvMTEsIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuXG5hYmJyW3RpdGxlXSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQ7XG59XG5cbi8qKlxuICogQWRkcmVzcyBzdHlsZSBzZXQgdG8gYGJvbGRlcmAgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICovXG5cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gU2FmYXJpIGFuZCBDaHJvbWUuXG4gKi9cblxuZGZuIHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgdmFyaWFibGUgYGgxYCBmb250LXNpemUgYW5kIG1hcmdpbiB3aXRoaW4gYHNlY3Rpb25gIGFuZCBgYXJ0aWNsZWBcbiAqIGNvbnRleHRzIGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuXG5oMSB7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBtYXJnaW46IDAuNjdlbSAwO1xufVxuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkuXG4gKi9cblxubWFyayB7XG4gIGJhY2tncm91bmQ6ICNmZjA7XG4gIGNvbG9yOiAjMDAwO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgaW5jb25zaXN0ZW50IGFuZCB2YXJpYWJsZSBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7XG59XG5cbi8qKlxuICogUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgYWZmZWN0aW5nIGBsaW5lLWhlaWdodGAgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnN1YixcbnN1cCB7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbnN1cCB7XG4gIHRvcDogLTAuNWVtO1xufVxuXG5zdWIge1xuICBib3R0b206IC0wLjI1ZW07XG59XG5cbi8qIEVtYmVkZGVkIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIGJvcmRlciB3aGVuIGluc2lkZSBgYWAgZWxlbWVudCBpbiBJRSA4LzkvMTAuXG4gKi9cblxuaW1nIHtcbiAgYm9yZGVyOiAwO1xufVxuXG4vKipcbiAqIENvcnJlY3Qgb3ZlcmZsb3cgbm90IGhpZGRlbiBpbiBJRSA5LzEwLzExLlxuICovXG5cbnN2Zzpub3QoOnJvb3QpIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLyogR3JvdXBpbmcgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBBZGRyZXNzIG1hcmdpbiBub3QgcHJlc2VudCBpbiBJRSA4LzkgYW5kIFNhZmFyaS5cbiAqL1xuXG5maWd1cmUge1xuICBtYXJnaW46IDFlbSA0MHB4O1xufVxuXG4vKipcbiAqIEFkZHJlc3MgZGlmZmVyZW5jZXMgYmV0d2VlbiBGaXJlZm94IGFuZCBvdGhlciBicm93c2Vycy5cbiAqL1xuXG5ociB7XG4gIC1tb3otYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICBoZWlnaHQ6IDA7XG59XG5cbi8qKlxuICogQ29udGFpbiBvdmVyZmxvdyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxucHJlIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi8qKlxuICogQWRkcmVzcyBvZGQgYGVtYC11bml0IGZvbnQgc2l6ZSByZW5kZXJpbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbmNvZGUsXG5rYmQsXG5wcmUsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICBmb250LXNpemU6IDFlbTtcbn1cblxuLyogRm9ybXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogS25vd24gbGltaXRhdGlvbjogYnkgZGVmYXVsdCwgQ2hyb21lIGFuZCBTYWZhcmkgb24gT1MgWCBhbGxvdyB2ZXJ5IGxpbWl0ZWRcbiAqIHN0eWxpbmcgb2YgYHNlbGVjdGAsIHVubGVzcyBhIGBib3JkZXJgIHByb3BlcnR5IGlzIHNldC5cbiAqL1xuXG4vKipcbiAqIDEuIENvcnJlY3QgY29sb3Igbm90IGJlaW5nIGluaGVyaXRlZC5cbiAqICAgIEtub3duIGlzc3VlOiBhZmZlY3RzIGNvbG9yIG9mIGRpc2FibGVkIGVsZW1lbnRzLlxuICogMi4gQ29ycmVjdCBmb250IHByb3BlcnRpZXMgbm90IGJlaW5nIGluaGVyaXRlZC5cbiAqIDMuIEFkZHJlc3MgbWFyZ2lucyBzZXQgZGlmZmVyZW50bHkgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICovXG5cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGNvbG9yOiBpbmhlcml0OyAvKiAxICovXG4gIGZvbnQ6IGluaGVyaXQ7IC8qIDIgKi9cbiAgbWFyZ2luOiAwOyAvKiAzICovXG59XG5cbi8qKlxuICogQWRkcmVzcyBgb3ZlcmZsb3dgIHNldCB0byBgaGlkZGVuYCBpbiBJRSA4LzkvMTAvMTEuXG4gKi9cblxuYnV0dG9uIHtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbi8qKlxuICogQWRkcmVzcyBpbmNvbnNpc3RlbnQgYHRleHQtdHJhbnNmb3JtYCBpbmhlcml0YW5jZSBmb3IgYGJ1dHRvbmAgYW5kIGBzZWxlY3RgLlxuICogQWxsIG90aGVyIGZvcm0gY29udHJvbCBlbGVtZW50cyBkbyBub3QgaW5oZXJpdCBgdGV4dC10cmFuc2Zvcm1gIHZhbHVlcy5cbiAqIENvcnJlY3QgYGJ1dHRvbmAgc3R5bGUgaW5oZXJpdGFuY2UgaW4gRmlyZWZveCwgSUUgOC85LzEwLzExLCBhbmQgT3BlcmEuXG4gKiBDb3JyZWN0IGBzZWxlY3RgIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3guXG4gKi9cblxuYnV0dG9uLFxuc2VsZWN0IHtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8qKlxuICogMS4gQXZvaWQgdGhlIFdlYktpdCBidWcgaW4gQW5kcm9pZCA0LjAuKiB3aGVyZSAoMikgZGVzdHJveXMgbmF0aXZlIGBhdWRpb2BcbiAqICAgIGFuZCBgdmlkZW9gIGNvbnRyb2xzLlxuICogMi4gQ29ycmVjdCBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIGBpbnB1dGAgdHlwZXMgaW4gaU9TLlxuICogMy4gSW1wcm92ZSB1c2FiaWxpdHkgYW5kIGNvbnNpc3RlbmN5IG9mIGN1cnNvciBzdHlsZSBiZXR3ZWVuIGltYWdlLXR5cGVcbiAqICAgIGBpbnB1dGAgYW5kIG90aGVycy5cbiAqL1xuXG5idXR0b24sXG5odG1sIGlucHV0W3R5cGU9XCJidXR0b25cIl0sIC8qIDEgKi9cbmlucHV0W3R5cGU9XCJyZXNldFwiXSxcbmlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLyogMiAqL1xuICBjdXJzb3I6IHBvaW50ZXI7IC8qIDMgKi9cbn1cblxuLyoqXG4gKiBSZS1zZXQgZGVmYXVsdCBjdXJzb3IgZm9yIGRpc2FibGVkIGVsZW1lbnRzLlxuICovXG5cbmJ1dHRvbltkaXNhYmxlZF0sXG5odG1sIGlucHV0W2Rpc2FibGVkXSB7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLyoqXG4gKiBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgYm9yZGVyIGluIEZpcmVmb3ggNCsuXG4gKi9cblxuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuaW5wdXQ6Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXI6IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi8qKlxuICogQWRkcmVzcyBGaXJlZm94IDQrIHNldHRpbmcgYGxpbmUtaGVpZ2h0YCBvbiBgaW5wdXRgIHVzaW5nIGAhaW1wb3J0YW50YCBpblxuICogdGhlIFVBIHN0eWxlc2hlZXQuXG4gKi9cblxuaW5wdXQge1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xufVxuXG4vKipcbiAqIEl0J3MgcmVjb21tZW5kZWQgdGhhdCB5b3UgZG9uJ3QgYXR0ZW1wdCB0byBzdHlsZSB0aGVzZSBlbGVtZW50cy5cbiAqIEZpcmVmb3gncyBpbXBsZW1lbnRhdGlvbiBkb2Vzbid0IHJlc3BlY3QgYm94LXNpemluZywgcGFkZGluZywgb3Igd2lkdGguXG4gKlxuICogMS4gQWRkcmVzcyBib3ggc2l6aW5nIHNldCB0byBgY29udGVudC1ib3hgIGluIElFIDgvOS8xMC5cbiAqIDIuIFJlbW92ZSBleGNlc3MgcGFkZGluZyBpbiBJRSA4LzkvMTAuXG4gKi9cblxuaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLFxuaW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xuICBwYWRkaW5nOiAwOyAvKiAyICovXG59XG5cbi8qKlxuICogRml4IHRoZSBjdXJzb3Igc3R5bGUgZm9yIENocm9tZSdzIGluY3JlbWVudC9kZWNyZW1lbnQgYnV0dG9ucy4gRm9yIGNlcnRhaW5cbiAqIGBmb250LXNpemVgIHZhbHVlcyBvZiB0aGUgYGlucHV0YCwgaXQgY2F1c2VzIHRoZSBjdXJzb3Igc3R5bGUgb2YgdGhlXG4gKiBkZWNyZW1lbnQgYnV0dG9uIHRvIGNoYW5nZSBmcm9tIGBkZWZhdWx0YCB0byBgdGV4dGAuXG4gKi9cblxuaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbi8qKlxuICogMS4gQWRkcmVzcyBgYXBwZWFyYW5jZWAgc2V0IHRvIGBzZWFyY2hmaWVsZGAgaW4gU2FmYXJpIGFuZCBDaHJvbWUuXG4gKiAyLiBBZGRyZXNzIGBib3gtc2l6aW5nYCBzZXQgdG8gYGJvcmRlci1ib3hgIGluIFNhZmFyaSBhbmQgQ2hyb21lXG4gKiAgICAoaW5jbHVkZSBgLW1vemAgdG8gZnV0dXJlLXByb29mKS5cbiAqL1xuXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IC8qIDEgKi9cbiAgLW1vei1ib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLyogMiAqL1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbn1cblxuLyoqXG4gKiBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgc2VhcmNoIGNhbmNlbCBidXR0b24gaW4gU2FmYXJpIGFuZCBDaHJvbWUgb24gT1MgWC5cbiAqIFNhZmFyaSAoYnV0IG5vdCBDaHJvbWUpIGNsaXBzIHRoZSBjYW5jZWwgYnV0dG9uIHdoZW4gdGhlIHNlYXJjaCBpbnB1dCBoYXNcbiAqIHBhZGRpbmcgKGFuZCBgdGV4dGZpZWxkYCBhcHBlYXJhbmNlKS5cbiAqL1xuXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLyoqXG4gKiBEZWZpbmUgY29uc2lzdGVudCBib3JkZXIsIG1hcmdpbiwgYW5kIHBhZGRpbmcuXG4gKi9cblxuZmllbGRzZXQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xuICBtYXJnaW46IDAgMnB4O1xuICBwYWRkaW5nOiAwLjM1ZW0gMC42MjVlbSAwLjc1ZW07XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCBgY29sb3JgIG5vdCBiZWluZyBpbmhlcml0ZWQgaW4gSUUgOC85LzEwLzExLlxuICogMi4gUmVtb3ZlIHBhZGRpbmcgc28gcGVvcGxlIGFyZW4ndCBjYXVnaHQgb3V0IGlmIHRoZXkgemVybyBvdXQgZmllbGRzZXRzLlxuICovXG5cbmxlZ2VuZCB7XG4gIGJvcmRlcjogMDsgLyogMSAqL1xuICBwYWRkaW5nOiAwOyAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFIDgvOS8xMC8xMS5cbiAqL1xuXG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4vKipcbiAqIERvbid0IGluaGVyaXQgdGhlIGBmb250LXdlaWdodGAgKGFwcGxpZWQgYnkgYSBydWxlIGFib3ZlKS5cbiAqIE5PVEU6IHRoZSBkZWZhdWx0IGNhbm5vdCBzYWZlbHkgYmUgY2hhbmdlZCBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBPUyBYLlxuICovXG5cbm9wdGdyb3VwIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi8qIFRhYmxlc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgbW9zdCBzcGFjaW5nIGJldHdlZW4gdGFibGUgY2VsbHMuXG4gKi9cblxudGFibGUge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBib3JkZXItc3BhY2luZzogMDtcbn1cblxudGQsXG50aCB7XG4gIHBhZGRpbmc6IDA7XG59IiwiLyogIyMgQm94IFNpemluZ1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiosXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdIHtcblx0LXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHQtbW96LWJveC1zaXppbmc6ICAgIGJvcmRlci1ib3g7XG5cdGJveC1zaXppbmc6ICAgICAgICAgYm9yZGVyLWJveDtcbn1cbiIsIi8qKlxuICogRm9yIG1vZGVybiBicm93c2Vyc1xuICogMS4gVGhlIHNwYWNlIGNvbnRlbnQgaXMgb25lIHdheSB0byBhdm9pZCBhbiBPcGVyYSBidWcgd2hlbiB0aGVcbiAqICAgIGNvbnRlbnRlZGl0YWJsZSBhdHRyaWJ1dGUgaXMgaW5jbHVkZWQgYW55d2hlcmUgZWxzZSBpbiB0aGUgZG9jdW1lbnQuXG4gKiAgICBPdGhlcndpc2UgaXQgY2F1c2VzIHNwYWNlIHRvIGFwcGVhciBhdCB0aGUgdG9wIGFuZCBib3R0b20gb2YgZWxlbWVudHNcbiAqICAgIHRoYXQgYXJlIGNsZWFyZml4ZWQuXG4gKiAyLiBUaGUgdXNlIG9mIGB0YWJsZWAgcmF0aGVyIHRoYW4gYGJsb2NrYCBpcyBvbmx5IG5lY2Vzc2FyeSBpZiB1c2luZ1xuICogICAgYDpiZWZvcmVgIHRvIGNvbnRhaW4gdGhlIHRvcC1tYXJnaW5zIG9mIGNoaWxkIGVsZW1lbnRzLlxuICovXG4uY2Y6YmVmb3JlLFxuLmNmOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIiBcIjsgLyogMSAqL1xuICAgIGRpc3BsYXk6IHRhYmxlOyAvKiAyICovXG59XG5cbi5jZjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7XG59XG5cbi8qKlxuICogRm9yIElFIDYvNyBvbmx5XG4gKiBJbmNsdWRlIHRoaXMgcnVsZSB0byB0cmlnZ2VyIGhhc0xheW91dCBhbmQgY29udGFpbiBmbG9hdHMuXG4gKi9cbi5jZiB7XG4gICAgKnpvb206IDE7XG59XG5cbkBtaXhpbiBjbGVhcmZpeCB7XG5cdCY6YmVmb3JlLFxuXHQmOmFmdGVyIHtcblx0XHRjb250ZW50OiBcIiBcIjsgLyogMSAqL1xuXHRcdGRpc3BsYXk6IHRhYmxlOyAvKiAyICovXG5cdH1cblx0XG5cdCY6YWZ0ZXIge1xuXHRcdGNsZWFyOiBib3RoO1xuXHR9XG5cdFxuXHQvLyBGb3IgSUUgNi83IG9ubHlcblx0Knpvb206IDE7XG59XG5cbi8qICMjIEZsb2F0IENsZWFyaW5nXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLmF1dGhvci1ib3g6YmVmb3JlLFxuLmNsZWFyZml4OmJlZm9yZSxcbi5lbnRyeTpiZWZvcmUsXG4uZW50cnktY29udGVudDpiZWZvcmUsXG4uZm9vdGVyLXdpZGdldHM6YmVmb3JlLFxuLm5hdi1wcmltYXJ5OmJlZm9yZSxcbi5uYXYtc2Vjb25kYXJ5OmJlZm9yZSxcbi5wYWdpbmF0aW9uOmJlZm9yZSxcbi5zaXRlLWNvbnRhaW5lcjpiZWZvcmUsXG4uc2l0ZS1mb290ZXI6YmVmb3JlLFxuLnNpdGUtaGVhZGVyOmJlZm9yZSxcbi5zaXRlLWlubmVyOmJlZm9yZSxcbi53cmFwOmJlZm9yZSB7XG5cdGNvbnRlbnQ6IFwiIFwiO1xuXHRkaXNwbGF5OiB0YWJsZTtcbn1cblxuLmF1dGhvci1ib3g6YWZ0ZXIsXG4uY2xlYXJmaXg6YWZ0ZXIsXG4uZW50cnk6YWZ0ZXIsXG4uZW50cnktY29udGVudDphZnRlcixcbi5mb290ZXItd2lkZ2V0czphZnRlcixcbi5uYXYtcHJpbWFyeTphZnRlcixcbi5uYXYtc2Vjb25kYXJ5OmFmdGVyLFxuLnBhZ2luYXRpb246YWZ0ZXIsXG4uc2l0ZS1jb250YWluZXI6YWZ0ZXIsXG4uc2l0ZS1mb290ZXI6YWZ0ZXIsXG4uc2l0ZS1oZWFkZXI6YWZ0ZXIsXG4uc2l0ZS1pbm5lcjphZnRlcixcbi53cmFwOmFmdGVyIHtcblx0Y2xlYXI6IGJvdGg7XG5cdGNvbnRlbnQ6IFwiIFwiO1xuXHRkaXNwbGF5OiB0YWJsZTtcbn1cblxuIiwiLyogIyMgQ29sdW1uIENsYXNzZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogTGluazogaHR0cDovL3R3aXR0ZXIuZ2l0aHViLmlvL2Jvb3RzdHJhcC9hc3NldHMvY3NzL2Jvb3RzdHJhcC1yZXNwb25zaXZlLmNzcyAqL1xuXG4uZml2ZS1zaXh0aHMsXG4uZm91ci1zaXh0aHMsXG4ub25lLWZvdXJ0aCxcbi5vbmUtaGFsZixcbi5vbmUtc2l4dGgsXG4ub25lLXRoaXJkLFxuLnRocmVlLWZvdXJ0aHMsXG4udGhyZWUtc2l4dGhzLFxuLnR3by1mb3VydGhzLFxuLnR3by1zaXh0aHMsXG4udHdvLXRoaXJkcyB7XG5cdGZsb2F0OiBsZWZ0O1xuXHRtYXJnaW4tbGVmdDogMi41NjQxMDI1NjQxMDI1NjQlO1xufVxuXG4ub25lLWhhbGYsXG4udGhyZWUtc2l4dGhzLFxuLnR3by1mb3VydGhzIHtcblx0d2lkdGg6IDQ4LjcxNzk0ODcxNzk0ODcxNSU7XG59XG5cbi5vbmUtdGhpcmQsXG4udHdvLXNpeHRocyB7XG5cdHdpZHRoOiAzMS42MjM5MzE2MjM5MzE2MjUlO1xufVxuXG4uZm91ci1zaXh0aHMsXG4udHdvLXRoaXJkcyB7XG5cdHdpZHRoOiA2NS44MTE5NjU4MTE5NjU4MiU7XG59XG5cbi5vbmUtZm91cnRoIHtcblx0d2lkdGg6IDIzLjA3NjkyMzA3NjkyMzA3NyU7XG59XG5cbi50aHJlZS1mb3VydGhzIHtcblx0d2lkdGg6IDc0LjM1ODk3NDM1ODk3NDM2JTtcbn1cblxuLm9uZS1zaXh0aCB7XG5cdHdpZHRoOiAxNC41Mjk5MTQ1Mjk5MTQ1MyU7XG59XG5cbi5maXZlLXNpeHRocyB7XG5cdHdpZHRoOiA4Mi45MDU5ODI5MDU5ODI5MSU7XG59XG5cbi5maXJzdCB7XG5cdGNsZWFyOiBib3RoO1xuXHRtYXJnaW4tbGVmdDogMDtcbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4MDBweCkge1xuXHQuZml2ZS1zaXh0aHMsXG5cdC5mb3VyLXNpeHRocyxcblx0Lm9uZS1mb3VydGgsXG5cdC5vbmUtaGFsZixcblx0Lm9uZS1zaXh0aCxcblx0Lm9uZS10aGlyZCxcblx0LnRocmVlLWZvdXJ0aHMsXG5cdC50aHJlZS1zaXh0aHMsXG5cdC50d28tZm91cnRocyxcblx0LnR3by1zaXh0aHMsXG5cdC50d28tdGhpcmRzIHtcblx0XHRtYXJnaW46IDA7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdH1cbn1cbiIsIi8qIE1hZ25pZmljIFBvcHVwIENTUyAqL1xuLm1mcC1iZyB7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgei1pbmRleDogMTA0MjtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBiYWNrZ3JvdW5kOiAjMGIwYjBiO1xuICBvcGFjaXR5OiAwLjg7XG4gIGZpbHRlcjogYWxwaGEob3BhY2l0eT04MCk7IH1cblxuLm1mcC13cmFwIHtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB6LWluZGV4OiAxMDQzO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIG91dGxpbmU6IG5vbmUgIWltcG9ydGFudDtcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuLm1mcC1jb250YWluZXIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICBwYWRkaW5nOiAwIDhweDtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAtbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cblxuLm1mcC1jb250YWluZXI6YmVmb3JlIHtcbiAgY29udGVudDogJyc7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgaGVpZ2h0OiAxMDAlO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG5cbi5tZnAtYWxpZ24tdG9wIC5tZnAtY29udGFpbmVyOmJlZm9yZSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLm1mcC1jb250ZW50IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG1hcmdpbjogMCBhdXRvO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB6LWluZGV4OiAxMDQ1OyB9XG5cbi5tZnAtaW5saW5lLWhvbGRlciAubWZwLWNvbnRlbnQsXG4ubWZwLWFqYXgtaG9sZGVyIC5tZnAtY29udGVudCB7XG4gIHdpZHRoOiAxMDAlO1xuICBjdXJzb3I6IGF1dG87IH1cblxuLm1mcC1hamF4LWN1ciB7XG4gIGN1cnNvcjogcHJvZ3Jlc3M7IH1cblxuLm1mcC16b29tLW91dC1jdXIsIC5tZnAtem9vbS1vdXQtY3VyIC5tZnAtaW1hZ2UtaG9sZGVyIC5tZnAtY2xvc2Uge1xuICBjdXJzb3I6IC1tb3otem9vbS1vdXQ7XG4gIGN1cnNvcjogLXdlYmtpdC16b29tLW91dDtcbiAgY3Vyc29yOiB6b29tLW91dDsgfVxuXG4ubWZwLXpvb20ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGN1cnNvcjogLXdlYmtpdC16b29tLWluO1xuICBjdXJzb3I6IC1tb3otem9vbS1pbjtcbiAgY3Vyc29yOiB6b29tLWluOyB9XG5cbi5tZnAtYXV0by1jdXJzb3IgLm1mcC1jb250ZW50IHtcbiAgY3Vyc29yOiBhdXRvOyB9XG5cbi5tZnAtY2xvc2UsXG4ubWZwLWFycm93LFxuLm1mcC1wcmVsb2FkZXIsXG4ubWZwLWNvdW50ZXIge1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICB1c2VyLXNlbGVjdDogbm9uZTsgfVxuXG4ubWZwLWxvYWRpbmcubWZwLWZpZ3VyZSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLm1mcC1oaWRlIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbi5tZnAtcHJlbG9hZGVyIHtcbiAgY29sb3I6ICNDQ0M7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHdpZHRoOiBhdXRvO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbi10b3A6IC0wLjhlbTtcbiAgbGVmdDogOHB4O1xuICByaWdodDogOHB4O1xuICB6LWluZGV4OiAxMDQ0OyB9XG4gIC5tZnAtcHJlbG9hZGVyIGEge1xuICAgIGNvbG9yOiAjQ0NDOyB9XG4gICAgLm1mcC1wcmVsb2FkZXIgYTpob3ZlciB7XG4gICAgICBjb2xvcjogI0ZGRjsgfVxuXG4ubWZwLXMtcmVhZHkgLm1mcC1wcmVsb2FkZXIge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5tZnAtcy1lcnJvciAubWZwLWNvbnRlbnQge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbmJ1dHRvbi5tZnAtY2xvc2UsXG5idXR0b24ubWZwLWFycm93IHtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMDtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICBkaXNwbGF5OiBibG9jaztcbiAgb3V0bGluZTogbm9uZTtcbiAgcGFkZGluZzogMDtcbiAgei1pbmRleDogMTA0NjtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lO1xuICBib3gtc2hhZG93OiBub25lOyB9XG5cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lciB7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogMDsgfVxuXG4ubWZwLWNsb3NlIHtcbiAgd2lkdGg6IDQ0cHg7XG4gIGhlaWdodDogNDRweDtcbiAgbGluZS1oZWlnaHQ6IDQ0cHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDA7XG4gIHRvcDogMDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG9wYWNpdHk6IDAuNjU7XG4gIGZpbHRlcjogYWxwaGEob3BhY2l0eT02NSk7XG4gIHBhZGRpbmc6IDAgMCAxOHB4IDEwcHg7XG4gIGNvbG9yOiAjRkZGO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtc2l6ZTogMjhweDtcbiAgZm9udC1mYW1pbHk6IEFyaWFsLCBCYXNrZXJ2aWxsZSwgbW9ub3NwYWNlOyB9XG4gIC5tZnAtY2xvc2U6aG92ZXIsXG4gIC5tZnAtY2xvc2U6Zm9jdXMge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PTEwMCk7IH1cbiAgLm1mcC1jbG9zZTphY3RpdmUge1xuICAgIHRvcDogMXB4OyB9XG5cbi5tZnAtY2xvc2UtYnRuLWluIC5tZnAtY2xvc2Uge1xuICBjb2xvcjogIzMzMzsgfVxuXG4ubWZwLWltYWdlLWhvbGRlciAubWZwLWNsb3NlLFxuLm1mcC1pZnJhbWUtaG9sZGVyIC5tZnAtY2xvc2Uge1xuICBjb2xvcjogI0ZGRjtcbiAgcmlnaHQ6IC02cHg7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBwYWRkaW5nLXJpZ2h0OiA2cHg7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbi5tZnAtY291bnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgY29sb3I6ICNDQ0M7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbGluZS1oZWlnaHQ6IDE4cHg7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cblxuLm1mcC1hcnJvdyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgb3BhY2l0eTogMC42NTtcbiAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PTY1KTtcbiAgbWFyZ2luOiAwO1xuICB0b3A6IDUwJTtcbiAgbWFyZ2luLXRvcDogLTU1cHg7XG4gIHBhZGRpbmc6IDA7XG4gIHdpZHRoOiA5MHB4O1xuICBoZWlnaHQ6IDExMHB4O1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG4gIC5tZnAtYXJyb3c6YWN0aXZlIHtcbiAgICBtYXJnaW4tdG9wOiAtNTRweDsgfVxuICAubWZwLWFycm93OmhvdmVyLFxuICAubWZwLWFycm93OmZvY3VzIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIGZpbHRlcjogYWxwaGEob3BhY2l0eT0xMDApOyB9XG4gIC5tZnAtYXJyb3c6YmVmb3JlLFxuICAubWZwLWFycm93OmFmdGVyLFxuICAubWZwLWFycm93IC5tZnAtYixcbiAgLm1mcC1hcnJvdyAubWZwLWEge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMDtcbiAgICB0b3A6IDA7XG4gICAgbWFyZ2luLXRvcDogMzVweDtcbiAgICBtYXJnaW4tbGVmdDogMzVweDtcbiAgICBib3JkZXI6IG1lZGl1bSBpbnNldCB0cmFuc3BhcmVudDsgfVxuICAubWZwLWFycm93OmFmdGVyLFxuICAubWZwLWFycm93IC5tZnAtYSB7XG4gICAgYm9yZGVyLXRvcC13aWR0aDogMTNweDtcbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAxM3B4O1xuICAgIHRvcDogOHB4OyB9XG4gIC5tZnAtYXJyb3c6YmVmb3JlLFxuICAubWZwLWFycm93IC5tZnAtYiB7XG4gICAgYm9yZGVyLXRvcC13aWR0aDogMjFweDtcbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAyMXB4O1xuICAgIG9wYWNpdHk6IDAuNzsgfVxuXG4ubWZwLWFycm93LWxlZnQge1xuICBsZWZ0OiAwOyB9XG4gIC5tZnAtYXJyb3ctbGVmdDphZnRlcixcbiAgLm1mcC1hcnJvdy1sZWZ0IC5tZnAtYSB7XG4gICAgYm9yZGVyLXJpZ2h0OiAxN3B4IHNvbGlkICNGRkY7XG4gICAgbWFyZ2luLWxlZnQ6IDMxcHg7IH1cbiAgLm1mcC1hcnJvdy1sZWZ0OmJlZm9yZSxcbiAgLm1mcC1hcnJvdy1sZWZ0IC5tZnAtYiB7XG4gICAgbWFyZ2luLWxlZnQ6IDI1cHg7XG4gICAgYm9yZGVyLXJpZ2h0OiAyN3B4IHNvbGlkICMzRjNGM0Y7IH1cblxuLm1mcC1hcnJvdy1yaWdodCB7XG4gIHJpZ2h0OiAwOyB9XG4gIC5tZnAtYXJyb3ctcmlnaHQ6YWZ0ZXIsXG4gIC5tZnAtYXJyb3ctcmlnaHQgLm1mcC1hIHtcbiAgICBib3JkZXItbGVmdDogMTdweCBzb2xpZCAjRkZGO1xuICAgIG1hcmdpbi1sZWZ0OiAzOXB4OyB9XG4gIC5tZnAtYXJyb3ctcmlnaHQ6YmVmb3JlLFxuICAubWZwLWFycm93LXJpZ2h0IC5tZnAtYiB7XG4gICAgYm9yZGVyLWxlZnQ6IDI3cHggc29saWQgIzNGM0YzRjsgfVxuXG4ubWZwLWlmcmFtZS1ob2xkZXIge1xuICBwYWRkaW5nLXRvcDogNDBweDtcbiAgcGFkZGluZy1ib3R0b206IDQwcHg7IH1cbiAgLm1mcC1pZnJhbWUtaG9sZGVyIC5tZnAtY29udGVudCB7XG4gICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiA5MDBweDsgfVxuICAubWZwLWlmcmFtZS1ob2xkZXIgLm1mcC1jbG9zZSB7XG4gICAgdG9wOiAtNDBweDsgfVxuXG4ubWZwLWlmcmFtZS1zY2FsZXIge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nLXRvcDogNTYuMjUlOyB9XG4gIC5tZnAtaWZyYW1lLXNjYWxlciBpZnJhbWUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYm94LXNoYWRvdzogMCAwIDhweCByZ2JhKDAsIDAsIDAsIDAuNik7XG4gICAgYmFja2dyb3VuZDogIzAwMDsgfVxuXG4vKiBNYWluIGltYWdlIGluIHBvcHVwICovXG5pbWcubWZwLWltZyB7XG4gIHdpZHRoOiBhdXRvO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbiAgZGlzcGxheTogYmxvY2s7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgcGFkZGluZzogNDBweCAwIDQwcHg7XG4gIG1hcmdpbjogMCBhdXRvOyB9XG5cbi8qIFRoZSBzaGFkb3cgYmVoaW5kIHRoZSBpbWFnZSAqL1xuLm1mcC1maWd1cmUge1xuICBsaW5lLWhlaWdodDogMDsgfVxuICAubWZwLWZpZ3VyZTphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiA0MHB4O1xuICAgIGJvdHRvbTogNDBweDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICByaWdodDogMDtcbiAgICB3aWR0aDogYXV0bztcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgei1pbmRleDogLTE7XG4gICAgYm94LXNoYWRvdzogMCAwIDhweCByZ2JhKDAsIDAsIDAsIDAuNik7XG4gICAgYmFja2dyb3VuZDogIzQ0NDsgfVxuICAubWZwLWZpZ3VyZSBzbWFsbCB7XG4gICAgY29sb3I6ICNCREJEQkQ7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxNHB4OyB9XG4gIC5tZnAtZmlndXJlIGZpZ3VyZSB7XG4gICAgbWFyZ2luOiAwOyB9XG5cbi5tZnAtYm90dG9tLWJhciB7XG4gIG1hcmdpbi10b3A6IC0zNnB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTAwJTtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGN1cnNvcjogYXV0bzsgfVxuXG4ubWZwLXRpdGxlIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgbGluZS1oZWlnaHQ6IDE4cHg7XG4gIGNvbG9yOiAjRjNGM0YzO1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gIHBhZGRpbmctcmlnaHQ6IDM2cHg7IH1cblxuLm1mcC1pbWFnZS1ob2xkZXIgLm1mcC1jb250ZW50IHtcbiAgbWF4LXdpZHRoOiAxMDAlOyB9XG5cbi5tZnAtZ2FsbGVyeSAubWZwLWltYWdlLWhvbGRlciAubWZwLWZpZ3VyZSB7XG4gIGN1cnNvcjogcG9pbnRlcjsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4MDBweCkgYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKSwgc2NyZWVuIGFuZCAobWF4LWhlaWdodDogMzAwcHgpIHtcbiAgLyoqXG4gICAgICAgKiBSZW1vdmUgYWxsIHBhZGRpbmdzIGFyb3VuZCB0aGUgaW1hZ2Ugb24gc21hbGwgc2NyZWVuXG4gICAgICAgKi9cbiAgLm1mcC1pbWctbW9iaWxlIC5tZnAtaW1hZ2UtaG9sZGVyIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgcGFkZGluZy1yaWdodDogMDsgfVxuICAubWZwLWltZy1tb2JpbGUgaW1nLm1mcC1pbWcge1xuICAgIHBhZGRpbmc6IDA7IH1cbiAgLm1mcC1pbWctbW9iaWxlIC5tZnAtZmlndXJlOmFmdGVyIHtcbiAgICB0b3A6IDA7XG4gICAgYm90dG9tOiAwOyB9XG4gIC5tZnAtaW1nLW1vYmlsZSAubWZwLWZpZ3VyZSBzbWFsbCB7XG4gICAgZGlzcGxheTogaW5saW5lO1xuICAgIG1hcmdpbi1sZWZ0OiA1cHg7IH1cbiAgLm1mcC1pbWctbW9iaWxlIC5tZnAtYm90dG9tLWJhciB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjYpO1xuICAgIGJvdHRvbTogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgdG9wOiBhdXRvO1xuICAgIHBhZGRpbmc6IDNweCA1cHg7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAtbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuICAgIC5tZnAtaW1nLW1vYmlsZSAubWZwLWJvdHRvbS1iYXI6ZW1wdHkge1xuICAgICAgcGFkZGluZzogMDsgfVxuICAubWZwLWltZy1tb2JpbGUgLm1mcC1jb3VudGVyIHtcbiAgICByaWdodDogNXB4O1xuICAgIHRvcDogM3B4OyB9XG4gIC5tZnAtaW1nLW1vYmlsZSAubWZwLWNsb3NlIHtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgd2lkdGg6IDM1cHg7XG4gICAgaGVpZ2h0OiAzNXB4O1xuICAgIGxpbmUtaGVpZ2h0OiAzNXB4O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC42KTtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBhZGRpbmc6IDA7IH0gfVxuXG5AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA5MDBweCkge1xuICAubWZwLWFycm93IHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMC43NSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjc1KTsgfVxuICAubWZwLWFycm93LWxlZnQge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogMDtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwOyB9XG4gIC5tZnAtYXJyb3ctcmlnaHQge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogMTAwJTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAxMDAlOyB9XG4gIC5tZnAtY29udGFpbmVyIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDZweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiA2cHg7IH0gfVxuXG4ubWZwLWllNyAubWZwLWltZyB7XG4gIHBhZGRpbmc6IDA7IH1cblxuLm1mcC1pZTcgLm1mcC1ib3R0b20tYmFyIHtcbiAgd2lkdGg6IDYwMHB4O1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMzAwcHg7XG4gIG1hcmdpbi10b3A6IDVweDtcbiAgcGFkZGluZy1ib3R0b206IDVweDsgfVxuXG4ubWZwLWllNyAubWZwLWNvbnRhaW5lciB7XG4gIHBhZGRpbmc6IDA7IH1cblxuLm1mcC1pZTcgLm1mcC1jb250ZW50IHtcbiAgcGFkZGluZy10b3A6IDQ0cHg7IH1cblxuLm1mcC1pZTcgLm1mcC1jbG9zZSB7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIHBhZGRpbmctdG9wOiAwOyB9XG4iLCIvLyBTYXNzIGludGVncmF0aW9uIGZvciBFbnR5cG8gdjIuMFxuLy8gICBodHRwczovL2dpdGh1Yi5jb20vcnN0YWNydXovc2Fzc19pY29uX2ZvbnRzXG4vL1xuLy8gV2Vic2l0ZTogaHR0cDovL3d3dy5lbnR5cG8uY29tL1xuLy9cbi8vIEZvbnQgZmlsZXM6XG4vLyAgIGh0dHA6Ly93d3cuZW50eXBvLmNvbS9jc3MvZW50eXBvLmVvdFxuLy8gICBodHRwOi8vd3d3LmVudHlwby5jb20vY3NzL2VudHlwby5zdmdcbi8vICAgaHR0cDovL3d3dy5lbnR5cG8uY29tL2Nzcy9lbnR5cG8ud29mZlxuLy8gICBodHRwOi8vd3d3LmVudHlwby5jb20vY3NzL2VudHlwby50dGZcblxuJGVuLXBhdGg6IFwiZW50eXBvLXBsdXNcIiAhZGVmYXVsdDtcblxuQG1peGluIGVuLWZvbnQge1xuICBAZm9udC1mYWNlIHtcbiAgICBmb250LWZhbWlseTogXCJlbnR5cG9cIjtcbiAgICBzcmM6IHVybChcIiN7JGVuLXBhdGh9LmVvdFwiKTtcbiAgICBzcmM6IHVybChcIiN7JGVuLXBhdGh9LmVvdD8jaWVmaXhcIikgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIiksIHVybChcIiN7JGVuLXBhdGh9LndvZmZcIikgZm9ybWF0KFwid29mZlwiKSwgdXJsKFwiI3skZW4tcGF0aH0udHRmXCIpIGZvcm1hdChcInRydWV0eXBlXCIpLCB1cmwoXCIjeyRlbi1wYXRofS5zdmcjZW50eXBvXCIpIGZvcm1hdChcInN2Z1wiKTtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBzcGVhazogbm9uZTtcbiAgfVxufVxuXG4gXG4vLyBMaXN0IG9mIHVuaWNvZGUgY2hhcmFjdGVycyBmb3IgZW50eXBvIGljb25zXG4kaWNvbnM6IChcbiAgIFx0J3BsdXMnXHRcdFx0XHQnXFxlODE2Jyxcblx0J21pbnVzJ1x0XHRcdFx0J1xcZTgxOScsXG5cdCdpbmZvJ1x0XHRcdFx0J1xcZTgxZScsXG5cdCdsZWZ0LXRoaW4nXHRcdFx0J1xcZTg4YycsXG5cdCd1cC10aGluJ1x0XHRcdCdcXGU4OGUnLFxuXHQncmlnaHQtdGhpbidcdFx0J1xcZTg4ZCcsXG5cdCdkb3duLXRoaW4nXHRcdFx0J1xcZTg4YicsXG5cdCdsZXZlbC11cCdcdFx0XHQnXFxlODkzJyxcblx0J2xldmVsLWRvd24nXHRcdCdcXGU4OTInLFxuXHQnc3dpdGNoJ1x0XHRcdCdcXGU4OTYnLFxuXHQnaW5maW5pdHknXHRcdFx0J1xcZThjMicsXG5cdCdwbHVzLXNxdWFyZWQnXHRcdCdcXGU4MTgnLFxuXHQnbWludXMtc3F1YXJlZCdcdFx0J1xcZTgxYicsXG5cdCdob21lJ1x0XHRcdFx0J1xcZTgyMScsXG5cdCdrZXlib2FyZCdcdFx0XHQnXFxlODNhJyxcblx0J2VyYXNlJ1x0XHRcdFx0J1xcZThjMycsXG5cdCdwYXVzZSdcdFx0XHRcdCdcXGU4OTknLFxuXHQnZmFzdC1mb3J3YXJkJ1x0XHQnXFxlODlkJyxcblx0J2Zhc3QtYmFja3dhcmQnXHRcdCdcXGU4OWUnLFxuXHQndG8tZW5kJ1x0XHRcdCdcXGU4OWInLFxuXHQndG8tc3RhcnQnXHRcdFx0J1xcZTg5YycsXG5cdCdob3VyZ2xhc3MnXHRcdFx0J1xcZTg2MycsXG5cdCdzdG9wJ1x0XHRcdFx0J1xcZTg5OCcsXG5cdCd1cC1kaXInXHRcdFx0J1xcZTg4NicsXG5cdCdwbGF5J1x0XHRcdFx0J1xcZTg5NycsXG5cdCdyaWdodC1kaXInXHRcdFx0J1xcZTg4NScsXG5cdCdkb3duLWRpcidcdFx0XHQnXFxlODgzJyxcblx0J2xlZnQtZGlyJ1x0XHRcdCdcXGU4ODQnLFxuXHQnYWRqdXN0J1x0XHRcdCdcXGU4NjcnLFxuXHQnY2xvdWQnXHRcdFx0XHQnXFxlOGIyJyxcblx0J3N0YXInXHRcdFx0XHQnXFxlODA4Jyxcblx0J3N0YXItZW1wdHknXHRcdCdcXGU4MDknLFxuXHQnY3VwJ1x0XHRcdFx0J1xcZTg0NicsXG5cdCdtZW51J1x0XHRcdFx0J1xcZTgxMScsXG5cdCdtb29uJ1x0XHRcdFx0J1xcZThiNScsXG5cdCdoZWFydC1lbXB0eSdcdFx0J1xcZTgwNycsXG5cdCdoZWFydCdcdFx0XHRcdCdcXGU4MDYnLFxuXHQnbm90ZSdcdFx0XHRcdCdcXGU4MDAnLFxuXHQnbm90ZS1iZWFtZWQnXHRcdCdcXGU4MDEnLFxuXHQnbGF5b3V0J1x0XHRcdCdcXGU4MTAnLFxuXHQnZmxhZydcdFx0XHRcdCdcXGU4MmEnLFxuXHQndG9vbHMnXHRcdFx0XHQnXFxlODU2Jyxcblx0J2NvZydcdFx0XHRcdCdcXGU4NTUnLFxuXHQnYXR0ZW50aW9uJ1x0XHRcdCdcXGU4M2UnLFxuXHQnZmxhc2gnXHRcdFx0XHQnXFxlOGI0Jyxcblx0J3JlY29yZCdcdFx0XHQnXFxlODlhJyxcblx0J2Nsb3VkLXRodW5kZXInXHRcdCdcXGU4YjMnLFxuXHQndGFwZSdcdFx0XHRcdCdcXGU4YzgnLFxuXHQnZmxpZ2h0J1x0XHRcdCdcXGU4YjYnLFxuXHQnbWFpbCdcdFx0XHRcdCdcXGU4MDUnLFxuXHQncGVuY2lsJ1x0XHRcdCdcXGU4MzYnLFxuXHQnZmVhdGhlcidcdFx0XHQnXFxlODM3Jyxcblx0J2NoZWNrJ1x0XHRcdFx0J1xcZTgxMicsXG5cdCdjYW5jZWwnXHRcdFx0J1xcZTgxMycsXG5cdCdjYW5jZWwtY2lyY2xlZCdcdCdcXGU4MTQnLFxuXHQnY2FuY2VsLXNxdWFyZWQnXHQnXFxlODE1Jyxcblx0J2hlbHAnXHRcdFx0XHQnXFxlODFjJyxcblx0J3F1b3RlJ1x0XHRcdFx0J1xcZTgzMycsXG5cdCdwbHVzLWNpcmNsZWQnXHRcdCdcXGU4MTcnLFxuXHQnbWludXMtY2lyY2xlZCdcdFx0J1xcZTgxYScsXG5cdCdyaWdodCdcdFx0XHRcdCdcXGU4ODEnLFxuXHQnZGlyZWN0aW9uJ1x0XHRcdCdcXGU4NDQnLFxuXHQnZm9yd2FyZCdcdFx0XHQnXFxlODMyJyxcblx0J2NjdydcdFx0XHRcdCdcXGU4OGYnLFxuXHQnY3cnXHRcdFx0XHQnXFxlODkwJyxcblx0J2xlZnQnXHRcdFx0XHQnXFxlODgwJyxcblx0J3VwJ1x0XHRcdFx0J1xcZTg4MicsXG5cdCdkb3duJ1x0XHRcdFx0J1xcZTg3ZicsXG5cdCdsaXN0LWFkZCdcdFx0XHQnXFxlOGE2Jyxcblx0J2xpc3QnXHRcdFx0XHQnXFxlOGE1Jyxcblx0J2xlZnQtYm9sZCdcdFx0XHQnXFxlODg4Jyxcblx0J3JpZ2h0LWJvbGQnXHRcdCdcXGU4ODknLFxuXHQndXAtYm9sZCdcdFx0XHQnXFxlODhhJyxcblx0J2Rvd24tYm9sZCdcdFx0XHQnXFxlODg3Jyxcblx0J3VzZXItYWRkJ1x0XHRcdCdcXGU4MGMnLFxuXHQnaGVscC1jaXJjbGVkJ1x0XHQnXFxlODFkJyxcblx0J2luZm8tY2lyY2xlZCdcdFx0J1xcZTgxZicsXG5cdCdleWUnXHRcdFx0XHQnXFxlODI2Jyxcblx0J3RhZydcdFx0XHRcdCdcXGU4MjcnLFxuXHQndXBsb2FkLWNsb3VkJ1x0XHQnXFxlODJmJyxcblx0J3JlcGx5J1x0XHRcdFx0J1xcZTgzMCcsXG5cdCdyZXBseS1hbGwnXHRcdFx0J1xcZTgzMScsXG5cdCdjb2RlJ1x0XHRcdFx0J1xcZTgzNCcsXG5cdCdleHBvcnQnXHRcdFx0J1xcZTgzNScsXG5cdCdwcmludCdcdFx0XHRcdCdcXGU4MzgnLFxuXHQncmV0d2VldCdcdFx0XHQnXFxlODM5Jyxcblx0J2NvbW1lbnQnXHRcdFx0J1xcZTgzYicsXG5cdCdjaGF0J1x0XHRcdFx0J1xcZTgzYycsXG5cdCd2Y2FyZCdcdFx0XHRcdCdcXGU4NDAnLFxuXHQnYWRkcmVzcydcdFx0XHQnXFxlODQxJyxcblx0J2xvY2F0aW9uJ1x0XHRcdCdcXGU4NDInLFxuXHQnbWFwJ1x0XHRcdFx0J1xcZTg0MycsXG5cdCdjb21wYXNzJ1x0XHRcdCdcXGU4NDUnLFxuXHQndHJhc2gnXHRcdFx0XHQnXFxlODQ3Jyxcblx0J2RvYydcdFx0XHRcdCdcXGU4NDgnLFxuXHQnZG9jLXRleHQtaW52J1x0XHQnXFxlODRjJyxcblx0J2RvY3MnXHRcdFx0XHQnXFxlODQ5Jyxcblx0J2RvYy1sYW5kc2NhcGUnXHRcdCdcXGU4NGEnLFxuXHQnYXJjaGl2ZSdcdFx0XHQnXFxlODUxJyxcblx0J3JzcydcdFx0XHRcdCdcXGU4NTMnLFxuXHQnc2hhcmUnXHRcdFx0XHQnXFxlODU3Jyxcblx0J2Jhc2tldCdcdFx0XHQnXFxlODU5Jyxcblx0J3NoYXJlYWJsZSdcdFx0XHQnXFxlODU4Jyxcblx0J2xvZ2luJ1x0XHRcdFx0J1xcZTg1YycsXG5cdCdsb2dvdXQnXHRcdFx0J1xcZTg1ZCcsXG5cdCd2b2x1bWUnXHRcdFx0J1xcZTg2MScsXG5cdCdyZXNpemUtZnVsbCdcdFx0J1xcZTg2OScsXG5cdCdyZXNpemUtc21hbGwnXHRcdCdcXGU4NmEnLFxuXHQncG9wdXAnXHRcdFx0XHQnXFxlODZiJyxcblx0J3B1Ymxpc2gnXHRcdFx0J1xcZTg2YycsXG5cdCd3aW5kb3c6J1x0XHRcdCdcXGU4NmQnLFxuXHQnYXJyb3ctY29tYm8nXHRcdCdcXGU4NmUnLFxuXHQnY2hhcnQtcGllJ1x0XHRcdCdcXGU4YzQnLFxuXHQnbGFuZ3VhZ2UnXHRcdFx0J1xcZThjYScsXG5cdCdhaXInXHRcdFx0XHQnXFxlOGNlJyxcblx0J2RhdGFiYXNlJ1x0XHRcdCdcXGU4ZDMnLFxuXHQnZHJpdmUnXHRcdFx0XHQnXFxlOGQ0Jyxcblx0J2J1Y2tldCdcdFx0XHQnXFxlOGQ1Jyxcblx0J3RoZXJtb21ldGVyJ1x0XHQnXFxlOGQ2Jyxcblx0J2Rvd24tY2lyY2xlZCdcdFx0J1xcZTg2ZicsXG5cdCdsZWZ0LWNpcmNsZWQnXHRcdCdcXGU4NzAnLFxuXHQncmlnaHQtY2lyY2xlZCdcdFx0J1xcZTg3MScsXG5cdCd1cC1jaXJjbGVkJ1x0XHQnXFxlODcyJyxcblx0J2Rvd24tb3BlbidcdFx0XHQnXFxlODczJyxcblx0J2xlZnQtb3BlbidcdFx0XHQnXFxlODc1Jyxcblx0J3JpZ2h0LW9wZW4nXHRcdCdcXGU4NzUnLFxuXHQndXAtb3BlbidcdFx0XHQnXFxlODc2Jyxcblx0J2Rvd24tb3Blbi1taW5pJ1x0J1xcZTg3NycsXG5cdCdsZWZ0LW9wZW4tbWluaSdcdCdcXGU4NzgnLFxuXHQncmlnaHQtb3Blbi1taW5pJ1x0J1xcZTg3OScsXG5cdCd1cC1vcGVuLW1pbmknXHRcdCdcXGU4N2EnLFxuXHQnZG93bi1vcGVuLWJpZydcdFx0J1xcZTg3YicsXG5cdCdsZWZ0LW9wZW4tYmlnJ1x0XHQnXFxlODdjJyxcblx0J3JpZ2h0LW9wZW4tYmlnJ1x0J1xcZTg3ZCcsXG5cdCd1cC1vcGVuLWJpZydcdFx0J1xcZTg3ZScsXG5cdCdwcm9ncmVzcy0wJ1x0XHQnXFxlODlmJyxcblx0J3Byb2dyZXNzLTEnXHRcdCdcXGU4YTAnLFxuXHQncHJvZ3Jlc3MtMidcdFx0J1xcZThhMScsXG5cdCdwcm9ncmVzcy0zJ1x0XHQnXFxlOGEyJyxcblx0J2JhY2staW4tdGltZSdcdFx0J1xcZThhYScsXG5cdCduZXR3b3JrJ1x0XHRcdCdcXGU4YWQnLFxuXHQnaW5ib3gnXHRcdFx0XHQnXFxlOGFmJyxcblx0J2luc3RhbGwnXHRcdFx0J1xcZThiMCcsXG5cdCdsaWZlYnVveSdcdFx0XHQnXFxlOGI5Jyxcblx0J21vdXNlJ1x0XHRcdFx0J1xcZThiYScsXG5cdCdkb3QnXHRcdFx0XHQnXFxlOGJkJyxcblx0J2RvdC0yJ1x0XHRcdFx0J1xcZThiZScsXG5cdCdkb3QtMydcdFx0XHRcdCdcXGU4YmYnLFxuXHQnc3VpdGNhc2UnXHRcdFx0J1xcZThiYycsXG5cdCdmbG93LWNhc2NhZGUnXHRcdCdcXGU4ZDgnLFxuXHQnZmxvdy1icmFuY2gnXHRcdCdcXGU4ZDknLFxuXHQnZmxvdy10cmVlJ1x0XHRcdCdcXGU4ZGEnLFxuXHQnZmxvdy1saW5lJ1x0XHRcdCdcXGU4ZGInLFxuXHQnZmxvdy1wYXJhbGxlbCdcdFx0J1xcZThkYycsXG5cdCdicnVzaCdcdFx0XHRcdCdcXGU4YzAnLFxuXHQncGFwZXItcGxhbmUnXHRcdCdcXGU4YjcnLFxuXHQnbWFnbmV0J1x0XHRcdCdcXGU4YzEnLFxuXHQnZ2F1Z2UnXHRcdFx0XHQnXFxlOGRlJyxcblx0J3RyYWZmaWMtY29uZSdcdFx0J1xcZThkZicsXG5cdCdjYydcdFx0XHRcdCdcXGU4ZTAnLFxuXHQnY2MtYnknXHRcdFx0XHQnXFxlOGUxJyxcblx0J2NjLW5jJ1x0XHRcdFx0J1xcZThlMicsXG5cdCdjYy1uYy1ldSdcdFx0XHQnXFxlOGUzJyxcblx0J2NjLW5jLWpwJ1x0XHRcdCdcXGU4ZTQnLFxuXHQnY2Mtc2EnXHRcdFx0XHQnXFxlOGU1Jyxcblx0J2NjLW5kJ1x0XHRcdFx0J1xcZThlNicsXG5cdCdjYy1wZCdcdFx0XHRcdCdcXGU4ZTcnLFxuXHQnY2MtemVybydcdFx0XHQnXFxlOGU4Jyxcblx0J2NjLXNoYXJlJ1x0XHRcdCdcXGU4ZTknLFxuXHQnY2MtcmVtaXgnXHRcdFx0J1xcZThlYScsXG5cdCdncGx1cy1zcXVhcmVkJ1x0XHQnXFxlOTIwJyxcblx0J2dwbHVzJ1x0XHRcdFx0J1xcZTkyMScsXG5cdCdhbmdsZS1kb3VibGUtbGVmdCdcdCdcXGU5MjcnLFxuXHQnYW5nbGUtZG91YmxlLXJpZ2h0JydcXGU5MjgnLFxuXHQnYW5nbGUtZG91YmxlLXVwJ1x0J1xcZTkyOScsXG5cdCdhbmdsZS1kb3VibGUtZG93bidcdCdcXGU5MmEnLFxuXHQnYW5nbGUtY2lyY2xlZC1sZWZ0JydcXGU5MmInLFxuXHQnYW5nbGUtY2lyY2xlZC1yaWdodCcnXFxlOTJjJyxcblx0J2FuZ2xlLWNpcmNsZWQtdXAnXHQnXFxlOTJkJyxcblx0J2FuZ2xlLWNpcmNsZWQtZG93bicnXFxlOTJlJyxcblx0J2h0bWw1J1x0XHRcdFx0J1xcZTkyNCcsXG5cdCdjc3MzJ1x0XHRcdFx0J1xcZTkyMicsXG5cdCd5b3V0dWJlLXNxdWFyZWQnXHQnXFxlOTFkJyxcblx0J3lvdXR1YmUnXHRcdFx0J1xcZTkxYycsXG5cdCdmbGlja3Itc3F1YXJlZCdcdCdcXGU5MjYnLFxuXHQnYml0YnVja2V0LXNxdWFyZWQnXHQnXFxlOTIzJyxcblx0J2dpdGh1YidcdFx0XHQnXFxlOGViJyxcblx0J2dpdGh1Yi1jaXJjbGVkJ1x0J1xcZThlYycsXG5cdCdmbGlja3InXHRcdFx0J1xcZThlZCcsXG5cdCd0d2l0dGVyLXNxdWFyZWQnXHQnXFxlOTFlJyxcblx0J2ZsaWNrci1jaXJjbGVkJ1x0J1xcZThlZScsXG5cdCd2aW1lbydcdFx0XHRcdCdcXGU4ZWYnLFxuXHQndmltZW8tY2lyY2xlZCdcdFx0J1xcZThmMCcsXG5cdCd0d2l0dGVyJ1x0XHRcdCdcXGU4ZjEnLFxuXHQndHdpdHRlci1jaXJjbGVkJ1x0J1xcZThmMicsXG5cdCdmYWNlYm9vaydcdFx0XHQnXFxlOGYzJyxcblx0J2ZhY2Vib29rLWNpcmNsZWQnXHQnXFxlOGY0Jyxcblx0J2ZhY2Vib29rLXNxdWFyZWQnXHQnXFxlOGY1Jyxcblx0J2xpbmtlZGluLXNxdWFyZWQnXHQnXFxlOTFmJyxcblx0J2dwbHVzLWNpcmNsZWQnXHRcdCdcXGU4ZjcnLFxuXHQncGludGVyZXN0J1x0XHRcdCdcXGU4ZjgnLFxuXHQncGludGVyZXN0LWNpcmNsZWQnXHQnXFxlOGY5Jyxcblx0J2ljb24tdHVtYmxyJ1x0XHQnXFxlOGZhJyxcblx0J3R1bWJsci1jaXJjbGVkJ1x0J1xcZThmYicsXG5cdCdsaW5rZWRpbidcdFx0XHQnXFxlOGZjJyxcblx0J2xpbmtlZGluLWNpcmNsZWQnXHQnXFxlOGZkJyxcblx0J2RyaWJiYmxlJ1x0XHRcdCdcXGU4ZmUnLFxuXHQnZHJpYmJibGUtY2lyY2xlZCdcdCdcXGU4ZmYnLFxuXHQnc3R1bWJsZXVwb24nXHRcdCdcXGU5MDAnLFxuXHQnc3R1bWJsZXVwb24tY2lyY2xlZCcnXFxlOTAxJyxcblx0J2xhc3RmbSdcdFx0XHQnXFxlOTAyJyxcblx0J2xhc3RmbS1jaXJjbGVkJ1x0J1xcZTkwMycsXG5cdCdyZGlvJ1x0XHRcdFx0J1xcZTkwNCcsXG5cdCdyZGlvLWNpcmNsZWQnXHRcdCdcXGU5MDUnLFxuXHQnc3BvdGlmeSdcdFx0XHQnXFxlOTA2Jyxcblx0J3Nwb3RpZnktY2lyY2xlZCdcdCdcXGU5MDcnLFxuXHQncXEnXHRcdFx0XHQnXFxlOTA4Jyxcblx0J2luc3RhZ3JhbSdcdFx0XHQnXFxlOTA5Jyxcblx0J2Ryb3Bib3gnXHRcdFx0J1xcZTkwYScsXG5cdCdldmVybm90ZSdcdFx0XHQnXFxlOTBiJyxcblx0J2ZsYXR0cidcdFx0XHQnXFxlOTBjJyxcblx0J3NreXBlJ1x0XHRcdFx0J1xcZTkwZCcsXG5cdCdza3lwZS1jaXJjbGVkJ1x0XHQnXFxlOTBlJyxcblx0J3JlbnJlbidcdFx0XHQnXFxlOTBmJyxcblx0J3NpbmEtd2VpYm8nXHRcdCdcXGU5MTAnLFxuXHQncGF5cGFsJ1x0XHRcdCdcXGU5MTEnLFxuXHQncGljYXNhJ1x0XHRcdCdcXGU5MTInLFxuXHQnc291bmRjbG91ZCdcdFx0J1xcZTkxMycsXG5cdCdtaXhpJ1x0XHRcdFx0J1xcZTkxNCcsXG5cdCdiZWhhbmNlJ1x0XHRcdCdcXGU5MTUnLFxuXHQnZ29vZ2xlLWNpcmNsZXMnXHQnXFxlOTE2Jyxcblx0J3Zrb250YWt0ZSdcdFx0XHQnXFxlOTE3Jyxcblx0J3NtYXNoaW5nJ1x0XHRcdCdcXGU5MTgnLFxuXHQnZGItc2hhcGUnXHRcdFx0J1xcZTkxYScsXG5cdCdzd2VkZW4nXHRcdFx0J1xcZTkxOScsXG5cdCdsb2dvLWRiJ1x0XHRcdCdcXGU5MWInLFxuXHQncGljdHVyZSdcdFx0XHQnXFxlODBlJyxcblx0J2dsb2JlJ1x0XHRcdFx0J1xcZThiMScsXG5cdCdsZWFmJ1x0XHRcdFx0J1xcZThiOCcsXG5cdCdncmFkdWF0aW9uLWNhcCdcdCdcXGU4YzknLFxuXHQnbWljJ1x0XHRcdFx0J1xcZTg1ZScsXG5cdCdwYWxldHRlJ1x0XHRcdCdcXGU4YTQnLFxuXHQndGlja2V0J1x0XHRcdCdcXGU4Y2InLFxuXHQndmlkZW8nXHRcdFx0XHQnXFxlODBkJyxcblx0J3RhcmdldCdcdFx0XHQnXFxlOGEzJyxcblx0J211c2ljJ1x0XHRcdFx0J1xcZTgwMicsXG5cdCd0cm9waHknXHRcdFx0J1xcZThhOCcsXG5cdCd0aHVtYnMtdXAnXHRcdFx0J1xcZTgyYicsXG5cdCd0aHVtYnMtZG93bidcdFx0J1xcZTgyYycsXG5cdCdiYWcnXHRcdFx0XHQnXFxlODVhJyxcblx0J3VzZXInXHRcdFx0XHQnXFxlODBhJyxcblx0J3VzZXJzJ1x0XHRcdFx0J1xcZTgwYicsXG5cdCdsYW1wJ1x0XHRcdFx0J1xcZTg2NCcsXG5cdCdhbGVydCdcdFx0XHRcdCdcXGU4M2YnLFxuXHQnd2F0ZXInXHRcdFx0XHQnXFxlOGNjJyxcblx0J2Ryb3BsZXQnXHRcdFx0J1xcZThjZCcsXG5cdCdjcmVkaXQtY2FyZCdcdFx0J1xcZThjZicsXG5cdCdtb25pdG9yJ1x0XHRcdCdcXGU4YWInLFxuXHQnYnJpZWZjYXNlJ1x0XHRcdCdcXGU4YmInLFxuXHQnZmxvcHB5J1x0XHRcdCdcXGU4ZDAnLFxuXHQnY2QnXHRcdFx0XHQnXFxlOGFlJyxcblx0J2ZvbGRlcidcdFx0XHQnXFxlODUwJyxcblx0J2RvYy10ZXh0J1x0XHRcdCdcXGU4NGInLFxuXHQnY2FsZW5kYXInXHRcdFx0J1xcZTg1YicsXG5cdCdjaGFydC1saW5lJ1x0XHQnXFxlOGM1Jyxcblx0J2NoYXJ0LWJhcidcdFx0XHQnXFxlOGM2Jyxcblx0J2NsaXBib2FyZCdcdFx0XHQnXFxlOGQxJyxcblx0J2F0dGFjaCdcdFx0XHQnXFxlODIzJyxcblx0J2Jvb2ttYXJrcydcdFx0XHQnXFxlODI5Jyxcblx0J2Jvb2snXHRcdFx0XHQnXFxlODRmJyxcblx0J2Jvb2stb3BlbidcdFx0XHQnXFxlODRlJyxcblx0J3Bob25lJ1x0XHRcdFx0J1xcZTg1NCcsXG5cdCdtZWdhcGhvbmUnXHRcdFx0J1xcZThkMicsXG5cdCd1cGxvYWQnXHRcdFx0J1xcZTgyZScsXG5cdCdkb3dubG9hZCdcdFx0XHQnXFxlODJkJyxcblx0J2JveCdcdFx0XHRcdCdcXGU4NTInLFxuXHQnbmV3c3BhcGVyJ1x0XHRcdCdcXGU4NGQnLFxuXHQnbW9iaWxlJ1x0XHRcdCdcXGU4YWMnLFxuXHQnc2lnbmFsJ1x0XHRcdCdcXGU4YTcnLFxuXHQnY2FtZXJhJ1x0XHRcdCdcXGU4MGYnLFxuXHQnc2h1ZmZsZSdcdFx0XHQnXFxlODk0Jyxcblx0J2xvb3AnXHRcdFx0XHQnXFxlODk1Jyxcblx0J2Fycm93cy1jY3cnXHRcdCdcXGU4OTEnLFxuXHQnbGlnaHQtZG93bidcdFx0J1xcZTg2NScsXG5cdCdsaWdodC11cCdcdFx0XHQnXFxlODY2Jyxcblx0J211dGUnXHRcdFx0XHQnXFxlODVmJyxcblx0J3NvdW5kJ1x0XHRcdFx0J1xcZTg2MCcsXG5cdCdiYXR0ZXJ5J1x0XHRcdCdcXGU4YTknLFxuXHQnc2VhcmNoJ1x0XHRcdCdcXGU4MDMnLFxuXHQna2V5J1x0XHRcdFx0J1xcZThkNycsXG5cdCdsb2NrJ1x0XHRcdFx0J1xcZTgyNCcsXG5cdCdsb2NrLW9wZW4nXHRcdFx0J1xcZTgyNScsXG5cdCdiZWxsJ1x0XHRcdFx0J1xcZTgzZCcsXG5cdCdib29rbWFyaydcdFx0XHQnXFxlODI4Jyxcblx0J2xpbmsnXHRcdFx0XHQnXFxlODIyJyxcblx0J2JhY2snXHRcdFx0XHQnXFxlODIwJyxcblx0J2ZsYXNobGlnaHQnXHRcdCdcXGU4MDQnLFxuXHQnY2hhcnQtYXJlYSdcdFx0J1xcZThjNycsXG5cdCdjbG9jaydcdFx0XHRcdCdcXGU4NjInLFxuXHQncm9ja2V0J1x0XHRcdCdcXGU4ZGQnLFxuXHQnYmxvY2snXHRcdFx0XHQnXFxlODY4J1xuKTtcblxuLy8gRnVuY3Rpb24gdG8gbWF0Y2ggbmFtZSB0byB1bmljb2RlIGNoYXJhY3RlclxuQGZ1bmN0aW9uIG1hdGNoKCRoYXlzdGFjaywgJG5lZWRsZSkge1xuICAgIEBlYWNoICRpdGVtIGluICRoYXlzdGFjayB7XG4gICAgICAgICRpbmRleDogaW5kZXgoJGl0ZW0sICRuZWVkbGUpO1xuICAgICAgICBAaWYgJGluZGV4IHsgXG4gICAgICAgICAgICAkcmV0dXJuOiBpZigkaW5kZXggPT0gMSwgMiwgJGluZGV4KTtcbiAgICAgICAgICAgIEByZXR1cm4gbnRoKCRpdGVtLCAkcmV0dXJuKTsgXG4gICAgICAgIH1cbiAgICB9XG4gICAgQHJldHVybiBmYWxzZTtcbn1cblxuLypcbiogXHRNYWluIEljb24gbWl4aW5cbipcbiogXHRCYXNlZCBvbiBodHRwOi8vamF5ZGVuc2VyaWMuY29tL2Jsb2cvZnVuLXdpdGgtc2Fzcy1hbmQtZm9udC1pY29ucyBcbipcbipcdGUuZy4gXG4qXHRAaW5jbHVkZSBpY29uKCdwaG9uZScsICdiZWZvcmUnLCB0cnVlLCAkbGFyZ2UsICR0b3A6LTNweCwgJG1hcmdpbjo1cHgpO1xuKiBcdEBpbmNsdWRlIGljb24oJ3Bob25lJywgJ2JlZm9yZScsIHRydWUsICRsYXJnZSwgJHRvcDotM3B4LCAkbWFyZ2luOjVweCkge1xuKlx0XHRjb2xvcjogYmxhY2s7XG4qIFx0fVxuKi9cbkBtaXhpbiBpY29uKCRpY29uOiBmYWxzZSwgJHBvc2l0aW9uOiAnYmVmb3JlJywgJHN0eWxlczogdHJ1ZSwgJHNpemU6IGF1dG8sICRtYXJnaW46IGF1dG8sICRjb2xvcjogYXV0bywgJHRvcDogYXV0bywgJHNoYWRvdzogbm9uZSkge1xuICAgIC8vIEVpdGhlciBhIDpiZWZvcmUgb3IgOmFmdGVyIHBzZXVkby1lbGVtZW50LCBkZWZhdWx0aW5nIHRvIDpiZWZvcmVcbiAgICAmOiN7JHBvc2l0aW9ufSB7XG4gICAgXHRcbiAgICBcdFxuICAgICAgICBAaWYgJGljb24ge1xuICAgICAgICAgICAgIC8vIEljb24gaGFzIGJlZW4gc3BlY2lmaWVkXG4gICAgICAgICAgICBjb250ZW50OiBtYXRjaCgkaWNvbnMsICRpY29uKTtcbiAgICAgICAgfVxuICAgICAgICBcblx0XHRAaWYgJHN0eWxlcyB7XG5cdFx0XHQvLyBTdXBwb3J0aXZlIGljb24gc3R5bGVzIGhhdmUgYmVlbiBzcGVjaWZpZWRcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdHdpZHRoOiBhdXRvO1xuXHRcdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdFx0Ly92ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHRcdFx0dGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eSAhaW1wb3J0YW50O1xuXHRcdFx0LXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQgIWltcG9ydGFudDtcblx0XHRcdC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGUgIWltcG9ydGFudDtcblx0XHRcdHNwZWFrOiBub25lO1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgICBmb250OiB7XG4gICAgICAgICAgICAgICAgc3R5bGU6IG5vcm1hbDtcbiAgICAgICAgICAgICAgICB2YXJpYW50OiBub3JtYWw7XG4gICAgICAgICAgICAgICAgd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgICAgICAgZmFtaWx5OiBcImVudHlwb1wiO1xuICAgICAgICAgICAgICAgIHNpemU6IDE2cHg7XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgQGlmICRzaXplICE9IGF1dG8ge1xuXHRcdFx0XHRcdHNpemU6ICRzaXplO1xuXHRcdFx0XHR9XG5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgQGlmICRtYXJnaW4gIT0gYXV0byB7XG4gICAgICAgICAgICBcdEBpZiAkcG9zaXRpb24gPT0gJ2JlZm9yZScge1xuXHQgICAgICAgICAgICBcdG1hcmdpbi1yaWdodDogJG1hcmdpbjtcbiAgICAgICAgICAgIFx0fSBAZWxzZSBpZiAkcG9zaXRpb24gPT0gJ2FmdGVyJ3tcblx0ICAgICAgICAgICAgXHRtYXJnaW4tbGVmdDogJG1hcmdpbjtcbiAgICAgICAgICAgIFx0fVxuXHRcdFx0ICAgXG5cdFx0ICAgIH1cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgQGlmICR0b3AgIT0gYXV0byB7XG5cdFx0ICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdCAgICAgIHRvcDogJHRvcDtcblx0XHQgICAgfVxuXHRcdCAgICBcblx0XHQgICAgQGlmICRjb2xvciAhPSBhdXRvIHtcblx0XHQgICAgICBjb2xvcjogJGNvbG9yO1xuXHRcdCAgICB9XG5cdFx0ICAgIFxuXHRcdCAgICBAaWYgJHNoYWRvdyAhPSBub25lIHtcblx0XHQgICAgICB0ZXh0LXNoYWRvdzogJHNoYWRvdztcblx0XHQgICAgfVxuICAgICAgICAgICAgXG4gICAgICAgICAgICBcbiAgICAgICAgfVxuICAgICAgICAvLyBJbmNsdWRlIGFueSBleHRyYSBydWxlcyBzdXBwbGllZCBmb3IgdGhlIHBzZXVkby1lbGVtZW50XG4gICAgICAgIEBjb250ZW50O1xuICAgICBcbiAgICB9XG59IiwiLypcbiAqIFNvY2lhbCBOZXR3b3JrIENvbG91cnNcbiAqXG4gKiBodHRwOi8vZGVzaWducGllY2VzLmNvbS8yMDEyLzEyL3NvY2lhbC1tZWRpYS1jb2xvdXJzLWhleC1hbmQtcmdiL1xuICovXG4kdHdpdHRlcjogICAgIzAwYWNlZDtcbiRmYWNlYm9vazogICAjM2I1OTk4O1xuJGxpbmtlZGluOiAgICMwMDdiYjY7XG4kZ29vZ2xlOiAgICAgI2RkNGIzOTtcbiR5b3V0dWJlOiAgICAjYmIwMDAwO1xuJHBpbnRlcmVzdDogICNjYjIwMjc7XG4kdHVtYmxyOiAgICAgIzMyNTA2ZDtcbiRmbGlja3I6ICAgICAjZmYwMDg0O1xuJGluc3RhZ3JhbTogICM1MTdmYTQ7XG4kdmltZW86ICAgICAgI2FhZDQ1MDtcbiRmb3Vyc3F1YXJlOiAjMDA3MmIxO1xuXG4vKlxuICogQnJhbmQgQ29sb3Vyc1xuICovXG5cbi8vIE1haW4gY29sb3Vyc1xuJGNoYXJjb2w6ICMzQjNEM0I7XG4kb3JhbmdlOiAjQ0I0NzNDO1xuJHdoaXRlOiAgICAjZmZmO1xuXG4vLyBTdXBwb3J0aW5nIGNvbG91cnNcbiRncmV5OiAjNzI2RTZCO1xuLy9PcmFuZ2UgaXMgZnJvbSBQYW50b25lIDE3MyBub3QgcmVzZW5lIGNvbG91clxuJG9yYW5nZTogcmdiKDIwNywgNjksIDMyKTtcbiRibHVlOiAjMzA4RkExO1xuJHR1cnF1b2lzZTogIzAwN0I3NztcbiRncmVlbjogIzJGNzUzMztcbiR5ZWxsb3c6ICNGRUQ4MDA7XG4kcGluazogI0M5MTY0MTtcblxuJGxpZ2h0LWdyZXk6ICBsaWdodGVuKCRncmV5LCA1NCUpO1xuJG1lZGl1bS1ncmV5OiBsaWdodGVuKCRncmV5LCA0NSUpO1xuJGRhcmstZ3JleTogICBkYXJrZW4oJGdyZXksIDEwJSk7XG5cbi8vIEdlbmVyYWwgY29sb3Vyc1xuJGhlYWRlci1iZzogICAgICAgICAkd2hpdGU7XG4kYm9keS1iZzogICAgICAgICAgICR3aGl0ZTtcbiRmb290ZXItd2lkZ2V0cy1iZzogJG9yYW5nZTtcbiRmb290ZXItYmc6ICAgICAgICAgJG9yYW5nZTtcbiRsaW5rLWNvbG91cjogICAgICAgJGJsdWU7XG4kaGVhZGluZy1jb2xvdXI6IFx0XHQkYmx1ZTtcblxuLy8gUHJpbWFyeSBOYXZcbiRwcmltYXJ5LW5hdi1iZzogXHRcdFx0JHdoaXRlO1xuJHByaW1hcnktbmF2LXRleHQ6IFx0XHRcdCRjaGFyY29sO1xuJHByaW1hcnktbmF2LXRleHQtaG92ZXI6IFx0ZGFya2VuKCRjaGFyY29sLCAxMCUpO1xuXG4vLyBUZXh0IGNvbG91cnNcbiRmb290ZXItdGV4dDogI2ZmZjtcbiRmb290ZXItbGluazogbGlnaHRlbigkb3JhbmdlLCAzNSUpO1xuXG4vKlxuKiBCYWNrZ3JvdW5kc1xuKi9cbi5iZy1saWdodCB7XG5cdGJhY2tncm91bmQ6ICRsaWdodC1ncmV5O1xufVxuXG4uYmctbWVkaXVtIHtcblx0YmFja2dyb3VuZDogJG1lZGl1bS1ncmV5O1xufVxuXG4uYmctZGFyayB7XG5cdGJhY2tncm91bmQ6ICRkYXJrLWdyZXk7XG59XG5cbi5iZy1ibHVlIHtcblx0LmZsLWNvbC1jb250ZW50IHtcblx0XHRiYWNrZ3JvdW5kOiAkYmx1ZTtcblx0fVxufVxuLmJnLXR1cnF1b2lzZSB7XG5cdC5mbC1jb2wtY29udGVudCB7XG5cdFx0YmFja2dyb3VuZDogJHR1cnF1b2lzZTtcblx0fVxufVxuLmJnLWdyZWVuIHtcblx0LmZsLWNvbC1jb250ZW50IHtcblx0XHRiYWNrZ3JvdW5kOiAkZ3JlZW47XG5cdH1cbn1cbi5iZy1vcmFuZ2Uge1xuXHQuZmwtY29sLWNvbnRlbnQge1xuXHRcdGJhY2tncm91bmQ6ICRvcmFuZ2U7XG5cdH1cbn1cbi5iZy1waW5rIHtcblx0LmZsLWNvbC1jb250ZW50IHtcblx0XHRiYWNrZ3JvdW5kOiAkcGluaztcblx0fVxufVxuXG4uYmcteWVsbG93IHtcblx0LmZsLWNvbC1jb250ZW50IHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkeWVsbG93O1xuXHR9XG59XG4uYmctY2hhcmNvbCB7XG5cdC5mbC1jb2wtY29udGVudCB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJGNoYXJjb2w7XG5cdH1cbn1cblxuLmFjY2VudHMtbWFyayAuZmwtY29sLWNvbnRlbnQge1xuXHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaW1hZ2VzL2FjY2VudHMtbWFyay5wbmcpO1xuXHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuXHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNTBweCAtMTMwcHg7XG59XG5cbi8qXG4gKiBCdXR0b25zXG4gKi9cbi5idXR0b24ge1xuXHQmLnByaW1hcnkge1xuXHRcdGJhY2tncm91bmQ6ICRkYXJrLWdyZXk7XG5cdFx0Y29sb3I6ICNmZmY7XG5cdH1cblxuXHQmLnNlY29uZGFyeSB7XG5cdCBcdGJhY2tncm91bmQ6ICRsaWdodC1ncmV5O1xuXHQgXHRjb2xvcjogJGRhcmstZ3JleTtcblx0fVxuXG5cdCYub3V0bGluZSB7XG5cdFx0Ym9yZGVyOiAxcHggc29saWQgJGRhcmstZ3JleTtcblx0XHRjb2xvcjogJGRhcmstZ3JleTtcblx0fVxufVxuIiwiQGltcG9ydCBcIi4uL2NvbG91cnNcIjtcblxuLnRvZ2dsZS1wbHVzLWJ1dHRvbiB7XG4gICBAaW5jbHVkZSBpY29uKCdwbHVzLWNpcmNsZWQnLCAnYWZ0ZXInLCB0cnVlLCAxLjNlbSwgJHRvcDowLCAkbWFyZ2luOjVweCkge1xuICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgY29sb3I6ICRibHVlO1xuICAgICAgbWFyZ2luLXRvcDogLTEuMWVtO1xuICAgfVxufVxuXG4udG9nZ2xlLXBsdXMtYnV0dG9uLWV4cGFuZGVkIHtcbiAgIEBpbmNsdWRlIGljb24oJ3BsdXMtY2lyY2xlZCcsICdhZnRlcicsIHRydWUsIDEuM2VtLCAkdG9wOjAsICRtYXJnaW46NXB4KSB7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICB9XG59XG4iLCIvKiAjIyBUeXBvZ3JhcGhpY2FsIEVsZW1lbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuYm9keSB7XG5cdGJhY2tncm91bmQtY29sb3I6ICRib2R5LWJnO1xuXHRjb2xvcjogJGNoYXJjb2w7XG5cdGZvbnQtZmFtaWx5OiAnU291cmNlIFNhbnMnLCBzYW5zLXNlcmlmO1xuXHRmb250LXNpemU6ICRub3JtO1xuXHRmb250LXdlaWdodDogNDAwO1xuXHRsaW5lLWhlaWdodDogMS42MjU7XG5cdG1hcmdpbjogMDtcblxuXHRAaW5jbHVkZSBicmVha3BvaW50KCRicm90aGVyLWJlYXIpIHtcblx0XHRmb250LXNpemU6ICRub3JtKjAuOTU7XG5cdH1cbn1cblxuYSxcbmJ1dHRvbixcbmlucHV0OmZvY3VzLFxuaW5wdXRbdHlwZT1cImJ1dHRvblwiXSxcbmlucHV0W3R5cGU9XCJyZXNldFwiXSxcbmlucHV0W3R5cGU9XCJzdWJtaXRcIl0sXG50ZXh0YXJlYTpmb2N1cyxcbi5idXR0b24sXG4uZ2FsbGVyeSBpbWcge1xuXHQtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjFzIGVhc2UtaW4tb3V0O1xuXHQtbW96LXRyYW5zaXRpb246ICAgIGFsbCAwLjFzIGVhc2UtaW4tb3V0O1xuXHQtbXMtdHJhbnNpdGlvbjogICAgIGFsbCAwLjFzIGVhc2UtaW4tb3V0O1xuXHQtby10cmFuc2l0aW9uOiAgICAgIGFsbCAwLjFzIGVhc2UtaW4tb3V0O1xuXHR0cmFuc2l0aW9uOiAgICAgICAgIGFsbCAwLjFzIGVhc2UtaW4tb3V0O1xufVxuXG46Oi1tb3otc2VsZWN0aW9uIHtcblx0YmFja2dyb3VuZC1jb2xvcjogIzMzMztcblx0Y29sb3I6ICNmZmY7XG59XG5cbjo6c2VsZWN0aW9uIHtcblx0YmFja2dyb3VuZC1jb2xvcjogIzMzMztcblx0Y29sb3I6ICNmZmY7XG59XG5cbmEge1xuXHRjb2xvcjogJGxpbmstY29sb3VyO1xuXHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbmE6aG92ZXIge1xuXHRjb2xvcjogIzMzMztcbn1cblxucCB7XG5cdG1hcmdpbjogMCAwIDI4cHg7XG5cdHBhZGRpbmc6IDA7XG59XG5cbm9sLFxudWwge1xuXHRtYXJnaW46IDA7XG5cdHBhZGRpbmc6IDA7XG59XG5cbmxpIHtcblx0bGlzdC1zdHlsZS10eXBlOiBub25lO1xufVxuXG5iLFxuc3Ryb25nIHtcblx0Zm9udC13ZWlnaHQ6IDcwMDtcbn1cblxuYmxvY2txdW90ZSxcbmNpdGUsXG5lbSxcbmkge1xuXHRmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbmJsb2NrcXVvdGUge1xuXHRtYXJnaW46IDQwcHg7XG59XG5cbmJsb2NrcXVvdGU6OmJlZm9yZSB7XG5cdGNvbnRlbnQ6IFwiXFwyMDFDXCI7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRmb250LXNpemU6IDMwcHg7XG5cdGhlaWdodDogMDtcblx0bGVmdDogLTIwcHg7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0dG9wOiAtMTBweDtcbn1cblxuXG4vKiAjIyBIZWFkaW5nc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi5oZWFkaW5nLXN0eWxlIHtcblx0Y29sb3I6ICRoZWFkaW5nLWNvbG91cjtcblx0Zm9udC1mYW1pbHk6ICdTb3VyY2UgU2FucycsIHNhbnMtc2VyaWY7XG5cdC8vZm9udC1mYW1pbHk6IExvcmEsIHNhbnMtc2VyaWY7XG5cdGZvbnQtd2VpZ2h0OiA0MDA7XG5cdGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIG1hcmdpbjogMCAwIDIwcHg7XG59XG5cbmgxLFxuaDIsXG5oMyxcbmg0LFxuaDUsXG5oNiB7XG5cdEBleHRlbmQgLmhlYWRpbmctc3R5bGU7XG59XG5cbmgxIHtcblx0Zm9udC1zaXplOiAkbGFyZ2VyO1xuXHRjb2xvcjogJGNoYXJjb2w7XG5cblx0QGluY2x1ZGUgYnJlYWtwb2ludCgkYnJvdGhlci1iZWFyKSB7XG5cdFx0Zm9udC1zaXplOiAkbGFyZ2U7XG5cdH1cbn1cblxuaDIge1xuXHRmb250LXNpemU6ICRsYXJnZXI7XG5cblx0QGluY2x1ZGUgYnJlYWtwb2ludCgkYnJvdGhlci1iZWFyKSB7XG5cdFx0Zm9udC1zaXplOiAkbWVkO1xuXHR9XG59XG5cbmgzIHtcblx0Zm9udC1zaXplOiAkbGFyZ2U7XG5cblx0QGluY2x1ZGUgYnJlYWtwb2ludCgkYnJvdGhlci1iZWFyKSB7XG5cdFx0Zm9udC1zaXplOiAkbWVkO1xuXHR9XG59XG5cbmg0IHtcblx0Zm9udC1zaXplOiAkbWVkO1xuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQoJGJyb3RoZXItYmVhcikge1xuXHRcdGZvbnQtc2l6ZTogJG5vcm07XG5cdH1cbn1cblxuaDUge1xuXHRmb250LXNpemU6ICRub3JtO1xufVxuXG5oNiB7XG5cdGZvbnQtc2l6ZTogJG5vcm07XG59XG5cbkBpbmNsdWRlIGJyZWFrcG9pbnQoJGJyb3RoZXItYmVhcikge1xuXHRoMSB7XG5cdFx0Zm9udC1zaXplOiAkbGFyZ2VyO1xuXHR9XG5cblx0aDIge1xuXHRcdGZvbnQtc2l6ZTogJGxhcmdlO1xuXHR9XG5cblx0aDMge1xuXHRcdGZvbnQtc2l6ZTogJG1lZDtcblx0fVxuXG5cdGg0IHtcblx0XHRmb250LXNpemU6ICRub3JtO1xuXHR9XG5cblx0aDUge1xuXHRcdGZvbnQtc2l6ZTogJG5vcm0qMC45NTtcblx0fVxuXG5cdGg2IHtcblx0XHRmb250LXNpemU6ICRub3JtKjAuOTU7XG5cdH1cbn1cblxuLyogIyMgT2JqZWN0c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbmVtYmVkLFxuaWZyYW1lLFxuaW1nLFxub2JqZWN0LFxudmlkZW8sXG4ud3AtY2FwdGlvbiB7XG5cdG1heC13aWR0aDogMTAwJTtcbn1cblxuaW1nIHtcblx0aGVpZ2h0OiBhdXRvO1xufVxuXG4uZmVhdHVyZWQtY29udGVudCBpbWcsXG4uZ2FsbGVyeSBpbWcge1xuXHR3aWR0aDogYXV0bztcbn1cbiIsIkBmdW5jdGlvbiBtcy1yb3VuZC1weCgkUmVzdWx0KSB7XG4gIEBpZiB1bml0KCRSZXN1bHQpID09ICdweCcge1xuICAgIEByZXR1cm4gcm91bmQoJFJlc3VsdCk7XG4gIH1cbiAgQHJldHVybiAkUmVzdWx0O1xufSIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gRGVmYXVsdCBWYXJpYWJsZXNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJEJyZWFrcG9pbnQtU2V0dGluZ3M6IChcbiAgJ2RlZmF1bHQgbWVkaWEnOiBhbGwsXG4gICdkZWZhdWx0IGZlYXR1cmUnOiBtaW4td2lkdGgsXG4gICdkZWZhdWx0IHBhaXInOiB3aWR0aCxcblxuICAnZm9yY2UgYWxsIG1lZGlhIHR5cGUnOiBmYWxzZSxcbiAgJ3RvIGVtcyc6IGZhbHNlLFxuICAndHJhbnNmb3JtIHJlc29sdXRpb25zJzogdHJ1ZSxcblxuICAnbm8gcXVlcmllcyc6IGZhbHNlLFxuICAnbm8gcXVlcnkgZmFsbGJhY2tzJzogZmFsc2UsXG5cbiAgJ2Jhc2UgZm9udCBzaXplJzogMTZweCxcblxuICAnbGVnYWN5IHN5bnRheCc6IGZhbHNlXG4pO1xuXG4kYnJlYWtwb2ludDogKCkgIWRlZmF1bHQ7XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gSW1wb3J0c1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AaW1wb3J0IFwiYnJlYWtwb2ludC9zZXR0aW5nc1wiO1xuQGltcG9ydCAnYnJlYWtwb2ludC9jb250ZXh0JztcbkBpbXBvcnQgJ2JyZWFrcG9pbnQvaGVscGVycyc7XG5AaW1wb3J0ICdicmVha3BvaW50L3BhcnNlcnMnO1xuQGltcG9ydCAnYnJlYWtwb2ludC9uby1xdWVyeSc7XG5cbkBpbXBvcnQgJ2JyZWFrcG9pbnQvcmVzcG9uZC10byc7XG5cbkBpbXBvcnQgXCJicmVha3BvaW50L2xlZ2FjeS1zZXR0aW5nc1wiO1xuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEJyZWFrcG9pbnQgTWl4aW5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AbWl4aW4gYnJlYWtwb2ludCgkcXVlcnksICRuby1xdWVyeTogZmFsc2UpIHtcbiAgQGluY2x1ZGUgbGVnYWN5LXNldHRpbmdzLXdhcm5pbmc7XG5cbiAgLy8gUmVzZXQgY29udGV4dHNcbiAgQGluY2x1ZGUgcHJpdmF0ZS1icmVha3BvaW50LXJlc2V0LWNvbnRleHRzKCk7XG5cbiAgJGJyZWFrcG9pbnQ6IGJyZWFrcG9pbnQoJHF1ZXJ5LCBmYWxzZSk7XG5cbiAgJHF1ZXJ5LXN0cmluZzogbWFwLWdldCgkYnJlYWtwb2ludCwgJ3F1ZXJ5Jyk7XG4gICRxdWVyeS1mYWxsYmFjazogbWFwLWdldCgkYnJlYWtwb2ludCwgJ2ZhbGxiYWNrJyk7XG5cbiAgJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlcjogbWFwLWdldCgkYnJlYWtwb2ludCwgJ2NvbnRleHQgaG9sZGVyJykgIWdsb2JhbDtcbiAgJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudDogbWFwLWdldCgkYnJlYWtwb2ludCwgJ3F1ZXJ5IGNvdW50JykgIWdsb2JhbDtcblxuICAvLyBBbGxvdyBmb3IgYW4gYXMtbmVlZGVkIG92ZXJyaWRlIG9yIHVzYWdlIG9mIG5vIHF1ZXJ5IGZhbGxiYWNrLlxuICBAaWYgJG5vLXF1ZXJ5ICE9IGZhbHNlIHtcbiAgICAkcXVlcnktZmFsbGJhY2s6ICRuby1xdWVyeTtcbiAgfVxuXG4gIEBpZiAkcXVlcnktZmFsbGJhY2sgIT0gZmFsc2Uge1xuICAgICRjb250ZXh0LXNldHRlcjogcHJpdmF0ZS1icmVha3BvaW50LXNldC1jb250ZXh0KCduby1xdWVyeScsICRxdWVyeS1mYWxsYmFjayk7XG4gIH1cblxuICAvLyBQcmludCBPdXQgUXVlcnkgU3RyaW5nXG4gIEBpZiBub3QgYnJlYWtwb2ludC1nZXQoJ25vIHF1ZXJpZXMnKSB7XG4gICAgQG1lZGlhICN7JHF1ZXJ5LXN0cmluZ30ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG5cbiAgQGlmIGJyZWFrcG9pbnQtZ2V0KCdubyBxdWVyeSBmYWxsYmFja3MnKSAhPSBmYWxzZSBvciBicmVha3BvaW50LWdldCgnbm8gcXVlcmllcycpID09IHRydWUge1xuXG4gICAgJHR5cGU6IHR5cGUtb2YoYnJlYWtwb2ludC1nZXQoJ25vIHF1ZXJ5IGZhbGxiYWNrcycpKTtcbiAgICAkcHJpbnQ6IGZhbHNlO1xuXG4gICAgQGlmICgkdHlwZSA9PSAnYm9vbCcpIHtcbiAgICAgICRwcmludDogdHJ1ZTtcbiAgICB9XG4gICAgQGVsc2UgaWYgKCR0eXBlID09ICdzdHJpbmcnKSB7XG4gICAgICBAaWYgJHF1ZXJ5LWZhbGxiYWNrID09IGJyZWFrcG9pbnQtZ2V0KCdubyBxdWVyeSBmYWxsYmFja3MnKSB7XG4gICAgICAgICRwcmludDogdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2UgaWYgKCR0eXBlID09ICdsaXN0Jykge1xuICAgICAgQGVhY2ggJHdyYXBwZXIgaW4gYnJlYWtwb2ludC1nZXQoJ25vIHF1ZXJ5IGZhbGxiYWNrcycpIHtcbiAgICAgICAgQGlmICRxdWVyeS1mYWxsYmFjayA9PSAkd3JhcHBlciB7XG4gICAgICAgICAgJHByaW50OiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gV3JpdGUgRmFsbGJhY2tcbiAgICBAaWYgKCRxdWVyeS1mYWxsYmFjayAhPSBmYWxzZSkgYW5kICgkcHJpbnQgPT0gdHJ1ZSkge1xuICAgICAgJHR5cGUtZmFsbGJhY2s6IHR5cGUtb2YoJHF1ZXJ5LWZhbGxiYWNrKTtcblxuICAgICAgQGlmICgkdHlwZS1mYWxsYmFjayAhPSAnYm9vbCcpIHtcbiAgICAgICAgI3skcXVlcnktZmFsbGJhY2t9ICYge1xuICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIHByaXZhdGUtYnJlYWtwb2ludC1yZXNldC1jb250ZXh0cygpO1xufVxuXG5cbkBtaXhpbiBtcSgkcXVlcnksICRuby1xdWVyeTogZmFsc2UpIHtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkcXVlcnksICRuby1xdWVyeSkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG4iLCIvKiBSZXNwb25zaXZlIE1lbnVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4ucmVzcG9uc2l2ZS1tZW51LWljb24ge1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdGRpc3BsYXk6IG5vbmU7XG5cdG1hcmdpbi1ib3R0b206IC0xcHg7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLnJlc3BvbnNpdmUtbWVudS1pY29uOjpiZWZvcmUge1xuXHRjb250ZW50OiBcIlxcZjMzM1wiO1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdGZvbnQ6IG5vcm1hbCAyMHB4LzEgJ2Rhc2hpY29ucyc7XG5cdG1hcmdpbjogMCBhdXRvO1xuXHQvKnBhZGRpbmc6IDEwcHg7Ki9cblx0cGFkZGluZzogMTBweCA1cHggMTBweCAxMHB4O1xufVxuLm5hdi1wcmltYXJ5IC5yZXNwb25zaXZlLW1lbnUtaWNvbjo6YmVmb3JlIHtcblx0Y29sb3I6ICRjaGFyY29sO1xufVxuXG4ubWVudS10ZXh0IHtcblx0Y29sb3I6ICRjaGFyY29sO1xuXHRsaW5lLWhlaWdodDogMTtcblx0dmVydGljYWwtYWxpZ246IHRvcDtcblx0bWFyZ2luLXRvcDogMTFweDtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuIiwiLyogIyBTdHJ1Y3R1cmUgYW5kIExheW91dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vLyBQYWdlIGJ1aWxkZXIgUm93IG1hcmdpbnNcbiRyb3ctbWFyZ2luOiAkbGFyZ2U7XG4kY29sdW1uLW1hcmdpbjogJG5vcm07XG5cbiRlbnRyeS1zaWRlLW1hcmdpbjogJHJvdy1tYXJnaW47XG4kZW50cnktdG9wYm90dG9tLW1hcmdpbjogJG1lZDtcblxuLyogIyMgU2l0ZSBDb250YWluZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLnNpdGUtaW5uZXIsXG4ud3JhcCB7XG5cdG1hcmdpbjogMCBhdXRvO1xuXHRtYXgtd2lkdGg6IDEyMDBweDtcbn1cblxuLnNpdGUtaW5uZXIge1xuXHRjbGVhcjogYm90aDtcblx0cGFkZGluZy10b3A6IDQwcHg7XG59XG5cbi8qICMjIENvbHVtbiBXaWR0aHMgYW5kIFBvc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi8qICMjIyBXcmFwcGluZyBkaXYgZm9yIC5jb250ZW50IGFuZCAuc2lkZWJhci1wcmltYXJ5ICovXG5cbi5jb250ZW50LXNpZGViYXItc2lkZWJhciAuY29udGVudC1zaWRlYmFyLXdyYXAsXG4uc2lkZWJhci1jb250ZW50LXNpZGViYXIgLmNvbnRlbnQtc2lkZWJhci13cmFwLFxuLnNpZGViYXItc2lkZWJhci1jb250ZW50IC5jb250ZW50LXNpZGViYXItd3JhcCB7XG5cdC8vd2lkdGg6IDk4MHB4O1xuXHRAaW5jbHVkZSBzcGFuKDEwIG9mIDEyKTtcbn1cblxuLmNvbnRlbnQtc2lkZWJhci1zaWRlYmFyIC5jb250ZW50LXNpZGViYXItd3JhcCB7XG5cdEBpbmNsdWRlIGZpcnN0O1xufVxuXG4uc2lkZWJhci1jb250ZW50LXNpZGViYXIgLmNvbnRlbnQtc2lkZWJhci13cmFwLFxuLnNpZGViYXItc2lkZWJhci1jb250ZW50IC5jb250ZW50LXNpZGViYXItd3JhcCxcbi5zaWRlYmFyLWNvbnRlbnQgLmNvbnRlbnQtc2lkZWJhci13cmFwIHtcblx0QGluY2x1ZGUgbGFzdDtcbn1cblxuLyogIyMjIENvbnRlbnQgKi9cblxuLmNvbnRlbnQge1xuXHRAaW5jbHVkZSBzcGFuKDggb2YgMTIpO1xufVxuXG4uc2lkZWJhci1jb250ZW50IC5jb250ZW50LFxuLnNpZGViYXItc2lkZWJhci1jb250ZW50IC5jb250ZW50IHtcblx0QGluY2x1ZGUgbGFzdDtcbn1cblxuLmNvbnRlbnQtc2lkZWJhciAuY29udGVudCxcbi5jb250ZW50LXNpZGViYXItc2lkZWJhciAuY29udGVudCxcbi5zaWRlYmFyLWNvbnRlbnQtc2lkZWJhciAuY29udGVudCB7XG5cdEBpbmNsdWRlIGZpcnN0O1xufVxuXG4uY29udGVudC1zaWRlYmFyLXNpZGViYXIgLmNvbnRlbnQsXG4uc2lkZWJhci1jb250ZW50LXNpZGViYXIgLmNvbnRlbnQsXG4uc2lkZWJhci1zaWRlYmFyLWNvbnRlbnQgLmNvbnRlbnQge1xuXHQvL3dpZHRoOiA1ODBweDtcbn1cblxuLmZ1bGwtd2lkdGgtY29udGVudCAuY29udGVudCB7XG5cdHdpZHRoOiAxMDAlO1xufVxuXG4vKiAjIyMgUHJpbWFyeSBTaWRlYmFyICovXG5cbi5zaWRlYmFyLXByaW1hcnkge1xuXHRAaW5jbHVkZSBzcGFuKDQgb2YgMTIpO1xuXHRAaW5jbHVkZSBsYXN0O1xufVxuXG4uc2lkZWJhci1jb250ZW50IC5zaWRlYmFyLXByaW1hcnksXG4uc2lkZWJhci1zaWRlYmFyLWNvbnRlbnQgLnNpZGViYXItcHJpbWFyeSB7XG5cdEBpbmNsdWRlIGZpcnN0O1xuXHRmbG9hdDogbGVmdDtcbn1cblxuLyogIyMjIFNlY29uZGFyeSBTaWRlYmFyICovXG5cbi5zaWRlYmFyLXNlY29uZGFyeSB7XG5cdEBpbmNsdWRlIGZpcnN0O1xuXHRAaW5jbHVkZSBzcGFuKDIgb2YgMTIpO1xufVxuXG4uY29udGVudC1zaWRlYmFyLXNpZGViYXIgLnNpZGViYXItc2Vjb25kYXJ5IHtcblx0QGluY2x1ZGUgbGFzdDtcbn1cblxuLy8gUmVzcG9uc2l2ZSBsYXlvdXRzXG5AaW5jbHVkZSBicmVha3BvaW50KCRhdW50eS1iZWFyKSB7XG5cdC5zaXRlLWlubmVyLFxuXHQud3JhcCB7XG5cdFx0bWF4LXdpZHRoOiAxMDMwcHg7XG5cdH1cbn1cblxuQGluY2x1ZGUgYnJlYWtwb2ludCgkbWFtYS1iZWFyKSB7XG5cdC5zaXRlLWlubmVyLFxuXHQud3JhcCB7XG5cdFx0bWF4LXdpZHRoOiA4MDBweDtcblx0fVxuXG5cdC5zaXRlLWhlYWRlciAud3JhcCB7XG5cdFx0cGFkZGluZzogMjBweCA1JTtcblx0fVxuXG5cdC5zaWRlYmFyLXNlY29uZGFyeSxcblx0LmNvbnRlbnQtc2lkZWJhci1zaWRlYmFyIC5jb250ZW50LXNpZGViYXItd3JhcCxcblx0LnNpZGViYXItY29udGVudC1zaWRlYmFyIC5jb250ZW50LXNpZGViYXItd3JhcCxcblx0LnNpZGViYXItc2lkZWJhci1jb250ZW50IC5jb250ZW50LXNpZGViYXItd3JhcCB7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdH1cblxuXHQuaGVhZGVyLWltYWdlIC50aXRsZS1hcmVhIHtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgdG9wO1xuXHR9XG5cblx0LmdlbmVzaXMtbmF2LW1lbnUgbGksXG5cdC5zaXRlLWhlYWRlciB1bC5nZW5lc2lzLW5hdi1tZW51LFxuXHQuc2l0ZS1oZWFkZXIgLnNlYXJjaC1mb3JtIHtcblx0XHRmbG9hdDogbm9uZTtcblx0fVxuXG5cdC5nZW5lc2lzLW5hdi1tZW51LFxuXHQuc2l0ZS1kZXNjcmlwdGlvbixcblx0LnNpdGUtaGVhZGVyIC50aXRsZS1hcmVhLFxuXHQuc2l0ZS1oZWFkZXIgLnNlYXJjaC1mb3JtLFxuXHQuc2l0ZS10aXRsZSB7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHR9XG5cblx0LmdlbmVzaXMtbmF2LW1lbnUgYSxcblx0LmdlbmVzaXMtbmF2LW1lbnUgPiAuZmlyc3QgPiBhLFxuXHQuZ2VuZXNpcy1uYXYtbWVudSA+IC5sYXN0ID4gYSB7XG5cdFx0cGFkZGluZzogMjBweCAxNnB4O1xuXHR9XG5cblx0LnNpdGUtaGVhZGVyIC5zZWFyY2gtZm9ybSB7XG5cdFx0bWFyZ2luOiAxNnB4IGF1dG87XG5cdFx0Lyp3aWR0aDogNTAlOyovXG5cdFx0d2lkdGg6IDIzNHB4O1xuXHR9XG5cblx0LmdlbmVzaXMtbmF2LW1lbnUgbGkucmlnaHQsXG5cdC5nZW5lc2lzLW5hdi1tZW51LnJlc3BvbnNpdmUtbWVudSAubWVudS1pdGVtLnJpZ2h0IHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG59XG5cbkBpbmNsdWRlIGJyZWFrcG9pbnQoJGJyb3RoZXItYmVhcikge1xuXG5cdC5zaXRlLWlubmVyLFxuXHQud3JhcCB7XG5cdFx0cGFkZGluZy1sZWZ0OiA1JTtcblx0XHRwYWRkaW5nLXJpZ2h0OiA1JTtcblx0fVxuXG5cdC5jb250ZW50LFxuXHQuY29udGVudC1zaWRlYmFyLXNpZGViYXIgLmNvbnRlbnQsXG5cdC5jb250ZW50LXNpZGViYXItc2lkZWJhciAuY29udGVudC1zaWRlYmFyLXdyYXAsXG5cdC5mb290ZXItd2lkZ2V0cy0xLFxuXHQuZm9vdGVyLXdpZGdldHMtMixcblx0LmZvb3Rlci13aWRnZXRzLTMsXG5cdC5zaWRlYmFyLWNvbnRlbnQtc2lkZWJhciAuY29udGVudCxcblx0LnNpZGViYXItY29udGVudC1zaWRlYmFyIC5jb250ZW50LXNpZGViYXItd3JhcCxcblx0LnNpZGViYXItcHJpbWFyeSxcblx0LnNpZGViYXItc2Vjb25kYXJ5LFxuXHQuc2lkZWJhci1zaWRlYmFyLWNvbnRlbnQgLmNvbnRlbnQsXG5cdC5zaWRlYmFyLXNpZGViYXItY29udGVudCAuY29udGVudC1zaWRlYmFyLXdyYXAsXG5cdC5zaXRlLWhlYWRlciAud2lkZ2V0LWFyZWEsXG5cdC50aXRsZS1hcmVhIHtcblx0XHR3aWR0aDogMTAwJTtcblx0fVxuXG5cdC5hcmNoaXZlLWRlc2NyaXB0aW9uLFxuXHQuYXV0aG9yLWJveCxcblx0LmNvbW1lbnQtcmVzcG9uZCxcblx0LmVudHJ5LFxuXHQuZW50cnktY29tbWVudHMsXG5cdC5lbnRyeS1waW5ncyxcblx0LnNpZGViYXIgLndpZGdldCxcblx0LnNpdGUtaGVhZGVyIHtcblx0XHRwYWRkaW5nOiAwO1xuXHR9XG5cblx0LmFyY2hpdmUtcGFnaW5hdGlvbiBsaSBhIHtcblx0XHRtYXJnaW4tYm90dG9tOiA0cHg7XG5cdH1cblxuXHQuc2lkZWJhciAud2lkZ2V0LmVuZXdzLXdpZGdldCB7XG5cdFx0cGFkZGluZzogNDBweDtcblx0fVxuXG5cdC5nZW5lc2lzLW5hdi1tZW51LnJlc3BvbnNpdmUtbWVudSA+IC5tZW51LWl0ZW0gPiAuc3ViLW1lbnUsXG5cdC5nZW5lc2lzLW5hdi1tZW51LnJlc3BvbnNpdmUtbWVudSB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxuXG5cdC5nZW5lc2lzLW5hdi1tZW51LnJlc3BvbnNpdmUtbWVudSAubWVudS1pdGVtLFxuXHQucmVzcG9uc2l2ZS1tZW51LWljb24ge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHR9XG5cblx0LmdlbmVzaXMtbmF2LW1lbnUucmVzcG9uc2l2ZS1tZW51IC5tZW51LWl0ZW0ge1xuXHRcdG1hcmdpbjogMDtcblx0fVxuXG5cdC5nZW5lc2lzLW5hdi1tZW51LnJlc3BvbnNpdmUtbWVudSAubWVudS1pdGVtOmhvdmVyIHtcblx0XHRwb3NpdGlvbjogc3RhdGljO1xuXHR9XG5cblx0LmdlbmVzaXMtbmF2LW1lbnUucmVzcG9uc2l2ZS1tZW51IC5jdXJyZW50LW1lbnUtaXRlbSA+IGEsXG5cdC5nZW5lc2lzLW5hdi1tZW51LnJlc3BvbnNpdmUtbWVudSAuc3ViLW1lbnUgLmN1cnJlbnQtbWVudS1pdGVtID4gYTpob3Zlcixcblx0LmdlbmVzaXMtbmF2LW1lbnUucmVzcG9uc2l2ZS1tZW51IGEsXG5cdC5nZW5lc2lzLW5hdi1tZW51LnJlc3BvbnNpdmUtbWVudSBhOmhvdmVyIHtcblx0XHRiYWNrZ3JvdW5kOiBub25lO1xuXHRcdGxpbmUtaGVpZ2h0OiAxO1xuXHRcdHBhZGRpbmc6IDE2cHggMjBweDtcblx0fVxuXHQubmF2LXByaW1hcnkgLmdlbmVzaXMtbmF2LW1lbnUucmVzcG9uc2l2ZS1tZW51IC5jdXJyZW50LW1lbnUtaXRlbSA+IGEsXG5cdC5uYXYtcHJpbWFyeSAuZ2VuZXNpcy1uYXYtbWVudS5yZXNwb25zaXZlLW1lbnUgLnN1Yi1tZW51IC5jdXJyZW50LW1lbnUtaXRlbSA+IGE6aG92ZXIsXG5cdC5uYXYtcHJpbWFyeSAuZ2VuZXNpcy1uYXYtbWVudS5yZXNwb25zaXZlLW1lbnUgYSxcblx0Lm5hdi1wcmltYXJ5IC5nZW5lc2lzLW5hdi1tZW51LnJlc3BvbnNpdmUtbWVudSBhOmhvdmVyIHtcblx0XHRjb2xvcjogJGNoYXJjb2w7XG5cdH1cblxuXHQuZ2VuZXNpcy1uYXYtbWVudS5yZXNwb25zaXZlLW1lbnUgLm1lbnUtaXRlbS1oYXMtY2hpbGRyZW4ge1xuXHRcdGN1cnNvcjogcG9pbnRlcjtcblx0fVxuXG5cdC5nZW5lc2lzLW5hdi1tZW51LnJlc3BvbnNpdmUtbWVudSAubWVudS1pdGVtLWhhcy1jaGlsZHJlbiA+IGEge1xuXHRcdG1hcmdpbi1yaWdodDogNjBweDtcblx0fVxuXG5cdC5nZW5lc2lzLW5hdi1tZW51LnJlc3BvbnNpdmUtbWVudSA+IC5tZW51LWl0ZW0taGFzLWNoaWxkcmVuOmJlZm9yZSB7XG5cdFx0Y29udGVudDogXCJcXGYzNDdcIjtcblx0XHRmbG9hdDogcmlnaHQ7XG5cdFx0Zm9udDogbm9ybWFsIDE2cHgvMSAnZGFzaGljb25zJztcblx0XHRoZWlnaHQ6IDE2cHg7XG5cdFx0cGFkZGluZzogMTZweCAyMHB4O1xuXHRcdHJpZ2h0OiAwO1xuXHRcdHRleHQtYWxpZ246IHJpZ2h0O1xuXHRcdHotaW5kZXg6IDk5OTk7XG5cdH1cblx0Lm5hdi1wcmltYXJ5IC5nZW5lc2lzLW5hdi1tZW51LnJlc3BvbnNpdmUtbWVudSA+IC5tZW51LWl0ZW0taGFzLWNoaWxkcmVuOmJlZm9yZSB7XG5cdFx0Y29sb3I6ICRjaGFyY29sO1xuXHR9XG5cblx0LmdlbmVzaXMtbmF2LW1lbnUucmVzcG9uc2l2ZS1tZW51IC5tZW51LW9wZW4ubWVudS1pdGVtLWhhcy1jaGlsZHJlbjpiZWZvcmUge1xuXHRcdGNvbnRlbnQ6IFwiXFxmMzQzXCI7XG5cdH1cblxuXHQuZ2VuZXNpcy1uYXYtbWVudS5yZXNwb25zaXZlLW1lbnUgLnN1Yi1tZW51IHtcblx0XHRib3JkZXI6IG5vbmU7XG5cdFx0bGVmdDogYXV0bztcblx0XHRvcGFjaXR5OiAxO1xuXHRcdHBhZGRpbmctbGVmdDogMjVweDtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0LW1vei10cmFuc2l0aW9uOiAgICBvcGFjaXR5IC40cyBlYXNlLWluLW91dDtcblx0XHQtbXMtdHJhbnNpdGlvbjogICAgIG9wYWNpdHkgLjRzIGVhc2UtaW4tb3V0O1xuXHRcdC1vLXRyYW5zaXRpb246ICAgICAgb3BhY2l0eSAuNHMgZWFzZS1pbi1vdXQ7XG5cdFx0LXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IC40cyBlYXNlLWluLW91dDtcblx0XHR0cmFuc2l0aW9uOiAgICAgICAgIG9wYWNpdHkgLjRzIGVhc2UtaW4tb3V0O1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdHotaW5kZXg6IDk5O1xuXHR9XG5cblx0LmdlbmVzaXMtbmF2LW1lbnUucmVzcG9uc2l2ZS1tZW51IC5zdWItbWVudSAuc3ViLW1lbnUge1xuXHRcdG1hcmdpbjogMDtcblx0fVxuXG5cdC5nZW5lc2lzLW5hdi1tZW51LnJlc3BvbnNpdmUtbWVudSAuc3ViLW1lbnUgLmN1cnJlbnQtbWVudS1pdGVtID4gYTpob3Zlcixcblx0LmdlbmVzaXMtbmF2LW1lbnUucmVzcG9uc2l2ZS1tZW51IC5zdWItbWVudSBsaSBhLFxuXHQuZ2VuZXNpcy1uYXYtbWVudS5yZXNwb25zaXZlLW1lbnUgLnN1Yi1tZW51IGxpIGE6aG92ZXIge1xuXHRcdGJhY2tncm91bmQ6IG5vbmU7XG5cdFx0Ym9yZGVyOiBub25lO1xuXHRcdHBhZGRpbmc6IDEycHggMjBweDtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1NjhweCkge1xuXG5cdC5jb21tZW50LXJlc3BvbmQgaW5wdXRbdHlwZT1cImVtYWlsXCJdLFxuXHQuY29tbWVudC1yZXNwb25kIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxuXHQuY29tbWVudC1yZXNwb25kIGlucHV0W3R5cGU9XCJ1cmxcIl0ge1xuXHRcdHdpZHRoOiAxMDAlO1xuXHR9XG5cbn1cbiIsIi8vIFNwYW4gU3ludGF4XG4vLyA9PT09PT09PT09PVxuXG4vLyBTcGFuIFttaXhpbl1cbi8vIC0tLS0tLS0tLS0tLVxuLy8gU2V0IGEgc3Bhbm5pbmcgZWxlbWVudCB1c2luZyBzaG9ydGhhbmQgc3ludGF4LlxuLy8gLSAkc3BhbiAgOiA8c3Bhbj5cbkBtaXhpbiBzcGFuKFxuICAkc3BhblxuKSB7XG4gICRpbnNwZWN0OiAkc3BhbjtcbiAgJHNwYW46IHBhcnNlLXNwYW4oJHNwYW4pO1xuICAkb3V0cHV0OiBzcGFuLW1hdGgoJHNwYW4pO1xuICAkbmVzdGluZzogc3VzeS1nZXQoc3BhbiwgJHNwYW4pO1xuICAkY2xlYXI6IHN1c3ktZ2V0KGNsZWFyLCAkc3Bhbik7XG5cbiAgJGJveDogc3VzeS1nZXQoYm94LXNpemluZywgJHNwYW4pO1xuICAkY29udGVudC1ib3g6IGlmKHN1c3ktZ2V0KGdsb2JhbC1ib3gtc2l6aW5nKSAhPSAnYm9yZGVyLWJveCcsIHRydWUsIGZhbHNlKTtcbiAgJGJveDogJGJveCBvciBpZihpcy1pbnNpZGUoJHNwYW4pIGFuZCAkY29udGVudC1ib3gsIGJvcmRlci1ib3gsIG51bGwpO1xuXG4gIEBpZiAkY2xlYXIgPT0gYnJlYWsge1xuICAgIEBpbmNsdWRlIGJyZWFrO1xuICB9IEBlbHNlIGlmICRjbGVhciA9PSBub2JyZWFrIHtcbiAgICBAaW5jbHVkZSBub2JyZWFrO1xuICB9XG5cbiAgQGluY2x1ZGUgc3VzeS1pbnNwZWN0KHNwYW4sICRpbnNwZWN0KTtcbiAgQGluY2x1ZGUgb3V0cHV0KChib3gtc2l6aW5nOiAkYm94KSk7XG4gIEBpbmNsdWRlIGZsb2F0LXNwYW4tb3V0cHV0KCRvdXRwdXQuLi4pO1xuXG4gIEBpZiB2YWxpZC1jb2x1bW5zKCRuZXN0aW5nLCBzaWxlbnQpIHtcbiAgICBAaW5jbHVkZSBuZXN0ZWQoJHNwYW4pIHsgQGNvbnRlbnQ7IH1cbiAgfSBAZWxzZSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gU3BhbiBbZnVuY3Rpb25dXG4vLyAtLS0tLS0tLS0tLS0tLS1cbi8vIFJldHVybiB0aGUgd2lkdGggb2YgYSBzcGFuLlxuLy8gLSAkc3BhbiAgOiA8c3Bhbj5cbkBmdW5jdGlvbiBzcGFuKFxuICAkc3BhblxuKSB7XG4gIEByZXR1cm4gZ2V0LXNwYW4td2lkdGgoJHNwYW4pO1xufVxuXG4vLyBTcGFuIE1hdGhcbi8vIC0tLS0tLS0tLVxuLy8gR2V0IGFsbCB0aGUgc3BhbiByZXN1bHRzLlxuLy8gLSAkc3BhbjogPG1hcD5cbkBmdW5jdGlvbiBzcGFuLW1hdGgoXG4gICRzcGFuXG4pIHtcbiAgJG5lc3QgICAgICAgICAgICAgOiBpZihzdXN5LWdldChyb2xlLCAkc3BhbikgPT0gbmVzdCwgdHJ1ZSwgZmFsc2UpO1xuICAkc3BsaXQtbmVzdCAgICAgICA6IGlmKGlzLXNwbGl0KCRzcGFuKSBhbmQgJG5lc3QsIHRydWUsIGZhbHNlKTtcbiAgJGVkZ2UgICAgICAgICAgICAgOiBnZXQtZWRnZSgkc3Bhbik7XG4gICRsb2NhdGlvbiAgICAgICAgIDogZ2V0LWxvY2F0aW9uKCRzcGFuKTtcblxuICAkZmxvYXQgICAgICAgICAgICA6IGZyb207XG4gICRwYWRkaW5nLWJlZm9yZSAgIDogbnVsbDtcbiAgJHBhZGRpbmctYWZ0ZXIgICAgOiBudWxsO1xuICAkbWFyZ2luLWJlZm9yZSAgICA6IG51bGw7XG4gICRtYXJnaW4tYWZ0ZXIgICAgIDogbnVsbDtcblxuICAvLyBjYWxjdWxhdGUgd2lkdGhzXG4gICRzcHJlYWQ6IGluZGV4KG1hcC12YWx1ZXMoJHNwYW4pLCBzcHJlYWQpO1xuICAkc3BhbjogaWYoJHNwbGl0LW5lc3QgYW5kIG5vdCgkc3ByZWFkKSwgbWFwLW1lcmdlKCRzcGFuLCAoc3ByZWFkOiB3aWRlKSksICRzcGFuKTtcbiAgJHdpZHRoOiBnZXQtc3Bhbi13aWR0aCgkc3Bhbik7XG4gICRndXR0ZXJzOiBnZXQtZ3V0dGVycygkc3Bhbik7XG5cbiAgLy8gYXBwbHkgZ3V0dGVyc1xuICBAaWYgaXMtaW5zaWRlKCRzcGFuKSB7XG4gICAgQGlmIG5vdChzdXN5LWdldChyb2xlLCAkc3BhbikpIHtcbiAgICAgICRwYWRkaW5nLWJlZm9yZTogbWFwLWdldCgkZ3V0dGVycywgYmVmb3JlKTtcbiAgICAgICRwYWRkaW5nLWFmdGVyOiBtYXAtZ2V0KCRndXR0ZXJzLCBhZnRlcik7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAaWYgbm90KCRzcGxpdC1uZXN0KSB7XG4gICAgICAkbWFyZ2luLWJlZm9yZTogbWFwLWdldCgkZ3V0dGVycywgYmVmb3JlKTtcbiAgICAgICRtYXJnaW4tYWZ0ZXI6IG1hcC1nZXQoJGd1dHRlcnMsIGFmdGVyKTtcbiAgICB9XG4gIH1cblxuICAvLyBzcGVjaWFsIG1hcmdpbiBoYW5kbGluZ1xuICBAaWYgc3VzeS1nZXQob3V0cHV0LCAkc3BhbikgPT0gaXNvbGF0ZSBhbmQgJGxvY2F0aW9uIHtcbiAgICAkbWFyZ2luLWJlZm9yZTogZ2V0LWlzb2xhdGlvbigkc3Bhbik7XG4gICAgJG1hcmdpbi1hZnRlcjogLTEwMCU7XG4gIH0gQGVsc2UgaWYgJGVkZ2Uge1xuICAgICRpcy1zcGxpdDogaXMtc3BsaXQoJHNwYW4pO1xuICAgICRwb3M6IHN1c3ktZ2V0KGd1dHRlci1wb3NpdGlvbiwgJHNwYW4pO1xuXG4gICAgQGlmICRlZGdlID09IGxhc3Qge1xuICAgICAgJGZsb2F0OiBzdXN5LWdldChsYXN0LWZsb3csICRzcGFuKTtcbiAgICB9XG5cbiAgICBAaWYgbm90KCRpcy1zcGxpdCkge1xuICAgICAgQGlmICRlZGdlID09IGZ1bGwgb3IgKCRlZGdlID09IGZpcnN0IGFuZCAkcG9zID09IGJlZm9yZSkge1xuICAgICAgICAkbWFyZ2luLWJlZm9yZTogMDtcbiAgICAgIH1cbiAgICAgIEBpZiAkZWRnZSA9PSBmdWxsIG9yICgkZWRnZSA9PSBsYXN0IGFuZCAkcG9zID09IGFmdGVyKSB7XG4gICAgICAgICRtYXJnaW4tYWZ0ZXI6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gIH1cblxuICBAcmV0dXJuIChcbiAgICB3aWR0aCAgICAgICAgICAgOiAkd2lkdGgsXG4gICAgZmxvYXQgICAgICAgICAgIDogJGZsb2F0LFxuICAgIG1hcmdpbi1iZWZvcmUgICA6ICRtYXJnaW4tYmVmb3JlLFxuICAgIG1hcmdpbi1hZnRlciAgICA6ICRtYXJnaW4tYWZ0ZXIsXG4gICAgcGFkZGluZy1iZWZvcmUgIDogJHBhZGRpbmctYmVmb3JlLFxuICAgIHBhZGRpbmctYWZ0ZXIgICA6ICRwYWRkaW5nLWFmdGVyLFxuICAgIGZsb3cgICAgICAgICAgICA6IHN1c3ktZ2V0KGZsb3csICRzcGFuKSxcbiAgKTtcbn1cblxuLy8gR2V0IFNwYW4gV2lkdGhcbi8vIC0tLS0tLS0tLS0tLS0tXG4vLyBSZXR1cm4gc3BhbiB3aWR0aC5cbi8vIC0gJHNwYW46IDxtYXA+XG5AZnVuY3Rpb24gZ2V0LXNwYW4td2lkdGgoXG4gICRzcGFuXG4pIHtcbiAgJHNwYW4gICAgIDogcGFyc2Utc3Bhbigkc3Bhbik7XG5cbiAgJG4gICAgICAgIDogc3VzeS1nZXQoc3BhbiwgJHNwYW4pO1xuICAkbG9jYXRpb24gOiBnZXQtbG9jYXRpb24oJHNwYW4pO1xuICAkY29sdW1ucyAgOiBzdXN5LWdldChjb2x1bW5zLCAkc3Bhbik7XG4gICRndXR0ZXJzICA6IHN1c3ktZ2V0KGd1dHRlcnMsICRzcGFuKTtcbiAgJHNwcmVhZCAgIDogc3VzeS1nZXQoc3ByZWFkLCAkc3Bhbik7XG5cbiAgJGNvbnRleHQgIDogbnVsbDtcbiAgJHNwYW4tc3VtIDogbnVsbDtcbiAgJHdpZHRoICAgIDogbnVsbDtcblxuICBAaWYgJG4gPT0gJ2Z1bGwnIHtcbiAgICAkcG9zOiBzdXN5LWdldChndXR0ZXItcG9zaXRpb24sICRzcGFuKTtcbiAgICAkcm9sZTogc3VzeS1nZXQocm9sZSwgJHNwYW4pO1xuICAgICRuOiBpZigkcG9zID09IHNwbGl0IGFuZCAkcm9sZSAhPSBuZXN0LCBzdXN5LWNvdW50KCRjb2x1bW5zKSwgMTAwJSk7XG4gIH1cblxuICBAaWYgdHlwZS1vZigkbikgIT0gbnVtYmVyIHtcbiAgICBAd2FybiBcIigje3R5cGUtb2YoJG4pfSkgI3skbn0gaXMgbm90IGEgdmFsaWQgc3Bhbi5cIjtcbiAgfSBAZWxzZSBpZiB1bml0bGVzcygkbikge1xuICAgICRjb250ZXh0OiBzdXN5LXN1bSgkY29sdW1ucywgJGd1dHRlcnMsIGlmKGlzLXNwbGl0KCRzcGFuKSwgd2lkZSwgbmFycm93KSk7XG4gICAgJHNwcmVhZDogaWYoaXMtaW5zaWRlKCRzcGFuKSwgJHNwcmVhZCBvciB3aWRlLCAkc3ByZWFkKTtcbiAgICAkc3Bhbi1zdW06IHN1c3koJG4sICRsb2NhdGlvbiwgJGNvbHVtbnMsICRndXR0ZXJzLCAkc3ByZWFkKTtcblxuICAgICRfbWF0aDogc3VzeS1nZXQobWF0aCwgJHNwYW4pO1xuICAgICRfY29sdW1uLXdpZHRoOiBzdXN5LWdldChjb2x1bW4td2lkdGgsICRzcGFuKTtcbiAgICBAaWYgJF9tYXRoID09IHN0YXRpYyB7XG4gICAgICAkd2lkdGg6ICRzcGFuLXN1bSAqIHZhbGlkLWNvbHVtbi1tYXRoKCRfbWF0aCwgJF9jb2x1bW4td2lkdGgpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJHdpZHRoOiBwZXJjZW50YWdlKCRzcGFuLXN1bSAvICRjb250ZXh0KTtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgICR3aWR0aDogJG47XG4gIH1cblxuICBAcmV0dXJuICR3aWR0aDtcbn1cbiIsIi8vIERpcmVjdGlvbiBIZWxwZXJzXG4vLyA9PT09PT09PT09PT09PT09PVxuXG4vLyBTdXN5IEZsb3cgRGVmYXVsdHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gLSBQUklWQVRFXG5AaW5jbHVkZSBzdXN5LWRlZmF1bHRzKChcbiAgZmxvdzogbHRyLFxuKSk7XG5cbi8vIEdldCBEaXJlY3Rpb25cbi8vIC0tLS0tLS0tLS0tLS1cbi8vIFJldHVybiB0aGUgJ2Zyb20nIG9yICd0bycgZGlyZWN0aW9uIG9mIGEgbHRyIG9yIHJ0bCBmbG93LlxuLy8gLSBbJGZsb3ddICA6IGx0ciB8IHJ0bFxuLy8gLSBbJGtleV0gICA6IGZyb20gfCB0b1xuQGZ1bmN0aW9uIGdldC1kaXJlY3Rpb24oXG4gICRmbG93OiBtYXAtZ2V0KCRzdXN5LWRlZmF1bHRzLCBmbG93KSxcbiAgJGtleTogZnJvbVxuKSB7XG4gICRyZXR1cm46IGlmKCRmbG93ID09IHJ0bCwgKGZyb206IHJpZ2h0LCB0bzogbGVmdCksIChmcm9tOiBsZWZ0LCB0bzogcmlnaHQpKTtcbiAgQHJldHVybiBtYXAtZ2V0KCRyZXR1cm4sICRrZXkpO1xufVxuXG4vLyBUb1xuLy8gLS1cbi8vIFJldHVybiB0aGUgJ3RvJyBkaXJlY3Rpb24gb2YgYSBmbG93XG4vLyAtIFskZmxvd10gIDogbHRyIHwgcnRsXG5AZnVuY3Rpb24gdG8oXG4gICRmbG93OiBtYXAtZ2V0KCRzdXN5LWRlZmF1bHRzLCBmbG93KVxuKSB7XG4gIEByZXR1cm4gZ2V0LWRpcmVjdGlvbigkZmxvdywgdG8pO1xufVxuXG4vLyBGcm9tXG4vLyAtLS0tXG4vLyBSZXR1cm4gdGhlICdmcm9tJyBkaXJlY3Rpb24gb2YgYSBmbG93XG4vLyAtIFskZmxvd10gIDogbHRyIHwgcnRsXG5AZnVuY3Rpb24gZnJvbShcbiAgJGZsb3c6IG1hcC1nZXQoJHN1c3ktZGVmYXVsdHMsIGZsb3cpXG4pIHtcbiAgQHJldHVybiBnZXQtZGlyZWN0aW9uKCRmbG93LCBmcm9tKTtcbn1cbiIsIi8vIEd1dHRlciBTeW50YXhcbi8vID09PT09PT09PT09PT1cblxuXG4vLyBHdXR0ZXJzXG4vLyAtLS0tLS0tXG4vLyBTZXQgZ3V0dGVycyBvbiBhbiBlbGVtZW50LlxuLy8gLSBbJHNwYW5dICAgOiA8c2V0dGluZ3M+XG5AbWl4aW4gZ3V0dGVycyhcbiAgJHNwYW46ICRzdXN5XG4pIHtcbiAgJGluc3BlY3QgIDogJHNwYW47XG4gICRzcGFuICAgICA6IHBhcnNlLWd1dHRlcnMoJHNwYW4pO1xuICAkX2d1dHRlcnMgOiBnZXQtZ3V0dGVycygkc3Bhbik7XG5cbiAgJF9vdXRwdXQ6IChcbiAgICBiZWZvcmU6IG1hcC1nZXQoJF9ndXR0ZXJzLCBiZWZvcmUpLFxuICAgIGFmdGVyOiBtYXAtZ2V0KCRfZ3V0dGVycywgYWZ0ZXIpLFxuICAgIGZsb3c6IHN1c3ktZ2V0KGZsb3csICRzcGFuKSxcbiAgKTtcblxuICBAaW5jbHVkZSBzdXN5LWluc3BlY3QoZ3V0dGVycywgJGluc3BlY3QpO1xuXG4gIEBpZiBpcy1pbnNpZGUoJHNwYW4pIHtcbiAgICBAaW5jbHVkZSBwYWRkaW5nLW91dHB1dCgkX291dHB1dC4uLik7XG4gIH0gQGVsc2Uge1xuICAgIEBpbmNsdWRlIG1hcmdpbi1vdXRwdXQoJF9vdXRwdXQuLi4pO1xuICB9XG59XG5cbkBtaXhpbiBndXR0ZXIoXG4gICRzcGFuOiAkc3VzeVxuKSB7XG4gIEBpbmNsdWRlIGd1dHRlcnMoJHNwYW4pO1xufVxuXG5cbi8vIEd1dHRlclxuLy8gLS0tLS0tXG4vLyBSZXR1cm4gdGhlIHdpZHRoIG9mIGEgZ3V0dGVyLlxuLy8gLSBbJHNwYW5dICAgOiA8c2V0dGluZ3M+XG5AZnVuY3Rpb24gZ3V0dGVyKFxuICAkc3BhbjogJHN1c3lcbikge1xuICAkc3BhbjogcGFyc2UtZ3V0dGVycygkc3Bhbik7XG5cbiAgJF9ndXR0ZXJzOiBnZXQtZ3V0dGVycygkc3Bhbik7XG4gICRfZ3V0dGVyczogbWFwLWdldCgkX2d1dHRlcnMsIGJlZm9yZSkgb3IgbWFwLWdldCgkX2d1dHRlcnMsIGFmdGVyKTtcblxuICBAcmV0dXJuICRfZ3V0dGVycztcbn1cblxuQGZ1bmN0aW9uIGd1dHRlcnMoXG4gICRzcGFuOiAkc3VzeVxuKSB7XG4gIEByZXR1cm4gZ3V0dGVyKCRzcGFuKTtcbn1cblxuXG4vLyBHZXQgR3V0dGVyIFdpZHRoXG4vLyAtLS0tLS0tLS0tLS0tLS0tXG4vLyBSZXR1cm4gZ3V0dGVyIHdpZHRoLlxuLy8gLSBbJGNvbnRleHRdOiA8Y29udGV4dD5cbkBmdW5jdGlvbiBnZXQtZ3V0dGVyLXdpZHRoKFxuICAkY29udGV4dDogJHN1c3lcbikge1xuICAkY29udGV4dCAgOiBwYXJzZS1ndXR0ZXJzKCRjb250ZXh0KTtcblxuICAkX2d1dHRlcnMgOiBzdXN5LWdldChndXR0ZXJzLCAkY29udGV4dCk7XG4gICRfZ3V0dGVyICA6IHN1c3ktZ2V0KGd1dHRlci1vdmVycmlkZSwgJGNvbnRleHQpO1xuXG4gIEBpZiAkX2d1dHRlcnMgYW5kICgkX2d1dHRlcnMgPiAwKSBhbmQgbm90KCRfZ3V0dGVyKSB7XG4gICAgJF9jb2x1bW4td2lkdGg6IHN1c3ktZ2V0KGNvbHVtbi13aWR0aCwgJGNvbnRleHQpO1xuICAgICRfbWF0aDogZ3V0dGVyLW1hdGgoJGNvbnRleHQpO1xuICAgIEBpZiAkX21hdGggPT0gc3RhdGljIHtcbiAgICAgICRfZ3V0dGVyOiAkX2d1dHRlcnMgKiB2YWxpZC1jb2x1bW4tbWF0aCgkX21hdGgsICRfY29sdW1uLXdpZHRoKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICRfY29sdW1ucyA6IHN1c3ktZ2V0KGNvbHVtbnMsICRjb250ZXh0KTtcbiAgICAgICRfc3ByZWFkICA6IGlmKGlzLXNwbGl0KCRjb250ZXh0KSwgd2lkZSwgc3VzeS1nZXQoc3ByZWFkLCAkY29udGV4dCkpO1xuICAgICAgJF9ndXR0ZXIgIDogcGVyY2VudGFnZSgkX2d1dHRlcnMgLyBzdXN5LXN1bSgkX2NvbHVtbnMsICRfZ3V0dGVycywgJF9zcHJlYWQpKTtcbiAgICB9XG4gIH1cblxuICAkX2d1dHRlcjogaWYoJF9ndXR0ZXIgPT0gJ25vLWd1dHRlcnMnIG9yICRfZ3V0dGVyID09ICduby1ndXR0ZXInLCBudWxsLCAkX2d1dHRlcik7XG5cbiAgQHJldHVybiAkX2d1dHRlcjtcbn1cblxuXG4vLyBHZXQgR3V0dGVyc1xuLy8gLS0tLS0tLS0tLS1cbi8vIFJldHVybiBiZWZvcmUgYW5kIGFmdGVyIGd1dHRlciB2YWx1ZXMuXG4vLyAtIFskY29udGV4dF06IDxjb250ZXh0PlxuQGZ1bmN0aW9uIGdldC1ndXR0ZXJzKFxuICAkY29udGV4dDogJHN1c3lcbikge1xuICAkY29udGV4dCAgICAgICAgICAgIDogcGFyc2UtZ3V0dGVycygkY29udGV4dCk7XG5cbiAgJF9ndXR0ZXItcG9zaXRpb24gICA6IHN1c3ktZ2V0KGd1dHRlci1wb3NpdGlvbiwgJGNvbnRleHQpO1xuICAkX2d1dHRlciAgICAgICAgICAgIDogZ2V0LWd1dHRlci13aWR0aCgkY29udGV4dCk7XG5cbiAgJF9yZXR1cm4gICAgICAgICAgICA6IChiZWZvcmU6IG51bGwsIGFmdGVyOiBudWxsKTtcblxuICBAaWYgaXMtc3BsaXQoJGNvbnRleHQpIGFuZCAkX2d1dHRlciB7XG4gICAgJF9ndXR0ZXI6ICRfZ3V0dGVyIC8gMjtcbiAgICAkX3JldHVybjogbWFwLW1lcmdlKCRfcmV0dXJuLCAoYmVmb3JlOiAkX2d1dHRlciwgYWZ0ZXI6ICRfZ3V0dGVyKSk7XG4gIH0gQGVsc2Uge1xuICAgICRfcmV0dXJuOiBtYXAtbWVyZ2UoJF9yZXR1cm4sICgkX2d1dHRlci1wb3NpdGlvbjogJF9ndXR0ZXIpKTtcbiAgfVxuXG4gIEByZXR1cm4gJF9yZXR1cm47XG59XG5cblxuLy8gSXMgSW5zaWRlXG4vLyAtLS0tLS0tLS1cbi8vIFJldHVybnMgdHJ1ZSBpZiBndXR0ZXJzIGFyZSBpbnNpZGUuXG4vLyAkY29udGV4dDogPGNvbnRleHQ+XG5AZnVuY3Rpb24gaXMtaW5zaWRlKFxuICAkY29udGV4dFxuKSB7XG4gICRfaW5zaWRlOiBpbnNpZGUgaW5zaWRlLXN0YXRpYztcbiAgJF9ndXR0ZXItcG9zaXRpb246IHN1c3ktZ2V0KGd1dHRlci1wb3NpdGlvbiwgJGNvbnRleHQpO1xuXG4gIEByZXR1cm4gaWYoaW5kZXgoJF9pbnNpZGUsICRfZ3V0dGVyLXBvc2l0aW9uKSwgdHJ1ZSwgZmFsc2UpO1xufVxuXG5cbi8vIElzIFNwbGl0XG4vLyAtLS0tLS0tLVxuLy8gUmV0dXJucyB0cnVlIGlmIGd1dHRlcnMgYXJlIHNwbGl0LlxuLy8gJGNvbnRleHQ6IDxjb250ZXh0PlxuQGZ1bmN0aW9uIGlzLXNwbGl0KFxuICAkY29udGV4dFxuKSB7XG4gICRfc3BsaXQ6IHNwbGl0IGluc2lkZSBpbnNpZGUtc3RhdGljO1xuICAkX2d1dHRlci1wb3NpdGlvbjogc3VzeS1nZXQoZ3V0dGVyLXBvc2l0aW9uLCAkY29udGV4dCk7XG5cbiAgQHJldHVybiBpZihpbmRleCgkX3NwbGl0LCAkX2d1dHRlci1wb3NpdGlvbiksIHRydWUsIGZhbHNlKTtcbn1cblxuXG4vLyBHdXR0ZXIgTWF0aFxuLy8gLS0tLS0tLS0tLS1cbi8vIFJldHVybiB0aGUgbWF0aCB0byB1c2UgZm9yIGd1dHRlciBjYWxjdWxhdGlvbnNcbi8vICRjb250ZXh0OiA8Y29udGV4dD5cbkBmdW5jdGlvbiBndXR0ZXItbWF0aChcbiAgJGNvbnRleHQ6ICRzdXN5XG4pIHtcbiAgJF9yZXR1cm4gIDogc3VzeS1nZXQobWF0aCwgJGNvbnRleHQpO1xuICAkX3JldHVybiAgOiBpZihzdXN5LWdldChndXR0ZXItcG9zaXRpb24sICRjb250ZXh0KSA9PSBpbnNpZGUtc3RhdGljLCBzdGF0aWMsICRfcmV0dXJuKTtcblxuICBAcmV0dXJuICRfcmV0dXJuO1xufVxuIiwiLy8gRmxvYXQgRW5kcyBBUElcbi8vID09PT09PT09PT09PT09XG5cbi8vIFN1c3kgRW5kIERlZmF1bHRzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLVxuLy8gLSBQUklWQVRFXG5AaW5jbHVkZSBzdXN5LWRlZmF1bHRzKChcbiAgbGFzdC1mbG93OiB0byxcbikpO1xuXG4vLyBGbG9hdCBMYXN0XG4vLyAtLS0tLS0tLS0tXG4vLyAtIFskZmxvd10gIDogbHRyIHwgcnRsXG5AbWl4aW4gZmxvYXQtbGFzdChcbiAgJGZsb3c6IG1hcC1nZXQoJHN1c3ktZGVmYXVsdHMsIGZsb3cpLFxuICAkbGFzdC1mbG93OiBtYXAtZ2V0KCRzdXN5LWRlZmF1bHRzLCBsYXN0LWZsb3cpLFxuICAkbWFyZ2luOiAwXG4pIHtcbiAgJHRvOiB0bygkZmxvdyk7XG5cbiAgJG91dHB1dDogKFxuICAgIGZsb2F0OiBpZigkbGFzdC1mbG93ID09IHRvLCAkdG8sIG51bGwpLFxuICAgIG1hcmdpbi0jeyR0b306ICRtYXJnaW4sXG4gICk7XG5cbiAgQGluY2x1ZGUgb3V0cHV0KCRvdXRwdXQpO1xufVxuXG4vLyBGbG9hdCBGaXJzdFxuLy8gLS0tLS0tLS0tLS1cbi8vIC0gWyRmbG93XSAgOiBsdHIgfCBydGxcbkBtaXhpbiBmbG9hdC1maXJzdChcbiAgJGZsb3c6IG1hcC1nZXQoJHN1c3ktZGVmYXVsdHMsIGZsb3cpXG4pIHtcbiAgJG91dHB1dDogKFxuICAgIG1hcmdpbi0je2Zyb20oJGZsb3cpfTogMCxcbiAgKTtcblxuICBAaW5jbHVkZSBvdXRwdXQoJG91dHB1dCk7XG59XG4iLCIvLyBSb3cgU3RhcnQgJiBFbmRcbi8vID09PT09PT09PT09PT09PVxuXG4vLyBCcmVha1xuLy8gLS0tLS1cbi8vIEFwcGx5IHRvIGFueSBlbGVtZW50IHRoYXQgc2hvdWxkIGZvcmNlIGEgbGluZSBicmVhay5cbkBtaXhpbiBicmVhayB7XG4gIEBpbmNsdWRlIG91dHB1dCgoY2xlYXI6IGJvdGgpKTtcbn1cblxuXG4vLyBOb0JyZWFrXG4vLyAtLS0tLS0tXG4vLyBDYW5jZWwgdGhlIGJyZWFrKCkgZWZmZWN0LCBlLmcuIHdoZW4gdXNpbmcgbWVkaWEgcXVlcmllcy5cbkBtaXhpbiBub2JyZWFrIHtcbiAgQGluY2x1ZGUgb3V0cHV0KChjbGVhcjogbm9uZSkpO1xufVxuXG5cbi8vIEZ1bGxcbi8vIC0tLS1cbi8vIC0gWyRjb250ZXh0XTogPGxheW91dCBzaG9ydGhhbmQ+XG5AbWl4aW4gZnVsbChcbiAgJGNvbnRleHQ6ICRzdXN5XG4pIHtcbiAgJGluc3BlY3QgOiAkY29udGV4dDtcbiAgQGluY2x1ZGUgc3VzeS1pbnNwZWN0KGZ1bGwsICRpbnNwZWN0KTtcbiAgQGluY2x1ZGUgc3BhbihmdWxsIG9mIHBhcnNlLWdyaWQoJGNvbnRleHQpIGJyZWFrKTtcbn1cblxuXG4vLyBGaXJzdFxuLy8gLS0tLS1cbi8vIC0gWyRjb250ZXh0XTogPHNldHRpbmdzPlxuQG1peGluIGZpcnN0KFxuICAkY29udGV4dDogJHN1c3lcbikge1xuICAkaW5zcGVjdCAgOiAkY29udGV4dDtcbiAgJGNvbnRleHQgIDogcGFyc2UtZ3JpZCgkY29udGV4dCk7XG4gICRmbG93ICAgICA6IHN1c3ktZ2V0KGZsb3csICRjb250ZXh0KTtcblxuICBAaW5jbHVkZSBzdXN5LWluc3BlY3QoZmlyc3QsICRpbnNwZWN0KTtcbiAgQGlmIG5vdChpcy1zcGxpdCgkY29udGV4dCkpIHtcbiAgICBAaW5jbHVkZSBmbG9hdC1maXJzdCgkZmxvdyk7XG4gIH1cbn1cblxuQG1peGluIGFscGhhKFxuICAkY29udGV4dDogJHN1c3lcbikge1xuICBAaW5jbHVkZSBmaXJzdCgkY29udGV4dCk7XG59XG5cblxuLy8gTGFzdFxuLy8gLS0tLVxuLy8gLSBbJGNvbnRleHRdOiA8c2V0dGluZ3M+XG5AbWl4aW4gbGFzdChcbiAgJGNvbnRleHQ6ICRzdXN5XG4pIHtcbiAgJGluc3BlY3QgIDogJGNvbnRleHQ7XG4gICRjb250ZXh0ICA6IHBhcnNlLWdyaWQoJGNvbnRleHQpO1xuXG4gIEBpbmNsdWRlIHN1c3ktaW5zcGVjdChsYXN0LCAkaW5zcGVjdCk7XG5cbiAgJG91dHB1dDogKFxuICAgIGZsb3c6IHN1c3ktZ2V0KGZsb3csICRjb250ZXh0KSxcbiAgICBsYXN0LWZsb3c6IHN1c3ktZ2V0KGxhc3QtZmxvdywgJGNvbnRleHQpLFxuICAgIG1hcmdpbjogaWYoaXMtc3BsaXQoJGNvbnRleHQpLCBudWxsLCAwKSxcbiAgKTtcblxuICBAaW5jbHVkZSBmbG9hdC1sYXN0KCRvdXRwdXQuLi4pO1xufVxuXG5AbWl4aW4gb21lZ2EoXG4gICRjb250ZXh0OiAkc3VzeVxuKSB7XG4gIEBpbmNsdWRlIGxhc3QoJGNvbnRleHQpO1xufVxuXG5cbi8vIEdldCBFZGdlXG4vLyAtLS0tLS0tLVxuLy8gQ2FsY3VsYXRlIGVkZ2UgdmFsdWUgYmFzZWQgb24gbG9jYXRpb24sIGlmIHBvc3NpYmxlXG5AZnVuY3Rpb24gZ2V0LWVkZ2UoXG4gICRzcGFuXG4pIHtcbiAgJHNwYW4gICAgICAgOiBwYXJzZS1zcGFuKCRzcGFuKTtcbiAgJGVkZ2UgICAgICAgOiBzdXN5LWdldChlZGdlLCAkc3Bhbik7XG5cbiAgQGlmIG5vdCgkZWRnZSkge1xuICAgICRjb3VudDogc3VzeS1jb3VudChzdXN5LWdldChjb2x1bW5zLCAkc3BhbikpO1xuICAgICRsb2NhdGlvbjogc3VzeS1nZXQobG9jYXRpb24sICRzcGFuKTtcbiAgICAkbjogc3VzeS1nZXQoc3BhbiwgJHNwYW4pO1xuXG4gICAgJG51bWJlcjogaWYodHlwZS1vZigkbG9jYXRpb24pID09IG51bWJlciwgdHJ1ZSwgZmFsc2UpO1xuICAgICRpbmRleDogaWYoJG51bWJlciBhbmQgdW5pdGxlc3MoJGxvY2F0aW9uKSwgdHJ1ZSwgZmFsc2UpO1xuXG4gICAgQGlmICRuID09ICRjb3VudCB7XG4gICAgICAkZWRnZTogZnVsbDtcbiAgICB9IEBlbHNlIGlmICRsb2NhdGlvbiBhbmQgJG4gYW5kICRpbmRleCB7XG4gICAgICBAaWYgJGxvY2F0aW9uID09IDEge1xuICAgICAgICAkZWRnZTogaWYoJG4gPT0gJGNvdW50LCBmdWxsLCBmaXJzdCk7XG4gICAgICB9IEBlbHNlIGlmICRsb2NhdGlvbiArICRuIC0gMSA9PSAkY291bnQge1xuICAgICAgICAkZWRnZTogbGFzdDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaWYgJGVkZ2UgPT0gYWxwaGEgb3IgJGVkZ2UgPT0gb21lZ2Ege1xuICAgICRlZGdlOiBpZigkZWRnZSA9PSBhbHBoYSwgZmlyc3QsIGxhc3QpO1xuICB9XG5cbiAgQHJldHVybiAkZWRnZTtcbn1cblxuXG4vLyBHZXQgTG9jYXRpb25cbi8vIC0tLS0tLS0tLS0tLVxuLy8gQ2FsY3VsYXRlIGxvY2F0aW9uIHZhbHVlIGJhc2VkIG9uIGVkZ2UsIGlmIHBvc3NpYmxlXG5AZnVuY3Rpb24gZ2V0LWxvY2F0aW9uKFxuICAkc3BhblxuKSB7XG4gICRzcGFuICAgICAgIDogcGFyc2Utc3Bhbigkc3Bhbik7XG4gICRsb2NhdGlvbiAgIDogc3VzeS1nZXQobG9jYXRpb24sICRzcGFuKTtcbiAgJGVkZ2UgICAgICAgOiBnZXQtZWRnZSgkc3Bhbik7XG4gICRuICAgICAgICAgIDogc3VzeS1nZXQoc3BhbiwgJHNwYW4pO1xuXG4gIEBpZiAkZWRnZSBhbmQgbm90KCRsb2NhdGlvbikgYW5kIHR5cGUtb2YoJG4pID09IG51bWJlciBhbmQgdW5pdGxlc3MoJG4pIHtcbiAgICBAaWYgJGVkZ2UgPT0gZmlyc3Qge1xuICAgICAgJGxvY2F0aW9uOiAxO1xuICAgIH0gQGVsc2UgaWYgJGVkZ2UgPT0gbGFzdCB7XG4gICAgICAkbG9jYXRpb246IHN1c3ktY291bnQoc3VzeS1nZXQoY29sdW1ucywgJHNwYW4pKSAtICRuICsgMTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRsb2NhdGlvblxufVxuIiwiLyogIyMgRm9ybXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5pbnB1dCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcblx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcblx0Ym9yZGVyOiAxcHggc29saWQgI2RkZDtcblx0Y29sb3I6ICMzMzM7XG5cdGZvbnQtc2l6ZTogMThweDtcblx0Zm9udC13ZWlnaHQ6IDMwMDtcblx0cGFkZGluZzogMTZweDtcblx0d2lkdGg6IDEwMCU7XG59XG5cbmlucHV0OmZvY3VzLFxudGV4dGFyZWE6Zm9jdXMge1xuXHRib3JkZXI6IDFweCBzb2xpZCAjOTk5O1xuXHRvdXRsaW5lOiBub25lO1xufVxuXG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sXG5pbnB1dFt0eXBlPVwiaW1hZ2VcIl0sXG5pbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuXHR3aWR0aDogYXV0bztcbn1cblxuOjotbW96LXBsYWNlaG9sZGVyIHtcblx0Y29sb3I6ICMzMzM7XG5cdGZvbnQtd2VpZ2h0OiAzMDA7XG5cdG9wYWNpdHk6IDE7XG59XG5cbjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG5cdGNvbG9yOiAjMzMzO1xuXHRmb250LXdlaWdodDogMzAwO1xufVxuXG5idXR0b24sXG5pbnB1dFt0eXBlPVwiYnV0dG9uXCJdLFxuaW5wdXRbdHlwZT1cInJlc2V0XCJdLFxuaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSxcbi5idXR0b24ge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjMzMzO1xuXHRib3JkZXI6IG5vbmU7XG5cdGNvbG9yOiAjZmZmO1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdGZvbnQtc2l6ZTogMTZweDtcblx0Zm9udC13ZWlnaHQ6IDMwMDtcblx0cGFkZGluZzogMTZweCAyNHB4O1xuXHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHR3aWR0aDogYXV0bztcbn1cblxuLmZvb3Rlci13aWRnZXRzIGJ1dHRvbixcbi5mb290ZXItd2lkZ2V0cyBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdLFxuLmZvb3Rlci13aWRnZXRzIGlucHV0W3R5cGU9XCJyZXNldFwiXSxcbi5mb290ZXItd2lkZ2V0cyBpbnB1dFt0eXBlPVwic3VibWl0XCJdLFxuLmZvb3Rlci13aWRnZXRzIC5idXR0b24ge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjZTU1NTRlO1xuXHRjb2xvcjogI2ZmZjtcbn1cblxuYnV0dG9uOmhvdmVyLFxuaW5wdXQ6aG92ZXJbdHlwZT1cImJ1dHRvblwiXSxcbmlucHV0OmhvdmVyW3R5cGU9XCJyZXNldFwiXSxcbmlucHV0OmhvdmVyW3R5cGU9XCJzdWJtaXRcIl0sXG4uYnV0dG9uOmhvdmVyIHtcblx0YmFja2dyb3VuZC1jb2xvcjogI2U1NTU0ZTtcblx0Y29sb3I6ICNmZmY7XG59XG5cbi5lbnRyeS1jb250ZW50IC5idXR0b246aG92ZXIge1xuXHRjb2xvcjogI2ZmZjtcbn1cblxuLmZvb3Rlci13aWRnZXRzIGJ1dHRvbjpob3Zlcixcbi5mb290ZXItd2lkZ2V0cyBpbnB1dDpob3Zlclt0eXBlPVwiYnV0dG9uXCJdLFxuLmZvb3Rlci13aWRnZXRzIGlucHV0OmhvdmVyW3R5cGU9XCJyZXNldFwiXSxcbi5mb290ZXItd2lkZ2V0cyBpbnB1dDpob3Zlclt0eXBlPVwic3VibWl0XCJdLFxuLmZvb3Rlci13aWRnZXRzIC5idXR0b246aG92ZXIge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuXHRjb2xvcjogIzMzMztcbn1cblxuLmJ1dHRvbiB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLXJlc3VsdHMtYnV0dG9uIHtcblx0ZGlzcGxheTogbm9uZTtcbn1cbiIsIi8qICMjIFRhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbnRhYmxlIHtcblx0Ym9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcblx0Ym9yZGVyLXNwYWNpbmc6IDA7XG5cdGxpbmUtaGVpZ2h0OiAyO1xuXHRtYXJnaW4tYm90dG9tOiA0MHB4O1xuXHR3aWR0aDogMTAwJTtcbn1cblxudGJvZHkge1xuXHRib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RkZDtcbn1cblxudGQsXG50aCB7XG5cdHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbnRkIHtcblx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkICNkZGQ7XG5cdHBhZGRpbmc6IDZweCAwO1xufVxuXG50aCB7XG5cdGZvbnQtd2VpZ2h0OiA0MDA7XG59XG4iLCIvKiAjIyBHYWxsZXJ5XG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLmdhbGxlcnkge1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uZ2FsbGVyeS1pdGVtIHtcblx0ZmxvYXQ6IGxlZnQ7XG5cdG1hcmdpbjogMCAwIDI4cHg7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmdhbGxlcnktY29sdW1ucy0yIC5nYWxsZXJ5LWl0ZW0ge1xuXHR3aWR0aDogNTAlO1xufVxuXG4uZ2FsbGVyeS1jb2x1bW5zLTMgLmdhbGxlcnktaXRlbSB7XG5cdHdpZHRoOiAzMyU7XG59XG5cbi5nYWxsZXJ5LWNvbHVtbnMtNCAuZ2FsbGVyeS1pdGVtIHtcblx0d2lkdGg6IDI1JTtcbn1cblxuLmdhbGxlcnktY29sdW1ucy01IC5nYWxsZXJ5LWl0ZW0ge1xuXHR3aWR0aDogMjAlO1xufVxuXG4uZ2FsbGVyeS1jb2x1bW5zLTYgLmdhbGxlcnktaXRlbSB7XG5cdHdpZHRoOiAxNi42NjY2JTtcbn1cblxuLmdhbGxlcnktY29sdW1ucy03IC5nYWxsZXJ5LWl0ZW0ge1xuXHR3aWR0aDogMTQuMjg1NyU7XG59XG5cbi5nYWxsZXJ5LWNvbHVtbnMtOCAuZ2FsbGVyeS1pdGVtIHtcblx0d2lkdGg6IDEyLjUlO1xufVxuXG4uZ2FsbGVyeS1jb2x1bW5zLTkgLmdhbGxlcnktaXRlbSB7XG5cdHdpZHRoOiAxMS4xMTExJTtcbn1cblxuLmdhbGxlcnkgaW1nIHtcblx0Ym9yZGVyOiAxcHggc29saWQgI2RkZDtcblx0aGVpZ2h0OiBhdXRvO1xuXHRwYWRkaW5nOiA0cHg7XG59XG5cbi5nYWxsZXJ5IGltZzpob3ZlciB7XG5cdGJvcmRlcjogMXB4IHNvbGlkICM5OTk7XG59XG4iLCIvKiAjIENvbW1vbiBDbGFzc2VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi8qICMjIEF2YXRhclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi5hdmF0YXIge1xuXHRmbG9hdDogbGVmdDtcbn1cblxuLmFsaWdubGVmdCAuYXZhdGFyLFxuLmF1dGhvci1ib3ggLmF2YXRhciB7XG5cdG1hcmdpbi1yaWdodDogMjRweDtcbn1cblxuLmFsaWducmlnaHQgLmF2YXRhciB7XG5cdG1hcmdpbi1sZWZ0OiAyNHB4O1xufVxuXG4uY29tbWVudCAuYXZhdGFyIHtcblx0bWFyZ2luOiAwIDE2cHggMjRweCAwO1xufVxuXG4vKiAjIyBHZW5lc2lzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLmJyZWFkY3J1bWIge1xuXHRtYXJnaW4tYm90dG9tOiAyMHB4O1xufVxuXG4uYXJjaGl2ZS1kZXNjcmlwdGlvbixcbi5hdXRob3ItYm94IHtcblx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcblx0Zm9udC1zaXplOiAxNnB4O1xuXHRtYXJnaW4tYm90dG9tOiA0MHB4O1xuXHRwYWRkaW5nOiA0MHB4O1xufVxuXG4uYXV0aG9yLWJveC10aXRsZSB7XG5cdGZvbnQtc2l6ZTogMTZweDtcblx0bWFyZ2luLWJvdHRvbTogNHB4O1xufVxuXG4uYXJjaGl2ZS1kZXNjcmlwdGlvbiBwOmxhc3QtY2hpbGQsXG4uYXV0aG9yLWJveCBwOmxhc3QtY2hpbGQge1xuXHRtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4vKiAjIyBTZWFyY2ggRm9ybVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi5zZWFyY2gtZm9ybSB7XG5cdG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5zaXRlLWhlYWRlciAuc2VhcmNoLWZvcm0ge1xuXHRmbG9hdDogcmlnaHQ7XG5cdG1hcmdpbi10b3A6IDEycHg7XG59XG5cbi5lbnRyeS1jb250ZW50IC5zZWFyY2gtZm9ybS8qLFxuLnNpdGUtaGVhZGVyIC5zZWFyY2gtZm9ybSovIHtcblx0d2lkdGg6IDUwJTtcbn1cblxuLmdlbmVzaXMtbmF2LW1lbnUgLnNlYXJjaCBpbnB1dFt0eXBlPVwic3VibWl0XCJdLFxuLndpZGdldF9zZWFyY2ggaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG5cdGJvcmRlcjogMDtcblx0Y2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcblx0aGVpZ2h0OiAxcHg7XG5cdG1hcmdpbjogLTFweDtcblx0cGFkZGluZzogMDtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR3aWR0aDogMXB4O1xufVxuXG4vKiBUbyBjbGVhciBzZWFyY2ggaW5wdXQgZmllbGQncyB0ZXh0IHdoZW4gdGhlIHNlYXJjaCBmaWVsZCBnZXRzIGZvY3VzICovXG5cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Zm9jdXM6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIgeyBjb2xvcjp0cmFuc3BhcmVudDsgfVxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTpmb2N1czotbW96LXBsYWNlaG9sZGVyIHsgY29sb3I6dHJhbnNwYXJlbnQ7IH0gLyogRmlyZWZveCAxOC0gKi9cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Zm9jdXM6Oi1tb3otcGxhY2Vob2xkZXIgeyBjb2xvcjp0cmFuc3BhcmVudDsgfSAvKiBGaXJlZm94IDE5KyAqL1xuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTpmb2N1czotbXMtaW5wdXQtcGxhY2Vob2xkZXIgeyBjb2xvcjp0cmFuc3BhcmVudDsgfSAvKiBvbGRJRSA7KSAqL1xuXG4vKiAjIyBUaXRsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4uYXJjaGl2ZS10aXRsZSB7XG5cdGZvbnQtc2l6ZTogMjBweDtcbn1cblxuLmVudHJ5LXRpdGxlIHtcblx0Zm9udC1zaXplOiAzNnB4O1xufVxuXG4ucGFnZSAuZW50cnktdGl0bGUge1xuXHRtYXJnaW4tYm90dG9tOiAyNHB4O1xufVxuXG4uZW50cnktdGl0bGUgYSxcbi5zaWRlYmFyIC53aWRnZXQtdGl0bGUgYSB7XG5cdGNvbG9yOiAjMzMzO1xufVxuXG4uZW50cnktdGl0bGUgYTpob3ZlciB7XG5cdGNvbG9yOiAjZTU1NTRlO1xufVxuXG4ud2lkZ2V0LXRpdGxlIHtcblx0Zm9udC1zaXplOiAxOHB4O1xuXHRtYXJnaW4tYm90dG9tOiAyMHB4O1xufVxuXG4uZm9vdGVyLXdpZGdldHMgLndpZGdldC10aXRsZSB7XG5cdGNvbG9yOiAjZmZmO1xufVxuXG4vKiAjIyBXb3JkUHJlc3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5hLmFsaWduY2VudGVyIGltZyB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRtYXJnaW46IDAgYXV0bztcbn1cblxuYS5hbGlnbm5vbmUge1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi5hbGlnbmxlZnQge1xuXHRmbG9hdDogbGVmdDtcblx0dGV4dC1hbGlnbjogbGVmdDtcbn1cblxuLmFsaWducmlnaHQge1xuXHRmbG9hdDogcmlnaHQ7XG5cdHRleHQtYWxpZ246IHJpZ2h0O1xufVxuXG5hLmFsaWdubGVmdCxcbmEuYWxpZ25ub25lLFxuYS5hbGlnbnJpZ2h0IHtcblx0bWF4LXdpZHRoOiAxMDAlO1xufVxuXG5pbWcuY2VudGVyZWQsXG4uYWxpZ25jZW50ZXIge1xuXHRkaXNwbGF5OiBibG9jaztcblx0bWFyZ2luOiAwIGF1dG8gMjRweDtcbn1cblxuaW1nLmFsaWdubm9uZSxcbi5hbGlnbm5vbmUge1xuXHRtYXJnaW4tYm90dG9tOiAxMnB4O1xufVxuXG5hLmFsaWdubGVmdCxcbmltZy5hbGlnbmxlZnQsXG4ud3AtY2FwdGlvbi5hbGlnbmxlZnQge1xuXHRtYXJnaW46IDAgMjRweCAyNHB4IDA7XG59XG5cbmEuYWxpZ25yaWdodCxcbmltZy5hbGlnbnJpZ2h0LFxuLndwLWNhcHRpb24uYWxpZ25yaWdodCB7XG5cdG1hcmdpbjogMCAwIDI0cHggMjRweDtcbn1cblxuLndwLWNhcHRpb24tdGV4dCB7XG5cdGZvbnQtc2l6ZTogMTRweDtcblx0Zm9udC13ZWlnaHQ6IDcwMDtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uZW50cnktY29udGVudCBwLndwLWNhcHRpb24tdGV4dCB7XG5cdG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5zdGlja3kge1xufSIsIi5jb2xvdXItYmxvY2sge1xuICAgZGlzcGxheTogYmxvY2s7XG4gICB3aWR0aDogMTAwJTtcbiAgIGZvbnQtc2l6ZTogMjBweDtcbiAgIC8vZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICBjb2xvcjogJHdoaXRlO1xuICAgcGFkZGluZzogNTBweCAwO1xuICAgZm9udC1mYW1pbHk6IFNvdXJjZSBTYW5zLCBzYW5zLXNlcmlmO1xuXG4gICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuMTUpO1xuICAgfVxufVxuXG4uYm9va2luZy1idXR0b24ge1xuICAgQGV4dGVuZCAuY29sb3VyLWJsb2NrO1xuICAgY29sb3I6ICR3aGl0ZTtcbiAgIGZvbnQtc2l6ZTogNDBweDtcbiAgIHBhZGRpbmc6IDEwMHB4IDAgMTAwcHg7XG5cbiAgIEBpbmNsdWRlIGljb24oJ2NhbGVuZGFyJywgJ2JlZm9yZScsIHRydWUsIDQwcHgsICR0b3A6LTJweCwgJG1hcmdpbjo2cHgpIHtcblx0XHRtYXJnaW4tbGVmdDogMnB4O1xuXHR9XG5cbiAgICY6aG92ZXIge1xuICAgICAgY29sb3I6IHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC4xNSk7XG4gICB9XG59XG5cbi5iZy15ZWxsb3cge1xuICAgLmJvb2tpbmctYnV0dG9uIHtcbiAgICAgIGNvbG9yOiAkY2hhcmNvbDtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgICBjb2xvcjogdHJhbnNwYXJlbnRpemUoJGNoYXJjb2wsIDAuMTUpO1xuICAgICAgfVxuICAgfVxufVxuXG4ucGhvdG8tbGluayB7XG4gICBAZXh0ZW5kIC5jb2xvdXItYmxvY2s7XG4gICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICBvdmVyZmxvdzogaGlkZGVuO1xuICAgbWluLWhlaWdodDogMjAwcHg7XG5cbiAgIC50ZXh0IHtcbiAgICAgIGJhY2tncm91bmQ6ICRvcmFuZ2U7XG4gICAgICAvL3RleHQtc2hhZG93OiByZ2JhKDAsIDAsIDAsIDAuNSkgMXB4IDFweCAxcHgsIHJnYmEoMCwgMCwgMCwgMC45KSAwIDJweCAxMHB4O1xuICAgICAgZm9udC1zaXplOiA1MHB4O1xuICAgICAgcGFkZGluZzogMCAkbGFyZ2U7XG4gICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICByaWdodDogMDtcbiAgIH1cblxuXG4gICAmLnN0YXkge1xuICAgICAgcGFkZGluZzogMTBweCAwIDEzMHB4O1xuICAgfVxuXG4gICAmLnBsYXkge1xuICAgICAgcGFkZGluZzogMTMwcHggMCAxMHB4O1xuICAgfVxufVxuXG4uaG9tZXBhZ2UtaGVhZGluZy1saW5rIGEge1xuICAgZm9udC1mYW1pbHk6IFNvdXJjZSBTYW5zLCBzYW5zLXNlcmlmO1xuICAgcGFkZGluZzogMTVweCAwIDA7XG4gICB3aWR0aDogMTAwJTtcbiAgIGRpc3BsYXk6IGJsb2NrO1xuICAgY29sb3I6ICR3aGl0ZTtcbn1cblxuLnNsaWRlc2hvdyB7XG4gICAuZmwtY29sLWNvbnRlbnQge1xuICAgICAgcGFkZGluZzogMDtcbiAgIH1cbn1cblxuLmhvbWVwYWdlLWdyaWQge1xuXG4gICAuZmwtY29sLWNvbnRlbnQge1xuICAgICAgbWFyZ2luOiAwIDEwcHg7XG4gICB9XG5cbiAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGJyb3RoZXItYmVhcikge1xuICAgICAgLmZsLWNvbC1jb250ZW50IHtcbiAgICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICAgIH1cbiAgIH1cblxufVxuXG4ucGFnZS1uYXYtbGlua3Mge1xuICAgLmZsLWNvbC1jb250ZW50IHtcbiAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgIC5ib29raW5nLWJ1dHRvbiB7XG4gICAgICAgICBwYWRkaW5nOiA4MHB4IDA7XG4gICAgICB9XG5cbiAgICAgIC5zdGF5IHtcbiAgICAgICAgIHBhZGRpbmc6IDIwcHggMCAxNDBweDtcbiAgICAgIH1cblxuICAgICAgLnBsYXkge1xuICAgICAgICAgcGFkZGluZzogMTQwcHggMCAyMHB4O1xuICAgICAgfVxuICAgfVxufVxuIiwiLyogIyBXaWRnZXRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi53aWRnZXQge1xuXHR3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG59XG5cbi53aWRnZXQgb2wgPiBsaSB7XG5cdGxpc3Qtc3R5bGUtcG9zaXRpb246IGluc2lkZTtcblx0bGlzdC1zdHlsZS10eXBlOiBkZWNpbWFsO1xuXHRwYWRkaW5nLWxlZnQ6IDIwcHg7XG5cdHRleHQtaW5kZW50OiAtMjBweDtcbn1cblxuLndpZGdldCBsaSBsaSB7XG5cdGJvcmRlcjogbm9uZTtcblx0bWFyZ2luOiAwIDAgMCAzMHB4O1xuXHRwYWRkaW5nOiAwO1xufVxuXG4ud2lkZ2V0X2NhbGVuZGFyIHRhYmxlIHtcblx0d2lkdGg6IDEwMCU7XG59XG5cbi53aWRnZXRfY2FsZW5kYXIgdGQsXG4ud2lkZ2V0X2NhbGVuZGFyIHRoIHtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4vKiAjIyBGZWF0dXJlZCBDb250ZW50XG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLmZlYXR1cmVkLWNvbnRlbnQgLmVudHJ5IHtcblx0Ym9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICNmNWY1ZjU7XG5cdG1hcmdpbi1ib3R0b206IDIwcHg7XG5cdHBhZGRpbmc6IDAgMCAyNHB4O1xufVxuXG4uZm9vdGVyLXdpZGdldHMgLmVudHJ5IHtcblx0Ym9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZCAjNjY2O1xufVxuXG4uZmVhdHVyZWQtY29udGVudCAuZW50cnktdGl0bGUge1xuXHRmb250LXNpemU6IDIwcHg7XG59IiwiLyogIyBQbHVnaW5zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi8qICMjIEdlbmVzaXMgZU5ld3MgRXh0ZW5kZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4uZW5ld3Mtd2lkZ2V0LFxuLmVuZXdzLXdpZGdldCAud2lkZ2V0LXRpdGxlIHtcblx0Y29sb3I6ICNmZmY7XG59XG5cbi5zaWRlYmFyIC53aWRnZXQuZW5ld3Mtd2lkZ2V0IHtcblx0YmFja2dyb3VuZC1jb2xvcjogIzMzMztcbn1cblxuLmVuZXdzLXdpZGdldCBpbnB1dCxcbi5lbmV3cy13aWRnZXQgaW5wdXQ6Zm9jdXMge1xuXHRib3JkZXI6IDFweCBzb2xpZCAjMzMzO1xufVxuXG4uZW5ld3Mtd2lkZ2V0IGlucHV0IHtcblx0Zm9udC1zaXplOiAxNnB4O1xuXHRtYXJnaW4tYm90dG9tOiAxNnB4O1xufVxuXG4uZW5ld3Mtd2lkZ2V0IGlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjZTU1NTRlO1xuXHRjb2xvcjogI2ZmZjtcblx0bWFyZ2luOiAwO1xuXHR3aWR0aDogMTAwJTtcbn1cblxuLmVuZXdzLXdpZGdldCBpbnB1dDpob3Zlclt0eXBlPVwic3VibWl0XCJdIHtcblx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcblx0Y29sb3I6ICMzMzM7XG59XG5cbi5lbmV3cyBmb3JtICsgcCB7XG5cdG1hcmdpbi10b3A6IDI0cHg7XG59XG5cbi8qICMjIEpldHBhY2tcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4jd3BzdGF0cyB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG4iLCIvKiBUbyBhdm9pZCBub3RpY2VhYmxlIHZlcnRpY2FsIG1vdmVtZW50IGZvciBob3ZlciBzdGF0ZSBvZiBTb2xpbG9xdXkncyBDb250cm9sIE5hdiAodHlwaWNhbGx5IGNpcmNsZXMpIGFuZCBieFNsaWRlcidzIGxlZnQgYW5kIHJpZ2h0IGFycm93cyAqL1xuXG4uc29saWxvcXV5LWNvbnRhaW5lciAuc29saWxvcXV5LWNvbnRyb2wtbmF2IGxpIGEsXG4uc29saWxvcXV5LXRoZW1lLWNsYXNzaWMgLnNvbGlsb3F1eS1wYWdlci1saW5rLFxuLmJ4LXdyYXBwZXIgLmJ4LWNvbnRyb2xzLWRpcmVjdGlvbiBhIHtcblx0LXdlYmtpdC10cmFuc2l0aW9uOiBub25lO1xuXHQtbW96LXRyYW5zaXRpb246ICAgIG5vbmU7XG5cdC1tcy10cmFuc2l0aW9uOiAgICAgbm9uZTtcblx0LW8tdHJhbnNpdGlvbjogICAgICBub25lO1xuXHR0cmFuc2l0aW9uOiAgICAgICAgIG5vbmU7XG59XG5cbi8qIFRvIHJlbW92ZSBib3R0b20gYm9yZGVyIGZvciBTb2xpbG9xdXkgY29udHJvbHMgKi9cblxuLmVudHJ5LWNvbnRlbnQgLnNvbGlsb3F1eS1jb250cm9scy1kaXJlY3Rpb24gYSwgLmVudHJ5LWNvbnRlbnQgYS5zb2xpbG9xdXktcGFnZXItbGluayB7XG5cdGJvcmRlci1ib3R0b206IG5vbmU7XG59XG4iLCIvKiAjIFNpdGUgSGVhZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi5zaXRlLWhlYWRlciB7XG5cdGJhY2tncm91bmQtY29sb3I6ICRoZWFkZXItYmc7XG5cdGJvcmRlci1ib3R0b206IDVweCBzb2xpZCAkb3JhbmdlO1xuXHQvKm1pbi1oZWlnaHQ6IDE2MHB4OyovXG5cblx0LndyYXAge1xuXHRcdHBhZGRpbmc6IDQwcHggMCAwO1xuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCgkYnJvdGhlci1iZWFyKSB7XG5cdFx0XHRwYWRkaW5nLXRvcDogNXB4O1xuXHRcdH1cblx0fVxufVxuXG4vKiAjIyBUaXRsZSBBcmVhXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLnRpdGxlLWFyZWEge1xuXHRmbG9hdDogbGVmdDtcblx0cGFkZGluZzogMTBweCAwIDEwcHggJGVudHJ5LXNpZGUtbWFyZ2luO1xuXHR3aWR0aDogMjgwcHg7XG5cblx0QGluY2x1ZGUgYnJlYWtwb2ludCgkbWFtYS1iZWFyLWFuZC11cCkge1xuXHRcdHBhZGRpbmctdG9wOiAwO1xuXHRcdG1hcmdpbi10b3A6IC0yMHB4O1xuXHRcdG1hcmdpbi1ib3R0b206IDEwcHg7XG5cdH1cblxuXHRAaW5jbHVkZSBicmVha3BvaW50KCRicm90aGVyLWJlYXIpIHtcblx0XHRmbG9hdDogbm9uZTtcblx0XHRtYXJnaW46IDAgYXV0bztcblx0fVxufVxuXG4uaGVhZGVyLWZ1bGwtd2lkdGggLnRpdGxlLWFyZWEge1xuXHR3aWR0aDogMTAwJTtcbn1cblxuLnNpdGUtdGl0bGUge1xuXHRmb250LXNpemU6IDMycHg7XG5cdGZvbnQtd2VpZ2h0OiA0MDA7XG5cdGxpbmUtaGVpZ2h0OiAxLjI7XG5cblx0QGluY2x1ZGUgYnJlYWtwb2ludCgkbWFtYS1iZWFyLWFuZC11cCkge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHR6LWluZGV4OiA5OTtcblx0fVxufVxuXG4uc2l0ZS10aXRsZSBhLFxuLnNpdGUtdGl0bGUgYTpob3ZlciB7XG5cdGNvbG9yOiAjMzMzO1xufVxuXG4uc2l0ZS10aXRsZSBhIGltZyB7XG5cdHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG5cbi5oZWFkZXItaW1hZ2UgLnNpdGUtdGl0bGUgPiBhIHtcblx0YmFja2dyb3VuZDogdXJsKGltYWdlcy9sb2dvLnN2Zykgbm8tcmVwZWF0IGxlZnQgIWltcG9ydGFudDtcblx0YmFja2dyb3VuZC1zaXplOiAyNTBweCAhaW1wb3J0YW50O1xuXHRmbG9hdDogbGVmdDtcblx0bWluLWhlaWdodDogMTIwcHg7XG5cdHdpZHRoOiAxMDAlO1xuXHRtYXJnaW4tbGVmdDogLTE1cHg7XG5cbn1cblxuLnNpdGUtZGVzY3JpcHRpb24ge1xuXHRmb250LXNpemU6IDE2cHg7XG5cdGZvbnQtd2VpZ2h0OiAzMDA7XG5cdGxpbmUtaGVpZ2h0OiAxLjU7XG59XG5cbi5zaXRlLWRlc2NyaXB0aW9uLFxuLnNpdGUtdGl0bGUge1xuXHRtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4uaGVhZGVyLWltYWdlIC5zaXRlLWRlc2NyaXB0aW9uLFxuLmhlYWRlci1pbWFnZSAuc2l0ZS10aXRsZSB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHR0ZXh0LWluZGVudDogLTk5OTlweDtcbn1cblxuLyogIyMgV2lkZ2V0IEFyZWFcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4uc2l0ZS1oZWFkZXIgLndpZGdldC1hcmVhIHtcblx0ZmxvYXQ6IHJpZ2h0O1xuXHR0ZXh0LWFsaWduOiByaWdodDtcblx0Lyp3aWR0aDogODAwcHg7Ki9cblxuXHRAaW5jbHVkZSBicmVha3BvaW50KCRicm90aGVyLWJlYXIpIHtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0ZmxvYXQ6IG5vbmU7XG5cdH1cblxuXHRhLmJ1dHRvbi5ib29raW5nIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkb3JhbmdlO1xuXHRcdGNvbG9yOiAjZmZmO1xuXHRcdC8vYm9yZGVyLXJhZGl1czogNXB4O1xuXHRcdHBhZGRpbmc6IDEwcHggMjBweDtcblx0XHRtYXJnaW4tYm90dG9tOiA1cHg7XG5cblx0XHRAaW5jbHVkZSBpY29uKCdjYWxlbmRhcicsICdiZWZvcmUnLCB0cnVlLCAxLjNlbSwgJHRvcDotMXB4LCAkbWFyZ2luOjZweCkge1xuXHRcdFx0bWFyZ2luLWxlZnQ6IDJweDtcblx0XHR9XG5cdH1cblxuXHRAaW5jbHVkZSBicmVha3BvaW50KCRicm90aGVyLWJlYXIpIHtcblx0XHQuYm9va2luZy1idXR0b24sXG5cdFx0LnBob25lLW51bWJlcixcblx0XHQueWhhLWxvZ28ge1xuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdH1cblxuXHRcdGEuYnV0dG9uLmJvb2tpbmcge1xuXHRcdFx0YmFja2dyb3VuZDogd2hpdGU7XG5cdFx0XHRjb2xvcjogJGNoYXJjb2w7XG5cdFx0fVxuXHR9XG5cblx0QGluY2x1ZGUgYnJlYWtwb2ludCgkbWFtYS1iZWFyLWFuZC11cCkge1xuXHRcdG1hcmdpbi10b3A6IC00MHB4O1xuXG5cdFx0LmJvb2tpbmctYnV0dG9uLFxuXHRcdC5waG9uZS1udW1iZXIsXG5cdFx0LnloYS1sb2dvIHtcblx0XHRcdGZsb2F0OiBsZWZ0O1xuXHRcdH1cblxuXHRcdC5waG9uZS1udW1iZXIge1xuXHRcdFx0cGFkZGluZy10b3A6IDEwcHg7XG5cdFx0XHRwYWRkaW5nLXJpZ2h0OiAyMHB4O1xuXHRcdH1cblxuXHRcdC55aGEtbG9nbyB7XG5cdFx0XHRwYWRkaW5nLXJpZ2h0OiAyMHB4O1xuXHRcdFx0cGFkZGluZy10b3A6IDNweDtcblxuXHRcdFx0aW1nIHtcblx0XHRcdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0XHR9XG5cblx0XHRcdC55aGEtaGVhZGVyLXRleHQge1xuXHRcdFx0XHRwYWRkaW5nOiA3cHggMCAwIDEwcHg7XG5cdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRAaW5jbHVkZSBicmVha3BvaW50KCRtYW1hLWJlYXIpIHtcblx0XHRtYXJnaW4tdG9wOiAwO1xuXG5cdFx0LmJvb2tpbmcuYnV0dG9uIHtcblx0XHRcdGNsZWFyOiBib3RoO1xuXHRcdH1cblxuXHRcdC55aGEtbG9nbyB7XG5cdFx0XHRmbG9hdDogcmlnaHQ7XG5cdFx0fVxuXG5cdFx0LmJvb2tpbmcuYnV0dG9uIHtcblx0XHRcdGZsb2F0OiByaWdodDtcblx0XHR9XG5cdH1cblxuXHRAaW5jbHVkZSBicmVha3BvaW50KCRicm90aGVyLWJlYXIpIHtcblx0XHRtYXJnaW4tdG9wOiAwcHg7XG5cblx0XHQuYm9va2luZy5idXR0b24sXG5cdFx0LnBob25lLW51bWJlcixcblx0XHQueWhhLWxvZ28ge1xuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0ZmxvYXQ6IG5vbmU7XG5cdFx0fVxuXG5cdFx0LnloYS1sb2dvIHtcblx0XHRcdGltZyB7XG5cdFx0XHRcdGZsb2F0OiBsZWZ0O1xuXHRcdFx0fVxuXG5cdFx0XHQueWhhLWhlYWRlci10ZXh0IHtcblx0XHRcdFx0cGFkZGluZzogN3B4IDAgMCAxMHB4O1xuXHRcdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0YS5idXR0b24uYm9va2luZyB7XG5cdFx0XHRiYWNrZ3JvdW5kOiB3aGl0ZTtcblx0XHRcdGNvbG9yOiAkY2hhcmNvbDtcblx0XHR9XG5cdH1cbn1cbiIsIi8qICMgU2l0ZSBOYXZpZ2F0aW9uXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4ubmF2LXByaW1hcnkge1xuXHR3aWR0aDogMTAwJTtcblxuXHRAaW5jbHVkZSBicmVha3BvaW50KCRtYW1hLWJlYXItYW5kLXVwKSB7XG5cdFx0bWFyZ2luLXRvcDogLTEwMHB4O1xuXHRcdGNsZWFyOiBib3RoO1xuXHRcdGZsb2F0OiByaWdodDtcblx0fVxuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1hbWEtYmVhcikge1xuXHRcdG1hcmdpbi10b3A6IDA7XG5cdFx0ZmxvYXQ6IGxlZnQ7XG5cblx0XHQud3JhcCB7XG5cdFx0XHRtYXJnaW4tdG9wOiAwO1xuXHRcdFx0cGFkZGluZy10b3A6IDA7XG5cdFx0fVxuXHR9XG5cblxufVxuXG4uYWRtaW4tYmFyIC5uYXYtcHJpbWFyeSB7XG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1hbWEtYmVhci1hbmQtdXApIHtcblx0XHQvL3RvcDogMzJweDtcblx0fVxufVxuXG4uZ2VuZXNpcy1uYXYtbWVudSB7XG5cdGNsZWFyOiBib3RoO1xuXHRsaW5lLWhlaWdodDogMTtcblx0d2lkdGg6IDEwMCU7XG5cdHBhZGRpbmctbGVmdDogJGVudHJ5LXNpZGUtbWFyZ2luLzI7XG5cdHRleHQtYWxpZ246IHJpZ2h0O1xuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1hbWEtYmVhcikge1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0fVxuXG5cdC5zdWItbWVudSBhIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG5cdFx0Y29sb3I6ICRjaGFyY29sO1xuXHRcdC8vYm9yZGVyOiAxcHggc29saWQgI2VlZTtcblx0XHRib3JkZXItdG9wOiBub25lO1xuXHRcdGJvcmRlci1ib3R0b206IG5vbmU7XG5cdFx0Zm9udC1zaXplOiAxNHB4O1xuXHRcdHBhZGRpbmc6IDIwcHg7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdHdpZHRoOiAyMDBweDtcblx0fVxuXG5cdC5zdWItbWVudSBsaTpsYXN0LW9mLXR5cGUgYSB7XG5cdFx0Ym9yZGVyLWJvdHRvbTogNXB4IHNvbGlkICRvcmFuZ2U7XG5cdH1cbn1cblxuLmJsdWUtbWVudSAuZ2VuZXNpcy1uYXYtbWVudXtcblx0Ym9yZGVyLWJvdHRvbS1jb2xvcjogJGJsdWU7XG59XG5cbi5nZW5lc2lzLW5hdi1tZW51IC5tZW51LWl0ZW0ge1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi5nZW5lc2lzLW5hdi1tZW51IGEge1xuXHRjb2xvcjogJGNoYXJjb2w7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRwYWRkaW5nOiAyMHB4ICRlbnRyeS1zaWRlLW1hcmdpbi8yIDE1cHg7XG5cblx0QGluY2x1ZGUgYnJlYWtwb2ludCgkbWFtYS1iZWFyKSB7XG5cdFx0cGFkZGluZzogMjBweCAkZW50cnktc2lkZS1tYXJnaW4vMyAxNXB4ICFpbXBvcnRhbnQ7XG5cdH1cbn1cblxuLmdlbmVzaXMtbmF2LW1lbnUgYTpob3Zlcixcbi5nZW5lc2lzLW5hdi1tZW51IC5jdXJyZW50LW1lbnUtaXRlbSA+IGEsXG4uZ2VuZXNpcy1uYXYtbWVudSAuc3ViLW1lbnUgLmN1cnJlbnQtbWVudS1pdGVtID4gYTpob3ZlciB7XG5cdGNvbG9yOiBkYXJrZW4oJGNoYXJjb2wsIDEwJSk7XG59XG5cbi5nZW5lc2lzLW5hdi1tZW51IC5zdWItbWVudSB7XG5cdGxlZnQ6IC05OTk5cHg7XG5cdG9wYWNpdHk6IDA7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0LXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IC40cyBlYXNlLWluLW91dDtcblx0LW1vei10cmFuc2l0aW9uOiAgICBvcGFjaXR5IC40cyBlYXNlLWluLW91dDtcblx0LW1zLXRyYW5zaXRpb246ICAgICBvcGFjaXR5IC40cyBlYXNlLWluLW91dDtcblx0LW8tdHJhbnNpdGlvbjogICAgICBvcGFjaXR5IC40cyBlYXNlLWluLW91dDtcblx0dHJhbnNpdGlvbjogICAgICAgICBvcGFjaXR5IC40cyBlYXNlLWluLW91dDtcblx0d2lkdGg6IDIwMHB4O1xuXHR6LWluZGV4OiA5OTtcbn1cblxuLmdlbmVzaXMtbmF2LW1lbnUgLnN1Yi1tZW51IC5zdWItbWVudSB7XG5cdG1hcmdpbjogLTU1cHggMCAwIDE5OXB4O1xufVxuXG4uZ2VuZXNpcy1uYXYtbWVudSAubWVudS1pdGVtOmhvdmVyIHtcblx0cG9zaXRpb246IHN0YXRpYztcbn1cblxuLmdlbmVzaXMtbmF2LW1lbnUgLm1lbnUtaXRlbTpob3ZlciA+IC5zdWItbWVudSB7XG5cdGxlZnQ6IGF1dG87XG5cdG9wYWNpdHk6IDE7XG59XG5cbi5nZW5lc2lzLW5hdi1tZW51ID4gLmZpcnN0ID4gYSB7XG5cdHBhZGRpbmctbGVmdDogMDtcbn1cblxuLmdlbmVzaXMtbmF2LW1lbnUgPiAubGFzdCA+IGEge1xuXHRwYWRkaW5nLXJpZ2h0OiAwO1xufVxuXG4uZ2VuZXNpcy1uYXYtbWVudSA+IC5yaWdodCB7XG5cdGNvbG9yOiAjZmZmO1xuXHRmbG9hdDogcmlnaHQ7XG5cdGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcblx0cGFkZGluZzogMzBweCAwO1xufVxuXG4uZ2VuZXNpcy1uYXYtbWVudSA+IC5yaWdodCA+IGEge1xuXHRkaXNwbGF5OiBpbmxpbmU7XG5cdHBhZGRpbmc6IDA7XG59XG5cbi5nZW5lc2lzLW5hdi1tZW51ID4gLnJzcyA+IGEge1xuXHRtYXJnaW4tbGVmdDogNDhweDtcbn1cblxuLmdlbmVzaXMtbmF2LW1lbnUgPiAuc2VhcmNoIHtcblx0cGFkZGluZzogMTBweCAwIDA7XG59XG5cbi8qICMjIFNpdGUgSGVhZGVyIE5hdmlnYXRpb25cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4uc2l0ZS1oZWFkZXIgLnN1Yi1tZW51IHtcblx0Ly9ib3JkZXItdG9wOiAxcHggc29saWQgI2VlZTtcbn1cblxuLnNpdGUtaGVhZGVyIC5zdWItbWVudSAuc3ViLW1lbnUge1xuXHRtYXJnaW4tdG9wOiAtNTZweDtcbn1cblxuLnNpdGUtaGVhZGVyIC5nZW5lc2lzLW5hdi1tZW51IGxpIGxpIHtcblx0bWFyZ2luLWxlZnQ6IDA7XG59XG5cbi8qICMjIFByaW1hcnkgTmF2aWdhdGlvblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi5uYXYtcHJpbWFyeSB7XG5cdGJhY2tncm91bmQtY29sb3I6ICRwcmltYXJ5LW5hdi1iZztcbn1cblxuLm5hdi1wcmltYXJ5IC5nZW5lc2lzLW5hdi1tZW51IGEge1xuXHRjb2xvcjogJHByaW1hcnktbmF2LXRleHQ7XG59XG5cbi5uYXYtcHJpbWFyeSAuZ2VuZXNpcy1uYXYtbWVudSAuc3ViLW1lbnUgYSB7XG5cdGNvbG9yOiAkcHJpbWFyeS1uYXYtdGV4dDtcbn1cblxuLm5hdi1wcmltYXJ5IC5nZW5lc2lzLW5hdi1tZW51IGE6aG92ZXIsXG4ubmF2LXByaW1hcnkgLmdlbmVzaXMtbmF2LW1lbnUgLmN1cnJlbnQtbWVudS1pdGVtID4gYSxcbi5uYXYtcHJpbWFyeSAuZ2VuZXNpcy1uYXYtbWVudSAuc3ViLW1lbnUgLmN1cnJlbnQtbWVudS1pdGVtID4gYTpob3ZlciB7XG5cdGNvbG9yOiAkcHJpbWFyeS1uYXYtdGV4dC1ob3Zlcjtcbn1cblxuLyogIyMgU2Vjb25kYXJ5IE5hdmlnYXRpb25cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4ubmF2LXNlY29uZGFyeSB7XG5cdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG4iLCJcbi5mb290ZXItd2lkZ2V0cyxcbi5zaXRlLWlubmVyIHtcblx0LndyYXAge1xuXHRcdHBhZGRpbmctbGVmdDogJGVudHJ5LXNpZGUtbWFyZ2luO1xuXHRcdHBhZGRpbmctcmlnaHQ6ICRlbnRyeS1zaWRlLW1hcmdpbjtcblx0fVxufVxuXG4vKiAjIEZvb3RlciBXaWRnZXRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi5mb290ZXItd2lkZ2V0cyB7XG5cdGJhY2tncm91bmQtY29sb3I6ICRmb290ZXItd2lkZ2V0cy1iZztcblx0Y2xlYXI6IGJvdGg7XG5cdHBhZGRpbmctdG9wOiA0MHB4O1xuXHRjb2xvcjogJGZvb3Rlci10ZXh0O1xuXG5cdGEge1xuXHRcdGNvbG9yOiAkZm9vdGVyLWxpbms7XG5cdFx0Ly9ib3JkZXItYm90dG9tOiAxcHggZG90dGVkIGxpZ2h0ZW4oJG9yYW5nZSwgMTAlKTtcblx0fVxuXG5cdGEuYnV0dG9uIHtcblx0XHRjb2xvcjogJGZvb3Rlci10ZXh0O1xuXHRcdGJhY2tncm91bmQ6IGxpZ2h0ZW4oJG9yYW5nZSwgMTAlKTtcblx0XHRib3JkZXItYm90dG9tOiBub25lO1xuXG5cdFx0Jjpob3ZlciB7XG5cdFx0XHRjb2xvcjogJGZvb3Rlci10ZXh0O1xuXHRcdFx0YmFja2dyb3VuZDogbGlnaHRlbigkb3JhbmdlLCAxNSUpO1xuXHRcdH1cblx0fVxuXG5cdGlucHV0IHtcblx0XHRib3JkZXI6IDFweCBzb2xpZCAkZGFyay1ncmV5O1xuXHR9XG5cblx0bGkge1xuXHRcdC8vYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZCBsaWdodGVuKCRkYXJrLWdyZXksIDIwJSk7XG5cdFx0bWFyZ2luLWJvdHRvbTogMTBweDtcblx0XHRwYWRkaW5nLWJvdHRvbTogMTBweDtcblx0fVxuXG5cdC5mYWNlYm9vayxcblx0LnlvdXR1YmUsXG5cdC5pbnN0YWdyYW0ge1xuXHRcdCY6YmVmb3JlIHtcblx0XHRcdGNvbG9yOiAkZm9vdGVyLWxpbmsgIWltcG9ydGFudDtcblx0XHR9XG5cdH1cbn1cblxuXG5cbi5mb290ZXItd2lkZ2V0cyB7XG5cdC53aWRnZXQge1xuXHRcdG1hcmdpbi1ib3R0b206IDQwcHg7XG5cdH1cblxuXHRwOmxhc3QtY2hpbGQge1xuXHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdH1cbn1cblxuQGluY2x1ZGUgYnJlYWtwb2ludCgkbWFtYS1iZWFyLWFuZC11cCkge1xuXHQuZm9vdGVyLXdpZGdldHMtMSxcblx0LmZvb3Rlci13aWRnZXRzLTIsXG5cdC5mb290ZXItd2lkZ2V0cy0zLFxuXHQuZm9vdGVyLXdpZGdldHMtNCB7XG5cdFx0QGluY2x1ZGUgc3BhbigzIG9mIDEyKTtcblx0fVxuXG5cdC5mb290ZXItd2lkZ2V0cy0yIHtcblx0XHRAaW5jbHVkZSBzcGFuKDIgb2YgMTIpO1xuXHR9XG5cblx0LmZvb3Rlci13aWRnZXRzLTQge1xuXHRcdEBpbmNsdWRlIHNwYW4oNCBvZiAxMik7XG5cdFx0QGluY2x1ZGUgbGFzdDtcblx0fVxufVxuXG4vKiAjIFNpdGUgRm9vdGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi5zaXRlLWZvb3RlciB7XG5cdGJhY2tncm91bmQtY29sb3I6ICRmb290ZXItYmc7XG5cdGZvbnQtc2l6ZTogMTZweDtcblx0bGluZS1oZWlnaHQ6IDE7XG5cdHBhZGRpbmc6IDQwcHggMDtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRjb2xvcjogJGZvb3Rlci10ZXh0O1xuXG5cdHAge1xuXHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdH1cblxuXHRhIHtcblx0XHRjb2xvcjogJGZvb3Rlci1saW5rO1xuXHR9XG59XG4iLCIvKiAjIENvbnRlbnQgQXJlYVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vKiAjIyBFbnRyaWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8vIFNldHVwIG1hcmdpbnMgaW4gZ2VuZXJhbCBzaXRlXG4gLmVudHJ5IHtcbiBcdG1hcmdpbi1ib3R0b206ICR4eGxhcmdlO1xuIFx0cGFkZGluZzogJGVudHJ5LXRvcGJvdHRvbS1tYXJnaW4gJGVudHJ5LXNpZGUtbWFyZ2luO1xuXG4gXHQuZW50cnktaGVhZGVyLFxuIFx0LmVudHJ5LWZvb3RlciB7XG4gXHRcdHBhZGRpbmc6IDA7XG4gXHR9XG4gfVxuXG4uY29udGVudCAuZW50cnkge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuXG4uZW50cnktY29udGVudCBvbCxcbi5lbnRyeS1jb250ZW50IHVsIHtcblx0bWFyZ2luLWJvdHRvbTogMjhweDtcblx0bWFyZ2luLWxlZnQ6IDQwcHg7XG59XG5cbi5lbnRyeS1jb250ZW50IG9sID4gbGkge1xuXHRsaXN0LXN0eWxlLXR5cGU6IGRlY2ltYWw7XG59XG5cbi5lbnRyeS1jb250ZW50IHVsID4gbGkge1xuXHRsaXN0LXN0eWxlLXR5cGU6IGRpc2M7XG59XG5cbi5lbnRyeS1jb250ZW50IG9sIG9sLFxuLmVudHJ5LWNvbnRlbnQgdWwgdWwge1xuXHRtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4uZW50cnktY29udGVudCBjb2RlIHtcblx0YmFja2dyb3VuZC1jb2xvcjogIzMzMztcblx0Y29sb3I6ICNkZGQ7XG59XG5cbi8qICMjIEVudHJ5IE1ldGFcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5wLmVudHJ5LW1ldGEge1xuXHRmb250LXNpemU6IDE2cHg7XG5cdG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5lbnRyeS1oZWFkZXIgLmVudHJ5LW1ldGEge1xuXHRtYXJnaW4tYm90dG9tOiAyNHB4O1xufVxuXG4uZW50cnktZm9vdGVyIC5lbnRyeS1tZXRhIHtcblx0Ly9ib3JkZXItdG9wOiAycHggc29saWQgI2Y1ZjVmNTtcblx0cGFkZGluZy10b3A6IDI0cHg7XG59XG5cbi5lbnRyeS1jYXRlZ29yaWVzLFxuLmVudHJ5LXRhZ3Mge1xuXHRkaXNwbGF5OiBibG9jaztcbn1cblxuLmVudHJ5LWNvbW1lbnRzLWxpbms6OmJlZm9yZSB7XG5cdGNvbnRlbnQ6IFwiXFwyMDE0XCI7XG5cdG1hcmdpbjogMCA2cHggMCAycHg7XG59XG5cbi8qICMjIFBhZ2luYXRpb25cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4ucGFnaW5hdGlvbiB7XG5cdGNsZWFyOiBib3RoO1xuXHRtYXJnaW46IDQwcHggMDtcbn1cblxuLmFkamFjZW50LWVudHJ5LXBhZ2luYXRpb24ge1xuXHRtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4uYXJjaGl2ZS1wYWdpbmF0aW9uIGxpIHtcblx0ZGlzcGxheTogaW5saW5lO1xufVxuXG4uYXJjaGl2ZS1wYWdpbmF0aW9uIGxpIGEge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjMzMzO1xuXHRjb2xvcjogI2ZmZjtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdGZvbnQtc2l6ZTogMTZweDtcblx0cGFkZGluZzogOHB4IDEycHg7XG59XG5cbi5hcmNoaXZlLXBhZ2luYXRpb24gbGkgYTpob3Zlcixcbi5hcmNoaXZlLXBhZ2luYXRpb24gLmFjdGl2ZSBhIHtcblx0YmFja2dyb3VuZC1jb2xvcjogI2U1NTU0ZTtcbn1cblxuLyogIyMgQ29tbWVudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4uY29tbWVudC1yZXNwb25kLFxuLmVudHJ5LWNvbW1lbnRzLFxuLmVudHJ5LXBpbmdzIHtcblx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcblx0bWFyZ2luLWJvdHRvbTogNDBweDtcbn1cblxuLmNvbW1lbnQtcmVzcG9uZCxcbi5lbnRyeS1waW5ncyB7XG5cdHBhZGRpbmc6IDQwcHggNDBweCAxNnB4O1xufVxuXG4uZW50cnktY29tbWVudHMge1xuXHRwYWRkaW5nOiA0MHB4O1xufVxuXG4uY29tbWVudC1oZWFkZXIge1xuXHRmb250LXNpemU6IDE2cHg7XG59XG5cbmxpLmNvbW1lbnQge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xuXHRib3JkZXI6IDJweCBzb2xpZCAjZmZmO1xuXHRib3JkZXItcmlnaHQ6IG5vbmU7XG59XG5cbi5jb21tZW50LWNvbnRlbnQge1xuXHRjbGVhcjogYm90aDtcbn1cblxuLmNvbW1lbnQtbGlzdCBsaSB7XG5cdG1hcmdpbi10b3A6IDI0cHg7XG5cdHBhZGRpbmc6IDMycHg7XG59XG5cbi5jb21tZW50LWxpc3QgbGkgbGkge1xuXHRtYXJnaW4tcmlnaHQ6IC0zMnB4O1xufVxuXG4uY29tbWVudC1yZXNwb25kIGlucHV0W3R5cGU9XCJlbWFpbFwiXSxcbi5jb21tZW50LXJlc3BvbmQgaW5wdXRbdHlwZT1cInRleHRcIl0sXG4uY29tbWVudC1yZXNwb25kIGlucHV0W3R5cGU9XCJ1cmxcIl0ge1xuXHR3aWR0aDogNTAlO1xufVxuXG4uY29tbWVudC1yZXNwb25kIGxhYmVsIHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdG1hcmdpbi1yaWdodDogMTJweDtcbn1cblxuLmVudHJ5LWNvbW1lbnRzIC5jb21tZW50LWF1dGhvciB7XG5cdG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5lbnRyeS1waW5ncyAucmVwbHkge1xuXHRkaXNwbGF5OiBub25lO1xufVxuXG4uYnlwb3N0YXV0aG9yIHtcbn1cblxuLmZvcm0tYWxsb3dlZC10YWdzIHtcblx0YmFja2dyb3VuZC1jb2xvcjogI2Y1ZjVmNTtcblx0Zm9udC1zaXplOiAxNnB4O1xuXHRwYWRkaW5nOiAyNHB4O1xufVxuIiwiLyogIyBTaWRlYmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4uc2lkZWJhciB7XG5cdGZvbnQtc2l6ZTogMTZweDtcbn1cblxuLnNpZGViYXIgbGkge1xuXHRib3JkZXItYm90dG9tOiAxcHggZG90dGVkICNkZGQ7XG5cdG1hcmdpbi1ib3R0b206IDEwcHg7XG5cdHBhZGRpbmctYm90dG9tOiAxMHB4O1xufVxuXG4uc2lkZWJhciBwOmxhc3QtY2hpbGQsXG4uc2lkZWJhciB1bCA+IGxpOmxhc3QtY2hpbGQge1xuXHRtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4uc2lkZWJhciAud2lkZ2V0IHtcblx0YmFja2dyb3VuZC1jb2xvcjogJGxpZ2h0LWdyZXk7XG5cdG1hcmdpbi1ib3R0b206ICRsYXJnZXI7XG5cdHBhZGRpbmc6ICRlbnRyeS1zaWRlLW1hcmdpbjtcbn1cbiIsIi8qXG4gKiBQYWdlIEJ1aWxkZXJcbiAqIChCZWF2ZXIgYnVpbGRlcikgLSBkZWZhdWx0IHN0eWxpbmdcbiAqL1xuXG4vLyBwYWdlIGJ1aWxkZXIgZGVmYXVsdHNcbi5mbC1idWlsZGVyIHtcblxuICAvLyBNYXJnaW5zIG9uIHBhZ2UgYnVpbGRlciBwYWdlc1xuICAuZW50cnkge1xuICAgIHBhZGRpbmc6IDA7XG5cbiAgIFx0LmVudHJ5LWhlYWRlcixcbiAgIFx0LmVudHJ5LWZvb3RlciB7XG4gICBcdFx0cGFkZGluZzogJGVudHJ5LXRvcGJvdHRvbS1tYXJnaW4gJGVudHJ5LXNpZGUtbWFyZ2luIDA7XG4gICBcdH1cbiAgfVxuXG5cdC5zaXRlLWlubmVyIHtcblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1hbWEtYmVhcikge1xuXHRcdFx0cGFkZGluZzogMDtcblx0XHR9XG5cblx0XHRAaW5jbHVkZSBicmVha3BvaW50KCRicm90aGVyLWJlYXIpIHtcblx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0fVxuXHR9XG59XG5cbi5mbC1yb3ctY29udGVudCB7XG5cdHBhZGRpbmc6ICRyb3ctbWFyZ2luO1xufVxuXG4uZmwtY29sLWNvbnRlbnQge1xuXHRtYXJnaW46IDAgJGNvbHVtbi1tYXJnaW47XG4gIHBhZGRpbmctdG9wOiAkY29sdW1uLW1hcmdpbjtcbiAgcGFkZGluZy1ib3R0b206ICRjb2x1bW4tbWFyZ2luO1xufVxuXG4uZmwtY29sLWdyb3VwIHtcbiAgbWFyZ2luLWxlZnQ6IC0kY29sdW1uLW1hcmdpbjtcbiAgbWFyZ2luLXJpZ2h0OiAtJGNvbHVtbi1tYXJnaW47XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkYnJvdGhlci1iZWFyKSB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICB9XG59XG5cbi5mbC1jb2wtc21hbGwge1xuICBAaW5jbHVkZSBicmVha3BvaW50KCRicm90aGVyLWJlYXIpIHtcbiAgICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgfVxufVxuXG4uZmwtbW9kdWxlLWhlYWRpbmcge1xuICBoMSwgaDIsIGgzLCBoNCwgaDUsIGg2IHtcbiAgICAmLmZsLWhlYWRpbmcge1xuICAgICAgQGV4dGVuZCAuaGVhZGluZy1zdHlsZTtcbiAgICB9XG4gIH1cblxuICBoMS5mbC1oZWFkaW5nIHtcbiAgICAgY29sb3I6ICRjaGFyY29sO1xuIH1cbn1cblxuLmZsLWN0YS13cmFwIC5mbC1jdGEtdGl0bGUge1xuICAgY29sb3I6ICRjaGFyY29sICFpbXBvcnRhbnQ7XG59XG5cbi5jb250ZW50LXNpZGViYXIsXG4uc2lkZWJhci1jb250ZW50LFxuLmNvbnRlbnQtc2lkZWJhci1zaWRlYmFyLFxuLnNpZGViYXItY29udGVudC1zaWRlYmFyLFxuLnNpZGViYXItc2lkZWJhci1jb250ZW50IHtcblxuICAuZmwtcm93LWNvbnRlbnQsXG4gIC5mbC1jb2wtY29udGVudCB7XG4gICAgcGFkZGluZy10b3A6IDA7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG4gIH1cblxuICAuZmwtcm93LnBhZGRpbmcge1xuICAgIC5mbC1yb3ctY29udGVudCB7XG4gICAgICBwYWRkaW5nOiAkcm93LW1hcmdpbjtcbiAgICB9XG4gIH1cbn1cblxuLmZsLWNvbC5wYWRkaW5nIHtcbiAgLmZsLWNvbC1jb250ZW50IHtcbiAgICBwYWRkaW5nOiAkY29sdW1uLW1hcmdpbjtcbiAgfVxufVxuXG4uZWRnZS10by1lZGdlIHtcblx0LmZsLXJvdy1jb250ZW50LFxuXHQuZmwtY29sLWNvbnRlbnQge1xuXHRcdHBhZGRpbmc6IDA7XG5cdH1cbn1cblxuLy8gRnVsbCBXaWR0aCBQYWdlIHRlbXBsYXRlXG4ucGFnZS10ZW1wbGF0ZS1wYWdlX2J1aWxkZXIsXG4ucGFnZS10ZW1wbGF0ZS1wYWdlX2xhbmRpbmcge1xuICAuc2l0ZS1pbm5lciB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmctdG9wOiAwO1xuXG4gICAgLndyYXAge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gIFx0fVxuXG4gICAgLmVudHJ5IHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICB9XG59XG5cbi5mbC1jb2wuYmctbGlnaHQge1xuICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkYnJvdGhlci1iZWFyKSB7XG4gICAgICBwYWRkaW5nOiAkc21hbGwgJG1lZCAhaW1wb3J0YW50O1xuXG4gICAgICAuZmwtbW9kdWxlLWNvbnRlbnQge1xuICAgICAgICAgbWFyZ2luLXRvcDogLSRzbWFsbDtcbiAgICAgICAgIG1hcmdpbi1ib3R0b206IC0kbWVkO1xuICAgICAgfVxuXG4gICB9XG59XG5cbi5wbGF5LWdyaWQge1xuICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkYnJvdGhlci1iZWFyKSB7XG4gICAgICAuZmwtY29sIHtcbiAgICAgICAgIEBpbmNsdWRlIGdhbGxlcnkoMiBvZiA0KTtcbiAgICAgICAgIG1hcmdpbi1ib3R0b206ICRzbWFsbDtcblxuICAgICAgICAgLmZsLWNvbC1jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5mbC1jb2wtc21hbGwge1xuICAgICAgICAgd2lkdGg6IDQ2LjY2NjY3JSAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgfVxufVxuIiwiLy8gSXNvbGF0aW9uIFN5bnRheFxuLy8gPT09PT09PT09PT09PT09PVxuXG5cbi8vIElzb2xhdGUgW01peGluXVxuLy8gLS0tLS0tLS0tLS0tLS0tXG4vLyBTZXQgaXNvbGF0aW9uIGFzIGFuIG92ZXJyaWRlLlxuLy8gLSAkbG9jYXRpb246IDxzcGFuPlxuQG1peGluIGlzb2xhdGUoXG4gICRpc29sYXRlOiAxXG4pIHtcbiAgJGluc3BlY3Q6ICRpc29sYXRlO1xuXG4gICRvdXRwdXQ6IChcbiAgICBwdXNoOiBpc29sYXRlKCRpc29sYXRlKSxcbiAgICBmbG93OiBzdXN5LWdldChmbG93LCAkaXNvbGF0ZSksXG4gICk7XG5cbiAgQGluY2x1ZGUgc3VzeS1pbnNwZWN0KGlzb2xhdGUsICRpbnNwZWN0KTtcbiAgQGluY2x1ZGUgaXNvbGF0ZS1vdXRwdXQoJG91dHB1dC4uLik7XG59XG5cblxuLy8gSXNvbGF0ZSBbZnVuY3Rpb25dXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFJldHVybiBhbiBpc29sYXRpb24gb2Zmc2V0IHdpZHRoLlxuLy8gLSAkbG9jYXRpb246IDxzcGFuPlxuQGZ1bmN0aW9uIGlzb2xhdGUoXG4gICRpc29sYXRlOiAxXG4pIHtcbiAgJGlzb2xhdGU6IHBhcnNlLXNwYW4oJGlzb2xhdGUpO1xuICAkaXNvbGF0aW9uOiBzdXN5LWdldChzcGFuLCAkaXNvbGF0ZSk7XG5cbiAgQGlmICRpc29sYXRpb24gYW5kIG5vdChnZXQtbG9jYXRpb24oJGlzb2xhdGUpKSB7XG4gICAgJG5ldzogKFxuICAgICAgc3BhbjogbnVsbCxcbiAgICAgIGxvY2F0aW9uOiAkaXNvbGF0aW9uLFxuICAgICk7XG4gICAgJGlzb2xhdGU6IG1hcC1tZXJnZSgkaXNvbGF0ZSwgJG5ldyk7XG4gIH1cblxuICBAcmV0dXJuIGdldC1pc29sYXRpb24oJGlzb2xhdGUpO1xufVxuXG5cbi8vIEdldCBJc29sYXRpb25cbi8vIC0tLS0tLS0tLS0tLS1cbi8vIFJldHVybiB0aGUgaXNvbGF0aW9uIG9mZnNldCB3aWR0aFxuLy8gLSAkaW5wdXQ6IDxtYXA+XG5AZnVuY3Rpb24gZ2V0LWlzb2xhdGlvbihcbiAgJGlucHV0XG4pIHtcbiAgJGxvY2F0aW9uICAgOiBnZXQtbG9jYXRpb24oJGlucHV0KTtcbiAgJGNvbHVtbnMgICAgOiBzdXN5LWdldChjb2x1bW5zLCAkaW5wdXQpO1xuICAkd2lkdGggICAgICA6IG51bGw7XG5cbiAgQGlmIHR5cGUtb2YoJGxvY2F0aW9uKSA9PSBudW1iZXIgYW5kIG5vdCh1bml0bGVzcygkbG9jYXRpb24pKSB7XG4gICAgJHdpZHRoOiAkbG9jYXRpb247XG4gIH0gQGVsc2UgaWYgJGxvY2F0aW9uIHtcbiAgICAkcHVzaDogJGxvY2F0aW9uIC0gMTtcbiAgICBAaWYgJHB1c2ggPiAwIHtcbiAgICAgICRwdXNoOiBtYXAtbWVyZ2UoJGlucHV0LCAoXG4gICAgICAgIHNwYW46ICRwdXNoLFxuICAgICAgICBsb2NhdGlvbjogMSxcbiAgICAgICAgc3ByZWFkOiB3aWRlLFxuICAgICAgKSk7XG4gICAgICAkd2lkdGg6IGdldC1zcGFuLXdpZHRoKCRwdXNoKTtcbiAgICB9XG4gIH1cblxuICBAaWYgc3VzeS1nZXQoZ3V0dGVyLXBvc2l0aW9uLCAkaW5wdXQpID09IHNwbGl0XG4gICAgICBhbmQgc3VzeS1nZXQoZ3V0dGVycywgJGlucHV0KSA+IDAge1xuICAgICR3aWR0aDogaWYoJHdpZHRoID09IG51bGwsIGd1dHRlcnMoJGlucHV0KSwgJHdpZHRoICsgZ3V0dGVycygkaW5wdXQpKTtcbiAgfVxuXG4gIEByZXR1cm4gJHdpZHRoIG9yIDA7XG59XG4iLCIvLyBHYWxsZXJ5IFN5bnRheFxuLy8gPT09PT09PT09PT09PT1cblxuLy8gR2FsbGVyeVxuLy8gLS0tLS0tLVxuLy8gQ3JlYXRlIGFuIGlzb2xhdGVkIGdhbGxlcnlcbi8vIC0gJHNwYW4gICAgICAgIDogPHNwYW4+XG4vLyAtIFskc2VsZWN0b3JdICA6IGNoaWxkIHwgb2YtdHlwZVxuQG1peGluIGdhbGxlcnkoXG4gICRzcGFuLFxuICAkc2VsZWN0b3I6IGNoaWxkXG4pIHtcbiAgJGluc3BlY3QgICAgOiAkc3BhbjtcbiAgJHNwYW4gICAgICAgOiBwYXJzZS1zcGFuKCRzcGFuKTtcbiAgJHNwYW4gICAgICAgOiBtYXAtbWVyZ2UoJHNwYW4sIChsb2NhdGlvbjogMSkpO1xuXG4gICRuICAgICAgICAgICAgOiBzdXN5LWdldChzcGFuLCAkc3Bhbik7XG4gICRjb2x1bW5zICAgICAgOiBzdXN5LWdldChjb2x1bW5zLCAkc3Bhbik7XG4gICRjb250ZXh0ICAgICAgOiBzdXN5LWNvdW50KCRjb2x1bW5zKTtcbiAgJGZsb3cgICAgICAgICA6IHN1c3ktZ2V0KGZsb3csICRzcGFuKTtcblxuICAkaW5zaWRlICAgICAgIDogaXMtaW5zaWRlKCRzcGFuKTtcbiAgJGZyb20gICAgICAgICA6IGZyb20oJGZsb3cpO1xuICAkbGluZSAgICAgICAgIDogZmxvb3IoJGNvbnRleHQgLyAkbik7XG4gICRzeW1tZXRyaWNhbCAgOiBpcy1zeW1tZXRyaWNhbCgkY29sdW1ucyk7XG5cbiAgJG91dHB1dDogKFxuICAgIHdpZHRoICAgICAgICAgICAgIDogbnVsbCxcbiAgICBmbG9hdCAgICAgICAgICAgICA6IGZyb20sXG4gICAgbWFyZ2luLWJlZm9yZSAgICAgOiBudWxsLFxuICAgIG1hcmdpbi1hZnRlciAgICAgIDogbnVsbCxcbiAgICBwYWRkaW5nLWJlZm9yZSAgICA6IG51bGwsXG4gICAgcGFkZGluZy1hZnRlciAgICAgOiBudWxsLFxuICAgIGZsb3cgICAgICAgICAgICAgIDogJGZsb3csXG4gICk7XG5cbiAgQGlmICRpbnNpZGUge1xuICAgICRndXR0ZXJzOiBnZXQtZ3V0dGVycygkc3Bhbik7XG4gICAgJG91dHB1dDogbWFwLW1lcmdlKCRvdXRwdXQsIChcbiAgICAgIHBhZGRpbmctYmVmb3JlOiBtYXAtZ2V0KCRndXR0ZXJzLCBiZWZvcmUpLFxuICAgICAgcGFkZGluZy1hZnRlcjogbWFwLWdldCgkZ3V0dGVycywgYWZ0ZXIpLFxuICAgICkpO1xuICB9XG5cbiAgQGlmICRzeW1tZXRyaWNhbCB7XG4gICAgJG91dHB1dDogbWFwLW1lcmdlKCRvdXRwdXQsICh3aWR0aDogZ2V0LXNwYW4td2lkdGgoJHNwYW4pKSk7XG4gIH1cblxuICAkYm94ICAgICAgICAgIDogc3VzeS1nZXQoYm94LXNpemluZywgJHNwYW4pO1xuICAkZ2xvYmFsLWJveCAgIDogaWYoc3VzeS1nZXQoZ2xvYmFsLWJveC1zaXppbmcpID09ICdib3JkZXItYm94JywgdHJ1ZSwgZmFsc2UpO1xuXG4gIEBpbmNsdWRlIHN1c3ktaW5zcGVjdChnYWxsZXJ5LCAkaW5zcGVjdCk7XG5cbiAgLy8gQ29sbGVjdGl2ZSBPdXRwdXRcbiAgQGlmICRib3ggPT0gYm9yZGVyLWJveCBvciAoJGluc2lkZSBhbmQgbm90KCRib3gpIGFuZCBub3QoJGdsb2JhbC1ib3gpKSB7XG4gICAgQGluY2x1ZGUgb3V0cHV0KChib3gtc2l6aW5nOiBib3JkZXItYm94KSk7XG4gIH0gQGVsc2UgaWYgJGJveCA9PSBjb250ZW50LWJveCB7XG4gICAgQGluY2x1ZGUgb3V0cHV0KChib3gtc2l6aW5nOiBjb250ZW50LWJveCkpO1xuICB9XG5cbiAgQGluY2x1ZGUgZmxvYXQtc3Bhbi1vdXRwdXQoJG91dHB1dC4uLik7XG5cbiAgLy8gSW5kaXZpZHVhbCBMb29wXG4gIEBmb3IgJGl0ZW0gZnJvbSAxIHRocm91Z2ggJGxpbmUge1xuICAgICRudGg6ICcjeyRsaW5lfW4gKyAjeyRpdGVtfSc7XG4gICAgJjpudGgtI3skc2VsZWN0b3J9KCN7JG50aH0pIHtcbiAgICAgIC8vIEluZGl2aWR1YWwgUHJlcFxuICAgICAgJG91dHB1dDogKFxuICAgICAgICB3aWR0aCAgICAgICAgICAgICA6IGlmKCRzeW1tZXRyaWNhbCwgbnVsbCwgZ2V0LXNwYW4td2lkdGgoJHNwYW4pKSxcbiAgICAgICAgZmxvYXQgICAgICAgICAgICAgOiBudWxsLFxuICAgICAgICBtYXJnaW4tYmVmb3JlICAgICA6IGdldC1pc29sYXRpb24oJHNwYW4pLFxuICAgICAgICBtYXJnaW4tYWZ0ZXIgICAgICA6IC0xMDAlLFxuICAgICAgICBwYWRkaW5nLWJlZm9yZSAgICA6IG51bGwsXG4gICAgICAgIHBhZGRpbmctYWZ0ZXIgICAgIDogbnVsbCxcbiAgICAgICAgZmxvdyAgICAgICAgICAgICAgOiAkZmxvdyxcbiAgICAgICk7XG5cbiAgICAgIC8vIEluZGl2aWR1YWwgT3V0cHV0XG4gICAgICBAaW5jbHVkZSBmbG9hdC1zcGFuLW91dHB1dCgkb3V0cHV0Li4uKTtcblxuICAgICAgQGlmIGdldC1lZGdlKCRzcGFuKSA9PSBmaXJzdCB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrO1xuICAgICAgICBAaW5jbHVkZSBmaXJzdCgkc3Bhbik7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgQGluY2x1ZGUgbm9icmVhaztcbiAgICAgIH1cblxuICAgICAgLy8gSW5kaXZpZHVhbCBMb2NhdGlvbiBJbmNyZW1lbnRcbiAgICAgICRsb2NhdGlvbjogZ2V0LWxvY2F0aW9uKCRzcGFuKSArICRuO1xuICAgICAgJGxvY2F0aW9uOiBpZigkbG9jYXRpb24gPiAkY29udGV4dCwgMSwgJGxvY2F0aW9uKTtcbiAgICAgICRzcGFuOiBtYXAtbWVyZ2UoJHNwYW4sIChsb2NhdGlvbjogJGxvY2F0aW9uKSk7XG4gICAgfVxuICB9XG59XG4iLCIvKipcbiAqIEljb24gRm9udHNcbiAqL1xuIFxuLnBob25lLW51bWJlciB7XG5cdG1hcmdpbi1ib3R0b206ICRzbWFsbDtcblx0XG5cdEBpbmNsdWRlIGljb24oJ3Bob25lJywgJ2JlZm9yZScsIHRydWUsIDEuM2VtLCAkdG9wOjFweCwgJG1hcmdpbjo2cHgpIHtcblx0XHRtYXJnaW4tbGVmdDogMnB4O1xuXHR9XG4gfVxuIFxuIC5tb2JpbGUtbnVtYmVyIHtcbiBcdG1hcmdpbi1ib3R0b206ICRzbWFsbDtcbiBcdFxuXHRAaW5jbHVkZSBpY29uKCdtb2JpbGUnLCAnYmVmb3JlJywgdHJ1ZSwgMS4zZW0sICR0b3A6MXB4LCAkbWFyZ2luOjEwcHgpIHtcblx0XHQgbWFyZ2luLWxlZnQ6IDNweDtcblx0IH1cbiB9XG4gXG4gLmFkZHJlc3MtZnVsbCB7XG4gXHRtYXJnaW4tYm90dG9tOiAkc21hbGw7XG4gXHRcblx0QGluY2x1ZGUgaWNvbignYWRkcmVzcycsICdiZWZvcmUnLCB0cnVlLCAxLjNlbSwgJHRvcDowLCAkbWFyZ2luOjVweCkge1xuXHRcdGZsb2F0OiBsZWZ0O1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHR9XG5cdCBcblx0LnN0cmVldC1hZGRyZXNzLXdyYXAsXG5cdC5jaXR5LXBvc3Rjb2RlIHtcblx0XHRwYWRkaW5nLWxlZnQ6IDI1cHg7XG5cdH1cbiB9XG4gXG4gLnNvY2lhbC1uZXR3b3JrLWxpbmsge1xuXHQgbWFyZ2luLWJvdHRvbTogJHNtYWxsO1xuXHQgXG5cdCAmLmZhY2Vib29rIHtcblx0XHQgIEBpbmNsdWRlIGljb24oJ2ZhY2Vib29rLXNxdWFyZWQnLCAnYmVmb3JlJywgdHJ1ZSwgMS4zZW0sICR0b3A6MXB4LCAkbWFyZ2luOjdweCkge1xuXHRcdFx0ICBjb2xvcjogJGZhY2Vib29rO1xuXHRcdCAgfVxuXHQgfVxuIH1cbiBcbiAuY29udGFjdC11cy1wYWdlLWNvbnRlbnQge1xuXHQgbWFyZ2luLXRvcDogJG5vcm07XG4gfVxuIFxuIiwiLmNvbnRlbnQgLnJvb20tY29udGFpbmVyIHtcbiAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1hbWEtYmVhci1hbmQtdXApIHtcbiAgICAgIEBpbmNsdWRlIGdhbGxlcnkoNCBvZiAxMik7XG4gICAgICBwYWRkaW5nLXRvcDogJG5vcm07XG4gICB9XG59XG5cbi5jb250ZW50IC5saXN0IC5yb29tLWNvbnRhaW5lciB7XG4gICBAaW5jbHVkZSBicmVha3BvaW50KCRtYW1hLWJlYXItYW5kLXVwKSB7XG4gICAgICBAaW5jbHVkZSBzcGFuKDEgb2YgMSk7XG4gICB9XG59XG5cbi5jb250ZW50IC5saXN0IC5yb29tLWNvbnRhaW5lcixcbi5zaWRlYmFyIC5yb29tLWNvbnRhaW5lciB7XG4gICBoNCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgfVxuXG4gICAucm9vbS1yYXRlcyB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAkbm9ybTtcbiAgIH1cbn1cblxuLmFjY2VudHMtdG9nZ2xlLWNvbnRyb2wge1xuICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgcGFkZGluZzogJG5vcm0gJG1lZDtcbiAgIG1hcmdpbi10b3A6IC0xMHB4O1xuICAgYmFja2dyb3VuZDogI0Y4RjhGODtcbiAgIEBleHRlbmQgLnRvZ2dsZS1wbHVzLWJ1dHRvbjtcblxuICAgJi5leHBhbmRlZCB7XG4gICAgICBAZXh0ZW5kIC50b2dnbGUtcGx1cy1idXR0b24tZXhwYW5kZWQ7XG4gICB9XG5cbiAgIGgzIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICB9XG59XG5cbi5hY2NlbnRzLXRvZ2dsZS1ib3gge1xuICAgYmFja2dyb3VuZDogI0Y4RjhGODtcbiAgIHBhZGRpbmc6ICRub3JtICRtZWQ7XG5cbiAgIC5idXR0b24ge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2NmNDUyMDtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgcGFkZGluZzogMTBweCAyMHB4O1xuICAgICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICAgfVxufVxuXG5cbiNUQl93aW5kb3cge1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDEwMCUgIWltcG9ydGFudDtcbiAgbWFyZ2luLXRvcDogMHB4ICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1sZWZ0OiAwcHggIWltcG9ydGFudDtcbiAgdG9wOiAxNSUgIWltcG9ydGFudDtcbiAgcmlnaHQ6IDEwJSAhaW1wb3J0YW50O1xuICBib3R0b206IDE1JSAhaW1wb3J0YW50O1xuICBsZWZ0OiAxMCUgIWltcG9ydGFudDtcbiAgd2lkdGg6IDgwJSAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDUwJSAhaW1wb3J0YW50O1xufVxuXG4jVEJfYWpheENvbnRlbnQge1xuICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgIGhlaWdodDogMTAwJSAhaW1wb3J0YW50O1xufVxuXG4jVEJfSW1hZ2Uge1xuICB3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICBtYXgtaGVpZ2h0OiAxMDAlO1xuICBtYXJnaW46IGF1dG8gIWltcG9ydGFudDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDBweDtcbiAgYm90dG9tOiAwcHg7XG4gIGxlZnQ6IDBweDtcbiAgcmlnaHQ6IDBweDtcbiAgcGFkZGluZzogMjBweDtcbiAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAjVEJfd2luZG93IHtcbiAgICB0b3A6IDEwJSAhaW1wb3J0YW50O1xuICAgIGJvdHRvbTogMTAlICFpbXBvcnRhbnQ7XG4gICAgaGVpZ2h0OiA4MCUgIWltcG9ydGFudDtcbiAgfVxufVxuXG4uZmFjaWxpdGllcy1pY29uIHtcbiAgIGgzLCBoNCB7XG4gICAgICBjb2xvcjogbGlnaHRlbigkY2hhcmNvbCwgMTUlKTtcbiAgIH1cblxuICAgLmZsLWNhbGxvdXQtdGV4dCB7XG4gICAgICBtYXJnaW4tdG9wOiAtMTBweDtcbiAgICAgIGNvbG9yOiBsaWdodGVuKCRjaGFyY29sLCAyMCUpO1xuICAgICAgZm9udC1zaXplOiAkbm9ybSowLjk7XG4gICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICB9XG59XG4iXSwic291cmNlUm9vdCI6Ii9zb3VyY2UvIn0= */
