@charset "UTF-8";
/*
// ----------------------------------------------
// Usage example:
// For IE set $mq-support to false.
// Set the fixed value.
// Then use mixins to test whether styles should be applied.
// ----------------------------------------------

$mq-support: false;
$mq-fixed-value: 1024;

// Renders at fixed value
@include bp (min-width, 300px) { 
    div { color:#000; }
}

// Doesn't render without MQ support
@include bp (min-width, 1200px) { 
    div { color:#FFF; }
}

// Doesn't render without MQ support
@include bp (max-width, 300px) { 
    div { color:#444; }
}

// Renders at fixed value
@include bp (max-width, 1200px) { 
    div { color:#888; }
}

// ----------------------------------------------
*/
@font-face {
  font-family: 'UbuntuTitling-Bold';
  src: url("fonts/UbuntuTitling-Bold.eot?#iefix") format("embedded-opentype"), url("fonts/UbuntuTitling-Bold.woff") format("woff"), url("fonts/UbuntuTitling-Bold.ttf") format("truetype"), url("fonts/UbuntuTitling-Bold.svg#UbuntuTitling-Bold") format("svg");
  font-weight: normal;
  font-style: normal; }

@font-face {
  font-family: 'UbuntuTitling-Bold';
  src: url("fonts/UbuntuTitling-Bold.eot?#iefix") format("embedded-opentype"), url("fonts/UbuntuTitling-Bold.woff") format("woff"), url("fonts/UbuntuTitling-Bold.ttf") format("truetype"), url("fonts/UbuntuTitling-Bold.svg#UbuntuTitling-Bold") format("svg");
  font-weight: bold;
  font-style: normal; }

/*! normalize.css v2.0.1 | MIT License | git.io/normalize */
/* ==========================================================================
   HTML5 display definitions
   ========================================================================== */
/*
 * Corrects `block` display not defined in IE 8/9.
 */
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
nav,
section,
summary {
  display: block; }

/*
 * Corrects `inline-block` display not defined in IE 8/9.
 */
audio,
canvas,
video {
  display: inline-block; }

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

/*
 * Addresses styling for `hidden` attribute not present in IE 8/9.
 */
[hidden] {
  display: none; }

/* ==========================================================================
   Base
   ========================================================================== */
/*
 * 1. Sets default font family to sans-serif.
 * 2. Prevents iOS text size adjust after orientation change, without disabling
 *    user zoom.
 */
html {
  font-family: sans-serif;
  /* 1 */
  -webkit-text-size-adjust: 100%;
  /* 2 */
  -ms-text-size-adjust: 100%;
  /* 2 */ }

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

/* ==========================================================================
   Links
   ========================================================================== */
/*
 * Addresses `outline` inconsistency between Chrome and other browsers.
 */
a:focus {
  outline: thin dotted; }

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

/* ==========================================================================
   Typography
   ========================================================================== */
/*
 * Addresses `h1` font sizes within `section` and `article` in Firefox 4+,
 * Safari 5, and Chrome.
 */
h1 {
  font-size: 2em; }

/*
 * Addresses styling not present in IE 8/9, Safari 5, and Chrome.
 */
abbr[title] {
  border-bottom: 1px dotted; }

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

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

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

/*
 * Corrects font family set oddly in Safari 5 and Chrome.
 */
code,
kbd,
pre,
samp {
  font-family: monospace, serif;
  font-size: 1em; }

/*
 * Improves readability of pre-formatted text in all browsers.
 */
pre {
  white-space: pre;
  white-space: pre-wrap;
  word-wrap: break-word; }

/*
 * Sets consistent quote types.
 */
q {
  quotes: "\201C" "\201D" "\2018" "\2019"; }

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

/*
 * Prevents `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
   ========================================================================== */
/*
 * Removes border when inside `a` element in IE 8/9.
 */
img {
  border: 0; }

/*
 * Corrects overflow displayed oddly in IE 9.
 */
svg:not(:root) {
  overflow: hidden; }

/* ==========================================================================
   Figures
   ========================================================================== */
/*
 * Addresses margin not present in IE 8/9 and Safari 5.
 */
figure {
  margin: 0; }

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

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

/*
 * 1. Corrects font family not being inherited in all browsers.
 * 2. Corrects font size not being inherited in all browsers.
 * 3. Addresses margins set differently in Firefox 4+, Safari 5, and Chrome
 */
button,
input,
select,
textarea {
  font-family: inherit;
  /* 1 */
  font-size: 100%;
  /* 2 */
  margin: 0;
  /* 3 */ }

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

/*
 * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
 *    and `video` controls.
 * 2. Corrects inability to style clickable `input` types in iOS.
 * 3. Improves 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],
input[disabled] {
  cursor: default; }

/*
 * 1. Addresses box sizing set to `content-box` in IE 8/9.
 * 2. Removes excess padding in IE 8/9.
 */
input[type="checkbox"],
input[type="radio"] {
  box-sizing: border-box;
  /* 1 */
  padding: 0;
  /* 2 */ }

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

/*
 * Removes inner padding and search cancel button in Safari 5 and Chrome
 * on OS X.
 */
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none; }

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

/*
 * 1. Removes default vertical scrollbar in IE 8/9.
 * 2. Improves readability and alignment in all browsers.
 */
textarea {
  overflow: auto;
  /* 1 */
  vertical-align: top;
  /* 2 */ }

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

/* ============================================ *
 * Reset
 * ============================================ */
*,
*:before,
*:after {
  margin: 0;
  padding: 0; }

html {
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  /* Prevent tap highlight on iOS/Android */
  -webkit-text-size-adjust: 100%;
  /* Prevent automatic scaling on iOS */ }

body {
  background: #FFFFFF;
  color: #000000;
  line-height: 1; }

html,
body,
img,
fieldset,
abbr,
acronym {
  border: 0; }

h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: 100%;
  font-weight: normal; }

th,
code,
cite,
caption {
  font-weight: normal;
  font-style: normal;
  text-align: left; }

address {
  font-style: normal; }

fieldset {
  margin: 0;
  padding: 0;
  border: 0; }

img {
  display: block; }

ol,
ul {
  list-style: none; }

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

input:focus,
input[type="search"]:focus {
  outline-offset: -2px; }

input[type="search"] {
  -webkit-appearance: none;
  /* 1 */
  /* 2 */
  box-sizing: border-box; }

iframe, img {
  max-width: 100%; }

/* ============================================ *
 * Base Styles
 * ============================================ */
@-ms-viewport {
  width: device-width; }

@-o-viewport {
  width: device-width; }

@viewport {
  width: device-width; }

a, button {
  -ms-touch-action: manipulation;
  touch-action: manipulation; }

body,
button,
input,
select,
table,
textarea {
  font-family: Arial, sans-serif;
  color: #003b5f;
  font-size: 14px;
  line-height: 1.5; }

body {
  background: #fdfdfd;
  background-image: url(images/bg.jpg);
  background-repeat: repeat-x;
  text-rendering: optimizeLegibility;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased; }

a {
  color: #1f86bd;
  text-decoration: none; }

a:hover {
  text-decoration: underline; }

a:focus {
  outline-color: #1d7eb2;
  color: #09293a; }

ol,
ul {
  list-style: none;
  margin: 0;
  padding: 0; }

strong {
  font-weight: normal; }

/* ============================================ *
 * Typography
 * ============================================ */
h1, .h1 {
  margin: 0;
  margin-bottom: 0.7em;
  color: #003b5f;
  font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
  font-size: 28px;
  font-weight: normal;
  font-style: normal;
  line-height: 1.2; }

h2, .h2 {
  margin: 0;
  margin-bottom: 0.5em;
  color: #003b5f;
  font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
  font-size: 24px;
  font-weight: normal;
  font-style: normal;
  line-height: 1.2; }

h3, .h3 {
  margin: 0;
  margin-bottom: 10px;
  color: #003b5f;
  font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
  font-size: 20px;
  font-weight: normal;
  font-style: normal;
  line-height: 1.1; }

h4, .h4 {
  margin: 0;
  margin-bottom: 10px;
  color: #003b5f;
  font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
  font-size: 14px;
  font-weight: normal;
  font-style: normal;
  line-height: 1.4; }

h5, .h5 {
  margin: 0;
  margin-bottom: 10px;
  color: #003b5f;
  font-family: Arial, sans-serif;
  font-size: 13px;
  font-weight: normal;
  font-style: normal;
  line-height: 1.4; }

h6, .h6 {
  margin: 0;
  margin-bottom: 5px;
  color: #003b5f;
  font-family: Arial, sans-serif;
  font-size: 12px;
  font-weight: normal;
  font-style: normal;
  line-height: 1.4; }

p {
  margin-bottom: 8px; }

/* ============================================ *
 * Shared Classes
 * ============================================ */
.address-list address {
  margin-bottom: 1em; }

.availability {
  margin-bottom: 0;
  font-size: 13px;
  text-transform: uppercase; }

.availability .label {
  display: none; }

.availability.in-stock {
  color: #11B400; }

.availability.available-soon,
.availability.out-of-stock {
  color: #DF280A; }

.availability-only {
  color: #DF280A;
  margin-bottom: 10px; }

.g-recaptcha {
  float: right; }

/* -------------------------------------------- *
 * Page Titles
 */
.page-title h1,
.page-title .h1,
.page-title h2,
.page-title .h2,
.product-name h1,
.product-name .h1 {
  font-size: 24px;
  font-weight: normal;
  color: #003b5f;
  padding-bottom: 3px;
  margin-bottom: 15px; }

/* -------------------------------------------- *
 * Block Module
 */
.block,
.col-left-first {
  margin-bottom: 20px; }

.col-left-first .block:last-of-type {
  margin-bottom: 0; }

.block-title {
  position: relative;
  padding: 10px 0 0;
  margin-bottom: 5px; }
  .block-title h2,
  .block-title h3,
  .block-title strong {
    margin: 0;
    margin-bottom: 10px;
    color: #003b5f;
    font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
    font-size: 14px;
    font-weight: normal;
    font-style: normal;
    line-height: 1.4;
    color: #003b5f;
    margin-bottom: 0;
    text-transform: uppercase;
    font-weight: 600; }
  .block-title small {
    font-size: 100%;
    font-weight: normal;
    color: #5b5b5a; }

img.image-icon {
  display: inline-block;
  vertical-align: middle;
  margin-right: 5px; }

body:not(.customer-account) .block:first-child .block-title {
  border-top: none;
  padding-top: 0; }

.block-subtitle {
  font-weight: bold;
  margin-bottom: 7px; }

.block-content {
  margin-top: 5px; }

.block-content.unpad {
  padding: 0; }

.block-content li.item {
  margin: 0 0 10px 9px; }

.block-content li.item:last-child {
  margin-bottom: 0; }

.block .actions {
  margin: 10px 0 0; }
  .block .actions:after {
    content: '';
    display: table;
    clear: both; }
  .block .actions a {
    float: left; }
  .block .actions .button {
    float: right; }

.col-left .block .actions .button ~ a,
.col-right .block .actions .button ~ a {
  line-height: 33px;
  margin-right: 5px; }

@media only screen and (max-width: 770px) {
  .sidebar .block:not(.block-layered-nav) {
    margin-bottom: 0; }
    .sidebar .block:not(.block-layered-nav) .block-title > strong {
      margin: 0;
      margin-bottom: 10px;
      color: #003b5f;
      font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
      font-size: 14px;
      font-weight: normal;
      font-style: normal;
      line-height: 1.4;
      -moz-user-select: none;
      -ms-user-select: none;
      -webkit-user-select: none;
      -o-user-select: none;
      user-select: none;
      font-weight: normal;
      margin-bottom: 0px;
      padding: 7px 10px 7px 24px;
      border-width: 1px;
      border-style: solid;
      border-color: #CCCCCC;
      position: relative;
      background-color: #F4F4F4;
      display: block;
      width: 100%;
      cursor: pointer;
      border-bottom: 0; }
      .sidebar .block:not(.block-layered-nav) .block-title > strong:after {
        content: '';
        position: absolute;
        width: 0;
        height: 0;
        display: block;
        border-top: 4px solid transparent;
        border-bottom: 4px solid transparent;
        border-left: 4px solid #1f86bd;
        border-right: none;
        left: 10px;
        top: 50%;
        margin-top: -3px; }
      .sidebar .block:not(.block-layered-nav) .block-title > strong:hover {
        background-color: shade(#F4F4F4, 3%); }
    .sidebar .block:not(.block-layered-nav) .block-title.active > strong {
      margin: 0;
      margin-bottom: 10px;
      color: #003b5f;
      font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
      font-size: 14px;
      font-weight: normal;
      font-style: normal;
      line-height: 1.4;
      -moz-user-select: none;
      -ms-user-select: none;
      -webkit-user-select: none;
      -o-user-select: none;
      user-select: none;
      font-weight: normal;
      margin-bottom: 0px;
      padding: 7px 10px 7px 24px;
      border-width: 1px;
      border-style: solid;
      border-color: #CCCCCC;
      position: relative;
      background-color: #F4F4F4; }
      .sidebar .block:not(.block-layered-nav) .block-title.active > strong:after {
        content: '';
        position: absolute;
        width: 0;
        height: 0;
        display: block;
        border-right: 4px solid transparent;
        border-left: 4px solid transparent;
        border-top: 4px solid #1f86bd;
        border-bottom: none;
        left: 10px;
        top: 50%;
        margin-top: -3px; }
      .sidebar .block:not(.block-layered-nav) .block-title.active > strong:hover {
        background-color: shade(#F4F4F4, 3%); } }

/* -------------------------------------------- *
 * Secondary Navigation
 */
.block-account .block-title,
.block-cms-menu .block-title {
  padding-top: 0;
  border-top: none; }
  .block-account .block-title strong,
  .block-cms-menu .block-title strong {
    font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
    text-transform: uppercase;
    font-size: 20px;
    color: #003b5f; }

.block-account li,
.block-cms-menu li {
  margin: 7px 0; }
  .block-account li strong,
  .block-cms-menu li strong {
    font-weight: 400;
    color: #1f86bd; }
  .block-account li a,
  .block-cms-menu li a {
    color: #003b5f; }
    .block-account li a:hover,
    .block-cms-menu li a:hover {
      color: #1f86bd; }

/* ============================================ *
 * Buttons
 * ============================================ */
/* Secondary Buttons */
.cart .buttons-set .button,
.cart-table .button,
.sidebar .actions .button,
.button.button-secondary {
  background: #DDDDDD;
  color: #003b5f;
  padding: 7px 15px; }
  .cart .buttons-set .button:hover,
  .cart-table .button:hover,
  .sidebar .actions .button:hover,
  .button.button-secondary:hover {
    background: #d0d0d0;
    cursor: pointer; }
  .cart .buttons-set .button:active,
  .cart-table .button:active,
  .sidebar .actions .button:active,
  .button.button-secondary:active {
    background: #c4c4c4;
    color: #003b5f; }
  .cart .buttons-set .button:focus,
  .cart-table .button:focus,
  .sidebar .actions .button:focus,
  .button.button-secondary:focus {
    color: #003b5f;
    background: #c4c4c4;
    outline: none; }

.sidebar .actions button.button {
  white-space: normal; }

/* Primary Buttons */
.button,
button,
[type=submit],
.cart-table .product-cart-actions .button,
#co-shipping-method-form .buttons-set .button,
.footer .button {
  background: #1f86bd;
  display: inline-block;
  text-decoration: none;
  padding: 9px 24px 8px 24px;
  border-radius: 8px;
  border: 0;
  color: #FFFFFF;
  font-size: 18px;
  font-weight: normal;
  font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
  text-align: center;
  vertical-align: middle;
  white-space: nowrap;
  box-sizing: border-box;
  min-width: 200px; }
  @media only screen and (min-width: 600px) {
    .button,
    button,
    [type=submit],
    .cart-table .product-cart-actions .button,
    #co-shipping-method-form .buttons-set .button,
    .footer .button {
      padding: 8px 24px 6px 24px; } }
  .button:hover,
  button:hover,
  [type=submit]:hover,
  .cart-table .product-cart-actions .button:hover,
  #co-shipping-method-form .buttons-set .button:hover,
  .footer .button:hover {
    background: #003b5f;
    cursor: pointer; }
  .button:active,
  button:active,
  [type=submit]:active,
  .cart-table .product-cart-actions .button:active,
  #co-shipping-method-form .buttons-set .button:active,
  .footer .button:active {
    background: #186791;
    color: #FFFFFF; }
  .button:focus,
  button:focus,
  [type=submit]:focus,
  .cart-table .product-cart-actions .button:focus,
  #co-shipping-method-form .buttons-set .button:focus,
  .footer .button:focus {
    background-color: #186791;
    outline: none;
    color: #FFFFFF; }
  .button.open-lightbox,
  button.open-lightbox,
  [type=submit].open-lightbox,
  .cart-table .product-cart-actions .button.open-lightbox,
  #co-shipping-method-form .buttons-set .button.open-lightbox,
  .footer .button.open-lightbox {
    background: #9d9d9d !important; }
    .button.open-lightbox:hover ,
    button.open-lightbox:hover ,
    [type=submit].open-lightbox:hover ,
    .cart-table .product-cart-actions .button.open-lightbox:hover ,
    #co-shipping-method-form .buttons-set .button.open-lightbox:hover ,
    .footer .button.open-lightbox:hover  {
      background: #909090; }
  .button.secondary, .button.outline,
  button.secondary,
  button.outline,
  [type=submit].secondary,
  [type=submit].outline,
  .cart-table .product-cart-actions .button.secondary,
  .cart-table .product-cart-actions .button.outline,
  #co-shipping-method-form .buttons-set .button.secondary,
  #co-shipping-method-form .buttons-set .button.outline,
  .footer .button.secondary,
  .footer .button.outline {
    background: none;
    border: 2px solid #003b5f;
    color: #003b5f;
    text-decoration: none;
    padding: 6px 24px 5px 24px; }
    @media only screen and (min-width: 600px) {
      .button.secondary, .button.outline,
      button.secondary,
      button.outline,
      [type=submit].secondary,
      [type=submit].outline,
      .cart-table .product-cart-actions .button.secondary,
      .cart-table .product-cart-actions .button.outline,
      #co-shipping-method-form .buttons-set .button.secondary,
      #co-shipping-method-form .buttons-set .button.outline,
      .footer .button.secondary,
      .footer .button.outline {
        padding: 6px 24px 4px 24px; } }
    .button.secondary:hover, .button.outline:hover,
    button.secondary:hover,
    button.outline:hover,
    [type=submit].secondary:hover,
    [type=submit].outline:hover,
    .cart-table .product-cart-actions .button.secondary:hover,
    .cart-table .product-cart-actions .button.outline:hover,
    #co-shipping-method-form .buttons-set .button.secondary:hover,
    #co-shipping-method-form .buttons-set .button.outline:hover,
    .footer .button.secondary:hover,
    .footer .button.outline:hover {
      color: #003b5f; }
  .button.search-button,
  button.search-button,
  [type=submit].search-button,
  .cart-table .product-cart-actions .button.search-button,
  #co-shipping-method-form .buttons-set .button.search-button,
  .footer .button.search-button {
    min-width: auto; }

a.button {
  text-decoration: none; }

a.button:hover {
  color: #FFFFFF; }

/* Disabled - class for anchor, state for form elements */
.button.disabled,
.button:disabled {
  background: #C8C8C8;
  opacity: 0.6;
  cursor: not-allowed; }

.button img, a.button img {
  width: 18px;
  display: inline-block;
  vertical-align: middle;
  margin-right: 8px;
  margin-top: -2px; }

.button2 {
  border: 0;
  padding: 0 5px;
  margin: 0;
  background: transparent;
  cursor: pointer;
  vertical-align: middle; }

.button2:focus {
  outline: none; }

.button2 span,
.button2 span span {
  line-height: 30px;
  height: 30px;
  text-decoration: underline;
  text-transform: uppercase;
  display: inline-block;
  color: #1f86bd;
  font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif; }
  .button2 span:hover,
  .button2 span span:hover {
    text-decoration: none;
    color: #14577b; }

@media only screen and (max-width: 599px) {
  .col2-set .buttons-set .button,
  .col2-set .buttons-set .button2 {
    float: none;
    width: 100%;
    margin-left: 0;
    margin-right: 0;
    box-sizing: border-box; }
  .col2-set .buttons-set .back-link {
    display: none; }
  .col2-set .buttons-set .required {
    display: none; } }

@media only screen and (max-width: 479px) {
  .buttons-set .button {
    float: none;
    width: 100%;
    margin-left: 0;
    margin-right: 0;
    margin-bottom: 7px; }
  .buttons-set .back-link {
    display: none; }
  .buttons-set .required {
    display: none; } }

/* -------------------------------------------- *
 * Paypal Button
 */
.paypal-logo.paypal-after {
  float: left; }

.paypal-after .paypal-or {
  float: left; }

.paypal-or {
  line-height: 34px;
  margin: 0px 10px 5px; }

.paypal-after .paypal-button {
  float: left; }

.paypal-button {
  line-height: 0px; }

.paypal-button img {
  display: inline; }

@media only screen and (max-width: 740px) {
  .paypal-or {
    line-height: 20px; }
  .paypal-logo,
  .paypal-or,
  .paypal-button {
    text-align: center;
    width: 100%;
    display: block;
    margin-right: 0;
    margin-left: 0;
    float: none; } }

/* -------------------------------------------- *
 * Button Sets
 */
.buttons-set {
  clear: both;
  margin: 10px 0 0;
  padding-top: 10px;
  text-align: right; }
  .buttons-set p.required {
    margin: 0;
    margin-left: 10px;
    line-height: 33px;
    float: right; }
  .buttons-set .back-link {
    float: left;
    margin: 0;
    line-height: 33px; }
  .buttons-set a:not(.button) {
    line-height: 20px;
    display: inline-block;
    padding: 5px 0; }
  .buttons-set button.button {
    float: right;
    margin-left: 5px;
    min-width: 140px; }
  .buttons-set:after {
    content: '';
    display: table;
    clear: both; }

/* -------------------------------------------- *
 * Icons
 */
.icon-sprite, .btn-remove2, .sorter > .sort-by .sort-by-switcher, .sorter > .view-mode .grid,
.sorter > .view-mode .list, .skip-nav .icon, .skip-account .icon, .review-summary-table .rating-box .rating-number:after, .ratings-table .rating-box, .ratings-table .rating-box .rating {
  background-image: url(images/icon_sprite.png);
  background-repeat: no-repeat;
  text-indent: -9999px; }

@media (-webkit-min-device-pixel-ratio: 2), (min--moz-device-pixel-ratio: 2), (min-device-pixel-ratio: 2), (min-resolution: 192dpi), (min-resolution: 2dppx) {
  .icon-sprite, .btn-remove2, .sorter > .sort-by .sort-by-switcher, .sorter > .view-mode .grid,
  .sorter > .view-mode .list, .skip-nav .icon, .skip-account .icon, .review-summary-table .rating-box .rating-number:after, .ratings-table .rating-box, .ratings-table .rating-box .rating {
    background-image: url(images/icon_sprite@2x.png);
    background-size: 100px 1000px; } }

/* -------------------------------------------- *
 * Breadcrumbs
 */
.breadcrumbs {
  overflow: hidden;
  margin: -15px 0 15px; }

.breadcrumbs li {
  float: left;
  font-size: 12px;
  font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
  text-transform: uppercase; }

.breadcrumbs a {
  float: left;
  color: #003b5f; }

.breadcrumbs a:hover {
  color: #1f86bd; }

.breadcrumbs strong {
  color: #003b5f;
  font-weight: normal; }

.breadcrumbs span {
  float: left;
  padding: 0 7px; }

@media only screen and (max-width: 770px) {
  .breadcrumbs {
    display: none; } }

/* -------------------------------------------- *
 * Button - Remove / Previous
 */
.btn-remove,
.btn-previous {
  display: inline-block;
  width: 20px;
  height: 20px;
  border: 1px solid #EDEDED;
  text-align: center;
  /* Hide text */
  font: 0/0 a;
  text-shadow: none;
  color: transparent;
  position: relative; }

.btn-remove:after {
  content: 'X';
  color: #1f86bd;
  height: 20px;
  line-height: 20px;
  width: 100%;
  font-size: 10px;
  font-family: Arial, Arial, sans-serif;
  font-weight: bold; }

.btn-remove:hover:after {
  color: #FFFFFF;
  text-decoration: none; }

.btn-remove2 {
  background: #c5c5c5;
  width: 33px;
  height: 33px;
  border-radius: 100%;
  background-image: url(images/icon-cart-remove.svg);
  background-size: 9px;
  background-position: center center;
  background-repeat: no-repeat;
  display: inline-block;
  border: none; }

.btn-previous:after {
  content: '';
  position: absolute;
  width: 0;
  height: 0;
  display: block;
  border-top: 4px solid transparent;
  border-bottom: 4px solid transparent;
  border-right: 4px solid #1f86bd;
  border-left: none;
  position: absolute;
  top: 50%;
  left: 50%;
  margin-left: -2px;
  margin-top: -4px; }

.btn-previous:hover:after {
  content: '';
  position: absolute;
  width: 0;
  height: 0;
  display: block;
  border-top: 4px solid transparent;
  border-bottom: 4px solid transparent;
  border-right: 4px solid #FFFFFF;
  border-left: none; }

.block-layered-nav .currently .btn-remove,
.block-layered-nav .currently .btn-previous,
.mini-products-list .btn-remove,
.mini-products-list .btn-previous,
#compare-items .btn-remove,
#compare-items .btn-previous {
  float: right;
  margin-left: 6px; }

/* -------------------------------------------- *
 * Checkout Agreements
 */
.checkout-agreements li {
  margin-bottom: 20px; }

.checkout-agreements .agreement-content {
  overflow-y: auto;
  max-width: 670px;
  max-height: 125px;
  margin-bottom: 10px;
  padding: 10px;
  border: 1px solid #CCCCCC;
  background: #F4F4F4; }

/* -------------------------------------------- *
 * CVV Security Code
 */
.cvv-what-is-this {
  margin-left: 10px;
  font-size: 13px;
  line-height: 24px; }

/* -------------------------------------------- *
 * Container
 */
.main-container,
.support-container,
.home-slide-wrapper,
.page-header,
.home-slider-search-container,
.latest-news-container,
.products-teaser-container,
.footer-container,
.wordpress-layout-fullscreen .page .fullscreen-slider .slick-slide .content-wrapper {
  position: relative;
  max-width: 960px;
  margin: 0 auto;
  padding: 15px; }
  .main-container:after,
  .support-container:after,
  .home-slide-wrapper:after,
  .page-header:after,
  .home-slider-search-container:after,
  .latest-news-container:after,
  .products-teaser-container:after,
  .footer-container:after,
  .wordpress-layout-fullscreen .page .fullscreen-slider .slick-slide .content-wrapper:after {
    content: '';
    display: table;
    clear: both; }

.wordpress-layout-fullscreen .header-wrapper {
  width: 100%;
  position: absolute;
  top: 0;
  z-index: 10; }

.wordpress-layout-fullscreen .col-main {
  width: 100%;
  float: none; }

@media only screen and (min-width: 771px) {
  .main-container,
  .support-container,
  .page-header,
  .home-slide-wrapper,
  .home-slider-search-container,
  .latest-news-container,
  .products-teaser-container,
  .footer-container {
    padding: 35px 25px; }
  .latest-news-container {
    padding-bottom: 0; }
  .home-slide-wrapper {
    padding: 25px;
    padding-top: 15px; } }

.footer-container {
  padding-top: 0px; }

/* -------------------------------------------- *
 * Column Layouts
 */
.main:after,
.col-wrapper:after {
  content: '';
  display: table;
  clear: both; }

.col-left,
.col-right,
.col-main {
  padding: 0 15px;
  box-sizing: border-box; }

.col-left {
  float: left;
  width: 25%;
  padding-left: 0;
  /* Remove the 15px padding */
  clear: left; }
  .col-left img {
    max-width: 100%; }

.col-right {
  float: right;
  width: 30%;
  padding-right: 0;
  /* Remove the 15px padding */ }
  .col-right img {
    max-width: 100%; }

.col-main {
  float: left;
  width: 70%; }

.col1-layout .col-main {
  float: none;
  width: auto;
  padding: 0;
  /* Remove the 15px padding */ }

.col2-left-layout .col-main {
  float: right;
  padding-right: 0;
  /* Remove the 15px padding */ }

.col2-right-layout .col-main {
  padding-left: 0;
  /* Remove the 15px padding */ }

.col3-layout .col-right {
  width: 20.83333%; }

.col3-layout .col-wrapper {
  float: left;
  width: 79.16667%; }
  .col3-layout .col-wrapper .col-main {
    float: right;
    width: 73.68421%; }
  .col3-layout .col-wrapper .col-left {
    width: 26.31579%; }

@media only screen and (max-width: 1000px) {
  .col3-layout .col-right {
    float: left;
    clear: left;
    padding-left: 0;
    padding-right: 10px;
    width: 25%; }
  .col3-layout .col-wrapper {
    float: right;
    width: 100%; }
    .col3-layout .col-wrapper .col-main {
      float: right;
      width: 75%; }
    .col3-layout .col-wrapper .col-left {
      width: 25%; } }

@media only screen and (max-width: 770px) {
  .col-left,
  .col-right,
  .col-main,
  .col1-layout .col-left,
  .col1-layout .col-right,
  .col1-layout .col-main,
  .col2-left-layout .col-left,
  .col2-left-layout .col-right,
  .col2-left-layout .col-main,
  .col2-right-layout .col-left,
  .col2-right-layout .col-right,
  .col2-right-layout .col-main,
  .col3-layout .col-wrapper .col-left,
  .col3-layout .col-right,
  .col3-layout .col-wrapper .col-main {
    padding: 0;
    margin-bottom: 10px;
    float: none;
    width: auto; }
  .col3-layout .col-wrapper {
    float: none;
    width: auto; }
  .col-main {
    float: none;
    width: auto; }
  .col-main .col-left {
    padding: 0;
    /* On product listing pages, the left column gets moved inside col-main on small viewports */ } }

/* Content Columns */
.col2-set {
  width: 100%; }
  .col2-set .col-1,
  .col2-set .col-2 {
    width: 50%;
    box-sizing: border-box;
    padding: 20px; }
    @media only screen and (max-width: 770px) {
      .col2-set .col-1,
      .col2-set .col-2 {
        padding: 10px; } }
  .col2-set .col-1 {
    float: left;
    padding-left: 0; }
  .col2-set .col-2 {
    float: right;
    padding-right: 0; }
  @media only screen and (max-width: 599px) {
    .col2-set .col-1,
    .col2-set .col-2 {
      float: none;
      width: auto;
      border: 0;
      padding-right: 0;
      padding-left: 0; } }
  .col2-set .narrow {
    width: 33%; }
  .col2-set .wide {
    width: 65%; }
  .col2-set:after {
    content: '';
    display: table;
    clear: both; }

body > .wrapper {
  position: relative; }

/* -------------------------------------------- *
 * Top Container
 */
@media only screen and (min-width: 771px) {
  .top-container {
    max-width: 960px;
    margin: 0 auto;
    padding: 0 35px; } }

/* -------------------------------------------- *
 * Global Site Notice
 */
.global-site-notice {
  background: #1f86bd;
  color: #003b5f;
  font-size: 14px; }
  .global-site-notice a {
    text-decoration: underline;
    color: #003b5f;
    cursor: pointer; }
  .global-site-notice .notice-inner {
    padding: 15px;
    padding-top: 12px;
    padding-bottom: 0;
    max-width: 1360px;
    margin-left: auto;
    margin-right: auto; }
    .global-site-notice .notice-inner img {
      display: inline-block;
      vertical-align: middle;
      cursor: pointer; }
  .global-site-notice p {
    margin-bottom: 0; }

/* -------------------------------------------- *
 * Promotional Message Banner
 */
.promo-msg {
  color: #003b5f;
  text-align: center;
  margin: 10px;
  text-transform: uppercase;
  font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif; }

/* -------------------------------------------- *
 * Grid
 */
.grid:after {
  content: '';
  display: table;
  clear: both; }

/* -------------------------------------------- *
 * Messages
 */
.success {
  color: #11B400; }

.error {
  color: #DF280A;
  font-weight: bold; }

.notice {
  color: #E26703;
  font-weight: bold; }

/* -------------------------------------------- *
 * Messages
 */
.messages {
  margin-bottom: 10px; }

.messages li li {
  position: relative;
  margin-bottom: 5px;
  padding: 10px 0;
  font-size: 14px; }

.messages li li:before {
  top: 50%;
  left: 0;
  margin-top: -6px; }

.messages .error-msg li {
  color: #DF280A; }

.messages .notice-msg li {
  color: #E26703; }

.messages .success-msg li {
  color: #11B400; }

@media only screen and (min-width: 915px) {
  .order-list-grid .col-1 {
    width: 30%; }
  .order-list-grid .col-2 {
    width: 50%;
    padding-right: 20px; }
  .order-list-grid .col-3 {
    clear: none;
    width: 20%;
    padding-top: 0; } }

/* -------------------------------------------- *
 * Page Popup
 */
.page-popup {
  padding: 20px;
  background: #FFFFFF;
  height: auto; }

.page-popup h1 {
  margin: 0 0 0.5em;
  font-size: 36px; }

/* -------------------------------------------- *
 * Payment Methods
 */
.payment-methods {
  margin-bottom: 20px; }

.payment-methods dt {
  padding: 5px 0; }

.payment-methods dd {
  padding-top: 10px; }

.payment-methods .form-list {
  position: relative;
  display: inline-block;
  max-width: 100%;
  margin: 5px 15px 15px;
  padding: 15px;
  border: 1px solid #CCCCCC;
  background: #F4F4F4; }

.payment-methods .form-list:before {
  content: '';
  position: absolute;
  width: 0;
  height: 0;
  display: block;
  border-right: 10px solid transparent;
  border-left: 10px solid transparent;
  border-bottom: 10px solid #CCCCCC;
  border-top: none;
  top: -11px;
  left: 30px; }

.payment-methods .form-list:after {
  content: '';
  position: absolute;
  width: 0;
  height: 0;
  display: block;
  border-right: 10px solid transparent;
  border-left: 10px solid transparent;
  border-bottom: 10px solid #F4F4F4;
  border-top: none;
  top: -10px;
  left: 30px; }

.payment-methods .form-list li:last-child {
  margin-bottom: 0; }

/* -------------------------------------------- *
 * Please Wait (Loading Indicator)
 */
.please-wait {
  display: inline-block;
  margin-left: 10px;
  margin-top: 5px;
  line-height: 24px;
  height: 24px;
  white-space: nowrap;
  /* Prevent the linebreak in the HTML from causing layout issues */ }
  .please-wait img {
    float: left;
    margin-right: 5px;
    width: 24px; }

/* -------------------------------------------- *
 * Price Box - Standard
 */
.price-box {
  margin: 7px 0;
  font-family: Arial, sans-serif; }

.price-box p {
  margin-bottom: 0; }

.price-notice {
  color: #5b5b5a; }

.price-box .price {
  color: #003b5f;
  font-size: 20px; }

.price-box .price,
.price {
  font-family: Arial, sans-serif; }

.price-box .price-label {
  color: #5b5b5a;
  white-space: nowrap;
  font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif; }

.price-box .minimal-price-link {
  padding-left: 1em;
  color: #003b5f;
  display: block;
  /* We want this to show on its own line, otherwise the layout looks funky */ }
  .price-box .minimal-price-link .label {
    color: #5b5b5a; }

/* -------------------------------------------- *
 * Price Box - Special
 */
.price-box .old-price,
.price-box .special-price {
  display: inline-block; }
  .price-box .old-price .price-label,
  .price-box .special-price .price-label {
    display: none; }
  .price-box .old-price .price,
  .price-box .special-price .price {
    display: inline-block; }

.price-box .old-price .price {
  color: #5b5b5a;
  text-decoration: line-through; }

.price-box .special-price {
  color: #003b5f;
  padding-left: 1em; }
  .price-box .special-price .price-label {
    color: #D84D3C; }

/* -------------------------------------------- *
 * Price Box - Taxes
 */
.price-box .price-excluding-tax,
.price-box .price-including-tax {
  display: block; }

span.weee {
  display: block; }

/* -------------------------------------------- *
 * Tier Prices
 */
.product-pricing,
.tier-prices,
.tier-prices-grouped {
  display: inline-block;
  padding: 4px 8px;
  background: #FBF4DE;
  border: 1px solid #E2D4C7;
  margin-top: 7px; }
  .product-pricing li,
  .tier-prices li,
  .tier-prices-grouped li {
    font-size: 12px; }
  .product-pricing .benefit,
  .tier-prices .benefit,
  .tier-prices-grouped .benefit {
    font-style: italic; }
  .product-pricing .price,
  .tier-prices .price,
  .tier-prices-grouped .price {
    font-weight: bold; }

/* ============================================ *
 * Item Options
 * ============================================ */
.item-options {
  font-size: 14px;
  font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif; }
  .item-options:after {
    content: '';
    display: table;
    clear: both; }
  .item-options dt {
    float: left;
    clear: left;
    font-weight: 600;
    padding-right: 5px;
    font-style: italic; }
    .item-options dt:after {
      content: ': '; }
  .item-options dd {
    float: left;
    padding-left: 10px;
    margin: 0 0 6px; }

.truncated,
.truncated a.dots {
  cursor: help; }

.truncated a.details {
  cursor: help;
  height: 16px;
  line-height: 16px; }
  .truncated a.details:hover {
    text-decoration: none; }

.truncated .truncated_full_value {
  position: relative;
  z-index: 300; }

.truncated .truncated_full_value .item-options {
  display: none;
  position: absolute;
  z-index: 300;
  width: 200px;
  padding: 8px;
  border: 1px solid #1f86bd;
  background-color: #F6F6F6;
  top: 21px;
  left: -100px; }
  .truncated .truncated_full_value .item-options:after {
    content: '';
    position: absolute;
    width: 0;
    height: 0;
    display: block;
    border-right: 7px solid transparent;
    border-left: 7px solid transparent;
    border-bottom: 7px solid #1f86bd;
    border-top: none;
    left: 97px;
    top: -7px; }

.truncated .truncated_full_value .item-options > p {
  font-weight: bold;
  text-transform: uppercase;
  margin-bottom: 8px; }

.truncated .show .item-options {
  display: block; }

@media only screen and (max-width: 479px) {
  .truncated {
    cursor: inherit; }
    .truncated a.details {
      display: none; }
    .truncated .truncated_full_value .item-options {
      display: block;
      position: static;
      z-index: 1;
      width: 100%;
      border: none;
      background-color: transparent; }
      .truncated .truncated_full_value .item-options p {
        float: none; }
      .truncated .truncated_full_value .item-options:after {
        display: none; } }

/* -------------------------------------------- *
 * Printer Friendly Page
 */
.page-print {
  width: 6.5in;
  margin: 20px;
  background: #FFFFFF; }

/* -------------------------------------------- *
 * Add to links
 */
.add-to-links {
  margin: 7px 0; }
  .add-to-links a {
    display: inline-block;
    padding: 0px 3px 3px; }

.add-to-links .separator {
  display: none; }

/* -------------------------------------------- *
 * Standard Formatted Text Block
 */
.std p {
  margin: 0 0 1.5em; }

.std ol {
  list-style: decimal outside;
  margin-bottom: 1.5em; }

.std ol li {
  margin-left: 2em; }

.std ul {
  list-style: disc outside;
  margin-bottom: 1.5em; }

.std ul li {
  margin-left: 2em; }

.std .note {
  color: #5b5b5a;
  font-size: 13px; }

/* -------------------------------------------- *
 * Tabs
 */
.tabs {
  margin-bottom: 10px;
  background: #FFFFFF; }

/* -------------------------------------------- *
 * Toolbar
 */
.toolbar {
  margin-top: 10px;
  margin-bottom: 15px;
  border-bottom: 1px solid #CCCCCC;
  border-top: 1px solid #CCCCCC;
  background: #F4F4F4;
  padding: 5px 10px 0px 10px; }
  .toolbar:after {
    content: '';
    display: table;
    clear: both; }

.pager-no-toolbar {
  margin-bottom: 10px; }

.pager-no-toolbar ~ .pager-no-toolbar {
  margin-top: 10px; }

.toolbar,
.pager {
  font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
  color: #003b5f;
  line-height: 30px;
  font-size: 12px; }

.toolbar label,
.pager-no-toolbar label {
  font-weight: normal;
  text-transform: uppercase; }

.sorter {
  float: left;
  margin-bottom: 5px; }
  .sorter label {
    float: left;
    margin-right: 5px; }
    .sorter label:after {
      content: ':'; }

.sorter > .sort-by {
  float: left;
  margin-right: 5px;
  height: 30px; }
  .sorter > .sort-by .sort-by-switcher {
    width: 30px;
    height: 30px;
    display: inline-block; }
  .sorter > .sort-by .sort-by-switcher--asc {
    background-position: 4px -542px; }
    .sorter > .sort-by .sort-by-switcher--asc:hover {
      background-position: -46px -542px; }
  .sorter > .sort-by .sort-by-switcher--desc {
    background-position: 4px -567px; }
    .sorter > .sort-by .sort-by-switcher--desc:hover {
      background-position: -46px -567px; }

.sorter > .view-mode {
  float: right; }
  .sorter > .view-mode .grid,
  .sorter > .view-mode .list {
    float: left;
    width: 30px;
    height: 30px; }
  .sorter > .view-mode .grid {
    margin-right: 5px;
    background-position: 8px -492px; }
  .sorter > .view-mode strong.grid,
  .sorter > .view-mode a.grid:hover {
    background-position: -42px -492px; }
  .sorter > .view-mode .list {
    background-position: 11px -517px; }
  .sorter > .view-mode strong.list,
  .sorter > .view-mode a.list:hover {
    background-position: -39px -517px; }

.pager {
  width: 100%;
  text-align: center;
  margin-top: 20px; }
  .pager .amount {
    float: left;
    font-family: Arial, sans-serif;
    white-space: nowrap;
    margin: 0 15px 0 0; }
  .pager .limiter {
    float: left;
    height: 30px;
    line-height: 30px; }
    .pager .limiter > label {
      padding-right: 5px; }
      .pager .limiter > label:after {
        content: ':'; }
  .pager .amount,
  .pager .limiter,
  .pager .pages {
    margin-bottom: 5px; }
  .pager ol {
    display: inline-block; }

.pages {
  overflow: hidden;
  width: 100%;
  text-align: center; }
  .pages strong {
    display: none; }

.pages li {
  float: left; }

.pages a,
.pages .current {
  display: inline-block;
  border: 0;
  font-size: 14px;
  text-align: center;
  text-transform: uppercase;
  vertical-align: middle;
  white-space: nowrap;
  line-height: 30px;
  width: 20px;
  height: 30px;
  padding: 0;
  color: #003b5f;
  text-decoration: underline;
  font-family: Arial, sans-serif; }
  .pages a.next, .pages a.previous,
  .pages .current.next,
  .pages .current.previous {
    display: none; }

.pages .current {
  text-decoration: none; }
  .pages .current:hover {
    color: #1f86bd; }

.pages .next,
.pages .previous {
  font: 0/0 a;
  text-shadow: none;
  color: transparent;
  background-color: transparent;
  position: relative; }
  .pages .next:hover,
  .pages .previous:hover {
    border: 1px solid #1f86bd; }

.pages .next:before {
  content: '';
  position: absolute;
  width: 0;
  height: 0;
  display: block;
  border-top: 4px solid transparent;
  border-bottom: 4px solid transparent;
  border-left: 4px solid #1f86bd;
  border-right: none;
  top: 50%;
  margin-top: -3px;
  left: 50%;
  margin-left: -2px; }

.pages .next:hover:before {
  content: '';
  position: absolute;
  width: 0;
  height: 0;
  display: block;
  border-top: 4px solid transparent;
  border-bottom: 4px solid transparent;
  border-left: 4px solid #14577b;
  border-right: none; }

.pages .previous:before {
  content: '';
  position: absolute;
  width: 0;
  height: 0;
  display: block;
  border-top: 4px solid transparent;
  border-bottom: 4px solid transparent;
  border-right: 4px solid #1f86bd;
  border-left: none;
  top: 50%;
  margin-top: -3px;
  left: 50%;
  margin-left: -2px; }

.pages .previous:hover:before {
  content: '';
  position: absolute;
  width: 0;
  height: 0;
  display: block;
  border-top: 4px solid transparent;
  border-bottom: 4px solid transparent;
  border-right: 4px solid #14577b;
  border-left: none; }

@media only screen and (max-width: 479px) {
  .pager .amount--has-pages {
    display: none; }
  .pages {
    float: left; }
  .limiter label {
    display: none; } }

@media only screen and (max-width: 770px) {
  .col1-layout .sorter,
  .col1-layout .pager {
    width: 100%; }
  .col1-layout .pager {
    float: left;
    clear: both; }
    .col1-layout .pager .pages {
      float: left;
      margin-left: 0; }
    .col1-layout .pager .count-container {
      float: right; } }

@media only screen and (max-width: 979px) {
  .col2-left-layout .sorter,
  .col2-left-layout .pager,
  .col2-right-layout .sorter,
  .col2-right-layout .pager,
  .col3-layout .sorter,
  .col3-layout .pager {
    width: 100%; }
  .col2-left-layout .pager,
  .col2-right-layout .pager,
  .col3-layout .pager {
    float: left;
    clear: both; }
    .col2-left-layout .pager .pages,
    .col2-right-layout .pager .pages,
    .col3-layout .pager .pages {
      float: left;
      margin-left: 0; }
    .col2-left-layout .pager .count-container,
    .col2-right-layout .pager .count-container,
    .col3-layout .pager .count-container {
      float: right; } }

@media only screen and (max-width: 1279px) {
  .toolbar .view-mode > label {
    display: none; } }

/* ============================================ *
 * Tax - Full Tax Summary
 * ============================================ */
#checkout-review-table .summary-collapse,
#shopping-cart-totals-table .summary-collapse,
body.customer-account .data-table .summary-collapse {
  position: relative;
  cursor: pointer; }
  #checkout-review-table .summary-collapse:before,
  #shopping-cart-totals-table .summary-collapse:before,
  body.customer-account .data-table .summary-collapse:before {
    content: '';
    position: absolute;
    width: 0;
    height: 0;
    display: block;
    border-right: 7px solid transparent;
    border-left: 7px solid transparent;
    border-top: 7px solid #1f86bd;
    border-bottom: none;
    position: static;
    display: inline-block;
    margin-right: 5px; }
  #checkout-review-table .summary-collapse:hover:before,
  #shopping-cart-totals-table .summary-collapse:hover:before,
  body.customer-account .data-table .summary-collapse:hover:before {
    content: '';
    position: absolute;
    width: 0;
    height: 0;
    display: block;
    border-right: 7px solid transparent;
    border-left: 7px solid transparent;
    border-top: 7px solid #14577b;
    border-bottom: none;
    position: static;
    display: inline-block;
    margin-right: 5px; }

#checkout-review-table .show-details .summary-collapse:before,
#shopping-cart-totals-table .show-details .summary-collapse:before,
body.customer-account .data-table .show-details .summary-collapse:before {
  content: '';
  position: absolute;
  width: 0;
  height: 0;
  display: block;
  border-right: 7px solid transparent;
  border-left: 7px solid transparent;
  border-bottom: 7px solid #1f86bd;
  border-top: none;
  position: static;
  display: inline-block;
  margin-right: 5px; }

#checkout-review-table .show-details .summary-collapse:hover:before,
#shopping-cart-totals-table .show-details .summary-collapse:hover:before,
body.customer-account .data-table .show-details .summary-collapse:hover:before {
  content: '';
  position: absolute;
  width: 0;
  height: 0;
  display: block;
  border-right: 7px solid transparent;
  border-left: 7px solid transparent;
  border-bottom: 7px solid #14577b;
  border-top: none;
  position: static;
  display: inline-block;
  margin-right: 5px; }

#shopping-cart-totals-table tfoot td .summary-collapse:before, #shopping-cart-totals-table tfoot td .summary-collapse:hover:before {
  margin-bottom: 5px; }

/* ============================================ *
 * Magento Helpers
 * ============================================ */
.a-center {
  text-align: center; }

.a-right,
.align-right {
  text-align: right; }

.no-display {
  display: none !important; }

.nobr,
.nowrap {
  white-space: nowrap; }

.width-full {
  width: 100%; }

/* ============================================ *
 * Custom Helpers
 * ============================================ */
.hidden {
  display: none; }

/* ============================================ *
 * Print Styles
 * ============================================ */
.page-print .print-head {
  margin: 0 0 15px; }

.page-print .print-head .logo {
  float: none;
  max-height: 50px;
  width: auto; }

/* ============================================ *
 * Home Page
 * ============================================ */
.home-slider-container {
  margin-top: 20px; }
  .home-slider-container .home-slide-wrapper {
    text-align: right;
    background-repeat: no-repeat;
    background-position: 50px 80px; }
    .home-slider-container .home-slide-wrapper h1,
    .home-slider-container .home-slide-wrapper h1.home-slide-title,
    .home-slider-container .home-slide-wrapper h2.home-slide-title {
      text-align: left;
      position: absolute;
      left: 15px;
      top: 0;
      font-size: 24px;
      text-transform: uppercase; }
      @media only screen and (min-width: 600px) {
        .home-slider-container .home-slide-wrapper h1,
        .home-slider-container .home-slide-wrapper h1.home-slide-title,
        .home-slider-container .home-slide-wrapper h2.home-slide-title {
          top: 15px; } }
      @media only screen and (min-width: 771px) {
        .home-slider-container .home-slide-wrapper h1,
        .home-slider-container .home-slide-wrapper h1.home-slide-title,
        .home-slider-container .home-slide-wrapper h2.home-slide-title {
          left: 25px; } }
    .home-slider-container .home-slide-wrapper .home-slide-image {
      padding-top: 40px;
      padding-bottom: 20px;
      z-index: 1; }
      @media only screen and (min-width: 600px) {
        .home-slider-container .home-slide-wrapper .home-slide-image {
          padding-top: 0;
          padding-bottom: 0;
          position: absolute;
          left: 25px;
          width: 56%;
          bottom: auto;
          top: 10%; } }
      @media only screen and (min-width: 771px) {
        .home-slider-container .home-slide-wrapper .home-slide-image {
          bottom: 9%; } }
      @media only screen and (min-width: 980px) {
        .home-slider-container .home-slide-wrapper .home-slide-image {
          width: 62%;
          bottom: 0; } }
    .home-slider-container .home-slide-wrapper .home-slide-content {
      position: relative;
      z-index: 10;
      display: inline-block;
      text-align: center; }
      @media only screen and (min-width: 600px) {
        .home-slider-container .home-slide-wrapper .home-slide-content {
          width: 48%;
          margin-left: -10%;
          text-align: left; } }
      @media only screen and (min-width: 771px) {
        .home-slider-container .home-slide-wrapper .home-slide-content {
          width: 43%;
          margin-left: -5%; } }
      .home-slider-container .home-slide-wrapper .home-slide-content .share-buttons {
        text-align: left;
        margin-bottom: 20px; }
        @media only screen and (min-width: 600px) {
          .home-slider-container .home-slide-wrapper .home-slide-content .share-buttons.small {
            display: none; } }
        @media only screen and (min-width: 600px) {
          .home-slider-container .home-slide-wrapper .home-slide-content .share-buttons {
            width: 170px;
            display: table-cell;
            vertical-align: top;
            float: right;
            text-align: right;
            margin-bottom: 0; } }
        .home-slider-container .home-slide-wrapper .home-slide-content .share-buttons a {
          text-decoration: none; }
          .home-slider-container .home-slide-wrapper .home-slide-content .share-buttons a:hover {
            text-decoration: none; }
        .home-slider-container .home-slide-wrapper .home-slide-content .share-buttons img {
          display: inline;
          width: auto; }
      .home-slider-container .home-slide-wrapper .home-slide-content .headline {
        font-size: 100px;
        line-height: .8;
        font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
        text-transform: uppercase;
        margin-bottom: 20px;
        text-align: left;
        padding-top: 15px;
        padding-right: 10px; }
        @media only screen and (min-width: 600px) {
          .home-slider-container .home-slide-wrapper .home-slide-content .headline {
            padding-top: 35px; } }
        @media only screen and (min-width: 600px) {
          .home-slider-container .home-slide-wrapper .home-slide-content .headline {
            text-align: right;
            font-size: 110px;
            padding-top: 0; } }
        @media only screen and (min-width: 771px) {
          .home-slider-container .home-slide-wrapper .home-slide-content .headline {
            font-size: 136px; } }
        @media only screen and (min-width: 980px) {
          .home-slider-container .home-slide-wrapper .home-slide-content .headline {
            font-size: 144px; } }
      .home-slider-container .home-slide-wrapper .home-slide-content p {
        color: #5b5b5a;
        text-align: left; }
        .home-slider-container .home-slide-wrapper .home-slide-content p a {
          color: #5b5b5a;
          text-decoration: underline; }
      .home-slider-container .home-slide-wrapper .home-slide-content a {
        margin-top: 15px; }
      .home-slider-container .home-slide-wrapper .home-slide-content h2, .home-slider-container .home-slide-wrapper .home-slide-content .h2 {
        text-transform: none;
        text-align: left; }
        @media only screen and (min-width: 600px) {
          .home-slider-container .home-slide-wrapper .home-slide-content h2, .home-slider-container .home-slide-wrapper .home-slide-content .h2 {
            vertical-align: top;
            display: table-cell;
            width: 100%;
            margin-right: 20px;
            text-align: left; }
            .home-slider-container .home-slide-wrapper .home-slide-content h2.small, .home-slider-container .home-slide-wrapper .home-slide-content .h2.small {
              display: none; } }
      .home-slider-container .home-slide-wrapper .home-slide-content .product-name {
        text-align: left; }
        @media only screen and (min-width: 600px) {
          .home-slider-container .home-slide-wrapper .home-slide-content .product-name {
            text-align: right;
            width: 180%;
            margin-left: -80%;
            padding-right: 20px;
            margin-top: 50px;
            margin-bottom: 35px;
            display: table; } }
        @media only screen and (min-width: 771px) {
          .home-slider-container .home-slide-wrapper .home-slide-content .product-name {
            margin-bottom: 90px; } }
        @media only screen and (min-width: 879px) {
          .home-slider-container .home-slide-wrapper .home-slide-content .product-name {
            width: 125%;
            margin-left: -25%; } }
    @media only screen and (min-width: 980px) {
      .home-slider-container .home-slide-wrapper.slide2 .home-slide-image {
        width: 59%;
        bottom: 0; } }
    @media only screen and (min-width: 600px) {
      .home-slider-container .home-slide-wrapper.slide2 .home-slide-content {
        margin-top: 50px; } }
    @media only screen and (max-width: 599px) {
      .home-slider-container .home-slide-wrapper.slide2 .home-slide-content .headline {
        font-size: 72px; } }
    @media only screen and (min-width: 600px) {
      .home-slider-container .home-slide-wrapper.slide2 .home-slide-content .headline {
        width: 160%;
        margin-left: -60%; } }
    @media only screen and (min-width: 980px) {
      .home-slider-container .home-slide-wrapper.slide2 .home-slide-content .headline {
        width: 130%;
        margin-left: -30%; } }
    @media only screen and (min-width: 600px) {
      .home-slider-container .home-slide-wrapper.slide2 .home-slide-content .product-name {
        width: 120%;
        margin-left: -20%; } }
    @media only screen and (min-width: 771px) {
      .home-slider-container .home-slide-wrapper.slide2 .home-slide-content .product-name {
        width: 110%;
        margin-left: -10%; } }
    @media only screen and (min-width: 980px) {
      .home-slider-container .home-slide-wrapper.slide2 .home-slide-content .product-name {
        width: 90%;
        margin-left: 10%; } }
    @media only screen and (min-width: 980px) {
      .home-slider-container .home-slide-wrapper.slide3 .home-slide-image {
        width: 56%;
        top: 60px;
        bottom: auto; } }
    @media only screen and (min-width: 600px) {
      .home-slider-container .home-slide-wrapper.slide3 .home-slide-content {
        margin-top: 50px; } }
    @media only screen and (max-width: 599px) {
      .home-slider-container .home-slide-wrapper.slide3 .home-slide-content .headline {
        font-size: 72px; } }
    @media only screen and (min-width: 600px) {
      .home-slider-container .home-slide-wrapper.slide3 .home-slide-content .headline {
        width: 180%;
        margin-left: -80%; } }
    @media only screen and (min-width: 980px) {
      .home-slider-container .home-slide-wrapper.slide3 .home-slide-content .headline {
        margin-bottom: 116px; } }
    @media only screen and (min-width: 600px) {
      .home-slider-container .home-slide-wrapper.slide3 .home-slide-content .product-name {
        width: 145%;
        margin-left: -45%; } }
    @media only screen and (min-width: 771px) {
      .home-slider-container .home-slide-wrapper.slide3 .home-slide-content .product-name {
        width: 120%;
        margin-left: -20%; } }
    @media only screen and (min-width: 980px) {
      .home-slider-container .home-slide-wrapper.slide3 .home-slide-content .product-name {
        width: 100%;
        margin-left: 0; } }
    @media only screen and (min-width: 600px) {
      .home-slider-container .home-slide-wrapper.slide4 .home-slide-image {
        top: 26%; }
        .home-slider-container .home-slide-wrapper.slide4 .home-slide-image:lang(en) {
          top: 35%; } }
    @media only screen and (min-width: 980px) {
      .home-slider-container .home-slide-wrapper.slide4 .home-slide-image {
        width: 56%;
        top: 160px;
        bottom: auto; }
        .home-slider-container .home-slide-wrapper.slide4 .home-slide-image:lang(en) {
          top: 320px; } }
    .home-slider-container .home-slide-wrapper .medium {
      display: none; }
    @media only screen and (min-width: 600px) {
      .home-slider-container .home-slide-wrapper .small {
        display: none; } }
    @media only screen and (min-width: 771px) {
      .home-slider-container .home-slide-wrapper .medium {
        display: block; } }

.is-blog .home-slider-container {
  margin-top: 0; }

.is-blog.wordpress-post-view .home-slide-wrapper {
  margin-top: -15px;
  max-width: 1010px;
  padding: 25px;
  margin-left: -25px;
  margin-right: -25px; }

.home-slider-search {
  display: none; }
  @media only screen and (min-width: 771px) {
    .home-slider-search {
      display: block;
      width: 100%;
      height: 0;
      padding-top: 0;
      padding-bottom: 0; } }
  .home-slider-search .home-slider-search-formwrapper {
    position: relative; }
    .home-slider-search .home-slider-search-formwrapper .search_mini_form {
      width: 43%;
      position: absolute;
      right: 0;
      top: -140px; }

.products-teaser-container ul li,
.support-container ul li,
.product-category-nav ul li,
.box-cross-sell ul li,
.shop-list ul li {
  line-height: 1.5;
  padding: 4px 0; }

.products-teaser-container a,
.support-container a,
.product-category-nav a,
.box-cross-sell a,
.shop-list a {
  color: #003b5f;
  border-bottom: 1px solid #003b5f;
  line-height: 1.2; }
  .products-teaser-container a:hover, .products-teaser-container a.active,
  .support-container a:hover,
  .support-container a.active,
  .product-category-nav a:hover,
  .product-category-nav a.active,
  .box-cross-sell a:hover,
  .box-cross-sell a.active,
  .shop-list a:hover,
  .shop-list a.active {
    text-decoration: none;
    color: #1f86bd;
    border-color: #1f86bd; }

.support-container a.active {
  text-decoration: none;
  color: #003b5f;
  border-color: #003b5f; }

.products-teaser-container a.active {
  color: #003b5f;
  border-color: #003b5f; }

.latest-news-container .support-wrapper, .latest-news-container .latest-news-wrapper, .support-container .support-wrapper, .support-container .latest-news-wrapper {
  border-top: 1px dotted #003b5f;
  width: 100%; }
  .latest-news-container .support-wrapper h3, .latest-news-container .latest-news-wrapper h3, .support-container .support-wrapper h3, .support-container .latest-news-wrapper h3 {
    color: #008bd2;
    margin-bottom: 10px;
    padding: 0; }
  .latest-news-container .support-wrapper .links, .latest-news-container .support-wrapper .about, .latest-news-container .latest-news-wrapper .links, .latest-news-container .latest-news-wrapper .about, .support-container .support-wrapper .links, .support-container .support-wrapper .about, .support-container .latest-news-wrapper .links, .support-container .latest-news-wrapper .about {
    line-height: 1.3;
    padding: 35px 0;
    padding-right: 20px;
    box-sizing: border-box; }
    @media only screen and (min-width: 600px) {
      .latest-news-container .support-wrapper .links, .latest-news-container .support-wrapper .about, .latest-news-container .latest-news-wrapper .links, .latest-news-container .latest-news-wrapper .about, .support-container .support-wrapper .links, .support-container .support-wrapper .about, .support-container .latest-news-wrapper .links, .support-container .latest-news-wrapper .about {
        width: 50%;
        float: left; } }
    @media only screen and (min-width: 771px) {
      .latest-news-container .support-wrapper .links, .latest-news-container .support-wrapper .about, .latest-news-container .latest-news-wrapper .links, .latest-news-container .latest-news-wrapper .about, .support-container .support-wrapper .links, .support-container .support-wrapper .about, .support-container .latest-news-wrapper .links, .support-container .latest-news-wrapper .about {
        width: 25%;
        float: left; } }
  .latest-news-container .support-wrapper .support, .latest-news-container .latest-news-wrapper .support, .support-container .support-wrapper .support, .support-container .latest-news-wrapper .support {
    padding: 35px 0;
    padding-bottom: 100px;
    margin-bottom: 35px;
    line-height: 1.3;
    background-image: url(images/support-person.png);
    background-repeat: no-repeat;
    background-position: bottom right;
    clear: both; }
    @media only screen and (min-width: 600px) {
      .latest-news-container .support-wrapper .support, .latest-news-container .latest-news-wrapper .support, .support-container .support-wrapper .support, .support-container .latest-news-wrapper .support {
        width: 50%;
        float: left;
        clear: none;
        padding-bottom: 80px; } }
    @media only screen and (min-width: 771px) {
      .latest-news-container .support-wrapper .support, .latest-news-container .latest-news-wrapper .support, .support-container .support-wrapper .support, .support-container .latest-news-wrapper .support {
        width: 50%;
        float: left;
        clear: none;
        padding-bottom: 60px; } }
    .latest-news-container .support-wrapper .support p, .latest-news-container .latest-news-wrapper .support p, .support-container .support-wrapper .support p, .support-container .latest-news-wrapper .support p {
      width: 70%; }
      @media only screen and (min-width: 771px) {
        .latest-news-container .support-wrapper .support p, .latest-news-container .latest-news-wrapper .support p, .support-container .support-wrapper .support p, .support-container .latest-news-wrapper .support p {
          margin-top: 42px; } }
    .latest-news-container .support-wrapper .support .number, .latest-news-container .latest-news-wrapper .support .number, .support-container .support-wrapper .support .number, .support-container .latest-news-wrapper .support .number {
      font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
      font-size: 20px;
      color: #003b5f; }
  @media only screen and (max-width: 599px) {
    .latest-news-container .support-wrapper .about, .latest-news-container .support-wrapper .support, .latest-news-container .latest-news-wrapper .about, .latest-news-container .latest-news-wrapper .support, .support-container .support-wrapper .about, .support-container .support-wrapper .support, .support-container .latest-news-wrapper .about, .support-container .latest-news-wrapper .support {
      padding-top: 0; } }
  @media only screen and (max-width: 599px) {
    .latest-news-container .support-wrapper .support, .latest-news-container .latest-news-wrapper .support, .support-container .support-wrapper .support, .support-container .latest-news-wrapper .support {
      margin-bottom: 15px; } }

.support-container {
  padding-bottom: 0; }

.latest-news-container {
  padding-bottom: 0; }
  .latest-news-container .latest-news-wrapper {
    padding: 35px 0;
    padding-bottom: 0; }
    .latest-news-container .latest-news-wrapper .latest-news-slider {
      margin: 20px -15px 0 -15px; }
      .latest-news-container .latest-news-wrapper .latest-news-slider .slick-slide {
        margin: 0 15px;
        text-align: center; }
        @media only screen and (min-width: 600px) {
          .latest-news-container .latest-news-wrapper .latest-news-slider .slick-slide {
            text-align: left; } }
        .latest-news-container .latest-news-wrapper .latest-news-slider .slick-slide .headline {
          text-align: left;
          font-size: 17px;
          font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
          color: #003b5f;
          margin: 23px 0 18px 0;
          line-height: 1.3; }
        .latest-news-container .latest-news-wrapper .latest-news-slider .slick-slide a {
          margin-bottom: 10px; }
      .latest-news-container .latest-news-wrapper .latest-news-slider .slick-prev, .latest-news-container .latest-news-wrapper .latest-news-slider .slick-next {
        margin-top: -7.5%; }

.products-teaser-container .products-teaser-wrapper {
  padding: 35px 0;
  padding-bottom: 0;
  border-top: 1px dotted #003b5f;
  width: 100%; }
  .products-teaser-container .products-teaser-wrapper .products-teaser-slider {
    margin: 55px -15px 0 -15px; }
    .products-teaser-container .products-teaser-wrapper .products-teaser-slider .slick-slide {
      margin: 0 15px; }
      .products-teaser-container .products-teaser-wrapper .products-teaser-slider .slick-slide img {
        margin: 5px auto; }
        @media only screen and (max-width: 599px) {
          .products-teaser-container .products-teaser-wrapper .products-teaser-slider .slick-slide img {
            width: 80%; } }
    .products-teaser-container .products-teaser-wrapper .products-teaser-slider .slick-prev, .products-teaser-container .products-teaser-wrapper .products-teaser-slider .slick-next {
      margin-top: -7.5%;
      background: #c9c9c9; }
  .products-teaser-container .products-teaser-wrapper h3 {
    height: 44px; }

.download-list li {
  margin: 10px 0; }

.download-list a {
  padding-left: 30px;
  color: #003b5f;
  position: relative;
  display: inline-block; }
  .download-list a:hover {
    color: #1f86bd;
    text-decoration: none;
    border: none; }
  .download-list a:before {
    display: block;
    content: '';
    position: absolute;
    left: 0;
    top: -1px;
    width: 19px;
    height: 22px;
    background-image: url(images/icon-download-pdf.svg);
    background-size: 19px 22px;
    background-repeat: no-repeat; }

.lightbox-content-link.inline {
  display: inline; }

.loader {
  display: inline-block;
  vertical-align: middle;
  margin-left: 5px;
  height: 11px;
  width: 11px;
  animation: rotate 0.8s infinite linear;
  border: 2px solid #1f86bd;
  border-right-color: transparent;
  border-radius: 50%; }

@keyframes rotate {
  0% {
    transform: rotate(0deg); }
  100% {
    transform: rotate(360deg); } }

/* ============================================ *
 * FORMS - COMMON
 * ============================================ */
/* -------------------------------------------- *
 * Fieldsets
 */
.fieldset p {
  margin-bottom: 7px; }

.fieldset p.required {
  margin-bottom: 5px;
  float: right;
  font-size: 12px;
  margin-top: 0px; }

.customer-address-form p.required {
  float: none;
  width: 100%; }

.fieldset + .fieldset {
  margin-top: 5px; }

form .legend {
  margin: 0;
  margin-bottom: 10px;
  color: #003b5f;
  font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
  font-size: 20px;
  font-weight: normal;
  font-style: normal;
  line-height: 1.1;
  margin-bottom: 15px;
  padding-bottom: 7px; }

/* -------------------------------------------- *
 * Input Box
 */
.input-box {
  padding-top: 2px; }
  .input-box:after {
    content: '';
    display: table;
    clear: both; }

li.centinel-logos div.input-box img {
  display: inline;
  vertical-align: middle; }

/* For adjacent select inputs. */
/* Example: credit card expiration month and year. */
.input-box .v-fix {
  float: left;
  margin-right: 5px;
  max-width: 100%; }

input[type="checkbox"] {
  margin-right: 5px;
  position: relative;
  top: -1px; }

/* -------------------------------------------- *
 * Labels
 */
label {
  display: inline-block;
  font-size: 14px;
  -moz-user-select: none;
  -ms-user-select: none;
  -webkit-user-select: none;
  -o-user-select: none;
  user-select: none; }

label.required:after,
span.required:after {
  content: ' *';
  color: #DF280A;
  font-weight: normal;
  font-family: Arial, sans-serif;
  font-size: 12px; }

.catalog-product-view label.required:after,
.catalog-product-view span.required:after {
  content: '';
  color: #DF280A;
  font-weight: normal;
  font-family: Arial, sans-serif;
  font-size: 12px; }

label.required em,
span.required em {
  display: none; }

/* -------------------------------------------- *
 * Hints
 */
.input-hint {
  color: #5b5b5a;
  font-size: 12px; }

/* -------------------------------------------- *
 * Select
 */
select {
  font-size: 14px; }

select + select {
  margin-left: 5px; }

select[multiple] {
  width: 270px;
  border: 1px solid #C0C0C0;
  font-size: 17px;
  padding: 5px; }

/* -------------------------------------------- *
 * Textarea
 */
textarea {
  width: 100%;
  padding: .7em 1em;
  background: #ECECEC;
  border: none;
  box-sizing: border-box; }

/* -------------------------------------------- *
 * Inputs
 */
.input-text {
  background: #FFFFFF;
  font-size: 17px;
  border: none;
  border-radius: 8px;
  color: #5b5b5a; }
  .input-text:focus {
    outline: none; }

.input-text.validation-failed {
  border-color: #DF280A; }

.input-text.validation-failed:focus {
  outline-color: tint(#DF280A, 50%); }

input[type="search"] {
  height: 40px;
  padding: 9px 20px 7px 20px;
  max-width: 100%; }

input[type=email],
input[type=number],
input[type=password],
input[type=tel],
input[type=text] {
  max-width: 100%;
  -webkit-appearance: none;
  width: 100%;
  box-sizing: border-box;
  border: none;
  padding: 0 1em;
  height: 35px;
  line-height: 14px;
  border-radius: 0;
  font-size: 14px; }
  input[type=email]:-ms-input-placeholder,
  input[type=number]:-ms-input-placeholder,
  input[type=password]:-ms-input-placeholder,
  input[type=tel]:-ms-input-placeholder,
  input[type=text]:-ms-input-placeholder {
    color: #003b5f;
    font-family: Arial, sans-serif; }
  input[type=email]::placeholder,
  input[type=number]::placeholder,
  input[type=password]::placeholder,
  input[type=tel]::placeholder,
  input[type=text]::placeholder {
    color: #003b5f;
    font-family: Arial, sans-serif; }

/* Only show on iPhones (not iPads or any other device) */
@media only screen and (max-device-width: 568px) and (-webkit-min-device-pixel-ratio: 0) {
  input[type=email],
  input[type=search],
  input[type=number],
  input[type=password],
  input[type=tel],
  input[type=text],
  select {
    font-size: 16px;
    /* Prevent from zooming on focus */ } }

.ie8 .input-text {
  max-width: none; }

/* -------------------------------------------- *
 * Inputs - Quantity
 */
input[type=number].qty,
input[type=text].qty {
  width: 3em;
  text-align: center;
  vertical-align: middle; }

/* -------------------------------------------- *
 * Placeholder
 */
::-webkit-input-placeholder {
  color: #4c4c4e; }

input:-moz-placeholder {
  color: #4c4c4e; }

/* -------------------------------------------- *
 * Checkbox And Radio
 */
.checkbox,
.radio {
  position: relative;
  top: -1px;
  display: inline-block; }

.checkbox + label,
.radio + label {
  width: auto;
  max-width: 85%;
  padding: 0 0 0 8px;
  font-size: 14px;
  font-weight: normal;
  vertical-align: top; }

/* -------------------------------------------- *
 * Validation
 */
p.required,
.validation-advice {
  margin: 5px 0 0;
  color: #DF280A;
  font-size: 13px; }

/* ============================================ *
 * Form List
 * ============================================ */
.form-list > li {
  margin-bottom: 10px; }

.form-list .input-range .input-text {
  width: 74px; }

.form-list .field,
.form-list .wide,
.form-list .control {
  margin-bottom: 10px; }

@media only screen and (min-width: 600px) {
  .form-list .fields {
    margin-bottom: 20px; }
    .form-list .fields:after {
      content: '';
      display: table;
      clear: both; }
    .form-list .fields.has-halfs {
      margin-left: -5px;
      margin-right: -5px; }
      .form-list .fields.has-halfs .field {
        box-sizing: border-box; }
        .form-list .fields.has-halfs .field.half {
          width: 50%;
          float: left; }
        .form-list .fields.has-halfs .field.quarter {
          width: 30%;
          float: left; }
        .form-list .fields.has-halfs .field.threequarters {
          width: 70%;
          float: left; }
        .form-list .fields.has-halfs .field .input-box {
          margin: 0 5px; } }

#co-shipping-method-form .buttons-set {
  text-align: left;
  padding: 0;
  margin: 0; }

#co-shipping-method-form #s_method_tablerate_bestway {
  opacity: 0; }

#co-shipping-method-form .sp-methods dd label {
  padding-left: 0 !important; }

#co-shipping-method-form button, #co-shipping-method-form [type=submit] {
  background: none;
  margin: 0;
  padding: 0;
  font-size: 14px;
  color: #003b5f;
  font-family: Arial, sans-serif;
  text-decoration: underline; }

/* Turn the label of controls (radio/checkbox) into a button style that wraps the input */
.form-list .control,
.sp-methods dt,
#checkout-shipping-method-load .sp-methods dd,
#co-shipping-method-form .sp-methods dd,
.product-options ul.options-list {
  /* When a label is next to an input that is set to not display, we should style the label in a non-clickable state */ }
  .form-list .control div.input-box,
  .sp-methods dt div.input-box,
  #checkout-shipping-method-load .sp-methods dd div.input-box,
  #co-shipping-method-form .sp-methods dd div.input-box,
  .product-options ul.options-list div.input-box {
    display: inline;
    float: left; }
    .form-list .control div.input-box:after,
    .sp-methods dt div.input-box:after,
    #checkout-shipping-method-load .sp-methods dd div.input-box:after,
    #co-shipping-method-form .sp-methods dd div.input-box:after,
    .product-options ul.options-list div.input-box:after {
      display: none; }
  .form-list .control input.radio,
  .form-list .control input.checkbox,
  .sp-methods dt input.radio,
  .sp-methods dt input.checkbox,
  #checkout-shipping-method-load .sp-methods dd input.radio,
  #checkout-shipping-method-load .sp-methods dd input.checkbox,
  #co-shipping-method-form .sp-methods dd input.radio,
  #co-shipping-method-form .sp-methods dd input.checkbox,
  .product-options ul.options-list input.radio,
  .product-options ul.options-list input.checkbox {
    float: left;
    margin-right: -40px;
    margin-top: 10px; }
  .form-list .control label,
  .sp-methods dt label,
  #checkout-shipping-method-load .sp-methods dd label,
  #co-shipping-method-form .sp-methods dd label,
  .product-options ul.options-list label {
    color: #003b5f;
    background-color: #F4F4F4;
    padding: 5px 10px;
    background: transparent;
    display: inline-block;
    width: auto;
    width: 100%;
    float: none;
    padding: 6px 0 6px 25px;
    box-sizing: border-box; }
  .form-list .control .no-display + label,
  .sp-methods dt .no-display + label,
  #checkout-shipping-method-load .sp-methods dd .no-display + label,
  #co-shipping-method-form .sp-methods dd .no-display + label,
  .product-options ul.options-list .no-display + label {
    background-color: transparent;
    padding-left: 0; }
    .form-list .control .no-display + label:hover,
    .sp-methods dt .no-display + label:hover,
    #checkout-shipping-method-load .sp-methods dd .no-display + label:hover,
    #co-shipping-method-form .sp-methods dd .no-display + label:hover,
    .product-options ul.options-list .no-display + label:hover {
      background-color: transparent; }

.product-options ul.options-list label,
.col2-set .form-list .control label {
  min-width: inherit;
  width: 100%;
  max-width: 100%; }

.form-list .control.remember-me-box label {
  width: auto;
  max-width: none;
  min-width: inherit; }

.form-list .control {
  margin-top: 10px; }
  .form-list .control label {
    float: none; }
  .form-list .control .radio,
  .form-list .control .checkbox {
    margin-right: 6px; }
  .form-list .control .input-box {
    clear: none;
    display: inline-block;
    width: auto;
    padding: 0; }

*:focus {
  outline: none; }

/* remove standard-styles */
select {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  border: none;
  border-radius: 0;
  font-size: 1em;
  width: 100%; }

/* styling */
select {
  width: 100%;
  padding: 8px 10px;
  background-color: white;
  background-image: url(images/icon-form-select-arrow-down.svg);
  background-position: right 10px top 16px;
  background-size: 10px;
  background-repeat: no-repeat; }
  @media only screen and (min-width: 600px) {
    select {
      padding: 5px 10px;
      background-position: right 10px top 14px; } }

select[disabled] {
  opacity: .6;
  color: #807e82; }

/* ============================================ *
 * Table Helpers
 * ============================================ */
.hide-th {
  text-indent: -9999px; }

/* ============================================ *
 * Data Table
 * ============================================ */
.data-table {
  width: 100%;
  border-spacing: 0; }

.data-table td,
.data-table th {
  padding: 0;
  vertical-align: top; }

.data-table.checkout-review-table {
  margin-left: -5px;
  margin-right: -5px; }
  .data-table.checkout-review-table th {
    font-weight: bold; }
  .data-table.checkout-review-table th, .data-table.checkout-review-table td {
    padding: 5px; }
  .data-table.checkout-review-table tfoot th, .data-table.checkout-review-table tfoot td {
    padding: 0; }

.data-table th {
  line-height: 1.4;
  white-space: nowrap; }

.data-table tr, tfoot {
  width: 100%; }

.data-table tr.dotted-border td div {
  border-bottom: 1px dotted #003b5f; }

.data-table tbody td,
.data-table tfoot td {
  font-family: Arial, sans-serif; }

.data-table tbody td .item-options {
  margin-left: 20px;
  margin-top: 10px; }
  .data-table tbody td .item-options dt:after {
    content: ':'; }

/* ============================================ *
 * Generic Info Table
 * ============================================ */
.info-box {
  border: 1px solid #C0C0C0;
  padding: 12px 15px;
  margin: 0 0 15px; }
  .info-box h2 {
    font-weight: bold;
    font-size: 13px; }

.info-table th,
.info-table td {
  vertical-align: top; }

.info-table th {
  font-weight: bold;
  padding: 4px 20px 4px 0; }

.info-table td {
  padding: 4px 0; }

/* ============================================ *
 * Zebra-Stripe Table
 * ============================================ */
.zebra-table tr:first-child,
.zebra-table th:first-child {
  border-top: 1px solid #C0C0C0; }

.zebra-table td,
.zebra-table th {
  border-bottom: 1px solid #C0C0C0;
  padding: 6px;
  background-color: transparent; }

.zebra-table tr {
  background-color: #EEEDED; }

.zebra-table tr:nth-child(odd) {
  background-color: #F8F7F5; }

/* ============================================ *
 * Linearize Table
 * ============================================ */
@media only screen and (max-width: 479px) {
  .linearize-table {
    /* Helpers */ }
    .linearize-table tr,
    .linearize-table th,
    .linearize-table td {
      display: block; }
    .linearize-table thead th {
      border-right: 0;
      border-left: 0; }
    .linearize-table thead th.lin-hide {
      display: none; }
    .linearize-table thead th:nth-child(1n+2) {
      display: none; }
    .linearize-table tbody tr {
      position: relative;
      border-bottom: 1px solid #CCCCCC; }
    .linearize-table tbody td {
      padding: 0 10px 4px;
      border-right: 0;
      border-bottom: 0; }
    .linearize-table tbody td.lin-hide {
      display: none; }
    .linearize-table tbody td:first-child {
      padding-top: 10px; }
    .linearize-table tbody td:first-child,
    .linearize-table tbody td:first-child h3 {
      font-weight: bold; }
    .linearize-table tbody td[data-rwd-label] {
      text-align: left;
      padding-left: 30px; }
    .linearize-table tbody td[data-rwd-label]:before {
      content: attr(data-rwd-label) ":";
      font-size: 12px;
      font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
      padding-right: 5px;
      text-transform: uppercase; }
    .linearize-table tfoot tr {
      display: block;
      text-align: right; }
    .linearize-table tfoot tr:after {
      content: '';
      display: table;
      clear: both; }
    .linearize-table tfoot td {
      display: block;
      float: left; }
    .linearize-table tfoot td.lin-hide {
      display: none; }
    .linearize-table tfoot td:nth-child(odd) {
      clear: left;
      width: 60%; }
    .linearize-table tfoot td:nth-child(even) {
      text-align: left;
      width: 40%; }
    .linearize-table .linearize-hide {
      display: none; }
    .linearize-table .linearize-unpad {
      padding: 0; }
    .linearize-table .linearize-show {
      display: block; } }

@media only screen and (max-width: 599px) {
  .linearize-table-large {
    /* Helpers */ }
    .linearize-table-large tr,
    .linearize-table-large th,
    .linearize-table-large td {
      display: block; }
    .linearize-table-large thead th {
      border-right: 0;
      border-left: 0; }
    .linearize-table-large thead th.lin-hide {
      display: none; }
    .linearize-table-large thead th:nth-child(1n+2) {
      display: none; }
    .linearize-table-large tbody tr {
      position: relative;
      border-bottom: 1px solid #CCCCCC; }
    .linearize-table-large tbody td {
      padding: 0 10px 4px;
      border-right: 0;
      border-bottom: 0; }
    .linearize-table-large tbody td.lin-hide {
      display: none; }
    .linearize-table-large tbody td:first-child {
      padding-top: 10px; }
    .linearize-table-large tbody td:first-child,
    .linearize-table-large tbody td:first-child h3 {
      font-weight: bold; }
    .linearize-table-large tbody td[data-rwd-label] {
      text-align: left;
      padding-left: 30px; }
    .linearize-table-large tbody td[data-rwd-label]:before {
      content: attr(data-rwd-label) ":";
      font-size: 12px;
      font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
      padding-right: 5px;
      text-transform: uppercase; }
    .linearize-table-large tfoot tr {
      display: block;
      text-align: right; }
    .linearize-table-large tfoot tr:after {
      content: '';
      display: table;
      clear: both; }
    .linearize-table-large tfoot td {
      display: block;
      float: left; }
    .linearize-table-large tfoot td.lin-hide {
      display: none; }
    .linearize-table-large tfoot td:nth-child(odd) {
      clear: left;
      width: 60%; }
    .linearize-table-large tfoot td:nth-child(even) {
      text-align: left;
      width: 40%; }
    .linearize-table-large .linearize-hide {
      display: none; }
    .linearize-table-large .linearize-unpad {
      padding: 0; }
    .linearize-table-large .linearize-show {
      display: block; } }

@media only screen and (min-width: 600px) {
  .linearize-table .linearize-collapse {
    display: none; } }

/* ============================================ *
 * Global
 * ============================================ */
html,
body {
  height: 100%; }

.wrapper {
  min-width: 320px;
  min-height: 100%;
  margin: 0 auto; }

.wrapper:after {
  content: '';
  display: table;
  clear: both; }

/* ============================================ *
 * Header
 * ============================================ */
.page-header {
  position: static; }

@media only screen and (min-width: 771px) {
  .page-header {
    position: relative; } }

.header-language-container,
.page-header {
  font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif; }

.account-cart-wrapper {
  display: inline-block; }

/* ============================================ *
 * Language switcher + welcome message
 * ============================================ */
.form-language {
  display: none;
  position: relative; }
  @media only screen and (min-width: 600px) {
    .form-language {
      display: inline-block;
      margin-right: 15px; } }
  .form-language select::-ms-expand {
    display: none; }
  .form-language:after {
    display: block;
    content: "";
    background: url(images/icon-lang-switch.svg);
    width: 11px;
    height: 7px;
    background-size: 11px;
    position: absolute;
    right: 11px;
    top: 18px; }

#select-language {
  display: inline-block;
  font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
  padding: 0;
  background: transparent; }

.header-language-container {
  padding: 15px;
  padding-top: 12px;
  padding-bottom: 0;
  width: 1360px;
  max-width: 90%;
  margin-left: auto;
  margin-right: auto; }
  .header-language-container:after {
    content: '';
    display: table;
    clear: both; }

.welcome-msg {
  display: none; }

/* @include bp(min-width, $bp-medium + 1) {

        .welcome-msg {
            display: block;
            float: right;
            width: 50%;
            text-align: right;
        }

    }*/
/* ============================================ *
 * Logo
 * ============================================ */
.logo-wrapper {
  display: block;
  width: 70px;
  position: absolute;
  right: 15px;
  top: 15px; }
  .logo-wrapper .logo img {
    width: 100%;
    max-width: 100%; }
    .logo-wrapper .logo img.small {
      display: inline; }
    .logo-wrapper .logo img.large {
      display: none; }

@media only screen and (min-width: 600px) {
  .logo-wrapper {
    width: 80px; } }

@media only screen and (min-width: 771px) {
  .logo-wrapper {
    text-align: right;
    width: 100%;
    position: relative;
    max-width: 1500px;
    margin: auto; }
    .logo-wrapper .logo {
      display: inline-block;
      margin-right: 10px; }
      .logo-wrapper .logo img.small {
        display: none; }
      .logo-wrapper .logo img.large {
        display: inline; } }

/* ============================================ *
 * Skip Links
 * ============================================ */
.skip-links {
  clear: both;
  overflow: hidden; }
  @media only screen and (min-width: 771px) {
    .skip-links {
      padding-left: 10px; } }

@media only screen and (min-width: 901px) {
  .skip-links {
    width: 70%;
    float: left; } }

/* -------------------------------------------- *
 * Skip - Link
 */
.skip-link, #select-language {
  position: relative;
  height: 44px;
  font-size: 17px;
  color: #4c4c4e;
  line-height: 42px;
  text-align: left; }
  @media only screen and (min-width: 600px) {
    .skip-link, #select-language {
      margin-right: 24px; } }
  .skip-link img, #select-language img {
    margin-right: 10px; }
  .skip-link:hover, .skip-link:active, .skip-link:visited, #select-language:hover, #select-language:active, #select-language:visited {
    color: #4c4c4e !important;
    outline: none; }

a.skip-link {
  text-decoration: none; }

.skip-link img.image-icon {
  margin-top: -3px; }

/* -------------------------------------------- *
 * Skip Link - Label
 */
.skip-link .label {
  display: none; }

@media only screen and (min-width: 600px) {
  .skip-link .label {
    display: inline; } }

/* ============================================ *
 * Skip Content
 * ============================================ */
.skip-content {
  display: none; }

@media only screen and (min-width: 901px) {
  #header-nav {
    display: block;
    margin-top: 35px; } }

@media only screen and (min-width: 771px) {
  #header-nav {
    margin-top: 0; } }

.skip-content.skip-active {
  display: block;
  background: #EDEDED; }

/* ============================================ *
 * Global Header Navigation
 * ============================================ */
@media only screen and (max-width: 770px) {
  .account-cart-wrapper {
    position: static; } }

/* ============================================ *
 * Nav - Skip Link
 * ============================================ */
.skip-nav:not(.skip-active):hover {
  text-decoration: none; }

.skip-nav .label {
  display: inline; }

.skip-nav .icon {
  background-position: 4px 4px; }

@media only screen and (min-width: 901px) {
  .skip-nav {
    display: none; } }

/* ============================================ *
 * Nav Primary
 * ============================================ */
@media only screen and (min-width: 901px) {
  .nav-primary {
    display: block;
    margin-top: 10px; } }

/* ============================================ *
 * General Navigation Styles
 * ============================================ */
.nav-primary a {
  text-decoration: none;
  position: relative;
  display: block;
  color: #003b5f;
  line-height: 30px;
  font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif; }

.nav-primary .menu-active > ul.level0,
.nav-primary li.level0 li.sub-menu-active > ul {
  display: block; }

.nav-primary li.level0 > a {
  text-transform: uppercase; }

.active a.level0 {
  color: #1f86bd; }

a.level0.active {
  color: #1f86bd; }

.cms-index-index a.level0.active {
  color: #003b5f; }
  .cms-index-index a.level0.active:hover {
    color: #1f86bd; }

/* ============================================ *
 * Small Viewports - Accordion Style Menu
 * ============================================ */
.mobile-only {
  display: none; }

.mobile-nav-controls {
  display: none; }

@media only screen and (max-width: 599px) {
  .skip-cart img.image-icon {
    width: 27px;
    margin-left: 5px; } }

@media only screen and (max-width: 900px) {
  body.nav-open {
    overflow: hidden; }
  .skip-active .mobile-nav-controls {
    display: block;
    position: fixed;
    left: 0;
    top: 0;
    z-index: 9999;
    padding: 20px;
    background: white;
    box-sizing: border-box;
    width: 100%; }
    .skip-active .mobile-nav-controls .form-language {
      display: none; }
  #header-nav-container {
    width: 100%;
    height: 100%;
    background: white;
    top: 0;
    left: 0;
    position: fixed;
    z-index: 999;
    transition: transform .3s ease; }
  img.image-icon.nav-control-left {
    margin-left: 15px;
    pointer-events: none;
    opacity: 0;
    transition: opacity .15s ease; }
    img.image-icon.nav-control-left.is-visible {
      pointer-events: auto;
      opacity: 1; }
  nav#nav {
    height: 100%;
    overflow: scroll; }
  #header-nav ul, #header-nav ol {
    padding-top: 95px;
    padding-bottom: 35px;
    box-sizing: border-box; }
    #header-nav ul li, #header-nav ol li {
      padding: 0 20px; }
      #header-nav ul li a, #header-nav ol li a {
        padding: 7px 0 5px 0;
        font-size: 24px;
        text-transform: uppercase;
        border-bottom: 1px dotted #003b5f; }
      #header-nav ul li.view-all > a, #header-nav ol li.view-all > a {
        border-top: 1px dotted #003b5f; }
  #header-nav .nav-1 ul li.first > a {
    border-top: 1px dotted #003b5f; }
  #header-nav li.nav-1.first > a {
    border-top: 1px dotted #003b5f; }
  .nav-primary ul.level0,
  .nav-primary ul.level1,
  .nav-primary ul.level2 {
    width: 100%;
    position: absolute;
    left: 100%;
    background: white;
    top: 0;
    height: 100%;
    z-index: 999; }
  .nav-primary li.level0 ul {
    display: none; }
  li.support-block {
    display: none; } }

@media only screen and (max-width: 600px) {
  .skip-active .mobile-nav-controls .form-language {
    display: inline-block;
    float: right; }
    .skip-active .mobile-nav-controls .form-language #select-language {
      font-size: 26px;
      line-height: 1;
      height: auto;
      color: #a5a5a4; }
    .skip-active .mobile-nav-controls .form-language:after {
      display: none; } }

/* ============================================ *
 * Large Viewports - Dropdown Menu
 * ============================================ */
@media only screen and (min-width: 901px) {
  .nav-primary {
    position: relative;
    /* Default styles for 1+ drop-down menus */
    /* Level 2+ */ }
    .nav-primary li a {
      outline: 0 !important; }
    .nav-primary a.level0 {
      margin-right: 28px;
      font-size: 24px;
      padding-bottom: 10px; }
    .nav-primary .view-all {
      display: none; }
    .nav-primary .menu-active a.level0.has-children:before {
      content: "\A";
      border-style: solid;
      border-width: 0 15px 15px 15px;
      border-color: transparent transparent white transparent;
      position: absolute;
      bottom: -3px;
      left: 50%;
      margin-left: -15px; }
    .nav-primary li.level0,
    .nav-primary a.level0 {
      display: inline-block; }
    .nav-primary a:hover,
    .nav-primary li:hover > a {
      color: #1f86bd; }
    .nav-primary .menu-active {
      z-index: 200; }
    .nav-primary li.level0 ul {
      background: white;
      position: absolute;
      left: 0;
      top: 40px;
      /* Height of ".nav-primary a.level0" */
      padding: 35px 0;
      z-index: 999;
      display: none;
      /* Hide until displayed. */
      width: 80%;
      min-height: 180px;
      box-sizing: border-box; }
      .nav-primary li.level0 ul > li a {
        font-size: 17px;
        text-transform: uppercase;
        color: #5b5b5a; }
        .nav-primary li.level0 ul > li a:hover {
          color: #003b5f; }
      .nav-primary li.level0 ul li {
        padding: 3px 20px;
        margin: 8px 0 7px 0; }
        .nav-primary li.level0 ul li.support-block {
          margin: 0; }
        .nav-primary li.level0 ul li a {
          line-height: 1.3; }
        .nav-primary li.level0 ul li.productfinder-link {
          margin-top: 35px; }
          .nav-primary li.level0 ul li.productfinder-link a {
            line-height: 1.3; }
      .nav-primary li.level0 ul .support-block {
        position: absolute;
        height: 100%;
        width: 25%;
        display: block;
        right: 0;
        padding: 35px 20px;
        top: -1px;
        border-left: 1px dotted #003b5f;
        font-family: Arial, sans-serif;
        box-sizing: border-box; }
        .nav-primary li.level0 ul .support-block span.phone {
          font-size: 20px;
          margin-bottom: 5px; }
        .nav-primary li.level0 ul .support-block .left {
          width: 64%;
          position: relative;
          z-index: 999; }
        .nav-primary li.level0 ul .support-block h3, .nav-primary li.level0 ul .support-block .h3 {
          font-size: 17px;
          border: none;
          margin-bottom: 5px; }
        .nav-primary li.level0 ul .support-block img {
          position: absolute;
          width: 60%;
          right: 0;
          height: auto;
          bottom: -1px;
          z-index: 99; }
      .nav-primary li.level0 ul:before {
        display: block;
        height: 35px;
        content: "";
        top: 0;
        left: 0;
        position: absolute;
        width: 80%;
        background: white;
        z-index: 9999; }
      .nav-primary li.level0 ul:after {
        display: block;
        height: 35px;
        content: "";
        bottom: 0;
        left: 0;
        position: absolute;
        width: 80%;
        background: white;
        z-index: 9999; }
    .nav-primary li.nav-1.level0 ul,
    .nav-primary li.nav-3.level0 ul {
      width: 100%; }
    .nav-primary li.nav-1.level0 ul > li.level1 {
      width: 25%; }
    .nav-primary li.nav-4.level0 ul,
    .nav-primary li.nav-5.level0 ul {
      width: 50%; }
    .nav-primary li.nav-4.level0 > ul,
    .nav-primary li.nav-5.level0 > ul {
      left: auto; }
    .nav-primary li.level0 > li {
      width: 33.333%;
      box-sizing: border-box; }
    .nav-primary li.nav-1.level0 > li,
    .nav-primary li.nav-3.level0 > li {
      width: 25%; }
    .nav-primary li.nav-4.level0 > li,
    .nav-primary li.nav-5.level0 > li {
      width: 50%; }
    .nav-primary li.level1 ul {
      left: 33.333%;
      top: 0;
      width: 33.333%;
      height: 100%;
      border-left: 1px dotted #807e82; }
      .nav-primary li.level1 ul li {
        width: 100%;
        box-sizing: border-box; }
      .nav-primary li.level1 ul li a {
        font-family: Arial, sans-serif;
        font-size: 14px;
        text-transform: none; }
    .nav-primary .nav-1 li.level1 ul,
    .nav-primary .nav-3 li.level1 ul {
      left: 25%;
      width: 25%; }
    .nav-primary .nav-1 li.level2 ul,
    .nav-primary .nav-3 li.level2 ul {
      left: 100%;
      width: 100%; }
    .nav-primary .nav-4 li.level1 ul,
    .nav-primary .nav-5 li.level1 ul {
      left: 50%;
      width: 50%; } }

.nav-product-targets a {
  display: none;
  font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif !important;
  font-size: 17px !important;
  color: #003b5f !important; }
  .nav-product-targets a img {
    margin-bottom: 10px; }
  .nav-product-targets a.is-visible {
    display: block; }

.nav-product-triggers a {
  margin-bottom: 11px; }

.nav-primary li.menu-active > ul {
  display: block; }

/* ============================================ *
 * Search - Skip Link
 * ============================================ */
/* ============================================ *
 * Search - Skip Content
 * ============================================ */
.skip-search .image-icon {
  margin-top: -6px; }
  @media only screen and (max-width: 599px) {
    .skip-search .image-icon {
      width: 26px;
      margin-top: -2px; } }

@media only screen and (max-width: 599px) {
  #header-search {
    position: absolute;
    top: 14px;
    padding: 0 15px;
    width: 64%;
    z-index: 999;
    box-sizing: border-box;
    display: none;
    right: 0; }
    #header-search.skip-active {
      display: block; }
  .skip-search {
    margin-left: 5px; } }

@media only screen and (max-width: 372px) {
  #header-search {
    width: 60%; } }

@media only screen and (min-width: 600px) {
  .skip-search {
    display: none;
    margin-left: 5px; }
  #header-search {
    display: inline-block;
    padding: 0; }
    #header-search input {
      background: transparent;
      padding: 8px 10px 6px 10px;
      padding-left: 40px;
      width: 120px;
      margin-right: 14px;
      transition: background .15s ease-out, width .15s ease-out;
      cursor: pointer; }
      #header-search input:focus {
        background: white;
        width: 260px; }
    #header-search .search_mini_form .search-button {
      display: none; }
    #header-search .input-box ::-webkit-input-placeholder {
      color: #4c4c4e; }
    #header-search .input-box :-moz-placeholder {
      /* Firefox 18- */
      color: #4c4c4e; }
    #header-search .input-box ::-moz-placeholder {
      /* Firefox 19+ */
      color: #4c4c4e; }
    #header-search .input-box :-ms-input-placeholder {
      color: #4c4c4e; }
    #header-search .input-box:before {
      display: block;
      content: '';
      position: absolute;
      left: 10px;
      top: 50%;
      width: 20px;
      height: 20px;
      background: url(images/icon-search.svg);
      background-size: contain;
      margin-top: -12px; } }

/* ============================================ *
 * Search Input
 * ============================================ */
.search_mini_form .input-box {
  position: relative;
  padding-top: 0; }

.search_mini_form label {
  display: none; }

#search {
  width: 100%;
  height: 40px;
  height: auto;
  padding-right: 40px;
  font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif; }

.search_mini_form .search-button {
  text-indent: -9999px;
  position: absolute;
  top: 0;
  right: 0;
  width: 40px;
  height: 40px;
  border: 0;
  background: none; }

.search_mini_form .search-button:before {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 29px;
  height: 29px;
  margin-top: -14px;
  margin-left: -15px;
  background: url(images/icon-search-blue.svg);
  background-repeat: no-repeat; }

.search_mini_form .search-button:active:before {
  margin-top: -13px;
  margin-left: -13px; }

/* ============================================ *
 * Header - Account
 * ============================================ */
/* -------------------------------------------- *
 * Skip Link - Account
 */
.skip-account:not(.skip-active):hover .icon {
  background-position: -46px -44px; }

.skip-account .icon {
  background-position: 4px -44px; }

@media only screen and (min-width: 771px) {
  .skip-account {
    float: none;
    width: auto;
    vertical-align: top;
    display: inline-block;
    padding: 0 10px;
    text-transform: uppercase; }
  #header-account.skip-active {
    background: #FBFBFB;
    border: solid 1px #CCCCCC;
    display: block;
    position: absolute;
    z-index: 200;
    top: 40px;
    right: 115px;
    width: 200px; }
  #header-account a {
    display: block;
    padding: 5px 10px;
    color: #003b5f;
    line-height: 2; }
  #header-account a:hover {
    color: #1f86bd; } }

/* -------------------------------------------- *
 * Account Links
 */
#header-account {
  padding: 5px 0; }

#header-account a {
  position: relative;
  display: block;
  padding: 5px 10px;
  line-height: 23px;
  text-align: center; }

#header-account a:hover {
  color: #1f86bd; }

/* ============================================ *
 * Header - Cart
 * ============================================ */
/* -------------------------------------------- *
 * Skip Link - Cart
 */
@media only screen and (min-width: 771px) {
  .skip-cart {
    width: auto; }
  #header-cart.skip-active {
    background: #FBFBFB;
    border: solid 1px #CCCCCC;
    display: block;
    position: absolute;
    z-index: 200;
    top: 40px;
    right: 0;
    width: 320px;
    background: white; } }

/* -------------------------------------------- *
 * Skip Cart Notifier
 */
.skip-cart {
  position: relative; }

.skip-cart .count {
  display: block;
  top: -12px;
  left: 12px;
  width: 18px;
  height: 18px;
  position: absolute;
  font-size: 12px;
  color: white;
  border-radius: 100%;
  background: #1f86bd;
  line-height: 20px;
  text-align: center; }

.skip-link.skip-active .count {
  color: white; }

.skip-cart.no-count .count {
  display: none; }

@media only screen and (max-width: 599px) {
  .skip-cart .count {
    left: 20px; } }

@media only screen and (min-width: 771px) {
  .skip-cart:hover {
    text-decoration: none; }
  .skip-link.skip-active .count {
    color: #1f86bd; } }

.skip-cart .count.empty {
  display: none; }

/* -------------------------------------------- *
 * Mini Cart - Empty
 */
.cart-menu .empty {
  padding: 20px;
  text-align: center; }

/* -------------------------------------------- *
 * Mini Cart - Full
 */
/* Actions */
.cart-menu .actions {
  overflow: hidden;
  padding: 15px; }

.cart-menu .actions .button {
  float: left;
  width: 48%; }

.cart-menu .actions .button + .button {
  margin-left: 4%; }

/* Subtotal */
.cart-menu .subtotal {
  padding: 0 15px 15px;
  font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
  font-size: 24px;
  line-height: 1.2; }

/* List */
.mini-cart-list {
  margin-bottom: 5px; }

.mini-cart-list li {
  position: relative;
  min-height: 90px;
  padding: 15px 15px 15px 90px;
  border-top: 1px solid #CCCCCC;
  font-size: 13px;
  line-height: 1.35; }

.mini-cart-list .product-name {
  display: inline-block; }

.mini-cart-list .product-image {
  position: absolute;
  left: 15px;
  top: 15px; }

.mini-cart-list .product-image img {
  width: 60px;
  height: 60px; }

.mini-cart-list .has-options {
  margin-bottom: 0;
  color: #5b5b5a;
  font-size: 12px; }

/* Too full - additional items will be shown in cart */
.cart-menu .last-added {
  padding: 10px 15px 15px;
  border-top: 1px solid #CCCCCC;
  font-size: 13px; }

/* ============================================ *
 * Footer
 * ============================================ */
/* -------------------------------------------- *
 * Footer
 */
.footer-container {
  margin-bottom: 25px; }
  @media only screen and (min-width: 600px) {
    .footer-container {
      margin-bottom: 60px; } }

.footer {
  clear: both;
  width: 100%;
  border-top: 1px dotted #003b5f;
  padding-top: 80px;
  /* -------------------------------------------- *
     * Social icons
     */ }
  @media only screen and (max-width: 479px) {
    .footer {
      padding-top: 15px; } }
  .footer .block-title {
    border-bottom: 0; }
  .footer .block-title strong {
    font-weight: normal;
    font-size: 20px;
    color: #003b5f; }
  .footer h5 {
    margin-bottom: 4px; }
  .footer .links {
    float: left;
    width: 25%;
    box-sizing: border-box;
    padding-right: 10px;
    margin-bottom: 35px; }
    .footer .links img {
      display: inline-block;
      vertical-align: middle;
      margin-left: 5px; }
    .footer .links li {
      word-break: break-all;
      line-height: 1.3;
      padding: 4px 0;
      font-size: 14px; }
    .footer .links.payment-methods li {
      line-height: 1.8; }
    .footer .links a {
      color: #003b5f;
      font-size: 14px; }
      .footer .links a:hover {
        color: #1f86bd;
        text-decoration: none;
        border: none; }
  .footer .block-subscribe {
    float: right;
    width: 320px;
    margin-bottom: 35px; }
  .footer .links,
  .footer .block-subscribe {
    font-size: 12px; }
  .footer .form-subscribe-header {
    display: none; }
  .footer .links.social-media em {
    background-image: url(images/social_icons.png);
    background-repeat: no-repeat;
    width: 13px;
    vertical-align: middle;
    display: inline-block;
    margin-right: 7px; }
  @media (-webkit-min-device-pixel-ratio: 2), (min--moz-device-pixel-ratio: 2), (min-device-pixel-ratio: 2), (min-resolution: 192dpi), (min-resolution: 2dppx) {
    .footer .links.social-media em {
      background-image: url(images/social_icons@2x.png);
      background-size: 50px 125px; } }
  .footer .links.social-media em.facebook {
    background-position: 0 -0px;
    height: 13px; }
  .footer .links.social-media a:hover em.facebook {
    background-position: -25px -0px; }
  .footer .links.social-media em.twitter {
    background-position: 0 -24px;
    height: 13px; }
  .footer .links.social-media a:hover em.twitter {
    background-position: -25px -24px; }
  .footer .links.social-media em.youtube {
    background-position: 0 -49px;
    height: 13px; }
  .footer .links.social-media a:hover em.youtube {
    background-position: -25px -49px; }
  .footer .links.social-media em.pinterest {
    background-position: 0 -74px;
    height: 15px; }
  .footer .links.social-media a:hover em.pinterest {
    background-position: -25px -74px; }
  .footer .links.social-media em.rss {
    background-position: 0 -99px;
    height: 13px; }
  .footer .links.social-media a:hover em.rss {
    background-position: -25px -99px; }
  .footer .block-subscribe .input-box {
    float: left;
    width: 65.625%;
    padding-top: 0; }
  .footer .block-subscribe .input-text {
    width: 100%;
    border-right: 0; }
  .footer .block-subscribe .block-content {
    padding-top: 7px; }
    .footer .block-subscribe .block-content:after {
      content: '';
      display: table;
      clear: both; }
  .footer .block-subscribe .actions {
    float: left;
    width: 34.375%;
    margin: 0; }
  .footer .block-subscribe .actions .button {
    height: 30px;
    line-height: 17px;
    float: left; }
  .footer .bugs,
  .footer address {
    clear: both; }
  .footer .bugs {
    display: none; }
  .footer .form-language,
  .footer .currency-switcher,
  .footer .store-switcher {
    clear: both;
    margin-bottom: 10px; }
  .footer .form-language,
  .footer .currency-switcher {
    display: none; }
  .footer address {
    font-size: 14px;
    width: 100%;
    color: #5b5b5a;
    margin-top: 35px; }
    @media only screen and (min-width: 599px) {
      .footer address {
        font-size: 13px; } }
    .footer address a {
      color: #5b5b5a; }
      .footer address a:hover {
        text-decoration: none; }
  @media only screen and (max-width: 1199px) {
    .footer .links {
      width: 22.65625%;
      padding-right: 0;
      margin-right: 3.125%; }
    .footer .links:nth-child(4) {
      margin-right: 0; }
    .footer .block-subscribe {
      clear: both;
      float: none;
      margin: 0 auto 35px auto; } }
  @media only screen and (max-width: 770px) {
    .footer .form-language,
    .footer .currency-switcher {
      display: block; } }
  @media only screen and (max-width: 599px) {
    .footer .links {
      width: 48.4375%;
      margin-right: 0; }
    .footer .links:nth-child(odd) {
      margin-right: 3.125%;
      clear: both; }
    .footer .block-subscribe {
      clear: both;
      float: left;
      width: 100%; } }

.catalog-product-view .footer {
  border: none;
  padding-top: 0; }

/* ================================================= *
 * General Product List Styles (not module-specific)
 * ================================================= */
/* -------------------------------------------- *
 * Product List General
 */
.category-title h1,
body.catalogsearch-result-index .page-title h1 {
  border-bottom: none; }

@media only screen and (min-width: 600px) {
  .catalogsearch-result-index .page-title {
    padding-bottom: 35px; } }

.catalogsearch-result-index .page-title h1 {
  text-transform: uppercase; }

@media only screen and (max-width: 599px) {
  .catalogsearch-result-index .sidebar {
    margin-top: 70px; } }

.category-image {
  margin-bottom: 1.5em; }

.products-list .action .button,
.products-grid .actions .button {
  white-space: normal; }

/* -------------------------------------------- *
 * Product Name
 */
h2.product-name,
h3.product-name,
h4.product-name,
h5.product-name,
p.product-name {
  margin: 0;
  margin-bottom: 0.5em;
  color: #003b5f;
  font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
  font-size: 24px;
  font-weight: normal;
  font-style: normal;
  line-height: 1.2;
  font-size: 13px;
  font-family: Arial, sans-serif;
  font-weight: normal;
  line-height: 1.4; }
  h2.product-name a,
  h3.product-name a,
  h4.product-name a,
  h5.product-name a,
  p.product-name a {
    color: #003b5f; }
    h2.product-name a:hover,
    h3.product-name a:hover,
    h4.product-name a:hover,
    h5.product-name a:hover,
    p.product-name a:hover {
      color: #1f86bd;
      text-decoration: none; }

.products-grid .product-name,
.products-list .product-name {
  text-align: left;
  padding: 15px 0;
  border-bottom: 1px dotted #003b5f;
  font-size: 14px; }
  .products-grid .product-name a,
  .products-list .product-name a {
    font-family: Arial, sans-serif;
    color: #003b5f;
    cursor: pointer; }

/* ============================================ *
 * Product Grid
 * ============================================ */
.products-grid {
  position: relative; }

.products-grid:after {
  content: '';
  display: table;
  clear: both; }

.products-grid > li {
  position: relative;
  margin-bottom: 20px;
  text-align: center; }
  .products-grid > li:after {
    content: '';
    display: table;
    clear: both; }

.badge-new, .badge-custom {
  width: 60px !important;
  height: 60px !important;
  line-height: 60px;
  font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
  font-size: 20px;
  background: #6cb315;
  border-radius: 100%;
  color: white;
  position: absolute;
  right: 0;
  bottom: 0;
  text-align: center;
  transform: rotate(-5deg); }
  @media only screen and (min-width: 600px) {
    .badge-new, .badge-custom {
      font-size: 32px;
      width: 90px !important;
      height: 90px !important;
      line-height: 90px;
      right: 2px;
      bottom: 10px; } }

.badge-custom {
  right: auto;
  bottom: auto;
  left: 0;
  top: 0; }
  @media only screen and (min-width: 600px) {
    .badge-custom {
      left: 2px;
      top: 10px; } }

.nav-primary .badge-new, .nav-primary .badge-custom {
  width: 60px !important;
  height: 60px !important;
  line-height: 60px;
  font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
  font-size: 20px;
  background: #6cb315;
  border-radius: 100%;
  color: white;
  position: absolute;
  right: 0;
  bottom: 0;
  text-align: center;
  transform: rotate(-5deg); }
  @media only screen and (min-width: 600px) {
    .nav-primary .badge-new, .nav-primary .badge-custom {
      font-size: 20px;
      width: 60px !important;
      height: 60px !important;
      line-height: 60px;
      right: -10px;
      bottom: auto;
      top: 60px; } }

.nav-primary .badge-custom {
  border-radius: 0;
  background: none;
  transform: none;
  right: auto;
  bottom: auto;
  left: -10px;
  top: 0; }

.badge-custom {
  border-radius: 0;
  background: none;
  transform: none; }

.product-image {
  position: relative;
  height: auto;
  display: block; }
  .product-image:hover .badge-new {
    text-decoration: none; }

.catalog-category-view .product-category .product .product-image, #block-productfinder .product-image, .box-up-sell-slider .product-image, .catalogsearch-result-index .product-image {
  width: 100%;
  padding: 0 15%;
  margin: auto;
  box-sizing: border-box; }

.products-grid .product-image {
  margin-bottom: 15px; }

.products-grid .product-image img {
  width: 100%;
  height: auto; }
  .products-grid .product-image img:hidden {
    display: none; }

.widget-new-products .products-grid .product-image {
  width: 75%;
  margin-bottom: 15px;
  margin-left: 10%; }

.products-grid .product-info {
  position: relative; }

.products-grid .actions {
  padding-top: 10px;
  position: absolute;
  bottom: 0px;
  min-height: 85px;
  width: 100%; }

.products-grid .ratings .rating-box {
  margin: 0 auto; }

.products-grid .ratings .amount {
  display: none; }

.products-grid .price-box {
  color: #5b5b5a;
  font-size: 13px;
  margin: 0 0 5px; }

.products-grid .add-to-links {
  margin-bottom: 0; }

/* Config: Two columns + flexible gutter */
.products-grid > li {
  float: left;
  width: 47.72727%;
  margin-right: 4.54545%; }

.products-grid > li:nth-child(odd) {
  clear: left; }

.products-grid > li:nth-child(even) {
  margin-right: 0; }

.products-grid .product-image {
  margin-bottom: 5px; }
  .products-grid .product-image:before, .products-grid .product-image:after {
    content: '';
    position: absolute;
    top: 0px;
    left: 0px;
    width: 100%;
    height: 100%;
    display: none; }
  .products-grid .product-image:before {
    background-color: white;
    opacity: 0.8;
    z-index: 2; }
  .products-grid .product-image:after {
    background-image: url("../images/opc-ajax-loader.gif");
    background-repeat: no-repeat;
    background-position: center;
    z-index: 3; }
  .products-grid .product-image.loading {
    position: relative; }
    .products-grid .product-image.loading:before, .products-grid .product-image.loading:after {
      display: block; }

@media only screen and (min-width: 480px) {
  /* Config: Three columns + flexible gutter */
  .products-grid {
    /* Undo two-column config */
    /* Set three-column config */ }
    .products-grid > li:nth-child(odd) {
      clear: none; }
    .products-grid > li:nth-child(even) {
      margin-right: 3.77358%; }
    .products-grid > li {
      width: 30.81761%;
      margin-right: 3.77358%; }
    .products-grid > li:nth-child(3n+1) {
      clear: left; }
    .products-grid > li:nth-child(3n) {
      margin-right: 0; } }

@media only screen and (min-width: 960px) {
  /* Config: Columns + flexible gutter */
  /* Undo three-column config */
  .products-grid--max-4-col > li:nth-child(odd) {
    clear: none; }
  .products-grid--max-4-col > li:nth-child(3n+1) {
    clear: none; }
  .products-grid--max-4-col > li:nth-child(even),
  .products-grid--max-4-col > li:nth-child(3n) {
    margin-right: 2.24719%; }
  /* Set column config */
  .products-grid--max-4-col > li {
    margin-right: 2.24719%; }
  .products-grid--max-4-col > li {
    width: 23.31461%;
    margin-right: 2.24719%; }
  .products-grid--max-4-col > li:nth-child(4n+1) {
    clear: left; }
  .products-grid--max-4-col > li:nth-child(4n) {
    margin-right: 0; }
  /* Config: Columns + flexible gutter */
  /* Undo three-column config */
  .products-grid--max-5-col > li:nth-child(odd) {
    clear: none; }
  .products-grid--max-5-col > li:nth-child(3n+1) {
    clear: none; }
  .products-grid--max-5-col > li:nth-child(even),
  .products-grid--max-5-col > li:nth-child(3n) {
    margin-right: 2.24719%; }
  /* Set column config */
  .products-grid--max-5-col > li {
    margin-right: 2.24719%; }
  .products-grid--max-5-col > li {
    width: 18.20225%;
    margin-right: 2.24719%; }
  .products-grid--max-5-col > li:nth-child(5n+1) {
    clear: left; }
  .products-grid--max-5-col > li:nth-child(5n) {
    margin-right: 0; }
  /* Config: Columns + flexible gutter */
  /* Undo three-column config */
  .products-grid--max-6-col > li:nth-child(odd) {
    clear: none; }
  .products-grid--max-6-col > li:nth-child(3n+1) {
    clear: none; }
  .products-grid--max-6-col > li:nth-child(even),
  .products-grid--max-6-col > li:nth-child(3n) {
    margin-right: 2.24719%; }
  /* Set column config */
  .products-grid--max-6-col > li {
    margin-right: 2.24719%; }
  .products-grid--max-6-col > li {
    width: 14.79401%;
    margin-right: 2.24719%; }
  .products-grid--max-6-col > li:nth-child(6n+1) {
    clear: left; }
  .products-grid--max-6-col > li:nth-child(6n) {
    margin-right: 0; } }

/* ============================================ *
 * Product List
 * ============================================ */
.products-list {
  margin-top: 20px;
  margin-bottom: 20px; }
  .products-list > li {
    padding-bottom: 20px;
    margin-bottom: 20px;
    border-bottom: 1px solid #EDEDED; }
    .products-list > li:after {
      content: '';
      display: table;
      clear: both; }
    .products-list > li .product-image {
      float: left;
      width: 33.33333%; }
      .products-list > li .product-image img {
        width: 100%;
        max-width: 100%; }
  .products-list > li:last-child {
    padding-bottom: 0;
    border-bottom: none; }

.products-list .product-shop {
  float: right;
  width: 66.66667%;
  padding-left: 20px; }
  .products-list .product-shop .product-name {
    margin-bottom: 0; }
  .products-list .product-shop .ratings {
    margin: 0; }
    .products-list .product-shop .ratings .rating-box,
    .products-list .product-shop .ratings .rating-links {
      float: left;
      margin-right: 7px; }
    .products-list .product-shop .ratings .rating-links {
      margin-top: 4px; }
  .products-list .product-shop .price-box {
    margin-top: 0; }
  .products-list .product-shop .price-box .price {
    font-size: 24px; }
  .products-list .product-shop .action {
    margin: 7px 0; }
  .products-list .product-shop .desc {
    margin-top: 7px; }
  .products-list .product-shop .product-primary,
  .products-list .product-shop .desc {
    float: left;
    width: 65%;
    overflow: hidden; }
  .products-list .product-shop .product-secondary {
    float: right;
    width: 35%;
    text-align: right;
    clear: right; }

@media only screen and (min-width: 480px) {
  .products-list .product-name a {
    font-size: 24px; } }

@media only screen and (max-width: 1279px) {
  .products-list .product-shop .product-primary,
  .products-list .product-shop .desc {
    float: left;
    width: 60%;
    padding-right: 20px; }
  .products-list .product-shop .product-secondary {
    float: right;
    width: 40%; } }

@media only screen and (max-width: 600px) {
  .products-list .product-shop .price-box .special-price {
    padding-left: 0; }
  .products-list .product-shop .product-primary,
  .products-list .product-shop .product-secondary,
  .products-list .product-shop .desc {
    float: none;
    width: 100%;
    padding-right: 0;
    text-align: left; } }

/* ============================================ *
 * Mini Product List
 * ============================================ */
.mini-products-list .product-image {
  float: left;
  min-width: 50px; }

.mini-products-list .product-details {
  margin-left: 60px; }

.mini-products-list .product-details .product-name {
  padding-top: 10px; }

.mini-products-list li {
  margin-bottom: 10px;
  clear: both; }
  .mini-products-list li:after {
    content: '';
    display: table;
    clear: both; }

.mini-products-images-list:after {
  content: '';
  display: table;
  clear: both; }

.mini-products-images-list li.item {
  float: left;
  width: 50%;
  margin: 0;
  padding: 0 5px 10px 0; }
  .mini-products-images-list li.item:nth-child(even) {
    padding-right: 0;
    padding-left: 5px; }
  .mini-products-images-list li.item .product-image {
    display: block; }
    .mini-products-images-list li.item .product-image img {
      width: 100%;
      max-width: 100%; }

/* ============================================ *
 * Catalog - List
 * ============================================ */
.category-image {
  border: 1px solid #CCCCCC;
  padding: 10px; }
  .category-image img {
    width: 100%;
    max-width: 100%; }
    .category-image img:hidden {
      display: none; }

/* ============================================ *
 * Layered Navigation
 * ============================================ */
.block-layered-nav .block-subtitle--filter {
  display: none;
  margin: 0;
  margin-bottom: 10px;
  color: #003b5f;
  font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
  font-size: 14px;
  font-weight: normal;
  font-style: normal;
  line-height: 1.4;
  -moz-user-select: none;
  -ms-user-select: none;
  -webkit-user-select: none;
  -o-user-select: none;
  user-select: none;
  font-weight: normal;
  margin-bottom: 0px;
  padding: 7px 10px 7px 24px;
  border-width: 1px;
  border-style: solid;
  border-color: #CCCCCC;
  position: relative;
  background-color: #F4F4F4;
  cursor: pointer; }
  .block-layered-nav .block-subtitle--filter:after {
    content: '';
    position: absolute;
    width: 0;
    height: 0;
    display: block;
    border-right: 4px solid transparent;
    border-left: 4px solid transparent;
    border-top: 4px solid #1f86bd;
    border-bottom: none;
    left: 10px;
    top: 50%;
    margin-top: -3px; }
  .block-layered-nav .block-subtitle--filter:hover {
    background-color: shade(#F4F4F4, 3%); }

.block-layered-nav .block-content .toggle-tabs {
  display: none; }

.block-layered-nav .block-content > dl > dt {
  margin: 0;
  margin-bottom: 10px;
  color: #003b5f;
  font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
  font-size: 14px;
  font-weight: normal;
  font-style: normal;
  line-height: 1.4;
  -moz-user-select: none;
  -ms-user-select: none;
  -webkit-user-select: none;
  -o-user-select: none;
  user-select: none;
  font-weight: normal;
  margin-bottom: 0px;
  padding: 7px 10px 7px 24px;
  border-width: 1px;
  border-style: solid;
  border-color: #CCCCCC;
  position: relative;
  background-color: #F4F4F4;
  display: block; }
  .block-layered-nav .block-content > dl > dt:after {
    content: '';
    position: absolute;
    width: 0;
    height: 0;
    display: block;
    border-right: 4px solid transparent;
    border-left: 4px solid transparent;
    border-top: 4px solid #1f86bd;
    border-bottom: none;
    left: 10px;
    top: 50%;
    margin-top: -3px; }
  .block-layered-nav .block-content > dl > dt:hover {
    background-color: shade(#F4F4F4, 3%); }

.block-layered-nav .block-content > dl > dd {
  padding: 10px;
  margin: 0;
  border-width: 0 1px;
  border-style: solid;
  border-color: #CCCCCC; }

.block-layered-nav .block-content > dl > dd:last-child {
  border-width: 0 1px 1px 1px; }

.block-layered-nav dl dd {
  margin-bottom: 10px;
  margin-top: 10px; }
  .block-layered-nav dl dd ol > li > span, .block-layered-nav dl dd ol > li > a {
    padding: 5px 15px;
    display: block; }
  .block-layered-nav dl dd ol > li > a .count {
    color: #5b5b5a; }

@media only screen and (min-width: 771px) {
  .block-layered-nav .block-content > dl > dt {
    padding-left: 10px; }
    .block-layered-nav .block-content > dl > dt:after {
      display: none; } }

@media only screen and (max-width: 770px) {
  .sidebar .block.block-layered-nav {
    border-bottom: none; }
  .block-layered-nav--no-filters .block-title {
    display: none; }
  .block-layered-nav .block-content {
    padding-top: 0;
    margin-top: 15px; }
    .block-layered-nav .block-content > dl > dt {
      cursor: pointer;
      border-bottom-width: 0; }
      .block-layered-nav .block-content > dl > dt:hover {
        color: #1f86bd; }
      .block-layered-nav .block-content > dl > dt:after {
        content: '';
        position: absolute;
        width: 0;
        height: 0;
        display: block;
        border-top: 4px solid transparent;
        border-bottom: 4px solid transparent;
        border-left: 4px solid #1f86bd;
        border-right: none; }
      .block-layered-nav .block-content > dl > dt.last {
        border-bottom-width: 1px; }
    .block-layered-nav .block-content > dl > dd {
      display: none; }
    .block-layered-nav .block-content.accordion-open > dl > dt.current {
      border-bottom-width: 1px; }
    .block-layered-nav .block-content.accordion-open > dl > dt.current:after {
      content: '';
      position: absolute;
      width: 0;
      height: 0;
      display: block;
      border-right: 4px solid transparent;
      border-left: 4px solid transparent;
      border-top: 4px solid #1f86bd;
      border-bottom: none;
      left: 6px;
      top: 50%;
      margin-top: -3px; }
    .block-layered-nav .block-content.accordion-open > dl > dd.current {
      display: block; }
  .block-layered-nav .block-subtitle--filter {
    background-color: #1f86bd;
    border: 0;
    margin-bottom: 0;
    display: block;
    color: #FFFFFF; }
    .block-layered-nav .block-subtitle--filter:after {
      content: '';
      position: absolute;
      width: 0;
      height: 0;
      display: block;
      border-top: 4px solid transparent;
      border-bottom: 4px solid transparent;
      border-left: 4px solid #FFFFFF;
      border-right: none;
      right: 10px;
      top: 50%;
      margin-top: -5px; }
    .block-layered-nav .block-subtitle--filter:hover {
      background-color: #1b76a7;
      color: #FFFFFF; }
    .block-layered-nav .block-subtitle--filter.active:after {
      content: '';
      position: absolute;
      width: 0;
      height: 0;
      display: block;
      border-right: 4px solid transparent;
      border-left: 4px solid transparent;
      border-top: 4px solid #FFFFFF;
      border-bottom: none;
      right: 10px;
      top: 50%;
      margin-top: -3px; }
  #narrow-by-list,
  #narrow-by-list2 {
    padding: 10px;
    border: 1px solid #CCCCCC;
    border-top: 0; }
  .block-layered-nav dl ol > li > a,
  .block-layered-nav dl ol > li > span {
    padding: 7px;
    margin: 5px; }
  .block-layered-nav dl ol > li > a {
    color: #003b5f;
    background-color: #F4F4F4;
    padding: 5px 10px; }
    .block-layered-nav dl ol > li > a:hover {
      text-decoration: none;
      background: shade(#F4F4F4, 3%); } }

.block-layered-nav .currently .block-subtitle {
  display: block;
  margin: 0;
  margin-bottom: 10px;
  color: #003b5f;
  font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
  font-size: 14px;
  font-weight: normal;
  font-style: normal;
  line-height: 1.4; }

.block-layered-nav .currently ol {
  padding-left: 10px;
  margin-bottom: 10px; }

.block-layered-nav .currently ol li {
  margin-bottom: 5px; }
  .block-layered-nav .currently ol li .label {
    font-weight: bold; }
  .block-layered-nav .currently ol li:after {
    content: '';
    display: table;
    clear: both; }

.block-layered-nav .actions {
  text-align: right;
  margin-bottom: 7px; }

.col1-layout-searchresults .col-main {
  float: none;
  max-width: 680px;
  margin: auto; }

.col1-layout-productoverview .main-container {
  padding-top: 0; }

.col1-layout-productoverview #header-nav {
  border-bottom: 1px dotted #003b5f;
  padding-bottom: 35px; }

.col1-layout-productoverview .footer {
  border-top: none; }

.col1-layout-productoverview .col-main {
  float: none;
  max-width: 680px;
  margin: auto; }

.col1-layout-productoverview .product-row {
  border-bottom: 1px dotted #003b5f;
  padding: 35px; }
  .col1-layout-productoverview .product-row h2 {
    text-transform: uppercase;
    margin-bottom: 20px; }
  .col1-layout-productoverview .product-row .product-col {
    text-align: center; }
  .col1-layout-productoverview .product-row .product-col-image {
    text-align: center; }
    .col1-layout-productoverview .product-row .product-col-image img {
      max-width: 260px;
      width: 80%;
      max-width: 260px;
      margin-bottom: 35px;
      display: inline-block; }
  @media only screen and (min-width: 600px) {
    .col1-layout-productoverview .product-row:after {
      content: '';
      display: table;
      clear: both; }
    .col1-layout-productoverview .product-row .product-col, .col1-layout-productoverview .product-row .product-col-image {
      float: right;
      width: 50%;
      padding: 0 10px;
      box-sizing: border-box; }
    .col1-layout-productoverview .product-row .product-col {
      padding-top: 90px;
      padding-bottom: 90px;
      text-align: left; }
    .col1-layout-productoverview .product-row .product-col-image {
      float: left;
      text-align: right; }
      .col1-layout-productoverview .product-row .product-col-image img {
        max-width: 260px;
        width: 100%;
        display: inline-block;
        margin-bottom: 0; }
    .col1-layout-productoverview .product-row:nth-child(even) .product-col-image {
      float: right;
      text-align: left; }
    .col1-layout-productoverview .product-row:nth-child(even) .product-col {
      float: left;
      text-align: right; } }

.col1-layout-productoverview .footer, .category-list .footer {
  border-top: none; }

.category-title {
  padding: 35px 0;
  border-top: 1px dotted #003b5f; }
  @media only screen and (max-width: 980px) {
    .category-title {
      padding-bottom: 5px; } }
  .category-title .col-main:after {
    content: '';
    display: table;
    clear: both; }
  @media only screen and (max-width: 980px) {
    .category-title .col-main {
      width: 100%; } }
  @media only screen and (max-width: 980px) {
    .category-title .col-right {
      display: none; } }
  .category-title .category-image-wrapper, .category-title .category-title-wrapper, .category-title .lightbox-content-link.desktop {
    position: relative; }
    @media only screen and (min-width: 600px) {
      .category-title .category-image-wrapper, .category-title .category-title-wrapper, .category-title .lightbox-content-link.desktop {
        height: 260px; } }
    @media only screen and (min-width: 1024px) {
      .category-title .category-image-wrapper, .category-title .category-title-wrapper, .category-title .lightbox-content-link.desktop {
        height: 340px; } }
  .category-title .category-image-wrapper h1 .subline, .category-title .category-title-wrapper h1 .subline {
    color: #1f86bd;
    text-transform: none;
    font-size: 24px;
    line-height: 28px;
    display: block; }
  @media only screen and (max-width: 599px) {
    .category-title .category-image-wrapper img, .category-title .category-title-wrapper img {
      width: 60%;
      margin: auto;
      margin-bottom: 10px; } }
  @media only screen and (min-width: 600px) {
    .category-title .category-image-wrapper, .category-title .category-title-wrapper {
      width: 50%;
      float: left; }
      .category-title .category-image-wrapper img, .category-title .category-image-wrapper .category-title-inner, .category-title .category-title-wrapper img, .category-title .category-title-wrapper .category-title-inner {
        position: absolute;
        top: 50%;
        transform: translateY(-50%); } }
  @media only screen and (min-width: 600px) {
    .category-title .category-image-wrapper img {
      left: 50%;
      transform: translate(-60%, -50%);
      margin-left: 25px;
      max-width: 300px; } }
  @media only screen and (min-width: 980px) {
    .category-title .lightbox-content-link.mobile {
      display: none; } }
  .category-title .lightbox-content-link.desktop {
    display: none; }
    .category-title .lightbox-content-link.desktop .lightbox-content-link-inner {
      position: absolute;
      top: 50%;
      transform: translateY(-50%); }
  @media only screen and (min-width: 980px) {
    .category-title .lightbox-content-link.desktop {
      display: block; } }
  .category-title .lightbox-content-link a {
    margin: 5px 0; }
  .category-title h1 {
    font-size: 32px;
    text-transform: uppercase;
    padding: 0;
    margin: 0; }
    @media only screen and (max-width: 599px) {
      .category-title h1 {
        margin-bottom: 15px; } }

.product-collections {
  border-top: 1px dotted #003b5f; }
  .product-collections .sidebar {
    padding-top: 35px;
    padding-bottom: 35px; }
    .product-collections .sidebar h3, .product-collections .sidebar h4 {
      margin-top: 35px;
      font-size: 20px; }
    .product-collections .sidebar h3.support {
      border-bottom: 1px dotted #003b5f;
      padding-bottom: 10px; }
    .product-collections .sidebar p a {
      color: #003b5f;
      text-decoration: underline; }
      .product-collections .sidebar p a:hover {
        color: #1f86bd; }
    .product-collections .sidebar .phone {
      font-size: 24px;
      font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
      margin-bottom: 10px; }

.product-category {
  padding: 35px 0; }
  .product-category ul {
    margin-left: -15px;
    margin-right: -15px; }
    .product-category ul:after {
      content: '';
      display: table;
      clear: both; }
    .product-category ul li.product {
      float: left;
      width: 50%;
      padding: 15px;
      box-sizing: border-box;
      display: block; }
      .product-category ul li.product img.product-image {
        max-width: none;
        width: 100%; }
      .product-category ul li.product .product-title {
        padding: 15px 0;
        border-bottom: 1px dotted #003b5f; }
        .product-category ul li.product .product-title a {
          color: #003b5f;
          cursor: pointer; }
          .product-category ul li.product .product-title a:hover {
            color: #1f86bd;
            text-decoration: none; }

@media only screen and (max-width: 599px) {
  .catalog-category-view .col-right .search_mini_form {
    display: none; } }

.product-view .category-name {
  text-transform: uppercase; }

.product-view #ajax-sku, .product-view #hidden-ajax-sku {
  display: none; }

.product-view #ajax-sku {
  margin-top: 5px; }

.product-view #image-main {
  width: 120%;
  max-width: 120%;
  margin-left: -10%; }

@media only screen and (min-width: 600px) {
  .product-view .product-col-img-box, .product-view .product-information {
    width: 50%;
    box-sizing: border-box;
    padding: 0 15px;
    float: left; } }

@media only screen and (min-width: 771px) {
  .product-view .product-information {
    float: none;
    width: auto;
    padding: 0; }
  .product-view .product-col-img-box, .product-view .product-col-description, .product-view .product-col-price {
    width: 33.33%;
    box-sizing: border-box;
    padding: 0 15px;
    float: left; } }

@media only screen and (min-width: 600px) {
  .product-view .product-col-description, .product-view .product-col-price {
    padding-top: 60px; } }

@media only screen and (max-width: 599px) {
  .product-view .short-description {
    padding-top: 20px; } }

.product-view .product-col-description .product-options label {
  padding-left: 1px; }

.product-view .sample-request {
  margin-top: 10px;
  margin-bottom: 35px; }
  @media only screen and (min-width: 771px) {
    .product-view .sample-request {
      margin-bottom: 40px; } }

.product-view .graduated-link {
  margin-top: 10px; }

.product-view .product-essential .product-name {
  color: #008bd2; }

.product-view .product-essential .product-col-img-box {
  padding-left: 0; }
  .product-view .product-essential .product-col-img-box .product-share {
    margin-top: 35px; }
    @media only screen and (max-width: 599px) {
      .product-view .product-essential .product-col-img-box .product-share img {
        width: 32px;
        height: 32px; } }
    @media only screen and (min-width: 600px) {
      .product-view .product-essential .product-col-img-box .product-share {
        margin-bottom: 35px; } }
    .product-view .product-essential .product-col-img-box .product-share a {
      display: inline-block; }

.product-view .product-essential .product-view-top {
  border-top: 1px dotted #003b5f;
  padding-top: 35px; }
  .product-view .product-essential .product-view-top:after {
    content: '';
    display: table;
    clear: both; }
  @media only screen and (min-width: 600px) {
    .product-view .product-essential .product-view-top {
      padding-bottom: 35px; } }

.product-view .product-essential .product-col-price {
  padding-right: 0; }
  @media only screen and (max-width: 599px) {
    .product-view .product-essential .product-col-price {
      padding-bottom: 20px; } }

.product-view .product-essential .product-options-bottom .price-box {
  display: none; }

.product-view .product-essential .product-options-bottom .add-to-cart .qty-wrapper {
  display: none; }

.product-view .product-essential p.required {
  display: none; }

.product-view .product-essential .product-options {
  padding-top: 20px;
  margin-top: 20px;
  border-top: 1px dotted #003b5f; }
  .product-view .product-essential .product-options dd {
    margin-bottom: 10px; }

.product-view .product-essential .price-box .price, .product-view .product-essential .price, .product-view .product-essential .configurable-price-from-label {
  font-size: 40px;
  font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
  color: #003b5f; }

.product-view .product-essential .price-box {
  margin: 0;
  line-height: 1; }

.product-view .product-essential .availability.in-stock {
  display: none; }

.product-view .product-essential .price-info {
  margin-bottom: 20px;
  margin-top: 20px; }
  @media only screen and (min-width: 600px) {
    .product-view .product-essential .price-info {
      margin-bottom: 70px;
      margin-top: 0; } }

.product-view .product-view-details {
  margin: 35px 0;
  margin-top: 0;
  padding: 20px 0;
  border-top: 1px dotted #003b5f; }
  .product-view .product-view-details:after {
    content: '';
    display: table;
    clear: both; }

@media only screen and (min-width: 771px) {
  .product-view .product-category-nav, .product-view .product-details {
    float: left; } }

.product-view .product-view-details h2, .product-view .product-view-details h3, .product-view .product-view-details .h3, .product-view .product-view-details h4 {
  font-size: 20px;
  padding: 10px 0;
  margin-bottom: 0; }

.product-view .product-view-details img.image-icon {
  margin-top: -3px;
  margin-right: 7px; }

@media only screen and (min-width: 771px) {
  .product-view .product-view-details .product-details {
    width: 75%; } }

@media only screen and (min-width: 600px) {
  .product-view .product-view-details .product-details .additional-row {
    margin-right: -15px; } }

.product-view .product-view-details .product-details .additional-row:after {
  content: '';
  display: table;
  clear: both; }

.product-view .product-view-details .product-details .additional-row ul {
  padding-bottom: 15px; }

.product-view .product-view-details .product-details .additional-row .slideout h2, .product-view .product-view-details .product-details .additional-row .slideout h3 {
  cursor: pointer;
  position: relative; }
  .product-view .product-view-details .product-details .additional-row .slideout h2:before, .product-view .product-view-details .product-details .additional-row .slideout h3:before {
    display: block;
    content: '';
    position: absolute;
    right: 0;
    top: 16px;
    width: 14px;
    height: 10px;
    background-image: url(images/icon-arrow-accordion-down.svg);
    background-size: 14px 10px;
    background-repeat: no-repeat; }
  .product-view .product-view-details .product-details .additional-row .slideout h2.open:before, .product-view .product-view-details .product-details .additional-row .slideout h3.open:before {
    background-image: url(images/icon-arrow-accordion-up.svg); }

.product-view .product-view-details .product-details .additional-row .slideout ul {
  display: none; }
  .product-view .product-view-details .product-details .additional-row .slideout ul.open {
    display: block; }
  .product-view .product-view-details .product-details .additional-row .slideout ul li {
    text-indent: -8px;
    padding-left: 8px;
    margin: 4px 0; }
    .product-view .product-view-details .product-details .additional-row .slideout ul li:before {
      content: "- "; }
    .product-view .product-view-details .product-details .additional-row .slideout ul li.no-dash:before {
      content: "";
      display: inline-block;
      width: 9px; }

.product-view .product-view-details .product-details .additional-row .shop-list a  {
  cursor: pointer; }

.product-view .product-view-details .product-details .additional-row .download-list {
  margin-bottom: 35px; }

.product-view .product-view-details .product-details .additional-row.download-shop .additional-wrapper > div {
  border: none;
  padding: 35px 0;
  padding-bottom: 20px; }

.product-view .product-view-details .product-details .additional-row .support-block {
  padding-top: 35px; }
  .product-view .product-view-details .product-details .additional-row .support-block h3 {
    margin-bottom: 10px; }

@media only screen and (min-width: 600px) {
  .product-view .product-view-details .product-details .additional-row .input-box {
    max-width: 260px; } }

.product-view .product-view-details .product-details .additional-row .input-text {
  border: 3px solid #003b5f;
  color: #003b5f;
  background: none; }

.product-view .product-view-details .product-details .additional-row .search_mini_form .search-button:before {
  width: 27px;
  height: 29px;
  background: url(images/icon-search-darkblue.svg);
  background-size: 24px;
  background-repeat: no-repeat; }

.product-view .product-view-details .product-details .additional-row ::-webkit-input-placeholder {
  color: #003b5f; }

.product-view .product-view-details .product-details .additional-row input:-moz-placeholder {
  color: #003b5f; }

.product-view .product-view-details .product-details .additional-wrapper > div {
  border-bottom: 1px dotted #003b5f; }

@media only screen and (min-width: 600px) {
  .product-view .product-view-details .product-details .additional-wrapper {
    width: 50%;
    box-sizing: border-box;
    padding: 0 15px;
    float: left; } }

.product-view .product-view-details .product-category-nav {
  display: none; }

@media only screen and (min-width: 771px) {
  .product-view .product-view-details .product-category-nav {
    display: block;
    box-sizing: border-box;
    width: 25%;
    padding-right: 15px; }
    .product-view .product-view-details .product-category-nav ul {
      margin-bottom: 10px; } }

.product-view .product-view-details .box-up-sell {
  border-top: 1px dotted #003b5f; }

.product-view .product-view-details .box-up-sell, .product-view .product-view-details .box-cross-sell {
  padding: 20px 0; }
  @media only screen and (min-width: 600px) {
    .product-view .product-view-details .box-up-sell, .product-view .product-view-details .box-cross-sell {
      padding: 35px 15px;
      border-bottom: 1px dotted #003b5f; } }
  .product-view .product-view-details .box-up-sell h3, .product-view .product-view-details .box-up-sell h4, .product-view .product-view-details .box-cross-sell h3, .product-view .product-view-details .box-cross-sell h4 {
    padding-top: 0; }
  .product-view .product-view-details .box-up-sell a:not(.product-image), .product-view .product-view-details .box-cross-sell a:not(.product-image) {
    color: #003b5f;
    border-bottom: 1px solid #003b5f;
    line-height: 1.1; }
    .product-view .product-view-details .box-up-sell a:not(.product-image):hover, .product-view .product-view-details .box-up-sell a:not(.product-image).active, .product-view .product-view-details .box-cross-sell a:not(.product-image):hover, .product-view .product-view-details .box-cross-sell a:not(.product-image).active {
      text-decoration: none;
      color: #1f86bd;
      border-color: #1f86bd; }

.product-view .product-view-details .box-up-sell {
  border-bottom: 1px dotted #003b5f; }
  @media only screen and (max-width: 599px) {
    .product-view .product-view-details .box-up-sell .slick-slide img {
      width: 80%;
      margin: auto; } }

@media only screen and (max-width: 599px) {
  .product-view .product-view-details .box-up-sell-slider {
    margin-left: -15px;
    margin-right: -15px; } }

@media only screen and (min-width: 600px) {
  .product-view .product-view-details .box-up-sell-slider, .product-view .product-view-details .box-cross-sell-slider {
    padding: 0 70px; } }

.product-view .product-view-details .box-up-sell-slider .slick-slide, .product-view .product-view-details .box-cross-sell-slider .slick-slide {
  margin: 0 15px; }

.product-view .product-view-details .box-up-sell-slider .slick-next, .product-view .product-view-details .box-up-sell-slider .slick-prev, .product-view .product-view-details .box-cross-sell-slider .slick-next, .product-view .product-view-details .box-cross-sell-slider .slick-prev {
  background: #c9c9c9; }

.product-view .product-view-details .box-up-sell-slider .slick-next, .product-view .product-view-details .box-cross-sell-slider .slick-next {
  left: auto;
  right: 0; }

.product-view .product-view-details .box-up-sell-slider .slick-prev, .product-view .product-view-details .box-cross-sell-slider .slick-prev {
  right: auto;
  left: 0; }

.product-view .product-view-details .box-up-sell-slider .product-name, .product-view .product-view-details .box-cross-sell-slider .product-name {
  margin-top: 5px; }

.product-view .product-view-details .box-cross-sell-slider:after {
  content: '';
  display: table;
  clear: both; }

@media only screen and (min-width: 600px) {
  .product-view .product-view-details .box-cross-sell-slider .no-slick-slide {
    width: 50%;
    float: left;
    box-sizing: border-box;
    padding: 0 15px; } }

.product-view .product-view-details .box-cross-sell-slider .no-slick-slide.slick-slide {
  padding: 0; }

/* ============================================ *
 * Catalog - MSRP MAP Popup
 * ============================================ */
.cart-msrp-totals {
  color: red;
  font-size: 12px !important;
  font-weight: bold;
  margin: 10px 10px 0;
  padding: 10px;
  text-align: right;
  text-transform: uppercase; }

.map-cart-sidebar-total {
  color: red;
  display: block;
  font-size: 10px;
  font-weight: bold;
  text-align: left;
  padding: 2px 5px; }

.map-popup {
  background: #FFFFFF;
  border: 5px solid #CCCCCC;
  margin: 12px 0 0;
  position: absolute;
  text-align: left;
  width: 450px;
  z-index: 100; }
  @media only screen and (min-width: 771px) {
    .map-popup.map-popup-right {
      left: 10px !important; }
    .map-popup.map-popup-left {
      left: auto !important;
      right: 10px !important; } }
  @media only screen and (max-width: 770px) {
    .map-popup {
      width: 100%;
      left: 0px !important; } }
  .map-popup .map-popup-heading {
    padding: 8px 10px;
    margin-right: 40px;
    width: auto; }
    .map-popup .map-popup-heading h3 {
      font-size: 14px;
      margin: 0;
      overflow: hidden;
      white-space: nowrap;
      word-wrap: break-word;
      text-align: left;
      text-overflow: ellipsis; }
      @media only screen and (max-width: 479px) {
        .map-popup .map-popup-heading h3 {
          text-align: center; } }
  .map-popup .map-popup-close {
    display: block;
    position: absolute;
    top: 0px;
    right: 0px;
    height: 36px;
    width: 36px;
    font-size: 20px;
    line-height: 32px;
    text-align: center; }
  .map-popup .map-popup-content {
    border-top: 1px solid #EDEDED;
    padding: 10px;
    margin: 0 10px;
    overflow: hidden;
    text-align: left; }
    @media only screen and (max-width: 479px) {
      .map-popup .map-popup-content {
        text-align: center; } }
  .map-popup .map-popup-checkout {
    padding: 10px 0; }
    .map-popup .map-popup-checkout form:after {
      content: '';
      display: table;
      clear: both; }
    .map-popup .map-popup-checkout span {
      display: block; }
    .map-popup .map-popup-checkout .button {
      float: left;
      margin: 0 2px;
      clear: left; }
    .map-popup .map-popup-checkout .additional-addtocart-box {
      float: left;
      min-width: 210px; }
      .map-popup .map-popup-checkout .additional-addtocart-box li {
        list-style-type: none; }
    .map-popup .map-popup-checkout .paypal-logo {
      width: auto; }
      .map-popup .map-popup-checkout .paypal-logo a {
        display: inline-block;
        float: left;
        clear: left; }
      .map-popup .map-popup-checkout .paypal-logo .paypal-or {
        float: left;
        text-align: center;
        padding: 5px 15px;
        clear: left; }
      .map-popup .map-popup-checkout .paypal-logo:after {
        content: '';
        display: table;
        clear: both; }
      .map-popup .map-popup-checkout .paypal-logo .bml_button a {
        clear: left; }
    @media only screen and (max-width: 479px) {
      .map-popup .map-popup-checkout {
        text-align: center; }
        .map-popup .map-popup-checkout .button,
        .map-popup .map-popup-checkout .additional-addtocart-box,
        .map-popup .map-popup-checkout .paypal-logo a,
        .map-popup .map-popup-checkout .paypal-logo .paypal-or {
          float: none; }
        .map-popup .map-popup-checkout .additional-addtocart-box {
          min-width: 0px; }
        .map-popup .map-popup-checkout .paypal-logo .paypal-or {
          margin: 0px;
          margin-bottom: 10px; } }
    .map-popup .map-popup-checkout:after {
      content: '';
      display: table;
      clear: both; }
  .map-popup .map-popup-price {
    padding: 10px 0; }
    @media only screen and (max-width: 479px) {
      .map-popup .map-popup-price {
        text-align: center;
        padding-top: 0px; } }
    .map-popup .map-popup-price .price-box,
    .map-popup .map-popup-price .price-box .special-price {
      display: inline-block;
      margin: 0;
      padding: 0; }
    .map-popup .map-popup-price .price-box .minimal-price-link {
      display: inline-block; }
  .map-popup .map-popup-text {
    padding: 10px 0;
    margin: 0 10px;
    word-wrap: break-word; }
  .map-popup .map-popup-text,
  .map-popup .map-popup-only-text {
    border-top: 1px solid #EDEDED; }

/* ============================================ *
 * Catalog - MSRP Product Listing
 * ============================================ */
.price-box .map-link {
  display: block;
  text-align: center; }

/* ============================================ *
 * Catalog - Compare
 * ============================================ */
.block-compare .product-name:after {
  content: '';
  display: table;
  clear: both; }

.compare-table .product-image {
  display: inline-block; }

.compare-table .product-shop-row.top td {
  padding-bottom: 0;
  border-bottom: 0; }

.compare-table .product-shop-row.bottom td {
  padding-top: 0; }

/* ============================================ *
 * Checkout - Layout
 * ============================================ */
.cart .button {
  white-space: normal; }

.cart .product-sample {
  color: #1f86bd;
  font-size: 17px; }

.cart .cart-sample-qty {
  font-family: Arial, sans-serif; }

.cart .sample-actions {
  padding: 0 !important; }

.cart-table .product-cart-actions {
  position: relative; }

.cart-table .product-cart-actions button {
  position: absolute;
  background: none;
  padding: 3px 12px !important;
  margin-left: 5px;
  color: #1f86bd;
  font-family: Arial, sans-serif; }

.cart-forms,
.crosssell {
  float: left;
  clear: left; }
  @media only screen and (min-width: 600px) {
    .cart-forms,
    .crosssell {
      max-width: 300px; } }

.cart-totals-wrapper {
  float: right; }

.cart-forms .discount {
  display: none; }

.cart-table,
.cart-totals,
.cart-forms .discount,
.cart-forms .giftcard,
.cart-forms .shipping {
  margin-bottom: 20px; }

.checkout-cart-index #postcode {
  width: 100%; }

.display-both-prices .cart-table {
  float: none;
  width: 100%; }

.display-both-prices .cart-forms {
  float: left;
  padding-right: 10px;
  padding-left: 0; }

.display-both-prices .cart-totals-wrapper,
.display-both-prices .crosssell {
  padding-left: 10px; }

.display-both-prices .cart-forms,
.display-both-prices .cart-totals-wrapper,
.display-both-prices .crosssell {
  width: 50%;
  box-sizing: border-box; }

.display-both-prices .crosssell {
  clear: right;
  float: right; }

@media only screen and (max-width: 979px) {
  .display-single-price .cart-table {
    float: none;
    width: 100%; }
  .display-single-price .cart-forms {
    float: left;
    padding-right: 10px;
    padding-left: 0; }
  .display-single-price .cart-totals-wrapper,
  .display-single-price .crosssell {
    padding-left: 10px; }
  .display-single-price .cart-forms,
  .display-single-price .cart-totals-wrapper,
  .display-single-price .crosssell {
    width: 50%;
    box-sizing: border-box; }
  .display-single-price .crosssell {
    clear: right;
    float: right; } }

@media only screen and (max-width: 599px) {
  .product-cart-sku {
    display: none; }
  .display-both-prices .cart-forms,
  .display-both-prices .cart-totals-wrapper,
  .display-both-prices .crosssell,
  .display-single-price .cart-forms,
  .display-single-price .cart-totals-wrapper,
  .display-single-price .crosssell {
    padding-top: 0;
    padding-left: 0;
    padding-right: 0;
    float: none;
    width: 100%; } }

.display-single-price:after {
  content: '';
  display: table;
  clear: both; }

/* ============================================ *
 * Checkout - Cart
 * ============================================ */
.cart .page-title {
  margin-bottom: 35px; }
  .cart .page-title:after {
    content: '';
    display: table;
    clear: both; }
  .cart .page-title h1 {
    float: left;
    border-bottom: none;
    margin-bottom: 6px;
    margin-right: 10px; }

.checkout-types {
  float: right;
  text-align: right;
  max-width: 100%;
  /* We always want this shipping method to display on its own line */ }
  .checkout-types li {
    vertical-align: top;
    margin: 0 0 5px 5px; }
    .checkout-types li:after {
      content: '';
      display: table;
      clear: both; }
    .checkout-types li img {
      display: inline;
      vertical-align: top; }
  .checkout-types li:first-child {
    margin-left: 0; }
  .checkout-types .method-checkout-cart-methods-multishipping {
    display: block; }
  .checkout-types.top li {
    display: inline-block; }
  .checkout-types.top .bml_button {
    display: inline-block;
    vertical-align: top; }
    .checkout-types.top .bml_button img {
      display: block; }
  .checkout-types.top .paypal-logo .paypal-or {
    margin-top: 5px; }
  .checkout-types.bottom .paypal-logo a, .checkout-types.minicart .paypal-logo a {
    display: block; }
  .checkout-types.bottom .paypal-or, .checkout-types.minicart .paypal-or {
    margin: 0px;
    display: block;
    text-align: center; }

@media only screen and (min-width: 741px) {
  .checkout-types.bottom .paypal-or {
    text-align: right;
    padding-right: 70px; } }

.cart-totals .checkout-types .btn-checkout {
  margin-bottom: 7px; }

@media only screen and (max-width: 740px) {
  .checkout-types {
    float: none;
    text-align: center; }
    .checkout-types.bottom .paypal-or, .checkout-types.minicart .paypal-or {
      width: auto;
      float: none; }
  .checkout-types li {
    float: none;
    width: 100%;
    margin-left: 0; } }

@media only screen and (max-width: 599px) {
  .btn-checkout {
    width: 100%; } }

.cart-table {
  font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif; }
  .cart-table .product-cart-remove {
    width: 35px; }
  .cart-table .cart-total-head {
    max-width: 70px; }
  .cart-table th,
  .cart-table td,
  .cart-table tbody td {
    border-bottom: none;
    vertical-align: middle; }
  .cart-table h2 {
    color: #003b5f;
    font-size: 14px;
    margin-bottom: 0; }
  .cart-table thead th {
    font-size: 20px;
    text-transform: none; }
  .cart-table thead th,
  .cart-table tbody td {
    background-color: transparent;
    padding: 10px 0;
    font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif; }
  .cart-table .product-cart-info,
  .cart-table .product-cart-actions {
    padding-left: 15px;
    padding-top: 5px; }
    .cart-table .product-cart-info.sample-product,
    .cart-table .product-cart-actions.sample-product {
      padding: 0; }
      .cart-table .product-cart-info.sample-product .qty,
      .cart-table .product-cart-actions.sample-product .qty {
        display: none; }
  @media only screen and (max-width: 599px) {
    .cart-table .product-cart-info,
    .cart-table .product-cart-actions,
    .cart-table .product-cart-price {
      box-sizing: border-box; } }
  .cart-table tbody tr.dotted-border td {
    padding: 0; }
  .cart-table tfoot tr {
    background: none; }
  .cart-table tfoot tr > td:after {
    content: '';
    display: table;
    clear: both; }
  .cart-table span.or {
    font-size: 9px;
    padding: 0 5px;
    text-transform: uppercase;
    font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif; }
  .cart-table .product-cart-image .cart-links,
  .cart-table .product-cart-info .btn-remove,
  .cart-table .product-cart-actions .button {
    display: none; }
  .cart-table .product-cart-image {
    padding-left: 0;
    padding-right: 0; }
    .cart-table .product-cart-image .product-image img {
      max-width: 100%;
      width: 100%; }
    .cart-table .product-cart-image a.cart-edit {
      display: none; }
  .cart-table .product-cart-sku {
    font-family: Arial, sans-serif; }
  .cart-table .btn-empty {
    float: left; }
  .cart-table .product-cart-total,
  .cart-table .product-cart-price {
    text-align: right; }
  .cart-table .cart-tax-total {
    position: relative;
    cursor: pointer; }
    .cart-table .cart-tax-total:after {
      content: '';
      position: absolute;
      width: 0;
      height: 0;
      display: block;
      border-top: 6px solid transparent;
      border-bottom: 6px solid transparent;
      border-right: 6px solid #003b5f;
      border-left: none;
      position: absolute;
      top: 3px;
      right: -11px; }
    .cart-table .cart-tax-total.cart-tax-total-expanded:after {
      content: '';
      position: absolute;
      width: 0;
      height: 0;
      display: block;
      border-right: 6px solid transparent;
      border-left: 6px solid transparent;
      border-top: 6px solid #003b5f;
      border-bottom: none;
      right: -15px;
      top: 6px; }
  .cart-table .cart-links > li {
    white-space: nowrap;
    line-height: 1.3;
    margin-bottom: 5px;
    min-width: 65px;
    font-size: 13px; }
    .cart-table .cart-links > li > a {
      display: block; }
    .cart-table .cart-links > li:last-child {
      margin-bottom: 0; }
  .cart-table .product-cart-actions {
    min-width: 60px;
    text-align: center; }
    .cart-table .product-cart-actions .qty {
      height: 30px;
      border-color: #C0C0C0;
      border-radius: 0;
      text-align: center;
      width: 3.2em; }
    .cart-table .product-cart-actions .button {
      margin-bottom: 5px; }
  .cart-table .item-options {
    padding-left: 15px; }

@media only screen and (max-width: 770px) {
  .cart-table th {
    font-size: 12px; }
  .cart-table th,
  .cart-table td {
    padding: 7px 6px; }
  .cart-table .product-cart-actions > li {
    white-space: inherit; } }

@media only screen and (max-width: 699px) {
  .display-both-prices .cart-table thead th.cart-total-head,
  .display-both-prices .cart-table td.product-cart-total {
    display: none; } }

@media only screen and (max-width: 599px) {
  .cart-table colgroup, .cart-table thead {
    display: none; }
  .cart-table tr {
    display: block;
    margin-bottom: 10px;
    padding-bottom: 10px;
    position: relative;
    width: 100%; }
    .cart-table tr.first {
      border-top: 1px dotted #003b5f;
      padding-top: 20px; }
    .cart-table tr:after {
      content: '';
      display: table;
      clear: both; }
    .cart-table tr:last-child {
      margin-bottom: 0; }
  .cart-table tfoot tr {
    padding-bottom: 0; }
  .cart-table td {
    border: none;
    display: block; }
    .cart-table td[data-rwd-label] {
      padding-left: 15px;
      margin-bottom: 6px; }
      .cart-table td[data-rwd-label] .price {
        font-weight: normal; }
      .cart-table td[data-rwd-label]:before {
        content: attr(data-rwd-label) ":";
        font-size: 14px;
        padding-right: 5px;
        font-family: Arial, sans-serif; }
    .cart-table td.product-cart-price {
      text-align: left; }
  .cart-table .cart-links {
    padding-top: 5px;
    padding-right: 5px; }
    .cart-table .cart-links > li {
      white-space: normal;
      text-align: center; }
      .cart-table .cart-links > li > a {
        padding: 2px 0px; }
  .cart-table .cart-tax-info {
    font-style: italic;
    padding-left: 15px;
    font-size: 13px; }
    .cart-table .cart-tax-info .price {
      font-size: 13px; }
  .cart-table .product-cart-image {
    width: 25%;
    float: left;
    padding-bottom: 0; }
    .cart-table .product-cart-image a.cart-edit {
      display: block;
      font-size: 20px;
      text-align: center;
      text-transform: uppercase; }
  .cart-table .product-cart-info,
  .cart-table td[data-rwd-label] {
    float: right;
    width: 75%; }
  .cart-table .product-cart-actions,
  .cart-table .product-cart-price {
    padding-bottom: 0;
    padding-top: 0;
    float: right; }
  .cart-table .product-cart-remove,
  .cart-table .product-cart-total,
  .cart-table .product-cart-actions .cart-links {
    display: none; }
  .cart-table .product-cart-info .btn-remove {
    display: block; }
  .cart-table .product-cart-actions .button {
    display: none; }
  .cart-table .product-cart-info .btn-remove {
    margin: -4px 0px 2px 7px;
    position: absolute;
    top: 10px;
    right: 0; }
  .cart-table .product-cart-actions {
    text-align: left; }
    .cart-table .product-cart-actions .qty {
      margin-right: 7px;
      margin-bottom: 7px; }
  .cart-table .price,
  .cart-table .product-cart-price:before {
    font-weight: 500;
    font-size: 14px;
    font-family: Arial, sans-serif; }
  .cart-table .cart-footer-actions {
    text-align: center;
    width: 100%; }
    .cart-table .cart-footer-actions #empty_cart_button {
      float: right; }
    .cart-table .cart-footer-actions .btn-continue {
      float: left; }
    .cart-table .cart-footer-actions .btn-update,
    .cart-table .cart-footer-actions span.or {
      display: none; }
  .display-both-prices .cart-table td[data-rwd-tax-label]:before {
    content: attr(data-rwd-tax-label) ":"; } }

/* ============================================ *
 * Checkout - Estimate Shipping and Tax
 * ============================================ */
.shipping h2 {
  font-size: 20px; }

.shipping p {
  margin-bottom: 20px; }

.shipping select.validation-failed {
  border-color: #DF280A; }

.shipping input[type=email],
.shipping input[type=number],
.shipping input[type=password],
.shipping input[type=tel],
.shipping input[type=text],
.shipping select {
  color: #807e82; }
  .shipping input[type=email]:-ms-input-placeholder,
  .shipping input[type=number]:-ms-input-placeholder,
  .shipping input[type=password]:-ms-input-placeholder,
  .shipping input[type=tel]:-ms-input-placeholder,
  .shipping input[type=text]:-ms-input-placeholder,
  .shipping select:-ms-input-placeholder {
    color: #807e82 !important; }
  .shipping input[type=email]::placeholder,
  .shipping input[type=number]::placeholder,
  .shipping input[type=password]::placeholder,
  .shipping input[type=tel]::placeholder,
  .shipping input[type=text]::placeholder,
  .shipping select::placeholder {
    color: #807e82 !important; }

.shipping .button {
  margin-top: 10px; }

.shipping .sp-methods {
  margin-top: 20px;
  padding: 10px 0 0;
  text-align: left; }
  .shipping .sp-methods dd {
    margin-bottom: 10px; }
  .shipping .sp-methods label span {
    font-weight: bold;
    font-style: normal; }

.shipping #co-shipping-method-form .buttons-set .button {
  float: left;
  margin-left: 0; }

.shipping #co-shipping-method-form .sp-methods dd label:hover {
  background-color: shade(#F4F4F4, 10%); }

@media only screen and (max-width: 770px) {
  .shipping .shipping-form .form-list > li {
    width: 100%;
    float: none; }
    .shipping .shipping-form .form-list > li label {
      display: block; }
    .shipping .shipping-form .form-list > li input,
    .shipping .shipping-form .form-list > li select {
      width: 100%; } }

.cart .cart-totals {
  text-align: right; }
  .cart .cart-totals:after {
    content: '';
    display: table;
    clear: both; }
  .cart .cart-totals table {
    font-size: 14px;
    margin-bottom: 20px;
    width: 100%; }
    .cart .cart-totals table td {
      padding: 2px 0px; }
    .cart .cart-totals table td:first-child {
      padding-right: 10px;
      min-width: 120px; }

.discount-form:after,
#giftcard-form:after {
  content: '';
  display: table;
  clear: both; }

#discount-coupon-form,
.cart .giftcard {
  width: 100%; }
  #discount-coupon-form h2,
  .cart .giftcard h2 {
    display: none; }
  #discount-coupon-form label,
  .cart .giftcard label {
    font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
    font-size: 12px;
    font-weight: 400;
    text-align: left;
    text-transform: uppercase;
    min-width: 105px;
    display: inline-block;
    margin-right: 10px; }
  #discount-coupon-form .field-wrapper,
  .cart .giftcard .field-wrapper {
    display: inline-block; }
  #discount-coupon-form .validation-advice,
  .cart .giftcard .validation-advice {
    display: inline; }
  #discount-coupon-form .button-wrapper,
  .cart .giftcard .button-wrapper {
    display: inline-block;
    vertical-align: bottom; }
    #discount-coupon-form .button-wrapper > button,
    .cart .giftcard .button-wrapper > button {
      float: left; }
  #discount-coupon-form .input-text,
  .cart .giftcard .input-text {
    border-radius: 0;
    height: 30px;
    margin: 4px 10px 0 0;
    width: 190px; }

.cart .giftcard p {
  margin-bottom: 7px; }

.cart .giftcard .check-gc-status {
  float: left;
  padding: 0px; }
  .cart .giftcard .check-gc-status > span > span {
    font-size: 14px;
    text-transform: none; }

.shipping-form .input-text#region {
  display: none !important; }

.shipping-form .shipping-region {
  margin-bottom: 0; }

.shipping-form #region_id {
  margin-bottom: 10px; }

/* ============================================ *
 * Checkout - Cart Cross sell
 * ============================================ */
.crosssell h2 {
  color: #1f86bd; }

.crosssell .item a.product-image {
  width: auto;
  float: left; }

/* Change the layout to 2 columns at a breakpoint that is higher than a 3 columns layout would normally break */
@media only screen and (max-width: 979px) {
  .crosssell {
    /* Undo three-column config */ }
    .crosssell .products-grid > li:nth-child(even),
    .crosssell .products-grid > li:nth-child(3n),
    .crosssell .products-grid > li {
      width: 47.72727%;
      margin-right: 4.54545%; }
    .crosssell .products-grid > li:nth-child(odd) {
      clear: left; }
    .crosssell .products-grid > li:nth-child(even) {
      margin-right: 0; }
    .crosssell .products-grid > li:nth-child(3n+1) {
      clear: none; } }

@media only screen and (max-width: 599px) {
  .cart-table .cart-tax-total:after {
    right: -9px; }
  .cart-table .cart-tax-total.cart-tax-total-expanded:after {
    right: -13px; } }

@media only screen and (max-width: 320px) {
  .crosssell ul .item {
    padding: 0 0px 40px; }
  .crosssell ul .product-details .crosssell-actions {
    padding: 0 5px; } }

.checkout-cart-index .cart-empty a {
  color: #003b5f;
  text-decoration: underline; }

/* ============================================ *
 * Checkout - One Page
 * ============================================ */
.checkout-onepage-index .col-right,
.checkout-onepage-index .col-left {
  display: none; }

.checkout-onepage-index .col-main {
  width: auto;
  float: none; }

@media only screen and (min-width: 980px) {
  .checkout-onepage-index .col-main {
    float: left;
    width: 68.75%;
    padding-right: 20px; }
  .checkout-onepage-index .col-right,
  .checkout-onepage-index .col-left {
    width: 31.25%;
    display: block; }
  .checkout-onepage-index .col-right {
    padding-left: 0; } }

.opc select {
  width: 365px; }

/* -------------------------------------------- *
 * Section Styling - Default
 */
.opc .section .step-title {
  width: 100%;
  position: relative;
  padding: 3px 0;
  -moz-user-select: none;
  -ms-user-select: none;
  -webkit-user-select: none;
  -o-user-select: none;
  user-select: none; }
  .opc .section .step-title:after {
    content: '';
    display: table;
    clear: both; }

.opc .section.allow:not(.active) .step-title {
  cursor: pointer; }

.opc .section.active .step-title {
  border-bottom: 1px dotted #003b5f; }

.opc .section .step-title a {
  display: none; }

.opc .section.allow:not(.active) .step-title a {
  display: block;
  float: right;
  line-height: 40px;
  height: 40px;
  padding: 0px 10px; }

.no-touch .opc .section .step-title a:hover {
  text-decoration: none; }

.opc .section .step-title .number,
.opc .section.allow.active .step-title .number,
.no-touch .opc .section.allow:hover .step-title .number {
  font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
  width: 26px;
  height: 26px;
  text-align: center;
  color: #FFFFFF;
  line-height: 28px;
  background-color: #1f86bd;
  display: block;
  position: absolute;
  border-radius: 100%;
  top: 50%;
  left: 0;
  margin-top: -13px; }

.opc .section.allow .step-title .number {
  background-color: tint(#1f86bd, 50%); }

.opc .section.allow .step-title h2 {
  color: #5b5b5a; }

.opc .section.allow .step-title:hover h2,
.opc .section.active .step-title h2 {
  color: #003b5f; }

.opc .section .step-title h2 {
  font-size: 20px;
  font-weight: 400;
  line-height: 42px;
  height: 40px;
  float: left;
  margin: 0px 4px 0px 35px; }

@media only screen and (min-width: 599px) {
  .opc .section .step {
    padding: 20px 0 35px 35px; } }

.opc .section .step:after {
  content: '';
  display: table;
  clear: both; }

@media only screen and (max-width: 979px) {
  .opc .section .step {
    padding: 10px; } }

.opc select {
  width: 100%; }

.opc h3 {
  font-weight: 500; }

.opc .buttons-set {
  text-align: left; }
  .opc .buttons-set button.button {
    float: left;
    margin-left: 0;
    margin-right: 10px;
    margin-bottom: 0; }
  .opc .buttons-set p.required {
    float: right;
    margin-left: 5px;
    margin-bottom: 0; }
  .opc .buttons-set .back-link {
    float: right;
    margin: 0; }
  .opc .buttons-set a {
    line-height: 20px;
    display: inline-block;
    padding: 5px 5px 5px 0; }

@media only screen and (max-width: 479px) {
  .opc .buttons-set .button + .buttons-set .button,
  .paypal-express-review .buttons-set .button + .buttons-set .button {
    margin-left: 0; } }

.opc #opc-login h2 {
  font-size: 24px;
  margin-top: -25px; }

.opc #opc-login .step {
  padding: 0px; }

.opc #opc-login .step-title {
  border: none; }

.opc #opc-login .buttons-set {
  border-top: 0;
  padding-top: 5px; }

.opc #opc-login #checkout-step-login {
  margin-top: 35px; }

.opc-has-progressed-from-login .opc #opc-login h2 {
  font-size: 20px;
  margin-top: 0; }

@media only screen and (max-width: 770px) {
  .opc #opc-login .description,
  .opc #opc-login p.required {
    display: none; } }

#opc-payment .note {
  padding: 10px; }

/* -------------------------------------------- *
 * This section hides everything but the "Checkout Method" step of the checkout process and fades in the content
 * once the customer progresses to the next step. The purpose of this is to simplify what the customer has to focus on.
 * It is limited to larger viewports since smaller devices are inherently going to be focused solely on the
 * "Checkout Method" step.
 */
.opc.opc-firststep-login .section:not(#opc-login) .step-title,
.opc-block-progress-step-login {
  transition: opacity .3s; }

.opc.opc-firststep-login .section#opc-login .step-title .number {
  transition: width .1s; }

.opc.opc-firststep-login .section#opc-login .step-title h2 {
  transition: margin-left .1s; }

/* When a user progresses from the "Checkout Method" to "Billing Information" for the first time, the              */
/* "opc-has-progressed-from-login" class gets added to the body. Also, the .opc element will only have the         */
/* "opc-firststep-login" class if the first step of the checkout is the "Checkout Method" (eg, not when logged in) */
body:not(.opc-has-progressed-from-login) .opc.opc-firststep-login .section:not(#opc-login) .step-title,
body:not(.opc-has-progressed-from-login) .opc-block-progress-step-login {
  opacity: 0; }

body:not(.opc-has-progressed-from-login) .opc.opc-firststep-login .section#opc-login .step-title .number {
  width: 0px;
  overflow: hidden; }

body:not(.opc-has-progressed-from-login) .opc.opc-firststep-login .section#opc-login .step-title h2 {
  margin-left: 0px; }

/* -------------------------------------------- *
 * Shipping and Payment methods
 */
.sp-methods {
  margin: 0 0 8px; }
  .sp-methods dt {
    margin: 13px 0 5px;
    font-weight: bold; }
    .sp-methods dt:first-child {
      margin: 0 0 5px; }
    .sp-methods dt label {
      font-weight: bold; }
  .sp-methods dd li {
    margin: 5px 0; }
  .sp-methods label img {
    float: left; }
  .sp-methods label a {
    margin-top: 6px;
    float: right;
    margin-left: 10px; }
  .sp-methods .price {
    font-weight: bold; }
  .sp-methods .form-list {
    padding-left: 25px; }
    .sp-methods .form-list li {
      margin: 0 0 8px; }
  .sp-methods select.month {
    width: 120px;
    margin-right: 10px; }
  .sp-methods select.year {
    width: 96px; }
  .sp-methods input.cvv {
    width: 4em !important; }
  .sp-methods #advice-validate-cc-exp-ccsave_expiration {
    max-width: 130px; }
  .sp-methods .checkmo-list li {
    margin: 0 0 5px;
    content: '';
    display: table;
    clear: both; }
  .sp-methods .checkmo-list label {
    display: none; }
  .sp-methods .checkmo-list address {
    float: left; }
  @media only screen and (max-width: 479px) {
    .sp-methods .checkmo-list {
      padding-left: 0; }
      .sp-methods .checkmo-list label {
        width: 135px; } }
  .sp-methods .release-amounts {
    margin: 0.5em 0; }
  .sp-methods .release-amounts button {
    float: left;
    margin: 5px 10px 0 0; }

/* One Page Checkout */
#checkout-step-billing {
  margin-top: 25px; }
  #checkout-step-billing p.required {
    margin-top: -25px; }

.block-progress {
  border: 0;
  margin: 0;
  padding-left: 20px; }
  .block-progress .block-content {
    font-size: 13px; }
  .block-progress dt {
    padding-top: 6px;
    margin: 0;
    margin-bottom: 10px;
    color: #003b5f;
    font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
    font-size: 14px;
    font-weight: normal;
    font-style: normal;
    line-height: 1.4;
    margin-bottom: 6px;
    text-transform: uppercase;
    font-weight: normal;
    color: #5b5b5a; }
  .block-progress dt.complete {
    color: #003b5f; }
  .block-progress dd {
    margin-bottom: 10px;
    font-family: Arial, sans-serif; }
  .block-progress #payment-progress-opcheckout .subtitle {
    margin-bottom: 3px; }
  .block-progress .payment-info dt {
    padding: 0;
    margin: 0 0 3px 0;
    color: #003b5f;
    font-family: Arial, sans-serif;
    text-transform: none;
    font-style: italic;
    float: left;
    clear: both;
    font-size: 13px; }
    .block-progress .payment-info dt:after {
      content: ': '; }
  .block-progress .payment-info dd {
    float: left;
    margin-bottom: 3px;
    font-size: 13px; }
  .block-progress .payment-info:after {
    content: '';
    display: table;
    clear: both; }

/* review step */
#checkout-review-table .btn-remove img {
  display: none; }

#checkout-review-table-wrapper {
  clear: both; }

#review-buttons-container {
  width: 100%;
  margin-top: 15px;
  margin-bottom: 15px; }
  #review-buttons-container .btn-checkout {
    min-width: 220px; }
  #review-buttons-container .please-wait {
    float: left;
    margin-right: 10px; }
  #review-buttons-container .f-left {
    float: right; }

@media only screen and (max-width: 599px) {
  .linearize-table-large.checkout-review-table thead tr:nth-child(1n+2) {
    display: none; } }

@media only screen and (max-width: 479px) {
  .linearize-table.checkout-review-table thead tr:nth-child(1n+2) {
    display: none; } }

/* show/hide "change" link for progress step depend on complete status
 * should be placed in .css file */
.opc-block-progress dt.complete a,
.opc-block-progress dt.complete .separator {
  display: inline; }

.opc-block-progress dt a,
.opc-block-progress dt .separator {
  display: none; }

/* On small screens, the progress review content will be moved to the review step via JS. Styled via this CSS: */
#checkout-step-review .opc-block-progress {
  border-left: none;
  padding-left: 0; }
  #checkout-step-review .opc-block-progress .block-title {
    display: none; }
  #checkout-step-review .opc-block-progress .block-content {
    display: block !important;
    padding: 0; }
    #checkout-step-review .opc-block-progress .block-content > dl > div {
      float: left;
      width: 50%; }
    @media only screen and (max-width: 479px) {
      #checkout-step-review .opc-block-progress .block-content > dl > div {
        float: none;
        width: auto; } }
    #checkout-step-review .opc-block-progress .block-content .changelink {
      display: none; }

@media only screen and (max-width: 479px) {
  #checkout-review-table thead > tr > th {
    display: none; }
    #checkout-review-table thead > tr > th:first-child {
      display: block; }
  #checkout-review-table thead > tr > th:first-child {
    display: block; } }

#checkout-step-review .centinel > p {
  margin-bottom: 10px; }

#checkout-step-review .centinel iframe {
  width: 100%;
  min-height: 400px; }

/* Gift options */
.gift-messages-form .item {
  content: '';
  display: table;
  clear: both;
  margin-top: 35px; }
  .gift-messages-form .item h5 {
    font-weight: bold; }
  .gift-messages-form .item .product-img-box {
    width: auto;
    float: left;
    padding-right: 15px; }
  .gift-messages-form .item .details {
    float: left; }

.gift-message-form .inner-box > div {
  content: '';
  display: table;
  clear: both;
  width: 100%;
  margin-top: 15px;
  display: block; }
  .gift-message-form .inner-box > div.extra-options-container p {
    margin-bottom: 15px; }

.gift-message-form .gift-wrapping-form label {
  margin-right: 10px; }

.gift-message-form .gift-wrapping-form img {
  float: left; }

.gift-message-form .gift-wrapping-form .gift-wrapping-design {
  height: 75px; }
  .gift-message-form .gift-wrapping-form .gift-wrapping-design:after {
    content: '';
    display: table;
    clear: both; }
  .gift-message-form .gift-wrapping-form .gift-wrapping-design .image-box {
    margin-right: 5px; }

.gift-message-form .gift-item {
  padding-bottom: 10px;
  margin-bottom: 10px;
  border-bottom: solid 1px #ECECEC; }
  .gift-message-form .gift-item:after {
    content: '';
    display: table;
    clear: both; }
  .gift-message-form .gift-item .product-img-box {
    width: 200px; }
    .gift-message-form .gift-item .product-img-box .product-image {
      width: 75px;
      margin-left: auto;
      margin-right: auto; }
    .gift-message-form .gift-item .product-img-box .product-name {
      display: block; }
  .gift-message-form .gift-item .fieldset {
    margin-left: 200px; }

@media only screen and (max-width: 770px) {
  .gift-message-form .giftmessage-area {
    max-width: 100%; }
  .gift-message-form .gift-item .product-img-box {
    width: 100%;
    float: none; }
  .gift-message-form .gift-item .fieldset {
    margin-left: 0px; }
    .gift-message-form .gift-item .fieldset textarea {
      width: 100%; } }

.opc-block-progress .block-title strong {
  width: 100%;
  display: block;
  color: #003b5f;
  font-size: 20px;
  border-bottom: 1px dotted #003b5f;
  text-transform: none;
  padding-bottom: 5px;
  mragin-bottom: 20px; }

#checkout-step-review #checkout-agreements {
  margin-top: 30px; }

/* ============================================ *
 * Checkout - Success
 * ============================================ */
.checkout-onepage-success .col-main {
  padding: 0;
  text-align: center; }

.checkout-onepage-success .buttons-set {
  margin: 10px 0;
  text-align: center; }
  .checkout-onepage-success .buttons-set button {
    float: none; }

/* ============================================ *
 * Configurable Swatches
 * ============================================ */
/* Clears */
.clearfix:after,
.configurable-swatch-list:after,
.product-view .product-options .swatch-attr:after {
  content: '';
  display: table;
  clear: both; }

/* General Swatch Styling */
.swatch-link,
.swatch-label {
  display: block;
  border-radius: 3px;
  font-size: 14px;
  text-align: center;
  color: #003b5f;
  text-decoration: none;
  box-sizing: content-box; }

.swatch-link {
  border: 1px solid #CCCCCC;
  margin: 0 0 3px; }
  .swatch-link img {
    border-radius: 2px; }
  .swatch-link:hover {
    cursor: pointer;
    text-decoration: none; }
  .swatch-link .x {
    display: none;
    text-indent: -999em;
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    background: url(../images/bg_x.png) center no-repeat transparent;
    z-index: 10; }
  .swatch-link.has-image .swatch-label {
    position: relative; }
  .swatch-link.has-image img {
    position: absolute;
    top: 0;
    left: 0; }

.swatch-label {
  border: 1px solid #fff;
  margin: 0;
  white-space: nowrap;
  background: #F4F4F4; }

.configurable-swatch-list {
  margin-left: -3px;
  zoom: 1;
  clear: both;
  -webkit-transform: translateZ(0px); }
  .configurable-swatch-list li {
    float: left;
    zoom: 1;
    margin: 0 0 0 3px; }
  .products-grid .configurable-swatch-list li {
    display: inline-block;
    float: none;
    margin: 0;
    vertical-align: top; }
  .configurable-swatch-list .not-available .x {
    display: block; }
  .configurable-swatch-list .not-available .swatch-link {
    border-color: #EDEDED;
    position: relative; }
    .configurable-swatch-list .not-available .swatch-link.has-image img {
      opacity: 0.4;
      filter: alpha(opacity=40); }
  .configurable-swatch-list .not-available .swatch-label {
    color: #aaa;
    background: #fff; }
  .configurable-swatch-list .wide-swatch .swatch-label {
    padding: 0 6px; }
  .configurable-swatch-list .not-available a:focus {
    outline: 0; }

#narrow-by-list dd .configurable-swatch-list li {
  margin: 0 0 0 3px;
  width: 47%; }

#narrow-by-list dd .swatch-link {
  border: none;
  line-height: 25px;
  margin-right: 2px;
  text-align: left; }
  #narrow-by-list dd .swatch-link.has-image {
    line-height: inherit; }
  #narrow-by-list dd .swatch-link:hover .swatch-label {
    border-color: #1f86bd; }

#narrow-by-list dd .swatch-label {
  background: #F4F4F4;
  border: 1px solid #CCCCCC;
  border-radius: 3px;
  display: block;
  float: left;
  line-height: 1.5em;
  margin: 0 5px 0 0;
  padding: 1px 5px;
  white-space: nowrap; }
  #narrow-by-list dd .swatch-label img {
    border: 1px solid #fff;
    border-radius: 3px;
    box-sizing: content-box; }

#narrow-by-list dd .has-image .swatch-label {
  padding: 0; }

@media only screen and (max-width: 770px) {
  #narrow-by-list dd .configurable-swatch-list li:nth-child(odd) {
    clear: left; } }

.currently .swatch-current {
  position: relative; }
  .currently .swatch-current .btn-remove {
    margin-top: -10px;
    position: absolute;
    right: 0;
    top: 50%; }
  .currently .swatch-current span {
    display: block;
    float: left; }

.currently .swatch-link {
  display: inline-block;
  margin: 0 0 0 3px; }
  .currently .swatch-link:hover {
    border-color: #CCCCCC;
    cursor: default; }

/* Other Swatch States */
.configurable-swatch-list .hover .swatch-link,
.configurable-swatch-list .selected .swatch-link,
.swatch-link:hover {
  border-color: #1f86bd; }

.configurable-swatch-box {
  background: none !important; }
  .configurable-swatch-box select.swatch-select {
    display: none; }
  .configurable-swatch-box .validation-advice {
    margin: 0 0 5px;
    background: #DF280A;
    padding: 2px 5px !important;
    font-weight: bold;
    color: #fff !important;
    float: left;
    display: block;
    border-radius: 3px; }

/* CUSTOM */
.availability.out-of-stock span {
  color: #5b5b5a; }

.product-view .product-options .swatch-attr {
  float: none;
  display: block;
  clear: both;
  border: 0; }
  .product-view .product-options .swatch-attr label,
  .product-view .product-options .swatch-attr .select-label {
    font-size: 12px; }
  .product-view .product-options .swatch-attr label {
    display: block;
    line-height: 1.3; }
  .product-view .product-options .swatch-attr .select-label {
    display: inline;
    font-weight: normal;
    color: #003b5f;
    padding-left: 5px; }

.product-view .product-options dd .input-box {
  width: auto;
  height: auto; }

.product-view .product-options .select-label {
  display: none; }

.product-view .add-to-cart button.out-of-stock {
  background-position: -80px -362px;
  cursor: default; }

/* ============================================ *
 * Customer
 * ============================================ */
.customer-account-login .col-main a:not(.button),
.customer-account-create .col-main a:not(.button),
.customer-account-forgotpassword .col-main a:not(.button),
.checkout-onepage-index .col-main a:not(.button) {
  color: #003b5f;
  text-decoration: underline; }
  .customer-account-login .col-main a:not(.button):hover,
  .customer-account-create .col-main a:not(.button):hover,
  .customer-account-forgotpassword .col-main a:not(.button):hover,
  .checkout-onepage-index .col-main a:not(.button):hover {
    color: #1f86bd; }

@media only screen and (max-width: 770px) {
  .customer-account .block-account .block-title {
    display: none; } }

@media only screen and (max-width: 770px) {
  .customer-account .block-account {
    margin-bottom: 35px !important; } }

.customer-account-edit .fieldset p.required {
  margin-top: -25px !important; }

.customer-account-login .col-main {
  padding-bottom: 35px; }

.customer-account-login .scaffold-form label:first-child {
  width: 115px; }

.customer-account-login h2 {
  font-size: 20px; }

.customer-account-login .col2-set .buttons-set {
  text-align: left;
  border-top: 0; }

.customer-account-login .col2-set .col-1,
.customer-account-login .col2-set .col-2 {
  box-sizing: border-box; }

.customer-account-login .col2-set .col-1 ul {
  list-style: disc;
  padding-left: 20px;
  margin: 10px 0 20px 0; }

@media only screen and (min-width: 600px) {
  .customer-account-login .col2-set .col-1,
  .customer-account-login .col2-set .col-2 {
    padding-top: 0;
    margin-top: 20px; }
  .customer-account-login .col2-set .col-1 {
    padding-right: 20px; }
  .customer-account-login .col2-set .col-2 {
    padding-left: 20px; } }

@media only screen and (min-width: 770px) {
  .customer-account-login .col2-set .col-1 {
    padding-right: 0; } }

@media only screen and (max-width: 599px) {
  .customer-account-login .col2-set .col-1 {
    padding-bottom: 35px; }
  .customer-account-login .col2-set .col-2 {
    padding-top: 35px; } }

@media only screen and (max-width: 770px) {
  .customer-account-login .col2-set p.required {
    display: none; } }

.customer-account-create .scaffold-form label:first-child {
  width: 140px; }

.remember-me-box a.hide {
  display: none; }

.remember-me-box .link-tip {
  font-size: 13px;
  padding-left: 10px; }

.remember-me-popup {
  display: none;
  border: 1px solid #CCCCCC;
  padding: 10px;
  position: relative; }
  .remember-me-popup.show {
    display: block; }
  .remember-me-popup p {
    font-family: Arial, sans-serif; }
  .remember-me-popup .remember-me-popup-close {
    position: absolute;
    top: 0;
    right: 0;
    padding: 10px;
    font-size: 12px; }
  .remember-me-popup .remember-me-popup-close-button {
    display: none; }

.customer-account-create .fieldset .hidden {
  display: none; }

.customer-account-forgotpassword .col-main,
.customer-account-create .col-main {
  max-width: 680px;
  margin: auto;
  padding-bottom: 35px; }

/* ============================================ *
 * My Account Global Styles
 * ============================================ */
body.customer-account .my-account .page-title h1 {
  border: 0;
  text-align: left; }

body.customer-account .my-account .title-buttons {
  position: relative;
  text-align: right; }
  body.customer-account .my-account .title-buttons h1 {
    text-align: left; }
  body.customer-account .my-account .title-buttons .button {
    position: absolute;
    right: 0;
    top: 0; }
  body.customer-account .my-account .title-buttons a,
  body.customer-account .my-account .title-buttons span.separator {
    position: relative;
    top: -42px; }

body.customer-account .my-account .fieldset h2,
body.customer-account .my-account .addresses-list h2,
body.customer-account .my-account .order-details h2 {
  width: 100%;
  display: inline-block; }

body.customer-account .my-account .addresses-list h3 {
  font-size: 14px;
  font-weight: 600; }

body.customer-account .my-account .fieldset {
  margin-top: 35px;
  margin-bottom: 35px; }

body.customer-account .data-table {
  margin-top: 5px; }
  body.customer-account .data-table td a {
    font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
    text-transform: uppercase;
    font-style: normal;
    font-size: 13px; }
  body.customer-account .data-table span.nobr {
    white-space: normal; }
    body.customer-account .data-table span.nobr a {
      white-space: nowrap; }
  body.customer-account .data-table td.view a {
    display: block; }
  body.customer-account .data-table .separator {
    display: none; }

body.customer-account .sidebar .block ol#compare-items li {
  margin: 10px 0; }

body.customer-account .sidebar .block .block-content p.block-subtitle {
  margin-bottom: 15px; }

body.customer-account .sidebar .block .block-content .actions {
  margin-top: 35px; }

body.customer-account .sidebar ol#cart-sidebar-reorder li {
  margin-top: 10px;
  margin-bottom: 0; }

body.customer-account .sidebar ol#cart-sidebar-reorder p.product-name {
  display: inline-block;
  margin-bottom: 0; }

body.customer-account .sidebar .block-cart .summary {
  margin-bottom: 15px; }

body.customer-account .sidebar .block-reorder ol#cart-sidebar-reorder li {
  margin-top: 10px;
  margin-bottom: 0; }
  body.customer-account .sidebar .block-reorder ol#cart-sidebar-reorder li input {
    margin-right: 10px; }

body.customer-account .sidebar .block-reorder ol#cart-sidebar-reorder p.product-name {
  display: inline;
  margin-bottom: 0; }

.form-list .customer-dob .dob-month,
.form-list .customer-dob .dob-day {
  width: 40px;
  float: left;
  margin-right: 10px; }

.form-list .customer-dob .dob-year {
  width: 80px;
  float: left; }

/* ============================================ *
 * Dashboard
 * ============================================ */
.customer-account .back-link a {
  color: #003b5f;
  text-decoration: underline; }
  .customer-account .back-link a:hover {
    color: #1f86bd; }

.dashboard .box-head {
  margin-top: 35px;
  padding-bottom: 7px; }
  .dashboard .box-head h2 {
    font-size: 20px;
    font-weight: 600;
    display: inline-block;
    margin-bottom: 0; }
  .dashboard .box-head a {
    padding: 10px; }

.dashboard .box-title a,
.dashboard .box-head a,
.dashboard .box-content a,
.dashboard .back-link a {
  color: #003b5f;
  text-decoration: underline; }
  .dashboard .box-title a:hover,
  .dashboard .box-head a:hover,
  .dashboard .box-content a:hover,
  .dashboard .back-link a:hover {
    color: #1f86bd; }

.dashboard .box-account {
  padding-bottom: 40px;
  border-bottom: 1px dotted #003b5f;
  margin-bottom: 45px; }
  .dashboard .box-account p,
  .dashboard .box-account address {
    font-family: Arial, sans-serif; }

.dashboard .col2-set .col-1,
.dashboard .col2-set .col-2 {
  padding-right: 12.09677%;
  padding-bottom: 0; }
  .dashboard .col2-set .col-1 .box-title,
  .dashboard .col2-set .col-2 .box-title {
    position: relative;
    padding-bottom: 10px; }
    .dashboard .col2-set .col-1 .box-title h2,
    .dashboard .col2-set .col-1 .box-title h3,
    .dashboard .col2-set .col-2 .box-title h2,
    .dashboard .col2-set .col-2 .box-title h3 {
      font-weight: 600;
      font-family: Arial, sans-serif;
      font-size: 14px; }
    .dashboard .col2-set .col-1 .box-title a,
    .dashboard .col2-set .col-2 .box-title a {
      line-height: 19.6px; }

.dashboard .box-reviews.box-account {
  padding-bottom: 0; }

.dashboard .box-reviews li {
  padding: 10px 0;
  border-top: 1px solid #EDEDED; }
  .dashboard .box-reviews li:first-child {
    border-top: 0; }
  .dashboard .box-reviews li .number {
    margin-right: -20px;
    float: left;
    line-height: 1.4;
    font-size: 13px; }
  .dashboard .box-reviews li .details {
    margin-left: 20px; }
    .dashboard .box-reviews li .details .ratings {
      content: '';
      display: table;
      clear: both;
      margin-bottom: 0; }
      .dashboard .box-reviews li .details .ratings strong {
        float: left;
        font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
        font-size: 13px;
        margin-right: 5px; }
      .dashboard .box-reviews li .details .ratings .rating-box {
        float: left;
        margin: 3px 0 0 0; }

/* ============================================ *
 * Address Book
 * ============================================ */
.my-account .addresses-list {
  font-family: Arial, sans-serif; }
  .my-account .addresses-list .col-1,
  .my-account .addresses-list .col-2 {
    padding-bottom: 0; }
  .my-account .addresses-list .item {
    margin: 0 0 35px 0; }
    .my-account .addresses-list .item p {
      margin-top: 10px; }
  @media only screen and (max-width: 770px) {
    .my-account .addresses-list .col-1,
    .my-account .addresses-list .col-2 {
      width: 100%;
      padding-left: 0;
      padding-right: 0; }
      .my-account .addresses-list .col-1 li.empty,
      .my-account .addresses-list .col-2 li.empty {
        width: 100%; } }
  @media only screen and (max-width: 599px) {
    .my-account .addresses-list .addresses-additional p a {
      white-space: nowrap; } }

/* ============================================ *
 * Order View
 * ============================================ */
.order-info {
  padding-bottom: 10px;
  border-bottom: 1px solid #EDEDED;
  width: 100%;
  margin-bottom: 35px; }
  .order-info dt,
  .order-info dd,
  .order-info ul,
  .order-info li {
    display: inline; }
  .order-info dt {
    margin-right: 20px; }
  .order-info li {
    margin: 0 0 0 20px; }
    .order-info li.current {
      font-weight: 600; }
    .order-info li:first-child {
      margin-left: 0; }

.order-date {
  font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
  text-transform: uppercase; }

.order-info-box {
  margin-bottom: 40px;
  margin-top: 20px; }
  .order-info-box + .order-info-box {
    padding-bottom: 40px;
    border-bottom: 1px solid #EDEDED; }
  .order-info-box .col-1 {
    padding-right: 0;
    width: 48%; }
  .order-info-box .col-2 {
    width: 52%; }
  .order-info-box .col-1,
  .order-info-box .col-2 {
    overflow: hidden;
    padding-top: 0;
    padding-bottom: 0; }
  .order-info-box .box-title {
    width: 150px;
    padding-right: 10px;
    float: left; }
    .order-info-box .box-title h2 {
      font-size: 14px;
      font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
      font-weight: bold;
      line-height: 1.5; }
      .order-info-box .box-title h2:after {
        content: ':'; }
  .order-info-box .box-content {
    float: left;
    font-family: Arial, sans-serif; }
    .order-info-box .box-content td,
    .order-info-box .box-content th {
      font-family: Arial, sans-serif;
      line-height: 1.3; }
    .order-info-box .box-content th {
      padding-top: 10px; }
    .order-info-box .box-content td {
      padding-left: 15px; }
    .order-info-box .box-content strong {
      font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
      font-weight: normal;
      text-transform: uppercase; }

#my-orders-table .option-label {
  margin-left: 10px;
  font-weight: 600;
  font-style: italic; }

#my-orders-table .option-value {
  margin-left: 20px; }

#my-orders-table tr.bundle:not(:last-child) td {
  border-bottom: none;
  border-top: none; }

ol#cart-sidebar-reorder li {
  margin-top: 10px;
  margin-bottom: 0; }
  ol#cart-sidebar-reorder li input {
    margin-right: 10px; }

ol#cart-sidebar-reorder p.product-name {
  display: inline; }

@media only screen and (max-width: 599px) {
  #my-orders-table .option-label {
    margin-left: 20px; }
  #my-orders-table .option-value {
    margin-left: 35px; }
  #my-orders-table td[data-rwd-label=Qty] .nobr br {
    display: none; }
  #my-orders-table td[data-rwd-label=Qty] .nobr strong {
    margin-right: 10px; }
  #my-orders-table tr.bundle {
    border-color: #EDEDED; }
  #my-orders-table tr.bundle.child td[data-rwd-label] {
    padding-left: 60px; }
  #my-orders-table tbody:last-child tr:last-child td {
    padding-bottom: 10px;
    border-bottom: 0; }
    #my-orders-table tbody:last-child tr:last-child td:last-child {
      padding-bottom: 15px; }
  #my-orders-table tfoot tr.shipping {
    margin-top: 0; } }

.order-additional {
  margin: 40px 0; }

.order-gift-message dd {
  margin-top: 10px; }

@media only screen and (max-width: 1199px) {
  .dashboard .col2-set .col-1,
  .dashboard .col2-set .col-2 {
    padding-right: 35px;
    padding-bottom: 0; }
  body.customer-account .data-table td.view a {
    white-space: normal; } }

@media only screen and (max-width: 979px) {
  body.customer-account .my-account .title-buttons {
    text-align: left; }
    body.customer-account .my-account .title-buttons span.separator,
    body.customer-account .my-account .title-buttons a {
      top: -12px; } }

@media only screen and (max-width: 770px) {
  body.customer-account .data-table.orders th.ship,
  body.customer-account .data-table.orders td.ship,
  body.customer-account .data-table.orders td.status,
  body.customer-account .data-table.orders th.status {
    display: none; }
  .order-info-box .box-content {
    clear: left; }
  .addresses-list .item {
    float: left;
    width: 50%;
    padding-right: 35px; }
  .order-info dt {
    display: none; }
  .dashboard .page-title {
    margin-top: 20px; }
    .dashboard .page-title h1 {
      margin-top: 0; }
  .dashboard .welcome-msg {
    font-family: Arial, sans-serif; }
    .dashboard .welcome-msg .hello {
      font-style: italic; }
  .dashboard .box-account {
    padding-bottom: 15px;
    margin-bottom: 35px; }
  .dashboard .col2-set .col-1,
  .dashboard .col2-set .col-2 {
    width: 48%;
    padding-right: 0;
    padding-left: 0; }
  .dashboard .col2-set .col-1 {
    float: left;
    margin-right: 4%; }
  .dashboard .col2-set .col-2 {
    float: right; } }

@media only screen and (max-width: 599px) {
  body.customer-account .my-account .form-list .control {
    padding-left: 0; } }

@media only screen and (max-width: 479px) {
  body.customer-account .my-account .page-title h1 {
    text-align: center; }
  body.customer-account .my-account .title-buttons {
    text-align: center; }
    body.customer-account .my-account .title-buttons .button {
      width: 100%;
      position: static;
      margin-bottom: 15px; }
      body.customer-account .my-account .title-buttons .button + .button {
        margin-left: 0px; }
  body.customer-account .my-account .fieldset h2 {
    margin-bottom: 15px; }
  body.customer-account .my-account .order-details h2 {
    margin-bottom: 15px; }
  body.customer-account .my-account .buttons-set {
    border-top: 0; }
  body.customer-account .my-account .addresses-list .item {
    margin-bottom: 15px;
    padding-right: 0;
    float: none;
    width: auto; }
  body.customer-account .my-account .addresses-list h2 {
    margin-bottom: 15px; }
  .order-info {
    margin-top: 15px; }
  .data-table.orders .link-reorder,
  .data-table.orders .date {
    display: none; }
  .data-table.orders td.view {
    text-align: right; }
  .dashboard .col2-set .col-1,
  .dashboard .col2-set .col-2 {
    width: 100%;
    margin-top: 15px; }
  .order-info-box {
    margin: 0; }
    .order-info-box .col-1,
    .order-info-box .col-2 {
      width: 100%;
      border-bottom: 1px solid #EDEDED;
      padding: 15px 0; }
    .order-info-box + .order-info-box {
      padding-bottom: 0;
      border-bottom: 0;
      margin-bottom: 35px; }
  #my-reviews-table .nobr {
    white-space: normal; } }

/* ============================================ *
 * Newsletter Subscriptions
 * ============================================ */
body.newsletter-manage-index .my-account .fieldset {
  margin-bottom: 20px; }

body.newsletter-manage-index .my-account .fieldset h2 {
  display: none; }

body.newsletter-manage-index .my-account .form-list {
  border-top: 1px solid #EDEDED;
  padding-top: 10px; }

/* ============================================ *
 * Contacts
 * ============================================ */
.contacts-index-index .buttons-set {
  margin-left: 35px;
  max-width: 435px; }
  .contacts-index-index .buttons-set p.required {
    float: left; }
  @media only screen and (max-width: 599px) {
    .contacts-index-index .buttons-set {
      max-width: 330px;
      margin-left: 0; }
      .contacts-index-index .buttons-set button {
        float: left;
        margin-left: 0px; }
      .contacts-index-index .buttons-set p.required {
        float: right; } }

/* ============================================ *
 * PayPal
 * ============================================ */
@media only screen and (max-width: 870px) and (min-width: 771px) {
  .paypal-review-order .col2-set .col-1,
  .paypal-review-order .col2-set .col-2 {
    padding: 0px; } }

.paypal-review-order .info-set {
  margin-bottom: 10px;
  padding-bottom: 10px;
  border-bottom: 1px solid #EDEDED; }

.paypal-review-order .buttons-set {
  margin-top: 0px;
  padding-top: 0px;
  border: 0; }
  .paypal-review-order .buttons-set button {
    margin-bottom: 10px; }

@media only screen and (max-width: 770px) {
  .paypal-review-order .col-1 {
    padding-bottom: 0; }
  .paypal-review-order .field.inactive {
    display: none; } }

.top-container .bml-ad {
  margin-top: 7px;
  margin-bottom: 7px;
  text-align: center; }
  .top-container .bml-ad span {
    display: inline-block; }
    .top-container .bml-ad span a {
      display: block; }

.bml-ad {
  display: none;
  text-align: center;
  margin-bottom: 5px; }
  .bml-ad span {
    display: block;
    line-height: 0; }
  .bml-ad a {
    display: inline-block;
    max-width: 100%; }
  .bml-ad a:hover {
    opacity: 0.7; }
  .bml-ad img {
    height: auto !important;
    max-width: 100%; }

.cart-totals-wrapper .bml-ad.large img {
  display: block;
  margin: 0; }

@media only screen and (max-width: 770px) {
  .bml-ad.small {
    display: block; } }

@media only screen and (min-width: 771px) {
  .bml-ad.large {
    display: block; } }

div.paypal-logo {
  text-align: center;
  margin: 15px 0;
  max-width: 100%; }
  div.paypal-logo span {
    display: block;
    width: 100%; }
    div.paypal-logo span a {
      display: inline-block;
      max-width: 100%; }
      div.paypal-logo span a img {
        max-width: 100%; }
  div.paypal-logo span > img {
    display: none; }

.checkout-types div.paypal-logo {
  text-align: right; }

.bml-checkout-type {
  list-style-type: none; }

.sidebar .paypal-logo {
  text-align: center;
  line-height: 0; }
  .sidebar .paypal-logo > a {
    display: inline-block;
    max-width: 100%; }
    .sidebar .paypal-logo > a:hover {
      opacity: 0.8; }
    .sidebar .paypal-logo > a img {
      display: block; }
  .sidebar .paypal-logo .label {
    margin-top: 4px; }
    .sidebar .paypal-logo .label a {
      font-size: 12px;
      line-height: 1.5; }

/* ============================================ *
 * Review - Customer
 * ============================================ */
#customer-reviews {
  width: auto;
  float: none; }
  #customer-reviews .review-heading {
    border-top: 1px solid #CCCCCC;
    border-bottom: 1px solid #CCCCCC;
    padding: 10px 0 5px; }
    #customer-reviews .review-heading:after {
      content: '';
      display: table;
      clear: both; }
    #customer-reviews .review-heading h2 {
      float: left;
      display: block; }
    #customer-reviews .review-heading .pager {
      clear: none;
      float: right;
      width: auto; }
      #customer-reviews .review-heading .pager .count-container .limiter {
        margin-bottom: 0; }
        #customer-reviews .review-heading .pager .count-container .limiter label {
          font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
          font-size: 10px;
          text-transform: uppercase; }
      #customer-reviews .review-heading .pager .amount {
        display: none; }
  #customer-reviews h2 {
    color: #1f86bd;
    font-size: 12px;
    text-transform: uppercase; }
    #customer-reviews h2 span {
      color: #003b5f; }
  #customer-reviews h3 {
    font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
    font-size: 12px;
    font-weight: normal;
    text-transform: uppercase; }
    #customer-reviews h3 span {
      color: #1f86bd; }
  #customer-reviews .fieldset {
    padding-top: 25px;
    width: 470px; }
    #customer-reviews .fieldset h4 {
      border-bottom: 1px solid #CCCCCC;
      font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
      font-size: 12px;
      font-weight: normal;
      padding-bottom: 5px;
      text-transform: uppercase; }
      #customer-reviews .fieldset h4 em {
        display: none; }
    #customer-reviews .fieldset .form-list {
      font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
      font-size: 12px;
      font-weight: normal;
      margin: 10px 0;
      text-transform: uppercase;
      width: 470px; }
      #customer-reviews .fieldset .form-list .inline-label:after {
        content: '';
        display: table;
        clear: both; }
      #customer-reviews .fieldset .form-list label {
        font-size: 12px;
        font-weight: normal; }
      #customer-reviews .fieldset .form-list textarea {
        border: 1px solid #CCCCCC;
        border-radius: 0;
        min-width: 100%;
        -webkit-appearance: none; }
      #customer-reviews .fieldset .form-list input {
        border: 1px solid #CCCCCC;
        border-radius: 0; }
        #customer-reviews .fieldset .form-list input[type="text"] {
          width: 100%; }
  #customer-reviews .buttons-set {
    border: none;
    margin: 0;
    width: 470px; }
  #customer-reviews dl {
    font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
    font-size: 12px;
    font-weight: normal;
    margin-bottom: 10px; }
    #customer-reviews dl dt {
      margin: 10px 0;
      text-transform: uppercase; }
    #customer-reviews dl dd {
      font-family: Arial, sans-serif;
      font-size: 14px;
      margin: 10px 0; }
      #customer-reviews dl dd .ratings-table {
        font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
        font-size: 12px;
        width: 100%; }
        #customer-reviews dl dd .ratings-table tr {
          margin-right: 15px; }
        #customer-reviews dl dd .ratings-table .review-label {
          width: 300px;
          max-width: 70%; }
      #customer-reviews dl dd table {
        margin: 15px 0; }
      #customer-reviews dl dd .review-meta {
        color: #1f86bd;
        font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
        font-size: 10px;
        font-weight: normal;
        text-transform: uppercase; }

.review-summary-table {
  border-bottom: 1px solid #CCCCCC;
  margin: 0 0 10px; }
  .review-summary-table thead {
    background: transparent; }
    .review-summary-table thead th {
      background: transparent;
      border: none;
      padding: 15px 7px 10px 8px; }
  .review-summary-table tbody th {
    background: #FFFFFF;
    font-size: 12px; }
  .review-summary-table tbody td {
    border: none;
    text-align: center;
    padding: 0; }
    .review-summary-table tbody td label {
      width: 100%;
      display: block;
      padding: 11px 0; }
  .review-summary-table .rating-box .rating-number {
    display: none; }
    .review-summary-table .rating-box .rating-number:after {
      content: "";
      display: inline-block;
      background-position: 0px -599px;
      width: 13px;
      height: 14px;
      margin-left: 5px;
      position: relative;
      top: 2px; }

/* ============================================ *
 * Ratings - Global
 * ============================================ */
.ratings-table {
  font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
  font-size: 12px;
  text-transform: uppercase; }
  .ratings-table th {
    padding-right: 10px; }
  .ratings-table .rating-box {
    background-position: 0 -615px;
    background-repeat: repeat-x;
    height: 13px;
    overflow: hidden;
    text-indent: -9999px;
    width: 65px; }
    .ratings-table .rating-box .rating {
      background-position: 0 -600px;
      background-repeat: repeat-x;
      float: left;
      height: 13px;
      text-indent: -9999px; }

@media only screen and (max-width: 770px) {
  body.review-product-list .product-view .product-shop .price-info {
    padding-left: 0; }
  body.review-product-list .product-view .product-shop .extra-info {
    padding: 0;
    min-width: 84%; }
    body.review-product-list .product-view .product-shop .extra-info .ratings-table {
      margin: 10px 0;
      width: 100%; }
      body.review-product-list .product-view .product-shop .extra-info .ratings-table tr {
        margin-right: 15px; } }

@media only screen and (max-width: 535px) {
  body.review-product-list .product-view .product-shop .extra-info {
    min-width: 0; }
    body.review-product-list .product-view .product-shop .extra-info .ratings-table tr {
      float: none;
      margin-right: 0; } }

@media only screen and (max-width: 520px) {
  #customer-reviews .fieldset {
    width: 100%; }
    #customer-reviews .fieldset .form-list {
      width: 100%; }
      #customer-reviews .fieldset .form-list .inline-label label,
      #customer-reviews .fieldset .form-list .inline-label .input-box {
        float: none; }
  #customer-reviews .buttons-set {
    width: 100%; }
  #customer-reviews .review-summary-table thead th {
    padding-left: 0px;
    padding-right: 0px; }
  #customer-reviews .review-summary-table tbody th {
    padding-left: 0px;
    padding-right: 0px; }
  #customer-reviews .review-summary-table tbody td {
    width: 20%;
    padding: 0px; }
  #customer-reviews .review-summary-table .rating-box {
    text-indent: 0px;
    text-align: center;
    background: none;
    height: 19.6px;
    width: 100%; }
    #customer-reviews .review-summary-table .rating-box .rating {
      display: none; }
    #customer-reviews .review-summary-table .rating-box .rating-number {
      display: inline-block; } }

@media only screen and (max-width: 450px) {
  #customer-reviews dl dd .ratings-table tr {
    float: none; } }

/* ============================================ *
 * Review View Page
 * ============================================ */
.review-product-view .product-review .product-details h2 {
  border-bottom: none; }

.review-product-view .product-review .product-img-box {
  width: auto;
  max-width: 50%; }
  .review-product-view .product-review .product-img-box > a {
    width: 100%; }
  .review-product-view .product-review .product-img-box .product-image {
    width: 100%; }

@media only screen and (max-width: 770px) {
  .review-product-view .product-review .product-img-box {
    max-width: 100%; } }

/* Slider */
.slick-slider {
  position: relative;
  display: block;
  box-sizing: border-box;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -ms-touch-action: pan-y;
  touch-action: pan-y;
  -webkit-tap-highlight-color: transparent;
  opacity: 0;
  transition: opacity .3s ease-out; }
  .slick-slider.slick-initialized {
    opacity: 1; }

.slick-list {
  position: relative;
  overflow: hidden;
  display: block;
  margin: 0;
  padding: 0; }
  .slick-list:focus {
    outline: none; }
  .slick-list.dragging {
    cursor: pointer;
    cursor: hand; }

.slick-slider .slick-track, .slick-slider .slick-list {
  transform: translate3d(0, 0, 0); }

.slick-track {
  position: relative;
  left: 0;
  top: 0;
  display: block; }
  .slick-track:before, .slick-track:after {
    content: "";
    display: table; }
  .slick-track:after {
    clear: both; }
  .slick-loading .slick-track {
    visibility: hidden; }

.slick-slide {
  float: left;
  height: 100%;
  width: 100%;
  min-height: 1px;
  display: none; }
  [dir="rtl"] .slick-slide {
    float: right; }
  .slick-slide img {
    display: block;
    width: 100%; }
  .slick-slide.slick-loading img {
    display: none; }
  .slick-slide.dragging img {
    pointer-events: none; }
  .slick-initialized .slick-slide {
    display: block; }
  .slick-loading .slick-slide {
    visibility: hidden; }
  .slick-vertical .slick-slide {
    display: block;
    height: auto;
    border: 1px solid transparent; }

.slick-arrow.slick-hidden {
  display: none; }

.slick-prev, .slick-next {
  background: #003b5f;
  width: 34px;
  height: 34px;
  box-sizing: border-box;
  padding: 9px 0;
  border-radius: 50%;
  text-align: center;
  position: absolute;
  top: 50%;
  margin-top: -17px;
  left: -40px;
  cursor: pointer; }
  .slick-prev img, .slick-next img {
    display: inline-block;
    margin-left: -2px; }

.slick-next {
  left: auto;
  right: -40px; }
  .slick-next img {
    margin-left: auto;
    margin-right: -2px; }

.slick-dots {
  text-align: center; }
  .slick-dots button {
    display: none; }
  .slick-dots li {
    width: 16px;
    height: 16px;
    background: #b6b6b6;
    border-radius: 50%;
    cursor: pointer;
    display: inline-block;
    margin: 0 7px;
    padding: 0 !important;
    margin-top: 20px; }
    .slick-dots li.slick-active {
      background: #1f86bd; }

.slick-slide {
  outline: none; }

.wordpress-layout-fullscreen .fullscreen-slider {
  padding-top: 1px;
  width: 100%;
  height: 90vh;
  position: relative;
  margin-bottom: 20px; }
  .wordpress-layout-fullscreen .fullscreen-slider .slick-list {
    height: 100%; }
    .wordpress-layout-fullscreen .fullscreen-slider .slick-list .slick-track {
      height: 100%; }
  .wordpress-layout-fullscreen .fullscreen-slider .slick-next {
    right: 40px;
    left: auto;
    z-index: 10; }
  .wordpress-layout-fullscreen .fullscreen-slider .slick-prev {
    left: 40px;
    right: auto;
    z-index: 10; }
  .wordpress-layout-fullscreen .fullscreen-slider .slick-dots {
    position: absolute;
    bottom: 35px;
    width: 100%; }
    .wordpress-layout-fullscreen .fullscreen-slider .slick-dots li {
      background: white; }
      .wordpress-layout-fullscreen .fullscreen-slider .slick-dots li.slick-active {
        background: #1f86bd; }
  .wordpress-layout-fullscreen .fullscreen-slider .content-wrapper {
    height: 100%;
    padding-top: 10px; }
  .wordpress-layout-fullscreen .fullscreen-slider .slick-slide {
    background-size: cover; }
    .wordpress-layout-fullscreen .fullscreen-slider .slick-slide.slide1 {
      background-color: #AAC502; }
      .wordpress-layout-fullscreen .fullscreen-slider .slick-slide.slide1 .headline {
        position: absolute;
        top: 50%;
        transform: translateY(-40%);
        font-size: 40px;
        text-transform: uppercase;
        color: white;
        font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
        line-height: 1; }
        @media only screen and (min-width: 600px) {
          .wordpress-layout-fullscreen .fullscreen-slider .slick-slide.slide1 .headline {
            font-size: 68px; } }
        @media only screen and (min-width: 771px) {
          .wordpress-layout-fullscreen .fullscreen-slider .slick-slide.slide1 .headline {
            font-size: 88px; } }
        @media only screen and (min-width: 980px) {
          .wordpress-layout-fullscreen .fullscreen-slider .slick-slide.slide1 .headline {
            font-size: 100px; } }
    .wordpress-layout-fullscreen .fullscreen-slider .slick-slide.slide2 {
      background-image: url(../images/about-slider/stock.jpg); }

#block-productfinder .slick-prev, #block-productfinder .slick-next {
  background: #c9c9c9;
  background-image: url(../images/arrow-left.svg);
  background-size: 12px;
  background-position: center;
  background-repeat: no-repeat;
  z-index: 100;
  top: 30%; }

#block-productfinder .slick-prev {
  left: 15px; }

#block-productfinder .slick-next {
  background-image: url(../images/arrow-right.svg);
  right: 15px; }

/* ============================================ *
 * Slideshow
 * ============================================ */
.slideshow-container {
  position: relative;
  display: block;
  width: 100%;
  margin: 10px 0;
  border: 1px solid #EDEDED; }
  .slideshow-container .slideshow {
    width: 100%;
    padding: 0;
    position: relative;
    margin: 0;
    border: 10px solid #FFFFFF; }
    .slideshow-container .slideshow > li {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      padding: 0;
      display: block;
      margin: 0; }
      .slideshow-container .slideshow > li:first-child {
        position: static;
        z-index: 100; }
      .slideshow-container .slideshow > li img {
        max-width: 100%;
        width: 100%; }

.slideshow-pager {
  text-align: center;
  width: 100%;
  z-index: 115;
  position: absolute;
  bottom: 0px;
  top: auto;
  overflow: hidden;
  -moz-user-select: none;
  -ms-user-select: none;
  -webkit-user-select: none;
  -o-user-select: none;
  user-select: none; }
  .slideshow-pager span {
    font-family: arial;
    width: 44px;
    height: 44px;
    display: inline-block;
    color: #DDDDDD;
    cursor: pointer; }
    .slideshow-pager span:before {
      content: '';
      display: block;
      width: 16px;
      height: 16px;
      left: 50%;
      top: 50%;
      margin-left: -8px;
      margin-top: -8px;
      border-radius: 1px;
      background-color: #FFFFFF;
      position: relative; }
    .slideshow-pager span:hover:before {
      background-color: #1b76a7; }
    .slideshow-pager span.cycle-pager-active:before {
      background-color: #186791; }
  .slideshow-pager > * {
    cursor: pointer; }

.slideshow-prev,
.slideshow-next {
  position: absolute;
  top: 0;
  width: 15%;
  max-width: 80px;
  height: 100%;
  opacity: 0.6;
  z-index: 110;
  cursor: pointer;
  -moz-user-select: none;
  -ms-user-select: none;
  -webkit-user-select: none;
  -o-user-select: none;
  user-select: none; }
  .slideshow-prev:before,
  .slideshow-next:before {
    content: '';
    width: 0;
    height: 0;
    font-size: 0;
    position: absolute;
    border-style: solid;
    display: block;
    top: 50%;
    margin-top: -15px; }
  .slideshow-prev:hover,
  .slideshow-next:hover {
    opacity: 1; }
  .slideshow-prev.disabled,
  .slideshow-next.disabled {
    opacity: .5;
    cursor: default; }

.slideshow-prev {
  left: 8px; }
  .slideshow-prev:before {
    border-width: 15px 15px 15px 0;
    border-color: transparent #FFFFFF transparent transparent;
    top: 50%;
    left: 10px; }
  .slideshow-prev:hover:before {
    border-color: transparent #1b76a7 transparent transparent; }

.slideshow-next {
  right: 8px; }
  .slideshow-next:before {
    border-width: 15px 0 15px 15px;
    border-color: transparent transparent transparent #FFFFFF;
    top: 50%;
    right: 10px; }
  .slideshow-next:hover:before {
    border-color: transparent transparent transparent #1b76a7; }

.cycle-caption {
  position: absolute;
  color: white;
  bottom: 15px;
  right: 15px;
  z-index: 110; }

.cycle-overlay {
  font-family: tahoma, arial;
  position: absolute;
  bottom: 0;
  width: 100%;
  z-index: 120;
  background: black;
  color: white;
  padding: 15px;
  opacity: .5; }

/* ============================================ *
 * Wishlist
 * ============================================ */
#wishlist-table th {
  text-align: center; }

#wishlist-table.clean-table {
  font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
  font-size: 12px;
  text-transform: uppercase;
  width: 100%; }
  #wishlist-table.clean-table th {
    border-bottom: 1px solid #C0C0C0; }
  #wishlist-table.clean-table td {
    padding: 15px;
    vertical-align: top; }
  #wishlist-table.clean-table thead th {
    font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
    font-size: 12px;
    text-transform: uppercase; }

#wishlist-table .product-name {
  font-size: 20px;
  font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
  margin-bottom: 0;
  text-transform: uppercase; }
  #wishlist-table .product-name a {
    color: #1f86bd; }

#wishlist-table .wishlist-sku {
  font-size: 11px;
  font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
  margin: 5px 0; }

#wishlist-table textarea {
  border: 1px solid #C0C0C0;
  width: 100%;
  height: 45px;
  font-size: 11px;
  font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif; }
  #wishlist-table textarea::-webkit-input-placeholder {
    text-transform: uppercase; }
  #wishlist-table textarea:-moz-placeholder {
    text-transform: uppercase; }
  #wishlist-table textarea::-moz-placeholder {
    text-transform: uppercase; }
  #wishlist-table textarea:-ms-input-placeholder {
    text-transform: uppercase; }
  #wishlist-table textarea:focus {
    border: 1px solid #1f86bd; }

#wishlist-table .item-manage {
  text-align: right;
  max-width: 450px;
  padding-top: 5px; }
  #wishlist-table .item-manage .button {
    font-size: 11px;
    padding: 3px 5px; }

#wishlist-table .cart-cell {
  text-align: center; }

#wishlist-table td.customer-wishlist-item-image {
  width: 113px; }

#wishlist-table td.customer-wishlist-item-quantity {
  width: 3em; }

#wishlist-table td.customer-wishlist-item-price {
  width: 120px;
  text-align: center; }

#wishlist-table td.customer-wishlist-item-cart {
  width: 150px; }
  #wishlist-table td.customer-wishlist-item-cart .button {
    font-size: 12px;
    margin-bottom: 10px;
    padding: 3px 5px;
    width: 100%; }
  #wishlist-table td.customer-wishlist-item-cart .truncated {
    margin-bottom: 10px; }
  #wishlist-table td.customer-wishlist-item-cart > p {
    margin-bottom: 0; }
  #wishlist-table td.customer-wishlist-item-cart .remove-whishlist-item {
    text-align: center; }
  #wishlist-table td.customer-wishlist-item-cart .btn-remove {
    vertical-align: top; }

#wishlist-table td.customer-wishlist-item-remove {
  width: 20px; }

#wishlist-table td .button,
#wishlist-table td button {
  white-space: normal; }

#wishlist-table .price-box {
  font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
  font-size: 12px; }
  #wishlist-table .price-box .price {
    color: #003b5f; }

#wishlist-table .giftregisty-add {
  margin-top: 5px; }
  #wishlist-table .giftregisty-add .change {
    display: none; }
  #wishlist-table .giftregisty-add li {
    cursor: pointer;
    color: #1f86bd;
    margin-bottom: 3px; }

#wishlist-table .truncated .details {
  background: none;
  color: #1f86bd; }

#wishlist-table td[data-rwd-label]:before {
  font-weight: 600; }

@media only screen and (max-width: 1199px) {
  #wishlist-table.clean-table td {
    padding-left: 10px;
    padding-right: 10px; } }

@media only screen and (max-width: 979px) {
  #wishlist-table.clean-table td {
    padding-left: 5px;
    padding-right: 5px; }
    #wishlist-table.clean-table td textarea {
      height: 100px; }
    #wishlist-table.clean-table td.customer-wishlist-item-cart {
      width: 110px; }
  #wishlist-table .product-name {
    font-size: 13px; } }

@media only screen and (max-width: 770px) {
  #wishlist-table:after {
    content: '';
    display: table;
    clear: both; }
  #wishlist-table .product-name {
    font-size: 20px; }
  #wishlist-table textarea {
    height: 68px;
    max-width: 100%; }
  #wishlist-table .item-manage {
    max-width: 100%; }
  #wishlist-table tr {
    position: relative; }
    #wishlist-table tr:after {
      content: '';
      display: table;
      clear: both; }
  #wishlist-table td.customer-wishlist-item-image {
    width: 70px; }
    #wishlist-table td.customer-wishlist-item-image img {
      width: 70px;
      height: 70px; }
  #wishlist-table td.customer-wishlist-item-cart p {
    margin-bottom: 0; }
  #wishlist-table td.customer-wishlist-item-cart .remove-whishlist-item {
    margin-right: 0;
    padding-top: 4px; }
  #wishlist-table td.customer-wishlist-item-cart {
    padding-right: 15px; } }

@media only screen and (max-width: 599px) {
  #wishlist-table td.customer-wishlist-item-quantity {
    padding-left: 0; }
  #wishlist-table td.customer-wishlist-item-image,
  #wishlist-table th.customer-wishlist-item-image {
    display: none; } }

@media only screen and (max-width: 479px) {
  #wishlist-table tr {
    position: relative; }
  #wishlist-table th.customer-wishlist-item-image {
    display: block; }
  #wishlist-table td.customer-wishlist-item-image, #wishlist-table td.customer-wishlist-item-info, #wishlist-table td.customer-wishlist-item-quantity, #wishlist-table td.customer-wishlist-item-price, #wishlist-table td.customer-wishlist-item-cart {
    width: 100%;
    padding-left: 0;
    padding-right: 0;
    empty-cells: hide; }
  #wishlist-table td.customer-wishlist-item-image {
    display: block;
    overflow: hidden; }
    #wishlist-table td.customer-wishlist-item-image a {
      float: left; }
      #wishlist-table td.customer-wishlist-item-image a img {
        width: 113px;
        height: 113px; }
  #wishlist-table td.customer-wishlist-item-quantity, #wishlist-table td.customer-wishlist-item-price {
    text-align: left; }
    #wishlist-table td.customer-wishlist-item-quantity:before, #wishlist-table td.customer-wishlist-item-price:before {
      float: left;
      margin-right: 15px; }
    #wishlist-table td.customer-wishlist-item-quantity .cart-cell, #wishlist-table td.customer-wishlist-item-price .cart-cell {
      text-align: left; }
    #wishlist-table td.customer-wishlist-item-quantity .price-box, #wishlist-table td.customer-wishlist-item-price .price-box {
      margin-top: 0; }
  #wishlist-table td.customer-wishlist-item-cart .cart-cell {
    float: left;
    width: 48%; }
  #wishlist-table td.customer-wishlist-item-cart > p {
    float: right;
    width: 48%; }
  #wishlist-table td.customer-wishlist-item-remove {
    position: absolute;
    top: 15px;
    right: 0px;
    display: block;
    padding: 0px;
    height: 20px; }
  #wishlist-table.clean-table td.customer-wishlist-item-cart {
    width: 100%; } }

/* ============================================ *
 * Wishlist Sidebar
 * ============================================ */
.block-wishlist .mini-products-list > li:not(:last-child) {
  padding-bottom: 5px; }

.block-wishlist .product-details .product-name {
  padding-top: 0;
  margin-bottom: 5px; }

.block-wishlist .price-box {
  float: left;
  margin: 0; }

.block-wishlist .price-box,
.block-wishlist .price-box .price,
.block-wishlist .link-cart {
  font-size: 12px; }

.block-wishlist .link-cart {
  float: left;
  text-transform: uppercase;
  margin-right: 7px;
  padding-right: 7px;
  border-right: 1px solid #EDEDED; }

/* ============================================ *
 * Checkout - Mini cart
 * ============================================ */
.header-minicart {
  display: inline-block; }
  .header-minicart .minicart-message {
    display: block;
    padding: 10px; }
  .header-minicart .empty {
    padding: 10px;
    text-align: center; }
  .header-minicart .minicart-wrapper {
    clear: both;
    position: relative; }
    .header-minicart .minicart-wrapper:before, .header-minicart .minicart-wrapper:after {
      content: '';
      position: absolute;
      top: 0px;
      left: 0px;
      width: 100%;
      height: 100%;
      display: none; }
    .header-minicart .minicart-wrapper:before {
      background-color: white;
      opacity: 0.8;
      z-index: 2; }
    .header-minicart .minicart-wrapper:after {
      background-image: url("../images/opc-ajax-loader.gif");
      background-repeat: no-repeat;
      background-position: center;
      z-index: 3; }
    .header-minicart .minicart-wrapper.loading {
      position: relative; }
      .header-minicart .minicart-wrapper.loading:before, .header-minicart .minicart-wrapper.loading:after {
        display: block; }
  .header-minicart .block-cart {
    display: none; }
  .header-minicart .block-subtitle {
    color: #50A4CF;
    font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
    font-size: 10px;
    font-weight: bold;
    line-height: 1.4;
    padding: 5px;
    text-align: center;
    text-transform: uppercase;
    margin-bottom: 0px; }
    .header-minicart .block-subtitle .close {
      width: 40px;
      float: right;
      display: block;
      color: #003b5f;
      text-decoration: none;
      font-weight: normal;
      font-size: 30px;
      position: absolute;
      top: -8px;
      right: -3px; }
  .header-minicart .mini-products-list {
    padding: 10px;
    padding-top: 0px; }
    .header-minicart .mini-products-list li {
      padding: 8px 5px 8px 11px;
      border-bottom: 1px solid #DDDDDD;
      position: relative; }
      .header-minicart .mini-products-list li.last {
        border: none; }
      .header-minicart .mini-products-list li .product-details {
        position: relative; }
  .header-minicart .product-details .product-name {
    padding-top: 0px;
    font-weight: bold; }
    .header-minicart .product-details .product-name a {
      color: #1f86bd; }
  .header-minicart .info-wrapper {
    margin-bottom: 0.5em; }
    .header-minicart .info-wrapper th {
      text-transform: uppercase;
      padding-right: 10px; }
    .header-minicart .info-wrapper td {
      color: #003b5f;
      clear: right; }
    .header-minicart .info-wrapper .qty-wrapper td {
      height: 33px;
      line-height: 33px; }
    .header-minicart .info-wrapper .qty {
      padding-left: 4px;
      padding-right: 4px;
      margin-right: 2px;
      width: 3.2em;
      text-align: center;
      height: 30px; }
    .header-minicart .info-wrapper .quantity-button {
      opacity: 0;
      transition: opacity 100ms; }
      .header-minicart .info-wrapper .quantity-button[disabled] {
        cursor: default; }
      .header-minicart .info-wrapper .quantity-button.visible {
        opacity: 1; }
  .header-minicart .subtotal {
    background-color: #DDDDDD;
    text-align: center;
    line-height: 2em; }
    .header-minicart .subtotal .label {
      color: white;
      text-transform: uppercase; }
    .header-minicart .subtotal .price {
      color: #003b5f; }
  .header-minicart .minicart-actions {
    padding: 10px;
    margin-top: 0px;
    overflow: hidden;
    position: relative;
    text-align: center; }
    .header-minicart .minicart-actions .checkout-button {
      min-width: 145px; }
    .header-minicart .minicart-actions .cart-link {
      height: 33px;
      line-height: 39px;
      text-transform: uppercase;
      font-size: 13px; }
    .header-minicart .minicart-actions .paypal-logo .paypal-or {
      line-height: 1.6; }
  .header-minicart #minicart-error-message {
    text-align: center;
    color: red;
    display: none; }
  .header-minicart #minicart-success-message {
    text-align: center;
    color: green;
    display: none; }
  .header-minicart .jcarousel-control-prev,
  .header-minicart .jcarousel-control-next {
    display: none; }

.header-minicart.skip-active .block-cart,
.block-cart.skip-active {
  display: block; }

@media only screen and (min-width: 771px) {
  .checkout-types.minicart {
    float: none;
    text-align: center; } }

@media only screen and (max-width: 479px) {
  .header-minicart a.skip-cart {
    z-index: 1; } }

@media only screen and (max-width: 770px) {
  .header-minicart .subtotal .label {
    color: #003b5f; }
  .header-minicart .minicart-wrapper:before {
    background-color: #EDEDED; }
  .header-minicart .quantity-button {
    float: none; }
  .header-minicart .header-minicart .block-cart {
    padding: 15px; }
  .header-minicart .header-minicart .block-subtitle {
    padding-top: 59px; }
  .header-minicart .minicart-actions {
    padding-bottom: 33px; }
    .header-minicart .minicart-actions .cart-link {
      bottom: 0;
      right: 10px;
      position: absolute; }
    .header-minicart .minicart-actions .checkout-types.minicart li {
      display: inline-block; }
      .header-minicart .minicart-actions .checkout-types.minicart li .paypal-logo > a {
        display: inline; }
      .header-minicart .minicart-actions .checkout-types.minicart li .paypal-logo .bml_button {
        display: inline-block;
        vertical-align: top; }
      .header-minicart .minicart-actions .checkout-types.minicart li .paypal-logo .paypal-or {
        width: auto;
        float: none;
        display: inline;
        margin: 0 10px 5px 10px;
        line-height: 40px; } }

@media only screen and (max-width: 740px) {
  .header-minicart .minicart-actions .cart-link {
    right: auto;
    left: 0;
    text-align: center;
    width: 100%; }
  .header-minicart .minicart-actions .checkout-types.minicart li .paypal-logo .paypal-or,
  .header-minicart .minicart-actions .checkout-types.minicart li .paypal-logo .paypal-button {
    width: 100%;
    display: block;
    margin-left: 0; }
  .header-minicart .minicart-actions .checkout-types.minicart li .paypal-logo .paypal-or {
    line-height: 1.6; } }

@media only screen and (max-width: 599px) {
  .header-minicart .minicart-actions .checkout-button {
    width: 100%; } }

/* ============================================ *
 * Search - Auto Suggest
 * ============================================ */
.search-autocomplete {
  left: 0 !important;
  overflow: visible !important;
  position: relative !important;
  top: 15px !important;
  width: 100% !important;
  z-index: 200; }
  .search-autocomplete ul {
    background-color: #FFFFFF;
    border: 1px solid #1f86bd;
    left: 0;
    padding-left: 0;
    position: absolute;
    top: 0;
    width: 100%; }
    .search-autocomplete ul li {
      border-bottom: 1px solid #F4F4F4;
      color: #1f86bd;
      cursor: pointer;
      font-size: 12px;
      padding: 4px 6px;
      text-align: left; }
      .search-autocomplete ul li:hover {
        color: #1b76a7; }
      .search-autocomplete ul li.selected {
        background-color: #1f86bd;
        color: white; }
      .search-autocomplete ul li .amount {
        float: right;
        font-weight: bold; }
      .search-autocomplete ul li:last-child {
        border-bottom: none; }
  .search-autocomplete:before {
    content: '';
    position: absolute;
    width: 0;
    height: 0;
    display: block;
    border-right: 7px solid transparent;
    border-left: 7px solid transparent;
    border-bottom: 7px solid #1f86bd;
    border-top: none;
    left: 50%;
    top: -7px; }

/* ============================================ *
 * Search - Advanced
 * ============================================ */
.advanced-search {
  background: #F4F4F4;
  border: 1px solid #EDEDED;
  padding: 35px; }
  .advanced-search select.multiselect option {
    border-bottom: 1px solid #EDEDED;
    padding: 2px 5px; }

@media only screen and (max-width: 479px) {
  .advanced-search {
    padding: 15px; } }

/* ============================================ *
 * Account - Reviews
 * ============================================ */
.product-review .product-img-box p.label {
  border-bottom: 1px solid #CCCCCC;
  font-size: 20px;
  font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
  margin-top: 20px;
  padding-bottom: 10px;
  text-transform: uppercase; }

.product-review .product-img-box .rating-box {
  margin: 15px 0; }

.product-review .product-details h2 {
  border-bottom: 1px solid #CCCCCC;
  color: #3399CC;
  font-size: 20px;
  font-weight: 600;
  font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
  padding-bottom: 10px; }

.product-review .ratings-table {
  font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif; }
  .product-review .ratings-table th {
    padding-right: 10px; }
  .product-review .ratings-table tr {
    float: left;
    font-size: 12px;
    margin-right: 10px;
    text-transform: uppercase; }

.product-review .ratings-description dt {
  border-bottom: 1px solid #CCCCCC;
  font-size: 20px;
  font-weight: 400;
  font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
  margin-top: 20px;
  padding: 10px 0;
  text-transform: uppercase; }

.product-review .ratings-description dd {
  color: #737373;
  font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
  font-size: 13px; }

@media only screen and (min-width: 771px) {
  .product-review .ratings-table tr {
    float: none; } }

@media only screen and (min-width: 1126px) {
  .product-review .ratings-table tr {
    float: left;
    margin-right: 15px; } }

@media only screen and (max-width: 320px) {
  .product-review .ratings-table tr {
    float: none; } }

/* ============================================ *
 * CMS Pages
 * ============================================ */
.cms-page-view .page-title h1,
.cms-page-view .page-title h3,
.cms-page-view .page-head h1,
.cms-page-view .page-head h3,
.cms-no-route .page-title h1,
.cms-no-route .page-title h3,
.cms-no-route .page-head h1,
.cms-no-route .page-head h3 {
  border: none; }

.cms-page-view .std img,
.cms-no-route .std img {
  max-width: 100%; }

.cms-page-view .std p,
.cms-no-route .std p {
  color: #003b5f;
  font-family: Arial, sans-serif;
  font-size: 14px;
  line-height: 24px;
  color: #333333; }

.cms-page-view .std h1,
.cms-no-route .std h1 {
  color: #003b5f; }

.cms-page-view .std h2,
.cms-no-route .std h2 {
  color: #003b5f; }

.cms-page-view .std li,
.cms-no-route .std li {
  color: #003b5f;
  font-family: Arial, sans-serif;
  font-size: 14px;
  font-style: italic;
  line-height: 24px; }

.cms-page-view .col-left:after,
.cms-no-route .col-left:after {
  content: '';
  display: table;
  clear: both; }

.cms-no-route .std h2 {
  color: #003b5f;
  font-size: 48px;
  line-height: 1;
  text-transform: uppercase; }
  @media only screen and (min-width: 600px) {
    .cms-no-route .std h2 {
      font-size: 68px; } }

.cms-no-route .std div.left {
  max-width: 680px;
  float: left; }

.cms-no-route .std img {
  width: 100%; }

.cms-no-route .std .ant404 {
  max-width: 220px;
  float: right; }

.cms-page-view .std .messages,
.cms-home .std .messages,
.cms-no-route .std .messages {
  margin-bottom: 10px; }
  .cms-page-view .std .messages ul,
  .cms-home .std .messages ul,
  .cms-no-route .std .messages ul {
    margin-bottom: 0; }
  .cms-page-view .std .messages li,
  .cms-home .std .messages li,
  .cms-no-route .std .messages li {
    list-style: none;
    margin-left: 0;
    font-style: normal;
    font-family: Arial, sans-serif; }

#accordion .toggle-tabs {
  display: none; }

#accordion > dl > dt {
  margin: 0;
  margin-bottom: 10px;
  color: #003b5f;
  font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
  font-size: 14px;
  font-weight: normal;
  font-style: normal;
  line-height: 1.4;
  -moz-user-select: none;
  -ms-user-select: none;
  -webkit-user-select: none;
  -o-user-select: none;
  user-select: none;
  font-weight: normal;
  margin-bottom: 0px;
  padding: 7px 10px 7px 24px;
  border-width: 1px;
  border-style: solid;
  border-color: #CCCCCC;
  position: relative;
  background-color: #F4F4F4;
  display: block; }
  #accordion > dl > dt:after {
    content: '';
    position: absolute;
    width: 0;
    height: 0;
    display: block;
    border-right: 4px solid transparent;
    border-left: 4px solid transparent;
    border-top: 4px solid #1f86bd;
    border-bottom: none;
    left: 10px;
    top: 50%;
    margin-top: -3px; }
  #accordion > dl > dt:hover {
    background-color: shade(#F4F4F4, 3%); }

#accordion > dl > dd {
  padding: 10px;
  margin: 0;
  border-width: 0 1px;
  border-style: solid;
  border-color: #CCCCCC; }

#accordion > dl > dd:last-child {
  border-width: 0 1px 1px 1px; }

#accordion li {
  position: relative;
  overflow: hidden; }
  #accordion li .plusimage h2 {
    margin-right: 10px; }

.page-sitemap .links {
  display: block;
  text-align: right;
  margin: 0 20px 0 0; }
  .page-sitemap .links a {
    position: relative; }

.page-sitemap .sitemap {
  padding: 0 20px;
  margin: 15px 0;
  font-size: 12px; }
  .page-sitemap .sitemap li {
    margin: 3px 0; }

.contacts-index-index h1 {
  border: none; }

#contactForm {
  padding-left: 40px; }
  #contactForm h2 {
    display: none; }
  #contactForm:after {
    content: '';
    display: table;
    clear: both; }
  #contactForm .fieldset .legend + .required {
    margin: 0; }

@media only screen and (max-width: 770px) {
  #contactForm {
    padding-left: 0; } }

/* ============================================ *
 * Pricing Conditions
 * ============================================ */
.price-box .minimal-price-link .label {
  color: #CF5050;
  font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
  font-size: 12px;
  text-transform: uppercase; }

.map-info {
  white-space: nowrap; }

.catalog-product-view .map-info {
  white-space: normal; }
  .catalog-product-view .map-info > span {
    float: right;
    margin-bottom: 5px; }
  .catalog-product-view .map-info .price-box.map-info > a {
    float: right;
    width: 100%; }

/* ============================================ *
 * Cookies
 * ============================================ */
.notice-cookie .notice-inner {
  padding-bottom: 0; }
  .notice-cookie .notice-inner:after {
    content: '';
    display: table;
    clear: both; }

.notice-cookie .notice-text {
  float: left;
  max-width: 90%;
  padding-top: 4px;
  text-align: left; }
  .notice-cookie .notice-text p {
    padding-bottom: 14.5px;
    line-height: 1.3; }

.notice-cookie .actions {
  float: left;
  text-align: right;
  padding-bottom: 14.5px; }

@media only screen and (max-width: 979px) {
  .notice-cookie .notice-text {
    max-width: 86%; } }

@media only screen and (max-width: 770px) {
  .notice-cookie {
    padding: 0 20px; }
    .notice-cookie .notice-text {
      max-width: 82%;
      padding-top: 0; } }

@media only screen and (max-width: 620px) {
  .notice-cookie {
    padding: 0 20px; }
    .notice-cookie .notice-inner {
      background-position: left 10px; }
      .notice-cookie .notice-inner:after {
        content: '';
        display: table;
        clear: both; }
    .notice-cookie .notice-text {
      float: none;
      max-width: 100%;
      padding-top: 0; }
    .notice-cookie .actions {
      text-align: left; } }

/* ============================================ *
 * Tags
 * ============================================ */
#addTagForm button {
  margin-top: 5px;
  margin-bottom: 10px; }

#addTagForm .form-add {
  margin-top: 10px; }

.product-tags {
  background-color: #F4F4F4;
  border: 1px solid #CCCCCC;
  float: left;
  margin-bottom: 10px;
  padding: 5px 1% 10px;
  width: 98%; }

.product-tags li {
  float: left;
  margin-right: 15px; }

.product-tags li.last {
  margin-right: 0px; }

.tags-list {
  float: left;
  width: 100%;
  margin-bottom: 10px; }

.tags-list > li {
  float: left;
  margin-right: 10px; }

.block-tags .actions > a {
  font-size: 12px; }

.my-tag-edit .button.btn-remove {
  padding: 0; }
  .my-tag-edit .button.btn-remove:after {
    color: white; }

@media only screen and (max-width: 770px) {
  .tags-list > li,
  .tags-list {
    float: none; } }

/* ============================================ *
 * Captcha
 * ============================================ */
.captcha-note {
  clear: left;
  padding-top: 5px; }

.captcha-image {
  float: left;
  display: inline;
  max-width: 100%;
  position: relative;
  width: 258px;
  margin-bottom: 10px; }

.captcha-image .captcha-img {
  border: 1px solid #b6b6b6;
  vertical-align: bottom;
  width: 100%; }

.registered-users .captcha-image {
  margin: 0; }

.captcha-reload {
  cursor: pointer;
  position: absolute;
  top: 2px;
  right: 2px; }

.captcha-reload.refreshing {
  animation: rotate 1.5s infinite linear;
  -webkit-animation: rotate 1.5s infinite linear;
  -moz-animation: rotate 1.5s infinite linear; }

.customer-account-create .scaffold-form .captcha-input-container label:first-child {
  width: 100%; }

.captcha-reload {
  position: absolute;
  right: 4px;
  top: 4px; }

.captcha-img {
  border: 20px solid #bbb; }

.captcha-input-container {
  margin-bottom: 10px; }

.control.newsletter-box, .captcha-input-container, .captcha-img-container {
  float: none;
  clear: both; }
  .control.newsletter-box:after, .captcha-input-container:after, .captcha-img-container:after {
    content: '';
    content: '';
    display: table;
    clear: both; }

/* ============================================ *
 * Checkout Billing Fix to place the Captcha properly
 * ============================================ */
#co-billing-form ul.form-list > .control {
  float: left;
  margin: 0 0 5px;
  width: 100%; }

/* ============================================ *
 * Account - Orders, Invoices, Credit Memos.
 * ============================================ */
@media only screen and (max-width: 479px) {
  .sales-order-invoice .sub-title,
  .sales-order-creditmemo .sub-title,
  .sales-order-shipment .sub-title {
    float: left;
    font-size: 17px;
    text-align: center;
    width: 100%; }
  .sales-order-invoice .order-links,
  .sales-order-creditmemo .order-links,
  .sales-order-shipment .order-links {
    text-align: center;
    width: 100%; } }

/* ============================================ *
 * Recurring Profiles
 * ============================================ */
#recurring_profile_list_view th {
  white-space: normal; }
  #recurring_profile_list_view th span {
    white-space: inherit; }

@media only screen and (max-width: 479px) {
  #recurring_profile_list_view {
    font-size: 12px; }
    #recurring_profile_list_view a {
      font-size: inherit; }
    #recurring_profile_list_view th,
    #recurring_profile_list_view td {
      padding: 2px; } }

.recurring-profiles-title {
  float: left; }
  .recurring-profiles-title h1 {
    margin-bottom: 7px; }

body.customer-account .my-account .title-buttons.recurring-profiles-title-buttons {
  float: right;
  text-align: right;
  margin-bottom: 35px; }
  @media only screen and (max-width: 479px) {
    body.customer-account .my-account .title-buttons.recurring-profiles-title-buttons {
      text-align: center;
      float: none; } }
  body.customer-account .my-account .title-buttons.recurring-profiles-title-buttons .button {
    position: static; }

.recurring-profiles-messages:after {
  content: '';
  display: table;
  clear: both; }

#recurring_start_date_trig {
  display: inline; }

/* ============================================ *
 * Billing Agreements
 * ============================================ */
.billing-agreements .info-box {
  margin-bottom: 35px; }
  .billing-agreements .info-box:after {
    content: '';
    display: table;
    clear: both; }
  .billing-agreements .info-box .form-list {
    max-width: 400px;
    width: 100%; }
  .billing-agreements .info-box .box-title {
    margin-top: 20px;
    margin-bottom: 7px; }
  .billing-agreements .info-box .button {
    float: right;
    margin-top: 7px; }
    @media only screen and (max-width: 479px) {
      .billing-agreements .info-box .button {
        width: 100%;
        float: none; } }

.billing-agreements #payment_method {
  width: 100%;
  margin-top: 7px;
  margin-bottom: 7px; }

.billing-agreement-view-header-wrapper .heading {
  max-width: 80%; }
  @media only screen and (max-width: 479px) {
    .billing-agreement-view-header-wrapper .heading {
      max-width: 100%; } }

.billing-agreement-details td, .billing-agreement-details th {
  padding: 3.5px; }

@media only screen and (max-width: 979px) {
  .billing-agreements .data-table .created-at,
  .billing-agreements .data-table .updated-at {
    display: none; } }

/* ============================================ *
 * Popular Search Terms Cloud
 * ============================================ */
.catalogsearch-term-popular .tags-list {
  float: left;
  width: 100%; }

.catalogsearch-term-popular .tags-list > li {
  float: left;
  height: 40px;
  margin-right: 25px; }

/* ============================================ *
 * Widgets
 * ============================================ */
/* -------------------------------------------- *
 * Add to cart by SKU
 */
.sidebar .widget-addbysku .sku-table .input-text:not(.qty) {
  width: 100%; }
  @media only screen and (min-width: 771px) {
    .sidebar .widget-addbysku .sku-table .input-text:not(.qty) {
      max-width: 100px; } }

.widget {
  clear: both; }

.widget .pager {
  float: none;
  width: 100%; }

@media only screen and (min-width: 1199px) {
  .col2-left-layout .col-main .widget,
  .col2-right-layout .col-main .widget,
  .col3-layout .col-main .widget {
    /* Config: Columns + flexible gutter */
    /* Undo three-column config */
    /* Set column config */
    /* Config: Columns + flexible gutter */
    /* Undo three-column config */
    /* Set column config */ }
    .col2-left-layout .col-main .widget .products-grid--max-4-col-widget > li:nth-child(odd),
    .col2-right-layout .col-main .widget .products-grid--max-4-col-widget > li:nth-child(odd),
    .col3-layout .col-main .widget .products-grid--max-4-col-widget > li:nth-child(odd) {
      clear: none; }
    .col2-left-layout .col-main .widget .products-grid--max-4-col-widget > li:nth-child(3n+1),
    .col2-right-layout .col-main .widget .products-grid--max-4-col-widget > li:nth-child(3n+1),
    .col3-layout .col-main .widget .products-grid--max-4-col-widget > li:nth-child(3n+1) {
      clear: none; }
    .col2-left-layout .col-main .widget .products-grid--max-4-col-widget > li:nth-child(even),
    .col2-left-layout .col-main .widget .products-grid--max-4-col-widget > li:nth-child(3n),
    .col2-right-layout .col-main .widget .products-grid--max-4-col-widget > li:nth-child(even),
    .col2-right-layout .col-main .widget .products-grid--max-4-col-widget > li:nth-child(3n),
    .col3-layout .col-main .widget .products-grid--max-4-col-widget > li:nth-child(even),
    .col3-layout .col-main .widget .products-grid--max-4-col-widget > li:nth-child(3n) {
      margin-right: 2.24719%; }
    .col2-left-layout .col-main .widget .products-grid--max-4-col-widget > li,
    .col2-right-layout .col-main .widget .products-grid--max-4-col-widget > li,
    .col3-layout .col-main .widget .products-grid--max-4-col-widget > li {
      margin-right: 2.24719%; }
    .col2-left-layout .col-main .widget .products-grid--max-4-col-widget > li,
    .col2-right-layout .col-main .widget .products-grid--max-4-col-widget > li,
    .col3-layout .col-main .widget .products-grid--max-4-col-widget > li {
      width: 23.31461%;
      margin-right: 2.24719%; }
    .col2-left-layout .col-main .widget .products-grid--max-4-col-widget > li:nth-child(4n+1),
    .col2-right-layout .col-main .widget .products-grid--max-4-col-widget > li:nth-child(4n+1),
    .col3-layout .col-main .widget .products-grid--max-4-col-widget > li:nth-child(4n+1) {
      clear: left; }
    .col2-left-layout .col-main .widget .products-grid--max-4-col-widget > li:nth-child(4n),
    .col2-right-layout .col-main .widget .products-grid--max-4-col-widget > li:nth-child(4n),
    .col3-layout .col-main .widget .products-grid--max-4-col-widget > li:nth-child(4n) {
      margin-right: 0; }
    .col2-left-layout .col-main .widget .products-grid--max-5-col-widget > li:nth-child(odd),
    .col2-right-layout .col-main .widget .products-grid--max-5-col-widget > li:nth-child(odd),
    .col3-layout .col-main .widget .products-grid--max-5-col-widget > li:nth-child(odd) {
      clear: none; }
    .col2-left-layout .col-main .widget .products-grid--max-5-col-widget > li:nth-child(3n+1),
    .col2-right-layout .col-main .widget .products-grid--max-5-col-widget > li:nth-child(3n+1),
    .col3-layout .col-main .widget .products-grid--max-5-col-widget > li:nth-child(3n+1) {
      clear: none; }
    .col2-left-layout .col-main .widget .products-grid--max-5-col-widget > li:nth-child(even),
    .col2-left-layout .col-main .widget .products-grid--max-5-col-widget > li:nth-child(3n),
    .col2-right-layout .col-main .widget .products-grid--max-5-col-widget > li:nth-child(even),
    .col2-right-layout .col-main .widget .products-grid--max-5-col-widget > li:nth-child(3n),
    .col3-layout .col-main .widget .products-grid--max-5-col-widget > li:nth-child(even),
    .col3-layout .col-main .widget .products-grid--max-5-col-widget > li:nth-child(3n) {
      margin-right: 2.24719%; }
    .col2-left-layout .col-main .widget .products-grid--max-5-col-widget > li,
    .col2-right-layout .col-main .widget .products-grid--max-5-col-widget > li,
    .col3-layout .col-main .widget .products-grid--max-5-col-widget > li {
      margin-right: 2.24719%; }
    .col2-left-layout .col-main .widget .products-grid--max-5-col-widget > li,
    .col2-right-layout .col-main .widget .products-grid--max-5-col-widget > li,
    .col3-layout .col-main .widget .products-grid--max-5-col-widget > li {
      width: 18.20225%;
      margin-right: 2.24719%; }
    .col2-left-layout .col-main .widget .products-grid--max-5-col-widget > li:nth-child(5n+1),
    .col2-right-layout .col-main .widget .products-grid--max-5-col-widget > li:nth-child(5n+1),
    .col3-layout .col-main .widget .products-grid--max-5-col-widget > li:nth-child(5n+1) {
      clear: left; }
    .col2-left-layout .col-main .widget .products-grid--max-5-col-widget > li:nth-child(5n),
    .col2-right-layout .col-main .widget .products-grid--max-5-col-widget > li:nth-child(5n),
    .col3-layout .col-main .widget .products-grid--max-5-col-widget > li:nth-child(5n) {
      margin-right: 0; } }

@media only screen and (min-width: 770px) {
  .col1-layout .col-main .widget {
    /* Config: Columns + flexible gutter */
    /* Undo three-column config */
    /* Set column config */
    /* Config: Columns + flexible gutter */
    /* Undo three-column config */
    /* Set column config */ }
    .col1-layout .col-main .widget .products-grid--max-4-col-widget > li:nth-child(odd) {
      clear: none; }
    .col1-layout .col-main .widget .products-grid--max-4-col-widget > li:nth-child(3n+1) {
      clear: none; }
    .col1-layout .col-main .widget .products-grid--max-4-col-widget > li:nth-child(even),
    .col1-layout .col-main .widget .products-grid--max-4-col-widget > li:nth-child(3n) {
      margin-right: 2.24719%; }
    .col1-layout .col-main .widget .products-grid--max-4-col-widget > li {
      margin-right: 2.24719%; }
    .col1-layout .col-main .widget .products-grid--max-4-col-widget > li {
      width: 23.31461%;
      margin-right: 2.24719%; }
    .col1-layout .col-main .widget .products-grid--max-4-col-widget > li:nth-child(4n+1) {
      clear: left; }
    .col1-layout .col-main .widget .products-grid--max-4-col-widget > li:nth-child(4n) {
      margin-right: 0; }
    .col1-layout .col-main .widget .products-grid--max-5-col-widget > li:nth-child(odd) {
      clear: none; }
    .col1-layout .col-main .widget .products-grid--max-5-col-widget > li:nth-child(3n+1) {
      clear: none; }
    .col1-layout .col-main .widget .products-grid--max-5-col-widget > li:nth-child(even),
    .col1-layout .col-main .widget .products-grid--max-5-col-widget > li:nth-child(3n) {
      margin-right: 2.24719%; }
    .col1-layout .col-main .widget .products-grid--max-5-col-widget > li {
      margin-right: 2.24719%; }
    .col1-layout .col-main .widget .products-grid--max-5-col-widget > li {
      width: 18.20225%;
      margin-right: 2.24719%; }
    .col1-layout .col-main .widget .products-grid--max-5-col-widget > li:nth-child(5n+1) {
      clear: left; }
    .col1-layout .col-main .widget .products-grid--max-5-col-widget > li:nth-child(5n) {
      margin-right: 0; } }

/* ============================================ *
 * Checkout - Multiple Addresses
 * ============================================ */
body[class*="checkout-multishipping-"] .checkout-progress {
  width: 100%;
  float: left;
  margin-bottom: 25px; }
  body[class*="checkout-multishipping-"] .checkout-progress > li {
    float: left;
    width: 20%;
    text-align: center;
    padding: 8px 1% 6px;
    background: #F4F4F4;
    text-transform: uppercase;
    border-bottom: 1px solid #CCCCCC;
    border-right: 1px solid #CCCCCC;
    margin-bottom: 10px;
    font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif; }
    body[class*="checkout-multishipping-"] .checkout-progress > li.active {
      background-color: #DDDDDD; }
    body[class*="checkout-multishipping-"] .checkout-progress > li.last {
      border-right: 0px; }

body[class*="checkout-multishipping-"] .page-title {
  float: left;
  width: 100%;
  margin-bottom: 15px; }
  body[class*="checkout-multishipping-"] .page-title h1 {
    border: 0 none;
    float: left;
    margin-top: 2px;
    margin-right: 2%; }
  body[class*="checkout-multishipping-"] .page-title .button {
    float: right; }

body[class*="checkout-multishipping-"] .multiple-checkout > h2 {
  text-transform: none;
  font-size: 17px;
  margin-bottom: 15px; }

body[class*="checkout-multishipping-"] .messages {
  float: left;
  width: 100%; }

body[class*="checkout-multishipping-"] .col-2.col-wide {
  width: 66%; }

body[class*="checkout-multishipping-"] .col-1.col-narrow {
  width: 30%; }

body[class*="checkout-multishipping-"] .actions {
  margin-bottom: 10px; }

body[class*="checkout-multishipping-"] .grand-total {
  text-align: right;
  font-size: 20px;
  font-weight: bold; }

body[class*="checkout-multishipping-"] #checkout-review-submit {
  float: right; }

body[class*="checkout-multishipping-"] #review-buttons-container {
  float: right;
  text-align: right; }

.checkout-multishipping-addresses .btn-remove2 {
  text-indent: -5555px;
  display: block;
  width: 22px;
  height: 22px; }

.checkout-multishipping-shipping .gift-messages {
  margin-top: 20px; }

.checkout-multishipping-shipping .gift-messages-form {
  margin-top: 15px; }
  .checkout-multishipping-shipping .gift-messages-form h4 {
    margin-top: 15px;
    margin-bottom: 5px; }
  .checkout-multishipping-shipping .gift-messages-form .form-list {
    margin-top: 10px;
    margin-bottom: 25px; }
  .checkout-multishipping-shipping .gift-messages-form .item {
    margin-top: 15px; }

.checkout-multishipping-shipping .col-1 .box-title h2, .checkout-multishipping-shipping .col-1 .box-title h3, .checkout-multishipping-shipping .col-1 .box-title h4, .checkout-multishipping-shipping .col-2 .box-title h2, .checkout-multishipping-shipping .col-2 .box-title h3, .checkout-multishipping-shipping .col-2 .box-title h4,
.checkout-multishipping-billing .col-1 .box-title h2,
.checkout-multishipping-billing .col-1 .box-title h3,
.checkout-multishipping-billing .col-1 .box-title h4,
.checkout-multishipping-billing .col-2 .box-title h2,
.checkout-multishipping-billing .col-2 .box-title h3,
.checkout-multishipping-billing .col-2 .box-title h4,
.checkout-multishipping-overview .col-1 .box-title h2,
.checkout-multishipping-overview .col-1 .box-title h3,
.checkout-multishipping-overview .col-1 .box-title h4,
.checkout-multishipping-overview .col-2 .box-title h2,
.checkout-multishipping-overview .col-2 .box-title h3,
.checkout-multishipping-overview .col-2 .box-title h4 {
  font-weight: normal;
  width: 100%;
  background: #F4F4F4;
  border-bottom: 1px solid #CCCCCC;
  padding: 10px;
  font-size: 14px; }

.checkout-multishipping-shipping .col-1 > h4, .checkout-multishipping-shipping .col-2 > h4,
.checkout-multishipping-billing .col-1 > h4,
.checkout-multishipping-billing .col-2 > h4,
.checkout-multishipping-overview .col-1 > h4,
.checkout-multishipping-overview .col-2 > h4 {
  font-weight: normal;
  width: 100%;
  background: #F4F4F4;
  border-bottom: 1px solid #CCCCCC;
  padding: 10px;
  font-size: 14px; }

.checkout-multishipping-shipping .col-1 .box-content, .checkout-multishipping-shipping .col-2 .box-content,
.checkout-multishipping-billing .col-1 .box-content,
.checkout-multishipping-billing .col-2 .box-content,
.checkout-multishipping-overview .col-1 .box-content,
.checkout-multishipping-overview .col-2 .box-content {
  margin-bottom: 25px;
  padding-left: 10px;
  margin-top: 10px; }

.checkout-multishipping-billing .sp-methods dt {
  float: left;
  width: 100%; }

#multiship-addresses-table > tbody > tr > td.a-center.last > a {
  background-image: none; }

#review-order-form > div:nth-child(3) > div.divider {
  width: 100%;
  clear: both; }

@media only screen and (max-width: 979px) {
  body[class*="checkout-multishipping-"] .checkout-progress span {
    word-spacing: 300px; }
  #review-order-form .col-1,
  #review-order-form .col-2 {
    float: none;
    width: auto;
    border: 0;
    padding-right: 0;
    padding-left: 0; } }

@media only screen and (max-width: 770px) {
  body[class*="checkout-multishipping-"] .checkout-progress span {
    width: 12px; }
  body[class*="checkout-multishipping-"] .checkout-progress li {
    width: 100%;
    margin: 0;
    text-align: left;
    padding-left: 3%;
    border-right: 0px; }
  body[class*="checkout-multishipping-"] .checkout-progress span {
    word-spacing: 1px;
    width: 12px; }
  body[class*="checkout-multishipping-"] .box-title {
    float: left;
    width: 100%; }
  body[class*="checkout-multishipping-"] .page-title .button {
    float: left;
    margin-bottom: 10px; }
  body[class*="checkout-multishipping-"] .linearize-table tfoot td {
    text-align: right; }
  body[class*="checkout-multishipping-"] .linearize-table select {
    width: 100%;
    min-width: 200px; }
  body[class*="checkout-multishipping-"] .col-1.col-narrow, body[class*="checkout-multishipping-"] .col-2.col-wide {
    width: 100%;
    padding: 0; } }

@media only screen and (max-width: 599px) {
  .checkout-multishipping-addresses .linearize-table tbody td[data-rwd-label] {
    text-align: left;
    padding-left: 10px;
    margin-top: 12px; } }

@media only screen and (max-width: 479px) {
  body[class*="checkout-multishipping-"] .buttons-set .back-link {
    display: block; } }

hr {
  margin: 2em 0;
  border: 1px dotted #003b5f;
  border-width: 1px 0 0 0; }

body.is-blog iframe:not([title="reCAPTCHA-Widget"]) {
  width: 100%;
  height: 300px; }

body.is-blog .page-layout--narrow {
  max-width: 680px;
  margin: auto; }

body.is-blog .page-layout--full {
  width: 100%; }

.test-device-block {
  margin: 1.5em 0; }

.wordpress-page-79 .block-blog-menu {
  display: none; }

#header-nav .nav-1 .view-all {
  display: none; }

.is-blog #header-nav {
  border-bottom: 1px dotted #003b5f; }

.is-blog .col-main {
  margin-bottom: 35px; }

.wordpress-layout-fullscreen #header-nav, .wordpress-index-index #header-nav, .wordpress-post-view #header-nav {
  border-bottom: none; }

.layout-landingpage #header-nav {
  border-bottom: none !important;
  padding-bottom: 0 !important; }

.layout-landingpage .footer {
  border-top: none; }

.layout-landingpage .post-entry hr:first-child {
  margin-top: 0 !important; }

.wordpress-post-view .main-container {
  margin-top: 0; }

.resellers.row:last-child, .people.row:last-child {
  margin-bottom: 70px; }

.wordpress-layout-col2-right #header-nav, .catalogsearch-result-index #header-nav {
  border-bottom: 1px dotted #003b5f;
  padding-bottom: 35px; }

body.is-blog .col2-right-layout .col-main,
body.is-blog .col2-right-layout .col-right {
  box-sizing: border-box; }

body.is-blog .col2-set .col-1,
body.is-blog .col2-set .col-2 {
  box-sizing: border-box; }

form .row:after, .form-wrapper .row:after {
  content: '';
  display: table;
  clear: both; }

@media only screen and (min-width: 600px) {
  form .row, .form-wrapper .row {
    margin-left: -10px;
    margin-right: -10px; } }

form .row .col-half,
form .row .col-full, .form-wrapper .row .col-half,
.form-wrapper .row .col-full {
  display: block;
  vertical-align: top;
  padding: 5px 0;
  width: 100%;
  box-sizing: border-box; }
  @media only screen and (min-width: 600px) {
    form .row .col-half,
    form .row .col-full, .form-wrapper .row .col-half,
    .form-wrapper .row .col-full {
      padding: 10px; } }
  @media only screen and (max-width: 599px) {
    form .row .col-half.submit,
    form .row .col-full.submit, .form-wrapper .row .col-half.submit,
    .form-wrapper .row .col-full.submit {
      float: right; } }

@media only screen and (min-width: 600px) {
  form .row .col-half, .form-wrapper .row .col-half {
    width: 50%;
    float: left; } }

form .row .col-full, .form-wrapper .row .col-full {
  width: 100%; }

.sidebar-items h3 {
  font-weight: normal;
  font-size: 20px;
  color: #003b5f;
  text-transform: none; }

.sidebar-items .block-recent-posts .block-title,
.sidebar-items .block-related-posts .block-title {
  display: none; }

.sidebar-items .block-recent-posts .posts-list-item,
.sidebar-items .block-related-posts .posts-list-item {
  margin: 0;
  padding-bottom: 1em; }
  @media only screen and (min-width: 771px) {
    .sidebar-items .block-recent-posts .posts-list-item:last-child,
    .sidebar-items .block-related-posts .posts-list-item:last-child {
      border-bottom: 1px dotted #003b5f; } }
  .sidebar-items .block-recent-posts .posts-list-item .featured-image,
  .sidebar-items .block-related-posts .posts-list-item .featured-image {
    margin-bottom: 1em; }
  .sidebar-items .block-recent-posts .posts-list-item a,
  .sidebar-items .block-related-posts .posts-list-item a {
    color: #003b5f;
    text-decoration: none !important; }

@media (min-width: 480px) and (max-width: 770px) {
  .sidebar-items .block-recent-posts .sidebar-posts-list:after,
  .sidebar-items .block-related-posts .sidebar-posts-list:after {
    content: '';
    display: table;
    clear: both; }
  .sidebar-items .block-recent-posts .posts-list-item,
  .sidebar-items .block-related-posts .posts-list-item {
    float: left;
    width: 50%;
    display: block;
    padding: 10px;
    box-sizing: border-box; }
  .sidebar-items .block-recent-posts .sidebar-posts-list,
  .sidebar-items .block-related-posts .sidebar-posts-list {
    margin-left: -10px;
    margin-right: -10px; } }

.sidebar-items .link-list {
  margin-bottom: 5em; }
  .sidebar-items .link-list .link-list-item {
    margin-bottom: .5em; }

.sidebar-items .block .block-title {
  border-bottom: 1px dotted #003b5f; }

.sidebar-items .block.block-blog-menu .block-content ul {
  margin-top: 2px; }
  .sidebar-items .block.block-blog-menu .block-content ul li.item {
    margin: 0;
    padding: 4px 0; }
    .sidebar-items .block.block-blog-menu .block-content ul li.item a {
      color: #003b5f;
      text-decoration: underline; }
      .sidebar-items .block.block-blog-menu .block-content ul li.item a:hover, .sidebar-items .block.block-blog-menu .block-content ul li.item a.active {
        color: #1f86bd !important; }

.sidebar-items form.search_mini_form {
  margin: 3em 0; }

@media only screen and (max-width: 770px) {
  .sidebar-spacer {
    display: none; } }

.support-block h3 {
  padding-bottom: 5px;
  margin-bottom: 10px;
  border-bottom: 1px dotted #003b5f; }

.support-block:after {
  display: table;
  content: '';
  clear: both; }

.support-block span.phone {
  font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
  font-size: 24px;
  font-weight: normal;
  display: block;
  margin-bottom: 20px; }

.support-block .left, .support-block .right {
  width: 50%; }

.support-block .left {
  float: left; }

.support-block .right {
  float: right; }
  .support-block .right img {
    margin-top: -20px;
    height: auto; }

.productfinder-index-index .sidebar {
  padding-top: 8px; }

.sidebar hr {
  margin: 0; }

.sidebar p a, .sidebar-block a {
  color: #003b5f;
  text-decoration: underline; }
  .sidebar p a:hover, .sidebar-block a:hover {
    color: #1f86bd;
    text-decoration: underline; }

.sidebar-block {
  border-bottom: 1px dotted #003b5f;
  border-top: 1px dotted #003b5f;
  padding: 18px 0; }

body.wordpress-index-index .footer {
  border: none; }

body.wordpress-index-index .home-slide-wrapper {
  margin-left: -15px;
  margin-right: -15px; }
  @media only screen and (min-width: 771px) {
    body.wordpress-index-index .home-slide-wrapper {
      margin-left: -25px;
      margin-right: -25px; } }

body.wordpress-index-index .main-container {
  padding-top: 20px; }

body.wordpress-index-index .page-title {
  display: none; }

body.wordpress-index-index .featured-image {
  border: none;
  margin: 0; }

body.wordpress-index-index .post-list .home-slider-container {
  margin-bottom: 35px; }

body.wordpress-index-index .post-list ul#post-list li.item {
  margin-bottom: 0; }
  body.wordpress-index-index .post-list ul#post-list li.item:last-child {
    border-bottom: 1px dotted #003b5f; }
  body.wordpress-index-index .post-list ul#post-list li.item .post-list-item .post-entry {
    margin-bottom: 0;
    padding-top: 20px; }
    body.wordpress-index-index .post-list ul#post-list li.item .post-list-item .post-entry.post-entry-with-image {
      border-top: 1px dotted #003b5f; }
    body.wordpress-index-index .post-list ul#post-list li.item .post-list-item .post-entry .featured-image img {
      width: 100%;
      max-width: none; }
    body.wordpress-index-index .post-list ul#post-list li.item .post-list-item .post-entry h2 {
      margin-top: 20px;
      padding-top: 35px;
      border-top: 1px dotted #003b5f; }
      body.wordpress-index-index .post-list ul#post-list li.item .post-list-item .post-entry h2 a {
        text-decoration: none;
        text-transform: none;
        letter-spacing: 0; }
    body.wordpress-index-index .post-list ul#post-list li.item .post-list-item .post-entry .post-excerpt {
      margin-bottom: 20px; }

body.wordpress-index-index .post-list .pager {
  margin-top: 2rem;
  margin-left: 0;
  float: none;
  display: block;
  width: 100%;
  text-align: center; }
  body.wordpress-index-index .post-list .pager .pages {
    display: inline-block;
    float: none;
    margin-bottom: 0;
    margin-left: 0; }
    body.wordpress-index-index .post-list .pager .pages ol li {
      display: inline-block;
      vertical-align: middle;
      float: none;
      width: 20px;
      height: 30px;
      color: #1f86bd; }
      body.wordpress-index-index .post-list .pager .pages ol li.current {
        border: 0;
        color: #003b5f; }
      body.wordpress-index-index .post-list .pager .pages ol li a.next, body.wordpress-index-index .post-list .pager .pages ol li a.previous {
        width: auto;
        height: auto;
        border: 0;
        width: 30px;
        height: 30px; }

.wordpress-post-view .post-entry {
  overflow: visible; }
  .wordpress-post-view .post-entry img {
    height: auto; }
  .wordpress-post-view .post-entry .featured-image .post-share img {
    width: 30px;
    height: 30px; }

.wordpress-post-view .home-slide-wrapper {
  padding-left: 0;
  padding-right: 0; }

.wordpress-post-view .post-teaser {
  border-bottom: 1px dotted #003b5f;
  margin-bottom: 20px; }
  @media only screen and (min-width: 771px) {
    .wordpress-post-view .post-teaser {
      width: 146.12%; } }

.wordpress-post-view .featured-image {
  border: 0;
  padding: 20px 0;
  margin-bottom: 20px;
  border-top: 1px dotted #003b5f;
  border-bottom: 1px dotted #003b5f;
  position: relative; }
  .wordpress-post-view .featured-image img {
    width: 100%; }
  .wordpress-post-view .featured-image .post-share {
    position: absolute;
    right: 0;
    bottom: 15px; }
    .wordpress-post-view .featured-image .post-share img {
      width: auto; }

.wordpress-post-view .post-share a {
  display: inline-block; }

.wordpress-post-view .post-meta {
  font-style: normal; }

.post-entry hr {
  margin: .5em 0 !important;
  border: 1px dotted #003b5f;
  border-width: 1px 0 0 0; }

.post-entry h1, .post-entry .h1,
.post-entry h2, .post-entry .h2,
.post-entry h3, .post-entry .h3 {
  margin-top: 20px;
  margin-bottom: 10px;
  text-transform: none;
  font-size: 24px; }

.post-entry h1, .post-entry .h1 {
  margin-top: 0; }

.post-entry a:not(.button) {
  color: #003b5f;
  text-decoration: underline; }
  .post-entry a:not(.button):hover {
    color: #1f86bd; }
  .post-entry a:not(.button).back {
    margin-top: 35px;
    display: block; }

.post-entry h3, .post-entry .h3 {
  font-size: 20px; }

.post-entry h1 {
  font-size: 24px; }

.post-entry h1 a, .post-entry h2 a, .post-entry h3 a, .post-entry h4 a, .post-entry h5 a, .post-entry h6 a {
  text-decoration: none !important; }
  .post-entry h1 a:hover, .post-entry h2 a:hover, .post-entry h3 a:hover, .post-entry h4 a:hover, .post-entry h5 a:hover, .post-entry h6 a:hover {
    color: inherit !important; }

.post-entry.lightbox-content-link a:not(.back) {
  text-decoration: none; }

.post-entry .spacer {
  height: 35px; }

.post-title.has-subtitle {
  padding-bottom: 5em;
  border-bottom: 1px dotted #003b5f;
  margin-bottom: 1em; }
  .post-title.has-subtitle .page-subtitle {
    margin-bottom: 0; }
  .post-title.has-subtitle h1 {
    color: #1f86bd; }

.wordpress-post-view em {
  font-size: 24px;
  font-style: normal;
  font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
  line-height: 1.2; }

.post-meta.details {
  margin-top: 35px; }

.post-entry ul, .lightbox ul {
  padding: 0;
  margin: 0; }
  .post-entry ul li, .lightbox ul li {
    text-indent: -8px;
    padding-left: 8px;
    margin: 4px 0;
    list-style: none; }
    .post-entry ul li:before, .lightbox ul li:before {
      content: "- "; }

.post-entry ol, .lightbox ol {
  padding: 0;
  margin: 0; }
  .post-entry ol li, .lightbox ol li {
    margin: 4px 0; }

.people.row, .resellers.row {
  margin-right: -15px;
  margin-left: -15px;
  position: relative; }
  @media only screen and (min-width: 600px) {
    .people.row, .resellers.row {
      display: table;
      width: 100%;
      height: 100%; } }
  .people.row:after, .resellers.row:after {
    content: '';
    display: table;
    clear: both; }

@media only screen and (min-width: 600px) {
  .people.first .people-item, .people.first .reseller-item, .resellers.first .people-item, .resellers.first .reseller-item {
    border-top: 1px dotted #003b5f; } }

.people .col-half, .resellers .col-half {
  margin: 0 15px; }
  @media only screen and (min-width: 600px) {
    .people .col-half, .resellers .col-half {
      width: 50%;
      height: 100%;
      display: table-cell;
      padding: 0 15px;
      margin: 0; } }
  .people .col-half .people-item, .people .col-half .reseller-item, .resellers .col-half .people-item, .resellers .col-half .reseller-item {
    height: 100%;
    box-sizing: border-box;
    border-bottom: 1px dotted #003b5f; }
    .people .col-half .people-item img, .people .col-half .reseller-item img, .resellers .col-half .people-item img, .resellers .col-half .reseller-item img {
      width: 100%; }
      @media only screen and (min-width: 599px) {
        .people .col-half .people-item img, .people .col-half .reseller-item img, .resellers .col-half .people-item img, .resellers .col-half .reseller-item img {
          margin-top: 20px; } }
    @media only screen and (min-width: 600px) {
      .people .col-half .people-item, .people .col-half .reseller-item, .resellers .col-half .people-item, .resellers .col-half .reseller-item {
        padding-top: 20px; } }
  .people .col-half p, .resellers .col-half p {
    margin-top: 20px; }

.people.first .col-half:first-child .people-item, .people.first .col-half:first-child .reseller-item, .resellers.first .col-half:first-child .people-item, .resellers.first .col-half:first-child .reseller-item {
  border-top: 1px dotted #003b5f; }

@media only screen and (max-width: 599px) {
  .people:last-child .col-half .people-item, .people:last-child .col-half .reseller-item, .resellers:last-child .col-half .people-item, .resellers:last-child .col-half .reseller-item {
    border-bottom: 0; } }

.resellers.row:last-child, .people.row:last-child {
  margin-bottom: 70px; }

.resellers .col-half .reseller-item h2 {
  margin-top: 0; }
  @media only screen and (max-width: 599px) {
    .resellers .col-half .reseller-item h2 {
      margin-top: 20px; } }
  .resellers .col-half .reseller-item h2 img, .resellers .col-half .reseller-item h2 span {
    display: inline-block;
    vertical-align: middle; }
  .resellers .col-half .reseller-item h2 img {
    height: 1.2em;
    margin-right: .3em;
    width: 30px;
    display: inline-block;
    vertical-align: middle;
    margin-top: -3px; }

form.wpcf7-form ::-webkit-input-placeholder {
  /* WebKit, Blink, Edge */
  color: #003b5f; }

form.wpcf7-form :-moz-placeholder {
  /* Mozilla Firefox 4 to 18 */
  color: #003b5f;
  opacity: 1; }

form.wpcf7-form ::-moz-placeholder {
  /* Mozilla Firefox 19+ */
  color: #003b5f;
  opacity: 1; }

form.wpcf7-form :-ms-input-placeholder {
  /* Internet Explorer 10-11 */
  color: #003b5f; }

form.wpcf7-form ::-ms-input-placeholder {
  /* Microsoft Edge */
  color: #003b5f; }

form.wpcf7-form div.wpcf7-response-output {
  display: none;
  margin: 1em 0;
  border: none;
  background-color: #CF5050;
  color: white; }

form.wpcf7-form .text-right {
  text-align: right; }

form.wpcf7-form .ajax-loader {
  float: left; }

form.wpcf7-form .ajax-loader {
  display: none !important; }

form.wpcf7-form .inputs span.wpcf7-form-control-wrap input:not([type="checkbox"]),
form.wpcf7-form .inputs span.wpcf7-form-control-wrap select {
  -webkit-appearance: none;
  width: 100%;
  box-sizing: border-box;
  background-color: #ECECEC;
  border: none;
  padding: 0 1em;
  height: 35px;
  line-height: 35px;
  font-size: 14px; }
  form.wpcf7-form .inputs span.wpcf7-form-control-wrap input:not([type="checkbox"]):-ms-input-placeholder,
  form.wpcf7-form .inputs span.wpcf7-form-control-wrap select:-ms-input-placeholder {
    color: #003b5f;
    font-family: Arial, sans-serif; }
  form.wpcf7-form .inputs span.wpcf7-form-control-wrap input:not([type="checkbox"])::placeholder,
  form.wpcf7-form .inputs span.wpcf7-form-control-wrap select::placeholder {
    color: #003b5f;
    font-family: Arial, sans-serif; }

form.wpcf7-form .inputs span.wpcf7-not-valid-tip {
  color: #CF5050; }

form.wpcf7-form .success {
  color: inherit;
  display: none; }
  form.wpcf7-form .success .button {
    margin-top: 1em; }

form.wpcf7-form.sent .inputs, form.wpcf7-form.sent .wpcf7-mail-sent-ok {
  display: none !important; }

form.wpcf7-form.sent .success {
  display: block; }

span.wpcf7-list-item {
  margin: 0 !important; }

.form-wrapper form input,
.form-wrapper form select {
  -webkit-appearance: none;
  width: 100%;
  box-sizing: border-box;
  background-color: #ECECEC;
  border: none;
  padding: 0 1em;
  height: 35px;
  line-height: 35px;
  border-radius: 0;
  font-size: 14px; }
  .form-wrapper form input:-ms-input-placeholder,
  .form-wrapper form select:-ms-input-placeholder {
    color: #003b5f;
    font-family: Arial, sans-serif; }
  .form-wrapper form input::placeholder,
  .form-wrapper form select::placeholder {
    color: #003b5f;
    font-family: Arial, sans-serif; }

ul.downloads {
  list-style-type: none;
  padding: 0;
  margin: 0; }
  ul.downloads .download-item {
    position: relative;
    margin-bottom: .5em;
    margin-left: 2em;
    list-style: none; }
    ul.downloads .download-item--pdf:before {
      background-image: url("../images/icon-download-pdf.svg"); }
    ul.downloads .download-item--zip:before {
      background-image: url("../images/icon-download-zip.svg"); }
    ul.downloads .download-item:before {
      content: '';
      display: inline-block;
      vertical-align: middle;
      position: absolute;
      margin-left: -2em;
      margin-right: 2px;
      top: 50%;
      left: 0;
      transform: translateY(-50%);
      width: 22px;
      height: 22px;
      background-image: url(../images/icon-download-pdf.svg);
      background-size: 19px 22px;
      background-repeat: no-repeat; }
    ul.downloads .download-item a {
      text-decoration: none;
      color: inherit; }

.lightbox, .samplerequest-overlay {
  display: block;
  position: fixed;
  z-index: 9999;
  background-color: rgba(0, 0, 0, 0.5);
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  pointer-events: none;
  transition: opacity 200ms;
  overflow: scroll;
  -webkit-overflow-scrolling: touch; }
  .lightbox.loading, .samplerequest-overlay.loading {
    opacity: 1;
    pointer-events: all; }
    .lightbox.loading .spinner, .samplerequest-overlay.loading .spinner {
      opacity: 1; }
  .lightbox.complete, .samplerequest-overlay.complete {
    opacity: 1;
    pointer-events: all; }
    .lightbox.complete .spinner, .samplerequest-overlay.complete .spinner {
      opacity: 0; }
    .lightbox.complete .box, .samplerequest-overlay.complete .box {
      opacity: 1;
      pointer-events: all; }
      @media only screen and (min-width: 600px) {
        .lightbox.complete .box, .samplerequest-overlay.complete .box {
          transform: translate(-50%, -50%); } }
  .lightbox.scroll .box, .samplerequest-overlay.scroll .box {
    top: 0 !important; }
    @media only screen and (min-width: 600px) {
      .lightbox.scroll .box, .samplerequest-overlay.scroll .box {
        transform: translate(-50%, 0) !important; } }
  .lightbox .spinner, .samplerequest-overlay .spinner {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    height: 18px;
    width: 18px;
    animation: rotate 1.2s infinite linear;
    border: 3px solid #fff;
    border-right-color: transparent;
    border-radius: 50%;
    opacity: 0; }

@keyframes rotate {
  0% {
    transform: rotate(0deg); }
  100% {
    transform: rotate(360deg); } }
  .lightbox .box, .samplerequest-overlay .box {
    opacity: 0;
    background-color: #fff;
    margin: 60px auto;
    width: 96%;
    max-width: 690px;
    border-radius: 5px;
    pointer-events: none;
    transition-delay: 0;
    transition: transform 200ms, opacity 200ms; }
    @media only screen and (min-width: 600px) {
      .lightbox .box, .samplerequest-overlay .box {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -45%); } }
    .lightbox .box ol, .samplerequest-overlay .box ol {
      list-style: decimal outside;
      margin-bottom: 1.5em; }
      .lightbox .box ol li, .samplerequest-overlay .box ol li {
        margin-left: 2em; }
    .lightbox .box h1, .lightbox .box h3, .lightbox .box .h3, .lightbox .box h2, .lightbox .box h2, .samplerequest-overlay .box h1, .samplerequest-overlay .box h3, .samplerequest-overlay .box .h3, .samplerequest-overlay .box h2, .samplerequest-overlay .box h2 {
      font-size: 24px; }
    .lightbox .box a#request-sample, .samplerequest-overlay .box a#request-sample {
      margin-top: 20px; }
    .lightbox .box h2, .lightbox .box .h2,
    .lightbox .box h3, .lightbox .box .h3, .samplerequest-overlay .box h2, .samplerequest-overlay .box .h2,
    .samplerequest-overlay .box h3, .samplerequest-overlay .box .h3 {
      margin-bottom: 20px; }
    .lightbox .box .close, .samplerequest-overlay .box .close {
      display: block;
      width: 30px;
      height: 30px;
      padding: 0;
      border-radius: 100%;
      background-color: #1f86bd;
      color: #fff;
      min-width: auto;
      position: absolute;
      right: 0;
      top: 60px;
      margin-top: -15px;
      margin-right: 50px;
      cursor: pointer;
      background-image: url(../images/lightbox-close.svg);
      background-size: 11px;
      background-position: center;
      background-repeat: no-repeat;
      transition: background 200ms; }
      @media only screen and (min-width: 600px) {
        .lightbox .box .close, .samplerequest-overlay .box .close {
          top: 0; } }
      .lightbox .box .close:hover, .samplerequest-overlay .box .close:hover {
        background-color: #1d7db0; }
    .lightbox .box .inner, .samplerequest-overlay .box .inner {
      padding: 40px 20px 60px 20px;
      box-sizing: border-box; }
      @media only screen and (min-width: 600px) {
        .lightbox .box .inner, .samplerequest-overlay .box .inner {
          padding: 40px 20px; } }
      .lightbox .box .inner::-webkit-scrollbar, .samplerequest-overlay .box .inner::-webkit-scrollbar {
        display: none; }
      @media only screen and (min-width: 600px) {
        .lightbox .box .inner, .samplerequest-overlay .box .inner {
          padding: 70px 50px; } }

body.lightbox-active {
  overflow: hidden !important; }

.samplerequest-overlay.active {
  opacity: 1;
  pointer-events: all; }
  .samplerequest-overlay.active .box {
    opacity: 1;
    pointer-events: all;
    transform: translate(-50%, -50%); }

.finder-form {
  margin: 35px 0; }
  .finder-form .level {
    padding-top: 35px;
    margin-top: 35px;
    border-top: 1px dotted #003b5f; }
  .finder-form .select-wrapper {
    margin-bottom: 10px; }
  @media only screen and (min-width: 600px) {
    .finder-form .select-row {
      margin: 0 -5px; }
      .finder-form .select-row:after {
        content: '';
        display: table;
        clear: both; }
    .finder-form .select-wrapper {
      float: left;
      width: 50%; }
      .finder-form .select-wrapper .select-wrapper--inner {
        margin: 0 5px; } }

#productResult {
  margin-top: 35px; }

.block-productfinder ul li.product .product-title {
  border-bottom: none; }
  .block-productfinder ul li.product .product-title a {
    font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
    font-size: 17px;
    line-height: 1.2; }
    .block-productfinder ul li.product .product-title a:hover {
      text-decoration: none; }

#block-productfinder .slick-slide {
  opacity: 0; }

#block-productfinder.slick-initialized .slick-slide {
  opacity: 1; }

.finder-notice, .finder-noproduct {
  padding-top: 35px;
  margin-top: 35px;
  border-top: 1px dotted #003b5f; }

.finder-noproduct {
  display: none;
  border: none; }

/* ============================================ *
 * Calendar styles (restore styles from /js/calendar)
 * ============================================ */
div.calendar table {
  border-collapse: separate; }
  div.calendar table td.button {
    display: table-cell;
    background: inherit;
    color: inherit;
    text-transform: none; }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0eWxlcy5jc3MiLCJtaXhpbi9fYnJlYWtwb2ludC5zY3NzIiwibWl4aW4vX3R5cG9ncmFwaHkuc2NzcyIsInZlbmRvci9fbm9ybWFsaXplLnNjc3MiLCJjb3JlL19yZXNldC5zY3NzIiwiZnVuY3Rpb24vX2JsYWNrLnNjc3MiLCJjb3JlL19jb21tb24uc2NzcyIsIl92YXIuc2NzcyIsIm1peGluL19jbGVhcmZpeC5zY3NzIiwibWl4aW4vX25vdC1zZWxlY3RhYmxlLnNjc3MiLCJtaXhpbi9fdG9nZ2xlLWNvbnRlbnQuc2NzcyIsIm1peGluL190cmlhbmdsZS5zY3NzIiwibWl4aW4vX2ltYWdlLXJlcGxhY2VtZW50LnNjc3MiLCJtaXhpbi9faWYtcmVzb2x1dGlvbi5zY3NzIiwiY29yZS9fZm9ybS5zY3NzIiwiY29yZS9fdGFibGUuc2NzcyIsImxheW91dC9fZ2xvYmFsLnNjc3MiLCJsYXlvdXQvX2hlYWRlci5zY3NzIiwibGF5b3V0L19oZWFkZXItbmF2LnNjc3MiLCJsYXlvdXQvX2hlYWRlci1zZWFyY2guc2NzcyIsImxheW91dC9faGVhZGVyLWFjY291bnQuc2NzcyIsIm1peGluL19tZW51LnNjc3MiLCJsYXlvdXQvX2hlYWRlci1jYXJ0LnNjc3MiLCJsYXlvdXQvX2Zvb3Rlci5zY3NzIiwibW9kdWxlL19wcm9kdWN0LWxpc3Quc2NzcyIsIm1peGluL19sb2FkaW5nLW92ZXJsYXkuc2NzcyIsIm1vZHVsZS9fY2F0YWxvZy1wcm9kdWN0LnNjc3MiLCJtb2R1bGUvX2NhdGFsb2ctbXNycC5zY3NzIiwibW9kdWxlL19jYXRhbG9nLWNvbXBhcmUuc2NzcyIsIm1vZHVsZS9fY2hlY2tvdXQtY2FydC5zY3NzIiwibW9kdWxlL19jaGVja291dC1vbmVwYWdlLnNjc3MiLCJtb2R1bGUvX2NoZWNrb3V0LXN1Y2Nlc3Muc2NzcyIsIm1vZHVsZS9fY29uZmlndXJhYmxlc3dhdGNoZXMuc2NzcyIsIm1vZHVsZS9fY3VzdG9tZXIuc2NzcyIsIm1vZHVsZS9fY29udGFjdHMuc2NzcyIsIm1vZHVsZS9fcGF5cGFsLnNjc3MiLCJtb2R1bGUvX3Jldmlldy5zY3NzIiwibW9kdWxlL19zbGljay5zY3NzIiwibW9kdWxlL19zbGlkZXNob3cuc2NzcyIsIm1vZHVsZS9fd2lzaGxpc3Quc2NzcyIsIm1vZHVsZS9fY2hlY2tvdXQtY2FydC1taW5pY2FydC5zY3NzIiwibW9kdWxlL19zZWFyY2guc2NzcyIsIm1vZHVsZS9fYWNjb3VudC1yZXZpZXdzLnNjc3MiLCJtb2R1bGUvX2Ntcy5zY3NzIiwibW9kdWxlL19wcmljaW5nX2NvbmRpdGlvbnMuc2NzcyIsIm1vZHVsZS9fY29va2llcy5zY3NzIiwibW9kdWxlL190YWdzLnNjc3MiLCJtb2R1bGUvX2NhcHRjaGEuc2NzcyIsIm1vZHVsZS9fYWNjb3VudC1vcmRlcnMuc2NzcyIsIm1vZHVsZS9fcmVjdXJyaW5nLXByb2ZpbGVzLnNjc3MiLCJtb2R1bGUvX2JpbGxpbmctYWdyZWVtZW50cy5zY3NzIiwibW9kdWxlL19wb3B1bGFyLXRlcm1zLnNjc3MiLCJtb2R1bGUvX3dpZGdldC5zY3NzIiwibW9kdWxlL19jaGVja291dC1tdWx0aS1hZGRyZXNzLnNjc3MiLCJtb2R1bGUvd29yZHByZXNzL19tYWluLnNjc3MiLCJtb2R1bGUvd29yZHByZXNzL19sYXlvdXQuc2NzcyIsIm1vZHVsZS93b3JkcHJlc3MvX3NpZGViYXIuc2NzcyIsIm1vZHVsZS93b3JkcHJlc3MvcG9zdC9fbGlzdC5zY3NzIiwibW9kdWxlL3dvcmRwcmVzcy9wb3N0L192aWV3LnNjc3MiLCJtb2R1bGUvd29yZHByZXNzL3BhZ2UvX3ZpZXcuc2NzcyIsIm1vZHVsZS93b3JkcHJlc3MvbW9kdWxlcy9fcGVvcGxlLnNjc3MiLCJtb2R1bGUvd29yZHByZXNzL21vZHVsZXMvX3Jlc2VsbGVycy5zY3NzIiwibW9kdWxlL3dvcmRwcmVzcy9tb2R1bGVzL19mb3Jtcy5zY3NzIiwibW9kdWxlL3dvcmRwcmVzcy9tb2R1bGVzL19kb3dubG9hZHMuc2NzcyIsIm1vZHVsZS9fbGlnaHRib3guc2NzcyIsIm1vZHVsZS9fcHJvZHVjdC1maW5kZXIuc2NzcyIsIm92ZXJyaWRlL19wbHVnaW4uc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQkFBaUI7QUMyRGpCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQWdDRTtBQ2pFRjtFQUNFLGtDQUFpQztFQUNqQywrUEFBZ1E7RUFDaFEsb0JBQW1CO0VBQ25CLG1CQUFrQixFQUFBOztBQUlwQjtFQUNFLGtDQUFpQztFQUNqQywrUEFBZ1E7RUFDaFEsa0JBQWlCO0VBQ2pCLG1CQUFrQixFQUFBOztBQ3RDcEIsNERBQTREO0FBRTVEOztnRkFFZ0Y7QUFFaEY7O0dBRUc7QUFFSDs7Ozs7Ozs7Ozs7RUFXSSxlQUFjLEVBQ2pCOztBQUVEOztHQUVHO0FBRUg7OztFQUdJLHNCQUFxQixFQUN4Qjs7QUFFRDs7O0dBR0c7QUFFSDtFQUNJLGNBQWE7RUFDYixVQUFTLEVBQ1o7O0FBRUQ7O0dBRUc7QUh1Q0g7RUdwQ0ksY0FBYSxFQUNoQjs7QUFFRDs7Z0ZBRWdGO0FBRWhGOzs7O0dBSUc7QUFFSDtFQUNJLHdCQUF1QjtFQUFFLE9BQU87RUFDaEMsK0JBQThCO0VBQUUsT0FBTztFQUN2QywyQkFBMEI7RUFBRSxPQUFPLEVBQ3RDOztBQUVEOztHQUVHO0FBRUg7RUFDSSxVQUFTLEVBQ1o7O0FBRUQ7O2dGQUVnRjtBQUVoRjs7R0FFRztBQUVIO0VBQ0kscUJBQW9CLEVBQ3ZCOztBQUVEOztHQUVHO0FBRUg7O0VBRUksV0FBVSxFQUNiOztBQUVEOztnRkFFZ0Y7QUFFaEY7OztHQUdHO0FBRUg7RUFDSSxlQUFjLEVBQ2pCOztBQUVEOztHQUVHO0FBRUg7RUFDSSwwQkFBeUIsRUFDNUI7O0FBRUQ7O0dBRUc7QUFFSDs7RUFFSSxrQkFBaUIsRUFDcEI7O0FBRUQ7O0dBRUc7QUFFSDtFQUNJLG1CQUFrQixFQUNyQjs7QUFFRDs7R0FFRztBQUVIO0VBQ0ksaUJBQWdCO0VBQ2hCLFlBQVcsRUFDZDs7QUFHRDs7R0FFRztBQUVIOzs7O0VBSUksOEJBQTZCO0VBQzdCLGVBQWMsRUFDakI7O0FBRUQ7O0dBRUc7QUFFSDtFQUNJLGlCQUFnQjtFQUNoQixzQkFBcUI7RUFDckIsc0JBQXFCLEVBQ3hCOztBQUVEOztHQUVHO0FBRUg7RUFDSSx3Q0FBdUMsRUFDMUM7O0FBRUQ7O0dBRUc7QUFFSDtFQUNJLGVBQWMsRUFDakI7O0FBRUQ7O0dBRUc7QUFFSDs7RUFFSSxlQUFjO0VBQ2QsZUFBYztFQUNkLG1CQUFrQjtFQUNsQix5QkFBd0IsRUFDM0I7O0FBRUQ7RUFDSSxZQUFXLEVBQ2Q7O0FBRUQ7RUFDSSxnQkFBZSxFQUNsQjs7QUFFRDs7Z0ZBRWdGO0FBRWhGOztHQUVHO0FBRUg7RUFDSSxVQUFTLEVBQ1o7O0FBRUQ7O0dBRUc7QUFFSDtFQUNJLGlCQUFnQixFQUNuQjs7QUFFRDs7Z0ZBRWdGO0FBRWhGOztHQUVHO0FBRUg7RUFDSSxVQUFTLEVBQ1o7O0FBRUQ7O2dGQUVnRjtBQUVoRjs7R0FFRztBQUVIO0VBQ0ksMEJBQXlCO0VBQ3pCLGNBQWE7RUFDYiwrQkFBOEIsRUFDakM7O0FBRUQ7OztHQUdHO0FBRUg7RUFDSSxVQUFTO0VBQUUsT0FBTztFQUNsQixXQUFVO0VBQUUsT0FBTyxFQUN0Qjs7QUFFRDs7OztHQUlHO0FBRUg7Ozs7RUFJSSxxQkFBb0I7RUFBRSxPQUFPO0VBQzdCLGdCQUFlO0VBQUUsT0FBTztFQUN4QixVQUFTO0VBQUUsT0FBTyxFQUNyQjs7QUFFRDs7O0dBR0c7QUFFSDs7RUFFSSxvQkFBbUIsRUFDdEI7O0FBRUQ7Ozs7OztHQU1HO0FBRUg7Ozs7RUFJSSwyQkFBMEI7RUFBRSxPQUFPO0VBQ25DLGdCQUFlO0VBQUUsT0FBTyxFQUMzQjs7QUFFRDs7R0FFRztBQUVIOztFQUVJLGdCQUFlLEVBQ2xCOztBQUVEOzs7R0FHRztBQUVIOztFQUVJLHVCQUFzQjtFQUFFLE9BQU87RUFDL0IsV0FBVTtFQUFFLE9BQU8sRUFDdEI7O0FBRUQ7Ozs7R0FJRztBQUVIO0VBQ0ksOEJBQTZCO0VBQUUsT0FBTztFQUVMLE9BQU87RUFDeEMsd0JBQXVCLEVBQzFCOztBQUVEOzs7R0FHRztBQUVIOztFQUVJLHlCQUF3QixFQUMzQjs7QUFFRDs7R0FFRztBQUVIOztFQUVJLFVBQVM7RUFDVCxXQUFVLEVBQ2I7O0FBRUQ7OztHQUdHO0FBRUg7RUFDSSxlQUFjO0VBQUUsT0FBTztFQUN2QixvQkFBbUI7RUFBRSxPQUFPLEVBQy9COztBQUVEOztnRkFFZ0Y7QUFFaEY7O0dBRUc7QUFFSDtFQUNJLDBCQUF5QjtFQUN6QixrQkFBaUIsRUFDcEI7O0FDN1ZEOztrREFFa0Q7QUFFbEQ7OztFQUlJLFVBQVM7RUFDVCxXQUFVLEVBQ2I7O0FEMkJEO0VDeEJJLDhDQ1IrQjtFRFFRLDBDQUEwQztFQUNqRiwrQkFBOEI7RUFBRSxzQ0FBc0MsRUFDekU7O0FEZ0NEO0VDN0JJLG9CQUFtQjtFQUNuQixlQUFjO0VBQ2QsZUFBYyxFQUNqQjs7QUFFRDs7Ozs7O0VBTUksVUFBUyxFQUNaOztBQUVEOzs7Ozs7RUFNSSxnQkFBZTtFQUNmLG9CQUFtQixFQUN0Qjs7QUFFRDs7OztFQUlJLG9CQUFtQjtFQUNuQixtQkFBa0I7RUFDbEIsaUJBQWdCLEVBQ25COztBQUVEO0VBQ0ksbUJBQWtCLEVBQ3JCOztBRHFLRDtFQ2xLSSxVQUFTO0VBQ1QsV0FBVTtFQUNWLFVBQVMsRUFDWjs7QUQrSEQ7RUM1SEksZUFBYyxFQUNqQjs7QUFFRDs7RUFFSSxpQkFBZ0IsRUFDbkI7O0FBRUQ7O0VBRUksWUFBVyxFQUNkOztBQUdEOztFQUVJLHFCQUFvQixFQUN2Qjs7QUQ4TkQ7RUMxTkkseUJBQXdCO0VBQUUsT0FBTztFQUVELE9BQU87RUFDdkMsdUJBQXNCLEVBQ3pCOztBQUVEO0VBQ0UsZ0JBQWUsRUFDaEI7O0FFeEZEOztrREFFa0Q7QUFFbEQ7RUFDSSxvQkFBbUIsRUFBQTs7QUFHdkI7RUFDSSxvQkFBbUIsRUFBQTs7QUFHdkI7RUFDSSxvQkFBbUIsRUFBQTs7QUFJdkI7RUFDSSwrQkFBOEI7RUFDOUIsMkJBQTBCLEVBQzdCOztBQUVEOzs7Ozs7RUFNSSwrQkN5TDRCO0VEeEw1QixlQ2tFWTtFRGpFWixnQkNtTVM7RURsTVQsaUJDME1lLEVEek1sQjs7QUhZRDtFR1RJLG9CQUFtQjtFQUNuQixxQ0FBb0M7RUFDcEMsNEJBQTJCO0VBQzNCLG1DQUFrQztFQUNsQyxtQ0FBa0M7RUFDbEMsb0NBQW1DLEVBQ3RDOztBQUVEO0VBQ0ksZUN3Qlk7RUR2Qlosc0JBQXFCLEVBQ3hCOztBQUVEO0VBRUksMkJBQTBCLEVBQzdCOztBSEtEO0VHRkksdUJDa0h1QztFRGpIdkMsZUFBNkIsRUFDaEM7O0FGTUQ7O0VFRkksaUJBQWdCO0VBQ2hCLFVBQVM7RUFDVCxXQUFVLEVBQ2I7O0FBRUQ7RUFDSSxvQkFBbUIsRUFDdEI7O0FBRUQ7O2tEQUVrRDtBQUVsRDtFSnBESSxVQUFTO0VBQ1QscUJBQW9CO0VBQ3BCLGVLd0VZO0VMdkVaLGdGSytMZ0Y7RUw5TGhGLGdCQUFlO0VBQ2Ysb0JBQW1CO0VBQ25CLG1CQUFrQjtFQUNsQixpQkFBZ0IsRUk2Q0s7O0FBRXpCO0VKMUNJLFVBQVM7RUFDVCxxQkFBb0I7RUFDcEIsZUs0RFk7RUwzRFosZ0ZLbUxnRjtFTGxMaEYsZ0JBQWU7RUFDZixvQkFBbUI7RUFDbkIsbUJBQWtCO0VBRWxCLGlCQUFnQixFSWtDSzs7QUFFekI7RUovQkksVUFBUztFQUNULG9CQUFtQjtFQUNuQixlSytDWTtFTDlDWixnRktzS2dGO0VMcktoRixnQks0S1k7RUwzS1osb0JBQW1CO0VBQ25CLG1CQUFrQjtFQUNsQixpQkFBZ0IsRUl3Qks7O0FBRXpCO0VKckJJLFVBQVM7RUFDVCxvQkFBbUI7RUFDbkIsZUttQ1k7RUxsQ1osZ0ZLMEpnRjtFTHpKaEYsZ0JBQWU7RUFDZixvQkFBbUI7RUFDbkIsbUJBQWtCO0VBQ2xCLGlCQUFnQixFSWNLOztBQUV6QjtFSlhJLFVBQVM7RUFDVCxvQkFBbUI7RUFDbkIsZUt1Qlk7RUx0QlosK0JLNEk0QjtFTDNJNUIsZ0JBQWU7RUFDZixvQkFBbUI7RUFDbkIsbUJBQWtCO0VBQ2xCLGlCQUFnQixFSUlLOztBQUV6QjtFSkRJLFVBQVM7RUFDVCxtQkFBa0I7RUFDbEIsZUtXWTtFTFZaLCtCS2dJNEI7RUwvSDVCLGdCQUFlO0VBQ2Ysb0JBQW1CO0VBQ25CLG1CQUFrQjtFQUNsQixpQkFBZ0IsRUlOSzs7QUFJekI7RUFDSSxtQkFBa0IsRUFDckI7O0FBRUQ7O2tEQUVrRDtBQUVsRDtFQUNJLG1CQUFrQixFQUNyQjs7QUFFRDtFQUNJLGlCQUFnQjtFQUNoQixnQkM4SFc7RUQ3SFgsMEJBQXlCLEVBQzVCOztBQUVEO0VBQ0ksY0FBYSxFQUNoQjs7QUFFRDtFQUNJLGVDckNhLEVEc0NoQjs7QUFFRDs7RUFFSSxlQ0pjLEVES2pCOztBQUVEO0VBQ0ksZUNSYztFRFNkLG9CQzFFYyxFRDJFakI7O0FBRUQ7RUFDSSxhQUFZLEVBQ2Y7O0FBR0Q7O0dBRUc7QUFFSDs7Ozs7O0VKckNJLGdCQUFlO0VBQ2Ysb0JBQW1CO0VBQ25CLGVLRlk7RUxHWixvQkFBbUI7RUFDbkIsb0JBQW1CLEVJd0N0Qjs7QUFFRDs7R0FFRztBQUVIOztFQUVJLG9CQUFtQixFQUN0Qjs7QUFFRDtFQUNJLGlCQUFnQixFQUNuQjs7QUFFRDtFQUNJLG1CQUFrQjtFQUNsQixrQkFBaUI7RUFDakIsbUJBQWtCLEVBaUJyQjtFQXBCRDs7O0lKaEdJLFVBQVM7SUFDVCxvQkFBbUI7SUFDbkIsZUttQ1k7SUxsQ1osZ0ZLMEpnRjtJTHpKaEYsZ0JBQWU7SUFDZixvQkFBbUI7SUFDbkIsbUJBQWtCO0lBQ2xCLGlCQUFnQjtJSW1HWixlQ3JFUTtJRHNFUixpQkFBZ0I7SUFDaEIsMEJBQXlCO0lBQ3pCLGlCQUFnQixFQUNuQjtFQWRMO0lBZ0JRLGdCQUFlO0lBQ2Ysb0JBQW1CO0lBQ25CLGVDNUVhLEVENkVoQjs7QUFHTDtFQUNRLHNCQUFxQjtFQUNyQix1QkFBc0I7RUFDdEIsa0JBQWlCLEVBQ3BCOztBQUdMO0VBQ0ksaUJBQWdCO0VBQ2hCLGVBQWMsRUFDakI7O0FBRUQ7RUFDSSxrQkFBaUI7RUFDakIsbUJDN0lpQixFRDhJcEI7O0FBRUQ7RUFDSSxnQkFBZSxFQUNsQjs7QUFFRDtFQUNJLFdBQVUsRUFDYjs7QUFFRDtFQUNJLHFCQUE0QixFQUMvQjs7QUFFRDtFQUNJLGlCQUFnQixFQUNuQjs7QUFFRDtFQUNJLGlCQUF3QixFQVkzQjtFQWJEO0lFM01JLFlBQVc7SUFDWCxlQUFjO0lBQ2QsWUFBVyxFRjhNVjtFQUxMO0lBUVEsWUFBVyxFQUNkO0VBVEw7SUFXUSxhQUFZLEVBQ2Y7O0FBR0w7O0VBSVEsa0JBQWlCO0VBQ2pCLGtCQUFpQixFQUNwQjs7QUwzTkc7RUtnT0o7SUFHUSxpQkFBZ0IsRUFrQm5CO0lBckJMO01KakxBLFVBQVM7TUFDVCxvQkFBbUI7TUFDbkIsZUttQ1k7TUxsQ1osZ0ZLMEpnRjtNTHpKaEYsZ0JBQWU7TUFDZixvQkFBbUI7TUFDbkIsbUJBQWtCO01BQ2xCLGlCQUFnQjtNTy9EaEIsdUJBQXNCO01BQ3RCLHNCQUFxQjtNQUNyQiwwQkFBeUI7TUFDekIscUJBQW9CO01BQ3BCLGtCQUFpQjtNQ2tFakIsb0JBQW1CO01BQ25CLG1CQUFrQjtNQUNsQiwyQkFBMEI7TUFDMUIsa0JBQWlCO01BQ2pCLG9CQUFtQjtNQUNuQixzQkhvR3FCO01HbkdyQixtQkFBa0I7TUFDbEIsMEJINkZ5QjtNRHdFVCxlQUFjO01BQ2QsWUFBVztNQUNYLGdCQUFlO01BQ2YsaUJBQWdCLEVBQ25CO01JdktiO1FDL0VBLFlBQVc7UUFDWCxtQkFBa0I7UUFDbEIsU0FBUTtRQUNSLFVBQVM7UUFDVCxlQUFjO1FBaUJWLGtDQUFtQztRQUNuQyxxQ0FBc0M7UUFDdEMsK0JKMkNRO1FJMUNSLG1CQUFrQjtRRHlEbEIsV0FBVTtRQUNWLFNBQVE7UUFDUixpQkFBZ0IsRUFDbkI7TUFFRDtRQUNJLHFDSG9GbUQsRUduRnREO0lKaUpEO01KakxBLFVBQVM7TUFDVCxvQkFBbUI7TUFDbkIsZUttQ1k7TUxsQ1osZ0ZLMEpnRjtNTHpKaEYsZ0JBQWU7TUFDZixvQkFBbUI7TUFDbkIsbUJBQWtCO01BQ2xCLGlCQUFnQjtNTy9EaEIsdUJBQXNCO01BQ3RCLHNCQUFxQjtNQUNyQiwwQkFBeUI7TUFDekIscUJBQW9CO01BQ3BCLGtCQUFpQjtNQ2tFakIsb0JBQW1CO01BQ25CLG1CQUFrQjtNQUNsQiwyQkFBMEI7TUFDMUIsa0JBQWlCO01BQ2pCLG9CQUFtQjtNQUNuQixzQkhvR3FCO01HbkdyQixtQkFBa0I7TUFDbEIsMEJINkZ5QixFRGlGUjtNSTVLakI7UUMvRUEsWUFBVztRQUNYLG1CQUFrQjtRQUNsQixTQUFRO1FBQ1IsVUFBUztRQUNULGVBQWM7UUFVVixvQ0FBcUM7UUFDckMsbUNBQW9DO1FBQ3BDLDhCSmtEUTtRSWpEUixvQkFBbUI7UURnRW5CLFdBQVU7UUFDVixTQUFRO1FBQ1IsaUJBQWdCLEVBQ25CO01BRUQ7UUFDSSxxQ0hvRm1ELEVHbkZ0RCxFQUFBOztBSjJLTDs7R0FFRztBQUVIOztFQVNRLGVBQWM7RUFDZCxpQkFBZ0IsRUFFbkI7RUFaTDs7SUFJWSxnRkN0RHdFO0lEdUR4RSwwQkFBeUI7SUFDekIsZ0JDakRJO0lEa0RKLGVDakxJLEVEa0xQOztBQVJUOztFQWlCUSxjQUFhLEVBY2hCO0VBL0JMOztJQW9CWSxpQkFBZ0I7SUFDaEIsZUMxTkksRUQyTlA7RUF0QlQ7O0lBeUJZLGVDbk1JLEVEd01QO0lBOUJUOztNQTRCZ0IsZUNqT0EsRURrT0g7O0FBS2I7O2tEQUVrRDtBQUVsRCx1QkFBdUI7QUFDdkI7Ozs7RUFJSSxvQkMxS3dCO0VEMkt4QixlQ3ROWTtFRHVOWixrQkFBaUIsRUFpQnBCO0VBdkJEOzs7O0lBU1Esb0JDOUtzQztJRCtLdEMsZ0JBQWUsRUFDbEI7RUFYTDs7OztJQWNRLG9CQ2xMd0M7SURtTHhDLGVDaE9RLEVEaU9YO0VBaEJMOzs7O0lBbUJRLGVDcE9RO0lEcU9SLG9CQ3hMd0M7SUR5THhDLGNBQWEsRUFDaEI7O0FBR0w7RUFDSSxvQkFBbUIsRUFDdEI7O0FBRUQscUJBQXFCO0FBRXJCOzs7Ozs7RUFNSSxvQkNqUlk7RURrUlosc0JBQXFCO0VBQ3JCLHNCQUFxQjtFQUNyQiwyQkFBMEI7RUFJMUIsbUJBQWtCO0VBQ2xCLFVBQVM7RUFDVCxlQUFjO0VBQ2QsZ0JBQWU7RUFDZixvQkFBbUI7RUFDbkIsZ0ZDMUlnRjtFRDJJaEYsbUJBQWtCO0VBQ2xCLHVCQUFzQjtFQUN0QixvQkFBbUI7RUFDbkIsdUJBQXNCO0VBQ3RCLGlCQUFnQixFQXdEbkI7RUxuWk87SUtvVVI7Ozs7OztNQVdPLDJCQUEwQixFQW9FaEMsRUFBQTtFQS9FRDs7Ozs7O0lBMEJRLG9CQzFRUTtJRDJRUixnQkFBZSxFQUNsQjtFQTVCTDs7Ozs7O0lBOEJRLG9CQ3ZPOEI7SUR3TzlCLGVBQWMsRUFDakI7RUFoQ0w7Ozs7OztJQWtDUSwwQkMzTzhCO0lENE85QixjQUFhO0lBQ2IsZUFBYyxFQUNqQjtFQXJDTDs7Ozs7O0lBdUNRLCtCQUE4QixFQUlqQztJQTNDTDs7Ozs7O01BeUNZLG9CQUErQixFQUNsQztFQTFDVDs7Ozs7Ozs7Ozs7SUE2Q1EsaUJBQWdCO0lBQ2hCLDBCQzlSUTtJRCtSUixlQy9SUTtJRGdTUixzQkFBcUI7SUFDckIsMkJBQTBCLEVBUTdCO0lMN1hHO01Lb1VSOzs7Ozs7Ozs7OztRQW1EUSwyQkFBMEIsRUFNN0IsRUFBQTtJQXpETDs7Ozs7Ozs7Ozs7TUF1RFksZUN2U0ksRUR3U1A7RUF4RFQ7Ozs7OztJQTREUSxnQkFBZSxFQUNsQjs7QUF3Qkw7RUFDSSxzQkFBcUIsRUFDeEI7O0FBRUQ7RUFDSSxlQUFjLEVBQ2pCOztBQUVELDBEQUEwRDtBQUMxRDs7RUFFSSxvQkFBbUI7RUFDbkIsYUFBWTtFQUNaLG9CQUFtQixFQUN0Qjs7QUFFRDtFQUVRLFlBQVc7RUFDWCxzQkFBcUI7RUFDckIsdUJBQXNCO0VBQ3RCLGtCQUFpQjtFQUNqQixpQkFBZ0IsRUFDbkI7O0FBYUw7RUFDSSxVQUFTO0VBQ1QsZUFBYztFQUNkLFVBQVM7RUFDVCx3QkFBdUI7RUFDdkIsZ0JBQWU7RUFDZix1QkFBc0IsRUFDekI7O0FBRUQ7RUFDSSxjQUFhLEVBQ2hCOztBQUVEOztFQUVJLGtCQUFpQjtFQUNqQixhQUFZO0VBQ1osMkJBQTBCO0VBQzFCLDBCQUF5QjtFQUN6QixzQkFBcUI7RUFDckIsZUN4Wlk7RUR5WlosZ0ZDdFFnRixFRDRRbkY7RUFkRDs7SUFXUSxzQkFBcUI7SUFDckIsZUN2WHlCLEVEd1g1Qjs7QUx2ZEc7RUsyZEo7O0lBR1EsWUFBVztJQUNYLFlBQVc7SUFDWCxlQUFjO0lBQ2QsZ0JBQWU7SUFDZix1QkFBc0IsRUFDekI7RUFSTDtJQVVRLGNBQWEsRUFDaEI7RUFYTDtJQWFRLGNBQWEsRUFDaEIsRUFBQTs7QUx6ZUQ7RUs4ZUo7SUFFUSxZQUFXO0lBQ1gsWUFBVztJQUNYLGVBQWM7SUFDZCxnQkFBZTtJQUNmLG1CQzljUyxFRCtjWjtFQVBMO0lBU1EsY0FBYSxFQUNoQjtFQVZMO0lBWVEsY0FBYSxFQUNoQixFQUFBOztBQUlUOztHQUVHO0FBRUg7RUFDSSxZQUFXLEVBQ2Q7O0FBRUQ7RUFDSSxZQUFXLEVBQ2Q7O0FBRUQ7RUFDSSxrQkFBaUI7RUFDakIscUJBQW9CLEVBQ3ZCOztBQUVEO0VBQ0ksWUFBVyxFQUNkOztBQUVEO0VBQ0ksaUJBQWdCLEVBQ25COztBQUVEO0VBQ0ksZ0JBQWUsRUFDbEI7O0FMMWhCTztFSzJnQlI7SUFtQlEsa0JBQWlCLEVBQ3BCO0VBRUQ7OztJQUdJLG1CQUFrQjtJQUNsQixZQUFXO0lBQ1gsZUFBYztJQUNkLGdCQUFlO0lBQ2YsZUFBYztJQUNkLFlBQVcsRUFDZCxFQUFBOztBQUdMOztHQUVHO0FBRUg7RUFDSSxZQUFXO0VBQ1gsaUJBQXdCO0VBQ3hCLGtCQ2poQmM7RURraEJkLGtCQUFpQixFQTJCcEI7RUEvQkQ7SUFPUSxVQUFTO0lBQ1Qsa0JDbGlCRTtJRG1pQkYsa0JBQWlCO0lBQ2pCLGFBQVksRUFDZjtFQTlFRDtJQWdGSSxZQUFXO0lBQ1gsVUFBUztJQUNULGtCQUFpQixFQUNwQjtFQWhCTDtJQWtCUSxrQkFBaUI7SUFDakIsc0JBQXFCO0lBQ3JCLGVBQWMsRUFDakI7RUFyQkw7SUF1QlEsYUFBWTtJQUNaLGlCQUFnQjtJQUNoQixpQkFBZ0IsRUFDbkI7RUExQkw7SUV0akJJLFlBQVc7SUFDWCxlQUFjO0lBQ2QsWUFBVyxFRmtsQlY7O0FBR0w7O0dBRUc7QUFFSDs7RUFDSSw4Q0FBNkM7RUFDN0MsNkJBQTRCO0VNdGxCNUIscUJBQW9CLEVOd2xCdkI7O0FPbmxCRztFUCtrQko7O0lBUVEsaURBQWdEO0lBQ2hELDhCQUE2QixFQUNoQyxFQUFBOztBQUdMOztHQUVHO0FBRUg7RUFDSSxpQkFBZ0I7RUFDaEIscUJBQW9CLEVBQ3ZCOztBQUVEO0VBQ0ksWUFBVztFQUNYLGdCQ3JaWTtFRHNaWixnRkNuYWdGO0VEb2FoRiwwQkFBeUIsRUFDNUI7O0FBRUQ7RUFDSSxZQUFXO0VBQ1gsZUNqaUJZLEVEa2lCZjs7QUFFRDtFQUNJLGVDaGtCWSxFRGlrQmY7O0FBRUQ7RUFDSSxlQ3ppQlk7RUQwaUJaLG9CQUFtQixFQUN0Qjs7QUFFRDtFQUNJLFlBQVc7RUFDWCxlQUFjLEVBQ2pCOztBTHBvQk87RUt1bUJSO0lBa0NRLGNBQWEsRUFDaEIsRUFBQTs7QUFJTDs7R0FFRztBQUVIOztFQUVJLHNCQUFxQjtFQUNyQixZQUFXO0VBQ1gsYUFBWTtFQUNaLDBCQy9lMkI7RURnZjNCLG1CQUFrQjtFQUNsQixlQUFlO0VBQ2YsWUFBVztFQUNYLGtCQUFpQjtFQUNqQixtQkFBa0I7RUFDbEIsbUJBQWtCLEVBRXJCOztBQUVEO0VBRVEsYUFBWTtFQUNaLGVDM21CUTtFRDRtQlIsYUFBWTtFQUNaLGtCQUFpQjtFQUNqQixZQUFXO0VBQ1gsZ0JBQWU7RUFDZixzQ0MvZHdCO0VEZ2V4QixrQkFBaUIsRUFDcEI7O0FBVkw7RUFZUSxlQUFjO0VBQ2Qsc0JBQXFCLEVBQ3hCOztBQUdMO0VBSUksb0JBQW1CO0VBQ25CLFlBQVc7RUFDWCxhQUFZO0VBQ1osb0JBQW1CO0VBRW5CLG1EQUFrRDtFQUNsRCxxQkFBb0I7RUFDcEIsbUNBQWtDO0VBQ2xDLDZCQUE0QjtFQUU1QixzQkFBcUI7RUFFckIsYUFBWSxFQUtmOztBQUVEO0VLbHRCSSxZQUFXO0VBQ1gsbUJBQWtCO0VBQ2xCLFNBQVE7RUFDUixVQUFTO0VBQ1QsZUFBYztFQXdCVixrQ0FBbUM7RUFDbkMscUNBQXNDO0VBQ3RDLGdDSm9DUTtFSW5DUixrQkFBaUI7RUxzckJqQixtQkFBa0I7RUFDbEIsU0FBUTtFQUNSLFVBQVM7RUFDVCxrQkFBaUI7RUFDakIsaUJBQWdCLEVBQ25COztBQVJMO0VLbHRCSSxZQUFXO0VBQ1gsbUJBQWtCO0VBQ2xCLFNBQVE7RUFDUixVQUFTO0VBQ1QsZUFBYztFQXdCVixrQ0FBbUM7RUFDbkMscUNBQXNDO0VBQ3RDLGdDTDhyQm9DO0VLN3JCcEMsa0JBQWlCLEVMOHJCcEI7O0FBR0w7Ozs7OztFQU1RLGFBQVk7RUFDWixpQkFBZ0IsRUFDbkI7O0FBR0w7O0dBRUc7QUFFSDtFQUNJLG9CQUFtQixFQUN0Qjs7QUFFRDtFQUNJLGlCQUFnQjtFQUNoQixpQkFBZ0I7RUFDaEIsa0JBQWlCO0VBQ2pCLG9CQUFtQjtFQUNuQixjQUFhO0VBQ2IsMEJDMWtCcUI7RUQya0JyQixvQkNobEJ5QixFRGlsQjVCOztBQUVEOztHQUVHO0FBRUg7RUFDSSxrQkFBaUI7RUFDakIsZ0JDbGlCVztFRG1pQlgsa0JBQWlCLEVBQ3BCOztBQUVEOztHQUVHO0FBRUg7Ozs7Ozs7OztFQVNJLG1CQUFrQjtFQUNsQixpQkNsdUJxQjtFRG11QnJCLGVBQWM7RUFDZCxjQUFhLEVBTWhCO0VBbEJEOzs7Ozs7Ozs7SUV2d0JJLFlBQVc7SUFDWCxlQUFjO0lBQ2QsWUFBVyxFRnN4QlY7O0FBR0w7RUFFUSxZQUFXO0VBQ1gsbUJBQWtCO0VBQ2xCLE9BQU07RUFDTixZQUNKLEVBQUM7O0FBR0w7RUFFUSxZQUFXO0VBQ1gsWUFBVyxFQUNkOztBTG55Qkc7RUt5eUJKOzs7Ozs7OztJQVFJLG1CQUFrQixFQUNyQjtFQUVEO0lBQ0ksa0JBQWlCLEVBQ3BCO0VBRUQ7SUFDSSxjQUFhO0lBQ2Isa0JBQWlCLEVBQ3BCLEVBQUE7O0FBSUw7RUFDSSxpQkFBZ0IsRUFDbkI7O0FBRUQ7O0dBRUc7QUFFSDs7RUU1MEJJLFlBQVc7RUFDWCxlQUFjO0VBQ2QsWUFBVyxFRjYwQmQ7O0FBRUQ7OztFQUdJLGdCQUFlO0VBQ2YsdUJBQXNCLEVBQ3pCOztBQUVEO0VBQ0ksWUFBVztFQUNYLFdBQThCO0VBQzlCLGdCQUFlO0VBQUUsNkJBQTZCO0VBQzlDLFlBQVcsRUFLZDtFQVREO0lBT1EsZ0JBQWUsRUFDbEI7O0FBR0w7RUFDSSxhQUFZO0VBRVosV0FBVTtFQUNWLGlCQUFnQjtFQUFFLDZCQUE2QixFQUtsRDtFQVREO0lBT1EsZ0JBQWUsRUFDbEI7O0FBR0w7RUFDSSxZQUFXO0VBRVgsV0FBVSxFQUNiOztBQUVEO0VBRVEsWUFBVztFQUNYLFlBQVc7RUFDWCxXQUFVO0VBQUUsNkJBQTZCLEVBQzVDOztBQUdMO0VBRVEsYUFBWTtFQUNaLGlCQUFnQjtFQUFFLDZCQUE2QixFQUNsRDs7QUFHTDtFQUVRLGdCQUFlO0VBQUUsNkJBQTZCLEVBQ2pEOztBQUdMO0VBRVEsaUJBQThCLEVBQ2pDOztBQUhMO0VBTVEsWUFBVztFQUNYLGlCQUE4QixFQVVqQztFQWpCTDtJQVVZLGFBQVk7SUFDWixpQkFBOEIsRUFDakM7RUFaVDtJQWVZLGlCQUE4QixFQUNqQzs7QUxwNUJEO0VLbzRCUjtJQXVCWSxZQUFXO0lBQ1gsWUFBVztJQUNYLGdCQUFlO0lBQ2Ysb0JBQW1CO0lBQ25CLFdBQThCLEVBQ2pDO0VBNUJUO0lBK0JZLGFBQVk7SUFDWixZQUFXLEVBVWQ7SUExQ1Q7TUFtQ2dCLGFBQVk7TUFDWixXQUE4QixFQUNqQztJQXJDYjtNQXdDZ0IsV0FBOEIsRUFDakMsRUFBQTs7QUw3NkJMO0VLbTdCSjs7Ozs7Ozs7Ozs7Ozs7O0lBZUksV0FBVTtJQUNWLG9CQUFtQjtJQUNuQixZQUFXO0lBQ1gsWUFBVyxFQUNkO0VBbEVMO0lBcUVRLFlBQVc7SUFDWCxZQUFXLEVBQ2Q7RUFsR0w7SUFxR1EsWUFBVztJQUNYLFlBQVcsRUFDZDtFQUVEO0lBQ0ksV0FBVTtJQUFFLDZGQUE2RixFQUM1RyxFQUFBOztBQUdMLHFCQUFxQjtBQUVyQjtFQUNJLFlBQVcsRUE2Q2Q7RUE5Q0Q7O0lBS1EsV0FBVTtJQUNWLHVCQUFzQjtJQUN0QixjQ2g4QmdCLEVEcThCbkI7SUxyK0JHO01LeTlCUjs7UUFVWSxjQ2g4Qk0sRURrOEJiLEVBQUE7RUFaTDtJQWVRLFlBQVc7SUFDWCxnQkFBZSxFQUNsQjtFQWpCTDtJQW9CUSxhQUFZO0lBQ1osaUJBQWdCLEVBQ25CO0VMLytCRztJS3k5QlI7O01BMkJZLFlBQVc7TUFDWCxZQUFXO01BQ1gsVUFBUztNQUNULGlCQUFnQjtNQUNoQixnQkFBZSxFQUNsQixFQUFBO0VBaENUO0lBb0NRLFdBQVUsRUFDYjtFQXJDTDtJQXdDUSxXQUFVLEVBQ2I7RUF6Q0w7SUU5OUJJLFlBQVc7SUFDWCxlQUFjO0lBQ2QsWUFBVyxFRnlnQ1Y7O0FBR0w7RUFDSSxtQkFBa0IsRUFDckI7O0FBRUQ7O0dBRUc7QUwvZ0NLO0VLaWhDSjtJQUNJLGlCQ3grQmlCO0lEeStCakIsZUFBYztJQUNkLGdCQzMvQkcsRUQ0L0JOLEVBQUE7O0FBR0w7O0dBRUc7QUFFSDtFQUNJLG9CQ3ArQlk7RURxK0JaLGVDditCZ0I7RUR3K0JoQixnQkN6MEJTLEVEbTJCWjtFQTdCRDtJQU1RLDJCQUEwQjtJQUMxQixlQzUrQlk7SUQ2K0JaLGdCQUFlLEVBQ2xCO0VBVEw7SUFZUSxjQUFhO0lBQ2Isa0JBQWlCO0lBQ2pCLGtCQUFpQjtJQUNqQixrQkFBaUI7SUFDakIsa0JBQWlCO0lBQ2pCLG1CQUFrQixFQU9yQjtJQXhCTDtNQW9CWSxzQkFBb0I7TUFDcEIsdUJBQXNCO01BQ3RCLGdCQUFlLEVBQ2xCO0VBdkJUO0lBMkJRLGlCQUFnQixFQUNuQjs7QUFHTDs7R0FFRztBQUVIO0VBQ0ksZUM1K0JZO0VENitCWixtQkFBa0I7RUFDbEIsYUMvaENjO0VEZ2lDZCwwQkFBeUI7RUFDekIsZ0ZDeDNCZ0YsRUR5M0JuRjs7QUFFRDs7R0FFRztBQUVIO0VFaGxDSSxZQUFXO0VBQ1gsZUFBYztFQUNkLFlBQVcsRUZnbENkOztBQUVEOztHQUVHO0FBQ0g7RUFDSSxlQ3JoQ2EsRURzaENoQjs7QUFFRDtFQUNJLGVDbi9CYztFRG8vQmQsa0JBQWlCLEVBQ3BCOztBQUVEO0VBQ0ksZUNsL0JZO0VEbS9CWixrQkFBaUIsRUFDcEI7O0FBRUQ7O0dBRUc7QUFFSDtFQUNJLG9CQzlrQ00sRUQra0NUOztBQUVEO0VBQ0ksbUJBQWtCO0VBQ2xCLG1CQUFrQjtFQUNsQixnQkFBZTtFQUNmLGdCQ3Q1QlMsRUR1NUJaOztBQUVEO0VBQ0ksU0FBUTtFQUNSLFFBQU87RUFDUCxpQkFBZ0IsRUFDbkI7O0FBRUQ7RUFDSSxlQ2xoQ2MsRURvaENqQjs7QUFHRDtFQUNJLGVDbGhDWSxFRG1oQ2Y7O0FBRUQ7RUFDSSxlQ2xrQ2EsRURta0NoQjs7QUxqb0NPO0VLd29DSjtJQUNJLFdBQVUsRUFDYjtFQUVEO0lBQ0ksV0FBVTtJQUNWLG9CQUFtQixFQUN0QjtFQUVEO0lBQ0ksWUFBVztJQUNYLFdBQVU7SUFDVixlQUFjLEVBQ2pCLEVBQUE7O0FBSUw7O0dBRUc7QUFFSDtFQUNJLGNBQWE7RUFDYixvQkFBbUI7RUFDbkIsYUFBWSxFQUNmOztBQUVEO0VBQ0ksa0JBQWlCO0VBQ2pCLGdCQUFlLEVBQ2xCOztBQUVEOztHQUVHO0FBRUg7RUFDSSxvQkFBbUIsRUFDdEI7O0FBRUQ7RUFDSSxlQUFjLEVBQ2pCOztBQUVEO0VBQ0ksa0JBQWlCLEVBQ3BCOztBQUVEO0VBQ0ksbUJBQWtCO0VBQ2xCLHNCQUFxQjtFQUNyQixnQkFBZTtFQUNmLHNCQUFxQjtFQUNyQixjQUFhO0VBQ2IsMEJDeGhDcUI7RUR5aENyQixvQkM5aEN5QixFRCtoQzVCOztBQUVEO0VLM3NDSSxZQUFXO0VBQ1gsbUJBQWtCO0VBQ2xCLFNBQVE7RUFDUixVQUFTO0VBQ1QsZUFBYztFQUdWLHFDQUFxQztFQUNyQyxvQ0FBb0M7RUFDcEMsa0NKc0tpQjtFSXJLakIsaUJBQWdCO0VMbXNDcEIsV0FBVTtFQUNWLFdBQVUsRUFDYjs7QUFFRDtFS2p0Q0ksWUFBVztFQUNYLG1CQUFrQjtFQUNsQixTQUFRO0VBQ1IsVUFBUztFQUNULGVBQWM7RUFHVixxQ0FBcUM7RUFDckMsb0NBQW9DO0VBQ3BDLGtDSmlLcUI7RUloS3JCLGlCQUFnQjtFTHlzQ3BCLFdBQVU7RUFDVixXQUFVLEVBQ2I7O0FBRUQ7RUFDSSxpQkFBZ0IsRUFDbkI7O0FBRUQ7O0dBRUc7QUFFSDtFQUNJLHNCQUFxQjtFQUNyQixrQkFBaUI7RUFDakIsZ0JBQWU7RUFDZixrQkFBaUI7RUFDakIsYUFBWTtFQUNaLG9CQUFtQjtFQUFFLGtFQUFrRSxFQU8xRjtFQWJEO0lBU1EsWUFBVztJQUNYLGtCQUFpQjtJQUNqQixZQUFXLEVBQ2Q7O0FBR0w7O0dBRUc7QUFFSDtFQUNJLGNBQTBCO0VBQzFCLCtCQ2ppQzRCLEVEa2lDL0I7O0FBRUQ7RUFDSSxpQkFBZ0IsRUFDbkI7O0FBRUQ7RUFDSSxlQzlwQ2lCLEVEK3BDcEI7O0FBRUQ7RUFDSSxlQ25xQ1k7RURvcUNaLGdCQ3JpQ1ksRURzaUNmOztBQUVEOztFQUVJLCtCQ25qQzRCLEVEb2pDL0I7O0FBRUQ7RUFDSSxlQzVxQ2lCO0VENnFDakIsb0JBQW1CO0VBQ25CLGdGQ3ZqQ2dGLEVEd2pDbkY7O0FBRUQ7RUFDSSxrQkFBaUI7RUFDakIsZUNwckNZO0VEcXJDWixlQUFjO0VBQUUsNEVBQTRFLEVBSy9GO0VBUkQ7SUFNUSxlQ3ZyQ2EsRUR3ckNoQjs7QUFHTDs7R0FFRztBQUVIOztFQUVJLHNCQUFxQixFQVN4QjtFQVhEOztJQUtRLGNBQWEsRUFDaEI7RUFOTDs7SUFTUSxzQkFBcUIsRUFDeEI7O0FBR0w7RUFFUSxlQzlzQ2E7RUQrc0NiLDhCQUE2QixFQUNoQzs7QUFHTDtFQUNJLGVDcnRDWTtFRHN0Q1osa0JBQWlCLEVBS3BCO0VBUEQ7SUFLUSxlQUFjLEVBQ2pCOztBQUdMOztHQUVHO0FBRUg7O0VBRUksZUFBYyxFQUNqQjs7QUFFRDtFQUNJLGVBQWMsRUFDakI7O0FBRUQ7O0dBRUc7QUFFSDs7O0VBR0ksc0JBQXFCO0VBQ3JCLGlCQUFnQjtFQUNoQixvQkFBbUI7RUFDbkIsMEJBQXlCO0VBQ3pCLGdCQ255Q2lCLEVEOHlDcEI7RUFsQkQ7OztJQVVRLGdCQ25uQ1EsRURvbkNYO0VBWEw7OztJQWFRLG1CQUFrQixFQUNyQjtFQWRMOzs7SUFnQlEsa0JBQWlCLEVBQ3BCOztBQUdMOztrREFFa0Q7QUFFbEQ7RUFDSSxnQkNyb0NTO0VEc29DVCxnRkNocENnRixFRHVxQ25GO0VBekJEO0lFLzFDSSxZQUFXO0lBQ1gsZUFBYztJQUNkLFlBQVcsRUZtMkNWO0VBTkw7SUFTUSxZQUFXO0lBQ1gsWUFBVztJQUNYLGlCQUFnQjtJQUNoQixtQkFBa0I7SUFDbEIsbUJBQWtCLEVBS3JCO0lBbEJMO01BZ0JZLGNBQWEsRUFDaEI7RUFqQlQ7SUFxQlEsWUFBVztJQUNYLG1CQUFrQjtJQUNsQixnQkFBZSxFQUNsQjs7QUFHTDs7RUFFSSxhQUFZLEVBQ2Y7O0FBRUQ7RUFDSSxhQUFZO0VBQ1osYUFBWTtFQUNaLGtCQUFpQixFQUtwQjtFQVJEO0lBTVEsc0JBQXFCLEVBQ3hCOztBQUdMO0VBQ0ksbUJBQWtCO0VBQ2xCLGFBQVksRUFDZjs7QUFFRDtFQUNJLGNBQWE7RUFDYixtQkFBa0I7RUFDbEIsYUFBWTtFQUNaLGFBQVk7RUFDWixhQUFZO0VBQ1osMEJDdDFDWTtFRHUxQ1osMEJBQXlCO0VBQ3pCLFVBQVM7RUFDVCxhQUFZLEVBT2Y7RUFoQkQ7SUtsNUNJLFlBQVc7SUFDWCxtQkFBa0I7SUFDbEIsU0FBUTtJQUNSLFVBQVM7SUFDVCxlQUFjO0lBR1Ysb0NBQXFDO0lBQ3JDLG1DQUFvQztJQUNwQyxpQ0p5RFE7SUl4RFIsaUJBQWdCO0lMcTVDaEIsV0FBb0I7SUFDcEIsVUFBUyxFQUNaOztBQUdMO0VBQ0ksa0JBQWlCO0VBQ2pCLDBCQUF5QjtFQUN6QixtQkFBa0IsRUFDckI7O0FBRUQ7RUFDSSxlQUFjLEVBQ2pCOztBTG42Q087RUt1NkNKO0lBQ0ksZ0JBQWUsRUF3QmxCO0lBdEVMO01BaURZLGNBQWEsRUFDaEI7SUFuQ1Q7TUF1Q2dCLGVBQWM7TUFDZCxpQkFBZ0I7TUFDaEIsV0FBVTtNQUNWLFlBQVc7TUFDWCxhQUFZO01BQ1osOEJBQTZCLEVBU2hDO01BdkJUO1FBaUJnQixZQUFXLEVBQ2Q7TUFoRGpCO1FBbURvQixjQUFhLEVBQ2hCLEVBQUE7O0FBT2pCOztHQUVHO0FBRUg7RUFDSSxhQUFZO0VBQ1osYUFBWTtFQUNaLG9CQUFtQixFQUN0Qjs7QUFFRDs7R0FFRztBQUVIO0VBQ0ksY0FBMEIsRUFNN0I7RUFQRDtJQUlRLHNCQUFxQjtJQUNyQixxQkFBb0IsRUFDdkI7O0FBR0w7RUFDSSxjQUFhLEVBQ2hCOztBQUlEOztHQUVHO0FBRUg7RUFDSSxrQkN2d0NtQixFRHd3Q3RCOztBQUVEO0VBQ0ksNEJBQTJCO0VBQzNCLHFCQzV3Q21CLEVENndDdEI7O0FBRUQ7RUFDSSxpQkFBZ0IsRUFDbkI7O0FBRUQ7RUFDSSx5QkFBd0I7RUFDeEIscUJDcnhDbUIsRURzeEN0Qjs7QUFFRDtFQUNJLGlCQUFnQixFQUNuQjs7QUFFRDtFQUNJLGVDdjZDaUI7RUR3NkNqQixnQkNyeUNXLEVEc3lDZDs7QUFFRDs7R0FFRztBQUVIO0VBQ0ksb0JDOStDTTtFRCsrQ04sb0JBQW1CLEVBQ3RCOztBQUVEOztHQUVHO0FBRUg7RUFDSSxpQkMzK0NjO0VENCtDZCxvQkFBbUI7RUFDbkIsaUNDMTJDcUI7RUQyMkNyQiw4QkMzMkNxQjtFRDQyQ3JCLG9CQ2ozQ3lCO0VEazNDekIsMkJBQTBCLEVBSzdCO0VBWEQ7SUVsaERJLFlBQVc7SUFDWCxlQUFjO0lBQ2QsWUFBVyxFRjBoRFY7O0FBR0w7RUFDSSxvQkN4L0NjLEVEeS9DakI7O0FBR0Q7RUFDSSxpQkM3L0NjLEVEOC9DakI7O0FBRUQ7O0VBRUksZ0ZDejFDZ0Y7RUQwMUNoRixlQ2w5Q1k7RURtOUNaLGtCQUFpQjtFQUNqQixnQkMvMENZLEVEZzFDZjs7QUFFRDs7RUFFSSxvQkFBbUI7RUFDbkIsMEJBQXlCLEVBQzVCOztBQUlEO0VBQ0ksWUFBVztFQUNYLG1CQUFrQixFQVVyQjtFQVpEO0lBS1EsWUFBVztJQUNYLGtCQUFpQixFQUtwQjtJQVhMO01BU1ksYUFBWSxFQUNmOztBQUlUO0VBQ0ksWUFBVztFQUNYLGtCQUFpQjtFQUNqQixhQUFZLEVBb0JmO0VBdkJEO0lBTVEsWUFBVztJQUNYLGFBQVk7SUFDWixzQkFBcUIsRUFFeEI7RUFWTDtJQVlRLGdDQUFnRSxFQUluRTtJQWhCTDtNQWNZLGtDQUFvRSxFQUN2RTtFQWZUO0lBa0JRLGdDQUFnRSxFQUluRTtJQXRCTDtNQW9CWSxrQ0FBb0UsRUFDdkU7O0FBSVQ7RUFDSSxhQUFZLEVBeUJmO0VBMUJEOztJQUtRLFlBQVc7SUFDWCxZQUFXO0lBQ1gsYUFBWSxFQUVmO0VBVEw7SUFXUSxrQkFBaUI7SUFDakIsZ0NBQXVGLEVBQzFGO0VBYkw7O0lBZ0JRLGtDQUE2RixFQUNoRztFQWpCTDtJQW9CUSxpQ0FBMkYsRUFDOUY7RUFyQkw7O0lBd0JRLGtDQUFpRyxFQUNwRzs7QUFHTDtFQUNJLFlBQVc7RUFDWCxtQkFBa0I7RUFDbEIsaUJDL2xEUyxFRGdvRFo7RUFwQ0Q7SUFNUSxZQUFXO0lBQ1gsK0JDbjdDd0I7SURvN0N4QixvQkFBbUI7SUFDbkIsbUJBQWtCLEVBQ3JCO0VBVkw7SUFhUSxZQUFXO0lBQ1gsYUFBWTtJQUNaLGtCQUFpQixFQVNwQjtJQXhCTDtNQWtCWSxtQkFBa0IsRUFLckI7TUF2QlQ7UUFxQmdCLGFBQVksRUFDZjtFQXRCYjs7O0lBNkJRLG1CQUFrQixFQUNyQjtFQTlCTDtJQWlDUSxzQkFBcUIsRUFDeEI7O0FBSUw7RUFDSSxpQkFBZ0I7RUFDaEIsWUFBVztFQUNYLG1CQUFrQixFQUtyQjtFQVJEO0lBTVEsY0FBYSxFQUNoQjs7QUFHTDtFQUNJLFlBQVcsRUFDZDs7QUFFRDs7RUFFSSxzQkFBcUI7RUFDckIsVUFBUztFQUNULGdCQ3g5Q1M7RUR5OUNULG1CQUFrQjtFQUNsQiwwQkFBeUI7RUFDekIsdUJBQXNCO0VBQ3RCLG9CQUFtQjtFQUNuQixrQkFBaUI7RUFDakIsWUFBVztFQUNYLGFBQVk7RUFDWixXQUFVO0VBQ1YsZUNob0RnQjtFRGlvRGhCLDJCQUEwQjtFQUMxQiwrQkMvK0M0QixFRG0vQy9CO0VBbkJEOzs7SUFpQlEsY0FBYSxFQUNoQjs7QUFHTDtFQUNJLHNCQUFxQixFQUl4QjtFQUxEO0lBR1EsZUN6b0RRLEVEMG9EWDs7QUFXTDs7RUFHSSxZQUFXO0VBQ1gsa0JBQWlCO0VBQ2pCLG1CQUFrQjtFQUNsQiw4QkFBNkI7RUFDN0IsbUJBQWtCLEVBS3JCO0VBWkQ7O0lBVVEsMEJDL3BEUSxFRGdxRFg7O0FBR0w7RUtydURJLFlBQVc7RUFDWCxtQkFBa0I7RUFDbEIsU0FBUTtFQUNSLFVBQVM7RUFDVCxlQUFjO0VBaUJWLGtDQUFtQztFQUNuQyxxQ0FBc0M7RUFDdEMsK0JKMkNRO0VJMUNSLG1CQUFrQjtFTGd0RGxCLFNBQVE7RUFDUixpQkFBZ0I7RUFDaEIsVUFBUztFQUNULGtCQUFpQixFQUNwQjs7QUFQTDtFS3J1REksWUFBVztFQUNYLG1CQUFrQjtFQUNsQixTQUFRO0VBQ1IsVUFBUztFQUNULGVBQWM7RUFpQlYsa0NBQW1DO0VBQ25DLHFDQUFzQztFQUN0QywrQkppRnlCO0VJaEZ6QixtQkFBa0IsRUx1dERyQjs7QUFHTDtFS2x2REksWUFBVztFQUNYLG1CQUFrQjtFQUNsQixTQUFRO0VBQ1IsVUFBUztFQUNULGVBQWM7RUF3QlYsa0NBQW1DO0VBQ25DLHFDQUFzQztFQUN0QyxnQ0pvQ1E7RUluQ1Isa0JBQWlCO0VMc3REakIsU0FBUTtFQUNSLGlCQUFnQjtFQUNoQixVQUFTO0VBQ1Qsa0JBQWlCLEVBQ3BCOztBQVBMO0VLbHZESSxZQUFXO0VBQ1gsbUJBQWtCO0VBQ2xCLFNBQVE7RUFDUixVQUFTO0VBQ1QsZUFBYztFQXdCVixrQ0FBbUM7RUFDbkMscUNBQXNDO0VBQ3RDLGdDSjBFeUI7RUl6RXpCLGtCQUFpQixFTDZ0RHBCOztBTG52REc7RUt5dkRKO0lBQ0ksY0FBYSxFQUNoQjtFQS9GTDtJQWtHUSxZQUFXLEVBQ2Q7RUFHRDtJQUNJLGNBQWEsRUFDaEIsRUFBQTs7QUxwd0RHO0VLeXdESjs7SUFHUSxZQUFXLEVBQ2Q7RUFKTDtJQU9RLFlBQVc7SUFDWCxZQUFXLEVBVWQ7SUFsQkw7TUFXWSxZQUFXO01BQ1gsZUFBYyxFQUNqQjtJQWJUO01BZ0JZLGFBQVksRUFDZixFQUFBOztBTDF4REw7RUtpeURKOzs7Ozs7SUFLUSxZQUFXLEVBQ2Q7RUFOTDs7O0lBU1EsWUFBVztJQUNYLFlBQVcsRUFVZDtJQXBCTDs7O01BYVksWUFBVztNQUNYLGVBQWMsRUFDakI7SUFmVDs7O01Ba0JZLGFBQVksRUFDZixFQUFBOztBTHB6REw7RUsyekRKO0lBQ0ksY0FBYSxFQUNoQixFQUFBOztBQUdMOztrREFFa0Q7QUFFbEQ7OztFQUlRLG1CQUFrQjtFQUNsQixnQkFBZSxFQWNsQjtFQW5CTDs7O0lLNzBESSxZQUFXO0lBQ1gsbUJBQWtCO0lBQ2xCLFNBQVE7SUFDUixVQUFTO0lBQ1QsZUFBYztJQVVWLG9DQUFxQztJQUNyQyxtQ0FBb0M7SUFDcEMsOEJKa0RRO0lJakRSLG9CQUFtQjtJTHEwRGYsaUJBQWdCO0lBQ2hCLHNCQUFxQjtJQUNyQixrQkFBaUIsRUFDcEI7RUFaVDs7O0lLNzBESSxZQUFXO0lBQ1gsbUJBQWtCO0lBQ2xCLFNBQVE7SUFDUixVQUFTO0lBQ1QsZUFBYztJQVVWLG9DQUFxQztJQUNyQyxtQ0FBb0M7SUFDcEMsOEJKd0Z5QjtJSXZGekIsb0JBQW1CO0lMMjBEZixpQkFBZ0I7SUFDaEIsc0JBQXFCO0lBQ3JCLGtCQUFpQixFQUNwQjs7QUFsQlQ7OztFSzcwREksWUFBVztFQUNYLG1CQUFrQjtFQUNsQixTQUFRO0VBQ1IsVUFBUztFQUNULGVBQWM7RUFHVixvQ0FBcUM7RUFDckMsbUNBQW9DO0VBQ3BDLGlDSnlEUTtFSXhEUixpQkFBZ0I7RUw0MURSLGlCQUFnQjtFQUNoQixzQkFBcUI7RUFDckIsa0JBQWlCLEVBQ3BCOztBQTVCYjs7O0VLNzBESSxZQUFXO0VBQ1gsbUJBQWtCO0VBQ2xCLFNBQVE7RUFDUixVQUFTO0VBQ1QsZUFBYztFQUdWLG9DQUFxQztFQUNyQyxtQ0FBb0M7RUFDcEMsaUNKK0Z5QjtFSTlGekIsaUJBQWdCO0VMazJEUixpQkFBZ0I7RUFDaEIsc0JBQXFCO0VBQ3JCLGtCQUFpQixFQUNwQjs7QUFNYjtFQUdRLG1CQUFrQixFQUNyQjs7QUFHTDs7a0RBRWtEO0FBRWxEO0VBQ0ksbUJBQWtCLEVBQ3JCOztBQUVEOztFQUVJLGtCQUFpQixFQUNwQjs7QUFFRDtFQUNJLHlCQUF3QixFQUMzQjs7QUFFRDs7RUFFSSxvQkFBbUIsRUFDdEI7O0FBRUQ7RUFDSSxZQUFXLEVBQ2Q7O0FBRUQ7O2tEQUVrRDtBQUVsRDtFQUNJLGNBQWEsRUFDaEI7O0FBRUQ7O2tEQUVrRDtBQUVsRDtFQUNJLGlCQUFnQixFQUNuQjs7QUFFRDtFQUNJLFlBQVc7RUFDWCxpQkFBZ0I7RUFDaEIsWUFBVyxFQUNkOztBQU9EOztrREFFa0Q7QUFHbEQ7RUFDSSxpQkNwNURTLEVEbXRFWjtFQWhVRDtJQUlRLGtCQUFpQjtJQUNqQiw2QkFBNEI7SUFDNUIsK0JBQThCLEVBeVRqQztJQS9UTDs7O01BV2dCLGlCQUFnQjtNQUNoQixtQkFBa0I7TUFDbEIsV0FBVTtNQUNWLE9BQU07TUFDTixnQkMxdURDO01EMnVERCwwQkFBeUIsRUFRNUI7TUxyOERMO1FLNjZEUjs7O1VBa0JvQixVQUFTLEVBTWhCLEVBQUE7TUxyOERMO1FLNjZEUjs7O1VBcUJvQixXQUFVLEVBR2pCLEVBQUE7SUF4QmI7TUEyQlksa0JBQWlCO01BQ2pCLHFCQy82REM7TURnN0RELFdBQVUsRUFzQmI7TUxoK0REO1FLNjZEUjtVQWdDb0IsZUFBYztVQUNkLGtCQUFpQjtVQUNqQixtQkFBa0I7VUFDbEIsV0FBVTtVQUNWLFdBQVU7VUFDVixhQUFZO1VBQ1osU0FBUSxFQWFuQixFQUFBO01MaCtERDtRSzY2RFI7VUEwQ29CLFdBQVUsRUFTckIsRUFBQTtNTGgrREQ7UUs2NkRSO1VBOENvQixXQUFVO1VBQ1YsVUFBUyxFQUlwQixFQUFBO0lBbkRUO01BeURZLG1CQUFrQjtNQUNsQixZQUFVO01BQ1Ysc0JBQXFCO01BQ3JCLG1CQUFrQixFQXNJckI7TUwvbUVEO1FLNjZEUjtVQStEZ0IsV0FBVTtVQUNWLGtCQUFpQjtVQUNqQixpQkFBZ0IsRUFpSXZCLEVBQUE7TUwvbUVEO1FLNjZEUjtVQXFFZ0IsV0FBVTtVQUNWLGlCQUFnQixFQTRIdkIsRUFBQTtNQWxNVDtRQTRFb0IsaUJBQWdCO1FBQ2hCLG9CQ2grRFAsRUQ2L0RJO1FMdmhFVDtVSzY2RFI7WUFrRjRCLGNBQWEsRUFDaEIsRUFBQTtRTGhnRWpCO1VLNjZEUjtZQXVGd0IsYUFBWTtZQUNaLG9CQUFtQjtZQUNuQixvQkFBbUI7WUFDbkIsYUFBWTtZQUNaLGtCQUFpQjtZQUNqQixpQkFBZ0IsRUFjdkIsRUFBQTtRQTFHakI7VUFnR3NCLHNCQUFxQixFQUt0QjtVQXJHckI7WUFtR3dCLHNCQUFxQixFQUN0QjtRQXBHdkI7VUF1R3dCLGdCQUFlO1VBQ2YsWUFBVyxFQUNkO01BekdyQjtRQTZHZ0IsaUJBQWdCO1FBQ2hCLGdCQUFlO1FBQ2YsZ0ZDaDFEb0U7UURpMURwRSwwQkFBeUI7UUFDekIsb0JBQXlCO1FBQ3pCLGlCQUFnQjtRQUNoQixrQkFBaUI7UUFJakIsb0JBQW1CLEVBYXRCO1FMampFTDtVSzY2RFI7WUFxSHFCLGtCQ3pnRVYsRUR3aEVFLEVBQUE7UUxqakVMO1VLNjZEUjtZQXlId0Isa0JBQWlCO1lBQ2pCLGlCQUFnQjtZQUNoQixlQUFjLEVBU3pCLEVBQUE7UUxqakVMO1VLNjZEUjtZQThIb0IsaUJBQWdCLEVBTXZCLEVBQUE7UUxqakVMO1VLNjZEUjtZQWtJd0IsaUJBQWdCLEVBRTNCLEVBQUE7TUFwSWI7UUFzSWdCLGVDOTlESztRRCs5REwsaUJBQWdCLEVBTW5CO1FBN0liO1VBMElvQixlQ2wrREM7VURtK0RELDJCQUEwQixFQUM3QjtNQTVJakI7UUErSWdCLGlCQUF1QixFQUUxQjtNQWpKYjtRQW1Kb0IscUJBQW9CO1FBQ3BCLGlCQUFnQixFQWNuQjtRTC9rRVQ7VUs2NkRSO1lBd0p3QixvQkFBbUI7WUFDbkIsb0JBQW1CO1lBQ25CLFlBQVc7WUFDWCxtQkFBa0I7WUFDbEIsaUJBQWdCLEVBTXZCO1lBbEtqQjtjQStKNEIsY0FBYSxFQUNoQixFQUFBO01BaEt6QjtRQXFLZ0IsaUJBQWdCLEVBNEJuQjtRTDltRUw7VUs2NkRSO1lBMEtvQixrQkFBaUI7WUFDakIsWUFBVztZQUNYLGtCQUFpQjtZQUNqQixvQkNoa0VQO1lEaWtFTyxpQkFBZ0I7WUFDaEIsb0JDbmtFVDtZRG9rRVMsZUFBYyxFQWlCckIsRUFBQTtRTDltRUw7VUs2NkRSO1lBcUxvQixvQkFBbUIsRUFZMUIsRUFBQTtRTDltRUw7VUs2NkRSO1lBMkxvQixZQUFXO1lBQ1gsa0JBQWlCLEVBS3hCLEVBQUE7SUw5bUVMO01LNjZEUjtRQXdNb0IsV0FBVTtRQUNWLFVBQVMsRUFHaEIsRUFBQTtJTHpuRUw7TUs2NkRSO1FBaU5pQixpQkFBZ0IsRUFvQ3BCLEVBQUE7SUxscUVMO01LNjZEUjtRQXNOd0IsZ0JBQWUsRUFZdEIsRUFBQTtJTC9vRVQ7TUs2NkRSO1FBeU53QixZQUFXO1FBQ1gsa0JBQWlCLEVBUXhCLEVBQUE7SUwvb0VUO01LNjZEUjtRQThOd0IsWUFBVztRQUNYLGtCQUFpQixFQUd4QixFQUFBO0lML29FVDtNSzY2RFI7UUFzT3dCLFlBQVc7UUFDWCxrQkFBaUIsRUFZeEIsRUFBQTtJTGhxRVQ7TUs2NkRSO1FBMk93QixZQUFXO1FBQ1gsa0JBQWlCLEVBT3hCLEVBQUE7SUxocUVUO01LNjZEUjtRQStPd0IsV0FBVTtRQUNWLGlCQUFnQixFQUd2QixFQUFBO0lMaHFFVDtNSzY2RFI7UUE0UG9CLFdBQVU7UUFDVixVQUFTO1FBQ1QsYUFBWSxFQUduQixFQUFBO0lMOXFFTDtNSzY2RFI7UUFvUWlCLGlCQUFnQixFQThCcEIsRUFBQTtJTC9zRUw7TUs2NkRSO1FBd1F3QixnQkFBZSxFQVN0QixFQUFBO0lMOXJFVDtNSzY2RFI7UUEyUXdCLFlBQVc7UUFDWCxrQkFBaUIsRUFLeEIsRUFBQTtJTDlyRVQ7TUs2NkRSO1FBK1F3QixxQkFBb0IsRUFFM0IsRUFBQTtJTDlyRVQ7TUs2NkRSO1FBb1J3QixZQUFXO1FBQ1gsa0JBQWlCLEVBWXhCLEVBQUE7SUw5c0VUO01LNjZEUjtRQXlSd0IsWUFBVztRQUNYLGtCQUFpQixFQU94QixFQUFBO0lMOXNFVDtNSzY2RFI7UUE2UndCLFlBQVc7UUFDWCxlQUFjLEVBR3JCLEVBQUE7SUw5c0VUO01LNjZEUjtRQXdTb0IsU0FBUSxFQWFmO1FBclRiO1VBMFN3QixTQUFRLEVBQ1gsRUFBQTtJTHh0RWI7TUs2NkRSO1FBOFNvQixXQUFVO1FBQ1YsV0FBVTtRQUNWLGFBQVksRUFLbkI7UUFyVGI7VUFrVHdCLFdBQVUsRUFDYixFQUFBO0lBblRyQjtNQXlUa0IsY0FBYSxFQUFJO0lMdHVFM0I7TUs2NkRSO1FBMFR5RCxjQUFhLEVBQUksRUFBQTtJTHZ1RWxFO01LNjZEUjtRQTRUMkQsZUFBYyxFQUFJLEVBQUE7O0FBSzdFO0VBRVEsY0FBYSxFQUNoQjs7QUFITDtFQU1ZLGtCQUFpQjtFQUNqQixrQkFBaUI7RUFDakIsY0FBYTtFQUNiLG1CQUFrQjtFQUNsQixvQkFBbUIsRUFDdEI7O0FBSVQ7RUFFSSxjQUFhLEVBb0JoQjtFTG54RU87SUs2dkVSO01BS1ksZUFBYztNQUNkLFlBQVc7TUFDWCxVQUFTO01BQ1QsZUFBYztNQUNkLGtCQUFpQixFQWE1QixFQUFBO0VBdEJEO0lBYVcsbUJBQWtCLEVBUW5CO0lBckJWO01BZ0JnQixXQUFVO01BQ1YsbUJBQWtCO01BQ2xCLFNBQVE7TUFDUixZQUFXLEVBQ2Q7O0FBR2I7Ozs7O0VBTVEsaUJBQWdCO0VBQ2hCLGVBQWMsRUFDakI7O0FBUkw7Ozs7O0VBVVEsZUMxc0VRO0VEMnNFUixpQ0Mzc0VRO0VENHNFUixpQkFBZ0IsRUFRbkI7RUFwQkw7Ozs7Ozs7OztJQWVZLHNCQUFxQjtJQUNyQixlQzN1RUk7SUQ0dUVKLHNCQzV1RUksRUQ2dUVQOztBQUlUO0VBRVksc0JBQXFCO0VBQ3JCLGVDenRFSTtFRDB0RUosc0JDMXRFSSxFRDJ0RVg7O0FBRUw7RUFHWSxlQ2h1RUk7RURpdUVKLHNCQ2p1RUksRURrdUVQOztBQUlUO0VBRVEsK0JDeHVFUTtFRHl1RVIsWUFBVyxFQThFZDtFQWpGTDtJQU1ZLGVDeHdFUztJRHl3RVQsb0JBQW1CO0lBQ25CLFdBQVUsRUFDYjtFQVRUO0lBWVksaUJBQWdCO0lBQ2hCLGdCQUFnQjtJQUNoQixvQkFBbUI7SUFDbkIsdUJBQXNCLEVBU3pCO0lMbDFFRDtNSzB6RVI7UUFpQmdCLFdBQVU7UUFDVixZQUFXLEVBTWxCLEVBQUE7SUxsMUVEO01LMHpFUjtRQXFCZ0IsV0FBVTtRQUNWLFlBQVcsRUFFbEIsRUFBQTtFQXhCVDtJQTZCWSxnQkFBZ0I7SUFDaEIsc0JBQXFCO0lBQ3JCLG9CQ2gwRUQ7SURpMEVDLGlCQUFnQjtJQUNoQixpREFBZ0Q7SUFDaEQsNkJBQTRCO0lBQzVCLGtDQUFpQztJQUNqQyxZQUFXLEVBK0JkO0lMNzNFRDtNSzB6RVI7UUF1Q2dCLFdBQVU7UUFDVixZQUFXO1FBQ1gsWUFBVztRQUNYLHFCQUFvQixFQXlCM0IsRUFBQTtJTDczRUQ7TUswekVSO1FBOENnQixXQUFVO1FBQ1YsWUFBVztRQUNYLFlBQVc7UUFDWCxxQkFBb0IsRUFrQjNCLEVBQUE7SUFuRVQ7TUE0RGdCLFdBQVUsRUFDYjtNTHYzRUw7UUswekVSO1VBMERvQixpQkFBdUIsRUFHOUIsRUFBQTtJQTdEYjtNQStEZ0IsZ0ZDN3FFb0U7TUQ4cUVwRSxnQkN2cUVBO01Ed3FFQSxlQ3AwRUksRURxMEVQO0VMNTNFTDtJSzB6RVI7TUF1RWUsZUFBYyxFQUVwQixFQUFBO0VMbjRFRDtJSzB6RVI7TUE2RWUsb0JBQW1CLEVBRXpCLEVBQUE7O0FBTUw7RUFDSSxrQkFBaUIsRUFDcEI7O0FBN2xERDtFQW9tREEsa0JBQWlCLEVBZ0NwQjtFQWpDRDtJQUdRLGdCQUFnQjtJQUNoQixrQkFBaUIsRUE0QnBCO0lBaENMO01BT1ksMkJBQTZCLEVBd0JoQztNQS9CVDtRQVVnQixlQUFjO1FBQ2QsbUJBQWtCLEVBZ0JyQjtRTGw3RUw7VUt1NUVSO1lBY29CLGlCQUFnQixFQWF2QixFQUFBO1FBM0JiO1VBaUJvQixpQkFBZ0I7VUFDaEIsZ0JDcnRFTDtVRHN0RUssZ0ZDOXRFZ0U7VUQrdEVoRSxlQ3AzRUE7VURxM0VBLHNCQUFxQjtVQUNyQixpQkFBZ0IsRUFDbkI7UUF2QmpCO1VBeUJvQixvQkFBbUIsRUFDdEI7TUExQmpCO1FBNkJnQixrQkFBaUIsRUFDcEI7O0FBSWI7RUFFUSxnQkFBZ0I7RUFDaEIsa0JBQWlCO0VBQ2pCLCtCQ3oyRVE7RUQwMkVSLFlBQVcsRUF3QmQ7RUE3Qkw7SUFRWSwyQkFBa0MsRUFnQnJDO0lBeEJUO01BV2dCLGVBQWMsRUFRakI7TUFuQmI7UUFjb0IsaUJBQWdCLEVBSW5CO1FMMzhFVDtVS3k3RVI7WUFnQndCLFdBQVUsRUFFakIsRUFBQTtJQWxCakI7TUFxQmdCLGtCQUFpQjtNQUNqQixvQkFBbUIsRUFDdEI7RUF2QmI7SUEyQlksYUFBWSxFQUNmOztBQUdUO0VBRVksZUFBYyxFQUNqQjs7QUFIVDtFQUtnQixtQkFBa0I7RUFDbEIsZUMxNEVBO0VEMjRFQSxtQkFBa0I7RUFDbEIsc0JBQXFCLEVBa0J2QjtFQTFCZDtJQVVvQixlQ3o2RUo7SUQwNkVJLHNCQUFxQjtJQUNyQixhQUFZLEVBQ2Y7RUFiakI7SUFlb0IsZUFBYztJQUNkLFlBQVc7SUFDWCxtQkFBa0I7SUFDbEIsUUFBTztJQUNQLFVBQVM7SUFDVCxZQUFXO0lBQ1gsYUFBWTtJQUNaLG9EQUFtRDtJQUNuRCwyQkFBMEI7SUFDMUIsNkJBQTRCLEVBQy9COztBQU1qQjtFQUVRLGdCQUFlLEVBQ2xCOztBQUtMO0VBQ0ksc0JBQXFCO0VBQ3JCLHVCQUFzQjtFQUN0QixpQkFBZ0I7RUFDaEIsYUFBWTtFQUNaLFlBQVc7RUFDWCx1Q0FBc0M7RUFDdEMsMEJDNzhFWTtFRDg4RVosZ0NBQStCO0VBQy9CLG1CQUFrQixFQUNyQjs7QUFFRDtFQUNFO0lBQVEsd0JBQXVCLEVBQUE7RUFDL0I7SUFBUSwwQkFBeUIsRUFBQSxFQUFBOztBUTNoRm5DOztrREFFa0Q7QUFFbEQ7O0dBRUc7QUFFSDtFQUdRLG1CUHlDYSxFT3hDaEI7O0FBSkw7RUFPUSxtQkFBa0I7RUFDbEIsYUFBWTtFQUNaLGdCUHNOUTtFT3JOUixnQkFBZSxFQUNsQjs7QUFHTDtFQUVRLFlBQVc7RUFDWCxZQUFXLEVBQ2Q7O0FBR0w7RUFDSSxnQkFBc0IsRUFDekI7O0FBRUQ7RVpnQkksVUFBUztFQUNULG9CQUFtQjtFQUNuQixlSytDWTtFTDlDWixnRktzS2dGO0VMcktoRixnQks0S1k7RUwzS1osb0JBQW1CO0VBQ25CLG1CQUFrQjtFQUNsQixpQkFBZ0I7RVlyQmhCLG9CQUFtQjtFQUNuQixvQkFBbUIsRUFDdEI7O0FBRUQ7O0dBRUc7QUFFSDtFQUNJLGlCQUFnQixFQUtuQjtFQU5EO0lObENJLFlBQVc7SUFDWCxlQUFjO0lBQ2QsWUFBVyxFTXFDVjs7QUFHTDtFQUVRLGdCQUFlO0VBQ2YsdUJBQXNCLEVBQ3pCOztBQUlMLGlDQUFpQztBQUNqQyxxREFBcUQ7QUFDckQ7RUFDSSxZQUFXO0VBQ1gsa0JBQWlCO0VBQ2pCLGdCQUFlLEVBQ2xCOztBQUdEO0VBQ0ksa0JBQWlCO0VBQ2pCLG1CQUFrQjtFQUNsQixVQUFTLEVBQ1o7O0FBRUQ7O0dBRUc7QUFFSDtFQUNJLHNCQUFxQjtFQUNyQixnQlBvSlM7RUUvTlQsdUJBQXNCO0VBQ3RCLHNCQUFxQjtFQUNyQiwwQkFBeUI7RUFDekIscUJBQW9CO0VBQ3BCLGtCQUFpQixFS3lFcEI7O0FBRUQ7O0VBRUksY0FBYTtFQUNiLGVQMkJjO0VPMUJkLG9CQUFtQjtFQUNuQiwrQlArSDRCO0VPOUg1QixnQlA2SVksRU81SWY7O0FBRUQ7O0VBR1EsWUFBVztFQUNYLGVQaUJVO0VPaEJWLG9CQUFtQjtFQUNuQiwrQlBxSHdCO0VPcEh4QixnQlBtSVEsRU9sSVg7O0FBR0w7O0VBRUksY0FBYSxFQUNoQjs7QUFFRDs7R0FFRztBQUVIO0VBQ0ksZVBmaUI7RU9nQmpCLGdCUG9IWSxFT25IZjs7QUFFRDs7R0FFRztBQUVIO0VBQ0ksZ0JBQWUsRUFDbEI7O0FBRUQ7RUFDSSxpQkFBZ0IsRUFDbkI7O0FBRUQ7RUFDSSxhQUFZO0VBQ1osMEJQaUJvQjtFT2hCcEIsZ0JQNkZXO0VPNUZYLGFBQVksRUFDZjs7QUFFRDs7R0FFRztBWGtNSDtFVy9MSSxZQUFXO0VBQ1gsa0JBQWlCO0VBQ2pCLG9CQUFtQjtFQUNuQixhQUFZO0VBQ1osdUJBQXNCLEVBRXpCOztBQUtEOztHQUVHO0FBRUg7RUFFSSxvQkFBbUI7RUFDbkIsZ0JQa0VXO0VPakVYLGFBQVk7RUFDWixtQkFBa0I7RUFDbEIsZVBoRWlCLEVPdUVwQjtFQWJEO0lBVVEsY0FBYSxFQUNoQjs7QUFJTDtFQUNJLHNCUDNEYyxFTzREakI7O0FBR0Q7RUFDSSxrQ0FBbUMsRUFDdEM7O0FYMEhEO0VXdkhJLGFBQVk7RUFDWiwyQkFBMEI7RUFDMUIsZ0JBQWUsRUFDbEI7O0FBR0Q7Ozs7O0VBS1EsZ0JBQWU7RUFDZix5QkFBd0I7RUFDeEIsWUFBVztFQUNYLHVCQUFzQjtFQUN0QixhQUFZO0VBQ1osZUFBYztFQUNkLGFBQVk7RUFDWixrQkFBaUI7RUFDakIsaUJBQWdCO0VBQ2hCLGdCUDBCSyxFT3BCWjtFQXBCRDs7Ozs7SUFpQlUsZVB4SVU7SU95SVYsK0JQVXNCLEVPVHZCO0VBbkJUOzs7OztJQWlCVSxlUHhJVTtJT3lJViwrQlBVc0IsRU9UdkI7O0FBR1QsMERBQTBEO0FBQzFEO0VBQ0k7Ozs7Ozs7SUFPSSxnQkFBZTtJQUFFLG1DQUFtQyxFQUN2RCxFQUFBOztBQUdMO0VBQ0ksZ0JBQWUsRUFDbEI7O0FBRUQ7O0dBRUc7QUFFSDs7RUFFSSxXQUFVO0VBQ1YsbUJBQWtCO0VBQ2xCLHVCQUFzQixFQUN6Qjs7QUFFRDs7R0FFRztBQUVIO0VBQ0ksZUFBYyxFQUVqQjs7QUFFRDtFQUNJLGVBQWMsRUFDakI7O0FBRUQ7O0dBRUc7QUFFSDs7RUFFSSxtQkFBa0I7RUFDbEIsVUFBUztFQUNULHNCQUFxQixFQUN4Qjs7QUFFRDs7RUFFSSxZQUFXO0VBQ1gsZUFBYztFQUNkLG1CQUFrQjtFQUNsQixnQlB2Q1M7RU93Q1Qsb0JBQW1CO0VBQ25CLG9CQUFtQixFQUN0Qjs7QUFFRDs7R0FFRztBQUVIOztFQUVJLGdCQUFlO0VBQ2YsZVByS2M7RU9zS2QsZ0JQbERXLEVPbURkOztBQUVEOztrREFFa0Q7QUFFbEQ7RUFHUSxvQlBqUFUsRU9rUGI7O0FBSkw7RUFPUSxZQUFXLEVBQ2Q7O0FBUkw7OztFQWFRLG9CUDNQVSxFTzRQYjs7QWIvUkc7RWFpUlI7SUFrQlksb0JBQW1CLEVBNEJ0QjtJQTlDVDtNTnRSSSxZQUFXO01BQ1gsZUFBYztNQUNkLFlBQVcsRU15U0Y7SUFyQmI7TUF3QmdCLGtCQUFpQjtNQUNqQixtQkFBa0IsRUFvQnJCO01BN0NiO1FBNEJvQix1QkFBc0IsRUFnQnpCO1FBNUNqQjtVQThCd0IsV0FBVTtVQUNWLFlBQVcsRUFDZDtRQWhDckI7VUFrQ3dCLFdBQVU7VUFDVixZQUFXLEVBQ2Q7UUFwQ3JCO1VBc0N3QixXQUFVO1VBQ1YsWUFBVyxFQUNkO1FBeENyQjtVQTBDd0IsY0FBYSxFQUNoQixFQUFBOztBQU9yQjtFQUVRLGlCQUFnQjtFQUNoQixXQUFVO0VBQ1YsVUFBUyxFQUVaOztBQU5MO0VBU1EsV0FBVSxFQUNiOztBQVZMO0VBYVEsMkJBQTBCLEVBQzdCOztBQWRMO0VBaUJRLGlCQUFnQjtFQUNoQixVQUFTO0VBQ1QsV0FBVTtFQUNWLGdCUGpJSztFT2tJTCxlUHBRUTtFT3FRUiwrQlAvSXdCO0VPZ0p4QiwyQkFBMEIsRUFFN0I7O0FBSUwsMEZBQTBGO0FBQzFGOzs7OztFQW1DSSxxSEFBcUgsRUFVeEg7RUE3Q0Q7Ozs7O0lBT1EsZ0JBQWU7SUFDZixZQUFXLEVBS2Q7SUFiTDs7Ozs7TUFXWSxjQUFhLEVBQ2hCO0VBWlQ7Ozs7Ozs7Ozs7SUFpQlEsWUFBVztJQUNYLG9CQUFtQjtJQUNuQixpQkFBZ0IsRUFFbkI7RUFyQkw7Ozs7O0lSdUZJLGVDcFdZO0lEcVdaLDBCQ3hSeUI7SUR5UnpCLGtCQUFpQjtJUS9EYix3QkFBdUI7SUFDdkIsc0JBQXFCO0lBQ3JCLFlBQVc7SUFDWCxZQUFXO0lBQ1gsWUFBVztJQUNYLHdCQUF1QjtJQUN2Qix1QkFBc0IsRUFDekI7RUFqQ0w7Ozs7O0lBcUNRLDhCQUE2QjtJQUM3QixnQkFBZSxFQUtsQjtJQTNDTDs7Ozs7TUF5Q1ksOEJBQTZCLEVBQ2hDOztBQUtUOztFQUVJLG1CQUFrQjtFQUNsQixZQUFXO0VBQ1gsZ0JBQWUsRUFDbEI7O0FBRUQ7RUFFUSxZQUFXO0VBQ1gsZ0JBQWU7RUFDZixtQkFBa0IsRUFDckI7O0FBR0w7RUFDSSxpQkFBZ0IsRUFlbkI7RUFoQkQ7SUFJUSxZQUFXLEVBQ2Q7RUFMTDs7SUFRUSxrQkFBaUIsRUFDcEI7RUFUTDtJQVdRLFlBQVc7SUFDWCxzQkFBcUI7SUFDckIsWUFBVztJQUNYLFdBQVUsRUFDYjs7QUFJTDtFQUNJLGNBQWEsRUFDaEI7O0FBS0QsNEJBQTRCO0FBN1U1QjtFQStVRSx5QkFBd0I7RUFDeEIsc0JBQXFCO0VBQ3JCLGlCQUFnQjtFQUNoQixhQUFXO0VBQ1gsaUJBQWdCO0VBQ2hCLGVBQWM7RUFDZCxZQUFXLEVBQ1o7O0FBR0QsYUFBYTtBQXpWYjtFQTJWRSxZQUFVO0VBQ1Ysa0JBQWlCO0VBQ2pCLHdCQUF1QjtFQUN2Qiw4REFBNEQ7RUFDNUQseUNBQXdDO0VBQ3hDLHNCQUFxQjtFQUNyQiw2QkFBNEIsRUFLN0I7RWJsZE87SWE0R1I7TUFtV1Esa0JBQWlCO01BQ2pCLHlDQUF3QyxFQUUvQyxFQUFBOztBQUVEO0VBQ0ksWUFBVztFQUNYLGVQaFlzQixFT2lZekI7O0FDcmVEOztrREFFa0Q7QUFFbEQ7RUFDSSxxQkFBb0IsRUFDdkI7O0FBRUQ7O2tEQUVrRDtBQUVsRDtFQUNJLFlBQVc7RUFDWCxrQkFHSixFQUFDOztBQUdEOztFQUVJLFdBQVU7RUFDVixvQkFBbUIsRUFHdEI7O0FBRUQ7RUFFSSxrQkFBaUI7RUFDakIsbUJBQWtCLEVBZ0JyQjtFQW5CRDtJQU1RLGtCQUFpQixFQUNwQjtFQVBMO0lBVVEsYUFBWSxFQUNmO0VBWEw7SUFlWSxXQUFVLEVBQ2I7O0FBTVQ7RUFFSSxpQkFBZ0I7RUFDaEIsb0JBQW1CLEVBQ3RCOztBQUVEO0VBQ0ksWUFBVyxFQUNkOztBQUVEO0VBQ0ksa0NSUWdCLEVRUG5COztBQUVEOztFQUVJLCtCUnVKNkIsRVF0SmhDOztBQUdEO0VBQ0ksa0JBQWlCO0VBQ2pCLGlCQUFnQixFQUtuQjtFQVBEO0lBS1EsYUFBWSxFQUNmOztBQUdMOztrREFFa0Q7QUFFbEQ7RUFDSSwwQlIwR29CO0VRekdwQixtQkFBa0I7RUFDbEIsaUJBQWdCLEVBTW5CO0VBVEQ7SUFNUSxrQkFBaUI7SUFDakIsZ0JBQWUsRUFDbEI7O0FBR0w7O0VBRUksb0JBQW1CLEVBQ3RCOztBQUVEO0VBQ0ksa0JBQWlCO0VBQ2pCLHdCQUF1QixFQUMxQjs7QUFFRDtFQUNJLGVBQWMsRUFDakI7O0FBRUQ7O2tEQUVrRDtBQUVsRDs7RUFHUSw4QlIyRWdCLEVRMUVuQjs7QUFKTDs7RUFRUSxpQ1JzRWdCO0VRckVoQixhQUFZO0VBQ1osOEJBQTZCLEVBQ2hDOztBQVhMO0VBY1EsMEJSbUVvQixFUWxFdkI7O0FBZkw7RUFrQlEsMEJSOERtQixFUTdEdEI7O0FBR0w7O2tEQUVrRDtBZDFIMUM7RWNrT0o7SUFoQkEsYUFBYSxFQWtCWjtJQXRHRDs7O01BR0ksZUFBYyxFQUNqQjtJQUVEO01BQ0ksZ0JBQWU7TUFDZixlQUFjLEVBQ2pCO0lBRUQ7TUFDSSxjQUFhLEVBQ2hCO0lBRUQ7TUFDSSxjQUFhLEVBQ2hCO0lBRUQ7TUFDSSxtQkFBa0I7TUFDbEIsaUNSbUJpQixFUWxCcEI7SUFFRDtNQUNJLG9CQUFtQjtNQUNuQixnQkFBZTtNQUNmLGlCQUFnQixFQUNuQjtJQUVEO01BQ0ksY0FBYSxFQUNoQjtJQUVEO01BQ0ksa0JBQWlCLEVBQ3BCO0lBRUQ7O01BRUksa0JBQWlCLEVBQ3BCO0lBRUQ7TUFDSSxpQkFBZ0I7TUFDaEIsbUJBQWtCLEVBQ3JCO0lBRUQ7TUFDSSxrQ0FBaUM7TUFDakMsZ0JSeUNRO01ReENSLGdGUjJCNEU7TVExQjVFLG1CQUFrQjtNQUNsQiwwQkFBeUIsRUFDNUI7SUFFRDtNQUNJLGVBQWM7TUFDZCxrQkFBaUIsRUFDcEI7SUFFRDtNUGhNQSxZQUFXO01BQ1gsZUFBYztNQUNkLFlBQVcsRU9nTVY7SUFFRDtNQUNJLGVBQWM7TUFDZCxZQUFXLEVBQ2Q7SUFFRDtNQUNJLGNBQWEsRUFDaEI7SUFFRDtNQUNJLFlBQVc7TUFDWCxXQUFzQixFQUN6QjtJQUVEO01BQ0ksaUJBQWdCO01BQ2hCLFdBQXNCLEVBQ3pCO0lBSUQ7TUFDSSxjQUFhLEVBQ2hCO0lBRUQ7TUFDSSxXQUFVLEVBQ2I7SUFFRDtNQUNJLGVBQWMsRUFDakIsRUFBQTs7QWQ5Tkc7RWN3T0o7SUF0QkEsYUFBYSxFQXdCWjtJQTVHRDs7O01BR0ksZUFBYyxFQUNqQjtJQUVEO01BQ0ksZ0JBQWU7TUFDZixlQUFjLEVBQ2pCO0lBRUQ7TUFDSSxjQUFhLEVBQ2hCO0lBRUQ7TUFDSSxjQUFhLEVBQ2hCO0lBRUQ7TUFDSSxtQkFBa0I7TUFDbEIsaUNSbUJpQixFUWxCcEI7SUFFRDtNQUNJLG9CQUFtQjtNQUNuQixnQkFBZTtNQUNmLGlCQUFnQixFQUNuQjtJQUVEO01BQ0ksY0FBYSxFQUNoQjtJQUVEO01BQ0ksa0JBQWlCLEVBQ3BCO0lBRUQ7O01BRUksa0JBQWlCLEVBQ3BCO0lBRUQ7TUFDSSxpQkFBZ0I7TUFDaEIsbUJBQWtCLEVBQ3JCO0lBRUQ7TUFDSSxrQ0FBaUM7TUFDakMsZ0JSeUNRO01ReENSLGdGUjJCNEU7TVExQjVFLG1CQUFrQjtNQUNsQiwwQkFBeUIsRUFDNUI7SUFFRDtNQUNJLGVBQWM7TUFDZCxrQkFBaUIsRUFDcEI7SUFFRDtNUGhNQSxZQUFXO01BQ1gsZUFBYztNQUNkLFlBQVcsRU9nTVY7SUFFRDtNQUNJLGVBQWM7TUFDZCxZQUFXLEVBQ2Q7SUFFRDtNQUNJLGNBQWEsRUFDaEI7SUFFRDtNQUNJLFlBQVc7TUFDWCxXQUFzQixFQUN6QjtJQUVEO01BQ0ksaUJBQWdCO01BQ2hCLFdBQXNCLEVBQ3pCO0lBSUQ7TUFDSSxjQUFhLEVBQ2hCO0lBRUQ7TUFDSSxXQUFVLEVBQ2I7SUFFRDtNQUNJLGVBQWMsRUFDakIsRUFBQTs7QWQ5Tkc7RWM4T0o7SUFDSSxjQUFhLEVBQ2hCLEVBQUE7O0FDOVBMOztrREFFa0Q7QUFFbEQ7O0VBRUksYUFBWSxFQUNmOztBQUVEO0VBQ0ksaUJBQWdCO0VBQ2hCLGlCQUFnQjtFQUNoQixlQUFjLEVBQ2pCOztBQUVEO0VSTkksWUFBVztFQUNYLGVBQWM7RUFDZCxZQUFXLEVRTWQ7O0FDakJEOztrREFFa0Q7QUFFbEQ7RUFDSSxpQkFBZ0IsRUFDbkI7O0FoQlFPO0VnQlZSO0lBT1EsbUJBQWtCLEVBQ3JCLEVBQUE7O0FBSUw7O0VBRUksZ0ZWd01nRixFVXZNbkY7O0FBR0Q7RUFDSSxzQkFBcUIsRUFDeEI7O0FBQ0Q7O2tEQUVrRDtBQUVsRDtFQUNJLGNBQWE7RUFDYixtQkFBa0IsRUFzQnJCO0VoQnZDTztJZ0JlUjtNQUlRLHNCQUFxQjtNQUNyQixtQkFBa0IsRUFtQnpCLEVBQUE7RUF4QkQ7SUFTUSxjQUFhLEVBQ2hCO0VBVkw7SUFhWSxlQUFjO0lBQ2QsWUFBVztJQUNYLDZDQUE0QztJQUM1QyxZQUFXO0lBQ1gsWUFBVztJQUNYLHNCQUFxQjtJQUNyQixtQkFBa0I7SUFDbEIsWUFBVztJQUNYLFVBQVMsRUFFWjs7QUFHTDtFQUNJLHNCQUFxQjtFQUNyQixnRlZpSzRFO0VVaEs1RSxXQUFVO0VBQ1Ysd0JBQXVCLEVBRTFCOztBQUtEO0VBQ0ksY0FBYTtFQUNiLGtCQUFpQjtFQUNqQixrQkFBaUI7RUFDakIsY0FBYTtFQUNiLGVBQWM7RUFFZCxrQkFBaUI7RUFDakIsbUJBQWtCLEVBS3JCO0VBYkQ7SVR6REEsWUFBVztJQUNYLGVBQWM7SUFDZCxZQUFXLEVTbUVOOztBQUdMO0VBQ0ksY0FBYSxFQUNoQjs7QUFFRjs7Ozs7Ozs7O09BU0k7QUFPUDs7a0RBRWtEO0FBRzlDO0VBQ1EsZUFBYztFQUNkLFlBQVc7RUFDWCxtQkFBa0I7RUFDbEIsWUFBVztFQUNYLFVBQVMsRUFlaEI7RUFwQkQ7SUFVZ0IsWUFBVztJQUNYLGdCQUFlLEVBT2xCO0lBbEJiO01BYW9CLGdCQUFlLEVBQ2xCO0lBZGpCO01BZ0JvQixjQUFhLEVBQ2hCOztBaEI3R2I7RWdCNEZKO0lBMkJJLFlBQVcsRUFDZCxFQUFBOztBaEJ4SEc7RWdCNEZKO0lBa0NJLGtCQUFpQjtJQUNqQixZQUFXO0lBQ1gsbUJBQWtCO0lBQ2xCLGtCQUFpQjtJQUNqQixhQUFZLEVBZWY7SUFwQkQ7TUFRUSxzQkFBcUI7TUFDckIsbUJBQWtCLEVBVXJCO01BcERMO1FBOENnQixjQUFhLEVBQ2hCO01BL0NiO1FBaURnQixnQkFBZSxFQUNsQixFQUFBOztBQU9qQjs7a0RBRWtEO0FBRWxEO0VBQ0ksWUFBVztFQUNYLGlCQUFnQixFQUluQjtFaEIvSk87SWdCeUpSO01BSVEsbUJBQWtCLEVBRXpCLEVBQUE7O0FoQi9KTztFZ0J5SlI7SUFlUSxXQUFVO0lBQ1YsWUFBVyxFQUNkLEVBQUE7O0FBSUw7O0dBRUc7QUFFSDtFQUNJLG1CQUFrQjtFQUNsQixhQUFZO0VBQ1osZ0JWK0JXO0VVOUJYLGVBQWM7RUFDZCxrQkFBaUI7RUFDakIsaUJBQWdCLEVBaUJuQjtFaEJ6TU87SWdCa0xSO01BU1EsbUJBQWtCLEVBY3pCLEVBQUE7RUF2QkQ7SUFjUSxtQkFBa0IsRUFDckI7RUFmTDtJQW9CUSwwQkFBeUI7SUFDekIsY0FBYSxFQUNoQjs7QUFHTDtFQUNJLHNCQUFxQixFQUN4Qjs7QUFLRDtFQUVRLGlCQUFnQixFQUNuQjs7QUFPTDs7R0FFRztBQUVIO0VBQ0ksY0FBYSxFQUNoQjs7QWhCbE9PO0VnQmdPUjtJQVNRLGdCQUFlLEVBQ2xCLEVBQUE7O0FBSUw7O2tEQUVrRDtBQUVsRDtFQUNJLGNBQWEsRUFDaEI7O0FoQnBQTztFZ0J1UEo7SUFDSSxlQUFjO0lBQ2QsaUJWaE9HLEVVaU9OLEVBQUE7O0FoQjFQRztFZ0J1UEo7SUFRSyxjQUFhLEVBQ2hCLEVBQUE7O0FBR047RUFDSSxlQUFjO0VBQ2Qsb0JBQW1CLEVBQ3RCOztBQUVEOztrREFFa0Q7QWhCMVExQztFZ0JRUjtJQXlRUSxpQkFBZ0IsRUFFdkIsRUFBQTs7QUNqU0Q7O2tEQUVrRDtBQUVsRDtFQUlRLHNCQUFxQixFQUN4Qjs7QUFHTDtFQUNJLGdCQUFlLEVBQ2xCOztBQUVEO0VBRUksNkJBQTJELEVBQzlEOztBakJMTztFaUJZSjtJQUNJLGNBQWEsRUFDaEIsRUFBQTs7QUFNTDs7a0RBRWtEO0FqQnRCMUM7RWlCeUJKO0lBQ0ksZUFBYztJQUNkLGlCQUFnQixFQUNuQixFQUFBOztBQUlMOztrREFFa0Q7QUFJbEQ7RUFFUSxzQkFBcUI7RUFDckIsbUJBQWtCO0VBQ2xCLGVBQWM7RUFDZCxlWHlDUTtFV3hDUixrQkFSaUI7RUFTakIsZ0ZYK0o0RSxFVzlKL0U7O0FBU0w7O0VBRUksZUFBYyxFQUNqQjs7QUFFRDtFQUNJLDBCQUF5QixFQUM1Qjs7QUFFRDtFQUVRLGVYVFEsRVdVWDs7QUFLRDtFQUVRLGVYakJJLEVXa0JQOztBQUVUO0VBR1ksZVhJSSxFV0NQO0VBUlQ7SUFNZ0IsZVgxQkEsRVcyQkg7O0FBTWI7O2tEQUVrRDtBQUVqRDtFQUNHLGNBQWEsRUFDZjs7QUFFRjtFQUNJLGNBQWEsRUFDaEI7O0FqQnBHTztFaUIwR0o7SUFFUSxZQUFXO0lBQ1gsaUJBQWdCLEVBQ25CLEVBQUE7O0FqQjlHRDtFaUJvSEo7SUFDSyxpQkFBZ0IsRUFDcEI7RUFFRDtJQUVRLGVBQWM7SUFDZCxnQkFBZTtJQUNmLFFBQU87SUFDUCxPQUFNO0lBQ04sY0FBYTtJQUNiLGNBQWE7SUFDYixrQkFBaUI7SUFDakIsdUJBQXNCO0lBQ3RCLFlBQVcsRUFLZDtJQWZMO01BYVksY0FBYSxFQUNoQjtFQUlUO0lBQ0ksWUFBVztJQUNYLGFBQVk7SUFDWixrQkFBaUI7SUFDakIsT0FBTTtJQUNOLFFBQU87SUFDUCxnQkFBZTtJQUNmLGFBQVk7SUFDWiwrQkFBOEIsRUFDakM7RUFFRDtJQUNJLGtCQUFpQjtJQUNqQixxQkFBb0I7SUFDcEIsV0FBVTtJQUNWLDhCQUE2QixFQU1oQztJQVZEO01BT1EscUJBQW9CO01BQ3BCLFdBQVUsRUFDYjtFQUdMO0lBQ0ksYUFBWTtJQUNaLGlCQUFnQixFQUNuQjtFQUVEO0lBSVEsa0JBQWlCO0lBQ2pCLHFCWGxKRDtJV21KQyx1QkFBc0IsRUEyQnpCO0lBakNMO01BVVksZ0JBQWUsRUFzQmxCO01BaENUO1FBY2dCLHFCQUFvQjtRQUNwQixnQlg2Qkg7UVc1QkcsMEJBQXlCO1FBQ3pCLGtDWGhJQSxFV2tJSDtNQW5CYjtRQXVCZ0IsK0JYdElBLEVXd0lIO0VBekJiO0lBc0NnQiwrQlhySkEsRVd1Skg7RUF4Q2I7SUE2Q2dCLCtCWDVKQSxFVzhKSDtFQU1iOzs7SUFHSSxZQUFXO0lBQ1gsbUJBQWtCO0lBQ2xCLFdBQVU7SUFDVixrQkFBaUI7SUFDakIsT0FBSztJQUNMLGFBQVk7SUFDWixhQUFZLEVBQ2Y7RUFJRDtJQUdRLGNBQWEsRUFDaEI7RUFJTDtJQUNJLGNBQWEsRUFDZixFQUFBOztBakJuUEU7RWlCd0hKO0lBb0lZLHNCQUFxQjtJQUNyQixhQUFZLEVBYWY7SUFsQlQ7TUFTZ0IsZ0JBQWU7TUFDZixlQUFjO01BQ2QsYUFBWTtNQUNaLGVBQWMsRUFDakI7SUFiYjtNQWdCZ0IsY0FBYSxFQUNoQixFQUFBOztBQU9qQjs7a0RBRWtEO0FqQmxSMUM7RWlCeUJKO0lBbVFJLG1CQUFrQjtJQWlEbEIsMkNBQTJDO0lBdUozQyxjQUFjLEVBNENqQjtJQXRQRDtNQUtRLHNCQUFxQixFQUN4QjtJQU5MO01BVVEsbUJBQWtCO01BQ2xCLGdCWG5GSztNV29GTCxxQlgzUUUsRVcrUUw7SUFoQkw7TUFtQlEsY0FBYSxFQUNoQjtJQXBCTDtNQXlCWSxjQUFZO01BQ1osb0JBQW1CO01BQ25CLCtCQUE4QjtNQUM5Qix3REFBdUQ7TUFDdkQsbUJBQWtCO01BQ2xCLGFBQVk7TUFDWixVQUFTO01BQ1QsbUJBQWtCLEVBQ3JCO0lBakNUOztNQXNDUSxzQkFBcUIsRUFDeEI7SUF2Q0w7O01BNENRLGVYN1FJLEVXOFFQO0lBN0NMO01BZ0RRLGFBQVksRUFDZjtJQWxHTDtNQXNHUSxrQkFBaUI7TUFDakIsbUJBQWtCO01BRWxCLFFBQU87TUFDUCxVQUFtQztNQUFFLHVDQUF1QztNQUU1RSxnQkFBZ0I7TUFFaEIsYUFBWTtNQUNaLGNBQWE7TUFBRSwyQkFBMkI7TUFHMUMsV0FBVTtNQUNWLGtCQUFpQjtNQUNqQix1QkFBc0IsRUErRnpCO01BbEtMO1FBc0VZLGdCWDVJRDtRVzZJQywwQkFBeUI7UUFDekIsZVg3UUssRVdrUlI7UUE3RVQ7VUEyRWdCLGVYalJKLEVXa1JDO01BNUViO1FBZ0ZZLGtCWGhWSDtRV2lWRyxvQkFBbUIsRUFpQnRCO1FBbEdUO1VBb0ZnQixVQUFTLEVBQ1o7UUFyRmI7VUF3RmdCLGlCQUFnQixFQUNuQjtRQXpGYjtVQTRGZ0IsaUJYN1ZULEVXa1dNO1VBakdiO1lBK0ZnQixpQkFBZ0IsRUFDZjtNQWhHakI7UUFvR1ksbUJBQWtCO1FBQ2xCLGFBQVk7UUFDWixXQUFVO1FBQ1YsZUFBYztRQUNkLFNBQVE7UUFDUixtQlh6V0g7UVcwV0csVUFBUztRQUNULGdDWDlVSTtRVytVSiwrQlg1TGdCO1FXNkxoQix1QkFBc0IsRUEwQnpCO1FBdklUO1VBZ0hnQixnQlh2TEo7VVd3TEksbUJBQWtCLEVBQ3JCO1FBbEhiO1VBcUhnQixXQUFVO1VBQ1YsbUJBQWtCO1VBQUUsYUFBWSxFQUNuQztRQXZIYjtVQTBIZ0IsZ0JYaE1MO1VXaU1LLGFBQVk7VUFDWixtQkFBa0IsRUFDckI7UUE3SGI7VUFnSWdCLG1CQUFrQjtVQUNsQixXQUFVO1VBQ1YsU0FBUTtVQUNSLGFBQVk7VUFDWixhQUFZO1VBQ1osWUFBVyxFQUNkO01BdEliO1FBNElZLGVBQWM7UUFDZCxhWDlZTDtRVytZSyxZQUFXO1FBQ1gsT0FBTTtRQUNOLFFBQU87UUFDUCxtQkFBa0I7UUFDbEIsV0FBVTtRQUNWLGtCQUFpQjtRQUNqQixjQUFhLEVBQ2hCO01BckpUO1FBd0pZLGVBQWM7UUFDZCxhWDFaTDtRVzJaSyxZQUFXO1FBQ1gsVUFBUztRQUNULFFBQU87UUFDUCxtQkFBa0I7UUFDbEIsV0FBVTtRQUNWLGtCQUFpQjtRQUNqQixjQUFhLEVBQ2hCO0lBaktUOztNQXVLTyxZQUFXLEVBRWI7SUF6S0w7TUE0S1EsV0FBVSxFQUNiO0lBN0tMOztNQWlMUSxXQUFVLEVBRWI7SUFuTEw7O01BdUxRLFdBQVUsRUFDYjtJQXhMTDtNQTJMUSxlQUFjO01BQ2QsdUJBQXNCLEVBQ3pCO0lBN0xMOztNQWlNUSxXQUFVLEVBQ2I7SUFsTUw7O01Bc01RLFdBQVUsRUFDYjtJQXZNTDtNQTRNUSxjQUFhO01BQ2IsT0FBTTtNQUNOLGVBQWM7TUFDZCxhQUFZO01BQ1gsZ0NYcFphLEVXZ2FqQjtNQTVOTDtRQW1OWSxZQUFXO1FBQ1gsdUJBQXNCLEVBQ3pCO01Bck5UO1FBd05ZLCtCWHhTZ0I7UVd5U2hCLGdCWDdSSDtRVzhSRyxxQkFBb0IsRUFDdkI7SUEzTlQ7O01BaU9ZLFVBQVM7TUFDVCxXQUFVLEVBQ2I7SUFuT1Q7O01BcU9ZLFdBQVU7TUFDVixZQUFXLEVBRWQ7SUF4T1Q7O01BOE9ZLFVBQVM7TUFDVCxXQUFVLEVBQ2IsRUFBQTs7QUFTYjtFQUVRLGNBQWE7RUFDYiwyRkFBd0M7RUFDeEMsMkJBQStCO0VBQy9CLDBCQUF5QixFQVM1QjtFQWRMO0lBUVksb0JBQW1CLEVBQ3RCO0VBVFQ7SUFZWSxlQUFjLEVBQ2pCOztBQUlUO0VBRVEsb0JBQW1CLEVBQ3RCOztBQUdMO0VBRVEsZUFBYyxFQUNqQjs7QUMzakJMOztrREFFa0Q7QUFLbEQ7O2tEQUVrRDtBQU9sRDtFQUVRLGlCQUFnQixFQVFuQjtFbEJaRztJa0JFUjtNQU1vQixZQUFXO01BQ1gsaUJBQWdCLEVBRy9CLEVBQUE7O0FsQlpHO0VrQmlCSjtJQUNJLG1CQUFrQjtJQUNsQixVQUFTO0lBQ1QsZ0JBQWU7SUFDZixXQUFVO0lBQ1YsYUFBWTtJQUNaLHVCQUFzQjtJQUN0QixjQUFhO0lBQ2IsU0FBUSxFQUtYO0lBYkQ7TUFXUSxlQUFjLEVBQ2pCO0VBRUw7SUFDSSxpQkFBZ0IsRUFDbkIsRUFBQTs7QWxCakNHO0VrQmlCSjtJQXFCSSxXQUFVLEVBQ2IsRUFBQTs7QWxCdkNHO0VrQitCSjtJQWFJLGNBQWE7SUFDYixpQkFBZ0IsRUFDbkI7RUE3QkQ7SUFnQ0ksc0JBQXFCO0lBQ3JCLFdBQVUsRUFtRGI7SUFyREQ7TUFJTyx3QkFBdUI7TUFDdkIsMkJBQTBCO01BQzFCLG1CQUFrQjtNQUNsQixhQUFZO01BQ1osbUJBQWtCO01BQ2xCLDBEQUF5RDtNQUN6RCxnQkFBZSxFQUtqQjtNQWZMO1FBWVksa0JBQWlCO1FBQ2pCLGFBQVksRUFDZjtJQWRUO01Ba0JRLGNBQWEsRUFDaEI7SUFuQkw7TUF1QlEsZUFBYSxFQUNaO0lBeEJUO01BMEI0QixpQkFBaUI7TUFDckMsZUFBYSxFQUNaO0lBNUJUO01BOEI4QixpQkFBaUI7TUFDdkMsZUFBYSxFQUNaO0lBaENUO01BbUNRLGVBQWEsRUFDWjtJQXBDVDtNQXVDVyxlQUFjO01BQ2QsWUFBVztNQUNYLG1CQUFrQjtNQUNsQixXQUFVO01BQ1YsU0FBUTtNQUNSLFlBQVc7TUFDVixhQUFZO01BQ1osd0NBQXVDO01BQ3ZDLHlCQUF3QjtNQUN4QixrQkFBaUIsRUFFckIsRUFBQTs7QUFPWjs7a0RBRWtEO0FBRWxEO0VBQ0ksbUJBQWtCO0VBQ2xCLGVBQWMsRUFDakI7O0FBRUQ7RUFDSSxjQUFhLEVBQ2hCOztBQUVEO0VBQ0ksWUFBVztFQUNYLGFBQVk7RUFDWixhQUFZO0VBQ1osb0JBQW1CO0VBQ25CLGdGWmlGZ0YsRVloRm5GOztBQUVEO0VQNUhJLHFCQUFvQjtFTzhIcEIsbUJBQWtCO0VBQ2xCLE9BQU07RUFDTixTQUFRO0VBQ1IsWUFBVztFQUNYLGFBQVk7RUFDWixVQUFTO0VBQ1QsaUJBQWdCLEVBQ25COztBQUVEO0VBQ0ksWUFBVztFQUNYLG1CQUFrQjtFQUNsQixTQUFRO0VBQ1IsVUFBUztFQUNULFlBQVc7RUFDWCxhQUFZO0VBQ1osa0JBQWlCO0VBQ2pCLG1CQUFrQjtFQUNsQiw2Q0FBNEM7RUFDNUMsNkJBQTRCLEVBQy9COztBQUVEO0VBQ0ksa0JBQXVCO0VBQ3ZCLG1CQUF3QixFQUMzQjs7QUN2S0Q7O2tEQUVrRDtBQUVsRDs7R0FFRztBQUVIO0VBSVksaUNBQStFLEVBQ2xGOztBQUxUO0VBVVEsK0JBQThFLEVBQ2pGOztBbkJMRztFbUJZSjtJQUNJLFlBQVc7SUFDWCxZQUFXO0lBQ1gsb0JBQW1CO0lBQ25CLHNCQUFxQjtJQUNyQixnQkFBZTtJQUNmLDBCQUF5QixFQUM1QjtFQUtEO0lDakNBLG9CQUFtQjtJQUNuQiwwQmQ4S3FCO0lhNUlqQixlQUFjO0lBQ2QsbUJBQWtCO0lBQ2xCLGFBQVk7SUFDWixVQUFTO0lBQ1QsYUFBWTtJQUNaLGFBQVksRUFDZjtFQUVEO0lBQ0ksZUFBYztJQUNkLGtCQUFpQjtJQUNqQixlYitDUTtJYTlDUixlQUFjLEVBQ2pCO0VBRUQ7SUFDSSxlYmVRLEVhZFgsRUFBQTs7QUFJTDs7R0FFRztBQUVIO0VBQ0ksZUFBYyxFQUNqQjs7QUFuQkc7RUFzQkEsbUJBQWtCO0VBQ2xCLGVBQWM7RUFDZCxrQkFBaUI7RUFDakIsa0JBQWdCO0VBQ2hCLG1CQUFrQixFQUNyQjs7QUFwQkc7RUF1QkEsZWJQWSxFYVFmOztBRS9FRDs7a0RBRWtEO0FBRWxEOztHQUVHO0FyQlFLO0VxQkNKO0lBQ0ksWUFBVyxFQUNkO0VBS0Q7SURqQkEsb0JBQW1CO0lBQ25CLDBCZDhLcUI7SWU1SmpCLGVBQWM7SUFDZCxtQkFBa0I7SUFDbEIsYUFBWTtJQUNaLFVBQVM7SUFDVCxTQUFRO0lBQ1IsYUFBWTtJQUNaLGtCQUFpQixFQUNwQixFQUFBOztBQUlMOztHQUVHO0FBdEJDO0VBeUJBLG1CQUFrQixFQUNyQjs7QUFFRDtFQUNJLGVBQWM7RUFDZCxXQUFVO0VBQ1YsV0FBVTtFQUNWLFlBQVc7RUFDWCxhQUFZO0VBQ1osbUJBQWtCO0VBQ2xCLGdCQUFlO0VBQ2YsYUFBWTtFQUNaLG9CQUFtQjtFQUNuQixvQmZrQlk7RWVqQlosa0JBQWlCO0VBQ2pCLG1CQUFrQixFQUVyQjs7QUFDRDtFQUNJLGFBQVksRUFDZjs7QUFNRDtFQUNJLGNBQWEsRUFDaEI7O0FyQnRETztFcUI2QlI7SUE2QlEsV0FBVSxFQUNiLEVBQUE7O0FyQjNERztFcUJnRUo7SUFHUSxzQkFBcUIsRUFDeEI7RUF4QlQ7SUE0QlEsZWZmUSxFZWdCWCxFQUFBOztBQUdMO0VBQ0ksY0FBYSxFQUNoQjs7QUFFRDs7R0FFRztBQUVIO0VBQ0ksY0FBYTtFQUNiLG1CQUFrQixFQUNyQjs7QUFFRDs7R0FFRztBQUVILGFBQWE7QUFFYjtFQUNJLGlCQUFnQjtFQUNoQixjQUFhLEVBQ2hCOztBQUVEO0VBQ0ksWUFBVztFQUNYLFdBQVUsRUFDYjs7QUFFRDtFQUNJLGdCQUFlLEVBQ2xCOztBQUVELGNBQWM7QUFFZDtFQUNJLHFCQUFvQjtFQUNwQixnRmYyRmdGO0VlMUZoRixnQkFBZTtFQUNmLGlCQUFnQixFQUNuQjs7QUFFRCxVQUFVO0FBRVY7RUFDSSxtQkFBa0IsRUFDckI7O0FBRUQ7RUFDSSxtQkFBa0I7RUFDbEIsaUJBQWdDO0VBQ2hDLDZCQUE0QztFQUM1Qyw4QmZzQ3FCO0VlckNyQixnQmZ1Rlc7RWV0Rlgsa0JBQWlCLEVBQ3BCOztBQUVEO0VBQ0ksc0JBQXFCLEVBQ3hCOztBQUVEO0VBQ0ksbUJBQWtCO0VBQ2xCLFdBQVU7RUFDVixVQUFTLEVBQ1o7O0FBRUQ7RUFDSSxZQUFXO0VBQ1gsYUFBWSxFQUNmOztBQUlEO0VBQ0ksaUJBQWdCO0VBQ2hCLGVmbkVpQjtFZW9FakIsZ0JmZ0VZLEVlL0RmOztBQUVELHVEQUF1RDtBQUN2RDtFQUNJLHdCQUF1QjtFQUN2Qiw4QmZPcUI7RWVOckIsZ0Jmd0RXLEVldkRkOztBQy9LRDs7a0RBRWtEO0FBRWxEOztHQUVHO0FqQnUwQkg7RWlCcDBCSSxvQkFBbUIsRUFLdEI7RXRCQU87SUsrekJSO01pQmowQlMsb0JBQW1CLEVBRTNCLEVBQUE7O0FBR0Q7RUFDSSxZQUFXO0VBQ1gsWUFBVztFQUNYLCtCaEI4RVk7RWdCN0VaLGtCQUFpQjtFQTRFakI7O09BRUcsRUEySk47RXRCaFBPO0lzQkdSO01BT1Esa0JoQm1CUyxFZ0JtTmhCLEVBQUE7RUE3T0Q7SUFXUSxpQkFBZ0IsRUFDbkI7RUFaTDtJQWVRLG9CQUFtQjtJQUNuQixnQmhCZ01RO0lnQi9MUixlaEJnRVEsRWdCL0RYO0VBbEJMO0lBcUJRLG1CQUFrQixFQUNyQjtFQXRCTDtJQXlCUSxZQUFXO0lBQ1gsV0FBVTtJQUNWLHVCQUFzQjtJQUN0QixvQmhCUkU7SWdCU0Ysb0JoQlBHLEVnQndDTjtJQTlETDtNQWlDWSxzQkFBcUI7TUFDckIsdUJBQXNCO01BQ3RCLGlCQUFnQixFQUNuQjtJQXBDVDtNQXVDWSxzQkFBcUI7TUFDckIsaUJBQWdCO01BQ2hCLGVBQWM7TUFDZCxnQmhCeUtDLEVnQnhLSjtJQTNDVDtNQWdEZ0IsaUJBQWdCLEVBQ25CO0lBakRiO01Bc0RZLGVoQjJCSTtNZ0IxQkgsZ0JoQjRKQSxFZ0J0Sko7TUE3RFQ7UUF5RGdCLGVoQkhBO1FnQklBLHNCQUFxQjtRQUNyQixhQUFZLEVBQ2Y7RUE1RGI7SUFpRVEsYUFBWTtJQUNaLGFBQVk7SUFDWixvQmhCN0NHLEVnQjhDTjtFQXBFTDs7SUF5RVEsZ0JoQjZJUSxFZ0I1SVg7RUExRUw7SUE2RVEsY0FBYSxFQUNoQjtFQTlFTDtJQXFGUSwrQ0FBOEM7SUFDOUMsNkJBQTRCO0lBQzVCLFlBQVc7SUFDWCx1QkFBc0I7SUFDdEIsc0JBQXFCO0lBQ3JCLGtCQUFpQixFQUNwQjtFVnZGRDtJVUpKO01BK0ZZLGtEQUFpRDtNQUNqRCw0QkFBMkIsRUFDOUIsRUFBQTtFQWpHVDtJQXNHWSw0QkFBaUM7SUFDakMsYUFBUSxFQUNYO0VBeEdUO0lBMkdZLGdDQUFxQyxFQUN4QztFQTVHVDtJQXNHWSw2QkFBaUM7SUFDakMsYUFBUSxFQUNYO0VBeEdUO0lBMkdZLGlDQUFxQyxFQUN4QztFQTVHVDtJQXNHWSw2QkFBaUM7SUFDakMsYUFBUSxFQUNYO0VBeEdUO0lBMkdZLGlDQUFxQyxFQUN4QztFQTVHVDtJQXNHWSw2QkFBaUM7SUFDakMsYUFBUSxFQUNYO0VBeEdUO0lBMkdZLGlDQUFxQyxFQUN4QztFQTVHVDtJQXNHWSw2QkFBaUM7SUFDakMsYUFBUSxFQUNYO0VBeEdUO0lBMkdZLGlDQUFxQyxFQUN4QztFQTVHVDtJQXdIUSxZQUFXO0lBQ1gsZUFBOEI7SUFDOUIsZUFBYyxFQUNqQjtFQTNITDtJQThIUSxZQUFXO0lBQ1gsZ0JBQWUsRUFDbEI7RUFoSUw7SUFtSVEsaUJBQWdCLEVBS25CO0lBeElMO01mUkksWUFBVztNQUNYLGVBQWM7TUFDZCxZQUFXLEVlNklOO0VBdklUO0lBMklRLFlBQVc7SUFDWCxlQUE4QjtJQUM5QixVQUFTLEVBQ1o7RUE5SUw7SUFpSlEsYUFBWTtJQUNaLGtCQUFpQjtJQUNqQixZQUFXLEVBQ2Q7RUFwSkw7O0lBd0pRLFlBQVcsRUFDZDtFQXpKTDtJQTRKUSxjQUFhLEVBQ2hCO0VBN0pMOzs7SUFrS1EsWUFBVztJQUNYLG9CaEIvSUUsRWdCZ0pMO0VBcEtMOztJQXdLUSxjQUFhLEVBQ2hCO0VBektMO0lBNEtRLGdCaEJ1Q0s7SWdCbENMLFlBQVc7SUFDWCxlaEJoR2E7SWdCaUdiLGlCaEI3SkcsRWdCcUtOO0l0QjlMRztNc0JHUjtRQThLWSxnQmhCdUNHLEVnQjFCVixFQUFBO0lBM0xMO01Bc0xZLGVoQnBHUyxFZ0J3R1o7TUExTFQ7UUF3TGdCLHNCQUFxQixFQUN4QjtFdEI1TEw7SXNCR1I7TUFrTVksaUJBSHVDO01BSXZDLGlCQUFnQjtNQUNoQixxQkFOaUMsRUFPcEM7SUFyTVQ7TUF3TVksZ0JBQWUsRUFDbEI7SUF6TVQ7TUE0TVksWUFBVztNQUNYLFlBQVc7TUFDWCx5QkFBeUIsRUFDNUIsRUFBQTtFdEJsTkQ7SXNCR1I7O01BcU5ZLGVBQWMsRUFDakIsRUFBQTtFdEJ6TkQ7SXNCR1I7TUE4TlksZ0JBSGlDO01BSWpDLGdCQUFlLEVBQ2xCO0lBaE9UO01BbU9ZLHFCQVRpQztNQVVqQyxZQUFXLEVBQ2Q7SUFyT1Q7TUF3T1ksWUFBVztNQUNYLFlBQVc7TUFDWCxZQUFXLEVBQ2QsRUFBQTs7QUFJVDtFQUVRLGFBQVk7RUFDWixlQUFjLEVBQ2pCOztBQ3BRTDs7dURBRXVEO0FBRXZEOztHQUVHO0FBRUg7O0VBRUksb0JBQW1CLEVBQ3RCOztBdkJHTztFdUJEUjtJQUdZLHFCakJ1QkQsRWlCbEJOLEVBQUE7O0FBUkw7RUFNWSwwQkFBeUIsRUFDNUI7O0F2Qk5EO0V1QkRSO0lBV1ksaUJBQXFCLEVBQ3hCLEVBQUE7O0FBSVQ7RUFDSSxxQmpCK01tQixFaUI5TXRCOztBQUdEOztFQUVJLG9CQUFtQixFQUN0Qjs7QUFFRDs7R0FFRztBQUVIOzs7OztFdEJQSSxVQUFTO0VBQ1QscUJBQW9CO0VBQ3BCLGVLNERZO0VMM0RaLGdGS21MZ0Y7RUxsTGhGLGdCQUFlO0VBQ2Ysb0JBQW1CO0VBQ25CLG1CQUFrQjtFQUVsQixpQkFBZ0I7RXNCS2hCLGdCakJxTFc7RWlCcExYLCtCakJzSzRCO0VpQnJLNUIsb0JBQW1CO0VBQ25CLGlCQUFnQixFQVNuQjtFQWxCRDs7Ozs7SUFZUSxlakIyQ1EsRWlCdENYO0lBakJMOzs7OztNQWNZLGVqQmNJO01pQmJKLHNCQUFxQixFQUN4Qjs7QUFJVDs7RUFFSSxpQkFBZ0I7RUFDaEIsZ0JBQWU7RUFDZixrQ2pCRWdCO0VpQkRoQixnQmpCZ0tTLEVpQnhKWjtFQWJEOztJQVFZLCtCakJpSm9CO0lpQmhKcEIsZWpCSFE7SWlCSVIsZ0JBQWUsRUFFbEI7O0FBR1Q7O2tEQUVrRDtBQUlsRDtFQUNJLG1CQUFrQixFQUNyQjs7QUFFRDtFaEIvRUksWUFBVztFQUNYLGVBQWM7RUFDZCxZQUFXLEVnQitFZDs7QUFFRDtFQUNJLG1CQUFrQjtFQUNsQixvQkFaeUI7RUFhekIsbUJBQWtCLEVBS3JCO0VBUkQ7SWhCbkZJLFlBQVc7SUFDWCxlQUFjO0lBQ2QsWUFBVyxFZ0J3RlY7O0FBR0w7RUFDSSx1QkFBc0I7RUFDdEIsd0JBQXVCO0VBQ3ZCLGtCQUFpQjtFQUNqQixnRmpCZ0hnRjtFaUIvR2hGLGdCQUFlO0VBQ2Ysb0JqQnhCYztFaUJ5QmQsb0JBQW1CO0VBQ25CLGFBQVk7RUFDWixtQkFBa0I7RUFDbEIsU0FBUTtFQUNSLFVBQVM7RUFDVCxtQkFBa0I7RUFDbEIseUJBQXdCLEVBVzNCO0V2QmhITztJdUJ3RlI7TUFnQlEsZ0JBQWU7TUFDZix1QkFBc0I7TUFDdEIsd0JBQXVCO01BQ3ZCLGtCQUFpQjtNQUNqQixXQUFVO01BQ1YsYUFBWSxFQUduQixFQUFBOztBQUVEO0VBQ0ksWUFBVztFQUNYLGFBQVk7RUFDWixRQUFPO0VBQ1AsT0FBTSxFQUtUO0V2QjNITztJdUJrSFI7TUFNUSxVQUFTO01BQ1QsVUFBUyxFQUVoQixFQUFBOztBQUVEO0VBRVEsdUJBQXNCO0VBQ3RCLHdCQUF1QjtFQUN2QixrQkFBaUI7RUFDakIsZ0ZqQjBFNEU7RWlCekU1RSxnQkFBZTtFQUNmLG9CakI5RFU7RWlCK0RWLG9CQUFtQjtFQUNuQixhQUFZO0VBQ1osbUJBQWtCO0VBQ2xCLFNBQVE7RUFDUixVQUFTO0VBQ1QsbUJBQWtCO0VBQ2xCLHlCQUF3QixFQVczQjtFdkJ0Skc7SXVCNkhSO01BaUJZLGdCQUFlO01BQ2YsdUJBQXNCO01BQ3RCLHdCQUF1QjtNQUN2QixrQkFBaUI7TUFDakIsYUFBWTtNQUNaLGFBQVk7TUFDWixVQUFTLEVBRWhCLEVBQUE7O0FBekJMO0VBNEJRLGlCQUFnQjtFQUNoQixpQkFBZ0I7RUFDaEIsZ0JBQWU7RUFDZixZQUFXO0VBQ1gsYUFBWTtFQUNaLFlBQVc7RUFDWCxPQUFNLEVBQ1Q7O0FBOUNMO0VBb0RJLGlCQUFnQjtFQUNoQixpQkFBZ0I7RUFDaEIsZ0JBQWUsRUFDbEI7O0FBRUQ7RUFDSSxtQkFBa0I7RUFDbEIsYUFBWTtFQUNaLGVBQWMsRUFPakI7RUFWRDtJQU9ZLHNCQUFxQixFQUN4Qjs7QUFJVDtFQUVRLFlBQVc7RUFDWCxlQUFjO0VBQ2QsYUFBWTtFQUNaLHVCQUFzQixFQUN6Qjs7QUFJTDtFQUVJLG9CQUFtQixFQUN0Qjs7QUFFRDtFQUNJLFlBQVc7RUFDWCxhQUFZLEVBS2Y7RUFQRDtJQUtRLGNBQWEsRUFDaEI7O0FBR0w7RUFFUSxXQUFVO0VBQ1Ysb0JBQW1CO0VBQ25CLGlCQUFnQixFQUNuQjs7QUFNTDtFQUNJLG1CQUFrQixFQUNyQjs7QUFFRDtFQUNJLGtCakI1TGM7RWlCNkxkLG1CQUFrQjtFQUNsQixZQUFXO0VBQ1gsaUJBVjJCO0VBVzNCLFlBQVcsRUFDZDs7QUFFRDtFQUNJLGVBQWMsRUFDakI7O0FBRUQ7RUFDSSxjQUFhLEVBQ2hCOztBQUVEO0VBQ0ksZWpCMUppQjtFaUIySmpCLGdCakJ4Qlc7RWlCeUJYLGdCQUFlLEVBQ2xCOztBQUVEO0VBQ0ksaUJBQWdCLEVBQ25COztBQUlELDJDQUEyQztBQTVLM0M7RUFrTEksWUFBVztFQUNYLGlCQUE0QjtFQUM1Qix1QkFBa0MsRUFDckM7O0FBRUQ7RUFDSSxZQUFXLEVBQ2Q7O0FBRUQ7RUFDSSxnQkFBZSxFQUNsQjs7QUExRUQ7RUE2RUksbUJBQWtCLEVBR3JCO0VDOVJHO0lBRUksWUFBVTtJQUNWLG1CQUFrQjtJQUNsQixTQUFRO0lBQ1IsVUFBUztJQUNULFlBQVc7SUFDWCxhQUFZO0lBQ1osY0FBYSxFQUNoQjtFQUVEO0lBQ0ksd0JBQXVCO0lBQ3ZCLGFBZDJCO0lBZTNCLFdBQVMsRUFDWjtFQUVEO0lBQ0ksdURBQXNEO0lBQ3RELDZCQUE0QjtJQUM1Qiw0QkFBMkI7SUFDM0IsV0FBUyxFQUNaO0VBRUQ7SUFDSSxtQkFBa0IsRUFNckI7SUFKRztNQUVJLGVBQWMsRUFDakI7O0F4QmpCRDtFdUJzUkosNkNBQTZDO0VBaE5qRDtJQTBOUSw0QkFBNEI7SUFRNUIsNkJBQTZCLEVBV2hDO0lBOUNMO01BNkJZLFlBQVcsRUFDZDtJQTFCVDtNQTRCWSx1QkFBOEQsRUFDakU7SUF4TlQ7TUE0TlksaUJBQTZDO01BQzdDLHVCQUE4RCxFQUNqRTtJQWJMO01BZVEsWUFBVyxFQUNkO0lBaEJMO01Ba0JRLGdCQUFlLEVBQ2xCLEVBQUE7O0F2QmxURDtFdUI4VEosdUNBQXVDO0VBS3ZDLDhCQUE4QjtFQUM5QjtJQUNJLFlBQVcsRUFDZDtFQUNEO0lBQ0ksWUFBVyxFQUNkO0VBQ0Q7O0lBRUksdUJBQThELEVBQ2pFO0VBRUQsdUJBQXVCO0VBQ3ZCO0lBQ0ksdUJBQThELEVBQ2pFO0VBRkQ7SUFJSSxpQkFBNkM7SUFDN0MsdUJBQThELEVBQ2pFO0VBQ0Q7SUFDSSxZQUFXLEVBQ2Q7RUFDRDtJQUNJLGdCQUFlLEVBQ2xCO0VBOUJELHVDQUF1QztFQUt2Qyw4QkFBOEI7RUFDOUI7SUFDSSxZQUFXLEVBQ2Q7RUFDRDtJQUNJLFlBQVcsRUFDZDtFQUNEOztJQUVJLHVCQUE4RCxFQUNqRTtFQUVELHVCQUF1QjtFQUN2QjtJQUNJLHVCQUE4RCxFQUNqRTtFQUZEO0lBSUksaUJBQTZDO0lBQzdDLHVCQUE4RCxFQUNqRTtFQUNEO0lBQ0ksWUFBVyxFQUNkO0VBQ0Q7SUFDSSxnQkFBZSxFQUNsQjtFQTlCRCx1Q0FBdUM7RUFLdkMsOEJBQThCO0VBQzlCO0lBQ0ksWUFBVyxFQUNkO0VBQ0Q7SUFDSSxZQUFXLEVBQ2Q7RUFDRDs7SUFFSSx1QkFBOEQsRUFDakU7RUFFRCx1QkFBdUI7RUFDdkI7SUFDSSx1QkFBOEQsRUFDakU7RUFGRDtJQUlJLGlCQUE2QztJQUM3Qyx1QkFBOEQsRUFDakU7RUFDRDtJQUNJLFlBQVcsRUFDZDtFQUNEO0lBQ0ksZ0JBQWUsRUFDbEIsRUFBQTs7QUFXTDs7a0RBRWtEO0FBRWxEO0VBQ0ksaUJBQWdCO0VBQ2hCLG9CQUFtQixFQXdCdEI7RUExQkQ7SUFLUSxxQkFBb0I7SUFDcEIsb0JBQW1CO0lBQ25CLGlDakIxTXVCLEVpQndOMUI7SUFyQkw7TWhCaFhJLFlBQVc7TUFDWCxlQUFjO01BQ2QsWUFBVyxFZ0J5WE47SUFYVDtNQWFZLFlBQVc7TUFDWCxpQkFBc0IsRUFNekI7TUFwQlQ7UUFpQmdCLFlBQVc7UUFDWCxnQkFBZSxFQUNsQjtFQW5CYjtJQXVCUSxrQkFBaUI7SUFDakIsb0JBQW1CLEVBQ3RCOztBQUdMO0VBQ0ksYUFBWTtFQUNaLGlCQUFzQjtFQUN0QixtQkFBZ0MsRUEwQ25DO0VBN0NEO0lBTVEsaUJBQWdCLEVBQ25CO0VBUEw7SUFTUSxVQUFTLEVBVVo7SUFuQkw7O01BYVksWUFBVztNQUNYLGtCakIvV1MsRWlCZ1haO0lBZlQ7TUFpQlksZ0JBQWUsRUFDbEI7RUFsQlQ7SUFxQlEsY0FBYSxFQUNoQjtFQXRCTDtJQXdCUSxnQmpCN01TLEVpQjhNWjtFQXpCTDtJQTJCUSxjQUEwQixFQUM3QjtFQTVCTDtJQThCUSxnQmpCL1hhLEVpQmdZaEI7RUEvQkw7O0lBbUNRLFlBQVc7SUFDWCxXQUFVO0lBQ1YsaUJBQWdCLEVBQ25CO0VBdENMO0lBd0NRLGFBQVk7SUFDWixXQUFVO0lBQ1Ysa0JBQWlCO0lBQ2pCLGFBQVksRUFDZjs7QXZCbmJHO0V1QnViSjtJQUNJLGdCakJ0T1MsRWlCdU9aLEVBQUE7O0F2QnpiRztFdUJ1WVI7O0lBeURZLFlBQVc7SUFDWCxXQUFVO0lBQ1Ysb0JBQW1CLEVBQ3RCO0VBNURUO0lBOERZLGFBQVk7SUFDWixXQUFVLEVBQ2IsRUFBQTs7QXZCdmNEO0V1QjRjSjtJQUNJLGdCQUFlLEVBQ2xCO0VBQ0Q7OztJQUlRLFlBQVc7SUFDWCxZQUFXO0lBQ1gsaUJBQWdCO0lBQ2hCLGlCQUFnQixFQUNuQixFQUFBOztBQUlUOztrREFFa0Q7QUFFbEQ7RUFHUSxZQUFXO0VBQ1gsZ0JBQWUsRUFDbEI7O0FBTEw7RUFPUSxrQkFBaUIsRUFDcEI7O0FBUkw7RUFZUSxrQkFBaUIsRUFDcEI7O0FBYkw7RUFnQlEsb0JqQnhkRTtFaUJ5ZEYsWUFBVyxFQUtkO0VBdEJMO0loQnBlSSxZQUFXO0lBQ1gsZUFBYztJQUNkLFlBQVcsRWdCdWZOOztBQUlUO0VoQjdmSSxZQUFXO0VBQ1gsZUFBYztFQUNkLFlBQVcsRWdCK2ZWOztBQUpMO0VBT1EsWUFBVztFQUNYLFdBQVU7RUFDVixVQUFTO0VBQ1Qsc0JBQXFCLEVBZXhCO0VBekJMO0lBYVksaUJBQWdCO0lBQ2hCLGtCQUFpQixFQUNwQjtFQWZUO0lBa0JZLGVBQWMsRUFNakI7SUF4QlQ7TUFxQmdCLFlBQVc7TUFDWCxnQkFBZSxFQUNsQjs7QUFRYjs7a0RBRWtEO0FBMWdCbEQ7RUE2Z0JJLDBCakJ0WHFCO0VpQnVYckIsY0FBYSxFQVVoQjtFQVpEO0lBS1EsWUFBVztJQUNYLGdCQUFlLEVBS2xCO0lBWEw7TUFTWSxjQUFhLEVBQ2hCOztBQUlUOztrREFFa0Q7QUFFbEQ7RUFFSSxjQUFhO0V0QmhnQmIsVUFBUztFQUNULG9CQUFtQjtFQUNuQixlS21DWTtFTGxDWixnRkswSmdGO0VMekpoRixnQkFBZTtFQUNmLG9CQUFtQjtFQUNuQixtQkFBa0I7RUFDbEIsaUJBQWdCO0VPL0RoQix1QkFBc0I7RUFDdEIsc0JBQXFCO0VBQ3JCLDBCQUF5QjtFQUN6QixxQkFBb0I7RUFDcEIsa0JBQWlCO0VDa0VqQixvQkFBbUI7RUFDbkIsbUJBQWtCO0VBQ2xCLDJCQUEwQjtFQUMxQixrQkFBaUI7RUFDakIsb0JBQW1CO0VBQ25CLHNCSG9HcUI7RUduR3JCLG1CQUFrQjtFQUNsQiwwQkg2RnlCO0VpQmdaekIsZ0JBQWUsRUFDbEI7RWQ1ZUc7SUMvRUEsWUFBVztJQUNYLG1CQUFrQjtJQUNsQixTQUFRO0lBQ1IsVUFBUztJQUNULGVBQWM7SUFVVixvQ0FBcUM7SUFDckMsbUNBQW9DO0lBQ3BDLDhCSmtEUTtJSWpEUixvQkFBbUI7SURnRW5CLFdBQVU7SUFDVixTQUFRO0lBQ1IsaUJBQWdCLEVBQ25CO0VBRUQ7SUFDSSxxQ0hvRm1ELEVHbkZ0RDs7QUFJRDtFQUNJLGNBQWEsRUFDaEI7O0FBR0c7RVJ6Q0osVUFBUztFQUNULG9CQUFtQjtFQUNuQixlS21DWTtFTGxDWixnRkswSmdGO0VMekpoRixnQkFBZTtFQUNmLG9CQUFtQjtFQUNuQixtQkFBa0I7RUFDbEIsaUJBQWdCO0VPL0RoQix1QkFBc0I7RUFDdEIsc0JBQXFCO0VBQ3JCLDBCQUF5QjtFQUN6QixxQkFBb0I7RUFDcEIsa0JBQWlCO0VDa0VqQixvQkFBbUI7RUFDbkIsbUJBQWtCO0VBQ2xCLDJCQUEwQjtFQUMxQixrQkFBaUI7RUFDakIsb0JBQW1CO0VBQ25CLHNCSG9HcUI7RUduR3JCLG1CQUFrQjtFQUNsQiwwQkg2RnlCO0VHdkVqQixlQUFjLEVBQ2pCO0VBckJMO0lDL0VBLFlBQVc7SUFDWCxtQkFBa0I7SUFDbEIsU0FBUTtJQUNSLFVBQVM7SUFDVCxlQUFjO0lBVVYsb0NBQXFDO0lBQ3JDLG1DQUFvQztJQUNwQyw4QkprRFE7SUlqRFIsb0JBQW1CO0lEZ0VuQixXQUFVO0lBQ1YsU0FBUTtJQUNSLGlCQUFnQixFQUNuQjtFQUVEO0lBQ0kscUNIb0ZtRCxFR25GdEQ7O0FBY0c7RUFDSSxjSDNETTtFRzRETixVQUFTO0VBQ1Qsb0JBQW1CO0VBQ25CLG9CQUFtQjtFQUNuQixzQkhvRWEsRUduRWhCOztBQUNEO0VBQ0ksNEJBQTJCLEVBQzlCOztBY21kVDtFQUNJLG9CakJ2aEJjO0VpQndoQmQsaUJqQnhoQmMsRWlCaWlCakI7RUFYRDtJQUtRLGtCQUFpQjtJQUNqQixlQUFjLEVBQ2pCO0VBUEw7SUFTUSxlakI3ZWEsRWlCOGVoQjs7QXZCbmtCRztFU3dGQTtJY2dmQSxtQkFBa0IsRUFLckI7SWR2Z0JEO01jcWdCUSxjQUFhLEVBQ2hCLEVBQUE7O0F2QjVrQkQ7RXVCaWxCSjtJQUNJLG9CQUFtQixFQUN0QjtFQUdEO0lBQ0ksY0FBYSxFQUNoQjtFQUdEO0lBQ0ksZUFBYztJQUNkLGlCQUFnQixFQUVuQjtJZHZnQkc7TUFxQkksZ0JBQWU7TUFDZix1QkFBc0IsRUFXekI7TUE1Q0w7UUFvQ1ksZUh4REEsRUd5REg7TUE1Q1Q7UUMvRUEsWUFBVztRQUNYLG1CQUFrQjtRQUNsQixTQUFRO1FBQ1IsVUFBUztRQUNULGVBQWM7UUFpQlYsa0NBQW1DO1FBQ25DLHFDQUFzQztRQUN0QywrQkoyQ1E7UUkxQ1IsbUJBQWtCLEVEc0diO01BQ0Q7UUFDSSx5QkFBd0IsRUFDM0I7SUEzQkw7TUErQkksY0FBYSxFQUNoQjtJQU1PO01BQ0kseUJBQXdCLEVBQzNCO0lBRUQ7TUNoSlosWUFBVztNQUNYLG1CQUFrQjtNQUNsQixTQUFRO01BQ1IsVUFBUztNQUNULGVBQWM7TUFVVixvQ0FBcUM7TUFDckMsbUNBQW9DO01BQ3BDLDhCSmtEUTtNSWpEUixvQkFBbUI7TURpSVAsVUFBUztNQUNULFNBQVE7TUFDUixpQkFBZ0IsRUFDbkI7SUFHTDtNQUNJLGVBQWMsRUFDakI7RWM0WmI7SUFxRFEsMEJqQnppQlE7SWlCMGlCUixVQUFTO0lBQ1QsaUJBQWdCO0lBQ2hCLGVBQWM7SUFDZCxlQUFjLEVBb0JqQjtJZHBqQkQ7TUMvRUEsWUFBVztNQUNYLG1CQUFrQjtNQUNsQixTQUFRO01BQ1IsVUFBUztNQUNULGVBQWM7TUFpQlYsa0NBQW1DO01BQ25DLHFDQUFzQztNQUN0QywrQmEybEJ5QztNYjFsQnpDLG1CQUFrQjtNYTJsQmQsWUFBVztNQUNYLFNBQVE7TUFDUixpQkFBZ0IsRUFDbkI7SWRoaUJMO01jbWlCUSwwQmpCdGZ3QjtNaUJ1ZnhCLGVBQWMsRUFDakI7SUFqQkw7TWIxbUJBLFlBQVc7TUFDWCxtQkFBa0I7TUFDbEIsU0FBUTtNQUNSLFVBQVM7TUFDVCxlQUFjO01BVVYsb0NBQXFDO01BQ3JDLG1DQUFvQztNQUNwQyw4QmE4bUJ3QztNYjdtQnhDLG9CQUFtQjtNYThtQmYsWUFBVztNQUNYLFNBQVE7TUFDUixpQkFBZ0IsRUFDbkI7RUFHTDs7SUFFSSxjakIzbEJVO0lpQjRsQlYsMEJqQnpkaUI7SWlCMGRqQixjQUFhLEVBQ2hCO0VBRUQ7O0lBRUksYUFBWTtJQUNaLFlBQVcsRUFDZDtFQUVEO0lsQmpOQSxlQ3BXWTtJRHFXWiwwQkN4UnlCO0lEeVJ6QixrQkFBaUIsRWtCc05oQjtJQVBEO01BSVEsc0JBQXFCO01BQ3JCLCtCakI1ZStDLEVpQjZlbEQsRUFBQTs7QUFJVDtFQUVRLGVBQWM7RXRCdG1CbEIsVUFBUztFQUNULG9CQUFtQjtFQUNuQixlS21DWTtFTGxDWixnRkswSmdGO0VMekpoRixnQkFBZTtFQUNmLG9CQUFtQjtFQUNuQixtQkFBa0I7RUFDbEIsaUJBQWdCLEVzQmltQmY7O0FBSkw7RUFPUSxtQmpCdm5CVTtFaUJ3bkJWLG9CakJ4bkJVLEVpQnluQmI7O0FBVEw7RUFXUSxtQkFBa0IsRUFTckI7RUFwQkw7SUFjWSxrQkFBaUIsRUFDcEI7RUFmVDtJaEJ4cEJJLFlBQVc7SUFDWCxlQUFjO0lBQ2QsWUFBVyxFZ0J5cUJOOztBQUlUO0VBQ0ksa0JBQWlCO0VBQ2pCLG1CakJ0b0JpQixFaUJ1b0JwQjs7QUFFRDtFQUdRLFlBQVc7RUFDWCxpQkFBZ0I7RUFDaEIsYUFBWSxFQUNmOztBQUlMO0VBRWdCLGVBQWMsRUFDakI7O0FBSGI7RUFNUSxrQ2pCeG9CWTtFaUJ5b0JaLHFCakJ2cUJHLEVpQndxQk47O0FBUkw7RUFXUSxpQkFBZ0IsRUFDbkI7O0FBWkw7RUFnQlEsWUFBVztFQUNYLGlCQUFnQjtFQUNoQixhQUFZLEVBQ2Y7O0FBbkJMO0VBc0JRLGtDakJ4cEJZO0VpQnlwQlosY2pCdnJCRyxFaUJpdkJOO0VBakZMO0lBeUJZLDBCQUF5QjtJQUN6QixvQmpCenJCQyxFaUIwckJKO0VBM0JUO0lBNkJZLG1CQUFrQixFQUNyQjtFQTlCVDtJQWdDWSxtQkFBa0IsRUFRckI7SUF4Q1Q7TUFrQ29CLGlCQUFnQjtNQUNoQixXQUFVO01BQ1YsaUJBQWdCO01BQ2hCLG9CakJyc0JUO01pQnNzQlMsc0JBQXFCLEVBQzVCO0V2Qmh1Qkw7SXVCeXJCUjtNaEI5ckJJLFlBQVc7TUFDWCxlQUFjO01BQ2QsWUFBVyxFZ0IwdUJGO0lBOUNiO01BZ0RnQixhQUFZO01BQ1osV0FBVTtNQUNWLGdCakJodEJGO01pQml0QkUsdUJBQXNCLEVBQ3pCO0lBcERiO01Bc0RnQixrQkFBaUI7TUFDakIscUJBQW9CO01BQ3BCLGlCQUFnQixFQUNuQjtJQXpEYjtNQTJEZ0IsWUFBVztNQUNYLGtCQUFpQixFQU9wQjtNQW5FYjtRQThEb0IsaUJBQWdCO1FBQ2hCLFlBQVc7UUFDWCxzQkFBcUI7UUFDckIsaUJBQWdCLEVBQ25CO0lBbEVqQjtNQXNFb0IsYUFBWTtNQUNaLGlCQUFnQixFQUNuQjtJQXhFakI7TUEwRW9CLFlBQVc7TUFDWCxrQkFBaUIsRUFDcEIsRUFBQTs7QUFPakI7RUFFUSxpQkFBZ0IsRUFDbkI7O0FBR0w7RUFDSSxnQkFBZ0I7RUFJaEIsK0JqQmh1QmdCLEVpQmcyQm5CO0V2QnY1Qk87SXVCa3hCUjtNQUdZLG9CQUFtQixFQWtJOUIsRUFBQTtFQXJJRDtJaEJ2eEJJLFlBQVc7SUFDWCxlQUFjO0lBQ2QsWUFBVyxFZ0I4eEJOO0V2QjN4QkQ7SXVCa3hCUjtNQVlZLFlBQVcsRUFHbEIsRUFBQTtFdkJqeUJHO0l1Qmt4QlI7TUFtQlksY0FBYSxFQUVwQixFQUFBO0VBckJMO0lBeUJRLG1CQUFrQixFQVNyQjtJdkJwekJHO011Qmt4QlI7UUEyQlksY0FBYSxFQU9wQixFQUFBO0l2QnB6Qkc7TXVCa3hCUjtRQStCWSxjQUFhLEVBR3BCLEVBQUE7RUFsQ0w7SUF3Q2dCLGVqQmp3QkE7SWlCa3dCQSxxQkFBb0I7SUFDcEIsZ0JqQjFtQkM7SWlCMm1CRCxrQkFBaUI7SUFDakIsZUFBYyxFQUNqQjtFdkIvekJMO0l1Qmt4QlI7TUFtRGdCLFdBQVU7TUFDVixhQUFZO01BQ1osb0JBQW1CLEVBQ3RCLEVBQUE7RXZCeDBCTDtJdUJreEJSO01BNERZLFdBQVU7TUFDVixZQUFXLEVBU2xCO01BdEVMO1FBZ0VnQixtQkFBa0I7UUFDbEIsU0FBUTtRQUNSLDRCQUEyQixFQUM5QixFQUFBO0V2QnIxQkw7SXVCa3hCUjtNQTZFZ0IsVUFBUztNQUNULGlDQUFnQztNQUNoQyxrQkFBaUI7TUFDakIsaUJBQWdCLEVBQ25CLEVBQUE7RXZCbjJCTDtJdUJreEJSO01BeUZnQixjQUFhLEVBQ2hCLEVBQUE7RUExRmI7SUFpR1ksY0FBYSxFQU9oQjtJQXhHVDtNQW9HZ0IsbUJBQWtCO01BQ2xCLFNBQVE7TUFDUiw0QkFBMkIsRUFDOUI7RXZCejNCTDtJdUJreEJSO01BNEdnQixlQUFjLEVBQ2pCLEVBQUE7RUE3R2I7SUFpSFksY0FBYSxFQUNoQjtFQWxIVDtJQXdIUSxnQmpCenJCVTtJaUIwckJWLDBCQUF5QjtJQUN6QixXQUFVO0lBQ1YsVUFBUyxFQUtaO0l2Qmw1Qkc7TXVCa3hCUjtRQThIWSxvQkFBbUIsRUFFMUIsRUFBQTs7QUFPTDtFQUNJLCtCakJuMkJnQixFaUJvNEJuQjtFQWxDRDtJQUlRLGtCakJwNEJHO0lpQnE0QkgscUJqQnI0QkcsRWlCaTZCTjtJQWpDTDtNQVFZLGlCakJ4NEJEO01pQnk0QkMsZ0JqQi9zQkksRWlCZ3RCUDtJQVZUO01BYVksa0NqQi8yQlE7TWlCaTNCUixxQmpCNzRCRSxFaUI4NEJMO0lBaEJUO01BbUJZLGVqQngxQkk7TWlCeTFCSiwyQkFBMEIsRUFNN0I7TUExQlQ7UUF1QmdCLGVqQnYzQkEsRWlCeTNCSDtJQXpCYjtNQTZCWSxnQmpCcHVCSztNaUJxdUJMLGdGakIzdUJ3RTtNaUI0dUJ4RSxvQmpCNzVCRSxFaUI4NUJMOztBQUtUO0VBQ0ksZ0JBQWdCLEVBeUNuQjtFQTFDRDtJQUlRLG1CQUFrQjtJQUNsQixvQkFBbUIsRUFpQ3RCO0lBdENMO01oQm44QkksWUFBVztNQUNYLGVBQWM7TUFDZCxZQUFXLEVnQnk4Qk47SUFSVDtNQVVZLFlBQVc7TUFDWCxXQUFVO01BQ1YsY0FBYTtNQUNiLHVCQUFzQjtNQUN0QixlQUFjLEVBdUJqQjtNQXJDVDtRQWlCZ0IsZ0JBQWU7UUFDZixZQUFXLEVBQ2Q7TUFuQmI7UUFrQ2dCLGdCQUFlO1FBQ2Ysa0NqQjE2QkksRWlCMjZCUDtRQXBDYjtVQXlCb0IsZWpCaDZCQTtVaUJpNkJBLGdCQUFlLEVBTWxCO1VBaENqQjtZQTZCd0IsZWpCbDZCUjtZaUJtNkJRLHNCQUFxQixFQUN4Qjs7QXZCNzlCYjtFdUIyK0JKO0lBRVEsY0FBYSxFQUNoQixFQUFBOztBRXJoQ1Q7RUFHUSwwQkFBeUIsRUFDNUI7O0FBSkw7RUFNUSxjQUFhLEVBQ2hCOztBQVBMO0VBVVEsZ0JBQWUsRUFDbEI7O0FBWEw7RUFjUSxZQUFXO0VBQ1gsZ0JBQWU7RUFDZixrQkFBaUIsRUFDcEI7O0F6QnNCRztFeUJ2Q1I7SUFxQlksV0FBVTtJQUNWLHVCQUFzQjtJQUN0QixnQkFBZTtJQUNmLFlBQVcsRUFDZCxFQUFBOztBekJjRDtFeUJ2Q1I7SUE2QlksWUFBVztJQUNYLFlBQVc7SUFDWCxXQUFVLEVBQ2I7RUFoQ1Q7SUFrQ1ksY0FBYTtJQUNiLHVCQUFzQjtJQUN0QixnQkFBZTtJQUNmLFlBQVcsRUFDZCxFQUFBOztBekJDRDtFeUJ2Q1I7SUEwQ1ksa0JBQWlCLEVBRXhCLEVBQUE7O0F6QkxHO0V5QnZDUjtJQStDWSxrQkFBaUIsRUFFeEIsRUFBQTs7QUFqREw7RUFzRGdCLGtCQUFpQixFQUNwQjs7QUF2RGI7RUE0RFEsaUJBQWdCO0VBQ2hCLG9CbkJHRyxFbUJDTjtFekIxQkc7SXlCdkNSO01BK0RZLG9CQUEwQixFQUVqQyxFQUFBOztBQWpFTDtFQW1FUSxpQkFBZ0IsRUFDbkI7O0FBcEVMO0VBdUVZLGVuQndCUyxFbUJ2Qlo7O0FBeEVUO0VBMEVZLGdCQUFlLEVBa0JsQjtFQTVGVDtJQTZFZ0IsaUJuQmJMLEVtQjJCRTtJekJwREw7TXlCdkNSO1FBZ0Z3QixZQUFXO1FBQ1gsYUFBWSxFQUNmLEVBQUE7SXpCM0NiO015QnZDUjtRQXNGb0Isb0JuQnRCVCxFbUIyQkUsRUFBQTtJQTNGYjtNQXlGb0Isc0JBQXFCLEVBQ3hCOztBQTFGakI7RUFpR1ksK0JuQkhRO0VtQklSLGtCbkJsQ0QsRW1CdUNGO0VBdkdUO0lsQmtDSSxZQUFXO0lBQ1gsZUFBYztJQUNkLFlBQVcsRWtCNERGO0V6QnpETDtJeUJ2Q1I7TUFxR2dCLHFCbkJyQ0wsRW1CdUNGLEVBQUE7O0FBdkdUO0VBeUdZLGlCQUFnQixFQUtuQjtFekJ2RUQ7SXlCdkNSO01BMkdvQixxQm5CMUNQLEVtQjZDSixFQUFBOztBQTlHVDtFQWdIWSxjQUFhLEVBQ2hCOztBQWpIVDtFQW1IWSxjQUFhLEVBQ2hCOztBQXBIVDtFQXNIWSxjQUFhLEVBQ2hCOztBQXZIVDtFQXlIWSxrQm5CeERDO0VtQnlERCxpQm5CekRDO0VtQjBERCwrQm5CN0JRLEVtQmtDWDtFQWhJVDtJQThIZ0Isb0JBQW1CLEVBQ3RCOztBQS9IYjtFQWtJWSxnQkFBZTtFQUNmLGdGbkJnSHdFO0VtQi9HeEUsZW5CVEksRW1CVVA7O0FBcklUO0VBdUlZLFVBQVM7RUFDVCxlQUFjLEVBQ2pCOztBQXpJVDtFQTJJWSxjQUFhLEVBQ2hCOztBQTVJVDtFQThJWSxvQkFBbUI7RUFDbkIsaUJBQWdCLEVBS25CO0V6QjdHRDtJeUJ2Q1I7TUFpSmdCLG9CQUFtQjtNQUNuQixjQUFhLEVBRXBCLEVBQUE7O0FBcEpUO0VBMEpRLGVBQWU7RUFDZixjQUFhO0VBQ2IsZ0JBQWtCO0VBQ2xCLCtCbkIvRFksRW1CZ0VmO0VBOUpMO0lsQmtDSSxZQUFXO0lBQ1gsZUFBYztJQUNkLFlBQVcsRWtCcUhOOztBekJsSEQ7RXlCdkNSO0lBaUtZLFlBQVcsRUFDZCxFQUFBOztBQWxLVDtFQXNLWSxnQm5Cb0ZJO0VtQm5GSixnQkFBbUI7RUFDbkIsaUJBQWdCLEVBQ25COztBQXpLVDtFQTJLWSxpQkFBZ0I7RUFDaEIsa0JBQWlCLEVBQ3BCOztBekJ0SUQ7RXlCdkNSO0lBZ0xZLFdBQVUsRUEySGIsRUFBQTs7QXpCcFFEO0V5QnZDUjtJQXFMb0Isb0JBQW1CLEVBMEcxQixFQUFBOztBQS9SYjtFbEJrQ0ksWUFBVztFQUNYLGVBQWM7RUFDZCxZQUFXLEVrQnFKRTs7QUF6TGpCO0VBMkxvQixxQm5CdkhILEVtQndIQTs7QUE1TGpCO0VBZ013QixnQkFBZTtFQUNmLG1CQUFrQixFQWtCckI7RUFuTnJCO0lBbU00QixlQUFjO0lBQ2QsWUFBVztJQUNYLG1CQUFrQjtJQUNsQixTQUFRO0lBQ1IsVUFBUztJQUNULFlBQVc7SUFDWCxhQUFZO0lBQ1osNERBQTJEO0lBQzNELDJCQUEwQjtJQUMxQiw2QkFBNEIsRUFDL0I7RUE3TXpCO0lBZ04rQiwwREFBeUQsRUFDM0Q7O0FBak43QjtFQXFOd0IsY0FBYSxFQXFCaEI7RUExT3JCO0lBdU40QixlQUFjLEVBQ2pCO0VBeE56QjtJQTJONEIsa0JBQWlCO0lBQ2pCLGtCQUFpQjtJQUNqQixjQUFhLEVBV2hCO0lBeE96QjtNQWdPZ0MsY0FBYSxFQUNoQjtJQWpPN0I7TUFvT2dDLFlBQVc7TUFDWCxzQkFBcUI7TUFDckIsV0FBVSxFQUNiOztBQXZPN0I7RUErT3dCLGdCQUFlLEVBQ2xCOztBQWhQckI7RUFtUG9CLG9CbkJuTFQsRW1Cb0xNOztBQXBQakI7RUF3UDRCLGFBQVk7RUFDWixnQkFBZ0I7RUFDaEIscUJuQnpMZixFbUIwTFk7O0FBM1B6QjtFQWdRb0Isa0JuQmhNVCxFbUJvTU07RUFwUWpCO0lBa1F3QixvQkFBbUIsRUFDdEI7O0F6QjVOYjtFeUJ2Q1I7SUF1UXdCLGlCQUFnQixFQUV2QixFQUFBOztBQXpRakI7RUEyUW9CLDBCbkJoSko7RW1CaUpJLGVuQmpKSjtFbUJrSkksaUJBQWdCLEVBQ25COztBQTlRakI7RUFnUm9CLFlBQVc7RUFDWCxhQUFZO0VBQ1osaURBQWdEO0VBQ2hELHNCQUFxQjtFQUNyQiw2QkFBNEIsRUFDL0I7O0FBclJqQjtFQXVSd0IsZW5CNUpSLEVtQjZKSzs7QUF4UnJCO0VBMlJ3QixlbkJoS1IsRW1CaUtLOztBQTVSckI7RUFpU2dCLGtDbkJuTUksRW1Cb01QOztBekIzUEw7RXlCdkNSO0lBcVNvQixXQUFVO0lBQ1YsdUJBQXNCO0lBQ3RCLGdCbkJuT0g7SW1Cb09HLFlBQVcsRUFDZCxFQUFBOztBQXpTakI7RUE2U1ksY0FBYSxFQUNoQjs7QXpCdlFEO0V5QnZDUjtJQWlUZ0IsZUFBYztJQUNkLHVCQUFzQjtJQUN0QixXQUFVO0lBQ1Ysb0JuQmhQQyxFbUJxUEo7SUF6VGI7TUF1VG9CLG9CbkJyUE4sRW1Cc1BHLEVBQUE7O0FBeFRqQjtFQTRUYSwrQm5COU5PLEVtQitOWDs7QUE3VFQ7RUFnVVksZ0JBQWtCLEVBc0JyQjtFekIvU0Q7SXlCdkNSO01Ba1VnQixtQm5COVBDO01tQitQRCxrQ25Cck9JLEVtQndQWCxFQUFBO0VBdFZUO0lBc1VnQixlQUFjLEVBQ2pCO0VBdlViO0lBeVVnQixlbkI5TUE7SW1CK01BLGlDbkIvTUE7SW1CZ05BLGlCQUFnQixFQVFuQjtJQW5WYjtNQThVb0Isc0JBQXFCO01BQ3JCLGVuQi9PSjtNbUJnUEksc0JuQmhQSixFbUJpUEM7O0FBalZqQjtFQXdWWSxrQ25CMVBRLEVtQmtRWDtFekJ6VEQ7SXlCdkNSO01BNFZvQixXQUFVO01BQ1YsYUFBWSxFQUNmLEVBQUE7O0F6QnZUVDtFeUJ2Q1I7SUFvV2dCLG1CQUFrQjtJQUNsQixvQkFBbUIsRUFDdEIsRUFBQTs7QXpCL1RMO0V5QnZDUjtJQTBXZ0IsZ0JBQWtCLEVBdUJ6QixFQUFBOztBQWpZVDtFQThXZ0IsZUFBYyxFQUVqQjs7QUFoWGI7RUFrWGdCLG9CQUFtQixFQUN0Qjs7QUFuWGI7RUFxWGdCLFdBQVU7RUFDVixTQUFRLEVBQ1g7O0FBdlhiO0VBeVhnQixZQUFXO0VBQ1gsUUFBTyxFQUNWOztBQTNYYjtFQThYZ0IsZ0JBQWUsRUFDbEI7O0FBL1hiO0VsQmtDSSxZQUFXO0VBQ1gsZUFBYztFQUNkLFlBQVcsRWtCaVdGOztBekI5Vkw7RXlCdkNSO0lBeVlvQixXQUFVO0lBQ1YsWUFBVztJQUNYLHVCQUFzQjtJQUN0QixnQkFBZSxFQUVsQixFQUFBOztBQTlZakI7RUFrWmdCLFdBQVUsRUFDYjs7QUMxWGI7O2tEQUVrRDtBQUVsRDtFQUNJLFdBQVU7RUFDViwyQkFBMEI7RUFDMUIsa0JBQWlCO0VBQ2pCLG9CQUFtQjtFQUNuQixjQUFhO0VBQ2Isa0JBQWlCO0VBQ2pCLDBCQUF5QixFQUM1Qjs7QUFFRDtFQUNJLFdBQVU7RUFDVixlQUFjO0VBQ2QsZ0JBQWU7RUFDZixrQkFBaUI7RUFDakIsaUJBQWdCO0VBQ2hCLGlCQUFnQixFQUNuQjs7QUFFRDtFQUNJLG9CQUFtQjtFQUNuQiwwQnBCMkpxQjtFb0IxSnJCLGlCQUFnQjtFQUNoQixtQkFBa0I7RUFDbEIsaUJBQWdCO0VBQ2hCLGFBQVk7RUFDWixhQUFZLEVBeUtmO0UxQnpMTztJMEJTUjtNQVdZLHNCQUFxQixFQUN4QjtJQVpUO01BZVksc0JBQXFCO01BQ3JCLHVCQUFzQixFQUN6QixFQUFBO0UxQjFCRDtJMEJTUjtNQXFCUSxZQUFXO01BQ1gscUJBQW9CLEVBMEozQixFQUFBO0VBaExEO0lBMEJRLGtCQUFpQjtJQUNqQixtQkFBa0I7SUFDbEIsWUFBVyxFQWVkO0lBM0NMO01BK0JZLGdCcEI4S0M7TW9CN0tELFVBQVM7TUFDVCxpQkFBZ0I7TUFDaEIsb0JBQW1CO01BQ25CLHNCQUFxQjtNQUNyQixpQkFBZ0I7TUFDaEIsd0JBQXVCLEVBSzFCO00xQm5ERDtRMEJTUjtVQXdDZ0IsbUJBQWtCLEVBRXpCLEVBQUE7RUExQ1Q7SUE4Q1EsZUFBYztJQUNkLG1CQUFrQjtJQUNsQixTQUFRO0lBQ1IsV0FBVTtJQUNWLGFBQVk7SUFDWixZQUFXO0lBQ1gsZ0JBQWU7SUFDZixrQkFBaUI7SUFDakIsbUJBQWtCLEVBQ3JCO0VBdkRMO0lBMERRLDhCcEJxR3VCO0lvQnBHdkIsY0FBYTtJQUNiLGVBQWM7SUFDZCxpQkFBZ0I7SUFDaEIsaUJBQWdCLEVBS25CO0kxQjVFRztNMEJTUjtRQWlFWSxtQkFBa0IsRUFFekIsRUFBQTtFQW5FTDtJQXNFUSxnQkFBZSxFQTJFbEI7SUFqSkw7TW5CZEksWUFBVztNQUNYLGVBQWM7TUFDZCxZQUFXLEVtQnNGTjtJQTFFVDtNQTZFWSxlQUFjLEVBQ2pCO0lBOUVUO01BaUZZLFlBQVc7TUFDWCxjQUFhO01BQ2IsWUFBVyxFQUNkO0lBcEZUO01BdUZZLFlBQVc7TUFDWCxpQkFBZ0IsRUFLbkI7TUE3RlQ7UUEyRmdCLHNCQUFxQixFQUN4QjtJQTVGYjtNQWdHWSxZQUFXLEVBd0JkO01BeEhUO1FBbUdnQixzQkFBcUI7UUFDckIsWUFBVztRQUNYLFlBQVcsRUFDZDtNQXRHYjtRQXlHZ0IsWUFBVztRQUNYLG1CQUFrQjtRQUNsQixrQkFBaUI7UUFDakIsWUFBVyxFQUNkO01BN0diO1FuQmRJLFlBQVc7UUFDWCxlQUFjO1FBQ2QsWUFBVyxFbUI2SEY7TUFqSGI7UUFxSG9CLFlBQVcsRUFDZDtJMUIvSFQ7TTBCU1I7UUEySFksbUJBQWtCLEVBc0J6QjtRQWpKTDs7OztVQWlJZ0IsWUFBVyxFQUNkO1FBbEliO1VBcUlnQixlQUFjLEVBQ2pCO1FBdEliO1VBeUlnQixZQUFXO1VBQ1gsb0JBQW1CLEVBQ3RCLEVBQUE7SUEzSWI7TW5CZEksWUFBVztNQUNYLGVBQWM7TUFDZCxZQUFXLEVtQjRKTjtFQWhKVDtJQW9KUSxnQkFBZSxFQWdCbEI7STFCN0tHO00wQlNSO1FBc0pZLG1CQUFrQjtRQUNsQixpQkFBZ0IsRUFhdkIsRUFBQTtJQXBLTDs7TUE0Slksc0JBQXFCO01BQ3JCLFVBQVM7TUFDVCxXQUFVLEVBQ2I7SUEvSlQ7TUFrS1ksc0JBQXFCLEVBQ3hCO0VBbktUO0lBdUtRLGdCQUFlO0lBQ2YsZUFBYztJQUNkLHNCQUFxQixFQUN4QjtFQTFLTDs7SUE4S1EsOEJwQmZ1QixFb0JnQjFCOztBQUdMOztrREFFa0Q7QUFFbEQ7RUFDSSxlQUFjO0VBQ2QsbUJBQWtCLEVBQ3JCOztBQ2hORDs7a0RBRWtEO0FBRWxEO0VwQktJLFlBQVc7RUFDWCxlQUFjO0VBQ2QsWUFBVyxFb0JMZDs7QUFFRDtFQUNJLHNCQUFxQixFQUN4Qjs7QUFFRDtFQUdZLGtCQUFpQjtFQUNqQixpQkFBZ0IsRUFDbkI7O0FBTFQ7RUFRWSxlQUFjLEVBQ2pCOztBQ3JCVDs7a0RBRWtEO0FBR2xEO0VBQ0ksb0JBQW1CLEVBQ3RCOztBQUVEO0VBRVEsZXRCNERRO0VzQjNEUixnQnRCc05PLEVzQnJOVjs7QUFKTDtFQU9RLCtCdEJ3TXdCLEVzQnZNM0I7O0FBUkw7RUFXUSxzQkFBcUIsRUFDeEI7O0FBR0w7RUFFWSxtQkFBa0IsRUFDckI7O0FBSFQ7RUFNWSxtQkFBa0I7RUFDbEIsaUJBQWdCO0VBQ2hCLDZCQUE0QjtFQUM1QixpQkFBZ0I7RUFDaEIsZXRCcUNJO0VzQnBDSiwrQnRCcUxvQixFc0JwTHZCOztBQUdUOztFQUVJLFlBQVc7RUFDWCxZQUFXLEVBS2Q7RTVCakNPO0k0QnlCUjs7TUFNUSxpQkFBZ0IsRUFFdkIsRUFBQTs7QUFFRDtFQUNJLGFBQVksRUFDZjs7QUFFRDtFQUNJLGNBQWEsRUFDaEI7O0FBRUQ7Ozs7O0VBS0ksb0J0QmhCb0IsRXNCaUJ2Qjs7QUFFRDtFQUVRLFlBQVcsRUFDZDs7QUFJRDtFQUNJLFlBQVc7RUFDWCxZQUFXLEVBQ2Q7O0FBRUQ7RUFDSSxZQUFXO0VBQ1gsb0J0QjlCVTtFc0IrQlYsZ0JBQWUsRUFDbEI7O0FBRUQ7O0VBRUksbUJ0QnBDVSxFc0JxQ2I7O0FBRUQ7OztFQUdJLFdBQVU7RUFDVix1QkFBc0IsRUFDekI7O0FBRUQ7RUFDSSxhQUFZO0VBQ1osYUFBWSxFQUNmOztBNUJwRkc7RTRCMERKO0lBQ0ksWUFBVztJQUNYLFlBQVcsRUFDZDtFQUVEO0lBQ0ksWUFBVztJQUNYLG9CdEI5QlU7SXNCK0JWLGdCQUFlLEVBQ2xCO0VBRUQ7O0lBRUksbUJ0QnBDVSxFc0JxQ2I7RUFFRDs7O0lBR0ksV0FBVTtJQUNWLHVCQUFzQixFQUN6QjtFQUVEO0lBQ0ksYUFBWTtJQUNaLGFBQVksRUFDZixFQUFBOztBNUJwRkc7RTRCa0dKO0lBQ0ksY0FBYSxFQUNoQjtFQUVEOzs7Ozs7SUFLUSxlQUFjO0lBQ2QsZ0JBQWU7SUFDZixpQkFBZ0I7SUFDaEIsWUFBVztJQUNYLFlBQVcsRUFDZCxFQUFBOztBQUlUO0VyQnpISSxZQUFXO0VBQ1gsZUFBYztFQUNkLFlBQVcsRXFCMEhWOztBQUVMOztrREFFa0Q7QUFFbEQ7RUFFSSxvQnRCdEdPLEVzQmlIVjtFQWJEO0lyQmxJSSxZQUFXO0lBQ1gsZUFBYztJQUNkLFlBQVcsRXFCc0lWO0VBTkw7SUFRUSxZQUFXO0lBQ1gsb0JBQW1CO0lBQ25CLG1CQUFrQjtJQUNsQixtQkFBa0IsRUFDckI7O0FBR0w7RUFDSSxhQUFZO0VBQ1osa0JBQWlCO0VBQ2pCLGdCQUFlO0VBaUJmLG9FQUFvRSxFQXFDdkU7RUF6REQ7SUFTUSxvQkFBbUI7SUFDbkIsb0JBQW1CLEVBTXRCO0lBaEJMO01yQmpKSSxZQUFXO01BQ1gsZUFBYztNQUNkLFlBQVcsRXFCdUpOO0lBUlQ7TUFhWSxnQkFBZTtNQUNmLG9CQUFtQixFQUN0QjtFQWZUO0lBa0JRLGVBQWMsRUFDakI7RUFuQkw7SUFzQlEsZUFBYyxFQUNqQjtFQXZCTDtJQTJCWSxzQkFBcUIsRUFDeEI7RUE1QlQ7SUErQlksc0JBQXFCO0lBQ3JCLG9CQUFtQixFQUt0QjtJQXJDVDtNQW1DZ0IsZUFBYyxFQUNqQjtFQXBDYjtJQXdDWSxnQkFBZSxFQUNsQjtFQXpDVDtJQWdEZ0IsZUFBYyxFQUNqQjtFQWpEYjtJQW9EWSxZQUFXO0lBQ1gsZUFBYztJQUNkLG1CQUFrQixFQUNyQjs7QTVCbk1EO0U0QndNSjtJQUVRLGtCQUFpQjtJQUNqQixvQkFBbUIsRUFDdEIsRUFBQTs7QUFJVDtFQUNJLG1CQUFrQixFQUNyQjs7QTVCbE5PO0U0QjRJUjtJQTBFUSxZQUFXO0lBQ1gsbUJBQWtCLEVBU3JCO0lBcEZMO01BZ0ZnQixZQUFXO01BQ1gsWUFBVyxFQUNkO0VBbEZiO0lBdUZRLFlBQVc7SUFDWCxZQUFXO0lBQ1gsZUFBYyxFQUNqQixFQUFBOztBNUJ0T0c7RTRCME9KO0lBQ0ksWUFBVyxFQUNkLEVBQUE7O0FBR0w7RUFDSSxnRnRCcENnRixFc0JvTm5GO0VBakxEO0lBSVEsWUFBVyxFQUNkO0VBTEw7SUFRUSxnQkFBZSxFQUNsQjtFQVRMOzs7SUFpQlEsb0JBQW1CO0lBQ25CLHVCQUFzQixFQUN6QjtFQW5CTDtJQXNCUSxldEJqTFE7SXNCa0xSLGdCdEJoREs7SXNCaURMLGlCQUFnQixFQUNuQjtFQXpCTDtJQTRCUSxnQnRCeERRO0lzQnlEUixxQkFBb0IsRUFDdkI7RUE5Qkw7O0lBa0NRLDhCQUE2QjtJQUM3QixnQkFBZTtJQUNmLGdGdEJ2RTRFLEVzQndFL0U7RUFyQ0w7O0lBeUNRLG1CQUFrQjtJQUNsQixpQkFBZ0IsRUFTbkI7SUFuREw7O01BNkNZLFdBQVUsRUFLYjtNQWxEVDs7UUFnRGdCLGNBQWEsRUFDaEI7RTVCaFNMO0k0QitPUjs7O01BeURZLHVCQUFzQixFQUN6QixFQUFBO0VBMURUO0lBaUVRLFdBQVUsRUFDYjtFQWxFTDtJQXdFWSxpQkFBZ0IsRUFDbkI7RUF6RVQ7SXJCcFBJLFlBQVc7SUFDWCxlQUFjO0lBQ2QsWUFBVyxFcUIrVE47RUE3RVQ7SUFpRlEsZUFBYztJQUNkLGVBQWM7SUFDZCwwQkFBeUI7SUFDekIsZ0Z0QnZINEUsRXNCd0gvRTtFQXJGTDs7O0lBMEZRLGNBQWEsRUFDaEI7RUEzRkw7SUE4RlEsZ0JBQWU7SUFDZixpQkFBZ0IsRUFVbkI7SUF6R0w7TUFrR1ksZ0JBQWU7TUFDZixZQUFXLEVBQ2Q7SUFwR1Q7TUF1R1ksY0FBYSxFQUNoQjtFQXhHVDtJQTRHUSwrQnRCakp3QixFc0JtSjNCO0VBOUdMO0lBaUhRLFlBQVcsRUFDZDtFQWxITDs7SUFzSFEsa0JBQWlCLEVBQ3BCO0VBdkhMO0lBMEhRLG1CQUFrQjtJQUNsQixnQkFBZSxFQWdCbEI7SUEzSUw7TWxCeFBJLFlBQVc7TUFDWCxtQkFBa0I7TUFDbEIsU0FBUTtNQUNSLFVBQVM7TUFDVCxlQUFjO01Bd0JWLGtDQUFtQztNQUNuQyxxQ0FBc0M7TUFDdEMsZ0NKK0RRO01JOURSLGtCQUFpQjtNa0J3VmIsbUJBQWtCO01BQ2xCLFNBQVE7TUFDUixhQUFZLEVBQ2Y7SUFsSVQ7TWxCeFBJLFlBQVc7TUFDWCxtQkFBa0I7TUFDbEIsU0FBUTtNQUNSLFVBQVM7TUFDVCxlQUFjO01BVVYsb0NBQXFDO01BQ3JDLG1DQUFvQztNQUNwQyw4Qko2RVE7TUk1RVIsb0JBQW1CO01rQjhXWCxhQUFZO01BQ1osU0FBUSxFQUNYO0VBekliO0lBOElRLG9CQUFtQjtJQUNuQixpQkFBZ0I7SUFDaEIsbUJBQWtCO0lBQ2xCLGdCQUFlO0lBQ2YsZ0J0QnpLTyxFc0JrTFY7SUEzSkw7TUFxSlksZUFBYyxFQUNqQjtJQXRKVDtNQXlKWSxpQkFBZ0IsRUFDbkI7RUEvWFQ7SUFtWVEsZ0JBQWU7SUFDZixtQkFBa0IsRUFhckI7SUE1S0w7TUFrS1ksYUFBWTtNQUNaLHNCdEIzUVk7TXNCNFFaLGlCQUFnQjtNQUNoQixtQkFBa0I7TUFDbEIsYUFBWSxFQUNmO0lBdktUO01BMEtZLG1CQUFrQixFQUNyQjtFQTNLVDtJQStLUSxtQkFBa0IsRUFDckI7O0E1Qi9aRztFNEJtYUo7SUFHUSxnQnRCN01JLEVzQjhNUDtFQUpMOztJQVFRLGlCQUFnQixFQUNuQjtFQVRMO0lBWVEscUJBQW9CLEVBQ3ZCLEVBQUE7O0E1QmhiRDtFNEJxYko7O0lBSVksY0FBYSxFQUNoQixFQUFBOztBNUIxYkw7RTRCaWNKO0lBRVEsY0FBYSxFQUNoQjtFQUhMO0lBUVEsZUFBYztJQUNkLG9CQUFtQjtJQUNuQixxQkFBb0I7SUFDcEIsbUJBQWtCO0lBRWxCLFlBQVcsRUFjZDtJQTNCTDtNQWdCWSwrQnRCMVpJO01zQjJaSixrQnRCeGJILEVzQnliQTtJQWxCVDtNckJ0Y0EsWUFBVztNQUNYLGVBQWM7TUFDZCxZQUFXLEVxQjBkRjtJQXRCVDtNQXlCWSxpQkFBZ0IsRUFDbkI7RUE1T2I7SUFnUFksa0JBQWlCLEVBQ3BCO0VBL0JMO0lBa0NRLGFBQVk7SUFDWixlQUFjLEVBcUJqQjtJQXhETDtNQXNDWSxtQkFBa0I7TUFDbEIsbUJBQWtCLEVBWXJCO01BbkRUO1FBMENnQixvQkFBbUIsRUFDdEI7TUEzQ2I7UUE4Q2dCLGtDQUFpQztRQUNqQyxnQnRCMVJQO1FzQjJSTyxtQkFBa0I7UUFDbEIsK0J0QnhTWSxFc0J5U2Y7SUFsRGI7TUFzRFksaUJBQWdCLEVBQ25CO0VBdkRUO0lBMkRRLGlCQUFnQjtJQUNoQixtQkFBa0IsRUFVckI7SUF4UlQ7TUFpUmdCLG9CQUFtQjtNQUNuQixtQkFBa0IsRUFLckI7TUF2UmI7UUFxUm9CLGlCQUFnQixFQUNuQjtFQXBFYjtJQXlFUSxtQkFBa0I7SUFDbEIsbUJ0QjllSztJc0IrZUwsZ0J0QnBURyxFc0J5VE47SUFoRkw7TUE4RVksZ0J0QnZURCxFc0J3VEY7RUFqU2I7SUFxU1ksV0FBc0I7SUFDdEIsWUFBVztJQUNYLGtCQUFpQixFQVFwQjtJQS9TVDtNQTBTZ0IsZUFBYztNQUNkLGdCdEJ2VUE7TXNCd1VBLG1CQUFrQjtNQUNsQiwwQkFBeUIsRUFDNUI7RUE1RlQ7O0lBaUdRLGFBQVk7SUFDWixXQUFzQixFQUN6QjtFQW5HTDs7SUF1R1Esa0JBQWlCO0lBQ2pCLGVBQWM7SUFDZCxhQUFZLEVBQ2Y7RUExR0w7OztJQStHUSxjQUFhLEVBQ2hCO0VBaEhMO0lBbUhRLGVBQWMsRUFDakI7RUF0VVQ7SUEwVVksY0FBYSxFQUNoQjtFQXpITDtJQStIWSx5QkFBd0I7SUFDeEIsbUJBQWtCO0lBRWxCLFVBQVM7SUFDVCxTQUFRLEVBQ1g7RUEzakJiO0lBaWtCWSxpQkFBZ0IsRUFNbkI7SUFsV1Q7TUErVmdCLGtCQUFpQjtNQUNqQixtQkFBa0IsRUFDckI7RUEvSVQ7O0lBb0pRLGlCQUFnQjtJQUNoQixnQnRCaFlDO0lzQmlZRCwrQnRCN1lvQixFc0I4WXZCO0VBdkpMO0lBMEpRLG1CQUFrQjtJQUNsQixZQUFXLEVBZWQ7SUExS0w7TUE4SlksYUFBWSxFQUNmO0lBL0pUO01Ba0tZLFlBQVcsRUFDZDtJQW5LVDs7TUF1S1ksY0FBYSxFQUNoQjtFQUtUO0lBS29CLHNDQUFxQyxFQUN4QyxFQUFBOztBQU9yQjs7a0RBRWtEO0FBRWxEO0VBR1EsZ0J0Qi9hUSxFc0JnYlg7O0FBSkw7RUFPUSxvQnRCNW1CSyxFc0I2bUJSOztBQVJMO0VBV1Esc0J0QnRpQlUsRXNCdWlCYjs7QUFaTDs7Ozs7O0VBcUJRLGV0QjlqQmtCLEVzQm9rQnJCO0VBM0JMOzs7Ozs7SUF3QlksMEJBQW1DLEVBQ3RDO0VBekJUOzs7Ozs7SUF3QlksMEJBQW1DLEVBQ3RDOztBQXpCVDtFQThCUSxpQnRCbG9CTSxFc0Jtb0JUOztBQS9CTDtFQXFDUSxpQnRCMW9CSztFc0Iyb0JMLGtCQUFpQjtFQUNqQixpQkFBZ0IsRUFhbkI7RUFwREw7SUEwQ1ksb0JBQW1CLEVBQ3RCO0VBM0NUO0lBZ0RnQixrQkFBaUI7SUFDakIsbUJBQWtCLEVBQ3JCOztBQWxEYjtFQXVEUSxZQUFXO0VBQ1gsZUFBYyxFQUNqQjs7QUF6REw7RUE2RFksc0NBQWtELEVBQ3JEOztBNUI3ckJEO0U0Qm1zQko7SUFDSSxZQUFXO0lBQ1gsWUFBVyxFQVVkO0lBWkQ7TUFLUSxlQUFjLEVBQ2pCO0lBTkw7O01BVVEsWUFBVyxFQUNkLEVBQUE7O0FBUVQ7RUFDSSxrQkFBaUIsRUE0QnBCO0VBN0JEO0lyQjN0QkksWUFBVztJQUNYLGVBQWM7SUFDZCxZQUFXLEVxQjh0QlY7RUFMTDtJQVNRLGdCdEJ6Z0JLO0lzQjBnQkwsb0JBQW1CO0lBRW5CLFlBQVcsRUFnQmQ7SUE1Qkw7TUFlWSxpQkFBZ0IsRUFDbkI7SUFoQlQ7TUFrQlksb0JBQW1CO01BQ25CLGlCQUFnQixFQUNuQjs7QUFnQlQ7O0VyQi92QkksWUFBVztFQUNYLGVBQWM7RUFDZCxZQUFXLEVxQmd3QmQ7O0FBRUQ7O0VBRUksWUFBVyxFQXdDZDtFQTFDRDs7SUFLUSxjQUFhLEVBQ2hCO0VBTkw7O0lBU1EsZ0Z0QjVqQjRFO0lzQjZqQjVFLGdCdEJoakJRO0lzQmlqQlIsaUJBQWdCO0lBQ2hCLGlCQUFnQjtJQUNoQiwwQkFBeUI7SUFDekIsaUJBQWdCO0lBQ2hCLHNCQUFxQjtJQUNyQixtQkFBa0IsRUFDckI7RUFqQkw7O0lBb0JRLHNCQUFxQixFQUN4QjtFQXJCTDs7SUF3QlEsZ0JBQWUsRUFDbEI7RUF6Qkw7O0lBNEJRLHNCQUFxQjtJQUNyQix1QkFBc0IsRUFLekI7SUFsQ0w7O01BZ0NZLFlBQVcsRUFDZDtFQWpDVDs7SUFxQ1EsaUJBQWdCO0lBQ2hCLGFBQVk7SUFDWixxQkFBb0I7SUFDcEIsYUFBWSxFQUNmOztBQUdMO0VBQ0ksbUJ0QnR3QmlCLEVzQnV3QnBCOztBQUVEO0VBQ0ksWUFBVztFQUNYLGFBQVksRUFNZjtFQVJEO0lBS1EsZ0J0QjlsQks7SXNCK2xCTCxxQkFBb0IsRUFDdkI7O0FBR0w7RUFFSSx5QkFBd0IsRUFDdkI7O0FBSEw7RUFLUSxpQkFBZ0IsRUFDbkI7O0FBTkw7RUFTUSxvQkFBbUIsRUFDdEI7O0FBT0w7O2tEQUVrRDtBQUVsRDtFQUVRLGV0QnZ4QlEsRXNCd3hCWDs7QUFITDtFQU1RLFlBQVc7RUFDWCxZQUFXLEVBQ2Q7O0FBR0wsZ0hBQWdIO0E1QnoxQnhHO0U0QjIxQko7SUFnQkksOEJBQThCLEVBSWpDO0lBcEJEOzs7TUFJUSxpQkFBNEI7TUFDNUIsdUJBQWtDLEVBQ3JDO0lBTkw7TUFTUSxZQUFXLEVBQ2Q7SUFWTDtNQWFRLGdCQUFlLEVBQ2xCO0lBZEw7TUFrQlEsWUFBVyxFQUNkLEVBQUE7O0E1QjkyQkQ7RTRCK09SO0lBdW9CZ0IsWUFBVyxFQUNkO0VBeG9CYjtJQTJvQm9CLGFBQVksRUFDZixFQUFBOztBNUIzM0JUO0U0Qms0Qko7SUFHWSxvQkFBbUIsRUFDdEI7RUFKVDtJQU9ZLGVBQWMsRUFDakIsRUFBQTs7QUFLYjtFQUdZLGV0Qjl6Qkk7RXNCK3pCSiwyQkFBMEIsRUFDN0I7O0FDbDZCVDs7a0RBRWtEO0FBRWxEOztFQUVJLGNBQWEsRUFDaEI7O0FBRUQ7RUFDSSxZQUFXO0VBQ1gsWUFBVyxFQUNkOztBN0JFTztFNkJMUjtJQVFZLFlBQVc7SUFDWCxjQUE4QjtJQUM5QixvQkFBbUIsRUFDdEI7RUFoQlQ7O0lBb0JZLGNBQThCO0lBQzlCLGVBQWMsRUFDakI7RUFYTDtJQWNRLGdCQUFlLEVBQ2xCLEVBQUE7O0FBSVQ7RUFFUSxhQUFzQixFQUN6Qjs7QUFHTDs7R0FFRztBQUVIO0VBQ0ksWUFBVztFQUNYLG1CQUFrQjtFQUNsQixlQUFjO0VyQjFDZCx1QkFBc0I7RUFDdEIsc0JBQXFCO0VBQ3JCLDBCQUF5QjtFQUN6QixxQkFBb0I7RUFDcEIsa0JBQWlCLEVxQjRDcEI7RUFURDtJdEJuQ0ksWUFBVztJQUNYLGVBQWM7SUFDZCxZQUFXLEVzQnlDVjs7QUFHTDtFQUNJLGdCQUFlLEVBQ2xCOztBQUdEO0VBQ0ksa0N2QlFnQixFdUJQbkI7O0FBRUQ7RUFDSSxjQUFhLEVBQ2hCOztBQUVEO0VBQ0ksZUFBYztFQUNkLGFBQVk7RUFDWixrQkFBaUI7RUFDakIsYUFBWTtFQUNaLGtCQUFpQixFQUNwQjs7QUFFRDtFQUNJLHNCQUFxQixFQUN4Qjs7QUFFRDs7O0VBR0ksZ0Z2QnVJZ0Y7RXVCdEloRixZQUFXO0VBQ1gsYUFBWTtFQUNaLG1CQUFrQjtFQUNsQixlQUFjO0VBQ2Qsa0JBQWlCO0VBQ2pCLDBCdkJsQlk7RXVCbUJaLGVBQWM7RUFDZCxtQkFBa0I7RUFDbEIsb0JBQW1CO0VBQ25CLFNBQVE7RUFDUixRQUFPO0VBQ1Asa0JBQWlCLEVBQ3BCOztBQUVEO0VBQ0kscUNBQXNDLEVBQ3pDOztBQUVEO0VBQ0ksZXZCSmlCLEV1QktwQjs7QUFFRDs7RUFFSSxldkJWWSxFdUJXZjs7QUFFRDtFQUNJLGdCdkJpSFk7RXVCaEhaLGlCQUFnQjtFQUNoQixrQkFBaUI7RUFDakIsYUFBWTtFQUNaLFlBQVc7RUFDWCx5QkFBd0IsRUFDM0I7O0E3QnhHTztFNkIwR1I7SUFFUSwwQnZCbkZHLEV1QjZGVixFQUFBOztBQVpEO0V0Qi9HSSxZQUFXO0VBQ1gsZUFBYztFQUNkLFlBQVcsRXNCb0hWOztBN0JqSEc7RTZCMEdSO0lBVVEsY3ZCakZVLEV1Qm1GakIsRUFBQTs7QUFsR0Q7RUFxR0ksWUFBVyxFQUNkOztBQUVEO0VBQ0ksaUJBQWdCLEVBQ25COztBQUVEO0VBQ0ksaUJBQWdCLEVBc0JuQjtFQXZCRDtJQUlRLFlBQVc7SUFDWCxlQUFjO0lBQ2QsbUJ2Qi9HRTtJdUJnSEYsaUJBQWdCLEVBQ25CO0VBUkw7SUFVUSxhQUFZO0lBQ1osaUJBQWdCO0lBQ2hCLGlCQUFnQixFQUNuQjtFQWJMO0lBZVEsYUFBWTtJQUNaLFVBQVMsRUFDWjtFQWpCTDtJQW1CUSxrQkFBaUI7SUFDakIsc0JBQXFCO0lBQ3JCLHVCQUFzQixFQUN6Qjs7QTdCdEpHO0U2QjBKSjs7SUFHUSxlQUFjLEVBQ2pCLEVBQUE7O0FBTVQ7RUFLUSxnQnZCeUNTO0V1QnhDVCxrQkFBaUIsRUFDcEI7O0FBUEw7RUFZUSxhQUFZLEVBQ2Y7O0FBYkw7RUFnQlEsYUFBWSxFQUNmOztBQWpCTDtFQW9CUSxjQUFhO0VBQ2IsaUJBQWdCLEVBQ25COztBQXRCTDtFQXlCUSxpQnZCcEtHLEV1QnFLTjs7QUFHSjtFQUtXLGdCdkJhSTtFdUJaSixjQUFhLEVBQ2hCOztBN0J4TUQ7RTZCK01KOztJQUVJLGNBQWEsRUFDaEIsRUFBQTs7QUFHTDtFQUNJLGN2Qm5MYyxFdUJvTGpCOztBQUVEOzs7OztHQUtHO0FBRUg7O0VBRUksd0JBQXVCLEVBQzFCOztBQUVEO0VBQ0ksc0JBQXFCLEVBQ3hCOztBQUVEO0VBQ0ksNEJBQTJCLEVBQzlCOztBQUVELHFIQUFxSDtBQUNySCxxSEFBcUg7QUFDckgscUhBQXFIO0FBQ3JIOztFQUVJLFdBQVUsRUFDYjs7QUFFRDtFQUNJLFdBQVU7RUFDVixpQkFBZ0IsRUFDbkI7O0FBRUQ7RUFDSSxpQkFBZ0IsRUFDbkI7O0FBRUQ7O0dBRUc7QUFFSDtFQUNJLGdCQUFlLEVBa0ZsQjtFQW5GRDtJQUlRLG1CQUFrQjtJQUNsQixrQkFBaUIsRUFRcEI7SUFiTDtNQVFZLGdCQUFlLEVBQ2xCO0lBVFQ7TUFXWSxrQkFBaUIsRUFDcEI7RUFaVDtJQWVRLGNBQWEsRUFDaEI7RUFoQkw7SUFrQlEsWUFBVyxFQUNkO0VBbkJMO0lBcUJRLGdCQUFlO0lBQ2YsYUFBWTtJQUNaLGtCQUFpQixFQUNwQjtFQXhCTDtJQTRCUSxrQkFBaUIsRUFDcEI7RUE3Qkw7SUErQlEsbUJBQWtCLEVBS3JCO0lBcENMO01Ba0NZLGdCQUFlLEVBQ2xCO0VBbkNUO0lBc0NRLGFBQVk7SUFDWixtQkFBa0IsRUFDckI7RUF4Q0w7SUEwQ1EsWUFBVyxFQUNkO0VBM0NMO0lBNkNRLHNCQUFxQixFQUN4QjtFQTlDTDtJQWdEUSxpQkFBZ0IsRUFDbkI7RUFqREw7SUFxRFksZ0JBQWU7SXRCNVR2QixZQUFXO0lBQ1gsZUFBYztJQUNkLFlBQVcsRXNCNFROO0VBdkRUO0lBeURZLGNBQWEsRUFLaEI7RUE5RFQ7SUFnRVksWUFBVyxFQUNkO0U3Qm5VRDtJNkJrUVI7TUFvRVksZ0JBQWUsRUFNdEI7TUExRUw7UUF1RWdCLGFBQVksRUFDZixFQUFBO0VBeEViO0lBNkVRLGdCQUFlLEVBQ2xCO0VBOUVMO0lBZ0ZRLFlBQVc7SUFDWCxxQkFBb0IsRUFDdkI7O0FBS0wsdUJBQXVCO0FBRXZCO0VBQ0ksaUJBQWdCLEVBSW5CO0VBTEQ7SUFHWSxrQkFBaUIsRUFDcEI7O0FBR1Q7RUFDSSxVQUFTO0VBQ1QsVUFBUztFQUNULG1CQUFrQixFQXVEckI7RUExREQ7SUFNUSxnQnZCaEpPLEV1QmlKVjtFQVBMO0lBU1EsaUJBQWdCO0k1QjVUcEIsVUFBUztJQUNULG9CQUFtQjtJQUNuQixlS21DWTtJTGxDWixnRkswSmdGO0lMekpoRixnQkFBZTtJQUNmLG9CQUFtQjtJQUNuQixtQkFBa0I7SUFDbEIsaUJBQWdCO0k0QnVUWixtQkFBa0I7SUFDbEIsMEJBQXlCO0lBQ3pCLG9CQUFtQjtJQUNuQixldkIzUmEsRXVCNFJoQjtFQWZMO0lBa0JRLGV2QmhTUSxFdUJpU1g7RUFuQkw7SUFxQlEsb0JBQW1CO0lBQ25CLCtCdkI3S3lCLEV1QjhLNUI7RUF2Qkw7SUEwQlEsbUJBQWtCLEVBQ3JCO0VBM0JMO0lBZ0NZLFdBQVU7SUFDVixrQkFBaUI7SUFDakIsZXZCaFRJO0l1QmlUSiwrQnZCMUxxQjtJdUIyTHJCLHFCQUFvQjtJQUNwQixtQkFBa0I7SUFDbEIsWUFBVztJQUNYLFlBQVc7SUFDWCxnQnZCbExHLEV1QnVMTjtJQTdDVDtNQTJDZ0IsY0FBYSxFQUNoQjtFQTVDYjtJQWdEWSxZQUFXO0lBQ1gsbUJBQWtCO0lBQ2xCLGdCdkI1TEcsRXVCNkxOO0VBbkRUO0l0QnZXSSxZQUFXO0lBQ1gsZUFBYztJQUNkLFlBQVcsRXNCNFpOOztBQUtULGlCQUFpQjtBQUNqQjtFQUdZLGNBQWEsRUFDaEI7O0FBSVQ7RUFDSSxZQUFXLEVBQ2Q7O0FBRUQ7RUFDSSxZQUFXO0VBQ1gsaUJBQWdCO0VBQ2hCLG9CQUFtQixFQVl0QjtFQWZEO0lBTVEsaUJBQWdCLEVBQ25CO0VBUEw7SUFTUSxZQUFXO0lBQ1gsbUJBQWtCLEVBQ3JCO0VBWEw7SUFhUSxhQUFZLEVBQ2Y7O0E3QnpiRztFNkI4Yko7SUFDSSxjQUFhLEVBQ2hCLEVBQUE7O0E3QmhjRztFNkJxY0o7SUFDSSxjQUFhLEVBQ2hCLEVBQUE7O0FBR0w7bUNBQ21DO0FBQ25DOztFQUVJLGdCQUFlLEVBQ2xCOztBQUVEOztFQUVJLGNBQWEsRUFDaEI7O0FBSUQsaUhBQWlIO0FBQ2pIO0VBQ0ksa0JBQWlCO0VBQ2pCLGdCQUFlLEVBMEJsQjtFQTVCRDtJQUtRLGNBQWEsRUFDaEI7RUFOTDtJQVNRLDBCQUF5QjtJQUN6QixXQUFVLEVBaUJiO0lBM0JMO01BYVksWUFBVztNQUNYLFdBQVUsRUFDYjtJN0J4ZUQ7TTZCeWRSO1FBbUJnQixZQUFXO1FBQ1gsWUFBVyxFQUNkLEVBQUE7SUFyQmI7TUF5QlksY0FBYSxFQUNoQjs7QTdCbmZEO0U2QndmSjtJQUNJLGNBQWEsRUFLaEI7SUFORDtNQUlRLGVBQWMsRUFDakI7RUFMTDtJQVFJLGVBQWMsRUFDakIsRUFBQTs7QUFHTDtFQUVRLG9CdkJuZVUsRXVCb2ViOztBQUhMO0VBTVEsWUFBVztFQUNYLGtCQUFpQixFQUNwQjs7QUFHTCxrQkFBa0I7QUFDbEI7RXRCcmhCSSxZQUFXO0VBQ1gsZUFBYztFQUNkLFlBQVc7RXNCc2hCUCxpQnZCMWZHLEV1QnlnQk47RUFsQkw7SUFNWSxrQkFBaUIsRUFDcEI7RUFQVDtJQVVZLFlBQVc7SUFDWCxZQUFXO0lBQ1gsb0JBQW1CLEVBQ3RCO0VBYlQ7SUFnQlksWUFBVyxFQUNkOztBQUlUO0V0QjFpQkksWUFBVztFQUNYLGVBQWM7RUFDZCxZQUFXO0VzQjRpQkgsWUFBVztFQUNYLGlCdkI3Z0JLO0V1QjhnQkwsZUFBYyxFQU9qQjtFQWJUO0lBVW9CLG9CdkJsaEJILEV1Qm1oQkE7O0FBWGpCO0VBa0JZLG1CdkJwaEJNLEV1QnFoQlQ7O0FBbkJUO0VBc0JZLFlBQVcsRUFDZDs7QUF2QlQ7RUEwQlksYUFBWSxFQVNmO0VBbkNUO0l0QjFpQkksWUFBVztJQUNYLGVBQWM7SUFDZCxZQUFXLEVzQnNrQkY7RUE5QmI7SUFpQ2dCLGtCQUFpQixFQUNwQjs7QUFsQ2I7RUF1Q1EscUJ2QnJqQkU7RXVCc2pCRixvQnZCdGpCRTtFdUJ1akJGLGlDdkI3ZGtCLEV1Qm9mckI7RUFoRUw7SXRCMWlCSSxZQUFXO0lBQ1gsZUFBYztJQUNkLFlBQVcsRXNCcWxCTjtFQTdDVDtJQWdEWSxhQUFZLEVBV2Y7SUEzRFQ7TUFtRGdCLFlBQVc7TUFDWCxrQkFBaUI7TUFDakIsbUJBQWtCLEVBQ3JCO0lBdERiO01BeURnQixlQUFjLEVBQ2pCO0VBMURiO0lBOERZLG1CQUFrQixFQUNyQjs7QTdCcG1CRDtFNkJ5bUJKO0lBR1EsZ0JBQWUsRUFDbEI7RUF4RVQ7SUE0RWdCLFlBQVc7SUFDWCxZQUFXLEVBQ2Q7RUE5RWI7SUFpRmdCLGlCQUFnQixFQUtuQjtJQWxCVDtNQWdCZ0IsWUFBVyxFQUNkLEVBQUE7O0FBT2pCO0VBRVEsWUFBVztFQUNYLGVBQWM7RUFDZCxldkJqakJRO0V1QmtqQlIsZ0J2Qm5iUTtFdUJvYlIsa0N2QmhsQlk7RXVCaWxCWixxQkFBb0I7RUFDcEIsb0JBQW1CO0VBQ25CLG9CdkJobkJLLEV1QmluQlI7O0FBR0w7RUFFUSxpQkFBZ0IsRUFDbkI7O0FDL3BCTDs7a0RBRWtEO0FBRWxEO0VBRVEsV0FBVTtFQUNWLG1CQUFrQixFQUNyQjs7QUFKTDtFQU9RLGVBQWM7RUFDZCxtQkFBa0IsRUFLckI7RUFiTDtJQVdZLFlBQVcsRUFDZDs7QUNoQlQ7O2tEQUVrRDtBQUVsRCxZQUFZO0FBQ1o7OztFeEJJSSxZQUFXO0VBQ1gsZUFBYztFQUNkLFlBQVcsRXdCRFY7O0FBR0wsNEJBQTRCO0FBQzVCOztFQUVJLGVBQWM7RUFDZCxtQkFBeUM7RUFDekMsZ0J6QmtOUztFeUJqTlQsbUJBQWtCO0VBQ2xCLGV6QjhFWTtFeUI3RVosc0JBQXFCO0VBQ3JCLHdCQUF1QixFQUMxQjs7QUFFRDtFQUNJLDBCekIwSnFCO0V5QnpKckIsZ0JBQWUsRUFrQ2xCO0VBcENEO0lBS1EsbUJBQXlDLEVBQzVDO0VBTkw7SUFTUSxnQkFBZTtJQUNmLHNCQUFxQixFQUN4QjtFQVhMO0lBY1EsY0FBYTtJQUNiLG9CQUFtQjtJQUNuQixtQkFBa0I7SUFDbEIsUUFBTztJQUNQLFNBQVE7SUFDUixPQUFNO0lBQ04sVUFBUztJQUNULGlFQUFnRTtJQUNoRSxZQUFXLEVBQ2Q7RUF2Qkw7SUEyQlksbUJBQWtCLEVBQ3JCO0VBNUJUO0lBK0JZLG1CQUFrQjtJQUNsQixPQUFNO0lBQ04sUUFBTyxFQUNWOztBQUlUO0VBQ0ksdUJBQXNCO0VBQ3RCLFVBQVM7RUFDVCxvQkFBbUI7RUFDbkIsb0J6QjRHeUIsRXlCM0c1Qjs7QUFFRDtFQUNJLGtCQUFpQjtFQUNqQixRQUFPO0VBQ1AsWUFBVztFQUNYLG1DQUFrQyxFQTJDckM7RUEvQ0Q7SUFPUSxZQUFXO0lBQ1gsUUFBTztJQUNQLGtCQUFpQixFQUNwQjtFQUVEO0lBQ0ksc0JBQXFCO0lBQ3JCLFlBQVc7SUFDWCxVQUFTO0lBQ1Qsb0JBQW1CLEVBQ3RCO0VBakJMO0lBcUJZLGVBQWMsRUFDakI7RUF0QlQ7SUF5Qlksc0J6QnVGbUI7SXlCdEZuQixtQkFBa0IsRUFNckI7SUFoQ1Q7TUE2QmdCLGFBQVk7TUFDWiwwQkFBeUIsRUFDNUI7RUEvQmI7SUFtQ1ksWUFBVztJQUNYLGlCQUFnQixFQUNuQjtFQXJDVDtJQXlDUSxlQUFjLEVBQ2pCO0VBMUNMO0lBNkNRLFdBQVUsRUFDYjs7QUFHTDtFQUVRLGtCQUFpQjtFQUNqQixXQUFVLEVBQ2I7O0FBSkw7RUFPUSxhQUFZO0VBQ1osa0JBQTJCO0VBQzNCLGtCQUFpQjtFQUNqQixpQkFBZ0IsRUFTbkI7RUFuQkw7SUFhWSxxQkFBb0IsRUFDdkI7RUFkVDtJQWlCWSxzQnpCakVJLEV5QmtFUDs7QUFsQlQ7RUFzQlEsb0J6QmtDcUI7RXlCakNyQiwwQnpCc0NpQjtFeUJyQ2pCLG1CQUF5QztFQUN6QyxlQUFjO0VBQ2QsWUFBVztFQUNYLG1CQUFrQjtFQUNsQixrQkFBaUI7RUFDakIsaUJBQWdCO0VBQ2hCLG9CQUFtQixFQU90QjtFQXJDTDtJQWlDWSx1QkFBc0I7SUFDdEIsbUJBQTJDO0lBQzNDLHdCQUF1QixFQUMxQjs7QUFwQ1Q7RUF3Q1EsV0FBVSxFQUNiOztBL0JsSkc7RStCdUpKO0lBQ0ksWUFBVyxFQUNkLEVBQUE7O0FBR0w7RUFFUSxtQkFBa0IsRUFhckI7RUFmTDtJQUtZLGtCQUFpQjtJQUNqQixtQkFBa0I7SUFDbEIsU0FBUTtJQUNSLFNBQVEsRUFDWDtFQVRUO0lBWVksZUFBYztJQUNkLFlBQVcsRUFDZDs7QUFkVDtFQWtCUSxzQkFBcUI7RUFDckIsa0JBQWlCLEVBTXBCO0VBekJMO0lBc0JZLHNCekJaYTtJeUJhYixnQkFBZSxFQUNsQjs7QUFJVCx5QkFBeUI7QUFDekI7OztFQUdJLHNCekJuSVksRXlCb0lmOztBQUVEO0VBQ0ksNEJBQTJCLEVBZ0I5QjtFQWpCRDtJQUlRLGNBQWEsRUFDaEI7RUFMTDtJQVFRLGdCQUFlO0lBQ2Ysb0J6QnBHVTtJeUJxR1YsNEJBQTJCO0lBQzNCLGtCQUFpQjtJQUNqQix1QkFBc0I7SUFDdEIsWUFBVztJQUNYLGVBQWM7SUFDZCxtQkFBeUMsRUFDNUM7O0FBR0wsWUFBWTtBQUNaO0VBQ0ksZXpCL0hpQixFeUJnSXBCOztBQUVEO0VBR1ksWUFBVztFQUNYLGVBQWM7RUFDZCxZQUFXO0VBQ1gsVUFBUyxFQWtCWjtFQXhCVDs7SUFVZ0IsZ0J6QlJBLEV5QlNIO0VBWGI7SUFjZ0IsZUFBYztJQUNkLGlCQUFnQixFQUNuQjtFQWhCYjtJQW1CZ0IsZ0JBQWU7SUFDZixvQkFBbUI7SUFDbkIsZXpCeEpBO0l5QnlKQSxrQkFBaUIsRUFDcEI7O0FBdkJiO0VBMkJZLFlBQVc7RUFDWCxhQUFZLEVBQ2Y7O0FBN0JUO0VBZ0NZLGNBQWEsRUFDaEI7O0FBakNUO0VBcUNRLGtDQUFpQztFQUNqQyxnQkFBZSxFQUNsQjs7QUM1UUw7O2tEQUVrRDtBQUVqRDs7OztFQU9XLGUxQnVGSTtFMEJ0RkosMkJBQTBCLEVBSTdCO0VBWlI7Ozs7SUFVZSxlMUJ5REEsRTBCeERIOztBaENETDtFZ0NNUDtJQUllLGNBQWEsRUFJcEIsRUFBQTs7QWhDZEQ7RWdDTVA7SUFVZSwrQkFBK0IsRUFHMUMsRUFBQTs7QUFHTDtFQUVRLDZCQUE0QixFQUMvQjs7QUFHTDtFQUdRLHFCMUJORyxFMEJPTjs7QUFKTDtFQVFZLGFBQVksRUFDZjs7QUFUVDtFQWFRLGdCMUIwS1EsRTBCektYOztBQWRMO0VBa0JZLGlCQUFnQjtFQUNoQixjQUFhLEVBRWhCOztBQXJCVDs7RUF3QlksdUJBQXNCLEVBQ3pCOztBQXpCVDtFQTZCZ0IsaUJBQWdCO0VBQ2hCLG1CQUFrQjtFQUNsQixzQkFBeUIsRUFDNUI7O0FoQzVETDtFZ0M0QlI7O0lBd0NnQixlQUFjO0lBQ2QsaUJBQWdCLEVBQ25CO0VBMUNiO0lBNkNnQixvQkFBbUIsRUFDdEI7RUE5Q2I7SUFpRGdCLG1CQUFrQixFQUNyQixFQUFBOztBaEM5RUw7RWdDNEJSO0lBeURnQixpQkFBZ0IsRUFDbkIsRUFBQTs7QWhDdEZMO0VnQzRCUjtJQW1FZ0IscUIxQnRFTCxFMEJ1RUU7RUFwRWI7SUF1RWdCLGtCMUIxRUwsRTBCMkVFLEVBQUE7O0FoQ3BHTDtFZ0M0QlI7SUE4RVksY0FBYSxFQUNoQixFQUFBOztBQUlUO0VBR1ksYUFBWSxFQUNmOztBQUlUO0VBRVEsY0FBYSxFQUNoQjs7QUFITDtFQUtRLGdCMUI0Rk87RTBCM0ZQLG1CMUJ0R0UsRTBCdUdMOztBQUdMO0VBQ0ksY0FBYTtFQUNiLDBCMUJtQ3FCO0UwQmxDckIsYzFCakdjO0UwQmtHZCxtQkFBa0IsRUFxQnJCO0VBekJEO0lBT1EsZUFBYyxFQUNqQjtFQVJMO0lBV1EsK0IxQjhEd0IsRTBCN0QzQjtFQVpMO0lBZVEsbUJBQWtCO0lBQ2xCLE9BQU07SUFDTixTQUFRO0lBQ1IsYzFCaEhVO0kwQmlIVixnQjFCcUVRLEUwQnBFWDtFQXBCTDtJQXVCUSxjQUFhLEVBQ2hCOztBQUdMO0VBSVEsY0FBYSxFQUNoQjs7QUFJTDs7RUFHUSxpQkFBZ0I7RUFDaEIsYUFBWTtFQUNaLHFCMUJqSkcsRTBCa0pOOztBQUdMOztrREFFa0Q7QUFDbEQ7RUFJZ0IsVUFBUztFQUNULGlCQUFnQixFQUNuQjs7QUFOYjtFQVVZLG1CQUFrQjtFQUNsQixrQkFBaUIsRUFpQnBCO0VBNUJUO0lBY2dCLGlCQUFnQixFQUNuQjtFQWZiO0lBa0JnQixtQkFBa0I7SUFDbEIsU0FBUTtJQUNSLE9BQU0sRUFDVDtFQXJCYjs7SUF5QmdCLG1CQUFrQjtJQUNsQixXQUFVLEVBQ2I7O0FBM0JiOzs7RUFpQ1ksWUFBVztFQUNYLHNCQUFxQixFQUN4Qjs7QUFuQ1Q7RUFzQ1ksZ0IxQkRDO0UwQkVELGlCQUFnQixFQUNuQjs7QUF4Q1Q7RUEyQ1ksaUIxQm5NRDtFMEJvTUMsb0IxQnBNRCxFMEJxTUY7O0FBN0NUO0VBaURRLGdCQUFlLEVBNEJsQjtFQTdFTDtJQXFEZ0IsZ0YxQjFCb0U7STBCMkJwRSwwQkFBeUI7SUFDekIsbUJBQWtCO0lBQ2xCLGdCMUJqQkQsRTBCa0JGO0VBekRiO0lBNkRZLG9CQUFtQixFQUt0QjtJQWxFVDtNQWdFZ0Isb0JBQW1CLEVBQ3RCO0VBakViO0lBc0VnQixlQUFjLEVBQ2pCO0VBdkViO0lBMkVZLGNBQWEsRUFDaEI7O0FBNUVUO0VBbUZvQixlQUFzQixFQUN6Qjs7QUFwRmpCO0VBeUZvQixvQjFCN09ILEUwQjhPQTs7QUExRmpCO0VBNkZvQixpQjFCclBULEUwQnNQTTs7QUE5RmpCO0VBb0dnQixpQjFCbFBFO0UwQm1QRixpQkFBZ0IsRUFDbkI7O0FBdEdiO0VBeUdnQixzQkFBcUI7RUFDckIsaUJBQWdCLEVBQ25COztBQTNHYjtFQWdIZ0Isb0IxQnBRQyxFMEJxUUo7O0FBakhiO0VBdUhvQixpQjFCclFGO0UwQnNRRSxpQkFBZ0IsRUFLbkI7RUE3SGpCO0lBMkh3QixtQkFBa0IsRUFDckI7O0FBNUhyQjtFQWdJb0IsZ0JBQWU7RUFDZixpQkFBZ0IsRUFDbkI7O0FBTWpCOztFQUlZLFlBQVc7RUFDWCxZQUFXO0VBQ1gsbUIxQjVSTSxFMEI2UlQ7O0FBUFQ7RUFVWSxZQUFXO0VBQ1gsWUFBVyxFQUNkOztBQUlUOztrREFFa0Q7QUFFbEQ7RUFHWSxlMUI1UEk7RTBCNlBKLDJCQUEwQixFQUk3QjtFQVJUO0lBTWdCLGUxQjFSQSxFMEIyUkg7O0FBS2I7RUFFUSxpQjFCbFVHO0UwQm1VSCxvQkFBbUIsRUFZdEI7RUFmTDtJQU1ZLGdCMUI1SUk7STBCNklKLGlCQUFnQjtJQUNoQixzQkFBcUI7SUFDckIsaUJBQWdCLEVBQ25CO0VBVlQ7SUFhWSxjMUJuVU0sRTBCb1VUOztBQWRUOzs7O0VBc0JZLGUxQjNSSTtFMEI0UkosMkJBQTBCLEVBSTdCO0VBM0JUOzs7O0lBeUJnQixlMUJ6VEEsRTBCMFRIOztBQTFCYjtFQStCUSxxQkFBb0I7RUFDcEIsa0MxQmxVWTtFMEJtVVosb0JBQW1CLEVBT3RCO0VBeENMOztJQXFDWSwrQjFCbkxxQixFMEJxTHhCOztBQXZDVDs7RUE2Q1kseUJBQWlDO0VBQ2pDLGtCQUFpQixFQWlCcEI7RUEvRFQ7O0lBaURnQixtQkFBa0I7SUFDbEIscUJBQW9CLEVBWXZCO0lBOURiOzs7O01Bc0RvQixpQkFBZ0I7TUFDaEIsK0IxQnRNWTtNMEJ1TVosZ0IxQjNMUCxFMEI0TEk7SUF6RGpCOztNQTREb0Isb0JBQTRCLEVBQy9COztBQTdEakI7RUFvRVksa0JBQWlCLEVBQ3BCOztBQXJFVDtFQXdFWSxnQkFBdUI7RUFDdkIsOEIxQjFQbUIsRTBCMlJ0QjtFQTFHVDtJQTRFZ0IsY0FBYSxFQUNoQjtFQTdFYjtJQWdGZ0Isb0JBQW1CO0lBQ25CLFlBQVc7SUFDWCxpQkFBZ0I7SUFDaEIsZ0IxQnBORCxFMEJxTkY7RUFwRmI7SUF1RmdCLGtCQUFpQixFQWtCcEI7SUF6R2I7TXpCOVZJLFlBQVc7TUFDWCxlQUFjO01BQ2QsWUFBVztNeUJ1YkssaUJBQWdCLEVBYW5CO01BeEdqQjtRQThGd0IsWUFBVztRQUNYLGdGMUI1TzREO1EwQjZPNUQsZ0IxQmpPVDtRMEJrT1Msa0JBQWlCLEVBQ3BCO01BbEdyQjtRQXFHd0IsWUFBVztRQUNYLGtCQUFpQixFQUNwQjs7QUFPckI7O2tEQUVrRDtBQUVsRDtFQUVRLCtCMUJsUXlCLEUwQnVTNUI7RUF2Q0w7O0lBTVksa0JBQWlCLEVBQ3BCO0VBUFQ7SUFVWSxtQkFBbUIsRUFLdEI7SUFmVDtNQWFnQixpQjFCcmJFLEUwQnNiTDtFaEN6ZEw7SWdDMmNSOztNQW9CZ0IsWUFBVztNQUNYLGdCQUFlO01BQ2YsaUJBQWdCLEVBS25CO01BM0JiOztRQXlCb0IsWUFBVyxFQUNkLEVBQUE7RWhDcmVUO0lnQzJjUjtNQWtDd0Isb0JBQW1CLEVBQ3RCLEVBQUE7O0FBT3JCOztrREFFa0Q7QUFFbEQ7RUFDSSxxQjFCdmRjO0UwQndkZCxpQzFCblYyQjtFMEJvVjNCLFlBQVc7RUFDWCxvQjFCcGVPLEUwQjRmVjtFQTVCRDs7OztJQVVRLGdCQUFlLEVBQ2xCO0VBWEw7SUFjUSxtQkFBOEIsRUFDakM7RUFmTDtJQWtCUSxtQkFBOEIsRUFTakM7SUEzQkw7TUFxQlksaUJBQWdCLEVBQ25CO0lBdEJUO01BeUJZLGVBQWMsRUFDakI7O0FBSVQ7RUFDSSxnRjFCNVVnRjtFMEI2VWhGLDBCQUF5QixFQUM1Qjs7QUFFRDtFQUNJLG9CQUFtQjtFQUNuQixpQkFBZ0IsRUFnRW5CO0VBbEVEO0lBS1EscUJBQW9CO0lBQ3BCLGlDMUIxWHVCLEUwQjJYMUI7RUFQTDtJQVVRLGlCQUFnQjtJQUNoQixXQUFVLEVBQ2I7RUFaTDtJQWVRLFdBQVUsRUFDYjtFQWhCTDs7SUFvQlEsaUJBQWdCO0lBQ2hCLGVBQWM7SUFDZCxrQkFBaUIsRUFDcEI7RUF2Qkw7SUEwQlEsYUFBWTtJQUNaLG9CMUJwaEJVO0kwQnFoQlYsWUFBVyxFQVlkO0lBeENMO01BK0JZLGdCMUJyV0M7TTBCc1dELGdGMUJoWHdFO00wQmlYeEUsa0JBQWlCO01BQ2pCLGlCQUFnQixFQUtuQjtNQXZDVDtRQXFDZ0IsYUFBWSxFQUNmO0VBdENiO0lBMkNRLFlBQVc7SUFDWCwrQjFCN1h5QixFMEJrWjVCO0lBakVMOztNQWdEWSwrQjFCallxQjtNMEJrWXJCLGlCQUFnQixFQUNuQjtJQWxEVDtNQXFEWSxrQjFCOWlCTSxFMEIraUJUO0lBdERUO01BeURZLG1CMUJ4akJLLEUwQnlqQlI7SUExRFQ7TUE2RFksZ0YxQjdZd0U7TTBCOFl4RSxvQkFBbUI7TUFDbkIsMEJBQXlCLEVBQzVCOztBQUlUO0VBRVEsa0IxQi9qQlU7RTBCZ2tCVixpQkFBZ0I7RUFDaEIsbUJBQWtCLEVBQ3JCOztBQUxMO0VBUVEsa0JBQTZCLEVBQ2hDOztBQVRMO0VBWVEsb0JBQW1CO0VBQ25CLGlCQUFnQixFQUNuQjs7QUFHTDtFQUVRLGlCMUJobEJVO0UwQmlsQlYsaUJBQWdCLEVBS25CO0VBUkw7SUFNWSxtQkFBa0IsRUFDckI7O0FBUFQ7RUFXUSxnQkFBZSxFQUNsQjs7QWhDN25CRztFZ0NnbUJSO0lBbUNZLGtCQUFpQixFQUNwQjtFQXBDVDtJQXVDWSxrQkFBaUIsRUFDcEI7RUFQTDtJQVdZLGNBQWEsRUFDaEI7RUFaVDtJQWVZLG1CMUI3bUJFLEUwQjhtQkw7RUFoQlQ7SUFvQlEsc0IxQjdlbUIsRTBCOGV0QjtFQXJCTDtJQXlCWSxtQkFBa0IsRUFDckI7RUExQlQ7SUErQlkscUJBQW9CO0lBQ3BCLGlCQUFnQixFQUtuQjtJQXJDVDtNQW1DZ0IscUIxQnZvQkgsRTBCd29CQTtFQXBDYjtJQXlDUSxjQUFhLEVBQ2hCLEVBQUE7O0FBSVQ7RUFDSSxlQUFjLEVBQ2pCOztBQUVEO0VBRVEsaUIxQmxwQlUsRTBCbXBCYjs7QWhDdHJCRztFZ0N5VlI7O0lBcVdnQixvQjFCcnFCTDtJMEJzcUJLLGtCQUFpQixFQUNwQjtFQS9nQmI7SUFzaEJnQixvQkFBbUIsRUFDdEIsRUFBQTs7QWhDeHNCTDtFZ0NpTFI7SUFnaUJnQixpQkFBZ0IsRUFNbkI7SUFUVDs7TUFPZ0IsV0FBVSxFQUNiLEVBQUE7O0FoQ3R0QlQ7RWdDNnRCSjs7OztJQU9nQixjQUFhLEVBQ2hCO0VBek1qQjtJQWdOWSxZQUFXLEVBQ2Q7RUFHTDtJQUVRLFlBQVc7SUFDWCxXQUFVO0lBQ1Ysb0IxQjN0QkQsRTBCNHRCRjtFQTVQVDtJQWlRWSxjQUFhLEVBQ2hCO0VBR0w7SUFFUSxpQkFBZ0IsRUFLbkI7SUFQTDtNQUtZLGNBQWEsRUFDaEI7RUFOVDtJQVVRLCtCMUI3akJxQixFMEJra0J4QjtJQWZMO01BYVksbUJBQWtCLEVBQ3JCO0VBbmJiO0lBdWJZLHFCMUJudkJLO0kwQm92Qkwsb0IxQnh2QkQsRTBCeXZCRjtFQXpiVDs7SUE4YmdCLFdBQVU7SUFDVixpQkFBZ0I7SUFDaEIsZ0JBQWUsRUFDbEI7RUE1QlQ7SUErQlksWUFBVztJQUNYLGlCQUFnQixFQUNuQjtFQWpDVDtJQW9DWSxhQUFZLEVBQ2YsRUFBQTs7QWhDbnlCTDtFZ0N5eUJKO0lBSWdCLGdCQUFlLEVBQ2xCLEVBQUE7O0FoQzl5QlQ7RWdDaUxSO0lBd29Cb0IsbUJBQWtCLEVBQ3JCO0VBem9CakI7SUE2b0JnQixtQkFBa0IsRUFXckI7SUF4cEJiO01BZ3BCb0IsWUFBVztNQUNYLGlCQUFnQjtNQUNoQixvQjFCdHlCSCxFMEIyeUJBO01BbkJiO1FBaUJvQixpQkFBZ0IsRUFDbkI7RUFsQmpCO0lBd0JnQixvQjFCaHpCSCxFMEJpekJBO0VBekJiO0lBNkJZLG9CMUJyekJDLEUwQnN6Qko7RUE5QlQ7SUFpQ1ksY0FBYSxFQUNoQjtFQWxDVDtJQXNDZ0Isb0IxQjl6Qkg7STBCK3pCRyxpQkFBZ0I7SUFDaEIsWUFBVztJQUNYLFlBQVcsRUFDZDtFQTFDYjtJQTZDZ0Isb0IxQnIwQkgsRTBCczBCQTtFQTFXakI7SUFnWFEsaUIxQjUwQlMsRTBCNjBCWjtFQUVEOztJQUlZLGNBQWEsRUFDaEI7RUFMVDtJQVFZLGtCQUFpQixFQUNwQjtFQTVoQmI7O0lBb2lCZ0IsWUFBVztJQUNYLGlCMUJqMkJDLEUwQmsyQko7RUFuV2I7SUF3V1EsVUFBUyxFQWNaO0lBdFhMOztNQTRXWSxZQUFXO01BQ1gsaUMxQmp1Qm1CO00wQmt1Qm5CLGdCQUFzQixFQUN6QjtJQS9XVDtNQWtYWSxrQkFBaUI7TUFDakIsaUJBQWdCO01BQ2hCLG9CMUJ2M0JELEUwQnczQkY7RUFHTDtJQUVRLG9CQUFtQixFQUN0QixFQUFBOztBQUlUOztrREFFa0Q7QUFFbEQ7RUFFUSxvQkFBbUIsRUFDdEI7O0FBSEw7RUFNUSxjQUFhLEVBQ2hCOztBQVBMO0VBVVEsOEIxQjN4QnlCO0UwQjR4QnpCLGtCMUJuNUJFLEUwQm81Qkw7O0FDejdCTDs7a0RBRWtEO0FBRWxEO0VBRVEsa0IzQmlDRztFMkJoQ0gsaUJBQWdCLEVBbUJuQjtFQXRCTDtJQU1ZLFlBQVcsRUFDZDtFakNHRDtJaUNWUjtNQVVZLGlCQUFnQjtNQUNoQixlQUFjLEVBV3JCO01BdEJMO1FBY2dCLFlBQVc7UUFDWCxpQkFBZ0IsRUFDbkI7TUFoQmI7UUFtQmdCLGFBQVksRUFDZixFQUFBOztBQ3hCYjs7a0RBRWtEO0FsQ1kxQztFa0NWUjs7SUFNb0IsYUFBWSxFQUNmLEVBQUE7O0FBUGpCO0VBYVEsb0I1Qm9CRTtFNEJuQkYscUI1Qm1CRTtFNEJsQkYsaUM1QnlJeUIsRTRCeEk1Qjs7QUFoQkw7RUFtQlEsZ0JBQWU7RUFDZixpQkFBZ0I7RUFDaEIsVUFBUyxFQUtaO0VBMUJMO0lBd0JZLG9CNUJTRixFNEJSRDs7QWxDZkQ7RWtDVlI7SUE4Qlksa0JBQWlCLEVBQ3BCO0VBL0JUO0lBa0NZLGNBQWEsRUFDaEIsRUFBQTs7QUFLVDtFQUNJLGdCNUJPaUI7RTRCTmpCLG1CNUJNaUI7RTRCTGpCLG1CQUFrQixFQVNyQjtFQVpEO0lBTVEsc0JBQXFCLEVBS3hCO0lBWEw7TUFTWSxlQUFjLEVBQ2pCOztBQUlUO0VBQ0ksY0FBYTtFQUNiLG1CQUFrQjtFQUNsQixtQkFBa0IsRUFpQnJCO0VBcEJEO0lBTVEsZUFBYztJQUNkLGVBQWMsRUFDakI7RUFSTDtJQVVRLHNCQUFxQjtJQUNyQixnQkFBZSxFQUNsQjtFQVpMO0lBY1EsYUFBWSxFQUNmO0VBZkw7SUFpQlEsd0JBQXVCO0lBQ3ZCLGdCQUFlLEVBQ2xCOztBQUlMO0VBQ0ksZUFBYztFQUNkLFVBQVMsRUFDWjs7QWxDdEVPO0VrQ3lFSjtJQUNJLGVBQWMsRUFDakIsRUFBQTs7QWxDM0VHO0VrQytFSjtJQUNJLGVBQWMsRUFDakIsRUFBQTs7QUFHTDtFQUNJLG1CQUFrQjtFQUNsQixlQUFxQjtFQUNyQixnQkFBZSxFQW1CbEI7RUF0QkQ7SUFNUSxlQUFjO0lBQ2QsWUFBVyxFQVVkO0lBakJMO01BVVksc0JBQXFCO01BQ3JCLGdCQUFlLEVBS2xCO01BaEJUO1FBY2dCLGdCQUFlLEVBQ2xCO0VBZmI7SUFvQlEsY0FBYSxFQUNoQjs7QUFHTDtFQUVRLGtCQUFpQixFQUNwQjs7QUFHTDtFQUNJLHNCQUFxQixFQUN4Qjs7QUFFRDtFQUVRLG1CQUFrQjtFQUNsQixlQUFjLEVBb0JqQjtFQXZCTDtJQU1ZLHNCQUFxQjtJQUNyQixnQkFBZSxFQVFsQjtJQWZUO01BVWdCLGFBQVksRUFDZjtJQVhiO01BYWdCLGVBQWMsRUFDakI7RUFkYjtJQWlCWSxnQkFBZSxFQUtsQjtJQXRCVDtNQW1CZ0IsZ0I1QmdGQTtNNEIvRUEsaUJBQWdCLEVBQ25COztBQ3pKYjs7a0RBRWtEO0FBRWxEO0VBQ0ksWUFBVztFQUNYLFlBQVcsRUEwS2Q7RUE1S0Q7SUFLUSw4QjdCMktpQjtJNkIxS2pCLGlDN0IwS2lCO0k2QnpLakIsb0JBQW1CLEVBZ0N0QjtJQXZDTDtNNUJLSSxZQUFXO01BQ1gsZUFBYztNQUNkLFlBQVcsRTRCSU47SUFYVDtNQWNZLFlBQVc7TUFDWCxlQUFjLEVBQ2pCO0lBaEJUO01BbUJZLFlBQVc7TUFDWCxhQUFZO01BQ1osWUFBVyxFQWlCZDtNQXRDVDtRQXlCb0IsaUJBQWdCLEVBT25CO1FBaENqQjtVQTRCd0IsZ0Y3QjBMNEQ7VTZCekw1RCxnQkFBZTtVQUNmLDBCQUF5QixFQUM1QjtNQS9CckI7UUFvQ2dCLGNBQWEsRUFDaEI7RUFyQ2I7SUEwQ1EsZTdCeUJRO0k2QnhCUixnQjdCd0xRO0k2QnZMUiwwQkFBeUIsRUFLNUI7SUFqREw7TUErQ1ksZTdCK0NJLEU2QjlDUDtFQWhEVDtJQW9EUSxnRjdCa0s0RTtJNkJqSzVFLGdCN0I4S1E7STZCN0tSLG9CQUFtQjtJQUNuQiwwQkFBeUIsRUFLNUI7SUE1REw7TUEwRFksZTdCU0ksRTZCUlA7RUEzRFQ7SUErRFEsa0JBQWlCO0lBQ2pCLGFBQVksRUF3RGY7SUF4SEw7TUFtRVksaUM3QjZHYTtNNkI1R2IsZ0Y3QmtKd0U7TTZCakp4RSxnQjdCOEpJO002QjdKSixvQkFBbUI7TUFDbkIsb0JBQW1CO01BQ25CLDBCQUF5QixFQUs1QjtNQTdFVDtRQTJFZ0IsY0FBYSxFQUNoQjtJQTVFYjtNQWdGWSxnRjdCc0l3RTtNNkJySXhFLGdCN0JrSkk7TTZCakpKLG9CQUFtQjtNQUNuQixlQUFjO01BQ2QsMEJBQXlCO01BQ3pCLGFBQVksRUFrQ2Y7TUF2SFQ7UTVCS0ksWUFBVztRQUNYLGVBQWM7UUFDZCxZQUFXLEU0QnlGRTtNQWhHakI7UUFvR2dCLGdCN0IrSEE7UTZCOUhBLG9CQUFtQixFQUN0QjtNQXRHYjtRQXlHZ0IsMEI3QnVFUztRNkJ0RVQsaUJBQWdCO1FBQ2hCLGdCQUFlO1FBQ2YseUJBQXdCLEVBQzNCO01BN0diO1FBZ0hnQiwwQjdCZ0VTO1E2Qi9EVCxpQkFBZ0IsRUFLbkI7UUF0SGI7VUFvSG9CLFlBQVcsRUFDZDtFQXJIakI7SUEySFEsYUFBWTtJQUNaLFVBQVM7SUFDVCxhQUFZLEVBQ2Y7RUE5SEw7SUFpSVEsZ0Y3QnFGNEU7STZCcEY1RSxnQjdCaUdRO0k2QmhHUixvQkFBbUI7SUFDbkIsb0I3Qm5HRSxFNkIwSUw7SUEzS0w7TUF1SVksZUFBYztNQUNkLDBCQUF5QixFQUM1QjtJQXpJVDtNQTRJWSwrQjdCeUVxQjtNNkJ4RXJCLGdCN0JtRkM7TTZCbEZELGVBQWMsRUE0QmpCO01BMUtUO1FBaUpnQixnRjdCcUVvRTtRNkJwRXBFLGdCN0JpRkE7UTZCaEZBLFlBQVcsRUFVZDtRQTdKYjtVQXNKb0IsbUJBQWtCLEVBQ3JCO1FBdkpqQjtVQTBKb0IsYUFBWTtVQUNaLGVBQWMsRUFDakI7TUE1SmpCO1FBZ0tnQixlQUFjLEVBQ2pCO01BaktiO1FBb0tnQixlN0JqR0E7UTZCa0dBLGdGN0JpRG9FO1E2QmhEcEUsZ0JBQWU7UUFDZixvQkFBbUI7UUFDbkIsMEJBQXlCLEVBQzVCOztBQUtiO0VBQ0ksaUM3QkNxQjtFNkJBckIsaUI3Qi9JTSxFNkIrTFQ7RUFsREQ7SUFLUSx3QkFBdUIsRUFPMUI7SUFaTDtNQVFZLHdCQUF1QjtNQUN2QixhQUFZO01BQ1osMkJBQTBCLEVBQzdCO0VBWFQ7SUFnQlksb0JBQW1CO0lBQ25CLGdCN0JvQ0ksRTZCbkNQO0VBbEJUO0lBb0JZLGFBQVk7SUFDWixtQkFBa0I7SUFDbEIsV0FBVSxFQU9iO0lBN0JUO01BeUJnQixZQUFXO01BQ1gsZUFBYztNQUNkLGdCQUFlLEVBQ2xCO0VBNUJiO0lBa0NZLGNBQWEsRUFhaEI7SUEvQ1Q7TUFxQ2dCLFlBQVc7TUFDWCxzQkFBcUI7TUFFckIsZ0NBQStCO01BQy9CLFlBQVc7TUFDWCxhN0JRSDtNNkJQRyxpQkFBZ0I7TUFDaEIsbUJBQWtCO01BQ2xCLFNBQVEsRUFDWDs7QUFNYjs7a0RBRWtEO0FBRWxEO0VBQ0ksZ0Y3QmpCZ0Y7RTZCa0JoRixnQjdCTFk7RTZCTVosMEJBQXlCLEVBd0I1QjtFQTNCRDtJQU1RLG9CQUFtQixFQUN0QjtFQVBMO0lBV1EsOEJBQTZCO0lBQzdCLDRCQUEyQjtJQUMzQixhQUFZO0lBQ1osaUJBQWdCO0lBQ2hCLHFCQUFvQjtJQUNwQixZQUFXLEVBVWQ7SUExQkw7TUFvQlksOEJBQTZCO01BQzdCLDRCQUEyQjtNQUMzQixZQUFXO01BQ1gsYUFBWTtNQUNaLHFCQUFvQixFQUN2Qjs7QW5DclBEO0VtQzRQSjtJQUlnQixnQkFBZSxFQUNsQjtFQUxiO0lBUWdCLFdBQVU7SUFDVixlQUFjLEVBVWpCO0lBbkJiO01BWW9CLGVBQWM7TUFDZCxZQUFXLEVBS2Q7TUFsQmpCO1FBZ0J3QixtQkFBa0IsRUFDckIsRUFBQTs7QW5DN1FqQjtFbUM0UEo7SUFnQ2dCLGFBQVksRUFRZjtJQXhDYjtNQW9Dd0IsWUFBVztNQUNYLGdCQUFlLEVBQ2xCLEVBQUE7O0FuQ2xTakI7RW1DVlI7SUF5VFksWUFBVyxFQVlkO0lBclVUO01BNFRnQixZQUFXLEVBUWQ7TUFiVDs7UUFVb0IsWUFBVyxFQUNkO0VBbFVyQjtJQXdVWSxZQUFXLEVBQ2Q7RUFsQkw7SUF3QmdCLGtCQUFpQjtJQUNqQixtQkFBa0IsRUFDckI7RUExQmI7SUErQmdCLGtCQUFpQjtJQUNqQixtQkFBa0IsRUFDckI7RUFqQ2I7SUFvQ2dCLFdBQVU7SUFDVixhQUFZLEVBQ2Y7RUF0Q2I7SUEwQ1ksaUJBQWdCO0lBQ2hCLG1CQUFrQjtJQUNsQixpQkFBZ0I7SUFDaEIsZUFBcUI7SUFDckIsWUFBVyxFQVFkO0lBdERUO01BaURnQixjQUFhLEVBQ2hCO0lBbERiO01Bb0RnQixzQkFBcUIsRUFDeEIsRUFBQTs7QW5DbFdUO0VtQ1ZSO0lBdVhRLFlBQVcsRUFDZCxFQUFBOztBQUdMOztrREFFa0Q7QUFDbEQ7RUFJZ0Isb0JBQW1CLEVBQ3RCOztBQUxiO0VBU1ksWUFBVztFQUNYLGVBQWMsRUFTakI7RUFuQlQ7SUFhZ0IsWUFBVyxFQUNkO0VBZGI7SUFpQmdCLFlBQVcsRUFDZDs7QW5DdFlMO0VtQ29YUjtJQTJCZ0IsZ0JBQWUsRUFDbEIsRUFBQTs7QUN2YmIsWUFBWTtBQUNaO0VBQ0ksbUJBQWtCO0VBQ2xCLGVBQWM7RUFDZCx1QkFBc0I7RUFDdEIsNEJBQTJCO0VBQzNCLDBCQUF5QjtFQUV6Qix1QkFBc0I7RUFDdEIsc0JBQXFCO0VBQ3JCLGtCQUFpQjtFQUNqQix3QkFBdUI7RUFDdkIsb0JBQW1CO0VBQ25CLHlDQUF3QztFQUN4QyxXQUFVO0VBQ1YsaUNBQWdDLEVBS25DO0VBbkJEO0lBaUJRLFdBQVUsRUFDYjs7QUFFTDtFQUNJLG1CQUFrQjtFQUNsQixpQkFBZ0I7RUFDaEIsZUFBYztFQUNkLFVBQVM7RUFDVCxXQUFVLEVBU2I7RUFkRDtJQVFRLGNBQWEsRUFDaEI7RUFUTDtJQVdRLGdCQUFlO0lBQ2YsYUFBWSxFQUNmOztBQUVMO0VBS0ksZ0NBQStCLEVBQ2xDOztBQUNEO0VBQ0ksbUJBQWtCO0VBQ2xCLFFBQU87RUFDUCxPQUFNO0VBQ04sZUFBYyxFQVlqQjtFQWhCRDtJQU9RLFlBQVc7SUFDWCxlQUFjLEVBQ2pCO0VBVEw7SUFXUSxZQUFXLEVBQ2Q7RUFDRDtJQUNJLG1CQUFrQixFQUNyQjs7QUFFTDtFQUNJLFlBQVc7RUFDWCxhQUFZO0VBQ1osWUFBVztFQUNYLGdCQUFlO0VBWWYsY0FBYSxFQWdCaEI7RXJDd2xQQztJcUNqblBNLGFBQVksRUFDZjtFQVJMO0lBVVEsZUFBYztJQUNkLFlBQVcsRUFDZDtFQVpMO0lBY1EsY0FBYSxFQUNoQjtFQWZMO0lBbUJRLHFCQUFvQixFQUN2QjtFQUNEO0lBQ0ksZUFBYyxFQUNqQjtFQUNEO0lBQ0ksbUJBQWtCLEVBQ3JCO0VBQ0Q7SUFDSSxlQUFjO0lBQ2QsYUFBWTtJQUNaLDhCQUE2QixFQUNoQzs7QUFFTDtFQUNJLGNBQWEsRUFDaEI7O0FBQ0Q7RUFDSSxvQjlCMEJZO0U4QnpCWixZQUFXO0VBQ1gsYUFBWTtFQUNaLHVCQUFzQjtFQUN0QixlQUFjO0VBQ2QsbUJBQWtCO0VBQ2xCLG1CQUFrQjtFQUNsQixtQkFBa0I7RUFDbEIsU0FBUTtFQUNSLGtCQUFpQjtFQUNqQixZQUFXO0VBQ1gsZ0JBQWUsRUFNbEI7RUFsQkQ7SUFlUSxzQkFBcUI7SUFDckIsa0JBQWlCLEVBQ3BCOztBQUVMO0VBQ0ksV0FBVTtFQUNWLGFBQVksRUFNZjtFQVJEO0lBS1Esa0JBQWlCO0lBQ2pCLG1CQUFrQixFQUNyQjs7QUFFTDtFQUNJLG1CQUFrQixFQW9CckI7RUFyQkQ7SUFJUSxjQUFhLEVBQ2hCO0VBTEw7SUFPUSxZQUFXO0lBQ1gsYUFBWTtJQUNaLG9CQUFtQjtJQUNuQixtQkFBa0I7SUFDbEIsZ0JBQWU7SUFDZixzQkFBcUI7SUFDckIsY0FBYTtJQUNiLHNCQUFxQjtJQUNyQixpQjlCMUVLLEU4QitFUjtJQXBCTDtNQWtCWSxvQjlCOUNJLEU4QitDUDs7QUFuRlQ7RUF1RkksY0FDSixFQUFDOztBQUNEO0VBRVEsaUJBQWdCO0VBQ2hCLFlBQVc7RUFDWCxhQUFZO0VBQ1osbUJBQWtCO0VBQ2xCLG9COUIxRkssRThCNkpSO0VBekVMO0lBU1ksYUFBWSxFQUtmO0lBZFQ7TUFZZ0IsYUFBWSxFQUNmO0VBYmI7SUFnQlksWUFBVztJQUNYLFdBQVU7SUFDVixZQUFXLEVBQ2Q7RUFuQlQ7SUFxQlksV0FBVTtJQUNWLFlBQVc7SUFDWCxZQUFXLEVBQ2Q7RUF4QlQ7SUEwQlksbUJBQWtCO0lBQ2xCLGE5QmhIRDtJOEJpSEMsWUFBVyxFQVNkO0lBckNUO01BK0JnQixrQkFBaUIsRUFLcEI7TUFwQ2I7UUFrQ29CLG9COUJ2RkosRThCd0ZDO0VBbkNqQjtJQXVDWSxhQUFZO0lBQ1osa0JBQWlCLEVBQ3BCO0VBekNUO0lBMkNZLHVCQUFzQixFQTZCekI7SUF4RVQ7TUE4Q2dCLDBCQUF5QixFQXNCNUI7TUFwRWI7UUFpRG9CLG1CQUFrQjtRQUNsQixTQUFRO1FBQ1IsNEJBQTJCO1FBQzNCLGdCQUFlO1FBQ2YsMEJBQXlCO1FBQ3pCLGFBQVk7UUFDWixnRjlCdUNnRTtROEJ0Q2hFLGVBQWMsRUFXakI7UXBDakxUO1VvQzhHUjtZQTJEd0IsZ0JBQWUsRUFRdEIsRUFBQTtRcENqTFQ7VW9DOEdSO1lBOER3QixnQkFBZSxFQUt0QixFQUFBO1FwQ2pMVDtVb0M4R1I7WUFpRXdCLGlCQUFnQixFQUV2QixFQUFBO0lBbkVqQjtNQXNFZ0Isd0RBQXVELEVBQzFEOztBQUtiO0VBRVEsb0JBQW1CO0VBQ25CLGdEQUErQztFQUMvQyxzQkFBcUI7RUFDckIsNEJBQTJCO0VBQzNCLDZCQUE0QjtFQUM1QixhQUFZO0VBQ1osU0FBUSxFQUNYOztBQVRMO0VBWVEsV0FBVSxFQUNiOztBQWJMO0VBZ0JRLGlEQUFnRDtFQUNoRCxZQUFXLEVBQ2Q7O0FDMU5MOztrREFFa0Q7QUFFbEQ7RUFDSSxtQkFBa0I7RUFDbEIsZUFBYztFQUNkLFlBQVc7RUFDWCxlQUFjO0VBQ2QsMEIvQjZLMkIsRStCaEo5QjtFQWxDRDtJQVFRLFlBQVc7SUFDWCxXQUFVO0lBQ1YsbUJBQWtCO0lBQ2xCLFVBQVM7SUFDVCwyQkFBMEIsRUFxQjdCO0lBakNMO01BY1ksbUJBQWtCO01BQ2xCLE9BQU07TUFDTixRQUFPO01BQ1AsWUFBVztNQUNYLFdBQVU7TUFDVixlQUFjO01BQ2QsVUFBUyxFQVlaO01BaENUO1FBd0JnQixpQkFBZ0I7UUFDaEIsYUFBWSxFQUNmO01BMUJiO1FBNkJnQixnQkFBZTtRQUNmLFlBQVcsRUFDZDs7QUFLYjtFQUNJLG1CQUFrQjtFQUNsQixZQUFXO0VBQ1gsYUFBWTtFQUNaLG1CQUFrQjtFQUNsQixZQUFXO0VBQ1gsVUFBUztFQUNULGlCQUFnQjtFN0IxQ2hCLHVCQUFzQjtFQUN0QixzQkFBcUI7RUFDckIsMEJBQXlCO0VBQ3pCLHFCQUFvQjtFQUNwQixrQkFBaUIsRTZCNEVwQjtFQTdDRDtJQVdRLG1CQUFrQjtJQUNsQixZQUFXO0lBQ1gsYUFBWTtJQUNaLHNCQUFxQjtJQUNyQixlQUFjO0lBQ2QsZ0JBQWUsRUF3QmxCO0lBeENMO01Bb0JZLFlBQVc7TUFDWCxlQUFjO01BQ2QsWUFMYTtNQU1iLGFBTmE7TUFPYixVQUFTO01BQ1QsU0FBUTtNQUNSLGtCQUE2QjtNQUM3QixpQkFBNEI7TUFDNUIsbUJBQWtCO01BQ2xCLDBCQUF5QjtNQUN6QixtQkFBa0IsRUFDckI7SUEvQlQ7TUFrQ1ksMEIvQjhEd0IsRStCN0QzQjtJQW5DVDtNQXNDWSwwQi9CMkQwQixFK0IxRDdCO0VBdkNUO0lBMkNRLGdCQUFlLEVBQ2xCOztBQUdMOztFQUVJLG1CQUFrQjtFQUNsQixPQUFNO0VBQ04sV0FBVTtFQUNWLGdCQUFlO0VBQ2YsYUFBWTtFQUNaLGFBQVk7RUFDWixhQUFZO0VBQ1osZ0JBQWU7RTdCM0ZmLHVCQUFzQjtFQUN0QixzQkFBcUI7RUFDckIsMEJBQXlCO0VBQ3pCLHFCQUFvQjtFQUNwQixrQkFBaUIsRTZCOEdwQjtFQWhDRDs7SUFhUSxZQUFXO0lBQ1gsU0FBUTtJQUNSLFVBQVM7SUFDVCxhQUFZO0lBQ1osbUJBQWtCO0lBQ2xCLG9CQUFtQjtJQUNuQixlQUFjO0lBQ2QsU0FBUTtJQUNSLGtCQUFpQixFQUNwQjtFQXRCTDs7SUF5QlEsV0FBVSxFQUNiO0VBMUJMOztJQTZCUSxZQUFXO0lBQ1gsZ0JBQWUsRUFDbEI7O0FBR0w7RUFDSSxVQUFTLEVBWVo7RUFiRDtJQUlRLCtCQUE4QjtJQUM5QiwwREFBeUQ7SUFDekQsU0FBUTtJQUNSLFdBQVUsRUFDYjtFQVJMO0lBV1EsMERBQWlFLEVBQ3BFOztBQUdMO0VBQ0ksV0FBVSxFQVliO0VBYkQ7SUFJUSwrQkFBOEI7SUFDOUIsMERBQXlEO0lBQ3pELFNBQVE7SUFDUixZQUFXLEVBQ2Q7RUFSTDtJQVdRLDBEL0JYNEIsRStCWS9COztBQUdMO0VBQ0ksbUJBQWtCO0VBQ2xCLGFBQVk7RUFDWixhQUFZO0VBQ1osWUFBVztFQUNYLGFBQVksRUFDZjs7QUFFRDtFQUNJLDJCQUEwQjtFQUMxQixtQkFBa0I7RUFDbEIsVUFBUztFQUNULFlBQVc7RUFDWCxhQUFZO0VBQ1osa0JBQWlCO0VBQ2pCLGFBQVk7RUFDWixjQUFhO0VBQ2IsWUFBVyxFQUNkOztBQ3pLRDs7a0RBRWtEO0FBRWxEO0VBRVEsbUJBQWtCLEVBQ3JCOztBQUhMO0VBTVEsZ0ZoQ2dONEU7RWdDL001RSxnQmhDNE5RO0VnQzNOUiwwQkFBeUI7RUFDekIsWUFBVyxFQWdCZDtFQXpCTDtJQVlZLGlDaEM4S1ksRWdDN0tmO0VBYlQ7SUFnQlksY0FBYTtJQUNiLG9CQUFtQixFQUN0QjtFQWxCVDtJQXFCWSxnRmhDaU13RTtJZ0NoTXhFLGdCaEM2TUk7SWdDNU1KLDBCQUF5QixFQUM1Qjs7QUF4QlQ7RUE0QlEsZ0JoQ2lNUTtFZ0NoTVIsZ0ZoQ3lMNEU7RWdDeEw1RSxpQkFBZ0I7RUFDaEIsMEJBQXlCLEVBSzVCO0VBcENMO0lBa0NZLGVoQ2lDSSxFZ0NoQ1A7O0FBbkNUO0VBdUNRLGdCaEM2TFM7RWdDNUxULGdGaEM4SzRFO0VnQzdLNUUsY0FBYSxFQUNoQjs7QUExQ0w7RUE2Q1EsMEJoQ29HZ0I7RWdDbkdoQixZQUFXO0VBQ1gsYUFBWTtFQUNaLGdCaENvTFM7RWdDbkxULGdGaENxSzRFLEVnQ25KL0U7RUFuRUw7SUFvRFksMEJBQXlCLEVBQzVCO0VBckRUO0lBdURZLDBCQUF5QixFQUM1QjtFQXhEVDtJQTBEWSwwQkFBeUIsRUFDNUI7RUEzRFQ7SUE2RFksMEJBQXlCLEVBQzVCO0VBOURUO0lBaUVZLDBCaENFSSxFZ0NEUDs7QUFsRVQ7RUFzRVEsa0JBQWlCO0VBQ2pCLGlCQUFnQjtFQUNoQixpQkFBZ0IsRUFNbkI7RUE5RUw7SUEyRVksZ0JoQ3lKSztJZ0N4SkwsaUJBQWdCLEVBQ25COztBQTdFVDtFQWlGUSxtQkFBa0IsRUFDckI7O0FBbEZMO0VBc0ZZLGFBQVksRUFDZjs7QUF2RlQ7RUEwRlksV0FBVSxFQUNiOztBQTNGVDtFQThGWSxhQUFZO0VBQ1osbUJBQWtCLEVBQ3JCOztBQWhHVDtFQW1HWSxhQUFZLEVBd0JmO0VBM0hUO0lBc0dnQixnQmhDNkhBO0lnQzVIQSxvQmhDdEVOO0lnQ3VFTSxpQkFBZ0I7SUFDaEIsWUFBVyxFQUNkO0VBMUdiO0lBNkdnQixvQmhDNUVOLEVnQzZFRztFQTlHYjtJQWlIZ0IsaUJBQWdCLEVBQ25CO0VBbEhiO0lBcUhnQixtQkFBa0IsRUFDckI7RUF0SGI7SUF5SGdCLG9CQUFtQixFQUN0Qjs7QUExSGI7RUE4SFksWUFBVyxFQUNkOztBQS9IVDs7RUFtSVksb0JBQW1CLEVBQ3RCOztBQXBJVDtFQXlJUSxnRmhDNkU0RTtFZ0M1RTVFLGdCaEN5RlEsRWdDcEZYO0VBL0lMO0lBNklZLGVoQy9DSSxFZ0NnRFA7O0FBOUlUO0VBa0pRLGdCQUFlLEVBV2xCO0VBN0pMO0lBcUpZLGNBQWEsRUFDaEI7RUF0SlQ7SUF5SlksZ0JBQWU7SUFDZixlaEN2Rkk7SWdDd0ZKLG1CQUFrQixFQUNyQjs7QUE1SlQ7RUFpS1ksaUJBQWdCO0VBQ2hCLGVoQy9GSSxFZ0NnR1A7O0FBbktUO0VBdUtRLGlCQUFnQixFQUNuQjs7QXRDOUpHO0VzQ1ZSO0lBaUxnQixtQmhDcElFO0lnQ3FJRixvQmhDcklFLEVnQ3NJTCxFQUFBOztBdEN6S0w7RXNDVlI7SUE2TFksa0JBQWlCO0lBQ2pCLG1CQUFrQixFQVNyQjtJQVpMO01BTVksY0FBYSxFQUNoQjtJQVBUO01BVVksYUFBWSxFQUNmO0VBdE1iO0lBME1ZLGdCaEN3QkcsRWdDdkJOLEVBQUE7O0F0Q2pNRDtFc0N3TUo7SS9CN01BLFlBQVc7SUFDWCxlQUFjO0lBQ2QsWUFBVyxFK0I4TU47RUFyTlQ7SUF3TlksZ0JoQ0tJLEVnQ0pQO0VBek5UO0lBNE5ZLGFBQVk7SUFDWixnQkFBZSxFQUNsQjtFQTlOVDtJQWlPWSxnQkFBZSxFQUNsQjtFQWhCTDtJQW1CUSxtQkFBa0IsRUFLckI7SUF4Qkw7TS9CN01BLFlBQVc7TUFDWCxlQUFjO01BQ2QsWUFBVyxFK0JrT0Y7RUF6T2I7SUE2T1ksWUFBVyxFQU1kO0lBakNMO01BOEJZLFlBQVc7TUFDWCxhQUFZLEVBQ2Y7RUFoQ1Q7SUFxQ1ksaUJBQWdCLEVBQ25CO0VBeFBiO0lBMlBnQixnQkFBZTtJQUNmLGlCQUFnQixFQUNuQjtFQTdQYjtJQWlRWSxvQkFBbUIsRUFDdEIsRUFBQTs7QXRDeFBEO0VzQ1ZSO0lBMlFZLGdCQUFlLEVBQ2xCO0VBSEw7O0lBT1EsY0FBYSxFQUNoQixFQUFBOztBdEN2UUQ7RXNDd01KO0lBd0VRLG1CQUFrQixFQUNyQjtFQUhMO0lBTVEsZUFBYyxFQUNqQjtFQVBMO0lBZVksWUFBVztJQUNYLGdCQUFlO0lBQ2YsaUJBQWdCO0lBQ2hCLGtCQUFpQixFQUNwQjtFQTNTYjtJQThTZ0IsZUFBYztJQUNkLGlCQUFnQixFQVVuQjtJQWpDVDtNQTBCZ0IsWUFBVyxFQU1kO01BaENiO1FBNkJvQixhQUFZO1FBQ1osY0FBYSxFQUNoQjtFQS9CakI7SUFxQ1ksaUJBQWdCLEVBY25CO0lBbkRUO01Bd0NnQixZQUFXO01BQ1gsbUJoQzFSSCxFZ0MyUkE7SUExQ2I7TUE2Q2dCLGlCQUFnQixFQUNuQjtJQTlDYjtNQWlEZ0IsY0FBYSxFQUNoQjtFQWxEYjtJQXVEZ0IsWUFBVztJQUNYLFdBQVUsRUFDYjtFQWpWakI7SUFvVm9CLGFBQVk7SUFDWixXQUFVLEVBQ2I7RUF0VmpCO0lBMFZnQixtQkFBa0I7SUFDbEIsVUFBUztJQUNULFdBQVU7SUFDVixlQUFjO0lBQ2QsYUFBWTtJQUNaLGFBQVksRUFDZjtFQXJLVDtJQTBLWSxZQUFXLEVBQ2QsRUFBQTs7QUFLYjs7a0RBRWtEO0FBRWxEO0VBR1Esb0JBQW1CLEVBQ3RCOztBQUpMO0VBT1EsZUFBYztFQUNkLG1CQUFrQixFQUNyQjs7QUFUTDtFQVlRLFlBQVc7RUFDWCxVQUFTLEVBQ1o7O0FBZEw7OztFQW1CUSxnQmhDL0pRLEVnQ2dLWDs7QUFwQkw7RUF1QlEsWUFBVztFQUNYLDBCQUF5QjtFQUN6QixrQkFBaUI7RUFDakIsbUJBQWtCO0VBQ2xCLGdDaEN4TnVCLEVnQ3lOMUI7O0FDL1lMOztrREFFa0Q7QUFFbEQ7RUFDSSxzQkFBcUIsRUErS3hCO0VBaExEO0lBSVEsZUFBYztJQUNkLGNqQ3dDVSxFaUN2Q2I7RUFOTDtJQVNRLGNqQ29DVTtJaUNuQ1YsbUJBQWtCLEVBQ3JCO0VBWEw7SUFlUSxZQUFXO0lBQ1gsbUJBQWtCLEVBQ3JCO0lmcEJEO01BRUksWUFBVTtNQUNWLG1CQUFrQjtNQUNsQixTQUFRO01BQ1IsVUFBUztNQUNULFlBQVc7TUFDWCxhQUFZO01BQ1osY0FBYSxFQUNoQjtJQUVEO01BQ0ksd0JBQXVCO01BQ3ZCLGFBZDJCO01BZTNCLFdBQVMsRUFDWjtJQUVEO01BQ0ksdURBQXNEO01BQ3RELDZCQUE0QjtNQUM1Qiw0QkFBMkI7TUFDM0IsV0FBUyxFQUNaO0lBRUQ7TUFDSSxtQkFBa0IsRUFNckI7TUFKRztRQUVJLGVBQWMsRUFDakI7RWUzQlQ7SUFvQlEsY0FBYSxFQUNoQjtFQXJCTDtJQXVCUSxlQUFjO0lBQ2QsZ0ZqQzhMNEU7SWlDN0w1RSxnQkFBZTtJQUNmLGtCQUFpQjtJQUNqQixpQkFBZ0I7SUFDaEIsYUFBWTtJQUNaLG1CQUFrQjtJQUNsQiwwQkFBeUI7SUFDekIsbUJBQWtCLEVBY3JCO0lBN0NMO01Ba0NZLFlBQVc7TUFDWCxhQUFZO01BQ1osZUFBYztNQUNkLGVqQ3lESTtNaUN4REosc0JBQXFCO01BQ3JCLG9CQUFtQjtNQUNuQixnQkFBZTtNQUNmLG1CQUFrQjtNQUNsQixVQUFTO01BQ1QsWUFBMEIsRUFDN0I7RUE1Q1Q7SUErQ1EsY2pDRlU7SWlDR1YsaUJBQWdCLEVBZW5CO0lBL0RMO01BbURZLDBCQUF5QjtNQUN6QixpQ0FBZ0M7TUFDaEMsbUJBQWtCLEVBU3JCO01BOURUO1FBd0RnQixhQUFZLEVBQ2Y7TUF6RGI7UUE0RGdCLG1CQUFrQixFQUNyQjtFQTdEYjtJQW1FWSxpQkFBZ0I7SUFDaEIsa0JBQWlCLEVBS3BCO0lBekVUO01BdUVnQixlakNKQSxFaUNLSDtFQXhFYjtJQTZFUSxxQkFBb0IsRUF5Q3ZCO0lBdEhMO01BZ0ZZLDBCQUF5QjtNQUN6QixvQmpDaERGLEVpQ2lERDtJQWxGVDtNQW9GWSxlakNVSTtNaUNUSixhQUFZLEVBQ2Y7SUF0RlQ7TUEwRmdCLGFBQVk7TUFDWixrQkFBaUIsRUFDcEI7SUE1RmI7TUFnR1ksa0JBQWlCO01BQ2pCLG1CQUFrQjtNQUNsQixrQkFBaUI7TUFDakIsYUFBWTtNQUNaLG1CQUFrQjtNQUNsQixhQUFZLEVBQ2Y7SUF0R1Q7TUF5R1ksV0FBVTtNQUVWLDBCQUF5QixFQVU1QjtNQXJIVDtRQStHZ0IsZ0JBQWUsRUFDbEI7TUFoSGI7UUFtSGdCLFdBQVUsRUFDYjtFQXBIYjtJQXlIUSwwQkFBeUI7SUFDekIsbUJBQWtCO0lBQ2xCLGlCQUFnQixFQVNuQjtJQXBJTDtNQThIWSxhQUFZO01BQ1osMEJBQXlCLEVBQzVCO0lBaElUO01Ba0lZLGVqQ3BDSSxFaUNxQ1A7RUFuSVQ7SUF1SVEsY2pDMUZVO0lpQzJGVixnQkFBZTtJQUNmLGlCQUFnQjtJQUNoQixtQkFBa0I7SUFDbEIsbUJBQWtCLEVBa0JyQjtJQTdKTDtNQThJWSxpQkFBZ0IsRUFDbkI7SUEvSVQ7TUFrSlksYUFBWTtNQUNaLGtCQUFpQjtNQUNqQiwwQkFBeUI7TUFDekIsZ0JqQzZFRyxFaUM1RU47SUF0SlQ7TUEwSmdCLGlCQUFnQixFQUNuQjtFQTNKYjtJQWdLUSxtQkFBa0I7SUFDbEIsV0FBVTtJQUNWLGNBQWEsRUFDaEI7RUFuS0w7SUFzS1EsbUJBQWtCO0lBQ2xCLGFBQVk7SUFDWixjQUFhLEVBQ2hCO0VBektMOztJQThLUSxjQUFhLEVBQ2hCOztBQUdMOztFQUVJLGVBQWMsRUFDakI7O0F2QzNLTztFdUM4S0o7SUFDSSxZQUFXO0lBQ1gsbUJBQWtCLEVBQ3JCLEVBQUE7O0F2Q2pMRztFdUNxTEo7SUFDSSxXQUFVLEVBQ2IsRUFBQTs7QXZDdkxHO0V1Q1ZSO0lBd01nQixlakMxR0EsRWlDMkdIO0Vmak1UO0llcU1ZLDBCQUF5QixFQUM1QjtFQVRUO0lBYVEsWUFBVyxFQUNkO0VBZEw7SUFpQlEsY2pDL0tLLEVpQ2dMUjtFQWxCTDtJQXFCUSxrQkFBK0IsRUFDbEM7RUEzTlQ7SUE4TlkscUJBQW9CLEVBZ0N2QjtJQTlQVDtNQWlPZ0IsVUFBUztNQUNULFlqQ3JMRTtNaUNzTEYsbUJBQWtCLEVBQ3JCO0lBL0JUO01BbUNnQixzQkFBcUIsRUFvQnhCO01BdkRiO1FBdUN3QixnQkFBZSxFQUNsQjtNQXhDckI7UUEyQ3dCLHNCQUFxQjtRQUNyQixvQkFBbUIsRUFDdEI7TUE3Q3JCO1FBZ0R3QixZQUFXO1FBQ1gsWUFBVztRQUNYLGdCQUFlO1FBQ2Ysd0JBQXVCO1FBQ3ZCLGtCQUFpQixFQUNwQixFQUFBOztBdkNoUGpCO0V1Q1ZSO0lBc1FnQixZQUFXO0lBQ1gsUUFBTztJQUNQLG1CQUFrQjtJQUNsQixZQUFXLEVBQ2Q7RUFQVDs7SUFjd0IsWUFBVztJQUNYLGVBQWM7SUFDZCxlQUFjLEVBQ2pCO0VBL0VyQjtJQWtGd0IsaUJBQWdCLEVBQ25CLEVBQUE7O0F2QzlRakI7RXVDVlI7SUFvU2dCLFlBQVcsRUFDZCxFQUFBOztBQ3pTYjs7a0RBRWtEO0FBRWxEO0VBQ0ksbUJBQWtCO0VBQ2xCLDZCQUE0QjtFQUM1Qiw4QkFBNkI7RUFDN0IscUJBQW9CO0VBQ3BCLHVCQUFzQjtFQUN0QixhQUFZLEVBNENmO0VBbEREO0lBU1EsMEJBQXlCO0lBQ3pCLDBCbEN5RFE7SWtDeERSLFFBQU87SUFDUCxnQkFBZTtJQUNmLG1CQUFrQjtJQUNsQixPQUFNO0lBQ04sWUFBVyxFQTRCZDtJQTNDTDtNQWtCWSxpQ2xDeUppQjtNa0N4SmpCLGVsQ2dESTtNa0MvQ0osZ0JBQWU7TUFDZixnQmxDOE1JO01rQzdNSixpQkFBZ0I7TUFDaEIsaUJBQWdCLEVBbUJuQjtNQTFDVDtRQTBCZ0IsZWxDMklvQixFa0MxSXZCO01BM0JiO1FBOEJnQiwwQmxDcUNBO1FrQ3BDQSxhQUFZLEVBQ2Y7TUFoQ2I7UUFtQ2dCLGFBQVk7UUFDWixrQkFBaUIsRUFDcEI7TUFyQ2I7UUF3Q2dCLG9CQUFtQixFQUN0QjtFQXpDYjtJOUJDSSxZQUFXO0lBQ1gsbUJBQWtCO0lBQ2xCLFNBQVE7SUFDUixVQUFTO0lBQ1QsZUFBYztJQUdWLG9DQUFxQztJQUNyQyxtQ0FBb0M7SUFDcEMsaUNKeURRO0lJeERSLGlCQUFnQjtJOEJvQ2hCLFVBQVM7SUFDVCxVQUFTLEVBQ1o7O0FBR0w7O2tEQUVrRDtBQUVsRDtFQUNJLG9CbENrSHlCO0VrQ2pIekIsMEJsQ3dIMkI7RWtDdkgzQixjbEN4Qk8sRWtDZ0NWO0VBWEQ7SUFPWSxpQ2xDbUhtQjtJa0NsSG5CLGlCQUFnQixFQUNuQjs7QXhDdkREO0V3QzhDUjtJQWVRLGNsQ2hDUyxFa0NpQ1osRUFBQTs7QUM1RUw7O2tEQUVrRDtBQUVsRDtFQUdZLGlDbkM2S2E7RW1DNUtiLGdCbkN5Tkk7RW1DeE5KLGdGbkNpTndFO0VtQ2hOeEUsaUJBQWdCO0VBQ2hCLHFCbkMwQkY7RW1DekJFLDBCQUF5QixFQUM1Qjs7QUFUVDtFQVlZLGVBQWMsRUFDakI7O0FBYlQ7RUFrQlksaUNuQzhKYTtFbUM3SmIsZUFBYztFQUNkLGdCbkN5TUk7RW1DeE1KLGlCQUFnQjtFQUNoQixnRm5DZ013RTtFbUMvTHhFLHFCbkNVRixFbUNURDs7QUF4QlQ7RUE0QlEsZ0ZuQzBMNEUsRW1DOUsvRTtFQXhDTDtJQStCWSxvQm5DRUYsRW1DREQ7RUFoQ1Q7SUFtQ1ksWUFBVztJQUNYLGdCbkMrTEk7SW1DOUxKLG1CbkNKRjtJbUNLRSwwQkFBeUIsRUFDNUI7O0FBdkNUO0VBNENZLGlDbkNvSWE7RW1DbkliLGdCbkNnTEk7RW1DL0tKLGlCQUFnQjtFQUNoQixnRm5DdUt3RTtFbUN0S3hFLGlCQUFnQjtFQUNoQixnQkFBZTtFQUNmLDBCQUF5QixFQUM1Qjs7QUFuRFQ7RUFzRFksZUFBYztFQUNkLGdGbkMrSndFO0VtQzlKeEUsZ0JuQzBLRyxFbUN6S047O0F6Qy9DRDtFeUNWUjtJQW1FZ0IsWUFBVyxFQUNkLEVBQUE7O0F6QzFETDtFeUNWUjtJQStFZ0IsWUFBVztJQUNYLG1CQUFrQixFQUNyQixFQUFBOztBekN2RUw7RXlDVlI7SUE0RmdCLFlBQVcsRUFDZCxFQUFBOztBQ2pHYjs7a0RBRWtEO0FBS2xEOzs7Ozs7OztFQU1ZLGFBQVksRUFDZjs7QUFQVDs7RUFhWSxnQkFBZSxFQUNsQjs7QUFkVDs7RUFpQlksZXBDMEVJO0VvQ3pFSiwrQnBDZ01xQjtFb0MvTHJCLGdCQUFlO0VBQ2Ysa0JBQWlCO0VBQ2pCLGVwQ3NESSxFb0NyRFA7O0FBdEJUOztFQXlCWSxlcENrRUksRW9DakVQOztBQTFCVDs7RUE2QlksZXBDOERJLEVvQzdEUDs7QUE5QlQ7O0VBaUNZLGVwQzBESTtFb0N6REosK0JwQ2dMcUI7RW9DL0tyQixnQnBDMExDO0VvQ3pMRCxtQkFBa0I7RUFDbEIsa0JBQWlCLEVBQ3BCOztBQXRDVDs7RW5DRUksWUFBVztFQUNYLGVBQWM7RUFDZCxZQUFXLEVtQ3dDTjs7QUFJVDtFQUdZLGVwQ3dDSTtFb0N2Q0osZ0JBQWU7RUFDZixlQUFjO0VBQ2QsMEJBQXlCLEVBSzVCO0UxQ3BERDtJMEN5Q1I7TUFTZ0IsZ0JBQWUsRUFFdEIsRUFBQTs7QUFYVDtFQWFZLGlCQUFnQjtFQUNoQixZQUFXLEVBQ2Q7O0FBZlQ7RUFpQlksWUFBVyxFQUNkOztBQWxCVDtFQW9CWSxpQkFBZ0I7RUFDaEIsYUFBWSxFQUNmOztBQUlUOzs7RUFJUSxvQnBDcENVLEVvQ2dEYjtFQWhCTDs7O0lBT1ksaUJBQWdCLEVBQ25CO0VBUlQ7OztJQVdZLGlCQUFnQjtJQUNoQixlQUFjO0lBQ2QsbUJBQWtCO0lBQ2xCLCtCcEN5SG9CLEVvQ3hIdkI7O0FqQ0NMO0VBQ0ksY0FBYSxFQUNoQjs7QUFHRztFUnpDSixVQUFTO0VBQ1Qsb0JBQW1CO0VBQ25CLGVLbUNZO0VMbENaLGdGSzBKZ0Y7RUx6SmhGLGdCQUFlO0VBQ2Ysb0JBQW1CO0VBQ25CLG1CQUFrQjtFQUNsQixpQkFBZ0I7RU8vRGhCLHVCQUFzQjtFQUN0QixzQkFBcUI7RUFDckIsMEJBQXlCO0VBQ3pCLHFCQUFvQjtFQUNwQixrQkFBaUI7RUNrRWpCLG9CQUFtQjtFQUNuQixtQkFBa0I7RUFDbEIsMkJBQTBCO0VBQzFCLGtCQUFpQjtFQUNqQixvQkFBbUI7RUFDbkIsc0JIb0dxQjtFR25HckIsbUJBQWtCO0VBQ2xCLDBCSDZGeUI7RUd2RWpCLGVBQWMsRUFDakI7RUFyQkw7SUMvRUEsWUFBVztJQUNYLG1CQUFrQjtJQUNsQixTQUFRO0lBQ1IsVUFBUztJQUNULGVBQWM7SUFVVixvQ0FBcUM7SUFDckMsbUNBQW9DO0lBQ3BDLDhCSmtEUTtJSWpEUixvQkFBbUI7SURnRW5CLFdBQVU7SUFDVixTQUFRO0lBQ1IsaUJBQWdCLEVBQ25CO0VBRUQ7SUFDSSxxQ0hvRm1ELEVHbkZ0RDs7QUFjRztFQUNJLGNIM0RNO0VHNEROLFVBQVM7RUFDVCxvQkFBbUI7RUFDbkIsb0JBQW1CO0VBQ25CLHNCSG9FYSxFR25FaEI7O0FBQ0Q7RUFDSSw0QkFBMkIsRUFDOUI7O0FpQ2JUO0VBSVEsbUJBQWtCO0VBQ2xCLGlCQUFnQixFQUtuQjtFQVZMO0lBUVksbUJwQzFFRixFb0MyRUQ7O0FBT1Q7RUFFUSxlQUFjO0VBQ2Qsa0JBQWlCO0VBQ2pCLG1CQUFrQixFQUdyQjtFQVBMO0lBTVksbUJBQWtCLEVBQUk7O0FBTmxDO0VBVVEsZ0JBQWU7RUFDZixlQUFjO0VBQ2QsZ0JwQ29HUSxFb0MvRlg7RUFqQkw7SUFlWSxjQUFhLEVBQ2hCOztBQU9UO0VBRVEsYUFBWSxFQUNmOztBQUdMO0VBQ0ksbUJBQWtCLEVBYXJCO0VBZEQ7SUFJUSxjQUFhLEVBQ2hCO0VBTEw7SW5DM0lJLFlBQVc7SUFDWCxlQUFjO0lBQ2QsWUFBVyxFbUNrSlY7RUFUTDtJQVlRLFVBQVMsRUFDWjs7QTFDbkpHO0UwQ3NJUjtJQW1CUSxnQkFBZSxFQUNsQixFQUFBOztBQ3hLTDs7a0RBRWtEO0F0Q2t4Q2xEO0VzQzd3Q1ksZXJDd0VHO0VxQ3ZFSCxnRnJDa053RTtFcUNqTnhFLGdCckM4Tkk7RXFDN05KLDBCQUF5QixFQUM1Qjs7QUFJVDtFQUNJLG9CQUFtQixFQUN0Qjs7QUFFRDtFQUVRLG9CQUFtQixFQVN0QjtFQVhMO0lBSVksYUFBWTtJQUNaLG1CQUFrQixFQUNyQjtFQU5UO0lBUVksYUFBWTtJQUNaLFlBQVcsRUFDZDs7QUM3QlQ7O2tEQUVrRDtBQUVsRDtFQUVRLGtCQUFpQixFQUtwQjtFQVBMO0lyQ0tJLFlBQVc7SUFDWCxlQUFjO0lBQ2QsWUFBVyxFcUNETjs7QUFOVDtFQVVRLFlBQVc7RUFDWCxlQUFjO0VBQ2QsaUJBQWdCO0VBQ2hCLGlCQUFnQixFQU1uQjtFQW5CTDtJQWdCWSx1QkFBd0M7SUFDeEMsaUJBQWdCLEVBQ25COztBQWxCVDtFQXNCUSxZQUFXO0VBQ1gsa0JBQWlCO0VBQ2pCLHVCQUF3QyxFQUMzQzs7QTVDZkc7RTRDVlI7SUFpQ1ksZUFBYyxFQUNqQixFQUFBOztBNUN4QkQ7RTRDZ0NKO0lBQ0ksZ0JBQWUsRUFNbEI7SUFqREw7TUE4Q1ksZUFBYztNQUNkLGVBQWMsRUFDakIsRUFBQTs7QTVDdENEO0U0Q2dDSjtJQWVJLGdCQUFlLEVBbUJsQjtJQTVFTDtNQTREWSwrQkFBOEIsRUFLakM7TUFqRVQ7UXJDS0ksWUFBVztRQUNYLGVBQWM7UUFDZCxZQUFXLEVxQ3lERjtJQWhFYjtNQW9FWSxZQUFXO01BQ1gsZ0JBQWU7TUFDZixlQUFjLEVBQ2pCO0lBdkVUO01BMEVZLGlCQUFnQixFQUNuQixFQUFBOztBQy9FVDs7a0RBRWtEO0FBRWxEO0VBQ0ksZ0JBQWU7RUFDZixvQkFBbUIsRUFDdEI7O0FBQ0Q7RUFDSSxpQkFBZ0IsRUFDbkI7O0FBQ0Q7RUFDSSwwQnZDbUt5QjtFdUNsS3pCLDBCdkN1S3FCO0V1Q3RLckIsWUFBVztFQUNYLG9CQUFtQjtFQUNuQixxQkFBb0I7RUFDcEIsV0FBVSxFQUNiOztBQUNEO0VBQ0ksWUFBVztFQUNYLG1CQUFrQixFQUNyQjs7QUFDRDtFQUNJLGtCQUFpQixFQUNwQjs7QUFDRDtFQUNJLFlBQVc7RUFDWCxZQUFXO0VBQ1gsb0JBQW1CLEVBQ3RCOztBQUNEO0VBQ0ksWUFBVztFQUNYLG1CQUFrQixFQUNyQjs7QUFDRDtFQUNJLGdCQUFlLEVBQ2xCOztBQUNEO0VBRVEsV0FBVSxFQUtiO0VBUEw7SUFLWSxhQUFZLEVBQ2Y7O0E3QzlCRDtFNkNrQ0o7O0lBRUksWUFBVyxFQUNkLEVBQUE7O0FDbkRMOztrREFFa0Q7QUFDbEQ7RUFDSSxZQUFXO0VBQ1gsaUJBQWdCLEVBQ25COztBQUNEO0VBQ0ksWUFBVztFQUNYLGdCQUFlO0VBQ2YsZ0JBQWU7RUFDZixtQkFBa0I7RUFDbEIsYUFBWTtFQUNaLG9CQUFtQixFQUN0Qjs7QUFDRDtFQUNJLDBCQUF5QjtFQUN6Qix1QkFBc0I7RUFDdEIsWUFBVyxFQUNkOztBQUNEO0VBQW1DLFVBQVUsRUFBRTs7QUFDL0M7RUFDSSxnQkFBZTtFQUNmLG1CQUFrQjtFQUNsQixTQUFRO0VBQ1IsV0FBVSxFQUNiOztBQUNEO0VBQ0ksdUNBQXNDO0VBQ3RDLCtDQUE4QztFQUM5Qyw0Q0FBMkMsRUFDOUM7O0FBQ0Q7RUFBcUYsWUFBWSxFQUFFOztBQVhuRztFQWFJLG1CQUFrQjtFQUNsQixXQUFVO0VBQ1YsU0FBUSxFQUNYOztBQUNEO0VBQWUsd0JBQXdCLEVBQUU7O0FBQ3pDO0VBQTJCLG9CQUFvQixFQUFFOztBQUNqRDtFQUNJLFlBQVc7RUFDWCxZQUFXLEVBTWQ7RUFSRDtJQUtRLFlBQVU7SXZDcENkLFlBQVc7SUFDWCxlQUFjO0lBQ2QsWUFBVyxFdUNvQ1Y7O0FBRUw7O2tEQUVrRDtBQUNsRDtFQUNJLFlBQVc7RUFDWCxnQkFBZTtFQUNmLFlBQVcsRUFDZDs7QUN4REQ7O2tEQUVrRDtBL0NZMUM7RStDVEo7OztJQUlRLFlBQVc7SUFDWCxnQnpDd05HO0l5Q3ZOSCxtQkFBa0I7SUFDbEIsWUFBVyxFQUNkO0VBUkw7OztJQVVRLG1CQUFrQjtJQUNsQixZQUFXLEVBQ2QsRUFBQTs7QUNqQlQ7O2tEQUVrRDtBQUVsRDtFQUdRLG9CQUFtQixFQUt0QjtFQVJMO0lBTVkscUJBQW9CLEVBQ3ZCOztBaERHRDtFZ0RWUjtJQVdRLGdCMUN3TlEsRTBDNU1mO0lBdkJEO01BY1ksbUJBQWtCLEVBQ3JCO0lBZlQ7O01BbUJZLGFBQVksRUFDZixFQUFBOztBQUtUO0VBQ0ksWUFBVyxFQUtkO0VBTkQ7SUFJUSxtQjFDbUJhLEUwQ2xCaEI7O0FBR0w7RUFDSSxhQUFXO0VBQ1gsa0JBQWlCO0VBQ2pCLG9CMUNETyxFMENXVjtFaERwQ087SWdEdUJSO01BTVEsbUJBQWtCO01BQ2xCLFlBQVcsRUFNbEIsRUFBQTtFQWJEO0lBV1EsaUJBQWdCLEVBQ25COztBQUdMO0V6QzNDSSxZQUFXO0VBQ1gsZUFBYztFQUNkLFlBQVcsRXlDNENWOztBQUdMO0VBQ0ksZ0JBQWUsRUFDbEI7O0FDNUREOztrREFFa0Q7QUFFbEQ7RUFFUSxvQjNDaUNHLEUyQ1JOO0VBM0JMO0kxQ0tJLFlBQVc7SUFDWCxlQUFjO0lBQ2QsWUFBVyxFMENETjtFQU5UO0lBU1ksaUJBQWdCO0lBQ2hCLFlBQVcsRUFDZDtFQVhUO0lBY1ksaUIzQzRCWTtJMkMzQlosbUIzQ2lDUyxFMkNoQ1o7RUFoQlQ7SUFtQlksYUFBWTtJQUNaLGdCM0M0QlMsRTJDdEJaO0lqRGhCRDtNaURWUjtRQXVCZ0IsWUFBVztRQUNYLFlBQVcsRUFFbEIsRUFBQTs7QUExQlQ7RUE4QlEsWUFBVztFQUNYLGdCM0NpQmE7RTJDaEJiLG1CM0NnQmEsRTJDZmhCOztBQUdMO0VBRVEsZUFBYyxFQUtqQjtFakRqQ0c7SWlEMEJSO01BS1ksZ0JBQWUsRUFFdEIsRUFBQTs7QUFHTDtFQUVRLGVBQTJCLEVBQzlCOztBakR2Q0c7RWlEMkNKOztJQUlZLGNBQWEsRUFDaEIsRUFBQTs7QUM5RGI7O2tEQUVrRDtBQUVsRDtFQUNFLFlBQVc7RUFDWCxZQUFXLEVBQ1o7O0FBQ0Q7RUFDRSxZQUFXO0VBQ1gsYUFBWTtFQUNaLG1CQUFrQixFQUNuQjs7QUNaRDs7a0RBRWtEO0FBRWxEOztHQUVHO0FBRUg7RUFJZ0IsWUFBVyxFQU1kO0VuREpMO0ltRE5SO01BUW9CLGlCQUFnQixFQUV2QixFQUFBOztBQUtiO0VBQ0ksWUFBVyxFQUNkOztBQUVEO0VBQ0ksWUFBVztFQUNYLFlBQVcsRUFDZDs7QW5EaEJPO0VtRG9CSjs7O0k1QjBTQSx1Q0FBdUM7SUFLdkMsOEJBQThCO0lBWTlCLHVCQUF1QjtJQWpCdkIsdUNBQXVDO0lBS3ZDLDhCQUE4QjtJQVk5Qix1QkFBdUIsRTRCcFRsQjtJNUJ5U0w7OztNQUNJLFlBQVcsRUFDZDtJQUNEOzs7TUFDSSxZQUFXLEVBQ2Q7SUFDRDs7Ozs7O01BRUksdUJBQThELEVBQ2pFO0lBR0Q7OztNQUNJLHVCQUE4RCxFQUNqRTtJQUZEOzs7TUFJSSxpQkFBNkM7TUFDN0MsdUJBQThELEVBQ2pFO0lBQ0Q7OztNQUNJLFlBQVcsRUFDZDtJQUNEOzs7TUFDSSxnQkFBZSxFQUNsQjtJQXhCRDs7O01BQ0ksWUFBVyxFQUNkO0lBQ0Q7OztNQUNJLFlBQVcsRUFDZDtJQUNEOzs7Ozs7TUFFSSx1QkFBOEQsRUFDakU7SUFHRDs7O01BQ0ksdUJBQThELEVBQ2pFO0lBRkQ7OztNQUlJLGlCQUE2QztNQUM3Qyx1QkFBOEQsRUFDakU7SUFDRDs7O01BQ0ksWUFBVyxFQUNkO0lBQ0Q7OztNQUNJLGdCQUFlLEVBQ2xCLEVBQUE7O0F2QjVWRztFbURnQ0o7STVCOFJBLHVDQUF1QztJQUt2Qyw4QkFBOEI7SUFZOUIsdUJBQXVCO0lBakJ2Qix1Q0FBdUM7SUFLdkMsOEJBQThCO0lBWTlCLHVCQUF1QixFNEIzU2xCO0k1QmdTTDtNQUNJLFlBQVcsRUFDZDtJQUNEO01BQ0ksWUFBVyxFQUNkO0lBQ0Q7O01BRUksdUJBQThELEVBQ2pFO0lBR0Q7TUFDSSx1QkFBOEQsRUFDakU7SUFGRDtNQUlJLGlCQUE2QztNQUM3Qyx1QkFBOEQsRUFDakU7SUFDRDtNQUNJLFlBQVcsRUFDZDtJQUNEO01BQ0ksZ0JBQWUsRUFDbEI7SUF4QkQ7TUFDSSxZQUFXLEVBQ2Q7SUFDRDtNQUNJLFlBQVcsRUFDZDtJQUNEOztNQUVJLHVCQUE4RCxFQUNqRTtJQUdEO01BQ0ksdUJBQThELEVBQ2pFO0lBRkQ7TUFJSSxpQkFBNkM7TUFDN0MsdUJBQThELEVBQ2pFO0lBQ0Q7TUFDSSxZQUFXLEVBQ2Q7SUFDRDtNQUNJLGdCQUFlLEVBQ2xCLEVBQUE7O0E2QjFXTDs7a0RBRWtEO0FBRWxEO0VBRVEsWUFBVztFQUNYLFlBQVc7RUFDWCxvQkFBbUIsRUFtQnRCO0VBdkJMO0lBTVksWUFBVztJQUNYLFdBQVU7SUFDVixtQkFBa0I7SUFDbEIsb0JBQW1CO0lBQ25CLG9COUNpS2lCO0k4Q2hLakIsMEJBQXlCO0lBQ3pCLGlDOUNvS2E7SThDbktiLGdDOUNtS2E7SThDbEtiLG9CQUFtQjtJQUNuQixnRjlDdU13RSxFOENoTTNFO0lBdEJUO01BaUJnQiwwQjlDd0hZLEU4Q3ZIZjtJQWxCYjtNQW9CZ0Isa0JBQWlCLEVBQ3BCOztBQXJCYjtFQXlCUSxZQUFXO0VBQ1gsWUFBVztFQUNYLG9CQUFtQixFQVV0QjtFQXJDTDtJQTZCWSxlQUFjO0lBQ2QsWUFBVztJQUNYLGdCQUFlO0lBQ2YsaUJBQWdCLEVBQ25CO0VBakNUO0lBbUNZLGFBQVksRUFDZjs7QUFwQ1Q7RUF1Q1EscUJBQW9CO0VBQ3BCLGdCQUFlO0VBQ2Ysb0JBQW1CLEVBQ3RCOztBQTFDTDtFQTRDUSxZQUFXO0VBQ1gsWUFBVyxFQUNkOztBQTlDTDtFQWdEUSxXQUFVLEVBQ2I7O0FBakRMO0VBbURRLFdBQVUsRUFDYjs7QUFwREw7RUFzRFEsb0JBQW1CLEVBQ3RCOztBQXZETDtFQTBEUSxrQkFBaUI7RUFDakIsZ0I5Q2tLUTtFOENqS1Isa0JBQWlCLEVBQ3BCOztBQTdETDtFQWdFUSxhQUFZLEVBQ2Y7O0FBakVMO0VBb0VRLGFBQVk7RUFDWixrQkFBaUIsRUFDcEI7O0FBR0w7RUFFUSxxQkFBb0I7RUFDcEIsZUFBYztFQUNkLFlBQVc7RUFDWCxhQUFZLEVBQ2Y7O0FBR0w7RUFFUSxpQkFBZ0IsRUFDbkI7O0FBSEw7RUFLUSxpQkFBZ0IsRUFZbkI7RUFqQkw7SUFPWSxpQkFBZ0I7SUFDaEIsbUJBQWtCLEVBQ3JCO0VBVFQ7SUFXWSxpQkFBZ0I7SUFDaEIsb0JBQW1CLEVBQ3RCO0VBYlQ7SUFlWSxpQkFBZ0IsRUFDbkI7O0FBSVQ7Ozs7Ozs7Ozs7Ozs7RUFNZ0Isb0JBQW1CO0VBQ25CLFlBQVc7RUFDWCxvQjlDNkRhO0U4QzVEYixpQzlDaUVTO0U4Q2hFVCxjQUFhO0VBQ2IsZ0JBQWUsRUFDbEI7O0FBWmI7Ozs7O0VBZVksb0JBQW1CO0VBQ25CLFlBQVc7RUFDWCxvQjlDb0RpQjtFOENuRGpCLGlDOUN3RGE7RThDdkRiLGNBQWE7RUFDYixnQkFBZSxFQUNsQjs7QUFyQlQ7Ozs7O0VBdUJZLG9CQUFtQjtFQUNuQixtQkFBa0I7RUFDbEIsaUJBQWdCLEVBQ25COztBQUlUO0VBRVEsWUFBVztFQUNYLFlBQVcsRUFDZDs7QUFHTDtFQUNJLHVCQUFzQixFQUN6Qjs7QUFFRDtFQUNJLFlBQVc7RUFDWCxZQUFVLEVBQ2I7O0FwRHhJTztFb0QySUo7SUFFUSxvQkFBbUIsRUFDdEI7RUFFTDs7SUFHUSxZQUFXO0lBQ1gsWUFBVztJQUNYLFVBQVM7SUFDVCxpQkFBZ0I7SUFDaEIsZ0JBQWUsRUFDbEIsRUFBQTs7QXBEeEpEO0VvRDJJSjtJQW9CUSxZQUFXLEVBQ2Q7RUFITDtJQU1ZLFlBQVc7SUFDWCxVQUFTO0lBQ1QsaUJBQWdCO0lBQ2hCLGlCQUFnQjtJQUNoQixrQkFBaUIsRUFDcEI7RUE3QlQ7SUErQlksa0JBQWlCO0lBQ2pCLFlBQVcsRUFDZDtFQWZUO0lBa0JRLFlBQVc7SUFDWCxZQUFXLEVBQ2Q7RUEzTFQ7SUE2TFksWUFBVztJQUNYLG9CQUFtQixFQUN0QjtFQXhCTDtJQTJCWSxrQkFBaUIsRUFDcEI7RUE1QlQ7SUE4QlksWUFBVztJQUNYLGlCQUFnQixFQUNuQjtFQWhDVDtJQW1DUSxZQUFXO0lBQ1gsV0FBVSxFQUNiLEVBQUE7O0FwRGxNRDtFb0R1TUo7SUFDSSxpQkFBZ0I7SUFDaEIsbUJBQWtCO0lBQ2xCLGlCQUFnQixFQUNuQixFQUFBOztBcEQzTUc7RW9EK01KO0lBRVEsZUFBYyxFQUNqQixFQUFBOztBQ3pQUjtFQUNHLGNBQWE7RUFDYiwyQi9DNEZnQjtFK0MzRmhCLHdCQUF1QixFQUN4Qjs7QUFDSDtFQUVJLFlBQVc7RUFDWCxjQUFhLEVBQ2Q7O0FBSkg7RUFRTSxpQkFBZ0I7RUFDaEIsYUFBWSxFQUNiOztBQVZMO0VBWU0sWUFBVyxFQUNaOztBQU9MO0VBQ0UsZ0JBQWUsRUFDaEI7O0FBQ0Q7RUFFSSxjQUFhLEVBQ2Q7O0FBRUg7RUFHTSxjQUFhLEVBQ2Q7O0FBR0w7RUFFSSxrQy9Db0RnQixFK0NuRGpCOztBQUhIO0VBS0ksb0IvQ21CTyxFK0NsQlI7O0FBRUg7RUFFSSxvQkFBbUIsRUFDcEI7O0FBR0g7RUFFSSwrQkFBOEI7RUFDOUIsNkJBQTRCLEVBQzdCOztBQUpIO0VBTUksaUJBQWdCLEVBQ2pCOztBQVBIO0VBVUkseUJBQXdCLEVBQ3pCOztBQUVIO0VBRUksY0FBYSxFQUNkOztBQUVIO0VBQ0Usb0JBQXdCLEVBQ3pCOztBQUNEO0VBRUksa0MvQ2lCZ0I7RStDaEJoQixxQi9DZE8sRStDZVI7O0FDL0VIOztFQUlNLHVCQUFzQixFQUN2Qjs7QUFMTDs7RUFVTSx1QkFBc0IsRUFDdkI7O0FBR0w7RS9Db0JJLFlBQVc7RUFDWCxlQUFjO0VBQ2QsWUFBVyxFK0NqQlY7O0F0RG9CRztFc0R6QlI7SUFVUSxtQkFBa0I7SUFDbEIsb0JBQW1CLEVBOEJ4QixFQUFBOztBQXpDSDs7O0VBZ0JNLGVBQWM7RUFDZCxvQkFBbUI7RUFDbkIsZUFBYztFQUNkLFlBQVc7RUFJWCx1QkFBc0IsRUFRdkI7RXRETkc7SXNEekJSOzs7TUFxQlEsY0FBYSxFQVVoQixFQUFBO0V0RE5HO0lzRHpCUjs7O01BMkJVLGFBQVksRUFDYixFQUFBOztBdERIRDtFc0R6QlI7SUFrQ1EsV0FBVTtJQUNWLFlBQVcsRUFFZCxFQUFBOztBQXJDTDtFQXVDTSxZQUFXLEVBQ1o7O0FDdERMO0VBRUksb0JBQW1CO0VBQ25CLGdCakR1UFk7RWlEdFBaLGVqRHVIWTtFaUR0SFoscUJBQW9CLEVBQ3JCOztBQU5IOztFQVVNLGNBQWEsRUFDZDs7QUFYTDs7RUFhTSxVQUFTO0VBQ1Qsb0JBQW1CLEVBYXBCO0V2RFlHO0l1RHZDUjs7TUFpQlUsa0NqRDZFVSxFaUQ1RVgsRUFBQTtFQWxCVDs7SUFxQlEsbUJBQWtCLEVBQ25CO0VBdEJQOztJQXdCUSxlakRtR1E7SWlEbEdSLGlDQUFnQyxFQUNqQzs7QUFFRjtFQTVCTDs7SWhEa0NJLFlBQVc7SUFDWCxlQUFjO0lBQ2QsWUFBVyxFZ0RMTjtFQS9CVDs7SUFpQ1UsWUFBVztJQUNYLFdBQVU7SUFDVixlQUFjO0lBQ2QsY0FBYTtJQUNiLHVCQUFzQixFQUN2QjtFQXRDVDs7SUF3Q1UsbUJBQWtCO0lBQ2xCLG9CQUFtQixFQUNwQixFQUFBOztBQTFDVDtFQThDSSxtQkFBa0IsRUFNbkI7RUFwREg7SUFpRE0sb0JBQW1CLEVBRXBCOztBQW5ETDtFQXVETSxrQ2pEb0VVLEVpRG5FWDs7QUF4REw7RUE0RFUsZ0JBQWUsRUFjaEI7RUExRVQ7SUE4RFksVUFBUztJQUNULGVBQWMsRUFVZjtJQXpFWDtNQWtFYyxlakR5REU7TWlEeERGLDJCQUEwQixFQUszQjtNQXhFYjtRQXNFZ0IsMEJBQXlCLEVBQzFCOztBQXZFZjtFQStFSSxjQUFhLEVBQ2Q7O0F2RHpDSztFdUQ2Q047SUFDRSxjQUFhLEVBQ2QsRUFBQTs7QUFHSDtFQUVRLG9CQUFtQjtFQUNuQixvQkFBbUI7RUFDbkIsa0NqRDhCUSxFaUQ3QlQ7O0FBTFA7RUFPUSxlQUFjO0VBQ2QsWUFBVztFQUNYLFlBQVcsRUFDWjs7QUFWUDtFQVlRLGdGakQ4STRFO0VpRDdJNUUsZ0JqRG1KUztFaURsSlQsb0JBQW1CO0VBQ25CLGVBQWM7RUFDZCxvQmpEeENLLEVpRHlDTjs7QUFqQlA7RUFtQlEsV0FBVSxFQUNYOztBQXBCUDtFQXNCUSxZQUFXLEVBQ1o7O0FBdkJQO0VBeUJRLGFBQVksRUFLYjtFQTlCUDtJQTJCVSxrQkFBaUI7SUFDakIsYUFBWSxFQUNiOztBQUlUO0VBRUksaUJBQWdCLEVBQ2pCOztBQUdIO0VBQ0UsVUFBUyxFQUNWOztBQUVEO0VBQ0UsZWpEVmM7RWlEV2QsMkJBQTBCLEVBSzNCO0VBUEQ7SUFJSSxlakR4Q1k7SWlEeUNaLDJCQUEwQixFQUMzQjs7QUFHSDtFQUNFLGtDakRuQmM7RWlEb0JkLCtCakRwQmM7RWlEcUJkLGdCQUFlLEVBQ2hCOztBQ2pKRDtFQUVJLGFBQVksRUFDYjs7QUFISDtFQUtJLG1CQUFrQjtFQUNsQixvQkFBbUIsRUFLcEI7RXhENEJLO0l3RHZDUjtNQVFNLG1CQUFrQjtNQUNsQixvQkFBbUIsRUFFdEIsRUFBQTs7QUFYSDtFQWFJLGtCQUFpQixFQUNsQjs7QUFkSDtFQWdCSSxjQUFhLEVBQ2Q7O0FBakJIO0VBbUJJLGFBQVk7RUFDWixVQUFTLEVBQ1Y7O0FBckJIO0VBd0JRLG9CbER3Q0csRWtEdkNKOztBQXpCUDtFQTRCUSxpQkFBZ0IsRUFvQ2pCO0VBaEVQO0lBK0JVLGtDbEQrRFUsRWtEOURYO0VBaENUO0lBbUNZLGlCQUFnQjtJQUNoQixrQmxENkJDLEVrREhGO0lBOURYO01BdUNjLCtCbER1RE0sRWtEdERQO0lBeENiO01BNENnQixZQUFXO01BQ1gsZ0JBQWUsRUFDaEI7SUE5Q2Y7TUFpRGMsaUJsRGdCRDtNa0RmQyxrQmxEY0g7TWtEYkcsK0JsRDJDTSxFa0RwQ1A7TUExRGI7UUFzRGdCLHNCQUFxQjtRQUNyQixxQkFBb0I7UUFDcEIsa0JBQWlCLEVBQ2xCO0lBekRmO01BNERjLG9CbERLRCxFa0RKQTs7QUE3RGI7RUFxRU0saUJBQWdCO0VBQ2hCLGVBQWM7RUFDZCxZQUFXO0VBQ1gsZUFBYztFQUNkLFlBQVc7RUFDWCxtQkFBa0IsRUFvQ25CO0VBOUdMO0lBNkVRLHNCQUFxQjtJQUNyQixZQUFXO0lBQ1gsaUJBQWdCO0lBQ2hCLGVBQWMsRUE2QmY7SUE3R1A7TUFvRlksc0JBQXFCO01BQ3JCLHVCQUFzQjtNQUN0QixZQUFXO01BQ1gsWUFBVztNQUNYLGFBQVk7TUFDWixlbERPSSxFa0RXTDtNQTNHWDtRQTRGYyxVQUFTO1FBQ1QsZWxEQ00sRWtEQVA7TUE5RmI7UUFvR2dCLFlBQVc7UUFDWCxhQUFZO1FBQ1osVUFBUztRQUNULFlBQVc7UUFDWCxhQUFZLEVBQ2I7O0FDekdmO0VBRUksa0JBQWlCLEVBUWxCO0VBVkg7SUFJTSxhQUFZLEVBQ2I7RUFMTDtJQU9NLFlBQVc7SUFDWCxhQUFZLEVBQ2I7O0FBVEw7RUFhSSxnQkFBZTtFQUNmLGlCQUFnQixFQUNqQjs7QUFmSDtFQW9CSSxrQ25EMEVnQjtFbUR6RWhCLG9CbkQ0Q1MsRW1EM0NWO0V6RGlCSztJeUR2Q1I7TUFrQlEsZUFBYyxFQUluQixFQUFBOztBQXRCSDtFQXdCSSxVQUFTO0VBQ1QsZ0JBQWtCO0VBQ2xCLG9CbkR1Q1M7RW1EdENULCtCbkRtRWdCO0VtRGxFaEIsa0NuRGtFZ0I7RW1EakVoQixtQkFBa0IsRUFnQm5CO0VBN0NIO0lBZ0NNLFlBQVcsRUFDWjtFQWpDTDtJQW9DTSxtQkFBa0I7SUFDbEIsU0FBUTtJQUNSLGFBQVksRUFLYjtJQTNDTDtNQXdDUSxZQUFXLEVBRVo7O0FBMUNQO0VBaURRLHNCQUFxQixFQUN0Qjs7QUFsRFA7RUFxREksbUJBQWtCLEVBQ25COztBQ3RESDtFQUVJLDBCQUF5QjtFQUN6QiwyQnBEMkZnQjtFb0QxRmhCLHdCQUF1QixFQUN4Qjs7QUFMSDs7O0VBU0ksaUJwRHdEUztFb0R2RFQsb0JBQW1CO0VBQ25CLHFCQUFvQjtFQUNwQixnQnBENk9hLEVvRDVPZDs7QUFiSDtFQWVJLGNBQWEsRUFDZDs7QUFoQkg7RUFrQkksZXBENEVnQjtFb0QzRWhCLDJCQUEwQixFQVUzQjtFQTdCSDtJQXNCTSxlcEQwRVUsRW9EekVYO0VBdkJMO0lBMEJNLGlCcERzQ0s7SW9EckNMLGVBQWMsRUFDZjs7QUE1Qkw7RUErQkksZ0JwRDJOWSxFb0QxTmI7O0FBaENIO0VBa0NJLGdCcER1TmEsRW9EdE5kOztBQW5DSDtFQXNDVSxpQ0FBZ0MsRUFLbkM7RUEzQ1A7SUF5Q1ksMEJBQXlCLEVBQzFCOztBQTFDWDtFQStDSSxzQkFBcUIsRUFDdEI7O0FBaERIO0VBa0RJLGFwRGNPLEVvRGJSOztBQUVIO0VBU0ksb0JBQW1CO0VBQ25CLGtDcEQrQmdCO0VvRDlCaEIsbUJBQWtCLEVBQ25CO0VBWkg7SUFJTSxpQkFBZ0IsRUFDakI7RUFMTDtJQU9NLGVwRG9DVSxFb0RuQ1g7O0FBT0w7RUFFSSxnQnBEbUxhO0VvRGxMYixtQkFBa0I7RUFDbEIsZ0ZwRDJLZ0Y7RW9EMUtoRixpQkFBZ0IsRUFDakI7O0FBR0g7RUFDRSxpQnBEZFMsRW9EZVY7O0FBRUQ7RUFHSSxXQUFVO0VBQ1YsVUFBUyxFQVVWO0VBZEg7SUFNTSxrQkFBaUI7SUFDakIsa0JBQWlCO0lBQ2pCLGNBQWE7SUFDYixpQkFBZ0IsRUFJakI7SUFiTDtNQVdRLGNBQWEsRUFDZDs7QUFaUDtFQWlCSSxXQUFVO0VBQ1YsVUFBUyxFQUlWO0VBdEJIO0lBb0JNLGNBQWEsRUFDZDs7QUN0R0w7RUFFRSxvQkFBbUI7RUFDbkIsbUJBQWtCO0VBQ2xCLG1CQUFrQixFQVdsQjtFM0R3Qk07STJEdkNSO01BUUcsZUFBYztNQUNkLFlBQVc7TUFDWCxhQUFZLEVBS2IsRUFBQTtFQWZGO0lwRGtDSSxZQUFXO0lBQ1gsZUFBYztJQUNkLFlBQVcsRW9EdEJaOztBM0R5Qks7RTJEdkNSO0lBbUJJLCtCckQyRWdCLEVxRDFFaEIsRUFBQTs7QUFwQko7RUF3QkUsZUFBYyxFQTRCZDtFM0RiTTtJMkR2Q1I7TUEyQkcsV0FBVTtNQUNWLGFBQVk7TUFDWixvQkFBbUI7TUFDbkIsZ0JBQWU7TUFDZixVQUFTLEVBcUJWLEVBQUE7RUFwREY7SUF5Q0csYUFBWTtJQUNaLHVCQUFzQjtJQUN0QixrQ3JEbURpQixFcUQ5Q2pCO0lBaERIO01Bb0NJLFlBQVcsRUFJWDtNM0RESTtRMkR2Q1I7VUFzQ0ssaUJBQWdCLEVBRWpCLEVBQUE7STNEREk7TTJEdkNSO1FBOENJLGtCckRtQlMsRXFEakJWLEVBQUE7RUFoREg7SUFrREcsaUJyRGVVLEVxRGRWOztBQW5ESDtFQXVERywrQnJEdUNpQixFcUR0Q2pCOztBM0RqQks7RTJEdkNSO0lBNkRJLGlCQUFnQixFQUNoQixFQUFBOztBTlVKO0VNSEMsb0JBQXdCLEVBQ3hCOztBQ3RFRDtFQU1VLGNBQWEsRUFpQmQ7RTVEZ0JEO0k0RHZDUjtNQVNZLGlCQUFnQixFQWNuQixFQUFBO0VBdkJUO0lBYVksc0JBQXFCO0lBQ3JCLHVCQUFzQixFQUN2QjtFQWZYO0lBaUJZLGNBQWE7SUFDYixtQkFBa0I7SUFDbEIsWUFBVztJQUNYLHNCQUFxQjtJQUNyQix1QkFBc0I7SUFDdEIsaUJBQWdCLEVBQVk7O0FDdEJ4QztFQUVnQyx5QkFBeUI7RUFDckQsZXZEd0hZLEV1RHZIYjs7QUFKSDtFQUtzQiw2QkFBNkI7RUFDOUMsZXZEcUhXO0V1RHBIWCxXQUFXLEVBQ2I7O0FBUkg7RUFTdUIseUJBQXlCO0VBQzNDLGV2RGlIVztFdURoSFgsV0FBVyxFQUNiOztBQVpIO0VBYTJCLDZCQUE2QjtFQUNuRCxldkQ2R1csRXVENUdiOztBQWZIO0VBZ0I0QixvQkFBb0I7RUFDM0MsZXZEMEdXLEV1RHpHYjs7QUFsQkg7RUFxQkksY0FBYTtFQUNiLGNBQWE7RUFDYixhQUFZO0VBQ1osMEJ2RGdGVztFdUQvRVgsYUFBWSxFQUNiOztBQTFCSDtFQTRCSSxrQkFBaUIsRUFDbEI7O0FBN0JIO0VBK0JJLFlBQVcsRUFDWjs7QUFoQ0g7RUFrQ0kseUJBQXdCLEVBQ3pCOztBQW5DSDs7RUF3Q1EseUJBQXdCO0VBQ3hCLFlBQVc7RUFDWCx1QkFBc0I7RUFDdEIsMEJ2RDZHa0I7RXVENUdsQixhQUFZO0VBQ1osZUFBYztFQUNkLGFBQVk7RUFDWixrQkFBaUI7RUFDakIsZ0J2RDZNSyxFdUR2TU47RUF0RFA7O0lBbURVLGV2RDJDVTtJdUQxQ1YsK0J2RDZMc0IsRXVENUx2QjtFQXJEVDs7SUFtRFUsZXZEMkNVO0l1RDFDViwrQnZENkxzQixFdUQ1THZCOztBQXJEVDtFQXlETSxldkQrQ1MsRXVEOUNWOztBQTFETDtFQThESSxlQUFjO0VBQ2QsY0FBYSxFQUtkO0VBcEVIO0lBa0VNLGdCQUFlLEVBQ2hCOztBQW5FTDtFQXVFZ0MseUJBQXdCLEVBQUc7O0FBdkUzRDtFQXdFYSxlQUFjLEVBQUc7O0FBSTlCO0VBQ0UscUJBQW9CLEVBQ3JCOztBQUtEOztFQUdRLHlCQUF3QjtFQUN4QixZQUFXO0VBQ1gsdUJBQXNCO0VBQ3RCLDBCdkQrRGtCO0V1RDlEbEIsYUFBWTtFQUNaLGVBQWM7RUFDZCxhQUFZO0VBQ1osa0JBQWlCO0VBQ2pCLGlCQUFnQjtFQUNoQixnQnZEOEpLLEV1RHhKTjtFQWxCUDs7SUFlVSxldkRKVTtJdURLViwrQnZEOElzQixFdUQ3SXZCO0VBakJUOztJQWVVLGV2REpVO0l1REtWLCtCdkQ4SXNCLEV1RDdJdkI7O0FDcEdUO0VBQ0Usc0JBQXFCO0VBQ3JCLFdBQVU7RUFDVixVQUFTLEVBeUNWO0VBNUNEO0lBTUksbUJBQWtCO0lBQ2xCLG9CQUFtQjtJQUNuQixpQkFBZ0I7SUFDaEIsaUJBQWdCLEVBa0NqQjtJQTNDSDtNQWFRLHlEQUF3RCxFQUN6RDtJQWRQO01Ba0JRLHlEQUF3RCxFQUN6RDtJQW5CUDtNQXVCTSxZQUFXO01BQ1gsc0JBQXFCO01BQ3JCLHVCQUFzQjtNQUN0QixtQkFBa0I7TUFDbEIsa0JBQWlCO01BQ2pCLGtCQUFpQjtNQUNqQixTQUFRO01BQ1IsUUFBTztNQUNQLDRCQUEyQjtNQUMzQixZQUFXO01BQ1gsYUFBWTtNQUNaLHVEQUFzRDtNQUN0RCwyQkFBMEI7TUFDMUIsNkJBQTRCLEVBQzdCO0lBckNMO01Bd0NNLHNCQUFxQjtNQUNyQixlQUFjLEVBQ2Y7O0FDMUNMO0VBQ0UsZUFBYztFQUNkLGdCQUFlO0VBQ2YsY0FBYTtFQUNiLHFDQUFnQztFQUNoQyxRQUFPO0VBQ1AsT0FBTTtFQUNOLFlBQVc7RUFDWCxhQUFZO0VBQ1osV0FBVTtFQUNWLHFCQUFvQjtFQUNwQiwwQnpEeUJpQztFeUR4QmpDLGlCQUFnQjtFQUNoQixrQ0FBaUMsRUFrS2xDO0VBL0tEO0lBZ0JJLFdBQVU7SUFDVixvQkFBbUIsRUFLcEI7SUF0Qkg7TUFvQk0sV0FBVSxFQUNYO0VBckJMO0lBd0JJLFdBQVU7SUFDVixvQkFBbUIsRUFhcEI7SUF0Q0g7TUE0Qk0sV0FBVSxFQUNYO0lBN0JMO01BK0JNLFdBQVU7TUFDVixvQkFBbUIsRUFLcEI7TS9ERUc7UStEdkNSO1VBbUNRLGlDQUFnQyxFQUVuQyxFQUFBO0VBckNMO0lBeUNRLGtCQUFpQixFQUlwQjtJL0RORztNK0R2Q1I7UUEyQ1UseUNBQXdDLEVBRTdDLEVBQUE7RUE3Q0w7SUFnREksbUJBQWtCO0lBQ2xCLFNBQVE7SUFDUixVQUFTO0lBQ1QsaUNBQWdDO0lBQ2hDLGFBQVk7SUFDWixZQUFXO0lBQ1gsdUNBQXNDO0lBQ3RDLHVCQUFzQjtJQUN0QixnQ0FBK0I7SUFDL0IsbUJBQWtCO0lBQ2xCLFdBQVUsRUFDWDs7QUFFRDtFQUNFO0lBQVEsd0JBQXVCLEVBQUE7RUFDL0I7SUFBUSwwQkFBeUIsRUFBQSxFQUFBO0VBL0RyQztJQWtFSSxXQUFVO0lBQ1YsdUJBQXNCO0lBQ3RCLGtCQUFpQjtJQUNqQixXQUFVO0lBa0NWLGlCQUFnQjtJQUNoQixtQnpEekV1QjtJeUQwRXZCLHFCQUFvQjtJQUVwQixvQnpEckV3QjtJeURzRXhCLDJDekR4RStCLEV5RDBJaEM7SS9EdklLO00rRHZDUjtRQXdFUSxtQkFBa0I7UUFDbEIsU0FBTztRQUNQLFVBQVM7UUFDVCxpQ0FBZ0MsRUFtR3JDLEVBQUE7SUE5S0g7TUFnRlEsNEJBQTJCO01BQzNCLHFCekRxTGUsRXlEakxsQjtNQXJGTDtRQW1GWSxpQkFBZ0IsRUFDbkI7SUFwRlQ7TUEyRk0sZ0J6RDhKVyxFeUQ3Slo7SUE1Rkw7TUErRk0saUJ6RDlCTyxFeUQrQlI7SUFoR0w7OztNQW9HTSxvQnpEbkNPLEV5RG9DUjtJQXJHTDtNQWdITSxlQUFjO01BQ2QsWUFBVztNQUNYLGFBQVk7TUFDWixXQUFVO01BQ1Ysb0JBQW1CO01BQ25CLDBCekRyQlU7TXlEc0JWLFlBQVc7TUFDWCxnQkFBZTtNQUNmLG1CQUFrQjtNQUNsQixTQUFRO01BQ1IsVUFBUztNQUlULGtCQUFpQjtNQUNqQixtQkFBa0I7TUFFbEIsZ0JBQWU7TUFDZixvREFBbUQ7TUFDbkQsc0JBQXFCO01BQ3JCLDRCQUEyQjtNQUMzQiw2QkFBNEI7TUFDNUIsNkJ6RGxHNkIsRXlEc0g5QjtNL0RuSEc7UStEdkNSO1VBNEhNLE9BQU0sRUE4QlAsRUFBQTtNQTFKTDtRQXdKUSwwQkFBcUMsRUFDdEM7SUF6SlA7TUE0Sk0sNkJBQTRCO01BTzVCLHVCQUFzQixFQVV2QjtNL0R0SUc7UStEdkNSO1VBK0pRLG1CQUFrQixFQWNyQixFQUFBO01BN0tMO1FBd0tRLGNBQWEsRUFDZDtNL0RsSUM7UStEdkNSO1VBMktRLG1CQUFrQixFQUVyQixFQUFBOztBQUlMO0VBQ0UsNEJBQTJCLEVBQzVCOztBQUVEO0VBR0ksV0FBVTtFQUNWLG9CQUFtQixFQU1wQjtFQVZIO0lBTU0sV0FBVTtJQUNWLG9CQUFtQjtJQUNuQixpQ0FBZ0MsRUFDakM7O0FDOUxMO0VBQ0MsZUFBZSxFQW1DZjtFQXBDRDtJQUlFLGtCMUQ0RFM7STBEM0RULGlCMUQyRFM7STBEMURULCtCMUR3RmtCLEUwRHZGbEI7RUFQRjtJQVVFLG9CQUFtQixFQUNuQjtFaEU0Qk07SWdFdkNSO01BZ0JHLGVBQWMsRUFPZDtNQXZCSDtRekRrQ0ksWUFBVztRQUNYLGVBQWM7UUFDZCxZQUFXLEV5RGZYO0lBckJKO01BMEJHLFlBQVc7TUFDWCxXQUFVLEVBTVY7TUFqQ0g7UUE4QkksY0FBYSxFQUNiLEVBQUE7O0FBT0o7RUFDQyxpQjFEeUJVLEUwRGRWOztBQUVEO0VBRUUsb0JBQW1CLEVBVW5CO0VBWkY7SUFLRyxnRjFEMExpRjtJMER6TGpGLGdCMURpTVk7STBEaE1aLGlCQUFnQixFQUloQjtJQVhIO01BU0ksc0JBQXFCLEVBQ3JCOztBQUtKO0VBRUUsV0FBVSxFQUNWOztBQUhGO0VBTUcsV0FBVSxFQUNWOztBQUlIO0VBQ0Msa0IxRGZVO0UwRGdCVixpQjFEaEJVO0UwRGlCViwrQjFEYW1CLEUwRFpuQjs7QUFFRDtFQUNDLGNBQWE7RUFDYixhQUFZLEVBQ1o7O0FDOUREOztrREFFa0Q7QUFDbEQ7RUFFUSwwQkFBeUIsRUFRNUI7RUFWTDtJQUtZLG9CQUFtQjtJQUNuQixvQkFBbUI7SUFDbkIsZUFBYztJQUNkLHFCQUFvQixFQUN2QiIsImZpbGUiOiJzdHlsZXMuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQGNoYXJzZXQgXCJVVEYtOFwiO1xuLypcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFVzYWdlIGV4YW1wbGU6XG4vLyBGb3IgSUUgc2V0ICRtcS1zdXBwb3J0IHRvIGZhbHNlLlxuLy8gU2V0IHRoZSBmaXhlZCB2YWx1ZS5cbi8vIFRoZW4gdXNlIG1peGlucyB0byB0ZXN0IHdoZXRoZXIgc3R5bGVzIHNob3VsZCBiZSBhcHBsaWVkLlxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kbXEtc3VwcG9ydDogZmFsc2U7XG4kbXEtZml4ZWQtdmFsdWU6IDEwMjQ7XG5cbi8vIFJlbmRlcnMgYXQgZml4ZWQgdmFsdWVcbkBpbmNsdWRlIGJwIChtaW4td2lkdGgsIDMwMHB4KSB7IFxuICAgIGRpdiB7IGNvbG9yOiMwMDA7IH1cbn1cblxuLy8gRG9lc24ndCByZW5kZXIgd2l0aG91dCBNUSBzdXBwb3J0XG5AaW5jbHVkZSBicCAobWluLXdpZHRoLCAxMjAwcHgpIHsgXG4gICAgZGl2IHsgY29sb3I6I0ZGRjsgfVxufVxuXG4vLyBEb2Vzbid0IHJlbmRlciB3aXRob3V0IE1RIHN1cHBvcnRcbkBpbmNsdWRlIGJwIChtYXgtd2lkdGgsIDMwMHB4KSB7IFxuICAgIGRpdiB7IGNvbG9yOiM0NDQ7IH1cbn1cblxuLy8gUmVuZGVycyBhdCBmaXhlZCB2YWx1ZVxuQGluY2x1ZGUgYnAgKG1heC13aWR0aCwgMTIwMHB4KSB7IFxuICAgIGRpdiB7IGNvbG9yOiM4ODg7IH1cbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1VidW50dVRpdGxpbmctQm9sZCc7XG4gIHNyYzogdXJsKFwiZm9udHMvVWJ1bnR1VGl0bGluZy1Cb2xkLmVvdD8jaWVmaXhcIikgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIiksIHVybChcImZvbnRzL1VidW50dVRpdGxpbmctQm9sZC53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksIHVybChcImZvbnRzL1VidW50dVRpdGxpbmctQm9sZC50dGZcIikgZm9ybWF0KFwidHJ1ZXR5cGVcIiksIHVybChcImZvbnRzL1VidW50dVRpdGxpbmctQm9sZC5zdmcjVWJ1bnR1VGl0bGluZy1Cb2xkXCIpIGZvcm1hdChcInN2Z1wiKTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsOyB9XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1VidW50dVRpdGxpbmctQm9sZCc7XG4gIHNyYzogdXJsKFwiZm9udHMvVWJ1bnR1VGl0bGluZy1Cb2xkLmVvdD8jaWVmaXhcIikgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIiksIHVybChcImZvbnRzL1VidW50dVRpdGxpbmctQm9sZC53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksIHVybChcImZvbnRzL1VidW50dVRpdGxpbmctQm9sZC50dGZcIikgZm9ybWF0KFwidHJ1ZXR5cGVcIiksIHVybChcImZvbnRzL1VidW50dVRpdGxpbmctQm9sZC5zdmcjVWJ1bnR1VGl0bGluZy1Cb2xkXCIpIGZvcm1hdChcInN2Z1wiKTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDsgfVxuXG4vKiEgbm9ybWFsaXplLmNzcyB2Mi4wLjEgfCBNSVQgTGljZW5zZSB8IGdpdC5pby9ub3JtYWxpemUgKi9cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBIVE1MNSBkaXNwbGF5IGRlZmluaXRpb25zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIENvcnJlY3RzIGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBpbiBJRSA4LzkuXG4gKi9cbmFydGljbGUsXG5hc2lkZSxcbmRldGFpbHMsXG5maWdjYXB0aW9uLFxuZmlndXJlLFxuZm9vdGVyLFxuaGVhZGVyLFxuaGdyb3VwLFxubmF2LFxuc2VjdGlvbixcbnN1bW1hcnkge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4vKlxuICogQ29ycmVjdHMgYGlubGluZS1ibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBpbiBJRSA4LzkuXG4gKi9cbmF1ZGlvLFxuY2FudmFzLFxudmlkZW8ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cblxuLypcbiAqIFByZXZlbnRzIG1vZGVybiBicm93c2VycyBmcm9tIGRpc3BsYXlpbmcgYGF1ZGlvYCB3aXRob3V0IGNvbnRyb2xzLlxuICogUmVtb3ZlIGV4Y2VzcyBoZWlnaHQgaW4gaU9TIDUgZGV2aWNlcy5cbiAqL1xuYXVkaW86bm90KFtjb250cm9sc10pIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgaGVpZ2h0OiAwOyB9XG5cbi8qXG4gKiBBZGRyZXNzZXMgc3R5bGluZyBmb3IgYGhpZGRlbmAgYXR0cmlidXRlIG5vdCBwcmVzZW50IGluIElFIDgvOS5cbiAqL1xuW2hpZGRlbl0ge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBCYXNlXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIDEuIFNldHMgZGVmYXVsdCBmb250IGZhbWlseSB0byBzYW5zLXNlcmlmLlxuICogMi4gUHJldmVudHMgaU9TIHRleHQgc2l6ZSBhZGp1c3QgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlLCB3aXRob3V0IGRpc2FibGluZ1xuICogICAgdXNlciB6b29tLlxuICovXG5odG1sIHtcbiAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7XG4gIC8qIDEgKi9cbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuICAvKiAyICovXG4gIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuICAvKiAyICovIH1cblxuLypcbiAqIFJlbW92ZXMgZGVmYXVsdCBtYXJnaW4uXG4gKi9cbmJvZHkge1xuICBtYXJnaW46IDA7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIExpbmtzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIEFkZHJlc3NlcyBgb3V0bGluZWAgaW5jb25zaXN0ZW5jeSBiZXR3ZWVuIENocm9tZSBhbmQgb3RoZXIgYnJvd3NlcnMuXG4gKi9cbmE6Zm9jdXMge1xuICBvdXRsaW5lOiB0aGluIGRvdHRlZDsgfVxuXG4vKlxuICogSW1wcm92ZXMgcmVhZGFiaWxpdHkgd2hlbiBmb2N1c2VkIGFuZCBhbHNvIG1vdXNlIGhvdmVyZWQgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5hOmFjdGl2ZSxcbmE6aG92ZXIge1xuICBvdXRsaW5lOiAwOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBUeXBvZ3JhcGh5XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIEFkZHJlc3NlcyBgaDFgIGZvbnQgc2l6ZXMgd2l0aGluIGBzZWN0aW9uYCBhbmQgYGFydGljbGVgIGluIEZpcmVmb3ggNCssXG4gKiBTYWZhcmkgNSwgYW5kIENocm9tZS5cbiAqL1xuaDEge1xuICBmb250LXNpemU6IDJlbTsgfVxuXG4vKlxuICogQWRkcmVzc2VzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LCBTYWZhcmkgNSwgYW5kIENocm9tZS5cbiAqL1xuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkOyB9XG5cbi8qXG4gKiBBZGRyZXNzZXMgc3R5bGUgc2V0IHRvIGBib2xkZXJgIGluIEZpcmVmb3ggNCssIFNhZmFyaSA1LCBhbmQgQ2hyb21lLlxuICovXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cblxuLypcbiAqIEFkZHJlc3NlcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIFNhZmFyaSA1IGFuZCBDaHJvbWUuXG4gKi9cbmRmbiB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYzsgfVxuXG4vKlxuICogQWRkcmVzc2VzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LlxuICovXG5tYXJrIHtcbiAgYmFja2dyb3VuZDogI2ZmMDtcbiAgY29sb3I6ICMwMDA7IH1cblxuLypcbiAqIENvcnJlY3RzIGZvbnQgZmFtaWx5IHNldCBvZGRseSBpbiBTYWZhcmkgNSBhbmQgQ2hyb21lLlxuICovXG5jb2RlLFxua2JkLFxucHJlLFxuc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIHNlcmlmO1xuICBmb250LXNpemU6IDFlbTsgfVxuXG4vKlxuICogSW1wcm92ZXMgcmVhZGFiaWxpdHkgb2YgcHJlLWZvcm1hdHRlZCB0ZXh0IGluIGFsbCBicm93c2Vycy5cbiAqL1xucHJlIHtcbiAgd2hpdGUtc3BhY2U6IHByZTtcbiAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7IH1cblxuLypcbiAqIFNldHMgY29uc2lzdGVudCBxdW90ZSB0eXBlcy5cbiAqL1xucSB7XG4gIHF1b3RlczogXCJcXDIwMUNcIiBcIlxcMjAxRFwiIFwiXFwyMDE4XCIgXCJcXDIwMTlcIjsgfVxuXG4vKlxuICogQWRkcmVzc2VzIGluY29uc2lzdGVudCBhbmQgdmFyaWFibGUgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqL1xuc21hbGwge1xuICBmb250LXNpemU6IDgwJTsgfVxuXG4vKlxuICogUHJldmVudHMgYHN1YmAgYW5kIGBzdXBgIGFmZmVjdGluZyBgbGluZS1oZWlnaHRgIGluIGFsbCBicm93c2Vycy5cbiAqL1xuc3ViLFxuc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgfVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTsgfVxuXG5zdWIge1xuICBib3R0b206IC0wLjI1ZW07IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEVtYmVkZGVkIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogUmVtb3ZlcyBib3JkZXIgd2hlbiBpbnNpZGUgYGFgIGVsZW1lbnQgaW4gSUUgOC85LlxuICovXG5pbWcge1xuICBib3JkZXI6IDA7IH1cblxuLypcbiAqIENvcnJlY3RzIG92ZXJmbG93IGRpc3BsYXllZCBvZGRseSBpbiBJRSA5LlxuICovXG5zdmc6bm90KDpyb290KSB7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEZpZ3VyZXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogQWRkcmVzc2VzIG1hcmdpbiBub3QgcHJlc2VudCBpbiBJRSA4LzkgYW5kIFNhZmFyaSA1LlxuICovXG5maWd1cmUge1xuICBtYXJnaW46IDA7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEZvcm1zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIERlZmluZSBjb25zaXN0ZW50IGJvcmRlciwgbWFyZ2luLCBhbmQgcGFkZGluZy5cbiAqL1xuZmllbGRzZXQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xuICBtYXJnaW46IDAgMnB4O1xuICBwYWRkaW5nOiAwLjM1ZW0gMC42MjVlbSAwLjc1ZW07IH1cblxuLypcbiAqIDEuIENvcnJlY3RzIGNvbG9yIG5vdCBiZWluZyBpbmhlcml0ZWQgaW4gSUUgOC85LlxuICogMi4gUmVtb3ZlIHBhZGRpbmcgc28gcGVvcGxlIGFyZW4ndCBjYXVnaHQgb3V0IGlmIHRoZXkgemVybyBvdXQgZmllbGRzZXRzLlxuICovXG5sZWdlbmQge1xuICBib3JkZXI6IDA7XG4gIC8qIDEgKi9cbiAgcGFkZGluZzogMDtcbiAgLyogMiAqLyB9XG5cbi8qXG4gKiAxLiBDb3JyZWN0cyBmb250IGZhbWlseSBub3QgYmVpbmcgaW5oZXJpdGVkIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIENvcnJlY3RzIGZvbnQgc2l6ZSBub3QgYmVpbmcgaW5oZXJpdGVkIGluIGFsbCBicm93c2Vycy5cbiAqIDMuIEFkZHJlc3NlcyBtYXJnaW5zIHNldCBkaWZmZXJlbnRseSBpbiBGaXJlZm94IDQrLCBTYWZhcmkgNSwgYW5kIENocm9tZVxuICovXG5idXR0b24sXG5pbnB1dCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIC8qIDEgKi9cbiAgZm9udC1zaXplOiAxMDAlO1xuICAvKiAyICovXG4gIG1hcmdpbjogMDtcbiAgLyogMyAqLyB9XG5cbi8qXG4gKiBBZGRyZXNzZXMgRmlyZWZveCA0KyBzZXR0aW5nIGBsaW5lLWhlaWdodGAgb24gYGlucHV0YCB1c2luZyBgIWltcG9ydGFudGAgaW5cbiAqIHRoZSBVQSBzdHlsZXNoZWV0LlxuICovXG5idXR0b24sXG5pbnB1dCB7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7IH1cblxuLypcbiAqIDEuIEF2b2lkIHRoZSBXZWJLaXQgYnVnIGluIEFuZHJvaWQgNC4wLiogd2hlcmUgKDIpIGRlc3Ryb3lzIG5hdGl2ZSBgYXVkaW9gXG4gKiAgICBhbmQgYHZpZGVvYCBjb250cm9scy5cbiAqIDIuIENvcnJlY3RzIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgYGlucHV0YCB0eXBlcyBpbiBpT1MuXG4gKiAzLiBJbXByb3ZlcyB1c2FiaWxpdHkgYW5kIGNvbnNpc3RlbmN5IG9mIGN1cnNvciBzdHlsZSBiZXR3ZWVuIGltYWdlLXR5cGVcbiAqICAgIGBpbnB1dGAgYW5kIG90aGVycy5cbiAqL1xuYnV0dG9uLFxuaHRtbCBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdLFxuaW5wdXRbdHlwZT1cInJlc2V0XCJdLFxuaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xuICAvKiAyICovXG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgLyogMyAqLyB9XG5cbi8qXG4gKiBSZS1zZXQgZGVmYXVsdCBjdXJzb3IgZm9yIGRpc2FibGVkIGVsZW1lbnRzLlxuICovXG5idXR0b25bZGlzYWJsZWRdLFxuaW5wdXRbZGlzYWJsZWRdIHtcbiAgY3Vyc29yOiBkZWZhdWx0OyB9XG5cbi8qXG4gKiAxLiBBZGRyZXNzZXMgYm94IHNpemluZyBzZXQgdG8gYGNvbnRlbnQtYm94YCBpbiBJRSA4LzkuXG4gKiAyLiBSZW1vdmVzIGV4Y2VzcyBwYWRkaW5nIGluIElFIDgvOS5cbiAqL1xuaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLFxuaW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLyogMSAqL1xuICBwYWRkaW5nOiAwO1xuICAvKiAyICovIH1cblxuLypcbiAqIDEuIEFkZHJlc3NlcyBgYXBwZWFyYW5jZWAgc2V0IHRvIGBzZWFyY2hmaWVsZGAgaW4gU2FmYXJpIDUgYW5kIENocm9tZS5cbiAqIDIuIEFkZHJlc3NlcyBgYm94LXNpemluZ2Agc2V0IHRvIGBib3JkZXItYm94YCBpbiBTYWZhcmkgNSBhbmQgQ2hyb21lXG4gKiAgICAoaW5jbHVkZSBgLW1vemAgdG8gZnV0dXJlLXByb29mKS5cbiAqL1xuaW5wdXRbdHlwZT1cInNlYXJjaFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xuICAvKiAxICovXG4gIC1tb3otYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIC13ZWJraXQtYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIC8qIDIgKi9cbiAgYm94LXNpemluZzogY29udGVudC1ib3g7IH1cblxuLypcbiAqIFJlbW92ZXMgaW5uZXIgcGFkZGluZyBhbmQgc2VhcmNoIGNhbmNlbCBidXR0b24gaW4gU2FmYXJpIDUgYW5kIENocm9tZVxuICogb24gT1MgWC5cbiAqL1xuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7IH1cblxuLypcbiAqIFJlbW92ZXMgaW5uZXIgcGFkZGluZyBhbmQgYm9yZGVyIGluIEZpcmVmb3ggNCsuXG4gKi9cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcbmlucHV0OjotbW96LWZvY3VzLWlubmVyIHtcbiAgYm9yZGVyOiAwO1xuICBwYWRkaW5nOiAwOyB9XG5cbi8qXG4gKiAxLiBSZW1vdmVzIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFIDgvOS5cbiAqIDIuIEltcHJvdmVzIHJlYWRhYmlsaXR5IGFuZCBhbGlnbm1lbnQgaW4gYWxsIGJyb3dzZXJzLlxuICovXG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvO1xuICAvKiAxICovXG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIC8qIDIgKi8gfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgVGFibGVzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIFJlbW92ZSBtb3N0IHNwYWNpbmcgYmV0d2VlbiB0YWJsZSBjZWxscy5cbiAqL1xudGFibGUge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBib3JkZXItc3BhY2luZzogMDsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBSZXNldFxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbiosXG4qOmJlZm9yZSxcbio6YWZ0ZXIge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7IH1cblxuaHRtbCB7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKTtcbiAgLyogUHJldmVudCB0YXAgaGlnaGxpZ2h0IG9uIGlPUy9BbmRyb2lkICovXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgLyogUHJldmVudCBhdXRvbWF0aWMgc2NhbGluZyBvbiBpT1MgKi8gfVxuXG5ib2R5IHtcbiAgYmFja2dyb3VuZDogI0ZGRkZGRjtcbiAgY29sb3I6ICMwMDAwMDA7XG4gIGxpbmUtaGVpZ2h0OiAxOyB9XG5cbmh0bWwsXG5ib2R5LFxuaW1nLFxuZmllbGRzZXQsXG5hYmJyLFxuYWNyb255bSB7XG4gIGJvcmRlcjogMDsgfVxuXG5oMSxcbmgyLFxuaDMsXG5oNCxcbmg1LFxuaDYge1xuICBmb250LXNpemU6IDEwMCU7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7IH1cblxudGgsXG5jb2RlLFxuY2l0ZSxcbmNhcHRpb24ge1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIHRleHQtYWxpZ246IGxlZnQ7IH1cblxuYWRkcmVzcyB7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDsgfVxuXG5maWVsZHNldCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiAwOyB9XG5cbmltZyB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbm9sLFxudWwge1xuICBsaXN0LXN0eWxlOiBub25lOyB9XG5cbnE6YmVmb3JlLFxucTphZnRlciB7XG4gIGNvbnRlbnQ6ICcnOyB9XG5cbmlucHV0OmZvY3VzLFxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTpmb2N1cyB7XG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4OyB9XG5cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIC8qIDEgKi9cbiAgLW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC8qIDIgKi9cbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuXG5pZnJhbWUsIGltZyB7XG4gIG1heC13aWR0aDogMTAwJTsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBCYXNlIFN0eWxlc1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbkAtbXMtdmlld3BvcnQge1xuICB3aWR0aDogZGV2aWNlLXdpZHRoOyB9XG5cbkAtby12aWV3cG9ydCB7XG4gIHdpZHRoOiBkZXZpY2Utd2lkdGg7IH1cblxuQHZpZXdwb3J0IHtcbiAgd2lkdGg6IGRldmljZS13aWR0aDsgfVxuXG5hLCBidXR0b24ge1xuICAtbXMtdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XG4gIHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uOyB9XG5cbmJvZHksXG5idXR0b24sXG5pbnB1dCxcbnNlbGVjdCxcbnRhYmxlLFxudGV4dGFyZWEge1xuICBmb250LWZhbWlseTogQXJpYWwsIHNhbnMtc2VyaWY7XG4gIGNvbG9yOiAjMDAzYjVmO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7IH1cblxuYm9keSB7XG4gIGJhY2tncm91bmQ6ICNmZGZkZmQ7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChpbWFnZXMvYmcuanBnKTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xuICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5O1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDsgfVxuXG5hIHtcbiAgY29sb3I6ICMxZjg2YmQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuXG5hOmhvdmVyIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cblxuYTpmb2N1cyB7XG4gIG91dGxpbmUtY29sb3I6ICMxZDdlYjI7XG4gIGNvbG9yOiAjMDkyOTNhOyB9XG5cbm9sLFxudWwge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7IH1cblxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBUeXBvZ3JhcGh5XG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuaDEsIC5oMSB7XG4gIG1hcmdpbjogMDtcbiAgbWFyZ2luLWJvdHRvbTogMC43ZW07XG4gIGNvbG9yOiAjMDAzYjVmO1xuICBmb250LWZhbWlseTogXCJVYnVudHVUaXRsaW5nLUJvbGRcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBWZXJkYW5hLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAyOHB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7IH1cblxuaDIsIC5oMiB7XG4gIG1hcmdpbjogMDtcbiAgbWFyZ2luLWJvdHRvbTogMC41ZW07XG4gIGNvbG9yOiAjMDAzYjVmO1xuICBmb250LWZhbWlseTogXCJVYnVudHVUaXRsaW5nLUJvbGRcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBWZXJkYW5hLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAyNHB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7IH1cblxuaDMsIC5oMyB7XG4gIG1hcmdpbjogMDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgY29sb3I6ICMwMDNiNWY7XG4gIGZvbnQtZmFtaWx5OiBcIlVidW50dVRpdGxpbmctQm9sZFwiLCBcIkhlbHZldGljYSBOZXVlXCIsIFZlcmRhbmEsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDIwcHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDEuMTsgfVxuXG5oNCwgLmg0IHtcbiAgbWFyZ2luOiAwO1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICBjb2xvcjogIzAwM2I1ZjtcbiAgZm9udC1mYW1pbHk6IFwiVWJ1bnR1VGl0bGluZy1Cb2xkXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgVmVyZGFuYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMS40OyB9XG5cbmg1LCAuaDUge1xuICBtYXJnaW46IDA7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIGNvbG9yOiAjMDAzYjVmO1xuICBmb250LWZhbWlseTogQXJpYWwsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMS40OyB9XG5cbmg2LCAuaDYge1xuICBtYXJnaW46IDA7XG4gIG1hcmdpbi1ib3R0b206IDVweDtcbiAgY29sb3I6ICMwMDNiNWY7XG4gIGZvbnQtZmFtaWx5OiBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7IH1cblxucCB7XG4gIG1hcmdpbi1ib3R0b206IDhweDsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBTaGFyZWQgQ2xhc3Nlc1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5hZGRyZXNzLWxpc3QgYWRkcmVzcyB7XG4gIG1hcmdpbi1ib3R0b206IDFlbTsgfVxuXG4uYXZhaWxhYmlsaXR5IHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgZm9udC1zaXplOiAxM3B4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG5cbi5hdmFpbGFiaWxpdHkgLmxhYmVsIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4uYXZhaWxhYmlsaXR5LmluLXN0b2NrIHtcbiAgY29sb3I6ICMxMUI0MDA7IH1cblxuLmF2YWlsYWJpbGl0eS5hdmFpbGFibGUtc29vbixcbi5hdmFpbGFiaWxpdHkub3V0LW9mLXN0b2NrIHtcbiAgY29sb3I6ICNERjI4MEE7IH1cblxuLmF2YWlsYWJpbGl0eS1vbmx5IHtcbiAgY29sb3I6ICNERjI4MEE7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7IH1cblxuLmctcmVjYXB0Y2hhIHtcbiAgZmxvYXQ6IHJpZ2h0OyB9XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICpcbiAqIFBhZ2UgVGl0bGVzXG4gKi9cbi5wYWdlLXRpdGxlIGgxLFxuLnBhZ2UtdGl0bGUgLmgxLFxuLnBhZ2UtdGl0bGUgaDIsXG4ucGFnZS10aXRsZSAuaDIsXG4ucHJvZHVjdC1uYW1lIGgxLFxuLnByb2R1Y3QtbmFtZSAuaDEge1xuICBmb250LXNpemU6IDI0cHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGNvbG9yOiAjMDAzYjVmO1xuICBwYWRkaW5nLWJvdHRvbTogM3B4O1xuICBtYXJnaW4tYm90dG9tOiAxNXB4OyB9XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICpcbiAqIEJsb2NrIE1vZHVsZVxuICovXG4uYmxvY2ssXG4uY29sLWxlZnQtZmlyc3Qge1xuICBtYXJnaW4tYm90dG9tOiAyMHB4OyB9XG5cbi5jb2wtbGVmdC1maXJzdCAuYmxvY2s6bGFzdC1vZi10eXBlIHtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4uYmxvY2stdGl0bGUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmc6IDEwcHggMCAwO1xuICBtYXJnaW4tYm90dG9tOiA1cHg7IH1cbiAgLmJsb2NrLXRpdGxlIGgyLFxuICAuYmxvY2stdGl0bGUgaDMsXG4gIC5ibG9jay10aXRsZSBzdHJvbmcge1xuICAgIG1hcmdpbjogMDtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgIGNvbG9yOiAjMDAzYjVmO1xuICAgIGZvbnQtZmFtaWx5OiBcIlVidW50dVRpdGxpbmctQm9sZFwiLCBcIkhlbHZldGljYSBOZXVlXCIsIFZlcmRhbmEsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBsaW5lLWhlaWdodDogMS40O1xuICAgIGNvbG9yOiAjMDAzYjVmO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBmb250LXdlaWdodDogNjAwOyB9XG4gIC5ibG9jay10aXRsZSBzbWFsbCB7XG4gICAgZm9udC1zaXplOiAxMDAlO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgY29sb3I6ICM1YjViNWE7IH1cblxuaW1nLmltYWdlLWljb24ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG1hcmdpbi1yaWdodDogNXB4OyB9XG5cbmJvZHk6bm90KC5jdXN0b21lci1hY2NvdW50KSAuYmxvY2s6Zmlyc3QtY2hpbGQgLmJsb2NrLXRpdGxlIHtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbiAgcGFkZGluZy10b3A6IDA7IH1cblxuLmJsb2NrLXN1YnRpdGxlIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIG1hcmdpbi1ib3R0b206IDdweDsgfVxuXG4uYmxvY2stY29udGVudCB7XG4gIG1hcmdpbi10b3A6IDVweDsgfVxuXG4uYmxvY2stY29udGVudC51bnBhZCB7XG4gIHBhZGRpbmc6IDA7IH1cblxuLmJsb2NrLWNvbnRlbnQgbGkuaXRlbSB7XG4gIG1hcmdpbjogMCAwIDEwcHggOXB4OyB9XG5cbi5ibG9jay1jb250ZW50IGxpLml0ZW06bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDA7IH1cblxuLmJsb2NrIC5hY3Rpb25zIHtcbiAgbWFyZ2luOiAxMHB4IDAgMDsgfVxuICAuYmxvY2sgLmFjdGlvbnM6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIC5ibG9jayAuYWN0aW9ucyBhIHtcbiAgICBmbG9hdDogbGVmdDsgfVxuICAuYmxvY2sgLmFjdGlvbnMgLmJ1dHRvbiB7XG4gICAgZmxvYXQ6IHJpZ2h0OyB9XG5cbi5jb2wtbGVmdCAuYmxvY2sgLmFjdGlvbnMgLmJ1dHRvbiB+IGEsXG4uY29sLXJpZ2h0IC5ibG9jayAuYWN0aW9ucyAuYnV0dG9uIH4gYSB7XG4gIGxpbmUtaGVpZ2h0OiAzM3B4O1xuICBtYXJnaW4tcmlnaHQ6IDVweDsgfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc3MHB4KSB7XG4gIC5zaWRlYmFyIC5ibG9jazpub3QoLmJsb2NrLWxheWVyZWQtbmF2KSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAgIC5zaWRlYmFyIC5ibG9jazpub3QoLmJsb2NrLWxheWVyZWQtbmF2KSAuYmxvY2stdGl0bGUgPiBzdHJvbmcge1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICAgIGNvbG9yOiAjMDAzYjVmO1xuICAgICAgZm9udC1mYW1pbHk6IFwiVWJ1bnR1VGl0bGluZy1Cb2xkXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgVmVyZGFuYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAgICAgLW8tdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwcHg7XG4gICAgICBwYWRkaW5nOiA3cHggMTBweCA3cHggMjRweDtcbiAgICAgIGJvcmRlci13aWR0aDogMXB4O1xuICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgIGJvcmRlci1jb2xvcjogI0NDQ0NDQztcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNGNEY0RjQ7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgYm9yZGVyLWJvdHRvbTogMDsgfVxuICAgICAgLnNpZGViYXIgLmJsb2NrOm5vdCguYmxvY2stbGF5ZXJlZC1uYXYpIC5ibG9jay10aXRsZSA+IHN0cm9uZzphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHdpZHRoOiAwO1xuICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBib3JkZXItdG9wOiA0cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDRweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCAjMWY4NmJkO1xuICAgICAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gICAgICAgIGxlZnQ6IDEwcHg7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBtYXJnaW4tdG9wOiAtM3B4OyB9XG4gICAgICAuc2lkZWJhciAuYmxvY2s6bm90KC5ibG9jay1sYXllcmVkLW5hdikgLmJsb2NrLXRpdGxlID4gc3Ryb25nOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogc2hhZGUoI0Y0RjRGNCwgMyUpOyB9XG4gICAgLnNpZGViYXIgLmJsb2NrOm5vdCguYmxvY2stbGF5ZXJlZC1uYXYpIC5ibG9jay10aXRsZS5hY3RpdmUgPiBzdHJvbmcge1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICAgIGNvbG9yOiAjMDAzYjVmO1xuICAgICAgZm9udC1mYW1pbHk6IFwiVWJ1bnR1VGl0bGluZy1Cb2xkXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgVmVyZGFuYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAgICAgLW8tdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwcHg7XG4gICAgICBwYWRkaW5nOiA3cHggMTBweCA3cHggMjRweDtcbiAgICAgIGJvcmRlci13aWR0aDogMXB4O1xuICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgIGJvcmRlci1jb2xvcjogI0NDQ0NDQztcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNGNEY0RjQ7IH1cbiAgICAgIC5zaWRlYmFyIC5ibG9jazpub3QoLmJsb2NrLWxheWVyZWQtbmF2KSAuYmxvY2stdGl0bGUuYWN0aXZlID4gc3Ryb25nOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGJvcmRlci1yaWdodDogNHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXItbGVmdDogNHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXItdG9wOiA0cHggc29saWQgIzFmODZiZDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgICAgbGVmdDogMTBweDtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIG1hcmdpbi10b3A6IC0zcHg7IH1cbiAgICAgIC5zaWRlYmFyIC5ibG9jazpub3QoLmJsb2NrLWxheWVyZWQtbmF2KSAuYmxvY2stdGl0bGUuYWN0aXZlID4gc3Ryb25nOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogc2hhZGUoI0Y0RjRGNCwgMyUpOyB9IH1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxuICogU2Vjb25kYXJ5IE5hdmlnYXRpb25cbiAqL1xuLmJsb2NrLWFjY291bnQgLmJsb2NrLXRpdGxlLFxuLmJsb2NrLWNtcy1tZW51IC5ibG9jay10aXRsZSB7XG4gIHBhZGRpbmctdG9wOiAwO1xuICBib3JkZXItdG9wOiBub25lOyB9XG4gIC5ibG9jay1hY2NvdW50IC5ibG9jay10aXRsZSBzdHJvbmcsXG4gIC5ibG9jay1jbXMtbWVudSAuYmxvY2stdGl0bGUgc3Ryb25nIHtcbiAgICBmb250LWZhbWlseTogXCJVYnVudHVUaXRsaW5nLUJvbGRcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBWZXJkYW5hLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICBjb2xvcjogIzAwM2I1ZjsgfVxuXG4uYmxvY2stYWNjb3VudCBsaSxcbi5ibG9jay1jbXMtbWVudSBsaSB7XG4gIG1hcmdpbjogN3B4IDA7IH1cbiAgLmJsb2NrLWFjY291bnQgbGkgc3Ryb25nLFxuICAuYmxvY2stY21zLW1lbnUgbGkgc3Ryb25nIHtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGNvbG9yOiAjMWY4NmJkOyB9XG4gIC5ibG9jay1hY2NvdW50IGxpIGEsXG4gIC5ibG9jay1jbXMtbWVudSBsaSBhIHtcbiAgICBjb2xvcjogIzAwM2I1ZjsgfVxuICAgIC5ibG9jay1hY2NvdW50IGxpIGE6aG92ZXIsXG4gICAgLmJsb2NrLWNtcy1tZW51IGxpIGE6aG92ZXIge1xuICAgICAgY29sb3I6ICMxZjg2YmQ7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogQnV0dG9uc1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qIFNlY29uZGFyeSBCdXR0b25zICovXG4uY2FydCAuYnV0dG9ucy1zZXQgLmJ1dHRvbixcbi5jYXJ0LXRhYmxlIC5idXR0b24sXG4uc2lkZWJhciAuYWN0aW9ucyAuYnV0dG9uLFxuLmJ1dHRvbi5idXR0b24tc2Vjb25kYXJ5IHtcbiAgYmFja2dyb3VuZDogI0RERERERDtcbiAgY29sb3I6ICMwMDNiNWY7XG4gIHBhZGRpbmc6IDdweCAxNXB4OyB9XG4gIC5jYXJ0IC5idXR0b25zLXNldCAuYnV0dG9uOmhvdmVyLFxuICAuY2FydC10YWJsZSAuYnV0dG9uOmhvdmVyLFxuICAuc2lkZWJhciAuYWN0aW9ucyAuYnV0dG9uOmhvdmVyLFxuICAuYnV0dG9uLmJ1dHRvbi1zZWNvbmRhcnk6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICNkMGQwZDA7XG4gICAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIC5jYXJ0IC5idXR0b25zLXNldCAuYnV0dG9uOmFjdGl2ZSxcbiAgLmNhcnQtdGFibGUgLmJ1dHRvbjphY3RpdmUsXG4gIC5zaWRlYmFyIC5hY3Rpb25zIC5idXR0b246YWN0aXZlLFxuICAuYnV0dG9uLmJ1dHRvbi1zZWNvbmRhcnk6YWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kOiAjYzRjNGM0O1xuICAgIGNvbG9yOiAjMDAzYjVmOyB9XG4gIC5jYXJ0IC5idXR0b25zLXNldCAuYnV0dG9uOmZvY3VzLFxuICAuY2FydC10YWJsZSAuYnV0dG9uOmZvY3VzLFxuICAuc2lkZWJhciAuYWN0aW9ucyAuYnV0dG9uOmZvY3VzLFxuICAuYnV0dG9uLmJ1dHRvbi1zZWNvbmRhcnk6Zm9jdXMge1xuICAgIGNvbG9yOiAjMDAzYjVmO1xuICAgIGJhY2tncm91bmQ6ICNjNGM0YzQ7XG4gICAgb3V0bGluZTogbm9uZTsgfVxuXG4uc2lkZWJhciAuYWN0aW9ucyBidXR0b24uYnV0dG9uIHtcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDsgfVxuXG4vKiBQcmltYXJ5IEJ1dHRvbnMgKi9cbi5idXR0b24sXG5idXR0b24sXG5bdHlwZT1zdWJtaXRdLFxuLmNhcnQtdGFibGUgLnByb2R1Y3QtY2FydC1hY3Rpb25zIC5idXR0b24sXG4jY28tc2hpcHBpbmctbWV0aG9kLWZvcm0gLmJ1dHRvbnMtc2V0IC5idXR0b24sXG4uZm9vdGVyIC5idXR0b24ge1xuICBiYWNrZ3JvdW5kOiAjMWY4NmJkO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgcGFkZGluZzogOXB4IDI0cHggOHB4IDI0cHg7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgYm9yZGVyOiAwO1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LWZhbWlseTogXCJVYnVudHVUaXRsaW5nLUJvbGRcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBWZXJkYW5hLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBtaW4td2lkdGg6IDIwMHB4OyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAwcHgpIHtcbiAgICAuYnV0dG9uLFxuICAgIGJ1dHRvbixcbiAgICBbdHlwZT1zdWJtaXRdLFxuICAgIC5jYXJ0LXRhYmxlIC5wcm9kdWN0LWNhcnQtYWN0aW9ucyAuYnV0dG9uLFxuICAgICNjby1zaGlwcGluZy1tZXRob2QtZm9ybSAuYnV0dG9ucy1zZXQgLmJ1dHRvbixcbiAgICAuZm9vdGVyIC5idXR0b24ge1xuICAgICAgcGFkZGluZzogOHB4IDI0cHggNnB4IDI0cHg7IH0gfVxuICAuYnV0dG9uOmhvdmVyLFxuICBidXR0b246aG92ZXIsXG4gIFt0eXBlPXN1Ym1pdF06aG92ZXIsXG4gIC5jYXJ0LXRhYmxlIC5wcm9kdWN0LWNhcnQtYWN0aW9ucyAuYnV0dG9uOmhvdmVyLFxuICAjY28tc2hpcHBpbmctbWV0aG9kLWZvcm0gLmJ1dHRvbnMtc2V0IC5idXR0b246aG92ZXIsXG4gIC5mb290ZXIgLmJ1dHRvbjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogIzAwM2I1ZjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgLmJ1dHRvbjphY3RpdmUsXG4gIGJ1dHRvbjphY3RpdmUsXG4gIFt0eXBlPXN1Ym1pdF06YWN0aXZlLFxuICAuY2FydC10YWJsZSAucHJvZHVjdC1jYXJ0LWFjdGlvbnMgLmJ1dHRvbjphY3RpdmUsXG4gICNjby1zaGlwcGluZy1tZXRob2QtZm9ybSAuYnV0dG9ucy1zZXQgLmJ1dHRvbjphY3RpdmUsXG4gIC5mb290ZXIgLmJ1dHRvbjphY3RpdmUge1xuICAgIGJhY2tncm91bmQ6ICMxODY3OTE7XG4gICAgY29sb3I6ICNGRkZGRkY7IH1cbiAgLmJ1dHRvbjpmb2N1cyxcbiAgYnV0dG9uOmZvY3VzLFxuICBbdHlwZT1zdWJtaXRdOmZvY3VzLFxuICAuY2FydC10YWJsZSAucHJvZHVjdC1jYXJ0LWFjdGlvbnMgLmJ1dHRvbjpmb2N1cyxcbiAgI2NvLXNoaXBwaW5nLW1ldGhvZC1mb3JtIC5idXR0b25zLXNldCAuYnV0dG9uOmZvY3VzLFxuICAuZm9vdGVyIC5idXR0b246Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMxODY3OTE7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBjb2xvcjogI0ZGRkZGRjsgfVxuICAuYnV0dG9uLm9wZW4tbGlnaHRib3gsXG4gIGJ1dHRvbi5vcGVuLWxpZ2h0Ym94LFxuICBbdHlwZT1zdWJtaXRdLm9wZW4tbGlnaHRib3gsXG4gIC5jYXJ0LXRhYmxlIC5wcm9kdWN0LWNhcnQtYWN0aW9ucyAuYnV0dG9uLm9wZW4tbGlnaHRib3gsXG4gICNjby1zaGlwcGluZy1tZXRob2QtZm9ybSAuYnV0dG9ucy1zZXQgLmJ1dHRvbi5vcGVuLWxpZ2h0Ym94LFxuICAuZm9vdGVyIC5idXR0b24ub3Blbi1saWdodGJveCB7XG4gICAgYmFja2dyb3VuZDogIzlkOWQ5ZCAhaW1wb3J0YW50OyB9XG4gICAgLmJ1dHRvbi5vcGVuLWxpZ2h0Ym94OmhvdmVywqAsXG4gICAgYnV0dG9uLm9wZW4tbGlnaHRib3g6aG92ZXLCoCxcbiAgICBbdHlwZT1zdWJtaXRdLm9wZW4tbGlnaHRib3g6aG92ZXLCoCxcbiAgICAuY2FydC10YWJsZSAucHJvZHVjdC1jYXJ0LWFjdGlvbnMgLmJ1dHRvbi5vcGVuLWxpZ2h0Ym94OmhvdmVywqAsXG4gICAgI2NvLXNoaXBwaW5nLW1ldGhvZC1mb3JtIC5idXR0b25zLXNldCAuYnV0dG9uLm9wZW4tbGlnaHRib3g6aG92ZXLCoCxcbiAgICAuZm9vdGVyIC5idXR0b24ub3Blbi1saWdodGJveDpob3ZlcsKgIHtcbiAgICAgIGJhY2tncm91bmQ6ICM5MDkwOTA7IH1cbiAgLmJ1dHRvbi5zZWNvbmRhcnksIC5idXR0b24ub3V0bGluZSxcbiAgYnV0dG9uLnNlY29uZGFyeSxcbiAgYnV0dG9uLm91dGxpbmUsXG4gIFt0eXBlPXN1Ym1pdF0uc2Vjb25kYXJ5LFxuICBbdHlwZT1zdWJtaXRdLm91dGxpbmUsXG4gIC5jYXJ0LXRhYmxlIC5wcm9kdWN0LWNhcnQtYWN0aW9ucyAuYnV0dG9uLnNlY29uZGFyeSxcbiAgLmNhcnQtdGFibGUgLnByb2R1Y3QtY2FydC1hY3Rpb25zIC5idXR0b24ub3V0bGluZSxcbiAgI2NvLXNoaXBwaW5nLW1ldGhvZC1mb3JtIC5idXR0b25zLXNldCAuYnV0dG9uLnNlY29uZGFyeSxcbiAgI2NvLXNoaXBwaW5nLW1ldGhvZC1mb3JtIC5idXR0b25zLXNldCAuYnV0dG9uLm91dGxpbmUsXG4gIC5mb290ZXIgLmJ1dHRvbi5zZWNvbmRhcnksXG4gIC5mb290ZXIgLmJ1dHRvbi5vdXRsaW5lIHtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICMwMDNiNWY7XG4gICAgY29sb3I6ICMwMDNiNWY7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIHBhZGRpbmc6IDZweCAyNHB4IDVweCAyNHB4OyB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MDBweCkge1xuICAgICAgLmJ1dHRvbi5zZWNvbmRhcnksIC5idXR0b24ub3V0bGluZSxcbiAgICAgIGJ1dHRvbi5zZWNvbmRhcnksXG4gICAgICBidXR0b24ub3V0bGluZSxcbiAgICAgIFt0eXBlPXN1Ym1pdF0uc2Vjb25kYXJ5LFxuICAgICAgW3R5cGU9c3VibWl0XS5vdXRsaW5lLFxuICAgICAgLmNhcnQtdGFibGUgLnByb2R1Y3QtY2FydC1hY3Rpb25zIC5idXR0b24uc2Vjb25kYXJ5LFxuICAgICAgLmNhcnQtdGFibGUgLnByb2R1Y3QtY2FydC1hY3Rpb25zIC5idXR0b24ub3V0bGluZSxcbiAgICAgICNjby1zaGlwcGluZy1tZXRob2QtZm9ybSAuYnV0dG9ucy1zZXQgLmJ1dHRvbi5zZWNvbmRhcnksXG4gICAgICAjY28tc2hpcHBpbmctbWV0aG9kLWZvcm0gLmJ1dHRvbnMtc2V0IC5idXR0b24ub3V0bGluZSxcbiAgICAgIC5mb290ZXIgLmJ1dHRvbi5zZWNvbmRhcnksXG4gICAgICAuZm9vdGVyIC5idXR0b24ub3V0bGluZSB7XG4gICAgICAgIHBhZGRpbmc6IDZweCAyNHB4IDRweCAyNHB4OyB9IH1cbiAgICAuYnV0dG9uLnNlY29uZGFyeTpob3ZlciwgLmJ1dHRvbi5vdXRsaW5lOmhvdmVyLFxuICAgIGJ1dHRvbi5zZWNvbmRhcnk6aG92ZXIsXG4gICAgYnV0dG9uLm91dGxpbmU6aG92ZXIsXG4gICAgW3R5cGU9c3VibWl0XS5zZWNvbmRhcnk6aG92ZXIsXG4gICAgW3R5cGU9c3VibWl0XS5vdXRsaW5lOmhvdmVyLFxuICAgIC5jYXJ0LXRhYmxlIC5wcm9kdWN0LWNhcnQtYWN0aW9ucyAuYnV0dG9uLnNlY29uZGFyeTpob3ZlcixcbiAgICAuY2FydC10YWJsZSAucHJvZHVjdC1jYXJ0LWFjdGlvbnMgLmJ1dHRvbi5vdXRsaW5lOmhvdmVyLFxuICAgICNjby1zaGlwcGluZy1tZXRob2QtZm9ybSAuYnV0dG9ucy1zZXQgLmJ1dHRvbi5zZWNvbmRhcnk6aG92ZXIsXG4gICAgI2NvLXNoaXBwaW5nLW1ldGhvZC1mb3JtIC5idXR0b25zLXNldCAuYnV0dG9uLm91dGxpbmU6aG92ZXIsXG4gICAgLmZvb3RlciAuYnV0dG9uLnNlY29uZGFyeTpob3ZlcixcbiAgICAuZm9vdGVyIC5idXR0b24ub3V0bGluZTpob3ZlciB7XG4gICAgICBjb2xvcjogIzAwM2I1ZjsgfVxuICAuYnV0dG9uLnNlYXJjaC1idXR0b24sXG4gIGJ1dHRvbi5zZWFyY2gtYnV0dG9uLFxuICBbdHlwZT1zdWJtaXRdLnNlYXJjaC1idXR0b24sXG4gIC5jYXJ0LXRhYmxlIC5wcm9kdWN0LWNhcnQtYWN0aW9ucyAuYnV0dG9uLnNlYXJjaC1idXR0b24sXG4gICNjby1zaGlwcGluZy1tZXRob2QtZm9ybSAuYnV0dG9ucy1zZXQgLmJ1dHRvbi5zZWFyY2gtYnV0dG9uLFxuICAuZm9vdGVyIC5idXR0b24uc2VhcmNoLWJ1dHRvbiB7XG4gICAgbWluLXdpZHRoOiBhdXRvOyB9XG5cbmEuYnV0dG9uIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG5cbmEuYnV0dG9uOmhvdmVyIHtcbiAgY29sb3I6ICNGRkZGRkY7IH1cblxuLyogRGlzYWJsZWQgLSBjbGFzcyBmb3IgYW5jaG9yLCBzdGF0ZSBmb3IgZm9ybSBlbGVtZW50cyAqL1xuLmJ1dHRvbi5kaXNhYmxlZCxcbi5idXR0b246ZGlzYWJsZWQge1xuICBiYWNrZ3JvdW5kOiAjQzhDOEM4O1xuICBvcGFjaXR5OiAwLjY7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7IH1cblxuLmJ1dHRvbiBpbWcsIGEuYnV0dG9uIGltZyB7XG4gIHdpZHRoOiAxOHB4O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG1hcmdpbi1yaWdodDogOHB4O1xuICBtYXJnaW4tdG9wOiAtMnB4OyB9XG5cbi5idXR0b24yIHtcbiAgYm9yZGVyOiAwO1xuICBwYWRkaW5nOiAwIDVweDtcbiAgbWFyZ2luOiAwO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG5cbi5idXR0b24yOmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTsgfVxuXG4uYnV0dG9uMiBzcGFuLFxuLmJ1dHRvbjIgc3BhbiBzcGFuIHtcbiAgbGluZS1oZWlnaHQ6IDMwcHg7XG4gIGhlaWdodDogMzBweDtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgY29sb3I6ICMxZjg2YmQ7XG4gIGZvbnQtZmFtaWx5OiBcIlVidW50dVRpdGxpbmctQm9sZFwiLCBcIkhlbHZldGljYSBOZXVlXCIsIFZlcmRhbmEsIEFyaWFsLCBzYW5zLXNlcmlmOyB9XG4gIC5idXR0b24yIHNwYW46aG92ZXIsXG4gIC5idXR0b24yIHNwYW4gc3Bhbjpob3ZlciB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGNvbG9yOiAjMTQ1NzdiOyB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgLmNvbDItc2V0IC5idXR0b25zLXNldCAuYnV0dG9uLFxuICAuY29sMi1zZXQgLmJ1dHRvbnMtc2V0IC5idXR0b24yIHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuICAuY29sMi1zZXQgLmJ1dHRvbnMtc2V0IC5iYWNrLWxpbmsge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmNvbDItc2V0IC5idXR0b25zLXNldCAucmVxdWlyZWQge1xuICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ3OXB4KSB7XG4gIC5idXR0b25zLXNldCAuYnV0dG9uIHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogN3B4OyB9XG4gIC5idXR0b25zLXNldCAuYmFjay1saW5rIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5idXR0b25zLXNldCAucmVxdWlyZWQge1xuICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXG4gKiBQYXlwYWwgQnV0dG9uXG4gKi9cbi5wYXlwYWwtbG9nby5wYXlwYWwtYWZ0ZXIge1xuICBmbG9hdDogbGVmdDsgfVxuXG4ucGF5cGFsLWFmdGVyIC5wYXlwYWwtb3Ige1xuICBmbG9hdDogbGVmdDsgfVxuXG4ucGF5cGFsLW9yIHtcbiAgbGluZS1oZWlnaHQ6IDM0cHg7XG4gIG1hcmdpbjogMHB4IDEwcHggNXB4OyB9XG5cbi5wYXlwYWwtYWZ0ZXIgLnBheXBhbC1idXR0b24ge1xuICBmbG9hdDogbGVmdDsgfVxuXG4ucGF5cGFsLWJ1dHRvbiB7XG4gIGxpbmUtaGVpZ2h0OiAwcHg7IH1cblxuLnBheXBhbC1idXR0b24gaW1nIHtcbiAgZGlzcGxheTogaW5saW5lOyB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzQwcHgpIHtcbiAgLnBheXBhbC1vciB7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7IH1cbiAgLnBheXBhbC1sb2dvLFxuICAucGF5cGFsLW9yLFxuICAucGF5cGFsLWJ1dHRvbiB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBmbG9hdDogbm9uZTsgfSB9XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICpcbiAqIEJ1dHRvbiBTZXRzXG4gKi9cbi5idXR0b25zLXNldCB7XG4gIGNsZWFyOiBib3RoO1xuICBtYXJnaW46IDEwcHggMCAwO1xuICBwYWRkaW5nLXRvcDogMTBweDtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbiAgLmJ1dHRvbnMtc2V0IHAucmVxdWlyZWQge1xuICAgIG1hcmdpbjogMDtcbiAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICBsaW5lLWhlaWdodDogMzNweDtcbiAgICBmbG9hdDogcmlnaHQ7IH1cbiAgLmJ1dHRvbnMtc2V0IC5iYWNrLWxpbmsge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbjogMDtcbiAgICBsaW5lLWhlaWdodDogMzNweDsgfVxuICAuYnV0dG9ucy1zZXQgYTpub3QoLmJ1dHRvbikge1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwYWRkaW5nOiA1cHggMDsgfVxuICAuYnV0dG9ucy1zZXQgYnV0dG9uLmJ1dHRvbiB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gICAgbWluLXdpZHRoOiAxNDBweDsgfVxuICAuYnV0dG9ucy1zZXQ6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGNsZWFyOiBib3RoOyB9XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICpcbiAqIEljb25zXG4gKi9cbi5pY29uLXNwcml0ZSwgLmJ0bi1yZW1vdmUyLCAuc29ydGVyID4gLnNvcnQtYnkgLnNvcnQtYnktc3dpdGNoZXIsIC5zb3J0ZXIgPiAudmlldy1tb2RlIC5ncmlkLFxuLnNvcnRlciA+IC52aWV3LW1vZGUgLmxpc3QsIC5za2lwLW5hdiAuaWNvbiwgLnNraXAtYWNjb3VudCAuaWNvbiwgLnJldmlldy1zdW1tYXJ5LXRhYmxlIC5yYXRpbmctYm94IC5yYXRpbmctbnVtYmVyOmFmdGVyLCAucmF0aW5ncy10YWJsZSAucmF0aW5nLWJveCwgLnJhdGluZ3MtdGFibGUgLnJhdGluZy1ib3ggLnJhdGluZyB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChpbWFnZXMvaWNvbl9zcHJpdGUucG5nKTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgdGV4dC1pbmRlbnQ6IC05OTk5cHg7IH1cblxuQG1lZGlhICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLCAobWluLS1tb3otZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSwgKC1vLW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDQgLyAyKSwgKG1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLCAobWluLXJlc29sdXRpb246IDE5MmRwaSksIChtaW4tcmVzb2x1dGlvbjogMmRwcHgpIHtcbiAgLmljb24tc3ByaXRlLCAuYnRuLXJlbW92ZTIsIC5zb3J0ZXIgPiAuc29ydC1ieSAuc29ydC1ieS1zd2l0Y2hlciwgLnNvcnRlciA+IC52aWV3LW1vZGUgLmdyaWQsXG4gIC5zb3J0ZXIgPiAudmlldy1tb2RlIC5saXN0LCAuc2tpcC1uYXYgLmljb24sIC5za2lwLWFjY291bnQgLmljb24sIC5yZXZpZXctc3VtbWFyeS10YWJsZSAucmF0aW5nLWJveCAucmF0aW5nLW51bWJlcjphZnRlciwgLnJhdGluZ3MtdGFibGUgLnJhdGluZy1ib3gsIC5yYXRpbmdzLXRhYmxlIC5yYXRpbmctYm94IC5yYXRpbmcge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChpbWFnZXMvaWNvbl9zcHJpdGVAMngucG5nKTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDEwMHB4IDEwMDBweDsgfSB9XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICpcbiAqIEJyZWFkY3J1bWJzXG4gKi9cbi5icmVhZGNydW1icyB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIG1hcmdpbjogLTE1cHggMCAxNXB4OyB9XG5cbi5icmVhZGNydW1icyBsaSB7XG4gIGZsb2F0OiBsZWZ0O1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtZmFtaWx5OiBcIlVidW50dVRpdGxpbmctQm9sZFwiLCBcIkhlbHZldGljYSBOZXVlXCIsIFZlcmRhbmEsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG5cbi5icmVhZGNydW1icyBhIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIGNvbG9yOiAjMDAzYjVmOyB9XG5cbi5icmVhZGNydW1icyBhOmhvdmVyIHtcbiAgY29sb3I6ICMxZjg2YmQ7IH1cblxuLmJyZWFkY3J1bWJzIHN0cm9uZyB7XG4gIGNvbG9yOiAjMDAzYjVmO1xuICBmb250LXdlaWdodDogbm9ybWFsOyB9XG5cbi5icmVhZGNydW1icyBzcGFuIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHBhZGRpbmc6IDAgN3B4OyB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzcwcHgpIHtcbiAgLmJyZWFkY3J1bWJzIHtcbiAgICBkaXNwbGF5OiBub25lOyB9IH1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxuICogQnV0dG9uIC0gUmVtb3ZlIC8gUHJldmlvdXNcbiAqL1xuLmJ0bi1yZW1vdmUsXG4uYnRuLXByZXZpb3VzIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAyMHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjRURFREVEO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIC8qIEhpZGUgdGV4dCAqL1xuICBmb250OiAwLzAgYTtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG5cbi5idG4tcmVtb3ZlOmFmdGVyIHtcbiAgY29udGVudDogJ1gnO1xuICBjb2xvcjogIzFmODZiZDtcbiAgaGVpZ2h0OiAyMHB4O1xuICBsaW5lLWhlaWdodDogMjBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgZm9udC1mYW1pbHk6IEFyaWFsLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cblxuLmJ0bi1yZW1vdmU6aG92ZXI6YWZ0ZXIge1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG5cbi5idG4tcmVtb3ZlMiB7XG4gIGJhY2tncm91bmQ6ICNjNWM1YzU7XG4gIHdpZHRoOiAzM3B4O1xuICBoZWlnaHQ6IDMzcHg7XG4gIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChpbWFnZXMvaWNvbi1jYXJ0LXJlbW92ZS5zdmcpO1xuICBiYWNrZ3JvdW5kLXNpemU6IDlweDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBib3JkZXI6IG5vbmU7IH1cblxuLmJ0bi1wcmV2aW91czphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3JkZXItdG9wOiA0cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1ib3R0b206IDRweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJpZ2h0OiA0cHggc29saWQgIzFmODZiZDtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC0ycHg7XG4gIG1hcmdpbi10b3A6IC00cHg7IH1cblxuLmJ0bi1wcmV2aW91czpob3ZlcjphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3JkZXItdG9wOiA0cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1ib3R0b206IDRweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJpZ2h0OiA0cHggc29saWQgI0ZGRkZGRjtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7IH1cblxuLmJsb2NrLWxheWVyZWQtbmF2IC5jdXJyZW50bHkgLmJ0bi1yZW1vdmUsXG4uYmxvY2stbGF5ZXJlZC1uYXYgLmN1cnJlbnRseSAuYnRuLXByZXZpb3VzLFxuLm1pbmktcHJvZHVjdHMtbGlzdCAuYnRuLXJlbW92ZSxcbi5taW5pLXByb2R1Y3RzLWxpc3QgLmJ0bi1wcmV2aW91cyxcbiNjb21wYXJlLWl0ZW1zIC5idG4tcmVtb3ZlLFxuI2NvbXBhcmUtaXRlbXMgLmJ0bi1wcmV2aW91cyB7XG4gIGZsb2F0OiByaWdodDtcbiAgbWFyZ2luLWxlZnQ6IDZweDsgfVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXG4gKiBDaGVja291dCBBZ3JlZW1lbnRzXG4gKi9cbi5jaGVja291dC1hZ3JlZW1lbnRzIGxpIHtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDsgfVxuXG4uY2hlY2tvdXQtYWdyZWVtZW50cyAuYWdyZWVtZW50LWNvbnRlbnQge1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBtYXgtd2lkdGg6IDY3MHB4O1xuICBtYXgtaGVpZ2h0OiAxMjVweDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgcGFkZGluZzogMTBweDtcbiAgYm9yZGVyOiAxcHggc29saWQgI0NDQ0NDQztcbiAgYmFja2dyb3VuZDogI0Y0RjRGNDsgfVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXG4gKiBDVlYgU2VjdXJpdHkgQ29kZVxuICovXG4uY3Z2LXdoYXQtaXMtdGhpcyB7XG4gIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICBmb250LXNpemU6IDEzcHg7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4OyB9XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICpcbiAqIENvbnRhaW5lclxuICovXG4ubWFpbi1jb250YWluZXIsXG4uc3VwcG9ydC1jb250YWluZXIsXG4uaG9tZS1zbGlkZS13cmFwcGVyLFxuLnBhZ2UtaGVhZGVyLFxuLmhvbWUtc2xpZGVyLXNlYXJjaC1jb250YWluZXIsXG4ubGF0ZXN0LW5ld3MtY29udGFpbmVyLFxuLnByb2R1Y3RzLXRlYXNlci1jb250YWluZXIsXG4uZm9vdGVyLWNvbnRhaW5lcixcbi53b3JkcHJlc3MtbGF5b3V0LWZ1bGxzY3JlZW4gLnBhZ2UgLmZ1bGxzY3JlZW4tc2xpZGVyIC5zbGljay1zbGlkZSAuY29udGVudC13cmFwcGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXgtd2lkdGg6IDk2MHB4O1xuICBtYXJnaW46IDAgYXV0bztcbiAgcGFkZGluZzogMTVweDsgfVxuICAubWFpbi1jb250YWluZXI6YWZ0ZXIsXG4gIC5zdXBwb3J0LWNvbnRhaW5lcjphZnRlcixcbiAgLmhvbWUtc2xpZGUtd3JhcHBlcjphZnRlcixcbiAgLnBhZ2UtaGVhZGVyOmFmdGVyLFxuICAuaG9tZS1zbGlkZXItc2VhcmNoLWNvbnRhaW5lcjphZnRlcixcbiAgLmxhdGVzdC1uZXdzLWNvbnRhaW5lcjphZnRlcixcbiAgLnByb2R1Y3RzLXRlYXNlci1jb250YWluZXI6YWZ0ZXIsXG4gIC5mb290ZXItY29udGFpbmVyOmFmdGVyLFxuICAud29yZHByZXNzLWxheW91dC1mdWxsc2NyZWVuIC5wYWdlIC5mdWxsc2NyZWVuLXNsaWRlciAuc2xpY2stc2xpZGUgLmNvbnRlbnQtd3JhcHBlcjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgY2xlYXI6IGJvdGg7IH1cblxuLndvcmRwcmVzcy1sYXlvdXQtZnVsbHNjcmVlbiAuaGVhZGVyLXdyYXBwZXIge1xuICB3aWR0aDogMTAwJTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHotaW5kZXg6IDEwOyB9XG5cbi53b3JkcHJlc3MtbGF5b3V0LWZ1bGxzY3JlZW4gLmNvbC1tYWluIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGZsb2F0OiBub25lOyB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzcxcHgpIHtcbiAgLm1haW4tY29udGFpbmVyLFxuICAuc3VwcG9ydC1jb250YWluZXIsXG4gIC5wYWdlLWhlYWRlcixcbiAgLmhvbWUtc2xpZGUtd3JhcHBlcixcbiAgLmhvbWUtc2xpZGVyLXNlYXJjaC1jb250YWluZXIsXG4gIC5sYXRlc3QtbmV3cy1jb250YWluZXIsXG4gIC5wcm9kdWN0cy10ZWFzZXItY29udGFpbmVyLFxuICAuZm9vdGVyLWNvbnRhaW5lciB7XG4gICAgcGFkZGluZzogMzVweCAyNXB4OyB9XG4gIC5sYXRlc3QtbmV3cy1jb250YWluZXIge1xuICAgIHBhZGRpbmctYm90dG9tOiAwOyB9XG4gIC5ob21lLXNsaWRlLXdyYXBwZXIge1xuICAgIHBhZGRpbmc6IDI1cHg7XG4gICAgcGFkZGluZy10b3A6IDE1cHg7IH0gfVxuXG4uZm9vdGVyLWNvbnRhaW5lciB7XG4gIHBhZGRpbmctdG9wOiAwcHg7IH1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxuICogQ29sdW1uIExheW91dHNcbiAqL1xuLm1haW46YWZ0ZXIsXG4uY29sLXdyYXBwZXI6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgZGlzcGxheTogdGFibGU7XG4gIGNsZWFyOiBib3RoOyB9XG5cbi5jb2wtbGVmdCxcbi5jb2wtcmlnaHQsXG4uY29sLW1haW4ge1xuICBwYWRkaW5nOiAwIDE1cHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cblxuLmNvbC1sZWZ0IHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHdpZHRoOiAyNSU7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgLyogUmVtb3ZlIHRoZSAxNXB4IHBhZGRpbmcgKi9cbiAgY2xlYXI6IGxlZnQ7IH1cbiAgLmNvbC1sZWZ0IGltZyB7XG4gICAgbWF4LXdpZHRoOiAxMDAlOyB9XG5cbi5jb2wtcmlnaHQge1xuICBmbG9hdDogcmlnaHQ7XG4gIHdpZHRoOiAzMCU7XG4gIHBhZGRpbmctcmlnaHQ6IDA7XG4gIC8qIFJlbW92ZSB0aGUgMTVweCBwYWRkaW5nICovIH1cbiAgLmNvbC1yaWdodCBpbWcge1xuICAgIG1heC13aWR0aDogMTAwJTsgfVxuXG4uY29sLW1haW4ge1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IDcwJTsgfVxuXG4uY29sMS1sYXlvdXQgLmNvbC1tYWluIHtcbiAgZmxvYXQ6IG5vbmU7XG4gIHdpZHRoOiBhdXRvO1xuICBwYWRkaW5nOiAwO1xuICAvKiBSZW1vdmUgdGhlIDE1cHggcGFkZGluZyAqLyB9XG5cbi5jb2wyLWxlZnQtbGF5b3V0IC5jb2wtbWFpbiB7XG4gIGZsb2F0OiByaWdodDtcbiAgcGFkZGluZy1yaWdodDogMDtcbiAgLyogUmVtb3ZlIHRoZSAxNXB4IHBhZGRpbmcgKi8gfVxuXG4uY29sMi1yaWdodC1sYXlvdXQgLmNvbC1tYWluIHtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICAvKiBSZW1vdmUgdGhlIDE1cHggcGFkZGluZyAqLyB9XG5cbi5jb2wzLWxheW91dCAuY29sLXJpZ2h0IHtcbiAgd2lkdGg6IDIwLjgzMzMzJTsgfVxuXG4uY29sMy1sYXlvdXQgLmNvbC13cmFwcGVyIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHdpZHRoOiA3OS4xNjY2NyU7IH1cbiAgLmNvbDMtbGF5b3V0IC5jb2wtd3JhcHBlciAuY29sLW1haW4ge1xuICAgIGZsb2F0OiByaWdodDtcbiAgICB3aWR0aDogNzMuNjg0MjElOyB9XG4gIC5jb2wzLWxheW91dCAuY29sLXdyYXBwZXIgLmNvbC1sZWZ0IHtcbiAgICB3aWR0aDogMjYuMzE1NzklOyB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAwMHB4KSB7XG4gIC5jb2wzLWxheW91dCAuY29sLXJpZ2h0IHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBjbGVhcjogbGVmdDtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgcGFkZGluZy1yaWdodDogMTBweDtcbiAgICB3aWR0aDogMjUlOyB9XG4gIC5jb2wzLWxheW91dCAuY29sLXdyYXBwZXIge1xuICAgIGZsb2F0OiByaWdodDtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAgIC5jb2wzLWxheW91dCAuY29sLXdyYXBwZXIgLmNvbC1tYWluIHtcbiAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgIHdpZHRoOiA3NSU7IH1cbiAgICAuY29sMy1sYXlvdXQgLmNvbC13cmFwcGVyIC5jb2wtbGVmdCB7XG4gICAgICB3aWR0aDogMjUlOyB9IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NzBweCkge1xuICAuY29sLWxlZnQsXG4gIC5jb2wtcmlnaHQsXG4gIC5jb2wtbWFpbixcbiAgLmNvbDEtbGF5b3V0IC5jb2wtbGVmdCxcbiAgLmNvbDEtbGF5b3V0IC5jb2wtcmlnaHQsXG4gIC5jb2wxLWxheW91dCAuY29sLW1haW4sXG4gIC5jb2wyLWxlZnQtbGF5b3V0IC5jb2wtbGVmdCxcbiAgLmNvbDItbGVmdC1sYXlvdXQgLmNvbC1yaWdodCxcbiAgLmNvbDItbGVmdC1sYXlvdXQgLmNvbC1tYWluLFxuICAuY29sMi1yaWdodC1sYXlvdXQgLmNvbC1sZWZ0LFxuICAuY29sMi1yaWdodC1sYXlvdXQgLmNvbC1yaWdodCxcbiAgLmNvbDItcmlnaHQtbGF5b3V0IC5jb2wtbWFpbixcbiAgLmNvbDMtbGF5b3V0IC5jb2wtd3JhcHBlciAuY29sLWxlZnQsXG4gIC5jb2wzLWxheW91dCAuY29sLXJpZ2h0LFxuICAuY29sMy1sYXlvdXQgLmNvbC13cmFwcGVyIC5jb2wtbWFpbiB7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgIGZsb2F0OiBub25lO1xuICAgIHdpZHRoOiBhdXRvOyB9XG4gIC5jb2wzLWxheW91dCAuY29sLXdyYXBwZXIge1xuICAgIGZsb2F0OiBub25lO1xuICAgIHdpZHRoOiBhdXRvOyB9XG4gIC5jb2wtbWFpbiB7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgd2lkdGg6IGF1dG87IH1cbiAgLmNvbC1tYWluIC5jb2wtbGVmdCB7XG4gICAgcGFkZGluZzogMDtcbiAgICAvKiBPbiBwcm9kdWN0IGxpc3RpbmcgcGFnZXMsIHRoZSBsZWZ0IGNvbHVtbiBnZXRzIG1vdmVkIGluc2lkZSBjb2wtbWFpbiBvbiBzbWFsbCB2aWV3cG9ydHMgKi8gfSB9XG5cbi8qIENvbnRlbnQgQ29sdW1ucyAqL1xuLmNvbDItc2V0IHtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgLmNvbDItc2V0IC5jb2wtMSxcbiAgLmNvbDItc2V0IC5jb2wtMiB7XG4gICAgd2lkdGg6IDUwJTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHBhZGRpbmc6IDIwcHg7IH1cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc3MHB4KSB7XG4gICAgICAuY29sMi1zZXQgLmNvbC0xLFxuICAgICAgLmNvbDItc2V0IC5jb2wtMiB7XG4gICAgICAgIHBhZGRpbmc6IDEwcHg7IH0gfVxuICAuY29sMi1zZXQgLmNvbC0xIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7IH1cbiAgLmNvbDItc2V0IC5jb2wtMiB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAgIC5jb2wyLXNldCAuY29sLTEsXG4gICAgLmNvbDItc2V0IC5jb2wtMiB7XG4gICAgICBmbG9hdDogbm9uZTtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgIHBhZGRpbmctbGVmdDogMDsgfSB9XG4gIC5jb2wyLXNldCAubmFycm93IHtcbiAgICB3aWR0aDogMzMlOyB9XG4gIC5jb2wyLXNldCAud2lkZSB7XG4gICAgd2lkdGg6IDY1JTsgfVxuICAuY29sMi1zZXQ6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGNsZWFyOiBib3RoOyB9XG5cbmJvZHkgPiAud3JhcHBlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXG4gKiBUb3AgQ29udGFpbmVyXG4gKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzcxcHgpIHtcbiAgLnRvcC1jb250YWluZXIge1xuICAgIG1heC13aWR0aDogOTYwcHg7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgcGFkZGluZzogMCAzNXB4OyB9IH1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxuICogR2xvYmFsIFNpdGUgTm90aWNlXG4gKi9cbi5nbG9iYWwtc2l0ZS1ub3RpY2Uge1xuICBiYWNrZ3JvdW5kOiAjMWY4NmJkO1xuICBjb2xvcjogIzAwM2I1ZjtcbiAgZm9udC1zaXplOiAxNHB4OyB9XG4gIC5nbG9iYWwtc2l0ZS1ub3RpY2UgYSB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgY29sb3I6ICMwMDNiNWY7XG4gICAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIC5nbG9iYWwtc2l0ZS1ub3RpY2UgLm5vdGljZS1pbm5lciB7XG4gICAgcGFkZGluZzogMTVweDtcbiAgICBwYWRkaW5nLXRvcDogMTJweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICBtYXgtd2lkdGg6IDEzNjBweDtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87IH1cbiAgICAuZ2xvYmFsLXNpdGUtbm90aWNlIC5ub3RpY2UtaW5uZXIgaW1nIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgLmdsb2JhbC1zaXRlLW5vdGljZSBwIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICpcbiAqIFByb21vdGlvbmFsIE1lc3NhZ2UgQmFubmVyXG4gKi9cbi5wcm9tby1tc2cge1xuICBjb2xvcjogIzAwM2I1ZjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW46IDEwcHg7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtZmFtaWx5OiBcIlVidW50dVRpdGxpbmctQm9sZFwiLCBcIkhlbHZldGljYSBOZXVlXCIsIFZlcmRhbmEsIEFyaWFsLCBzYW5zLXNlcmlmOyB9XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICpcbiAqIEdyaWRcbiAqL1xuLmdyaWQ6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgZGlzcGxheTogdGFibGU7XG4gIGNsZWFyOiBib3RoOyB9XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICpcbiAqIE1lc3NhZ2VzXG4gKi9cbi5zdWNjZXNzIHtcbiAgY29sb3I6ICMxMUI0MDA7IH1cblxuLmVycm9yIHtcbiAgY29sb3I6ICNERjI4MEE7XG4gIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbi5ub3RpY2Uge1xuICBjb2xvcjogI0UyNjcwMztcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxuICogTWVzc2FnZXNcbiAqL1xuLm1lc3NhZ2VzIHtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDsgfVxuXG4ubWVzc2FnZXMgbGkgbGkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi1ib3R0b206IDVweDtcbiAgcGFkZGluZzogMTBweCAwO1xuICBmb250LXNpemU6IDE0cHg7IH1cblxuLm1lc3NhZ2VzIGxpIGxpOmJlZm9yZSB7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiAwO1xuICBtYXJnaW4tdG9wOiAtNnB4OyB9XG5cbi5tZXNzYWdlcyAuZXJyb3ItbXNnIGxpIHtcbiAgY29sb3I6ICNERjI4MEE7IH1cblxuLm1lc3NhZ2VzIC5ub3RpY2UtbXNnIGxpIHtcbiAgY29sb3I6ICNFMjY3MDM7IH1cblxuLm1lc3NhZ2VzIC5zdWNjZXNzLW1zZyBsaSB7XG4gIGNvbG9yOiAjMTFCNDAwOyB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTE1cHgpIHtcbiAgLm9yZGVyLWxpc3QtZ3JpZCAuY29sLTEge1xuICAgIHdpZHRoOiAzMCU7IH1cbiAgLm9yZGVyLWxpc3QtZ3JpZCAuY29sLTIge1xuICAgIHdpZHRoOiA1MCU7XG4gICAgcGFkZGluZy1yaWdodDogMjBweDsgfVxuICAub3JkZXItbGlzdC1ncmlkIC5jb2wtMyB7XG4gICAgY2xlYXI6IG5vbmU7XG4gICAgd2lkdGg6IDIwJTtcbiAgICBwYWRkaW5nLXRvcDogMDsgfSB9XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICpcbiAqIFBhZ2UgUG9wdXBcbiAqL1xuLnBhZ2UtcG9wdXAge1xuICBwYWRkaW5nOiAyMHB4O1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xuICBoZWlnaHQ6IGF1dG87IH1cblxuLnBhZ2UtcG9wdXAgaDEge1xuICBtYXJnaW46IDAgMCAwLjVlbTtcbiAgZm9udC1zaXplOiAzNnB4OyB9XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICpcbiAqIFBheW1lbnQgTWV0aG9kc1xuICovXG4ucGF5bWVudC1tZXRob2RzIHtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDsgfVxuXG4ucGF5bWVudC1tZXRob2RzIGR0IHtcbiAgcGFkZGluZzogNXB4IDA7IH1cblxuLnBheW1lbnQtbWV0aG9kcyBkZCB7XG4gIHBhZGRpbmctdG9wOiAxMHB4OyB9XG5cbi5wYXltZW50LW1ldGhvZHMgLmZvcm0tbGlzdCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogNXB4IDE1cHggMTVweDtcbiAgcGFkZGluZzogMTVweDtcbiAgYm9yZGVyOiAxcHggc29saWQgI0NDQ0NDQztcbiAgYmFja2dyb3VuZDogI0Y0RjRGNDsgfVxuXG4ucGF5bWVudC1tZXRob2RzIC5mb3JtLWxpc3Q6YmVmb3JlIHtcbiAgY29udGVudDogJyc7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJvcmRlci1yaWdodDogMTBweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWxlZnQ6IDEwcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1ib3R0b206IDEwcHggc29saWQgI0NDQ0NDQztcbiAgYm9yZGVyLXRvcDogbm9uZTtcbiAgdG9wOiAtMTFweDtcbiAgbGVmdDogMzBweDsgfVxuXG4ucGF5bWVudC1tZXRob2RzIC5mb3JtLWxpc3Q6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm9yZGVyLXJpZ2h0OiAxMHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItbGVmdDogMTBweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWJvdHRvbTogMTBweCBzb2xpZCAjRjRGNEY0O1xuICBib3JkZXItdG9wOiBub25lO1xuICB0b3A6IC0xMHB4O1xuICBsZWZ0OiAzMHB4OyB9XG5cbi5wYXltZW50LW1ldGhvZHMgLmZvcm0tbGlzdCBsaTpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXG4gKiBQbGVhc2UgV2FpdCAoTG9hZGluZyBJbmRpY2F0b3IpXG4gKi9cbi5wbGVhc2Utd2FpdCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gIG1hcmdpbi10b3A6IDVweDtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gIGhlaWdodDogMjRweDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgLyogUHJldmVudCB0aGUgbGluZWJyZWFrIGluIHRoZSBIVE1MIGZyb20gY2F1c2luZyBsYXlvdXQgaXNzdWVzICovIH1cbiAgLnBsZWFzZS13YWl0IGltZyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgd2lkdGg6IDI0cHg7IH1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxuICogUHJpY2UgQm94IC0gU3RhbmRhcmRcbiAqL1xuLnByaWNlLWJveCB7XG4gIG1hcmdpbjogN3B4IDA7XG4gIGZvbnQtZmFtaWx5OiBBcmlhbCwgc2Fucy1zZXJpZjsgfVxuXG4ucHJpY2UtYm94IHAge1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi5wcmljZS1ub3RpY2Uge1xuICBjb2xvcjogIzViNWI1YTsgfVxuXG4ucHJpY2UtYm94IC5wcmljZSB7XG4gIGNvbG9yOiAjMDAzYjVmO1xuICBmb250LXNpemU6IDIwcHg7IH1cblxuLnByaWNlLWJveCAucHJpY2UsXG4ucHJpY2Uge1xuICBmb250LWZhbWlseTogQXJpYWwsIHNhbnMtc2VyaWY7IH1cblxuLnByaWNlLWJveCAucHJpY2UtbGFiZWwge1xuICBjb2xvcjogIzViNWI1YTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgZm9udC1mYW1pbHk6IFwiVWJ1bnR1VGl0bGluZy1Cb2xkXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgVmVyZGFuYSwgQXJpYWwsIHNhbnMtc2VyaWY7IH1cblxuLnByaWNlLWJveCAubWluaW1hbC1wcmljZS1saW5rIHtcbiAgcGFkZGluZy1sZWZ0OiAxZW07XG4gIGNvbG9yOiAjMDAzYjVmO1xuICBkaXNwbGF5OiBibG9jaztcbiAgLyogV2Ugd2FudCB0aGlzIHRvIHNob3cgb24gaXRzIG93biBsaW5lLCBvdGhlcndpc2UgdGhlIGxheW91dCBsb29rcyBmdW5reSAqLyB9XG4gIC5wcmljZS1ib3ggLm1pbmltYWwtcHJpY2UtbGluayAubGFiZWwge1xuICAgIGNvbG9yOiAjNWI1YjVhOyB9XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICpcbiAqIFByaWNlIEJveCAtIFNwZWNpYWxcbiAqL1xuLnByaWNlLWJveCAub2xkLXByaWNlLFxuLnByaWNlLWJveCAuc3BlY2lhbC1wcmljZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuICAucHJpY2UtYm94IC5vbGQtcHJpY2UgLnByaWNlLWxhYmVsLFxuICAucHJpY2UtYm94IC5zcGVjaWFsLXByaWNlIC5wcmljZS1sYWJlbCB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAucHJpY2UtYm94IC5vbGQtcHJpY2UgLnByaWNlLFxuICAucHJpY2UtYm94IC5zcGVjaWFsLXByaWNlIC5wcmljZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG5cbi5wcmljZS1ib3ggLm9sZC1wcmljZSAucHJpY2Uge1xuICBjb2xvcjogIzViNWI1YTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7IH1cblxuLnByaWNlLWJveCAuc3BlY2lhbC1wcmljZSB7XG4gIGNvbG9yOiAjMDAzYjVmO1xuICBwYWRkaW5nLWxlZnQ6IDFlbTsgfVxuICAucHJpY2UtYm94IC5zcGVjaWFsLXByaWNlIC5wcmljZS1sYWJlbCB7XG4gICAgY29sb3I6ICNEODREM0M7IH1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxuICogUHJpY2UgQm94IC0gVGF4ZXNcbiAqL1xuLnByaWNlLWJveCAucHJpY2UtZXhjbHVkaW5nLXRheCxcbi5wcmljZS1ib3ggLnByaWNlLWluY2x1ZGluZy10YXgge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG5zcGFuLndlZWUge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXG4gKiBUaWVyIFByaWNlc1xuICovXG4ucHJvZHVjdC1wcmljaW5nLFxuLnRpZXItcHJpY2VzLFxuLnRpZXItcHJpY2VzLWdyb3VwZWQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDRweCA4cHg7XG4gIGJhY2tncm91bmQ6ICNGQkY0REU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNFMkQ0Qzc7XG4gIG1hcmdpbi10b3A6IDdweDsgfVxuICAucHJvZHVjdC1wcmljaW5nIGxpLFxuICAudGllci1wcmljZXMgbGksXG4gIC50aWVyLXByaWNlcy1ncm91cGVkIGxpIHtcbiAgICBmb250LXNpemU6IDEycHg7IH1cbiAgLnByb2R1Y3QtcHJpY2luZyAuYmVuZWZpdCxcbiAgLnRpZXItcHJpY2VzIC5iZW5lZml0LFxuICAudGllci1wcmljZXMtZ3JvdXBlZCAuYmVuZWZpdCB7XG4gICAgZm9udC1zdHlsZTogaXRhbGljOyB9XG4gIC5wcm9kdWN0LXByaWNpbmcgLnByaWNlLFxuICAudGllci1wcmljZXMgLnByaWNlLFxuICAudGllci1wcmljZXMtZ3JvdXBlZCAucHJpY2Uge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIEl0ZW0gT3B0aW9uc1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5pdGVtLW9wdGlvbnMge1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtZmFtaWx5OiBcIlVidW50dVRpdGxpbmctQm9sZFwiLCBcIkhlbHZldGljYSBOZXVlXCIsIFZlcmRhbmEsIEFyaWFsLCBzYW5zLXNlcmlmOyB9XG4gIC5pdGVtLW9wdGlvbnM6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIC5pdGVtLW9wdGlvbnMgZHQge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGNsZWFyOiBsZWZ0O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgcGFkZGluZy1yaWdodDogNXB4O1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsgfVxuICAgIC5pdGVtLW9wdGlvbnMgZHQ6YWZ0ZXIge1xuICAgICAgY29udGVudDogJzogJzsgfVxuICAuaXRlbS1vcHRpb25zIGRkIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICAgbWFyZ2luOiAwIDAgNnB4OyB9XG5cbi50cnVuY2F0ZWQsXG4udHJ1bmNhdGVkIGEuZG90cyB7XG4gIGN1cnNvcjogaGVscDsgfVxuXG4udHJ1bmNhdGVkIGEuZGV0YWlscyB7XG4gIGN1cnNvcjogaGVscDtcbiAgaGVpZ2h0OiAxNnB4O1xuICBsaW5lLWhlaWdodDogMTZweDsgfVxuICAudHJ1bmNhdGVkIGEuZGV0YWlsczpob3ZlciB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG5cbi50cnVuY2F0ZWQgLnRydW5jYXRlZF9mdWxsX3ZhbHVlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAzMDA7IH1cblxuLnRydW5jYXRlZCAudHJ1bmNhdGVkX2Z1bGxfdmFsdWUgLml0ZW0tb3B0aW9ucyB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMzAwO1xuICB3aWR0aDogMjAwcHg7XG4gIHBhZGRpbmc6IDhweDtcbiAgYm9yZGVyOiAxcHggc29saWQgIzFmODZiZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0Y2RjZGNjtcbiAgdG9wOiAyMXB4O1xuICBsZWZ0OiAtMTAwcHg7IH1cbiAgLnRydW5jYXRlZCAudHJ1bmNhdGVkX2Z1bGxfdmFsdWUgLml0ZW0tb3B0aW9uczphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBib3JkZXItcmlnaHQ6IDdweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItbGVmdDogN3B4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1ib3R0b206IDdweCBzb2xpZCAjMWY4NmJkO1xuICAgIGJvcmRlci10b3A6IG5vbmU7XG4gICAgbGVmdDogOTdweDtcbiAgICB0b3A6IC03cHg7IH1cblxuLnRydW5jYXRlZCAudHJ1bmNhdGVkX2Z1bGxfdmFsdWUgLml0ZW0tb3B0aW9ucyA+IHAge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbWFyZ2luLWJvdHRvbTogOHB4OyB9XG5cbi50cnVuY2F0ZWQgLnNob3cgLml0ZW0tb3B0aW9ucyB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDc5cHgpIHtcbiAgLnRydW5jYXRlZCB7XG4gICAgY3Vyc29yOiBpbmhlcml0OyB9XG4gICAgLnRydW5jYXRlZCBhLmRldGFpbHMge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC50cnVuY2F0ZWQgLnRydW5jYXRlZF9mdWxsX3ZhbHVlIC5pdGVtLW9wdGlvbnMge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgei1pbmRleDogMTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgICAgIC50cnVuY2F0ZWQgLnRydW5jYXRlZF9mdWxsX3ZhbHVlIC5pdGVtLW9wdGlvbnMgcCB7XG4gICAgICAgIGZsb2F0OiBub25lOyB9XG4gICAgICAudHJ1bmNhdGVkIC50cnVuY2F0ZWRfZnVsbF92YWx1ZSAuaXRlbS1vcHRpb25zOmFmdGVyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICpcbiAqIFByaW50ZXIgRnJpZW5kbHkgUGFnZVxuICovXG4ucGFnZS1wcmludCB7XG4gIHdpZHRoOiA2LjVpbjtcbiAgbWFyZ2luOiAyMHB4O1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGOyB9XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICpcbiAqIEFkZCB0byBsaW5rc1xuICovXG4uYWRkLXRvLWxpbmtzIHtcbiAgbWFyZ2luOiA3cHggMDsgfVxuICAuYWRkLXRvLWxpbmtzIGEge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwYWRkaW5nOiAwcHggM3B4IDNweDsgfVxuXG4uYWRkLXRvLWxpbmtzIC5zZXBhcmF0b3Ige1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICpcbiAqIFN0YW5kYXJkIEZvcm1hdHRlZCBUZXh0IEJsb2NrXG4gKi9cbi5zdGQgcCB7XG4gIG1hcmdpbjogMCAwIDEuNWVtOyB9XG5cbi5zdGQgb2wge1xuICBsaXN0LXN0eWxlOiBkZWNpbWFsIG91dHNpZGU7XG4gIG1hcmdpbi1ib3R0b206IDEuNWVtOyB9XG5cbi5zdGQgb2wgbGkge1xuICBtYXJnaW4tbGVmdDogMmVtOyB9XG5cbi5zdGQgdWwge1xuICBsaXN0LXN0eWxlOiBkaXNjIG91dHNpZGU7XG4gIG1hcmdpbi1ib3R0b206IDEuNWVtOyB9XG5cbi5zdGQgdWwgbGkge1xuICBtYXJnaW4tbGVmdDogMmVtOyB9XG5cbi5zdGQgLm5vdGUge1xuICBjb2xvcjogIzViNWI1YTtcbiAgZm9udC1zaXplOiAxM3B4OyB9XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICpcbiAqIFRhYnNcbiAqL1xuLnRhYnMge1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGOyB9XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICpcbiAqIFRvb2xiYXJcbiAqL1xuLnRvb2xiYXIge1xuICBtYXJnaW4tdG9wOiAxMHB4O1xuICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0NDQ0NDQztcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNDQ0NDQ0M7XG4gIGJhY2tncm91bmQ6ICNGNEY0RjQ7XG4gIHBhZGRpbmc6IDVweCAxMHB4IDBweCAxMHB4OyB9XG4gIC50b29sYmFyOmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBjbGVhcjogYm90aDsgfVxuXG4ucGFnZXItbm8tdG9vbGJhciB7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7IH1cblxuLnBhZ2VyLW5vLXRvb2xiYXIgfiAucGFnZXItbm8tdG9vbGJhciB7XG4gIG1hcmdpbi10b3A6IDEwcHg7IH1cblxuLnRvb2xiYXIsXG4ucGFnZXIge1xuICBmb250LWZhbWlseTogXCJVYnVudHVUaXRsaW5nLUJvbGRcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBWZXJkYW5hLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgY29sb3I6ICMwMDNiNWY7XG4gIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICBmb250LXNpemU6IDEycHg7IH1cblxuLnRvb2xiYXIgbGFiZWwsXG4ucGFnZXItbm8tdG9vbGJhciBsYWJlbCB7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cblxuLnNvcnRlciB7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW4tYm90dG9tOiA1cHg7IH1cbiAgLnNvcnRlciBsYWJlbCB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiA1cHg7IH1cbiAgICAuc29ydGVyIGxhYmVsOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICc6JzsgfVxuXG4uc29ydGVyID4gLnNvcnQtYnkge1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gIGhlaWdodDogMzBweDsgfVxuICAuc29ydGVyID4gLnNvcnQtYnkgLnNvcnQtYnktc3dpdGNoZXIge1xuICAgIHdpZHRoOiAzMHB4O1xuICAgIGhlaWdodDogMzBweDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cbiAgLnNvcnRlciA+IC5zb3J0LWJ5IC5zb3J0LWJ5LXN3aXRjaGVyLS1hc2Mge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDRweCAtNTQycHg7IH1cbiAgICAuc29ydGVyID4gLnNvcnQtYnkgLnNvcnQtYnktc3dpdGNoZXItLWFzYzpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDZweCAtNTQycHg7IH1cbiAgLnNvcnRlciA+IC5zb3J0LWJ5IC5zb3J0LWJ5LXN3aXRjaGVyLS1kZXNjIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA0cHggLTU2N3B4OyB9XG4gICAgLnNvcnRlciA+IC5zb3J0LWJ5IC5zb3J0LWJ5LXN3aXRjaGVyLS1kZXNjOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IC00NnB4IC01NjdweDsgfVxuXG4uc29ydGVyID4gLnZpZXctbW9kZSB7XG4gIGZsb2F0OiByaWdodDsgfVxuICAuc29ydGVyID4gLnZpZXctbW9kZSAuZ3JpZCxcbiAgLnNvcnRlciA+IC52aWV3LW1vZGUgLmxpc3Qge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAzMHB4O1xuICAgIGhlaWdodDogMzBweDsgfVxuICAuc29ydGVyID4gLnZpZXctbW9kZSAuZ3JpZCB7XG4gICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogOHB4IC00OTJweDsgfVxuICAuc29ydGVyID4gLnZpZXctbW9kZSBzdHJvbmcuZ3JpZCxcbiAgLnNvcnRlciA+IC52aWV3LW1vZGUgYS5ncmlkOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDJweCAtNDkycHg7IH1cbiAgLnNvcnRlciA+IC52aWV3LW1vZGUgLmxpc3Qge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDExcHggLTUxN3B4OyB9XG4gIC5zb3J0ZXIgPiAudmlldy1tb2RlIHN0cm9uZy5saXN0LFxuICAuc29ydGVyID4gLnZpZXctbW9kZSBhLmxpc3Q6aG92ZXIge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IC0zOXB4IC01MTdweDsgfVxuXG4ucGFnZXIge1xuICB3aWR0aDogMTAwJTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW4tdG9wOiAyMHB4OyB9XG4gIC5wYWdlciAuYW1vdW50IHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBmb250LWZhbWlseTogQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBtYXJnaW46IDAgMTVweCAwIDA7IH1cbiAgLnBhZ2VyIC5saW1pdGVyIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBoZWlnaHQ6IDMwcHg7XG4gICAgbGluZS1oZWlnaHQ6IDMwcHg7IH1cbiAgICAucGFnZXIgLmxpbWl0ZXIgPiBsYWJlbCB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiA1cHg7IH1cbiAgICAgIC5wYWdlciAubGltaXRlciA+IGxhYmVsOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJzonOyB9XG4gIC5wYWdlciAuYW1vdW50LFxuICAucGFnZXIgLmxpbWl0ZXIsXG4gIC5wYWdlciAucGFnZXMge1xuICAgIG1hcmdpbi1ib3R0b206IDVweDsgfVxuICAucGFnZXIgb2wge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuXG4ucGFnZXMge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB3aWR0aDogMTAwJTtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIC5wYWdlcyBzdHJvbmcge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cblxuLnBhZ2VzIGxpIHtcbiAgZmxvYXQ6IGxlZnQ7IH1cblxuLnBhZ2VzIGEsXG4ucGFnZXMgLmN1cnJlbnQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJvcmRlcjogMDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAzMHB4O1xuICBwYWRkaW5nOiAwO1xuICBjb2xvcjogIzAwM2I1ZjtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIGZvbnQtZmFtaWx5OiBBcmlhbCwgc2Fucy1zZXJpZjsgfVxuICAucGFnZXMgYS5uZXh0LCAucGFnZXMgYS5wcmV2aW91cyxcbiAgLnBhZ2VzIC5jdXJyZW50Lm5leHQsXG4gIC5wYWdlcyAuY3VycmVudC5wcmV2aW91cyB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuXG4ucGFnZXMgLmN1cnJlbnQge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgLnBhZ2VzIC5jdXJyZW50OmhvdmVyIHtcbiAgICBjb2xvcjogIzFmODZiZDsgfVxuXG4ucGFnZXMgLm5leHQsXG4ucGFnZXMgLnByZXZpb3VzIHtcbiAgZm9udDogMC8wIGE7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLnBhZ2VzIC5uZXh0OmhvdmVyLFxuICAucGFnZXMgLnByZXZpb3VzOmhvdmVyIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjMWY4NmJkOyB9XG5cbi5wYWdlcyAubmV4dDpiZWZvcmUge1xuICBjb250ZW50OiAnJztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm9yZGVyLXRvcDogNHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItYm90dG9tOiA0cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1sZWZ0OiA0cHggc29saWQgIzFmODZiZDtcbiAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICB0b3A6IDUwJTtcbiAgbWFyZ2luLXRvcDogLTNweDtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW4tbGVmdDogLTJweDsgfVxuXG4ucGFnZXMgLm5leHQ6aG92ZXI6YmVmb3JlIHtcbiAgY29udGVudDogJyc7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJvcmRlci10b3A6IDRweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWJvdHRvbTogNHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItbGVmdDogNHB4IHNvbGlkICMxNDU3N2I7XG4gIGJvcmRlci1yaWdodDogbm9uZTsgfVxuXG4ucGFnZXMgLnByZXZpb3VzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICcnO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3JkZXItdG9wOiA0cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1ib3R0b206IDRweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJpZ2h0OiA0cHggc29saWQgIzFmODZiZDtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gIHRvcDogNTAlO1xuICBtYXJnaW4tdG9wOiAtM3B4O1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMnB4OyB9XG5cbi5wYWdlcyAucHJldmlvdXM6aG92ZXI6YmVmb3JlIHtcbiAgY29udGVudDogJyc7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJvcmRlci10b3A6IDRweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWJvdHRvbTogNHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmlnaHQ6IDRweCBzb2xpZCAjMTQ1NzdiO1xuICBib3JkZXItbGVmdDogbm9uZTsgfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ3OXB4KSB7XG4gIC5wYWdlciAuYW1vdW50LS1oYXMtcGFnZXMge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLnBhZ2VzIHtcbiAgICBmbG9hdDogbGVmdDsgfVxuICAubGltaXRlciBsYWJlbCB7XG4gICAgZGlzcGxheTogbm9uZTsgfSB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzcwcHgpIHtcbiAgLmNvbDEtbGF5b3V0IC5zb3J0ZXIsXG4gIC5jb2wxLWxheW91dCAucGFnZXIge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIC5jb2wxLWxheW91dCAucGFnZXIge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLmNvbDEtbGF5b3V0IC5wYWdlciAucGFnZXMge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBtYXJnaW4tbGVmdDogMDsgfVxuICAgIC5jb2wxLWxheW91dCAucGFnZXIgLmNvdW50LWNvbnRhaW5lciB7XG4gICAgICBmbG9hdDogcmlnaHQ7IH0gfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk3OXB4KSB7XG4gIC5jb2wyLWxlZnQtbGF5b3V0IC5zb3J0ZXIsXG4gIC5jb2wyLWxlZnQtbGF5b3V0IC5wYWdlcixcbiAgLmNvbDItcmlnaHQtbGF5b3V0IC5zb3J0ZXIsXG4gIC5jb2wyLXJpZ2h0LWxheW91dCAucGFnZXIsXG4gIC5jb2wzLWxheW91dCAuc29ydGVyLFxuICAuY29sMy1sYXlvdXQgLnBhZ2VyIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAuY29sMi1sZWZ0LWxheW91dCAucGFnZXIsXG4gIC5jb2wyLXJpZ2h0LWxheW91dCAucGFnZXIsXG4gIC5jb2wzLWxheW91dCAucGFnZXIge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLmNvbDItbGVmdC1sYXlvdXQgLnBhZ2VyIC5wYWdlcyxcbiAgICAuY29sMi1yaWdodC1sYXlvdXQgLnBhZ2VyIC5wYWdlcyxcbiAgICAuY29sMy1sYXlvdXQgLnBhZ2VyIC5wYWdlcyB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG4gICAgLmNvbDItbGVmdC1sYXlvdXQgLnBhZ2VyIC5jb3VudC1jb250YWluZXIsXG4gICAgLmNvbDItcmlnaHQtbGF5b3V0IC5wYWdlciAuY291bnQtY29udGFpbmVyLFxuICAgIC5jb2wzLWxheW91dCAucGFnZXIgLmNvdW50LWNvbnRhaW5lciB7XG4gICAgICBmbG9hdDogcmlnaHQ7IH0gfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEyNzlweCkge1xuICAudG9vbGJhciAudmlldy1tb2RlID4gbGFiZWwge1xuICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBUYXggLSBGdWxsIFRheCBTdW1tYXJ5XG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuI2NoZWNrb3V0LXJldmlldy10YWJsZSAuc3VtbWFyeS1jb2xsYXBzZSxcbiNzaG9wcGluZy1jYXJ0LXRvdGFscy10YWJsZSAuc3VtbWFyeS1jb2xsYXBzZSxcbmJvZHkuY3VzdG9tZXItYWNjb3VudCAuZGF0YS10YWJsZSAuc3VtbWFyeS1jb2xsYXBzZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG4gICNjaGVja291dC1yZXZpZXctdGFibGUgLnN1bW1hcnktY29sbGFwc2U6YmVmb3JlLFxuICAjc2hvcHBpbmctY2FydC10b3RhbHMtdGFibGUgLnN1bW1hcnktY29sbGFwc2U6YmVmb3JlLFxuICBib2R5LmN1c3RvbWVyLWFjY291bnQgLmRhdGEtdGFibGUgLnN1bW1hcnktY29sbGFwc2U6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGJvcmRlci1yaWdodDogN3B4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1sZWZ0OiA3cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXRvcDogN3B4IHNvbGlkICMxZjg2YmQ7XG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDsgfVxuICAjY2hlY2tvdXQtcmV2aWV3LXRhYmxlIC5zdW1tYXJ5LWNvbGxhcHNlOmhvdmVyOmJlZm9yZSxcbiAgI3Nob3BwaW5nLWNhcnQtdG90YWxzLXRhYmxlIC5zdW1tYXJ5LWNvbGxhcHNlOmhvdmVyOmJlZm9yZSxcbiAgYm9keS5jdXN0b21lci1hY2NvdW50IC5kYXRhLXRhYmxlIC5zdW1tYXJ5LWNvbGxhcHNlOmhvdmVyOmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBib3JkZXItcmlnaHQ6IDdweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItbGVmdDogN3B4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci10b3A6IDdweCBzb2xpZCAjMTQ1NzdiO1xuICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luLXJpZ2h0OiA1cHg7IH1cblxuI2NoZWNrb3V0LXJldmlldy10YWJsZSAuc2hvdy1kZXRhaWxzIC5zdW1tYXJ5LWNvbGxhcHNlOmJlZm9yZSxcbiNzaG9wcGluZy1jYXJ0LXRvdGFscy10YWJsZSAuc2hvdy1kZXRhaWxzIC5zdW1tYXJ5LWNvbGxhcHNlOmJlZm9yZSxcbmJvZHkuY3VzdG9tZXItYWNjb3VudCAuZGF0YS10YWJsZSAuc2hvdy1kZXRhaWxzIC5zdW1tYXJ5LWNvbGxhcHNlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICcnO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3JkZXItcmlnaHQ6IDdweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWxlZnQ6IDdweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWJvdHRvbTogN3B4IHNvbGlkICMxZjg2YmQ7XG4gIGJvcmRlci10b3A6IG5vbmU7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLXJpZ2h0OiA1cHg7IH1cblxuI2NoZWNrb3V0LXJldmlldy10YWJsZSAuc2hvdy1kZXRhaWxzIC5zdW1tYXJ5LWNvbGxhcHNlOmhvdmVyOmJlZm9yZSxcbiNzaG9wcGluZy1jYXJ0LXRvdGFscy10YWJsZSAuc2hvdy1kZXRhaWxzIC5zdW1tYXJ5LWNvbGxhcHNlOmhvdmVyOmJlZm9yZSxcbmJvZHkuY3VzdG9tZXItYWNjb3VudCAuZGF0YS10YWJsZSAuc2hvdy1kZXRhaWxzIC5zdW1tYXJ5LWNvbGxhcHNlOmhvdmVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICcnO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3JkZXItcmlnaHQ6IDdweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWxlZnQ6IDdweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWJvdHRvbTogN3B4IHNvbGlkICMxNDU3N2I7XG4gIGJvcmRlci10b3A6IG5vbmU7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLXJpZ2h0OiA1cHg7IH1cblxuI3Nob3BwaW5nLWNhcnQtdG90YWxzLXRhYmxlIHRmb290IHRkIC5zdW1tYXJ5LWNvbGxhcHNlOmJlZm9yZSwgI3Nob3BwaW5nLWNhcnQtdG90YWxzLXRhYmxlIHRmb290IHRkIC5zdW1tYXJ5LWNvbGxhcHNlOmhvdmVyOmJlZm9yZSB7XG4gIG1hcmdpbi1ib3R0b206IDVweDsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBNYWdlbnRvIEhlbHBlcnNcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4uYS1jZW50ZXIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cblxuLmEtcmlnaHQsXG4uYWxpZ24tcmlnaHQge1xuICB0ZXh0LWFsaWduOiByaWdodDsgfVxuXG4ubm8tZGlzcGxheSB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4ubm9icixcbi5ub3dyYXAge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XG5cbi53aWR0aC1mdWxsIHtcbiAgd2lkdGg6IDEwMCU7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogQ3VzdG9tIEhlbHBlcnNcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4uaGlkZGVuIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBQcmludCBTdHlsZXNcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4ucGFnZS1wcmludCAucHJpbnQtaGVhZCB7XG4gIG1hcmdpbjogMCAwIDE1cHg7IH1cblxuLnBhZ2UtcHJpbnQgLnByaW50LWhlYWQgLmxvZ28ge1xuICBmbG9hdDogbm9uZTtcbiAgbWF4LWhlaWdodDogNTBweDtcbiAgd2lkdGg6IGF1dG87IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogSG9tZSBQYWdlXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLmhvbWUtc2xpZGVyLWNvbnRhaW5lciB7XG4gIG1hcmdpbi10b3A6IDIwcHg7IH1cbiAgLmhvbWUtc2xpZGVyLWNvbnRhaW5lciAuaG9tZS1zbGlkZS13cmFwcGVyIHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDUwcHggODBweDsgfVxuICAgIC5ob21lLXNsaWRlci1jb250YWluZXIgLmhvbWUtc2xpZGUtd3JhcHBlciBoMSxcbiAgICAuaG9tZS1zbGlkZXItY29udGFpbmVyIC5ob21lLXNsaWRlLXdyYXBwZXIgaDEuaG9tZS1zbGlkZS10aXRsZSxcbiAgICAuaG9tZS1zbGlkZXItY29udGFpbmVyIC5ob21lLXNsaWRlLXdyYXBwZXIgaDIuaG9tZS1zbGlkZS10aXRsZSB7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgbGVmdDogMTVweDtcbiAgICAgIHRvcDogMDtcbiAgICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cbiAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAwcHgpIHtcbiAgICAgICAgLmhvbWUtc2xpZGVyLWNvbnRhaW5lciAuaG9tZS1zbGlkZS13cmFwcGVyIGgxLFxuICAgICAgICAuaG9tZS1zbGlkZXItY29udGFpbmVyIC5ob21lLXNsaWRlLXdyYXBwZXIgaDEuaG9tZS1zbGlkZS10aXRsZSxcbiAgICAgICAgLmhvbWUtc2xpZGVyLWNvbnRhaW5lciAuaG9tZS1zbGlkZS13cmFwcGVyIGgyLmhvbWUtc2xpZGUtdGl0bGUge1xuICAgICAgICAgIHRvcDogMTVweDsgfSB9XG4gICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc3MXB4KSB7XG4gICAgICAgIC5ob21lLXNsaWRlci1jb250YWluZXIgLmhvbWUtc2xpZGUtd3JhcHBlciBoMSxcbiAgICAgICAgLmhvbWUtc2xpZGVyLWNvbnRhaW5lciAuaG9tZS1zbGlkZS13cmFwcGVyIGgxLmhvbWUtc2xpZGUtdGl0bGUsXG4gICAgICAgIC5ob21lLXNsaWRlci1jb250YWluZXIgLmhvbWUtc2xpZGUtd3JhcHBlciBoMi5ob21lLXNsaWRlLXRpdGxlIHtcbiAgICAgICAgICBsZWZ0OiAyNXB4OyB9IH1cbiAgICAuaG9tZS1zbGlkZXItY29udGFpbmVyIC5ob21lLXNsaWRlLXdyYXBwZXIgLmhvbWUtc2xpZGUtaW1hZ2Uge1xuICAgICAgcGFkZGluZy10b3A6IDQwcHg7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMjBweDtcbiAgICAgIHotaW5kZXg6IDE7IH1cbiAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAwcHgpIHtcbiAgICAgICAgLmhvbWUtc2xpZGVyLWNvbnRhaW5lciAuaG9tZS1zbGlkZS13cmFwcGVyIC5ob21lLXNsaWRlLWltYWdlIHtcbiAgICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgbGVmdDogMjVweDtcbiAgICAgICAgICB3aWR0aDogNTYlO1xuICAgICAgICAgIGJvdHRvbTogYXV0bztcbiAgICAgICAgICB0b3A6IDEwJTsgfSB9XG4gICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc3MXB4KSB7XG4gICAgICAgIC5ob21lLXNsaWRlci1jb250YWluZXIgLmhvbWUtc2xpZGUtd3JhcHBlciAuaG9tZS1zbGlkZS1pbWFnZSB7XG4gICAgICAgICAgYm90dG9tOiA5JTsgfSB9XG4gICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDk4MHB4KSB7XG4gICAgICAgIC5ob21lLXNsaWRlci1jb250YWluZXIgLmhvbWUtc2xpZGUtd3JhcHBlciAuaG9tZS1zbGlkZS1pbWFnZSB7XG4gICAgICAgICAgd2lkdGg6IDYyJTtcbiAgICAgICAgICBib3R0b206IDA7IH0gfVxuICAgIC5ob21lLXNsaWRlci1jb250YWluZXIgLmhvbWUtc2xpZGUtd3JhcHBlciAuaG9tZS1zbGlkZS1jb250ZW50IHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHotaW5kZXg6IDEwO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gICAgICAgIC5ob21lLXNsaWRlci1jb250YWluZXIgLmhvbWUtc2xpZGUtd3JhcHBlciAuaG9tZS1zbGlkZS1jb250ZW50IHtcbiAgICAgICAgICB3aWR0aDogNDglO1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMTAlO1xuICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7IH0gfVxuICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NzFweCkge1xuICAgICAgICAuaG9tZS1zbGlkZXItY29udGFpbmVyIC5ob21lLXNsaWRlLXdyYXBwZXIgLmhvbWUtc2xpZGUtY29udGVudCB7XG4gICAgICAgICAgd2lkdGg6IDQzJTtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogLTUlOyB9IH1cbiAgICAgIC5ob21lLXNsaWRlci1jb250YWluZXIgLmhvbWUtc2xpZGUtd3JhcHBlciAuaG9tZS1zbGlkZS1jb250ZW50IC5zaGFyZS1idXR0b25zIHtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsgfVxuICAgICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gICAgICAgICAgLmhvbWUtc2xpZGVyLWNvbnRhaW5lciAuaG9tZS1zbGlkZS13cmFwcGVyIC5ob21lLXNsaWRlLWNvbnRlbnQgLnNoYXJlLWJ1dHRvbnMuc21hbGwge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG4gICAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAwcHgpIHtcbiAgICAgICAgICAuaG9tZS1zbGlkZXItY29udGFpbmVyIC5ob21lLXNsaWRlLXdyYXBwZXIgLmhvbWUtc2xpZGUtY29udGVudCAuc2hhcmUtYnV0dG9ucyB7XG4gICAgICAgICAgICB3aWR0aDogMTcwcHg7XG4gICAgICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfSB9XG4gICAgICAgIC5ob21lLXNsaWRlci1jb250YWluZXIgLmhvbWUtc2xpZGUtd3JhcHBlciAuaG9tZS1zbGlkZS1jb250ZW50IC5zaGFyZS1idXR0b25zIGEge1xuICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICAgICAgICAgIC5ob21lLXNsaWRlci1jb250YWluZXIgLmhvbWUtc2xpZGUtd3JhcHBlciAuaG9tZS1zbGlkZS1jb250ZW50IC5zaGFyZS1idXR0b25zIGE6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gICAgICAgIC5ob21lLXNsaWRlci1jb250YWluZXIgLmhvbWUtc2xpZGUtd3JhcHBlciAuaG9tZS1zbGlkZS1jb250ZW50IC5zaGFyZS1idXR0b25zIGltZyB7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgICAgIHdpZHRoOiBhdXRvOyB9XG4gICAgICAuaG9tZS1zbGlkZXItY29udGFpbmVyIC5ob21lLXNsaWRlLXdyYXBwZXIgLmhvbWUtc2xpZGUtY29udGVudCAuaGVhZGxpbmUge1xuICAgICAgICBmb250LXNpemU6IDEwMHB4O1xuICAgICAgICBsaW5lLWhlaWdodDogLjg7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBcIlVidW50dVRpdGxpbmctQm9sZFwiLCBcIkhlbHZldGljYSBOZXVlXCIsIFZlcmRhbmEsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICBwYWRkaW5nLXRvcDogMTVweDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMTBweDsgfVxuICAgICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gICAgICAgICAgLmhvbWUtc2xpZGVyLWNvbnRhaW5lciAuaG9tZS1zbGlkZS13cmFwcGVyIC5ob21lLXNsaWRlLWNvbnRlbnQgLmhlYWRsaW5lIHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAzNXB4OyB9IH1cbiAgICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MDBweCkge1xuICAgICAgICAgIC5ob21lLXNsaWRlci1jb250YWluZXIgLmhvbWUtc2xpZGUtd3JhcHBlciAuaG9tZS1zbGlkZS1jb250ZW50IC5oZWFkbGluZSB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTEwcHg7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMDsgfSB9XG4gICAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzcxcHgpIHtcbiAgICAgICAgICAuaG9tZS1zbGlkZXItY29udGFpbmVyIC5ob21lLXNsaWRlLXdyYXBwZXIgLmhvbWUtc2xpZGUtY29udGVudCAuaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxMzZweDsgfSB9XG4gICAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTgwcHgpIHtcbiAgICAgICAgICAuaG9tZS1zbGlkZXItY29udGFpbmVyIC5ob21lLXNsaWRlLXdyYXBwZXIgLmhvbWUtc2xpZGUtY29udGVudCAuaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxNDRweDsgfSB9XG4gICAgICAuaG9tZS1zbGlkZXItY29udGFpbmVyIC5ob21lLXNsaWRlLXdyYXBwZXIgLmhvbWUtc2xpZGUtY29udGVudCBwIHtcbiAgICAgICAgY29sb3I6ICM1YjViNWE7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgICAgICAgLmhvbWUtc2xpZGVyLWNvbnRhaW5lciAuaG9tZS1zbGlkZS13cmFwcGVyIC5ob21lLXNsaWRlLWNvbnRlbnQgcCBhIHtcbiAgICAgICAgICBjb2xvcjogIzViNWI1YTtcbiAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuICAgICAgLmhvbWUtc2xpZGVyLWNvbnRhaW5lciAuaG9tZS1zbGlkZS13cmFwcGVyIC5ob21lLXNsaWRlLWNvbnRlbnQgYSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDE1cHg7IH1cbiAgICAgIC5ob21lLXNsaWRlci1jb250YWluZXIgLmhvbWUtc2xpZGUtd3JhcHBlciAuaG9tZS1zbGlkZS1jb250ZW50IGgyLCAuaG9tZS1zbGlkZXItY29udGFpbmVyIC5ob21lLXNsaWRlLXdyYXBwZXIgLmhvbWUtc2xpZGUtY29udGVudCAuaDIge1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAgICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gICAgICAgICAgLmhvbWUtc2xpZGVyLWNvbnRhaW5lciAuaG9tZS1zbGlkZS13cmFwcGVyIC5ob21lLXNsaWRlLWNvbnRlbnQgaDIsIC5ob21lLXNsaWRlci1jb250YWluZXIgLmhvbWUtc2xpZGUtd3JhcHBlciAuaG9tZS1zbGlkZS1jb250ZW50IC5oMiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAgICAgICAgICAgLmhvbWUtc2xpZGVyLWNvbnRhaW5lciAuaG9tZS1zbGlkZS13cmFwcGVyIC5ob21lLXNsaWRlLWNvbnRlbnQgaDIuc21hbGwsIC5ob21lLXNsaWRlci1jb250YWluZXIgLmhvbWUtc2xpZGUtd3JhcHBlciAuaG9tZS1zbGlkZS1jb250ZW50IC5oMi5zbWFsbCB7XG4gICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICAgICAgLmhvbWUtc2xpZGVyLWNvbnRhaW5lciAuaG9tZS1zbGlkZS13cmFwcGVyIC5ob21lLXNsaWRlLWNvbnRlbnQgLnByb2R1Y3QtbmFtZSB7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MDBweCkge1xuICAgICAgICAgIC5ob21lLXNsaWRlci1jb250YWluZXIgLmhvbWUtc2xpZGUtd3JhcHBlciAuaG9tZS1zbGlkZS1jb250ZW50IC5wcm9kdWN0LW5hbWUge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB3aWR0aDogMTgwJTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtODAlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMjBweDtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDUwcHg7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAzNXB4O1xuICAgICAgICAgICAgZGlzcGxheTogdGFibGU7IH0gfVxuICAgICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc3MXB4KSB7XG4gICAgICAgICAgLmhvbWUtc2xpZGVyLWNvbnRhaW5lciAuaG9tZS1zbGlkZS13cmFwcGVyIC5ob21lLXNsaWRlLWNvbnRlbnQgLnByb2R1Y3QtbmFtZSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA5MHB4OyB9IH1cbiAgICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA4NzlweCkge1xuICAgICAgICAgIC5ob21lLXNsaWRlci1jb250YWluZXIgLmhvbWUtc2xpZGUtd3JhcHBlciAuaG9tZS1zbGlkZS1jb250ZW50IC5wcm9kdWN0LW5hbWUge1xuICAgICAgICAgICAgd2lkdGg6IDEyNSU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLTI1JTsgfSB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5ODBweCkge1xuICAgICAgLmhvbWUtc2xpZGVyLWNvbnRhaW5lciAuaG9tZS1zbGlkZS13cmFwcGVyLnNsaWRlMiAuaG9tZS1zbGlkZS1pbWFnZSB7XG4gICAgICAgIHdpZHRoOiA1OSU7XG4gICAgICAgIGJvdHRvbTogMDsgfSB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MDBweCkge1xuICAgICAgLmhvbWUtc2xpZGVyLWNvbnRhaW5lciAuaG9tZS1zbGlkZS13cmFwcGVyLnNsaWRlMiAuaG9tZS1zbGlkZS1jb250ZW50IHtcbiAgICAgICAgbWFyZ2luLXRvcDogNTBweDsgfSB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAgICAgLmhvbWUtc2xpZGVyLWNvbnRhaW5lciAuaG9tZS1zbGlkZS13cmFwcGVyLnNsaWRlMiAuaG9tZS1zbGlkZS1jb250ZW50IC5oZWFkbGluZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogNzJweDsgfSB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MDBweCkge1xuICAgICAgLmhvbWUtc2xpZGVyLWNvbnRhaW5lciAuaG9tZS1zbGlkZS13cmFwcGVyLnNsaWRlMiAuaG9tZS1zbGlkZS1jb250ZW50IC5oZWFkbGluZSB7XG4gICAgICAgIHdpZHRoOiAxNjAlO1xuICAgICAgICBtYXJnaW4tbGVmdDogLTYwJTsgfSB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5ODBweCkge1xuICAgICAgLmhvbWUtc2xpZGVyLWNvbnRhaW5lciAuaG9tZS1zbGlkZS13cmFwcGVyLnNsaWRlMiAuaG9tZS1zbGlkZS1jb250ZW50IC5oZWFkbGluZSB7XG4gICAgICAgIHdpZHRoOiAxMzAlO1xuICAgICAgICBtYXJnaW4tbGVmdDogLTMwJTsgfSB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MDBweCkge1xuICAgICAgLmhvbWUtc2xpZGVyLWNvbnRhaW5lciAuaG9tZS1zbGlkZS13cmFwcGVyLnNsaWRlMiAuaG9tZS1zbGlkZS1jb250ZW50IC5wcm9kdWN0LW5hbWUge1xuICAgICAgICB3aWR0aDogMTIwJTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0yMCU7IH0gfVxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzcxcHgpIHtcbiAgICAgIC5ob21lLXNsaWRlci1jb250YWluZXIgLmhvbWUtc2xpZGUtd3JhcHBlci5zbGlkZTIgLmhvbWUtc2xpZGUtY29udGVudCAucHJvZHVjdC1uYW1lIHtcbiAgICAgICAgd2lkdGg6IDExMCU7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtMTAlOyB9IH1cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDk4MHB4KSB7XG4gICAgICAuaG9tZS1zbGlkZXItY29udGFpbmVyIC5ob21lLXNsaWRlLXdyYXBwZXIuc2xpZGUyIC5ob21lLXNsaWRlLWNvbnRlbnQgLnByb2R1Y3QtbmFtZSB7XG4gICAgICAgIHdpZHRoOiA5MCU7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxMCU7IH0gfVxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTgwcHgpIHtcbiAgICAgIC5ob21lLXNsaWRlci1jb250YWluZXIgLmhvbWUtc2xpZGUtd3JhcHBlci5zbGlkZTMgLmhvbWUtc2xpZGUtaW1hZ2Uge1xuICAgICAgICB3aWR0aDogNTYlO1xuICAgICAgICB0b3A6IDYwcHg7XG4gICAgICAgIGJvdHRvbTogYXV0bzsgfSB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MDBweCkge1xuICAgICAgLmhvbWUtc2xpZGVyLWNvbnRhaW5lciAuaG9tZS1zbGlkZS13cmFwcGVyLnNsaWRlMyAuaG9tZS1zbGlkZS1jb250ZW50IHtcbiAgICAgICAgbWFyZ2luLXRvcDogNTBweDsgfSB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAgICAgLmhvbWUtc2xpZGVyLWNvbnRhaW5lciAuaG9tZS1zbGlkZS13cmFwcGVyLnNsaWRlMyAuaG9tZS1zbGlkZS1jb250ZW50IC5oZWFkbGluZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogNzJweDsgfSB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MDBweCkge1xuICAgICAgLmhvbWUtc2xpZGVyLWNvbnRhaW5lciAuaG9tZS1zbGlkZS13cmFwcGVyLnNsaWRlMyAuaG9tZS1zbGlkZS1jb250ZW50IC5oZWFkbGluZSB7XG4gICAgICAgIHdpZHRoOiAxODAlO1xuICAgICAgICBtYXJnaW4tbGVmdDogLTgwJTsgfSB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5ODBweCkge1xuICAgICAgLmhvbWUtc2xpZGVyLWNvbnRhaW5lciAuaG9tZS1zbGlkZS13cmFwcGVyLnNsaWRlMyAuaG9tZS1zbGlkZS1jb250ZW50IC5oZWFkbGluZSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDExNnB4OyB9IH1cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gICAgICAuaG9tZS1zbGlkZXItY29udGFpbmVyIC5ob21lLXNsaWRlLXdyYXBwZXIuc2xpZGUzIC5ob21lLXNsaWRlLWNvbnRlbnQgLnByb2R1Y3QtbmFtZSB7XG4gICAgICAgIHdpZHRoOiAxNDUlO1xuICAgICAgICBtYXJnaW4tbGVmdDogLTQ1JTsgfSB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NzFweCkge1xuICAgICAgLmhvbWUtc2xpZGVyLWNvbnRhaW5lciAuaG9tZS1zbGlkZS13cmFwcGVyLnNsaWRlMyAuaG9tZS1zbGlkZS1jb250ZW50IC5wcm9kdWN0LW5hbWUge1xuICAgICAgICB3aWR0aDogMTIwJTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0yMCU7IH0gfVxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTgwcHgpIHtcbiAgICAgIC5ob21lLXNsaWRlci1jb250YWluZXIgLmhvbWUtc2xpZGUtd3JhcHBlci5zbGlkZTMgLmhvbWUtc2xpZGUtY29udGVudCAucHJvZHVjdC1uYW1lIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwOyB9IH1cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gICAgICAuaG9tZS1zbGlkZXItY29udGFpbmVyIC5ob21lLXNsaWRlLXdyYXBwZXIuc2xpZGU0IC5ob21lLXNsaWRlLWltYWdlIHtcbiAgICAgICAgdG9wOiAyNiU7IH1cbiAgICAgICAgLmhvbWUtc2xpZGVyLWNvbnRhaW5lciAuaG9tZS1zbGlkZS13cmFwcGVyLnNsaWRlNCAuaG9tZS1zbGlkZS1pbWFnZTpsYW5nKGVuKSB7XG4gICAgICAgICAgdG9wOiAzNSU7IH0gfVxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTgwcHgpIHtcbiAgICAgIC5ob21lLXNsaWRlci1jb250YWluZXIgLmhvbWUtc2xpZGUtd3JhcHBlci5zbGlkZTQgLmhvbWUtc2xpZGUtaW1hZ2Uge1xuICAgICAgICB3aWR0aDogNTYlO1xuICAgICAgICB0b3A6IDE2MHB4O1xuICAgICAgICBib3R0b206IGF1dG87IH1cbiAgICAgICAgLmhvbWUtc2xpZGVyLWNvbnRhaW5lciAuaG9tZS1zbGlkZS13cmFwcGVyLnNsaWRlNCAuaG9tZS1zbGlkZS1pbWFnZTpsYW5nKGVuKSB7XG4gICAgICAgICAgdG9wOiAzMjBweDsgfSB9XG4gICAgLmhvbWUtc2xpZGVyLWNvbnRhaW5lciAuaG9tZS1zbGlkZS13cmFwcGVyIC5tZWRpdW0ge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAwcHgpIHtcbiAgICAgIC5ob21lLXNsaWRlci1jb250YWluZXIgLmhvbWUtc2xpZGUtd3JhcHBlciAuc21hbGwge1xuICAgICAgICBkaXNwbGF5OiBub25lOyB9IH1cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc3MXB4KSB7XG4gICAgICAuaG9tZS1zbGlkZXItY29udGFpbmVyIC5ob21lLXNsaWRlLXdyYXBwZXIgLm1lZGl1bSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrOyB9IH1cblxuLmlzLWJsb2cgLmhvbWUtc2xpZGVyLWNvbnRhaW5lciB7XG4gIG1hcmdpbi10b3A6IDA7IH1cblxuLmlzLWJsb2cud29yZHByZXNzLXBvc3QtdmlldyAuaG9tZS1zbGlkZS13cmFwcGVyIHtcbiAgbWFyZ2luLXRvcDogLTE1cHg7XG4gIG1heC13aWR0aDogMTAxMHB4O1xuICBwYWRkaW5nOiAyNXB4O1xuICBtYXJnaW4tbGVmdDogLTI1cHg7XG4gIG1hcmdpbi1yaWdodDogLTI1cHg7IH1cblxuLmhvbWUtc2xpZGVyLXNlYXJjaCB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NzFweCkge1xuICAgIC5ob21lLXNsaWRlci1zZWFyY2gge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMDtcbiAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgcGFkZGluZy1ib3R0b206IDA7IH0gfVxuICAuaG9tZS1zbGlkZXItc2VhcmNoIC5ob21lLXNsaWRlci1zZWFyY2gtZm9ybXdyYXBwZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgIC5ob21lLXNsaWRlci1zZWFyY2ggLmhvbWUtc2xpZGVyLXNlYXJjaC1mb3Jtd3JhcHBlciAuc2VhcmNoX21pbmlfZm9ybSB7XG4gICAgICB3aWR0aDogNDMlO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICB0b3A6IC0xNDBweDsgfVxuXG4ucHJvZHVjdHMtdGVhc2VyLWNvbnRhaW5lciB1bCBsaSxcbi5zdXBwb3J0LWNvbnRhaW5lciB1bCBsaSxcbi5wcm9kdWN0LWNhdGVnb3J5LW5hdiB1bCBsaSxcbi5ib3gtY3Jvc3Mtc2VsbCB1bCBsaSxcbi5zaG9wLWxpc3QgdWwgbGkge1xuICBsaW5lLWhlaWdodDogMS41O1xuICBwYWRkaW5nOiA0cHggMDsgfVxuXG4ucHJvZHVjdHMtdGVhc2VyLWNvbnRhaW5lciBhLFxuLnN1cHBvcnQtY29udGFpbmVyIGEsXG4ucHJvZHVjdC1jYXRlZ29yeS1uYXYgYSxcbi5ib3gtY3Jvc3Mtc2VsbCBhLFxuLnNob3AtbGlzdCBhIHtcbiAgY29sb3I6ICMwMDNiNWY7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjMDAzYjVmO1xuICBsaW5lLWhlaWdodDogMS4yOyB9XG4gIC5wcm9kdWN0cy10ZWFzZXItY29udGFpbmVyIGE6aG92ZXIsIC5wcm9kdWN0cy10ZWFzZXItY29udGFpbmVyIGEuYWN0aXZlLFxuICAuc3VwcG9ydC1jb250YWluZXIgYTpob3ZlcixcbiAgLnN1cHBvcnQtY29udGFpbmVyIGEuYWN0aXZlLFxuICAucHJvZHVjdC1jYXRlZ29yeS1uYXYgYTpob3ZlcixcbiAgLnByb2R1Y3QtY2F0ZWdvcnktbmF2IGEuYWN0aXZlLFxuICAuYm94LWNyb3NzLXNlbGwgYTpob3ZlcixcbiAgLmJveC1jcm9zcy1zZWxsIGEuYWN0aXZlLFxuICAuc2hvcC1saXN0IGE6aG92ZXIsXG4gIC5zaG9wLWxpc3QgYS5hY3RpdmUge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBjb2xvcjogIzFmODZiZDtcbiAgICBib3JkZXItY29sb3I6ICMxZjg2YmQ7IH1cblxuLnN1cHBvcnQtY29udGFpbmVyIGEuYWN0aXZlIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjb2xvcjogIzAwM2I1ZjtcbiAgYm9yZGVyLWNvbG9yOiAjMDAzYjVmOyB9XG5cbi5wcm9kdWN0cy10ZWFzZXItY29udGFpbmVyIGEuYWN0aXZlIHtcbiAgY29sb3I6ICMwMDNiNWY7XG4gIGJvcmRlci1jb2xvcjogIzAwM2I1ZjsgfVxuXG4ubGF0ZXN0LW5ld3MtY29udGFpbmVyIC5zdXBwb3J0LXdyYXBwZXIsIC5sYXRlc3QtbmV3cy1jb250YWluZXIgLmxhdGVzdC1uZXdzLXdyYXBwZXIsIC5zdXBwb3J0LWNvbnRhaW5lciAuc3VwcG9ydC13cmFwcGVyLCAuc3VwcG9ydC1jb250YWluZXIgLmxhdGVzdC1uZXdzLXdyYXBwZXIge1xuICBib3JkZXItdG9wOiAxcHggZG90dGVkICMwMDNiNWY7XG4gIHdpZHRoOiAxMDAlOyB9XG4gIC5sYXRlc3QtbmV3cy1jb250YWluZXIgLnN1cHBvcnQtd3JhcHBlciBoMywgLmxhdGVzdC1uZXdzLWNvbnRhaW5lciAubGF0ZXN0LW5ld3Mtd3JhcHBlciBoMywgLnN1cHBvcnQtY29udGFpbmVyIC5zdXBwb3J0LXdyYXBwZXIgaDMsIC5zdXBwb3J0LWNvbnRhaW5lciAubGF0ZXN0LW5ld3Mtd3JhcHBlciBoMyB7XG4gICAgY29sb3I6ICMwMDhiZDI7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICBwYWRkaW5nOiAwOyB9XG4gIC5sYXRlc3QtbmV3cy1jb250YWluZXIgLnN1cHBvcnQtd3JhcHBlciAubGlua3MsIC5sYXRlc3QtbmV3cy1jb250YWluZXIgLnN1cHBvcnQtd3JhcHBlciAuYWJvdXQsIC5sYXRlc3QtbmV3cy1jb250YWluZXIgLmxhdGVzdC1uZXdzLXdyYXBwZXIgLmxpbmtzLCAubGF0ZXN0LW5ld3MtY29udGFpbmVyIC5sYXRlc3QtbmV3cy13cmFwcGVyIC5hYm91dCwgLnN1cHBvcnQtY29udGFpbmVyIC5zdXBwb3J0LXdyYXBwZXIgLmxpbmtzLCAuc3VwcG9ydC1jb250YWluZXIgLnN1cHBvcnQtd3JhcHBlciAuYWJvdXQsIC5zdXBwb3J0LWNvbnRhaW5lciAubGF0ZXN0LW5ld3Mtd3JhcHBlciAubGlua3MsIC5zdXBwb3J0LWNvbnRhaW5lciAubGF0ZXN0LW5ld3Mtd3JhcHBlciAuYWJvdXQge1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG4gICAgcGFkZGluZzogMzVweCAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDIwcHg7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAwcHgpIHtcbiAgICAgIC5sYXRlc3QtbmV3cy1jb250YWluZXIgLnN1cHBvcnQtd3JhcHBlciAubGlua3MsIC5sYXRlc3QtbmV3cy1jb250YWluZXIgLnN1cHBvcnQtd3JhcHBlciAuYWJvdXQsIC5sYXRlc3QtbmV3cy1jb250YWluZXIgLmxhdGVzdC1uZXdzLXdyYXBwZXIgLmxpbmtzLCAubGF0ZXN0LW5ld3MtY29udGFpbmVyIC5sYXRlc3QtbmV3cy13cmFwcGVyIC5hYm91dCwgLnN1cHBvcnQtY29udGFpbmVyIC5zdXBwb3J0LXdyYXBwZXIgLmxpbmtzLCAuc3VwcG9ydC1jb250YWluZXIgLnN1cHBvcnQtd3JhcHBlciAuYWJvdXQsIC5zdXBwb3J0LWNvbnRhaW5lciAubGF0ZXN0LW5ld3Mtd3JhcHBlciAubGlua3MsIC5zdXBwb3J0LWNvbnRhaW5lciAubGF0ZXN0LW5ld3Mtd3JhcHBlciAuYWJvdXQge1xuICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICBmbG9hdDogbGVmdDsgfSB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NzFweCkge1xuICAgICAgLmxhdGVzdC1uZXdzLWNvbnRhaW5lciAuc3VwcG9ydC13cmFwcGVyIC5saW5rcywgLmxhdGVzdC1uZXdzLWNvbnRhaW5lciAuc3VwcG9ydC13cmFwcGVyIC5hYm91dCwgLmxhdGVzdC1uZXdzLWNvbnRhaW5lciAubGF0ZXN0LW5ld3Mtd3JhcHBlciAubGlua3MsIC5sYXRlc3QtbmV3cy1jb250YWluZXIgLmxhdGVzdC1uZXdzLXdyYXBwZXIgLmFib3V0LCAuc3VwcG9ydC1jb250YWluZXIgLnN1cHBvcnQtd3JhcHBlciAubGlua3MsIC5zdXBwb3J0LWNvbnRhaW5lciAuc3VwcG9ydC13cmFwcGVyIC5hYm91dCwgLnN1cHBvcnQtY29udGFpbmVyIC5sYXRlc3QtbmV3cy13cmFwcGVyIC5saW5rcywgLnN1cHBvcnQtY29udGFpbmVyIC5sYXRlc3QtbmV3cy13cmFwcGVyIC5hYm91dCB7XG4gICAgICAgIHdpZHRoOiAyNSU7XG4gICAgICAgIGZsb2F0OiBsZWZ0OyB9IH1cbiAgLmxhdGVzdC1uZXdzLWNvbnRhaW5lciAuc3VwcG9ydC13cmFwcGVyIC5zdXBwb3J0LCAubGF0ZXN0LW5ld3MtY29udGFpbmVyIC5sYXRlc3QtbmV3cy13cmFwcGVyIC5zdXBwb3J0LCAuc3VwcG9ydC1jb250YWluZXIgLnN1cHBvcnQtd3JhcHBlciAuc3VwcG9ydCwgLnN1cHBvcnQtY29udGFpbmVyIC5sYXRlc3QtbmV3cy13cmFwcGVyIC5zdXBwb3J0IHtcbiAgICBwYWRkaW5nOiAzNXB4IDA7XG4gICAgcGFkZGluZy1ib3R0b206IDEwMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDM1cHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuMztcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaW1hZ2VzL3N1cHBvcnQtcGVyc29uLnBuZyk7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBib3R0b20gcmlnaHQ7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gICAgICAubGF0ZXN0LW5ld3MtY29udGFpbmVyIC5zdXBwb3J0LXdyYXBwZXIgLnN1cHBvcnQsIC5sYXRlc3QtbmV3cy1jb250YWluZXIgLmxhdGVzdC1uZXdzLXdyYXBwZXIgLnN1cHBvcnQsIC5zdXBwb3J0LWNvbnRhaW5lciAuc3VwcG9ydC13cmFwcGVyIC5zdXBwb3J0LCAuc3VwcG9ydC1jb250YWluZXIgLmxhdGVzdC1uZXdzLXdyYXBwZXIgLnN1cHBvcnQge1xuICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgY2xlYXI6IG5vbmU7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA4MHB4OyB9IH1cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc3MXB4KSB7XG4gICAgICAubGF0ZXN0LW5ld3MtY29udGFpbmVyIC5zdXBwb3J0LXdyYXBwZXIgLnN1cHBvcnQsIC5sYXRlc3QtbmV3cy1jb250YWluZXIgLmxhdGVzdC1uZXdzLXdyYXBwZXIgLnN1cHBvcnQsIC5zdXBwb3J0LWNvbnRhaW5lciAuc3VwcG9ydC13cmFwcGVyIC5zdXBwb3J0LCAuc3VwcG9ydC1jb250YWluZXIgLmxhdGVzdC1uZXdzLXdyYXBwZXIgLnN1cHBvcnQge1xuICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgY2xlYXI6IG5vbmU7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA2MHB4OyB9IH1cbiAgICAubGF0ZXN0LW5ld3MtY29udGFpbmVyIC5zdXBwb3J0LXdyYXBwZXIgLnN1cHBvcnQgcCwgLmxhdGVzdC1uZXdzLWNvbnRhaW5lciAubGF0ZXN0LW5ld3Mtd3JhcHBlciAuc3VwcG9ydCBwLCAuc3VwcG9ydC1jb250YWluZXIgLnN1cHBvcnQtd3JhcHBlciAuc3VwcG9ydCBwLCAuc3VwcG9ydC1jb250YWluZXIgLmxhdGVzdC1uZXdzLXdyYXBwZXIgLnN1cHBvcnQgcCB7XG4gICAgICB3aWR0aDogNzAlOyB9XG4gICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc3MXB4KSB7XG4gICAgICAgIC5sYXRlc3QtbmV3cy1jb250YWluZXIgLnN1cHBvcnQtd3JhcHBlciAuc3VwcG9ydCBwLCAubGF0ZXN0LW5ld3MtY29udGFpbmVyIC5sYXRlc3QtbmV3cy13cmFwcGVyIC5zdXBwb3J0IHAsIC5zdXBwb3J0LWNvbnRhaW5lciAuc3VwcG9ydC13cmFwcGVyIC5zdXBwb3J0IHAsIC5zdXBwb3J0LWNvbnRhaW5lciAubGF0ZXN0LW5ld3Mtd3JhcHBlciAuc3VwcG9ydCBwIHtcbiAgICAgICAgICBtYXJnaW4tdG9wOiA0MnB4OyB9IH1cbiAgICAubGF0ZXN0LW5ld3MtY29udGFpbmVyIC5zdXBwb3J0LXdyYXBwZXIgLnN1cHBvcnQgLm51bWJlciwgLmxhdGVzdC1uZXdzLWNvbnRhaW5lciAubGF0ZXN0LW5ld3Mtd3JhcHBlciAuc3VwcG9ydCAubnVtYmVyLCAuc3VwcG9ydC1jb250YWluZXIgLnN1cHBvcnQtd3JhcHBlciAuc3VwcG9ydCAubnVtYmVyLCAuc3VwcG9ydC1jb250YWluZXIgLmxhdGVzdC1uZXdzLXdyYXBwZXIgLnN1cHBvcnQgLm51bWJlciB7XG4gICAgICBmb250LWZhbWlseTogXCJVYnVudHVUaXRsaW5nLUJvbGRcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBWZXJkYW5hLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgIGNvbG9yOiAjMDAzYjVmOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgICAubGF0ZXN0LW5ld3MtY29udGFpbmVyIC5zdXBwb3J0LXdyYXBwZXIgLmFib3V0LCAubGF0ZXN0LW5ld3MtY29udGFpbmVyIC5zdXBwb3J0LXdyYXBwZXIgLnN1cHBvcnQsIC5sYXRlc3QtbmV3cy1jb250YWluZXIgLmxhdGVzdC1uZXdzLXdyYXBwZXIgLmFib3V0LCAubGF0ZXN0LW5ld3MtY29udGFpbmVyIC5sYXRlc3QtbmV3cy13cmFwcGVyIC5zdXBwb3J0LCAuc3VwcG9ydC1jb250YWluZXIgLnN1cHBvcnQtd3JhcHBlciAuYWJvdXQsIC5zdXBwb3J0LWNvbnRhaW5lciAuc3VwcG9ydC13cmFwcGVyIC5zdXBwb3J0LCAuc3VwcG9ydC1jb250YWluZXIgLmxhdGVzdC1uZXdzLXdyYXBwZXIgLmFib3V0LCAuc3VwcG9ydC1jb250YWluZXIgLmxhdGVzdC1uZXdzLXdyYXBwZXIgLnN1cHBvcnQge1xuICAgICAgcGFkZGluZy10b3A6IDA7IH0gfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gICAgLmxhdGVzdC1uZXdzLWNvbnRhaW5lciAuc3VwcG9ydC13cmFwcGVyIC5zdXBwb3J0LCAubGF0ZXN0LW5ld3MtY29udGFpbmVyIC5sYXRlc3QtbmV3cy13cmFwcGVyIC5zdXBwb3J0LCAuc3VwcG9ydC1jb250YWluZXIgLnN1cHBvcnQtd3JhcHBlciAuc3VwcG9ydCwgLnN1cHBvcnQtY29udGFpbmVyIC5sYXRlc3QtbmV3cy13cmFwcGVyIC5zdXBwb3J0IHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDE1cHg7IH0gfVxuXG4uc3VwcG9ydC1jb250YWluZXIge1xuICBwYWRkaW5nLWJvdHRvbTogMDsgfVxuXG4ubGF0ZXN0LW5ld3MtY29udGFpbmVyIHtcbiAgcGFkZGluZy1ib3R0b206IDA7IH1cbiAgLmxhdGVzdC1uZXdzLWNvbnRhaW5lciAubGF0ZXN0LW5ld3Mtd3JhcHBlciB7XG4gICAgcGFkZGluZzogMzVweCAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAwOyB9XG4gICAgLmxhdGVzdC1uZXdzLWNvbnRhaW5lciAubGF0ZXN0LW5ld3Mtd3JhcHBlciAubGF0ZXN0LW5ld3Mtc2xpZGVyIHtcbiAgICAgIG1hcmdpbjogMjBweCAtMTVweCAwIC0xNXB4OyB9XG4gICAgICAubGF0ZXN0LW5ld3MtY29udGFpbmVyIC5sYXRlc3QtbmV3cy13cmFwcGVyIC5sYXRlc3QtbmV3cy1zbGlkZXIgLnNsaWNrLXNsaWRlIHtcbiAgICAgICAgbWFyZ2luOiAwIDE1cHg7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gICAgICAgICAgLmxhdGVzdC1uZXdzLWNvbnRhaW5lciAubGF0ZXN0LW5ld3Mtd3JhcHBlciAubGF0ZXN0LW5ld3Mtc2xpZGVyIC5zbGljay1zbGlkZSB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9IH1cbiAgICAgICAgLmxhdGVzdC1uZXdzLWNvbnRhaW5lciAubGF0ZXN0LW5ld3Mtd3JhcHBlciAubGF0ZXN0LW5ld3Mtc2xpZGVyIC5zbGljay1zbGlkZSAuaGVhZGxpbmUge1xuICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgZm9udC1zaXplOiAxN3B4O1xuICAgICAgICAgIGZvbnQtZmFtaWx5OiBcIlVidW50dVRpdGxpbmctQm9sZFwiLCBcIkhlbHZldGljYSBOZXVlXCIsIFZlcmRhbmEsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgICAgICAgIGNvbG9yOiAjMDAzYjVmO1xuICAgICAgICAgIG1hcmdpbjogMjNweCAwIDE4cHggMDtcbiAgICAgICAgICBsaW5lLWhlaWdodDogMS4zOyB9XG4gICAgICAgIC5sYXRlc3QtbmV3cy1jb250YWluZXIgLmxhdGVzdC1uZXdzLXdyYXBwZXIgLmxhdGVzdC1uZXdzLXNsaWRlciAuc2xpY2stc2xpZGUgYSB7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsgfVxuICAgICAgLmxhdGVzdC1uZXdzLWNvbnRhaW5lciAubGF0ZXN0LW5ld3Mtd3JhcHBlciAubGF0ZXN0LW5ld3Mtc2xpZGVyIC5zbGljay1wcmV2LCAubGF0ZXN0LW5ld3MtY29udGFpbmVyIC5sYXRlc3QtbmV3cy13cmFwcGVyIC5sYXRlc3QtbmV3cy1zbGlkZXIgLnNsaWNrLW5leHQge1xuICAgICAgICBtYXJnaW4tdG9wOiAtNy41JTsgfVxuXG4ucHJvZHVjdHMtdGVhc2VyLWNvbnRhaW5lciAucHJvZHVjdHMtdGVhc2VyLXdyYXBwZXIge1xuICBwYWRkaW5nOiAzNXB4IDA7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xuICBib3JkZXItdG9wOiAxcHggZG90dGVkICMwMDNiNWY7XG4gIHdpZHRoOiAxMDAlOyB9XG4gIC5wcm9kdWN0cy10ZWFzZXItY29udGFpbmVyIC5wcm9kdWN0cy10ZWFzZXItd3JhcHBlciAucHJvZHVjdHMtdGVhc2VyLXNsaWRlciB7XG4gICAgbWFyZ2luOiA1NXB4IC0xNXB4IDAgLTE1cHg7IH1cbiAgICAucHJvZHVjdHMtdGVhc2VyLWNvbnRhaW5lciAucHJvZHVjdHMtdGVhc2VyLXdyYXBwZXIgLnByb2R1Y3RzLXRlYXNlci1zbGlkZXIgLnNsaWNrLXNsaWRlIHtcbiAgICAgIG1hcmdpbjogMCAxNXB4OyB9XG4gICAgICAucHJvZHVjdHMtdGVhc2VyLWNvbnRhaW5lciAucHJvZHVjdHMtdGVhc2VyLXdyYXBwZXIgLnByb2R1Y3RzLXRlYXNlci1zbGlkZXIgLnNsaWNrLXNsaWRlIGltZyB7XG4gICAgICAgIG1hcmdpbjogNXB4IGF1dG87IH1cbiAgICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAgICAgICAgIC5wcm9kdWN0cy10ZWFzZXItY29udGFpbmVyIC5wcm9kdWN0cy10ZWFzZXItd3JhcHBlciAucHJvZHVjdHMtdGVhc2VyLXNsaWRlciAuc2xpY2stc2xpZGUgaW1nIHtcbiAgICAgICAgICAgIHdpZHRoOiA4MCU7IH0gfVxuICAgIC5wcm9kdWN0cy10ZWFzZXItY29udGFpbmVyIC5wcm9kdWN0cy10ZWFzZXItd3JhcHBlciAucHJvZHVjdHMtdGVhc2VyLXNsaWRlciAuc2xpY2stcHJldiwgLnByb2R1Y3RzLXRlYXNlci1jb250YWluZXIgLnByb2R1Y3RzLXRlYXNlci13cmFwcGVyIC5wcm9kdWN0cy10ZWFzZXItc2xpZGVyIC5zbGljay1uZXh0IHtcbiAgICAgIG1hcmdpbi10b3A6IC03LjUlO1xuICAgICAgYmFja2dyb3VuZDogI2M5YzljOTsgfVxuICAucHJvZHVjdHMtdGVhc2VyLWNvbnRhaW5lciAucHJvZHVjdHMtdGVhc2VyLXdyYXBwZXIgaDMge1xuICAgIGhlaWdodDogNDRweDsgfVxuXG4uZG93bmxvYWQtbGlzdCBsaSB7XG4gIG1hcmdpbjogMTBweCAwOyB9XG5cbi5kb3dubG9hZC1saXN0IGEge1xuICBwYWRkaW5nLWxlZnQ6IDMwcHg7XG4gIGNvbG9yOiAjMDAzYjVmO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuICAuZG93bmxvYWQtbGlzdCBhOmhvdmVyIHtcbiAgICBjb2xvcjogIzFmODZiZDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgYm9yZGVyOiBub25lOyB9XG4gIC5kb3dubG9hZC1saXN0IGE6YmVmb3JlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMDtcbiAgICB0b3A6IC0xcHg7XG4gICAgd2lkdGg6IDE5cHg7XG4gICAgaGVpZ2h0OiAyMnB4O1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChpbWFnZXMvaWNvbi1kb3dubG9hZC1wZGYuc3ZnKTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDE5cHggMjJweDtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OyB9XG5cbi5saWdodGJveC1jb250ZW50LWxpbmsuaW5saW5lIHtcbiAgZGlzcGxheTogaW5saW5lOyB9XG5cbi5sb2FkZXIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG1hcmdpbi1sZWZ0OiA1cHg7XG4gIGhlaWdodDogMTFweDtcbiAgd2lkdGg6IDExcHg7XG4gIGFuaW1hdGlvbjogcm90YXRlIDAuOHMgaW5maW5pdGUgbGluZWFyO1xuICBib3JkZXI6IDJweCBzb2xpZCAjMWY4NmJkO1xuICBib3JkZXItcmlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiA1MCU7IH1cblxuQGtleWZyYW1lcyByb3RhdGUge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgfSB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIEZPUk1TIC0gQ09NTU9OXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxuICogRmllbGRzZXRzXG4gKi9cbi5maWVsZHNldCBwIHtcbiAgbWFyZ2luLWJvdHRvbTogN3B4OyB9XG5cbi5maWVsZHNldCBwLnJlcXVpcmVkIHtcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICBmbG9hdDogcmlnaHQ7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbWFyZ2luLXRvcDogMHB4OyB9XG5cbi5jdXN0b21lci1hZGRyZXNzLWZvcm0gcC5yZXF1aXJlZCB7XG4gIGZsb2F0OiBub25lO1xuICB3aWR0aDogMTAwJTsgfVxuXG4uZmllbGRzZXQgKyAuZmllbGRzZXQge1xuICBtYXJnaW4tdG9wOiA1cHg7IH1cblxuZm9ybSAubGVnZW5kIHtcbiAgbWFyZ2luOiAwO1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICBjb2xvcjogIzAwM2I1ZjtcbiAgZm9udC1mYW1pbHk6IFwiVWJ1bnR1VGl0bGluZy1Cb2xkXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgVmVyZGFuYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMS4xO1xuICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuICBwYWRkaW5nLWJvdHRvbTogN3B4OyB9XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICpcbiAqIElucHV0IEJveFxuICovXG4uaW5wdXQtYm94IHtcbiAgcGFkZGluZy10b3A6IDJweDsgfVxuICAuaW5wdXQtYm94OmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBjbGVhcjogYm90aDsgfVxuXG5saS5jZW50aW5lbC1sb2dvcyBkaXYuaW5wdXQtYm94IGltZyB7XG4gIGRpc3BsYXk6IGlubGluZTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfVxuXG4vKiBGb3IgYWRqYWNlbnQgc2VsZWN0IGlucHV0cy4gKi9cbi8qIEV4YW1wbGU6IGNyZWRpdCBjYXJkIGV4cGlyYXRpb24gbW9udGggYW5kIHllYXIuICovXG4uaW5wdXQtYm94IC52LWZpeCB7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgbWF4LXdpZHRoOiAxMDAlOyB9XG5cbmlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gIG1hcmdpbi1yaWdodDogNXB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogLTFweDsgfVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXG4gKiBMYWJlbHNcbiAqL1xubGFiZWwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAtby11c2VyLXNlbGVjdDogbm9uZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7IH1cblxubGFiZWwucmVxdWlyZWQ6YWZ0ZXIsXG5zcGFuLnJlcXVpcmVkOmFmdGVyIHtcbiAgY29udGVudDogJyAqJztcbiAgY29sb3I6ICNERjI4MEE7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtZmFtaWx5OiBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxMnB4OyB9XG5cbi5jYXRhbG9nLXByb2R1Y3QtdmlldyBsYWJlbC5yZXF1aXJlZDphZnRlcixcbi5jYXRhbG9nLXByb2R1Y3QtdmlldyBzcGFuLnJlcXVpcmVkOmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIGNvbG9yOiAjREYyODBBO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LWZhbWlseTogQXJpYWwsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTJweDsgfVxuXG5sYWJlbC5yZXF1aXJlZCBlbSxcbnNwYW4ucmVxdWlyZWQgZW0ge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICpcbiAqIEhpbnRzXG4gKi9cbi5pbnB1dC1oaW50IHtcbiAgY29sb3I6ICM1YjViNWE7XG4gIGZvbnQtc2l6ZTogMTJweDsgfVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXG4gKiBTZWxlY3RcbiAqL1xuc2VsZWN0IHtcbiAgZm9udC1zaXplOiAxNHB4OyB9XG5cbnNlbGVjdCArIHNlbGVjdCB7XG4gIG1hcmdpbi1sZWZ0OiA1cHg7IH1cblxuc2VsZWN0W211bHRpcGxlXSB7XG4gIHdpZHRoOiAyNzBweDtcbiAgYm9yZGVyOiAxcHggc29saWQgI0MwQzBDMDtcbiAgZm9udC1zaXplOiAxN3B4O1xuICBwYWRkaW5nOiA1cHg7IH1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxuICogVGV4dGFyZWFcbiAqL1xudGV4dGFyZWEge1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogLjdlbSAxZW07XG4gIGJhY2tncm91bmQ6ICNFQ0VDRUM7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXG4gKiBJbnB1dHNcbiAqL1xuLmlucHV0LXRleHQge1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xuICBmb250LXNpemU6IDE3cHg7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBjb2xvcjogIzViNWI1YTsgfVxuICAuaW5wdXQtdGV4dDpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTsgfVxuXG4uaW5wdXQtdGV4dC52YWxpZGF0aW9uLWZhaWxlZCB7XG4gIGJvcmRlci1jb2xvcjogI0RGMjgwQTsgfVxuXG4uaW5wdXQtdGV4dC52YWxpZGF0aW9uLWZhaWxlZDpmb2N1cyB7XG4gIG91dGxpbmUtY29sb3I6IHRpbnQoI0RGMjgwQSwgNTAlKTsgfVxuXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgaGVpZ2h0OiA0MHB4O1xuICBwYWRkaW5nOiA5cHggMjBweCA3cHggMjBweDtcbiAgbWF4LXdpZHRoOiAxMDAlOyB9XG5cbmlucHV0W3R5cGU9ZW1haWxdLFxuaW5wdXRbdHlwZT1udW1iZXJdLFxuaW5wdXRbdHlwZT1wYXNzd29yZF0sXG5pbnB1dFt0eXBlPXRlbF0sXG5pbnB1dFt0eXBlPXRleHRdIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIHdpZHRoOiAxMDAlO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBib3JkZXI6IG5vbmU7XG4gIHBhZGRpbmc6IDAgMWVtO1xuICBoZWlnaHQ6IDM1cHg7XG4gIGxpbmUtaGVpZ2h0OiAxNHB4O1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBmb250LXNpemU6IDE0cHg7IH1cbiAgaW5wdXRbdHlwZT1lbWFpbF06OnBsYWNlaG9sZGVyLFxuICBpbnB1dFt0eXBlPW51bWJlcl06OnBsYWNlaG9sZGVyLFxuICBpbnB1dFt0eXBlPXBhc3N3b3JkXTo6cGxhY2Vob2xkZXIsXG4gIGlucHV0W3R5cGU9dGVsXTo6cGxhY2Vob2xkZXIsXG4gIGlucHV0W3R5cGU9dGV4dF06OnBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogIzAwM2I1ZjtcbiAgICBmb250LWZhbWlseTogQXJpYWwsIHNhbnMtc2VyaWY7IH1cblxuLyogT25seSBzaG93IG9uIGlQaG9uZXMgKG5vdCBpUGFkcyBvciBhbnkgb3RoZXIgZGV2aWNlKSAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LWRldmljZS13aWR0aDogNTY4cHgpIGFuZCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAwKSB7XG4gIGlucHV0W3R5cGU9ZW1haWxdLFxuICBpbnB1dFt0eXBlPXNlYXJjaF0sXG4gIGlucHV0W3R5cGU9bnVtYmVyXSxcbiAgaW5wdXRbdHlwZT1wYXNzd29yZF0sXG4gIGlucHV0W3R5cGU9dGVsXSxcbiAgaW5wdXRbdHlwZT10ZXh0XSxcbiAgc2VsZWN0IHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgLyogUHJldmVudCBmcm9tIHpvb21pbmcgb24gZm9jdXMgKi8gfSB9XG5cbi5pZTggLmlucHV0LXRleHQge1xuICBtYXgtd2lkdGg6IG5vbmU7IH1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxuICogSW5wdXRzIC0gUXVhbnRpdHlcbiAqL1xuaW5wdXRbdHlwZT1udW1iZXJdLnF0eSxcbmlucHV0W3R5cGU9dGV4dF0ucXR5IHtcbiAgd2lkdGg6IDNlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICpcbiAqIFBsYWNlaG9sZGVyXG4gKi9cbjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjNGM0YzRlOyB9XG5cbmlucHV0Oi1tb3otcGxhY2Vob2xkZXIge1xuICBjb2xvcjogIzRjNGM0ZTsgfVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXG4gKiBDaGVja2JveCBBbmQgUmFkaW9cbiAqL1xuLmNoZWNrYm94LFxuLnJhZGlvIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IC0xcHg7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuXG4uY2hlY2tib3ggKyBsYWJlbCxcbi5yYWRpbyArIGxhYmVsIHtcbiAgd2lkdGg6IGF1dG87XG4gIG1heC13aWR0aDogODUlO1xuICBwYWRkaW5nOiAwIDAgMCA4cHg7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgdmVydGljYWwtYWxpZ246IHRvcDsgfVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXG4gKiBWYWxpZGF0aW9uXG4gKi9cbnAucmVxdWlyZWQsXG4udmFsaWRhdGlvbi1hZHZpY2Uge1xuICBtYXJnaW46IDVweCAwIDA7XG4gIGNvbG9yOiAjREYyODBBO1xuICBmb250LXNpemU6IDEzcHg7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogRm9ybSBMaXN0XG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLmZvcm0tbGlzdCA+IGxpIHtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDsgfVxuXG4uZm9ybS1saXN0IC5pbnB1dC1yYW5nZSAuaW5wdXQtdGV4dCB7XG4gIHdpZHRoOiA3NHB4OyB9XG5cbi5mb3JtLWxpc3QgLmZpZWxkLFxuLmZvcm0tbGlzdCAud2lkZSxcbi5mb3JtLWxpc3QgLmNvbnRyb2wge1xuICBtYXJnaW4tYm90dG9tOiAxMHB4OyB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAwcHgpIHtcbiAgLmZvcm0tbGlzdCAuZmllbGRzIHtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4OyB9XG4gICAgLmZvcm0tbGlzdCAuZmllbGRzOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC5mb3JtLWxpc3QgLmZpZWxkcy5oYXMtaGFsZnMge1xuICAgICAgbWFyZ2luLWxlZnQ6IC01cHg7XG4gICAgICBtYXJnaW4tcmlnaHQ6IC01cHg7IH1cbiAgICAgIC5mb3JtLWxpc3QgLmZpZWxkcy5oYXMtaGFsZnMgLmZpZWxkIHtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuICAgICAgICAuZm9ybS1saXN0IC5maWVsZHMuaGFzLWhhbGZzIC5maWVsZC5oYWxmIHtcbiAgICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gICAgICAgIC5mb3JtLWxpc3QgLmZpZWxkcy5oYXMtaGFsZnMgLmZpZWxkLnF1YXJ0ZXIge1xuICAgICAgICAgIHdpZHRoOiAzMCU7XG4gICAgICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgICAgICAgLmZvcm0tbGlzdCAuZmllbGRzLmhhcy1oYWxmcyAuZmllbGQudGhyZWVxdWFydGVycyB7XG4gICAgICAgICAgd2lkdGg6IDcwJTtcbiAgICAgICAgICBmbG9hdDogbGVmdDsgfVxuICAgICAgICAuZm9ybS1saXN0IC5maWVsZHMuaGFzLWhhbGZzIC5maWVsZCAuaW5wdXQtYm94IHtcbiAgICAgICAgICBtYXJnaW46IDAgNXB4OyB9IH1cblxuI2NvLXNoaXBwaW5nLW1ldGhvZC1mb3JtIC5idXR0b25zLXNldCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDsgfVxuXG4jY28tc2hpcHBpbmctbWV0aG9kLWZvcm0gI3NfbWV0aG9kX3RhYmxlcmF0ZV9iZXN0d2F5IHtcbiAgb3BhY2l0eTogMDsgfVxuXG4jY28tc2hpcHBpbmctbWV0aG9kLWZvcm0gLnNwLW1ldGhvZHMgZGQgbGFiZWwge1xuICBwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDsgfVxuXG4jY28tc2hpcHBpbmctbWV0aG9kLWZvcm0gYnV0dG9uLCAjY28tc2hpcHBpbmctbWV0aG9kLWZvcm0gW3R5cGU9c3VibWl0XSB7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBjb2xvcjogIzAwM2I1ZjtcbiAgZm9udC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuXG4vKiBUdXJuIHRoZSBsYWJlbCBvZiBjb250cm9scyAocmFkaW8vY2hlY2tib3gpIGludG8gYSBidXR0b24gc3R5bGUgdGhhdCB3cmFwcyB0aGUgaW5wdXQgKi9cbi5mb3JtLWxpc3QgLmNvbnRyb2wsXG4uc3AtbWV0aG9kcyBkdCxcbiNjaGVja291dC1zaGlwcGluZy1tZXRob2QtbG9hZCAuc3AtbWV0aG9kcyBkZCxcbiNjby1zaGlwcGluZy1tZXRob2QtZm9ybSAuc3AtbWV0aG9kcyBkZCxcbi5wcm9kdWN0LW9wdGlvbnMgdWwub3B0aW9ucy1saXN0IHtcbiAgLyogV2hlbiBhIGxhYmVsIGlzIG5leHQgdG8gYW4gaW5wdXQgdGhhdCBpcyBzZXQgdG8gbm90IGRpc3BsYXksIHdlIHNob3VsZCBzdHlsZSB0aGUgbGFiZWwgaW4gYSBub24tY2xpY2thYmxlIHN0YXRlICovIH1cbiAgLmZvcm0tbGlzdCAuY29udHJvbCBkaXYuaW5wdXQtYm94LFxuICAuc3AtbWV0aG9kcyBkdCBkaXYuaW5wdXQtYm94LFxuICAjY2hlY2tvdXQtc2hpcHBpbmctbWV0aG9kLWxvYWQgLnNwLW1ldGhvZHMgZGQgZGl2LmlucHV0LWJveCxcbiAgI2NvLXNoaXBwaW5nLW1ldGhvZC1mb3JtIC5zcC1tZXRob2RzIGRkIGRpdi5pbnB1dC1ib3gsXG4gIC5wcm9kdWN0LW9wdGlvbnMgdWwub3B0aW9ucy1saXN0IGRpdi5pbnB1dC1ib3gge1xuICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICBmbG9hdDogbGVmdDsgfVxuICAgIC5mb3JtLWxpc3QgLmNvbnRyb2wgZGl2LmlucHV0LWJveDphZnRlcixcbiAgICAuc3AtbWV0aG9kcyBkdCBkaXYuaW5wdXQtYm94OmFmdGVyLFxuICAgICNjaGVja291dC1zaGlwcGluZy1tZXRob2QtbG9hZCAuc3AtbWV0aG9kcyBkZCBkaXYuaW5wdXQtYm94OmFmdGVyLFxuICAgICNjby1zaGlwcGluZy1tZXRob2QtZm9ybSAuc3AtbWV0aG9kcyBkZCBkaXYuaW5wdXQtYm94OmFmdGVyLFxuICAgIC5wcm9kdWN0LW9wdGlvbnMgdWwub3B0aW9ucy1saXN0IGRpdi5pbnB1dC1ib3g6YWZ0ZXIge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAuZm9ybS1saXN0IC5jb250cm9sIGlucHV0LnJhZGlvLFxuICAuZm9ybS1saXN0IC5jb250cm9sIGlucHV0LmNoZWNrYm94LFxuICAuc3AtbWV0aG9kcyBkdCBpbnB1dC5yYWRpbyxcbiAgLnNwLW1ldGhvZHMgZHQgaW5wdXQuY2hlY2tib3gsXG4gICNjaGVja291dC1zaGlwcGluZy1tZXRob2QtbG9hZCAuc3AtbWV0aG9kcyBkZCBpbnB1dC5yYWRpbyxcbiAgI2NoZWNrb3V0LXNoaXBwaW5nLW1ldGhvZC1sb2FkIC5zcC1tZXRob2RzIGRkIGlucHV0LmNoZWNrYm94LFxuICAjY28tc2hpcHBpbmctbWV0aG9kLWZvcm0gLnNwLW1ldGhvZHMgZGQgaW5wdXQucmFkaW8sXG4gICNjby1zaGlwcGluZy1tZXRob2QtZm9ybSAuc3AtbWV0aG9kcyBkZCBpbnB1dC5jaGVja2JveCxcbiAgLnByb2R1Y3Qtb3B0aW9ucyB1bC5vcHRpb25zLWxpc3QgaW5wdXQucmFkaW8sXG4gIC5wcm9kdWN0LW9wdGlvbnMgdWwub3B0aW9ucy1saXN0IGlucHV0LmNoZWNrYm94IHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tcmlnaHQ6IC00MHB4O1xuICAgIG1hcmdpbi10b3A6IDEwcHg7IH1cbiAgLmZvcm0tbGlzdCAuY29udHJvbCBsYWJlbCxcbiAgLnNwLW1ldGhvZHMgZHQgbGFiZWwsXG4gICNjaGVja291dC1zaGlwcGluZy1tZXRob2QtbG9hZCAuc3AtbWV0aG9kcyBkZCBsYWJlbCxcbiAgI2NvLXNoaXBwaW5nLW1ldGhvZC1mb3JtIC5zcC1tZXRob2RzIGRkIGxhYmVsLFxuICAucHJvZHVjdC1vcHRpb25zIHVsLm9wdGlvbnMtbGlzdCBsYWJlbCB7XG4gICAgY29sb3I6ICMwMDNiNWY7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0Y0RjRGNDtcbiAgICBwYWRkaW5nOiA1cHggMTBweDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgcGFkZGluZzogNnB4IDAgNnB4IDI1cHg7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuICAuZm9ybS1saXN0IC5jb250cm9sIC5uby1kaXNwbGF5ICsgbGFiZWwsXG4gIC5zcC1tZXRob2RzIGR0IC5uby1kaXNwbGF5ICsgbGFiZWwsXG4gICNjaGVja291dC1zaGlwcGluZy1tZXRob2QtbG9hZCAuc3AtbWV0aG9kcyBkZCAubm8tZGlzcGxheSArIGxhYmVsLFxuICAjY28tc2hpcHBpbmctbWV0aG9kLWZvcm0gLnNwLW1ldGhvZHMgZGQgLm5vLWRpc3BsYXkgKyBsYWJlbCxcbiAgLnByb2R1Y3Qtb3B0aW9ucyB1bC5vcHRpb25zLWxpc3QgLm5vLWRpc3BsYXkgKyBsYWJlbCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgcGFkZGluZy1sZWZ0OiAwOyB9XG4gICAgLmZvcm0tbGlzdCAuY29udHJvbCAubm8tZGlzcGxheSArIGxhYmVsOmhvdmVyLFxuICAgIC5zcC1tZXRob2RzIGR0IC5uby1kaXNwbGF5ICsgbGFiZWw6aG92ZXIsXG4gICAgI2NoZWNrb3V0LXNoaXBwaW5nLW1ldGhvZC1sb2FkIC5zcC1tZXRob2RzIGRkIC5uby1kaXNwbGF5ICsgbGFiZWw6aG92ZXIsXG4gICAgI2NvLXNoaXBwaW5nLW1ldGhvZC1mb3JtIC5zcC1tZXRob2RzIGRkIC5uby1kaXNwbGF5ICsgbGFiZWw6aG92ZXIsXG4gICAgLnByb2R1Y3Qtb3B0aW9ucyB1bC5vcHRpb25zLWxpc3QgLm5vLWRpc3BsYXkgKyBsYWJlbDpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuXG4ucHJvZHVjdC1vcHRpb25zIHVsLm9wdGlvbnMtbGlzdCBsYWJlbCxcbi5jb2wyLXNldCAuZm9ybS1saXN0IC5jb250cm9sIGxhYmVsIHtcbiAgbWluLXdpZHRoOiBpbmhlcml0O1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDAlOyB9XG5cbi5mb3JtLWxpc3QgLmNvbnRyb2wucmVtZW1iZXItbWUtYm94IGxhYmVsIHtcbiAgd2lkdGg6IGF1dG87XG4gIG1heC13aWR0aDogbm9uZTtcbiAgbWluLXdpZHRoOiBpbmhlcml0OyB9XG5cbi5mb3JtLWxpc3QgLmNvbnRyb2wge1xuICBtYXJnaW4tdG9wOiAxMHB4OyB9XG4gIC5mb3JtLWxpc3QgLmNvbnRyb2wgbGFiZWwge1xuICAgIGZsb2F0OiBub25lOyB9XG4gIC5mb3JtLWxpc3QgLmNvbnRyb2wgLnJhZGlvLFxuICAuZm9ybS1saXN0IC5jb250cm9sIC5jaGVja2JveCB7XG4gICAgbWFyZ2luLXJpZ2h0OiA2cHg7IH1cbiAgLmZvcm0tbGlzdCAuY29udHJvbCAuaW5wdXQtYm94IHtcbiAgICBjbGVhcjogbm9uZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgcGFkZGluZzogMDsgfVxuXG4qOmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTsgfVxuXG4vKiByZW1vdmUgc3RhbmRhcmQtc3R5bGVzICovXG5zZWxlY3Qge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBmb250LXNpemU6IDFlbTtcbiAgd2lkdGg6IDEwMCU7IH1cblxuLyogc3R5bGluZyAqL1xuc2VsZWN0IHtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDhweCAxMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKGltYWdlcy9pY29uLWZvcm0tc2VsZWN0LWFycm93LWRvd24uc3ZnKTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgMTBweCB0b3AgMTZweDtcbiAgYmFja2dyb3VuZC1zaXplOiAxMHB4O1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAwcHgpIHtcbiAgICBzZWxlY3Qge1xuICAgICAgcGFkZGluZzogNXB4IDEwcHg7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCAxMHB4IHRvcCAxNHB4OyB9IH1cblxuc2VsZWN0W2Rpc2FibGVkXSB7XG4gIG9wYWNpdHk6IC42O1xuICBjb2xvcjogIzgwN2U4MjsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBUYWJsZSBIZWxwZXJzXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLmhpZGUtdGgge1xuICB0ZXh0LWluZGVudDogLTk5OTlweDsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBEYXRhIFRhYmxlXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLmRhdGEtdGFibGUge1xuICB3aWR0aDogMTAwJTtcbiAgYm9yZGVyLXNwYWNpbmc6IDA7IH1cblxuLmRhdGEtdGFibGUgdGQsXG4uZGF0YS10YWJsZSB0aCB7XG4gIHBhZGRpbmc6IDA7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7IH1cblxuLmRhdGEtdGFibGUuY2hlY2tvdXQtcmV2aWV3LXRhYmxlIHtcbiAgbWFyZ2luLWxlZnQ6IC01cHg7XG4gIG1hcmdpbi1yaWdodDogLTVweDsgfVxuICAuZGF0YS10YWJsZS5jaGVja291dC1yZXZpZXctdGFibGUgdGgge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG4gIC5kYXRhLXRhYmxlLmNoZWNrb3V0LXJldmlldy10YWJsZSB0aCwgLmRhdGEtdGFibGUuY2hlY2tvdXQtcmV2aWV3LXRhYmxlIHRkIHtcbiAgICBwYWRkaW5nOiA1cHg7IH1cbiAgLmRhdGEtdGFibGUuY2hlY2tvdXQtcmV2aWV3LXRhYmxlIHRmb290IHRoLCAuZGF0YS10YWJsZS5jaGVja291dC1yZXZpZXctdGFibGUgdGZvb3QgdGQge1xuICAgIHBhZGRpbmc6IDA7IH1cblxuLmRhdGEtdGFibGUgdGgge1xuICBsaW5lLWhlaWdodDogMS40O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XG5cbi5kYXRhLXRhYmxlIHRyLCB0Zm9vdCB7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbi5kYXRhLXRhYmxlIHRyLmRvdHRlZC1ib3JkZXIgdGQgZGl2IHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZCAjMDAzYjVmOyB9XG5cbi5kYXRhLXRhYmxlIHRib2R5IHRkLFxuLmRhdGEtdGFibGUgdGZvb3QgdGQge1xuICBmb250LWZhbWlseTogQXJpYWwsIHNhbnMtc2VyaWY7IH1cblxuLmRhdGEtdGFibGUgdGJvZHkgdGQgLml0ZW0tb3B0aW9ucyB7XG4gIG1hcmdpbi1sZWZ0OiAyMHB4O1xuICBtYXJnaW4tdG9wOiAxMHB4OyB9XG4gIC5kYXRhLXRhYmxlIHRib2R5IHRkIC5pdGVtLW9wdGlvbnMgZHQ6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICc6JzsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBHZW5lcmljIEluZm8gVGFibGVcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4uaW5mby1ib3gge1xuICBib3JkZXI6IDFweCBzb2xpZCAjQzBDMEMwO1xuICBwYWRkaW5nOiAxMnB4IDE1cHg7XG4gIG1hcmdpbjogMCAwIDE1cHg7IH1cbiAgLmluZm8tYm94IGgyIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBmb250LXNpemU6IDEzcHg7IH1cblxuLmluZm8tdGFibGUgdGgsXG4uaW5mby10YWJsZSB0ZCB7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7IH1cblxuLmluZm8tdGFibGUgdGgge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgcGFkZGluZzogNHB4IDIwcHggNHB4IDA7IH1cblxuLmluZm8tdGFibGUgdGQge1xuICBwYWRkaW5nOiA0cHggMDsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBaZWJyYS1TdHJpcGUgVGFibGVcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4uemVicmEtdGFibGUgdHI6Zmlyc3QtY2hpbGQsXG4uemVicmEtdGFibGUgdGg6Zmlyc3QtY2hpbGQge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI0MwQzBDMDsgfVxuXG4uemVicmEtdGFibGUgdGQsXG4uemVicmEtdGFibGUgdGgge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0MwQzBDMDtcbiAgcGFkZGluZzogNnB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuXG4uemVicmEtdGFibGUgdHIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRUVFREVEOyB9XG5cbi56ZWJyYS10YWJsZSB0cjpudGgtY2hpbGQob2RkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGOEY3RjU7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogTGluZWFyaXplIFRhYmxlXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0NzlweCkge1xuICAubGluZWFyaXplLXRhYmxlIHtcbiAgICAvKiBIZWxwZXJzICovIH1cbiAgICAubGluZWFyaXplLXRhYmxlIHRyLFxuICAgIC5saW5lYXJpemUtdGFibGUgdGgsXG4gICAgLmxpbmVhcml6ZS10YWJsZSB0ZCB7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgIC5saW5lYXJpemUtdGFibGUgdGhlYWQgdGgge1xuICAgICAgYm9yZGVyLXJpZ2h0OiAwO1xuICAgICAgYm9yZGVyLWxlZnQ6IDA7IH1cbiAgICAubGluZWFyaXplLXRhYmxlIHRoZWFkIHRoLmxpbi1oaWRlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAubGluZWFyaXplLXRhYmxlIHRoZWFkIHRoOm50aC1jaGlsZCgxbisyKSB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgLmxpbmVhcml6ZS10YWJsZSB0Ym9keSB0ciB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0NDQ0NDQzsgfVxuICAgIC5saW5lYXJpemUtdGFibGUgdGJvZHkgdGQge1xuICAgICAgcGFkZGluZzogMCAxMHB4IDRweDtcbiAgICAgIGJvcmRlci1yaWdodDogMDtcbiAgICAgIGJvcmRlci1ib3R0b206IDA7IH1cbiAgICAubGluZWFyaXplLXRhYmxlIHRib2R5IHRkLmxpbi1oaWRlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAubGluZWFyaXplLXRhYmxlIHRib2R5IHRkOmZpcnN0LWNoaWxkIHtcbiAgICAgIHBhZGRpbmctdG9wOiAxMHB4OyB9XG4gICAgLmxpbmVhcml6ZS10YWJsZSB0Ym9keSB0ZDpmaXJzdC1jaGlsZCxcbiAgICAubGluZWFyaXplLXRhYmxlIHRib2R5IHRkOmZpcnN0LWNoaWxkIGgzIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG4gICAgLmxpbmVhcml6ZS10YWJsZSB0Ym9keSB0ZFtkYXRhLXJ3ZC1sYWJlbF0ge1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgIHBhZGRpbmctbGVmdDogMzBweDsgfVxuICAgIC5saW5lYXJpemUtdGFibGUgdGJvZHkgdGRbZGF0YS1yd2QtbGFiZWxdOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiBhdHRyKGRhdGEtcndkLWxhYmVsKSBcIjpcIjtcbiAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgIGZvbnQtZmFtaWx5OiBcIlVidW50dVRpdGxpbmctQm9sZFwiLCBcIkhlbHZldGljYSBOZXVlXCIsIFZlcmRhbmEsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgICAgcGFkZGluZy1yaWdodDogNXB4O1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuICAgIC5saW5lYXJpemUtdGFibGUgdGZvb3QgdHIge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB0ZXh0LWFsaWduOiByaWdodDsgfVxuICAgIC5saW5lYXJpemUtdGFibGUgdGZvb3QgdHI6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLmxpbmVhcml6ZS10YWJsZSB0Zm9vdCB0ZCB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gICAgLmxpbmVhcml6ZS10YWJsZSB0Zm9vdCB0ZC5saW4taGlkZSB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgLmxpbmVhcml6ZS10YWJsZSB0Zm9vdCB0ZDpudGgtY2hpbGQob2RkKSB7XG4gICAgICBjbGVhcjogbGVmdDtcbiAgICAgIHdpZHRoOiA2MCU7IH1cbiAgICAubGluZWFyaXplLXRhYmxlIHRmb290IHRkOm50aC1jaGlsZChldmVuKSB7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgd2lkdGg6IDQwJTsgfVxuICAgIC5saW5lYXJpemUtdGFibGUgLmxpbmVhcml6ZS1oaWRlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAubGluZWFyaXplLXRhYmxlIC5saW5lYXJpemUtdW5wYWQge1xuICAgICAgcGFkZGluZzogMDsgfVxuICAgIC5saW5lYXJpemUtdGFibGUgLmxpbmVhcml6ZS1zaG93IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrOyB9IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAubGluZWFyaXplLXRhYmxlLWxhcmdlIHtcbiAgICAvKiBIZWxwZXJzICovIH1cbiAgICAubGluZWFyaXplLXRhYmxlLWxhcmdlIHRyLFxuICAgIC5saW5lYXJpemUtdGFibGUtbGFyZ2UgdGgsXG4gICAgLmxpbmVhcml6ZS10YWJsZS1sYXJnZSB0ZCB7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgIC5saW5lYXJpemUtdGFibGUtbGFyZ2UgdGhlYWQgdGgge1xuICAgICAgYm9yZGVyLXJpZ2h0OiAwO1xuICAgICAgYm9yZGVyLWxlZnQ6IDA7IH1cbiAgICAubGluZWFyaXplLXRhYmxlLWxhcmdlIHRoZWFkIHRoLmxpbi1oaWRlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAubGluZWFyaXplLXRhYmxlLWxhcmdlIHRoZWFkIHRoOm50aC1jaGlsZCgxbisyKSB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgLmxpbmVhcml6ZS10YWJsZS1sYXJnZSB0Ym9keSB0ciB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0NDQ0NDQzsgfVxuICAgIC5saW5lYXJpemUtdGFibGUtbGFyZ2UgdGJvZHkgdGQge1xuICAgICAgcGFkZGluZzogMCAxMHB4IDRweDtcbiAgICAgIGJvcmRlci1yaWdodDogMDtcbiAgICAgIGJvcmRlci1ib3R0b206IDA7IH1cbiAgICAubGluZWFyaXplLXRhYmxlLWxhcmdlIHRib2R5IHRkLmxpbi1oaWRlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAubGluZWFyaXplLXRhYmxlLWxhcmdlIHRib2R5IHRkOmZpcnN0LWNoaWxkIHtcbiAgICAgIHBhZGRpbmctdG9wOiAxMHB4OyB9XG4gICAgLmxpbmVhcml6ZS10YWJsZS1sYXJnZSB0Ym9keSB0ZDpmaXJzdC1jaGlsZCxcbiAgICAubGluZWFyaXplLXRhYmxlLWxhcmdlIHRib2R5IHRkOmZpcnN0LWNoaWxkIGgzIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG4gICAgLmxpbmVhcml6ZS10YWJsZS1sYXJnZSB0Ym9keSB0ZFtkYXRhLXJ3ZC1sYWJlbF0ge1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgIHBhZGRpbmctbGVmdDogMzBweDsgfVxuICAgIC5saW5lYXJpemUtdGFibGUtbGFyZ2UgdGJvZHkgdGRbZGF0YS1yd2QtbGFiZWxdOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiBhdHRyKGRhdGEtcndkLWxhYmVsKSBcIjpcIjtcbiAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgIGZvbnQtZmFtaWx5OiBcIlVidW50dVRpdGxpbmctQm9sZFwiLCBcIkhlbHZldGljYSBOZXVlXCIsIFZlcmRhbmEsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgICAgcGFkZGluZy1yaWdodDogNXB4O1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuICAgIC5saW5lYXJpemUtdGFibGUtbGFyZ2UgdGZvb3QgdHIge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB0ZXh0LWFsaWduOiByaWdodDsgfVxuICAgIC5saW5lYXJpemUtdGFibGUtbGFyZ2UgdGZvb3QgdHI6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLmxpbmVhcml6ZS10YWJsZS1sYXJnZSB0Zm9vdCB0ZCB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gICAgLmxpbmVhcml6ZS10YWJsZS1sYXJnZSB0Zm9vdCB0ZC5saW4taGlkZSB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgLmxpbmVhcml6ZS10YWJsZS1sYXJnZSB0Zm9vdCB0ZDpudGgtY2hpbGQob2RkKSB7XG4gICAgICBjbGVhcjogbGVmdDtcbiAgICAgIHdpZHRoOiA2MCU7IH1cbiAgICAubGluZWFyaXplLXRhYmxlLWxhcmdlIHRmb290IHRkOm50aC1jaGlsZChldmVuKSB7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgd2lkdGg6IDQwJTsgfVxuICAgIC5saW5lYXJpemUtdGFibGUtbGFyZ2UgLmxpbmVhcml6ZS1oaWRlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAubGluZWFyaXplLXRhYmxlLWxhcmdlIC5saW5lYXJpemUtdW5wYWQge1xuICAgICAgcGFkZGluZzogMDsgfVxuICAgIC5saW5lYXJpemUtdGFibGUtbGFyZ2UgLmxpbmVhcml6ZS1zaG93IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrOyB9IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MDBweCkge1xuICAubGluZWFyaXplLXRhYmxlIC5saW5lYXJpemUtY29sbGFwc2Uge1xuICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBHbG9iYWxcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5odG1sLFxuYm9keSB7XG4gIGhlaWdodDogMTAwJTsgfVxuXG4ud3JhcHBlciB7XG4gIG1pbi13aWR0aDogMzIwcHg7XG4gIG1pbi1oZWlnaHQ6IDEwMCU7XG4gIG1hcmdpbjogMCBhdXRvOyB9XG5cbi53cmFwcGVyOmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICBjbGVhcjogYm90aDsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBIZWFkZXJcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4ucGFnZS1oZWFkZXIge1xuICBwb3NpdGlvbjogc3RhdGljOyB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzcxcHgpIHtcbiAgLnBhZ2UtaGVhZGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH0gfVxuXG4uaGVhZGVyLWxhbmd1YWdlLWNvbnRhaW5lcixcbi5wYWdlLWhlYWRlciB7XG4gIGZvbnQtZmFtaWx5OiBcIlVidW50dVRpdGxpbmctQm9sZFwiLCBcIkhlbHZldGljYSBOZXVlXCIsIFZlcmRhbmEsIEFyaWFsLCBzYW5zLXNlcmlmOyB9XG5cbi5hY2NvdW50LWNhcnQtd3JhcHBlciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBMYW5ndWFnZSBzd2l0Y2hlciArIHdlbGNvbWUgbWVzc2FnZVxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5mb3JtLWxhbmd1YWdlIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAwcHgpIHtcbiAgICAuZm9ybS1sYW5ndWFnZSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDE1cHg7IH0gfVxuICAuZm9ybS1sYW5ndWFnZSBzZWxlY3Q6Oi1tcy1leHBhbmQge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmZvcm0tbGFuZ3VhZ2U6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgYmFja2dyb3VuZDogdXJsKGltYWdlcy9pY29uLWxhbmctc3dpdGNoLnN2Zyk7XG4gICAgd2lkdGg6IDExcHg7XG4gICAgaGVpZ2h0OiA3cHg7XG4gICAgYmFja2dyb3VuZC1zaXplOiAxMXB4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogMTFweDtcbiAgICB0b3A6IDE4cHg7IH1cblxuI3NlbGVjdC1sYW5ndWFnZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1mYW1pbHk6IFwiVWJ1bnR1VGl0bGluZy1Cb2xkXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgVmVyZGFuYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIHBhZGRpbmc6IDA7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyB9XG5cbi5oZWFkZXItbGFuZ3VhZ2UtY29udGFpbmVyIHtcbiAgcGFkZGluZzogMTVweDtcbiAgcGFkZGluZy10b3A6IDEycHg7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xuICB3aWR0aDogMTM2MHB4O1xuICBtYXgtd2lkdGg6IDkwJTtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bzsgfVxuICAuaGVhZGVyLWxhbmd1YWdlLWNvbnRhaW5lcjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgY2xlYXI6IGJvdGg7IH1cblxuLndlbGNvbWUtbXNnIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4vKiBAaW5jbHVkZSBicChtaW4td2lkdGgsICRicC1tZWRpdW0gKyAxKSB7XG5cbiAgICAgICAgLndlbGNvbWUtbXNnIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICB9Ki9cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIExvZ29cbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4ubG9nby13cmFwcGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiA3MHB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAxNXB4O1xuICB0b3A6IDE1cHg7IH1cbiAgLmxvZ28td3JhcHBlciAubG9nbyBpbWcge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC13aWR0aDogMTAwJTsgfVxuICAgIC5sb2dvLXdyYXBwZXIgLmxvZ28gaW1nLnNtYWxsIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZTsgfVxuICAgIC5sb2dvLXdyYXBwZXIgLmxvZ28gaW1nLmxhcmdlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MDBweCkge1xuICAubG9nby13cmFwcGVyIHtcbiAgICB3aWR0aDogODBweDsgfSB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzcxcHgpIHtcbiAgLmxvZ28td3JhcHBlciB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1heC13aWR0aDogMTUwMHB4O1xuICAgIG1hcmdpbjogYXV0bzsgfVxuICAgIC5sb2dvLXdyYXBwZXIgLmxvZ28ge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4OyB9XG4gICAgICAubG9nby13cmFwcGVyIC5sb2dvIGltZy5zbWFsbCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAgIC5sb2dvLXdyYXBwZXIgLmxvZ28gaW1nLmxhcmdlIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lOyB9IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogU2tpcCBMaW5rc1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5za2lwLWxpbmtzIHtcbiAgY2xlYXI6IGJvdGg7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NzFweCkge1xuICAgIC5za2lwLWxpbmtzIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMTBweDsgfSB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTAxcHgpIHtcbiAgLnNraXAtbGlua3Mge1xuICAgIHdpZHRoOiA3MCU7XG4gICAgZmxvYXQ6IGxlZnQ7IH0gfVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXG4gKiBTa2lwIC0gTGlua1xuICovXG4uc2tpcC1saW5rLCAjc2VsZWN0LWxhbmd1YWdlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDQ0cHg7XG4gIGZvbnQtc2l6ZTogMTdweDtcbiAgY29sb3I6ICM0YzRjNGU7XG4gIGxpbmUtaGVpZ2h0OiA0MnB4O1xuICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAwcHgpIHtcbiAgICAuc2tpcC1saW5rLCAjc2VsZWN0LWxhbmd1YWdlIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMjRweDsgfSB9XG4gIC5za2lwLWxpbmsgaW1nLCAjc2VsZWN0LWxhbmd1YWdlIGltZyB7XG4gICAgbWFyZ2luLXJpZ2h0OiAxMHB4OyB9XG4gIC5za2lwLWxpbms6aG92ZXIsIC5za2lwLWxpbms6YWN0aXZlLCAuc2tpcC1saW5rOnZpc2l0ZWQsICNzZWxlY3QtbGFuZ3VhZ2U6aG92ZXIsICNzZWxlY3QtbGFuZ3VhZ2U6YWN0aXZlLCAjc2VsZWN0LWxhbmd1YWdlOnZpc2l0ZWQge1xuICAgIGNvbG9yOiAjNGM0YzRlICFpbXBvcnRhbnQ7XG4gICAgb3V0bGluZTogbm9uZTsgfVxuXG5hLnNraXAtbGluayB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuXG4uc2tpcC1saW5rIGltZy5pbWFnZS1pY29uIHtcbiAgbWFyZ2luLXRvcDogLTNweDsgfVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXG4gKiBTa2lwIExpbmsgLSBMYWJlbFxuICovXG4uc2tpcC1saW5rIC5sYWJlbCB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MDBweCkge1xuICAuc2tpcC1saW5rIC5sYWJlbCB7XG4gICAgZGlzcGxheTogaW5saW5lOyB9IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogU2tpcCBDb250ZW50XG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnNraXAtY29udGVudCB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5MDFweCkge1xuICAjaGVhZGVyLW5hdiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLXRvcDogMzVweDsgfSB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzcxcHgpIHtcbiAgI2hlYWRlci1uYXYge1xuICAgIG1hcmdpbi10b3A6IDA7IH0gfVxuXG4uc2tpcC1jb250ZW50LnNraXAtYWN0aXZlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJhY2tncm91bmQ6ICNFREVERUQ7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogR2xvYmFsIEhlYWRlciBOYXZpZ2F0aW9uXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NzBweCkge1xuICAuYWNjb3VudC1jYXJ0LXdyYXBwZXIge1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7IH0gfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBOYXYgLSBTa2lwIExpbmtcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4uc2tpcC1uYXY6bm90KC5za2lwLWFjdGl2ZSk6aG92ZXIge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cblxuLnNraXAtbmF2IC5sYWJlbCB7XG4gIGRpc3BsYXk6IGlubGluZTsgfVxuXG4uc2tpcC1uYXYgLmljb24ge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA0cHggNHB4OyB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTAxcHgpIHtcbiAgLnNraXAtbmF2IHtcbiAgICBkaXNwbGF5OiBub25lOyB9IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogTmF2IFByaW1hcnlcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDkwMXB4KSB7XG4gIC5uYXYtcHJpbWFyeSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLXRvcDogMTBweDsgfSB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIEdlbmVyYWwgTmF2aWdhdGlvbiBTdHlsZXNcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4ubmF2LXByaW1hcnkgYSB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgY29sb3I6ICMwMDNiNWY7XG4gIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICBmb250LWZhbWlseTogXCJVYnVudHVUaXRsaW5nLUJvbGRcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBWZXJkYW5hLCBBcmlhbCwgc2Fucy1zZXJpZjsgfVxuXG4ubmF2LXByaW1hcnkgLm1lbnUtYWN0aXZlID4gdWwubGV2ZWwwLFxuLm5hdi1wcmltYXJ5IGxpLmxldmVsMCBsaS5zdWItbWVudS1hY3RpdmUgPiB1bCB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi5uYXYtcHJpbWFyeSBsaS5sZXZlbDAgPiBhIHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuXG4uYWN0aXZlIGEubGV2ZWwwIHtcbiAgY29sb3I6ICMxZjg2YmQ7IH1cblxuYS5sZXZlbDAuYWN0aXZlIHtcbiAgY29sb3I6ICMxZjg2YmQ7IH1cblxuLmNtcy1pbmRleC1pbmRleCBhLmxldmVsMC5hY3RpdmUge1xuICBjb2xvcjogIzAwM2I1ZjsgfVxuICAuY21zLWluZGV4LWluZGV4IGEubGV2ZWwwLmFjdGl2ZTpob3ZlciB7XG4gICAgY29sb3I6ICMxZjg2YmQ7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogU21hbGwgVmlld3BvcnRzIC0gQWNjb3JkaW9uIFN0eWxlIE1lbnVcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4ubW9iaWxlLW9ubHkge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5tb2JpbGUtbmF2LWNvbnRyb2xzIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gIC5za2lwLWNhcnQgaW1nLmltYWdlLWljb24ge1xuICAgIHdpZHRoOiAyN3B4O1xuICAgIG1hcmdpbi1sZWZ0OiA1cHg7IH0gfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDkwMHB4KSB7XG4gIGJvZHkubmF2LW9wZW4ge1xuICAgIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgLnNraXAtYWN0aXZlIC5tb2JpbGUtbmF2LWNvbnRyb2xzIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgbGVmdDogMDtcbiAgICB0b3A6IDA7XG4gICAgei1pbmRleDogOTk5OTtcbiAgICBwYWRkaW5nOiAyMHB4O1xuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgICAuc2tpcC1hY3RpdmUgLm1vYmlsZS1uYXYtY29udHJvbHMgLmZvcm0tbGFuZ3VhZ2Uge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAjaGVhZGVyLW5hdi1jb250YWluZXIge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgei1pbmRleDogOTk5O1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAuM3MgZWFzZTsgfVxuICBpbWcuaW1hZ2UtaWNvbi5uYXYtY29udHJvbC1sZWZ0IHtcbiAgICBtYXJnaW4tbGVmdDogMTVweDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgLjE1cyBlYXNlOyB9XG4gICAgaW1nLmltYWdlLWljb24ubmF2LWNvbnRyb2wtbGVmdC5pcy12aXNpYmxlIHtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICAgICAgb3BhY2l0eTogMTsgfVxuICBuYXYjbmF2IHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgb3ZlcmZsb3c6IHNjcm9sbDsgfVxuICAjaGVhZGVyLW5hdiB1bCwgI2hlYWRlci1uYXYgb2wge1xuICAgIHBhZGRpbmctdG9wOiA5NXB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAzNXB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cbiAgICAjaGVhZGVyLW5hdiB1bCBsaSwgI2hlYWRlci1uYXYgb2wgbGkge1xuICAgICAgcGFkZGluZzogMCAyMHB4OyB9XG4gICAgICAjaGVhZGVyLW5hdiB1bCBsaSBhLCAjaGVhZGVyLW5hdiBvbCBsaSBhIHtcbiAgICAgICAgcGFkZGluZzogN3B4IDAgNXB4IDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZCAjMDAzYjVmOyB9XG4gICAgICAjaGVhZGVyLW5hdiB1bCBsaS52aWV3LWFsbCA+IGEsICNoZWFkZXItbmF2IG9sIGxpLnZpZXctYWxsID4gYSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBkb3R0ZWQgIzAwM2I1ZjsgfVxuICAjaGVhZGVyLW5hdiAubmF2LTEgdWwgbGkuZmlyc3QgPiBhIHtcbiAgICBib3JkZXItdG9wOiAxcHggZG90dGVkICMwMDNiNWY7IH1cbiAgI2hlYWRlci1uYXYgbGkubmF2LTEuZmlyc3QgPiBhIHtcbiAgICBib3JkZXItdG9wOiAxcHggZG90dGVkICMwMDNiNWY7IH1cbiAgLm5hdi1wcmltYXJ5IHVsLmxldmVsMCxcbiAgLm5hdi1wcmltYXJ5IHVsLmxldmVsMSxcbiAgLm5hdi1wcmltYXJ5IHVsLmxldmVsMiB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDEwMCU7XG4gICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgdG9wOiAwO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB6LWluZGV4OiA5OTk7IH1cbiAgLm5hdi1wcmltYXJ5IGxpLmxldmVsMCB1bCB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICBsaS5zdXBwb3J0LWJsb2NrIHtcbiAgICBkaXNwbGF5OiBub25lOyB9IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xuICAuc2tpcC1hY3RpdmUgLm1vYmlsZS1uYXYtY29udHJvbHMgLmZvcm0tbGFuZ3VhZ2Uge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmbG9hdDogcmlnaHQ7IH1cbiAgICAuc2tpcC1hY3RpdmUgLm1vYmlsZS1uYXYtY29udHJvbHMgLmZvcm0tbGFuZ3VhZ2UgI3NlbGVjdC1sYW5ndWFnZSB7XG4gICAgICBmb250LXNpemU6IDI2cHg7XG4gICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIGNvbG9yOiAjYTVhNWE0OyB9XG4gICAgLnNraXAtYWN0aXZlIC5tb2JpbGUtbmF2LWNvbnRyb2xzIC5mb3JtLWxhbmd1YWdlOmFmdGVyIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBMYXJnZSBWaWV3cG9ydHMgLSBEcm9wZG93biBNZW51XG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5MDFweCkge1xuICAubmF2LXByaW1hcnkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAvKiBEZWZhdWx0IHN0eWxlcyBmb3IgMSsgZHJvcC1kb3duIG1lbnVzICovXG4gICAgLyogTGV2ZWwgMisgKi8gfVxuICAgIC5uYXYtcHJpbWFyeSBsaSBhIHtcbiAgICAgIG91dGxpbmU6IDAgIWltcG9ydGFudDsgfVxuICAgIC5uYXYtcHJpbWFyeSBhLmxldmVsMCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDI4cHg7XG4gICAgICBmb250LXNpemU6IDI0cHg7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMTBweDsgfVxuICAgIC5uYXYtcHJpbWFyeSAudmlldy1hbGwge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5uYXYtcHJpbWFyeSAubWVudS1hY3RpdmUgYS5sZXZlbDAuaGFzLWNoaWxkcmVuOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiBcIlxcQVwiO1xuICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgIGJvcmRlci13aWR0aDogMCAxNXB4IDE1cHggMTVweDtcbiAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgd2hpdGUgdHJhbnNwYXJlbnQ7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBib3R0b206IC0zcHg7XG4gICAgICBsZWZ0OiA1MCU7XG4gICAgICBtYXJnaW4tbGVmdDogLTE1cHg7IH1cbiAgICAubmF2LXByaW1hcnkgbGkubGV2ZWwwLFxuICAgIC5uYXYtcHJpbWFyeSBhLmxldmVsMCB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cbiAgICAubmF2LXByaW1hcnkgYTpob3ZlcixcbiAgICAubmF2LXByaW1hcnkgbGk6aG92ZXIgPiBhIHtcbiAgICAgIGNvbG9yOiAjMWY4NmJkOyB9XG4gICAgLm5hdi1wcmltYXJ5IC5tZW51LWFjdGl2ZSB7XG4gICAgICB6LWluZGV4OiAyMDA7IH1cbiAgICAubmF2LXByaW1hcnkgbGkubGV2ZWwwIHVsIHtcbiAgICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHRvcDogNDBweDtcbiAgICAgIC8qIEhlaWdodCBvZiBcIi5uYXYtcHJpbWFyeSBhLmxldmVsMFwiICovXG4gICAgICBwYWRkaW5nOiAzNXB4IDA7XG4gICAgICB6LWluZGV4OiA5OTk7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgLyogSGlkZSB1bnRpbCBkaXNwbGF5ZWQuICovXG4gICAgICB3aWR0aDogODAlO1xuICAgICAgbWluLWhlaWdodDogMTgwcHg7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG4gICAgICAubmF2LXByaW1hcnkgbGkubGV2ZWwwIHVsID4gbGkgYSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTdweDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgY29sb3I6ICM1YjViNWE7IH1cbiAgICAgICAgLm5hdi1wcmltYXJ5IGxpLmxldmVsMCB1bCA+IGxpIGE6aG92ZXIge1xuICAgICAgICAgIGNvbG9yOiAjMDAzYjVmOyB9XG4gICAgICAubmF2LXByaW1hcnkgbGkubGV2ZWwwIHVsIGxpIHtcbiAgICAgICAgcGFkZGluZzogM3B4IDIwcHg7XG4gICAgICAgIG1hcmdpbjogOHB4IDAgN3B4IDA7IH1cbiAgICAgICAgLm5hdi1wcmltYXJ5IGxpLmxldmVsMCB1bCBsaS5zdXBwb3J0LWJsb2NrIHtcbiAgICAgICAgICBtYXJnaW46IDA7IH1cbiAgICAgICAgLm5hdi1wcmltYXJ5IGxpLmxldmVsMCB1bCBsaSBhIHtcbiAgICAgICAgICBsaW5lLWhlaWdodDogMS4zOyB9XG4gICAgICAgIC5uYXYtcHJpbWFyeSBsaS5sZXZlbDAgdWwgbGkucHJvZHVjdGZpbmRlci1saW5rIHtcbiAgICAgICAgICBtYXJnaW4tdG9wOiAzNXB4OyB9XG4gICAgICAgICAgLm5hdi1wcmltYXJ5IGxpLmxldmVsMCB1bCBsaS5wcm9kdWN0ZmluZGVyLWxpbmsgYSB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS4zOyB9XG4gICAgICAubmF2LXByaW1hcnkgbGkubGV2ZWwwIHVsIC5zdXBwb3J0LWJsb2NrIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHdpZHRoOiAyNSU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMzVweCAyMHB4O1xuICAgICAgICB0b3A6IC0xcHg7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAxcHggZG90dGVkICMwMDNiNWY7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuICAgICAgICAubmF2LXByaW1hcnkgbGkubGV2ZWwwIHVsIC5zdXBwb3J0LWJsb2NrIHNwYW4ucGhvbmUge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7IH1cbiAgICAgICAgLm5hdi1wcmltYXJ5IGxpLmxldmVsMCB1bCAuc3VwcG9ydC1ibG9jayAubGVmdCB7XG4gICAgICAgICAgd2lkdGg6IDY0JTtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgei1pbmRleDogOTk5OyB9XG4gICAgICAgIC5uYXYtcHJpbWFyeSBsaS5sZXZlbDAgdWwgLnN1cHBvcnQtYmxvY2sgaDMsIC5uYXYtcHJpbWFyeSBsaS5sZXZlbDAgdWwgLnN1cHBvcnQtYmxvY2sgLmgzIHtcbiAgICAgICAgICBmb250LXNpemU6IDE3cHg7XG4gICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDVweDsgfVxuICAgICAgICAubmF2LXByaW1hcnkgbGkubGV2ZWwwIHVsIC5zdXBwb3J0LWJsb2NrIGltZyB7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHdpZHRoOiA2MCU7XG4gICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICB6LWluZGV4OiA5OTsgfVxuICAgICAgLm5hdi1wcmltYXJ5IGxpLmxldmVsMCB1bDpiZWZvcmUge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAzNXB4O1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgd2lkdGg6IDgwJTtcbiAgICAgICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgICAgIHotaW5kZXg6IDk5OTk7IH1cbiAgICAgIC5uYXYtcHJpbWFyeSBsaS5sZXZlbDAgdWw6YWZ0ZXIge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAzNXB4O1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgd2lkdGg6IDgwJTtcbiAgICAgICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgICAgIHotaW5kZXg6IDk5OTk7IH1cbiAgICAubmF2LXByaW1hcnkgbGkubmF2LTEubGV2ZWwwIHVsLFxuICAgIC5uYXYtcHJpbWFyeSBsaS5uYXYtMy5sZXZlbDAgdWwge1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgICAubmF2LXByaW1hcnkgbGkubmF2LTEubGV2ZWwwIHVsID4gbGkubGV2ZWwxIHtcbiAgICAgIHdpZHRoOiAyNSU7IH1cbiAgICAubmF2LXByaW1hcnkgbGkubmF2LTQubGV2ZWwwIHVsLFxuICAgIC5uYXYtcHJpbWFyeSBsaS5uYXYtNS5sZXZlbDAgdWwge1xuICAgICAgd2lkdGg6IDUwJTsgfVxuICAgIC5uYXYtcHJpbWFyeSBsaS5uYXYtNC5sZXZlbDAgPiB1bCxcbiAgICAubmF2LXByaW1hcnkgbGkubmF2LTUubGV2ZWwwID4gdWwge1xuICAgICAgbGVmdDogYXV0bzsgfVxuICAgIC5uYXYtcHJpbWFyeSBsaS5sZXZlbDAgPiBsaSB7XG4gICAgICB3aWR0aDogMzMuMzMzJTtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cbiAgICAubmF2LXByaW1hcnkgbGkubmF2LTEubGV2ZWwwID4gbGksXG4gICAgLm5hdi1wcmltYXJ5IGxpLm5hdi0zLmxldmVsMCA+IGxpIHtcbiAgICAgIHdpZHRoOiAyNSU7IH1cbiAgICAubmF2LXByaW1hcnkgbGkubmF2LTQubGV2ZWwwID4gbGksXG4gICAgLm5hdi1wcmltYXJ5IGxpLm5hdi01LmxldmVsMCA+IGxpIHtcbiAgICAgIHdpZHRoOiA1MCU7IH1cbiAgICAubmF2LXByaW1hcnkgbGkubGV2ZWwxIHVsIHtcbiAgICAgIGxlZnQ6IDMzLjMzMyU7XG4gICAgICB0b3A6IDA7XG4gICAgICB3aWR0aDogMzMuMzMzJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIGJvcmRlci1sZWZ0OiAxcHggZG90dGVkICM4MDdlODI7IH1cbiAgICAgIC5uYXYtcHJpbWFyeSBsaS5sZXZlbDEgdWwgbGkge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuICAgICAgLm5hdi1wcmltYXJ5IGxpLmxldmVsMSB1bCBsaSBhIHtcbiAgICAgICAgZm9udC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lOyB9XG4gICAgLm5hdi1wcmltYXJ5IC5uYXYtMSBsaS5sZXZlbDEgdWwsXG4gICAgLm5hdi1wcmltYXJ5IC5uYXYtMyBsaS5sZXZlbDEgdWwge1xuICAgICAgbGVmdDogMjUlO1xuICAgICAgd2lkdGg6IDI1JTsgfVxuICAgIC5uYXYtcHJpbWFyeSAubmF2LTEgbGkubGV2ZWwyIHVsLFxuICAgIC5uYXYtcHJpbWFyeSAubmF2LTMgbGkubGV2ZWwyIHVsIHtcbiAgICAgIGxlZnQ6IDEwMCU7XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAgIC5uYXYtcHJpbWFyeSAubmF2LTQgbGkubGV2ZWwxIHVsLFxuICAgIC5uYXYtcHJpbWFyeSAubmF2LTUgbGkubGV2ZWwxIHVsIHtcbiAgICAgIGxlZnQ6IDUwJTtcbiAgICAgIHdpZHRoOiA1MCU7IH0gfVxuXG4ubmF2LXByb2R1Y3QtdGFyZ2V0cyBhIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgZm9udC1mYW1pbHk6IFwiVWJ1bnR1VGl0bGluZy1Cb2xkXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgVmVyZGFuYSwgQXJpYWwsIHNhbnMtc2VyaWYgIWltcG9ydGFudDtcbiAgZm9udC1zaXplOiAxN3B4ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMDAzYjVmICFpbXBvcnRhbnQ7IH1cbiAgLm5hdi1wcm9kdWN0LXRhcmdldHMgYSBpbWcge1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7IH1cbiAgLm5hdi1wcm9kdWN0LXRhcmdldHMgYS5pcy12aXNpYmxlIHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuXG4ubmF2LXByb2R1Y3QtdHJpZ2dlcnMgYSB7XG4gIG1hcmdpbi1ib3R0b206IDExcHg7IH1cblxuLm5hdi1wcmltYXJ5IGxpLm1lbnUtYWN0aXZlID4gdWwge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBTZWFyY2ggLSBTa2lwIExpbmtcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBTZWFyY2ggLSBTa2lwIENvbnRlbnRcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4uc2tpcC1zZWFyY2ggLmltYWdlLWljb24ge1xuICBtYXJnaW4tdG9wOiAtNnB4OyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgICAuc2tpcC1zZWFyY2ggLmltYWdlLWljb24ge1xuICAgICAgd2lkdGg6IDI2cHg7XG4gICAgICBtYXJnaW4tdG9wOiAtMnB4OyB9IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAjaGVhZGVyLXNlYXJjaCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMTRweDtcbiAgICBwYWRkaW5nOiAwIDE1cHg7XG4gICAgd2lkdGg6IDY0JTtcbiAgICB6LWluZGV4OiA5OTk7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHJpZ2h0OiAwOyB9XG4gICAgI2hlYWRlci1zZWFyY2guc2tpcC1hY3RpdmUge1xuICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgLnNraXAtc2VhcmNoIHtcbiAgICBtYXJnaW4tbGVmdDogNXB4OyB9IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzNzJweCkge1xuICAjaGVhZGVyLXNlYXJjaCB7XG4gICAgd2lkdGg6IDYwJTsgfSB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAwcHgpIHtcbiAgLnNraXAtc2VhcmNoIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIG1hcmdpbi1sZWZ0OiA1cHg7IH1cbiAgI2hlYWRlci1zZWFyY2gge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwYWRkaW5nOiAwOyB9XG4gICAgI2hlYWRlci1zZWFyY2ggaW5wdXQge1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICBwYWRkaW5nOiA4cHggMTBweCA2cHggMTBweDtcbiAgICAgIHBhZGRpbmctbGVmdDogNDBweDtcbiAgICAgIHdpZHRoOiAxMjBweDtcbiAgICAgIG1hcmdpbi1yaWdodDogMTRweDtcbiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgLjE1cyBlYXNlLW91dCwgd2lkdGggLjE1cyBlYXNlLW91dDtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjsgfVxuICAgICAgI2hlYWRlci1zZWFyY2ggaW5wdXQ6Zm9jdXMge1xuICAgICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICAgICAgd2lkdGg6IDI2MHB4OyB9XG4gICAgI2hlYWRlci1zZWFyY2ggLnNlYXJjaF9taW5pX2Zvcm0gLnNlYXJjaC1idXR0b24ge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgICNoZWFkZXItc2VhcmNoIC5pbnB1dC1ib3ggOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgICAgIGNvbG9yOiAjNGM0YzRlOyB9XG4gICAgI2hlYWRlci1zZWFyY2ggLmlucHV0LWJveCA6LW1vei1wbGFjZWhvbGRlciB7XG4gICAgICAvKiBGaXJlZm94IDE4LSAqL1xuICAgICAgY29sb3I6ICM0YzRjNGU7IH1cbiAgICAjaGVhZGVyLXNlYXJjaCAuaW5wdXQtYm94IDo6LW1vei1wbGFjZWhvbGRlciB7XG4gICAgICAvKiBGaXJlZm94IDE5KyAqL1xuICAgICAgY29sb3I6ICM0YzRjNGU7IH1cbiAgICAjaGVhZGVyLXNlYXJjaCAuaW5wdXQtYm94IDotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xuICAgICAgY29sb3I6ICM0YzRjNGU7IH1cbiAgICAjaGVhZGVyLXNlYXJjaCAuaW5wdXQtYm94OmJlZm9yZSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgbGVmdDogMTBweDtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICBiYWNrZ3JvdW5kOiB1cmwoaW1hZ2VzL2ljb24tc2VhcmNoLnN2Zyk7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gICAgICBtYXJnaW4tdG9wOiAtMTJweDsgfSB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIFNlYXJjaCBJbnB1dFxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5zZWFyY2hfbWluaV9mb3JtIC5pbnB1dC1ib3gge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmctdG9wOiAwOyB9XG5cbi5zZWFyY2hfbWluaV9mb3JtIGxhYmVsIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4jc2VhcmNoIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogNDBweDtcbiAgaGVpZ2h0OiBhdXRvO1xuICBwYWRkaW5nLXJpZ2h0OiA0MHB4O1xuICBmb250LWZhbWlseTogXCJVYnVudHVUaXRsaW5nLUJvbGRcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBWZXJkYW5hLCBBcmlhbCwgc2Fucy1zZXJpZjsgfVxuXG4uc2VhcmNoX21pbmlfZm9ybSAuc2VhcmNoLWJ1dHRvbiB7XG4gIHRleHQtaW5kZW50OiAtOTk5OXB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIHdpZHRoOiA0MHB4O1xuICBoZWlnaHQ6IDQwcHg7XG4gIGJvcmRlcjogMDtcbiAgYmFja2dyb3VuZDogbm9uZTsgfVxuXG4uc2VhcmNoX21pbmlfZm9ybSAuc2VhcmNoLWJ1dHRvbjpiZWZvcmUge1xuICBjb250ZW50OiAnJztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICB3aWR0aDogMjlweDtcbiAgaGVpZ2h0OiAyOXB4O1xuICBtYXJnaW4tdG9wOiAtMTRweDtcbiAgbWFyZ2luLWxlZnQ6IC0xNXB4O1xuICBiYWNrZ3JvdW5kOiB1cmwoaW1hZ2VzL2ljb24tc2VhcmNoLWJsdWUuc3ZnKTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsgfVxuXG4uc2VhcmNoX21pbmlfZm9ybSAuc2VhcmNoLWJ1dHRvbjphY3RpdmU6YmVmb3JlIHtcbiAgbWFyZ2luLXRvcDogLTEzcHg7XG4gIG1hcmdpbi1sZWZ0OiAtMTNweDsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBIZWFkZXIgLSBBY2NvdW50XG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxuICogU2tpcCBMaW5rIC0gQWNjb3VudFxuICovXG4uc2tpcC1hY2NvdW50Om5vdCguc2tpcC1hY3RpdmUpOmhvdmVyIC5pY29uIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTQ2cHggLTQ0cHg7IH1cblxuLnNraXAtYWNjb3VudCAuaWNvbiB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDRweCAtNDRweDsgfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc3MXB4KSB7XG4gIC5za2lwLWFjY291bnQge1xuICAgIGZsb2F0OiBub25lO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG4gICNoZWFkZXItYWNjb3VudC5za2lwLWFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZDogI0ZCRkJGQjtcbiAgICBib3JkZXI6IHNvbGlkIDFweCAjQ0NDQ0NDO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiAyMDA7XG4gICAgdG9wOiA0MHB4O1xuICAgIHJpZ2h0OiAxMTVweDtcbiAgICB3aWR0aDogMjAwcHg7IH1cbiAgI2hlYWRlci1hY2NvdW50IGEge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6IDVweCAxMHB4O1xuICAgIGNvbG9yOiAjMDAzYjVmO1xuICAgIGxpbmUtaGVpZ2h0OiAyOyB9XG4gICNoZWFkZXItYWNjb3VudCBhOmhvdmVyIHtcbiAgICBjb2xvcjogIzFmODZiZDsgfSB9XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICpcbiAqIEFjY291bnQgTGlua3NcbiAqL1xuI2hlYWRlci1hY2NvdW50IHtcbiAgcGFkZGluZzogNXB4IDA7IH1cblxuI2hlYWRlci1hY2NvdW50IGEge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiA1cHggMTBweDtcbiAgbGluZS1oZWlnaHQ6IDIzcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4jaGVhZGVyLWFjY291bnQgYTpob3ZlciB7XG4gIGNvbG9yOiAjMWY4NmJkOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIEhlYWRlciAtIENhcnRcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXG4gKiBTa2lwIExpbmsgLSBDYXJ0XG4gKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzcxcHgpIHtcbiAgLnNraXAtY2FydCB7XG4gICAgd2lkdGg6IGF1dG87IH1cbiAgI2hlYWRlci1jYXJ0LnNraXAtYWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kOiAjRkJGQkZCO1xuICAgIGJvcmRlcjogc29saWQgMXB4ICNDQ0NDQ0M7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6IDIwMDtcbiAgICB0b3A6IDQwcHg7XG4gICAgcmlnaHQ6IDA7XG4gICAgd2lkdGg6IDMyMHB4O1xuICAgIGJhY2tncm91bmQ6IHdoaXRlOyB9IH1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxuICogU2tpcCBDYXJ0IE5vdGlmaWVyXG4gKi9cbi5za2lwLWNhcnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cblxuLnNraXAtY2FydCAuY291bnQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgdG9wOiAtMTJweDtcbiAgbGVmdDogMTJweDtcbiAgd2lkdGg6IDE4cHg7XG4gIGhlaWdodDogMThweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBmb250LXNpemU6IDEycHg7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgYmFja2dyb3VuZDogIzFmODZiZDtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4uc2tpcC1saW5rLnNraXAtYWN0aXZlIC5jb3VudCB7XG4gIGNvbG9yOiB3aGl0ZTsgfVxuXG4uc2tpcC1jYXJ0Lm5vLWNvdW50IC5jb3VudCB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAuc2tpcC1jYXJ0IC5jb3VudCB7XG4gICAgbGVmdDogMjBweDsgfSB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzcxcHgpIHtcbiAgLnNraXAtY2FydDpob3ZlciB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gIC5za2lwLWxpbmsuc2tpcC1hY3RpdmUgLmNvdW50IHtcbiAgICBjb2xvcjogIzFmODZiZDsgfSB9XG5cbi5za2lwLWNhcnQgLmNvdW50LmVtcHR5IHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXG4gKiBNaW5pIENhcnQgLSBFbXB0eVxuICovXG4uY2FydC1tZW51IC5lbXB0eSB7XG4gIHBhZGRpbmc6IDIwcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXG4gKiBNaW5pIENhcnQgLSBGdWxsXG4gKi9cbi8qIEFjdGlvbnMgKi9cbi5jYXJ0LW1lbnUgLmFjdGlvbnMge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nOiAxNXB4OyB9XG5cbi5jYXJ0LW1lbnUgLmFjdGlvbnMgLmJ1dHRvbiB7XG4gIGZsb2F0OiBsZWZ0O1xuICB3aWR0aDogNDglOyB9XG5cbi5jYXJ0LW1lbnUgLmFjdGlvbnMgLmJ1dHRvbiArIC5idXR0b24ge1xuICBtYXJnaW4tbGVmdDogNCU7IH1cblxuLyogU3VidG90YWwgKi9cbi5jYXJ0LW1lbnUgLnN1YnRvdGFsIHtcbiAgcGFkZGluZzogMCAxNXB4IDE1cHg7XG4gIGZvbnQtZmFtaWx5OiBcIlVidW50dVRpdGxpbmctQm9sZFwiLCBcIkhlbHZldGljYSBOZXVlXCIsIFZlcmRhbmEsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDI0cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7IH1cblxuLyogTGlzdCAqL1xuLm1pbmktY2FydC1saXN0IHtcbiAgbWFyZ2luLWJvdHRvbTogNXB4OyB9XG5cbi5taW5pLWNhcnQtbGlzdCBsaSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWluLWhlaWdodDogOTBweDtcbiAgcGFkZGluZzogMTVweCAxNXB4IDE1cHggOTBweDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNDQ0NDQ0M7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgbGluZS1oZWlnaHQ6IDEuMzU7IH1cblxuLm1pbmktY2FydC1saXN0IC5wcm9kdWN0LW5hbWUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cblxuLm1pbmktY2FydC1saXN0IC5wcm9kdWN0LWltYWdlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAxNXB4O1xuICB0b3A6IDE1cHg7IH1cblxuLm1pbmktY2FydC1saXN0IC5wcm9kdWN0LWltYWdlIGltZyB7XG4gIHdpZHRoOiA2MHB4O1xuICBoZWlnaHQ6IDYwcHg7IH1cblxuLm1pbmktY2FydC1saXN0IC5oYXMtb3B0aW9ucyB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGNvbG9yOiAjNWI1YjVhO1xuICBmb250LXNpemU6IDEycHg7IH1cblxuLyogVG9vIGZ1bGwgLSBhZGRpdGlvbmFsIGl0ZW1zIHdpbGwgYmUgc2hvd24gaW4gY2FydCAqL1xuLmNhcnQtbWVudSAubGFzdC1hZGRlZCB7XG4gIHBhZGRpbmc6IDEwcHggMTVweCAxNXB4O1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI0NDQ0NDQztcbiAgZm9udC1zaXplOiAxM3B4OyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIEZvb3RlclxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICpcbiAqIEZvb3RlclxuICovXG4uZm9vdGVyLWNvbnRhaW5lciB7XG4gIG1hcmdpbi1ib3R0b206IDI1cHg7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MDBweCkge1xuICAgIC5mb290ZXItY29udGFpbmVyIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDYwcHg7IH0gfVxuXG4uZm9vdGVyIHtcbiAgY2xlYXI6IGJvdGg7XG4gIHdpZHRoOiAxMDAlO1xuICBib3JkZXItdG9wOiAxcHggZG90dGVkICMwMDNiNWY7XG4gIHBhZGRpbmctdG9wOiA4MHB4O1xuICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXG4gICAgICogU29jaWFsIGljb25zXG4gICAgICovIH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0NzlweCkge1xuICAgIC5mb290ZXIge1xuICAgICAgcGFkZGluZy10b3A6IDE1cHg7IH0gfVxuICAuZm9vdGVyIC5ibG9jay10aXRsZSB7XG4gICAgYm9yZGVyLWJvdHRvbTogMDsgfVxuICAuZm9vdGVyIC5ibG9jay10aXRsZSBzdHJvbmcge1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgZm9udC1zaXplOiAyMHB4O1xuICAgIGNvbG9yOiAjMDAzYjVmOyB9XG4gIC5mb290ZXIgaDUge1xuICAgIG1hcmdpbi1ib3R0b206IDRweDsgfVxuICAuZm9vdGVyIC5saW5rcyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDI1JTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMzVweDsgfVxuICAgIC5mb290ZXIgLmxpbmtzIGltZyB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgbWFyZ2luLWxlZnQ6IDVweDsgfVxuICAgIC5mb290ZXIgLmxpbmtzIGxpIHtcbiAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG4gICAgICBwYWRkaW5nOiA0cHggMDtcbiAgICAgIGZvbnQtc2l6ZTogMTRweDsgfVxuICAgIC5mb290ZXIgLmxpbmtzLnBheW1lbnQtbWV0aG9kcyBsaSB7XG4gICAgICBsaW5lLWhlaWdodDogMS44OyB9XG4gICAgLmZvb3RlciAubGlua3MgYSB7XG4gICAgICBjb2xvcjogIzAwM2I1ZjtcbiAgICAgIGZvbnQtc2l6ZTogMTRweDsgfVxuICAgICAgLmZvb3RlciAubGlua3MgYTpob3ZlciB7XG4gICAgICAgIGNvbG9yOiAjMWY4NmJkO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIGJvcmRlcjogbm9uZTsgfVxuICAuZm9vdGVyIC5ibG9jay1zdWJzY3JpYmUge1xuICAgIGZsb2F0OiByaWdodDtcbiAgICB3aWR0aDogMzIwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMzVweDsgfVxuICAuZm9vdGVyIC5saW5rcyxcbiAgLmZvb3RlciAuYmxvY2stc3Vic2NyaWJlIHtcbiAgICBmb250LXNpemU6IDEycHg7IH1cbiAgLmZvb3RlciAuZm9ybS1zdWJzY3JpYmUtaGVhZGVyIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5mb290ZXIgLmxpbmtzLnNvY2lhbC1tZWRpYSBlbSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKGltYWdlcy9zb2NpYWxfaWNvbnMucG5nKTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIHdpZHRoOiAxM3B4O1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbi1yaWdodDogN3B4OyB9XG4gIEBtZWRpYSAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSwgKG1pbi0tbW96LWRldmljZS1waXhlbC1yYXRpbzogMiksICgtby1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiA0IC8gMiksIChtaW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSwgKG1pbi1yZXNvbHV0aW9uOiAxOTJkcGkpLCAobWluLXJlc29sdXRpb246IDJkcHB4KSB7XG4gICAgLmZvb3RlciAubGlua3Muc29jaWFsLW1lZGlhIGVtIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChpbWFnZXMvc29jaWFsX2ljb25zQDJ4LnBuZyk7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IDUwcHggMTI1cHg7IH0gfVxuICAuZm9vdGVyIC5saW5rcy5zb2NpYWwtbWVkaWEgZW0uZmFjZWJvb2sge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAgLTBweDtcbiAgICBoZWlnaHQ6IDEzcHg7IH1cbiAgLmZvb3RlciAubGlua3Muc29jaWFsLW1lZGlhIGE6aG92ZXIgZW0uZmFjZWJvb2sge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IC0yNXB4IC0wcHg7IH1cbiAgLmZvb3RlciAubGlua3Muc29jaWFsLW1lZGlhIGVtLnR3aXR0ZXIge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAgLTI0cHg7XG4gICAgaGVpZ2h0OiAxM3B4OyB9XG4gIC5mb290ZXIgLmxpbmtzLnNvY2lhbC1tZWRpYSBhOmhvdmVyIGVtLnR3aXR0ZXIge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IC0yNXB4IC0yNHB4OyB9XG4gIC5mb290ZXIgLmxpbmtzLnNvY2lhbC1tZWRpYSBlbS55b3V0dWJlIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC00OXB4O1xuICAgIGhlaWdodDogMTNweDsgfVxuICAuZm9vdGVyIC5saW5rcy5zb2NpYWwtbWVkaWEgYTpob3ZlciBlbS55b3V0dWJlIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjVweCAtNDlweDsgfVxuICAuZm9vdGVyIC5saW5rcy5zb2NpYWwtbWVkaWEgZW0ucGludGVyZXN0IHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC03NHB4O1xuICAgIGhlaWdodDogMTVweDsgfVxuICAuZm9vdGVyIC5saW5rcy5zb2NpYWwtbWVkaWEgYTpob3ZlciBlbS5waW50ZXJlc3Qge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IC0yNXB4IC03NHB4OyB9XG4gIC5mb290ZXIgLmxpbmtzLnNvY2lhbC1tZWRpYSBlbS5yc3Mge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAgLTk5cHg7XG4gICAgaGVpZ2h0OiAxM3B4OyB9XG4gIC5mb290ZXIgLmxpbmtzLnNvY2lhbC1tZWRpYSBhOmhvdmVyIGVtLnJzcyB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTI1cHggLTk5cHg7IH1cbiAgLmZvb3RlciAuYmxvY2stc3Vic2NyaWJlIC5pbnB1dC1ib3gge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiA2NS42MjUlO1xuICAgIHBhZGRpbmctdG9wOiAwOyB9XG4gIC5mb290ZXIgLmJsb2NrLXN1YnNjcmliZSAuaW5wdXQtdGV4dCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm9yZGVyLXJpZ2h0OiAwOyB9XG4gIC5mb290ZXIgLmJsb2NrLXN1YnNjcmliZSAuYmxvY2stY29udGVudCB7XG4gICAgcGFkZGluZy10b3A6IDdweDsgfVxuICAgIC5mb290ZXIgLmJsb2NrLXN1YnNjcmliZSAuYmxvY2stY29udGVudDphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgLmZvb3RlciAuYmxvY2stc3Vic2NyaWJlIC5hY3Rpb25zIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMzQuMzc1JTtcbiAgICBtYXJnaW46IDA7IH1cbiAgLmZvb3RlciAuYmxvY2stc3Vic2NyaWJlIC5hY3Rpb25zIC5idXR0b24ge1xuICAgIGhlaWdodDogMzBweDtcbiAgICBsaW5lLWhlaWdodDogMTdweDtcbiAgICBmbG9hdDogbGVmdDsgfVxuICAuZm9vdGVyIC5idWdzLFxuICAuZm9vdGVyIGFkZHJlc3Mge1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIC5mb290ZXIgLmJ1Z3Mge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmZvb3RlciAuZm9ybS1sYW5ndWFnZSxcbiAgLmZvb3RlciAuY3VycmVuY3ktc3dpdGNoZXIsXG4gIC5mb290ZXIgLnN0b3JlLXN3aXRjaGVyIHtcbiAgICBjbGVhcjogYm90aDtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4OyB9XG4gIC5mb290ZXIgLmZvcm0tbGFuZ3VhZ2UsXG4gIC5mb290ZXIgLmN1cnJlbmN5LXN3aXRjaGVyIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5mb290ZXIgYWRkcmVzcyB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGNvbG9yOiAjNWI1YjVhO1xuICAgIG1hcmdpbi10b3A6IDM1cHg7IH1cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDU5OXB4KSB7XG4gICAgICAuZm9vdGVyIGFkZHJlc3Mge1xuICAgICAgICBmb250LXNpemU6IDEzcHg7IH0gfVxuICAgIC5mb290ZXIgYWRkcmVzcyBhIHtcbiAgICAgIGNvbG9yOiAjNWI1YjVhOyB9XG4gICAgICAuZm9vdGVyIGFkZHJlc3MgYTpob3ZlciB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExOTlweCkge1xuICAgIC5mb290ZXIgLmxpbmtzIHtcbiAgICAgIHdpZHRoOiAyMi42NTYyNSU7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAzLjEyNSU7IH1cbiAgICAuZm9vdGVyIC5saW5rczpudGgtY2hpbGQoNCkge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gICAgLmZvb3RlciAuYmxvY2stc3Vic2NyaWJlIHtcbiAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICBtYXJnaW46IDAgYXV0byAzNXB4IGF1dG87IH0gfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc3MHB4KSB7XG4gICAgLmZvb3RlciAuZm9ybS1sYW5ndWFnZSxcbiAgICAuZm9vdGVyIC5jdXJyZW5jeS1zd2l0Y2hlciB7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfSB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgICAuZm9vdGVyIC5saW5rcyB7XG4gICAgICB3aWR0aDogNDguNDM3NSU7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cbiAgICAuZm9vdGVyIC5saW5rczpudGgtY2hpbGQob2RkKSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDMuMTI1JTtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLmZvb3RlciAuYmxvY2stc3Vic2NyaWJlIHtcbiAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICB3aWR0aDogMTAwJTsgfSB9XG5cbi5jYXRhbG9nLXByb2R1Y3QtdmlldyAuZm9vdGVyIHtcbiAgYm9yZGVyOiBub25lO1xuICBwYWRkaW5nLXRvcDogMDsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIEdlbmVyYWwgUHJvZHVjdCBMaXN0IFN0eWxlcyAobm90IG1vZHVsZS1zcGVjaWZpYylcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICpcbiAqIFByb2R1Y3QgTGlzdCBHZW5lcmFsXG4gKi9cbi5jYXRlZ29yeS10aXRsZSBoMSxcbmJvZHkuY2F0YWxvZ3NlYXJjaC1yZXN1bHQtaW5kZXggLnBhZ2UtdGl0bGUgaDEge1xuICBib3JkZXItYm90dG9tOiBub25lOyB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAwcHgpIHtcbiAgLmNhdGFsb2dzZWFyY2gtcmVzdWx0LWluZGV4IC5wYWdlLXRpdGxlIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMzVweDsgfSB9XG5cbi5jYXRhbG9nc2VhcmNoLXJlc3VsdC1pbmRleCAucGFnZS10aXRsZSBoMSB7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAuY2F0YWxvZ3NlYXJjaC1yZXN1bHQtaW5kZXggLnNpZGViYXIge1xuICAgIG1hcmdpbi10b3A6IDcwcHg7IH0gfVxuXG4uY2F0ZWdvcnktaW1hZ2Uge1xuICBtYXJnaW4tYm90dG9tOiAxLjVlbTsgfVxuXG4ucHJvZHVjdHMtbGlzdCAuYWN0aW9uIC5idXR0b24sXG4ucHJvZHVjdHMtZ3JpZCAuYWN0aW9ucyAuYnV0dG9uIHtcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDsgfVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXG4gKiBQcm9kdWN0IE5hbWVcbiAqL1xuaDIucHJvZHVjdC1uYW1lLFxuaDMucHJvZHVjdC1uYW1lLFxuaDQucHJvZHVjdC1uYW1lLFxuaDUucHJvZHVjdC1uYW1lLFxucC5wcm9kdWN0LW5hbWUge1xuICBtYXJnaW46IDA7XG4gIG1hcmdpbi1ib3R0b206IDAuNWVtO1xuICBjb2xvcjogIzAwM2I1ZjtcbiAgZm9udC1mYW1pbHk6IFwiVWJ1bnR1VGl0bGluZy1Cb2xkXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgVmVyZGFuYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMjRweDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMS4yO1xuICBmb250LXNpemU6IDEzcHg7XG4gIGZvbnQtZmFtaWx5OiBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDEuNDsgfVxuICBoMi5wcm9kdWN0LW5hbWUgYSxcbiAgaDMucHJvZHVjdC1uYW1lIGEsXG4gIGg0LnByb2R1Y3QtbmFtZSBhLFxuICBoNS5wcm9kdWN0LW5hbWUgYSxcbiAgcC5wcm9kdWN0LW5hbWUgYSB7XG4gICAgY29sb3I6ICMwMDNiNWY7IH1cbiAgICBoMi5wcm9kdWN0LW5hbWUgYTpob3ZlcixcbiAgICBoMy5wcm9kdWN0LW5hbWUgYTpob3ZlcixcbiAgICBoNC5wcm9kdWN0LW5hbWUgYTpob3ZlcixcbiAgICBoNS5wcm9kdWN0LW5hbWUgYTpob3ZlcixcbiAgICBwLnByb2R1Y3QtbmFtZSBhOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAjMWY4NmJkO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG5cbi5wcm9kdWN0cy1ncmlkIC5wcm9kdWN0LW5hbWUsXG4ucHJvZHVjdHMtbGlzdCAucHJvZHVjdC1uYW1lIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgcGFkZGluZzogMTVweCAwO1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICMwMDNiNWY7XG4gIGZvbnQtc2l6ZTogMTRweDsgfVxuICAucHJvZHVjdHMtZ3JpZCAucHJvZHVjdC1uYW1lIGEsXG4gIC5wcm9kdWN0cy1saXN0IC5wcm9kdWN0LW5hbWUgYSB7XG4gICAgZm9udC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgIGNvbG9yOiAjMDAzYjVmO1xuICAgIGN1cnNvcjogcG9pbnRlcjsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBQcm9kdWN0IEdyaWRcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4ucHJvZHVjdHMtZ3JpZCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuXG4ucHJvZHVjdHMtZ3JpZDphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgY2xlYXI6IGJvdGg7IH1cblxuLnByb2R1Y3RzLWdyaWQgPiBsaSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIC5wcm9kdWN0cy1ncmlkID4gbGk6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGNsZWFyOiBib3RoOyB9XG5cbi5iYWRnZS1uZXcsIC5iYWRnZS1jdXN0b20ge1xuICB3aWR0aDogNjBweCAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDYwcHggIWltcG9ydGFudDtcbiAgbGluZS1oZWlnaHQ6IDYwcHg7XG4gIGZvbnQtZmFtaWx5OiBcIlVidW50dVRpdGxpbmctQm9sZFwiLCBcIkhlbHZldGljYSBOZXVlXCIsIFZlcmRhbmEsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDIwcHg7XG4gIGJhY2tncm91bmQ6ICM2Y2IzMTU7XG4gIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRyYW5zZm9ybTogcm90YXRlKC01ZGVnKTsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gICAgLmJhZGdlLW5ldywgLmJhZGdlLWN1c3RvbSB7XG4gICAgICBmb250LXNpemU6IDMycHg7XG4gICAgICB3aWR0aDogOTBweCAhaW1wb3J0YW50O1xuICAgICAgaGVpZ2h0OiA5MHB4ICFpbXBvcnRhbnQ7XG4gICAgICBsaW5lLWhlaWdodDogOTBweDtcbiAgICAgIHJpZ2h0OiAycHg7XG4gICAgICBib3R0b206IDEwcHg7IH0gfVxuXG4uYmFkZ2UtY3VzdG9tIHtcbiAgcmlnaHQ6IGF1dG87XG4gIGJvdHRvbTogYXV0bztcbiAgbGVmdDogMDtcbiAgdG9wOiAwOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAwcHgpIHtcbiAgICAuYmFkZ2UtY3VzdG9tIHtcbiAgICAgIGxlZnQ6IDJweDtcbiAgICAgIHRvcDogMTBweDsgfSB9XG5cbi5uYXYtcHJpbWFyeSAuYmFkZ2UtbmV3LCAubmF2LXByaW1hcnkgLmJhZGdlLWN1c3RvbSB7XG4gIHdpZHRoOiA2MHB4ICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogNjBweCAhaW1wb3J0YW50O1xuICBsaW5lLWhlaWdodDogNjBweDtcbiAgZm9udC1mYW1pbHk6IFwiVWJ1bnR1VGl0bGluZy1Cb2xkXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgVmVyZGFuYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgYmFja2dyb3VuZDogIzZjYjMxNTtcbiAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgY29sb3I6IHdoaXRlO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTVkZWcpOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAwcHgpIHtcbiAgICAubmF2LXByaW1hcnkgLmJhZGdlLW5ldywgLm5hdi1wcmltYXJ5IC5iYWRnZS1jdXN0b20ge1xuICAgICAgZm9udC1zaXplOiAyMHB4O1xuICAgICAgd2lkdGg6IDYwcHggIWltcG9ydGFudDtcbiAgICAgIGhlaWdodDogNjBweCAhaW1wb3J0YW50O1xuICAgICAgbGluZS1oZWlnaHQ6IDYwcHg7XG4gICAgICByaWdodDogLTEwcHg7XG4gICAgICBib3R0b206IGF1dG87XG4gICAgICB0b3A6IDYwcHg7IH0gfVxuXG4ubmF2LXByaW1hcnkgLmJhZGdlLWN1c3RvbSB7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIHRyYW5zZm9ybTogbm9uZTtcbiAgcmlnaHQ6IGF1dG87XG4gIGJvdHRvbTogYXV0bztcbiAgbGVmdDogLTEwcHg7XG4gIHRvcDogMDsgfVxuXG4uYmFkZ2UtY3VzdG9tIHtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgdHJhbnNmb3JtOiBub25lOyB9XG5cbi5wcm9kdWN0LWltYWdlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IGF1dG87XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC5wcm9kdWN0LWltYWdlOmhvdmVyIC5iYWRnZS1uZXcge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuXG4uY2F0YWxvZy1jYXRlZ29yeS12aWV3IC5wcm9kdWN0LWNhdGVnb3J5IC5wcm9kdWN0IC5wcm9kdWN0LWltYWdlLCAjYmxvY2stcHJvZHVjdGZpbmRlciAucHJvZHVjdC1pbWFnZSwgLmJveC11cC1zZWxsLXNsaWRlciAucHJvZHVjdC1pbWFnZSwgLmNhdGFsb2dzZWFyY2gtcmVzdWx0LWluZGV4IC5wcm9kdWN0LWltYWdlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDAgMTUlO1xuICBtYXJnaW46IGF1dG87XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cblxuLnByb2R1Y3RzLWdyaWQgLnByb2R1Y3QtaW1hZ2Uge1xuICBtYXJnaW4tYm90dG9tOiAxNXB4OyB9XG5cbi5wcm9kdWN0cy1ncmlkIC5wcm9kdWN0LWltYWdlIGltZyB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87IH1cbiAgLnByb2R1Y3RzLWdyaWQgLnByb2R1Y3QtaW1hZ2UgaW1nOmhpZGRlbiB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuXG4ud2lkZ2V0LW5ldy1wcm9kdWN0cyAucHJvZHVjdHMtZ3JpZCAucHJvZHVjdC1pbWFnZSB7XG4gIHdpZHRoOiA3NSU7XG4gIG1hcmdpbi1ib3R0b206IDE1cHg7XG4gIG1hcmdpbi1sZWZ0OiAxMCU7IH1cblxuLnByb2R1Y3RzLWdyaWQgLnByb2R1Y3QtaW5mbyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuXG4ucHJvZHVjdHMtZ3JpZCAuYWN0aW9ucyB7XG4gIHBhZGRpbmctdG9wOiAxMHB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMHB4O1xuICBtaW4taGVpZ2h0OiA4NXB4O1xuICB3aWR0aDogMTAwJTsgfVxuXG4ucHJvZHVjdHMtZ3JpZCAucmF0aW5ncyAucmF0aW5nLWJveCB7XG4gIG1hcmdpbjogMCBhdXRvOyB9XG5cbi5wcm9kdWN0cy1ncmlkIC5yYXRpbmdzIC5hbW91bnQge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5wcm9kdWN0cy1ncmlkIC5wcmljZS1ib3gge1xuICBjb2xvcjogIzViNWI1YTtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBtYXJnaW46IDAgMCA1cHg7IH1cblxuLnByb2R1Y3RzLWdyaWQgLmFkZC10by1saW5rcyB7XG4gIG1hcmdpbi1ib3R0b206IDA7IH1cblxuLyogQ29uZmlnOiBUd28gY29sdW1ucyArIGZsZXhpYmxlIGd1dHRlciAqL1xuLnByb2R1Y3RzLWdyaWQgPiBsaSB7XG4gIGZsb2F0OiBsZWZ0O1xuICB3aWR0aDogNDcuNzI3MjclO1xuICBtYXJnaW4tcmlnaHQ6IDQuNTQ1NDUlOyB9XG5cbi5wcm9kdWN0cy1ncmlkID4gbGk6bnRoLWNoaWxkKG9kZCkge1xuICBjbGVhcjogbGVmdDsgfVxuXG4ucHJvZHVjdHMtZ3JpZCA+IGxpOm50aC1jaGlsZChldmVuKSB7XG4gIG1hcmdpbi1yaWdodDogMDsgfVxuXG4ucHJvZHVjdHMtZ3JpZCAucHJvZHVjdC1pbWFnZSB7XG4gIG1hcmdpbi1ib3R0b206IDVweDsgfVxuICAucHJvZHVjdHMtZ3JpZCAucHJvZHVjdC1pbWFnZTpiZWZvcmUsIC5wcm9kdWN0cy1ncmlkIC5wcm9kdWN0LWltYWdlOmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwcHg7XG4gICAgbGVmdDogMHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5wcm9kdWN0cy1ncmlkIC5wcm9kdWN0LWltYWdlOmJlZm9yZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgb3BhY2l0eTogMC44O1xuICAgIHotaW5kZXg6IDI7IH1cbiAgLnByb2R1Y3RzLWdyaWQgLnByb2R1Y3QtaW1hZ2U6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9vcGMtYWpheC1sb2FkZXIuZ2lmXCIpO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgIHotaW5kZXg6IDM7IH1cbiAgLnByb2R1Y3RzLWdyaWQgLnByb2R1Y3QtaW1hZ2UubG9hZGluZyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgLnByb2R1Y3RzLWdyaWQgLnByb2R1Y3QtaW1hZ2UubG9hZGluZzpiZWZvcmUsIC5wcm9kdWN0cy1ncmlkIC5wcm9kdWN0LWltYWdlLmxvYWRpbmc6YWZ0ZXIge1xuICAgICAgZGlzcGxheTogYmxvY2s7IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0ODBweCkge1xuICAvKiBDb25maWc6IFRocmVlIGNvbHVtbnMgKyBmbGV4aWJsZSBndXR0ZXIgKi9cbiAgLnByb2R1Y3RzLWdyaWQge1xuICAgIC8qIFVuZG8gdHdvLWNvbHVtbiBjb25maWcgKi9cbiAgICAvKiBTZXQgdGhyZWUtY29sdW1uIGNvbmZpZyAqLyB9XG4gICAgLnByb2R1Y3RzLWdyaWQgPiBsaTpudGgtY2hpbGQob2RkKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC5wcm9kdWN0cy1ncmlkID4gbGk6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMy43NzM1OCU7IH1cbiAgICAucHJvZHVjdHMtZ3JpZCA+IGxpIHtcbiAgICAgIHdpZHRoOiAzMC44MTc2MSU7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDMuNzczNTglOyB9XG4gICAgLnByb2R1Y3RzLWdyaWQgPiBsaTpudGgtY2hpbGQoM24rMSkge1xuICAgICAgY2xlYXI6IGxlZnQ7IH1cbiAgICAucHJvZHVjdHMtZ3JpZCA+IGxpOm50aC1jaGlsZCgzbikge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5NjBweCkge1xuICAvKiBDb25maWc6IENvbHVtbnMgKyBmbGV4aWJsZSBndXR0ZXIgKi9cbiAgLyogVW5kbyB0aHJlZS1jb2x1bW4gY29uZmlnICovXG4gIC5wcm9kdWN0cy1ncmlkLS1tYXgtNC1jb2wgPiBsaTpudGgtY2hpbGQob2RkKSB7XG4gICAgY2xlYXI6IG5vbmU7IH1cbiAgLnByb2R1Y3RzLWdyaWQtLW1heC00LWNvbCA+IGxpOm50aC1jaGlsZCgzbisxKSB7XG4gICAgY2xlYXI6IG5vbmU7IH1cbiAgLnByb2R1Y3RzLWdyaWQtLW1heC00LWNvbCA+IGxpOm50aC1jaGlsZChldmVuKSxcbiAgLnByb2R1Y3RzLWdyaWQtLW1heC00LWNvbCA+IGxpOm50aC1jaGlsZCgzbikge1xuICAgIG1hcmdpbi1yaWdodDogMi4yNDcxOSU7IH1cbiAgLyogU2V0IGNvbHVtbiBjb25maWcgKi9cbiAgLnByb2R1Y3RzLWdyaWQtLW1heC00LWNvbCA+IGxpIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDIuMjQ3MTklOyB9XG4gIC5wcm9kdWN0cy1ncmlkLS1tYXgtNC1jb2wgPiBsaSB7XG4gICAgd2lkdGg6IDIzLjMxNDYxJTtcbiAgICBtYXJnaW4tcmlnaHQ6IDIuMjQ3MTklOyB9XG4gIC5wcm9kdWN0cy1ncmlkLS1tYXgtNC1jb2wgPiBsaTpudGgtY2hpbGQoNG4rMSkge1xuICAgIGNsZWFyOiBsZWZ0OyB9XG4gIC5wcm9kdWN0cy1ncmlkLS1tYXgtNC1jb2wgPiBsaTpudGgtY2hpbGQoNG4pIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cbiAgLyogQ29uZmlnOiBDb2x1bW5zICsgZmxleGlibGUgZ3V0dGVyICovXG4gIC8qIFVuZG8gdGhyZWUtY29sdW1uIGNvbmZpZyAqL1xuICAucHJvZHVjdHMtZ3JpZC0tbWF4LTUtY29sID4gbGk6bnRoLWNoaWxkKG9kZCkge1xuICAgIGNsZWFyOiBub25lOyB9XG4gIC5wcm9kdWN0cy1ncmlkLS1tYXgtNS1jb2wgPiBsaTpudGgtY2hpbGQoM24rMSkge1xuICAgIGNsZWFyOiBub25lOyB9XG4gIC5wcm9kdWN0cy1ncmlkLS1tYXgtNS1jb2wgPiBsaTpudGgtY2hpbGQoZXZlbiksXG4gIC5wcm9kdWN0cy1ncmlkLS1tYXgtNS1jb2wgPiBsaTpudGgtY2hpbGQoM24pIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDIuMjQ3MTklOyB9XG4gIC8qIFNldCBjb2x1bW4gY29uZmlnICovXG4gIC5wcm9kdWN0cy1ncmlkLS1tYXgtNS1jb2wgPiBsaSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAyLjI0NzE5JTsgfVxuICAucHJvZHVjdHMtZ3JpZC0tbWF4LTUtY29sID4gbGkge1xuICAgIHdpZHRoOiAxOC4yMDIyNSU7XG4gICAgbWFyZ2luLXJpZ2h0OiAyLjI0NzE5JTsgfVxuICAucHJvZHVjdHMtZ3JpZC0tbWF4LTUtY29sID4gbGk6bnRoLWNoaWxkKDVuKzEpIHtcbiAgICBjbGVhcjogbGVmdDsgfVxuICAucHJvZHVjdHMtZ3JpZC0tbWF4LTUtY29sID4gbGk6bnRoLWNoaWxkKDVuKSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gIC8qIENvbmZpZzogQ29sdW1ucyArIGZsZXhpYmxlIGd1dHRlciAqL1xuICAvKiBVbmRvIHRocmVlLWNvbHVtbiBjb25maWcgKi9cbiAgLnByb2R1Y3RzLWdyaWQtLW1heC02LWNvbCA+IGxpOm50aC1jaGlsZChvZGQpIHtcbiAgICBjbGVhcjogbm9uZTsgfVxuICAucHJvZHVjdHMtZ3JpZC0tbWF4LTYtY29sID4gbGk6bnRoLWNoaWxkKDNuKzEpIHtcbiAgICBjbGVhcjogbm9uZTsgfVxuICAucHJvZHVjdHMtZ3JpZC0tbWF4LTYtY29sID4gbGk6bnRoLWNoaWxkKGV2ZW4pLFxuICAucHJvZHVjdHMtZ3JpZC0tbWF4LTYtY29sID4gbGk6bnRoLWNoaWxkKDNuKSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAyLjI0NzE5JTsgfVxuICAvKiBTZXQgY29sdW1uIGNvbmZpZyAqL1xuICAucHJvZHVjdHMtZ3JpZC0tbWF4LTYtY29sID4gbGkge1xuICAgIG1hcmdpbi1yaWdodDogMi4yNDcxOSU7IH1cbiAgLnByb2R1Y3RzLWdyaWQtLW1heC02LWNvbCA+IGxpIHtcbiAgICB3aWR0aDogMTQuNzk0MDElO1xuICAgIG1hcmdpbi1yaWdodDogMi4yNDcxOSU7IH1cbiAgLnByb2R1Y3RzLWdyaWQtLW1heC02LWNvbCA+IGxpOm50aC1jaGlsZCg2bisxKSB7XG4gICAgY2xlYXI6IGxlZnQ7IH1cbiAgLnByb2R1Y3RzLWdyaWQtLW1heC02LWNvbCA+IGxpOm50aC1jaGlsZCg2bikge1xuICAgIG1hcmdpbi1yaWdodDogMDsgfSB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIFByb2R1Y3QgTGlzdFxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5wcm9kdWN0cy1saXN0IHtcbiAgbWFyZ2luLXRvcDogMjBweDtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDsgfVxuICAucHJvZHVjdHMtbGlzdCA+IGxpIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMjBweDtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjRURFREVEOyB9XG4gICAgLnByb2R1Y3RzLWxpc3QgPiBsaTphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAucHJvZHVjdHMtbGlzdCA+IGxpIC5wcm9kdWN0LWltYWdlIHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgd2lkdGg6IDMzLjMzMzMzJTsgfVxuICAgICAgLnByb2R1Y3RzLWxpc3QgPiBsaSAucHJvZHVjdC1pbWFnZSBpbWcge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlOyB9XG4gIC5wcm9kdWN0cy1saXN0ID4gbGk6bGFzdC1jaGlsZCB7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZTsgfVxuXG4ucHJvZHVjdHMtbGlzdCAucHJvZHVjdC1zaG9wIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICB3aWR0aDogNjYuNjY2NjclO1xuICBwYWRkaW5nLWxlZnQ6IDIwcHg7IH1cbiAgLnByb2R1Y3RzLWxpc3QgLnByb2R1Y3Qtc2hvcCAucHJvZHVjdC1uYW1lIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIC5wcm9kdWN0cy1saXN0IC5wcm9kdWN0LXNob3AgLnJhdGluZ3Mge1xuICAgIG1hcmdpbjogMDsgfVxuICAgIC5wcm9kdWN0cy1saXN0IC5wcm9kdWN0LXNob3AgLnJhdGluZ3MgLnJhdGluZy1ib3gsXG4gICAgLnByb2R1Y3RzLWxpc3QgLnByb2R1Y3Qtc2hvcCAucmF0aW5ncyAucmF0aW5nLWxpbmtzIHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgbWFyZ2luLXJpZ2h0OiA3cHg7IH1cbiAgICAucHJvZHVjdHMtbGlzdCAucHJvZHVjdC1zaG9wIC5yYXRpbmdzIC5yYXRpbmctbGlua3Mge1xuICAgICAgbWFyZ2luLXRvcDogNHB4OyB9XG4gIC5wcm9kdWN0cy1saXN0IC5wcm9kdWN0LXNob3AgLnByaWNlLWJveCB7XG4gICAgbWFyZ2luLXRvcDogMDsgfVxuICAucHJvZHVjdHMtbGlzdCAucHJvZHVjdC1zaG9wIC5wcmljZS1ib3ggLnByaWNlIHtcbiAgICBmb250LXNpemU6IDI0cHg7IH1cbiAgLnByb2R1Y3RzLWxpc3QgLnByb2R1Y3Qtc2hvcCAuYWN0aW9uIHtcbiAgICBtYXJnaW46IDdweCAwOyB9XG4gIC5wcm9kdWN0cy1saXN0IC5wcm9kdWN0LXNob3AgLmRlc2Mge1xuICAgIG1hcmdpbi10b3A6IDdweDsgfVxuICAucHJvZHVjdHMtbGlzdCAucHJvZHVjdC1zaG9wIC5wcm9kdWN0LXByaW1hcnksXG4gIC5wcm9kdWN0cy1saXN0IC5wcm9kdWN0LXNob3AgLmRlc2Mge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiA2NSU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAucHJvZHVjdHMtbGlzdCAucHJvZHVjdC1zaG9wIC5wcm9kdWN0LXNlY29uZGFyeSB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIHdpZHRoOiAzNSU7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgY2xlYXI6IHJpZ2h0OyB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDgwcHgpIHtcbiAgLnByb2R1Y3RzLWxpc3QgLnByb2R1Y3QtbmFtZSBhIHtcbiAgICBmb250LXNpemU6IDI0cHg7IH0gfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEyNzlweCkge1xuICAucHJvZHVjdHMtbGlzdCAucHJvZHVjdC1zaG9wIC5wcm9kdWN0LXByaW1hcnksXG4gIC5wcm9kdWN0cy1saXN0IC5wcm9kdWN0LXNob3AgLmRlc2Mge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiA2MCU7XG4gICAgcGFkZGluZy1yaWdodDogMjBweDsgfVxuICAucHJvZHVjdHMtbGlzdCAucHJvZHVjdC1zaG9wIC5wcm9kdWN0LXNlY29uZGFyeSB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIHdpZHRoOiA0MCU7IH0gfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYwMHB4KSB7XG4gIC5wcm9kdWN0cy1saXN0IC5wcm9kdWN0LXNob3AgLnByaWNlLWJveCAuc3BlY2lhbC1wcmljZSB7XG4gICAgcGFkZGluZy1sZWZ0OiAwOyB9XG4gIC5wcm9kdWN0cy1saXN0IC5wcm9kdWN0LXNob3AgLnByb2R1Y3QtcHJpbWFyeSxcbiAgLnByb2R1Y3RzLWxpc3QgLnByb2R1Y3Qtc2hvcCAucHJvZHVjdC1zZWNvbmRhcnksXG4gIC5wcm9kdWN0cy1saXN0IC5wcm9kdWN0LXNob3AgLmRlc2Mge1xuICAgIGZsb2F0OiBub25lO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgdGV4dC1hbGlnbjogbGVmdDsgfSB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIE1pbmkgUHJvZHVjdCBMaXN0XG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLm1pbmktcHJvZHVjdHMtbGlzdCAucHJvZHVjdC1pbWFnZSB7XG4gIGZsb2F0OiBsZWZ0O1xuICBtaW4td2lkdGg6IDUwcHg7IH1cblxuLm1pbmktcHJvZHVjdHMtbGlzdCAucHJvZHVjdC1kZXRhaWxzIHtcbiAgbWFyZ2luLWxlZnQ6IDYwcHg7IH1cblxuLm1pbmktcHJvZHVjdHMtbGlzdCAucHJvZHVjdC1kZXRhaWxzIC5wcm9kdWN0LW5hbWUge1xuICBwYWRkaW5nLXRvcDogMTBweDsgfVxuXG4ubWluaS1wcm9kdWN0cy1saXN0IGxpIHtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgY2xlYXI6IGJvdGg7IH1cbiAgLm1pbmktcHJvZHVjdHMtbGlzdCBsaTphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgY2xlYXI6IGJvdGg7IH1cblxuLm1pbmktcHJvZHVjdHMtaW1hZ2VzLWxpc3Q6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgZGlzcGxheTogdGFibGU7XG4gIGNsZWFyOiBib3RoOyB9XG5cbi5taW5pLXByb2R1Y3RzLWltYWdlcy1saXN0IGxpLml0ZW0ge1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IDUwJTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwIDVweCAxMHB4IDA7IH1cbiAgLm1pbmktcHJvZHVjdHMtaW1hZ2VzLWxpc3QgbGkuaXRlbTpudGgtY2hpbGQoZXZlbikge1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgcGFkZGluZy1sZWZ0OiA1cHg7IH1cbiAgLm1pbmktcHJvZHVjdHMtaW1hZ2VzLWxpc3QgbGkuaXRlbSAucHJvZHVjdC1pbWFnZSB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAubWluaS1wcm9kdWN0cy1pbWFnZXMtbGlzdCBsaS5pdGVtIC5wcm9kdWN0LWltYWdlIGltZyB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG1heC13aWR0aDogMTAwJTsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBDYXRhbG9nIC0gTGlzdFxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5jYXRlZ29yeS1pbWFnZSB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNDQ0NDQ0M7XG4gIHBhZGRpbmc6IDEwcHg7IH1cbiAgLmNhdGVnb3J5LWltYWdlIGltZyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlOyB9XG4gICAgLmNhdGVnb3J5LWltYWdlIGltZzpoaWRkZW4ge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBMYXllcmVkIE5hdmlnYXRpb25cbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4uYmxvY2stbGF5ZXJlZC1uYXYgLmJsb2NrLXN1YnRpdGxlLS1maWx0ZXIge1xuICBkaXNwbGF5OiBub25lO1xuICBtYXJnaW46IDA7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIGNvbG9yOiAjMDAzYjVmO1xuICBmb250LWZhbWlseTogXCJVYnVudHVUaXRsaW5nLUJvbGRcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBWZXJkYW5hLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW8tdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBtYXJnaW4tYm90dG9tOiAwcHg7XG4gIHBhZGRpbmc6IDdweCAxMHB4IDdweCAyNHB4O1xuICBib3JkZXItd2lkdGg6IDFweDtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLWNvbG9yOiAjQ0NDQ0NDO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGNEY0RjQ7XG4gIGN1cnNvcjogcG9pbnRlcjsgfVxuICAuYmxvY2stbGF5ZXJlZC1uYXYgLmJsb2NrLXN1YnRpdGxlLS1maWx0ZXI6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgYm9yZGVyLXJpZ2h0OiA0cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItdG9wOiA0cHggc29saWQgIzFmODZiZDtcbiAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgIGxlZnQ6IDEwcHg7XG4gICAgdG9wOiA1MCU7XG4gICAgbWFyZ2luLXRvcDogLTNweDsgfVxuICAuYmxvY2stbGF5ZXJlZC1uYXYgLmJsb2NrLXN1YnRpdGxlLS1maWx0ZXI6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHNoYWRlKCNGNEY0RjQsIDMlKTsgfVxuXG4uYmxvY2stbGF5ZXJlZC1uYXYgLmJsb2NrLWNvbnRlbnQgLnRvZ2dsZS10YWJzIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4uYmxvY2stbGF5ZXJlZC1uYXYgLmJsb2NrLWNvbnRlbnQgPiBkbCA+IGR0IHtcbiAgbWFyZ2luOiAwO1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICBjb2xvcjogIzAwM2I1ZjtcbiAgZm9udC1mYW1pbHk6IFwiVWJ1bnR1VGl0bGluZy1Cb2xkXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgVmVyZGFuYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMS40O1xuICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1vLXVzZXItc2VsZWN0OiBub25lO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbWFyZ2luLWJvdHRvbTogMHB4O1xuICBwYWRkaW5nOiA3cHggMTBweCA3cHggMjRweDtcbiAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci1jb2xvcjogI0NDQ0NDQztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjRGNEY0O1xuICBkaXNwbGF5OiBibG9jazsgfVxuICAuYmxvY2stbGF5ZXJlZC1uYXYgLmJsb2NrLWNvbnRlbnQgPiBkbCA+IGR0OmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGJvcmRlci1yaWdodDogNHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1sZWZ0OiA0cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXRvcDogNHB4IHNvbGlkICMxZjg2YmQ7XG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICBsZWZ0OiAxMHB4O1xuICAgIHRvcDogNTAlO1xuICAgIG1hcmdpbi10b3A6IC0zcHg7IH1cbiAgLmJsb2NrLWxheWVyZWQtbmF2IC5ibG9jay1jb250ZW50ID4gZGwgPiBkdDpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogc2hhZGUoI0Y0RjRGNCwgMyUpOyB9XG5cbi5ibG9jay1sYXllcmVkLW5hdiAuYmxvY2stY29udGVudCA+IGRsID4gZGQge1xuICBwYWRkaW5nOiAxMHB4O1xuICBtYXJnaW46IDA7XG4gIGJvcmRlci13aWR0aDogMCAxcHg7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci1jb2xvcjogI0NDQ0NDQzsgfVxuXG4uYmxvY2stbGF5ZXJlZC1uYXYgLmJsb2NrLWNvbnRlbnQgPiBkbCA+IGRkOmxhc3QtY2hpbGQge1xuICBib3JkZXItd2lkdGg6IDAgMXB4IDFweCAxcHg7IH1cblxuLmJsb2NrLWxheWVyZWQtbmF2IGRsIGRkIHtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgbWFyZ2luLXRvcDogMTBweDsgfVxuICAuYmxvY2stbGF5ZXJlZC1uYXYgZGwgZGQgb2wgPiBsaSA+IHNwYW4sIC5ibG9jay1sYXllcmVkLW5hdiBkbCBkZCBvbCA+IGxpID4gYSB7XG4gICAgcGFkZGluZzogNXB4IDE1cHg7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgLmJsb2NrLWxheWVyZWQtbmF2IGRsIGRkIG9sID4gbGkgPiBhIC5jb3VudCB7XG4gICAgY29sb3I6ICM1YjViNWE7IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NzFweCkge1xuICAuYmxvY2stbGF5ZXJlZC1uYXYgLmJsb2NrLWNvbnRlbnQgPiBkbCA+IGR0IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7IH1cbiAgICAuYmxvY2stbGF5ZXJlZC1uYXYgLmJsb2NrLWNvbnRlbnQgPiBkbCA+IGR0OmFmdGVyIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc3MHB4KSB7XG4gIC5zaWRlYmFyIC5ibG9jay5ibG9jay1sYXllcmVkLW5hdiB7XG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZTsgfVxuICAuYmxvY2stbGF5ZXJlZC1uYXYtLW5vLWZpbHRlcnMgLmJsb2NrLXRpdGxlIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5ibG9jay1sYXllcmVkLW5hdiAuYmxvY2stY29udGVudCB7XG4gICAgcGFkZGluZy10b3A6IDA7XG4gICAgbWFyZ2luLXRvcDogMTVweDsgfVxuICAgIC5ibG9jay1sYXllcmVkLW5hdiAuYmxvY2stY29udGVudCA+IGRsID4gZHQge1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDsgfVxuICAgICAgLmJsb2NrLWxheWVyZWQtbmF2IC5ibG9jay1jb250ZW50ID4gZGwgPiBkdDpob3ZlciB7XG4gICAgICAgIGNvbG9yOiAjMWY4NmJkOyB9XG4gICAgICAuYmxvY2stbGF5ZXJlZC1uYXYgLmJsb2NrLWNvbnRlbnQgPiBkbCA+IGR0OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGJvcmRlci10b3A6IDRweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogNHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXItbGVmdDogNHB4IHNvbGlkICMxZjg2YmQ7XG4gICAgICAgIGJvcmRlci1yaWdodDogbm9uZTsgfVxuICAgICAgLmJsb2NrLWxheWVyZWQtbmF2IC5ibG9jay1jb250ZW50ID4gZGwgPiBkdC5sYXN0IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMXB4OyB9XG4gICAgLmJsb2NrLWxheWVyZWQtbmF2IC5ibG9jay1jb250ZW50ID4gZGwgPiBkZCB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgLmJsb2NrLWxheWVyZWQtbmF2IC5ibG9jay1jb250ZW50LmFjY29yZGlvbi1vcGVuID4gZGwgPiBkdC5jdXJyZW50IHtcbiAgICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDFweDsgfVxuICAgIC5ibG9jay1sYXllcmVkLW5hdiAuYmxvY2stY29udGVudC5hY2NvcmRpb24tb3BlbiA+IGRsID4gZHQuY3VycmVudDphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHdpZHRoOiAwO1xuICAgICAgaGVpZ2h0OiAwO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBib3JkZXItcmlnaHQ6IDRweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlci1sZWZ0OiA0cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXItdG9wOiA0cHggc29saWQgIzFmODZiZDtcbiAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICBsZWZ0OiA2cHg7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIG1hcmdpbi10b3A6IC0zcHg7IH1cbiAgICAuYmxvY2stbGF5ZXJlZC1uYXYgLmJsb2NrLWNvbnRlbnQuYWNjb3JkaW9uLW9wZW4gPiBkbCA+IGRkLmN1cnJlbnQge1xuICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgLmJsb2NrLWxheWVyZWQtbmF2IC5ibG9jay1zdWJ0aXRsZS0tZmlsdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWY4NmJkO1xuICAgIGJvcmRlcjogMDtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGNvbG9yOiAjRkZGRkZGOyB9XG4gICAgLmJsb2NrLWxheWVyZWQtbmF2IC5ibG9jay1zdWJ0aXRsZS0tZmlsdGVyOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgd2lkdGg6IDA7XG4gICAgICBoZWlnaHQ6IDA7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGJvcmRlci10b3A6IDRweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlci1ib3R0b206IDRweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlci1sZWZ0OiA0cHggc29saWQgI0ZGRkZGRjtcbiAgICAgIGJvcmRlci1yaWdodDogbm9uZTtcbiAgICAgIHJpZ2h0OiAxMHB4O1xuICAgICAgdG9wOiA1MCU7XG4gICAgICBtYXJnaW4tdG9wOiAtNXB4OyB9XG4gICAgLmJsb2NrLWxheWVyZWQtbmF2IC5ibG9jay1zdWJ0aXRsZS0tZmlsdGVyOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMxYjc2YTc7XG4gICAgICBjb2xvcjogI0ZGRkZGRjsgfVxuICAgIC5ibG9jay1sYXllcmVkLW5hdiAuYmxvY2stc3VidGl0bGUtLWZpbHRlci5hY3RpdmU6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB3aWR0aDogMDtcbiAgICAgIGhlaWdodDogMDtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgYm9yZGVyLXJpZ2h0OiA0cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXItbGVmdDogNHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyLXRvcDogNHB4IHNvbGlkICNGRkZGRkY7XG4gICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgcmlnaHQ6IDEwcHg7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIG1hcmdpbi10b3A6IC0zcHg7IH1cbiAgI25hcnJvdy1ieS1saXN0LFxuICAjbmFycm93LWJ5LWxpc3QyIHtcbiAgICBwYWRkaW5nOiAxMHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNDQ0NDQ0M7XG4gICAgYm9yZGVyLXRvcDogMDsgfVxuICAuYmxvY2stbGF5ZXJlZC1uYXYgZGwgb2wgPiBsaSA+IGEsXG4gIC5ibG9jay1sYXllcmVkLW5hdiBkbCBvbCA+IGxpID4gc3BhbiB7XG4gICAgcGFkZGluZzogN3B4O1xuICAgIG1hcmdpbjogNXB4OyB9XG4gIC5ibG9jay1sYXllcmVkLW5hdiBkbCBvbCA+IGxpID4gYSB7XG4gICAgY29sb3I6ICMwMDNiNWY7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0Y0RjRGNDtcbiAgICBwYWRkaW5nOiA1cHggMTBweDsgfVxuICAgIC5ibG9jay1sYXllcmVkLW5hdiBkbCBvbCA+IGxpID4gYTpob3ZlciB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBiYWNrZ3JvdW5kOiBzaGFkZSgjRjRGNEY0LCAzJSk7IH0gfVxuXG4uYmxvY2stbGF5ZXJlZC1uYXYgLmN1cnJlbnRseSAuYmxvY2stc3VidGl0bGUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAwO1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICBjb2xvcjogIzAwM2I1ZjtcbiAgZm9udC1mYW1pbHk6IFwiVWJ1bnR1VGl0bGluZy1Cb2xkXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgVmVyZGFuYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMS40OyB9XG5cbi5ibG9jay1sYXllcmVkLW5hdiAuY3VycmVudGx5IG9sIHtcbiAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICBtYXJnaW4tYm90dG9tOiAxMHB4OyB9XG5cbi5ibG9jay1sYXllcmVkLW5hdiAuY3VycmVudGx5IG9sIGxpIHtcbiAgbWFyZ2luLWJvdHRvbTogNXB4OyB9XG4gIC5ibG9jay1sYXllcmVkLW5hdiAuY3VycmVudGx5IG9sIGxpIC5sYWJlbCB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cbiAgLmJsb2NrLWxheWVyZWQtbmF2IC5jdXJyZW50bHkgb2wgbGk6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGNsZWFyOiBib3RoOyB9XG5cbi5ibG9jay1sYXllcmVkLW5hdiAuYWN0aW9ucyB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBtYXJnaW4tYm90dG9tOiA3cHg7IH1cblxuLmNvbDEtbGF5b3V0LXNlYXJjaHJlc3VsdHMgLmNvbC1tYWluIHtcbiAgZmxvYXQ6IG5vbmU7XG4gIG1heC13aWR0aDogNjgwcHg7XG4gIG1hcmdpbjogYXV0bzsgfVxuXG4uY29sMS1sYXlvdXQtcHJvZHVjdG92ZXJ2aWV3IC5tYWluLWNvbnRhaW5lciB7XG4gIHBhZGRpbmctdG9wOiAwOyB9XG5cbi5jb2wxLWxheW91dC1wcm9kdWN0b3ZlcnZpZXcgI2hlYWRlci1uYXYge1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICMwMDNiNWY7XG4gIHBhZGRpbmctYm90dG9tOiAzNXB4OyB9XG5cbi5jb2wxLWxheW91dC1wcm9kdWN0b3ZlcnZpZXcgLmZvb3RlciB7XG4gIGJvcmRlci10b3A6IG5vbmU7IH1cblxuLmNvbDEtbGF5b3V0LXByb2R1Y3RvdmVydmlldyAuY29sLW1haW4ge1xuICBmbG9hdDogbm9uZTtcbiAgbWF4LXdpZHRoOiA2ODBweDtcbiAgbWFyZ2luOiBhdXRvOyB9XG5cbi5jb2wxLWxheW91dC1wcm9kdWN0b3ZlcnZpZXcgLnByb2R1Y3Qtcm93IHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZCAjMDAzYjVmO1xuICBwYWRkaW5nOiAzNXB4OyB9XG4gIC5jb2wxLWxheW91dC1wcm9kdWN0b3ZlcnZpZXcgLnByb2R1Y3Qtcm93IGgyIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7IH1cbiAgLmNvbDEtbGF5b3V0LXByb2R1Y3RvdmVydmlldyAucHJvZHVjdC1yb3cgLnByb2R1Y3QtY29sIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLmNvbDEtbGF5b3V0LXByb2R1Y3RvdmVydmlldyAucHJvZHVjdC1yb3cgLnByb2R1Y3QtY29sLWltYWdlIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICAuY29sMS1sYXlvdXQtcHJvZHVjdG92ZXJ2aWV3IC5wcm9kdWN0LXJvdyAucHJvZHVjdC1jb2wtaW1hZ2UgaW1nIHtcbiAgICAgIG1heC13aWR0aDogMjYwcHg7XG4gICAgICB3aWR0aDogODAlO1xuICAgICAgbWF4LXdpZHRoOiAyNjBweDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDM1cHg7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MDBweCkge1xuICAgIC5jb2wxLWxheW91dC1wcm9kdWN0b3ZlcnZpZXcgLnByb2R1Y3Qtcm93OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC5jb2wxLWxheW91dC1wcm9kdWN0b3ZlcnZpZXcgLnByb2R1Y3Qtcm93IC5wcm9kdWN0LWNvbCwgLmNvbDEtbGF5b3V0LXByb2R1Y3RvdmVydmlldyAucHJvZHVjdC1yb3cgLnByb2R1Y3QtY29sLWltYWdlIHtcbiAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgIHdpZHRoOiA1MCU7XG4gICAgICBwYWRkaW5nOiAwIDEwcHg7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG4gICAgLmNvbDEtbGF5b3V0LXByb2R1Y3RvdmVydmlldyAucHJvZHVjdC1yb3cgLnByb2R1Y3QtY29sIHtcbiAgICAgIHBhZGRpbmctdG9wOiA5MHB4O1xuICAgICAgcGFkZGluZy1ib3R0b206IDkwcHg7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gICAgLmNvbDEtbGF5b3V0LXByb2R1Y3RvdmVydmlldyAucHJvZHVjdC1yb3cgLnByb2R1Y3QtY29sLWltYWdlIHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbiAgICAgIC5jb2wxLWxheW91dC1wcm9kdWN0b3ZlcnZpZXcgLnByb2R1Y3Qtcm93IC5wcm9kdWN0LWNvbC1pbWFnZSBpbWcge1xuICAgICAgICBtYXgtd2lkdGg6IDI2MHB4O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gICAgLmNvbDEtbGF5b3V0LXByb2R1Y3RvdmVydmlldyAucHJvZHVjdC1yb3c6bnRoLWNoaWxkKGV2ZW4pIC5wcm9kdWN0LWNvbC1pbWFnZSB7XG4gICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gICAgLmNvbDEtbGF5b3V0LXByb2R1Y3RvdmVydmlldyAucHJvZHVjdC1yb3c6bnRoLWNoaWxkKGV2ZW4pIC5wcm9kdWN0LWNvbCB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9IH1cblxuLmNvbDEtbGF5b3V0LXByb2R1Y3RvdmVydmlldyAuZm9vdGVyLCAuY2F0ZWdvcnktbGlzdCAuZm9vdGVyIHtcbiAgYm9yZGVyLXRvcDogbm9uZTsgfVxuXG4uY2F0ZWdvcnktdGl0bGUge1xuICBwYWRkaW5nOiAzNXB4IDA7XG4gIGJvcmRlci10b3A6IDFweCBkb3R0ZWQgIzAwM2I1ZjsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk4MHB4KSB7XG4gICAgLmNhdGVnb3J5LXRpdGxlIHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiA1cHg7IH0gfVxuICAuY2F0ZWdvcnktdGl0bGUgLmNvbC1tYWluOmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBjbGVhcjogYm90aDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk4MHB4KSB7XG4gICAgLmNhdGVnb3J5LXRpdGxlIC5jb2wtbWFpbiB7XG4gICAgICB3aWR0aDogMTAwJTsgfSB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTgwcHgpIHtcbiAgICAuY2F0ZWdvcnktdGl0bGUgLmNvbC1yaWdodCB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9IH1cbiAgLmNhdGVnb3J5LXRpdGxlIC5jYXRlZ29yeS1pbWFnZS13cmFwcGVyLCAuY2F0ZWdvcnktdGl0bGUgLmNhdGVnb3J5LXRpdGxlLXdyYXBwZXIsIC5jYXRlZ29yeS10aXRsZSAubGlnaHRib3gtY29udGVudC1saW5rLmRlc2t0b3Age1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAwcHgpIHtcbiAgICAgIC5jYXRlZ29yeS10aXRsZSAuY2F0ZWdvcnktaW1hZ2Utd3JhcHBlciwgLmNhdGVnb3J5LXRpdGxlIC5jYXRlZ29yeS10aXRsZS13cmFwcGVyLCAuY2F0ZWdvcnktdGl0bGUgLmxpZ2h0Ym94LWNvbnRlbnQtbGluay5kZXNrdG9wIHtcbiAgICAgICAgaGVpZ2h0OiAyNjBweDsgfSB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgICAgIC5jYXRlZ29yeS10aXRsZSAuY2F0ZWdvcnktaW1hZ2Utd3JhcHBlciwgLmNhdGVnb3J5LXRpdGxlIC5jYXRlZ29yeS10aXRsZS13cmFwcGVyLCAuY2F0ZWdvcnktdGl0bGUgLmxpZ2h0Ym94LWNvbnRlbnQtbGluay5kZXNrdG9wIHtcbiAgICAgICAgaGVpZ2h0OiAzNDBweDsgfSB9XG4gIC5jYXRlZ29yeS10aXRsZSAuY2F0ZWdvcnktaW1hZ2Utd3JhcHBlciBoMSAuc3VibGluZSwgLmNhdGVnb3J5LXRpdGxlIC5jYXRlZ29yeS10aXRsZS13cmFwcGVyIGgxIC5zdWJsaW5lIHtcbiAgICBjb2xvcjogIzFmODZiZDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICBmb250LXNpemU6IDI0cHg7XG4gICAgbGluZS1oZWlnaHQ6IDI4cHg7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAgIC5jYXRlZ29yeS10aXRsZSAuY2F0ZWdvcnktaW1hZ2Utd3JhcHBlciBpbWcsIC5jYXRlZ29yeS10aXRsZSAuY2F0ZWdvcnktdGl0bGUtd3JhcHBlciBpbWcge1xuICAgICAgd2lkdGg6IDYwJTtcbiAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7IH0gfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gICAgLmNhdGVnb3J5LXRpdGxlIC5jYXRlZ29yeS1pbWFnZS13cmFwcGVyLCAuY2F0ZWdvcnktdGl0bGUgLmNhdGVnb3J5LXRpdGxlLXdyYXBwZXIge1xuICAgICAgd2lkdGg6IDUwJTtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gICAgICAuY2F0ZWdvcnktdGl0bGUgLmNhdGVnb3J5LWltYWdlLXdyYXBwZXIgaW1nLCAuY2F0ZWdvcnktdGl0bGUgLmNhdGVnb3J5LWltYWdlLXdyYXBwZXIgLmNhdGVnb3J5LXRpdGxlLWlubmVyLCAuY2F0ZWdvcnktdGl0bGUgLmNhdGVnb3J5LXRpdGxlLXdyYXBwZXIgaW1nLCAuY2F0ZWdvcnktdGl0bGUgLmNhdGVnb3J5LXRpdGxlLXdyYXBwZXIgLmNhdGVnb3J5LXRpdGxlLWlubmVyIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOyB9IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MDBweCkge1xuICAgIC5jYXRlZ29yeS10aXRsZSAuY2F0ZWdvcnktaW1hZ2Utd3JhcHBlciBpbWcge1xuICAgICAgbGVmdDogNTAlO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTYwJSwgLTUwJSk7XG4gICAgICBtYXJnaW4tbGVmdDogMjVweDtcbiAgICAgIG1heC13aWR0aDogMzAwcHg7IH0gfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDk4MHB4KSB7XG4gICAgLmNhdGVnb3J5LXRpdGxlIC5saWdodGJveC1jb250ZW50LWxpbmsubW9iaWxlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICAuY2F0ZWdvcnktdGl0bGUgLmxpZ2h0Ym94LWNvbnRlbnQtbGluay5kZXNrdG9wIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgLmNhdGVnb3J5LXRpdGxlIC5saWdodGJveC1jb250ZW50LWxpbmsuZGVza3RvcCAubGlnaHRib3gtY29udGVudC1saW5rLWlubmVyIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTgwcHgpIHtcbiAgICAuY2F0ZWdvcnktdGl0bGUgLmxpZ2h0Ym94LWNvbnRlbnQtbGluay5kZXNrdG9wIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrOyB9IH1cbiAgLmNhdGVnb3J5LXRpdGxlIC5saWdodGJveC1jb250ZW50LWxpbmsgYSB7XG4gICAgbWFyZ2luOiA1cHggMDsgfVxuICAuY2F0ZWdvcnktdGl0bGUgaDEge1xuICAgIGZvbnQtc2l6ZTogMzJweDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAwOyB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAgICAgLmNhdGVnb3J5LXRpdGxlIGgxIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTVweDsgfSB9XG5cbi5wcm9kdWN0LWNvbGxlY3Rpb25zIHtcbiAgYm9yZGVyLXRvcDogMXB4IGRvdHRlZCAjMDAzYjVmOyB9XG4gIC5wcm9kdWN0LWNvbGxlY3Rpb25zIC5zaWRlYmFyIHtcbiAgICBwYWRkaW5nLXRvcDogMzVweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMzVweDsgfVxuICAgIC5wcm9kdWN0LWNvbGxlY3Rpb25zIC5zaWRlYmFyIGgzLCAucHJvZHVjdC1jb2xsZWN0aW9ucyAuc2lkZWJhciBoNCB7XG4gICAgICBtYXJnaW4tdG9wOiAzNXB4O1xuICAgICAgZm9udC1zaXplOiAyMHB4OyB9XG4gICAgLnByb2R1Y3QtY29sbGVjdGlvbnMgLnNpZGViYXIgaDMuc3VwcG9ydCB7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICMwMDNiNWY7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMTBweDsgfVxuICAgIC5wcm9kdWN0LWNvbGxlY3Rpb25zIC5zaWRlYmFyIHAgYSB7XG4gICAgICBjb2xvcjogIzAwM2I1ZjtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG4gICAgICAucHJvZHVjdC1jb2xsZWN0aW9ucyAuc2lkZWJhciBwIGE6aG92ZXIge1xuICAgICAgICBjb2xvcjogIzFmODZiZDsgfVxuICAgIC5wcm9kdWN0LWNvbGxlY3Rpb25zIC5zaWRlYmFyIC5waG9uZSB7XG4gICAgICBmb250LXNpemU6IDI0cHg7XG4gICAgICBmb250LWZhbWlseTogXCJVYnVudHVUaXRsaW5nLUJvbGRcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBWZXJkYW5hLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7IH1cblxuLnByb2R1Y3QtY2F0ZWdvcnkge1xuICBwYWRkaW5nOiAzNXB4IDA7IH1cbiAgLnByb2R1Y3QtY2F0ZWdvcnkgdWwge1xuICAgIG1hcmdpbi1sZWZ0OiAtMTVweDtcbiAgICBtYXJnaW4tcmlnaHQ6IC0xNXB4OyB9XG4gICAgLnByb2R1Y3QtY2F0ZWdvcnkgdWw6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLnByb2R1Y3QtY2F0ZWdvcnkgdWwgbGkucHJvZHVjdCB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIHdpZHRoOiA1MCU7XG4gICAgICBwYWRkaW5nOiAxNXB4O1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgICAucHJvZHVjdC1jYXRlZ29yeSB1bCBsaS5wcm9kdWN0IGltZy5wcm9kdWN0LWltYWdlIHtcbiAgICAgICAgbWF4LXdpZHRoOiBub25lO1xuICAgICAgICB3aWR0aDogMTAwJTsgfVxuICAgICAgLnByb2R1Y3QtY2F0ZWdvcnkgdWwgbGkucHJvZHVjdCAucHJvZHVjdC10aXRsZSB7XG4gICAgICAgIHBhZGRpbmc6IDE1cHggMDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZCAjMDAzYjVmOyB9XG4gICAgICAgIC5wcm9kdWN0LWNhdGVnb3J5IHVsIGxpLnByb2R1Y3QgLnByb2R1Y3QtdGl0bGUgYSB7XG4gICAgICAgICAgY29sb3I6ICMwMDNiNWY7XG4gICAgICAgICAgY3Vyc29yOiBwb2ludGVyOyB9XG4gICAgICAgICAgLnByb2R1Y3QtY2F0ZWdvcnkgdWwgbGkucHJvZHVjdCAucHJvZHVjdC10aXRsZSBhOmhvdmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAjMWY4NmJkO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgLmNhdGFsb2ctY2F0ZWdvcnktdmlldyAuY29sLXJpZ2h0IC5zZWFyY2hfbWluaV9mb3JtIHtcbiAgICBkaXNwbGF5OiBub25lOyB9IH1cblxuLnByb2R1Y3QtdmlldyAuY2F0ZWdvcnktbmFtZSB7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cblxuLnByb2R1Y3QtdmlldyAjYWpheC1za3UsIC5wcm9kdWN0LXZpZXcgI2hpZGRlbi1hamF4LXNrdSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLnByb2R1Y3QtdmlldyAjYWpheC1za3Uge1xuICBtYXJnaW4tdG9wOiA1cHg7IH1cblxuLnByb2R1Y3QtdmlldyAjaW1hZ2UtbWFpbiB7XG4gIHdpZHRoOiAxMjAlO1xuICBtYXgtd2lkdGg6IDEyMCU7XG4gIG1hcmdpbi1sZWZ0OiAtMTAlOyB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAwcHgpIHtcbiAgLnByb2R1Y3QtdmlldyAucHJvZHVjdC1jb2wtaW1nLWJveCwgLnByb2R1Y3QtdmlldyAucHJvZHVjdC1pbmZvcm1hdGlvbiB7XG4gICAgd2lkdGg6IDUwJTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHBhZGRpbmc6IDAgMTVweDtcbiAgICBmbG9hdDogbGVmdDsgfSB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzcxcHgpIHtcbiAgLnByb2R1Y3QtdmlldyAucHJvZHVjdC1pbmZvcm1hdGlvbiB7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgcGFkZGluZzogMDsgfVxuICAucHJvZHVjdC12aWV3IC5wcm9kdWN0LWNvbC1pbWctYm94LCAucHJvZHVjdC12aWV3IC5wcm9kdWN0LWNvbC1kZXNjcmlwdGlvbiwgLnByb2R1Y3QtdmlldyAucHJvZHVjdC1jb2wtcHJpY2Uge1xuICAgIHdpZHRoOiAzMy4zMyU7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBwYWRkaW5nOiAwIDE1cHg7XG4gICAgZmxvYXQ6IGxlZnQ7IH0gfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gIC5wcm9kdWN0LXZpZXcgLnByb2R1Y3QtY29sLWRlc2NyaXB0aW9uLCAucHJvZHVjdC12aWV3IC5wcm9kdWN0LWNvbC1wcmljZSB7XG4gICAgcGFkZGluZy10b3A6IDYwcHg7IH0gfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gIC5wcm9kdWN0LXZpZXcgLnNob3J0LWRlc2NyaXB0aW9uIHtcbiAgICBwYWRkaW5nLXRvcDogMjBweDsgfSB9XG5cbi5wcm9kdWN0LXZpZXcgLnByb2R1Y3QtY29sLWRlc2NyaXB0aW9uIC5wcm9kdWN0LW9wdGlvbnMgbGFiZWwge1xuICBwYWRkaW5nLWxlZnQ6IDFweDsgfVxuXG4ucHJvZHVjdC12aWV3IC5zYW1wbGUtcmVxdWVzdCB7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG4gIG1hcmdpbi1ib3R0b206IDM1cHg7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NzFweCkge1xuICAgIC5wcm9kdWN0LXZpZXcgLnNhbXBsZS1yZXF1ZXN0IHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDQwcHg7IH0gfVxuXG4ucHJvZHVjdC12aWV3IC5ncmFkdWF0ZWQtbGluayB7XG4gIG1hcmdpbi10b3A6IDEwcHg7IH1cblxuLnByb2R1Y3QtdmlldyAucHJvZHVjdC1lc3NlbnRpYWwgLnByb2R1Y3QtbmFtZSB7XG4gIGNvbG9yOiAjMDA4YmQyOyB9XG5cbi5wcm9kdWN0LXZpZXcgLnByb2R1Y3QtZXNzZW50aWFsIC5wcm9kdWN0LWNvbC1pbWctYm94IHtcbiAgcGFkZGluZy1sZWZ0OiAwOyB9XG4gIC5wcm9kdWN0LXZpZXcgLnByb2R1Y3QtZXNzZW50aWFsIC5wcm9kdWN0LWNvbC1pbWctYm94IC5wcm9kdWN0LXNoYXJlIHtcbiAgICBtYXJnaW4tdG9wOiAzNXB4OyB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAgICAgLnByb2R1Y3QtdmlldyAucHJvZHVjdC1lc3NlbnRpYWwgLnByb2R1Y3QtY29sLWltZy1ib3ggLnByb2R1Y3Qtc2hhcmUgaW1nIHtcbiAgICAgICAgd2lkdGg6IDMycHg7XG4gICAgICAgIGhlaWdodDogMzJweDsgfSB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MDBweCkge1xuICAgICAgLnByb2R1Y3QtdmlldyAucHJvZHVjdC1lc3NlbnRpYWwgLnByb2R1Y3QtY29sLWltZy1ib3ggLnByb2R1Y3Qtc2hhcmUge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAzNXB4OyB9IH1cbiAgICAucHJvZHVjdC12aWV3IC5wcm9kdWN0LWVzc2VudGlhbCAucHJvZHVjdC1jb2wtaW1nLWJveCAucHJvZHVjdC1zaGFyZSBhIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuXG4ucHJvZHVjdC12aWV3IC5wcm9kdWN0LWVzc2VudGlhbCAucHJvZHVjdC12aWV3LXRvcCB7XG4gIGJvcmRlci10b3A6IDFweCBkb3R0ZWQgIzAwM2I1ZjtcbiAgcGFkZGluZy10b3A6IDM1cHg7IH1cbiAgLnByb2R1Y3QtdmlldyAucHJvZHVjdC1lc3NlbnRpYWwgLnByb2R1Y3Qtdmlldy10b3A6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAwcHgpIHtcbiAgICAucHJvZHVjdC12aWV3IC5wcm9kdWN0LWVzc2VudGlhbCAucHJvZHVjdC12aWV3LXRvcCB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMzVweDsgfSB9XG5cbi5wcm9kdWN0LXZpZXcgLnByb2R1Y3QtZXNzZW50aWFsIC5wcm9kdWN0LWNvbC1wcmljZSB7XG4gIHBhZGRpbmctcmlnaHQ6IDA7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAgIC5wcm9kdWN0LXZpZXcgLnByb2R1Y3QtZXNzZW50aWFsIC5wcm9kdWN0LWNvbC1wcmljZSB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMjBweDsgfSB9XG5cbi5wcm9kdWN0LXZpZXcgLnByb2R1Y3QtZXNzZW50aWFsIC5wcm9kdWN0LW9wdGlvbnMtYm90dG9tIC5wcmljZS1ib3gge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5wcm9kdWN0LXZpZXcgLnByb2R1Y3QtZXNzZW50aWFsIC5wcm9kdWN0LW9wdGlvbnMtYm90dG9tIC5hZGQtdG8tY2FydCAucXR5LXdyYXBwZXIge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5wcm9kdWN0LXZpZXcgLnByb2R1Y3QtZXNzZW50aWFsIHAucmVxdWlyZWQge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5wcm9kdWN0LXZpZXcgLnByb2R1Y3QtZXNzZW50aWFsIC5wcm9kdWN0LW9wdGlvbnMge1xuICBwYWRkaW5nLXRvcDogMjBweDtcbiAgbWFyZ2luLXRvcDogMjBweDtcbiAgYm9yZGVyLXRvcDogMXB4IGRvdHRlZCAjMDAzYjVmOyB9XG4gIC5wcm9kdWN0LXZpZXcgLnByb2R1Y3QtZXNzZW50aWFsIC5wcm9kdWN0LW9wdGlvbnMgZGQge1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7IH1cblxuLnByb2R1Y3QtdmlldyAucHJvZHVjdC1lc3NlbnRpYWwgLnByaWNlLWJveCAucHJpY2UsIC5wcm9kdWN0LXZpZXcgLnByb2R1Y3QtZXNzZW50aWFsIC5wcmljZSwgLnByb2R1Y3QtdmlldyAucHJvZHVjdC1lc3NlbnRpYWwgLmNvbmZpZ3VyYWJsZS1wcmljZS1mcm9tLWxhYmVsIHtcbiAgZm9udC1zaXplOiA0MHB4O1xuICBmb250LWZhbWlseTogXCJVYnVudHVUaXRsaW5nLUJvbGRcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBWZXJkYW5hLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgY29sb3I6ICMwMDNiNWY7IH1cblxuLnByb2R1Y3QtdmlldyAucHJvZHVjdC1lc3NlbnRpYWwgLnByaWNlLWJveCB7XG4gIG1hcmdpbjogMDtcbiAgbGluZS1oZWlnaHQ6IDE7IH1cblxuLnByb2R1Y3QtdmlldyAucHJvZHVjdC1lc3NlbnRpYWwgLmF2YWlsYWJpbGl0eS5pbi1zdG9jayB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLnByb2R1Y3QtdmlldyAucHJvZHVjdC1lc3NlbnRpYWwgLnByaWNlLWluZm8ge1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBtYXJnaW4tdG9wOiAyMHB4OyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAwcHgpIHtcbiAgICAucHJvZHVjdC12aWV3IC5wcm9kdWN0LWVzc2VudGlhbCAucHJpY2UtaW5mbyB7XG4gICAgICBtYXJnaW4tYm90dG9tOiA3MHB4O1xuICAgICAgbWFyZ2luLXRvcDogMDsgfSB9XG5cbi5wcm9kdWN0LXZpZXcgLnByb2R1Y3Qtdmlldy1kZXRhaWxzIHtcbiAgbWFyZ2luOiAzNXB4IDA7XG4gIG1hcmdpbi10b3A6IDA7XG4gIHBhZGRpbmc6IDIwcHggMDtcbiAgYm9yZGVyLXRvcDogMXB4IGRvdHRlZCAjMDAzYjVmOyB9XG4gIC5wcm9kdWN0LXZpZXcgLnByb2R1Y3Qtdmlldy1kZXRhaWxzOmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBjbGVhcjogYm90aDsgfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc3MXB4KSB7XG4gIC5wcm9kdWN0LXZpZXcgLnByb2R1Y3QtY2F0ZWdvcnktbmF2LCAucHJvZHVjdC12aWV3IC5wcm9kdWN0LWRldGFpbHMge1xuICAgIGZsb2F0OiBsZWZ0OyB9IH1cblxuLnByb2R1Y3QtdmlldyAucHJvZHVjdC12aWV3LWRldGFpbHMgaDIsIC5wcm9kdWN0LXZpZXcgLnByb2R1Y3Qtdmlldy1kZXRhaWxzIGgzLCAucHJvZHVjdC12aWV3IC5wcm9kdWN0LXZpZXctZGV0YWlscyAuaDMsIC5wcm9kdWN0LXZpZXcgLnByb2R1Y3Qtdmlldy1kZXRhaWxzIGg0IHtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBwYWRkaW5nOiAxMHB4IDA7XG4gIG1hcmdpbi1ib3R0b206IDA7IH1cblxuLnByb2R1Y3QtdmlldyAucHJvZHVjdC12aWV3LWRldGFpbHMgaW1nLmltYWdlLWljb24ge1xuICBtYXJnaW4tdG9wOiAtM3B4O1xuICBtYXJnaW4tcmlnaHQ6IDdweDsgfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc3MXB4KSB7XG4gIC5wcm9kdWN0LXZpZXcgLnByb2R1Y3Qtdmlldy1kZXRhaWxzIC5wcm9kdWN0LWRldGFpbHMge1xuICAgIHdpZHRoOiA3NSU7IH0gfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gIC5wcm9kdWN0LXZpZXcgLnByb2R1Y3Qtdmlldy1kZXRhaWxzIC5wcm9kdWN0LWRldGFpbHMgLmFkZGl0aW9uYWwtcm93IHtcbiAgICBtYXJnaW4tcmlnaHQ6IC0xNXB4OyB9IH1cblxuLnByb2R1Y3QtdmlldyAucHJvZHVjdC12aWV3LWRldGFpbHMgLnByb2R1Y3QtZGV0YWlscyAuYWRkaXRpb25hbC1yb3c6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgZGlzcGxheTogdGFibGU7XG4gIGNsZWFyOiBib3RoOyB9XG5cbi5wcm9kdWN0LXZpZXcgLnByb2R1Y3Qtdmlldy1kZXRhaWxzIC5wcm9kdWN0LWRldGFpbHMgLmFkZGl0aW9uYWwtcm93IHVsIHtcbiAgcGFkZGluZy1ib3R0b206IDE1cHg7IH1cblxuLnByb2R1Y3QtdmlldyAucHJvZHVjdC12aWV3LWRldGFpbHMgLnByb2R1Y3QtZGV0YWlscyAuYWRkaXRpb25hbC1yb3cgLnNsaWRlb3V0IGgyLCAucHJvZHVjdC12aWV3IC5wcm9kdWN0LXZpZXctZGV0YWlscyAucHJvZHVjdC1kZXRhaWxzIC5hZGRpdGlvbmFsLXJvdyAuc2xpZGVvdXQgaDMge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAucHJvZHVjdC12aWV3IC5wcm9kdWN0LXZpZXctZGV0YWlscyAucHJvZHVjdC1kZXRhaWxzIC5hZGRpdGlvbmFsLXJvdyAuc2xpZGVvdXQgaDI6YmVmb3JlLCAucHJvZHVjdC12aWV3IC5wcm9kdWN0LXZpZXctZGV0YWlscyAucHJvZHVjdC1kZXRhaWxzIC5hZGRpdGlvbmFsLXJvdyAuc2xpZGVvdXQgaDM6YmVmb3JlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDA7XG4gICAgdG9wOiAxNnB4O1xuICAgIHdpZHRoOiAxNHB4O1xuICAgIGhlaWdodDogMTBweDtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaW1hZ2VzL2ljb24tYXJyb3ctYWNjb3JkaW9uLWRvd24uc3ZnKTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDE0cHggMTBweDtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OyB9XG4gIC5wcm9kdWN0LXZpZXcgLnByb2R1Y3Qtdmlldy1kZXRhaWxzIC5wcm9kdWN0LWRldGFpbHMgLmFkZGl0aW9uYWwtcm93IC5zbGlkZW91dCBoMi5vcGVuOmJlZm9yZSwgLnByb2R1Y3QtdmlldyAucHJvZHVjdC12aWV3LWRldGFpbHMgLnByb2R1Y3QtZGV0YWlscyAuYWRkaXRpb25hbC1yb3cgLnNsaWRlb3V0IGgzLm9wZW46YmVmb3JlIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaW1hZ2VzL2ljb24tYXJyb3ctYWNjb3JkaW9uLXVwLnN2Zyk7IH1cblxuLnByb2R1Y3QtdmlldyAucHJvZHVjdC12aWV3LWRldGFpbHMgLnByb2R1Y3QtZGV0YWlscyAuYWRkaXRpb25hbC1yb3cgLnNsaWRlb3V0IHVsIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuICAucHJvZHVjdC12aWV3IC5wcm9kdWN0LXZpZXctZGV0YWlscyAucHJvZHVjdC1kZXRhaWxzIC5hZGRpdGlvbmFsLXJvdyAuc2xpZGVvdXQgdWwub3BlbiB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgLnByb2R1Y3QtdmlldyAucHJvZHVjdC12aWV3LWRldGFpbHMgLnByb2R1Y3QtZGV0YWlscyAuYWRkaXRpb25hbC1yb3cgLnNsaWRlb3V0IHVsIGxpIHtcbiAgICB0ZXh0LWluZGVudDogLThweDtcbiAgICBwYWRkaW5nLWxlZnQ6IDhweDtcbiAgICBtYXJnaW46IDRweCAwOyB9XG4gICAgLnByb2R1Y3QtdmlldyAucHJvZHVjdC12aWV3LWRldGFpbHMgLnByb2R1Y3QtZGV0YWlscyAuYWRkaXRpb25hbC1yb3cgLnNsaWRlb3V0IHVsIGxpOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiBcIi0gXCI7IH1cbiAgICAucHJvZHVjdC12aWV3IC5wcm9kdWN0LXZpZXctZGV0YWlscyAucHJvZHVjdC1kZXRhaWxzIC5hZGRpdGlvbmFsLXJvdyAuc2xpZGVvdXQgdWwgbGkubm8tZGFzaDpiZWZvcmUge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHdpZHRoOiA5cHg7IH1cblxuLnByb2R1Y3QtdmlldyAucHJvZHVjdC12aWV3LWRldGFpbHMgLnByb2R1Y3QtZGV0YWlscyAuYWRkaXRpb25hbC1yb3cgLnNob3AtbGlzdCBhwqAge1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cblxuLnByb2R1Y3QtdmlldyAucHJvZHVjdC12aWV3LWRldGFpbHMgLnByb2R1Y3QtZGV0YWlscyAuYWRkaXRpb25hbC1yb3cgLmRvd25sb2FkLWxpc3Qge1xuICBtYXJnaW4tYm90dG9tOiAzNXB4OyB9XG5cbi5wcm9kdWN0LXZpZXcgLnByb2R1Y3Qtdmlldy1kZXRhaWxzIC5wcm9kdWN0LWRldGFpbHMgLmFkZGl0aW9uYWwtcm93LmRvd25sb2FkLXNob3AgLmFkZGl0aW9uYWwtd3JhcHBlciA+IGRpdiB7XG4gIGJvcmRlcjogbm9uZTtcbiAgcGFkZGluZzogMzVweCAwO1xuICBwYWRkaW5nLWJvdHRvbTogMjBweDsgfVxuXG4ucHJvZHVjdC12aWV3IC5wcm9kdWN0LXZpZXctZGV0YWlscyAucHJvZHVjdC1kZXRhaWxzIC5hZGRpdGlvbmFsLXJvdyAuc3VwcG9ydC1ibG9jayB7XG4gIHBhZGRpbmctdG9wOiAzNXB4OyB9XG4gIC5wcm9kdWN0LXZpZXcgLnByb2R1Y3Qtdmlldy1kZXRhaWxzIC5wcm9kdWN0LWRldGFpbHMgLmFkZGl0aW9uYWwtcm93IC5zdXBwb3J0LWJsb2NrIGgzIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4OyB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAwcHgpIHtcbiAgLnByb2R1Y3QtdmlldyAucHJvZHVjdC12aWV3LWRldGFpbHMgLnByb2R1Y3QtZGV0YWlscyAuYWRkaXRpb25hbC1yb3cgLmlucHV0LWJveCB7XG4gICAgbWF4LXdpZHRoOiAyNjBweDsgfSB9XG5cbi5wcm9kdWN0LXZpZXcgLnByb2R1Y3Qtdmlldy1kZXRhaWxzIC5wcm9kdWN0LWRldGFpbHMgLmFkZGl0aW9uYWwtcm93IC5pbnB1dC10ZXh0IHtcbiAgYm9yZGVyOiAzcHggc29saWQgIzAwM2I1ZjtcbiAgY29sb3I6ICMwMDNiNWY7XG4gIGJhY2tncm91bmQ6IG5vbmU7IH1cblxuLnByb2R1Y3QtdmlldyAucHJvZHVjdC12aWV3LWRldGFpbHMgLnByb2R1Y3QtZGV0YWlscyAuYWRkaXRpb25hbC1yb3cgLnNlYXJjaF9taW5pX2Zvcm0gLnNlYXJjaC1idXR0b246YmVmb3JlIHtcbiAgd2lkdGg6IDI3cHg7XG4gIGhlaWdodDogMjlweDtcbiAgYmFja2dyb3VuZDogdXJsKGltYWdlcy9pY29uLXNlYXJjaC1kYXJrYmx1ZS5zdmcpO1xuICBiYWNrZ3JvdW5kLXNpemU6IDI0cHg7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7IH1cblxuLnByb2R1Y3QtdmlldyAucHJvZHVjdC12aWV3LWRldGFpbHMgLnByb2R1Y3QtZGV0YWlscyAuYWRkaXRpb25hbC1yb3cgOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6ICMwMDNiNWY7IH1cblxuLnByb2R1Y3QtdmlldyAucHJvZHVjdC12aWV3LWRldGFpbHMgLnByb2R1Y3QtZGV0YWlscyAuYWRkaXRpb25hbC1yb3cgaW5wdXQ6LW1vei1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjMDAzYjVmOyB9XG5cbi5wcm9kdWN0LXZpZXcgLnByb2R1Y3Qtdmlldy1kZXRhaWxzIC5wcm9kdWN0LWRldGFpbHMgLmFkZGl0aW9uYWwtd3JhcHBlciA+IGRpdiB7XG4gIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQgIzAwM2I1ZjsgfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gIC5wcm9kdWN0LXZpZXcgLnByb2R1Y3Qtdmlldy1kZXRhaWxzIC5wcm9kdWN0LWRldGFpbHMgLmFkZGl0aW9uYWwtd3JhcHBlciB7XG4gICAgd2lkdGg6IDUwJTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHBhZGRpbmc6IDAgMTVweDtcbiAgICBmbG9hdDogbGVmdDsgfSB9XG5cbi5wcm9kdWN0LXZpZXcgLnByb2R1Y3Qtdmlldy1kZXRhaWxzIC5wcm9kdWN0LWNhdGVnb3J5LW5hdiB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NzFweCkge1xuICAucHJvZHVjdC12aWV3IC5wcm9kdWN0LXZpZXctZGV0YWlscyAucHJvZHVjdC1jYXRlZ29yeS1uYXYge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgd2lkdGg6IDI1JTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxNXB4OyB9XG4gICAgLnByb2R1Y3QtdmlldyAucHJvZHVjdC12aWV3LWRldGFpbHMgLnByb2R1Y3QtY2F0ZWdvcnktbmF2IHVsIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7IH0gfVxuXG4ucHJvZHVjdC12aWV3IC5wcm9kdWN0LXZpZXctZGV0YWlscyAuYm94LXVwLXNlbGwge1xuICBib3JkZXItdG9wOiAxcHggZG90dGVkICMwMDNiNWY7IH1cblxuLnByb2R1Y3QtdmlldyAucHJvZHVjdC12aWV3LWRldGFpbHMgLmJveC11cC1zZWxsLCAucHJvZHVjdC12aWV3IC5wcm9kdWN0LXZpZXctZGV0YWlscyAuYm94LWNyb3NzLXNlbGwge1xuICBwYWRkaW5nOiAyMHB4IDA7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MDBweCkge1xuICAgIC5wcm9kdWN0LXZpZXcgLnByb2R1Y3Qtdmlldy1kZXRhaWxzIC5ib3gtdXAtc2VsbCwgLnByb2R1Y3QtdmlldyAucHJvZHVjdC12aWV3LWRldGFpbHMgLmJveC1jcm9zcy1zZWxsIHtcbiAgICAgIHBhZGRpbmc6IDM1cHggMTVweDtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQgIzAwM2I1ZjsgfSB9XG4gIC5wcm9kdWN0LXZpZXcgLnByb2R1Y3Qtdmlldy1kZXRhaWxzIC5ib3gtdXAtc2VsbCBoMywgLnByb2R1Y3QtdmlldyAucHJvZHVjdC12aWV3LWRldGFpbHMgLmJveC11cC1zZWxsIGg0LCAucHJvZHVjdC12aWV3IC5wcm9kdWN0LXZpZXctZGV0YWlscyAuYm94LWNyb3NzLXNlbGwgaDMsIC5wcm9kdWN0LXZpZXcgLnByb2R1Y3Qtdmlldy1kZXRhaWxzIC5ib3gtY3Jvc3Mtc2VsbCBoNCB7XG4gICAgcGFkZGluZy10b3A6IDA7IH1cbiAgLnByb2R1Y3QtdmlldyAucHJvZHVjdC12aWV3LWRldGFpbHMgLmJveC11cC1zZWxsIGE6bm90KC5wcm9kdWN0LWltYWdlKSwgLnByb2R1Y3QtdmlldyAucHJvZHVjdC12aWV3LWRldGFpbHMgLmJveC1jcm9zcy1zZWxsIGE6bm90KC5wcm9kdWN0LWltYWdlKSB7XG4gICAgY29sb3I6ICMwMDNiNWY7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMwMDNiNWY7XG4gICAgbGluZS1oZWlnaHQ6IDEuMTsgfVxuICAgIC5wcm9kdWN0LXZpZXcgLnByb2R1Y3Qtdmlldy1kZXRhaWxzIC5ib3gtdXAtc2VsbCBhOm5vdCgucHJvZHVjdC1pbWFnZSk6aG92ZXIsIC5wcm9kdWN0LXZpZXcgLnByb2R1Y3Qtdmlldy1kZXRhaWxzIC5ib3gtdXAtc2VsbCBhOm5vdCgucHJvZHVjdC1pbWFnZSkuYWN0aXZlLCAucHJvZHVjdC12aWV3IC5wcm9kdWN0LXZpZXctZGV0YWlscyAuYm94LWNyb3NzLXNlbGwgYTpub3QoLnByb2R1Y3QtaW1hZ2UpOmhvdmVyLCAucHJvZHVjdC12aWV3IC5wcm9kdWN0LXZpZXctZGV0YWlscyAuYm94LWNyb3NzLXNlbGwgYTpub3QoLnByb2R1Y3QtaW1hZ2UpLmFjdGl2ZSB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBjb2xvcjogIzFmODZiZDtcbiAgICAgIGJvcmRlci1jb2xvcjogIzFmODZiZDsgfVxuXG4ucHJvZHVjdC12aWV3IC5wcm9kdWN0LXZpZXctZGV0YWlscyAuYm94LXVwLXNlbGwge1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICMwMDNiNWY7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAgIC5wcm9kdWN0LXZpZXcgLnByb2R1Y3Qtdmlldy1kZXRhaWxzIC5ib3gtdXAtc2VsbCAuc2xpY2stc2xpZGUgaW1nIHtcbiAgICAgIHdpZHRoOiA4MCU7XG4gICAgICBtYXJnaW46IGF1dG87IH0gfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gIC5wcm9kdWN0LXZpZXcgLnByb2R1Y3Qtdmlldy1kZXRhaWxzIC5ib3gtdXAtc2VsbC1zbGlkZXIge1xuICAgIG1hcmdpbi1sZWZ0OiAtMTVweDtcbiAgICBtYXJnaW4tcmlnaHQ6IC0xNXB4OyB9IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MDBweCkge1xuICAucHJvZHVjdC12aWV3IC5wcm9kdWN0LXZpZXctZGV0YWlscyAuYm94LXVwLXNlbGwtc2xpZGVyLCAucHJvZHVjdC12aWV3IC5wcm9kdWN0LXZpZXctZGV0YWlscyAuYm94LWNyb3NzLXNlbGwtc2xpZGVyIHtcbiAgICBwYWRkaW5nOiAwIDcwcHg7IH0gfVxuXG4ucHJvZHVjdC12aWV3IC5wcm9kdWN0LXZpZXctZGV0YWlscyAuYm94LXVwLXNlbGwtc2xpZGVyIC5zbGljay1zbGlkZSwgLnByb2R1Y3QtdmlldyAucHJvZHVjdC12aWV3LWRldGFpbHMgLmJveC1jcm9zcy1zZWxsLXNsaWRlciAuc2xpY2stc2xpZGUge1xuICBtYXJnaW46IDAgMTVweDsgfVxuXG4ucHJvZHVjdC12aWV3IC5wcm9kdWN0LXZpZXctZGV0YWlscyAuYm94LXVwLXNlbGwtc2xpZGVyIC5zbGljay1uZXh0LCAucHJvZHVjdC12aWV3IC5wcm9kdWN0LXZpZXctZGV0YWlscyAuYm94LXVwLXNlbGwtc2xpZGVyIC5zbGljay1wcmV2LCAucHJvZHVjdC12aWV3IC5wcm9kdWN0LXZpZXctZGV0YWlscyAuYm94LWNyb3NzLXNlbGwtc2xpZGVyIC5zbGljay1uZXh0LCAucHJvZHVjdC12aWV3IC5wcm9kdWN0LXZpZXctZGV0YWlscyAuYm94LWNyb3NzLXNlbGwtc2xpZGVyIC5zbGljay1wcmV2IHtcbiAgYmFja2dyb3VuZDogI2M5YzljOTsgfVxuXG4ucHJvZHVjdC12aWV3IC5wcm9kdWN0LXZpZXctZGV0YWlscyAuYm94LXVwLXNlbGwtc2xpZGVyIC5zbGljay1uZXh0LCAucHJvZHVjdC12aWV3IC5wcm9kdWN0LXZpZXctZGV0YWlscyAuYm94LWNyb3NzLXNlbGwtc2xpZGVyIC5zbGljay1uZXh0IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IDA7IH1cblxuLnByb2R1Y3QtdmlldyAucHJvZHVjdC12aWV3LWRldGFpbHMgLmJveC11cC1zZWxsLXNsaWRlciAuc2xpY2stcHJldiwgLnByb2R1Y3QtdmlldyAucHJvZHVjdC12aWV3LWRldGFpbHMgLmJveC1jcm9zcy1zZWxsLXNsaWRlciAuc2xpY2stcHJldiB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAwOyB9XG5cbi5wcm9kdWN0LXZpZXcgLnByb2R1Y3Qtdmlldy1kZXRhaWxzIC5ib3gtdXAtc2VsbC1zbGlkZXIgLnByb2R1Y3QtbmFtZSwgLnByb2R1Y3QtdmlldyAucHJvZHVjdC12aWV3LWRldGFpbHMgLmJveC1jcm9zcy1zZWxsLXNsaWRlciAucHJvZHVjdC1uYW1lIHtcbiAgbWFyZ2luLXRvcDogNXB4OyB9XG5cbi5wcm9kdWN0LXZpZXcgLnByb2R1Y3Qtdmlldy1kZXRhaWxzIC5ib3gtY3Jvc3Mtc2VsbC1zbGlkZXI6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgZGlzcGxheTogdGFibGU7XG4gIGNsZWFyOiBib3RoOyB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAwcHgpIHtcbiAgLnByb2R1Y3QtdmlldyAucHJvZHVjdC12aWV3LWRldGFpbHMgLmJveC1jcm9zcy1zZWxsLXNsaWRlciAubm8tc2xpY2stc2xpZGUge1xuICAgIHdpZHRoOiA1MCU7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBwYWRkaW5nOiAwIDE1cHg7IH0gfVxuXG4ucHJvZHVjdC12aWV3IC5wcm9kdWN0LXZpZXctZGV0YWlscyAuYm94LWNyb3NzLXNlbGwtc2xpZGVyIC5uby1zbGljay1zbGlkZS5zbGljay1zbGlkZSB7XG4gIHBhZGRpbmc6IDA7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogQ2F0YWxvZyAtIE1TUlAgTUFQIFBvcHVwXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLmNhcnQtbXNycC10b3RhbHMge1xuICBjb2xvcjogcmVkO1xuICBmb250LXNpemU6IDEycHggIWltcG9ydGFudDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIG1hcmdpbjogMTBweCAxMHB4IDA7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG5cbi5tYXAtY2FydC1zaWRlYmFyLXRvdGFsIHtcbiAgY29sb3I6IHJlZDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHBhZGRpbmc6IDJweCA1cHg7IH1cblxuLm1hcC1wb3B1cCB7XG4gIGJhY2tncm91bmQ6ICNGRkZGRkY7XG4gIGJvcmRlcjogNXB4IHNvbGlkICNDQ0NDQ0M7XG4gIG1hcmdpbjogMTJweCAwIDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgd2lkdGg6IDQ1MHB4O1xuICB6LWluZGV4OiAxMDA7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NzFweCkge1xuICAgIC5tYXAtcG9wdXAubWFwLXBvcHVwLXJpZ2h0IHtcbiAgICAgIGxlZnQ6IDEwcHggIWltcG9ydGFudDsgfVxuICAgIC5tYXAtcG9wdXAubWFwLXBvcHVwLWxlZnQge1xuICAgICAgbGVmdDogYXV0byAhaW1wb3J0YW50O1xuICAgICAgcmlnaHQ6IDEwcHggIWltcG9ydGFudDsgfSB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzcwcHgpIHtcbiAgICAubWFwLXBvcHVwIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbGVmdDogMHB4ICFpbXBvcnRhbnQ7IH0gfVxuICAubWFwLXBvcHVwIC5tYXAtcG9wdXAtaGVhZGluZyB7XG4gICAgcGFkZGluZzogOHB4IDEwcHg7XG4gICAgbWFyZ2luLXJpZ2h0OiA0MHB4O1xuICAgIHdpZHRoOiBhdXRvOyB9XG4gICAgLm1hcC1wb3B1cCAubWFwLXBvcHVwLWhlYWRpbmcgaDMge1xuICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7IH1cbiAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDc5cHgpIHtcbiAgICAgICAgLm1hcC1wb3B1cCAubWFwLXBvcHVwLWhlYWRpbmcgaDMge1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfSB9XG4gIC5tYXAtcG9wdXAgLm1hcC1wb3B1cC1jbG9zZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMHB4O1xuICAgIHJpZ2h0OiAwcHg7XG4gICAgaGVpZ2h0OiAzNnB4O1xuICAgIHdpZHRoOiAzNnB4O1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICBsaW5lLWhlaWdodDogMzJweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLm1hcC1wb3B1cCAubWFwLXBvcHVwLWNvbnRlbnQge1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjRURFREVEO1xuICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgbWFyZ2luOiAwIDEwcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0NzlweCkge1xuICAgICAgLm1hcC1wb3B1cCAubWFwLXBvcHVwLWNvbnRlbnQge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH0gfVxuICAubWFwLXBvcHVwIC5tYXAtcG9wdXAtY2hlY2tvdXQge1xuICAgIHBhZGRpbmc6IDEwcHggMDsgfVxuICAgIC5tYXAtcG9wdXAgLm1hcC1wb3B1cC1jaGVja291dCBmb3JtOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC5tYXAtcG9wdXAgLm1hcC1wb3B1cC1jaGVja291dCBzcGFuIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgLm1hcC1wb3B1cCAubWFwLXBvcHVwLWNoZWNrb3V0IC5idXR0b24ge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBtYXJnaW46IDAgMnB4O1xuICAgICAgY2xlYXI6IGxlZnQ7IH1cbiAgICAubWFwLXBvcHVwIC5tYXAtcG9wdXAtY2hlY2tvdXQgLmFkZGl0aW9uYWwtYWRkdG9jYXJ0LWJveCB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIG1pbi13aWR0aDogMjEwcHg7IH1cbiAgICAgIC5tYXAtcG9wdXAgLm1hcC1wb3B1cC1jaGVja291dCAuYWRkaXRpb25hbC1hZGR0b2NhcnQtYm94IGxpIHtcbiAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lOyB9XG4gICAgLm1hcC1wb3B1cCAubWFwLXBvcHVwLWNoZWNrb3V0IC5wYXlwYWwtbG9nbyB7XG4gICAgICB3aWR0aDogYXV0bzsgfVxuICAgICAgLm1hcC1wb3B1cCAubWFwLXBvcHVwLWNoZWNrb3V0IC5wYXlwYWwtbG9nbyBhIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgY2xlYXI6IGxlZnQ7IH1cbiAgICAgIC5tYXAtcG9wdXAgLm1hcC1wb3B1cC1jaGVja291dCAucGF5cGFsLWxvZ28gLnBheXBhbC1vciB7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIHBhZGRpbmc6IDVweCAxNXB4O1xuICAgICAgICBjbGVhcjogbGVmdDsgfVxuICAgICAgLm1hcC1wb3B1cCAubWFwLXBvcHVwLWNoZWNrb3V0IC5wYXlwYWwtbG9nbzphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAgIC5tYXAtcG9wdXAgLm1hcC1wb3B1cC1jaGVja291dCAucGF5cGFsLWxvZ28gLmJtbF9idXR0b24gYSB7XG4gICAgICAgIGNsZWFyOiBsZWZ0OyB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0NzlweCkge1xuICAgICAgLm1hcC1wb3B1cCAubWFwLXBvcHVwLWNoZWNrb3V0IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gICAgICAgIC5tYXAtcG9wdXAgLm1hcC1wb3B1cC1jaGVja291dCAuYnV0dG9uLFxuICAgICAgICAubWFwLXBvcHVwIC5tYXAtcG9wdXAtY2hlY2tvdXQgLmFkZGl0aW9uYWwtYWRkdG9jYXJ0LWJveCxcbiAgICAgICAgLm1hcC1wb3B1cCAubWFwLXBvcHVwLWNoZWNrb3V0IC5wYXlwYWwtbG9nbyBhLFxuICAgICAgICAubWFwLXBvcHVwIC5tYXAtcG9wdXAtY2hlY2tvdXQgLnBheXBhbC1sb2dvIC5wYXlwYWwtb3Ige1xuICAgICAgICAgIGZsb2F0OiBub25lOyB9XG4gICAgICAgIC5tYXAtcG9wdXAgLm1hcC1wb3B1cC1jaGVja291dCAuYWRkaXRpb25hbC1hZGR0b2NhcnQtYm94IHtcbiAgICAgICAgICBtaW4td2lkdGg6IDBweDsgfVxuICAgICAgICAubWFwLXBvcHVwIC5tYXAtcG9wdXAtY2hlY2tvdXQgLnBheXBhbC1sb2dvIC5wYXlwYWwtb3Ige1xuICAgICAgICAgIG1hcmdpbjogMHB4O1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7IH0gfVxuICAgIC5tYXAtcG9wdXAgLm1hcC1wb3B1cC1jaGVja291dDphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgLm1hcC1wb3B1cCAubWFwLXBvcHVwLXByaWNlIHtcbiAgICBwYWRkaW5nOiAxMHB4IDA7IH1cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ3OXB4KSB7XG4gICAgICAubWFwLXBvcHVwIC5tYXAtcG9wdXAtcHJpY2Uge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIHBhZGRpbmctdG9wOiAwcHg7IH0gfVxuICAgIC5tYXAtcG9wdXAgLm1hcC1wb3B1cC1wcmljZSAucHJpY2UtYm94LFxuICAgIC5tYXAtcG9wdXAgLm1hcC1wb3B1cC1wcmljZSAucHJpY2UtYm94IC5zcGVjaWFsLXByaWNlIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHBhZGRpbmc6IDA7IH1cbiAgICAubWFwLXBvcHVwIC5tYXAtcG9wdXAtcHJpY2UgLnByaWNlLWJveCAubWluaW1hbC1wcmljZS1saW5rIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuICAubWFwLXBvcHVwIC5tYXAtcG9wdXAtdGV4dCB7XG4gICAgcGFkZGluZzogMTBweCAwO1xuICAgIG1hcmdpbjogMCAxMHB4O1xuICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDsgfVxuICAubWFwLXBvcHVwIC5tYXAtcG9wdXAtdGV4dCxcbiAgLm1hcC1wb3B1cCAubWFwLXBvcHVwLW9ubHktdGV4dCB7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNFREVERUQ7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogQ2F0YWxvZyAtIE1TUlAgUHJvZHVjdCBMaXN0aW5nXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnByaWNlLWJveCAubWFwLWxpbmsge1xuICBkaXNwbGF5OiBibG9jaztcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIENhdGFsb2cgLSBDb21wYXJlXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLmJsb2NrLWNvbXBhcmUgLnByb2R1Y3QtbmFtZTphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgY2xlYXI6IGJvdGg7IH1cblxuLmNvbXBhcmUtdGFibGUgLnByb2R1Y3QtaW1hZ2Uge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cblxuLmNvbXBhcmUtdGFibGUgLnByb2R1Y3Qtc2hvcC1yb3cudG9wIHRkIHtcbiAgcGFkZGluZy1ib3R0b206IDA7XG4gIGJvcmRlci1ib3R0b206IDA7IH1cblxuLmNvbXBhcmUtdGFibGUgLnByb2R1Y3Qtc2hvcC1yb3cuYm90dG9tIHRkIHtcbiAgcGFkZGluZy10b3A6IDA7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogQ2hlY2tvdXQgLSBMYXlvdXRcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4uY2FydCAuYnV0dG9uIHtcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDsgfVxuXG4uY2FydCAucHJvZHVjdC1zYW1wbGUge1xuICBjb2xvcjogIzFmODZiZDtcbiAgZm9udC1zaXplOiAxN3B4OyB9XG5cbi5jYXJ0IC5jYXJ0LXNhbXBsZS1xdHkge1xuICBmb250LWZhbWlseTogQXJpYWwsIHNhbnMtc2VyaWY7IH1cblxuLmNhcnQgLnNhbXBsZS1hY3Rpb25zIHtcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50OyB9XG5cbi5jYXJ0LXRhYmxlIC5wcm9kdWN0LWNhcnQtYWN0aW9ucyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuXG4uY2FydC10YWJsZSAucHJvZHVjdC1jYXJ0LWFjdGlvbnMgYnV0dG9uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBwYWRkaW5nOiAzcHggMTJweCAhaW1wb3J0YW50O1xuICBtYXJnaW4tbGVmdDogNXB4O1xuICBjb2xvcjogIzFmODZiZDtcbiAgZm9udC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmOyB9XG5cbi5jYXJ0LWZvcm1zLFxuLmNyb3Nzc2VsbCB7XG4gIGZsb2F0OiBsZWZ0O1xuICBjbGVhcjogbGVmdDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gICAgLmNhcnQtZm9ybXMsXG4gICAgLmNyb3Nzc2VsbCB7XG4gICAgICBtYXgtd2lkdGg6IDMwMHB4OyB9IH1cblxuLmNhcnQtdG90YWxzLXdyYXBwZXIge1xuICBmbG9hdDogcmlnaHQ7IH1cblxuLmNhcnQtZm9ybXMgLmRpc2NvdW50IHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4uY2FydC10YWJsZSxcbi5jYXJ0LXRvdGFscyxcbi5jYXJ0LWZvcm1zIC5kaXNjb3VudCxcbi5jYXJ0LWZvcm1zIC5naWZ0Y2FyZCxcbi5jYXJ0LWZvcm1zIC5zaGlwcGluZyB7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7IH1cblxuLmNoZWNrb3V0LWNhcnQtaW5kZXggI3Bvc3Rjb2RlIHtcbiAgd2lkdGg6IDEwMCU7IH1cblxuLmRpc3BsYXktYm90aC1wcmljZXMgLmNhcnQtdGFibGUge1xuICBmbG9hdDogbm9uZTtcbiAgd2lkdGg6IDEwMCU7IH1cblxuLmRpc3BsYXktYm90aC1wcmljZXMgLmNhcnQtZm9ybXMge1xuICBmbG9hdDogbGVmdDtcbiAgcGFkZGluZy1yaWdodDogMTBweDtcbiAgcGFkZGluZy1sZWZ0OiAwOyB9XG5cbi5kaXNwbGF5LWJvdGgtcHJpY2VzIC5jYXJ0LXRvdGFscy13cmFwcGVyLFxuLmRpc3BsYXktYm90aC1wcmljZXMgLmNyb3Nzc2VsbCB7XG4gIHBhZGRpbmctbGVmdDogMTBweDsgfVxuXG4uZGlzcGxheS1ib3RoLXByaWNlcyAuY2FydC1mb3Jtcyxcbi5kaXNwbGF5LWJvdGgtcHJpY2VzIC5jYXJ0LXRvdGFscy13cmFwcGVyLFxuLmRpc3BsYXktYm90aC1wcmljZXMgLmNyb3Nzc2VsbCB7XG4gIHdpZHRoOiA1MCU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cblxuLmRpc3BsYXktYm90aC1wcmljZXMgLmNyb3Nzc2VsbCB7XG4gIGNsZWFyOiByaWdodDtcbiAgZmxvYXQ6IHJpZ2h0OyB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTc5cHgpIHtcbiAgLmRpc3BsYXktc2luZ2xlLXByaWNlIC5jYXJ0LXRhYmxlIHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAuZGlzcGxheS1zaW5nbGUtcHJpY2UgLmNhcnQtZm9ybXMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7XG4gICAgcGFkZGluZy1sZWZ0OiAwOyB9XG4gIC5kaXNwbGF5LXNpbmdsZS1wcmljZSAuY2FydC10b3RhbHMtd3JhcHBlcixcbiAgLmRpc3BsYXktc2luZ2xlLXByaWNlIC5jcm9zc3NlbGwge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDsgfVxuICAuZGlzcGxheS1zaW5nbGUtcHJpY2UgLmNhcnQtZm9ybXMsXG4gIC5kaXNwbGF5LXNpbmdsZS1wcmljZSAuY2FydC10b3RhbHMtd3JhcHBlcixcbiAgLmRpc3BsYXktc2luZ2xlLXByaWNlIC5jcm9zc3NlbGwge1xuICAgIHdpZHRoOiA1MCU7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuICAuZGlzcGxheS1zaW5nbGUtcHJpY2UgLmNyb3Nzc2VsbCB7XG4gICAgY2xlYXI6IHJpZ2h0O1xuICAgIGZsb2F0OiByaWdodDsgfSB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgLnByb2R1Y3QtY2FydC1za3Uge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmRpc3BsYXktYm90aC1wcmljZXMgLmNhcnQtZm9ybXMsXG4gIC5kaXNwbGF5LWJvdGgtcHJpY2VzIC5jYXJ0LXRvdGFscy13cmFwcGVyLFxuICAuZGlzcGxheS1ib3RoLXByaWNlcyAuY3Jvc3NzZWxsLFxuICAuZGlzcGxheS1zaW5nbGUtcHJpY2UgLmNhcnQtZm9ybXMsXG4gIC5kaXNwbGF5LXNpbmdsZS1wcmljZSAuY2FydC10b3RhbHMtd3JhcHBlcixcbiAgLmRpc3BsYXktc2luZ2xlLXByaWNlIC5jcm9zc3NlbGwge1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIGZsb2F0OiBub25lO1xuICAgIHdpZHRoOiAxMDAlOyB9IH1cblxuLmRpc3BsYXktc2luZ2xlLXByaWNlOmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICBjbGVhcjogYm90aDsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBDaGVja291dCAtIENhcnRcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4uY2FydCAucGFnZS10aXRsZSB7XG4gIG1hcmdpbi1ib3R0b206IDM1cHg7IH1cbiAgLmNhcnQgLnBhZ2UtdGl0bGU6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIC5jYXJ0IC5wYWdlLXRpdGxlIGgxIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgIG1hcmdpbi1ib3R0b206IDZweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7IH1cblxuLmNoZWNrb3V0LXR5cGVzIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICAvKiBXZSBhbHdheXMgd2FudCB0aGlzIHNoaXBwaW5nIG1ldGhvZCB0byBkaXNwbGF5IG9uIGl0cyBvd24gbGluZSAqLyB9XG4gIC5jaGVja291dC10eXBlcyBsaSB7XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICBtYXJnaW46IDAgMCA1cHggNXB4OyB9XG4gICAgLmNoZWNrb3V0LXR5cGVzIGxpOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC5jaGVja291dC10eXBlcyBsaSBpbWcge1xuICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgdmVydGljYWwtYWxpZ246IHRvcDsgfVxuICAuY2hlY2tvdXQtdHlwZXMgbGk6Zmlyc3QtY2hpbGQge1xuICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG4gIC5jaGVja291dC10eXBlcyAubWV0aG9kLWNoZWNrb3V0LWNhcnQtbWV0aG9kcy1tdWx0aXNoaXBwaW5nIHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuICAuY2hlY2tvdXQtdHlwZXMudG9wIGxpIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cbiAgLmNoZWNrb3V0LXR5cGVzLnRvcCAuYm1sX2J1dHRvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7IH1cbiAgICAuY2hlY2tvdXQtdHlwZXMudG9wIC5ibWxfYnV0dG9uIGltZyB7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAuY2hlY2tvdXQtdHlwZXMudG9wIC5wYXlwYWwtbG9nbyAucGF5cGFsLW9yIHtcbiAgICBtYXJnaW4tdG9wOiA1cHg7IH1cbiAgLmNoZWNrb3V0LXR5cGVzLmJvdHRvbSAucGF5cGFsLWxvZ28gYSwgLmNoZWNrb3V0LXR5cGVzLm1pbmljYXJ0IC5wYXlwYWwtbG9nbyBhIHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuICAuY2hlY2tvdXQtdHlwZXMuYm90dG9tIC5wYXlwYWwtb3IsIC5jaGVja291dC10eXBlcy5taW5pY2FydCAucGF5cGFsLW9yIHtcbiAgICBtYXJnaW46IDBweDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NDFweCkge1xuICAuY2hlY2tvdXQtdHlwZXMuYm90dG9tIC5wYXlwYWwtb3Ige1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIHBhZGRpbmctcmlnaHQ6IDcwcHg7IH0gfVxuXG4uY2FydC10b3RhbHMgLmNoZWNrb3V0LXR5cGVzIC5idG4tY2hlY2tvdXQge1xuICBtYXJnaW4tYm90dG9tOiA3cHg7IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NDBweCkge1xuICAuY2hlY2tvdXQtdHlwZXMge1xuICAgIGZsb2F0OiBub25lO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgIC5jaGVja291dC10eXBlcy5ib3R0b20gLnBheXBhbC1vciwgLmNoZWNrb3V0LXR5cGVzLm1pbmljYXJ0IC5wYXlwYWwtb3Ige1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgICBmbG9hdDogbm9uZTsgfVxuICAuY2hlY2tvdXQtdHlwZXMgbGkge1xuICAgIGZsb2F0OiBub25lO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1sZWZ0OiAwOyB9IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAuYnRuLWNoZWNrb3V0IHtcbiAgICB3aWR0aDogMTAwJTsgfSB9XG5cbi5jYXJ0LXRhYmxlIHtcbiAgZm9udC1mYW1pbHk6IFwiVWJ1bnR1VGl0bGluZy1Cb2xkXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgVmVyZGFuYSwgQXJpYWwsIHNhbnMtc2VyaWY7IH1cbiAgLmNhcnQtdGFibGUgLnByb2R1Y3QtY2FydC1yZW1vdmUge1xuICAgIHdpZHRoOiAzNXB4OyB9XG4gIC5jYXJ0LXRhYmxlIC5jYXJ0LXRvdGFsLWhlYWQge1xuICAgIG1heC13aWR0aDogNzBweDsgfVxuICAuY2FydC10YWJsZSB0aCxcbiAgLmNhcnQtdGFibGUgdGQsXG4gIC5jYXJ0LXRhYmxlIHRib2R5IHRkIHtcbiAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH1cbiAgLmNhcnQtdGFibGUgaDIge1xuICAgIGNvbG9yOiAjMDAzYjVmO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIC5jYXJ0LXRhYmxlIHRoZWFkIHRoIHtcbiAgICBmb250LXNpemU6IDIwcHg7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7IH1cbiAgLmNhcnQtdGFibGUgdGhlYWQgdGgsXG4gIC5jYXJ0LXRhYmxlIHRib2R5IHRkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBwYWRkaW5nOiAxMHB4IDA7XG4gICAgZm9udC1mYW1pbHk6IFwiVWJ1bnR1VGl0bGluZy1Cb2xkXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgVmVyZGFuYSwgQXJpYWwsIHNhbnMtc2VyaWY7IH1cbiAgLmNhcnQtdGFibGUgLnByb2R1Y3QtY2FydC1pbmZvLFxuICAuY2FydC10YWJsZSAucHJvZHVjdC1jYXJ0LWFjdGlvbnMge1xuICAgIHBhZGRpbmctbGVmdDogMTVweDtcbiAgICBwYWRkaW5nLXRvcDogNXB4OyB9XG4gICAgLmNhcnQtdGFibGUgLnByb2R1Y3QtY2FydC1pbmZvLnNhbXBsZS1wcm9kdWN0LFxuICAgIC5jYXJ0LXRhYmxlIC5wcm9kdWN0LWNhcnQtYWN0aW9ucy5zYW1wbGUtcHJvZHVjdCB7XG4gICAgICBwYWRkaW5nOiAwOyB9XG4gICAgICAuY2FydC10YWJsZSAucHJvZHVjdC1jYXJ0LWluZm8uc2FtcGxlLXByb2R1Y3QgLnF0eSxcbiAgICAgIC5jYXJ0LXRhYmxlIC5wcm9kdWN0LWNhcnQtYWN0aW9ucy5zYW1wbGUtcHJvZHVjdCAucXR5IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gICAgLmNhcnQtdGFibGUgLnByb2R1Y3QtY2FydC1pbmZvLFxuICAgIC5jYXJ0LXRhYmxlIC5wcm9kdWN0LWNhcnQtYWN0aW9ucyxcbiAgICAuY2FydC10YWJsZSAucHJvZHVjdC1jYXJ0LXByaWNlIHtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH0gfVxuICAuY2FydC10YWJsZSB0Ym9keSB0ci5kb3R0ZWQtYm9yZGVyIHRkIHtcbiAgICBwYWRkaW5nOiAwOyB9XG4gIC5jYXJ0LXRhYmxlIHRmb290IHRyIHtcbiAgICBiYWNrZ3JvdW5kOiBub25lOyB9XG4gIC5jYXJ0LXRhYmxlIHRmb290IHRyID4gdGQ6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIC5jYXJ0LXRhYmxlIHNwYW4ub3Ige1xuICAgIGZvbnQtc2l6ZTogOXB4O1xuICAgIHBhZGRpbmc6IDAgNXB4O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgZm9udC1mYW1pbHk6IFwiVWJ1bnR1VGl0bGluZy1Cb2xkXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgVmVyZGFuYSwgQXJpYWwsIHNhbnMtc2VyaWY7IH1cbiAgLmNhcnQtdGFibGUgLnByb2R1Y3QtY2FydC1pbWFnZSAuY2FydC1saW5rcyxcbiAgLmNhcnQtdGFibGUgLnByb2R1Y3QtY2FydC1pbmZvIC5idG4tcmVtb3ZlLFxuICAuY2FydC10YWJsZSAucHJvZHVjdC1jYXJ0LWFjdGlvbnMgLmJ1dHRvbiB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAuY2FydC10YWJsZSAucHJvZHVjdC1jYXJ0LWltYWdlIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgcGFkZGluZy1yaWdodDogMDsgfVxuICAgIC5jYXJ0LXRhYmxlIC5wcm9kdWN0LWNhcnQtaW1hZ2UgLnByb2R1Y3QtaW1hZ2UgaW1nIHtcbiAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgLmNhcnQtdGFibGUgLnByb2R1Y3QtY2FydC1pbWFnZSBhLmNhcnQtZWRpdCB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5jYXJ0LXRhYmxlIC5wcm9kdWN0LWNhcnQtc2t1IHtcbiAgICBmb250LWZhbWlseTogQXJpYWwsIHNhbnMtc2VyaWY7IH1cbiAgLmNhcnQtdGFibGUgLmJ0bi1lbXB0eSB7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLmNhcnQtdGFibGUgLnByb2R1Y3QtY2FydC10b3RhbCxcbiAgLmNhcnQtdGFibGUgLnByb2R1Y3QtY2FydC1wcmljZSB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbiAgLmNhcnQtdGFibGUgLmNhcnQtdGF4LXRvdGFsIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgY3Vyc29yOiBwb2ludGVyOyB9XG4gICAgLmNhcnQtdGFibGUgLmNhcnQtdGF4LXRvdGFsOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgd2lkdGg6IDA7XG4gICAgICBoZWlnaHQ6IDA7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGJvcmRlci10b3A6IDZweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlci1ib3R0b206IDZweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlci1yaWdodDogNnB4IHNvbGlkICMwMDNiNWY7XG4gICAgICBib3JkZXItbGVmdDogbm9uZTtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogM3B4O1xuICAgICAgcmlnaHQ6IC0xMXB4OyB9XG4gICAgLmNhcnQtdGFibGUgLmNhcnQtdGF4LXRvdGFsLmNhcnQtdGF4LXRvdGFsLWV4cGFuZGVkOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgd2lkdGg6IDA7XG4gICAgICBoZWlnaHQ6IDA7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGJvcmRlci1yaWdodDogNnB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyLWxlZnQ6IDZweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlci10b3A6IDZweCBzb2xpZCAjMDAzYjVmO1xuICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgIHJpZ2h0OiAtMTVweDtcbiAgICAgIHRvcDogNnB4OyB9XG4gIC5jYXJ0LXRhYmxlIC5jYXJ0LWxpbmtzID4gbGkge1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgbGluZS1oZWlnaHQ6IDEuMztcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gICAgbWluLXdpZHRoOiA2NXB4O1xuICAgIGZvbnQtc2l6ZTogMTNweDsgfVxuICAgIC5jYXJ0LXRhYmxlIC5jYXJ0LWxpbmtzID4gbGkgPiBhIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgLmNhcnQtdGFibGUgLmNhcnQtbGlua3MgPiBsaTpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgLmNhcnQtdGFibGUgLnByb2R1Y3QtY2FydC1hY3Rpb25zIHtcbiAgICBtaW4td2lkdGg6IDYwcHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gICAgLmNhcnQtdGFibGUgLnByb2R1Y3QtY2FydC1hY3Rpb25zIC5xdHkge1xuICAgICAgaGVpZ2h0OiAzMHB4O1xuICAgICAgYm9yZGVyLWNvbG9yOiAjQzBDMEMwO1xuICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIHdpZHRoOiAzLjJlbTsgfVxuICAgIC5jYXJ0LXRhYmxlIC5wcm9kdWN0LWNhcnQtYWN0aW9ucyAuYnV0dG9uIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDVweDsgfVxuICAuY2FydC10YWJsZSAuaXRlbS1vcHRpb25zIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDE1cHg7IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NzBweCkge1xuICAuY2FydC10YWJsZSB0aCB7XG4gICAgZm9udC1zaXplOiAxMnB4OyB9XG4gIC5jYXJ0LXRhYmxlIHRoLFxuICAuY2FydC10YWJsZSB0ZCB7XG4gICAgcGFkZGluZzogN3B4IDZweDsgfVxuICAuY2FydC10YWJsZSAucHJvZHVjdC1jYXJ0LWFjdGlvbnMgPiBsaSB7XG4gICAgd2hpdGUtc3BhY2U6IGluaGVyaXQ7IH0gfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY5OXB4KSB7XG4gIC5kaXNwbGF5LWJvdGgtcHJpY2VzIC5jYXJ0LXRhYmxlIHRoZWFkIHRoLmNhcnQtdG90YWwtaGVhZCxcbiAgLmRpc3BsYXktYm90aC1wcmljZXMgLmNhcnQtdGFibGUgdGQucHJvZHVjdC1jYXJ0LXRvdGFsIHtcbiAgICBkaXNwbGF5OiBub25lOyB9IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAuY2FydC10YWJsZSBjb2xncm91cCwgLmNhcnQtdGFibGUgdGhlYWQge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmNhcnQtdGFibGUgdHIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgcGFkZGluZy1ib3R0b206IDEwcHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgLmNhcnQtdGFibGUgdHIuZmlyc3Qge1xuICAgICAgYm9yZGVyLXRvcDogMXB4IGRvdHRlZCAjMDAzYjVmO1xuICAgICAgcGFkZGluZy10b3A6IDIwcHg7IH1cbiAgICAuY2FydC10YWJsZSB0cjphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAuY2FydC10YWJsZSB0cjpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgLmNhcnQtdGFibGUgdGZvb3QgdHIge1xuICAgIHBhZGRpbmctYm90dG9tOiAwOyB9XG4gIC5jYXJ0LXRhYmxlIHRkIHtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAuY2FydC10YWJsZSB0ZFtkYXRhLXJ3ZC1sYWJlbF0ge1xuICAgICAgcGFkZGluZy1sZWZ0OiAxNXB4O1xuICAgICAgbWFyZ2luLWJvdHRvbTogNnB4OyB9XG4gICAgICAuY2FydC10YWJsZSB0ZFtkYXRhLXJ3ZC1sYWJlbF0gLnByaWNlIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDsgfVxuICAgICAgLmNhcnQtdGFibGUgdGRbZGF0YS1yd2QtbGFiZWxdOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1yd2QtbGFiZWwpIFwiOlwiO1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDVweDtcbiAgICAgICAgZm9udC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmOyB9XG4gICAgLmNhcnQtdGFibGUgdGQucHJvZHVjdC1jYXJ0LXByaWNlIHtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgLmNhcnQtdGFibGUgLmNhcnQtbGlua3Mge1xuICAgIHBhZGRpbmctdG9wOiA1cHg7XG4gICAgcGFkZGluZy1yaWdodDogNXB4OyB9XG4gICAgLmNhcnQtdGFibGUgLmNhcnQtbGlua3MgPiBsaSB7XG4gICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gICAgICAuY2FydC10YWJsZSAuY2FydC1saW5rcyA+IGxpID4gYSB7XG4gICAgICAgIHBhZGRpbmc6IDJweCAwcHg7IH1cbiAgLmNhcnQtdGFibGUgLmNhcnQtdGF4LWluZm8ge1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICBwYWRkaW5nLWxlZnQ6IDE1cHg7XG4gICAgZm9udC1zaXplOiAxM3B4OyB9XG4gICAgLmNhcnQtdGFibGUgLmNhcnQtdGF4LWluZm8gLnByaWNlIHtcbiAgICAgIGZvbnQtc2l6ZTogMTNweDsgfVxuICAuY2FydC10YWJsZSAucHJvZHVjdC1jYXJ0LWltYWdlIHtcbiAgICB3aWR0aDogMjUlO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHBhZGRpbmctYm90dG9tOiAwOyB9XG4gICAgLmNhcnQtdGFibGUgLnByb2R1Y3QtY2FydC1pbWFnZSBhLmNhcnQtZWRpdCB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cbiAgLmNhcnQtdGFibGUgLnByb2R1Y3QtY2FydC1pbmZvLFxuICAuY2FydC10YWJsZSB0ZFtkYXRhLXJ3ZC1sYWJlbF0ge1xuICAgIGZsb2F0OiByaWdodDtcbiAgICB3aWR0aDogNzUlOyB9XG4gIC5jYXJ0LXRhYmxlIC5wcm9kdWN0LWNhcnQtYWN0aW9ucyxcbiAgLmNhcnQtdGFibGUgLnByb2R1Y3QtY2FydC1wcmljZSB7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgcGFkZGluZy10b3A6IDA7XG4gICAgZmxvYXQ6IHJpZ2h0OyB9XG4gIC5jYXJ0LXRhYmxlIC5wcm9kdWN0LWNhcnQtcmVtb3ZlLFxuICAuY2FydC10YWJsZSAucHJvZHVjdC1jYXJ0LXRvdGFsLFxuICAuY2FydC10YWJsZSAucHJvZHVjdC1jYXJ0LWFjdGlvbnMgLmNhcnQtbGlua3Mge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmNhcnQtdGFibGUgLnByb2R1Y3QtY2FydC1pbmZvIC5idG4tcmVtb3ZlIHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuICAuY2FydC10YWJsZSAucHJvZHVjdC1jYXJ0LWFjdGlvbnMgLmJ1dHRvbiB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAuY2FydC10YWJsZSAucHJvZHVjdC1jYXJ0LWluZm8gLmJ0bi1yZW1vdmUge1xuICAgIG1hcmdpbjogLTRweCAwcHggMnB4IDdweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAxMHB4O1xuICAgIHJpZ2h0OiAwOyB9XG4gIC5jYXJ0LXRhYmxlIC5wcm9kdWN0LWNhcnQtYWN0aW9ucyB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAgIC5jYXJ0LXRhYmxlIC5wcm9kdWN0LWNhcnQtYWN0aW9ucyAucXR5IHtcbiAgICAgIG1hcmdpbi1yaWdodDogN3B4O1xuICAgICAgbWFyZ2luLWJvdHRvbTogN3B4OyB9XG4gIC5jYXJ0LXRhYmxlIC5wcmljZSxcbiAgLmNhcnQtdGFibGUgLnByb2R1Y3QtY2FydC1wcmljZTpiZWZvcmUge1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtZmFtaWx5OiBBcmlhbCwgc2Fucy1zZXJpZjsgfVxuICAuY2FydC10YWJsZSAuY2FydC1mb290ZXItYWN0aW9ucyB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgLmNhcnQtdGFibGUgLmNhcnQtZm9vdGVyLWFjdGlvbnMgI2VtcHR5X2NhcnRfYnV0dG9uIHtcbiAgICAgIGZsb2F0OiByaWdodDsgfVxuICAgIC5jYXJ0LXRhYmxlIC5jYXJ0LWZvb3Rlci1hY3Rpb25zIC5idG4tY29udGludWUge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgICAuY2FydC10YWJsZSAuY2FydC1mb290ZXItYWN0aW9ucyAuYnRuLXVwZGF0ZSxcbiAgICAuY2FydC10YWJsZSAuY2FydC1mb290ZXItYWN0aW9ucyBzcGFuLm9yIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmRpc3BsYXktYm90aC1wcmljZXMgLmNhcnQtdGFibGUgdGRbZGF0YS1yd2QtdGF4LWxhYmVsXTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1yd2QtdGF4LWxhYmVsKSBcIjpcIjsgfSB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIENoZWNrb3V0IC0gRXN0aW1hdGUgU2hpcHBpbmcgYW5kIFRheFxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5zaGlwcGluZyBoMiB7XG4gIGZvbnQtc2l6ZTogMjBweDsgfVxuXG4uc2hpcHBpbmcgcCB7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7IH1cblxuLnNoaXBwaW5nIHNlbGVjdC52YWxpZGF0aW9uLWZhaWxlZCB7XG4gIGJvcmRlci1jb2xvcjogI0RGMjgwQTsgfVxuXG4uc2hpcHBpbmcgaW5wdXRbdHlwZT1lbWFpbF0sXG4uc2hpcHBpbmcgaW5wdXRbdHlwZT1udW1iZXJdLFxuLnNoaXBwaW5nIGlucHV0W3R5cGU9cGFzc3dvcmRdLFxuLnNoaXBwaW5nIGlucHV0W3R5cGU9dGVsXSxcbi5zaGlwcGluZyBpbnB1dFt0eXBlPXRleHRdLFxuLnNoaXBwaW5nIHNlbGVjdCB7XG4gIGNvbG9yOiAjODA3ZTgyOyB9XG4gIC5zaGlwcGluZyBpbnB1dFt0eXBlPWVtYWlsXTo6cGxhY2Vob2xkZXIsXG4gIC5zaGlwcGluZyBpbnB1dFt0eXBlPW51bWJlcl06OnBsYWNlaG9sZGVyLFxuICAuc2hpcHBpbmcgaW5wdXRbdHlwZT1wYXNzd29yZF06OnBsYWNlaG9sZGVyLFxuICAuc2hpcHBpbmcgaW5wdXRbdHlwZT10ZWxdOjpwbGFjZWhvbGRlcixcbiAgLnNoaXBwaW5nIGlucHV0W3R5cGU9dGV4dF06OnBsYWNlaG9sZGVyLFxuICAuc2hpcHBpbmcgc2VsZWN0OjpwbGFjZWhvbGRlciB7XG4gICAgY29sb3I6ICM4MDdlODIgIWltcG9ydGFudDsgfVxuXG4uc2hpcHBpbmcgLmJ1dHRvbiB7XG4gIG1hcmdpbi10b3A6IDEwcHg7IH1cblxuLnNoaXBwaW5nIC5zcC1tZXRob2RzIHtcbiAgbWFyZ2luLXRvcDogMjBweDtcbiAgcGFkZGluZzogMTBweCAwIDA7XG4gIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgLnNoaXBwaW5nIC5zcC1tZXRob2RzIGRkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4OyB9XG4gIC5zaGlwcGluZyAuc3AtbWV0aG9kcyBsYWJlbCBzcGFuIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7IH1cblxuLnNoaXBwaW5nICNjby1zaGlwcGluZy1tZXRob2QtZm9ybSAuYnV0dG9ucy1zZXQgLmJ1dHRvbiB7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW4tbGVmdDogMDsgfVxuXG4uc2hpcHBpbmcgI2NvLXNoaXBwaW5nLW1ldGhvZC1mb3JtIC5zcC1tZXRob2RzIGRkIGxhYmVsOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogc2hhZGUoI0Y0RjRGNCwgMTAlKTsgfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc3MHB4KSB7XG4gIC5zaGlwcGluZyAuc2hpcHBpbmctZm9ybSAuZm9ybS1saXN0ID4gbGkge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGZsb2F0OiBub25lOyB9XG4gICAgLnNoaXBwaW5nIC5zaGlwcGluZy1mb3JtIC5mb3JtLWxpc3QgPiBsaSBsYWJlbCB7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgIC5zaGlwcGluZyAuc2hpcHBpbmctZm9ybSAuZm9ybS1saXN0ID4gbGkgaW5wdXQsXG4gICAgLnNoaXBwaW5nIC5zaGlwcGluZy1mb3JtIC5mb3JtLWxpc3QgPiBsaSBzZWxlY3Qge1xuICAgICAgd2lkdGg6IDEwMCU7IH0gfVxuXG4uY2FydCAuY2FydC10b3RhbHMge1xuICB0ZXh0LWFsaWduOiByaWdodDsgfVxuICAuY2FydCAuY2FydC10b3RhbHM6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIC5jYXJ0IC5jYXJ0LXRvdGFscyB0YWJsZSB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgICAuY2FydCAuY2FydC10b3RhbHMgdGFibGUgdGQge1xuICAgICAgcGFkZGluZzogMnB4IDBweDsgfVxuICAgIC5jYXJ0IC5jYXJ0LXRvdGFscyB0YWJsZSB0ZDpmaXJzdC1jaGlsZCB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xuICAgICAgbWluLXdpZHRoOiAxMjBweDsgfVxuXG4uZGlzY291bnQtZm9ybTphZnRlcixcbiNnaWZ0Y2FyZC1mb3JtOmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICBjbGVhcjogYm90aDsgfVxuXG4jZGlzY291bnQtY291cG9uLWZvcm0sXG4uY2FydCAuZ2lmdGNhcmQge1xuICB3aWR0aDogMTAwJTsgfVxuICAjZGlzY291bnQtY291cG9uLWZvcm0gaDIsXG4gIC5jYXJ0IC5naWZ0Y2FyZCBoMiB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAjZGlzY291bnQtY291cG9uLWZvcm0gbGFiZWwsXG4gIC5jYXJ0IC5naWZ0Y2FyZCBsYWJlbCB7XG4gICAgZm9udC1mYW1pbHk6IFwiVWJ1bnR1VGl0bGluZy1Cb2xkXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgVmVyZGFuYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIG1pbi13aWR0aDogMTA1cHg7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbi1yaWdodDogMTBweDsgfVxuICAjZGlzY291bnQtY291cG9uLWZvcm0gLmZpZWxkLXdyYXBwZXIsXG4gIC5jYXJ0IC5naWZ0Y2FyZCAuZmllbGQtd3JhcHBlciB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG4gICNkaXNjb3VudC1jb3Vwb24tZm9ybSAudmFsaWRhdGlvbi1hZHZpY2UsXG4gIC5jYXJ0IC5naWZ0Y2FyZCAudmFsaWRhdGlvbi1hZHZpY2Uge1xuICAgIGRpc3BsYXk6IGlubGluZTsgfVxuICAjZGlzY291bnQtY291cG9uLWZvcm0gLmJ1dHRvbi13cmFwcGVyLFxuICAuY2FydCAuZ2lmdGNhcmQgLmJ1dHRvbi13cmFwcGVyIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTsgfVxuICAgICNkaXNjb3VudC1jb3Vwb24tZm9ybSAuYnV0dG9uLXdyYXBwZXIgPiBidXR0b24sXG4gICAgLmNhcnQgLmdpZnRjYXJkIC5idXR0b24td3JhcHBlciA+IGJ1dHRvbiB7XG4gICAgICBmbG9hdDogbGVmdDsgfVxuICAjZGlzY291bnQtY291cG9uLWZvcm0gLmlucHV0LXRleHQsXG4gIC5jYXJ0IC5naWZ0Y2FyZCAuaW5wdXQtdGV4dCB7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBoZWlnaHQ6IDMwcHg7XG4gICAgbWFyZ2luOiA0cHggMTBweCAwIDA7XG4gICAgd2lkdGg6IDE5MHB4OyB9XG5cbi5jYXJ0IC5naWZ0Y2FyZCBwIHtcbiAgbWFyZ2luLWJvdHRvbTogN3B4OyB9XG5cbi5jYXJ0IC5naWZ0Y2FyZCAuY2hlY2stZ2Mtc3RhdHVzIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHBhZGRpbmc6IDBweDsgfVxuICAuY2FydCAuZ2lmdGNhcmQgLmNoZWNrLWdjLXN0YXR1cyA+IHNwYW4gPiBzcGFuIHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7IH1cblxuLnNoaXBwaW5nLWZvcm0gLmlucHV0LXRleHQjcmVnaW9uIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbi5zaGlwcGluZy1mb3JtIC5zaGlwcGluZy1yZWdpb24ge1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi5zaGlwcGluZy1mb3JtICNyZWdpb25faWQge1xuICBtYXJnaW4tYm90dG9tOiAxMHB4OyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIENoZWNrb3V0IC0gQ2FydCBDcm9zcyBzZWxsXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLmNyb3Nzc2VsbCBoMiB7XG4gIGNvbG9yOiAjMWY4NmJkOyB9XG5cbi5jcm9zc3NlbGwgLml0ZW0gYS5wcm9kdWN0LWltYWdlIHtcbiAgd2lkdGg6IGF1dG87XG4gIGZsb2F0OiBsZWZ0OyB9XG5cbi8qIENoYW5nZSB0aGUgbGF5b3V0IHRvIDIgY29sdW1ucyBhdCBhIGJyZWFrcG9pbnQgdGhhdCBpcyBoaWdoZXIgdGhhbiBhIDMgY29sdW1ucyBsYXlvdXQgd291bGQgbm9ybWFsbHkgYnJlYWsgKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTc5cHgpIHtcbiAgLmNyb3Nzc2VsbCB7XG4gICAgLyogVW5kbyB0aHJlZS1jb2x1bW4gY29uZmlnICovIH1cbiAgICAuY3Jvc3NzZWxsIC5wcm9kdWN0cy1ncmlkID4gbGk6bnRoLWNoaWxkKGV2ZW4pLFxuICAgIC5jcm9zc3NlbGwgLnByb2R1Y3RzLWdyaWQgPiBsaTpudGgtY2hpbGQoM24pLFxuICAgIC5jcm9zc3NlbGwgLnByb2R1Y3RzLWdyaWQgPiBsaSB7XG4gICAgICB3aWR0aDogNDcuNzI3MjclO1xuICAgICAgbWFyZ2luLXJpZ2h0OiA0LjU0NTQ1JTsgfVxuICAgIC5jcm9zc3NlbGwgLnByb2R1Y3RzLWdyaWQgPiBsaTpudGgtY2hpbGQob2RkKSB7XG4gICAgICBjbGVhcjogbGVmdDsgfVxuICAgIC5jcm9zc3NlbGwgLnByb2R1Y3RzLWdyaWQgPiBsaTpudGgtY2hpbGQoZXZlbikge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gICAgLmNyb3Nzc2VsbCAucHJvZHVjdHMtZ3JpZCA+IGxpOm50aC1jaGlsZCgzbisxKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfSB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgLmNhcnQtdGFibGUgLmNhcnQtdGF4LXRvdGFsOmFmdGVyIHtcbiAgICByaWdodDogLTlweDsgfVxuICAuY2FydC10YWJsZSAuY2FydC10YXgtdG90YWwuY2FydC10YXgtdG90YWwtZXhwYW5kZWQ6YWZ0ZXIge1xuICAgIHJpZ2h0OiAtMTNweDsgfSB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzIwcHgpIHtcbiAgLmNyb3Nzc2VsbCB1bCAuaXRlbSB7XG4gICAgcGFkZGluZzogMCAwcHggNDBweDsgfVxuICAuY3Jvc3NzZWxsIHVsIC5wcm9kdWN0LWRldGFpbHMgLmNyb3Nzc2VsbC1hY3Rpb25zIHtcbiAgICBwYWRkaW5nOiAwIDVweDsgfSB9XG5cbi5jaGVja291dC1jYXJ0LWluZGV4IC5jYXJ0LWVtcHR5IGEge1xuICBjb2xvcjogIzAwM2I1ZjtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogQ2hlY2tvdXQgLSBPbmUgUGFnZVxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5jaGVja291dC1vbmVwYWdlLWluZGV4IC5jb2wtcmlnaHQsXG4uY2hlY2tvdXQtb25lcGFnZS1pbmRleCAuY29sLWxlZnQge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5jaGVja291dC1vbmVwYWdlLWluZGV4IC5jb2wtbWFpbiB7XG4gIHdpZHRoOiBhdXRvO1xuICBmbG9hdDogbm9uZTsgfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDk4MHB4KSB7XG4gIC5jaGVja291dC1vbmVwYWdlLWluZGV4IC5jb2wtbWFpbiB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDY4Ljc1JTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyMHB4OyB9XG4gIC5jaGVja291dC1vbmVwYWdlLWluZGV4IC5jb2wtcmlnaHQsXG4gIC5jaGVja291dC1vbmVwYWdlLWluZGV4IC5jb2wtbGVmdCB7XG4gICAgd2lkdGg6IDMxLjI1JTtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuICAuY2hlY2tvdXQtb25lcGFnZS1pbmRleCAuY29sLXJpZ2h0IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7IH0gfVxuXG4ub3BjIHNlbGVjdCB7XG4gIHdpZHRoOiAzNjVweDsgfVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXG4gKiBTZWN0aW9uIFN0eWxpbmcgLSBEZWZhdWx0XG4gKi9cbi5vcGMgLnNlY3Rpb24gLnN0ZXAtdGl0bGUge1xuICB3aWR0aDogMTAwJTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nOiAzcHggMDtcbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAtby11c2VyLXNlbGVjdDogbm9uZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7IH1cbiAgLm9wYyAuc2VjdGlvbiAuc3RlcC10aXRsZTphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgY2xlYXI6IGJvdGg7IH1cblxuLm9wYyAuc2VjdGlvbi5hbGxvdzpub3QoLmFjdGl2ZSkgLnN0ZXAtdGl0bGUge1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cblxuLm9wYyAuc2VjdGlvbi5hY3RpdmUgLnN0ZXAtdGl0bGUge1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICMwMDNiNWY7IH1cblxuLm9wYyAuc2VjdGlvbiAuc3RlcC10aXRsZSBhIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4ub3BjIC5zZWN0aW9uLmFsbG93Om5vdCguYWN0aXZlKSAuc3RlcC10aXRsZSBhIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZsb2F0OiByaWdodDtcbiAgbGluZS1oZWlnaHQ6IDQwcHg7XG4gIGhlaWdodDogNDBweDtcbiAgcGFkZGluZzogMHB4IDEwcHg7IH1cblxuLm5vLXRvdWNoIC5vcGMgLnNlY3Rpb24gLnN0ZXAtdGl0bGUgYTpob3ZlciB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuXG4ub3BjIC5zZWN0aW9uIC5zdGVwLXRpdGxlIC5udW1iZXIsXG4ub3BjIC5zZWN0aW9uLmFsbG93LmFjdGl2ZSAuc3RlcC10aXRsZSAubnVtYmVyLFxuLm5vLXRvdWNoIC5vcGMgLnNlY3Rpb24uYWxsb3c6aG92ZXIgLnN0ZXAtdGl0bGUgLm51bWJlciB7XG4gIGZvbnQtZmFtaWx5OiBcIlVidW50dVRpdGxpbmctQm9sZFwiLCBcIkhlbHZldGljYSBOZXVlXCIsIFZlcmRhbmEsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICB3aWR0aDogMjZweDtcbiAgaGVpZ2h0OiAyNnB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICBsaW5lLWhlaWdodDogMjhweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFmODZiZDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDA7XG4gIG1hcmdpbi10b3A6IC0xM3B4OyB9XG5cbi5vcGMgLnNlY3Rpb24uYWxsb3cgLnN0ZXAtdGl0bGUgLm51bWJlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRpbnQoIzFmODZiZCwgNTAlKTsgfVxuXG4ub3BjIC5zZWN0aW9uLmFsbG93IC5zdGVwLXRpdGxlIGgyIHtcbiAgY29sb3I6ICM1YjViNWE7IH1cblxuLm9wYyAuc2VjdGlvbi5hbGxvdyAuc3RlcC10aXRsZTpob3ZlciBoMixcbi5vcGMgLnNlY3Rpb24uYWN0aXZlIC5zdGVwLXRpdGxlIGgyIHtcbiAgY29sb3I6ICMwMDNiNWY7IH1cblxuLm9wYyAuc2VjdGlvbiAuc3RlcC10aXRsZSBoMiB7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDQycHg7XG4gIGhlaWdodDogNDBweDtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbjogMHB4IDRweCAwcHggMzVweDsgfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDU5OXB4KSB7XG4gIC5vcGMgLnNlY3Rpb24gLnN0ZXAge1xuICAgIHBhZGRpbmc6IDIwcHggMCAzNXB4IDM1cHg7IH0gfVxuXG4ub3BjIC5zZWN0aW9uIC5zdGVwOmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICBjbGVhcjogYm90aDsgfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk3OXB4KSB7XG4gIC5vcGMgLnNlY3Rpb24gLnN0ZXAge1xuICAgIHBhZGRpbmc6IDEwcHg7IH0gfVxuXG4ub3BjIHNlbGVjdCB7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbi5vcGMgaDMge1xuICBmb250LXdlaWdodDogNTAwOyB9XG5cbi5vcGMgLmJ1dHRvbnMtc2V0IHtcbiAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAub3BjIC5idXR0b25zLXNldCBidXR0b24uYnV0dG9uIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAub3BjIC5idXR0b25zLXNldCBwLnJlcXVpcmVkIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgbWFyZ2luLWxlZnQ6IDVweDtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIC5vcGMgLmJ1dHRvbnMtc2V0IC5iYWNrLWxpbmsge1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBtYXJnaW46IDA7IH1cbiAgLm9wYyAuYnV0dG9ucy1zZXQgYSB7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHBhZGRpbmc6IDVweCA1cHggNXB4IDA7IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0NzlweCkge1xuICAub3BjIC5idXR0b25zLXNldCAuYnV0dG9uICsgLmJ1dHRvbnMtc2V0IC5idXR0b24sXG4gIC5wYXlwYWwtZXhwcmVzcy1yZXZpZXcgLmJ1dHRvbnMtc2V0IC5idXR0b24gKyAuYnV0dG9ucy1zZXQgLmJ1dHRvbiB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7IH0gfVxuXG4ub3BjICNvcGMtbG9naW4gaDIge1xuICBmb250LXNpemU6IDI0cHg7XG4gIG1hcmdpbi10b3A6IC0yNXB4OyB9XG5cbi5vcGMgI29wYy1sb2dpbiAuc3RlcCB7XG4gIHBhZGRpbmc6IDBweDsgfVxuXG4ub3BjICNvcGMtbG9naW4gLnN0ZXAtdGl0bGUge1xuICBib3JkZXI6IG5vbmU7IH1cblxuLm9wYyAjb3BjLWxvZ2luIC5idXR0b25zLXNldCB7XG4gIGJvcmRlci10b3A6IDA7XG4gIHBhZGRpbmctdG9wOiA1cHg7IH1cblxuLm9wYyAjb3BjLWxvZ2luICNjaGVja291dC1zdGVwLWxvZ2luIHtcbiAgbWFyZ2luLXRvcDogMzVweDsgfVxuXG4ub3BjLWhhcy1wcm9ncmVzc2VkLWZyb20tbG9naW4gLm9wYyAjb3BjLWxvZ2luIGgyIHtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBtYXJnaW4tdG9wOiAwOyB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzcwcHgpIHtcbiAgLm9wYyAjb3BjLWxvZ2luIC5kZXNjcmlwdGlvbixcbiAgLm9wYyAjb3BjLWxvZ2luIHAucmVxdWlyZWQge1xuICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuXG4jb3BjLXBheW1lbnQgLm5vdGUge1xuICBwYWRkaW5nOiAxMHB4OyB9XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICpcbiAqIFRoaXMgc2VjdGlvbiBoaWRlcyBldmVyeXRoaW5nIGJ1dCB0aGUgXCJDaGVja291dCBNZXRob2RcIiBzdGVwIG9mIHRoZSBjaGVja291dCBwcm9jZXNzIGFuZCBmYWRlcyBpbiB0aGUgY29udGVudFxuICogb25jZSB0aGUgY3VzdG9tZXIgcHJvZ3Jlc3NlcyB0byB0aGUgbmV4dCBzdGVwLiBUaGUgcHVycG9zZSBvZiB0aGlzIGlzIHRvIHNpbXBsaWZ5IHdoYXQgdGhlIGN1c3RvbWVyIGhhcyB0byBmb2N1cyBvbi5cbiAqIEl0IGlzIGxpbWl0ZWQgdG8gbGFyZ2VyIHZpZXdwb3J0cyBzaW5jZSBzbWFsbGVyIGRldmljZXMgYXJlIGluaGVyZW50bHkgZ29pbmcgdG8gYmUgZm9jdXNlZCBzb2xlbHkgb24gdGhlXG4gKiBcIkNoZWNrb3V0IE1ldGhvZFwiIHN0ZXAuXG4gKi9cbi5vcGMub3BjLWZpcnN0c3RlcC1sb2dpbiAuc2VjdGlvbjpub3QoI29wYy1sb2dpbikgLnN0ZXAtdGl0bGUsXG4ub3BjLWJsb2NrLXByb2dyZXNzLXN0ZXAtbG9naW4ge1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IC4zczsgfVxuXG4ub3BjLm9wYy1maXJzdHN0ZXAtbG9naW4gLnNlY3Rpb24jb3BjLWxvZ2luIC5zdGVwLXRpdGxlIC5udW1iZXIge1xuICB0cmFuc2l0aW9uOiB3aWR0aCAuMXM7IH1cblxuLm9wYy5vcGMtZmlyc3RzdGVwLWxvZ2luIC5zZWN0aW9uI29wYy1sb2dpbiAuc3RlcC10aXRsZSBoMiB7XG4gIHRyYW5zaXRpb246IG1hcmdpbi1sZWZ0IC4xczsgfVxuXG4vKiBXaGVuIGEgdXNlciBwcm9ncmVzc2VzIGZyb20gdGhlIFwiQ2hlY2tvdXQgTWV0aG9kXCIgdG8gXCJCaWxsaW5nIEluZm9ybWF0aW9uXCIgZm9yIHRoZSBmaXJzdCB0aW1lLCB0aGUgICAgICAgICAgICAgICovXG4vKiBcIm9wYy1oYXMtcHJvZ3Jlc3NlZC1mcm9tLWxvZ2luXCIgY2xhc3MgZ2V0cyBhZGRlZCB0byB0aGUgYm9keS4gQWxzbywgdGhlIC5vcGMgZWxlbWVudCB3aWxsIG9ubHkgaGF2ZSB0aGUgICAgICAgICAqL1xuLyogXCJvcGMtZmlyc3RzdGVwLWxvZ2luXCIgY2xhc3MgaWYgdGhlIGZpcnN0IHN0ZXAgb2YgdGhlIGNoZWNrb3V0IGlzIHRoZSBcIkNoZWNrb3V0IE1ldGhvZFwiIChlZywgbm90IHdoZW4gbG9nZ2VkIGluKSAqL1xuYm9keTpub3QoLm9wYy1oYXMtcHJvZ3Jlc3NlZC1mcm9tLWxvZ2luKSAub3BjLm9wYy1maXJzdHN0ZXAtbG9naW4gLnNlY3Rpb246bm90KCNvcGMtbG9naW4pIC5zdGVwLXRpdGxlLFxuYm9keTpub3QoLm9wYy1oYXMtcHJvZ3Jlc3NlZC1mcm9tLWxvZ2luKSAub3BjLWJsb2NrLXByb2dyZXNzLXN0ZXAtbG9naW4ge1xuICBvcGFjaXR5OiAwOyB9XG5cbmJvZHk6bm90KC5vcGMtaGFzLXByb2dyZXNzZWQtZnJvbS1sb2dpbikgLm9wYy5vcGMtZmlyc3RzdGVwLWxvZ2luIC5zZWN0aW9uI29wYy1sb2dpbiAuc3RlcC10aXRsZSAubnVtYmVyIHtcbiAgd2lkdGg6IDBweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuXG5ib2R5Om5vdCgub3BjLWhhcy1wcm9ncmVzc2VkLWZyb20tbG9naW4pIC5vcGMub3BjLWZpcnN0c3RlcC1sb2dpbiAuc2VjdGlvbiNvcGMtbG9naW4gLnN0ZXAtdGl0bGUgaDIge1xuICBtYXJnaW4tbGVmdDogMHB4OyB9XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICpcbiAqIFNoaXBwaW5nIGFuZCBQYXltZW50IG1ldGhvZHNcbiAqL1xuLnNwLW1ldGhvZHMge1xuICBtYXJnaW46IDAgMCA4cHg7IH1cbiAgLnNwLW1ldGhvZHMgZHQge1xuICAgIG1hcmdpbjogMTNweCAwIDVweDtcbiAgICBmb250LXdlaWdodDogYm9sZDsgfVxuICAgIC5zcC1tZXRob2RzIGR0OmZpcnN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbjogMCAwIDVweDsgfVxuICAgIC5zcC1tZXRob2RzIGR0IGxhYmVsIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG4gIC5zcC1tZXRob2RzIGRkIGxpIHtcbiAgICBtYXJnaW46IDVweCAwOyB9XG4gIC5zcC1tZXRob2RzIGxhYmVsIGltZyB7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLnNwLW1ldGhvZHMgbGFiZWwgYSB7XG4gICAgbWFyZ2luLXRvcDogNnB4O1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBtYXJnaW4tbGVmdDogMTBweDsgfVxuICAuc3AtbWV0aG9kcyAucHJpY2Uge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG4gIC5zcC1tZXRob2RzIC5mb3JtLWxpc3Qge1xuICAgIHBhZGRpbmctbGVmdDogMjVweDsgfVxuICAgIC5zcC1tZXRob2RzIC5mb3JtLWxpc3QgbGkge1xuICAgICAgbWFyZ2luOiAwIDAgOHB4OyB9XG4gIC5zcC1tZXRob2RzIHNlbGVjdC5tb250aCB7XG4gICAgd2lkdGg6IDEyMHB4O1xuICAgIG1hcmdpbi1yaWdodDogMTBweDsgfVxuICAuc3AtbWV0aG9kcyBzZWxlY3QueWVhciB7XG4gICAgd2lkdGg6IDk2cHg7IH1cbiAgLnNwLW1ldGhvZHMgaW5wdXQuY3Z2IHtcbiAgICB3aWR0aDogNGVtICFpbXBvcnRhbnQ7IH1cbiAgLnNwLW1ldGhvZHMgI2FkdmljZS12YWxpZGF0ZS1jYy1leHAtY2NzYXZlX2V4cGlyYXRpb24ge1xuICAgIG1heC13aWR0aDogMTMwcHg7IH1cbiAgLnNwLW1ldGhvZHMgLmNoZWNrbW8tbGlzdCBsaSB7XG4gICAgbWFyZ2luOiAwIDAgNXB4O1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIC5zcC1tZXRob2RzIC5jaGVja21vLWxpc3QgbGFiZWwge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLnNwLW1ldGhvZHMgLmNoZWNrbW8tbGlzdCBhZGRyZXNzIHtcbiAgICBmbG9hdDogbGVmdDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ3OXB4KSB7XG4gICAgLnNwLW1ldGhvZHMgLmNoZWNrbW8tbGlzdCB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7IH1cbiAgICAgIC5zcC1tZXRob2RzIC5jaGVja21vLWxpc3QgbGFiZWwge1xuICAgICAgICB3aWR0aDogMTM1cHg7IH0gfVxuICAuc3AtbWV0aG9kcyAucmVsZWFzZS1hbW91bnRzIHtcbiAgICBtYXJnaW46IDAuNWVtIDA7IH1cbiAgLnNwLW1ldGhvZHMgLnJlbGVhc2UtYW1vdW50cyBidXR0b24ge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbjogNXB4IDEwcHggMCAwOyB9XG5cbi8qIE9uZSBQYWdlIENoZWNrb3V0ICovXG4jY2hlY2tvdXQtc3RlcC1iaWxsaW5nIHtcbiAgbWFyZ2luLXRvcDogMjVweDsgfVxuICAjY2hlY2tvdXQtc3RlcC1iaWxsaW5nIHAucmVxdWlyZWQge1xuICAgIG1hcmdpbi10b3A6IC0yNXB4OyB9XG5cbi5ibG9jay1wcm9ncmVzcyB7XG4gIGJvcmRlcjogMDtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nLWxlZnQ6IDIwcHg7IH1cbiAgLmJsb2NrLXByb2dyZXNzIC5ibG9jay1jb250ZW50IHtcbiAgICBmb250LXNpemU6IDEzcHg7IH1cbiAgLmJsb2NrLXByb2dyZXNzIGR0IHtcbiAgICBwYWRkaW5nLXRvcDogNnB4O1xuICAgIG1hcmdpbjogMDtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgIGNvbG9yOiAjMDAzYjVmO1xuICAgIGZvbnQtZmFtaWx5OiBcIlVidW50dVRpdGxpbmctQm9sZFwiLCBcIkhlbHZldGljYSBOZXVlXCIsIFZlcmRhbmEsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBsaW5lLWhlaWdodDogMS40O1xuICAgIG1hcmdpbi1ib3R0b206IDZweDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgY29sb3I6ICM1YjViNWE7IH1cbiAgLmJsb2NrLXByb2dyZXNzIGR0LmNvbXBsZXRlIHtcbiAgICBjb2xvcjogIzAwM2I1ZjsgfVxuICAuYmxvY2stcHJvZ3Jlc3MgZGQge1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgZm9udC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmOyB9XG4gIC5ibG9jay1wcm9ncmVzcyAjcGF5bWVudC1wcm9ncmVzcy1vcGNoZWNrb3V0IC5zdWJ0aXRsZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogM3B4OyB9XG4gIC5ibG9jay1wcm9ncmVzcyAucGF5bWVudC1pbmZvIGR0IHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMCAwIDNweCAwO1xuICAgIGNvbG9yOiAjMDAzYjVmO1xuICAgIGZvbnQtZmFtaWx5OiBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgZm9udC1zaXplOiAxM3B4OyB9XG4gICAgLmJsb2NrLXByb2dyZXNzIC5wYXltZW50LWluZm8gZHQ6YWZ0ZXIge1xuICAgICAgY29udGVudDogJzogJzsgfVxuICAuYmxvY2stcHJvZ3Jlc3MgLnBheW1lbnQtaW5mbyBkZCB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luLWJvdHRvbTogM3B4O1xuICAgIGZvbnQtc2l6ZTogMTNweDsgfVxuICAuYmxvY2stcHJvZ3Jlc3MgLnBheW1lbnQtaW5mbzphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgY2xlYXI6IGJvdGg7IH1cblxuLyogcmV2aWV3IHN0ZXAgKi9cbiNjaGVja291dC1yZXZpZXctdGFibGUgLmJ0bi1yZW1vdmUgaW1nIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4jY2hlY2tvdXQtcmV2aWV3LXRhYmxlLXdyYXBwZXIge1xuICBjbGVhcjogYm90aDsgfVxuXG4jcmV2aWV3LWJ1dHRvbnMtY29udGFpbmVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi10b3A6IDE1cHg7XG4gIG1hcmdpbi1ib3R0b206IDE1cHg7IH1cbiAgI3Jldmlldy1idXR0b25zLWNvbnRhaW5lciAuYnRuLWNoZWNrb3V0IHtcbiAgICBtaW4td2lkdGg6IDIyMHB4OyB9XG4gICNyZXZpZXctYnV0dG9ucy1jb250YWluZXIgLnBsZWFzZS13YWl0IHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7IH1cbiAgI3Jldmlldy1idXR0b25zLWNvbnRhaW5lciAuZi1sZWZ0IHtcbiAgICBmbG9hdDogcmlnaHQ7IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAubGluZWFyaXplLXRhYmxlLWxhcmdlLmNoZWNrb3V0LXJldmlldy10YWJsZSB0aGVhZCB0cjpudGgtY2hpbGQoMW4rMikge1xuICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ3OXB4KSB7XG4gIC5saW5lYXJpemUtdGFibGUuY2hlY2tvdXQtcmV2aWV3LXRhYmxlIHRoZWFkIHRyOm50aC1jaGlsZCgxbisyKSB7XG4gICAgZGlzcGxheTogbm9uZTsgfSB9XG5cbi8qIHNob3cvaGlkZSBcImNoYW5nZVwiIGxpbmsgZm9yIHByb2dyZXNzIHN0ZXAgZGVwZW5kIG9uIGNvbXBsZXRlIHN0YXR1c1xuICogc2hvdWxkIGJlIHBsYWNlZCBpbiAuY3NzIGZpbGUgKi9cbi5vcGMtYmxvY2stcHJvZ3Jlc3MgZHQuY29tcGxldGUgYSxcbi5vcGMtYmxvY2stcHJvZ3Jlc3MgZHQuY29tcGxldGUgLnNlcGFyYXRvciB7XG4gIGRpc3BsYXk6IGlubGluZTsgfVxuXG4ub3BjLWJsb2NrLXByb2dyZXNzIGR0IGEsXG4ub3BjLWJsb2NrLXByb2dyZXNzIGR0IC5zZXBhcmF0b3Ige1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi8qIE9uIHNtYWxsIHNjcmVlbnMsIHRoZSBwcm9ncmVzcyByZXZpZXcgY29udGVudCB3aWxsIGJlIG1vdmVkIHRvIHRoZSByZXZpZXcgc3RlcCB2aWEgSlMuIFN0eWxlZCB2aWEgdGhpcyBDU1M6ICovXG4jY2hlY2tvdXQtc3RlcC1yZXZpZXcgLm9wYy1ibG9jay1wcm9ncmVzcyB7XG4gIGJvcmRlci1sZWZ0OiBub25lO1xuICBwYWRkaW5nLWxlZnQ6IDA7IH1cbiAgI2NoZWNrb3V0LXN0ZXAtcmV2aWV3IC5vcGMtYmxvY2stcHJvZ3Jlc3MgLmJsb2NrLXRpdGxlIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gICNjaGVja291dC1zdGVwLXJldmlldyAub3BjLWJsb2NrLXByb2dyZXNzIC5ibG9jay1jb250ZW50IHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmc6IDA7IH1cbiAgICAjY2hlY2tvdXQtc3RlcC1yZXZpZXcgLm9wYy1ibG9jay1wcm9ncmVzcyAuYmxvY2stY29udGVudCA+IGRsID4gZGl2IHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgd2lkdGg6IDUwJTsgfVxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDc5cHgpIHtcbiAgICAgICNjaGVja291dC1zdGVwLXJldmlldyAub3BjLWJsb2NrLXByb2dyZXNzIC5ibG9jay1jb250ZW50ID4gZGwgPiBkaXYge1xuICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgd2lkdGg6IGF1dG87IH0gfVxuICAgICNjaGVja291dC1zdGVwLXJldmlldyAub3BjLWJsb2NrLXByb2dyZXNzIC5ibG9jay1jb250ZW50IC5jaGFuZ2VsaW5rIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0NzlweCkge1xuICAjY2hlY2tvdXQtcmV2aWV3LXRhYmxlIHRoZWFkID4gdHIgPiB0aCB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAgICNjaGVja291dC1yZXZpZXctdGFibGUgdGhlYWQgPiB0ciA+IHRoOmZpcnN0LWNoaWxkIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICNjaGVja291dC1yZXZpZXctdGFibGUgdGhlYWQgPiB0ciA+IHRoOmZpcnN0LWNoaWxkIHtcbiAgICBkaXNwbGF5OiBibG9jazsgfSB9XG5cbiNjaGVja291dC1zdGVwLXJldmlldyAuY2VudGluZWwgPiBwIHtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDsgfVxuXG4jY2hlY2tvdXQtc3RlcC1yZXZpZXcgLmNlbnRpbmVsIGlmcmFtZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4taGVpZ2h0OiA0MDBweDsgfVxuXG4vKiBHaWZ0IG9wdGlvbnMgKi9cbi5naWZ0LW1lc3NhZ2VzLWZvcm0gLml0ZW0ge1xuICBjb250ZW50OiAnJztcbiAgZGlzcGxheTogdGFibGU7XG4gIGNsZWFyOiBib3RoO1xuICBtYXJnaW4tdG9wOiAzNXB4OyB9XG4gIC5naWZ0LW1lc3NhZ2VzLWZvcm0gLml0ZW0gaDUge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG4gIC5naWZ0LW1lc3NhZ2VzLWZvcm0gLml0ZW0gLnByb2R1Y3QtaW1nLWJveCB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgcGFkZGluZy1yaWdodDogMTVweDsgfVxuICAuZ2lmdC1tZXNzYWdlcy1mb3JtIC5pdGVtIC5kZXRhaWxzIHtcbiAgICBmbG9hdDogbGVmdDsgfVxuXG4uZ2lmdC1tZXNzYWdlLWZvcm0gLmlubmVyLWJveCA+IGRpdiB7XG4gIGNvbnRlbnQ6ICcnO1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgY2xlYXI6IGJvdGg7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tdG9wOiAxNXB4O1xuICBkaXNwbGF5OiBibG9jazsgfVxuICAuZ2lmdC1tZXNzYWdlLWZvcm0gLmlubmVyLWJveCA+IGRpdi5leHRyYS1vcHRpb25zLWNvbnRhaW5lciBwIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxNXB4OyB9XG5cbi5naWZ0LW1lc3NhZ2UtZm9ybSAuZ2lmdC13cmFwcGluZy1mb3JtIGxhYmVsIHtcbiAgbWFyZ2luLXJpZ2h0OiAxMHB4OyB9XG5cbi5naWZ0LW1lc3NhZ2UtZm9ybSAuZ2lmdC13cmFwcGluZy1mb3JtIGltZyB7XG4gIGZsb2F0OiBsZWZ0OyB9XG5cbi5naWZ0LW1lc3NhZ2UtZm9ybSAuZ2lmdC13cmFwcGluZy1mb3JtIC5naWZ0LXdyYXBwaW5nLWRlc2lnbiB7XG4gIGhlaWdodDogNzVweDsgfVxuICAuZ2lmdC1tZXNzYWdlLWZvcm0gLmdpZnQtd3JhcHBpbmctZm9ybSAuZ2lmdC13cmFwcGluZy1kZXNpZ246YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIC5naWZ0LW1lc3NhZ2UtZm9ybSAuZ2lmdC13cmFwcGluZy1mb3JtIC5naWZ0LXdyYXBwaW5nLWRlc2lnbiAuaW1hZ2UtYm94IHtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDsgfVxuXG4uZ2lmdC1tZXNzYWdlLWZvcm0gLmdpZnQtaXRlbSB7XG4gIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggI0VDRUNFQzsgfVxuICAuZ2lmdC1tZXNzYWdlLWZvcm0gLmdpZnQtaXRlbTphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgLmdpZnQtbWVzc2FnZS1mb3JtIC5naWZ0LWl0ZW0gLnByb2R1Y3QtaW1nLWJveCB7XG4gICAgd2lkdGg6IDIwMHB4OyB9XG4gICAgLmdpZnQtbWVzc2FnZS1mb3JtIC5naWZ0LWl0ZW0gLnByb2R1Y3QtaW1nLWJveCAucHJvZHVjdC1pbWFnZSB7XG4gICAgICB3aWR0aDogNzVweDtcbiAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvOyB9XG4gICAgLmdpZnQtbWVzc2FnZS1mb3JtIC5naWZ0LWl0ZW0gLnByb2R1Y3QtaW1nLWJveCAucHJvZHVjdC1uYW1lIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC5naWZ0LW1lc3NhZ2UtZm9ybSAuZ2lmdC1pdGVtIC5maWVsZHNldCB7XG4gICAgbWFyZ2luLWxlZnQ6IDIwMHB4OyB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzcwcHgpIHtcbiAgLmdpZnQtbWVzc2FnZS1mb3JtIC5naWZ0bWVzc2FnZS1hcmVhIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7IH1cbiAgLmdpZnQtbWVzc2FnZS1mb3JtIC5naWZ0LWl0ZW0gLnByb2R1Y3QtaW1nLWJveCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZmxvYXQ6IG5vbmU7IH1cbiAgLmdpZnQtbWVzc2FnZS1mb3JtIC5naWZ0LWl0ZW0gLmZpZWxkc2V0IHtcbiAgICBtYXJnaW4tbGVmdDogMHB4OyB9XG4gICAgLmdpZnQtbWVzc2FnZS1mb3JtIC5naWZ0LWl0ZW0gLmZpZWxkc2V0IHRleHRhcmVhIHtcbiAgICAgIHdpZHRoOiAxMDAlOyB9IH1cblxuLm9wYy1ibG9jay1wcm9ncmVzcyAuYmxvY2stdGl0bGUgc3Ryb25nIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjb2xvcjogIzAwM2I1ZjtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICMwMDNiNWY7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBwYWRkaW5nLWJvdHRvbTogNXB4O1xuICBtcmFnaW4tYm90dG9tOiAyMHB4OyB9XG5cbiNjaGVja291dC1zdGVwLXJldmlldyAjY2hlY2tvdXQtYWdyZWVtZW50cyB7XG4gIG1hcmdpbi10b3A6IDMwcHg7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogQ2hlY2tvdXQgLSBTdWNjZXNzXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLmNoZWNrb3V0LW9uZXBhZ2Utc3VjY2VzcyAuY29sLW1haW4ge1xuICBwYWRkaW5nOiAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cblxuLmNoZWNrb3V0LW9uZXBhZ2Utc3VjY2VzcyAuYnV0dG9ucy1zZXQge1xuICBtYXJnaW46IDEwcHggMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIC5jaGVja291dC1vbmVwYWdlLXN1Y2Nlc3MgLmJ1dHRvbnMtc2V0IGJ1dHRvbiB7XG4gICAgZmxvYXQ6IG5vbmU7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogQ29uZmlndXJhYmxlIFN3YXRjaGVzXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogQ2xlYXJzICovXG4uY2xlYXJmaXg6YWZ0ZXIsXG4uY29uZmlndXJhYmxlLXN3YXRjaC1saXN0OmFmdGVyLFxuLnByb2R1Y3QtdmlldyAucHJvZHVjdC1vcHRpb25zIC5zd2F0Y2gtYXR0cjphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgY2xlYXI6IGJvdGg7IH1cblxuLyogR2VuZXJhbCBTd2F0Y2ggU3R5bGluZyAqL1xuLnN3YXRjaC1saW5rLFxuLnN3YXRjaC1sYWJlbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjb2xvcjogIzAwM2I1ZjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDsgfVxuXG4uc3dhdGNoLWxpbmsge1xuICBib3JkZXI6IDFweCBzb2xpZCAjQ0NDQ0NDO1xuICBtYXJnaW46IDAgMCAzcHg7IH1cbiAgLnN3YXRjaC1saW5rIGltZyB7XG4gICAgYm9yZGVyLXJhZGl1czogMnB4OyB9XG4gIC5zd2F0Y2gtbGluazpob3ZlciB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICAuc3dhdGNoLWxpbmsgLngge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgdGV4dC1pbmRlbnQ6IC05OTllbTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICB0b3A6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGJhY2tncm91bmQ6IHVybCguLi9pbWFnZXMvYmdfeC5wbmcpIGNlbnRlciBuby1yZXBlYXQgdHJhbnNwYXJlbnQ7XG4gICAgei1pbmRleDogMTA7IH1cbiAgLnN3YXRjaC1saW5rLmhhcy1pbWFnZSAuc3dhdGNoLWxhYmVsIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLnN3YXRjaC1saW5rLmhhcy1pbWFnZSBpbWcge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDsgfVxuXG4uc3dhdGNoLWxhYmVsIHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2ZmZjtcbiAgbWFyZ2luOiAwO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBiYWNrZ3JvdW5kOiAjRjRGNEY0OyB9XG5cbi5jb25maWd1cmFibGUtc3dhdGNoLWxpc3Qge1xuICBtYXJnaW4tbGVmdDogLTNweDtcbiAgem9vbTogMTtcbiAgY2xlYXI6IGJvdGg7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDBweCk7IH1cbiAgLmNvbmZpZ3VyYWJsZS1zd2F0Y2gtbGlzdCBsaSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgem9vbTogMTtcbiAgICBtYXJnaW46IDAgMCAwIDNweDsgfVxuICAucHJvZHVjdHMtZ3JpZCAuY29uZmlndXJhYmxlLXN3YXRjaC1saXN0IGxpIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgbWFyZ2luOiAwO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7IH1cbiAgLmNvbmZpZ3VyYWJsZS1zd2F0Y2gtbGlzdCAubm90LWF2YWlsYWJsZSAueCB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgLmNvbmZpZ3VyYWJsZS1zd2F0Y2gtbGlzdCAubm90LWF2YWlsYWJsZSAuc3dhdGNoLWxpbmsge1xuICAgIGJvcmRlci1jb2xvcjogI0VERURFRDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAuY29uZmlndXJhYmxlLXN3YXRjaC1saXN0IC5ub3QtYXZhaWxhYmxlIC5zd2F0Y2gtbGluay5oYXMtaW1hZ2UgaW1nIHtcbiAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgIGZpbHRlcjogYWxwaGEob3BhY2l0eT00MCk7IH1cbiAgLmNvbmZpZ3VyYWJsZS1zd2F0Y2gtbGlzdCAubm90LWF2YWlsYWJsZSAuc3dhdGNoLWxhYmVsIHtcbiAgICBjb2xvcjogI2FhYTtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmOyB9XG4gIC5jb25maWd1cmFibGUtc3dhdGNoLWxpc3QgLndpZGUtc3dhdGNoIC5zd2F0Y2gtbGFiZWwge1xuICAgIHBhZGRpbmc6IDAgNnB4OyB9XG4gIC5jb25maWd1cmFibGUtc3dhdGNoLWxpc3QgLm5vdC1hdmFpbGFibGUgYTpmb2N1cyB7XG4gICAgb3V0bGluZTogMDsgfVxuXG4jbmFycm93LWJ5LWxpc3QgZGQgLmNvbmZpZ3VyYWJsZS1zd2F0Y2gtbGlzdCBsaSB7XG4gIG1hcmdpbjogMCAwIDAgM3B4O1xuICB3aWR0aDogNDclOyB9XG5cbiNuYXJyb3ctYnktbGlzdCBkZCAuc3dhdGNoLWxpbmsge1xuICBib3JkZXI6IG5vbmU7XG4gIGxpbmUtaGVpZ2h0OiAyNXB4O1xuICBtYXJnaW4tcmlnaHQ6IDJweDtcbiAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAjbmFycm93LWJ5LWxpc3QgZGQgLnN3YXRjaC1saW5rLmhhcy1pbWFnZSB7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7IH1cbiAgI25hcnJvdy1ieS1saXN0IGRkIC5zd2F0Y2gtbGluazpob3ZlciAuc3dhdGNoLWxhYmVsIHtcbiAgICBib3JkZXItY29sb3I6ICMxZjg2YmQ7IH1cblxuI25hcnJvdy1ieS1saXN0IGRkIC5zd2F0Y2gtbGFiZWwge1xuICBiYWNrZ3JvdW5kOiAjRjRGNEY0O1xuICBib3JkZXI6IDFweCBzb2xpZCAjQ0NDQ0NDO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmbG9hdDogbGVmdDtcbiAgbGluZS1oZWlnaHQ6IDEuNWVtO1xuICBtYXJnaW46IDAgNXB4IDAgMDtcbiAgcGFkZGluZzogMXB4IDVweDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuICAjbmFycm93LWJ5LWxpc3QgZGQgLnN3YXRjaC1sYWJlbCBpbWcge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNmZmY7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94OyB9XG5cbiNuYXJyb3ctYnktbGlzdCBkZCAuaGFzLWltYWdlIC5zd2F0Y2gtbGFiZWwge1xuICBwYWRkaW5nOiAwOyB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzcwcHgpIHtcbiAgI25hcnJvdy1ieS1saXN0IGRkIC5jb25maWd1cmFibGUtc3dhdGNoLWxpc3QgbGk6bnRoLWNoaWxkKG9kZCkge1xuICAgIGNsZWFyOiBsZWZ0OyB9IH1cblxuLmN1cnJlbnRseSAuc3dhdGNoLWN1cnJlbnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLmN1cnJlbnRseSAuc3dhdGNoLWN1cnJlbnQgLmJ0bi1yZW1vdmUge1xuICAgIG1hcmdpbi10b3A6IC0xMHB4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogMDtcbiAgICB0b3A6IDUwJTsgfVxuICAuY3VycmVudGx5IC5zd2F0Y2gtY3VycmVudCBzcGFuIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmbG9hdDogbGVmdDsgfVxuXG4uY3VycmVudGx5IC5zd2F0Y2gtbGluayB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luOiAwIDAgMCAzcHg7IH1cbiAgLmN1cnJlbnRseSAuc3dhdGNoLWxpbms6aG92ZXIge1xuICAgIGJvcmRlci1jb2xvcjogI0NDQ0NDQztcbiAgICBjdXJzb3I6IGRlZmF1bHQ7IH1cblxuLyogT3RoZXIgU3dhdGNoIFN0YXRlcyAqL1xuLmNvbmZpZ3VyYWJsZS1zd2F0Y2gtbGlzdCAuaG92ZXIgLnN3YXRjaC1saW5rLFxuLmNvbmZpZ3VyYWJsZS1zd2F0Y2gtbGlzdCAuc2VsZWN0ZWQgLnN3YXRjaC1saW5rLFxuLnN3YXRjaC1saW5rOmhvdmVyIHtcbiAgYm9yZGVyLWNvbG9yOiAjMWY4NmJkOyB9XG5cbi5jb25maWd1cmFibGUtc3dhdGNoLWJveCB7XG4gIGJhY2tncm91bmQ6IG5vbmUgIWltcG9ydGFudDsgfVxuICAuY29uZmlndXJhYmxlLXN3YXRjaC1ib3ggc2VsZWN0LnN3YXRjaC1zZWxlY3Qge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmNvbmZpZ3VyYWJsZS1zd2F0Y2gtYm94IC52YWxpZGF0aW9uLWFkdmljZSB7XG4gICAgbWFyZ2luOiAwIDAgNXB4O1xuICAgIGJhY2tncm91bmQ6ICNERjI4MEE7XG4gICAgcGFkZGluZzogMnB4IDVweCAhaW1wb3J0YW50O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4OyB9XG5cbi8qIENVU1RPTSAqL1xuLmF2YWlsYWJpbGl0eS5vdXQtb2Ytc3RvY2sgc3BhbiB7XG4gIGNvbG9yOiAjNWI1YjVhOyB9XG5cbi5wcm9kdWN0LXZpZXcgLnByb2R1Y3Qtb3B0aW9ucyAuc3dhdGNoLWF0dHIge1xuICBmbG9hdDogbm9uZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGNsZWFyOiBib3RoO1xuICBib3JkZXI6IDA7IH1cbiAgLnByb2R1Y3QtdmlldyAucHJvZHVjdC1vcHRpb25zIC5zd2F0Y2gtYXR0ciBsYWJlbCxcbiAgLnByb2R1Y3QtdmlldyAucHJvZHVjdC1vcHRpb25zIC5zd2F0Y2gtYXR0ciAuc2VsZWN0LWxhYmVsIHtcbiAgICBmb250LXNpemU6IDEycHg7IH1cbiAgLnByb2R1Y3QtdmlldyAucHJvZHVjdC1vcHRpb25zIC5zd2F0Y2gtYXR0ciBsYWJlbCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbGluZS1oZWlnaHQ6IDEuMzsgfVxuICAucHJvZHVjdC12aWV3IC5wcm9kdWN0LW9wdGlvbnMgLnN3YXRjaC1hdHRyIC5zZWxlY3QtbGFiZWwge1xuICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGNvbG9yOiAjMDAzYjVmO1xuICAgIHBhZGRpbmctbGVmdDogNXB4OyB9XG5cbi5wcm9kdWN0LXZpZXcgLnByb2R1Y3Qtb3B0aW9ucyBkZCAuaW5wdXQtYm94IHtcbiAgd2lkdGg6IGF1dG87XG4gIGhlaWdodDogYXV0bzsgfVxuXG4ucHJvZHVjdC12aWV3IC5wcm9kdWN0LW9wdGlvbnMgLnNlbGVjdC1sYWJlbCB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLnByb2R1Y3QtdmlldyAuYWRkLXRvLWNhcnQgYnV0dG9uLm91dC1vZi1zdG9jayB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC04MHB4IC0zNjJweDtcbiAgY3Vyc29yOiBkZWZhdWx0OyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIEN1c3RvbWVyXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLmN1c3RvbWVyLWFjY291bnQtbG9naW4gLmNvbC1tYWluIGE6bm90KC5idXR0b24pLFxuLmN1c3RvbWVyLWFjY291bnQtY3JlYXRlIC5jb2wtbWFpbiBhOm5vdCguYnV0dG9uKSxcbi5jdXN0b21lci1hY2NvdW50LWZvcmdvdHBhc3N3b3JkIC5jb2wtbWFpbiBhOm5vdCguYnV0dG9uKSxcbi5jaGVja291dC1vbmVwYWdlLWluZGV4IC5jb2wtbWFpbiBhOm5vdCguYnV0dG9uKSB7XG4gIGNvbG9yOiAjMDAzYjVmO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuICAuY3VzdG9tZXItYWNjb3VudC1sb2dpbiAuY29sLW1haW4gYTpub3QoLmJ1dHRvbik6aG92ZXIsXG4gIC5jdXN0b21lci1hY2NvdW50LWNyZWF0ZSAuY29sLW1haW4gYTpub3QoLmJ1dHRvbik6aG92ZXIsXG4gIC5jdXN0b21lci1hY2NvdW50LWZvcmdvdHBhc3N3b3JkIC5jb2wtbWFpbiBhOm5vdCguYnV0dG9uKTpob3ZlcixcbiAgLmNoZWNrb3V0LW9uZXBhZ2UtaW5kZXggLmNvbC1tYWluIGE6bm90KC5idXR0b24pOmhvdmVyIHtcbiAgICBjb2xvcjogIzFmODZiZDsgfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc3MHB4KSB7XG4gIC5jdXN0b21lci1hY2NvdW50IC5ibG9jay1hY2NvdW50IC5ibG9jay10aXRsZSB7XG4gICAgZGlzcGxheTogbm9uZTsgfSB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzcwcHgpIHtcbiAgLmN1c3RvbWVyLWFjY291bnQgLmJsb2NrLWFjY291bnQge1xuICAgIG1hcmdpbi1ib3R0b206IDM1cHggIWltcG9ydGFudDsgfSB9XG5cbi5jdXN0b21lci1hY2NvdW50LWVkaXQgLmZpZWxkc2V0IHAucmVxdWlyZWQge1xuICBtYXJnaW4tdG9wOiAtMjVweCAhaW1wb3J0YW50OyB9XG5cbi5jdXN0b21lci1hY2NvdW50LWxvZ2luIC5jb2wtbWFpbiB7XG4gIHBhZGRpbmctYm90dG9tOiAzNXB4OyB9XG5cbi5jdXN0b21lci1hY2NvdW50LWxvZ2luIC5zY2FmZm9sZC1mb3JtIGxhYmVsOmZpcnN0LWNoaWxkIHtcbiAgd2lkdGg6IDExNXB4OyB9XG5cbi5jdXN0b21lci1hY2NvdW50LWxvZ2luIGgyIHtcbiAgZm9udC1zaXplOiAyMHB4OyB9XG5cbi5jdXN0b21lci1hY2NvdW50LWxvZ2luIC5jb2wyLXNldCAuYnV0dG9ucy1zZXQge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBib3JkZXItdG9wOiAwOyB9XG5cbi5jdXN0b21lci1hY2NvdW50LWxvZ2luIC5jb2wyLXNldCAuY29sLTEsXG4uY3VzdG9tZXItYWNjb3VudC1sb2dpbiAuY29sMi1zZXQgLmNvbC0yIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuXG4uY3VzdG9tZXItYWNjb3VudC1sb2dpbiAuY29sMi1zZXQgLmNvbC0xIHVsIHtcbiAgbGlzdC1zdHlsZTogZGlzYztcbiAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICBtYXJnaW46IDEwcHggMCAyMHB4IDA7IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MDBweCkge1xuICAuY3VzdG9tZXItYWNjb3VudC1sb2dpbiAuY29sMi1zZXQgLmNvbC0xLFxuICAuY3VzdG9tZXItYWNjb3VudC1sb2dpbiAuY29sMi1zZXQgLmNvbC0yIHtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgICBtYXJnaW4tdG9wOiAyMHB4OyB9XG4gIC5jdXN0b21lci1hY2NvdW50LWxvZ2luIC5jb2wyLXNldCAuY29sLTEge1xuICAgIHBhZGRpbmctcmlnaHQ6IDIwcHg7IH1cbiAgLmN1c3RvbWVyLWFjY291bnQtbG9naW4gLmNvbDItc2V0IC5jb2wtMiB7XG4gICAgcGFkZGluZy1sZWZ0OiAyMHB4OyB9IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NzBweCkge1xuICAuY3VzdG9tZXItYWNjb3VudC1sb2dpbiAuY29sMi1zZXQgLmNvbC0xIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwOyB9IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAuY3VzdG9tZXItYWNjb3VudC1sb2dpbiAuY29sMi1zZXQgLmNvbC0xIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMzVweDsgfVxuICAuY3VzdG9tZXItYWNjb3VudC1sb2dpbiAuY29sMi1zZXQgLmNvbC0yIHtcbiAgICBwYWRkaW5nLXRvcDogMzVweDsgfSB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzcwcHgpIHtcbiAgLmN1c3RvbWVyLWFjY291bnQtbG9naW4gLmNvbDItc2V0IHAucmVxdWlyZWQge1xuICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuXG4uY3VzdG9tZXItYWNjb3VudC1jcmVhdGUgLnNjYWZmb2xkLWZvcm0gbGFiZWw6Zmlyc3QtY2hpbGQge1xuICB3aWR0aDogMTQwcHg7IH1cblxuLnJlbWVtYmVyLW1lLWJveCBhLmhpZGUge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5yZW1lbWJlci1tZS1ib3ggLmxpbmstdGlwIHtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBwYWRkaW5nLWxlZnQ6IDEwcHg7IH1cblxuLnJlbWVtYmVyLW1lLXBvcHVwIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgYm9yZGVyOiAxcHggc29saWQgI0NDQ0NDQztcbiAgcGFkZGluZzogMTBweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC5yZW1lbWJlci1tZS1wb3B1cC5zaG93IHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuICAucmVtZW1iZXItbWUtcG9wdXAgcCB7XG4gICAgZm9udC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmOyB9XG4gIC5yZW1lbWJlci1tZS1wb3B1cCAucmVtZW1iZXItbWUtcG9wdXAtY2xvc2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgcGFkZGluZzogMTBweDtcbiAgICBmb250LXNpemU6IDEycHg7IH1cbiAgLnJlbWVtYmVyLW1lLXBvcHVwIC5yZW1lbWJlci1tZS1wb3B1cC1jbG9zZS1idXR0b24ge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cblxuLmN1c3RvbWVyLWFjY291bnQtY3JlYXRlIC5maWVsZHNldCAuaGlkZGVuIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4uY3VzdG9tZXItYWNjb3VudC1mb3Jnb3RwYXNzd29yZCAuY29sLW1haW4sXG4uY3VzdG9tZXItYWNjb3VudC1jcmVhdGUgLmNvbC1tYWluIHtcbiAgbWF4LXdpZHRoOiA2ODBweDtcbiAgbWFyZ2luOiBhdXRvO1xuICBwYWRkaW5nLWJvdHRvbTogMzVweDsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBNeSBBY2NvdW50IEdsb2JhbCBTdHlsZXNcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5ib2R5LmN1c3RvbWVyLWFjY291bnQgLm15LWFjY291bnQgLnBhZ2UtdGl0bGUgaDEge1xuICBib3JkZXI6IDA7XG4gIHRleHQtYWxpZ246IGxlZnQ7IH1cblxuYm9keS5jdXN0b21lci1hY2NvdW50IC5teS1hY2NvdW50IC50aXRsZS1idXR0b25zIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0ZXh0LWFsaWduOiByaWdodDsgfVxuICBib2R5LmN1c3RvbWVyLWFjY291bnQgLm15LWFjY291bnQgLnRpdGxlLWJ1dHRvbnMgaDEge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgYm9keS5jdXN0b21lci1hY2NvdW50IC5teS1hY2NvdW50IC50aXRsZS1idXR0b25zIC5idXR0b24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogMDtcbiAgICB0b3A6IDA7IH1cbiAgYm9keS5jdXN0b21lci1hY2NvdW50IC5teS1hY2NvdW50IC50aXRsZS1idXR0b25zIGEsXG4gIGJvZHkuY3VzdG9tZXItYWNjb3VudCAubXktYWNjb3VudCAudGl0bGUtYnV0dG9ucyBzcGFuLnNlcGFyYXRvciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogLTQycHg7IH1cblxuYm9keS5jdXN0b21lci1hY2NvdW50IC5teS1hY2NvdW50IC5maWVsZHNldCBoMixcbmJvZHkuY3VzdG9tZXItYWNjb3VudCAubXktYWNjb3VudCAuYWRkcmVzc2VzLWxpc3QgaDIsXG5ib2R5LmN1c3RvbWVyLWFjY291bnQgLm15LWFjY291bnQgLm9yZGVyLWRldGFpbHMgaDIge1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG5cbmJvZHkuY3VzdG9tZXItYWNjb3VudCAubXktYWNjb3VudCAuYWRkcmVzc2VzLWxpc3QgaDMge1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7IH1cblxuYm9keS5jdXN0b21lci1hY2NvdW50IC5teS1hY2NvdW50IC5maWVsZHNldCB7XG4gIG1hcmdpbi10b3A6IDM1cHg7XG4gIG1hcmdpbi1ib3R0b206IDM1cHg7IH1cblxuYm9keS5jdXN0b21lci1hY2NvdW50IC5kYXRhLXRhYmxlIHtcbiAgbWFyZ2luLXRvcDogNXB4OyB9XG4gIGJvZHkuY3VzdG9tZXItYWNjb3VudCAuZGF0YS10YWJsZSB0ZCBhIHtcbiAgICBmb250LWZhbWlseTogXCJVYnVudHVUaXRsaW5nLUJvbGRcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBWZXJkYW5hLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBmb250LXNpemU6IDEzcHg7IH1cbiAgYm9keS5jdXN0b21lci1hY2NvdW50IC5kYXRhLXRhYmxlIHNwYW4ubm9iciB7XG4gICAgd2hpdGUtc3BhY2U6IG5vcm1hbDsgfVxuICAgIGJvZHkuY3VzdG9tZXItYWNjb3VudCAuZGF0YS10YWJsZSBzcGFuLm5vYnIgYSB7XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XG4gIGJvZHkuY3VzdG9tZXItYWNjb3VudCAuZGF0YS10YWJsZSB0ZC52aWV3IGEge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIGJvZHkuY3VzdG9tZXItYWNjb3VudCAuZGF0YS10YWJsZSAuc2VwYXJhdG9yIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG5cbmJvZHkuY3VzdG9tZXItYWNjb3VudCAuc2lkZWJhciAuYmxvY2sgb2wjY29tcGFyZS1pdGVtcyBsaSB7XG4gIG1hcmdpbjogMTBweCAwOyB9XG5cbmJvZHkuY3VzdG9tZXItYWNjb3VudCAuc2lkZWJhciAuYmxvY2sgLmJsb2NrLWNvbnRlbnQgcC5ibG9jay1zdWJ0aXRsZSB7XG4gIG1hcmdpbi1ib3R0b206IDE1cHg7IH1cblxuYm9keS5jdXN0b21lci1hY2NvdW50IC5zaWRlYmFyIC5ibG9jayAuYmxvY2stY29udGVudCAuYWN0aW9ucyB7XG4gIG1hcmdpbi10b3A6IDM1cHg7IH1cblxuYm9keS5jdXN0b21lci1hY2NvdW50IC5zaWRlYmFyIG9sI2NhcnQtc2lkZWJhci1yZW9yZGVyIGxpIHtcbiAgbWFyZ2luLXRvcDogMTBweDtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG5ib2R5LmN1c3RvbWVyLWFjY291bnQgLnNpZGViYXIgb2wjY2FydC1zaWRlYmFyLXJlb3JkZXIgcC5wcm9kdWN0LW5hbWUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbi1ib3R0b206IDA7IH1cblxuYm9keS5jdXN0b21lci1hY2NvdW50IC5zaWRlYmFyIC5ibG9jay1jYXJ0IC5zdW1tYXJ5IHtcbiAgbWFyZ2luLWJvdHRvbTogMTVweDsgfVxuXG5ib2R5LmN1c3RvbWVyLWFjY291bnQgLnNpZGViYXIgLmJsb2NrLXJlb3JkZXIgb2wjY2FydC1zaWRlYmFyLXJlb3JkZXIgbGkge1xuICBtYXJnaW4tdG9wOiAxMHB4O1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIGJvZHkuY3VzdG9tZXItYWNjb3VudCAuc2lkZWJhciAuYmxvY2stcmVvcmRlciBvbCNjYXJ0LXNpZGViYXItcmVvcmRlciBsaSBpbnB1dCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAxMHB4OyB9XG5cbmJvZHkuY3VzdG9tZXItYWNjb3VudCAuc2lkZWJhciAuYmxvY2stcmVvcmRlciBvbCNjYXJ0LXNpZGViYXItcmVvcmRlciBwLnByb2R1Y3QtbmFtZSB7XG4gIGRpc3BsYXk6IGlubGluZTtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4uZm9ybS1saXN0IC5jdXN0b21lci1kb2IgLmRvYi1tb250aCxcbi5mb3JtLWxpc3QgLmN1c3RvbWVyLWRvYiAuZG9iLWRheSB7XG4gIHdpZHRoOiA0MHB4O1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luLXJpZ2h0OiAxMHB4OyB9XG5cbi5mb3JtLWxpc3QgLmN1c3RvbWVyLWRvYiAuZG9iLXllYXIge1xuICB3aWR0aDogODBweDtcbiAgZmxvYXQ6IGxlZnQ7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogRGFzaGJvYXJkXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLmN1c3RvbWVyLWFjY291bnQgLmJhY2stbGluayBhIHtcbiAgY29sb3I6ICMwMDNiNWY7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG4gIC5jdXN0b21lci1hY2NvdW50IC5iYWNrLWxpbmsgYTpob3ZlciB7XG4gICAgY29sb3I6ICMxZjg2YmQ7IH1cblxuLmRhc2hib2FyZCAuYm94LWhlYWQge1xuICBtYXJnaW4tdG9wOiAzNXB4O1xuICBwYWRkaW5nLWJvdHRvbTogN3B4OyB9XG4gIC5kYXNoYm9hcmQgLmJveC1oZWFkIGgyIHtcbiAgICBmb250LXNpemU6IDIwcHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAuZGFzaGJvYXJkIC5ib3gtaGVhZCBhIHtcbiAgICBwYWRkaW5nOiAxMHB4OyB9XG5cbi5kYXNoYm9hcmQgLmJveC10aXRsZSBhLFxuLmRhc2hib2FyZCAuYm94LWhlYWQgYSxcbi5kYXNoYm9hcmQgLmJveC1jb250ZW50IGEsXG4uZGFzaGJvYXJkIC5iYWNrLWxpbmsgYSB7XG4gIGNvbG9yOiAjMDAzYjVmO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuICAuZGFzaGJvYXJkIC5ib3gtdGl0bGUgYTpob3ZlcixcbiAgLmRhc2hib2FyZCAuYm94LWhlYWQgYTpob3ZlcixcbiAgLmRhc2hib2FyZCAuYm94LWNvbnRlbnQgYTpob3ZlcixcbiAgLmRhc2hib2FyZCAuYmFjay1saW5rIGE6aG92ZXIge1xuICAgIGNvbG9yOiAjMWY4NmJkOyB9XG5cbi5kYXNoYm9hcmQgLmJveC1hY2NvdW50IHtcbiAgcGFkZGluZy1ib3R0b206IDQwcHg7XG4gIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQgIzAwM2I1ZjtcbiAgbWFyZ2luLWJvdHRvbTogNDVweDsgfVxuICAuZGFzaGJvYXJkIC5ib3gtYWNjb3VudCBwLFxuICAuZGFzaGJvYXJkIC5ib3gtYWNjb3VudCBhZGRyZXNzIHtcbiAgICBmb250LWZhbWlseTogQXJpYWwsIHNhbnMtc2VyaWY7IH1cblxuLmRhc2hib2FyZCAuY29sMi1zZXQgLmNvbC0xLFxuLmRhc2hib2FyZCAuY29sMi1zZXQgLmNvbC0yIHtcbiAgcGFkZGluZy1yaWdodDogMTIuMDk2NzclO1xuICBwYWRkaW5nLWJvdHRvbTogMDsgfVxuICAuZGFzaGJvYXJkIC5jb2wyLXNldCAuY29sLTEgLmJveC10aXRsZSxcbiAgLmRhc2hib2FyZCAuY29sMi1zZXQgLmNvbC0yIC5ib3gtdGl0bGUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTBweDsgfVxuICAgIC5kYXNoYm9hcmQgLmNvbDItc2V0IC5jb2wtMSAuYm94LXRpdGxlIGgyLFxuICAgIC5kYXNoYm9hcmQgLmNvbDItc2V0IC5jb2wtMSAuYm94LXRpdGxlIGgzLFxuICAgIC5kYXNoYm9hcmQgLmNvbDItc2V0IC5jb2wtMiAuYm94LXRpdGxlIGgyLFxuICAgIC5kYXNoYm9hcmQgLmNvbDItc2V0IC5jb2wtMiAuYm94LXRpdGxlIGgzIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICBmb250LWZhbWlseTogQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgICBmb250LXNpemU6IDE0cHg7IH1cbiAgICAuZGFzaGJvYXJkIC5jb2wyLXNldCAuY29sLTEgLmJveC10aXRsZSBhLFxuICAgIC5kYXNoYm9hcmQgLmNvbDItc2V0IC5jb2wtMiAuYm94LXRpdGxlIGEge1xuICAgICAgbGluZS1oZWlnaHQ6IDE5LjZweDsgfVxuXG4uZGFzaGJvYXJkIC5ib3gtcmV2aWV3cy5ib3gtYWNjb3VudCB7XG4gIHBhZGRpbmctYm90dG9tOiAwOyB9XG5cbi5kYXNoYm9hcmQgLmJveC1yZXZpZXdzIGxpIHtcbiAgcGFkZGluZzogMTBweCAwO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI0VERURFRDsgfVxuICAuZGFzaGJvYXJkIC5ib3gtcmV2aWV3cyBsaTpmaXJzdC1jaGlsZCB7XG4gICAgYm9yZGVyLXRvcDogMDsgfVxuICAuZGFzaGJvYXJkIC5ib3gtcmV2aWV3cyBsaSAubnVtYmVyIHtcbiAgICBtYXJnaW4tcmlnaHQ6IC0yMHB4O1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgZm9udC1zaXplOiAxM3B4OyB9XG4gIC5kYXNoYm9hcmQgLmJveC1yZXZpZXdzIGxpIC5kZXRhaWxzIHtcbiAgICBtYXJnaW4tbGVmdDogMjBweDsgfVxuICAgIC5kYXNoYm9hcmQgLmJveC1yZXZpZXdzIGxpIC5kZXRhaWxzIC5yYXRpbmdzIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICBjbGVhcjogYm90aDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgICAgIC5kYXNoYm9hcmQgLmJveC1yZXZpZXdzIGxpIC5kZXRhaWxzIC5yYXRpbmdzIHN0cm9uZyB7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBmb250LWZhbWlseTogXCJVYnVudHVUaXRsaW5nLUJvbGRcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBWZXJkYW5hLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDVweDsgfVxuICAgICAgLmRhc2hib2FyZCAuYm94LXJldmlld3MgbGkgLmRldGFpbHMgLnJhdGluZ3MgLnJhdGluZy1ib3gge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgbWFyZ2luOiAzcHggMCAwIDA7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogQWRkcmVzcyBCb29rXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLm15LWFjY291bnQgLmFkZHJlc3Nlcy1saXN0IHtcbiAgZm9udC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmOyB9XG4gIC5teS1hY2NvdW50IC5hZGRyZXNzZXMtbGlzdCAuY29sLTEsXG4gIC5teS1hY2NvdW50IC5hZGRyZXNzZXMtbGlzdCAuY29sLTIge1xuICAgIHBhZGRpbmctYm90dG9tOiAwOyB9XG4gIC5teS1hY2NvdW50IC5hZGRyZXNzZXMtbGlzdCAuaXRlbSB7XG4gICAgbWFyZ2luOiAwIDAgMzVweCAwOyB9XG4gICAgLm15LWFjY291bnQgLmFkZHJlc3Nlcy1saXN0IC5pdGVtIHAge1xuICAgICAgbWFyZ2luLXRvcDogMTBweDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc3MHB4KSB7XG4gICAgLm15LWFjY291bnQgLmFkZHJlc3Nlcy1saXN0IC5jb2wtMSxcbiAgICAubXktYWNjb3VudCAuYWRkcmVzc2VzLWxpc3QgLmNvbC0yIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgcGFkZGluZy1yaWdodDogMDsgfVxuICAgICAgLm15LWFjY291bnQgLmFkZHJlc3Nlcy1saXN0IC5jb2wtMSBsaS5lbXB0eSxcbiAgICAgIC5teS1hY2NvdW50IC5hZGRyZXNzZXMtbGlzdCAuY29sLTIgbGkuZW1wdHkge1xuICAgICAgICB3aWR0aDogMTAwJTsgfSB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgICAubXktYWNjb3VudCAuYWRkcmVzc2VzLWxpc3QgLmFkZHJlc3Nlcy1hZGRpdGlvbmFsIHAgYSB7XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOyB9IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogT3JkZXIgVmlld1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5vcmRlci1pbmZvIHtcbiAgcGFkZGluZy1ib3R0b206IDEwcHg7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjRURFREVEO1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMzVweDsgfVxuICAub3JkZXItaW5mbyBkdCxcbiAgLm9yZGVyLWluZm8gZGQsXG4gIC5vcmRlci1pbmZvIHVsLFxuICAub3JkZXItaW5mbyBsaSB7XG4gICAgZGlzcGxheTogaW5saW5lOyB9XG4gIC5vcmRlci1pbmZvIGR0IHtcbiAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7IH1cbiAgLm9yZGVyLWluZm8gbGkge1xuICAgIG1hcmdpbjogMCAwIDAgMjBweDsgfVxuICAgIC5vcmRlci1pbmZvIGxpLmN1cnJlbnQge1xuICAgICAgZm9udC13ZWlnaHQ6IDYwMDsgfVxuICAgIC5vcmRlci1pbmZvIGxpOmZpcnN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG5cbi5vcmRlci1kYXRlIHtcbiAgZm9udC1mYW1pbHk6IFwiVWJ1bnR1VGl0bGluZy1Cb2xkXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgVmVyZGFuYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cblxuLm9yZGVyLWluZm8tYm94IHtcbiAgbWFyZ2luLWJvdHRvbTogNDBweDtcbiAgbWFyZ2luLXRvcDogMjBweDsgfVxuICAub3JkZXItaW5mby1ib3ggKyAub3JkZXItaW5mby1ib3gge1xuICAgIHBhZGRpbmctYm90dG9tOiA0MHB4O1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjRURFREVEOyB9XG4gIC5vcmRlci1pbmZvLWJveCAuY29sLTEge1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgd2lkdGg6IDQ4JTsgfVxuICAub3JkZXItaW5mby1ib3ggLmNvbC0yIHtcbiAgICB3aWR0aDogNTIlOyB9XG4gIC5vcmRlci1pbmZvLWJveCAuY29sLTEsXG4gIC5vcmRlci1pbmZvLWJveCAuY29sLTIge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZy10b3A6IDA7XG4gICAgcGFkZGluZy1ib3R0b206IDA7IH1cbiAgLm9yZGVyLWluZm8tYm94IC5ib3gtdGl0bGUge1xuICAgIHdpZHRoOiAxNTBweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xuICAgIGZsb2F0OiBsZWZ0OyB9XG4gICAgLm9yZGVyLWluZm8tYm94IC5ib3gtdGl0bGUgaDIge1xuICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgZm9udC1mYW1pbHk6IFwiVWJ1bnR1VGl0bGluZy1Cb2xkXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgVmVyZGFuYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7IH1cbiAgICAgIC5vcmRlci1pbmZvLWJveCAuYm94LXRpdGxlIGgyOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJzonOyB9XG4gIC5vcmRlci1pbmZvLWJveCAuYm94LWNvbnRlbnQge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGZvbnQtZmFtaWx5OiBBcmlhbCwgc2Fucy1zZXJpZjsgfVxuICAgIC5vcmRlci1pbmZvLWJveCAuYm94LWNvbnRlbnQgdGQsXG4gICAgLm9yZGVyLWluZm8tYm94IC5ib3gtY29udGVudCB0aCB7XG4gICAgICBmb250LWZhbWlseTogQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgICBsaW5lLWhlaWdodDogMS4zOyB9XG4gICAgLm9yZGVyLWluZm8tYm94IC5ib3gtY29udGVudCB0aCB7XG4gICAgICBwYWRkaW5nLXRvcDogMTBweDsgfVxuICAgIC5vcmRlci1pbmZvLWJveCAuYm94LWNvbnRlbnQgdGQge1xuICAgICAgcGFkZGluZy1sZWZ0OiAxNXB4OyB9XG4gICAgLm9yZGVyLWluZm8tYm94IC5ib3gtY29udGVudCBzdHJvbmcge1xuICAgICAgZm9udC1mYW1pbHk6IFwiVWJ1bnR1VGl0bGluZy1Cb2xkXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgVmVyZGFuYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuXG4jbXktb3JkZXJzLXRhYmxlIC5vcHRpb24tbGFiZWwge1xuICBtYXJnaW4tbGVmdDogMTBweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgZm9udC1zdHlsZTogaXRhbGljOyB9XG5cbiNteS1vcmRlcnMtdGFibGUgLm9wdGlvbi12YWx1ZSB7XG4gIG1hcmdpbi1sZWZ0OiAyMHB4OyB9XG5cbiNteS1vcmRlcnMtdGFibGUgdHIuYnVuZGxlOm5vdCg6bGFzdC1jaGlsZCkgdGQge1xuICBib3JkZXItYm90dG9tOiBub25lO1xuICBib3JkZXItdG9wOiBub25lOyB9XG5cbm9sI2NhcnQtc2lkZWJhci1yZW9yZGVyIGxpIHtcbiAgbWFyZ2luLXRvcDogMTBweDtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICBvbCNjYXJ0LXNpZGViYXItcmVvcmRlciBsaSBpbnB1dCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAxMHB4OyB9XG5cbm9sI2NhcnQtc2lkZWJhci1yZW9yZGVyIHAucHJvZHVjdC1uYW1lIHtcbiAgZGlzcGxheTogaW5saW5lOyB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgI215LW9yZGVycy10YWJsZSAub3B0aW9uLWxhYmVsIHtcbiAgICBtYXJnaW4tbGVmdDogMjBweDsgfVxuICAjbXktb3JkZXJzLXRhYmxlIC5vcHRpb24tdmFsdWUge1xuICAgIG1hcmdpbi1sZWZ0OiAzNXB4OyB9XG4gICNteS1vcmRlcnMtdGFibGUgdGRbZGF0YS1yd2QtbGFiZWw9UXR5XSAubm9iciBiciB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAjbXktb3JkZXJzLXRhYmxlIHRkW2RhdGEtcndkLWxhYmVsPVF0eV0gLm5vYnIgc3Ryb25nIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7IH1cbiAgI215LW9yZGVycy10YWJsZSB0ci5idW5kbGUge1xuICAgIGJvcmRlci1jb2xvcjogI0VERURFRDsgfVxuICAjbXktb3JkZXJzLXRhYmxlIHRyLmJ1bmRsZS5jaGlsZCB0ZFtkYXRhLXJ3ZC1sYWJlbF0ge1xuICAgIHBhZGRpbmctbGVmdDogNjBweDsgfVxuICAjbXktb3JkZXJzLXRhYmxlIHRib2R5Omxhc3QtY2hpbGQgdHI6bGFzdC1jaGlsZCB0ZCB7XG4gICAgcGFkZGluZy1ib3R0b206IDEwcHg7XG4gICAgYm9yZGVyLWJvdHRvbTogMDsgfVxuICAgICNteS1vcmRlcnMtdGFibGUgdGJvZHk6bGFzdC1jaGlsZCB0cjpsYXN0LWNoaWxkIHRkOmxhc3QtY2hpbGQge1xuICAgICAgcGFkZGluZy1ib3R0b206IDE1cHg7IH1cbiAgI215LW9yZGVycy10YWJsZSB0Zm9vdCB0ci5zaGlwcGluZyB7XG4gICAgbWFyZ2luLXRvcDogMDsgfSB9XG5cbi5vcmRlci1hZGRpdGlvbmFsIHtcbiAgbWFyZ2luOiA0MHB4IDA7IH1cblxuLm9yZGVyLWdpZnQtbWVzc2FnZSBkZCB7XG4gIG1hcmdpbi10b3A6IDEwcHg7IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTk5cHgpIHtcbiAgLmRhc2hib2FyZCAuY29sMi1zZXQgLmNvbC0xLFxuICAuZGFzaGJvYXJkIC5jb2wyLXNldCAuY29sLTIge1xuICAgIHBhZGRpbmctcmlnaHQ6IDM1cHg7XG4gICAgcGFkZGluZy1ib3R0b206IDA7IH1cbiAgYm9keS5jdXN0b21lci1hY2NvdW50IC5kYXRhLXRhYmxlIHRkLnZpZXcgYSB7XG4gICAgd2hpdGUtc3BhY2U6IG5vcm1hbDsgfSB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTc5cHgpIHtcbiAgYm9keS5jdXN0b21lci1hY2NvdW50IC5teS1hY2NvdW50IC50aXRsZS1idXR0b25zIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gICAgYm9keS5jdXN0b21lci1hY2NvdW50IC5teS1hY2NvdW50IC50aXRsZS1idXR0b25zIHNwYW4uc2VwYXJhdG9yLFxuICAgIGJvZHkuY3VzdG9tZXItYWNjb3VudCAubXktYWNjb3VudCAudGl0bGUtYnV0dG9ucyBhIHtcbiAgICAgIHRvcDogLTEycHg7IH0gfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc3MHB4KSB7XG4gIGJvZHkuY3VzdG9tZXItYWNjb3VudCAuZGF0YS10YWJsZS5vcmRlcnMgdGguc2hpcCxcbiAgYm9keS5jdXN0b21lci1hY2NvdW50IC5kYXRhLXRhYmxlLm9yZGVycyB0ZC5zaGlwLFxuICBib2R5LmN1c3RvbWVyLWFjY291bnQgLmRhdGEtdGFibGUub3JkZXJzIHRkLnN0YXR1cyxcbiAgYm9keS5jdXN0b21lci1hY2NvdW50IC5kYXRhLXRhYmxlLm9yZGVycyB0aC5zdGF0dXMge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLm9yZGVyLWluZm8tYm94IC5ib3gtY29udGVudCB7XG4gICAgY2xlYXI6IGxlZnQ7IH1cbiAgLmFkZHJlc3Nlcy1saXN0IC5pdGVtIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogNTAlO1xuICAgIHBhZGRpbmctcmlnaHQ6IDM1cHg7IH1cbiAgLm9yZGVyLWluZm8gZHQge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmRhc2hib2FyZCAucGFnZS10aXRsZSB7XG4gICAgbWFyZ2luLXRvcDogMjBweDsgfVxuICAgIC5kYXNoYm9hcmQgLnBhZ2UtdGl0bGUgaDEge1xuICAgICAgbWFyZ2luLXRvcDogMDsgfVxuICAuZGFzaGJvYXJkIC53ZWxjb21lLW1zZyB7XG4gICAgZm9udC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmOyB9XG4gICAgLmRhc2hib2FyZCAud2VsY29tZS1tc2cgLmhlbGxvIHtcbiAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsgfVxuICAuZGFzaGJvYXJkIC5ib3gtYWNjb3VudCB7XG4gICAgcGFkZGluZy1ib3R0b206IDE1cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMzVweDsgfVxuICAuZGFzaGJvYXJkIC5jb2wyLXNldCAuY29sLTEsXG4gIC5kYXNoYm9hcmQgLmNvbDItc2V0IC5jb2wtMiB7XG4gICAgd2lkdGg6IDQ4JTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIHBhZGRpbmctbGVmdDogMDsgfVxuICAuZGFzaGJvYXJkIC5jb2wyLXNldCAuY29sLTEge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbi1yaWdodDogNCU7IH1cbiAgLmRhc2hib2FyZCAuY29sMi1zZXQgLmNvbC0yIHtcbiAgICBmbG9hdDogcmlnaHQ7IH0gfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gIGJvZHkuY3VzdG9tZXItYWNjb3VudCAubXktYWNjb3VudCAuZm9ybS1saXN0IC5jb250cm9sIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7IH0gfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ3OXB4KSB7XG4gIGJvZHkuY3VzdG9tZXItYWNjb3VudCAubXktYWNjb3VudCAucGFnZS10aXRsZSBoMSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIGJvZHkuY3VzdG9tZXItYWNjb3VudCAubXktYWNjb3VudCAudGl0bGUtYnV0dG9ucyB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gICAgYm9keS5jdXN0b21lci1hY2NvdW50IC5teS1hY2NvdW50IC50aXRsZS1idXR0b25zIC5idXR0b24ge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMTVweDsgfVxuICAgICAgYm9keS5jdXN0b21lci1hY2NvdW50IC5teS1hY2NvdW50IC50aXRsZS1idXR0b25zIC5idXR0b24gKyAuYnV0dG9uIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDBweDsgfVxuICBib2R5LmN1c3RvbWVyLWFjY291bnQgLm15LWFjY291bnQgLmZpZWxkc2V0IGgyIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxNXB4OyB9XG4gIGJvZHkuY3VzdG9tZXItYWNjb3VudCAubXktYWNjb3VudCAub3JkZXItZGV0YWlscyBoMiB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTVweDsgfVxuICBib2R5LmN1c3RvbWVyLWFjY291bnQgLm15LWFjY291bnQgLmJ1dHRvbnMtc2V0IHtcbiAgICBib3JkZXItdG9wOiAwOyB9XG4gIGJvZHkuY3VzdG9tZXItYWNjb3VudCAubXktYWNjb3VudCAuYWRkcmVzc2VzLWxpc3QgLml0ZW0ge1xuICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgICBmbG9hdDogbm9uZTtcbiAgICB3aWR0aDogYXV0bzsgfVxuICBib2R5LmN1c3RvbWVyLWFjY291bnQgLm15LWFjY291bnQgLmFkZHJlc3Nlcy1saXN0IGgyIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxNXB4OyB9XG4gIC5vcmRlci1pbmZvIHtcbiAgICBtYXJnaW4tdG9wOiAxNXB4OyB9XG4gIC5kYXRhLXRhYmxlLm9yZGVycyAubGluay1yZW9yZGVyLFxuICAuZGF0YS10YWJsZS5vcmRlcnMgLmRhdGUge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmRhdGEtdGFibGUub3JkZXJzIHRkLnZpZXcge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9XG4gIC5kYXNoYm9hcmQgLmNvbDItc2V0IC5jb2wtMSxcbiAgLmRhc2hib2FyZCAuY29sMi1zZXQgLmNvbC0yIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tdG9wOiAxNXB4OyB9XG4gIC5vcmRlci1pbmZvLWJveCB7XG4gICAgbWFyZ2luOiAwOyB9XG4gICAgLm9yZGVyLWluZm8tYm94IC5jb2wtMSxcbiAgICAub3JkZXItaW5mby1ib3ggLmNvbC0yIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNFREVERUQ7XG4gICAgICBwYWRkaW5nOiAxNXB4IDA7IH1cbiAgICAub3JkZXItaW5mby1ib3ggKyAub3JkZXItaW5mby1ib3gge1xuICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMzVweDsgfVxuICAjbXktcmV2aWV3cy10YWJsZSAubm9iciB7XG4gICAgd2hpdGUtc3BhY2U6IG5vcm1hbDsgfSB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIE5ld3NsZXR0ZXIgU3Vic2NyaXB0aW9uc1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbmJvZHkubmV3c2xldHRlci1tYW5hZ2UtaW5kZXggLm15LWFjY291bnQgLmZpZWxkc2V0IHtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDsgfVxuXG5ib2R5Lm5ld3NsZXR0ZXItbWFuYWdlLWluZGV4IC5teS1hY2NvdW50IC5maWVsZHNldCBoMiB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuYm9keS5uZXdzbGV0dGVyLW1hbmFnZS1pbmRleCAubXktYWNjb3VudCAuZm9ybS1saXN0IHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNFREVERUQ7XG4gIHBhZGRpbmctdG9wOiAxMHB4OyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIENvbnRhY3RzXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLmNvbnRhY3RzLWluZGV4LWluZGV4IC5idXR0b25zLXNldCB7XG4gIG1hcmdpbi1sZWZ0OiAzNXB4O1xuICBtYXgtd2lkdGg6IDQzNXB4OyB9XG4gIC5jb250YWN0cy1pbmRleC1pbmRleCAuYnV0dG9ucy1zZXQgcC5yZXF1aXJlZCB7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAgIC5jb250YWN0cy1pbmRleC1pbmRleCAuYnV0dG9ucy1zZXQge1xuICAgICAgbWF4LXdpZHRoOiAzMzBweDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG4gICAgICAuY29udGFjdHMtaW5kZXgtaW5kZXggLmJ1dHRvbnMtc2V0IGJ1dHRvbiB7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBtYXJnaW4tbGVmdDogMHB4OyB9XG4gICAgICAuY29udGFjdHMtaW5kZXgtaW5kZXggLmJ1dHRvbnMtc2V0IHAucmVxdWlyZWQge1xuICAgICAgICBmbG9hdDogcmlnaHQ7IH0gfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBQYXlQYWxcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg3MHB4KSBhbmQgKG1pbi13aWR0aDogNzcxcHgpIHtcbiAgLnBheXBhbC1yZXZpZXctb3JkZXIgLmNvbDItc2V0IC5jb2wtMSxcbiAgLnBheXBhbC1yZXZpZXctb3JkZXIgLmNvbDItc2V0IC5jb2wtMiB7XG4gICAgcGFkZGluZzogMHB4OyB9IH1cblxuLnBheXBhbC1yZXZpZXctb3JkZXIgLmluZm8tc2V0IHtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgcGFkZGluZy1ib3R0b206IDEwcHg7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjRURFREVEOyB9XG5cbi5wYXlwYWwtcmV2aWV3LW9yZGVyIC5idXR0b25zLXNldCB7XG4gIG1hcmdpbi10b3A6IDBweDtcbiAgcGFkZGluZy10b3A6IDBweDtcbiAgYm9yZGVyOiAwOyB9XG4gIC5wYXlwYWwtcmV2aWV3LW9yZGVyIC5idXR0b25zLXNldCBidXR0b24ge1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NzBweCkge1xuICAucGF5cGFsLXJldmlldy1vcmRlciAuY29sLTEge1xuICAgIHBhZGRpbmctYm90dG9tOiAwOyB9XG4gIC5wYXlwYWwtcmV2aWV3LW9yZGVyIC5maWVsZC5pbmFjdGl2ZSB7XG4gICAgZGlzcGxheTogbm9uZTsgfSB9XG5cbi50b3AtY29udGFpbmVyIC5ibWwtYWQge1xuICBtYXJnaW4tdG9wOiA3cHg7XG4gIG1hcmdpbi1ib3R0b206IDdweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIC50b3AtY29udGFpbmVyIC5ibWwtYWQgc3BhbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG4gICAgLnRvcC1jb250YWluZXIgLmJtbC1hZCBzcGFuIGEge1xuICAgICAgZGlzcGxheTogYmxvY2s7IH1cblxuLmJtbC1hZCB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luLWJvdHRvbTogNXB4OyB9XG4gIC5ibWwtYWQgc3BhbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbGluZS1oZWlnaHQ6IDA7IH1cbiAgLmJtbC1hZCBhIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWF4LXdpZHRoOiAxMDAlOyB9XG4gIC5ibWwtYWQgYTpob3ZlciB7XG4gICAgb3BhY2l0eTogMC43OyB9XG4gIC5ibWwtYWQgaW1nIHtcbiAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICBtYXgtd2lkdGg6IDEwMCU7IH1cblxuLmNhcnQtdG90YWxzLXdyYXBwZXIgLmJtbC1hZC5sYXJnZSBpbWcge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAwOyB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzcwcHgpIHtcbiAgLmJtbC1hZC5zbWFsbCB7XG4gICAgZGlzcGxheTogYmxvY2s7IH0gfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc3MXB4KSB7XG4gIC5ibWwtYWQubGFyZ2Uge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9IH1cblxuZGl2LnBheXBhbC1sb2dvIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW46IDE1cHggMDtcbiAgbWF4LXdpZHRoOiAxMDAlOyB9XG4gIGRpdi5wYXlwYWwtbG9nbyBzcGFuIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTsgfVxuICAgIGRpdi5wYXlwYWwtbG9nbyBzcGFuIGEge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbWF4LXdpZHRoOiAxMDAlOyB9XG4gICAgICBkaXYucGF5cGFsLWxvZ28gc3BhbiBhIGltZyB7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTsgfVxuICBkaXYucGF5cGFsLWxvZ28gc3BhbiA+IGltZyB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuXG4uY2hlY2tvdXQtdHlwZXMgZGl2LnBheXBhbC1sb2dvIHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cblxuLmJtbC1jaGVja291dC10eXBlIHtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lOyB9XG5cbi5zaWRlYmFyIC5wYXlwYWwtbG9nbyB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbGluZS1oZWlnaHQ6IDA7IH1cbiAgLnNpZGViYXIgLnBheXBhbC1sb2dvID4gYSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1heC13aWR0aDogMTAwJTsgfVxuICAgIC5zaWRlYmFyIC5wYXlwYWwtbG9nbyA+IGE6aG92ZXIge1xuICAgICAgb3BhY2l0eTogMC44OyB9XG4gICAgLnNpZGViYXIgLnBheXBhbC1sb2dvID4gYSBpbWcge1xuICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgLnNpZGViYXIgLnBheXBhbC1sb2dvIC5sYWJlbCB7XG4gICAgbWFyZ2luLXRvcDogNHB4OyB9XG4gICAgLnNpZGViYXIgLnBheXBhbC1sb2dvIC5sYWJlbCBhIHtcbiAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogUmV2aWV3IC0gQ3VzdG9tZXJcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4jY3VzdG9tZXItcmV2aWV3cyB7XG4gIHdpZHRoOiBhdXRvO1xuICBmbG9hdDogbm9uZTsgfVxuICAjY3VzdG9tZXItcmV2aWV3cyAucmV2aWV3LWhlYWRpbmcge1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjQ0NDQ0NDO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjQ0NDQ0NDO1xuICAgIHBhZGRpbmc6IDEwcHggMCA1cHg7IH1cbiAgICAjY3VzdG9tZXItcmV2aWV3cyAucmV2aWV3LWhlYWRpbmc6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgI2N1c3RvbWVyLXJldmlld3MgLnJldmlldy1oZWFkaW5nIGgyIHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAjY3VzdG9tZXItcmV2aWV3cyAucmV2aWV3LWhlYWRpbmcgLnBhZ2VyIHtcbiAgICAgIGNsZWFyOiBub25lO1xuICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgd2lkdGg6IGF1dG87IH1cbiAgICAgICNjdXN0b21lci1yZXZpZXdzIC5yZXZpZXctaGVhZGluZyAucGFnZXIgLmNvdW50LWNvbnRhaW5lciAubGltaXRlciB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgICAgICAgI2N1c3RvbWVyLXJldmlld3MgLnJldmlldy1oZWFkaW5nIC5wYWdlciAuY291bnQtY29udGFpbmVyIC5saW1pdGVyIGxhYmVsIHtcbiAgICAgICAgICBmb250LWZhbWlseTogXCJVYnVudHVUaXRsaW5nLUJvbGRcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBWZXJkYW5hLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgICAgICAgICBmb250LXNpemU6IDEwcHg7XG4gICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuICAgICAgI2N1c3RvbWVyLXJldmlld3MgLnJldmlldy1oZWFkaW5nIC5wYWdlciAuYW1vdW50IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAjY3VzdG9tZXItcmV2aWV3cyBoMiB7XG4gICAgY29sb3I6ICMxZjg2YmQ7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cbiAgICAjY3VzdG9tZXItcmV2aWV3cyBoMiBzcGFuIHtcbiAgICAgIGNvbG9yOiAjMDAzYjVmOyB9XG4gICNjdXN0b21lci1yZXZpZXdzIGgzIHtcbiAgICBmb250LWZhbWlseTogXCJVYnVudHVUaXRsaW5nLUJvbGRcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBWZXJkYW5hLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG4gICAgI2N1c3RvbWVyLXJldmlld3MgaDMgc3BhbiB7XG4gICAgICBjb2xvcjogIzFmODZiZDsgfVxuICAjY3VzdG9tZXItcmV2aWV3cyAuZmllbGRzZXQge1xuICAgIHBhZGRpbmctdG9wOiAyNXB4O1xuICAgIHdpZHRoOiA0NzBweDsgfVxuICAgICNjdXN0b21lci1yZXZpZXdzIC5maWVsZHNldCBoNCB7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0NDQ0NDQztcbiAgICAgIGZvbnQtZmFtaWx5OiBcIlVidW50dVRpdGxpbmctQm9sZFwiLCBcIkhlbHZldGljYSBOZXVlXCIsIFZlcmRhbmEsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiA1cHg7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG4gICAgICAjY3VzdG9tZXItcmV2aWV3cyAuZmllbGRzZXQgaDQgZW0ge1xuICAgICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgI2N1c3RvbWVyLXJldmlld3MgLmZpZWxkc2V0IC5mb3JtLWxpc3Qge1xuICAgICAgZm9udC1mYW1pbHk6IFwiVWJ1bnR1VGl0bGluZy1Cb2xkXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgVmVyZGFuYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgbWFyZ2luOiAxMHB4IDA7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgd2lkdGg6IDQ3MHB4OyB9XG4gICAgICAjY3VzdG9tZXItcmV2aWV3cyAuZmllbGRzZXQgLmZvcm0tbGlzdCAuaW5saW5lLWxhYmVsOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgICAgICBjbGVhcjogYm90aDsgfVxuICAgICAgI2N1c3RvbWVyLXJldmlld3MgLmZpZWxkc2V0IC5mb3JtLWxpc3QgbGFiZWwge1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7IH1cbiAgICAgICNjdXN0b21lci1yZXZpZXdzIC5maWVsZHNldCAuZm9ybS1saXN0IHRleHRhcmVhIHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI0NDQ0NDQztcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgbWluLXdpZHRoOiAxMDAlO1xuICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7IH1cbiAgICAgICNjdXN0b21lci1yZXZpZXdzIC5maWVsZHNldCAuZm9ybS1saXN0IGlucHV0IHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI0NDQ0NDQztcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDsgfVxuICAgICAgICAjY3VzdG9tZXItcmV2aWV3cyAuZmllbGRzZXQgLmZvcm0tbGlzdCBpbnB1dFt0eXBlPVwidGV4dFwiXSB7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgI2N1c3RvbWVyLXJldmlld3MgLmJ1dHRvbnMtc2V0IHtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgbWFyZ2luOiAwO1xuICAgIHdpZHRoOiA0NzBweDsgfVxuICAjY3VzdG9tZXItcmV2aWV3cyBkbCB7XG4gICAgZm9udC1mYW1pbHk6IFwiVWJ1bnR1VGl0bGluZy1Cb2xkXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgVmVyZGFuYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDsgfVxuICAgICNjdXN0b21lci1yZXZpZXdzIGRsIGR0IHtcbiAgICAgIG1hcmdpbjogMTBweCAwO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuICAgICNjdXN0b21lci1yZXZpZXdzIGRsIGRkIHtcbiAgICAgIGZvbnQtZmFtaWx5OiBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgIG1hcmdpbjogMTBweCAwOyB9XG4gICAgICAjY3VzdG9tZXItcmV2aWV3cyBkbCBkZCAucmF0aW5ncy10YWJsZSB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBcIlVidW50dVRpdGxpbmctQm9sZFwiLCBcIkhlbHZldGljYSBOZXVlXCIsIFZlcmRhbmEsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgICAgICNjdXN0b21lci1yZXZpZXdzIGRsIGRkIC5yYXRpbmdzLXRhYmxlIHRyIHtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDE1cHg7IH1cbiAgICAgICAgI2N1c3RvbWVyLXJldmlld3MgZGwgZGQgLnJhdGluZ3MtdGFibGUgLnJldmlldy1sYWJlbCB7XG4gICAgICAgICAgd2lkdGg6IDMwMHB4O1xuICAgICAgICAgIG1heC13aWR0aDogNzAlOyB9XG4gICAgICAjY3VzdG9tZXItcmV2aWV3cyBkbCBkZCB0YWJsZSB7XG4gICAgICAgIG1hcmdpbjogMTVweCAwOyB9XG4gICAgICAjY3VzdG9tZXItcmV2aWV3cyBkbCBkZCAucmV2aWV3LW1ldGEge1xuICAgICAgICBjb2xvcjogIzFmODZiZDtcbiAgICAgICAgZm9udC1mYW1pbHk6IFwiVWJ1bnR1VGl0bGluZy1Cb2xkXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgVmVyZGFuYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuXG4ucmV2aWV3LXN1bW1hcnktdGFibGUge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0NDQ0NDQztcbiAgbWFyZ2luOiAwIDAgMTBweDsgfVxuICAucmV2aWV3LXN1bW1hcnktdGFibGUgdGhlYWQge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyB9XG4gICAgLnJldmlldy1zdW1tYXJ5LXRhYmxlIHRoZWFkIHRoIHtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgcGFkZGluZzogMTVweCA3cHggMTBweCA4cHg7IH1cbiAgLnJldmlldy1zdW1tYXJ5LXRhYmxlIHRib2R5IHRoIHtcbiAgICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xuICAgIGZvbnQtc2l6ZTogMTJweDsgfVxuICAucmV2aWV3LXN1bW1hcnktdGFibGUgdGJvZHkgdGQge1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcGFkZGluZzogMDsgfVxuICAgIC5yZXZpZXctc3VtbWFyeS10YWJsZSB0Ym9keSB0ZCBsYWJlbCB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgcGFkZGluZzogMTFweCAwOyB9XG4gIC5yZXZpZXctc3VtbWFyeS10YWJsZSAucmF0aW5nLWJveCAucmF0aW5nLW51bWJlciB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5yZXZpZXctc3VtbWFyeS10YWJsZSAucmF0aW5nLWJveCAucmF0aW5nLW51bWJlcjphZnRlciB7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC01OTlweDtcbiAgICAgIHdpZHRoOiAxM3B4O1xuICAgICAgaGVpZ2h0OiAxNHB4O1xuICAgICAgbWFyZ2luLWxlZnQ6IDVweDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHRvcDogMnB4OyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIFJhdGluZ3MgLSBHbG9iYWxcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4ucmF0aW5ncy10YWJsZSB7XG4gIGZvbnQtZmFtaWx5OiBcIlVidW50dVRpdGxpbmctQm9sZFwiLCBcIkhlbHZldGljYSBOZXVlXCIsIFZlcmRhbmEsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEycHg7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cbiAgLnJhdGluZ3MtdGFibGUgdGgge1xuICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7IH1cbiAgLnJhdGluZ3MtdGFibGUgLnJhdGluZy1ib3gge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAgLTYxNXB4O1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcbiAgICBoZWlnaHQ6IDEzcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LWluZGVudDogLTk5OTlweDtcbiAgICB3aWR0aDogNjVweDsgfVxuICAgIC5yYXRpbmdzLXRhYmxlIC5yYXRpbmctYm94IC5yYXRpbmcge1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtNjAwcHg7XG4gICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIGhlaWdodDogMTNweDtcbiAgICAgIHRleHQtaW5kZW50OiAtOTk5OXB4OyB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzcwcHgpIHtcbiAgYm9keS5yZXZpZXctcHJvZHVjdC1saXN0IC5wcm9kdWN0LXZpZXcgLnByb2R1Y3Qtc2hvcCAucHJpY2UtaW5mbyB7XG4gICAgcGFkZGluZy1sZWZ0OiAwOyB9XG4gIGJvZHkucmV2aWV3LXByb2R1Y3QtbGlzdCAucHJvZHVjdC12aWV3IC5wcm9kdWN0LXNob3AgLmV4dHJhLWluZm8ge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWluLXdpZHRoOiA4NCU7IH1cbiAgICBib2R5LnJldmlldy1wcm9kdWN0LWxpc3QgLnByb2R1Y3QtdmlldyAucHJvZHVjdC1zaG9wIC5leHRyYS1pbmZvIC5yYXRpbmdzLXRhYmxlIHtcbiAgICAgIG1hcmdpbjogMTBweCAwO1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgICAgIGJvZHkucmV2aWV3LXByb2R1Y3QtbGlzdCAucHJvZHVjdC12aWV3IC5wcm9kdWN0LXNob3AgLmV4dHJhLWluZm8gLnJhdGluZ3MtdGFibGUgdHIge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDE1cHg7IH0gfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDUzNXB4KSB7XG4gIGJvZHkucmV2aWV3LXByb2R1Y3QtbGlzdCAucHJvZHVjdC12aWV3IC5wcm9kdWN0LXNob3AgLmV4dHJhLWluZm8ge1xuICAgIG1pbi13aWR0aDogMDsgfVxuICAgIGJvZHkucmV2aWV3LXByb2R1Y3QtbGlzdCAucHJvZHVjdC12aWV3IC5wcm9kdWN0LXNob3AgLmV4dHJhLWluZm8gLnJhdGluZ3MtdGFibGUgdHIge1xuICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7IH0gfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDUyMHB4KSB7XG4gICNjdXN0b21lci1yZXZpZXdzIC5maWVsZHNldCB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgICAjY3VzdG9tZXItcmV2aWV3cyAuZmllbGRzZXQgLmZvcm0tbGlzdCB7XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAgICAgI2N1c3RvbWVyLXJldmlld3MgLmZpZWxkc2V0IC5mb3JtLWxpc3QgLmlubGluZS1sYWJlbCBsYWJlbCxcbiAgICAgICNjdXN0b21lci1yZXZpZXdzIC5maWVsZHNldCAuZm9ybS1saXN0IC5pbmxpbmUtbGFiZWwgLmlucHV0LWJveCB7XG4gICAgICAgIGZsb2F0OiBub25lOyB9XG4gICNjdXN0b21lci1yZXZpZXdzIC5idXR0b25zLXNldCB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgI2N1c3RvbWVyLXJldmlld3MgLnJldmlldy1zdW1tYXJ5LXRhYmxlIHRoZWFkIHRoIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDBweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwcHg7IH1cbiAgI2N1c3RvbWVyLXJldmlld3MgLnJldmlldy1zdW1tYXJ5LXRhYmxlIHRib2R5IHRoIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDBweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwcHg7IH1cbiAgI2N1c3RvbWVyLXJldmlld3MgLnJldmlldy1zdW1tYXJ5LXRhYmxlIHRib2R5IHRkIHtcbiAgICB3aWR0aDogMjAlO1xuICAgIHBhZGRpbmc6IDBweDsgfVxuICAjY3VzdG9tZXItcmV2aWV3cyAucmV2aWV3LXN1bW1hcnktdGFibGUgLnJhdGluZy1ib3gge1xuICAgIHRleHQtaW5kZW50OiAwcHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgaGVpZ2h0OiAxOS42cHg7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgICAjY3VzdG9tZXItcmV2aWV3cyAucmV2aWV3LXN1bW1hcnktdGFibGUgLnJhdGluZy1ib3ggLnJhdGluZyB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgI2N1c3RvbWVyLXJldmlld3MgLnJldmlldy1zdW1tYXJ5LXRhYmxlIC5yYXRpbmctYm94IC5yYXRpbmctbnVtYmVyIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfSB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDUwcHgpIHtcbiAgI2N1c3RvbWVyLXJldmlld3MgZGwgZGQgLnJhdGluZ3MtdGFibGUgdHIge1xuICAgIGZsb2F0OiBub25lOyB9IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogUmV2aWV3IFZpZXcgUGFnZVxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5yZXZpZXctcHJvZHVjdC12aWV3IC5wcm9kdWN0LXJldmlldyAucHJvZHVjdC1kZXRhaWxzIGgyIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTsgfVxuXG4ucmV2aWV3LXByb2R1Y3QtdmlldyAucHJvZHVjdC1yZXZpZXcgLnByb2R1Y3QtaW1nLWJveCB7XG4gIHdpZHRoOiBhdXRvO1xuICBtYXgtd2lkdGg6IDUwJTsgfVxuICAucmV2aWV3LXByb2R1Y3QtdmlldyAucHJvZHVjdC1yZXZpZXcgLnByb2R1Y3QtaW1nLWJveCA+IGEge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIC5yZXZpZXctcHJvZHVjdC12aWV3IC5wcm9kdWN0LXJldmlldyAucHJvZHVjdC1pbWctYm94IC5wcm9kdWN0LWltYWdlIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc3MHB4KSB7XG4gIC5yZXZpZXctcHJvZHVjdC12aWV3IC5wcm9kdWN0LXJldmlldyAucHJvZHVjdC1pbWctYm94IHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7IH0gfVxuXG4vKiBTbGlkZXIgKi9cbi5zbGljay1zbGlkZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAtd2Via2l0LXRvdWNoLWNhbGxvdXQ6IG5vbmU7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1raHRtbC11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1zLXRvdWNoLWFjdGlvbjogcGFuLXk7XG4gIHRvdWNoLWFjdGlvbjogcGFuLXk7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgLjNzIGVhc2Utb3V0OyB9XG4gIC5zbGljay1zbGlkZXIuc2xpY2staW5pdGlhbGl6ZWQge1xuICAgIG9wYWNpdHk6IDE7IH1cblxuLnNsaWNrLWxpc3Qge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7IH1cbiAgLnNsaWNrLWxpc3Q6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7IH1cbiAgLnNsaWNrLWxpc3QuZHJhZ2dpbmcge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBjdXJzb3I6IGhhbmQ7IH1cblxuLnNsaWNrLXNsaWRlciAuc2xpY2stdHJhY2ssIC5zbGljay1zbGlkZXIgLnNsaWNrLWxpc3Qge1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7IH1cblxuLnNsaWNrLXRyYWNrIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC5zbGljay10cmFjazpiZWZvcmUsIC5zbGljay10cmFjazphZnRlciB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBkaXNwbGF5OiB0YWJsZTsgfVxuICAuc2xpY2stdHJhY2s6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIC5zbGljay1sb2FkaW5nIC5zbGljay10cmFjayB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbi5zbGljay1zbGlkZSB7XG4gIGZsb2F0OiBsZWZ0O1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4taGVpZ2h0OiAxcHg7XG4gIGRpc3BsYXk6IG5vbmU7IH1cbiAgW2Rpcj1cInJ0bFwiXSAuc2xpY2stc2xpZGUge1xuICAgIGZsb2F0OiByaWdodDsgfVxuICAuc2xpY2stc2xpZGUgaW1nIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTsgfVxuICAuc2xpY2stc2xpZGUuc2xpY2stbG9hZGluZyBpbWcge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLnNsaWNrLXNsaWRlLmRyYWdnaW5nIGltZyB7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cbiAgLnNsaWNrLWluaXRpYWxpemVkIC5zbGljay1zbGlkZSB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgLnNsaWNrLWxvYWRpbmcgLnNsaWNrLXNsaWRlIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47IH1cbiAgLnNsaWNrLXZlcnRpY2FsIC5zbGljay1zbGlkZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OyB9XG5cbi5zbGljay1hcnJvdy5zbGljay1oaWRkZW4ge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5zbGljay1wcmV2LCAuc2xpY2stbmV4dCB7XG4gIGJhY2tncm91bmQ6ICMwMDNiNWY7XG4gIHdpZHRoOiAzNHB4O1xuICBoZWlnaHQ6IDM0cHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHBhZGRpbmc6IDlweCAwO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbWFyZ2luLXRvcDogLTE3cHg7XG4gIGxlZnQ6IC00MHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgLnNsaWNrLXByZXYgaW1nLCAuc2xpY2stbmV4dCBpbWcge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tbGVmdDogLTJweDsgfVxuXG4uc2xpY2stbmV4dCB7XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiAtNDBweDsgfVxuICAuc2xpY2stbmV4dCBpbWcge1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogLTJweDsgfVxuXG4uc2xpY2stZG90cyB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAuc2xpY2stZG90cyBidXR0b24ge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLnNsaWNrLWRvdHMgbGkge1xuICAgIHdpZHRoOiAxNnB4O1xuICAgIGhlaWdodDogMTZweDtcbiAgICBiYWNrZ3JvdW5kOiAjYjZiNmI2O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbjogMCA3cHg7XG4gICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi10b3A6IDIwcHg7IH1cbiAgICAuc2xpY2stZG90cyBsaS5zbGljay1hY3RpdmUge1xuICAgICAgYmFja2dyb3VuZDogIzFmODZiZDsgfVxuXG4uc2xpY2stc2xpZGUge1xuICBvdXRsaW5lOiBub25lOyB9XG5cbi53b3JkcHJlc3MtbGF5b3V0LWZ1bGxzY3JlZW4gLmZ1bGxzY3JlZW4tc2xpZGVyIHtcbiAgcGFkZGluZy10b3A6IDFweDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogOTB2aDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW4tYm90dG9tOiAyMHB4OyB9XG4gIC53b3JkcHJlc3MtbGF5b3V0LWZ1bGxzY3JlZW4gLmZ1bGxzY3JlZW4tc2xpZGVyIC5zbGljay1saXN0IHtcbiAgICBoZWlnaHQ6IDEwMCU7IH1cbiAgICAud29yZHByZXNzLWxheW91dC1mdWxsc2NyZWVuIC5mdWxsc2NyZWVuLXNsaWRlciAuc2xpY2stbGlzdCAuc2xpY2stdHJhY2sge1xuICAgICAgaGVpZ2h0OiAxMDAlOyB9XG4gIC53b3JkcHJlc3MtbGF5b3V0LWZ1bGxzY3JlZW4gLmZ1bGxzY3JlZW4tc2xpZGVyIC5zbGljay1uZXh0IHtcbiAgICByaWdodDogNDBweDtcbiAgICBsZWZ0OiBhdXRvO1xuICAgIHotaW5kZXg6IDEwOyB9XG4gIC53b3JkcHJlc3MtbGF5b3V0LWZ1bGxzY3JlZW4gLmZ1bGxzY3JlZW4tc2xpZGVyIC5zbGljay1wcmV2IHtcbiAgICBsZWZ0OiA0MHB4O1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIHotaW5kZXg6IDEwOyB9XG4gIC53b3JkcHJlc3MtbGF5b3V0LWZ1bGxzY3JlZW4gLmZ1bGxzY3JlZW4tc2xpZGVyIC5zbGljay1kb3RzIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAzNXB4O1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgLndvcmRwcmVzcy1sYXlvdXQtZnVsbHNjcmVlbiAuZnVsbHNjcmVlbi1zbGlkZXIgLnNsaWNrLWRvdHMgbGkge1xuICAgICAgYmFja2dyb3VuZDogd2hpdGU7IH1cbiAgICAgIC53b3JkcHJlc3MtbGF5b3V0LWZ1bGxzY3JlZW4gLmZ1bGxzY3JlZW4tc2xpZGVyIC5zbGljay1kb3RzIGxpLnNsaWNrLWFjdGl2ZSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICMxZjg2YmQ7IH1cbiAgLndvcmRwcmVzcy1sYXlvdXQtZnVsbHNjcmVlbiAuZnVsbHNjcmVlbi1zbGlkZXIgLmNvbnRlbnQtd3JhcHBlciB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHBhZGRpbmctdG9wOiAxMHB4OyB9XG4gIC53b3JkcHJlc3MtbGF5b3V0LWZ1bGxzY3JlZW4gLmZ1bGxzY3JlZW4tc2xpZGVyIC5zbGljay1zbGlkZSB7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjsgfVxuICAgIC53b3JkcHJlc3MtbGF5b3V0LWZ1bGxzY3JlZW4gLmZ1bGxzY3JlZW4tc2xpZGVyIC5zbGljay1zbGlkZS5zbGlkZTEge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0FBQzUwMjsgfVxuICAgICAgLndvcmRwcmVzcy1sYXlvdXQtZnVsbHNjcmVlbiAuZnVsbHNjcmVlbi1zbGlkZXIgLnNsaWNrLXNsaWRlLnNsaWRlMSAuaGVhZGxpbmUge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTQwJSk7XG4gICAgICAgIGZvbnQtc2l6ZTogNDBweDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICBmb250LWZhbWlseTogXCJVYnVudHVUaXRsaW5nLUJvbGRcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBWZXJkYW5hLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7IH1cbiAgICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MDBweCkge1xuICAgICAgICAgIC53b3JkcHJlc3MtbGF5b3V0LWZ1bGxzY3JlZW4gLmZ1bGxzY3JlZW4tc2xpZGVyIC5zbGljay1zbGlkZS5zbGlkZTEgLmhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogNjhweDsgfSB9XG4gICAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzcxcHgpIHtcbiAgICAgICAgICAud29yZHByZXNzLWxheW91dC1mdWxsc2NyZWVuIC5mdWxsc2NyZWVuLXNsaWRlciAuc2xpY2stc2xpZGUuc2xpZGUxIC5oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDg4cHg7IH0gfVxuICAgICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDk4MHB4KSB7XG4gICAgICAgICAgLndvcmRwcmVzcy1sYXlvdXQtZnVsbHNjcmVlbiAuZnVsbHNjcmVlbi1zbGlkZXIgLnNsaWNrLXNsaWRlLnNsaWRlMSAuaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxMDBweDsgfSB9XG4gICAgLndvcmRwcmVzcy1sYXlvdXQtZnVsbHNjcmVlbiAuZnVsbHNjcmVlbi1zbGlkZXIgLnNsaWNrLXNsaWRlLnNsaWRlMiB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL2Fib3V0LXNsaWRlci9zdG9jay5qcGcpOyB9XG5cbiNibG9jay1wcm9kdWN0ZmluZGVyIC5zbGljay1wcmV2LCAjYmxvY2stcHJvZHVjdGZpbmRlciAuc2xpY2stbmV4dCB7XG4gIGJhY2tncm91bmQ6ICNjOWM5Yzk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWFnZXMvYXJyb3ctbGVmdC5zdmcpO1xuICBiYWNrZ3JvdW5kLXNpemU6IDEycHg7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgei1pbmRleDogMTAwO1xuICB0b3A6IDMwJTsgfVxuXG4jYmxvY2stcHJvZHVjdGZpbmRlciAuc2xpY2stcHJldiB7XG4gIGxlZnQ6IDE1cHg7IH1cblxuI2Jsb2NrLXByb2R1Y3RmaW5kZXIgLnNsaWNrLW5leHQge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL2Fycm93LXJpZ2h0LnN2Zyk7XG4gIHJpZ2h0OiAxNXB4OyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIFNsaWRlc2hvd1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5zbGlkZXNob3ctY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogMTBweCAwO1xuICBib3JkZXI6IDFweCBzb2xpZCAjRURFREVEOyB9XG4gIC5zbGlkZXNob3ctY29udGFpbmVyIC5zbGlkZXNob3cge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbjogMDtcbiAgICBib3JkZXI6IDEwcHggc29saWQgI0ZGRkZGRjsgfVxuICAgIC5zbGlkZXNob3ctY29udGFpbmVyIC5zbGlkZXNob3cgPiBsaSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBtYXJnaW46IDA7IH1cbiAgICAgIC5zbGlkZXNob3ctY29udGFpbmVyIC5zbGlkZXNob3cgPiBsaTpmaXJzdC1jaGlsZCB7XG4gICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgIHotaW5kZXg6IDEwMDsgfVxuICAgICAgLnNsaWRlc2hvdy1jb250YWluZXIgLnNsaWRlc2hvdyA+IGxpIGltZyB7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgd2lkdGg6IDEwMCU7IH1cblxuLnNsaWRlc2hvdy1wYWdlciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgd2lkdGg6IDEwMCU7XG4gIHotaW5kZXg6IDExNTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDBweDtcbiAgdG9wOiBhdXRvO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1vLXVzZXItc2VsZWN0OiBub25lO1xuICB1c2VyLXNlbGVjdDogbm9uZTsgfVxuICAuc2xpZGVzaG93LXBhZ2VyIHNwYW4ge1xuICAgIGZvbnQtZmFtaWx5OiBhcmlhbDtcbiAgICB3aWR0aDogNDRweDtcbiAgICBoZWlnaHQ6IDQ0cHg7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGNvbG9yOiAjREREREREO1xuICAgIGN1cnNvcjogcG9pbnRlcjsgfVxuICAgIC5zbGlkZXNob3ctcGFnZXIgc3BhbjpiZWZvcmUge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgbGVmdDogNTAlO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICBtYXJnaW4tbGVmdDogLThweDtcbiAgICAgIG1hcmdpbi10b3A6IC04cHg7XG4gICAgICBib3JkZXItcmFkaXVzOiAxcHg7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgLnNsaWRlc2hvdy1wYWdlciBzcGFuOmhvdmVyOmJlZm9yZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWI3NmE3OyB9XG4gICAgLnNsaWRlc2hvdy1wYWdlciBzcGFuLmN5Y2xlLXBhZ2VyLWFjdGl2ZTpiZWZvcmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzE4Njc5MTsgfVxuICAuc2xpZGVzaG93LXBhZ2VyID4gKiB7XG4gICAgY3Vyc29yOiBwb2ludGVyOyB9XG5cbi5zbGlkZXNob3ctcHJldixcbi5zbGlkZXNob3ctbmV4dCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICB3aWR0aDogMTUlO1xuICBtYXgtd2lkdGg6IDgwcHg7XG4gIGhlaWdodDogMTAwJTtcbiAgb3BhY2l0eTogMC42O1xuICB6LWluZGV4OiAxMTA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAtby11c2VyLXNlbGVjdDogbm9uZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7IH1cbiAgLnNsaWRlc2hvdy1wcmV2OmJlZm9yZSxcbiAgLnNsaWRlc2hvdy1uZXh0OmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGZvbnQtc2l6ZTogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB0b3A6IDUwJTtcbiAgICBtYXJnaW4tdG9wOiAtMTVweDsgfVxuICAuc2xpZGVzaG93LXByZXY6aG92ZXIsXG4gIC5zbGlkZXNob3ctbmV4dDpob3ZlciB7XG4gICAgb3BhY2l0eTogMTsgfVxuICAuc2xpZGVzaG93LXByZXYuZGlzYWJsZWQsXG4gIC5zbGlkZXNob3ctbmV4dC5kaXNhYmxlZCB7XG4gICAgb3BhY2l0eTogLjU7XG4gICAgY3Vyc29yOiBkZWZhdWx0OyB9XG5cbi5zbGlkZXNob3ctcHJldiB7XG4gIGxlZnQ6IDhweDsgfVxuICAuc2xpZGVzaG93LXByZXY6YmVmb3JlIHtcbiAgICBib3JkZXItd2lkdGg6IDE1cHggMTVweCAxNXB4IDA7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjRkZGRkZGIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgIHRvcDogNTAlO1xuICAgIGxlZnQ6IDEwcHg7IH1cbiAgLnNsaWRlc2hvdy1wcmV2OmhvdmVyOmJlZm9yZSB7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjMWI3NmE3IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50OyB9XG5cbi5zbGlkZXNob3ctbmV4dCB7XG4gIHJpZ2h0OiA4cHg7IH1cbiAgLnNsaWRlc2hvdy1uZXh0OmJlZm9yZSB7XG4gICAgYm9yZGVyLXdpZHRoOiAxNXB4IDAgMTVweCAxNXB4O1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgI0ZGRkZGRjtcbiAgICB0b3A6IDUwJTtcbiAgICByaWdodDogMTBweDsgfVxuICAuc2xpZGVzaG93LW5leHQ6aG92ZXI6YmVmb3JlIHtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICMxYjc2YTc7IH1cblxuLmN5Y2xlLWNhcHRpb24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYm90dG9tOiAxNXB4O1xuICByaWdodDogMTVweDtcbiAgei1pbmRleDogMTEwOyB9XG5cbi5jeWNsZS1vdmVybGF5IHtcbiAgZm9udC1mYW1pbHk6IHRhaG9tYSwgYXJpYWw7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgei1pbmRleDogMTIwO1xuICBiYWNrZ3JvdW5kOiBibGFjaztcbiAgY29sb3I6IHdoaXRlO1xuICBwYWRkaW5nOiAxNXB4O1xuICBvcGFjaXR5OiAuNTsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBXaXNobGlzdFxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbiN3aXNobGlzdC10YWJsZSB0aCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4jd2lzaGxpc3QtdGFibGUuY2xlYW4tdGFibGUge1xuICBmb250LWZhbWlseTogXCJVYnVudHVUaXRsaW5nLUJvbGRcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBWZXJkYW5hLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxMnB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB3aWR0aDogMTAwJTsgfVxuICAjd2lzaGxpc3QtdGFibGUuY2xlYW4tdGFibGUgdGgge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjQzBDMEMwOyB9XG4gICN3aXNobGlzdC10YWJsZS5jbGVhbi10YWJsZSB0ZCB7XG4gICAgcGFkZGluZzogMTVweDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB9XG4gICN3aXNobGlzdC10YWJsZS5jbGVhbi10YWJsZSB0aGVhZCB0aCB7XG4gICAgZm9udC1mYW1pbHk6IFwiVWJ1bnR1VGl0bGluZy1Cb2xkXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgVmVyZGFuYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cblxuI3dpc2hsaXN0LXRhYmxlIC5wcm9kdWN0LW5hbWUge1xuICBmb250LXNpemU6IDIwcHg7XG4gIGZvbnQtZmFtaWx5OiBcIlVidW50dVRpdGxpbmctQm9sZFwiLCBcIkhlbHZldGljYSBOZXVlXCIsIFZlcmRhbmEsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG4gICN3aXNobGlzdC10YWJsZSAucHJvZHVjdC1uYW1lIGEge1xuICAgIGNvbG9yOiAjMWY4NmJkOyB9XG5cbiN3aXNobGlzdC10YWJsZSAud2lzaGxpc3Qtc2t1IHtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBmb250LWZhbWlseTogXCJVYnVudHVUaXRsaW5nLUJvbGRcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBWZXJkYW5hLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgbWFyZ2luOiA1cHggMDsgfVxuXG4jd2lzaGxpc3QtdGFibGUgdGV4dGFyZWEge1xuICBib3JkZXI6IDFweCBzb2xpZCAjQzBDMEMwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiA0NXB4O1xuICBmb250LXNpemU6IDExcHg7XG4gIGZvbnQtZmFtaWx5OiBcIlVidW50dVRpdGxpbmctQm9sZFwiLCBcIkhlbHZldGljYSBOZXVlXCIsIFZlcmRhbmEsIEFyaWFsLCBzYW5zLXNlcmlmOyB9XG4gICN3aXNobGlzdC10YWJsZSB0ZXh0YXJlYTo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuICAjd2lzaGxpc3QtdGFibGUgdGV4dGFyZWE6LW1vei1wbGFjZWhvbGRlciB7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuICAjd2lzaGxpc3QtdGFibGUgdGV4dGFyZWE6Oi1tb3otcGxhY2Vob2xkZXIge1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cbiAgI3dpc2hsaXN0LXRhYmxlIHRleHRhcmVhOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuICAjd2lzaGxpc3QtdGFibGUgdGV4dGFyZWE6Zm9jdXMge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICMxZjg2YmQ7IH1cblxuI3dpc2hsaXN0LXRhYmxlIC5pdGVtLW1hbmFnZSB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBtYXgtd2lkdGg6IDQ1MHB4O1xuICBwYWRkaW5nLXRvcDogNXB4OyB9XG4gICN3aXNobGlzdC10YWJsZSAuaXRlbS1tYW5hZ2UgLmJ1dHRvbiB7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIHBhZGRpbmc6IDNweCA1cHg7IH1cblxuI3dpc2hsaXN0LXRhYmxlIC5jYXJ0LWNlbGwge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cblxuI3dpc2hsaXN0LXRhYmxlIHRkLmN1c3RvbWVyLXdpc2hsaXN0LWl0ZW0taW1hZ2Uge1xuICB3aWR0aDogMTEzcHg7IH1cblxuI3dpc2hsaXN0LXRhYmxlIHRkLmN1c3RvbWVyLXdpc2hsaXN0LWl0ZW0tcXVhbnRpdHkge1xuICB3aWR0aDogM2VtOyB9XG5cbiN3aXNobGlzdC10YWJsZSB0ZC5jdXN0b21lci13aXNobGlzdC1pdGVtLXByaWNlIHtcbiAgd2lkdGg6IDEyMHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cblxuI3dpc2hsaXN0LXRhYmxlIHRkLmN1c3RvbWVyLXdpc2hsaXN0LWl0ZW0tY2FydCB7XG4gIHdpZHRoOiAxNTBweDsgfVxuICAjd2lzaGxpc3QtdGFibGUgdGQuY3VzdG9tZXItd2lzaGxpc3QtaXRlbS1jYXJ0IC5idXR0b24ge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgIHBhZGRpbmc6IDNweCA1cHg7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgI3dpc2hsaXN0LXRhYmxlIHRkLmN1c3RvbWVyLXdpc2hsaXN0LWl0ZW0tY2FydCAudHJ1bmNhdGVkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4OyB9XG4gICN3aXNobGlzdC10YWJsZSB0ZC5jdXN0b21lci13aXNobGlzdC1pdGVtLWNhcnQgPiBwIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gICN3aXNobGlzdC10YWJsZSB0ZC5jdXN0b21lci13aXNobGlzdC1pdGVtLWNhcnQgLnJlbW92ZS13aGlzaGxpc3QtaXRlbSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gICN3aXNobGlzdC10YWJsZSB0ZC5jdXN0b21lci13aXNobGlzdC1pdGVtLWNhcnQgLmJ0bi1yZW1vdmUge1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7IH1cblxuI3dpc2hsaXN0LXRhYmxlIHRkLmN1c3RvbWVyLXdpc2hsaXN0LWl0ZW0tcmVtb3ZlIHtcbiAgd2lkdGg6IDIwcHg7IH1cblxuI3dpc2hsaXN0LXRhYmxlIHRkIC5idXR0b24sXG4jd2lzaGxpc3QtdGFibGUgdGQgYnV0dG9uIHtcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDsgfVxuXG4jd2lzaGxpc3QtdGFibGUgLnByaWNlLWJveCB7XG4gIGZvbnQtZmFtaWx5OiBcIlVidW50dVRpdGxpbmctQm9sZFwiLCBcIkhlbHZldGljYSBOZXVlXCIsIFZlcmRhbmEsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEycHg7IH1cbiAgI3dpc2hsaXN0LXRhYmxlIC5wcmljZS1ib3ggLnByaWNlIHtcbiAgICBjb2xvcjogIzAwM2I1ZjsgfVxuXG4jd2lzaGxpc3QtdGFibGUgLmdpZnRyZWdpc3R5LWFkZCB7XG4gIG1hcmdpbi10b3A6IDVweDsgfVxuICAjd2lzaGxpc3QtdGFibGUgLmdpZnRyZWdpc3R5LWFkZCAuY2hhbmdlIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gICN3aXNobGlzdC10YWJsZSAuZ2lmdHJlZ2lzdHktYWRkIGxpIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgY29sb3I6ICMxZjg2YmQ7XG4gICAgbWFyZ2luLWJvdHRvbTogM3B4OyB9XG5cbiN3aXNobGlzdC10YWJsZSAudHJ1bmNhdGVkIC5kZXRhaWxzIHtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgY29sb3I6ICMxZjg2YmQ7IH1cblxuI3dpc2hsaXN0LXRhYmxlIHRkW2RhdGEtcndkLWxhYmVsXTpiZWZvcmUge1xuICBmb250LXdlaWdodDogNjAwOyB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTE5OXB4KSB7XG4gICN3aXNobGlzdC10YWJsZS5jbGVhbi10YWJsZSB0ZCB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7IH0gfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk3OXB4KSB7XG4gICN3aXNobGlzdC10YWJsZS5jbGVhbi10YWJsZSB0ZCB7XG4gICAgcGFkZGluZy1sZWZ0OiA1cHg7XG4gICAgcGFkZGluZy1yaWdodDogNXB4OyB9XG4gICAgI3dpc2hsaXN0LXRhYmxlLmNsZWFuLXRhYmxlIHRkIHRleHRhcmVhIHtcbiAgICAgIGhlaWdodDogMTAwcHg7IH1cbiAgICAjd2lzaGxpc3QtdGFibGUuY2xlYW4tdGFibGUgdGQuY3VzdG9tZXItd2lzaGxpc3QtaXRlbS1jYXJ0IHtcbiAgICAgIHdpZHRoOiAxMTBweDsgfVxuICAjd2lzaGxpc3QtdGFibGUgLnByb2R1Y3QtbmFtZSB7XG4gICAgZm9udC1zaXplOiAxM3B4OyB9IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NzBweCkge1xuICAjd2lzaGxpc3QtdGFibGU6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGNsZWFyOiBib3RoOyB9XG4gICN3aXNobGlzdC10YWJsZSAucHJvZHVjdC1uYW1lIHtcbiAgICBmb250LXNpemU6IDIwcHg7IH1cbiAgI3dpc2hsaXN0LXRhYmxlIHRleHRhcmVhIHtcbiAgICBoZWlnaHQ6IDY4cHg7XG4gICAgbWF4LXdpZHRoOiAxMDAlOyB9XG4gICN3aXNobGlzdC10YWJsZSAuaXRlbS1tYW5hZ2Uge1xuICAgIG1heC13aWR0aDogMTAwJTsgfVxuICAjd2lzaGxpc3QtdGFibGUgdHIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgICN3aXNobGlzdC10YWJsZSB0cjphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgI3dpc2hsaXN0LXRhYmxlIHRkLmN1c3RvbWVyLXdpc2hsaXN0LWl0ZW0taW1hZ2Uge1xuICAgIHdpZHRoOiA3MHB4OyB9XG4gICAgI3dpc2hsaXN0LXRhYmxlIHRkLmN1c3RvbWVyLXdpc2hsaXN0LWl0ZW0taW1hZ2UgaW1nIHtcbiAgICAgIHdpZHRoOiA3MHB4O1xuICAgICAgaGVpZ2h0OiA3MHB4OyB9XG4gICN3aXNobGlzdC10YWJsZSB0ZC5jdXN0b21lci13aXNobGlzdC1pdGVtLWNhcnQgcCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAjd2lzaGxpc3QtdGFibGUgdGQuY3VzdG9tZXItd2lzaGxpc3QtaXRlbS1jYXJ0IC5yZW1vdmUtd2hpc2hsaXN0LWl0ZW0ge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBwYWRkaW5nLXRvcDogNHB4OyB9XG4gICN3aXNobGlzdC10YWJsZSB0ZC5jdXN0b21lci13aXNobGlzdC1pdGVtLWNhcnQge1xuICAgIHBhZGRpbmctcmlnaHQ6IDE1cHg7IH0gfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gICN3aXNobGlzdC10YWJsZSB0ZC5jdXN0b21lci13aXNobGlzdC1pdGVtLXF1YW50aXR5IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7IH1cbiAgI3dpc2hsaXN0LXRhYmxlIHRkLmN1c3RvbWVyLXdpc2hsaXN0LWl0ZW0taW1hZ2UsXG4gICN3aXNobGlzdC10YWJsZSB0aC5jdXN0b21lci13aXNobGlzdC1pdGVtLWltYWdlIHtcbiAgICBkaXNwbGF5OiBub25lOyB9IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0NzlweCkge1xuICAjd2lzaGxpc3QtdGFibGUgdHIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAjd2lzaGxpc3QtdGFibGUgdGguY3VzdG9tZXItd2lzaGxpc3QtaXRlbS1pbWFnZSB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgI3dpc2hsaXN0LXRhYmxlIHRkLmN1c3RvbWVyLXdpc2hsaXN0LWl0ZW0taW1hZ2UsICN3aXNobGlzdC10YWJsZSB0ZC5jdXN0b21lci13aXNobGlzdC1pdGVtLWluZm8sICN3aXNobGlzdC10YWJsZSB0ZC5jdXN0b21lci13aXNobGlzdC1pdGVtLXF1YW50aXR5LCAjd2lzaGxpc3QtdGFibGUgdGQuY3VzdG9tZXItd2lzaGxpc3QtaXRlbS1wcmljZSwgI3dpc2hsaXN0LXRhYmxlIHRkLmN1c3RvbWVyLXdpc2hsaXN0LWl0ZW0tY2FydCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgZW1wdHktY2VsbHM6IGhpZGU7IH1cbiAgI3dpc2hsaXN0LXRhYmxlIHRkLmN1c3RvbWVyLXdpc2hsaXN0LWl0ZW0taW1hZ2Uge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgICAjd2lzaGxpc3QtdGFibGUgdGQuY3VzdG9tZXItd2lzaGxpc3QtaXRlbS1pbWFnZSBhIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gICAgICAjd2lzaGxpc3QtdGFibGUgdGQuY3VzdG9tZXItd2lzaGxpc3QtaXRlbS1pbWFnZSBhIGltZyB7XG4gICAgICAgIHdpZHRoOiAxMTNweDtcbiAgICAgICAgaGVpZ2h0OiAxMTNweDsgfVxuICAjd2lzaGxpc3QtdGFibGUgdGQuY3VzdG9tZXItd2lzaGxpc3QtaXRlbS1xdWFudGl0eSwgI3dpc2hsaXN0LXRhYmxlIHRkLmN1c3RvbWVyLXdpc2hsaXN0LWl0ZW0tcHJpY2Uge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgICAjd2lzaGxpc3QtdGFibGUgdGQuY3VzdG9tZXItd2lzaGxpc3QtaXRlbS1xdWFudGl0eTpiZWZvcmUsICN3aXNobGlzdC10YWJsZSB0ZC5jdXN0b21lci13aXNobGlzdC1pdGVtLXByaWNlOmJlZm9yZSB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIG1hcmdpbi1yaWdodDogMTVweDsgfVxuICAgICN3aXNobGlzdC10YWJsZSB0ZC5jdXN0b21lci13aXNobGlzdC1pdGVtLXF1YW50aXR5IC5jYXJ0LWNlbGwsICN3aXNobGlzdC10YWJsZSB0ZC5jdXN0b21lci13aXNobGlzdC1pdGVtLXByaWNlIC5jYXJ0LWNlbGwge1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAgICN3aXNobGlzdC10YWJsZSB0ZC5jdXN0b21lci13aXNobGlzdC1pdGVtLXF1YW50aXR5IC5wcmljZS1ib3gsICN3aXNobGlzdC10YWJsZSB0ZC5jdXN0b21lci13aXNobGlzdC1pdGVtLXByaWNlIC5wcmljZS1ib3gge1xuICAgICAgbWFyZ2luLXRvcDogMDsgfVxuICAjd2lzaGxpc3QtdGFibGUgdGQuY3VzdG9tZXItd2lzaGxpc3QtaXRlbS1jYXJ0IC5jYXJ0LWNlbGwge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiA0OCU7IH1cbiAgI3dpc2hsaXN0LXRhYmxlIHRkLmN1c3RvbWVyLXdpc2hsaXN0LWl0ZW0tY2FydCA+IHAge1xuICAgIGZsb2F0OiByaWdodDtcbiAgICB3aWR0aDogNDglOyB9XG4gICN3aXNobGlzdC10YWJsZSB0ZC5jdXN0b21lci13aXNobGlzdC1pdGVtLXJlbW92ZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMTVweDtcbiAgICByaWdodDogMHB4O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6IDBweDtcbiAgICBoZWlnaHQ6IDIwcHg7IH1cbiAgI3dpc2hsaXN0LXRhYmxlLmNsZWFuLXRhYmxlIHRkLmN1c3RvbWVyLXdpc2hsaXN0LWl0ZW0tY2FydCB7XG4gICAgd2lkdGg6IDEwMCU7IH0gfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBXaXNobGlzdCBTaWRlYmFyXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLmJsb2NrLXdpc2hsaXN0IC5taW5pLXByb2R1Y3RzLWxpc3QgPiBsaTpub3QoOmxhc3QtY2hpbGQpIHtcbiAgcGFkZGluZy1ib3R0b206IDVweDsgfVxuXG4uYmxvY2std2lzaGxpc3QgLnByb2R1Y3QtZGV0YWlscyAucHJvZHVjdC1uYW1lIHtcbiAgcGFkZGluZy10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDVweDsgfVxuXG4uYmxvY2std2lzaGxpc3QgLnByaWNlLWJveCB7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW46IDA7IH1cblxuLmJsb2NrLXdpc2hsaXN0IC5wcmljZS1ib3gsXG4uYmxvY2std2lzaGxpc3QgLnByaWNlLWJveCAucHJpY2UsXG4uYmxvY2std2lzaGxpc3QgLmxpbmstY2FydCB7XG4gIGZvbnQtc2l6ZTogMTJweDsgfVxuXG4uYmxvY2std2lzaGxpc3QgLmxpbmstY2FydCB7XG4gIGZsb2F0OiBsZWZ0O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBtYXJnaW4tcmlnaHQ6IDdweDtcbiAgcGFkZGluZy1yaWdodDogN3B4O1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjRURFREVEOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIENoZWNrb3V0IC0gTWluaSBjYXJ0XG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLmhlYWRlci1taW5pY2FydCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuICAuaGVhZGVyLW1pbmljYXJ0IC5taW5pY2FydC1tZXNzYWdlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAxMHB4OyB9XG4gIC5oZWFkZXItbWluaWNhcnQgLmVtcHR5IHtcbiAgICBwYWRkaW5nOiAxMHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAuaGVhZGVyLW1pbmljYXJ0IC5taW5pY2FydC13cmFwcGVyIHtcbiAgICBjbGVhcjogYm90aDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAuaGVhZGVyLW1pbmljYXJ0IC5taW5pY2FydC13cmFwcGVyOmJlZm9yZSwgLmhlYWRlci1taW5pY2FydCAubWluaWNhcnQtd3JhcHBlcjphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMHB4O1xuICAgICAgbGVmdDogMHB4O1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgLmhlYWRlci1taW5pY2FydCAubWluaWNhcnQtd3JhcHBlcjpiZWZvcmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgICBvcGFjaXR5OiAwLjg7XG4gICAgICB6LWluZGV4OiAyOyB9XG4gICAgLmhlYWRlci1taW5pY2FydCAubWluaWNhcnQtd3JhcHBlcjphZnRlciB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvb3BjLWFqYXgtbG9hZGVyLmdpZlwiKTtcbiAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICB6LWluZGV4OiAzOyB9XG4gICAgLmhlYWRlci1taW5pY2FydCAubWluaWNhcnQtd3JhcHBlci5sb2FkaW5nIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgICAgLmhlYWRlci1taW5pY2FydCAubWluaWNhcnQtd3JhcHBlci5sb2FkaW5nOmJlZm9yZSwgLmhlYWRlci1taW5pY2FydCAubWluaWNhcnQtd3JhcHBlci5sb2FkaW5nOmFmdGVyIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgLmhlYWRlci1taW5pY2FydCAuYmxvY2stY2FydCB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAuaGVhZGVyLW1pbmljYXJ0IC5ibG9jay1zdWJ0aXRsZSB7XG4gICAgY29sb3I6ICM1MEE0Q0Y7XG4gICAgZm9udC1mYW1pbHk6IFwiVWJ1bnR1VGl0bGluZy1Cb2xkXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgVmVyZGFuYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxMHB4O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgcGFkZGluZzogNXB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIG1hcmdpbi1ib3R0b206IDBweDsgfVxuICAgIC5oZWFkZXItbWluaWNhcnQgLmJsb2NrLXN1YnRpdGxlIC5jbG9zZSB7XG4gICAgICB3aWR0aDogNDBweDtcbiAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgY29sb3I6ICMwMDNiNWY7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgZm9udC1zaXplOiAzMHB4O1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAtOHB4O1xuICAgICAgcmlnaHQ6IC0zcHg7IH1cbiAgLmhlYWRlci1taW5pY2FydCAubWluaS1wcm9kdWN0cy1saXN0IHtcbiAgICBwYWRkaW5nOiAxMHB4O1xuICAgIHBhZGRpbmctdG9wOiAwcHg7IH1cbiAgICAuaGVhZGVyLW1pbmljYXJ0IC5taW5pLXByb2R1Y3RzLWxpc3QgbGkge1xuICAgICAgcGFkZGluZzogOHB4IDVweCA4cHggMTFweDtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjREREREREO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgICAuaGVhZGVyLW1pbmljYXJ0IC5taW5pLXByb2R1Y3RzLWxpc3QgbGkubGFzdCB7XG4gICAgICAgIGJvcmRlcjogbm9uZTsgfVxuICAgICAgLmhlYWRlci1taW5pY2FydCAubWluaS1wcm9kdWN0cy1saXN0IGxpIC5wcm9kdWN0LWRldGFpbHMge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLmhlYWRlci1taW5pY2FydCAucHJvZHVjdC1kZXRhaWxzIC5wcm9kdWN0LW5hbWUge1xuICAgIHBhZGRpbmctdG9wOiAwcHg7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cbiAgICAuaGVhZGVyLW1pbmljYXJ0IC5wcm9kdWN0LWRldGFpbHMgLnByb2R1Y3QtbmFtZSBhIHtcbiAgICAgIGNvbG9yOiAjMWY4NmJkOyB9XG4gIC5oZWFkZXItbWluaWNhcnQgLmluZm8td3JhcHBlciB7XG4gICAgbWFyZ2luLWJvdHRvbTogMC41ZW07IH1cbiAgICAuaGVhZGVyLW1pbmljYXJ0IC5pbmZvLXdyYXBwZXIgdGgge1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7IH1cbiAgICAuaGVhZGVyLW1pbmljYXJ0IC5pbmZvLXdyYXBwZXIgdGQge1xuICAgICAgY29sb3I6ICMwMDNiNWY7XG4gICAgICBjbGVhcjogcmlnaHQ7IH1cbiAgICAuaGVhZGVyLW1pbmljYXJ0IC5pbmZvLXdyYXBwZXIgLnF0eS13cmFwcGVyIHRkIHtcbiAgICAgIGhlaWdodDogMzNweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAzM3B4OyB9XG4gICAgLmhlYWRlci1taW5pY2FydCAuaW5mby13cmFwcGVyIC5xdHkge1xuICAgICAgcGFkZGluZy1sZWZ0OiA0cHg7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiA0cHg7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDJweDtcbiAgICAgIHdpZHRoOiAzLjJlbTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGhlaWdodDogMzBweDsgfVxuICAgIC5oZWFkZXItbWluaWNhcnQgLmluZm8td3JhcHBlciAucXVhbnRpdHktYnV0dG9uIHtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDEwMG1zOyB9XG4gICAgICAuaGVhZGVyLW1pbmljYXJ0IC5pbmZvLXdyYXBwZXIgLnF1YW50aXR5LWJ1dHRvbltkaXNhYmxlZF0ge1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7IH1cbiAgICAgIC5oZWFkZXItbWluaWNhcnQgLmluZm8td3JhcHBlciAucXVhbnRpdHktYnV0dG9uLnZpc2libGUge1xuICAgICAgICBvcGFjaXR5OiAxOyB9XG4gIC5oZWFkZXItbWluaWNhcnQgLnN1YnRvdGFsIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjREREREREO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBsaW5lLWhlaWdodDogMmVtOyB9XG4gICAgLmhlYWRlci1taW5pY2FydCAuc3VidG90YWwgLmxhYmVsIHtcbiAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cbiAgICAuaGVhZGVyLW1pbmljYXJ0IC5zdWJ0b3RhbCAucHJpY2Uge1xuICAgICAgY29sb3I6ICMwMDNiNWY7IH1cbiAgLmhlYWRlci1taW5pY2FydCAubWluaWNhcnQtYWN0aW9ucyB7XG4gICAgcGFkZGluZzogMTBweDtcbiAgICBtYXJnaW4tdG9wOiAwcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gICAgLmhlYWRlci1taW5pY2FydCAubWluaWNhcnQtYWN0aW9ucyAuY2hlY2tvdXQtYnV0dG9uIHtcbiAgICAgIG1pbi13aWR0aDogMTQ1cHg7IH1cbiAgICAuaGVhZGVyLW1pbmljYXJ0IC5taW5pY2FydC1hY3Rpb25zIC5jYXJ0LWxpbmsge1xuICAgICAgaGVpZ2h0OiAzM3B4O1xuICAgICAgbGluZS1oZWlnaHQ6IDM5cHg7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgZm9udC1zaXplOiAxM3B4OyB9XG4gICAgLmhlYWRlci1taW5pY2FydCAubWluaWNhcnQtYWN0aW9ucyAucGF5cGFsLWxvZ28gLnBheXBhbC1vciB7XG4gICAgICBsaW5lLWhlaWdodDogMS42OyB9XG4gIC5oZWFkZXItbWluaWNhcnQgI21pbmljYXJ0LWVycm9yLW1lc3NhZ2Uge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBjb2xvcjogcmVkO1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmhlYWRlci1taW5pY2FydCAjbWluaWNhcnQtc3VjY2Vzcy1tZXNzYWdlIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgY29sb3I6IGdyZWVuO1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmhlYWRlci1taW5pY2FydCAuamNhcm91c2VsLWNvbnRyb2wtcHJldixcbiAgLmhlYWRlci1taW5pY2FydCAuamNhcm91c2VsLWNvbnRyb2wtbmV4dCB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuXG4uaGVhZGVyLW1pbmljYXJ0LnNraXAtYWN0aXZlIC5ibG9jay1jYXJ0LFxuLmJsb2NrLWNhcnQuc2tpcC1hY3RpdmUge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc3MXB4KSB7XG4gIC5jaGVja291dC10eXBlcy5taW5pY2FydCB7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0NzlweCkge1xuICAuaGVhZGVyLW1pbmljYXJ0IGEuc2tpcC1jYXJ0IHtcbiAgICB6LWluZGV4OiAxOyB9IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NzBweCkge1xuICAuaGVhZGVyLW1pbmljYXJ0IC5zdWJ0b3RhbCAubGFiZWwge1xuICAgIGNvbG9yOiAjMDAzYjVmOyB9XG4gIC5oZWFkZXItbWluaWNhcnQgLm1pbmljYXJ0LXdyYXBwZXI6YmVmb3JlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRURFREVEOyB9XG4gIC5oZWFkZXItbWluaWNhcnQgLnF1YW50aXR5LWJ1dHRvbiB7XG4gICAgZmxvYXQ6IG5vbmU7IH1cbiAgLmhlYWRlci1taW5pY2FydCAuaGVhZGVyLW1pbmljYXJ0IC5ibG9jay1jYXJ0IHtcbiAgICBwYWRkaW5nOiAxNXB4OyB9XG4gIC5oZWFkZXItbWluaWNhcnQgLmhlYWRlci1taW5pY2FydCAuYmxvY2stc3VidGl0bGUge1xuICAgIHBhZGRpbmctdG9wOiA1OXB4OyB9XG4gIC5oZWFkZXItbWluaWNhcnQgLm1pbmljYXJ0LWFjdGlvbnMge1xuICAgIHBhZGRpbmctYm90dG9tOiAzM3B4OyB9XG4gICAgLmhlYWRlci1taW5pY2FydCAubWluaWNhcnQtYWN0aW9ucyAuY2FydC1saW5rIHtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIHJpZ2h0OiAxMHB4O1xuICAgICAgcG9zaXRpb246IGFic29sdXRlOyB9XG4gICAgLmhlYWRlci1taW5pY2FydCAubWluaWNhcnQtYWN0aW9ucyAuY2hlY2tvdXQtdHlwZXMubWluaWNhcnQgbGkge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG4gICAgICAuaGVhZGVyLW1pbmljYXJ0IC5taW5pY2FydC1hY3Rpb25zIC5jaGVja291dC10eXBlcy5taW5pY2FydCBsaSAucGF5cGFsLWxvZ28gPiBhIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lOyB9XG4gICAgICAuaGVhZGVyLW1pbmljYXJ0IC5taW5pY2FydC1hY3Rpb25zIC5jaGVja291dC10eXBlcy5taW5pY2FydCBsaSAucGF5cGFsLWxvZ28gLmJtbF9idXR0b24ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7IH1cbiAgICAgIC5oZWFkZXItbWluaWNhcnQgLm1pbmljYXJ0LWFjdGlvbnMgLmNoZWNrb3V0LXR5cGVzLm1pbmljYXJ0IGxpIC5wYXlwYWwtbG9nbyAucGF5cGFsLW9yIHtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICAgIG1hcmdpbjogMCAxMHB4IDVweCAxMHB4O1xuICAgICAgICBsaW5lLWhlaWdodDogNDBweDsgfSB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzQwcHgpIHtcbiAgLmhlYWRlci1taW5pY2FydCAubWluaWNhcnQtYWN0aW9ucyAuY2FydC1saW5rIHtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAuaGVhZGVyLW1pbmljYXJ0IC5taW5pY2FydC1hY3Rpb25zIC5jaGVja291dC10eXBlcy5taW5pY2FydCBsaSAucGF5cGFsLWxvZ28gLnBheXBhbC1vcixcbiAgLmhlYWRlci1taW5pY2FydCAubWluaWNhcnQtYWN0aW9ucyAuY2hlY2tvdXQtdHlwZXMubWluaWNhcnQgbGkgLnBheXBhbC1sb2dvIC5wYXlwYWwtYnV0dG9uIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tbGVmdDogMDsgfVxuICAuaGVhZGVyLW1pbmljYXJ0IC5taW5pY2FydC1hY3Rpb25zIC5jaGVja291dC10eXBlcy5taW5pY2FydCBsaSAucGF5cGFsLWxvZ28gLnBheXBhbC1vciB7XG4gICAgbGluZS1oZWlnaHQ6IDEuNjsgfSB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgLmhlYWRlci1taW5pY2FydCAubWluaWNhcnQtYWN0aW9ucyAuY2hlY2tvdXQtYnV0dG9uIHtcbiAgICB3aWR0aDogMTAwJTsgfSB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIFNlYXJjaCAtIEF1dG8gU3VnZ2VzdFxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5zZWFyY2gtYXV0b2NvbXBsZXRlIHtcbiAgbGVmdDogMCAhaW1wb3J0YW50O1xuICBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50O1xuICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgdG9wOiAxNXB4ICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIHotaW5kZXg6IDIwMDsgfVxuICAuc2VhcmNoLWF1dG9jb21wbGV0ZSB1bCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjMWY4NmJkO1xuICAgIGxlZnQ6IDA7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgICAuc2VhcmNoLWF1dG9jb21wbGV0ZSB1bCBsaSB7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0Y0RjRGNDtcbiAgICAgIGNvbG9yOiAjMWY4NmJkO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgcGFkZGluZzogNHB4IDZweDtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgICAgIC5zZWFyY2gtYXV0b2NvbXBsZXRlIHVsIGxpOmhvdmVyIHtcbiAgICAgICAgY29sb3I6ICMxYjc2YTc7IH1cbiAgICAgIC5zZWFyY2gtYXV0b2NvbXBsZXRlIHVsIGxpLnNlbGVjdGVkIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzFmODZiZDtcbiAgICAgICAgY29sb3I6IHdoaXRlOyB9XG4gICAgICAuc2VhcmNoLWF1dG9jb21wbGV0ZSB1bCBsaSAuYW1vdW50IHtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDsgfVxuICAgICAgLnNlYXJjaC1hdXRvY29tcGxldGUgdWwgbGk6bGFzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7IH1cbiAgLnNlYXJjaC1hdXRvY29tcGxldGU6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGJvcmRlci1yaWdodDogN3B4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1sZWZ0OiA3cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLWJvdHRvbTogN3B4IHNvbGlkICMxZjg2YmQ7XG4gICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdG9wOiAtN3B4OyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIFNlYXJjaCAtIEFkdmFuY2VkXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLmFkdmFuY2VkLXNlYXJjaCB7XG4gIGJhY2tncm91bmQ6ICNGNEY0RjQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNFREVERUQ7XG4gIHBhZGRpbmc6IDM1cHg7IH1cbiAgLmFkdmFuY2VkLXNlYXJjaCBzZWxlY3QubXVsdGlzZWxlY3Qgb3B0aW9uIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0VERURFRDtcbiAgICBwYWRkaW5nOiAycHggNXB4OyB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDc5cHgpIHtcbiAgLmFkdmFuY2VkLXNlYXJjaCB7XG4gICAgcGFkZGluZzogMTVweDsgfSB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIEFjY291bnQgLSBSZXZpZXdzXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnByb2R1Y3QtcmV2aWV3IC5wcm9kdWN0LWltZy1ib3ggcC5sYWJlbCB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjQ0NDQ0NDO1xuICBmb250LXNpemU6IDIwcHg7XG4gIGZvbnQtZmFtaWx5OiBcIlVidW50dVRpdGxpbmctQm9sZFwiLCBcIkhlbHZldGljYSBOZXVlXCIsIFZlcmRhbmEsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBtYXJnaW4tdG9wOiAyMHB4O1xuICBwYWRkaW5nLWJvdHRvbTogMTBweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuXG4ucHJvZHVjdC1yZXZpZXcgLnByb2R1Y3QtaW1nLWJveCAucmF0aW5nLWJveCB7XG4gIG1hcmdpbjogMTVweCAwOyB9XG5cbi5wcm9kdWN0LXJldmlldyAucHJvZHVjdC1kZXRhaWxzIGgyIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNDQ0NDQ0M7XG4gIGNvbG9yOiAjMzM5OUNDO1xuICBmb250LXNpemU6IDIwcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtZmFtaWx5OiBcIlVidW50dVRpdGxpbmctQm9sZFwiLCBcIkhlbHZldGljYSBOZXVlXCIsIFZlcmRhbmEsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBwYWRkaW5nLWJvdHRvbTogMTBweDsgfVxuXG4ucHJvZHVjdC1yZXZpZXcgLnJhdGluZ3MtdGFibGUge1xuICBmb250LWZhbWlseTogXCJVYnVudHVUaXRsaW5nLUJvbGRcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBWZXJkYW5hLCBBcmlhbCwgc2Fucy1zZXJpZjsgfVxuICAucHJvZHVjdC1yZXZpZXcgLnJhdGluZ3MtdGFibGUgdGgge1xuICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7IH1cbiAgLnByb2R1Y3QtcmV2aWV3IC5yYXRpbmdzLXRhYmxlIHRyIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cblxuLnByb2R1Y3QtcmV2aWV3IC5yYXRpbmdzLWRlc2NyaXB0aW9uIGR0IHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNDQ0NDQ0M7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgZm9udC1mYW1pbHk6IFwiVWJ1bnR1VGl0bGluZy1Cb2xkXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgVmVyZGFuYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIG1hcmdpbi10b3A6IDIwcHg7XG4gIHBhZGRpbmc6IDEwcHggMDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuXG4ucHJvZHVjdC1yZXZpZXcgLnJhdGluZ3MtZGVzY3JpcHRpb24gZGQge1xuICBjb2xvcjogIzczNzM3MztcbiAgZm9udC1mYW1pbHk6IFwiVWJ1bnR1VGl0bGluZy1Cb2xkXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgVmVyZGFuYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTNweDsgfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc3MXB4KSB7XG4gIC5wcm9kdWN0LXJldmlldyAucmF0aW5ncy10YWJsZSB0ciB7XG4gICAgZmxvYXQ6IG5vbmU7IH0gfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDExMjZweCkge1xuICAucHJvZHVjdC1yZXZpZXcgLnJhdGluZ3MtdGFibGUgdHIge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbi1yaWdodDogMTVweDsgfSB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzIwcHgpIHtcbiAgLnByb2R1Y3QtcmV2aWV3IC5yYXRpbmdzLXRhYmxlIHRyIHtcbiAgICBmbG9hdDogbm9uZTsgfSB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIENNUyBQYWdlc1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5jbXMtcGFnZS12aWV3IC5wYWdlLXRpdGxlIGgxLFxuLmNtcy1wYWdlLXZpZXcgLnBhZ2UtdGl0bGUgaDMsXG4uY21zLXBhZ2UtdmlldyAucGFnZS1oZWFkIGgxLFxuLmNtcy1wYWdlLXZpZXcgLnBhZ2UtaGVhZCBoMyxcbi5jbXMtbm8tcm91dGUgLnBhZ2UtdGl0bGUgaDEsXG4uY21zLW5vLXJvdXRlIC5wYWdlLXRpdGxlIGgzLFxuLmNtcy1uby1yb3V0ZSAucGFnZS1oZWFkIGgxLFxuLmNtcy1uby1yb3V0ZSAucGFnZS1oZWFkIGgzIHtcbiAgYm9yZGVyOiBub25lOyB9XG5cbi5jbXMtcGFnZS12aWV3IC5zdGQgaW1nLFxuLmNtcy1uby1yb3V0ZSAuc3RkIGltZyB7XG4gIG1heC13aWR0aDogMTAwJTsgfVxuXG4uY21zLXBhZ2UtdmlldyAuc3RkIHAsXG4uY21zLW5vLXJvdXRlIC5zdGQgcCB7XG4gIGNvbG9yOiAjMDAzYjVmO1xuICBmb250LWZhbWlseTogQXJpYWwsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gIGNvbG9yOiAjMzMzMzMzOyB9XG5cbi5jbXMtcGFnZS12aWV3IC5zdGQgaDEsXG4uY21zLW5vLXJvdXRlIC5zdGQgaDEge1xuICBjb2xvcjogIzAwM2I1ZjsgfVxuXG4uY21zLXBhZ2UtdmlldyAuc3RkIGgyLFxuLmNtcy1uby1yb3V0ZSAuc3RkIGgyIHtcbiAgY29sb3I6ICMwMDNiNWY7IH1cblxuLmNtcy1wYWdlLXZpZXcgLnN0ZCBsaSxcbi5jbXMtbm8tcm91dGUgLnN0ZCBsaSB7XG4gIGNvbG9yOiAjMDAzYjVmO1xuICBmb250LWZhbWlseTogQXJpYWwsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBsaW5lLWhlaWdodDogMjRweDsgfVxuXG4uY21zLXBhZ2UtdmlldyAuY29sLWxlZnQ6YWZ0ZXIsXG4uY21zLW5vLXJvdXRlIC5jb2wtbGVmdDphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgY2xlYXI6IGJvdGg7IH1cblxuLmNtcy1uby1yb3V0ZSAuc3RkIGgyIHtcbiAgY29sb3I6ICMwMDNiNWY7XG4gIGZvbnQtc2l6ZTogNDhweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MDBweCkge1xuICAgIC5jbXMtbm8tcm91dGUgLnN0ZCBoMiB7XG4gICAgICBmb250LXNpemU6IDY4cHg7IH0gfVxuXG4uY21zLW5vLXJvdXRlIC5zdGQgZGl2LmxlZnQge1xuICBtYXgtd2lkdGg6IDY4MHB4O1xuICBmbG9hdDogbGVmdDsgfVxuXG4uY21zLW5vLXJvdXRlIC5zdGQgaW1nIHtcbiAgd2lkdGg6IDEwMCU7IH1cblxuLmNtcy1uby1yb3V0ZSAuc3RkIC5hbnQ0MDQge1xuICBtYXgtd2lkdGg6IDIyMHB4O1xuICBmbG9hdDogcmlnaHQ7IH1cblxuLmNtcy1wYWdlLXZpZXcgLnN0ZCAubWVzc2FnZXMsXG4uY21zLWhvbWUgLnN0ZCAubWVzc2FnZXMsXG4uY21zLW5vLXJvdXRlIC5zdGQgLm1lc3NhZ2VzIHtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDsgfVxuICAuY21zLXBhZ2UtdmlldyAuc3RkIC5tZXNzYWdlcyB1bCxcbiAgLmNtcy1ob21lIC5zdGQgLm1lc3NhZ2VzIHVsLFxuICAuY21zLW5vLXJvdXRlIC5zdGQgLm1lc3NhZ2VzIHVsIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIC5jbXMtcGFnZS12aWV3IC5zdGQgLm1lc3NhZ2VzIGxpLFxuICAuY21zLWhvbWUgLnN0ZCAubWVzc2FnZXMgbGksXG4gIC5jbXMtbm8tcm91dGUgLnN0ZCAubWVzc2FnZXMgbGkge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGZvbnQtZmFtaWx5OiBBcmlhbCwgc2Fucy1zZXJpZjsgfVxuXG4jYWNjb3JkaW9uIC50b2dnbGUtdGFicyB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuI2FjY29yZGlvbiA+IGRsID4gZHQge1xuICBtYXJnaW46IDA7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIGNvbG9yOiAjMDAzYjVmO1xuICBmb250LWZhbWlseTogXCJVYnVudHVUaXRsaW5nLUJvbGRcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBWZXJkYW5hLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW8tdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBtYXJnaW4tYm90dG9tOiAwcHg7XG4gIHBhZGRpbmc6IDdweCAxMHB4IDdweCAyNHB4O1xuICBib3JkZXItd2lkdGg6IDFweDtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLWNvbG9yOiAjQ0NDQ0NDO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGNEY0RjQ7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG4gICNhY2NvcmRpb24gPiBkbCA+IGR0OmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGJvcmRlci1yaWdodDogNHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1sZWZ0OiA0cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXRvcDogNHB4IHNvbGlkICMxZjg2YmQ7XG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICBsZWZ0OiAxMHB4O1xuICAgIHRvcDogNTAlO1xuICAgIG1hcmdpbi10b3A6IC0zcHg7IH1cbiAgI2FjY29yZGlvbiA+IGRsID4gZHQ6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHNoYWRlKCNGNEY0RjQsIDMlKTsgfVxuXG4jYWNjb3JkaW9uID4gZGwgPiBkZCB7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIG1hcmdpbjogMDtcbiAgYm9yZGVyLXdpZHRoOiAwIDFweDtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLWNvbG9yOiAjQ0NDQ0NDOyB9XG5cbiNhY2NvcmRpb24gPiBkbCA+IGRkOmxhc3QtY2hpbGQge1xuICBib3JkZXItd2lkdGg6IDAgMXB4IDFweCAxcHg7IH1cblxuI2FjY29yZGlvbiBsaSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAjYWNjb3JkaW9uIGxpIC5wbHVzaW1hZ2UgaDIge1xuICAgIG1hcmdpbi1yaWdodDogMTBweDsgfVxuXG4ucGFnZS1zaXRlbWFwIC5saW5rcyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgbWFyZ2luOiAwIDIwcHggMCAwOyB9XG4gIC5wYWdlLXNpdGVtYXAgLmxpbmtzIGEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuXG4ucGFnZS1zaXRlbWFwIC5zaXRlbWFwIHtcbiAgcGFkZGluZzogMCAyMHB4O1xuICBtYXJnaW46IDE1cHggMDtcbiAgZm9udC1zaXplOiAxMnB4OyB9XG4gIC5wYWdlLXNpdGVtYXAgLnNpdGVtYXAgbGkge1xuICAgIG1hcmdpbjogM3B4IDA7IH1cblxuLmNvbnRhY3RzLWluZGV4LWluZGV4IGgxIHtcbiAgYm9yZGVyOiBub25lOyB9XG5cbiNjb250YWN0Rm9ybSB7XG4gIHBhZGRpbmctbGVmdDogNDBweDsgfVxuICAjY29udGFjdEZvcm0gaDIge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgI2NvbnRhY3RGb3JtOmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBjbGVhcjogYm90aDsgfVxuICAjY29udGFjdEZvcm0gLmZpZWxkc2V0IC5sZWdlbmQgKyAucmVxdWlyZWQge1xuICAgIG1hcmdpbjogMDsgfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc3MHB4KSB7XG4gICNjb250YWN0Rm9ybSB7XG4gICAgcGFkZGluZy1sZWZ0OiAwOyB9IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogUHJpY2luZyBDb25kaXRpb25zXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnByaWNlLWJveCAubWluaW1hbC1wcmljZS1saW5rIC5sYWJlbCB7XG4gIGNvbG9yOiAjQ0Y1MDUwO1xuICBmb250LWZhbWlseTogXCJVYnVudHVUaXRsaW5nLUJvbGRcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBWZXJkYW5hLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxMnB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG5cbi5tYXAtaW5mbyB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cblxuLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5tYXAtaW5mbyB7XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7IH1cbiAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5tYXAtaW5mbyA+IHNwYW4ge1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7IH1cbiAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5tYXAtaW5mbyAucHJpY2UtYm94Lm1hcC1pbmZvID4gYSB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIHdpZHRoOiAxMDAlOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIENvb2tpZXNcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4ubm90aWNlLWNvb2tpZSAubm90aWNlLWlubmVyIHtcbiAgcGFkZGluZy1ib3R0b206IDA7IH1cbiAgLm5vdGljZS1jb29raWUgLm5vdGljZS1pbm5lcjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgY2xlYXI6IGJvdGg7IH1cblxuLm5vdGljZS1jb29raWUgLm5vdGljZS10ZXh0IHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1heC13aWR0aDogOTAlO1xuICBwYWRkaW5nLXRvcDogNHB4O1xuICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gIC5ub3RpY2UtY29va2llIC5ub3RpY2UtdGV4dCBwIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTQuNXB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM7IH1cblxuLm5vdGljZS1jb29raWUgLmFjdGlvbnMge1xuICBmbG9hdDogbGVmdDtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIHBhZGRpbmctYm90dG9tOiAxNC41cHg7IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5NzlweCkge1xuICAubm90aWNlLWNvb2tpZSAubm90aWNlLXRleHQge1xuICAgIG1heC13aWR0aDogODYlOyB9IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NzBweCkge1xuICAubm90aWNlLWNvb2tpZSB7XG4gICAgcGFkZGluZzogMCAyMHB4OyB9XG4gICAgLm5vdGljZS1jb29raWUgLm5vdGljZS10ZXh0IHtcbiAgICAgIG1heC13aWR0aDogODIlO1xuICAgICAgcGFkZGluZy10b3A6IDA7IH0gfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYyMHB4KSB7XG4gIC5ub3RpY2UtY29va2llIHtcbiAgICBwYWRkaW5nOiAwIDIwcHg7IH1cbiAgICAubm90aWNlLWNvb2tpZSAubm90aWNlLWlubmVyIHtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGxlZnQgMTBweDsgfVxuICAgICAgLm5vdGljZS1jb29raWUgLm5vdGljZS1pbm5lcjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAubm90aWNlLWNvb2tpZSAubm90aWNlLXRleHQge1xuICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICBwYWRkaW5nLXRvcDogMDsgfVxuICAgIC5ub3RpY2UtY29va2llIC5hY3Rpb25zIHtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7IH0gfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBUYWdzXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuI2FkZFRhZ0Zvcm0gYnV0dG9uIHtcbiAgbWFyZ2luLXRvcDogNXB4O1xuICBtYXJnaW4tYm90dG9tOiAxMHB4OyB9XG5cbiNhZGRUYWdGb3JtIC5mb3JtLWFkZCB7XG4gIG1hcmdpbi10b3A6IDEwcHg7IH1cblxuLnByb2R1Y3QtdGFncyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGNEY0RjQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNDQ0NDQ0M7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICBwYWRkaW5nOiA1cHggMSUgMTBweDtcbiAgd2lkdGg6IDk4JTsgfVxuXG4ucHJvZHVjdC10YWdzIGxpIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbi1yaWdodDogMTVweDsgfVxuXG4ucHJvZHVjdC10YWdzIGxpLmxhc3Qge1xuICBtYXJnaW4tcmlnaHQ6IDBweDsgfVxuXG4udGFncy1saXN0IHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAxMHB4OyB9XG5cbi50YWdzLWxpc3QgPiBsaSB7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW4tcmlnaHQ6IDEwcHg7IH1cblxuLmJsb2NrLXRhZ3MgLmFjdGlvbnMgPiBhIHtcbiAgZm9udC1zaXplOiAxMnB4OyB9XG5cbi5teS10YWctZWRpdCAuYnV0dG9uLmJ0bi1yZW1vdmUge1xuICBwYWRkaW5nOiAwOyB9XG4gIC5teS10YWctZWRpdCAuYnV0dG9uLmJ0bi1yZW1vdmU6YWZ0ZXIge1xuICAgIGNvbG9yOiB3aGl0ZTsgfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc3MHB4KSB7XG4gIC50YWdzLWxpc3QgPiBsaSxcbiAgLnRhZ3MtbGlzdCB7XG4gICAgZmxvYXQ6IG5vbmU7IH0gfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBDYXB0Y2hhXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLmNhcHRjaGEtbm90ZSB7XG4gIGNsZWFyOiBsZWZ0O1xuICBwYWRkaW5nLXRvcDogNXB4OyB9XG5cbi5jYXB0Y2hhLWltYWdlIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIGRpc3BsYXk6IGlubGluZTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAyNThweDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDsgfVxuXG4uY2FwdGNoYS1pbWFnZSAuY2FwdGNoYS1pbWcge1xuICBib3JkZXI6IDFweCBzb2xpZCAjYjZiNmI2O1xuICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuICB3aWR0aDogMTAwJTsgfVxuXG4ucmVnaXN0ZXJlZC11c2VycyAuY2FwdGNoYS1pbWFnZSB7XG4gIG1hcmdpbjogMDsgfVxuXG4uY2FwdGNoYS1yZWxvYWQge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAycHg7XG4gIHJpZ2h0OiAycHg7IH1cblxuLmNhcHRjaGEtcmVsb2FkLnJlZnJlc2hpbmcge1xuICBhbmltYXRpb246IHJvdGF0ZSAxLjVzIGluZmluaXRlIGxpbmVhcjtcbiAgLXdlYmtpdC1hbmltYXRpb246IHJvdGF0ZSAxLjVzIGluZmluaXRlIGxpbmVhcjtcbiAgLW1vei1hbmltYXRpb246IHJvdGF0ZSAxLjVzIGluZmluaXRlIGxpbmVhcjsgfVxuXG4uY3VzdG9tZXItYWNjb3VudC1jcmVhdGUgLnNjYWZmb2xkLWZvcm0gLmNhcHRjaGEtaW5wdXQtY29udGFpbmVyIGxhYmVsOmZpcnN0LWNoaWxkIHtcbiAgd2lkdGg6IDEwMCU7IH1cblxuLmNhcHRjaGEtcmVsb2FkIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogNHB4O1xuICB0b3A6IDRweDsgfVxuXG4uY2FwdGNoYS1pbWcge1xuICBib3JkZXI6IDIwcHggc29saWQgI2JiYjsgfVxuXG4uY2FwdGNoYS1pbnB1dC1jb250YWluZXIge1xuICBtYXJnaW4tYm90dG9tOiAxMHB4OyB9XG5cbi5jb250cm9sLm5ld3NsZXR0ZXItYm94LCAuY2FwdGNoYS1pbnB1dC1jb250YWluZXIsIC5jYXB0Y2hhLWltZy1jb250YWluZXIge1xuICBmbG9hdDogbm9uZTtcbiAgY2xlYXI6IGJvdGg7IH1cbiAgLmNvbnRyb2wubmV3c2xldHRlci1ib3g6YWZ0ZXIsIC5jYXB0Y2hhLWlucHV0LWNvbnRhaW5lcjphZnRlciwgLmNhcHRjaGEtaW1nLWNvbnRhaW5lcjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgY2xlYXI6IGJvdGg7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogQ2hlY2tvdXQgQmlsbGluZyBGaXggdG8gcGxhY2UgdGhlIENhcHRjaGEgcHJvcGVybHlcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4jY28tYmlsbGluZy1mb3JtIHVsLmZvcm0tbGlzdCA+IC5jb250cm9sIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbjogMCAwIDVweDtcbiAgd2lkdGg6IDEwMCU7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogQWNjb3VudCAtIE9yZGVycywgSW52b2ljZXMsIENyZWRpdCBNZW1vcy5cbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ3OXB4KSB7XG4gIC5zYWxlcy1vcmRlci1pbnZvaWNlIC5zdWItdGl0bGUsXG4gIC5zYWxlcy1vcmRlci1jcmVkaXRtZW1vIC5zdWItdGl0bGUsXG4gIC5zYWxlcy1vcmRlci1zaGlwbWVudCAuc3ViLXRpdGxlIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBmb250LXNpemU6IDE3cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIC5zYWxlcy1vcmRlci1pbnZvaWNlIC5vcmRlci1saW5rcyxcbiAgLnNhbGVzLW9yZGVyLWNyZWRpdG1lbW8gLm9yZGVyLWxpbmtzLFxuICAuc2FsZXMtb3JkZXItc2hpcG1lbnQgLm9yZGVyLWxpbmtzIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgd2lkdGg6IDEwMCU7IH0gfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBSZWN1cnJpbmcgUHJvZmlsZXNcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4jcmVjdXJyaW5nX3Byb2ZpbGVfbGlzdF92aWV3IHRoIHtcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDsgfVxuICAjcmVjdXJyaW5nX3Byb2ZpbGVfbGlzdF92aWV3IHRoIHNwYW4ge1xuICAgIHdoaXRlLXNwYWNlOiBpbmhlcml0OyB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDc5cHgpIHtcbiAgI3JlY3VycmluZ19wcm9maWxlX2xpc3RfdmlldyB7XG4gICAgZm9udC1zaXplOiAxMnB4OyB9XG4gICAgI3JlY3VycmluZ19wcm9maWxlX2xpc3RfdmlldyBhIHtcbiAgICAgIGZvbnQtc2l6ZTogaW5oZXJpdDsgfVxuICAgICNyZWN1cnJpbmdfcHJvZmlsZV9saXN0X3ZpZXcgdGgsXG4gICAgI3JlY3VycmluZ19wcm9maWxlX2xpc3RfdmlldyB0ZCB7XG4gICAgICBwYWRkaW5nOiAycHg7IH0gfVxuXG4ucmVjdXJyaW5nLXByb2ZpbGVzLXRpdGxlIHtcbiAgZmxvYXQ6IGxlZnQ7IH1cbiAgLnJlY3VycmluZy1wcm9maWxlcy10aXRsZSBoMSB7XG4gICAgbWFyZ2luLWJvdHRvbTogN3B4OyB9XG5cbmJvZHkuY3VzdG9tZXItYWNjb3VudCAubXktYWNjb3VudCAudGl0bGUtYnV0dG9ucy5yZWN1cnJpbmctcHJvZmlsZXMtdGl0bGUtYnV0dG9ucyB7XG4gIGZsb2F0OiByaWdodDtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIG1hcmdpbi1ib3R0b206IDM1cHg7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0NzlweCkge1xuICAgIGJvZHkuY3VzdG9tZXItYWNjb3VudCAubXktYWNjb3VudCAudGl0bGUtYnV0dG9ucy5yZWN1cnJpbmctcHJvZmlsZXMtdGl0bGUtYnV0dG9ucyB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBmbG9hdDogbm9uZTsgfSB9XG4gIGJvZHkuY3VzdG9tZXItYWNjb3VudCAubXktYWNjb3VudCAudGl0bGUtYnV0dG9ucy5yZWN1cnJpbmctcHJvZmlsZXMtdGl0bGUtYnV0dG9ucyAuYnV0dG9uIHtcbiAgICBwb3NpdGlvbjogc3RhdGljOyB9XG5cbi5yZWN1cnJpbmctcHJvZmlsZXMtbWVzc2FnZXM6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgZGlzcGxheTogdGFibGU7XG4gIGNsZWFyOiBib3RoOyB9XG5cbiNyZWN1cnJpbmdfc3RhcnRfZGF0ZV90cmlnIHtcbiAgZGlzcGxheTogaW5saW5lOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIEJpbGxpbmcgQWdyZWVtZW50c1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5iaWxsaW5nLWFncmVlbWVudHMgLmluZm8tYm94IHtcbiAgbWFyZ2luLWJvdHRvbTogMzVweDsgfVxuICAuYmlsbGluZy1hZ3JlZW1lbnRzIC5pbmZvLWJveDphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgLmJpbGxpbmctYWdyZWVtZW50cyAuaW5mby1ib3ggLmZvcm0tbGlzdCB7XG4gICAgbWF4LXdpZHRoOiA0MDBweDtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAuYmlsbGluZy1hZ3JlZW1lbnRzIC5pbmZvLWJveCAuYm94LXRpdGxlIHtcbiAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDdweDsgfVxuICAuYmlsbGluZy1hZ3JlZW1lbnRzIC5pbmZvLWJveCAuYnV0dG9uIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgbWFyZ2luLXRvcDogN3B4OyB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0NzlweCkge1xuICAgICAgLmJpbGxpbmctYWdyZWVtZW50cyAuaW5mby1ib3ggLmJ1dHRvbiB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBmbG9hdDogbm9uZTsgfSB9XG5cbi5iaWxsaW5nLWFncmVlbWVudHMgI3BheW1lbnRfbWV0aG9kIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi10b3A6IDdweDtcbiAgbWFyZ2luLWJvdHRvbTogN3B4OyB9XG5cbi5iaWxsaW5nLWFncmVlbWVudC12aWV3LWhlYWRlci13cmFwcGVyIC5oZWFkaW5nIHtcbiAgbWF4LXdpZHRoOiA4MCU7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0NzlweCkge1xuICAgIC5iaWxsaW5nLWFncmVlbWVudC12aWV3LWhlYWRlci13cmFwcGVyIC5oZWFkaW5nIHtcbiAgICAgIG1heC13aWR0aDogMTAwJTsgfSB9XG5cbi5iaWxsaW5nLWFncmVlbWVudC1kZXRhaWxzIHRkLCAuYmlsbGluZy1hZ3JlZW1lbnQtZGV0YWlscyB0aCB7XG4gIHBhZGRpbmc6IDMuNXB4OyB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTc5cHgpIHtcbiAgLmJpbGxpbmctYWdyZWVtZW50cyAuZGF0YS10YWJsZSAuY3JlYXRlZC1hdCxcbiAgLmJpbGxpbmctYWdyZWVtZW50cyAuZGF0YS10YWJsZSAudXBkYXRlZC1hdCB7XG4gICAgZGlzcGxheTogbm9uZTsgfSB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIFBvcHVsYXIgU2VhcmNoIFRlcm1zIENsb3VkXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLmNhdGFsb2dzZWFyY2gtdGVybS1wb3B1bGFyIC50YWdzLWxpc3Qge1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IDEwMCU7IH1cblxuLmNhdGFsb2dzZWFyY2gtdGVybS1wb3B1bGFyIC50YWdzLWxpc3QgPiBsaSB7XG4gIGZsb2F0OiBsZWZ0O1xuICBoZWlnaHQ6IDQwcHg7XG4gIG1hcmdpbi1yaWdodDogMjVweDsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBXaWRnZXRzXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxuICogQWRkIHRvIGNhcnQgYnkgU0tVXG4gKi9cbi5zaWRlYmFyIC53aWRnZXQtYWRkYnlza3UgLnNrdS10YWJsZSAuaW5wdXQtdGV4dDpub3QoLnF0eSkge1xuICB3aWR0aDogMTAwJTsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc3MXB4KSB7XG4gICAgLnNpZGViYXIgLndpZGdldC1hZGRieXNrdSAuc2t1LXRhYmxlIC5pbnB1dC10ZXh0Om5vdCgucXR5KSB7XG4gICAgICBtYXgtd2lkdGg6IDEwMHB4OyB9IH1cblxuLndpZGdldCB7XG4gIGNsZWFyOiBib3RoOyB9XG5cbi53aWRnZXQgLnBhZ2VyIHtcbiAgZmxvYXQ6IG5vbmU7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTE5OXB4KSB7XG4gIC5jb2wyLWxlZnQtbGF5b3V0IC5jb2wtbWFpbiAud2lkZ2V0LFxuICAuY29sMi1yaWdodC1sYXlvdXQgLmNvbC1tYWluIC53aWRnZXQsXG4gIC5jb2wzLWxheW91dCAuY29sLW1haW4gLndpZGdldCB7XG4gICAgLyogQ29uZmlnOiBDb2x1bW5zICsgZmxleGlibGUgZ3V0dGVyICovXG4gICAgLyogVW5kbyB0aHJlZS1jb2x1bW4gY29uZmlnICovXG4gICAgLyogU2V0IGNvbHVtbiBjb25maWcgKi9cbiAgICAvKiBDb25maWc6IENvbHVtbnMgKyBmbGV4aWJsZSBndXR0ZXIgKi9cbiAgICAvKiBVbmRvIHRocmVlLWNvbHVtbiBjb25maWcgKi9cbiAgICAvKiBTZXQgY29sdW1uIGNvbmZpZyAqLyB9XG4gICAgLmNvbDItbGVmdC1sYXlvdXQgLmNvbC1tYWluIC53aWRnZXQgLnByb2R1Y3RzLWdyaWQtLW1heC00LWNvbC13aWRnZXQgPiBsaTpudGgtY2hpbGQob2RkKSxcbiAgICAuY29sMi1yaWdodC1sYXlvdXQgLmNvbC1tYWluIC53aWRnZXQgLnByb2R1Y3RzLWdyaWQtLW1heC00LWNvbC13aWRnZXQgPiBsaTpudGgtY2hpbGQob2RkKSxcbiAgICAuY29sMy1sYXlvdXQgLmNvbC1tYWluIC53aWRnZXQgLnByb2R1Y3RzLWdyaWQtLW1heC00LWNvbC13aWRnZXQgPiBsaTpudGgtY2hpbGQob2RkKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC5jb2wyLWxlZnQtbGF5b3V0IC5jb2wtbWFpbiAud2lkZ2V0IC5wcm9kdWN0cy1ncmlkLS1tYXgtNC1jb2wtd2lkZ2V0ID4gbGk6bnRoLWNoaWxkKDNuKzEpLFxuICAgIC5jb2wyLXJpZ2h0LWxheW91dCAuY29sLW1haW4gLndpZGdldCAucHJvZHVjdHMtZ3JpZC0tbWF4LTQtY29sLXdpZGdldCA+IGxpOm50aC1jaGlsZCgzbisxKSxcbiAgICAuY29sMy1sYXlvdXQgLmNvbC1tYWluIC53aWRnZXQgLnByb2R1Y3RzLWdyaWQtLW1heC00LWNvbC13aWRnZXQgPiBsaTpudGgtY2hpbGQoM24rMSkge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAuY29sMi1sZWZ0LWxheW91dCAuY29sLW1haW4gLndpZGdldCAucHJvZHVjdHMtZ3JpZC0tbWF4LTQtY29sLXdpZGdldCA+IGxpOm50aC1jaGlsZChldmVuKSxcbiAgICAuY29sMi1sZWZ0LWxheW91dCAuY29sLW1haW4gLndpZGdldCAucHJvZHVjdHMtZ3JpZC0tbWF4LTQtY29sLXdpZGdldCA+IGxpOm50aC1jaGlsZCgzbiksXG4gICAgLmNvbDItcmlnaHQtbGF5b3V0IC5jb2wtbWFpbiAud2lkZ2V0IC5wcm9kdWN0cy1ncmlkLS1tYXgtNC1jb2wtd2lkZ2V0ID4gbGk6bnRoLWNoaWxkKGV2ZW4pLFxuICAgIC5jb2wyLXJpZ2h0LWxheW91dCAuY29sLW1haW4gLndpZGdldCAucHJvZHVjdHMtZ3JpZC0tbWF4LTQtY29sLXdpZGdldCA+IGxpOm50aC1jaGlsZCgzbiksXG4gICAgLmNvbDMtbGF5b3V0IC5jb2wtbWFpbiAud2lkZ2V0IC5wcm9kdWN0cy1ncmlkLS1tYXgtNC1jb2wtd2lkZ2V0ID4gbGk6bnRoLWNoaWxkKGV2ZW4pLFxuICAgIC5jb2wzLWxheW91dCAuY29sLW1haW4gLndpZGdldCAucHJvZHVjdHMtZ3JpZC0tbWF4LTQtY29sLXdpZGdldCA+IGxpOm50aC1jaGlsZCgzbikge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAyLjI0NzE5JTsgfVxuICAgIC5jb2wyLWxlZnQtbGF5b3V0IC5jb2wtbWFpbiAud2lkZ2V0IC5wcm9kdWN0cy1ncmlkLS1tYXgtNC1jb2wtd2lkZ2V0ID4gbGksXG4gICAgLmNvbDItcmlnaHQtbGF5b3V0IC5jb2wtbWFpbiAud2lkZ2V0IC5wcm9kdWN0cy1ncmlkLS1tYXgtNC1jb2wtd2lkZ2V0ID4gbGksXG4gICAgLmNvbDMtbGF5b3V0IC5jb2wtbWFpbiAud2lkZ2V0IC5wcm9kdWN0cy1ncmlkLS1tYXgtNC1jb2wtd2lkZ2V0ID4gbGkge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAyLjI0NzE5JTsgfVxuICAgIC5jb2wyLWxlZnQtbGF5b3V0IC5jb2wtbWFpbiAud2lkZ2V0IC5wcm9kdWN0cy1ncmlkLS1tYXgtNC1jb2wtd2lkZ2V0ID4gbGksXG4gICAgLmNvbDItcmlnaHQtbGF5b3V0IC5jb2wtbWFpbiAud2lkZ2V0IC5wcm9kdWN0cy1ncmlkLS1tYXgtNC1jb2wtd2lkZ2V0ID4gbGksXG4gICAgLmNvbDMtbGF5b3V0IC5jb2wtbWFpbiAud2lkZ2V0IC5wcm9kdWN0cy1ncmlkLS1tYXgtNC1jb2wtd2lkZ2V0ID4gbGkge1xuICAgICAgd2lkdGg6IDIzLjMxNDYxJTtcbiAgICAgIG1hcmdpbi1yaWdodDogMi4yNDcxOSU7IH1cbiAgICAuY29sMi1sZWZ0LWxheW91dCAuY29sLW1haW4gLndpZGdldCAucHJvZHVjdHMtZ3JpZC0tbWF4LTQtY29sLXdpZGdldCA+IGxpOm50aC1jaGlsZCg0bisxKSxcbiAgICAuY29sMi1yaWdodC1sYXlvdXQgLmNvbC1tYWluIC53aWRnZXQgLnByb2R1Y3RzLWdyaWQtLW1heC00LWNvbC13aWRnZXQgPiBsaTpudGgtY2hpbGQoNG4rMSksXG4gICAgLmNvbDMtbGF5b3V0IC5jb2wtbWFpbiAud2lkZ2V0IC5wcm9kdWN0cy1ncmlkLS1tYXgtNC1jb2wtd2lkZ2V0ID4gbGk6bnRoLWNoaWxkKDRuKzEpIHtcbiAgICAgIGNsZWFyOiBsZWZ0OyB9XG4gICAgLmNvbDItbGVmdC1sYXlvdXQgLmNvbC1tYWluIC53aWRnZXQgLnByb2R1Y3RzLWdyaWQtLW1heC00LWNvbC13aWRnZXQgPiBsaTpudGgtY2hpbGQoNG4pLFxuICAgIC5jb2wyLXJpZ2h0LWxheW91dCAuY29sLW1haW4gLndpZGdldCAucHJvZHVjdHMtZ3JpZC0tbWF4LTQtY29sLXdpZGdldCA+IGxpOm50aC1jaGlsZCg0biksXG4gICAgLmNvbDMtbGF5b3V0IC5jb2wtbWFpbiAud2lkZ2V0IC5wcm9kdWN0cy1ncmlkLS1tYXgtNC1jb2wtd2lkZ2V0ID4gbGk6bnRoLWNoaWxkKDRuKSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cbiAgICAuY29sMi1sZWZ0LWxheW91dCAuY29sLW1haW4gLndpZGdldCAucHJvZHVjdHMtZ3JpZC0tbWF4LTUtY29sLXdpZGdldCA+IGxpOm50aC1jaGlsZChvZGQpLFxuICAgIC5jb2wyLXJpZ2h0LWxheW91dCAuY29sLW1haW4gLndpZGdldCAucHJvZHVjdHMtZ3JpZC0tbWF4LTUtY29sLXdpZGdldCA+IGxpOm50aC1jaGlsZChvZGQpLFxuICAgIC5jb2wzLWxheW91dCAuY29sLW1haW4gLndpZGdldCAucHJvZHVjdHMtZ3JpZC0tbWF4LTUtY29sLXdpZGdldCA+IGxpOm50aC1jaGlsZChvZGQpIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLmNvbDItbGVmdC1sYXlvdXQgLmNvbC1tYWluIC53aWRnZXQgLnByb2R1Y3RzLWdyaWQtLW1heC01LWNvbC13aWRnZXQgPiBsaTpudGgtY2hpbGQoM24rMSksXG4gICAgLmNvbDItcmlnaHQtbGF5b3V0IC5jb2wtbWFpbiAud2lkZ2V0IC5wcm9kdWN0cy1ncmlkLS1tYXgtNS1jb2wtd2lkZ2V0ID4gbGk6bnRoLWNoaWxkKDNuKzEpLFxuICAgIC5jb2wzLWxheW91dCAuY29sLW1haW4gLndpZGdldCAucHJvZHVjdHMtZ3JpZC0tbWF4LTUtY29sLXdpZGdldCA+IGxpOm50aC1jaGlsZCgzbisxKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC5jb2wyLWxlZnQtbGF5b3V0IC5jb2wtbWFpbiAud2lkZ2V0IC5wcm9kdWN0cy1ncmlkLS1tYXgtNS1jb2wtd2lkZ2V0ID4gbGk6bnRoLWNoaWxkKGV2ZW4pLFxuICAgIC5jb2wyLWxlZnQtbGF5b3V0IC5jb2wtbWFpbiAud2lkZ2V0IC5wcm9kdWN0cy1ncmlkLS1tYXgtNS1jb2wtd2lkZ2V0ID4gbGk6bnRoLWNoaWxkKDNuKSxcbiAgICAuY29sMi1yaWdodC1sYXlvdXQgLmNvbC1tYWluIC53aWRnZXQgLnByb2R1Y3RzLWdyaWQtLW1heC01LWNvbC13aWRnZXQgPiBsaTpudGgtY2hpbGQoZXZlbiksXG4gICAgLmNvbDItcmlnaHQtbGF5b3V0IC5jb2wtbWFpbiAud2lkZ2V0IC5wcm9kdWN0cy1ncmlkLS1tYXgtNS1jb2wtd2lkZ2V0ID4gbGk6bnRoLWNoaWxkKDNuKSxcbiAgICAuY29sMy1sYXlvdXQgLmNvbC1tYWluIC53aWRnZXQgLnByb2R1Y3RzLWdyaWQtLW1heC01LWNvbC13aWRnZXQgPiBsaTpudGgtY2hpbGQoZXZlbiksXG4gICAgLmNvbDMtbGF5b3V0IC5jb2wtbWFpbiAud2lkZ2V0IC5wcm9kdWN0cy1ncmlkLS1tYXgtNS1jb2wtd2lkZ2V0ID4gbGk6bnRoLWNoaWxkKDNuKSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDIuMjQ3MTklOyB9XG4gICAgLmNvbDItbGVmdC1sYXlvdXQgLmNvbC1tYWluIC53aWRnZXQgLnByb2R1Y3RzLWdyaWQtLW1heC01LWNvbC13aWRnZXQgPiBsaSxcbiAgICAuY29sMi1yaWdodC1sYXlvdXQgLmNvbC1tYWluIC53aWRnZXQgLnByb2R1Y3RzLWdyaWQtLW1heC01LWNvbC13aWRnZXQgPiBsaSxcbiAgICAuY29sMy1sYXlvdXQgLmNvbC1tYWluIC53aWRnZXQgLnByb2R1Y3RzLWdyaWQtLW1heC01LWNvbC13aWRnZXQgPiBsaSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDIuMjQ3MTklOyB9XG4gICAgLmNvbDItbGVmdC1sYXlvdXQgLmNvbC1tYWluIC53aWRnZXQgLnByb2R1Y3RzLWdyaWQtLW1heC01LWNvbC13aWRnZXQgPiBsaSxcbiAgICAuY29sMi1yaWdodC1sYXlvdXQgLmNvbC1tYWluIC53aWRnZXQgLnByb2R1Y3RzLWdyaWQtLW1heC01LWNvbC13aWRnZXQgPiBsaSxcbiAgICAuY29sMy1sYXlvdXQgLmNvbC1tYWluIC53aWRnZXQgLnByb2R1Y3RzLWdyaWQtLW1heC01LWNvbC13aWRnZXQgPiBsaSB7XG4gICAgICB3aWR0aDogMTguMjAyMjUlO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAyLjI0NzE5JTsgfVxuICAgIC5jb2wyLWxlZnQtbGF5b3V0IC5jb2wtbWFpbiAud2lkZ2V0IC5wcm9kdWN0cy1ncmlkLS1tYXgtNS1jb2wtd2lkZ2V0ID4gbGk6bnRoLWNoaWxkKDVuKzEpLFxuICAgIC5jb2wyLXJpZ2h0LWxheW91dCAuY29sLW1haW4gLndpZGdldCAucHJvZHVjdHMtZ3JpZC0tbWF4LTUtY29sLXdpZGdldCA+IGxpOm50aC1jaGlsZCg1bisxKSxcbiAgICAuY29sMy1sYXlvdXQgLmNvbC1tYWluIC53aWRnZXQgLnByb2R1Y3RzLWdyaWQtLW1heC01LWNvbC13aWRnZXQgPiBsaTpudGgtY2hpbGQoNW4rMSkge1xuICAgICAgY2xlYXI6IGxlZnQ7IH1cbiAgICAuY29sMi1sZWZ0LWxheW91dCAuY29sLW1haW4gLndpZGdldCAucHJvZHVjdHMtZ3JpZC0tbWF4LTUtY29sLXdpZGdldCA+IGxpOm50aC1jaGlsZCg1biksXG4gICAgLmNvbDItcmlnaHQtbGF5b3V0IC5jb2wtbWFpbiAud2lkZ2V0IC5wcm9kdWN0cy1ncmlkLS1tYXgtNS1jb2wtd2lkZ2V0ID4gbGk6bnRoLWNoaWxkKDVuKSxcbiAgICAuY29sMy1sYXlvdXQgLmNvbC1tYWluIC53aWRnZXQgLnByb2R1Y3RzLWdyaWQtLW1heC01LWNvbC13aWRnZXQgPiBsaTpudGgtY2hpbGQoNW4pIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDsgfSB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzcwcHgpIHtcbiAgLmNvbDEtbGF5b3V0IC5jb2wtbWFpbiAud2lkZ2V0IHtcbiAgICAvKiBDb25maWc6IENvbHVtbnMgKyBmbGV4aWJsZSBndXR0ZXIgKi9cbiAgICAvKiBVbmRvIHRocmVlLWNvbHVtbiBjb25maWcgKi9cbiAgICAvKiBTZXQgY29sdW1uIGNvbmZpZyAqL1xuICAgIC8qIENvbmZpZzogQ29sdW1ucyArIGZsZXhpYmxlIGd1dHRlciAqL1xuICAgIC8qIFVuZG8gdGhyZWUtY29sdW1uIGNvbmZpZyAqL1xuICAgIC8qIFNldCBjb2x1bW4gY29uZmlnICovIH1cbiAgICAuY29sMS1sYXlvdXQgLmNvbC1tYWluIC53aWRnZXQgLnByb2R1Y3RzLWdyaWQtLW1heC00LWNvbC13aWRnZXQgPiBsaTpudGgtY2hpbGQob2RkKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC5jb2wxLWxheW91dCAuY29sLW1haW4gLndpZGdldCAucHJvZHVjdHMtZ3JpZC0tbWF4LTQtY29sLXdpZGdldCA+IGxpOm50aC1jaGlsZCgzbisxKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC5jb2wxLWxheW91dCAuY29sLW1haW4gLndpZGdldCAucHJvZHVjdHMtZ3JpZC0tbWF4LTQtY29sLXdpZGdldCA+IGxpOm50aC1jaGlsZChldmVuKSxcbiAgICAuY29sMS1sYXlvdXQgLmNvbC1tYWluIC53aWRnZXQgLnByb2R1Y3RzLWdyaWQtLW1heC00LWNvbC13aWRnZXQgPiBsaTpudGgtY2hpbGQoM24pIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMi4yNDcxOSU7IH1cbiAgICAuY29sMS1sYXlvdXQgLmNvbC1tYWluIC53aWRnZXQgLnByb2R1Y3RzLWdyaWQtLW1heC00LWNvbC13aWRnZXQgPiBsaSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDIuMjQ3MTklOyB9XG4gICAgLmNvbDEtbGF5b3V0IC5jb2wtbWFpbiAud2lkZ2V0IC5wcm9kdWN0cy1ncmlkLS1tYXgtNC1jb2wtd2lkZ2V0ID4gbGkge1xuICAgICAgd2lkdGg6IDIzLjMxNDYxJTtcbiAgICAgIG1hcmdpbi1yaWdodDogMi4yNDcxOSU7IH1cbiAgICAuY29sMS1sYXlvdXQgLmNvbC1tYWluIC53aWRnZXQgLnByb2R1Y3RzLWdyaWQtLW1heC00LWNvbC13aWRnZXQgPiBsaTpudGgtY2hpbGQoNG4rMSkge1xuICAgICAgY2xlYXI6IGxlZnQ7IH1cbiAgICAuY29sMS1sYXlvdXQgLmNvbC1tYWluIC53aWRnZXQgLnByb2R1Y3RzLWdyaWQtLW1heC00LWNvbC13aWRnZXQgPiBsaTpudGgtY2hpbGQoNG4pIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDsgfVxuICAgIC5jb2wxLWxheW91dCAuY29sLW1haW4gLndpZGdldCAucHJvZHVjdHMtZ3JpZC0tbWF4LTUtY29sLXdpZGdldCA+IGxpOm50aC1jaGlsZChvZGQpIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLmNvbDEtbGF5b3V0IC5jb2wtbWFpbiAud2lkZ2V0IC5wcm9kdWN0cy1ncmlkLS1tYXgtNS1jb2wtd2lkZ2V0ID4gbGk6bnRoLWNoaWxkKDNuKzEpIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLmNvbDEtbGF5b3V0IC5jb2wtbWFpbiAud2lkZ2V0IC5wcm9kdWN0cy1ncmlkLS1tYXgtNS1jb2wtd2lkZ2V0ID4gbGk6bnRoLWNoaWxkKGV2ZW4pLFxuICAgIC5jb2wxLWxheW91dCAuY29sLW1haW4gLndpZGdldCAucHJvZHVjdHMtZ3JpZC0tbWF4LTUtY29sLXdpZGdldCA+IGxpOm50aC1jaGlsZCgzbikge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAyLjI0NzE5JTsgfVxuICAgIC5jb2wxLWxheW91dCAuY29sLW1haW4gLndpZGdldCAucHJvZHVjdHMtZ3JpZC0tbWF4LTUtY29sLXdpZGdldCA+IGxpIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMi4yNDcxOSU7IH1cbiAgICAuY29sMS1sYXlvdXQgLmNvbC1tYWluIC53aWRnZXQgLnByb2R1Y3RzLWdyaWQtLW1heC01LWNvbC13aWRnZXQgPiBsaSB7XG4gICAgICB3aWR0aDogMTguMjAyMjUlO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAyLjI0NzE5JTsgfVxuICAgIC5jb2wxLWxheW91dCAuY29sLW1haW4gLndpZGdldCAucHJvZHVjdHMtZ3JpZC0tbWF4LTUtY29sLXdpZGdldCA+IGxpOm50aC1jaGlsZCg1bisxKSB7XG4gICAgICBjbGVhcjogbGVmdDsgfVxuICAgIC5jb2wxLWxheW91dCAuY29sLW1haW4gLndpZGdldCAucHJvZHVjdHMtZ3JpZC0tbWF4LTUtY29sLXdpZGdldCA+IGxpOm50aC1jaGlsZCg1bikge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogQ2hlY2tvdXQgLSBNdWx0aXBsZSBBZGRyZXNzZXNcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5ib2R5W2NsYXNzKj1cImNoZWNrb3V0LW11bHRpc2hpcHBpbmctXCJdIC5jaGVja291dC1wcm9ncmVzcyB7XG4gIHdpZHRoOiAxMDAlO1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luLWJvdHRvbTogMjVweDsgfVxuICBib2R5W2NsYXNzKj1cImNoZWNrb3V0LW11bHRpc2hpcHBpbmctXCJdIC5jaGVja291dC1wcm9ncmVzcyA+IGxpIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMjAlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwYWRkaW5nOiA4cHggMSUgNnB4O1xuICAgIGJhY2tncm91bmQ6ICNGNEY0RjQ7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0NDQ0NDQztcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjQ0NDQ0NDO1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgZm9udC1mYW1pbHk6IFwiVWJ1bnR1VGl0bGluZy1Cb2xkXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgVmVyZGFuYSwgQXJpYWwsIHNhbnMtc2VyaWY7IH1cbiAgICBib2R5W2NsYXNzKj1cImNoZWNrb3V0LW11bHRpc2hpcHBpbmctXCJdIC5jaGVja291dC1wcm9ncmVzcyA+IGxpLmFjdGl2ZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjREREREREOyB9XG4gICAgYm9keVtjbGFzcyo9XCJjaGVja291dC1tdWx0aXNoaXBwaW5nLVwiXSAuY2hlY2tvdXQtcHJvZ3Jlc3MgPiBsaS5sYXN0IHtcbiAgICAgIGJvcmRlci1yaWdodDogMHB4OyB9XG5cbmJvZHlbY2xhc3MqPVwiY2hlY2tvdXQtbXVsdGlzaGlwcGluZy1cIl0gLnBhZ2UtdGl0bGUge1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206IDE1cHg7IH1cbiAgYm9keVtjbGFzcyo9XCJjaGVja291dC1tdWx0aXNoaXBwaW5nLVwiXSAucGFnZS10aXRsZSBoMSB7XG4gICAgYm9yZGVyOiAwIG5vbmU7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luLXRvcDogMnB4O1xuICAgIG1hcmdpbi1yaWdodDogMiU7IH1cbiAgYm9keVtjbGFzcyo9XCJjaGVja291dC1tdWx0aXNoaXBwaW5nLVwiXSAucGFnZS10aXRsZSAuYnV0dG9uIHtcbiAgICBmbG9hdDogcmlnaHQ7IH1cblxuYm9keVtjbGFzcyo9XCJjaGVja291dC1tdWx0aXNoaXBwaW5nLVwiXSAubXVsdGlwbGUtY2hlY2tvdXQgPiBoMiB7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBmb250LXNpemU6IDE3cHg7XG4gIG1hcmdpbi1ib3R0b206IDE1cHg7IH1cblxuYm9keVtjbGFzcyo9XCJjaGVja291dC1tdWx0aXNoaXBwaW5nLVwiXSAubWVzc2FnZXMge1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IDEwMCU7IH1cblxuYm9keVtjbGFzcyo9XCJjaGVja291dC1tdWx0aXNoaXBwaW5nLVwiXSAuY29sLTIuY29sLXdpZGUge1xuICB3aWR0aDogNjYlOyB9XG5cbmJvZHlbY2xhc3MqPVwiY2hlY2tvdXQtbXVsdGlzaGlwcGluZy1cIl0gLmNvbC0xLmNvbC1uYXJyb3cge1xuICB3aWR0aDogMzAlOyB9XG5cbmJvZHlbY2xhc3MqPVwiY2hlY2tvdXQtbXVsdGlzaGlwcGluZy1cIl0gLmFjdGlvbnMge1xuICBtYXJnaW4tYm90dG9tOiAxMHB4OyB9XG5cbmJvZHlbY2xhc3MqPVwiY2hlY2tvdXQtbXVsdGlzaGlwcGluZy1cIl0gLmdyYW5kLXRvdGFsIHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cblxuYm9keVtjbGFzcyo9XCJjaGVja291dC1tdWx0aXNoaXBwaW5nLVwiXSAjY2hlY2tvdXQtcmV2aWV3LXN1Ym1pdCB7XG4gIGZsb2F0OiByaWdodDsgfVxuXG5ib2R5W2NsYXNzKj1cImNoZWNrb3V0LW11bHRpc2hpcHBpbmctXCJdICNyZXZpZXctYnV0dG9ucy1jb250YWluZXIge1xuICBmbG9hdDogcmlnaHQ7XG4gIHRleHQtYWxpZ246IHJpZ2h0OyB9XG5cbi5jaGVja291dC1tdWx0aXNoaXBwaW5nLWFkZHJlc3NlcyAuYnRuLXJlbW92ZTIge1xuICB0ZXh0LWluZGVudDogLTU1NTVweDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAyMnB4O1xuICBoZWlnaHQ6IDIycHg7IH1cblxuLmNoZWNrb3V0LW11bHRpc2hpcHBpbmctc2hpcHBpbmcgLmdpZnQtbWVzc2FnZXMge1xuICBtYXJnaW4tdG9wOiAyMHB4OyB9XG5cbi5jaGVja291dC1tdWx0aXNoaXBwaW5nLXNoaXBwaW5nIC5naWZ0LW1lc3NhZ2VzLWZvcm0ge1xuICBtYXJnaW4tdG9wOiAxNXB4OyB9XG4gIC5jaGVja291dC1tdWx0aXNoaXBwaW5nLXNoaXBwaW5nIC5naWZ0LW1lc3NhZ2VzLWZvcm0gaDQge1xuICAgIG1hcmdpbi10b3A6IDE1cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogNXB4OyB9XG4gIC5jaGVja291dC1tdWx0aXNoaXBwaW5nLXNoaXBwaW5nIC5naWZ0LW1lc3NhZ2VzLWZvcm0gLmZvcm0tbGlzdCB7XG4gICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICBtYXJnaW4tYm90dG9tOiAyNXB4OyB9XG4gIC5jaGVja291dC1tdWx0aXNoaXBwaW5nLXNoaXBwaW5nIC5naWZ0LW1lc3NhZ2VzLWZvcm0gLml0ZW0ge1xuICAgIG1hcmdpbi10b3A6IDE1cHg7IH1cblxuLmNoZWNrb3V0LW11bHRpc2hpcHBpbmctc2hpcHBpbmcgLmNvbC0xIC5ib3gtdGl0bGUgaDIsIC5jaGVja291dC1tdWx0aXNoaXBwaW5nLXNoaXBwaW5nIC5jb2wtMSAuYm94LXRpdGxlIGgzLCAuY2hlY2tvdXQtbXVsdGlzaGlwcGluZy1zaGlwcGluZyAuY29sLTEgLmJveC10aXRsZSBoNCwgLmNoZWNrb3V0LW11bHRpc2hpcHBpbmctc2hpcHBpbmcgLmNvbC0yIC5ib3gtdGl0bGUgaDIsIC5jaGVja291dC1tdWx0aXNoaXBwaW5nLXNoaXBwaW5nIC5jb2wtMiAuYm94LXRpdGxlIGgzLCAuY2hlY2tvdXQtbXVsdGlzaGlwcGluZy1zaGlwcGluZyAuY29sLTIgLmJveC10aXRsZSBoNCxcbi5jaGVja291dC1tdWx0aXNoaXBwaW5nLWJpbGxpbmcgLmNvbC0xIC5ib3gtdGl0bGUgaDIsXG4uY2hlY2tvdXQtbXVsdGlzaGlwcGluZy1iaWxsaW5nIC5jb2wtMSAuYm94LXRpdGxlIGgzLFxuLmNoZWNrb3V0LW11bHRpc2hpcHBpbmctYmlsbGluZyAuY29sLTEgLmJveC10aXRsZSBoNCxcbi5jaGVja291dC1tdWx0aXNoaXBwaW5nLWJpbGxpbmcgLmNvbC0yIC5ib3gtdGl0bGUgaDIsXG4uY2hlY2tvdXQtbXVsdGlzaGlwcGluZy1iaWxsaW5nIC5jb2wtMiAuYm94LXRpdGxlIGgzLFxuLmNoZWNrb3V0LW11bHRpc2hpcHBpbmctYmlsbGluZyAuY29sLTIgLmJveC10aXRsZSBoNCxcbi5jaGVja291dC1tdWx0aXNoaXBwaW5nLW92ZXJ2aWV3IC5jb2wtMSAuYm94LXRpdGxlIGgyLFxuLmNoZWNrb3V0LW11bHRpc2hpcHBpbmctb3ZlcnZpZXcgLmNvbC0xIC5ib3gtdGl0bGUgaDMsXG4uY2hlY2tvdXQtbXVsdGlzaGlwcGluZy1vdmVydmlldyAuY29sLTEgLmJveC10aXRsZSBoNCxcbi5jaGVja291dC1tdWx0aXNoaXBwaW5nLW92ZXJ2aWV3IC5jb2wtMiAuYm94LXRpdGxlIGgyLFxuLmNoZWNrb3V0LW11bHRpc2hpcHBpbmctb3ZlcnZpZXcgLmNvbC0yIC5ib3gtdGl0bGUgaDMsXG4uY2hlY2tvdXQtbXVsdGlzaGlwcGluZy1vdmVydmlldyAuY29sLTIgLmJveC10aXRsZSBoNCB7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kOiAjRjRGNEY0O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0NDQ0NDQztcbiAgcGFkZGluZzogMTBweDtcbiAgZm9udC1zaXplOiAxNHB4OyB9XG5cbi5jaGVja291dC1tdWx0aXNoaXBwaW5nLXNoaXBwaW5nIC5jb2wtMSA+IGg0LCAuY2hlY2tvdXQtbXVsdGlzaGlwcGluZy1zaGlwcGluZyAuY29sLTIgPiBoNCxcbi5jaGVja291dC1tdWx0aXNoaXBwaW5nLWJpbGxpbmcgLmNvbC0xID4gaDQsXG4uY2hlY2tvdXQtbXVsdGlzaGlwcGluZy1iaWxsaW5nIC5jb2wtMiA+IGg0LFxuLmNoZWNrb3V0LW11bHRpc2hpcHBpbmctb3ZlcnZpZXcgLmNvbC0xID4gaDQsXG4uY2hlY2tvdXQtbXVsdGlzaGlwcGluZy1vdmVydmlldyAuY29sLTIgPiBoNCB7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kOiAjRjRGNEY0O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0NDQ0NDQztcbiAgcGFkZGluZzogMTBweDtcbiAgZm9udC1zaXplOiAxNHB4OyB9XG5cbi5jaGVja291dC1tdWx0aXNoaXBwaW5nLXNoaXBwaW5nIC5jb2wtMSAuYm94LWNvbnRlbnQsIC5jaGVja291dC1tdWx0aXNoaXBwaW5nLXNoaXBwaW5nIC5jb2wtMiAuYm94LWNvbnRlbnQsXG4uY2hlY2tvdXQtbXVsdGlzaGlwcGluZy1iaWxsaW5nIC5jb2wtMSAuYm94LWNvbnRlbnQsXG4uY2hlY2tvdXQtbXVsdGlzaGlwcGluZy1iaWxsaW5nIC5jb2wtMiAuYm94LWNvbnRlbnQsXG4uY2hlY2tvdXQtbXVsdGlzaGlwcGluZy1vdmVydmlldyAuY29sLTEgLmJveC1jb250ZW50LFxuLmNoZWNrb3V0LW11bHRpc2hpcHBpbmctb3ZlcnZpZXcgLmNvbC0yIC5ib3gtY29udGVudCB7XG4gIG1hcmdpbi1ib3R0b206IDI1cHg7XG4gIHBhZGRpbmctbGVmdDogMTBweDtcbiAgbWFyZ2luLXRvcDogMTBweDsgfVxuXG4uY2hlY2tvdXQtbXVsdGlzaGlwcGluZy1iaWxsaW5nIC5zcC1tZXRob2RzIGR0IHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbiNtdWx0aXNoaXAtYWRkcmVzc2VzLXRhYmxlID4gdGJvZHkgPiB0ciA+IHRkLmEtY2VudGVyLmxhc3QgPiBhIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTsgfVxuXG4jcmV2aWV3LW9yZGVyLWZvcm0gPiBkaXY6bnRoLWNoaWxkKDMpID4gZGl2LmRpdmlkZXIge1xuICB3aWR0aDogMTAwJTtcbiAgY2xlYXI6IGJvdGg7IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5NzlweCkge1xuICBib2R5W2NsYXNzKj1cImNoZWNrb3V0LW11bHRpc2hpcHBpbmctXCJdIC5jaGVja291dC1wcm9ncmVzcyBzcGFuIHtcbiAgICB3b3JkLXNwYWNpbmc6IDMwMHB4OyB9XG4gICNyZXZpZXctb3JkZXItZm9ybSAuY29sLTEsXG4gICNyZXZpZXctb3JkZXItZm9ybSAuY29sLTIge1xuICAgIGZsb2F0OiBub25lO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGJvcmRlcjogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIHBhZGRpbmctbGVmdDogMDsgfSB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzcwcHgpIHtcbiAgYm9keVtjbGFzcyo9XCJjaGVja291dC1tdWx0aXNoaXBwaW5nLVwiXSAuY2hlY2tvdXQtcHJvZ3Jlc3Mgc3BhbiB7XG4gICAgd2lkdGg6IDEycHg7IH1cbiAgYm9keVtjbGFzcyo9XCJjaGVja291dC1tdWx0aXNoaXBwaW5nLVwiXSAuY2hlY2tvdXQtcHJvZ3Jlc3MgbGkge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIHBhZGRpbmctbGVmdDogMyU7XG4gICAgYm9yZGVyLXJpZ2h0OiAwcHg7IH1cbiAgYm9keVtjbGFzcyo9XCJjaGVja291dC1tdWx0aXNoaXBwaW5nLVwiXSAuY2hlY2tvdXQtcHJvZ3Jlc3Mgc3BhbiB7XG4gICAgd29yZC1zcGFjaW5nOiAxcHg7XG4gICAgd2lkdGg6IDEycHg7IH1cbiAgYm9keVtjbGFzcyo9XCJjaGVja291dC1tdWx0aXNoaXBwaW5nLVwiXSAuYm94LXRpdGxlIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMTAwJTsgfVxuICBib2R5W2NsYXNzKj1cImNoZWNrb3V0LW11bHRpc2hpcHBpbmctXCJdIC5wYWdlLXRpdGxlIC5idXR0b24ge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7IH1cbiAgYm9keVtjbGFzcyo9XCJjaGVja291dC1tdWx0aXNoaXBwaW5nLVwiXSAubGluZWFyaXplLXRhYmxlIHRmb290IHRkIHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDsgfVxuICBib2R5W2NsYXNzKj1cImNoZWNrb3V0LW11bHRpc2hpcHBpbmctXCJdIC5saW5lYXJpemUtdGFibGUgc2VsZWN0IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtaW4td2lkdGg6IDIwMHB4OyB9XG4gIGJvZHlbY2xhc3MqPVwiY2hlY2tvdXQtbXVsdGlzaGlwcGluZy1cIl0gLmNvbC0xLmNvbC1uYXJyb3csIGJvZHlbY2xhc3MqPVwiY2hlY2tvdXQtbXVsdGlzaGlwcGluZy1cIl0gLmNvbC0yLmNvbC13aWRlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAwOyB9IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAuY2hlY2tvdXQtbXVsdGlzaGlwcGluZy1hZGRyZXNzZXMgLmxpbmVhcml6ZS10YWJsZSB0Ym9keSB0ZFtkYXRhLXJ3ZC1sYWJlbF0ge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICAgIG1hcmdpbi10b3A6IDEycHg7IH0gfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ3OXB4KSB7XG4gIGJvZHlbY2xhc3MqPVwiY2hlY2tvdXQtbXVsdGlzaGlwcGluZy1cIl0gLmJ1dHRvbnMtc2V0IC5iYWNrLWxpbmsge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9IH1cblxuaHIge1xuICBtYXJnaW46IDJlbSAwO1xuICBib3JkZXI6IDFweCBkb3R0ZWQgIzAwM2I1ZjtcbiAgYm9yZGVyLXdpZHRoOiAxcHggMCAwIDA7IH1cblxuYm9keS5pcy1ibG9nIGlmcmFtZTpub3QoW3RpdGxlPVwicmVDQVBUQ0hBLVdpZGdldFwiXSkge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAzMDBweDsgfVxuXG5ib2R5LmlzLWJsb2cgLnBhZ2UtbGF5b3V0LS1uYXJyb3cge1xuICBtYXgtd2lkdGg6IDY4MHB4O1xuICBtYXJnaW46IGF1dG87IH1cblxuYm9keS5pcy1ibG9nIC5wYWdlLWxheW91dC0tZnVsbCB7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbi50ZXN0LWRldmljZS1ibG9jayB7XG4gIG1hcmdpbjogMS41ZW0gMDsgfVxuXG4ud29yZHByZXNzLXBhZ2UtNzkgLmJsb2NrLWJsb2ctbWVudSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuI2hlYWRlci1uYXYgLm5hdi0xIC52aWV3LWFsbCB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLmlzLWJsb2cgI2hlYWRlci1uYXYge1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICMwMDNiNWY7IH1cblxuLmlzLWJsb2cgLmNvbC1tYWluIHtcbiAgbWFyZ2luLWJvdHRvbTogMzVweDsgfVxuXG4ud29yZHByZXNzLWxheW91dC1mdWxsc2NyZWVuICNoZWFkZXItbmF2LCAud29yZHByZXNzLWluZGV4LWluZGV4ICNoZWFkZXItbmF2LCAud29yZHByZXNzLXBvc3QtdmlldyAjaGVhZGVyLW5hdiB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7IH1cblxuLmxheW91dC1sYW5kaW5ncGFnZSAjaGVhZGVyLW5hdiB7XG4gIGJvcmRlci1ib3R0b206IG5vbmUgIWltcG9ydGFudDtcbiAgcGFkZGluZy1ib3R0b206IDAgIWltcG9ydGFudDsgfVxuXG4ubGF5b3V0LWxhbmRpbmdwYWdlIC5mb290ZXIge1xuICBib3JkZXItdG9wOiBub25lOyB9XG5cbi5sYXlvdXQtbGFuZGluZ3BhZ2UgLnBvc3QtZW50cnkgaHI6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7IH1cblxuLndvcmRwcmVzcy1wb3N0LXZpZXcgLm1haW4tY29udGFpbmVyIHtcbiAgbWFyZ2luLXRvcDogMDsgfVxuXG4ucmVzZWxsZXJzLnJvdzpsYXN0LWNoaWxkLCAucGVvcGxlLnJvdzpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogNzBweDsgfVxuXG4ud29yZHByZXNzLWxheW91dC1jb2wyLXJpZ2h0ICNoZWFkZXItbmF2LCAuY2F0YWxvZ3NlYXJjaC1yZXN1bHQtaW5kZXggI2hlYWRlci1uYXYge1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICMwMDNiNWY7XG4gIHBhZGRpbmctYm90dG9tOiAzNXB4OyB9XG5cbmJvZHkuaXMtYmxvZyAuY29sMi1yaWdodC1sYXlvdXQgLmNvbC1tYWluLFxuYm9keS5pcy1ibG9nIC5jb2wyLXJpZ2h0LWxheW91dCAuY29sLXJpZ2h0IHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuXG5ib2R5LmlzLWJsb2cgLmNvbDItc2V0IC5jb2wtMSxcbmJvZHkuaXMtYmxvZyAuY29sMi1zZXQgLmNvbC0yIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuXG5mb3JtIC5yb3c6YWZ0ZXIsIC5mb3JtLXdyYXBwZXIgLnJvdzphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgY2xlYXI6IGJvdGg7IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MDBweCkge1xuICBmb3JtIC5yb3csIC5mb3JtLXdyYXBwZXIgLnJvdyB7XG4gICAgbWFyZ2luLWxlZnQ6IC0xMHB4O1xuICAgIG1hcmdpbi1yaWdodDogLTEwcHg7IH0gfVxuXG5mb3JtIC5yb3cgLmNvbC1oYWxmLFxuZm9ybSAucm93IC5jb2wtZnVsbCwgLmZvcm0td3JhcHBlciAucm93IC5jb2wtaGFsZixcbi5mb3JtLXdyYXBwZXIgLnJvdyAuY29sLWZ1bGwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgcGFkZGluZzogNXB4IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAwcHgpIHtcbiAgICBmb3JtIC5yb3cgLmNvbC1oYWxmLFxuICAgIGZvcm0gLnJvdyAuY29sLWZ1bGwsIC5mb3JtLXdyYXBwZXIgLnJvdyAuY29sLWhhbGYsXG4gICAgLmZvcm0td3JhcHBlciAucm93IC5jb2wtZnVsbCB7XG4gICAgICBwYWRkaW5nOiAxMHB4OyB9IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAgIGZvcm0gLnJvdyAuY29sLWhhbGYuc3VibWl0LFxuICAgIGZvcm0gLnJvdyAuY29sLWZ1bGwuc3VibWl0LCAuZm9ybS13cmFwcGVyIC5yb3cgLmNvbC1oYWxmLnN1Ym1pdCxcbiAgICAuZm9ybS13cmFwcGVyIC5yb3cgLmNvbC1mdWxsLnN1Ym1pdCB7XG4gICAgICBmbG9hdDogcmlnaHQ7IH0gfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gIGZvcm0gLnJvdyAuY29sLWhhbGYsIC5mb3JtLXdyYXBwZXIgLnJvdyAuY29sLWhhbGYge1xuICAgIHdpZHRoOiA1MCU7XG4gICAgZmxvYXQ6IGxlZnQ7IH0gfVxuXG5mb3JtIC5yb3cgLmNvbC1mdWxsLCAuZm9ybS13cmFwcGVyIC5yb3cgLmNvbC1mdWxsIHtcbiAgd2lkdGg6IDEwMCU7IH1cblxuLnNpZGViYXItaXRlbXMgaDMge1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXNpemU6IDIwcHg7XG4gIGNvbG9yOiAjMDAzYjVmO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgfVxuXG4uc2lkZWJhci1pdGVtcyAuYmxvY2stcmVjZW50LXBvc3RzIC5ibG9jay10aXRsZSxcbi5zaWRlYmFyLWl0ZW1zIC5ibG9jay1yZWxhdGVkLXBvc3RzIC5ibG9jay10aXRsZSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLnNpZGViYXItaXRlbXMgLmJsb2NrLXJlY2VudC1wb3N0cyAucG9zdHMtbGlzdC1pdGVtLFxuLnNpZGViYXItaXRlbXMgLmJsb2NrLXJlbGF0ZWQtcG9zdHMgLnBvc3RzLWxpc3QtaXRlbSB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZy1ib3R0b206IDFlbTsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc3MXB4KSB7XG4gICAgLnNpZGViYXItaXRlbXMgLmJsb2NrLXJlY2VudC1wb3N0cyAucG9zdHMtbGlzdC1pdGVtOmxhc3QtY2hpbGQsXG4gICAgLnNpZGViYXItaXRlbXMgLmJsb2NrLXJlbGF0ZWQtcG9zdHMgLnBvc3RzLWxpc3QtaXRlbTpsYXN0LWNoaWxkIHtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQgIzAwM2I1ZjsgfSB9XG4gIC5zaWRlYmFyLWl0ZW1zIC5ibG9jay1yZWNlbnQtcG9zdHMgLnBvc3RzLWxpc3QtaXRlbSAuZmVhdHVyZWQtaW1hZ2UsXG4gIC5zaWRlYmFyLWl0ZW1zIC5ibG9jay1yZWxhdGVkLXBvc3RzIC5wb3N0cy1saXN0LWl0ZW0gLmZlYXR1cmVkLWltYWdlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxZW07IH1cbiAgLnNpZGViYXItaXRlbXMgLmJsb2NrLXJlY2VudC1wb3N0cyAucG9zdHMtbGlzdC1pdGVtIGEsXG4gIC5zaWRlYmFyLWl0ZW1zIC5ibG9jay1yZWxhdGVkLXBvc3RzIC5wb3N0cy1saXN0LWl0ZW0gYSB7XG4gICAgY29sb3I6ICMwMDNiNWY7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDQ4MHB4KSBhbmQgKG1heC13aWR0aDogNzcwcHgpIHtcbiAgLnNpZGViYXItaXRlbXMgLmJsb2NrLXJlY2VudC1wb3N0cyAuc2lkZWJhci1wb3N0cy1saXN0OmFmdGVyLFxuICAuc2lkZWJhci1pdGVtcyAuYmxvY2stcmVsYXRlZC1wb3N0cyAuc2lkZWJhci1wb3N0cy1saXN0OmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBjbGVhcjogYm90aDsgfVxuICAuc2lkZWJhci1pdGVtcyAuYmxvY2stcmVjZW50LXBvc3RzIC5wb3N0cy1saXN0LWl0ZW0sXG4gIC5zaWRlYmFyLWl0ZW1zIC5ibG9jay1yZWxhdGVkLXBvc3RzIC5wb3N0cy1saXN0LWl0ZW0ge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiA1MCU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogMTBweDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG4gIC5zaWRlYmFyLWl0ZW1zIC5ibG9jay1yZWNlbnQtcG9zdHMgLnNpZGViYXItcG9zdHMtbGlzdCxcbiAgLnNpZGViYXItaXRlbXMgLmJsb2NrLXJlbGF0ZWQtcG9zdHMgLnNpZGViYXItcG9zdHMtbGlzdCB7XG4gICAgbWFyZ2luLWxlZnQ6IC0xMHB4O1xuICAgIG1hcmdpbi1yaWdodDogLTEwcHg7IH0gfVxuXG4uc2lkZWJhci1pdGVtcyAubGluay1saXN0IHtcbiAgbWFyZ2luLWJvdHRvbTogNWVtOyB9XG4gIC5zaWRlYmFyLWl0ZW1zIC5saW5rLWxpc3QgLmxpbmstbGlzdC1pdGVtIHtcbiAgICBtYXJnaW4tYm90dG9tOiAuNWVtOyB9XG5cbi5zaWRlYmFyLWl0ZW1zIC5ibG9jayAuYmxvY2stdGl0bGUge1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICMwMDNiNWY7IH1cblxuLnNpZGViYXItaXRlbXMgLmJsb2NrLmJsb2NrLWJsb2ctbWVudSAuYmxvY2stY29udGVudCB1bCB7XG4gIG1hcmdpbi10b3A6IDJweDsgfVxuICAuc2lkZWJhci1pdGVtcyAuYmxvY2suYmxvY2stYmxvZy1tZW51IC5ibG9jay1jb250ZW50IHVsIGxpLml0ZW0ge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiA0cHggMDsgfVxuICAgIC5zaWRlYmFyLWl0ZW1zIC5ibG9jay5ibG9jay1ibG9nLW1lbnUgLmJsb2NrLWNvbnRlbnQgdWwgbGkuaXRlbSBhIHtcbiAgICAgIGNvbG9yOiAjMDAzYjVmO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cbiAgICAgIC5zaWRlYmFyLWl0ZW1zIC5ibG9jay5ibG9jay1ibG9nLW1lbnUgLmJsb2NrLWNvbnRlbnQgdWwgbGkuaXRlbSBhOmhvdmVyLCAuc2lkZWJhci1pdGVtcyAuYmxvY2suYmxvY2stYmxvZy1tZW51IC5ibG9jay1jb250ZW50IHVsIGxpLml0ZW0gYS5hY3RpdmUge1xuICAgICAgICBjb2xvcjogIzFmODZiZCAhaW1wb3J0YW50OyB9XG5cbi5zaWRlYmFyLWl0ZW1zIGZvcm0uc2VhcmNoX21pbmlfZm9ybSB7XG4gIG1hcmdpbjogM2VtIDA7IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NzBweCkge1xuICAuc2lkZWJhci1zcGFjZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuXG4uc3VwcG9ydC1ibG9jayBoMyB7XG4gIHBhZGRpbmctYm90dG9tOiA1cHg7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQgIzAwM2I1ZjsgfVxuXG4uc3VwcG9ydC1ibG9jazphZnRlciB7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICBjb250ZW50OiAnJztcbiAgY2xlYXI6IGJvdGg7IH1cblxuLnN1cHBvcnQtYmxvY2sgc3Bhbi5waG9uZSB7XG4gIGZvbnQtZmFtaWx5OiBcIlVidW50dVRpdGxpbmctQm9sZFwiLCBcIkhlbHZldGljYSBOZXVlXCIsIFZlcmRhbmEsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDI0cHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tYm90dG9tOiAyMHB4OyB9XG5cbi5zdXBwb3J0LWJsb2NrIC5sZWZ0LCAuc3VwcG9ydC1ibG9jayAucmlnaHQge1xuICB3aWR0aDogNTAlOyB9XG5cbi5zdXBwb3J0LWJsb2NrIC5sZWZ0IHtcbiAgZmxvYXQ6IGxlZnQ7IH1cblxuLnN1cHBvcnQtYmxvY2sgLnJpZ2h0IHtcbiAgZmxvYXQ6IHJpZ2h0OyB9XG4gIC5zdXBwb3J0LWJsb2NrIC5yaWdodCBpbWcge1xuICAgIG1hcmdpbi10b3A6IC0yMHB4O1xuICAgIGhlaWdodDogYXV0bzsgfVxuXG4ucHJvZHVjdGZpbmRlci1pbmRleC1pbmRleCAuc2lkZWJhciB7XG4gIHBhZGRpbmctdG9wOiA4cHg7IH1cblxuLnNpZGViYXIgaHIge1xuICBtYXJnaW46IDA7IH1cblxuLnNpZGViYXIgcCBhLCAuc2lkZWJhci1ibG9jayBhIHtcbiAgY29sb3I6ICMwMDNiNWY7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG4gIC5zaWRlYmFyIHAgYTpob3ZlciwgLnNpZGViYXItYmxvY2sgYTpob3ZlciB7XG4gICAgY29sb3I6ICMxZjg2YmQ7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cblxuLnNpZGViYXItYmxvY2sge1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICMwMDNiNWY7XG4gIGJvcmRlci10b3A6IDFweCBkb3R0ZWQgIzAwM2I1ZjtcbiAgcGFkZGluZzogMThweCAwOyB9XG5cbmJvZHkud29yZHByZXNzLWluZGV4LWluZGV4IC5mb290ZXIge1xuICBib3JkZXI6IG5vbmU7IH1cblxuYm9keS53b3JkcHJlc3MtaW5kZXgtaW5kZXggLmhvbWUtc2xpZGUtd3JhcHBlciB7XG4gIG1hcmdpbi1sZWZ0OiAtMTVweDtcbiAgbWFyZ2luLXJpZ2h0OiAtMTVweDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc3MXB4KSB7XG4gICAgYm9keS53b3JkcHJlc3MtaW5kZXgtaW5kZXggLmhvbWUtc2xpZGUtd3JhcHBlciB7XG4gICAgICBtYXJnaW4tbGVmdDogLTI1cHg7XG4gICAgICBtYXJnaW4tcmlnaHQ6IC0yNXB4OyB9IH1cblxuYm9keS53b3JkcHJlc3MtaW5kZXgtaW5kZXggLm1haW4tY29udGFpbmVyIHtcbiAgcGFkZGluZy10b3A6IDIwcHg7IH1cblxuYm9keS53b3JkcHJlc3MtaW5kZXgtaW5kZXggLnBhZ2UtdGl0bGUge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbmJvZHkud29yZHByZXNzLWluZGV4LWluZGV4IC5mZWF0dXJlZC1pbWFnZSB7XG4gIGJvcmRlcjogbm9uZTtcbiAgbWFyZ2luOiAwOyB9XG5cbmJvZHkud29yZHByZXNzLWluZGV4LWluZGV4IC5wb3N0LWxpc3QgLmhvbWUtc2xpZGVyLWNvbnRhaW5lciB7XG4gIG1hcmdpbi1ib3R0b206IDM1cHg7IH1cblxuYm9keS53b3JkcHJlc3MtaW5kZXgtaW5kZXggLnBvc3QtbGlzdCB1bCNwb3N0LWxpc3QgbGkuaXRlbSB7XG4gIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgYm9keS53b3JkcHJlc3MtaW5kZXgtaW5kZXggLnBvc3QtbGlzdCB1bCNwb3N0LWxpc3QgbGkuaXRlbTpsYXN0LWNoaWxkIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICMwMDNiNWY7IH1cbiAgYm9keS53b3JkcHJlc3MtaW5kZXgtaW5kZXggLnBvc3QtbGlzdCB1bCNwb3N0LWxpc3QgbGkuaXRlbSAucG9zdC1saXN0LWl0ZW0gLnBvc3QtZW50cnkge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgcGFkZGluZy10b3A6IDIwcHg7IH1cbiAgICBib2R5LndvcmRwcmVzcy1pbmRleC1pbmRleCAucG9zdC1saXN0IHVsI3Bvc3QtbGlzdCBsaS5pdGVtIC5wb3N0LWxpc3QtaXRlbSAucG9zdC1lbnRyeS5wb3N0LWVudHJ5LXdpdGgtaW1hZ2Uge1xuICAgICAgYm9yZGVyLXRvcDogMXB4IGRvdHRlZCAjMDAzYjVmOyB9XG4gICAgYm9keS53b3JkcHJlc3MtaW5kZXgtaW5kZXggLnBvc3QtbGlzdCB1bCNwb3N0LWxpc3QgbGkuaXRlbSAucG9zdC1saXN0LWl0ZW0gLnBvc3QtZW50cnkgLmZlYXR1cmVkLWltYWdlIGltZyB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG1heC13aWR0aDogbm9uZTsgfVxuICAgIGJvZHkud29yZHByZXNzLWluZGV4LWluZGV4IC5wb3N0LWxpc3QgdWwjcG9zdC1saXN0IGxpLml0ZW0gLnBvc3QtbGlzdC1pdGVtIC5wb3N0LWVudHJ5IGgyIHtcbiAgICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgICBwYWRkaW5nLXRvcDogMzVweDtcbiAgICAgIGJvcmRlci10b3A6IDFweCBkb3R0ZWQgIzAwM2I1ZjsgfVxuICAgICAgYm9keS53b3JkcHJlc3MtaW5kZXgtaW5kZXggLnBvc3QtbGlzdCB1bCNwb3N0LWxpc3QgbGkuaXRlbSAucG9zdC1saXN0LWl0ZW0gLnBvc3QtZW50cnkgaDIgYSB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAwOyB9XG4gICAgYm9keS53b3JkcHJlc3MtaW5kZXgtaW5kZXggLnBvc3QtbGlzdCB1bCNwb3N0LWxpc3QgbGkuaXRlbSAucG9zdC1saXN0LWl0ZW0gLnBvc3QtZW50cnkgLnBvc3QtZXhjZXJwdCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OyB9XG5cbmJvZHkud29yZHByZXNzLWluZGV4LWluZGV4IC5wb3N0LWxpc3QgLnBhZ2VyIHtcbiAgbWFyZ2luLXRvcDogMnJlbTtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIGZsb2F0OiBub25lO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICBib2R5LndvcmRwcmVzcy1pbmRleC1pbmRleCAucG9zdC1saXN0IC5wYWdlciAucGFnZXMge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmbG9hdDogbm9uZTtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG4gICAgYm9keS53b3JkcHJlc3MtaW5kZXgtaW5kZXggLnBvc3QtbGlzdCAucGFnZXIgLnBhZ2VzIG9sIGxpIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICBmbG9hdDogbm9uZTtcbiAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgaGVpZ2h0OiAzMHB4O1xuICAgICAgY29sb3I6ICMxZjg2YmQ7IH1cbiAgICAgIGJvZHkud29yZHByZXNzLWluZGV4LWluZGV4IC5wb3N0LWxpc3QgLnBhZ2VyIC5wYWdlcyBvbCBsaS5jdXJyZW50IHtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICBjb2xvcjogIzAwM2I1ZjsgfVxuICAgICAgYm9keS53b3JkcHJlc3MtaW5kZXgtaW5kZXggLnBvc3QtbGlzdCAucGFnZXIgLnBhZ2VzIG9sIGxpIGEubmV4dCwgYm9keS53b3JkcHJlc3MtaW5kZXgtaW5kZXggLnBvc3QtbGlzdCAucGFnZXIgLnBhZ2VzIG9sIGxpIGEucHJldmlvdXMge1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIHdpZHRoOiAzMHB4O1xuICAgICAgICBoZWlnaHQ6IDMwcHg7IH1cblxuLndvcmRwcmVzcy1wb3N0LXZpZXcgLnBvc3QtZW50cnkge1xuICBvdmVyZmxvdzogdmlzaWJsZTsgfVxuICAud29yZHByZXNzLXBvc3QtdmlldyAucG9zdC1lbnRyeSBpbWcge1xuICAgIGhlaWdodDogYXV0bzsgfVxuICAud29yZHByZXNzLXBvc3QtdmlldyAucG9zdC1lbnRyeSAuZmVhdHVyZWQtaW1hZ2UgLnBvc3Qtc2hhcmUgaW1nIHtcbiAgICB3aWR0aDogMzBweDtcbiAgICBoZWlnaHQ6IDMwcHg7IH1cblxuLndvcmRwcmVzcy1wb3N0LXZpZXcgLmhvbWUtc2xpZGUtd3JhcHBlciB7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgcGFkZGluZy1yaWdodDogMDsgfVxuXG4ud29yZHByZXNzLXBvc3QtdmlldyAucG9zdC10ZWFzZXIge1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICMwMDNiNWY7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NzFweCkge1xuICAgIC53b3JkcHJlc3MtcG9zdC12aWV3IC5wb3N0LXRlYXNlciB7XG4gICAgICB3aWR0aDogMTQ2LjEyJTsgfSB9XG5cbi53b3JkcHJlc3MtcG9zdC12aWV3IC5mZWF0dXJlZC1pbWFnZSB7XG4gIGJvcmRlcjogMDtcbiAgcGFkZGluZzogMjBweCAwO1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBib3JkZXItdG9wOiAxcHggZG90dGVkICMwMDNiNWY7XG4gIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQgIzAwM2I1ZjtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC53b3JkcHJlc3MtcG9zdC12aWV3IC5mZWF0dXJlZC1pbWFnZSBpbWcge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIC53b3JkcHJlc3MtcG9zdC12aWV3IC5mZWF0dXJlZC1pbWFnZSAucG9zdC1zaGFyZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogMTVweDsgfVxuICAgIC53b3JkcHJlc3MtcG9zdC12aWV3IC5mZWF0dXJlZC1pbWFnZSAucG9zdC1zaGFyZSBpbWcge1xuICAgICAgd2lkdGg6IGF1dG87IH1cblxuLndvcmRwcmVzcy1wb3N0LXZpZXcgLnBvc3Qtc2hhcmUgYSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuXG4ud29yZHByZXNzLXBvc3QtdmlldyAucG9zdC1tZXRhIHtcbiAgZm9udC1zdHlsZTogbm9ybWFsOyB9XG5cbi5wb3N0LWVudHJ5IGhyIHtcbiAgbWFyZ2luOiAuNWVtIDAgIWltcG9ydGFudDtcbiAgYm9yZGVyOiAxcHggZG90dGVkICMwMDNiNWY7XG4gIGJvcmRlci13aWR0aDogMXB4IDAgMCAwOyB9XG5cbi5wb3N0LWVudHJ5IGgxLCAucG9zdC1lbnRyeSAuaDEsXG4ucG9zdC1lbnRyeSBoMiwgLnBvc3QtZW50cnkgLmgyLFxuLnBvc3QtZW50cnkgaDMsIC5wb3N0LWVudHJ5IC5oMyB7XG4gIG1hcmdpbi10b3A6IDIwcHg7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBmb250LXNpemU6IDI0cHg7IH1cblxuLnBvc3QtZW50cnkgaDEsIC5wb3N0LWVudHJ5IC5oMSB7XG4gIG1hcmdpbi10b3A6IDA7IH1cblxuLnBvc3QtZW50cnkgYTpub3QoLmJ1dHRvbikge1xuICBjb2xvcjogIzAwM2I1ZjtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cbiAgLnBvc3QtZW50cnkgYTpub3QoLmJ1dHRvbik6aG92ZXIge1xuICAgIGNvbG9yOiAjMWY4NmJkOyB9XG4gIC5wb3N0LWVudHJ5IGE6bm90KC5idXR0b24pLmJhY2sge1xuICAgIG1hcmdpbi10b3A6IDM1cHg7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cblxuLnBvc3QtZW50cnkgaDMsIC5wb3N0LWVudHJ5IC5oMyB7XG4gIGZvbnQtc2l6ZTogMjBweDsgfVxuXG4ucG9zdC1lbnRyeSBoMSB7XG4gIGZvbnQtc2l6ZTogMjRweDsgfVxuXG4ucG9zdC1lbnRyeSBoMSBhLCAucG9zdC1lbnRyeSBoMiBhLCAucG9zdC1lbnRyeSBoMyBhLCAucG9zdC1lbnRyeSBoNCBhLCAucG9zdC1lbnRyeSBoNSBhLCAucG9zdC1lbnRyeSBoNiBhIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7IH1cbiAgLnBvc3QtZW50cnkgaDEgYTpob3ZlciwgLnBvc3QtZW50cnkgaDIgYTpob3ZlciwgLnBvc3QtZW50cnkgaDMgYTpob3ZlciwgLnBvc3QtZW50cnkgaDQgYTpob3ZlciwgLnBvc3QtZW50cnkgaDUgYTpob3ZlciwgLnBvc3QtZW50cnkgaDYgYTpob3ZlciB7XG4gICAgY29sb3I6IGluaGVyaXQgIWltcG9ydGFudDsgfVxuXG4ucG9zdC1lbnRyeS5saWdodGJveC1jb250ZW50LWxpbmsgYTpub3QoLmJhY2spIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG5cbi5wb3N0LWVudHJ5IC5zcGFjZXIge1xuICBoZWlnaHQ6IDM1cHg7IH1cblxuLnBvc3QtdGl0bGUuaGFzLXN1YnRpdGxlIHtcbiAgcGFkZGluZy1ib3R0b206IDVlbTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZCAjMDAzYjVmO1xuICBtYXJnaW4tYm90dG9tOiAxZW07IH1cbiAgLnBvc3QtdGl0bGUuaGFzLXN1YnRpdGxlIC5wYWdlLXN1YnRpdGxlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIC5wb3N0LXRpdGxlLmhhcy1zdWJ0aXRsZSBoMSB7XG4gICAgY29sb3I6ICMxZjg2YmQ7IH1cblxuLndvcmRwcmVzcy1wb3N0LXZpZXcgZW0ge1xuICBmb250LXNpemU6IDI0cHg7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1mYW1pbHk6IFwiVWJ1bnR1VGl0bGluZy1Cb2xkXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgVmVyZGFuYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7IH1cblxuLnBvc3QtbWV0YS5kZXRhaWxzIHtcbiAgbWFyZ2luLXRvcDogMzVweDsgfVxuXG4ucG9zdC1lbnRyeSB1bCwgLmxpZ2h0Ym94IHVsIHtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwOyB9XG4gIC5wb3N0LWVudHJ5IHVsIGxpLCAubGlnaHRib3ggdWwgbGkge1xuICAgIHRleHQtaW5kZW50OiAtOHB4O1xuICAgIHBhZGRpbmctbGVmdDogOHB4O1xuICAgIG1hcmdpbjogNHB4IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTsgfVxuICAgIC5wb3N0LWVudHJ5IHVsIGxpOmJlZm9yZSwgLmxpZ2h0Ym94IHVsIGxpOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiBcIi0gXCI7IH1cblxuLnBvc3QtZW50cnkgb2wsIC5saWdodGJveCBvbCB7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDsgfVxuICAucG9zdC1lbnRyeSBvbCBsaSwgLmxpZ2h0Ym94IG9sIGxpIHtcbiAgICBtYXJnaW46IDRweCAwOyB9XG5cbi5wZW9wbGUucm93LCAucmVzZWxsZXJzLnJvdyB7XG4gIG1hcmdpbi1yaWdodDogLTE1cHg7XG4gIG1hcmdpbi1sZWZ0OiAtMTVweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAwcHgpIHtcbiAgICAucGVvcGxlLnJvdywgLnJlc2VsbGVycy5yb3cge1xuICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTsgfSB9XG4gIC5wZW9wbGUucm93OmFmdGVyLCAucmVzZWxsZXJzLnJvdzphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgY2xlYXI6IGJvdGg7IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MDBweCkge1xuICAucGVvcGxlLmZpcnN0IC5wZW9wbGUtaXRlbSwgLnBlb3BsZS5maXJzdCAucmVzZWxsZXItaXRlbSwgLnJlc2VsbGVycy5maXJzdCAucGVvcGxlLWl0ZW0sIC5yZXNlbGxlcnMuZmlyc3QgLnJlc2VsbGVyLWl0ZW0ge1xuICAgIGJvcmRlci10b3A6IDFweCBkb3R0ZWQgIzAwM2I1ZjsgfSB9XG5cbi5wZW9wbGUgLmNvbC1oYWxmLCAucmVzZWxsZXJzIC5jb2wtaGFsZiB7XG4gIG1hcmdpbjogMCAxNXB4OyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAwcHgpIHtcbiAgICAucGVvcGxlIC5jb2wtaGFsZiwgLnJlc2VsbGVycyAuY29sLWhhbGYge1xuICAgICAgd2lkdGg6IDUwJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgICBwYWRkaW5nOiAwIDE1cHg7XG4gICAgICBtYXJnaW46IDA7IH0gfVxuICAucGVvcGxlIC5jb2wtaGFsZiAucGVvcGxlLWl0ZW0sIC5wZW9wbGUgLmNvbC1oYWxmIC5yZXNlbGxlci1pdGVtLCAucmVzZWxsZXJzIC5jb2wtaGFsZiAucGVvcGxlLWl0ZW0sIC5yZXNlbGxlcnMgLmNvbC1oYWxmIC5yZXNlbGxlci1pdGVtIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICMwMDNiNWY7IH1cbiAgICAucGVvcGxlIC5jb2wtaGFsZiAucGVvcGxlLWl0ZW0gaW1nLCAucGVvcGxlIC5jb2wtaGFsZiAucmVzZWxsZXItaXRlbSBpbWcsIC5yZXNlbGxlcnMgLmNvbC1oYWxmIC5wZW9wbGUtaXRlbSBpbWcsIC5yZXNlbGxlcnMgLmNvbC1oYWxmIC5yZXNlbGxlci1pdGVtIGltZyB7XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA1OTlweCkge1xuICAgICAgICAucGVvcGxlIC5jb2wtaGFsZiAucGVvcGxlLWl0ZW0gaW1nLCAucGVvcGxlIC5jb2wtaGFsZiAucmVzZWxsZXItaXRlbSBpbWcsIC5yZXNlbGxlcnMgLmNvbC1oYWxmIC5wZW9wbGUtaXRlbSBpbWcsIC5yZXNlbGxlcnMgLmNvbC1oYWxmIC5yZXNlbGxlci1pdGVtIGltZyB7XG4gICAgICAgICAgbWFyZ2luLXRvcDogMjBweDsgfSB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MDBweCkge1xuICAgICAgLnBlb3BsZSAuY29sLWhhbGYgLnBlb3BsZS1pdGVtLCAucGVvcGxlIC5jb2wtaGFsZiAucmVzZWxsZXItaXRlbSwgLnJlc2VsbGVycyAuY29sLWhhbGYgLnBlb3BsZS1pdGVtLCAucmVzZWxsZXJzIC5jb2wtaGFsZiAucmVzZWxsZXItaXRlbSB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAyMHB4OyB9IH1cbiAgLnBlb3BsZSAuY29sLWhhbGYgcCwgLnJlc2VsbGVycyAuY29sLWhhbGYgcCB7XG4gICAgbWFyZ2luLXRvcDogMjBweDsgfVxuXG4ucGVvcGxlLmZpcnN0IC5jb2wtaGFsZjpmaXJzdC1jaGlsZCAucGVvcGxlLWl0ZW0sIC5wZW9wbGUuZmlyc3QgLmNvbC1oYWxmOmZpcnN0LWNoaWxkIC5yZXNlbGxlci1pdGVtLCAucmVzZWxsZXJzLmZpcnN0IC5jb2wtaGFsZjpmaXJzdC1jaGlsZCAucGVvcGxlLWl0ZW0sIC5yZXNlbGxlcnMuZmlyc3QgLmNvbC1oYWxmOmZpcnN0LWNoaWxkIC5yZXNlbGxlci1pdGVtIHtcbiAgYm9yZGVyLXRvcDogMXB4IGRvdHRlZCAjMDAzYjVmOyB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgLnBlb3BsZTpsYXN0LWNoaWxkIC5jb2wtaGFsZiAucGVvcGxlLWl0ZW0sIC5wZW9wbGU6bGFzdC1jaGlsZCAuY29sLWhhbGYgLnJlc2VsbGVyLWl0ZW0sIC5yZXNlbGxlcnM6bGFzdC1jaGlsZCAuY29sLWhhbGYgLnBlb3BsZS1pdGVtLCAucmVzZWxsZXJzOmxhc3QtY2hpbGQgLmNvbC1oYWxmIC5yZXNlbGxlci1pdGVtIHtcbiAgICBib3JkZXItYm90dG9tOiAwOyB9IH1cblxuLnJlc2VsbGVycy5yb3c6bGFzdC1jaGlsZCwgLnBlb3BsZS5yb3c6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDcwcHg7IH1cblxuLnJlc2VsbGVycyAuY29sLWhhbGYgLnJlc2VsbGVyLWl0ZW0gaDIge1xuICBtYXJnaW4tdG9wOiAwOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgICAucmVzZWxsZXJzIC5jb2wtaGFsZiAucmVzZWxsZXItaXRlbSBoMiB7XG4gICAgICBtYXJnaW4tdG9wOiAyMHB4OyB9IH1cbiAgLnJlc2VsbGVycyAuY29sLWhhbGYgLnJlc2VsbGVyLWl0ZW0gaDIgaW1nLCAucmVzZWxsZXJzIC5jb2wtaGFsZiAucmVzZWxsZXItaXRlbSBoMiBzcGFuIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfVxuICAucmVzZWxsZXJzIC5jb2wtaGFsZiAucmVzZWxsZXItaXRlbSBoMiBpbWcge1xuICAgIGhlaWdodDogMS4yZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAuM2VtO1xuICAgIHdpZHRoOiAzMHB4O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIG1hcmdpbi10b3A6IC0zcHg7IH1cblxuZm9ybS53cGNmNy1mb3JtIDo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIC8qIFdlYktpdCwgQmxpbmssIEVkZ2UgKi9cbiAgY29sb3I6ICMwMDNiNWY7IH1cblxuZm9ybS53cGNmNy1mb3JtIDotbW96LXBsYWNlaG9sZGVyIHtcbiAgLyogTW96aWxsYSBGaXJlZm94IDQgdG8gMTggKi9cbiAgY29sb3I6ICMwMDNiNWY7XG4gIG9wYWNpdHk6IDE7IH1cblxuZm9ybS53cGNmNy1mb3JtIDo6LW1vei1wbGFjZWhvbGRlciB7XG4gIC8qIE1vemlsbGEgRmlyZWZveCAxOSsgKi9cbiAgY29sb3I6ICMwMDNiNWY7XG4gIG9wYWNpdHk6IDE7IH1cblxuZm9ybS53cGNmNy1mb3JtIDotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xuICAvKiBJbnRlcm5ldCBFeHBsb3JlciAxMC0xMSAqL1xuICBjb2xvcjogIzAwM2I1ZjsgfVxuXG5mb3JtLndwY2Y3LWZvcm0gOjotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xuICAvKiBNaWNyb3NvZnQgRWRnZSAqL1xuICBjb2xvcjogIzAwM2I1ZjsgfVxuXG5mb3JtLndwY2Y3LWZvcm0gZGl2LndwY2Y3LXJlc3BvbnNlLW91dHB1dCB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIG1hcmdpbjogMWVtIDA7XG4gIGJvcmRlcjogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0NGNTA1MDtcbiAgY29sb3I6IHdoaXRlOyB9XG5cbmZvcm0ud3BjZjctZm9ybSAudGV4dC1yaWdodCB7XG4gIHRleHQtYWxpZ246IHJpZ2h0OyB9XG5cbmZvcm0ud3BjZjctZm9ybSAuYWpheC1sb2FkZXIge1xuICBmbG9hdDogbGVmdDsgfVxuXG5mb3JtLndwY2Y3LWZvcm0gLmFqYXgtbG9hZGVyIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbmZvcm0ud3BjZjctZm9ybSAuaW5wdXRzIHNwYW4ud3BjZjctZm9ybS1jb250cm9sLXdyYXAgaW5wdXQ6bm90KFt0eXBlPVwiY2hlY2tib3hcIl0pLFxuZm9ybS53cGNmNy1mb3JtIC5pbnB1dHMgc3Bhbi53cGNmNy1mb3JtLWNvbnRyb2wtd3JhcCBzZWxlY3Qge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIHdpZHRoOiAxMDAlO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRUNFQ0VDO1xuICBib3JkZXI6IG5vbmU7XG4gIHBhZGRpbmc6IDAgMWVtO1xuICBoZWlnaHQ6IDM1cHg7XG4gIGxpbmUtaGVpZ2h0OiAzNXB4O1xuICBmb250LXNpemU6IDE0cHg7IH1cbiAgZm9ybS53cGNmNy1mb3JtIC5pbnB1dHMgc3Bhbi53cGNmNy1mb3JtLWNvbnRyb2wtd3JhcCBpbnB1dDpub3QoW3R5cGU9XCJjaGVja2JveFwiXSk6OnBsYWNlaG9sZGVyLFxuICBmb3JtLndwY2Y3LWZvcm0gLmlucHV0cyBzcGFuLndwY2Y3LWZvcm0tY29udHJvbC13cmFwIHNlbGVjdDo6cGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiAjMDAzYjVmO1xuICAgIGZvbnQtZmFtaWx5OiBBcmlhbCwgc2Fucy1zZXJpZjsgfVxuXG5mb3JtLndwY2Y3LWZvcm0gLmlucHV0cyBzcGFuLndwY2Y3LW5vdC12YWxpZC10aXAge1xuICBjb2xvcjogI0NGNTA1MDsgfVxuXG5mb3JtLndwY2Y3LWZvcm0gLnN1Y2Nlc3Mge1xuICBjb2xvcjogaW5oZXJpdDtcbiAgZGlzcGxheTogbm9uZTsgfVxuICBmb3JtLndwY2Y3LWZvcm0gLnN1Y2Nlc3MgLmJ1dHRvbiB7XG4gICAgbWFyZ2luLXRvcDogMWVtOyB9XG5cbmZvcm0ud3BjZjctZm9ybS5zZW50IC5pbnB1dHMsIGZvcm0ud3BjZjctZm9ybS5zZW50IC53cGNmNy1tYWlsLXNlbnQtb2sge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuZm9ybS53cGNmNy1mb3JtLnNlbnQgLnN1Y2Nlc3Mge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG5zcGFuLndwY2Y3LWxpc3QtaXRlbSB7XG4gIG1hcmdpbjogMCAhaW1wb3J0YW50OyB9XG5cbi5mb3JtLXdyYXBwZXIgZm9ybSBpbnB1dCxcbi5mb3JtLXdyYXBwZXIgZm9ybSBzZWxlY3Qge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIHdpZHRoOiAxMDAlO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRUNFQ0VDO1xuICBib3JkZXI6IG5vbmU7XG4gIHBhZGRpbmc6IDAgMWVtO1xuICBoZWlnaHQ6IDM1cHg7XG4gIGxpbmUtaGVpZ2h0OiAzNXB4O1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBmb250LXNpemU6IDE0cHg7IH1cbiAgLmZvcm0td3JhcHBlciBmb3JtIGlucHV0OjpwbGFjZWhvbGRlcixcbiAgLmZvcm0td3JhcHBlciBmb3JtIHNlbGVjdDo6cGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiAjMDAzYjVmO1xuICAgIGZvbnQtZmFtaWx5OiBBcmlhbCwgc2Fucy1zZXJpZjsgfVxuXG51bC5kb3dubG9hZHMge1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDsgfVxuICB1bC5kb3dubG9hZHMgLmRvd25sb2FkLWl0ZW0ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW4tYm90dG9tOiAuNWVtO1xuICAgIG1hcmdpbi1sZWZ0OiAyZW07XG4gICAgbGlzdC1zdHlsZTogbm9uZTsgfVxuICAgIHVsLmRvd25sb2FkcyAuZG93bmxvYWQtaXRlbS0tcGRmOmJlZm9yZSB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvaWNvbi1kb3dubG9hZC1wZGYuc3ZnXCIpOyB9XG4gICAgdWwuZG93bmxvYWRzIC5kb3dubG9hZC1pdGVtLS16aXA6YmVmb3JlIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9pY29uLWRvd25sb2FkLXppcC5zdmdcIik7IH1cbiAgICB1bC5kb3dubG9hZHMgLmRvd25sb2FkLWl0ZW06YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAtMmVtO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAycHg7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICB3aWR0aDogMjJweDtcbiAgICAgIGhlaWdodDogMjJweDtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWFnZXMvaWNvbi1kb3dubG9hZC1wZGYuc3ZnKTtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogMTlweCAyMnB4O1xuICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsgfVxuICAgIHVsLmRvd25sb2FkcyAuZG93bmxvYWQtaXRlbSBhIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIGNvbG9yOiBpbmhlcml0OyB9XG5cbi5saWdodGJveCwgLnNhbXBsZXJlcXVlc3Qtb3ZlcmxheSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHotaW5kZXg6IDk5OTk7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvcGFjaXR5OiAwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAyMDBtcztcbiAgb3ZlcmZsb3c6IHNjcm9sbDtcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoOyB9XG4gIC5saWdodGJveC5sb2FkaW5nLCAuc2FtcGxlcmVxdWVzdC1vdmVybGF5LmxvYWRpbmcge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgcG9pbnRlci1ldmVudHM6IGFsbDsgfVxuICAgIC5saWdodGJveC5sb2FkaW5nIC5zcGlubmVyLCAuc2FtcGxlcmVxdWVzdC1vdmVybGF5LmxvYWRpbmcgLnNwaW5uZXIge1xuICAgICAgb3BhY2l0eTogMTsgfVxuICAubGlnaHRib3guY29tcGxldGUsIC5zYW1wbGVyZXF1ZXN0LW92ZXJsYXkuY29tcGxldGUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgcG9pbnRlci1ldmVudHM6IGFsbDsgfVxuICAgIC5saWdodGJveC5jb21wbGV0ZSAuc3Bpbm5lciwgLnNhbXBsZXJlcXVlc3Qtb3ZlcmxheS5jb21wbGV0ZSAuc3Bpbm5lciB7XG4gICAgICBvcGFjaXR5OiAwOyB9XG4gICAgLmxpZ2h0Ym94LmNvbXBsZXRlIC5ib3gsIC5zYW1wbGVyZXF1ZXN0LW92ZXJsYXkuY29tcGxldGUgLmJveCB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDsgfVxuICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MDBweCkge1xuICAgICAgICAubGlnaHRib3guY29tcGxldGUgLmJveCwgLnNhbXBsZXJlcXVlc3Qtb3ZlcmxheS5jb21wbGV0ZSAuYm94IHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsgfSB9XG4gIC5saWdodGJveC5zY3JvbGwgLmJveCwgLnNhbXBsZXJlcXVlc3Qtb3ZlcmxheS5zY3JvbGwgLmJveCB7XG4gICAgdG9wOiAwICFpbXBvcnRhbnQ7IH1cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gICAgICAubGlnaHRib3guc2Nyb2xsIC5ib3gsIC5zYW1wbGVyZXF1ZXN0LW92ZXJsYXkuc2Nyb2xsIC5ib3gge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAwKSAhaW1wb3J0YW50OyB9IH1cbiAgLmxpZ2h0Ym94IC5zcGlubmVyLCAuc2FtcGxlcmVxdWVzdC1vdmVybGF5IC5zcGlubmVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgbGVmdDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgIGhlaWdodDogMThweDtcbiAgICB3aWR0aDogMThweDtcbiAgICBhbmltYXRpb246IHJvdGF0ZSAxLjJzIGluZmluaXRlIGxpbmVhcjtcbiAgICBib3JkZXI6IDNweCBzb2xpZCAjZmZmO1xuICAgIGJvcmRlci1yaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIG9wYWNpdHk6IDA7IH1cblxuQGtleWZyYW1lcyByb3RhdGUge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgfSB9XG4gIC5saWdodGJveCAuYm94LCAuc2FtcGxlcmVxdWVzdC1vdmVybGF5IC5ib3gge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICBtYXJnaW46IDYwcHggYXV0bztcbiAgICB3aWR0aDogOTYlO1xuICAgIG1heC13aWR0aDogNjkwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHRyYW5zaXRpb24tZGVsYXk6IDA7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDIwMG1zLCBvcGFjaXR5IDIwMG1zOyB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MDBweCkge1xuICAgICAgLmxpZ2h0Ym94IC5ib3gsIC5zYW1wbGVyZXF1ZXN0LW92ZXJsYXkgLmJveCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTQ1JSk7IH0gfVxuICAgIC5saWdodGJveCAuYm94IG9sLCAuc2FtcGxlcmVxdWVzdC1vdmVybGF5IC5ib3ggb2wge1xuICAgICAgbGlzdC1zdHlsZTogZGVjaW1hbCBvdXRzaWRlO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMS41ZW07IH1cbiAgICAgIC5saWdodGJveCAuYm94IG9sIGxpLCAuc2FtcGxlcmVxdWVzdC1vdmVybGF5IC5ib3ggb2wgbGkge1xuICAgICAgICBtYXJnaW4tbGVmdDogMmVtOyB9XG4gICAgLmxpZ2h0Ym94IC5ib3ggaDEsIC5saWdodGJveCAuYm94IGgzLCAubGlnaHRib3ggLmJveCAuaDMsIC5saWdodGJveCAuYm94IGgyLCAubGlnaHRib3ggLmJveCBoMiwgLnNhbXBsZXJlcXVlc3Qtb3ZlcmxheSAuYm94IGgxLCAuc2FtcGxlcmVxdWVzdC1vdmVybGF5IC5ib3ggaDMsIC5zYW1wbGVyZXF1ZXN0LW92ZXJsYXkgLmJveCAuaDMsIC5zYW1wbGVyZXF1ZXN0LW92ZXJsYXkgLmJveCBoMiwgLnNhbXBsZXJlcXVlc3Qtb3ZlcmxheSAuYm94IGgyIHtcbiAgICAgIGZvbnQtc2l6ZTogMjRweDsgfVxuICAgIC5saWdodGJveCAuYm94IGEjcmVxdWVzdC1zYW1wbGUsIC5zYW1wbGVyZXF1ZXN0LW92ZXJsYXkgLmJveCBhI3JlcXVlc3Qtc2FtcGxlIHtcbiAgICAgIG1hcmdpbi10b3A6IDIwcHg7IH1cbiAgICAubGlnaHRib3ggLmJveCBoMiwgLmxpZ2h0Ym94IC5ib3ggLmgyLFxuICAgIC5saWdodGJveCAuYm94IGgzLCAubGlnaHRib3ggLmJveCAuaDMsIC5zYW1wbGVyZXF1ZXN0LW92ZXJsYXkgLmJveCBoMiwgLnNhbXBsZXJlcXVlc3Qtb3ZlcmxheSAuYm94IC5oMixcbiAgICAuc2FtcGxlcmVxdWVzdC1vdmVybGF5IC5ib3ggaDMsIC5zYW1wbGVyZXF1ZXN0LW92ZXJsYXkgLmJveCAuaDMge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsgfVxuICAgIC5saWdodGJveCAuYm94IC5jbG9zZSwgLnNhbXBsZXJlcXVlc3Qtb3ZlcmxheSAuYm94IC5jbG9zZSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHdpZHRoOiAzMHB4O1xuICAgICAgaGVpZ2h0OiAzMHB4O1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWY4NmJkO1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBtaW4td2lkdGg6IGF1dG87XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICByaWdodDogMDtcbiAgICAgIHRvcDogNjBweDtcbiAgICAgIG1hcmdpbi10b3A6IC0xNXB4O1xuICAgICAgbWFyZ2luLXJpZ2h0OiA1MHB4O1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9saWdodGJveC1jbG9zZS5zdmcpO1xuICAgICAgYmFja2dyb3VuZC1zaXplOiAxMXB4O1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMjAwbXM7IH1cbiAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAwcHgpIHtcbiAgICAgICAgLmxpZ2h0Ym94IC5ib3ggLmNsb3NlLCAuc2FtcGxlcmVxdWVzdC1vdmVybGF5IC5ib3ggLmNsb3NlIHtcbiAgICAgICAgICB0b3A6IDA7IH0gfVxuICAgICAgLmxpZ2h0Ym94IC5ib3ggLmNsb3NlOmhvdmVyLCAuc2FtcGxlcmVxdWVzdC1vdmVybGF5IC5ib3ggLmNsb3NlOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzFkN2RiMDsgfVxuICAgIC5saWdodGJveCAuYm94IC5pbm5lciwgLnNhbXBsZXJlcXVlc3Qtb3ZlcmxheSAuYm94IC5pbm5lciB7XG4gICAgICBwYWRkaW5nOiA0MHB4IDIwcHggNjBweCAyMHB4O1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MDBweCkge1xuICAgICAgICAubGlnaHRib3ggLmJveCAuaW5uZXIsIC5zYW1wbGVyZXF1ZXN0LW92ZXJsYXkgLmJveCAuaW5uZXIge1xuICAgICAgICAgIHBhZGRpbmc6IDQwcHggMjBweDsgfSB9XG4gICAgICAubGlnaHRib3ggLmJveCAuaW5uZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLCAuc2FtcGxlcmVxdWVzdC1vdmVybGF5IC5ib3ggLmlubmVyOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAwcHgpIHtcbiAgICAgICAgLmxpZ2h0Ym94IC5ib3ggLmlubmVyLCAuc2FtcGxlcmVxdWVzdC1vdmVybGF5IC5ib3ggLmlubmVyIHtcbiAgICAgICAgICBwYWRkaW5nOiA3MHB4IDUwcHg7IH0gfVxuXG5ib2R5LmxpZ2h0Ym94LWFjdGl2ZSB7XG4gIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDsgfVxuXG4uc2FtcGxlcmVxdWVzdC1vdmVybGF5LmFjdGl2ZSB7XG4gIG9wYWNpdHk6IDE7XG4gIHBvaW50ZXItZXZlbnRzOiBhbGw7IH1cbiAgLnNhbXBsZXJlcXVlc3Qtb3ZlcmxheS5hY3RpdmUgLmJveCB7XG4gICAgb3BhY2l0eTogMTtcbiAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOyB9XG5cbi5maW5kZXItZm9ybSB7XG4gIG1hcmdpbjogMzVweCAwOyB9XG4gIC5maW5kZXItZm9ybSAubGV2ZWwge1xuICAgIHBhZGRpbmctdG9wOiAzNXB4O1xuICAgIG1hcmdpbi10b3A6IDM1cHg7XG4gICAgYm9yZGVyLXRvcDogMXB4IGRvdHRlZCAjMDAzYjVmOyB9XG4gIC5maW5kZXItZm9ybSAuc2VsZWN0LXdyYXBwZXIge1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MDBweCkge1xuICAgIC5maW5kZXItZm9ybSAuc2VsZWN0LXJvdyB7XG4gICAgICBtYXJnaW46IDAgLTVweDsgfVxuICAgICAgLmZpbmRlci1mb3JtIC5zZWxlY3Qtcm93OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgICAgICBjbGVhcjogYm90aDsgfVxuICAgIC5maW5kZXItZm9ybSAuc2VsZWN0LXdyYXBwZXIge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICB3aWR0aDogNTAlOyB9XG4gICAgICAuZmluZGVyLWZvcm0gLnNlbGVjdC13cmFwcGVyIC5zZWxlY3Qtd3JhcHBlci0taW5uZXIge1xuICAgICAgICBtYXJnaW46IDAgNXB4OyB9IH1cblxuI3Byb2R1Y3RSZXN1bHQge1xuICBtYXJnaW4tdG9wOiAzNXB4OyB9XG5cbi5ibG9jay1wcm9kdWN0ZmluZGVyIHVsIGxpLnByb2R1Y3QgLnByb2R1Y3QtdGl0bGUge1xuICBib3JkZXItYm90dG9tOiBub25lOyB9XG4gIC5ibG9jay1wcm9kdWN0ZmluZGVyIHVsIGxpLnByb2R1Y3QgLnByb2R1Y3QtdGl0bGUgYSB7XG4gICAgZm9udC1mYW1pbHk6IFwiVWJ1bnR1VGl0bGluZy1Cb2xkXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgVmVyZGFuYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxN3B4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI7IH1cbiAgICAuYmxvY2stcHJvZHVjdGZpbmRlciB1bCBsaS5wcm9kdWN0IC5wcm9kdWN0LXRpdGxlIGE6aG92ZXIge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG5cbiNibG9jay1wcm9kdWN0ZmluZGVyIC5zbGljay1zbGlkZSB7XG4gIG9wYWNpdHk6IDA7IH1cblxuI2Jsb2NrLXByb2R1Y3RmaW5kZXIuc2xpY2staW5pdGlhbGl6ZWQgLnNsaWNrLXNsaWRlIHtcbiAgb3BhY2l0eTogMTsgfVxuXG4uZmluZGVyLW5vdGljZSwgLmZpbmRlci1ub3Byb2R1Y3Qge1xuICBwYWRkaW5nLXRvcDogMzVweDtcbiAgbWFyZ2luLXRvcDogMzVweDtcbiAgYm9yZGVyLXRvcDogMXB4IGRvdHRlZCAjMDAzYjVmOyB9XG5cbi5maW5kZXItbm9wcm9kdWN0IHtcbiAgZGlzcGxheTogbm9uZTtcbiAgYm9yZGVyOiBub25lOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIENhbGVuZGFyIHN0eWxlcyAocmVzdG9yZSBzdHlsZXMgZnJvbSAvanMvY2FsZW5kYXIpXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuZGl2LmNhbGVuZGFyIHRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBzZXBhcmF0ZTsgfVxuICBkaXYuY2FsZW5kYXIgdGFibGUgdGQuYnV0dG9uIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIGJhY2tncm91bmQ6IGluaGVyaXQ7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7IH1cbiIsIi8vXG4vLyBNYWdlbnRvXG4vL1xuLy8gTk9USUNFIE9GIExJQ0VOU0Vcbi8vXG4vLyBUaGlzIHNvdXJjZSBmaWxlIGlzIHN1YmplY3QgdG8gdGhlIEFjYWRlbWljIEZyZWUgTGljZW5zZSAoQUZMIDMuMClcbi8vIHRoYXQgaXMgYnVuZGxlZCB3aXRoIHRoaXMgcGFja2FnZSBpbiB0aGUgZmlsZSBMSUNFTlNFX0FGTC50eHQuXG4vLyBJdCBpcyBhbHNvIGF2YWlsYWJsZSB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiBhdCB0aGlzIFVSTDpcbi8vIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9hZmwtMy4wLnBocFxuLy8gSWYgeW91IGRpZCBub3QgcmVjZWl2ZSBhIGNvcHkgb2YgdGhlIGxpY2Vuc2UgYW5kIGFyZSB1bmFibGUgdG9cbi8vIG9idGFpbiBpdCB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiwgcGxlYXNlIHNlbmQgYW4gZW1haWxcbi8vIHRvIGxpY2Vuc2VAbWFnZW50by5jb20gc28gd2UgY2FuIHNlbmQgeW91IGEgY29weSBpbW1lZGlhdGVseS5cbi8vXG4vLyBESVNDTEFJTUVSXG4vL1xuLy8gRG8gbm90IGVkaXQgb3IgYWRkIHRvIHRoaXMgZmlsZSBpZiB5b3Ugd2lzaCB0byB1cGdyYWRlIE1hZ2VudG8gdG8gbmV3ZXJcbi8vIHZlcnNpb25zIGluIHRoZSBmdXR1cmUuIElmIHlvdSB3aXNoIHRvIGN1c3RvbWl6ZSBNYWdlbnRvIGZvciB5b3VyXG4vLyBuZWVkcyBwbGVhc2UgcmVmZXIgdG8gaHR0cDovL3d3dy5tYWdlbnRvLmNvbSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbi8vXG4vLyBAY2F0ZWdvcnkgICAgZGVzaWduXG4vLyBAcGFja2FnZSAgICAgcndkX2RlZmF1bHRcbi8vIEBjb3B5cmlnaHQgICBDb3B5cmlnaHQgKGMpIDIwMDYtMjAxNiBYLmNvbW1lcmNlLCBJbmMuIGFuZCBhZmZpbGlhdGVzIChodHRwOi8vd3d3Lm1hZ2VudG8uY29tKVxuLy8gQGxpY2Vuc2UgICAgIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9hZmwtMy4wLnBocCAgQWNhZGVtaWMgRnJlZSBMaWNlbnNlIChBRkwgMy4wKVxuLy9cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBNaXhpbiAtIEJyZWFrcG9pbnRcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4kbXEtc3VwcG9ydDogdHJ1ZSAhZGVmYXVsdDtcbiRtcS1maXhlZC12YWx1ZTogMTAyNHB4ICFkZWZhdWx0O1xuXG5AbWl4aW4gYnAoJGZlYXR1cmUsICR2YWx1ZSkge1xuICAgIC8vIFNldCBnbG9iYWwgZGV2aWNlIHBhcmFtXG4gICAgJG1lZGlhOiBvbmx5IHNjcmVlbjtcblxuICAgIC8vIE1lZGlhIHF1ZXJpZXMgc3VwcG9ydGVkXG4gICAgQGlmICRtcS1zdXBwb3J0ID09IHRydWUge1xuXG4gICAgICAgIEBtZWRpYSAjeyRtZWRpYX0gYW5kICgkZmVhdHVyZTogJHZhbHVlKSB7XG4gICAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE1lZGlhIHF1ZXJpZXMgbm90IHN1cHBvcnRlZFxuICAgIH0gQGVsc2Uge1xuXG4gICAgICAgIEBpZiAkZmVhdHVyZSA9PSAnbWluLXdpZHRoJyB7XG4gICAgICAgICAgICBAaWYgJHZhbHVlIDw9ICRtcS1maXhlZC12YWx1ZSB7XG4gICAgICAgICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gQGVsc2UgaWYgJGZlYXR1cmUgPT0gJ21heC13aWR0aCcge1xuICAgICAgICAgICAgQGlmICR2YWx1ZSA+PSAkbXEtZml4ZWQtdmFsdWUge1xuICAgICAgICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICB9XG59XG5cbi8qXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBVc2FnZSBleGFtcGxlOlxuLy8gRm9yIElFIHNldCAkbXEtc3VwcG9ydCB0byBmYWxzZS5cbi8vIFNldCB0aGUgZml4ZWQgdmFsdWUuXG4vLyBUaGVuIHVzZSBtaXhpbnMgdG8gdGVzdCB3aGV0aGVyIHN0eWxlcyBzaG91bGQgYmUgYXBwbGllZC5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJG1xLXN1cHBvcnQ6IGZhbHNlO1xuJG1xLWZpeGVkLXZhbHVlOiAxMDI0O1xuXG4vLyBSZW5kZXJzIGF0IGZpeGVkIHZhbHVlXG5AaW5jbHVkZSBicCAobWluLXdpZHRoLCAzMDBweCkgeyBcbiAgICBkaXYgeyBjb2xvcjojMDAwOyB9XG59XG5cbi8vIERvZXNuJ3QgcmVuZGVyIHdpdGhvdXQgTVEgc3VwcG9ydFxuQGluY2x1ZGUgYnAgKG1pbi13aWR0aCwgMTIwMHB4KSB7IFxuICAgIGRpdiB7IGNvbG9yOiNGRkY7IH1cbn1cblxuLy8gRG9lc24ndCByZW5kZXIgd2l0aG91dCBNUSBzdXBwb3J0XG5AaW5jbHVkZSBicCAobWF4LXdpZHRoLCAzMDBweCkgeyBcbiAgICBkaXYgeyBjb2xvcjojNDQ0OyB9XG59XG5cbi8vIFJlbmRlcnMgYXQgZml4ZWQgdmFsdWVcbkBpbmNsdWRlIGJwIChtYXgtd2lkdGgsIDEyMDBweCkgeyBcbiAgICBkaXYgeyBjb2xvcjojODg4OyB9XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiovXG5cbiIsIi8vXG4vLyBNYWdlbnRvXG4vL1xuLy8gTk9USUNFIE9GIExJQ0VOU0Vcbi8vXG4vLyBUaGlzIHNvdXJjZSBmaWxlIGlzIHN1YmplY3QgdG8gdGhlIEFjYWRlbWljIEZyZWUgTGljZW5zZSAoQUZMIDMuMClcbi8vIHRoYXQgaXMgYnVuZGxlZCB3aXRoIHRoaXMgcGFja2FnZSBpbiB0aGUgZmlsZSBMSUNFTlNFX0FGTC50eHQuXG4vLyBJdCBpcyBhbHNvIGF2YWlsYWJsZSB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiBhdCB0aGlzIFVSTDpcbi8vIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9hZmwtMy4wLnBocFxuLy8gSWYgeW91IGRpZCBub3QgcmVjZWl2ZSBhIGNvcHkgb2YgdGhlIGxpY2Vuc2UgYW5kIGFyZSB1bmFibGUgdG9cbi8vIG9idGFpbiBpdCB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiwgcGxlYXNlIHNlbmQgYW4gZW1haWxcbi8vIHRvIGxpY2Vuc2VAbWFnZW50by5jb20gc28gd2UgY2FuIHNlbmQgeW91IGEgY29weSBpbW1lZGlhdGVseS5cbi8vXG4vLyBESVNDTEFJTUVSXG4vL1xuLy8gRG8gbm90IGVkaXQgb3IgYWRkIHRvIHRoaXMgZmlsZSBpZiB5b3Ugd2lzaCB0byB1cGdyYWRlIE1hZ2VudG8gdG8gbmV3ZXJcbi8vIHZlcnNpb25zIGluIHRoZSBmdXR1cmUuIElmIHlvdSB3aXNoIHRvIGN1c3RvbWl6ZSBNYWdlbnRvIGZvciB5b3VyXG4vLyBuZWVkcyBwbGVhc2UgcmVmZXIgdG8gaHR0cDovL3d3dy5tYWdlbnRvLmNvbSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbi8vXG4vLyBAY2F0ZWdvcnkgICAgZGVzaWduXG4vLyBAcGFja2FnZSAgICAgcndkX2RlZmF1bHRcbi8vIEBjb3B5cmlnaHQgICBDb3B5cmlnaHQgKGMpIDIwMDYtMjAxNiBYLmNvbW1lcmNlLCBJbmMuIGFuZCBhZmZpbGlhdGVzIChodHRwOi8vd3d3Lm1hZ2VudG8uY29tKVxuLy8gQGxpY2Vuc2UgICAgIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9hZmwtMy4wLnBocCAgQWNhZGVtaWMgRnJlZSBMaWNlbnNlIChBRkwgMy4wKVxuLy9cblxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdVYnVudHVUaXRsaW5nLUJvbGQnO1xuICBzcmM6IHVybCgnZm9udHMvVWJ1bnR1VGl0bGluZy1Cb2xkLmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksICB1cmwoJ2ZvbnRzL1VidW50dVRpdGxpbmctQm9sZC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnZm9udHMvVWJ1bnR1VGl0bGluZy1Cb2xkLnR0ZicpICBmb3JtYXQoJ3RydWV0eXBlJyksIHVybCgnZm9udHMvVWJ1bnR1VGl0bGluZy1Cb2xkLnN2ZyNVYnVudHVUaXRsaW5nLUJvbGQnKSBmb3JtYXQoJ3N2ZycpO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG5cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnVWJ1bnR1VGl0bGluZy1Cb2xkJztcbiAgc3JjOiB1cmwoJ2ZvbnRzL1VidW50dVRpdGxpbmctQm9sZC5lb3Q/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLCAgdXJsKCdmb250cy9VYnVudHVUaXRsaW5nLUJvbGQud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoJ2ZvbnRzL1VidW50dVRpdGxpbmctQm9sZC50dGYnKSAgZm9ybWF0KCd0cnVldHlwZScpLCB1cmwoJ2ZvbnRzL1VidW50dVRpdGxpbmctQm9sZC5zdmcjVWJ1bnR1VGl0bGluZy1Cb2xkJykgZm9ybWF0KCdzdmcnKTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cblxuXG5cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBNaXhpbiAtIFR5cG9ncmFwaHlcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5AbWl4aW4gaDEge1xuICAgIG1hcmdpbjogMDtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjdlbTtcbiAgICBjb2xvcjogJGMtaDE7XG4gICAgZm9udC1mYW1pbHk6ICRmLXN0YWNrLXNwZWNpYWw7XG4gICAgZm9udC1zaXplOiAyOHB4O1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG5cbn1cblxuQG1peGluIGgyIHtcbiAgICBtYXJnaW46IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMC41ZW07XG4gICAgY29sb3I6ICRjLWgyO1xuICAgIGZvbnQtZmFtaWx5OiAkZi1zdGFjay1zcGVjaWFsO1xuICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICAvL3RleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcblxufVxuXG5AbWl4aW4gaDMge1xuICAgIG1hcmdpbjogMDtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgIGNvbG9yOiAkYy1oMztcbiAgICBmb250LWZhbWlseTogJGYtc3RhY2stc3BlY2lhbDtcbiAgICBmb250LXNpemU6ICRmLXNpemUteGw7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgbGluZS1oZWlnaHQ6IDEuMTtcblxufVxuXG5AbWl4aW4gaDQge1xuICAgIG1hcmdpbjogMDtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgIGNvbG9yOiAkYy1oNDtcbiAgICBmb250LWZhbWlseTogJGYtc3RhY2stc3BlY2lhbDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgbGluZS1oZWlnaHQ6IDEuNDtcblxufVxuXG5AbWl4aW4gaDUge1xuICAgIG1hcmdpbjogMDtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgIGNvbG9yOiAkYy1oNTtcbiAgICBmb250LWZhbWlseTogJGYtc3RhY2stc2FucztcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgbGluZS1oZWlnaHQ6IDEuNDtcblxufVxuXG5AbWl4aW4gaDYge1xuICAgIG1hcmdpbjogMDtcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gICAgY29sb3I6ICRjLWg2O1xuICAgIGZvbnQtZmFtaWx5OiAkZi1zdGFjay1zYW5zO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBsaW5lLWhlaWdodDogMS40O1xuIFxufVxuXG5AbWl4aW4gcGFnZVRpdGxlKCkge1xuICAgXG4gICAgZm9udC1zaXplOiAyNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgY29sb3I6ICRjLXRleHQ7XG4gICAgcGFkZGluZy1ib3R0b206IDNweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuXG59XG5cbkBtaXhpbiB1cHBlcmNhc2Uge1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG4iLCIvKiEgbm9ybWFsaXplLmNzcyB2Mi4wLjEgfCBNSVQgTGljZW5zZSB8IGdpdC5pby9ub3JtYWxpemUgKi9cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEhUTUw1IGRpc3BsYXkgZGVmaW5pdGlvbnNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBDb3JyZWN0cyBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgaW4gSUUgOC85LlxuICovXG5cbmFydGljbGUsXG5hc2lkZSxcbmRldGFpbHMsXG5maWdjYXB0aW9uLFxuZmlndXJlLFxuZm9vdGVyLFxuaGVhZGVyLFxuaGdyb3VwLFxubmF2LFxuc2VjdGlvbixcbnN1bW1hcnkge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKlxuICogQ29ycmVjdHMgYGlubGluZS1ibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBpbiBJRSA4LzkuXG4gKi9cblxuYXVkaW8sXG5jYW52YXMsXG52aWRlbyB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4vKlxuICogUHJldmVudHMgbW9kZXJuIGJyb3dzZXJzIGZyb20gZGlzcGxheWluZyBgYXVkaW9gIHdpdGhvdXQgY29udHJvbHMuXG4gKiBSZW1vdmUgZXhjZXNzIGhlaWdodCBpbiBpT1MgNSBkZXZpY2VzLlxuICovXG5cbmF1ZGlvOm5vdChbY29udHJvbHNdKSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBoZWlnaHQ6IDA7XG59XG5cbi8qXG4gKiBBZGRyZXNzZXMgc3R5bGluZyBmb3IgYGhpZGRlbmAgYXR0cmlidXRlIG5vdCBwcmVzZW50IGluIElFIDgvOS5cbiAqL1xuXG5baGlkZGVuXSB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEJhc2VcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiAxLiBTZXRzIGRlZmF1bHQgZm9udCBmYW1pbHkgdG8gc2Fucy1zZXJpZi5cbiAqIDIuIFByZXZlbnRzIGlPUyB0ZXh0IHNpemUgYWRqdXN0IGFmdGVyIG9yaWVudGF0aW9uIGNoYW5nZSwgd2l0aG91dCBkaXNhYmxpbmdcbiAqICAgIHVzZXIgem9vbS5cbiAqL1xuXG5odG1sIHtcbiAgICBmb250LWZhbWlseTogc2Fucy1zZXJpZjsgLyogMSAqL1xuICAgIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xuICAgIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXG59XG5cbi8qXG4gKiBSZW1vdmVzIGRlZmF1bHQgbWFyZ2luLlxuICovXG5cbmJvZHkge1xuICAgIG1hcmdpbjogMDtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIExpbmtzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogQWRkcmVzc2VzIGBvdXRsaW5lYCBpbmNvbnNpc3RlbmN5IGJldHdlZW4gQ2hyb21lIGFuZCBvdGhlciBicm93c2Vycy5cbiAqL1xuXG5hOmZvY3VzIHtcbiAgICBvdXRsaW5lOiB0aGluIGRvdHRlZDtcbn1cblxuLypcbiAqIEltcHJvdmVzIHJlYWRhYmlsaXR5IHdoZW4gZm9jdXNlZCBhbmQgYWxzbyBtb3VzZSBob3ZlcmVkIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5hOmFjdGl2ZSxcbmE6aG92ZXIge1xuICAgIG91dGxpbmU6IDA7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBUeXBvZ3JhcGh5XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogQWRkcmVzc2VzIGBoMWAgZm9udCBzaXplcyB3aXRoaW4gYHNlY3Rpb25gIGFuZCBgYXJ0aWNsZWAgaW4gRmlyZWZveCA0KyxcbiAqIFNhZmFyaSA1LCBhbmQgQ2hyb21lLlxuICovXG5cbmgxIHtcbiAgICBmb250LXNpemU6IDJlbTtcbn1cblxuLypcbiAqIEFkZHJlc3NlcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOSwgU2FmYXJpIDUsIGFuZCBDaHJvbWUuXG4gKi9cblxuYWJiclt0aXRsZV0ge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQ7XG59XG5cbi8qXG4gKiBBZGRyZXNzZXMgc3R5bGUgc2V0IHRvIGBib2xkZXJgIGluIEZpcmVmb3ggNCssIFNhZmFyaSA1LCBhbmQgQ2hyb21lLlxuICovXG5cbmIsXG5zdHJvbmcge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4vKlxuICogQWRkcmVzc2VzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gU2FmYXJpIDUgYW5kIENocm9tZS5cbiAqL1xuXG5kZm4ge1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuLypcbiAqIEFkZHJlc3NlcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS5cbiAqL1xuXG5tYXJrIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmYwO1xuICAgIGNvbG9yOiAjMDAwO1xufVxuXG5cbi8qXG4gKiBDb3JyZWN0cyBmb250IGZhbWlseSBzZXQgb2RkbHkgaW4gU2FmYXJpIDUgYW5kIENocm9tZS5cbiAqL1xuXG5jb2RlLFxua2JkLFxucHJlLFxuc2FtcCB7XG4gICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgc2VyaWY7XG4gICAgZm9udC1zaXplOiAxZW07XG59XG5cbi8qXG4gKiBJbXByb3ZlcyByZWFkYWJpbGl0eSBvZiBwcmUtZm9ybWF0dGVkIHRleHQgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnByZSB7XG4gICAgd2hpdGUtc3BhY2U6IHByZTtcbiAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG4gICAgd29yZC13cmFwOiBicmVhay13b3JkO1xufVxuXG4vKlxuICogU2V0cyBjb25zaXN0ZW50IHF1b3RlIHR5cGVzLlxuICovXG5cbnEge1xuICAgIHF1b3RlczogXCJcXDIwMUNcIiBcIlxcMjAxRFwiIFwiXFwyMDE4XCIgXCJcXDIwMTlcIjtcbn1cblxuLypcbiAqIEFkZHJlc3NlcyBpbmNvbnNpc3RlbnQgYW5kIHZhcmlhYmxlIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc21hbGwge1xuICAgIGZvbnQtc2l6ZTogODAlO1xufVxuXG4vKlxuICogUHJldmVudHMgYHN1YmAgYW5kIGBzdXBgIGFmZmVjdGluZyBgbGluZS1oZWlnaHRgIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zdWIsXG5zdXAge1xuICAgIGZvbnQtc2l6ZTogNzUlO1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbnN1cCB7XG4gICAgdG9wOiAtMC41ZW07XG59XG5cbnN1YiB7XG4gICAgYm90dG9tOiAtMC4yNWVtO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgRW1iZWRkZWQgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIFJlbW92ZXMgYm9yZGVyIHdoZW4gaW5zaWRlIGBhYCBlbGVtZW50IGluIElFIDgvOS5cbiAqL1xuXG5pbWcge1xuICAgIGJvcmRlcjogMDtcbn1cblxuLypcbiAqIENvcnJlY3RzIG92ZXJmbG93IGRpc3BsYXllZCBvZGRseSBpbiBJRSA5LlxuICovXG5cbnN2Zzpub3QoOnJvb3QpIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgRmlndXJlc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIEFkZHJlc3NlcyBtYXJnaW4gbm90IHByZXNlbnQgaW4gSUUgOC85IGFuZCBTYWZhcmkgNS5cbiAqL1xuXG5maWd1cmUge1xuICAgIG1hcmdpbjogMDtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEZvcm1zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogRGVmaW5lIGNvbnNpc3RlbnQgYm9yZGVyLCBtYXJnaW4sIGFuZCBwYWRkaW5nLlxuICovXG5cbmZpZWxkc2V0IHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xuICAgIG1hcmdpbjogMCAycHg7XG4gICAgcGFkZGluZzogMC4zNWVtIDAuNjI1ZW0gMC43NWVtO1xufVxuXG4vKlxuICogMS4gQ29ycmVjdHMgY29sb3Igbm90IGJlaW5nIGluaGVyaXRlZCBpbiBJRSA4LzkuXG4gKiAyLiBSZW1vdmUgcGFkZGluZyBzbyBwZW9wbGUgYXJlbid0IGNhdWdodCBvdXQgaWYgdGhleSB6ZXJvIG91dCBmaWVsZHNldHMuXG4gKi9cblxubGVnZW5kIHtcbiAgICBib3JkZXI6IDA7IC8qIDEgKi9cbiAgICBwYWRkaW5nOiAwOyAvKiAyICovXG59XG5cbi8qXG4gKiAxLiBDb3JyZWN0cyBmb250IGZhbWlseSBub3QgYmVpbmcgaW5oZXJpdGVkIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIENvcnJlY3RzIGZvbnQgc2l6ZSBub3QgYmVpbmcgaW5oZXJpdGVkIGluIGFsbCBicm93c2Vycy5cbiAqIDMuIEFkZHJlc3NlcyBtYXJnaW5zIHNldCBkaWZmZXJlbnRseSBpbiBGaXJlZm94IDQrLCBTYWZhcmkgNSwgYW5kIENocm9tZVxuICovXG5cbmJ1dHRvbixcbmlucHV0LFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0OyAvKiAxICovXG4gICAgZm9udC1zaXplOiAxMDAlOyAvKiAyICovXG4gICAgbWFyZ2luOiAwOyAvKiAzICovXG59XG5cbi8qXG4gKiBBZGRyZXNzZXMgRmlyZWZveCA0KyBzZXR0aW5nIGBsaW5lLWhlaWdodGAgb24gYGlucHV0YCB1c2luZyBgIWltcG9ydGFudGAgaW5cbiAqIHRoZSBVQSBzdHlsZXNoZWV0LlxuICovXG5cbmJ1dHRvbixcbmlucHV0IHtcbiAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xufVxuXG4vKlxuICogMS4gQXZvaWQgdGhlIFdlYktpdCBidWcgaW4gQW5kcm9pZCA0LjAuKiB3aGVyZSAoMikgZGVzdHJveXMgbmF0aXZlIGBhdWRpb2BcbiAqICAgIGFuZCBgdmlkZW9gIGNvbnRyb2xzLlxuICogMi4gQ29ycmVjdHMgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSBgaW5wdXRgIHR5cGVzIGluIGlPUy5cbiAqIDMuIEltcHJvdmVzIHVzYWJpbGl0eSBhbmQgY29uc2lzdGVuY3kgb2YgY3Vyc29yIHN0eWxlIGJldHdlZW4gaW1hZ2UtdHlwZVxuICogICAgYGlucHV0YCBhbmQgb3RoZXJzLlxuICovXG5cbmJ1dHRvbixcbmh0bWwgaW5wdXRbdHlwZT1cImJ1dHRvblwiXSwgLyogMSAqL1xuaW5wdXRbdHlwZT1cInJlc2V0XCJdLFxuaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDIgKi9cbiAgICBjdXJzb3I6IHBvaW50ZXI7IC8qIDMgKi9cbn1cblxuLypcbiAqIFJlLXNldCBkZWZhdWx0IGN1cnNvciBmb3IgZGlzYWJsZWQgZWxlbWVudHMuXG4gKi9cblxuYnV0dG9uW2Rpc2FibGVkXSxcbmlucHV0W2Rpc2FibGVkXSB7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4vKlxuICogMS4gQWRkcmVzc2VzIGJveCBzaXppbmcgc2V0IHRvIGBjb250ZW50LWJveGAgaW4gSUUgOC85LlxuICogMi4gUmVtb3ZlcyBleGNlc3MgcGFkZGluZyBpbiBJRSA4LzkuXG4gKi9cblxuaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLFxuaW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gICAgcGFkZGluZzogMDsgLyogMiAqL1xufVxuXG4vKlxuICogMS4gQWRkcmVzc2VzIGBhcHBlYXJhbmNlYCBzZXQgdG8gYHNlYXJjaGZpZWxkYCBpbiBTYWZhcmkgNSBhbmQgQ2hyb21lLlxuICogMi4gQWRkcmVzc2VzIGBib3gtc2l6aW5nYCBzZXQgdG8gYGJvcmRlci1ib3hgIGluIFNhZmFyaSA1IGFuZCBDaHJvbWVcbiAqICAgIChpbmNsdWRlIGAtbW96YCB0byBmdXR1cmUtcHJvb2YpLlxuICovXG5cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl0ge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvKiAxICovXG4gICAgLW1vei1ib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgICAtd2Via2l0LWJveC1zaXppbmc6IGNvbnRlbnQtYm94OyAvKiAyICovXG4gICAgYm94LXNpemluZzogY29udGVudC1ib3g7XG59XG5cbi8qXG4gKiBSZW1vdmVzIGlubmVyIHBhZGRpbmcgYW5kIHNlYXJjaCBjYW5jZWwgYnV0dG9uIGluIFNhZmFyaSA1IGFuZCBDaHJvbWVcbiAqIG9uIE9TIFguXG4gKi9cblxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLypcbiAqIFJlbW92ZXMgaW5uZXIgcGFkZGluZyBhbmQgYm9yZGVyIGluIEZpcmVmb3ggNCsuXG4gKi9cblxuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuaW5wdXQ6Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgIGJvcmRlcjogMDtcbiAgICBwYWRkaW5nOiAwO1xufVxuXG4vKlxuICogMS4gUmVtb3ZlcyBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRSA4LzkuXG4gKiAyLiBJbXByb3ZlcyByZWFkYWJpbGl0eSBhbmQgYWxpZ25tZW50IGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG50ZXh0YXJlYSB7XG4gICAgb3ZlcmZsb3c6IGF1dG87IC8qIDEgKi9cbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOyAvKiAyICovXG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBUYWJsZXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBSZW1vdmUgbW9zdCBzcGFjaW5nIGJldHdlZW4gdGFibGUgY2VsbHMuXG4gKi9cblxudGFibGUge1xuICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gICAgYm9yZGVyLXNwYWNpbmc6IDA7XG59XG4iLCIvL1xuLy8gTWFnZW50b1xuLy9cbi8vIE5PVElDRSBPRiBMSUNFTlNFXG4vL1xuLy8gVGhpcyBzb3VyY2UgZmlsZSBpcyBzdWJqZWN0IHRvIHRoZSBBY2FkZW1pYyBGcmVlIExpY2Vuc2UgKEFGTCAzLjApXG4vLyB0aGF0IGlzIGJ1bmRsZWQgd2l0aCB0aGlzIHBhY2thZ2UgaW4gdGhlIGZpbGUgTElDRU5TRV9BRkwudHh0LlxuLy8gSXQgaXMgYWxzbyBhdmFpbGFibGUgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIgYXQgdGhpcyBVUkw6XG4vLyBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYWZsLTMuMC5waHBcbi8vIElmIHlvdSBkaWQgbm90IHJlY2VpdmUgYSBjb3B5IG9mIHRoZSBsaWNlbnNlIGFuZCBhcmUgdW5hYmxlIHRvXG4vLyBvYnRhaW4gaXQgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIsIHBsZWFzZSBzZW5kIGFuIGVtYWlsXG4vLyB0byBsaWNlbnNlQG1hZ2VudG8uY29tIHNvIHdlIGNhbiBzZW5kIHlvdSBhIGNvcHkgaW1tZWRpYXRlbHkuXG4vL1xuLy8gRElTQ0xBSU1FUlxuLy9cbi8vIERvIG5vdCBlZGl0IG9yIGFkZCB0byB0aGlzIGZpbGUgaWYgeW91IHdpc2ggdG8gdXBncmFkZSBNYWdlbnRvIHRvIG5ld2VyXG4vLyB2ZXJzaW9ucyBpbiB0aGUgZnV0dXJlLiBJZiB5b3Ugd2lzaCB0byBjdXN0b21pemUgTWFnZW50byBmb3IgeW91clxuLy8gbmVlZHMgcGxlYXNlIHJlZmVyIHRvIGh0dHA6Ly93d3cubWFnZW50by5jb20gZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4vL1xuLy8gQGNhdGVnb3J5ICAgIGRlc2lnblxuLy8gQHBhY2thZ2UgICAgIHJ3ZF9kZWZhdWx0XG4vLyBAY29weXJpZ2h0ICAgQ29weXJpZ2h0IChjKSAyMDA2LTIwMTYgWC5jb21tZXJjZSwgSW5jLiBhbmQgYWZmaWxpYXRlcyAoaHR0cDovL3d3dy5tYWdlbnRvLmNvbSlcbi8vIEBsaWNlbnNlICAgICBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYWZsLTMuMC5waHAgIEFjYWRlbWljIEZyZWUgTGljZW5zZSAoQUZMIDMuMClcbi8vXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIFJlc2V0XG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4qLFxuKjpiZWZvcmUsXG4qOmFmdGVyIHtcblxuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xufVxuXG5odG1sIHtcbiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IGJsYWNrKDApOyAvKiBQcmV2ZW50IHRhcCBoaWdobGlnaHQgb24gaU9TL0FuZHJvaWQgKi9cbiAgICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIFByZXZlbnQgYXV0b21hdGljIHNjYWxpbmcgb24gaU9TICovXG59XG5cbmJvZHkge1xuICAgIGJhY2tncm91bmQ6ICNGRkZGRkY7XG4gICAgY29sb3I6ICMwMDAwMDA7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG59XG5cbmh0bWwsXG5ib2R5LFxuaW1nLFxuZmllbGRzZXQsXG5hYmJyLFxuYWNyb255bSB7XG4gICAgYm9yZGVyOiAwO1xufVxuXG5oMSxcbmgyLFxuaDMsXG5oNCxcbmg1LFxuaDYge1xuICAgIGZvbnQtc2l6ZTogMTAwJTtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xufVxuXG50aCxcbmNvZGUsXG5jaXRlLFxuY2FwdGlvbiB7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuYWRkcmVzcyB7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG5maWVsZHNldCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiAwO1xufVxuXG5pbWcge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuXG5vbCxcbnVsIHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xufVxuXG5xOmJlZm9yZSxcbnE6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xufVxuXG4vLyBTdGFuZGFyZCBvdXRsaW5lLW9mZnNldCBpbiBDaHJvbWUgYW5kIG1ha2UgdGhlIHNlYXJjaCBpbnB1dCBzYW1lIGFzIHRleHQgaW5wdXRcbmlucHV0OmZvY3VzLFxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTpmb2N1cyB7XG4gICAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7XG59XG5cbi8vIFJlc2V0dGluZyBOb3JtYWxpemUgc28gdGhhdCBzZWFyY2ggaW5wdXRzIGJlaGF2ZSB0aGUgc2FtZSBhcyB0ZXh0IGlucHV0c1xuaW5wdXRbdHlwZT1cInNlYXJjaFwiXSB7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOyAvKiAxICovXG4gICAgLW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMiAqL1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbmlmcmFtZSxpbWd7XG4gIG1heC13aWR0aDogMTAwJTtcbn1cbiIsIi8vXG4vLyBNYWdlbnRvXG4vL1xuLy8gTk9USUNFIE9GIExJQ0VOU0Vcbi8vXG4vLyBUaGlzIHNvdXJjZSBmaWxlIGlzIHN1YmplY3QgdG8gdGhlIEFjYWRlbWljIEZyZWUgTGljZW5zZSAoQUZMIDMuMClcbi8vIHRoYXQgaXMgYnVuZGxlZCB3aXRoIHRoaXMgcGFja2FnZSBpbiB0aGUgZmlsZSBMSUNFTlNFX0FGTC50eHQuXG4vLyBJdCBpcyBhbHNvIGF2YWlsYWJsZSB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiBhdCB0aGlzIFVSTDpcbi8vIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9hZmwtMy4wLnBocFxuLy8gSWYgeW91IGRpZCBub3QgcmVjZWl2ZSBhIGNvcHkgb2YgdGhlIGxpY2Vuc2UgYW5kIGFyZSB1bmFibGUgdG9cbi8vIG9idGFpbiBpdCB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiwgcGxlYXNlIHNlbmQgYW4gZW1haWxcbi8vIHRvIGxpY2Vuc2VAbWFnZW50by5jb20gc28gd2UgY2FuIHNlbmQgeW91IGEgY29weSBpbW1lZGlhdGVseS5cbi8vXG4vLyBESVNDTEFJTUVSXG4vL1xuLy8gRG8gbm90IGVkaXQgb3IgYWRkIHRvIHRoaXMgZmlsZSBpZiB5b3Ugd2lzaCB0byB1cGdyYWRlIE1hZ2VudG8gdG8gbmV3ZXJcbi8vIHZlcnNpb25zIGluIHRoZSBmdXR1cmUuIElmIHlvdSB3aXNoIHRvIGN1c3RvbWl6ZSBNYWdlbnRvIGZvciB5b3VyXG4vLyBuZWVkcyBwbGVhc2UgcmVmZXIgdG8gaHR0cDovL3d3dy5tYWdlbnRvLmNvbSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbi8vXG4vLyBAY2F0ZWdvcnkgICAgZGVzaWduXG4vLyBAcGFja2FnZSAgICAgcndkX2RlZmF1bHRcbi8vIEBjb3B5cmlnaHQgICBDb3B5cmlnaHQgKGMpIDIwMDYtMjAxNiBYLmNvbW1lcmNlLCBJbmMuIGFuZCBhZmZpbGlhdGVzIChodHRwOi8vd3d3Lm1hZ2VudG8uY29tKVxuLy8gQGxpY2Vuc2UgICAgIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9hZmwtMy4wLnBocCAgQWNhZGVtaWMgRnJlZSBMaWNlbnNlIChBRkwgMy4wKVxuLy9cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBGdW5jdGlvbiAtIEJsYWNrXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQGZ1bmN0aW9uIGJsYWNrICgkb3BhY2l0eSkge1xuICAgIEByZXR1cm4gcmdiYSgwLCAwLCAwLCAkb3BhY2l0eSk7XG59XG5cbkBmdW5jdGlvbiBibGFjay1mYWxsYmFjayAoJG9wYWNpdHkpIHtcbiAgICBAcmV0dXJuIGxpZ2h0ZW4oIzAwMDAwMCwgKDEgLSAkb3BhY2l0eSkpO1xufVxuIiwiXG4vL1xuLy8gTWFnZW50b1xuLy9cbi8vIE5PVElDRSBPRiBMSUNFTlNFXG4vL1xuLy8gVGhpcyBzb3VyY2UgZmlsZSBpcyBzdWJqZWN0IHRvIHRoZSBBY2FkZW1pYyBGcmVlIExpY2Vuc2UgKEFGTCAzLjApXG4vLyB0aGF0IGlzIGJ1bmRsZWQgd2l0aCB0aGlzIHBhY2thZ2UgaW4gdGhlIGZpbGUgTElDRU5TRV9BRkwudHh0LlxuLy8gSXQgaXMgYWxzbyBhdmFpbGFibGUgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIgYXQgdGhpcyBVUkw6XG4vLyBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYWZsLTMuMC5waHBcbi8vIElmIHlvdSBkaWQgbm90IHJlY2VpdmUgYSBjb3B5IG9mIHRoZSBsaWNlbnNlIGFuZCBhcmUgdW5hYmxlIHRvXG4vLyBvYnRhaW4gaXQgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIsIHBsZWFzZSBzZW5kIGFuIGVtYWlsXG4vLyB0byBsaWNlbnNlQG1hZ2VudG8uY29tIHNvIHdlIGNhbiBzZW5kIHlvdSBhIGNvcHkgaW1tZWRpYXRlbHkuXG4vL1xuLy8gRElTQ0xBSU1FUlxuLy9cbi8vIERvIG5vdCBlZGl0IG9yIGFkZCB0byB0aGlzIGZpbGUgaWYgeW91IHdpc2ggdG8gdXBncmFkZSBNYWdlbnRvIHRvIG5ld2VyXG4vLyB2ZXJzaW9ucyBpbiB0aGUgZnV0dXJlLiBJZiB5b3Ugd2lzaCB0byBjdXN0b21pemUgTWFnZW50byBmb3IgeW91clxuLy8gbmVlZHMgcGxlYXNlIHJlZmVyIHRvIGh0dHA6Ly93d3cubWFnZW50by5jb20gZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4vL1xuLy8gQGNhdGVnb3J5ICAgIGRlc2lnblxuLy8gQHBhY2thZ2UgICAgIHJ3ZF9kZWZhdWx0XG4vLyBAY29weXJpZ2h0ICAgQ29weXJpZ2h0IChjKSAyMDA2LTIwMTYgWC5jb21tZXJjZSwgSW5jLiBhbmQgYWZmaWxpYXRlcyAoaHR0cDovL3d3dy5tYWdlbnRvLmNvbSlcbi8vIEBsaWNlbnNlICAgICBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYWZsLTMuMC5waHAgIEFjYWRlbWljIEZyZWUgTGljZW5zZSAoQUZMIDMuMClcbi8vXG5cbkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogQmFzZSBTdHlsZXNcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbkAtbXMtdmlld3BvcnQge1xuICAgIHdpZHRoOiBkZXZpY2Utd2lkdGg7XG59XG5cbkAtby12aWV3cG9ydCB7XG4gICAgd2lkdGg6IGRldmljZS13aWR0aDtcbn1cblxuQHZpZXdwb3J0IHtcbiAgICB3aWR0aDogZGV2aWNlLXdpZHRoO1xufVxuXG4vLyBQcmV2ZW50IDMwMG1zIGRlbGF5IGluIElFIG9uIHRvdWNoIGRldmljZXNcbmEsIGJ1dHRvbiB7XG4gICAgLW1zLXRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uO1xuICAgIHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uO1xufVxuXG5ib2R5LFxuYnV0dG9uLFxuaW5wdXQsXG5zZWxlY3QsXG50YWJsZSxcbnRleHRhcmVhIHtcbiAgICBmb250LWZhbWlseTogJGYtc3RhY2stc2FucztcbiAgICBjb2xvcjogJGMtdGV4dDtcbiAgICBmb250LXNpemU6ICRmLXNpemU7XG4gICAgbGluZS1oZWlnaHQ6ICRiLWxpbmUtaGVpZ2h0O1xufVxuXG5ib2R5IHtcbiAgICBiYWNrZ3JvdW5kOiAjZmRmZGZkO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChpbWFnZXMvYmcuanBnKTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG4gICAgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTtcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xufVxuXG5hIHtcbiAgICBjb2xvcjogJGMtbGluaztcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbmE6aG92ZXIge1xuICAgIC8vY29sb3I6ICRjLWxpbmstaG92ZXI7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG5cbmE6Zm9jdXMge1xuICAgIG91dGxpbmUtY29sb3I6ICRjLWxpbmstYWN0aXZlO1xuICAgIGNvbG9yOiBkYXJrZW4oJGMtYWN0aW9uLCAzMCUpO1xufVxuXG5vbCxcbnVsIHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xufVxuXG5zdHJvbmcge1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIFR5cG9ncmFwaHlcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbmgxLCAuaDEgeyBAaW5jbHVkZSBoMTsgfVxuXG5oMiwgLmgyIHsgQGluY2x1ZGUgaDI7IH1cblxuaDMsIC5oMyB7IEBpbmNsdWRlIGgzOyB9XG5cbmg0LCAuaDQgeyBAaW5jbHVkZSBoNDsgfVxuXG5oNSwgLmg1IHsgQGluY2x1ZGUgaDU7IH1cblxuaDYsIC5oNiB7IEBpbmNsdWRlIGg2OyB9XG5cblxuXG5wIHtcbiAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIFNoYXJlZCBDbGFzc2VzXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4uYWRkcmVzcy1saXN0IGFkZHJlc3Mge1xuICAgIG1hcmdpbi1ib3R0b206IDFlbTtcbn1cblxuLmF2YWlsYWJpbGl0eSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBmb250LXNpemU6ICRmLXNpemUtcztcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG4uYXZhaWxhYmlsaXR5IC5sYWJlbCB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLmF2YWlsYWJpbGl0eS5pbi1zdG9jayB7XG4gICAgY29sb3I6ICRjLXN1Y2Nlc3M7XG59XG5cbi5hdmFpbGFiaWxpdHkuYXZhaWxhYmxlLXNvb24sXG4uYXZhaWxhYmlsaXR5Lm91dC1vZi1zdG9jayB7XG4gICAgY29sb3I6ICRjLWRhbmdlcjtcbn1cblxuLmF2YWlsYWJpbGl0eS1vbmx5IHtcbiAgICBjb2xvcjogJGMtZGFuZ2VyO1xuICAgIG1hcmdpbi1ib3R0b206ICRib3gtc3BhY2luZztcbn1cblxuLmctcmVjYXB0Y2hhIHtcbiAgICBmbG9hdDogcmlnaHQ7XG59XG5cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxuICogUGFnZSBUaXRsZXNcbiAqL1xuXG4ucGFnZS10aXRsZSBoMSxcbi5wYWdlLXRpdGxlIC5oMSxcbi5wYWdlLXRpdGxlIGgyLFxuLnBhZ2UtdGl0bGUgLmgyLFxuLnByb2R1Y3QtbmFtZSBoMSxcbi5wcm9kdWN0LW5hbWUgLmgxIHtcbiAgICBAaW5jbHVkZSBwYWdlVGl0bGU7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICpcbiAqIEJsb2NrIE1vZHVsZVxuICovXG5cbi5ibG9jayxcbi5jb2wtbGVmdC1maXJzdCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbn1cblxuLmNvbC1sZWZ0LWZpcnN0IC5ibG9jazpsYXN0LW9mLXR5cGUge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5ibG9jay10aXRsZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmc6IDEwcHggMCAwO1xuICAgIG1hcmdpbi1ib3R0b206IDVweDtcblxuXG4gICAgaDIsXG4gICAgaDMsXG4gICAgc3Ryb25nIHtcbiAgICAgICAgQGluY2x1ZGUgaDQ7XG4gICAgICAgIGNvbG9yOiAkYy10ZXh0O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgIH1cbiAgICBzbWFsbCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTAwJTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgY29sb3I6ICRjLXRleHQtZ3JheTtcbiAgICB9XG59XG5cbmltZy5pbWFnZS1pY29uIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICB9XG5cbi8vIE9uIGFjY291bnQgcGFnZXMsIGRvbid0IHJlbW92ZSB0aGUgdG9wIGJvcmRlciBpbiBvcmRlciB0byBjcmVhdGUgc2VwYXJhdGlvbiBiZXR3ZWVuIGJsb2NrIGFuZCAuYmxvY2stYWNjb3VudFxuYm9keTpub3QoLmN1c3RvbWVyLWFjY291bnQpIC5ibG9jazpmaXJzdC1jaGlsZCAuYmxvY2stdGl0bGUge1xuICAgIGJvcmRlci10b3A6IG5vbmU7XG4gICAgcGFkZGluZy10b3A6IDA7XG59XG5cbi5ibG9jay1zdWJ0aXRsZSB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgbWFyZ2luLWJvdHRvbTogJGVsZW1lbnQtc3BhY2luZztcbn1cblxuLmJsb2NrLWNvbnRlbnQge1xuICAgIG1hcmdpbi10b3A6IDVweDtcbn1cblxuLmJsb2NrLWNvbnRlbnQudW5wYWQge1xuICAgIHBhZGRpbmc6IDA7XG59XG5cbi5ibG9jay1jb250ZW50IGxpLml0ZW0ge1xuICAgIG1hcmdpbjogMCAwICRib3gtc3BhY2luZyA5cHg7XG59XG5cbi5ibG9jay1jb250ZW50IGxpLml0ZW06bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLmJsb2NrIC5hY3Rpb25zIHtcbiAgICBtYXJnaW46ICRib3gtc3BhY2luZyAwIDA7XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgIH1cbiAgICAuYnV0dG9uIHtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgIH1cbn1cblxuLmNvbC1sZWZ0LFxuLmNvbC1yaWdodCB7XG4gICAgLy8gQWxpZ24gdGhlIHZlcnRpY2FsIGhlaWdodCBvZiB0aGUgYW5jaG9yIHRvIGxpbmUgdXAgd2l0aCB0aGUgYnV0dG9uXG4gICAgLmJsb2NrIC5hY3Rpb25zIC5idXR0b24gfiBhIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDMzcHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgYnAobWF4LXdpZHRoLCAkYnAtbWVkaXVtKSB7XG5cbiAgICAuc2lkZWJhciB7XG4gICAgICAgIC8vIERvbid0IGFwcGx5IHRvIGxheWVyZWQgbmF2LCBzaW5jZSBpdCBnZXRzIHNwZWNpYWwgdHJlYXRtZW50XG4gICAgICAgIC5ibG9jazpub3QoLmJsb2NrLWxheWVyZWQtbmF2KSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgICAgICAgICAuYmxvY2stdGl0bGUge1xuXG4gICAgICAgICAgICAgICAgPiBzdHJvbmcge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBhY2NvcmRpb25EdEJhc2UoJ3JpZ2h0JywgJGMtbW9kdWxlLWJvcmRlcik7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgICAgICAgICAgICAgPiBzdHJvbmcge1xuICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYWNjb3JkaW9uRHRCYXNlKCdkb3duJywgJGMtbW9kdWxlLWJvcmRlcik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgIH1cbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxuICogU2Vjb25kYXJ5IE5hdmlnYXRpb25cbiAqL1xuXG4uYmxvY2stYWNjb3VudCxcbi5ibG9jay1jbXMtbWVudSB7XG4gICAgLmJsb2NrLXRpdGxlIHtcbiAgICAgICAgc3Ryb25nIHtcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAkZi1zdGFjay1zcGVjaWFsO1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGYtc2l6ZS14bDtcbiAgICAgICAgICAgIGNvbG9yOiAkYy10ZXh0O1xuICAgICAgICB9XG4gICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgICBib3JkZXItdG9wOiBub25lO1xuXG4gICAgfVxuXG4gICAgbGkge1xuXG5cbiAgICAgICAgbWFyZ2luOiA3cHggMDtcblxuICAgICAgICBzdHJvbmcge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgICAgIGNvbG9yOiAkYy1hY3Rpb247XG4gICAgICAgIH1cblxuICAgICAgICBhIHtcbiAgICAgICAgICAgIGNvbG9yOiAkYy10ZXh0O1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGMtYWN0aW9uO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBCdXR0b25zXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKiBTZWNvbmRhcnkgQnV0dG9ucyAqL1xuLmNhcnQgLmJ1dHRvbnMtc2V0IC5idXR0b24sXG4uY2FydC10YWJsZSAuYnV0dG9uLFxuLnNpZGViYXIgLmFjdGlvbnMgLmJ1dHRvbixcbi5idXR0b24uYnV0dG9uLXNlY29uZGFyeSB7XG4gICAgYmFja2dyb3VuZDogJGMtYnV0dG9uLXNlY29uZGFyeTtcbiAgICBjb2xvcjogJGMtdGV4dDtcbiAgICBwYWRkaW5nOiA3cHggMTVweDtcblxuICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkYy1idXR0b24tc2Vjb25kYXJ5LWhvdmVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuXG4gICAgJjphY3RpdmUge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkYy1idXR0b24tc2Vjb25kYXJ5LWFjdGl2ZTtcbiAgICAgICAgY29sb3I6ICRjLXRleHQ7XG4gICAgfVxuXG4gICAgJjpmb2N1cyB7XG4gICAgICAgIGNvbG9yOiAkYy10ZXh0O1xuICAgICAgICBiYWNrZ3JvdW5kOiAkYy1idXR0b24tc2Vjb25kYXJ5LWFjdGl2ZTtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICB9XG59XG5cbi5zaWRlYmFyIC5hY3Rpb25zIGJ1dHRvbi5idXR0b24ge1xuICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XG59XG5cbi8qIFByaW1hcnkgQnV0dG9ucyAqL1xuXG4uYnV0dG9uLFxuYnV0dG9uLFxuW3R5cGU9c3VibWl0XSxcbi5jYXJ0LXRhYmxlIC5wcm9kdWN0LWNhcnQtYWN0aW9ucyAuYnV0dG9uLFxuI2NvLXNoaXBwaW5nLW1ldGhvZC1mb3JtIC5idXR0b25zLXNldCAuYnV0dG9uLFxuLmZvb3RlciAuYnV0dG9uIHtcbiAgICBiYWNrZ3JvdW5kOiAkYy1idXR0b247XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBwYWRkaW5nOiA5cHggMjRweCA4cHggMjRweDtcbiAgICBAaW5jbHVkZSBicChtaW4td2lkdGgsICRicC1zbWFsbCArMSkge1xuICAgICAgIHBhZGRpbmc6IDhweCAyNHB4IDZweCAyNHB4O1xuICAgIH0gICBcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYm9yZGVyOiAwO1xuICAgIGNvbG9yOiAjRkZGRkZGO1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtZmFtaWx5OiAkZi1zdGFjay1zcGVjaWFsO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBtaW4td2lkdGg6IDIwMHB4O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRjLXRleHQ7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG4gICAgJjphY3RpdmUge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkYy1idXR0b24tYWN0aXZlO1xuICAgICAgICBjb2xvcjogI0ZGRkZGRjtcbiAgICB9XG4gICAgJjpmb2N1cyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjLWJ1dHRvbi1hY3RpdmU7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIGNvbG9yOiAjRkZGRkZGO1xuICAgIH1cbiAgICAmLm9wZW4tbGlnaHRib3gge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjOWQ5ZDlkICFpbXBvcnRhbnQ7XG4gICAgICAgICY6aG92ZXLCoHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGRhcmtlbigjOWQ5ZDlkLCA1JSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgJi5zZWNvbmRhcnksJi5vdXRsaW5lIHtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgYm9yZGVyOiAycHggc29saWQgJGMtdGV4dDtcbiAgICAgICAgY29sb3I6ICRjLXRleHQ7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgcGFkZGluZzogNnB4IDI0cHggNXB4IDI0cHg7XG4gICAgICBAaW5jbHVkZSBicChtaW4td2lkdGgsICRicC1zbWFsbCArMSkge1xuICAgICAgICBwYWRkaW5nOiA2cHggMjRweCA0cHggMjRweDtcbiAgICAgIH0gICBcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkYy10ZXh0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5zZWFyY2gtYnV0dG9uIHtcbiAgICAgICAgbWluLXdpZHRoOiBhdXRvO1xuICAgIH1cbiAgICAvLyAmLm91dGxpbmUge1xuICAgIC8vICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgLy8gICBib3JkZXI6IDNweCBzb2xpZCAkYy1kYXJrYmx1ZTtcbiAgICAvLyAgIGNvbG9yOiAkYy1kYXJrYmx1ZTtcbiAgICAvLyAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIFxuICAgIC8vICAgcGFkZGluZzogNnB4IDI0cHggNXB4IDI0cHg7XG4gICAgLy8gICBAaW5jbHVkZSBicChtaW4td2lkdGgsICRicC1zbWFsbCArMSkge1xuICAgIC8vICAgICBwYWRkaW5nOiA1cHggMjRweCAzcHggMjRweDtcbiAgICAvLyAgIH0gICBcbiAgICAgIFxuXG4gICAgLy8gICAmOmhvdmVyIHtcbiAgICAvLyAgICAgYm9yZGVyLWNvbG9yOiBsaWdodGVuKCRjLWRhcmtibHVlLCA3JSk7XG4gICAgLy8gICAgIGNvbG9yOiBsaWdodGVuKCRjLWRhcmtibHVlLCA3JSk7XG4gICAgLy8gICB9XG4gICAgLy8gfVxufVxuXG5cblxuXG5cbmEuYnV0dG9uIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbmEuYnV0dG9uOmhvdmVyIHtcbiAgICBjb2xvcjogI0ZGRkZGRjtcbn1cblxuLyogRGlzYWJsZWQgLSBjbGFzcyBmb3IgYW5jaG9yLCBzdGF0ZSBmb3IgZm9ybSBlbGVtZW50cyAqL1xuLmJ1dHRvbi5kaXNhYmxlZCxcbi5idXR0b246ZGlzYWJsZWQge1xuICAgIGJhY2tncm91bmQ6ICNDOEM4Qzg7XG4gICAgb3BhY2l0eTogMC42O1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG5cbi5idXR0b24sIGEuYnV0dG9uIHtcbiAgICBpbWcge1xuICAgICAgICB3aWR0aDogMThweDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgICAgICAgbWFyZ2luLXRvcDogLTJweDtcbiAgICB9XG59XG5cbi8vIFRoaXMgbWl4aW4gZ2V0cyBhcHBsaWVkIHRvIGVsZW1lbnRzIHRoYXQgYXJlIG9ubHkgYnV0dG9ucyBvbiBzbWFydHBob25lcyAob3Igc29tZXRpbWVzIHRhYmxldHMpLCBzdWNoIGFzIGxheWVyZWRcbi8vIG5hdiBsaW5rcyBvciBjaGVja2JveCBsYWJlbHMuXG4vLyBCdWlsZGluZyB0aGlzIGFzIGEgbWl4aW4gKHJhdGhlciB0aGFuIGFuIGV4dGVuZGFibGUgY2xhc3MpIHNpbmNlIGl0IHdpbGwgYmUgaW5jbHVkZWQgd2l0aGluIG1xIGJyZWFrcG9pbnRzLCBhbmRcbi8vIGV4dGVuZGluZyBkb2Vzbid0IHdvcmsgd2l0aGluIG1lZGlhIHF1ZXJpZXM6IGh0dHA6Ly9zYXNzLWxhbmcuY29tL2RvY3VtZW50YXRpb24vZmlsZS5TQVNTX1JFRkVSRU5DRS5odG1sI19pbl9kaXJlY3RpdmVzXG5AbWl4aW4gdG91Y2gtYnV0dG9uIHtcbiAgICBjb2xvcjogJGMtdGV4dDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYy1tb2R1bGUtYmFja2dyb3VuZDtcbiAgICBwYWRkaW5nOiA1cHggMTBweDtcbn1cblxuLmJ1dHRvbjIge1xuICAgIGJvcmRlcjogMDtcbiAgICBwYWRkaW5nOiAwIDVweDtcbiAgICBtYXJnaW46IDA7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5idXR0b24yOmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xufVxuXG4uYnV0dG9uMiBzcGFuLFxuLmJ1dHRvbjIgc3BhbiBzcGFuIHtcbiAgICBsaW5lLWhlaWdodDogMzBweDtcbiAgICBoZWlnaHQ6IDMwcHg7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgY29sb3I6ICRjLWFjdGlvbjtcbiAgICBmb250LWZhbWlseTogJGYtc3RhY2stc3BlY2lhbDtcblxuICAgICY6aG92ZXIge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIGNvbG9yOiAkYy1zdGltdWx1cztcbiAgICB9XG59XG5cbkBpbmNsdWRlIGJwKG1heC13aWR0aCwgJGJwLXNtYWxsKSB7XG4gICAgLmNvbDItc2V0IC5idXR0b25zLXNldCB7XG4gICAgICAgIC5idXR0b24sXG4gICAgICAgIC5idXR0b24yIHtcbiAgICAgICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIH1cbiAgICAgICAgLmJhY2stbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgICAgIC5yZXF1aXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AaW5jbHVkZSBicChtYXgtd2lkdGgsICRicC14c21hbGwpIHtcbiAgICAuYnV0dG9ucy1zZXQge1xuICAgICAgICAuYnV0dG9uIHtcbiAgICAgICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRlbGVtZW50LXNwYWNpbmc7XG4gICAgICAgIH1cbiAgICAgICAgLmJhY2stbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgICAgIC5yZXF1aXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXG4gKiBQYXlwYWwgQnV0dG9uXG4gKi9cblxuLnBheXBhbC1sb2dvLnBheXBhbC1hZnRlciB7XG4gICAgZmxvYXQ6IGxlZnQ7XG59XG5cbi5wYXlwYWwtYWZ0ZXIgLnBheXBhbC1vciB7XG4gICAgZmxvYXQ6IGxlZnQ7XG59XG5cbi5wYXlwYWwtb3Ige1xuICAgIGxpbmUtaGVpZ2h0OiAzNHB4O1xuICAgIG1hcmdpbjogMHB4IDEwcHggNXB4O1xufVxuXG4ucGF5cGFsLWFmdGVyIC5wYXlwYWwtYnV0dG9uIHtcbiAgICBmbG9hdDogbGVmdDtcbn1cblxuLnBheXBhbC1idXR0b24ge1xuICAgIGxpbmUtaGVpZ2h0OiAwcHg7XG59XG5cbi5wYXlwYWwtYnV0dG9uIGltZyB7XG4gICAgZGlzcGxheTogaW5saW5lO1xufVxuXG5AaW5jbHVkZSBicChtYXgtd2lkdGgsIDc0MHB4KSB7XG4gICAgLnBheXBhbC1vciB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIH1cblxuICAgIC5wYXlwYWwtbG9nbyxcbiAgICAucGF5cGFsLW9yLFxuICAgIC5wYXlwYWwtYnV0dG9uIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgIGZsb2F0OiBub25lO1xuICAgIH1cbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxuICogQnV0dG9uIFNldHNcbiAqL1xuXG4uYnV0dG9ucy1zZXQge1xuICAgIGNsZWFyOiBib3RoO1xuICAgIG1hcmdpbjogJGJveC1zcGFjaW5nIDAgMDtcbiAgICBwYWRkaW5nLXRvcDogJGJveC1zcGFjaW5nO1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuXG4gICAgcC5yZXF1aXJlZCB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6ICRnYXA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAzM3B4O1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgfVxuICAgIC5iYWNrLWxpbmsge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBsaW5lLWhlaWdodDogMzNweDtcbiAgICB9XG4gICAgYTpub3QoLmJ1dHRvbikge1xuICAgICAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiA1cHggMDtcbiAgICB9XG4gICAgYnV0dG9uLmJ1dHRvbiB7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDVweDtcbiAgICAgICAgbWluLXdpZHRoOiAxNDBweDtcbiAgICB9XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgfVxufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXG4gKiBJY29uc1xuICovXG5cbi5pY29uLXNwcml0ZSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKGltYWdlcy9pY29uX3Nwcml0ZS5wbmcpO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgQGluY2x1ZGUgaW1hZ2UtcmVwbGFjZW1lbnQ7XG59XG5cbkBpbmNsdWRlIGlmLW1pbi1yZXNvbHV0aW9uKDIpIHtcbiAgICAuaWNvbi1zcHJpdGUge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaW1hZ2VzL2ljb25fc3ByaXRlQDJ4LnBuZyk7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogMTAwcHggMTAwMHB4O1xuICAgIH1cbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxuICogQnJlYWRjcnVtYnNcbiAqL1xuXG4uYnJlYWRjcnVtYnMge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgbWFyZ2luOiAtMTVweCAwIDE1cHg7XG59XG5cbi5icmVhZGNydW1icyBsaSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgZm9udC1zaXplOiAkZi1zaXplLXhzO1xuICAgIGZvbnQtZmFtaWx5OiAkZi1zdGFjay1zcGVjaWFsO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG5cbi5icmVhZGNydW1icyBhIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBjb2xvcjogJGMtdGV4dDtcbn1cblxuLmJyZWFkY3J1bWJzIGE6aG92ZXIge1xuICAgIGNvbG9yOiAkYy1hY3Rpb247XG59XG5cbi5icmVhZGNydW1icyBzdHJvbmcge1xuICAgIGNvbG9yOiAkYy10ZXh0O1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG59XG5cbi5icmVhZGNydW1icyBzcGFuIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBwYWRkaW5nOiAwIDdweDtcbn1cblxuQGluY2x1ZGUgYnAobWF4LXdpZHRoLCAkYnAtbWVkaXVtKSB7XG5cbiAgICAuYnJlYWRjcnVtYnMge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXG4gKiBCdXR0b24gLSBSZW1vdmUgLyBQcmV2aW91c1xuICovXG5cbi5idG4tcmVtb3ZlLFxuLmJ0bi1wcmV2aW91cyB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiAyMHB4O1xuICAgIGhlaWdodDogMjBweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYy1tb2R1bGUtYm9yZGVyLWxpZ2h0O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAvKiBIaWRlIHRleHQgKi9cbiAgICBmb250OiAwLzAgYTtcbiAgICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG59XG5cbi5idG4tcmVtb3ZlIHtcbiAgICAmOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJ1gnO1xuICAgICAgICBjb2xvcjogJGMtYWN0aW9uO1xuICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgZm9udC1zaXplOiAxMHB4O1xuICAgICAgICBmb250LWZhbWlseTogQXJpYWwsICRmLXN0YWNrLXNhbnM7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIH1cbiAgICAmOmhvdmVyOmFmdGVyIHtcbiAgICAgICAgY29sb3I6ICNGRkZGRkY7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB9XG59XG5cbi5idG4tcmVtb3ZlMiB7XG4gICAgQGV4dGVuZCAuaWNvbi1zcHJpdGU7XG4gICAgLy8kaWNvbi1wYWRkaW5nOiAzcHg7XG5cbiAgICBiYWNrZ3JvdW5kOiAjYzVjNWM1O1xuICAgIHdpZHRoOiAzM3B4O1xuICAgIGhlaWdodDogMzNweDtcbiAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuXG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKGltYWdlcy9pY29uLWNhcnQtcmVtb3ZlLnN2Zyk7XG4gICAgYmFja2dyb3VuZC1zaXplOiA5cHg7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgYm9yZGVyOiBub25lO1xuICAgIC8vdmVydGljYWwtYWxpZ246IHRvcDsgLy8gQWRkaW5nIHRoaXMgc28gdGhhdCB0aGUgYnV0dG9uIHdpbGwgc2hvdyBhdCB0aGUgdG9wIG9mIHRoZSBjYXJ0IHJvd3MsIHJhdGhlciB0aGFuIGF0IHRoZSBiYXNlbGluZVxuXG5cblxufVxuXG4uYnRuLXByZXZpb3VzIHtcbiAgICAmOmFmdGVyIHtcbiAgICAgICAgQGluY2x1ZGUgdHJpYW5nbGUobGVmdCwgNHB4LCAkYy1hY3Rpb24pO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtMnB4O1xuICAgICAgICBtYXJnaW4tdG9wOiAtNHB4O1xuICAgIH1cbiAgICAmOmhvdmVyOmFmdGVyIHtcbiAgICAgICAgQGluY2x1ZGUgdHJpYW5nbGUobGVmdCwgNHB4LCAjRkZGRkZGKTtcbiAgICB9XG59XG5cbi5ibG9jay1sYXllcmVkLW5hdiAuY3VycmVudGx5LFxuLm1pbmktcHJvZHVjdHMtbGlzdCxcbiNjb21wYXJlLWl0ZW1zIHtcblxuICAgIC5idG4tcmVtb3ZlLFxuICAgIC5idG4tcHJldmlvdXMge1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA2cHg7XG4gICAgfVxufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXG4gKiBDaGVja291dCBBZ3JlZW1lbnRzXG4gKi9cblxuLmNoZWNrb3V0LWFncmVlbWVudHMgbGkge1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG59XG5cbi5jaGVja291dC1hZ3JlZW1lbnRzIC5hZ3JlZW1lbnQtY29udGVudCB7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICBtYXgtd2lkdGg6IDY3MHB4O1xuICAgIG1heC1oZWlnaHQ6IDEyNXB4O1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgcGFkZGluZzogMTBweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYy1tb2R1bGUtYm9yZGVyO1xuICAgIGJhY2tncm91bmQ6ICRjLW1vZHVsZS1iYWNrZ3JvdW5kO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXG4gKiBDVlYgU2VjdXJpdHkgQ29kZVxuICovXG5cbi5jdnYtd2hhdC1pcy10aGlzIHtcbiAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICBmb250LXNpemU6ICRmLXNpemUtcztcbiAgICBsaW5lLWhlaWdodDogMjRweDtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxuICogQ29udGFpbmVyXG4gKi9cblxuLm1haW4tY29udGFpbmVyLFxuLnN1cHBvcnQtY29udGFpbmVyLFxuLmhvbWUtc2xpZGUtd3JhcHBlcixcbi5wYWdlLWhlYWRlcixcbi5ob21lLXNsaWRlci1zZWFyY2gtY29udGFpbmVyLFxuLmxhdGVzdC1uZXdzLWNvbnRhaW5lcixcbi5wcm9kdWN0cy10ZWFzZXItY29udGFpbmVyLFxuLmZvb3Rlci1jb250YWluZXIsXG4ud29yZHByZXNzLWxheW91dC1mdWxsc2NyZWVuIC5wYWdlIC5mdWxsc2NyZWVuLXNsaWRlciAuc2xpY2stc2xpZGUgLmNvbnRlbnQtd3JhcHBlcntcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWF4LXdpZHRoOiAkbWF4LWNvbnRhaW5lci13aWR0aDtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBwYWRkaW5nOiAxNXB4O1xuXG5cbiAgICAmOmFmdGVyIHtcbiAgICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgfVxufVxuXG4ud29yZHByZXNzLWxheW91dC1mdWxsc2NyZWVuIHtcbiAgICAuaGVhZGVyLXdyYXBwZXIge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHotaW5kZXg6IDEwXG4gICAgfVxufVxuXG4ud29yZHByZXNzLWxheW91dC1mdWxsc2NyZWVuIHtcbiAgICAuY29sLW1haW4ge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgfVxufVxuXG5cbkBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLW1lZGl1bSArIDEpIHtcblxuICAgIC5tYWluLWNvbnRhaW5lcixcbiAgICAuc3VwcG9ydC1jb250YWluZXIsXG4gICAgLnBhZ2UtaGVhZGVyLFxuICAgIC5ob21lLXNsaWRlLXdyYXBwZXIsXG4gICAgLmhvbWUtc2xpZGVyLXNlYXJjaC1jb250YWluZXIsXG4gICAgLmxhdGVzdC1uZXdzLWNvbnRhaW5lcixcbiAgICAucHJvZHVjdHMtdGVhc2VyLWNvbnRhaW5lcixcbiAgICAuZm9vdGVyLWNvbnRhaW5lciB7XG4gICAgICAgIHBhZGRpbmc6IDM1cHggMjVweDtcbiAgICB9XG5cbiAgICAubGF0ZXN0LW5ld3MtY29udGFpbmVyIHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgfVxuXG4gICAgLmhvbWUtc2xpZGUtd3JhcHBlciB7XG4gICAgICAgIHBhZGRpbmc6IDI1cHg7XG4gICAgICAgIHBhZGRpbmctdG9wOiAxNXB4O1xuICAgIH1cblxufVxuXG4uZm9vdGVyLWNvbnRhaW5lciB7XG4gICAgcGFkZGluZy10b3A6IDBweDtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxuICogQ29sdW1uIExheW91dHNcbiAqL1xuXG4ubWFpbjphZnRlcixcbi5jb2wtd3JhcHBlcjphZnRlciB7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG59XG5cbi5jb2wtbGVmdCxcbi5jb2wtcmlnaHQsXG4uY29sLW1haW4ge1xuICAgIHBhZGRpbmc6IDAgMTVweDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4uY29sLWxlZnQge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiBwZXJjZW50YWdlKDI0MHB4Lzk2MHB4KTtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7IC8qIFJlbW92ZSB0aGUgMTVweCBwYWRkaW5nICovXG4gICAgY2xlYXI6IGxlZnQ7XG5cbiAgICBpbWcge1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgfVxufVxuXG4uY29sLXJpZ2h0IHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgLy93aWR0aDogcGVyY2VudGFnZSgyNDBweC85NjBweCk7XG4gICAgd2lkdGg6IDMwJTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwOyAvKiBSZW1vdmUgdGhlIDE1cHggcGFkZGluZyAqL1xuXG4gICAgaW1nIHtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIH1cbn1cblxuLmNvbC1tYWluIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICAvL3dpZHRoOiBwZXJjZW50YWdlKDcyMHB4Lzk2MHB4KTtcbiAgICB3aWR0aDogNzAlO1xufVxuXG4uY29sMS1sYXlvdXQge1xuICAgIC5jb2wtbWFpbiB7XG4gICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgcGFkZGluZzogMDsgLyogUmVtb3ZlIHRoZSAxNXB4IHBhZGRpbmcgKi9cbiAgICB9XG59XG5cbi5jb2wyLWxlZnQtbGF5b3V0IHtcbiAgICAuY29sLW1haW4ge1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7IC8qIFJlbW92ZSB0aGUgMTVweCBwYWRkaW5nICovXG4gICAgfVxufVxuXG4uY29sMi1yaWdodC1sYXlvdXQge1xuICAgIC5jb2wtbWFpbiB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDsgLyogUmVtb3ZlIHRoZSAxNXB4IHBhZGRpbmcgKi9cbiAgICB9XG59XG5cbi5jb2wzLWxheW91dCB7XG4gICAgLmNvbC1yaWdodCB7XG4gICAgICAgIHdpZHRoOiBwZXJjZW50YWdlKDIwMHB4Lzk2MHB4KTtcbiAgICB9XG5cbiAgICAuY29sLXdyYXBwZXIge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgd2lkdGg6IHBlcmNlbnRhZ2UoNzYwcHgvOTYwcHgpO1xuXG4gICAgICAgIC5jb2wtbWFpbiB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICB3aWR0aDogcGVyY2VudGFnZSg1NjBweC83NjBweCk7XG4gICAgICAgIH1cblxuICAgICAgICAuY29sLWxlZnQge1xuICAgICAgICAgICAgd2lkdGg6IHBlcmNlbnRhZ2UoMjAwcHgvNzYwcHgpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AaW5jbHVkZSBicChtYXgtd2lkdGgsIDEwMDBweCkge1xuICAgIC5jb2wzLWxheW91dCB7XG4gICAgICAgIC5jb2wtcmlnaHQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBjbGVhcjogbGVmdDtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7XG4gICAgICAgICAgICB3aWR0aDogcGVyY2VudGFnZSgyNDBweC85NjBweCk7XG4gICAgICAgIH1cblxuICAgICAgICAuY29sLXdyYXBwZXIge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgICAgIC5jb2wtbWFpbiB7XG4gICAgICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgICAgIHdpZHRoOiBwZXJjZW50YWdlKDcyMHB4Lzk2MHB4KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmNvbC1sZWZ0IHtcbiAgICAgICAgICAgICAgICB3aWR0aDogcGVyY2VudGFnZSgyNDBweC85NjBweCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBpbmNsdWRlIGJwKG1heC13aWR0aCwgJGJwLW1lZGl1bSkge1xuICAgIC5jb2wtbGVmdCxcbiAgICAuY29sLXJpZ2h0LFxuICAgIC5jb2wtbWFpbixcbiAgICAuY29sMS1sYXlvdXQgLmNvbC1sZWZ0LFxuICAgIC5jb2wxLWxheW91dCAuY29sLXJpZ2h0LFxuICAgIC5jb2wxLWxheW91dCAuY29sLW1haW4sXG4gICAgLmNvbDItbGVmdC1sYXlvdXQgLmNvbC1sZWZ0LFxuICAgIC5jb2wyLWxlZnQtbGF5b3V0IC5jb2wtcmlnaHQsXG4gICAgLmNvbDItbGVmdC1sYXlvdXQgLmNvbC1tYWluLFxuICAgIC5jb2wyLXJpZ2h0LWxheW91dCAuY29sLWxlZnQsXG4gICAgLmNvbDItcmlnaHQtbGF5b3V0IC5jb2wtcmlnaHQsXG4gICAgLmNvbDItcmlnaHQtbGF5b3V0IC5jb2wtbWFpbixcbiAgICAuY29sMy1sYXlvdXQgLmNvbC13cmFwcGVyIC5jb2wtbGVmdCxcbiAgICAuY29sMy1sYXlvdXQgLmNvbC1yaWdodCxcbiAgICAuY29sMy1sYXlvdXQgLmNvbC13cmFwcGVyIC5jb2wtbWFpbiB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7IC8vIFNpbmNlIGNvbHVtbnMgYXJlIHN0YWNrZWQsIHdlIHdhbnQgdGhlcmUgdG8gYmUgdmVydGljYWwgc3BhY2luZ1xuICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgfVxuXG4gICAgLmNvbDMtbGF5b3V0IC5jb2wtd3JhcHBlciB7XG4gICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICB9XG5cbiAgICAuY29sLW1haW4ge1xuICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgfVxuXG4gICAgLmNvbC1tYWluIC5jb2wtbGVmdCB7XG4gICAgICAgIHBhZGRpbmc6IDA7IC8qIE9uIHByb2R1Y3QgbGlzdGluZyBwYWdlcywgdGhlIGxlZnQgY29sdW1uIGdldHMgbW92ZWQgaW5zaWRlIGNvbC1tYWluIG9uIHNtYWxsIHZpZXdwb3J0cyAqL1xuICAgIH1cbn1cblxuLyogQ29udGVudCBDb2x1bW5zICovXG5cbi5jb2wyLXNldCB7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICAuY29sLTEsXG4gICAgLmNvbC0yIHtcbiAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgcGFkZGluZzogJGJveC1zcGFjaW5nLWxhcmdlO1xuXG4gICAgICAgIEBpbmNsdWRlIGJwKG1heC13aWR0aCwgJGJwLW1lZGl1bSkge1xuICAgICAgICAgICAgcGFkZGluZzogJGJveC1zcGFjaW5nO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmNvbC0xIHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICB9XG5cbiAgICAuY29sLTIge1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnAobWF4LXdpZHRoLCAkYnAtc21hbGwpIHtcbiAgICAgICAgLmNvbC0xLFxuICAgICAgICAuY29sLTIge1xuICAgICAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubmFycm93IHtcbiAgICAgICAgd2lkdGg6IDMzJTtcbiAgICB9XG5cbiAgICAud2lkZSB7XG4gICAgICAgIHdpZHRoOiA2NSU7XG4gICAgfVxuXG4gICAgJjphZnRlciB7XG4gICAgICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICAgIH1cbn1cblxuYm9keSA+IC53cmFwcGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICpcbiAqIFRvcCBDb250YWluZXJcbiAqL1xuQGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtbWVkaXVtICsgMSkge1xuICAgIC50b3AtY29udGFpbmVyIHtcbiAgICAgICAgbWF4LXdpZHRoOiAkbWF4LWNvbnRhaW5lci13aWR0aDtcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgIHBhZGRpbmc6IDAgJHRyaW07XG4gICAgfVxufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXG4gKiBHbG9iYWwgU2l0ZSBOb3RpY2VcbiAqL1xuXG4uZ2xvYmFsLXNpdGUtbm90aWNlIHtcbiAgICBiYWNrZ3JvdW5kOiAkYy1ibHVlO1xuICAgIGNvbG9yOiAkYy1kYXJrYmx1ZTtcbiAgICBmb250LXNpemU6ICRmLXNpemU7XG5cbiAgICBhIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIGNvbG9yOiAkYy1kYXJrYmx1ZTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cblxuICAgIC5ub3RpY2UtaW5uZXIge1xuICAgICAgICBwYWRkaW5nOiAxNXB4O1xuICAgICAgICBwYWRkaW5nLXRvcDogMTJweDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgIG1heC13aWR0aDogMTM2MHB4O1xuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuXG4gICAgICAgIGltZyB7XG4gICAgICAgICAgICBkaXNwbGF5OmlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICpcbiAqIFByb21vdGlvbmFsIE1lc3NhZ2UgQmFubmVyXG4gKi9cblxuLnByb21vLW1zZyB7XG4gICAgY29sb3I6ICRjLXRleHQtcHJpbWFyeTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbWFyZ2luOiAkYm94LXNwYWNpbmc7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBmb250LWZhbWlseTogJGYtc3RhY2stc3BlY2lhbDtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxuICogR3JpZFxuICovXG5cbi5ncmlkOmFmdGVyIHtcbiAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxuICogTWVzc2FnZXNcbiAqL1xuLnN1Y2Nlc3Mge1xuICAgIGNvbG9yOiAkYy1zdWNjZXNzO1xufVxuXG4uZXJyb3Ige1xuICAgIGNvbG9yOiAkYy1kYW5nZXI7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi5ub3RpY2Uge1xuICAgIGNvbG9yOiAkYy13YXJuO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXG4gKiBNZXNzYWdlc1xuICovXG5cbi5tZXNzYWdlcyB7XG4gICAgbWFyZ2luLWJvdHRvbTogJGdhcDtcbn1cblxuLm1lc3NhZ2VzIGxpIGxpIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICAgIHBhZGRpbmc6IDEwcHggMDtcbiAgICBmb250LXNpemU6ICRmLXNpemU7XG59XG5cbi5tZXNzYWdlcyBsaSBsaTpiZWZvcmUge1xuICAgIHRvcDogNTAlO1xuICAgIGxlZnQ6IDA7XG4gICAgbWFyZ2luLXRvcDogLTZweDtcbn1cblxuLm1lc3NhZ2VzIC5lcnJvci1tc2cgbGkge1xuICAgIGNvbG9yOiAkYy1kYW5nZXI7XG5cbn1cblxuXG4ubWVzc2FnZXMgLm5vdGljZS1tc2cgbGkge1xuICAgIGNvbG9yOiAkYy13YXJuO1xufVxuXG4ubWVzc2FnZXMgLnN1Y2Nlc3MtbXNnIGxpIHtcbiAgICBjb2xvcjogJGMtc3VjY2Vzcztcbn1cblxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuQGluY2x1ZGUgYnAobWluLXdpZHRoLCA5MTVweCkge1xuXG4gICAgLm9yZGVyLWxpc3QtZ3JpZCAuY29sLTEge1xuICAgICAgICB3aWR0aDogMzAlO1xuICAgIH1cblxuICAgIC5vcmRlci1saXN0LWdyaWQgLmNvbC0yIHtcbiAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMjBweDtcbiAgICB9XG5cbiAgICAub3JkZXItbGlzdC1ncmlkIC5jb2wtMyB7XG4gICAgICAgIGNsZWFyOiBub25lO1xuICAgICAgICB3aWR0aDogMjAlO1xuICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICB9XG5cbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxuICogUGFnZSBQb3B1cFxuICovXG5cbi5wYWdlLXBvcHVwIHtcbiAgICBwYWRkaW5nOiAyMHB4O1xuICAgIGJhY2tncm91bmQ6ICNGRkZGRkY7XG4gICAgaGVpZ2h0OiBhdXRvO1xufVxuXG4ucGFnZS1wb3B1cCBoMSB7XG4gICAgbWFyZ2luOiAwIDAgMC41ZW07XG4gICAgZm9udC1zaXplOiAzNnB4O1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXG4gKiBQYXltZW50IE1ldGhvZHNcbiAqL1xuXG4ucGF5bWVudC1tZXRob2RzIHtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xufVxuXG4ucGF5bWVudC1tZXRob2RzIGR0IHtcbiAgICBwYWRkaW5nOiA1cHggMDtcbn1cblxuLnBheW1lbnQtbWV0aG9kcyBkZCB7XG4gICAgcGFkZGluZy10b3A6IDEwcHg7XG59XG5cbi5wYXltZW50LW1ldGhvZHMgLmZvcm0tbGlzdCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luOiA1cHggMTVweCAxNXB4O1xuICAgIHBhZGRpbmc6IDE1cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGMtbW9kdWxlLWJvcmRlcjtcbiAgICBiYWNrZ3JvdW5kOiAkYy1tb2R1bGUtYmFja2dyb3VuZDtcbn1cblxuLnBheW1lbnQtbWV0aG9kcyAuZm9ybS1saXN0OmJlZm9yZSB7XG4gICAgQGluY2x1ZGUgdHJpYW5nbGUodXAsIDEwcHgsICRjLW1vZHVsZS1ib3JkZXIpO1xuICAgIHRvcDogLTExcHg7XG4gICAgbGVmdDogMzBweDtcbn1cblxuLnBheW1lbnQtbWV0aG9kcyAuZm9ybS1saXN0OmFmdGVyIHtcbiAgICBAaW5jbHVkZSB0cmlhbmdsZSh1cCwgMTBweCwgJGMtbW9kdWxlLWJhY2tncm91bmQpO1xuICAgIHRvcDogLTEwcHg7XG4gICAgbGVmdDogMzBweDtcbn1cblxuLnBheW1lbnQtbWV0aG9kcyAuZm9ybS1saXN0IGxpOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICpcbiAqIFBsZWFzZSBXYWl0IChMb2FkaW5nIEluZGljYXRvcilcbiAqL1xuXG4ucGxlYXNlLXdhaXQge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICBtYXJnaW4tdG9wOiA1cHg7XG4gICAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gICAgaGVpZ2h0OiAyNHB4O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7IC8qIFByZXZlbnQgdGhlIGxpbmVicmVhayBpbiB0aGUgSFRNTCBmcm9tIGNhdXNpbmcgbGF5b3V0IGlzc3VlcyAqL1xuXG4gICAgaW1nIHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgICAgICB3aWR0aDogMjRweDsgLy8gQWN0dWFsIGltYWdlIGlzIDQ4cHgsIHRoZXJlYnkgc3VwcG9ydGluZyBoaS1yZXMgc2NyZWVuc1xuICAgIH1cbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxuICogUHJpY2UgQm94IC0gU3RhbmRhcmRcbiAqL1xuXG4ucHJpY2UtYm94IHtcbiAgICBtYXJnaW46ICRlbGVtZW50LXNwYWNpbmcgMDtcbiAgICBmb250LWZhbWlseTogJGYtc3RhY2stc2Fucztcbn1cblxuLnByaWNlLWJveCBwIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4ucHJpY2Utbm90aWNlIHtcbiAgICBjb2xvcjogJGMtdGV4dC1ncmF5O1xufVxuXG4ucHJpY2UtYm94IC5wcmljZSB7XG4gICAgY29sb3I6ICRjLXRleHQtcHJpbWFyeTtcbiAgICBmb250LXNpemU6ICRmLXNpemUteGw7XG59XG5cbi5wcmljZS1ib3ggLnByaWNlLFxuLnByaWNlIHtcbiAgICBmb250LWZhbWlseTogJGYtc3RhY2stc2Fucztcbn1cblxuLnByaWNlLWJveCAucHJpY2UtbGFiZWwge1xuICAgIGNvbG9yOiAkYy10ZXh0LWdyYXk7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBmb250LWZhbWlseTogJGYtc3RhY2stc3BlY2lhbDtcbn1cblxuLnByaWNlLWJveCAubWluaW1hbC1wcmljZS1saW5rIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDFlbTtcbiAgICBjb2xvcjogJGMtdGV4dC1wcmltYXJ5O1xuICAgIGRpc3BsYXk6IGJsb2NrOyAvKiBXZSB3YW50IHRoaXMgdG8gc2hvdyBvbiBpdHMgb3duIGxpbmUsIG90aGVyd2lzZSB0aGUgbGF5b3V0IGxvb2tzIGZ1bmt5ICovXG5cbiAgICAubGFiZWwge1xuICAgICAgICBjb2xvcjogJGMtdGV4dC1ncmF5O1xuICAgIH1cbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxuICogUHJpY2UgQm94IC0gU3BlY2lhbFxuICovXG5cbi5wcmljZS1ib3ggLm9sZC1wcmljZSxcbi5wcmljZS1ib3ggLnNwZWNpYWwtcHJpY2Uge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgIC5wcmljZS1sYWJlbCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLnByaWNlIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cbn1cblxuLnByaWNlLWJveCAub2xkLXByaWNlIHtcbiAgICAucHJpY2Uge1xuICAgICAgICBjb2xvcjogJGMtdGV4dC1ncmF5O1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICB9XG59XG5cbi5wcmljZS1ib3ggLnNwZWNpYWwtcHJpY2Uge1xuICAgIGNvbG9yOiAkYy10ZXh0LXByaW1hcnk7XG4gICAgcGFkZGluZy1sZWZ0OiAxZW07XG5cbiAgICAucHJpY2UtbGFiZWwge1xuICAgICAgICBjb2xvcjogI0Q4NEQzQztcbiAgICB9XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICpcbiAqIFByaWNlIEJveCAtIFRheGVzXG4gKi9cblxuLnByaWNlLWJveCAucHJpY2UtZXhjbHVkaW5nLXRheCxcbi5wcmljZS1ib3ggLnByaWNlLWluY2x1ZGluZy10YXgge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuXG5zcGFuLndlZWUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXG4gKiBUaWVyIFByaWNlc1xuICovXG5cbi5wcm9kdWN0LXByaWNpbmcsXG4udGllci1wcmljZXMsXG4udGllci1wcmljZXMtZ3JvdXBlZCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHBhZGRpbmc6IDRweCA4cHg7XG4gICAgYmFja2dyb3VuZDogI0ZCRjRERTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjRTJENEM3O1xuICAgIG1hcmdpbi10b3A6ICRlbGVtZW50LXNwYWNpbmc7XG5cbiAgICBsaSB7XG4gICAgICAgIGZvbnQtc2l6ZTogJGYtc2l6ZS14cztcbiAgICB9XG4gICAgLmJlbmVmaXQge1xuICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgfVxuICAgIC5wcmljZSB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIH1cbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogSXRlbSBPcHRpb25zXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4uaXRlbS1vcHRpb25zIHtcbiAgICBmb250LXNpemU6ICRmLXNpemU7XG4gICAgZm9udC1mYW1pbHk6ICRmLXN0YWNrLXNwZWNpYWw7XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgfVxuXG4gICAgZHQge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgY2xlYXI6IGxlZnQ7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDVweDtcbiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJzogJztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGRkIHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgICAgICAgbWFyZ2luOiAwIDAgNnB4O1xuICAgIH1cbn1cblxuLnRydW5jYXRlZCxcbi50cnVuY2F0ZWQgYS5kb3RzIHtcbiAgICBjdXJzb3I6IGhlbHA7XG59XG5cbi50cnVuY2F0ZWQgYS5kZXRhaWxzIHtcbiAgICBjdXJzb3I6IGhlbHA7XG4gICAgaGVpZ2h0OiAxNnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxNnB4O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB9XG59XG5cbi50cnVuY2F0ZWQgLnRydW5jYXRlZF9mdWxsX3ZhbHVlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMzAwO1xufVxuXG4udHJ1bmNhdGVkIC50cnVuY2F0ZWRfZnVsbF92YWx1ZSAuaXRlbS1vcHRpb25zIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiAzMDA7XG4gICAgd2lkdGg6IDIwMHB4O1xuICAgIHBhZGRpbmc6IDhweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYy1hY3Rpb247XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0Y2RjZGNjtcbiAgICB0b3A6IDIxcHg7XG4gICAgbGVmdDogLTEwMHB4O1xuXG4gICAgJjphZnRlciB7XG4gICAgICAgIEBpbmNsdWRlIHRyaWFuZ2xlKHVwLCA3cHgsICRjLWFjdGlvbik7XG4gICAgICAgIGxlZnQ6ICgxMDBweCArIC0zcHgpO1xuICAgICAgICB0b3A6IC03cHg7XG4gICAgfVxufVxuXG4udHJ1bmNhdGVkIC50cnVuY2F0ZWRfZnVsbF92YWx1ZSAuaXRlbS1vcHRpb25zID4gcCB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG59XG5cbi50cnVuY2F0ZWQgLnNob3cgLml0ZW0tb3B0aW9ucyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbkBpbmNsdWRlIGJwKG1heC13aWR0aCwgJGJwLXhzbWFsbCkge1xuXG4gICAgLnRydW5jYXRlZCB7XG4gICAgICAgIGN1cnNvcjogaW5oZXJpdDtcblxuICAgICAgICBhLmRldGFpbHMge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC50cnVuY2F0ZWRfZnVsbF92YWx1ZSB7XG4gICAgICAgICAgICAuaXRlbS1vcHRpb25zIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXG4gICAgICAgICAgICAgICAgcCB7XG4gICAgICAgICAgICAgICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXG4gKiBQcmludGVyIEZyaWVuZGx5IFBhZ2VcbiAqL1xuXG4ucGFnZS1wcmludCB7XG4gICAgd2lkdGg6IDYuNWluO1xuICAgIG1hcmdpbjogMjBweDtcbiAgICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXG4gKiBBZGQgdG8gbGlua3NcbiAqL1xuXG4uYWRkLXRvLWxpbmtzIHtcbiAgICBtYXJnaW46ICRlbGVtZW50LXNwYWNpbmcgMDtcblxuICAgIGEge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDBweCAzcHggM3B4O1xuICAgIH1cbn1cblxuLmFkZC10by1saW5rcyAuc2VwYXJhdG9yIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG5cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxuICogU3RhbmRhcmQgRm9ybWF0dGVkIFRleHQgQmxvY2tcbiAqL1xuXG4uc3RkIHAge1xuICAgIG1hcmdpbjogMCAwICRiLW1hcmdpbi1ib3R0b207XG59XG5cbi5zdGQgb2wge1xuICAgIGxpc3Qtc3R5bGU6IGRlY2ltYWwgb3V0c2lkZTtcbiAgICBtYXJnaW4tYm90dG9tOiAkYi1tYXJnaW4tYm90dG9tO1xufVxuXG4uc3RkIG9sIGxpIHtcbiAgICBtYXJnaW4tbGVmdDogMmVtO1xufVxuXG4uc3RkIHVsIHtcbiAgICBsaXN0LXN0eWxlOiBkaXNjIG91dHNpZGU7XG4gICAgbWFyZ2luLWJvdHRvbTogJGItbWFyZ2luLWJvdHRvbTtcbn1cblxuLnN0ZCB1bCBsaSB7XG4gICAgbWFyZ2luLWxlZnQ6IDJlbTtcbn1cblxuLnN0ZCAubm90ZSB7XG4gICAgY29sb3I6ICRjLXRleHQtZ3JheTtcbiAgICBmb250LXNpemU6ICRmLXNpemUtcztcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxuICogVGFic1xuICovXG5cbi50YWJzIHtcbiAgICBtYXJnaW4tYm90dG9tOiAkZ2FwO1xuICAgIGJhY2tncm91bmQ6ICNGRkZGRkY7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICpcbiAqIFRvb2xiYXJcbiAqL1xuXG4udG9vbGJhciB7XG4gICAgbWFyZ2luLXRvcDogJGJveC1zcGFjaW5nO1xuICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjLW1vZHVsZS1ib3JkZXI7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRjLW1vZHVsZS1ib3JkZXI7XG4gICAgYmFja2dyb3VuZDogJGMtbW9kdWxlLWJhY2tncm91bmQ7XG4gICAgcGFkZGluZzogNXB4IDEwcHggMHB4IDEwcHg7XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgfVxufVxuXG4ucGFnZXItbm8tdG9vbGJhciB7XG4gICAgbWFyZ2luLWJvdHRvbTogJGJveC1zcGFjaW5nO1xufVxuXG4vLyBUaGlzIHdpbGwgYXBwbHkgdG8gdGhlIGJvdHRvbSB0b29sYmFyXG4ucGFnZXItbm8tdG9vbGJhciB+IC5wYWdlci1uby10b29sYmFyIHtcbiAgICBtYXJnaW4tdG9wOiAkYm94LXNwYWNpbmc7XG59XG5cbi50b29sYmFyLFxuLnBhZ2VyIHtcbiAgICBmb250LWZhbWlseTogJGYtc3RhY2stc3BlY2lhbDtcbiAgICBjb2xvcjogJGMtdGV4dDtcbiAgICBsaW5lLWhlaWdodDogMzBweDtcbiAgICBmb250LXNpemU6ICRmLXNpemUteHM7XG59XG5cbi50b29sYmFyIGxhYmVsLFxuLnBhZ2VyLW5vLXRvb2xiYXIgbGFiZWwge1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxuJHRvb2xiYXItaWNvbi1wYWRkaW5nLW9mZnNldDogOHB4O1xuXG4uc29ydGVyIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG5cbiAgICBsYWJlbCB7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDVweDtcblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICc6JztcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnNvcnRlciA+IC5zb3J0LWJ5IHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICBoZWlnaHQ6IDMwcHg7XG5cbiAgICAuc29ydC1ieS1zd2l0Y2hlciB7XG4gICAgICAgIHdpZHRoOiAzMHB4O1xuICAgICAgICBoZWlnaHQ6IDMwcHg7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgQGV4dGVuZCAuaWNvbi1zcHJpdGU7XG4gICAgfVxuICAgIC5zb3J0LWJ5LXN3aXRjaGVyLS1hc2Mge1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwKzRweCAoLTU1MHB4KyR0b29sYmFyLWljb24tcGFkZGluZy1vZmZzZXQpO1xuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IC01MHB4KzRweCAoLTU1MHB4KyR0b29sYmFyLWljb24tcGFkZGluZy1vZmZzZXQpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5zb3J0LWJ5LXN3aXRjaGVyLS1kZXNjIHtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCs0cHggKC01NzVweCskdG9vbGJhci1pY29uLXBhZGRpbmctb2Zmc2V0KTtcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNTBweCs0cHggKC01NzVweCskdG9vbGJhci1pY29uLXBhZGRpbmctb2Zmc2V0KTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnNvcnRlciA+IC52aWV3LW1vZGUge1xuICAgIGZsb2F0OiByaWdodDtcblxuICAgIC5ncmlkLFxuICAgIC5saXN0IHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIHdpZHRoOiAzMHB4O1xuICAgICAgICBoZWlnaHQ6IDMwcHg7XG4gICAgICAgIEBleHRlbmQgLmljb24tc3ByaXRlO1xuICAgIH1cbiAgICAuZ3JpZCB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAkdG9vbGJhci1pY29uLXBhZGRpbmctb2Zmc2V0ICgtNTAwcHgrJHRvb2xiYXItaWNvbi1wYWRkaW5nLW9mZnNldCk7XG4gICAgfVxuICAgIHN0cm9uZy5ncmlkLFxuICAgIGEuZ3JpZDpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IC01MHB4KyR0b29sYmFyLWljb24tcGFkZGluZy1vZmZzZXQgKC01MDBweCskdG9vbGJhci1pY29uLXBhZGRpbmctb2Zmc2V0KTtcbiAgICB9XG4gICAgLmxpc3Qge1xuICAgICAgICAvLyBXZSB3YW50IHRoZSBpY29uIHRvIGxpbmUgdXAgd2l0aCB0aGUgY29udGFpbmVyIHdpZHRoLCBzbyB3ZSBhcmUgYWRkaW5nIDNweFxuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAkdG9vbGJhci1pY29uLXBhZGRpbmctb2Zmc2V0KzNweCAoLTUyNXB4KyR0b29sYmFyLWljb24tcGFkZGluZy1vZmZzZXQpO1xuICAgIH1cbiAgICBzdHJvbmcubGlzdCxcbiAgICBhLmxpc3Q6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNTBweCskdG9vbGJhci1pY29uLXBhZGRpbmctb2Zmc2V0KzNweCAoLTUyNXB4KyR0b29sYmFyLWljb24tcGFkZGluZy1vZmZzZXQpO1xuICAgIH1cbn1cblxuLnBhZ2VyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbWFyZ2luLXRvcDogJHRyaW0tcztcblxuICAgIC5hbW91bnQge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRmLXN0YWNrLXNhbnM7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIG1hcmdpbjogMCAxNXB4IDAgMDtcbiAgICB9XG5cbiAgICAubGltaXRlciB7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBoZWlnaHQ6IDMwcHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAzMHB4O1xuXG4gICAgICAgICYgPiBsYWJlbCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiA1cHg7XG5cbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICc6JztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5hbW91bnQsXG4gICAgLmxpbWl0ZXIsXG4gICAgLnBhZ2VzIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICAgIH1cblxuICAgIG9sIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cblxufVxuXG4ucGFnZXMge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgc3Ryb25nIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbi5wYWdlcyBsaSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG59XG5cbi5wYWdlcyBhLFxuLnBhZ2VzIC5jdXJyZW50IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgYm9yZGVyOiAwO1xuICAgIGZvbnQtc2l6ZTogJGYtc2l6ZTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgbGluZS1oZWlnaHQ6IDMwcHg7XG4gICAgd2lkdGg6IDIwcHg7XG4gICAgaGVpZ2h0OiAzMHB4O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgY29sb3I6ICRjLWRhcmtibHVlO1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIGZvbnQtZmFtaWx5OiAkZi1zdGFjay1zYW5zO1xuICAgICYubmV4dCwgJi5wcmV2aW91cyB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG4ucGFnZXMgLmN1cnJlbnQge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAmOmhvdmVyIHtcbiAgICAgICAgY29sb3I6ICRjLWFjdGlvbjtcbiAgICB9XG59XG5cbi8vIC5wYWdlcyAuY3VycmVudCxcbi8vIC5wYWdlcyAuY3VycmVudDpob3ZlciB7XG4vLyAgICAgY29sb3I6ICRjLXRleHQ7XG4vLyAgICAgd2lkdGg6IDMwcHg7XG4vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjtcbi8vICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4vLyB9XG5cbi5wYWdlcyAubmV4dCxcbi5wYWdlcyAucHJldmlvdXMge1xuICAgIC8vIE5ldyBIUDVCUCB0ZWNobmlxdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9oNWJwL2h0bWw1LWJvaWxlcnBsYXRlL2NvbW1pdC9hYTAzOTZlYWU3NTdjOWUwM2RkYTRlNDYzZmIwZDRkYjVhNWY4MmQ3XG4gICAgZm9udDogMC8wIGE7XG4gICAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gICAgY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICY6aG92ZXIge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkYy1hY3Rpb247XG4gICAgfVxufVxuXG4ucGFnZXMgLm5leHQge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgQGluY2x1ZGUgdHJpYW5nbGUocmlnaHQsIDRweCwgJGMtYWN0aW9uKTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIG1hcmdpbi10b3A6IC0zcHg7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0ycHg7XG4gICAgfVxuICAgICY6aG92ZXI6YmVmb3JlIHtcbiAgICAgICAgQGluY2x1ZGUgdHJpYW5nbGUocmlnaHQsIDRweCwgJGMtc3RpbXVsdXMpO1xuICAgIH1cbn1cblxuLnBhZ2VzIC5wcmV2aW91cyB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBAaW5jbHVkZSB0cmlhbmdsZShsZWZ0LCA0cHgsICRjLWFjdGlvbik7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBtYXJnaW4tdG9wOiAtM3B4O1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtMnB4O1xuICAgIH1cbiAgICAmOmhvdmVyOmJlZm9yZSB7XG4gICAgICAgIEBpbmNsdWRlIHRyaWFuZ2xlKGxlZnQsIDRweCwgJGMtc3RpbXVsdXMpO1xuICAgIH1cbn1cblxuQGluY2x1ZGUgYnAobWF4LXdpZHRoLCAkYnAteHNtYWxsKSB7XG4gICAgLy8gT25seSBoaWRlIHRoZSBcImFtb3VudFwiIGVsZW1lbnQgaWYgcGFnZSBoYXMgcGFnaW5hdGlvbiBBTkQgaXMgaW5zaWRlIG9mIHRvb2xiYXIgKHNpbmNlIHdlIG9ubHkgd2FudCBpdCBoaWRpbmcgb24gcHJvZHVjdCBsaXN0aW5nKVxuICAgIC8vIE90aGVyd2lzZSBzaG93IHRoZSBhbW91bnQgc2luY2UgdGhlcmUgaXMgcGxlbnR5IG9mIHNwYWNlXG4gICAgLnBhZ2VyIC5hbW91bnQtLWhhcy1wYWdlcyB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLnBhZ2VzIHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgfVxuXG4gICAgLy8gV2hlbiB0aGVyZSBhcmUgNSsgcGFnZXMsIGl0IGlzIGltcG9ydGFudCB0byBoaWRlIHRoaXMgbGFiZWwgaW4gb3JkZXIgdG8gbm90IGJyZWFrIHRvIHRocmVlIGxpbmVzXG4gICAgLmxpbWl0ZXIgbGFiZWwge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuQGluY2x1ZGUgYnAobWF4LXdpZHRoLCAkYnAtbWVkaXVtKSB7XG4gICAgLy8gT25lIG9uZSBjb2x1bW4gbGF5b3V0cywgdGhlIHRvb2xiYXIgZG9lc24ndCBoYXZlIHRvIGJyZWFrIHVudGlsIGEgc21hbGxlciB2aWV3cG9ydFxuICAgIC5jb2wxLWxheW91dCB7XG4gICAgICAgIC5zb3J0ZXIsXG4gICAgICAgIC5wYWdlciB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wYWdlciB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGNsZWFyOiBib3RoO1xuXG4gICAgICAgICAgICAucGFnZXMge1xuICAgICAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuY291bnQtY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBpbmNsdWRlIGJwKG1heC13aWR0aCwgJGJwLWxhcmdlKSB7XG5cbiAgICAuY29sMi1sZWZ0LWxheW91dCxcbiAgICAuY29sMi1yaWdodC1sYXlvdXQsXG4gICAgLmNvbDMtbGF5b3V0IHtcbiAgICAgICAgLnNvcnRlcixcbiAgICAgICAgLnBhZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgLnBhZ2VyIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgY2xlYXI6IGJvdGg7XG5cbiAgICAgICAgICAgIC5wYWdlcyB7XG4gICAgICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5jb3VudC1jb250YWluZXIge1xuICAgICAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuQGluY2x1ZGUgYnAobWF4LXdpZHRoLCAxMjc5cHgpIHtcblxuICAgIC50b29sYmFyIC52aWV3LW1vZGUgPiBsYWJlbCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBUYXggLSBGdWxsIFRheCBTdW1tYXJ5XG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4jY2hlY2tvdXQtcmV2aWV3LXRhYmxlLFxuI3Nob3BwaW5nLWNhcnQtdG90YWxzLXRhYmxlLFxuYm9keS5jdXN0b21lci1hY2NvdW50IC5kYXRhLXRhYmxlIHtcbiAgICAuc3VtbWFyeS1jb2xsYXBzZSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRyaWFuZ2xlKGRvd24sIDdweCwgJGMtYmx1ZSk7XG4gICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgICAgIH1cbiAgICAgICAgJjpob3ZlcjpiZWZvcmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgdHJpYW5nbGUoZG93biwgN3B4LCAkYy1zdGltdWx1cyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuc2hvdy1kZXRhaWxzIHtcbiAgICAgICAgLnN1bW1hcnktY29sbGFwc2Uge1xuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHRyaWFuZ2xlKHVwLCA3cHgsICRjLWJsdWUpO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJjpob3ZlcjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHRyaWFuZ2xlKHVwLCA3cHgsICRjLXN0aW11bHVzKTtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gQ2VudGVyIHRoZSBhcnJvdywgYXMgdGhlIGZvbnQgaXMgbGFyZ2VyIGluIHRmb290XG4jc2hvcHBpbmctY2FydC10b3RhbHMtdGFibGUgdGZvb3QgdGQgLnN1bW1hcnktY29sbGFwc2Uge1xuICAgICY6YmVmb3JlLFxuICAgICY6aG92ZXI6YmVmb3JlIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICAgIH1cbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogTWFnZW50byBIZWxwZXJzXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4uYS1jZW50ZXIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmEtcmlnaHQsXG4uYWxpZ24tcmlnaHQge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuXG4ubm8tZGlzcGxheSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4ubm9icixcbi5ub3dyYXAge1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi53aWR0aC1mdWxsIHtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogQ3VzdG9tIEhlbHBlcnNcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5oaWRkZW4ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIFByaW50IFN0eWxlc1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnBhZ2UtcHJpbnQgLnByaW50LWhlYWQge1xuICAgIG1hcmdpbjogMCAwIDE1cHg7XG59XG5cbi5wYWdlLXByaW50IC5wcmludC1oZWFkIC5sb2dvIHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICBtYXgtaGVpZ2h0OiA1MHB4O1xuICAgIHdpZHRoOiBhdXRvO1xufVxuXG5cblxuXG5cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogSG9tZSBQYWdlXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG5cbi5ob21lLXNsaWRlci1jb250YWluZXIge1xuICAgIG1hcmdpbi10b3A6ICR0cmltLXM7XG5cbiAgICAuaG9tZS1zbGlkZS13cmFwcGVyIHtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IDUwcHggODBweDtcblxuICAgICAgICAgICAgaDEsXG4gICAgICAgICAgICBoMS5ob21lLXNsaWRlLXRpdGxlLFxuICAgICAgICAgICAgaDIuaG9tZS1zbGlkZS10aXRsZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMTVweDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZi1zaXplLXh4bDtcbiAgICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLXNtYWxsICsgMSkge1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDE1cHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLW1lZGl1bSArIDEpIHtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMjVweDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAuaG9tZS1zbGlkZS1pbWFnZSB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogNDBweDtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAkdHJpbS1zO1xuICAgICAgICAgICAgei1pbmRleDogMTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtc21hbGwgKyAxKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAyNXB4O1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogNTYlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IGF1dG87XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMTAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBicChtaW4td2lkdGgsICRicC1tZWRpdW0gKyAxKSB7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogOSU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLWxhcmdlICsgMSkge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogNjIlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IDA7XG5cbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cblxuXG5cbiAgICAgICAgLmhvbWUtc2xpZGUtY29udGVudCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OjEwO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBicChtaW4td2lkdGgsICRicC1zbWFsbCArIDEpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogNDglO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMTAlO1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLW1lZGl1bSArIDEpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogNDMlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtNSU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAuc2hhcmUtYnV0dG9ucyB7XG5cblxuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkdHJpbS1zO1xuXG4gICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBicChtaW4td2lkdGgsICRicC1zbWFsbCArIDEpIHtcblxuICAgICAgICAgICAgICAgICAgICAgICAgJi5zbWFsbCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLXNtYWxsICsgMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE3MHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICAgICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBhe1xuICAgICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAmOmhvdmVye1xuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5oZWFkbGluZSB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxMDBweDtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogLjg7XG4gICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRmLXN0YWNrLXNwZWNpYWw7XG4gICAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkdHJpbSAtIDE1O1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDE1cHg7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtc21hbGwgKyAxKSB7XG4gICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogJHRyaW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtc21hbGwgKyAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTEwcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtbWVkaXVtICsgMSkge1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDEzNnB4O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLWxhcmdlICsgMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxNDRweDtcbiAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRjLXRleHQtZ3JheTtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuXG4gICAgICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkYy10ZXh0LWdyYXk7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6ICR0cmltLXMgLSA1O1xuXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAgaDIsIC5oMiB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLXNtYWxsICsgMSkge1xuXG4gICAgICAgICAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICYuc21hbGwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAucHJvZHVjdC1uYW1lIHtcblxuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG5cblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLXNtYWxsICsgMSkge1xuXG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTgwJTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC04MCU7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICR0cmltLXM7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDUwcHg7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICR0cmltO1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiB0YWJsZTtcblxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLW1lZGl1bSArIDEpIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogOTBweDtcbiAgICAgICAgICAgICAgICB9XG5cblxuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtbGFyZ2UgLSAxMDApIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEyNSU7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMjUlO1xuXG5cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYuc2xpZGUyIHtcblxuICAgICAgICAgICAgLmhvbWUtc2xpZGUtaW1hZ2Uge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLWxhcmdlICsgMSkge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogNTklO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IDA7XG5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5ob21lLXNsaWRlLWNvbnRlbnQge1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtc21hbGwgKyAxKSB7XG4gICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDUwcHg7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLmhlYWRsaW5lIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnAobWF4LXdpZHRoLCAkYnAtc21hbGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogNzJweDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBicChtaW4td2lkdGgsICRicC1zbWFsbCArIDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNjAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC02MCU7XG5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBicChtaW4td2lkdGgsICRicC1sYXJnZSArIDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMzAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0zMCU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5wcm9kdWN0LW5hbWUge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBicChtaW4td2lkdGgsICRicC1zbWFsbCArIDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMjAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0yMCU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBicChtaW4td2lkdGgsICRicC1tZWRpdW0gKyAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTEwJTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMTAlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLWxhcmdlICsgMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDkwJTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxMCU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgICAgICAmLnNsaWRlMyB7XG4gICAgICAgICAgICAuaG9tZS1zbGlkZS1pbWFnZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtbGFyZ2UgKyAxKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiA1NiU7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogNjBweDtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiBhdXRvO1xuXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLmhvbWUtc2xpZGUtY29udGVudCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtc21hbGwgKyAxKSB7XG4gICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDUwcHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC5oZWFkbGluZSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJwKG1heC13aWR0aCwgJGJwLXNtYWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDcycHg7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtc21hbGwgKyAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTgwJTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtODAlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLWxhcmdlICsgMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTE2cHg7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLnByb2R1Y3QtbmFtZSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLXNtYWxsICsgMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE0NSU7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTQ1JTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLW1lZGl1bSArIDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMjAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0yMCU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtbGFyZ2UgKyAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLnNsaWRlNCB7XG4gICAgICAgICAgICAuaG9tZS1zbGlkZS1pbWFnZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtc21hbGwgKyAxKSB7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMjYlO1xuICAgICAgICAgICAgICAgICAgICAmOmxhbmcoZW4pe1xuICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiAzNSU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtbGFyZ2UgKyAxKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiA1NiU7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMTYwcHg7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogYXV0bztcbiAgICAgICAgICAgICAgICAgICAgJjpsYW5nKGVuKXtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogMzIwcHg7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBcbiAgICAgICAgfVxuXG4gICAgICAgIC5tZWRpdW0geyBkaXNwbGF5OiBub25lOyB9XG4gICAgICAgIEBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLXNtYWxsICsgMSkgeyAuc21hbGwgeyBkaXNwbGF5OiBub25lOyB9XG4gICAgICAgIH1cbiAgICAgICAgQGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtbWVkaXVtICsgMSkgeyAubWVkaXVtIHsgZGlzcGxheTogYmxvY2s7IH1cbiAgICAgICAgfVxuXG4gICAgfVxufVxuLmlzLWJsb2cge1xuICAgIC5ob21lLXNsaWRlci1jb250YWluZXIge1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgIH1cbiAgICAmLndvcmRwcmVzcy1wb3N0LXZpZXcge1xuICAgICAgICAuaG9tZS1zbGlkZS13cmFwcGVyIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IC0xNXB4O1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDEwcHg7XG4gICAgICAgICAgICBwYWRkaW5nOiAyNXB4O1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0yNXB4O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtMjVweDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmhvbWUtc2xpZGVyLXNlYXJjaCB7XG5cbiAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAgIEBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLW1lZGl1bSArIDEpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLmhvbWUtc2xpZGVyLXNlYXJjaC1mb3Jtd3JhcHBlciB7XG4gICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgLnNlYXJjaF9taW5pX2Zvcm0ge1xuICAgICAgICAgICAgICAgIHdpZHRoOiA0MyU7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogLTE0MHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgfVxufVxuLnByb2R1Y3RzLXRlYXNlci1jb250YWluZXIsXG4uc3VwcG9ydC1jb250YWluZXIsXG4ucHJvZHVjdC1jYXRlZ29yeS1uYXYsXG4uYm94LWNyb3NzLXNlbGwsXG4uc2hvcC1saXN0IHtcbiAgICB1bCBsaSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgICAgIHBhZGRpbmc6IDRweCAwO1xuICAgIH1cbiAgICBhIHtcbiAgICAgICAgY29sb3I6ICRjLXRleHQ7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkYy10ZXh0O1xuICAgICAgICBsaW5lLWhlaWdodDogMS4yO1xuXG4gICAgICAgICY6aG92ZXIsICYuYWN0aXZlIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkYy1hY3Rpb247XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRjLWFjdGlvbjtcbiAgICAgICAgfVxuXG4gICAgfVxufVxuLnN1cHBvcnQtY29udGFpbmVyIHtcbiAgICBhLmFjdGl2ZSB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJGMtdGV4dDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJGMtdGV4dDtcbiAgICB9XG59XG4ucHJvZHVjdHMtdGVhc2VyLWNvbnRhaW5lciB7XG4gICAgYSB7XG4gICAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgICAgIGNvbG9yOiAkYy10ZXh0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkYy10ZXh0O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubGF0ZXN0LW5ld3MtY29udGFpbmVyLCAuc3VwcG9ydC1jb250YWluZXIge1xuICAgIC5zdXBwb3J0LXdyYXBwZXIsIC5sYXRlc3QtbmV3cy13cmFwcGVyIHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IGRvdHRlZCAkYy10ZXh0O1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICBoMyB7XG4gICAgICAgICAgICBjb2xvcjogJGMtbGlnaHRibHVlO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIH1cbiAgICAgICAgLmxpbmtzLCAuYWJvdXQge1xuXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS4zO1xuICAgICAgICAgICAgcGFkZGluZzogJHRyaW0gMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDIwcHg7XG4gICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAgQGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtc21hbGwgKyAxKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLW1lZGl1bSArIDEpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMjUlO1xuICAgICAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cblxuXG4gICAgICAgIC5zdXBwb3J0IHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICR0cmltIDA7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTAwcHg7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkdHJpbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaW1hZ2VzL3N1cHBvcnQtcGVyc29uLnBuZyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogYm90dG9tIHJpZ2h0O1xuICAgICAgICAgICAgY2xlYXI6IGJvdGg7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLXNtYWxsICsgMSkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICAgICAgY2xlYXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDgwcHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLW1lZGl1bSArIDEpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgICAgIGNsZWFyOiBub25lO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiA2MHB4O1xuICAgICAgICAgICAgfVxuXG5cblxuXG5cbiAgICAgICAgICAgIHAge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLW1lZGl1bSArIDEpIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogJHRyaW0gKiAxLjI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHdpZHRoOiA3MCU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAubnVtYmVyIHtcbiAgICAgICAgICAgICAgICBmb250LWZhbWlseTogJGYtc3RhY2stc3BlY2lhbDtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICRmLXNpemUteGw7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRjLWRhcmtibHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICAuYWJvdXQsIC5zdXBwb3J0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJwKG1heC13aWR0aCwgJGJwLXNtYWxsKSB7XG4gICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5zdXBwb3J0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJwKG1heC13aWR0aCwgJGJwLXNtYWxsKSB7XG4gICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICB9XG59XG5cblxuICAgIC5zdXBwb3J0LWNvbnRhaW5lciB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgIH1cblxuXG5cblxuXG4ubGF0ZXN0LW5ld3MtY29udGFpbmVyIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAubGF0ZXN0LW5ld3Mtd3JhcHBlciB7XG4gICAgICAgIHBhZGRpbmc6ICR0cmltIDA7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuXG4gICAgICAgIC5sYXRlc3QtbmV3cy1zbGlkZXIge1xuICAgICAgICAgICAgbWFyZ2luOiAkdHJpbS1zIC0xNXB4IDAgLTE1cHg7XG5cbiAgICAgICAgICAgIC5zbGljay1zbGlkZSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDE1cHg7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtc21hbGwgKyAxKSB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC5oZWFkbGluZSB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGYtc2l6ZS1sO1xuICAgICAgICAgICAgICAgICAgICBmb250LWZhbWlseTogJGYtc3RhY2stc3BlY2lhbDtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRjLWRhcmtibHVlO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDIzcHggMCAxOHB4IDA7XG4gICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5zbGljay1wcmV2LCAuc2xpY2stbmV4dCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogLTcuNSU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4ucHJvZHVjdHMtdGVhc2VyLWNvbnRhaW5lciB7XG4gICAgLnByb2R1Y3RzLXRlYXNlci13cmFwcGVyIHtcbiAgICAgICAgcGFkZGluZzogJHRyaW0gMDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBkb3R0ZWQgJGMtdGV4dDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgLnByb2R1Y3RzLXRlYXNlci1zbGlkZXIge1xuICAgICAgICAgICAgbWFyZ2luOiAoJHRyaW0gKyAyMCkgLTE1cHggMCAtMTVweDtcblxuICAgICAgICAgICAgLnNsaWNrLXNsaWRlIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMTVweDtcblxuICAgICAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogNXB4IGF1dG87XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJwKG1heC13aWR0aCwgJGJwLXNtYWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogODAlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLnNsaWNrLXByZXYsIC5zbGljay1uZXh0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAtNy41JTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAjYzljOWM5O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaDMge1xuICAgICAgICAgICAgaGVpZ2h0OiA0NHB4O1xuICAgICAgICB9XG4gICAgfVxufVxuLmRvd25sb2FkLWxpc3Qge1xuICAgICAgICBsaSB7XG4gICAgICAgICAgICBtYXJnaW46IDEwcHggMDtcbiAgICAgICAgfVxuICAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMzBweDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGMtdGV4dDtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGMtYWN0aW9uO1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTlweDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAyMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaW1hZ2VzL2ljb24tZG93bmxvYWQtcGRmLnN2Zyk7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogMTlweCAyMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG5cbi5saWdodGJveC1jb250ZW50LWxpbmsge1xuICAgICYuaW5saW5lIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgIH1cbn1cblxuLy8gTG9hZGVyXG5cbi5sb2FkZXIge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gICAgaGVpZ2h0OiAxMXB4O1xuICAgIHdpZHRoOiAxMXB4O1xuICAgIGFuaW1hdGlvbjogcm90YXRlIDAuOHMgaW5maW5pdGUgbGluZWFyO1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICRjLWFjdGlvbjtcbiAgICBib3JkZXItcmlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbn1cblxuQGtleWZyYW1lcyByb3RhdGUge1xuICAwJSAgICB7IHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOyB9XG4gIDEwMCUgIHsgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgfVxufVxuIiwiLy9cbi8vIE1hZ2VudG9cbi8vXG4vLyBOT1RJQ0UgT0YgTElDRU5TRVxuLy9cbi8vIFRoaXMgc291cmNlIGZpbGUgaXMgc3ViamVjdCB0byB0aGUgQWNhZGVtaWMgRnJlZSBMaWNlbnNlIChBRkwgMy4wKVxuLy8gdGhhdCBpcyBidW5kbGVkIHdpdGggdGhpcyBwYWNrYWdlIGluIHRoZSBmaWxlIExJQ0VOU0VfQUZMLnR4dC5cbi8vIEl0IGlzIGFsc28gYXZhaWxhYmxlIHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViIGF0IHRoaXMgVVJMOlxuLy8gaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2FmbC0zLjAucGhwXG4vLyBJZiB5b3UgZGlkIG5vdCByZWNlaXZlIGEgY29weSBvZiB0aGUgbGljZW5zZSBhbmQgYXJlIHVuYWJsZSB0b1xuLy8gb2J0YWluIGl0IHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViLCBwbGVhc2Ugc2VuZCBhbiBlbWFpbFxuLy8gdG8gbGljZW5zZUBtYWdlbnRvLmNvbSBzbyB3ZSBjYW4gc2VuZCB5b3UgYSBjb3B5IGltbWVkaWF0ZWx5LlxuLy9cbi8vIERJU0NMQUlNRVJcbi8vXG4vLyBEbyBub3QgZWRpdCBvciBhZGQgdG8gdGhpcyBmaWxlIGlmIHlvdSB3aXNoIHRvIHVwZ3JhZGUgTWFnZW50byB0byBuZXdlclxuLy8gdmVyc2lvbnMgaW4gdGhlIGZ1dHVyZS4gSWYgeW91IHdpc2ggdG8gY3VzdG9taXplIE1hZ2VudG8gZm9yIHlvdXJcbi8vIG5lZWRzIHBsZWFzZSByZWZlciB0byBodHRwOi8vd3d3Lm1hZ2VudG8uY29tIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuLy9cbi8vIEBjYXRlZ29yeSAgICBkZXNpZ25cbi8vIEBwYWNrYWdlICAgICByd2RfZGVmYXVsdFxuLy8gQGNvcHlyaWdodCAgIENvcHlyaWdodCAoYykgMjAwNi0yMDE2IFguY29tbWVyY2UsIEluYy4gYW5kIGFmZmlsaWF0ZXMgKGh0dHA6Ly93d3cubWFnZW50by5jb20pXG4vLyBAbGljZW5zZSAgICAgaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2FmbC0zLjAucGhwICBBY2FkZW1pYyBGcmVlIExpY2Vuc2UgKEFGTCAzLjApXG4vL1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIENvbXBhc3MgRGVmYXVsdHNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLyBCb3JkZXIgUmFkaXVzXG5cbiRkZWZhdWx0LWJvcmRlci1yYWRpdXM6IDVweDtcblxuLy8gVHJhbnNpdGlvblxuXG4kZGVmYXVsdC10cmFuc2l0aW9uLXByb3BlcnR5OiBhbGw7XG4kZGVmYXVsdC10cmFuc2l0aW9uLWR1cmF0aW9uOiAyMDBtcztcbiRkZWZhdWx0LXRyYW5zaXRpb24tZnVuY3Rpb246IGxpbmVhcjtcbiRkZWZhdWx0LXRyYW5zaXRpb24tZGVsYXk6IDA7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gUHJpbWFyeSBCcmVhayBQb2ludHNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLyBUaGVzZSBzaG91bGQgYmUgdXNlZCB3aXRoIHRoZSBicCAobWF4LXdpZHRoLCB4eCkgbWl4aW5cbi8vIHdoZXJlIGEgbWluLXdpZHRoIGlzIHVzZWQsIHJlbWVtYmVyIHRvICsxIHRvIGJyZWFrIGNvcnJlY3RseS5cbi8vIElmIHRoZXNlIGFyZSBjaGFuZ2VkLCB0aGV5IG11c3QgYWxzbyBiZSB1cGRhdGVkIGluIGFwcC5qc1xuXG5cbiRicC14eHNtYWxsOiAzNzJweDtcbiRicC14c21hbGw6IDQ3OXB4O1xuJGJwLXNtYWxsOiA1OTlweDtcbiRicC1tZWRpdW06IDc3MHB4O1xuJGJwLWxhcmdlOiA5NzlweDtcbiRicC14bGFyZ2U6IDExOTlweDtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBCYXNlIFZhbHVlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vIFNwYWNpbmdcblxuJGdhcDogMTBweDtcblxuJHRyaW06IDM1cHg7XG4kdHJpbS1zOiAyMHB4O1xuJHRyaW0teHM6IDEwcHg7XG4vLyBUaGlzIHdpbGwgZ2V0IGFwcGxpZWQgb24gdmlld3BvcnRzIHNtYWxsZXIgdGhhbiA0ODBweFxuJHRyaW0tc21hbGw6IDE1cHg7XG5cbi8vIFBhZGRpbmcgdGhhdCB3aWxsIGdldCBhcHBsaWVkIHRvIGNvbnRlbnQgYXJlYXNcbiRib3gtc3BhY2luZy1sYXJnZTogMjBweDtcblxuLy8gU3RhbmRhcmQgcGFkZGluZyBhcm91bmQgYm94IGVsZW1lbnRzIHN1Y2ggYXMgYmFubmVyIG1lc3NhZ2VzLCBldGNcbiRib3gtc3BhY2luZzogMTBweDtcblxuLy8gU3RhbmRhcmQgc3BhY2luZyBiZXR3ZWVuIGVsZW1lbnRzIHdpdGhpbiBhIGJveCwgc3VjaCBhcyBcIkFkZCB0byBjYXJ0XCIsIFwiUHJpY2UgYm94XCIsIGV0Y1xuJGVsZW1lbnQtc3BhY2luZzogN3B4O1xuXG4vLyBEaW1lbnNpb25zXG5cbiRtYXgtY29udGVudC13aWR0aDogOTYwcHg7XG4kbWF4LWNvbnRhaW5lci13aWR0aDogJG1heC1jb250ZW50LXdpZHRoO1xuJG1heC1zdGQtZm9ybWF0dGVkLXdpZHRoOiA1MGVtO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEJyYW5kIENvbG9yc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vIFVzdWFsbHkgbm90IHVzZWQgZGlyZWN0bHkgaW4gU2FzcyBwYXJ0aWFscy5cbi8vIE9ubHkgdXNlZCB0byBkZWZpbmUgY29udGV4dC1iYXNlZCBjb2xvciB2YXJzIGluIHRoaXMgZmlsZS5cblxuLy8gUGV0ZXIgRWxlY3Ryb25pY1xuXG4kYy1kYXJrYmx1ZTogIzAwM2I1ZjtcbiRjLWxpZ2h0Ymx1ZTogIzAwOGJkMjtcbiRjLWJsdWU6ICMxZjg2YmQ7XG5cblxuLy8gTWFnZW50b1xuXG4kYy1ncmVlbjogIzExQjQwMDtcbiRjLXBpbms6ICNEODUzNzg7XG4kYy1vcmFuZ2U6ICNGMzc5M0I7XG4kYy1yZWQ6ICNDRjUwNTA7XG4kYy15ZWxsb3c6ICNGRkREMTU7XG4kYy1ibGFjazogIzAwMDAwMDtcbiRjLWdyYXk6ICMzMzMzMzM7XG5cbiRjLWFjY2VudDogIzZjYjMxNTtcblxuXG5cblxuXG5cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBCYXNlIENvbG9yc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vIFRleHRcblxuJGMtdGV4dDogIzAwM2I1ZjtcbiRjLXRleHQtZ3JheTogIzViNWI1YTtcbiRjLXRleHQtbGlnaHRncmF5OiAjODA3ZTgyO1xuJGMtdGV4dC13aGl0ZTogI0U2RTZFNjtcbi8vIFByaW1hcnkgZm9udCBjb2xvciBmb3IgaGVhZGluZ3MgYW5kIG90aGVyIG5vbi1saW5rIHRleHRcbiRjLXRleHQtcHJpbWFyeTogJGMtdGV4dDtcblxuXG4vLyBJbnRlcmFjdGlvblxuXG4kYy1hY3Rpb246ICRjLWJsdWU7XHRcbiRjLXN0aW11bHVzOiBkYXJrZW4oJGMtYmx1ZSwgMTUlKTtcbiRjLXN1YnRsZTogI0EwQTBBMDtcblxuLy8gTm90aWZpY2F0aW9uc1xuXG4kYy1kYW5nZXI6ICNERjI4MEE7XG4kYy1kYW5nZXItYmFja2dyb3VuZDogI0ZBRUJFNztcblxuJGMtc3VjY2VzczogJGMtZ3JlZW47XG4kYy1zdWNjZXNzLWJhY2tncm91bmQ6ICNFRkY1RUE7XG5cbiRjLXdhcm46ICNFMjY3MDM7XG4kYy13YXJuLWJhY2tncm91bmQ6ICNGOUVCRTY7XG5cbiRjLWRhcms6ICM2NzYxNTc7XG5cbi8vIEdsb2JhbCBFbGVtZW50c1xuXG4kYy1kaXZpZGVyLWJvcmRlcjogI0VDRUNFQztcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBFbGVtZW50IENvbG9yc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vIEJ1dHRvbnNcblxuJGMtYnV0dG9uOiAkYy1ibHVlO1xuJGMtYnV0dG9uLWhvdmVyOiBkYXJrZW4oJGMtYmx1ZSwgNSUpO1xuJGMtYnV0dG9uLWFjdGl2ZTogZGFya2VuKCRjLWJsdWUsIDEwJSk7XG5cbi8vIFNlY29uZGFyeSBCdXR0b25zXG5cbiRjLWJ1dHRvbi1zZWNvbmRhcnk6ICNEREREREQ7XG4kYy1idXR0b24tc2Vjb25kYXJ5LWhvdmVyOiBkYXJrZW4oI0RERERERCwgNSUpO1xuJGMtYnV0dG9uLXNlY29uZGFyeS1hY3RpdmU6IGRhcmtlbigjRERERERELCAxMCUpO1xuXG4kYy1idXR0b24tc3VidGxlOiAjRUNFQ0VDO1xuXG4vLyBGb3Jtc1xuXG4kYy1pbnB1dC1ib3JkZXI6ICNDMEMwQzA7XG4kYy1pbnB1dC1ib3JkZXItZm9jdXM6ICRjLWJsdWU7XG5cbiRjLWlucHV0LXBsYWNlaG9sZGVyOiAkYy10ZXh0LWdyYXk7XG4kYy1pbnB1dC10ZXh0OiAkYy10ZXh0O1xuXG4kYy1maWVsZHNldC1ib3JkZXI6ICNDQ0NDQ0M7XG4kYy1maWVsZHNldC1ib3JkZXItbGlnaHQ6ICNFREVERUQ7XG5cbi8vIEhlYWRpbmdzXG5cbiRjLWgxOiAkYy10ZXh0O1xuJGMtaDI6ICRjLXRleHQ7XG4kYy1oMzogJGMtdGV4dDtcbiRjLWg0OiAkYy10ZXh0O1xuJGMtaDU6ICRjLXRleHQ7XG4kYy1oNjogJGMtdGV4dDtcblxuLy8gTGlua1xuJGMtbGluazogJGMtYWN0aW9uO1xuJGMtbGluay1ob3ZlcjogZGFya2VuKCRjLWFjdGlvbiwgNSUpO1xuJGMtbGluay1mb2N1czogJGMtYWN0aW9uO1xuJGMtbGluay1hY3RpdmU6IGRhcmtlbigkYy1hY3Rpb24sICg1JSAvIDIpKTtcblxuLy8gTW9kdWxlIChnZW5lcmljKVxuXG4kYy1tb2R1bGUtYmFja2dyb3VuZDogI0Y0RjRGNDtcbiRjLW1vZHVsZS1iYWNrZ3JvdW5kLWhvdmVyOiBzaGFkZSgkYy1tb2R1bGUtYmFja2dyb3VuZCwgMyUpO1xuJGMtbW9kdWxlLWJhY2tncm91bmQtc2Vjb25kYXJ5OiAjRUFGOEZGO1xuJGMtbW9kdWxlLWJhY2tncm91bmQtZGFyazogI0FBQUFBQTtcbi8vIFRoaXMgc2hvdWxkIGJlIGFwcGxpZWQgd2hlbmV2ZXIgdGhlIGJvcmRlciBpcyBzdXJyb3VuZGluZyBhIHdoaXRlIGVsZW1lbnQgYW5kL29yIGlzIGRpcmVjdGx5IHNob3dpbmcgb24gd2hpdGUuXG4kYy1tb2R1bGUtYm9yZGVyOiAjQ0NDQ0NDO1xuLy8gVGhpcyBzaG91bGQgYmUgYXBwbGllZCB3aGVuZXZlciB0aGUgYm9yZGVyIGlzIHdyYXBwaW5nIGFuIGVsZW1lbnQgd2l0aCAkYy1tb2R1bGUtYmFja2dyb3VuZFxuJGMtbW9kdWxlLWJvcmRlci1saWdodDogI0VERURFRDtcbiRjLW1vZHVsZS1ib3JkZXItZGFyazogIzc3Nzc3NztcbiRjLW1vZHVsZS1ib3JkZXItaGlnaGxpZ2h0OiAkYy1ibHVlO1xuXG5cbi8vIFRhYmxlXG5cbiRjLXRhYmxlLWJhY2tncm91bmQ6ICNGNEY0RjQ7XG4kYy10YWJsZS1ib3JkZXI6ICNDMEMwQzA7XG5cbiRjLXRhYmxlLXplYnJhLW9kZDogI0Y4RjdGNTtcbiRjLXRhYmxlLXplYnJhLWV2ZW46ICNFRUVERUQ7XG5cbi8vIFRhYnNcblxuJGMtdGFicy1iYWNrZ3JvdW5kOiAjRjBGMEYwO1xuXG4vLyBFbWFpbFxuJGMtZW1haWwtYmFja2dyb3VuZDogI0VCRUJFQjtcbiRjLWVtYWlsLWJhY2tncm91bmQtc2Vjb25kYXJ5OiAjRTFGMEY4O1xuJGMtZW1haWwtYm9yZGVyOiAjQzNDRUQ0O1xuJGMtZW1haWwtYWN0aW9uOiAjMzY5NkMyO1xuJGMtZW1haWwtY2VsbDogI0YxRjFGMTtcbiRjLWVtYWlsLWhpZ2hsaWdodGVkLWJhY2tncm91bmQ6ICNGRkZERDk7XG4kYy1lbWFpbC1oaWdobGlnaHRlZC1ib3JkZXI6ICNGRkY3NEM7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gVHlwb2dyYXBoeVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vIEdvb2dsZSBXZWIgRm9udCBzdHlsZXNoZWV0IGlzIGluY2x1ZGVkIHZpYSBsYXlvdXQgWE1MXG5cbi8vIEZvbnQgU3RhY2tzXG5cbiRmLXN0YWNrLXNhbnM6IEFyaWFsLCBzYW5zLXNlcmlmO1xuJGYtc3RhY2stc2VyaWY6IEFyaWFsLCBzYW5zLXNlcmlmO1xuJGYtc3RhY2stc3BlY2lhbDogJ1VidW50dVRpdGxpbmctQm9sZCcsICdIZWx2ZXRpY2EgTmV1ZScsIFZlcmRhbmEsIEFyaWFsLCBzYW5zLXNlcmlmO1xuXG4kZi1zdGFjay1kZWZhdWx0OiAkZi1zdGFjay1zYW5zO1xuXG4vLyBGb250IFNpemVzXG4kZi1zaXplLXh4eGw6IDMycHg7XG4kZi1zaXplLXh4bDogMjRweDtcbiRmLXNpemUteGw6IDIwcHg7XG4kZi1zaXplLWw6IDE3cHg7XG5cbiRmLXNpemU6IDE0cHg7XG5cbiRmLXNpemUtczogMTNweDtcbiRmLXNpemUteHM6IDEycHg7XG4kZi1zaXplLXh4czogMTFweDtcblxuLy8gQmFzZSBNZWFzdXJlc1xuXG4kYi1saW5lLWhlaWdodDogMS41O1xuJGItbWFyZ2luLWJvdHRvbTogMS41ZW07XG4iLCIvL1xuLy8gTWFnZW50b1xuLy9cbi8vIE5PVElDRSBPRiBMSUNFTlNFXG4vL1xuLy8gVGhpcyBzb3VyY2UgZmlsZSBpcyBzdWJqZWN0IHRvIHRoZSBBY2FkZW1pYyBGcmVlIExpY2Vuc2UgKEFGTCAzLjApXG4vLyB0aGF0IGlzIGJ1bmRsZWQgd2l0aCB0aGlzIHBhY2thZ2UgaW4gdGhlIGZpbGUgTElDRU5TRV9BRkwudHh0LlxuLy8gSXQgaXMgYWxzbyBhdmFpbGFibGUgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIgYXQgdGhpcyBVUkw6XG4vLyBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYWZsLTMuMC5waHBcbi8vIElmIHlvdSBkaWQgbm90IHJlY2VpdmUgYSBjb3B5IG9mIHRoZSBsaWNlbnNlIGFuZCBhcmUgdW5hYmxlIHRvXG4vLyBvYnRhaW4gaXQgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIsIHBsZWFzZSBzZW5kIGFuIGVtYWlsXG4vLyB0byBsaWNlbnNlQG1hZ2VudG8uY29tIHNvIHdlIGNhbiBzZW5kIHlvdSBhIGNvcHkgaW1tZWRpYXRlbHkuXG4vL1xuLy8gRElTQ0xBSU1FUlxuLy9cbi8vIERvIG5vdCBlZGl0IG9yIGFkZCB0byB0aGlzIGZpbGUgaWYgeW91IHdpc2ggdG8gdXBncmFkZSBNYWdlbnRvIHRvIG5ld2VyXG4vLyB2ZXJzaW9ucyBpbiB0aGUgZnV0dXJlLiBJZiB5b3Ugd2lzaCB0byBjdXN0b21pemUgTWFnZW50byBmb3IgeW91clxuLy8gbmVlZHMgcGxlYXNlIHJlZmVyIHRvIGh0dHA6Ly93d3cubWFnZW50by5jb20gZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4vL1xuLy8gQGNhdGVnb3J5ICAgIGRlc2lnblxuLy8gQHBhY2thZ2UgICAgIHJ3ZF9kZWZhdWx0XG4vLyBAY29weXJpZ2h0ICAgQ29weXJpZ2h0IChjKSAyMDA2LTIwMTYgWC5jb21tZXJjZSwgSW5jLiBhbmQgYWZmaWxpYXRlcyAoaHR0cDovL3d3dy5tYWdlbnRvLmNvbSlcbi8vIEBsaWNlbnNlICAgICBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYWZsLTMuMC5waHAgIEFjYWRlbWljIEZyZWUgTGljZW5zZSAoQUZMIDMuMClcbi8vXG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gTWl4aW4gLSBDbGVhcmZpeFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vIFRoaXMgbWl4aW4gaXMgaW50ZW5kZWQgdG8gYmUgYXBwbGllZCB0byBhbiA6YWZ0ZXIgcHNldWRvLWNsYXNzLiBFeGFtcGxlOlxuLy8gICY6YWZ0ZXIge1xuLy8gICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbi8vICB9XG5AbWl4aW4gY2xlYXJmaXgge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGNsZWFyOiBib3RoO1xufVxuIiwiLy9cbi8vIE1hZ2VudG9cbi8vXG4vLyBOT1RJQ0UgT0YgTElDRU5TRVxuLy9cbi8vIFRoaXMgc291cmNlIGZpbGUgaXMgc3ViamVjdCB0byB0aGUgQWNhZGVtaWMgRnJlZSBMaWNlbnNlIChBRkwgMy4wKVxuLy8gdGhhdCBpcyBidW5kbGVkIHdpdGggdGhpcyBwYWNrYWdlIGluIHRoZSBmaWxlIExJQ0VOU0VfQUZMLnR4dC5cbi8vIEl0IGlzIGFsc28gYXZhaWxhYmxlIHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViIGF0IHRoaXMgVVJMOlxuLy8gaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2FmbC0zLjAucGhwXG4vLyBJZiB5b3UgZGlkIG5vdCByZWNlaXZlIGEgY29weSBvZiB0aGUgbGljZW5zZSBhbmQgYXJlIHVuYWJsZSB0b1xuLy8gb2J0YWluIGl0IHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViLCBwbGVhc2Ugc2VuZCBhbiBlbWFpbFxuLy8gdG8gbGljZW5zZUBtYWdlbnRvLmNvbSBzbyB3ZSBjYW4gc2VuZCB5b3UgYSBjb3B5IGltbWVkaWF0ZWx5LlxuLy9cbi8vIERJU0NMQUlNRVJcbi8vXG4vLyBEbyBub3QgZWRpdCBvciBhZGQgdG8gdGhpcyBmaWxlIGlmIHlvdSB3aXNoIHRvIHVwZ3JhZGUgTWFnZW50byB0byBuZXdlclxuLy8gdmVyc2lvbnMgaW4gdGhlIGZ1dHVyZS4gSWYgeW91IHdpc2ggdG8gY3VzdG9taXplIE1hZ2VudG8gZm9yIHlvdXJcbi8vIG5lZWRzIHBsZWFzZSByZWZlciB0byBodHRwOi8vd3d3Lm1hZ2VudG8uY29tIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuLy9cbi8vIEBjYXRlZ29yeSAgICBkZXNpZ25cbi8vIEBwYWNrYWdlICAgICByd2RfZGVmYXVsdFxuLy8gQGNvcHlyaWdodCAgIENvcHlyaWdodCAoYykgMjAwNi0yMDE2IFguY29tbWVyY2UsIEluYy4gYW5kIGFmZmlsaWF0ZXMgKGh0dHA6Ly93d3cubWFnZW50by5jb20pXG4vLyBAbGljZW5zZSAgICAgaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2FmbC0zLjAucGhwICBBY2FkZW1pYyBGcmVlIExpY2Vuc2UgKEFGTCAzLjApXG4vL1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIE1peGluIC0gTm90IFNlbGVjdGFibGVcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5AbWl4aW4gbm90LXNlbGVjdGFibGUge1xuICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xuICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLW8tdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG4iLCIvL1xuLy8gTWFnZW50b1xuLy9cbi8vIE5PVElDRSBPRiBMSUNFTlNFXG4vL1xuLy8gVGhpcyBzb3VyY2UgZmlsZSBpcyBzdWJqZWN0IHRvIHRoZSBBY2FkZW1pYyBGcmVlIExpY2Vuc2UgKEFGTCAzLjApXG4vLyB0aGF0IGlzIGJ1bmRsZWQgd2l0aCB0aGlzIHBhY2thZ2UgaW4gdGhlIGZpbGUgTElDRU5TRV9BRkwudHh0LlxuLy8gSXQgaXMgYWxzbyBhdmFpbGFibGUgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIgYXQgdGhpcyBVUkw6XG4vLyBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYWZsLTMuMC5waHBcbi8vIElmIHlvdSBkaWQgbm90IHJlY2VpdmUgYSBjb3B5IG9mIHRoZSBsaWNlbnNlIGFuZCBhcmUgdW5hYmxlIHRvXG4vLyBvYnRhaW4gaXQgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIsIHBsZWFzZSBzZW5kIGFuIGVtYWlsXG4vLyB0byBsaWNlbnNlQG1hZ2VudG8uY29tIHNvIHdlIGNhbiBzZW5kIHlvdSBhIGNvcHkgaW1tZWRpYXRlbHkuXG4vL1xuLy8gRElTQ0xBSU1FUlxuLy9cbi8vIERvIG5vdCBlZGl0IG9yIGFkZCB0byB0aGlzIGZpbGUgaWYgeW91IHdpc2ggdG8gdXBncmFkZSBNYWdlbnRvIHRvIG5ld2VyXG4vLyB2ZXJzaW9ucyBpbiB0aGUgZnV0dXJlLiBJZiB5b3Ugd2lzaCB0byBjdXN0b21pemUgTWFnZW50byBmb3IgeW91clxuLy8gbmVlZHMgcGxlYXNlIHJlZmVyIHRvIGh0dHA6Ly93d3cubWFnZW50by5jb20gZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4vL1xuLy8gQGNhdGVnb3J5ICAgIGRlc2lnblxuLy8gQHBhY2thZ2UgICAgIHJ3ZF9kZWZhdWx0XG4vLyBAY29weXJpZ2h0ICAgQ29weXJpZ2h0IChjKSAyMDA2LTIwMTYgWC5jb21tZXJjZSwgSW5jLiBhbmQgYWZmaWxpYXRlcyAoaHR0cDovL3d3dy5tYWdlbnRvLmNvbSlcbi8vIEBsaWNlbnNlICAgICBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYWZsLTMuMC5waHAgIEFjYWRlbWljIEZyZWUgTGljZW5zZSAoQUZMIDMuMClcbi8vXG5cbkBtaXhpbiB0YWJzKCkge1xuICAgIC50b2dnbGUtdGFicyB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkYy1tb2R1bGUtYm9yZGVyO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYy1tb2R1bGUtYmFja2dyb3VuZDtcblxuICAgICAgICBsaSB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcblxuICAgICAgICAgICAgPiBzcGFuIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBub3Qtc2VsZWN0YWJsZTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMCAkdHJpbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDQwcHg7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZi1zaXplLXhzO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBsaS5jdXJyZW50IHtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICRjLW1vZHVsZS1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICRjLW1vZHVsZS1ib3JkZXI7XG5cbiAgICAgICAgICAgID4gc3BhbiB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiA1O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgbGkuY3VycmVudCBzcGFuLFxuICAgICAgICBsaTpob3ZlciBzcGFuIHtcbiAgICAgICAgICAgIGNvbG9yOiAkYy1hY3Rpb247XG4gICAgICAgIH1cblxuICAgICAgICBsaTpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItbGVmdDogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICA+IGRsIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgPiBkdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgPiBkZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBwYWRkaW5nOiAxNXB4O1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGMtbW9kdWxlLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDA7XG4gICAgICAgIH1cblxuICAgICAgICA+IGRkLmN1cnJlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtaXhpbiBhY2NvcmRpb25EdEJhc2UoJGFycm93LWRpcmVjdGlvbjogJ2Rvd24nLCAkYm9yZGVyLWNvbG9yOiAkYy1tb2R1bGUtYm9yZGVyKSB7XG4gICAgQGluY2x1ZGUgaDQ7XG4gICAgQGluY2x1ZGUgbm90LXNlbGVjdGFibGU7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBtYXJnaW4tYm90dG9tOiAwcHg7XG4gICAgcGFkZGluZzogN3B4IDEwcHggN3B4IDI0cHg7XG4gICAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjLW1vZHVsZS1iYWNrZ3JvdW5kO1xuXG4gICAgJjphZnRlciB7XG4gICAgICAgIEBpbmNsdWRlIHRyaWFuZ2xlKCN7JGFycm93LWRpcmVjdGlvbn0sIDRweCwgJGMtYWN0aW9uKTtcbiAgICAgICAgbGVmdDogMTBweDtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIG1hcmdpbi10b3A6IC0zcHg7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjLW1vZHVsZS1iYWNrZ3JvdW5kLWhvdmVyO1xuICAgIH1cbn1cblxuQG1peGluIGFjY29yZGlvbigpIHtcbiAgICAudG9nZ2xlLXRhYnMge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgID4gZGwge1xuICAgICAgICA+IGR0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGFjY29yZGlvbkR0QmFzZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgPiBkZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkYm94LXNwYWNpbmc7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBib3JkZXItd2lkdGg6IDAgMXB4O1xuICAgICAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJGMtbW9kdWxlLWJvcmRlcjtcbiAgICAgICAgfVxuICAgICAgICA+IGRkOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLXdpZHRoOiAwIDFweCAxcHggMXB4O1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AbWl4aW4gYWNjb3JkaW9uQ29sbGFwc2UoKSB7XG4gICAgPiBkbCB7XG4gICAgICAgID4gZHQge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRjLWFjdGlvbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHRyaWFuZ2xlKHJpZ2h0LCA0cHgsICRjLWFjdGlvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmLmxhc3Qge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDFweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgID4gZGQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYuYWNjb3JkaW9uLW9wZW4ge1xuICAgICAgICA+IGRsIHtcbiAgICAgICAgICAgID4gZHQge1xuICAgICAgICAgICAgICAgICYuY3VycmVudCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDFweDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmLmN1cnJlbnQ6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSB0cmlhbmdsZShkb3duLCA0cHgsICRjLWFjdGlvbik7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDZweDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IC0zcHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICA+IGRkLmN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLy9cbi8vIE1hZ2VudG9cbi8vXG4vLyBOT1RJQ0UgT0YgTElDRU5TRVxuLy9cbi8vIFRoaXMgc291cmNlIGZpbGUgaXMgc3ViamVjdCB0byB0aGUgQWNhZGVtaWMgRnJlZSBMaWNlbnNlIChBRkwgMy4wKVxuLy8gdGhhdCBpcyBidW5kbGVkIHdpdGggdGhpcyBwYWNrYWdlIGluIHRoZSBmaWxlIExJQ0VOU0VfQUZMLnR4dC5cbi8vIEl0IGlzIGFsc28gYXZhaWxhYmxlIHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViIGF0IHRoaXMgVVJMOlxuLy8gaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2FmbC0zLjAucGhwXG4vLyBJZiB5b3UgZGlkIG5vdCByZWNlaXZlIGEgY29weSBvZiB0aGUgbGljZW5zZSBhbmQgYXJlIHVuYWJsZSB0b1xuLy8gb2J0YWluIGl0IHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViLCBwbGVhc2Ugc2VuZCBhbiBlbWFpbFxuLy8gdG8gbGljZW5zZUBtYWdlbnRvLmNvbSBzbyB3ZSBjYW4gc2VuZCB5b3UgYSBjb3B5IGltbWVkaWF0ZWx5LlxuLy9cbi8vIERJU0NMQUlNRVJcbi8vXG4vLyBEbyBub3QgZWRpdCBvciBhZGQgdG8gdGhpcyBmaWxlIGlmIHlvdSB3aXNoIHRvIHVwZ3JhZGUgTWFnZW50byB0byBuZXdlclxuLy8gdmVyc2lvbnMgaW4gdGhlIGZ1dHVyZS4gSWYgeW91IHdpc2ggdG8gY3VzdG9taXplIE1hZ2VudG8gZm9yIHlvdXJcbi8vIG5lZWRzIHBsZWFzZSByZWZlciB0byBodHRwOi8vd3d3Lm1hZ2VudG8uY29tIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuLy9cbi8vIEBjYXRlZ29yeSAgICBkZXNpZ25cbi8vIEBwYWNrYWdlICAgICByd2RfZGVmYXVsdFxuLy8gQGNvcHlyaWdodCAgIENvcHlyaWdodCAoYykgMjAwNi0yMDE2IFguY29tbWVyY2UsIEluYy4gYW5kIGFmZmlsaWF0ZXMgKGh0dHA6Ly93d3cubWFnZW50by5jb20pXG4vLyBAbGljZW5zZSAgICAgaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2FmbC0zLjAucGhwICBBY2FkZW1pYyBGcmVlIExpY2Vuc2UgKEFGTCAzLjApXG4vL1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIE1peGluIC0gVHJpYW5nbGVcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5AbWl4aW4gdHJpYW5nbGUoJGRpcmVjdGlvbjogdXAsICRzaXplOiA1cHgsICRjb2xvcjogIzAwMDAwMCkge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICBAaWYgJGRpcmVjdGlvbiA9PSB1cCB7XG4gICAgICAgIGJvcmRlci1yaWdodDogJHNpemUgc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2l6ZSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNpemUgc29saWQgJGNvbG9yO1xuICAgICAgICBib3JkZXItdG9wOiBub25lO1xuICAgIH1cblxuICAgIEBpZiAkZGlyZWN0aW9uID09IGRvd24ge1xuICAgICAgICBib3JkZXItcmlnaHQ6ICRzaXplIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXItbGVmdDogJHNpemUgc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlci10b3A6ICRzaXplIHNvbGlkICRjb2xvcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICB9XG5cbiAgICBAaWYgJGRpcmVjdGlvbiA9PSByaWdodCB7XG4gICAgICAgIGJvcmRlci10b3A6ICRzaXplIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2l6ZSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzaXplIHNvbGlkICRjb2xvcjtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICAgIH1cblxuICAgIEBpZiAkZGlyZWN0aW9uID09IGxlZnQge1xuICAgICAgICBib3JkZXItdG9wOiAkc2l6ZSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNpemUgc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlci1yaWdodDogJHNpemUgc29saWQgJGNvbG9yO1xuICAgICAgICBib3JkZXItbGVmdDogbm9uZTtcbiAgICB9XG59XG4iLCIvL1xuLy8gTWFnZW50b1xuLy9cbi8vIE5PVElDRSBPRiBMSUNFTlNFXG4vL1xuLy8gVGhpcyBzb3VyY2UgZmlsZSBpcyBzdWJqZWN0IHRvIHRoZSBBY2FkZW1pYyBGcmVlIExpY2Vuc2UgKEFGTCAzLjApXG4vLyB0aGF0IGlzIGJ1bmRsZWQgd2l0aCB0aGlzIHBhY2thZ2UgaW4gdGhlIGZpbGUgTElDRU5TRV9BRkwudHh0LlxuLy8gSXQgaXMgYWxzbyBhdmFpbGFibGUgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIgYXQgdGhpcyBVUkw6XG4vLyBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYWZsLTMuMC5waHBcbi8vIElmIHlvdSBkaWQgbm90IHJlY2VpdmUgYSBjb3B5IG9mIHRoZSBsaWNlbnNlIGFuZCBhcmUgdW5hYmxlIHRvXG4vLyBvYnRhaW4gaXQgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIsIHBsZWFzZSBzZW5kIGFuIGVtYWlsXG4vLyB0byBsaWNlbnNlQG1hZ2VudG8uY29tIHNvIHdlIGNhbiBzZW5kIHlvdSBhIGNvcHkgaW1tZWRpYXRlbHkuXG4vL1xuLy8gRElTQ0xBSU1FUlxuLy9cbi8vIERvIG5vdCBlZGl0IG9yIGFkZCB0byB0aGlzIGZpbGUgaWYgeW91IHdpc2ggdG8gdXBncmFkZSBNYWdlbnRvIHRvIG5ld2VyXG4vLyB2ZXJzaW9ucyBpbiB0aGUgZnV0dXJlLiBJZiB5b3Ugd2lzaCB0byBjdXN0b21pemUgTWFnZW50byBmb3IgeW91clxuLy8gbmVlZHMgcGxlYXNlIHJlZmVyIHRvIGh0dHA6Ly93d3cubWFnZW50by5jb20gZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4vL1xuLy8gQGNhdGVnb3J5ICAgIGRlc2lnblxuLy8gQHBhY2thZ2UgICAgIHJ3ZF9kZWZhdWx0XG4vLyBAY29weXJpZ2h0ICAgQ29weXJpZ2h0IChjKSAyMDA2LTIwMTYgWC5jb21tZXJjZSwgSW5jLiBhbmQgYWZmaWxpYXRlcyAoaHR0cDovL3d3dy5tYWdlbnRvLmNvbSlcbi8vIEBsaWNlbnNlICAgICBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYWZsLTMuMC5waHAgIEFjYWRlbWljIEZyZWUgTGljZW5zZSAoQUZMIDMuMClcbi8vXG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gTWl4aW4gLSBJbWFnZSBSZXBsYWNlbWVudFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vIGh0dHA6Ly93d3cuemVsZG1hbi5jb20vMjAxMi8wMy8wMS9yZXBsYWNpbmctdGhlLTk5OTlweC1oYWNrLW5ldy1pbWFnZS1yZXBsYWNlbWVudC9cbi8vIGh0dHA6Ly9uaWNvbGFzZ2FsbGFnaGVyLmNvbS9hbm90aGVyLWNzcy1pbWFnZS1yZXBsYWNlbWVudC10ZWNobmlxdWUvXG4vLyBodHRwczovL2dpdGh1Yi5jb20vaDVicC9odG1sNS1ib2lsZXJwbGF0ZS9pc3N1ZXMvMTAwNSNpc3N1ZWNvbW1lbnQtNDk0NzcwMlxuXG5AbWl4aW4gaW1hZ2UtcmVwbGFjZW1lbnQge1xuICAgIC8vIE5vdGU6IHRoaXMgdGVjaG5pcXVlIGhhcyBpc3N1ZXMgb24gQW5kcm9pZCAzLnhcbiAgICAvLyBBbiBhbHRlcm5hdGl2ZSB0aGF0IHJlcXVpcmVzIHRoZSA6YmVmb3JlIGdlbmVyYXRlZCBjb250ZW50IHdhcyBhZGRlZCB0byBINUJQXG4gICAgLy8gU2VlOiBodHRwczovL2dpdGh1Yi5jb20vaDVicC9odG1sNS1ib2lsZXJwbGF0ZS9ibG9iL21hc3Rlci9jc3MvbWFpbi5jc3NcblxuICAgIC8vY29sb3I6dHJhbnNwYXJlbnQ7IGZvbnQ6MC8wIGE7IHRleHQtc2hhZG93Om5vbmU7IHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcblxuICAgIC8vIFRoZSBzaW1wbGVzdCBvcHRpb24gcmVtYWlucyB1c2luZyB0ZXh0LWluZGVudDotOTk5OXB4IGRlc3BpdGUgdGhlIHBlcmZvcm1hbmNlIGRyYXdiYWNrXG4gICAgdGV4dC1pbmRlbnQ6IC05OTk5cHg7XG59XG5cbi8vIFVuZG8gdGhlIHJlcGxhY2VtZW50IGZvciBjaGlsZCBlbGVtZW50c1xuXG5AbWl4aW4gaW1hZ2UtcmVwbGFjZW1lbnQtb3ZlcnJpZGUge1xuICAgIHRleHQtaW5kZW50OiAwO1xufVxuIiwiLy9cbi8vIE1hZ2VudG9cbi8vXG4vLyBOT1RJQ0UgT0YgTElDRU5TRVxuLy9cbi8vIFRoaXMgc291cmNlIGZpbGUgaXMgc3ViamVjdCB0byB0aGUgQWNhZGVtaWMgRnJlZSBMaWNlbnNlIChBRkwgMy4wKVxuLy8gdGhhdCBpcyBidW5kbGVkIHdpdGggdGhpcyBwYWNrYWdlIGluIHRoZSBmaWxlIExJQ0VOU0VfQUZMLnR4dC5cbi8vIEl0IGlzIGFsc28gYXZhaWxhYmxlIHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViIGF0IHRoaXMgVVJMOlxuLy8gaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2FmbC0zLjAucGhwXG4vLyBJZiB5b3UgZGlkIG5vdCByZWNlaXZlIGEgY29weSBvZiB0aGUgbGljZW5zZSBhbmQgYXJlIHVuYWJsZSB0b1xuLy8gb2J0YWluIGl0IHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViLCBwbGVhc2Ugc2VuZCBhbiBlbWFpbFxuLy8gdG8gbGljZW5zZUBtYWdlbnRvLmNvbSBzbyB3ZSBjYW4gc2VuZCB5b3UgYSBjb3B5IGltbWVkaWF0ZWx5LlxuLy9cbi8vIERJU0NMQUlNRVJcbi8vXG4vLyBEbyBub3QgZWRpdCBvciBhZGQgdG8gdGhpcyBmaWxlIGlmIHlvdSB3aXNoIHRvIHVwZ3JhZGUgTWFnZW50byB0byBuZXdlclxuLy8gdmVyc2lvbnMgaW4gdGhlIGZ1dHVyZS4gSWYgeW91IHdpc2ggdG8gY3VzdG9taXplIE1hZ2VudG8gZm9yIHlvdXJcbi8vIG5lZWRzIHBsZWFzZSByZWZlciB0byBodHRwOi8vd3d3Lm1hZ2VudG8uY29tIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuLy9cbi8vIEBjYXRlZ29yeSAgICBkZXNpZ25cbi8vIEBwYWNrYWdlICAgICByd2RfZGVmYXVsdFxuLy8gQGNvcHlyaWdodCAgIENvcHlyaWdodCAoYykgMjAwNi0yMDE2IFguY29tbWVyY2UsIEluYy4gYW5kIGFmZmlsaWF0ZXMgKGh0dHA6Ly93d3cubWFnZW50by5jb20pXG4vLyBAbGljZW5zZSAgICAgaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2FmbC0zLjAucGhwICBBY2FkZW1pYyBGcmVlIExpY2Vuc2UgKEFGTCAzLjApXG4vL1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIE1peGluIC0gSWYtUmVzb2x1dGlvblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vIEZyb20gaHR0cDovL2Jsb2cuMTRpc2xhbmRzLmNvbS9wb3N0LzM3MjU5NjAzMjQ2L3Nhc3MtcmVzb2x1dGlvbi1taXhpblxuXG5AbWl4aW4gaWYtbWluLXJlc29sdXRpb24oJGRwcHgpIHtcbiAgICBAaW5jbHVkZSBpZi1yZXNvbHV0aW9uKG1pbiwgJGRwcHgpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gaWYtbWF4LXJlc29sdXRpb24oJGRwcHgpIHtcbiAgICBAaW5jbHVkZSBpZi1yZXNvbHV0aW9uKG1heCwgJGRwcHgpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gaWYtcmVzb2x1dGlvbigkcHJlZml4LCAkZHBweCkge1xuICAgIC8vIDFweCA9IDk2ZHBpXG4gICAgJGRwaTogJGRwcHggKiA5NjtcbiAgICBAbWVkaWFcbiAgICAoLXdlYmtpdC0jeyRwcmVmaXh9LWRldmljZS1waXhlbC1yYXRpbzogI3skZHBweH0pLFxuICAgICggICAjeyRwcmVmaXh9LS1tb3otZGV2aWNlLXBpeGVsLXJhdGlvOiAjeyRkcHB4fSksXG4gICAgKCAgICAgLW8tI3skcHJlZml4fS1kZXZpY2UtcGl4ZWwtcmF0aW86ICN7JGRwcHgqMn0vMiksXG4gICAgKCAgICAgICAgI3skcHJlZml4fS1kZXZpY2UtcGl4ZWwtcmF0aW86ICN7JGRwcHh9KSxcbiAgICAoICAgICAgICAgICAgICAgICN7JHByZWZpeH0tcmVzb2x1dGlvbjogI3skZHBpfWRwaSksXG4gICAgKCAgICAgICAgICAgICAgICAjeyRwcmVmaXh9LXJlc29sdXRpb246ICN7JGRwcHh9ZHBweCkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFVzYWdlIGV4YW1wbGU6XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vLy8gUmVuZGVycyBvbiBzY3JlZW5zIHdpdGggPj0gMiByZXNvbHV0aW9uXG4vL0BpbmNsdWRlIGlmLW1pbi1yZXNvbHV0aW9uICgyKSB7XG4vLyAgICBkaXYgeyBjb2xvcjojMDAwOyB9XG4vL31cbi8vXG4vLy8vIFJlbmRlcnMgb24gc2NyZWVucyB3aXRoID49IDEuNSByZXNvbHV0aW9uXG4vL0BpbmNsdWRlIGlmLW1pbi1yZXNvbHV0aW9uICgxLjUpIHtcbi8vICAgIGRpdiB7IGNvbG9yOiMwMDA7IH1cbi8vfVxuLy9cbi8vLy8gUmVuZGVycyBvbiBzY3JlZW5zIHdpdGggPD0gMS41IHJlc29sdXRpb25cbi8vQGluY2x1ZGUgaWYtbWF4LXJlc29sdXRpb24gKDEuNSkge1xuLy8gICAgZGl2IHsgY29sb3I6IzAwMDsgfVxuLy99XG4vL1xuLy8vLyBSZW5kZXJzIG9uIHNjcmVlbnMgd2l0aCA8PSAyIHJlc29sdXRpb25cbi8vQGluY2x1ZGUgaWYtbWF4LXJlc29sdXRpb24gKDIpIHtcbi8vICAgIGRpdiB7IGNvbG9yOiMwMDA7IH1cbi8vfVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiIsIi8vXG4vLyBNYWdlbnRvXG4vL1xuLy8gTk9USUNFIE9GIExJQ0VOU0Vcbi8vXG4vLyBUaGlzIHNvdXJjZSBmaWxlIGlzIHN1YmplY3QgdG8gdGhlIEFjYWRlbWljIEZyZWUgTGljZW5zZSAoQUZMIDMuMClcbi8vIHRoYXQgaXMgYnVuZGxlZCB3aXRoIHRoaXMgcGFja2FnZSBpbiB0aGUgZmlsZSBMSUNFTlNFX0FGTC50eHQuXG4vLyBJdCBpcyBhbHNvIGF2YWlsYWJsZSB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiBhdCB0aGlzIFVSTDpcbi8vIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9hZmwtMy4wLnBocFxuLy8gSWYgeW91IGRpZCBub3QgcmVjZWl2ZSBhIGNvcHkgb2YgdGhlIGxpY2Vuc2UgYW5kIGFyZSB1bmFibGUgdG9cbi8vIG9idGFpbiBpdCB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiwgcGxlYXNlIHNlbmQgYW4gZW1haWxcbi8vIHRvIGxpY2Vuc2VAbWFnZW50by5jb20gc28gd2UgY2FuIHNlbmQgeW91IGEgY29weSBpbW1lZGlhdGVseS5cbi8vXG4vLyBESVNDTEFJTUVSXG4vL1xuLy8gRG8gbm90IGVkaXQgb3IgYWRkIHRvIHRoaXMgZmlsZSBpZiB5b3Ugd2lzaCB0byB1cGdyYWRlIE1hZ2VudG8gdG8gbmV3ZXJcbi8vIHZlcnNpb25zIGluIHRoZSBmdXR1cmUuIElmIHlvdSB3aXNoIHRvIGN1c3RvbWl6ZSBNYWdlbnRvIGZvciB5b3VyXG4vLyBuZWVkcyBwbGVhc2UgcmVmZXIgdG8gaHR0cDovL3d3dy5tYWdlbnRvLmNvbSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbi8vXG4vLyBAY2F0ZWdvcnkgICAgZGVzaWduXG4vLyBAcGFja2FnZSAgICAgcndkX2RlZmF1bHRcbi8vIEBjb3B5cmlnaHQgICBDb3B5cmlnaHQgKGMpIDIwMDYtMjAxNiBYLmNvbW1lcmNlLCBJbmMuIGFuZCBhZmZpbGlhdGVzIChodHRwOi8vd3d3Lm1hZ2VudG8uY29tKVxuLy8gQGxpY2Vuc2UgICAgIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9hZmwtMy4wLnBocCAgQWNhZGVtaWMgRnJlZSBMaWNlbnNlIChBRkwgMy4wKVxuLy9cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogRk9STVMgLSBDT01NT05cbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICpcbiAqIEZpZWxkc2V0c1xuICovXG5cbi5maWVsZHNldCB7XG5cbiAgICBwIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJGVsZW1lbnQtc3BhY2luZztcbiAgICB9XG5cbiAgICBwLnJlcXVpcmVkIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIGZvbnQtc2l6ZTogJGYtc2l6ZS14cztcbiAgICAgICAgbWFyZ2luLXRvcDogMHB4O1xuICAgIH1cbn1cblxuLmN1c3RvbWVyLWFkZHJlc3MtZm9ybSB7XG4gICAgcC5yZXF1aXJlZCB7XG4gICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG59XG5cbi5maWVsZHNldCArIC5maWVsZHNldCB7XG4gICAgbWFyZ2luLXRvcDogKCRnYXAgLyAyKTtcbn1cblxuZm9ybSAubGVnZW5kIHtcbiAgICBAaW5jbHVkZSBoMztcbiAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuICAgIHBhZGRpbmctYm90dG9tOiA3cHg7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICpcbiAqIElucHV0IEJveFxuICovXG5cbi5pbnB1dC1ib3gge1xuICAgIHBhZGRpbmctdG9wOiAycHg7XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgfVxufVxuXG5saS5jZW50aW5lbC1sb2dvcyBkaXYuaW5wdXQtYm94ICB7XG4gICAgaW1nIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cbn1cblxuXG4vKiBGb3IgYWRqYWNlbnQgc2VsZWN0IGlucHV0cy4gKi9cbi8qIEV4YW1wbGU6IGNyZWRpdCBjYXJkIGV4cGlyYXRpb24gbW9udGggYW5kIHllYXIuICovXG4uaW5wdXQtYm94IC52LWZpeCB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xufVxuXG5cbmlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogLTFweDtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxuICogTGFiZWxzXG4gKi9cblxubGFiZWwge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmb250LXNpemU6ICRmLXNpemU7XG4gICAgQGluY2x1ZGUgbm90LXNlbGVjdGFibGU7XG59XG5cbmxhYmVsLnJlcXVpcmVkOmFmdGVyLFxuc3Bhbi5yZXF1aXJlZDphZnRlciB7XG4gICAgY29udGVudDogJyAqJztcbiAgICBjb2xvcjogJGMtZGFuZ2VyO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgZm9udC1mYW1pbHk6ICRmLXN0YWNrLXNhbnM7XG4gICAgZm9udC1zaXplOiAkZi1zaXplLXhzO1xufVxuXG4uY2F0YWxvZy1wcm9kdWN0LXZpZXcge1xuICAgIGxhYmVsLnJlcXVpcmVkOmFmdGVyLFxuICAgIHNwYW4ucmVxdWlyZWQ6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgY29sb3I6ICRjLWRhbmdlcjtcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRmLXN0YWNrLXNhbnM7XG4gICAgICAgIGZvbnQtc2l6ZTogJGYtc2l6ZS14cztcbiAgICB9XG59XG5cbmxhYmVsLnJlcXVpcmVkIGVtLFxuc3Bhbi5yZXF1aXJlZCBlbSB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxuICogSGludHNcbiAqL1xuXG4uaW5wdXQtaGludCB7XG4gICAgY29sb3I6ICRjLXRleHQtZ3JheTtcbiAgICBmb250LXNpemU6ICRmLXNpemUteHM7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICpcbiAqIFNlbGVjdFxuICovXG5cbnNlbGVjdCB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xufVxuXG5zZWxlY3QgKyBzZWxlY3Qge1xuICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG59XG5cbnNlbGVjdFttdWx0aXBsZV0ge1xuICAgIHdpZHRoOiAyNzBweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYy1pbnB1dC1ib3JkZXI7XG4gICAgZm9udC1zaXplOiAkZi1zaXplLWw7XG4gICAgcGFkZGluZzogNXB4O1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXG4gKiBUZXh0YXJlYVxuICovXG5cbnRleHRhcmVhIHsgXG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogLjdlbSAxZW07XG4gICAgYmFja2dyb3VuZDogI0VDRUNFQztcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxufVxuXG5cblxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXG4gKiBJbnB1dHNcbiAqL1xuXG4uaW5wdXQtdGV4dCB7XG4gICBcbiAgICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xuICAgIGZvbnQtc2l6ZTogJGYtc2l6ZS1sO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgY29sb3I6ICRjLXRleHQtZ3JheTtcblxuXG4gICAgJjpmb2N1cyB7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgfVxuXG59XG5cbi5pbnB1dC10ZXh0LnZhbGlkYXRpb24tZmFpbGVkIHtcbiAgICBib3JkZXItY29sb3I6ICRjLWRhbmdlcjtcbn1cblxuLy8gQ29sb3IgdGhlIG91dGxpbmUgZm9yIGZvY3VzZWQgZmllbGRzIGluIENocm9tZSwgb3IgZWxzZSB0aGUgZGVmYXVsdCBibHVlIGRyb3ducyBvdXQgdGhlIDFweCByZWQgYm9yZGVyXG4uaW5wdXQtdGV4dC52YWxpZGF0aW9uLWZhaWxlZDpmb2N1cyB7XG4gICAgb3V0bGluZS1jb2xvcjogdGludCgkYy1kYW5nZXIsIDUwJSk7XG59XG5cbmlucHV0W3R5cGU9c2VhcmNoXSB7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIHBhZGRpbmc6IDlweCAyMHB4IDdweCAyMHB4O1xuICAgIG1heC13aWR0aDogMTAwJTtcbn1cblxuXG5pbnB1dFt0eXBlPWVtYWlsXSxcbmlucHV0W3R5cGU9bnVtYmVyXSxcbmlucHV0W3R5cGU9cGFzc3dvcmRdLFxuaW5wdXRbdHlwZT10ZWxdLFxuaW5wdXRbdHlwZT10ZXh0XSB7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBwYWRkaW5nOiAwIDFlbTtcbiAgICAgICAgaGVpZ2h0OiAzNXB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMTRweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgZm9udC1zaXplOiAkZi1zaXplO1xuXG4gICAgICAgICY6OnBsYWNlaG9sZGVye1xuICAgICAgICAgIGNvbG9yOiAkYy1kYXJrYmx1ZTtcbiAgICAgICAgICBmb250LWZhbWlseTogJGYtc3RhY2stc2FucztcbiAgICAgICAgfVxufVxuXG4vKiBPbmx5IHNob3cgb24gaVBob25lcyAobm90IGlQYWRzIG9yIGFueSBvdGhlciBkZXZpY2UpICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtZGV2aWNlLXdpZHRoOiA1NjhweCkgYW5kICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDApIHtcbiAgICBpbnB1dFt0eXBlPWVtYWlsXSxcbiAgICBpbnB1dFt0eXBlPXNlYXJjaF0sXG4gICAgaW5wdXRbdHlwZT1udW1iZXJdLFxuICAgIGlucHV0W3R5cGU9cGFzc3dvcmRdLFxuICAgIGlucHV0W3R5cGU9dGVsXSxcbiAgICBpbnB1dFt0eXBlPXRleHRdLFxuICAgIHNlbGVjdCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTZweDsgLyogUHJldmVudCBmcm9tIHpvb21pbmcgb24gZm9jdXMgKi9cbiAgICB9XG59XG5cbi5pZTggLmlucHV0LXRleHQge1xuICAgIG1heC13aWR0aDogbm9uZTtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxuICogSW5wdXRzIC0gUXVhbnRpdHlcbiAqL1xuXG5pbnB1dFt0eXBlPW51bWJlcl0ucXR5LFxuaW5wdXRbdHlwZT10ZXh0XS5xdHkge1xuICAgIHdpZHRoOiAzZW07XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICpcbiAqIFBsYWNlaG9sZGVyXG4gKi9cblxuOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogIzRjNGM0ZTtcblxufVxuXG5pbnB1dDotbW96LXBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogIzRjNGM0ZTtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxuICogQ2hlY2tib3ggQW5kIFJhZGlvXG4gKi9cblxuLmNoZWNrYm94LFxuLnJhZGlvIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAtMXB4O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLmNoZWNrYm94ICsgbGFiZWwsXG4ucmFkaW8gKyBsYWJlbCB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbWF4LXdpZHRoOiA4NSU7XG4gICAgcGFkZGluZzogMCAwIDAgOHB4O1xuICAgIGZvbnQtc2l6ZTogJGYtc2l6ZTtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICpcbiAqIFZhbGlkYXRpb25cbiAqL1xuXG5wLnJlcXVpcmVkLFxuLnZhbGlkYXRpb24tYWR2aWNlIHtcbiAgICBtYXJnaW46IDVweCAwIDA7XG4gICAgY29sb3I6ICRjLWRhbmdlcjtcbiAgICBmb250LXNpemU6ICRmLXNpemUtcztcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogRm9ybSBMaXN0XG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4uZm9ybS1saXN0IHtcblxuICAgICYgPiBsaSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRib3gtc3BhY2luZztcbiAgICB9XG5cbiAgICAuaW5wdXQtcmFuZ2UgLmlucHV0LXRleHQge1xuICAgICAgICB3aWR0aDogNzRweDtcbiAgICB9XG5cbiAgICAuZmllbGQsXG4gICAgLndpZGUsXG4gICAgLmNvbnRyb2wge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkYm94LXNwYWNpbmc7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtc21hbGwgKyAxKSB7XG4gICAgICAgIC5maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgXG4gICAgICAgICAgICAmLmhhcy1oYWxmcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC01cHg7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtNXB4O1xuXG4gICAgICAgICAgICAgICAgLmZpZWxkIHtcbiAgICAgICAgICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICAgICAgICAgICAgJi5oYWxmIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgICAgICAgICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAmLnF1YXJ0ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDMwJTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICYudGhyZWVxdWFydGVycyB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogNzAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLmlucHV0LWJveCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAgNXB4O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4jY28tc2hpcHBpbmctbWV0aG9kLWZvcm0ge1xuICAgIC5idXR0b25zLXNldCB7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7ICAgXG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcblxuICAgIH1cblxuICAgICNzX21ldGhvZF90YWJsZXJhdGVfYmVzdHdheSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuXG4gICAgLnNwLW1ldGhvZHMgZGQgbGFiZWwge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICBidXR0b24sIFt0eXBlPXN1Ym1pdF0ge1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGZvbnQtc2l6ZTogJGYtc2l6ZTtcbiAgICAgICAgY29sb3I6ICRjLXRleHQ7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkZi1zdGFjay1zYW5zO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcblxuICAgIH1cbn1cblxuXG4vKiBUdXJuIHRoZSBsYWJlbCBvZiBjb250cm9scyAocmFkaW8vY2hlY2tib3gpIGludG8gYSBidXR0b24gc3R5bGUgdGhhdCB3cmFwcyB0aGUgaW5wdXQgKi9cbi5mb3JtLWxpc3QgLmNvbnRyb2wsXG4uc3AtbWV0aG9kcyBkdCxcbiNjaGVja291dC1zaGlwcGluZy1tZXRob2QtbG9hZCAuc3AtbWV0aG9kcyBkZCxcbiNjby1zaGlwcGluZy1tZXRob2QtZm9ybSAuc3AtbWV0aG9kcyBkZCxcbi5wcm9kdWN0LW9wdGlvbnMgdWwub3B0aW9ucy1saXN0IHtcblxuICAgIGRpdi5pbnB1dC1ib3gge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGlucHV0LnJhZGlvLFxuICAgIGlucHV0LmNoZWNrYm94IHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIG1hcmdpbi1yaWdodDogLTQwcHg7XG4gICAgICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgICAgIC8vbWFyZ2luLWxlZnQ6IDE1cHg7XG4gICAgfVxuXG5cbiAgICBsYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIHRvdWNoLWJ1dHRvbjtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgcGFkZGluZzogNnB4IDAgNnB4IDI1cHg7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgfVxuXG4gICAgLyogV2hlbiBhIGxhYmVsIGlzIG5leHQgdG8gYW4gaW5wdXQgdGhhdCBpcyBzZXQgdG8gbm90IGRpc3BsYXksIHdlIHNob3VsZCBzdHlsZSB0aGUgbGFiZWwgaW4gYSBub24tY2xpY2thYmxlIHN0YXRlICovXG4gICAgLm5vLWRpc3BsYXkgKyBsYWJlbCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgfVxuICAgIH1cblxufVxuXG4ucHJvZHVjdC1vcHRpb25zIHVsLm9wdGlvbnMtbGlzdCBsYWJlbCxcbi5jb2wyLXNldCAuZm9ybS1saXN0IC5jb250cm9sIGxhYmVsIHtcbiAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xufVxuXG4uZm9ybS1saXN0IC5jb250cm9sLnJlbWVtYmVyLW1lLWJveCB7XG4gICAgbGFiZWwge1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgbWF4LXdpZHRoOiBub25lO1xuICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgfVxufVxuXG4uZm9ybS1saXN0IC5jb250cm9sIHtcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xuXG4gICAgbGFiZWwge1xuICAgICAgICBmbG9hdDogbm9uZTtcbiAgICB9XG4gICAgLnJhZGlvLFxuICAgIC5jaGVja2JveCB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogNnB4O1xuICAgIH1cbiAgICAuaW5wdXQtYm94IHtcbiAgICAgICAgY2xlYXI6IG5vbmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxufVxuXG5cbio6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG59XG5cblxuXG5cbi8qIHJlbW92ZSBzdGFuZGFyZC1zdHlsZXMgKi9cbnNlbGVjdCB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICBhcHBlYXJhbmNlOiBub25lO1xuICBib3JkZXI6bm9uZTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgZm9udC1zaXplOiAxZW07XG4gIHdpZHRoOiAxMDAlO1xufSBcblxuXG4vKiBzdHlsaW5nICovXG5zZWxlY3Qge1xuICB3aWR0aDoxMDAlO1xuICBwYWRkaW5nOiA4cHggMTBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGJhY2tncm91bmQtaW1hZ2U6dXJsKGltYWdlcy9pY29uLWZvcm0tc2VsZWN0LWFycm93LWRvd24uc3ZnKTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgMTBweCB0b3AgMTZweDtcbiAgYmFja2dyb3VuZC1zaXplOiAxMHB4O1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIEBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLXNtYWxsICsxKSB7XG4gICAgICAgIHBhZGRpbmc6IDVweCAxMHB4O1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCAxMHB4IHRvcCAxNHB4O1xuICAgIH1cbn1cblxuc2VsZWN0W2Rpc2FibGVkXSB7XG4gICAgb3BhY2l0eTogLjY7XG4gICAgY29sb3I6ICRjLXRleHQtbGlnaHRncmF5O1xufVxuXG5zZWxlY3Q6aG92ZXIge1xuICAvL2JhY2tncm91bmQ6IGRhcmtlbigjZWFlYWVhLDUlKTtcbn1cblxuIiwiLy9cbi8vIE1hZ2VudG9cbi8vXG4vLyBOT1RJQ0UgT0YgTElDRU5TRVxuLy9cbi8vIFRoaXMgc291cmNlIGZpbGUgaXMgc3ViamVjdCB0byB0aGUgQWNhZGVtaWMgRnJlZSBMaWNlbnNlIChBRkwgMy4wKVxuLy8gdGhhdCBpcyBidW5kbGVkIHdpdGggdGhpcyBwYWNrYWdlIGluIHRoZSBmaWxlIExJQ0VOU0VfQUZMLnR4dC5cbi8vIEl0IGlzIGFsc28gYXZhaWxhYmxlIHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViIGF0IHRoaXMgVVJMOlxuLy8gaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2FmbC0zLjAucGhwXG4vLyBJZiB5b3UgZGlkIG5vdCByZWNlaXZlIGEgY29weSBvZiB0aGUgbGljZW5zZSBhbmQgYXJlIHVuYWJsZSB0b1xuLy8gb2J0YWluIGl0IHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViLCBwbGVhc2Ugc2VuZCBhbiBlbWFpbFxuLy8gdG8gbGljZW5zZUBtYWdlbnRvLmNvbSBzbyB3ZSBjYW4gc2VuZCB5b3UgYSBjb3B5IGltbWVkaWF0ZWx5LlxuLy9cbi8vIERJU0NMQUlNRVJcbi8vXG4vLyBEbyBub3QgZWRpdCBvciBhZGQgdG8gdGhpcyBmaWxlIGlmIHlvdSB3aXNoIHRvIHVwZ3JhZGUgTWFnZW50byB0byBuZXdlclxuLy8gdmVyc2lvbnMgaW4gdGhlIGZ1dHVyZS4gSWYgeW91IHdpc2ggdG8gY3VzdG9taXplIE1hZ2VudG8gZm9yIHlvdXJcbi8vIG5lZWRzIHBsZWFzZSByZWZlciB0byBodHRwOi8vd3d3Lm1hZ2VudG8uY29tIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuLy9cbi8vIEBjYXRlZ29yeSAgICBkZXNpZ25cbi8vIEBwYWNrYWdlICAgICByd2RfZGVmYXVsdFxuLy8gQGNvcHlyaWdodCAgIENvcHlyaWdodCAoYykgMjAwNi0yMDE2IFguY29tbWVyY2UsIEluYy4gYW5kIGFmZmlsaWF0ZXMgKGh0dHA6Ly93d3cubWFnZW50by5jb20pXG4vLyBAbGljZW5zZSAgICAgaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2FmbC0zLjAucGhwICBBY2FkZW1pYyBGcmVlIExpY2Vuc2UgKEFGTCAzLjApXG4vL1xuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBUYWJsZSBIZWxwZXJzXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4uaGlkZS10aCB7XG4gICAgdGV4dC1pbmRlbnQ6IC05OTk5cHg7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIERhdGEgVGFibGVcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5kYXRhLXRhYmxlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3JkZXItc3BhY2luZzogMFxuXG5cbn1cblxuXG4uZGF0YS10YWJsZSB0ZCxcbi5kYXRhLXRhYmxlIHRoIHtcbiAgICBwYWRkaW5nOiAwOyBcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgIFxuXG59XG5cbi5kYXRhLXRhYmxlLmNoZWNrb3V0LXJldmlldy10YWJsZSB7XG4gICAgXG4gICAgbWFyZ2luLWxlZnQ6IC01cHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAtNXB4O1xuXG4gICAgdGgge1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB9XG5cbiAgICB0aCwgdGQge1xuICAgICAgICBwYWRkaW5nOiA1cHg7IFxuICAgIH1cblxuICAgIHRmb290IHtcbiAgICAgICAgdGgsIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7IFxuICAgICAgICB9XG4gICAgfVxuICAgIFxufVxuXG5cbi5kYXRhLXRhYmxlIHRoIHtcbiAgICBcbiAgICBsaW5lLWhlaWdodDogMS40O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5kYXRhLXRhYmxlIHRyLCB0Zm9vdCB7XG4gICAgd2lkdGg6IDEwMCU7ICAgIFxufVxuXG4uZGF0YS10YWJsZSB0ci5kb3R0ZWQtYm9yZGVyIHRkIGRpdiB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZCAkYy1kYXJrYmx1ZTtcbn1cblxuLmRhdGEtdGFibGUgdGJvZHkgdGQsXG4uZGF0YS10YWJsZSB0Zm9vdCB0ZCB7XG4gICAgZm9udC1mYW1pbHk6ICRmLXN0YWNrLXNlcmlmO1xufVxuXG5cbi5kYXRhLXRhYmxlIHRib2R5IHRkIC5pdGVtLW9wdGlvbnMge1xuICAgIG1hcmdpbi1sZWZ0OiAyMHB4O1xuICAgIG1hcmdpbi10b3A6IDEwcHg7XG5cbiAgICBkdDphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6ICc6JztcbiAgICB9XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIEdlbmVyaWMgSW5mbyBUYWJsZVxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLmluZm8tYm94IHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYy10YWJsZS1ib3JkZXI7XG4gICAgcGFkZGluZzogMTJweCAxNXB4O1xuICAgIG1hcmdpbjogMCAwIDE1cHg7XG5cbiAgICBoMiB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgfVxufVxuXG4uaW5mby10YWJsZSB0aCxcbi5pbmZvLXRhYmxlIHRkIHtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuXG4uaW5mby10YWJsZSB0aCB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgcGFkZGluZzogNHB4IDIwcHggNHB4IDA7XG59XG5cbi5pbmZvLXRhYmxlIHRkIHtcbiAgICBwYWRkaW5nOiA0cHggMDtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogWmVicmEtU3RyaXBlIFRhYmxlXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4uemVicmEtdGFibGUge1xuICAgIHRyOmZpcnN0LWNoaWxkLFxuICAgIHRoOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRjLXRhYmxlLWJvcmRlcjtcbiAgICB9XG5cbiAgICB0ZCxcbiAgICB0aCB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkYy10YWJsZS1ib3JkZXI7XG4gICAgICAgIHBhZGRpbmc6IDZweDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgfVxuXG4gICAgdHIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYy10YWJsZS16ZWJyYS1ldmVuO1xuICAgIH1cblxuICAgIHRyOm50aC1jaGlsZChvZGQpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGMtdGFibGUtemVicmEtb2RkO1xuICAgIH1cbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogTGluZWFyaXplIFRhYmxlXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG5AbWl4aW4gbGluZWFyaXplLXRhYmxlIHtcblxuICAgIHRyLFxuICAgIHRoLFxuICAgIHRkIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgdGhlYWQgdGgge1xuICAgICAgICBib3JkZXItcmlnaHQ6IDA7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAwO1xuICAgIH1cblxuICAgIHRoZWFkIHRoLmxpbi1oaWRlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICB0aGVhZCB0aDpudGgtY2hpbGQoMW4rMikge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIHRib2R5IHRyIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGMtbW9kdWxlLWJvcmRlcjtcbiAgICB9XG5cbiAgICB0Ym9keSB0ZCB7XG4gICAgICAgIHBhZGRpbmc6IDAgMTBweCA0cHg7XG4gICAgICAgIGJvcmRlci1yaWdodDogMDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICB0Ym9keSB0ZC5saW4taGlkZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgdGJvZHkgdGQ6Zmlyc3QtY2hpbGQge1xuICAgICAgICBwYWRkaW5nLXRvcDogMTBweDtcbiAgICB9XG5cbiAgICB0Ym9keSB0ZDpmaXJzdC1jaGlsZCxcbiAgICB0Ym9keSB0ZDpmaXJzdC1jaGlsZCBoMyB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIH1cblxuICAgIHRib2R5IHRkW2RhdGEtcndkLWxhYmVsXSB7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMzBweDtcbiAgICB9XG5cbiAgICB0Ym9keSB0ZFtkYXRhLXJ3ZC1sYWJlbF06YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogYXR0cihkYXRhLXJ3ZC1sYWJlbCkgXCI6XCI7XG4gICAgICAgIGZvbnQtc2l6ZTogJGYtc2l6ZS14cztcbiAgICAgICAgZm9udC1mYW1pbHk6ICRmLXN0YWNrLXNwZWNpYWw7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDVweDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICB9XG5cbiAgICB0Zm9vdCB0ciB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICB9XG5cbiAgICB0Zm9vdCB0cjphZnRlciB7XG4gICAgICAgIEBpbmNsdWRlIGNsZWFyZml4KCk7XG4gICAgfVxuXG4gICAgdGZvb3QgdGQge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgfVxuXG4gICAgdGZvb3QgdGQubGluLWhpZGUge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIHRmb290IHRkOm50aC1jaGlsZChvZGQpIHtcbiAgICAgICAgY2xlYXI6IGxlZnQ7XG4gICAgICAgIHdpZHRoOiBwZXJjZW50YWdlKDMvNSk7XG4gICAgfVxuXG4gICAgdGZvb3QgdGQ6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgd2lkdGg6IHBlcmNlbnRhZ2UoMi81KTtcbiAgICB9XG5cbiAgICAvKiBIZWxwZXJzICovXG5cbiAgICAubGluZWFyaXplLWhpZGUge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC5saW5lYXJpemUtdW5wYWQge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgIH1cblxuICAgIC5saW5lYXJpemUtc2hvdyB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbn1cblxuQGluY2x1ZGUgYnAobWF4LXdpZHRoLCAkYnAteHNtYWxsKSB7XG4gICAgLmxpbmVhcml6ZS10YWJsZSB7XG4gICAgICAgIEBpbmNsdWRlIGxpbmVhcml6ZS10YWJsZTtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGJwKG1heC13aWR0aCwgJGJwLXNtYWxsKSB7XG4gICAgLmxpbmVhcml6ZS10YWJsZS1sYXJnZSB7XG4gICAgICAgIEBpbmNsdWRlIGxpbmVhcml6ZS10YWJsZTtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLXNtYWxsICsgMSkge1xuICAgIC5saW5lYXJpemUtdGFibGUgLmxpbmVhcml6ZS1jb2xsYXBzZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuIiwiLy9cbi8vIE1hZ2VudG9cbi8vXG4vLyBOT1RJQ0UgT0YgTElDRU5TRVxuLy9cbi8vIFRoaXMgc291cmNlIGZpbGUgaXMgc3ViamVjdCB0byB0aGUgQWNhZGVtaWMgRnJlZSBMaWNlbnNlIChBRkwgMy4wKVxuLy8gdGhhdCBpcyBidW5kbGVkIHdpdGggdGhpcyBwYWNrYWdlIGluIHRoZSBmaWxlIExJQ0VOU0VfQUZMLnR4dC5cbi8vIEl0IGlzIGFsc28gYXZhaWxhYmxlIHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViIGF0IHRoaXMgVVJMOlxuLy8gaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2FmbC0zLjAucGhwXG4vLyBJZiB5b3UgZGlkIG5vdCByZWNlaXZlIGEgY29weSBvZiB0aGUgbGljZW5zZSBhbmQgYXJlIHVuYWJsZSB0b1xuLy8gb2J0YWluIGl0IHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViLCBwbGVhc2Ugc2VuZCBhbiBlbWFpbFxuLy8gdG8gbGljZW5zZUBtYWdlbnRvLmNvbSBzbyB3ZSBjYW4gc2VuZCB5b3UgYSBjb3B5IGltbWVkaWF0ZWx5LlxuLy9cbi8vIERJU0NMQUlNRVJcbi8vXG4vLyBEbyBub3QgZWRpdCBvciBhZGQgdG8gdGhpcyBmaWxlIGlmIHlvdSB3aXNoIHRvIHVwZ3JhZGUgTWFnZW50byB0byBuZXdlclxuLy8gdmVyc2lvbnMgaW4gdGhlIGZ1dHVyZS4gSWYgeW91IHdpc2ggdG8gY3VzdG9taXplIE1hZ2VudG8gZm9yIHlvdXJcbi8vIG5lZWRzIHBsZWFzZSByZWZlciB0byBodHRwOi8vd3d3Lm1hZ2VudG8uY29tIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuLy9cbi8vIEBjYXRlZ29yeSAgICBkZXNpZ25cbi8vIEBwYWNrYWdlICAgICByd2RfZGVmYXVsdFxuLy8gQGNvcHlyaWdodCAgIENvcHlyaWdodCAoYykgMjAwNi0yMDE2IFguY29tbWVyY2UsIEluYy4gYW5kIGFmZmlsaWF0ZXMgKGh0dHA6Ly93d3cubWFnZW50by5jb20pXG4vLyBAbGljZW5zZSAgICAgaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2FmbC0zLjAucGhwICBBY2FkZW1pYyBGcmVlIExpY2Vuc2UgKEFGTCAzLjApXG4vL1xuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBHbG9iYWxcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbmh0bWwsXG5ib2R5IHtcbiAgICBoZWlnaHQ6IDEwMCU7XG59XG5cbi53cmFwcGVyIHtcbiAgICBtaW4td2lkdGg6IDMyMHB4O1xuICAgIG1pbi1oZWlnaHQ6IDEwMCU7XG4gICAgbWFyZ2luOiAwIGF1dG87XG59XG5cbi53cmFwcGVyOmFmdGVyIHtcbiAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbn1cbiIsIi8vXG4vLyBNYWdlbnRvXG4vL1xuLy8gTk9USUNFIE9GIExJQ0VOU0Vcbi8vXG4vLyBUaGlzIHNvdXJjZSBmaWxlIGlzIHN1YmplY3QgdG8gdGhlIEFjYWRlbWljIEZyZWUgTGljZW5zZSAoQUZMIDMuMClcbi8vIHRoYXQgaXMgYnVuZGxlZCB3aXRoIHRoaXMgcGFja2FnZSBpbiB0aGUgZmlsZSBMSUNFTlNFX0FGTC50eHQuXG4vLyBJdCBpcyBhbHNvIGF2YWlsYWJsZSB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiBhdCB0aGlzIFVSTDpcbi8vIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9hZmwtMy4wLnBocFxuLy8gSWYgeW91IGRpZCBub3QgcmVjZWl2ZSBhIGNvcHkgb2YgdGhlIGxpY2Vuc2UgYW5kIGFyZSB1bmFibGUgdG9cbi8vIG9idGFpbiBpdCB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiwgcGxlYXNlIHNlbmQgYW4gZW1haWxcbi8vIHRvIGxpY2Vuc2VAbWFnZW50by5jb20gc28gd2UgY2FuIHNlbmQgeW91IGEgY29weSBpbW1lZGlhdGVseS5cbi8vXG4vLyBESVNDTEFJTUVSXG4vL1xuLy8gRG8gbm90IGVkaXQgb3IgYWRkIHRvIHRoaXMgZmlsZSBpZiB5b3Ugd2lzaCB0byB1cGdyYWRlIE1hZ2VudG8gdG8gbmV3ZXJcbi8vIHZlcnNpb25zIGluIHRoZSBmdXR1cmUuIElmIHlvdSB3aXNoIHRvIGN1c3RvbWl6ZSBNYWdlbnRvIGZvciB5b3VyXG4vLyBuZWVkcyBwbGVhc2UgcmVmZXIgdG8gaHR0cDovL3d3dy5tYWdlbnRvLmNvbSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbi8vXG4vLyBAY2F0ZWdvcnkgICAgZGVzaWduXG4vLyBAcGFja2FnZSAgICAgcndkX2RlZmF1bHRcbi8vIEBjb3B5cmlnaHQgICBDb3B5cmlnaHQgKGMpIDIwMDYtMjAxNiBYLmNvbW1lcmNlLCBJbmMuIGFuZCBhZmZpbGlhdGVzIChodHRwOi8vd3d3Lm1hZ2VudG8uY29tKVxuLy8gQGxpY2Vuc2UgICAgIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9hZmwtMy4wLnBocCAgQWNhZGVtaWMgRnJlZSBMaWNlbnNlIChBRkwgMy4wKVxuLy9cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogSGVhZGVyXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4ucGFnZS1oZWFkZXIge1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG59XG5cbkBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLW1lZGl1bSArIDEpIHtcblxuICAgIC5wYWdlLWhlYWRlciB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB9XG5cbn1cblxuLmhlYWRlci1sYW5ndWFnZS1jb250YWluZXIsXG4ucGFnZS1oZWFkZXIge1xuICAgIGZvbnQtZmFtaWx5OiAkZi1zdGFjay1zcGVjaWFsO1xufVxuXG5cbi5hY2NvdW50LWNhcnQtd3JhcHBlciB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogTGFuZ3VhZ2Ugc3dpdGNoZXIgKyB3ZWxjb21lIG1lc3NhZ2VcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5mb3JtLWxhbmd1YWdlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBAaW5jbHVkZSBicChtaW4td2lkdGgsICRicC1zbWFsbCArIDEpIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDE1cHg7XG4gICAgfVxuXG4gICAgc2VsZWN0OjotbXMtZXhwYW5kIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHVybChpbWFnZXMvaWNvbi1sYW5nLXN3aXRjaC5zdmcpO1xuICAgICAgICAgICAgd2lkdGg6IDExcHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDdweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogMTFweDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHJpZ2h0OiAxMXB4O1xuICAgICAgICAgICAgdG9wOiAxOHB4O1xuXG4gICAgICAgIH1cbn1cblxuICAgICNzZWxlY3QtbGFuZ3VhZ2Uge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkZi1zdGFjay1zcGVjaWFsO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblxuICAgIH1cblxuXG5cblxuICAgIC5oZWFkZXItbGFuZ3VhZ2UtY29udGFpbmVyIHtcbiAgICAgICAgcGFkZGluZzogMTVweDsgXG4gICAgICAgIHBhZGRpbmctdG9wOiAxMnB4O1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgd2lkdGg6IDEzNjBweDtcbiAgICAgICAgbWF4LXdpZHRoOiA5MCU7XG4gICAgICAgIC8vbWF4LXdpZHRoOiAkbWF4LWNvbnRlbnQtd2lkdGggKyA0MDA7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC53ZWxjb21lLW1zZyB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAvKiBAaW5jbHVkZSBicChtaW4td2lkdGgsICRicC1tZWRpdW0gKyAxKSB7XG5cbiAgICAgICAgLndlbGNvbWUtbXNnIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICB9Ki9cblxuXG5cblxuXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIExvZ29cbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cblxuICAgIC5sb2dvLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogNzBweDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHJpZ2h0OiAxNXB4O1xuICAgICAgICAgICAgdG9wOiAxNXB4O1xuICAgICAgICAgXG5cbiAgICAgICAgICAgIC5sb2dvIHtcbiAgICAgICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICAmLnNtYWxsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAmLmxhcmdlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cblxuXG5cbkBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLXNtYWxsICsgMSkge1xuICAgIC5sb2dvLXdyYXBwZXIge1xuICAgICAgICB3aWR0aDogODBweDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLW1lZGl1bSArIDEpIHtcblxuICAgIC5sb2dvLXdyYXBwZXIge1xuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxNTAwcHg7XG4gICAgICAgIG1hcmdpbjogYXV0bztcblxuICAgICAgICAubG9nbyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgICAgICAgICBpbWcge1xuXG4gICAgICAgICAgICAgICAgJi5zbWFsbCB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICYubGFyZ2Uge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIFNraXAgTGlua3NcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5za2lwLWxpbmtzIHtcbiAgICBjbGVhcjogYm90aDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIEBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLW1lZGl1bSArIDEpIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICAgIH1cbn1cblxuXG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5AaW5jbHVkZSBicChtaW4td2lkdGgsICRicC1tZWRpdW0gKyAxMzEpIHtcblxuICAgIC5za2lwLWxpbmtzIHtcbiAgICAgICAgd2lkdGg6IDcwJTtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgfVxuXG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICpcbiAqIFNraXAgLSBMaW5rXG4gKi9cblxuLnNraXAtbGluaywgI3NlbGVjdC1sYW5ndWFnZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGhlaWdodDogNDRweDtcbiAgICBmb250LXNpemU6ICRmLXNpemUtbDtcbiAgICBjb2xvcjogIzRjNGM0ZTtcbiAgICBsaW5lLWhlaWdodDogNDJweDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuXG4gICAgQGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtc21hbGwgKyAxKSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMjRweDtcblxuICAgIH1cblxuICAgIGltZyB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICB9XG5cbiAgICAmOmhvdmVyLFxuICAgICY6YWN0aXZlLFxuICAgICY6dmlzaXRlZCB7XG4gICAgICAgIGNvbG9yOiAjNGM0YzRlICFpbXBvcnRhbnQ7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgfVxufVxuXG5hLnNraXAtbGluayB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG5cblxuXG4uc2tpcC1saW5rIHtcbiAgICBpbWcuaW1hZ2UtaWNvbiB7XG4gICAgICAgIG1hcmdpbi10b3A6IC0zcHg7XG4gICAgfVxuXG59XG5cblxuXG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICpcbiAqIFNraXAgTGluayAtIExhYmVsXG4gKi9cblxuLnNraXAtbGluayAubGFiZWwge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5AaW5jbHVkZSBicChtaW4td2lkdGgsICRicC1zbWFsbCAgKyAxKSB7XG5cbiAgICAuc2tpcC1saW5rIC5sYWJlbCB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICB9XG5cbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogU2tpcCBDb250ZW50XG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4uc2tpcC1jb250ZW50IHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG5AaW5jbHVkZSBicChtaW4td2lkdGgsICRicC1tZWRpdW0gICsgMTMxKSB7XG4gICAgI2hlYWRlci1uYXYge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luLXRvcDogJHRyaW07XG4gICAgfVxufVxuXG5AaW5jbHVkZSBicChtaW4td2lkdGgsICRicC1tZWRpdW0gICsgMSkge1xuICAgICAjaGVhZGVyLW5hdiB7XG4gICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICB9XG59XG5cbi5za2lwLWNvbnRlbnQuc2tpcC1hY3RpdmUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGJhY2tncm91bmQ6ICNFREVERUQ7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIEdsb2JhbCBIZWFkZXIgTmF2aWdhdGlvblxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuXG4uYWNjb3VudC1jYXJ0LXdyYXBwZXIge1xuXG5cbiAgICBAaW5jbHVkZSBicChtYXgtd2lkdGgsICRicC1tZWRpdW0pIHtcbiAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICB9XG59IiwiLy9cbi8vIE1hZ2VudG9cbi8vXG4vLyBOT1RJQ0UgT0YgTElDRU5TRVxuLy9cbi8vIFRoaXMgc291cmNlIGZpbGUgaXMgc3ViamVjdCB0byB0aGUgQWNhZGVtaWMgRnJlZSBMaWNlbnNlIChBRkwgMy4wKVxuLy8gdGhhdCBpcyBidW5kbGVkIHdpdGggdGhpcyBwYWNrYWdlIGluIHRoZSBmaWxlIExJQ0VOU0VfQUZMLnR4dC5cbi8vIEl0IGlzIGFsc28gYXZhaWxhYmxlIHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViIGF0IHRoaXMgVVJMOlxuLy8gaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2FmbC0zLjAucGhwXG4vLyBJZiB5b3UgZGlkIG5vdCByZWNlaXZlIGEgY29weSBvZiB0aGUgbGljZW5zZSBhbmQgYXJlIHVuYWJsZSB0b1xuLy8gb2J0YWluIGl0IHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViLCBwbGVhc2Ugc2VuZCBhbiBlbWFpbFxuLy8gdG8gbGljZW5zZUBtYWdlbnRvLmNvbSBzbyB3ZSBjYW4gc2VuZCB5b3UgYSBjb3B5IGltbWVkaWF0ZWx5LlxuLy9cbi8vIERJU0NMQUlNRVJcbi8vXG4vLyBEbyBub3QgZWRpdCBvciBhZGQgdG8gdGhpcyBmaWxlIGlmIHlvdSB3aXNoIHRvIHVwZ3JhZGUgTWFnZW50byB0byBuZXdlclxuLy8gdmVyc2lvbnMgaW4gdGhlIGZ1dHVyZS4gSWYgeW91IHdpc2ggdG8gY3VzdG9taXplIE1hZ2VudG8gZm9yIHlvdXJcbi8vIG5lZWRzIHBsZWFzZSByZWZlciB0byBodHRwOi8vd3d3Lm1hZ2VudG8uY29tIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuLy9cbi8vIEBjYXRlZ29yeSAgICBkZXNpZ25cbi8vIEBwYWNrYWdlICAgICByd2RfZGVmYXVsdFxuLy8gQGNvcHlyaWdodCAgIENvcHlyaWdodCAoYykgMjAwNi0yMDE2IFguY29tbWVyY2UsIEluYy4gYW5kIGFmZmlsaWF0ZXMgKGh0dHA6Ly93d3cubWFnZW50by5jb20pXG4vLyBAbGljZW5zZSAgICAgaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2FmbC0zLjAucGhwICBBY2FkZW1pYyBGcmVlIExpY2Vuc2UgKEFGTCAzLjApXG4vL1xuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBOYXYgLSBTa2lwIExpbmtcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5za2lwLW5hdiB7XG5cblxuICAgICY6bm90KC5za2lwLWFjdGl2ZSk6aG92ZXIge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxufVxuXG4uc2tpcC1uYXYgLmxhYmVsIHtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG59XG5cbi5za2lwLW5hdiAuaWNvbiB7XG4gICAgQGV4dGVuZCAuaWNvbi1zcHJpdGU7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCs0cHggKCR0b29sYmFyLWljb24tcGFkZGluZy1vZmZzZXQvMik7XG59XG5cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLW1lZGl1bSArIDEzMSkge1xuXG4gICAgLnNraXAtbmF2IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbn1cblxuXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIE5hdiBQcmltYXJ5XG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG5AaW5jbHVkZSBicChtaW4td2lkdGgsICRicC1tZWRpdW0gICsgMTMxKSB7XG4gICAgLm5hdi1wcmltYXJ5IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgfVxuXG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIEdlbmVyYWwgTmF2aWdhdGlvbiBTdHlsZXNcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiRuYXYtcHJpbWFyeS1oZWlnaHQ6IDMwcHg7XG5cbi5uYXYtcHJpbWFyeSB7XG4gICAgYSB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgY29sb3I6ICRjLXRleHQ7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkbmF2LXByaW1hcnktaGVpZ2h0O1xuICAgICAgICBmb250LWZhbWlseTogJGYtc3RhY2stc3BlY2lhbDtcbiAgICB9XG5cbiAgICBsaSB7XG4gICAgICAgIC8vcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cblxufVxuXG4vLyBTaG93IHN1Yi1tZW51cyB3aGVuIEpTIGFkZHMgdGhlIGFwcHJvcHJpYXRlIGNsYXNzZXNcbi5uYXYtcHJpbWFyeSAubWVudS1hY3RpdmUgPiB1bC5sZXZlbDAsXG4ubmF2LXByaW1hcnkgbGkubGV2ZWwwIGxpLnN1Yi1tZW51LWFjdGl2ZSA+IHVsIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbn1cblxuLm5hdi1wcmltYXJ5IGxpLmxldmVsMCA+IGEge1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG5cbi5hY3RpdmUge1xuICAgIGEubGV2ZWwwIHtcbiAgICAgICAgY29sb3I6ICRjLWFjdGlvbjtcbiAgICB9XG59XG5cblxuXG4gICAgYS5sZXZlbDAgeyBcbiAgICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgICAgY29sb3I6ICRjLWFjdGlvbjtcbiAgICAgICAgfVxuICAgIH1cbi5jbXMtaW5kZXgtaW5kZXgge1xuICAgIGEubGV2ZWwwIHsgXG4gICAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgICAgIGNvbG9yOiAkYy10ZXh0O1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGMtYWN0aW9uO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIFNtYWxsIFZpZXdwb3J0cyAtIEFjY29yZGlvbiBTdHlsZSBNZW51XG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gLm1vYmlsZS1vbmx5IHtcbiAgICBkaXNwbGF5OiBub25lOyBcbiB9XG5cbi5tb2JpbGUtbmF2LWNvbnRyb2xzIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG5cblxuXG5AaW5jbHVkZSBicChtYXgtd2lkdGgsICRicC1zbWFsbCkge1xuICAgIC5za2lwLWNhcnQge1xuICAgICAgICBpbWcuaW1hZ2UtaWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogMjdweDtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBpbmNsdWRlIGJwKG1heC13aWR0aCwgJGJwLW1lZGl1bSArIDEzMCkge1xuXG4gICAgYm9keS5uYXYtb3BlbiB7XG4gICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIH1cblxuICAgIC5za2lwLWFjdGl2ZSB7XG4gICAgICAgIC5tb2JpbGUtbmF2LWNvbnRyb2xzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6IDk5OTk7XG4gICAgICAgICAgICBwYWRkaW5nOiAyMHB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgICAgIC5mb3JtLWxhbmd1YWdlICB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICNoZWFkZXItbmF2LWNvbnRhaW5lciB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgei1pbmRleDogOTk5O1xuICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjNzIGVhc2U7XG4gICAgfVxuXG4gICAgaW1nLmltYWdlLWljb24ubmF2LWNvbnRyb2wtbGVmdCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxNXB4O1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAuMTVzIGVhc2U7XG5cbiAgICAgICAgJi5pcy12aXNpYmxlIHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5hdiNuYXYge1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBzY3JvbGw7XG4gICAgfVxuXG4gICAgI2hlYWRlci1uYXYge1xuXG4gICAgICAgIHVsLCBvbCB7XG5cbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiA5NXB4O1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206ICR0cmltO1xuICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgXG5cbiAgICAgICAgICAgIGxpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwIDIwcHg7XG5cblxuICAgICAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiA3cHggMCA1cHggMDsgXG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGYtc2l6ZS14eGw7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQgJGMtZGFya2JsdWU7XG5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgXG5cbiAgICAgICAgICAgICAgICAmLnZpZXctYWxsID4gYSB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBkb3R0ZWQgJGMtZGFya2JsdWU7XG5cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyAmLmxldmVsMCA+IGEge1xuICAgICAgICAgICAgICAgIC8vICAgICBmb250LXNpemU6IDM2cHg7XG4gICAgICAgICAgICAgICAgLy8gICAgIHBhZGRpbmc6IDE3cHggMCAxM3B4IDA7IFxuICAgICAgICAgICAgICAgIC8vIH1cblxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm5hdi0xIHtcbiAgICAgICAgICAgIHVsIGxpIHtcbiAgICAgICAgICAgICAgICAmLmZpcnN0ID4gYSB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBkb3R0ZWQgJGMtZGFya2JsdWU7XG5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgICAgIGxpLm5hdi0xIHtcbiAgICAgICAgICAgICAgICAmLmZpcnN0ID4gYSB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBkb3R0ZWQgJGMtZGFya2JsdWU7XG5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cblxuICAgIH1cblxuICAgIC5uYXYtcHJpbWFyeSB1bC5sZXZlbDAsXG4gICAgLm5hdi1wcmltYXJ5IHVsLmxldmVsMSxcbiAgICAubmF2LXByaW1hcnkgdWwubGV2ZWwyIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgICAgIHRvcDowO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHotaW5kZXg6IDk5OTtcbiAgICB9XG5cblxuXG4gICAgLm5hdi1wcmltYXJ5IHtcblxuICAgICAgICBsaS5sZXZlbDAgdWwge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgbGkuc3VwcG9ydC1ibG9jayB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgIH1cbn1cblxuQGluY2x1ZGUgYnAobWF4LXdpZHRoLCAkYnAtc21hbGwgKyAxKSB7XG5cbiAgICAuc2tpcC1hY3RpdmUge1xuICAgICAgICAubW9iaWxlLW5hdi1jb250cm9scyB7XG5cbiAgICAgICAgICAgIC5mb3JtLWxhbmd1YWdlIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgICAgIFxuXG4gICAgICAgICAgICAgICAgI3NlbGVjdC1sYW5ndWFnZSB7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMjZweDtcbiAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICNhNWE1YTQ7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIExhcmdlIFZpZXdwb3J0cyAtIERyb3Bkb3duIE1lbnVcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cblxuXG5cblxuQGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtbWVkaXVtICsgMTMxKSB7XG5cbiAgICAubmF2LXByaW1hcnkge1xuXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBsaSBhIHtcbiAgICAgICAgICAgIG91dGxpbmU6IDAgIWltcG9ydGFudDtcbiAgICAgICAgfVxuXG5cbiAgICAgICAgYS5sZXZlbDAge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAyOHB4O1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZi1zaXplLXh4bDtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAkdHJpbS14cztcblxuXG4gICAgICAgICAgICBcbiAgICAgICAgfVxuXG4gICAgICAgIC52aWV3LWFsbCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgLm1lbnUtYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgIGEubGV2ZWwwLmhhcy1jaGlsZHJlbjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6XCJcXEFcIjtcbiAgICAgICAgICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgICAgICAgICAgICAgIGJvcmRlci13aWR0aDogMCAxNXB4IDE1cHggMTVweDtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHdoaXRlIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBib3R0b206IC0zcHg7XG4gICAgICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMTVweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGxpLmxldmVsMCxcbiAgICAgICAgYS5sZXZlbDAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cblxuICAgICAgICBhOmhvdmVyLFxuICAgICAgICBsaTpob3ZlciA+IGEge1xuICAgICAgICAgICAgY29sb3I6ICRjLWFjdGlvbjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5tZW51LWFjdGl2ZSB7XG4gICAgICAgICAgICB6LWluZGV4OiAyMDA7XG4gICAgICAgIH1cblxuICAgICAgICAvKiBEZWZhdWx0IHN0eWxlcyBmb3IgMSsgZHJvcC1kb3duIG1lbnVzICovXG4gICAgICAgIGxpLmxldmVsMCB1bCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHRvcDogJG5hdi1wcmltYXJ5LWhlaWdodCArICR0cmltLXhzOyAvKiBIZWlnaHQgb2YgXCIubmF2LXByaW1hcnkgYS5sZXZlbDBcIiAqL1xuICAgICAgICAgICAgXG4gICAgICAgICAgICBwYWRkaW5nOiAkdHJpbSAwO1xuXG4gICAgICAgICAgICB6LWluZGV4OiA5OTk7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lOyAvKiBIaWRlIHVudGlsIGRpc3BsYXllZC4gKi9cblxuXG4gICAgICAgICAgICB3aWR0aDogODAlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTgwcHg7XG4gICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG4gICAgICAgICAgICAmID4gbGkgYSB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZi1zaXplLWw7XG4gICAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGMtdGV4dC1ncmF5O1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkYy10ZXh0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbGkge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDNweCAkdHJpbS1zO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogOHB4IDAgN3B4IDA7XG5cbiAgICAgICAgICAgICAgICAmLnN1cHBvcnQtYmxvY2sge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJi5wcm9kdWN0ZmluZGVyLWxpbmsge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAkdHJpbTtcbiAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMS4zO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLnN1cHBvcnQtYmxvY2sge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDI1JTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAkdHJpbSAkdHJpbS1zO1xuICAgICAgICAgICAgICAgIHRvcDogLTFweDtcbiAgICAgICAgICAgICAgICBib3JkZXItbGVmdDogMXB4IGRvdHRlZCAkYy1kYXJrYmx1ZTtcbiAgICAgICAgICAgICAgICBmb250LWZhbWlseTogJGYtc3RhY2stc2FucztcbiAgICAgICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICBzcGFuLnBob25lIHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZi1zaXplLXhsO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLmxlZnQge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogNjQlO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IHotaW5kZXg6IDk5OTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBoMywgLmgzIHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZi1zaXplLWw7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDYwJTtcbiAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICB6LWluZGV4OiA5OTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIFxuXG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAkdHJpbTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB3aWR0aDogODAlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6IDk5OTk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGhlaWdodDogJHRyaW07XG4gICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDgwJTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiA5OTk5O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgXG4gICAgICAgIGxpLm5hdi0xLmxldmVsMCB1bCxcbiAgICAgICAgbGkubmF2LTMubGV2ZWwwIHVsIHtcbiAgICAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgfVxuXG4gICAgICAgIGxpLm5hdi0xLmxldmVsMCB1bCA+IGxpLmxldmVsMSB7XG4gICAgICAgICAgICB3aWR0aDogMjUlO1xuICAgICAgICB9XG5cbiAgICAgICAgbGkubmF2LTQubGV2ZWwwIHVsLFxuICAgICAgICBsaS5uYXYtNS5sZXZlbDAgdWwge1xuICAgICAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICAgICAgIFxuICAgICAgICB9XG5cbiAgICAgICAgbGkubmF2LTQubGV2ZWwwID4gdWwsXG4gICAgICAgIGxpLm5hdi01LmxldmVsMCA+IHVsIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBsaS5sZXZlbDAgPiBsaSB7XG4gICAgICAgICAgICB3aWR0aDogMzMuMzMzJTtcbiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIH1cblxuICAgICAgICBsaS5uYXYtMS5sZXZlbDAgPiBsaSxcbiAgICAgICAgbGkubmF2LTMubGV2ZWwwID4gbGkge1xuICAgICAgICAgICAgd2lkdGg6IDI1JTtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgbGkubmF2LTQubGV2ZWwwID4gbGksXG4gICAgICAgIGxpLm5hdi01LmxldmVsMCA+IGxpIHtcbiAgICAgICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgIH1cbiAgIFxuXG4gICAgICAgIC8qIExldmVsIDIrICovXG4gICAgICAgIGxpLmxldmVsMSB1bCB7XG4gICAgICAgICAgICBsZWZ0OiAzMy4zMzMlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBkb3R0ZWQgJGMtdGV4dC1saWdodGdyYXk7XG5cbiAgICAgICAgICAgIGxpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBsaSBhIHtcbiAgICAgICAgICAgICAgICBmb250LWZhbWlseTogJGYtc3RhY2stc2FucztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICRmLXNpemU7XG4gICAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubmF2LTEsXG4gICAgICAgIC5uYXYtMyB7XG4gICAgICAgICAgICBsaS5sZXZlbDEgdWwgeyBcbiAgICAgICAgICAgICAgICBsZWZ0OiAyNSU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDI1JTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxpLmxldmVsMiB1bCB7IFxuICAgICAgICAgICAgICAgIGxlZnQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgICAgIH0gICAgICAgXG4gICAgICAgIH1cblxuICAgICAgICAubmF2LTQsXG4gICAgICAgIC5uYXYtNSB7XG4gICAgICAgICAgICBsaS5sZXZlbDEgdWwgeyBcbiAgICAgICAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICAgICAgIH0gICAgIFxuICAgICAgICB9XG5cbiAgICAgICAgIFxuXG5cbiAgICB9XG59XG5cbi5uYXYtcHJvZHVjdC10YXJnZXRzIHtcbiAgICBhIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRmLXN0YWNrLXNwZWNpYWwgIWltcG9ydGFudDtcbiAgICAgICAgZm9udC1zaXplOiAkZi1zaXplLWwgIWltcG9ydGFudDtcbiAgICAgICAgY29sb3I6ICRjLXRleHQgIWltcG9ydGFudDtcblxuICAgICAgICBpbWcge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICAgICAgfVxuXG4gICAgICAgICYuaXMtdmlzaWJsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm5hdi1wcm9kdWN0LXRyaWdnZXJzIHtcbiAgICBhIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTFweDtcbiAgICB9XG59XG5cbi5uYXYtcHJpbWFyeSBsaS5tZW51LWFjdGl2ZSB7XG4gICAgPiB1bCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbn1cbiIsIi8vXG4vLyBNYWdlbnRvXG4vL1xuLy8gTk9USUNFIE9GIExJQ0VOU0Vcbi8vXG4vLyBUaGlzIHNvdXJjZSBmaWxlIGlzIHN1YmplY3QgdG8gdGhlIEFjYWRlbWljIEZyZWUgTGljZW5zZSAoQUZMIDMuMClcbi8vIHRoYXQgaXMgYnVuZGxlZCB3aXRoIHRoaXMgcGFja2FnZSBpbiB0aGUgZmlsZSBMSUNFTlNFX0FGTC50eHQuXG4vLyBJdCBpcyBhbHNvIGF2YWlsYWJsZSB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiBhdCB0aGlzIFVSTDpcbi8vIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9hZmwtMy4wLnBocFxuLy8gSWYgeW91IGRpZCBub3QgcmVjZWl2ZSBhIGNvcHkgb2YgdGhlIGxpY2Vuc2UgYW5kIGFyZSB1bmFibGUgdG9cbi8vIG9idGFpbiBpdCB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiwgcGxlYXNlIHNlbmQgYW4gZW1haWxcbi8vIHRvIGxpY2Vuc2VAbWFnZW50by5jb20gc28gd2UgY2FuIHNlbmQgeW91IGEgY29weSBpbW1lZGlhdGVseS5cbi8vXG4vLyBESVNDTEFJTUVSXG4vL1xuLy8gRG8gbm90IGVkaXQgb3IgYWRkIHRvIHRoaXMgZmlsZSBpZiB5b3Ugd2lzaCB0byB1cGdyYWRlIE1hZ2VudG8gdG8gbmV3ZXJcbi8vIHZlcnNpb25zIGluIHRoZSBmdXR1cmUuIElmIHlvdSB3aXNoIHRvIGN1c3RvbWl6ZSBNYWdlbnRvIGZvciB5b3VyXG4vLyBuZWVkcyBwbGVhc2UgcmVmZXIgdG8gaHR0cDovL3d3dy5tYWdlbnRvLmNvbSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbi8vXG4vLyBAY2F0ZWdvcnkgICAgZGVzaWduXG4vLyBAcGFja2FnZSAgICAgcndkX2RlZmF1bHRcbi8vIEBjb3B5cmlnaHQgICBDb3B5cmlnaHQgKGMpIDIwMDYtMjAxNiBYLmNvbW1lcmNlLCBJbmMuIGFuZCBhZmZpbGlhdGVzIChodHRwOi8vd3d3Lm1hZ2VudG8uY29tKVxuLy8gQGxpY2Vuc2UgICAgIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9hZmwtMy4wLnBocCAgQWNhZGVtaWMgRnJlZSBMaWNlbnNlIChBRkwgMy4wKVxuLy9cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogU2VhcmNoIC0gU2tpcCBMaW5rXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG5cblxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBTZWFyY2ggLSBTa2lwIENvbnRlbnRcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cblxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG4uc2tpcC1zZWFyY2gge1xuICAgIC5pbWFnZS1pY29uIHtcbiAgICAgICAgbWFyZ2luLXRvcDogLTZweDtcblxuICAgICAgICBAaW5jbHVkZSBicChtYXgtd2lkdGgsICRicC1zbWFsbCkge1xuXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyNnB4O1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAtMnB4O1xuICAgICAgICAgICBcbiAgICAgICAgfVxuICAgIH1cbn1cblxuXG5AaW5jbHVkZSBicChtYXgtd2lkdGgsICRicC1zbWFsbCkgeyBcbiAgICAjaGVhZGVyLXNlYXJjaCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAxNHB4O1xuICAgICAgICBwYWRkaW5nOiAwIDE1cHg7XG4gICAgICAgIHdpZHRoOiA2NCU7XG4gICAgICAgIHotaW5kZXg6IDk5OTtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgcmlnaHQ6IDA7XG5cbiAgICAgICAgJi5za2lwLWFjdGl2ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuICAgIH1cbiAgICAuc2tpcC1zZWFyY2gge1xuICAgICAgICBtYXJnaW4tbGVmdDogNXB4O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgYnAobWF4LXdpZHRoLCAkYnAteHhzbWFsbCkgeyBcbiAgICAjaGVhZGVyLXNlYXJjaCB7XG4gICAgICAgIHdpZHRoOiA2MCU7XG4gICAgfSBcbn1cblxuQGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtc21hbGwgKyAxKSB7XG4gICAgLnNraXAtc2VhcmNoIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDVweDtcbiAgICB9XG5cbiAgICAjaGVhZGVyLXNlYXJjaCB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgLy8gRm9yY2UgdmlzaWJpbGl0eVxuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBpbnB1dCB7XG4gICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICBwYWRkaW5nOiA4cHggMTBweCA2cHggMTBweDtcbiAgICAgICAgICAgcGFkZGluZy1sZWZ0OiA0MHB4O1xuICAgICAgICAgICB3aWR0aDogMTIwcHg7XG4gICAgICAgICAgIG1hcmdpbi1yaWdodDogMTRweDtcbiAgICAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAuMTVzIGVhc2Utb3V0LCB3aWR0aCAuMTVzIGVhc2Utb3V0O1xuICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMjYwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuc2VhcmNoX21pbmlfZm9ybSAuc2VhcmNoLWJ1dHRvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgLmlucHV0LWJveCB7XG4gICAgICAgICAgICA6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6IzRjNGM0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgOi1tb3otcGxhY2Vob2xkZXIgeyAvKiBGaXJlZm94IDE4LSAqL1xuICAgICAgICAgICAgY29sb3I6IzRjNGM0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgOjotbW96LXBsYWNlaG9sZGVyIHsgIC8qIEZpcmVmb3ggMTkrICovXG4gICAgICAgICAgICBjb2xvcjojNGM0YzRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICA6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiM0YzRjNGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICBsZWZ0OiAxMHB4O1xuICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdXJsKGltYWdlcy9pY29uLXNlYXJjaC5zdmcpO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAtMTJweDtcblxuICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgIH1cblxufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBTZWFyY2ggSW5wdXRcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5zZWFyY2hfbWluaV9mb3JtIC5pbnB1dC1ib3gge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nLXRvcDogMDtcbn1cblxuLnNlYXJjaF9taW5pX2Zvcm0gbGFiZWwge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbiNzZWFyY2gge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogNDBweDtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgcGFkZGluZy1yaWdodDogNDBweDtcbiAgICBmb250LWZhbWlseTogJGYtc3RhY2stc3BlY2lhbDtcbn1cblxuLnNlYXJjaF9taW5pX2Zvcm0gLnNlYXJjaC1idXR0b24ge1xuICAgIEBpbmNsdWRlIGltYWdlLXJlcGxhY2VtZW50O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgd2lkdGg6IDQwcHg7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIGJvcmRlcjogMDtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xufVxuXG4uc2VhcmNoX21pbmlfZm9ybSAuc2VhcmNoLWJ1dHRvbjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgd2lkdGg6IDI5cHg7XG4gICAgaGVpZ2h0OiAyOXB4O1xuICAgIG1hcmdpbi10b3A6IC0xNHB4O1xuICAgIG1hcmdpbi1sZWZ0OiAtMTVweDtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoaW1hZ2VzL2ljb24tc2VhcmNoLWJsdWUuc3ZnKTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xufVxuXG4uc2VhcmNoX21pbmlfZm9ybSAuc2VhcmNoLWJ1dHRvbjphY3RpdmU6YmVmb3JlIHtcbiAgICBtYXJnaW4tdG9wOiAtMTVweCArIDJweDtcbiAgICBtYXJnaW4tbGVmdDogLTE1cHggKyAycHg7XG59XG4iLCIvL1xuLy8gTWFnZW50b1xuLy9cbi8vIE5PVElDRSBPRiBMSUNFTlNFXG4vL1xuLy8gVGhpcyBzb3VyY2UgZmlsZSBpcyBzdWJqZWN0IHRvIHRoZSBBY2FkZW1pYyBGcmVlIExpY2Vuc2UgKEFGTCAzLjApXG4vLyB0aGF0IGlzIGJ1bmRsZWQgd2l0aCB0aGlzIHBhY2thZ2UgaW4gdGhlIGZpbGUgTElDRU5TRV9BRkwudHh0LlxuLy8gSXQgaXMgYWxzbyBhdmFpbGFibGUgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIgYXQgdGhpcyBVUkw6XG4vLyBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYWZsLTMuMC5waHBcbi8vIElmIHlvdSBkaWQgbm90IHJlY2VpdmUgYSBjb3B5IG9mIHRoZSBsaWNlbnNlIGFuZCBhcmUgdW5hYmxlIHRvXG4vLyBvYnRhaW4gaXQgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIsIHBsZWFzZSBzZW5kIGFuIGVtYWlsXG4vLyB0byBsaWNlbnNlQG1hZ2VudG8uY29tIHNvIHdlIGNhbiBzZW5kIHlvdSBhIGNvcHkgaW1tZWRpYXRlbHkuXG4vL1xuLy8gRElTQ0xBSU1FUlxuLy9cbi8vIERvIG5vdCBlZGl0IG9yIGFkZCB0byB0aGlzIGZpbGUgaWYgeW91IHdpc2ggdG8gdXBncmFkZSBNYWdlbnRvIHRvIG5ld2VyXG4vLyB2ZXJzaW9ucyBpbiB0aGUgZnV0dXJlLiBJZiB5b3Ugd2lzaCB0byBjdXN0b21pemUgTWFnZW50byBmb3IgeW91clxuLy8gbmVlZHMgcGxlYXNlIHJlZmVyIHRvIGh0dHA6Ly93d3cubWFnZW50by5jb20gZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4vL1xuLy8gQGNhdGVnb3J5ICAgIGRlc2lnblxuLy8gQHBhY2thZ2UgICAgIHJ3ZF9kZWZhdWx0XG4vLyBAY29weXJpZ2h0ICAgQ29weXJpZ2h0IChjKSAyMDA2LTIwMTYgWC5jb21tZXJjZSwgSW5jLiBhbmQgYWZmaWxpYXRlcyAoaHR0cDovL3d3dy5tYWdlbnRvLmNvbSlcbi8vIEBsaWNlbnNlICAgICBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYWZsLTMuMC5waHAgIEFjYWRlbWljIEZyZWUgTGljZW5zZSAoQUZMIDMuMClcbi8vXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIEhlYWRlciAtIEFjY291bnRcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICpcbiAqIFNraXAgTGluayAtIEFjY291bnRcbiAqL1xuXG4uc2tpcC1hY2NvdW50IHtcblxuICAgICY6bm90KC5za2lwLWFjdGl2ZSk6aG92ZXIge1xuICAgICAgICAuaWNvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNTBweCs0cHggKC01MHB4ICsgKCR0b29sYmFyLWljb24tcGFkZGluZy1vZmZzZXQvMikgKyAycHgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmljb24ge1xuICAgICAgICBAZXh0ZW5kIC5pY29uLXNwcml0ZTtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTBweCs0cHggKC01MHB4ICsgKCR0b29sYmFyLWljb24tcGFkZGluZy1vZmZzZXQvMikgKyAycHgpO1xuICAgIH1cbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLW1lZGl1bSArIDEpIHtcblxuICAgIC5za2lwLWFjY291bnQge1xuICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMCAxMHB4O1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIH1cblxuICAgIC5za2lwLWFjY291bnQ6aG92ZXIge1xuICAgIH1cblxuICAgICNoZWFkZXItYWNjb3VudC5za2lwLWFjdGl2ZSB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHotaW5kZXg6IDIwMDtcbiAgICAgICAgdG9wOiA0MHB4O1xuICAgICAgICByaWdodDogMTE1cHg7XG4gICAgICAgIHdpZHRoOiAyMDBweDtcbiAgICB9XG5cbiAgICAjaGVhZGVyLWFjY291bnQgYSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwYWRkaW5nOiA1cHggMTBweDtcbiAgICAgICAgY29sb3I6ICRjLXRleHQ7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyO1xuICAgIH1cblxuICAgICNoZWFkZXItYWNjb3VudCBhOmhvdmVyIHtcbiAgICAgICAgY29sb3I6ICRjLWFjdGlvbjtcbiAgICB9XG5cbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxuICogQWNjb3VudCBMaW5rc1xuICovXG5cbiNoZWFkZXItYWNjb3VudCB7XG4gICAgcGFkZGluZzogNXB4IDA7XG59XG5cbiNoZWFkZXItYWNjb3VudCBhIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogNXB4IDEwcHg7XG4gICAgbGluZS1oZWlnaHQ6MjNweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbiNoZWFkZXItYWNjb3VudCBhOmhvdmVyIHtcbiAgICBjb2xvcjogJGMtYWN0aW9uO1xufVxuXG4iLCIvL1xuLy8gTWFnZW50b1xuLy9cbi8vIE5PVElDRSBPRiBMSUNFTlNFXG4vL1xuLy8gVGhpcyBzb3VyY2UgZmlsZSBpcyBzdWJqZWN0IHRvIHRoZSBBY2FkZW1pYyBGcmVlIExpY2Vuc2UgKEFGTCAzLjApXG4vLyB0aGF0IGlzIGJ1bmRsZWQgd2l0aCB0aGlzIHBhY2thZ2UgaW4gdGhlIGZpbGUgTElDRU5TRV9BRkwudHh0LlxuLy8gSXQgaXMgYWxzbyBhdmFpbGFibGUgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIgYXQgdGhpcyBVUkw6XG4vLyBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYWZsLTMuMC5waHBcbi8vIElmIHlvdSBkaWQgbm90IHJlY2VpdmUgYSBjb3B5IG9mIHRoZSBsaWNlbnNlIGFuZCBhcmUgdW5hYmxlIHRvXG4vLyBvYnRhaW4gaXQgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIsIHBsZWFzZSBzZW5kIGFuIGVtYWlsXG4vLyB0byBsaWNlbnNlQG1hZ2VudG8uY29tIHNvIHdlIGNhbiBzZW5kIHlvdSBhIGNvcHkgaW1tZWRpYXRlbHkuXG4vL1xuLy8gRElTQ0xBSU1FUlxuLy9cbi8vIERvIG5vdCBlZGl0IG9yIGFkZCB0byB0aGlzIGZpbGUgaWYgeW91IHdpc2ggdG8gdXBncmFkZSBNYWdlbnRvIHRvIG5ld2VyXG4vLyB2ZXJzaW9ucyBpbiB0aGUgZnV0dXJlLiBJZiB5b3Ugd2lzaCB0byBjdXN0b21pemUgTWFnZW50byBmb3IgeW91clxuLy8gbmVlZHMgcGxlYXNlIHJlZmVyIHRvIGh0dHA6Ly93d3cubWFnZW50by5jb20gZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4vL1xuLy8gQGNhdGVnb3J5ICAgIGRlc2lnblxuLy8gQHBhY2thZ2UgICAgIHJ3ZF9kZWZhdWx0XG4vLyBAY29weXJpZ2h0ICAgQ29weXJpZ2h0IChjKSAyMDA2LTIwMTYgWC5jb21tZXJjZSwgSW5jLiBhbmQgYWZmaWxpYXRlcyAoaHR0cDovL3d3dy5tYWdlbnRvLmNvbSlcbi8vIEBsaWNlbnNlICAgICBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYWZsLTMuMC5waHAgIEFjYWRlbWljIEZyZWUgTGljZW5zZSAoQUZMIDMuMClcbi8vXG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gTWl4aW4gLSBNZW51XG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQG1peGluIG1lbnUge1xuICAgIGJhY2tncm91bmQ6ICNGQkZCRkI7XG4gICAgYm9yZGVyOiBzb2xpZCAxcHggJGMtbW9kdWxlLWJvcmRlcjtcbn1cbiIsIi8vXG4vLyBNYWdlbnRvXG4vL1xuLy8gTk9USUNFIE9GIExJQ0VOU0Vcbi8vXG4vLyBUaGlzIHNvdXJjZSBmaWxlIGlzIHN1YmplY3QgdG8gdGhlIEFjYWRlbWljIEZyZWUgTGljZW5zZSAoQUZMIDMuMClcbi8vIHRoYXQgaXMgYnVuZGxlZCB3aXRoIHRoaXMgcGFja2FnZSBpbiB0aGUgZmlsZSBMSUNFTlNFX0FGTC50eHQuXG4vLyBJdCBpcyBhbHNvIGF2YWlsYWJsZSB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiBhdCB0aGlzIFVSTDpcbi8vIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9hZmwtMy4wLnBocFxuLy8gSWYgeW91IGRpZCBub3QgcmVjZWl2ZSBhIGNvcHkgb2YgdGhlIGxpY2Vuc2UgYW5kIGFyZSB1bmFibGUgdG9cbi8vIG9idGFpbiBpdCB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiwgcGxlYXNlIHNlbmQgYW4gZW1haWxcbi8vIHRvIGxpY2Vuc2VAbWFnZW50by5jb20gc28gd2UgY2FuIHNlbmQgeW91IGEgY29weSBpbW1lZGlhdGVseS5cbi8vXG4vLyBESVNDTEFJTUVSXG4vL1xuLy8gRG8gbm90IGVkaXQgb3IgYWRkIHRvIHRoaXMgZmlsZSBpZiB5b3Ugd2lzaCB0byB1cGdyYWRlIE1hZ2VudG8gdG8gbmV3ZXJcbi8vIHZlcnNpb25zIGluIHRoZSBmdXR1cmUuIElmIHlvdSB3aXNoIHRvIGN1c3RvbWl6ZSBNYWdlbnRvIGZvciB5b3VyXG4vLyBuZWVkcyBwbGVhc2UgcmVmZXIgdG8gaHR0cDovL3d3dy5tYWdlbnRvLmNvbSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbi8vXG4vLyBAY2F0ZWdvcnkgICAgZGVzaWduXG4vLyBAcGFja2FnZSAgICAgcndkX2RlZmF1bHRcbi8vIEBjb3B5cmlnaHQgICBDb3B5cmlnaHQgKGMpIDIwMDYtMjAxNiBYLmNvbW1lcmNlLCBJbmMuIGFuZCBhZmZpbGlhdGVzIChodHRwOi8vd3d3Lm1hZ2VudG8uY29tKVxuLy8gQGxpY2Vuc2UgICAgIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9hZmwtMy4wLnBocCAgQWNhZGVtaWMgRnJlZSBMaWNlbnNlIChBRkwgMy4wKVxuLy9cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogSGVhZGVyIC0gQ2FydFxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxuICogU2tpcCBMaW5rIC0gQ2FydFxuICovXG5cblxuXG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5AaW5jbHVkZSBicChtaW4td2lkdGgsICRicC1tZWRpdW0gKyAxKSB7XG5cbiAgICAuc2tpcC1jYXJ0IHtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgfVxuXG4gICAgLnNraXAtY2FydDpob3ZlciB7XG4gICAgfVxuXG4gICAgI2hlYWRlci1jYXJ0LnNraXAtYWN0aXZlIHtcbiAgICAgICAgQGluY2x1ZGUgbWVudTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgei1pbmRleDogMjAwO1xuICAgICAgICB0b3A6IDQwcHg7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB3aWR0aDogMzIwcHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgIH1cblxufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXG4gKiBTa2lwIENhcnQgTm90aWZpZXJcbiAqL1xuXG4uc2tpcC1jYXJ0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5za2lwLWNhcnQgLmNvdW50IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB0b3A6IC0xMnB4O1xuICAgIGxlZnQ6IDEycHg7XG4gICAgd2lkdGg6IDE4cHg7XG4gICAgaGVpZ2h0OiAxOHB4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgYmFja2dyb3VuZDogJGMtYWN0aW9uO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAvL2ZvbnQtZmFtaWx5OiAkZi1zdGFjay1zYW5zO1xufVxuLnNraXAtbGluay5za2lwLWFjdGl2ZSAuY291bnQge1xuICAgIGNvbG9yOiB3aGl0ZTtcbn1cblxuLy8gVXNpbmcgZXh0cmEgLnNraXAtbGluayBzZWxlY3RvciB0byBpbmNyZWFzZSBzcGVjaWZpY2l0eVxuLnNraXAtbGluay5za2lwLWNhcnQgLmNvdW50IHtcbn1cblxuLnNraXAtY2FydC5uby1jb3VudCAuY291bnQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbkBpbmNsdWRlIGJwKG1heC13aWR0aCwgJGJwLXNtYWxsKSB7XG4gICAgLnNraXAtY2FydCAuY291bnQge1xuICAgICAgICBsZWZ0OiAyMHB4O1xuICAgIH1cbn1cblxuXG5AaW5jbHVkZSBicChtaW4td2lkdGgsICRicC1tZWRpdW0gKyAxKSB7XG4gICAgLnNraXAtY2FydCB7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgIH1cbiAgICAuc2tpcC1saW5rLnNraXAtYWN0aXZlIC5jb3VudCB7XG4gICAgICAgIGNvbG9yOiAkYy1hY3Rpb247XG4gICAgfVxufVxuXG4uc2tpcC1jYXJ0IC5jb3VudC5lbXB0eSB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxuICogTWluaSBDYXJ0IC0gRW1wdHlcbiAqL1xuXG4uY2FydC1tZW51IC5lbXB0eSB7XG4gICAgcGFkZGluZzogMjBweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICpcbiAqIE1pbmkgQ2FydCAtIEZ1bGxcbiAqL1xuXG4vKiBBY3Rpb25zICovXG5cbi5jYXJ0LW1lbnUgLmFjdGlvbnMge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZzogMTVweDtcbn1cblxuLmNhcnQtbWVudSAuYWN0aW9ucyAuYnV0dG9uIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogNDglO1xufVxuXG4uY2FydC1tZW51IC5hY3Rpb25zIC5idXR0b24gKyAuYnV0dG9uIHtcbiAgICBtYXJnaW4tbGVmdDogNCU7XG59XG5cbi8qIFN1YnRvdGFsICovXG5cbi5jYXJ0LW1lbnUgLnN1YnRvdGFsIHtcbiAgICBwYWRkaW5nOiAwIDE1cHggMTVweDtcbiAgICBmb250LWZhbWlseTogJGYtc3RhY2stc3BlY2lhbDtcbiAgICBmb250LXNpemU6IDI0cHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcbn1cblxuLyogTGlzdCAqL1xuXG4ubWluaS1jYXJ0LWxpc3Qge1xuICAgIG1hcmdpbi1ib3R0b206IDVweDtcbn1cblxuLm1pbmktY2FydC1saXN0IGxpIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWluLWhlaWdodDogKDE1cHggKyA2MHB4ICsgMTVweCk7XG4gICAgcGFkZGluZzogMTVweCAxNXB4IDE1cHggKDE1cHggKyA2MHB4ICsgMTVweCk7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRjLW1vZHVsZS1ib3JkZXI7XG4gICAgZm9udC1zaXplOiAkZi1zaXplLXM7XG4gICAgbGluZS1oZWlnaHQ6IDEuMzU7XG59XG5cbi5taW5pLWNhcnQtbGlzdCAucHJvZHVjdC1uYW1lIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi5taW5pLWNhcnQtbGlzdCAucHJvZHVjdC1pbWFnZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDE1cHg7XG4gICAgdG9wOiAxNXB4O1xufVxuXG4ubWluaS1jYXJ0LWxpc3QgLnByb2R1Y3QtaW1hZ2UgaW1nIHtcbiAgICB3aWR0aDogNjBweDtcbiAgICBoZWlnaHQ6IDYwcHg7XG59XG5cbi8vLm1pbmktY2FydC1saXN0IC5kZXRhaWxzIHsgfVxuXG4ubWluaS1jYXJ0LWxpc3QgLmhhcy1vcHRpb25zIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIGNvbG9yOiAkYy10ZXh0LWdyYXk7XG4gICAgZm9udC1zaXplOiAkZi1zaXplLXhzO1xufVxuXG4vKiBUb28gZnVsbCAtIGFkZGl0aW9uYWwgaXRlbXMgd2lsbCBiZSBzaG93biBpbiBjYXJ0ICovXG4uY2FydC1tZW51IC5sYXN0LWFkZGVkIHtcbiAgICBwYWRkaW5nOiAxMHB4IDE1cHggMTVweDtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgJGMtbW9kdWxlLWJvcmRlcjtcbiAgICBmb250LXNpemU6ICRmLXNpemUtcztcbn1cbiIsIi8vXG4vLyBNYWdlbnRvXG4vL1xuLy8gTk9USUNFIE9GIExJQ0VOU0Vcbi8vXG4vLyBUaGlzIHNvdXJjZSBmaWxlIGlzIHN1YmplY3QgdG8gdGhlIEFjYWRlbWljIEZyZWUgTGljZW5zZSAoQUZMIDMuMClcbi8vIHRoYXQgaXMgYnVuZGxlZCB3aXRoIHRoaXMgcGFja2FnZSBpbiB0aGUgZmlsZSBMSUNFTlNFX0FGTC50eHQuXG4vLyBJdCBpcyBhbHNvIGF2YWlsYWJsZSB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiBhdCB0aGlzIFVSTDpcbi8vIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9hZmwtMy4wLnBocFxuLy8gSWYgeW91IGRpZCBub3QgcmVjZWl2ZSBhIGNvcHkgb2YgdGhlIGxpY2Vuc2UgYW5kIGFyZSB1bmFibGUgdG9cbi8vIG9idGFpbiBpdCB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiwgcGxlYXNlIHNlbmQgYW4gZW1haWxcbi8vIHRvIGxpY2Vuc2VAbWFnZW50by5jb20gc28gd2UgY2FuIHNlbmQgeW91IGEgY29weSBpbW1lZGlhdGVseS5cbi8vXG4vLyBESVNDTEFJTUVSXG4vL1xuLy8gRG8gbm90IGVkaXQgb3IgYWRkIHRvIHRoaXMgZmlsZSBpZiB5b3Ugd2lzaCB0byB1cGdyYWRlIE1hZ2VudG8gdG8gbmV3ZXJcbi8vIHZlcnNpb25zIGluIHRoZSBmdXR1cmUuIElmIHlvdSB3aXNoIHRvIGN1c3RvbWl6ZSBNYWdlbnRvIGZvciB5b3VyXG4vLyBuZWVkcyBwbGVhc2UgcmVmZXIgdG8gaHR0cDovL3d3dy5tYWdlbnRvLmNvbSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbi8vXG4vLyBAY2F0ZWdvcnkgICAgZGVzaWduXG4vLyBAcGFja2FnZSAgICAgcndkX2RlZmF1bHRcbi8vIEBjb3B5cmlnaHQgICBDb3B5cmlnaHQgKGMpIDIwMDYtMjAxNiBYLmNvbW1lcmNlLCBJbmMuIGFuZCBhZmZpbGlhdGVzIChodHRwOi8vd3d3Lm1hZ2VudG8uY29tKVxuLy8gQGxpY2Vuc2UgICAgIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9hZmwtMy4wLnBocCAgQWNhZGVtaWMgRnJlZSBMaWNlbnNlIChBRkwgMy4wKVxuLy9cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogRm9vdGVyXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXG4gKiBGb290ZXJcbiAqL1xuXG4uZm9vdGVyLWNvbnRhaW5lciB7XG4gICAgbWFyZ2luLWJvdHRvbTogMjVweDtcblxuICAgIEBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLXNtYWxsICsgMSkge1xuICAgICAgICAgbWFyZ2luLWJvdHRvbTogNjBweDtcbiAgICB9XG59XG5cblxuLmZvb3RlciB7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm9yZGVyLXRvcDogMXB4IGRvdHRlZCAkYy10ZXh0O1xuICAgIHBhZGRpbmctdG9wOiA4MHB4O1xuXG4gICAgQGluY2x1ZGUgYnAobWF4LXdpZHRoLCAkYnAteHNtYWxsKSB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAkdHJpbS1zbWFsbDtcbiAgICB9XG5cbiAgICAuYmxvY2stdGl0bGUge1xuICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgIH1cblxuICAgIC5ibG9jay10aXRsZSBzdHJvbmcge1xuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICBmb250LXNpemU6ICRmLXNpemUteGw7XG4gICAgICAgIGNvbG9yOiAkYy10ZXh0O1xuICAgIH1cblxuICAgIGg1IHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNHB4O1xuICAgIH1cblxuICAgIC5saW5rcyB7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICB3aWR0aDogMjUlO1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkZ2FwO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkdHJpbTtcblxuXG4gICAgICAgIGltZyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDVweDtcbiAgICAgICAgfVxuXG4gICAgICAgIGxpIHtcbiAgICAgICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG4gICAgICAgICAgICBwYWRkaW5nOiA0cHggMDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGYtc2l6ZTtcbiAgICAgICAgfVxuXG5cbiAgICAgICAgJi5wYXltZW50LW1ldGhvZHMge1xuICAgICAgICAgICAgbGkge1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuXG4gICAgICAgIGEge1xuICAgICAgICAgICAgY29sb3I6ICRjLXRleHQ7XG4gICAgICAgICAgICAgZm9udC1zaXplOiAkZi1zaXplO1xuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRjLWFjdGlvbjtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmJsb2NrLXN1YnNjcmliZSB7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgd2lkdGg6IDMyMHB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkdHJpbTtcbiAgICB9XG5cbiAgICAubGlua3MsXG4gICAgLmJsb2NrLXN1YnNjcmliZSB7XG4gICAgICAgXG4gICAgICAgIGZvbnQtc2l6ZTogJGYtc2l6ZS14cztcbiAgICB9XG5cbiAgICAuZm9ybS1zdWJzY3JpYmUtaGVhZGVyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXG4gICAgICogU29jaWFsIGljb25zXG4gICAgICovXG5cbiAgICAubGlua3Muc29jaWFsLW1lZGlhIGVtIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKGltYWdlcy9zb2NpYWxfaWNvbnMucG5nKTtcbiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgd2lkdGg6IDEzcHg7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiA3cHg7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgaWYtbWluLXJlc29sdXRpb24oMikge1xuICAgICAgICAubGlua3Muc29jaWFsLW1lZGlhIGVtIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChpbWFnZXMvc29jaWFsX2ljb25zQDJ4LnBuZyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDUwcHggMTI1cHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAbWl4aW4gZm9vdGVyLXNvY2lhbC1pY29uKCRjbGFzcywgJHksICRoZWlnaHQ6IDEzKSB7XG4gICAgICAgIC5saW5rcy5zb2NpYWwtbWVkaWEgZW0uI3skY2xhc3N9IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAgLSN7JHl9cHg7XG4gICAgICAgICAgICBoZWlnaHQ6ICN7JGhlaWdodH1weDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5saW5rcy5zb2NpYWwtbWVkaWEgYTpob3ZlciBlbS4jeyRjbGFzc30ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTI1cHggLSN7JHl9cHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBmb290ZXItc29jaWFsLWljb24oZmFjZWJvb2ssIDApO1xuICAgIEBpbmNsdWRlIGZvb3Rlci1zb2NpYWwtaWNvbih0d2l0dGVyLCAyNCk7XG4gICAgQGluY2x1ZGUgZm9vdGVyLXNvY2lhbC1pY29uKHlvdXR1YmUsIDQ5KTtcbiAgICBAaW5jbHVkZSBmb290ZXItc29jaWFsLWljb24ocGludGVyZXN0LCA3NCwgMTUpO1xuICAgIEBpbmNsdWRlIGZvb3Rlci1zb2NpYWwtaWNvbihyc3MsIDk5KTtcblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgLmJsb2NrLXN1YnNjcmliZSAuaW5wdXQtYm94IHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIHdpZHRoOiBwZXJjZW50YWdlKDIxMHB4LzMyMHB4KTtcbiAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgfVxuXG4gICAgLmJsb2NrLXN1YnNjcmliZSAuaW5wdXQtdGV4dCB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBib3JkZXItcmlnaHQ6IDA7XG4gICAgfVxuXG4gICAgLmJsb2NrLXN1YnNjcmliZSAuYmxvY2stY29udGVudCB7XG4gICAgICAgIHBhZGRpbmctdG9wOiA3cHg7XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5ibG9jay1zdWJzY3JpYmUgLmFjdGlvbnMge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgd2lkdGg6IHBlcmNlbnRhZ2UoMTEwcHgvMzIwcHgpO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgLmJsb2NrLXN1YnNjcmliZSAuYWN0aW9ucyAuYnV0dG9uIHtcbiAgICAgICAgaGVpZ2h0OiAzMHB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMTdweDtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgfVxuXG4gICAgLmJ1Z3MsXG4gICAgYWRkcmVzcyB7XG4gICAgICAgIGNsZWFyOiBib3RoO1xuICAgIH1cblxuICAgIC5idWdzIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9IFxuXG4gICAgLmZvcm0tbGFuZ3VhZ2UsXG4gICAgLmN1cnJlbmN5LXN3aXRjaGVyLFxuICAgIC5zdG9yZS1zd2l0Y2hlciB7XG4gICAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkZ2FwO1xuICAgIH1cblxuICAgIC5mb3JtLWxhbmd1YWdlLFxuICAgIC5jdXJyZW5jeS1zd2l0Y2hlciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgYWRkcmVzcyB7XG4gICAgICAgIGZvbnQtc2l6ZTogJGYtc2l6ZTtcbiAgICAgICAgQGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtc21hbGwpIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGYtc2l6ZS1zO1xuICAgICAgICB9XG5cbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGNvbG9yOiAkYy10ZXh0LWdyYXk7XG4gICAgICAgIG1hcmdpbi10b3A6ICR0cmltO1xuXG4gICAgICAgIGEge1xuICAgICAgICAgICAgY29sb3I6ICRjLXRleHQtZ3JheTtcbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIGJwKG1heC13aWR0aCwgJGJwLXhsYXJnZSkge1xuICAgICAgICAkbGlua3MtdHJpbTogcGVyY2VudGFnZSgzMHB4IC8gOTYwcHgpO1xuICAgICAgICAkbGlua3Mtd2lkdGg6ICgxMDAgLSAoJGxpbmtzLXRyaW0gKiAzKSkgLyA0O1xuXG4gICAgICAgIC5saW5rcyB7XG4gICAgICAgICAgICB3aWR0aDogJGxpbmtzLXdpZHRoO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogJGxpbmtzLXRyaW07XG4gICAgICAgIH1cblxuICAgICAgICAubGlua3M6bnRoLWNoaWxkKDQpIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5ibG9jay1zdWJzY3JpYmUge1xuICAgICAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvICR0cmltIGF1dG87XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicChtYXgtd2lkdGgsICRicC1tZWRpdW0pIHtcbiAgICAgICAgLmZvcm0tbGFuZ3VhZ2UsXG4gICAgICAgIC5jdXJyZW5jeS1zd2l0Y2hlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIGJwKG1heC13aWR0aCwgJGJwLXNtYWxsKSB7XG4gICAgICAgICRsaW5rcy10cmltOiBwZXJjZW50YWdlKDE1cHggLyA0ODBweCk7XG4gICAgICAgICRsaW5rcy13aWR0aDogKDEwMCAtICRsaW5rcy10cmltKSAvIDI7XG5cbiAgICAgICAgLmxpbmtzIHtcbiAgICAgICAgICAgIHdpZHRoOiAkbGlua3Mtd2lkdGg7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAubGlua3M6bnRoLWNoaWxkKG9kZCkge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAkbGlua3MtdHJpbTtcbiAgICAgICAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgICB9XG5cbiAgICAgICAgLmJsb2NrLXN1YnNjcmliZSB7XG4gICAgICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5jYXRhbG9nLXByb2R1Y3QtdmlldyB7XG4gICAgLmZvb3RlciB7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgfVxufVxuXG5cblxuIiwiLy9cbi8vIE1hZ2VudG9cbi8vXG4vLyBOT1RJQ0UgT0YgTElDRU5TRVxuLy9cbi8vIFRoaXMgc291cmNlIGZpbGUgaXMgc3ViamVjdCB0byB0aGUgQWNhZGVtaWMgRnJlZSBMaWNlbnNlIChBRkwgMy4wKVxuLy8gdGhhdCBpcyBidW5kbGVkIHdpdGggdGhpcyBwYWNrYWdlIGluIHRoZSBmaWxlIExJQ0VOU0VfQUZMLnR4dC5cbi8vIEl0IGlzIGFsc28gYXZhaWxhYmxlIHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViIGF0IHRoaXMgVVJMOlxuLy8gaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2FmbC0zLjAucGhwXG4vLyBJZiB5b3UgZGlkIG5vdCByZWNlaXZlIGEgY29weSBvZiB0aGUgbGljZW5zZSBhbmQgYXJlIHVuYWJsZSB0b1xuLy8gb2J0YWluIGl0IHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViLCBwbGVhc2Ugc2VuZCBhbiBlbWFpbFxuLy8gdG8gbGljZW5zZUBtYWdlbnRvLmNvbSBzbyB3ZSBjYW4gc2VuZCB5b3UgYSBjb3B5IGltbWVkaWF0ZWx5LlxuLy9cbi8vIERJU0NMQUlNRVJcbi8vXG4vLyBEbyBub3QgZWRpdCBvciBhZGQgdG8gdGhpcyBmaWxlIGlmIHlvdSB3aXNoIHRvIHVwZ3JhZGUgTWFnZW50byB0byBuZXdlclxuLy8gdmVyc2lvbnMgaW4gdGhlIGZ1dHVyZS4gSWYgeW91IHdpc2ggdG8gY3VzdG9taXplIE1hZ2VudG8gZm9yIHlvdXJcbi8vIG5lZWRzIHBsZWFzZSByZWZlciB0byBodHRwOi8vd3d3Lm1hZ2VudG8uY29tIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuLy9cbi8vIEBjYXRlZ29yeSAgICBkZXNpZ25cbi8vIEBwYWNrYWdlICAgICByd2RfZGVmYXVsdFxuLy8gQGNvcHlyaWdodCAgIENvcHlyaWdodCAoYykgMjAwNi0yMDE2IFguY29tbWVyY2UsIEluYy4gYW5kIGFmZmlsaWF0ZXMgKGh0dHA6Ly93d3cubWFnZW50by5jb20pXG4vLyBAbGljZW5zZSAgICAgaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2FmbC0zLjAucGhwICBBY2FkZW1pYyBGcmVlIExpY2Vuc2UgKEFGTCAzLjApXG4vL1xuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIEdlbmVyYWwgUHJvZHVjdCBMaXN0IFN0eWxlcyAobm90IG1vZHVsZS1zcGVjaWZpYylcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxuICogUHJvZHVjdCBMaXN0IEdlbmVyYWxcbiAqL1xuXG4uY2F0ZWdvcnktdGl0bGUgaDEsXG5ib2R5LmNhdGFsb2dzZWFyY2gtcmVzdWx0LWluZGV4IC5wYWdlLXRpdGxlIGgxIHtcbiAgICBib3JkZXItYm90dG9tOiBub25lO1xufVxuXG4uY2F0YWxvZ3NlYXJjaC1yZXN1bHQtaW5kZXgge1xuICAgIC5wYWdlLXRpdGxlIHtcbiAgICAgICAgQGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtc21hbGwrMSkgeyBcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAkdHJpbTtcbiAgICAgICAgfVxuICAgICAgICBoMSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG4gICAgfVxuICAgIEBpbmNsdWRlIGJwKG1heC13aWR0aCwgJGJwLXNtYWxsKSB7XG4gICAgICAgIC5zaWRlYmFyIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICR0cmltICogMjtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmNhdGVnb3J5LWltYWdlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAkYi1tYXJnaW4tYm90dG9tO1xufVxuXG4vLyBQcmV2ZW50IGJ1dHRvbiBvdmVybGFwcGluZyB3aGVuIGJ1dHRvbnMgaGF2ZSBsb25nIHRleHQsIHN1Y2ggYXMgbm9uLUVuZ2xpc2ggdHJhbnNsYXRpb25zXG4ucHJvZHVjdHMtbGlzdCAuYWN0aW9uIC5idXR0b24sXG4ucHJvZHVjdHMtZ3JpZCAuYWN0aW9ucyAuYnV0dG9uIHtcbiAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXG4gKiBQcm9kdWN0IE5hbWVcbiAqL1xuXG5oMi5wcm9kdWN0LW5hbWUsXG5oMy5wcm9kdWN0LW5hbWUsXG5oNC5wcm9kdWN0LW5hbWUsXG5oNS5wcm9kdWN0LW5hbWUsXG5wLnByb2R1Y3QtbmFtZSB7XG4gICAgQGluY2x1ZGUgaDI7XG4gICAgZm9udC1zaXplOiAkZi1zaXplLXM7XG4gICAgZm9udC1mYW1pbHk6ICRmLXN0YWNrLXNhbnM7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBsaW5lLWhlaWdodDogMS40O1xuXG4gICAgYSB7XG4gICAgICAgIGNvbG9yOiAkYy10ZXh0O1xuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkYy1hY3Rpb247XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5wcm9kdWN0cy1ncmlkIC5wcm9kdWN0LW5hbWUsXG4ucHJvZHVjdHMtbGlzdCAucHJvZHVjdC1uYW1lIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIHBhZGRpbmc6IDE1cHggMDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICRjLWRhcmtibHVlO1xuICAgIGZvbnQtc2l6ZTogJGYtc2l6ZTtcblxuICAgICAgICBhIHtcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAkZi1zdGFjay1zYW5zO1xuICAgICAgICAgICAgY29sb3I6ICRjLWRhcmtibHVlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgICBcbiAgICAgICAgfVxufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBQcm9kdWN0IEdyaWRcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiRwcm9kdWN0LWNvbHVtbi1zcGFjaW5nOiAyMHB4O1xuXG4ucHJvZHVjdHMtZ3JpZCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4ucHJvZHVjdHMtZ3JpZDphZnRlciB7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG59XG5cbi5wcm9kdWN0cy1ncmlkID4gbGkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1jb2x1bW4tc3BhY2luZztcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgfVxufVxuXG4uYmFkZ2UtbmV3LCAuYmFkZ2UtY3VzdG9tIHtcbiAgICB3aWR0aDogNjBweCAhaW1wb3J0YW50O1xuICAgIGhlaWdodDogNjBweCAhaW1wb3J0YW50O1xuICAgIGxpbmUtaGVpZ2h0OiA2MHB4O1xuICAgIGZvbnQtZmFtaWx5OiAkZi1zdGFjay1zcGVjaWFsO1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICBiYWNrZ3JvdW5kOiAkYy1hY2NlbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTVkZWcpO1xuXG4gICAgQGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtc21hbGwrMSkgeyBcbiAgICAgICAgZm9udC1zaXplOiAzMnB4O1xuICAgICAgICB3aWR0aDogOTBweCAhaW1wb3J0YW50O1xuICAgICAgICBoZWlnaHQ6IDkwcHggIWltcG9ydGFudDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDkwcHg7XG4gICAgICAgIHJpZ2h0OiAycHg7XG4gICAgICAgIGJvdHRvbTogMTBweDtcbiAgICB9XG5cbn1cblxuLmJhZGdlLWN1c3RvbSB7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgYm90dG9tOiBhdXRvO1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiAwO1xuICAgIEBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLXNtYWxsKzEpIHsgXG4gICAgICAgIGxlZnQ6IDJweDtcbiAgICAgICAgdG9wOiAxMHB4O1xuICAgIH1cbn1cblxuLm5hdi1wcmltYXJ5IHtcbiAgICAuYmFkZ2UtbmV3LCAuYmFkZ2UtY3VzdG9tIHtcbiAgICAgICAgd2lkdGg6IDYwcHggIWltcG9ydGFudDtcbiAgICAgICAgaGVpZ2h0OiA2MHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiA2MHB4O1xuICAgICAgICBmb250LWZhbWlseTogJGYtc3RhY2stc3BlY2lhbDtcbiAgICAgICAgZm9udC1zaXplOiAyMHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAkYy1hY2NlbnQ7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC01ZGVnKTtcblxuICAgICAgICBAaW5jbHVkZSBicChtaW4td2lkdGgsICRicC1zbWFsbCsxKSB7IFxuICAgICAgICAgICAgZm9udC1zaXplOiAyMHB4O1xuICAgICAgICAgICAgd2lkdGg6IDYwcHggIWltcG9ydGFudDtcbiAgICAgICAgICAgIGhlaWdodDogNjBweCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDYwcHg7XG4gICAgICAgICAgICByaWdodDogLTEwcHg7XG4gICAgICAgICAgICBib3R0b206IGF1dG87XG4gICAgICAgICAgICB0b3A6IDYwcHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYmFkZ2UtY3VzdG9tIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgICAgICByaWdodDogYXV0bztcbiAgICAgICAgYm90dG9tOiBhdXRvO1xuICAgICAgICBsZWZ0OiAtMTBweDtcbiAgICAgICAgdG9wOiAwO1xuICAgIH1cblxuXG59XG5cbi5iYWRnZS1jdXN0b20ge1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG59XG5cbi5wcm9kdWN0LWltYWdlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IFxuICAgIGhlaWdodDogYXV0bztcbiAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICY6aG92ZXIge1xuICAgICAgICAuYmFkZ2UtbmV3IHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmNhdGFsb2ctY2F0ZWdvcnktdmlldyAucHJvZHVjdC1jYXRlZ29yeSAucHJvZHVjdCwgI2Jsb2NrLXByb2R1Y3RmaW5kZXIsIC5ib3gtdXAtc2VsbC1zbGlkZXIsIC5jYXRhbG9nc2VhcmNoLXJlc3VsdC1pbmRleCB7XG4gICAgLnByb2R1Y3QtaW1hZ2Uge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgcGFkZGluZzogMCAxNSU7XG4gICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB9XG59XG5cblxuLnByb2R1Y3RzLWdyaWQgLnByb2R1Y3QtaW1hZ2Uge1xuXG4gICAgbWFyZ2luLWJvdHRvbTogMTVweDtcbn1cblxuLnByb2R1Y3RzLWdyaWQgLnByb2R1Y3QtaW1hZ2UgaW1nIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG5cbiAgICAmOmhpZGRlbiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG4ud2lkZ2V0LW5ldy1wcm9kdWN0cyB7XG4gICAgLnByb2R1Y3RzLWdyaWQgLnByb2R1Y3QtaW1hZ2Uge1xuICAgICAgICB3aWR0aDogNzUlO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuICAgICAgICBtYXJnaW4tbGVmdDogMTAlO1xuICAgIH1cbn1cblxuLy8gSWYgdGhlIGhlaWdodCBvZiB0aGUgLnByb2R1Y3QtaW5mbyBlbGVtZW50IGNoYW5nZXMsIHRoaXMgdmFsdWUgc2hvdWxkIGJlIGFkanVzdGVkXG4kcHJvZHVjdHNHcmlkQWN0aW9uSGVpZ2h0OiA4NXB4O1xuXG4ucHJvZHVjdHMtZ3JpZCAucHJvZHVjdC1pbmZvIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5wcm9kdWN0cy1ncmlkIC5hY3Rpb25zIHtcbiAgICBwYWRkaW5nLXRvcDogJGJveC1zcGFjaW5nO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IDBweDtcbiAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdHNHcmlkQWN0aW9uSGVpZ2h0O1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4ucHJvZHVjdHMtZ3JpZCAucmF0aW5ncyAucmF0aW5nLWJveCB7XG4gICAgbWFyZ2luOiAwIGF1dG87XG59XG5cbi5wcm9kdWN0cy1ncmlkIC5yYXRpbmdzIC5hbW91bnQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5wcm9kdWN0cy1ncmlkIC5wcmljZS1ib3gge1xuICAgIGNvbG9yOiAkYy10ZXh0LWdyYXk7XG4gICAgZm9udC1zaXplOiAkZi1zaXplLXM7XG4gICAgbWFyZ2luOiAwIDAgNXB4O1xufVxuXG4ucHJvZHVjdHMtZ3JpZCAuYWRkLXRvLWxpbmtzIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLyogQ29uZmlnOiBUd28gY29sdW1ucyArIGZsZXhpYmxlIGd1dHRlciAqL1xuXG4vLyBDb250YWluZXI6IDQ4MCAtICgyICogMjAgdHJpbSkgPSA0NDBcbi8vIE1hdGg6ICg0NDAgLSAoMjAgZ3V0dGVyKSkgLyAyIGl0ZW1zID0gMjEwXG5cbi5wcm9kdWN0cy1ncmlkID4gbGkge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiBwZXJjZW50YWdlKDIxMCAvIDQ0MCk7XG4gICAgbWFyZ2luLXJpZ2h0OiBwZXJjZW50YWdlKDIwIC8gNDQwKTtcbn1cblxuLnByb2R1Y3RzLWdyaWQgPiBsaTpudGgtY2hpbGQob2RkKSB7XG4gICAgY2xlYXI6IGxlZnQ7XG59XG5cbi5wcm9kdWN0cy1ncmlkID4gbGk6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG59XG5cbi5wcm9kdWN0cy1ncmlkIC5wcm9kdWN0LWltYWdlIHtcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG5cbiAgICBAaW5jbHVkZSBsb2FkaW5nT3ZlcmxheSgpO1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuQGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAteHNtYWxsICsgMSkge1xuICAgIC8qIENvbmZpZzogVGhyZWUgY29sdW1ucyArIGZsZXhpYmxlIGd1dHRlciAqL1xuICAgIC8vIENvbnRhaW5lcjogNjAwIC0gKDIgKiAzMCB0cmltIHdpZGUpID0gNTQwXG4gICAgJGNvbHVtbi1jb3VudDogMztcbiAgICAkY29sdW1uLWd1dHRlcnM6IDI7XG4gICAgJGNvbnRhaW5lcjogNjAwIC0gKDIgKiAkdHJpbSk7XG5cbiAgICAvLyBNYXRoOiAoNTQwIC0gKDIgKiAzMCBndXR0ZXIpKSAvIDMgaXRlbXMgPSAxNjBcbiAgICAkY29sdW1uLXdpZHRoOiAoJGNvbnRhaW5lciAtICgkY29sdW1uLWd1dHRlcnMgKiAkcHJvZHVjdC1jb2x1bW4tc3BhY2luZykpIC8gJGNvbHVtbi1jb3VudDtcblxuICAgIC5wcm9kdWN0cy1ncmlkIHtcbiAgICAgICAgLyogVW5kbyB0d28tY29sdW1uIGNvbmZpZyAqL1xuICAgICAgICA+IGxpOm50aC1jaGlsZChvZGQpIHtcbiAgICAgICAgICAgIGNsZWFyOiBub25lO1xuICAgICAgICB9XG4gICAgICAgID4gbGk6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogcGVyY2VudGFnZSgkcHJvZHVjdC1jb2x1bW4tc3BhY2luZyAvICRjb250YWluZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgLyogU2V0IHRocmVlLWNvbHVtbiBjb25maWcgKi9cbiAgICAgICAgPiBsaSB7XG4gICAgICAgICAgICB3aWR0aDogcGVyY2VudGFnZSgkY29sdW1uLXdpZHRoIC8gJGNvbnRhaW5lcik7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IHBlcmNlbnRhZ2UoJHByb2R1Y3QtY29sdW1uLXNwYWNpbmcgLyAkY29udGFpbmVyKTtcbiAgICAgICAgfVxuICAgICAgICA+IGxpOm50aC1jaGlsZCgjeyRjb2x1bW4tY291bnR9bisxKSB7XG4gICAgICAgICAgICBjbGVhcjogbGVmdDtcbiAgICAgICAgfVxuICAgICAgICA+IGxpOm50aC1jaGlsZCgjeyRjb2x1bW4tY291bnR9bikge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyBUaGlzIG1peGluIG91dHB1dHMgdGhlIHN0eWxlcyB0byBhbGxvdyBmb3IgZ3JpZHMgd2l0aCBtb3JlIHRoYW4gMyBjb2x1bW5zXG5AbWl4aW4gcHJvZHVjdC1ncmlkKCRjb2x1bW4tY291bnQsICRjb250YWluZXItd2lkdGgsICRjbGFzcy1hcHBlbmQ6XCJcIikge1xuXG4gICAgLy8gQWxsb3cgdGhpcyBtaXhpbiB0byBiZSB1c2VkIGZvciBtb3JlIHNwZWNpZmljIHB1cnBvc2VzLCBzdWNoIGFzIGdyaWRzIGNvbnRhaW5lZCB3aXRoaW4gd2lkZ2V0c1xuICAgIEBpZiAkY2xhc3MtYXBwZW5kICE9IFwiXCIge1xuICAgICAgICAkY2xhc3MtYXBwZW5kOiAtI3skY2xhc3MtYXBwZW5kfTtcbiAgICB9XG5cbiAgICAvKiBDb25maWc6IENvbHVtbnMgKyBmbGV4aWJsZSBndXR0ZXIgKi9cbiAgICAkY29sdW1uLWd1dHRlcnM6ICgkY29sdW1uLWNvdW50KSAtIDE7XG4gICAgJGNvbnRhaW5lcjogJGNvbnRhaW5lci13aWR0aCAtICgyICogJHRyaW0pO1xuICAgICRjb2x1bW4td2lkdGg6ICgkY29udGFpbmVyIC0gKCRjb2x1bW4tZ3V0dGVycyAqICRwcm9kdWN0LWNvbHVtbi1zcGFjaW5nKSkgLyAkY29sdW1uLWNvdW50O1xuXG4gICAgLyogVW5kbyB0aHJlZS1jb2x1bW4gY29uZmlnICovXG4gICAgLnByb2R1Y3RzLWdyaWQtLW1heC0jeyRjb2x1bW4tY291bnR9LWNvbCN7JGNsYXNzLWFwcGVuZH0gPiBsaTpudGgtY2hpbGQob2RkKSB7XG4gICAgICAgIGNsZWFyOiBub25lO1xuICAgIH1cbiAgICAucHJvZHVjdHMtZ3JpZC0tbWF4LSN7JGNvbHVtbi1jb3VudH0tY29sI3skY2xhc3MtYXBwZW5kfSA+IGxpOm50aC1jaGlsZCgzbisxKSB7XG4gICAgICAgIGNsZWFyOiBub25lO1xuICAgIH1cbiAgICAucHJvZHVjdHMtZ3JpZC0tbWF4LSN7JGNvbHVtbi1jb3VudH0tY29sI3skY2xhc3MtYXBwZW5kfSA+IGxpOm50aC1jaGlsZChldmVuKSxcbiAgICAucHJvZHVjdHMtZ3JpZC0tbWF4LSN7JGNvbHVtbi1jb3VudH0tY29sI3skY2xhc3MtYXBwZW5kfSA+IGxpOm50aC1jaGlsZCgzbikge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IHBlcmNlbnRhZ2UoJHByb2R1Y3QtY29sdW1uLXNwYWNpbmcgLyAkY29udGFpbmVyKTtcbiAgICB9XG5cbiAgICAvKiBTZXQgY29sdW1uIGNvbmZpZyAqL1xuICAgIC5wcm9kdWN0cy1ncmlkLS1tYXgtI3skY29sdW1uLWNvdW50fS1jb2wjeyRjbGFzcy1hcHBlbmR9ID4gbGkge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IHBlcmNlbnRhZ2UoJHByb2R1Y3QtY29sdW1uLXNwYWNpbmcgLyAkY29udGFpbmVyKTtcbiAgICB9XG4gICAgLnByb2R1Y3RzLWdyaWQtLW1heC0jeyRjb2x1bW4tY291bnR9LWNvbCN7JGNsYXNzLWFwcGVuZH0gPiBsaSB7XG4gICAgICAgIHdpZHRoOiBwZXJjZW50YWdlKCRjb2x1bW4td2lkdGggLyAkY29udGFpbmVyKTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBwZXJjZW50YWdlKCRwcm9kdWN0LWNvbHVtbi1zcGFjaW5nIC8gJGNvbnRhaW5lcik7XG4gICAgfVxuICAgIC5wcm9kdWN0cy1ncmlkLS1tYXgtI3skY29sdW1uLWNvdW50fS1jb2wjeyRjbGFzcy1hcHBlbmR9ID4gbGk6bnRoLWNoaWxkKCN7JGNvbHVtbi1jb3VudH1uKzEpIHtcbiAgICAgICAgY2xlYXI6IGxlZnQ7XG4gICAgfVxuICAgIC5wcm9kdWN0cy1ncmlkLS1tYXgtI3skY29sdW1uLWNvdW50fS1jb2wjeyRjbGFzcy1hcHBlbmR9ID4gbGk6bnRoLWNoaWxkKCN7JGNvbHVtbi1jb3VudH1uKSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICB9XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5AaW5jbHVkZSBicChtaW4td2lkdGgsIDk2MHB4KSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncmlkKDQsIDk2MCk7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncmlkKDUsIDk2MCk7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncmlkKDYsIDk2MCk7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIFByb2R1Y3QgTGlzdFxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnByb2R1Y3RzLWxpc3Qge1xuICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcblxuICAgICYgPiBsaSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAyMHB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGMtbW9kdWxlLWJvcmRlci1saWdodDtcblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICAgICAgICB9XG4gICAgICAgIC5wcm9kdWN0LWltYWdlIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgd2lkdGg6IHBlcmNlbnRhZ2UoMS8zKTtcblxuICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgJiA+IGxpOmxhc3QtY2hpbGQge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICB9XG59XG5cbi5wcm9kdWN0cy1saXN0IC5wcm9kdWN0LXNob3Age1xuICAgIGZsb2F0OiByaWdodDtcbiAgICB3aWR0aDogcGVyY2VudGFnZSgyLzMpO1xuICAgIHBhZGRpbmctbGVmdDogKCRib3gtc3BhY2luZyAqIDIpO1xuXG4gICAgLnByb2R1Y3QtbmFtZSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICAgIC5yYXRpbmdzIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgIC5yYXRpbmctYm94LFxuICAgICAgICAucmF0aW5nLWxpbmtzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAkZWxlbWVudC1zcGFjaW5nO1xuICAgICAgICB9XG4gICAgICAgIC5yYXRpbmctbGlua3Mge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogNHB4O1xuICAgICAgICB9XG4gICAgfVxuICAgIC5wcmljZS1ib3gge1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgIH1cbiAgICAucHJpY2UtYm94IC5wcmljZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogJGYtc2l6ZS14eGw7XG4gICAgfVxuICAgIC5hY3Rpb24ge1xuICAgICAgICBtYXJnaW46ICRlbGVtZW50LXNwYWNpbmcgMDtcbiAgICB9XG4gICAgLmRlc2Mge1xuICAgICAgICBtYXJnaW4tdG9wOiAkZWxlbWVudC1zcGFjaW5nO1xuICAgIH1cblxuICAgIC5wcm9kdWN0LXByaW1hcnksXG4gICAgLmRlc2Mge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgd2lkdGg6IDY1JTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB9XG4gICAgLnByb2R1Y3Qtc2Vjb25kYXJ5IHtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICB3aWR0aDogMzUlO1xuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgY2xlYXI6IHJpZ2h0O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAteHNtYWxsICsgMSkge1xuICAgIC5wcm9kdWN0cy1saXN0IC5wcm9kdWN0LW5hbWUgYSB7XG4gICAgICAgIGZvbnQtc2l6ZTogJGYtc2l6ZS14eGw7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBicChtYXgtd2lkdGgsIDEyNzlweCkge1xuICAgIC5wcm9kdWN0cy1saXN0IC5wcm9kdWN0LXNob3Age1xuICAgICAgICAucHJvZHVjdC1wcmltYXJ5LFxuICAgICAgICAuZGVzYyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIHdpZHRoOiA2MCU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAyMHB4O1xuICAgICAgICB9XG4gICAgICAgIC5wcm9kdWN0LXNlY29uZGFyeSB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICB3aWR0aDogNDAlO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AaW5jbHVkZSBicChtYXgtd2lkdGgsIDYwMHB4KSB7XG4gICAgLnByb2R1Y3RzLWxpc3QgLnByb2R1Y3Qtc2hvcCAucHJpY2UtYm94IC5zcGVjaWFsLXByaWNlIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIH1cbiAgICAucHJvZHVjdHMtbGlzdCAucHJvZHVjdC1zaG9wIHtcbiAgICAgICAgLnByb2R1Y3QtcHJpbWFyeSxcbiAgICAgICAgLnByb2R1Y3Qtc2Vjb25kYXJ5LFxuICAgICAgICAuZGVzYyB7XG4gICAgICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIE1pbmkgUHJvZHVjdCBMaXN0XG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4ubWluaS1wcm9kdWN0cy1saXN0IHtcblxuICAgIC5wcm9kdWN0LWltYWdlIHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIG1pbi13aWR0aDogNTBweDtcbiAgICB9XG4gICAgLnByb2R1Y3QtZGV0YWlscyB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA2MHB4O1xuICAgIH1cblxuICAgIC8vIFZlcnRpY2FsbHkgY2VudGVyIHByb2R1Y3QgbmFtZVxuICAgIC5wcm9kdWN0LWRldGFpbHMgLnByb2R1Y3QtbmFtZSB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAxMHB4O1xuICAgIH1cblxuICAgIGxpIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJGdhcDtcbiAgICAgICAgY2xlYXI6IGJvdGg7XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjbGVhcmZpeCgpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubWluaS1wcm9kdWN0cy1pbWFnZXMtbGlzdCB7XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgfVxuXG4gICAgbGkuaXRlbSB7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IDAgNXB4IDEwcHggMDtcblxuICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiA1cHg7XG4gICAgICAgIH1cblxuICAgICAgICAucHJvZHVjdC1pbWFnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbn1cblxuXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIENhdGFsb2cgLSBMaXN0XG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4uY2F0ZWdvcnktaW1hZ2Uge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRjLW1vZHVsZS1ib3JkZXI7XG4gICAgcGFkZGluZzogMTBweDtcblxuICAgIGltZyB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpoaWRkZW4ge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogTGF5ZXJlZCBOYXZpZ2F0aW9uXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4uYmxvY2stbGF5ZXJlZC1uYXYgLmJsb2NrLXN1YnRpdGxlLS1maWx0ZXIge1xuICAgIC8vIFdpbGwgYmUgc2hvd24gYXQgc21hbGxlciB2aWV3cG9ydHNcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIEBpbmNsdWRlIGFjY29yZGlvbkR0QmFzZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5ibG9jay1sYXllcmVkLW5hdiAuYmxvY2stY29udGVudCB7XG4gICAgLy8gQWNjb3JkaW9ucyBhcmUgZnVsbHkgZXhwYW5kZWQgdW50aWwgYSBzbWFsbGVyIHJlc29sdXRpb24uXG4gICAgQGluY2x1ZGUgYWNjb3JkaW9uO1xufVxuXG4uYmxvY2stbGF5ZXJlZC1uYXYgZGwgZGQge1xuICAgIG1hcmdpbi1ib3R0b206ICRib3gtc3BhY2luZztcbiAgICBtYXJnaW4tdG9wOiAkYm94LXNwYWNpbmc7XG5cbiAgICBvbCA+IGxpID4gc3Bhbiwgb2wgPiBsaSA+IGEge1xuICAgICAgICBwYWRkaW5nOiA1cHggMTVweDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICAgIG9sID4gbGkgPiBhIC5jb3VudCB7XG4gICAgICAgIGNvbG9yOiAkYy10ZXh0LWdyYXk7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBicChtaW4td2lkdGgsICRicC1tZWRpdW0rMSkge1xuICAgIC5ibG9jay1sYXllcmVkLW5hdiAuYmxvY2stY29udGVudCA+IGRsID4gZHQge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AaW5jbHVkZSBicChtYXgtd2lkdGgsICRicC1tZWRpdW0pIHtcbiAgICAuc2lkZWJhciAuYmxvY2suYmxvY2stbGF5ZXJlZC1uYXYge1xuICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgIH1cblxuICAgIC8vIFdlIGRvbid0IHdhbnQgXCJTaG9wIEJ5XCIgdG8gc2hvdyB3aGVuIHRoZXJlIGFyZSBubyBmaWx0ZXJzIGFwcGxpZWQsIGFzIHRoZSBcIkZpbHRlclwiIGxpbmsgd2lsbCBzdWZmaWNlXG4gICAgLmJsb2NrLWxheWVyZWQtbmF2LS1uby1maWx0ZXJzIC5ibG9jay10aXRsZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLy8gUmVtb3ZlIHRoZSB0b3AgcGFkZGluZyBhbmQgcmUtYWRkIGl0IGFzIG1hcmdpbi10b3Agc28gdGhhdCB0aGUgbWFyZ2luIHdpbGwgY29sbGFwc2Ugd2l0aCBlbGVtZW50cyBhYm92ZSBpdFxuICAgIC5ibG9jay1sYXllcmVkLW5hdiAuYmxvY2stY29udGVudCB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgICBtYXJnaW4tdG9wOiAxNXB4O1xuICAgICAgICBAaW5jbHVkZSBhY2NvcmRpb25Db2xsYXBzZTtcbiAgICB9XG5cbiAgICAuYmxvY2stbGF5ZXJlZC1uYXYgLmJsb2NrLXN1YnRpdGxlLS1maWx0ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYy1hY3Rpb247XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGNvbG9yOiAjRkZGRkZGO1xuXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgdHJpYW5nbGUocmlnaHQsIDRweCwgI0ZGRkZGRik7XG4gICAgICAgICAgICByaWdodDogMTBweDtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogLTVweDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGMtYnV0dG9uLWhvdmVyO1xuICAgICAgICAgICAgY29sb3I6ICNGRkZGRkY7XG4gICAgICAgIH1cblxuICAgICAgICAmLmFjdGl2ZTphZnRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0cmlhbmdsZShkb3duLCA0cHgsICNGRkZGRkYpO1xuICAgICAgICAgICAgcmlnaHQ6IDEwcHg7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IC0zcHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAjbmFycm93LWJ5LWxpc3QsXG4gICAgI25hcnJvdy1ieS1saXN0MiB7XG4gICAgICAgIHBhZGRpbmc6ICRib3gtc3BhY2luZztcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGMtbW9kdWxlLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXRvcDogMDtcbiAgICB9XG5cbiAgICAuYmxvY2stbGF5ZXJlZC1uYXYgZGwgb2wgPiBsaSA+IGEsXG4gICAgLmJsb2NrLWxheWVyZWQtbmF2IGRsIG9sID4gbGkgPiBzcGFuIHtcbiAgICAgICAgcGFkZGluZzogN3B4O1xuICAgICAgICBtYXJnaW46IDVweDtcbiAgICB9XG5cbiAgICAuYmxvY2stbGF5ZXJlZC1uYXYgZGwgb2wgPiBsaSA+IGEge1xuICAgICAgICBAaW5jbHVkZSB0b3VjaC1idXR0b247XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkYy1tb2R1bGUtYmFja2dyb3VuZC1ob3ZlcjtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmJsb2NrLWxheWVyZWQtbmF2IC5jdXJyZW50bHkge1xuICAgIC5ibG9jay1zdWJ0aXRsZSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBAaW5jbHVkZSBoNDtcbiAgICB9XG5cbiAgICBvbCB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogJGJveC1zcGFjaW5nO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkYm94LXNwYWNpbmc7XG4gICAgfVxuICAgIG9sIGxpIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuXG4gICAgICAgIC5sYWJlbCB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5ibG9jay1sYXllcmVkLW5hdiAuYWN0aW9ucyB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgbWFyZ2luLWJvdHRvbTogJGVsZW1lbnQtc3BhY2luZztcbn1cblxuLmNvbDEtbGF5b3V0LXNlYXJjaHJlc3VsdHMge1xuICAgIC5jb2wtbWFpbiB7XG4gICAgICAgIC8vcGFkZGluZzogJHRyaW0gMDtcbiAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgIG1heC13aWR0aDogNjgwcHg7XG4gICAgICAgIG1hcmdpbjogYXV0bztcbiAgICB9XG5cbn1cblxuLmNvbDEtbGF5b3V0LXByb2R1Y3RvdmVydmlldyB7XG4gICAgLm1haW4tY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICNoZWFkZXItbmF2IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZCAkYy1kYXJrYmx1ZTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206ICR0cmltO1xuICAgIH1cblxuICAgIC5mb290ZXIge1xuICAgICAgICBib3JkZXItdG9wOiBub25lO1xuICAgIH1cblxuICAgIC5jb2wtbWFpbiB7XG4gICAgICAgIC8vcGFkZGluZzogJHRyaW0gMDtcbiAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgIG1heC13aWR0aDogNjgwcHg7XG4gICAgICAgIG1hcmdpbjogYXV0bztcbiAgICB9XG5cbiAgICAucHJvZHVjdC1yb3cge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICRjLWRhcmtibHVlO1xuICAgICAgICBwYWRkaW5nOiAkdHJpbTtcbiAgICAgICAgaDIge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICR0cmltLXM7XG4gICAgICAgIH1cbiAgICAgICAgLnByb2R1Y3QtY29sIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuICAgICAgICAucHJvZHVjdC1jb2wtaW1hZ2Uge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAyNjBweDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDgwJTtcbiAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAyNjBweDtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogJHRyaW07XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLXNtYWxsICsgMSkge1xuXG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5wcm9kdWN0LWNvbCwgLnByb2R1Y3QtY29sLWltYWdlICB7XG4gICAgICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0OyBcbiAgICAgICAgICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAgJHRyaW0teHM7XG4gICAgICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5wcm9kdWN0LWNvbCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDkwcHg7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDkwcHg7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5wcm9kdWN0LWNvbC1pbWFnZSB7XG4gICAgICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAyNjBweDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKXtcbiAgICAgICAgICAgICAgICAucHJvZHVjdC1jb2wtaW1hZ2Uge1xuICAgICAgICAgICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC5wcm9kdWN0LWNvbCB7XG4gICAgICAgICAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuICAgICAgICBcbiAgICB9XG59XG4uY29sMS1sYXlvdXQtcHJvZHVjdG92ZXJ2aWV3LCAuY2F0ZWdvcnktbGlzdCB7XG4gICAgLmZvb3RlciB7XG4gICAgICAgIGJvcmRlci10b3A6IG5vbmU7XG4gICAgfVxufVxuXG4uY2F0ZWdvcnktdGl0bGUge1xuICAgIHBhZGRpbmc6ICR0cmltIDA7XG4gICAgIEBpbmNsdWRlIGJwKG1heC13aWR0aCwgJGJwLWxhcmdlICsgMSkge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDVweDtcbiAgICAgICAgfVxuICAgIGJvcmRlci10b3A6IDFweCBkb3R0ZWQgJGMtZGFya2JsdWU7XG4gICAgLmNvbC1tYWluIHtcbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGJwKG1heC13aWR0aCwgJGJwLWxhcmdlICsgMSkge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgfVxuXG4gICAgLmNvbC1yaWdodCB7XG4gICAgICAgIEBpbmNsdWRlIGJwKG1heC13aWR0aCwgJGJwLWxhcmdlICsgMSkge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgXG4gICAgLmNhdGVnb3J5LWltYWdlLXdyYXBwZXIsIC5jYXRlZ29yeS10aXRsZS13cmFwcGVyLCAubGlnaHRib3gtY29udGVudC1saW5rLmRlc2t0b3Age1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIEBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLXNtYWxsICsgMSkge1xuICAgICAgICAgICAgaGVpZ2h0OiAyNjBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGJwKG1pbi13aWR0aCwgMTAyNHB4KSB7XG4gICAgICAgICAgICBoZWlnaHQ6IDM0MHB4O1xuICAgICAgICB9XG5cbiAgICB9XG4gICBcbiAgICAuY2F0ZWdvcnktaW1hZ2Utd3JhcHBlciwgLmNhdGVnb3J5LXRpdGxlLXdyYXBwZXIge1xuXG4gICAgICAgIGgxIHtcbiAgICAgICAgICAgIC5zdWJsaW5lIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGMtYWN0aW9uO1xuICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGYtc2l6ZS14eGw7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDI4cHg7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIEBpbmNsdWRlIGJwKG1heC13aWR0aCwgJGJwLXNtYWxsKSB7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDYwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87IFxuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgICAgIFxuICAgICAgICBAaW5jbHVkZSBicChtaW4td2lkdGgsICRicC1zbWFsbCArIDEpIHtcbiAgICAgICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcblxuICAgICAgICAgICAgaW1nLCAuY2F0ZWdvcnktdGl0bGUtaW5uZXIge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgIH1cbiAgICAuY2F0ZWdvcnktaW1hZ2Utd3JhcHBlciB7XG4gICAgICBcbiAgICAgICAgQGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtc21hbGwgKyAxKSB7XG4gICAgXG4gICAgICAgICAgICBpbWcge1xuXG4gICAgICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC02MCUsIC01MCUpO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAyNXB4O1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMzAwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubGlnaHRib3gtY29udGVudC1saW5rIHsgXG5cbiAgICAgICAgQGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtbGFyZ2UgKzEpIHtcbiAgICAgICAgICAgICYubW9iaWxlIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfSAgXG4gICAgICAgIH1cblxuXG4gICAgICAgIFxuXG4gICAgICAgICYuZGVza3RvcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAgICAgICAubGlnaHRib3gtY29udGVudC1saW5rLWlubmVyIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9ICBcblxuICAgICAgICBAaW5jbHVkZSBicChtaW4td2lkdGgsICRicC1sYXJnZSArMSkge1xuICAgICAgICAgICAgJi5kZXNrdG9wIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH0gIFxuICAgICAgICB9XG5cbiAgICAgICAgYSB7XG4gICAgICAgICAgICBtYXJnaW46IDVweCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgXG4gICAgfVxuXG4gICAgaDEge1xuICAgICAgICBmb250LXNpemU6ICRmLXNpemUteHh4bDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICBAaW5jbHVkZSBicChtYXgtd2lkdGgsICRicC1zbWFsbCkgeyBcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XG4gICAgICAgIH1cbiAgICB9XG5cblxuXG5cbn1cblxuLnByb2R1Y3QtY29sbGVjdGlvbnMge1xuICAgIGJvcmRlci10b3A6IDFweCBkb3R0ZWQgJGMtZGFya2JsdWU7XG5cbiAgICAuc2lkZWJhciB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAkdHJpbTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206ICR0cmltO1xuXG4gICAgICAgIGgzLCBoNCB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkdHJpbTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGYtc2l6ZS14bDtcbiAgICAgICAgfVxuXG4gICAgICAgIGgzLnN1cHBvcnQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZCAkYy1kYXJrYmx1ZTtcbiAgICAgICAgICAgIC8vbWFyZ2luLWJvdHRvbTogJHRyaW0tcztcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAkdHJpbS14cztcbiAgICAgICAgfVxuXG4gICAgICAgIHAgYSB7XG4gICAgICAgICAgICBjb2xvcjogJGMtdGV4dDtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGMtYWN0aW9uO1xuXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAucGhvbmUge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZi1zaXplLXh4bDtcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAkZi1zdGFjay1zcGVjaWFsO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogJHRyaW0teHM7XG4gICAgICAgIH1cbiAgICB9XG59XG5cblxuLnByb2R1Y3QtY2F0ZWdvcnkge1xuICAgIHBhZGRpbmc6ICR0cmltIDA7XG5cbiAgICB1bCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtMTVweDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtMTVweDtcbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICAgICAgfVxuICAgICAgICBsaS5wcm9kdWN0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgd2lkdGg6IDUwJTsgXG4gICAgICAgICAgICBwYWRkaW5nOiAxNXB4O1xuICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICBpbWcucHJvZHVjdC1pbWFnZSB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiBub25lO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG5cbiAgICAgICAgICAgIC5wcm9kdWN0LXRpdGxlIHtcblxuICAgICAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGMtZGFya2JsdWU7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkYy1hY3Rpb247XG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAxNXB4IDA7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZCAkYy1kYXJrYmx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIFxuXG59XG5cbkBpbmNsdWRlIGJwKG1heC13aWR0aCwgJGJwLXNtYWxsKSB7XG4gICAgLmNhdGFsb2ctY2F0ZWdvcnktdmlldyB7XG4gICAgICAgIC5jb2wtcmlnaHQgLnNlYXJjaF9taW5pX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfSAgXG4gICAgfVxufVxuXG5cblxuXG4iLCIvL1xuLy8gTWFnZW50b1xuLy9cbi8vIE5PVElDRSBPRiBMSUNFTlNFXG4vL1xuLy8gVGhpcyBzb3VyY2UgZmlsZSBpcyBzdWJqZWN0IHRvIHRoZSBBY2FkZW1pYyBGcmVlIExpY2Vuc2UgKEFGTCAzLjApXG4vLyB0aGF0IGlzIGJ1bmRsZWQgd2l0aCB0aGlzIHBhY2thZ2UgaW4gdGhlIGZpbGUgTElDRU5TRV9BRkwudHh0LlxuLy8gSXQgaXMgYWxzbyBhdmFpbGFibGUgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIgYXQgdGhpcyBVUkw6XG4vLyBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYWZsLTMuMC5waHBcbi8vIElmIHlvdSBkaWQgbm90IHJlY2VpdmUgYSBjb3B5IG9mIHRoZSBsaWNlbnNlIGFuZCBhcmUgdW5hYmxlIHRvXG4vLyBvYnRhaW4gaXQgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIsIHBsZWFzZSBzZW5kIGFuIGVtYWlsXG4vLyB0byBsaWNlbnNlQG1hZ2VudG8uY29tIHNvIHdlIGNhbiBzZW5kIHlvdSBhIGNvcHkgaW1tZWRpYXRlbHkuXG4vL1xuLy8gRElTQ0xBSU1FUlxuLy9cbi8vIERvIG5vdCBlZGl0IG9yIGFkZCB0byB0aGlzIGZpbGUgaWYgeW91IHdpc2ggdG8gdXBncmFkZSBNYWdlbnRvIHRvIG5ld2VyXG4vLyB2ZXJzaW9ucyBpbiB0aGUgZnV0dXJlLiBJZiB5b3Ugd2lzaCB0byBjdXN0b21pemUgTWFnZW50byBmb3IgeW91clxuLy8gbmVlZHMgcGxlYXNlIHJlZmVyIHRvIGh0dHA6Ly93d3cubWFnZW50by5jb20gZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4vL1xuLy8gQGNhdGVnb3J5ICAgIGRlc2lnblxuLy8gQHBhY2thZ2UgICAgIHJ3ZF9kZWZhdWx0XG4vLyBAY29weXJpZ2h0ICAgQ29weXJpZ2h0IChjKSAyMDA2LTIwMTYgWC5jb21tZXJjZSwgSW5jLiBhbmQgYWZmaWxpYXRlcyAoaHR0cDovL3d3dy5tYWdlbnRvLmNvbSlcbi8vIEBsaWNlbnNlICAgICBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYWZsLTMuMC5waHAgIEFjYWRlbWljIEZyZWUgTGljZW5zZSAoQUZMIDMuMClcbi8vXG5cbkBtaXhpbiBsb2FkaW5nT3ZlcmxheSgkb3BhY2l0eTogMC44KSB7XG4gICAgJjpiZWZvcmUsXG4gICAgJjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6Jyc7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwcHg7XG4gICAgICAgIGxlZnQ6IDBweDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgICAgICBvcGFjaXR5OiAkb3BhY2l0eTtcbiAgICAgICAgei1pbmRleDoyO1xuICAgIH1cblxuICAgICY6YWZ0ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltYWdlcy9vcGMtYWpheC1sb2FkZXIuZ2lmJyk7XG4gICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgei1pbmRleDozO1xuICAgIH1cblxuICAgICYubG9hZGluZyB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmOmJlZm9yZSxcbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi5wcm9kdWN0LXZpZXcge1xuXG4gICAgLmNhdGVnb3J5LW5hbWUge1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIH1cbiAgICAjYWpheC1za3UsICNoaWRkZW4tYWpheC1za3Uge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgICNhamF4LXNrdSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDVweDtcbiAgICB9XG5cbiAgICAjaW1hZ2UtbWFpbiB7XG4gICAgICAgIHdpZHRoOiAxMjAlO1xuICAgICAgICBtYXgtd2lkdGg6IDEyMCU7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtMTAlO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLXNtYWxsKzEpe1xuICAgICAgICAucHJvZHVjdC1jb2wtaW1nLWJveCwgLnByb2R1Y3QtaW5mb3JtYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDE1cHg7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgfVxuICAgIH0gXG4gICAgQGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtbWVkaXVtKzEpeyBcbiAgICAgICAgLnByb2R1Y3QtaW5mb3JtYXRpb24ge1xuICAgICAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIH1cbiAgICAgICAgLnByb2R1Y3QtY29sLWltZy1ib3gsIC5wcm9kdWN0LWNvbC1kZXNjcmlwdGlvbiwgLnByb2R1Y3QtY29sLXByaWNlIHtcbiAgICAgICAgICAgIHdpZHRoOiAzMy4zMyU7XG4gICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAgcGFkZGluZzogMCAxNXB4O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLnByb2R1Y3QtY29sLWRlc2NyaXB0aW9uLCAucHJvZHVjdC1jb2wtcHJpY2Uge1xuICAgICAgICBAaW5jbHVkZSBicChtaW4td2lkdGgsICRicC1zbWFsbCsxKXsgXG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogNjBweDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuc2hvcnQtZGVzY3JpcHRpb24ge1xuICAgICAgICAgQGluY2x1ZGUgYnAobWF4LXdpZHRoLCAkYnAtc21hbGwpeyBcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAyMHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnByb2R1Y3QtY29sLWRlc2NyaXB0aW9uIHtcbiAgICAgICAgLnByb2R1Y3Qtb3B0aW9ucyB7XG4gICAgICAgICAgICBsYWJlbCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAxcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuc2FtcGxlLXJlcXVlc3Qge1xuICAgICAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkdHJpbTtcbiAgICAgICAgQGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtbWVkaXVtKzEpeyBcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICR0cmltLXMgKiAyO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5ncmFkdWF0ZWQtbGluayB7XG4gICAgICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgfVxuICAgIC5wcm9kdWN0LWVzc2VudGlhbCB7XG4gICAgICAgIC5wcm9kdWN0LW5hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRjLWxpZ2h0Ymx1ZTtcbiAgICAgICAgfVxuICAgICAgICAucHJvZHVjdC1jb2wtaW1nLWJveCB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG5cbiAgICAgICAgICAgIC5wcm9kdWN0LXNoYXJlIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAkdHJpbTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBicChtYXgtd2lkdGgsICRicC1zbWFsbCl7IFxuICAgICAgICAgICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDMycHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDMycHg7IFxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBicChtaW4td2lkdGgsICRicC1zbWFsbCsxKXsgXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICR0cmltO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAucHJvZHVjdC12aWV3LXRvcCB7XG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBkb3R0ZWQgJGMtZGFya2JsdWU7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogJHRyaW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLXNtYWxsKzEpeyBcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogJHRyaW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLnByb2R1Y3QtY29sLXByaWNlIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgICAgICBAaW5jbHVkZSBicChtYXgtd2lkdGgsICRicC1zbWFsbCl7IFxuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogJHRyaW0tcztcbiAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC5wcm9kdWN0LW9wdGlvbnMtYm90dG9tIC5wcmljZS1ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgICAucHJvZHVjdC1vcHRpb25zLWJvdHRvbSAuYWRkLXRvLWNhcnQgLnF0eS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgICAgcC5yZXF1aXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgICAgIC5wcm9kdWN0LW9wdGlvbnMge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6ICR0cmltLXM7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkdHJpbS1zO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IGRvdHRlZCAkYy1kYXJrYmx1ZTtcblxuICAgICAgICAgICAgZGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLnByaWNlLWJveCAucHJpY2UsIC5wcmljZSwgLmNvbmZpZ3VyYWJsZS1wcmljZS1mcm9tLWxhYmVsIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogNDBweDtcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAkZi1zdGFjay1zcGVjaWFsO1xuICAgICAgICAgICAgY29sb3I6ICRjLXRleHQ7XG4gICAgICAgIH1cbiAgICAgICAgLnByaWNlLWJveCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgfVxuICAgICAgICAuYXZhaWxhYmlsaXR5LmluLXN0b2NrIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgICAgLnByaWNlLWluZm8ge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDIwcHg7ICAgIFxuICAgICAgICAgICAgQGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtc21hbGwrMSl7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNzBweDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwOyAgXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLnByb2R1Y3Qtdmlldy1kZXRhaWxzIHtcbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICAgICAgfVxuICAgICAgICBtYXJnaW46ICR0cmltIDA7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgIHBhZGRpbmc6ICR0cmltLXMgMDtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IGRvdHRlZCAkYy1kYXJrYmx1ZTtcbiAgICB9XG4gICAgQGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtbWVkaXVtKzEpe1xuICAgICAgICAucHJvZHVjdC1jYXRlZ29yeS1uYXYsIC5wcm9kdWN0LWRldGFpbHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLnByb2R1Y3Qtdmlldy1kZXRhaWxzIHtcbiAgICAgICAgaDIsIGgzLCAuaDMsIGg0IHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGYtc2l6ZS14bDtcbiAgICAgICAgICAgIHBhZGRpbmc6ICR0cmltLXhzIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgICAgIGltZy5pbWFnZS1pY29uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IC0zcHg7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDdweDtcbiAgICAgICAgfVxuICAgICAgICAucHJvZHVjdC1kZXRhaWxzIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLW1lZGl1bSsxKXtcbiAgICAgICAgICAgIHdpZHRoOiA3NSU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5hZGRpdGlvbmFsLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtc21hbGwrMSl7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLTE1cHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdWwge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogJHRyaW0tc21hbGw7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLnNsaWRlb3V0IHtcbiAgICAgICAgICAgICAgICAgICAgaDIsIGgzIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiAxNnB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTBweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaW1hZ2VzL2ljb24tYXJyb3ctYWNjb3JkaW9uLWRvd24uc3ZnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDE0cHggMTBweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgJi5vcGVuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKGltYWdlcy9pY29uLWFycm93LWFjY29yZGlvbi11cC5zdmcpOyBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdWwge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICYub3BlbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGxpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LWluZGVudDogLThweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDhweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDRweCAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBcIi0gXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJi5uby1kYXNoOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDlweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5zaG9wLWxpc3Qge1xuICAgICAgICAgICAgICAgICAgICBhwqB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLmRvd25sb2FkLWxpc3Qge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkdHJpbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJi5kb3dubG9hZC1zaG9wIHtcbiAgICAgICAgICAgICAgICAgICAuYWRkaXRpb25hbC13cmFwcGVyICB7XG4gICAgICAgICAgICAgICAgICAgICAgICA+IGRpdiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6ICR0cmltIDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206ICR0cmltLXM7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAuc3VwcG9ydC1ibG9jayB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAkdHJpbTtcbiAgICAgICAgICAgICAgICAgICAgaDMge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAuaW5wdXQtYm94IHtcbiAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLXNtYWxsICsgMSl7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDI2MHB4O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC5pbnB1dC10ZXh0IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAzcHggc29saWQgJGMtdGV4dDtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRjLXRleHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC5zZWFyY2hfbWluaV9mb3JtIC5zZWFyY2gtYnV0dG9uOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyN3B4O1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDI5cHg7ICAgXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHVybChpbWFnZXMvaWNvbi1zZWFyY2gtZGFya2JsdWUuc3ZnKTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiAyNHB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkYy10ZXh0O1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgaW5wdXQ6LW1vei1wbGFjZWhvbGRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGMtdGV4dDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5hZGRpdGlvbmFsLXdyYXBwZXIgPiBkaXYge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQgJGMtZGFya2JsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaW5jbHVkZSBicChtaW4td2lkdGgsICRicC1zbWFsbCsxKXtcbiAgICAgICAgICAgICAgICAuYWRkaXRpb25hbC13cmFwcGVyIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICAgICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMCAkdHJpbS1zbWFsbDtcbiAgICAgICAgICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC5wcm9kdWN0LWNhdGVnb3J5LW5hdiB7IFxuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBicChtaW4td2lkdGgsICRicC1tZWRpdW0rMSl7XG4gICAgICAgICAgICAucHJvZHVjdC1jYXRlZ29yeS1uYXYge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDI1JTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkdHJpbS1zbWFsbDtcblxuICAgICAgICAgICAgICAgIHVsIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogJHRyaW0teHM7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC5ib3gtdXAtc2VsbCB7XG4gICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IGRvdHRlZCAkYy1kYXJrYmx1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5ib3gtdXAtc2VsbCwgLmJveC1jcm9zcy1zZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICR0cmltLXMgMDtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLXNtYWxsKzEpe1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6ICR0cmltICR0cmltLXNtYWxsO1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQgJGMtZGFya2JsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBoMywgaDQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYTpub3QoLnByb2R1Y3QtaW1hZ2UpIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGMtdGV4dDtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGMtdGV4dDtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMS4xO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciwgJi5hY3RpdmUge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkYy1hY3Rpb247XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJGMtYWN0aW9uO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgIFxuICAgICAgICB9XG4gICAgICAgIC5ib3gtdXAtc2VsbCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICRjLWRhcmtibHVlO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBicChtYXgtd2lkdGgsICRicC1zbWFsbCl7XG4gICAgICAgICAgICAgICAgLnNsaWNrLXNsaWRlIGltZyB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiA4MCU7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBicChtYXgtd2lkdGgsICRicC1zbWFsbCl7XG4gICAgICAgICAgICAuYm94LXVwLXNlbGwtc2xpZGVyIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTE1cHg7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtMTVweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAuYm94LXVwLXNlbGwtc2xpZGVyLCAuYm94LWNyb3NzLXNlbGwtc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLXNtYWxsKzEpe1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAgJHRyaW0qMjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnNsaWNrLXNsaWRlIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMTVweDtcbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5zbGljay1uZXh0LCAuc2xpY2stcHJldiB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogI2M5YzljOTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5zbGljay1uZXh0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLnNsaWNrLXByZXYge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5wcm9kdWN0LW5hbWUgeyBcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiA1cHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuICAgICAgICAuYm94LWNyb3NzLXNlbGwtc2xpZGVyIHsgXG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLXNtYWxsKzEpe1xuXG4gICAgICAgICAgICAgICAgLm5vLXNsaWNrLXNsaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICAgICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAgMTVweDtcblxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm5vLXNsaWNrLXNsaWRlLnNsaWNrLXNsaWRlIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cblxuICAgIH1cbn1cblxuXG5cbiIsIi8vXG4vLyBNYWdlbnRvXG4vL1xuLy8gTk9USUNFIE9GIExJQ0VOU0Vcbi8vXG4vLyBUaGlzIHNvdXJjZSBmaWxlIGlzIHN1YmplY3QgdG8gdGhlIEFjYWRlbWljIEZyZWUgTGljZW5zZSAoQUZMIDMuMClcbi8vIHRoYXQgaXMgYnVuZGxlZCB3aXRoIHRoaXMgcGFja2FnZSBpbiB0aGUgZmlsZSBMSUNFTlNFX0FGTC50eHQuXG4vLyBJdCBpcyBhbHNvIGF2YWlsYWJsZSB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiBhdCB0aGlzIFVSTDpcbi8vIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9hZmwtMy4wLnBocFxuLy8gSWYgeW91IGRpZCBub3QgcmVjZWl2ZSBhIGNvcHkgb2YgdGhlIGxpY2Vuc2UgYW5kIGFyZSB1bmFibGUgdG9cbi8vIG9idGFpbiBpdCB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiwgcGxlYXNlIHNlbmQgYW4gZW1haWxcbi8vIHRvIGxpY2Vuc2VAbWFnZW50by5jb20gc28gd2UgY2FuIHNlbmQgeW91IGEgY29weSBpbW1lZGlhdGVseS5cbi8vXG4vLyBESVNDTEFJTUVSXG4vL1xuLy8gRG8gbm90IGVkaXQgb3IgYWRkIHRvIHRoaXMgZmlsZSBpZiB5b3Ugd2lzaCB0byB1cGdyYWRlIE1hZ2VudG8gdG8gbmV3ZXJcbi8vIHZlcnNpb25zIGluIHRoZSBmdXR1cmUuIElmIHlvdSB3aXNoIHRvIGN1c3RvbWl6ZSBNYWdlbnRvIGZvciB5b3VyXG4vLyBuZWVkcyBwbGVhc2UgcmVmZXIgdG8gaHR0cDovL3d3dy5tYWdlbnRvLmNvbSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbi8vXG4vLyBAY2F0ZWdvcnkgICAgZGVzaWduXG4vLyBAcGFja2FnZSAgICAgcndkX2RlZmF1bHRcbi8vIEBjb3B5cmlnaHQgICBDb3B5cmlnaHQgKGMpIDIwMDYtMjAxNiBYLmNvbW1lcmNlLCBJbmMuIGFuZCBhZmZpbGlhdGVzIChodHRwOi8vd3d3Lm1hZ2VudG8uY29tKVxuLy8gQGxpY2Vuc2UgICAgIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9hZmwtMy4wLnBocCAgQWNhZGVtaWMgRnJlZSBMaWNlbnNlIChBRkwgMy4wKVxuLy9cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogQ2F0YWxvZyAtIE1TUlAgTUFQIFBvcHVwXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4uY2FydC1tc3JwLXRvdGFscyB7XG4gICAgY29sb3I6IHJlZDtcbiAgICBmb250LXNpemU6IDEycHggIWltcG9ydGFudDtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBtYXJnaW46IDEwcHggMTBweCAwO1xuICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxuLm1hcC1jYXJ0LXNpZGViYXItdG90YWwge1xuICAgIGNvbG9yOiByZWQ7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiAxMHB4O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgcGFkZGluZzogMnB4IDVweDtcbn1cblxuLm1hcC1wb3B1cCB7XG4gICAgYmFja2dyb3VuZDogI0ZGRkZGRjtcbiAgICBib3JkZXI6IDVweCBzb2xpZCAkYy1tb2R1bGUtYm9yZGVyO1xuICAgIG1hcmdpbjogMTJweCAwIDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgd2lkdGg6IDQ1MHB4O1xuICAgIHotaW5kZXg6IDEwMDtcblxuICAgIEBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLW1lZGl1bSArIDEpIHtcbiAgICAgICAgJi5tYXAtcG9wdXAtcmlnaHQge1xuICAgICAgICAgICAgbGVmdDogJGdhcCAhaW1wb3J0YW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi5tYXAtcG9wdXAtbGVmdCB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICByaWdodDogJGdhcCAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnAobWF4LXdpZHRoLCAkYnAtbWVkaXVtKSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBsZWZ0OiAwcHggIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAubWFwLXBvcHVwLWhlYWRpbmcge1xuICAgICAgICBwYWRkaW5nOiA4cHggMTBweDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiA0MHB4O1xuICAgICAgICB3aWR0aDogYXV0bztcblxuICAgICAgICBoMyB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmLXNpemU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblxuICAgICAgICAgICAgQGluY2x1ZGUgYnAobWF4LXdpZHRoLCAkYnAteHNtYWxsKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm1hcC1wb3B1cC1jbG9zZSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMHB4O1xuICAgICAgICByaWdodDogMHB4O1xuICAgICAgICBoZWlnaHQ6IDM2cHg7XG4gICAgICAgIHdpZHRoOiAzNnB4O1xuICAgICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAzMnB4O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgLm1hcC1wb3B1cC1jb250ZW50IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRjLW1vZHVsZS1ib3JkZXItbGlnaHQ7XG4gICAgICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgICAgIG1hcmdpbjogMCAxMHB4O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuXG4gICAgICAgIEBpbmNsdWRlIGJwKG1heC13aWR0aCwgJGJwLXhzbWFsbCkge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm1hcC1wb3B1cC1jaGVja291dCB7XG4gICAgICAgIHBhZGRpbmc6ICRnYXAgMDtcblxuICAgICAgICBmb3JtOmFmdGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICAgICAgICB9XG5cbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIC5idXR0b24ge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW46IDAgMnB4O1xuICAgICAgICAgICAgY2xlYXI6IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAuYWRkaXRpb25hbC1hZGR0b2NhcnQtYm94IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyMTBweDsgLy8gZml4IGZvciBhIHdlYi1raXQgYm94LW1vZGVsIGRpc3BsYXkgYnVnXG5cbiAgICAgICAgICAgIGxpIHtcbiAgICAgICAgICAgICAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAucGF5cGFsLWxvZ28ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG5cbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgICAgICBjbGVhcjogbGVmdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnBheXBhbC1vciB7XG4gICAgICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDVweCAxNXB4O1xuICAgICAgICAgICAgICAgIGNsZWFyOiBsZWZ0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmJtbF9idXR0b24ge1xuICAgICAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgICAgICBjbGVhcjogbGVmdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBicChtYXgtd2lkdGgsICRicC14c21hbGwpIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgLmJ1dHRvbixcbiAgICAgICAgICAgIC5hZGRpdGlvbmFsLWFkZHRvY2FydC1ib3gsXG4gICAgICAgICAgICAucGF5cGFsLWxvZ28gYSxcbiAgICAgICAgICAgIC5wYXlwYWwtbG9nbyAucGF5cGFsLW9yIHtcbiAgICAgICAgICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmFkZGl0aW9uYWwtYWRkdG9jYXJ0LWJveCB7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiAwcHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5wYXlwYWwtbG9nbyAucGF5cGFsLW9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDBweDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5tYXAtcG9wdXAtcHJpY2Uge1xuICAgICAgICBwYWRkaW5nOiAkZ2FwIDA7XG4gICAgICAgIEBpbmNsdWRlIGJwKG1heC13aWR0aCwgJGJwLXhzbWFsbCkge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wcmljZS1ib3gsXG4gICAgICAgIC5wcmljZS1ib3ggLnNwZWNpYWwtcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wcmljZS1ib3ggLm1pbmltYWwtcHJpY2UtbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubWFwLXBvcHVwLXRleHQge1xuICAgICAgICBwYWRkaW5nOiAxMHB4IDA7XG4gICAgICAgIG1hcmdpbjogMCAxMHB4O1xuICAgICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gICAgfVxuXG4gICAgLm1hcC1wb3B1cC10ZXh0LFxuICAgIC5tYXAtcG9wdXAtb25seS10ZXh0IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRjLW1vZHVsZS1ib3JkZXItbGlnaHQ7XG4gICAgfVxufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBDYXRhbG9nIC0gTVNSUCBQcm9kdWN0IExpc3RpbmdcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5wcmljZS1ib3ggLm1hcC1saW5rIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4iLCIvL1xuLy8gTWFnZW50b1xuLy9cbi8vIE5PVElDRSBPRiBMSUNFTlNFXG4vL1xuLy8gVGhpcyBzb3VyY2UgZmlsZSBpcyBzdWJqZWN0IHRvIHRoZSBBY2FkZW1pYyBGcmVlIExpY2Vuc2UgKEFGTCAzLjApXG4vLyB0aGF0IGlzIGJ1bmRsZWQgd2l0aCB0aGlzIHBhY2thZ2UgaW4gdGhlIGZpbGUgTElDRU5TRV9BRkwudHh0LlxuLy8gSXQgaXMgYWxzbyBhdmFpbGFibGUgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIgYXQgdGhpcyBVUkw6XG4vLyBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYWZsLTMuMC5waHBcbi8vIElmIHlvdSBkaWQgbm90IHJlY2VpdmUgYSBjb3B5IG9mIHRoZSBsaWNlbnNlIGFuZCBhcmUgdW5hYmxlIHRvXG4vLyBvYnRhaW4gaXQgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIsIHBsZWFzZSBzZW5kIGFuIGVtYWlsXG4vLyB0byBsaWNlbnNlQG1hZ2VudG8uY29tIHNvIHdlIGNhbiBzZW5kIHlvdSBhIGNvcHkgaW1tZWRpYXRlbHkuXG4vL1xuLy8gRElTQ0xBSU1FUlxuLy9cbi8vIERvIG5vdCBlZGl0IG9yIGFkZCB0byB0aGlzIGZpbGUgaWYgeW91IHdpc2ggdG8gdXBncmFkZSBNYWdlbnRvIHRvIG5ld2VyXG4vLyB2ZXJzaW9ucyBpbiB0aGUgZnV0dXJlLiBJZiB5b3Ugd2lzaCB0byBjdXN0b21pemUgTWFnZW50byBmb3IgeW91clxuLy8gbmVlZHMgcGxlYXNlIHJlZmVyIHRvIGh0dHA6Ly93d3cubWFnZW50by5jb20gZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4vL1xuLy8gQGNhdGVnb3J5ICAgIGRlc2lnblxuLy8gQHBhY2thZ2UgICAgIHJ3ZF9kZWZhdWx0XG4vLyBAY29weXJpZ2h0ICAgQ29weXJpZ2h0IChjKSAyMDA2LTIwMTYgWC5jb21tZXJjZSwgSW5jLiBhbmQgYWZmaWxpYXRlcyAoaHR0cDovL3d3dy5tYWdlbnRvLmNvbSlcbi8vIEBsaWNlbnNlICAgICBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYWZsLTMuMC5waHAgIEFjYWRlbWljIEZyZWUgTGljZW5zZSAoQUZMIDMuMClcbi8vXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIENhdGFsb2cgLSBDb21wYXJlXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4uYmxvY2stY29tcGFyZSAucHJvZHVjdC1uYW1lOmFmdGVyIHtcbiAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbn1cblxuLmNvbXBhcmUtdGFibGUgLnByb2R1Y3QtaW1hZ2Uge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLmNvbXBhcmUtdGFibGUge1xuICAgIC5wcm9kdWN0LXNob3Atcm93IHtcbiAgICAgICAgJi50b3AgdGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5ib3R0b20gdGQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvL1xuLy8gTWFnZW50b1xuLy9cbi8vIE5PVElDRSBPRiBMSUNFTlNFXG4vL1xuLy8gVGhpcyBzb3VyY2UgZmlsZSBpcyBzdWJqZWN0IHRvIHRoZSBBY2FkZW1pYyBGcmVlIExpY2Vuc2UgKEFGTCAzLjApXG4vLyB0aGF0IGlzIGJ1bmRsZWQgd2l0aCB0aGlzIHBhY2thZ2UgaW4gdGhlIGZpbGUgTElDRU5TRV9BRkwudHh0LlxuLy8gSXQgaXMgYWxzbyBhdmFpbGFibGUgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIgYXQgdGhpcyBVUkw6XG4vLyBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYWZsLTMuMC5waHBcbi8vIElmIHlvdSBkaWQgbm90IHJlY2VpdmUgYSBjb3B5IG9mIHRoZSBsaWNlbnNlIGFuZCBhcmUgdW5hYmxlIHRvXG4vLyBvYnRhaW4gaXQgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIsIHBsZWFzZSBzZW5kIGFuIGVtYWlsXG4vLyB0byBsaWNlbnNlQG1hZ2VudG8uY29tIHNvIHdlIGNhbiBzZW5kIHlvdSBhIGNvcHkgaW1tZWRpYXRlbHkuXG4vL1xuLy8gRElTQ0xBSU1FUlxuLy9cbi8vIERvIG5vdCBlZGl0IG9yIGFkZCB0byB0aGlzIGZpbGUgaWYgeW91IHdpc2ggdG8gdXBncmFkZSBNYWdlbnRvIHRvIG5ld2VyXG4vLyB2ZXJzaW9ucyBpbiB0aGUgZnV0dXJlLiBJZiB5b3Ugd2lzaCB0byBjdXN0b21pemUgTWFnZW50byBmb3IgeW91clxuLy8gbmVlZHMgcGxlYXNlIHJlZmVyIHRvIGh0dHA6Ly93d3cubWFnZW50by5jb20gZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4vL1xuLy8gQGNhdGVnb3J5ICAgIGRlc2lnblxuLy8gQHBhY2thZ2UgICAgIHJ3ZF9kZWZhdWx0XG4vLyBAY29weXJpZ2h0ICAgQ29weXJpZ2h0IChjKSAyMDA2LTIwMTYgWC5jb21tZXJjZSwgSW5jLiBhbmQgYWZmaWxpYXRlcyAoaHR0cDovL3d3dy5tYWdlbnRvLmNvbSlcbi8vIEBsaWNlbnNlICAgICBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYWZsLTMuMC5waHAgIEFjYWRlbWljIEZyZWUgTGljZW5zZSAoQUZMIDMuMClcbi8vXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIENoZWNrb3V0IC0gTGF5b3V0XG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG5cbi5jYXJ0IC5idXR0b24ge1xuICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XG59XG5cbi5jYXJ0IHtcbiAgICAucHJvZHVjdC1zYW1wbGUge1xuICAgICAgICBjb2xvcjogJGMtYWN0aW9uO1xuICAgICAgICBmb250LXNpemU6ICRmLXNpemUtbDtcbiAgICB9XG5cbiAgICAuY2FydC1zYW1wbGUtcXR5IHtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRmLXN0YWNrLXNhbnM7XG4gICAgfVxuXG4gICAgLnNhbXBsZS1hY3Rpb25zIHtcbiAgICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgIH1cbn1cblxuLmNhcnQtdGFibGUge1xuICAgIC5wcm9kdWN0LWNhcnQtYWN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAucHJvZHVjdC1jYXJ0LWFjdGlvbnMgYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBwYWRkaW5nOiAzcHggMTJweCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDVweDtcbiAgICAgICAgICAgIGNvbG9yOiAkYy1hY3Rpb247XG4gICAgICAgICAgICBmb250LWZhbWlseTogJGYtc3RhY2stc2FucztcbiAgICAgICAgfVxufVxuXG4uY2FydC1mb3Jtcyxcbi5jcm9zc3NlbGwge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGNsZWFyOiBsZWZ0O1xuXG4gICAgQGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtc21hbGwgKyAxKSB7XG4gICAgICAgIG1heC13aWR0aDogMzAwcHg7XG4gICAgfVxufVxuXG4uY2FydC10b3RhbHMtd3JhcHBlciB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xufVxuXG4uY2FydC1mb3JtcyAuZGlzY291bnQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5jYXJ0LXRhYmxlLFxuLmNhcnQtdG90YWxzLFxuLmNhcnQtZm9ybXMgLmRpc2NvdW50LFxuLmNhcnQtZm9ybXMgLmdpZnRjYXJkLFxuLmNhcnQtZm9ybXMgLnNoaXBwaW5nIHtcbiAgICBtYXJnaW4tYm90dG9tOiAkYm94LXNwYWNpbmctbGFyZ2U7XG59XG5cbi5jaGVja291dC1jYXJ0LWluZGV4IHtcbiAgICAjcG9zdGNvZGUge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG59XG5cbkBtaXhpbiBvbmVDb2x1bW5DYXJ0SXRlbXMge1xuICAgIC5jYXJ0LXRhYmxlIHtcbiAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIC5jYXJ0LWZvcm1zIHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6ICRib3gtc3BhY2luZztcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIH1cblxuICAgIC5jYXJ0LXRvdGFscy13cmFwcGVyLFxuICAgIC5jcm9zc3NlbGwge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6ICRib3gtc3BhY2luZztcbiAgICB9XG5cbiAgICAuY2FydC1mb3JtcyxcbiAgICAuY2FydC10b3RhbHMtd3JhcHBlcixcbiAgICAuY3Jvc3NzZWxsIHtcbiAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB9XG5cbiAgICAuY3Jvc3NzZWxsIHtcbiAgICAgICAgY2xlYXI6IHJpZ2h0O1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgfVxufVxuXG4uZGlzcGxheS1ib3RoLXByaWNlcyB7XG4gICAgQGluY2x1ZGUgb25lQ29sdW1uQ2FydEl0ZW1zO1xufVxuXG5AaW5jbHVkZSBicChtYXgtd2lkdGgsICRicC1sYXJnZSkge1xuICAgIC5kaXNwbGF5LXNpbmdsZS1wcmljZSB7XG4gICAgICAgIEBpbmNsdWRlIG9uZUNvbHVtbkNhcnRJdGVtcztcbiAgICB9XG59XG5cbkBpbmNsdWRlIGJwKG1heC13aWR0aCwgNTk5cHgpIHtcbiAgICAucHJvZHVjdC1jYXJ0LXNrdSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLmRpc3BsYXktYm90aC1wcmljZXMsXG4gICAgLmRpc3BsYXktc2luZ2xlLXByaWNlIHtcbiAgICAgICAgLmNhcnQtZm9ybXMsXG4gICAgICAgIC5jYXJ0LXRvdGFscy13cmFwcGVyLFxuICAgICAgICAuY3Jvc3NzZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5kaXNwbGF5LXNpbmdsZS1wcmljZSB7XG4gICAgJjphZnRlciB7XG4gICAgICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICAgIH1cbn1cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIENoZWNrb3V0IC0gQ2FydFxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLmNhcnQgLnBhZ2UtdGl0bGUge1xuXG4gICAgbWFyZ2luLWJvdHRvbTogJHRyaW07XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgfVxuICAgIGgxIHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDZweDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICAgIH1cbn1cblxuLmNoZWNrb3V0LXR5cGVzIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgbGkge1xuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICAgICAgICB9XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIG1hcmdpbjogMCAwIDVweCA1cHg7XG5cbiAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cbiAgICB9XG4gICAgbGk6Zmlyc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICB9XG4gICAgLyogV2UgYWx3YXlzIHdhbnQgdGhpcyBzaGlwcGluZyBtZXRob2QgdG8gZGlzcGxheSBvbiBpdHMgb3duIGxpbmUgKi9cbiAgICAubWV0aG9kLWNoZWNrb3V0LWNhcnQtbWV0aG9kcy1tdWx0aXNoaXBwaW5nIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgJi50b3Age1xuICAgICAgICBsaSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAuYm1sX2J1dHRvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuXG4gICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLnBheXBhbC1sb2dvIC5wYXlwYWwtb3Ige1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogNXB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5ib3R0b20sXG4gICAgJi5taW5pY2FydCB7XG4gICAgICAgIC5wYXlwYWwtbG9nbyB7XG4gICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAucGF5cGFsLW9yIHtcbiAgICAgICAgICAgIG1hcmdpbjogMHB4O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBpbmNsdWRlIGJwKG1pbi13aWR0aCwgNzQxcHgpIHtcbiAgICAuY2hlY2tvdXQtdHlwZXMuYm90dG9tIHtcbiAgICAgICAgLnBheXBhbC1vciB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDcwcHg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5jYXJ0LXRvdGFscyAuY2hlY2tvdXQtdHlwZXMgLmJ0bi1jaGVja291dCB7XG4gICAgbWFyZ2luLWJvdHRvbTogN3B4O1xufVxuXG5AaW5jbHVkZSBicChtYXgtd2lkdGgsIDc0MHB4KSB7XG4gICAgLmNoZWNrb3V0LXR5cGVzIHtcbiAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmLmJvdHRvbSxcbiAgICAgICAgJi5taW5pY2FydCB7XG4gICAgICAgICAgICAucGF5cGFsLW9yIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jaGVja291dC10eXBlcyBsaSB7XG4gICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBicChtYXgtd2lkdGgsICRicC1zbWFsbCkge1xuICAgIC5idG4tY2hlY2tvdXQge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG59XG5cbi5jYXJ0LXRhYmxlIHtcbiAgICBmb250LWZhbWlseTogJGYtc3RhY2stc3BlY2lhbDtcblxuICAgIC5wcm9kdWN0LWNhcnQtcmVtb3ZlIHtcbiAgICAgICAgd2lkdGg6IDM1cHg7XG4gICAgfVxuXG4gICAgLmNhcnQtdG90YWwtaGVhZCB7XG4gICAgICAgIG1heC13aWR0aDogNzBweDtcbiAgICB9XG5cblxuXG4gICAgdGgsXG4gICAgdGQsXG4gICAgdGJvZHkgdGQge1xuICAgICAgICAvLyBBZGRpbmcgdGJvZHkgZm9yIGV4dHJhIHNlbGVjdG9yIHdlaWdodFxuICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cblxuICAgIGgyIHtcbiAgICAgICAgY29sb3I6ICRjLWgyO1xuICAgICAgICBmb250LXNpemU6ICRmLXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuXG4gICAgdGhlYWQgdGgge1xuICAgICAgICBmb250LXNpemU6ICRmLXNpemUteGw7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIH1cblxuICAgIHRoZWFkIHRoLFxuICAgIHRib2R5IHRkIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIHBhZGRpbmc6IDEwcHggMDtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRmLXN0YWNrLXNwZWNpYWw7XG4gICAgfVxuXG4gICAgLnByb2R1Y3QtY2FydC1pbmZvLFxuICAgIC5wcm9kdWN0LWNhcnQtYWN0aW9ucyB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMTVweDtcbiAgICAgICAgcGFkZGluZy10b3A6IDVweDtcblxuICAgICAgICAmLnNhbXBsZS1wcm9kdWN0IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgICAgICAgIC5xdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicChtYXgtd2lkdGgsICRicC1zbWFsbCkge1xuICAgICAgICAucHJvZHVjdC1jYXJ0LWluZm8sXG4gICAgICAgIC5wcm9kdWN0LWNhcnQtYWN0aW9ucyxcbiAgICAgICAgLnByb2R1Y3QtY2FydC1wcmljZSB7XG4gICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICB9XG4gICAgfVxuICAgICBcbiAgICAgICAgICAgIFxuICAgICAgICBcblxuICAgIHRib2R5IHRyLmRvdHRlZC1ib3JkZXIgdGQge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgIH1cblxuICAgXG5cbiAgICB0Zm9vdCB7XG4gICAgICAgIHRyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICB0ciA+IHRkOmFmdGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc3Bhbi5vciB7XG4gICAgICAgIGZvbnQtc2l6ZTogOXB4O1xuICAgICAgICBwYWRkaW5nOiAwIDVweDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRmLXN0YWNrLXNwZWNpYWw7XG4gICAgfVxuXG4gICAgLnByb2R1Y3QtY2FydC1pbWFnZSAuY2FydC1saW5rcyxcbiAgICAucHJvZHVjdC1jYXJ0LWluZm8gLmJ0bi1yZW1vdmUsXG4gICAgLnByb2R1Y3QtY2FydC1hY3Rpb25zIC5idXR0b24ge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC5wcm9kdWN0LWNhcnQtaW1hZ2Uge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG5cbiAgICAgICAgLnByb2R1Y3QtaW1hZ2UgaW1nIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgYS5jYXJ0LWVkaXQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wcm9kdWN0LWNhcnQtc2t1IHtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRmLXN0YWNrLXNhbnM7XG5cbiAgICB9XG5cbiAgICAuYnRuLWVtcHR5IHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgfVxuXG4gICAgLnByb2R1Y3QtY2FydC10b3RhbCxcbiAgICAucHJvZHVjdC1jYXJ0LXByaWNlIHtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgfVxuXG4gICAgLmNhcnQtdGF4LXRvdGFsIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0cmlhbmdsZShsZWZ0LCA2cHgsICRjLXRleHQtcHJpbWFyeSk7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDNweDtcbiAgICAgICAgICAgIHJpZ2h0OiAtMTFweDtcbiAgICAgICAgfVxuXG4gICAgICAgICYuY2FydC10YXgtdG90YWwtZXhwYW5kZWQge1xuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgdHJpYW5nbGUoZG93biwgNnB4LCAkYy10ZXh0LXByaW1hcnkpO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAtMTVweDtcbiAgICAgICAgICAgICAgICB0b3A6IDZweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jYXJ0LWxpbmtzID4gbGkge1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4zO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gICAgICAgIG1pbi13aWR0aDogNjVweDtcbiAgICAgICAgZm9udC1zaXplOiAkZi1zaXplLXM7XG5cbiAgICAgICAgPiBhIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucHJvZHVjdC1jYXJ0LWFjdGlvbnMge1xuICAgICAgICBtaW4td2lkdGg6IDYwcHg7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAucXR5IHtcbiAgICAgICAgICAgIGhlaWdodDogMzBweDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJGMtaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAzLjJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5idXR0b24ge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLml0ZW0tb3B0aW9ucyB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMTVweDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGJwKG1heC13aWR0aCwgJGJwLW1lZGl1bSkge1xuICAgIC5jYXJ0LXRhYmxlIHtcblxuICAgICAgICB0aCB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmLXNpemUteHM7XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogN3B4IDZweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wcm9kdWN0LWNhcnQtYWN0aW9ucyA+IGxpIHtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBpbmhlcml0O1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AaW5jbHVkZSBicChtYXgtd2lkdGgsIDY5OXB4KSB7XG4gICAgLmRpc3BsYXktYm90aC1wcmljZXMge1xuICAgICAgICAuY2FydC10YWJsZSB7XG4gICAgICAgICAgICB0aGVhZCB0aC5jYXJ0LXRvdGFsLWhlYWQsXG4gICAgICAgICAgICB0ZC5wcm9kdWN0LWNhcnQtdG90YWwge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBpbmNsdWRlIGJwKG1heC13aWR0aCwgNTk5cHgpIHtcblxuICAgIC5jYXJ0LXRhYmxlIHtcbiAgICAgICAgY29sZ3JvdXAsIHRoZWFkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuXG5cbiAgICAgICAgdHIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDEwcHg7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICAgICAmLmZpcnN0IHtcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggZG90dGVkICRjLWRhcmtibHVlO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAkdHJpbS1zO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGZvb3QgdHIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJltkYXRhLXJ3ZC1sYWJlbF0ge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMTVweDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA2cHg7XG5cbiAgICAgICAgICAgICAgICAucHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXJ3ZC1sYWJlbCkgXCI6XCI7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGYtc2l6ZTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogNXB4O1xuICAgICAgICAgICAgICAgICAgICBmb250LWZhbWlseTogJGYtc3RhY2stc2FucztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYucHJvZHVjdC1jYXJ0LXByaWNlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmNhcnQtbGlua3Mge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDVweDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDVweDtcblxuICAgICAgICAgICAgPiBsaSB7XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgICAgICA+IGEge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAycHggMHB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5jYXJ0LXRheC1pbmZvIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHRyaW0tc21hbGw7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmLXNpemUtcztcblxuICAgICAgICAgICAgLnByaWNlIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICRmLXNpemUtcztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5wcm9kdWN0LWNhcnQtaW1hZ2Uge1xuICAgICAgICAgICAgd2lkdGg6IHBlcmNlbnRhZ2UoMS80KTtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG5cbiAgICAgICAgICAgIGEuY2FydC1lZGl0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICRmLXNpemUteGw7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAucHJvZHVjdC1jYXJ0LWluZm8sXG4gICAgICAgIHRkW2RhdGEtcndkLWxhYmVsXSB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICB3aWR0aDogcGVyY2VudGFnZSgzLzQpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnByb2R1Y3QtY2FydC1hY3Rpb25zLFxuICAgICAgICAucHJvZHVjdC1jYXJ0LXByaWNlIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAucHJvZHVjdC1jYXJ0LXJlbW92ZSxcbiAgICAgICAgLnByb2R1Y3QtY2FydC10b3RhbCxcbiAgICAgICAgLnByb2R1Y3QtY2FydC1hY3Rpb25zIC5jYXJ0LWxpbmtzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAucHJvZHVjdC1jYXJ0LWluZm8gLmJ0bi1yZW1vdmUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBUaGlzIGVsZW1lbnQgd2lsbCBiZSBkaXNwbGF5ZWQgdmlhIEpTIG9uY2UgdGhlIHJlbGF0ZWQgaW5wdXQgaXMgZm9jdXNlZFxuICAgICAgICAucHJvZHVjdC1jYXJ0LWFjdGlvbnMgLmJ1dHRvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgLnByb2R1Y3QtY2FydC1pbmZvIHtcblxuICAgICAgICAgICAgLmJ0bi1yZW1vdmUge1xuICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgbWFyZ2luOiAtNHB4IDBweCAycHggN3B4O1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgdG9wOiAxMHB4O1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgIFxuICAgICAgICB9XG5cbiAgICAgICAgLnByb2R1Y3QtY2FydC1hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgICAgICAgICAgIC5xdHkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogN3B4O1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDdweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5wcmljZSxcbiAgICAgICAgLnByb2R1Y3QtY2FydC1wcmljZTpiZWZvcmUge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGYtc2l6ZTtcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAkZi1zdGFjay1zYW5zO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNhcnQtZm9vdGVyLWFjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgICAgICNlbXB0eV9jYXJ0X2J1dHRvbiB7XG4gICAgICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuYnRuLWNvbnRpbnVlIHtcbiAgICAgICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmJ0bi11cGRhdGUsXG4gICAgICAgICAgICBzcGFuLm9yIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuZGlzcGxheS1ib3RoLXByaWNlcyB7XG4gICAgICAgIC5jYXJ0LXRhYmxlIHtcbiAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAmW2RhdGEtcndkLXRheC1sYWJlbF0ge1xuICAgICAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtcndkLXRheC1sYWJlbCkgXCI6XCI7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIENoZWNrb3V0IC0gRXN0aW1hdGUgU2hpcHBpbmcgYW5kIFRheFxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnNoaXBwaW5nIHtcblxuICAgIGgyIHtcbiAgICAgICAgZm9udC1zaXplOiAkZi1zaXplLXhsO1xuICAgIH1cblxuICAgIHAge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkdHJpbS1zO1xuICAgIH1cblxuICAgIHNlbGVjdC52YWxpZGF0aW9uLWZhaWxlZCB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJGMtZGFuZ2VyO1xuICAgIH1cblxuICAgIGlucHV0W3R5cGU9ZW1haWxdLFxuICAgIGlucHV0W3R5cGU9bnVtYmVyXSxcbiAgICBpbnB1dFt0eXBlPXBhc3N3b3JkXSxcbiAgICBpbnB1dFt0eXBlPXRlbF0sXG4gICAgaW5wdXRbdHlwZT10ZXh0XSxcbiAgICBzZWxlY3Qge1xuXG4gICAgICAgIGNvbG9yOiAkYy10ZXh0LWxpZ2h0Z3JheTtcblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJGMtdGV4dC1saWdodGdyYXkgIWltcG9ydGFudDtcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLmJ1dHRvbiB7XG4gICAgICAgIG1hcmdpbi10b3A6ICR0cmltLXhzO1xuICAgIH1cblxuXG4gICBcblxuICAgIC5zcC1tZXRob2RzIHtcbiAgICAgICAgbWFyZ2luLXRvcDogJHRyaW0tcztcbiAgICAgICAgcGFkZGluZzogMTBweCAwIDA7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgICAgICAgZGQge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIGxhYmVsIHtcblxuICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgI2NvLXNoaXBwaW5nLW1ldGhvZC1mb3JtIC5idXR0b25zLXNldCAuYnV0dG9uIHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIH1cbiAgICAjY28tc2hpcHBpbmctbWV0aG9kLWZvcm0gLnNwLW1ldGhvZHMgZGQgbGFiZWwge1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogc2hhZGUoJGMtbW9kdWxlLWJhY2tncm91bmQsIDEwJSlcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQGluY2x1ZGUgYnAobWF4LXdpZHRoLCAkYnAtbWVkaXVtKSB7XG5cbiAgICAuc2hpcHBpbmcgLnNoaXBwaW5nLWZvcm0gLmZvcm0tbGlzdCA+IGxpIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGZsb2F0OiBub25lO1xuXG4gICAgICAgIGxhYmVsIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgaW5wdXQsXG4gICAgICAgIHNlbGVjdCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBUb3RhbHNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uY2FydCAuY2FydC10b3RhbHMge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuXG4gICAgJjphZnRlciB7XG4gICAgICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICAgIH1cblxuICAgIHRhYmxlIHtcbiAgICAgIFxuICAgICAgICBmb250LXNpemU6ICRmLXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgXG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJweCAwcHg7XG4gICAgICAgIH1cbiAgICAgICAgdGQ6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMTBweDtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMTIwcHg7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSB0cjpsYXN0LWNoaWxkIHRkLFxuICAgICAgICB0Ym9keSB0cjpsYXN0LWNoaWxkIHRoIHtcbiAgICAgICAgICAgIC8vcGFkZGluZy1ib3R0b206IDEwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBcbiAgICB9XG59XG5cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBEaXNjb3VudCBjb2RlcyBhbmQgZ2lmdCBjYXJkc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5kaXNjb3VudC1mb3JtOmFmdGVyLFxuI2dpZnRjYXJkLWZvcm06YWZ0ZXIge1xuICAgIEBpbmNsdWRlIGNsZWFyZml4O1xufVxuXG4jZGlzY291bnQtY291cG9uLWZvcm0sXG4uY2FydCAuZ2lmdGNhcmQge1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgaDIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIGxhYmVsIHtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRmLXN0YWNrLXNwZWNpYWw7XG4gICAgICAgIGZvbnQtc2l6ZTogJGYtc2l6ZS14cztcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgbWluLXdpZHRoOiAxMDVweDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgfVxuXG4gICAgLmZpZWxkLXdyYXBwZXIge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgfVxuXG4gICAgLnZhbGlkYXRpb24tYWR2aWNlIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgIH1cblxuICAgIC5idXR0b24td3JhcHBlciB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcblxuICAgICAgICA+IGJ1dHRvbiB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5pbnB1dC10ZXh0IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgaGVpZ2h0OiAzMHB4O1xuICAgICAgICBtYXJnaW46IDRweCAxMHB4IDAgMDtcbiAgICAgICAgd2lkdGg6IDE5MHB4O1xuICAgIH1cbn1cblxuLmNhcnQgLmdpZnRjYXJkIHAge1xuICAgIG1hcmdpbi1ib3R0b206ICRlbGVtZW50LXNwYWNpbmc7XG59XG5cbi5jYXJ0IC5naWZ0Y2FyZCAuY2hlY2stZ2Mtc3RhdHVzIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBwYWRkaW5nOiAwcHg7XG5cbiAgICA+IHNwYW4gPiBzcGFuIHtcbiAgICAgICAgZm9udC1zaXplOiAkZi1zaXplO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB9XG59XG5cbi5zaGlwcGluZy1mb3JtIHtcbiAgIC5pbnB1dC10ZXh0I3JlZ2lvbiB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyBcbiAgICB9XG4gICAgLnNoaXBwaW5nLXJlZ2lvbiB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfSBcblxuICAgICNyZWdpb25faWQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgIH1cblxufVxuXG5cblxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBDaGVja291dCAtIENhcnQgQ3Jvc3Mgc2VsbFxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLmNyb3Nzc2VsbCB7XG4gICAgaDIge1xuICAgICAgICBjb2xvcjogJGMtYmx1ZTtcbiAgICB9XG5cbiAgICAuaXRlbSBhLnByb2R1Y3QtaW1hZ2Uge1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgfVxufVxuXG4vKiBDaGFuZ2UgdGhlIGxheW91dCB0byAyIGNvbHVtbnMgYXQgYSBicmVha3BvaW50IHRoYXQgaXMgaGlnaGVyIHRoYW4gYSAzIGNvbHVtbnMgbGF5b3V0IHdvdWxkIG5vcm1hbGx5IGJyZWFrICovXG5AaW5jbHVkZSBicChtYXgtd2lkdGgsICRicC1sYXJnZSkge1xuICAgIC5jcm9zc3NlbGwge1xuICAgICAgICAucHJvZHVjdHMtZ3JpZCA+IGxpOm50aC1jaGlsZChldmVuKSxcbiAgICAgICAgLnByb2R1Y3RzLWdyaWQgPiBsaTpudGgtY2hpbGQoM24pLFxuICAgICAgICAucHJvZHVjdHMtZ3JpZCA+IGxpIHtcbiAgICAgICAgICAgIHdpZHRoOiBwZXJjZW50YWdlKDIxMCAvIDQ0MCk7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IHBlcmNlbnRhZ2UoMjAgLyA0NDApO1xuICAgICAgICB9XG5cbiAgICAgICAgLnByb2R1Y3RzLWdyaWQgPiBsaTpudGgtY2hpbGQob2RkKSB7XG4gICAgICAgICAgICBjbGVhcjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wcm9kdWN0cy1ncmlkID4gbGk6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIFVuZG8gdGhyZWUtY29sdW1uIGNvbmZpZyAqL1xuICAgICAgICAucHJvZHVjdHMtZ3JpZCA+IGxpOm50aC1jaGlsZCgzbisxKSB7XG4gICAgICAgICAgICBjbGVhcjogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQGluY2x1ZGUgYnAobWF4LXdpZHRoLCAkYnAtc21hbGwpIHtcbiAgICAuY2FydC10YWJsZSB7XG4gICAgICAgIC5jYXJ0LXRheC10b3RhbCB7XG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICByaWdodDogLTlweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICYuY2FydC10YXgtdG90YWwtZXhwYW5kZWQge1xuICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICByaWdodDogLTEzcHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5AaW5jbHVkZSBicChtYXgtd2lkdGgsIDMyMHB4KSB7XG4gICAgLmNyb3Nzc2VsbCB7XG4gICAgICAgIHVsIHtcbiAgICAgICAgICAgIC5pdGVtIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwIDBweCA0MHB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAucHJvZHVjdC1kZXRhaWxzIC5jcm9zc3NlbGwtYWN0aW9ucyB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMCA1cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5jaGVja291dC1jYXJ0LWluZGV4IHtcbiAgICAuY2FydC1lbXB0eSB7XG4gICAgICAgIGEge1xuICAgICAgICAgICAgY29sb3I6ICRjLXRleHQ7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8vXG4vLyBNYWdlbnRvXG4vL1xuLy8gTk9USUNFIE9GIExJQ0VOU0Vcbi8vXG4vLyBUaGlzIHNvdXJjZSBmaWxlIGlzIHN1YmplY3QgdG8gdGhlIEFjYWRlbWljIEZyZWUgTGljZW5zZSAoQUZMIDMuMClcbi8vIHRoYXQgaXMgYnVuZGxlZCB3aXRoIHRoaXMgcGFja2FnZSBpbiB0aGUgZmlsZSBMSUNFTlNFX0FGTC50eHQuXG4vLyBJdCBpcyBhbHNvIGF2YWlsYWJsZSB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiBhdCB0aGlzIFVSTDpcbi8vIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9hZmwtMy4wLnBocFxuLy8gSWYgeW91IGRpZCBub3QgcmVjZWl2ZSBhIGNvcHkgb2YgdGhlIGxpY2Vuc2UgYW5kIGFyZSB1bmFibGUgdG9cbi8vIG9idGFpbiBpdCB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiwgcGxlYXNlIHNlbmQgYW4gZW1haWxcbi8vIHRvIGxpY2Vuc2VAbWFnZW50by5jb20gc28gd2UgY2FuIHNlbmQgeW91IGEgY29weSBpbW1lZGlhdGVseS5cbi8vXG4vLyBESVNDTEFJTUVSXG4vL1xuLy8gRG8gbm90IGVkaXQgb3IgYWRkIHRvIHRoaXMgZmlsZSBpZiB5b3Ugd2lzaCB0byB1cGdyYWRlIE1hZ2VudG8gdG8gbmV3ZXJcbi8vIHZlcnNpb25zIGluIHRoZSBmdXR1cmUuIElmIHlvdSB3aXNoIHRvIGN1c3RvbWl6ZSBNYWdlbnRvIGZvciB5b3VyXG4vLyBuZWVkcyBwbGVhc2UgcmVmZXIgdG8gaHR0cDovL3d3dy5tYWdlbnRvLmNvbSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbi8vXG4vLyBAY2F0ZWdvcnkgICAgZGVzaWduXG4vLyBAcGFja2FnZSAgICAgcndkX2RlZmF1bHRcbi8vIEBjb3B5cmlnaHQgICBDb3B5cmlnaHQgKGMpIDIwMDYtMjAxNiBYLmNvbW1lcmNlLCBJbmMuIGFuZCBhZmZpbGlhdGVzIChodHRwOi8vd3d3Lm1hZ2VudG8uY29tKVxuLy8gQGxpY2Vuc2UgICAgIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9hZmwtMy4wLnBocCAgQWNhZGVtaWMgRnJlZSBMaWNlbnNlIChBRkwgMy4wKVxuLy9cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogQ2hlY2tvdXQgLSBPbmUgUGFnZVxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLmNoZWNrb3V0LW9uZXBhZ2UtaW5kZXggLmNvbC1yaWdodCxcbi5jaGVja291dC1vbmVwYWdlLWluZGV4IC5jb2wtbGVmdCB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLmNoZWNrb3V0LW9uZXBhZ2UtaW5kZXggLmNvbC1tYWluIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBmbG9hdDogbm9uZTtcbn1cblxuQGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtbGFyZ2UrMSkge1xuICAgIC5jaGVja291dC1vbmVwYWdlLWluZGV4IHtcbiAgICAgICAgLmNvbC1tYWluIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgd2lkdGg6IHBlcmNlbnRhZ2UoNjYwcHgvOTYwcHgpO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMjBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jb2wtcmlnaHQsXG4gICAgICAgIC5jb2wtbGVmdCB7XG4gICAgICAgICAgICB3aWR0aDogcGVyY2VudGFnZSgzMDBweC85NjBweCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIC5jb2wtcmlnaHQge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ub3BjIHtcbiAgICBzZWxlY3Qge1xuICAgICAgICB3aWR0aDogKDIzMHB4ICsgMTM1cHgpO1xuICAgIH1cbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxuICogU2VjdGlvbiBTdHlsaW5nIC0gRGVmYXVsdFxuICovXG5cbi5vcGMgLnNlY3Rpb24gLnN0ZXAtdGl0bGUge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nOiAzcHggMDtcbiAgICBAaW5jbHVkZSBub3Qtc2VsZWN0YWJsZTtcblxuICAgICY6YWZ0ZXIge1xuICAgICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICB9XG59XG5cbi5vcGMgLnNlY3Rpb24uYWxsb3c6bm90KC5hY3RpdmUpIC5zdGVwLXRpdGxlIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cblxuLm9wYyAuc2VjdGlvbi5hY3RpdmUgLnN0ZXAtdGl0bGUge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQgJGMtZGFya2JsdWU7XG59XG5cbi5vcGMgLnNlY3Rpb24gLnN0ZXAtdGl0bGUgYSB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLm9wYyAuc2VjdGlvbi5hbGxvdzpub3QoLmFjdGl2ZSkgLnN0ZXAtdGl0bGUgYSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIGxpbmUtaGVpZ2h0OiA0MHB4O1xuICAgIGhlaWdodDogNDBweDtcbiAgICBwYWRkaW5nOiAwcHggMTBweDtcbn1cblxuLm5vLXRvdWNoIC5vcGMgLnNlY3Rpb24gLnN0ZXAtdGl0bGUgYTpob3ZlciB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG4ub3BjIC5zZWN0aW9uIC5zdGVwLXRpdGxlIC5udW1iZXIsXG4ub3BjIC5zZWN0aW9uLmFsbG93LmFjdGl2ZSAuc3RlcC10aXRsZSAubnVtYmVyLFxuLm5vLXRvdWNoIC5vcGMgLnNlY3Rpb24uYWxsb3c6aG92ZXIgLnN0ZXAtdGl0bGUgLm51bWJlciB7XG4gICAgZm9udC1mYW1pbHk6ICRmLXN0YWNrLXNwZWNpYWw7XG4gICAgd2lkdGg6IDI2cHg7XG4gICAgaGVpZ2h0OiAyNnB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBjb2xvcjogI0ZGRkZGRjtcbiAgICBsaW5lLWhlaWdodDogMjhweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYy1hY3Rpb247XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgdG9wOiA1MCU7XG4gICAgbGVmdDogMDtcbiAgICBtYXJnaW4tdG9wOiAtMTNweDtcbn1cblxuLm9wYyAuc2VjdGlvbi5hbGxvdyAuc3RlcC10aXRsZSAubnVtYmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aW50KCRjLWFjdGlvbiwgNTAlKTtcbn1cblxuLm9wYyAuc2VjdGlvbi5hbGxvdyAuc3RlcC10aXRsZSBoMiB7XG4gICAgY29sb3I6ICRjLXRleHQtZ3JheTtcbn1cblxuLm9wYyAuc2VjdGlvbi5hbGxvdyAuc3RlcC10aXRsZTpob3ZlciBoMixcbi5vcGMgLnNlY3Rpb24uYWN0aXZlIC5zdGVwLXRpdGxlIGgyIHtcbiAgICBjb2xvcjogJGMtdGV4dC1wcmltYXJ5O1xufVxuXG4ub3BjIC5zZWN0aW9uIC5zdGVwLXRpdGxlIGgyIHtcbiAgICBmb250LXNpemU6ICRmLXNpemUteGw7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBsaW5lLWhlaWdodDogNDJweDtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luOiAwcHggNHB4IDBweCAzNXB4O1xufVxuXG4ub3BjIC5zZWN0aW9uIC5zdGVwIHtcbiAgICBAaW5jbHVkZSBicChtaW4td2lkdGgsICRicC1zbWFsbCkge1xuICAgICAgICBwYWRkaW5nOiAkdHJpbS1zIDAgJHRyaW0gJHRyaW07XG4gICAgfVxuXG4gICAgJjphZnRlciB7XG4gICAgICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJwKG1heC13aWR0aCwgJGJwLWxhcmdlKSB7XG4gICAgICAgIHBhZGRpbmc6ICRib3gtc3BhY2luZztcbiAgICB9XG59XG5cbi5vcGMgc2VsZWN0IHtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuLm9wYyBoMyB7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuLm9wYyAuYnV0dG9ucy1zZXQge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgICBidXR0b24uYnV0dG9uIHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6ICRnYXA7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICAgIHAucmVxdWlyZWQge1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICAgIC5iYWNrLWxpbmsge1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG4gICAgYSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDVweCA1cHggNXB4IDA7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBicChtYXgtd2lkdGgsICRicC14c21hbGwpIHtcbiAgICAub3BjLFxuICAgIC5wYXlwYWwtZXhwcmVzcy1yZXZpZXcge1xuICAgICAgICAuYnV0dG9ucy1zZXQgLmJ1dHRvbiArIC5idXR0b25zLXNldCAuYnV0dG9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5cblxuLm9wYyAjb3BjLWxvZ2luIHtcblxuXG5cbiAgICBoMiB7XG4gICAgICAgIGZvbnQtc2l6ZTogJGYtc2l6ZS14eGw7XG4gICAgICAgIG1hcmdpbi10b3A6IC0yNXB4O1xuICAgIH1cbiAgICBcbiAgIFxuXG4gICAgLnN0ZXAge1xuICAgICAgICBwYWRkaW5nOiAwcHg7XG4gICAgfVxuXG4gICAgLnN0ZXAtdGl0bGUge1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgfVxuXG4gICAgLmJ1dHRvbnMtc2V0IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMDtcbiAgICAgICAgcGFkZGluZy10b3A6IDVweDtcbiAgICB9XG5cbiAgICAjY2hlY2tvdXQtc3RlcC1sb2dpbiB7XG4gICAgICAgIG1hcmdpbi10b3A6ICR0cmltO1xuICAgIH1cbn1cblxuIC5vcGMtaGFzLXByb2dyZXNzZWQtZnJvbS1sb2dpbiB7XG4gICAgXG4gICAgLm9wYyAjb3BjLWxvZ2luIHtcblxuICAgICAgICBoMiB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmLXNpemUteGw7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICB9XG4gICAgXG4gICAgfVxuXG59XG5cbkBpbmNsdWRlIGJwKG1heC13aWR0aCwgJGJwLW1lZGl1bSkge1xuICAgIC5vcGMgI29wYy1sb2dpbiAuZGVzY3JpcHRpb24sXG4gICAgLm9wYyAjb3BjLWxvZ2luIHAucmVxdWlyZWQge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuI29wYy1wYXltZW50IC5ub3RlIHtcbiAgICBwYWRkaW5nOiAkYm94LXNwYWNpbmc7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICpcbiAqIFRoaXMgc2VjdGlvbiBoaWRlcyBldmVyeXRoaW5nIGJ1dCB0aGUgXCJDaGVja291dCBNZXRob2RcIiBzdGVwIG9mIHRoZSBjaGVja291dCBwcm9jZXNzIGFuZCBmYWRlcyBpbiB0aGUgY29udGVudFxuICogb25jZSB0aGUgY3VzdG9tZXIgcHJvZ3Jlc3NlcyB0byB0aGUgbmV4dCBzdGVwLiBUaGUgcHVycG9zZSBvZiB0aGlzIGlzIHRvIHNpbXBsaWZ5IHdoYXQgdGhlIGN1c3RvbWVyIGhhcyB0byBmb2N1cyBvbi5cbiAqIEl0IGlzIGxpbWl0ZWQgdG8gbGFyZ2VyIHZpZXdwb3J0cyBzaW5jZSBzbWFsbGVyIGRldmljZXMgYXJlIGluaGVyZW50bHkgZ29pbmcgdG8gYmUgZm9jdXNlZCBzb2xlbHkgb24gdGhlXG4gKiBcIkNoZWNrb3V0IE1ldGhvZFwiIHN0ZXAuXG4gKi9cblxuLm9wYy5vcGMtZmlyc3RzdGVwLWxvZ2luIC5zZWN0aW9uOm5vdCgjb3BjLWxvZ2luKSAuc3RlcC10aXRsZSxcbi5vcGMtYmxvY2stcHJvZ3Jlc3Mtc3RlcC1sb2dpbiB7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAuM3M7XG59XG5cbi5vcGMub3BjLWZpcnN0c3RlcC1sb2dpbiAuc2VjdGlvbiNvcGMtbG9naW4gLnN0ZXAtdGl0bGUgLm51bWJlciB7XG4gICAgdHJhbnNpdGlvbjogd2lkdGggLjFzO1xufVxuXG4ub3BjLm9wYy1maXJzdHN0ZXAtbG9naW4gLnNlY3Rpb24jb3BjLWxvZ2luIC5zdGVwLXRpdGxlIGgyIHtcbiAgICB0cmFuc2l0aW9uOiBtYXJnaW4tbGVmdCAuMXM7XG59XG5cbi8qIFdoZW4gYSB1c2VyIHByb2dyZXNzZXMgZnJvbSB0aGUgXCJDaGVja291dCBNZXRob2RcIiB0byBcIkJpbGxpbmcgSW5mb3JtYXRpb25cIiBmb3IgdGhlIGZpcnN0IHRpbWUsIHRoZSAgICAgICAgICAgICAgKi9cbi8qIFwib3BjLWhhcy1wcm9ncmVzc2VkLWZyb20tbG9naW5cIiBjbGFzcyBnZXRzIGFkZGVkIHRvIHRoZSBib2R5LiBBbHNvLCB0aGUgLm9wYyBlbGVtZW50IHdpbGwgb25seSBoYXZlIHRoZSAgICAgICAgICovXG4vKiBcIm9wYy1maXJzdHN0ZXAtbG9naW5cIiBjbGFzcyBpZiB0aGUgZmlyc3Qgc3RlcCBvZiB0aGUgY2hlY2tvdXQgaXMgdGhlIFwiQ2hlY2tvdXQgTWV0aG9kXCIgKGVnLCBub3Qgd2hlbiBsb2dnZWQgaW4pICovXG5ib2R5Om5vdCgub3BjLWhhcy1wcm9ncmVzc2VkLWZyb20tbG9naW4pIC5vcGMub3BjLWZpcnN0c3RlcC1sb2dpbiAuc2VjdGlvbjpub3QoI29wYy1sb2dpbikgLnN0ZXAtdGl0bGUsXG5ib2R5Om5vdCgub3BjLWhhcy1wcm9ncmVzc2VkLWZyb20tbG9naW4pIC5vcGMtYmxvY2stcHJvZ3Jlc3Mtc3RlcC1sb2dpbiB7XG4gICAgb3BhY2l0eTogMDtcbn1cblxuYm9keTpub3QoLm9wYy1oYXMtcHJvZ3Jlc3NlZC1mcm9tLWxvZ2luKSAub3BjLm9wYy1maXJzdHN0ZXAtbG9naW4gLnNlY3Rpb24jb3BjLWxvZ2luIC5zdGVwLXRpdGxlIC5udW1iZXIge1xuICAgIHdpZHRoOiAwcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuYm9keTpub3QoLm9wYy1oYXMtcHJvZ3Jlc3NlZC1mcm9tLWxvZ2luKSAub3BjLm9wYy1maXJzdHN0ZXAtbG9naW4gLnNlY3Rpb24jb3BjLWxvZ2luIC5zdGVwLXRpdGxlIGgyIHtcbiAgICBtYXJnaW4tbGVmdDogMHB4O1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXG4gKiBTaGlwcGluZyBhbmQgUGF5bWVudCBtZXRob2RzXG4gKi9cblxuLnNwLW1ldGhvZHMge1xuICAgIG1hcmdpbjogMCAwIDhweDtcblxuICAgIGR0IHtcbiAgICAgICAgbWFyZ2luOiAxM3B4IDAgNXB4O1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcblxuICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwIDVweDtcbiAgICAgICAgfVxuICAgICAgICAgbGFiZWwge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZGQgbGkge1xuICAgICAgICBtYXJnaW46IDVweCAwO1xuICAgIH1cbiAgICBsYWJlbCBpbWcgeyAvLyBUaGlzIGFwcGxpZXMgdG8gdGhlIFBheXBhbCBFeHByZXNzIGxhYmVsXG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgIH1cbiAgICBsYWJlbCBhIHsgLy8gVGhpcyBhcHBsaWVzIHRvIHRoZSBQYXlwYWwgRXhwcmVzcyBsYWJlbFxuICAgICAgICBtYXJnaW4tdG9wOiA2cHg7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgfVxuXG5cbiAgICAucHJpY2Uge1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB9XG4gICAgLmZvcm0tbGlzdCB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMjVweDtcblxuICAgICAgICBsaSB7XG4gICAgICAgICAgICBtYXJnaW46IDAgMCA4cHg7XG4gICAgICAgIH1cbiAgICB9XG4gICAgc2VsZWN0Lm1vbnRoIHtcbiAgICAgICAgd2lkdGg6IDEyMHB4O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgfVxuICAgIHNlbGVjdC55ZWFyIHtcbiAgICAgICAgd2lkdGg6IDk2cHg7XG4gICAgfVxuICAgIGlucHV0LmN2diB7XG4gICAgICAgIHdpZHRoOiA0ZW0gIWltcG9ydGFudDtcbiAgICB9XG4gICAgI2FkdmljZS12YWxpZGF0ZS1jYy1leHAtY2NzYXZlX2V4cGlyYXRpb24ge1xuICAgICAgICBtYXgtd2lkdGg6IDEzMHB4O1xuICAgIH1cblxuICAgIC5jaGVja21vLWxpc3Qge1xuICAgICAgICBsaSB7XG4gICAgICAgICAgICBtYXJnaW46IDAgMCA1cHg7XG4gICAgICAgICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICAgICAgfVxuICAgICAgICBsYWJlbCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgLy93aWR0aDogMTY1cHg7XG4gICAgICAgICAgICAvL3BhZGRpbmctcmlnaHQ6IDE1cHg7XG4gICAgICAgICAgICAvL3RleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgLy9mbG9hdDogbGVmdDtcbiAgICAgICAgfVxuICAgICAgICBhZGRyZXNzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgYnAobWF4LXdpZHRoLCAkYnAteHNtYWxsKSB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG5cbiAgICAgICAgICAgIGxhYmVsIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTM1cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucmVsZWFzZS1hbW91bnRzIHtcbiAgICAgICAgbWFyZ2luOiAwLjVlbSAwO1xuICAgIH1cbiAgICAucmVsZWFzZS1hbW91bnRzIGJ1dHRvbiB7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBtYXJnaW46IDVweCAxMHB4IDAgMDtcbiAgICB9XG59XG5cblxuXG4vKiBPbmUgUGFnZSBDaGVja291dCAqL1xuXG4jY2hlY2tvdXQtc3RlcC1iaWxsaW5nIHtcbiAgICBtYXJnaW4tdG9wOiAyNXB4O1xuICAgICAgICBwLnJlcXVpcmVkIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IC0yNXB4OyBcbiAgICAgICAgfVxufVxuXG4uYmxvY2stcHJvZ3Jlc3Mge1xuICAgIGJvcmRlcjogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuXG4gICAgLmJsb2NrLWNvbnRlbnQge1xuICAgICAgICBmb250LXNpemU6ICRmLXNpemUtcztcbiAgICB9XG4gICAgZHQge1xuICAgICAgICBwYWRkaW5nLXRvcDogNnB4O1xuICAgICAgICBAaW5jbHVkZSBoNDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNnB4O1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICBjb2xvcjogJGMtdGV4dC1ncmF5O1xuICAgIH1cblxuICAgIGR0LmNvbXBsZXRlIHtcbiAgICAgICAgY29sb3I6ICRjLWg0O1xuICAgIH1cbiAgICBkZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkZi1zdGFjay1zZXJpZjtcbiAgICB9XG5cbiAgICAjcGF5bWVudC1wcm9ncmVzcy1vcGNoZWNrb3V0IC5zdWJ0aXRsZSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDNweDtcbiAgICB9XG5cbiAgICAucGF5bWVudC1pbmZvIHtcblxuICAgICAgICBkdCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAgM3B4IDA7XG4gICAgICAgICAgICBjb2xvcjogJGMtdGV4dDtcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAkZi1zdGFjay1zZXJpZjtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGYtc2l6ZS1zO1xuXG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnOiAnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgZGQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAzcHg7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmLXNpemUtcztcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgICAgIH1cblxuICAgIH1cbn1cblxuLyogcmV2aWV3IHN0ZXAgKi9cbiNjaGVja291dC1yZXZpZXctdGFibGUge1xuICAgIC5idG4tcmVtb3ZlIHtcbiAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbiNjaGVja291dC1yZXZpZXctdGFibGUtd3JhcHBlciB7XG4gICAgY2xlYXI6IGJvdGg7IC8vIEZpeCB0YWJsZSBjbGVhcmluZyBpc3N1ZSBpbiBGaXJlZm94XG59XG5cbiNyZXZpZXctYnV0dG9ucy1jb250YWluZXIge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi10b3A6IDE1cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTVweDtcblxuICAgIC5idG4tY2hlY2tvdXQge1xuICAgICAgICBtaW4td2lkdGg6IDIyMHB4O1xuICAgIH1cbiAgICAucGxlYXNlLXdhaXQge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICAgIH1cbiAgICAuZi1sZWZ0IHtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgIH1cbn1cblxuLy8gSGlkZSBhbGwgYnV0IHRoZSBmaXJzdCB0ciBpbnNpZGUgb2YgdGhlYWRcbkBpbmNsdWRlIGJwKG1heC13aWR0aCwgJGJwLXNtYWxsKSB7XG4gICAgLmxpbmVhcml6ZS10YWJsZS1sYXJnZS5jaGVja291dC1yZXZpZXctdGFibGUgdGhlYWQgdHI6bnRoLWNoaWxkKDFuKzIpIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbi8vIEhpZGUgYWxsIGJ1dCB0aGUgZmlyc3QgdHIgaW5zaWRlIG9mIHRoZWFkXG5AaW5jbHVkZSBicChtYXgtd2lkdGgsICRicC14c21hbGwpIHtcbiAgICAubGluZWFyaXplLXRhYmxlLmNoZWNrb3V0LXJldmlldy10YWJsZSB0aGVhZCB0cjpudGgtY2hpbGQoMW4rMikge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuLyogc2hvdy9oaWRlIFwiY2hhbmdlXCIgbGluayBmb3IgcHJvZ3Jlc3Mgc3RlcCBkZXBlbmQgb24gY29tcGxldGUgc3RhdHVzXG4gKiBzaG91bGQgYmUgcGxhY2VkIGluIC5jc3MgZmlsZSAqL1xuLm9wYy1ibG9jay1wcm9ncmVzcyBkdC5jb21wbGV0ZSBhLFxuLm9wYy1ibG9jay1wcm9ncmVzcyBkdC5jb21wbGV0ZSAuc2VwYXJhdG9yIHtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG59XG5cbi5vcGMtYmxvY2stcHJvZ3Jlc3MgZHQgYSxcbi5vcGMtYmxvY2stcHJvZ3Jlc3MgZHQgLnNlcGFyYXRvciB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuXG5cbi8qIE9uIHNtYWxsIHNjcmVlbnMsIHRoZSBwcm9ncmVzcyByZXZpZXcgY29udGVudCB3aWxsIGJlIG1vdmVkIHRvIHRoZSByZXZpZXcgc3RlcCB2aWEgSlMuIFN0eWxlZCB2aWEgdGhpcyBDU1M6ICovXG4jY2hlY2tvdXQtc3RlcC1yZXZpZXcgLm9wYy1ibG9jay1wcm9ncmVzcyB7XG4gICAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuXG4gICAgLmJsb2NrLXRpdGxlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gICAgLmJsb2NrLWNvbnRlbnQge1xuICAgICAgICAvLyBPdmVycmlkZSB0aGUgbm8tZGlzcGxheVxuICAgICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgICAgICBwYWRkaW5nOiAwO1xuXG4gICAgICAgICYgPiBkbCA+IGRpdiB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBicChtYXgtd2lkdGgsICRicC14c21hbGwpIHtcbiAgICAgICAgICAgICYgPiBkbCA+IGRpdiB7XG4gICAgICAgICAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuY2hhbmdlbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AaW5jbHVkZSBicChtYXgtd2lkdGgsICRicC14c21hbGwpIHtcbiAgICAjY2hlY2tvdXQtcmV2aWV3LXRhYmxlIHRoZWFkID4gdHIgPiB0aCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuICAgIH1cbiAgICAjY2hlY2tvdXQtcmV2aWV3LXRhYmxlIHRoZWFkID4gdHIgPiB0aDpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbn1cblxuI2NoZWNrb3V0LXN0ZXAtcmV2aWV3IC5jZW50aW5lbCB7XG4gICAgJj4gcCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRib3gtc3BhY2luZztcbiAgICB9XG5cbiAgICBpZnJhbWUge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWluLWhlaWdodDogNDAwcHg7XG4gICAgfVxufVxuXG4vKiBHaWZ0IG9wdGlvbnMgKi9cbi5naWZ0LW1lc3NhZ2VzLWZvcm0ge1xuICAgIC5pdGVtIHtcbiAgICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgICAgIG1hcmdpbi10b3A6ICR0cmltO1xuXG4gICAgICAgIGg1IHtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICB9XG5cbiAgICAgICAgLnByb2R1Y3QtaW1nLWJveCB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMTVweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5kZXRhaWxzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uZ2lmdC1tZXNzYWdlLWZvcm0ge1xuICAgIC5pbm5lci1ib3gge1xuICAgICAgICA+IGRpdiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHRyaW0tc21hbGw7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJi5leHRyYS1vcHRpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICAgICAgcCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICR0cmltLXNtYWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5naWZ0LXdyYXBwaW5nLWZvcm0ge1xuICAgICAgICBsYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICRib3gtc3BhY2luZztcbiAgICAgICAgfVxuXG4gICAgICAgIGltZyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5naWZ0LXdyYXBwaW5nLWRlc2lnbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDc1cHg7XG5cbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuaW1hZ2UtYm94IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5naWZ0LWl0ZW0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogJGdhcDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJGdhcDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4ICRjLWRpdmlkZXItYm9yZGVyO1xuXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgICAgIH1cblxuICAgICAgICAucHJvZHVjdC1pbWctYm94IHtcbiAgICAgICAgICAgIHdpZHRoOiAyMDBweDtcblxuICAgICAgICAgICAgLnByb2R1Y3QtaW1hZ2Uge1xuICAgICAgICAgICAgICAgIHdpZHRoOiA3NXB4O1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnByb2R1Y3QtbmFtZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuZmllbGRzZXQge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDIwMHB4O1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AaW5jbHVkZSBicCgnbWF4LXdpZHRoJywgJGJwLW1lZGl1bSkge1xuICAgIC5naWZ0LW1lc3NhZ2UtZm9ybSB7XG5cbiAgICAgICAgLmdpZnRtZXNzYWdlLWFyZWF7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAuZ2lmdC1pdGVtIHtcbiAgICAgICAgICAgIC5wcm9kdWN0LWltZy1ib3gge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuZmllbGRzZXQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwcHg7XG5cbiAgICAgICAgICAgICAgICB0ZXh0YXJlYSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuXG4ub3BjLWJsb2NrLXByb2dyZXNze1xuICAgIC5ibG9jay10aXRsZSBzdHJvbmcge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGNvbG9yOiAkYy10ZXh0O1xuICAgICAgICBmb250LXNpemU6ICRmLXNpemUteGw7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQgJGMtZGFya2JsdWU7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNXB4O1xuICAgICAgICBtcmFnaW4tYm90dG9tOiAkdHJpbS1zO1xuICAgIH1cbn1cblxuI2NoZWNrb3V0LXN0ZXAtcmV2aWV3IHtcbiAgICAjY2hlY2tvdXQtYWdyZWVtZW50cyB7XG4gICAgICAgIG1hcmdpbi10b3A6IDMwcHg7XG4gICAgfVxufVxuIiwiLy9cbi8vIE1hZ2VudG9cbi8vXG4vLyBOT1RJQ0UgT0YgTElDRU5TRVxuLy9cbi8vIFRoaXMgc291cmNlIGZpbGUgaXMgc3ViamVjdCB0byB0aGUgQWNhZGVtaWMgRnJlZSBMaWNlbnNlIChBRkwgMy4wKVxuLy8gdGhhdCBpcyBidW5kbGVkIHdpdGggdGhpcyBwYWNrYWdlIGluIHRoZSBmaWxlIExJQ0VOU0VfQUZMLnR4dC5cbi8vIEl0IGlzIGFsc28gYXZhaWxhYmxlIHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViIGF0IHRoaXMgVVJMOlxuLy8gaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2FmbC0zLjAucGhwXG4vLyBJZiB5b3UgZGlkIG5vdCByZWNlaXZlIGEgY29weSBvZiB0aGUgbGljZW5zZSBhbmQgYXJlIHVuYWJsZSB0b1xuLy8gb2J0YWluIGl0IHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViLCBwbGVhc2Ugc2VuZCBhbiBlbWFpbFxuLy8gdG8gbGljZW5zZUBtYWdlbnRvLmNvbSBzbyB3ZSBjYW4gc2VuZCB5b3UgYSBjb3B5IGltbWVkaWF0ZWx5LlxuLy9cbi8vIERJU0NMQUlNRVJcbi8vXG4vLyBEbyBub3QgZWRpdCBvciBhZGQgdG8gdGhpcyBmaWxlIGlmIHlvdSB3aXNoIHRvIHVwZ3JhZGUgTWFnZW50byB0byBuZXdlclxuLy8gdmVyc2lvbnMgaW4gdGhlIGZ1dHVyZS4gSWYgeW91IHdpc2ggdG8gY3VzdG9taXplIE1hZ2VudG8gZm9yIHlvdXJcbi8vIG5lZWRzIHBsZWFzZSByZWZlciB0byBodHRwOi8vd3d3Lm1hZ2VudG8uY29tIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuLy9cbi8vIEBjYXRlZ29yeSAgICBkZXNpZ25cbi8vIEBwYWNrYWdlICAgICByd2RfZGVmYXVsdFxuLy8gQGNvcHlyaWdodCAgIENvcHlyaWdodCAoYykgMjAwNi0yMDE2IFguY29tbWVyY2UsIEluYy4gYW5kIGFmZmlsaWF0ZXMgKGh0dHA6Ly93d3cubWFnZW50by5jb20pXG4vLyBAbGljZW5zZSAgICAgaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2FmbC0zLjAucGhwICBBY2FkZW1pYyBGcmVlIExpY2Vuc2UgKEFGTCAzLjApXG4vL1xuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBDaGVja291dCAtIFN1Y2Nlc3NcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5jaGVja291dC1vbmVwYWdlLXN1Y2Nlc3Mge1xuICAgIC5jb2wtbWFpbiB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG5cbiAgICAuYnV0dG9ucy1zZXQge1xuICAgICAgICBtYXJnaW46ICRnYXAgMDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgIGJ1dHRvbiB7XG4gICAgICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8vXG4vLyBNYWdlbnRvXG4vL1xuLy8gTk9USUNFIE9GIExJQ0VOU0Vcbi8vXG4vLyBUaGlzIHNvdXJjZSBmaWxlIGlzIHN1YmplY3QgdG8gdGhlIEFjYWRlbWljIEZyZWUgTGljZW5zZSAoQUZMIDMuMClcbi8vIHRoYXQgaXMgYnVuZGxlZCB3aXRoIHRoaXMgcGFja2FnZSBpbiB0aGUgZmlsZSBMSUNFTlNFX0FGTC50eHQuXG4vLyBJdCBpcyBhbHNvIGF2YWlsYWJsZSB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiBhdCB0aGlzIFVSTDpcbi8vIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9hZmwtMy4wLnBocFxuLy8gSWYgeW91IGRpZCBub3QgcmVjZWl2ZSBhIGNvcHkgb2YgdGhlIGxpY2Vuc2UgYW5kIGFyZSB1bmFibGUgdG9cbi8vIG9idGFpbiBpdCB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiwgcGxlYXNlIHNlbmQgYW4gZW1haWxcbi8vIHRvIGxpY2Vuc2VAbWFnZW50by5jb20gc28gd2UgY2FuIHNlbmQgeW91IGEgY29weSBpbW1lZGlhdGVseS5cbi8vXG4vLyBESVNDTEFJTUVSXG4vL1xuLy8gRG8gbm90IGVkaXQgb3IgYWRkIHRvIHRoaXMgZmlsZSBpZiB5b3Ugd2lzaCB0byB1cGdyYWRlIE1hZ2VudG8gdG8gbmV3ZXJcbi8vIHZlcnNpb25zIGluIHRoZSBmdXR1cmUuIElmIHlvdSB3aXNoIHRvIGN1c3RvbWl6ZSBNYWdlbnRvIGZvciB5b3VyXG4vLyBuZWVkcyBwbGVhc2UgcmVmZXIgdG8gaHR0cDovL3d3dy5tYWdlbnRvLmNvbSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbi8vXG4vLyBAY2F0ZWdvcnkgICAgZGVzaWduXG4vLyBAcGFja2FnZSAgICAgcndkX2RlZmF1bHRcbi8vIEBjb3B5cmlnaHQgICBDb3B5cmlnaHQgKGMpIDIwMDYtMjAxNiBYLmNvbW1lcmNlLCBJbmMuIGFuZCBhZmZpbGlhdGVzIChodHRwOi8vd3d3Lm1hZ2VudG8uY29tKVxuLy8gQGxpY2Vuc2UgICAgIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9hZmwtMy4wLnBocCAgQWNhZGVtaWMgRnJlZSBMaWNlbnNlIChBRkwgMy4wKVxuLy9cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogQ29uZmlndXJhYmxlIFN3YXRjaGVzXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKiBDbGVhcnMgKi9cbi5jbGVhcmZpeCxcbi5jb25maWd1cmFibGUtc3dhdGNoLWxpc3QsXG4ucHJvZHVjdC12aWV3IC5wcm9kdWN0LW9wdGlvbnMgLnN3YXRjaC1hdHRyIHtcbiAgICAmOmFmdGVyIHtcbiAgICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgfVxufVxuXG4vKiBHZW5lcmFsIFN3YXRjaCBTdHlsaW5nICovXG4uc3dhdGNoLWxpbmssXG4uc3dhdGNoLWxhYmVsIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBib3JkZXItcmFkaXVzOiAkZGVmYXVsdC1ib3JkZXItcmFkaXVzIC0gMjtcbiAgICBmb250LXNpemU6ICRmLXNpemU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGNvbG9yOiAkYy1oNDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgYm94LXNpemluZzogY29udGVudC1ib3g7XG59XG5cbi5zd2F0Y2gtbGluayB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGMtbW9kdWxlLWJvcmRlcjtcbiAgICBtYXJnaW46IDAgMCAzcHg7XG5cbiAgICBpbWcge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkZGVmYXVsdC1ib3JkZXItcmFkaXVzIC0gMztcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuXG4gICAgLngge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB0ZXh0LWluZGVudDogLTk5OWVtO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgYmFja2dyb3VuZDogdXJsKC4uL2ltYWdlcy9iZ194LnBuZykgY2VudGVyIG5vLXJlcGVhdCB0cmFuc3BhcmVudDtcbiAgICAgICAgei1pbmRleDogMTA7XG4gICAgfVxuXG4gICAgJi5oYXMtaW1hZ2Uge1xuICAgICAgICAuc3dhdGNoLWxhYmVsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGltZyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uc3dhdGNoLWxhYmVsIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZmZmO1xuICAgIG1hcmdpbjogMDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGJhY2tncm91bmQ6ICRjLW1vZHVsZS1iYWNrZ3JvdW5kO1xufVxuXG4uY29uZmlndXJhYmxlLXN3YXRjaC1saXN0IHtcbiAgICBtYXJnaW4tbGVmdDogLTNweDtcbiAgICB6b29tOiAxO1xuICAgIGNsZWFyOiBib3RoO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDBweCk7XG5cbiAgICBsaSB7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICB6b29tOiAxO1xuICAgICAgICBtYXJnaW46IDAgMCAwIDNweDtcbiAgICB9XG5cbiAgICAucHJvZHVjdHMtZ3JpZCAmIGxpIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgIH1cblxuICAgIC5ub3QtYXZhaWxhYmxlIHtcbiAgICAgICAgLngge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAuc3dhdGNoLWxpbmsge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkYy1tb2R1bGUtYm9yZGVyLWxpZ2h0O1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAmLmhhcy1pbWFnZSBpbWcge1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICBmaWx0ZXI6IGFscGhhKG9wYWNpdHk9NDApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLnN3YXRjaC1sYWJlbCB7XG4gICAgICAgICAgICBjb2xvcjogI2FhYTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAud2lkZS1zd2F0Y2ggLnN3YXRjaC1sYWJlbCB7XG4gICAgICAgIHBhZGRpbmc6IDAgNnB4O1xuICAgIH1cblxuICAgIC5ub3QtYXZhaWxhYmxlIGE6Zm9jdXMge1xuICAgICAgICBvdXRsaW5lOiAwO1xuICAgIH1cbn1cblxuI25hcnJvdy1ieS1saXN0IGRkIHtcbiAgICAuY29uZmlndXJhYmxlLXN3YXRjaC1saXN0IGxpIHtcbiAgICAgICAgbWFyZ2luOiAwIDAgMCAzcHg7XG4gICAgICAgIHdpZHRoOiA0NyU7XG4gICAgfVxuXG4gICAgLnN3YXRjaC1saW5rIHtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBsaW5lLWhlaWdodDogJGYtc2l6ZSArIDExcHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMnB4O1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuXG4gICAgICAgICYuaGFzLWltYWdlIHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlciAuc3dhdGNoLWxhYmVsIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJGMtbW9kdWxlLWJvcmRlci1oaWdobGlnaHQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuc3dhdGNoLWxhYmVsIHtcbiAgICAgICAgYmFja2dyb3VuZDogJGMtbW9kdWxlLWJhY2tncm91bmQ7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRjLW1vZHVsZS1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRkZWZhdWx0LWJvcmRlci1yYWRpdXMgLSAyO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjVlbTtcbiAgICAgICAgbWFyZ2luOiAwIDVweCAwIDA7XG4gICAgICAgIHBhZGRpbmc6IDFweCA1cHg7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNmZmY7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAkZGVmYXVsdC1ib3JkZXItcmFkaXVzIC0gMnB4O1xuICAgICAgICAgICAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuaGFzLWltYWdlIC5zd2F0Y2gtbGFiZWwge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgIH1cbn1cblxuQGluY2x1ZGUgYnAobWF4LXdpZHRoLCAkYnAtbWVkaXVtKSB7XG4gICAgLy8gUHJldmVudCBvZGQgd3JhcHBpbmcgaXNzdWUgd2hlbiBzd2F0Y2hlcyBoYXZlIGJvdGggdGV4dCBhbmQgaW1hZ2VzXG4gICAgI25hcnJvdy1ieS1saXN0IGRkIC5jb25maWd1cmFibGUtc3dhdGNoLWxpc3QgbGk6bnRoLWNoaWxkKG9kZCkge1xuICAgICAgICBjbGVhcjogbGVmdDtcbiAgICB9XG59XG5cbi5jdXJyZW50bHkge1xuICAgIC5zd2F0Y2gtY3VycmVudCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAuYnRuLXJlbW92ZSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAtMTBweDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIH1cblxuICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuc3dhdGNoLWxpbmsge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIG1hcmdpbjogMCAwIDAgM3B4O1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkYy1tb2R1bGUtYm9yZGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vKiBPdGhlciBTd2F0Y2ggU3RhdGVzICovXG4uY29uZmlndXJhYmxlLXN3YXRjaC1saXN0IC5ob3ZlciAuc3dhdGNoLWxpbmssXG4uY29uZmlndXJhYmxlLXN3YXRjaC1saXN0IC5zZWxlY3RlZCAuc3dhdGNoLWxpbmssXG4uc3dhdGNoLWxpbms6aG92ZXIge1xuICAgIGJvcmRlci1jb2xvcjogJGMtbW9kdWxlLWJvcmRlci1oaWdobGlnaHQ7XG59XG5cbi5jb25maWd1cmFibGUtc3dhdGNoLWJveCB7XG4gICAgYmFja2dyb3VuZDogbm9uZSAhaW1wb3J0YW50O1xuXG4gICAgc2VsZWN0LnN3YXRjaC1zZWxlY3Qge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC52YWxpZGF0aW9uLWFkdmljZSB7XG4gICAgICAgIG1hcmdpbjogMCAwIDVweDtcbiAgICAgICAgYmFja2dyb3VuZDogJGMtZGFuZ2VyO1xuICAgICAgICBwYWRkaW5nOiAycHggNXB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50O1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRkZWZhdWx0LWJvcmRlci1yYWRpdXMgLSAyO1xuICAgIH1cbn1cblxuLyogQ1VTVE9NICovXG4uYXZhaWxhYmlsaXR5Lm91dC1vZi1zdG9jayBzcGFuIHtcbiAgICBjb2xvcjogJGMtdGV4dC1ncmF5O1xufVxuXG4ucHJvZHVjdC12aWV3IHtcbiAgICAucHJvZHVjdC1vcHRpb25zIHtcbiAgICAgICAgLnN3YXRjaC1hdHRyIHtcbiAgICAgICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgICAgICAgIGJvcmRlcjogMDtcblxuICAgICAgICAgICAgbGFiZWwsXG4gICAgICAgICAgICAuc2VsZWN0LWxhYmVsIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICRmLXNpemUteHM7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGxhYmVsIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMS4zO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuc2VsZWN0LWxhYmVsIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGMtdGV4dC1wcmltYXJ5O1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogNXB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgZGQgLmlucHV0LWJveCB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIC5zZWxlY3QtbGFiZWwge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5hZGQtdG8tY2FydCBidXR0b24ub3V0LW9mLXN0b2NrIHtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTgwcHggLTM2MnB4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgfVxufVxuIiwiLy9cbi8vIE1hZ2VudG9cbi8vXG4vLyBOT1RJQ0UgT0YgTElDRU5TRVxuLy9cbi8vIFRoaXMgc291cmNlIGZpbGUgaXMgc3ViamVjdCB0byB0aGUgQWNhZGVtaWMgRnJlZSBMaWNlbnNlIChBRkwgMy4wKVxuLy8gdGhhdCBpcyBidW5kbGVkIHdpdGggdGhpcyBwYWNrYWdlIGluIHRoZSBmaWxlIExJQ0VOU0VfQUZMLnR4dC5cbi8vIEl0IGlzIGFsc28gYXZhaWxhYmxlIHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViIGF0IHRoaXMgVVJMOlxuLy8gaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2FmbC0zLjAucGhwXG4vLyBJZiB5b3UgZGlkIG5vdCByZWNlaXZlIGEgY29weSBvZiB0aGUgbGljZW5zZSBhbmQgYXJlIHVuYWJsZSB0b1xuLy8gb2J0YWluIGl0IHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViLCBwbGVhc2Ugc2VuZCBhbiBlbWFpbFxuLy8gdG8gbGljZW5zZUBtYWdlbnRvLmNvbSBzbyB3ZSBjYW4gc2VuZCB5b3UgYSBjb3B5IGltbWVkaWF0ZWx5LlxuLy9cbi8vIERJU0NMQUlNRVJcbi8vXG4vLyBEbyBub3QgZWRpdCBvciBhZGQgdG8gdGhpcyBmaWxlIGlmIHlvdSB3aXNoIHRvIHVwZ3JhZGUgTWFnZW50byB0byBuZXdlclxuLy8gdmVyc2lvbnMgaW4gdGhlIGZ1dHVyZS4gSWYgeW91IHdpc2ggdG8gY3VzdG9taXplIE1hZ2VudG8gZm9yIHlvdXJcbi8vIG5lZWRzIHBsZWFzZSByZWZlciB0byBodHRwOi8vd3d3Lm1hZ2VudG8uY29tIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuLy9cbi8vIEBjYXRlZ29yeSAgICBkZXNpZ25cbi8vIEBwYWNrYWdlICAgICByd2RfZGVmYXVsdFxuLy8gQGNvcHlyaWdodCAgIENvcHlyaWdodCAoYykgMjAwNi0yMDE2IFguY29tbWVyY2UsIEluYy4gYW5kIGFmZmlsaWF0ZXMgKGh0dHA6Ly93d3cubWFnZW50by5jb20pXG4vLyBAbGljZW5zZSAgICAgaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2FmbC0zLjAucGhwICBBY2FkZW1pYyBGcmVlIExpY2Vuc2UgKEFGTCAzLjApXG4vL1xuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBDdXN0b21lclxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuIC5jdXN0b21lci1hY2NvdW50LWxvZ2luLFxuIC5jdXN0b21lci1hY2NvdW50LWNyZWF0ZSxcbiAuY3VzdG9tZXItYWNjb3VudC1mb3Jnb3RwYXNzd29yZCxcbiAuY2hlY2tvdXQtb25lcGFnZS1pbmRleCB7XG4gICAgLmNvbC1tYWluIHtcblxuICAgICAgICBhOm5vdCguYnV0dG9uKSB7XG4gICAgICAgICAgICBjb2xvcjogJGMtdGV4dDtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRjLWFjdGlvbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiB9XG5cbiAuY3VzdG9tZXItYWNjb3VudCB7XG4gICAgLmJsb2NrLWFjY291bnQge1xuICAgICAgICAuYmxvY2stdGl0bGUge1xuICAgICAgICAgICAgIEBpbmNsdWRlIGJwKG1heC13aWR0aCwgJGJwLW1lZGl1bSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBicChtYXgtd2lkdGgsICRicC1tZWRpdW0pIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkdHJpbSAhaW1wb3J0YW50O1xuXG4gICAgICAgICAgICAgfVxuICAgIH1cbiB9XG5cbi5jdXN0b21lci1hY2NvdW50LWVkaXQge1xuICAgIC5maWVsZHNldCBwLnJlcXVpcmVkIHtcbiAgICAgICAgbWFyZ2luLXRvcDogLTI1cHggIWltcG9ydGFudDtcbiAgICB9XG59XG5cbi5jdXN0b21lci1hY2NvdW50LWxvZ2luIHtcblxuICAgIC5jb2wtbWFpbiB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAkdHJpbTtcbiAgICB9XG5cbiAgICAuc2NhZmZvbGQtZm9ybSB7XG4gICAgICAgIGxhYmVsOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMTVweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGgyIHtcbiAgICAgICAgZm9udC1zaXplOiAkZi1zaXplLXhsO1xuICAgIH1cblxuICAgIC5jb2wyLXNldCB7XG4gICAgICAgIC5idXR0b25zLXNldCB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMDtcblxuICAgICAgICB9XG4gICAgICAgIC5jb2wtMSxcbiAgICAgICAgLmNvbC0yIHtcbiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIH1cblxuICAgICAgICAuY29sLTEge1xuICAgICAgICAgICAgdWwge1xuICAgICAgICAgICAgICAgIGxpc3Qtc3R5bGU6IGRpc2M7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICAgICAgICAgICAgICAgIG1hcmdpbjogJGdhcCAwICRnYXAgKiAyIDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicChtaW4td2lkdGgsICRicC1zbWFsbCArIDEpIHtcbiAgICAgICAgLmNvbDItc2V0IHtcbiAgICAgICAgICAgIC5jb2wtMSxcbiAgICAgICAgICAgIC5jb2wtMiB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmNvbC0xIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuY29sLTIge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMjBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLW1lZGl1bSkge1xuICAgICAgICAuY29sMi1zZXQge1xuICAgICAgICAgICAgLmNvbC0xIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuXG5cbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIGJwKG1heC13aWR0aCwgJGJwLXNtYWxsKSB7XG4gICAgICAgIC5jb2wyLXNldCB7XG4gICAgICAgICAgICAuY29sLTEge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAkdHJpbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmNvbC0yIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogJHRyaW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicChtYXgtd2lkdGgsICRicC1tZWRpdW0pIHtcbiAgICAgICAgLmNvbDItc2V0IHAucmVxdWlyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmN1c3RvbWVyLWFjY291bnQtY3JlYXRlIHtcbiAgICAuc2NhZmZvbGQtZm9ybSB7XG4gICAgICAgIGxhYmVsOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgIHdpZHRoOiAxNDBweDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnJlbWVtYmVyLW1lLWJveCB7XG4gICAgYS5oaWRlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gICAgLmxpbmstdGlwIHtcbiAgICAgICAgZm9udC1zaXplOiAkZi1zaXplLXM7XG4gICAgICAgIHBhZGRpbmctbGVmdDogJGdhcDtcbiAgICB9XG59XG5cbi5yZW1lbWJlci1tZS1wb3B1cCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYy1tb2R1bGUtYm9yZGVyO1xuICAgIHBhZGRpbmc6ICRib3gtc3BhY2luZztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAmLnNob3cge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICBwIHtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRmLXN0YWNrLWRlZmF1bHQ7XG4gICAgfVxuXG4gICAgLnJlbWVtYmVyLW1lLXBvcHVwLWNsb3NlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAkYm94LXNwYWNpbmc7XG4gICAgICAgIGZvbnQtc2l6ZTogJGYtc2l6ZS14cztcbiAgICB9XG5cbiAgICAucmVtZW1iZXItbWUtcG9wdXAtY2xvc2UtYnV0dG9uIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbi5jdXN0b21lci1hY2NvdW50LWNyZWF0ZSB7XG5cblxuICAgIC5maWVsZHNldCAuaGlkZGVuIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbn1cblxuLmN1c3RvbWVyLWFjY291bnQtZm9yZ290cGFzc3dvcmQsICBcbi5jdXN0b21lci1hY2NvdW50LWNyZWF0ZXtcbiAgICAuY29sLW1haW4ge1xuICAgICAgICBtYXgtd2lkdGg6IDY4MHB4O1xuICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAkdHJpbTtcbiAgICB9XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIE15IEFjY291bnQgR2xvYmFsIFN0eWxlc1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbmJvZHkuY3VzdG9tZXItYWNjb3VudCB7XG4gICAgLm15LWFjY291bnQge1xuICAgICAgICAucGFnZS10aXRsZSB7XG4gICAgICAgICAgICBoMSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAudGl0bGUtYnV0dG9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcblxuICAgICAgICAgICAgaDEge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5idXR0b24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGEsXG4gICAgICAgICAgICBzcGFuLnNlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHRvcDogLTQycHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuZmllbGRzZXQgaDIsXG4gICAgICAgIC5hZGRyZXNzZXMtbGlzdCBoMixcbiAgICAgICAgLm9yZGVyLWRldGFpbHMgaDIge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAuYWRkcmVzc2VzLWxpc3QgaDMge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZi1zaXplO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5maWVsZHNldCB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkdHJpbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICR0cmltO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmRhdGEtdGFibGUge1xuICAgICAgICBtYXJnaW4tdG9wOiA1cHg7XG5cbiAgICAgICAgdGQge1xuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRmLXN0YWNrLXNwZWNpYWw7XG4gICAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZi1zaXplLXM7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBzcGFuLm5vYnIge1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcblxuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRkLnZpZXcge1xuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuc2lkZWJhciB7XG4gICAgICAgIC5ibG9jayB7XG4gICAgICAgICAgICBvbCNjb21wYXJlLWl0ZW1zIHtcbiAgICAgICAgICAgICAgICBsaSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogJGJveC1zcGFjaW5nIDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuYmxvY2stY29udGVudCB7XG4gICAgICAgICAgICAgICAgcC5ibG9jay1zdWJ0aXRsZSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICR0cmltLXNtYWxsO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5hY3Rpb25zIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogJHRyaW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgb2wjY2FydC1zaWRlYmFyLXJlb3JkZXIge1xuICAgICAgICAgICAgbGkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6ICRib3gtc3BhY2luZztcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBwLnByb2R1Y3QtbmFtZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuYmxvY2stY2FydCB7XG4gICAgICAgICAgICAuc3VtbWFyeSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogJHRyaW0tc21hbGw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuYmxvY2stcmVvcmRlciB7XG4gICAgICAgICAgICBvbCNjYXJ0LXNpZGViYXItcmVvcmRlciB7XG4gICAgICAgICAgICAgICAgbGkge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAkYm94LXNwYWNpbmc7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgICAgICAgICAgICAgICAgICAgaW5wdXQge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcC5wcm9kdWN0LW5hbWUge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4uZm9ybS1saXN0IHtcbiAgICAuY3VzdG9tZXItZG9iIHtcbiAgICAgICAgLmRvYi1tb250aCxcbiAgICAgICAgLmRvYi1kYXkge1xuICAgICAgICAgICAgd2lkdGg6IDQwcHg7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogJGJveC1zcGFjaW5nO1xuICAgICAgICB9XG5cbiAgICAgICAgLmRvYi15ZWFyIHtcbiAgICAgICAgICAgIHdpZHRoOiA4MHB4O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIERhc2hib2FyZFxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLmN1c3RvbWVyLWFjY291bnQge1xuICAgIC5iYWNrLWxpbmsge1xuICAgICAgICBhIHtcbiAgICAgICAgICAgIGNvbG9yOiAkYy10ZXh0O1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGMtYWN0aW9uO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4uZGFzaGJvYXJkIHtcbiAgICAuYm94LWhlYWQge1xuICAgICAgICBtYXJnaW4tdG9wOiAkdHJpbTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDdweDtcblxuICAgICAgICBoMiB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmLXNpemUteGw7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIGEge1xuICAgICAgICAgICAgcGFkZGluZzogJGJveC1zcGFjaW5nO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmJveC10aXRsZSxcbiAgICAuYm94LWhlYWQsXG4gICAgLmJveC1jb250ZW50LFxuICAgIC5iYWNrLWxpbmsge1xuICAgICAgICBhIHtcbiAgICAgICAgICAgIGNvbG9yOiAkYy10ZXh0O1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGMtYWN0aW9uO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmJveC1hY2NvdW50IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDQwcHg7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQgJGMtZGFya2JsdWU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDQ1cHg7XG5cbiAgICAgICAgcCxcbiAgICAgICAgYWRkcmVzcyB7XG4gICAgICAgICAgICBmb250LWZhbWlseTogJGYtc3RhY2stc2VyaWY7XG5cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jb2wyLXNldCB7XG4gICAgICAgIC5jb2wtMSxcbiAgICAgICAgLmNvbC0yIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IHBlcmNlbnRhZ2UoNzUvNjIwKTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuXG4gICAgICAgICAgICAuYm94LXRpdGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDEwcHg7XG5cbiAgICAgICAgICAgICAgICBoMixcbiAgICAgICAgICAgICAgICBoMyB7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAkZi1zdGFjay1zYW5zO1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6ICRmLXNpemU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAoMS40ICogJGYtc2l6ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmJveC1yZXZpZXdzIHtcbiAgICAgICAgJi5ib3gtYWNjb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIGxpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRib3gtc3BhY2luZyAwO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRjLW1vZHVsZS1ib3JkZXItbGlnaHQ7XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5udW1iZXIge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLTIwcHg7XG4gICAgICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICRmLXNpemUtcztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmRldGFpbHMge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAyMHB4O1xuXG4gICAgICAgICAgICAgICAgLnJhdGluZ3Mge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgICAgICAgICAgICAgICAgICBzdHJvbmcge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LWZhbWlseTogJGYtc3RhY2stc3BlY2lhbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGYtc2l6ZS1zO1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAucmF0aW5nLWJveCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogM3B4IDAgMCAwO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBBZGRyZXNzIEJvb2tcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5teS1hY2NvdW50IHtcbiAgICAuYWRkcmVzc2VzLWxpc3Qge1xuICAgICAgICBmb250LWZhbWlseTogJGYtc3RhY2stc2VyaWY7XG5cbiAgICAgICAgLmNvbC0xLFxuICAgICAgICAuY29sLTIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICAuaXRlbSB7XG4gICAgICAgICAgICBtYXJnaW46IDAgMCAkdHJpbSAwO1xuXG4gICAgICAgICAgICBwIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAkYm94LXNwYWNpbmc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBicChtYXgtd2lkdGgsICRicC1tZWRpdW0pIHtcbiAgICAgICAgICAgIC5jb2wtMSxcbiAgICAgICAgICAgIC5jb2wtMiB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG5cbiAgICAgICAgICAgICAgICBsaS5lbXB0eSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGJwKG1heC13aWR0aCwgJGJwLXNtYWxsKSB7XG4gICAgICAgICAgICAuYWRkcmVzc2VzLWFkZGl0aW9uYWwge1xuICAgICAgICAgICAgICAgIHAge1xuICAgICAgICAgICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIE9yZGVyIFZpZXdcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5vcmRlci1pbmZvIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogJGJveC1zcGFjaW5nO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkYy1tb2R1bGUtYm9yZGVyLWxpZ2h0O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1ib3R0b206ICR0cmltO1xuXG4gICAgZHQsXG4gICAgZGQsXG4gICAgdWwsXG4gICAgbGkge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgfVxuXG4gICAgZHQge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6ICgkYm94LXNwYWNpbmcqMik7XG4gICAgfVxuXG4gICAgbGkge1xuICAgICAgICBtYXJnaW46IDAgMCAwICgkYm94LXNwYWNpbmcqMik7XG5cbiAgICAgICAgJi5jdXJyZW50IHtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIH1cblxuICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ub3JkZXItZGF0ZSB7XG4gICAgZm9udC1mYW1pbHk6ICRmLXN0YWNrLXNwZWNpYWw7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxuLm9yZGVyLWluZm8tYm94IHtcbiAgICBtYXJnaW4tYm90dG9tOiA0MHB4O1xuICAgIG1hcmdpbi10b3A6IDIwcHg7XG5cbiAgICArIC5vcmRlci1pbmZvLWJveCB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA0MHB4O1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGMtbW9kdWxlLWJvcmRlci1saWdodDtcbiAgICB9XG5cbiAgICAuY29sLTEge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB3aWR0aDogNDglO1xuICAgIH1cblxuICAgIC5jb2wtMiB7XG4gICAgICAgIHdpZHRoOiA1MiU7XG4gICAgfVxuXG4gICAgLmNvbC0xLFxuICAgIC5jb2wtMiB7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICAuYm94LXRpdGxlIHtcbiAgICAgICAgd2lkdGg6IDE1MHB4O1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkYm94LXNwYWNpbmc7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuXG4gICAgICAgIGgyIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGYtc2l6ZTtcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAkZi1zdGFjay1zcGVjaWFsO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS41O1xuXG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnOic7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYm94LWNvbnRlbnQge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRmLXN0YWNrLXNlcmlmO1xuXG4gICAgICAgIHRkLFxuICAgICAgICB0aCB7XG4gICAgICAgICAgICBmb250LWZhbWlseTogJGYtc3RhY2stc2VyaWY7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS4zO1xuICAgICAgICB9XG5cbiAgICAgICAgdGgge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6ICRib3gtc3BhY2luZztcbiAgICAgICAgfVxuXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHRyaW0tc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICBzdHJvbmcge1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRmLXN0YWNrLXNwZWNpYWw7XG4gICAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuI215LW9yZGVycy10YWJsZSB7XG4gICAgLm9wdGlvbi1sYWJlbCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAkYm94LXNwYWNpbmc7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICB9XG5cbiAgICAub3B0aW9uLXZhbHVlIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6ICRib3gtc3BhY2luZyAqIDI7XG4gICAgfVxuXG4gICAgdHIuYnVuZGxlOm5vdCg6bGFzdC1jaGlsZCkgdGQge1xuICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgICBib3JkZXItdG9wOiBub25lO1xuICAgIH1cbn1cblxub2wjY2FydC1zaWRlYmFyLXJlb3JkZXIge1xuICAgIGxpIHtcbiAgICAgICAgbWFyZ2luLXRvcDogJGJveC1zcGFjaW5nO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgICAgIGlucHV0IHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHAucHJvZHVjdC1uYW1lIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgIH1cbn1cblxuQGluY2x1ZGUgYnAobWF4LXdpZHRoLCAkYnAtc21hbGwpIHtcbiAgICAjbXktb3JkZXJzLXRhYmxlIHtcbiAgICAgICAgLm9wdGlvbi1sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMjBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5vcHRpb24tdmFsdWUge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDM1cHg7XG4gICAgICAgIH1cblxuICAgICAgICB0ZFtkYXRhLXJ3ZC1sYWJlbD1RdHldIC5ub2JyIHtcbiAgICAgICAgICAgIGJyIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzdHJvbmcge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogJGJveC1zcGFjaW5nO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdHIuYnVuZGxlIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJGMtbW9kdWxlLWJvcmRlci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRyLmJ1bmRsZS5jaGlsZCB7XG4gICAgICAgICAgICB0ZFtkYXRhLXJ3ZC1sYWJlbF0ge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogNjBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5Omxhc3QtY2hpbGQgdHI6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDEwcHg7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAkdHJpbS1zbWFsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0Zm9vdCB0ci5zaGlwcGluZyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ub3JkZXItYWRkaXRpb25hbCB7XG4gICAgbWFyZ2luOiA0MHB4IDA7XG59XG5cbi5vcmRlci1naWZ0LW1lc3NhZ2Uge1xuICAgIGRkIHtcbiAgICAgICAgbWFyZ2luLXRvcDogJGJveC1zcGFjaW5nO1xuICAgIH1cbn1cblxuQGluY2x1ZGUgYnAobWF4LXdpZHRoLCAkYnAteGxhcmdlKSB7XG4gICAgLmRhc2hib2FyZCB7XG4gICAgICAgIC5jb2wyLXNldCB7XG4gICAgICAgICAgICAuY29sLTEsXG4gICAgICAgICAgICAuY29sLTIge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICR0cmltO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgYm9keS5jdXN0b21lci1hY2NvdW50IHtcbiAgICAgICAgLmRhdGEtdGFibGUge1xuICAgICAgICAgICAgdGQudmlldyBhIHtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5AaW5jbHVkZSBicChtYXgtd2lkdGgsICRicC1sYXJnZSkge1xuICAgIGJvZHkuY3VzdG9tZXItYWNjb3VudCB7XG4gICAgICAgIC5teS1hY2NvdW50IHtcbiAgICAgICAgICAgIC50aXRsZS1idXR0b25zIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuXG4gICAgICAgICAgICAgICAgc3Bhbi5zZXBhcmF0b3IsXG4gICAgICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogLTEycHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5AaW5jbHVkZSBicChtYXgtd2lkdGgsICRicC1tZWRpdW0pIHtcbiAgICBib2R5LmN1c3RvbWVyLWFjY291bnQge1xuICAgICAgICAuZGF0YS10YWJsZSB7XG4gICAgICAgICAgICAmLm9yZGVycyB7XG4gICAgICAgICAgICAgICAgdGguc2hpcCxcbiAgICAgICAgICAgICAgICB0ZC5zaGlwLFxuICAgICAgICAgICAgICAgIHRkLnN0YXR1cyxcbiAgICAgICAgICAgICAgICB0aC5zdGF0dXMge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5vcmRlci1pbmZvLWJveCB7XG4gICAgICAgIC5ib3gtY29udGVudCB7XG4gICAgICAgICAgICBjbGVhcjogbGVmdDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5hZGRyZXNzZXMtbGlzdCB7XG4gICAgICAgIC5pdGVtIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICR0cmltO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm9yZGVyLWluZm8ge1xuICAgICAgICBkdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmRhc2hib2FyZCB7XG4gICAgICAgIC5wYWdlLXRpdGxlIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDIwcHg7XG5cbiAgICAgICAgICAgIGgxIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLndlbGNvbWUtbXNnIHtcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAkZi1zdGFjay1zZXJpZjtcblxuICAgICAgICAgICAgLmhlbGxvIHtcbiAgICAgICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuYm94LWFjY291bnQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206ICR0cmltLXNtYWxsO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogJHRyaW07XG4gICAgICAgIH1cblxuICAgICAgICAuY29sMi1zZXQge1xuICAgICAgICAgICAgLmNvbC0xLFxuICAgICAgICAgICAgLmNvbC0yIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogNDglO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuY29sLTEge1xuICAgICAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogNCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5jb2wtMiB7XG4gICAgICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5AaW5jbHVkZSBicChtYXgtd2lkdGgsICRicC1zbWFsbCkge1xuICAgIGJvZHkuY3VzdG9tZXItYWNjb3VudCB7XG4gICAgICAgIC5teS1hY2NvdW50IHtcbiAgICAgICAgICAgIC5mb3JtLWxpc3Qge1xuICAgICAgICAgICAgICAgIC5jb250cm9sIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuQGluY2x1ZGUgYnAobWF4LXdpZHRoLCAkYnAteHNtYWxsKSB7XG4gICAgYm9keS5jdXN0b21lci1hY2NvdW50IHtcbiAgICAgICAgLm15LWFjY291bnQge1xuICAgICAgICAgICAgLnBhZ2UtdGl0bGUge1xuICAgICAgICAgICAgICAgIGgxIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnRpdGxlLWJ1dHRvbnMge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgICAgIC5idXR0b24ge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogJHRyaW0tc21hbGw7XG5cbiAgICAgICAgICAgICAgICAgICAgKyAuYnV0dG9uIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwcHg7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5maWVsZHNldCB7XG4gICAgICAgICAgICAgICAgaDIge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkdHJpbS1zbWFsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5vcmRlci1kZXRhaWxzIGgyIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkdHJpbS1zbWFsbDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmJ1dHRvbnMtc2V0IHtcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuYWRkcmVzc2VzLWxpc3Qge1xuICAgICAgICAgICAgICAgIC5pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogJHRyaW0tc21hbGw7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBoMiB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICR0cmltLXNtYWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5vcmRlci1pbmZvIHtcbiAgICAgICAgbWFyZ2luLXRvcDogJHRyaW0tc21hbGw7XG4gICAgfVxuXG4gICAgLmRhdGEtdGFibGUge1xuICAgICAgICAmLm9yZGVycyB7XG4gICAgICAgICAgICAubGluay1yZW9yZGVyLFxuICAgICAgICAgICAgLmRhdGUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRkLnZpZXcge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmRhc2hib2FyZCB7XG4gICAgICAgIC5jb2wyLXNldCB7XG4gICAgICAgICAgICAuY29sLTEsXG4gICAgICAgICAgICAuY29sLTIge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6ICR0cmltLXNtYWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm9yZGVyLWluZm8tYm94IHtcbiAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgIC5jb2wtMSxcbiAgICAgICAgLmNvbC0yIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjLW1vZHVsZS1ib3JkZXItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAkdHJpbS1zbWFsbCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgKyAub3JkZXItaW5mby1ib3gge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogJHRyaW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAjbXktcmV2aWV3cy10YWJsZSB7XG4gICAgICAgIC5ub2JyIHtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIE5ld3NsZXR0ZXIgU3Vic2NyaXB0aW9uc1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuYm9keS5uZXdzbGV0dGVyLW1hbmFnZS1pbmRleCAubXktYWNjb3VudCB7XG4gICAgLmZpZWxkc2V0IHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICB9XG5cbiAgICAuZmllbGRzZXQgaDIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC5mb3JtLWxpc3Qge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJGMtZmllbGRzZXQtYm9yZGVyLWxpZ2h0O1xuICAgICAgICBwYWRkaW5nLXRvcDogJGdhcDtcbiAgICB9XG59XG4iLCIvL1xuLy8gTWFnZW50b1xuLy9cbi8vIE5PVElDRSBPRiBMSUNFTlNFXG4vL1xuLy8gVGhpcyBzb3VyY2UgZmlsZSBpcyBzdWJqZWN0IHRvIHRoZSBBY2FkZW1pYyBGcmVlIExpY2Vuc2UgKEFGTCAzLjApXG4vLyB0aGF0IGlzIGJ1bmRsZWQgd2l0aCB0aGlzIHBhY2thZ2UgaW4gdGhlIGZpbGUgTElDRU5TRV9BRkwudHh0LlxuLy8gSXQgaXMgYWxzbyBhdmFpbGFibGUgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIgYXQgdGhpcyBVUkw6XG4vLyBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYWZsLTMuMC5waHBcbi8vIElmIHlvdSBkaWQgbm90IHJlY2VpdmUgYSBjb3B5IG9mIHRoZSBsaWNlbnNlIGFuZCBhcmUgdW5hYmxlIHRvXG4vLyBvYnRhaW4gaXQgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIsIHBsZWFzZSBzZW5kIGFuIGVtYWlsXG4vLyB0byBsaWNlbnNlQG1hZ2VudG8uY29tIHNvIHdlIGNhbiBzZW5kIHlvdSBhIGNvcHkgaW1tZWRpYXRlbHkuXG4vL1xuLy8gRElTQ0xBSU1FUlxuLy9cbi8vIERvIG5vdCBlZGl0IG9yIGFkZCB0byB0aGlzIGZpbGUgaWYgeW91IHdpc2ggdG8gdXBncmFkZSBNYWdlbnRvIHRvIG5ld2VyXG4vLyB2ZXJzaW9ucyBpbiB0aGUgZnV0dXJlLiBJZiB5b3Ugd2lzaCB0byBjdXN0b21pemUgTWFnZW50byBmb3IgeW91clxuLy8gbmVlZHMgcGxlYXNlIHJlZmVyIHRvIGh0dHA6Ly93d3cubWFnZW50by5jb20gZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4vL1xuLy8gQGNhdGVnb3J5ICAgIGRlc2lnblxuLy8gQHBhY2thZ2UgICAgIHJ3ZF9kZWZhdWx0XG4vLyBAY29weXJpZ2h0ICAgQ29weXJpZ2h0IChjKSAyMDA2LTIwMTYgWC5jb21tZXJjZSwgSW5jLiBhbmQgYWZmaWxpYXRlcyAoaHR0cDovL3d3dy5tYWdlbnRvLmNvbSlcbi8vIEBsaWNlbnNlICAgICBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYWZsLTMuMC5waHAgIEFjYWRlbWljIEZyZWUgTGljZW5zZSAoQUZMIDMuMClcbi8vXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIENvbnRhY3RzXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4uY29udGFjdHMtaW5kZXgtaW5kZXgge1xuICAgIC5idXR0b25zLXNldCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAkdHJpbTtcbiAgICAgICAgbWF4LXdpZHRoOiA0MzVweDtcblxuICAgICAgICBwLnJlcXVpcmVkIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgYnAobWF4LXdpZHRoLCAkYnAtc21hbGwpIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMwcHg7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcblxuICAgICAgICAgICAgYnV0dG9uIHtcbiAgICAgICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMHB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBwLnJlcXVpcmVkIHtcbiAgICAgICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvL1xuLy8gTWFnZW50b1xuLy9cbi8vIE5PVElDRSBPRiBMSUNFTlNFXG4vL1xuLy8gVGhpcyBzb3VyY2UgZmlsZSBpcyBzdWJqZWN0IHRvIHRoZSBBY2FkZW1pYyBGcmVlIExpY2Vuc2UgKEFGTCAzLjApXG4vLyB0aGF0IGlzIGJ1bmRsZWQgd2l0aCB0aGlzIHBhY2thZ2UgaW4gdGhlIGZpbGUgTElDRU5TRV9BRkwudHh0LlxuLy8gSXQgaXMgYWxzbyBhdmFpbGFibGUgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIgYXQgdGhpcyBVUkw6XG4vLyBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYWZsLTMuMC5waHBcbi8vIElmIHlvdSBkaWQgbm90IHJlY2VpdmUgYSBjb3B5IG9mIHRoZSBsaWNlbnNlIGFuZCBhcmUgdW5hYmxlIHRvXG4vLyBvYnRhaW4gaXQgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIsIHBsZWFzZSBzZW5kIGFuIGVtYWlsXG4vLyB0byBsaWNlbnNlQG1hZ2VudG8uY29tIHNvIHdlIGNhbiBzZW5kIHlvdSBhIGNvcHkgaW1tZWRpYXRlbHkuXG4vL1xuLy8gRElTQ0xBSU1FUlxuLy9cbi8vIERvIG5vdCBlZGl0IG9yIGFkZCB0byB0aGlzIGZpbGUgaWYgeW91IHdpc2ggdG8gdXBncmFkZSBNYWdlbnRvIHRvIG5ld2VyXG4vLyB2ZXJzaW9ucyBpbiB0aGUgZnV0dXJlLiBJZiB5b3Ugd2lzaCB0byBjdXN0b21pemUgTWFnZW50byBmb3IgeW91clxuLy8gbmVlZHMgcGxlYXNlIHJlZmVyIHRvIGh0dHA6Ly93d3cubWFnZW50by5jb20gZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4vL1xuLy8gQGNhdGVnb3J5ICAgIGRlc2lnblxuLy8gQHBhY2thZ2UgICAgIHJ3ZF9kZWZhdWx0XG4vLyBAY29weXJpZ2h0ICAgQ29weXJpZ2h0IChjKSAyMDA2LTIwMTYgWC5jb21tZXJjZSwgSW5jLiBhbmQgYWZmaWxpYXRlcyAoaHR0cDovL3d3dy5tYWdlbnRvLmNvbSlcbi8vIEBsaWNlbnNlICAgICBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYWZsLTMuMC5waHAgIEFjYWRlbWljIEZyZWUgTGljZW5zZSAoQUZMIDMuMClcbi8vXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIFBheVBhbFxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnBheXBhbC1yZXZpZXctb3JkZXIge1xuICAgIEBpbmNsdWRlIGJwKG1heC13aWR0aCwgJGJwLW1lZGl1bSArIDEwMCkge1xuICAgICAgICBAaW5jbHVkZSBicChtaW4td2lkdGgsICRicC1tZWRpdW0gKyAxKSB7XG4gICAgICAgICAgICAuY29sMi1zZXQge1xuICAgICAgICAgICAgICAgIC5jb2wtMSxcbiAgICAgICAgICAgICAgICAuY29sLTIge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwcHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmluZm8tc2V0IHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJGdhcDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206ICRnYXA7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkYy1maWVsZHNldC1ib3JkZXItbGlnaHQ7XG4gICAgfVxuXG4gICAgLmJ1dHRvbnMtc2V0IHtcbiAgICAgICAgbWFyZ2luLXRvcDogMHB4O1xuICAgICAgICBwYWRkaW5nLXRvcDogMHB4O1xuICAgICAgICBib3JkZXI6IDA7XG5cbiAgICAgICAgYnV0dG9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRnYXA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicChtYXgtd2lkdGgsICRicC1tZWRpdW0pIHtcbiAgICAgICAgLmNvbC0xIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLmZpZWxkLmluYWN0aXZlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cblxuLnRvcC1jb250YWluZXIgLmJtbC1hZCB7XG4gICAgbWFyZ2luLXRvcDogJGVsZW1lbnQtc3BhY2luZztcbiAgICBtYXJnaW4tYm90dG9tOiAkZWxlbWVudC1zcGFjaW5nO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIHNwYW4ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgYSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmJtbC1hZCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuXG4gICAgc3BhbiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICB9XG4gICAgYSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIH1cbiAgICBhOmhvdmVyIHtcbiAgICAgICAgb3BhY2l0eTogMC43O1xuICAgIH1cbiAgICBpbWcge1xuICAgICAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDsgLy8gT3ZlcnJpZGUgaW5saW5lIHN0eWxlXG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICB9XG59XG5cbi8vIFByZXZlbnQgc21hbGwgMnB4IHNwYWNlIG9uIHJpZ2h0IHNpZGUgb2YgaW1hZ2Vcbi5jYXJ0LXRvdGFscy13cmFwcGVyIC5ibWwtYWQubGFyZ2UgaW1nIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW46IDA7XG59XG5cbkBpbmNsdWRlIGJwKG1heC13aWR0aCwgJGJwLW1lZGl1bSkge1xuICAgIC5ibWwtYWQuc21hbGwge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG59XG5cbkBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLW1lZGl1bSArIDEpIHtcbiAgICAuYm1sLWFkLmxhcmdlIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxufVxuXG5kaXYucGF5cGFsLWxvZ28ge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBtYXJnaW46ICR0cmltLXNtYWxsIDA7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgc3BhbiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICBhIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzcGFuID4gaW1nIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbi5jaGVja291dC10eXBlcyB7XG4gICAgZGl2LnBheXBhbC1sb2dvIHtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgfVxufVxuXG4uYm1sLWNoZWNrb3V0LXR5cGUge1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbn1cblxuLnNpZGViYXIge1xuICAgIC5wYXlwYWwtbG9nbyB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG5cbiAgICAgICAgPiBhIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC44O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAubGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogNHB4O1xuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZi1zaXplLXhzO1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvL1xuLy8gTWFnZW50b1xuLy9cbi8vIE5PVElDRSBPRiBMSUNFTlNFXG4vL1xuLy8gVGhpcyBzb3VyY2UgZmlsZSBpcyBzdWJqZWN0IHRvIHRoZSBBY2FkZW1pYyBGcmVlIExpY2Vuc2UgKEFGTCAzLjApXG4vLyB0aGF0IGlzIGJ1bmRsZWQgd2l0aCB0aGlzIHBhY2thZ2UgaW4gdGhlIGZpbGUgTElDRU5TRV9BRkwudHh0LlxuLy8gSXQgaXMgYWxzbyBhdmFpbGFibGUgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIgYXQgdGhpcyBVUkw6XG4vLyBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYWZsLTMuMC5waHBcbi8vIElmIHlvdSBkaWQgbm90IHJlY2VpdmUgYSBjb3B5IG9mIHRoZSBsaWNlbnNlIGFuZCBhcmUgdW5hYmxlIHRvXG4vLyBvYnRhaW4gaXQgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIsIHBsZWFzZSBzZW5kIGFuIGVtYWlsXG4vLyB0byBsaWNlbnNlQG1hZ2VudG8uY29tIHNvIHdlIGNhbiBzZW5kIHlvdSBhIGNvcHkgaW1tZWRpYXRlbHkuXG4vL1xuLy8gRElTQ0xBSU1FUlxuLy9cbi8vIERvIG5vdCBlZGl0IG9yIGFkZCB0byB0aGlzIGZpbGUgaWYgeW91IHdpc2ggdG8gdXBncmFkZSBNYWdlbnRvIHRvIG5ld2VyXG4vLyB2ZXJzaW9ucyBpbiB0aGUgZnV0dXJlLiBJZiB5b3Ugd2lzaCB0byBjdXN0b21pemUgTWFnZW50byBmb3IgeW91clxuLy8gbmVlZHMgcGxlYXNlIHJlZmVyIHRvIGh0dHA6Ly93d3cubWFnZW50by5jb20gZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4vL1xuLy8gQGNhdGVnb3J5ICAgIGRlc2lnblxuLy8gQHBhY2thZ2UgICAgIHJ3ZF9kZWZhdWx0XG4vLyBAY29weXJpZ2h0ICAgQ29weXJpZ2h0IChjKSAyMDA2LTIwMTYgWC5jb21tZXJjZSwgSW5jLiBhbmQgYWZmaWxpYXRlcyAoaHR0cDovL3d3dy5tYWdlbnRvLmNvbSlcbi8vIEBsaWNlbnNlICAgICBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYWZsLTMuMC5waHAgIEFjYWRlbWljIEZyZWUgTGljZW5zZSAoQUZMIDMuMClcbi8vXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIFJldmlldyAtIEN1c3RvbWVyXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4jY3VzdG9tZXItcmV2aWV3cyB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgZmxvYXQ6IG5vbmU7XG5cbiAgICAucmV2aWV3LWhlYWRpbmcge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJGMtbW9kdWxlLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjLW1vZHVsZS1ib3JkZXI7XG4gICAgICAgIHBhZGRpbmc6ICRnYXAgMCA1cHg7XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICAgICAgfVxuXG4gICAgICAgIGgyIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAucGFnZXIge1xuICAgICAgICAgICAgY2xlYXI6IG5vbmU7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcblxuICAgICAgICAgICAgLmNvdW50LWNvbnRhaW5lciB7XG4gICAgICAgICAgICAgICAgLmxpbWl0ZXIge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAkZi1zdGFjay1zcGVjaWFsO1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxMHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmFtb3VudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGgyIHtcbiAgICAgICAgY29sb3I6ICRjLWJsdWU7XG4gICAgICAgIGZvbnQtc2l6ZTogJGYtc2l6ZS14cztcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblxuICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgIGNvbG9yOiAkYy10ZXh0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaDMge1xuICAgICAgICBmb250LWZhbWlseTogJGYtc3RhY2stc3BlY2lhbDtcbiAgICAgICAgZm9udC1zaXplOiAkZi1zaXplLXhzO1xuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXG4gICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgY29sb3I6ICRjLWJsdWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuZmllbGRzZXQge1xuICAgICAgICBwYWRkaW5nLXRvcDogMjVweDtcbiAgICAgICAgd2lkdGg6IDQ3MHB4O1xuXG4gICAgICAgIGg0IHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkYy1tb2R1bGUtYm9yZGVyO1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRmLXN0YWNrLXNwZWNpYWw7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmLXNpemUteHM7XG4gICAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDVweDtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cbiAgICAgICAgICAgIGVtIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmZvcm0tbGlzdCB7XG4gICAgICAgICAgICBmb250LWZhbWlseTogJGYtc3RhY2stc3BlY2lhbDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGYtc2l6ZS14cztcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgICBtYXJnaW46ICRnYXAgMDtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgICB3aWR0aDogNDcwcHg7XG5cbiAgICAgICAgICAgIC5pbmxpbmUtbGFiZWwge1xuICAgICAgICAgICAgICAgIGxhYmVsIHtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAuaW5wdXQtYm94IHtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBsYWJlbCB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZi1zaXplLXhzO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRleHRhcmVhIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkYy1tb2R1bGUtYm9yZGVyO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaW5wdXQge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRjLW1vZHVsZS1ib3JkZXI7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAgICAgICAgICZbdHlwZT1cInRleHRcIl0ge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYnV0dG9ucy1zZXQge1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgd2lkdGg6IDQ3MHB4O1xuICAgIH1cblxuICAgIGRsIHtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRmLXN0YWNrLXNwZWNpYWw7XG4gICAgICAgIGZvbnQtc2l6ZTogJGYtc2l6ZS14cztcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJGdhcDtcblxuICAgICAgICBkdCB7XG4gICAgICAgICAgICBtYXJnaW46ICRnYXAgMDtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICBkZCB7XG4gICAgICAgICAgICBmb250LWZhbWlseTogJGYtc3RhY2stc2VyaWY7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmLXNpemU7XG4gICAgICAgICAgICBtYXJnaW46ICRnYXAgMDtcblxuICAgICAgICAgICAgLnJhdGluZ3MtdGFibGUge1xuICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAkZi1zdGFjay1zcGVjaWFsO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGYtc2l6ZS14cztcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAgICAgICAgIHRyIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAxNXB4O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5yZXZpZXctbGFiZWwge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMzAwcHg7XG4gICAgICAgICAgICAgICAgICAgIG1heC13aWR0aDogNzAlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGFibGUge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMTVweCAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAucmV2aWV3LW1ldGEge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYy1ibHVlO1xuICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAkZi1zdGFjay1zcGVjaWFsO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5yZXZpZXctc3VtbWFyeS10YWJsZSB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjLW1vZHVsZS1ib3JkZXI7XG4gICAgbWFyZ2luOiAwIDAgJGdhcDtcblxuICAgIHRoZWFkIHtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cbiAgICAgICAgdGgge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBwYWRkaW5nOiAxNXB4IDdweCAxMHB4IDhweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHRib2R5IHtcbiAgICAgICAgdGgge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogI0ZGRkZGRjtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGYtc2l6ZS14cztcbiAgICAgICAgfVxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuXG4gICAgICAgICAgICBsYWJlbCB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMTFweCAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnJhdGluZy1ib3gge1xuICAgICAgICAucmF0aW5nLW51bWJlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBAZXh0ZW5kIC5pY29uLXNwcml0ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTU5OXB4O1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxM3B4O1xuICAgICAgICAgICAgICAgIGhlaWdodDogJGYtc2l6ZTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNXB4O1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDJweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBSYXRpbmdzIC0gR2xvYmFsXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4ucmF0aW5ncy10YWJsZSB7XG4gICAgZm9udC1mYW1pbHk6ICRmLXN0YWNrLXNwZWNpYWw7XG4gICAgZm9udC1zaXplOiAkZi1zaXplLXhzO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cbiAgICB0aCB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7XG4gICAgfVxuXG4gICAgLnJhdGluZy1ib3gge1xuICAgICAgICBAZXh0ZW5kIC5pY29uLXNwcml0ZTtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtNjE1cHg7XG4gICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcbiAgICAgICAgaGVpZ2h0OiAxM3B4O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB0ZXh0LWluZGVudDogLTk5OTlweDtcbiAgICAgICAgd2lkdGg6IDY1cHg7XG5cbiAgICAgICAgLnJhdGluZyB7XG4gICAgICAgICAgICBAZXh0ZW5kIC5pY29uLXNwcml0ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAgLTYwMHB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBoZWlnaHQ6IDEzcHg7XG4gICAgICAgICAgICB0ZXh0LWluZGVudDogLTk5OTlweDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBpbmNsdWRlIGJwKG1heC13aWR0aCwgJGJwLW1lZGl1bSkge1xuICAgIGJvZHkucmV2aWV3LXByb2R1Y3QtbGlzdCB7XG4gICAgICAgIC5wcm9kdWN0LXZpZXcge1xuICAgICAgICAgICAgLnByb2R1Y3Qtc2hvcCB7XG4gICAgICAgICAgICAgICAgLnByaWNlLWluZm8ge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLmV4dHJhLWluZm8ge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDg0JTtcblxuICAgICAgICAgICAgICAgICAgICAucmF0aW5ncy10YWJsZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46ICRnYXAgMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICB0ciB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAxNXB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuQGluY2x1ZGUgYnAobWF4LXdpZHRoLCA1MzVweCkge1xuICAgIGJvZHkucmV2aWV3LXByb2R1Y3QtbGlzdCB7XG4gICAgICAgIC5wcm9kdWN0LXZpZXcge1xuICAgICAgICAgICAgLnByb2R1Y3Qtc2hvcCB7XG4gICAgICAgICAgICAgICAgLmV4dHJhLWluZm8ge1xuICAgICAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDA7XG5cbiAgICAgICAgICAgICAgICAgICAgLnJhdGluZ3MtdGFibGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHIge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBpbmNsdWRlIGJwKG1heC13aWR0aCwgNTIwcHgpIHtcbiAgICAjY3VzdG9tZXItcmV2aWV3cyB7XG4gICAgICAgIC5maWVsZHNldCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAgICAgLmZvcm0tbGlzdCB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgICAgICAgICAuaW5saW5lLWxhYmVsIHtcbiAgICAgICAgICAgICAgICAgICAgbGFiZWwsXG4gICAgICAgICAgICAgICAgICAgIC5pbnB1dC1ib3gge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuYnV0dG9ucy1zZXQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAucmV2aWV3LXN1bW1hcnktdGFibGUge1xuXG4gICAgICAgICAgICB0aGVhZCB7XG4gICAgICAgICAgICAgICAgdGgge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDBweDtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMHB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGJvZHkge1xuICAgICAgICAgICAgICAgIHRoIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwcHg7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDBweDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyMCU7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDBweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5yYXRpbmctYm94IHtcbiAgICAgICAgICAgICAgICB0ZXh0LWluZGVudDogMHB4O1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgICAgIGhlaWdodDogJGYtc2l6ZSAqIDEuNDtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAgICAgICAgIC5yYXRpbmcge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAucmF0aW5nLW51bWJlciB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgIH1cbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBpbmNsdWRlIGJwKG1heC13aWR0aCwgNDUwcHgpIHtcbiAgICAjY3VzdG9tZXItcmV2aWV3cyBkbCBkZCAucmF0aW5ncy10YWJsZSB0ciB7XG4gICAgICAgIGZsb2F0OiBub25lO1xuICAgIH1cbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogUmV2aWV3IFZpZXcgUGFnZVxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5yZXZpZXctcHJvZHVjdC12aWV3IHtcbiAgICAucHJvZHVjdC1yZXZpZXcge1xuICAgICAgICAucHJvZHVjdC1kZXRhaWxzIHtcbiAgICAgICAgICAgIGgyIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLnByb2R1Y3QtaW1nLWJveCB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogNTAlO1xuXG4gICAgICAgICAgICA+IGEge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAucHJvZHVjdC1pbWFnZSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBpbmNsdWRlIGJwKCdtYXgtd2lkdGgnLCAkYnAtbWVkaXVtKSB7XG4gICAgLnJldmlldy1wcm9kdWN0LXZpZXcge1xuICAgICAgICAucHJvZHVjdC1yZXZpZXcge1xuICAgICAgICAgICAgLnByb2R1Y3QtaW1nLWJveCB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLyogU2xpZGVyICovXG4uc2xpY2stc2xpZGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAtd2Via2l0LXRvdWNoLWNhbGxvdXQ6IG5vbmU7XG4gICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAta2h0bWwtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLW1zLXRvdWNoLWFjdGlvbjogcGFuLXk7XG4gICAgdG91Y2gtYWN0aW9uOiBwYW4teTtcbiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAuM3MgZWFzZS1vdXQ7XG5cbiAgICAmLnNsaWNrLWluaXRpYWxpemVkIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG59XG4uc2xpY2stbGlzdCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICB9XG4gICAgJi5kcmFnZ2luZyB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgY3Vyc29yOiBoYW5kO1xuICAgIH1cbn1cbi5zbGljay1zbGlkZXIgLnNsaWNrLXRyYWNrLCAuc2xpY2stc2xpZGVyIC5zbGljay1saXN0IHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbn1cbi5zbGljay10cmFjayB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiAwO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgJjpiZWZvcmUsICY6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICB9XG4gICAgJjphZnRlciB7XG4gICAgICAgIGNsZWFyOiBib3RoO1xuICAgIH1cbiAgICAuc2xpY2stbG9hZGluZyAmIHtcbiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIH1cbn1cbi5zbGljay1zbGlkZSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1pbi1oZWlnaHQ6IDFweDtcblxuICAgIFtkaXI9XCJydGxcIl0gJiB7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICB9XG4gICAgaW1nIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbiAgICAmLnNsaWNrLWxvYWRpbmcgaW1nIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gICAgZGlzcGxheTogbm9uZTtcblxuICAgICYuZHJhZ2dpbmcgaW1nIHtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgfVxuICAgIC5zbGljay1pbml0aWFsaXplZCAmIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICAgIC5zbGljay1sb2FkaW5nICYge1xuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgfVxuICAgIC5zbGljay12ZXJ0aWNhbCAmIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgfVxufVxuLnNsaWNrLWFycm93LnNsaWNrLWhpZGRlbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cbi5zbGljay1wcmV2LCAuc2xpY2stbmV4dCB7XG4gICAgYmFja2dyb3VuZDogJGMtdGV4dDtcbiAgICB3aWR0aDogMzRweDtcbiAgICBoZWlnaHQ6IDM0cHg7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBwYWRkaW5nOiA5cHggMDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICBtYXJnaW4tdG9wOiAtMTdweDtcbiAgICBsZWZ0OiAtNDBweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICBpbWcge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtMnB4O1xuICAgIH1cbn1cbi5zbGljay1uZXh0IHtcbiAgICBsZWZ0OiBhdXRvO1xuICAgIHJpZ2h0OiAtNDBweDtcblxuICAgIGltZyB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IC0ycHg7XG4gICAgfVxufVxuLnNsaWNrLWRvdHMge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIGJ1dHRvbiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICAgIGxpIHtcbiAgICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICAgYmFja2dyb3VuZDogI2I2YjZiNjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgbWFyZ2luOiAwIDdweDtcbiAgICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgICAgICBtYXJnaW4tdG9wOiAkdHJpbS1zO1xuXG4gICAgICAgICYuc2xpY2stYWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRjLWFjdGlvbjtcbiAgICAgICAgfVxuICAgIH1cbn1cbi5zbGljay1zbGlkZSB7XG4gICAgb3V0bGluZTogbm9uZVxufVxuLndvcmRwcmVzcy1sYXlvdXQtZnVsbHNjcmVlbiB7XG4gICAgLmZ1bGxzY3JlZW4tc2xpZGVyIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDFweDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogOTB2aDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkdHJpbS1zO1xuXG4gICAgICAgIC5zbGljay1saXN0IHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgLnNsaWNrLXRyYWNrIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLnNsaWNrLW5leHQge1xuICAgICAgICAgICAgcmlnaHQ6IDQwcHg7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgei1pbmRleDogMTA7XG4gICAgICAgIH1cbiAgICAgICAgLnNsaWNrLXByZXYge1xuICAgICAgICAgICAgbGVmdDogNDBweDtcbiAgICAgICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgei1pbmRleDogMTA7XG4gICAgICAgIH1cbiAgICAgICAgLnNsaWNrLWRvdHMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAkdHJpbTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICAgICBsaSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmLnNsaWNrLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRjLWFjdGlvbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLmNvbnRlbnQtd3JhcHBlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMTBweDtcbiAgICAgICAgfVxuICAgICAgICAuc2xpY2stc2xpZGUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcblxuICAgICAgICAgICAgJi5zbGlkZTEge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNBQUM1MDI7XG5cbiAgICAgICAgICAgICAgICAuaGVhZGxpbmUge1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTQwJSk7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogNDBweDtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBmb250LWZhbWlseTogJGYtc3RhY2stc3BlY2lhbDtcbiAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtc21hbGwgKyAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDY4cHg7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtbWVkaXVtICsgMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiA4OHB4O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLWxhcmdlICsgMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxMDBweDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICYuc2xpZGUyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL2Fib3V0LXNsaWRlci9zdG9jay5qcGcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4jYmxvY2stcHJvZHVjdGZpbmRlciB7XG4gICAgLnNsaWNrLXByZXYsIC5zbGljay1uZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZDogI2M5YzljOTtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9hcnJvdy1sZWZ0LnN2Zyk7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogMTJweDtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICB6LWluZGV4OiAxMDA7XG4gICAgICAgIHRvcDogMzAlO1xuICAgIH1cblxuICAgIC5zbGljay1wcmV2IHtcbiAgICAgICAgbGVmdDogMTVweDtcbiAgICB9XG5cbiAgICAuc2xpY2stbmV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWFnZXMvYXJyb3ctcmlnaHQuc3ZnKTtcbiAgICAgICAgcmlnaHQ6IDE1cHg7XG4gICAgfVxufSIsIi8vXG4vLyBNYWdlbnRvXG4vL1xuLy8gTk9USUNFIE9GIExJQ0VOU0Vcbi8vXG4vLyBUaGlzIHNvdXJjZSBmaWxlIGlzIHN1YmplY3QgdG8gdGhlIEFjYWRlbWljIEZyZWUgTGljZW5zZSAoQUZMIDMuMClcbi8vIHRoYXQgaXMgYnVuZGxlZCB3aXRoIHRoaXMgcGFja2FnZSBpbiB0aGUgZmlsZSBMSUNFTlNFX0FGTC50eHQuXG4vLyBJdCBpcyBhbHNvIGF2YWlsYWJsZSB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiBhdCB0aGlzIFVSTDpcbi8vIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9hZmwtMy4wLnBocFxuLy8gSWYgeW91IGRpZCBub3QgcmVjZWl2ZSBhIGNvcHkgb2YgdGhlIGxpY2Vuc2UgYW5kIGFyZSB1bmFibGUgdG9cbi8vIG9idGFpbiBpdCB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiwgcGxlYXNlIHNlbmQgYW4gZW1haWxcbi8vIHRvIGxpY2Vuc2VAbWFnZW50by5jb20gc28gd2UgY2FuIHNlbmQgeW91IGEgY29weSBpbW1lZGlhdGVseS5cbi8vXG4vLyBESVNDTEFJTUVSXG4vL1xuLy8gRG8gbm90IGVkaXQgb3IgYWRkIHRvIHRoaXMgZmlsZSBpZiB5b3Ugd2lzaCB0byB1cGdyYWRlIE1hZ2VudG8gdG8gbmV3ZXJcbi8vIHZlcnNpb25zIGluIHRoZSBmdXR1cmUuIElmIHlvdSB3aXNoIHRvIGN1c3RvbWl6ZSBNYWdlbnRvIGZvciB5b3VyXG4vLyBuZWVkcyBwbGVhc2UgcmVmZXIgdG8gaHR0cDovL3d3dy5tYWdlbnRvLmNvbSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbi8vXG4vLyBAY2F0ZWdvcnkgICAgZGVzaWduXG4vLyBAcGFja2FnZSAgICAgcndkX2RlZmF1bHRcbi8vIEBjb3B5cmlnaHQgICBDb3B5cmlnaHQgKGMpIDIwMDYtMjAxNiBYLmNvbW1lcmNlLCBJbmMuIGFuZCBhZmZpbGlhdGVzIChodHRwOi8vd3d3Lm1hZ2VudG8uY29tKVxuLy8gQGxpY2Vuc2UgICAgIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9hZmwtMy4wLnBocCAgQWNhZGVtaWMgRnJlZSBMaWNlbnNlIChBRkwgMy4wKVxuLy9cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogU2xpZGVzaG93XG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4uc2xpZGVzaG93LWNvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogJGdhcCAwO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRjLW1vZHVsZS1ib3JkZXItbGlnaHQ7XG5cbiAgICAuc2xpZGVzaG93IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBib3JkZXI6IDEwcHggc29saWQgI0ZGRkZGRjtcbiAgICAgICAgJiA+IGxpIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgLy8gaW4gY2FzZSBzY3JpcHQgZG9lcyBub3QgbG9hZFxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAxMDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4uc2xpZGVzaG93LXBhZ2VyIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgei1pbmRleDogMTE1O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IDBweDtcbiAgICB0b3A6IGF1dG87XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBAaW5jbHVkZSBub3Qtc2VsZWN0YWJsZTtcblxuICAgIHNwYW4ge1xuICAgICAgICBmb250LWZhbWlseTogYXJpYWw7XG4gICAgICAgIHdpZHRoOiA0NHB4O1xuICAgICAgICBoZWlnaHQ6IDQ0cHg7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgY29sb3I6ICNEREREREQ7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgJHBhZ2VyLXNpemU6IDE2cHg7XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkcGFnZXItc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHBhZ2VyLXNpemU7XG4gICAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAoLSRwYWdlci1zaXplLzIpO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogKC0kcGFnZXItc2l6ZS8yKTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDFweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkY7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyOmJlZm9yZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYy1idXR0b24taG92ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLmN5Y2xlLXBhZ2VyLWFjdGl2ZTpiZWZvcmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGMtYnV0dG9uLWFjdGl2ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYgPiAqIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cbn1cblxuLnNsaWRlc2hvdy1wcmV2LFxuLnNsaWRlc2hvdy1uZXh0IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHdpZHRoOiAxNSU7XG4gICAgbWF4LXdpZHRoOiA4MHB4O1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvcGFjaXR5OiAwLjY7XG4gICAgei1pbmRleDogMTEwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBAaW5jbHVkZSBub3Qtc2VsZWN0YWJsZSgpO1xuXG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgZm9udC1zaXplOiAwO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbWFyZ2luLXRvcDogLTE1cHg7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgJi5kaXNhYmxlZCB7XG4gICAgICAgIG9wYWNpdHk6IC41O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgfVxufVxuXG4uc2xpZGVzaG93LXByZXYge1xuICAgIGxlZnQ6IDhweDtcblxuICAgICY6YmVmb3JlIHtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAxNXB4IDE1cHggMTVweCAwO1xuICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICNGRkZGRkYgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiAxMHB4O1xuICAgIH1cblxuICAgICY6aG92ZXI6YmVmb3JlIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAkYy1idXR0b24taG92ZXIgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gICAgfVxufVxuXG4uc2xpZGVzaG93LW5leHQge1xuICAgIHJpZ2h0OiA4cHg7XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGJvcmRlci13aWR0aDogMTVweCAwIDE1cHggMTVweDtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjRkZGRkZGO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgcmlnaHQ6IDEwcHg7XG4gICAgfVxuXG4gICAgJjpob3ZlcjpiZWZvcmUge1xuICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICRjLWJ1dHRvbi1ob3ZlcjtcbiAgICB9XG59XG5cbi5jeWNsZS1jYXB0aW9uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIGJvdHRvbTogMTVweDtcbiAgICByaWdodDogMTVweDtcbiAgICB6LWluZGV4OiAxMTA7XG59XG5cbi5jeWNsZS1vdmVybGF5IHtcbiAgICBmb250LWZhbWlseTogdGFob21hLCBhcmlhbDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHotaW5kZXg6IDEyMDtcbiAgICBiYWNrZ3JvdW5kOiBibGFjaztcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgcGFkZGluZzogMTVweDtcbiAgICBvcGFjaXR5OiAuNTtcbn1cbiIsIi8vXG4vLyBNYWdlbnRvXG4vL1xuLy8gTk9USUNFIE9GIExJQ0VOU0Vcbi8vXG4vLyBUaGlzIHNvdXJjZSBmaWxlIGlzIHN1YmplY3QgdG8gdGhlIEFjYWRlbWljIEZyZWUgTGljZW5zZSAoQUZMIDMuMClcbi8vIHRoYXQgaXMgYnVuZGxlZCB3aXRoIHRoaXMgcGFja2FnZSBpbiB0aGUgZmlsZSBMSUNFTlNFX0FGTC50eHQuXG4vLyBJdCBpcyBhbHNvIGF2YWlsYWJsZSB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiBhdCB0aGlzIFVSTDpcbi8vIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9hZmwtMy4wLnBocFxuLy8gSWYgeW91IGRpZCBub3QgcmVjZWl2ZSBhIGNvcHkgb2YgdGhlIGxpY2Vuc2UgYW5kIGFyZSB1bmFibGUgdG9cbi8vIG9idGFpbiBpdCB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiwgcGxlYXNlIHNlbmQgYW4gZW1haWxcbi8vIHRvIGxpY2Vuc2VAbWFnZW50by5jb20gc28gd2UgY2FuIHNlbmQgeW91IGEgY29weSBpbW1lZGlhdGVseS5cbi8vXG4vLyBESVNDTEFJTUVSXG4vL1xuLy8gRG8gbm90IGVkaXQgb3IgYWRkIHRvIHRoaXMgZmlsZSBpZiB5b3Ugd2lzaCB0byB1cGdyYWRlIE1hZ2VudG8gdG8gbmV3ZXJcbi8vIHZlcnNpb25zIGluIHRoZSBmdXR1cmUuIElmIHlvdSB3aXNoIHRvIGN1c3RvbWl6ZSBNYWdlbnRvIGZvciB5b3VyXG4vLyBuZWVkcyBwbGVhc2UgcmVmZXIgdG8gaHR0cDovL3d3dy5tYWdlbnRvLmNvbSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbi8vXG4vLyBAY2F0ZWdvcnkgICAgZGVzaWduXG4vLyBAcGFja2FnZSAgICAgcndkX2RlZmF1bHRcbi8vIEBjb3B5cmlnaHQgICBDb3B5cmlnaHQgKGMpIDIwMDYtMjAxNiBYLmNvbW1lcmNlLCBJbmMuIGFuZCBhZmZpbGlhdGVzIChodHRwOi8vd3d3Lm1hZ2VudG8uY29tKVxuLy8gQGxpY2Vuc2UgICAgIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9hZmwtMy4wLnBocCAgQWNhZGVtaWMgRnJlZSBMaWNlbnNlIChBRkwgMy4wKVxuLy9cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogV2lzaGxpc3RcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiN3aXNobGlzdC10YWJsZSB7XG4gICAgdGgge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgJi5jbGVhbi10YWJsZSB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkZi1zdGFjay1zcGVjaWFsO1xuICAgICAgICBmb250LXNpemU6ICRmLXNpemUteHM7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgIHRoIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkYy10YWJsZS1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxNXB4O1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoZWFkIHRoIHtcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAkZi1zdGFjay1zcGVjaWFsO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZi1zaXplLXhzO1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wcm9kdWN0LW5hbWUge1xuICAgICAgICBmb250LXNpemU6ICRmLXNpemUteGw7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkZi1zdGFjay1zcGVjaWFsO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXG4gICAgICAgIGEge1xuICAgICAgICAgICAgY29sb3I6ICRjLWxpbms7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAud2lzaGxpc3Qtc2t1IHtcbiAgICAgICAgZm9udC1zaXplOiAkZi1zaXplLXh4cztcbiAgICAgICAgZm9udC1mYW1pbHk6ICRmLXN0YWNrLXNwZWNpYWw7XG4gICAgICAgIG1hcmdpbjogNXB4IDA7XG4gICAgfVxuXG4gICAgdGV4dGFyZWEge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkYy1pbnB1dC1ib3JkZXI7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDQ1cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogJGYtc2l6ZS14eHM7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkZi1zdGFjay1zcGVjaWFsO1xuXG4gICAgICAgICY6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuICAgICAgICAmOi1tb3otcGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuICAgICAgICAmOjotbW96LXBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cbiAgICAgICAgJjotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGMtaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLml0ZW0tbWFuYWdlIHtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIG1heC13aWR0aDogNDUwcHg7XG4gICAgICAgIHBhZGRpbmctdG9wOiA1cHg7XG5cbiAgICAgICAgLmJ1dHRvbiB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmLXNpemUteHhzO1xuICAgICAgICAgICAgcGFkZGluZzogM3B4IDVweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jYXJ0LWNlbGwge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgdGQge1xuICAgICAgICAmLmN1c3RvbWVyLXdpc2hsaXN0LWl0ZW0taW1hZ2Uge1xuICAgICAgICAgICAgd2lkdGg6IDExM3B4O1xuICAgICAgICB9XG5cbiAgICAgICAgJi5jdXN0b21lci13aXNobGlzdC1pdGVtLXF1YW50aXR5IHtcbiAgICAgICAgICAgIHdpZHRoOiAzZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLmN1c3RvbWVyLXdpc2hsaXN0LWl0ZW0tcHJpY2Uge1xuICAgICAgICAgICAgd2lkdGg6IDEyMHB4O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5jdXN0b21lci13aXNobGlzdC1pdGVtLWNhcnQge1xuICAgICAgICAgICAgd2lkdGg6IDE1MHB4O1xuXG4gICAgICAgICAgICAuYnV0dG9uIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICRmLXNpemUteHM7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogJGdhcDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAzcHggNXB4O1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAudHJ1bmNhdGVkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkZ2FwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICA+IHAge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5yZW1vdmUtd2hpc2hsaXN0LWl0ZW0ge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmJ0bi1yZW1vdmUge1xuICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLmN1c3RvbWVyLXdpc2hsaXN0LWl0ZW0tcmVtb3ZlIHtcbiAgICAgICAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLmJ1dHRvbixcbiAgICAgICAgYnV0dG9uIHtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5wcmljZS1ib3gge1xuICAgICAgICBmb250LWZhbWlseTogJGYtc3RhY2stc3BlY2lhbDtcbiAgICAgICAgZm9udC1zaXplOiAkZi1zaXplLXhzO1xuXG4gICAgICAgIC5wcmljZSB7XG4gICAgICAgICAgICBjb2xvcjogJGMtdGV4dDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5naWZ0cmVnaXN0eS1hZGQge1xuICAgICAgICBtYXJnaW4tdG9wOiA1cHg7XG5cbiAgICAgICAgLmNoYW5nZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgbGkge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgY29sb3I6ICRjLWFjdGlvbjtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDNweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC50cnVuY2F0ZWQge1xuICAgICAgICAuZGV0YWlscyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRjLWFjdGlvbjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHRkW2RhdGEtcndkLWxhYmVsXTpiZWZvcmUge1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgIH1cbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBpbmNsdWRlIGJwKG1heC13aWR0aCwgJGJwLXhsYXJnZSkge1xuICAgICN3aXNobGlzdC10YWJsZSB7XG4gICAgICAgICYuY2xlYW4tdGFibGUge1xuICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJGJveC1zcGFjaW5nO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRib3gtc3BhY2luZztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBpbmNsdWRlIGJwKG1heC13aWR0aCwgJGJwLWxhcmdlKSB7XG4gICAgI3dpc2hsaXN0LXRhYmxlIHtcbiAgICAgICAgJi5jbGVhbi10YWJsZSB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDVweDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDVweDtcblxuICAgICAgICAgICAgdGV4dGFyZWEge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwcHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYuY3VzdG9tZXItd2lzaGxpc3QtaXRlbS1jYXJ0IHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTEwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAucHJvZHVjdC1uYW1lIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGYtc2l6ZS1zO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuQGluY2x1ZGUgYnAobWF4LXdpZHRoLCAkYnAtbWVkaXVtKSB7XG4gICAgI3dpc2hsaXN0LXRhYmxlIHtcbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wcm9kdWN0LW5hbWUge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZi1zaXplLXhsO1xuICAgICAgICB9XG5cbiAgICAgICAgdGV4dGFyZWEge1xuICAgICAgICAgICAgaGVpZ2h0OiA2OHB4O1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgLml0ZW0tbWFuYWdlIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0ZC5jdXN0b21lci13aXNobGlzdC1pdGVtLWltYWdlIHtcbiAgICAgICAgICAgIHdpZHRoOiA3MHB4O1xuXG4gICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgIHdpZHRoOiA3MHB4O1xuICAgICAgICAgICAgICAgIGhlaWdodDogNzBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRkLmN1c3RvbWVyLXdpc2hsaXN0LWl0ZW0tY2FydCB7XG4gICAgICAgICAgICBwIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAucmVtb3ZlLXdoaXNobGlzdC1pdGVtIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDRweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRkLmN1c3RvbWVyLXdpc2hsaXN0LWl0ZW0tY2FydCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuQGluY2x1ZGUgYnAobWF4LXdpZHRoLCAkYnAtc21hbGwpIHtcbiAgICAjd2lzaGxpc3QtdGFibGUge1xuICAgICAgICB0ZC5jdXN0b21lci13aXNobGlzdC1pdGVtLXF1YW50aXR5IHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRkLmN1c3RvbWVyLXdpc2hsaXN0LWl0ZW0taW1hZ2UsXG4gICAgICAgIHRoLmN1c3RvbWVyLXdpc2hsaXN0LWl0ZW0taW1hZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBpbmNsdWRlIGJwKG1heC13aWR0aCwgJGJwLXhzbWFsbCkge1xuICAgICN3aXNobGlzdC10YWJsZSB7XG4gICAgICAgIHRyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoLmN1c3RvbWVyLXdpc2hsaXN0LWl0ZW0taW1hZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICAmLmN1c3RvbWVyLXdpc2hsaXN0LWl0ZW0taW1hZ2UsXG4gICAgICAgICAgICAmLmN1c3RvbWVyLXdpc2hsaXN0LWl0ZW0taW5mbyxcbiAgICAgICAgICAgICYuY3VzdG9tZXItd2lzaGxpc3QtaXRlbS1xdWFudGl0eSxcbiAgICAgICAgICAgICYuY3VzdG9tZXItd2lzaGxpc3QtaXRlbS1wcmljZSxcbiAgICAgICAgICAgICYuY3VzdG9tZXItd2lzaGxpc3QtaXRlbS1jYXJ0IHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgICAgICAgICBlbXB0eS1jZWxsczogaGlkZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5jdXN0b21lci13aXNobGlzdC1pdGVtLWltYWdlIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuXG4gICAgICAgICAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTEzcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDExM3B4O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLmN1c3RvbWVyLXdpc2hsaXN0LWl0ZW0tcXVhbnRpdHksXG4gICAgICAgICAgICAmLmN1c3RvbWVyLXdpc2hsaXN0LWl0ZW0tcHJpY2Uge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICR0cmltLXNtYWxsO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5jYXJ0LWNlbGwge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5wcmljZS1ib3gge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5jdXN0b21lci13aXNobGlzdC1pdGVtLWNhcnQge1xuICAgICAgICAgICAgICAgIC5jYXJ0LWNlbGwge1xuICAgICAgICAgICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDQ4JTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICA+IHAge1xuICAgICAgICAgICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiA0OCU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLmN1c3RvbWVyLXdpc2hsaXN0LWl0ZW0tcmVtb3ZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAxNXB4O1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwcHg7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMHB4O1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYuY2xlYW4tdGFibGUge1xuICAgICAgICAgICAgdGQuY3VzdG9tZXItd2lzaGxpc3QtaXRlbS1jYXJ0IHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogV2lzaGxpc3QgU2lkZWJhclxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLmJsb2NrLXdpc2hsaXN0IHtcblxuICAgIC5taW5pLXByb2R1Y3RzLWxpc3QgPiBsaTpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDVweDtcbiAgICB9XG5cbiAgICAucHJvZHVjdC1kZXRhaWxzIC5wcm9kdWN0LW5hbWUge1xuICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICAgIH1cblxuICAgIC5wcmljZS1ib3gge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuICAgIC5wcmljZS1ib3gsXG4gICAgLnByaWNlLWJveCAucHJpY2UsXG4gICAgLmxpbmstY2FydCB7XG4gICAgICAgIGZvbnQtc2l6ZTogJGYtc2l6ZS14cztcbiAgICB9XG5cbiAgICAubGluay1jYXJ0IHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIG1hcmdpbi1yaWdodDogN3B4O1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiA3cHg7XG4gICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICRjLW1vZHVsZS1ib3JkZXItbGlnaHQ7XG4gICAgfVxuXG59XG4iLCIvL1xuLy8gTWFnZW50b1xuLy9cbi8vIE5PVElDRSBPRiBMSUNFTlNFXG4vL1xuLy8gVGhpcyBzb3VyY2UgZmlsZSBpcyBzdWJqZWN0IHRvIHRoZSBBY2FkZW1pYyBGcmVlIExpY2Vuc2UgKEFGTCAzLjApXG4vLyB0aGF0IGlzIGJ1bmRsZWQgd2l0aCB0aGlzIHBhY2thZ2UgaW4gdGhlIGZpbGUgTElDRU5TRV9BRkwudHh0LlxuLy8gSXQgaXMgYWxzbyBhdmFpbGFibGUgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIgYXQgdGhpcyBVUkw6XG4vLyBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYWZsLTMuMC5waHBcbi8vIElmIHlvdSBkaWQgbm90IHJlY2VpdmUgYSBjb3B5IG9mIHRoZSBsaWNlbnNlIGFuZCBhcmUgdW5hYmxlIHRvXG4vLyBvYnRhaW4gaXQgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIsIHBsZWFzZSBzZW5kIGFuIGVtYWlsXG4vLyB0byBsaWNlbnNlQG1hZ2VudG8uY29tIHNvIHdlIGNhbiBzZW5kIHlvdSBhIGNvcHkgaW1tZWRpYXRlbHkuXG4vL1xuLy8gRElTQ0xBSU1FUlxuLy9cbi8vIERvIG5vdCBlZGl0IG9yIGFkZCB0byB0aGlzIGZpbGUgaWYgeW91IHdpc2ggdG8gdXBncmFkZSBNYWdlbnRvIHRvIG5ld2VyXG4vLyB2ZXJzaW9ucyBpbiB0aGUgZnV0dXJlLiBJZiB5b3Ugd2lzaCB0byBjdXN0b21pemUgTWFnZW50byBmb3IgeW91clxuLy8gbmVlZHMgcGxlYXNlIHJlZmVyIHRvIGh0dHA6Ly93d3cubWFnZW50by5jb20gZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4vL1xuLy8gQGNhdGVnb3J5ICAgIGRlc2lnblxuLy8gQHBhY2thZ2UgICAgIHJ3ZF9kZWZhdWx0XG4vLyBAY29weXJpZ2h0ICAgQ29weXJpZ2h0IChjKSAyMDA2LTIwMTYgWC5jb21tZXJjZSwgSW5jLiBhbmQgYWZmaWxpYXRlcyAoaHR0cDovL3d3dy5tYWdlbnRvLmNvbSlcbi8vIEBsaWNlbnNlICAgICBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYWZsLTMuMC5waHAgIEFjYWRlbWljIEZyZWUgTGljZW5zZSAoQUZMIDMuMClcbi8vXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIENoZWNrb3V0IC0gTWluaSBjYXJ0XG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4uaGVhZGVyLW1pbmljYXJ0IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAubWluaWNhcnQtbWVzc2FnZSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAkYm94LXNwYWNpbmc7XG4gICAgfVxuXG4gICAgLmVtcHR5IHtcbiAgICAgICAgcGFkZGluZzogJGJveC1zcGFjaW5nO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgLm1pbmljYXJ0LXdyYXBwZXIge1xuICAgICAgICBAaW5jbHVkZSBsb2FkaW5nT3ZlcmxheSgpO1xuICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cblxuICAgIC5ibG9jay1jYXJ0IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gICAgLmJsb2NrLXN1YnRpdGxlIHtcbiAgICAgICAgY29sb3I6ICM1MEE0Q0Y7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkZi1zdGFjay1zcGVjaWFsO1xuICAgICAgICBmb250LXNpemU6IDEwcHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICBwYWRkaW5nOiA1cHg7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMHB4O1xuXG4gICAgICAgIC5jbG9zZSB7XG4gICAgICAgICAgICB3aWR0aDogNDBweDtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRjLXRleHQ7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICAgICAgZm9udC1zaXplOiAzMHB4O1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAtOHB4O1xuICAgICAgICAgICAgcmlnaHQ6ICRib3gtc3BhY2luZyAtIDEzcHg7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLm1pbmktcHJvZHVjdHMtbGlzdCB7XG4gICAgICAgIHBhZGRpbmc6ICRib3gtc3BhY2luZztcbiAgICAgICAgcGFkZGluZy10b3A6IDBweDtcblxuICAgICAgICBsaSB7XG4gICAgICAgICAgICBwYWRkaW5nOiA4cHggNXB4IDhweCAxMXB4O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNEREREREQ7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICYubGFzdCB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAucHJvZHVjdC1kZXRhaWxzIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucHJvZHVjdC1kZXRhaWxzIHtcbiAgICAgICAgLnByb2R1Y3QtbmFtZSB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMHB4O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG5cbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYy1hY3Rpb247XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuaW5mby13cmFwcGVyIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41ZW07XG5cbiAgICAgICAgdGgge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRnYXA7XG4gICAgICAgIH1cbiAgICAgICAgdGQge1xuICAgICAgICAgICAgY29sb3I6ICRjLXRleHQtcHJpbWFyeTtcbiAgICAgICAgICAgIGNsZWFyOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5xdHktd3JhcHBlciB7XG4gICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAzM3B4O1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAzM3B4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLnF0eSB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDRweDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDRweDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMnB4O1xuICAgICAgICAgICAgd2lkdGg6IDMuMmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLnF1YW50aXR5LWJ1dHRvbiB7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuXG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDEwMG1zO1xuXG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYudmlzaWJsZSB7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5zdWJ0b3RhbCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNEREREREQ7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDJlbTtcblxuICAgICAgICAubGFiZWwge1xuICAgICAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuICAgICAgICAucHJpY2Uge1xuICAgICAgICAgICAgY29sb3I6ICRjLXRleHQtcHJpbWFyeTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5taW5pY2FydC1hY3Rpb25zIHtcbiAgICAgICAgcGFkZGluZzogJGJveC1zcGFjaW5nO1xuICAgICAgICBtYXJnaW4tdG9wOiAwcHg7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgIC5jaGVja291dC1idXR0b24ge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAxNDVweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jYXJ0LWxpbmsge1xuICAgICAgICAgICAgaGVpZ2h0OiAzM3B4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDM5cHg7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZi1zaXplLXM7XG4gICAgICAgIH1cblxuICAgICAgICAucGF5cGFsLWxvZ28ge1xuICAgICAgICAgICAgLnBheXBhbC1vciB7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICNtaW5pY2FydC1lcnJvci1tZXNzYWdlIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjb2xvcjogcmVkO1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgICNtaW5pY2FydC1zdWNjZXNzLW1lc3NhZ2Uge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGNvbG9yOiBncmVlbjtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAvL2hpZGUgamNhcm91c2VsIGNvbnRyb2xzIHVudGlsIGNhcm91c2VsIGlzIHByb3Blcmx5IGludGVncmF0ZWQgd2l0aCBkZXNpZ25cbiAgICAuamNhcm91c2VsLWNvbnRyb2wtcHJldixcbiAgICAuamNhcm91c2VsLWNvbnRyb2wtbmV4dCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG4uaGVhZGVyLW1pbmljYXJ0LnNraXAtYWN0aXZlIC5ibG9jay1jYXJ0LFxuLmJsb2NrLWNhcnQuc2tpcC1hY3RpdmUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuXG5AaW5jbHVkZSBicChtaW4td2lkdGgsICRicC1tZWRpdW0gKyAxKSB7XG4gICAgLmNoZWNrb3V0LXR5cGVzLm1pbmljYXJ0IHtcbiAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGJwKG1heC13aWR0aCwgJGJwLXhzbWFsbCkge1xuICAgIC5oZWFkZXItbWluaWNhcnQgYS5za2lwLWNhcnQge1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgIH1cbn1cblxuQGluY2x1ZGUgYnAobWF4LXdpZHRoLCAkYnAtbWVkaXVtKSB7XG4gICAgLmhlYWRlci1taW5pY2FydCB7XG4gICAgICAgIC5zdWJ0b3RhbCB7XG4gICAgICAgICAgICAubGFiZWwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYy10ZXh0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC5taW5pY2FydC13cmFwcGVyIHtcbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRURFREVEO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLnF1YW50aXR5LWJ1dHRvbiB7XG4gICAgICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5oZWFkZXItbWluaWNhcnQgLmJsb2NrLWNhcnQge1xuICAgICAgICAgICAgcGFkZGluZzogJHRyaW0tc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAuaGVhZGVyLW1pbmljYXJ0IC5ibG9jay1zdWJ0aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogJHRyaW0tc21hbGwgKyA0NHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLm1pbmljYXJ0LWFjdGlvbnMge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMzcHg7XG5cbiAgICAgICAgICAgIC5jYXJ0LWxpbmsge1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICByaWdodDogJGJveC1zcGFjaW5nO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmNoZWNrb3V0LXR5cGVzLm1pbmljYXJ0IHtcbiAgICAgICAgICAgICAgICBsaSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAgICAgICAgICAgICAucGF5cGFsLWxvZ28ge1xuICAgICAgICAgICAgICAgICAgICAgICAgPiBhIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC5ibWxfYnV0dG9uIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgLnBheXBhbC1vciB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMCAxMHB4IDVweCAxMHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiA0MHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5AaW5jbHVkZSBicChtYXgtd2lkdGgsIDc0MHB4KSB7XG4gICAgLmhlYWRlci1taW5pY2FydCB7XG4gICAgICAgIC5taW5pY2FydC1hY3Rpb25zIHtcbiAgICAgICAgICAgIC5jYXJ0LWxpbmsge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuY2hlY2tvdXQtdHlwZXMubWluaWNhcnQge1xuICAgICAgICAgICAgICAgIGxpIHtcbiAgICAgICAgICAgICAgICAgICAgLnBheXBhbC1sb2dvIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC5wYXlwYWwtb3IsXG4gICAgICAgICAgICAgICAgICAgICAgICAucGF5cGFsLWJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC5wYXlwYWwtb3Ige1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBpbmNsdWRlIGJwKG1heC13aWR0aCwgJGJwLXNtYWxsKSB7XG4gICAgLmhlYWRlci1taW5pY2FydCB7XG4gICAgICAgIC5taW5pY2FydC1hY3Rpb25zIHtcbiAgICAgICAgICAgIC5jaGVja291dC1idXR0b24ge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLy9cbi8vIE1hZ2VudG9cbi8vXG4vLyBOT1RJQ0UgT0YgTElDRU5TRVxuLy9cbi8vIFRoaXMgc291cmNlIGZpbGUgaXMgc3ViamVjdCB0byB0aGUgQWNhZGVtaWMgRnJlZSBMaWNlbnNlIChBRkwgMy4wKVxuLy8gdGhhdCBpcyBidW5kbGVkIHdpdGggdGhpcyBwYWNrYWdlIGluIHRoZSBmaWxlIExJQ0VOU0VfQUZMLnR4dC5cbi8vIEl0IGlzIGFsc28gYXZhaWxhYmxlIHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViIGF0IHRoaXMgVVJMOlxuLy8gaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2FmbC0zLjAucGhwXG4vLyBJZiB5b3UgZGlkIG5vdCByZWNlaXZlIGEgY29weSBvZiB0aGUgbGljZW5zZSBhbmQgYXJlIHVuYWJsZSB0b1xuLy8gb2J0YWluIGl0IHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViLCBwbGVhc2Ugc2VuZCBhbiBlbWFpbFxuLy8gdG8gbGljZW5zZUBtYWdlbnRvLmNvbSBzbyB3ZSBjYW4gc2VuZCB5b3UgYSBjb3B5IGltbWVkaWF0ZWx5LlxuLy9cbi8vIERJU0NMQUlNRVJcbi8vXG4vLyBEbyBub3QgZWRpdCBvciBhZGQgdG8gdGhpcyBmaWxlIGlmIHlvdSB3aXNoIHRvIHVwZ3JhZGUgTWFnZW50byB0byBuZXdlclxuLy8gdmVyc2lvbnMgaW4gdGhlIGZ1dHVyZS4gSWYgeW91IHdpc2ggdG8gY3VzdG9taXplIE1hZ2VudG8gZm9yIHlvdXJcbi8vIG5lZWRzIHBsZWFzZSByZWZlciB0byBodHRwOi8vd3d3Lm1hZ2VudG8uY29tIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuLy9cbi8vIEBjYXRlZ29yeSAgICBkZXNpZ25cbi8vIEBwYWNrYWdlICAgICByd2RfZGVmYXVsdFxuLy8gQGNvcHlyaWdodCAgIENvcHlyaWdodCAoYykgMjAwNi0yMDE2IFguY29tbWVyY2UsIEluYy4gYW5kIGFmZmlsaWF0ZXMgKGh0dHA6Ly93d3cubWFnZW50by5jb20pXG4vLyBAbGljZW5zZSAgICAgaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2FmbC0zLjAucGhwICBBY2FkZW1pYyBGcmVlIExpY2Vuc2UgKEFGTCAzLjApXG4vL1xuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBTZWFyY2ggLSBBdXRvIFN1Z2dlc3RcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5zZWFyY2gtYXV0b2NvbXBsZXRlIHtcbiAgICBsZWZ0OiAwICFpbXBvcnRhbnQ7XG4gICAgb3ZlcmZsb3c6IHZpc2libGUgIWltcG9ydGFudDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgICB0b3A6IDE1cHggIWltcG9ydGFudDtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgIHotaW5kZXg6IDIwMDtcblxuICAgIHVsIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGMtbW9kdWxlLWJvcmRlci1oaWdobGlnaHQ7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgIGxpIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkYy1tb2R1bGUtYmFja2dyb3VuZDtcbiAgICAgICAgICAgIGNvbG9yOiAkYy1saW5rO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZi1zaXplLXhzO1xuICAgICAgICAgICAgcGFkZGluZzogNHB4IDZweDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYy1saW5rLWhvdmVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLnNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYy1hY3Rpb247XG4gICAgICAgICAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuYW1vdW50IHtcbiAgICAgICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICY6YmVmb3JlIHtcbiAgICAgICAgQGluY2x1ZGUgdHJpYW5nbGUodXAsIDdweCwgJGMtYWN0aW9uKTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0b3A6IC03cHg7XG4gICAgfVxufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBTZWFyY2ggLSBBZHZhbmNlZFxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLmFkdmFuY2VkLXNlYXJjaCB7XG4gICAgYmFja2dyb3VuZDogJGMtbW9kdWxlLWJhY2tncm91bmQ7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGMtbW9kdWxlLWJvcmRlci1saWdodDtcbiAgICBwYWRkaW5nOiAkdHJpbTtcblxuICAgIHNlbGVjdC5tdWx0aXNlbGVjdCB7XG4gICAgICAgIG9wdGlvbiB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGMtbW9kdWxlLWJvcmRlci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJweCA1cHg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBpbmNsdWRlIGJwKG1heC13aWR0aCwgJGJwLXhzbWFsbCkge1xuICAgIC5hZHZhbmNlZC1zZWFyY2gge1xuICAgICAgICBwYWRkaW5nOiAkdHJpbS1zbWFsbDtcbiAgICB9XG59XG4iLCIvL1xuLy8gTWFnZW50b1xuLy9cbi8vIE5PVElDRSBPRiBMSUNFTlNFXG4vL1xuLy8gVGhpcyBzb3VyY2UgZmlsZSBpcyBzdWJqZWN0IHRvIHRoZSBBY2FkZW1pYyBGcmVlIExpY2Vuc2UgKEFGTCAzLjApXG4vLyB0aGF0IGlzIGJ1bmRsZWQgd2l0aCB0aGlzIHBhY2thZ2UgaW4gdGhlIGZpbGUgTElDRU5TRV9BRkwudHh0LlxuLy8gSXQgaXMgYWxzbyBhdmFpbGFibGUgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIgYXQgdGhpcyBVUkw6XG4vLyBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYWZsLTMuMC5waHBcbi8vIElmIHlvdSBkaWQgbm90IHJlY2VpdmUgYSBjb3B5IG9mIHRoZSBsaWNlbnNlIGFuZCBhcmUgdW5hYmxlIHRvXG4vLyBvYnRhaW4gaXQgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIsIHBsZWFzZSBzZW5kIGFuIGVtYWlsXG4vLyB0byBsaWNlbnNlQG1hZ2VudG8uY29tIHNvIHdlIGNhbiBzZW5kIHlvdSBhIGNvcHkgaW1tZWRpYXRlbHkuXG4vL1xuLy8gRElTQ0xBSU1FUlxuLy9cbi8vIERvIG5vdCBlZGl0IG9yIGFkZCB0byB0aGlzIGZpbGUgaWYgeW91IHdpc2ggdG8gdXBncmFkZSBNYWdlbnRvIHRvIG5ld2VyXG4vLyB2ZXJzaW9ucyBpbiB0aGUgZnV0dXJlLiBJZiB5b3Ugd2lzaCB0byBjdXN0b21pemUgTWFnZW50byBmb3IgeW91clxuLy8gbmVlZHMgcGxlYXNlIHJlZmVyIHRvIGh0dHA6Ly93d3cubWFnZW50by5jb20gZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4vL1xuLy8gQGNhdGVnb3J5ICAgIGRlc2lnblxuLy8gQHBhY2thZ2UgICAgIHJ3ZF9kZWZhdWx0XG4vLyBAY29weXJpZ2h0ICAgQ29weXJpZ2h0IChjKSAyMDA2LTIwMTYgWC5jb21tZXJjZSwgSW5jLiBhbmQgYWZmaWxpYXRlcyAoaHR0cDovL3d3dy5tYWdlbnRvLmNvbSlcbi8vIEBsaWNlbnNlICAgICBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYWZsLTMuMC5waHAgIEFjYWRlbWljIEZyZWUgTGljZW5zZSAoQUZMIDMuMClcbi8vXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIEFjY291bnQgLSBSZXZpZXdzXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4ucHJvZHVjdC1yZXZpZXcge1xuICAgIC5wcm9kdWN0LWltZy1ib3gge1xuICAgICAgICBwLmxhYmVsIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkYy1tb2R1bGUtYm9yZGVyO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZi1zaXplLXhsO1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRmLXN0YWNrLXNwZWNpYWw7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206ICRnYXA7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgLnJhdGluZy1ib3gge1xuICAgICAgICAgICAgbWFyZ2luOiAxNXB4IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucHJvZHVjdC1kZXRhaWxzIHtcbiAgICAgICAgaDIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjLW1vZHVsZS1ib3JkZXI7XG4gICAgICAgICAgICBjb2xvcjogIzMzOTlDQztcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGYtc2l6ZS14bDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgICAgICBmb250LWZhbWlseTogJGYtc3RhY2stc3BlY2lhbDtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAkZ2FwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnJhdGluZ3MtdGFibGUge1xuICAgICAgICBmb250LWZhbWlseTogJGYtc3RhY2stc3BlY2lhbDtcblxuICAgICAgICB0aCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkZ2FwO1xuICAgICAgICB9XG5cbiAgICAgICAgdHIge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmLXNpemUteHM7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICRnYXA7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnJhdGluZ3MtZGVzY3JpcHRpb24ge1xuICAgICAgICBkdCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGMtbW9kdWxlLWJvcmRlcjtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGYtc2l6ZS14bDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgICAgICBmb250LWZhbWlseTogJGYtc3RhY2stc3BlY2lhbDtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgICAgICAgICBwYWRkaW5nOiAkZ2FwIDA7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgZGQge1xuICAgICAgICAgICAgY29sb3I6ICM3MzczNzM7XG4gICAgICAgICAgICBmb250LWZhbWlseTogJGYtc3RhY2stc3BlY2lhbDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGYtc2l6ZS1zO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuQGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtbWVkaXVtICsgMSkge1xuICAgIC5wcm9kdWN0LXJldmlldyB7XG4gICAgICAgIC5yYXRpbmdzLXRhYmxlIHtcbiAgICAgICAgICAgIHRyIHtcbiAgICAgICAgICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBpbmNsdWRlIGJwKG1pbi13aWR0aCwgMTEyNnB4KSB7XG4gICAgLnByb2R1Y3QtcmV2aWV3IHtcbiAgICAgICAgLnJhdGluZ3MtdGFibGUge1xuICAgICAgICAgICAgdHIge1xuICAgICAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMTVweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBpbmNsdWRlIGJwKG1heC13aWR0aCwgMzIwcHgpIHtcbiAgICAucHJvZHVjdC1yZXZpZXcge1xuICAgICAgICAucmF0aW5ncy10YWJsZSB7XG4gICAgICAgICAgICB0ciB7XG4gICAgICAgICAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvL1xuLy8gTWFnZW50b1xuLy9cbi8vIE5PVElDRSBPRiBMSUNFTlNFXG4vL1xuLy8gVGhpcyBzb3VyY2UgZmlsZSBpcyBzdWJqZWN0IHRvIHRoZSBBY2FkZW1pYyBGcmVlIExpY2Vuc2UgKEFGTCAzLjApXG4vLyB0aGF0IGlzIGJ1bmRsZWQgd2l0aCB0aGlzIHBhY2thZ2UgaW4gdGhlIGZpbGUgTElDRU5TRV9BRkwudHh0LlxuLy8gSXQgaXMgYWxzbyBhdmFpbGFibGUgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIgYXQgdGhpcyBVUkw6XG4vLyBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYWZsLTMuMC5waHBcbi8vIElmIHlvdSBkaWQgbm90IHJlY2VpdmUgYSBjb3B5IG9mIHRoZSBsaWNlbnNlIGFuZCBhcmUgdW5hYmxlIHRvXG4vLyBvYnRhaW4gaXQgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIsIHBsZWFzZSBzZW5kIGFuIGVtYWlsXG4vLyB0byBsaWNlbnNlQG1hZ2VudG8uY29tIHNvIHdlIGNhbiBzZW5kIHlvdSBhIGNvcHkgaW1tZWRpYXRlbHkuXG4vL1xuLy8gRElTQ0xBSU1FUlxuLy9cbi8vIERvIG5vdCBlZGl0IG9yIGFkZCB0byB0aGlzIGZpbGUgaWYgeW91IHdpc2ggdG8gdXBncmFkZSBNYWdlbnRvIHRvIG5ld2VyXG4vLyB2ZXJzaW9ucyBpbiB0aGUgZnV0dXJlLiBJZiB5b3Ugd2lzaCB0byBjdXN0b21pemUgTWFnZW50byBmb3IgeW91clxuLy8gbmVlZHMgcGxlYXNlIHJlZmVyIHRvIGh0dHA6Ly93d3cubWFnZW50by5jb20gZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4vL1xuLy8gQGNhdGVnb3J5ICAgIGRlc2lnblxuLy8gQHBhY2thZ2UgICAgIHJ3ZF9kZWZhdWx0XG4vLyBAY29weXJpZ2h0ICAgQ29weXJpZ2h0IChjKSAyMDA2LTIwMTYgWC5jb21tZXJjZSwgSW5jLiBhbmQgYWZmaWxpYXRlcyAoaHR0cDovL3d3dy5tYWdlbnRvLmNvbSlcbi8vIEBsaWNlbnNlICAgICBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYWZsLTMuMC5waHAgIEFjYWRlbWljIEZyZWUgTGljZW5zZSAoQUZMIDMuMClcbi8vXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIENNUyBQYWdlc1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gQ29udGVudCBmb3Igc3RhdGljIHBhZ2VzXG5cbi5jbXMtcGFnZS12aWV3LFxuLmNtcy1uby1yb3V0ZSB7XG4gICAgLnBhZ2UtdGl0bGUsXG4gICAgLnBhZ2UtaGVhZCB7XG4gICAgICAgIGgxLFxuICAgICAgICBoMyB7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuc3RkIHtcblxuICAgICAgICBpbWcge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgcCB7XG4gICAgICAgICAgICBjb2xvcjogJGMtdGV4dDtcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAkZi1zdGFjay1zZXJpZjtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICAgICAgICAgICAgY29sb3I6ICRjLWdyYXk7XG4gICAgICAgIH1cblxuICAgICAgICBoMSB7XG4gICAgICAgICAgICBjb2xvcjogJGMtdGV4dC1wcmltYXJ5O1xuICAgICAgICB9XG5cbiAgICAgICAgaDIge1xuICAgICAgICAgICAgY29sb3I6ICRjLXRleHQtcHJpbWFyeTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkYy10ZXh0O1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRmLXN0YWNrLXNlcmlmO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZi1zaXplO1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuY29sLWxlZnQge1xuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uY21zLW5vLXJvdXRlIHtcbiAgICAuc3RkIHtcbiAgICAgICAgaDIge1xuICAgICAgICAgICAgY29sb3I6ICRjLXRleHQ7XG4gICAgICAgICAgICBmb250LXNpemU6IDQ4cHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLXNtYWxsICsgMSkge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogNjhweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBkaXYubGVmdCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDY4MHB4O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIH1cbiAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG4gICAgICAgIC5hbnQ0MDQge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMjBweDtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmNtcy1wYWdlLXZpZXcgLnN0ZCxcbi5jbXMtaG9tZSAuc3RkLFxuLmNtcy1uby1yb3V0ZSAuc3RkIHtcbiAgICAubWVzc2FnZXMge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkYm94LXNwYWNpbmc7XG5cbiAgICAgICAgdWwge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIGxpIHtcbiAgICAgICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAkZi1zdGFjay1zYW5zO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBBY2NvcmRpdGlvblxuXG4jYWNjb3JkaW9uIHtcbiAgICBAaW5jbHVkZSBhY2NvcmRpb247XG5cbiAgICBsaSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAucGx1c2ltYWdlIGgyIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogJGdhcDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gU2l0ZW1hcFxuXG4ucGFnZS1zaXRlbWFwIHtcbiAgICAubGlua3Mge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIG1hcmdpbjogMCAyMHB4IDAgMDtcblxuICAgICAgICBhIHsgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgfVxuXG4gICAgLnNpdGVtYXAge1xuICAgICAgICBwYWRkaW5nOiAwIDIwcHg7XG4gICAgICAgIG1hcmdpbjogMTVweCAwO1xuICAgICAgICBmb250LXNpemU6ICRmLXNpemUteHM7XG5cbiAgICAgICAgbGkge1xuICAgICAgICAgICAgbWFyZ2luOiAzcHggMDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gQ29udGFjdCBwYWdlXG5cbi5jb250YWN0cy1pbmRleC1pbmRleCB7XG4gICAgaDEge1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgfVxufVxuXG4jY29udGFjdEZvcm0ge1xuICAgIHBhZGRpbmctbGVmdDogNDBweDtcblxuICAgIGgyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgfVxuXG4gICAgLmZpZWxkc2V0IC5sZWdlbmQgKyAucmVxdWlyZWQge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBicChtYXgtd2lkdGgsICRicC1tZWRpdW0pIHtcblxuICAgICNjb250YWN0Rm9ybSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICB9XG59XG4iLCIvL1xuLy8gTWFnZW50b1xuLy9cbi8vIE5PVElDRSBPRiBMSUNFTlNFXG4vL1xuLy8gVGhpcyBzb3VyY2UgZmlsZSBpcyBzdWJqZWN0IHRvIHRoZSBBY2FkZW1pYyBGcmVlIExpY2Vuc2UgKEFGTCAzLjApXG4vLyB0aGF0IGlzIGJ1bmRsZWQgd2l0aCB0aGlzIHBhY2thZ2UgaW4gdGhlIGZpbGUgTElDRU5TRV9BRkwudHh0LlxuLy8gSXQgaXMgYWxzbyBhdmFpbGFibGUgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIgYXQgdGhpcyBVUkw6XG4vLyBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYWZsLTMuMC5waHBcbi8vIElmIHlvdSBkaWQgbm90IHJlY2VpdmUgYSBjb3B5IG9mIHRoZSBsaWNlbnNlIGFuZCBhcmUgdW5hYmxlIHRvXG4vLyBvYnRhaW4gaXQgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIsIHBsZWFzZSBzZW5kIGFuIGVtYWlsXG4vLyB0byBsaWNlbnNlQG1hZ2VudG8uY29tIHNvIHdlIGNhbiBzZW5kIHlvdSBhIGNvcHkgaW1tZWRpYXRlbHkuXG4vL1xuLy8gRElTQ0xBSU1FUlxuLy9cbi8vIERvIG5vdCBlZGl0IG9yIGFkZCB0byB0aGlzIGZpbGUgaWYgeW91IHdpc2ggdG8gdXBncmFkZSBNYWdlbnRvIHRvIG5ld2VyXG4vLyB2ZXJzaW9ucyBpbiB0aGUgZnV0dXJlLiBJZiB5b3Ugd2lzaCB0byBjdXN0b21pemUgTWFnZW50byBmb3IgeW91clxuLy8gbmVlZHMgcGxlYXNlIHJlZmVyIHRvIGh0dHA6Ly93d3cubWFnZW50by5jb20gZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4vL1xuLy8gQGNhdGVnb3J5ICAgIGRlc2lnblxuLy8gQHBhY2thZ2UgICAgIHJ3ZF9kZWZhdWx0XG4vLyBAY29weXJpZ2h0ICAgQ29weXJpZ2h0IChjKSAyMDA2LTIwMTYgWC5jb21tZXJjZSwgSW5jLiBhbmQgYWZmaWxpYXRlcyAoaHR0cDovL3d3dy5tYWdlbnRvLmNvbSlcbi8vIEBsaWNlbnNlICAgICBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYWZsLTMuMC5waHAgIEFjYWRlbWljIEZyZWUgTGljZW5zZSAoQUZMIDMuMClcbi8vXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIFByaWNpbmcgQ29uZGl0aW9uc1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnByaWNlLWJveCB7XG4gICAgLm1pbmltYWwtcHJpY2UtbGluayB7XG4gICAgICAgIC5sYWJlbCB7XG4gICAgICAgICAgICBjb2xvcjogJGMtcmVkO1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRmLXN0YWNrLXNwZWNpYWw7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmLXNpemUteHM7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubWFwLWluZm8ge1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5jYXRhbG9nLXByb2R1Y3QtdmlldyB7XG4gICAgLm1hcC1pbmZvIHtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgICAgICAgPiBzcGFuIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgICAgICAgfVxuICAgICAgICAucHJpY2UtYm94Lm1hcC1pbmZvID4gYSB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8vXG4vLyBNYWdlbnRvXG4vL1xuLy8gTk9USUNFIE9GIExJQ0VOU0Vcbi8vXG4vLyBUaGlzIHNvdXJjZSBmaWxlIGlzIHN1YmplY3QgdG8gdGhlIEFjYWRlbWljIEZyZWUgTGljZW5zZSAoQUZMIDMuMClcbi8vIHRoYXQgaXMgYnVuZGxlZCB3aXRoIHRoaXMgcGFja2FnZSBpbiB0aGUgZmlsZSBMSUNFTlNFX0FGTC50eHQuXG4vLyBJdCBpcyBhbHNvIGF2YWlsYWJsZSB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiBhdCB0aGlzIFVSTDpcbi8vIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9hZmwtMy4wLnBocFxuLy8gSWYgeW91IGRpZCBub3QgcmVjZWl2ZSBhIGNvcHkgb2YgdGhlIGxpY2Vuc2UgYW5kIGFyZSB1bmFibGUgdG9cbi8vIG9idGFpbiBpdCB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiwgcGxlYXNlIHNlbmQgYW4gZW1haWxcbi8vIHRvIGxpY2Vuc2VAbWFnZW50by5jb20gc28gd2UgY2FuIHNlbmQgeW91IGEgY29weSBpbW1lZGlhdGVseS5cbi8vXG4vLyBESVNDTEFJTUVSXG4vL1xuLy8gRG8gbm90IGVkaXQgb3IgYWRkIHRvIHRoaXMgZmlsZSBpZiB5b3Ugd2lzaCB0byB1cGdyYWRlIE1hZ2VudG8gdG8gbmV3ZXJcbi8vIHZlcnNpb25zIGluIHRoZSBmdXR1cmUuIElmIHlvdSB3aXNoIHRvIGN1c3RvbWl6ZSBNYWdlbnRvIGZvciB5b3VyXG4vLyBuZWVkcyBwbGVhc2UgcmVmZXIgdG8gaHR0cDovL3d3dy5tYWdlbnRvLmNvbSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbi8vXG4vLyBAY2F0ZWdvcnkgICAgZGVzaWduXG4vLyBAcGFja2FnZSAgICAgcndkX2RlZmF1bHRcbi8vIEBjb3B5cmlnaHQgICBDb3B5cmlnaHQgKGMpIDIwMDYtMjAxNiBYLmNvbW1lcmNlLCBJbmMuIGFuZCBhZmZpbGlhdGVzIChodHRwOi8vd3d3Lm1hZ2VudG8uY29tKVxuLy8gQGxpY2Vuc2UgICAgIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9hZmwtMy4wLnBocCAgQWNhZGVtaWMgRnJlZSBMaWNlbnNlIChBRkwgMy4wKVxuLy9cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogQ29va2llc1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLm5vdGljZS1jb29raWUge1xuICAgIC5ub3RpY2UtaW5uZXIge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm5vdGljZS10ZXh0IHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIG1heC13aWR0aDogOTAlO1xuICAgICAgICBwYWRkaW5nLXRvcDogNHB4O1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuXG4gICAgICAgIHAge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206ICg0MHB4IC0gJGYtc2l6ZS14eHMpIC8gMjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYWN0aW9ucyB7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206ICg0MHB4IC0gJGYtc2l6ZS14eHMpIC8gMjtcbiAgICB9XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5AaW5jbHVkZSBicChtYXgtd2lkdGgsICRicC1sYXJnZSkge1xuICAgIC5ub3RpY2UtY29va2llIHtcbiAgICAgICAgLm5vdGljZS10ZXh0IHtcbiAgICAgICAgICAgIG1heC13aWR0aDogODYlO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuQGluY2x1ZGUgYnAobWF4LXdpZHRoLCAkYnAtbWVkaXVtKSB7XG5cbiAgICAubm90aWNlLWNvb2tpZSB7XG4gICAgICAgIHBhZGRpbmc6IDAgMjBweDtcblxuICAgICAgICAubm90aWNlLXRleHQge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiA4MiU7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBpbmNsdWRlIGJwKG1heC13aWR0aCwgNjIwcHgpIHtcblxuICAgIC5ub3RpY2UtY29va2llIHtcbiAgICAgICAgcGFkZGluZzogMCAyMHB4O1xuXG4gICAgICAgIC5ub3RpY2UtaW5uZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogbGVmdCAxMHB4O1xuXG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5ub3RpY2UtdGV4dCB7XG4gICAgICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLmFjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8vXG4vLyBNYWdlbnRvXG4vL1xuLy8gTk9USUNFIE9GIExJQ0VOU0Vcbi8vXG4vLyBUaGlzIHNvdXJjZSBmaWxlIGlzIHN1YmplY3QgdG8gdGhlIEFjYWRlbWljIEZyZWUgTGljZW5zZSAoQUZMIDMuMClcbi8vIHRoYXQgaXMgYnVuZGxlZCB3aXRoIHRoaXMgcGFja2FnZSBpbiB0aGUgZmlsZSBMSUNFTlNFX0FGTC50eHQuXG4vLyBJdCBpcyBhbHNvIGF2YWlsYWJsZSB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiBhdCB0aGlzIFVSTDpcbi8vIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9hZmwtMy4wLnBocFxuLy8gSWYgeW91IGRpZCBub3QgcmVjZWl2ZSBhIGNvcHkgb2YgdGhlIGxpY2Vuc2UgYW5kIGFyZSB1bmFibGUgdG9cbi8vIG9idGFpbiBpdCB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiwgcGxlYXNlIHNlbmQgYW4gZW1haWxcbi8vIHRvIGxpY2Vuc2VAbWFnZW50by5jb20gc28gd2UgY2FuIHNlbmQgeW91IGEgY29weSBpbW1lZGlhdGVseS5cbi8vXG4vLyBESVNDTEFJTUVSXG4vL1xuLy8gRG8gbm90IGVkaXQgb3IgYWRkIHRvIHRoaXMgZmlsZSBpZiB5b3Ugd2lzaCB0byB1cGdyYWRlIE1hZ2VudG8gdG8gbmV3ZXJcbi8vIHZlcnNpb25zIGluIHRoZSBmdXR1cmUuIElmIHlvdSB3aXNoIHRvIGN1c3RvbWl6ZSBNYWdlbnRvIGZvciB5b3VyXG4vLyBuZWVkcyBwbGVhc2UgcmVmZXIgdG8gaHR0cDovL3d3dy5tYWdlbnRvLmNvbSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbi8vXG4vLyBAY2F0ZWdvcnkgICAgZGVzaWduXG4vLyBAcGFja2FnZSAgICAgcndkX2RlZmF1bHRcbi8vIEBjb3B5cmlnaHQgICBDb3B5cmlnaHQgKGMpIDIwMDYtMjAxNiBYLmNvbW1lcmNlLCBJbmMuIGFuZCBhZmZpbGlhdGVzIChodHRwOi8vd3d3Lm1hZ2VudG8uY29tKVxuLy8gQGxpY2Vuc2UgICAgIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9hZmwtMy4wLnBocCAgQWNhZGVtaWMgRnJlZSBMaWNlbnNlIChBRkwgMy4wKVxuLy9cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogVGFnc1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuI2FkZFRhZ0Zvcm0gYnV0dG9uIHtcbiAgICBtYXJnaW4tdG9wOiA1cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cbiNhZGRUYWdGb3JtIC5mb3JtLWFkZCB7XG4gICAgbWFyZ2luLXRvcDogMTBweDtcbn1cbi5wcm9kdWN0LXRhZ3Mge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjLW1vZHVsZS1iYWNrZ3JvdW5kO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRjLW1vZHVsZS1ib3JkZXI7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICBwYWRkaW5nOiA1cHggMSUgMTBweDtcbiAgICB3aWR0aDogOTglO1xufVxuLnByb2R1Y3QtdGFncyBsaSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiAxNXB4O1xufVxuLnByb2R1Y3QtdGFncyBsaS5sYXN0IHtcbiAgICBtYXJnaW4tcmlnaHQ6IDBweDtcbn1cbi50YWdzLWxpc3Qge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG4udGFncy1saXN0ID4gbGkge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbi1yaWdodDogMTBweDtcbn1cbi5ibG9jay10YWdzIC5hY3Rpb25zID4gYSB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xufVxuLm15LXRhZy1lZGl0IHtcbiAgICAuYnV0dG9uLmJ0bi1yZW1vdmUge1xuICAgICAgICBwYWRkaW5nOiAwO1xuXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICB9XG4gICAgfVxufVxuQGluY2x1ZGUgYnAgKG1heC13aWR0aCwgJGJwLW1lZGl1bSkge1xuICAgIC50YWdzLWxpc3QgPiBsaSxcbiAgICAudGFncy1saXN0IHtcbiAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgfVxufVxuIiwiLy9cbi8vIE1hZ2VudG9cbi8vXG4vLyBOT1RJQ0UgT0YgTElDRU5TRVxuLy9cbi8vIFRoaXMgc291cmNlIGZpbGUgaXMgc3ViamVjdCB0byB0aGUgQWNhZGVtaWMgRnJlZSBMaWNlbnNlIChBRkwgMy4wKVxuLy8gdGhhdCBpcyBidW5kbGVkIHdpdGggdGhpcyBwYWNrYWdlIGluIHRoZSBmaWxlIExJQ0VOU0VfQUZMLnR4dC5cbi8vIEl0IGlzIGFsc28gYXZhaWxhYmxlIHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViIGF0IHRoaXMgVVJMOlxuLy8gaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2FmbC0zLjAucGhwXG4vLyBJZiB5b3UgZGlkIG5vdCByZWNlaXZlIGEgY29weSBvZiB0aGUgbGljZW5zZSBhbmQgYXJlIHVuYWJsZSB0b1xuLy8gb2J0YWluIGl0IHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViLCBwbGVhc2Ugc2VuZCBhbiBlbWFpbFxuLy8gdG8gbGljZW5zZUBtYWdlbnRvLmNvbSBzbyB3ZSBjYW4gc2VuZCB5b3UgYSBjb3B5IGltbWVkaWF0ZWx5LlxuLy9cbi8vIERJU0NMQUlNRVJcbi8vXG4vLyBEbyBub3QgZWRpdCBvciBhZGQgdG8gdGhpcyBmaWxlIGlmIHlvdSB3aXNoIHRvIHVwZ3JhZGUgTWFnZW50byB0byBuZXdlclxuLy8gdmVyc2lvbnMgaW4gdGhlIGZ1dHVyZS4gSWYgeW91IHdpc2ggdG8gY3VzdG9taXplIE1hZ2VudG8gZm9yIHlvdXJcbi8vIG5lZWRzIHBsZWFzZSByZWZlciB0byBodHRwOi8vd3d3Lm1hZ2VudG8uY29tIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuLy9cbi8vIEBjYXRlZ29yeSAgICBkZXNpZ25cbi8vIEBwYWNrYWdlICAgICByd2RfZGVmYXVsdFxuLy8gQGNvcHlyaWdodCAgIENvcHlyaWdodCAoYykgMjAwNi0yMDE2IFguY29tbWVyY2UsIEluYy4gYW5kIGFmZmlsaWF0ZXMgKGh0dHA6Ly93d3cubWFnZW50by5jb20pXG4vLyBAbGljZW5zZSAgICAgaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2FmbC0zLjAucGhwICBBY2FkZW1pYyBGcmVlIExpY2Vuc2UgKEFGTCAzLjApXG4vL1xuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBDYXB0Y2hhXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLmNhcHRjaGEtbm90ZSB7XG4gICAgY2xlYXI6IGxlZnQ7XG4gICAgcGFkZGluZy10b3A6IDVweDtcbn1cbi5jYXB0Y2hhLWltYWdlIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogMjU4cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cbi5jYXB0Y2hhLWltYWdlIC5jYXB0Y2hhLWltZyB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2I2YjZiNjtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuICAgIHdpZHRoOiAxMDAlO1xufVxuLnJlZ2lzdGVyZWQtdXNlcnMgLmNhcHRjaGEtaW1hZ2UgeyBtYXJnaW46IDAgfVxuLmNhcHRjaGEtcmVsb2FkIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMnB4O1xuICAgIHJpZ2h0OiAycHg7XG59XG4uY2FwdGNoYS1yZWxvYWQucmVmcmVzaGluZyB7XG4gICAgYW5pbWF0aW9uOiByb3RhdGUgMS41cyBpbmZpbml0ZSBsaW5lYXI7XG4gICAgLXdlYmtpdC1hbmltYXRpb246IHJvdGF0ZSAxLjVzIGluZmluaXRlIGxpbmVhcjtcbiAgICAtbW96LWFuaW1hdGlvbjogcm90YXRlIDEuNXMgaW5maW5pdGUgbGluZWFyO1xufVxuLmN1c3RvbWVyLWFjY291bnQtY3JlYXRlIC5zY2FmZm9sZC1mb3JtIC5jYXB0Y2hhLWlucHV0LWNvbnRhaW5lciBsYWJlbDpmaXJzdC1jaGlsZCB7IHdpZHRoOiAxMDAlIH1cbi5jYXB0Y2hhLXJlbG9hZCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiA0cHg7XG4gICAgdG9wOiA0cHg7XG59XG4uY2FwdGNoYS1pbWcgeyBib3JkZXI6IDIwcHggc29saWQgI2JiYiB9XG4uY2FwdGNoYS1pbnB1dC1jb250YWluZXIgeyBtYXJnaW4tYm90dG9tOiAxMHB4IH1cbi5jb250cm9sLm5ld3NsZXR0ZXItYm94LCAuY2FwdGNoYS1pbnB1dC1jb250YWluZXIsIC5jYXB0Y2hhLWltZy1jb250YWluZXIge1xuICAgIGZsb2F0OiBub25lO1xuICAgIGNsZWFyOiBib3RoO1xuXG4gICAgJjphZnRlcntcbiAgICAgICAgY29udGVudDonJztcbiAgICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgfVxufVxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogQ2hlY2tvdXQgQmlsbGluZyBGaXggdG8gcGxhY2UgdGhlIENhcHRjaGEgcHJvcGVybHlcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4jY28tYmlsbGluZy1mb3JtIHVsLmZvcm0tbGlzdCA+IC5jb250cm9sIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW46IDAgMCA1cHg7XG4gICAgd2lkdGg6IDEwMCU7XG59XG4iLCIvL1xuLy8gTWFnZW50b1xuLy9cbi8vIE5PVElDRSBPRiBMSUNFTlNFXG4vL1xuLy8gVGhpcyBzb3VyY2UgZmlsZSBpcyBzdWJqZWN0IHRvIHRoZSBBY2FkZW1pYyBGcmVlIExpY2Vuc2UgKEFGTCAzLjApXG4vLyB0aGF0IGlzIGJ1bmRsZWQgd2l0aCB0aGlzIHBhY2thZ2UgaW4gdGhlIGZpbGUgTElDRU5TRV9BRkwudHh0LlxuLy8gSXQgaXMgYWxzbyBhdmFpbGFibGUgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIgYXQgdGhpcyBVUkw6XG4vLyBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYWZsLTMuMC5waHBcbi8vIElmIHlvdSBkaWQgbm90IHJlY2VpdmUgYSBjb3B5IG9mIHRoZSBsaWNlbnNlIGFuZCBhcmUgdW5hYmxlIHRvXG4vLyBvYnRhaW4gaXQgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIsIHBsZWFzZSBzZW5kIGFuIGVtYWlsXG4vLyB0byBsaWNlbnNlQG1hZ2VudG8uY29tIHNvIHdlIGNhbiBzZW5kIHlvdSBhIGNvcHkgaW1tZWRpYXRlbHkuXG4vL1xuLy8gRElTQ0xBSU1FUlxuLy9cbi8vIERvIG5vdCBlZGl0IG9yIGFkZCB0byB0aGlzIGZpbGUgaWYgeW91IHdpc2ggdG8gdXBncmFkZSBNYWdlbnRvIHRvIG5ld2VyXG4vLyB2ZXJzaW9ucyBpbiB0aGUgZnV0dXJlLiBJZiB5b3Ugd2lzaCB0byBjdXN0b21pemUgTWFnZW50byBmb3IgeW91clxuLy8gbmVlZHMgcGxlYXNlIHJlZmVyIHRvIGh0dHA6Ly93d3cubWFnZW50by5jb20gZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4vL1xuLy8gQGNhdGVnb3J5ICAgIGRlc2lnblxuLy8gQHBhY2thZ2UgICAgIHJ3ZF9kZWZhdWx0XG4vLyBAY29weXJpZ2h0ICAgQ29weXJpZ2h0IChjKSAyMDA2LTIwMTYgWC5jb21tZXJjZSwgSW5jLiBhbmQgYWZmaWxpYXRlcyAoaHR0cDovL3d3dy5tYWdlbnRvLmNvbSlcbi8vIEBsaWNlbnNlICAgICBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYWZsLTMuMC5waHAgIEFjYWRlbWljIEZyZWUgTGljZW5zZSAoQUZMIDMuMClcbi8vXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIEFjY291bnQgLSBPcmRlcnMsIEludm9pY2VzLCBDcmVkaXQgTWVtb3MuXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG5AaW5jbHVkZSBicCAobWF4LXdpZHRoLCAkYnAteHNtYWxsKSB7XG4gICAgLnNhbGVzLW9yZGVyLWludm9pY2UsXG4gICAgLnNhbGVzLW9yZGVyLWNyZWRpdG1lbW8sXG4gICAgLnNhbGVzLW9yZGVyLXNoaXBtZW50IHtcbiAgICAgICAgLnN1Yi10aXRsZSB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGYtc2l6ZS1sO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cbiAgICAgICAgLm9yZGVyLWxpbmtzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLy9cbi8vIE1hZ2VudG9cbi8vXG4vLyBOT1RJQ0UgT0YgTElDRU5TRVxuLy9cbi8vIFRoaXMgc291cmNlIGZpbGUgaXMgc3ViamVjdCB0byB0aGUgQWNhZGVtaWMgRnJlZSBMaWNlbnNlIChBRkwgMy4wKVxuLy8gdGhhdCBpcyBidW5kbGVkIHdpdGggdGhpcyBwYWNrYWdlIGluIHRoZSBmaWxlIExJQ0VOU0VfQUZMLnR4dC5cbi8vIEl0IGlzIGFsc28gYXZhaWxhYmxlIHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViIGF0IHRoaXMgVVJMOlxuLy8gaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2FmbC0zLjAucGhwXG4vLyBJZiB5b3UgZGlkIG5vdCByZWNlaXZlIGEgY29weSBvZiB0aGUgbGljZW5zZSBhbmQgYXJlIHVuYWJsZSB0b1xuLy8gb2J0YWluIGl0IHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViLCBwbGVhc2Ugc2VuZCBhbiBlbWFpbFxuLy8gdG8gbGljZW5zZUBtYWdlbnRvLmNvbSBzbyB3ZSBjYW4gc2VuZCB5b3UgYSBjb3B5IGltbWVkaWF0ZWx5LlxuLy9cbi8vIERJU0NMQUlNRVJcbi8vXG4vLyBEbyBub3QgZWRpdCBvciBhZGQgdG8gdGhpcyBmaWxlIGlmIHlvdSB3aXNoIHRvIHVwZ3JhZGUgTWFnZW50byB0byBuZXdlclxuLy8gdmVyc2lvbnMgaW4gdGhlIGZ1dHVyZS4gSWYgeW91IHdpc2ggdG8gY3VzdG9taXplIE1hZ2VudG8gZm9yIHlvdXJcbi8vIG5lZWRzIHBsZWFzZSByZWZlciB0byBodHRwOi8vd3d3Lm1hZ2VudG8uY29tIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuLy9cbi8vIEBjYXRlZ29yeSAgICBkZXNpZ25cbi8vIEBwYWNrYWdlICAgICByd2RfZGVmYXVsdFxuLy8gQGNvcHlyaWdodCAgIENvcHlyaWdodCAoYykgMjAwNi0yMDE2IFguY29tbWVyY2UsIEluYy4gYW5kIGFmZmlsaWF0ZXMgKGh0dHA6Ly93d3cubWFnZW50by5jb20pXG4vLyBAbGljZW5zZSAgICAgaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2FmbC0zLjAucGhwICBBY2FkZW1pYyBGcmVlIExpY2Vuc2UgKEFGTCAzLjApXG4vL1xuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBSZWN1cnJpbmcgUHJvZmlsZXNcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiNyZWN1cnJpbmdfcHJvZmlsZV9saXN0X3ZpZXcge1xuXG4gICAgdGgge1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuXG4gICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IGluaGVyaXQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicCAobWF4LXdpZHRoLCAkYnAteHNtYWxsKSB7XG4gICAgICAgIGZvbnQtc2l6ZTogJGYtc2l6ZS14cztcblxuICAgICAgICBhIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycHg7XG4gICAgICAgIH1cbiAgICB9IC8vZW5kIGJwLXhzbWFsbCBicmVha3BvaW50XG5cbn0gLy9lbmQgI3JlY3VycmluZ19wcm9maWxlX2xpc3Rfdmlld1xuXG4ucmVjdXJyaW5nLXByb2ZpbGVzLXRpdGxlIHtcbiAgICBmbG9hdDogbGVmdDtcblxuICAgIGgxIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJGVsZW1lbnQtc3BhY2luZztcbiAgICB9XG59XG5cbmJvZHkuY3VzdG9tZXItYWNjb3VudCAubXktYWNjb3VudCAudGl0bGUtYnV0dG9ucy5yZWN1cnJpbmctcHJvZmlsZXMtdGl0bGUtYnV0dG9ucyB7XG4gICAgZmxvYXQ6cmlnaHQ7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgbWFyZ2luLWJvdHRvbTogJHRyaW07XG5cbiAgICBAaW5jbHVkZSBicChtYXgtd2lkdGgsICRicC14c21hbGwpIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBmbG9hdDogbm9uZTtcbiAgICB9XG5cbiAgICAuYnV0dG9uIHtcbiAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICB9XG59XG5cbi5yZWN1cnJpbmctcHJvZmlsZXMtbWVzc2FnZXMge1xuICAgICY6YWZ0ZXIge1xuICAgICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICB9XG59XG5cbiNyZWN1cnJpbmdfc3RhcnRfZGF0ZV90cmlnIHtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG59XG4iLCIvL1xuLy8gTWFnZW50b1xuLy9cbi8vIE5PVElDRSBPRiBMSUNFTlNFXG4vL1xuLy8gVGhpcyBzb3VyY2UgZmlsZSBpcyBzdWJqZWN0IHRvIHRoZSBBY2FkZW1pYyBGcmVlIExpY2Vuc2UgKEFGTCAzLjApXG4vLyB0aGF0IGlzIGJ1bmRsZWQgd2l0aCB0aGlzIHBhY2thZ2UgaW4gdGhlIGZpbGUgTElDRU5TRV9BRkwudHh0LlxuLy8gSXQgaXMgYWxzbyBhdmFpbGFibGUgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIgYXQgdGhpcyBVUkw6XG4vLyBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYWZsLTMuMC5waHBcbi8vIElmIHlvdSBkaWQgbm90IHJlY2VpdmUgYSBjb3B5IG9mIHRoZSBsaWNlbnNlIGFuZCBhcmUgdW5hYmxlIHRvXG4vLyBvYnRhaW4gaXQgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIsIHBsZWFzZSBzZW5kIGFuIGVtYWlsXG4vLyB0byBsaWNlbnNlQG1hZ2VudG8uY29tIHNvIHdlIGNhbiBzZW5kIHlvdSBhIGNvcHkgaW1tZWRpYXRlbHkuXG4vL1xuLy8gRElTQ0xBSU1FUlxuLy9cbi8vIERvIG5vdCBlZGl0IG9yIGFkZCB0byB0aGlzIGZpbGUgaWYgeW91IHdpc2ggdG8gdXBncmFkZSBNYWdlbnRvIHRvIG5ld2VyXG4vLyB2ZXJzaW9ucyBpbiB0aGUgZnV0dXJlLiBJZiB5b3Ugd2lzaCB0byBjdXN0b21pemUgTWFnZW50byBmb3IgeW91clxuLy8gbmVlZHMgcGxlYXNlIHJlZmVyIHRvIGh0dHA6Ly93d3cubWFnZW50by5jb20gZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4vL1xuLy8gQGNhdGVnb3J5ICAgIGRlc2lnblxuLy8gQHBhY2thZ2UgICAgIHJ3ZF9kZWZhdWx0XG4vLyBAY29weXJpZ2h0ICAgQ29weXJpZ2h0IChjKSAyMDA2LTIwMTYgWC5jb21tZXJjZSwgSW5jLiBhbmQgYWZmaWxpYXRlcyAoaHR0cDovL3d3dy5tYWdlbnRvLmNvbSlcbi8vIEBsaWNlbnNlICAgICBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYWZsLTMuMC5waHAgIEFjYWRlbWljIEZyZWUgTGljZW5zZSAoQUZMIDMuMClcbi8vXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIEJpbGxpbmcgQWdyZWVtZW50c1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLmJpbGxpbmctYWdyZWVtZW50cyB7XG4gICAgLmluZm8tYm94IHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHRyaW07XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5mb3JtLWxpc3Qge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiA0MDBweDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgLmJveC10aXRsZSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkYm94LXNwYWNpbmctbGFyZ2U7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkZWxlbWVudC1zcGFjaW5nO1xuICAgICAgICB9XG5cbiAgICAgICAgLmJ1dHRvbiB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkZWxlbWVudC1zcGFjaW5nO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBicChtYXgtd2lkdGgsICRicC14c21hbGwpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICNwYXltZW50X21ldGhvZCB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXJnaW4tdG9wOiAkZWxlbWVudC1zcGFjaW5nO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkZWxlbWVudC1zcGFjaW5nO1xuICAgIH1cbn1cblxuLmJpbGxpbmctYWdyZWVtZW50LXZpZXctaGVhZGVyLXdyYXBwZXIge1xuICAgIC5oZWFkaW5nIHtcbiAgICAgICAgbWF4LXdpZHRoOiA4MCU7XG5cbiAgICAgICAgQGluY2x1ZGUgYnAobWF4LXdpZHRoLCAkYnAteHNtYWxsKSB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5iaWxsaW5nLWFncmVlbWVudC1kZXRhaWxzIHtcbiAgICB0ZCwgdGgge1xuICAgICAgICBwYWRkaW5nOiAkZWxlbWVudC1zcGFjaW5nLzI7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBicChtYXgtd2lkdGgsICRicC1sYXJnZSkge1xuICAgIC5iaWxsaW5nLWFncmVlbWVudHMge1xuICAgICAgICAuZGF0YS10YWJsZSB7XG4gICAgICAgICAgICAuY3JlYXRlZC1hdCxcbiAgICAgICAgICAgIC51cGRhdGVkLWF0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLy9cbi8vIE1hZ2VudG9cbi8vXG4vLyBOT1RJQ0UgT0YgTElDRU5TRVxuLy9cbi8vIFRoaXMgc291cmNlIGZpbGUgaXMgc3ViamVjdCB0byB0aGUgQWNhZGVtaWMgRnJlZSBMaWNlbnNlIChBRkwgMy4wKVxuLy8gdGhhdCBpcyBidW5kbGVkIHdpdGggdGhpcyBwYWNrYWdlIGluIHRoZSBmaWxlIExJQ0VOU0VfQUZMLnR4dC5cbi8vIEl0IGlzIGFsc28gYXZhaWxhYmxlIHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViIGF0IHRoaXMgVVJMOlxuLy8gaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2FmbC0zLjAucGhwXG4vLyBJZiB5b3UgZGlkIG5vdCByZWNlaXZlIGEgY29weSBvZiB0aGUgbGljZW5zZSBhbmQgYXJlIHVuYWJsZSB0b1xuLy8gb2J0YWluIGl0IHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViLCBwbGVhc2Ugc2VuZCBhbiBlbWFpbFxuLy8gdG8gbGljZW5zZUBtYWdlbnRvLmNvbSBzbyB3ZSBjYW4gc2VuZCB5b3UgYSBjb3B5IGltbWVkaWF0ZWx5LlxuLy9cbi8vIERJU0NMQUlNRVJcbi8vXG4vLyBEbyBub3QgZWRpdCBvciBhZGQgdG8gdGhpcyBmaWxlIGlmIHlvdSB3aXNoIHRvIHVwZ3JhZGUgTWFnZW50byB0byBuZXdlclxuLy8gdmVyc2lvbnMgaW4gdGhlIGZ1dHVyZS4gSWYgeW91IHdpc2ggdG8gY3VzdG9taXplIE1hZ2VudG8gZm9yIHlvdXJcbi8vIG5lZWRzIHBsZWFzZSByZWZlciB0byBodHRwOi8vd3d3Lm1hZ2VudG8uY29tIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuLy9cbi8vIEBjYXRlZ29yeSAgICBkZXNpZ25cbi8vIEBwYWNrYWdlICAgICByd2RfZGVmYXVsdFxuLy8gQGNvcHlyaWdodCAgIENvcHlyaWdodCAoYykgMjAwNi0yMDE2IFguY29tbWVyY2UsIEluYy4gYW5kIGFmZmlsaWF0ZXMgKGh0dHA6Ly93d3cubWFnZW50by5jb20pXG4vLyBAbGljZW5zZSAgICAgaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2FmbC0zLjAucGhwICBBY2FkZW1pYyBGcmVlIExpY2Vuc2UgKEFGTCAzLjApXG4vL1xuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBQb3B1bGFyIFNlYXJjaCBUZXJtcyBDbG91ZFxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLmNhdGFsb2dzZWFyY2gtdGVybS1wb3B1bGFyIC50YWdzLWxpc3Qge1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IDEwMCU7XG59XG4uY2F0YWxvZ3NlYXJjaC10ZXJtLXBvcHVsYXIgLnRhZ3MtbGlzdCA+IGxpIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIGhlaWdodDogNDBweDtcbiAgbWFyZ2luLXJpZ2h0OiAyNXB4O1xufVxuIiwiLy9cbi8vIE1hZ2VudG9cbi8vXG4vLyBOT1RJQ0UgT0YgTElDRU5TRVxuLy9cbi8vIFRoaXMgc291cmNlIGZpbGUgaXMgc3ViamVjdCB0byB0aGUgQWNhZGVtaWMgRnJlZSBMaWNlbnNlIChBRkwgMy4wKVxuLy8gdGhhdCBpcyBidW5kbGVkIHdpdGggdGhpcyBwYWNrYWdlIGluIHRoZSBmaWxlIExJQ0VOU0VfQUZMLnR4dC5cbi8vIEl0IGlzIGFsc28gYXZhaWxhYmxlIHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViIGF0IHRoaXMgVVJMOlxuLy8gaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2FmbC0zLjAucGhwXG4vLyBJZiB5b3UgZGlkIG5vdCByZWNlaXZlIGEgY29weSBvZiB0aGUgbGljZW5zZSBhbmQgYXJlIHVuYWJsZSB0b1xuLy8gb2J0YWluIGl0IHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViLCBwbGVhc2Ugc2VuZCBhbiBlbWFpbFxuLy8gdG8gbGljZW5zZUBtYWdlbnRvLmNvbSBzbyB3ZSBjYW4gc2VuZCB5b3UgYSBjb3B5IGltbWVkaWF0ZWx5LlxuLy9cbi8vIERJU0NMQUlNRVJcbi8vXG4vLyBEbyBub3QgZWRpdCBvciBhZGQgdG8gdGhpcyBmaWxlIGlmIHlvdSB3aXNoIHRvIHVwZ3JhZGUgTWFnZW50byB0byBuZXdlclxuLy8gdmVyc2lvbnMgaW4gdGhlIGZ1dHVyZS4gSWYgeW91IHdpc2ggdG8gY3VzdG9taXplIE1hZ2VudG8gZm9yIHlvdXJcbi8vIG5lZWRzIHBsZWFzZSByZWZlciB0byBodHRwOi8vd3d3Lm1hZ2VudG8uY29tIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuLy9cbi8vIEBjYXRlZ29yeSAgICBkZXNpZ25cbi8vIEBwYWNrYWdlICAgICByd2RfZGVmYXVsdFxuLy8gQGNvcHlyaWdodCAgIENvcHlyaWdodCAoYykgMjAwNi0yMDE2IFguY29tbWVyY2UsIEluYy4gYW5kIGFmZmlsaWF0ZXMgKGh0dHA6Ly93d3cubWFnZW50by5jb20pXG4vLyBAbGljZW5zZSAgICAgaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2FmbC0zLjAucGhwICBBY2FkZW1pYyBGcmVlIExpY2Vuc2UgKEFGTCAzLjApXG4vL1xuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBXaWRnZXRzXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXG4gKiBBZGQgdG8gY2FydCBieSBTS1VcbiAqL1xuXG4uc2lkZWJhciB7XG4gICAgLndpZGdldC1hZGRieXNrdSB7XG4gICAgICAgIC5za3UtdGFibGUge1xuICAgICAgICAgICAgLmlucHV0LXRleHQ6bm90KC5xdHkpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLW1lZGl1bSsxKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vcHJldmVudCB3aWRnZXQgaW4gbGVmdC9yaWdodCBjb2x1bW4gZnJvbSBleGNlZWRpbmcgY29sdW1uIHdpZHRoXG4gICAgICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwcHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4ud2lkZ2V0IHtcbiAgICBjbGVhcjogYm90aDtcbn1cblxuLndpZGdldCAucGFnZXIge1xuICAgIGZsb2F0OiBub25lO1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4vLyBJbXBsZW1lbnQgY3VzdG9tIGdyaWQgYnJlYWtwb2ludHMgZm9yIGdyaWRzIHRoYXQgYXJlIGNvbnRhaW5lZCB3aXRoaW4gd2lkZ2V0c1xuQGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAteGxhcmdlKSB7XG4gICAgLmNvbDItbGVmdC1sYXlvdXQsXG4gICAgLmNvbDItcmlnaHQtbGF5b3V0LFxuICAgIC5jb2wzLWxheW91dFxuICAgIHtcbiAgICAgICAgLmNvbC1tYWluIC53aWRnZXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgcHJvZHVjdC1ncmlkKDQsIDk2MCwgXCJ3aWRnZXRcIik7XG4gICAgICAgICAgICBAaW5jbHVkZSBwcm9kdWN0LWdyaWQoNSwgOTYwLCBcIndpZGdldFwiKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtbWVkaXVtKSB7XG4gICAgLmNvbDEtbGF5b3V0IHtcbiAgICAgICAgLmNvbC1tYWluIC53aWRnZXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgcHJvZHVjdC1ncmlkKDQsIDk2MCwgXCJ3aWRnZXRcIik7XG4gICAgICAgICAgICBAaW5jbHVkZSBwcm9kdWN0LWdyaWQoNSwgOTYwLCBcIndpZGdldFwiKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8vXG4vLyBNYWdlbnRvXG4vL1xuLy8gTk9USUNFIE9GIExJQ0VOU0Vcbi8vXG4vLyBUaGlzIHNvdXJjZSBmaWxlIGlzIHN1YmplY3QgdG8gdGhlIEFjYWRlbWljIEZyZWUgTGljZW5zZSAoQUZMIDMuMClcbi8vIHRoYXQgaXMgYnVuZGxlZCB3aXRoIHRoaXMgcGFja2FnZSBpbiB0aGUgZmlsZSBMSUNFTlNFX0FGTC50eHQuXG4vLyBJdCBpcyBhbHNvIGF2YWlsYWJsZSB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiBhdCB0aGlzIFVSTDpcbi8vIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9hZmwtMy4wLnBocFxuLy8gSWYgeW91IGRpZCBub3QgcmVjZWl2ZSBhIGNvcHkgb2YgdGhlIGxpY2Vuc2UgYW5kIGFyZSB1bmFibGUgdG9cbi8vIG9idGFpbiBpdCB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiwgcGxlYXNlIHNlbmQgYW4gZW1haWxcbi8vIHRvIGxpY2Vuc2VAbWFnZW50by5jb20gc28gd2UgY2FuIHNlbmQgeW91IGEgY29weSBpbW1lZGlhdGVseS5cbi8vXG4vLyBESVNDTEFJTUVSXG4vL1xuLy8gRG8gbm90IGVkaXQgb3IgYWRkIHRvIHRoaXMgZmlsZSBpZiB5b3Ugd2lzaCB0byB1cGdyYWRlIE1hZ2VudG8gdG8gbmV3ZXJcbi8vIHZlcnNpb25zIGluIHRoZSBmdXR1cmUuIElmIHlvdSB3aXNoIHRvIGN1c3RvbWl6ZSBNYWdlbnRvIGZvciB5b3VyXG4vLyBuZWVkcyBwbGVhc2UgcmVmZXIgdG8gaHR0cDovL3d3dy5tYWdlbnRvLmNvbSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbi8vXG4vLyBAY2F0ZWdvcnkgICAgZGVzaWduXG4vLyBAcGFja2FnZSAgICAgcndkX2RlZmF1bHRcbi8vIEBjb3B5cmlnaHQgICBDb3B5cmlnaHQgKGMpIDIwMDYtMjAxNiBYLmNvbW1lcmNlLCBJbmMuIGFuZCBhZmZpbGlhdGVzIChodHRwOi8vd3d3Lm1hZ2VudG8uY29tKVxuLy8gQGxpY2Vuc2UgICAgIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9hZmwtMy4wLnBocCAgQWNhZGVtaWMgRnJlZSBMaWNlbnNlIChBRkwgMy4wKVxuLy9cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogQ2hlY2tvdXQgLSBNdWx0aXBsZSBBZGRyZXNzZXNcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbmJvZHlbY2xhc3MqPVwiY2hlY2tvdXQtbXVsdGlzaGlwcGluZy1cIl0ge1xuICAgIC5jaGVja291dC1wcm9ncmVzcyB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjVweDtcbiAgICAgICAgPiBsaSB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIHdpZHRoOiAyMCU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiA4cHggMSUgNnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJGMtbW9kdWxlLWJhY2tncm91bmQ7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjLW1vZHVsZS1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAkYy1tb2R1bGUtYm9yZGVyO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAkZi1zdGFjay1zcGVjaWFsO1xuICAgICAgICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjLWJ1dHRvbi1zZWNvbmRhcnk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmLmxhc3Qge1xuICAgICAgICAgICAgICAgIGJvcmRlci1yaWdodDogMHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC5wYWdlLXRpdGxlIHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuICAgICAgICBoMSB7XG4gICAgICAgICAgICBib3JkZXI6IDAgbm9uZTtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMnB4O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAyJTtcbiAgICAgICAgfVxuICAgICAgICAuYnV0dG9uIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAubXVsdGlwbGUtY2hlY2tvdXQgPiBoMiB7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgICBmb250LXNpemU6IDE3cHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XG4gICAgfVxuICAgIC5tZXNzYWdlcyB7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gICAgLmNvbC0yLmNvbC13aWRlIHtcbiAgICAgICAgd2lkdGg6IDY2JTtcbiAgICB9XG4gICAgLmNvbC0xLmNvbC1uYXJyb3cge1xuICAgICAgICB3aWR0aDogMzAlO1xuICAgIH1cbiAgICAuYWN0aW9ucyB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgfVxuXG4gICAgLmdyYW5kLXRvdGFsIHtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIGZvbnQtc2l6ZTogJGYtc2l6ZS14bDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgfVxuXG4gICAgI2NoZWNrb3V0LXJldmlldy1zdWJtaXQge1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgfVxuXG4gICAgI3Jldmlldy1idXR0b25zLWNvbnRhaW5lciB7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgfVxufVxuXG4uY2hlY2tvdXQtbXVsdGlzaGlwcGluZy1hZGRyZXNzZXMge1xuICAgIC5idG4tcmVtb3ZlMiB7XG4gICAgICAgIHRleHQtaW5kZW50OiAtNTU1NXB4O1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IDIycHg7XG4gICAgICAgIGhlaWdodDogMjJweDtcbiAgICB9XG59XG5cbi5jaGVja291dC1tdWx0aXNoaXBwaW5nLXNoaXBwaW5nIHtcbiAgICAuZ2lmdC1tZXNzYWdlcyB7XG4gICAgICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgfVxuICAgIC5naWZ0LW1lc3NhZ2VzLWZvcm0ge1xuICAgICAgICBtYXJnaW4tdG9wOiAxNXB4O1xuICAgICAgICBoNCB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxNXB4O1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICAgICAgICB9XG4gICAgICAgIC5mb3JtLWxpc3Qge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI1cHg7XG4gICAgICAgIH1cbiAgICAgICAgLml0ZW0ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMTVweDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmNoZWNrb3V0LW11bHRpc2hpcHBpbmctc2hpcHBpbmcsXG4uY2hlY2tvdXQtbXVsdGlzaGlwcGluZy1iaWxsaW5nLFxuLmNoZWNrb3V0LW11bHRpc2hpcHBpbmctb3ZlcnZpZXcge1xuICAgIC5jb2wtMSwgLmNvbC0yIHtcbiAgICAgICAgLmJveC10aXRsZSB7XG4gICAgICAgICAgICBoMiwgaDMsIGg0IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRjLW1vZHVsZS1iYWNrZ3JvdW5kO1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkYy1tb2R1bGUtYm9yZGVyO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgID4gaDQge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJGMtbW9kdWxlLWJhY2tncm91bmQ7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGMtbW9kdWxlLWJvcmRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIH1cbiAgICAgICAgLmJveC1jb250ZW50IHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI1cHg7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uY2hlY2tvdXQtbXVsdGlzaGlwcGluZy1iaWxsaW5nIHtcbiAgICAuc3AtbWV0aG9kcyBkdCB7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG59XG5cbiNtdWx0aXNoaXAtYWRkcmVzc2VzLXRhYmxlID4gdGJvZHkgPiB0ciA+IHRkLmEtY2VudGVyLmxhc3QgPiBhIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xufVxuXG4jcmV2aWV3LW9yZGVyLWZvcm0gPiBkaXY6bnRoLWNoaWxkKDMpID4gZGl2LmRpdmlkZXIge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGNsZWFyOmJvdGg7XG59XG5cbkBpbmNsdWRlIGJwKG1heC13aWR0aCwgJGJwLWxhcmdlKSB7XG4gICAgYm9keVtjbGFzcyo9XCJjaGVja291dC1tdWx0aXNoaXBwaW5nLVwiXSB7XG4gICAgICAgIC5jaGVja291dC1wcm9ncmVzcyBzcGFuIHtcbiAgICAgICAgICAgIHdvcmQtc3BhY2luZzogMzAwcHg7XG4gICAgICAgIH1cbiAgICB9XG4gICAgI3Jldmlldy1vcmRlci1mb3Jte1xuICAgICAgICAuY29sLTEsXG4gICAgICAgIC5jb2wtMiB7XG4gICAgICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQGluY2x1ZGUgYnAobWF4LXdpZHRoLCAkYnAtbWVkaXVtKSB7XG4gICAgYm9keVtjbGFzcyo9XCJjaGVja291dC1tdWx0aXNoaXBwaW5nLVwiXSB7XG4gICAgICAgIC5jaGVja291dC1wcm9ncmVzcyBzcGFuIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMnB4O1xuICAgICAgICB9XG4gICAgICAgIC5jaGVja291dC1wcm9ncmVzcyB7XG4gICAgICAgICAgICBsaSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAzJTtcbiAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQ6IDBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAgIHdvcmQtc3BhY2luZzogMXB4O1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMnB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC5ib3gtdGl0bGUge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgICAgICAucGFnZS10aXRsZSAuYnV0dG9uIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICAgICAgfVxuICAgICAgICAubGluZWFyaXplLXRhYmxlIHtcbiAgICAgICAgICAgIHRmb290IHRkIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNlbGVjdCB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiAyMDBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAuY29sLTEuY29sLW5hcnJvdywgLmNvbC0yLmNvbC13aWRlIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQGluY2x1ZGUgYnAobWF4LXdpZHRoLCAkYnAtc21hbGwpIHtcbiAgICAuY2hlY2tvdXQtbXVsdGlzaGlwcGluZy1hZGRyZXNzZXMgLmxpbmVhcml6ZS10YWJsZSB0Ym9keSB0ZFtkYXRhLXJ3ZC1sYWJlbF0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICAgICAgIG1hcmdpbi10b3A6IDEycHg7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBicChtYXgtd2lkdGgsICRicC14c21hbGwpIHtcbiAgICBib2R5W2NsYXNzKj1cImNoZWNrb3V0LW11bHRpc2hpcHBpbmctXCJdIHtcbiAgICAgICAgLmJ1dHRvbnMtc2V0IC5iYWNrLWxpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIgaHIge1xuICAgIG1hcmdpbjogMmVtIDA7XG4gICAgYm9yZGVyOiAxcHggZG90dGVkICRjLWRhcmtibHVlO1xuICAgIGJvcmRlci13aWR0aDogMXB4IDAgMCAwO1xuICB9XG5ib2R5LmlzLWJsb2cge1xuICBpZnJhbWU6bm90KFt0aXRsZT1cInJlQ0FQVENIQS1XaWRnZXRcIl0pIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDMwMHB4O1xuICB9XG4gXG4gIC5wYWdlLWxheW91dCB7XG4gICAgJi0tbmFycm93IHtcbiAgICAgIG1heC13aWR0aDogNjgwcHg7XG4gICAgICBtYXJnaW46IGF1dG87XG4gICAgfVxuICAgICYtLWZ1bGwge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICB9XG4gIC5wYWdlLXRlbXBsYXRlIHtcbiAgICAmLS1jb250YWN0X3Blb3BsZSB7XG4gICAgfVxuICB9XG59XG4udGVzdC1kZXZpY2UtYmxvY2sge1xuICBtYXJnaW46IDEuNWVtIDA7XG59XG4ud29yZHByZXNzLXBhZ2UtNzkge1xuICAuYmxvY2stYmxvZy1tZW51IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4jaGVhZGVyLW5hdiB7XG4gIC5uYXYtMSB7XG4gICAgLnZpZXctYWxsIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG59XG4uaXMtYmxvZyB7XG4gICNoZWFkZXItbmF2IHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICRjLWRhcmtibHVlO1xuICB9XG4gIC5jb2wtbWFpbiB7XG4gICAgbWFyZ2luLWJvdHRvbTogJHRyaW07XG4gIH1cbn1cbi53b3JkcHJlc3MtbGF5b3V0LWZ1bGxzY3JlZW4sIC53b3JkcHJlc3MtaW5kZXgtaW5kZXgsIC53b3JkcHJlc3MtcG9zdC12aWV3IHtcbiAgI2hlYWRlci1uYXYge1xuICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIH1cbn1cblxuLmxheW91dC1sYW5kaW5ncGFnZSB7XG4gICNoZWFkZXItbmF2IHtcbiAgICBib3JkZXItYm90dG9tOiBub25lICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgfVxuICAuZm9vdGVyIHtcbiAgICBib3JkZXItdG9wOiBub25lO1xuICB9XG5cbiAgLnBvc3QtZW50cnkgaHI6Zmlyc3QtY2hpbGQge1xuICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgfVxufVxuLndvcmRwcmVzcy1wb3N0LXZpZXcge1xuICAubWFpbi1jb250YWluZXIge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gIH1cbn1cbi5yZXNlbGxlcnMucm93Omxhc3QtY2hpbGQsIC5wZW9wbGUucm93Omxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAkdHJpbSAqIDI7XG59XG4ud29yZHByZXNzLWxheW91dC1jb2wyLXJpZ2h0LCAuY2F0YWxvZ3NlYXJjaC1yZXN1bHQtaW5kZXgge1xuICAjaGVhZGVyLW5hdiB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZCAkYy1kYXJrYmx1ZTtcbiAgICBwYWRkaW5nLWJvdHRvbTogJHRyaW07XG4gIH1cbn1cblxuQGltcG9ydCBcImxheW91dFwiO1xuQGltcG9ydCBcInNpZGViYXJcIjtcblxuQGltcG9ydCBcInBvc3QvbGlzdFwiLFxuICAgICAgICBcInBvc3Qvdmlld1wiO1xuXG5AaW1wb3J0IFwicGFnZS92aWV3XCI7XG5cbkBpbXBvcnQgXCJtb2R1bGVzL3Blb3BsZVwiLFxuICAgICAgICBcIm1vZHVsZXMvcmVzZWxsZXJzXCIsXG4gICAgICAgIFwibW9kdWxlcy9mb3Jtc1wiLFxuICAgICAgICBcIm1vZHVsZXMvZG93bmxvYWRzXCI7XG4iLCJib2R5LmlzLWJsb2d7XG4gIC5jb2wyLXJpZ2h0LWxheW91dHtcbiAgICAuY29sLW1haW4sXG4gICAgLmNvbC1yaWdodHtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgfVxuICB9XG4gIC5jb2wyLXNldHtcbiAgICAuY29sLTEsXG4gICAgLmNvbC0ye1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB9XG4gIH1cbn1cbmZvcm0sIC5mb3JtLXdyYXBwZXIge1xuXG4gIC5yb3d7XG4gICAgJjphZnRlciB7XG4gICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICB9XG5cbiAgICAgIFxuICAgIEBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLXNtYWxsICsgMSkge1xuICAgICAgICBcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0xMHB4O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IC0xMHB4O1xuICAgICAgfVxuXG4gICAgLmNvbC1oYWxmLFxuICAgIC5jb2wtZnVsbHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgIHBhZGRpbmc6IDVweCAwO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBAaW5jbHVkZSBicChtaW4td2lkdGgsICRicC1zbWFsbCArIDEpIHtcbiAgICAgICAgcGFkZGluZzogMTBweDtcbiAgICAgIH1cbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICBcbiAgICAgIEBpbmNsdWRlIGJwKG1heC13aWR0aCwgJGJwLXNtYWxsKSB7XG4gICAgICAgICYuc3VibWl0IHtcbiAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgIH1cbiAgICAuY29sLWhhbGZ7XG4gICAgICBAaW5jbHVkZSBicChtaW4td2lkdGgsICRicC1zbWFsbCArIDEpIHtcbiAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICB9XG4gICAgfVxuICAgIC5jb2wtZnVsbHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxufVxuXG4iLCIuc2lkZWJhci1pdGVtcyB7XG4gIGgzIHtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtc2l6ZTogJGYtc2l6ZS14bDtcbiAgICBjb2xvcjogJGMtdGV4dDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgfVxuICAuYmxvY2stcmVjZW50LXBvc3RzLFxuICAuYmxvY2stcmVsYXRlZC1wb3N0c3tcbiAgICAuYmxvY2stdGl0bGUge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gICAgLnBvc3RzLWxpc3QtaXRlbSB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMWVtO1xuICAgICAgIEBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLW1lZGl1bSArIDEpIHtcbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICRjLWRhcmtibHVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAuZmVhdHVyZWQtaW1hZ2Uge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxZW07XG4gICAgICB9XG4gICAgICBhIHtcbiAgICAgICAgY29sb3I6ICRjLXRleHQ7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgIH1cbiAgICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4MHB4KSBhbmQgKG1heC13aWR0aDogNzcwcHgpe1xuICAgICAgICAuc2lkZWJhci1wb3N0cy1saXN0OmFmdGVyIHtcbiAgICAgICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICAgICAgfVxuICAgICAgICAucG9zdHMtbGlzdC1pdGVtIHtcbiAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgfVxuICAgICAgICAuc2lkZWJhci1wb3N0cy1saXN0IHtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogLTEwcHg7XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtMTBweDtcbiAgICAgICAgfVxuICAgICAgfVxuICB9XG4gIC5saW5rLWxpc3Qge1xuICAgIG1hcmdpbi1ib3R0b206IDVlbTtcblxuICAgIC5saW5rLWxpc3QtaXRlbSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAuNWVtO1xuXG4gICAgfVxuICB9XG4gIC5ibG9jayB7XG4gICAgLmJsb2NrLXRpdGxlIHtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQgJGMtdGV4dDtcbiAgICB9XG4gICAgJi5ibG9jay1ibG9nLW1lbnUge1xuICAgICAgLmJsb2NrLWNvbnRlbnQge1xuICAgICAgICB1bCB7XG4gICAgICAgICAgbWFyZ2luLXRvcDogMnB4O1xuICAgICAgICAgIGxpLml0ZW0ge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogNHB4IDA7XG5cbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICBjb2xvcjogJGMtdGV4dDtcbiAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG5cbiAgICAgICAgICAgICAgJjpob3ZlciwgJi5hY3RpdmUge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYy1ibHVlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgZm9ybS5zZWFyY2hfbWluaV9mb3JtIHtcbiAgICBtYXJnaW46IDNlbSAwO1xuICB9XG59XG5cbkBpbmNsdWRlIGJwKG1heC13aWR0aCwgJGJwLW1lZGl1bSkge1xuICAuc2lkZWJhci1zcGFjZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLnN1cHBvcnQtYmxvY2sge1xuICAgICAgaDN7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA1cHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQgJGMtdGV4dDtcbiAgICAgIH1cbiAgICAgICY6YWZ0ZXIge1xuICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgfVxuICAgICAgc3Bhbi5waG9uZSB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkZi1zdGFjay1zcGVjaWFsO1xuICAgICAgICBmb250LXNpemU6ICRmLXNpemUteHhsO1xuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHRyaW0tcztcbiAgICAgIH1cbiAgICAgIC5sZWZ0LCAucmlnaHQge1xuICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgfVxuICAgICAgLmxlZnQge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgIH1cbiAgICAgIC5yaWdodCB7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgaW1nIHtcbiAgICAgICAgICBtYXJnaW4tdG9wOiAtMjBweDtcbiAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbi5wcm9kdWN0ZmluZGVyLWluZGV4LWluZGV4IHtcbiAgLnNpZGViYXIge1xuICAgIHBhZGRpbmctdG9wOiA4cHg7XG4gIH1cbn1cblxuLnNpZGViYXIgaHIge1xuICBtYXJnaW46IDA7XG59XG5cbi5zaWRlYmFyIHAgYSwgLnNpZGViYXItYmxvY2sgYSB7XG4gIGNvbG9yOiAkYy10ZXh0O1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgJjpob3ZlciB7XG4gICAgY29sb3I6ICRjLWFjdGlvbjtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgfVxufVxuXG4uc2lkZWJhci1ibG9jayB7XG4gIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQgJGMtdGV4dDtcbiAgYm9yZGVyLXRvcDogMXB4IGRvdHRlZCAkYy10ZXh0O1xuICBwYWRkaW5nOiAxOHB4IDA7XG59XG5cblxuIiwiYm9keS53b3JkcHJlc3MtaW5kZXgtaW5kZXgge1xuICAuZm9vdGVyIHtcbiAgICBib3JkZXI6IG5vbmU7XG4gIH1cbiAgLmhvbWUtc2xpZGUtd3JhcHBlciB7XG4gICAgbWFyZ2luLWxlZnQ6IC0xNXB4O1xuICAgIG1hcmdpbi1yaWdodDogLTE1cHg7IFxuICAgIEBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLW1lZGl1bSArIDEpIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAtMjVweDtcbiAgICAgIG1hcmdpbi1yaWdodDogLTI1cHg7XG4gICAgfVxuICB9XG4gIC5tYWluLWNvbnRhaW5lciB7XG4gICAgcGFkZGluZy10b3A6IDIwcHg7XG4gIH1cbiAgLnBhZ2UtdGl0bGUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgLmZlYXR1cmVkLWltYWdlIHtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgbWFyZ2luOiAwO1xuICB9XG4gIC5wb3N0LWxpc3R7XG4gICAgLmhvbWUtc2xpZGVyLWNvbnRhaW5lciB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICR0cmltO1xuICAgICAgfVxuICAgIHVsI3Bvc3QtbGlzdCB7XG4gICAgICBsaS5pdGVtIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQgJGMtZGFya2JsdWU7XG4gICAgICAgIH1cbiAgICAgICAgLnBvc3QtbGlzdC1pdGVtIHtcbiAgICAgICAgICAucG9zdC1lbnRyeSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy10b3A6ICR0cmltLXM7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgICYucG9zdC1lbnRyeS13aXRoLWltYWdle1xuICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggZG90dGVkICRjLWRhcmtibHVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuZmVhdHVyZWQtaW1hZ2Uge1xuICAgICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaDIge1xuICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAkdHJpbS1zO1xuICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogJHRyaW07XG4gICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBkb3R0ZWQgJGMtZGFya2JsdWU7XG5cbiAgICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAucG9zdC1leGNlcnB0IHtcbiAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogJHRyaW0tcztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuXG4gICAgfVxuICAgIC5wYWdlcntcbiAgICAgIG1hcmdpbi10b3A6IDJyZW07XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgIGZsb2F0OiBub25lO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgLnBhZ2Vze1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcblxuICAgICAgICBvbHtcbiAgICAgICAgICBsaXtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHB4O1xuICAgICAgICAgICAgY29sb3I6ICRjLWJsdWU7XG5cbiAgICAgICAgICAgICYuY3VycmVudHtcbiAgICAgICAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICAgICAgICBjb2xvcjogJGMtZGFya2JsdWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGF7XG5cbiAgICAgICAgICAgICAgJi5uZXh0LFxuICAgICAgICAgICAgICAmLnByZXZpb3Vze1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDMwcHg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAzMHB4O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIud29yZHByZXNzLXBvc3Qtdmlld3tcbiAgLnBvc3QtZW50cnl7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgaW1nIHtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICB9XG4gICAgLmZlYXR1cmVkLWltYWdlIC5wb3N0LXNoYXJlIGltZyB7XG4gICAgICB3aWR0aDogMzBweDtcbiAgICAgIGhlaWdodDogMzBweDtcbiAgICB9IFxuICB9XG5cbiAgLmhvbWUtc2xpZGUtd3JhcHBlciB7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gIH1cbiAgLnBvc3QtdGVhc2Vye1xuICAgIEBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLW1lZGl1bSArIDEpe1xuICAgICAgICB3aWR0aDogMTQ2LjEyJTtcbiAgICB9XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZCAkYy1kYXJrYmx1ZTtcbiAgICBtYXJnaW4tYm90dG9tOiAkdHJpbS1zO1xuICB9XG4gIC5mZWF0dXJlZC1pbWFnZXtcbiAgICBib3JkZXI6IDA7XG4gICAgcGFkZGluZzogJHRyaW0tcyAwO1xuICAgIG1hcmdpbi1ib3R0b206ICR0cmltLXM7XG4gICAgYm9yZGVyLXRvcDogMXB4IGRvdHRlZCAkYy1kYXJrYmx1ZTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICRjLWRhcmtibHVlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIGltZ3tcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIC5wb3N0LXNoYXJlIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgYm90dG9tOiAxNXB4O1xuICAgICAgaW1nIHtcbiAgICAgICAgd2lkdGg6IGF1dG87XG5cbiAgICAgIH1cbiAgICB9XG5cbiAgfVxuICAucG9zdC1zaGFyZXtcblxuICAgICAgYXtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgfVxuICAgIH1cbiAgLnBvc3QtbWV0YSB7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICB9XG59XG4iLCIucG9zdC1lbnRyeXtcbiAgaHJ7XG4gICAgbWFyZ2luOiAuNWVtIDAgIWltcG9ydGFudDtcbiAgICBib3JkZXI6IDFweCBkb3R0ZWQgJGMtZGFya2JsdWU7XG4gICAgYm9yZGVyLXdpZHRoOiAxcHggMCAwIDA7XG4gIH1cbiAgaDEsLmgxLFxuICBoMiwuaDIsXG4gIGgzLC5oM3tcbiAgICBtYXJnaW4tdG9wOiAkdHJpbS1zO1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgZm9udC1zaXplOiAkZi1zaXplLXh4bDtcbiAgfVxuICBoMSwuaDEge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gIH1cbiAgYTpub3QoLmJ1dHRvbil7XG4gICAgY29sb3I6ICRjLWRhcmtibHVlO1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuXG4gICAgJjpob3ZlcntcbiAgICAgIGNvbG9yOiAkYy1ibHVlO1xuICAgIH1cblxuICAgICYuYmFjayB7XG4gICAgICBtYXJnaW4tdG9wOiAkdHJpbTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgfVxuICBoMywuaDMge1xuICAgIGZvbnQtc2l6ZTogJGYtc2l6ZS14bDtcbiAgfVxuICBoMSB7XG4gICAgZm9udC1zaXplOiAkZi1zaXplLXh4bDtcbiAgfVxuICBoMSwgaDIsIGgzLCBoNCwgaDUsIGg2IHtcbiAgICAgIGEge1xuICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50O1xuXG4gICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBjb2xvcjogaW5oZXJpdCAhaW1wb3J0YW50O1xuICAgICAgICAgIH1cbiAgICAgIH1cbiAgfVxuXG4gICYubGlnaHRib3gtY29udGVudC1saW5rIGE6bm90KC5iYWNrKSB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG4gIC5zcGFjZXIge1xuICAgIGhlaWdodDogJHRyaW07XG4gIH1cbn1cbi5wb3N0LXRpdGxle1xuXG4gICYuaGFzLXN1YnRpdGxle1xuICAgIC5wYWdlLXN1YnRpdGxle1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gICAgaDF7XG4gICAgICBjb2xvcjogJGMtYmx1ZTtcbiAgICB9XG4gICAgcGFkZGluZy1ib3R0b206IDVlbTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICRjLWRhcmtibHVlO1xuICAgIG1hcmdpbi1ib3R0b206IDFlbTtcbiAgfVxufVxuXG4ud29yZHByZXNzLXBvc3QtdmlldyB7XG4gIGVtIHtcbiAgICBmb250LXNpemU6ICRmLXNpemUteHhsO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBmb250LWZhbWlseTogJGYtc3RhY2stc3BlY2lhbDtcbiAgICBsaW5lLWhlaWdodDogMS4yO1xuICB9XG59XG5cbi5wb3N0LW1ldGEuZGV0YWlscyB7XG4gIG1hcmdpbi10b3A6ICR0cmltO1xufVxuXG4ucG9zdC1lbnRyeSwgLmxpZ2h0Ym94IHtcblxuICB1bCB7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgbGkge1xuICAgICAgdGV4dC1pbmRlbnQ6IC04cHg7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDhweDtcbiAgICAgIG1hcmdpbjogNHB4IDA7XG4gICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBcIi0gXCI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgb2wge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIGxpIHtcbiAgICAgIG1hcmdpbjogNHB4IDA7XG4gICAgfVxuICB9XG5cbn0iLCIucGVvcGxlLCAucmVzZWxsZXJzIHtcblx0Ji5yb3cge1xuXHRcdG1hcmdpbi1yaWdodDogLTE1cHg7XG5cdFx0bWFyZ2luLWxlZnQ6IC0xNXB4O1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHRcdEBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLXNtYWxsICsgMSkge1xuXHRcdFx0XG5cdFx0XHRkaXNwbGF5OiB0YWJsZTtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdH1cblx0XHQmOmFmdGVyIHtcblx0XHRcdEBpbmNsdWRlIGNsZWFyZml4O1xuXHRcdH1cblx0fVxuXHRAaW5jbHVkZSBicChtaW4td2lkdGgsICRicC1zbWFsbCArIDEpIHtcblx0XHQmLmZpcnN0IHtcblx0XHRcdC5wZW9wbGUtaXRlbSwgLnJlc2VsbGVyLWl0ZW0ge1xuXHRcdFx0XHRib3JkZXItdG9wOiAxcHggZG90dGVkICRjLWRhcmtibHVlO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHQuY29sLWhhbGYge1xuXHRcdG1hcmdpbjogMCAxNXB4O1xuXG5cdFx0QGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtc21hbGwgKyAxKSB7XG5cdFx0XHR3aWR0aDogNTAlO1xuXHRcdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdFx0ZGlzcGxheTogdGFibGUtY2VsbDtcblx0XHRcdHBhZGRpbmc6IDAgMTVweDtcblx0XHRcdG1hcmdpbjogMDtcblx0XHR9XG5cdFx0LnBlb3BsZS1pdGVtLCAucmVzZWxsZXItaXRlbSB7XG5cblx0XHRcdGltZyB7XG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0XHRAaW5jbHVkZSBicChtaW4td2lkdGgsICRicC1zbWFsbCkge1xuXHRcdFx0XHRcdG1hcmdpbi10b3A6IDIwcHg7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdGhlaWdodDogMTAwJTtcblx0XHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdFx0XHRib3JkZXItYm90dG9tOiAxcHggZG90dGVkICRjLWRhcmtibHVlO1xuXG5cdFx0XHRAaW5jbHVkZSBicChtaW4td2lkdGgsICRicC1zbWFsbCArIDEpIHtcblx0XHRcdFx0cGFkZGluZy10b3A6ICR0cmltLXM7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHAge1xuXHRcdFx0bWFyZ2luLXRvcDogJHRyaW0tcztcblx0XHR9XG5cdH1cblx0Ji5maXJzdCAuY29sLWhhbGY6Zmlyc3QtY2hpbGQge1xuXHRcdC5wZW9wbGUtaXRlbSwgLnJlc2VsbGVyLWl0ZW0ge1xuXHRcdFx0Ym9yZGVyLXRvcDogMXB4IGRvdHRlZCAkYy1kYXJrYmx1ZTtcblx0XHR9XG5cdH1cblx0QGluY2x1ZGUgYnAobWF4LXdpZHRoLCAkYnAtc21hbGwpIHtcblx0XHQmOmxhc3QtY2hpbGQgLmNvbC1oYWxmIHtcblx0XHRcdC5wZW9wbGUtaXRlbSwgLnJlc2VsbGVyLWl0ZW0ge1xuXHRcdFx0XHRib3JkZXItYm90dG9tOiAwO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG4ucmVzZWxsZXJzLnJvdzpsYXN0LWNoaWxkLFxuLnBlb3BsZS5yb3c6bGFzdC1jaGlsZCAge1xuXHRtYXJnaW4tYm90dG9tOiAkdHJpbSAqIDI7XG59IiwiLnJlc2VsbGVyc3tcblxuICAgIC5jb2wtaGFsZiB7XG4gICAgICAucmVzZWxsZXItaXRlbSB7XG4gICAgICAgIGgye1xuICAgICAgICAgIFxuICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG5cbiAgICAgICAgICBAaW5jbHVkZSBicChtYXgtd2lkdGgsICRicC1zbWFsbCkge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICAgICAgICB9XG4gICAgICAgICAgXG4gICAgICAgICAgaW1nLHNwYW57XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpbWd7XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAuM2VtO1xuICAgICAgICAgICAgd2lkdGg6IDMwcHg7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogLTNweDsgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxufVxuXG4iLCJmb3JtLndwY2Y3LWZvcm0ge1xuXG4gIDo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7IC8qIFdlYktpdCwgQmxpbmssIEVkZ2UgKi9cbiAgICBjb2xvcjogICAgJGMtdGV4dDtcbiAgfVxuICA6LW1vei1wbGFjZWhvbGRlciB7IC8qIE1vemlsbGEgRmlyZWZveCA0IHRvIDE4ICovXG4gICAgIGNvbG9yOiAgICAgJGMtdGV4dDtcbiAgICAgb3BhY2l0eTogIDE7XG4gIH1cbiAgOjotbW96LXBsYWNlaG9sZGVyIHsgLyogTW96aWxsYSBGaXJlZm94IDE5KyAqL1xuICAgICBjb2xvcjogICAgJGMtdGV4dDtcbiAgICAgb3BhY2l0eTogIDE7XG4gIH1cbiAgOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7IC8qIEludGVybmV0IEV4cGxvcmVyIDEwLTExICovXG4gICAgIGNvbG9yOiAgICAgJGMtdGV4dDtcbiAgfVxuICA6Oi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7IC8qIE1pY3Jvc29mdCBFZGdlICovXG4gICAgIGNvbG9yOiAgICAkYy10ZXh0O1xuICB9XG5cbiAgZGl2LndwY2Y3LXJlc3BvbnNlLW91dHB1dHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIG1hcmdpbjogMWVtIDA7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjLXJlZDtcbiAgICBjb2xvcjogd2hpdGU7XG4gIH1cbiAgLnRleHQtcmlnaHR7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIH1cbiAgLmFqYXgtbG9hZGVye1xuICAgIGZsb2F0OiBsZWZ0O1xuICB9XG4gIC5hamF4LWxvYWRlcntcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmlucHV0c3tcbiAgICBzcGFuLndwY2Y3LWZvcm0tY29udHJvbC13cmFwe1xuICAgICAgaW5wdXQ6bm90KFt0eXBlPVwiY2hlY2tib3hcIl0pLFxuICAgICAgc2VsZWN0e1xuICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYy1kaXZpZGVyLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBwYWRkaW5nOiAwIDFlbTtcbiAgICAgICAgaGVpZ2h0OiAzNXB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMzVweDtcbiAgICAgICAgZm9udC1zaXplOiAkZi1zaXplO1xuXG4gICAgICAgICY6OnBsYWNlaG9sZGVye1xuICAgICAgICAgIGNvbG9yOiAkYy1kYXJrYmx1ZTtcbiAgICAgICAgICBmb250LWZhbWlseTogJGYtc3RhY2stc2FucztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBzcGFuLndwY2Y3LW5vdC12YWxpZC10aXB7XG4gICAgICBjb2xvcjogJGMtcmVkO1xuICAgIH1cblxuICB9XG4gIC5zdWNjZXNze1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAuYnV0dG9ue1xuICAgICAgbWFyZ2luLXRvcDogMWVtO1xuICAgIH1cbiAgfVxuXG4gICYuc2VudHtcbiAgICAuaW5wdXRzLC53cGNmNy1tYWlsLXNlbnQtb2t7ZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O31cbiAgICAuc3VjY2Vzc3tkaXNwbGF5OiBibG9jazt9XG4gIH1cbn1cblxuc3Bhbi53cGNmNy1saXN0LWl0ZW0ge1xuICBtYXJnaW46IDAgIWltcG9ydGFudDtcbn1cblxuXG5cblxuLmZvcm0td3JhcHBlciBmb3JtIHtcbiAgaW5wdXQsXG4gICAgICBzZWxlY3R7XG4gICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjLWRpdmlkZXItYm9yZGVyO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IDAgMWVtO1xuICAgICAgICBoZWlnaHQ6IDM1cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAzNXB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBmb250LXNpemU6ICRmLXNpemU7XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXJ7XG4gICAgICAgICAgY29sb3I6ICRjLWRhcmtibHVlO1xuICAgICAgICAgIGZvbnQtZmFtaWx5OiAkZi1zdGFjay1zYW5zO1xuICAgICAgICB9XG4gICAgICB9XG59IiwidWwuZG93bmxvYWRze1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcblxuICAuZG93bmxvYWQtaXRlbXtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luLWJvdHRvbTogLjVlbTtcbiAgICBtYXJnaW4tbGVmdDogMmVtO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG5cbiAgICAmLS1wZGZ7XG4gICAgICAmOmJlZm9yZXtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWFnZXMvaWNvbi1kb3dubG9hZC1wZGYuc3ZnJyk7XG4gICAgICB9XG4gICAgfVxuICAgICYtLXppcHtcbiAgICAgICY6YmVmb3Jle1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltYWdlcy9pY29uLWRvd25sb2FkLXppcC5zdmcnKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOmJlZm9yZXtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAtMmVtO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAycHg7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICB3aWR0aDogMjJweDtcbiAgICAgIGhlaWdodDogMjJweDtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWFnZXMvaWNvbi1kb3dubG9hZC1wZGYuc3ZnKTtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogMTlweCAyMnB4O1xuICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICB9XG5cbiAgICBhe1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgfVxuICB9XG59XG4iLCIubGlnaHRib3gsIC5zYW1wbGVyZXF1ZXN0LW92ZXJsYXl7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHotaW5kZXg6IDk5OTk7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwwLDAsLjUpO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG9wYWNpdHk6IDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5ICRkZWZhdWx0LXRyYW5zaXRpb24tZHVyYXRpb247XG4gIG92ZXJmbG93OiBzY3JvbGw7XG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcblxuICAmLmxvYWRpbmd7XG4gICAgb3BhY2l0eTogMTtcbiAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgLnNwaW5uZXJ7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbiAgfVxuICAmLmNvbXBsZXRle1xuICAgIG9wYWNpdHk6IDE7XG4gICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgIC5zcGlubmVye1xuICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG4gICAgLmJveHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuICAgICAgXG4gICAgICBAaW5jbHVkZSBicChtaW4td2lkdGgsICRicC1zbWFsbCArIDEpIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gICYuc2Nyb2xsIHtcbiAgICAuYm94IHtcbiAgICAgICAgdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIEBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLXNtYWxsICsgMSkge1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIDApICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG4gIH1cbiAgLnNwaW5uZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgaGVpZ2h0OiAxOHB4O1xuICAgIHdpZHRoOiAxOHB4O1xuICAgIGFuaW1hdGlvbjogcm90YXRlIDEuMnMgaW5maW5pdGUgbGluZWFyO1xuICAgIGJvcmRlcjogM3B4IHNvbGlkICNmZmY7XG4gICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuXG4gIEBrZXlmcmFtZXMgcm90YXRlIHtcbiAgICAwJSAgICB7IHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOyB9XG4gICAgMTAwJSAgeyB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9XG4gIH1cbiAgLmJveHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgbWFyZ2luOiA2MHB4IGF1dG87XG4gICAgd2lkdGg6IDk2JTtcblxuICAgICAgQGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtc21hbGwgKyAxKSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOjUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNDUlKTtcbiAgICAgIH1cblxuXG4gICAgIG9sIHtcbiAgICAgICAgbGlzdC1zdHlsZTogZGVjaW1hbCBvdXRzaWRlO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkYi1tYXJnaW4tYm90dG9tO1xuICAgICAgICBsaSB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMmVtO1xuICAgICAgICB9XG4gICAgfVxuXG5cblxuXG4gICAgaDEsIGgzLCAuaDMsIGgyLCBoMntcbiAgICAgIGZvbnQtc2l6ZTogJGYtc2l6ZS14eGw7XG4gICAgfVxuXG4gICAgYSNyZXF1ZXN0LXNhbXBsZSB7XG4gICAgICBtYXJnaW4tdG9wOiAkdHJpbS1zO1xuICAgIH1cblxuICAgIGgyLC5oMixcbiAgICBoMywuaDN7XG4gICAgICBtYXJnaW4tYm90dG9tOiAkdHJpbS1zO1xuICAgIH1cblxuICAgIG1heC13aWR0aDogNjkwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogJGRlZmF1bHQtYm9yZGVyLXJhZGl1cztcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgIHRyYW5zaXRpb24tZGVsYXk6ICRkZWZhdWx0LXRyYW5zaXRpb24tZGVsYXk7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtICRkZWZhdWx0LXRyYW5zaXRpb24tZHVyYXRpb24sXG4gICAgICAgICAgICAgICAgb3BhY2l0eSAkZGVmYXVsdC10cmFuc2l0aW9uLWR1cmF0aW9uO1xuXG4gICAgLmNsb3Nle1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogMzBweDtcbiAgICAgIGhlaWdodDogMzBweDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGMtYmx1ZTtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgbWluLXdpZHRoOiBhdXRvO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICB0b3A6IDYwcHg7XG4gICAgICBAaW5jbHVkZSBicChtaW4td2lkdGgsICRicC1zbWFsbCArIDEpIHtcbiAgICAgIHRvcDogMDtcbiAgICAgIH1cbiAgICAgIG1hcmdpbi10b3A6IC0xNXB4O1xuICAgICAgbWFyZ2luLXJpZ2h0OiA1MHB4O1xuICAgICAgLy90cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL2xpZ2h0Ym94LWNsb3NlLnN2Zyk7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IDExcHg7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7IFxuICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgJGRlZmF1bHQtdHJhbnNpdGlvbi1kdXJhdGlvbjtcblxuICAgICAgLy8gJjpiZWZvcmUsXG4gICAgICAvLyAmOmFmdGVye1xuICAgICAgLy8gICBkaXNwbGF5OiBibG9jaztcbiAgICAgIC8vICAgY29udGVudDogJyc7XG4gICAgICAvLyAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIC8vICAgbGVmdDogNTAlO1xuICAgICAgLy8gICB0b3A6MjUlO1xuICAgICAgLy8gICB3aWR0aDogMXB4O1xuICAgICAgLy8gICBoZWlnaHQ6IDUwJTtcbiAgICAgIC8vICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICAgIC8vIH1cbiAgICAgIC8vICY6YWZ0ZXJ7XG4gICAgICAvLyAgIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKSB0cmFuc2xhdGVYKC01MCUpO1xuICAgICAgLy8gfVxuXG4gICAgICAmOmhvdmVye1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJGMtYmx1ZSwgMyUpO1xuICAgICAgfVxuICAgIH1cbiAgICAuaW5uZXJ7XG4gICAgICBwYWRkaW5nOiA0MHB4IDIwcHggNjBweCAyMHB4O1xuXG4gICAgICBAaW5jbHVkZSBicChtaW4td2lkdGgsICRicC1zbWFsbCArIDEpIHtcbiAgICAgICAgcGFkZGluZzogNDBweCAyMHB4O1xuICAgICAgfVxuXG5cbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAvL292ZXJmbG93OiBzY3JvbGw7XG4gICAgICAvLy13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcblxuICAgICAgJjo6LXdlYmtpdC1zY3JvbGxiYXJ7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgICBAaW5jbHVkZSBicChtaW4td2lkdGgsICRicC1zbWFsbCArIDEpIHtcbiAgICAgICAgcGFkZGluZzogNzBweCA1MHB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5ib2R5LmxpZ2h0Ym94LWFjdGl2ZXtcbiAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xufVxuXG4uc2FtcGxlcmVxdWVzdC1vdmVybGF5IHtcblxuICAmLmFjdGl2ZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuICAgIC5ib3gge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICB9XG4gIH1cblxufVxuIiwiLmZpbmRlci1mb3JtIHtcblx0bWFyZ2luOiAkdHJpbSAwO1xuXG5cdC5sZXZlbCB7XG5cdFx0cGFkZGluZy10b3A6ICR0cmltO1xuXHRcdG1hcmdpbi10b3A6ICR0cmltO1xuXHRcdGJvcmRlci10b3A6IDFweCBkb3R0ZWQgJGMtZGFya2JsdWU7XG5cdH1cblxuXHQuc2VsZWN0LXdyYXBwZXIge1xuXHRcdG1hcmdpbi1ib3R0b206IDEwcHg7XG5cdH1cblxuXHRAaW5jbHVkZSBicChtaW4td2lkdGgsICRicC1zbWFsbCArIDEpIHtcblxuXHRcdC5zZWxlY3Qtcm93IHtcblx0XHRcdG1hcmdpbjogMCAtNXB4O1xuXG5cblx0XHRcdCY6YWZ0ZXIge1xuXHRcdFx0XHRAaW5jbHVkZSBjbGVhcmZpeDtcblx0XHRcdH1cblxuXHRcdH1cblxuXHRcdC5zZWxlY3Qtd3JhcHBlciB7XG5cdFx0XHRmbG9hdDogbGVmdDtcblx0XHRcdHdpZHRoOiA1MCU7XG5cblx0XHRcdC5zZWxlY3Qtd3JhcHBlci0taW5uZXIge1xuXHRcdFx0XHRtYXJnaW46IDAgNXB4O1xuXHRcdFx0fVxuXG5cdFx0fVxuXG5cdH1cbn1cblxuI3Byb2R1Y3RSZXN1bHQge1xuXHRtYXJnaW4tdG9wOiAkdHJpbTtcblx0Ly8gLnByb2R1Y3Qge1xuXHQvLyBcdFx0YS5wcm9kdWN0LWltYWdlIHtcblx0Ly8gXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdC8vIFx0XHRcdHBhZGRpbmctYm90dG9tOiA3MCU7XG5cdC8vIFx0XHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdC8vIFx0XHRcdGltZyB7XG5cdC8vIFx0XHRcdFx0Ly9wb3NpdGlvbjogYWJzb2x1dGU7XG5cdC8vIFx0XHRcdH1cblx0Ly8gXHRcdH1cblx0Ly8gXHR9XG59XG5cbi5ibG9jay1wcm9kdWN0ZmluZGVyIHtcblx0dWwgbGkucHJvZHVjdCAucHJvZHVjdC10aXRsZSB7XG5cdFx0Ym9yZGVyLWJvdHRvbTogbm9uZTtcblxuXHRcdGEge1xuXHRcdFx0Zm9udC1mYW1pbHk6ICRmLXN0YWNrLXNwZWNpYWw7XG5cdFx0XHRmb250LXNpemU6ICRmLXNpemUtbDtcblx0XHRcdGxpbmUtaGVpZ2h0OiAxLjI7XG5cdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG4jYmxvY2stcHJvZHVjdGZpbmRlciB7XG5cdC5zbGljay1zbGlkZSB7XG5cdFx0b3BhY2l0eTogMDtcblx0fVxuXHQmLnNsaWNrLWluaXRpYWxpemVkIHtcblx0XHQuc2xpY2stc2xpZGUge1xuXHRcdFx0b3BhY2l0eTogMTtcblx0XHR9XG5cdH1cbn1cblxuLmZpbmRlci1ub3RpY2UsIC5maW5kZXItbm9wcm9kdWN0IHtcblx0cGFkZGluZy10b3A6ICR0cmltO1xuXHRtYXJnaW4tdG9wOiAkdHJpbTtcblx0Ym9yZGVyLXRvcDogMXB4IGRvdHRlZCAkYy1kYXJrYmx1ZTtcbn1cblxuLmZpbmRlci1ub3Byb2R1Y3QgeyBcblx0ZGlzcGxheTogbm9uZTtcblx0Ym9yZGVyOiBub25lO1xufVxuXG4iLCIvL1xuLy8gTWFnZW50b1xuLy9cbi8vIE5PVElDRSBPRiBMSUNFTlNFXG4vL1xuLy8gVGhpcyBzb3VyY2UgZmlsZSBpcyBzdWJqZWN0IHRvIHRoZSBBY2FkZW1pYyBGcmVlIExpY2Vuc2UgKEFGTCAzLjApXG4vLyB0aGF0IGlzIGJ1bmRsZWQgd2l0aCB0aGlzIHBhY2thZ2UgaW4gdGhlIGZpbGUgTElDRU5TRV9BRkwudHh0LlxuLy8gSXQgaXMgYWxzbyBhdmFpbGFibGUgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIgYXQgdGhpcyBVUkw6XG4vLyBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYWZsLTMuMC5waHBcbi8vIElmIHlvdSBkaWQgbm90IHJlY2VpdmUgYSBjb3B5IG9mIHRoZSBsaWNlbnNlIGFuZCBhcmUgdW5hYmxlIHRvXG4vLyBvYnRhaW4gaXQgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIsIHBsZWFzZSBzZW5kIGFuIGVtYWlsXG4vLyB0byBsaWNlbnNlQG1hZ2VudG8uY29tIHNvIHdlIGNhbiBzZW5kIHlvdSBhIGNvcHkgaW1tZWRpYXRlbHkuXG4vL1xuLy8gRElTQ0xBSU1FUlxuLy9cbi8vIERvIG5vdCBlZGl0IG9yIGFkZCB0byB0aGlzIGZpbGUgaWYgeW91IHdpc2ggdG8gdXBncmFkZSBNYWdlbnRvIHRvIG5ld2VyXG4vLyB2ZXJzaW9ucyBpbiB0aGUgZnV0dXJlLiBJZiB5b3Ugd2lzaCB0byBjdXN0b21pemUgTWFnZW50byBmb3IgeW91clxuLy8gbmVlZHMgcGxlYXNlIHJlZmVyIHRvIGh0dHA6Ly93d3cubWFnZW50by5jb20gZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4vL1xuLy8gQGNhdGVnb3J5ICAgIGRlc2lnblxuLy8gQHBhY2thZ2UgICAgIHJ3ZF9kZWZhdWx0XG4vLyBAY29weXJpZ2h0ICAgQ29weXJpZ2h0IChjKSAyMDA2LTIwMTYgWC5jb21tZXJjZSwgSW5jLiBhbmQgYWZmaWxpYXRlcyAoaHR0cDovL3d3dy5tYWdlbnRvLmNvbSlcbi8vIEBsaWNlbnNlICAgICBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYWZsLTMuMC5waHAgIEFjYWRlbWljIEZyZWUgTGljZW5zZSAoQUZMIDMuMClcbi8vXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIENhbGVuZGFyIHN0eWxlcyAocmVzdG9yZSBzdHlsZXMgZnJvbSAvanMvY2FsZW5kYXIpXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuZGl2LmNhbGVuZGFyIHtcbiAgICB0YWJsZSB7XG4gICAgICAgIGJvcmRlci1jb2xsYXBzZTogc2VwYXJhdGU7XG5cbiAgICAgICAgdGQuYnV0dG9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBpbmhlcml0O1xuICAgICAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ== */
