@charset "UTF-8";
/**
 * Kudos to http://madebymike.com.au/writing/accessible-contrast-with-less-and-sass/
 */
/**
 * on-circle takes a radius, position on a circle, number of possible positions and returns top and left properties
 *
 * $ordinalPosition {Number} the position of the item on the circle, counting from 1 (North) through N
 * $radius {Number}    radius of the circle in pixels
 * $positions {Number}   the number of positions on the circle
 * $originX {Number}   optional X origin point for the circle, defaults to the radius
 * $originY {Number}   optional Y origin point for the circle, defaults to the radius
 * $offsetX {Number}   optional X offset for the item, you might use 1/2 of the width of an item, default is 0
 * $offsetY {Number}   optional Y offset for the item, you might use 1/2 of the height of an item, default is 0
 */
/**
 * Is $color1 lighter than $color2?
 */
/**
 * Is $color1 darker than $color2?
 */
/**
 * Find best lightness adjust method
 *
 * Ideally we should only increase the difference between the colors. If $color1
 * is lighter than $color2 but the contrast is not accessible, then we should try to
 * make it lighter rather than darker.
 */
/**
 * on-circle takes a radius, position on a circle, number of possible positions and returns top and left properties
 *
 * $ordinalPosition {Number} the position of the item on the circle, counting from 1 (North) through N
 * $radius {Number}    radius of the circle in pixels
 * $positions {Number}   the number of positions on the circle
 * $originX {Number}   optional X origin point for the circle, defaults to the radius
 * $originY {Number}   optional Y origin point for the circle, defaults to the radius
 * $offsetX {Number}   optional X offset for the item, you might use 1/2 of the width of an item, default is 0
 * $offsetY {Number}   optional Y offset for the item, you might use 1/2 of the height of an item, default is 0
 */
/**
 * Create an element with a colored background
 *
 * This mixin outputs a color and a background color
 * 
 * @param  string $color                    The background color you want to use, for instance #ffcc00
 * @param  string $foreground-color: #fff   The foreground/text color you want to use. This will have an accessible luminance, adjusted to work with $color
 * @param  string $background-color: #fff   The background on which the element is situated (elements background will be adjusted to have at least a small contrast to this)
 */
.body-bg {
  background-color: #f3f3f3;
  color: #333333; }
  .body-bg h1, .body-bg h2, .body-bg h3, .body-bg h4, .body-bg h5, .body-bg h6 {
    color: #212121; }
  .body-bg a {
    color: #017D6E; }
    .body-bg a:hover, .body-bg a:focus {
      color: #014a41; }
  .body-bg .subtle, .body-bg #kasse_one_form .subtaxes, #kasse_one_form .body-bg .subtaxes, .body-bg .product__main-images .bx-caption, .product__main-images .body-bg .bx-caption, .body-bg .product__meta-numbers, .body-bg .product .price--original, .product .body-bg .price--original, .body-bg .product .vat-info, .product .body-bg .vat-info, .body-bg .product__stockstatus, .body-bg .rating input:checked ~ label, .rating .body-bg input:checked ~ label, .body-bg .rating label:hover ~ label, .rating .body-bg label:hover ~ label, .body-bg .productlist .price--original, .productlist .body-bg .price--original {
    color: #333333; }
  .body-bg .bordered, .body-bg .checkout--kco__custom-intro, .body-bg .checkout--kco .checkout__step, .checkout--kco .body-bg .checkout__step {
    border-color: rgba(51, 51, 51, 0.2); }
  .body-bg .bordered--hard {
    border-color: rgba(51, 51, 51, 0.4); }
  .body-bg a.bordered:hover, .body-bg a.checkout--kco__custom-intro:hover, .body-bg .checkout--kco a.checkout__step:hover, .checkout--kco .body-bg a.checkout__step:hover, .body-bg a.bordered:focus, .body-bg a.checkout--kco__custom-intro:focus, .body-bg .checkout--kco a.checkout__step:focus, .checkout--kco .body-bg a.checkout__step:focus {
    border-color: rgba(51, 51, 51, 0.5); }
  .body-bg a.bordered--hard:hover, .body-bg a.bordered--hard:focus {
    border-color: rgba(51, 51, 51, 0.7); }
  .body-bg .neutral-link, .body-bg .neutral-link > a {
    color: #333333; }
    .body-bg .neutral-link:hover, .body-bg .neutral-link:focus, .body-bg .neutral-link:active, .body-bg .neutral-link > a:hover, .body-bg .neutral-link > a:focus, .body-bg .neutral-link > a:active {
      color: #212121; }
  .body-bg .primary-color {
    color: #017D6E; }
  .body-bg .primary-color-big {
    color: #017D6E; }
  .body-bg .primary-color-bg {
    background-color: #017D6E;
    color: #fff; }
    .body-bg .primary-color-bg a {
      color: #fff; }
      .body-bg .primary-color-bg a:hover, .body-bg .primary-color-bg a:focus {
        color: #fff;
        background-color: #01b09b; }
    .body-bg .primary-color-bg:hover, .body-bg .primary-color-bg:focus {
      color: #fff;
      background-color: #01b09b; }
  .body-bg .secondary-color {
    color: #6d6d6d; }
  .body-bg .secondary-color-big {
    color: #898989; }
  .body-bg .secondary-color-bg, .body-bg .cart-button--empty .cart-button__quantity, .cart-button--empty .body-bg .cart-button__quantity {
    background-color: #c8c8c8;
    color: #525252; }
    .body-bg .secondary-color-bg a, .body-bg .cart-button--empty .cart-button__quantity a, .cart-button--empty .body-bg .cart-button__quantity a {
      color: #525252; }
      .body-bg .secondary-color-bg a:hover, .body-bg .cart-button--empty .cart-button__quantity a:hover, .cart-button--empty .body-bg .cart-button__quantity a:hover, .body-bg .secondary-color-bg a:focus, .body-bg .cart-button--empty .cart-button__quantity a:focus, .cart-button--empty .body-bg .cart-button__quantity a:focus {
        color: #525252;
        background-color: #e2e2e2; }
    .body-bg .secondary-color-bg:hover, .body-bg .cart-button--empty .cart-button__quantity:hover, .cart-button--empty .body-bg .cart-button__quantity:hover, .body-bg .secondary-color-bg:focus, .body-bg .cart-button--empty .cart-button__quantity:focus, .cart-button--empty .body-bg .cart-button__quantity:focus {
      color: #525252;
      background-color: #e2e2e2; }
  .body-bg .call-to-action-color {
    color: #BA1136; }
  .body-bg .call-to-action-color-big {
    color: #BA1136; }
  .body-bg .call-to-action-color-bg, .body-bg .cart-button__quantity {
    background-color: #BA1136;
    color: #fff; }
    .body-bg .call-to-action-color-bg a, .body-bg .cart-button__quantity a {
      color: #fff; }
      .body-bg .call-to-action-color-bg a:hover, .body-bg .cart-button__quantity a:hover, .body-bg .call-to-action-color-bg a:focus, .body-bg .cart-button__quantity a:focus {
        color: #fff;
        background-color: #e91544; }
    .body-bg .call-to-action-color-bg:hover, .body-bg .cart-button__quantity:hover, .body-bg .call-to-action-color-bg:focus, .body-bg .cart-button__quantity:focus {
      color: #fff;
      background-color: #e91544; }
  .body-bg button, .body-bg button.disabled, .body-bg button.disabled:hover, .body-bg button.disabled:focus, .body-bg button[disabled], .body-bg button[disabled]:hover, .body-bg button[disabled]:focus, .body-bg .button, .body-bg .button.disabled, .body-bg .button.disabled:hover, .body-bg .button.disabled:focus, .body-bg .button[disabled], .body-bg .button[disabled]:hover, .body-bg .button[disabled]:focus {
    background-color: #017D6E;
    color: #fff;
    font-weight: normal; }
  .body-bg button:hover, .body-bg button:focus, .body-bg .button:hover, .body-bg .button:focus {
    color: #141414;
    background-color: #028F7E; }

.top-bg {
  background-color: #f5f5f5;
  color: #333333; }
  .top-bg h1, .top-bg h2, .top-bg h3, .top-bg h4, .top-bg h5, .top-bg h6 {
    color: #212121; }
  .top-bg a {
    color: #017D6E; }
    .top-bg a:hover, .top-bg a:focus {
      color: #014a41; }
  .top-bg .subtle, .top-bg #kasse_one_form .subtaxes, #kasse_one_form .top-bg .subtaxes, .top-bg .product__main-images .bx-caption, .product__main-images .top-bg .bx-caption, .top-bg .product__meta-numbers, .top-bg .product .price--original, .product .top-bg .price--original, .top-bg .product .vat-info, .product .top-bg .vat-info, .top-bg .product__stockstatus, .top-bg .rating input:checked ~ label, .rating .top-bg input:checked ~ label, .top-bg .rating label:hover ~ label, .rating .top-bg label:hover ~ label, .top-bg .productlist .price--original, .productlist .top-bg .price--original {
    color: #333333; }
  .top-bg .bordered, .top-bg .checkout--kco__custom-intro, .top-bg .checkout--kco .checkout__step, .checkout--kco .top-bg .checkout__step {
    border-color: rgba(51, 51, 51, 0.2); }
  .top-bg .bordered--hard {
    border-color: rgba(51, 51, 51, 0.4); }
  .top-bg a.bordered:hover, .top-bg a.checkout--kco__custom-intro:hover, .top-bg .checkout--kco a.checkout__step:hover, .checkout--kco .top-bg a.checkout__step:hover, .top-bg a.bordered:focus, .top-bg a.checkout--kco__custom-intro:focus, .top-bg .checkout--kco a.checkout__step:focus, .checkout--kco .top-bg a.checkout__step:focus {
    border-color: rgba(51, 51, 51, 0.5); }
  .top-bg a.bordered--hard:hover, .top-bg a.bordered--hard:focus {
    border-color: rgba(51, 51, 51, 0.7); }
  .top-bg .neutral-link, .top-bg .neutral-link > a {
    color: #333333; }
    .top-bg .neutral-link:hover, .top-bg .neutral-link:focus, .top-bg .neutral-link:active, .top-bg .neutral-link > a:hover, .top-bg .neutral-link > a:focus, .top-bg .neutral-link > a:active {
      color: #212121; }
  .top-bg .primary-color {
    color: #017D6E; }
  .top-bg .primary-color-big {
    color: #017D6E; }
  .top-bg .primary-color-bg {
    background-color: #017D6E;
    color: #fff; }
    .top-bg .primary-color-bg a {
      color: #fff; }
      .top-bg .primary-color-bg a:hover, .top-bg .primary-color-bg a:focus {
        color: #fff;
        background-color: #01b09b; }
    .top-bg .primary-color-bg:hover, .top-bg .primary-color-bg:focus {
      color: #fff;
      background-color: #01b09b; }
  .top-bg .secondary-color {
    color: #6d6d6d; }
  .top-bg .secondary-color-big {
    color: #898989; }
  .top-bg .secondary-color-bg, .top-bg .cart-button--empty .cart-button__quantity, .cart-button--empty .top-bg .cart-button__quantity {
    background-color: #c8c8c8;
    color: #525252; }
    .top-bg .secondary-color-bg a, .top-bg .cart-button--empty .cart-button__quantity a, .cart-button--empty .top-bg .cart-button__quantity a {
      color: #525252; }
      .top-bg .secondary-color-bg a:hover, .top-bg .cart-button--empty .cart-button__quantity a:hover, .cart-button--empty .top-bg .cart-button__quantity a:hover, .top-bg .secondary-color-bg a:focus, .top-bg .cart-button--empty .cart-button__quantity a:focus, .cart-button--empty .top-bg .cart-button__quantity a:focus {
        color: #525252;
        background-color: #e2e2e2; }
    .top-bg .secondary-color-bg:hover, .top-bg .cart-button--empty .cart-button__quantity:hover, .cart-button--empty .top-bg .cart-button__quantity:hover, .top-bg .secondary-color-bg:focus, .top-bg .cart-button--empty .cart-button__quantity:focus, .cart-button--empty .top-bg .cart-button__quantity:focus {
      color: #525252;
      background-color: #e2e2e2; }
  .top-bg .call-to-action-color {
    color: #BA1136; }
  .top-bg .call-to-action-color-big {
    color: #BA1136; }
  .top-bg .call-to-action-color-bg, .top-bg .cart-button__quantity {
    background-color: #BA1136;
    color: #fff; }
    .top-bg .call-to-action-color-bg a, .top-bg .cart-button__quantity a {
      color: #fff; }
      .top-bg .call-to-action-color-bg a:hover, .top-bg .cart-button__quantity a:hover, .top-bg .call-to-action-color-bg a:focus, .top-bg .cart-button__quantity a:focus {
        color: #fff;
        background-color: #e91544; }
    .top-bg .call-to-action-color-bg:hover, .top-bg .cart-button__quantity:hover, .top-bg .call-to-action-color-bg:focus, .top-bg .cart-button__quantity:focus {
      color: #fff;
      background-color: #e91544; }
  .top-bg button, .top-bg button.disabled, .top-bg button.disabled:hover, .top-bg button.disabled:focus, .top-bg button[disabled], .top-bg button[disabled]:hover, .top-bg button[disabled]:focus, .top-bg .button, .top-bg .button.disabled, .top-bg .button.disabled:hover, .top-bg .button.disabled:focus, .top-bg .button[disabled], .top-bg .button[disabled]:hover, .top-bg .button[disabled]:focus {
    background-color: #017D6E;
    color: #fff;
    font-weight: normal; }
  .top-bg button:hover, .top-bg button:focus, .top-bg .button:hover, .top-bg .button:focus {
    color: #141414;
    background-color: #028F7E; }

.navigation-bg {
  background-color: #000000;
  color: #cccccc; }
  .navigation-bg h1, .navigation-bg h2, .navigation-bg h3, .navigation-bg h4, .navigation-bg h5, .navigation-bg h6 {
    color: #dedede; }
  .navigation-bg a {
    color: #018777; }
    .navigation-bg a:hover, .navigation-bg a:focus {
      color: #01baa3; }
  .navigation-bg .subtle, .navigation-bg #kasse_one_form .subtaxes, #kasse_one_form .navigation-bg .subtaxes, .navigation-bg .product__main-images .bx-caption, .product__main-images .navigation-bg .bx-caption, .navigation-bg .product__meta-numbers, .navigation-bg .product .price--original, .product .navigation-bg .price--original, .navigation-bg .product .vat-info, .product .navigation-bg .vat-info, .navigation-bg .product__stockstatus, .navigation-bg .rating input:checked ~ label, .rating .navigation-bg input:checked ~ label, .navigation-bg .rating label:hover ~ label, .rating .navigation-bg label:hover ~ label, .navigation-bg .productlist .price--original, .productlist .navigation-bg .price--original {
    color: #cccccc; }
  .navigation-bg .bordered, .navigation-bg .checkout--kco__custom-intro, .navigation-bg .checkout--kco .checkout__step, .checkout--kco .navigation-bg .checkout__step {
    border-color: rgba(204, 204, 204, 0.2); }
  .navigation-bg .bordered--hard {
    border-color: rgba(204, 204, 204, 0.4); }
  .navigation-bg a.bordered:hover, .navigation-bg a.checkout--kco__custom-intro:hover, .navigation-bg .checkout--kco a.checkout__step:hover, .checkout--kco .navigation-bg a.checkout__step:hover, .navigation-bg a.bordered:focus, .navigation-bg a.checkout--kco__custom-intro:focus, .navigation-bg .checkout--kco a.checkout__step:focus, .checkout--kco .navigation-bg a.checkout__step:focus {
    border-color: rgba(204, 204, 204, 0.5); }
  .navigation-bg a.bordered--hard:hover, .navigation-bg a.bordered--hard:focus {
    border-color: rgba(204, 204, 204, 0.7); }
  .navigation-bg .neutral-link, .navigation-bg .neutral-link > a {
    color: #cccccc; }
    .navigation-bg .neutral-link:hover, .navigation-bg .neutral-link:focus, .navigation-bg .neutral-link:active, .navigation-bg .neutral-link > a:hover, .navigation-bg .neutral-link > a:focus, .navigation-bg .neutral-link > a:active {
      color: #dedede; }
  .navigation-bg .primary-color {
    color: #018777; }
  .navigation-bg .primary-color-big {
    color: #017D6E; }
  .navigation-bg .primary-color-bg {
    background-color: #017D6E;
    color: #fff; }
    .navigation-bg .primary-color-bg a {
      color: #fff; }
      .navigation-bg .primary-color-bg a:hover, .navigation-bg .primary-color-bg a:focus {
        color: #fff;
        background-color: #01b09b; }
    .navigation-bg .primary-color-bg:hover, .navigation-bg .primary-color-bg:focus {
      color: #fff;
      background-color: #01b09b; }
  .navigation-bg .secondary-color {
    color: #e7e7e7; }
  .navigation-bg .secondary-color-big {
    color: #e7e7e7; }
  .navigation-bg .secondary-color-bg, .navigation-bg .cart-button--empty .cart-button__quantity, .cart-button--empty .navigation-bg .cart-button__quantity {
    background-color: #e7e7e7;
    color: #666666; }
    .navigation-bg .secondary-color-bg a, .navigation-bg .cart-button--empty .cart-button__quantity a, .cart-button--empty .navigation-bg .cart-button__quantity a {
      color: #666666; }
      .navigation-bg .secondary-color-bg a:hover, .navigation-bg .cart-button--empty .cart-button__quantity a:hover, .cart-button--empty .navigation-bg .cart-button__quantity a:hover, .navigation-bg .secondary-color-bg a:focus, .navigation-bg .cart-button--empty .cart-button__quantity a:focus, .cart-button--empty .navigation-bg .cart-button__quantity a:focus {
        color: #666666;
        background-color: white; }
    .navigation-bg .secondary-color-bg:hover, .navigation-bg .cart-button--empty .cart-button__quantity:hover, .cart-button--empty .navigation-bg .cart-button__quantity:hover, .navigation-bg .secondary-color-bg:focus, .navigation-bg .cart-button--empty .cart-button__quantity:focus, .cart-button--empty .navigation-bg .cart-button__quantity:focus {
      color: #666666;
      background-color: white; }
  .navigation-bg .call-to-action-color {
    color: #e91544; }
  .navigation-bg .call-to-action-color-big {
    color: #BA1136; }
  .navigation-bg .call-to-action-color-bg, .navigation-bg .cart-button__quantity {
    background-color: #BA1136;
    color: #fff; }
    .navigation-bg .call-to-action-color-bg a, .navigation-bg .cart-button__quantity a {
      color: #fff; }
      .navigation-bg .call-to-action-color-bg a:hover, .navigation-bg .cart-button__quantity a:hover, .navigation-bg .call-to-action-color-bg a:focus, .navigation-bg .cart-button__quantity a:focus {
        color: #fff;
        background-color: #e91544; }
    .navigation-bg .call-to-action-color-bg:hover, .navigation-bg .cart-button__quantity:hover, .navigation-bg .call-to-action-color-bg:focus, .navigation-bg .cart-button__quantity:focus {
      color: #fff;
      background-color: #e91544; }
  .navigation-bg button, .navigation-bg button.disabled, .navigation-bg button.disabled:hover, .navigation-bg button.disabled:focus, .navigation-bg button[disabled], .navigation-bg button[disabled]:hover, .navigation-bg button[disabled]:focus, .navigation-bg .button, .navigation-bg .button.disabled, .navigation-bg .button.disabled:hover, .navigation-bg .button.disabled:focus, .navigation-bg .button[disabled], .navigation-bg .button[disabled]:hover, .navigation-bg .button[disabled]:focus {
    background-color: #017D6E;
    color: #fff;
    font-weight: normal; }
  .navigation-bg button:hover, .navigation-bg button:focus, .navigation-bg .button:hover, .navigation-bg .button:focus {
    color: #141414;
    background-color: #028F7E; }

.header-bg {
  background-color: #cccccc;
  color: #333333; }
  .header-bg h1, .header-bg h2, .header-bg h3, .header-bg h4, .header-bg h5, .header-bg h6 {
    color: #212121; }
  .header-bg a {
    color: #015f53; }
    .header-bg a:hover, .header-bg a:focus {
      color: #002c27; }
  .header-bg .subtle, .header-bg #kasse_one_form .subtaxes, #kasse_one_form .header-bg .subtaxes, .header-bg .product__main-images .bx-caption, .product__main-images .header-bg .bx-caption, .header-bg .product__meta-numbers, .header-bg .product .price--original, .product .header-bg .price--original, .header-bg .product .vat-info, .product .header-bg .vat-info, .header-bg .product__stockstatus, .header-bg .rating input:checked ~ label, .rating .header-bg input:checked ~ label, .header-bg .rating label:hover ~ label, .rating .header-bg label:hover ~ label, .header-bg .productlist .price--original, .productlist .header-bg .price--original {
    color: #333333; }
  .header-bg .bordered, .header-bg .checkout--kco__custom-intro, .header-bg .checkout--kco .checkout__step, .checkout--kco .header-bg .checkout__step {
    border-color: rgba(51, 51, 51, 0.2); }
  .header-bg .bordered--hard {
    border-color: rgba(51, 51, 51, 0.4); }
  .header-bg a.bordered:hover, .header-bg a.checkout--kco__custom-intro:hover, .header-bg .checkout--kco a.checkout__step:hover, .checkout--kco .header-bg a.checkout__step:hover, .header-bg a.bordered:focus, .header-bg a.checkout--kco__custom-intro:focus, .header-bg .checkout--kco a.checkout__step:focus, .checkout--kco .header-bg a.checkout__step:focus {
    border-color: rgba(51, 51, 51, 0.5); }
  .header-bg a.bordered--hard:hover, .header-bg a.bordered--hard:focus {
    border-color: rgba(51, 51, 51, 0.7); }
  .header-bg .neutral-link, .header-bg .neutral-link > a {
    color: #333333; }
    .header-bg .neutral-link:hover, .header-bg .neutral-link:focus, .header-bg .neutral-link:active, .header-bg .neutral-link > a:hover, .header-bg .neutral-link > a:focus, .header-bg .neutral-link > a:active {
      color: #212121; }
  .header-bg .primary-color {
    color: #015f53; }
  .header-bg .primary-color-big {
    color: #017D6E; }
  .header-bg .primary-color-bg {
    background-color: #017D6E;
    color: #fff; }
    .header-bg .primary-color-bg a {
      color: #fff; }
      .header-bg .primary-color-bg a:hover, .header-bg .primary-color-bg a:focus {
        color: #fff;
        background-color: #01b09b; }
    .header-bg .primary-color-bg:hover, .header-bg .primary-color-bg:focus {
      color: #fff;
      background-color: #01b09b; }
  .header-bg .secondary-color {
    color: #565656; }
  .header-bg .secondary-color-big {
    color: #6d6d6d; }
  .header-bg .secondary-color-bg, .header-bg .cart-button--empty .cart-button__quantity, .cart-button--empty .header-bg .cart-button__quantity {
    background-color: #a0a0a0;
    color: #363636; }
    .header-bg .secondary-color-bg a, .header-bg .cart-button--empty .cart-button__quantity a, .cart-button--empty .header-bg .cart-button__quantity a {
      color: #363636; }
      .header-bg .secondary-color-bg a:hover, .header-bg .cart-button--empty .cart-button__quantity a:hover, .cart-button--empty .header-bg .cart-button__quantity a:hover, .header-bg .secondary-color-bg a:focus, .header-bg .cart-button--empty .cart-button__quantity a:focus, .cart-button--empty .header-bg .cart-button__quantity a:focus {
        color: #363636;
        background-color: #b9b9b9; }
    .header-bg .secondary-color-bg:hover, .header-bg .cart-button--empty .cart-button__quantity:hover, .cart-button--empty .header-bg .cart-button__quantity:hover, .header-bg .secondary-color-bg:focus, .header-bg .cart-button--empty .cart-button__quantity:focus, .cart-button--empty .header-bg .cart-button__quantity:focus {
      color: #363636;
      background-color: #b9b9b9; }
  .header-bg .call-to-action-color {
    color: #ac1032; }
  .header-bg .call-to-action-color-big {
    color: #BA1136; }
  .header-bg .call-to-action-color-bg, .header-bg .cart-button__quantity {
    background-color: #BA1136;
    color: #fff; }
    .header-bg .call-to-action-color-bg a, .header-bg .cart-button__quantity a {
      color: #fff; }
      .header-bg .call-to-action-color-bg a:hover, .header-bg .cart-button__quantity a:hover, .header-bg .call-to-action-color-bg a:focus, .header-bg .cart-button__quantity a:focus {
        color: #fff;
        background-color: #e91544; }
    .header-bg .call-to-action-color-bg:hover, .header-bg .cart-button__quantity:hover, .header-bg .call-to-action-color-bg:focus, .header-bg .cart-button__quantity:focus {
      color: #fff;
      background-color: #e91544; }
  .header-bg button, .header-bg button.disabled, .header-bg button.disabled:hover, .header-bg button.disabled:focus, .header-bg button[disabled], .header-bg button[disabled]:hover, .header-bg button[disabled]:focus, .header-bg .button, .header-bg .button.disabled, .header-bg .button.disabled:hover, .header-bg .button.disabled:focus, .header-bg .button[disabled], .header-bg .button[disabled]:hover, .header-bg .button[disabled]:focus {
    background-color: #017D6E;
    color: #fff;
    font-weight: normal; }
  .header-bg button:hover, .header-bg button:focus, .header-bg .button:hover, .header-bg .button:focus {
    color: #141414;
    background-color: #028F7E; }

.breadcrumbs-bg {
  background-color: #e3e3e3;
  color: #333333; }
  .breadcrumbs-bg h1, .breadcrumbs-bg h2, .breadcrumbs-bg h3, .breadcrumbs-bg h4, .breadcrumbs-bg h5, .breadcrumbs-bg h6 {
    color: #212121; }
  .breadcrumbs-bg a {
    color: #017365; }
    .breadcrumbs-bg a:hover, .breadcrumbs-bg a:focus {
      color: #014039; }
  .breadcrumbs-bg .subtle, .breadcrumbs-bg #kasse_one_form .subtaxes, #kasse_one_form .breadcrumbs-bg .subtaxes, .breadcrumbs-bg .product__main-images .bx-caption, .product__main-images .breadcrumbs-bg .bx-caption, .breadcrumbs-bg .product__meta-numbers, .breadcrumbs-bg .product .price--original, .product .breadcrumbs-bg .price--original, .breadcrumbs-bg .product .vat-info, .product .breadcrumbs-bg .vat-info, .breadcrumbs-bg .product__stockstatus, .breadcrumbs-bg .rating input:checked ~ label, .rating .breadcrumbs-bg input:checked ~ label, .breadcrumbs-bg .rating label:hover ~ label, .rating .breadcrumbs-bg label:hover ~ label, .breadcrumbs-bg .productlist .price--original, .productlist .breadcrumbs-bg .price--original {
    color: #333333; }
  .breadcrumbs-bg .bordered, .breadcrumbs-bg .checkout--kco__custom-intro, .breadcrumbs-bg .checkout--kco .checkout__step, .checkout--kco .breadcrumbs-bg .checkout__step {
    border-color: rgba(51, 51, 51, 0.2); }
  .breadcrumbs-bg .bordered--hard {
    border-color: rgba(51, 51, 51, 0.4); }
  .breadcrumbs-bg a.bordered:hover, .breadcrumbs-bg a.checkout--kco__custom-intro:hover, .breadcrumbs-bg .checkout--kco a.checkout__step:hover, .checkout--kco .breadcrumbs-bg a.checkout__step:hover, .breadcrumbs-bg a.bordered:focus, .breadcrumbs-bg a.checkout--kco__custom-intro:focus, .breadcrumbs-bg .checkout--kco a.checkout__step:focus, .checkout--kco .breadcrumbs-bg a.checkout__step:focus {
    border-color: rgba(51, 51, 51, 0.5); }
  .breadcrumbs-bg a.bordered--hard:hover, .breadcrumbs-bg a.bordered--hard:focus {
    border-color: rgba(51, 51, 51, 0.7); }
  .breadcrumbs-bg .neutral-link, .breadcrumbs-bg .neutral-link > a {
    color: #333333; }
    .breadcrumbs-bg .neutral-link:hover, .breadcrumbs-bg .neutral-link:focus, .breadcrumbs-bg .neutral-link:active, .breadcrumbs-bg .neutral-link > a:hover, .breadcrumbs-bg .neutral-link > a:focus, .breadcrumbs-bg .neutral-link > a:active {
      color: #212121; }
  .breadcrumbs-bg .primary-color {
    color: #017365; }
  .breadcrumbs-bg .primary-color-big {
    color: #017D6E; }
  .breadcrumbs-bg .primary-color-bg {
    background-color: #017D6E;
    color: #fff; }
    .breadcrumbs-bg .primary-color-bg a {
      color: #fff; }
      .breadcrumbs-bg .primary-color-bg a:hover, .breadcrumbs-bg .primary-color-bg a:focus {
        color: #fff;
        background-color: #01b09b; }
    .breadcrumbs-bg .primary-color-bg:hover, .breadcrumbs-bg .primary-color-bg:focus {
      color: #fff;
      background-color: #01b09b; }
  .breadcrumbs-bg .secondary-color {
    color: #656565; }
  .breadcrumbs-bg .secondary-color-big {
    color: #818181; }
  .breadcrumbs-bg .secondary-color-bg, .breadcrumbs-bg .cart-button--empty .cart-button__quantity, .cart-button--empty .breadcrumbs-bg .cart-button__quantity {
    background-color: #b9b9b9;
    color: #4a4a4a; }
    .breadcrumbs-bg .secondary-color-bg a, .breadcrumbs-bg .cart-button--empty .cart-button__quantity a, .cart-button--empty .breadcrumbs-bg .cart-button__quantity a {
      color: #4a4a4a; }
      .breadcrumbs-bg .secondary-color-bg a:hover, .breadcrumbs-bg .cart-button--empty .cart-button__quantity a:hover, .cart-button--empty .breadcrumbs-bg .cart-button__quantity a:hover, .breadcrumbs-bg .secondary-color-bg a:focus, .breadcrumbs-bg .cart-button--empty .cart-button__quantity a:focus, .cart-button--empty .breadcrumbs-bg .cart-button__quantity a:focus {
        color: #4a4a4a;
        background-color: lightgray; }
    .breadcrumbs-bg .secondary-color-bg:hover, .breadcrumbs-bg .cart-button--empty .cart-button__quantity:hover, .cart-button--empty .breadcrumbs-bg .cart-button__quantity:hover, .breadcrumbs-bg .secondary-color-bg:focus, .breadcrumbs-bg .cart-button--empty .cart-button__quantity:focus, .cart-button--empty .breadcrumbs-bg .cart-button__quantity:focus {
      color: #4a4a4a;
      background-color: lightgray; }
  .breadcrumbs-bg .call-to-action-color {
    color: #BA1136; }
  .breadcrumbs-bg .call-to-action-color-big {
    color: #BA1136; }
  .breadcrumbs-bg .call-to-action-color-bg, .breadcrumbs-bg .cart-button__quantity {
    background-color: #BA1136;
    color: #fff; }
    .breadcrumbs-bg .call-to-action-color-bg a, .breadcrumbs-bg .cart-button__quantity a {
      color: #fff; }
      .breadcrumbs-bg .call-to-action-color-bg a:hover, .breadcrumbs-bg .cart-button__quantity a:hover, .breadcrumbs-bg .call-to-action-color-bg a:focus, .breadcrumbs-bg .cart-button__quantity a:focus {
        color: #fff;
        background-color: #e91544; }
    .breadcrumbs-bg .call-to-action-color-bg:hover, .breadcrumbs-bg .cart-button__quantity:hover, .breadcrumbs-bg .call-to-action-color-bg:focus, .breadcrumbs-bg .cart-button__quantity:focus {
      color: #fff;
      background-color: #e91544; }
  .breadcrumbs-bg button, .breadcrumbs-bg button.disabled, .breadcrumbs-bg button.disabled:hover, .breadcrumbs-bg button.disabled:focus, .breadcrumbs-bg button[disabled], .breadcrumbs-bg button[disabled]:hover, .breadcrumbs-bg button[disabled]:focus, .breadcrumbs-bg .button, .breadcrumbs-bg .button.disabled, .breadcrumbs-bg .button.disabled:hover, .breadcrumbs-bg .button.disabled:focus, .breadcrumbs-bg .button[disabled], .breadcrumbs-bg .button[disabled]:hover, .breadcrumbs-bg .button[disabled]:focus {
    background-color: #017D6E;
    color: #fff;
    font-weight: normal; }
  .breadcrumbs-bg button:hover, .breadcrumbs-bg button:focus, .breadcrumbs-bg .button:hover, .breadcrumbs-bg .button:focus {
    color: #141414;
    background-color: #028F7E; }

.content-bg {
  background-color: #ffffff;
  color: #333333; }
  .content-bg h1, .content-bg h2, .content-bg h3, .content-bg h4, .content-bg h5, .content-bg h6 {
    color: #212121; }
  .content-bg a {
    color: #017D6E; }
    .content-bg a:hover, .content-bg a:focus {
      color: #014a41; }
  .content-bg .subtle, .content-bg #kasse_one_form .subtaxes, #kasse_one_form .content-bg .subtaxes, .content-bg .product__main-images .bx-caption, .product__main-images .content-bg .bx-caption, .content-bg .product__meta-numbers, .content-bg .product .price--original, .product .content-bg .price--original, .content-bg .product .vat-info, .product .content-bg .vat-info, .content-bg .product__stockstatus, .content-bg .rating input:checked ~ label, .rating .content-bg input:checked ~ label, .content-bg .rating label:hover ~ label, .rating .content-bg label:hover ~ label, .content-bg .productlist .price--original, .productlist .content-bg .price--original {
    color: #333333; }
  .content-bg .bordered, .content-bg .checkout--kco__custom-intro, .content-bg .checkout--kco .checkout__step, .checkout--kco .content-bg .checkout__step {
    border-color: rgba(51, 51, 51, 0.2); }
  .content-bg .bordered--hard {
    border-color: rgba(51, 51, 51, 0.4); }
  .content-bg a.bordered:hover, .content-bg a.checkout--kco__custom-intro:hover, .content-bg .checkout--kco a.checkout__step:hover, .checkout--kco .content-bg a.checkout__step:hover, .content-bg a.bordered:focus, .content-bg a.checkout--kco__custom-intro:focus, .content-bg .checkout--kco a.checkout__step:focus, .checkout--kco .content-bg a.checkout__step:focus {
    border-color: rgba(51, 51, 51, 0.5); }
  .content-bg a.bordered--hard:hover, .content-bg a.bordered--hard:focus {
    border-color: rgba(51, 51, 51, 0.7); }
  .content-bg .neutral-link, .content-bg .neutral-link > a {
    color: #333333; }
    .content-bg .neutral-link:hover, .content-bg .neutral-link:focus, .content-bg .neutral-link:active, .content-bg .neutral-link > a:hover, .content-bg .neutral-link > a:focus, .content-bg .neutral-link > a:active {
      color: #212121; }
  .content-bg .primary-color {
    color: #017D6E; }
  .content-bg .primary-color-big {
    color: #017D6E; }
  .content-bg .primary-color-bg {
    background-color: #017D6E;
    color: #fff; }
    .content-bg .primary-color-bg a {
      color: #fff; }
      .content-bg .primary-color-bg a:hover, .content-bg .primary-color-bg a:focus {
        color: #fff;
        background-color: #01b09b; }
    .content-bg .primary-color-bg:hover, .content-bg .primary-color-bg:focus {
      color: #fff;
      background-color: #01b09b; }
  .content-bg .secondary-color {
    color: #747474; }
  .content-bg .secondary-color-big {
    color: #909090; }
  .content-bg .secondary-color-bg, .content-bg .cart-button--empty .cart-button__quantity, .cart-button--empty .content-bg .cart-button__quantity {
    background-color: #c8c8c8;
    color: #525252; }
    .content-bg .secondary-color-bg a, .content-bg .cart-button--empty .cart-button__quantity a, .cart-button--empty .content-bg .cart-button__quantity a {
      color: #525252; }
      .content-bg .secondary-color-bg a:hover, .content-bg .cart-button--empty .cart-button__quantity a:hover, .cart-button--empty .content-bg .cart-button__quantity a:hover, .content-bg .secondary-color-bg a:focus, .content-bg .cart-button--empty .cart-button__quantity a:focus, .cart-button--empty .content-bg .cart-button__quantity a:focus {
        color: #525252;
        background-color: #e2e2e2; }
    .content-bg .secondary-color-bg:hover, .content-bg .cart-button--empty .cart-button__quantity:hover, .cart-button--empty .content-bg .cart-button__quantity:hover, .content-bg .secondary-color-bg:focus, .content-bg .cart-button--empty .cart-button__quantity:focus, .cart-button--empty .content-bg .cart-button__quantity:focus {
      color: #525252;
      background-color: #e2e2e2; }
  .content-bg .call-to-action-color {
    color: #BA1136; }
  .content-bg .call-to-action-color-big {
    color: #BA1136; }
  .content-bg .call-to-action-color-bg, .content-bg .cart-button__quantity {
    background-color: #BA1136;
    color: #fff; }
    .content-bg .call-to-action-color-bg a, .content-bg .cart-button__quantity a {
      color: #fff; }
      .content-bg .call-to-action-color-bg a:hover, .content-bg .cart-button__quantity a:hover, .content-bg .call-to-action-color-bg a:focus, .content-bg .cart-button__quantity a:focus {
        color: #fff;
        background-color: #e91544; }
    .content-bg .call-to-action-color-bg:hover, .content-bg .cart-button__quantity:hover, .content-bg .call-to-action-color-bg:focus, .content-bg .cart-button__quantity:focus {
      color: #fff;
      background-color: #e91544; }
  .content-bg button, .content-bg button.disabled, .content-bg button.disabled:hover, .content-bg button.disabled:focus, .content-bg button[disabled], .content-bg button[disabled]:hover, .content-bg button[disabled]:focus, .content-bg .button, .content-bg .button.disabled, .content-bg .button.disabled:hover, .content-bg .button.disabled:focus, .content-bg .button[disabled], .content-bg .button[disabled]:hover, .content-bg .button[disabled]:focus {
    background-color: #017D6E;
    color: #fff;
    font-weight: normal; }
  .content-bg button:hover, .content-bg button:focus, .content-bg .button:hover, .content-bg .button:focus {
    color: #141414;
    background-color: #028F7E; }

.freight-option,
.payment-option {
  border-color: rgba(51, 51, 51, 0.2); }

.page__title, .product__title {
  border-color: rgba(51, 51, 51, 0.5); }

.product .price {
  color: #017D6E; }

.next-step-btn.button, .checkout__step #client_fetch, .checkout__step--inactive.valid .kasse_one_step_number, .button.receipt__print, .product__buy-button.button {
  background-color: #017D6E;
  color: #fff; }

.product .product__wishlist-button.button {
  background-color: #c8c8c8;
  color: #000; }

.footer-bg {
  background-color: #d0d0d0;
  color: #333333; }
  .footer-bg h1, .footer-bg h2, .footer-bg h3, .footer-bg h4, .footer-bg h5, .footer-bg h6 {
    color: #212121; }
  .footer-bg a {
    color: #016458; }
    .footer-bg a:hover, .footer-bg a:focus {
      color: #00312b; }
  .footer-bg .subtle, .footer-bg #kasse_one_form .subtaxes, #kasse_one_form .footer-bg .subtaxes, .footer-bg .product__main-images .bx-caption, .product__main-images .footer-bg .bx-caption, .footer-bg .product__meta-numbers, .footer-bg .product .price--original, .product .footer-bg .price--original, .footer-bg .product .vat-info, .product .footer-bg .vat-info, .footer-bg .product__stockstatus, .footer-bg .rating input:checked ~ label, .rating .footer-bg input:checked ~ label, .footer-bg .rating label:hover ~ label, .rating .footer-bg label:hover ~ label, .footer-bg .productlist .price--original, .productlist .footer-bg .price--original {
    color: #333333; }
  .footer-bg .bordered, .footer-bg .checkout--kco__custom-intro, .footer-bg .checkout--kco .checkout__step, .checkout--kco .footer-bg .checkout__step {
    border-color: rgba(51, 51, 51, 0.2); }
  .footer-bg .bordered--hard {
    border-color: rgba(51, 51, 51, 0.4); }
  .footer-bg a.bordered:hover, .footer-bg a.checkout--kco__custom-intro:hover, .footer-bg .checkout--kco a.checkout__step:hover, .checkout--kco .footer-bg a.checkout__step:hover, .footer-bg a.bordered:focus, .footer-bg a.checkout--kco__custom-intro:focus, .footer-bg .checkout--kco a.checkout__step:focus, .checkout--kco .footer-bg a.checkout__step:focus {
    border-color: rgba(51, 51, 51, 0.5); }
  .footer-bg a.bordered--hard:hover, .footer-bg a.bordered--hard:focus {
    border-color: rgba(51, 51, 51, 0.7); }
  .footer-bg .neutral-link, .footer-bg .neutral-link > a {
    color: #333333; }
    .footer-bg .neutral-link:hover, .footer-bg .neutral-link:focus, .footer-bg .neutral-link:active, .footer-bg .neutral-link > a:hover, .footer-bg .neutral-link > a:focus, .footer-bg .neutral-link > a:active {
      color: #212121; }
  .footer-bg .primary-color {
    color: #016458; }
  .footer-bg .primary-color-big {
    color: #017D6E; }
  .footer-bg .primary-color-bg {
    background-color: #017D6E;
    color: #fff; }
    .footer-bg .primary-color-bg a {
      color: #fff; }
      .footer-bg .primary-color-bg a:hover, .footer-bg .primary-color-bg a:focus {
        color: #fff;
        background-color: #01b09b; }
    .footer-bg .primary-color-bg:hover, .footer-bg .primary-color-bg:focus {
      color: #fff;
      background-color: #01b09b; }
  .footer-bg .secondary-color {
    color: #585858; }
  .footer-bg .secondary-color-big {
    color: #727272; }
  .footer-bg .secondary-color-bg, .footer-bg .cart-button--empty .cart-button__quantity, .cart-button--empty .footer-bg .cart-button__quantity {
    background-color: #a7a7a7;
    color: #3d3d3d; }
    .footer-bg .secondary-color-bg a, .footer-bg .cart-button--empty .cart-button__quantity a, .cart-button--empty .footer-bg .cart-button__quantity a {
      color: #3d3d3d; }
      .footer-bg .secondary-color-bg a:hover, .footer-bg .cart-button--empty .cart-button__quantity a:hover, .cart-button--empty .footer-bg .cart-button__quantity a:hover, .footer-bg .secondary-color-bg a:focus, .footer-bg .cart-button--empty .cart-button__quantity a:focus, .cart-button--empty .footer-bg .cart-button__quantity a:focus {
        color: #3d3d3d;
        background-color: #c1c1c1; }
    .footer-bg .secondary-color-bg:hover, .footer-bg .cart-button--empty .cart-button__quantity:hover, .cart-button--empty .footer-bg .cart-button__quantity:hover, .footer-bg .secondary-color-bg:focus, .footer-bg .cart-button--empty .cart-button__quantity:focus, .cart-button--empty .footer-bg .cart-button__quantity:focus {
      color: #3d3d3d;
      background-color: #c1c1c1; }
  .footer-bg .call-to-action-color {
    color: #ac1032; }
  .footer-bg .call-to-action-color-big {
    color: #BA1136; }
  .footer-bg .call-to-action-color-bg, .footer-bg .cart-button__quantity {
    background-color: #BA1136;
    color: #fff; }
    .footer-bg .call-to-action-color-bg a, .footer-bg .cart-button__quantity a {
      color: #fff; }
      .footer-bg .call-to-action-color-bg a:hover, .footer-bg .cart-button__quantity a:hover, .footer-bg .call-to-action-color-bg a:focus, .footer-bg .cart-button__quantity a:focus {
        color: #fff;
        background-color: #e91544; }
    .footer-bg .call-to-action-color-bg:hover, .footer-bg .cart-button__quantity:hover, .footer-bg .call-to-action-color-bg:focus, .footer-bg .cart-button__quantity:focus {
      color: #fff;
      background-color: #e91544; }
  .footer-bg button, .footer-bg button.disabled, .footer-bg button.disabled:hover, .footer-bg button.disabled:focus, .footer-bg button[disabled], .footer-bg button[disabled]:hover, .footer-bg button[disabled]:focus, .footer-bg .button, .footer-bg .button.disabled, .footer-bg .button.disabled:hover, .footer-bg .button.disabled:focus, .footer-bg .button[disabled], .footer-bg .button[disabled]:hover, .footer-bg .button[disabled]:focus {
    background-color: #017D6E;
    color: #fff;
    font-weight: normal; }
  .footer-bg button:hover, .footer-bg button:focus, .footer-bg .button:hover, .footer-bg .button:focus {
    color: #141414;
    background-color: #028F7E; }

.end-bg {
  background-color: #eeeeee;
  color: #333333; }
  .end-bg h1, .end-bg h2, .end-bg h3, .end-bg h4, .end-bg h5, .end-bg h6 {
    color: #212121; }
  .end-bg a {
    color: #01786a; }
    .end-bg a:hover, .end-bg a:focus {
      color: #01453d; }
  .end-bg .subtle, .end-bg #kasse_one_form .subtaxes, #kasse_one_form .end-bg .subtaxes, .end-bg .product__main-images .bx-caption, .product__main-images .end-bg .bx-caption, .end-bg .product__meta-numbers, .end-bg .product .price--original, .product .end-bg .price--original, .end-bg .product .vat-info, .product .end-bg .vat-info, .end-bg .product__stockstatus, .end-bg .rating input:checked ~ label, .rating .end-bg input:checked ~ label, .end-bg .rating label:hover ~ label, .rating .end-bg label:hover ~ label, .end-bg .productlist .price--original, .productlist .end-bg .price--original {
    color: #333333; }
  .end-bg .bordered, .end-bg .checkout--kco__custom-intro, .end-bg .checkout--kco .checkout__step, .checkout--kco .end-bg .checkout__step {
    border-color: rgba(51, 51, 51, 0.2); }
  .end-bg .bordered--hard {
    border-color: rgba(51, 51, 51, 0.4); }
  .end-bg a.bordered:hover, .end-bg a.checkout--kco__custom-intro:hover, .end-bg .checkout--kco a.checkout__step:hover, .checkout--kco .end-bg a.checkout__step:hover, .end-bg a.bordered:focus, .end-bg a.checkout--kco__custom-intro:focus, .end-bg .checkout--kco a.checkout__step:focus, .checkout--kco .end-bg a.checkout__step:focus {
    border-color: rgba(51, 51, 51, 0.5); }
  .end-bg a.bordered--hard:hover, .end-bg a.bordered--hard:focus {
    border-color: rgba(51, 51, 51, 0.7); }
  .end-bg .neutral-link, .end-bg .neutral-link > a {
    color: #333333; }
    .end-bg .neutral-link:hover, .end-bg .neutral-link:focus, .end-bg .neutral-link:active, .end-bg .neutral-link > a:hover, .end-bg .neutral-link > a:focus, .end-bg .neutral-link > a:active {
      color: #212121; }
  .end-bg .primary-color {
    color: #01786a; }
  .end-bg .primary-color-big {
    color: #017D6E; }
  .end-bg .primary-color-bg {
    background-color: #017D6E;
    color: #fff; }
    .end-bg .primary-color-bg a {
      color: #fff; }
      .end-bg .primary-color-bg a:hover, .end-bg .primary-color-bg a:focus {
        color: #fff;
        background-color: #01b09b; }
    .end-bg .primary-color-bg:hover, .end-bg .primary-color-bg:focus {
      color: #fff;
      background-color: #01b09b; }
  .end-bg .secondary-color {
    color: #6a6a6a; }
  .end-bg .secondary-color-big {
    color: #898989; }
  .end-bg .secondary-color-bg, .end-bg .cart-button--empty .cart-button__quantity, .cart-button--empty .end-bg .cart-button__quantity {
    background-color: #b9b9b9;
    color: #4a4a4a; }
    .end-bg .secondary-color-bg a, .end-bg .cart-button--empty .cart-button__quantity a, .cart-button--empty .end-bg .cart-button__quantity a {
      color: #4a4a4a; }
      .end-bg .secondary-color-bg a:hover, .end-bg .cart-button--empty .cart-button__quantity a:hover, .cart-button--empty .end-bg .cart-button__quantity a:hover, .end-bg .secondary-color-bg a:focus, .end-bg .cart-button--empty .cart-button__quantity a:focus, .cart-button--empty .end-bg .cart-button__quantity a:focus {
        color: #4a4a4a;
        background-color: lightgray; }
    .end-bg .secondary-color-bg:hover, .end-bg .cart-button--empty .cart-button__quantity:hover, .cart-button--empty .end-bg .cart-button__quantity:hover, .end-bg .secondary-color-bg:focus, .end-bg .cart-button--empty .cart-button__quantity:focus, .cart-button--empty .end-bg .cart-button__quantity:focus {
      color: #4a4a4a;
      background-color: lightgray; }
  .end-bg .call-to-action-color {
    color: #BA1136; }
  .end-bg .call-to-action-color-big {
    color: #BA1136; }
  .end-bg .call-to-action-color-bg, .end-bg .cart-button__quantity {
    background-color: #BA1136;
    color: #fff; }
    .end-bg .call-to-action-color-bg a, .end-bg .cart-button__quantity a {
      color: #fff; }
      .end-bg .call-to-action-color-bg a:hover, .end-bg .cart-button__quantity a:hover, .end-bg .call-to-action-color-bg a:focus, .end-bg .cart-button__quantity a:focus {
        color: #fff;
        background-color: #e91544; }
    .end-bg .call-to-action-color-bg:hover, .end-bg .cart-button__quantity:hover, .end-bg .call-to-action-color-bg:focus, .end-bg .cart-button__quantity:focus {
      color: #fff;
      background-color: #e91544; }
  .end-bg button, .end-bg button.disabled, .end-bg button.disabled:hover, .end-bg button.disabled:focus, .end-bg button[disabled], .end-bg button[disabled]:hover, .end-bg button[disabled]:focus, .end-bg .button, .end-bg .button.disabled, .end-bg .button.disabled:hover, .end-bg .button.disabled:focus, .end-bg .button[disabled], .end-bg .button[disabled]:hover, .end-bg .button[disabled]:focus {
    background-color: #017D6E;
    color: #fff;
    font-weight: normal; }
  .end-bg button:hover, .end-bg button:focus, .end-bg .button:hover, .end-bg .button:focus {
    color: #141414;
    background-color: #028F7E; }

/*! normalize.css v3.0.2 | MIT License | git.io/normalize */
/**
 * 1. Set default font family to sans-serif.
 * 2. Prevent iOS text size adjust after orientation change, without disabling
 *    user zoom.
 */
html {
  font-family: sans-serif;
  /* 1 */
  -ms-text-size-adjust: 100%;
  /* 2 */
  -webkit-text-size-adjust: 100%;
  /* 2 */ }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

sup {
  top: -0.5em; }

sub {
  bottom: -0.25em; }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

td,
th {
  padding: 0; }

meta.foundation-version {
  font-family: "/5.5.1/"; }

meta.foundation-mq-small {
  font-family: "/only screen/";
  width: 0em; }

meta.foundation-mq-small-only {
  font-family: "/only screen and (max-width: 39.9375em)/";
  width: 0em; }

meta.foundation-mq-medium {
  font-family: "/only screen and (min-width:40em)/";
  width: 40em; }

meta.foundation-mq-medium-only {
  font-family: "/only screen and (min-width:40em) and (max-width:63.9375em)/";
  width: 40em; }

meta.foundation-mq-large {
  font-family: "/only screen and (min-width:64em)/";
  width: 64em; }

meta.foundation-mq-large-only {
  font-family: "/only screen and (min-width:64em) and (max-width:89.9375em)/";
  width: 64em; }

meta.foundation-mq-xlarge {
  font-family: "/only screen and (min-width:90em)/";
  width: 90em; }

meta.foundation-mq-xlarge-only {
  font-family: "/only screen and (min-width:90em) and (max-width:119.9375em)/";
  width: 90em; }

meta.foundation-mq-xxlarge {
  font-family: "/only screen and (min-width:120em)/";
  width: 120em; }

meta.foundation-data-attribute-namespace {
  font-family: false; }

html, body {
  height: 100%; }

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

html,
body {
  font-size: 100%; }

body {
  background: #f3f3f3;
  color: #333333;
  padding: 0;
  margin: 0;
  font-family: Helvetica, 'Trebuchet MS', Helvetica, Arial, sans-serif;
  font-weight: normal;
  font-style: normal;
  line-height: 1.5;
  position: relative;
  cursor: auto; }

a:hover {
  cursor: pointer; }

img {
  max-width: 100%;
  height: auto; }

img {
  -ms-interpolation-mode: bicubic; }

#map_canvas img,
#map_canvas embed,
#map_canvas object,
.map_canvas img,
.map_canvas embed,
.map_canvas object {
  max-width: none !important; }

.left {
  float: left !important; }

.right {
  float: right !important; }

.clearfix:before, .clearfix:after {
  content: " ";
  display: table; }

.clearfix:after {
  clear: both; }

.hide {
  display: none; }

.invisible {
  visibility: hidden; }

.antialiased {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

img {
  display: inline-block;
  vertical-align: middle; }

textarea {
  height: auto;
  min-height: 50px; }

select {
  width: 100%; }

[class*="block-grid-"] {
  display: block;
  padding: 0;
  margin: 0; }
  [class*="block-grid-"]:before, [class*="block-grid-"]:after {
    content: " ";
    display: table; }
  [class*="block-grid-"]:after {
    clear: both; }
  [class*="block-grid-"] > li {
    display: block;
    height: auto;
    float: left;
    padding: 0 0.9375rem 1.875rem; }

@media only screen {
  .small-block-grid-1 > li {
    width: 100%;
    list-style: none; }
    .small-block-grid-1 > li:nth-of-type(1n) {
      clear: none; }
    .small-block-grid-1 > li:nth-of-type(1n+1) {
      clear: both; }
    .small-block-grid-1 > li:nth-of-type(1n) {
      padding-left: 0rem;
      padding-right: 0rem; }
  .small-block-grid-2 > li {
    width: 50%;
    list-style: none; }
    .small-block-grid-2 > li:nth-of-type(1n) {
      clear: none; }
    .small-block-grid-2 > li:nth-of-type(2n+1) {
      clear: both; }
    .small-block-grid-2 > li:nth-of-type(2n+1) {
      padding-left: 0rem;
      padding-right: 0.9375rem; }
    .small-block-grid-2 > li:nth-of-type(2n) {
      padding-left: 0.9375rem;
      padding-right: 0rem; }
  .small-block-grid-3 > li {
    width: 33.33333%;
    list-style: none; }
    .small-block-grid-3 > li:nth-of-type(1n) {
      clear: none; }
    .small-block-grid-3 > li:nth-of-type(3n+1) {
      clear: both; }
    .small-block-grid-3 > li:nth-of-type(3n+1) {
      padding-left: 0rem;
      padding-right: 1.25rem; }
    .small-block-grid-3 > li:nth-of-type(3n+2) {
      padding-left: 0.625rem;
      padding-right: 0.625rem; }
    .small-block-grid-3 > li:nth-of-type(3n) {
      padding-left: 1.25rem;
      padding-right: 0rem; }
  .small-block-grid-4 > li {
    width: 25%;
    list-style: none; }
    .small-block-grid-4 > li:nth-of-type(1n) {
      clear: none; }
    .small-block-grid-4 > li:nth-of-type(4n+1) {
      clear: both; }
    .small-block-grid-4 > li:nth-of-type(4n+1) {
      padding-left: 0rem;
      padding-right: 1.40625rem; }
    .small-block-grid-4 > li:nth-of-type(4n+2) {
      padding-left: 0.46875rem;
      padding-right: 0.9375rem; }
    .small-block-grid-4 > li:nth-of-type(4n+3) {
      padding-left: 0.9375rem;
      padding-right: 0.46875rem; }
    .small-block-grid-4 > li:nth-of-type(4n) {
      padding-left: 1.40625rem;
      padding-right: 0rem; }
  .small-block-grid-5 > li {
    width: 20%;
    list-style: none; }
    .small-block-grid-5 > li:nth-of-type(1n) {
      clear: none; }
    .small-block-grid-5 > li:nth-of-type(5n+1) {
      clear: both; }
    .small-block-grid-5 > li:nth-of-type(5n+1) {
      padding-left: 0rem;
      padding-right: 1.5rem; }
    .small-block-grid-5 > li:nth-of-type(5n+2) {
      padding-left: 0.375rem;
      padding-right: 1.125rem; }
    .small-block-grid-5 > li:nth-of-type(5n+3) {
      padding-left: 0.75rem;
      padding-right: 0.75rem; }
    .small-block-grid-5 > li:nth-of-type(5n+4) {
      padding-left: 1.125rem;
      padding-right: 0.375rem; }
    .small-block-grid-5 > li:nth-of-type(5n) {
      padding-left: 1.5rem;
      padding-right: 0rem; } }

@media only screen and (min-width: 40em) {
  .medium-block-grid-1 > li {
    width: 100%;
    list-style: none; }
    .medium-block-grid-1 > li:nth-of-type(1n) {
      clear: none; }
    .medium-block-grid-1 > li:nth-of-type(1n+1) {
      clear: both; }
    .medium-block-grid-1 > li:nth-of-type(1n) {
      padding-left: 0rem;
      padding-right: 0rem; }
  .medium-block-grid-2 > li {
    width: 50%;
    list-style: none; }
    .medium-block-grid-2 > li:nth-of-type(1n) {
      clear: none; }
    .medium-block-grid-2 > li:nth-of-type(2n+1) {
      clear: both; }
    .medium-block-grid-2 > li:nth-of-type(2n+1) {
      padding-left: 0rem;
      padding-right: 0.9375rem; }
    .medium-block-grid-2 > li:nth-of-type(2n) {
      padding-left: 0.9375rem;
      padding-right: 0rem; }
  .medium-block-grid-3 > li {
    width: 33.33333%;
    list-style: none; }
    .medium-block-grid-3 > li:nth-of-type(1n) {
      clear: none; }
    .medium-block-grid-3 > li:nth-of-type(3n+1) {
      clear: both; }
    .medium-block-grid-3 > li:nth-of-type(3n+1) {
      padding-left: 0rem;
      padding-right: 1.25rem; }
    .medium-block-grid-3 > li:nth-of-type(3n+2) {
      padding-left: 0.625rem;
      padding-right: 0.625rem; }
    .medium-block-grid-3 > li:nth-of-type(3n) {
      padding-left: 1.25rem;
      padding-right: 0rem; }
  .medium-block-grid-4 > li {
    width: 25%;
    list-style: none; }
    .medium-block-grid-4 > li:nth-of-type(1n) {
      clear: none; }
    .medium-block-grid-4 > li:nth-of-type(4n+1) {
      clear: both; }
    .medium-block-grid-4 > li:nth-of-type(4n+1) {
      padding-left: 0rem;
      padding-right: 1.40625rem; }
    .medium-block-grid-4 > li:nth-of-type(4n+2) {
      padding-left: 0.46875rem;
      padding-right: 0.9375rem; }
    .medium-block-grid-4 > li:nth-of-type(4n+3) {
      padding-left: 0.9375rem;
      padding-right: 0.46875rem; }
    .medium-block-grid-4 > li:nth-of-type(4n) {
      padding-left: 1.40625rem;
      padding-right: 0rem; }
  .medium-block-grid-5 > li {
    width: 20%;
    list-style: none; }
    .medium-block-grid-5 > li:nth-of-type(1n) {
      clear: none; }
    .medium-block-grid-5 > li:nth-of-type(5n+1) {
      clear: both; }
    .medium-block-grid-5 > li:nth-of-type(5n+1) {
      padding-left: 0rem;
      padding-right: 1.5rem; }
    .medium-block-grid-5 > li:nth-of-type(5n+2) {
      padding-left: 0.375rem;
      padding-right: 1.125rem; }
    .medium-block-grid-5 > li:nth-of-type(5n+3) {
      padding-left: 0.75rem;
      padding-right: 0.75rem; }
    .medium-block-grid-5 > li:nth-of-type(5n+4) {
      padding-left: 1.125rem;
      padding-right: 0.375rem; }
    .medium-block-grid-5 > li:nth-of-type(5n) {
      padding-left: 1.5rem;
      padding-right: 0rem; } }

@media only screen and (min-width: 64em) {
  .large-block-grid-1 > li {
    width: 100%;
    list-style: none; }
    .large-block-grid-1 > li:nth-of-type(1n) {
      clear: none; }
    .large-block-grid-1 > li:nth-of-type(1n+1) {
      clear: both; }
    .large-block-grid-1 > li:nth-of-type(1n) {
      padding-left: 0rem;
      padding-right: 0rem; }
  .large-block-grid-2 > li {
    width: 50%;
    list-style: none; }
    .large-block-grid-2 > li:nth-of-type(1n) {
      clear: none; }
    .large-block-grid-2 > li:nth-of-type(2n+1) {
      clear: both; }
    .large-block-grid-2 > li:nth-of-type(2n+1) {
      padding-left: 0rem;
      padding-right: 0.9375rem; }
    .large-block-grid-2 > li:nth-of-type(2n) {
      padding-left: 0.9375rem;
      padding-right: 0rem; }
  .large-block-grid-3 > li {
    width: 33.33333%;
    list-style: none; }
    .large-block-grid-3 > li:nth-of-type(1n) {
      clear: none; }
    .large-block-grid-3 > li:nth-of-type(3n+1) {
      clear: both; }
    .large-block-grid-3 > li:nth-of-type(3n+1) {
      padding-left: 0rem;
      padding-right: 1.25rem; }
    .large-block-grid-3 > li:nth-of-type(3n+2) {
      padding-left: 0.625rem;
      padding-right: 0.625rem; }
    .large-block-grid-3 > li:nth-of-type(3n) {
      padding-left: 1.25rem;
      padding-right: 0rem; }
  .large-block-grid-4 > li {
    width: 25%;
    list-style: none; }
    .large-block-grid-4 > li:nth-of-type(1n) {
      clear: none; }
    .large-block-grid-4 > li:nth-of-type(4n+1) {
      clear: both; }
    .large-block-grid-4 > li:nth-of-type(4n+1) {
      padding-left: 0rem;
      padding-right: 1.40625rem; }
    .large-block-grid-4 > li:nth-of-type(4n+2) {
      padding-left: 0.46875rem;
      padding-right: 0.9375rem; }
    .large-block-grid-4 > li:nth-of-type(4n+3) {
      padding-left: 0.9375rem;
      padding-right: 0.46875rem; }
    .large-block-grid-4 > li:nth-of-type(4n) {
      padding-left: 1.40625rem;
      padding-right: 0rem; }
  .large-block-grid-5 > li {
    width: 20%;
    list-style: none; }
    .large-block-grid-5 > li:nth-of-type(1n) {
      clear: none; }
    .large-block-grid-5 > li:nth-of-type(5n+1) {
      clear: both; }
    .large-block-grid-5 > li:nth-of-type(5n+1) {
      padding-left: 0rem;
      padding-right: 1.5rem; }
    .large-block-grid-5 > li:nth-of-type(5n+2) {
      padding-left: 0.375rem;
      padding-right: 1.125rem; }
    .large-block-grid-5 > li:nth-of-type(5n+3) {
      padding-left: 0.75rem;
      padding-right: 0.75rem; }
    .large-block-grid-5 > li:nth-of-type(5n+4) {
      padding-left: 1.125rem;
      padding-right: 0.375rem; }
    .large-block-grid-5 > li:nth-of-type(5n) {
      padding-left: 1.5rem;
      padding-right: 0rem; } }

.breadcrumbs {
  display: block;
  padding: 0;
  overflow: hidden;
  margin-left: 0;
  list-style: none;
  border-style: solid;
  border-width: 0;
  background-color: #fff;
  border-color: #e6e6e6;
  border-radius: 0; }
  .breadcrumbs > * {
    margin: 0;
    float: left;
    font-size: 0.75rem;
    line-height: 0.75rem;
    text-transform: none;
    color: #017365; }
    .breadcrumbs > *:hover a, .breadcrumbs > *:focus a {
      text-decoration: underline; }
    .breadcrumbs > * a {
      color: #017365; }
    .breadcrumbs > *.current {
      cursor: default;
      color: #494949; }
      .breadcrumbs > *.current a {
        cursor: default;
        color: #494949; }
      .breadcrumbs > *.current:hover, .breadcrumbs > *.current:hover a, .breadcrumbs > *.current:focus, .breadcrumbs > *.current:focus a {
        text-decoration: none; }
    .breadcrumbs > *.unavailable {
      color: #999999; }
      .breadcrumbs > *.unavailable a {
        color: #999999; }
      .breadcrumbs > *.unavailable:hover,
      .breadcrumbs > *.unavailable:hover a, .breadcrumbs > *.unavailable:focus,
      .breadcrumbs > *.unavailable a:focus {
        text-decoration: none;
        color: #999999;
        cursor: not-allowed; }
    .breadcrumbs > *:before {
      content: "/";
      color: rgba(50, 50, 50, 0.75);
      margin: 0 0.5rem;
      position: relative;
      top: 1px; }
    .breadcrumbs > *:first-child:before {
      content: " ";
      margin: 0; }

/* Accessibility - hides the forward slash */
[aria-label="breadcrumbs"] [aria-hidden="true"]:after {
  content: "/"; }

button, .button {
  border-style: solid;
  border-width: 0;
  cursor: pointer;
  font-family: Helvetica, 'Trebuchet MS', Helvetica, Arial, sans-serif;
  font-weight: normal;
  line-height: normal;
  margin: 0 0 1.25rem;
  position: relative;
  text-decoration: none;
  text-align: center;
  -webkit-appearance: none;
  -moz-appearance: none;
  border-radius: 0;
  display: inline-block;
  padding-top: 1rem;
  padding-right: 2rem;
  padding-bottom: 1.0625rem;
  padding-left: 2rem;
  font-size: 1rem;
  background-color: #017D6E;
  border-color: #016458;
  color: #FFFFFF;
  transition: background-color 300ms ease-out; }
  button:hover, button:focus, .button:hover, .button:focus {
    background-color: #016458; }
  button:hover, button:focus, .button:hover, .button:focus {
    color: #FFFFFF; }
  button.secondary, .button.secondary {
    background-color: #e7e7e7;
    border-color: #b9b9b9;
    color: #333333; }
    button.secondary:hover, button.secondary:focus, .button.secondary:hover, .button.secondary:focus {
      background-color: #b9b9b9; }
    button.secondary:hover, button.secondary:focus, .button.secondary:hover, .button.secondary:focus {
      color: #333333; }
  button.success, .button.success {
    background-color: #5cb85c;
    border-color: #439a43;
    color: #FFFFFF; }
    button.success:hover, button.success:focus, .button.success:hover, .button.success:focus {
      background-color: #439a43; }
    button.success:hover, button.success:focus, .button.success:hover, .button.success:focus {
      color: #FFFFFF; }
  button.alert, .button.alert {
    background-color: #e03114;
    border-color: #b32710;
    color: #FFFFFF; }
    button.alert:hover, button.alert:focus, .button.alert:hover, .button.alert:focus {
      background-color: #b32710; }
    button.alert:hover, button.alert:focus, .button.alert:hover, .button.alert:focus {
      color: #FFFFFF; }
  button.warning, .button.warning {
    background-color: #ffa200;
    border-color: #cc8200;
    color: #FFFFFF; }
    button.warning:hover, button.warning:focus, .button.warning:hover, .button.warning:focus {
      background-color: #cc8200; }
    button.warning:hover, button.warning:focus, .button.warning:hover, .button.warning:focus {
      color: #FFFFFF; }
  button.info, .button.info {
    background-color: #5bc0de;
    border-color: #2aaad0;
    color: #FFFFFF; }
    button.info:hover, button.info:focus, .button.info:hover, .button.info:focus {
      background-color: #2aaad0; }
    button.info:hover, button.info:focus, .button.info:hover, .button.info:focus {
      color: #FFFFFF; }
  button.large, .button.large {
    padding-top: 1.125rem;
    padding-right: 2.25rem;
    padding-bottom: 1.1875rem;
    padding-left: 2.25rem;
    font-size: 1.25rem; }
  button.small, .button.small {
    padding-top: 0.875rem;
    padding-right: 1.75rem;
    padding-bottom: 0.9375rem;
    padding-left: 1.75rem;
    font-size: 0.8125rem; }
  button.tiny, .button.tiny {
    padding-top: 0.625rem;
    padding-right: 1.25rem;
    padding-bottom: 0.6875rem;
    padding-left: 1.25rem;
    font-size: 0.6875rem; }
  button.expand, .button.expand {
    padding-right: 0;
    padding-left: 0;
    width: 100%; }
  button.left-align, .button.left-align {
    text-align: left;
    text-indent: 0.75rem; }
  button.right-align, .button.right-align {
    text-align: right;
    padding-right: 0.75rem; }
  button.radius, .button.radius, body .button, body button {
    border-radius: 0; }
  button.round, .button.round {
    border-radius: 1000px; }
  button.disabled, button[disabled], .button.disabled, .button[disabled] {
    background-color: #017D6E;
    border-color: #016458;
    color: #FFFFFF;
    cursor: default;
    opacity: 0.7;
    box-shadow: none; }
    button.disabled:hover, button.disabled:focus, button[disabled]:hover, button[disabled]:focus, .button.disabled:hover, .button.disabled:focus, .button[disabled]:hover, .button[disabled]:focus {
      background-color: #016458; }
    button.disabled:hover, button.disabled:focus, button[disabled]:hover, button[disabled]:focus, .button.disabled:hover, .button.disabled:focus, .button[disabled]:hover, .button[disabled]:focus {
      color: #FFFFFF; }
    button.disabled:hover, button.disabled:focus, button[disabled]:hover, button[disabled]:focus, .button.disabled:hover, .button.disabled:focus, .button[disabled]:hover, .button[disabled]:focus {
      background-color: #017D6E; }
    button.disabled.secondary, button[disabled].secondary, .button.disabled.secondary, .button[disabled].secondary {
      background-color: #e7e7e7;
      border-color: #b9b9b9;
      color: #333333;
      cursor: default;
      opacity: 0.7;
      box-shadow: none; }
      button.disabled.secondary:hover, button.disabled.secondary:focus, button[disabled].secondary:hover, button[disabled].secondary:focus, .button.disabled.secondary:hover, .button.disabled.secondary:focus, .button[disabled].secondary:hover, .button[disabled].secondary:focus {
        background-color: #b9b9b9; }
      button.disabled.secondary:hover, button.disabled.secondary:focus, button[disabled].secondary:hover, button[disabled].secondary:focus, .button.disabled.secondary:hover, .button.disabled.secondary:focus, .button[disabled].secondary:hover, .button[disabled].secondary:focus {
        color: #333333; }
      button.disabled.secondary:hover, button.disabled.secondary:focus, button[disabled].secondary:hover, button[disabled].secondary:focus, .button.disabled.secondary:hover, .button.disabled.secondary:focus, .button[disabled].secondary:hover, .button[disabled].secondary:focus {
        background-color: #e7e7e7; }
    button.disabled.success, button[disabled].success, .button.disabled.success, .button[disabled].success {
      background-color: #5cb85c;
      border-color: #439a43;
      color: #FFFFFF;
      cursor: default;
      opacity: 0.7;
      box-shadow: none; }
      button.disabled.success:hover, button.disabled.success:focus, button[disabled].success:hover, button[disabled].success:focus, .button.disabled.success:hover, .button.disabled.success:focus, .button[disabled].success:hover, .button[disabled].success:focus {
        background-color: #439a43; }
      button.disabled.success:hover, button.disabled.success:focus, button[disabled].success:hover, button[disabled].success:focus, .button.disabled.success:hover, .button.disabled.success:focus, .button[disabled].success:hover, .button[disabled].success:focus {
        color: #FFFFFF; }
      button.disabled.success:hover, button.disabled.success:focus, button[disabled].success:hover, button[disabled].success:focus, .button.disabled.success:hover, .button.disabled.success:focus, .button[disabled].success:hover, .button[disabled].success:focus {
        background-color: #5cb85c; }
    button.disabled.alert, button[disabled].alert, .button.disabled.alert, .button[disabled].alert {
      background-color: #e03114;
      border-color: #b32710;
      color: #FFFFFF;
      cursor: default;
      opacity: 0.7;
      box-shadow: none; }
      button.disabled.alert:hover, button.disabled.alert:focus, button[disabled].alert:hover, button[disabled].alert:focus, .button.disabled.alert:hover, .button.disabled.alert:focus, .button[disabled].alert:hover, .button[disabled].alert:focus {
        background-color: #b32710; }
      button.disabled.alert:hover, button.disabled.alert:focus, button[disabled].alert:hover, button[disabled].alert:focus, .button.disabled.alert:hover, .button.disabled.alert:focus, .button[disabled].alert:hover, .button[disabled].alert:focus {
        color: #FFFFFF; }
      button.disabled.alert:hover, button.disabled.alert:focus, button[disabled].alert:hover, button[disabled].alert:focus, .button.disabled.alert:hover, .button.disabled.alert:focus, .button[disabled].alert:hover, .button[disabled].alert:focus {
        background-color: #e03114; }
    button.disabled.warning, button[disabled].warning, .button.disabled.warning, .button[disabled].warning {
      background-color: #ffa200;
      border-color: #cc8200;
      color: #FFFFFF;
      cursor: default;
      opacity: 0.7;
      box-shadow: none; }
      button.disabled.warning:hover, button.disabled.warning:focus, button[disabled].warning:hover, button[disabled].warning:focus, .button.disabled.warning:hover, .button.disabled.warning:focus, .button[disabled].warning:hover, .button[disabled].warning:focus {
        background-color: #cc8200; }
      button.disabled.warning:hover, button.disabled.warning:focus, button[disabled].warning:hover, button[disabled].warning:focus, .button.disabled.warning:hover, .button.disabled.warning:focus, .button[disabled].warning:hover, .button[disabled].warning:focus {
        color: #FFFFFF; }
      button.disabled.warning:hover, button.disabled.warning:focus, button[disabled].warning:hover, button[disabled].warning:focus, .button.disabled.warning:hover, .button.disabled.warning:focus, .button[disabled].warning:hover, .button[disabled].warning:focus {
        background-color: #ffa200; }
    button.disabled.info, button[disabled].info, .button.disabled.info, .button[disabled].info {
      background-color: #5bc0de;
      border-color: #2aaad0;
      color: #FFFFFF;
      cursor: default;
      opacity: 0.7;
      box-shadow: none; }
      button.disabled.info:hover, button.disabled.info:focus, button[disabled].info:hover, button[disabled].info:focus, .button.disabled.info:hover, .button.disabled.info:focus, .button[disabled].info:hover, .button[disabled].info:focus {
        background-color: #2aaad0; }
      button.disabled.info:hover, button.disabled.info:focus, button[disabled].info:hover, button[disabled].info:focus, .button.disabled.info:hover, .button.disabled.info:focus, .button[disabled].info:hover, .button[disabled].info:focus {
        color: #FFFFFF; }
      button.disabled.info:hover, button.disabled.info:focus, button[disabled].info:hover, button[disabled].info:focus, .button.disabled.info:hover, .button.disabled.info:focus, .button[disabled].info:hover, .button[disabled].info:focus {
        background-color: #5bc0de; }

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

@media only screen and (min-width: 40em) {
  button, .button {
    display: inline-block; } }

/* Standard Forms */
form {
  margin: 0 0 1rem; }

/* Using forms within rows, we need to set some defaults */
form .row .row {
  margin: 0 -0.5rem; }
  form .row .row .column,
  form .row .row .columns {
    padding: 0 0.5rem; }
  form .row .row.collapse {
    margin: 0; }
    form .row .row.collapse .column,
    form .row .row.collapse .columns {
      padding: 0; }
    form .row .row.collapse input {
      -webkit-border-bottom-right-radius: 0;
      -webkit-border-top-right-radius: 0;
      border-bottom-right-radius: 0;
      border-top-right-radius: 0; }

form .row input.column,
form .row input.columns,
form .row textarea.column,
form .row textarea.columns {
  padding-left: 0.5rem; }

/* Label Styles */
label {
  font-size: 0.875rem;
  color: #4d4d4d;
  cursor: pointer;
  display: block;
  font-weight: normal;
  line-height: 1.5;
  margin-bottom: 0;
  /* Styles for required inputs */ }
  label.right {
    float: none !important;
    text-align: right; }
  label.inline {
    margin: 0 0 1rem 0;
    padding: 0.5625rem 0; }
  label small {
    text-transform: capitalize;
    color: #676767; }

/* Attach elements to the beginning or end of an input */
.prefix,
.postfix {
  display: block;
  position: relative;
  z-index: 2;
  text-align: center;
  width: 100%;
  padding-top: 0;
  padding-bottom: 0;
  border-style: solid;
  border-width: 1px;
  overflow: visible;
  font-size: 0.875rem;
  height: 2.3125rem;
  line-height: 2.3125rem; }

/* Adjust padding, alignment and radius if pre/post element is a button */
.postfix.button {
  padding-left: 0;
  padding-right: 0;
  padding-top: 0;
  padding-bottom: 0;
  text-align: center;
  border: none; }

.prefix.button {
  padding-left: 0;
  padding-right: 0;
  padding-top: 0;
  padding-bottom: 0;
  text-align: center;
  border: none; }

.prefix.button.radius, body .prefix.button, body button.prefix {
  border-radius: 0;
  -webkit-border-bottom-left-radius: 0;
  -webkit-border-top-left-radius: 0;
  border-bottom-left-radius: 0;
  border-top-left-radius: 0; }

.postfix.button.radius, body .postfix.button, body button.postfix {
  border-radius: 0;
  -webkit-border-bottom-right-radius: 0;
  -webkit-border-top-right-radius: 0;
  border-bottom-right-radius: 0;
  border-top-right-radius: 0; }

.prefix.button.round {
  border-radius: 0;
  -webkit-border-bottom-left-radius: 1000px;
  -webkit-border-top-left-radius: 1000px;
  border-bottom-left-radius: 1000px;
  border-top-left-radius: 1000px; }

.postfix.button.round {
  border-radius: 0;
  -webkit-border-bottom-right-radius: 1000px;
  -webkit-border-top-right-radius: 1000px;
  border-bottom-right-radius: 1000px;
  border-top-right-radius: 1000px; }

/* Separate prefix and postfix styles when on span or label so buttons keep their own */
span.prefix, label.prefix {
  background: #f2f2f2;
  border-right: none;
  color: #333333;
  border-color: #cccccc; }

span.postfix, label.postfix {
  background: #f2f2f2;
  border-left: none;
  color: #333333;
  border-color: #cccccc; }

/* We use this to get basic styling on all basic form elements */
input[type="text"], input[type="password"], input[type="date"], input[type="datetime"], input[type="datetime-local"], input[type="month"], input[type="week"], input[type="email"], input[type="number"], input[type="search"], input[type="tel"], input[type="time"], input[type="url"], input[type="color"], textarea {
  -webkit-appearance: none;
  border-radius: 0;
  background-color: #FFFFFF;
  font-family: inherit;
  border-style: solid;
  border-width: 1px;
  border-color: #cccccc;
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
  color: rgba(0, 0, 0, 0.75);
  display: block;
  font-size: 0.875rem;
  margin: 0 0 1rem 0;
  padding: 0.5rem;
  height: 2.3125rem;
  width: 100%;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  transition: all 0.15s linear; }
  input[type="text"]:focus, input[type="password"]:focus, input[type="date"]:focus, input[type="datetime"]:focus, input[type="datetime-local"]:focus, input[type="month"]:focus, input[type="week"]:focus, input[type="email"]:focus, input[type="number"]:focus, input[type="search"]:focus, input[type="tel"]:focus, input[type="time"]:focus, input[type="url"]:focus, input[type="color"]:focus, textarea:focus {
    background: #fafafa;
    border-color: #999999;
    outline: none; }
  input[type="text"]:disabled, input[type="password"]:disabled, input[type="date"]:disabled, input[type="datetime"]:disabled, input[type="datetime-local"]:disabled, input[type="month"]:disabled, input[type="week"]:disabled, input[type="email"]:disabled, input[type="number"]:disabled, input[type="search"]:disabled, input[type="tel"]:disabled, input[type="time"]:disabled, input[type="url"]:disabled, input[type="color"]:disabled, textarea:disabled {
    background-color: #DDDDDD;
    cursor: default; }
  input[type="text"][disabled], input[type="text"][readonly],
  fieldset[disabled] input[type="text"], input[type="password"][disabled], input[type="password"][readonly],
  fieldset[disabled] input[type="password"], input[type="date"][disabled], input[type="date"][readonly],
  fieldset[disabled] input[type="date"], input[type="datetime"][disabled], input[type="datetime"][readonly],
  fieldset[disabled] input[type="datetime"], input[type="datetime-local"][disabled], input[type="datetime-local"][readonly],
  fieldset[disabled] input[type="datetime-local"], input[type="month"][disabled], input[type="month"][readonly],
  fieldset[disabled] input[type="month"], input[type="week"][disabled], input[type="week"][readonly],
  fieldset[disabled] input[type="week"], input[type="email"][disabled], input[type="email"][readonly],
  fieldset[disabled] input[type="email"], input[type="number"][disabled], input[type="number"][readonly],
  fieldset[disabled] input[type="number"], input[type="search"][disabled], input[type="search"][readonly],
  fieldset[disabled] input[type="search"], input[type="tel"][disabled], input[type="tel"][readonly],
  fieldset[disabled] input[type="tel"], input[type="time"][disabled], input[type="time"][readonly],
  fieldset[disabled] input[type="time"], input[type="url"][disabled], input[type="url"][readonly],
  fieldset[disabled] input[type="url"], input[type="color"][disabled], input[type="color"][readonly],
  fieldset[disabled] input[type="color"], textarea[disabled], textarea[readonly],
  fieldset[disabled] textarea {
    background-color: #DDDDDD;
    cursor: default; }
  input[type="text"].radius, input[type="password"].radius, input[type="date"].radius, input[type="datetime"].radius, input[type="datetime-local"].radius, input[type="month"].radius, input[type="week"].radius, input[type="email"].radius, input[type="number"].radius, input[type="search"].radius, input[type="tel"].radius, input[type="time"].radius, input[type="url"].radius, input[type="color"].radius, textarea.radius {
    border-radius: 0; }

form .row .prefix-radius.row.collapse input,
form .row .prefix-radius.row.collapse textarea,
form .row .prefix-radius.row.collapse select,
form .row .prefix-radius.row.collapse button {
  border-radius: 0;
  -webkit-border-bottom-right-radius: 0;
  -webkit-border-top-right-radius: 0;
  border-bottom-right-radius: 0;
  border-top-right-radius: 0; }

form .row .prefix-radius.row.collapse .prefix {
  border-radius: 0;
  -webkit-border-bottom-left-radius: 0;
  -webkit-border-top-left-radius: 0;
  border-bottom-left-radius: 0;
  border-top-left-radius: 0; }

form .row .postfix-radius.row.collapse input,
form .row .postfix-radius.row.collapse textarea,
form .row .postfix-radius.row.collapse select,
form .row .postfix-radius.row.collapse button {
  border-radius: 0;
  -webkit-border-bottom-left-radius: 0;
  -webkit-border-top-left-radius: 0;
  border-bottom-left-radius: 0;
  border-top-left-radius: 0; }

form .row .postfix-radius.row.collapse .postfix {
  border-radius: 0;
  -webkit-border-bottom-right-radius: 0;
  -webkit-border-top-right-radius: 0;
  border-bottom-right-radius: 0;
  border-top-right-radius: 0; }

form .row .prefix-round.row.collapse input,
form .row .prefix-round.row.collapse textarea,
form .row .prefix-round.row.collapse select,
form .row .prefix-round.row.collapse button {
  border-radius: 0;
  -webkit-border-bottom-right-radius: 1000px;
  -webkit-border-top-right-radius: 1000px;
  border-bottom-right-radius: 1000px;
  border-top-right-radius: 1000px; }

form .row .prefix-round.row.collapse .prefix {
  border-radius: 0;
  -webkit-border-bottom-left-radius: 1000px;
  -webkit-border-top-left-radius: 1000px;
  border-bottom-left-radius: 1000px;
  border-top-left-radius: 1000px; }

form .row .postfix-round.row.collapse input,
form .row .postfix-round.row.collapse textarea,
form .row .postfix-round.row.collapse select,
form .row .postfix-round.row.collapse button {
  border-radius: 0;
  -webkit-border-bottom-left-radius: 1000px;
  -webkit-border-top-left-radius: 1000px;
  border-bottom-left-radius: 1000px;
  border-top-left-radius: 1000px; }

form .row .postfix-round.row.collapse .postfix {
  border-radius: 0;
  -webkit-border-bottom-right-radius: 1000px;
  -webkit-border-top-right-radius: 1000px;
  border-bottom-right-radius: 1000px;
  border-top-right-radius: 1000px; }

input[type="submit"] {
  -webkit-appearance: none;
  border-radius: 0; }

/* Respect enforced amount of rows for textarea */
textarea[rows] {
  height: auto; }

/* Not allow resize out of parent */
textarea {
  max-width: 100%; }

/* Add height value for select elements to match text input height */
select {
  -webkit-appearance: none !important;
  border-radius: 0;
  background-color: #FAFAFA;
  background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgeD0iMTJweCIgeT0iMHB4IiB3aWR0aD0iMjRweCIgaGVpZ2h0PSIzcHgiIHZpZXdCb3g9IjAgMCA2IDMiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDYgMyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PHBvbHlnb24gcG9pbnRzPSI1Ljk5MiwwIDIuOTkyLDMgLTAuMDA4LDAgIi8+PC9zdmc+);
  background-position: 100% center;
  background-repeat: no-repeat;
  border-style: solid;
  border-width: 1px;
  border-color: #cccccc;
  padding: 0.5rem;
  font-size: 0.875rem;
  font-family: Helvetica, 'Trebuchet MS', Helvetica, Arial, sans-serif;
  color: rgba(0, 0, 0, 0.75);
  line-height: normal;
  border-radius: 0;
  height: 2.3125rem; }
  select::-ms-expand {
    display: none; }
  select.radius {
    border-radius: 0; }
  select:hover {
    background-color: #f3f3f3;
    border-color: #999999; }
  select:disabled {
    background-color: #DDDDDD;
    cursor: default; }
  select[multiple] {
    height: auto; }

/* Adjust margin for form elements below */
input[type="file"],
input[type="checkbox"],
input[type="radio"],
select {
  margin: 0 0 1rem 0; }

input[type="checkbox"] + label,
input[type="radio"] + label {
  display: inline-block;
  margin-left: 0.5rem;
  margin-right: 1rem;
  margin-bottom: 0;
  vertical-align: baseline; }

/* Normalize file input width */
input[type="file"] {
  width: 100%; }

/* HTML5 Number spinners settings */
/* We add basic fieldset styling */
fieldset {
  border: 1px solid #DDDDDD;
  padding: 1.25rem;
  margin: 1.125rem 0; }
  fieldset legend {
    font-weight: bold;
    background: #FFFFFF;
    padding: 0 0.1875rem;
    margin: 0;
    margin-left: -0.1875rem; }

/* Error Handling */
[data-abide] .error small.error, [data-abide] .error span.error, [data-abide] span.error, [data-abide] small.error {
  display: block;
  padding: 0.375rem 0.5625rem 0.5625rem;
  margin-top: -1px;
  margin-bottom: 1rem;
  font-size: 0.75rem;
  font-weight: normal;
  font-style: italic;
  background: #e03114;
  color: #FFFFFF; }

[data-abide] span.error, [data-abide] small.error {
  display: none; }

span.error, small.error {
  display: block;
  padding: 0.375rem 0.5625rem 0.5625rem;
  margin-top: -1px;
  margin-bottom: 1rem;
  font-size: 0.75rem;
  font-weight: normal;
  font-style: italic;
  background: #e03114;
  color: #FFFFFF; }

.error input,
.error textarea,
.error select {
  margin-bottom: 0; }

.error input[type="checkbox"],
.error input[type="radio"] {
  margin-bottom: 1rem; }

.error label,
.error label.error {
  color: #e03114; }

.error small.error {
  display: block;
  padding: 0.375rem 0.5625rem 0.5625rem;
  margin-top: -1px;
  margin-bottom: 1rem;
  font-size: 0.75rem;
  font-weight: normal;
  font-style: italic;
  background: #e03114;
  color: #FFFFFF; }

.error > label > small {
  color: #676767;
  background: transparent;
  padding: 0;
  text-transform: capitalize;
  font-style: normal;
  font-size: 60%;
  margin: 0;
  display: inline; }

.error span.error-message {
  display: block; }

input.error,
textarea.error,
select.error {
  margin-bottom: 0; }

label.error {
  color: #e03114; }

.row {
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  margin-top: 0;
  margin-bottom: 0;
  max-width: 80rem; }
  .row:before, .row:after {
    content: " ";
    display: table; }
  .row:after {
    clear: both; }
  .row.collapse > .column,
  .row.collapse > .columns {
    padding-left: 0;
    padding-right: 0; }
  .row.collapse .row {
    margin-left: 0;
    margin-right: 0; }
  .row .row {
    width: auto;
    margin-left: -0.9375rem;
    margin-right: -0.9375rem;
    margin-top: 0;
    margin-bottom: 0;
    max-width: none; }
    .row .row:before, .row .row:after {
      content: " ";
      display: table; }
    .row .row:after {
      clear: both; }
    .row .row.collapse {
      width: auto;
      margin: 0;
      max-width: none; }
      .row .row.collapse:before, .row .row.collapse:after {
        content: " ";
        display: table; }
      .row .row.collapse:after {
        clear: both; }

.column,
.columns {
  padding-left: 0.9375rem;
  padding-right: 0.9375rem;
  width: 100%;
  float: left; }

[class*="column"] + [class*="column"]:last-child {
  float: right; }

[class*="column"] + [class*="column"].end {
  float: left; }

@media only screen {
  .small-push-0 {
    position: relative;
    left: 0%;
    right: auto; }
  .small-pull-0 {
    position: relative;
    right: 0%;
    left: auto; }
  .small-push-1 {
    position: relative;
    left: 8.33333%;
    right: auto; }
  .small-pull-1 {
    position: relative;
    right: 8.33333%;
    left: auto; }
  .small-push-2 {
    position: relative;
    left: 16.66667%;
    right: auto; }
  .small-pull-2 {
    position: relative;
    right: 16.66667%;
    left: auto; }
  .small-push-3 {
    position: relative;
    left: 25%;
    right: auto; }
  .small-pull-3 {
    position: relative;
    right: 25%;
    left: auto; }
  .small-push-4 {
    position: relative;
    left: 33.33333%;
    right: auto; }
  .small-pull-4 {
    position: relative;
    right: 33.33333%;
    left: auto; }
  .small-push-5 {
    position: relative;
    left: 41.66667%;
    right: auto; }
  .small-pull-5 {
    position: relative;
    right: 41.66667%;
    left: auto; }
  .small-push-6 {
    position: relative;
    left: 50%;
    right: auto; }
  .small-pull-6 {
    position: relative;
    right: 50%;
    left: auto; }
  .small-push-7 {
    position: relative;
    left: 58.33333%;
    right: auto; }
  .small-pull-7 {
    position: relative;
    right: 58.33333%;
    left: auto; }
  .small-push-8 {
    position: relative;
    left: 66.66667%;
    right: auto; }
  .small-pull-8 {
    position: relative;
    right: 66.66667%;
    left: auto; }
  .small-push-9 {
    position: relative;
    left: 75%;
    right: auto; }
  .small-pull-9 {
    position: relative;
    right: 75%;
    left: auto; }
  .small-push-10 {
    position: relative;
    left: 83.33333%;
    right: auto; }
  .small-pull-10 {
    position: relative;
    right: 83.33333%;
    left: auto; }
  .small-push-11 {
    position: relative;
    left: 91.66667%;
    right: auto; }
  .small-pull-11 {
    position: relative;
    right: 91.66667%;
    left: auto; }
  .column,
  .columns {
    position: relative;
    padding-left: 0.9375rem;
    padding-right: 0.9375rem;
    float: left; }
  .small-1 {
    width: 8.33333%; }
  .small-2 {
    width: 16.66667%; }
  .small-3 {
    width: 25%; }
  .small-4 {
    width: 33.33333%; }
  .small-5 {
    width: 41.66667%; }
  .small-6 {
    width: 50%; }
  .small-7 {
    width: 58.33333%; }
  .small-8 {
    width: 66.66667%; }
  .small-9 {
    width: 75%; }
  .small-10 {
    width: 83.33333%; }
  .small-11 {
    width: 91.66667%; }
  .small-12 {
    width: 100%; }
  .small-offset-0 {
    margin-left: 0% !important; }
  .small-offset-1 {
    margin-left: 8.33333% !important; }
  .small-offset-2 {
    margin-left: 16.66667% !important; }
  .small-offset-3 {
    margin-left: 25% !important; }
  .small-offset-4 {
    margin-left: 33.33333% !important; }
  .small-offset-5 {
    margin-left: 41.66667% !important; }
  .small-offset-6 {
    margin-left: 50% !important; }
  .small-offset-7 {
    margin-left: 58.33333% !important; }
  .small-offset-8 {
    margin-left: 66.66667% !important; }
  .small-offset-9 {
    margin-left: 75% !important; }
  .small-offset-10 {
    margin-left: 83.33333% !important; }
  .small-offset-11 {
    margin-left: 91.66667% !important; }
  .small-reset-order {
    margin-left: 0;
    margin-right: 0;
    left: auto;
    right: auto;
    float: left; }
  .column.small-centered,
  .columns.small-centered {
    margin-left: auto;
    margin-right: auto;
    float: none; }
  .column.small-uncentered,
  .columns.small-uncentered {
    margin-left: 0;
    margin-right: 0;
    float: left; }
  .column.small-centered:last-child,
  .columns.small-centered:last-child {
    float: none; }
  .column.small-uncentered:last-child,
  .columns.small-uncentered:last-child {
    float: left; }
  .column.small-uncentered.opposite,
  .columns.small-uncentered.opposite {
    float: right; }
  .row.small-collapse > .column,
  .row.small-collapse > .columns {
    padding-left: 0;
    padding-right: 0; }
  .row.small-collapse .row {
    margin-left: 0;
    margin-right: 0; }
  .row.small-uncollapse > .column,
  .row.small-uncollapse > .columns {
    padding-left: 0.9375rem;
    padding-right: 0.9375rem;
    float: left; } }

@media only screen and (min-width: 40em) {
  .medium-push-0 {
    position: relative;
    left: 0%;
    right: auto; }
  .medium-pull-0 {
    position: relative;
    right: 0%;
    left: auto; }
  .medium-push-1 {
    position: relative;
    left: 8.33333%;
    right: auto; }
  .medium-pull-1 {
    position: relative;
    right: 8.33333%;
    left: auto; }
  .medium-push-2 {
    position: relative;
    left: 16.66667%;
    right: auto; }
  .medium-pull-2 {
    position: relative;
    right: 16.66667%;
    left: auto; }
  .medium-push-3 {
    position: relative;
    left: 25%;
    right: auto; }
  .medium-pull-3 {
    position: relative;
    right: 25%;
    left: auto; }
  .medium-push-4 {
    position: relative;
    left: 33.33333%;
    right: auto; }
  .medium-pull-4 {
    position: relative;
    right: 33.33333%;
    left: auto; }
  .medium-push-5 {
    position: relative;
    left: 41.66667%;
    right: auto; }
  .medium-pull-5 {
    position: relative;
    right: 41.66667%;
    left: auto; }
  .medium-push-6 {
    position: relative;
    left: 50%;
    right: auto; }
  .medium-pull-6 {
    position: relative;
    right: 50%;
    left: auto; }
  .medium-push-7 {
    position: relative;
    left: 58.33333%;
    right: auto; }
  .medium-pull-7 {
    position: relative;
    right: 58.33333%;
    left: auto; }
  .medium-push-8 {
    position: relative;
    left: 66.66667%;
    right: auto; }
  .medium-pull-8 {
    position: relative;
    right: 66.66667%;
    left: auto; }
  .medium-push-9 {
    position: relative;
    left: 75%;
    right: auto; }
  .medium-pull-9 {
    position: relative;
    right: 75%;
    left: auto; }
  .medium-push-10 {
    position: relative;
    left: 83.33333%;
    right: auto; }
  .medium-pull-10 {
    position: relative;
    right: 83.33333%;
    left: auto; }
  .medium-push-11 {
    position: relative;
    left: 91.66667%;
    right: auto; }
  .medium-pull-11 {
    position: relative;
    right: 91.66667%;
    left: auto; }
  .column,
  .columns {
    position: relative;
    padding-left: 0.9375rem;
    padding-right: 0.9375rem;
    float: left; }
  .medium-1 {
    width: 8.33333%; }
  .medium-2 {
    width: 16.66667%; }
  .medium-3 {
    width: 25%; }
  .medium-4 {
    width: 33.33333%; }
  .medium-5 {
    width: 41.66667%; }
  .medium-6 {
    width: 50%; }
  .medium-7 {
    width: 58.33333%; }
  .medium-8 {
    width: 66.66667%; }
  .medium-9 {
    width: 75%; }
  .medium-10 {
    width: 83.33333%; }
  .medium-11 {
    width: 91.66667%; }
  .medium-12 {
    width: 100%; }
  .medium-offset-0 {
    margin-left: 0% !important; }
  .medium-offset-1 {
    margin-left: 8.33333% !important; }
  .medium-offset-2 {
    margin-left: 16.66667% !important; }
  .medium-offset-3 {
    margin-left: 25% !important; }
  .medium-offset-4 {
    margin-left: 33.33333% !important; }
  .medium-offset-5 {
    margin-left: 41.66667% !important; }
  .medium-offset-6 {
    margin-left: 50% !important; }
  .medium-offset-7 {
    margin-left: 58.33333% !important; }
  .medium-offset-8 {
    margin-left: 66.66667% !important; }
  .medium-offset-9 {
    margin-left: 75% !important; }
  .medium-offset-10 {
    margin-left: 83.33333% !important; }
  .medium-offset-11 {
    margin-left: 91.66667% !important; }
  .medium-reset-order {
    margin-left: 0;
    margin-right: 0;
    left: auto;
    right: auto;
    float: left; }
  .column.medium-centered,
  .columns.medium-centered {
    margin-left: auto;
    margin-right: auto;
    float: none; }
  .column.medium-uncentered,
  .columns.medium-uncentered {
    margin-left: 0;
    margin-right: 0;
    float: left; }
  .column.medium-centered:last-child,
  .columns.medium-centered:last-child {
    float: none; }
  .column.medium-uncentered:last-child,
  .columns.medium-uncentered:last-child {
    float: left; }
  .column.medium-uncentered.opposite,
  .columns.medium-uncentered.opposite {
    float: right; }
  .row.medium-collapse > .column,
  .row.medium-collapse > .columns {
    padding-left: 0;
    padding-right: 0; }
  .row.medium-collapse .row {
    margin-left: 0;
    margin-right: 0; }
  .row.medium-uncollapse > .column,
  .row.medium-uncollapse > .columns {
    padding-left: 0.9375rem;
    padding-right: 0.9375rem;
    float: left; }
  .push-0 {
    position: relative;
    left: 0%;
    right: auto; }
  .pull-0 {
    position: relative;
    right: 0%;
    left: auto; }
  .push-1 {
    position: relative;
    left: 8.33333%;
    right: auto; }
  .pull-1 {
    position: relative;
    right: 8.33333%;
    left: auto; }
  .push-2 {
    position: relative;
    left: 16.66667%;
    right: auto; }
  .pull-2 {
    position: relative;
    right: 16.66667%;
    left: auto; }
  .push-3 {
    position: relative;
    left: 25%;
    right: auto; }
  .pull-3 {
    position: relative;
    right: 25%;
    left: auto; }
  .push-4 {
    position: relative;
    left: 33.33333%;
    right: auto; }
  .pull-4 {
    position: relative;
    right: 33.33333%;
    left: auto; }
  .push-5 {
    position: relative;
    left: 41.66667%;
    right: auto; }
  .pull-5 {
    position: relative;
    right: 41.66667%;
    left: auto; }
  .push-6 {
    position: relative;
    left: 50%;
    right: auto; }
  .pull-6 {
    position: relative;
    right: 50%;
    left: auto; }
  .push-7 {
    position: relative;
    left: 58.33333%;
    right: auto; }
  .pull-7 {
    position: relative;
    right: 58.33333%;
    left: auto; }
  .push-8 {
    position: relative;
    left: 66.66667%;
    right: auto; }
  .pull-8 {
    position: relative;
    right: 66.66667%;
    left: auto; }
  .push-9 {
    position: relative;
    left: 75%;
    right: auto; }
  .pull-9 {
    position: relative;
    right: 75%;
    left: auto; }
  .push-10 {
    position: relative;
    left: 83.33333%;
    right: auto; }
  .pull-10 {
    position: relative;
    right: 83.33333%;
    left: auto; }
  .push-11 {
    position: relative;
    left: 91.66667%;
    right: auto; }
  .pull-11 {
    position: relative;
    right: 91.66667%;
    left: auto; } }

@media only screen and (min-width: 64em) {
  .large-push-0 {
    position: relative;
    left: 0%;
    right: auto; }
  .large-pull-0 {
    position: relative;
    right: 0%;
    left: auto; }
  .large-push-1 {
    position: relative;
    left: 8.33333%;
    right: auto; }
  .large-pull-1 {
    position: relative;
    right: 8.33333%;
    left: auto; }
  .large-push-2 {
    position: relative;
    left: 16.66667%;
    right: auto; }
  .large-pull-2 {
    position: relative;
    right: 16.66667%;
    left: auto; }
  .large-push-3 {
    position: relative;
    left: 25%;
    right: auto; }
  .large-pull-3 {
    position: relative;
    right: 25%;
    left: auto; }
  .large-push-4 {
    position: relative;
    left: 33.33333%;
    right: auto; }
  .large-pull-4 {
    position: relative;
    right: 33.33333%;
    left: auto; }
  .large-push-5 {
    position: relative;
    left: 41.66667%;
    right: auto; }
  .large-pull-5 {
    position: relative;
    right: 41.66667%;
    left: auto; }
  .large-push-6 {
    position: relative;
    left: 50%;
    right: auto; }
  .large-pull-6 {
    position: relative;
    right: 50%;
    left: auto; }
  .large-push-7 {
    position: relative;
    left: 58.33333%;
    right: auto; }
  .large-pull-7 {
    position: relative;
    right: 58.33333%;
    left: auto; }
  .large-push-8 {
    position: relative;
    left: 66.66667%;
    right: auto; }
  .large-pull-8 {
    position: relative;
    right: 66.66667%;
    left: auto; }
  .large-push-9 {
    position: relative;
    left: 75%;
    right: auto; }
  .large-pull-9 {
    position: relative;
    right: 75%;
    left: auto; }
  .large-push-10 {
    position: relative;
    left: 83.33333%;
    right: auto; }
  .large-pull-10 {
    position: relative;
    right: 83.33333%;
    left: auto; }
  .large-push-11 {
    position: relative;
    left: 91.66667%;
    right: auto; }
  .large-pull-11 {
    position: relative;
    right: 91.66667%;
    left: auto; }
  .column,
  .columns {
    position: relative;
    padding-left: 0.9375rem;
    padding-right: 0.9375rem;
    float: left; }
  .large-1 {
    width: 8.33333%; }
  .large-2 {
    width: 16.66667%; }
  .large-3 {
    width: 25%; }
  .large-4 {
    width: 33.33333%; }
  .large-5 {
    width: 41.66667%; }
  .large-6 {
    width: 50%; }
  .large-7 {
    width: 58.33333%; }
  .large-8 {
    width: 66.66667%; }
  .large-9 {
    width: 75%; }
  .large-10 {
    width: 83.33333%; }
  .large-11 {
    width: 91.66667%; }
  .large-12 {
    width: 100%; }
  .large-offset-0 {
    margin-left: 0% !important; }
  .large-offset-1 {
    margin-left: 8.33333% !important; }
  .large-offset-2 {
    margin-left: 16.66667% !important; }
  .large-offset-3 {
    margin-left: 25% !important; }
  .large-offset-4 {
    margin-left: 33.33333% !important; }
  .large-offset-5 {
    margin-left: 41.66667% !important; }
  .large-offset-6 {
    margin-left: 50% !important; }
  .large-offset-7 {
    margin-left: 58.33333% !important; }
  .large-offset-8 {
    margin-left: 66.66667% !important; }
  .large-offset-9 {
    margin-left: 75% !important; }
  .large-offset-10 {
    margin-left: 83.33333% !important; }
  .large-offset-11 {
    margin-left: 91.66667% !important; }
  .large-reset-order {
    margin-left: 0;
    margin-right: 0;
    left: auto;
    right: auto;
    float: left; }
  .column.large-centered,
  .columns.large-centered {
    margin-left: auto;
    margin-right: auto;
    float: none; }
  .column.large-uncentered,
  .columns.large-uncentered {
    margin-left: 0;
    margin-right: 0;
    float: left; }
  .column.large-centered:last-child,
  .columns.large-centered:last-child {
    float: none; }
  .column.large-uncentered:last-child,
  .columns.large-uncentered:last-child {
    float: left; }
  .column.large-uncentered.opposite,
  .columns.large-uncentered.opposite {
    float: right; }
  .row.large-collapse > .column,
  .row.large-collapse > .columns {
    padding-left: 0;
    padding-right: 0; }
  .row.large-collapse .row {
    margin-left: 0;
    margin-right: 0; }
  .row.large-uncollapse > .column,
  .row.large-uncollapse > .columns {
    padding-left: 0.9375rem;
    padding-right: 0.9375rem;
    float: left; }
  .push-0 {
    position: relative;
    left: 0%;
    right: auto; }
  .pull-0 {
    position: relative;
    right: 0%;
    left: auto; }
  .push-1 {
    position: relative;
    left: 8.33333%;
    right: auto; }
  .pull-1 {
    position: relative;
    right: 8.33333%;
    left: auto; }
  .push-2 {
    position: relative;
    left: 16.66667%;
    right: auto; }
  .pull-2 {
    position: relative;
    right: 16.66667%;
    left: auto; }
  .push-3 {
    position: relative;
    left: 25%;
    right: auto; }
  .pull-3 {
    position: relative;
    right: 25%;
    left: auto; }
  .push-4 {
    position: relative;
    left: 33.33333%;
    right: auto; }
  .pull-4 {
    position: relative;
    right: 33.33333%;
    left: auto; }
  .push-5 {
    position: relative;
    left: 41.66667%;
    right: auto; }
  .pull-5 {
    position: relative;
    right: 41.66667%;
    left: auto; }
  .push-6 {
    position: relative;
    left: 50%;
    right: auto; }
  .pull-6 {
    position: relative;
    right: 50%;
    left: auto; }
  .push-7 {
    position: relative;
    left: 58.33333%;
    right: auto; }
  .pull-7 {
    position: relative;
    right: 58.33333%;
    left: auto; }
  .push-8 {
    position: relative;
    left: 66.66667%;
    right: auto; }
  .pull-8 {
    position: relative;
    right: 66.66667%;
    left: auto; }
  .push-9 {
    position: relative;
    left: 75%;
    right: auto; }
  .pull-9 {
    position: relative;
    right: 75%;
    left: auto; }
  .push-10 {
    position: relative;
    left: 83.33333%;
    right: auto; }
  .pull-10 {
    position: relative;
    right: 83.33333%;
    left: auto; }
  .push-11 {
    position: relative;
    left: 91.66667%;
    right: auto; }
  .pull-11 {
    position: relative;
    right: 91.66667%;
    left: auto; } }

.inline-list {
  margin: 0 auto 1.0625rem auto;
  margin-left: -1.375rem;
  margin-right: 0;
  padding: 0;
  list-style: none;
  overflow: hidden; }
  .inline-list > li {
    list-style: none;
    float: left;
    margin-left: 1.375rem;
    display: block; }
    .inline-list > li > * {
      display: block; }

table {
  background: #ffffff;
  margin-bottom: 1.25rem;
  border: solid 0 rgba(51, 51, 51, 0.4);
  table-layout: auto; }
  table caption {
    background: transparent;
    color: #333333;
    font-size: 1rem;
    font-weight: bold; }
  table thead {
    background: #f7f7f7; }
    table thead tr th,
    table thead tr td {
      padding: 0.5rem 0.625rem 0.625rem;
      font-size: 0.875rem;
      font-weight: bold;
      color: #333333; }
  table tfoot {
    background: #f7f7f7; }
    table tfoot tr th,
    table tfoot tr td {
      padding: 0.5rem 0.625rem 0.625rem;
      font-size: 0.875rem;
      font-weight: bold;
      color: #333333; }
  table tr th,
  table tr td {
    padding: 0.5625rem 0.625rem;
    font-size: 0.875rem;
    color: #333333;
    text-align: left; }
  table tr.even, table tr.alt, table tr:nth-of-type(even) {
    background: #f2f2f2; }
  table thead tr th,
  table tfoot tr th,
  table tfoot tr td,
  table tbody tr th,
  table tbody tr td,
  table tr td {
    display: table-cell;
    line-height: 1.125rem; }

.tabs {
  margin-bottom: 0 !important;
  margin-left: 0; }
  .tabs:before, .tabs:after {
    content: " ";
    display: table; }
  .tabs:after {
    clear: both; }
  .tabs dd, .tabs .tab-title {
    position: relative;
    margin-bottom: 0 !important;
    list-style: none;
    float: left; }
    .tabs dd > a, .tabs .tab-title > a {
      display: block;
      background-color: #e6e6e6;
      color: #1a1a1a;
      padding: 0.4rem 0.8rem;
      font-family: Helvetica, 'Trebuchet MS', Helvetica, Arial, sans-serif;
      font-size: 1rem; }
      .tabs dd > a:hover, .tabs .tab-title > a:hover {
        background-color: #bfbfbf; }
      .tabs dd > a:focus, .tabs .tab-title > a:focus {
        outline: none; }
    .tabs dd.active a, .tabs .tab-title.active a {
      background-color: #000;
      color: white; }
  .tabs.radius dd:first-child a, .tabs.radius .tab:first-child a {
    -webkit-border-bottom-left-radius: 0;
    -webkit-border-top-left-radius: 0;
    border-bottom-left-radius: 0;
    border-top-left-radius: 0; }
  .tabs.radius dd:last-child a, .tabs.radius .tab:last-child a {
    -webkit-border-bottom-right-radius: 0;
    -webkit-border-top-right-radius: 0;
    border-bottom-right-radius: 0;
    border-top-right-radius: 0; }
  .tabs.vertical dd, .tabs.vertical .tab-title {
    position: inherit;
    float: none;
    display: block;
    top: auto; }

.tabs-content {
  margin-bottom: 1.5rem;
  width: 100%; }
  .tabs-content:before, .tabs-content:after {
    content: " ";
    display: table; }
  .tabs-content:after {
    clear: both; }
  .tabs-content > .content {
    display: none;
    float: left;
    padding: 0.5rem 0;
    width: 100%; }
    .tabs-content > .content.active {
      display: block;
      float: none; }
    .tabs-content > .content.contained {
      padding: 0.5rem; }
  .tabs-content.vertical {
    display: block; }
    .tabs-content.vertical > .content {
      padding: 0 0.5rem; }

@media only screen and (min-width: 40em) {
  .tabs.vertical {
    width: 20%;
    max-width: 20%;
    float: left;
    margin: 0 0 1.25rem; }
  .tabs-content.vertical {
    width: 80%;
    max-width: 80%;
    float: left;
    margin-left: -1px;
    padding-left: 1rem; } }

.no-js .tabs-content > .content {
  display: block;
  float: none; }

/* Image Thumbnails */
.th {
  line-height: 0;
  display: inline-block;
  border: solid 4px #FFFFFF;
  max-width: 100%;
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.2);
  transition: all 200ms ease-out; }
  .th:hover, .th:focus {
    box-shadow: 0 0 6px 1px rgba(1, 125, 110, 0.5); }
  .th.radius {
    border-radius: 0; }

.text-left {
  text-align: left !important; }

.text-right {
  text-align: right !important; }

.text-center {
  text-align: center !important; }

.text-justify {
  text-align: justify !important; }

@media only screen and (max-width: 39.9375em) {
  .small-only-text-left {
    text-align: left !important; }
  .small-only-text-right {
    text-align: right !important; }
  .small-only-text-center {
    text-align: center !important; }
  .small-only-text-justify {
    text-align: justify !important; } }

@media only screen {
  .small-text-left {
    text-align: left !important; }
  .small-text-right {
    text-align: right !important; }
  .small-text-center {
    text-align: center !important; }
  .small-text-justify {
    text-align: justify !important; } }

@media only screen and (min-width: 40em) and (max-width: 63.9375em) {
  .medium-only-text-left {
    text-align: left !important; }
  .medium-only-text-right {
    text-align: right !important; }
  .medium-only-text-center {
    text-align: center !important; }
  .medium-only-text-justify {
    text-align: justify !important; } }

@media only screen and (min-width: 40em) {
  .medium-text-left {
    text-align: left !important; }
  .medium-text-right {
    text-align: right !important; }
  .medium-text-center {
    text-align: center !important; }
  .medium-text-justify {
    text-align: justify !important; } }

@media only screen and (min-width: 64em) and (max-width: 89.9375em) {
  .large-only-text-left {
    text-align: left !important; }
  .large-only-text-right {
    text-align: right !important; }
  .large-only-text-center {
    text-align: center !important; }
  .large-only-text-justify {
    text-align: justify !important; } }

@media only screen and (min-width: 64em) {
  .large-text-left {
    text-align: left !important; }
  .large-text-right {
    text-align: right !important; }
  .large-text-center {
    text-align: center !important; }
  .large-text-justify {
    text-align: justify !important; } }

@media only screen and (min-width: 90em) and (max-width: 119.9375em) {
  .xlarge-only-text-left {
    text-align: left !important; }
  .xlarge-only-text-right {
    text-align: right !important; }
  .xlarge-only-text-center {
    text-align: center !important; }
  .xlarge-only-text-justify {
    text-align: justify !important; } }

@media only screen and (min-width: 90em) {
  .xlarge-text-left {
    text-align: left !important; }
  .xlarge-text-right {
    text-align: right !important; }
  .xlarge-text-center {
    text-align: center !important; }
  .xlarge-text-justify {
    text-align: justify !important; } }

@media only screen and (min-width: 120em) and (max-width: 99999999em) {
  .xxlarge-only-text-left {
    text-align: left !important; }
  .xxlarge-only-text-right {
    text-align: right !important; }
  .xxlarge-only-text-center {
    text-align: center !important; }
  .xxlarge-only-text-justify {
    text-align: justify !important; } }

@media only screen and (min-width: 120em) {
  .xxlarge-text-left {
    text-align: left !important; }
  .xxlarge-text-right {
    text-align: right !important; }
  .xxlarge-text-center {
    text-align: center !important; }
  .xxlarge-text-justify {
    text-align: justify !important; } }

/* Typography resets */
div,
dl,
dt,
dd,
ul,
ol,
li,
h1,
h2,
h3,
h4,
h5,
h6,
pre,
form,
p,
blockquote,
th,
td {
  margin: 0;
  padding: 0; }

/* Default Link Styles */
a {
  color: #017D6E;
  text-decoration: none;
  line-height: inherit; }
  a:hover, a:focus {
    color: #016c5f; }
  a img {
    border: none; }

/* Default paragraph styles */
p {
  font-family: inherit;
  font-weight: normal;
  font-size: 1rem;
  line-height: 1.5;
  margin-bottom: 1.25rem;
  text-rendering: optimizeLegibility; }
  p.lead {
    font-size: 1.21875rem;
    line-height: 1.6; }
  p aside {
    font-size: 0.875rem;
    line-height: 1.35;
    font-style: italic; }

/* Default header styles */
h1, h2, h3, h4, h5, h6 {
  font-family:  'Georgia', serif;
  font-weight: normal;
  font-style: normal;
  color: #212121;
  text-rendering: optimizeLegibility;
  margin-top: 0.2rem;
  margin-bottom: 0.5rem;
  line-height: 1.4; }
  h1 small, h2 small, h3 small, h4 small, h5 small, h6 small {
    font-size: 80%;
    color: #6f6f6f;
    line-height: 0; }

h1 {
  font-size: 1.75rem; }

h2 {
  font-size: 1.5rem; }

h3 {
  font-size: 1.3125rem; }

h4 {
  font-size: 1.1875rem; }

h5 {
  font-size: 0.9375rem; }

h6 {
  font-size: 0.9375rem; }

.subheader {
  line-height: 1.4;
  color: #6f6f6f;
  font-weight: normal;
  margin-top: 0.2rem;
  margin-bottom: 0.5rem; }

hr {
  border: solid #DDDDDD;
  border-width: 1px 0 0;
  clear: both;
  margin: 1.25rem 0 1.1875rem;
  height: 0; }

/* Helpful Typography Defaults */
em,
i {
  font-style: italic;
  line-height: inherit; }

strong,
b {
  font-weight: bold;
  line-height: inherit; }

small {
  font-size: 80%;
  line-height: inherit; }

code {
  font-family: Consolas, "Liberation Mono", Courier, monospace;
  font-weight: normal;
  color: #333333;
  background-color: #f8f8f8;
  border-width: 1px;
  border-style: solid;
  border-color: #dfdfdf;
  padding: 0.125rem 0.3125rem 0.0625rem; }

/* Lists */
ul,
ol,
dl {
  font-size: 1rem;
  line-height: 1.5;
  margin-bottom: 1.25rem;
  list-style-position: outside;
  font-family: inherit; }

ul {
  margin-left: 1.1rem; }
  ul.no-bullet {
    margin-left: 0; }
    ul.no-bullet li ul,
    ul.no-bullet li ol {
      margin-left: 1.25rem;
      margin-bottom: 0;
      list-style: none; }

/* Unordered Lists */
ul li ul,
ul li ol {
  margin-left: 1.25rem;
  margin-bottom: 0; }

ul.square li ul, ul.circle li ul, ul.disc li ul {
  list-style: inherit; }

ul.square {
  list-style-type: square;
  margin-left: 1.1rem; }

ul.circle {
  list-style-type: circle;
  margin-left: 1.1rem; }

ul.disc {
  list-style-type: disc;
  margin-left: 1.1rem; }

ul.no-bullet {
  list-style: none; }

/* Ordered Lists */
ol {
  margin-left: 1.4rem; }
  ol li ul,
  ol li ol {
    margin-left: 1.25rem;
    margin-bottom: 0; }

/* Definition Lists */
dl dt {
  margin-bottom: 0.3rem;
  font-weight: bold; }

dl dd {
  margin-bottom: 0.75rem; }

/* Abbreviations */
abbr,
acronym {
  text-transform: uppercase;
  font-size: 90%;
  color: #333333;
  cursor: help; }

abbr {
  text-transform: none; }
  abbr[title] {
    border-bottom: 1px dotted #DDDDDD; }

/* Blockquotes */
blockquote {
  margin: 0 0 1.25rem;
  padding: 0.5625rem 1.25rem 0 1.1875rem;
  border-left: 1px solid #DDDDDD; }
  blockquote cite {
    display: block;
    font-size: 0.8125rem;
    color: #545454; }
    blockquote cite:before {
      content: "\2014 \0020"; }
    blockquote cite a,
    blockquote cite a:visited {
      color: #545454; }

blockquote,
blockquote p {
  line-height: 1.5;
  color: #6f6f6f; }

/* Microformats */
.vcard {
  display: inline-block;
  margin: 0 0 1.25rem 0;
  border: 1px solid #DDDDDD;
  padding: 0.625rem 0.75rem; }
  .vcard li {
    margin: 0;
    display: block; }
  .vcard .fn {
    font-weight: bold;
    font-size: 0.9375rem; }

.vevent .summary {
  font-weight: bold; }

.vevent abbr {
  cursor: default;
  text-decoration: none;
  font-weight: bold;
  border: none;
  padding: 0 0.0625rem; }

@media only screen and (min-width: 40em) {
  h1, h2, h3, h4, h5, h6 {
    line-height: 1.4; }
  h1 {
    font-size: 1.875rem; }
  h2 {
    font-size: 1.625rem; }
  h3 {
    font-size: 1.375rem; }
  h4 {
    font-size: 1.25rem; }
  h5 {
    font-size: 1rem; }
  h6 {
    font-size: 1rem; } }

/* small displays */
@media only screen {
  .show-for-small-only, .show-for-small-up, .show-for-small, .show-for-small-down, .hide-for-medium-only, .hide-for-medium-up, .hide-for-medium, .show-for-medium-down, .hide-for-large-only, .hide-for-large-up, .hide-for-large, .show-for-large-down, .hide-for-xlarge-only, .hide-for-xlarge-up, .hide-for-xlarge, .show-for-xlarge-down, .hide-for-xxlarge-only, .hide-for-xxlarge-up, .hide-for-xxlarge, .show-for-xxlarge-down {
    display: inherit !important; }
  .hide-for-small-only, .hide-for-small-up, .hide-for-small, .hide-for-small-down, .show-for-medium-only, .show-for-medium-up, .show-for-medium, .hide-for-medium-down, .show-for-large-only, .show-for-large-up, .show-for-large, .hide-for-large-down, .show-for-xlarge-only, .show-for-xlarge-up, .show-for-xlarge, .hide-for-xlarge-down, .show-for-xxlarge-only, .show-for-xxlarge-up, .show-for-xxlarge, .hide-for-xxlarge-down {
    display: none !important; }
  .visible-for-small-only, .visible-for-small-up, .visible-for-small, .visible-for-small-down, .hidden-for-medium-only, .hidden-for-medium-up, .hidden-for-medium, .visible-for-medium-down, .hidden-for-large-only, .hidden-for-large-up, .hidden-for-large, .visible-for-large-down, .hidden-for-xlarge-only, .hidden-for-xlarge-up, .hidden-for-xlarge, .visible-for-xlarge-down, .hidden-for-xxlarge-only, .hidden-for-xxlarge-up, .hidden-for-xxlarge, .visible-for-xxlarge-down {
    position: static !important;
    height: auto;
    width: auto;
    overflow: visible;
    clip: auto; }
  .hidden-for-small-only, .hidden-for-small-up, .hidden-for-small, .hidden-for-small-down, .visible-for-medium-only, .visible-for-medium-up, .visible-for-medium, .hidden-for-medium-down, .visible-for-large-only, .visible-for-large-up, .visible-for-large, .hidden-for-large-down, .visible-for-xlarge-only, .visible-for-xlarge-up, .visible-for-xlarge, .hidden-for-xlarge-down, .visible-for-xxlarge-only, .visible-for-xxlarge-up, .visible-for-xxlarge, .hidden-for-xxlarge-down {
    position: absolute !important;
    height: 1px;
    width: 1px;
    overflow: hidden;
    clip: rect(1px, 1px, 1px, 1px); }
  table.show-for-small-only, table.show-for-small-up, table.show-for-small, table.show-for-small-down, table.hide-for-medium-only, table.hide-for-medium-up, table.hide-for-medium, table.show-for-medium-down, table.hide-for-large-only, table.hide-for-large-up, table.hide-for-large, table.show-for-large-down, table.hide-for-xlarge-only, table.hide-for-xlarge-up, table.hide-for-xlarge, table.show-for-xlarge-down, table.hide-for-xxlarge-only, table.hide-for-xxlarge-up, table.hide-for-xxlarge, table.show-for-xxlarge-down {
    display: table !important; }
  thead.show-for-small-only, thead.show-for-small-up, thead.show-for-small, thead.show-for-small-down, thead.hide-for-medium-only, thead.hide-for-medium-up, thead.hide-for-medium, thead.show-for-medium-down, thead.hide-for-large-only, thead.hide-for-large-up, thead.hide-for-large, thead.show-for-large-down, thead.hide-for-xlarge-only, thead.hide-for-xlarge-up, thead.hide-for-xlarge, thead.show-for-xlarge-down, thead.hide-for-xxlarge-only, thead.hide-for-xxlarge-up, thead.hide-for-xxlarge, thead.show-for-xxlarge-down {
    display: table-header-group !important; }
  tbody.show-for-small-only, tbody.show-for-small-up, tbody.show-for-small, tbody.show-for-small-down, tbody.hide-for-medium-only, tbody.hide-for-medium-up, tbody.hide-for-medium, tbody.show-for-medium-down, tbody.hide-for-large-only, tbody.hide-for-large-up, tbody.hide-for-large, tbody.show-for-large-down, tbody.hide-for-xlarge-only, tbody.hide-for-xlarge-up, tbody.hide-for-xlarge, tbody.show-for-xlarge-down, tbody.hide-for-xxlarge-only, tbody.hide-for-xxlarge-up, tbody.hide-for-xxlarge, tbody.show-for-xxlarge-down {
    display: table-row-group !important; }
  tr.show-for-small-only, tr.show-for-small-up, tr.show-for-small, tr.show-for-small-down, tr.hide-for-medium-only, tr.hide-for-medium-up, tr.hide-for-medium, tr.show-for-medium-down, tr.hide-for-large-only, tr.hide-for-large-up, tr.hide-for-large, tr.show-for-large-down, tr.hide-for-xlarge-only, tr.hide-for-xlarge-up, tr.hide-for-xlarge, tr.show-for-xlarge-down, tr.hide-for-xxlarge-only, tr.hide-for-xxlarge-up, tr.hide-for-xxlarge, tr.show-for-xxlarge-down {
    display: table-row; }
  th.show-for-small-only, td.show-for-small-only, th.show-for-small-up, td.show-for-small-up, th.show-for-small, td.show-for-small, th.show-for-small-down, td.show-for-small-down, th.hide-for-medium-only, td.hide-for-medium-only, th.hide-for-medium-up, td.hide-for-medium-up, th.hide-for-medium, td.hide-for-medium, th.show-for-medium-down, td.show-for-medium-down, th.hide-for-large-only, td.hide-for-large-only, th.hide-for-large-up, td.hide-for-large-up, th.hide-for-large, td.hide-for-large, th.show-for-large-down, td.show-for-large-down, th.hide-for-xlarge-only, td.hide-for-xlarge-only, th.hide-for-xlarge-up, td.hide-for-xlarge-up, th.hide-for-xlarge, td.hide-for-xlarge, th.show-for-xlarge-down, td.show-for-xlarge-down, th.hide-for-xxlarge-only, td.hide-for-xxlarge-only, th.hide-for-xxlarge-up, td.hide-for-xxlarge-up, th.hide-for-xxlarge, td.hide-for-xxlarge, th.show-for-xxlarge-down, td.show-for-xxlarge-down {
    display: table-cell !important; } }

/* medium displays */
@media only screen and (min-width: 40em) {
  .hide-for-small-only, .show-for-small-up, .hide-for-small, .hide-for-small-down, .show-for-medium-only, .show-for-medium-up, .show-for-medium, .show-for-medium-down, .hide-for-large-only, .hide-for-large-up, .hide-for-large, .show-for-large-down, .hide-for-xlarge-only, .hide-for-xlarge-up, .hide-for-xlarge, .show-for-xlarge-down, .hide-for-xxlarge-only, .hide-for-xxlarge-up, .hide-for-xxlarge, .show-for-xxlarge-down {
    display: inherit !important; }
  .show-for-small-only, .hide-for-small-up, .show-for-small, .show-for-small-down, .hide-for-medium-only, .hide-for-medium-up, .hide-for-medium, .hide-for-medium-down, .show-for-large-only, .show-for-large-up, .show-for-large, .hide-for-large-down, .show-for-xlarge-only, .show-for-xlarge-up, .show-for-xlarge, .hide-for-xlarge-down, .show-for-xxlarge-only, .show-for-xxlarge-up, .show-for-xxlarge, .hide-for-xxlarge-down {
    display: none !important; }
  .hidden-for-small-only, .visible-for-small-up, .hidden-for-small, .hidden-for-small-down, .visible-for-medium-only, .visible-for-medium-up, .visible-for-medium, .visible-for-medium-down, .hidden-for-large-only, .hidden-for-large-up, .hidden-for-large, .visible-for-large-down, .hidden-for-xlarge-only, .hidden-for-xlarge-up, .hidden-for-xlarge, .visible-for-xlarge-down, .hidden-for-xxlarge-only, .hidden-for-xxlarge-up, .hidden-for-xxlarge, .visible-for-xxlarge-down {
    position: static !important;
    height: auto;
    width: auto;
    overflow: visible;
    clip: auto; }
  .visible-for-small-only, .hidden-for-small-up, .visible-for-small, .visible-for-small-down, .hidden-for-medium-only, .hidden-for-medium-up, .hidden-for-medium, .hidden-for-medium-down, .visible-for-large-only, .visible-for-large-up, .visible-for-large, .hidden-for-large-down, .visible-for-xlarge-only, .visible-for-xlarge-up, .visible-for-xlarge, .hidden-for-xlarge-down, .visible-for-xxlarge-only, .visible-for-xxlarge-up, .visible-for-xxlarge, .hidden-for-xxlarge-down {
    position: absolute !important;
    height: 1px;
    width: 1px;
    overflow: hidden;
    clip: rect(1px, 1px, 1px, 1px); }
  table.hide-for-small-only, table.show-for-small-up, table.hide-for-small, table.hide-for-small-down, table.show-for-medium-only, table.show-for-medium-up, table.show-for-medium, table.show-for-medium-down, table.hide-for-large-only, table.hide-for-large-up, table.hide-for-large, table.show-for-large-down, table.hide-for-xlarge-only, table.hide-for-xlarge-up, table.hide-for-xlarge, table.show-for-xlarge-down, table.hide-for-xxlarge-only, table.hide-for-xxlarge-up, table.hide-for-xxlarge, table.show-for-xxlarge-down {
    display: table !important; }
  thead.hide-for-small-only, thead.show-for-small-up, thead.hide-for-small, thead.hide-for-small-down, thead.show-for-medium-only, thead.show-for-medium-up, thead.show-for-medium, thead.show-for-medium-down, thead.hide-for-large-only, thead.hide-for-large-up, thead.hide-for-large, thead.show-for-large-down, thead.hide-for-xlarge-only, thead.hide-for-xlarge-up, thead.hide-for-xlarge, thead.show-for-xlarge-down, thead.hide-for-xxlarge-only, thead.hide-for-xxlarge-up, thead.hide-for-xxlarge, thead.show-for-xxlarge-down {
    display: table-header-group !important; }
  tbody.hide-for-small-only, tbody.show-for-small-up, tbody.hide-for-small, tbody.hide-for-small-down, tbody.show-for-medium-only, tbody.show-for-medium-up, tbody.show-for-medium, tbody.show-for-medium-down, tbody.hide-for-large-only, tbody.hide-for-large-up, tbody.hide-for-large, tbody.show-for-large-down, tbody.hide-for-xlarge-only, tbody.hide-for-xlarge-up, tbody.hide-for-xlarge, tbody.show-for-xlarge-down, tbody.hide-for-xxlarge-only, tbody.hide-for-xxlarge-up, tbody.hide-for-xxlarge, tbody.show-for-xxlarge-down {
    display: table-row-group !important; }
  tr.hide-for-small-only, tr.show-for-small-up, tr.hide-for-small, tr.hide-for-small-down, tr.show-for-medium-only, tr.show-for-medium-up, tr.show-for-medium, tr.show-for-medium-down, tr.hide-for-large-only, tr.hide-for-large-up, tr.hide-for-large, tr.show-for-large-down, tr.hide-for-xlarge-only, tr.hide-for-xlarge-up, tr.hide-for-xlarge, tr.show-for-xlarge-down, tr.hide-for-xxlarge-only, tr.hide-for-xxlarge-up, tr.hide-for-xxlarge, tr.show-for-xxlarge-down {
    display: table-row; }
  th.hide-for-small-only, td.hide-for-small-only, th.show-for-small-up, td.show-for-small-up, th.hide-for-small, td.hide-for-small, th.hide-for-small-down, td.hide-for-small-down, th.show-for-medium-only, td.show-for-medium-only, th.show-for-medium-up, td.show-for-medium-up, th.show-for-medium, td.show-for-medium, th.show-for-medium-down, td.show-for-medium-down, th.hide-for-large-only, td.hide-for-large-only, th.hide-for-large-up, td.hide-for-large-up, th.hide-for-large, td.hide-for-large, th.show-for-large-down, td.show-for-large-down, th.hide-for-xlarge-only, td.hide-for-xlarge-only, th.hide-for-xlarge-up, td.hide-for-xlarge-up, th.hide-for-xlarge, td.hide-for-xlarge, th.show-for-xlarge-down, td.show-for-xlarge-down, th.hide-for-xxlarge-only, td.hide-for-xxlarge-only, th.hide-for-xxlarge-up, td.hide-for-xxlarge-up, th.hide-for-xxlarge, td.hide-for-xxlarge, th.show-for-xxlarge-down, td.show-for-xxlarge-down {
    display: table-cell !important; } }

/* large displays */
@media only screen and (min-width: 64em) {
  .hide-for-small-only, .show-for-small-up, .hide-for-small, .hide-for-small-down, .hide-for-medium-only, .show-for-medium-up, .hide-for-medium, .hide-for-medium-down, .show-for-large-only, .show-for-large-up, .show-for-large, .show-for-large-down, .hide-for-xlarge-only, .hide-for-xlarge-up, .hide-for-xlarge, .show-for-xlarge-down, .hide-for-xxlarge-only, .hide-for-xxlarge-up, .hide-for-xxlarge, .show-for-xxlarge-down {
    display: inherit !important; }
  .show-for-small-only, .hide-for-small-up, .show-for-small, .show-for-small-down, .show-for-medium-only, .hide-for-medium-up, .show-for-medium, .show-for-medium-down, .hide-for-large-only, .hide-for-large-up, .hide-for-large, .hide-for-large-down, .show-for-xlarge-only, .show-for-xlarge-up, .show-for-xlarge, .hide-for-xlarge-down, .show-for-xxlarge-only, .show-for-xxlarge-up, .show-for-xxlarge, .hide-for-xxlarge-down {
    display: none !important; }
  .hidden-for-small-only, .visible-for-small-up, .hidden-for-small, .hidden-for-small-down, .hidden-for-medium-only, .visible-for-medium-up, .hidden-for-medium, .hidden-for-medium-down, .visible-for-large-only, .visible-for-large-up, .visible-for-large, .visible-for-large-down, .hidden-for-xlarge-only, .hidden-for-xlarge-up, .hidden-for-xlarge, .visible-for-xlarge-down, .hidden-for-xxlarge-only, .hidden-for-xxlarge-up, .hidden-for-xxlarge, .visible-for-xxlarge-down {
    position: static !important;
    height: auto;
    width: auto;
    overflow: visible;
    clip: auto; }
  .visible-for-small-only, .hidden-for-small-up, .visible-for-small, .visible-for-small-down, .visible-for-medium-only, .hidden-for-medium-up, .visible-for-medium, .visible-for-medium-down, .hidden-for-large-only, .hidden-for-large-up, .hidden-for-large, .hidden-for-large-down, .visible-for-xlarge-only, .visible-for-xlarge-up, .visible-for-xlarge, .hidden-for-xlarge-down, .visible-for-xxlarge-only, .visible-for-xxlarge-up, .visible-for-xxlarge, .hidden-for-xxlarge-down {
    position: absolute !important;
    height: 1px;
    width: 1px;
    overflow: hidden;
    clip: rect(1px, 1px, 1px, 1px); }
  table.hide-for-small-only, table.show-for-small-up, table.hide-for-small, table.hide-for-small-down, table.hide-for-medium-only, table.show-for-medium-up, table.hide-for-medium, table.hide-for-medium-down, table.show-for-large-only, table.show-for-large-up, table.show-for-large, table.show-for-large-down, table.hide-for-xlarge-only, table.hide-for-xlarge-up, table.hide-for-xlarge, table.show-for-xlarge-down, table.hide-for-xxlarge-only, table.hide-for-xxlarge-up, table.hide-for-xxlarge, table.show-for-xxlarge-down {
    display: table !important; }
  thead.hide-for-small-only, thead.show-for-small-up, thead.hide-for-small, thead.hide-for-small-down, thead.hide-for-medium-only, thead.show-for-medium-up, thead.hide-for-medium, thead.hide-for-medium-down, thead.show-for-large-only, thead.show-for-large-up, thead.show-for-large, thead.show-for-large-down, thead.hide-for-xlarge-only, thead.hide-for-xlarge-up, thead.hide-for-xlarge, thead.show-for-xlarge-down, thead.hide-for-xxlarge-only, thead.hide-for-xxlarge-up, thead.hide-for-xxlarge, thead.show-for-xxlarge-down {
    display: table-header-group !important; }
  tbody.hide-for-small-only, tbody.show-for-small-up, tbody.hide-for-small, tbody.hide-for-small-down, tbody.hide-for-medium-only, tbody.show-for-medium-up, tbody.hide-for-medium, tbody.hide-for-medium-down, tbody.show-for-large-only, tbody.show-for-large-up, tbody.show-for-large, tbody.show-for-large-down, tbody.hide-for-xlarge-only, tbody.hide-for-xlarge-up, tbody.hide-for-xlarge, tbody.show-for-xlarge-down, tbody.hide-for-xxlarge-only, tbody.hide-for-xxlarge-up, tbody.hide-for-xxlarge, tbody.show-for-xxlarge-down {
    display: table-row-group !important; }
  tr.hide-for-small-only, tr.show-for-small-up, tr.hide-for-small, tr.hide-for-small-down, tr.hide-for-medium-only, tr.show-for-medium-up, tr.hide-for-medium, tr.hide-for-medium-down, tr.show-for-large-only, tr.show-for-large-up, tr.show-for-large, tr.show-for-large-down, tr.hide-for-xlarge-only, tr.hide-for-xlarge-up, tr.hide-for-xlarge, tr.show-for-xlarge-down, tr.hide-for-xxlarge-only, tr.hide-for-xxlarge-up, tr.hide-for-xxlarge, tr.show-for-xxlarge-down {
    display: table-row; }
  th.hide-for-small-only, td.hide-for-small-only, th.show-for-small-up, td.show-for-small-up, th.hide-for-small, td.hide-for-small, th.hide-for-small-down, td.hide-for-small-down, th.hide-for-medium-only, td.hide-for-medium-only, th.show-for-medium-up, td.show-for-medium-up, th.hide-for-medium, td.hide-for-medium, th.hide-for-medium-down, td.hide-for-medium-down, th.show-for-large-only, td.show-for-large-only, th.show-for-large-up, td.show-for-large-up, th.show-for-large, td.show-for-large, th.show-for-large-down, td.show-for-large-down, th.hide-for-xlarge-only, td.hide-for-xlarge-only, th.hide-for-xlarge-up, td.hide-for-xlarge-up, th.hide-for-xlarge, td.hide-for-xlarge, th.show-for-xlarge-down, td.show-for-xlarge-down, th.hide-for-xxlarge-only, td.hide-for-xxlarge-only, th.hide-for-xxlarge-up, td.hide-for-xxlarge-up, th.hide-for-xxlarge, td.hide-for-xxlarge, th.show-for-xxlarge-down, td.show-for-xxlarge-down {
    display: table-cell !important; } }

/* xlarge displays */
@media only screen and (min-width: 90em) {
  .hide-for-small-only, .show-for-small-up, .hide-for-small, .hide-for-small-down, .hide-for-medium-only, .show-for-medium-up, .hide-for-medium, .hide-for-medium-down, .hide-for-large-only, .show-for-large-up, .hide-for-large, .hide-for-large-down, .show-for-xlarge-only, .show-for-xlarge-up, .show-for-xlarge, .show-for-xlarge-down, .hide-for-xxlarge-only, .hide-for-xxlarge-up, .hide-for-xxlarge, .show-for-xxlarge-down {
    display: inherit !important; }
  .show-for-small-only, .hide-for-small-up, .show-for-small, .show-for-small-down, .show-for-medium-only, .hide-for-medium-up, .show-for-medium, .show-for-medium-down, .show-for-large-only, .hide-for-large-up, .show-for-large, .show-for-large-down, .hide-for-xlarge-only, .hide-for-xlarge-up, .hide-for-xlarge, .hide-for-xlarge-down, .show-for-xxlarge-only, .show-for-xxlarge-up, .show-for-xxlarge, .hide-for-xxlarge-down {
    display: none !important; }
  .hidden-for-small-only, .visible-for-small-up, .hidden-for-small, .hidden-for-small-down, .hidden-for-medium-only, .visible-for-medium-up, .hidden-for-medium, .hidden-for-medium-down, .hidden-for-large-only, .visible-for-large-up, .hidden-for-large, .hidden-for-large-down, .visible-for-xlarge-only, .visible-for-xlarge-up, .visible-for-xlarge, .visible-for-xlarge-down, .hidden-for-xxlarge-only, .hidden-for-xxlarge-up, .hidden-for-xxlarge, .visible-for-xxlarge-down {
    position: static !important;
    height: auto;
    width: auto;
    overflow: visible;
    clip: auto; }
  .visible-for-small-only, .hidden-for-small-up, .visible-for-small, .visible-for-small-down, .visible-for-medium-only, .hidden-for-medium-up, .visible-for-medium, .visible-for-medium-down, .visible-for-large-only, .hidden-for-large-up, .visible-for-large, .visible-for-large-down, .hidden-for-xlarge-only, .hidden-for-xlarge-up, .hidden-for-xlarge, .hidden-for-xlarge-down, .visible-for-xxlarge-only, .visible-for-xxlarge-up, .visible-for-xxlarge, .hidden-for-xxlarge-down {
    position: absolute !important;
    height: 1px;
    width: 1px;
    overflow: hidden;
    clip: rect(1px, 1px, 1px, 1px); }
  table.hide-for-small-only, table.show-for-small-up, table.hide-for-small, table.hide-for-small-down, table.hide-for-medium-only, table.show-for-medium-up, table.hide-for-medium, table.hide-for-medium-down, table.hide-for-large-only, table.show-for-large-up, table.hide-for-large, table.hide-for-large-down, table.show-for-xlarge-only, table.show-for-xlarge-up, table.show-for-xlarge, table.show-for-xlarge-down, table.hide-for-xxlarge-only, table.hide-for-xxlarge-up, table.hide-for-xxlarge, table.show-for-xxlarge-down {
    display: table !important; }
  thead.hide-for-small-only, thead.show-for-small-up, thead.hide-for-small, thead.hide-for-small-down, thead.hide-for-medium-only, thead.show-for-medium-up, thead.hide-for-medium, thead.hide-for-medium-down, thead.hide-for-large-only, thead.show-for-large-up, thead.hide-for-large, thead.hide-for-large-down, thead.show-for-xlarge-only, thead.show-for-xlarge-up, thead.show-for-xlarge, thead.show-for-xlarge-down, thead.hide-for-xxlarge-only, thead.hide-for-xxlarge-up, thead.hide-for-xxlarge, thead.show-for-xxlarge-down {
    display: table-header-group !important; }
  tbody.hide-for-small-only, tbody.show-for-small-up, tbody.hide-for-small, tbody.hide-for-small-down, tbody.hide-for-medium-only, tbody.show-for-medium-up, tbody.hide-for-medium, tbody.hide-for-medium-down, tbody.hide-for-large-only, tbody.show-for-large-up, tbody.hide-for-large, tbody.hide-for-large-down, tbody.show-for-xlarge-only, tbody.show-for-xlarge-up, tbody.show-for-xlarge, tbody.show-for-xlarge-down, tbody.hide-for-xxlarge-only, tbody.hide-for-xxlarge-up, tbody.hide-for-xxlarge, tbody.show-for-xxlarge-down {
    display: table-row-group !important; }
  tr.hide-for-small-only, tr.show-for-small-up, tr.hide-for-small, tr.hide-for-small-down, tr.hide-for-medium-only, tr.show-for-medium-up, tr.hide-for-medium, tr.hide-for-medium-down, tr.hide-for-large-only, tr.show-for-large-up, tr.hide-for-large, tr.hide-for-large-down, tr.show-for-xlarge-only, tr.show-for-xlarge-up, tr.show-for-xlarge, tr.show-for-xlarge-down, tr.hide-for-xxlarge-only, tr.hide-for-xxlarge-up, tr.hide-for-xxlarge, tr.show-for-xxlarge-down {
    display: table-row; }
  th.hide-for-small-only, td.hide-for-small-only, th.show-for-small-up, td.show-for-small-up, th.hide-for-small, td.hide-for-small, th.hide-for-small-down, td.hide-for-small-down, th.hide-for-medium-only, td.hide-for-medium-only, th.show-for-medium-up, td.show-for-medium-up, th.hide-for-medium, td.hide-for-medium, th.hide-for-medium-down, td.hide-for-medium-down, th.hide-for-large-only, td.hide-for-large-only, th.show-for-large-up, td.show-for-large-up, th.hide-for-large, td.hide-for-large, th.hide-for-large-down, td.hide-for-large-down, th.show-for-xlarge-only, td.show-for-xlarge-only, th.show-for-xlarge-up, td.show-for-xlarge-up, th.show-for-xlarge, td.show-for-xlarge, th.show-for-xlarge-down, td.show-for-xlarge-down, th.hide-for-xxlarge-only, td.hide-for-xxlarge-only, th.hide-for-xxlarge-up, td.hide-for-xxlarge-up, th.hide-for-xxlarge, td.hide-for-xxlarge, th.show-for-xxlarge-down, td.show-for-xxlarge-down {
    display: table-cell !important; } }

/* xxlarge displays */
@media only screen and (min-width: 120em) {
  .hide-for-small-only, .show-for-small-up, .hide-for-small, .hide-for-small-down, .hide-for-medium-only, .show-for-medium-up, .hide-for-medium, .hide-for-medium-down, .hide-for-large-only, .show-for-large-up, .hide-for-large, .hide-for-large-down, .hide-for-xlarge-only, .show-for-xlarge-up, .hide-for-xlarge, .hide-for-xlarge-down, .show-for-xxlarge-only, .show-for-xxlarge-up, .show-for-xxlarge, .show-for-xxlarge-down {
    display: inherit !important; }
  .show-for-small-only, .hide-for-small-up, .show-for-small, .show-for-small-down, .show-for-medium-only, .hide-for-medium-up, .show-for-medium, .show-for-medium-down, .show-for-large-only, .hide-for-large-up, .show-for-large, .show-for-large-down, .show-for-xlarge-only, .hide-for-xlarge-up, .show-for-xlarge, .show-for-xlarge-down, .hide-for-xxlarge-only, .hide-for-xxlarge-up, .hide-for-xxlarge, .hide-for-xxlarge-down {
    display: none !important; }
  .hidden-for-small-only, .visible-for-small-up, .hidden-for-small, .hidden-for-small-down, .hidden-for-medium-only, .visible-for-medium-up, .hidden-for-medium, .hidden-for-medium-down, .hidden-for-large-only, .visible-for-large-up, .hidden-for-large, .hidden-for-large-down, .hidden-for-xlarge-only, .visible-for-xlarge-up, .hidden-for-xlarge, .hidden-for-xlarge-down, .visible-for-xxlarge-only, .visible-for-xxlarge-up, .visible-for-xxlarge, .visible-for-xxlarge-down {
    position: static !important;
    height: auto;
    width: auto;
    overflow: visible;
    clip: auto; }
  .visible-for-small-only, .hidden-for-small-up, .visible-for-small, .visible-for-small-down, .visible-for-medium-only, .hidden-for-medium-up, .visible-for-medium, .visible-for-medium-down, .visible-for-large-only, .hidden-for-large-up, .visible-for-large, .visible-for-large-down, .visible-for-xlarge-only, .hidden-for-xlarge-up, .visible-for-xlarge, .visible-for-xlarge-down, .hidden-for-xxlarge-only, .hidden-for-xxlarge-up, .hidden-for-xxlarge, .hidden-for-xxlarge-down {
    position: absolute !important;
    height: 1px;
    width: 1px;
    overflow: hidden;
    clip: rect(1px, 1px, 1px, 1px); }
  table.hide-for-small-only, table.show-for-small-up, table.hide-for-small, table.hide-for-small-down, table.hide-for-medium-only, table.show-for-medium-up, table.hide-for-medium, table.hide-for-medium-down, table.hide-for-large-only, table.show-for-large-up, table.hide-for-large, table.hide-for-large-down, table.hide-for-xlarge-only, table.show-for-xlarge-up, table.hide-for-xlarge, table.hide-for-xlarge-down, table.show-for-xxlarge-only, table.show-for-xxlarge-up, table.show-for-xxlarge, table.show-for-xxlarge-down {
    display: table !important; }
  thead.hide-for-small-only, thead.show-for-small-up, thead.hide-for-small, thead.hide-for-small-down, thead.hide-for-medium-only, thead.show-for-medium-up, thead.hide-for-medium, thead.hide-for-medium-down, thead.hide-for-large-only, thead.show-for-large-up, thead.hide-for-large, thead.hide-for-large-down, thead.hide-for-xlarge-only, thead.show-for-xlarge-up, thead.hide-for-xlarge, thead.hide-for-xlarge-down, thead.show-for-xxlarge-only, thead.show-for-xxlarge-up, thead.show-for-xxlarge, thead.show-for-xxlarge-down {
    display: table-header-group !important; }
  tbody.hide-for-small-only, tbody.show-for-small-up, tbody.hide-for-small, tbody.hide-for-small-down, tbody.hide-for-medium-only, tbody.show-for-medium-up, tbody.hide-for-medium, tbody.hide-for-medium-down, tbody.hide-for-large-only, tbody.show-for-large-up, tbody.hide-for-large, tbody.hide-for-large-down, tbody.hide-for-xlarge-only, tbody.show-for-xlarge-up, tbody.hide-for-xlarge, tbody.hide-for-xlarge-down, tbody.show-for-xxlarge-only, tbody.show-for-xxlarge-up, tbody.show-for-xxlarge, tbody.show-for-xxlarge-down {
    display: table-row-group !important; }
  tr.hide-for-small-only, tr.show-for-small-up, tr.hide-for-small, tr.hide-for-small-down, tr.hide-for-medium-only, tr.show-for-medium-up, tr.hide-for-medium, tr.hide-for-medium-down, tr.hide-for-large-only, tr.show-for-large-up, tr.hide-for-large, tr.hide-for-large-down, tr.hide-for-xlarge-only, tr.show-for-xlarge-up, tr.hide-for-xlarge, tr.hide-for-xlarge-down, tr.show-for-xxlarge-only, tr.show-for-xxlarge-up, tr.show-for-xxlarge, tr.show-for-xxlarge-down {
    display: table-row; }
  th.hide-for-small-only, td.hide-for-small-only, th.show-for-small-up, td.show-for-small-up, th.hide-for-small, td.hide-for-small, th.hide-for-small-down, td.hide-for-small-down, th.hide-for-medium-only, td.hide-for-medium-only, th.show-for-medium-up, td.show-for-medium-up, th.hide-for-medium, td.hide-for-medium, th.hide-for-medium-down, td.hide-for-medium-down, th.hide-for-large-only, td.hide-for-large-only, th.show-for-large-up, td.show-for-large-up, th.hide-for-large, td.hide-for-large, th.hide-for-large-down, td.hide-for-large-down, th.hide-for-xlarge-only, td.hide-for-xlarge-only, th.show-for-xlarge-up, td.show-for-xlarge-up, th.hide-for-xlarge, td.hide-for-xlarge, th.hide-for-xlarge-down, td.hide-for-xlarge-down, th.show-for-xxlarge-only, td.show-for-xxlarge-only, th.show-for-xxlarge-up, td.show-for-xxlarge-up, th.show-for-xxlarge, td.show-for-xxlarge, th.show-for-xxlarge-down, td.show-for-xxlarge-down {
    display: table-cell !important; } }

/* Orientation targeting */
.show-for-landscape,
.hide-for-portrait {
  display: inherit !important; }

.hide-for-landscape,
.show-for-portrait {
  display: none !important; }

/* Specific visibility for tables */
table.hide-for-landscape, table.show-for-portrait {
  display: table !important; }

thead.hide-for-landscape, thead.show-for-portrait {
  display: table-header-group !important; }

tbody.hide-for-landscape, tbody.show-for-portrait {
  display: table-row-group !important; }

tr.hide-for-landscape, tr.show-for-portrait {
  display: table-row !important; }

td.hide-for-landscape, td.show-for-portrait,
th.hide-for-landscape,
th.show-for-portrait {
  display: table-cell !important; }

@media only screen and (orientation: landscape) {
  .show-for-landscape,
  .hide-for-portrait {
    display: inherit !important; }
  .hide-for-landscape,
  .show-for-portrait {
    display: none !important; }
  /* Specific visibility for tables */
  table.show-for-landscape, table.hide-for-portrait {
    display: table !important; }
  thead.show-for-landscape, thead.hide-for-portrait {
    display: table-header-group !important; }
  tbody.show-for-landscape, tbody.hide-for-portrait {
    display: table-row-group !important; }
  tr.show-for-landscape, tr.hide-for-portrait {
    display: table-row !important; }
  td.show-for-landscape, td.hide-for-portrait,
  th.show-for-landscape,
  th.hide-for-portrait {
    display: table-cell !important; } }

@media only screen and (orientation: portrait) {
  .show-for-portrait,
  .hide-for-landscape {
    display: inherit !important; }
  .hide-for-portrait,
  .show-for-landscape {
    display: none !important; }
  /* Specific visibility for tables */
  table.show-for-portrait, table.hide-for-landscape {
    display: table !important; }
  thead.show-for-portrait, thead.hide-for-landscape {
    display: table-header-group !important; }
  tbody.show-for-portrait, tbody.hide-for-landscape {
    display: table-row-group !important; }
  tr.show-for-portrait, tr.hide-for-landscape {
    display: table-row !important; }
  td.show-for-portrait, td.hide-for-landscape,
  th.show-for-portrait,
  th.hide-for-landscape {
    display: table-cell !important; } }

/* Touch-enabled device targeting */
.show-for-touch {
  display: none !important; }

.hide-for-touch {
  display: inherit !important; }

.touch .show-for-touch {
  display: inherit !important; }

.touch .hide-for-touch {
  display: none !important; }

/* Specific visibility for tables */
table.hide-for-touch {
  display: table !important; }

.touch table.show-for-touch {
  display: table !important; }

thead.hide-for-touch {
  display: table-header-group !important; }

.touch thead.show-for-touch {
  display: table-header-group !important; }

tbody.hide-for-touch {
  display: table-row-group !important; }

.touch tbody.show-for-touch {
  display: table-row-group !important; }

tr.hide-for-touch {
  display: table-row !important; }

.touch tr.show-for-touch {
  display: table-row !important; }

td.hide-for-touch {
  display: table-cell !important; }

.touch td.show-for-touch {
  display: table-cell !important; }

th.hide-for-touch {
  display: table-cell !important; }

.touch th.show-for-touch {
  display: table-cell !important; }

/*
       * Print styles.
       *
       * Inlined to avoid required HTTP connection: www.phpied.com/delay-loading-your-print-css/
       * Credit to Paul Irish and HTML5 Boilerplate (html5boilerplate.com)
      */
.print-only {
  display: none !important; }

@media print {
  * {
    background: transparent !important;
    color: #000000 !important;
    /* Black prints faster: h5bp.com/s */
    box-shadow: none !important;
    text-shadow: none !important; }
  .show-for-print {
    display: block; }
  .hide-for-print {
    display: none; }
  table.show-for-print {
    display: table !important; }
  thead.show-for-print {
    display: table-header-group !important; }
  tbody.show-for-print {
    display: table-row-group !important; }
  tr.show-for-print {
    display: table-row !important; }
  td.show-for-print {
    display: table-cell !important; }
  th.show-for-print {
    display: table-cell !important; }
  a,
  a:visited {
    text-decoration: underline; }
  a[href]:after {
    content: " (" attr(href) ")"; }
  abbr[title]:after {
    content: " (" attr(title) ")"; }
  .ir a:after,
  a[href^="javascript:"]:after,
  a[href^="#"]:after {
    content: ""; }
  pre,
  blockquote {
    border: 1px solid #999999;
    page-break-inside: avoid; }
  thead {
    display: table-header-group;
    /* h5bp.com/t */ }
  tr,
  img {
    page-break-inside: avoid; }
  img {
    max-width: 100% !important; }
  @page {
    margin: 0.5cm; }
  p,
  h2,
  h3 {
    orphans: 3;
    widows: 3; }
  h2,
  h3 {
    page-break-after: avoid; }
  .hide-on-print {
    display: none !important; }
  .print-only {
    display: block !important; }
  .hide-for-print {
    display: none !important; }
  .show-for-print {
    display: inherit !important; } }

/* Print visibility */
@media print {
  .show-for-print {
    display: block; }
  .hide-for-print {
    display: none; }
  table.show-for-print {
    display: table !important; }
  thead.show-for-print {
    display: table-header-group !important; }
  tbody.show-for-print {
    display: table-row-group !important; }
  tr.show-for-print {
    display: table-row !important; }
  td.show-for-print {
    display: table-cell !important; }
  th.show-for-print {
    display: table-cell !important; } }

.nav--horizontal, .pagination, .nav--horizontal--right {
  list-style: none;
  margin: 0; }

.nav--horizontal > li, .pagination > li, .nav--horizontal--right > li, .nav--horizontal > li > a, .pagination > li > a, .nav--horizontal--right > li > a {
  display: inline-block; }

.pagination-wrapper {
  width: 100%;
  clear: both;
  text-align: center; }

.pagination__item {
  margin-right: 0.5rem;
  background-color: rgba(255, 255, 255, 0);
  transition: all 0.3s ease; }
  .pagination .pagination__item {
    display: none; }
  .pagination__item:last-child {
    margin-right: 0; }
  .pagination__item a {
    line-height: 2.75rem;
    color: #333333;
    padding: 0 1rem; }
  .pagination__item:hover, .pagination__item:focus {
    background-color: #028F7E;
    border-color: #028F7E; }
    .pagination__item:hover a,
    .pagination__item:hover a:hover,
    .pagination__item:hover a:focus, .pagination__item:focus a,
    .pagination__item:focus a:hover,
    .pagination__item:focus a:focus {
      color: #141414; }

.pagination .pagination__item--next,
.pagination .pagination__item--previous {
  display: inline-block; }

.pagination__item--current {
  line-height: 2.75rem;
  background-color: #017D6E;
  border-color: #017D6E;
  color: #fff;
  padding: 0 1rem; }
  .pagination__item--current:hover, .pagination__item--current:focus {
    background-color: #017D6E;
    border-color: #017D6E;
    color: #fff; }

@media only screen and (min-width: 50rem) {
  .pagination .pagination__item {
    display: inline-block; } }

/**
 * IcoMoon generated icons
 * See the theme assets/fonts folder for font files
 * and json file to use on icomoon to develop this
 * font further
 *
 * This icon font is largely based on a custom selection
 * of icons from the Material Design icon pack.
 */
@font-face {
  font-family: 'pioneer';
  src: url("/assets2/fonts/pioneer/pioneer.eot?tl2cf7");
  src: url("/assets2/fonts/pioneer/pioneer.eot?tl2cf7#iefix") format("embedded-opentype"), url("/assets2/fonts/pioneer/pioneer.ttf?tl2cf7") format("truetype"), url("/assets2/fonts/pioneer/pioneer.woff?tl2cf7") format("woff"), url("/assets2/fonts/pioneer/pioneer.svg?tl2cf7#pioneer") format("svg");
  font-weight: normal;
  font-style: normal; }

[class^="icon-"],
[class*=" icon-"] {
  /* use !important to prevent issues with browser extensions that change fonts */
  font-family: 'pioneer' !important;
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  /* Better Font Rendering =========== */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

.icon-medium:before, .rating label:before {
  font-size: 1.25em;
  vertical-align: -7.5%; }

.icon-large:before {
  font-size: 1.5em;
  vertical-align: -15%; }

.icon-xlarge:before {
  font-size: 2em;
  vertical-align: -15%; }

.icon-local-shipping:before {
  content: ""; }

.icon-stockexchange:before {
  content: ""; }

.icon-credit-card:before {
  content: ""; }

.icon-place:before {
  content: ""; }

.icon-wallet-giftcard:before {
  content: ""; }

.icon-flight:before {
  content: ""; }

.icon-add-shopping-cart:before {
  content: ""; }

.icon-delete:before {
  content: ""; }

.icon-exit-to-app:before {
  content: ""; }

.icon-favorite:before {
  content: ""; }

.icon-home:before {
  content: ""; }

.icon-info:before {
  content: ""; }

.icon-language:before {
  content: ""; }

.icon-print:before {
  content: ""; }

.icon-search:before {
  content: ""; }

.icon-shopping-cart:before {
  content: ""; }

.icon-error:before {
  content: ""; }

.icon-warning:before {
  content: ""; }

.icon-call:before {
  content: ""; }

.icon-vpn-key:before {
  content: ""; }

.icon-add:before {
  content: ""; }

.icon-mail:before {
  content: ""; }

.icon-attach-money:before {
  content: ""; }

.icon-keyboard-arrow-down:before, .main-nav__item.parent.level-1 > a:after {
  content: ""; }

.icon-brightness-1:before {
  content: ""; }

.icon-check:before {
  content: ""; }

.icon-chevron-left:before {
  content: ""; }

.icon-chevron-right:before {
  content: ""; }

.icon-close:before {
  content: ""; }

.icon-menu:before {
  content: ""; }

.icon-refresh:before {
  content: ""; }

.icon-person:before {
  content: ""; }

.icon-star:before {
  content: ""; }

.icon-star-half:before {
  content: ""; }

.icon-star-outline:before {
  content: ""; }

.icon-googleplus:before {
  content: ""; }

.icon-facebook:before {
  content: ""; }

.icon-ello:before {
  content: ""; }

.icon-instagram:before {
  content: ""; }

.icon-twitter:before {
  content: ""; }

.icon-youtube:before {
  content: ""; }

.icon-vimeo:before {
  content: ""; }

.icon-flickr:before {
  content: ""; }

.icon-blogger:before {
  content: ""; }

.icon-linkedin:before {
  content: ""; }

.icon-pinterest:before {
  content: ""; }

.main-content a {
  text-decoration: underline; }

.main-content .productlist__product a,
.main-content .product__breadcrumbs a,
.main-content .categorylist__category a,
.main-content .checkout a,
.main-content a.button,
.main-content .social-buttons-list a {
  text-decoration: none; }

@media only screen and (max-width: 39.9375em) {
  html {
    font-size: 87.5%; } }

.vertical-pos-helper {
  display: inline-block;
  height: 100%;
  vertical-align: middle; }

.is-hidden {
  display: none; }

@media only screen and (max-width: 63.9375em) {
  .hide_on_mobile {
    display: none; } }

#main-content:focus {
  outline: none; }

.sr-only {
  border: none;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px; }

/**
 * We're using two menu concepts here
 * Off canvas navigation, as seen on http://www.smashingmagazine.com/2013/01/15/off-canvas-navigation-for-responsive-website/
 * Smart menus, as seen on http://www.smartmenus.org/
 */
.main-nav {
  width: 100%;
  z-index: 200;
  font-family: Helvetica, 'Trebuchet MS', Helvetica, Arial, sans-serif; }
  .main-nav ul {
    margin: 0;
    list-style-type: none;
    direction: ltr; }
  .main-nav a {
    color: #cccccc;
    transition: background-color 150ms ease-out; }
  .main-nav .icon-menu:before {
    vertical-align: -12%; }

.sm .scroll-up, .sm .scroll-down {
  display: none !important; }

.main-nav__item a, a.main-nav__close-btn {
  color: #fff; }

.main-nav__close-btn {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  padding: 0 1rem;
  border: 0;
  outline: none;
  width: 100%;
  opacity: 0.7;
  text-align: right;
  line-height: 2.75rem;
  height: 2.75rem;
  -webkit-tap-highlight-color: transparent; }
  .main-nav__close-btn:focus, .main-nav__close-btn:hover, .main-nav__close-btn.highlighted {
    color: #141414 !important;
    background: #028F7E;
    opacity: 1; }
  .main-nav__close-btn i {
    font-size: 0.75rem;
    padding-left: .4rem; }

.nav-compact li {
  height: 2.75rem; }

.nav-compact a {
  color: #cccccc;
  display: block;
  line-height: 2.75rem;
  font-weight: bold; }

#nav-open-btn {
  padding: 0; }
  #nav-open-btn:hover {
    background-color: transparent;
    color: inherit; }

.nav-offcanvas li {
  position: relative;
  width: 100%;
  display: block;
  border-top: 1px solid rgba(255, 255, 255, 0.1); }
  .nav-offcanvas li li {
    border-top-style: dotted; }

.main-nav__item {
  direction: ltr; }
  .main-nav__item a {
    outline: none;
    padding: 0 1rem;
    display: block;
    width: 100%; }
    .main-nav__item a:focus, .main-nav__item a:hover, .main-nav__item a.highlighted {
      background: #028F7E;
      color: #141414; }
    .main-nav__item a .disabled {
      cursor: default; }
  .main-nav__item.current > a, .main-nav__item.selected > a {
    background: #2e2e2e;
    color: #01ab96; }
    .main-nav__item.current > a:hover, .main-nav__item.current > a:focus, .main-nav__item.selected > a:hover, .main-nav__item.selected > a:focus {
      background: #02e2c7;
      color: #525252; }
  .main-nav__item.parent > a:after {
    /* use !important to prevent issues with browser extensions that change fonts */
    font-family: 'pioneer' !important;
    speak: none;
    font-style: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    line-height: 1;
    /* Better Font Rendering =========== */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    content: "";
    padding-left: 0.4rem;
    -webkit-transition: -webkit-transform, 400ms;
    -moz-transition: -moz-transform, 400ms;
    transition: transform, 400ms;
    float: right; }
  .main-nav__item.parent > a.highlighted ~ ul {
    border: none;
    clip: auto;
    height: auto;
    margin: 0;
    overflow: visible;
    padding: 0;
    position: relative;
    width: auto;
    width: 100%; }
  .main-nav__item.parent > a.highlighted:after {
    -webkit-transform: rotatex(180deg);
    -moz-transform: rotatex(180deg);
    -ms-transform: rotatex(180deg);
    -o-transform: rotatex(180deg);
    transform: rotatex(180deg); }

/**
 * Nav items should have padding and a low line height
 * If not, multi-line items will be huge
 */
.main-nav__list {
  -webkit-tap-highlight-color: transparent; }
  .main-nav__list a {
    line-height: 1.2rem;
    padding: 0.775rem 1rem; }
  .main-nav__list.level-0 > li:last-child {
    border-bottom: 1px solid rgba(255, 255, 255, 0.1); }

.main-nav__submenu {
  width: 100%;
  z-index: 201;
  border: none;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px; }
  .main-nav__submenu a {
    font-size: 0.875rem;
    padding-left: 2rem; }
  html.no-js .main-nav__submenu.active {
    border: none;
    clip: auto;
    height: auto;
    margin: 0;
    overflow: visible;
    padding: 0;
    position: relative;
    width: auto; }

.main-nav__submenu.level-2 a {
  padding-left: 3.5rem; }
  .main-nav__submenu.level-2 a:before {
    /* use !important to prevent issues with browser extensions that change fonts */
    font-family: 'pioneer' !important;
    speak: none;
    font-style: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    line-height: 1;
    /* Better Font Rendering =========== */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    content: "";
    opacity: .5;
    font-size: 0.75rem;
    line-height: 1.2rem;
    padding-right: 0.4rem; }

.js-nav #outer-wrap {
  background-color: #000; }

.js-nav .content-wrapper > *:not(#nav) {
  opacity: .4;
  -webkit-transition: opacity, 500ms;
  -moz-transition: opacity, 500ms;
  transition: opacity, 500ms; }

/* Fix weird bug in Chrome where menu disappears on hover */
.main-nav__item,
.main-nav__submenu {
  -webkit-transform: translate3d(0px, 0px, 0px); }

.block-nav__item.parent {
  position: relative; }

.main-nav__toggle {
  display: block;
  position: absolute;
  top: 0;
  right: 0;
  height: 2.1875rem;
  width: 2.1875rem;
  line-height: 2.1875rem;
  text-align: center;
  -webkit-transition: all 300ms ease;
  -moz-transition: all 300ms ease;
  transition: all 300ms ease; }
  .main-nav__toggle:before {
    font-size: 1rem;
    height: 2.1875rem;
    width: 2.1875rem;
    line-height: inherit !important;
    display: block;
    position: absolute; }
  .main-nav__toggle, .main-nav__toggle:before {
    color: rgba(1, 125, 110, 0.9) !important; }
  .main-nav__toggle.toggled:before {
    color: rgba(112, 112, 112, 0.7) !important; }
  .main-nav__toggle:hover {
    cursor: pointer;
    background: #dddddd; }
    .main-nav__toggle:hover, .main-nav__toggle:hover:before {
      color: rgba(1, 110, 97, 0.9) !important; }
  .footer-bg .main-nav__toggle, .footer-bg .main-nav__toggle:before {
    color: rgba(1, 100, 88, 0.9) !important; }
  .footer-bg .main-nav__toggle.toggled:before {
    color: rgba(89, 89, 89, 0.7) !important; }
  .footer-bg .main-nav__toggle:hover {
    cursor: pointer;
    background: #dddddd; }
    .footer-bg .main-nav__toggle:hover, .footer-bg .main-nav__toggle:hover:before {
      color: rgba(1, 100, 88, 0.9) !important; }

.current > .main-nav__toggle:before {
  color: rgba(112, 112, 112, 0.75) !important; }
  .footer-bg .current > .main-nav__toggle:before {
    color: rgba(89, 89, 89, 0.75) !important; }

.current > .main-nav__toggle:hover {
  background-color: #dbdbdb; }
  .current > .main-nav__toggle:hover:before {
    color: #707070 !important; }

.block-nav__item.selected.parent > .main-nav__toggle:before, .block-nav__item.current.parent > .main-nav__toggle:before {
  -webkit-transform: rotate(135deg);
  -moz-transform: rotate(135deg);
  -ms-transform: rotate(135deg);
  -o-transform: rotate(135deg);
  transform: rotate(135deg); }

.block-nav__item.selected.parent > .main-nav__toggle.toggled:before, .block-nav__item.current.parent > .main-nav__toggle.toggled:before {
  -webkit-transform: rotate(0deg);
  -moz-transform: rotate(0deg);
  -ms-transform: rotate(0deg);
  -o-transform: rotate(0deg);
  transform: rotate(0deg); }

@media only screen and (max-width: 63.9375em) {
  .main-nav__item.parent > a.highlighted ~ ul {
    margin-left: 0 !important;
    margin-top: 0 !important; } }

/* Increase padding in menu items on medium screens */
@media only screen and (min-width: 40em) and (max-width: 63.9375em) {
  .main-nav__list a {
    padding-left: 1.5rem;
    padding-right: 1.5rem; }
  .main-nav__submenu a {
    padding-left: 2.5rem; }
  .main-nav__close-btn {
    padding: 0 1.5rem; } }

@media only screen and (min-width: 64em) {
  .main-nav__frontpage-link .icon-home {
    font-size: 1.25rem; }
  .main-nav__item a {
    width: auto;
    padding-left: 1rem;
    padding-right: 1rem;
    white-space: normal;
    color: #cccccc; }
  .main-nav__item.level-0 {
    display: inline-block;
    border-bottom: none;
    z-index: 101;
    margin-right: 0; }
    .main-nav__item.level-0:hover {
      z-index: 102; }
    .main-nav__item.level-0 > a {
      padding-left: 1rem;
      padding-right: 1rem;
      line-height: 2.75rem;
      padding-top: 0;
      padding-bottom: 0;
      font-weight: bold;
      text-transform: none;
      font-size: 1rem; }
    .main-nav__item.level-0.parent > a:after {
      line-height: 2.75rem;
      float: none; }
  .main-nav__item.parent > a.highlighted ~ ul {
    position: absolute;
    min-width: 15em;
    max-width: 20em;
    box-shadow: 1px 0 0 #dddddd, 0 1px 0 #dddddd, -1px 0 0 #dddddd, 0 -1px 0 #dddddd;
    box-shadow: 0 0 0 1px #dddddd; }
  .nav-offcanvas li {
    width: auto;
    border-top: none; }
    .nav-offcanvas li li {
      border-top: none; }
    .nav-offcanvas li *,
    .nav-offcanvas li *:before,
    .nav-offcanvas li *:after {
      -webkit-box-sizing: content-box;
      -moz-box-sizing: content-box;
      box-sizing: content-box; }
  .main-nav__close-btn {
    border: none;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px; }
  .main-nav__submenu {
    position: absolute;
    top: -999999px;
    left: -800px;
    background: rgba(255, 255, 255, 0.97); }
    .main-nav__submenu a {
      color: #333333; }
  .main-nav__item {
    float: none;
    border-bottom: 1px solid #dddddd; }
    .main-nav__item:last-child {
      border-bottom: none; }
  /**
     * On menu level 1 we use plus sign as parent indicator, since level 2
     * submenus may pop up both to the left and to the right
     */
  .main-nav__item.level-1.parent > a:after {
    content: "";
    font-size: 0.75rem;
    padding-left: 0;
    -webkit-transition: -webkit-transform, 300ms;
    -moz-transition: -moz-transform, 300ms;
    transition: transform, 300ms;
    opacity: .6;
    float: right;
    line-height: inherit; }
  .main-nav__item.level-1.parent > a.highlighted:after {
    -webkit-transform: rotate(135deg);
    -moz-transform: rotate(135deg);
    -ms-transform: rotate(135deg);
    -o-transform: rotate(135deg);
    transform: rotate(135deg);
    opacity: 1; }
  .main-nav__item.level-2.parent > a:after {
    content: "";
    font-size: 0.75rem;
    padding-left: 0;
    -webkit-transition: -webkit-transform, 300ms;
    -moz-transition: -moz-transform, 300ms;
    transition: transform, 300ms;
    opacity: .6;
    float: right;
    line-height: inherit; }
  .main-nav__item.level-2.parent > a.highlighted:after {
    -webkit-transform: rotate(135deg);
    -moz-transform: rotate(135deg);
    -ms-transform: rotate(135deg);
    -o-transform: rotate(135deg);
    transform: rotate(135deg);
    opacity: 1; }
  .main-nav__item.level-3.parent > a:after {
    content: "";
    font-size: 0.75rem;
    padding-left: 0;
    -webkit-transition: -webkit-transform, 300ms;
    -moz-transition: -moz-transform, 300ms;
    transition: transform, 300ms;
    opacity: .6;
    float: right;
    line-height: inherit; }
  .main-nav__item.level-3.parent > a.highlighted:after {
    -webkit-transform: rotate(135deg);
    -moz-transform: rotate(135deg);
    -ms-transform: rotate(135deg);
    -o-transform: rotate(135deg);
    transform: rotate(135deg);
    opacity: 1; }
  .main-nav__item.level-4.parent > a:after {
    content: "";
    font-size: 0.75rem;
    padding-left: 0;
    -webkit-transition: -webkit-transform, 300ms;
    -moz-transition: -moz-transform, 300ms;
    transition: transform, 300ms;
    opacity: .6;
    float: right;
    line-height: inherit; }
  .main-nav__item.level-4.parent > a.highlighted:after {
    -webkit-transform: rotate(135deg);
    -moz-transform: rotate(135deg);
    -ms-transform: rotate(135deg);
    -o-transform: rotate(135deg);
    transform: rotate(135deg);
    opacity: 1; }
  .main-nav__item.level-5.parent > a:after {
    content: "";
    font-size: 0.75rem;
    padding-left: 0;
    -webkit-transition: -webkit-transform, 300ms;
    -moz-transition: -moz-transform, 300ms;
    transition: transform, 300ms;
    opacity: .6;
    float: right;
    line-height: inherit; }
  .main-nav__item.level-5.parent > a.highlighted:after {
    -webkit-transform: rotate(135deg);
    -moz-transform: rotate(135deg);
    -ms-transform: rotate(135deg);
    -o-transform: rotate(135deg);
    transform: rotate(135deg);
    opacity: 1; }
  .main-nav__submenu.level-2 a {
    padding-left: 1rem; }
    .main-nav__submenu.level-2 a:before {
      display: none; } }

body {
  position: relative;
  width: 100%;
  min-width: 20em; }

#outer-wrap {
  position: relative;
  overflow: hidden;
  width: 100%; }

#inner-wrap {
  position: relative;
  width: 100%; }

.block {
  position: relative; }

.block-title {
  border: none;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px; }

@media only screen and (max-width: 63.9375em) {
  #nav {
    z-index: 200;
    position: absolute;
    overflow: hidden;
    padding-top: 2.75rem;
    top: 2.75rem; }
    #nav:not(:target) {
      z-index: -1;
      height: 0;
      padding-top: 0; }
    #nav:target {
      background: #333; }
      #nav:target .main-nav__close-btn {
        display: block; }
    #nav .block {
      position: relative;
      z-index: 2;
      padding: 0; }
    #nav .columns {
      padding: 0; }
    #nav ul:before, #nav ul:after {
      content: "";
      display: table; }
    #nav ul:after {
      clear: both; }
  .js-ready #nav {
    height: 100%;
    width: 70%;
    left: -70%;
    background: #333;
    -moz-box-shadow: inset -1.5em 0 1.5em -0.75em rgba(0, 0, 0, 0.25);
    box-shadow: inset -1.5em 0 1.5em -0.75em rgba(0, 0, 0, 0.25);
    top: 0;
    padding-top: 2.75rem; }
    .js-ready #nav .block {
      background: transparent; }
  .js-ready #inner-wrap {
    left: 0; }
  .js-nav #inner-wrap {
    left: 70%; }
  .csstransforms3d.csstransitions.js-ready #nav {
    left: 0;
    -ms-transform: translate(-100%, 0);
    -webkit-transform: translate3d(-100%, 0, 0);
    -moz-transform: translate3d(-100%, 0, 0);
    -ms-transform: translate3d(-100%, 0, 0);
    -o-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0);
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden; }
  .csstransforms3d.csstransitions.js-ready #inner-wrap {
    left: 0 !important;
    -webkit-transition: all 500ms ease;
    -moz-transition: all 500ms ease;
    transition: all 500ms ease; }
  .csstransforms3d.csstransitions.js-nav #inner-wrap {
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    -ms-transform: translate(70%, 0) scale3d(1, 1, 1);
    -webkit-transform: translate3d(70%, 0, 0) scale3d(1, 1, 1);
    -moz-transform: translate3d(70%, 0, 0) scale3d(1, 1, 1);
    -ms-transform: translate3d(70%, 0, 0) scale3d(1, 1, 1);
    -o-transform: translate3d(70%, 0, 0) scale3d(1, 1, 1);
    transform: translate3d(70%, 0, 0) scale3d(1, 1, 1); }
  .csstransforms3d.csstransitions.js-ready #nav .block {
    opacity: 0.7;
    -webkit-transition: opacity 300ms 100ms ease, -webkit-transform 500ms ease, visibility 500ms ease;
    -moz-transition: opacity 300ms 100ms ease, -moz-transform 500ms ease, visibility 500ms ease;
    -o-transition: opacity 300ms 100ms ease, -o-transform 500ms ease, visibility 500ms ease;
    transition: opacity 300ms 100ms ease, transform 500ms ease, visibility 500ms ease;
    -ms-transform: translate(70%, 0) scale3d(0.9, 0.9, 0.9);
    -webkit-transform: translate3d(70%, 0, 0) scale3d(0.9, 0.9, 0.9);
    -moz-transform: translate3d(70%, 0, 0) scale3d(0.9, 0.9, 0.9);
    -ms-transform: translate3d(70%, 0, 0) scale3d(0.9, 0.9, 0.9);
    -o-transform: translate3d(70%, 0, 0) scale3d(0.9, 0.9, 0.9);
    transform: translate3d(70%, 0, 0) scale3d(0.9, 0.9, 0.9);
    -webkit-transform-origin: 50% 0%;
    -moz-transform-origin: 50% 0%;
    -ms-transform-origin: 50% 0%;
    -o-transform-origin: 50% 0%;
    transform-origin: 50% 0%; }
  .csstransforms3d.csstransitions.js-nav #nav .block {
    opacity: 1;
    -ms-transform: translate(0, 0);
    -webkit-transform: translate3d(0, 0, 0);
    -moz-transform: translate3d(0, 0, 0);
    -ms-transform: translate3d(0, 0, 0);
    -o-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); }
  .csstransforms3d.csstransitions #nav {
    visibility: hidden;
    -webkit-transition: visibility 500ms ease;
    -moz-transition: visibility 500ms ease;
    transition: visibility 500ms ease; }
  .csstransforms3d.csstransitions.js-nav #nav {
    visibility: visible; } }

@media only screen and (min-width: 40em) and (max-width: 63.9375em) {
  .js-ready #nav {
    width: 50%;
    left: -50%; }
  .js-nav #inner-wrap {
    left: 50%; }
  .csstransforms3d.csstransitions.js-nav #inner-wrap {
    -ms-transform: translate(50%, 0) scale3d(1, 1, 1);
    -webkit-transform: translate3d(50%, 0, 0) scale3d(1, 1, 1);
    -moz-transform: translate3d(50%, 0, 0) scale3d(1, 1, 1);
    -ms-transform: translate3d(50%, 0, 0) scale3d(1, 1, 1);
    -o-transform: translate3d(50%, 0, 0) scale3d(1, 1, 1);
    transform: translate3d(50%, 0, 0) scale3d(1, 1, 1); } }

#topbanners {
  padding: 2rem 0; }

.user-nav {
  float: right; }

#main-content,
#main-content-onepage {
  padding-top: 1.875rem;
  padding-bottom: 1.875rem; }
  #main-content > .breadcrumbs__wrapper:first-child,
  #main-content-onepage > .breadcrumbs__wrapper:first-child {
    margin-top: -1.875rem;
    padding: 0.5rem 0; }

#footer {
  padding-top: 1.875rem;
  border-top: 1px solid #b7b7b7; }

#end {
  border-top: 1px solid #b7b7b7;
  padding: 1.875rem 0;
  text-align: center; }

.page__title {
  margin-top: -1.875rem;
  padding: 0.5rem 0;
  margin-bottom: 1.5rem; }
  .page__title h1 {
    margin: 0; }

.footer__links li {
  display: inline-block; }
  .footer__links li a {
    display: block;
    padding: 0 .5rem; }
    html.touch .footer__links li a {
      line-height: 2.75rem; }

.footer__company-info,
.footer__made-by {
  line-height: 1.5; }

.footer__made-by {
  padding-top: 1rem;
  font-size: 13px; }

.footer__cookie_notice {
  margin-top: 1.25rem;
  padding-left: 25%;
  padding-right: 25%;
  font-size: 13px; }

@media only screen and (min-width: 40em) {
  .footer__links {
    margin-top: .5rem; } }

.alert-box {
  border-style: solid;
  border-width: 1px;
  display: block;
  font-weight: normal;
  margin-bottom: 0;
  position: relative;
  padding: 1rem 1.625rem 1rem 1rem;
  font-size: 0.875rem;
  transition: opacity 300ms ease-out;
  border: none;
  border-left: 2rem solid #017D6E;
  background-color: #fff;
  color: #333333;
  line-height: 1.3125;
  box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.4); }
  .alert-box.alert-box--withclose {
    padding-right: 2.4375rem; }
  .alert-box > p:last-child {
    margin-bottom: 0; }
  .alert-box .close {
    font-size: 1.375rem;
    padding: 0 6px 4px;
    line-height: .9;
    position: absolute;
    top: 1rem;
    margin-top: -0.6875rem;
    right: 0.25rem;
    color: #333333;
    opacity: 0.3;
    background: inherit; }
    .alert-box .close:hover, .alert-box .close:focus {
      opacity: 0.5; }
  .alert-box.radius {
    border-radius: 4px; }
  .alert-box.round {
    border-radius: 1000px; }
  .alert-box.success, .alert-box.alert-success {
    border: none;
    border-left: 2rem solid #5cb85c;
    background-color: #fff;
    color: #333333; }
  .alert-box.alert, .alert-box.alert-alert {
    border: none;
    border-left: 2rem solid #e03114;
    background-color: #fff;
    color: #333333; }
  .alert-box.secondary, .alert-box.alert-secondary {
    border: none;
    border-left: 2rem solid #e7e7e7;
    background-color: #fff;
    color: #333333; }
  .alert-box.warning, .alert-box.alert-warning {
    border: none;
    border-left: 2rem solid #ffa200;
    background-color: #fff;
    color: #333333; }
  .alert-box.info, .alert-box.alert-info {
    border: none;
    border-left: 2rem solid #5bc0de;
    background-color: #fff;
    color: #333333; }
  .alert-box.alert-close {
    opacity: 0; }
  .alert-box:focus {
    outline: none; }

.alert-box__icon {
  position: absolute;
  font-size: 1rem;
  top: 1rem;
  left: -1.5rem;
  line-height: 1.3125;
  height: 1.3125rem;
  color: #fff; }

.alert-box__message,
.alert-box__message > * {
  display: block;
  font-size: 0.875rem; }

.alert-box__message strong {
  display: inline;
  white-space: nowrap; }

.alert-box__message :last-child {
  margin-bottom: 0; }

.alert-box--withfooter .alert-box__message {
  margin-bottom: 2.75rem; }

#cart-notify {
  display: none; }

.alert-box__progressbar {
  display: none; }

.alert-box__footer {
  position: absolute;
  bottom: 0;
  width: 100%;
  right: 0;
  height: 2.75rem;
  line-height: 2.75rem; }
  .alert-box__footer a {
    padding: 0 1rem 0 1rem;
    color: #333333; }
    .alert-box__footer a.left .fa {
      padding-right: .3rem; }
    .alert-box__footer a.right .fa {
      padding-left: .3rem; }

@media only screen and (min-width: 40em) {
  .alert-box {
    max-width: 60%; } }

@media only screen and (min-width: 64em) {
  .alert-box {
    max-width: 40%; } }

@media only screen and (min-width: 90em) {
  .alert-box {
    max-width: 30%; } }

/**
 * Borrowed parts of https://github.com/daneden/animate.css
 */
.animated {
  -webkit-animation-duration: 1s;
  animation-duration: 1s;
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both; }

.animate,
.growl-animated {
  -webkit-transition: all 0.4s ease-in-out;
  -moz-transition: all 0.4s ease-in-out;
  transition: all 0.4s ease-in-out; }

@-webkit-keyframes fadeInDown {
  0% {
    opacity: 0;
    -ms-transform: translate(0, -100%);
    -webkit-transform: translate3d(0, -100%, 0);
    -moz-transform: translate3d(0, -100%, 0);
    -ms-transform: translate3d(0, -100%, 0);
    -o-transform: translate3d(0, -100%, 0);
    transform: translate3d(0, -100%, 0); }
  100% {
    opacity: 1;
    -webkit-transform: none;
    -moz-transform: none;
    -ms-transform: none;
    -o-transform: none;
    transform: none; } }

@-moz-keyframes fadeInDown {
  0% {
    opacity: 0;
    -ms-transform: translate(0, -100%);
    -webkit-transform: translate3d(0, -100%, 0);
    -moz-transform: translate3d(0, -100%, 0);
    -ms-transform: translate3d(0, -100%, 0);
    -o-transform: translate3d(0, -100%, 0);
    transform: translate3d(0, -100%, 0); }
  100% {
    opacity: 1;
    -webkit-transform: none;
    -moz-transform: none;
    -ms-transform: none;
    -o-transform: none;
    transform: none; } }

@keyframes fadeInDown {
  0% {
    opacity: 0;
    -ms-transform: translate(0, -100%);
    -webkit-transform: translate3d(0, -100%, 0);
    -moz-transform: translate3d(0, -100%, 0);
    -ms-transform: translate3d(0, -100%, 0);
    -o-transform: translate3d(0, -100%, 0);
    transform: translate3d(0, -100%, 0); }
  100% {
    opacity: 1;
    -webkit-transform: none;
    -moz-transform: none;
    -ms-transform: none;
    -o-transform: none;
    transform: none; } }

.fadeInDown {
  -webkit-animation-name: fadeInDown;
  animation-name: fadeInDown; }

@-webkit-keyframes fadeOutUp {
  0% {
    opacity: 1; }
  100% {
    opacity: 0;
    -ms-transform: translate(0, -100%);
    -webkit-transform: translate3d(0, -100%, 0);
    -moz-transform: translate3d(0, -100%, 0);
    -ms-transform: translate3d(0, -100%, 0);
    -o-transform: translate3d(0, -100%, 0);
    transform: translate3d(0, -100%, 0); } }

@-moz-keyframes fadeOutUp {
  0% {
    opacity: 1; }
  100% {
    opacity: 0;
    -ms-transform: translate(0, -100%);
    -webkit-transform: translate3d(0, -100%, 0);
    -moz-transform: translate3d(0, -100%, 0);
    -ms-transform: translate3d(0, -100%, 0);
    -o-transform: translate3d(0, -100%, 0);
    transform: translate3d(0, -100%, 0); } }

@keyframes fadeOutUp {
  0% {
    opacity: 1; }
  100% {
    opacity: 0;
    -ms-transform: translate(0, -100%);
    -webkit-transform: translate3d(0, -100%, 0);
    -moz-transform: translate3d(0, -100%, 0);
    -ms-transform: translate3d(0, -100%, 0);
    -o-transform: translate3d(0, -100%, 0);
    transform: translate3d(0, -100%, 0); } }

.fadeOutUp {
  -webkit-animation-name: fadeOutUp;
  animation-name: fadeOutUp; }

.bestseller {
  display: block;
  width: 100%;
  padding: .25rem 0; }
  .bestseller .row {
    position: relative; }

.bestseller__title {
  font-size: 0.875rem;
  padding: 0.625rem 0; }

.bestseller__image {
  width: 2.75rem;
  height: 2.75rem;
  position: absolute;
  left: 0;
  top: 50%;
  margin-top: -1.375rem;
  line-height: 2.75rem; }

.bestseller__image img {
  display: inline;
  max-width: 2.75rem;
  max-height: 2.75rem; }

.block-image-grid {
  display: block;
  padding: 0;
  margin: 0; }
  .block-image-grid:before, .block-image-grid:after {
    content: " ";
    display: table; }
  .block-image-grid:after {
    clear: both; }
  .block-image-grid > li {
    display: block;
    height: auto;
    float: left;
    padding: 0 0.9375rem 1.875rem; }
  .block-image-grid > li {
    width: 33.33333%;
    padding: 0 0.9375rem 1.875rem;
    list-style: none; }
    .block-image-grid > li:nth-of-type(1n) {
      clear: none; }
    .block-image-grid > li:nth-of-type(3n+1) {
      clear: both; }
    .block-image-grid > li:nth-of-type(3n+1) {
      padding-left: 0rem;
      padding-right: 1.25rem; }
    .block-image-grid > li:nth-of-type(3n+2) {
      padding-left: 0.625rem;
      padding-right: 0.625rem; }
    .block-image-grid > li:nth-of-type(3n) {
      padding-left: 1.25rem;
      padding-right: 0rem; }

.block__box__headline {
  text-transform: uppercase;
  font-size: 1.25rem;
  padding: 0.5rem 0.9375rem 0.5rem 0.9375rem;
  margin: 0; }
  .block__box__headline:hover {
    cursor: pointer; }
  .block__box__headline:after {
    /* use !important to prevent issues with browser extensions that change fonts */
    font-family: 'pioneer' !important;
    speak: none;
    font-style: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    line-height: 1;
    /* Better Font Rendering =========== */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    content: "";
    padding-left: .5rem;
    float: right;
    -webkit-transition: -webkit-transform;
    -moz-transition: -moz-transform;
    transition: transform;
    line-height: 1.5; }
  .block__box__headline.toggled {
    background-color: #017D6E;
    color: #fff; }
    .block__box__headline.toggled:after {
      -webkit-transform: rotatex(180deg);
      -moz-transform: rotatex(180deg);
      -ms-transform: rotatex(180deg);
      -o-transform: rotatex(180deg);
      transform: rotatex(180deg); }

.block__box__content {
  display: none;
  padding: 0.5rem 0.9375rem 1.875rem 0.9375rem; }

.block__box ul {
  list-style: none;
  margin: 0; }
  .block__box ul ul li {
    padding-left: 1rem; }

.block__box li a {
  display: block;
  width: 100%; }

.block__box li.parent > a.js-toggle-visibility:before, .block__box li.parent > .main-nav__toggle:before {
  -webkit-transition: all 300ms ease;
  -moz-transition: all 300ms ease;
  transition: all 300ms ease;
  /* use !important to prevent issues with browser extensions that change fonts */
  font-family: 'pioneer' !important;
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  /* Better Font Rendering =========== */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: ""; }

.block__box li.parent > a.toggled:before, .block__box li.parent > .main-nav__toggle.toggled:before {
  -webkit-transform: rotate(135deg);
  -moz-transform: rotate(135deg);
  -ms-transform: rotate(135deg);
  -o-transform: rotate(135deg);
  transform: rotate(135deg);
  color: #e03114; }

.block__box li.parent > ul {
  display: none; }

.block__box.block__box--logo_list a:before {
  display: none; }

.block__login__forgotpassword {
  padding-top: 0.875rem;
  padding-right: 1.75rem;
  padding-bottom: 0.9375rem;
  padding-left: 1.75rem;
  font-size: 0.8125rem;
  padding-left: 0;
  padding-right: 0; }

#footer .footer-block:last-child {
  margin-bottom: 1.875rem; }
  #footer .footer-block:last-child .block__box:last-child {
    border-bottom: none; }

#footer .block__box {
  /**
         * On menu level 1 we use plus sign as parent indicator, since level 2
         * submenus may pop up both to the left and to the right
         */ }
  #footer .block__box li a.neutral-link:before,
  #footer .block__box li.neutral-link > a:before {
    color: #016458; }
  #footer .block__box li a.toggled:before {
    color: #a8250f; }
  #footer .block__box .main-nav__toggle, #footer .block__box .main-nav__toggle:before {
    height: 3.125rem;
    width: 3.125rem;
    line-height: 3.125rem;
    text-indent: 0; }
  #footer .block__box li.level-0, #footer .block__box li.level-0 li {
    position: relative;
    padding: 0;
    border-top: 1px rgba(51, 51, 51, 0.2) solid; }
  #footer .block__box li.level-0:first-child {
    border-top-width: 0px; }
  #footer .block__box li.level-0 a {
    font-size: 0.875rem;
    padding: 0.875rem 0; }
  #footer .block__box li.level-1 {
    text-indent: 1.3125rem; }
  #footer .block__box li.level-2 {
    text-indent: 2.625rem; }
  #footer .block__box li.level-3 {
    text-indent: 3.9375rem; }
  #footer .block__box li.level-4 {
    text-indent: 5.25rem; }
  #footer .block__box li.level-5 {
    text-indent: 6.5625rem; }
  #footer .block__box li.parent > a {
    position: relative; }
  #footer .block__box li.parent.current > ul, #footer .block__box li.parent.selected > ul {
    display: block; }

@media only screen and (min-width: 40em) {
  #footer .footer-block:first-child .block__box:last-child,
  #footer .footer-block:nth-last-child(2) .block__box:last-child {
    border-bottom-width: 0; }
  #footer .footer-block:first-child .block__box:first-child,
  #footer .footer-block:nth-last-child(2) .block__box:first-child {
    border-bottom-width: 1px; }
  .block__box__headline {
    padding-left: 0;
    padding-right: 0; }
    .block__box__headline.toggled {
      background-color: inherit;
      color: inherit; }
    .block__box__headline:after {
      display: none; }
    .block__box__headline:hover {
      cursor: inherit; }
  .block__box__content {
    display: block !important;
    height: auto !important;
    opacity: 1 !important;
    padding-left: 0;
    padding-right: 0; } }

@media only screen and (min-width: 64em) {
  #footer .footer-block {
    margin-bottom: 1.875rem; }
    #footer .footer-block .block__box:last-child {
      border-bottom: none; } }

.block__box--banners, .block__box--banners .block__box__content,
.block__box--banners_right,
.block__box--banners_right .block__box__content,
.block__box--banners_left,
.block__box--banners_left .block__box__content {
  background-color: transparent !important; }

.block__box--banners .block__box__headline-wrapper,
.block__box--banners .block__box__headline,
.block__box--banners_right .block__box__headline-wrapper,
.block__box--banners_right .block__box__headline,
.block__box--banners_left .block__box__headline-wrapper,
.block__box--banners_left .block__box__headline {
  display: none; }

.block__box--banners .wrapper_banner,
.block__box--banners_right .wrapper_banner,
.block__box--banners_left .wrapper_banner {
  text-align: center; }
  .block__box--banners .wrapper_banner > div,
  .block__box--banners_right .wrapper_banner > div,
  .block__box--banners_left .wrapper_banner > div {
    margin-bottom: 1rem; }
    .block__box--banners .wrapper_banner > div img,
    .block__box--banners_right .wrapper_banner > div img,
    .block__box--banners_left .wrapper_banner > div img {
      width: 100%; }
    .block__box--banners .wrapper_banner > div:last-child,
    .block__box--banners_right .wrapper_banner > div:last-child,
    .block__box--banners_left .wrapper_banner > div:last-child {
      margin-bottom: 0; }

.bordered, .checkout--kco__custom-intro, .checkout--kco .checkout__step, .bordered--all, .bordered--bottom, .page__title, .freight-option,
.payment-option, .product__title, .bordered--top, .bordered--left, .bordered--right {
  border-style: solid;
  border-width: 0; }

.bordered--all {
  border-width: 1px; }

.bordered--bottom, .page__title, .freight-option,
.payment-option, .checkout--kco__custom-intro, .checkout--kco .checkout__step, .product__title {
  border-bottom-width: 1px; }
  .bordered--bottom.bordered__list-item:last-child, .bordered__list-item.page__title:last-child, .bordered__list-item.freight-option:last-child,
  .bordered__list-item.payment-option:last-child, .bordered__list-item.checkout--kco__custom-intro:last-child, .checkout--kco .bordered__list-item.checkout__step:last-child, .bordered__list-item.product__title:last-child {
    border-bottom-width: 0; }

.bordered--top {
  border-top-width: 1px; }

.bordered--left {
  border-left-width: 1px; }

.bordered--right {
  border-right-width: 1px; }

.bx-wrapper {
  position: relative; }

.bx-controls-direction a {
  position: absolute;
  top: 50%;
  margin-top: -1.375rem;
  outline: 0;
  width: 2.75rem;
  height: 2.75rem;
  text-indent: 100%;
  overflow: hidden;
  text-decoration: none;
  z-index: 100;
  -webkit-transition: opacity 200ms, -webkit-transform 150ms ease;
  -webkit-transition-delay: ease, 0s;
  -moz-transition: opacity 200ms ease, -moz-transform 150ms ease;
  -o-transition: opacity 200ms ease, -o-transform 150ms ease;
  transition: opacity 200ms ease, transform 150ms ease;
  font-size: 1.375rem;
  -ms-border-radius: 1.375rem;
  border-radius: 1.375rem;
  border: 2px solid #fff; }
  .slider__with-nav .bx-controls-direction a {
    margin-top: -2.75rem; }
  .bx-controls-direction a:after {
    position: absolute;
    -webkit-transition: text-indent 200ms ease;
    -moz-transition: text-indent 200ms ease;
    transition: text-indent 200ms ease;
    width: 2.75rem;
    font-size: 1.875rem;
    top: -2px;
    left: -2px;
    z-index: 101;
    text-align: center; }
  .bx-controls-direction a.disabled {
    display: none; }

.bx-controls-direction a {
  color: #fff;
  background-color: rgba(0, 0, 0, 0.4);
  border: 2px solid #fff; }
  .bx-controls-direction a:after {
    color: #fff; }
  .bx-controls-direction a:hover, .bx-controls-direction a:focus {
    background-color: rgba(0, 0, 0, 0.9); }

.bx-next {
  right: 0.9375rem; }
  .bx-next:after {
    /* use !important to prevent issues with browser extensions that change fonts */
    font-family: 'pioneer' !important;
    speak: none;
    font-style: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    line-height: 1;
    /* Better Font Rendering =========== */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    content: "";
    line-height: inherit;
    text-indent: 3px; }
  .bx-next:hover:after, .bx-next:focus:after {
    text-indent: 9px; }
  .bx-next:active:after {
    text-indent: 0; }

.bx-prev {
  left: 0.9375rem; }
  .bx-prev:after {
    /* use !important to prevent issues with browser extensions that change fonts */
    font-family: 'pioneer' !important;
    speak: none;
    font-style: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    line-height: 1;
    /* Better Font Rendering =========== */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    content: "";
    line-height: inherit;
    text-indent: -3px; }
  .bx-prev:hover:after, .bx-prev:focus:after {
    text-indent: -9px; }
  .bx-prev:active:after {
    text-indent: 0; }

.bx-pager {
  text-align: center;
  overflow: hidden; }

.bx-pager-item {
  display: inline-block;
  position: relative; }

.bx-pager-link {
  position: relative;
  display: block;
  height: 2.75rem;
  width: 2.75rem;
  line-height: 2.75rem;
  font-size: 0;
  overflow: hidden; }
  .bx-pager-link:after {
    position: absolute;
    top: 0;
    left: 0;
    font-size: .8rem;
    opacity: .25;
    display: block;
    /* use !important to prevent issues with browser extensions that change fonts */
    font-family: 'pioneer' !important;
    speak: none;
    font-style: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    line-height: 1;
    /* Better Font Rendering =========== */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    content: "";
    background-color: #ffffff;
    color: #000;
    height: 2.75rem;
    width: 2.75rem;
    line-height: inherit;
    text-align: center;
    -webkit-transition: font-size 200ms ease;
    -moz-transition: font-size 200ms ease;
    transition: font-size 200ms ease; }
  .bx-pager-link.active:after {
    opacity: .75;
    font-size: 1rem; }
  .bx-pager-link:hover:after, .bx-pager-link:focus:after {
    font-size: 1rem;
    color: #017D6E;
    opacity: .75; }

@media only screen and (min-width: 90em) {
  .bx-prev {
    left: -4.625rem; }
  .bx-next {
    right: -4.625rem; } }

.cart-and-checkout {
  position: relative; }

.cart-button__quantity {
  position: absolute;
  bottom: -4px;
  right: -4px;
  font-size: 0.75rem;
  font-size: 0.75rem;
  line-height: 1.35rem;
  height: 1.35rem;
  border-radius: 0;
  padding: 0 4px;
  display: inline-block;
  text-align: center;
  opacity: .9;
  -webkit-transition: all 200ms ease;
  -moz-transition: all 200ms ease;
  transition: all 200ms ease; }
  .cart-button--empty .cart-button__quantity {
    opacity: .9; }
  .cart-button:hover .cart-button__quantity,
  .cart-button--highlighted .cart-button__quantity {
    background-color: #028F7E !important;
    color: #141414;
    box-shadow: 0 0 3px 3px rgba(0, 0, 0, 0.1); }

.icon-larger-than:after {
  /* use !important to prevent issues with browser extensions that change fonts */
  font-family: 'pioneer' !important;
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  /* Better Font Rendering =========== */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "";
  margin-right: -3px;
  margin-left: -4px; }

.cart-button__icon:before {
  font-size: 2rem; }

.cart-button__text,
.cart-button__sum,
.cart-button__currency {
  display: none; }

.cart-and-checkout .checkout-button {
  display: none !important; }

#kasse_one_form .row .row,
#kasse_one_logginn .row .row {
  width: auto;
  margin-left: -0.9375rem;
  margin-right: -0.9375rem;
  margin-top: 0;
  margin-bottom: 0;
  max-width: none; }
  #kasse_one_form .row .row:before, #kasse_one_form .row .row:after,
  #kasse_one_logginn .row .row:before,
  #kasse_one_logginn .row .row:after {
    content: " ";
    display: table; }
  #kasse_one_form .row .row:after,
  #kasse_one_logginn .row .row:after {
    clear: both; }
  #kasse_one_form .row .row .column,
  #kasse_one_form .row .row .columns,
  #kasse_one_logginn .row .row .column,
  #kasse_one_logginn .row .row .columns {
    padding-left: 0.9375rem;
    padding-right: 0.9375rem;
    float: left; }

#kasse_one_form .zebra {
  border-spacing: 0;
  border-collapse: collapse;
  width: 100%; }

#kasse_one_form .zebra tr:last-child td {
  border-bottom: none; }

.checkout__steps {
  background-color: #d9d9d9;
  padding: 2px;
  border-radius: 0;
  margin-top: 1em; }

/* ENIRO search */
#eniro_fetch {
  text-align: center; }

#eniro_options,
#eniro_message,
#client_options {
  display: none; }

#eniro_message {
  padding: 5px;
  margin-bottom: 1em;
  clear: both;
  line-height: 1.5; }

#eniro_options {
  width: 100%;
  padding: 3px 6px;
  border: 1px solid #bbb; }

.cart-contents .mini-img {
  padding: 0;
  border-right: 0; }

.mini-img img {
  display: none; }

/* buttons */
.button .arrow {
  padding-left: .4rem; }

.checkout__step__contents button,
.checkout__step__contents .button {
  margin-bottom: 0; }

a.dialog_trigger,
a.dialog_trigger:link,
a.dialog_trigger:visited {
  text-decoration: underline; }

.checkout__step__contents .dialog-popup {
  margin-bottom: 1em; }

.dialog-popup h2 {
  margin-top: 0; }

.dialog-popup .kasse_one_logginn_error {
  display: block;
  float: right; }

.dialog-popup .form_submit {
  clear: both;
  margin-bottom: .5em; }

.dialog-popup .forgot_passwd {
  float: left; }

.addon_buttons {
  display: block;
  float: right;
  padding-right: 1.25rem;
  clear: both;
  margin-bottom: .5rem; }
  .addon_buttons .edit_step {
    margin-top: 0;
    font-size: 1rem;
    line-height: 2rem;
    margin-right: 0; }
    .addon_buttons .edit_step.toggled .icon-add {
      -webkit-transform: rotate(-135deg);
      -moz-transform: rotate(-135deg);
      -ms-transform: rotate(-135deg);
      -o-transform: rotate(-135deg);
      transform: rotate(-135deg); }
  .addon_buttons .icon-add {
    display: inline-block;
    height: 1.5rem;
    width: 1rem;
    line-height: 1.5rem;
    text-align: center;
    -webkit-transition: -webkit-transform;
    -moz-transition: -moz-transform;
    transition: transform;
    -webkit-transform: rotate(0deg);
    -moz-transform: rotate(0deg);
    -ms-transform: rotate(0deg);
    -o-transform: rotate(0deg);
    transform: rotate(0deg); }
  .checkout__step--inactive .addon_buttons {
    display: none; }

.next-step-btn .icon {
  margin-left: .5em; }

.edit_step,
.marker_edit_step {
  display: none;
  float: right;
  padding: 0 .5em;
  background-color: #333333;
  color: #fff;
  cursor: pointer;
  border-radius: 0;
  font-size: 11px; }

.plus-icon {
  font-weight: bold; }

.edit_step:link,
.edit_step:visited {
  color: #fff; }

.checkout .checkout__step--inactive:hover .edit_step,
.checkout .checkout__step--inactive .edit_step:focus,
.checkout .edit_step:hover,
.checkout .edit_step:focus {
  background-color: #4d4d4d;
  color: #02d8be; }

.edit_step:hover .plus-icon {
  color: #02d8be; }

.edit_step {
  line-height: 24px;
  font-size: 12px;
  margin: 19px 1.25rem 0 0; }

.marker_edit_step {
  line-height: 20px;
  margin-top: -4px; }

#progress-list .complete .marker_edit_step {
  display: inline-block;
  float: none; }

input.checkout__qty {
  width: 3rem;
  text-align: right;
  float: right;
  margin: 0;
  padding-right: 0; }

.checkout__update-cart-btn .checkout__update-cart-btn__update {
  display: inline; }

.checkout__update-cart-btn .checkout__update-cart-btn__loading {
  display: none; }

.checkout__update-cart-btn:disabled .checkout__update-cart-btn__update {
  display: none; }

.checkout__update-cart-btn:disabled .checkout__update-cart-btn__loading {
  display: inline; }

.ellipsis_one,
.ellipsis_two,
.ellipsis_three {
  font-size: 1.25rem;
  line-height: 1rem;
  opacity: 0;
  -webkit-animation: ellipsis 0.9s infinite;
  -moz-animation: ellipsis 0.9s infinite;
  animation: ellipsis 0.9s infinite;
  -webkit-animation-delay: 0s;
  -moz-animation-delay: 0s;
  animation-delay: 0s; }

.ellipsis_two {
  -webkit-animation-delay: 0.2s;
  -moz-animation-delay: 0.2s;
  animation-delay: 0.2s; }

.ellipsis_three {
  -webkit-animation-delay: 0.3s;
  -moz-animation-delay: 0.3s;
  animation-delay: 0.3s; }

@-webkit-keyframes ellipsis {
  0% {
    opacity: 0; }
  50% {
    opacity: 0; }
  100% {
    opacity: 1; } }

@-moz-keyframes ellipsis {
  0% {
    opacity: 0; }
  50% {
    opacity: 0; }
  100% {
    opacity: 1; } }

@keyframes ellipsis {
  0% {
    opacity: 0; }
  50% {
    opacity: 0; }
  100% {
    opacity: 1; } }

.dialog-popup input[type="email"],
.dialog-popup input[type="password"] {
  background-color: #fff; }

.msgbox {
  display: none;
  padding: 1em 1em 1em 1em;
  float: left;
  width: 100%;
  clear: both;
  background-color: #f2f2f2;
  border-left: 5px solid #e6e6e6;
  margin-bottom: 1em; }
  .msgbox a {
    text-decoration: underline; }
  .msgbox p {
    padding: 0 2em 0 0;
    margin: 0; }

.msgbox__close {
  float: right;
  font-size: 1.3125rem;
  font-weight: bold;
  line-height: 1;
  color: #000;
  text-shadow: 0 1px 0 white;
  opacity: 0.2;
  font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
  background-color: transparent !important;
  border-color: transparent;
  padding: 0; }
  .msgbox__close:hover, .msgbox__close:focus {
    text-decoration: none;
    cursor: pointer;
    opacity: 0.5;
    background-color: transparent; }

.checkout__step {
  padding-top: .5em;
  padding-bottom: 2em;
  margin-bottom: 1px;
  background: #ffffff; }

.checkout__step--inactive {
  padding-top: 0; }

#js-checkoutstep__overview .checkout__step__contents {
  display: none; }

#js-checkoutstep__overview .js-toggle-visibility.edit_step,
#js-checkoutstep__paymethod .js-toggle-visibility.edit_step {
  display: block;
  float: right;
  margin-left: 1em; }

.checkout__step:first-child {
  border-radius: 0 0 0 0; }

.checkout__step:last-child {
  margin-bottom: 0;
  border-radius: 0 0 0 0; }

/* Inactive step styles */
.checkout__step--inactive {
  padding-bottom: 0;
  background: #ebebeb; }

.checkout__step__mirror,
.checkout__step--inactive .checkout__step__contents {
  display: none; }

.checkout__step--inactive.valid .checkout__step__mirror {
  display: block;
  clear: both; }

#js-checkoutstep__address h2 {
  margin-bottom: 16px; }

#js-checkoutstep__address .checkout__step__mirror {
  display: none; }

.checkout__step__contents {
  padding: 0 1.25rem;
  clear: both; }

#kasse_one_login_question,
#welcome_msg,
#welcome_msg--true {
  line-height: 1.5rem; }

#kasse_one_login_question p.subtle, #kasse_one_login_question #kasse_one_form p.subtaxes, #kasse_one_form #kasse_one_login_question p.subtaxes, #kasse_one_login_question .product__main-images p.bx-caption, .product__main-images #kasse_one_login_question p.bx-caption, #kasse_one_login_question p.product__meta-numbers, #kasse_one_login_question .product p.price--original, .product #kasse_one_login_question p.price--original, #kasse_one_login_question .product p.vat-info, .product #kasse_one_login_question p.vat-info, #kasse_one_login_question p.product__stockstatus, #kasse_one_login_question .productlist p.price--original, .productlist #kasse_one_login_question p.price--original {
  margin-top: 0; }

.kasse_one_logginn_error {
  margin-bottom: 1rem; }

.checkout__step--inactive h2 {
  font-weight: normal;
  font-size: 16px;
  color: rgba(51, 51, 51, 0.8); }

.checkout__step__mirror {
  color: #888;
  padding: 0 1.25rem 1.5em 4.3125rem;
  font-size: 13px; }
  .checkout__step__mirror h3 {
    margin: 0 0 .5em 0;
    font-size: 13px; }

.mirror__first-name,
.mirror__last-name,
.mirror__zip,
.mirror__city {
  display: inline; }

/* end inactive step styles */
/* freight options */
.freight-options,
.payment-options {
  margin: 0;
  padding: 0;
  list-style: none; }

.freight-option,
.payment-option {
  float: left;
  clear: both;
  width: 100%; }
  .freight-option:last-child,
  .payment-option:last-child {
    border-bottom: none; }

.payment-option {
  display: table; }
  .payment-option label {
    display: table-row;
    vertical-align: middle;
    width: 100%; }
    .payment-option label > * {
      display: table-cell;
      vertical-align: middle;
      padding: 1em 0 1em 0; }
      .payment-option label > *:first-child {
        padding-left: 5px; }
  .payment-option .payment-option__price {
    padding-left: 1em; }
  .payment-option.test .payment-option__name::after {
    margin-left: .5rem;
    font-size: 1.1rem;
    display: inline;
    /* use !important to prevent issues with browser extensions that change fonts */
    font-family: 'pioneer' !important;
    speak: none;
    font-style: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    line-height: 1;
    /* Better Font Rendering =========== */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    content: "";
    color: #e03114; }

.freight-option label {
  float: left;
  padding: 1em 5px 1em 1.875rem;
  width: 100%;
  line-height: 20px;
  margin-bottom: 0; }

.freight-option input[type=radio] {
  float: left;
  margin-left: -22px;
  margin-bottom: 0;
  margin-top: 2px;
  margin-right: 5px; }

.freight-option__name {
  width: 62%;
  padding-right: 0;
  padding-left: 3px;
  float: left; }

.freight-option__price {
  width: 29%;
  text-align: right;
  float: right; }

.freight-option__desc,
.payment-option__desc,
.attribute {
  clear: both;
  float: left;
  font-size: 12px;
  color: #999;
  padding: .5em 80px .5em 3px; }

.freight-option__desc {
  width: 100%;
  text-transform: none;
  font-weight: normal;
  padding-bottom: 0; }

.attribute {
  padding: 0; }

.payment-option__name {
  width: 40%; }

.payment-option__input-wrap {
  width: 1.875rem;
  padding-left: 5px; }
  .payment-option__input-wrap .remove_giftcard {
    margin-left: 5px; }
  .payment-option__input-wrap input {
    margin-left: 3px;
    margin-top: 2px;
    margin-bottom: 0; }

.payment-option__price {
  text-align: right;
  padding-right: 5px; }

/* end freight options */
/* edit step button */
.checkout__step--inactive.valid .edit_step {
  display: block; }

.is-toggler {
  cursor: pointer; }

.kasse_main {
  width: 100%;
  float: left; }

.checkout__step__headline {
  float: left;
  line-height: 28px;
  height: 28px;
  margin: 16px 0;
  padding: 0 10px 0 0;
  clear: right;
  font-size: 18px; }

.checkout__step--inactive.valid {
  cursor: pointer; }
  .checkout__step--inactive.valid h2 {
    margin-bottom: 8px; }

.kasse_one_step_number {
  float: left;
  height: 28px;
  width: 28px;
  line-height: 28px;
  font-size: 17px;
  font-weight: normal;
  text-align: center;
  z-index: 1;
  border-radius: 50%;
  background-color: #666666;
  margin: 16px 1.25rem 8px 1.25rem;
  padding: 0;
  color: #e5e5e5; }

button.remove_giftcard,
button.remove_rabatt {
  display: inline;
  margin-left: .5em;
  font-size: 1rem;
  font-weight: bold;
  padding: 0; }
  button.remove_giftcard, button.remove_giftcard:link, button.remove_giftcard:visited, button.remove_giftcard:hover, button.remove_giftcard:active, button.remove_giftcard:focus,
  button.remove_rabatt,
  button.remove_rabatt:link,
  button.remove_rabatt:visited,
  button.remove_rabatt:hover,
  button.remove_rabatt:active,
  button.remove_rabatt:focus {
    color: #e03114;
    background: transparent; }

.kasse_one_step_number--info {
  font-family: Georgia, 'Times New Roman', Times, serif;
  font-style: italic; }

#kasse_one_form label.error {
  display: block;
  clear: both;
  color: #b94a48;
  font-weight: bold;
  line-height: 1.5em;
  padding-bottom: .5em; }

#kasse_one_popup_area {
  position: absolute;
  width: 320px;
  /*height:   155px;*/
  padding: 15px;
  margin: 1em 0 0 0;
  color: #000;
  background: #ffffff;
  /* default background for browsers without gradient support */
  /* css3 */
  background-color: #fff;
  background-image: -webkit-linear-gradient(#fff, #f1f1f1);
  background-image: linear-gradient(#fff, #f1f1f1);
  border-radius: 10px;
  border-style: solid;
  border-width: 1px;
  border-color: #cbcbcb; }

#kasse_one_popup {
  display: none;
  position: absolute;
  z-index: 102; }

#kasse_one_popup_area span {
  font-weight: bold; }

.frakt_wrapper,
.payment_wrapper,
.payment_wrapper > label.error,
.frakt_wrapper > label.error {
  margin-bottom: 1em; }

#kasse_one_ordre_oversikt {
  margin-bottom: 1.5em; }
  #kasse_one_ordre_oversikt tr:nth-of-type(even) {
    background: transparent; }

.subtle, #kasse_one_form .subtaxes, .product__main-images .bx-caption, .product__meta-numbers, .product .price--original, .product .vat-info, .product__stockstatus, .rating input:checked ~ label, .rating label:hover ~ label, .productlist .price--original {
  font-size: 13px; }

#kasse_one_form .subtaxes {
  font-weight: normal;
  font-style: italic; }

#welcome_msg {
  display: none; }

.hasPlaceholder {
  color: #bbb; }

.mini-img {
  text-align: center;
  vertical-align: middle; }

label[for="kjopsbet"] a {
  text-decoration: underline;
  text-transform: lowercase; }
  label[for="kjopsbet"] a:hover {
    cursor: help; }

label[for="kjopsbet"] a b {
  font-weight: normal; }

table.lined {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 1.5em;
  clear: both; }
  table.lined th,
  table.lined td {
    line-height: 1.5em;
    padding: 5px 7px;
    border-right: 1px dotted rgba(51, 51, 51, 0.4); }
    table.lined th:last-child,
    table.lined td:last-child {
      border-right: none; }
  table.lined thead th {
    border-bottom: 1px solid rgba(51, 51, 51, 0.4); }
  table.lined tbody td {
    border-top: 1px dashed rgba(51, 51, 51, 0.4); }
  table.lined tbody tr:first-child td {
    border-top: none; }
  table.lined tfoot {
    font-weight: bold; }
    table.lined tfoot td {
      border-top: 1px solid rgba(51, 51, 51, 0.4);
      line-height: 2em; }
    table.lined tfoot.sum td {
      border-bottom: 3px double rgba(51, 51, 51, 0.4); }
  table.lined .price {
    text-align: right; }

.control-group {
  padding-left: 0.9375rem;
  padding-right: 0.9375rem;
  width: 100%;
  float: left; }
  .row.collapse > .control-group {
    padding-left: 0;
    padding-right: 0; }

.checkout__sum-too-small__errormsg {
  display: none; }
  .checkout__sum-too-small .checkout__sum-too-small__errormsg {
    display: block; }

.checkout__sum-too-small .checkout__sum-too-small__errormsg {
  color: #e03114;
  display: block; }

@media only screen and (min-width: 27em) {
  .control-group {
    width: 83.33333%; }
  .addon_buttons {
    margin-top: 1rem;
    float: right;
    clear: right; } }

@media only screen and (min-width: 40em) {
  .addon_buttons {
    padding-right: 1.875rem; }
  .cart-contents .mini-img {
    padding: 5px 7px; }
  .mini-img img {
    display: block; }
  .checkout__step__contents {
    padding: 0 1.875rem 0 4.3125rem; }
  .control-group {
    width: 100%; }
  .checkout-login {
    font-size: 0.875rem; }
  .checkout__step__contents .next-step-btn {
    padding-top: 1rem;
    padding-right: 2rem;
    padding-bottom: 1.0625rem;
    padding-left: 2rem;
    font-size: 1rem; }
    .checkout__step__contents .next-step-btn .arrow {
      display: inline !important; }
  .checkout__step__contents .close {
    padding: 0; }
  .checkout__step__mirror {
    padding-left: 4.3125rem;
    padding-right: 1.875rem; }
  #js-checkoutstep__address.checkout__step--inactive.valid .checkout__step__mirror {
    display: block; }
  #js-checkoutstep__address.checkout__step--inactive.valid h2 {
    margin-bottom: 8px; }
  .checkout__step__mirror__address {
    margin-bottom: 0; }
  .freight-option input[type=radio] {
    float: left;
    margin-left: -22px;
    margin-bottom: 0;
    margin-top: 2px; } }

@media only screen and (min-width: 64em) {
  .checkout__step__contents,
  .checkout__step__mirror,
  .addon_buttons {
    padding-right: 4.3125rem; } }

.reveal-modal-bg {
  position: fixed;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  background: #000000;
  background: rgba(0, 0, 0, 0.45);
  z-index: 1004;
  display: none;
  left: 0; }

.reveal-modal {
  visibility: hidden;
  display: none;
  position: absolute;
  z-index: 1005;
  width: 100%;
  top: 0;
  border-radius: 0;
  left: 0;
  background-color: #FFFFFF;
  padding: 1.875rem;
  border: solid 1px #666666;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.4); }
  @media only screen and (max-width: 39.9375em) {
    .reveal-modal {
      min-height: 100vh; } }
  .reveal-modal .column, .reveal-modal .columns {
    min-width: 0; }
  .reveal-modal > :first-child {
    margin-top: 0; }
  .reveal-modal > :last-child {
    margin-bottom: 0; }
  @media only screen and (min-width: 40em) {
    .reveal-modal {
      width: 80%;
      max-width: 80rem;
      left: 0;
      right: 0;
      margin: 0 auto; } }
  @media only screen and (min-width: 40em) {
    .reveal-modal {
      top: 6.25rem; } }
  .reveal-modal.radius {
    border-radius: 0; }
  .reveal-modal.round {
    border-radius: 1000px; }
  .reveal-modal.collapse {
    padding: 0; }
  @media only screen and (min-width: 40em) {
    .reveal-modal.tiny {
      width: 30%;
      max-width: 80rem;
      left: 0;
      right: 0;
      margin: 0 auto; } }
  @media only screen and (min-width: 40em) {
    .reveal-modal.small {
      width: 40%;
      max-width: 80rem;
      left: 0;
      right: 0;
      margin: 0 auto; } }
  @media only screen and (min-width: 40em) {
    .reveal-modal.medium {
      width: 60%;
      max-width: 80rem;
      left: 0;
      right: 0;
      margin: 0 auto; } }
  @media only screen and (min-width: 40em) {
    .reveal-modal.large {
      width: 70%;
      max-width: 80rem;
      left: 0;
      right: 0;
      margin: 0 auto; } }
  @media only screen and (min-width: 40em) {
    .reveal-modal.xlarge {
      width: 95%;
      max-width: 80rem;
      left: 0;
      right: 0;
      margin: 0 auto; } }
  .reveal-modal.full {
    top: 0;
    left: 0;
    height: 100%;
    height: 100vh;
    min-height: 100vh;
    max-width: none !important;
    margin-left: 0 !important; }
    @media only screen and (min-width: 40em) {
      .reveal-modal.full {
        width: 100%;
        max-width: 80rem;
        left: 0;
        right: 0;
        margin: 0 auto; } }
  .reveal-modal.toback {
    z-index: 1003; }
  .reveal-modal .close-reveal-modal {
    font-size: 2.5rem;
    line-height: 1;
    position: absolute;
    top: 0.625rem;
    right: 1.375rem;
    color: #AAAAAA;
    font-weight: bold;
    cursor: pointer; }

/**
 * React Select
 * ============
 * Created by Jed Watson and Joss Mackison for KeystoneJS, http://www.keystonejs.com/
 * https://twitter.com/jedwatson https://twitter.com/jossmackison https://twitter.com/keystonejs
 * MIT License: https://github.com/keystonejs/react-select
*/
@keyframes Select-animation-spin {
  to {
    transform: rotate(1turn); } }

@-webkit-keyframes Select-animation-spin {
  to {
    -webkit-transform: rotate(1turn); } }

.Select {
  position: relative; }
  .Select,
  .Select div,
  .Select input,
  .Select span {
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box; }
  .Select.is-disabled > .Select-control {
    background-color: #f9f9f9; }
    .Select.is-disabled > .Select-control:hover {
      box-shadow: none; }
  .Select.is-disabled .Select-arrow-zone {
    cursor: default;
    pointer-events: none; }

.Select-control {
  background-color: #FAFAFA;
  border-color: #d9d9d9 #ccc #b3b3b3;
  border-radius: 3px;
  border: 0px solid #ccc;
  color: #333;
  cursor: default;
  display: table;
  border-spacing: 0;
  border-collapse: separate;
  height: 36px;
  outline: none;
  overflow: hidden;
  position: relative;
  width: 100%; }
  .Select-control:hover {
    box-shadow: 0 1px 0 rgba(0, 0, 0, 0.06); }

.is-searchable.is-open > .Select-control {
  cursor: text; }

.is-open > .Select-control {
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
  background: #FAFAFA;
  border-color: #b3b3b3 #ccc #d9d9d9; }
  .is-open > .Select-control > .Select-arrow {
    border-color: transparent transparent #999;
    border-width: 0 5px 5px; }

.is-searchable.is-focused:not(.is-open) > .Select-control {
  cursor: text; }

.is-focused:not(.is-open) > .Select-control {
  border-color: #08c #0099e6 #0099e6;
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 0 5px -1px fade(#08c, 50%); }

.Select-placeholder,
:not(.Select--multi) > .Select-control .Select-value {
  bottom: 0;
  color: #aaa;
  left: 0;
  line-height: 36px;
  padding-left: 10px;
  padding-right: 10px;
  position: absolute;
  right: 0;
  top: 0;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap; }

.has-value:not(.Select--multi):not(.is-focused) > .Select-control > .Select-value .Select-value-label,
.has-value.is-pseudo-focused:not(.Select--multi) > .Select-control > .Select-value .Select-value-label {
  color: #333; }

.has-value:not(.Select--multi):not(.is-focused) > .Select-control > .Select-value a.Select-value-label,
.has-value.is-pseudo-focused:not(.Select--multi) > .Select-control > .Select-value a.Select-value-label {
  cursor: pointer;
  text-decoration: none; }
  .has-value:not(.Select--multi):not(.is-focused) > .Select-control > .Select-value a.Select-value-label:hover,
  .has-value.is-pseudo-focused:not(.Select--multi) > .Select-control > .Select-value a.Select-value-label:hover {
    color: #08c;
    text-decoration: underline; }

.Select-input {
  height: 36px;
  padding-left: 10px;
  padding-right: 10px;
  vertical-align: middle; }
  .Select-input > input {
    background: none transparent;
    border: 0 none;
    box-shadow: none;
    cursor: default;
    display: inline-block;
    font-family: inherit;
    font-size: inherit;
    height: 36px;
    margin: 0;
    outline: none;
    padding: 0;
    -webkit-appearance: none; }
    .is-focused .Select-input > input {
      cursor: text; }

.has-value.is-pseudo-focused .Select-input {
  opacity: 0; }

.Select-control:not(.is-searchable) > .Select-input {
  outline: none; }

.Select-loading-zone {
  cursor: pointer;
  display: table-cell;
  position: relative;
  text-align: center;
  vertical-align: middle;
  width: 16px; }

.Select-loading {
  -webkit-animation: Select-animation-spin 400ms infinite linear;
  -o-animation: Select-animation-spin 400ms infinite linear;
  animation: Select-animation-spin 400ms infinite linear;
  width: 16px;
  height: 16px;
  box-sizing: border-box;
  border-radius: 50%;
  border: 2px solid #ccc;
  border-right-color: #333;
  display: inline-block;
  position: relative;
  vertical-align: middle; }

.Select-clear-zone {
  -webkit-animation: Select-animation-fadeIn 200ms;
  -o-animation: Select-animation-fadeIn 200ms;
  animation: Select-animation-fadeIn 200ms;
  color: #999;
  cursor: pointer;
  display: table-cell;
  position: relative;
  text-align: center;
  vertical-align: middle;
  width: 18px; }
  .Select-clear-zone:hover {
    color: #D0021B; }

.Select-clear {
  display: inline-block;
  font-size: 18px;
  line-height: 1; }

.Select--multi .Select-clear-zone {
  width: 18px; }

.Select-arrow-zone {
  cursor: pointer;
  display: table-cell;
  position: relative;
  text-align: center;
  vertical-align: middle;
  width: 25px;
  padding-right: 5px; }

.Select-arrow {
  border-color: #999 transparent transparent;
  border-style: solid;
  border-width: 5px 5px 2.5px;
  display: inline-block;
  height: 0;
  width: 0; }

.is-open .Select-arrow,
.Select-arrow-zone:hover > .Select-arrow {
  border-top-color: #666; }

@-webkit-keyframes Select-animation-fadeIn {
  from {
    opacity: 0; }
  to {
    opacity: 1; } }

@keyframes Select-animation-fadeIn {
  from {
    opacity: 0; }
  to {
    opacity: 1; } }

.Select-menu-outer {
  border-bottom-right-radius: 3px;
  border-bottom-left-radius: 3px;
  background-color: #FAFAFA;
  border: 1px solid #ccc;
  border-top-color: #e3e3e3;
  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.06);
  box-sizing: border-box;
  margin-top: -1px;
  max-height: 200px;
  position: absolute;
  top: 100%;
  width: 100%;
  z-index: 1000;
  -webkit-overflow-scrolling: touch; }

.Select-menu {
  max-height: 198px;
  overflow-y: auto; }

.Select-option {
  box-sizing: border-box;
  background-color: #FAFAFA;
  color: #666666;
  cursor: pointer;
  display: block;
  padding: 8px 10px; }
  .Select-option:last-child {
    border-bottom-right-radius: 3px;
    border-bottom-left-radius: 3px; }
  .Select-option.is-focused {
    background-color: #017D6E;
    color: white; }
  .Select-option.is-selected {
    background-color: #FAFAFA;
    color: rgba(0, 0, 0, 0.75); }
  .Select-option.is-disabled {
    color: #cccccc;
    cursor: default; }

.Select-noresults {
  box-sizing: border-box;
  color: #999999;
  cursor: default;
  display: block;
  padding: 8px 10px; }

.Select--multi .Select-input {
  vertical-align: middle;
  margin-left: 10px;
  padding: 0; }

.Select--multi.has-value .Select-input {
  margin-left: 5px; }

.Select--multi .Select-value {
  background-color: #f2f9fc;
  border-radius: 2px;
  border: 1px solid #c9e6f2;
  color: #08c;
  display: inline-block;
  font-size: 0.9em;
  margin-left: 5px;
  margin-top: 5px;
  vertical-align: top; }

.Select--multi .Select-value-icon,
.Select--multi .Select-value-label {
  display: inline-block;
  vertical-align: middle; }

.Select--multi .Select-value-label {
  border-bottom-right-radius: 2px;
  border-top-right-radius: 2px;
  cursor: default;
  padding: 2px 5px; }

.Select--multi a.Select-value-label {
  color: #08c;
  cursor: pointer;
  text-decoration: none; }
  .Select--multi a.Select-value-label:hover {
    text-decoration: underline; }

.Select--multi .Select-value-icon {
  cursor: pointer;
  border-bottom-left-radius: 2px;
  border-top-left-radius: 2px;
  border-right: 1px solid #c9e6f2;
  padding: 1px 5px 3px; }
  .Select--multi .Select-value-icon:hover, .Select--multi .Select-value-icon:focus {
    background-color: #ddeff7;
    color: #0077b3; }
  .Select--multi .Select-value-icon:active {
    background-color: #c9e6f2; }

.Select--multi.is-disabled .Select-value {
  background-color: #fcfcfc;
  border: 1px solid #e3e3e3;
  color: #333; }

.Select--multi.is-disabled .Select-value-icon {
  cursor: not-allowed;
  border-right: 1px solid #e3e3e3; }
  .Select--multi.is-disabled .Select-value-icon:hover, .Select--multi.is-disabled .Select-value-icon:focus, .Select--multi.is-disabled .Select-value-icon:active {
    background-color: #fcfcfc; }

@keyframes Select-animation-spin {
  to {
    transform: rotate(1turn); } }

@-webkit-keyframes Select-animation-spin {
  to {
    -webkit-transform: rotate(1turn); } }

table.checkout--kco__cart th.price,
table.checkout--kco__cart td.price, table.checkout--kco__cart .checkout__qty {
  font-variant-numeric: tabular-nums;
  -moz-font-feature-settings: "tnum";
  -webkit-font-feature-settings: "tnum";
  font-feature-settings: "tnum"; }

.freight-option > label input[type="radio"], .checkout__payment-methods-list .payment-method label input[type="radio"] {
  opacity: 0; }

.freight-option > label input[type="radio"] + span, .checkout__payment-methods-list .payment-method label input[type="radio"] + span {
  position: relative; }
  .freight-option > label input[type="radio"] + span:before, .checkout__payment-methods-list .payment-method label input[type="radio"] + span:before, .freight-option > label input[type="radio"] + span:after, .checkout__payment-methods-list .payment-method label input[type="radio"] + span:after {
    content: '.';
    box-sizing: content-box;
    color: transparent;
    display: block;
    position: absolute;
    overflow: hidden;
    top: 50%;
    margin-top: -7px;
    left: -1.375rem;
    width: 14px;
    height: 14px;
    border-radius: 1000px;
    opacity: 1;
    -webkit-transition: all 300ms cubic-bezier(0.65, 0.05, 0.36, 1);
    -moz-transition: all 300ms cubic-bezier(0.65, 0.05, 0.36, 1);
    transition: all 300ms cubic-bezier(0.65, 0.05, 0.36, 1); }
  .freight-option > label input[type="radio"] + span:before, .checkout__payment-methods-list .payment-method label input[type="radio"] + span:before {
    background-color: #017D6E;
    -webkit-transform: scale(0.8);
    -moz-transform: scale(0.8);
    -ms-transform: scale(0.8);
    transform: scale(0.8); }
  .freight-option > label input[type="radio"] + span:after, .checkout__payment-methods-list .payment-method label input[type="radio"] + span:after {
    background-color: white;
    box-shadow: black 0 0 1px, inset black 0 0 1px;
    -webkit-transform: scale(1);
    -moz-transform: scale(1);
    -ms-transform: scale(1);
    transform: scale(1); }

.freight-option > label input[type="radio"]:checked + span:before, .checkout__payment-methods-list .payment-method label input[type="radio"]:checked + span:before {
  -webkit-transform: scale(1);
  -moz-transform: scale(1);
  -ms-transform: scale(1);
  transform: scale(1); }

.freight-option > label input[type="radio"]:checked + span:after, .checkout__payment-methods-list .payment-method label input[type="radio"]:checked + span:after {
  -webkit-transform: scale(0.4);
  -moz-transform: scale(0.4);
  -ms-transform: scale(0.4);
  transform: scale(0.4);
  box-shadow: transparent 0 0 1px, inset transparent 0 0 1px; }

input[type="radio"][disabled] + span .freight-option > label:before, input[type="radio"][disabled] + span .checkout__payment-methods-list .payment-method label:before, .checkout__payment-methods-list .payment-method input[type="radio"][disabled] + span label:before {
  background-color: #3f3f3f; }

form:invalid .js-kasse-one-submit {
  color: white;
  background-color: #767676;
  pointer-events: none;
  -ms-user-select: none;
  /* IE/Edge */
  user-select: none;
  opacity: 0.6; }

.checkout__step--shipping {
  position: relative;
  z-index: 2; }

.freight--pickup-point {
  clear: both; }

.Select-control {
  font-size: 0.875rem;
  margin-bottom: 1rem;
  margin-left: 1px;
  margin-right: 1px;
  box-shadow: #cccccc 0 0 0 1px; }
  .Select-control:hover {
    box-shadow: #cccccc 0 0 0 1px, rgba(0, 0, 0, 0.1) 0 5px 10px; }

.Select-option {
  position: relative;
  font-size: 0.875rem;
  padding-left: 1.6em; }

.Select-option.is-selected:before {
  content: '✓';
  transform: scale(1.2);
  position: absolute;
  top: 0.5rem;
  text-align: center;
  left: 0;
  width: 1.6em; }

.Select-option.is-selected:hover {
  color: white;
  background-color: #017D6E; }

.Select-menu-outer {
  border-width: 0px;
  margin-left: 1px;
  margin-right: 1px; }

.Select-menu {
  border-bottom-right-radius: 3px;
  border-bottom-left-radius: 3px;
  box-shadow: #cccccc 0 0 0 1px, rgba(0, 0, 0, 0.1) 0 5px 10px; }

.checkout--kco .js-attach_comment {
  padding-left: 0; }
  .checkout--kco .js-attach_comment:before {
    /* use !important to prevent issues with browser extensions that change fonts */
    font-family: 'pioneer' !important;
    speak: none;
    font-style: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    line-height: 1;
    /* Better Font Rendering =========== */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    content: ""; }

#klarna-checkout-container {
  position: relative;
  max-width: 664px;
  background-color: white; }

.checkout--kco__overlay {
  display: block;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  color: #757575;
  text-align: center;
  -webkit-user-select: none;
  user-select: none;
  z-index: 1; }
  .checkout--kco__overlay, .checkout--kco__overlay + * {
    -webkit-transform-origin: 50% 0%;
    -moz-transform-origin: 50% 0%;
    -ms-transform-origin: 50% 0%;
    -o-transform-origin: 50% 0%;
    transform-origin: 50% 0%; }
  .checkout--kco__overlay em {
    display: block;
    font-size: 1rem;
    position: absolute;
    top: 0;
    left: 0.625rem;
    right: 0.625rem; }

.freight-option {
  position: relative; }
  .freight-option:before {
    border: 1px rgba(1, 125, 110, 0.6) solid;
    border-radius: 6px;
    content: '';
    display: block;
    position: absolute;
    top: -0.46875rem;
    left: 0;
    right: 0;
    bottom: -0.23438rem;
    opacity: 0;
    -webkit-transform: scaleX(0.98) scaleY(0.8);
    -moz-transform: scaleX(0.98) scaleY(0.8);
    -ms-transform: scaleX(0.98) scaleY(0.8);
    transform: scaleX(0.98) scaleY(0.8);
    -webkit-transition: all 300ms cubic-bezier(0.65, 0.05, 0.36, 1);
    -moz-transition: all 300ms cubic-bezier(0.65, 0.05, 0.36, 1);
    transition: all 300ms cubic-bezier(0.65, 0.05, 0.36, 1); }
  .freight-option.active:before {
    opacity: 1;
    -webkit-transform: scaleX(1) scaleY(1);
    -moz-transform: scaleX(1) scaleY(1);
    -ms-transform: scaleX(1) scaleY(1);
    transform: scaleX(1) scaleY(1); }
  .freight-option > label {
    position: relative; }
  .freight-option.inactive > * {
    opacity: 0.3; }

.kco_shipping_show_more_options {
  display: block;
  font-size: 0.875rem;
  margin-left: 3px;
  padding-bottom: .5rem;
  padding-top: .75rem;
  padding-left: 1.5rem; }

.checkout--kco__payment-options .control-group, .customer-type .control-group {
  padding-bottom: 0.2rem;
  box-shadow-bottom: 0 1px 0 rgba(51, 51, 51, 0.2);
  width: 100%; }
  .checkout--kco__payment-options .control-group label, .customer-type .control-group label {
    -webkit-transition: all 150ms ease;
    -moz-transition: all 150ms ease;
    transition: all 150ms ease;
    font-weight: bold;
    opacity: 0.6;
    margin-right: 0.5rem; }
  .checkout--kco__payment-options .control-group :checked + label, .customer-type .control-group :checked + label {
    opacity: 1;
    text-decoration: underline; }

.reveal-modal {
  position: fixed;
  top: 16px;
  background-color: #ffffff; }
  .reveal-modal .close-reveal-modal {
    color: #757575; }
    .reveal-modal .close-reveal-modal:hover {
      color: #eb0000; }
  @media only screen and (max-width: 39.9375em) {
    .reveal-modal {
      min-height: initial !important; } }

.checkout--kco__page-header {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; }

.checkout--kco__custom-intro {
  position: relative;
  margin-bottom: 2em; }
  .checkout--kco__custom-intro:last-child {
    border: none; }

.checkout--kco {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; }
  .checkout--kco .price-diff {
    position: relative;
    white-space: nowrap; }
  .checkout--kco .current-price {
    position: relative;
    opacity: 0.75; }
  .checkout--kco .pending-price {
    position: absolute;
    right: 0;
    top: 100%;
    line-height: 1em;
    height: 1em; }
  .checkout--kco .checkout__step__headline {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; }
  .checkout--kco.checkout__steps {
    padding: 0;
    background-color: transparent; }
  .checkout--kco .checkout__step {
    padding-top: 1rem;
    padding-bottom: 1rem; }
    .checkout--kco .checkout__step:last-child {
      border: none; }
  .checkout--kco .checkout__bottom-toolbar > .columns {
    margin-bottom: 0.5em; }
  .checkout--kco .checkout__step__headline {
    font-weight: bold;
    width: 100%;
    margin: 0 0 .5rem 0;
    padding: 0 0 .5rem 0;
    height: auto; }
  .checkout--kco .kasse_one_step_number {
    margin-top: 0;
    margin-bottom: 0; }
  .checkout--kco .addon_buttons {
    text-align: right; }
    .checkout--kco .addon_buttons .edit_step {
      float: none;
      display: inline-block;
      text-decoration: none;
      margin-left: .5rem;
      padding-right: 1rem;
      background-color: #e7e7e7;
      border-color: #747474;
      color: #535353;
      -webkit-transition: all 300ms ease;
      -moz-transition: all 300ms ease;
      transition: all 300ms ease; }
      .checkout--kco .addon_buttons .edit_step:hover {
        background-color: #b1b1b1;
        color: #2f2f2f; }
      .checkout--kco .addon_buttons .edit_step:first-child {
        margin-left: 0; }
  .checkout--kco .checkout-kco__address-form input, .checkout--kco .checkout-kco__address-form button, .checkout--kco .checkout-kco__address-form select {
    border-radius: 3px; }
  .checkout--kco .checkout-kco__address-form .checkout--kco__shipping-country select[disabled] {
    display: none; }
  .checkout--kco button,
  .checkout--kco .button,
  .checkout--kco input[type="number"],
  .checkout--kco .edit_step {
    border-radius: 3px; }
  .checkout--kco button:not(.remove_rabatt):not(.remove_giftcard),
  .checkout--kco .button:not(.remove_rabatt):not(.remove_giftcard),
  .checkout--kco input[type=submit]:not(.remove_rabatt):not(.remove_giftcard),
  .checkout--kco .edit_step:not(.remove_rabatt):not(.remove_giftcard) {
    font-weight: bold;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), inset 0 -3px 0 rgba(0, 0, 0, 0.1), 0 2px 5px rgba(0, 0, 0, 0.1); }
    .checkout--kco button:not(.remove_rabatt):not(.remove_giftcard):active,
    .checkout--kco .button:not(.remove_rabatt):not(.remove_giftcard):active,
    .checkout--kco input[type=submit]:not(.remove_rabatt):not(.remove_giftcard):active,
    .checkout--kco .edit_step:not(.remove_rabatt):not(.remove_giftcard):active {
      box-shadow: inset 0 3px 0 rgba(0, 0, 0, 0.1);
      outline: none; }
  .checkout--kco .next-step-btn {
    font-size: 0.875rem; }
  .checkout--kco .edit_step {
    font-size: 0.8125rem; }
    .checkout--kco .edit_step .icon-add {
      line-height: 1.6rem;
      /* to fixed a messed up rotate animation */
      -webkit-transition: all 150ms ease;
      -moz-transition: all 150ms ease;
      transition: all 150ms ease; }
    .checkout--kco .edit_step.disabled {
      display: none;
      opacity: 0.3;
      pointer-events: none;
      -ms-user-select: none;
      /* IE/Edge */
      user-select: none; }
  .checkout--kco input[type="text"]:focus, .checkout--kco input[type="text"].focus,
  .checkout--kco input[type="number"]:focus,
  .checkout--kco input[type="number"].focus,
  .checkout--kco input[type="tel"]:focus,
  .checkout--kco input[type="tel"].focus,
  .checkout--kco input[type="email"]:focus,
  .checkout--kco input[type="email"].focus {
    border: 1px solid #007bbb;
    box-shadow: inset 0 1px 1px 0 rgba(0, 0, 0, 0.17), inset 0 1px 3px rgba(0, 0, 0, 0.06), 0 0 3px 1px #007bbb; }
  .checkout--kco .zip::-webkit-inner-spin-button, .checkout--kco .zip::-webkit-outer-spin-button {
    -webkit-appearance: none;
    margin: 0; }

.checkout--kco__shipping-zip {
  position: relative; }
  .checkout--kco__shipping-zip label {
    position: absolute;
    right: 1.5rem;
    top: 50%;
    text-transform: uppercase;
    margin-top: -1.125rem;
    font-size: 0.875rem;
    font-weight: 500;
    opacity: 0.5;
    pointer-events: none;
    color: rgba(0, 0, 0, 0.5);
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap;
    left: 5em;
    left: 7ch;
    text-align: right;
    -webkit-transform-origin: 90% 50%;
    -moz-transform-origin: 90% 50%;
    -ms-transform-origin: 90% 50%;
    -o-transform-origin: 90% 50%;
    transform-origin: 90% 50%; }
  .checkout--kco__shipping-zip input.invalid:not(:focus) {
    border: 1px solid #eb0000;
    color: #eb0000;
    box-shadow: inset 0 1px 1px 0 rgba(0, 0, 0, 0.17), inset 0 1px 3px rgba(0, 0, 0, 0.06), 0 0 3px 1px #eb0000; }

.checkout__step--kco-window:only-child .checkout__step__contents {
  max-width: none;
  padding: 0; }

.kco-payment-wrapper, .alternate-payment-wrapper {
  min-height: 300px; }

.kco-payment-wrapper {
  position: relative;
  margin: -20px -12px -12px -12px; }

.alternate-payment-wrapper .checkout__step__headline {
  margin-left: 0.5625rem; }

.checkout__steps--iconized .kasse_one_step_number {
  width: 2.5rem;
  height: 2.5rem;
  line-height: 2.5rem;
  margin-left: 1.25rem;
  margin-right: 1rem;
  box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.5);
  position: relative; }
  .checkout__steps--iconized .kasse_one_step_number span {
    display: inline-block;
    position: absolute;
    top: 7px;
    left: 7px;
    right: 7px;
    bottom: 7px;
    z-index: 1; }
  .checkout__steps--iconized .kasse_one_step_number .icon-loading-indicator {
    display: block;
    height: 100%;
    width: 100%; }
    .checkout__steps--iconized .kasse_one_step_number .icon-loading-indicator:before {
      margin: 0px;
      height: 100%;
      width: 100%; }
  .checkout__steps--iconized .kasse_one_step_number i {
    text-shadow: 0 0 5px rgba(0, 0, 0, 0.5);
    color: #ffffff;
    display: inline-block; }

.checkout__steps--iconized .checkout__step__headline {
  line-height: 2.5rem; }

.checkout--kco__wrapper {
  position: relative;
  min-height: 210px;
  min-height: 50vh; }
  .checkout--kco__wrapper .activity-indicator {
    pointer-events: none;
    -ms-user-select: none;
    /* IE/Edge */
    user-select: none;
    position: fixed;
    opacity: 0;
    top: 50%;
    left: 50%;
    z-index: 300;
    height: 38px;
    width: 38px;
    border-radius: 1000px;
    box-shadow: rgba(0, 0, 0, 0.5) 0 0 1px, rgba(0, 0, 0, 0.3) 0 2px 6px;
    background-color: #017D6E;
    padding: 4px;
    z-index: 400;
    margin-top: -19px;
    margin-left: -19px;
    will-change: opacity, transform;
    -webkit-transform: scale(0.6);
    -moz-transform: scale(0.6);
    -ms-transform: scale(0.6);
    transform: scale(0.6);
    -webkit-transition: all 300ms cubic-bezier(0.65, 0.05, 0.36, 1);
    -moz-transition: all 300ms cubic-bezier(0.65, 0.05, 0.36, 1);
    transition: all 300ms cubic-bezier(0.65, 0.05, 0.36, 1); }
    .checkout--kco__wrapper .activity-indicator .svg {
      display: block;
      height: 100%;
      width: 100%;
      -webkit-animation: activity-rotate 600ms linear infinite;
      -o-animation: activity-rotate 600ms linear infinite;
      animation: activity-rotate 600ms linear infinite; }
      .checkout--kco__wrapper .activity-indicator .svg:before {
        /* We cannot run this using sassc yet
    @include svg((
        viewBox: 0 0 24 24
      )) {
        @include svg('defs') {
          @include svg('radialGradient', (
            cx: '25%',
            cy: '25%',
            id: 'a'
          )) {
                @include svg('stop', (
                  stop-color: $activity-color,
                  offset: '10%'
                ));
                @include svg('stop', (
                  stop-color: $activity-color,
                  stop-opacity: 0.1,
                  offset: '100%'
                ));
          };
        }
        @include svg('circle', (
            fill: none,
            cx: 12,
            cy: 12,
            r: 10,
            //stroke-width: 2,
            stroke: "url(#a)"
        ));
      }
      //*/
        content: url("data:image/svg+xml;charset=utf8,%3Csvg%20viewBox%3D%220%200%2024%2024%22%20xmlns%3D%22http%3A%2F%2Fwww%2Ew3%2Eorg%2F2000%2Fsvg%22%3E%3Cdefs%20%3E%3CradialGradient%20cx%3D%2225%25%22%20cy%3D%2225%25%22%20id%3D%22a%22%3E%3Cstop%20stop%2Dcolor%3D%22%23FFFFFF%22%20offset%3D%2210%25%22%2F%3E%3Cstop%20stop%2Dcolor%3D%22%23FFFFFF%22%20stop%2Dopacity%3D%220%2E1%22%20offset%3D%22100%25%22%2F%3E%3C%2FradialGradient%3E%3C%2Fdefs%3E%3Ccircle%20fill%3D%22none%22%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%2210%22%20stroke%3D%22url%28%23a%29%22%2F%3E%3C%2Fsvg%3E"); }
    .checkout--kco__wrapper .activity-indicator + div {
      -webkit-transition: opacity 300ms cubic-bezier(0.65, 0.05, 0.36, 1);
      -moz-transition: opacity 300ms cubic-bezier(0.65, 0.05, 0.36, 1);
      transition: opacity 300ms cubic-bezier(0.65, 0.05, 0.36, 1);
      opacity: 1; }
  .checkout--kco__wrapper.is-loading, .checkout--kco__wrapper.is-uploading {
    cursor: progress; }
    .checkout--kco__wrapper.is-loading .activity-indicator, .checkout--kco__wrapper.is-uploading .activity-indicator {
      -webkit-transform: scale(1);
      -moz-transform: scale(1);
      -ms-transform: scale(1);
      transform: scale(1);
      opacity: 1; }
      .checkout--kco__wrapper.is-loading .activity-indicator + div, .checkout--kco__wrapper.is-uploading .activity-indicator + div {
        -webkit-transition: opacity 3000ms ease-out;
        -moz-transition: opacity 3000ms ease-out;
        transition: opacity 3000ms ease-out;
        pointer-events: none;
        -ms-user-select: none;
        /* IE/Edge */
        user-select: none;
        opacity: 0.25; }

.kasse_one_step_number {
  position: relative; }

.icon-loading-indicator.is-loading {
  -webkit-animation: activity-rotate 600ms linear infinite;
  -o-animation: activity-rotate 600ms linear infinite;
  animation: activity-rotate 600ms linear infinite;
  display: inline-block;
  /*width: 2rem;
    width: rem-calc(24);
    height: 2rem;
    height: rem-calc(24);
    font-size: 1rem;
    font-size: rem-calc(12);
    line-height: 2rem;
    line-height: rem-calc(24);
    */ }
  .icon-loading-indicator.is-loading:before {
    display: inline-block;
    height: 1em;
    width: 1em;
    margin: .3em;
    /* We cannot run this using sassc yet
    @include svg((
        viewBox: 0 0 24 24
      )) {
        @include svg('defs') {
          @include svg('radialGradient', (
            cx: '25%',
            cy: '25%',
            id: 'a'
          )) {
                @include svg('stop', (
                  stop-color: $activity-color,
                  offset: '10%'
                ));
                @include svg('stop', (
                  stop-color: $activity-color,
                  stop-opacity: 0.1,
                  offset: '100%'
                ));
          };
        }
        @include svg('circle', (
            fill: none,
            cx: 12,
            cy: 12,
            r: 10,
            //stroke-width: 2,
            stroke: "url(#a)"
        ));
      }
      //*/
    content: url("data:image/svg+xml;charset=utf8,%3Csvg%20viewBox%3D%220%200%2024%2024%22%20xmlns%3D%22http%3A%2F%2Fwww%2Ew3%2Eorg%2F2000%2Fsvg%22%3E%3Cdefs%20%3E%3CradialGradient%20cx%3D%2225%25%22%20cy%3D%2225%25%22%20id%3D%22a%22%3E%3Cstop%20stop%2Dcolor%3D%22%23FFFFFF%22%20offset%3D%2210%25%22%2F%3E%3Cstop%20stop%2Dcolor%3D%22%23FFFFFF%22%20stop%2Dopacity%3D%220%2E1%22%20offset%3D%22100%25%22%2F%3E%3C%2FradialGradient%3E%3C%2Fdefs%3E%3Ccircle%20fill%3D%22none%22%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%2210%22%20stroke%3D%22url%28%23a%29%22%2F%3E%3C%2Fsvg%3E"); }

table.checkout--kco__cart {
  outline: 1px solid rgba(51, 51, 51, 0.1); }
  table.checkout--kco__cart th,
  table.checkout--kco__cart td {
    font-size: 0.8125rem;
    line-height: 1.5;
    padding: 0.5rem 0.75rem;
    border: 1px solid rgba(51, 51, 51, 0.05); }
    table.checkout--kco__cart th:first-child,
    table.checkout--kco__cart td:first-child {
      border-left: none; }
    table.checkout--kco__cart th.price,
    table.checkout--kco__cart td.price {
      white-space: nowrap;
      width: 1px; }
  table.checkout--kco__cart thead th {
    box-shadow: 0 3px 0 rgba(0, 0, 0, 0.04);
    padding: .75rem;
    border-bottom: 1px solid rgba(51, 51, 51, 0.05);
    border-top: 1px solid rgba(255, 255, 255, 0.5); }
  table.checkout--kco__cart tbody tr:last-child td {
    box-shadow: 0 3px 0 rgba(0, 0, 0, 0.02); }
  table.checkout--kco__cart tfoot.sum td {
    border-top: 1px solid rgba(255, 255, 255, 0.5);
    border-bottom: none;
    box-shadow: 0 3px 0 rgba(0, 0, 0, 0.04); }
  table.checkout--kco__cart .mini-img {
    text-align: center;
    border-right: none;
    display: inline-block;
    width: 0;
    padding: 0; }
    table.checkout--kco__cart .mini-img img {
      height: 2.21875rem;
      margin: 0; }
  table.checkout--kco__cart .discount .mini-img,
  table.checkout--kco__cart .shipping .mini-img,
  table.checkout--kco__cart .giftcard .mini-img {
    position: relative; }
    table.checkout--kco__cart .discount .mini-img [class^="icon-"],
    table.checkout--kco__cart .shipping .mini-img [class^="icon-"],
    table.checkout--kco__cart .giftcard .mini-img [class^="icon-"] {
      position: absolute;
      left: 0.75rem;
      top: 1px; }
  table.checkout--kco__cart .discount .product-name,
  table.checkout--kco__cart .shipping .product-name,
  table.checkout--kco__cart .giftcard .product-name {
    text-indent: 1.5rem; }
  table.checkout--kco__cart .discount__rate {
    border-radius: 4px;
    font-size: 0.6875rem;
    font-weight: normal;
    display: inline-block;
    margin: -0.375rem 0.375rem 0 0.375rem;
    padding: 0.125rem 0.3125rem;
    color: #BA1136;
    background-color: rgba(186, 17, 54, 0.25); }
  table.checkout--kco__cart .attributes {
    font-weight: normal; }
  table.checkout--kco__cart .product-name {
    border-left: none;
    position: relative; }
  table.checkout--kco__cart .checkout__qty {
    height: 2rem;
    padding: .25rem 0 .25rem .25rem;
    box-shadow: none;
    text-align: center;
    -webkit-transition: all 300ms ease;
    -moz-transition: all 300ms ease;
    transition: all 300ms ease; }
    table.checkout--kco__cart .checkout__qty.primary-color-bg:focus {
      border-color: #017D6E;
      box-shadow: inset 0 1px 1px 0 rgba(0, 0, 0, 0.17), inset 0 1px 3px rgba(0, 0, 0, 0.06), 0 0 3px 1px #017D6E; }
  table.checkout--kco__cart .subtaxes {
    opacity: 0.6;
    font-style: italic;
    font-weight: normal; }
  table.checkout--kco__cart .service td,
  table.checkout--kco__cart .discount td,
  table.checkout--kco__cart .giftcard td,
  table.checkout--kco__cart .shipping td {
    border-right: none;
    border-left: none; }

.checkout--kco__freight-protip {
  bottom: 100%;
  font-size: 12px;
  color: #616161;
  background-color: #e0e0e0;
  border-radius: 5px;
  margin-bottom: -0.5rem;
  padding: 4px 7px;
  position: relative; }
  .checkout--kco__freight-protip strong {
    color: #4f4f4f;
    white-space: nowrap; }
  .checkout--kco__freight-protip:after {
    content: "";
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    border-color: #e0e0e0 transparent transparent transparent;
    border-top-style: solid;
    position: absolute;
    top: 100%;
    left: 8px; }

.checkout--kco__payment-notice {
  font-style: italic; }

.checkout__product-name-wrap {
  display: none; }

.product-name--has-attributes:after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  z-index: 2;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 0 0.625rem 0.625rem 0;
  border-color: transparent #BA1136 transparent transparent; }

.product-name--has-attributes:hover, .product-name--has-attributes:focus {
  outline: none; }
  .product-name--has-attributes:hover .checkout__product-name-wrap, .product-name--has-attributes:focus .checkout__product-name-wrap {
    display: block;
    position: absolute;
    z-index: 3;
    top: 0;
    left: 0;
    width: 100%;
    padding: 0.82812rem 0.6875rem;
    border: 1px solid whitesmoke;
    background: #ffffff;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); }

.checkout--kco__corporate-link {
  margin-bottom: 1rem; }

.checkout--kco__keep-shopping {
  margin-left: .5rem; }

.checkout--kco__payment-notice {
  display: block;
  padding-top: 0.4375rem;
  padding-bottom: 0.4375rem; }

.kco_shipping_options {
  margin-top: 0.46875rem;
  margin-bottom: 0.46875rem; }
  .kco_shipping_options .freight-option {
    border-bottom: none; }
    .kco_shipping_options .freight-option label {
      padding-bottom: 0.9375rem;
      padding-top: 0.9375rem;
      padding-left: 1.8125rem;
      padding-right: 0.9375rem; }

.checkout__payment-methods-list {
  list-style: none; }
  .checkout__payment-methods-list > :first-child {
    margin-bottom: 0.23438rem; }
  .checkout__payment-methods-list .payment-method {
    display: block;
    position: relative; }
    .checkout__payment-methods-list .payment-method:first-of-type {
      -webkit-transition: box-shadow 300ms cubic-bezier(0.65, 0.05, 0.36, 1);
      -moz-transition: box-shadow 300ms cubic-bezier(0.65, 0.05, 0.36, 1);
      transition: box-shadow 300ms cubic-bezier(0.65, 0.05, 0.36, 1);
      box-shadow: 0 -1px 0 rgba(51, 51, 51, 0); }
      .checkout__payment-methods-list .payment-method:first-of-type:first-of-type:not(.payment-method--active) {
        box-shadow: 0 -1px 0 rgba(51, 51, 51, 0.2); }
    .checkout__payment-methods-list .payment-method:before {
      border: 1px rgba(1, 125, 110, 0.6) solid;
      border-radius: 6px;
      content: '';
      background: #ffffff;
      display: block;
      position: absolute;
      top: -0.23438rem;
      left: 0;
      right: 0;
      bottom: -0.23438rem;
      opacity: 0;
      -webkit-transform: scaleX(0.98) scaleY(0.8);
      -moz-transform: scaleX(0.98) scaleY(0.8);
      -ms-transform: scaleX(0.98) scaleY(0.8);
      transform: scaleX(0.98) scaleY(0.8);
      -webkit-transition: all 300ms cubic-bezier(0.65, 0.05, 0.36, 1);
      -moz-transition: all 300ms cubic-bezier(0.65, 0.05, 0.36, 1);
      transition: all 300ms cubic-bezier(0.65, 0.05, 0.36, 1); }
    .checkout__payment-methods-list .payment-method.payment-method--active:before {
      opacity: 1;
      -webkit-transform: scaleX(1) scaleY(1);
      -moz-transform: scaleX(1) scaleY(1);
      -ms-transform: scaleX(1) scaleY(1);
      transform: scaleX(1) scaleY(1); }
    .checkout__payment-methods-list .payment-method label {
      display: block;
      padding-left: 1.8125rem;
      padding-right: 1.875rem;
      padding-top: 0.46875rem;
      padding-bottom: 0.46875rem;
      position: relative; }
      .checkout__payment-methods-list .payment-method label span {
        height: 1.375rem;
        display: inline-block; }
      .checkout__payment-methods-list .payment-method label input {
        display: none; }
    .checkout__payment-methods-list .payment-method img {
      max-width: 150px;
      max-height: 30px;
      margin-right: 0.2rem; }
  .checkout__payment-methods-list input[type="radio"] {
    margin-bottom: 0;
    margin-right: .5rem; }

.checkout__payment-methods-prefix, .payment-method {
  font-size: 0.9375rem; }

.checkout--kco__alternate-payment input.check-validity:invalid:not(:focus), .checkout--kco__alternate-payment input.check-validity.invalid:not(:focus) {
  border: 1px solid #eb0000;
  color: #eb0000;
  box-shadow: inset 0 1px 1px 0 rgba(0, 0, 0, 0.17), inset 0 1px 3px rgba(0, 0, 0, 0.06), 0 0 3px 1px #eb0000; }

.kco-payment-wrapper {
  margin-top: 0; }

@media only screen and (max-width: 39.9375em) {
  .checkout__bottom-toolbar-right button.js-checkout_update {
    top: -0.9375rem !important; }
  .checkout__payment-methods-list {
    padding-left: 0.9375rem;
    padding-right: 0.9375rem; } }

@media only screen and (min-width: 27em) {
  .checkout--kco__payment .control-group {
    width: 100%; }
  .checkout--kcos .addon_buttons {
    margin: 0;
    position: absolute;
    top: 1.4375rem;
    right: 0; }
    .checkout--kcos .addon_buttons .edit_step.disabled {
      display: inline-block !important; } }

@media only screen and (min-width: 40em) {
  .row .row.checkout-kco__address-form {
    padding-right: 0.9375rem; }
  .row .checkout--kco__freight-options {
    padding-left: 0.9375rem; }
  .checkout--kco__freight {
    box-shadow: inset 1px 0 0 rgba(51, 51, 51, 0.2);
    margin-bottom: 0.9375rem; }
  .checkout--kco__payment-alternatives {
    margin-left: 0.9375rem;
    margin-right: 0.9375rem; }
  .checkout__payment-methods-list {
    padding-left: 0.9375rem;
    padding-right: 0.9375rem; }
  .checkout--kco .addon_buttons {
    top: 1.375rem;
    padding-right: 1.875rem; }
  table.checkout--kco__cart .mini-img {
    width: 75px;
    display: table-cell; }
    table.checkout--kco__cart .mini-img img {
      display: inline-block; }
  table.checkout--kco__cart .discount .mini-img [class^="icon-"],
  table.checkout--kco__cart .shipping .mini-img [class^="icon-"],
  table.checkout--kco__cart .giftcard .mini-img [class^="icon-"] {
    position: relative;
    left: auto;
    top: auto; }
  table.checkout--kco__cart .discount .product-name,
  table.checkout--kco__cart .shipping .product-name,
  table.checkout--kco__cart .giftcard .product-name {
    text-indent: 0; }
  table.checkout--kco__cart .product-name {
    font-weight: bold; }
  .checkout__step__contents {
    padding: 0 1.25rem 0 1.25rem; }
  .checkout--kco__overlay {
    left: 1.8125rem; }
  .checkout--kco__payment {
    box-shadow: inset #ffffff 0 30px 0, inset #ffffff 0 -30px 0, inset rgba(51, 51, 51, 0.2) 1px 1px 0; }
  .kco-payment-bordered-wrapper {
    margin-left: .5rem;
    margin-top: -1.15rem;
    min-height: 300px; }
  .kco-payment-wrapper, .alternate-payment-wrapper {
    min-height: 300px;
    background-color: #ffffff;
    margin: 0; }
  .alternate-payment-wrapper {
    margin-top: -1.5rem; }
    .alternate-payment-wrapper .checkout__step__headline {
      margin-top: -2rem;
      margin-bottom: 0.3125rem;
      margin-left: 0.5625rem; } }

.js-attach_comment {
  display: block; }

.checkout__bottom-toolbar-right {
  position: relative; }
  .checkout__bottom-toolbar-right button.js-checkout_update {
    position: absolute;
    top: 0px;
    right: 0.9375rem; }

.checkout--kco__freight-options {
  position: relative;
  min-height: 6rem;
  margin-top: 0; }

@media only screen and (min-width: 64em) {
  .row .row.checkout-kco__address-form, .checkout__payment-methods-list {
    padding-right: 1.875rem; }
  .row .checkout--kco__freight-options, .alternate-payment-wrapper {
    padding-left: 1.875rem; }
  .submit-freight-details {
    width: 100%; }
  .checkout--kco__corporate-link {
    margin-bottom: 0; } }

/**
 * Comments styling, courtesy of
 * http://refills.bourbon.io/
 */
.comment {
  display: table;
  width: 100%;
  margin-bottom: 1.5rem;
  padding-bottom: 1em;
  border-bottom: 1px solid rgba(51, 51, 51, 0.1); }
  .comment:hover .comment-avatar {
    border: 1px solid #919191; }

.comment-image,
.comment-content {
  display: table-cell;
  vertical-align: top; }

.comment-image {
  padding-right: 0.7em; }
  .comment-image img {
    width: 30px;
    height: auto;
    display: block;
    max-width: none; }

/**
 * Circular avatars
 * Courtesy of http://codepen.io/bradenhamm/pen/yDuka
 */
.comment-avatar {
  line-height: 0;
  /* remove line-height */
  display: inline-block;
  /* circle wraps image */
  border-radius: 50%;
  /* relative value */
  -webkit-transition: border 300ms ease;
  -moz-transition: border 300ms ease;
  transition: border 300ms ease;
  height: 38px;
  width: 38px;
  border: 1px solid #ddd;
  padding: 3px; }

.comment-avatar img {
  border-radius: 50%;
  /* relative value for
                   adjustable image size */ }

.comment-content {
  width: 100%; }
  .comment-content .comment-content__title {
    font-size: 1.25rem;
    margin-bottom: .5em; }
  .comment-content p {
    margin-bottom: .5em; }
  .comment-content .comment-detail {
    font-style: italic;
    font-size: .9em;
    color: rgba(51, 51, 51, 0.5); }

.comment-star-rating i {
  color: #BA1136;
  margin-right: -2px; }

.comment-star-rating {
  display: inline;
  margin: 0; }
  .comment-star-rating figcaption {
    display: inline; }

.comment-star-rating-count {
  display: none; }

.comment-detail .comment-star-rating {
  opacity: .5; }
  .comment-detail .comment-star-rating figcaption {
    display: none; }

.comments-form {
  padding-top: 1rem; }

.comments-form-wrapper {
  padding-bottom: 1rem; }

.comments-form-error:empty,
.comment-form-validation-errors:empty {
  display: none; }

.comments-guidelines {
  font-size: 0.875rem;
  border-top: 1px solid #dddddd;
  padding-top: 2rem; }
  .comments-guidelines p, .comments-guidelines li {
    font-size: 0.875rem; }

#produkt_anmeldelser_form_validert {
  width: 100%;
  max-width: none; }

@media only screen and (min-width: 40em) {
  .comment-image img {
    width: 60px; }
  .comment-avatar {
    height: 68px;
    width: 68px; } }

.cookie_notice {
  background-color: #000;
  position: fixed;
  width: 390px;
  z-index: 9999999;
  max-height: 95%;
  right: 20px;
  bottom: 20px; }

.cookie_notice_area {
  margin-left: 5%;
  margin-right: 5%;
  margin-bottom: 5%; }

#cookie_notice_text {
  padding: 1rem 0;
  color: white; }

#cookie_buttons a {
  padding: 8px; }
  #cookie_buttons a:visited, #cookie_buttons a:active {
    color: white; }
  #cookie_buttons a:hover {
    text-decoration: underline;
    color: white; }

#cookie_buttons span {
  margin-bottom: 0; }

.equal-height-columns {
  display: block; }
  .flexbox .equal-height-columns {
    display: -webkit-box;
    display: -moz-box;
    display: box;
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-lines: multiple;
    -moz-box-lines: multiple;
    box-lines: multiple;
    -webkit-flex-wrap: wrap;
    -moz-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap; }
  .equal-height-columns [class*="column"] + [class*="column"]:last-child {
    float: left; }

.equal-height-column {
  display: block;
  float: left;
  width: 100%;
  padding: 0.9375rem; }
  .flexbox .equal-height-column {
    display: -webkit-box;
    display: -moz-box;
    display: box;
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flexbox;
    display: flex; }

.equal-height-column-innerwrap {
  padding: 0.9375rem;
  width: 100%;
  display: block;
  height: 100%; }

.flexbox .equal-height-column-innerwrap,
.no-js .equal-height-column-innerwrap {
  height: auto; }

.equal-height-column__image {
  width: 100%;
  height: 250px;
  text-align: center;
  margin-bottom: .75rem; }
  .equal-height-column__image img {
    max-height: 250px;
    max-width: 100%;
    vertical-align: middle; }

.equal-height-column__readon {
  margin-left: -0.9375rem; }

/* 2 columns */
@media only screen and (min-width: 30em) {
  .equal-height-column {
    width: 50%; }
  .equal-height-column__image {
    width: 100%;
    height: 200px; }
    .equal-height-column__image img {
      max-height: 200px; } }

/* 3 columns */
@media only screen and (min-width: 48em) {
  .equal-height-column {
    width: 33.33333%; } }

/* 4 columns */
@media only screen and (min-width: 64em) {
  .no-split-menu .equal-height-column {
    width: 25%; } }

/*! fancyBox v2.1.5 fancyapps.com | fancyapps.com/fancybox/#license */
.fancybox-wrap,
.fancybox-skin,
.fancybox-outer,
.fancybox-inner,
.fancybox-image,
.fancybox-wrap iframe,
.fancybox-wrap object,
.fancybox-nav,
.fancybox-nav span,
.fancybox-tmp {
  padding: 0;
  margin: 0;
  border: 0;
  outline: none;
  vertical-align: top; }

.fancybox-wrap {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 8020; }

.fancybox-skin {
  position: relative;
  background: #f9f9f9;
  color: #444;
  text-shadow: none;
  -moz-border-radius: 4px;
  border-radius: 4px; }

.fancybox-opened {
  z-index: 8030; }

.fancybox-opened .fancybox-skin {
  -moz-box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5);
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5); }

.fancybox-outer, .fancybox-inner {
  position: relative; }

.fancybox-inner {
  overflow: hidden; }

.fancybox-type-iframe .fancybox-inner {
  -webkit-overflow-scrolling: touch; }

.fancybox-error {
  color: #444;
  margin: 0;
  padding: 15px;
  white-space: nowrap; }

.fancybox-image, .fancybox-iframe {
  display: block;
  width: 100%;
  height: 100%; }

.fancybox-image {
  max-width: 100%;
  max-height: 100%; }

#fancybox-loading, .fancybox-close, .fancybox-prev span, .fancybox-next span {
  background-image: url("/assets/img/fancybox_sprite.png"); }

#fancybox-loading {
  position: fixed;
  top: 50%;
  left: 50%;
  margin-top: -22px;
  margin-left: -22px;
  background-position: 0 -108px;
  opacity: 0.8;
  cursor: pointer;
  z-index: 8060; }

#fancybox-loading div {
  width: 44px;
  height: 44px;
  background: url("/assets/img/fancybox_loading.gif") center center no-repeat; }

.fancybox-close {
  position: absolute;
  top: -18px;
  right: -18px;
  width: 36px;
  height: 36px;
  cursor: pointer;
  z-index: 8040; }

.fancybox-nav {
  position: absolute;
  top: 0;
  width: 40%;
  height: 100%;
  cursor: pointer;
  text-decoration: none;
  -webkit-tap-highlight-color: transparent;
  z-index: 8040; }

.fancybox-prev {
  left: 0; }

.fancybox-next {
  right: 0; }

.fancybox-nav span {
  position: absolute;
  top: 50%;
  width: 36px;
  height: 34px;
  margin-top: -18px;
  cursor: pointer;
  z-index: 8040;
  visibility: hidden; }

.fancybox-prev span {
  left: 10px;
  background-position: 0 -36px; }

.fancybox-next span {
  right: 10px;
  background-position: 0 -72px; }

.fancybox-nav:hover span {
  visibility: visible; }

.fancybox-tmp {
  position: absolute;
  top: -99999px;
  left: -99999px;
  visibility: hidden;
  max-width: 99999px;
  max-height: 99999px;
  overflow: visible !important; }

/* Overlay helper */
.fancybox-lock {
  overflow: hidden !important;
  width: auto; }

.fancybox-lock body {
  overflow: hidden !important; }

.fancybox-lock-test {
  overflow-y: hidden !important; }

.fancybox-overlay {
  position: absolute;
  top: 0;
  left: 0;
  overflow: hidden;
  display: none;
  z-index: 8010;
  background-color: rgba(0, 0, 0, 0.75); }

.fancybox-overlay-fixed {
  position: fixed;
  bottom: 0;
  right: 0; }

.fancybox-lock .fancybox-overlay {
  overflow: auto;
  overflow-y: scroll; }

/* Title helper */
.fancybox-title {
  visibility: hidden;
  position: relative;
  text-shadow: none;
  z-index: 8050; }

.fancybox-opened .fancybox-title {
  visibility: visible; }

.fancybox-title-float-wrap {
  position: absolute;
  bottom: 0;
  right: 50%;
  margin-bottom: -35px;
  z-index: 8050;
  text-align: center; }

.fancybox-title-float-wrap .child {
  display: inline-block;
  margin-right: -100%;
  padding: 2px 20px;
  background: transparent;
  /* Fallback for web browsers that doesn't support RGBa */
  background: rgba(0, 0, 0, 0.8);
  -moz-border-radius: 15px;
  border-radius: 15px;
  text-shadow: 0 1px 2px #222;
  color: #FFF;
  font-weight: bold;
  line-height: 24px;
  white-space: nowrap; }

.fancybox-title-outside-wrap {
  position: relative;
  margin-top: 10px;
  color: #fff; }

.fancybox-title-inside-wrap {
  padding-top: 10px; }

.fancybox-title-over-wrap {
  position: absolute;
  bottom: 0;
  left: 0;
  color: #fff;
  padding: 10px;
  background: #000;
  background: rgba(0, 0, 0, 0.8); }

/*Retina graphics!*/
@media only screen and (-webkit-min-device-pixel-ratio: 1.5), only screen and (min--moz-device-pixel-ratio: 1.5), only screen and (min-device-pixel-ratio: 1.5) {
  #fancybox-loading, .fancybox-close, .fancybox-prev span, .fancybox-next span {
    background-image: url("/assets/img/fancybox_sprite_2x.png");
    background-size: 44px 152px;
    /*The size of the normal image, half the size of the hi-res image*/ }
  #fancybox-loading div {
    background-image: url("/assets/img/fancybox_loading_2x.gif");
    background-size: 24px 24px;
    /*The size of the normal image, half the size of the hi-res image*/ } }

label {
  color: inherit; }

label > input[type=checkbox] {
  margin-right: 0.5rem; }

.error-msg {
  color: #e03114;
  line-height: 1.5em;
  padding-bottom: .5em; }

input[type=search] {
  padding-left: 0;
  text-indent: .5rem; }

/* We use this to get basic styling on all basic form elements */
input[type="text"],
input[type="password"],
input[type="date"],
input[type="datetime"],
input[type="datetime-local"],
input[type="month"],
input[type="week"],
input[type="email"],
input[type="number"],
input[type="search"],
input[type="tel"],
input[type="time"],
input[type="url"],
textarea,
select {
  border-radius: 0; }

/* Foundation hardcodes radius to 0, this fixes it */
input[type="submit"] {
  border-radius: 0; }

.prefix-radius.row.collapse input, .prefix-radius.row.collapse textarea, .prefix-radius.row.collapse select {
  border-radius: 0;
  -webkit-border-bottom-right-radius: 0;
  -webkit-border-top-right-radius: 0;
  border-bottom-right-radius: 0;
  border-top-right-radius: 0; }

.postfix-radius.row.collapse input, .postfix-radius.row.collapse textarea, .postfix-radius.row.collapse select {
  border-radius: 0;
  -webkit-border-bottom-left-radius: 0;
  -webkit-border-top-left-radius: 0;
  border-bottom-left-radius: 0;
  border-top-left-radius: 0; }

@-moz-document url-prefix() {
  select {
    background-image: none; } }

.klarna_boks {
  margin-bottom: 1rem;
  max-height: 100px;
  overflow: hidden; }

.klarna-info .klarna-info__badge {
  float: right;
  margin-left: .5rem; }

.klarna-widget {
  height: 70px; }

.setting__form {
  position: relative;
  z-index: 100; }
  .setting__form i.fa {
    width: .9rem; }

.setting__button:focus {
  outline: none; }

.setting__select {
  display: none;
  position: absolute;
  opacity: .3;
  width: 15rem;
  z-index: 2;
  background-color: #fff;
  border: 1px solid #dddddd;
  padding: 1rem;
  -ms-transform: translate(-92%, -1rem) scale3d(0.9, 0.9, 0.9);
  -webkit-transform: translate3d(-92%, -1rem, 0) scale3d(0.9, 0.9, 0.9);
  -moz-transform: translate3d(-92%, -1rem, 0) scale3d(0.9, 0.9, 0.9);
  -ms-transform: translate3d(-92%, -1rem, 0) scale3d(0.9, 0.9, 0.9);
  transform: translate3d(-92%, -1rem, 0) scale3d(0.9, 0.9, 0.9);
  -webkit-transition: opacity 150ms, -webkit-transform 150ms ease;
  -webkit-transition-delay: ease, 0s;
  -moz-transition: opacity 150ms ease, -moz-transform 150ms ease;
  -o-transition: opacity 150ms ease, -o-transform 150ms ease;
  transition: opacity 150ms ease, transform 150ms ease; }
  .setting__select > * {
    margin-bottom: 0; }
  .setting__select select {
    float: left;
    width: 65%; }
  .setting__select input[type=submit] {
    float: right;
    width: 30%;
    line-height: 2.3125rem;
    height: 2.3125rem;
    padding: 0 .5rem; }

#language-show,
#currency-show {
  display: block; }

#language-close,
#currency-close {
  display: none; }

#language-show:target,
#currency-show:target {
  display: block; }

#language-show:target + #language-close,
#currency-show:target + #currency-close {
  display: none; }

#language-close:target,
#currency-close:target {
  display: block; }

#language-close:target + #language-show,
#currency-close:target + #currency-show {
  display: none; }

#language-close:target ~ #language,
#currency-close:target ~ #currency {
  display: block;
  opacity: 1;
  -ms-transform: translate(-90%, 0) scale3d(1, 1, 1);
  -webkit-transform: translate3d(-90%, 0, 0) scale3d(1, 1, 1);
  -moz-transform: translate3d(-90%, 0, 0) scale3d(1, 1, 1);
  -ms-transform: translate3d(-90%, 0, 0) scale3d(1, 1, 1);
  transform: translate3d(-90%, 0, 0) scale3d(1, 1, 1); }

.js-nav #language,
.js-nav #currency {
  display: none; }

#knappe-menu_kjop {
  list-style: none;
  margin: 0; }
  #knappe-menu_kjop li {
    display: inline-block;
    margin-right: 1rem; }

.frontpage__custom-content {
  margin-bottom: 1.875rem; }

.receipt__header {
  float: left; }

.button.receipt__print {
  float: right;
  margin-bottom: 0;
  margin-top: .15rem; }

.receipt__thanks {
  font-weight: bold; }

.receipt__order-overview,
.receipt__customer-info {
  width: 100%; }

@media only screen and (min-width: 40em) {
  .receipt__print {
    margin-top: .5rem; }
  .receipt__order-overview,
  .receipt__customer-info {
    width: auto;
    min-width: 60%; } }

@media only screen and (min-width: 64em) {
  .receipt__order-overview,
  .receipt__customer-info {
    min-width: 50%; } }

html.placeholder .has-placeholder label {
  display: none; }

.login-column, .register-column {
  text-align: center; }
  .login-column > form, .register-column > form {
    display: inline-block;
    text-align: left;
    max-width: 360px;
    width: 100%; }

.icon-log-out a:after {
  /* use !important to prevent issues with browser extensions that change fonts */
  font-family: 'pioneer' !important;
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  /* Better Font Rendering =========== */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: ""; }

.account-tabs {
  margin-bottom: 1rem !important; }
  .account-tabs .tab-title a {
    padding: 0 .6rem;
    line-height: 2.5rem; }
    .touch .account-tabs .tab-title a {
      line-height: 2.75rem; }

.edit-account-page fieldset,
.gift-certificate-page fieldset {
  border-right: none;
  border-left: none;
  border-bottom: none;
  padding-left: 0;
  padding-right: 0;
  margin-bottom: 0; }

.edit-account-page form .row .row,
.gift-certificate-page form .row .row {
  width: auto;
  margin-left: -0.9375rem;
  margin-right: -0.9375rem;
  margin-top: 0;
  margin-bottom: 0;
  max-width: none; }
  .edit-account-page form .row .row:before, .edit-account-page form .row .row:after,
  .gift-certificate-page form .row .row:before,
  .gift-certificate-page form .row .row:after {
    content: " ";
    display: table; }
  .edit-account-page form .row .row:after,
  .gift-certificate-page form .row .row:after {
    clear: both; }
  .edit-account-page form .row .row .column,
  .edit-account-page form .row .row .columns,
  .gift-certificate-page form .row .row .column,
  .gift-certificate-page form .row .row .columns {
    padding-left: 0.9375rem;
    padding-right: 0.9375rem;
    float: left; }

.edit-account-page form .control-group .control-group,
.gift-certificate-page form .control-group .control-group {
  width: 100%; }

.edit-account__buttons {
  list-style: none;
  margin: 0; }
  .edit-account__buttons .icon {
    float: left;
    display: inline-block;
    margin-top: 2px;
    padding-right: .5rem; }

.kasse_one_logginn_error {
  display: block;
  color: #e03114;
  margin-bottom: 1.5rem; }

@media only screen and (max-width: 39.9375em) {
  .login-column {
    border-right: 1px solid #dddddd; }
  .icon-log-out a span {
    display: none; }
  .tabs .icon-log-out > a {
    background: none; } }

@media only screen and (min-width: 27em) {
  .tabs .tab-title > a {
    padding-right: 1rem;
    padding-left: 1rem; }
  .tabs .icon-log-out > a {
    background: none;
    padding-right: 0; }
    .tabs .icon-log-out > a:after {
      padding-left: .5rem; }
    .tabs .icon-log-out > a:hover {
      background: none;
      color: #e03114; }
    .tabs .icon-log-out > a span {
      display: inline; } }

@media only screen and (min-width: 40em) {
  .edit-account__buttons {
    text-align: right; }
    .edit-account__buttons .icon {
      float: none;
      display: inline;
      margin-top: 0;
      padding-right: 0; } }

#wishlist_table {
  min-width: 100%; }

.wishlist__product-name p:last-child {
  margin-bottom: 0; }

.wishlist__button-cell {
  vertical-align: middle; }
  .wishlist__button-cell input[type=submit] {
    margin-bottom: 0; }

.wishlist__delete,
.wishlist__delete:hover {
  color: #e03114; }

@media only screen and (min-width: 40em) {
  #wishlist_table {
    min-width: 80%; } }

@media only screen and (min-width: 64em) {
  #wishlist_table {
    min-width: 60%; } }

.pagination-wrapper {
  padding-top: 1.875rem; }

.product__images.invisible {
  visibility: hidden; }
  .product__images.invisible.slider-loaded {
    visibility: visible; }

.product__main-images {
  text-align: center; }
  .product__main-images img {
    max-width: 100%;
    max-height: 30rem; }
  .product__main-images ul {
    list-style-type: none;
    margin: 0; }
  .product__main-images .readon-icon__container {
    display: none; }
  .product__main-images .bx-caption {
    font-size: 0.875rem;
    text-align: left;
    font-style: italic;
    line-height: 1.5;
    padding: 0.5rem 0; }
  .product__main-images .bx-prev {
    left: 0; }
  .product__main-images .bx-next {
    right: 0; }

.product__breadcrumbs .current {
  display: none; }

.product__breadcrumbs .breadcrumbs {
  padding: 0;
  height: auto; }

.product__meta-numbers {
  font-size: 0.75rem;
  margin-bottom: 0.75rem;
  float: left;
  width: 100%; }
  .product__meta-numbers .comment-star-rating .icon-star:before,
  .product__meta-numbers .comment-star-rating .icon-star-half:before,
  .product__meta-numbers .comment-star-rating .icon-star-outline:before {
    vertical-align: -1px; }
  .product__meta-numbers .comment-star-rating .comment-star-rating-avg {
    display: none; }
  .product__meta-numbers .comment-star-rating .comment-star-rating-count {
    display: inline; }
  .product__meta-numbers > * {
    padding-bottom: .5rem;
    float: left; }

.product__art-nr-label,
.product__ean-label {
  padding-right: .25rem; }

.product__meta-numbers__value {
  padding-right: 1rem; }

.product__aside-addon {
  margin-bottom: 1.25rem; }

.product .price {
  font-size: 1.875rem;
  font-weight: bold;
  font-family:  'Georgia', serif;
  display: block;
  clear: both; }

.product .price--original {
  display: block;
  clear: both; }
  .product .price--original .currency {
    display: none; }

.product .vat-info,
.product .price--original {
  line-height: 1.5; }

.product .discount {
  display: none; }

.product .vat-info {
  font-size: 0.875rem; }

.product .currency {
  padding-right: .5rem; }

.product .price__saleprice-text {
  padding-right: .5rem; }

.product .offers {
  margin-bottom: 1.25rem; }

.product__buy-button.button i {
  padding-right: .5rem; }

.product__stockstatus {
  font-size: 0.875rem;
  margin-bottom: 1.25rem;
  line-height: 1.875rem; }

.product__stockstatus__number {
  color: #398439; }

.product__stockstatus--sold-out .product__stockstatus__number {
  color: #e03114; }

.product__stockstatus--has-extrainfo {
  line-height: normal; }

.product__main-images__link {
  display: block;
  width: 100%;
  height: 100%;
  outline: none; }
  .product__main-images__link:hover {
    cursor: default; }

.product__quantum-discounts {
  width: 100%; }

.product__attributes,
.product__extrafield {
  width: auto;
  margin-left: -0.9375rem;
  margin-right: -0.9375rem;
  margin-top: 0;
  margin-bottom: 0;
  max-width: none; }
  .product__attributes:before, .product__attributes:after,
  .product__extrafield:before,
  .product__extrafield:after {
    content: " ";
    display: table; }
  .product__attributes:after,
  .product__extrafield:after {
    clear: both; }

.product__extrafield__wrap {
  padding-left: 0.9375rem;
  padding-right: 0.9375rem;
  width: 100%;
  float: left; }

.product__attribute,
.product__quantity {
  padding-left: 0.9375rem;
  padding-right: 0.9375rem;
  width: 50%;
  float: left; }

.product__extrafield__priceinfo {
  font-size: 0.875rem; }

.product__related-products {
  padding-top: 1.875rem;
  padding-bottom: 1.875rem; }

@media only screen and (max-width: 39.9375em) {
  .product__main-images .bx-caption {
    text-align: center; } }

@media only screen and (max-width: 39.9375em) {
  .product__imagegallery {
    list-style-type: none;
    margin: 0;
    text-align: center; }
    .product__imagegallery li {
      display: inline-block; }
    .product__imagegallery .th {
      box-shadow: none;
      height: 2.75rem;
      width: 2.75rem;
      line-height: 2.75rem;
      border: none;
      text-decoration: none; }
      .product__imagegallery .th:hover, .product__imagegallery .th:focus {
        outline: none; }
        .product__imagegallery .th:hover:after, .product__imagegallery .th:focus:after {
          color: #017D6E;
          opacity: .75;
          font-size: 1rem; }
      .product__imagegallery .th > * {
        display: none; }
      .product__imagegallery .th:after {
        /* use !important to prevent issues with browser extensions that change fonts */
        font-family: 'pioneer' !important;
        speak: none;
        font-style: normal;
        font-weight: normal;
        font-variant: normal;
        text-transform: none;
        line-height: 1;
        /* Better Font Rendering =========== */
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale;
        content: "";
        color: #000;
        opacity: .25;
        height: 2.75rem;
        width: 2.75rem;
        line-height: 2.75rem;
        text-align: center;
        font-size: .8rem;
        -webkit-transition: font-size 200ms ease;
        -moz-transition: font-size 200ms ease;
        transition: font-size 200ms ease; }
      .product__imagegallery .th.active:after {
        opacity: .75;
        font-size: 1rem; } }

@media only screen and (max-width: 39.9375em) {
  .product__title {
    padding-top: 1rem; } }

@media only screen and (min-width: 27em) and (max-width: 39.9375em) {
  .product__info,
  .product__about,
  .product__imagegallery__wrapper,
  .product__related-products {
    padding-left: 0.9375rem;
    padding-right: 0.9375rem;
    width: 83.33333%;
    float: left; }
  .product .price {
    font-size: 1.875rem; }
  .product__stockstatus:not(.product__stockstatus--has-extrainfo) {
    line-height: 1.875rem; } }

@media only screen and (min-width: 40em) {
  .product__info {
    padding-left: 0.9375rem;
    padding-right: 0.9375rem;
    width: 50%;
    float: left; }
  .product__about,
  .product__imagegallery__wrapper {
    padding-left: 0.9375rem;
    padding-right: 0.9375rem;
    width: 100%;
    float: left; }
  .product__images,
  .product__info,
  .product__main-images {
    margin-bottom: 1.875rem; }
  .product__breadcrumbs .current {
    display: list-item; }
  .product__main-images img {
    width: auto;
    max-width: 100%; }
  .product__main-images .readon-icon__container {
    display: block; }
  .product__main-images__link:hover {
    cursor: pointer; }
  .product__imagegallery {
    display: block;
    padding: 0;
    margin: 0; }
    .product__imagegallery:before, .product__imagegallery:after {
      content: " ";
      display: table; }
    .product__imagegallery:after {
      clear: both; }
    .product__imagegallery > li {
      display: block;
      height: auto;
      float: left;
      padding: 0 0.9375rem 1.875rem; }
    .product__imagegallery > li {
      width: 25%;
      padding: 0 0.9375rem 1.875rem;
      list-style: none; }
      .product__imagegallery > li:nth-of-type(1n) {
        clear: none; }
      .product__imagegallery > li:nth-of-type(4n+1) {
        clear: both; }
      .product__imagegallery > li:nth-of-type(4n+1) {
        padding-left: 0rem;
        padding-right: 1.40625rem; }
      .product__imagegallery > li:nth-of-type(4n+2) {
        padding-left: 0.46875rem;
        padding-right: 0.9375rem; }
      .product__imagegallery > li:nth-of-type(4n+3) {
        padding-left: 0.9375rem;
        padding-right: 0.46875rem; }
      .product__imagegallery > li:nth-of-type(4n) {
        padding-left: 1.40625rem;
        padding-right: 0rem; }
  li.product__imagegallery__imagewrap {
    height: 5.75rem; }
    li.product__imagegallery__imagewrap img {
      max-height: 100%; }
    li.product__imagegallery__imagewrap .th {
      height: 100%;
      width: 100%;
      text-align: center;
      background-color: #FFFFFF;
      box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.2);
      opacity: .8; }
      li.product__imagegallery__imagewrap .th:hover, li.product__imagegallery__imagewrap .th:focus, li.product__imagegallery__imagewrap .th.active {
        box-shadow: 0 0 6px 1px rgba(1, 85, 74, 0.5);
        opacity: 1; }
      li.product__imagegallery__imagewrap .th:after {
        display: none; }
  .product__title {
    font-size: 1.875rem; }
  .product__ingress {
    font-size: 0.875rem; }
  .product__stockstatus:not(.product__stockstatus--has-extrainfo) {
    line-height: 1.5rem; }
  .product__buy-button.button,
  .product__wishlist-button.button {
    font-size: 1rem;
    border-radius: 0; } }

@media only screen and (min-width: 64em) {
  .product__title {
    font-size: 2.75rem; }
  .product__ingress {
    font-size: 1rem; }
  .product__stockstatus:not(.product__stockstatus--has-extrainfo) {
    line-height: 1.875rem; }
  .product__about.medium-uncentered:last-child {
    float: right; }
  .product__imagegallery {
    display: block;
    padding: 0;
    margin: 0; }
    .product__imagegallery:before, .product__imagegallery:after {
      content: " ";
      display: table; }
    .product__imagegallery:after {
      clear: both; }
    .product__imagegallery > li {
      display: block;
      height: auto;
      float: left;
      padding: 0 0.9375rem 1.875rem; }
    .product__imagegallery > li {
      width: 20%;
      padding: 0 0.9375rem 1.875rem;
      list-style: none; }
      .product__imagegallery > li:nth-of-type(1n) {
        clear: none; }
      .product__imagegallery > li:nth-of-type(5n+1) {
        clear: both; }
      .product__imagegallery > li:nth-of-type(5n+1) {
        padding-left: 0rem;
        padding-right: 1.5rem; }
      .product__imagegallery > li:nth-of-type(5n+2) {
        padding-left: 0.375rem;
        padding-right: 1.125rem; }
      .product__imagegallery > li:nth-of-type(5n+3) {
        padding-left: 0.75rem;
        padding-right: 0.75rem; }
      .product__imagegallery > li:nth-of-type(5n+4) {
        padding-left: 1.125rem;
        padding-right: 0.375rem; }
      .product__imagegallery > li:nth-of-type(5n) {
        padding-left: 1.5rem;
        padding-right: 0rem; }
  li.product__imagegallery__imagewrap {
    height: 6rem; }
  .product__attribute,
  .product__quantity {
    padding-left: 0.9375rem;
    padding-right: 0.9375rem;
    width: 33.33333%;
    float: left; }
  .product__extrafield__wrap {
    padding-left: 0.9375rem;
    padding-right: 0.9375rem;
    width: 66.66667%;
    float: left; }
  .product .product__buy-button.button,
  .product .product__wishlist-button.button {
    font-size: 1.375rem; } }

.product-search {
  position: relative;
  z-index: 200; }

.product-search-results {
  opacity: .95;
  position: absolute;
  width: 100%;
  background-color: #ffffff;
  z-index: 200;
  border: 1px solid #dddddd;
  visibility: visible;
  -webkit-transition: all 0.25s ease;
  -moz-transition: all 0.25s ease;
  transition: all 0.25s ease; }
  .product-search-results .product-search__output {
    margin: 0;
    list-style: none;
    padding: 0.25rem 0; }
  .product-search-results.is-hidden {
    opacity: 0;
    display: block;
    -webkit-transform: rotateX(-90deg) scale(0.8);
    -moz-transform: rotateX(-90deg) scale(0.8);
    -ms-transform: rotateX(-90deg) scale(0.8);
    transform: rotateX(-90deg) scale(0.8);
    -webkit-transform-origin: 50% 0;
    -moz-transform-origin: 50% 0;
    -ms-transform-origin: 50% 0;
    -o-transform-origin: 50% 0;
    transform-origin: 50% 0; }

.product-search__no-hits:not(.is-hidden) + .product-search__container {
  display: none !important; }

.product-search__element a {
  padding: 0.25rem 1rem;
  display: block;
  width: 100%; }
  .product-search__element a:hover {
    color: black !important;
    background-color: #028F7E !important; }
  html.touch .product-search__element a {
    padding: 0.625rem 1rem; }

.product-search__extra-hits {
  margin: 0; }
  .product-search__extra-hits a {
    line-height: 2rem;
    display: block;
    width: 100%;
    margin: 0;
    padding: 0.25rem 1rem; }
    html.touch .product-search__extra-hits a {
      padding: 1.125rem 1rem; }

.product-search__no-hits {
  margin: 0;
  padding: 0.25rem 1rem;
  color: #757575; }

.rating {
  position: relative;
  height: 2.75rem;
  margin-bottom: 1rem; }
  .rating label.star {
    position: absolute;
    left: 0;
    top: 0;
    color: gold;
    display: inline-block;
    font-size: 1.375rem !important;
    width: 2.75rem;
    height: 2.75rem;
    line-height: 2.75rem;
    overflow: hidden;
    text-align: center;
    margin: 0;
    z-index: 4; }
  .rating input.star-checkbox {
    position: absolute;
    width: 2.75rem;
    height: 2.75rem;
    left: 0;
    right: 0;
    outline: none;
    z-index: 1; }
  .rating .rating-checkbox-hider {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: #ffffff;
    z-index: 2; }
    .resp-tabs-container .rating .rating-checkbox-hider {
      background-color: #f7f7f7; }
  .rating label.star-2,
  .rating input.star-checkbox-2 {
    left: 2.75rem; }
  .rating label.star-3,
  .rating input.star-checkbox-3 {
    left: 5.5rem; }
  .rating label.star-4,
  .rating input.star-checkbox-4 {
    left: 8.25rem; }
  .rating label.star-5,
  .rating input.star-checkbox-5 {
    left: 11rem; }
  .rating label.star-6,
  .rating input.star-checkbox-6 {
    left: 13.75rem; }
  .rating .stars-label {
    border: none;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px; }
  .rating label:before {
    /* use !important to prevent issues with browser extensions that change fonts */
    font-family: 'pioneer' !important;
    speak: none;
    font-style: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    line-height: 1;
    /* Better Font Rendering =========== */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    content: ""; }
  .rating label:hover,
  .rating input:checked ~ label:hover {
    color: gold; }

.readon-icon__container {
  opacity: 0;
  position: absolute;
  top: 0;
  width: 100%;
  height: 100%;
  background: rgba(255, 255, 255, 0.5);
  text-align: center;
  -webkit-transition: opacity 150ms ease;
  -moz-transition: opacity 150ms ease;
  transition: opacity 150ms ease; }
  .touch .readon-icon__container {
    display: none; }

.readon-icon {
  -ms-transform: translate(0, 0) scale3d(0.5, 0.5, 0.5);
  -webkit-transform: translate3d(0, 0, 0) scale3d(0.5, 0.5, 0.5);
  -moz-transform: translate3d(0, 0, 0) scale3d(0.5, 0.5, 0.5);
  -ms-transform: translate3d(0, 0, 0) scale3d(0.5, 0.5, 0.5);
  transform: translate3d(0, 0, 0) scale3d(0.5, 0.5, 0.5);
  -webkit-transition: opacity 200ms, -webkit-transform 150ms ease;
  -webkit-transition-delay: ease, 0s;
  -moz-transition: opacity 200ms ease, -moz-transform 150ms ease;
  -o-transition: opacity 200ms ease, -o-transform 150ms ease;
  transition: opacity 200ms ease, transform 150ms ease;
  position: relative;
  vertical-align: middle;
  line-height: 2.75rem;
  width: 2.75rem;
  height: 2.75rem;
  font-size: 1.75rem;
  color: #fff;
  opacity: .6;
  background-color: #000;
  display: inline-block;
  -ms-border-radius: 1.375rem;
  border-radius: 1.375rem; }
  .readon-icon:hover {
    opacity: .9; }

.readon-icon__wrapper {
  position: relative; }
  .readon-icon__wrapper:hover, .readon-icon__wrapper:focus {
    outline: none; }
    .readon-icon__wrapper:hover .readon-icon__container, .readon-icon__wrapper:focus .readon-icon__container {
      opacity: 1; }
    .readon-icon__wrapper:hover .readon-icon, .readon-icon__wrapper:focus .readon-icon {
      -ms-transform: translate(0, 0) scale3d(1, 1, 1);
      -webkit-transform: translate3d(0, 0, 0) scale3d(1, 1, 1);
      -moz-transform: translate3d(0, 0, 0) scale3d(1, 1, 1);
      -ms-transform: translate3d(0, 0, 0) scale3d(1, 1, 1);
      transform: translate3d(0, 0, 0) scale3d(1, 1, 1); }

/**
 * Expanding search input field
 *
 * Code courtesy of http://codepen.io/sdaitzman/pen/rmqfB
 */
.search-box__container {
  padding: 0.125rem 0;
  height: 2.75rem;
  min-width: 2.5rem;
  position: relative; }

.search-box__submit.hidden {
  display: none; }

input.search-box__input {
  transition: width 0.3s, border-radius 0.3s, background 0.3s, box-shadow 0.3s;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 1.25rem;
  border: none;
  cursor: pointer;
  background: #1a1a1a;
  margin-bottom: 0;
  display: inline-block;
  right: 0; }
  input.search-box__input::-ms-clear {
    display: none; }
  input.search-box__input ~ label {
    position: absolute;
    right: 0;
    top: 0;
    display: block;
    height: 2.75rem;
    line-height: 2.5rem;
    padding: 0.125rem 0;
    width: 2.5rem;
    text-align: center;
    z-index: 2; }
    input.search-box__input ~ label .icon-search {
      color: #fff; }
      input.search-box__input ~ label .icon-search:before {
        display: inline-block; }
  input.search-box__input ~ .search-box__submit {
    position: absolute;
    right: 0;
    top: 0;
    display: block;
    height: 2.75rem;
    width: 2.5rem;
    opacity: 0; }
    input.search-box__input ~ .search-box__submit ~ label:before {
      content: '.';
      color: transparent;
      display: block;
      position: absolute;
      top: 0.125rem;
      left: 0px;
      right: 0px;
      bottom: 0.125rem;
      background: #333333;
      border-radius: 50%;
      margin: 2px;
      opacity: 0;
      -webkit-transition: opacity 150ms ease;
      -moz-transition: opacity 150ms ease;
      transition: opacity 150ms ease; }
    input.search-box__input ~ .search-box__submit:hover ~ label .icon-search {
      color: white; }
    input.search-box__input ~ .search-box__submit:hover ~ label:before {
      opacity: 1; }
  input.search-box__input:hover {
    color: white;
    background: #333333;
    box-shadow: 0 0 0 2px #595959; }
    input.search-box__input:hover ~ label .icon-search {
      color: white; }
  input.search-box__input:focus, input.search-box__input.active {
    transition: width 0.3s cubic-bezier(0.6, 0, 0.4, 1), border-radius 0.3s, background 0.3s;
    border: none;
    outline: none;
    box-shadow: none;
    padding-left: 1rem;
    cursor: text;
    width: 200px;
    border-radius: auto;
    background: #4d4d4d;
    color: #c2c2c2; }
    input.search-box__input:focus::-webkit-input-placeholder, input.search-box__input.active::-webkit-input-placeholder {
      color: rgba(194, 194, 194, 0.75); }
    input.search-box__input:focus::-moz-placeholder, input.search-box__input.active::-moz-placeholder {
      color: rgba(194, 194, 194, 0.75); }
    input.search-box__input:focus:-moz-placeholder, input.search-box__input.active:-moz-placeholder {
      color: rgba(194, 194, 194, 0.75); }
    input.search-box__input:focus:-ms-input-placeholder, input.search-box__input.active:-ms-input-placeholder {
      color: rgba(194, 194, 194, 0.75); }
    input.search-box__input:focus ~ label .icon-search, input.search-box__input.active ~ label .icon-search {
      color: #c2c2c2; }
    input.search-box__input:focus ~ .search-box__submit, input.search-box__input.active ~ .search-box__submit {
      z-index: 3; }
  input.search-box__input:not(:focus):not(.active) {
    color: transparent; }
    input.search-box__input:not(:focus):not(.active)::-webkit-input-placeholder {
      color: transparent; }
    input.search-box__input:not(:focus):not(.active)::-moz-placeholder {
      color: transparent; }
    input.search-box__input:not(:focus):not(.active):-moz-placeholder {
      color: transparent; }
    input.search-box__input:not(:focus):not(.active):-ms-input-placeholder {
      color: transparent; }

@-webkit-keyframes activity-rotate {
  0% {
    -webkit-transform: rotate(0deg);
    -moz-transform: rotate(0deg);
    -ms-transform: rotate(0deg);
    transform: rotate(0deg); }
  100% {
    -webkit-transform: rotate(360deg);
    -moz-transform: rotate(360deg);
    -ms-transform: rotate(360deg);
    transform: rotate(360deg); } }

@-moz-keyframes activity-rotate {
  0% {
    -webkit-transform: rotate(0deg);
    -moz-transform: rotate(0deg);
    -ms-transform: rotate(0deg);
    transform: rotate(0deg); }
  100% {
    -webkit-transform: rotate(360deg);
    -moz-transform: rotate(360deg);
    -ms-transform: rotate(360deg);
    transform: rotate(360deg); } }

@keyframes activity-rotate {
  0% {
    -webkit-transform: rotate(0deg);
    -moz-transform: rotate(0deg);
    -ms-transform: rotate(0deg);
    transform: rotate(0deg); }
  100% {
    -webkit-transform: rotate(360deg);
    -moz-transform: rotate(360deg);
    -ms-transform: rotate(360deg);
    transform: rotate(360deg); } }

.search-box__label .icon-search::before, .search-box__label .icon-search::after {
  -webkit-transition: -webkit-transform, opacity;
  -moz-transition: -moz-transform, opacity;
  transition: transform, opacity; }

.search-box__label .icon-search::after {
  position: absolute;
  top: 50%;
  left: 50%;
  margin-left: -0.4375rem;
  margin-top: -0.4375rem;
  -webkit-transform: scale(0);
  -moz-transform: scale(0);
  -ms-transform: scale(0);
  transform: scale(0);
  opacity: 0; }

.search-box--loading .search-box__label .icon-search::before {
  -webkit-transform: scale(0);
  -moz-transform: scale(0);
  -ms-transform: scale(0);
  transform: scale(0);
  opacity: 0; }

.search-box--loading .search-box__label .icon-search::after {
  opacity: 1;
  -webkit-transform: scale(1);
  -moz-transform: scale(1);
  -ms-transform: scale(1);
  transform: scale(1);
  -webkit-animation: activity-rotate 1s 150ms linear infinite;
  -o-animation: activity-rotate 1s 150ms linear infinite;
  animation: activity-rotate 1s 150ms linear infinite; }

#search-submit {
  border: none;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px; }

.search-box__container .icon-search {
  position: relative;
  width: 2.5rem;
  color: white;
  cursor: pointer; }

@media only screen and (min-width: 27em) {
  input.search-box__input:focus, input.search-box__input.active {
    width: 300px; } }

@media only screen and (min-width: 40em) {
  input.search-box__input:focus, input.search-box__input.active {
    width: 350px; } }

a.search-modal-link.neutral-link:hover {
  background-color: transparent; }

@-webkit-keyframes activity-rotate {
  0% {
    -webkit-transform: rotate(0deg);
    -moz-transform: rotate(0deg);
    -ms-transform: rotate(0deg);
    transform: rotate(0deg); }
  100% {
    -webkit-transform: rotate(360deg);
    -moz-transform: rotate(360deg);
    -ms-transform: rotate(360deg);
    transform: rotate(360deg); } }

@-moz-keyframes activity-rotate {
  0% {
    -webkit-transform: rotate(0deg);
    -moz-transform: rotate(0deg);
    -ms-transform: rotate(0deg);
    transform: rotate(0deg); }
  100% {
    -webkit-transform: rotate(360deg);
    -moz-transform: rotate(360deg);
    -ms-transform: rotate(360deg);
    transform: rotate(360deg); } }

@keyframes activity-rotate {
  0% {
    -webkit-transform: rotate(0deg);
    -moz-transform: rotate(0deg);
    -ms-transform: rotate(0deg);
    transform: rotate(0deg); }
  100% {
    -webkit-transform: rotate(360deg);
    -moz-transform: rotate(360deg);
    -ms-transform: rotate(360deg);
    transform: rotate(360deg); } }

@media only screen and (min-width: 64em) {
  .search-box--loading .product-search {
    position: relative; }
    .search-box--loading .product-search:before {
      position: absolute;
      top: .65rem;
      right: .3rem;
      -webkit-animation: activity-rotate 1s 150ms linear infinite;
      -o-animation: activity-rotate 1s 150ms linear infinite;
      animation: activity-rotate 1s 150ms linear infinite; } }

.slider {
  margin: 0;
  list-style: none;
  height: 100%; }

.slider__wrapper {
  margin-bottom: 1.875rem;
  margin-right: -0.9375rem;
  margin-left: -0.9375rem; }

.slide--align-center {
  text-align: center; }

.slide--align-left {
  text-align: left; }

.slide--align-right {
  text-align: right; }

.slide:not(:first-child) {
  display: none; }
  .bx-wrapper .slide:not(:first-child) {
    display: inherit; }

.slide img {
  vertical-align: middle; }

@media only screen and (min-width: 90em) {
  .slider__wrapper {
    margin-right: 0;
    margin-left: 0; } }

.social-buttons-list {
  list-style: none;
  margin: 0;
  text-align: center; }

.social-buttons-list--product {
  margin-bottom: 1rem; }

.social-button {
  display: inline-block;
  line-height: 2.75rem;
  margin-bottom: 1rem; }
  .social-buttons-list--product .social-button {
    margin-bottom: 0; }
  .social-button .social-button__link {
    display: block;
    height: 2.75rem;
    width: 2.75rem;
    background-color: #333333;
    opacity: .3;
    -webkit-transition: all 0.2s ease;
    -moz-transition: all 0.2s ease;
    transition: all 0.2s ease;
    border-radius: 50%;
    color: #eeeeee;
    font-size: 1.25rem;
    text-align: center; }
    .social-button .social-button__link:hover, .social-button .social-button__link:focus {
      color: #eeeeee;
      opacity: 1; }
    .social-buttons-list--product .social-button .social-button__link {
      background-color: #ffffff;
      color: #333333;
      border: 2px solid #333333;
      opacity: .6; }
      .social-buttons-list--product .social-button .social-button__link:hover, .social-buttons-list--product .social-button .social-button__link:focus {
        color: #ffffff;
        opacity: 1; }

.social-buttons__headline-wrapper {
  display: none; }

.social-button--blogger .social-button__link:hover, .social-button--blogger .social-button__link:focus, .social-button--blogger .social-button__link:active {
  color: #fff;
  background-color: #fc9948;
  border-color: #fc9948; }

.social-button--ello .social-button__link:hover, .social-button--ello .social-button__link:focus, .social-button--ello .social-button__link:active {
  color: #000;
  background-color: rgba(0, 0, 0, 0.1);
  border-color: rgba(0, 0, 0, 0.1); }

.social-button--facebook .social-button__link:hover, .social-button--facebook .social-button__link:focus, .social-button--facebook .social-button__link:active {
  color: #fff;
  background-color: #3b5998;
  border-color: #3b5998; }

.social-button--flickr .social-button__link:hover, .social-button--flickr .social-button__link:focus, .social-button--flickr .social-button__link:active {
  color: #fff;
  background-color: #ff0084;
  border-color: #ff0084; }

.social-button--googleplus .social-button__link:hover, .social-button--googleplus .social-button__link:focus, .social-button--googleplus .social-button__link:active {
  color: #fff;
  background-color: #dd4b39;
  border-color: #dd4b39; }

.social-button--instagram .social-button__link:hover, .social-button--instagram .social-button__link:focus, .social-button--instagram .social-button__link:active {
  color: #fff;
  background-color: #517fa4;
  border-color: #517fa4; }

.social-button--linkedin .social-button__link:hover, .social-button--linkedin .social-button__link:focus, .social-button--linkedin .social-button__link:active {
  color: #fff;
  background-color: #007bb6;
  border-color: #007bb6; }

.social-button--mail .social-button__link:hover, .social-button--mail .social-button__link:focus, .social-button--mail .social-button__link:active {
  color: #fff;
  background-color: #333;
  border-color: #333; }

.social-button--pinterest .social-button__link:hover, .social-button--pinterest .social-button__link:focus, .social-button--pinterest .social-button__link:active {
  color: #fff;
  background-color: #cb2027;
  border-color: #cb2027; }

.social-button--twitter .social-button__link:hover, .social-button--twitter .social-button__link:focus, .social-button--twitter .social-button__link:active {
  color: #fff;
  background-color: #00aced;
  border-color: #00aced; }

.social-button--vimeo .social-button__link:hover, .social-button--vimeo .social-button__link:focus, .social-button--vimeo .social-button__link:active {
  color: #fff;
  background-color: #45bcf9;
  border-color: #45bcf9; }

.social-button--youtube .social-button__link:hover, .social-button--youtube .social-button__link:focus, .social-button--youtube .social-button__link:active {
  color: #fff;
  background-color: #cc181e;
  border-color: #cc181e; }

@media only screen and (min-width: 40em) {
  .social-buttons-list--product {
    margin-bottom: 0; } }

@media only screen and (min-width: 90em) {
  .social-buttons-list--product {
    position: absolute;
    right: -3rem;
    top: 1rem;
    width: 2.75rem; }
    .social-buttons-list--product .social-button {
      margin-bottom: .5rem; }
    #pageframe .social-buttons-list--product {
      right: -4.5rem; } }

/* SPINNER, used in checkout while cart is loading for instance */
#spinner-container {
  position: relative;
  width: 100%;
  height: 120px; }

html.lt-ie10 #spinner-container {
  display: none; }

#spinner {
  position: absolute;
  left: 50%;
  margin-left: -30px;
  bottom: 0; }

#floatingCirclesG {
  position: relative;
  width: 60px;
  height: 60px;
  -webkit-transform: scale(0.6);
  -moz-transform: scale(0.6);
  -ms-transform: scale(0.6);
  transform: scale(0.6); }

.f_circleG {
  position: absolute;
  background-color: #FFFFFF;
  height: 11px;
  width: 11px;
  border-radius: 5px;
  -webkit-animation-name: f_fadeG;
  -moz-animation-name: f_fadeG;
  animation-name: f_fadeG;
  -webkit-animation-duration: 0.8s;
  -moz-animation-duration: 0.8s;
  animation-duration: 0.8s;
  -webkit-animation-iteration-count: infinite;
  -moz-animation-iteration-count: infinite;
  animation-iteration-count: infinite;
  -webkit-animation-direction: normal;
  -moz-animation-direction: normal;
  animation-direction: normal; }

#frotateG_01 {
  left: 0;
  top: 25px;
  -webkit-animation-delay: 0.3s;
  -moz-animation-delay: 0.3s;
  animation-delay: 0.3s; }

#frotateG_02 {
  left: 7px;
  top: 7px;
  -webkit-animation-delay: 0.4s;
  -moz-animation-delay: 0.4s;
  animation-delay: 0.4s; }

#frotateG_03 {
  left: 25px;
  top: 0;
  -webkit-animation-delay: 0.5s;
  -moz-animation-delay: 0.5s;
  animation-delay: 0.5s; }

#frotateG_04 {
  right: 7px;
  top: 7px;
  -webkit-animation-delay: 0.6s;
  -moz-animation-delay: 0.6s;
  animation-delay: 0.6s; }

#frotateG_05 {
  right: 0;
  top: 25px;
  -webkit-animation-delay: 0.7s;
  -moz-animation-delay: 0.7s;
  animation-delay: 0.7s; }

#frotateG_06 {
  right: 7px;
  bottom: 7px;
  -webkit-animation-delay: 0.8s;
  -moz-animation-delay: 0.8s;
  animation-delay: 0.8s; }

#frotateG_07 {
  left: 25px;
  bottom: 0;
  -webkit-animation-delay: 0.9s;
  -moz-animation-delay: 0.9s;
  animation-delay: 0.9s; }

#frotateG_08 {
  left: 7px;
  bottom: 7px;
  -webkit-animation-delay: 1s;
  -moz-animation-delay: 1s;
  animation-delay: 1s; }

@-moz-keyframes f_fadeG {
  0% {
    background-color: #000000; }
  100% {
    background-color: #FFFFFF; } }

@-webkit-keyframes f_fadeG {
  0% {
    background-color: #000000; }
  100% {
    background-color: #FFFFFF; } }

@-ms-keyframes f_fadeG {
  0% {
    background-color: #000000; }
  100% {
    background-color: #FFFFFF; } }

@-o-keyframes f_fadeG {
  0% {
    background-color: #000000; }
  100% {
    background-color: #FFFFFF; } }

@keyframes f_fadeG {
  0% {
    background-color: #000000; }
  100% {
    background-color: #FFFFFF; } }

table td.pris,
table th.pris {
  text-align: right; }

tr.sum {
  border-top: 1px solid #333333;
  border-bottom: 3px double #333333; }

table tr.even, table tr.alt, table tr:nth-of-type(even) {
  color: #333333; }

.tabs {
  border-bottom: 1px solid #000; }

.js-tabs {
  padding-top: 2rem; }

.resp-tabs-list {
  margin: 0px;
  padding: 0px;
  list-style-type: none; }

.resp-tab-item {
  font-family:  'Georgia', serif;
  display: inline-block;
  cursor: pointer;
  float: left;
  margin-right: 2px; }

.resp-tab-item,
.resp-accordion {
  outline: none;
  color: #1a1a1a;
  background-color: #e6e6e6;
  padding: 0 1rem;
  line-height: 2.75rem;
  margin-bottom: 0;
  -webkit-transition: all 200ms ease;
  -moz-transition: all 200ms ease;
  transition: all 200ms ease; }
  .resp-tab-item:after,
  .resp-accordion:after {
    /* use !important to prevent issues with browser extensions that change fonts */
    font-family: 'pioneer' !important;
    speak: none;
    font-style: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    line-height: 1;
    /* Better Font Rendering =========== */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    content: "";
    padding-left: .5rem;
    display: inline-block;
    -webkit-transition: -webkit-transform;
    -moz-transition: -moz-transform;
    transition: transform; }
  .resp-tab-item:hover, .resp-tab-item:focus,
  .resp-accordion:hover,
  .resp-accordion:focus {
    color: #1a1a1a;
    background-color: #bfbfbf; }

.resp-tabs-container {
  padding: 0;
  background-color: #f7f7f7;
  clear: left; }

.resp-accordion {
  cursor: pointer;
  display: none; }

.resp-tab-content {
  display: none;
  padding: 1rem; }
  .resp-tab-content > :last-child {
    margin-bottom: 0; }

.resp-tab-active,
.resp-accordion.resp-tab-active {
  color: white;
  background-color: #000; }
  .resp-tab-active:after,
  .resp-accordion.resp-tab-active:after {
    -webkit-transform: rotatex(180deg);
    -moz-transform: rotatex(180deg);
    -ms-transform: rotatex(180deg);
    transform: rotatex(180deg); }
  .resp-tab-active:hover, .resp-tab-active:focus,
  .resp-accordion.resp-tab-active:hover,
  .resp-accordion.resp-tab-active:focus {
    color: white;
    background-color: #262626; }

.resp-content-active,
.resp-accordion-active {
  display: block; }

.resp-easy-accordion .resp-accordion {
  display: block; }

.resp-jfit {
  width: 100%;
  margin: 0px; }

.resp-tab-content-active {
  display: block; }

/*Here your can change the breakpoint to set the accordion, when screen resolution changed*/
@media only screen and (max-width: 39.9375em) {
  .js-tabs {
    border-top: 1px solid #dddddd; }
  .resp-tabs-list {
    display: none; }
  .resp-accordion {
    display: block;
    padding: 0 1rem;
    font-size: 1rem; }
  .resp-vtabs .resp-tabs-container {
    border: none;
    float: none;
    width: 100%;
    min-height: initial;
    clear: none; }
  .resp-accordion-closed {
    display: none !important; } }

@media only screen and (min-width: 40em) {
  .resp-tab-content-active {
    border-top: 1px solid #000; } }

@media only screen and (min-width: 64em) {
  .js-tabs {
    border-top: 1px solid #dddddd;
    padding-top: 2rem; } }

a.themed-nav {
  color: #333333; }
  a.themed-nav:hover, a.themed-nav:focus, a.themed-nav.active {
    color: #fff;
    background-color: #028F7E; }

.subtle, #kasse_one_form .subtaxes, .product__main-images .bx-caption, .product__meta-numbers, .product .price--original, .product .vat-info, .product__stockstatus, .rating input:checked ~ label, .rating label:hover ~ label, .productlist .price--original {
  opacity: .6; }

.nav--horizontal--right {
  text-align: right; }

.hfx--cover--light,
.hfx--cover--dark, .hfx--show-title, .hfx--tilt--right,
.hfx--tilt--left {
  position: relative;
  display: block;
  width: 100%;
  height: 100%; }

.hfx--blur:hover img {
  -webkit-filter: blur(2px);
  filter: blur(2px); }

.hfx--cover--light::before, .hfx--cover--light::after,
.hfx--cover--dark::before,
.hfx--cover--dark::after {
  position: absolute;
  width: 100%;
  height: 100%;
  opacity: 0;
  z-index: 1;
  -webkit-transition: opacity 0.3s ease;
  -moz-transition: opacity 0.3s ease;
  transition: opacity 0.3s ease; }

.hfx--cover--light::before,
.hfx--cover--dark::before {
  content: "";
  background-color: rgba(255, 255, 255, 0.65); }

.hfx--cover--light::after,
.hfx--cover--dark::after {
  display: inline-block;
  vertical-align: middle;
  /* use !important to prevent issues with browser extensions that change fonts */
  font-family: 'pioneer' !important;
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  /* Better Font Rendering =========== */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "";
  font-size: 1.875rem;
  line-height: 1;
  color: rgba(0, 0, 0, 0.65);
  top: 50%;
  left: 0;
  text-align: center;
  margin-top: -0.9375rem;
  height: 1em;
  z-index: 2; }

.hfx--cover--light:hover::before, .hfx--cover--light:hover::after,
.hfx--cover--dark:hover::before,
.hfx--cover--dark:hover::after {
  opacity: 1; }

.hfx--cover--dark::before {
  background-color: rgba(0, 0, 0, 0.65); }

.hfx--cover--dark::after {
  color: rgba(255, 255, 255, 0.75); }

.hfx--figcaption {
  margin: 0;
  position: relative;
  font-size: 1.5625rem;
  text-transform: uppercase;
  font-weight: bold;
  line-height: 1; }
  .hfx--figcaption figcaption {
    opacity: 0;
    position: absolute;
    padding: .5em;
    z-index: 2;
    -webkit-transition: opacity 0.3s ease-in-out, color 0.3s ease-in-out;
    -moz-transition: opacity 0.3s ease-in-out, color 0.3s ease-in-out;
    transition: opacity 0.3s ease-in-out, color 0.3s ease-in-out; }
  .hfx--figcaption .hfx--figcaption--bottom-left {
    bottom: 0;
    left: 0; }
  .hfx--figcaption .hfx--figcaption--bottom-right {
    bottom: 0;
    right: 0; }
  .hfx--figcaption .hfx--figcaption--top-left {
    top: 0;
    left: 0; }
  .hfx--figcaption .hfx--figcaption--top-right {
    top: 0;
    right: 0; }
  .hfx--figcaption .background--light {
    opacity: 1;
    color: rgba(0, 0, 0, 0.9); }
    .hfx--cover--dark:hover .hfx--figcaption .background--light,
    .hfx--cover--dark:focus .hfx--figcaption .background--light {
      color: rgba(255, 255, 255, 0.9); }
  .hfx--figcaption .background--dark {
    opacity: 1;
    color: rgba(255, 255, 255, 0.9); }
    .hfx--cover--light:hover .hfx--figcaption .background--dark,
    .hfx--cover--light:focus .hfx--figcaption .background--dark {
      color: rgba(0, 0, 0, 0.9); }

.hfx--levitate img {
  -webkit-transition: -webkit-transform, box-shadow;
  -moz-transition: -moz-transform, box-shadow;
  transition: transform, box-shadow; }

.hfx--levitate:hover img {
  -webkit-transform: scale(1.1) translatez(0);
  -moz-transform: scale(1.1) translatez(0);
  -ms-transform: scale(1.1) translatez(0);
  transform: scale(1.1) translatez(0);
  box-shadow: 0 3px 10px rgba(0, 0, 0, 0.25); }

.hfx--show-title {
  overflow: hidden; }
  .hfx--show-title img {
    opacity: 1;
    -webkit-transition: opacity 0.25s ease;
    -moz-transition: opacity 0.25s ease;
    transition: opacity 0.25s ease; }
  .hfx--show-title:after {
    content: attr(title);
    position: absolute;
    color: #333;
    bottom: -100%;
    background: rgba(255, 255, 255, 0.75);
    left: 0;
    width: 100%;
    padding: 1rem;
    -webkit-transition: bottom 0.25s ease;
    -moz-transition: bottom 0.25s ease;
    transition: bottom 0.25s ease; }
  .hfx--show-title:hover img {
    opacity: 0.3; }
  .hfx--show-title:hover:after {
    bottom: 0; }

.hfx--tilt--right,
.hfx--tilt--left {
  overflow: visible; }
  .hfx--tilt--right img,
  .hfx--tilt--left img {
    position: absolute;
    -webkit-transition: -webkit-transform;
    -moz-transition: -moz-transform;
    transition: transform; }

.hfx--tilt--right:hover img {
  -webkit-transform: rotate(5deg) translatez(0);
  -moz-transform: rotate(5deg) translatez(0);
  -ms-transform: rotate(5deg) translatez(0);
  transform: rotate(5deg) translatez(0); }

.hfx--tilt--left:hover img {
  -webkit-transform: rotate(-5deg) translatez(0);
  -moz-transform: rotate(-5deg) translatez(0);
  -ms-transform: rotate(-5deg) translatez(0);
  transform: rotate(-5deg) translatez(0); }

a[class^="hfx--"],
a[class*=" hfx--"] {
  text-decoration: none; }

.about-menu {
  text-align: center;
  line-height: 2.75rem;
  font-size: 0.875rem; }
  .about-menu a {
    padding: 0 .75rem; }
  .no-touch .about-menu {
    line-height: 2.1875rem; }
  .about-menu .login_btn.is-hidden {
    display: none; }

.block__box__headline {
  text-transform: none; }

.block__box__content,
.block__box__content ul,
.block__box__content ol,
.block__box__content dl {
  padding-top: 0;
  font-size: 0.875rem; }

.block__box--tip-a-friend input[type=submit],
.block__box--tip-a-friend .button,
.block__box--tip-a-friend select,
.block__box--account input[type=submit],
.block__box--account .button,
.block__box--account select,
.block__box--newsletter input[type=submit],
.block__box--newsletter .button,
.block__box--newsletter select,
.block__box--manufacturers input[type=submit],
.block__box--manufacturers .button,
.block__box--manufacturers select {
  margin-bottom: 0; }

.block__box--bestseller .block__box__content {
  padding-top: 0 !important; }

/* information menu */
#footer .block__box__content {
  background-color: transparent; }

.breadcrumbs {
  margin: 0;
  background-color: transparent; }
  .breadcrumbs li, .breadcrumbs a {
    line-height: 2.75rem; }
    .no-touch .breadcrumbs li, .no-touch .breadcrumbs a {
      line-height: 2.1875rem; }
  .breadcrumbs .current {
    display: none; }
  .breadcrumbs > *:before {
    /* use !important to prevent issues with browser extensions that change fonts */
    font-family: 'pioneer' !important;
    speak: none;
    font-style: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    line-height: 1;
    /* Better Font Rendering =========== */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    content: "";
    font-size: 0.9375rem;
    vertical-align: -5%;
    margin: 0 .2rem; }

@media only screen and (min-width: 40em) {
  .breadcrumbs .current {
    display: list-item; } }

.slider__wrapper {
  margin-bottom: 0.9375rem; }

.bx-pager-link:after,
.bx-pager-link.active:after {
  background: #f3f3f3; }

.cart-button--empty .cart-button__quantity {
  display: none; }

.categorylist__category__headline {
  font-size: 1.25rem;
  text-align: center; }

.categorylist__category-wrap {
  box-shadow: 0 0 0 rgba(51, 51, 51, 0);
  transition: box-shadow 300ms ease-out; }

.categorylist__category-wrap:hover {
  box-shadow: 0 0 1rem rgba(51, 51, 51, 0.2); }

#navmenu-v li li a {
  padding-left: 1.125rem; }

#navmenu-v li li li a {
  padding-left: 2.25rem; }

#navmenu-v li li li li a {
  padding-left: 3.375rem; }

#navmenu-v li li li li li a {
  padding-left: 4.5rem; }

.setting__form {
  z-index: 201; }

#main-menu {
  font-size: 0.875rem; }

@media only screen and (min-width: 64em) {
  #main-menu .icon-home {
    vertical-align: -10%; }
  .main-nav__item.level-0 {
    margin-right: 1px; }
    .main-nav__item.level-0 > a {
      font-weight: normal;
      font-size: 0.875rem; }
      .main-nav__item.level-0 > a:not(:hover) {
        background-color: #262626; }
      .main-nav__item.level-0 > a:after {
        display: none; }
    .main-nav__item.level-0.current > a,
    .main-nav__item.level-0.selected > a,
    .main-nav__item.level-0 > a.highlighted,
    .main-nav__item.level-0 > a:hover,
    .main-nav__item.level-0 > a:focus {
      background-color: #e3e3e3;
      color: #333333; }
    .frontpage .main-nav__item.level-0.current > a,
    .frontpage .main-nav__item.level-0.selected > a,
    .frontpage .main-nav__item.level-0 > a.highlighted,
    .frontpage .main-nav__item.level-0 > a:hover,
    .frontpage .main-nav__item.level-0 > a:focus {
      background-color: #f3f3f3;
      color: #333333; }
    .main-nav__item.level-0:last-child {
      border-bottom: none !important; }
  #nav {
    border-top: 0; }
  .no-touch .main-nav__item.level-0 > a,
  .no-touch .main-nav__item.level-0 > a:after {
    line-height: 2.1875rem; }
  .no-touch .main-nav__list a {
    padding-top: .25rem;
    padding-bottom: .25rem; }
  .no-touch .main-nav__item.level-0 > a {
    padding-top: inherit;
    padding-bottom: inherit; } }

#main-content,
#main-content-onepage {
  padding-top: 0.9375rem;
  padding-bottom: 0.9375rem; }

.page__title {
  margin-top: 0;
  padding-top: 0;
  padding-bottom: 0;
  margin-bottom: 0.9375rem;
  font-size: 1.875rem; }

#main {
  background-color: #f3f3f3; }

.product {
  background: #ffffff;
  padding: 0.9375rem; }

.product--on-sale .price {
  margin-top: 2.5rem;
  padding-top: 5px; }

.product--on-sale .discount {
  position: absolute;
  display: block;
  top: 0;
  left: 0.9375rem;
  background-color: rgba(186, 17, 54, 0.9);
  height: 2.5rem;
  line-height: 2.5rem;
  padding: 0 .75rem;
  font-weight: bold;
  font-size: 1.125rem;
  color: #b3b3b3; }
  .product--on-sale .discount:before {
    content: "";
    position: absolute;
    width: 50%;
    height: 0;
    border-top: 0;
    border-left: 0;
    border-right: 1rem solid rgba(186, 17, 54, 0.9);
    border-bottom: 10px solid transparent;
    bottom: -10px;
    left: 0;
    z-index: 2; }
  .product--on-sale .discount:after {
    content: "";
    position: absolute;
    width: 50%;
    height: 0;
    border-top: 0;
    border-right: 0;
    border-left: 1rem solid rgba(186, 17, 54, 0.9);
    border-bottom: 10px solid transparent;
    bottom: -10px;
    right: 0;
    z-index: 2; }

.productlist .offers {
  width: 50%;
  float: left; }

.productlist .vat-info,
.productlist .currency,
.productlist .price__saleprice-text {
  display: none; }

.productlist .price--original {
  display: block;
  clear: both;
  text-decoration: line-through;
  font-size: 0.8125rem; }

.productlist .price__display {
  line-height: 1.9375rem; }

.productlist .productlist__product__button {
  margin-bottom: 0;
  padding: .5rem 1rem;
  float: right; }

.productlist .discount {
  position: absolute;
  top: 1rem;
  right: -0.9375rem;
  background-color: rgba(186, 17, 54, 0.9);
  height: 3rem;
  line-height: 3rem;
  padding: 0 .75rem;
  font-weight: bold;
  font-size: 1.125rem; }
  .productlist .discount, .productlist .discount:hover {
    color: #fff; }
  .productlist .discount:before {
    position: absolute;
    content: "";
    width: 0;
    height: 0;
    left: -12px;
    border-top: 1.5rem solid transparent;
    border-right: 12px solid rgba(186, 17, 54, 0.9);
    border-bottom: 1.5rem solid transparent; }
  .productlist .discount:after {
    content: "";
    position: absolute;
    width: 0;
    height: 0;
    border-top: 0;
    border-left: 1rem solid #cccccc;
    border-bottom: 10px solid transparent;
    bottom: -10px;
    right: 0;
    z-index: 1; }

.productlist__product-wrap {
  box-shadow: 0 0 0 rgba(51, 51, 51, 0);
  transition: box-shadow 300ms ease-out;
  position: relative; }

.productlist__product-wrap:hover {
  box-shadow: 0 0 1rem rgba(51, 51, 51, 0.2); }

.productlist__product__button-wrap {
  width: 50%;
  float: right; }

.equal-height-column__image {
  margin-bottom: 0; }

.productlist__product__headline__wrapper {
  height: 3rem;
  text-align: center; }

.productlist__product__headline {
  font-size: 0.875rem;
  font-weight: bold;
  font-family: Helvetica, 'Trebuchet MS', Helvetica, Arial, sans-serif;
  text-align: center;
  display: inline-block; }

.productlist__product__description {
  clear: both;
  padding-top: .5rem;
  margin-bottom: 0;
  font-size: 0.875rem; }
  a:hover .productlist__product__description {
    color: #333333; }

.sidebar {
  padding-top: 0.4375rem; }
  .sidebar .block,
  .sidebar .block__box {
    margin-bottom: 1.875rem; }
    .sidebar .block:last-child,
    .sidebar .block__box:last-child {
      margin-bottom: 0; }
  .sidebar .block__box__headline-wrapper {
    background: #cccccc; }
  .sidebar .block__box.bordered--bottom, .sidebar .block__box.page__title, .sidebar .block__box.freight-option, .sidebar
  .block__box.payment-option, .sidebar .block__box.checkout--kco__custom-intro, .sidebar .checkout--kco .block__box.checkout__step, .checkout--kco .sidebar .block__box.checkout__step, .sidebar .block__box.product__title {
    border-bottom: none; }
  .sidebar .block__box__headline {
    color: #333333;
    text-transform: none;
    font-size: 1rem;
    padding: 0.35rem 0.75rem; }
  .sidebar .block__box__content {
    background-color: #ffffff;
    color: #333333;
    padding: 0.75rem;
    margin-bottom: .5rem;
    border: 1px solid #d9d9d9; }
  .sidebar .block__box--manufacturers select, .sidebar .block__box--manufacturers button {
    margin-bottom: 0; }
  .sidebar .block__box--banners_left .wrapper_banner > div,
  .sidebar .block__box--banners_right .wrapper_banner > div {
    margin-bottom: 0.75rem; }
    .sidebar .block__box--banners_left .wrapper_banner > div:last-child,
    .sidebar .block__box--banners_right .wrapper_banner > div:last-child {
      margin-bottom: 0; }

.social-buttons-list--product {
  position: static;
  width: auto;
  right: 0;
  top: 0; }

.social-buttons__headline-wrapper {
  display: block;
  text-align: center; }
  .social-buttons__headline-wrapper .block__box__headline {
    text-transform: none; }

.social-button {
  line-height: 2rem; }
  .social-button .social-button__link {
    border-radius: 0;
    width: 2rem;
    height: 2rem;
    font-size: 1rem; }

.social-buttons-list--product .social-button .social-button__link {
  border: none; }

.social-button--blogger:hover .social-button__link, .social-button--blogger:focus .social-button__link, .social-button--blogger:active .social-button__link,
.social-buttons-list--product .social-button--blogger .social-button__link {
  color: #fff;
  background-color: #fc9948;
  border-color: #fc9948; }

.social-button--ello:hover .social-button__link, .social-button--ello:focus .social-button__link, .social-button--ello:active .social-button__link,
.social-buttons-list--product .social-button--ello .social-button__link {
  color: #000;
  background-color: rgba(0, 0, 0, 0.1);
  border-color: rgba(0, 0, 0, 0.1); }

.social-button--facebook:hover .social-button__link, .social-button--facebook:focus .social-button__link, .social-button--facebook:active .social-button__link,
.social-buttons-list--product .social-button--facebook .social-button__link {
  color: #fff;
  background-color: #3b5998;
  border-color: #3b5998; }

.social-button--flickr:hover .social-button__link, .social-button--flickr:focus .social-button__link, .social-button--flickr:active .social-button__link,
.social-buttons-list--product .social-button--flickr .social-button__link {
  color: #fff;
  background-color: #ff0084;
  border-color: #ff0084; }

.social-button--googleplus:hover .social-button__link, .social-button--googleplus:focus .social-button__link, .social-button--googleplus:active .social-button__link,
.social-buttons-list--product .social-button--googleplus .social-button__link {
  color: #fff;
  background-color: #dd4b39;
  border-color: #dd4b39; }

.social-button--instagram:hover .social-button__link, .social-button--instagram:focus .social-button__link, .social-button--instagram:active .social-button__link,
.social-buttons-list--product .social-button--instagram .social-button__link {
  color: #fff;
  background-color: #517fa4;
  border-color: #517fa4; }

.social-button--linkedin:hover .social-button__link, .social-button--linkedin:focus .social-button__link, .social-button--linkedin:active .social-button__link,
.social-buttons-list--product .social-button--linkedin .social-button__link {
  color: #fff;
  background-color: #007bb6;
  border-color: #007bb6; }

.social-button--mail:hover .social-button__link, .social-button--mail:focus .social-button__link, .social-button--mail:active .social-button__link,
.social-buttons-list--product .social-button--mail .social-button__link {
  color: #fff;
  background-color: #333;
  border-color: #333; }

.social-button--pinterest:hover .social-button__link, .social-button--pinterest:focus .social-button__link, .social-button--pinterest:active .social-button__link,
.social-buttons-list--product .social-button--pinterest .social-button__link {
  color: #fff;
  background-color: #cb2027;
  border-color: #cb2027; }

.social-button--twitter:hover .social-button__link, .social-button--twitter:focus .social-button__link, .social-button--twitter:active .social-button__link,
.social-buttons-list--product .social-button--twitter .social-button__link {
  color: #fff;
  background-color: #00aced;
  border-color: #00aced; }

.social-button--vimeo:hover .social-button__link, .social-button--vimeo:focus .social-button__link, .social-button--vimeo:active .social-button__link,
.social-buttons-list--product .social-button--vimeo .social-button__link {
  color: #fff;
  background-color: #45bcf9;
  border-color: #45bcf9; }

.social-button--youtube:hover .social-button__link, .social-button--youtube:focus .social-button__link, .social-button--youtube:active .social-button__link,
.social-buttons-list--product .social-button--youtube .social-button__link {
  color: #fff;
  background-color: #cc181e;
  border-color: #cc181e; }

#splitmenu li {
  font-size: 0.875rem; }
  #splitmenu li.level-1 {
    font-size: 0.8125rem; }
    #splitmenu li.level-1 li {
      font-size: 0.75rem; }

.sidebar .nav-side, .sidebar #block-venstre #js-box-7-contents, #block-venstre .sidebar #js-box-7-contents {
  padding: 0; }

.sidebar .nav-side.block__box__content, .sidebar #block-venstre .block__box__content#js-box-7-contents, #block-venstre .sidebar .block__box__content#js-box-7-contents {
  border-bottom: none; }

.block__box li a:before,
.block__box li.parent > a:before {
  display: none; }

.block__box ul ul li {
  padding-left: 0; }

.sidebar .nav-side a, .sidebar #block-venstre #js-box-7-contents a, #block-venstre .sidebar #js-box-7-contents a {
  padding: 0 2rem 0 0.75rem;
  line-height: 2.1875rem;
  color: #333333;
  border-bottom: 1px solid #d9d9d9;
  text-decoration: none; }
  .touch .sidebar .nav-side a, .touch .sidebar #block-venstre #js-box-7-contents a, #block-venstre .touch .sidebar #js-box-7-contents a {
    line-height: 2.75rem; }
  .sidebar .nav-side a:hover, .sidebar #block-venstre #js-box-7-contents a:hover, #block-venstre .sidebar #js-box-7-contents a:hover {
    background-color: whitesmoke; }

.nav-side .parent > a, #block-venstre #js-box-7-contents .parent > a {
  position: relative; }

.nav-side .parent.current > ul, #block-venstre #js-box-7-contents .parent.current > ul, .nav-side .parent.selected > ul, #block-venstre #js-box-7-contents .parent.selected > ul {
  display: block;
  background-color: whitesmoke; }
  .nav-side .parent.current > ul a:hover, #block-venstre #js-box-7-contents .parent.current > ul a:hover, .nav-side .parent.selected > ul a:hover, #block-venstre #js-box-7-contents .parent.selected > ul a:hover {
    background-color: #f0f0f0; }

.nav-side .parent.current > a:after, #block-venstre #js-box-7-contents .parent.current > a:after, .nav-side .parent.selected > a:after, #block-venstre #js-box-7-contents .parent.selected > a:after {
  -webkit-transform: rotatex(180deg);
  -moz-transform: rotatex(180deg);
  -ms-transform: rotatex(180deg);
  transform: rotatex(180deg); }

.nav-side .parent.current > a.toggled:after, #block-venstre #js-box-7-contents .parent.current > a.toggled:after, .nav-side .parent.selected > a.toggled:after, #block-venstre #js-box-7-contents .parent.selected > a.toggled:after {
  -webkit-transform: rotatex(0deg);
  -moz-transform: rotatex(0deg);
  -ms-transform: rotatex(0deg);
  transform: rotatex(0deg); }

.nav-side ul.level-1.toggled, #block-venstre #js-box-7-contents ul.level-1.toggled {
  background-color: whitesmoke; }
  .nav-side ul.level-1.toggled .main-nav__toggle, #block-venstre #js-box-7-contents ul.level-1.toggled .main-nav__toggle, .nav-side ul.level-1.toggled .main-nav__toggle:before, #block-venstre #js-box-7-contents ul.level-1.toggled .main-nav__toggle:before {
    color: rgba(1, 125, 110, 0.9) !important; }
  .nav-side ul.level-1.toggled .main-nav__toggle.toggled:before, #block-venstre #js-box-7-contents ul.level-1.toggled .main-nav__toggle.toggled:before {
    color: rgba(112, 112, 112, 0.7) !important; }
  .nav-side ul.level-1.toggled .main-nav__toggle:hover, #block-venstre #js-box-7-contents ul.level-1.toggled .main-nav__toggle:hover {
    cursor: pointer;
    background: #d6d6d6; }
    .nav-side ul.level-1.toggled .main-nav__toggle:hover, #block-venstre #js-box-7-contents ul.level-1.toggled .main-nav__toggle:hover, .nav-side ul.level-1.toggled .main-nav__toggle:hover:before, #block-venstre #js-box-7-contents ul.level-1.toggled .main-nav__toggle:hover:before {
      color: rgba(1, 105, 92, 0.9) !important; }

.nav-side .current > a, #block-venstre #js-box-7-contents .current > a {
  font-weight: bold; }

.nav-side .level-1 a, #block-venstre #js-box-7-contents .level-1 a {
  padding-left: 1.5rem; }

.nav-side .level-2 a, #block-venstre #js-box-7-contents .level-2 a {
  padding-left: 2.25rem; }

.nav-side .level-3 a, #block-venstre #js-box-7-contents .level-3 a {
  padding-left: 3rem; }

.nav-side .level-4 a, #block-venstre #js-box-7-contents .level-4 a {
  padding-left: 3.75rem; }

#logo-row {
  border-top: none; }

#logo {
  padding-top: .5rem; }
  #logo h1 {
    font-size: 2rem; }

.utils-nav {
  padding: 0 0 1rem 0; }
  .utils-nav [class^="icon-"]:before,
  .utils-nav [class*=" icon-"]:before {
    font-size: 1.25rem;
    vertical-align: -10%; }
  .utils-nav a {
    line-height: 1.875rem; }
  .utils-nav .icon-language {
    margin-right: .2rem; }

.currency-name {
  display: none !important; }

.utils-nav__item {
  padding-top: .75rem;
  line-height: 1.875rem;
  height: 1.875rem;
  vertical-align: top;
  margin-right: .5rem;
  border-top: 2px solid transparent; }
  .utils-nav__item:last-child {
    margin-right: 0; }
  .utils-nav__item.selected {
    border-top: 2px solid #BA1136; }

.setting__button span {
  font-size: 0.875rem;
  line-height: 1.25rem;
  display: none; }

.cart-button__quantity {
  border-radius: 50%;
  width: 1.35rem;
  position: absolute;
  padding: 0;
  margin: 0.2625rem 0;
  font-size: 0.6875rem;
  bottom: 0;
  left: 1.3rem; }

.cart-button,
.icon-shopping-cart {
  display: inline-block; }

.utils-nav .icon-shopping-cart {
  margin-right: 1.35rem; }

.utils-nav .cart-button--empty .icon-shopping-cart {
  margin-right: 0; }

.header__search__wrapper {
  text-align: left; }
  .header__search__wrapper form {
    max-width: 378px;
    display: block;
    width: 100%;
    float: right; }
  .header__search__wrapper input, .header__search__wrapper button {
    margin-bottom: 0; }

.utilities,
.logo-img {
  margin-bottom: 1rem; }

#language-close:target ~ #language, #currency-close:target ~ #currency {
  z-index: 201; }

@media only screen and (min-width: 40em) {
  .utils-nav__item {
    padding-top: 1.2rem; }
  .setting__button span {
    display: inline-block; } }

@media only screen and (min-width: 64em) {
  #logo h1 {
    font-size: 2.5rem; }
  .utils-nav .icon-shopping-cart {
    margin-right: 2.35rem; }
  .utils-nav .cart-button--empty .icon-shopping-cart {
    margin-right: 0; }
  .utils-nav__item {
    padding-top: 0.25rem; }
  .cart-and-checkout .checkout-button {
    display: inline-block !important;
    padding: 0 .5rem 0 1rem;
    height: 1.875rem;
    line-height: 1.875rem;
    font-size: 0.8125rem;
    float: right;
    margin-bottom: 0; }
  .cart-and-checkout .cart-button--empty + .checkout-button {
    display: none !important; } }

.navigation-bg .about-menu {
  text-align: left;
  white-space: nowrap; }
  .navigation-bg .about-menu .nav__item {
    font-weight: normal;
    font-size: 0.875rem;
    margin-right: 1px;
    float: left; }
    .navigation-bg .about-menu .nav__item:not(:hover) {
      background-color: #262626; }
    .navigation-bg .about-menu .nav__item:after {
      display: none; }
    .navigation-bg .about-menu .nav__item.current a, .navigation-bg .about-menu .nav__item:hover a, .navigation-bg .about-menu .nav__item:focus a {
      background-color: #e3e3e3;
      color: #333333; }
    .navigation-bg .about-menu .nav__item .login_btn.is-hidden {
      display: none; }
  .frontpage .navigation-bg .about-menu .nav__item.current a, .frontpage .navigation-bg .about-menu .nav__item:hover a, .frontpage .navigation-bg .about-menu .nav__item:focus a {
    background-color: #f3f3f3;
    color: #333333; }
  .navigation-bg .about-menu:last-child {
    border-bottom: none !important; }

@media only screen and (min-width: 90em) {
  .bx-prev {
    left: 0; }
  .bx-next {
    right: 0; } }

@media only screen and (min-width: 64em) {
  .nav-offcanvas {
    display: none; } }

.sidebar--frontpage {
  padding-top: 0; }

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3NpYy5jc3MiLCJzb3VyY2VzIjpbImNsYXNzaWMuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L19fZGVidWcvX21hc3Rlci5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvZm91bmRhdGlvbi9fZnVuY3Rpb25zLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9fZnVuY3Rpb25zLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9mdW5jdGlvbnMvX2NvbG9yLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9mdW5jdGlvbnMvX21hdGguc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2Z1bmN0aW9ucy9tYXRoL19jb25zdGFudHMuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2Z1bmN0aW9ucy9tYXRoL19hYnMuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2Z1bmN0aW9ucy9tYXRoL19leHAuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2Z1bmN0aW9ucy9tYXRoL19mYWN0LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9mdW5jdGlvbnMvbWF0aC9fZnJleHAuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2Z1bmN0aW9ucy9tYXRoL19sZGV4cC5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvZnVuY3Rpb25zL21hdGgvX2xvZy5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvZnVuY3Rpb25zL21hdGgvX2x1bWluYW5jZS1wcmVjYWxjLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9mdW5jdGlvbnMvbWF0aC9fcG93LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9mdW5jdGlvbnMvbWF0aC9fbnRoLXJvb3Quc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2Z1bmN0aW9ucy9tYXRoL19zcXJ0LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9mdW5jdGlvbnMvbWF0aC9fdHJpZ29ub21ldHJ5LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9mdW5jdGlvbnMvX3JlcGxhY2UtbnRoLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9mdW5jdGlvbnMvX3N0cmluZ3Muc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2Z1bmN0aW9ucy9zdHJpbmdzL19zdHItZXhwbG9kZS5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvZnVuY3Rpb25zL191bml0cy5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L3N0eWxlcy9fZm9udHMuc2NzcyIsIl9zZXR0aW5ncy5zY3NzIiwiX2NvbG9yLXNldHRpbmdzLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvc2V0dGluZ3MvX2Jhc2Utc2V0dGluZ3Muc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9zZXR0aW5ncy9fYmFzZS1jb2xvci1zZXR0aW5ncy5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L3N0eWxlcy9fY29sb3ItY29udHJhc3Quc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L19ub3JtYWxpemUuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L19taXhpbnMuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L21peGlucy9fYWNjZXNzaWJpbGl0eS5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbWl4aW5zL19jZW50ZXIuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L21peGlucy9faGFpcmxpbmUtYm9yZGVyLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9taXhpbnMvX250aC1jaGlsZHJlbi5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbWl4aW5zL190cmFuc2Zvcm0uc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL2JvdXJib24vc2V0dGluZ3MvX3ByZWZpeGVyLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9ib3VyYm9uL2FkZG9ucy9fcHJlZml4ZXIuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL2JvdXJib24vY3NzMy9fYW5pbWF0aW9uLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9ib3VyYm9uL2NzczMvX2JhY2tmYWNlLXZpc2liaWxpdHkuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL2JvdXJib24vY3NzMy9fYm9yZGVyLXJhZGl1cy5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvYm91cmJvbi9jc3MzL19mbGV4LWJveC5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvYm91cmJvbi9jc3MzL19rZXlmcmFtZXMuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL2JvdXJib24vY3NzMy9fbGluZWFyLWdyYWRpZW50LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9ib3VyYm9uL2NzczMvX3BlcnNwZWN0aXZlLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9ib3VyYm9uL2NzczMvX3RyYW5zZm9ybS5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvYm91cmJvbi9jc3MzL190cmFuc2l0aW9uLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9mb3VuZGF0aW9uL2NvbXBvbmVudHMvX2FsZXJ0LWJveGVzLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9mb3VuZGF0aW9uL2NvbXBvbmVudHMvX2dsb2JhbC5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvZm91bmRhdGlvbi9fZnVuY3Rpb25zLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9mb3VuZGF0aW9uL2NvbXBvbmVudHMvX2Jsb2NrLWdyaWQuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL2ZvdW5kYXRpb24vY29tcG9uZW50cy9fYnJlYWRjcnVtYnMuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL2ZvdW5kYXRpb24vY29tcG9uZW50cy9fZm9ybXMuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL2ZvdW5kYXRpb24vY29tcG9uZW50cy9fYnV0dG9ucy5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvZm91bmRhdGlvbi9jb21wb25lbnRzL19ncmlkLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9mb3VuZGF0aW9uL2NvbXBvbmVudHMvX2lubGluZS1saXN0cy5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvZm91bmRhdGlvbi9jb21wb25lbnRzL190YWJsZXMuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL2ZvdW5kYXRpb24vY29tcG9uZW50cy9fdGFicy5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvZm91bmRhdGlvbi9jb21wb25lbnRzL19ncmlkLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9mb3VuZGF0aW9uL2NvbXBvbmVudHMvX3RodW1icy5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvZm91bmRhdGlvbi9jb21wb25lbnRzL190eXBlLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9mb3VuZGF0aW9uL2NvbXBvbmVudHMvX3Zpc2liaWxpdHkuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2Jsb2Nrcy9fcGFnaW5hdGlvbi5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvYmxvY2tzL25hdi9faG9yaXpvbnRhbC5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvYmxvY2tzL25hdi9fbmF2LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvX2ljb25zLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvX2ljb24tdmFycy5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L3N0eWxlcy9fbGluay12aXNpYmlsaXR5LWZpeC5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L2xheW91dC9fZ3JpZC1leHRyYXMuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9sYXlvdXQvX2Jhc2Uuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9fYWNjZXNzaWJpbGl0eS5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L2xheW91dC9oZWFkZXIvX3NldHRpbmdzLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvbGF5b3V0L2hlYWRlci9fbWFpbi1uYXYuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9sYXlvdXQvaGVhZGVyL19vZmZjYW52YXMtbmF2LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvbGF5b3V0L21haW4vX3RvcGJhbm5lcnMuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9sYXlvdXQvbWFpbi9fcGFnZS5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L2xheW91dC9mb290ZXIvX2Zvb3Rlci5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L19hbGVydC1ib3hlcy5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L19hbmltYXRpb24uc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9fYmVzdHNlbGxlci5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L19ibG9jay1pbWFnZS1ncmlkLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvX2Jsb2Nrcy5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L19ibG9ja3MtYmFubmVycy5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L19ib3JkZXJlZC5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L19idXR0b25zLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvX2J4c2xpZGVyLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvX2NhcnRfYnV0dG9uLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvX2NhcnQtYnV0dG9uLWZ1bGwuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9fY2FydC1idXR0b24tc2ltcGxlLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvX2NoZWNrb3V0LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvX2NoZWNrb3V0X2tjby5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvZm91bmRhdGlvbi9jb21wb25lbnRzL19yZXZlYWwuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2NvbXBvbmVudHMvX3JlYWN0LXNlbGVjdC5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvY29tcG9uZW50cy9yZWFjdC1zZWxlY3Qvc2VsZWN0LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9jb21wb25lbnRzL3JlYWN0LXNlbGVjdC9jb250cm9sLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9jb21wb25lbnRzL3JlYWN0LXNlbGVjdC9zcGlubmVyLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9jb21wb25lbnRzL3JlYWN0LXNlbGVjdC9taXhpbnMuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2NvbXBvbmVudHMvcmVhY3Qtc2VsZWN0L21lbnUuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2NvbXBvbmVudHMvcmVhY3Qtc2VsZWN0L211bHRpLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvX2NvbW1lbnRzLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvX2Nvb2tpZS1ub3RpY2Uuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9fZXF1YWwtaGVpZ2h0LWNvbHVtbnMuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9fZmFuY3lib3guc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9fZm9ybXMuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9fa2xhcm5hLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvX2xhbmd1YWdlLWN1cnJlbmN5LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvX3BhZ2VzLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvcGFnZXMvX2NhcnQuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9wYWdlcy9fZnJvbnRwYWdlLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvcGFnZXMvX3JlY2VpcHQuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9wYWdlcy9fcmVnaXN0ZXItYWNjb3VudC5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L3BhZ2VzL193aXNobGlzdC5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L19wYWdpbmF0aW9uLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvX3Byb2R1Y3Quc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9fcHJvZHVjdC1zZWFyY2guc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9fcmF0aW5nLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvX3JlYWRvbi1pY29uLWNlbnRlcmVkLW9uLWhvdmVyLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvX3NlYXJjaC1ib3guc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL2JvdXJib24vY3NzMy9fcGxhY2Vob2xkZXIuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9fc2VhcmNoLWJveC0tYWN0aXZpdHktaW5kaWNhdG9yLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvX3NsaWRlci5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L19zb2NpYWwtYnV0dG9ucy5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L19zcGlubmVyLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvX3NwbGl0bWVudS5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L190YWJsZXMuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9fdGFicy5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L190aGVtZWQtbmF2aWdhdGlvbi5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L190eXBvZ3JhcGh5LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9fY29tbW9uLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9jb21wb25lbnRzL19zdGlja3ktZm9vdGVyLW1lbnUuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2NvbXBvbmVudHMvX3NsaWRlLWluLW1lbnUuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2NvbXBvbmVudHMvX3NlYXJjaC1tb2RhbC5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvYmxvY2tzL25hdi9faG9yaXpvbnRhbC0tcmlnaHQuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2NvbXBvbmVudHMvX2hvdmVyZnguc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL2JvdXJib24vY3NzMy9fZmlsdGVyLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9jb21wb25lbnRzL2hvdmVyZngvX2Jhc2Uuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2NvbXBvbmVudHMvaG92ZXJmeC9fYmx1ci5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvY29tcG9uZW50cy9ob3ZlcmZ4L19jb3Zlci5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvY29tcG9uZW50cy9ob3ZlcmZ4L19maWdjYXB0aW9uLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9jb21wb25lbnRzL2hvdmVyZngvX2xldml0YXRlLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9jb21wb25lbnRzL2hvdmVyZngvX3Nob3d0aXRsZS5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvY29tcG9uZW50cy9ob3ZlcmZ4L190aWx0LnNjc3MiLCJlc3NlbmNlL2NvbXBvbmVudHMvX2Fib3V0LW1lbnUuc2NzcyIsImVzc2VuY2UvY29tcG9uZW50cy9fYmxvY2tzLnNjc3MiLCJlc3NlbmNlL2NvbXBvbmVudHMvX2JyZWFkY3J1bWJzLnNjc3MiLCJlc3NlbmNlL2NvbXBvbmVudHMvX2J4c2xpZGVyLnNjc3MiLCJlc3NlbmNlL2NvbXBvbmVudHMvX2NhcnQuc2NzcyIsImVzc2VuY2UvY29tcG9uZW50cy9fY2F0ZWdvcnlsaXN0LnNjc3MiLCJlc3NlbmNlL2NvbXBvbmVudHMvX2luZm9wYWdlcy1tZW51LWJsb2NrLnNjc3MiLCJlc3NlbmNlL2NvbXBvbmVudHMvX2xhbmd1YWdlLWN1cnJlbmN5LnNjc3MiLCJlc3NlbmNlL2NvbXBvbmVudHMvX21haW4tbmF2LnNjc3MiLCJlc3NlbmNlL2NvbXBvbmVudHMvX3BhZ2Uuc2NzcyIsImVzc2VuY2UvY29tcG9uZW50cy9fcHJvZHVjdC5zY3NzIiwiZXNzZW5jZS9jb21wb25lbnRzL19wcm9kdWN0bGlzdC5zY3NzIiwiZXNzZW5jZS9jb21wb25lbnRzL19zaWRlYmFyLnNjc3MiLCJlc3NlbmNlL2NvbXBvbmVudHMvX3NvY2lhbC1idXR0b25zLnNjc3MiLCJlc3NlbmNlL2NvbXBvbmVudHMvX3NwbGl0bWVudS5zY3NzIiwiZXNzZW5jZS9jb21wb25lbnRzL191dGlscy1uYXYuc2NzcyIsImNvbXBvbmVudHMvX2Fib3V0LW1lbnUuc2NzcyIsImNvbXBvbmVudHMvX2J4c2xpZGVyLnNjc3MiLCJjb21wb25lbnRzL19tYWluLW5hdi5zY3NzIiwiY29tcG9uZW50cy9fc2lkZWJhci5zY3NzIl0sInNvdXJjZXNDb250ZW50IjpbIkBpbXBvcnQgJ3F1aWNrZml4L19fZGVidWcvbWFzdGVyJztcblxuJGZvbnQtY29tYm86IFwiSGVsdmV0aWNhLCAnVHJlYnVjaGV0IE1TJywgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjsgJ0dlb3JnaWEnLCBzZXJpZlwiICFkZWZhdWx0OyAvLyBNdXN0IGJlIHNldCBiZWZvcmUgcGlvbmVlci9zdHlsZXMvZm9udHMgaXMgbG9hZGVkXG5cbi8vIFBpb25lZXIvZm91bmRhdGlvbiBzZXR0aW5ncywgZnVuY3Rpb25zLCBnZW5lcmFsLCBtaXhpbnMgZXRjLlxuQGltcG9ydCBcImZvdW5kYXRpb24vZnVuY3Rpb25zXCI7XG5AaW1wb3J0IFwicXVpY2tmaXgvZnVuY3Rpb25zXCI7XG5AaW1wb3J0IFwicXVpY2tmaXgvbGVnYWN5L3N0eWxlcy9mb250c1wiO1xuXG4vLyBFc3NlbmNlIHNldHRpbmdzXG5AaW1wb3J0IFwic2V0dGluZ3NcIjtcbkBpbXBvcnQgXCJjb2xvci1zZXR0aW5nc1wiO1xuXG4vLyBQaW9uZWVyIHNldHRpbmdzIGNvbnRpbnVlZFxuQGltcG9ydCBcInF1aWNrZml4L2xlZ2FjeS9zZXR0aW5ncy9iYXNlLXNldHRpbmdzXCI7XG5AaW1wb3J0IFwicXVpY2tmaXgvbGVnYWN5L3NldHRpbmdzL2Jhc2UtY29sb3Itc2V0dGluZ3NcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvc3R5bGVzL2NvbG9yLWNvbnRyYXN0XCI7XG5cbkBpbXBvcnQgXCJxdWlja2ZpeC9ub3JtYWxpemVcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9taXhpbnNcIjtcblxuLy8gQm91cmJvbiBzdHVmZlxuQGltcG9ydCBcImJvdXJib24vc2V0dGluZ3MvcHJlZml4ZXJcIjtcbkBpbXBvcnQgXCJib3VyYm9uL2FkZG9ucy9wcmVmaXhlclwiO1xuQGltcG9ydCBcImJvdXJib24vY3NzMy9hbmltYXRpb25cIjtcbkBpbXBvcnQgXCJib3VyYm9uL2NzczMvYmFja2ZhY2UtdmlzaWJpbGl0eVwiO1xuQGltcG9ydCBcImJvdXJib24vY3NzMy9ib3JkZXItcmFkaXVzXCI7XG5AaW1wb3J0IFwiYm91cmJvbi9jc3MzL2ZsZXgtYm94XCI7XG5AaW1wb3J0IFwiYm91cmJvbi9jc3MzL2tleWZyYW1lc1wiO1xuQGltcG9ydCBcImJvdXJib24vY3NzMy9saW5lYXItZ3JhZGllbnRcIjtcbkBpbXBvcnQgXCJib3VyYm9uL2NzczMvcGVyc3BlY3RpdmVcIjtcbkBpbXBvcnQgXCJib3VyYm9uL2NzczMvdHJhbnNmb3JtXCI7XG5AaW1wb3J0IFwiYm91cmJvbi9jc3MzL3RyYW5zaXRpb25cIjtcblxuLy8gRm91bmRhdGlvbiBjb21wb25lbnRzXG5AaW1wb3J0IFwiZm91bmRhdGlvbi9jb21wb25lbnRzL2FsZXJ0LWJveGVzXCI7XG5AaW1wb3J0IFwiZm91bmRhdGlvbi9jb21wb25lbnRzL2Jsb2NrLWdyaWRcIjtcbkBpbXBvcnQgXCJmb3VuZGF0aW9uL2NvbXBvbmVudHMvYnJlYWRjcnVtYnNcIjtcbkBpbXBvcnQgXCJmb3VuZGF0aW9uL2NvbXBvbmVudHMvZm9ybXNcIjtcbkBpbXBvcnQgXCJmb3VuZGF0aW9uL2NvbXBvbmVudHMvZ3JpZFwiO1xuQGltcG9ydCBcImZvdW5kYXRpb24vY29tcG9uZW50cy9pbmxpbmUtbGlzdHNcIjtcbkBpbXBvcnQgXCJmb3VuZGF0aW9uL2NvbXBvbmVudHMvdGFibGVzXCI7XG5AaW1wb3J0IFwiZm91bmRhdGlvbi9jb21wb25lbnRzL3RhYnNcIjtcbkBpbXBvcnQgXCJmb3VuZGF0aW9uL2NvbXBvbmVudHMvdGh1bWJzXCI7XG5AaW1wb3J0IFwiZm91bmRhdGlvbi9jb21wb25lbnRzL3R5cGVcIjtcbkBpbXBvcnQgXCJmb3VuZGF0aW9uL2NvbXBvbmVudHMvdmlzaWJpbGl0eVwiO1xuXG5AaW1wb3J0IFwicXVpY2tmaXgvYmxvY2tzL3BhZ2luYXRpb25cIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvaWNvbnNcIjtcblxuQGltcG9ydCBcInF1aWNrZml4L2xlZ2FjeS9zdHlsZXMvbGluay12aXNpYmlsaXR5LWZpeFwiO1xuQGltcG9ydCBcInF1aWNrZml4L2xlZ2FjeS9sYXlvdXQvZ3JpZC1leHRyYXNcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvbGF5b3V0L2Jhc2VcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvYWNjZXNzaWJpbGl0eVwiO1xuQGltcG9ydCBcInF1aWNrZml4L2xlZ2FjeS9sYXlvdXQvaGVhZGVyL3NldHRpbmdzXCI7XG5AaW1wb3J0IFwicXVpY2tmaXgvbGVnYWN5L2xheW91dC9oZWFkZXIvbWFpbi1uYXZcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvbGF5b3V0L2hlYWRlci9vZmZjYW52YXMtbmF2XCI7XG5AaW1wb3J0IFwicXVpY2tmaXgvbGVnYWN5L2xheW91dC9tYWluL3RvcGJhbm5lcnNcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvbGF5b3V0L21haW4vcGFnZVwiO1xuQGltcG9ydCBcInF1aWNrZml4L2xlZ2FjeS9sYXlvdXQvZm9vdGVyL2Zvb3RlclwiO1xuXG4vLyBQaW9uZWVyIGNvbXBvbmVudHNcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvYWxlcnQtYm94ZXNcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvYW5pbWF0aW9uXCI7XG5AaW1wb3J0IFwicXVpY2tmaXgvbGVnYWN5L2Jlc3RzZWxsZXJcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvYmxvY2staW1hZ2UtZ3JpZFwiO1xuQGltcG9ydCBcInF1aWNrZml4L2xlZ2FjeS9ibG9ja3NcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvYmxvY2tzLWJhbm5lcnNcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvYm9yZGVyZWRcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvYnV0dG9uc1wiO1xuQGltcG9ydCBcInF1aWNrZml4L2xlZ2FjeS9ieHNsaWRlclwiO1xuQGltcG9ydCBcInF1aWNrZml4L2xlZ2FjeS9jYXJ0X2J1dHRvblwiO1xuQGltcG9ydCBcInF1aWNrZml4L2xlZ2FjeS9jaGVja291dFwiO1xuQGltcG9ydCBcInF1aWNrZml4L2xlZ2FjeS9jaGVja291dF9rY29cIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvY29tbWVudHNcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvY29va2llLW5vdGljZVwiO1xuQGltcG9ydCBcInF1aWNrZml4L2xlZ2FjeS9lcXVhbC1oZWlnaHQtY29sdW1uc1wiO1xuQGltcG9ydCBcInF1aWNrZml4L2xlZ2FjeS9mYW5jeWJveFwiO1xuQGltcG9ydCBcInF1aWNrZml4L2xlZ2FjeS9mb3Jtc1wiO1xuQGltcG9ydCBcInF1aWNrZml4L2xlZ2FjeS9rbGFybmFcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvbGFuZ3VhZ2UtY3VycmVuY3lcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvcGFnZXNcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9ibG9ja3MvcGFnaW5hdGlvblwiO1xuQGltcG9ydCBcInF1aWNrZml4L2xlZ2FjeS9wYWdpbmF0aW9uXCI7XG5AaW1wb3J0IFwicXVpY2tmaXgvbGVnYWN5L3Byb2R1Y3RcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvcHJvZHVjdC1zZWFyY2hcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvcmF0aW5nXCI7XG5AaW1wb3J0IFwicXVpY2tmaXgvbGVnYWN5L3JlYWRvbi1pY29uLWNlbnRlcmVkLW9uLWhvdmVyXCI7XG5AaW1wb3J0IFwicXVpY2tmaXgvbGVnYWN5L3NlYXJjaC1ib3hcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvc2VhcmNoLWJveC0tYWN0aXZpdHktaW5kaWNhdG9yXCI7XG5AaW1wb3J0IFwicXVpY2tmaXgvbGVnYWN5L3NsaWRlclwiO1xuQGltcG9ydCBcInF1aWNrZml4L2xlZ2FjeS9zb2NpYWwtYnV0dG9uc1wiO1xuQGltcG9ydCBcInF1aWNrZml4L2xlZ2FjeS9zcGlubmVyXCI7XG5AaW1wb3J0IFwicXVpY2tmaXgvbGVnYWN5L3NwbGl0bWVudVwiO1xuQGltcG9ydCBcInF1aWNrZml4L2xlZ2FjeS90YWJsZXNcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvdGFic1wiO1xuQGltcG9ydCBcInF1aWNrZml4L2xlZ2FjeS90aGVtZWQtbmF2aWdhdGlvblwiO1xuQGltcG9ydCBcInF1aWNrZml4L2xlZ2FjeS90eXBvZ3JhcGh5XCI7XG5cbi8vIENvbW1vbiBzdHVmZiBmb3IgYWxsIHRoZW1lc1xuQGltcG9ydCBcInF1aWNrZml4L2NvbW1vblwiO1xuXG4vLyBRdWlja2ZpeCBjb21wb25lbnRzXG5AaW1wb3J0IFwicXVpY2tmaXgvYmxvY2tzL25hdi9ob3Jpem9udGFsLS1yaWdodFwiO1xuQGltcG9ydCBcInF1aWNrZml4L2NvbXBvbmVudHMvaG92ZXJmeFwiO1xuXG4vLyBFc3NlbmNlIGNvbXBvbmVudHNcbkBpbXBvcnQgXCJlc3NlbmNlL2NvbXBvbmVudHMvYWJvdXQtbWVudVwiO1xuQGltcG9ydCBcImVzc2VuY2UvY29tcG9uZW50cy9ibG9ja3NcIjtcbkBpbXBvcnQgXCJlc3NlbmNlL2NvbXBvbmVudHMvYnJlYWRjcnVtYnNcIjtcbkBpbXBvcnQgXCJlc3NlbmNlL2NvbXBvbmVudHMvYnhzbGlkZXJcIjtcbkBpbXBvcnQgXCJlc3NlbmNlL2NvbXBvbmVudHMvY2FydFwiO1xuQGltcG9ydCBcImVzc2VuY2UvY29tcG9uZW50cy9jYXRlZ29yeWxpc3RcIjtcbkBpbXBvcnQgXCJlc3NlbmNlL2NvbXBvbmVudHMvaW5mb3BhZ2VzLW1lbnUtYmxvY2tcIjtcbkBpbXBvcnQgXCJlc3NlbmNlL2NvbXBvbmVudHMvbGFuZ3VhZ2UtY3VycmVuY3lcIjtcbkBpbXBvcnQgXCJlc3NlbmNlL2NvbXBvbmVudHMvbWFpbi1uYXZcIjtcbkBpbXBvcnQgXCJlc3NlbmNlL2NvbXBvbmVudHMvcGFnZVwiO1xuQGltcG9ydCBcImVzc2VuY2UvY29tcG9uZW50cy9wcm9kdWN0XCI7XG5AaW1wb3J0IFwiZXNzZW5jZS9jb21wb25lbnRzL3Byb2R1Y3RsaXN0XCI7XG5AaW1wb3J0IFwiZXNzZW5jZS9jb21wb25lbnRzL3NpZGViYXJcIjtcbkBpbXBvcnQgXCJlc3NlbmNlL2NvbXBvbmVudHMvc29jaWFsLWJ1dHRvbnNcIjtcbkBpbXBvcnQgXCJlc3NlbmNlL2NvbXBvbmVudHMvc3BsaXRtZW51XCI7XG5AaW1wb3J0IFwiZXNzZW5jZS9jb21wb25lbnRzL3V0aWxzLW5hdlwiO1xuXG4vLyBDbGFzc2ljIGNvbXBvbmVudHNcbkBpbXBvcnQgXCJjb21wb25lbnRzL2Fib3V0LW1lbnVcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL2J4c2xpZGVyXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9tYWluLW5hdlwiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvc2lkZWJhclwiO1xuIiwiLy8gVGhpcyBpcyBpZiB5b3Ugd2FudCB0byBwbGF5IG1hZXN0cm9cbi8vJHByaW1hcnktY29sb3I6ICM4MDgwODA7XG4vL0BpbXBvcnQgJ2Jhc2UnO1xuXG4vLyRjb250ZW50LWJnOiAjN0E3QTdBO1xuLy8kY2FsbC10by1hY3Rpb24tY29sb3I6ICNiZjU3MmU7IiwiLy8gRm91bmRhdGlvbiBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8gVGhpcyBpcyB0aGUgZGVmYXVsdCBodG1sIGFuZCBib2R5IGZvbnQtc2l6ZSBmb3IgdGhlIGJhc2UgcmVtIHZhbHVlLlxuJHJlbS1iYXNlOiAxNnB4ICFkZWZhdWx0O1xuXG4vLyBJTVBPUlQgT05DRVxuLy8gV2UgdXNlIHRoaXMgdG8gcHJldmVudCBzdHlsZXMgZnJvbSBiZWluZyBsb2FkZWQgbXVsdGlwbGUgdGltZXMgZm9yIGNvbXBvbmVudHMgdGhhdCByZWx5IG9uIG90aGVyIGNvbXBvbmVudHMuXG4kbW9kdWxlczogKCkgIWRlZmF1bHQ7XG5AbWl4aW4gZXhwb3J0cygkbmFtZSkge1xuICAvLyBJbXBvcnQgZnJvbSBnbG9iYWwgc2NvcGVcbiAgJG1vZHVsZXM6ICRtb2R1bGVzICFnbG9iYWw7XG4gIC8vIENoZWNrIGlmIGEgbW9kdWxlIGlzIGFscmVhZHkgb24gdGhlIGxpc3RcbiAgJG1vZHVsZV9pbmRleDogaW5kZXgoJG1vZHVsZXMsICRuYW1lKTtcbiAgQGlmICgoJG1vZHVsZV9pbmRleCA9PSBudWxsKSBvciAoJG1vZHVsZV9pbmRleCA9PSBmYWxzZSkpIHtcbiAgICAkbW9kdWxlczogYXBwZW5kKCRtb2R1bGVzLCAkbmFtZSkgIWdsb2JhbDtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vL1xuLy8gQGZ1bmN0aW9uc1xuLy9cblxuXG4vLyBSQU5HRVNcbi8vIFdlIHVzZSB0aGVzZSBmdW5jdGlvbnMgdG8gZGVmaW5lIHJhbmdlcyBmb3IgdmFyaW91cyB0aGluZ3MsIGxpa2UgbWVkaWEgcXVlcmllcy5cbkBmdW5jdGlvbiBsb3dlci1ib3VuZCgkcmFuZ2Upe1xuICBAaWYgbGVuZ3RoKCRyYW5nZSkgPD0gMCB7XG4gICAgQHJldHVybiAwO1xuICB9XG4gIEByZXR1cm4gbnRoKCRyYW5nZSwxKTtcbn1cblxuQGZ1bmN0aW9uIHVwcGVyLWJvdW5kKCRyYW5nZSkge1xuICBAaWYgbGVuZ3RoKCRyYW5nZSkgPCAyIHtcbiAgICBAcmV0dXJuIDk5OTk5OTk5OTk5OTtcbiAgfVxuICBAcmV0dXJuIG50aCgkcmFuZ2UsIDIpO1xufVxuXG4vLyBTVFJJUCBVTklUXG4vLyBJdCBzdHJpcHMgdGhlIHVuaXQgb2YgbWVhc3VyZSBhbmQgcmV0dXJucyBpdFxuQGZ1bmN0aW9uIHN0cmlwLXVuaXQoJG51bSkge1xuICBAcmV0dXJuICRudW0gLyAoJG51bSAqIDAgKyAxKTtcbn1cblxuLy8gVEVYVCBJTlBVVCBUWVBFU1xuXG5AZnVuY3Rpb24gdGV4dC1pbnB1dHMoICR0eXBlczogYWxsLCAkc2VsZWN0b3I6IGlucHV0ICkge1xuXG4gICAgJHJldHVybjogKCk7XG5cbiAgICAkYWxsLXRleHQtaW5wdXQtdHlwZXM6XG4gICAgICB0ZXh0XG4gICAgICBwYXNzd29yZFxuICAgICAgZGF0ZVxuICAgICAgZGF0ZXRpbWVcbiAgICAgIGRhdGV0aW1lLWxvY2FsXG4gICAgICBtb250aFxuICAgICAgd2Vla1xuICAgICAgZW1haWxcbiAgICAgIG51bWJlclxuICAgICAgc2VhcmNoXG4gICAgICB0ZWxcbiAgICAgIHRpbWVcbiAgICAgIHVybFxuICAgICAgY29sb3JcbiAgICAgIHRleHRhcmVhO1xuXG4gICAgQGlmICR0eXBlcyA9PSBhbGwgeyAkdHlwZXM6ICRhbGwtdGV4dC1pbnB1dC10eXBlczsgfVxuXG4gICAgQGVhY2ggJHR5cGUgaW4gJHR5cGVzIHtcbiAgICAgICAgQGlmICR0eXBlID09IHRleHRhcmVhIHtcbiAgICAgICAgICAgIEBpZiAkc2VsZWN0b3IgPT0gaW5wdXQge1xuICAgICAgICAgICAgICAkcmV0dXJuOiBhcHBlbmQoJHJldHVybiwgdW5xdW90ZSgnI3skdHlwZX0nKSwgY29tbWEpXG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgJHJldHVybjogYXBwZW5kKCRyZXR1cm4sIHVucXVvdGUoJyN7JHR5cGV9I3skc2VsZWN0b3J9JyksIGNvbW1hKVxuICAgICAgICAgICAgfVxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICRyZXR1cm46IGFwcGVuZCgkcmV0dXJuLCB1bnF1b3RlKCcjeyRzZWxlY3Rvcn1bdHlwZT1cIiN7JHR5cGV9XCJdJyksIGNvbW1hKVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgQHJldHVybiAkcmV0dXJuO1xuXG59XG5cbi8vIENPTlZFUlQgVE8gUkVNXG5AZnVuY3Rpb24gY29udmVydC10by1yZW0oJHZhbHVlLCAkYmFzZS12YWx1ZTogJHJlbS1iYXNlKSAge1xuICAkdmFsdWU6IHN0cmlwLXVuaXQoJHZhbHVlKSAvIHN0cmlwLXVuaXQoJGJhc2UtdmFsdWUpICogMXJlbTtcbiAgQGlmICgkdmFsdWUgPT0gMHJlbSkgeyAkdmFsdWU6IDA7IH0gLy8gVHVybiAwcmVtIGludG8gMFxuICBAcmV0dXJuICR2YWx1ZTtcbn1cblxuQGZ1bmN0aW9uIGRhdGEoJGF0dHIpIHtcbiAgQGlmICRuYW1lc3BhY2Uge1xuICAgIEByZXR1cm4gJ1tkYXRhLScgKyAkbmFtZXNwYWNlICsgJy0nICsgJGF0dHIgKyAnXSc7XG4gIH1cblxuICBAcmV0dXJuICdbZGF0YS0nICsgJGF0dHIgKyAnXSc7XG59XG5cbi8vIFJFTSBDQUxDXG5cbi8vIE5ldyBTeW50YXgsIGFsbG93cyB0byBvcHRpb25hbGx5IGNhbGN1bGF0ZSBvbiBhIGRpZmZlcmVudCBiYXNlIHZhbHVlIHRvIGNvdW50ZXIgY29tcG91bmRpbmcgZWZmZWN0IG9mIHJlbSdzLlxuLy8gQ2FsbCB3aXRoIDEsIDIsIDMgb3IgNCBwYXJhbWV0ZXJzLCAncHgnIGlzIG5vdCByZXF1aXJlZCBidXQgc3VwcG9ydGVkOlxuLy9cbi8vICAgcmVtLWNhbGMoMTAgMjAgMzBweCA0MCk7XG4vL1xuLy8gU3BhY2UgZGVsaW1pdGVkLCBpZiB5b3Ugd2FudCB0byBkZWxpbWl0IHVzaW5nIGNvbW1hJ3MsIHdyYXAgaXQgaW4gYW5vdGhlciBwYWlyIG9mIGJyYWNrZXRzXG4vL1xuLy8gICByZW0tY2FsYygoMTAsIDIwLCAzMCwgNDBweCkpO1xuLy9cbi8vIE9wdGlvbmFsbHkgY2FsbCB3aXRoIGEgZGlmZmVyZW50IGJhc2UgKGVnOiA4cHgpIHRvIGNhbGN1bGF0ZSByZW0uXG4vL1xuLy8gICByZW0tY2FsYygxNnB4IDMycHggNDhweCwgOHB4KTtcbi8vXG4vLyBJZiB5b3UgcmVxdWlyZSB0byBjb21tYSBzZXBhcmF0ZSB5b3VyIGxpc3Rcbi8vXG4vLyAgIHJlbS1jYWxjKCgxNnB4LCAzMnB4LCA0OCksIDhweCk7XG5cbkBmdW5jdGlvbiByZW0tY2FsYygkdmFsdWVzLCAkYmFzZS12YWx1ZTogJHJlbS1iYXNlKSB7XG4gICRtYXg6IGxlbmd0aCgkdmFsdWVzKTtcblxuICBAaWYgJG1heCA9PSAxIHsgQHJldHVybiBjb252ZXJ0LXRvLXJlbShudGgoJHZhbHVlcywgMSksICRiYXNlLXZhbHVlKTsgfVxuXG4gICRyZW1WYWx1ZXM6ICgpO1xuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRtYXgge1xuICAgICRyZW1WYWx1ZXM6IGFwcGVuZCgkcmVtVmFsdWVzLCBjb252ZXJ0LXRvLXJlbShudGgoJHZhbHVlcywgJGkpLCAkYmFzZS12YWx1ZSkpO1xuICB9XG4gIEByZXR1cm4gJHJlbVZhbHVlcztcbn1cblxuLy8gT0xEIEVNIENBTENcbi8vIERlcHJlY2F0ZWQ6IFdlJ2xsIGRyb3Agc3VwcG9ydCBmb3IgdGhpcyBpbiA1LjEuMCwgdXNlIHJlbS1jYWxjKClcbkBmdW5jdGlvbiBlbUNhbGMoJHZhbHVlcyl7XG4gIEByZXR1cm4gcmVtLWNhbGMoJHZhbHVlcyk7XG59XG5cbi8vIE9MRCBFTSBDQUxDXG4vLyBEZXByZWNhdGVkOiBXZSdsbCBkcm9wIHN1cHBvcnQgZm9yIHRoaXMgaW4gNS4xLjAsIHVzZSByZW0tY2FsYygpXG5AZnVuY3Rpb24gZW0tY2FsYygkdmFsdWVzKXtcbiAgQHJldHVybiByZW0tY2FsYygkdmFsdWVzKTtcbn1cbiIsIkBpbXBvcnQgXCJmdW5jdGlvbnMvY29sb3JcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvbWF0aFwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9yZXBsYWNlLW50aFwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9zdHJpbmdzXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL3VuaXRzXCI7IiwiLyoqXG4gKiBLdWRvcyB0byBodHRwOi8vbWFkZWJ5bWlrZS5jb20uYXUvd3JpdGluZy9hY2Nlc3NpYmxlLWNvbnRyYXN0LXdpdGgtbGVzcy1hbmQtc2Fzcy9cbiAqL1xuXG5AaW1wb3J0IFwibWF0aFwiO1xuXG4vLyBHZXQgdGhlIGx1bWlub3NpdHkgb2YgYSBjb2xvciBvbiBhIHNjYWxlIGZyb20gMCAoZGFya2VzdCkgdG8gMTAwIChsaWdodGVzdClcbkBmdW5jdGlvbiBsdW1hKCRjb2xvcil7XG4gICAgLy8gVGhhbmtzIHZveHBlbGxpIGZvciBhIHZlcnkgY29uY2lzZSBpbXBsZW1lbnRhdGlvbiBvZiBsdW1pbmFuY2UgbWVhc3VyZSBpbiBzYXNzXG4gICAgLy8gQWRhcHRlZCBmcm9tOiBodHRwczovL2dpc3QuZ2l0aHViLmNvbS92b3hwZWxsaS82MzA0ODEyXG4gICAgJHJnYmE6IHJlZCgkY29sb3IpLCBncmVlbigkY29sb3IpLCBibHVlKCRjb2xvcik7XG4gICAgJHJnYmEyOiAoKTtcblxuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggMyB7XG4gICAgICAgICRyZ2I6IG50aCgkcmdiYSwgJGkpO1xuICAgICAgICAkcmdiOiBtYXgoMCwgcm91bmQoJHJnYikpO1xuICAgICAgICAkcmdiOiBtaW4oMjU1LCByb3VuZCgkcmdiKSk7XG4gICAgICAgIC8vIE9sZCBBbGdvcml0aG06XG4gICAgICAgIC8vICRyZ2I6ICRyZ2IgLyAyNTU7XG4gICAgICAgIC8vICRyZ2I6IGlmKCRyZ2IgPCAuMDM5MjgsICRyZ2IgLyAxMi45MiwgcG93KCgkcmdiICsgLjA1NSkgLyAxLjA1NSwgMi40KSk7XG4gICAgICAgIC8vXG4gICAgICAgIC8vIFJlcGxhY2VkIHRoaXMgd2l0aCBMT1ZFTFkgcHJlY2FsY3VsYXRlZCBudW1iZXJzLCBmb3Igc3BlZWQsIHNpbmNlIHBvdyh4LCAyLjQpIGlzIHNsb3cgYXMgSEVMTCBpbiBTYXNzLlxuICAgICAgICAkcmdiOiBudGgoJGx1bWluYW5jZS1wcmVjYWxjLCAkcmdiICsgMSk7XG4gICAgICAgICRyZ2JhMjogYXBwZW5kKCRyZ2JhMiwgJHJnYik7XG4gICAgfVxuXG4gICAgQHJldHVybiAoLjIxMjYgKiBudGgoJHJnYmEyLCAxKSArIC43MTUyICogbnRoKCRyZ2JhMiwgMikgKyAwLjA3MjIgKiBudGgoJHJnYmEyLCAzKSkqMTAwO1xufVxuXG4vLyBSZXR1cm5zIGEgbnVtYmVyIGZyb20gMSAobG93IGNvbnRyYXN0KSB0byAyMSAoaGlnaCBjb250cmFzdClcbkBmdW5jdGlvbiBjb250cmFzdC1yYXRpbygkY29sb3IxLCAkY29sb3IyKSB7XG4gICAgJGx1bWExOiBsdW1hKCRjb2xvcjEpICsgNTtcbiAgICAkbHVtYTI6IGx1bWEoJGNvbG9yMikgKyA1O1xuICAgICRyYXRpbzogJGx1bWExIC8gJGx1bWEyO1xuICAgIEBpZiAkbHVtYTEgPCAkbHVtYTIge1xuICAgICAgICAkcmF0aW86IDEgLyAkcmF0aW87XG4gICAgfVxuXG4gICAgQHJldHVybiAkcmF0aW87XG59XG5cbi8qKlxuICogSXMgJGNvbG9yMSBsaWdodGVyIHRoYW4gJGNvbG9yMj9cbiAqL1xuQGZ1bmN0aW9uIGlzLWxpZ2h0ZXIoJGNvbG9yMSwgJGNvbG9yMikge1xuICAgIEByZXR1cm4gbHVtYSgkY29sb3IxKSA+IGx1bWEoJGNvbG9yMik7XG59XG5cbi8qKlxuICogSXMgJGNvbG9yMSBkYXJrZXIgdGhhbiAkY29sb3IyP1xuICovXG5AZnVuY3Rpb24gaXMtZGFya2VyKCRjb2xvcjEsICRjb2xvcjIpIHtcbiAgICBAcmV0dXJuIGx1bWEoJGNvbG9yMSkgPCBsdW1hKCRjb2xvcjIpO1xufVxuXG4vKipcbiAqIEZpbmQgYmVzdCBsaWdodG5lc3MgYWRqdXN0IG1ldGhvZFxuICpcbiAqIElkZWFsbHkgd2Ugc2hvdWxkIG9ubHkgaW5jcmVhc2UgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgY29sb3JzLiBJZiAkY29sb3IxXG4gKiBpcyBsaWdodGVyIHRoYW4gJGNvbG9yMiBidXQgdGhlIGNvbnRyYXN0IGlzIG5vdCBhY2Nlc3NpYmxlLCB0aGVuIHdlIHNob3VsZCB0cnkgdG9cbiAqIG1ha2UgaXQgbGlnaHRlciByYXRoZXIgdGhhbiBkYXJrZXIuXG4gKi9cbkBmdW5jdGlvbiBmaW5kLWxpZ2h0bmVzcy1hZGp1c3QtbWV0aG9kKCRjb2xvcjEsICRjb2xvcjIsICR0aHJlc2hvbGQ6ICRjb2xvci1jb250cmFzdC10aHJlc2hvbGQpIHtcbiAgICAkY29udHJhc3QtdG8td2hpdGU6IGNvbnRyYXN0LXJhdGlvKCNmZmZmZmYsICRjb2xvcjIpO1xuICAgICRjb250cmFzdC10by1ibGFjazogY29udHJhc3QtcmF0aW8oIzAwMDAwMCwgJGNvbG9yMik7XG5cbiAgICBAaWYgaXMtbGlnaHRlcigkY29sb3IxLCAkY29sb3IyKSB7XG4gICAgICAgIEBpZiAkY29udHJhc3QtdG8td2hpdGUgPj0gJHRocmVzaG9sZCB7IC8vIGxpZ2h0ZW4gYSBsaWdodGVyIGNvbG9yIHdpbGwgd29ya1xuICAgICAgICAgICAgQHJldHVybiAnbGlnaHRlbic7XG4gICAgICAgIH0gQGVsc2VpZiAkY29udHJhc3QtdG8tYmxhY2sgPj0gJHRocmVzaG9sZCB7XG4gICAgICAgICAgICBAcmV0dXJuICdkYXJrZW4nO1xuICAgICAgICB9XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIEBpZiAkY29udHJhc3QtdG8tYmxhY2sgPj0gJHRocmVzaG9sZCB7IC8vIGRhcmtlbiBhIGRhcmtlciBjb2xvciB3aWxsIHdvcmtcbiAgICAgICAgICAgIEByZXR1cm4gJ2Rhcmtlbic7XG4gICAgICAgIH0gQGVsc2VpZiAkY29udHJhc3QtdG8td2hpdGUgPj0gJHRocmVzaG9sZCB7XG4gICAgICAgICAgICBAcmV0dXJuICdsaWdodGVuJztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIE5vIGFjY2VwdGFibGUgY29udHJhc3QgZm91bmQsIGdvIHdpdGggdGhlIGJlc3Qgb25lXG4gICAgQGlmICgkY29udHJhc3QtdG8td2hpdGUgPiAkY29udHJhc3QtdG8tYmxhY2spIHtcbiAgICAgICAgQHJldHVybiAjZmZmO1xuICAgIH0gQGVsc2Uge1xuICAgICAgICBAcmV0dXJuICMwMDA7XG4gICAgfVxufVxuXG4vLyBMaWdodGVuIG9yIGRhcmtlbiAkY29sb3IxIHVudGlsIGl0IGhhcyBzdWZmaWNpZW50IGNvbnRyYXN0IHRvICRjb2xvcjJcbi8vIFRPRE86IFJlbW92ZSAkaXRlcmF0aW9ucyB2YXJpYmxlLCBmaW5kIGEgbW9yZSBjbGV2ZXIgd2F5IHRvIGNoZWNrIGlmIHdlIGFyZSBhdCByb2FkcyBlbmRcbkBmdW5jdGlvbiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkY29sb3IxLCAkY29sb3IyLCAkdGhyZXNob2xkOiAkY29sb3ItY29udHJhc3QtdGhyZXNob2xkLCAkdG9sZXJhbmNlOiAwLjI1KSB7XG5cbiAgICAvLyBSZXR1cm4gZGlyZWN0bHkgaWYgY29udHJhc3QgaXMgZ29vZFxuICAgICRjYW5kaWRhdGUtY29udHJhc3Q6IGNvbnRyYXN0LXJhdGlvKCRjb2xvcjEsICRjb2xvcjIpO1xuICAgIEBpZiAkY2FuZGlkYXRlLWNvbnRyYXN0ID49ICR0aHJlc2hvbGQge1xuICAgICAgICBAcmV0dXJuICRjb2xvcjE7XG4gICAgfVxuXG4gICAgLy8gRmluZCBvdXQgaWYgd2UgbmVlZCB0byBkYXJrZW4gb3IgbGlnaHRlblxuICAgICRtZXRob2Q6IGZpbmQtbGlnaHRuZXNzLWFkanVzdC1tZXRob2QoJGNvbG9yMSwgJGNvbG9yMik7XG5cbiAgICAvLyBJZiB3ZSB3b24ndCBiZSBhYmxlIHRvIGZpbmQgYW4gYWNjZXNzaWJsZSBjb250cmFzdCBhdCBhbGwsIGp1c3QgcmV0dXJuIGJsYWNrIG9yIHdoaXRlIGRpcmVjdGx5XG4gICAgQGlmICRtZXRob2QgIT0gJ2xpZ2h0ZW4nIGFuZCAkbWV0aG9kICE9ICdkYXJrZW4nIHtcbiAgICAgICAgQHJldHVybiAkbWV0aG9kO1xuICAgIH1cblxuICAgIC8vIEJpbmFyeSBzZWFyY2ggdW50aWwgd2UgZmluZCBhIGdvb2QgbGlnaHRuZXNzIGNoYW5nZVxuICAgICRyYW5nZS1zdGFydDogMSU7XG4gICAgJHJhbmdlLWVuZDogMTAwJTtcblxuICAgICRpdGVyYXRpb25zIDogMDtcbiAgICAkY2FuZGlkYXRlOiB1bmRlZmluZWQ7XG5cbiAgICAvLyBXaGlsZSBjb250cmFzdCBpcyBvdXQgb2YgcmFuZ2UsIGtlZXAgc2VhcmNoaW5nXG4gICAgQHdoaWxlICRpdGVyYXRpb25zIDwgNyBhbmQgKCgkY2FuZGlkYXRlLWNvbnRyYXN0IDwgJHRocmVzaG9sZCkgb3IgKCRjYW5kaWRhdGUtY29udHJhc3QgPiAkdGhyZXNob2xkICsgJHRvbGVyYW5jZSkpIHtcbiAgICAgICAgJHJhbmdlLW1pZDogJHJhbmdlLWVuZCAtIHJvdW5kKCgoJHJhbmdlLWVuZCAtICRyYW5nZS1zdGFydCkvMikpO1xuXG4gICAgICAgICRjYW5kaWRhdGU6IGlmKCRtZXRob2QgPT0gJ2xpZ2h0ZW4nLCBsaWdodGVuKCRjb2xvcjEsICRyYW5nZS1taWQpLCBkYXJrZW4oJGNvbG9yMSwgJHJhbmdlLW1pZCkpO1xuXG4gICAgICAgICRjYW5kaWRhdGUtY29udHJhc3Q6IGNvbnRyYXN0LXJhdGlvKCRjYW5kaWRhdGUsICRjb2xvcjIpO1xuXG4gICAgICAgIEBpZiAoJGNhbmRpZGF0ZS1jb250cmFzdCA+PSAkdGhyZXNob2xkKSBhbmQgKCRjYW5kaWRhdGUtY29udHJhc3QgPD0gJHRocmVzaG9sZCArICR0b2xlcmFuY2UpIHtcbiAgICAgICAgICAgIEByZXR1cm4gJGNhbmRpZGF0ZTtcbiAgICAgICAgfSBAZWxzZWlmICRjYW5kaWRhdGUtY29udHJhc3QgPCAkdGhyZXNob2xkIHtcbiAgICAgICAgICAgICRyYW5nZS1zdGFydDogbWluKCRyYW5nZS1taWQgKyAxJSwgMTAwJSk7XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgJHJhbmdlLWVuZDogbWF4KCRyYW5nZS1taWQgLSAxJSwgMSUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJGl0ZXJhdGlvbnM6ICRpdGVyYXRpb25zICsgMTtcbiAgICB9XG5cbiAgICBAcmV0dXJuICRjYW5kaWRhdGU7XG59XG5cbi8vIEZpbmQgd2hpY2ggJGJnY29sb3IgdG8gdXNlIHdpdGggZ2l2ZW4gdGV4dCBjb2xvciAkY29sb3Jcbi8vIERlZmF1bHRzIHRvIGxpZ2h0ZXIgb3IgZGFya2VyIChtb25vY2hyb21lKSBiYWNrZ3JvdW5kXG5AZnVuY3Rpb24gdGV4dC1jb250cmFzdCgkY29sb3IsICRiZ2NvbG9yOiAkY29sb3IsICR0aHJlc2hvbGQ6IDQuNSkge1xuICAgIEByZXR1cm4gYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGJnY29sb3IsICRjb2xvciwgJHRocmVzaG9sZCk7XG59IiwiLy8gQmlnIGt1ZG9zIHRvOiBodHRwczovL2dpdGh1Yi5jb20vdGVya2VsL21hdGhzYXNzXG5cbkBpbXBvcnQgXCJtYXRoL2NvbnN0YW50c1wiO1xuQGltcG9ydCBcIm1hdGgvYWJzXCI7XG5AaW1wb3J0IFwibWF0aC9leHBcIjtcbkBpbXBvcnQgXCJtYXRoL2ZhY3RcIjtcbkBpbXBvcnQgXCJtYXRoL2ZyZXhwXCI7XG5AaW1wb3J0IFwibWF0aC9sZGV4cFwiO1xuQGltcG9ydCBcIm1hdGgvbG9nXCI7XG5AaW1wb3J0IFwibWF0aC9sdW1pbmFuY2UtcHJlY2FsY1wiO1xuQGltcG9ydCBcIm1hdGgvcG93XCI7XG5AaW1wb3J0IFwibWF0aC9udGgtcm9vdFwiO1xuQGltcG9ydCBcIm1hdGgvc3FydFwiO1xuQGltcG9ydCBcIm1hdGgvdHJpZ29ub21ldHJ5XCI7IiwiJEU6ICAgICAyLjcxODI4MTgyODQ1OTA0NTtcbiRQSTogICAgMy4xNDE1OTI2NTM1ODk3OTM7XG4kTE4yOiAgIDAuNjkzMTQ3MTgwNTU5OTQ1MztcbiRTUVJUMjogMS40MTQyMTM1NjIzNzMwOTUxOyIsIiIsIi8vIFJldHVybnMgRV54LCB3aGVyZSB4IGlzIHRoZSBhcmd1bWVudCwgYW5kIEUgaXMgRXVsZXIncyBjb25zdGFudCwgdGhlIGJhc2Ugb2YgdGhlIG5hdHVyYWwgbG9nYXJpdGhtcy5cbi8vIEBwYXJhbSB7TnVtYmVyfSAkeFxuLy8gQGV4YW1wbGVcbi8vICAgICBleHAoMSkgIC8vIDIuNzE4Mjhcbi8vICAgICBleHAoLTEpIC8vIDAuMzY3ODhcbkBmdW5jdGlvbiBleHAoJHgpIHtcbiAgICAkcmV0OiAwO1xuICAgIEBmb3IgJG4gZnJvbSAwIHRvIDI0IHtcbiAgICAgICAgJHJldDogJHJldCArIHBvdygkeCwgJG4pIC8gZmFjdCgkbik7XG4gICAgfVxuICAgIEByZXR1cm4gJHJldDtcbn0iLCIvLyBSZXR1cm5zIHRoZSBmYWN0b3JpYWwgb2YgYSBub24tbmVnYXRpdmUgaW50ZWdlci5cbi8vIEBwYXJhbSB7TnVtYmVyfSAkeCBBIG5vbi1uZWdhdGl2ZSBpbnRlZ2VyLlxuLy8gQHJldHVybiB7TnVtYmVyfVxuLy8gQGV4YW1wbGVcbi8vICAgICBmYWN0KDApIC8vIDFcbi8vICAgICBmYWN0KDgpIC8vIDQwMzIwXG5AZnVuY3Rpb24gZmFjdCgkeCkge1xuICAgIEBpZiAkeCA8IDAgb3IgICR4ICE9IGZsb29yKCR4KSB7XG4gICAgICAgIEB3YXJuIFwiQXJndW1lbnQgZm9yIGBmYWN0KClgIG11c3QgYmUgYSBwb3NpdGl2ZSBpbnRlZ2VyLlwiO1xuICAgICAgICBAcmV0dXJuIG51bGw7XG4gICAgfVxuICAgICRyZXQ6IDE7XG4gICAgQHdoaWxlICR4ID4gMCB7XG4gICAgICAgICRyZXQ6ICRyZXQgKiAkeDtcbiAgICAgICAgJHg6ICR4IC0gMTtcbiAgICB9XG4gICAgQHJldHVybiAkcmV0O1xufSIsIi8vIFJldHVybnMgYSB0d28tZWxlbWVudCBsaXN0IGNvbnRhaW5pbmcgdGhlIG5vcm1hbGl6ZWQgZnJhY3Rpb24gYW5kIGV4cG9uZW50IG9mIG51bWJlci5cbi8vIEBwYXJhbSB7TnVtYmVyfSAkeFxuLy8gQHJldHVybiB7TGlzdH0gZnJhY3Rpb24sIGV4cG9uZW50XG5AZnVuY3Rpb24gZnJleHAoJHgpIHtcbiAgICAkZXhwOiAwO1xuICAgIEBpZiAkeCA8IDAge1xuICAgICAgICAkeDogJHggKiAtMTtcbiAgICB9XG4gICAgQGlmICR4IDwgMC41IHtcbiAgICAgICAgQHdoaWxlICR4IDwgMC41IHtcbiAgICAgICAgICAgICR4OiAkeCAqIDI7XG4gICAgICAgICAgICAkZXhwOiAkZXhwIC0gMTtcbiAgICAgICAgfVxuICAgIH0gQGVsc2UgaWYgJHggPj0gMSB7XG4gICAgICAgIEB3aGlsZSAkeCA+PSAxIHtcbiAgICAgICAgICAgICR4OiAkeCAvIDI7XG4gICAgICAgICAgICAkZXhwOiAkZXhwICsgMTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBAcmV0dXJuICR4LCAkZXhwO1xufSIsIi8vIFJldHVybnMgJHggKiAyXiRleHBcbi8vIEBwYXJhbSB7TnVtYmVyfSAkeFxuLy8gQHBhcmFtIHtOdW1iZXJ9ICRleHBcbkBmdW5jdGlvbiBsZGV4cCgkeCwgJGV4cCkge1xuICAgICRiOiBpZigkZXhwID49IDAsIDIsIDEgLyAyKTtcbiAgICBAaWYgJGV4cCA8IDAge1xuICAgICAgICAkZXhwOiAkZXhwICogLTE7XG4gICAgfVxuICAgIEB3aGlsZSAkZXhwID4gMCB7XG4gICAgICAgIEBpZiAkZXhwICUgMiA9PSAxIHtcbiAgICAgICAgICAgICR4OiAkeCAqICRiO1xuICAgICAgICB9XG4gICAgICAgICRiOiAkYiAqICRiO1xuICAgICAgICAkZXhwOiBmbG9vcigkZXhwICogMC41KTtcbiAgICB9XG4gICAgQHJldHVybiAkeDtcbn0iLCIvLyBSZXR1cm5zIHRoZSBuYXR1cmFsIGxvZ2FyaXRobSBvZiBhIG51bWJlci5cbi8vIEBwYXJhbSB7TnVtYmVyfSAkeFxuLy8gQGV4YW1wbGVcbi8vICAgICBsb2coMikgIC8vIDAuNjkzMTVcbi8vICAgICBsb2coMTApIC8vIDIuMzAyNTlcbkBmdW5jdGlvbiBsb2coJHgpIHtcbiAgICBAaWYgJHggPD0gMCB7XG4gICAgICAgIEByZXR1cm4gMCAvIDA7XG4gICAgfVxuICAgICRrOiBudGgoZnJleHAoJHggLyAkU1FSVDIpLCAyKTtcbiAgICAkeDogJHggLyBsZGV4cCgxLCAkayk7XG4gICAgJHg6ICgkeCAtIDEpIC8gKCR4ICsgMSk7XG4gICAgJHgyOiAkeCAqICR4O1xuICAgICRpOiAxO1xuICAgICRzOiAkeDtcbiAgICAkc3A6IG51bGw7XG4gICAgQHdoaWxlICRzcCAhPSAkcyB7XG4gICAgICAgICR4OiAkeCAqICR4MjtcbiAgICAgICAgJGk6ICRpICsgMjtcbiAgICAgICAgJHNwOiAkcztcbiAgICAgICAgJHM6ICRzICsgJHggLyAkaTtcbiAgICB9XG4gICAgQHJldHVybiAkTE4yICogJGsgKyAyICogJHM7XG59IiwiLy8gVXNlZnVsIE9OTFkgd2hlbiBjYWxjdWxhdGluZyBsaWdodG5lc3Mgb24gYSBjb2xvci5cbi8vIFxuLy8gV2UgYXJlIHJlcGxhY2luZyB0aGlzIGNhbGN1bGF0aW9uOlxuLy8gJHJnYjogaWYoJHJnYiA8IC4wMzkyOCwgJHJnYiAvIDEyLjkyLCBwb3coKCRyZ2IgKyAuMDU1KSAvIDEuMDU1LCAyLjQpKTtcbi8vICgkcmdiID0gYSBudW1iZXIgYmV0d2VlbiAwIGFuZCAyNTUgZGl2aWRlZCBieSAyNTUpLlxuXG4kbHVtaW5hbmNlLXByZWNhbGM6IFxuMCwgMC4wMDAzMDM1MjY5ODM1LCAwLjAwMDYwNzA1Mzk2NzEsIDAuMDAwOTEwNTgwOTUwNiwgMC4wMDEyMTQxMDc5MzQsIDAuMDAxNTE3NjM0OTE4LCAwLjAwMTgyMTE2MTkwMSwgMC4wMDIxMjQ2ODg4ODUsIDAuMDAyNDI4MjE1ODY4LCAwLjAwMjczMTc0Mjg1MiwgXG4wLjAwMzAzNTI2OTgzNSwgMC4wMDMzNDY1MzU3NjQsIDAuMDAzNjc2NTA3MzI0LCAwLjAwNDAyNDcxNzAxOCwgMC4wMDQzOTE0NDIwMzcsIDAuMDA0Nzc2OTUzNDgxLCAwLjAwNTE4MTUxNjcwMiwgMC4wMDU2MDUzOTE2MjQsIDAuMDA2MDQ4ODMzMDIzLCBcbjAuMDA2NTEyMDkwNzkzLCAwLjAwNjk5NTQxMDE4NywgMC4wMDc0OTkwMzIwNDMsIDAuMDA4MDIzMTkyOTg1LCAwLjAwODU2ODEyNTYxOCwgMC4wMDkxMzQwNTg3MDIsIDAuMDA5NzIxMjE3MzIsIDAuMDEwMzI5ODIzMDMsIDAuMDEwOTYwMDk0MDEsIFxuMC4wMTE2MTIyNDUxOCwgMC4wMTIyODY0ODgzNiwgMC4wMTI5ODMwMzIzNCwgMC4wMTM3MDIwODMwNSwgMC4wMTQ0NDM4NDM2LCAwLjAxNTIwODUxNDQyLCAwLjAxNTk5NjI5MzM3LCAwLjAxNjgwNzM3NTc1LCAwLjAxNzY0MTk1NDQ5LCBcbjAuMDE4NTAwMjIwMTMsIDAuMDE5MzgyMzYwOTYsIDAuMDIwMjg4NTYzMDYsIDAuMDIxMjE5MDEwMzgsIDAuMDIyMTczODg0NzksIDAuMDIzMTUzMzY2MTgsIDAuMDI0MTU3NjMyNDUsIDAuMDI1MTg2ODU5NjMsIDAuMDI2MjQxMjIxODksIFxuMC4wMjczMjA4OTE2NCwgMC4wMjg0MjYwMzk1LCAwLjAyOTU1NjgzNDQ0LCAwLjAzMDcxMzQ0MzczLCAwLjAzMTg5NjAzMzA3LCAwLjAzMzEwNDc2NjU3LCAwLjAzNDMzOTgwNjgxLCAwLjAzNTYwMTMxNDg4LCAwLjAzNjg4OTQ1MDQsIFxuMC4wMzgyMDQzNzE2LCAwLjAzOTU0NjIzNTI4LCAwLjA0MDkxNTE5NjkxLCAwLjA0MjMxMTQxMDYyLCAwLjA0MzczNTAyOTI2LCAwLjA0NTE4NjIwNDM5LCAwLjA0NjY2NTA4NjM0LCAwLjA0ODE3MTgyNDIzLCAwLjA0OTcwNjU2NTk4LCBcbjAuMDUxMjY5NDU4MzcsIDAuMDUyODYwNjQ3MDIsIDAuMDU0NDgwMjc2NDQsIDAuMDU2MTI4NDkwMDUsIDAuMDU3ODA1NDMwMTksIDAuMDU5NTExMjM4MTYsIDAuMDYxMjQ2MDU0MjMsIDAuMDYzMDEwMDE3NjUsIDAuMDY0ODAzMjY2NjksIFxuMC4wNjY2MjU5Mzg2NCwgMC4wNjg0NzgxNjk4NCwgMC4wNzAzNjAwOTU3LCAwLjA3MjI3MTg1MDY4LCAwLjA3NDIxMzU2ODM4LCAwLjA3NjE4NTM4MTQ4LCAwLjA3ODE4NzQyMTgxLCAwLjA4MDIxOTgyMDMxLCAwLjA4MjI4MjcwNzEzLCBcbjAuMDg0Mzc2MjExNTQsIDAuMDg2NTAwNDYyMDQsIDAuMDg4NjU1NTg2MjksIDAuMDkwODQxNzExMTgsIDAuMDkzMDU4OTYyODUsIDAuMDk1MzA3NDY2NjMsIDAuMDk3NTg3MzQ3MTQsIDAuMDk5ODk4NzI4MjUsIDAuMTAyMjQxNzMzMSwgXG4wLjEwNDYxNjQ4NDEsIDAuMTA3MDIzMTAzLCAwLjEwOTQ2MTcxMDgsIDAuMTExOTMyNDI3OCwgMC4xMTQ0MzUzNzM4LCAwLjExNjk3MDY2NzgsIDAuMTE5NTM4NDI4LCAwLjEyMjEzODc3MjIsIDAuMTI0NzcxODE3NiwgMC4xMjc0Mzc2ODA0LCBcbjAuMTMwMTM2NDc2NywgMC4xMzI4NjgzMjE2LCAwLjEzNTYzMzMyOTcsIDAuMTM4NDMxNjE1LCAwLjE0MTI2MzI5MTEsIDAuMTQ0MTI4NDcwOSwgMC4xNDcwMjcyNjY1LCAwLjE0OTk1OTc4OTgsIDAuMTUyOTI2MTUyLCAwLjE1NTkyNjQ2MzcsIFxuMC4xNTg5NjA4MzUxLCAwLjE2MjAyOTM3NTYsIDAuMTY1MTMyMTk0NSwgMC4xNjgyNjk0MDAyLCAwLjE3MTQ0MTEwMDcsIDAuMTc0NjQ3NDAzNywgMC4xNzc4ODg0MTYsIDAuMTgxMTY0MjQ0MiwgMC4xODQ0NzQ5OTQ1LCAwLjE4NzgyMDc3MjMsIFxuMC4xOTEyMDE2ODI3LCAwLjE5NDYxNzgzMDQsIDAuMTk4MDY5MzE5NiwgMC4yMDE1NTYyNTM4LCAwLjIwNTA3ODczNjQsIDAuMjA4NjM2ODcwMSwgMC4yMTIyMzA3NTc0LCAwLjIxNTg2MDUwMDEsIDAuMjE5NTI2MTk5NywgMC4yMjMyMjc5NTczLCBcbjAuMjI2OTY1ODczNSwgMC4yMzA3NDAwNDg1LCAwLjIzNDU1MDU4MjIsIDAuMjM4Mzk3NTczOCwgMC4yNDIyODExMjI1LCAwLjI0NjIwMTMyNjcsIDAuMjUwMTU4Mjg0NywgMC4yNTQxNTIwOTQzLCAwLjI1ODE4Mjg1MjksIDAuMjYyMjUwNjU3NSwgXG4wLjI2NjM1NTYwNDgsIDAuMjcwNDk3NzkxLCAwLjI3NDY3NzMxMjEsIDAuMjc4ODk0MjYzNSwgMC4yODMxNDg3NDA0LCAwLjI4NzQ0MDgzNzcsIDAuMjkxNzcwNjQ5OCwgMC4yOTYxMzgyNzA4LCAwLjMwMDU0Mzc5NDQsIDAuMzA0OTg3MzE0MSwgXG4wLjMwOTQ2ODkyMjgsIDAuMzEzOTg4NzEzNCwgMC4zMTg1NDY3NzgxLCAwLjMyMzE0MzIwOTEsIDAuMzI3Nzc4MDk4MSwgMC4zMzI0NTE1MzYzLCAwLjMzNzE2MzYxNSwgMC4zNDE5MTQ0MjQ5LCAwLjM0NjcwNDA1NjQsIDAuMzUxNTMyNTk5NSwgXG4wLjM1NjQwMDE0NDEsIDAuMzYxMzA2Nzc5OCwgMC4zNjYyNTI1OTU2LCAwLjM3MTIzNzY4MDUsIDAuMzc2MjYyMTIzLCAwLjM4MTMyNjAxMTQsIDAuMzg2NDI5NDMzOCwgMC4zOTE1NzI0Nzc3LCAwLjM5Njc1NTIzMDcsIDAuNDAxOTc3Nzc5OCwgXG4wLjQwNzI0MDIxMTksIDAuNDEyNTQyNjEzNSwgMC40MTc4ODUwNzA4LCAwLjQyMzI2NzY3LCAwLjQyODY5MDQ5NjYsIDAuNDM0MTUzNjM2MiwgMC40Mzk2NTcxNzM4LCAwLjQ0NTIwMTE5NDUsIDAuNDUwNzg1NzgyOCwgMC40NTY0MTEwMjMyLCBcbjAuNDYyMDc2OTk5NywgMC40Njc3ODM3OTYxLCAwLjQ3MzUzMTQ5NjEsIDAuNDc5MzIwMTgzMSwgMC40ODUxNDk5NDAxLCAwLjQ5MTAyMDg0OTgsIDAuNDk2OTMyOTk1MSwgMC41MDI4ODY0NTgsIDAuNTA4ODgxMzIwOSwgMC41MTQ5MTc2NjU0LCBcbjAuNTIwOTk1NTczMiwgMC41MjcxMTUxMjU3LCAwLjUzMzI3NjQwNCwgMC41Mzk0Nzk0ODksIDAuNTQ1NzI0NDYxNCwgMC41NTIwMTE0MDE1LCAwLjU1ODM0MDM4OTYsIDAuNTY0NzExNTA1NywgMC41NzExMjQ4Mjk1LCAwLjU3NzU4MDQ0MDQsIFxuMC41ODQwNzg0MTc5LCAwLjU5MDYxODg0MDksIDAuNTk3MjAxNzg4NCwgMC42MDM4MjczMzg5LCAwLjYxMDQ5NTU3MDgsIDAuNjE3MjA2NTYyNCwgMC42MjM5NjAzOTE3LCAwLjYzMDc1NzEzNjMsIDAuNjM3NTk2ODc0LCAwLjY0NDQ3OTY4MiwgXG4wLjY1MTQwNTYzNzQsIDAuNjU4Mzc0ODE3MywgMC42NjUzODcyOTgzLCAwLjY3MjQ0MzE1NywgMC42Nzk1NDI0Njk2LCAwLjY4NjY4NTMxMjQsIDAuNjkzODcxNzYxMywgMC43MDExMDE4OTE5LCAwLjcwODM3NTc3OTksIDAuNzE1NjkzNTAwNSwgXG4wLjcyMzA1NTEyODksIDAuNzMwNDYwNzQwMSwgMC43Mzc5MTA0MDg4LCAwLjc0NTQwNDIwOTUsIDAuNzUyOTQyMjE2OCwgMC43NjA1MjQ1MDQ3LCAwLjc2ODE1MTE0NzIsIDAuNzc1ODIyMjE4MywgMC43ODM1Mzc3OTE1LCAwLjc5MTI5Nzk0MDMsIFxuMC43OTkxMDI3MzgsIDAuODA2OTUyMjU3NywgMC44MTQ4NDY1NzIyLCAwLjgyMjc4NTc1NDQsIDAuODMwNzY5ODc2OCwgMC44Mzg3OTkwMTE3LCAwLjg0Njg3MzIzMTUsIDAuODU0OTkyNjA4MSwgMC44NjMxNTcyMTM1LCAwLjg3MTM2NzExOTIsIFxuMC44Nzk2MjIzOTY5LCAwLjg4NzkyMzExNzksIDAuODk2MjY5MzUzNCwgMC45MDQ2NjExNzQ0LCAwLjkxMzA5ODY1MTgsIDAuOTIxNTgxODU2MywgMC45MzAxMTA4NTg0LCAwLjkzODY4NTcyODUsIDAuOTQ3MzA2NTM2NywgMC45NTU5NzMzNTMyLCBcbjAuOTY0Njg2MjQ3OSwgMC45NzM0NDUyOTA0LCAwLjk4MjI1MDU1MDMsIDAuOTkxMTAyMDk3MSwgMTsiLCIvLyBSZXR1cm5zIGJhc2UgdG8gdGhlIGV4cG9uZW50IHBvd2VyLlxuLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXNlIFRoZSBiYXNlIG51bWJlclxuLy8gQHBhcmFtIHtOdW1iZXJ9ICRleHAgVGhlIGV4cG9uZW50IHRvIHdoaWNoIHRvIHJhaXNlIGJhc2Vcbi8vIEByZXR1cm4ge051bWJlcn1cbi8vIEBleGFtcGxlXG4vLyAgICAgcG93KDQsIDIpICAgLy8gMTZcbi8vICAgICBwb3coNCwgLTIpICAvLyAwLjA2MjVcbi8vICAgICBwb3coNCwgMC4yKSAvLyAxLjMxOTUxXG4vLyBAZnVuY3Rpb24gcG93KCRiYXNlLCAkZXhwKSB7XG4vLyAgICAgQGlmICRleHAgPT0gZmxvb3IoJGV4cCkge1xuLy8gICAgICAgICAkcjogMTtcbi8vICAgICAgICAgJHM6IDA7XG4vLyAgICAgICAgIEBpZiAkZXhwIDwgMCB7XG4vLyAgICAgICAgICAgICAkZXhwOiAkZXhwICogLTE7XG4vLyAgICAgICAgICAgICAkczogMTtcbi8vICAgICAgICAgfVxuLy8gICAgICAgICBAd2hpbGUgJGV4cCA+IDAge1xuLy8gICAgICAgICAgICAgQGlmICRleHAgJSAyID09IDEge1xuLy8gICAgICAgICAgICAgICAgICRyOiAkciAqICRiYXNlO1xuLy8gICAgICAgICAgICAgfVxuLy8gICAgICAgICAgICAgJGV4cDogZmxvb3IoJGV4cCAqIDAuNSk7XG4vLyAgICAgICAgICAgICAkYmFzZTogJGJhc2UgKiAkYmFzZTtcbi8vICAgICAgICAgfVxuLy8gICAgICAgICBAcmV0dXJuIGlmKCRzICE9IDAsIDEgLyAkciwgJHIpO1xuLy8gICAgIH0gQGVsc2Uge1xuLy8gICAgICAgICBAcmV0dXJuIGV4cChsb2coJGJhc2UpICogJGV4cCk7XG4vLyAgICAgfVxuLy8gfVxuXG4vLyBTaW1wbGVyIFBPVygpLCBmb3Igc3BlZWQhXG5AZnVuY3Rpb24gcG93KCRudW1iZXIsICRleHApIHtcbiAgJHZhbHVlOiAkbnVtYmVyO1xuICBAaWYgJGV4cCA+IDAge1xuICAgIC8vIElmIHRoZSBleHBvbmVudCBpcyBwb3NpdGl2ZSwgbXVsdGlwbHkuXG4gICAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCAkZXhwIHtcbiAgICAgICR2YWx1ZTogJHZhbHVlICogJG51bWJlcjtcbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJGV4cCA8IDAge1xuICAgIC8vIElmIHRoZSBleHBvbmVudCBpcyBuZWdhdGl2ZSwgZGl2aWRlLlxuICAgIEBmb3IgJGkgZnJvbSAwIHRocm91Z2ggLSgkZXhwKSB7XG4gICAgICAkdmFsdWU6ICR2YWx1ZSAvICRudW1iZXI7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICAvLyBJZiB0aGUgZXhwb25lbnQgaXMgemVybywganVzdCByZXR1cm4gMS5cbiAgICAkdmFsdWU6IDE7XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZTtcbn0iLCJAZnVuY3Rpb24gbnRoLXJvb3QtZXN0aW1hdGUoJG51bWJlciwgJGd1ZXNzLCAkbikge1xuICBAcmV0dXJuIDEvJG4gKiAoKCRudW1iZXIvcG93KCRndWVzcywgJG4gLSAxKSkgLSAkZ3Vlc3MpO1xufVxuXG5AZnVuY3Rpb24gbnRoLXJvb3QoJG51bWJlciwgJGRlZ3JlZSwgJHByZWNpc2lvbjogNSkge1xuICAkZ3Vlc3M6IDIuNztcbiAgJHByZXZpb3VzLWd1ZXNzOiAwO1xuICBcbiAgLy8gV2hpbGUgcHJlY2lzaW9uIGhhcyBub3QgYmVlbiBtZXQsIGtlZXAgZ3Vlc3NpbmdcbiAgQHdoaWxlIHJvdW5kKCRwcmV2aW91cy1ndWVzcyAqIHBvdygxMCwgJHByZWNpc2lvbikpICE9IHJvdW5kKCRndWVzcyAqIHBvdygxMCwgJHByZWNpc2lvbikpIHtcbiAgICAkcHJldmlvdXMtZ3Vlc3M6ICRndWVzcztcbiAgICAkZ3Vlc3M6ICRndWVzcyArIG50aC1yb290LWVzdGltYXRlKCRudW1iZXIsICRndWVzcywgNSk7XG4gIH1cbiAgXG4gIEByZXR1cm4gJGd1ZXNzO1xufSIsIi8vIFJldHVybnMgdGhlIHNxdWFyZSByb290IG9mIGEgbnVtYmVyLlxuLy8gQHBhcmFtIHtOdW1iZXJ9ICR4XG4vLyBAZXhhbXBsZVxuLy8gICAgIHNxcnQoMikgLy8gMS40MTQyMVxuLy8gICAgIHNxcnQoNSkgLy8gMi4yMzYwN1xuQGZ1bmN0aW9uIHNxcnQgKCR4KSB7XG4gICAgQGlmICR4IDwgMCB7XG4gICAgICAgIEB3YXJuIFwiQXJndW1lbnQgZm9yIGBzcXJ0KClgIG11c3QgYmUgYSBwb3NpdGl2ZSBudW1iZXIuXCI7XG4gICAgICAgIEByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgJHJldDogMTtcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIDI0IHtcbiAgICAgICAgJHJldDogJHJldCAtIChwb3coJHJldCwgMikgLSAkeCkgLyAoMiAqICRyZXQpO1xuICAgIH1cbiAgICBAcmV0dXJuICRyZXQ7XG59IiwiQGZ1bmN0aW9uIHBpKCkge1xuICAgIEByZXR1cm4gMy4xNDE1OTI2NTM1OTtcbn1cblxuQGZ1bmN0aW9uIHJhZCgkYW5nbGUpIHtcbiAgICAkdW5pdDogdW5pdCgkYW5nbGUpO1xuICAgICR1bml0bGVzczogJGFuZ2xlIC8gKCRhbmdsZSAqIDAgKyAxKTtcbiAgICAvLyBJZiB0aGUgYW5nbGUgaGFzICdkZWcnIGFzIHVuaXQsIGNvbnZlcnQgdG8gcmFkaWFucy5cbiAgICBAaWYgJHVuaXQgPT0gZGVnIHtcbiAgICAgICAgJHVuaXRsZXNzOiAkdW5pdGxlc3MgLyAxODAgKiBwaSgpO1xuICAgIH1cbiAgICBAcmV0dXJuICR1bml0bGVzcztcbn1cblxuQGZ1bmN0aW9uIHNpbigkYW5nbGUpIHtcbiAgICAkc2luOiAwO1xuICAgICRhbmdsZTogcmFkKCRhbmdsZSk7XG4gICAgLy8gSXRlcmF0ZSBhIGJ1bmNoIG9mIHRpbWVzLlxuICAgIEBmb3IgJGkgZnJvbSAwIHRocm91Z2ggMTAge1xuICAgICAgICAkc2luOiAkc2luICsgcG93KC0xLCAkaSkgKiBwb3coJGFuZ2xlLCAoMiAqICRpICsgMSkpIC8gZmFjdCgyICogJGkgKyAxKTtcbiAgICB9XG4gICAgQHJldHVybiAkc2luO1xufVxuXG5AZnVuY3Rpb24gY29zKCRhbmdsZSkge1xuICAgICRjb3M6IDA7XG4gICAgJGFuZ2xlOiByYWQoJGFuZ2xlKTtcbiAgICAvLyBJdGVyYXRlIGEgYnVuY2ggb2YgdGltZXMuXG4gICAgQGZvciAkaSBmcm9tIDAgdGhyb3VnaCAxMCB7XG4gICAgICAgICRjb3M6ICRjb3MgKyBwb3coLTEsICRpKSAqIHBvdygkYW5nbGUsIDIgKiAkaSkgLyBmYWN0KDIgKiAkaSk7XG4gICAgfVxuICAgIEByZXR1cm4gJGNvcztcbn1cblxuQGZ1bmN0aW9uIHRhbigkYW5nbGUpIHtcbiAgICBAcmV0dXJuIHNpbigkYW5nbGUpIC8gY29zKCRhbmdsZSk7XG59XG5cbi8qKlxuICogb24tY2lyY2xlIHRha2VzIGEgcmFkaXVzLCBwb3NpdGlvbiBvbiBhIGNpcmNsZSwgbnVtYmVyIG9mIHBvc3NpYmxlIHBvc2l0aW9ucyBhbmQgcmV0dXJucyB0b3AgYW5kIGxlZnQgcHJvcGVydGllc1xuICpcbiAqICRvcmRpbmFsUG9zaXRpb24ge051bWJlcn0gdGhlIHBvc2l0aW9uIG9mIHRoZSBpdGVtIG9uIHRoZSBjaXJjbGUsIGNvdW50aW5nIGZyb20gMSAoTm9ydGgpIHRocm91Z2ggTlxuICogJHJhZGl1cyB7TnVtYmVyfSAgICByYWRpdXMgb2YgdGhlIGNpcmNsZSBpbiBwaXhlbHNcbiAqICRwb3NpdGlvbnMge051bWJlcn0gICB0aGUgbnVtYmVyIG9mIHBvc2l0aW9ucyBvbiB0aGUgY2lyY2xlXG4gKiAkb3JpZ2luWCB7TnVtYmVyfSAgIG9wdGlvbmFsIFggb3JpZ2luIHBvaW50IGZvciB0aGUgY2lyY2xlLCBkZWZhdWx0cyB0byB0aGUgcmFkaXVzXG4gKiAkb3JpZ2luWSB7TnVtYmVyfSAgIG9wdGlvbmFsIFkgb3JpZ2luIHBvaW50IGZvciB0aGUgY2lyY2xlLCBkZWZhdWx0cyB0byB0aGUgcmFkaXVzXG4gKiAkb2Zmc2V0WCB7TnVtYmVyfSAgIG9wdGlvbmFsIFggb2Zmc2V0IGZvciB0aGUgaXRlbSwgeW91IG1pZ2h0IHVzZSAxLzIgb2YgdGhlIHdpZHRoIG9mIGFuIGl0ZW0sIGRlZmF1bHQgaXMgMFxuICogJG9mZnNldFkge051bWJlcn0gICBvcHRpb25hbCBZIG9mZnNldCBmb3IgdGhlIGl0ZW0sIHlvdSBtaWdodCB1c2UgMS8yIG9mIHRoZSBoZWlnaHQgb2YgYW4gaXRlbSwgZGVmYXVsdCBpcyAwXG4gKi9cbkBmdW5jdGlvbiBvbi1jaXJjbGUoJG9yZGluYWxQb3NpdGlvbiwgJHJhZGl1czogMTgwLCAkcG9zaXRpb25zOiAxMywgJG9yaWdpblg6ICRyYWRpdXMsICRvcmlnaW5ZOiAkcmFkaXVzLCAkb2Zmc2V0WDogMCwgJG9mZnNldFk6IDAsICRjaXJjbGVTaXplOiAzNjAsICRzdGFydFBvczogOTAsICRyZXZlcnNlT3JkZXI6IHRydWUpIHtcblxuICAgIEBpZiAkcmV2ZXJzZU9yZGVyIHtcbiAgICAgICAgJHBvc2l0aW9uQW5nbGVEZWdyZWVzOiAtMSAqICgkb3JkaW5hbFBvc2l0aW9uIC0gMSkgKiAkY2lyY2xlU2l6ZSAvICRwb3NpdGlvbnMgKyAkc3RhcnRQb3M7XG4gICAgfSBAZWxzZSB7XG4gICAgICAgICRwb3NpdGlvbkFuZ2xlRGVncmVlczogKCRvcmRpbmFsUG9zaXRpb24gLSAxKSAqICRjaXJjbGVTaXplIC8gJHBvc2l0aW9ucyArICRzdGFydFBvcztcbiAgICB9XG5cbiAgICAkcG9zaXRpb25BbmdsZVJhZGlhbnM6ICRwb3NpdGlvbkFuZ2xlRGVncmVlcyAqIHBpKCkgLyAxODA7XG5cbiAgICAkY2lyY2xlWHBvczogI3tyb3VuZCgkb3JpZ2luWCArICRvZmZzZXRYICsgJHJhZGl1cyAqIGNvcygkcG9zaXRpb25BbmdsZVJhZGlhbnMpKX1weDtcbiAgICAkY2lyY2xlWXBvczogI3tyb3VuZCgkb3JpZ2luWSArICRvZmZzZXRZICsgJHJhZGl1cyAqIHNpbigkcG9zaXRpb25BbmdsZVJhZGlhbnMpKX1weDtcblxuICAgIEByZXR1cm4gKCRjaXJjbGVYcG9zLCAkY2lyY2xlWXBvcyk7XG5cbn0iLCIvLyBLdWRvczogaHR0cDovL2h1Z29naXJhdWRlbC5jb20vMjAxMy8wOC8wOC9hZHZhbmNlZC1zYXNzLWxpc3QtZnVuY3Rpb25zL1xuXG5AZnVuY3Rpb24gcmVwbGFjZS1udGgoJGxpc3QsICRpbmRleCwgJHZhbHVlKSB7XG4gICRyZXN1bHQ6IG51bGw7XG4gICAgICBcbiAgQGlmIHR5cGUtb2YoJGluZGV4KSAhPSBudW1iZXIge1xuICAgIEB3YXJuIFwiJGluZGV4OiAje3F1b3RlKCRpbmRleCl9IGlzIG5vdCBhIG51bWJlciBmb3IgYHJlcGxhY2UtbnRoYC5cIjtcbiAgfVxuXG4gIEBlbHNlIGlmICRpbmRleCA9PSAwIHtcbiAgICBAd2FybiBcIkxpc3QgaW5kZXggMCBtdXN0IGJlIGEgbm9uLXplcm8gaW50ZWdlciBmb3IgYHJlcGxhY2UtbnRoYC5cIjtcbiAgfVxuICAgICAgXG4gIEBlbHNlIGlmIGFicygkaW5kZXgpID4gbGVuZ3RoKCRsaXN0KSB7XG4gICAgQHdhcm4gXCJMaXN0IGluZGV4IGlzICN7JGluZGV4fSBidXQgbGlzdCBpcyBvbmx5ICN7bGVuZ3RoKCRsaXN0KX0gaXRlbSBsb25nIGZvciBgcmVwbGFjZS1udGhgLlwiO1xuICB9XG5cbiAgQGVsc2Uge1xuICAgICRyZXN1bHQ6ICgpO1xuICAgICRpbmRleDogaWYoJGluZGV4IDwgMCwgbGVuZ3RoKCRsaXN0KSArICRpbmRleCArIDEsICRpbmRleCk7ICBcblxuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggbGVuZ3RoKCRsaXN0KSB7XG4gICAgICBAaWYgJGkgPT0gJGluZGV4IHtcbiAgICAgICAgJHJlc3VsdDogYXBwZW5kKCRyZXN1bHQsICR2YWx1ZSk7XG4gICAgICB9XG4gICAgXG4gICAgICBAZWxzZSB7XG4gICAgICAgICRyZXN1bHQ6IGFwcGVuZCgkcmVzdWx0LCBudGgoJGxpc3QsICRpKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gXG4gIEByZXR1cm4gJHJlc3VsdDtcbn0iLCJAaW1wb3J0IFwic3RyaW5ncy9zdHItZXhwbG9kZVwiOyIsIi8vLyBTcGxpdCBgJHN0cmluZ2AgaW50byBzZXZlcmFsIHBhcnRzIHVzaW5nIGAkZGVsaW1pdGVyYC5cbi8vLyBAc2luY2UgMS4yLjBcbi8vLyBAcGFyYW0ge1N0cmluZ30gJHN0cmluZyAgICAtIHN0cmluZyB0byBzcGxpdFxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZGVsaW1pdGVyICgnJykgLSBzdHJpbmcgdG8gdXNlIGFzIGEgZGVsaW1pdGVyIHRvIHNwbGl0IGAkc3RyaW5nYFxuLy8vIEByZXR1cm4ge0xpc3R9XG5AZnVuY3Rpb24gX3NzLXN0ci1leHBsb2RlKCRzdHJpbmcsICRkZWxpbWl0ZXI6IFwiXCIpIHtcbiAgICAkcmVzdWx0OiAoKTtcbiAgICAkbGVuZ3RoOiBzdHItbGVuZ3RoKCRzdHJpbmcpO1xuICAgIFxuICAgIEBpZiBzdHItbGVuZ3RoKCRkZWxpbWl0ZXIpID09IDAge1xuICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgJHJlc3VsdDogYXBwZW5kKCRyZXN1bHQsIHN0ci1zbGljZSgkc3RyaW5nLCAkaSwgJGkpKTtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgQHJldHVybiAkcmVzdWx0O1xuICAgIH1cbiAgICBcbiAgICAkcnVubmluZzogdHJ1ZTtcbiAgICAkcmVtYWluaW5nOiAkc3RyaW5nO1xuICAgIFxuICAgIEB3aGlsZSAkcnVubmluZyB7XG4gICAgICAgICRpbmRleDogc3RyLWluZGV4KCRyZW1haW5pbmcsICRkZWxpbWl0ZXIpO1xuICAgICAgICBcbiAgICAgICAgQGlmICRpbmRleCB7XG4gICAgICAgICAgICAkc2xpY2U6IHN0ci1zbGljZSgkcmVtYWluaW5nLCAxLCAkaW5kZXggLSAxKTtcbiAgICAgICAgICAgICRyZXN1bHQ6IGFwcGVuZCgkcmVzdWx0LCAkc2xpY2UpO1xuICAgICAgICAgICAgJHJlbWFpbmluZzogc3RyLXNsaWNlKCRyZW1haW5pbmcsICRpbmRleCArIHN0ci1sZW5ndGgoJGRlbGltaXRlcikpO1xuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICRydW5uaW5nOiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBcbiAgICBAcmV0dXJuIGFwcGVuZCgkcmVzdWx0LCAkcmVtYWluaW5nKTtcbn1cblxuQGZ1bmN0aW9uIHN0ci1leHBsb2RlKCRzdHJpbmcsICRkZWxpbWl0ZXI6ICcnKSB7XG4gICAgLy9AaWYgdHlwZS1vZigkc3RyaW5nKSAhPSBcInN0cmluZ1wiIHtcbiAgICAvLyAgICBAZXJyb3IgXCJgZXhwbG9kZWAgZnVuY3Rpb24gZXhwZWN0aW5nIGEgc3RyaW5nOyAje3R5cGUtb2YoJHN0cmluZyl9IGdpdmVuLlwiO1xuICAgIC8vfVxuICAgIFxuICAgIC8vQGlmIHR5cGUtb2YoJGRlbGltaXRlcikgIT0gXCJzdHJpbmdcIiB7XG4gICAgLy8gICAgQGVycm9yIFwiYGV4cGxvZGVgIGZ1bmN0aW9uIGV4cGVjdGluZyBhIHN0cmluZzsgI3t0eXBlLW9mKCRkZWxpbWl0ZXIpfSBnaXZlbi5cIjtcbiAgICAvL31cbiAgICBcbiAgICBAcmV0dXJuIF9zcy1zdHItZXhwbG9kZSgkc3RyaW5nLCAkZGVsaW1pdGVyKTtcbn0iLCJAZnVuY3Rpb24gc3RyaXAtdW5pdHMoJG51bWJlcikge1xuICAgIEByZXR1cm4gJG51bWJlciAvICgkbnVtYmVyICogMCArIDEpO1xufSIsIi8vTm90ZSB0aGF0IDsgaXMgdGhlIEBpbXBvcnQgc2VwYXJhdG9yXG4kZm9udC1jb21ibzogXCJUaXRpbGxpdW0rV2ViOjQwMCw3MDA7ICdIZWx2ZXRpY2EgTmV1ZScsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7ICdUaXRpbGxpdW0gV2ViJywgc2Fucy1zZXJpZlwiICFkZWZhdWx0O1xuXG4kZm9udC1wYXJ0czogc3RyLWV4cGxvZGUoJGZvbnQtY29tYm8sICc7Jyk7XG5cbkBpZiBsZW5ndGgoJGZvbnQtcGFydHMpIDwgMiB7XG4gICAgJGZvbnQtcGFydHM6IHN0ci1leHBsb2RlKFwiVGl0aWxsaXVtK1dlYjo0MDAsNzAwOyAnSGVsdmV0aWNhIE5ldWUnLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmOyAnVGl0aWxsaXVtIFdlYicsIHNhbnMtc2VyaWZcIiwgJzsnKTtcbn1cblxuQGlmIGxlbmd0aCgkZm9udC1wYXJ0cykgPiAyIHtcbiAgICAkZm9udC1pbXBvcnQ6IHVucXVvdGUobnRoKCRmb250LXBhcnRzLCAxKSk7XG4gICAgJGZvbnQtaXMtaW1wb3J0ZWQ6IGZhbHNlICFkZWZhdWx0ICFnbG9iYWw7XG5cbiAgICBAaWYgJGZvbnQtaXMtaW1wb3J0ZWQgIT0gdHJ1ZSB7XG4gICAgICAgIEBpbXBvcnQgdXJsKCcvL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2Nzcz9mYW1pbHk9I3skZm9udC1pbXBvcnR9Jyk7XG4gICAgICAgICRmb250LWlzLWltcG9ydGVkOiB0cnVlO1xuICAgIH1cblxuICAgICRib2R5LWZvbnQtZmFtaWx5OiB1bnF1b3RlKG50aCgkZm9udC1wYXJ0cywgMikpO1xuICAgICRoZWFkZXItZm9udC1mYW1pbHk6IHVucXVvdGUobnRoKCRmb250LXBhcnRzLCAzKSk7XG59IEBlbHNlIHtcbiAgICAkYm9keS1mb250LWZhbWlseTogdW5xdW90ZShudGgoJGZvbnQtcGFydHMsIDEpKTtcbiAgICAkaGVhZGVyLWZvbnQtZmFtaWx5OiB1bnF1b3RlKG50aCgkZm9udC1wYXJ0cywgMikpO1xufVxuXG5AaWYgKHN0ci1pbmRleCgkZm9udC1jb21ibywgJ05vdG8gU2FucycpKSB7XG4gICAgJG1lbnUtZm9udC1mYW1pbHk6ICRoZWFkZXItZm9udC1mYW1pbHkgIWRlZmF1bHQ7XG4gICAgJHV0aWxzLW5hdi1mb250LWZhbWlseTogJGhlYWRlci1mb250LWZhbWlseSAhZGVmYXVsdDtcbn0iLCIvLyBTdHVmZlxuJHRvdWNoLWZyaWVuZGx5LXNpemU6ICAgICAgICAgcmVtLWNhbGMoNDQpICFkZWZhdWx0O1xuJGdsb2JhbC1yYWRpdXM6ICAgICAgICAgICAgICAgMCAhZGVmYXVsdDtcblxuLy8gQ2FydFxuJGNhcnQtc3R5bGU6ICAgICAgICAgICAgICAgICAgc2ltcGxlICFkZWZhdWx0O1xuJGNhcnQtcXVhbnRpdHktYmFkZ2Utc2l6ZTogICAgMS4zNXJlbSAhZGVmYXVsdDtcblxuLy8gT2ZmIGNhbnZhcyBtZW51XG4kb2ZmLWNhbnZhcy1iYWNrZ3JvdW5kOiAgICAgICAjMzMzICFkZWZhdWx0O1xuJG9mZi1jYW52YXMtbGluay1jb2xvcjogICAgICAgI2ZmZiAhZGVmYXVsdDtcbiRvZmYtY2FudmFzLWl0ZW0tcGFkZGluZzogICAgIDJyZW0gIWRlZmF1bHQ7XG4kb2ZmLWNhbnZhcy1pdGVtLWhlaWdodDogICAgICByZW0tY2FsYyg0NCkgIWRlZmF1bHQ7XG4kb2ZmLWNhbnZhcy1pdGVtLWxpbmUtY29sb3I6ICByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSkgIWRlZmF1bHQ7XG4kb2ZmLWNhbnZhcy1pdGVtLWxpbmUtaGVpZ2h0OiAxLjIgIWRlZmF1bHQ7XG4kb2ZmLWNhbnZhcy1vbi1tZWRpdW06ICAgICAgICB0cnVlICFkZWZhdWx0O1xuJG9mZi1jYW52YXMtdG9wLXBhZGRpbmc6ICAgICAgJHRvdWNoLWZyaWVuZGx5LXNpemUgIWRlZmF1bHQ7XG4kb2ZmLWNhbnZhcy10b3AtcG9zaXRpb246ICAgICAkdG91Y2gtZnJpZW5kbHktc2l6ZSAhZGVmYXVsdDtcbiRvZmYtY2FudmFzLW5hdi1zbWFsbC1zaXplOiAgIDcwJSAhZGVmYXVsdDtcbiRvZmYtY2FudmFzLW5hdi1tZWRpdW0tc2l6ZTogIDUwJSAhZGVmYXVsdDtcbiRvZmYtY2FudmFzLWNsb3NlLWJ0bi1oZWlnaHQ6ICR0b3VjaC1mcmllbmRseS1zaXplICFkZWZhdWx0O1xuXG4vLyBUeXBvZ3JhcGh5XG4kaDEtZm9udC1zaXplOiByZW0tY2FsYygzMCkgIWRlZmF1bHQ7XG4kaDItZm9udC1zaXplOiByZW0tY2FsYygyNikgIWRlZmF1bHQ7XG4kaDMtZm9udC1zaXplOiByZW0tY2FsYygyMikgIWRlZmF1bHQ7XG4kaDQtZm9udC1zaXplOiByZW0tY2FsYygyMCkgIWRlZmF1bHQ7XG4kaDUtZm9udC1zaXplOiByZW0tY2FsYygxNikgIWRlZmF1bHQ7XG4kaDYtZm9udC1zaXplOiAxcmVtICFkZWZhdWx0O1xuXG4kaDEtZm9udC1yZWR1Y3Rpb246IHJlbS1jYWxjKDIpICFkZWZhdWx0O1xuJGgyLWZvbnQtcmVkdWN0aW9uOiByZW0tY2FsYygyKSAhZGVmYXVsdDtcbiRoMy1mb250LXJlZHVjdGlvbjogcmVtLWNhbGMoMSkgIWRlZmF1bHQ7XG4kaDQtZm9udC1yZWR1Y3Rpb246IHJlbS1jYWxjKDEpICFkZWZhdWx0O1xuJGg1LWZvbnQtcmVkdWN0aW9uOiByZW0tY2FsYygxKSAhZGVmYXVsdDtcbiRoNi1mb250LXJlZHVjdGlvbjogcmVtLWNhbGMoMSkgIWRlZmF1bHQ7XG5cbi8vIE5hdiBzZXR0aW5nc1xuJG5hdi1saW5lLWhlaWdodDogICAgICAgICAgICAgJHRvdWNoLWZyaWVuZGx5LXNpemUgIWRlZmF1bHQ7XG4kbmF2LW1lZGl1bS1zaXplOiAgICAgICAgICAgICAkb2ZmLWNhbnZhcy1uYXYtbWVkaXVtLXNpemUgIWRlZmF1bHQ7XG4kbmF2LWJ0bi1oZWlnaHQ6ICAgICAgICAgICAgICAzcmVtICFkZWZhdWx0O1xuJG5hdi1pY29uLXNwYWNpbmc6ICAgICAgICAgICAgLjRyZW0gIWRlZmF1bHQ7XG4kc2lkZWJhci1zaWRlLXBhZGRpbmc6IFx0XHQgIC43NXJlbSAhZGVmYXVsdDtcblxuLy8gVXRpbGl0eSBidXR0b25zXG4kaTE4bi1wb3B1cC1wb3NpdGlvbjogICAgICAgICBsZWZ0ICFkZWZhdWx0O1xuXG4vLyBCcmVhZGNydW1ic1xuJGNydW1iLWZvbnQtc2l6ZTogICAgICAgICAgICAgcmVtLWNhbGMoMTIpICFkZWZhdWx0O1xuXG4vLyBOb24tdG91Y2ggc2l6ZVxuJG5vbmUtdG91Y2gtZnJpZW5kbHktc2l6ZTogICAgcmVtLWNhbGMoMzUpICFkZWZhdWx0O1xuXG4vLyBNZWRpYSBncmlkXG4kbWVkaWEtZ3JpZC1ib3JkZXItcmFkaXVzOiAgICBtYXgoJGdsb2JhbC1yYWRpdXMsIDJweCkgIWRlZmF1bHQ7XG5cbi8vIEZvbnRzXG4kcHJvZHVjdC1wcmljZS1mb250c2l6ZTogICAgICByZW0tY2FsYygzMCkgIWRlZmF1bHQ7XG4kcHJvZHVjdC1wcmljZS1mb250c2l6ZS1sZzogICByZW0tY2FsYygzMCkgIWRlZmF1bHQ7XG5cbiRuYXYtdG9nZ2xlci1zaXplOiByZW0tY2FsYygzNSkgIWRlZmF1bHQ7IiwiLy8gQ29sb3JzXG4kcHJpbWFyeS1jb2xvciAgICAgICAgOiAjMDE3RDZFICFkZWZhdWx0O1xuJGNhbGwtdG8tYWN0aW9uLWNvbG9yIDogI0JBMTEzNiAhZGVmYXVsdDtcbiRob3Zlci1jb2xvciAgICAgICAgICA6ICMwMjhGN0UgIWRlZmF1bHQ7XG5cbi8vIEJhY2tncm91bmQgY29sb3JzXG4kYm9keS1iZyAgICAgICAgICAgICAgOiAjZjNmM2YzICFkZWZhdWx0O1xuJHRvcC1iZyAgICAgICAgICAgICAgIDogI2Y1ZjVmNSAhZGVmYXVsdDtcbiRoZWFkZXItYmcgICAgICAgICAgICA6ICNjY2NjY2MgIWRlZmF1bHQ7XG4kbmF2aWdhdGlvbi1iZyAgICAgICAgOiAjMDAwMDAwICFkZWZhdWx0O1xuJGJyZWFkY3J1bWJzLWJnICAgICAgIDogI2UzZTNlMyAhZGVmYXVsdDtcbiRjb250ZW50LWJnICAgICAgICAgICA6ICNmZmZmZmYgIWRlZmF1bHQ7XG4kZm9vdGVyLWJnICAgICAgICAgICAgOiAjZDBkMGQwICFkZWZhdWx0O1xuJGVuZC1iZyAgICAgICAgICAgICAgIDogI2VlZWVlZSAhZGVmYXVsdDtcbiRib3JkZXItY29sb3IgICAgICAgICA6ICNkZGRkZGQgIWRlZmF1bHQ7XG5cbi8vIFNlY3Rpb24gY29sb3JzXG4kc2VjdGlvbnMgICAgICAgICAgICAgOiBcImJvZHlcIiwgXCJ0b3BcIiwgXCJuYXZpZ2F0aW9uXCIsIFwiaGVhZGVyXCIsIFwiYnJlYWRjcnVtYnNcIiwgXCJjb250ZW50XCIsIFwiZm9vdGVyXCIsIFwiZW5kXCIgIWRlZmF1bHQ7XG4kc2VjdGlvbi1zZWxlY3RvcnMgICAgOiBcIi5ib2R5LWJnXCIsIFwiLnRvcC1iZ1wiLCBcIi5uYXZpZ2F0aW9uLWJnXCIsIFwiLmhlYWRlci1iZ1wiLCBcIi5icmVhZGNydW1icy1iZ1wiLCBcIi5jb250ZW50LWJnXCIsIFwiLmZvb3Rlci1iZ1wiLCBcIi5lbmQtYmdcIiAhZGVmYXVsdDtcbiRzZWN0aW9uLWJhY2tncm91bmRzICA6ICRib2R5LWJnLCAkdG9wLWJnLCAkbmF2aWdhdGlvbi1iZywgJGhlYWRlci1iZywgJGJyZWFkY3J1bWJzLWJnLCAkY29udGVudC1iZywgJGZvb3Rlci1iZywgJGVuZC1iZyAhZGVmYXVsdDtcblxuLy8gTmF2IGNvbG9yIHN0dWZmXG4kbmF2LXN1Ym1lbnUtYm9yZGVyLWNvbG9yIDogJGJvcmRlci1jb2xvciAhZGVmYXVsdDtcblxuJGNvbG9yLWNvbnRyYXN0LXRocmVzaG9sZDogNC41ICFkZWZhdWx0OyAgLy8gNC41ID0gV0NBRyBBQSwgNz0gV0NBRyBBQUFcblxuJGNydW1iLWZvbnQtY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRwcmltYXJ5LWNvbG9yLCAkYnJlYWRjcnVtYnMtYmcpICFkZWZhdWx0O1xuJGNydW1iLWZvbnQtY29sb3ItY3VycmVudDogYWNjZXNzaWJsZS1sdW1pbmFuY2UoI0FBQUFBQSwgJGJyZWFkY3J1bWJzLWJnLCA3KSAhZGVmYXVsdDtcbiRjcnVtYi1zbGFzaC1jb2xvcjogcmdiYShhY2Nlc3NpYmxlLWx1bWluYW5jZSgjQUFBQUFBLCAkYnJlYWRjcnVtYnMtYmcsIDEwKSwgMC43NSkgIWRlZmF1bHQ7XG5cbiRzcGxpdG1lbnUtYm9yZGVyLWNvbG9yOiBpZihsdW1hKCRjb250ZW50LWJnKSA8IDUwLCBsaWdodGVuKCRjb250ZW50LWJnLCAxNSUpLCBkYXJrZW4oJGNvbnRlbnQtYmcsIDE1JSkpICFkZWZhdWx0O1xuJHNwbGl0bWVudS1zdWJtZW51LWJhY2tncm91bmQ6IGlmKGx1bWEoJGNvbnRlbnQtYmcpIDwgNTAsIGxpZ2h0ZW4oJGNvbnRlbnQtYmcsIDQlKSwgZGFya2VuKCRjb250ZW50LWJnLCA0JSkpICFkZWZhdWx0O1xuJHNwbGl0bWVudS1zdWJtZW51LWJhY2tncm91bmQtaG92ZXI6IGlmKGx1bWEoJGNvbnRlbnQtYmcpIDwgNTAsIGxpZ2h0ZW4oJGNvbnRlbnQtYmcsIDYlKSwgZGFya2VuKCRjb250ZW50LWJnLCA2JSkpICFkZWZhdWx0O1xuXG4kbmF2LXRvZ2dsZXItYmFja2Ryb3A6ICRzcGxpdG1lbnUtc3VibWVudS1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuJG5hdi10b2dnbGVyLWN1cnJlbnQtYmFja2Ryb3A6ICRuYXYtdG9nZ2xlci1iYWNrZHJvcCAhZGVmYXVsdDsiLCIvLyBUaGVzZSBhcmUgdGhlIG9sZCBQSU9ORUVSIHNldHRpbmdzLCB3aGljaCB3YXMgVGhlIFRoZW1lIFRoYXQgU3RhcnRlZCBJdCBBbGwg4oSiXG5cbi8vIEdsb2JhbCBzZXR0aW5nc1xuJHRvdWNoLWZyaWVuZGx5LXNpemU6IHJlbS1jYWxjKDQ0KSAhZGVmYXVsdDtcbiRnbG9iYWwtcmFkaXVzOiAwICFkZWZhdWx0O1xuXG4vLyBGb250IHNldHRpbmdzXG4kcGFyYWdyYXBoLWxpbmUtaGVpZ2h0OiAxLjUgIWRlZmF1bHQ7XG4kc21hbGwtZm9udC1zaXplOiA4MCUgIWRlZmF1bHQ7XG4kcGFnZS10aXRsZS1wYWRkaW5nOiAwLjVyZW0gIWRlZmF1bHQ7XG5cbi8vIExheW91dCBzZXR0aW5nc1xuJG1lbnUtdHlwZTogJ2Ryb3Bkb3duJyAhZGVmYXVsdDsgLy8gTXVzdCBtYXRjaCB0aGUgZGVmYXVsdCBzZXR0aW5nIGluIHRoZSBjb25maWcucGhwLWZpbGVcbiRwYWdlLWxheW91dDogJ2Z1bGwnICFkZWZhdWx0OyAgIC8vICdmcmFtZWQnIG9yICdmdWxsJ1xuJG9mZi1jYW52YXMtcG9zaXRpb246IGxlZnQgIWRlZmF1bHQ7XG5cbi8vIEFsZXJ0IGJveCBzZXR0aW5nc1xuJGluY2x1ZGUtaHRtbC1hbGVydC1jbGFzc2VzOiBmYWxzZTtcbiRhbGVydC1wYWRkaW5nLXRvcDogMXJlbSAhZGVmYXVsdDtcbiRhbGVydC1jbG9zZS10b3A6IDFyZW0gIWRlZmF1bHQ7XG4kYWxlcnQtZm9udC1zaXplOiByZW0tY2FsYygxNCkgIWRlZmF1bHQ7XG4kYWxlcnQtbGluZS1oZWlnaHQ6ICRhbGVydC1mb250LXNpemUvMXJlbSAqICRwYXJhZ3JhcGgtbGluZS1oZWlnaHQ7XG4kYWxlcnQtc2lkZS1ib3JkZXItc2l6ZTogMnJlbSAhZGVmYXVsdDtcbiRhbGVydC1yYWRpdXM6IDRweCAhZGVmYXVsdDtcbiRhbGVydC1ib3R0b20tbWFyZ2luOiAwICFkZWZhdWx0O1xuXG4vLyBHcmlkIHNldHRpbmdzXG4kcm93LXdpZHRoOiByZW0tY2FsYygxMjgwKSAhZGVmYXVsdDtcbiR0b3RhbC1jb2x1bW5zOiAxMiAhZGVmYXVsdDtcbiRjb2x1bW4tZ3V0dGVyOiByZW0tY2FsYygzMCkgIWRlZmF1bHQ7XG5cbi8vIEVxdWFsIGNvbHVtbiBoZWlnaHQgZ3JpZCBzZXR0aW5nXG4kZXF1YWwtY29sLWlubmVyLXBhZGRpbmc6ICRjb2x1bW4tZ3V0dGVyLzIgIWRlZmF1bHQ7XG5cbi8vIEJsb2NrIGdyaWQgc2V0dGluZ3NcbiRpbmNsdWRlLWh0bWwtYmxvY2stZ3JpZC1jbGFzc2VzOiB0cnVlICFkZWZhdWx0O1xuJGJsb2NrLWdyaWQtZWxlbWVudHM6IDUgIWRlZmF1bHQ7XG4kYWxpZ24tYmxvY2stZ3JpZC10by1ncmlkOiB0cnVlICFkZWZhdWx0O1xuXG4vLyBNZWRpYSBxdWVyeSByYW5nZXNcbiRzbWFsbC1yYW5nZTogKDBlbSwgMzkuOTM3NWVtKSAhZGVmYXVsdDtcbiRtZWRpdW0tcmFuZ2U6ICg0MGVtLCA2My45Mzc1ZW0pICFkZWZhdWx0O1xuJGxhcmdlLXJhbmdlOiAoNjRlbSwgODkuOTM3NWVtKSAhZGVmYXVsdDtcbiR4bGFyZ2UtcmFuZ2U6ICg5MGVtLCAxMTkuOTM3NWVtKSAhZGVmYXVsdDtcbiR4eGxhcmdlLXJhbmdlOiAoMTIwZW0sIDk5OTk5OTk5ZW0pICFkZWZhdWx0O1xuXG4vLyBCcmVhZGNydW1icyBzZXR0aW5nc1xuJGNydW1iLWJnOiAjZmZmICFkZWZhdWx0O1xuJGNydW1iLXBhZGRpbmc6IDAgIWRlZmF1bHQ7XG4kY3J1bWItYm9yZGVyLXNpemU6IDAgIWRlZmF1bHQ7XG4kY3J1bWItZm9udC10cmFuc2Zvcm06IG5vbmUgIWRlZmF1bHQ7XG4kY3J1bWItZm9udC1zaXplOiByZW0tY2FsYygxNikgIWRlZmF1bHQ7XG4kY3J1bWItZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5ICFkZWZhdWx0O1xuJGNydW1iLXNpZGUtcGFkZGluZzogLjVyZW0gIWRlZmF1bHQ7XG5cbi8vIFRhYmxlIHN0eWxpbmdcbiR0YWJsZS1ib3JkZXItc2l6ZTogMDtcblxuLy8gVGFicyBzdHlsaW5nXG4kdGFicy1uYXZpZ2F0aW9uLXBhZGRpbmc6IDAuNHJlbSAhZGVmYXVsdDtcbiR0YWJzLW5hdmlnYXRpb24tZm9udC1zaXplOiByZW0tY2FsYygxNikgIWRlZmF1bHQ7XG4kdGFicy1uYXZpZ2F0aW9uLWZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseSAhZGVmYXVsdDtcbiR0YWJzLWNvbnRlbnQtbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMjQpICFkZWZhdWx0O1xuJHRhYnMtY29udGVudC1wYWRkaW5nOiAuNXJlbSAhZGVmYXVsdDtcbiR0YWJzLXZlcnRpY2FsLW5hdmlnYXRpb24tbWFyZ2luLWJvdHRvbTogMS4yNXJlbSAhZGVmYXVsdDtcblxuLy8gU29jaWFsIGljb25zXG4kc29jaWFsLWljb24tc2l6ZTogJHRvdWNoLWZyaWVuZGx5LXNpemUgIWRlZmF1bHQ7XG5cbi8vIEJ1dHRvbnNcbiRidXR0b24tc2l6ZTogcmVtLWNhbGMoMzcpICFkZWZhdWx0O1xuJGJ1dHRvbi1mb250LXdlaWdodDogbm9ybWFsICFkZWZhdWx0O1xuXG4vLyBQYWdpbmF0aW9uIHNldHRpbmdzXG4kcGFnaW5hdGlvbi1pdGVtLWhlaWdodDogICAgICAgICR0b3VjaC1mcmllbmRseS1zaXplICFkZWZhdWx0O1xuJHBhZ2luYXRpb24taXRlbS1zaWRlLXBhZGRpbmc6ICAxcmVtICFkZWZhdWx0O1xuJHBhZ2luYXRpb24taXRlbS1zcGFjaW5nOiAgICAgICAuNXJlbSAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWl0ZW0tYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1pdGVtLWJvcmRlci1zaXplOiAgIDAgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1mdWxsLWJyZWFrcG9pbnQ6ICAgIFwib25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDUwcmVtKVwiICFkZWZhdWx0O1xuIiwiLy8gTWFpbiBjb2xvcnMgc3R1ZmZcbiRwcmltYXJ5LWNvbG9yICAgICAgICAgICAgICAgOiAjMzMzMzMzICFkZWZhdWx0O1xuJHNlY29uZGFyeS1jb2xvciAgICAgICAgICAgICA6ICNlN2U3ZTcgIWRlZmF1bHQ7XG4kY2FsbC10by1hY3Rpb24tY29sb3IgICAgICAgIDogI0VGM0EzQiAhZGVmYXVsdDtcbiRob3Zlci1jb2xvciAgICAgICAgICAgICAgICAgOiAjRUYzQTNCICFkZWZhdWx0O1xuJGJvcmRlci1jb2xvciAgICAgICAgICAgICAgICA6ICNkZGRkZGQgIWRlZmF1bHQ7XG5cbiRhbGVydC1jb2xvciAgICAgICAgICAgICAgICAgOiAjZTAzMTE0ICFkZWZhdWx0O1xuJHN1Y2Nlc3MtY29sb3IgICAgICAgICAgICAgICA6ICM1Y2I4NWMgIWRlZmF1bHQ7XG4kd2FybmluZy1jb2xvciAgICAgICAgICAgICAgIDogI2ZmYTIwMCAhZGVmYXVsdDtcbiRpbmZvLWNvbG9yICAgICAgICAgICAgICAgICAgOiAjNWJjMGRlICFkZWZhdWx0O1xuJGRhbmdlci1jb2xvciAgICAgICAgICAgICAgICA6ICNkOTUzNGYgIWRlZmF1bHQ7XG5cbi8vIEJhY2tncm91bmQgY29sb3JzXG4kYm9keS1iZyAgICAgICAgICAgICAgICAgICAgIDogI0ZGRkZGRiAhZGVmYXVsdDtcbiR0b3AtYmcgICAgICAgICAgICAgICAgICAgICAgOiAjZjVmNWY1ICFkZWZhdWx0O1xuJGhlYWRlci1iZyAgICAgICAgICAgICAgICAgICA6ICMzMzMzMzMgIWRlZmF1bHQ7XG4kbmF2aWdhdGlvbi1iZyAgICAgICAgICAgICAgIDogIzIxMjEyMSAhZGVmYXVsdDtcbiRjb250ZW50LWJnICAgICAgICAgICAgICAgICAgOiAjZmZmZmZmICFkZWZhdWx0O1xuJGZvb3Rlci1iZyAgICAgICAgICAgICAgICAgICA6ICMzMzMzMzMgIWRlZmF1bHQ7XG4kZW5kLWJnICAgICAgICAgICAgICAgICAgICAgIDogIzMzMzMzMyAhZGVmYXVsdDtcblxuLy8gRm9udCBjb2xvcnNcbiRib2R5LWZvbnQtY29sb3IgICAgICAgICAgICAgOiAjMzMzMzMzICFkZWZhdWx0O1xuJGhlYWRlci1mb250LWNvbG9yICAgICAgICAgICA6IGRhcmtlbigkYm9keS1mb250LWNvbG9yLCA3JSkgIWRlZmF1bHQ7XG4kYWx0ZXJuYXRpdmUtZm9udC1jb2xvciAgICAgIDogI2NjY2NjYyAhZGVmYXVsdDtcblxuLy8gQ29sb3IgY29udHJhc3QgYW5hbHlzaXMgdmFyaWFibGVzLCBzZWUgZnVuY3Rpb25zL2NvbG9yXG4kY29sb3ItY29udHJhc3QtdGhyZXNob2xkICAgIDogNC41ICFkZWZhdWx0OyAgLy8gNC41ID0gV0NBRyBBQSwgNz0gV0NBRyBBQUFcbiRkYXJrLWJvZHktdGV4dCAgICAgICAgICAgICAgOiAkYm9keS1mb250LWNvbG9yICFkZWZhdWx0O1xuJGxpZ2h0LWJvZHktdGV4dCAgICAgICAgICAgICA6ICRhbHRlcm5hdGl2ZS1mb250LWNvbG9yICFkZWZhdWx0O1xuXG4vLyBFbGVtZW50IGFuZCBzZWN0aW9uIGNvbG9yIHNldHRpbmdzXG4vLyBAVE9ETzogV2hlbiB3ZSBjYW4gdXNlIFNhc3MgMy4zLCBjbGVhbiB0aGlzIHVwIGludG8gbWFwcyB3aXRoIGtleS92YWx1ZSBwYWlycyFcbiRjb2xvci1lbGVtZW50cyAgICAgICAgICAgICAgOiBcInByaW1hcnktY29sb3JcIiwgXCJzZWNvbmRhcnktY29sb3JcIiwgXCJjYWxsLXRvLWFjdGlvbi1jb2xvclwiICFkZWZhdWx0O1xuJGNvbG9yLWVsZW1lbnRzLWNvbG9ycyAgICAgICA6ICRwcmltYXJ5LWNvbG9yLCAkc2Vjb25kYXJ5LWNvbG9yLCAkY2FsbC10by1hY3Rpb24tY29sb3IgIWRlZmF1bHQ7IC8vIGxpc3QgbGVuZ3RoIHNob3VsZCBtYXRjaCB0aGF0IG9mICRjb2xvci1lbGVtZW50c1xuJHNlY3Rpb25zICAgICAgICAgICAgICAgICAgICA6IFwidG9wXCIsIFwibmF2aWdhdGlvblwiLCBcImhlYWRlclwiLCBcImNvbnRlbnRcIiwgXCJmb290ZXJcIiwgXCJlbmRcIiAhZGVmYXVsdDtcbiRzZWN0aW9uLXNlbGVjdG9ycyAgICAgICAgICAgOiBcIi50b3AtYmdcIiwgXCIubmF2aWdhdGlvbi1iZ1wiLCBcIi5oZWFkZXItYmdcIiwgXCIuY29udGVudC1iZ1wiLCBcIi5mb290ZXItYmdcIiwgXCIuZW5kLWJnXCIgIWRlZmF1bHQ7IC8vIGxpc3QgbGVuZ3RoIHNob3VsZCBtYXRjaCB0aGF0IG9mICRzZWN0aW9uc1xuJHNlY3Rpb24tYmFja2dyb3VuZHMgICAgICAgICA6ICR0b3AtYmcsICRuYXZpZ2F0aW9uLWJnLCAkaGVhZGVyLWJnLCAkY29udGVudC1iZywgJGZvb3Rlci1iZywgJGVuZC1iZyAhZGVmYXVsdDsgLy8gbGlzdCBsZW5ndGggc2hvdWxkIG1hdGNoIHRoYXQgb2YgJHNlY3Rpb25zXG5cbi8vIFNldCBzb21lIGV4dHJhIGNvbG9yIHZhcmlhYmxlc1xuJGNvbnRlbnQtYmctaXMtZGFyayAgICAgICAgICA6IGlmKGx1bWEoJGNvbnRlbnQtYmcpIDwgNTAsIHRydWUsIGZhbHNlKSAhZGVmYXVsdDtcbiRob3Zlci1iZy10ZXh0LWNvbG9yICAgICAgICAgOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgjZmZmLCAkaG92ZXItY29sb3IpICFkZWZhdWx0O1xuJGNydW1iLWZvbnQtY29sb3IgICAgICAgICAgICA6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRwcmltYXJ5LWNvbG9yLCAkY29udGVudC1iZykgIWRlZmF1bHQ7XG4kY29udGVudC10ZXh0LWNvbG9yICAgICAgICAgIDogaWYoJGNvbnRlbnQtYmctaXMtZGFyaywgYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGxpZ2h0LWJvZHktdGV4dCwgJGNvbnRlbnQtYmcpLCBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkZGFyay1ib2R5LXRleHQsICRjb250ZW50LWJnKSkgIWRlZmF1bHQ7XG4kY3J1bWItZm9udC1jb2xvci1jdXJyZW50ICAgIDogJGNvbnRlbnQtdGV4dC1jb2xvciAhZGVmYXVsdDtcblxuLy8gVGFicyBzZXR0aW5nc1xuJHRhYnMtb24tZGFyay1iZyAgICAgICAgICAgICA6IGlmKCRjb250ZW50LWJnLWlzLWRhcmssIHRydWUsIGZhbHNlKSAhZGVmYXVsdDtcbiR0YWJzLWJnLWNvbG9yICAgICAgICAgICAgICAgOiBpZigkdGFicy1vbi1kYXJrLWJnLCBsaWdodGVuKCRjb250ZW50LWJnLCAxMCUpLCBkYXJrZW4oJGNvbnRlbnQtYmcsIDEwJSkpICFkZWZhdWx0O1xuJHRhYnMtZm9udC1jb2xvciAgICAgICAgICAgICA6IGludmVydCgkdGFicy1iZy1jb2xvcikgIWRlZmF1bHQ7XG4kdGFicy1hY3RpdmUtYmctY29sb3IgICAgICAgIDogaWYoJHRhYnMtb24tZGFyay1iZywgI2ZmZiwgIzAwMCkgIWRlZmF1bHQ7XG4kdGFicy1hY3RpdmUtZm9udC1jb2xvciAgICAgIDogaW52ZXJ0KCR0YWJzLWFjdGl2ZS1iZy1jb2xvcikgIWRlZmF1bHQ7XG4kdGFicy1jb250YWluZXItYmcgICAgICAgICAgIDogaWYoJHRhYnMtb24tZGFyay1iZywgbGlnaHRlbigkY29udGVudC1iZywgMyUpLCBkYXJrZW4oJGNvbnRlbnQtYmcsIDMlKSkgIWRlZmF1bHQ7XG5cbi8vIFNldHRpbmdzIGZvciB0YWJsZXNcbiR0YWJsZS1iZyAgICAgICAgICAgICAgICAgICAgOiAkY29udGVudC1iZyAhZGVmYXVsdDtcbiR0YWJsZS1ldmVuLXJvdy1iZyAgICAgICAgICAgOiBpZigkY29udGVudC1iZy1pcy1kYXJrLCBsaWdodGVuKCRjb250ZW50LWJnLCA1JSksICBkYXJrZW4oJGNvbnRlbnQtYmcsIDUlKSkgIWRlZmF1bHQ7XG4kdGFibGUtYm9yZGVyLWNvbG9yICAgICAgICAgIDogaWYoJGNvbnRlbnQtYmctaXMtZGFyaywgcmdiYSgkbGlnaHQtYm9keS10ZXh0LCAwLjQpLCByZ2JhKCRkYXJrLWJvZHktdGV4dCwgMC40KSkgIWRlZmF1bHQ7XG4kdGFibGUtc3VidGxlLWJvcmRlci1jb2xvciAgIDogaWYoJGNvbnRlbnQtYmctaXMtZGFyaywgcmdiYSgkbGlnaHQtYm9keS10ZXh0LCAwLjQpLCByZ2JhKCRkYXJrLWJvZHktdGV4dCwgMC40KSkgIWRlZmF1bHQ7XG4kdGFibGUtaGVhZC1iZyAgICAgICAgICAgICAgIDogaWYoJGNvbnRlbnQtYmctaXMtZGFyaywgbGlnaHRlbigkY29udGVudC1iZywgMyUpLCBkYXJrZW4oJGNvbnRlbnQtYmcsIDMlKSkgIWRlZmF1bHQ7XG4kdGFibGUtaGVhZC1mb250LWNvbG9yICAgICAgIDogaWYoJGNvbnRlbnQtYmctaXMtZGFyaywgYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGxpZ2h0LWJvZHktdGV4dCwgJHRhYmxlLWhlYWQtYmcpLCBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkZGFyay1ib2R5LXRleHQsICR0YWJsZS1oZWFkLWJnKSkgIWRlZmF1bHQ7XG4kdGFibGUtZXZlbi1yb3ctdGV4dC1jb2xvciAgIDogaWYoJGNvbnRlbnQtYmctaXMtZGFyaywgYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGxpZ2h0LWJvZHktdGV4dCwgJHRhYmxlLWV2ZW4tcm93LWJnICksIGFjY2Vzc2libGUtbHVtaW5hbmNlKCRkYXJrLWJvZHktdGV4dCwgJHRhYmxlLWV2ZW4tcm93LWJnICkpICFkZWZhdWx0O1xuJHRhYmxlLXJvdy1mb250LWNvbG9yICAgICAgICA6ICRjb250ZW50LXRleHQtY29sb3IgIWRlZmF1bHQ7XG5cbi8vIENoZWNrb3V0IGNvbG9yc1xuJGNoZWNrb3V0LXN0ZXBzLWJnICAgICAgICAgICA6IGlmKCRjb250ZW50LWJnLWlzLWRhcmssIGxpZ2h0ZW4oJGNvbnRlbnQtYmcsIDE1JSksIGRhcmtlbigkY29udGVudC1iZywgMTUlKSkgIWRlZmF1bHQ7XG4kY2hlY2tvdXQtc3RlcC1pbmFjdGl2ZS1iZyAgIDogaWYoJGNvbnRlbnQtYmctaXMtZGFyaywgbGlnaHRlbigkY29udGVudC1iZywgOCUpLCBkYXJrZW4oJGNvbnRlbnQtYmcsIDglKSkgIWRlZmF1bHQ7XG4kZWRpdC1zdGVwLWJ1dHRvbi1iZyAgICAgICAgIDogJGNvbnRlbnQtdGV4dC1jb2xvciAhZGVmYXVsdDtcbiRlZGl0LXN0ZXAtYnV0dG9uLXRleHQtY29sb3IgOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgjZmZmLCAkZWRpdC1zdGVwLWJ1dHRvbi1iZykgIWRlZmF1bHQ7XG4kZWRpdC1zdGVwLWhvdmVyLWJnICAgICAgICAgIDogaWYoJGNvbnRlbnQtYmctaXMtZGFyaywgZGFya2VuKCRlZGl0LXN0ZXAtYnV0dG9uLWJnLCAxMCUpLCBsaWdodGVuKCRlZGl0LXN0ZXAtYnV0dG9uLWJnLCAxMCUpKSAhZGVmYXVsdDtcbiRlZGl0LXN0ZXAtaG92ZXItdGV4dC1jb2xvciAgOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkcHJpbWFyeS1jb2xvciwgJGVkaXQtc3RlcC1ob3Zlci1iZykgIWRlZmF1bHQ7XG4kc3RlcC1udW1iZXItYmcgICAgICAgICAgICAgIDogaWYoJGNvbnRlbnQtYmctaXMtZGFyaywgZGFya2VuKCRlZGl0LXN0ZXAtYnV0dG9uLWJnLCAyMCUpLCBsaWdodGVuKCRlZGl0LXN0ZXAtYnV0dG9uLWJnLCAyMCUpKSAhZGVmYXVsdDtcbiRzdGVwLW51bWJlci10ZXh0LWNvbG9yICAgICAgOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgjZGRkLCAkc3RlcC1udW1iZXItYmcpICFkZWZhdWx0O1xuXG4vLyBNZXNzYWdlYm94L2FsZXJ0c1xuJG1zZ2JveC1iZyAgICAgICAgICAgICAgICAgICA6IGlmKCRjb250ZW50LWJnLWlzLWRhcmssIGxpZ2h0ZW4oJGNvbnRlbnQtYmcsIDUlKSwgZGFya2VuKCRjb250ZW50LWJnLCA1JSkpICFkZWZhdWx0O1xuJG1zZ2JveC1ib3JkZXItY29sb3IgICAgICAgICA6IGlmKCRjb250ZW50LWJnLWlzLWRhcmssIGxpZ2h0ZW4oJG1zZ2JveC1iZywgMTAlKSwgZGFya2VuKCRjb250ZW50LWJnLCAxMCUpKSAhZGVmYXVsdDtcbiRtc2dib3gtY2xvc2UtdGV4dC1jb2xvciAgICAgOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgjMDAwLCAkbXNnYm94LWJnKSAhZGVmYXVsdDtcbiRtc2dib3gtY2xvc2Utc2hhZG93LWNvbG9yICAgOiBpbnZlcnQoJG1zZ2JveC1jbG9zZS10ZXh0LWNvbG9yKSAhZGVmYXVsdDtcbiRhbGVydC1mb250LWNvbG9yLWFsdCAgICAgICAgOiAkYm9keS1mb250LWNvbG9yICFkZWZhdWx0O1xuXG4vLyBUYWJzIG5hdmlnYXRpb24gY29sb3IgKG5lZWRzIGZpeGluZylcbiR0YWJzLW5hdmlnYXRpb24tYmctY29sb3IgICAgICAgICAgOiAkdGFicy1iZy1jb2xvciAhZGVmYXVsdDtcbiR0YWJzLW5hdmlnYXRpb24tYWN0aXZlLWJnLWNvbG9yICAgOiAkdGFicy1hY3RpdmUtYmctY29sb3IgIWRlZmF1bHQ7XG4kdGFicy1uYXZpZ2F0aW9uLWhvdmVyLWJnLWNvbG9yICAgIDogc2NhbGUtY29sb3IoJHRhYnMtbmF2aWdhdGlvbi1iZy1jb2xvciwgJGxpZ2h0bmVzczogLTE2LjYlKSAhZGVmYXVsdDtcbiR0YWJzLW5hdmlnYXRpb24tZm9udC1jb2xvciAgICAgICAgOiAkdGFicy1mb250LWNvbG9yICFkZWZhdWx0O1xuJHRhYnMtbmF2aWdhdGlvbi1hY3RpdmUtZm9udC1jb2xvciA6ICR0YWJzLWFjdGl2ZS1mb250LWNvbG9yICFkZWZhdWx0O1xuXG4vLyBCb3JkZXJzXG4kYm9yZGVyLWRlZmF1bHQtb3BhY2l0eTogMC4yICFkZWZhdWx0O1xuJGJvcmRlci1kZWZhdWx0LWhvdmVyLW9wYWNpdHk6IDAuNCAhZGVmYXVsdDtcbiRib3JkZXItaGFyZC1vcGFjaXR5OiAwLjUgIWRlZmF1bHQ7XG4kYm9yZGVyLWhhcmQtaG92ZXItb3BhY2l0eTogMC43ICFkZWZhdWx0O1xuXG4vLyBTb2NpYWwgaWNvbiBjb2xvcnNcbiRzb2NpYWwtY29sb3ItYmxvZ2dlcjogI2ZjOTk0OCAhZGVmYXVsdDtcbiRzb2NpYWwtY29sb3ItZWxsbzogcmdiYSgjMDAwLCAuMSkgIWRlZmF1bHQ7XG4kc29jaWFsLWNvbG9yLWZhY2Vib29rOiAjM2I1OTk4ICFkZWZhdWx0O1xuJHNvY2lhbC1jb2xvci1mbGlja3I6ICNmZjAwODQgIWRlZmF1bHQ7XG4kc29jaWFsLWNvbG9yLWdvb2dsZXBsdXM6ICNkZDRiMzkgIWRlZmF1bHQ7XG4kc29jaWFsLWNvbG9yLWluc3RhZ3JhbTogIzUxN2ZhNCAhZGVmYXVsdDtcbiRzb2NpYWwtY29sb3ItbGlua2VkaW46ICMwMDdiYjYgIWRlZmF1bHQ7XG4kc29jaWFsLWNvbG9yLW1haWw6ICMzMzMgIWRlZmF1bHQ7XG4kc29jaWFsLWNvbG9yLXBpbnRlcmVzdDogI2NiMjAyNyAhZGVmYXVsdDtcbiRzb2NpYWwtY29sb3ItdHdpdHRlcjogIzAwYWNlZCAhZGVmYXVsdDtcbiRzb2NpYWwtY29sb3ItdmltZW86ICM0NWJjZjkgIWRlZmF1bHQ7XG4kc29jaWFsLWNvbG9yLXlvdXR1YmU6ICNjYzE4MWUgIWRlZmF1bHQ7XG5cbi8vIFBhZ2luYXRpb24gY29sb3JzXG4kcGFnaW5hdGlvbi1pdGVtLWJhY2tncm91bmQ6ICAgICAgICAgICAgcmdiYSgkY29udGVudC1iZywgMCkgIWRlZmF1bHQ7IC8vIHRyYW5zcGFyZW50XG4kcGFnaW5hdGlvbi1pdGVtLWJvcmRlci1jb2xvcjogICAgICAgICAgJHBhZ2luYXRpb24taXRlbS1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuJHBhZ2luYXRpb24taXRlbS1jb2xvcjogICAgICAgICAgICAgICAgICRjb250ZW50LXRleHQtY29sb3I7XG5cbiRwYWdpbmF0aW9uLWN1cnJlbnQtaXRlbS1iYWNrZ3JvdW5kOiAgICAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWN1cnJlbnQtaXRlbS1ib3JkZXItY29sb3I6ICAkcGFnaW5hdGlvbi1jdXJyZW50LWl0ZW0tYmFja2dyb3VuZCAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWN1cnJlbnQtaXRlbS1jb2xvcjogICAgICAgICBhY2Nlc3NpYmxlLWx1bWluYW5jZShpZihsdW1hKCRwYWdpbmF0aW9uLWN1cnJlbnQtaXRlbS1iYWNrZ3JvdW5kKSA8IDUwLCAjZmZmLCAjMDAwKSwgJHBhZ2luYXRpb24tY3VycmVudC1pdGVtLWJhY2tncm91bmQpICFkZWZhdWx0O1xuXG4kcGFnaW5hdGlvbi1ob3Zlci1pdGVtLWJhY2tncm91bmQ6ICAgICAgJGhvdmVyLWNvbG9yICFkZWZhdWx0O1xuJHBhZ2luYXRpb24taG92ZXItaXRlbS1ib3JkZXItY29sb3I6ICAgICRwYWdpbmF0aW9uLWhvdmVyLWl0ZW0tYmFja2dyb3VuZCAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWhvdmVyLWl0ZW0tY29sb3I6ICAgICAgICAgICBhY2Nlc3NpYmxlLWx1bWluYW5jZShpZihsdW1hKCRwYWdpbmF0aW9uLWhvdmVyLWl0ZW0tYmFja2dyb3VuZCkgPCA1MCwgI2ZmZiwgIzAwMCksICRwYWdpbmF0aW9uLWhvdmVyLWl0ZW0tYmFja2dyb3VuZCkgIWRlZmF1bHQ7IiwiQGlmIGxlbmd0aCgkY29sb3ItZWxlbWVudHMpICE9IGxlbmd0aCgkY29sb3ItZWxlbWVudHMtY29sb3JzKSB7XG4gICAgQHdhcm4gXCJMZW5ndGggb2YgJGNvbG9yLWVsZW1lbnRzIGRvZXMgbm90IG1hdGNoIGxlbmd0aCBvZiAkY29sb3ItZWxlbWVudHMtY29sb3JzXCI7XG59XG5cbkBpZiBsZW5ndGgoJHNlY3Rpb24tc2VsZWN0b3JzKSAhPSBsZW5ndGgoJHNlY3Rpb24tYmFja2dyb3VuZHMpIHtcbiAgICBAd2FybiBcIkxlbmd0aCBvZiAkc2VjdGlvbi1zZWxlY3RvcnMgZG9lcyBub3QgbWF0Y2ggbGVuZ3RoIG9mICRzZWN0aW9uLWJhY2tncm91bmRzXCI7XG59XG5cbi8qKlxuICogQ3JlYXRlIGFuIGVsZW1lbnQgd2l0aCBhIGNvbG9yZWQgYmFja2dyb3VuZFxuICpcbiAqIFRoaXMgbWl4aW4gb3V0cHV0cyBhIGNvbG9yIGFuZCBhIGJhY2tncm91bmQgY29sb3JcbiAqIFxuICogQHBhcmFtICBzdHJpbmcgJGNvbG9yICAgICAgICAgICAgICAgICAgICBUaGUgYmFja2dyb3VuZCBjb2xvciB5b3Ugd2FudCB0byB1c2UsIGZvciBpbnN0YW5jZSAjZmZjYzAwXG4gKiBAcGFyYW0gIHN0cmluZyAkZm9yZWdyb3VuZC1jb2xvcjogI2ZmZiAgIFRoZSBmb3JlZ3JvdW5kL3RleHQgY29sb3IgeW91IHdhbnQgdG8gdXNlLiBUaGlzIHdpbGwgaGF2ZSBhbiBhY2Nlc3NpYmxlIGx1bWluYW5jZSwgYWRqdXN0ZWQgdG8gd29yayB3aXRoICRjb2xvclxuICogQHBhcmFtICBzdHJpbmcgJGJhY2tncm91bmQtY29sb3I6ICNmZmYgICBUaGUgYmFja2dyb3VuZCBvbiB3aGljaCB0aGUgZWxlbWVudCBpcyBzaXR1YXRlZCAoZWxlbWVudHMgYmFja2dyb3VuZCB3aWxsIGJlIGFkanVzdGVkIHRvIGhhdmUgYXQgbGVhc3QgYSBzbWFsbCBjb250cmFzdCB0byB0aGlzKVxuICovXG5AbWl4aW4gY29sb3JlZC1iZy1lbGVtZW50KCRjb2xvciwgJGZvcmVncm91bmQtY29sb3I6ICNmZmYsICRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmKSB7XG4gICAgJGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkY29sb3IsICRiYWNrZ3JvdW5kLWNvbG9yLCAxLjUpO1xuICAgIGJhY2tncm91bmQ6ICRjb2xvcjtcbiAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGZvcmVncm91bmQtY29sb3IsICRjb2xvcik7XG59XG5cbi8vIENhbiB3ZSBjb21iaW5lIHRoZSBzdHlsZXMgZm9yIHNvbWUgb2YgdGhlIGhlYWRlcnMgdG8gcmVkdWNlIHRoZSBzaXplIG9mIG91ciBjc3M/XG4kdW5pcXVlLXNlY3Rpb25zOiAoKTtcbiR1bmlxdWUtYmFja2dyb3VuZHM6ICgpO1xuJHVuaXF1ZS1zZWxlY3RvcnM6ICgpO1xuJHNoYXJlZC1zZWN0aW9uczogKCk7XG5cbkBmb3IgJGkgZnJvbSAxIHRocm91Z2ggbGVuZ3RoKCRzZWN0aW9uLWJhY2tncm91bmRzKSB7XG4gICAgJHRlc3RpbmctYmFja2dyb3VuZDogbnRoKCRzZWN0aW9uLWJhY2tncm91bmRzLCAkaSk7XG4gICAgJGJhY2tncm91bmQtcG9zaXRpb246IGluZGV4KCR1bmlxdWUtYmFja2dyb3VuZHMsICR0ZXN0aW5nLWJhY2tncm91bmQpO1xuICAgIFxuICAgIEBpZiAkYmFja2dyb3VuZC1wb3NpdGlvbiA9PSBmYWxzZSBvciAkYmFja2dyb3VuZC1wb3NpdGlvbiA9PSBudWxsIHtcbiAgICAgICAgJHVuaXF1ZS1iYWNrZ3JvdW5kczogYXBwZW5kKCR1bmlxdWUtYmFja2dyb3VuZHMsICR0ZXN0aW5nLWJhY2tncm91bmQpO1xuICAgICAgICAkdW5pcXVlLXNlbGVjdG9yczogYXBwZW5kKCR1bmlxdWUtc2VsZWN0b3JzLCBudGgoJHNlY3Rpb24tc2VsZWN0b3JzLCAkaSkpO1xuICAgICAgICAkdW5pcXVlLXNlY3Rpb25zOiBhcHBlbmQoJHVuaXF1ZS1zZWN0aW9ucywgbnRoKCRzZWN0aW9ucywgJGkpKTtcbiAgICAgICAgJHNoYXJlZC1zZWN0aW9uczogYXBwZW5kKCRzaGFyZWQtc2VjdGlvbnMsIG50aCgkc2VjdGlvbnMsICRpKSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAgICRleGlzdGluZy1iZy1wb3NpdGlvbjogaW5kZXgoJHVuaXF1ZS1iYWNrZ3JvdW5kcywgJHRlc3RpbmctYmFja2dyb3VuZCk7XG4gICAgICAgICRzaGFyZWQtc2VjdGlvbnM6IGFwcGVuZCgkc2hhcmVkLXNlY3Rpb25zLCBudGgoJHVuaXF1ZS1zZWN0aW9ucywgJGV4aXN0aW5nLWJnLXBvc2l0aW9uKSk7XG4gICAgfVxufVxuXG4kY29udGVudC1zZWN0aW9uLWRvbmU6IGZhbHNlO1xuXG4vLyBPdXRwdXQgc2VjdGlvbnMgd2l0aCB0aGVpciBjb2xvcnMsIGJvcmRlcnMgYW5kIGJhY2tncm91bmRzXG5AZm9yICRpIGZyb20gMSB0aHJvdWdoIGxlbmd0aCgkdW5pcXVlLXNlY3Rpb25zKSB7XG4gICAgJHNlY3Rpb24tYmFja2dyb3VuZDogbnRoKCR1bmlxdWUtYmFja2dyb3VuZHMsICRpKTtcbiAgICAkc2VjdGlvbi1saW5rLWNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkcHJpbWFyeS1jb2xvciwgJHNlY3Rpb24tYmFja2dyb3VuZCk7XG5cbiAgICAvLyBTZXQgdGV4dCBjb2xvclxuICAgICRzZWN0aW9uLXRleHQtY29sb3I6IGlmKFxuICAgICAgICBsdW1hKCRzZWN0aW9uLWJhY2tncm91bmQpIDwgNTAsXG4gICAgICAgIGFjY2Vzc2libGUtbHVtaW5hbmNlKCRsaWdodC1ib2R5LXRleHQsICRzZWN0aW9uLWJhY2tncm91bmQpLFxuICAgICAgICBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkZGFyay1ib2R5LXRleHQsICRzZWN0aW9uLWJhY2tncm91bmQpXG4gICAgKTtcblxuICAgIC8vIEVtcGhhc2lzIHRleHQgY29sb3Igc2hvdWxkIGJlIG9mIGNyZWF0ZXIgY29udHJhc3QgdGhhbiB0aGUgdGV4dCBjb2xvclxuICAgICRzZWN0aW9uLWVtcGhhc2lzLXRleHQtY29sb3I6IGlmKFxuICAgICAgICBsdW1hKCRzZWN0aW9uLXRleHQtY29sb3IpID4gbHVtYSgkc2VjdGlvbi1iYWNrZ3JvdW5kKSxcbiAgICAgICAgbGlnaHRlbigkc2VjdGlvbi10ZXh0LWNvbG9yLCA3JSksXG4gICAgICAgIGRhcmtlbigkc2VjdGlvbi10ZXh0LWNvbG9yLCA3JSlcbiAgICApO1xuXG4gICAgLy8gTGluayBob3ZlciBjb2xvciBzaG91bGQgYmUgb2YgZ3JlYXRlciBjb250cmFzdCB0aGFuIHRoZSBsaW5rIGNvbG9yXG4gICAgJHNlY3Rpb24tbGluay1ob3Zlci1jb2xvcjogaWYoXG4gICAgICAgIGx1bWEoJHNlY3Rpb24tbGluay1jb2xvcikgPiBsdW1hKCRzZWN0aW9uLWJhY2tncm91bmQpLFxuICAgICAgICBsaWdodGVuKCRzZWN0aW9uLWxpbmstY29sb3IsIDEwJSksXG4gICAgICAgIGRhcmtlbigkc2VjdGlvbi1saW5rLWNvbG9yLCAxMCUpXG4gICAgKTtcblxuICAgICUje250aCgkdW5pcXVlLXNlY3Rpb25zLCAkaSl9LXBsYWNlaG9sZGVyX19zdWJ0bGUge1xuICAgICAgICBjb2xvcjogJHNlY3Rpb24tdGV4dC1jb2xvcjtcbiAgICB9XG5cbiAgICAlI3tudGgoJHVuaXF1ZS1zZWN0aW9ucywgJGkpfS1wbGFjZWhvbGRlcl9fbmV1dHJhbC1saW5rIHtcbiAgICAgICAgY29sb3I6ICRzZWN0aW9uLXRleHQtY29sb3I7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZWN0aW9uLWVtcGhhc2lzLXRleHQtY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAlI3tudGgoJHVuaXF1ZS1zZWN0aW9ucywgJGkpfS1wbGFjZWhvbGRlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZWN0aW9uLWJhY2tncm91bmQ7XG4gICAgICAgIGNvbG9yOiAkc2VjdGlvbi10ZXh0LWNvbG9yO1xuXG4gICAgICAgIGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYge1xuICAgICAgICAgICAgY29sb3I6ICRzZWN0aW9uLWVtcGhhc2lzLXRleHQtY29sb3I7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBMaW5rcyBub3Qgb24gYSBjb2xvcmVkIGJhY2tncm91bmQgYW5kIG5vdCBzZXQgdG8gbmV1dHJhbCBzaG91bGQgYmUgYWNjZXNzaWJsZVxuICAgICAgICBhIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2VjdGlvbi1saW5rLWNvbG9yO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZWN0aW9uLWxpbmstaG92ZXItY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuc3VidGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2VjdGlvbi10ZXh0LWNvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgLmJvcmRlcmVkIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgkc2VjdGlvbi10ZXh0LWNvbG9yLCAkYm9yZGVyLWRlZmF1bHQtb3BhY2l0eSk7XG4gICAgICAgIH1cblxuICAgICAgICAuYm9yZGVyZWQtLWhhcmQge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKCRzZWN0aW9uLXRleHQtY29sb3IsICRib3JkZXItZGVmYXVsdC1ob3Zlci1vcGFjaXR5KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGEuYm9yZGVyZWQ6aG92ZXIsXG4gICAgICAgIGEuYm9yZGVyZWQ6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKCRzZWN0aW9uLXRleHQtY29sb3IsICRib3JkZXItaGFyZC1vcGFjaXR5KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGEuYm9yZGVyZWQtLWhhcmQ6aG92ZXIsXG4gICAgICAgIGEuYm9yZGVyZWQtLWhhcmQ6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKCRzZWN0aW9uLXRleHQtY29sb3IsICRib3JkZXItaGFyZC1ob3Zlci1vcGFjaXR5KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5uZXV0cmFsLWxpbmssXG4gICAgICAgIC5uZXV0cmFsLWxpbmsgPiBhIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2VjdGlvbi10ZXh0LWNvbG9yO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNlY3Rpb24tZW1waGFzaXMtdGV4dC1jb2xvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIERlZmluZSAucHJpbWFyeS1jb2xvciwgLnNlY29uZGFyeS1jb2xvciBldGMuXG4gICAgICAgIEBmb3IgJGogZnJvbSAxIHRocm91Z2ggbGVuZ3RoKCRjb2xvci1lbGVtZW50cykge1xuICAgICAgICAgICAgJGNvbG9yLWVsZW1lbnQtYmc6IGFjY2Vzc2libGUtbHVtaW5hbmNlKG50aCgkY29sb3ItZWxlbWVudHMtY29sb3JzLCAkaiksICRzZWN0aW9uLWJhY2tncm91bmQsIDEuNSk7XG4gICAgICAgICAgICAkY29sb3ItZWxlbWVudC1iZy1saW5rOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgjZmZmLCAkY29sb3ItZWxlbWVudC1iZyk7XG5cbiAgICAgICAgICAgIC4je250aCgkY29sb3ItZWxlbWVudHMsICRqKX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZShudGgoJGNvbG9yLWVsZW1lbnRzLWNvbG9ycywgJGopLCAkc2VjdGlvbi1iYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gTmVlZCBsZXNzIGNvbnRyYXN0IGFkanVzdG1lbnQgZm9yIGl0ZW1zIHdpdGggbGFyZ2UgdGV4dCAoMThweCBvciBtb3JlKVxuICAgICAgICAgICAgLiN7bnRoKCRjb2xvci1lbGVtZW50cywgJGopfS1iaWcge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZShudGgoJGNvbG9yLWVsZW1lbnRzLWNvbG9ycywgJGopLCAkc2VjdGlvbi1iYWNrZ3JvdW5kLCAzKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLiN7bnRoKCRjb2xvci1lbGVtZW50cywgJGopfS1iZyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWVsZW1lbnQtYmc7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRjb2xvci1lbGVtZW50LWJnLWxpbms7XG5cbiAgICAgICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRjb2xvci1lbGVtZW50LWJnLWxpbms7XG5cbiAgICAgICAgICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGNvbG9yLWVsZW1lbnQtYmctbGluaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oJGNvbG9yLWVsZW1lbnQtYmcsIDEwJSlcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkY29sb3ItZWxlbWVudC1iZy1saW5rO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKCRjb2xvci1lbGVtZW50LWJnLCAxMCUpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICAvLyBGb3VuZGF0aW9uIGJ1dHRvbiBjb21wb25lbnRzIHVzZSBwcmltYXJ5IGJnIGJ5IGRlZmF1bHQgb24gYnV0dG9uc1xuICAgICAgICBidXR0b24sIC5idXR0b24ge1xuICAgICAgICAgICAgLy8gVGhpcyBpcyBob3cgdGhlIHZhcmlhYmxlIGlzIGRlZmluZWQgaW50ZXJuYWxseSBpbiBGb3VuZGF0aW9uXG4gICAgICAgICAgICAvLyBXZSBkb24ndCBkZWZpbmUgdGhpcyB2YXJpYWJsZSBpbiBvdXIgdGhlbWVzIHlldCwgc28gd2UgaGF2ZSBpdCBoZXJlIGlmL3VudGlsIHdlIGRvXG4gICAgICAgICAgICAkYnV0dG9uLWNvbG9yLWJnOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgJF9idXR0b24tY29sb3ItYmc6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRidXR0b24tY29sb3ItYmcsICRzZWN0aW9uLWJhY2tncm91bmQsIDEuNSk7XG4gICAgICAgICAgICAkX2J1dHRvbi1jb2xvci1mb250OiBhY2Nlc3NpYmxlLWx1bWluYW5jZShpZihsdW1hKCRfYnV0dG9uLWNvbG9yLWJnKSA8IDUwLCAjZmZmLCAjMDAwKSwgJF9idXR0b24tY29sb3ItYmcpO1xuICAgICAgICAgICAgJF9idXR0b24taG92ZXItY29sb3ItYmc6IGFjY2Vzc2libGUtbHVtaW5hbmNlKGFjY2Vzc2libGUtbHVtaW5hbmNlKCRob3Zlci1jb2xvciwgJF9idXR0b24tY29sb3ItYmcsIDEuMjUpLCAkc2VjdGlvbi1iYWNrZ3JvdW5kLCAyKTtcbiAgICAgICAgICAgICRfYnV0dG9uLWhvdmVyLWNvbG9yLXRleHQ6IGFjY2Vzc2libGUtbHVtaW5hbmNlKGlmKGx1bWEoJF9idXR0b24taG92ZXItY29sb3ItYmcpIDwgNTAsICNmZmYsICMwMDApLCAkX2J1dHRvbi1ob3Zlci1jb2xvci1iZyk7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgICYsIFxuICAgICAgICAgICAgJi5kaXNhYmxlZCxcbiAgICAgICAgICAgICYuZGlzYWJsZWQ6aG92ZXIsXG4gICAgICAgICAgICAmLmRpc2FibGVkOmZvY3VzLCBcbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJltkaXNhYmxlZF06aG92ZXIsXG4gICAgICAgICAgICAmW2Rpc2FibGVkXTpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJF9idXR0b24tY29sb3ItYmc7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRfYnV0dG9uLWNvbG9yLWZvbnQ7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICRidXR0b24tZm9udC13ZWlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBcbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJF9idXR0b24taG92ZXItY29sb3ItdGV4dDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkX2J1dHRvbi1ob3Zlci1jb2xvci1iZztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBcbiAgICAvLyBQbGFjZWhvbGRlcnMgc2VsZWN0b3JzIHlvdSBjYW4gdXNlIHZpYSBAZXh0ZW5kICU8cGxhY2Vob2xkZXIgbmFtZT4gaW4geW91ciBjb250ZW50IHNlY3Rpb24uXG4gICAgQGlmICRjb250ZW50LXNlY3Rpb24tZG9uZSA9PSBmYWxzZSBhbmQgJHNlY3Rpb24tYmFja2dyb3VuZCA9PSAkY29udGVudC1iZyB7XG4gICAgICAgICVjb250ZW50X19ib3JkZXJlZCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoJHNlY3Rpb24tdGV4dC1jb2xvciwgMC4yKTtcbiAgICAgICAgfVxuXG4gICAgICAgICVjb250ZW50X19ib3JkZXJlZC0taGFyZCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoJHNlY3Rpb24tdGV4dC1jb2xvciwgMC41KTtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgLy8gQ29sb3IgZWxlbWVudHMgcGxhY2Vob2xkZXJzXG4gICAgICAgIEBmb3IgJGogZnJvbSAxIHRocm91Z2ggbGVuZ3RoKCRjb2xvci1lbGVtZW50cykge1xuICAgICAgICAgICAgJGNvbG9yLWVsZW1lbnQtYmc6IGFjY2Vzc2libGUtbHVtaW5hbmNlKG50aCgkY29sb3ItZWxlbWVudHMtY29sb3JzLCAkaiksICRjb250ZW50LWJnLCAxLjUpO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICAlY29udGVudF9fI3tudGgoJGNvbG9yLWVsZW1lbnRzLCAkail9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UobnRoKCRjb2xvci1lbGVtZW50cy1jb2xvcnMsICRqKSwgJGNvbnRlbnQtYmcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAlY29udGVudF9fI3tudGgoJGNvbG9yLWVsZW1lbnRzLCAkail9LWJpZyB7XG4gICAgICAgICAgICAgICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKG50aCgkY29sb3ItZWxlbWVudHMtY29sb3JzLCAkaiksICRjb250ZW50LWJnLCAzKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJWNvbnRlbnRfXyN7bnRoKCRjb2xvci1lbGVtZW50cywgJGopfS1iZyB7XG4gICAgICAgICAgICAgICAgJGNvbG9yLWVsZW1lbnQtY29sb3I6IGlmKGx1bWEoJGNvbG9yLWVsZW1lbnQtYmcpIDwgNTAsICNmZmYsICMwMDApO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1lbGVtZW50LWJnO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkY29sb3ItZWxlbWVudC1jb2xvciwgJGNvbG9yLWVsZW1lbnQtYmcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJGNvbnRlbnQtc2VjdGlvbi1kb25lOiB0cnVlO1xuICAgIH1cbn1cblxuLy8gRWF0aW5nIG91ciBvd24gZG9nZm9vZCwgeW91IGNhbiBAZXh0ZW5kICVjb250ZW50LXBsYWNlaG9sZGVyIHdoZXJldmVyIHlvdSB3YW50XG5AZm9yICRpIGZyb20gMSB0aHJvdWdoIGxlbmd0aCgkc2VjdGlvbi1zZWxlY3RvcnMpIHtcbiAgICBcbiAgICAje250aCgkc2VjdGlvbi1zZWxlY3RvcnMsICRpKX0ge1xuICAgICAgICBAZXh0ZW5kICUje250aCgkc2hhcmVkLXNlY3Rpb25zLCAkaSl9LXBsYWNlaG9sZGVyO1xuICAgIH1cblxuICAgIEBpZiBudGgoJHNoYXJlZC1zZWN0aW9ucywgJGkpICE9IG50aCgkc2VjdGlvbnMsICRpKSB7XG4gICAgICAgIC8vIEFsbG93aW5nIGNvbWJpbmVkIHBsYWNlaG9sZGVycyB0byBiZSB1c2VkXG4gICAgICAgICUje250aCgkc2VjdGlvbnMsICRpKX0tcGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgQGV4dGVuZCAlI3tudGgoJHNoYXJlZC1zZWN0aW9ucywgJGkpfS1wbGFjZWhvbGRlcjtcbiAgICAgICAgfVxuICAgICAgICAlI3tudGgoJHNlY3Rpb25zLCAkaSl9LXBsYWNlaG9sZGVyX19zdWJ0bGUge1xuICAgICAgICAgICAgQGV4dGVuZCAlI3tudGgoJHNoYXJlZC1zZWN0aW9ucywgJGkpfS1wbGFjZWhvbGRlcl9fc3VidGxlO1xuICAgICAgICB9XG4gICAgICAgICUje250aCgkc2VjdGlvbnMsICRpKX0tcGxhY2Vob2xkZXJfX25ldXRyYWwtbGluayB7XG4gICAgICAgICAgICBAZXh0ZW5kICUje250aCgkc2hhcmVkLXNlY3Rpb25zLCAkaSl9LXBsYWNlaG9sZGVyX19uZXV0cmFsLWxpbms7XG4gICAgICAgIH1cbiAgICB9XG5cbn1cbiIsIi8qISBub3JtYWxpemUuY3NzIHYzLjAuMiB8IE1JVCBMaWNlbnNlIHwgZ2l0LmlvL25vcm1hbGl6ZSAqL1xuXG4vKipcbiAqIDEuIFNldCBkZWZhdWx0IGZvbnQgZmFtaWx5IHRvIHNhbnMtc2VyaWYuXG4gKiAyLiBQcmV2ZW50IGlPUyB0ZXh0IHNpemUgYWRqdXN0IGFmdGVyIG9yaWVudGF0aW9uIGNoYW5nZSwgd2l0aG91dCBkaXNhYmxpbmdcbiAqICAgIHVzZXIgem9vbS5cbiAqL1xuXG5odG1sIHtcbiAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7IC8qIDEgKi9cbiAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIGRlZmF1bHQgbWFyZ2luLlxuICovXG5cbmJvZHkge1xuICBtYXJnaW46IDA7XG59XG5cbi8qIEhUTUw1IGRpc3BsYXkgZGVmaW5pdGlvbnNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGFueSBIVE1MNSBlbGVtZW50IGluIElFIDgvOS5cbiAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBgZGV0YWlsc2Agb3IgYHN1bW1hcnlgIGluIElFIDEwLzExXG4gKiBhbmQgRmlyZWZveC5cbiAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBgbWFpbmAgaW4gSUUgMTEuXG4gKi9cblxuYXJ0aWNsZSxcbmFzaWRlLFxuZGV0YWlscyxcbmZpZ2NhcHRpb24sXG5maWd1cmUsXG5mb290ZXIsXG5oZWFkZXIsXG5oZ3JvdXAsXG5tYWluLFxubWVudSxcbm5hdixcbnNlY3Rpb24sXG5zdW1tYXJ5IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCBgaW5saW5lLWJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGluIElFIDgvOS5cbiAqIDIuIE5vcm1hbGl6ZSB2ZXJ0aWNhbCBhbGlnbm1lbnQgb2YgYHByb2dyZXNzYCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbiAqL1xuXG5hdWRpbyxcbmNhbnZhcyxcbnByb2dyZXNzLFxudmlkZW8ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IC8qIDEgKi9cbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyAvKiAyICovXG59XG5cbi8qKlxuICogUHJldmVudCBtb2Rlcm4gYnJvd3NlcnMgZnJvbSBkaXNwbGF5aW5nIGBhdWRpb2Agd2l0aG91dCBjb250cm9scy5cbiAqIFJlbW92ZSBleGNlc3MgaGVpZ2h0IGluIGlPUyA1IGRldmljZXMuXG4gKi9cblxuYXVkaW86bm90KFtjb250cm9sc10pIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgaGVpZ2h0OiAwO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgYFtoaWRkZW5dYCBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS8xMC5cbiAqIEhpZGUgdGhlIGB0ZW1wbGF0ZWAgZWxlbWVudCBpbiBJRSA4LzkvMTEsIFNhZmFyaSwgYW5kIEZpcmVmb3ggPCAyMi5cbiAqL1xuXG5baGlkZGVuXSxcbnRlbXBsYXRlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLyogTGlua3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgY29sb3IgZnJvbSBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG4gKi9cblxuYSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4vKipcbiAqIEltcHJvdmUgcmVhZGFiaWxpdHkgd2hlbiBmb2N1c2VkIGFuZCBhbHNvIG1vdXNlIGhvdmVyZWQgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbmE6YWN0aXZlLFxuYTpob3ZlciB7XG4gIG91dGxpbmU6IDA7XG59XG5cbi8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkvMTAvMTEsIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuXG5hYmJyW3RpdGxlXSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQ7XG59XG5cbi8qKlxuICogQWRkcmVzcyBzdHlsZSBzZXQgdG8gYGJvbGRlcmAgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICovXG5cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gU2FmYXJpIGFuZCBDaHJvbWUuXG4gKi9cblxuZGZuIHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgdmFyaWFibGUgYGgxYCBmb250LXNpemUgYW5kIG1hcmdpbiB3aXRoaW4gYHNlY3Rpb25gIGFuZCBgYXJ0aWNsZWBcbiAqIGNvbnRleHRzIGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuXG5oMSB7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBtYXJnaW46IDAuNjdlbSAwO1xufVxuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkuXG4gKi9cblxubWFyayB7XG4gIGJhY2tncm91bmQ6ICNmZjA7XG4gIGNvbG9yOiAjMDAwO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgaW5jb25zaXN0ZW50IGFuZCB2YXJpYWJsZSBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7XG59XG5cbi8qKlxuICogUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgYWZmZWN0aW5nIGBsaW5lLWhlaWdodGAgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnN1YixcbnN1cCB7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbnN1cCB7XG4gIHRvcDogLTAuNWVtO1xufVxuXG5zdWIge1xuICBib3R0b206IC0wLjI1ZW07XG59XG5cbi8qIEVtYmVkZGVkIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIGJvcmRlciB3aGVuIGluc2lkZSBgYWAgZWxlbWVudCBpbiBJRSA4LzkvMTAuXG4gKi9cblxuaW1nIHtcbiAgYm9yZGVyOiAwO1xufVxuXG4vKipcbiAqIENvcnJlY3Qgb3ZlcmZsb3cgbm90IGhpZGRlbiBpbiBJRSA5LzEwLzExLlxuICovXG5cbnN2Zzpub3QoOnJvb3QpIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLyogR3JvdXBpbmcgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBBZGRyZXNzIG1hcmdpbiBub3QgcHJlc2VudCBpbiBJRSA4LzkgYW5kIFNhZmFyaS5cbiAqL1xuXG5maWd1cmUge1xuICBtYXJnaW46IDFlbSA0MHB4O1xufVxuXG4vKipcbiAqIEFkZHJlc3MgZGlmZmVyZW5jZXMgYmV0d2VlbiBGaXJlZm94IGFuZCBvdGhlciBicm93c2Vycy5cbiAqL1xuXG5ociB7XG4gIC1tb3otYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICBoZWlnaHQ6IDA7XG59XG5cbi8qKlxuICogQ29udGFpbiBvdmVyZmxvdyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxucHJlIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi8qKlxuICogQWRkcmVzcyBvZGQgYGVtYC11bml0IGZvbnQgc2l6ZSByZW5kZXJpbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbmNvZGUsXG5rYmQsXG5wcmUsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICBmb250LXNpemU6IDFlbTtcbn1cblxuLyogRm9ybXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogS25vd24gbGltaXRhdGlvbjogYnkgZGVmYXVsdCwgQ2hyb21lIGFuZCBTYWZhcmkgb24gT1MgWCBhbGxvdyB2ZXJ5IGxpbWl0ZWRcbiAqIHN0eWxpbmcgb2YgYHNlbGVjdGAsIHVubGVzcyBhIGBib3JkZXJgIHByb3BlcnR5IGlzIHNldC5cbiAqL1xuXG4vKipcbiAqIDEuIENvcnJlY3QgY29sb3Igbm90IGJlaW5nIGluaGVyaXRlZC5cbiAqICAgIEtub3duIGlzc3VlOiBhZmZlY3RzIGNvbG9yIG9mIGRpc2FibGVkIGVsZW1lbnRzLlxuICogMi4gQ29ycmVjdCBmb250IHByb3BlcnRpZXMgbm90IGJlaW5nIGluaGVyaXRlZC5cbiAqIDMuIEFkZHJlc3MgbWFyZ2lucyBzZXQgZGlmZmVyZW50bHkgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICovXG5cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGNvbG9yOiBpbmhlcml0OyAvKiAxICovXG4gIGZvbnQ6IGluaGVyaXQ7IC8qIDIgKi9cbiAgbWFyZ2luOiAwOyAvKiAzICovXG59XG5cbi8qKlxuICogQWRkcmVzcyBgb3ZlcmZsb3dgIHNldCB0byBgaGlkZGVuYCBpbiBJRSA4LzkvMTAvMTEuXG4gKi9cblxuYnV0dG9uIHtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbi8qKlxuICogQWRkcmVzcyBpbmNvbnNpc3RlbnQgYHRleHQtdHJhbnNmb3JtYCBpbmhlcml0YW5jZSBmb3IgYGJ1dHRvbmAgYW5kIGBzZWxlY3RgLlxuICogQWxsIG90aGVyIGZvcm0gY29udHJvbCBlbGVtZW50cyBkbyBub3QgaW5oZXJpdCBgdGV4dC10cmFuc2Zvcm1gIHZhbHVlcy5cbiAqIENvcnJlY3QgYGJ1dHRvbmAgc3R5bGUgaW5oZXJpdGFuY2UgaW4gRmlyZWZveCwgSUUgOC85LzEwLzExLCBhbmQgT3BlcmEuXG4gKiBDb3JyZWN0IGBzZWxlY3RgIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3guXG4gKi9cblxuYnV0dG9uLFxuc2VsZWN0IHtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8qKlxuICogMS4gQXZvaWQgdGhlIFdlYktpdCBidWcgaW4gQW5kcm9pZCA0LjAuKiB3aGVyZSAoMikgZGVzdHJveXMgbmF0aXZlIGBhdWRpb2BcbiAqICAgIGFuZCBgdmlkZW9gIGNvbnRyb2xzLlxuICogMi4gQ29ycmVjdCBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIGBpbnB1dGAgdHlwZXMgaW4gaU9TLlxuICogMy4gSW1wcm92ZSB1c2FiaWxpdHkgYW5kIGNvbnNpc3RlbmN5IG9mIGN1cnNvciBzdHlsZSBiZXR3ZWVuIGltYWdlLXR5cGVcbiAqICAgIGBpbnB1dGAgYW5kIG90aGVycy5cbiAqL1xuXG5idXR0b24sXG5odG1sIGlucHV0W3R5cGU9XCJidXR0b25cIl0sIC8qIDEgKi9cbmlucHV0W3R5cGU9XCJyZXNldFwiXSxcbmlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLyogMiAqL1xuICBjdXJzb3I6IHBvaW50ZXI7IC8qIDMgKi9cbn1cblxuLyoqXG4gKiBSZS1zZXQgZGVmYXVsdCBjdXJzb3IgZm9yIGRpc2FibGVkIGVsZW1lbnRzLlxuICovXG5cbmJ1dHRvbltkaXNhYmxlZF0sXG5odG1sIGlucHV0W2Rpc2FibGVkXSB7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLyoqXG4gKiBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgYm9yZGVyIGluIEZpcmVmb3ggNCsuXG4gKi9cblxuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuaW5wdXQ6Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXI6IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi8qKlxuICogQWRkcmVzcyBGaXJlZm94IDQrIHNldHRpbmcgYGxpbmUtaGVpZ2h0YCBvbiBgaW5wdXRgIHVzaW5nIGAhaW1wb3J0YW50YCBpblxuICogdGhlIFVBIHN0eWxlc2hlZXQuXG4gKi9cblxuaW5wdXQge1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xufVxuXG4vKipcbiAqIEl0J3MgcmVjb21tZW5kZWQgdGhhdCB5b3UgZG9uJ3QgYXR0ZW1wdCB0byBzdHlsZSB0aGVzZSBlbGVtZW50cy5cbiAqIEZpcmVmb3gncyBpbXBsZW1lbnRhdGlvbiBkb2Vzbid0IHJlc3BlY3QgYm94LXNpemluZywgcGFkZGluZywgb3Igd2lkdGguXG4gKlxuICogMS4gQWRkcmVzcyBib3ggc2l6aW5nIHNldCB0byBgY29udGVudC1ib3hgIGluIElFIDgvOS8xMC5cbiAqIDIuIFJlbW92ZSBleGNlc3MgcGFkZGluZyBpbiBJRSA4LzkvMTAuXG4gKi9cblxuaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLFxuaW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xuICBwYWRkaW5nOiAwOyAvKiAyICovXG59XG5cbi8qKlxuICogRml4IHRoZSBjdXJzb3Igc3R5bGUgZm9yIENocm9tZSdzIGluY3JlbWVudC9kZWNyZW1lbnQgYnV0dG9ucy4gRm9yIGNlcnRhaW5cbiAqIGBmb250LXNpemVgIHZhbHVlcyBvZiB0aGUgYGlucHV0YCwgaXQgY2F1c2VzIHRoZSBjdXJzb3Igc3R5bGUgb2YgdGhlXG4gKiBkZWNyZW1lbnQgYnV0dG9uIHRvIGNoYW5nZSBmcm9tIGBkZWZhdWx0YCB0byBgdGV4dGAuXG4gKi9cblxuaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbi8qKlxuICogMS4gQWRkcmVzcyBgYXBwZWFyYW5jZWAgc2V0IHRvIGBzZWFyY2hmaWVsZGAgaW4gU2FmYXJpIGFuZCBDaHJvbWUuXG4gKiAyLiBBZGRyZXNzIGBib3gtc2l6aW5nYCBzZXQgdG8gYGJvcmRlci1ib3hgIGluIFNhZmFyaSBhbmQgQ2hyb21lXG4gKiAgICAoaW5jbHVkZSBgLW1vemAgdG8gZnV0dXJlLXByb29mKS5cbiAqL1xuXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IC8qIDEgKi9cbiAgLW1vei1ib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLyogMiAqL1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbn1cblxuLyoqXG4gKiBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgc2VhcmNoIGNhbmNlbCBidXR0b24gaW4gU2FmYXJpIGFuZCBDaHJvbWUgb24gT1MgWC5cbiAqIFNhZmFyaSAoYnV0IG5vdCBDaHJvbWUpIGNsaXBzIHRoZSBjYW5jZWwgYnV0dG9uIHdoZW4gdGhlIHNlYXJjaCBpbnB1dCBoYXNcbiAqIHBhZGRpbmcgKGFuZCBgdGV4dGZpZWxkYCBhcHBlYXJhbmNlKS5cbiAqL1xuXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLyoqXG4gKiBEZWZpbmUgY29uc2lzdGVudCBib3JkZXIsIG1hcmdpbiwgYW5kIHBhZGRpbmcuXG4gKi9cblxuZmllbGRzZXQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xuICBtYXJnaW46IDAgMnB4O1xuICBwYWRkaW5nOiAwLjM1ZW0gMC42MjVlbSAwLjc1ZW07XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCBgY29sb3JgIG5vdCBiZWluZyBpbmhlcml0ZWQgaW4gSUUgOC85LzEwLzExLlxuICogMi4gUmVtb3ZlIHBhZGRpbmcgc28gcGVvcGxlIGFyZW4ndCBjYXVnaHQgb3V0IGlmIHRoZXkgemVybyBvdXQgZmllbGRzZXRzLlxuICovXG5cbmxlZ2VuZCB7XG4gIGJvcmRlcjogMDsgLyogMSAqL1xuICBwYWRkaW5nOiAwOyAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFIDgvOS8xMC8xMS5cbiAqL1xuXG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4vKipcbiAqIERvbid0IGluaGVyaXQgdGhlIGBmb250LXdlaWdodGAgKGFwcGxpZWQgYnkgYSBydWxlIGFib3ZlKS5cbiAqIE5PVEU6IHRoZSBkZWZhdWx0IGNhbm5vdCBzYWZlbHkgYmUgY2hhbmdlZCBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBPUyBYLlxuICovXG5cbm9wdGdyb3VwIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi8qIFRhYmxlc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgbW9zdCBzcGFjaW5nIGJldHdlZW4gdGFibGUgY2VsbHMuXG4gKi9cblxudGFibGUge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBib3JkZXItc3BhY2luZzogMDtcbn1cblxudGQsXG50aCB7XG4gIHBhZGRpbmc6IDA7XG59XG4iLCJAaW1wb3J0IFwibWl4aW5zL2FjY2Vzc2liaWxpdHlcIjtcbkBpbXBvcnQgXCJtaXhpbnMvY2VudGVyXCI7XG5AaW1wb3J0IFwibWl4aW5zL2hhaXJsaW5lLWJvcmRlclwiO1xuQGltcG9ydCBcIm1peGlucy9udGgtY2hpbGRyZW5cIjtcbkBpbXBvcnQgXCJtaXhpbnMvdHJhbnNmb3JtXCI7IiwiQG1peGluIGFjY2Vzc2libGUtaGlkZSgpIHtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBtYXJnaW46IC0xcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMXB4O1xufVxuXG5AbWl4aW4gYWNjZXNzaWJsZS1zaG93KCRjbGlwOiBhdXRvLCAkaGVpZ2h0OiBhdXRvLCAkbWFyZ2luOiAwLCAkb3ZlcmZsb3c6IHZpc2libGUsICRwb3NpdGlvbjogcmVsYXRpdmUsICR3aWR0aDogYXV0bywgJHBhZGRpbmc6IDAsICRib3JkZXI6IG5vbmUpIHtcbiAgICBib3JkZXI6ICRib3JkZXI7XG4gICAgY2xpcDogJGNsaXA7XG4gICAgaGVpZ2h0OiAkaGVpZ2h0O1xuICAgIG1hcmdpbjogJG1hcmdpbjtcbiAgICBvdmVyZmxvdzogJG92ZXJmbG93O1xuICAgIHBhZGRpbmc6ICRwYWRkaW5nO1xuICAgIHBvc2l0aW9uOiAkcG9zaXRpb247XG4gICAgd2lkdGg6ICR3aWR0aDtcbn0iLCJAbWl4aW4gY2VudGVyKCR4eTp4eSkge1xuICBAaWYgJHh5ID09IHh5IHtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdG9wOiA1MCU7XG4gICAgYm90dG9tOiBhdXRvO1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTUwJSkpO1xuICB9XG4gIEBlbHNlIGlmICR4eSA9PSB4IHtcbiAgICBsZWZ0OiA1MCU7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZVgoLTUwJSkpO1xuICB9XG4gIEBlbHNlIGlmICR4eSA9PSB5IHtcbiAgICB0b3A6IDUwJTtcbiAgICBib3R0b206IGF1dG87XG4gICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZVkoLTUwJSkpO1xuICB9XG59IiwiLy8gMXB4IG9uIHJldGluYSwgYW5kIDFweCBvbiBub24tcmV0aW5hLCBzaW5jZSBib3JkZXItd2lkdGg6IDAuNXB4OyBkb2VzIG5vdCB3b3JrIGluIENTU1xuQG1peGluIGhhaXJsaW5lLWJvcmRlcigkaGFpcmxpbmUtY29sb3IsICRwb3NpdGlvbjogdG9wIGxlZnQsICR2ZXJ0aWNhbDogZmFsc2UpIHtcbiAgICBcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAkcG9zaXRpb247IFxuICAgIEBpZiAkdmVydGljYWwge1xuICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXk7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMScgaGVpZ2h0PScxMDAnPjxyZWN0IGZpbGw9JyN7JGhhaXJsaW5lLWNvbG9yfScgeD0nMCcgeT0nMCcgd2lkdGg9JzAuNScgaGVpZ2h0PScxMDAnLz48L3N2Zz5cIik7XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScxMDAnIGhlaWdodD0nMSc+PHJlY3QgZmlsbD0nI3skaGFpcmxpbmUtY29sb3J9JyB4PScwJyB5PScwJyB3aWR0aD0nMTAwJyBoZWlnaHQ9JzAuNScvPjwvc3ZnPlwiKTtcbiAgICB9XG4gICAgXG59IiwiLy8gVXNlIHRoaXMgdG8gc2VsZWN0IGl0ZW1zIGRlcGVuZGluZyBvbiBob3cgbWFueSBzaWJsaW5ncyB0aGVyZSBhcmUuXG4vLyBWZXJ5IHVzZWZ1bCB0byBzdHlsZSBpdGVtcyBkZXBlbmRpbmcgb24gaG93IG1hbnkgaXRlbXMgdGhlcmUgYXJlXG4vLyBmb3IgaW5zdGFuY2UsIDEgaXRlbSBudGgtY2hpbGRyZW4oMSksIG1vcmUgdGhhbiA1IG50aC1jaGlsZHJlbihcIm4rNVwiKVxuXG5AbWl4aW4gbnRoLWNoaWxkcmVuKCRudGgpIHtcbiAgICAmOmZpcnN0LWNoaWxkOm50aC1sYXN0LWNoaWxkKCN7JG50aH0pLFxuICAgICY6Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoI3skbnRofSkgfiAmIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuIiwiQG1peGluIHRyYW5zbGF0ZTNkKCR0eDowLCR0eTowLCR0ejowLCAkcGVyc3BlY3RpdmU6ZmFsc2UpIHtcbiAgICBcbiAgICBAaWYgJHBlcnNwZWN0aXZlIHtcbiAgICAgICAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNmb3JtLCB0cmFuc2xhdGUoJHR4LCR0eSkgJHBlcnNwZWN0aXZlLCBtcyk7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGUzZCgkdHgsICR0eSwgJHR6KSAkcGVyc3BlY3RpdmUpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2Zvcm0sIHRyYW5zbGF0ZSgkdHgsJHR5KSwgbXMpO1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlM2QoJHR4LCAkdHksICR0eikpO1xuICAgIH1cbn0iLCIvLyBWYXJpYWJsZSBzZXR0aW5ncyBmb3IgL2FkZG9ucy9wcmVmaXhlci5zY3NzXG4kcHJlZml4LWZvci13ZWJraXQ6ICAgIHRydWUgIWRlZmF1bHQ7XG4kcHJlZml4LWZvci1tb3ppbGxhOiAgIHRydWUgIWRlZmF1bHQ7XG4kcHJlZml4LWZvci1taWNyb3NvZnQ6IHRydWUgIWRlZmF1bHQ7XG4kcHJlZml4LWZvci1vcGVyYTogICAgIHRydWUgIWRlZmF1bHQ7XG4kcHJlZml4LWZvci1zcGVjOiAgICAgIHRydWUgIWRlZmF1bHQ7IC8vIHJlcXVpcmVkIGZvciBrZXlmcmFtZSBtaXhpblxuIiwiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuLy8gRXhhbXBsZTogQGluY2x1ZGUgcHJlZml4ZXIoYm9yZGVyLXJhZGl1cywgJHJhZGlpLCB3ZWJraXQgbXMgc3BlYyk7XG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG4vLyBWYXJpYWJsZXMgbG9jYXRlZCBpbiAvc2V0dGluZ3MvX3ByZWZpeGVyLnNjc3NcblxuQG1peGluIHByZWZpeGVyICgkcHJvcGVydHksICR2YWx1ZSwgJHByZWZpeGVzKSB7XG4gIEBlYWNoICRwcmVmaXggaW4gJHByZWZpeGVzIHtcbiAgICBAaWYgJHByZWZpeCA9PSB3ZWJraXQge1xuICAgICAgQGlmICRwcmVmaXgtZm9yLXdlYmtpdCB7XG4gICAgICAgIC13ZWJraXQtI3skcHJvcGVydHl9OiAkdmFsdWU7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIGlmICRwcmVmaXggPT0gbW96IHtcbiAgICAgIEBpZiAkcHJlZml4LWZvci1tb3ppbGxhIHtcbiAgICAgICAgLW1vei0jeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2UgaWYgJHByZWZpeCA9PSBtcyB7XG4gICAgICBAaWYgJHByZWZpeC1mb3ItbWljcm9zb2Z0IHtcbiAgICAgICAgLW1zLSN7JHByb3BlcnR5fTogJHZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSBpZiAkcHJlZml4ID09IG8ge1xuICAgICAgQGlmICRwcmVmaXgtZm9yLW9wZXJhIHtcbiAgICAgICAgLW8tI3skcHJvcGVydHl9OiAkdmFsdWU7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIGlmICRwcmVmaXggPT0gc3BlYyB7XG4gICAgICBAaWYgJHByZWZpeC1mb3Itc3BlYyB7XG4gICAgICAgICN7JHByb3BlcnR5fTogJHZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSAge1xuICAgICAgQHdhcm4gXCJVbnJlY29nbml6ZWQgcHJlZml4OiAjeyRwcmVmaXh9XCI7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBkaXNhYmxlLXByZWZpeC1mb3ItYWxsKCkge1xuICAkcHJlZml4LWZvci13ZWJraXQ6ICAgIGZhbHNlO1xuICAkcHJlZml4LWZvci1tb3ppbGxhOiAgIGZhbHNlO1xuICAkcHJlZml4LWZvci1taWNyb3NvZnQ6IGZhbHNlO1xuICAkcHJlZml4LWZvci1vcGVyYTogICAgIGZhbHNlO1xuICAkcHJlZml4LWZvci1zcGVjOiAgICAgIGZhbHNlO1xufVxuIiwiLy8gaHR0cDovL3d3dy53My5vcmcvVFIvY3NzMy1hbmltYXRpb25zLyN0aGUtYW5pbWF0aW9uLW5hbWUtcHJvcGVydHktXG4vLyBFYWNoIG9mIHRoZXNlIG1peGlucyBzdXBwb3J0IGNvbW1hIHNlcGFyYXRlZCBsaXN0cyBvZiB2YWx1ZXMsIHdoaWNoIGFsbG93cyBkaWZmZXJlbnQgdHJhbnNpdGlvbnMgZm9yIGluZGl2aWR1YWwgcHJvcGVydGllcyB0byBiZSBkZXNjcmliZWQgaW4gYSBzaW5nbGUgc3R5bGUgcnVsZS4gRWFjaCB2YWx1ZSBpbiB0aGUgbGlzdCBjb3JyZXNwb25kcyB0byB0aGUgdmFsdWUgYXQgdGhhdCBzYW1lIHBvc2l0aW9uIGluIHRoZSBvdGhlciBwcm9wZXJ0aWVzLlxuXG4vLyBPZmZpY2lhbCBhbmltYXRpb24gc2hvcnRoYW5kIHByb3BlcnR5LlxuQG1peGluIGFuaW1hdGlvbiAoJGFuaW1hdGlvbnMuLi4pIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLCAkYW5pbWF0aW9ucywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuLy8gSW5kaXZpZHVhbCBBbmltYXRpb24gUHJvcGVydGllc1xuQG1peGluIGFuaW1hdGlvbi1uYW1lICgkbmFtZXMuLi4pIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLW5hbWUsICRuYW1lcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuXG5AbWl4aW4gYW5pbWF0aW9uLWR1cmF0aW9uICgkdGltZXMuLi4pIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWR1cmF0aW9uLCAkdGltZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cblxuQG1peGluIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb24gKCRtb3Rpb25zLi4uKSB7XG4vLyBlYXNlIHwgbGluZWFyIHwgZWFzZS1pbiB8IGVhc2Utb3V0IHwgZWFzZS1pbi1vdXRcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbiwgJG1vdGlvbnMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cblxuQG1peGluIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQgKCR2YWx1ZXMuLi4pIHtcbi8vIGluZmluaXRlIHwgPG51bWJlcj5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCwgJHZhbHVlcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuXG5AbWl4aW4gYW5pbWF0aW9uLWRpcmVjdGlvbiAoJGRpcmVjdGlvbnMuLi4pIHtcbi8vIG5vcm1hbCB8IGFsdGVybmF0ZVxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tZGlyZWN0aW9uLCAkZGlyZWN0aW9ucywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuXG5AbWl4aW4gYW5pbWF0aW9uLXBsYXktc3RhdGUgKCRzdGF0ZXMuLi4pIHtcbi8vIHJ1bm5pbmcgfCBwYXVzZWRcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLXBsYXktc3RhdGUsICRzdGF0ZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cblxuQG1peGluIGFuaW1hdGlvbi1kZWxheSAoJHRpbWVzLi4uKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1kZWxheSwgJHRpbWVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5cbkBtaXhpbiBhbmltYXRpb24tZmlsbC1tb2RlICgkbW9kZXMuLi4pIHtcbi8vIG5vbmUgfCBmb3J3YXJkcyB8IGJhY2t3YXJkcyB8IGJvdGhcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWZpbGwtbW9kZSwgJG1vZGVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuIiwiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuLy8gQmFja2ZhY2UtdmlzaWJpbGl0eSBtaXhpblxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuQG1peGluIGJhY2tmYWNlLXZpc2liaWxpdHkoJHZpc2liaWxpdHkpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYmFja2ZhY2UtdmlzaWJpbGl0eSwgJHZpc2liaWxpdHksIHdlYmtpdCBzcGVjKTtcbn1cbiIsIi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbi8vIFNob3J0aGFuZCBCb3JkZXItcmFkaXVzIG1peGluc1xuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuQG1peGluIGJvcmRlci10b3AtcmFkaXVzKCRyYWRpaSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3JkZXItdG9wLWxlZnQtcmFkaXVzLCAkcmFkaWksIHNwZWMpO1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3JkZXItdG9wLXJpZ2h0LXJhZGl1cywgJHJhZGlpLCBzcGVjKTtcbn1cblxuQG1peGluIGJvcmRlci1ib3R0b20tcmFkaXVzKCRyYWRpaSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzLCAkcmFkaWksIHNwZWMpO1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1cywgJHJhZGlpLCBzcGVjKTtcbn1cblxuQG1peGluIGJvcmRlci1sZWZ0LXJhZGl1cygkcmFkaWkpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm9yZGVyLXRvcC1sZWZ0LXJhZGl1cywgJHJhZGlpLCBzcGVjKTtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1cywgJHJhZGlpLCBzcGVjKTtcbn1cblxuQG1peGluIGJvcmRlci1yaWdodC1yYWRpdXMoJHJhZGlpKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJvcmRlci10b3AtcmlnaHQtcmFkaXVzLCAkcmFkaWksIHNwZWMpO1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1cywgJHJhZGlpLCBzcGVjKTtcbn1cbiIsIi8vIENTUzMgRmxleGlibGUgQm94IE1vZGVsIGFuZCBwcm9wZXJ0eSBkZWZhdWx0c1xuXG4vLyBDdXN0b20gc2hvcnRoYW5kIG5vdGF0aW9uIGZvciBmbGV4Ym94XG5AbWl4aW4gYm94KCRvcmllbnQ6IGlubGluZS1heGlzLCAkcGFjazogc3RhcnQsICRhbGlnbjogc3RyZXRjaCkge1xuICBAaW5jbHVkZSBkaXNwbGF5LWJveDtcbiAgQGluY2x1ZGUgYm94LW9yaWVudCgkb3JpZW50KTtcbiAgQGluY2x1ZGUgYm94LXBhY2soJHBhY2spO1xuICBAaW5jbHVkZSBib3gtYWxpZ24oJGFsaWduKTtcbn1cblxuQG1peGluIGRpc3BsYXktYm94IHtcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gIGRpc3BsYXk6IC1tb3otYm94O1xuICBkaXNwbGF5OiAtbXMtZmxleGJveDsgLy8gSUUgMTBcbiAgZGlzcGxheTogYm94O1xufVxuXG5AbWl4aW4gYm94LW9yaWVudCgkb3JpZW50OiBpbmxpbmUtYXhpcykge1xuLy8gaG9yaXpvbnRhbHx2ZXJ0aWNhbHxpbmxpbmUtYXhpc3xibG9jay1heGlzfGluaGVyaXRcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LW9yaWVudCwgJG9yaWVudCwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGJveC1wYWNrKCRwYWNrOiBzdGFydCkge1xuLy8gc3RhcnR8ZW5kfGNlbnRlcnxqdXN0aWZ5XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1wYWNrLCAkcGFjaywgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtcGFjazogJHBhY2s7IC8vIElFIDEwXG59XG5cbkBtaXhpbiBib3gtYWxpZ24oJGFsaWduOiBzdHJldGNoKSB7XG4vLyBzdGFydHxlbmR8Y2VudGVyfGJhc2VsaW5lfHN0cmV0Y2hcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWFsaWduLCAkYWxpZ24sIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LWFsaWduOiAkYWxpZ247IC8vIElFIDEwXG59XG5cbkBtaXhpbiBib3gtZGlyZWN0aW9uKCRkaXJlY3Rpb246IG5vcm1hbCkge1xuLy8gbm9ybWFsfHJldmVyc2V8aW5oZXJpdFxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZGlyZWN0aW9uLCAkZGlyZWN0aW9uLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1kaXJlY3Rpb246ICRkaXJlY3Rpb247IC8vIElFIDEwXG59XG5cbkBtaXhpbiBib3gtbGluZXMoJGxpbmVzOiBzaW5nbGUpIHtcbi8vIHNpbmdsZXxtdWx0aXBsZVxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtbGluZXMsICRsaW5lcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGJveC1vcmRpbmFsLWdyb3VwKCRpbnQ6IDEpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LW9yZGluYWwtZ3JvdXAsICRpbnQsIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LW9yZGVyOiAkaW50OyAvLyBJRSAxMFxufVxuXG5AbWl4aW4gYm94LWZsZXgoJHZhbHVlOiAwLjApIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWZsZXgsICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXg6ICR2YWx1ZTsgLy8gSUUgMTBcbn1cblxuQG1peGluIGJveC1mbGV4LWdyb3VwKCRpbnQ6IDEpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWZsZXgtZ3JvdXAsICRpbnQsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbi8vIENTUzMgRmxleGlibGUgQm94IE1vZGVsIGFuZCBwcm9wZXJ0eSBkZWZhdWx0c1xuLy8gVW5pZmllZCBhdHRyaWJ1dGVzIGZvciAyMDA5LCAyMDExLCBhbmQgMjAxMiBmbGF2b3Vycy5cblxuLy8gMjAwOSAtIGRpc3BsYXkgKGJveCB8IGlubGluZS1ib3gpXG4vLyAyMDExIC0gZGlzcGxheSAoZmxleGJveCB8IGlubGluZS1mbGV4Ym94KVxuLy8gMjAxMiAtIGRpc3BsYXkgKGZsZXggfCBpbmxpbmUtZmxleClcbkBtaXhpbiBkaXNwbGF5KCR2YWx1ZSkge1xuLy8gIGZsZXggfCBpbmxpbmUtZmxleFxuICAgIEBpZiAkdmFsdWUgPT0gXCJmbGV4XCIge1xuICAgICAgICAvLyAyMDA5XG4gICAgICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAgICAgICBkaXNwbGF5OiAtbW96LWJveDtcbiAgICAgICAgZGlzcGxheTogYm94O1xuXG4gICAgICAgIC8vIDIwMTJcbiAgICAgICAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICAgICAgICBkaXNwbGF5OiAtbW96LWZsZXg7XG4gICAgICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94OyAvLyAyMDExIChJRSAxMClcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICB9XG5cbiAgICBAZWxzZWlmICR2YWx1ZSA9PSBcImlubGluZS1mbGV4XCIge1xuICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWlubGluZS1ib3g7XG4gICAgICAgIGRpc3BsYXk6IC1tb3otaW5saW5lLWJveDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJveDtcblxuICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWlubGluZS1mbGV4O1xuICAgICAgICBkaXNwbGF5OiAtbW96LWlubGluZS1mbGV4O1xuICAgICAgICBkaXNwbGF5OiAtbXMtaW5saW5lLWZsZXhib3g7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIH1cblxuICAgIEBlbHNlIHtcbiAgICAgICAgZGlzcGxheTogJHZhbHVlO1xuICAgIH1cbn1cblxuLy8gMjAwOSAtIGJveC1mbGV4IChpbnRlZ2VyKVxuLy8gMjAxMSAtIGZsZXggKGRlY2ltYWwgfCB3aWR0aCBkZWNpbWFsKVxuLy8gMjAxMiAtIGZsZXggKGludGVnZXIgaW50ZWdlciB3aWR0aClcbkBtaXhpbiBmbGV4KCR2YWx1ZSkge1xuXG4gICAgLy8gR3JhYiBmbGV4LWdyb3cgZm9yIG9sZGVyIGJyb3dzZXJzLlxuICAgICRmbGV4LWdyb3c6IG50aCgkdmFsdWUsIDEpO1xuXG4gICAgLy8gMjAwOVxuICAgIEBpbmNsdWRlIHByZWZpeGVyKGJveC1mbGV4LCAkZmxleC1ncm93LCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gICAgLy8gMjAxMSAoSUUgMTApLCAyMDEyXG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleCwgJHZhbHVlLCB3ZWJraXQgbW96IG1zIHNwZWMpO1xufVxuXG4vLyAyMDA5IC0gYm94LW9yaWVudCAoIGhvcml6b250YWwgfCB2ZXJ0aWNhbCB8IGlubGluZS1heGlzIHwgYmxvY2stYXhpcylcbi8vICAgICAgLSBib3gtZGlyZWN0aW9uIChub3JtYWwgfCByZXZlcnNlKSAgICAgIFxuLy8gMjAxMSAtIGZsZXgtZGlyZWN0aW9uIChyb3cgfCByb3ctcmV2ZXJzZSB8IGNvbHVtbiB8IGNvbHVtbi1yZXZlcnNlKVxuLy8gMjAxMiAtIGZsZXgtZGlyZWN0aW9uIChyb3cgfCByb3ctcmV2ZXJzZSB8IGNvbHVtbiB8IGNvbHVtbi1yZXZlcnNlKVxuQG1peGluIGZsZXgtZGlyZWN0aW9uKCR2YWx1ZTogcm93KSB7XG5cbiAgICAvLyBBbHQgdmFsdWVzLlxuICAgICR2YWx1ZS0yMDA5OiAkdmFsdWU7XG4gICAgJHZhbHVlLTIwMTE6ICR2YWx1ZTtcbiAgICAkZGlyZWN0aW9uOiBcIm5vcm1hbFwiO1xuXG4gICAgQGlmICR2YWx1ZSA9PSByb3cge1xuICAgICAgICAkdmFsdWUtMjAwOTogaG9yaXpvbnRhbDtcbiAgICB9XG5cbiAgICBAZWxzZWlmICR2YWx1ZSA9PSBcInJvdy1yZXZlcnNlXCIge1xuICAgICAgICAkdmFsdWUtMjAwOTogaG9yaXpvbnRhbDtcbiAgICAgICAgJGRpcmVjdGlvbjogcmV2ZXJzZTtcbiAgICB9XG5cbiAgICBAZWxzZWlmICR2YWx1ZSA9PSBjb2x1bW4ge1xuICAgICAgICAkdmFsdWUtMjAwOTogdmVydGljYWw7XG4gICAgfVxuXG4gICAgQGVsc2VpZiAkdmFsdWUgPT0gXCJjb2x1bW4tcmV2ZXJzZVwiIHtcbiAgICAgICAgJHZhbHVlLTIwMDk6IHZlcnRpY2FsO1xuICAgICAgICAkZGlyZWN0aW9uOiByZXZlcnNlO1xuICAgIH1cblxuICAgIC8vIDIwMDlcbiAgICBAaW5jbHVkZSBwcmVmaXhlcihib3gtb3JpZW50LCAkdmFsdWUtMjAwOSwgd2Via2l0IG1veiBzcGVjKTtcbiAgICBAaWYgJGRpcmVjdGlvbiA9PSBcInJldmVyc2VcIiB7XG4gICAgICAgIEBpbmNsdWRlIHByZWZpeGVyKGJveC1kaXJlY3Rpb24sICRkaXJlY3Rpb24sIHdlYmtpdCBtb3ogc3BlYyk7XG4gICAgfVxuXG4gICAgLy8gMjAxMlxuICAgIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtZGlyZWN0aW9uLCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgICAvLyAyMDExIChJRSAxMClcbiAgICAtbXMtZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcbn1cblxuLy8gMjAwOSAtIGJveC1saW5lcyAoc2luZ2xlIHwgbXVsdGlwbGUpXG4vLyAyMDExIC0gZmxleC13cmFwIChub3dyYXAgfCB3cmFwIHwgd3JhcC1yZXZlcnNlKVxuLy8gMjAxMiAtIGZsZXgtd3JhcCAobm93cmFwIHwgd3JhcCB8IHdyYXAtcmV2ZXJzZSlcbkBtaXhpbiBmbGV4LXdyYXAoJHZhbHVlOiBub3dyYXApIHtcblxuICAgIC8vIEFsdCB2YWx1ZXMuXG4gICAgJGFsdC12YWx1ZTogJHZhbHVlO1xuICAgIEBpZiAkdmFsdWUgPT0gbm93cmFwIHtcbiAgICAgICAgJGFsdC12YWx1ZTogc2luZ2xlO1xuICAgIH1cblxuICAgIEBlbHNlaWYgJHZhbHVlID09IHdyYXAge1xuICAgICAgICAkYWx0LXZhbHVlOiBtdWx0aXBsZTtcbiAgICB9XG5cbiAgICBAZWxzZWlmICR2YWx1ZSA9PSBcIndyYXAtcmV2ZXJzZVwiIHtcbiAgICAgICAgJGFsdC12YWx1ZTogbXVsdGlwbGU7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWxpbmVzLCAkYWx0LXZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuICAgIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtd3JhcCwgJHZhbHVlLCB3ZWJraXQgbW96IG1zIHNwZWMpO1xufVxuXG4vLyAyMDA5IC0gVE9ETzogcGFyc2UgdmFsdWVzIGludG8gZmxleC1kaXJlY3Rpb24vZmxleC13cmFwXG4vLyAyMDExIC0gVE9ETzogcGFyc2UgdmFsdWVzIGludG8gZmxleC1kaXJlY3Rpb24vZmxleC13cmFwXG4vLyAyMDEyIC0gZmxleC1mbG93IChmbGV4LWRpcmVjdGlvbiB8fCBmbGV4LXdyYXApXG5AbWl4aW4gZmxleC1mbG93KCR2YWx1ZSkge1xuICAgIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtZmxvdywgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG4vLyAyMDA5IC0gYm94LW9yZGluYWwtZ3JvdXAgKGludGVnZXIpXG4vLyAyMDExIC0gZmxleC1vcmRlciAoaW50ZWdlcilcbi8vIDIwMTIgLSBvcmRlciAoaW50ZWdlcilcbkBtaXhpbiBvcmRlcigkaW50OiAwKSB7XG4gICAgLy8gMjAwOVxuICAgIEBpbmNsdWRlIHByZWZpeGVyKGJveC1vcmRpbmFsLWdyb3VwLCAkaW50LCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gICAgLy8gMjAxMlxuICAgIEBpbmNsdWRlIHByZWZpeGVyKG9yZGVyLCAkaW50LCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gICAgLy8gMjAxMSAoSUUgMTApXG4gICAgLW1zLWZsZXgtb3JkZXI6ICRpbnQ7XG59XG5cbi8vIDIwMTIgLSBmbGV4LWdyb3cgKG51bWJlcilcbkBtaXhpbiBmbGV4LWdyb3coJG51bWJlcjogMCkge1xuICAgIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtZ3JvdywgJG51bWJlciwgd2Via2l0IG1veiBzcGVjKTtcbiAgICAtbXMtZmxleC1wb3NpdGl2ZTogJG51bWJlcjtcbn1cblxuLy8gMjAxMiAtIGZsZXgtc2hyaW5rIChudW1iZXIpXG5AbWl4aW4gZmxleC1zaHJpbmsoJG51bWJlcjogMSkge1xuICAgIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtc2hyaW5rLCAkbnVtYmVyLCB3ZWJraXQgbW96IHNwZWMpO1xuICAgIC1tcy1mbGV4LW5lZ2F0aXZlOiAkbnVtYmVyO1xufVxuXG4vLyAyMDEyIC0gZmxleC1iYXNpcyAobnVtYmVyKVxuQG1peGluIGZsZXgtYmFzaXMoJHdpZHRoOiBhdXRvKSB7XG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1iYXNpcywgJHdpZHRoLCB3ZWJraXQgbW96IHNwZWMpO1xuICAgIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiAkd2lkdGg7XG59XG5cbi8vIDIwMDkgLSBib3gtcGFjayAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBqdXN0aWZ5KVxuLy8gMjAxMSAtIGZsZXgtcGFjayAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBqdXN0aWZ5KVxuLy8gMjAxMiAtIGp1c3RpZnktY29udGVudCAoZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgc3BhY2UtYmV0d2VlbiB8IHNwYWNlLWFyb3VuZClcbkBtaXhpbiBqdXN0aWZ5LWNvbnRlbnQgKCR2YWx1ZTogZmxleC1zdGFydCkge1xuXG4gICAgLy8gQWx0IHZhbHVlcy5cbiAgICAkYWx0LXZhbHVlOiAkdmFsdWU7XG4gICAgQGlmICR2YWx1ZSA9PSBcImZsZXgtc3RhcnRcIiB7XG4gICAgICAgICRhbHQtdmFsdWU6IHN0YXJ0O1xuICAgIH1cblxuICAgIEBlbHNlaWYgJHZhbHVlID09IFwiZmxleC1lbmRcIiB7XG4gICAgICAgICRhbHQtdmFsdWU6IGVuZDtcbiAgICB9XG5cbiAgICBAZWxzZWlmICR2YWx1ZSA9PSBcInNwYWNlLWJldHdlZW5cIiB7XG4gICAgICAgICRhbHQtdmFsdWU6IGp1c3RpZnk7XG4gICAgfVxuXG4gICAgQGVsc2VpZiAkdmFsdWUgPT0gXCJzcGFjZS1hcm91bmRcIiB7XG4gICAgICAgICRhbHQtdmFsdWU6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAvLyAyMDA5XG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LXBhY2ssICRhbHQtdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgICAvLyAyMDEyXG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoanVzdGlmeS1jb250ZW50LCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcblxuICAgIC8vIDIwMTEgKElFIDEwKVxuICAgIC1tcy1mbGV4LXBhY2s6ICRhbHQtdmFsdWU7XG59XG5cbi8vIDIwMDkgLSBib3gtYWxpZ24gKHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxuLy8gMjAxMSAtIGZsZXgtYWxpZ24gKHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxuLy8gMjAxMiAtIGFsaWduLWl0ZW1zIChmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXG5AbWl4aW4gYWxpZ24taXRlbXMoJHZhbHVlOiBzdHJldGNoKSB7XG5cbiAgICAkYWx0LXZhbHVlOiAkdmFsdWU7XG5cbiAgICBAaWYgJHZhbHVlID09IFwiZmxleC1zdGFydFwiIHtcbiAgICAgICAgJGFsdC12YWx1ZTogc3RhcnQ7XG4gICAgfSAgICBcblxuICAgIEBlbHNlaWYgJHZhbHVlID09IFwiZmxleC1lbmRcIiB7XG4gICAgICAgICRhbHQtdmFsdWU6IGVuZDtcbiAgICB9XG5cbiAgICAvLyAyMDA5XG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWFsaWduLCAkYWx0LXZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gICAgLy8gMjAxMlxuICAgIEBpbmNsdWRlIHByZWZpeGVyKGFsaWduLWl0ZW1zLCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcbiAgICBcbiAgICAvLyAyMDExIChJRSAxMClcbiAgICAtbXMtZmxleC1hbGlnbjogJGFsdC12YWx1ZTsgICAgXG59XG5cbi8vIDIwMTEgLSBmbGV4LWl0ZW0tYWxpZ24gKGF1dG8gfCBzdGFydCB8IGVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcbi8vIDIwMTIgLSBhbGlnbi1zZWxmIChhdXRvIHwgZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxuQG1peGluIGFsaWduLXNlbGYoJHZhbHVlOiBhdXRvKSB7XG5cbiAgICAkdmFsdWUtMjAxMTogJHZhbHVlO1xuICAgIEBpZiAkdmFsdWUgPT0gXCJmbGV4LXN0YXJ0XCIge1xuICAgICAgICAkdmFsdWUtMjAxMTogc3RhcnQ7XG4gICAgfSAgICBcblxuICAgIEBlbHNlaWYgJHZhbHVlID09IFwiZmxleC1lbmRcIiB7XG4gICAgICAgICR2YWx1ZS0yMDExOiBlbmQ7XG4gICAgfVxuXG4gICAgLy8gMjAxMlxuICAgIEBpbmNsdWRlIHByZWZpeGVyKGFsaWduLXNlbGYsICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcblxuICAgIC8vIDIwMTEgKElFIDEwKVxuICAgIC1tcy1mbGV4LWl0ZW0tYWxpZ246ICR2YWx1ZS0yMDExO1xufVxuXG4vLyAyMDExIC0gZmxleC1saW5lLXBhY2sgKHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwganVzdGlmeSB8IGRpc3RyaWJ1dGUgfCBzdHJldGNoKVxuLy8gMjAxMiAtIGFsaWduLWNvbnRlbnQgKGZsZXgtc3RhcnQgfCBmbGV4LWVuZCB8IGNlbnRlciB8IHNwYWNlLWJldHdlZW4gfCBzcGFjZS1hcm91bmQgfCBzdHJldGNoKVxuQG1peGluIGFsaWduLWNvbnRlbnQoJHZhbHVlOiBzdHJldGNoKSB7XG5cbiAgICAkdmFsdWUtMjAxMTogJHZhbHVlO1xuICAgIEBpZiAkdmFsdWUgPT0gXCJmbGV4LXN0YXJ0XCIge1xuICAgICAgICAkdmFsdWUtMjAxMTogc3RhcnQ7XG4gICAgfSAgICBcblxuICAgIEBlbHNlaWYgJHZhbHVlID09IFwiZmxleC1lbmRcIiB7XG4gICAgICAgICR2YWx1ZS0yMDExOiBlbmQ7XG4gICAgfVxuXG4gICAgQGVsc2VpZiAkdmFsdWUgPT0gXCJzcGFjZS1iZXR3ZWVuXCIge1xuICAgICAgICAkdmFsdWUtMjAxMToganVzdGlmeTtcbiAgICB9XG5cbiAgICBAZWxzZWlmICR2YWx1ZSA9PSBcInNwYWNlLWFyb3VuZFwiIHtcbiAgICAgICAgJHZhbHVlLTIwMTE6IGRpc3RyaWJ1dGU7XG4gICAgfVxuXG4gICAgLy8gMjAxMlxuICAgIEBpbmNsdWRlIHByZWZpeGVyKGFsaWduLWNvbnRlbnQsICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcblxuICAgIC8vIDIwMTEgKElFIDEwKVxuICAgIC1tcy1mbGV4LWxpbmUtcGFjazogJHZhbHVlLTIwMTE7XG59XG5cbiIsIi8vIEFkZHMga2V5ZnJhbWVzIGJsb2NrcyBmb3Igc3VwcG9ydGVkIHByZWZpeGVzLCByZW1vdmluZyByZWR1bmRhbnQgcHJlZml4ZXMgaW4gdGhlIGJsb2NrJ3MgY29udGVudFxuQG1peGluIGtleWZyYW1lcygkbmFtZSkge1xuICAkb3JpZ2luYWwtcHJlZml4LWZvci13ZWJraXQ6ICAgICRwcmVmaXgtZm9yLXdlYmtpdDtcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3ItbW96aWxsYTogICAkcHJlZml4LWZvci1tb3ppbGxhO1xuICAkb3JpZ2luYWwtcHJlZml4LWZvci1taWNyb3NvZnQ6ICRwcmVmaXgtZm9yLW1pY3Jvc29mdDtcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3Itb3BlcmE6ICAgICAkcHJlZml4LWZvci1vcGVyYTtcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3Itc3BlYzogICAgICAkcHJlZml4LWZvci1zcGVjO1xuXG4gIEBpZiAkb3JpZ2luYWwtcHJlZml4LWZvci13ZWJraXQge1xuICAgIEBpbmNsdWRlIGRpc2FibGUtcHJlZml4LWZvci1hbGwoKTtcbiAgICAkcHJlZml4LWZvci13ZWJraXQ6IHRydWU7XG4gICAgQC13ZWJraXQta2V5ZnJhbWVzICN7JG5hbWV9IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuICBAaWYgJG9yaWdpbmFsLXByZWZpeC1mb3ItbW96aWxsYSB7XG4gICAgQGluY2x1ZGUgZGlzYWJsZS1wcmVmaXgtZm9yLWFsbCgpO1xuICAgICRwcmVmaXgtZm9yLW1vemlsbGE6IHRydWU7XG4gICAgQC1tb3ota2V5ZnJhbWVzICN7JG5hbWV9IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuXG4gICRwcmVmaXgtZm9yLXdlYmtpdDogICAgJG9yaWdpbmFsLXByZWZpeC1mb3Itd2Via2l0O1xuICAkcHJlZml4LWZvci1tb3ppbGxhOiAgICRvcmlnaW5hbC1wcmVmaXgtZm9yLW1vemlsbGE7XG4gICRwcmVmaXgtZm9yLW1pY3Jvc29mdDogJG9yaWdpbmFsLXByZWZpeC1mb3ItbWljcm9zb2Z0O1xuICAkcHJlZml4LWZvci1vcGVyYTogICAgICRvcmlnaW5hbC1wcmVmaXgtZm9yLW9wZXJhO1xuICAkcHJlZml4LWZvci1zcGVjOiAgICAgICRvcmlnaW5hbC1wcmVmaXgtZm9yLXNwZWM7XG5cbiAgQGlmICRvcmlnaW5hbC1wcmVmaXgtZm9yLXNwZWMge1xuICAgIEBrZXlmcmFtZXMgI3skbmFtZX0ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG4iLCJAbWl4aW4gbGluZWFyLWdyYWRpZW50KCRwb3MsICRHMSwgJEcyOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkRzM6IG51bGwsICRHNDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJEc1OiBudWxsLCAkRzY6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRHNzogbnVsbCwgJEc4OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkRzk6IG51bGwsICRHMTA6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRmYWxsYmFjazogbnVsbCkge1xuICAvLyBEZXRlY3Qgd2hhdCB0eXBlIG9mIHZhbHVlIGV4aXN0cyBpbiAkcG9zXG4gICRwb3MtdHlwZTogdHlwZS1vZihudGgoJHBvcywgMSkpO1xuICAkcG9zLXNwZWM6IG51bGw7XG4gICRwb3MtZGVncmVlOiBudWxsO1xuXG4gIC8vIElmICRwb3MgaXMgbWlzc2luZyBmcm9tIG1peGluLCByZWFzc2lnbiB2YXJzIGFuZCBhZGQgZGVmYXVsdCBwb3NpdGlvblxuICBAaWYgKCRwb3MtdHlwZSA9PSBjb2xvcikgb3IgKG50aCgkcG9zLCAxKSA9PSBcInRyYW5zcGFyZW50XCIpICB7XG4gICAgJEcxMDogJEc5OyAkRzk6ICRHODsgJEc4OiAkRzc7ICRHNzogJEc2OyAkRzY6ICRHNTtcbiAgICAgJEc1OiAkRzQ7ICRHNDogJEczOyAkRzM6ICRHMjsgJEcyOiAkRzE7ICRHMTogJHBvcztcbiAgICAgJHBvczogbnVsbDtcbiAgfVxuXG4gIEBpZiAkcG9zIHtcbiAgICAkcG9zaXRpb25zOiBfbGluZWFyLXBvc2l0aW9ucy1wYXJzZXIoJHBvcyk7XG4gICAgJHBvcy1kZWdyZWU6IG50aCgkcG9zaXRpb25zLCAxKTtcbiAgICAkcG9zLXNwZWM6ICAgbnRoKCRwb3NpdGlvbnMsIDIpO1xuICB9XG5cbiAgJGZ1bGw6ICRHMSwgJEcyLCAkRzMsICRHNCwgJEc1LCAkRzYsICRHNywgJEc4LCAkRzksICRHMTA7XG5cbiAgLy8gU2V0ICRHMSBhcyB0aGUgZGVmYXVsdCBmYWxsYmFjayBjb2xvclxuICAkZmFsbGJhY2stY29sb3I6IG50aCgkRzEsIDEpO1xuXG4gIC8vIElmICRmYWxsYmFjayBpcyBhIGNvbG9yIHVzZSB0aGF0IGNvbG9yIGFzIHRoZSBmYWxsYmFjayBjb2xvclxuICBAaWYgKHR5cGUtb2YoJGZhbGxiYWNrKSA9PSBjb2xvcikgb3IgKCRmYWxsYmFjayA9PSBcInRyYW5zcGFyZW50XCIpIHtcbiAgICAkZmFsbGJhY2stY29sb3I6ICRmYWxsYmFjaztcbiAgfVxuXG4gIGJhY2tncm91bmQtY29sb3I6ICRmYWxsYmFjay1jb2xvcjtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoJHBvcy1kZWdyZWUgJGZ1bGwpOyAvLyBTYWZhcmkgNS4xKywgQ2hyb21lXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVucXVvdGUoXCJsaW5lYXItZ3JhZGllbnQoI3skcG9zLXNwZWN9I3skZnVsbH0pXCIpO1xufVxuIiwiQG1peGluIHBlcnNwZWN0aXZlKCRkZXB0aDogbm9uZSkge1xuICAvLyBub25lIHwgPGxlbmd0aD5cbiAgQGluY2x1ZGUgcHJlZml4ZXIocGVyc3BlY3RpdmUsICRkZXB0aCwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIHBlcnNwZWN0aXZlLW9yaWdpbigkdmFsdWU6IDUwJSA1MCUpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIocGVyc3BlY3RpdmUtb3JpZ2luLCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG4iLCJAbWl4aW4gdHJhbnNmb3JtKCRwcm9wZXJ0eTogbm9uZSkge1xuLy8gIG5vbmUgfCA8dHJhbnNmb3JtLWZ1bmN0aW9uPlxuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2Zvcm0sICRwcm9wZXJ0eSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xufVxuXG5AbWl4aW4gdHJhbnNmb3JtLW9yaWdpbigkYXhlczogNTAlKSB7XG4vLyB4LWF4aXMgLSBsZWZ0IHwgY2VudGVyIHwgcmlnaHQgIHwgbGVuZ3RoIHwgJVxuLy8geS1heGlzIC0gdG9wICB8IGNlbnRlciB8IGJvdHRvbSB8IGxlbmd0aCB8ICVcbi8vIHotYXhpcyAtICAgICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGhcbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNmb3JtLW9yaWdpbiwgJGF4ZXMsIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcbn1cblxuQG1peGluIHRyYW5zZm9ybS1zdHlsZSAoJHN0eWxlOiBmbGF0KSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zZm9ybS1zdHlsZSwgJHN0eWxlLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XG59XG4iLCIvLyBTaG9ydGhhbmQgbWl4aW4uIFN1cHBvcnRzIG11bHRpcGxlIHBhcmVudGhlc2VzLWRlbGltaW5hdGVkIHZhbHVlcyBmb3IgZWFjaCB2YXJpYWJsZS5cbi8vIEV4YW1wbGU6IEBpbmNsdWRlIHRyYW5zaXRpb24gKGFsbCAycyBlYXNlLWluLW91dCk7XG4vLyAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uIChvcGFjaXR5IDFzIGVhc2UtaW4gMnMsIHdpZHRoIDJzIGVhc2Utb3V0KTtcbi8vICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tcHJvcGVydHkgKHRyYW5zZm9ybSwgb3BhY2l0eSk7XG5cbkBtaXhpbiB0cmFuc2l0aW9uKCRwcm9wZXJ0aWVzLi4uKSB7XG4gIC8vIEZpeCBmb3IgdmVuZG9yLXByZWZpeCB0cmFuc2Zvcm0gcHJvcGVydHlcbiAgJG5lZWRzLXByZWZpeGVzOiBmYWxzZTtcbiAgJHdlYmtpdDogKCk7XG4gICRtb3o6ICgpO1xuICAkc3BlYzogKCk7XG5cbiAgLy8gQ3JlYXRlIGxpc3RzIGZvciB2ZW5kb3ItcHJlZml4ZWQgdHJhbnNmb3JtXG4gIEBlYWNoICRsaXN0IGluICRwcm9wZXJ0aWVzIHtcbiAgICBAaWYgbnRoKCRsaXN0LCAxKSA9PSBcInRyYW5zZm9ybVwiIHtcbiAgICAgICRuZWVkcy1wcmVmaXhlczogdHJ1ZTtcbiAgICAgICRsaXN0MTogLXdlYmtpdC10cmFuc2Zvcm07XG4gICAgICAkbGlzdDI6IC1tb3otdHJhbnNmb3JtO1xuICAgICAgJGxpc3QzOiAoKTtcblxuICAgICAgQGVhY2ggJHZhciBpbiAkbGlzdCB7XG4gICAgICAgICRsaXN0Mzogam9pbigkbGlzdDMsICR2YXIpO1xuXG4gICAgICAgIEBpZiAkdmFyICE9IFwidHJhbnNmb3JtXCIge1xuICAgICAgICAgICRsaXN0MTogam9pbigkbGlzdDEsICR2YXIpO1xuICAgICAgICAgICRsaXN0Mjogam9pbigkbGlzdDIsICR2YXIpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICR3ZWJraXQ6IGFwcGVuZCgkd2Via2l0LCAkbGlzdDEpO1xuICAgICAgJG1vejogICAgYXBwZW5kKCRtb3osICAgICRsaXN0Mik7XG4gICAgICAkc3BlYzogICBhcHBlbmQoJHNwZWMsICAgJGxpc3QzKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICR3ZWJraXQ6IGFwcGVuZCgkd2Via2l0LCAkbGlzdCwgY29tbWEpO1xuICAgICAgJG1vejogICAgYXBwZW5kKCRtb3osICAgICRsaXN0LCBjb21tYSk7XG4gICAgICAkc3BlYzogICBhcHBlbmQoJHNwZWMsICAgJGxpc3QsIGNvbW1hKTtcbiAgICB9XG4gIH1cblxuICBAaWYgJG5lZWRzLXByZWZpeGVzIHtcbiAgICAtd2Via2l0LXRyYW5zaXRpb246ICR3ZWJraXQ7XG4gICAgICAgLW1vei10cmFuc2l0aW9uOiAkbW96O1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogJHNwZWM7XG4gIH0gQGVsc2Uge1xuICAgIEBpZiBsZW5ndGgoJHByb3BlcnRpZXMpID49IDEge1xuICAgICAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbiwgJHByb3BlcnRpZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkcHJvcGVydGllczogYWxsIDAuMTVzIGVhc2Utb3V0IDBzO1xuICAgICAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbiwgJHByb3BlcnRpZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiB0cmFuc2l0aW9uLXByb3BlcnR5KCRwcm9wZXJ0aWVzLi4uKSB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lcygkcHJvcGVydGllcywgXCJ3ZWJraXRcIik7XG4gICAgIC1tb3otdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lcygkcHJvcGVydGllcywgXCJtb3pcIik7XG4gICAgICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lcygkcHJvcGVydGllcywgZmFsc2UpO1xufVxuXG5AbWl4aW4gdHJhbnNpdGlvbi1kdXJhdGlvbigkdGltZXMuLi4pIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbi1kdXJhdGlvbiwgJHRpbWVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24oJG1vdGlvbnMuLi4pIHtcbiAgLy8gZWFzZSB8IGxpbmVhciB8IGVhc2UtaW4gfCBlYXNlLW91dCB8IGVhc2UtaW4tb3V0IHwgY3ViaWMtYmV6aWVyKClcbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24sICRtb3Rpb25zLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gdHJhbnNpdGlvbi1kZWxheSgkdGltZXMuLi4pIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbi1kZWxheSwgJHRpbWVzLCB3ZWJraXQgbW96IHNwZWMpO1xufSIsIi8vIEZvdW5kYXRpb24gYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBpbXBvcnQgXCJnbG9iYWxcIjtcblxuLy9cbi8vIEFsZXJ0IEJveCBWYXJpYWJsZXNcbi8vXG4kaW5jbHVkZS1odG1sLWFsZXJ0LWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcyAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoaXMgdG8gY29udHJvbCBhbGVydCBwYWRkaW5nLlxuJGFsZXJ0LXBhZGRpbmctdG9wOiByZW0tY2FsYygxNCkgIWRlZmF1bHQ7XG4kYWxlcnQtcGFkZGluZy1kZWZhdWx0LWZsb2F0OiAkYWxlcnQtcGFkZGluZy10b3AgIWRlZmF1bHQ7XG4kYWxlcnQtcGFkZGluZy1vcHBvc2l0ZS1kaXJlY3Rpb246ICRhbGVydC1wYWRkaW5nLXRvcCArIHJlbS1jYWxjKDEwKSAhZGVmYXVsdDtcbiRhbGVydC1wYWRkaW5nLWJvdHRvbTogJGFsZXJ0LXBhZGRpbmctdG9wICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCB0ZXh0IHN0eWxlLlxuJGFsZXJ0LWZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuJGFsZXJ0LWZvbnQtc2l6ZTogcmVtLWNhbGMoMTMpICFkZWZhdWx0O1xuJGFsZXJ0LWZvbnQtY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcbiRhbGVydC1mb250LWNvbG9yLWFsdDogc2NhbGUtY29sb3IoJHNlY29uZGFyeS1jb2xvciwgJGxpZ2h0bmVzczogLTY2JSkgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGlzIGZvciBjbG9zZSBob3ZlciBlZmZlY3QuXG4kYWxlcnQtZnVuY3Rpb24tZmFjdG9yOiAtMTQlICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCBib3JkZXIgc3R5bGVzLlxuJGFsZXJ0LWJvcmRlci1zdHlsZTogc29saWQgIWRlZmF1bHQ7XG4kYWxlcnQtYm9yZGVyLXdpZHRoOiAxcHggIWRlZmF1bHQ7XG4kYWxlcnQtYm9yZGVyLWNvbG9yOiBzY2FsZS1jb2xvcigkcHJpbWFyeS1jb2xvciwgJGxpZ2h0bmVzczogJGFsZXJ0LWZ1bmN0aW9uLWZhY3RvcikgIWRlZmF1bHQ7XG4kYWxlcnQtYm90dG9tLW1hcmdpbjogcmVtLWNhbGMoMjApICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gc3R5bGUgdGhlIGNsb3NlIGJ1dHRvbnNcbiRhbGVydC1jbG9zZS1jb2xvcjogJG9pbCAhZGVmYXVsdDtcbiRhbGVydC1jbG9zZS10b3A6IDUwJSAhZGVmYXVsdDtcbiRhbGVydC1jbG9zZS1wb3NpdGlvbjogcmVtLWNhbGMoNCkgIWRlZmF1bHQ7XG4kYWxlcnQtY2xvc2UtZm9udC1zaXplOiByZW0tY2FsYygyMikgIWRlZmF1bHQ7XG4kYWxlcnQtY2xvc2Utb3BhY2l0eTogMC4zICFkZWZhdWx0O1xuJGFsZXJ0LWNsb3NlLW9wYWNpdHktaG92ZXI6IDAuNSAhZGVmYXVsdDtcbiRhbGVydC1jbG9zZS1wYWRkaW5nOiAwIDZweCA0cHggIWRlZmF1bHQ7XG4kYWxlcnQtY2xvc2UtYmFja2dyb3VuZDogaW5oZXJpdCAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoaXMgdG8gY29udHJvbCBib3JkZXIgcmFkaXVzXG4kYWxlcnQtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuJGFsZXJ0LXRyYW5zaXRpb24tc3BlZWQ6IDMwMG1zICFkZWZhdWx0O1xuJGFsZXJ0LXRyYW5zaXRpb24tZWFzZTogZWFzZS1vdXQgIWRlZmF1bHQ7XG5cbi8vXG4vLyBBbGVydCBNaXhpbnNcbi8vXG5cbi8vIFdlIHVzZSB0aGlzIG1peGluIHRvIGNyZWF0ZSBhIGRlZmF1bHQgYWxlcnQgYmFzZS5cbkBtaXhpbiBhbGVydC1iYXNlIHtcbiAgYm9yZGVyLXN0eWxlOiAkYWxlcnQtYm9yZGVyLXN0eWxlO1xuICBib3JkZXItd2lkdGg6ICRhbGVydC1ib3JkZXItd2lkdGg7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXdlaWdodDogJGFsZXJ0LWZvbnQtd2VpZ2h0O1xuICBtYXJnaW4tYm90dG9tOiAkYWxlcnQtYm90dG9tLW1hcmdpbjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nOiAkYWxlcnQtcGFkZGluZy10b3AgJGFsZXJ0LXBhZGRpbmctb3Bwb3NpdGUtZGlyZWN0aW9uICRhbGVydC1wYWRkaW5nLWJvdHRvbSAkYWxlcnQtcGFkZGluZy1kZWZhdWx0LWZsb2F0O1xuICBmb250LXNpemU6ICRhbGVydC1mb250LXNpemU7XG4gIEBpbmNsdWRlIHNpbmdsZS10cmFuc2l0aW9uKG9wYWNpdHksICRhbGVydC10cmFuc2l0aW9uLXNwZWVkLCAkYWxlcnQtdHJhbnNpdGlvbi1lYXNlKVxufVxuXG4vLyBXZSB1c2UgdGhpcyBtaXhpbiB0byBhZGQgYWxlcnQgc3R5bGVzXG4vL1xuLy8gJGJnIC0gVGhlIGJhY2tncm91bmQgb2YgdGhlIGFsZXJ0LiBEZWZhdWx0OiAkcHJpbWFyeS1jb2xvci5cbkBtaXhpbiBhbGVydC1zdHlsZSgkYmc6JHByaW1hcnktY29sb3IpIHtcblxuICAvLyBUaGlzIGZpbmRzIHRoZSBsaWdodG5lc3MgcGVyY2VudGFnZSBvZiB0aGUgYmFja2dyb3VuZCBjb2xvci5cbiAgJGJnLWxpZ2h0bmVzczogbGlnaHRuZXNzKCRiZyk7XG5cbiAgLy8gV2UgY29udHJvbCB3aGljaCBiYWNrZ3JvdW5kIGNvbG9yIGFuZCBib3JkZXIgY29tZSB0aHJvdWdoLlxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmc7XG4gIGJvcmRlci1jb2xvcjogc2NhbGUtY29sb3IoJGJnLCAkbGlnaHRuZXNzOiAkYWxlcnQtZnVuY3Rpb24tZmFjdG9yKTtcblxuICAvLyBXZSBjb250cm9sIHRoZSB0ZXh0IGNvbG9yIGZvciB5b3UgYmFzZWQgb24gdGhlIGJhY2tncm91bmQgY29sb3IuXG4gIEBpZiAkYmctbGlnaHRuZXNzID4gNzAlIHsgY29sb3I6ICRhbGVydC1mb250LWNvbG9yLWFsdDsgfVxuICBAZWxzZSAgICAgICAgICAgICAgICAgICB7IGNvbG9yOiAkYWxlcnQtZm9udC1jb2xvcjsgfVxuXG59XG5cbi8vIFdlIHVzZSB0aGlzIHRvIGNyZWF0ZSB0aGUgY2xvc2UgYnV0dG9uLlxuQG1peGluIGFsZXJ0LWNsb3NlIHtcbiAgZm9udC1zaXplOiAkYWxlcnQtY2xvc2UtZm9udC1zaXplO1xuICBwYWRkaW5nOiAkYWxlcnQtY2xvc2UtcGFkZGluZztcbiAgbGluZS1oZWlnaHQ6IC45O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogJGFsZXJ0LWNsb3NlLXRvcDtcbiAgbWFyZ2luLXRvcDogLSgkYWxlcnQtY2xvc2UtZm9udC1zaXplIC8gMik7XG4gICN7JG9wcG9zaXRlLWRpcmVjdGlvbn06ICRhbGVydC1jbG9zZS1wb3NpdGlvbjtcbiAgY29sb3I6ICRhbGVydC1jbG9zZS1jb2xvcjtcbiAgb3BhY2l0eTogJGFsZXJ0LWNsb3NlLW9wYWNpdHk7XG4gIGJhY2tncm91bmQ6ICRhbGVydC1jbG9zZS1iYWNrZ3JvdW5kO1xuICAmOmhvdmVyLFxuICAmOmZvY3VzIHsgb3BhY2l0eTogJGFsZXJ0LWNsb3NlLW9wYWNpdHktaG92ZXI7IH1cbn1cblxuLy8gV2UgdXNlIHRoaXMgdG8gcXVpY2tseSBjcmVhdGUgYWxlcnRzIHdpdGggYSBzaW5nbGUgbWl4aW4uXG4vL1xuLy8gJGJnIC0gQmFja2dyb3VuZCBvZiBhbGVydC4gRGVmYXVsdDogJHByaW1hcnktY29sb3IuXG4vLyAkcmFkaXVzIC0gUmFkaXVzIG9mIGFsZXJ0IGJveC4gRGVmYXVsdDogZmFsc2UuXG5AbWl4aW4gYWxlcnQoJGJnOiRwcmltYXJ5LWNvbG9yLCAkcmFkaXVzOmZhbHNlKSB7XG4gIEBpbmNsdWRlIGFsZXJ0LWJhc2U7XG4gIEBpbmNsdWRlIGFsZXJ0LXN0eWxlKCRiZyk7XG4gIEBpbmNsdWRlIHJhZGl1cygkcmFkaXVzKTtcbn1cblxuQGluY2x1ZGUgZXhwb3J0cyhcImFsZXJ0LWJveFwiKSB7XG4gIEBpZiAkaW5jbHVkZS1odG1sLWFsZXJ0LWNsYXNzZXMge1xuICAgIC5hbGVydC1ib3gge1xuICAgICAgQGluY2x1ZGUgYWxlcnQ7XG5cbiAgICAgIC5jbG9zZSAgICAgIHsgQGluY2x1ZGUgYWxlcnQtY2xvc2U7IH1cblxuICAgICAgJi5yYWRpdXMgICAgeyBAaW5jbHVkZSByYWRpdXMoJGFsZXJ0LXJhZGl1cyk7IH1cbiAgICAgICYucm91bmQgICAgIHsgQGluY2x1ZGUgcmFkaXVzKCRnbG9iYWwtcm91bmRlZCk7IH1cblxuICAgICAgJi5zdWNjZXNzICAgeyBAaW5jbHVkZSBhbGVydC1zdHlsZSgkc3VjY2Vzcy1jb2xvcik7IH1cbiAgICAgICYuYWxlcnQgICAgIHsgQGluY2x1ZGUgYWxlcnQtc3R5bGUoJGFsZXJ0LWNvbG9yKTsgfVxuICAgICAgJi5zZWNvbmRhcnkgeyBAaW5jbHVkZSBhbGVydC1zdHlsZSgkc2Vjb25kYXJ5LWNvbG9yKTsgfVxuICAgICAgJi53YXJuaW5nIHsgQGluY2x1ZGUgYWxlcnQtc3R5bGUoJHdhcm5pbmctY29sb3IpOyB9XG4gICAgICAmLmluZm8geyBAaW5jbHVkZSBhbGVydC1zdHlsZSgkaW5mby1jb2xvcik7IH1cbiAgICAgICYuYWxlcnQtY2xvc2UgeyBvcGFjaXR5OiAwfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQGltcG9ydCBcIi4uL2Z1bmN0aW9uc1wiO1xuLy9cbi8vIEZvdW5kYXRpb24gVmFyaWFibGVzXG4vL1xuXG4vLyBEYXRhIGF0dHJpYnV0ZSBuYW1lc3BhY2Vcbi8vIHN0eWxlcyBnZXQgYXBwbGllZCB0byBbZGF0YS1teXNpdGUtcGx1Z2luXSwgZXRjXG4kbmFtZXNwYWNlOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8gVGhlIGRlZmF1bHQgZm9udC1zaXplIGlzIHNldCB0byAxMDAlIG9mIHRoZSBicm93c2VyIHN0eWxlIHNoZWV0ICh1c3VhbGx5IDE2cHgpXG4vLyBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIGJyb3dzZXItYmFzZWQgdGV4dCB6b29tIG9yIHVzZXItc2V0IGRlZmF1bHRzLlxuXG4vLyBTaW5jZSB0aGUgdHlwaWNhbCBkZWZhdWx0IGJyb3dzZXIgZm9udC1zaXplIGlzIDE2cHgsIHRoYXQgbWFrZXMgdGhlIGNhbGN1bGF0aW9uIGZvciBncmlkIHNpemUuXG4vLyBJZiB5b3Ugd2FudCB5b3VyIGJhc2UgZm9udC1zaXplIHRvIGJlIGRpZmZlcmVudCBhbmQgbm90IGhhdmUgaXQgYWZmZWN0IHRoZSBncmlkIGJyZWFrcG9pbnRzLFxuLy8gc2V0ICRyZW0tYmFzZSB0byAkYmFzZS1mb250LXNpemUgYW5kIG1ha2Ugc3VyZSAkYmFzZS1mb250LXNpemUgaXMgYSBweCB2YWx1ZS5cbiRiYXNlLWZvbnQtc2l6ZTogMTAwJSAhZGVmYXVsdDtcblxuLy8gJGJhc2UtbGluZS1oZWlnaHQgaXMgMjRweCB3aGlsZSAkYmFzZS1mb250LXNpemUgaXMgMTZweFxuJGJhc2UtbGluZS1oZWlnaHQ6IDEuNSAhZGVmYXVsdDtcblxuLy9cbi8vIEdsb2JhbCBGb3VuZGF0aW9uIE1peGluc1xuLy9cblxuLy8gQG1peGluc1xuLy9cbi8vIFdlIHVzZSB0aGlzIHRvIGNvbnRyb2wgYm9yZGVyIHJhZGl1cy5cbi8vICRyYWRpdXMgLSBEZWZhdWx0OiAkZ2xvYmFsLXJhZGl1cyB8fCA0cHhcbkBtaXhpbiByYWRpdXMoJHJhZGl1czokZ2xvYmFsLXJhZGl1cykge1xuICBAaWYgJHJhZGl1cyB7XG4gICAgYm9yZGVyLXJhZGl1czogJHJhZGl1cztcbiAgfVxufVxuXG4vLyBAbWl4aW5zXG4vL1xuLy8gV2UgdXNlIHRoaXMgdG8gY3JlYXRlIGVxdWFsIHNpZGUgYm9yZGVyIHJhZGl1cyBvbiBlbGVtZW50cy5cbi8vICRzaWRlIC0gT3B0aW9uczogbGVmdCwgcmlnaHQsIHRvcCwgYm90dG9tXG5AbWl4aW4gc2lkZS1yYWRpdXMoJHNpZGUsICRyYWRpdXM6JGdsb2JhbC1yYWRpdXMpIHtcbiAgQGlmICgkc2lkZSA9PSBsZWZ0IG9yICRzaWRlID09IHJpZ2h0KSB7XG4gICAgLXdlYmtpdC1ib3JkZXItYm90dG9tLSN7JHNpZGV9LXJhZGl1czogJHJhZGl1cztcbiAgICAtd2Via2l0LWJvcmRlci10b3AtI3skc2lkZX0tcmFkaXVzOiAkcmFkaXVzO1xuICAgIGJvcmRlci1ib3R0b20tI3skc2lkZX0tcmFkaXVzOiAkcmFkaXVzO1xuICAgIGJvcmRlci10b3AtI3skc2lkZX0tcmFkaXVzOiAkcmFkaXVzO1xuICB9IEBlbHNlIHtcbiAgICAtd2Via2l0LSN7JHNpZGV9LWxlZnQtcmFkaXVzOiAkcmFkaXVzO1xuICAgIC13ZWJraXQtI3skc2lkZX0tcmlnaHQtcmFkaXVzOiAkcmFkaXVzO1xuICAgIGJvcmRlci0jeyRzaWRlfS1sZWZ0LXJhZGl1czogJHJhZGl1cztcbiAgICBib3JkZXItI3skc2lkZX0tcmlnaHQtcmFkaXVzOiAkcmFkaXVzO1xuICB9XG59XG5cbi8vIEBtaXhpbnNcbi8vXG4vLyBXZSBjYW4gY29udHJvbCB3aGV0aGVyIG9yIG5vdCB3ZSBoYXZlIGluc2V0IHNoYWRvd3MgZWRnZXMuXG4vLyAkYWN0aXZlIC0gRGVmYXVsdDogdHJ1ZSwgT3B0aW9uczogZmFsc2VcbkBtaXhpbiBpbnNldC1zaGFkb3coJGFjdGl2ZTp0cnVlKSB7XG4gIGJveC1zaGFkb3c6ICRzaGlueS1lZGdlLXNpemUgJHNoaW55LWVkZ2UtY29sb3IgaW5zZXQ7XG5cbiAgQGlmICRhY3RpdmUgeyAmOmFjdGl2ZSB7XG4gICAgYm94LXNoYWRvdzogJHNoaW55LWVkZ2Utc2l6ZSAkc2hpbnktZWRnZS1hY3RpdmUtY29sb3IgaW5zZXQ7IH0gfVxufVxuXG4vLyBAbWl4aW5zXG4vL1xuLy8gV2UgdXNlIHRoaXMgdG8gYWRkIHRyYW5zaXRpb25zIHRvIGVsZW1lbnRzXG4vLyAkcHJvcGVydHkgLSBEZWZhdWx0OiBhbGwsIE9wdGlvbnM6IGh0dHA6Ly93d3cudzMub3JnL1RSL2NzczMtdHJhbnNpdGlvbnMvI2FuaW1hdGFibGUtcHJvcGVydGllc1xuLy8gJHNwZWVkIC0gRGVmYXVsdDogMzAwbXNcbi8vICRlYXNlIC0gRGVmYXVsdDplYXNlLW91dCwgT3B0aW9uczogaHR0cDovL2Nzcy10cmlja3MuY29tL2FsbWFuYWMvcHJvcGVydGllcy90L3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uL1xuQG1peGluIHNpbmdsZS10cmFuc2l0aW9uKCRwcm9wZXJ0eTphbGwsICRzcGVlZDozMDBtcywgJGVhc2U6ZWFzZS1vdXQpIHtcbiAgdHJhbnNpdGlvbjogJHByb3BlcnR5ICRzcGVlZCAkZWFzZTtcbn1cblxuLy8gQG1peGluc1xuLy9cbi8vIFdlIHVzZSB0aGlzIHRvIGFkZCBib3gtc2l6aW5nIGFjcm9zcyBicm93c2VyIHByZWZpeGVzXG5AbWl4aW4gYm94LXNpemluZygkdHlwZTpib3JkZXItYm94KSB7XG4gIC13ZWJraXQtYm94LXNpemluZzogJHR5cGU7IC8vIEFuZHJvaWQgPCAyLjMsIGlPUyA8IDRcbiAgICAgLW1vei1ib3gtc2l6aW5nOiAkdHlwZTsgLy8gRmlyZWZveCA8IDI5XG4gICAgICAgICAgYm94LXNpemluZzogJHR5cGU7IC8vIENocm9tZSwgSUUgOCssIE9wZXJhLCBTYWZhcmkgNS4xXG59XG5cbi8vIEBtaXhpbnNcbi8vXG4vLyBXZSB1c2UgdGhpcyB0byBjcmVhdGUgaXNvc2NlbGVzIHRyaWFuZ2xlc1xuLy8gJHRyaWFuZ2xlLXNpemUgLSBVc2VkIHRvIHNldCBib3JkZXItc2l6ZS4gTm8gZGVmYXVsdCwgc2V0IGEgcHggb3IgZW0gc2l6ZS5cbi8vICR0cmlhbmdsZS1jb2xvciAtIFVzZWQgdG8gc2V0IGJvcmRlci1jb2xvciB3aGljaCBtYWtlcyB1cCB0cmlhbmdsZS4gTm8gZGVmYXVsdFxuLy8gJHRyaWFuZ2xlLWRpcmVjdGlvbiAtIFVzZWQgdG8gZGV0ZXJtaW5lIHdoaWNoIGRpcmVjdGlvbiB0cmlhbmdsZSBwb2ludHMuIE9wdGlvbnM6IHRvcCwgYm90dG9tLCBsZWZ0LCByaWdodFxuQG1peGluIGNzcy10cmlhbmdsZSgkdHJpYW5nbGUtc2l6ZSwgJHRyaWFuZ2xlLWNvbG9yLCAkdHJpYW5nbGUtZGlyZWN0aW9uKSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXI6IGluc2V0ICR0cmlhbmdsZS1zaXplO1xuICBAaWYgKCR0cmlhbmdsZS1kaXJlY3Rpb24gPT0gdG9wKSB7XG4gICAgYm9yZGVyLWNvbG9yOiAkdHJpYW5nbGUtY29sb3IgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7XG4gIH1cbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IGJvdHRvbSkge1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgJHRyaWFuZ2xlLWNvbG9yIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkO1xuICB9XG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSBsZWZ0KSB7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAkdHJpYW5nbGUtY29sb3I7XG4gICAgYm9yZGVyLWxlZnQtc3R5bGU6IHNvbGlkO1xuICB9XG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSByaWdodCkge1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgJHRyaWFuZ2xlLWNvbG9yIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1yaWdodC1zdHlsZTogc29saWQ7XG4gIH1cbn1cblxuLy8gQG1peGluc1xuLy9cbi8vIFdlIHVzZSB0aGlzIHRvIGNyZWF0ZSB0aGUgaWNvbiB3aXRoIHRocmVlIGxpbmVzIGFrYSB0aGUgaGFtYnVyZ2VyIGljb24sIHRoZSBtZW51LWljb24gb3IgdGhlIG5hdmljb25cbi8vICR3aWR0aCAtIFdpZHRoIG9mIGhhbWJ1cmdlciBpY29uIGluIHJlbVxuLy8gJGxlZnQgLSBJZiBmYWxzZSwgaWNvbiB3aWxsIGJlIGNlbnRlcmVkIGhvcml6b250YWxseSB8fCBleHBsaWNpdGx5IHNldCB2YWx1ZSBpbiByZW1cbi8vICR0b3AgLSBJZiBmYWxzZSwgaWNvbiB3aWxsIGJlIGNlbnRlcmVkIHZlcnRpY2FsbHkgfHwgZXhwbGljaXRseSBzZXQgdmFsdWUgaW4gcmVtXG4vLyAkdGhpY2tuZXNzIC0gdGhpY2tuZXNzIG9mIGxpbmVzIGluIGhhbWJ1cmdlciBpY29uLCBzZXQgdmFsdWUgaW4gcHhcbi8vICRnYXAgLSBzcGFjaW5nIGJldHdlZW4gdGhlIGxpbmVzIGluIGhhbWJ1cmdlciBpY29uLCBzZXQgdmFsdWUgaW4gcHhcbi8vICRjb2xvciAtIGljb24gY29sb3Jcbi8vICRob3Zlci1jb2xvciAtIGljb24gY29sb3IgZHVyaW5nIGhvdmVyXG4vLyAkb2ZmY2FudmFzIC0gU2V0IHRvIHRydWUgb2YgQGluY2x1ZGUgaW4gb2ZmY2FudmFzXG5AbWl4aW4gaGFtYnVyZ2VyKCR3aWR0aCwgJGxlZnQsICR0b3AsICR0aGlja25lc3MsICRnYXAsICRjb2xvciwgJGhvdmVyLWNvbG9yLCAkb2ZmY2FudmFzKSB7XG4gIHNwYW46OmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDA7XG5cbiAgICBAaWYgJG9mZmNhbnZhcyB7XG4gICAgICBAaWYgJHRvcCB7XG4gICAgICAgIHRvcDogJHRvcDtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIG1hcmdpbi10b3A6ICgtJHdpZHRoLzIpO1xuICAgICAgfVxuICAgICAgQGlmICRsZWZ0IHtcbiAgICAgICAgbGVmdDogJGxlZnQ7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIGxlZnQ6ICgkdGFiYmFyLW1lbnUtaWNvbi13aWR0aCAtICR3aWR0aCkvMjtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgdG9wOiA1MCU7XG4gICAgICBtYXJnaW4tdG9wOiAtKCR3aWR0aC8yKTtcbiAgICAgICN7JG9wcG9zaXRlLWRpcmVjdGlvbn06ICR0b3BiYXItbGluay1wYWRkaW5nO1xuICAgIH1cblxuICAgIGJveC1zaGFkb3c6XG4gICAgICAwIDAgMCAkdGhpY2tuZXNzICRjb2xvcixcbiAgICAgIDAgJGdhcCArICR0aGlja25lc3MgMCAkdGhpY2tuZXNzICRjb2xvcixcbiAgICAgIDAgKDIgKiAkZ2FwICsgMiokdGhpY2tuZXNzKSAwICR0aGlja25lc3MgJGNvbG9yO1xuICAgIHdpZHRoOiAkd2lkdGg7XG4gIH1cbiAgc3Bhbjpob3ZlcjphZnRlciB7XG4gICAgYm94LXNoYWRvdzpcbiAgICAgIDAgMCAwICR0aGlja25lc3MgJGhvdmVyLWNvbG9yLFxuICAgICAgMCAkZ2FwICsgJHRoaWNrbmVzcyAwICR0aGlja25lc3MgJGhvdmVyLWNvbG9yLFxuICAgICAgMCAoMiAqICRnYXAgKyAyKiR0aGlja25lc3MpIDAgJHRoaWNrbmVzcyAkaG92ZXItY29sb3I7XG4gIH1cbn1cblxuLy8gV2UgdXNlIHRoaXMgdG8gZG8gY2xlYXIgZmxvYXRzXG5AbWl4aW4gY2xlYXJmaXgge1xuICAmOmJlZm9yZSwgJjphZnRlciB7IGNvbnRlbnQ6IFwiIFwiOyBkaXNwbGF5OiB0YWJsZTsgfVxuICAmOmFmdGVyIHsgY2xlYXI6IGJvdGg7IH1cbn1cblxuLy8gQG1peGluc1xuLy9cbi8vIFdlIHVzZSB0aGlzIHRvIGFkZCBhIGdsb3dpbmcgZWZmZWN0IHRvIGJsb2NrIGVsZW1lbnRzXG4vLyAkc2VsZWN0b3IgLSBVc2VkIGZvciBzZWxlY3RvciBzdGF0ZS4gRGVmYXVsdDogZm9jdXMsIE9wdGlvbnM6IGhvdmVyLCBhY3RpdmUsIHZpc2l0ZWRcbi8vICRmYWRlLXRpbWUgLSBEZWZhdWx0OiAzMDBtc1xuLy8gJGdsb3dpbmctZWZmZWN0LWNvbG9yIC0gRGVmYXVsdDogZmFkZS1vdXQoJHByaW1hcnktY29sb3IsIC4yNSlcbkBtaXhpbiBibG9jay1nbG93aW5nLWVmZmVjdCgkc2VsZWN0b3I6Zm9jdXMsICRmYWRlLXRpbWU6MzAwbXMsICRnbG93aW5nLWVmZmVjdC1jb2xvcjpmYWRlLW91dCgkcHJpbWFyeS1jb2xvciwgLjI1KSkge1xuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93ICRmYWRlLXRpbWUsIGJvcmRlci1jb2xvciAkZmFkZS10aW1lIGVhc2UtaW4tb3V0O1xuXG4gICY6I3skc2VsZWN0b3J9IHtcbiAgICBib3gtc2hhZG93OiAwIDAgNXB4ICRnbG93aW5nLWVmZmVjdC1jb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRnbG93aW5nLWVmZmVjdC1jb2xvcjtcbiAgfVxufVxuXG4vLyBAbWl4aW5zXG4vL1xuLy8gV2UgdXNlIHRoaXMgdG8gdHJhbnNsYXRlIGVsZW1lbnRzIGluIDJEXG4vLyAkaG9yaXpvbnRhbDogRGVmYXVsdDogMFxuLy8gJHZlcnRpY2FsOiBEZWZhdWx0OiAwXG5AbWl4aW4gdHJhbnNsYXRlMmQoJGhvcml6b250YWw6MCwgJHZlcnRpY2FsOjApIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoJGhvcml6b250YWwsJHZlcnRpY2FsKVxufVxuXG4vLyBAbWl4aW5zXG4vL1xuLy8gTWFrZXMgYW4gZWxlbWVudCB2aXN1YWxseSBoaWRkZW4sIGJ1dCBhY2Nlc3NpYmxlLlxuLy8gQHNlZSBodHRwOi8vc25vb2suY2EvYXJjaGl2ZXMvaHRtbF9hbmRfY3NzL2hpZGluZy1jb250ZW50LWZvci1hY2Nlc3NpYmlsaXR5XG5AbWl4aW4gZWxlbWVudC1pbnZpc2libGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAxcHg7XG4gIHdpZHRoOiAxcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGNsaXA6IHJlY3QoMXB4LCAxcHgsIDFweCwgMXB4KTtcbn1cblxuLy8gQG1peGluc1xuLy9cbi8vIFR1cm5zIG9mZiB0aGUgZWxlbWVudC1pbnZpc2libGUgZWZmZWN0LlxuQG1peGluIGVsZW1lbnQtaW52aXNpYmxlLW9mZiB7XG4gIHBvc2l0aW9uOiBzdGF0aWMgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiBhdXRvO1xuICB3aWR0aDogYXV0bztcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIGNsaXA6IGF1dG87XG59XG5cbiR3aGl0ZSAgICAgICAgIDogI0ZGRkZGRiAhZGVmYXVsdDtcbiRnaG9zdCAgICAgICAgIDogI0ZBRkFGQSAhZGVmYXVsdDtcbiRzbm93ICAgICAgICAgIDogI0Y5RjlGOSAhZGVmYXVsdDtcbiR2YXBvciAgICAgICAgIDogI0Y2RjZGNiAhZGVmYXVsdDtcbiR3aGl0ZS1zbW9rZSAgIDogI0Y1RjVGNSAhZGVmYXVsdDtcbiRzaWx2ZXIgICAgICAgIDogI0VGRUZFRiAhZGVmYXVsdDtcbiRzbW9rZSAgICAgICAgIDogI0VFRUVFRSAhZGVmYXVsdDtcbiRnYWluc2Jvcm8gICAgIDogI0RERERERCAhZGVmYXVsdDtcbiRpcm9uICAgICAgICAgIDogI0NDQ0NDQyAhZGVmYXVsdDtcbiRiYXNlICAgICAgICAgIDogI0FBQUFBQSAhZGVmYXVsdDtcbiRhbHVtaW51bSAgICAgIDogIzk5OTk5OSAhZGVmYXVsdDtcbiRqdW1ibyAgICAgICAgIDogIzg4ODg4OCAhZGVmYXVsdDtcbiRtb25zb29uICAgICAgIDogIzc3Nzc3NyAhZGVmYXVsdDtcbiRzdGVlbCAgICAgICAgIDogIzY2NjY2NiAhZGVmYXVsdDtcbiRjaGFyY29hbCAgICAgIDogIzU1NTU1NSAhZGVmYXVsdDtcbiR0dWF0YXJhICAgICAgIDogIzQ0NDQ0NCAhZGVmYXVsdDtcbiRvaWwgICAgICAgICAgIDogIzMzMzMzMyAhZGVmYXVsdDtcbiRqZXQgICAgICAgICAgIDogIzIyMjIyMiAhZGVmYXVsdDtcbiRibGFjayAgICAgICAgIDogIzAwMDAwMCAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIGFzIGRlZmF1bHQgY29sb3JzIHRocm91Z2hvdXRcbiRwcmltYXJ5LWNvbG9yOiAjMDA4Q0JBICFkZWZhdWx0OyAgIC8vIGJvbmRpLWJsdWVcbiRzZWNvbmRhcnktY29sb3I6ICNlN2U3ZTcgIWRlZmF1bHQ7IC8vIHdoaXRlLWxpbGFjXG4kYWxlcnQtY29sb3I6ICNmMDQxMjQgIWRlZmF1bHQ7ICAgICAvLyBjaW5uYWJhclxuJHN1Y2Nlc3MtY29sb3I6ICM0M0FDNkEgIWRlZmF1bHQ7ICAgLy8gc2VhLWdyZWVuXG4kd2FybmluZy1jb2xvcjogI2YwOGEyNCAhZGVmYXVsdDsgICAvLyBjYXJyb3RcbiRpbmZvLWNvbG9yOiAjYTBkM2U4ICFkZWZhdWx0OyAgICAgIC8vIGNvcm5mbG93ZXJcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGRlZmluZSBkZWZhdWx0IGZvbnQgc3RhY2tzXG4kZm9udC1mYW1pbHktc2Fucy1zZXJpZjogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIFJvYm90bywgQXJpYWwsIHNhbnMtc2VyaWYgIWRlZmF1bHQ7XG4kZm9udC1mYW1pbHktc2VyaWY6IEdlb3JnaWEsIENhbWJyaWEsIFwiVGltZXMgTmV3IFJvbWFuXCIsIFRpbWVzLCBzZXJpZiAhZGVmYXVsdDtcbiRmb250LWZhbWlseS1tb25vc3BhY2U6IENvbnNvbGFzLCBcIkxpYmVyYXRpb24gTW9ub1wiLCBDb3VyaWVyLCBtb25vc3BhY2UgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBkZWZpbmUgZGVmYXVsdCBmb250IHdlaWdodHNcbiRmb250LXdlaWdodC1ub3JtYWw6IG5vcm1hbCAhZGVmYXVsdDtcbiRmb250LXdlaWdodC1ib2xkOiBib2xkICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCB2YXJpb3VzIGdsb2JhbCBzdHlsZXNcbiRib2R5LWJnOiAjZmZmICFkZWZhdWx0O1xuJGJvZHktZm9udC1jb2xvcjogIzIyMiAhZGVmYXVsdDtcbiRib2R5LWZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktc2Fucy1zZXJpZiAhZGVmYXVsdDtcbiRib2R5LWZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuJGJvZHktZm9udC1zdHlsZTogbm9ybWFsICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhpcyB0byBjb250cm9sIGZvbnQtc21vb3RoaW5nXG4kZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCB0ZXh0IGRpcmVjdGlvbiBzZXR0aW5nc1xuJHRleHQtZGlyZWN0aW9uOiBsdHIgIWRlZmF1bHQ7XG4kZGVmYXVsdC1mbG9hdDogbGVmdCAhZGVmYXVsdDtcbiRvcHBvc2l0ZS1kaXJlY3Rpb246IHJpZ2h0ICFkZWZhdWx0O1xuQGlmICR0ZXh0LWRpcmVjdGlvbiA9PSBsdHIge1xuICAkZGVmYXVsdC1mbG9hdDogbGVmdDtcbiAgJG9wcG9zaXRlLWRpcmVjdGlvbjogcmlnaHQ7XG59IEBlbHNlIHtcbiAgJGRlZmF1bHQtZmxvYXQ6IHJpZ2h0O1xuICAkb3Bwb3NpdGUtZGlyZWN0aW9uOiBsZWZ0O1xufVxuXG4vLyBXZSB1c2UgdGhlc2UgdG8gbWFrZSBzdXJlIGJvcmRlciByYWRpdXMgbWF0Y2hlcyB1bmxlc3Mgd2Ugd2FudCBpdCBkaWZmZXJlbnQuXG4kZ2xvYmFsLXJhZGl1czogM3B4ICFkZWZhdWx0O1xuJGdsb2JhbC1yb3VuZGVkOiAxMDAwcHggIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIGluc2V0IHNoYWRvdyBzaGlueSBlZGdlcyBhbmQgZGVwcmVzc2lvbnMuXG4kc2hpbnktZWRnZS1zaXplOiAwIDFweCAwICFkZWZhdWx0O1xuJHNoaW55LWVkZ2UtY29sb3I6IHJnYmEoI2ZmZiwgLjUpICFkZWZhdWx0O1xuJHNoaW55LWVkZ2UtYWN0aXZlLWNvbG9yOiByZ2JhKCMwMDAsIC4yKSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoaXMgdG8gY29udHJvbCB3aGV0aGVyIG9yIG5vdCBDU1MgY2xhc3NlcyBjb21lIHRocm91Z2ggaW4gdGhlIGdlbSBmaWxlcy5cbiRpbmNsdWRlLWh0bWwtY2xhc3NlczogdHJ1ZSAhZGVmYXVsdDtcbiRpbmNsdWRlLXByaW50LXN0eWxlczogdHJ1ZSAhZGVmYXVsdDtcbiRpbmNsdWRlLWh0bWwtZ2xvYmFsLWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcyAhZGVmYXVsdDtcblxuJGNvbHVtbi1ndXR0ZXI6IHJlbS1jYWxjKDMwKSAhZGVmYXVsdDtcblxuLy8gTWVkaWEgUXVlcnkgUmFuZ2VzXG4kc21hbGwtcmFuZ2U6ICgwLCA0MGVtKSAhZGVmYXVsdDtcbiRtZWRpdW0tcmFuZ2U6ICg0MC4wNjNlbSwgNjRlbSkgIWRlZmF1bHQ7XG4kbGFyZ2UtcmFuZ2U6ICg2NC4wNjNlbSwgOTBlbSkgIWRlZmF1bHQ7XG4keGxhcmdlLXJhbmdlOiAoOTAuMDYzZW0sIDEyMGVtKSAhZGVmYXVsdDtcbiR4eGxhcmdlLXJhbmdlOiAoMTIwLjA2M2VtLCA5OTk5OTk5OWVtKSAhZGVmYXVsdDtcblxuXG4kc2NyZWVuOiBcIm9ubHkgc2NyZWVuXCIgIWRlZmF1bHQ7XG5cbiRsYW5kc2NhcGU6IFwiI3skc2NyZWVufSBhbmQgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpXCIgIWRlZmF1bHQ7XG4kcG9ydHJhaXQ6IFwiI3skc2NyZWVufSBhbmQgKG9yaWVudGF0aW9uOiBwb3J0cmFpdClcIiAhZGVmYXVsdDtcblxuJHNtYWxsLXVwOiAkc2NyZWVuICFkZWZhdWx0O1xuJHNtYWxsLW9ubHk6IFwiI3skc2NyZWVufSBhbmQgKG1heC13aWR0aDogI3t1cHBlci1ib3VuZCgkc21hbGwtcmFuZ2UpfSlcIiAhZGVmYXVsdDtcblxuJG1lZGl1bS11cDogXCIjeyRzY3JlZW59IGFuZCAobWluLXdpZHRoOiN7bG93ZXItYm91bmQoJG1lZGl1bS1yYW5nZSl9KVwiICFkZWZhdWx0O1xuJG1lZGl1bS1vbmx5OiBcIiN7JHNjcmVlbn0gYW5kIChtaW4td2lkdGg6I3tsb3dlci1ib3VuZCgkbWVkaXVtLXJhbmdlKX0pIGFuZCAobWF4LXdpZHRoOiN7dXBwZXItYm91bmQoJG1lZGl1bS1yYW5nZSl9KVwiICFkZWZhdWx0O1xuXG4kbGFyZ2UtdXA6IFwiI3skc2NyZWVufSBhbmQgKG1pbi13aWR0aDoje2xvd2VyLWJvdW5kKCRsYXJnZS1yYW5nZSl9KVwiICFkZWZhdWx0O1xuJGxhcmdlLW9ubHk6IFwiI3skc2NyZWVufSBhbmQgKG1pbi13aWR0aDoje2xvd2VyLWJvdW5kKCRsYXJnZS1yYW5nZSl9KSBhbmQgKG1heC13aWR0aDoje3VwcGVyLWJvdW5kKCRsYXJnZS1yYW5nZSl9KVwiICFkZWZhdWx0O1xuXG4keGxhcmdlLXVwOiBcIiN7JHNjcmVlbn0gYW5kIChtaW4td2lkdGg6I3tsb3dlci1ib3VuZCgkeGxhcmdlLXJhbmdlKX0pXCIgIWRlZmF1bHQ7XG4keGxhcmdlLW9ubHk6IFwiI3skc2NyZWVufSBhbmQgKG1pbi13aWR0aDoje2xvd2VyLWJvdW5kKCR4bGFyZ2UtcmFuZ2UpfSkgYW5kIChtYXgtd2lkdGg6I3t1cHBlci1ib3VuZCgkeGxhcmdlLXJhbmdlKX0pXCIgIWRlZmF1bHQ7XG5cbiR4eGxhcmdlLXVwOiBcIiN7JHNjcmVlbn0gYW5kIChtaW4td2lkdGg6I3tsb3dlci1ib3VuZCgkeHhsYXJnZS1yYW5nZSl9KVwiICFkZWZhdWx0O1xuJHh4bGFyZ2Utb25seTogXCIjeyRzY3JlZW59IGFuZCAobWluLXdpZHRoOiN7bG93ZXItYm91bmQoJHh4bGFyZ2UtcmFuZ2UpfSkgYW5kIChtYXgtd2lkdGg6I3t1cHBlci1ib3VuZCgkeHhsYXJnZS1yYW5nZSl9KVwiICFkZWZhdWx0O1xuXG4vLyBMZWdhY3lcbiRzbWFsbDogJG1lZGl1bS11cDtcbiRtZWRpdW06ICRtZWRpdW0tdXA7XG4kbGFyZ2U6ICRsYXJnZS11cDtcblxuXG4vL1dlIHVzZSB0aGlzIGFzIGN1cnNvcnMgdmFsdWVzIGZvciBlbmFibGluZyB0aGUgb3B0aW9uIG9mIGhhdmluZyBjdXN0b20gY3Vyc29ycyBpbiB0aGUgd2hvbGUgc2l0ZSdzIHN0eWxlc2hlZXRcbiRjdXJzb3ItYXV0by12YWx1ZTogYXV0byAhZGVmYXVsdDtcbiRjdXJzb3ItY3Jvc3NoYWlyLXZhbHVlOiBjcm9zc2hhaXIgIWRlZmF1bHQ7XG4kY3Vyc29yLWRlZmF1bHQtdmFsdWU6IGRlZmF1bHQgIWRlZmF1bHQ7XG4kY3Vyc29yLWRpc2FibGVkLXZhbHVlOiBub3QtYWxsb3dlZCAhZGVmYXVsdDtcbiRjdXJzb3ItcG9pbnRlci12YWx1ZTogcG9pbnRlciAhZGVmYXVsdDtcbiRjdXJzb3ItaGVscC12YWx1ZTogaGVscCAhZGVmYXVsdDtcbiRjdXJzb3ItdGV4dC12YWx1ZTogdGV4dCAhZGVmYXVsdDtcblxuXG5AaW5jbHVkZSBleHBvcnRzKFwiZ2xvYmFsXCIpIHtcblxuICAvLyBNZXRhIHN0eWxlcyBhcmUgaW5jbHVkZWQgaW4gYWxsIGJ1aWxkcywgYXMgdGhleSBhcmUgYSBkZXBlbmRhbmN5IG9mIHRoZSBKYXZhc2NyaXB0LlxuICAvLyBVc2VkIHRvIHByb3ZpZGUgbWVkaWEgcXVlcnkgdmFsdWVzIGZvciBqYXZhc2NyaXB0IGNvbXBvbmVudHMuXG4gIC8vIEZvcndhcmQgc2xhc2ggcGxhY2VkIGFyb3VuZCBldmVyeXRoaW5nIHRvIGNvbnZpbmNlIFBoYW50b21KUyB0byByZWFkIHRoZSB2YWx1ZS5cblxuICBtZXRhLmZvdW5kYXRpb24tdmVyc2lvbiB7XG4gICAgZm9udC1mYW1pbHk6IFwiLzUuNS4xL1wiO1xuICB9XG5cbiAgbWV0YS5mb3VuZGF0aW9uLW1xLXNtYWxsIHtcbiAgICBmb250LWZhbWlseTogXCIvXCIgKyB1bnF1b3RlKCRzbWFsbC11cCkgKyBcIi9cIjtcbiAgICB3aWR0aDogbG93ZXItYm91bmQoJHNtYWxsLXJhbmdlKTtcbiAgfVxuXG4gIG1ldGEuZm91bmRhdGlvbi1tcS1zbWFsbC1vbmx5IHtcbiAgICBmb250LWZhbWlseTogXCIvXCIgKyB1bnF1b3RlKCRzbWFsbC1vbmx5KSArIFwiL1wiO1xuICAgIHdpZHRoOiBsb3dlci1ib3VuZCgkc21hbGwtcmFuZ2UpO1xuICB9XG5cbiAgbWV0YS5mb3VuZGF0aW9uLW1xLW1lZGl1bSB7XG4gICAgZm9udC1mYW1pbHk6IFwiL1wiICsgdW5xdW90ZSgkbWVkaXVtLXVwKSArIFwiL1wiO1xuICAgIHdpZHRoOiBsb3dlci1ib3VuZCgkbWVkaXVtLXJhbmdlKTtcbiAgfVxuXG4gIG1ldGEuZm91bmRhdGlvbi1tcS1tZWRpdW0tb25seSB7XG4gICAgZm9udC1mYW1pbHk6IFwiL1wiICsgdW5xdW90ZSgkbWVkaXVtLW9ubHkpICsgXCIvXCI7XG4gICAgd2lkdGg6IGxvd2VyLWJvdW5kKCRtZWRpdW0tcmFuZ2UpO1xuICB9XG5cbiAgbWV0YS5mb3VuZGF0aW9uLW1xLWxhcmdlIHtcbiAgICBmb250LWZhbWlseTogXCIvXCIgKyB1bnF1b3RlKCRsYXJnZS11cCkgKyBcIi9cIjtcbiAgICB3aWR0aDogbG93ZXItYm91bmQoJGxhcmdlLXJhbmdlKTtcbiAgfVxuXG4gIG1ldGEuZm91bmRhdGlvbi1tcS1sYXJnZS1vbmx5IHtcbiAgICBmb250LWZhbWlseTogXCIvXCIgKyB1bnF1b3RlKCRsYXJnZS1vbmx5KSArIFwiL1wiO1xuICAgIHdpZHRoOiBsb3dlci1ib3VuZCgkbGFyZ2UtcmFuZ2UpO1xuICB9XG5cbiAgbWV0YS5mb3VuZGF0aW9uLW1xLXhsYXJnZSB7XG4gICAgZm9udC1mYW1pbHk6IFwiL1wiICsgdW5xdW90ZSgkeGxhcmdlLXVwKSArIFwiL1wiO1xuICAgIHdpZHRoOiBsb3dlci1ib3VuZCgkeGxhcmdlLXJhbmdlKTtcbiAgfVxuXG4gIG1ldGEuZm91bmRhdGlvbi1tcS14bGFyZ2Utb25seSB7XG4gICAgZm9udC1mYW1pbHk6IFwiL1wiICsgdW5xdW90ZSgkeGxhcmdlLW9ubHkpICsgXCIvXCI7XG4gICAgd2lkdGg6IGxvd2VyLWJvdW5kKCR4bGFyZ2UtcmFuZ2UpO1xuICB9XG5cbiAgbWV0YS5mb3VuZGF0aW9uLW1xLXh4bGFyZ2Uge1xuICAgIGZvbnQtZmFtaWx5OiBcIi9cIiArIHVucXVvdGUoJHh4bGFyZ2UtdXApICsgXCIvXCI7XG4gICAgd2lkdGg6IGxvd2VyLWJvdW5kKCR4eGxhcmdlLXJhbmdlKTtcbiAgfVxuXG4gIG1ldGEuZm91bmRhdGlvbi1kYXRhLWF0dHJpYnV0ZS1uYW1lc3BhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiAjeyRuYW1lc3BhY2V9O1xuICB9XG5cbiAgQGlmICRpbmNsdWRlLWh0bWwtZ2xvYmFsLWNsYXNzZXMge1xuXG4gICAgLy8gTXVzdCBiZSAxMDAlIGZvciBvZmYgY2FudmFzIHRvIHdvcmtcbiAgICBodG1sLCBib2R5IHsgaGVpZ2h0OiAxMDAlOyB9XG5cbiAgICAvLyBTZXQgYm94LXNpemluZyBnbG9iYWxseSB0byBoYW5kbGUgcGFkZGluZyBhbmQgYm9yZGVyIHdpZHRoc1xuICAgICosXG4gICAgKjpiZWZvcmUsXG4gICAgKjphZnRlciB7XG4gICAgICBAaW5jbHVkZSBib3gtc2l6aW5nKGJvcmRlci1ib3gpO1xuICAgIH1cblxuICAgIGh0bWwsXG4gICAgYm9keSB7IGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplOyB9XG5cbiAgICAvLyBEZWZhdWx0IGJvZHkgc3R5bGVzXG4gICAgYm9keSB7XG4gICAgICBiYWNrZ3JvdW5kOiAkYm9keS1iZztcbiAgICAgIGNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIGZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseTtcbiAgICAgIGZvbnQtd2VpZ2h0OiAkYm9keS1mb250LXdlaWdodDtcbiAgICAgIGZvbnQtc3R5bGU6ICRib2R5LWZvbnQtc3R5bGU7XG4gICAgICBsaW5lLWhlaWdodDogJGJhc2UtbGluZS1oZWlnaHQ7IC8vIFNldCB0byAkYmFzZS1saW5lLWhlaWdodCB0byB0YWtlIG9uIGJyb3dzZXIgZGVmYXVsdCBvZiAxNTAlXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBjdXJzb3I6ICRjdXJzb3ItYXV0by12YWx1ZTtcbiAgICB9XG5cbiAgYTpob3ZlciB7IGN1cnNvcjogJGN1cnNvci1wb2ludGVyLXZhbHVlOyB9XG5cbiAgICAvLyBHcmlkIERlZmF1bHRzIHRvIGdldCBpbWFnZXMgYW5kIGVtYmVkcyB0byB3b3JrIHByb3Blcmx5XG4gICAgaW1nIHsgbWF4LXdpZHRoOiAxMDAlOyBoZWlnaHQ6IGF1dG87IH1cblxuICAgIGltZyB7IC1tcy1pbnRlcnBvbGF0aW9uLW1vZGU6IGJpY3ViaWM7IH1cblxuICAgICNtYXBfY2FudmFzLFxuICAgIC5tYXBfY2FudmFzIHtcbiAgICAgIGltZyxcbiAgICAgIGVtYmVkLFxuICAgICAgb2JqZWN0IHsgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gTWlzY2VsbGFuZW91cyB1c2VmdWwgSFRNTCBjbGFzc2VzXG4gICAgLmxlZnQgeyBmbG9hdDogbGVmdCAhaW1wb3J0YW50OyB9XG4gICAgLnJpZ2h0IHsgZmxvYXQ6IHJpZ2h0ICFpbXBvcnRhbnQ7IH1cbiAgICAuY2xlYXJmaXggeyBAaW5jbHVkZSBjbGVhcmZpeDsgfVxuXG4gICAgLy8gSGlkZSB2aXN1YWxseSBhbmQgZnJvbSBzY3JlZW4gcmVhZGVyc1xuICAgIC5oaWRlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLy8gSGlkZSB2aXN1YWxseSBhbmQgZnJvbSBzY3JlZW4gcmVhZGVycywgYnV0IG1haW50YWluIGxheW91dFxuICAgIC5pbnZpc2libGUgeyB2aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuICAgIC8vIEZvbnQgc21vb3RoaW5nXG4gICAgLy8gQW50aWFsaWFzZWQgZm9udCBzbW9vdGhpbmcgd29ya3MgYmVzdCBmb3IgbGlnaHQgdGV4dCBvbiBhIGRhcmsgYmFja2dyb3VuZC5cbiAgICAvLyBBcHBseSB0byBzaW5nbGUgZWxlbWVudHMgaW5zdGVhZCBvZiBnbG9iYWxseSB0byBib2R5LlxuICAgIC8vIE5vdGUgdGhpcyBvbmx5IGFwcGxpZXMgdG8gd2Via2l0LWJhc2VkIGRlc2t0b3AgYnJvd3NlcnMgYW5kIEZpcmVmb3ggMjUgKGFuZCBsYXRlcikgb24gdGhlIE1hYy5cbiAgICAuYW50aWFsaWFzZWQgeyAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDsgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTsgfVxuXG4gICAgLy8gR2V0IHJpZCBvZiBnYXAgdW5kZXIgaW1hZ2VzIGJ5IG1ha2luZyB0aGVtIGRpc3BsYXk6IGlubGluZS1ibG9jazsgYnkgZGVmYXVsdFxuICAgIGltZyB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cblxuICAgIC8vXG4gICAgLy8gR2xvYmFsIHJlc2V0cyBmb3IgZm9ybXNcbiAgICAvL1xuXG4gICAgLy8gTWFrZSBzdXJlIHRleHRhcmVhIHRha2VzIG9uIGhlaWdodCBhdXRvbWF0aWNhbGx5XG4gICAgdGV4dGFyZWEgeyBoZWlnaHQ6IGF1dG87IG1pbi1oZWlnaHQ6IDUwcHg7IH1cblxuICAgIC8vIE1ha2Ugc2VsZWN0IGVsZW1lbnRzIDEwMCUgd2lkdGggYnkgZGVmYXVsdFxuICAgIHNlbGVjdCB7IHdpZHRoOiAxMDAlOyB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vIFRoaXMgaXMgdGhlIGRlZmF1bHQgaHRtbCBhbmQgYm9keSBmb250LXNpemUgZm9yIHRoZSBiYXNlIHJlbSB2YWx1ZS5cbiRyZW0tYmFzZTogMTZweCAhZGVmYXVsdDtcblxuLy8gSU1QT1JUIE9OQ0Vcbi8vIFdlIHVzZSB0aGlzIHRvIHByZXZlbnQgc3R5bGVzIGZyb20gYmVpbmcgbG9hZGVkIG11bHRpcGxlIHRpbWVzIGZvciBjb21wb25lbnRzIHRoYXQgcmVseSBvbiBvdGhlciBjb21wb25lbnRzLlxuJG1vZHVsZXM6ICgpICFkZWZhdWx0O1xuQG1peGluIGV4cG9ydHMoJG5hbWUpIHtcbiAgLy8gSW1wb3J0IGZyb20gZ2xvYmFsIHNjb3BlXG4gICRtb2R1bGVzOiAkbW9kdWxlcyAhZ2xvYmFsO1xuICAvLyBDaGVjayBpZiBhIG1vZHVsZSBpcyBhbHJlYWR5IG9uIHRoZSBsaXN0XG4gICRtb2R1bGVfaW5kZXg6IGluZGV4KCRtb2R1bGVzLCAkbmFtZSk7XG4gIEBpZiAoKCRtb2R1bGVfaW5kZXggPT0gbnVsbCkgb3IgKCRtb2R1bGVfaW5kZXggPT0gZmFsc2UpKSB7XG4gICAgJG1vZHVsZXM6IGFwcGVuZCgkbW9kdWxlcywgJG5hbWUpICFnbG9iYWw7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy9cbi8vIEBmdW5jdGlvbnNcbi8vXG5cblxuLy8gUkFOR0VTXG4vLyBXZSB1c2UgdGhlc2UgZnVuY3Rpb25zIHRvIGRlZmluZSByYW5nZXMgZm9yIHZhcmlvdXMgdGhpbmdzLCBsaWtlIG1lZGlhIHF1ZXJpZXMuXG5AZnVuY3Rpb24gbG93ZXItYm91bmQoJHJhbmdlKXtcbiAgQGlmIGxlbmd0aCgkcmFuZ2UpIDw9IDAge1xuICAgIEByZXR1cm4gMDtcbiAgfVxuICBAcmV0dXJuIG50aCgkcmFuZ2UsMSk7XG59XG5cbkBmdW5jdGlvbiB1cHBlci1ib3VuZCgkcmFuZ2UpIHtcbiAgQGlmIGxlbmd0aCgkcmFuZ2UpIDwgMiB7XG4gICAgQHJldHVybiA5OTk5OTk5OTk5OTk7XG4gIH1cbiAgQHJldHVybiBudGgoJHJhbmdlLCAyKTtcbn1cblxuLy8gU1RSSVAgVU5JVFxuLy8gSXQgc3RyaXBzIHRoZSB1bml0IG9mIG1lYXN1cmUgYW5kIHJldHVybnMgaXRcbkBmdW5jdGlvbiBzdHJpcC11bml0KCRudW0pIHtcbiAgQHJldHVybiAkbnVtIC8gKCRudW0gKiAwICsgMSk7XG59XG5cbi8vIFRFWFQgSU5QVVQgVFlQRVNcblxuQGZ1bmN0aW9uIHRleHQtaW5wdXRzKCAkdHlwZXM6IGFsbCwgJHNlbGVjdG9yOiBpbnB1dCApIHtcblxuICAgICRyZXR1cm46ICgpO1xuXG4gICAgJGFsbC10ZXh0LWlucHV0LXR5cGVzOlxuICAgICAgdGV4dFxuICAgICAgcGFzc3dvcmRcbiAgICAgIGRhdGVcbiAgICAgIGRhdGV0aW1lXG4gICAgICBkYXRldGltZS1sb2NhbFxuICAgICAgbW9udGhcbiAgICAgIHdlZWtcbiAgICAgIGVtYWlsXG4gICAgICBudW1iZXJcbiAgICAgIHNlYXJjaFxuICAgICAgdGVsXG4gICAgICB0aW1lXG4gICAgICB1cmxcbiAgICAgIGNvbG9yXG4gICAgICB0ZXh0YXJlYTtcblxuICAgIEBpZiAkdHlwZXMgPT0gYWxsIHsgJHR5cGVzOiAkYWxsLXRleHQtaW5wdXQtdHlwZXM7IH1cblxuICAgIEBlYWNoICR0eXBlIGluICR0eXBlcyB7XG4gICAgICAgIEBpZiAkdHlwZSA9PSB0ZXh0YXJlYSB7XG4gICAgICAgICAgICBAaWYgJHNlbGVjdG9yID09IGlucHV0IHtcbiAgICAgICAgICAgICAgJHJldHVybjogYXBwZW5kKCRyZXR1cm4sIHVucXVvdGUoJyN7JHR5cGV9JyksIGNvbW1hKVxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICRyZXR1cm46IGFwcGVuZCgkcmV0dXJuLCB1bnF1b3RlKCcjeyR0eXBlfSN7JHNlbGVjdG9yfScpLCBjb21tYSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAkcmV0dXJuOiBhcHBlbmQoJHJldHVybiwgdW5xdW90ZSgnI3skc2VsZWN0b3J9W3R5cGU9XCIjeyR0eXBlfVwiXScpLCBjb21tYSlcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEByZXR1cm4gJHJldHVybjtcblxufVxuXG4vLyBDT05WRVJUIFRPIFJFTVxuQGZ1bmN0aW9uIGNvbnZlcnQtdG8tcmVtKCR2YWx1ZSwgJGJhc2UtdmFsdWU6ICRyZW0tYmFzZSkgIHtcbiAgJHZhbHVlOiBzdHJpcC11bml0KCR2YWx1ZSkgLyBzdHJpcC11bml0KCRiYXNlLXZhbHVlKSAqIDFyZW07XG4gIEBpZiAoJHZhbHVlID09IDByZW0pIHsgJHZhbHVlOiAwOyB9IC8vIFR1cm4gMHJlbSBpbnRvIDBcbiAgQHJldHVybiAkdmFsdWU7XG59XG5cbkBmdW5jdGlvbiBkYXRhKCRhdHRyKSB7XG4gIEBpZiAkbmFtZXNwYWNlIHtcbiAgICBAcmV0dXJuICdbZGF0YS0nICsgJG5hbWVzcGFjZSArICctJyArICRhdHRyICsgJ10nO1xuICB9XG5cbiAgQHJldHVybiAnW2RhdGEtJyArICRhdHRyICsgJ10nO1xufVxuXG4vLyBSRU0gQ0FMQ1xuXG4vLyBOZXcgU3ludGF4LCBhbGxvd3MgdG8gb3B0aW9uYWxseSBjYWxjdWxhdGUgb24gYSBkaWZmZXJlbnQgYmFzZSB2YWx1ZSB0byBjb3VudGVyIGNvbXBvdW5kaW5nIGVmZmVjdCBvZiByZW0ncy5cbi8vIENhbGwgd2l0aCAxLCAyLCAzIG9yIDQgcGFyYW1ldGVycywgJ3B4JyBpcyBub3QgcmVxdWlyZWQgYnV0IHN1cHBvcnRlZDpcbi8vXG4vLyAgIHJlbS1jYWxjKDEwIDIwIDMwcHggNDApO1xuLy9cbi8vIFNwYWNlIGRlbGltaXRlZCwgaWYgeW91IHdhbnQgdG8gZGVsaW1pdCB1c2luZyBjb21tYSdzLCB3cmFwIGl0IGluIGFub3RoZXIgcGFpciBvZiBicmFja2V0c1xuLy9cbi8vICAgcmVtLWNhbGMoKDEwLCAyMCwgMzAsIDQwcHgpKTtcbi8vXG4vLyBPcHRpb25hbGx5IGNhbGwgd2l0aCBhIGRpZmZlcmVudCBiYXNlIChlZzogOHB4KSB0byBjYWxjdWxhdGUgcmVtLlxuLy9cbi8vICAgcmVtLWNhbGMoMTZweCAzMnB4IDQ4cHgsIDhweCk7XG4vL1xuLy8gSWYgeW91IHJlcXVpcmUgdG8gY29tbWEgc2VwYXJhdGUgeW91ciBsaXN0XG4vL1xuLy8gICByZW0tY2FsYygoMTZweCwgMzJweCwgNDgpLCA4cHgpO1xuXG5AZnVuY3Rpb24gcmVtLWNhbGMoJHZhbHVlcywgJGJhc2UtdmFsdWU6ICRyZW0tYmFzZSkge1xuICAkbWF4OiBsZW5ndGgoJHZhbHVlcyk7XG5cbiAgQGlmICRtYXggPT0gMSB7IEByZXR1cm4gY29udmVydC10by1yZW0obnRoKCR2YWx1ZXMsIDEpLCAkYmFzZS12YWx1ZSk7IH1cblxuICAkcmVtVmFsdWVzOiAoKTtcbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbWF4IHtcbiAgICAkcmVtVmFsdWVzOiBhcHBlbmQoJHJlbVZhbHVlcywgY29udmVydC10by1yZW0obnRoKCR2YWx1ZXMsICRpKSwgJGJhc2UtdmFsdWUpKTtcbiAgfVxuICBAcmV0dXJuICRyZW1WYWx1ZXM7XG59XG5cbi8vIE9MRCBFTSBDQUxDXG4vLyBEZXByZWNhdGVkOiBXZSdsbCBkcm9wIHN1cHBvcnQgZm9yIHRoaXMgaW4gNS4xLjAsIHVzZSByZW0tY2FsYygpXG5AZnVuY3Rpb24gZW1DYWxjKCR2YWx1ZXMpe1xuICBAcmV0dXJuIHJlbS1jYWxjKCR2YWx1ZXMpO1xufVxuXG4vLyBPTEQgRU0gQ0FMQ1xuLy8gRGVwcmVjYXRlZDogV2UnbGwgZHJvcCBzdXBwb3J0IGZvciB0aGlzIGluIDUuMS4wLCB1c2UgcmVtLWNhbGMoKVxuQGZ1bmN0aW9uIGVtLWNhbGMoJHZhbHVlcyl7XG4gIEByZXR1cm4gcmVtLWNhbGMoJHZhbHVlcyk7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AaW1wb3J0IFwiZ2xvYmFsXCI7XG5cbi8vXG4vLyBCbG9jayBHcmlkIFZhcmlhYmxlc1xuLy9cbiRpbmNsdWRlLWh0bWwtYmxvY2stZ3JpZC1jbGFzc2VzOiAkaW5jbHVkZS1odG1sLWNsYXNzZXMgIWRlZmF1bHQ7XG4kaW5jbHVkZS14bC1odG1sLWJsb2NrLWdyaWQtY2xhc3NlczogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGlzIHRvIGNvbnRyb2wgdGhlIG1heGltdW0gbnVtYmVyIG9mIGJsb2NrIGdyaWQgZWxlbWVudHMgcGVyIHJvd1xuJGJsb2NrLWdyaWQtZWxlbWVudHM6IDEyICFkZWZhdWx0O1xuJGJsb2NrLWdyaWQtZGVmYXVsdC1zcGFjaW5nOiByZW0tY2FsYygyMCkgIWRlZmF1bHQ7XG5cbiRhbGlnbi1ibG9jay1ncmlkLXRvLWdyaWQ6IGZhbHNlICFkZWZhdWx0O1xuQGlmICRhbGlnbi1ibG9jay1ncmlkLXRvLWdyaWQge1xuICAkYmxvY2stZ3JpZC1kZWZhdWx0LXNwYWNpbmc6ICRjb2x1bW4tZ3V0dGVyO1xufVxuXG4vLyBFbmFibGVzIG1lZGlhIHF1ZXJpZXMgZm9yIGJsb2NrLWdyaWQgY2xhc3Nlcy4gU2V0IHRvIGZhbHNlIGlmIHdyaXRpbmcgc2VtYW50aWMgSFRNTC5cbiRibG9jay1ncmlkLW1lZGlhLXF1ZXJpZXM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vXG4vLyBCbG9jayBHcmlkIE1peGluc1xuLy9cblxuLy8gQ3JlYXRlIGEgY3VzdG9tIGJsb2NrIGdyaWRcbi8vXG4vLyAkcGVyLXJvdyAtICMgb2YgaXRlbXMgdG8gZGlzcGxheSBwZXIgcm93LiBEZWZhdWx0OiBmYWxzZS5cbi8vICRzcGFjaW5nIC0gIyBvZiBlbXMgdG8gdXNlIGFzIHBhZGRpbmcgb24gZWFjaCBibG9jayBpdGVtLiBEZWZhdWx0OiByZW0tY2FsYygyMCkuXG4vLyAkaW5jbHVkZS1zcGFjaW5nIC0gQWRkcyBwYWRkaW5nIHRvIG91ciBsaXN0IGl0ZW0uIERlZmF1bHQ6IHRydWUuXG4vLyAkYmFzZS1zdHlsZSAtIEFwcGx5IGEgYmFzZSBzdHlsZSB0byBibG9jayBncmlkLiBEZWZhdWx0OiB0cnVlLlxuQG1peGluIGJsb2NrLWdyaWQoXG4gICRwZXItcm93OmZhbHNlLFxuICAkc3BhY2luZzokYmxvY2stZ3JpZC1kZWZhdWx0LXNwYWNpbmcsXG4gICRpbmNsdWRlLXNwYWNpbmc6dHJ1ZSxcbiAgJGJhc2Utc3R5bGU6dHJ1ZSkge1xuXG4gIEBpZiAkYmFzZS1zdHlsZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogMDtcbiAgICBAaWYgJGFsaWduLWJsb2NrLWdyaWQtdG8tZ3JpZCB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgfSBAZWxzZSB7XG4gICAgICBtYXJnaW46IDAgKC0kc3BhY2luZy8yKTtcbiAgICB9XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG5cbiAgICAmPmxpIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgZmxvYXQ6ICRkZWZhdWx0LWZsb2F0O1xuICAgICAgQGlmICRpbmNsdWRlLXNwYWNpbmcge1xuICAgICAgICBwYWRkaW5nOiAwICgkc3BhY2luZy8yKSAkc3BhY2luZztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaWYgJHBlci1yb3cge1xuICAgICY+bGkge1xuICAgICAgd2lkdGg6IDEwMCUvJHBlci1yb3c7XG4gICAgICBAaWYgJGluY2x1ZGUtc3BhY2luZyB7XG4gICAgICAgIHBhZGRpbmc6IDAgKCRzcGFjaW5nLzIpICRzcGFjaW5nO1xuICAgICAgfVxuICAgICAgbGlzdC1zdHlsZTogbm9uZTtcblxuICAgICAgJjpudGgtb2YtdHlwZSgxbikgeyBjbGVhcjogbm9uZTsgfVxuICAgICAgJjpudGgtb2YtdHlwZSgjeyRwZXItcm93fW4rMSkgeyBjbGVhcjogYm90aDsgfVxuICAgICAgQGlmICRhbGlnbi1ibG9jay1ncmlkLXRvLWdyaWQge1xuICAgICAgICBAaW5jbHVkZSBibG9jay1ncmlkLWFsaWduZWQoJHBlci1yb3csICRzcGFjaW5nKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGJsb2NrLWdyaWQtYWxpZ25lZCgkcGVyLXJvdywgJHNwYWNpbmcpIHtcbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkYmxvY2stZ3JpZC1lbGVtZW50cyB7XG4gICAgQGlmICRwZXItcm93ID49ICRpIHtcbiAgICAgICRncmlkLWNvbHVtbjogJysnICsgJGk7XG4gICAgICBAaWYgJHBlci1yb3cgPT0gJGkge1xuICAgICAgICAkZ3JpZC1jb2x1bW46ICcnO1xuICAgICAgfVxuICAgICAgJjpudGgtb2YtdHlwZSgjeyRwZXItcm93fW4je3VucXVvdGUoJGdyaWQtY29sdW1uKX0pIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAoJHNwYWNpbmcgLSAoKCRzcGFjaW5nIC8gJHBlci1yb3cpICogKCRwZXItcm93IC0gKCRpIC0gMSkpKSk7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6ICgkc3BhY2luZyAtICgoJHNwYWNpbmcgLyAkcGVyLXJvdykgKiAkaSkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBHZW5lcmF0ZSBwcmVzZW50YXRpb25hbCBtYXJrdXAgZm9yIGJsb2NrIGdyaWQuXG4vL1xuLy8gJHNpemUgLSBOYW1lIG9mIGNsYXNzIHRvIHVzZSwgaS5lLiBcImxhcmdlXCIgd2lsbCBnZW5lcmF0ZSAubGFyZ2UtYmxvY2stZ3JpZC0xLCAubGFyZ2UtYmxvY2stZ3JpZC0yLCBldGMuXG5AbWl4aW4gYmxvY2stZ3JpZC1odG1sLWNsYXNzZXMoJHNpemUsJGluY2x1ZGUtc3BhY2luZykge1xuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRibG9jay1ncmlkLWVsZW1lbnRzIHtcbiAgICAuI3skc2l6ZX0tYmxvY2stZ3JpZC0jeygkaSl9IHtcbiAgICAgIEBpbmNsdWRlIGJsb2NrLWdyaWQoJGksJGJsb2NrLWdyaWQtZGVmYXVsdC1zcGFjaW5nLCRpbmNsdWRlLXNwYWNpbmcsZmFsc2UpO1xuICAgIH1cbiAgfVxufVxuXG5AaW5jbHVkZSBleHBvcnRzKFwiYmxvY2stZ3JpZFwiKSB7XG4gIEBpZiAkaW5jbHVkZS1odG1sLWJsb2NrLWdyaWQtY2xhc3NlcyB7XG5cbiAgICBbY2xhc3MqPVwiYmxvY2stZ3JpZC1cIl0geyBAaW5jbHVkZSBibG9jay1ncmlkOyB9XG5cbiAgICBAaWYgJGJsb2NrLWdyaWQtbWVkaWEtcXVlcmllcyB7XG4gICAgICBAbWVkaWEgI3skc21hbGwtdXB9IHtcbiAgICAgICAgQGluY2x1ZGUgYmxvY2stZ3JpZC1odG1sLWNsYXNzZXMoJHNpemU6c21hbGwsJGluY2x1ZGUtc3BhY2luZzpmYWxzZSk7XG4gICAgICB9XG5cbiAgICAgIEBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAgICAgQGluY2x1ZGUgYmxvY2stZ3JpZC1odG1sLWNsYXNzZXMoJHNpemU6bWVkaXVtLCRpbmNsdWRlLXNwYWNpbmc6ZmFsc2UpO1xuICAgICAgfVxuXG4gICAgICBAbWVkaWEgI3skbGFyZ2UtdXB9IHtcbiAgICAgICAgQGluY2x1ZGUgYmxvY2stZ3JpZC1odG1sLWNsYXNzZXMoJHNpemU6bGFyZ2UsJGluY2x1ZGUtc3BhY2luZzpmYWxzZSk7XG4gICAgICB9XG5cbiAgICAgIEBpZiAkaW5jbHVkZS14bC1odG1sLWJsb2NrLWdyaWQtY2xhc3NlcyB7XG4gICAgICAgIEBtZWRpYSAjeyR4bGFyZ2UtdXB9IHtcbiAgICAgICAgICBAaW5jbHVkZSBibG9jay1ncmlkLWh0bWwtY2xhc3Nlcygkc2l6ZTp4bGFyZ2UsJGluY2x1ZGUtc3BhY2luZzpmYWxzZSk7XG4gICAgICAgIH1cblxuICAgICAgICBAbWVkaWEgI3skeHhsYXJnZS11cH0ge1xuICAgICAgICAgIEBpbmNsdWRlIGJsb2NrLWdyaWQtaHRtbC1jbGFzc2VzKCRzaXplOnh4bGFyZ2UsJGluY2x1ZGUtc3BhY2luZzpmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBpbXBvcnQgXCJnbG9iYWxcIjtcblxuLy9cbi8vIEJyZWFkY3J1bWIgVmFyaWFibGVzXG4vL1xuJGluY2x1ZGUtaHRtbC1uYXYtY2xhc3NlczogJGluY2x1ZGUtaHRtbC1jbGFzc2VzICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhpcyB0byBzZXQgdGhlIGJhY2tncm91bmQgY29sb3IgZm9yIHRoZSBicmVhZGNydW1iIGNvbnRhaW5lci5cbiRjcnVtYi1iZzogc2NhbGUtY29sb3IoJHNlY29uZGFyeS1jb2xvciwgJGxpZ2h0bmVzczogNTUlKSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIHNldCB0aGUgcGFkZGluZyBhcm91bmQgdGhlIGJyZWFkY3J1bWJzLlxuJGNydW1iLXBhZGRpbmc6IHJlbS1jYWxjKDkgMTQgOSkgIWRlZmF1bHQ7XG4kY3J1bWItc2lkZS1wYWRkaW5nOiByZW0tY2FsYygxMikgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIGJvcmRlciBzdHlsZXMuXG4kY3J1bWItZnVuY3Rpb24tZmFjdG9yOiAtMTAlICFkZWZhdWx0O1xuJGNydW1iLWJvcmRlci1zaXplOiAxcHggIWRlZmF1bHQ7XG4kY3J1bWItYm9yZGVyLXN0eWxlOiBzb2xpZCAhZGVmYXVsdDtcbiRjcnVtYi1ib3JkZXItY29sb3I6IHNjYWxlLWNvbG9yKCRjcnVtYi1iZywgJGxpZ2h0bmVzczogJGNydW1iLWZ1bmN0aW9uLWZhY3RvcikgIWRlZmF1bHQ7XG4kY3J1bWItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIHNldCB2YXJpb3VzIHRleHQgc3R5bGVzIGZvciBicmVhZGNydW1icy5cbiRjcnVtYi1mb250LXNpemU6IHJlbS1jYWxjKDExKSAhZGVmYXVsdDtcbiRjcnVtYi1mb250LWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcbiRjcnVtYi1mb250LWNvbG9yLWN1cnJlbnQ6ICRvaWwgIWRlZmF1bHQ7XG4kY3J1bWItZm9udC1jb2xvci11bmF2YWlsYWJsZTogJGFsdW1pbnVtICFkZWZhdWx0O1xuJGNydW1iLWZvbnQtdHJhbnNmb3JtOiB1cHBlcmNhc2UgIWRlZmF1bHQ7XG4kY3J1bWItbGluay1kZWNvcjogdW5kZXJsaW5lICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCB0aGUgc2xhc2ggYmV0d2VlbiBicmVhZGNydW1ic1xuJGNydW1iLXNsYXNoLWNvbG9yOiAkYmFzZSAhZGVmYXVsdDtcbiRjcnVtYi1zbGFzaDogXCIvXCIgIWRlZmF1bHQ7XG5cbi8vXG4vLyBCcmVhZGNydW1iIE1peGluc1xuLy9cblxuLy8gV2UgdXNlIHRoaXMgbWl4aW4gdG8gY3JlYXRlIGEgY29udGFpbmVyIGFyb3VuZCBvdXIgYnJlYWRjcnVtYnNcbkBtaXhpbiBjcnVtYi1jb250YWluZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogJGNydW1iLXBhZGRpbmc7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgYm9yZGVyLXN0eWxlOiAkY3J1bWItYm9yZGVyLXN0eWxlO1xuICBib3JkZXItd2lkdGg6ICRjcnVtYi1ib3JkZXItc2l6ZTtcblxuICAvLyBXZSBjb250cm9sIHdoaWNoIGJhY2tncm91bmQgY29sb3IgYW5kIGJvcmRlciBjb21lIHRocm91Z2guXG4gIGJhY2tncm91bmQtY29sb3I6ICRjcnVtYi1iZztcbiAgYm9yZGVyLWNvbG9yOiAkY3J1bWItYm9yZGVyLWNvbG9yO1xufVxuXG4vLyBXZSB1c2UgdGhpcyBtaXhpbiB0byBjcmVhdGUgYnJlYWRjcnVtYiBzdHlsZXMgZnJvbSBsaXN0IGl0ZW1zLlxuQG1peGluIGNydW1icyB7XG5cbiAgLy8gQSBub3JtYWwgc3RhdGUgd2lsbCBtYWtlIHRoZSBsaW5rcyBsb29rIGFuZCBhY3QgbGlrZSBjbGlja2FibGUgYnJlYWRjcnVtYnMuXG4gIG1hcmdpbjogMDtcbiAgZmxvYXQ6ICRkZWZhdWx0LWZsb2F0O1xuICBmb250LXNpemU6ICRjcnVtYi1mb250LXNpemU7XG4gIGxpbmUtaGVpZ2h0OiAkY3J1bWItZm9udC1zaXplO1xuICB0ZXh0LXRyYW5zZm9ybTogJGNydW1iLWZvbnQtdHJhbnNmb3JtO1xuICBjb2xvcjogJGNydW1iLWZvbnQtY29sb3I7XG5cbiAgJjpob3ZlciBhLCAmOmZvY3VzIGEgeyB0ZXh0LWRlY29yYXRpb246ICRjcnVtYi1saW5rLWRlY29yOyB9XG5cbiAgYSB7XG4gICAgY29sb3I6ICRjcnVtYi1mb250LWNvbG9yO1xuICB9XG5cbiAgLy8gQ3VycmVudCBpcyBmb3IgdGhlIGxpbmsgb2YgdGhlIGN1cnJlbnQgcGFnZVxuICAmLmN1cnJlbnQge1xuICAgIGN1cnNvcjogJGN1cnNvci1kZWZhdWx0LXZhbHVlO1xuICAgIGNvbG9yOiAkY3J1bWItZm9udC1jb2xvci1jdXJyZW50O1xuICAgIGEge1xuICAgICAgY3Vyc29yOiAkY3Vyc29yLWRlZmF1bHQtdmFsdWU7XG4gICAgICBjb2xvcjogJGNydW1iLWZvbnQtY29sb3ItY3VycmVudDtcbiAgICB9XG5cbiAgICAmOmhvdmVyLCAmOmhvdmVyIGEsXG4gICAgJjpmb2N1cywgJjpmb2N1cyBhIHsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gIH1cblxuICAvLyBVbmF2YWlsYWJsZSByZW1vdmVkIGNvbG9yIGFuZCBsaW5rIHN0eWxlcyBzbyBpdCBsb29rcyBpbmFjdGl2ZS5cbiAgJi51bmF2YWlsYWJsZSB7XG4gICAgY29sb3I6ICRjcnVtYi1mb250LWNvbG9yLXVuYXZhaWxhYmxlO1xuICAgIGEgeyBjb2xvcjogJGNydW1iLWZvbnQtY29sb3ItdW5hdmFpbGFibGU7IH1cblxuICAgICY6aG92ZXIsXG4gICAgJjpob3ZlciBhLFxuICAgICY6Zm9jdXMsXG4gICAgYTpmb2N1cyB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBjb2xvcjogJGNydW1iLWZvbnQtY29sb3ItdW5hdmFpbGFibGU7XG4gICAgICBjdXJzb3I6ICRjdXJzb3ItZGlzYWJsZWQtdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgJjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiI3skY3J1bWItc2xhc2h9XCI7XG4gICAgY29sb3I6ICRjcnVtYi1zbGFzaC1jb2xvcjtcbiAgICBtYXJnaW46IDAgJGNydW1iLXNpZGUtcGFkZGluZztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxcHg7XG4gIH1cblxuICAmOmZpcnN0LWNoaWxkOmJlZm9yZSB7XG4gICAgY29udGVudDogXCIgXCI7XG4gICAgbWFyZ2luOiAwO1xuICB9XG59XG5cbkBpbmNsdWRlIGV4cG9ydHMoXCJicmVhZGNydW1ic1wiKSB7XG4gIEBpZiAkaW5jbHVkZS1odG1sLW5hdi1jbGFzc2VzIHtcbiAgICAuYnJlYWRjcnVtYnMge1xuICAgICAgQGluY2x1ZGUgY3J1bWItY29udGFpbmVyO1xuICAgICAgQGluY2x1ZGUgcmFkaXVzKCRjcnVtYi1yYWRpdXMpO1xuXG4gICAgICAmPioge1xuICAgICAgICBAaW5jbHVkZSBjcnVtYnM7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8qIEFjY2Vzc2liaWxpdHkgLSBoaWRlcyB0aGUgZm9yd2FyZCBzbGFzaCAqL1xuW2FyaWEtbGFiZWw9XCJicmVhZGNydW1ic1wiXSBbYXJpYS1oaWRkZW49XCJ0cnVlXCJdOmFmdGVyIHtcbiAgY29udGVudDogXCIvXCI7XG4gIH1cbiIsIi8vIEZvdW5kYXRpb24gYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBpbXBvcnQgXCJnbG9iYWxcIjtcbkBpbXBvcnQgXCJidXR0b25zXCI7XG5cbi8vXG4vLyBAdmFyaWFibGVzXG4vL1xuJGluY2x1ZGUtaHRtbC1mb3JtLWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcyAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoaXMgdG8gc2V0IHRoZSBiYXNlIGZvciBsb3RzIG9mIGZvcm0gc3BhY2luZyBhbmQgcG9zaXRpb25pbmcgc3R5bGVzXG4kZm9ybS1zcGFjaW5nOiByZW0tY2FsYygxNikgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBzdHlsZSB0aGUgbGFiZWxzIGluIGRpZmZlcmVudCB3YXlzXG4kZm9ybS1sYWJlbC1wb2ludGVyOiBwb2ludGVyICFkZWZhdWx0O1xuJGZvcm0tbGFiZWwtZm9udC1zaXplOiByZW0tY2FsYygxNCkgIWRlZmF1bHQ7XG4kZm9ybS1sYWJlbC1mb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcbiRmb3JtLWxhYmVsLWxpbmUtaGVpZ2h0OiAxLjUgIWRlZmF1bHQ7XG4kZm9ybS1sYWJlbC1mb250LWNvbG9yOiBzY2FsZS1jb2xvcigkYmxhY2ssICRsaWdodG5lc3M6IDMwJSkgIWRlZmF1bHQ7XG4kZm9ybS1sYWJlbC1zbWFsbC10cmFuc2Zvcm06IGNhcGl0YWxpemUgIWRlZmF1bHQ7XG4kZm9ybS1sYWJlbC1ib3R0b20tbWFyZ2luOiAwICFkZWZhdWx0O1xuJGlucHV0LWZvbnQtZmFtaWx5OiBpbmhlcml0ICFkZWZhdWx0O1xuJGlucHV0LWZvbnQtY29sb3I6IHJnYmEoMCwwLDAsMC43NSkgIWRlZmF1bHQ7XG4kaW5wdXQtZm9udC1zaXplOiByZW0tY2FsYygxNCkgIWRlZmF1bHQ7XG4kaW5wdXQtYmctY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcbiRpbnB1dC1mb2N1cy1iZy1jb2xvcjogc2NhbGUtY29sb3IoJHdoaXRlLCAkbGlnaHRuZXNzOiAtMiUpICFkZWZhdWx0O1xuJGlucHV0LWJvcmRlci1jb2xvcjogc2NhbGUtY29sb3IoJHdoaXRlLCAkbGlnaHRuZXNzOiAtMjAlKSAhZGVmYXVsdDtcbiRpbnB1dC1mb2N1cy1ib3JkZXItY29sb3I6IHNjYWxlLWNvbG9yKCR3aGl0ZSwgJGxpZ2h0bmVzczogLTQwJSkgIWRlZmF1bHQ7XG4kaW5wdXQtYm9yZGVyLXN0eWxlOiBzb2xpZCAhZGVmYXVsdDtcbiRpbnB1dC1ib3JkZXItd2lkdGg6IDFweCAhZGVmYXVsdDtcbiRpbnB1dC1ib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcbiRpbnB1dC1kaXNhYmxlZC1iZzogJGdhaW5zYm9ybyAhZGVmYXVsdDtcbiRpbnB1dC1kaXNhYmxlZC1jdXJzb3I6ICRjdXJzb3ItZGVmYXVsdC12YWx1ZSAhZGVmYXVsdDtcbiRpbnB1dC1ib3gtc2hhZG93OiBpbnNldCAwIDFweCAycHggcmdiYSgwLDAsMCwwLjEpICFkZWZhdWx0O1xuJGlucHV0LWluY2x1ZGUtZ2xvd2luZy1lZmZlY3Q6IGZhbHNlICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gc3R5bGUgdGhlIGZpZWxkc2V0IGJvcmRlciBhbmQgc3BhY2luZy5cbiRmaWVsZHNldC1ib3JkZXItc3R5bGU6IHNvbGlkICFkZWZhdWx0O1xuJGZpZWxkc2V0LWJvcmRlci13aWR0aDogMXB4ICFkZWZhdWx0O1xuJGZpZWxkc2V0LWJvcmRlci1jb2xvcjogJGdhaW5zYm9ybyAhZGVmYXVsdDtcbiRmaWVsZHNldC1wYWRkaW5nOiByZW0tY2FsYygyMCkgIWRlZmF1bHQ7XG4kZmllbGRzZXQtbWFyZ2luOiByZW0tY2FsYygxOCAwKSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIHN0eWxlIHRoZSBsZWdlbmRzIHdoZW4geW91IHVzZSB0aGVtXG4kbGVnZW5kLWJnOiAkd2hpdGUgIWRlZmF1bHQ7XG4kbGVnZW5kLWZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtYm9sZCAhZGVmYXVsdDtcbiRsZWdlbmQtcGFkZGluZzogcmVtLWNhbGMoMCAzKSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIHN0eWxlIHRoZSBwcmVmaXggYW5kIHBvc3RmaXggaW5wdXQgZWxlbWVudHNcbiRpbnB1dC1wcmVmaXgtYmc6IHNjYWxlLWNvbG9yKCR3aGl0ZSwgJGxpZ2h0bmVzczogLTUlKSAhZGVmYXVsdDtcbiRpbnB1dC1wcmVmaXgtYm9yZGVyLWNvbG9yOiBzY2FsZS1jb2xvcigkd2hpdGUsICRsaWdodG5lc3M6IC0yMCUpICFkZWZhdWx0O1xuJGlucHV0LXByZWZpeC1ib3JkZXItc2l6ZTogMXB4ICFkZWZhdWx0O1xuJGlucHV0LXByZWZpeC1ib3JkZXItdHlwZTogc29saWQgIWRlZmF1bHQ7XG4kaW5wdXQtcHJlZml4LW92ZXJmbG93OiB2aXNpYmxlICFkZWZhdWx0O1xuJGlucHV0LXByZWZpeC1mb250LWNvbG9yOiAkb2lsICFkZWZhdWx0O1xuJGlucHV0LXByZWZpeC1mb250LWNvbG9yLWFsdDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhpcyBzZXR0aW5nIHRvIHR1cm4gb24vb2ZmIEhUTUw1IG51bWJlciBzcGlubmVycyAodGhlIHVwL2Rvd24gYXJyb3dzKVxuJGlucHV0LW51bWJlci1zcGlubmVyczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIHN0eWxlIHRoZSBlcnJvciBzdGF0ZXMgZm9yIGlucHV0cyBhbmQgbGFiZWxzXG4kaW5wdXQtZXJyb3ItbWVzc2FnZS1wYWRkaW5nOiByZW0tY2FsYyg2IDkgOSkgIWRlZmF1bHQ7XG4kaW5wdXQtZXJyb3ItbWVzc2FnZS10b3A6IC0xcHggIWRlZmF1bHQ7XG4kaW5wdXQtZXJyb3ItbWVzc2FnZS1mb250LXNpemU6IHJlbS1jYWxjKDEyKSAhZGVmYXVsdDtcbiRpbnB1dC1lcnJvci1tZXNzYWdlLWZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuJGlucHV0LWVycm9yLW1lc3NhZ2UtZm9udC1zdHlsZTogaXRhbGljICFkZWZhdWx0O1xuJGlucHV0LWVycm9yLW1lc3NhZ2UtZm9udC1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuJGlucHV0LWVycm9yLW1lc3NhZ2UtYmctY29sb3I6ICRhbGVydC1jb2xvciAhZGVmYXVsdDtcbiRpbnB1dC1lcnJvci1tZXNzYWdlLWZvbnQtY29sb3ItYWx0OiAkb2lsICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhpcyB0byBzdHlsZSB0aGUgZ2xvd2luZyBlZmZlY3Qgb2YgaW5wdXRzIHdoZW4gZm9jdXNlZFxuJGdsb3dpbmctZWZmZWN0LWZhZGUtdGltZTogMC40NXMgIWRlZmF1bHQ7XG4kZ2xvd2luZy1lZmZlY3QtY29sb3I6ICRpbnB1dC1mb2N1cy1ib3JkZXItY29sb3IgIWRlZmF1bHQ7XG5cbi8vIFNlbGVjdCB2YXJpYWJsZXNcbiRzZWxlY3QtYmctY29sb3I6ICRnaG9zdCAhZGVmYXVsdDtcbiRzZWxlY3QtaG92ZXItYmctY29sb3I6IHNjYWxlLWNvbG9yKCRzZWxlY3QtYmctY29sb3IsICRsaWdodG5lc3M6IC0zJSkgIWRlZmF1bHQ7XG5cbi8vXG4vLyBATUlYSU5TXG4vL1xuXG4vLyBXZSB1c2UgdGhpcyBtaXhpbiB0byBnaXZlIHVzIGZvcm0gc3R5bGVzIGZvciByb3dzIGluc2lkZSBvZiBmb3Jtc1xuQG1peGluIGZvcm0tcm93LWJhc2Uge1xuICAucm93IHsgbWFyZ2luOiAwICgoLSRmb3JtLXNwYWNpbmcpIC8gMik7XG5cbiAgICAuY29sdW1uLFxuICAgIC5jb2x1bW5zIHsgcGFkZGluZzogMCAoJGZvcm0tc3BhY2luZyAvIDIpOyB9XG5cbiAgICAvLyBVc2UgdGhpcyB0byBjb2xsYXBzZSB0aGUgbWFyZ2lucyBvZiBhIGZvcm0gcm93XG4gICAgJi5jb2xsYXBzZSB7IG1hcmdpbjogMDtcblxuICAgICAgLmNvbHVtbixcbiAgICAgIC5jb2x1bW5zIHsgcGFkZGluZzogMDsgfVxuICAgICAgaW5wdXQge1xuICAgICAgICBAaW5jbHVkZSBzaWRlLXJhZGl1cygkb3Bwb3NpdGUtZGlyZWN0aW9uLCAwKTtcbiAgICAgIH1cblxuICAgIH1cbiAgfVxuICBpbnB1dC5jb2x1bW4sXG4gIGlucHV0LmNvbHVtbnMsXG4gIHRleHRhcmVhLmNvbHVtbixcbiAgdGV4dGFyZWEuY29sdW1ucyB7IHBhZGRpbmctI3skZGVmYXVsdC1mbG9hdH06ICgkZm9ybS1zcGFjaW5nIC8gMik7IH1cbn1cblxuLy8gQE1JWElOXG4vL1xuLy8gV2UgdXNlIHRoaXMgbWl4aW4gdG8gZ2l2ZSBhbGwgYmFzaWMgZm9ybSBlbGVtZW50cyB0aGVpciBzdHlsZVxuQG1peGluIGZvcm0tZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1iZy1jb2xvcjtcbiAgZm9udC1mYW1pbHk6ICRpbnB1dC1mb250LWZhbWlseTtcbiAgYm9yZGVyOiB7XG4gICAgc3R5bGU6ICRpbnB1dC1ib3JkZXItc3R5bGU7XG4gICAgd2lkdGg6ICRpbnB1dC1ib3JkZXItd2lkdGg7XG4gICAgY29sb3I6ICRpbnB1dC1ib3JkZXItY29sb3I7XG4gIH1cbiAgYm94LXNoYWRvdzogJGlucHV0LWJveC1zaGFkb3c7XG4gIGNvbG9yOiAkaW5wdXQtZm9udC1jb2xvcjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogJGlucHV0LWZvbnQtc2l6ZTtcbiAgbWFyZ2luOiAwIDAgJGZvcm0tc3BhY2luZyAwO1xuICBwYWRkaW5nOiAkZm9ybS1zcGFjaW5nIC8gMjtcbiAgaGVpZ2h0OiAoJGlucHV0LWZvbnQtc2l6ZSArICgkZm9ybS1zcGFjaW5nICogMS41KSAtIHJlbS1jYWxjKDEpKTtcbiAgd2lkdGg6IDEwMCU7XG4gIEBpbmNsdWRlIGJveC1zaXppbmcoYm9yZGVyLWJveCk7XG4gIEBpZiAkaW5wdXQtaW5jbHVkZS1nbG93aW5nLWVmZmVjdCB7XG4gICAgQGluY2x1ZGUgYmxvY2stZ2xvd2luZy1lZmZlY3QoZm9jdXMsICRnbG93aW5nLWVmZmVjdC1mYWRlLXRpbWUsICRnbG93aW5nLWVmZmVjdC1jb2xvcik7XG4gIH1cbiAgLy8gQmFzaWMgZm9jdXMgc3R5bGVzXG4gICY6Zm9jdXMge1xuICAgIGJhY2tncm91bmQ6ICRpbnB1dC1mb2N1cy1iZy1jb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRpbnB1dC1mb2N1cy1ib3JkZXItY29sb3I7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgfVxuICAvLyBEaXNiYWxlZCBTdHlsZXNcbiAgJjpkaXNhYmxlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LWRpc2FibGVkLWJnO1xuICAgIGN1cnNvcjogJGlucHV0LWRpc2FibGVkLWN1cnNvcjtcbiAgfVxuXG4gIC8vIERpc2FibGVkIGJhY2tncm91bmQgaW5wdXQgYmFja2dyb3VuZCBjb2xvclxuICAmW2Rpc2FibGVkXSxcbiAgJltyZWFkb25seV0sXG4gIGZpZWxkc2V0W2Rpc2FibGVkXSAmIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtZGlzYWJsZWQtYmc7XG4gICAgY3Vyc29yOiAkaW5wdXQtZGlzYWJsZWQtY3Vyc29yO1xuICB9XG59XG5cbi8vIEBNSVhJTlxuLy9cbi8vIFdlIHVzZSB0aGlzIG1peGluIHRvIGNyZWF0ZSBmb3JtIGxhYmVsc1xuLy9cbi8vICRhbGlnbm1lbnQgLSBBbGlnbm1lbnQgb3B0aW9ucy4gRGVmYXVsdDogZmFsc2UuIE9wdGlvbnM6IFtyaWdodCwgaW5saW5lLCBmYWxzZV1cbi8vICRiYXNlLXN0eWxlIC0gQ29udHJvbCB3aGV0aGVyIG9yIG5vdCB0aGUgYmFzZSBzdHlsZXMgY29tZSB0aHJvdWdoLiBEZWZhdWx0OiB0cnVlLlxuQG1peGluIGZvcm0tbGFiZWwoJGFsaWdubWVudDpmYWxzZSwgJGJhc2Utc3R5bGU6dHJ1ZSkge1xuXG4gIC8vIENvbnRyb2wgd2hldGhlciBvciBub3QgdGhlIGJhc2Ugc3R5bGVzIGNvbWUgdGhyb3VnaC5cbiAgQGlmICRiYXNlLXN0eWxlIHtcbiAgICBmb250LXNpemU6ICRmb3JtLWxhYmVsLWZvbnQtc2l6ZTtcbiAgICBjb2xvcjogJGZvcm0tbGFiZWwtZm9udC1jb2xvcjtcbiAgICBjdXJzb3I6ICRmb3JtLWxhYmVsLXBvaW50ZXI7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC13ZWlnaHQ6ICRmb3JtLWxhYmVsLWZvbnQtd2VpZ2h0O1xuICAgIGxpbmUtaGVpZ2h0OiAkZm9ybS1sYWJlbC1saW5lLWhlaWdodDtcbiAgICBtYXJnaW4tYm90dG9tOiAkZm9ybS1sYWJlbC1ib3R0b20tbWFyZ2luO1xuICB9XG5cbiAgLy8gQWxpZ25tZW50IG9wdGlvbnNcbiAgQGlmICRhbGlnbm1lbnQgPT0gcmlnaHQge1xuICAgIGZsb2F0OiBub25lICFpbXBvcnRhbnQ7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIH1cbiAgQGVsc2UgaWYgJGFsaWdubWVudCA9PSBpbmxpbmUge1xuICAgIG1hcmdpbjogMCAwICRmb3JtLXNwYWNpbmcgMDtcbiAgICBwYWRkaW5nOiAkZm9ybS1zcGFjaW5nIC8gMiArIHJlbS1jYWxjKCRpbnB1dC1ib3JkZXItd2lkdGgpIDA7XG4gIH1cbn1cblxuLy8gV2UgdXNlIHRoaXMgbWl4aW4gdG8gY3JlYXRlIHBvc3RmaXgvcHJlZml4IGZvcm0gTGFiZWxzXG5AbWl4aW4gcHJlZml4LXBvc3RmaXgtYmFzZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDI7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmctdG9wOiAwO1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgYm9yZGVyLXN0eWxlOiAkaW5wdXQtcHJlZml4LWJvcmRlci10eXBlO1xuICBib3JkZXItd2lkdGg6ICRpbnB1dC1wcmVmaXgtYm9yZGVyLXNpemU7XG4gIG92ZXJmbG93OiAkaW5wdXQtcHJlZml4LW92ZXJmbG93O1xuICBmb250LXNpemU6ICRmb3JtLWxhYmVsLWZvbnQtc2l6ZTtcbiAgaGVpZ2h0OiAoJGlucHV0LWZvbnQtc2l6ZSArICgkZm9ybS1zcGFjaW5nICogMS41KSAtIHJlbS1jYWxjKDEpKTtcbiAgbGluZS1oZWlnaHQ6ICgkaW5wdXQtZm9udC1zaXplICsgKCRmb3JtLXNwYWNpbmcgKiAxLjUpIC0gcmVtLWNhbGMoMSkpO1xufVxuXG4vLyBATUlYSU5cbi8vXG4vLyBXZSB1c2UgdGhpcyBtaXhpbiB0byBjcmVhdGUgcHJlZml4IGxhYmVsIHN0eWxlc1xuLy8gJGJnIC0gRGVmYXVsdDokaW5wdXQtcHJlZml4LWJnIHx8IHNjYWxlLWNvbG9yKCR3aGl0ZSwgJGxpZ2h0bmVzczogLTUlKSAhZGVmYXVsdDtcbi8vICRpcy1idXR0b24gLSBUb2dnbGUgcG9zaXRpb24gc2V0dGluZ3MgaWYgcHJlZml4IGlzIGEgYnV0dG9uLiBEZWZhdWx0OmZhbHNlXG4vL1xuQG1peGluIHByZWZpeCgkYmc6JGlucHV0LXByZWZpeC1iZywgJGJvcmRlcjokaW5wdXQtcHJlZml4LWJvcmRlci1jb2xvciwgJGlzLWJ1dHRvbjpmYWxzZSkge1xuXG4gIEBpZiAkYmcge1xuICAgICRiZy1saWdodG5lc3M6IGxpZ2h0bmVzcygkYmcpO1xuICAgIGJhY2tncm91bmQ6ICRiZztcbiAgICBib3JkZXItI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogbm9uZTtcblxuICAgIC8vIENvbnRyb2wgdGhlIGZvbnQgY29sb3IgYmFzZWQgb24gYmFja2dyb3VuZCBicmlnaHRuZXNzXG4gICAgQGlmICRiZy1saWdodG5lc3MgPiA3MCUgb3IgJGJnID09IHllbGxvdyB7IGNvbG9yOiAkaW5wdXQtcHJlZml4LWZvbnQtY29sb3I7IH1cbiAgICBAZWxzZSB7IGNvbG9yOiAkaW5wdXQtcHJlZml4LWZvbnQtY29sb3ItYWx0OyB9XG4gIH1cblxuICBAaWYgJGJvcmRlciB7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyO1xuICB9XG5cbiAgQGlmICRpcy1idXR0b24ge1xuICAgIHBhZGRpbmctI3skZGVmYXVsdC1mbG9hdH06IDA7XG4gICAgcGFkZGluZy0jeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiAwO1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBib3JkZXI6IG5vbmU7XG4gIH1cblxufVxuXG4vLyBATUlYSU5cbi8vXG4vLyBXZSB1c2UgdGhpcyBtaXhpbiB0byBjcmVhdGUgcG9zdGZpeCBsYWJlbCBzdHlsZXNcbi8vICRiZyAtIERlZmF1bHQ6JGlucHV0LXByZWZpeC1iZyB8fCBzY2FsZS1jb2xvcigkd2hpdGUsICRsaWdodG5lc3M6IC01JSkgIWRlZmF1bHQ7XG4vLyAkaXMtYnV0dG9uIC0gVG9nZ2xlIHBvc2l0aW9uIHNldHRpbmdzIGlmIHByZWZpeCBpcyBhIGJ1dHRvbi4gRGVmYXVsdDogZmFsc2VcbkBtaXhpbiBwb3N0Zml4KCRiZzokaW5wdXQtcHJlZml4LWJnLCAkYm9yZGVyOiRpbnB1dC1wcmVmaXgtYm9yZGVyLWNvbG9yLCAkaXMtYnV0dG9uOmZhbHNlKSB7XG5cbiAgQGlmICRiZyB7XG4gICAgJGJnLWxpZ2h0bmVzczogbGlnaHRuZXNzKCRiZyk7XG4gICAgYmFja2dyb3VuZDogJGJnO1xuICAgIGJvcmRlci0jeyRkZWZhdWx0LWZsb2F0fTogbm9uZTtcblxuICAgIC8vIENvbnRyb2wgdGhlIGZvbnQgY29sb3IgYmFzZWQgb24gYmFja2dyb3VuZCBicmlnaHRuZXNzXG4gICAgQGlmICRiZy1saWdodG5lc3MgPiA3MCUgIG9yICRiZyA9PSB5ZWxsb3cgeyBjb2xvcjogJGlucHV0LXByZWZpeC1mb250LWNvbG9yOyB9XG4gICAgQGVsc2UgeyBjb2xvcjogJGlucHV0LXByZWZpeC1mb250LWNvbG9yLWFsdDsgfVxuICB9XG5cbiAgQGlmICRib3JkZXIge1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlcjtcbiAgfVxuXG4gIEBpZiAkaXMtYnV0dG9uIHtcbiAgICBwYWRkaW5nLSN7JGRlZmF1bHQtZmxvYXR9OiAwO1xuICAgIHBhZGRpbmctI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogMDtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgYm9yZGVyOiBub25lO1xuICB9XG5cbn1cblxuLy8gV2UgdXNlIHRoaXMgbWl4aW4gdG8gc3R5bGUgZmllbGRzZXRzXG5AbWl4aW4gZmllbGRzZXQge1xuICBib3JkZXI6ICRmaWVsZHNldC1ib3JkZXItd2lkdGggJGZpZWxkc2V0LWJvcmRlci1zdHlsZSAkZmllbGRzZXQtYm9yZGVyLWNvbG9yO1xuICBwYWRkaW5nOiAkZmllbGRzZXQtcGFkZGluZztcbiAgbWFyZ2luOiAkZmllbGRzZXQtbWFyZ2luO1xuXG4gIC8vIGFuZCBsZWdlbmQgc3R5bGVzXG4gIGxlZ2VuZCB7XG4gICAgZm9udC13ZWlnaHQ6ICRsZWdlbmQtZm9udC13ZWlnaHQ7XG4gICAgYmFja2dyb3VuZDogJGxlZ2VuZC1iZztcbiAgICBwYWRkaW5nOiAkbGVnZW5kLXBhZGRpbmc7XG4gICAgbWFyZ2luOiAwO1xuICAgIG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogcmVtLWNhbGMoLTMpO1xuICB9XG59XG5cbi8vIEBNSVhJTlxuLy9cbi8vIFdlIHVzZSB0aGlzIG1peGluIHRvIGNvbnRyb2wgYm9yZGVyIGFuZCBiYWNrZ3JvdW5kIGNvbG9yIG9mIGVycm9yIGlucHV0c1xuLy8gJGNvbG9yIC0gRGVmYXVsdDogJGFsZXJ0LWNvbG9yIChmb3VuZCBpbiBzZXR0aW5ncyBmaWxlKVxuQG1peGluIGZvcm0tZXJyb3ItY29sb3IoJGNvbG9yOiRhbGVydC1jb2xvcikge1xuICBib3JkZXItY29sb3I6ICRjb2xvcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkY29sb3IsIDAuMSk7XG5cbiAgLy8gR28gYmFjayB0byBub3JtYWwgb24gZm9jdXNcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZDogJGlucHV0LWZvY3VzLWJnLWNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGlucHV0LWZvY3VzLWJvcmRlci1jb2xvcjtcbiAgfVxufVxuXG4vLyBATUlYSU5cbi8vXG4vLyBXZSB1c2UgdGhpcyBzaW1wbGUgbWl4aW4gdG8gc3R5bGUgbGFiZWxzIGZvciBlcnJvciBpbnB1dHNcbi8vICRjb2xvciAtIERlZmF1bHQ6JGFsZXJ0LWNvbG9yLiBGb3VuZCBpbiBzZXR0aW5ncyBmaWxlXG5AbWl4aW4gZm9ybS1sYWJlbC1lcnJvci1jb2xvcigkY29sb3I6JGFsZXJ0LWNvbG9yKSB7IGNvbG9yOiAkY29sb3I7IH1cblxuLy8gQE1JWElOXG4vL1xuLy8gV2UgdXNlIHRoaXMgbWl4aW4gdG8gY3JlYXRlIGVycm9yIG1lc3NhZ2Ugc3R5bGVzXG4vLyAkYmcgLSBEZWZhdWx0OiAkYWxlcnQtY29sb3IgKEZvdW5kIGluIHNldHRpbmdzIGZpbGUpXG5AbWl4aW4gZm9ybS1lcnJvci1tZXNzYWdlKCRiZzokaW5wdXQtZXJyb3ItbWVzc2FnZS1iZy1jb2xvcikge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogJGlucHV0LWVycm9yLW1lc3NhZ2UtcGFkZGluZztcbiAgbWFyZ2luLXRvcDogJGlucHV0LWVycm9yLW1lc3NhZ2UtdG9wO1xuICBtYXJnaW4tYm90dG9tOiAkZm9ybS1zcGFjaW5nO1xuICBmb250LXNpemU6ICRpbnB1dC1lcnJvci1tZXNzYWdlLWZvbnQtc2l6ZTtcbiAgZm9udC13ZWlnaHQ6ICRpbnB1dC1lcnJvci1tZXNzYWdlLWZvbnQtd2VpZ2h0O1xuICBmb250LXN0eWxlOiAkaW5wdXQtZXJyb3ItbWVzc2FnZS1mb250LXN0eWxlO1xuXG4gIC8vIFdlIGNhbiBjb250cm9sIHRoZSB0ZXh0IGNvbG9yIGJhc2VkIG9uIHRoZSBicmlnaHRuZXNzIG9mIHRoZSBiYWNrZ3JvdW5kLlxuICAkYmctbGlnaHRuZXNzOiBsaWdodG5lc3MoJGJnKTtcbiAgYmFja2dyb3VuZDogJGJnO1xuICBAaWYgJGJnLWxpZ2h0bmVzcyA8IDcwJSBvciAkYmcgPT0geWVsbG93IHsgY29sb3I6ICRpbnB1dC1lcnJvci1tZXNzYWdlLWZvbnQtY29sb3I7IH1cbiAgQGVsc2UgeyBjb2xvcjogJGlucHV0LWVycm9yLW1lc3NhZ2UtZm9udC1jb2xvci1hbHQ7IH1cbn1cblxuLy8gV2UgdXNlIHRoaXMgbWl4aW4gdG8gc3R5bGUgc2VsZWN0IGVsZW1lbnRzXG5AbWl4aW4gZm9ybS1zZWxlY3QgIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICRzZWxlY3QtYmctY29sb3I7XG5cbiAgLy8gSGlkZSB0aGUgZHJvcGRvd24gYXJyb3cgc2hvd24gaW4gbmV3ZXIgSUUgdmVyc2lvbnNcbiAgJjo6LW1zLWV4cGFuZCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC8vIFRoZSBjdXN0b20gYXJyb3cgaGFzIHNvbWUgZmFrZSBob3Jpem9udGFsIHBhZGRpbmcgc28gd2UgY2FuIGFsaWduIGl0XG4gIC8vIGZyb20gdGhlIHJpZ2h0IHNpZGUgb2YgdGhlIGVsZW1lbnQgd2l0aG91dCByZWx5aW5nIG9uIENTUzNcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUlIWmxjbk5wYjI0OUlqRXVNU0lnZUQwaU1USndlQ0lnZVQwaU1IQjRJaUIzYVdSMGFEMGlNalJ3ZUNJZ2FHVnBaMmgwUFNJemNIZ2lJSFpwWlhkQ2IzZzlJakFnTUNBMklETWlJR1Z1WVdKc1pTMWlZV05yWjNKdmRXNWtQU0p1WlhjZ01DQXdJRFlnTXlJZ2VHMXNPbk53WVdObFBTSndjbVZ6WlhKMlpTSStQSEJ2YkhsbmIyNGdjRzlwYm5SelBTSTFMams1TWl3d0lESXVPVGt5TERNZ0xUQXVNREE0TERBZ0lpOCtQQzl6ZG1jKyk7XG5cbiAgLy8gV2UgY2FuIHNhZmVseSB1c2UgbGVmdG1vc3QgYW5kIHJpZ2h0bW9zdCBub3dcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogaWYoJHRleHQtZGlyZWN0aW9uID09ICdydGwnLCAwJSwgMTAwJSkgY2VudGVyO1xuXG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJvcmRlcjoge1xuICAgIHN0eWxlOiAkaW5wdXQtYm9yZGVyLXN0eWxlO1xuICAgIHdpZHRoOiAkaW5wdXQtYm9yZGVyLXdpZHRoO1xuICAgIGNvbG9yOiAkaW5wdXQtYm9yZGVyLWNvbG9yO1xuICB9XG4gIHBhZGRpbmc6ICgkZm9ybS1zcGFjaW5nIC8gMik7XG4gIGZvbnQtc2l6ZTogJGlucHV0LWZvbnQtc2l6ZTtcbiAgZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5O1xuICBjb2xvcjogJGlucHV0LWZvbnQtY29sb3I7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gIEBpbmNsdWRlIHJhZGl1cygwKTtcbiAgJi5yYWRpdXMgeyBAaW5jbHVkZSByYWRpdXMoJGdsb2JhbC1yYWRpdXMpOyB9XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRzZWxlY3QtaG92ZXItYmctY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkaW5wdXQtZm9jdXMtYm9yZGVyLWNvbG9yO1xuICB9XG4gIC8vIERpc2FibGVkIFN0eWxlc1xuICAmOmRpc2FibGVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtZGlzYWJsZWQtYmc7XG4gICAgY3Vyc29yOiAkaW5wdXQtZGlzYWJsZWQtY3Vyc29yO1xuICB9XG59XG5cbi8vIFdlIHVzZSB0aGlzIG1peGluIHRvIHR1cm4gb24vb2ZmIEhUTUw1IG51bWJlciBzcGlubmVyc1xuQG1peGluIGh0bWw1bnVtYmVyKCRicm93c2VyLCAkb246dHJ1ZSkge1xuICBAaWYgJG9uPT1mYWxzZSB7XG4gICAgICBAaWYgJGJyb3dzZXI9PXdlYmtpdCB7XG4gICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgfSBAZWxzZSBpZiAkYnJvd3Nlcj09bW96IHtcbiAgICAgICAgLW1vei1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XG4gICAgICB9XG4gIH1cbn1cblxuQGluY2x1ZGUgZXhwb3J0cyhcImZvcm1cIikge1xuICBAaWYgJGluY2x1ZGUtaHRtbC1mb3JtLWNsYXNzZXMge1xuICAgIC8qIFN0YW5kYXJkIEZvcm1zICovXG4gICAgZm9ybSB7IG1hcmdpbjogMCAwICRmb3JtLXNwYWNpbmc7IH1cblxuICAgIC8qIFVzaW5nIGZvcm1zIHdpdGhpbiByb3dzLCB3ZSBuZWVkIHRvIHNldCBzb21lIGRlZmF1bHRzICovXG4gICAgZm9ybSAucm93IHsgQGluY2x1ZGUgZm9ybS1yb3ctYmFzZTsgfVxuXG4gICAgLyogTGFiZWwgU3R5bGVzICovXG4gICAgbGFiZWwgeyBAaW5jbHVkZSBmb3JtLWxhYmVsO1xuICAgICAgJi5yaWdodCB7IEBpbmNsdWRlIGZvcm0tbGFiZWwocmlnaHQsZmFsc2UpOyB9XG4gICAgICAmLmlubGluZSB7IEBpbmNsdWRlIGZvcm0tbGFiZWwoaW5saW5lLGZhbHNlKTsgfVxuICAgICAgLyogU3R5bGVzIGZvciByZXF1aXJlZCBpbnB1dHMgKi9cbiAgICAgIHNtYWxsIHtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06ICRmb3JtLWxhYmVsLXNtYWxsLXRyYW5zZm9ybTtcbiAgICAgICAgY29sb3I6IHNjYWxlLWNvbG9yKCRmb3JtLWxhYmVsLWZvbnQtY29sb3IsICRsaWdodG5lc3M6IDE1JSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyogQXR0YWNoIGVsZW1lbnRzIHRvIHRoZSBiZWdpbm5pbmcgb3IgZW5kIG9mIGFuIGlucHV0ICovXG4gICAgLnByZWZpeCxcbiAgICAucG9zdGZpeCB7IEBpbmNsdWRlIHByZWZpeC1wb3N0Zml4LWJhc2U7IH1cblxuICAgIC8qIEFkanVzdCBwYWRkaW5nLCBhbGlnbm1lbnQgYW5kIHJhZGl1cyBpZiBwcmUvcG9zdCBlbGVtZW50IGlzIGEgYnV0dG9uICovXG4gICAgLnBvc3RmaXguYnV0dG9uIHsgQGluY2x1ZGUgYnV0dG9uLXNpemUoZmFsc2UsZmFsc2UpOyBAaW5jbHVkZSBwb3N0Zml4KGZhbHNlLCBmYWxzZSwgdHJ1ZSk7IH1cbiAgICAucHJlZml4LmJ1dHRvbiB7IEBpbmNsdWRlIGJ1dHRvbi1zaXplKGZhbHNlLGZhbHNlKTsgQGluY2x1ZGUgcHJlZml4KGZhbHNlLCBmYWxzZSwgdHJ1ZSk7IH1cblxuICAgIC5wcmVmaXguYnV0dG9uLnJhZGl1cyB7IEBpbmNsdWRlIHJhZGl1cygwKTsgQGluY2x1ZGUgc2lkZS1yYWRpdXMoJGRlZmF1bHQtZmxvYXQsICRidXR0b24tcmFkaXVzKTsgfVxuICAgIC5wb3N0Zml4LmJ1dHRvbi5yYWRpdXMgeyBAaW5jbHVkZSByYWRpdXMoMCk7IEBpbmNsdWRlIHNpZGUtcmFkaXVzKCRvcHBvc2l0ZS1kaXJlY3Rpb24sICRidXR0b24tcmFkaXVzKTsgfVxuICAgIC5wcmVmaXguYnV0dG9uLnJvdW5kIHsgQGluY2x1ZGUgcmFkaXVzKDApOyBAaW5jbHVkZSBzaWRlLXJhZGl1cygkZGVmYXVsdC1mbG9hdCwgJGJ1dHRvbi1yb3VuZCk7IH1cbiAgICAucG9zdGZpeC5idXR0b24ucm91bmQgeyBAaW5jbHVkZSByYWRpdXMoMCk7IEBpbmNsdWRlIHNpZGUtcmFkaXVzKCRvcHBvc2l0ZS1kaXJlY3Rpb24sICRidXR0b24tcm91bmQpOyB9XG5cbiAgICAvKiBTZXBhcmF0ZSBwcmVmaXggYW5kIHBvc3RmaXggc3R5bGVzIHdoZW4gb24gc3BhbiBvciBsYWJlbCBzbyBidXR0b25zIGtlZXAgdGhlaXIgb3duICovXG4gICAgc3Bhbi5wcmVmaXgsbGFiZWwucHJlZml4IHsgQGluY2x1ZGUgcHJlZml4KCk7IH1cbiAgICBzcGFuLnBvc3RmaXgsbGFiZWwucG9zdGZpeCB7IEBpbmNsdWRlIHBvc3RmaXgoKTsgfVxuXG4gICAgLyogV2UgdXNlIHRoaXMgdG8gZ2V0IGJhc2ljIHN0eWxpbmcgb24gYWxsIGJhc2ljIGZvcm0gZWxlbWVudHMgKi9cbiAgICAje3RleHQtaW5wdXRzKGFsbCwgJ2lucHV0Jyl9IHtcbiAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICBAaW5jbHVkZSBmb3JtLWVsZW1lbnQ7XG4gICAgICBAaWYgJGlucHV0LWluY2x1ZGUtZ2xvd2luZy1lZmZlY3QgPT0gZmFsc2Uge1xuICAgICAgICAgIEBpbmNsdWRlIHNpbmdsZS10cmFuc2l0aW9uKGFsbCwgMC4xNXMsIGxpbmVhcik7XG4gICAgICB9XG4gICAgICAmLnJhZGl1cyB7XG4gICAgICAgIEBpbmNsdWRlIHJhZGl1cygkaW5wdXQtYm9yZGVyLXJhZGl1cyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZm9ybSB7XG4gICAgICAucm93IHtcbiAgICAgICAgLnByZWZpeC1yYWRpdXMucm93LmNvbGxhcHNlIHtcbiAgICAgICAgICBpbnB1dCxcbiAgICAgICAgICB0ZXh0YXJlYSxcbiAgICAgICAgICBzZWxlY3QsXG4gICAgICAgICAgYnV0dG9uIHsgQGluY2x1ZGUgcmFkaXVzKDApOyBAaW5jbHVkZSBzaWRlLXJhZGl1cygkb3Bwb3NpdGUtZGlyZWN0aW9uLCAkYnV0dG9uLXJhZGl1cyk7IH1cbiAgICAgICAgICAucHJlZml4IHsgQGluY2x1ZGUgcmFkaXVzKDApOyBAaW5jbHVkZSBzaWRlLXJhZGl1cygkZGVmYXVsdC1mbG9hdCwgJGJ1dHRvbi1yYWRpdXMpOyB9XG4gICAgICAgIH1cbiAgICAgICAgLnBvc3RmaXgtcmFkaXVzLnJvdy5jb2xsYXBzZSB7XG4gICAgICAgICAgaW5wdXQsXG4gICAgICAgICAgdGV4dGFyZWEsXG4gICAgICAgICAgc2VsZWN0LFxuICAgICAgICAgIGJ1dHRvbiB7IEBpbmNsdWRlIHJhZGl1cygwKTsgQGluY2x1ZGUgc2lkZS1yYWRpdXMoJGRlZmF1bHQtZmxvYXQsICRidXR0b24tcmFkaXVzKTsgfVxuICAgICAgICAgIC5wb3N0Zml4IHsgQGluY2x1ZGUgcmFkaXVzKDApOyBAaW5jbHVkZSBzaWRlLXJhZGl1cygkb3Bwb3NpdGUtZGlyZWN0aW9uLCAkYnV0dG9uLXJhZGl1cyk7IH1cbiAgICAgICAgfVxuICAgICAgICAucHJlZml4LXJvdW5kLnJvdy5jb2xsYXBzZSB7XG4gICAgICAgICAgaW5wdXQsXG4gICAgICAgICAgdGV4dGFyZWEsXG4gICAgICAgICAgc2VsZWN0LFxuICAgICAgICAgIGJ1dHRvbiB7IEBpbmNsdWRlIHJhZGl1cygwKTsgQGluY2x1ZGUgc2lkZS1yYWRpdXMoJG9wcG9zaXRlLWRpcmVjdGlvbiwgJGJ1dHRvbi1yb3VuZCk7IH1cbiAgICAgICAgICAucHJlZml4IHsgQGluY2x1ZGUgcmFkaXVzKDApOyBAaW5jbHVkZSBzaWRlLXJhZGl1cygkZGVmYXVsdC1mbG9hdCwgJGJ1dHRvbi1yb3VuZCk7IH1cbiAgICAgICAgfVxuICAgICAgICAucG9zdGZpeC1yb3VuZC5yb3cuY29sbGFwc2Uge1xuICAgICAgICAgIGlucHV0LFxuICAgICAgICAgIHRleHRhcmVhLFxuICAgICAgICAgIHNlbGVjdCxcbiAgICAgICAgICBidXR0b24geyBAaW5jbHVkZSByYWRpdXMoMCk7IEBpbmNsdWRlIHNpZGUtcmFkaXVzKCRkZWZhdWx0LWZsb2F0LCAkYnV0dG9uLXJvdW5kKTsgfVxuICAgICAgICAgIC5wb3N0Zml4IHsgQGluY2x1ZGUgcmFkaXVzKDApOyBAaW5jbHVkZSBzaWRlLXJhZGl1cygkb3Bwb3NpdGUtZGlyZWN0aW9uLCAkYnV0dG9uLXJvdW5kKTsgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIH1cblxuICAgIC8qIFJlc3BlY3QgZW5mb3JjZWQgYW1vdW50IG9mIHJvd3MgZm9yIHRleHRhcmVhICovXG4gICAgdGV4dGFyZWFbcm93c10ge1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgIH1cblxuXHQvKiBOb3QgYWxsb3cgcmVzaXplIG91dCBvZiBwYXJlbnQgKi9cblx0dGV4dGFyZWEge1xuXHRcdG1heC13aWR0aDogMTAwJTtcblx0fVxuXG4gICAgLyogQWRkIGhlaWdodCB2YWx1ZSBmb3Igc2VsZWN0IGVsZW1lbnRzIHRvIG1hdGNoIHRleHQgaW5wdXQgaGVpZ2h0ICovXG4gICAgc2VsZWN0IHtcbiAgICAgIEBpbmNsdWRlIGZvcm0tc2VsZWN0O1xuICAgICAgaGVpZ2h0OiAoJGlucHV0LWZvbnQtc2l6ZSArICgkZm9ybS1zcGFjaW5nICogMS41KSAtIHJlbS1jYWxjKDEpKTtcbiAgICAgICZbbXVsdGlwbGVdIHtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qIEFkanVzdCBtYXJnaW4gZm9yIGZvcm0gZWxlbWVudHMgYmVsb3cgKi9cbiAgICBpbnB1dFt0eXBlPVwiZmlsZVwiXSxcbiAgICBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sXG4gICAgaW5wdXRbdHlwZT1cInJhZGlvXCJdLFxuICAgIHNlbGVjdCB7XG4gICAgICBtYXJnaW46IDAgMCAkZm9ybS1zcGFjaW5nIDA7XG4gICAgfVxuXG4gICAgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdICsgbGFiZWwsXG4gICAgaW5wdXRbdHlwZT1cInJhZGlvXCJdICsgbGFiZWwge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbWFyZ2luLSN7JGRlZmF1bHQtZmxvYXR9OiAkZm9ybS1zcGFjaW5nICogLjU7XG4gICAgICBtYXJnaW4tI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogJGZvcm0tc3BhY2luZztcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gICAgfVxuXG4gICAgLyogTm9ybWFsaXplIGZpbGUgaW5wdXQgd2lkdGggKi9cbiAgICBpbnB1dFt0eXBlPVwiZmlsZVwiXSB7XG4gICAgICB3aWR0aDoxMDAlO1xuICAgIH1cblxuICAgIC8qIEhUTUw1IE51bWJlciBzcGlubmVycyBzZXR0aW5ncyAqL1xuICAgIGlucHV0W3R5cGU9bnVtYmVyXSB7XG4gICAgICBAaW5jbHVkZSBodG1sNW51bWJlcihtb3osICRpbnB1dC1udW1iZXItc3Bpbm5lcnMpXG4gICAgfVxuICAgIGlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG4gICAgaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gICAgICBAaW5jbHVkZSBodG1sNW51bWJlcih3ZWJraXQsICRpbnB1dC1udW1iZXItc3Bpbm5lcnMpO1xuICAgIH1cblxuICAgIC8qIFdlIGFkZCBiYXNpYyBmaWVsZHNldCBzdHlsaW5nICovXG4gICAgZmllbGRzZXQge1xuICAgICAgQGluY2x1ZGUgZmllbGRzZXQ7XG4gICAgfVxuXG4gICAgLyogRXJyb3IgSGFuZGxpbmcgKi9cblxuICAgICN7ZGF0YSgnYWJpZGUnKX0ge1xuICAgICAgLmVycm9yIHNtYWxsLmVycm9yLCAuZXJyb3Igc3Bhbi5lcnJvciwgc3Bhbi5lcnJvciwgc21hbGwuZXJyb3Ige1xuICAgICAgICBAaW5jbHVkZSBmb3JtLWVycm9yLW1lc3NhZ2U7XG4gICAgICB9XG4gICAgICBzcGFuLmVycm9yLCBzbWFsbC5lcnJvciB7IGRpc3BsYXk6IG5vbmU7IH1cbiAgICB9XG5cbiAgICBzcGFuLmVycm9yLCBzbWFsbC5lcnJvciB7XG4gICAgICBAaW5jbHVkZSBmb3JtLWVycm9yLW1lc3NhZ2U7XG4gICAgfVxuXG4gICAgLmVycm9yIHtcbiAgICAgIGlucHV0LFxuICAgICAgdGV4dGFyZWEsXG4gICAgICBzZWxlY3Qge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgfVxuXG4gICAgICBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sXG4gICAgICBpbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkZm9ybS1zcGFjaW5nXG4gICAgICB9XG5cbiAgICAgIGxhYmVsLFxuICAgICAgbGFiZWwuZXJyb3Ige1xuICAgICAgICBAaW5jbHVkZSBmb3JtLWxhYmVsLWVycm9yLWNvbG9yO1xuICAgICAgfVxuXG4gICAgICBzbWFsbC5lcnJvciB7XG4gICAgICAgIEBpbmNsdWRlIGZvcm0tZXJyb3ItbWVzc2FnZTtcbiAgICAgIH1cblxuICAgICAgPiBsYWJlbCB7XG4gICAgICAgID4gc21hbGwge1xuICAgICAgICAgIGNvbG9yOiBzY2FsZS1jb2xvcigkZm9ybS1sYWJlbC1mb250LWNvbG9yLCAkbGlnaHRuZXNzOiAxNSUpO1xuICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgdGV4dC10cmFuc2Zvcm06ICRmb3JtLWxhYmVsLXNtYWxsLXRyYW5zZm9ybTtcbiAgICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICAgICAgZm9udC1zaXplOiA2MCU7XG4gICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBzcGFuLmVycm9yLW1lc3NhZ2Uge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpbnB1dC5lcnJvcixcbiAgICB0ZXh0YXJlYS5lcnJvcixcbiAgICBzZWxlY3QuZXJyb3Ige1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gICAgbGFiZWwuZXJyb3IgeyBAaW5jbHVkZSBmb3JtLWxhYmVsLWVycm9yLWNvbG9yOyB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBpbXBvcnQgXCJnbG9iYWxcIjtcblxuLy9cbi8vIEB2YXJpYWJsZXNcbi8vXG4kaW5jbHVkZS1odG1sLWJ1dHRvbi1jbGFzc2VzOiAkaW5jbHVkZS1odG1sLWNsYXNzZXMgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBidWlsZCBwYWRkaW5nIGZvciBidXR0b25zLlxuJGJ1dHRvbi10bnk6IHJlbS1jYWxjKDEwKSAhZGVmYXVsdDtcbiRidXR0b24tc21sOiByZW0tY2FsYygxNCkgIWRlZmF1bHQ7XG4kYnV0dG9uLW1lZDogcmVtLWNhbGMoMTYpICFkZWZhdWx0O1xuJGJ1dHRvbi1scmc6IHJlbS1jYWxjKDE4KSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoaXMgdG8gY29udHJvbCB0aGUgZGlzcGxheSBwcm9wZXJ0eS5cbiRidXR0b24tZGlzcGxheTogaW5saW5lLWJsb2NrICFkZWZhdWx0O1xuJGJ1dHRvbi1tYXJnaW4tYm90dG9tOiByZW0tY2FsYygyMCkgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIGJ1dHRvbiB0ZXh0IHN0eWxlcy5cbiRidXR0b24tZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5ICFkZWZhdWx0O1xuJGJ1dHRvbi1mb250LWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG4kYnV0dG9uLWZvbnQtY29sb3ItYWx0OiAkb2lsICFkZWZhdWx0O1xuJGJ1dHRvbi1mb250LXRueTogcmVtLWNhbGMoMTEpICFkZWZhdWx0O1xuJGJ1dHRvbi1mb250LXNtbDogcmVtLWNhbGMoMTMpICFkZWZhdWx0O1xuJGJ1dHRvbi1mb250LW1lZDogcmVtLWNhbGMoMTYpICFkZWZhdWx0O1xuJGJ1dHRvbi1mb250LWxyZzogcmVtLWNhbGMoMjApICFkZWZhdWx0O1xuJGJ1dHRvbi1mb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcbiRidXR0b24tZm9udC1hbGlnbjogY2VudGVyICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCB2YXJpb3VzIGhvdmVyIGVmZmVjdHMuXG4kYnV0dG9uLWZ1bmN0aW9uLWZhY3RvcjogLTIwJSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgYnV0dG9uIGJvcmRlciBzdHlsZXMuXG4kYnV0dG9uLWJvcmRlci13aWR0aDogMCAhZGVmYXVsdDtcbiRidXR0b24tYm9yZGVyLXN0eWxlOiBzb2xpZCAhZGVmYXVsdDtcbiRidXR0b24tYmctY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuJGJ1dHRvbi1iZy1ob3Zlcjogc2NhbGUtY29sb3IoJGJ1dHRvbi1iZy1jb2xvciwgJGxpZ2h0bmVzczogJGJ1dHRvbi1mdW5jdGlvbi1mYWN0b3IpICFkZWZhdWx0O1xuJGJ1dHRvbi1ib3JkZXItY29sb3I6ICRidXR0b24tYmctaG92ZXIgIWRlZmF1bHQ7XG4kc2Vjb25kYXJ5LWJ1dHRvbi1iZy1ob3Zlcjogc2NhbGUtY29sb3IoJHNlY29uZGFyeS1jb2xvciwgJGxpZ2h0bmVzczogJGJ1dHRvbi1mdW5jdGlvbi1mYWN0b3IpICFkZWZhdWx0O1xuJHNlY29uZGFyeS1idXR0b24tYm9yZGVyLWNvbG9yOiAkc2Vjb25kYXJ5LWJ1dHRvbi1iZy1ob3ZlciAhZGVmYXVsdDtcbiRzdWNjZXNzLWJ1dHRvbi1iZy1ob3Zlcjogc2NhbGUtY29sb3IoJHN1Y2Nlc3MtY29sb3IsICRsaWdodG5lc3M6ICRidXR0b24tZnVuY3Rpb24tZmFjdG9yKSAhZGVmYXVsdDtcbiRzdWNjZXNzLWJ1dHRvbi1ib3JkZXItY29sb3I6ICRzdWNjZXNzLWJ1dHRvbi1iZy1ob3ZlciAhZGVmYXVsdDtcbiRhbGVydC1idXR0b24tYmctaG92ZXI6IHNjYWxlLWNvbG9yKCRhbGVydC1jb2xvciwgJGxpZ2h0bmVzczogJGJ1dHRvbi1mdW5jdGlvbi1mYWN0b3IpICFkZWZhdWx0O1xuJGFsZXJ0LWJ1dHRvbi1ib3JkZXItY29sb3I6ICRhbGVydC1idXR0b24tYmctaG92ZXIgIWRlZmF1bHQ7XG4kd2FybmluZy1idXR0b24tYmctaG92ZXI6IHNjYWxlLWNvbG9yKCR3YXJuaW5nLWNvbG9yLCAkbGlnaHRuZXNzOiAkYnV0dG9uLWZ1bmN0aW9uLWZhY3RvcikgIWRlZmF1bHQ7XG4kd2FybmluZy1idXR0b24tYm9yZGVyLWNvbG9yOiAkd2FybmluZy1idXR0b24tYmctaG92ZXIgIWRlZmF1bHQ7XG4kaW5mby1idXR0b24tYmctaG92ZXI6IHNjYWxlLWNvbG9yKCRpbmZvLWNvbG9yLCAkbGlnaHRuZXNzOiAkYnV0dG9uLWZ1bmN0aW9uLWZhY3RvcikgIWRlZmF1bHQ7XG4kaW5mby1idXR0b24tYm9yZGVyLWNvbG9yOiAkaW5mby1idXR0b24tYmctaG92ZXIgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGlzIHRvIHNldCB0aGUgZGVmYXVsdCByYWRpdXMgdXNlZCB0aHJvdWdob3V0IHRoZSBjb3JlLlxuJGJ1dHRvbi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuJGJ1dHRvbi1yb3VuZDogJGdsb2JhbC1yb3VuZGVkICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhpcyB0byBzZXQgZGVmYXVsdCBvcGFjaXR5IGFuZCBjdXJzb3IgZm9yIGRpc2FibGVkIGJ1dHRvbnMuXG4kYnV0dG9uLWRpc2FibGVkLW9wYWNpdHk6IDAuNyAhZGVmYXVsdDtcbiRidXR0b24tZGlzYWJsZWQtY3Vyc29yOiAkY3Vyc29yLWRlZmF1bHQtdmFsdWUgIWRlZmF1bHQ7XG5cblxuLy9cbi8vIEBNSVhJTlxuLy9cbi8vIFdlIHVzZSB0aGlzIG1peGluIHRvIGNyZWF0ZSBhIGRlZmF1bHQgYnV0dG9uIGJhc2UuXG4vL1xuLy8gJHN0eWxlIC0gU2V0cyBiYXNlIHN0eWxlcy4gQ2FuIGJlIHNldCB0byBmYWxzZS4gRGVmYXVsdDogdHJ1ZS5cbi8vICRkaXNwbGF5IC0gVXNlZCB0byBjb250cm9sIGRpc3BsYXkgcHJvcGVydHkuIERlZmF1bHQ6ICRidXR0b24tZGlzcGxheSB8fCBpbmxpbmUtYmxvY2tcblxuQG1peGluIGJ1dHRvbi1iYXNlKCRzdHlsZTp0cnVlLCAkZGlzcGxheTokYnV0dG9uLWRpc3BsYXkpIHtcbiAgQGlmICRzdHlsZSB7XG4gICAgYm9yZGVyLXN0eWxlOiAkYnV0dG9uLWJvcmRlci1zdHlsZTtcbiAgICBib3JkZXItd2lkdGg6ICRidXR0b24tYm9yZGVyLXdpZHRoO1xuICAgIGN1cnNvcjogJGN1cnNvci1wb2ludGVyLXZhbHVlO1xuICAgIGZvbnQtZmFtaWx5OiAkYnV0dG9uLWZvbnQtZmFtaWx5O1xuICAgIGZvbnQtd2VpZ2h0OiAkYnV0dG9uLWZvbnQtd2VpZ2h0O1xuICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gICAgbWFyZ2luOiAwIDAgJGJ1dHRvbi1tYXJnaW4tYm90dG9tO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgdGV4dC1hbGlnbjogJGJ1dHRvbi1mb250LWFsaWduO1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czowO1xuICB9XG4gIEBpZiAkZGlzcGxheSB7IGRpc3BsYXk6ICRkaXNwbGF5OyB9XG59XG5cbi8vIEBNSVhJTlxuLy9cbi8vIFdlIHVzZSB0aGlzIG1peGluIHRvIGFkZCBidXR0b24gc2l6ZSBzdHlsZXNcbi8vXG4vLyAkcGFkZGluZyAtIFVzZWQgdG8gYnVpbGQgcGFkZGluZyBmb3IgYnV0dG9ucyBEZWZhdWx0OiAkYnV0dG9uLW1lZCB8fD0gcmVtLWNhbGMoMTIpXG4vLyAkZnVsbC13aWR0aCAtIFdlIGNhbiBzZXQgJGZ1bGwtd2lkdGg6dHJ1ZSB0byByZW1vdmUgc2lkZSBwYWRkaW5nIGV4dGVuZCB3aWR0aCAtIERlZmF1bHQ6IGZhbHNlXG5cbkBtaXhpbiBidXR0b24tc2l6ZSgkcGFkZGluZzokYnV0dG9uLW1lZCwgJGZ1bGwtd2lkdGg6ZmFsc2UpIHtcblxuICAvLyBXZSBjb250cm9sIHdoaWNoIHBhZGRpbmcgc3R5bGVzIGNvbWUgdGhyb3VnaCxcbiAgLy8gdGhlc2UgY2FuIGJlIHR1cm5lZCBvZmYgYnkgc2V0dGluZyAkcGFkZGluZzpmYWxzZVxuICBAaWYgJHBhZGRpbmcge1xuICAgIHBhZGRpbmctdG9wOiAkcGFkZGluZztcbiAgICBwYWRkaW5nLSN7JG9wcG9zaXRlLWRpcmVjdGlvbn06ICRwYWRkaW5nICogMjtcbiAgICBwYWRkaW5nLWJvdHRvbTogJHBhZGRpbmcgKyByZW0tY2FsYygxKTtcbiAgICBwYWRkaW5nLSN7JGRlZmF1bHQtZmxvYXR9OiAkcGFkZGluZyAqIDI7XG5cbiAgICAvLyBXZSBjb250cm9sIHRoZSBmb250LXNpemUgYmFzZWQgb24gbWl4aW4gaW5wdXQuXG4gICAgQGlmICAgICAgJHBhZGRpbmcgPT0gJGJ1dHRvbi1tZWQgeyBmb250LXNpemU6ICRidXR0b24tZm9udC1tZWQ7IH1cbiAgICBAZWxzZSBpZiAkcGFkZGluZyA9PSAkYnV0dG9uLXRueSB7IGZvbnQtc2l6ZTogJGJ1dHRvbi1mb250LXRueTsgfVxuICAgIEBlbHNlIGlmICRwYWRkaW5nID09ICRidXR0b24tc21sIHsgZm9udC1zaXplOiAkYnV0dG9uLWZvbnQtc21sOyB9XG4gICAgQGVsc2UgaWYgJHBhZGRpbmcgPT0gJGJ1dHRvbi1scmcgeyBmb250LXNpemU6ICRidXR0b24tZm9udC1scmc7IH1cbiAgfVxuXG4gIC8vIFdlIGNhbiBzZXQgJGZ1bGwtd2lkdGg6dHJ1ZSB0byByZW1vdmUgc2lkZSBwYWRkaW5nIGV4dGVuZCB3aWR0aC5cbiAgQGlmICRmdWxsLXdpZHRoIHtcbiAgICAvLyBXZSBzdGlsbCBuZWVkIHRvIGNoZWNrIGlmICRwYWRkaW5nIGlzIHNldC5cbiAgICBAaWYgJHBhZGRpbmcge1xuICAgIHBhZGRpbmctdG9wOiAkcGFkZGluZztcbiAgICBwYWRkaW5nLWJvdHRvbTogJHBhZGRpbmcgKyByZW0tY2FsYygxKTtcbiAgICB9IEBlbHNlIGlmICRwYWRkaW5nID09IGZhbHNlIHtcbiAgICAgIHBhZGRpbmctdG9wOjA7XG4gICAgICBwYWRkaW5nLWJvdHRvbTowO1xuICAgIH1cbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuXG4vLyBATUlYSU5cbi8vXG4vLyB3ZSB1c2UgdGhpcyBtaXhpbiB0byBjcmVhdGUgdGhlIGJ1dHRvbiBob3ZlciBhbmQgYm9yZGVyIGNvbG9yc1xuXG4vLyBATUlYSU5cbi8vXG4vLyBXZSB1c2UgdGhpcyBtaXhpbiB0byBhZGQgYnV0dG9uIGNvbG9yIHN0eWxlc1xuLy9cbi8vICRiZyAtIEJhY2tncm91bmQgY29sb3IuIFdlIGNhbiBzZXQgJGJnOmZhbHNlIGZvciBhIHRyYW5zcGFyZW50IGJhY2tncm91bmQuIERlZmF1bHQ6ICRwcmltYXJ5LWNvbG9yLlxuLy8gJHJhZGl1cyAtIElmIHRydWUsIHNldCB0byBidXR0b24gcmFkaXVzIHdoaWNoIGlzICRidXR0b24tcmFkaXVzIHx8IGV4cGxpY2l0bHkgc2V0IHJhZGl1cyBhbW91bnQgaW4gcHggKGV4LiAkcmFkaXVzOjEwcHgpLiBEZWZhdWx0OiBmYWxzZVxuLy8gJGRpc2FibGVkIC0gV2UgY2FuIHNldCAkZGlzYWJsZWQ6dHJ1ZSB0byBjcmVhdGUgYSBkaXNhYmxlZCB0cmFuc3BhcmVudCBidXR0b24uIERlZmF1bHQ6IGZhbHNlXG4vLyAkYmctaG92ZXIgLSBCdXR0b24gSG92ZXIgQmFja2dyb3VuZCBDb2xvci4gRGVmYXVsdDogJGJ1dHRvbi1iZy1ob3ZlclxuLy8gJGJvcmRlci1jb2xvciAtIEJ1dHRvbiBCb3JkZXIgQ29sb3IuIERlZmF1bHQ6ICRidXR0b24tYm9yZGVyLWNvbG9yXG5AbWl4aW4gYnV0dG9uLXN0eWxlKCRiZzokYnV0dG9uLWJnLWNvbG9yLCAkcmFkaXVzOmZhbHNlLCAkZGlzYWJsZWQ6ZmFsc2UsICRiZy1ob3ZlcjpudWxsLCAkYm9yZGVyLWNvbG9yOm51bGwpIHtcblxuICAvLyBXZSBjb250cm9sIHdoaWNoIGJhY2tncm91bmQgc3R5bGVzIGFyZSB1c2VkLFxuICAvLyB0aGVzZSBjYW4gYmUgcmVtb3ZlZCBieSBzZXR0aW5nICRiZzpmYWxzZVxuICBAaWYgJGJnIHtcblxuICAgIEBpZiAkYmctaG92ZXIgPT0gbnVsbCB7XG4gICAgICAkYmctaG92ZXI6IGlmKCRiZyA9PSAkYnV0dG9uLWJnLWNvbG9yLCAkYnV0dG9uLWJnLWhvdmVyLCBzY2FsZS1jb2xvcigkYmcsICRsaWdodG5lc3M6ICRidXR0b24tZnVuY3Rpb24tZmFjdG9yKSk7XG4gICAgfVxuXG4gICAgQGlmICRib3JkZXItY29sb3IgPT0gbnVsbCB7XG4gICAgICAkYm9yZGVyLWNvbG9yOiBpZigkYmcgPT0gJGJ1dHRvbi1iZy1jb2xvciwgJGJ1dHRvbi1ib3JkZXItY29sb3IsIHNjYWxlLWNvbG9yKCRiZywgJGxpZ2h0bmVzczogJGJ1dHRvbi1mdW5jdGlvbi1mYWN0b3IpKTtcbiAgICB9XG5cbiAgICAvLyBUaGlzIGZpbmQgdGhlIGxpZ2h0bmVzcyBwZXJjZW50YWdlIG9mIHRoZSBiYWNrZ3JvdW5kIGNvbG9yLlxuICAgICRiZy1saWdodG5lc3M6IGxpZ2h0bmVzcygkYmcpO1xuICAgICRiZy1ob3Zlci1saWdodG5lc3M6IGxpZ2h0bmVzcygkYmctaG92ZXIpO1xuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJnO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMgeyBiYWNrZ3JvdW5kLWNvbG9yOiAkYmctaG92ZXI7IH1cblxuICAgIC8vIFdlIGNvbnRyb2wgdGhlIHRleHQgY29sb3IgZm9yIHlvdSBiYXNlZCBvbiB0aGUgYmFja2dyb3VuZCBjb2xvci5cbiAgICBjb2xvcjogaWYoJGJnLWxpZ2h0bmVzcyA+IDcwJSwgJGJ1dHRvbi1mb250LWNvbG9yLWFsdCwgJGJ1dHRvbi1mb250LWNvbG9yKTtcblxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICBjb2xvcjogaWYoJGJnLWhvdmVyLWxpZ2h0bmVzcyA+IDcwJSwgJGJ1dHRvbi1mb250LWNvbG9yLWFsdCwgJGJ1dHRvbi1mb250LWNvbG9yKTtcbiAgICB9XG4gIH1cblxuICAvLyBXZSBjYW4gc2V0ICRkaXNhYmxlZDp0cnVlIHRvIGNyZWF0ZSBhIGRpc2FibGVkIHRyYW5zcGFyZW50IGJ1dHRvbi5cbiAgQGlmICRkaXNhYmxlZCB7XG4gICAgY3Vyc29yOiAkYnV0dG9uLWRpc2FibGVkLWN1cnNvcjtcbiAgICBvcGFjaXR5OiAkYnV0dG9uLWRpc2FibGVkLW9wYWNpdHk7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMgeyBiYWNrZ3JvdW5kLWNvbG9yOiAkYmc7IH1cbiAgfVxuXG4gIC8vIFdlIGNhbiBjb250cm9sIGhvdyBtdWNoIGJ1dHRvbiByYWRpdXMgaXMgdXNlZC5cbiAgQGlmICRyYWRpdXMgPT0gdHJ1ZSB7IEBpbmNsdWRlIHJhZGl1cygkYnV0dG9uLXJhZGl1cyk7IH1cbiAgQGVsc2UgaWYgJHJhZGl1cyB7IEBpbmNsdWRlIHJhZGl1cygkcmFkaXVzKTsgfVxuXG59XG5cbi8vIEBNSVhJTlxuLy9cbi8vIFdlIHVzZSB0aGlzIHRvIHF1aWNrbHkgY3JlYXRlIGJ1dHRvbnMgd2l0aCBhIHNpbmdsZSBtaXhpbi4gQXMgQGphcmVkaGFyZHkgcHV0cyBpdCwgXCJ0aGUga2l0Y2hlbiBzaW5rIG1peGluXCJcbi8vXG4vLyAkcGFkZGluZyAtIFVzZWQgdG8gYnVpbGQgcGFkZGluZyBmb3IgYnV0dG9ucyBEZWZhdWx0OiAkYnV0dG9uLW1lZCB8fD0gcmVtLWNhbGMoMTIpXG4vLyAkYmcgLSBQcmltYXJ5IGNvbG9yIHNldCBpbiBzZXR0aW5ncyBmaWxlLiBEZWZhdWx0OiAkYnV0dG9uLWJnLlxuLy8gJHJhZGl1cyAtIElmIHRydWUsIHNldCB0byBidXR0b24gcmFkaXVzIHdoaWNoIGlzICRnbG9iYWwtcmFkaXVzIHx8IGV4cGxpY2l0bHkgc2V0IHJhZGl1cyBhbW91bnQgaW4gcHggKGV4LiAkcmFkaXVzOjEwcHgpLiBEZWZhdWx0OmZhbHNlLlxuLy8gJGZ1bGwtd2lkdGggLSBXZSBjYW4gc2V0ICRmdWxsLXdpZHRoOnRydWUgdG8gcmVtb3ZlIHNpZGUgcGFkZGluZyBleHRlbmQgd2lkdGguIERlZmF1bHQ6ZmFsc2UuXG4vLyAkZGlzYWJsZWQgLSBXZSBjYW4gc2V0ICRkaXNhYmxlZDp0cnVlIHRvIGNyZWF0ZSBhIGRpc2FibGVkIHRyYW5zcGFyZW50IGJ1dHRvbi4gRGVmYXVsdDpmYWxzZS5cbi8vICRpcy1wcmVmaXggLSBOb3QgdXNlZD8gRGVmYXVsdDpmYWxzZS5cbi8vICRiZy1ob3ZlciAtIEJ1dHRvbiBIb3ZlciBDb2xvciAtIERlZmF1bHQgbnVsbCAtIHNlZSBidXR0b24tc3R5bGUgbWl4aW5cbi8vICRib3JkZXItY29sb3IgLSBCdXR0b24gQm9yZGVyIENvbG9yIC0gRGVmYXVsdCBudWxsIC0gc2VlIGJ1dHRvbi1zdHlsZSBtaXhpblxuLy8gJHRyYW5zaXRpb24gLSBXZSBjYW4gY29udHJvbCB3aGV0aGVyIG9yIG5vdCB0byBpbmNsdWRlIHRoZSBiYWNrZ3JvdW5kLWNvbG9yIHRyYW5zaXRpb24gcHJvcGVydHkgLSBEZWZhdWx0OnRydWUuXG5AbWl4aW4gYnV0dG9uKCRwYWRkaW5nOiRidXR0b24tbWVkLCAkYmc6JGJ1dHRvbi1iZy1jb2xvciwgJHJhZGl1czpmYWxzZSwgJGZ1bGwtd2lkdGg6ZmFsc2UsICRkaXNhYmxlZDpmYWxzZSwgJGlzLXByZWZpeDpmYWxzZSwgJGJnLWhvdmVyOm51bGwsICRib3JkZXItY29sb3I6bnVsbCwgJHRyYW5zaXRpb246IHRydWUpIHtcbiAgQGluY2x1ZGUgYnV0dG9uLWJhc2U7XG4gIEBpbmNsdWRlIGJ1dHRvbi1zaXplKCRwYWRkaW5nLCAkZnVsbC13aWR0aCk7XG4gIEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkYmcsICRyYWRpdXMsICRkaXNhYmxlZCwgJGJnLWhvdmVyLCAkYm9yZGVyLWNvbG9yKTtcblxuICBAaWYgJHRyYW5zaXRpb24ge1xuICAgIEBpbmNsdWRlIHNpbmdsZS10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IpO1xuICB9XG59XG5cblxuQGluY2x1ZGUgZXhwb3J0cyhcImJ1dHRvblwiKSB7XG4gIEBpZiAkaW5jbHVkZS1odG1sLWJ1dHRvbi1jbGFzc2VzIHtcblxuICAgIC8vIERlZmF1bHQgc3R5bGVzIGFwcGxpZWQgb3V0c2lkZSBvZiBtZWRpYSBxdWVyeVxuICAgIGJ1dHRvbiwgLmJ1dHRvbiB7XG4gICAgICBAaW5jbHVkZSBidXR0b24tYmFzZTtcbiAgICAgIEBpbmNsdWRlIGJ1dHRvbi1zaXplO1xuICAgICAgQGluY2x1ZGUgYnV0dG9uLXN0eWxlO1xuXG4gICAgICBAaW5jbHVkZSBzaW5nbGUtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yKTtcblxuICAgICAgJi5zZWNvbmRhcnkgeyBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGJnOiRzZWNvbmRhcnktY29sb3IsICRiZy1ob3Zlcjokc2Vjb25kYXJ5LWJ1dHRvbi1iZy1ob3ZlciwgJGJvcmRlci1jb2xvcjokc2Vjb25kYXJ5LWJ1dHRvbi1ib3JkZXItY29sb3IpOyB9XG4gICAgICAmLnN1Y2Nlc3MgICB7IEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkYmc6JHN1Y2Nlc3MtY29sb3IsICRiZy1ob3Zlcjokc3VjY2Vzcy1idXR0b24tYmctaG92ZXIsICRib3JkZXItY29sb3I6JHN1Y2Nlc3MtYnV0dG9uLWJvcmRlci1jb2xvcik7IH1cbiAgICAgICYuYWxlcnQgICAgIHsgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRiZzokYWxlcnQtY29sb3IsICRiZy1ob3ZlcjokYWxlcnQtYnV0dG9uLWJnLWhvdmVyLCAkYm9yZGVyLWNvbG9yOiRhbGVydC1idXR0b24tYm9yZGVyLWNvbG9yKTsgfVxuICAgICAgJi53YXJuaW5nICAgeyBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGJnOiR3YXJuaW5nLWNvbG9yLCAkYmctaG92ZXI6JHdhcm5pbmctYnV0dG9uLWJnLWhvdmVyLCAkYm9yZGVyLWNvbG9yOiR3YXJuaW5nLWJ1dHRvbi1ib3JkZXItY29sb3IpOyB9XG4gICAgICAmLmluZm8gICAgICB7IEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkYmc6JGluZm8tY29sb3IsICRiZy1ob3ZlcjokaW5mby1idXR0b24tYmctaG92ZXIsICRib3JkZXItY29sb3I6JGluZm8tYnV0dG9uLWJvcmRlci1jb2xvcik7IH1cblxuICAgICAgJi5sYXJnZSAgeyBAaW5jbHVkZSBidXR0b24tc2l6ZSgkcGFkZGluZzokYnV0dG9uLWxyZyk7IH1cbiAgICAgICYuc21hbGwgIHsgQGluY2x1ZGUgYnV0dG9uLXNpemUoJHBhZGRpbmc6JGJ1dHRvbi1zbWwpOyB9XG4gICAgICAmLnRpbnkgICB7IEBpbmNsdWRlIGJ1dHRvbi1zaXplKCRwYWRkaW5nOiRidXR0b24tdG55KTsgfVxuICAgICAgJi5leHBhbmQgeyBAaW5jbHVkZSBidXR0b24tc2l6ZSgkcGFkZGluZzpudWxsLCRmdWxsLXdpZHRoOnRydWUpOyB9XG5cbiAgICAgICYubGVmdC1hbGlnbiAgeyB0ZXh0LWFsaWduOiBsZWZ0OyB0ZXh0LWluZGVudDogcmVtLWNhbGMoMTIpOyB9XG4gICAgICAmLnJpZ2h0LWFsaWduIHsgdGV4dC1hbGlnbjogcmlnaHQ7IHBhZGRpbmctcmlnaHQ6IHJlbS1jYWxjKDEyKTsgfVxuXG4gICAgICAmLnJhZGl1cyB7IEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkYmc6ZmFsc2UsICRyYWRpdXM6dHJ1ZSk7IH1cbiAgICAgICYucm91bmQgIHsgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRiZzpmYWxzZSwgJHJhZGl1czokYnV0dG9uLXJvdW5kKTsgfVxuXG4gICAgICAmLmRpc2FibGVkLCAmW2Rpc2FibGVkXSB7IEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkYmc6JGJ1dHRvbi1iZy1jb2xvciwgJGRpc2FibGVkOnRydWUsICRiZy1ob3ZlcjokYnV0dG9uLWJnLWhvdmVyLCAkYm9yZGVyLWNvbG9yOiRidXR0b24tYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgJi5zZWNvbmRhcnkgeyBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGJnOiRzZWNvbmRhcnktY29sb3IsICRkaXNhYmxlZDp0cnVlLCAkYmctaG92ZXI6JHNlY29uZGFyeS1idXR0b24tYmctaG92ZXIsICRib3JkZXItY29sb3I6JHNlY29uZGFyeS1idXR0b24tYm9yZGVyLWNvbG9yKTsgfVxuICAgICAgICAmLnN1Y2Nlc3MgeyBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGJnOiRzdWNjZXNzLWNvbG9yLCAkZGlzYWJsZWQ6dHJ1ZSwgJGJnLWhvdmVyOiRzdWNjZXNzLWJ1dHRvbi1iZy1ob3ZlciwgJGJvcmRlci1jb2xvcjokc3VjY2Vzcy1idXR0b24tYm9yZGVyLWNvbG9yKTsgfVxuICAgICAgICAmLmFsZXJ0IHsgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRiZzokYWxlcnQtY29sb3IsICRkaXNhYmxlZDp0cnVlLCAkYmctaG92ZXI6JGFsZXJ0LWJ1dHRvbi1iZy1ob3ZlciwgJGJvcmRlci1jb2xvcjokYWxlcnQtYnV0dG9uLWJvcmRlci1jb2xvcik7IH1cbiAgICAgICAgJi53YXJuaW5nIHsgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRiZzokd2FybmluZy1jb2xvciwgJGRpc2FibGVkOnRydWUsICRiZy1ob3Zlcjokd2FybmluZy1idXR0b24tYmctaG92ZXIsICRib3JkZXItY29sb3I6JHdhcm5pbmctYnV0dG9uLWJvcmRlci1jb2xvcik7IH1cbiAgICAgICAgJi5pbmZvIHsgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRiZzokaW5mby1jb2xvciwgJGRpc2FibGVkOnRydWUsICRiZy1ob3ZlcjokaW5mby1idXR0b24tYmctaG92ZXIsICRib3JkZXItY29sb3I6JGluZm8tYnV0dG9uLWJvcmRlci1jb2xvcik7IH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvL2ZpcmVmb3ggMnB4IGZpeFxuICAgIGJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lciB7Ym9yZGVyOjA7IHBhZGRpbmc6MDt9XG5cbiAgICBAbWVkaWEgI3skbWVkaXVtLXVwfSB7XG4gICAgICBidXR0b24sIC5idXR0b24ge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24tYmFzZSgkc3R5bGU6ZmFsc2UsICRkaXNwbGF5OmlubGluZS1ibG9jayk7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1zaXplKCRwYWRkaW5nOmZhbHNlLCAkZnVsbC13aWR0aDpmYWxzZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AaW1wb3J0IFwiZ2xvYmFsXCI7XG5cbi8vXG4vLyBAdmFyaWFibGVzXG4vL1xuJGluY2x1ZGUtaHRtbC1ncmlkLWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcyAhZGVmYXVsdDtcbiRpbmNsdWRlLXhsLWh0bWwtZ3JpZC1jbGFzc2VzOiBmYWxzZSAhZGVmYXVsdDtcblxuJHJvdy13aWR0aDogcmVtLWNhbGMoMTAwMCkgIWRlZmF1bHQ7XG4kdG90YWwtY29sdW1uczogMTIgIWRlZmF1bHQ7XG5cbiRsYXN0LWNoaWxkLWZsb2F0OiAkb3Bwb3NpdGUtZGlyZWN0aW9uICFkZWZhdWx0O1xuXG4vL1xuLy8gR3JpZCBGdW5jdGlvbnNcbi8vXG5cbi8vIERlcHJlY2F0ZWQ6IFdlJ2xsIGRyb3Agc3VwcG9ydCBmb3IgdGhpcyBpbiA1LjEsIHVzZSBncmlkLWNhbGMoKVxuQGZ1bmN0aW9uIGdyaWRDYWxjKCRjb2xOdW1iZXIsICR0b3RhbENvbHVtbnMpIHtcbiAgQHdhcm4gXCJncmlkQ2FsYygpIGlzIGRlcHJlY2F0ZWQsIHVzZSBncmlkLWNhbGMoKVwiO1xuICBAcmV0dXJuIGdyaWQtY2FsYygkY29sTnVtYmVyLCAkdG90YWxDb2x1bW5zKTtcbn1cblxuLy8gQEZVTkNUSU9OXG4vLyAkY29sTnVtYmVyIC0gRm91bmQgaW4gc2V0dGluZ3MgZmlsZVxuLy8gJHRvdGFsQ29sdW1ucyAtIEZvdW5kIGluIHNldHRpbmdzIGZpbGVcbkBmdW5jdGlvbiBncmlkLWNhbGMoJGNvbE51bWJlciwgJHRvdGFsQ29sdW1ucykge1xuICBAcmV0dXJuIHBlcmNlbnRhZ2UoKCRjb2xOdW1iZXIgLyAkdG90YWxDb2x1bW5zKSk7XG59XG5cbi8vXG4vLyBAbWl4aW5zXG4vL1xuXG4vLyBGb3IgY3JlYXRpbmcgY29udGFpbmVyLCBuZXN0ZWQsIGFuZCBjb2xsYXBzZWQgcm93cy5cbi8vXG4vL1xuLy8gJGJlaGF2aW9yIC0gQW55IHNwZWNpYWwgYmVoYXZpb3IgZm9yIHRoaXMgcm93PyBEZWZhdWx0OiBmYWxzZS4gT3B0aW9uczogbmVzdCwgY29sbGFwc2UsIG5lc3QtY29sbGFwc2UsIGZhbHNlLlxuQG1peGluIGdyaWQtcm93KCRiZWhhdmlvcjogZmFsc2UpIHtcblxuICAvLyB1c2UgQGluY2x1ZGUgZ3JpZC1yb3cobmVzdCk7IHRvIGluY2x1ZGUgYSBuZXN0ZWQgcm93XG4gIEBpZiAkYmVoYXZpb3IgPT0gbmVzdCB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbWFyZ2luLSN7JGRlZmF1bHQtZmxvYXR9OiAtKCRjb2x1bW4tZ3V0dGVyLzIpO1xuICAgIG1hcmdpbi0jeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiAtKCRjb2x1bW4tZ3V0dGVyLzIpO1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gIH1cblxuICAvLyB1c2UgQGluY2x1ZGUgZ3JpZC1yb3coY29sbGFwc2UpOyB0byBjb2xsYXBzZWQgYSBjb250YWluZXIgcm93IG1hcmdpbnNcbiAgQGVsc2UgaWYgJGJlaGF2aW9yID09IGNvbGxhcHNlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IDA7XG4gICAgbWF4LXdpZHRoOiAkcm93LXdpZHRoO1xuICB9XG5cbiAgLy8gdXNlIEBpbmNsdWRlIGdyaWQtcm93KG5lc3QtY29sbGFwc2UpOyB0byBjb2xsYXBzZSBvdXRlciBtYXJnaW5zIG9uIGEgbmVzdGVkIHJvd1xuICBAZWxzZSBpZiAkYmVoYXZpb3IgPT0gbmVzdC1jb2xsYXBzZSB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbWFyZ2luOiAwO1xuICAgIG1heC13aWR0aDogbm9uZTtcbiAgfVxuXG4gIC8vIHVzZSBAaW5jbHVkZSBncmlkLXJvdzsgdG8gdXNlIGEgY29udGFpbmVyIHJvd1xuICBAZWxzZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLSN7JGRlZmF1bHQtZmxvYXR9OiBhdXRvO1xuICAgIG1hcmdpbi0jeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiBhdXRvO1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBtYXgtd2lkdGg6ICRyb3ctd2lkdGg7XG4gIH1cblxuICAvLyBDbGVhcmZpeCBmb3IgYWxsIHJvd3NcbiAgQGluY2x1ZGUgY2xlYXJmaXgoKTtcbn1cblxuLy8gQ3JlYXRlcyBhIGNvbHVtbiwgc2hvdWxkIGJlIHVzZWQgaW5zaWRlIG9mIGEgbWVkaWEgcXVlcnkgdG8gY29udHJvbCBsYXlvdXRzXG4vL1xuLy8gJGNvbHVtbnMgLSBUaGUgbnVtYmVyIG9mIGNvbHVtbnMgdGhpcyBzaG91bGQgYmVcbi8vICRsYXN0LWNvbHVtbiAtIElzIHRoaXMgdGhlIGxhc3QgY29sdW1uPyBEZWZhdWx0OiBmYWxzZS5cbi8vICRjZW50ZXIgLSBDZW50ZXIgdGhlc2UgY29sdW1ucz8gRGVmYXVsdDogZmFsc2UuXG4vLyAkb2Zmc2V0IC0gIyBvZiBjb2x1bW5zIHRvIG9mZnNldC4gRGVmYXVsdDogZmFsc2UuXG4vLyAkcHVzaCAtICMgb2YgY29sdW1ucyB0byBwdXNoLiBEZWZhdWx0OiBmYWxzZS5cbi8vICRwdWxsIC0gIyBvZiBjb2x1bW5zIHRvIHB1bGwuIERlZmF1bHQ6IGZhbHNlLlxuLy8gJGNvbGxhcHNlIC0gR2V0IHJpZCBvZiBndXR0ZXIgcGFkZGluZyBvbiBjb2x1bW4/IERlZmF1bHQ6IGZhbHNlLlxuLy8gJGZsb2F0IC0gU2hvdWxkIHRoaXMgZmxvYXQ/IERlZmF1bHQ6IHRydWUuIE9wdGlvbnM6IHRydWUsIGZhbHNlLCBsZWZ0LCByaWdodC5cbkBtaXhpbiBncmlkLWNvbHVtbihcbiAgJGNvbHVtbnM6ZmFsc2UsXG4gICRsYXN0LWNvbHVtbjpmYWxzZSxcbiAgJGNlbnRlcjpmYWxzZSxcbiAgJG9mZnNldDpmYWxzZSxcbiAgJHB1c2g6ZmFsc2UsXG4gICRwdWxsOmZhbHNlLFxuICAkY29sbGFwc2U6ZmFsc2UsXG4gICRmbG9hdDp0cnVlLFxuICAkcG9zaXRpb246ZmFsc2UpIHtcblxuICAvLyBJZiBwb3NpdGlvbmVkIGZvciBkZWZhdWx0IC5jb2x1bW4sIGluY2x1ZGUgcmVsYXRpdmUgcG9zaXRpb25cbiAgLy8gcHVzaCBhbmQgcHVsbCByZXF1aXJlIHBvc2l0aW9uIHNldFxuICBAaWYgJHBvc2l0aW9uIG9yICRwdXNoIG9yICRwdWxsIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cblxuICAvLyBJZiBjb2xsYXBzZWQsIGdldCByaWQgb2YgZ3V0dGVyIHBhZGRpbmdcbiAgQGlmICRjb2xsYXBzZSB7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gIH1cblxuICAvLyBHdXR0ZXIgcGFkZGluZyB3aGVuZXZlciBhIGNvbHVtbiBpc24ndCBzZXQgdG8gY29sbGFwc2VcbiAgLy8gKHVzZSAkY29sbGFwc2U6bnVsbCB0byBkbyBub3RoaW5nKVxuICBAZWxzZSBpZiAkY29sbGFwc2UgPT0gZmFsc2Uge1xuICAgIHBhZGRpbmctbGVmdDogKCRjb2x1bW4tZ3V0dGVyIC8gMik7XG4gICAgcGFkZGluZy1yaWdodDogKCRjb2x1bW4tZ3V0dGVyIC8gMik7XG4gIH1cblxuICAvLyBJZiBhIGNvbHVtbiBudW1iZXIgaXMgZ2l2ZW4sIGNhbGN1bGF0ZSB3aWR0aFxuICBAaWYgJGNvbHVtbnMge1xuICAgIHdpZHRoOiBncmlkLWNhbGMoJGNvbHVtbnMsICR0b3RhbC1jb2x1bW5zKTtcblxuICAgIC8vIElmIGxhc3QgY29sdW1uLCBmbG9hdCBuYXR1cmFsbHkgaW5zdGVhZCBvZiB0byB0aGUgcmlnaHRcbiAgICBAaWYgJGxhc3QtY29sdW1uIHsgZmxvYXQ6ICRvcHBvc2l0ZS1kaXJlY3Rpb247IH1cbiAgfVxuXG4gIC8vIFNvdXJjZSBPcmRlcmluZywgYWRkcyBsZWZ0L3JpZ2h0IGRlcGVuZGluZyBvbiB3aGljaCB5b3UgdXNlLlxuICBAaWYgJHB1c2ggeyAjeyRkZWZhdWx0LWZsb2F0fTogZ3JpZC1jYWxjKCRwdXNoLCAkdG90YWwtY29sdW1ucyk7ICN7JG9wcG9zaXRlLWRpcmVjdGlvbn06IGF1dG87IH1cbiAgQGlmICRwdWxsIHsgI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogZ3JpZC1jYWxjKCRwdWxsLCAkdG90YWwtY29sdW1ucyk7ICN7JGRlZmF1bHQtZmxvYXR9OiBhdXRvOyB9XG5cbiAgQGlmICRmbG9hdCB7XG4gICAgQGlmICRmbG9hdCA9PSBsZWZ0IG9yICRmbG9hdCA9PSB0cnVlIHsgZmxvYXQ6ICRkZWZhdWx0LWZsb2F0OyB9XG4gICAgQGVsc2UgaWYgJGZsb2F0ID09IHJpZ2h0IHsgZmxvYXQ6ICRvcHBvc2l0ZS1kaXJlY3Rpb247IH1cbiAgICBAZWxzZSB7IGZsb2F0OiBub25lOyB9XG4gIH1cblxuICAvLyBJZiBjZW50ZXJlZCwgZ2V0IHJpZCBvZiBmbG9hdCBhbmQgYWRkIGFwcHJvcHJpYXRlIG1hcmdpbnNcbiAgQGlmICRjZW50ZXIge1xuICAgIG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogYXV0bztcbiAgICBtYXJnaW4tI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogYXV0bztcbiAgICBmbG9hdDogbm9uZTtcbiAgfVxuXG4gIC8vIElmIG9mZnNldCwgY2FsY3VsYXRlIGFwcHJvcHJpYXRlIG1hcmdpbnNcbiAgQGlmICRvZmZzZXQgeyBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06IGdyaWQtY2FsYygkb2Zmc2V0LCAkdG90YWwtY29sdW1ucykgIWltcG9ydGFudDsgfVxuXG59XG5cbi8vIENyZWF0ZSBwcmVzZW50YXRpb25hbCBjbGFzc2VzIGZvciBncmlkXG4vL1xuLy8gJHNpemUgLSBOYW1lIG9mIGNsYXNzIHRvIHVzZSwgaS5lLiBcImxhcmdlXCIgd2lsbCBnZW5lcmF0ZSAubGFyZ2UtMSwgLmxhcmdlLTIsIGV0Yy5cbkBtaXhpbiBncmlkLWh0bWwtY2xhc3Nlcygkc2l6ZSkge1xuXG4gIEBmb3IgJGkgZnJvbSAwIHRocm91Z2ggJHRvdGFsLWNvbHVtbnMgLSAxIHtcbiAgICAuI3skc2l6ZX0tcHVzaC0jeyRpfSB7XG4gICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbigkcHVzaDokaSwgJGNvbGxhcHNlOm51bGwsICRmbG9hdDpmYWxzZSk7XG4gICAgfVxuICAgIC4jeyRzaXplfS1wdWxsLSN7JGl9IHtcbiAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKCRwdWxsOiRpLCAkY29sbGFwc2U6bnVsbCwgJGZsb2F0OmZhbHNlKTtcbiAgICB9XG4gIH1cblxuICAuY29sdW1uLFxuICAuY29sdW1ucyB7IEBpbmNsdWRlIGdyaWQtY29sdW1uKCRjb2x1bW5zOmZhbHNlLCAkcG9zaXRpb246dHJ1ZSk7IH1cblxuXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJHRvdGFsLWNvbHVtbnMge1xuICAgIC4jeyRzaXplfS0jeyRpfSB7IEBpbmNsdWRlIGdyaWQtY29sdW1uKCRjb2x1bW5zOiRpLCRjb2xsYXBzZTpudWxsLCRmbG9hdDpmYWxzZSk7IH1cbiAgfVxuXG4gIEBmb3IgJGkgZnJvbSAwIHRocm91Z2ggJHRvdGFsLWNvbHVtbnMgLSAxIHtcbiAgICAuI3skc2l6ZX0tb2Zmc2V0LSN7JGl9IHsgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJG9mZnNldDokaSwgJGNvbGxhcHNlOm51bGwsJGZsb2F0OmZhbHNlKTsgfVxuICB9XG5cbiAgLiN7JHNpemV9LXJlc2V0LW9yZGVyIHtcbiAgICBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06IDA7XG4gICAgbWFyZ2luLSN7JG9wcG9zaXRlLWRpcmVjdGlvbn06IDA7XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogYXV0bztcbiAgICBmbG9hdDogJGRlZmF1bHQtZmxvYXQ7XG4gIH1cblxuICAuY29sdW1uLiN7JHNpemV9LWNlbnRlcmVkLFxuICAuY29sdW1ucy4jeyRzaXplfS1jZW50ZXJlZCB7IEBpbmNsdWRlIGdyaWQtY29sdW1uKCRjZW50ZXI6dHJ1ZSwgJGNvbGxhcHNlOm51bGwsICRmbG9hdDpmYWxzZSk7IH1cblxuICAuY29sdW1uLiN7JHNpemV9LXVuY2VudGVyZWQsXG4gIC5jb2x1bW5zLiN7JHNpemV9LXVuY2VudGVyZWQge1xuICAgIG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogMDtcbiAgICBtYXJnaW4tI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogMDtcbiAgICBmbG9hdDogJGRlZmF1bHQtZmxvYXQ7XG4gIH1cblxuICAvLyBGaWdodGluZyBbY2xhc3MqPVwiY29sdW1uXCJdICsgW2NsYXNzKj1cImNvbHVtblwiXTpsYXN0LWNoaWxkXG4gIC5jb2x1bW4uI3skc2l6ZX0tY2VudGVyZWQ6bGFzdC1jaGlsZCxcbiAgLmNvbHVtbnMuI3skc2l6ZX0tY2VudGVyZWQ6bGFzdC1jaGlsZHtcbiAgICBmbG9hdDogbm9uZTtcbiAgfVxuXG4gIC8vIEZpZ2h0aW5nIC5jb2x1bW4uPHByZXZpb3VzLXNpemU+LWNlbnRlcmVkOmxhc3QtY2hpbGRcbiAgLmNvbHVtbi4jeyRzaXplfS11bmNlbnRlcmVkOmxhc3QtY2hpbGQsXG4gIC5jb2x1bW5zLiN7JHNpemV9LXVuY2VudGVyZWQ6bGFzdC1jaGlsZCB7XG4gICAgZmxvYXQ6ICRkZWZhdWx0LWZsb2F0O1xuICB9XG5cbiAgLmNvbHVtbi4jeyRzaXplfS11bmNlbnRlcmVkLm9wcG9zaXRlLFxuICAuY29sdW1ucy4jeyRzaXplfS11bmNlbnRlcmVkLm9wcG9zaXRlIHtcbiAgICBmbG9hdDogJG9wcG9zaXRlLWRpcmVjdGlvbjtcbiAgfVxuXG5cdC5yb3cge1xuXHRcdCYuI3skc2l6ZX0tY29sbGFwc2Uge1xuXHRcdFx0PiAuY29sdW1uLFxuXHRcdFx0PiAuY29sdW1ucyB7IEBpbmNsdWRlIGdyaWQtY29sdW1uKCRjb2xsYXBzZTp0cnVlLCAkZmxvYXQ6ZmFsc2UpOyB9XG5cblx0XHRcdC5yb3cge21hcmdpbi1sZWZ0OjA7IG1hcmdpbi1yaWdodDowO31cblx0XHR9XG5cdFx0Ji4jeyRzaXplfS11bmNvbGxhcHNlIHtcblx0XHRcdD4gLmNvbHVtbixcblx0XHRcdD4gLmNvbHVtbnMge1xuXHRcdFx0XHRAaW5jbHVkZSBncmlkLWNvbHVtbjtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuQGluY2x1ZGUgZXhwb3J0cyhcImdyaWRcIikge1xuICBAaWYgJGluY2x1ZGUtaHRtbC1ncmlkLWNsYXNzZXMge1xuICAgIC5yb3cge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1yb3c7XG5cbiAgICAgICYuY29sbGFwc2Uge1xuICAgICAgICAgPiAuY29sdW1uLFxuICAgICAgICAgPiAuY29sdW1ucyB7IEBpbmNsdWRlIGdyaWQtY29sdW1uKCRjb2xsYXBzZTp0cnVlLCAkZmxvYXQ6ZmFsc2UpOyB9XG5cbiAgICAgICAgLnJvdyB7bWFyZ2luLWxlZnQ6MDsgbWFyZ2luLXJpZ2h0OjA7fVxuICAgICAgfVxuXG4gICAgICAucm93IHsgQGluY2x1ZGUgZ3JpZC1yb3coJGJlaGF2aW9yOm5lc3QpO1xuICAgICAgICAmLmNvbGxhcHNlIHsgQGluY2x1ZGUgZ3JpZC1yb3coJGJlaGF2aW9yOm5lc3QtY29sbGFwc2UpOyB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmNvbHVtbixcbiAgICAuY29sdW1ucyB7IEBpbmNsdWRlIGdyaWQtY29sdW1uKCRjb2x1bW5zOiR0b3RhbC1jb2x1bW5zKTsgfVxuXG4gICAgW2NsYXNzKj1cImNvbHVtblwiXSArIFtjbGFzcyo9XCJjb2x1bW5cIl06bGFzdC1jaGlsZCB7IGZsb2F0OiAkbGFzdC1jaGlsZC1mbG9hdDsgfVxuICAgIFtjbGFzcyo9XCJjb2x1bW5cIl0gKyBbY2xhc3MqPVwiY29sdW1uXCJdLmVuZCB7IGZsb2F0OiAkZGVmYXVsdC1mbG9hdDsgfVxuXG4gICAgQG1lZGlhICN7JHNtYWxsLXVwfSB7XG4gICAgICBAaW5jbHVkZSBncmlkLWh0bWwtY2xhc3Nlcygkc2l6ZTpzbWFsbCk7XG4gICAgfVxuXG4gICAgQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1odG1sLWNsYXNzZXMoJHNpemU6bWVkaXVtKTtcbiAgICAgIC8vIE9sZCBwdXNoIGFuZCBwdWxsIGNsYXNzZXNcbiAgICAgIEBmb3IgJGkgZnJvbSAwIHRocm91Z2ggJHRvdGFsLWNvbHVtbnMgLSAxIHtcbiAgICAgICAgLnB1c2gtI3skaX0ge1xuICAgICAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKCRwdXNoOiRpLCAkY29sbGFwc2U6bnVsbCwgJGZsb2F0OmZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgICAucHVsbC0jeyRpfSB7XG4gICAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJHB1bGw6JGksICRjb2xsYXBzZTpudWxsLCAkZmxvYXQ6ZmFsc2UpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIEBtZWRpYSAjeyRsYXJnZS11cH0ge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1odG1sLWNsYXNzZXMoJHNpemU6bGFyZ2UpO1xuICAgICAgQGZvciAkaSBmcm9tIDAgdGhyb3VnaCAkdG90YWwtY29sdW1ucyAtIDEge1xuICAgICAgICAucHVzaC0jeyRpfSB7XG4gICAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJHB1c2g6JGksICRjb2xsYXBzZTpudWxsLCAkZmxvYXQ6ZmFsc2UpO1xuICAgICAgICB9XG4gICAgICAgIC5wdWxsLSN7JGl9IHtcbiAgICAgICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbigkcHVsbDokaSwgJGNvbGxhcHNlOm51bGwsICRmbG9hdDpmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGlmICRpbmNsdWRlLXhsLWh0bWwtZ3JpZC1jbGFzc2VzIHtcbiAgICBAbWVkaWEgI3skeGxhcmdlLXVwfSB7XG4gICAgICBAaW5jbHVkZSBncmlkLWh0bWwtY2xhc3Nlcygkc2l6ZTp4bGFyZ2UpO1xuICAgIH1cbiAgICBAbWVkaWEgI3skeHhsYXJnZS11cH0ge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1odG1sLWNsYXNzZXMoJHNpemU6eHhsYXJnZSk7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AaW1wb3J0IFwiZ2xvYmFsXCI7XG5cbi8vXG4vLyBAdmFyaWFibGVzXG4vL1xuJGluY2x1ZGUtaHRtbC1pbmxpbmUtbGlzdC1jbGFzc2VzOiAkaW5jbHVkZS1odG1sLWNsYXNzZXMgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGlzIHRvIGNvbnRyb2wgdGhlIG1hcmdpbnMgYW5kIHBhZGRpbmcgb2YgdGhlIGlubGluZSBsaXN0LlxuJGlubGluZS1saXN0LXRvcC1tYXJnaW46IDAgIWRlZmF1bHQ7XG4kaW5saW5lLWxpc3Qtb3Bwb3NpdGUtbWFyZ2luOiAwICFkZWZhdWx0O1xuJGlubGluZS1saXN0LWJvdHRvbS1tYXJnaW46IHJlbS1jYWxjKDE3KSAhZGVmYXVsdDtcbiRpbmxpbmUtbGlzdC1kZWZhdWx0LWZsb2F0LW1hcmdpbjogcmVtLWNhbGMoLTIyKSAhZGVmYXVsdDtcbiRpbmxpbmUtbGlzdC1kZWZhdWx0LWZsb2F0LWxpc3QtbWFyZ2luOiByZW0tY2FsYygyMikgIWRlZmF1bHQ7XG5cbiRpbmxpbmUtbGlzdC1wYWRkaW5nOiAwICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhpcyB0byBjb250cm9sIHRoZSBvdmVyZmxvdyBvZiB0aGUgaW5saW5lIGxpc3QuXG4kaW5saW5lLWxpc3Qtb3ZlcmZsb3c6IGhpZGRlbiAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoaXMgdG8gY29udHJvbCB0aGUgbGlzdCBpdGVtc1xuJGlubGluZS1saXN0LWRpc3BsYXk6IGJsb2NrICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhpcyB0byBjb250cm9sIGFueSBlbGVtZW50cyB3aXRoaW4gbGlzdCBpdGVtc1xuJGlubGluZS1saXN0LWNoaWxkcmVuLWRpc3BsYXk6IGJsb2NrICFkZWZhdWx0O1xuXG4vL1xuLy8gQG1peGluc1xuLy9cbi8vIFdlIHVzZSB0aGlzIG1peGluIHRvIGNyZWF0ZSBpbmxpbmUgbGlzdHNcbkBtaXhpbiBpbmxpbmUtbGlzdCB7XG4gIG1hcmdpbjogJGlubGluZS1saXN0LXRvcC1tYXJnaW4gYXV0byAkaW5saW5lLWxpc3QtYm90dG9tLW1hcmdpbiBhdXRvO1xuICBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06ICRpbmxpbmUtbGlzdC1kZWZhdWx0LWZsb2F0LW1hcmdpbjtcbiAgbWFyZ2luLSN7JG9wcG9zaXRlLWRpcmVjdGlvbn06ICRpbmxpbmUtbGlzdC1vcHBvc2l0ZS1tYXJnaW47XG4gIHBhZGRpbmc6ICRpbmxpbmUtbGlzdC1wYWRkaW5nO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBvdmVyZmxvdzogJGlubGluZS1saXN0LW92ZXJmbG93O1xuXG4gICYgPiBsaSB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBmbG9hdDogJGRlZmF1bHQtZmxvYXQ7XG4gICAgbWFyZ2luLSN7JGRlZmF1bHQtZmxvYXR9OiAkaW5saW5lLWxpc3QtZGVmYXVsdC1mbG9hdC1saXN0LW1hcmdpbjtcbiAgICBkaXNwbGF5OiAkaW5saW5lLWxpc3QtZGlzcGxheTtcbiAgICAmPiogeyBkaXNwbGF5OiAkaW5saW5lLWxpc3QtY2hpbGRyZW4tZGlzcGxheTsgfVxuICB9XG59XG5cbkBpbmNsdWRlIGV4cG9ydHMoXCJpbmxpbmUtbGlzdFwiKSB7XG4gIEBpZiAkaW5jbHVkZS1odG1sLWlubGluZS1saXN0LWNsYXNzZXMge1xuICAgIC5pbmxpbmUtbGlzdCB7XG4gICAgICBAaW5jbHVkZSBpbmxpbmUtbGlzdCgpO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQGltcG9ydCBcImdsb2JhbFwiO1xuXG4vL1xuLy8gQG5hbWUgX3RhYmxlcy5zY3NzXG4vLyBAZGVwZW5kZW5jaWVzIF9nbG9iYWwuc2Nzc1xuLy9cblxuLy9cbi8vIEB2YXJpYWJsZXNcbi8vXG5cbiRpbmNsdWRlLWh0bWwtdGFibGUtY2xhc3NlczogJGluY2x1ZGUtaHRtbC1jbGFzc2VzICFkZWZhdWx0O1xuXG4vLyBUaGVzZSBjb250cm9sIHRoZSBiYWNrZ3JvdW5kIGNvbG9yIGZvciB0aGUgdGFibGUgYW5kIGV2ZW4gcm93c1xuJHRhYmxlLWJnOiAkd2hpdGUgIWRlZmF1bHQ7XG4kdGFibGUtZXZlbi1yb3ctYmc6ICRzbm93ICFkZWZhdWx0O1xuXG4vLyBUaGVzZSBjb250cm9sIHRoZSB0YWJsZSBjZWxsIGJvcmRlciBzdHlsZVxuJHRhYmxlLWJvcmRlci1zdHlsZTogc29saWQgIWRlZmF1bHQ7XG4kdGFibGUtYm9yZGVyLXNpemU6IDFweCAhZGVmYXVsdDtcbiR0YWJsZS1ib3JkZXItY29sb3I6ICRnYWluc2Jvcm8gIWRlZmF1bHQ7XG5cbi8vIFRoZXNlIGNvbnRyb2wgdGhlIHRhYmxlIGhlYWQgc3R5bGVzXG4kdGFibGUtaGVhZC1iZzogJHdoaXRlLXNtb2tlICFkZWZhdWx0O1xuJHRhYmxlLWhlYWQtZm9udC1zaXplOiByZW0tY2FsYygxNCkgIWRlZmF1bHQ7XG4kdGFibGUtaGVhZC1mb250LWNvbG9yOiAkamV0ICFkZWZhdWx0O1xuJHRhYmxlLWhlYWQtZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ib2xkICFkZWZhdWx0O1xuJHRhYmxlLWhlYWQtcGFkZGluZzogcmVtLWNhbGMoOCAxMCAxMCkgIWRlZmF1bHQ7XG5cbi8vIFRoZXNlIGNvbnRyb2wgdGhlIHRhYmxlIGZvb3Qgc3R5bGVzXG4kdGFibGUtZm9vdC1iZzogJHRhYmxlLWhlYWQtYmcgIWRlZmF1bHQ7XG4kdGFibGUtZm9vdC1mb250LXNpemU6ICR0YWJsZS1oZWFkLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiR0YWJsZS1mb290LWZvbnQtY29sb3I6ICR0YWJsZS1oZWFkLWZvbnQtY29sb3IgIWRlZmF1bHQ7XG4kdGFibGUtZm9vdC1mb250LXdlaWdodDogJHRhYmxlLWhlYWQtZm9udC13ZWlnaHQgIWRlZmF1bHQ7XG4kdGFibGUtZm9vdC1wYWRkaW5nOiAkdGFibGUtaGVhZC1wYWRkaW5nICFkZWZhdWx0O1xuXG4vLyBUaGVzZSBjb250cm9sIHRoZSBjYXB0aW9uXG4kdGFibGUtY2FwdGlvbi1iZzogdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG4kdGFibGUtY2FwdGlvbi1mb250LWNvbG9yOiAkdGFibGUtaGVhZC1mb250LWNvbG9yICFkZWZhdWx0O1xuJHRhYmxlLWNhcHRpb24tZm9udC1zaXplOiByZW0tY2FsYygxNikgIWRlZmF1bHQ7XG4kdGFibGUtY2FwdGlvbi1mb250LXdlaWdodDogYm9sZCAhZGVmYXVsdDtcblxuLy8gVGhlc2UgY29udHJvbCB0aGUgcm93IHBhZGRpbmcgYW5kIGZvbnQgc3R5bGVzXG4kdGFibGUtcm93LXBhZGRpbmc6IHJlbS1jYWxjKDkgMTApICFkZWZhdWx0O1xuJHRhYmxlLXJvdy1mb250LXNpemU6IHJlbS1jYWxjKDE0KSAhZGVmYXVsdDtcbiR0YWJsZS1yb3ctZm9udC1jb2xvcjogJGpldCAhZGVmYXVsdDtcbiR0YWJsZS1saW5lLWhlaWdodDogcmVtLWNhbGMoMTgpICFkZWZhdWx0O1xuXG4vLyBUaGVzZSBhcmUgZm9yIGNvbnRyb2xsaW5nIHRoZSBsYXlvdXQsIGRpc3BsYXkgYW5kIG1hcmdpbiBvZiB0YWJsZXNcbiR0YWJsZS1sYXlvdXQ6IGF1dG8gIWRlZmF1bHQ7XG4kdGFibGUtZGlzcGxheTogdGFibGUtY2VsbCAhZGVmYXVsdDtcbiR0YWJsZS1tYXJnaW4tYm90dG9tOiByZW0tY2FsYygyMCkgIWRlZmF1bHQ7XG5cblxuLy9cbi8vIEBtaXhpbnNcbi8vXG5cbkBtaXhpbiB0YWJsZSB7XG4gIGJhY2tncm91bmQ6ICR0YWJsZS1iZztcbiAgbWFyZ2luLWJvdHRvbTogJHRhYmxlLW1hcmdpbi1ib3R0b207XG4gIGJvcmRlcjogJHRhYmxlLWJvcmRlci1zdHlsZSAkdGFibGUtYm9yZGVyLXNpemUgJHRhYmxlLWJvcmRlci1jb2xvcjtcbiAgdGFibGUtbGF5b3V0OiAkdGFibGUtbGF5b3V0O1xuXG4gIGNhcHRpb24ge1xuICAgIGJhY2tncm91bmQ6ICR0YWJsZS1jYXB0aW9uLWJnO1xuICAgIGNvbG9yOiAkdGFibGUtY2FwdGlvbi1mb250LWNvbG9yO1xuICAgIGZvbnQ6IHtcbiAgICAgIHNpemU6ICR0YWJsZS1jYXB0aW9uLWZvbnQtc2l6ZTtcbiAgICAgIHdlaWdodDogJHRhYmxlLWNhcHRpb24tZm9udC13ZWlnaHQ7XG4gICAgfVxuICB9XG5cbiAgdGhlYWQge1xuICAgIGJhY2tncm91bmQ6ICR0YWJsZS1oZWFkLWJnO1xuXG4gICAgdHIge1xuICAgICAgdGgsXG4gICAgICB0ZCB7XG4gICAgICAgIHBhZGRpbmc6ICR0YWJsZS1oZWFkLXBhZGRpbmc7XG4gICAgICAgIGZvbnQtc2l6ZTogJHRhYmxlLWhlYWQtZm9udC1zaXplO1xuICAgICAgICBmb250LXdlaWdodDogJHRhYmxlLWhlYWQtZm9udC13ZWlnaHQ7XG4gICAgICAgIGNvbG9yOiAkdGFibGUtaGVhZC1mb250LWNvbG9yO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHRmb290IHtcbiAgICBiYWNrZ3JvdW5kOiAkdGFibGUtZm9vdC1iZztcblxuICAgIHRyIHtcbiAgICAgIHRoLFxuICAgICAgdGQge1xuICAgICAgICBwYWRkaW5nOiAkdGFibGUtZm9vdC1wYWRkaW5nO1xuICAgICAgICBmb250LXNpemU6ICR0YWJsZS1mb290LWZvbnQtc2l6ZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICR0YWJsZS1mb290LWZvbnQtd2VpZ2h0O1xuICAgICAgICBjb2xvcjogJHRhYmxlLWZvb3QtZm9udC1jb2xvcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB0ciB7XG4gICAgdGgsXG4gICAgdGQge1xuICAgICAgcGFkZGluZzogJHRhYmxlLXJvdy1wYWRkaW5nO1xuICAgICAgZm9udC1zaXplOiAkdGFibGUtcm93LWZvbnQtc2l6ZTtcbiAgICAgIGNvbG9yOiAkdGFibGUtcm93LWZvbnQtY29sb3I7XG4gICAgICB0ZXh0LWFsaWduOiAkZGVmYXVsdC1mbG9hdDtcbiAgICB9XG5cbiAgICAmLmV2ZW4sXG4gICAgJi5hbHQsXG4gICAgJjpudGgtb2YtdHlwZShldmVuKSB7IGJhY2tncm91bmQ6ICR0YWJsZS1ldmVuLXJvdy1iZzsgfVxuICB9XG5cbiAgdGhlYWQgdHIgdGgsXG4gIHRmb290IHRyIHRoLFxuICB0Zm9vdCB0ciB0ZCxcbiAgdGJvZHkgdHIgdGgsXG4gIHRib2R5IHRyIHRkLFxuICB0ciB0ZCB7IGRpc3BsYXk6ICR0YWJsZS1kaXNwbGF5OyBsaW5lLWhlaWdodDogJHRhYmxlLWxpbmUtaGVpZ2h0OyB9XG59XG5cblxuQGluY2x1ZGUgZXhwb3J0cyhcInRhYmxlXCIpIHtcbiAgQGlmICRpbmNsdWRlLWh0bWwtdGFibGUtY2xhc3NlcyB7XG4gICAgdGFibGUge1xuICAgICAgQGluY2x1ZGUgdGFibGU7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AaW1wb3J0IFwiZ2xvYmFsXCI7XG5AaW1wb3J0IFwiZ3JpZFwiO1xuXG4vL1xuLy8gQHZhcmlhYmxlc1xuLy9cblxuJGluY2x1ZGUtaHRtbC10YWJzLWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcyAhZGVmYXVsdDtcblxuJHRhYnMtbmF2aWdhdGlvbi1wYWRkaW5nOiByZW0tY2FsYygxNikgIWRlZmF1bHQ7XG4kdGFicy1uYXZpZ2F0aW9uLWJnLWNvbG9yOiAkc2lsdmVyICFkZWZhdWx0O1xuJHRhYnMtbmF2aWdhdGlvbi1hY3RpdmUtYmctY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcbiR0YWJzLW5hdmlnYXRpb24taG92ZXItYmctY29sb3I6IHNjYWxlLWNvbG9yKCR0YWJzLW5hdmlnYXRpb24tYmctY29sb3IsICRsaWdodG5lc3M6IC02JSkgIWRlZmF1bHQ7XG4kdGFicy1uYXZpZ2F0aW9uLWZvbnQtY29sb3I6ICRqZXQgIWRlZmF1bHQ7XG4kdGFicy1uYXZpZ2F0aW9uLWFjdGl2ZS1mb250LWNvbG9yOiAkdGFicy1uYXZpZ2F0aW9uLWZvbnQtY29sb3IgIWRlZmF1bHQ7XG4kdGFicy1uYXZpZ2F0aW9uLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTYpICFkZWZhdWx0O1xuJHRhYnMtbmF2aWdhdGlvbi1mb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHkgIWRlZmF1bHQ7XG5cbiR0YWJzLWNvbnRlbnQtbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMjQpICFkZWZhdWx0O1xuJHRhYnMtY29udGVudC1wYWRkaW5nOiAoJGNvbHVtbi1ndXR0ZXIvMikgIWRlZmF1bHQ7XG5cbiR0YWJzLXZlcnRpY2FsLW5hdmlnYXRpb24tbWFyZ2luLWJvdHRvbTogMS4yNXJlbSAhZGVmYXVsdDtcblxuQGluY2x1ZGUgZXhwb3J0cyhcInRhYlwiKSB7XG4gIEBpZiAkaW5jbHVkZS1odG1sLXRhYnMtY2xhc3NlcyB7XG4gICAgLnRhYnMge1xuICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgIGRkLCAudGFiLXRpdGxlIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgIGZsb2F0OiAkZGVmYXVsdC1mbG9hdDtcbiAgICAgICAgPiBhIHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBiYWNrZ3JvdW5kOiB7XG4gICAgICAgICAgICBjb2xvcjogJHRhYnMtbmF2aWdhdGlvbi1iZy1jb2xvcjtcbiAgICAgICAgICB9XG4gICAgICAgICAgY29sb3I6ICR0YWJzLW5hdmlnYXRpb24tZm9udC1jb2xvcjtcbiAgICAgICAgICBwYWRkaW5nOiAkdGFicy1uYXZpZ2F0aW9uLXBhZGRpbmcgJHRhYnMtbmF2aWdhdGlvbi1wYWRkaW5nICogMjtcbiAgICAgICAgICBmb250LWZhbWlseTogJHRhYnMtbmF2aWdhdGlvbi1mb250LWZhbWlseTtcbiAgICAgICAgICBmb250LXNpemU6ICR0YWJzLW5hdmlnYXRpb24tZm9udC1zaXplO1xuICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDoge1xuICAgICAgICAgICAgICBjb2xvcjogJHRhYnMtbmF2aWdhdGlvbi1ob3Zlci1iZy1jb2xvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgJjpmb2N1c3tcbiAgICAgICAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJi5hY3RpdmUgYSB7XG4gICAgICAgICAgYmFja2dyb3VuZDoge1xuICAgICAgICAgICAgY29sb3I6ICR0YWJzLW5hdmlnYXRpb24tYWN0aXZlLWJnLWNvbG9yO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb2xvcjokdGFicy1uYXZpZ2F0aW9uLWFjdGl2ZS1mb250LWNvbG9yO1xuICAgICAgICAgIH1cbiAgICAgIH1cbiAgICAgICYucmFkaXVzIHtcbiAgICAgICAgZGQ6Zmlyc3QtY2hpbGQsIC50YWI6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgIGEgeyBAaW5jbHVkZSBzaWRlLXJhZGl1cygkZGVmYXVsdC1mbG9hdCwgJGdsb2JhbC1yYWRpdXMpOyB9XG4gICAgICAgIH1cbiAgICAgICAgZGQ6bGFzdC1jaGlsZCwgLnRhYjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICBhIHsgQGluY2x1ZGUgc2lkZS1yYWRpdXMoJG9wcG9zaXRlLWRpcmVjdGlvbiwgJGdsb2JhbC1yYWRpdXMpOyB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICYudmVydGljYWwge1xuICAgICAgICBkZCwgLnRhYi10aXRsZSB7XG4gICAgICAgICAgcG9zaXRpb246IGluaGVyaXQ7XG4gICAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnRhYnMtY29udGVudCB7XG4gICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICAgIG1hcmdpbi1ib3R0b206ICR0YWJzLWNvbnRlbnQtbWFyZ2luLWJvdHRvbTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgPiAuY29udGVudCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIGZsb2F0OiAkZGVmYXVsdC1mbG9hdDtcbiAgICAgICAgcGFkZGluZzogJHRhYnMtY29udGVudC1wYWRkaW5nIDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAmLmFjdGl2ZSB7IGRpc3BsYXk6IGJsb2NrOyBmbG9hdDogbm9uZTsgfVxuICAgICAgICAmLmNvbnRhaW5lZCB7IHBhZGRpbmc6ICR0YWJzLWNvbnRlbnQtcGFkZGluZzsgfVxuICAgICAgfVxuICAgICAgJi52ZXJ0aWNhbCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICA+IC5jb250ZW50IHsgcGFkZGluZzogMCAkdGFicy1jb250ZW50LXBhZGRpbmc7IH1cbiAgICAgIH1cbiAgICB9XG4gICAgQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgICAgLnRhYnMge1xuICAgICAgICAmLnZlcnRpY2FsIHtcbiAgICAgICAgICB3aWR0aDogMjAlO1xuICAgICAgICAgIG1heC13aWR0aDogMjAlO1xuICAgICAgICAgIGZsb2F0OiAkZGVmYXVsdC1mbG9hdDtcbiAgICAgICAgICBtYXJnaW46IDAgMCAkdGFicy12ZXJ0aWNhbC1uYXZpZ2F0aW9uLW1hcmdpbi1ib3R0b207XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC50YWJzLWNvbnRlbnQge1xuICAgICAgICAmLnZlcnRpY2FsIHtcbiAgICAgICAgICB3aWR0aDogODAlO1xuICAgICAgICAgIG1heC13aWR0aDogODAlO1xuICAgICAgICAgIGZsb2F0OiAkZGVmYXVsdC1mbG9hdDtcbiAgICAgICAgICBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06IC0xcHg7XG4gICAgICAgICAgcGFkZGluZy0jeyRkZWZhdWx0LWZsb2F0fTogMXJlbTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAubm8tanMge1xuICAgICAgLnRhYnMtY29udGVudCA+IC5jb250ZW50IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQGltcG9ydCBcImdsb2JhbFwiO1xuXG4vL1xuLy8gQHZhcmlhYmxlc1xuLy9cbiRpbmNsdWRlLWh0bWwtZ3JpZC1jbGFzc2VzOiAkaW5jbHVkZS1odG1sLWNsYXNzZXMgIWRlZmF1bHQ7XG4kaW5jbHVkZS14bC1odG1sLWdyaWQtY2xhc3NlczogZmFsc2UgIWRlZmF1bHQ7XG5cbiRyb3ctd2lkdGg6IHJlbS1jYWxjKDEwMDApICFkZWZhdWx0O1xuJHRvdGFsLWNvbHVtbnM6IDEyICFkZWZhdWx0O1xuXG4kbGFzdC1jaGlsZC1mbG9hdDogJG9wcG9zaXRlLWRpcmVjdGlvbiAhZGVmYXVsdDtcblxuLy9cbi8vIEdyaWQgRnVuY3Rpb25zXG4vL1xuXG4vLyBEZXByZWNhdGVkOiBXZSdsbCBkcm9wIHN1cHBvcnQgZm9yIHRoaXMgaW4gNS4xLCB1c2UgZ3JpZC1jYWxjKClcbkBmdW5jdGlvbiBncmlkQ2FsYygkY29sTnVtYmVyLCAkdG90YWxDb2x1bW5zKSB7XG4gIEB3YXJuIFwiZ3JpZENhbGMoKSBpcyBkZXByZWNhdGVkLCB1c2UgZ3JpZC1jYWxjKClcIjtcbiAgQHJldHVybiBncmlkLWNhbGMoJGNvbE51bWJlciwgJHRvdGFsQ29sdW1ucyk7XG59XG5cbi8vIEBGVU5DVElPTlxuLy8gJGNvbE51bWJlciAtIEZvdW5kIGluIHNldHRpbmdzIGZpbGVcbi8vICR0b3RhbENvbHVtbnMgLSBGb3VuZCBpbiBzZXR0aW5ncyBmaWxlXG5AZnVuY3Rpb24gZ3JpZC1jYWxjKCRjb2xOdW1iZXIsICR0b3RhbENvbHVtbnMpIHtcbiAgQHJldHVybiBwZXJjZW50YWdlKCgkY29sTnVtYmVyIC8gJHRvdGFsQ29sdW1ucykpO1xufVxuXG4vL1xuLy8gQG1peGluc1xuLy9cblxuLy8gRm9yIGNyZWF0aW5nIGNvbnRhaW5lciwgbmVzdGVkLCBhbmQgY29sbGFwc2VkIHJvd3MuXG4vL1xuLy9cbi8vICRiZWhhdmlvciAtIEFueSBzcGVjaWFsIGJlaGF2aW9yIGZvciB0aGlzIHJvdz8gRGVmYXVsdDogZmFsc2UuIE9wdGlvbnM6IG5lc3QsIGNvbGxhcHNlLCBuZXN0LWNvbGxhcHNlLCBmYWxzZS5cbkBtaXhpbiBncmlkLXJvdygkYmVoYXZpb3I6IGZhbHNlKSB7XG5cbiAgLy8gdXNlIEBpbmNsdWRlIGdyaWQtcm93KG5lc3QpOyB0byBpbmNsdWRlIGEgbmVzdGVkIHJvd1xuICBAaWYgJGJlaGF2aW9yID09IG5lc3Qge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogLSgkY29sdW1uLWd1dHRlci8yKTtcbiAgICBtYXJnaW4tI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogLSgkY29sdW1uLWd1dHRlci8yKTtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgbWF4LXdpZHRoOiBub25lO1xuICB9XG5cbiAgLy8gdXNlIEBpbmNsdWRlIGdyaWQtcm93KGNvbGxhcHNlKTsgdG8gY29sbGFwc2VkIGEgY29udGFpbmVyIHJvdyBtYXJnaW5zXG4gIEBlbHNlIGlmICRiZWhhdmlvciA9PSBjb2xsYXBzZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luOiAwO1xuICAgIG1heC13aWR0aDogJHJvdy13aWR0aDtcbiAgfVxuXG4gIC8vIHVzZSBAaW5jbHVkZSBncmlkLXJvdyhuZXN0LWNvbGxhcHNlKTsgdG8gY29sbGFwc2Ugb3V0ZXIgbWFyZ2lucyBvbiBhIG5lc3RlZCByb3dcbiAgQGVsc2UgaWYgJGJlaGF2aW9yID09IG5lc3QtY29sbGFwc2Uge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG1hcmdpbjogMDtcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gIH1cblxuICAvLyB1c2UgQGluY2x1ZGUgZ3JpZC1yb3c7IHRvIHVzZSBhIGNvbnRhaW5lciByb3dcbiAgQGVsc2Uge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogYXV0bztcbiAgICBtYXJnaW4tI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogYXV0bztcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgbWF4LXdpZHRoOiAkcm93LXdpZHRoO1xuICB9XG5cbiAgLy8gQ2xlYXJmaXggZm9yIGFsbCByb3dzXG4gIEBpbmNsdWRlIGNsZWFyZml4KCk7XG59XG5cbi8vIENyZWF0ZXMgYSBjb2x1bW4sIHNob3VsZCBiZSB1c2VkIGluc2lkZSBvZiBhIG1lZGlhIHF1ZXJ5IHRvIGNvbnRyb2wgbGF5b3V0c1xuLy9cbi8vICRjb2x1bW5zIC0gVGhlIG51bWJlciBvZiBjb2x1bW5zIHRoaXMgc2hvdWxkIGJlXG4vLyAkbGFzdC1jb2x1bW4gLSBJcyB0aGlzIHRoZSBsYXN0IGNvbHVtbj8gRGVmYXVsdDogZmFsc2UuXG4vLyAkY2VudGVyIC0gQ2VudGVyIHRoZXNlIGNvbHVtbnM/IERlZmF1bHQ6IGZhbHNlLlxuLy8gJG9mZnNldCAtICMgb2YgY29sdW1ucyB0byBvZmZzZXQuIERlZmF1bHQ6IGZhbHNlLlxuLy8gJHB1c2ggLSAjIG9mIGNvbHVtbnMgdG8gcHVzaC4gRGVmYXVsdDogZmFsc2UuXG4vLyAkcHVsbCAtICMgb2YgY29sdW1ucyB0byBwdWxsLiBEZWZhdWx0OiBmYWxzZS5cbi8vICRjb2xsYXBzZSAtIEdldCByaWQgb2YgZ3V0dGVyIHBhZGRpbmcgb24gY29sdW1uPyBEZWZhdWx0OiBmYWxzZS5cbi8vICRmbG9hdCAtIFNob3VsZCB0aGlzIGZsb2F0PyBEZWZhdWx0OiB0cnVlLiBPcHRpb25zOiB0cnVlLCBmYWxzZSwgbGVmdCwgcmlnaHQuXG5AbWl4aW4gZ3JpZC1jb2x1bW4oXG4gICRjb2x1bW5zOmZhbHNlLFxuICAkbGFzdC1jb2x1bW46ZmFsc2UsXG4gICRjZW50ZXI6ZmFsc2UsXG4gICRvZmZzZXQ6ZmFsc2UsXG4gICRwdXNoOmZhbHNlLFxuICAkcHVsbDpmYWxzZSxcbiAgJGNvbGxhcHNlOmZhbHNlLFxuICAkZmxvYXQ6dHJ1ZSxcbiAgJHBvc2l0aW9uOmZhbHNlKSB7XG5cbiAgLy8gSWYgcG9zaXRpb25lZCBmb3IgZGVmYXVsdCAuY29sdW1uLCBpbmNsdWRlIHJlbGF0aXZlIHBvc2l0aW9uXG4gIC8vIHB1c2ggYW5kIHB1bGwgcmVxdWlyZSBwb3NpdGlvbiBzZXRcbiAgQGlmICRwb3NpdGlvbiBvciAkcHVzaCBvciAkcHVsbCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG5cbiAgLy8gSWYgY29sbGFwc2VkLCBnZXQgcmlkIG9mIGd1dHRlciBwYWRkaW5nXG4gIEBpZiAkY29sbGFwc2Uge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICB9XG5cbiAgLy8gR3V0dGVyIHBhZGRpbmcgd2hlbmV2ZXIgYSBjb2x1bW4gaXNuJ3Qgc2V0IHRvIGNvbGxhcHNlXG4gIC8vICh1c2UgJGNvbGxhcHNlOm51bGwgdG8gZG8gbm90aGluZylcbiAgQGVsc2UgaWYgJGNvbGxhcHNlID09IGZhbHNlIHtcbiAgICBwYWRkaW5nLWxlZnQ6ICgkY29sdW1uLWd1dHRlciAvIDIpO1xuICAgIHBhZGRpbmctcmlnaHQ6ICgkY29sdW1uLWd1dHRlciAvIDIpO1xuICB9XG5cbiAgLy8gSWYgYSBjb2x1bW4gbnVtYmVyIGlzIGdpdmVuLCBjYWxjdWxhdGUgd2lkdGhcbiAgQGlmICRjb2x1bW5zIHtcbiAgICB3aWR0aDogZ3JpZC1jYWxjKCRjb2x1bW5zLCAkdG90YWwtY29sdW1ucyk7XG5cbiAgICAvLyBJZiBsYXN0IGNvbHVtbiwgZmxvYXQgbmF0dXJhbGx5IGluc3RlYWQgb2YgdG8gdGhlIHJpZ2h0XG4gICAgQGlmICRsYXN0LWNvbHVtbiB7IGZsb2F0OiAkb3Bwb3NpdGUtZGlyZWN0aW9uOyB9XG4gIH1cblxuICAvLyBTb3VyY2UgT3JkZXJpbmcsIGFkZHMgbGVmdC9yaWdodCBkZXBlbmRpbmcgb24gd2hpY2ggeW91IHVzZS5cbiAgQGlmICRwdXNoIHsgI3skZGVmYXVsdC1mbG9hdH06IGdyaWQtY2FsYygkcHVzaCwgJHRvdGFsLWNvbHVtbnMpOyAjeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiBhdXRvOyB9XG4gIEBpZiAkcHVsbCB7ICN7JG9wcG9zaXRlLWRpcmVjdGlvbn06IGdyaWQtY2FsYygkcHVsbCwgJHRvdGFsLWNvbHVtbnMpOyAjeyRkZWZhdWx0LWZsb2F0fTogYXV0bzsgfVxuXG4gIEBpZiAkZmxvYXQge1xuICAgIEBpZiAkZmxvYXQgPT0gbGVmdCBvciAkZmxvYXQgPT0gdHJ1ZSB7IGZsb2F0OiAkZGVmYXVsdC1mbG9hdDsgfVxuICAgIEBlbHNlIGlmICRmbG9hdCA9PSByaWdodCB7IGZsb2F0OiAkb3Bwb3NpdGUtZGlyZWN0aW9uOyB9XG4gICAgQGVsc2UgeyBmbG9hdDogbm9uZTsgfVxuICB9XG5cbiAgLy8gSWYgY2VudGVyZWQsIGdldCByaWQgb2YgZmxvYXQgYW5kIGFkZCBhcHByb3ByaWF0ZSBtYXJnaW5zXG4gIEBpZiAkY2VudGVyIHtcbiAgICBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06IGF1dG87XG4gICAgbWFyZ2luLSN7JG9wcG9zaXRlLWRpcmVjdGlvbn06IGF1dG87XG4gICAgZmxvYXQ6IG5vbmU7XG4gIH1cblxuICAvLyBJZiBvZmZzZXQsIGNhbGN1bGF0ZSBhcHByb3ByaWF0ZSBtYXJnaW5zXG4gIEBpZiAkb2Zmc2V0IHsgbWFyZ2luLSN7JGRlZmF1bHQtZmxvYXR9OiBncmlkLWNhbGMoJG9mZnNldCwgJHRvdGFsLWNvbHVtbnMpICFpbXBvcnRhbnQ7IH1cblxufVxuXG4vLyBDcmVhdGUgcHJlc2VudGF0aW9uYWwgY2xhc3NlcyBmb3IgZ3JpZFxuLy9cbi8vICRzaXplIC0gTmFtZSBvZiBjbGFzcyB0byB1c2UsIGkuZS4gXCJsYXJnZVwiIHdpbGwgZ2VuZXJhdGUgLmxhcmdlLTEsIC5sYXJnZS0yLCBldGMuXG5AbWl4aW4gZ3JpZC1odG1sLWNsYXNzZXMoJHNpemUpIHtcblxuICBAZm9yICRpIGZyb20gMCB0aHJvdWdoICR0b3RhbC1jb2x1bW5zIC0gMSB7XG4gICAgLiN7JHNpemV9LXB1c2gtI3skaX0ge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJHB1c2g6JGksICRjb2xsYXBzZTpudWxsLCAkZmxvYXQ6ZmFsc2UpO1xuICAgIH1cbiAgICAuI3skc2l6ZX0tcHVsbC0jeyRpfSB7XG4gICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbigkcHVsbDokaSwgJGNvbGxhcHNlOm51bGwsICRmbG9hdDpmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgLmNvbHVtbixcbiAgLmNvbHVtbnMgeyBAaW5jbHVkZSBncmlkLWNvbHVtbigkY29sdW1uczpmYWxzZSwgJHBvc2l0aW9uOnRydWUpOyB9XG5cblxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICR0b3RhbC1jb2x1bW5zIHtcbiAgICAuI3skc2l6ZX0tI3skaX0geyBAaW5jbHVkZSBncmlkLWNvbHVtbigkY29sdW1uczokaSwkY29sbGFwc2U6bnVsbCwkZmxvYXQ6ZmFsc2UpOyB9XG4gIH1cblxuICBAZm9yICRpIGZyb20gMCB0aHJvdWdoICR0b3RhbC1jb2x1bW5zIC0gMSB7XG4gICAgLiN7JHNpemV9LW9mZnNldC0jeyRpfSB7IEBpbmNsdWRlIGdyaWQtY29sdW1uKCRvZmZzZXQ6JGksICRjb2xsYXBzZTpudWxsLCRmbG9hdDpmYWxzZSk7IH1cbiAgfVxuXG4gIC4jeyRzaXplfS1yZXNldC1vcmRlciB7XG4gICAgbWFyZ2luLSN7JGRlZmF1bHQtZmxvYXR9OiAwO1xuICAgIG1hcmdpbi0jeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiAwO1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgZmxvYXQ6ICRkZWZhdWx0LWZsb2F0O1xuICB9XG5cbiAgLmNvbHVtbi4jeyRzaXplfS1jZW50ZXJlZCxcbiAgLmNvbHVtbnMuI3skc2l6ZX0tY2VudGVyZWQgeyBAaW5jbHVkZSBncmlkLWNvbHVtbigkY2VudGVyOnRydWUsICRjb2xsYXBzZTpudWxsLCAkZmxvYXQ6ZmFsc2UpOyB9XG5cbiAgLmNvbHVtbi4jeyRzaXplfS11bmNlbnRlcmVkLFxuICAuY29sdW1ucy4jeyRzaXplfS11bmNlbnRlcmVkIHtcbiAgICBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06IDA7XG4gICAgbWFyZ2luLSN7JG9wcG9zaXRlLWRpcmVjdGlvbn06IDA7XG4gICAgZmxvYXQ6ICRkZWZhdWx0LWZsb2F0O1xuICB9XG5cbiAgLy8gRmlnaHRpbmcgW2NsYXNzKj1cImNvbHVtblwiXSArIFtjbGFzcyo9XCJjb2x1bW5cIl06bGFzdC1jaGlsZFxuICAuY29sdW1uLiN7JHNpemV9LWNlbnRlcmVkOmxhc3QtY2hpbGQsXG4gIC5jb2x1bW5zLiN7JHNpemV9LWNlbnRlcmVkOmxhc3QtY2hpbGR7XG4gICAgZmxvYXQ6IG5vbmU7XG4gIH1cblxuICAvLyBGaWdodGluZyAuY29sdW1uLjxwcmV2aW91cy1zaXplPi1jZW50ZXJlZDpsYXN0LWNoaWxkXG4gIC5jb2x1bW4uI3skc2l6ZX0tdW5jZW50ZXJlZDpsYXN0LWNoaWxkLFxuICAuY29sdW1ucy4jeyRzaXplfS11bmNlbnRlcmVkOmxhc3QtY2hpbGQge1xuICAgIGZsb2F0OiAkZGVmYXVsdC1mbG9hdDtcbiAgfVxuXG4gIC5jb2x1bW4uI3skc2l6ZX0tdW5jZW50ZXJlZC5vcHBvc2l0ZSxcbiAgLmNvbHVtbnMuI3skc2l6ZX0tdW5jZW50ZXJlZC5vcHBvc2l0ZSB7XG4gICAgZmxvYXQ6ICRvcHBvc2l0ZS1kaXJlY3Rpb247XG4gIH1cblxuXHQucm93IHtcblx0XHQmLiN7JHNpemV9LWNvbGxhcHNlIHtcblx0XHRcdD4gLmNvbHVtbixcblx0XHRcdD4gLmNvbHVtbnMgeyBAaW5jbHVkZSBncmlkLWNvbHVtbigkY29sbGFwc2U6dHJ1ZSwgJGZsb2F0OmZhbHNlKTsgfVxuXG5cdFx0XHQucm93IHttYXJnaW4tbGVmdDowOyBtYXJnaW4tcmlnaHQ6MDt9XG5cdFx0fVxuXHRcdCYuI3skc2l6ZX0tdW5jb2xsYXBzZSB7XG5cdFx0XHQ+IC5jb2x1bW4sXG5cdFx0XHQ+IC5jb2x1bW5zIHtcblx0XHRcdFx0QGluY2x1ZGUgZ3JpZC1jb2x1bW47XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbkBpbmNsdWRlIGV4cG9ydHMoXCJncmlkXCIpIHtcbiAgQGlmICRpbmNsdWRlLWh0bWwtZ3JpZC1jbGFzc2VzIHtcbiAgICAucm93IHtcbiAgICAgIEBpbmNsdWRlIGdyaWQtcm93O1xuXG4gICAgICAmLmNvbGxhcHNlIHtcbiAgICAgICAgID4gLmNvbHVtbixcbiAgICAgICAgID4gLmNvbHVtbnMgeyBAaW5jbHVkZSBncmlkLWNvbHVtbigkY29sbGFwc2U6dHJ1ZSwgJGZsb2F0OmZhbHNlKTsgfVxuXG4gICAgICAgIC5yb3cge21hcmdpbi1sZWZ0OjA7IG1hcmdpbi1yaWdodDowO31cbiAgICAgIH1cblxuICAgICAgLnJvdyB7IEBpbmNsdWRlIGdyaWQtcm93KCRiZWhhdmlvcjpuZXN0KTtcbiAgICAgICAgJi5jb2xsYXBzZSB7IEBpbmNsdWRlIGdyaWQtcm93KCRiZWhhdmlvcjpuZXN0LWNvbGxhcHNlKTsgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC5jb2x1bW4sXG4gICAgLmNvbHVtbnMgeyBAaW5jbHVkZSBncmlkLWNvbHVtbigkY29sdW1uczokdG90YWwtY29sdW1ucyk7IH1cblxuICAgIFtjbGFzcyo9XCJjb2x1bW5cIl0gKyBbY2xhc3MqPVwiY29sdW1uXCJdOmxhc3QtY2hpbGQgeyBmbG9hdDogJGxhc3QtY2hpbGQtZmxvYXQ7IH1cbiAgICBbY2xhc3MqPVwiY29sdW1uXCJdICsgW2NsYXNzKj1cImNvbHVtblwiXS5lbmQgeyBmbG9hdDogJGRlZmF1bHQtZmxvYXQ7IH1cblxuICAgIEBtZWRpYSAjeyRzbWFsbC11cH0ge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1odG1sLWNsYXNzZXMoJHNpemU6c21hbGwpO1xuICAgIH1cblxuICAgIEBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAgIEBpbmNsdWRlIGdyaWQtaHRtbC1jbGFzc2VzKCRzaXplOm1lZGl1bSk7XG4gICAgICAvLyBPbGQgcHVzaCBhbmQgcHVsbCBjbGFzc2VzXG4gICAgICBAZm9yICRpIGZyb20gMCB0aHJvdWdoICR0b3RhbC1jb2x1bW5zIC0gMSB7XG4gICAgICAgIC5wdXNoLSN7JGl9IHtcbiAgICAgICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbigkcHVzaDokaSwgJGNvbGxhcHNlOm51bGwsICRmbG9hdDpmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgICAgLnB1bGwtI3skaX0ge1xuICAgICAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKCRwdWxsOiRpLCAkY29sbGFwc2U6bnVsbCwgJGZsb2F0OmZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBAbWVkaWEgI3skbGFyZ2UtdXB9IHtcbiAgICAgIEBpbmNsdWRlIGdyaWQtaHRtbC1jbGFzc2VzKCRzaXplOmxhcmdlKTtcbiAgICAgIEBmb3IgJGkgZnJvbSAwIHRocm91Z2ggJHRvdGFsLWNvbHVtbnMgLSAxIHtcbiAgICAgICAgLnB1c2gtI3skaX0ge1xuICAgICAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKCRwdXNoOiRpLCAkY29sbGFwc2U6bnVsbCwgJGZsb2F0OmZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgICAucHVsbC0jeyRpfSB7XG4gICAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJHB1bGw6JGksICRjb2xsYXBzZTpudWxsLCAkZmxvYXQ6ZmFsc2UpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBpZiAkaW5jbHVkZS14bC1odG1sLWdyaWQtY2xhc3NlcyB7XG4gICAgQG1lZGlhICN7JHhsYXJnZS11cH0ge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1odG1sLWNsYXNzZXMoJHNpemU6eGxhcmdlKTtcbiAgICB9XG4gICAgQG1lZGlhICN7JHh4bGFyZ2UtdXB9IHtcbiAgICAgIEBpbmNsdWRlIGdyaWQtaHRtbC1jbGFzc2VzKCRzaXplOnh4bGFyZ2UpO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQGltcG9ydCBcImdsb2JhbFwiO1xuXG4vL1xuLy8gQG5hbWUgX3RodW1icy5zY3NzXG4vLyBAZGVwZW5kZW5jaWVzIF9nbG9iYWxzLnNjc3Ncbi8vXG5cbi8vXG4vLyBAdmFyaWFibGVzXG4vL1xuXG4kaW5jbHVkZS1odG1sLW1lZGlhLWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcyAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgYm9yZGVyIHN0eWxlc1xuJHRodW1iLWJvcmRlci1zdHlsZTogc29saWQgIWRlZmF1bHQ7XG4kdGh1bWItYm9yZGVyLXdpZHRoOiA0cHggIWRlZmF1bHQ7XG4kdGh1bWItYm9yZGVyLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG4kdGh1bWItYm94LXNoYWRvdzogMCAwIDAgMXB4IHJnYmEoJGJsYWNrLC4yKSAhZGVmYXVsdDtcbiR0aHVtYi1ib3gtc2hhZG93LWhvdmVyOiAwIDAgNnB4IDFweCByZ2JhKCRwcmltYXJ5LWNvbG9yLDAuNSkgIWRlZmF1bHQ7XG5cbi8vIFJhZGl1cyBhbmQgdHJhbnNpdGlvbiBzcGVlZCBmb3IgdGh1bWJzXG4kdGh1bWItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcbiR0aHVtYi10cmFuc2l0aW9uLXNwZWVkOiAyMDBtcyAhZGVmYXVsdDtcblxuLy9cbi8vIEBtaXhpbnNcbi8vXG5cbi8vIFdlIHVzZSB0aGlzIHRvIGNyZWF0ZSBpbWFnZSB0aHVtYm5haWwgc3R5bGVzLlxuLy9cbi8vICRib3JkZXItd2lkdGggLSBXaWR0aCBvZiBib3JkZXIgYXJvdW5kIHRodW1ibmFpbC4gRGVmYXVsdDogJHRodW1iLWJvcmRlci13aWR0aC5cbi8vICRib3gtc2hhZG93IC0gQm94IHNoYWRvdyB0byBhcHBseSB0byB0aHVtYm5haWwuIERlZmF1bHQ6ICR0aHVtYi1ib3gtc2hhZG93LlxuLy8gJGJveC1zaGFkb3ctaG92ZXIgLSBCb3ggc2hhZG93IHRvIGFwcGx5IG9uIGhvdmVyLiBEZWZhdWx0OiAkdGh1bWItYm94LXNoYWRvdy1ob3Zlci5cbkBtaXhpbiB0aHVtYihcbiAgJGJvcmRlci13aWR0aDokdGh1bWItYm9yZGVyLXdpZHRoLCBcbiAgJGJveC1zaGFkb3c6JHRodW1iLWJveC1zaGFkb3csIFxuICAkYm94LXNoYWRvdy1ob3ZlcjokdGh1bWItYm94LXNoYWRvdy1ob3Zlcikge1xuICBsaW5lLWhlaWdodDogMDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBib3JkZXI6ICR0aHVtYi1ib3JkZXItc3R5bGUgJGJvcmRlci13aWR0aCAkdGh1bWItYm9yZGVyLWNvbG9yO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGJveC1zaGFkb3c6ICRib3gtc2hhZG93O1xuXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIGJveC1zaGFkb3c6ICRib3gtc2hhZG93LWhvdmVyO1xuICB9XG59XG5cblxuQGluY2x1ZGUgZXhwb3J0cyhcInRodW1iXCIpIHtcbiAgQGlmICRpbmNsdWRlLWh0bWwtbWVkaWEtY2xhc3NlcyB7XG5cbiAgICAvKiBJbWFnZSBUaHVtYm5haWxzICovXG4gICAgLnRoIHtcbiAgICAgIEBpbmNsdWRlIHRodW1iO1xuICAgICAgQGluY2x1ZGUgc2luZ2xlLXRyYW5zaXRpb24oYWxsLCR0aHVtYi10cmFuc2l0aW9uLXNwZWVkLGVhc2Utb3V0KTtcblxuICAgICAgJi5yYWRpdXMgeyBAaW5jbHVkZSByYWRpdXMoJHRodW1iLXJhZGl1cyk7IH1cbiAgICB9XG4gIH1cbn0iLCIvLyBGb3VuZGF0aW9uIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AaW1wb3J0IFwiZ2xvYmFsXCI7XG5cbiRpbmNsdWRlLWh0bWwtdHlwZS1jbGFzc2VzOiAkaW5jbHVkZS1odG1sLWNsYXNzZXMgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIGhlYWRlciBmb250IHN0eWxlc1xuJGhlYWRlci1mb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHkgIWRlZmF1bHQ7XG4kaGVhZGVyLWZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuJGhlYWRlci1mb250LXN0eWxlOiBub3JtYWwgIWRlZmF1bHQ7XG4kaGVhZGVyLWZvbnQtY29sb3I6ICRqZXQgIWRlZmF1bHQ7XG4kaGVhZGVyLWxpbmUtaGVpZ2h0OiAxLjQgIWRlZmF1bHQ7XG4kaGVhZGVyLXRvcC1tYXJnaW46IC4ycmVtICFkZWZhdWx0O1xuJGhlYWRlci1ib3R0b20tbWFyZ2luOiAuNXJlbSAhZGVmYXVsdDtcbiRoZWFkZXItdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgaGVhZGVyIGZvbnQgc2l6ZXNcbiRoMS1mb250LXNpemU6IHJlbS1jYWxjKDQ0KSAhZGVmYXVsdDtcbiRoMi1mb250LXNpemU6IHJlbS1jYWxjKDM3KSAhZGVmYXVsdDtcbiRoMy1mb250LXNpemU6IHJlbS1jYWxjKDI3KSAhZGVmYXVsdDtcbiRoNC1mb250LXNpemU6IHJlbS1jYWxjKDIzKSAhZGVmYXVsdDtcbiRoNS1mb250LXNpemU6IHJlbS1jYWxjKDE4KSAhZGVmYXVsdDtcbiRoNi1mb250LXNpemU6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIGhlYWRlciBzaXplIHJlZHVjdGlvbiBvbiBzbWFsbCBzY3JlZW5zXG4kaDEtZm9udC1yZWR1Y3Rpb246IHJlbS1jYWxjKDEwKSAhZGVmYXVsdDtcbiRoMi1mb250LXJlZHVjdGlvbjogcmVtLWNhbGMoMTApICFkZWZhdWx0O1xuJGgzLWZvbnQtcmVkdWN0aW9uOiByZW0tY2FsYyg1KSAhZGVmYXVsdDtcbiRoNC1mb250LXJlZHVjdGlvbjogcmVtLWNhbGMoNSkgIWRlZmF1bHQ7XG4kaDUtZm9udC1yZWR1Y3Rpb246IDAgIWRlZmF1bHQ7XG4kaDYtZm9udC1yZWR1Y3Rpb246IDAgIWRlZmF1bHQ7XG5cbi8vIFRoZXNlIGNvbnRyb2wgaG93IHN1YmhlYWRlcnMgYXJlIHN0eWxlZC5cbiRzdWJoZWFkZXItbGluZS1oZWlnaHQ6IDEuNCAhZGVmYXVsdDtcbiRzdWJoZWFkZXItZm9udC1jb2xvcjogc2NhbGUtY29sb3IoJGhlYWRlci1mb250LWNvbG9yLCAkbGlnaHRuZXNzOiAzNSUpICFkZWZhdWx0O1xuJHN1YmhlYWRlci1mb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcbiRzdWJoZWFkZXItdG9wLW1hcmdpbjogLjJyZW0gIWRlZmF1bHQ7XG4kc3ViaGVhZGVyLWJvdHRvbS1tYXJnaW46IC41cmVtICFkZWZhdWx0O1xuXG4vLyBBIGdlbmVyYWwgPHNtYWxsPiBzdHlsaW5nXG4kc21hbGwtZm9udC1zaXplOiA2MCUgIWRlZmF1bHQ7XG4kc21hbGwtZm9udC1jb2xvcjogc2NhbGUtY29sb3IoJGhlYWRlci1mb250LWNvbG9yLCAkbGlnaHRuZXNzOiAzNSUpICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gc3R5bGUgcGFyYWdyYXBoc1xuJHBhcmFncmFwaC1mb250LWZhbWlseTogaW5oZXJpdCAhZGVmYXVsdDtcbiRwYXJhZ3JhcGgtZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG4kcGFyYWdyYXBoLWZvbnQtc2l6ZTogMXJlbSAhZGVmYXVsdDtcbiRwYXJhZ3JhcGgtbGluZS1oZWlnaHQ6IDEuNiAhZGVmYXVsdDtcbiRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMjApICFkZWZhdWx0O1xuJHBhcmFncmFwaC1hc2lkZS1mb250LXNpemU6IHJlbS1jYWxjKDE0KSAhZGVmYXVsdDtcbiRwYXJhZ3JhcGgtYXNpZGUtbGluZS1oZWlnaHQ6IDEuMzUgIWRlZmF1bHQ7XG4kcGFyYWdyYXBoLWFzaWRlLWZvbnQtc3R5bGU6IGl0YWxpYyAhZGVmYXVsdDtcbiRwYXJhZ3JhcGgtdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIHN0eWxlIDxjb2RlPiB0YWdzXG4kY29kZS1jb2xvcjogJG9pbCAhZGVmYXVsdDtcbiRjb2RlLWZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktbW9ub3NwYWNlICFkZWZhdWx0O1xuJGNvZGUtZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG4kY29kZS1iYWNrZ3JvdW5kLWNvbG9yOiBzY2FsZS1jb2xvcigkc2Vjb25kYXJ5LWNvbG9yLCAkbGlnaHRuZXNzOiA3MCUpICFkZWZhdWx0O1xuJGNvZGUtYm9yZGVyLXNpemU6IDFweCAhZGVmYXVsdDtcbiRjb2RlLWJvcmRlci1zdHlsZTogc29saWQgIWRlZmF1bHQ7XG4kY29kZS1ib3JkZXItY29sb3I6IHNjYWxlLWNvbG9yKCRjb2RlLWJhY2tncm91bmQtY29sb3IsICRsaWdodG5lc3M6IC0xMCUpICFkZWZhdWx0O1xuJGNvZGUtcGFkZGluZzogcmVtLWNhbGMoMikgcmVtLWNhbGMoNSkgcmVtLWNhbGMoMSkgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBzdHlsZSBhbmNob3JzXG4kYW5jaG9yLXRleHQtZGVjb3JhdGlvbjogbm9uZSAhZGVmYXVsdDtcbiRhbmNob3ItdGV4dC1kZWNvcmF0aW9uLWhvdmVyOiBub25lICFkZWZhdWx0O1xuJGFuY2hvci1mb250LWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcbiRhbmNob3ItZm9udC1jb2xvci1ob3Zlcjogc2NhbGUtY29sb3IoJGFuY2hvci1mb250LWNvbG9yLCAkbGlnaHRuZXNzOiAtMTQlKSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIHN0eWxlIHRoZSA8aHI+IGVsZW1lbnRcbiRoci1ib3JkZXItd2lkdGg6IDFweCAhZGVmYXVsdDtcbiRoci1ib3JkZXItc3R5bGU6IHNvbGlkICFkZWZhdWx0O1xuJGhyLWJvcmRlci1jb2xvcjogJGdhaW5zYm9ybyAhZGVmYXVsdDtcbiRoci1tYXJnaW46IHJlbS1jYWxjKDIwKSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIHN0eWxlIGxpc3RzXG4kbGlzdC1mb250LWZhbWlseTogJHBhcmFncmFwaC1mb250LWZhbWlseSAhZGVmYXVsdDtcbiRsaXN0LWZvbnQtc2l6ZTogJHBhcmFncmFwaC1mb250LXNpemUgIWRlZmF1bHQ7XG4kbGlzdC1saW5lLWhlaWdodDogJHBhcmFncmFwaC1saW5lLWhlaWdodCAhZGVmYXVsdDtcbiRsaXN0LW1hcmdpbi1ib3R0b206ICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbSAhZGVmYXVsdDtcbiRsaXN0LXN0eWxlLXBvc2l0aW9uOiBvdXRzaWRlICFkZWZhdWx0O1xuJGxpc3Qtc2lkZS1tYXJnaW46IDEuMXJlbSAhZGVmYXVsdDtcbiRsaXN0LW9yZGVyZWQtc2lkZS1tYXJnaW46IDEuNHJlbSAhZGVmYXVsdDtcbiRsaXN0LXNpZGUtbWFyZ2luLW5vLWJ1bGxldDogMCAhZGVmYXVsdDtcbiRsaXN0LW5lc3RlZC1tYXJnaW46IHJlbS1jYWxjKDIwKSAhZGVmYXVsdDtcbiRkZWZpbml0aW9uLWxpc3QtaGVhZGVyLXdlaWdodDogJGZvbnQtd2VpZ2h0LWJvbGQgIWRlZmF1bHQ7XG4kZGVmaW5pdGlvbi1saXN0LWhlYWRlci1tYXJnaW4tYm90dG9tOiAuM3JlbSAhZGVmYXVsdDtcbiRkZWZpbml0aW9uLWxpc3QtbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMTIpICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gc3R5bGUgYmxvY2txdW90ZXNcbiRibG9ja3F1b3RlLWZvbnQtY29sb3I6IHNjYWxlLWNvbG9yKCRoZWFkZXItZm9udC1jb2xvciwgJGxpZ2h0bmVzczogMzUlKSAhZGVmYXVsdDtcbiRibG9ja3F1b3RlLXBhZGRpbmc6IHJlbS1jYWxjKDkgMjAgMCAxOSkgIWRlZmF1bHQ7XG4kYmxvY2txdW90ZS1ib3JkZXI6IDFweCBzb2xpZCAkZ2FpbnNib3JvICFkZWZhdWx0O1xuJGJsb2NrcXVvdGUtY2l0ZS1mb250LXNpemU6IHJlbS1jYWxjKDEzKSAhZGVmYXVsdDtcbiRibG9ja3F1b3RlLWNpdGUtZm9udC1jb2xvcjogc2NhbGUtY29sb3IoJGhlYWRlci1mb250LWNvbG9yLCAkbGlnaHRuZXNzOiAyMyUpICFkZWZhdWx0O1xuJGJsb2NrcXVvdGUtY2l0ZS1saW5rLWNvbG9yOiAkYmxvY2txdW90ZS1jaXRlLWZvbnQtY29sb3IgIWRlZmF1bHQ7XG5cbi8vIEFjcm9ueW0gc3R5bGVzXG4kYWNyb255bS11bmRlcmxpbmU6IDFweCBkb3R0ZWQgJGdhaW5zYm9ybyAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgcGFkZGluZyBhbmQgbWFyZ2luXG4kbWljcm9mb3JtYXQtcGFkZGluZzogcmVtLWNhbGMoMTAgMTIpICFkZWZhdWx0O1xuJG1pY3JvZm9ybWF0LW1hcmdpbjogcmVtLWNhbGMoMCAwIDIwIDApICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCB0aGUgYm9yZGVyIHN0eWxlc1xuJG1pY3JvZm9ybWF0LWJvcmRlci13aWR0aDogMXB4ICFkZWZhdWx0O1xuJG1pY3JvZm9ybWF0LWJvcmRlci1zdHlsZTogc29saWQgIWRlZmF1bHQ7XG4kbWljcm9mb3JtYXQtYm9yZGVyLWNvbG9yOiAkZ2FpbnNib3JvICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCBmdWxsIG5hbWUgZm9udCBzdHlsZXNcbiRtaWNyb2Zvcm1hdC1mdWxsbmFtZS1mb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LWJvbGQgIWRlZmF1bHQ7XG4kbWljcm9mb3JtYXQtZnVsbG5hbWUtZm9udC1zaXplOiByZW0tY2FsYygxNSkgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGlzIHRvIGNvbnRyb2wgdGhlIHN1bW1hcnkgZm9udCBzdHlsZXNcbiRtaWNyb2Zvcm1hdC1zdW1tYXJ5LWZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtYm9sZCAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoaXMgdG8gY29udHJvbCBhYmJyIHBhZGRpbmdcbiRtaWNyb2Zvcm1hdC1hYmJyLXBhZGRpbmc6IHJlbS1jYWxjKDAgMSkgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGlzIHRvIGNvbnRyb2wgYWJiciBmb250IHN0eWxlc1xuJG1pY3JvZm9ybWF0LWFiYnItZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ib2xkICFkZWZhdWx0O1xuJG1pY3JvZm9ybWF0LWFiYnItZm9udC1kZWNvcmF0aW9uOiBub25lICFkZWZhdWx0O1xuXG4vLyBUZXh0IGFsaWdubWVudCBjbGFzcyBuYW1lc1xuJGFsaWduLWNsYXNzLW5hbWVzOlxuICBzbWFsbC1vbmx5LFxuICBzbWFsbCxcbiAgbWVkaXVtLW9ubHksXG4gIG1lZGl1bSxcbiAgbGFyZ2Utb25seSxcbiAgbGFyZ2UsXG4gIHhsYXJnZS1vbmx5LFxuICB4bGFyZ2UsXG4gIHh4bGFyZ2Utb25seSxcbiAgeHhsYXJnZTtcblxuLy8gVGV4dCBhbGlnbm1lbnQgYnJlYWtwb2ludHNcbiRhbGlnbi1jbGFzcy1icmVha3BvaW50czpcbiAgJHNtYWxsLW9ubHksXG4gICRzbWFsbC11cCxcbiAgJG1lZGl1bS1vbmx5LFxuICAkbWVkaXVtLXVwLFxuICAkbGFyZ2Utb25seSxcbiAgJGxhcmdlLXVwLFxuICAkeGxhcmdlLW9ubHksXG4gICR4bGFyZ2UtdXAsXG4gICR4eGxhcmdlLW9ubHksXG4gICR4eGxhcmdlLXVwO1xuXG4vLyBHZW5lcmF0ZXMgdGV4dCBhbGlnbiBhbmQganVzdGlmeSBjbGFzc2VzXG5AbWl4aW4gYWxpZ24tY2xhc3Nlc3tcbiAgLnRleHQtbGVmdCAgICB7IHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDsgfVxuICAudGV4dC1yaWdodCAgIHsgdGV4dC1hbGlnbjogcmlnaHQgIWltcG9ydGFudDsgfVxuICAudGV4dC1jZW50ZXIgIHsgdGV4dC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7IH1cbiAgLnRleHQtanVzdGlmeSB7IHRleHQtYWxpZ246IGp1c3RpZnkgIWltcG9ydGFudDsgfVxuXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggbGVuZ3RoKCRhbGlnbi1jbGFzcy1uYW1lcykge1xuICAgIEBtZWRpYSAjeyhudGgoJGFsaWduLWNsYXNzLWJyZWFrcG9pbnRzLCAkaSkpfSB7XG4gICAgICAuI3sobnRoKCRhbGlnbi1jbGFzcy1uYW1lcywgJGkpKX0tdGV4dC1sZWZ0IHsgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50OyB9XG4gICAgICAuI3sobnRoKCRhbGlnbi1jbGFzcy1uYW1lcywgJGkpKX0tdGV4dC1yaWdodCAgIHsgdGV4dC1hbGlnbjogcmlnaHQgIWltcG9ydGFudDsgfVxuICAgICAgLiN7KG50aCgkYWxpZ24tY2xhc3MtbmFtZXMsICRpKSl9LXRleHQtY2VudGVyICB7IHRleHQtYWxpZ246IGNlbnRlciAhaW1wb3J0YW50OyB9XG4gICAgICAuI3sobnRoKCRhbGlnbi1jbGFzcy1uYW1lcywgJGkpKX0tdGV4dC1qdXN0aWZ5IHsgdGV4dC1hbGlnbjoganVzdGlmeSAhaW1wb3J0YW50OyB9XG4gICAgfVxuICB9XG59XG5cbi8vXG4vLyBUeXBvZ3JhcGh5IFBsYWNlaG9sZGVyc1xuLy9cblxuLy8gVGhlc2Ugd2lsbCB0aHJvdyBhIGRlcHJlY2F0aW9uIHdhcm5pbmcgaWYgdXNlZCB3aXRoaW4gYSBtZWRpYSBxdWVyeS5cbkBtaXhpbiBsZWFkIHtcbiAgZm9udC1zaXplOiAkcGFyYWdyYXBoLWZvbnQtc2l6ZSArIHJlbS1jYWxjKDMuNSk7XG4gIGxpbmUtaGVpZ2h0OiAxLjY7XG59XG5cbkBtaXhpbiBzdWJoZWFkZXIge1xuICBsaW5lLWhlaWdodDogJHN1YmhlYWRlci1saW5lLWhlaWdodDtcbiAgY29sb3I6ICRzdWJoZWFkZXItZm9udC1jb2xvcjtcbiAgZm9udC13ZWlnaHQ6ICRzdWJoZWFkZXItZm9udC13ZWlnaHQ7XG4gIG1hcmdpbi10b3A6ICRzdWJoZWFkZXItdG9wLW1hcmdpbjtcbiAgbWFyZ2luLWJvdHRvbTogJHN1YmhlYWRlci1ib3R0b20tbWFyZ2luO1xufVxuQGluY2x1ZGUgZXhwb3J0cyhcInR5cGVcIikge1xuICBAaWYgJGluY2x1ZGUtaHRtbC10eXBlLWNsYXNzZXMge1xuICAgIC8vIFJlc3BvbnNpdmUgVGV4dCBhbGlnbm1lbnRcbiAgICBAaW5jbHVkZSBhbGlnbi1jbGFzc2VzO1xuXG4gICAgLyogVHlwb2dyYXBoeSByZXNldHMgKi9cbiAgICBkaXYsXG4gICAgZGwsXG4gICAgZHQsXG4gICAgZGQsXG4gICAgdWwsXG4gICAgb2wsXG4gICAgbGksXG4gICAgaDEsXG4gICAgaDIsXG4gICAgaDMsXG4gICAgaDQsXG4gICAgaDUsXG4gICAgaDYsXG4gICAgcHJlLFxuICAgIGZvcm0sXG4gICAgcCxcbiAgICBibG9ja3F1b3RlLFxuICAgIHRoLFxuICAgIHRkIHtcbiAgICAgIG1hcmdpbjowO1xuICAgICAgcGFkZGluZzowO1xuICAgIH1cblxuICAgIC8qIERlZmF1bHQgTGluayBTdHlsZXMgKi9cbiAgICBhIHtcbiAgICAgIGNvbG9yOiAkYW5jaG9yLWZvbnQtY29sb3I7XG4gICAgICB0ZXh0LWRlY29yYXRpb246ICRhbmNob3ItdGV4dC1kZWNvcmF0aW9uO1xuICAgICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG5cbiAgICAgICY6aG92ZXIsXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgY29sb3I6ICRhbmNob3ItZm9udC1jb2xvci1ob3ZlcjtcbiAgICAgICAgQGlmICRhbmNob3ItdGV4dC1kZWNvcmF0aW9uLWhvdmVyICE9ICRhbmNob3ItdGV4dC1kZWNvcmF0aW9uIHtcbiAgICAgICAgXHR0ZXh0LWRlY29yYXRpb246ICRhbmNob3ItdGV4dC1kZWNvcmF0aW9uLWhvdmVyO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGltZyB7IGJvcmRlcjpub25lOyB9XG4gICAgfVxuXG4gICAgLyogRGVmYXVsdCBwYXJhZ3JhcGggc3R5bGVzICovXG4gICAgcCB7XG4gICAgICBmb250LWZhbWlseTogJHBhcmFncmFwaC1mb250LWZhbWlseTtcbiAgICAgIGZvbnQtd2VpZ2h0OiAkcGFyYWdyYXBoLWZvbnQtd2VpZ2h0O1xuICAgICAgZm9udC1zaXplOiAkcGFyYWdyYXBoLWZvbnQtc2l6ZTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAkcGFyYWdyYXBoLWxpbmUtaGVpZ2h0O1xuICAgICAgbWFyZ2luLWJvdHRvbTogJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tO1xuICAgICAgdGV4dC1yZW5kZXJpbmc6ICRwYXJhZ3JhcGgtdGV4dC1yZW5kZXJpbmc7XG5cbiAgICAgICYubGVhZCB7IEBpbmNsdWRlIGxlYWQ7IH1cblxuICAgICAgJiBhc2lkZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogJHBhcmFncmFwaC1hc2lkZS1mb250LXNpemU7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkcGFyYWdyYXBoLWFzaWRlLWxpbmUtaGVpZ2h0O1xuICAgICAgICBmb250LXN0eWxlOiAkcGFyYWdyYXBoLWFzaWRlLWZvbnQtc3R5bGU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyogRGVmYXVsdCBoZWFkZXIgc3R5bGVzICovXG4gICAgaDEsIGgyLCBoMywgaDQsIGg1LCBoNiB7XG4gICAgICBmb250LWZhbWlseTogJGhlYWRlci1mb250LWZhbWlseTtcbiAgICAgIGZvbnQtd2VpZ2h0OiAkaGVhZGVyLWZvbnQtd2VpZ2h0O1xuICAgICAgZm9udC1zdHlsZTogJGhlYWRlci1mb250LXN0eWxlO1xuICAgICAgY29sb3I6ICRoZWFkZXItZm9udC1jb2xvcjtcbiAgICAgIHRleHQtcmVuZGVyaW5nOiAkaGVhZGVyLXRleHQtcmVuZGVyaW5nO1xuICAgICAgbWFyZ2luLXRvcDogJGhlYWRlci10b3AtbWFyZ2luO1xuICAgICAgbWFyZ2luLWJvdHRvbTogJGhlYWRlci1ib3R0b20tbWFyZ2luO1xuICAgICAgbGluZS1oZWlnaHQ6ICRoZWFkZXItbGluZS1oZWlnaHQ7XG5cbiAgICAgIHNtYWxsIHtcbiAgICAgICAgZm9udC1zaXplOiAkc21hbGwtZm9udC1zaXplO1xuICAgICAgICBjb2xvcjogJHNtYWxsLWZvbnQtY29sb3I7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIGgxIHsgZm9udC1zaXplOiAkaDEtZm9udC1zaXplIC0gJGgxLWZvbnQtcmVkdWN0aW9uOyB9XG4gICAgaDIgeyBmb250LXNpemU6ICRoMi1mb250LXNpemUgLSAkaDItZm9udC1yZWR1Y3Rpb247IH1cbiAgICBoMyB7IGZvbnQtc2l6ZTogJGgzLWZvbnQtc2l6ZSAtICRoMy1mb250LXJlZHVjdGlvbjsgfVxuICAgIGg0IHsgZm9udC1zaXplOiAkaDQtZm9udC1zaXplIC0gJGg0LWZvbnQtcmVkdWN0aW9uOyB9XG4gICAgaDUgeyBmb250LXNpemU6ICRoNS1mb250LXNpemUgLSAkaDUtZm9udC1yZWR1Y3Rpb247IH1cbiAgICBoNiB7IGZvbnQtc2l6ZTogJGg2LWZvbnQtc2l6ZSAtICRoNi1mb250LXJlZHVjdGlvbjsgfVxuXG4gICAgLnN1YmhlYWRlciB7IEBpbmNsdWRlIHN1YmhlYWRlcjsgfVxuXG4gICAgaHIge1xuICAgICAgYm9yZGVyOiAkaHItYm9yZGVyLXN0eWxlICRoci1ib3JkZXItY29sb3I7XG4gICAgICBib3JkZXItd2lkdGg6ICRoci1ib3JkZXItd2lkdGggMCAwO1xuICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICBtYXJnaW46ICRoci1tYXJnaW4gMCAoJGhyLW1hcmdpbiAtIHJlbS1jYWxjKCRoci1ib3JkZXItd2lkdGgpKTtcbiAgICAgIGhlaWdodDogMDtcbiAgICB9XG5cbiAgICAvKiBIZWxwZnVsIFR5cG9ncmFwaHkgRGVmYXVsdHMgKi9cbiAgICBlbSxcbiAgICBpIHtcbiAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICAgIH1cblxuICAgIHN0cm9uZyxcbiAgICBiIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtYm9sZDtcbiAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICAgIH1cblxuICAgIHNtYWxsIHtcbiAgICAgIGZvbnQtc2l6ZTogJHNtYWxsLWZvbnQtc2l6ZTtcbiAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICAgIH1cblxuICAgIGNvZGUge1xuICAgICAgZm9udC1mYW1pbHk6ICRjb2RlLWZvbnQtZmFtaWx5O1xuICAgICAgZm9udC13ZWlnaHQ6ICRjb2RlLWZvbnQtd2VpZ2h0O1xuICAgICAgY29sb3I6ICRjb2RlLWNvbG9yO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvZGUtYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci13aWR0aDogJGNvZGUtYm9yZGVyLXNpemU7XG4gICAgICBib3JkZXItc3R5bGU6ICRjb2RlLWJvcmRlci1zdHlsZTtcbiAgICAgIGJvcmRlci1jb2xvcjogJGNvZGUtYm9yZGVyLWNvbG9yO1xuICAgICAgcGFkZGluZzogJGNvZGUtcGFkZGluZztcbiAgICB9XG5cbiAgICAvKiBMaXN0cyAqL1xuICAgIHVsLFxuICAgIG9sLFxuICAgIGRsIHtcbiAgICAgIGZvbnQtc2l6ZTogJGxpc3QtZm9udC1zaXplO1xuICAgICAgbGluZS1oZWlnaHQ6ICRsaXN0LWxpbmUtaGVpZ2h0O1xuICAgICAgbWFyZ2luLWJvdHRvbTogJGxpc3QtbWFyZ2luLWJvdHRvbTtcbiAgICAgIGxpc3Qtc3R5bGUtcG9zaXRpb246ICRsaXN0LXN0eWxlLXBvc2l0aW9uO1xuICAgICAgZm9udC1mYW1pbHk6ICRsaXN0LWZvbnQtZmFtaWx5O1xuICAgIH1cblxuICAgIHVsIHtcbiAgICAgIG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogJGxpc3Qtc2lkZS1tYXJnaW47XG4gICAgICAmLm5vLWJ1bGxldCB7XG4gICAgICAgIG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogJGxpc3Qtc2lkZS1tYXJnaW4tbm8tYnVsbGV0O1xuICAgICAgICBsaSB7XG4gICAgICAgICAgdWwsXG4gICAgICAgICAgb2wge1xuICAgICAgICAgICAgbWFyZ2luLSN7JGRlZmF1bHQtZmxvYXR9OiAkbGlzdC1uZXN0ZWQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyogVW5vcmRlcmVkIExpc3RzICovXG4gICAgdWwge1xuICAgICAgbGkge1xuICAgICAgICB1bCxcbiAgICAgICAgb2wge1xuICAgICAgICAgIG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogJGxpc3QtbmVzdGVkLW1hcmdpbjtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAmLnNxdWFyZSxcbiAgICAgICYuY2lyY2xlLFxuICAgICAgJi5kaXNjIHtcbiAgICAgICAgbGkgdWwgeyBsaXN0LXN0eWxlOiBpbmhlcml0OyB9XG4gICAgICB9XG5cbiAgICAgICYuc3F1YXJlIHsgbGlzdC1zdHlsZS10eXBlOiBzcXVhcmU7IG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogJGxpc3Qtc2lkZS1tYXJnaW47fVxuICAgICAgJi5jaXJjbGUgeyBsaXN0LXN0eWxlLXR5cGU6IGNpcmNsZTsgbWFyZ2luLSN7JGRlZmF1bHQtZmxvYXR9OiAkbGlzdC1zaWRlLW1hcmdpbjt9XG4gICAgICAmLmRpc2MgeyBsaXN0LXN0eWxlLXR5cGU6IGRpc2M7IG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogJGxpc3Qtc2lkZS1tYXJnaW47fVxuICAgICAgJi5uby1idWxsZXQgeyBsaXN0LXN0eWxlOiBub25lOyB9XG4gICAgfVxuXG4gICAgLyogT3JkZXJlZCBMaXN0cyAqL1xuICAgIG9sIHtcbiAgICAgIG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogJGxpc3Qtb3JkZXJlZC1zaWRlLW1hcmdpbjtcbiAgICAgIGxpIHtcbiAgICAgICAgdWwsXG4gICAgICAgIG9sIHtcbiAgICAgICAgICBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06ICRsaXN0LW5lc3RlZC1tYXJnaW47XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8qIERlZmluaXRpb24gTGlzdHMgKi9cbiAgICBkbCB7XG4gICAgICBkdCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRkZWZpbml0aW9uLWxpc3QtaGVhZGVyLW1hcmdpbi1ib3R0b207XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkZGVmaW5pdGlvbi1saXN0LWhlYWRlci13ZWlnaHQ7XG4gICAgICB9XG4gICAgICBkZCB7IG1hcmdpbi1ib3R0b206ICRkZWZpbml0aW9uLWxpc3QtbWFyZ2luLWJvdHRvbTsgfVxuICAgIH1cblxuICAgIC8qIEFiYnJldmlhdGlvbnMgKi9cbiAgICBhYmJyLFxuICAgIGFjcm9ueW0ge1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIGZvbnQtc2l6ZTogOTAlO1xuICAgICAgY29sb3I6ICRib2R5LWZvbnQtY29sb3I7XG4gICAgICBjdXJzb3I6ICRjdXJzb3ItaGVscC12YWx1ZTtcbiAgICB9XG4gICAgYWJiciB7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICZbdGl0bGVdIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJGFjcm9ueW0tdW5kZXJsaW5lO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qIEJsb2NrcXVvdGVzICovXG4gICAgYmxvY2txdW90ZSB7XG4gICAgICBtYXJnaW46IDAgMCAkcGFyYWdyYXBoLW1hcmdpbi1ib3R0b207XG4gICAgICBwYWRkaW5nOiAkYmxvY2txdW90ZS1wYWRkaW5nO1xuICAgICAgYm9yZGVyLSN7JGRlZmF1bHQtZmxvYXR9OiAkYmxvY2txdW90ZS1ib3JkZXI7XG5cbiAgICAgIGNpdGUge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgZm9udC1zaXplOiAkYmxvY2txdW90ZS1jaXRlLWZvbnQtc2l6ZTtcbiAgICAgICAgY29sb3I6ICRibG9ja3F1b3RlLWNpdGUtZm9udC1jb2xvcjtcbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgIGNvbnRlbnQ6IFwiXFwyMDE0IFxcMDAyMFwiO1xuICAgICAgICB9XG5cbiAgICAgICAgYSxcbiAgICAgICAgYTp2aXNpdGVkIHtcbiAgICAgICAgICBjb2xvcjogJGJsb2NrcXVvdGUtY2l0ZS1saW5rLWNvbG9yO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGJsb2NrcXVvdGUsXG4gICAgYmxvY2txdW90ZSBwIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiAkcGFyYWdyYXBoLWxpbmUtaGVpZ2h0O1xuICAgICAgY29sb3I6ICRibG9ja3F1b3RlLWZvbnQtY29sb3I7XG4gICAgfVxuXG4gICAgLyogTWljcm9mb3JtYXRzICovXG4gICAgLnZjYXJkIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIG1hcmdpbjogJG1pY3JvZm9ybWF0LW1hcmdpbjtcbiAgICAgIGJvcmRlcjogJG1pY3JvZm9ybWF0LWJvcmRlci13aWR0aCAkbWljcm9mb3JtYXQtYm9yZGVyLXN0eWxlICRtaWNyb2Zvcm1hdC1ib3JkZXItY29sb3I7XG4gICAgICBwYWRkaW5nOiAkbWljcm9mb3JtYXQtcGFkZGluZztcblxuICAgICAgbGkge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgICAgLmZuIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRtaWNyb2Zvcm1hdC1mdWxsbmFtZS1mb250LXdlaWdodDtcbiAgICAgICAgZm9udC1zaXplOiAkbWljcm9mb3JtYXQtZnVsbG5hbWUtZm9udC1zaXplO1xuICAgICAgfVxuICAgIH1cblxuICAgIC52ZXZlbnQge1xuICAgICAgLnN1bW1hcnkgeyBmb250LXdlaWdodDogJG1pY3JvZm9ybWF0LXN1bW1hcnktZm9udC13ZWlnaHQ7IH1cblxuICAgICAgYWJiciB7XG4gICAgICAgIGN1cnNvcjogJGN1cnNvci1kZWZhdWx0LXZhbHVlO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246ICRtaWNyb2Zvcm1hdC1hYmJyLWZvbnQtZGVjb3JhdGlvbjtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRtaWNyb2Zvcm1hdC1hYmJyLWZvbnQtd2VpZ2h0O1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6ICRtaWNyb2Zvcm1hdC1hYmJyLXBhZGRpbmc7XG4gICAgICB9XG4gICAgfVxuXG5cbiAgICBAbWVkaWEgI3skbWVkaXVtLXVwfSB7XG4gICAgICBoMSxoMixoMyxoNCxoNSxoNiB7IGxpbmUtaGVpZ2h0OiAkaGVhZGVyLWxpbmUtaGVpZ2h0OyB9XG4gICAgICBoMSB7IGZvbnQtc2l6ZTogJGgxLWZvbnQtc2l6ZTsgfVxuICAgICAgaDIgeyBmb250LXNpemU6ICRoMi1mb250LXNpemU7IH1cbiAgICAgIGgzIHsgZm9udC1zaXplOiAkaDMtZm9udC1zaXplOyB9XG4gICAgICBoNCB7IGZvbnQtc2l6ZTogJGg0LWZvbnQtc2l6ZTsgfVxuICAgICAgaDUgeyBmb250LXNpemU6ICRoNS1mb250LXNpemU7IH1cbiAgICAgIGg2IHsgZm9udC1zaXplOiAkaDYtZm9udC1zaXplOyB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AaW1wb3J0IFwiZ2xvYmFsXCI7XG5cbi8vXG4vLyBGb3VuZGF0aW9uIFZpc2liaWxpdHkgQ2xhc3Nlc1xuLy9cbiRpbmNsdWRlLWh0bWwtdmlzaWJpbGl0eS1jbGFzc2VzOiAkaW5jbHVkZS1odG1sLWNsYXNzZXMgIWRlZmF1bHQ7XG4kaW5jbHVkZS1hY2Nlc3NpYmlsaXR5LWNsYXNzZXM6IHRydWUgIWRlZmF1bHQ7XG4kaW5jbHVkZS10YWJsZS12aXNpYmlsaXR5LWNsYXNzZXM6IHRydWUgIWRlZmF1bHQ7XG4kaW5jbHVkZS1sZWdhY3ktdmlzaWJpbGl0eS1jbGFzc2VzOiB0cnVlICFkZWZhdWx0O1xuXG4vL1xuLy8gTWVkaWEgQ2xhc3MgTmFtZXNcbi8vXG4vLyBWaXNpYmlsaXR5IEJyZWFrcG9pbnRzXG4kdmlzaWJpbGl0eS1icmVha3BvaW50LXNpemVzOlxuICBzbWFsbCxcbiAgbWVkaXVtLFxuICBsYXJnZSxcbiAgeGxhcmdlLFxuICB4eGxhcmdlO1xuXG4kdmlzaWJpbGl0eS1icmVha3BvaW50LXF1ZXJpZXM6XG4gIHVucXVvdGUoJHNtYWxsLXVwKSxcbiAgdW5xdW90ZSgkbWVkaXVtLXVwKSxcbiAgdW5xdW90ZSgkbGFyZ2UtdXApLFxuICB1bnF1b3RlKCR4bGFyZ2UtdXApLFxuICB1bnF1b3RlKCR4eGxhcmdlLXVwKTtcblxuQG1peGluIHZpc2liaWxpdHktbG9vcCB7XG4gIEBlYWNoICRjdXJyZW50LXZpc2liaWxpdHktYnJlYWtwb2ludCBpbiAkdmlzaWJpbGl0eS1icmVha3BvaW50LXNpemVzIHtcbiAgICAkdmlzaWJpbGl0eS1pbmhlcml0LWxpc3Q6ICgpO1xuICAgICR2aXNpYmlsaXR5LW5vbmUtbGlzdDogKCk7XG5cbiAgICAkdmlzaWJpbGl0eS12aXNpYmxlLWxpc3Q6ICgpO1xuICAgICR2aXNpYmlsaXR5LWhpZGRlbi1saXN0OiAoKTtcblxuICAgICR2aXNpYmlsaXR5LXRhYmxlLWxpc3Q6ICgpO1xuICAgICR2aXNpYmlsaXR5LXRhYmxlLWhlYWRlci1ncm91cC1saXN0OiAoKTtcbiAgICAkdmlzaWJpbGl0eS10YWJsZS1yb3ctZ3JvdXAtbGlzdDogKCk7XG4gICAgJHZpc2liaWxpdHktdGFibGUtcm93LWxpc3Q6ICgpO1xuICAgICR2aXNpYmlsaXR5LXRhYmxlLWNlbGwtbGlzdDogKCk7XG5cbiAgICBAZWFjaCAkdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnQgaW4gJHZpc2liaWxpdHktYnJlYWtwb2ludC1zaXplcyB7XG4gICAgICBAaWYgaW5kZXgoJHZpc2liaWxpdHktYnJlYWtwb2ludC1zaXplcywgJHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50KSA8IGluZGV4KCR2aXNpYmlsaXR5LWJyZWFrcG9pbnQtc2l6ZXMsICRjdXJyZW50LXZpc2liaWxpdHktYnJlYWtwb2ludCkge1xuICAgICAgICAvLyBTbWFsbGVyIHRoYW4gY3VycmVudCBicmVha3BvaW50XG5cbiAgICAgICAgJHZpc2liaWxpdHktaW5oZXJpdC1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktaW5oZXJpdC1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICcuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIC5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXG4gICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgJHZpc2liaWxpdHktbm9uZS1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktbm9uZS1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICcuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIC5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXG4gICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgJHZpc2liaWxpdHktdmlzaWJsZS1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdmlzaWJsZS1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICcuaGlkZGVuLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgLnZpc2libGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcbiAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAkdmlzaWJpbGl0eS1oaWRkZW4tbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LWhpZGRlbi1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICcudmlzaWJsZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIC5oaWRkZW4tZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcbiAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAndGFibGUuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIHRhYmxlLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcbiAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1oZWFkZXItZ3JvdXAtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLWhlYWRlci1ncm91cC1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICd0aGVhZC5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgdGhlYWQuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwJ1xuICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLXJvdy1ncm91cC1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtcm93LWdyb3VwLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgJ3Rib2R5LmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCB0Ym9keS5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXG4gICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgJHZpc2liaWxpdHktdGFibGUtcm93LWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1yb3ctbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAndHIuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIHRyLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcbiAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1jZWxsLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1jZWxsLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgJ3RoLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCB0ZC5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgdGguc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwLCB0ZC5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXG4gICAgICAgICksIGNvbW1hKTtcblxuICAgICAgICAvLyBGb3VuZGF0aW9uIDQgY29tcGF0aWJpbGl0eTpcbiAgICAgICAgLy8gSW5jbHVkZSAuc2hvdy9oaWRlLWZvci1bc2l6ZV0gYW5kIC5zaG93L2hpZGUtZm9yLVtzaXplXS1kb3duIGNsYXNzZXNcbiAgICAgICAgLy8gZm9yIHNtYWxsLCBtZWRpdW0sIGFuZCBsYXJnZSBicmVha3BvaW50cyBvbmx5XG4gICAgICAgIEBpZiAkaW5jbHVkZS1sZWdhY3ktdmlzaWJpbGl0eS1jbGFzc2VzIGFuZCBpbmRleCgoc21hbGwsIG1lZGl1bSwgbGFyZ2UpLCAkdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnQpICE9IGZhbHNlIHtcbiAgICAgICAgICAkdmlzaWJpbGl0eS1pbmhlcml0LWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS1pbmhlcml0LWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgICAnLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xuICAgICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgICAkdmlzaWJpbGl0eS1ub25lLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS1ub25lLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgICAnLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xuICAgICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgICAkdmlzaWJpbGl0eS12aXNpYmxlLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS12aXNpYmxlLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgICAnLmhpZGRlbi1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCAuaGlkZGVuLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93bidcbiAgICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICAgJHZpc2liaWxpdHktaGlkZGVuLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS1oaWRkZW4tbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAgICcudmlzaWJsZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCAudmlzaWJsZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXG4gICAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICAgJ3RhYmxlLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgdGFibGUuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXG4gICAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLWhlYWRlci1ncm91cC1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtaGVhZGVyLWdyb3VwLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgICAndGhlYWQuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCB0aGVhZC5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93bidcbiAgICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICAgJHZpc2liaWxpdHktdGFibGUtcm93LWdyb3VwLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1yb3ctZ3JvdXAtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAgICd0Ym9keS5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0sIHRib2R5LmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xuICAgICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1yb3ctbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLXJvdy1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICAgJ3RyLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgdHIuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXG4gICAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLWNlbGwtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLWNlbGwtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAgICd0aC5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0sIHRkLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgdGguaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24sIHRkLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xuICAgICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgfVxuXG4gICAgICB9IEBlbHNlIGlmIGluZGV4KCR2aXNpYmlsaXR5LWJyZWFrcG9pbnQtc2l6ZXMsICR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludCkgPiBpbmRleCgkdmlzaWJpbGl0eS1icmVha3BvaW50LXNpemVzLCAkY3VycmVudC12aXNpYmlsaXR5LWJyZWFrcG9pbnQpIHtcbiAgICAgICAgLy8gTGFyZ2VyIHRoYW4gY3VycmVudCBicmVha3BvaW50XG5cbiAgICAgICAgJHZpc2liaWxpdHktaW5oZXJpdC1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktaW5oZXJpdC1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICcuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIC5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXG4gICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgJHZpc2liaWxpdHktbm9uZS1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktbm9uZS1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICcuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIC5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXG4gICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgJHZpc2liaWxpdHktdmlzaWJsZS1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdmlzaWJsZS1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICcuaGlkZGVuLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgLmhpZGRlbi1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwJ1xuICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICR2aXNpYmlsaXR5LWhpZGRlbi1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktaGlkZGVuLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgJy52aXNpYmxlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgLnZpc2libGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcbiAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAndGFibGUuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIHRhYmxlLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcbiAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1oZWFkZXItZ3JvdXAtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLWhlYWRlci1ncm91cC1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICd0aGVhZC5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgdGhlYWQuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwJ1xuICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLXJvdy1ncm91cC1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtcm93LWdyb3VwLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgJ3Rib2R5LmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCB0Ym9keS5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXG4gICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgJHZpc2liaWxpdHktdGFibGUtcm93LWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1yb3ctbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAndHIuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIHRyLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcbiAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1jZWxsLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1jZWxsLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgJ3RoLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCB0ZC5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgdGguaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwLCB0ZC5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXG4gICAgICAgICksIGNvbW1hKTtcblxuICAgICAgICAvLyBGb3VuZGF0aW9uIDQgY29tcGF0aWJpbGl0eTpcbiAgICAgICAgLy8gSW5jbHVkZSAuc2hvdy9oaWRlLWZvci1bc2l6ZV0gYW5kIC5zaG93L2hpZGUtZm9yLVtzaXplXS1kb3duIGNsYXNzZXNcbiAgICAgICAgLy8gZm9yIHNtYWxsLCBtZWRpdW0sIGFuZCBsYXJnZSBicmVha3BvaW50cyBvbmx5XG4gICAgICAgIEBpZiAkaW5jbHVkZS1sZWdhY3ktdmlzaWJpbGl0eS1jbGFzc2VzIGFuZCBpbmRleCgoc21hbGwsIG1lZGl1bSwgbGFyZ2UpLCAkdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnQpICE9IGZhbHNlIHtcbiAgICAgICAgICAkdmlzaWJpbGl0eS1pbmhlcml0LWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS1pbmhlcml0LWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgICAnLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xuICAgICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgICAkdmlzaWJpbGl0eS1ub25lLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS1ub25lLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgICAnLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xuICAgICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgICAkdmlzaWJpbGl0eS12aXNpYmxlLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS12aXNpYmxlLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgICAnLmhpZGRlbi1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCAudmlzaWJsZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXG4gICAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAgICR2aXNpYmlsaXR5LWhpZGRlbi1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktaGlkZGVuLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgICAnLnZpc2libGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgLmhpZGRlbi1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXG4gICAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICAgJ3RhYmxlLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgdGFibGUuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXG4gICAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLWhlYWRlci1ncm91cC1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtaGVhZGVyLWdyb3VwLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgICAndGhlYWQuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCB0aGVhZC5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93bidcbiAgICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICAgJHZpc2liaWxpdHktdGFibGUtcm93LWdyb3VwLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1yb3ctZ3JvdXAtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAgICd0Ym9keS5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0sIHRib2R5LnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xuICAgICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1yb3ctbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLXJvdy1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICAgJ3RyLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgdHIuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXG4gICAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLWNlbGwtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLWNlbGwtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAgICd0aC5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0sIHRkLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgdGguc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24sIHRkLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xuICAgICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgfVxuXG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgLy8gQ3VycmVudCBicmVha3BvaW50XG5cbiAgICAgICAgJHZpc2liaWxpdHktaW5oZXJpdC1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktaW5oZXJpdC1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICcuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIC5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXG4gICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgJHZpc2liaWxpdHktbm9uZS1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktbm9uZS1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICcuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIC5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXG4gICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgJHZpc2liaWxpdHktdmlzaWJsZS1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdmlzaWJsZS1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICcudmlzaWJsZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIC52aXNpYmxlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXG4gICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgJHZpc2liaWxpdHktaGlkZGVuLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS1oaWRkZW4tbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAnLmhpZGRlbi1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIC5oaWRkZW4tZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcbiAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAndGFibGUuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIHRhYmxlLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcbiAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1oZWFkZXItZ3JvdXAtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLWhlYWRlci1ncm91cC1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICd0aGVhZC5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgdGhlYWQuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwJ1xuICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLXJvdy1ncm91cC1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtcm93LWdyb3VwLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgJ3Rib2R5LnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCB0Ym9keS5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXG4gICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgJHZpc2liaWxpdHktdGFibGUtcm93LWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1yb3ctbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAndHIuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIHRyLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcbiAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1jZWxsLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1jZWxsLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgJ3RoLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCB0ZC5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgdGguc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwLCB0ZC5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXG4gICAgICAgICksIGNvbW1hKTtcblxuICAgICAgICAvLyBGb3VuZGF0aW9uIDQgY29tcGF0aWJpbGl0eTpcbiAgICAgICAgLy8gSW5jbHVkZSAuc2hvdy9oaWRlLWZvci1bc2l6ZV0gYW5kIC5zaG93L2hpZGUtZm9yLVtzaXplXS1kb3duIGNsYXNzZXNcbiAgICAgICAgLy8gZm9yIHNtYWxsLCBtZWRpdW0sIGFuZCBsYXJnZSBicmVha3BvaW50cyBvbmx5XG4gICAgICAgIEBpZiAkaW5jbHVkZS1sZWdhY3ktdmlzaWJpbGl0eS1jbGFzc2VzIGFuZCBpbmRleCgoc21hbGwsIG1lZGl1bSwgbGFyZ2UpLCAkdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnQpICE9IGZhbHNlIHtcbiAgICAgICAgICAkdmlzaWJpbGl0eS1pbmhlcml0LWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS1pbmhlcml0LWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgICAnLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xuICAgICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgICAkdmlzaWJpbGl0eS1ub25lLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS1ub25lLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgICAnLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xuICAgICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgICAkdmlzaWJpbGl0eS12aXNpYmxlLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS12aXNpYmxlLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgICAnLnZpc2libGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgLnZpc2libGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xuICAgICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgICAkdmlzaWJpbGl0eS1oaWRkZW4tbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LWhpZGRlbi1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICAgJy5oaWRkZW4tZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgLmhpZGRlbi1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXG4gICAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICAgJ3RhYmxlLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgdGFibGUuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXG4gICAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLWhlYWRlci1ncm91cC1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtaGVhZGVyLWdyb3VwLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgICAndGhlYWQuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCB0aGVhZC5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93bidcbiAgICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICAgJHZpc2liaWxpdHktdGFibGUtcm93LWdyb3VwLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1yb3ctZ3JvdXAtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAgICd0Ym9keS5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0sIHRib2R5LnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xuICAgICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1yb3ctbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLXJvdy1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICAgJ3RyLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgdHIuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXG4gICAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLWNlbGwtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLWNlbGwtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAgICd0aC5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0sIHRkLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgdGguc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24sIHRkLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xuICAgICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8qICN7JGN1cnJlbnQtdmlzaWJpbGl0eS1icmVha3BvaW50fSBkaXNwbGF5cyAqL1xuICAgIEBtZWRpYSAje250aCgkdmlzaWJpbGl0eS1icmVha3BvaW50LXF1ZXJpZXMsIGluZGV4KCR2aXNpYmlsaXR5LWJyZWFrcG9pbnQtc2l6ZXMsICRjdXJyZW50LXZpc2liaWxpdHktYnJlYWtwb2ludCkpfSB7XG4gICAgICAjeyR2aXNpYmlsaXR5LWluaGVyaXQtbGlzdH0ge1xuICAgICAgICBkaXNwbGF5OiBpbmhlcml0ICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgICAjeyR2aXNpYmlsaXR5LW5vbmUtbGlzdH0ge1xuICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgICBAaWYgJGluY2x1ZGUtYWNjZXNzaWJpbGl0eS1jbGFzc2VzICE9IGZhbHNlIHtcbiAgICAgICAgI3skdmlzaWJpbGl0eS12aXNpYmxlLWxpc3R9IHtcbiAgICAgICAgICBAaW5jbHVkZSBlbGVtZW50LWludmlzaWJsZS1vZmY7XG4gICAgICAgIH1cbiAgICAgICAgI3skdmlzaWJpbGl0eS1oaWRkZW4tbGlzdH0ge1xuICAgICAgICAgIEBpbmNsdWRlIGVsZW1lbnQtaW52aXNpYmxlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAaWYgJGluY2x1ZGUtdGFibGUtdmlzaWJpbGl0eS1jbGFzc2VzICE9IGZhbHNlIHtcbiAgICAgICAgI3skdmlzaWJpbGl0eS10YWJsZS1saXN0fSB7XG4gICAgICAgICAgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgICAjeyR2aXNpYmlsaXR5LXRhYmxlLWhlYWRlci1ncm91cC1saXN0fSB7XG4gICAgICAgICAgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgICAgI3skdmlzaWJpbGl0eS10YWJsZS1yb3ctZ3JvdXAtbGlzdH0ge1xuICAgICAgICAgIGRpc3BsYXk6IHRhYmxlLXJvdy1ncm91cCAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICAgICN7JHZpc2liaWxpdHktdGFibGUtcm93LWxpc3R9IHtcbiAgICAgICAgICBkaXNwbGF5OiB0YWJsZS1yb3c7XG4gICAgICAgIH1cbiAgICAgICAgI3skdmlzaWJpbGl0eS10YWJsZS1jZWxsLWxpc3R9IHtcbiAgICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuXG5AaWYgJGluY2x1ZGUtaHRtbC12aXNpYmlsaXR5LWNsYXNzZXMgIT0gZmFsc2Uge1xuXG4gIEBpbmNsdWRlIHZpc2liaWxpdHktbG9vcDtcblxuICAvKiBPcmllbnRhdGlvbiB0YXJnZXRpbmcgKi9cbiAgLnNob3ctZm9yLWxhbmRzY2FwZSxcbiAgLmhpZGUtZm9yLXBvcnRyYWl0IHsgZGlzcGxheTogaW5oZXJpdCAhaW1wb3J0YW50OyB9XG4gIC5oaWRlLWZvci1sYW5kc2NhcGUsXG4gIC5zaG93LWZvci1wb3J0cmFpdCB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4gIC8qIFNwZWNpZmljIHZpc2liaWxpdHkgZm9yIHRhYmxlcyAqL1xuICB0YWJsZSB7XG4gICAgJi5oaWRlLWZvci1sYW5kc2NhcGUsXG4gICAgJi5zaG93LWZvci1wb3J0cmFpdCB7IGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7IH1cbiAgfVxuICB0aGVhZCB7XG4gICAgJi5oaWRlLWZvci1sYW5kc2NhcGUsXG4gICAgJi5zaG93LWZvci1wb3J0cmFpdCB7IGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cCAhaW1wb3J0YW50OyB9XG4gIH1cbiAgdGJvZHkge1xuICAgICYuaGlkZS1mb3ItbGFuZHNjYXBlLFxuICAgICYuc2hvdy1mb3ItcG9ydHJhaXQgeyBkaXNwbGF5OiB0YWJsZS1yb3ctZ3JvdXAgIWltcG9ydGFudDsgfVxuICB9XG4gIHRyIHtcbiAgICAmLmhpZGUtZm9yLWxhbmRzY2FwZSxcbiAgICAmLnNob3ctZm9yLXBvcnRyYWl0IHsgZGlzcGxheTogdGFibGUtcm93ICFpbXBvcnRhbnQ7IH1cbiAgfVxuICB0ZCxcbiAgdGgge1xuICAgICYuaGlkZS1mb3ItbGFuZHNjYXBlLFxuICAgICYuc2hvdy1mb3ItcG9ydHJhaXQgeyBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cbiAgfVxuXG4gIEBtZWRpYSAjeyRsYW5kc2NhcGV9IHtcbiAgICAuc2hvdy1mb3ItbGFuZHNjYXBlLFxuICAgIC5oaWRlLWZvci1wb3J0cmFpdCB7IGRpc3BsYXk6IGluaGVyaXQgIWltcG9ydGFudDsgfVxuICAgIC5oaWRlLWZvci1sYW5kc2NhcGUsXG4gICAgLnNob3ctZm9yLXBvcnRyYWl0IHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbiAgICAvKiBTcGVjaWZpYyB2aXNpYmlsaXR5IGZvciB0YWJsZXMgKi9cbiAgICB0YWJsZSB7XG4gICAgICAmLnNob3ctZm9yLWxhbmRzY2FwZSxcbiAgICAgICYuaGlkZS1mb3ItcG9ydHJhaXQgeyBkaXNwbGF5OiB0YWJsZSAhaW1wb3J0YW50OyB9XG4gICAgfVxuICAgIHRoZWFkIHtcbiAgICAgICYuc2hvdy1mb3ItbGFuZHNjYXBlLFxuICAgICAgJi5oaWRlLWZvci1wb3J0cmFpdCB7IGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cCAhaW1wb3J0YW50OyB9XG4gICAgfVxuICAgIHRib2R5IHtcbiAgICAgICYuc2hvdy1mb3ItbGFuZHNjYXBlLFxuICAgICAgJi5oaWRlLWZvci1wb3J0cmFpdCB7IGRpc3BsYXk6IHRhYmxlLXJvdy1ncm91cCAhaW1wb3J0YW50OyB9XG4gICAgfVxuICAgIHRyIHtcbiAgICAgICYuc2hvdy1mb3ItbGFuZHNjYXBlLFxuICAgICAgJi5oaWRlLWZvci1wb3J0cmFpdCB7IGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50OyB9XG4gICAgfVxuICAgIHRkLFxuICAgIHRoIHtcbiAgICAgICYuc2hvdy1mb3ItbGFuZHNjYXBlLFxuICAgICAgJi5oaWRlLWZvci1wb3J0cmFpdCB7IGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxuICAgIH1cbiAgfVxuXG4gIEBtZWRpYSAjeyRwb3J0cmFpdH0ge1xuICAgIC5zaG93LWZvci1wb3J0cmFpdCxcbiAgICAuaGlkZS1mb3ItbGFuZHNjYXBlIHsgZGlzcGxheTogaW5oZXJpdCAhaW1wb3J0YW50OyB9XG4gICAgLmhpZGUtZm9yLXBvcnRyYWl0LFxuICAgIC5zaG93LWZvci1sYW5kc2NhcGUgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuICAgIC8qIFNwZWNpZmljIHZpc2liaWxpdHkgZm9yIHRhYmxlcyAqL1xuICAgIHRhYmxlIHtcbiAgICAgICYuc2hvdy1mb3ItcG9ydHJhaXQsXG4gICAgICAmLmhpZGUtZm9yLWxhbmRzY2FwZSB7IGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7IH1cbiAgICB9XG4gICAgdGhlYWQge1xuICAgICAgJi5zaG93LWZvci1wb3J0cmFpdCxcbiAgICAgICYuaGlkZS1mb3ItbGFuZHNjYXBlIHsgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgICB9XG4gICAgdGJvZHkge1xuICAgICAgJi5zaG93LWZvci1wb3J0cmFpdCxcbiAgICAgICYuaGlkZS1mb3ItbGFuZHNjYXBlIHsgZGlzcGxheTogdGFibGUtcm93LWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgICB9XG4gICAgdHIge1xuICAgICAgJi5zaG93LWZvci1wb3J0cmFpdCxcbiAgICAgICYuaGlkZS1mb3ItbGFuZHNjYXBlIHsgZGlzcGxheTogdGFibGUtcm93ICFpbXBvcnRhbnQ7IH1cbiAgICB9XG4gICAgdGQsXG4gICAgdGgge1xuICAgICAgJi5zaG93LWZvci1wb3J0cmFpdCxcbiAgICAgICYuaGlkZS1mb3ItbGFuZHNjYXBlIHsgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XG4gICAgfVxuICB9XG5cbiAgLyogVG91Y2gtZW5hYmxlZCBkZXZpY2UgdGFyZ2V0aW5nICovXG4gIC5zaG93LWZvci10b3VjaCB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuICAuaGlkZS1mb3ItdG91Y2ggeyBkaXNwbGF5OiBpbmhlcml0ICFpbXBvcnRhbnQ7IH1cbiAgLnRvdWNoIC5zaG93LWZvci10b3VjaCB7IGRpc3BsYXk6IGluaGVyaXQgIWltcG9ydGFudDsgfVxuICAudG91Y2ggLmhpZGUtZm9yLXRvdWNoIHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbiAgLyogU3BlY2lmaWMgdmlzaWJpbGl0eSBmb3IgdGFibGVzICovXG4gIHRhYmxlLmhpZGUtZm9yLXRvdWNoIHsgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDsgfVxuICAudG91Y2ggdGFibGUuc2hvdy1mb3ItdG91Y2ggeyBkaXNwbGF5OiB0YWJsZSAhaW1wb3J0YW50OyB9XG4gIHRoZWFkLmhpZGUtZm9yLXRvdWNoIHsgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgLnRvdWNoIHRoZWFkLnNob3ctZm9yLXRvdWNoIHsgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgdGJvZHkuaGlkZS1mb3ItdG91Y2ggeyBkaXNwbGF5OiB0YWJsZS1yb3ctZ3JvdXAgIWltcG9ydGFudDsgfVxuICAudG91Y2ggdGJvZHkuc2hvdy1mb3ItdG91Y2ggeyBkaXNwbGF5OiB0YWJsZS1yb3ctZ3JvdXAgIWltcG9ydGFudDsgfVxuICB0ci5oaWRlLWZvci10b3VjaCB7IGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50OyB9XG4gIC50b3VjaCB0ci5zaG93LWZvci10b3VjaCB7IGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50OyB9XG4gIHRkLmhpZGUtZm9yLXRvdWNoIHsgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XG4gIC50b3VjaCB0ZC5zaG93LWZvci10b3VjaCB7IGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxuICB0aC5oaWRlLWZvci10b3VjaCB7IGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxuICAudG91Y2ggdGguc2hvdy1mb3ItdG91Y2ggeyBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cblxuICAvLyBPbmx5IGluY2x1ZGUgdGhlc2Ugc3R5bGVzIGlmIHlvdSB3YW50IHRoZW0uXG4gICAgQGlmICRpbmNsdWRlLXByaW50LXN0eWxlcyB7XG4gICAgICAvKlxuICAgICAgICogUHJpbnQgc3R5bGVzLlxuICAgICAgICpcbiAgICAgICAqIElubGluZWQgdG8gYXZvaWQgcmVxdWlyZWQgSFRUUCBjb25uZWN0aW9uOiB3d3cucGhwaWVkLmNvbS9kZWxheS1sb2FkaW5nLXlvdXItcHJpbnQtY3NzL1xuICAgICAgICogQ3JlZGl0IHRvIFBhdWwgSXJpc2ggYW5kIEhUTUw1IEJvaWxlcnBsYXRlIChodG1sNWJvaWxlcnBsYXRlLmNvbSlcbiAgICAgICovXG4gICAgICAucHJpbnQtb25seSB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuICAgICAgQG1lZGlhIHByaW50IHtcbiAgICAgICAgKiB7XG4gICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgICAgICBjb2xvcjogJGJsYWNrICFpbXBvcnRhbnQ7IC8qIEJsYWNrIHByaW50cyBmYXN0ZXI6IGg1YnAuY29tL3MgKi9cbiAgICAgICAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgICAgdGV4dC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgICAuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiBibG9jazsgfVxuICAgICAgICAuaGlkZS1mb3ItcHJpbnQgeyBkaXNwbGF5OiBub25lOyB9XG5cbiAgICAgICAgdGFibGUuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZSAhaW1wb3J0YW50OyB9XG4gICAgICAgIHRoZWFkLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgICAgICAgdGJvZHkuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1yb3ctZ3JvdXAgIWltcG9ydGFudDsgfVxuICAgICAgICB0ci5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50OyB9XG4gICAgICAgIHRkLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XG4gICAgICAgIHRoLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XG5cbiAgICAgICAgYSxcbiAgICAgICAgYTp2aXNpdGVkIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7fVxuICAgICAgICBhW2hyZWZdOmFmdGVyIHsgY29udGVudDogXCIgKFwiIGF0dHIoaHJlZikgXCIpXCI7IH1cblxuICAgICAgICBhYmJyW3RpdGxlXTphZnRlciB7IGNvbnRlbnQ6IFwiIChcIiBhdHRyKHRpdGxlKSBcIilcIjsgfVxuXG4gICAgICAgIC8vIERvbid0IHNob3cgbGlua3MgZm9yIGltYWdlcywgb3IgamF2YXNjcmlwdC9pbnRlcm5hbCBsaW5rc1xuICAgICAgICAuaXIgYTphZnRlcixcbiAgICAgICAgYVtocmVmXj1cImphdmFzY3JpcHQ6XCJdOmFmdGVyLFxuICAgICAgICBhW2hyZWZePVwiI1wiXTphZnRlciB7IGNvbnRlbnQ6IFwiXCI7IH1cblxuICAgICAgICBwcmUsXG4gICAgICAgIGJsb2NrcXVvdGUge1xuICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRhbHVtaW51bTtcbiAgICAgICAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gICAgICAgIH1cblxuICAgICAgICB0aGVhZCB7IGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cDsgLyogaDVicC5jb20vdCAqLyB9XG5cbiAgICAgICAgdHIsXG4gICAgICAgIGltZyB7IHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDsgfVxuXG4gICAgICAgIGltZyB7IG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9XG5cbiAgICAgICAgQHBhZ2UgeyBtYXJnaW46IDAuNWNtOyB9XG5cbiAgICAgICAgcCxcbiAgICAgICAgaDIsXG4gICAgICAgIGgzIHtcbiAgICAgICAgICBvcnBoYW5zOiAzO1xuICAgICAgICAgIHdpZG93czogMztcbiAgICAgICAgfVxuXG4gICAgICAgIGgyLFxuICAgICAgICBoMyB7IHBhZ2UtYnJlYWstYWZ0ZXI6IGF2b2lkOyB9XG5cbiAgICAgICAgLmhpZGUtb24tcHJpbnQgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cbiAgICAgICAgLnByaW50LW9ubHkgeyBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9XG4gICAgICAgIC5oaWRlLWZvci1wcmludCB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuICAgICAgICAuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiBpbmhlcml0ICFpbXBvcnRhbnQ7IH1cbiAgICAgIH1cbiAgICB9XG5cbiAgLyogUHJpbnQgdmlzaWJpbGl0eSAqL1xuICAgIEBtZWRpYSBwcmludCB7XG4gICAgICAuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiBibG9jazsgfVxuICAgICAgLmhpZGUtZm9yLXByaW50IHsgZGlzcGxheTogbm9uZTsgfVxuXG4gICAgICB0YWJsZS5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7IH1cbiAgICAgIHRoZWFkLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgICAgIHRib2R5LnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtcm93LWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgICAgIHRyLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtcm93ICFpbXBvcnRhbnQ7IH1cbiAgICAgIHRkLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XG4gICAgICB0aC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxuICB9XG59XG4iLCJAaW1wb3J0IFwibmF2L2hvcml6b250YWxcIjtcblxuJHBhZ2luYXRpb24taXRlbS1oZWlnaHQ6ICAgICAgICAycmVtICFkZWZhdWx0O1xuJHBhZ2luYXRpb24taXRlbS1zaWRlLXBhZGRpbmc6ICAxcmVtICFkZWZhdWx0O1xuJHBhZ2luYXRpb24taXRlbS1zcGFjaW5nOiAgICAgICAwICFkZWZhdWx0O1xuJHBhZ2luYXRpb24taXRlbS1iYWNrZ3JvdW5kOiAgICAjZWZlZmVmICFkZWZhdWx0O1xuJHBhZ2luYXRpb24taXRlbS1ib3JkZXItcmFkaXVzOiAwICFkZWZhdWx0O1xuJHBhZ2luYXRpb24taXRlbS1ib3JkZXItc2l6ZTogICAxcHggIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1pdGVtLWJvcmRlci1jb2xvcjogICNjY2MgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1pdGVtLWNvbG9yOiAgICAgICAgICMzMzMgIWRlZmF1bHQ7XG5cbiRwYWdpbmF0aW9uLWN1cnJlbnQtaXRlbS1iYWNrZ3JvdW5kOiAgICAjMDAwICFkZWZhdWx0O1xuJHBhZ2luYXRpb24tY3VycmVudC1pdGVtLWJvcmRlci1jb2xvcjogICMwMDAgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1jdXJyZW50LWl0ZW0tY29sb3I6ICAgICAgICAgI2VlZSAhZGVmYXVsdDtcblxuJHBhZ2luYXRpb24taG92ZXItaXRlbS1iYWNrZ3JvdW5kOiAgICAgICNjY2MgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1ob3Zlci1pdGVtLWNvbG9yOiAgICAgICAgICAgIzAwMCAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWhvdmVyLWl0ZW0tYm9yZGVyLWNvbG9yOiAgICAjYWFhICFkZWZhdWx0O1xuXG4kcGFnaW5hdGlvbi1pbmNsdWRlLW1lZGlhcXVlcmllczogICAgICAgdHJ1ZSAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWZ1bGwtYnJlYWtwb2ludDogICAgICAgICAgICBcIm9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3MDBweClcIiAhZGVmYXVsdDtcblxuJHBhZ2luYXRpb24taXMtbG9hZGVkOiBmYWxzZSAhZGVmYXVsdDtcblxuQGlmICRwYWdpbmF0aW9uLWlzLWxvYWRlZCA9PSBmYWxzZSB7XG4gICAgLnBhZ2luYXRpb24td3JhcHBlciB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cblxuICAgIC5wYWdpbmF0aW9uIHtcbiAgICAgICAgQGV4dGVuZCAlbmF2LS1ob3Jpem9udGFsO1xuICAgIH1cblxuICAgIC5wYWdpbmF0aW9uX19pdGVtIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAkcGFnaW5hdGlvbi1pdGVtLXNwYWNpbmc7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwYWdpbmF0aW9uLWl0ZW0tYmFja2dyb3VuZDtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbiAgICAgICAgXG4gICAgICAgIC5wYWdpbmF0aW9uICYge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAkcGFnaW5hdGlvbi1pdGVtLWJvcmRlci1zaXplID4gMCB7XG4gICAgICAgICAgICBib3JkZXI6ICRwYWdpbmF0aW9uLWl0ZW0tYm9yZGVyLXNpemUgc29saWQgJHBhZ2luYXRpb24taXRlbS1ib3JkZXItY29sb3I7XG5cbiAgICAgICAgICAgIEBpZiAkcGFnaW5hdGlvbi1pdGVtLXNwYWNpbmcgPT0gMCB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGlmICRwYWdpbmF0aW9uLWl0ZW0tYm9yZGVyLXJhZGl1cyA+IDAgYW5kICRwYWdpbmF0aW9uLWl0ZW0tc3BhY2luZyA+IDAge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogJHBhZ2luYXRpb24taXRlbS1ib3JkZXItcmFkaXVzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICBAaWYgJHBhZ2luYXRpb24taXRlbS1zcGFjaW5nID09IDAgYW5kICRwYWdpbmF0aW9uLWl0ZW0tYm9yZGVyLXJhZGl1cyA+IDAge1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6ICRwYWdpbmF0aW9uLWl0ZW0tYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAkcGFnaW5hdGlvbi1pdGVtLWJvcmRlci1yYWRpdXM7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuXG4gICAgICAgICAgICBAaWYgJHBhZ2luYXRpb24taXRlbS1ib3JkZXItc2l6ZSA+IDAge1xuICAgICAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogJHBhZ2luYXRpb24taXRlbS1ib3JkZXItc2l6ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGlmICRwYWdpbmF0aW9uLWl0ZW0tc3BhY2luZyA9PSAwIGFuZCAkcGFnaW5hdGlvbi1pdGVtLWJvcmRlci1yYWRpdXMgPiAwIHtcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogJHBhZ2luYXRpb24taXRlbS1ib3JkZXItcmFkaXVzO1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAkcGFnaW5hdGlvbi1pdGVtLWJvcmRlci1yYWRpdXM7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBhIHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkcGFnaW5hdGlvbi1pdGVtLWhlaWdodDtcbiAgICAgICAgICAgIGNvbG9yOiAkcGFnaW5hdGlvbi1pdGVtLWNvbG9yO1xuICAgICAgICAgICAgcGFkZGluZzogMCAkcGFnaW5hdGlvbi1pdGVtLXNpZGUtcGFkZGluZztcbiAgICAgICAgICAgIFxuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcGFnaW5hdGlvbi1ob3Zlci1pdGVtLWJhY2tncm91bmQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRwYWdpbmF0aW9uLWhvdmVyLWl0ZW0tYm9yZGVyLWNvbG9yO1xuXG4gICAgICAgICAgICBhLFxuICAgICAgICAgICAgYTpob3ZlcixcbiAgICAgICAgICAgIGE6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkcGFnaW5hdGlvbi1ob3Zlci1pdGVtLWNvbG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnBhZ2luYXRpb24ge1xuXG4gICAgICAgIC5wYWdpbmF0aW9uX19pdGVtLS1uZXh0LFxuICAgICAgICAucGFnaW5hdGlvbl9faXRlbS0tcHJldmlvdXMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnBhZ2luYXRpb25fX2l0ZW0tLWN1cnJlbnQge1xuICAgICAgICBsaW5lLWhlaWdodDogJHBhZ2luYXRpb24taXRlbS1oZWlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwYWdpbmF0aW9uLWN1cnJlbnQtaXRlbS1iYWNrZ3JvdW5kO1xuICAgICAgICBib3JkZXItY29sb3I6ICRwYWdpbmF0aW9uLWN1cnJlbnQtaXRlbS1ib3JkZXItY29sb3I7XG4gICAgICAgIGNvbG9yOiAkcGFnaW5hdGlvbi1jdXJyZW50LWl0ZW0tY29sb3I7XG4gICAgICAgIHBhZGRpbmc6IDAgJHBhZ2luYXRpb24taXRlbS1zaWRlLXBhZGRpbmc7XG5cbiAgICAgICAgQGlmICRwYWdpbmF0aW9uLWl0ZW0tc3BhY2luZyA+IDAgYW5kICRwYWdpbmF0aW9uLWl0ZW0tYm9yZGVyLXJhZGl1cyA+IDAge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogJHBhZ2luYXRpb24taXRlbS1ib3JkZXItcmFkaXVzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmICRwYWdpbmF0aW9uLWl0ZW0tc3BhY2luZyA9PSAwIHtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHBhZ2luYXRpb24tY3VycmVudC1pdGVtLWJhY2tncm91bmQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRwYWdpbmF0aW9uLWN1cnJlbnQtaXRlbS1ib3JkZXItY29sb3I7XG4gICAgICAgICAgICBjb2xvcjogJHBhZ2luYXRpb24tY3VycmVudC1pdGVtLWNvbG9yO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJHBhZ2luYXRpb24taXMtbG9hZGVkOiB0cnVlO1xuXG4gICAgQGlmICRwYWdpbmF0aW9uLWluY2x1ZGUtbWVkaWFxdWVyaWVzID09IHRydWUge1xuICAgICAgICBAbWVkaWEgI3skcGFnaW5hdGlvbi1mdWxsLWJyZWFrcG9pbnR9IHtcbiAgICAgICAgICAgIC5wYWdpbmF0aW9uIC5wYWdpbmF0aW9uX19pdGVtIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59IiwiQGltcG9ydCBcIm5hdlwiO1xuXG4kbmF2LS1ob3Jpem9udGFsLWlzLWxvYWRlZDogZmFsc2UgIWRlZmF1bHQ7XG5cbkBpZiAkbmF2LS1ob3Jpem9udGFsLWlzLWxvYWRlZCA9PSBmYWxzZSB7XG4gICAgJW5hdi0taG9yaXpvbnRhbCB7XG4gICAgICAgIEBleHRlbmQgJW5hdjtcblxuICAgICAgICA+IGxpIHtcblxuICAgICAgICAgICAgJixcbiAgICAgICAgICAgID4gYSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm5hdi0taG9yaXpvbnRhbCB7XG4gICAgICAgIEBleHRlbmQgJW5hdi0taG9yaXpvbnRhbDtcbiAgICB9XG5cbiAgICAkbmF2LS1ob3Jpem9udGFsLWlzLWxvYWRlZDogdHJ1ZTtcbn0iLCIkbmF2LWlzLWxvYWRlZDogZmFsc2UgIWRlZmF1bHQ7XG5cbkBpZiAkbmF2LWlzLWxvYWRlZCA9PSBmYWxzZSB7XG4gICAgJW5hdiB7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgICAkbmF2LWlzLWxvYWRlZDogdHJ1ZTtcbn0iLCIvKipcbiAqIEljb01vb24gZ2VuZXJhdGVkIGljb25zXG4gKiBTZWUgdGhlIHRoZW1lIGFzc2V0cy9mb250cyBmb2xkZXIgZm9yIGZvbnQgZmlsZXNcbiAqIGFuZCBqc29uIGZpbGUgdG8gdXNlIG9uIGljb21vb24gdG8gZGV2ZWxvcCB0aGlzXG4gKiBmb250IGZ1cnRoZXJcbiAqXG4gKiBUaGlzIGljb24gZm9udCBpcyBsYXJnZWx5IGJhc2VkIG9uIGEgY3VzdG9tIHNlbGVjdGlvblxuICogb2YgaWNvbnMgZnJvbSB0aGUgTWF0ZXJpYWwgRGVzaWduIGljb24gcGFjay5cbiAqL1xuXG5AaW1wb3J0ICdpY29uLXZhcnMnO1xuXG4kaWNvbW9vbi1mb250LXBhdGg6IFwiL2Fzc2V0czIvZm9udHMvcGlvbmVlclwiICFkZWZhdWx0O1xuXG5AbWl4aW4gaWNvbigkaWNvbjogZmFsc2UpIHtcblx0LyogdXNlICFpbXBvcnRhbnQgdG8gcHJldmVudCBpc3N1ZXMgd2l0aCBicm93c2VyIGV4dGVuc2lvbnMgdGhhdCBjaGFuZ2UgZm9udHMgKi9cbiAgICBmb250LWZhbWlseTogJ3Bpb25lZXInICFpbXBvcnRhbnQ7XG4gICAgc3BlYWs6IG5vbmU7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAvKiBCZXR0ZXIgRm9udCBSZW5kZXJpbmcgPT09PT09PT09PT0gKi9cbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuXG5cdEBpZiAkaWNvbiB7XG5cdFx0Y29udGVudDogXCIjeyRpY29ufVwiO1xuXHR9XG59XG5cbkBmb250LWZhY2Uge1xuXHRmb250LWZhbWlseTogJ3Bpb25lZXInO1xuICAgIHNyYzp1cmwoJyN7JGljb21vb24tZm9udC1wYXRofS9waW9uZWVyLmVvdD90bDJjZjcnKTtcbiAgICBzcmM6dXJsKCcjeyRpY29tb29uLWZvbnQtcGF0aH0vcGlvbmVlci5lb3Q/dGwyY2Y3I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuICAgICAgICB1cmwoJyN7JGljb21vb24tZm9udC1wYXRofS9waW9uZWVyLnR0Zj90bDJjZjcnKSBmb3JtYXQoJ3RydWV0eXBlJyksXG4gICAgICAgIHVybCgnI3skaWNvbW9vbi1mb250LXBhdGh9L3Bpb25lZXIud29mZj90bDJjZjcnKSBmb3JtYXQoJ3dvZmYnKSxcbiAgICAgICAgdXJsKCcjeyRpY29tb29uLWZvbnQtcGF0aH0vcGlvbmVlci5zdmc/dGwyY2Y3I3Bpb25lZXInKSBmb3JtYXQoJ3N2ZycpO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG5bY2xhc3NePVwiaWNvbi1cIl0sXG5bY2xhc3MqPVwiIGljb24tXCJdIHtcblx0QGluY2x1ZGUgaWNvbigpO1xufVxuXG4uaWNvbi1tZWRpdW06YmVmb3JlIHtcblx0Zm9udC1zaXplOiAxLjI1ZW07XG5cdHZlcnRpY2FsLWFsaWduOiAtNy41JTtcbn1cblxuLmljb24tbGFyZ2U6YmVmb3JlIHtcblx0Zm9udC1zaXplOiAxLjVlbTtcblx0dmVydGljYWwtYWxpZ246IC0xNSU7XG59XG5cbi5pY29uLXhsYXJnZTpiZWZvcmUge1xuXHRmb250LXNpemU6IDJlbTtcblx0dmVydGljYWwtYWxpZ246IC0xNSU7XG59XG5cbi5pY29uLWxvY2FsLXNoaXBwaW5nIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci1sb2NhbC1zaGlwcGluZztcbiAgICB9XG59XG4uaWNvbi1zdG9ja2V4Y2hhbmdlIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci1zdG9ja2V4Y2hhbmdlO1xuICAgIH1cbn1cbi5pY29uLWNyZWRpdC1jYXJkIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci1jcmVkaXQtY2FyZDtcbiAgICB9XG59XG4uaWNvbi1wbGFjZSB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkaWNvbi12YXItcGxhY2U7XG4gICAgfVxufVxuLmljb24td2FsbGV0LWdpZnRjYXJkIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci13YWxsZXQtZ2lmdGNhcmQ7XG4gICAgfVxufVxuLmljb24tZmxpZ2h0IHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci1mbGlnaHQ7XG4gICAgfVxufVxuLmljb24tYWRkLXNob3BwaW5nLWNhcnQge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLWFkZC1zaG9wcGluZy1jYXJ0O1xuICAgIH1cbn1cbi5pY29uLWRlbGV0ZSB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkaWNvbi12YXItZGVsZXRlO1xuICAgIH1cbn1cbi5pY29uLWV4aXQtdG8tYXBwIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci1leGl0LXRvLWFwcDtcbiAgICB9XG59XG4uaWNvbi1mYXZvcml0ZSB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkaWNvbi12YXItZmF2b3JpdGU7XG4gICAgfVxufVxuLmljb24taG9tZSB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkaWNvbi12YXItaG9tZTtcbiAgICB9XG59XG4uaWNvbi1pbmZvIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci1pbmZvO1xuICAgIH1cbn1cbi5pY29uLWxhbmd1YWdlIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci1sYW5ndWFnZTtcbiAgICB9XG59XG4uaWNvbi1wcmludCB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkaWNvbi12YXItcHJpbnQ7XG4gICAgfVxufVxuLmljb24tc2VhcmNoIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci1zZWFyY2g7XG4gICAgfVxufVxuLmljb24tc2hvcHBpbmctY2FydCB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkaWNvbi12YXItc2hvcHBpbmctY2FydDtcbiAgICB9XG59XG4uaWNvbi1lcnJvciB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkaWNvbi12YXItZXJyb3I7XG4gICAgfVxufVxuLmljb24td2FybmluZyB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkaWNvbi12YXItd2FybmluZztcbiAgICB9XG59XG4uaWNvbi1jYWxsIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci1jYWxsO1xuICAgIH1cbn1cbi5pY29uLXZwbi1rZXkge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLXZwbi1rZXk7XG4gICAgfVxufVxuLmljb24tYWRkIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci1hZGQ7XG4gICAgfVxufVxuLmljb24tbWFpbCB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkaWNvbi12YXItbWFpbDtcbiAgICB9XG59XG4uaWNvbi1hdHRhY2gtbW9uZXkge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLWF0dGFjaC1tb25leTtcbiAgICB9XG59XG4uaWNvbi1rZXlib2FyZC1hcnJvdy1kb3duIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci1rZXlib2FyZC1hcnJvdy1kb3duO1xuICAgIH1cbn1cbi5pY29uLWJyaWdodG5lc3MtMSB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkaWNvbi12YXItYnJpZ2h0bmVzcy0xO1xuICAgIH1cbn1cbi5pY29uLWNoZWNrIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci1jaGVjaztcbiAgICB9XG59XG4uaWNvbi1jaGV2cm9uLWxlZnQge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLWNoZXZyb24tbGVmdDtcbiAgICB9XG59XG4uaWNvbi1jaGV2cm9uLXJpZ2h0IHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci1jaGV2cm9uLXJpZ2h0O1xuICAgIH1cbn1cbi5pY29uLWNsb3NlIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci1jbG9zZTtcbiAgICB9XG59XG4uaWNvbi1tZW51IHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci1tZW51O1xuICAgIH1cbn1cbi5pY29uLXJlZnJlc2gge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLXJlZnJlc2g7XG4gICAgfVxufVxuLmljb24tcGVyc29uIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci1wZXJzb247XG4gICAgfVxufVxuLmljb24tc3RhciB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkaWNvbi12YXItc3RhcjtcbiAgICB9XG59XG4uaWNvbi1zdGFyLWhhbGYge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLXN0YXItaGFsZjtcbiAgICB9XG59XG4uaWNvbi1zdGFyLW91dGxpbmUge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLXN0YXItb3V0bGluZTtcbiAgICB9XG59XG4uaWNvbi1nb29nbGVwbHVzIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci1nb29nbGVwbHVzO1xuICAgIH1cbn1cbi5pY29uLWZhY2Vib29rIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci1mYWNlYm9vaztcbiAgICB9XG59XG4uaWNvbi1lbGxvIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci1lbGxvO1xuICAgIH1cbn1cbi5pY29uLWluc3RhZ3JhbSB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkaWNvbi12YXItaW5zdGFncmFtO1xuICAgIH1cbn1cbi5pY29uLXR3aXR0ZXIge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLXR3aXR0ZXI7XG4gICAgfVxufVxuLmljb24teW91dHViZSB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkaWNvbi12YXIteW91dHViZTtcbiAgICB9XG59XG4uaWNvbi12aW1lbyB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkaWNvbi12YXItdmltZW87XG4gICAgfVxufVxuLmljb24tZmxpY2tyIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci1mbGlja3I7XG4gICAgfVxufVxuLmljb24tYmxvZ2dlciB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkaWNvbi12YXItYmxvZ2dlcjtcbiAgICB9XG59XG4uaWNvbi1saW5rZWRpbiB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkaWNvbi12YXItbGlua2VkaW47XG4gICAgfVxufVxuLmljb24tcGludGVyZXN0IHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci1waW50ZXJlc3Q7XG4gICAgfVxufVxuIiwiJGljb24tdmFyLWxvY2FsLXNoaXBwaW5nOiBcIlxcZTYyM1wiO1xuJGljb24tdmFyLXN0b2NrZXhjaGFuZ2U6IFwiXFxlNjIwXCI7XG4kaWNvbi12YXItY3JlZGl0LWNhcmQ6IFwiXFxlNjIyXCI7XG4kaWNvbi12YXItcGxhY2U6IFwiXFxlNjIxXCI7XG4kaWNvbi12YXItd2FsbGV0LWdpZnRjYXJkOiBcIlxcZTYxZVwiO1xuJGljb24tdmFyLWZsaWdodDogXCJcXGU2MWZcIjtcbiRpY29uLXZhci1hZGQtc2hvcHBpbmctY2FydDogXCJcXGU2MDBcIjtcbiRpY29uLXZhci1kZWxldGU6IFwiXFxlNjAxXCI7XG4kaWNvbi12YXItZXhpdC10by1hcHA6IFwiXFxlNjAyXCI7XG4kaWNvbi12YXItZmF2b3JpdGU6IFwiXFxlNjAzXCI7XG4kaWNvbi12YXItaG9tZTogXCJcXGU2MWNcIjtcbiRpY29uLXZhci1pbmZvOiBcIlxcZTYxOFwiO1xuJGljb24tdmFyLWxhbmd1YWdlOiBcIlxcZTYwNFwiO1xuJGljb24tdmFyLXByaW50OiBcIlxcZTYwNVwiO1xuJGljb24tdmFyLXNlYXJjaDogXCJcXGU2MDZcIjtcbiRpY29uLXZhci1zaG9wcGluZy1jYXJ0OiBcIlxcZTYwN1wiO1xuJGljb24tdmFyLWVycm9yOiBcIlxcZTYxOVwiO1xuJGljb24tdmFyLXdhcm5pbmc6IFwiXFxlNjFhXCI7XG4kaWNvbi12YXItY2FsbDogXCJcXGU2MDhcIjtcbiRpY29uLXZhci12cG4ta2V5OiBcIlxcZTYwOVwiO1xuJGljb24tdmFyLWFkZDogXCJcXGU2MGFcIjtcbiRpY29uLXZhci1tYWlsOiBcIlxcZTYwYlwiO1xuJGljb24tdmFyLWF0dGFjaC1tb25leTogXCJcXGU2MGNcIjtcbiRpY29uLXZhci1rZXlib2FyZC1hcnJvdy1kb3duOiBcIlxcZTYwZFwiO1xuJGljb24tdmFyLWJyaWdodG5lc3MtMTogXCJcXGU2MGVcIjtcbiRpY29uLXZhci1jaGVjazogXCJcXGU2MWJcIjtcbiRpY29uLXZhci1jaGV2cm9uLWxlZnQ6IFwiXFxlNjBmXCI7XG4kaWNvbi12YXItY2hldnJvbi1yaWdodDogXCJcXGU2MTBcIjtcbiRpY29uLXZhci1jbG9zZTogXCJcXGU2MTFcIjtcbiRpY29uLXZhci1tZW51OiBcIlxcZTYxMlwiO1xuJGljb24tdmFyLXJlZnJlc2g6IFwiXFxlNjE3XCI7XG4kaWNvbi12YXItcGVyc29uOiBcIlxcZTYxM1wiO1xuJGljb24tdmFyLXN0YXI6IFwiXFxlNjE0XCI7XG4kaWNvbi12YXItc3Rhci1oYWxmOiBcIlxcZTYxNVwiO1xuJGljb24tdmFyLXN0YXItb3V0bGluZTogXCJcXGU2MTZcIjtcbiRpY29uLXZhci1nb29nbGVwbHVzOiBcIlxcZWE4OFwiO1xuJGljb24tdmFyLWZhY2Vib29rOiBcIlxcZWE4Y1wiO1xuJGljb24tdmFyLWVsbG86IFwiXFxlYThmXCI7XG4kaWNvbi12YXItaW5zdGFncmFtOiBcIlxcZWE5MFwiO1xuJGljb24tdmFyLXR3aXR0ZXI6IFwiXFxlYTkxXCI7XG4kaWNvbi12YXIteW91dHViZTogXCJcXGVhOTlcIjtcbiRpY29uLXZhci12aW1lbzogXCJcXGVhOWNcIjtcbiRpY29uLXZhci1mbGlja3I6IFwiXFxlYWExXCI7XG4kaWNvbi12YXItYmxvZ2dlcjogXCJcXGVhYjlcIjtcbiRpY29uLXZhci1saW5rZWRpbjogXCJcXGVhYzlcIjtcbiRpY29uLXZhci1waW50ZXJlc3Q6IFwiXFxlYWQwXCI7IiwiLm1haW4tY29udGVudCB7XG5cdGEge1xuXHRcdHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuXHR9XG5cblx0LnByb2R1Y3RsaXN0X19wcm9kdWN0IGEsXG5cdC5wcm9kdWN0X19icmVhZGNydW1icyBhLFxuXHQuY2F0ZWdvcnlsaXN0X19jYXRlZ29yeSBhLFxuXHQuY2hlY2tvdXQgYSxcblx0YS5idXR0b24sXG5cdC5zb2NpYWwtYnV0dG9ucy1saXN0IGEge1xuXHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0fVxufSIsIiRzbWFsbC1wbHVzLXJhbmdlOiAoMjdlbSwgdXBwZXItYm91bmQoJHNtYWxsLXJhbmdlKSkgIWRlZmF1bHQ7XG4kbWVkaXVtLWRvd246ICAgICAgXCIjeyRzY3JlZW59IGFuZCAobWF4LXdpZHRoOiAje3VwcGVyLWJvdW5kKCRtZWRpdW0tcmFuZ2UpfSlcIjtcbiRzbWFsbC1kb3duOiAgICAgICBcIiN7JHNjcmVlbn0gYW5kIChtYXgtd2lkdGg6ICN7dXBwZXItYm91bmQoJHNtYWxsLXJhbmdlKX0pXCI7XG4kc21hbGwtcGx1czogICAgICAgXCIjeyRzY3JlZW59IGFuZCAobWluLXdpZHRoOiAje2xvd2VyLWJvdW5kKCRzbWFsbC1wbHVzLXJhbmdlKX0pXCI7XG4kc21hbGwtcGx1cy11cDogICAgJHNtYWxsLXBsdXM7XG4kc21hbGwtcGx1cy1kb3duOiAgXCIjeyRzY3JlZW59IGFuZCAobWF4LXdpZHRoOiN7dXBwZXItYm91bmQoJHNtYWxsLXBsdXMtcmFuZ2UpfSlcIjtcbiRzbWFsbC1wbHVzLW9ubHk6ICBcIiN7JHNjcmVlbn0gYW5kIChtaW4td2lkdGg6ICN7bG93ZXItYm91bmQoJHNtYWxsLXBsdXMtcmFuZ2UpfSkgYW5kIChtYXgtd2lkdGg6I3t1cHBlci1ib3VuZCgkc21hbGwtcGx1cy1yYW5nZSl9KVwiOyIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcbiAgICBodG1sIHtcbiAgICAgICAgZm9udC1zaXplOiA4Ny41JTtcbiAgICB9XG59XG5cbi52ZXJ0aWNhbC1wb3MtaGVscGVyIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5pcy1oaWRkZW4ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbkBtZWRpYSAjeyRtZWRpdW0tZG93bn0ge1xuICAgIC5oaWRlX29uX21vYmlsZSB7XG4gICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59IiwiLy8gRG9uJ3Qgb3V0bGluZSBtYWluIGNvbnRlbnQgd2hlbiBza2lwcGluZyBuYXZpZ2F0aW9uXG4jbWFpbi1jb250ZW50OmZvY3VzIHtcblx0b3V0bGluZTogbm9uZTtcbn1cblxuLy8gU2NyZWVuIHJlYWRlciBvbmx5XG4uc3Itb25seSB7XG4gICAgQGluY2x1ZGUgYWNjZXNzaWJsZS1oaWRlKCk7XG59IiwiJGxvZ28taGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgcmVtLWNhbGMoNjApICFkZWZhdWx0O1xuJGxvZ28tbGFyZ2UtaGVpZ2h0OiAgICAgICAgICAgICAgcmVtLWNhbGMoODApICFkZWZhdWx0O1xuJGxvZ28tcm93LXNwYWNpbmc6ICAgICAgICAgICAgICAgMS41cmVtICFkZWZhdWx0O1xuJGxvZ28tbGFyZ2Utcm93LXNwYWNpbmc6ICAgICAgICAgMi41cmVtICFkZWZhdWx0O1xuJG1lbnUtaXRlbXMtc3BhY2luZzogICAgICAgICAgICAgMXJlbSAhZGVmYXVsdDtcbiR1dGlscy1uYXYtYmFyLWhlaWdodDogICAgICAgICAgIDNyZW0gIWRlZmF1bHQ7XG4kdXRpbHMtbmF2LWZvbnQtY29sb3I6ICAgICAgICAgICAkYm9keS1mb250LWNvbG9yICFkZWZhdWx0O1xuJHV0aWxzLW5hdi1mb250LXNpemU6ICAgICAgICAgICAgcmVtLWNhbGMoMTQpICFkZWZhdWx0O1xuJHV0aWxzLW5hdi1zZXBhcmF0b3ItY29sb3I6ICAgICAgbGlnaHRlbigkdXRpbHMtbmF2LWZvbnQtY29sb3IsIDUwJSkgIWRlZmF1bHQ7XG4kdXRpbHMtbmF2LWl0ZW0tc3BhY2luZzogICAgICAgICAuNXJlbSAhZGVmYXVsdDtcbiR1dGlscy1uYXYtbGluZS1oZWlnaHQ6ICAgICAgICAgIDEuMnJlbSAhZGVmYXVsdDtcbiRvZmYtY2FudmFzLWJhY2tncm91bmQ6ICAgICAgICAgICMzMzMgIWRlZmF1bHQ7XG4kb2ZmLWNhbnZhcy1saW5rLWNvbG9yOiAgICAgICAgICAjZmZmICFkZWZhdWx0O1xuJG9mZi1jYW52YXMtaXRlbS1wYWRkaW5nOiAgICAgICAgMnJlbSAhZGVmYXVsdDtcbiRvZmYtY2FudmFzLWl0ZW0taGVpZ2h0OiAgICAgICAgIHJlbS1jYWxjKDQ0KSAhZGVmYXVsdDtcbiRvZmYtY2FudmFzLWl0ZW0tbGluZS1jb2xvcjogICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKSAhZGVmYXVsdDtcbiRvZmYtY2FudmFzLWl0ZW0tbGluZS1oZWlnaHQ6ICAgIDEuMiAhZGVmYXVsdDtcbiRvZmYtY2FudmFzLW9uLW1lZGl1bTogICAgICAgICAgIHRydWUgIWRlZmF1bHQ7XG4kb2ZmLWNhbnZhcy10b3AtcGFkZGluZzogICAgICAgICAkdXRpbHMtbmF2LWJhci1oZWlnaHQgIWRlZmF1bHQ7XG4kb2ZmLWNhbnZhcy10b3AtcG9zaXRpb246ICAgICAgICAkbG9nby1oZWlnaHQgKyAkb2ZmLWNhbnZhcy10b3AtcGFkZGluZyArICRsb2dvLXJvdy1zcGFjaW5nICogMiAhZGVmYXVsdDtcbiRvZmYtY2FudmFzLW5hdi1zbWFsbC1zaXplOiAgICAgIDcwJSAhZGVmYXVsdDtcbiRvZmYtY2FudmFzLW5hdi1tZWRpdW0tc2l6ZTogICAgIDUwJSAhZGVmYXVsdDtcbiRvZmYtY2FudmFzLWNsb3NlLWJ0bi1oZWlnaHQ6ICAgICR1dGlscy1uYXYtYmFyLWhlaWdodCAhZGVmYXVsdDtcbiRuYXYtbGluZS1oZWlnaHQ6ICAgICAgICAgICAgICAgIDMuNXJlbSAhZGVmYXVsdDtcbiRuYXYtYnRuLWhlaWdodDogICAgICAgICAgICAgICAgIDNyZW0gIWRlZmF1bHQ7XG4kbmF2LWljb24tc3BhY2luZzogICAgICAgICAgICAgICAuNHJlbSAhZGVmYXVsdDtcbiRuYXYtc3VibWVudS1ib3JkZXItY29sb3I6ICAgICAgICRib3JkZXItY29sb3IgIWRlZmF1bHQ7XG4kbmF2LWZpcnN0LWxldmVsLWZvbnQtd2VpZ2h0OiAgICBib2xkICFkZWZhdWx0O1xuJG5hdi1maXJzdC1sZXZlbC10ZXh0LXRyYW5zZm9ybTogbm9uZSAhZGVmYXVsdDtcbiRuYXYtZmlyc3QtbGV2ZWwtZm9udC1zaXplOiAgICAgIDFyZW0gIWRlZmF1bHQ7XG4kbmF2LWhvcml6b250YWwtc2lkZS1wYWRkaW5nOiAgICAxcmVtICFkZWZhdWx0O1xuJG5hdi1maXJzdC1sZXZlbC1zcGFjaW5nOiAgICAgICAgMCAhZGVmYXVsdDtcbiRuYXYtZmlyc3QtbGV2ZWwtc2lkZS1wYWRkaW5nOiAgIDFyZW0gIWRlZmF1bHQ7IiwiLyoqXG4gKiBXZSdyZSB1c2luZyB0d28gbWVudSBjb25jZXB0cyBoZXJlXG4gKiBPZmYgY2FudmFzIG5hdmlnYXRpb24sIGFzIHNlZW4gb24gaHR0cDovL3d3dy5zbWFzaGluZ21hZ2F6aW5lLmNvbS8yMDEzLzAxLzE1L29mZi1jYW52YXMtbmF2aWdhdGlvbi1mb3ItcmVzcG9uc2l2ZS13ZWJzaXRlL1xuICogU21hcnQgbWVudXMsIGFzIHNlZW4gb24gaHR0cDovL3d3dy5zbWFydG1lbnVzLm9yZy9cbiAqL1xuJG1lbnUtZm9udC1mYW1pbHkgICAgICAgICAgOiAkYm9keS1mb250LWZhbWlseSAhZGVmYXVsdDtcbiRtZW51LWZvbnQtY29sb3IgICAgICAgICAgIDogaWYobHVtYSgkbmF2aWdhdGlvbi1iZykgPCA1MCwgJGFsdGVybmF0aXZlLWZvbnQtY29sb3IsICRib2R5LWZvbnQtY29sb3IpICFkZWZhdWx0O1xuJG1lbnUtZHJvcGRvd24tYmcgICAgICAgICAgOiByZ2JhKCNmZmYsIC45NykgIWRlZmF1bHQ7XG4kbWVudS1kcm9wZG93bi1saW5rLWNvbG9yICA6IGlmKGx1bWEoJG1lbnUtZHJvcGRvd24tYmcpIDwgNTAsIGFjY2Vzc2libGUtbHVtaW5hbmNlKCRsaWdodC1ib2R5LXRleHQsICRtZW51LWRyb3Bkb3duLWJnKSwgYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGRhcmstYm9keS10ZXh0LCAkbWVudS1kcm9wZG93bi1iZykpICFkZWZhdWx0O1xuJG1lbnUtbmF2aWdhdGlvbi1saW5rLWNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkbWVudS1mb250LWNvbG9yLCAkbmF2aWdhdGlvbi1iZykgIWRlZmF1bHQ7XG4vLyRtZW51LWl0ZW0tY29sb3IgICAgICAgICAgIDpcbi8vJG1lbnUtaXRlbS1iZyAgICAgICAgICAgICAgOlxuJG1lbnUtaXRlbS1jb250cmFzdC1jb2xvciAgOiAkbmF2aWdhdGlvbi1iZyAhZGVmYXVsdDtcbiRtZW51LWl0ZW0taG92ZXItY29sb3IgICAgIDogJGhvdmVyLWJnLXRleHQtY29sb3IgIWRlZmF1bHQ7XG4kbWVudS1pdGVtLWhvdmVyLWJnICAgICAgICA6ICRob3Zlci1jb2xvciAhZGVmYXVsdDtcbiRtZW51LWl0ZW0tYWN0aXZlLWNvbG9yICAgIDogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG4kbWVudS1pdGVtLWFjdGl2ZS1iZyAgICAgICA6ICRuYXZpZ2F0aW9uLWJnICFkZWZhdWx0O1xuJG1lbnUtaXRlbS1hY3RpdmUtaG92ZXItY29sb3I6ICRuYXZpZ2F0aW9uLWJnICFkZWZhdWx0O1xuJG1lbnUtaXRlbS1hY3RpdmUtaG92ZXItYmcgOiBpZihsdW1hKCRwcmltYXJ5LWNvbG9yKSA8IDUwLCBsaWdodGVuKCRwcmltYXJ5LWNvbG9yLCAxMCUpLCBkYXJrZW4oJHByaW1hcnktY29sb3IsIDEwJSkpICFkZWZhdWx0O1xuXG4kbmF2LXRvZ2dsZXItc2l6ZTogKCRsaXN0LWxpbmUtaGVpZ2h0ICogJGxpc3QtZm9udC1zaXplKSAhZGVmYXVsdDtcbiRuYXYtdG9nZ2xlci1iYWNrZHJvcDogJGNvbnRlbnQtYmcgIWRlZmF1bHQ7XG4kbmF2LXRvZ2dsZXItY3VycmVudC1iYWNrZHJvcDogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG4kbmF2LXRvZ2dsZXItaG92ZXItYmc6ICRib3JkZXItY29sb3IgIWRlZmF1bHQ7XG5cbiRtZW51LWhvcml6b250YWwtYnJlYWtwb2ludDogaWYoJG9mZi1jYW52YXMtb24tbWVkaXVtID09IHRydWUsICRsYXJnZS11cCwgJG1lZGl1bS11cCk7XG4kb3ZlcnJpZGUtaW5saW5lLXBvcy1hdDogaWYoJG9mZi1jYW52YXMtb24tbWVkaXVtID09IHRydWUsICRtZWRpdW0tZG93biwgJHNtYWxsLWRvd24pO1xuXG4vLyBOYXZpZ2F0aW9uIGNvbnRhaW5lclxuLm1haW4tbmF2IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB6LWluZGV4OiAyMDA7XG4gICAgZm9udC1mYW1pbHk6ICRtZW51LWZvbnQtZmFtaWx5O1xuXG4gICAgdWwge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICAgICAgZGlyZWN0aW9uOiBsdHI7XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICAgIGNvbG9yOiAkbWVudS1uYXZpZ2F0aW9uLWxpbmstY29sb3I7XG4gICAgICAgIEBpbmNsdWRlIHNpbmdsZS10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICB9XG5cbiAgICAuaWNvbi1tZW51OmJlZm9yZSB7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiAtMTIlO1xuICAgIH1cbn1cblxuLy8ganMga2VlcEluVmlld3BvcnQgYnVnZml4XG4uc20ge1xuICAgIC5zY3JvbGwtdXAsIC5zY3JvbGwtZG93biB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmUhaW1wb3J0YW50O1xuICAgIH1cbn1cblxuLy8gT2ZmIGNhbnZhcyBtZW51IGl0ZW1zXG4ubWFpbi1uYXZfX2l0ZW0gYSwgYS5tYWluLW5hdl9fY2xvc2UtYnRuIHtcbiAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJG9mZi1jYW52YXMtbGluay1jb2xvciwgJG9mZi1jYW52YXMtYmFja2dyb3VuZCk7XG59XG5cbi8vIE9mZi1jYW52YXMgbmF2aWdhdGlvbiBjbG9zZSBidXR0b25cbi5tYWluLW5hdl9fY2xvc2UtYnRuIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgcGFkZGluZzogMCAxcmVtO1xuICAgIGJvcmRlcjogMDtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG9wYWNpdHk6IDAuNztcbiAgICB0ZXh0LWFsaWduOiBpZigkb2ZmLWNhbnZhcy1wb3NpdGlvbiA9PSBsZWZ0LCByaWdodCwgbGVmdCk7XG4gICAgbGluZS1oZWlnaHQ6ICRvZmYtY2FudmFzLWNsb3NlLWJ0bi1oZWlnaHQ7XG4gICAgaGVpZ2h0OiAkb2ZmLWNhbnZhcy1jbG9zZS1idG4taGVpZ2h0O1xuICAgIEBpbmNsdWRlIHByZWZpeGVyKHRhcC1oaWdobGlnaHQtY29sb3IsIHJnYmEoMCwgMCwgMCwgMCksIHdlYmtpdCk7XG5cbiAgICAmOmZvY3VzLFxuICAgICY6aG92ZXIsXG4gICAgJi5oaWdobGlnaHRlZCB7XG4gICAgICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkb2ZmLWNhbnZhcy1saW5rLWNvbG9yLCAkaG92ZXItY29sb3IpICFpbXBvcnRhbnQ7XG4gICAgICAgIGJhY2tncm91bmQ6ICRob3Zlci1jb2xvcjtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICBpIHtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxMik7XG4gICAgICAgIHBhZGRpbmctI3skb2ZmLWNhbnZhcy1wb3NpdGlvbn06IC40cmVtO1xuICAgIH1cbn1cblxuLy8gVGhlIG1lbnUvc2VhcmNoIGJ1dHRvbnMgaW4gdGhlIGNvbXBhY3QgbWVudVxuLm5hdi1jb21wYWN0IHtcbiAgICBsaSB7XG4gICAgICAgIGhlaWdodDogJG5hdi1saW5lLWhlaWdodDtcbiAgICB9XG5cbiAgICBhIHtcbiAgICAgICAgY29sb3I6ICRtZW51LW5hdmlnYXRpb24tbGluay1jb2xvcjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkbmF2LWxpbmUtaGVpZ2h0O1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB9XG59XG5cbiNuYXYtb3Blbi1idG4ge1xuICAgIHBhZGRpbmc6IDA7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIH1cbn1cblxuLm5hdi1vZmZjYW52YXMge1xuICAgIGxpIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkb2ZmLWNhbnZhcy1pdGVtLWxpbmUtY29sb3I7XG5cbiAgICAgICAgbGkge1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1zdHlsZTogZG90dGVkO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyBOYXYgaXRlbXMgc3R5bGluZ1xuLm1haW4tbmF2X19pdGVtIHtcbiAgICBkaXJlY3Rpb246IGx0cjtcblxuICAgIGEge1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICBwYWRkaW5nOiAwICRuYXYtaG9yaXpvbnRhbC1zaWRlLXBhZGRpbmc7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzLFxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmLmhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRtZW51LWl0ZW0taG92ZXItYmc7XG4gICAgICAgICAgICBjb2xvcjogJG1lbnUtaXRlbS1ob3Zlci1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5kaXNhYmxlZCB7XG4gICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLmN1cnJlbnQsXG4gICAgJi5zZWxlY3RlZCB7XG4gICAgICAgICYgPiBhIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbG9yZWQtYmctZWxlbWVudCgkbWVudS1pdGVtLWFjdGl2ZS1iZywgJG1lbnUtaXRlbS1hY3RpdmUtY29sb3IsICRtZW51LWl0ZW0tY29udHJhc3QtY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgJGFjdGl2ZS1ob3Zlci1iZzogaWYobHVtYSgkbWVudS1pdGVtLWFjdGl2ZS1ob3Zlci1iZykgPCA1MCwgbGlnaHRlbigkbWVudS1pdGVtLWFjdGl2ZS1ob3Zlci1iZywgMTAlKSwgZGFya2VuKCRtZW51LWl0ZW0tYWN0aXZlLWhvdmVyLWJnLCAxMCUpKSAhZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb2xvcmVkLWJnLWVsZW1lbnQoJGFjdGl2ZS1ob3Zlci1iZywgI2ZmZiwgJG1lbnUtaXRlbS1jb250cmFzdC1jb2xvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvL1RoaXMgc3R5bGluZyBvbmx5IGFwcGxpZXMgaWYgLnNtIGlzIGFkZGVkIHRvIHRoZSB0b3AgPHVsPiBlbGVtZW50LCBhcyBhcnJvd3MgZG9uJ3Qgd29yayBpZiBzbWFydG1lbnUgaXNuJ3QgbG9hZGVkIGFueXdheVxuICAgICYucGFyZW50ID4gYSB7XG4gICAgICAgIC8vIFNob3cgYXJyb3cgZm9yIHBhcmVudCBpdGVtc1xuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGljb24oJGljb24tdmFyLWtleWJvYXJkLWFycm93LWRvd24pO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkbmF2LWljb24tc3BhY2luZztcbiAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24odHJhbnNmb3JtLCA0MDBtcyBlYXNlKTtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICYuaGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgJiB+IHVsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBhY2Nlc3NpYmxlLXNob3coJHBvc2l0aW9uOiByZWxhdGl2ZSk7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIFJvdGF0ZSBhcnJvdyBvbiBob3ZlclxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHJvdGF0ZXgoMTgwZGVnKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLnBhcmVudC5sZXZlbC0xID4gYTphZnRlciB7XG4gICAgICAgIEBleHRlbmQgLmljb24ta2V5Ym9hcmQtYXJyb3ctZG93bjpiZWZvcmU7XG4gICAgfVxufVxuXG4vKipcbiAqIE5hdiBpdGVtcyBzaG91bGQgaGF2ZSBwYWRkaW5nIGFuZCBhIGxvdyBsaW5lIGhlaWdodFxuICogSWYgbm90LCBtdWx0aS1saW5lIGl0ZW1zIHdpbGwgYmUgaHVnZVxuICovXG4ubWFpbi1uYXZfX2xpc3Qge1xuICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgwLDAsMCwwKTtcblxuICAgIGEge1xuICAgICAgICBsaW5lLWhlaWdodDogJG9mZi1jYW52YXMtaXRlbS1saW5lLWhlaWdodCAqIDFyZW07XG4gICAgICAgIHBhZGRpbmc6ICN7KCRvZmYtY2FudmFzLWl0ZW0taGVpZ2h0IC0gJG9mZi1jYW52YXMtaXRlbS1saW5lLWhlaWdodCAqIDFyZW0pLzJ9IDFyZW07XG4gICAgfVxuXG4gICAgLy8gRXh0cmEgYm90dG9tIGJvcmRlciBmb3IgdGhlIGxhc3Qgb2YgdGhlIGZpcnN0IGxldmVsIGVsZW1lbnRzXG4gICAgJi5sZXZlbC0wID4gbGk6bGFzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkb2ZmLWNhbnZhcy1pdGVtLWxpbmUtY29sb3I7XG4gICAgfVxufVxuXG4vLyBTdWJtZW51XG4ubWFpbi1uYXZfX3N1Ym1lbnUge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHotaW5kZXg6IDIwMTtcbiAgICBAaW5jbHVkZSBhY2Nlc3NpYmxlLWhpZGUoKTtcblxuICAgIGEge1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAycmVtO1xuICAgIH1cblxuICAgIGh0bWwubm8tanMgJi5hY3RpdmUge1xuICAgICAgICBAaW5jbHVkZSBhY2Nlc3NpYmxlLXNob3coKTtcbiAgICB9XG5cbn1cblxuLy9TdWJzdWJtZW51XG4ubWFpbi1uYXZfX3N1Ym1lbnUubGV2ZWwtMiB7XG4gICAgYSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMy41cmVtO1xuXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGljb24oJGljb24tdmFyLWNoZXZyb24tcmlnaHQpO1xuICAgICAgICAgICAgb3BhY2l0eTogLjU7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDEyKTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkb2ZmLWNhbnZhcy1pdGVtLWxpbmUtaGVpZ2h0ICogMXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRuYXYtaWNvbi1zcGFjaW5nO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uanMtbmF2IHtcbiAgICAjb3V0ZXItd3JhcCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDA7XG4gICAgfVxuXG4gICAgLmNvbnRlbnQtd3JhcHBlciA+ICo6bm90KCNuYXYpIHtcbiAgICAgICAgb3BhY2l0eTogLjQ7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24ob3BhY2l0eSwgNTAwbXMpO1xuICAgIH1cbn1cblxuLyogRml4IHdlaXJkIGJ1ZyBpbiBDaHJvbWUgd2hlcmUgbWVudSBkaXNhcHBlYXJzIG9uIGhvdmVyICovXG4ubWFpbi1uYXZfX2l0ZW0sXG4ubWFpbi1uYXZfX3N1Ym1lbnUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwcHgsIDBweCwgMHB4KTtcbn1cblxuLmJsb2NrLW5hdl9faXRlbS5wYXJlbnQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuQG1peGluIG1haW4tbmF2X190b2dnbGUtLWNvbG9ycygkY29sb3I6ICRwcmltYXJ5LWNvbG9yLCAkYmFja2Ryb3A6ICRuYXYtdG9nZ2xlci1iYWNrZHJvcCwgJGhvdmVyLWJnOiAkbmF2LXRvZ2dsZXItaG92ZXItYmcsICRob3Zlci1jb2xvcjogJHByaW1hcnktY29sb3Ipe1xuICAgICYsXG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb2xvcjogcmdiYShhY2Nlc3NpYmxlLWx1bWluYW5jZSgkY29sb3IsICRiYWNrZHJvcCksIDAuOSkgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAmLnRvZ2dsZWQ6YmVmb3JlIHtcbiAgICAgICAgY29sb3I6IHJnYmEoYWNjZXNzaWJsZS1sdW1pbmFuY2UoaWYobHVtYSgkYmFja2Ryb3ApIDwgNTAsICMwMDAsICNmZmYpLCAkYmFja2Ryb3ApLCAuNykgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgIGJhY2tncm91bmQ6ICRob3Zlci1iZztcblxuICAgICAgICAmLCAmOmJlZm9yZSB7XG4gICAgICAgICAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UocmdiYShhY2Nlc3NpYmxlLWx1bWluYW5jZSgkaG92ZXItY29sb3IsICRiYWNrZHJvcCksIDAuOSksICRob3Zlci1iZykgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm1haW4tbmF2X190b2dnbGUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgaGVpZ2h0OiAkbmF2LXRvZ2dsZXItc2l6ZTtcbiAgICB3aWR0aDogJG5hdi10b2dnbGVyLXNpemU7XG4gICAgbGluZS1oZWlnaHQ6ICRuYXYtdG9nZ2xlci1zaXplO1xuXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIDMwMG1zIGVhc2UpO1xuXG4gICAgJjpiZWZvcmUge1xuICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgIGhlaWdodDogJG5hdi10b2dnbGVyLXNpemU7XG4gICAgICAgIHdpZHRoOiAkbmF2LXRvZ2dsZXItc2l6ZTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IGluaGVyaXQgIWltcG9ydGFudDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtYWluLW5hdl9fdG9nZ2xlLS1jb2xvcnMoKTtcblxuICAgIC5mb290ZXItYmcgJiB7XG4gICAgICAgIEBpbmNsdWRlIG1haW4tbmF2X190b2dnbGUtLWNvbG9ycygkY29sb3I6ICRwcmltYXJ5LWNvbG9yLCAkYmFja2Ryb3A6ICRmb290ZXItYmcsICRob3Zlci1iZzogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJG5hdi10b2dnbGVyLWhvdmVyLWJnLCAkZm9vdGVyLWJnLCAxLjEpKTtcbiAgICB9XG59XG4uY3VycmVudCB7XG4gICAgPiAubWFpbi1uYXZfX3RvZ2dsZSB7XG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbG9yOiByZ2JhKGFjY2Vzc2libGUtbHVtaW5hbmNlKCNmZmYsICRuYXYtdG9nZ2xlci1jdXJyZW50LWJhY2tkcm9wKSwgMC43NSkgIWltcG9ydGFudDtcblxuICAgICAgICAgICAgLmZvb3Rlci1iZyAmIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogcmdiYShhY2Nlc3NpYmxlLWx1bWluYW5jZSgjZmZmLCAkZm9vdGVyLWJnKSwgMC43NSkgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaWYobHVtYSgkbmF2LXRvZ2dsZXItY3VycmVudC1iYWNrZHJvcCkgPCA1MCwgbGlnaHRlbigkbmF2LXRvZ2dsZXItY3VycmVudC1iYWNrZHJvcCwgMTAlKSwgZGFya2VuKCRuYXYtdG9nZ2xlci1jdXJyZW50LWJhY2tkcm9wLCAxMCUpKTtcblxuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbG9yOiByZ2JhKGFjY2Vzc2libGUtbHVtaW5hbmNlKCNmZmYsICRuYXYtdG9nZ2xlci1jdXJyZW50LWJhY2tkcm9wKSwgMSkgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gU3R5bGluZyBmb3IgaW5pdGlhbGl6aW5nIHRoZSBtZW51IHdpdGggc3VibWVudXMgb3BlblxuLmJsb2NrLW5hdl9faXRlbSB7XG4gICAgJi5zZWxlY3RlZC5wYXJlbnQsXG4gICAgJi5jdXJyZW50LnBhcmVudCB7XG4gICAgICAgIC8vIFJvdGF0ZSB0aGUgY3Jvc3NcbiAgICAgICAgPiAubWFpbi1uYXZfX3RvZ2dsZTpiZWZvcmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHJvdGF0ZSgxMzVkZWcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgID4gLm1haW4tbmF2X190b2dnbGUudG9nZ2xlZDpiZWZvcmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHJvdGF0ZSgwZGVnKSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtZWRpYSAjeyRvdmVycmlkZS1pbmxpbmUtcG9zLWF0fSB7XG4gICAgLy8gT3ZlcnJpZGUgaW5saW5lIHBvc2l0aW9uaW5nIGRvbmUgYnkgSlNcbiAgICAubWFpbi1uYXZfX2l0ZW0ucGFyZW50ID4gYS5oaWdobGlnaHRlZCB+IHVsIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDtcbiAgICAgICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xuICAgIH1cbn1cblxuQGlmICRvZmYtY2FudmFzLW9uLW1lZGl1bSB7XG4gICAgLyogSW5jcmVhc2UgcGFkZGluZyBpbiBtZW51IGl0ZW1zIG9uIG1lZGl1bSBzY3JlZW5zICovXG4gICAgQG1lZGlhICN7JG1lZGl1bS1vbmx5fSB7XG4gICAgICAgIC5tYWluLW5hdl9fbGlzdCB7XG4gICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDEuNXJlbTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubWFpbi1uYXZfX3N1Ym1lbnUge1xuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAyLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubWFpbi1uYXZfX2Nsb3NlLWJ0biB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDEuNXJlbTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQG1lZGlhICN7JG1lbnUtaG9yaXpvbnRhbC1icmVha3BvaW50fSB7XG5cbiAgICAubWFpbi1uYXZfX2Zyb250cGFnZS1saW5rIC5pY29uLWhvbWUge1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDIwKTtcbiAgICB9XG5cbiAgICAubWFpbi1uYXZfX2l0ZW0ge1xuXG4gICAgICAgIGEge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRuYXYtaG9yaXpvbnRhbC1zaWRlLXBhZGRpbmc7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkbmF2LWhvcml6b250YWwtc2lkZS1wYWRkaW5nO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgICAgICAgICAgIGNvbG9yOiAkbWVudS1uYXZpZ2F0aW9uLWxpbmstY29sb3I7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBGaXJzdCBsZXZlbCBtZW51IGl0ZW1zXG4gICAgICAgICYubGV2ZWwtMCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgICAgICAgei1pbmRleDogMTAxO1xuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgei1pbmRleDogMTAyO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAkbmF2LWZpcnN0LWxldmVsLXNwYWNpbmc7XG5cbiAgICAgICAgICAgIEBpZiAkbmF2LWZpcnN0LWxldmVsLXNwYWNpbmcgPiAwIHtcbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmID4gYSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkbmF2LWZpcnN0LWxldmVsLXNpZGUtcGFkZGluZztcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkbmF2LWZpcnN0LWxldmVsLXNpZGUtcGFkZGluZztcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogJG5hdi1saW5lLWhlaWdodDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJG5hdi1maXJzdC1sZXZlbC1mb250LXdlaWdodDtcbiAgICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogJG5hdi1maXJzdC1sZXZlbC10ZXh0LXRyYW5zZm9ybTtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICRuYXYtZmlyc3QtbGV2ZWwtZm9udC1zaXplO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLnBhcmVudCA+IGE6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkbmF2LWxpbmUtaGVpZ2h0O1xuICAgICAgICAgICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gU2hvdyBzdWJtZW51IG9uIGhpZ2hsaWdodGluZ1xuICAgICAgICAmLnBhcmVudCA+IGEuaGlnaGxpZ2h0ZWQgfiB1bCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDE1ZW07XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwZW07XG4gICAgICAgICAgICBib3gtc2hhZG93OiAxcHggMCAwICRuYXYtc3VibWVudS1ib3JkZXItY29sb3IsIDAgMXB4IDAgJG5hdi1zdWJtZW51LWJvcmRlci1jb2xvciwgLTFweCAwIDAgJG5hdi1zdWJtZW51LWJvcmRlci1jb2xvciwgMCAtMXB4IDAgJG5hdi1zdWJtZW51LWJvcmRlci1jb2xvcjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkbmF2LXN1Ym1lbnUtYm9yZGVyLWNvbG9yOyAvLyBOb3QgYWxsIGJyb3dzZXJzIHN1cHBvcnQgdGhpc1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gT3ZlcnJpZGUgc21hbGwgc2NyZWVuIHNldHRpbmdzXG4gICAgLm5hdi1vZmZjYW52YXMge1xuICAgICAgICBsaSB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IG5vbmU7XG5cbiAgICAgICAgICAgIGxpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAqLFxuICAgICAgICAgICAgKjpiZWZvcmUsXG4gICAgICAgICAgICAqOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBib3gtc2l6aW5nKGNvbnRlbnQtYm94KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5tYWluLW5hdl9fY2xvc2UtYnRuIHtcbiAgICAgICAgQGluY2x1ZGUgYWNjZXNzaWJsZS1oaWRlKCk7XG4gICAgfVxuXG4gICAgLy8gSGlkZSBzdWJtZW51cyBieSBkZWZhdWx0XG4gICAgLm1haW4tbmF2X19zdWJtZW51IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IC05OTk5OTlweDtcbiAgICAgICAgbGVmdDogLTgwMHB4OyAvLyBAVE9ETyBJbnZlc3RpZ2F0ZSBpZiB0aGlzIGlzIHRoZSBjdWxwcml0IGJlaGluZCBhIGZsYXNoIGJ1ZyBvbiBDaHJvbWUgd2hlcmUgdGhlIHN1Ym1lbnUganVzdCBkaXNzYXBwZWFycyByYW5kb21seVxuICAgICAgICBiYWNrZ3JvdW5kOiAkbWVudS1kcm9wZG93bi1iZztcblxuICAgICAgICBhIHtcbiAgICAgICAgICAgIGNvbG9yOiAkbWVudS1kcm9wZG93bi1saW5rLWNvbG9yO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm1haW4tbmF2X19pdGVtIHtcbiAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkbmF2LXN1Ym1lbnUtYm9yZGVyLWNvbG9yO1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogT24gbWVudSBsZXZlbCAxIHdlIHVzZSBwbHVzIHNpZ24gYXMgcGFyZW50IGluZGljYXRvciwgc2luY2UgbGV2ZWwgMlxuICAgICAqIHN1Ym1lbnVzIG1heSBwb3AgdXAgYm90aCB0byB0aGUgbGVmdCBhbmQgdG8gdGhlIHJpZ2h0XG4gICAgICovXG4gICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggNSB7XG4gICAgICAgICAubWFpbi1uYXZfX2l0ZW0ubGV2ZWwtI3skaX0ucGFyZW50IHtcbiAgICAgICAgICAgICAmID4gYSB7XG4gICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICAgY29udGVudDogJGljb24tdmFyLWFkZDtcbiAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpO1xuICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDMwMG1zIGVhc2UpO1xuICAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogLjY7XG4gICAgICAgICAgICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICYuaGlnaGxpZ2h0ZWQ6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHJvdGF0ZSgxMzVkZWcpKTtcbiAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICB9XG4gICAgICAgICB9XG4gXHR9XG5cblxuICAgIC5tYWluLW5hdl9fc3VibWVudS5sZXZlbC0yIGEge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDFyZW07XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbn0iLCJAaWYgKCRvZmYtY2FudmFzLXBvc2l0aW9uICE9IGxlZnQgYW5kICRvZmYtY2FudmFzLXBvc2l0aW9uICE9IHJpZ2h0KSB7XG4gICAgQHdhcm4gXCIkb2ZmLWNhbnZhcy1wb3NpdGlvbiBtdXN0IGJlIGxlZnQgb3IgcmlnaHQsIHdhcyAjeyRvZmYtY2FudmFzLXBvc2l0aW9ufS5cIjtcbn1cblxuJG9mZi1jYW52YXMtb24tbGFyZ2U6IGZhbHNlICFkZWZhdWx0O1xuXG4vLyBPZmYgY2FudmFzIG1lZGlhIHF1ZXJ5IGlzIG5vdCBtb2JpbGUgZmlyc3QuIFRoZSBzaGFtZSFcbiRvZmYtY2FudmFzLWF0OiBpZigkb2ZmLWNhbnZhcy1vbi1tZWRpdW0gPT0gdHJ1ZSwgJG1lZGl1bS1kb3duLCAkc21hbGwtZG93bik7XG5cbmJvZHkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtaW4td2lkdGg6IDIwZW07XG59XG5cbiNvdXRlci13cmFwIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuI2lubmVyLXdyYXAge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuLmJsb2NrIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5ibG9jay10aXRsZSB7XG4gICAgQGluY2x1ZGUgYWNjZXNzaWJsZS1oaWRlKCk7XG59XG5cbkBtZWRpYSAjeyRvZmYtY2FudmFzLWF0fSB7XG4gICAgI25hdiB7XG4gICAgICAgIHotaW5kZXg6IDIwMDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBwYWRkaW5nLXRvcDogJG9mZi1jYW52YXMtdG9wLXBhZGRpbmc7XG4gICAgICAgIHRvcDogJG9mZi1jYW52YXMtdG9wLXBvc2l0aW9uO1xuXG4gICAgICAgICY6bm90KDp0YXJnZXQpIHtcbiAgICAgICAgICAgIHotaW5kZXg6IC0xO1xuICAgICAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmOnRhcmdldCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkb2ZmLWNhbnZhcy1iYWNrZ3JvdW5kO1xuICAgICAgICAgICAgLm1haW4tbmF2X19jbG9zZS1idG4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmJsb2NrIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNvbHVtbnMge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIHVsIHtcbiAgICAgICAgICAgICY6YmVmb3JlLFxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuanMtcmVhZHl7XG4gICAgICAgICNuYXYge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6ICRvZmYtY2FudmFzLW5hdi1zbWFsbC1zaXplO1xuICAgICAgICAgICAgI3skb2ZmLWNhbnZhcy1wb3NpdGlvbn06IC0jeyRvZmYtY2FudmFzLW5hdi1zbWFsbC1zaXplfTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRvZmYtY2FudmFzLWJhY2tncm91bmQ7XG4gICAgICAgICAgICBAaW5jbHVkZSBwcmVmaXhlcihib3gtc2hhZG93LCBpbnNldCBpZigkb2ZmLWNhbnZhcy1wb3NpdGlvbiA9PSBsZWZ0LCAtMS41ZW0sIDEuNWVtKSAwIDEuNWVtIC0wLjc1ZW0gcmdiYSgwLCAwLCAwLCAwLjI1KSwgbW96IHNwZWMpO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcGFkZGluZy10b3A6ICRvZmYtY2FudmFzLXRvcC1wYWRkaW5nO1xuXG4gICAgICAgICAgICAuYmxvY2sge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgI2lubmVyLXdyYXAge1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5qcy1uYXYgI2lubmVyLXdyYXAge1xuICAgICAgICAjeyRvZmYtY2FudmFzLXBvc2l0aW9ufTogJG9mZi1jYW52YXMtbmF2LXNtYWxsLXNpemU7XG4gICAgfVxuXG4gICAgLmNzc3RyYW5zZm9ybXMzZC5jc3N0cmFuc2l0aW9ucy5qcy1yZWFkeSB7XG4gICAgICAgICNuYXYge1xuICAgICAgICAgICAgI3skb2ZmLWNhbnZhcy1wb3NpdGlvbn06IDA7XG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2xhdGUzZChpZigkb2ZmLWNhbnZhcy1wb3NpdGlvbiA9PSBsZWZ0LCAtMTAwJSwgMTAwJSksIDAsIDApO1xuICAgICAgICAgICAgQGluY2x1ZGUgYmFja2ZhY2UtdmlzaWJpbGl0eShoaWRkZW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgI2lubmVyLXdyYXAge1xuICAgICAgICAgICAgI3skb2ZmLWNhbnZhcy1wb3NpdGlvbn06IDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgIC8vIEBpbmNsdWRlIHRyYW5zbGF0ZTNkKDAsMCwwKTsgLy8gRGlzYWJsZWQhIENhdXNlZCBhbGwga2luZHMgb2Ygd2VpcmQgYmx1cnJpbmcgaW4gQW5kcm9pZCBGaXJlZm94XG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCA1MDBtcyBlYXNlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jc3N0cmFuc2Zvcm1zM2QuY3NzdHJhbnNpdGlvbnMuanMtbmF2ICNpbm5lci13cmFwIHtcbiAgICAgICAgQGluY2x1ZGUgYmFja2ZhY2UtdmlzaWJpbGl0eShoaWRkZW4pO1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2xhdGUzZChpZigkb2ZmLWNhbnZhcy1wb3NpdGlvbiA9PSBsZWZ0LCAkb2ZmLWNhbnZhcy1uYXYtc21hbGwtc2l6ZSwgLSRvZmYtY2FudmFzLW5hdi1zbWFsbC1zaXplKSwgMCwgMCwgc2NhbGUzZCgxLCAxLCAxKSk7XG4gICAgfVxuXG4gICAgLmNzc3RyYW5zZm9ybXMzZC5jc3N0cmFuc2l0aW9ucy5qcy1yZWFkeSAjbmF2IC5ibG9jayB7XG4gICAgICAgIG9wYWNpdHk6IDAuNztcbiAgICAgICAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDMwMG1zIDEwMG1zIGVhc2UsIC13ZWJraXQtdHJhbnNmb3JtIDUwMG1zIGVhc2UsIHZpc2liaWxpdHkgNTAwbXMgZWFzZTtcbiAgICAgICAgLW1vei10cmFuc2l0aW9uOiBvcGFjaXR5IDMwMG1zIDEwMG1zIGVhc2UsIC1tb3otdHJhbnNmb3JtIDUwMG1zIGVhc2UsIHZpc2liaWxpdHkgNTAwbXMgZWFzZTtcbiAgICAgICAgLW8tdHJhbnNpdGlvbjogb3BhY2l0eSAzMDBtcyAxMDBtcyBlYXNlLCAtby10cmFuc2Zvcm0gNTAwbXMgZWFzZSwgdmlzaWJpbGl0eSA1MDBtcyBlYXNlO1xuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDMwMG1zIDEwMG1zIGVhc2UsIHRyYW5zZm9ybSA1MDBtcyBlYXNlLCB2aXNpYmlsaXR5IDUwMG1zIGVhc2U7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zbGF0ZTNkKGlmKCRvZmYtY2FudmFzLXBvc2l0aW9uID09IGxlZnQsICRvZmYtY2FudmFzLW5hdi1zbWFsbC1zaXplLCAtJG9mZi1jYW52YXMtbmF2LXNtYWxsLXNpemUpLCAwLCAwLCBzY2FsZTNkKDAuOSwgMC45LCAwLjkpKTtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtLW9yaWdpbig1MCUgMCUpO1xuICAgICAgICAvL3Zpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB9XG5cbiAgICAuY3NzdHJhbnNmb3JtczNkLmNzc3RyYW5zaXRpb25zLmpzLW5hdiAjbmF2IC5ibG9jayB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIC8vdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNsYXRlM2QoMCwwLDApO1xuICAgIH1cblxuICAgIC8vIFRvIGF2b2lkIG1lbW9yeSBsZWFrcyBvbiBtb2JpbGUgZGV2aWNlc1xuICAgIC5jc3N0cmFuc2Zvcm1zM2QuY3NzdHJhbnNpdGlvbnMgI25hdiB7XG4gICAgICAgIC8vIGFzIHRlbXB0aW5nIGFzIGl0IGlzIHRvIHVzZSBkaXNwbGF5OiBub25lLCB2aXNpYmlsaXR5OiBoaWRkZW4gaXMgYW5pbWF0YWJsZVxuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24odmlzaWJpbGl0eSA1MDBtcyBlYXNlKTtcbiAgICB9XG4gICAgLmNzc3RyYW5zZm9ybXMzZC5jc3N0cmFuc2l0aW9ucy5qcy1uYXYgI25hdiB7XG4gICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgfVxufVxuXG5AaWYgJG9mZi1jYW52YXMtb24tbWVkaXVtIHtcbiAgICAvLyBEaWZmZXJlbnQgbmF2IHNpemUgb24gbWVkaXVtXG4gICAgQG1lZGlhICN7JG1lZGl1bS1vbmx5fSB7XG4gICAgICAgIC5qcy1yZWFkeSB7XG4gICAgICAgICAgICAjbmF2IHtcbiAgICAgICAgICAgICAgICB3aWR0aDogJG9mZi1jYW52YXMtbmF2LW1lZGl1bS1zaXplO1xuICAgICAgICAgICAgICAgICN7JG9mZi1jYW52YXMtcG9zaXRpb259OiAtI3skb2ZmLWNhbnZhcy1uYXYtbWVkaXVtLXNpemV9O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmpzLW5hdiAjaW5uZXItd3JhcCB7XG4gICAgICAgICAgICAjeyRvZmYtY2FudmFzLXBvc2l0aW9ufTogJG9mZi1jYW52YXMtbmF2LW1lZGl1bS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNzc3RyYW5zZm9ybXMzZC5jc3N0cmFuc2l0aW9ucy5qcy1uYXYgI2lubmVyLXdyYXAge1xuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNsYXRlM2QoaWYoJG9mZi1jYW52YXMtcG9zaXRpb24gPT0gbGVmdCwgJG9mZi1jYW52YXMtbmF2LW1lZGl1bS1zaXplLCAtJG9mZi1jYW52YXMtbmF2LW1lZGl1bS1zaXplKSwgMCwgMCwgc2NhbGUzZCgxLCAxLCAxKSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBpZiAkb2ZmLWNhbnZhcy1vbi1sYXJnZSB7XG4gICAgLy8gRGlmZmVyZW50IG5hdiBzaXplIG9uIG1lZGl1bVxuICAgIEBtZWRpYSAjeyRsYXJnZS11cH0ge1xuICAgICAgICAuanMtbmF2IHtcbiAgICAgICAgICAgICNuYXYge1xuICAgICAgICAgICAgICAgIHotaW5kZXg6IDIwMDtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogJG9mZi1jYW52YXMtdG9wLXBhZGRpbmc7XG4gICAgICAgICAgICAgICAgdG9wOiAkb2ZmLWNhbnZhcy10b3AtcG9zaXRpb247XG5cbiAgICAgICAgICAgICAgICAmOm5vdCg6dGFyZ2V0KSB7XG4gICAgICAgICAgICAgICAgICAgIHotaW5kZXg6IC0xO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6dGFyZ2V0IHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJG9mZi1jYW52YXMtYmFja2dyb3VuZDtcbiAgICAgICAgICAgICAgICAgICAgLm1haW4tbmF2X19jbG9zZS1idG4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAuYmxvY2sge1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLmNvbHVtbnMge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHVsIHtcbiAgICAgICAgICAgICAgICAgICAgJjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5qcy1uYXYgI2lubmVyLXdyYXAge1xuICAgICAgICAgICAgI3skb2ZmLWNhbnZhcy1wb3NpdGlvbn06ICRvZmYtY2FudmFzLW5hdi1tZWRpdW0tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jc3N0cmFuc2Zvcm1zM2QuY3NzdHJhbnNpdGlvbnMuanMtbmF2ICNpbm5lci13cmFwIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zbGF0ZTNkKGlmKCRvZmYtY2FudmFzLXBvc2l0aW9uID09IGxlZnQsICRvZmYtY2FudmFzLW5hdi1tZWRpdW0tc2l6ZSwgLSRvZmYtY2FudmFzLW5hdi1tZWRpdW0tc2l6ZSksIDAsIDAsIHNjYWxlM2QoMSwgMSwgMSkpO1xuICAgICAgICB9XG4gICAgfVxufSIsIiN0b3BiYW5uZXJzIHtcbiAgICBwYWRkaW5nOiAycmVtIDA7XG59IiwiLy8gSWYgc2VjdGlvbiBjb2xvcnMgZG8gbm90IGRpZmZlciBlbm91Z2ggaW4gYmFja2dyb3VuZCBjb2xvciwgd2Ugc2V0IHVwIGEgYm9yZGVyXG4vLyBUaGUgYm9yZGVyIHNob3VsZCBiZSBsaWdodGVyIHRoYW4gdGhlIGxpZ2h0ZXN0IHNlY3Rpb24gaWYgdGhlIHNlY3Rpb25zIGFyZSBkYXJrLFxuLy8gYW5kIGRhcmtlciB0aGFuIHRoZSBkYXJrZXJzdCBzZWN0aW9uIGlmIHNlY3Rpb25zIGFyZSBsaWdodFxuQG1peGluIHNlY3Rpb24tYm9yZGVyLWNvbG9yKCRzZWN0aW9uLWJnLWNvbG9yLCAkcHJldmlvdXMtc2VjdGlvbi1jb2xvciwgJGNvbnRyYXN0LXJhdGlvLXRocmVzaG9sZDogMiwgJHJldGluYTogZmFsc2UpIHtcbiAgICBAaWYgY29udHJhc3QtcmF0aW8oJHNlY3Rpb24tYmctY29sb3IsICRwcmV2aW91cy1zZWN0aW9uLWNvbG9yKSA8PSAkY29udHJhc3QtcmF0aW8tdGhyZXNob2xkIHtcbiAgICAgICAgQGlmIGx1bWEoJHNlY3Rpb24tYmctY29sb3IpIDwgbHVtYSgkcHJldmlvdXMtc2VjdGlvbi1jb2xvcikge1xuICAgICAgICAgICAgJGRhcmtlc3Qtc2VjdGlvbi1jb2xvcjogJHNlY3Rpb24tYmctY29sb3I7XG4gICAgICAgICAgICAkbGlnaHRlc3Qtc2VjdGlvbi1jb2xvcjogJHByZXZpb3VzLXNlY3Rpb24tY29sb3I7XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgJGxpZ2h0ZXN0LXNlY3Rpb24tY29sb3I6ICRzZWN0aW9uLWJnLWNvbG9yO1xuICAgICAgICAgICAgJGRhcmtlc3Qtc2VjdGlvbi1jb2xvcjogJHByZXZpb3VzLXNlY3Rpb24tY29sb3I7XG4gICAgICAgIH1cblxuICAgICAgICAkc2VjdGlvbi1ib3JkZXItY29sb3I6IGlmKGx1bWEoJHNlY3Rpb24tYmctY29sb3IpIDwgNSwgbGlnaHRlbigkbGlnaHRlc3Qtc2VjdGlvbi1jb2xvciwgMTAlKSwgZGFya2VuKCRkYXJrZXN0LXNlY3Rpb24tY29sb3IsIDEwJSkpO1xuXG4gICAgICAgIEBpZiAkcmV0aW5hIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhhaXJsaW5lLWJvcmRlcigkc2VjdGlvbi1ib3JkZXItY29sb3IpO1xuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2VjdGlvbi1ib3JkZXItY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbiNsb2dvLXJvdyB7XG4gICAgQGluY2x1ZGUgc2VjdGlvbi1ib3JkZXItY29sb3IoJGhlYWRlci1iZywgJG5hdmlnYXRpb24tYmcsIDEpO1xufVxuXG4udXNlci1uYXYge1xuICAgIGZsb2F0OiByaWdodDtcbn1cblxuI25hdiB7XG4gICAgQGluY2x1ZGUgc2VjdGlvbi1ib3JkZXItY29sb3IoJG5hdmlnYXRpb24tYmcsICRoZWFkZXItYmcsIDEpO1xufVxuXG4jbWFpbiB7XG4gICAgQGluY2x1ZGUgc2VjdGlvbi1ib3JkZXItY29sb3IoJGNvbnRlbnQtYmcsICRuYXZpZ2F0aW9uLWJnLCAxKTtcbn1cblxuI21haW4tY29udGVudCxcbiNtYWluLWNvbnRlbnQtb25lcGFnZSB7XG4gICAgcGFkZGluZy10b3A6ICRjb2x1bW4tZ3V0dGVyO1xuICAgIHBhZGRpbmctYm90dG9tOiAkY29sdW1uLWd1dHRlcjtcblxuICAgICYgPiAuYnJlYWRjcnVtYnNfX3dyYXBwZXI6Zmlyc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tdG9wOiAtJGNvbHVtbi1ndXR0ZXI7XG4gICAgICAgIHBhZGRpbmc6ICRwYWdlLXRpdGxlLXBhZGRpbmcgMDtcbiAgICB9XG59XG5cbiNmb290ZXIge1xuICAgIHBhZGRpbmctdG9wOiAkY29sdW1uLWd1dHRlcjtcbiAgICBAaW5jbHVkZSBzZWN0aW9uLWJvcmRlci1jb2xvcigkZm9vdGVyLWJnLCAkY29udGVudC1iZyk7XG59XG5cbiNlbmQge1xuICAgIEBpbmNsdWRlIHNlY3Rpb24tYm9yZGVyLWNvbG9yKCRlbmQtYmcsICRmb290ZXItYmcpO1xuICAgIHBhZGRpbmc6ICRjb2x1bW4tZ3V0dGVyIDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ucGFnZV9fdGl0bGUge1xuICAgIG1hcmdpbi10b3A6IC0kY29sdW1uLWd1dHRlcjtcbiAgICBwYWRkaW5nOiAkcGFnZS10aXRsZS1wYWRkaW5nIDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbSAqICRwYXJhZ3JhcGgtbGluZS1oZWlnaHQ7XG5cbiAgICBAZXh0ZW5kIC5ib3JkZXJlZC0tYm90dG9tO1xuICAgIEBleHRlbmQgJWNvbnRlbnRfX2JvcmRlcmVkLS1oYXJkO1xuXG4gICAgaDEge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxufSIsIi5mb290ZXJfX2xpbmtzIHtcbiAgICBsaSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICBhIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMCAuNXJlbTtcblxuICAgICAgICAgICAgaHRtbC50b3VjaCAmIHtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogJHRvdWNoLWZyaWVuZGx5LXNpemU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5mb290ZXJfX2NvbXBhbnktaW5mbyxcbi5mb290ZXJfX21hZGUtYnkge1xuICAgIGxpbmUtaGVpZ2h0OiAkcGFyYWdyYXBoLWxpbmUtaGVpZ2h0O1xufVxuXG4uZm9vdGVyX19tYWRlLWJ5IHtcbiAgICBwYWRkaW5nLXRvcDogMXJlbTtcbiAgICBmb250LXNpemU6IDEzcHg7XG59XG5cbi5mb290ZXJfX2Nvb2tpZV9ub3RpY2Uge1xuICAgIG1hcmdpbi10b3A6IDEuMjVyZW07XG4gICAgcGFkZGluZy1sZWZ0OjI1JTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyNSU7XG4gICAgZm9udC1zaXplOiAxM3B4O1xufVxuXG5AbWVkaWEgI3skbWVkaXVtLXVwfSB7XG4gICAgLmZvb3Rlcl9fbGlua3Mge1xuICAgICAgICBtYXJnaW4tdG9wOiAuNXJlbTtcbiAgICB9XG59IiwiJGFsZXJ0LWJveC1mb290ZXItc2l6ZTogJHRvdWNoLWZyaWVuZGx5LXNpemUgIWRlZmF1bHQ7XG5cbkBtaXhpbiBhbGVydC1zdHlsZSgkY29sb3IpIHtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYm9yZGVyLWxlZnQ6ICRhbGVydC1zaWRlLWJvcmRlci1zaXplIHNvbGlkICRjb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIGNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xufVxuXG4vLyBVc2luZyBmb3VuZGF0aW9uJ3MgYWxlcnQgYm94ZXMgc3R5bGluZ1xuLmFsZXJ0LWJveCB7XG4gICAgQGluY2x1ZGUgYWxlcnQ7XG4gICAgbGluZS1oZWlnaHQ6ICRhbGVydC1saW5lLWhlaWdodDtcbiAgICBib3gtc2hhZG93OiAycHggMnB4IDRweCByZ2JhKDAsMCwwLC40KTtcbiAgICBcbiAgICAmLmFsZXJ0LWJveC0td2l0aGNsb3NlIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogI3skYWxlcnQtcGFkZGluZy1vcHBvc2l0ZS1kaXJlY3Rpb24gKiAxLjV9O1xuICAgIH1cbiAgXG4gICAgPiBwOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cblxuICAgIC5jbG9zZSAgICAgIHsgQGluY2x1ZGUgYWxlcnQtY2xvc2U7IH1cbiAgICAmLnJhZGl1cyAgICB7IEBpbmNsdWRlIHJhZGl1cygkYWxlcnQtcmFkaXVzKTsgfVxuICAgICYucm91bmQgICAgIHsgQGluY2x1ZGUgcmFkaXVzKCRnbG9iYWwtcm91bmRlZCk7IH1cblxuICAgICYuc3VjY2VzcyxcbiAgICAmLmFsZXJ0LXN1Y2Nlc3MgICB7IEBpbmNsdWRlIGFsZXJ0LXN0eWxlKCRzdWNjZXNzLWNvbG9yKTsgfVxuICAgICYuYWxlcnQsXG4gICAgJi5hbGVydC1hbGVydCAgICAgeyBAaW5jbHVkZSBhbGVydC1zdHlsZSgkYWxlcnQtY29sb3IpOyB9XG4gICAgJi5zZWNvbmRhcnksXG4gICAgJi5hbGVydC1zZWNvbmRhcnkgeyBAaW5jbHVkZSBhbGVydC1zdHlsZSgkc2Vjb25kYXJ5LWNvbG9yKTsgfVxuICAgICYud2FybmluZyxcbiAgICAmLmFsZXJ0LXdhcm5pbmcgICB7IEBpbmNsdWRlIGFsZXJ0LXN0eWxlKCR3YXJuaW5nLWNvbG9yKTsgfVxuICAgICYuaW5mbyxcbiAgICAmLmFsZXJ0LWluZm8gICAgICB7IEBpbmNsdWRlIGFsZXJ0LXN0eWxlKCRpbmZvLWNvbG9yKTsgfVxuICAgICYuYWxlcnQtY2xvc2UgICAgIHsgb3BhY2l0eTogMH1cblxuICAgICY6Zm9jdXMge1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgIH1cbn1cblxuLmFsZXJ0LWJveF9faWNvbiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTYpO1xuICAgIHRvcDogJGFsZXJ0LXBhZGRpbmctdG9wO1xuICAgIGxlZnQ6IC0oJGFsZXJ0LXNpZGUtYm9yZGVyLXNpemUvMiArIC41cmVtKTtcbiAgICBsaW5lLWhlaWdodDogJGFsZXJ0LWxpbmUtaGVpZ2h0O1xuICAgIGhlaWdodDogJGFsZXJ0LWxpbmUtaGVpZ2h0ICogMXJlbTtcbiAgICBjb2xvcjogI2ZmZjtcbn1cblxuLmFsZXJ0LWJveF9fbWVzc2FnZSxcbi5hbGVydC1ib3hfX21lc3NhZ2UgPiAqIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6ICRhbGVydC1mb250LXNpemU7XG59XG4uYWxlcnQtYm94X19tZXNzYWdlIHN0cm9uZyB7XG4gICAgZGlzcGxheTogaW5saW5lO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5hbGVydC1ib3hfX21lc3NhZ2UgOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5hbGVydC1ib3gtLXdpdGhmb290ZXIge1xuICAgIC5hbGVydC1ib3hfX21lc3NhZ2Uge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkYWxlcnQtYm94LWZvb3Rlci1zaXplO1xuICAgIH1cbn1cblxuI2NhcnQtbm90aWZ5IHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4uYWxlcnQtYm94X19wcm9ncmVzc2JhciB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLmFsZXJ0LWJveF9fZm9vdGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHJpZ2h0OiAwO1xuICAgIGhlaWdodDogJGFsZXJ0LWJveC1mb290ZXItc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogJGFsZXJ0LWJveC1mb290ZXItc2l6ZTtcblxuICAgIGEge1xuICAgICAgICBwYWRkaW5nOiAwICRhbGVydC1wYWRkaW5nLWRlZmF1bHQtZmxvYXQgMCAkYWxlcnQtcGFkZGluZy1kZWZhdWx0LWZsb2F0O1xuICAgICAgICBjb2xvcjogJGJvZHktZm9udC1jb2xvcjtcblxuICAgICAgICAmLmxlZnQgLmZhIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IC4zcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5yaWdodCAuZmEge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAuM3JlbTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgIC5hbGVydC1ib3gge1xuICAgICAgICBtYXgtd2lkdGg6IDYwJTtcbiAgICB9XG59XG5cbkBtZWRpYSAjeyRsYXJnZS11cH0ge1xuICAgIC5hbGVydC1ib3gge1xuICAgICAgICBtYXgtd2lkdGg6IDQwJTtcbiAgICB9XG59XG5cbkBtZWRpYSAjeyR4bGFyZ2UtdXB9IHtcbiAgICAuYWxlcnQtYm94IHtcbiAgICAgICAgbWF4LXdpZHRoOiAzMCU7XG4gICAgfVxufVxuIiwiLyoqXG4gKiBCb3Jyb3dlZCBwYXJ0cyBvZiBodHRwczovL2dpdGh1Yi5jb20vZGFuZWRlbi9hbmltYXRlLmNzc1xuICovXG5cbi5hbmltYXRlZCB7XG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWR1cmF0aW9uLCAxcywgd2Via2l0IHNwZWMpO1xuICAgIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1maWxsLW1vZGUsIGJvdGgsIHdlYmtpdCBzcGVjKTtcbn1cblxuLmFuaW1hdGUsXG4uZ3Jvd2wtYW5pbWF0ZWQge1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIC40cyBlYXNlLWluLW91dCk7XG59XG5cbkBpbmNsdWRlIGtleWZyYW1lcyhmYWRlSW5Eb3duKSB7XG4gICAgMCUge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2xhdGUzZCgwLCAtMTAwJSwgMCk7XG4gICAgfVxuXG4gICAgMTAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zZm9ybSwgbm9uZSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xuICAgIH1cbn1cblxuLmZhZGVJbkRvd24ge1xuICAgIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1uYW1lLCBmYWRlSW5Eb3duLCB3ZWJraXQgc3BlYyk7XG59XG5cbkBpbmNsdWRlIGtleWZyYW1lcyhmYWRlT3V0VXApIHtcbiAgICAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgMTAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zbGF0ZTNkKDAsIC0xMDAlLCAwKTtcbiAgICB9XG59XG5cbi5mYWRlT3V0VXAge1xuICAgIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1uYW1lLCBmYWRlT3V0VXAsIHdlYmtpdCBzcGVjKTtcbn0iLCIkYmVzdHNlbGxlci1pbWFnZS1zaXplOiAkdG91Y2gtZnJpZW5kbHktc2l6ZSAhZGVmYXVsdDtcblxuLmJlc3RzZWxsZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IC4yNXJlbSAwO1xuXG4gICAgLnJvdyB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB9XG59XG5cbi5iZXN0c2VsbGVyX190aXRsZSB7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4gICAgcGFkZGluZzogKCgkdG91Y2gtZnJpZW5kbHktc2l6ZSAtICgxcmVtICogJHBhcmFncmFwaC1saW5lLWhlaWdodCkpLzIpIDA7XG59XG5cbi5iZXN0c2VsbGVyX19pbWFnZSB7XG4gICAgd2lkdGg6ICRiZXN0c2VsbGVyLWltYWdlLXNpemU7XG4gICAgaGVpZ2h0OiAkYmVzdHNlbGxlci1pbWFnZS1zaXplO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogNTAlO1xuICAgIG1hcmdpbi10b3A6IC0jeyRiZXN0c2VsbGVyLWltYWdlLXNpemUgLyAyfTtcbiAgICBsaW5lLWhlaWdodDogJGJlc3RzZWxsZXItaW1hZ2Utc2l6ZTtcbn1cblxuLmJlc3RzZWxsZXJfX2ltYWdlIGltZyB7XG4gICAgZGlzcGxheTogaW5saW5lO1xuICAgIG1heC13aWR0aDogJGJlc3RzZWxsZXItaW1hZ2Utc2l6ZTtcbiAgICBtYXgtaGVpZ2h0OiAkYmVzdHNlbGxlci1pbWFnZS1zaXplO1xufSIsIi5ibG9jay1pbWFnZS1ncmlkIHtcbiAgICBAaW5jbHVkZSBibG9jay1ncmlkKDMpO1xufSIsIi5ibG9ja19fYm94X19oZWFkbGluZSB7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDIwKTtcbiAgICBwYWRkaW5nOiAuNXJlbSAkY29sdW1uLWd1dHRlci8yIC41cmVtICRjb2x1bW4tZ3V0dGVyLzI7XG4gICAgbWFyZ2luOiAwO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgICAgQGluY2x1ZGUgaWNvbigkaWNvbi12YXIta2V5Ym9hcmQtYXJyb3ctZG93bik7XG4gICAgICAgIEBleHRlbmQgLmljb24tbGFyZ2U7XG4gICAgICAgIHBhZGRpbmctbGVmdDogLjVyZW07XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbih0cmFuc2Zvcm0gNDAwbXMgZWFzZSk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgfVxuXG4gICAgJi50b2dnbGVkIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnktY29sb3I7XG4gICAgICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgjZmZmLCAkcHJpbWFyeS1jb2xvcik7XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0ocm90YXRleCgxODBkZWcpKTtcbiAgICAgICAgfVxuICAgIH1cblxufVxuXG4uYmxvY2tfX2JveF9fY29udGVudCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBwYWRkaW5nOiAuNXJlbSAkY29sdW1uLWd1dHRlci8yICRjb2x1bW4tZ3V0dGVyICRjb2x1bW4tZ3V0dGVyLzI7XG59XG5cbi5ibG9ja19fYm94IHtcbiAgICB1bCB7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICB1bCBsaSB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDFyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBsaSB7XG4gICAgICAgIGEge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG5cbiAgICAgICAgJi5wYXJlbnQge1xuICAgICAgICAgICAgPiBhLmpzLXRvZ2dsZS12aXNpYmlsaXR5OmJlZm9yZSwgPiAubWFpbi1uYXZfX3RvZ2dsZTpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIDMwMG1zIGVhc2UpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGljb24oJGljb24tdmFyLWFkZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgID4gYS50b2dnbGVkLCA+IC5tYWluLW5hdl9fdG9nZ2xlLnRvZ2dsZWQge1xuICAgICAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHJvdGF0ZSgxMzVkZWcpKTtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRhbGVydC1jb2xvcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgID4gdWwge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLmJsb2NrX19ib3gtLWxvZ29fbGlzdCBhOmJlZm9yZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG4uYmxvY2tfX2xvZ2luX19mb3Jnb3RwYXNzd29yZCB7XG4gICAgQGluY2x1ZGUgYnV0dG9uLXNpemUoJHBhZGRpbmc6JGJ1dHRvbi1zbWwpO1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xufVxuXG4jZm9vdGVyIHtcbiAgICAuZm9vdGVyLWJsb2NrOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkY29sdW1uLWd1dHRlcjtcblxuICAgICAgICAuYmxvY2tfX2JveDpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgbHVtYSgkZm9vdGVyLWJnKSA8IDUwIHtcbiAgICAgICAgJGZvb3Rlci10ZXh0LWNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkbGlnaHQtYm9keS10ZXh0LCAkZm9vdGVyLWJnKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICAgJGZvb3Rlci10ZXh0LWNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkZGFyay1ib2R5LXRleHQsICRmb290ZXItYmcpO1xuICAgIH1cbiAgICAkZm9vdGVyLWxpbmstcGFkZGluZzogKCgoJHRvdWNoLWZyaWVuZGx5LXNpemUgLSAoMXJlbSAqICRwYXJhZ3JhcGgtbGluZS1oZWlnaHQpKS8yKSArIC4yNXJlbSkgIWRlZmF1bHQ7XG5cbiAgICAuYmxvY2tfX2JveCB7XG4gICAgICAgIGxpIGEubmV1dHJhbC1saW5rOmJlZm9yZSxcbiAgICAgICAgbGkubmV1dHJhbC1saW5rID4gYTpiZWZvcmUge1xuICAgICAgICAgICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRwcmltYXJ5LWNvbG9yLCAkZm9vdGVyLWJnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxpIGEudG9nZ2xlZDpiZWZvcmUge1xuICAgICAgICAgICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRhbGVydC1jb2xvciwgJGZvb3Rlci1iZyk7XG4gICAgICAgIH1cbiAgICAgICAgLm1haW4tbmF2X190b2dnbGUsIC5tYWluLW5hdl9fdG9nZ2xlOmJlZm9yZSB7XG4gICAgICAgICAgICBoZWlnaHQ6IHJlbS1jYWxjKDUwKTtcbiAgICAgICAgICAgIHdpZHRoOiByZW0tY2FsYyg1MCk7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogcmVtLWNhbGMoNTApO1xuICAgICAgICAgICAgdGV4dC1pbmRlbnQ6IDA7XG4gICAgICAgIH1cbiAgICAgICAgbGkubGV2ZWwtMCB7XG4gICAgICAgICAgICAmLCBsaSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHJnYmEoJGZvb3Rlci10ZXh0LWNvbG9yLCAkYm9yZGVyLWRlZmF1bHQtb3BhY2l0eSkgc29saWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wLXdpZHRoOiAwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAkZm9vdGVyLWxpbmstcGFkZGluZyAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBPbiBtZW51IGxldmVsIDEgd2UgdXNlIHBsdXMgc2lnbiBhcyBwYXJlbnQgaW5kaWNhdG9yLCBzaW5jZSBsZXZlbCAyXG4gICAgICAgICAqIHN1Ym1lbnVzIG1heSBwb3AgdXAgYm90aCB0byB0aGUgbGVmdCBhbmQgdG8gdGhlIHJpZ2h0XG4gICAgICAgICAqL1xuICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIDUge1xuICAgICAgICAgICAgbGkubGV2ZWwtI3skaX0ge1xuICAgICAgICAgICAgICAgIHRleHQtaW5kZW50OiAoJGZvb3Rlci1saW5rLXBhZGRpbmcgKiAxLjUpICogJGk7XG4gICAgICAgICAgICAgfVxuICAgICBcdH1cbiAgICAgICAgbGkucGFyZW50IHtcblxuICAgIFx0XHQmID4gYSB7XG4gICAgXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuICAgIFx0XHR9XG5cbiAgICBcdFx0Ji5jdXJyZW50LFxuICAgIFx0XHQmLnNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICAmID4gdWwge1xuICAgIFx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5AbWVkaWEgI3skbWVkaXVtLXVwfSB7XG4gICAgI2Zvb3RlciB7XG4gICAgICAgIC5mb290ZXItYmxvY2s6Zmlyc3QtY2hpbGQsXG4gICAgICAgIC5mb290ZXItYmxvY2s6bnRoLWxhc3QtY2hpbGQoMikge1xuICAgICAgICAgICAgLmJsb2NrX19ib3g6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmJsb2NrX19ib3g6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDFweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5ibG9ja19fYm94X19oZWFkbGluZSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDtcblxuICAgICAgICAmLnRvZ2dsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcbiAgICAgICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICB9XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBjdXJzb3I6IGluaGVyaXQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYmxvY2tfX2JveF9fY29udGVudCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgICAgICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICB9XG59XG5cbkBtZWRpYSAjeyRsYXJnZS11cH0ge1xuICAgICNmb290ZXIge1xuICAgICAgICAuZm9vdGVyLWJsb2NrIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRjb2x1bW4tZ3V0dGVyO1xuXG4gICAgICAgICAgICAuYmxvY2tfX2JveDpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufSIsIi5ibG9ja19fYm94LS1iYW5uZXJzLFxuLmJsb2NrX19ib3gtLWJhbm5lcnNfcmlnaHQsXG4uYmxvY2tfX2JveC0tYmFubmVyc19sZWZ0IHtcbiAgICBcbiAgICAmLCAuYmxvY2tfX2JveF9fY29udGVudCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50IWltcG9ydGFudDtcbiAgICB9XG4gICAgXG4gICAgXG4gICAgLmJsb2NrX19ib3hfX2hlYWRsaW5lLXdyYXBwZXIsXG4gICAgLmJsb2NrX19ib3hfX2hlYWRsaW5lIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAud3JhcHBlcl9iYW5uZXIge1xuICAgIFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgXHQmID4gZGl2IHtcbiAgICBcdFx0bWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICAvLyBGdWxsIHNpemUgdGhlIGltYWdlXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgQGlmICRnbG9iYWwtcmFkaXVzID4gMCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzIC0gMTsgLy8gVmlzdWFsIHNpbWlsYXJpdHkgdG8gYm94ZXNcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICBcdFx0JjpsYXN0LWNoaWxkIHtcbiAgICBcdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xuICAgIFx0XHR9XG4gICAgXHR9XG4gICAgfVxufVxuXG4iLCIlYm9yZGVyZWQge1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAwO1xufVxuXG4uYm9yZGVyZWQge1xuICAgIEBleHRlbmQgJWJvcmRlcmVkO1xufVxuXG4uYm9yZGVyZWQtLWFsbCB7XG4gICAgQGV4dGVuZCAlYm9yZGVyZWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAxcHg7XG59XG5cbi5ib3JkZXJlZC0tYm90dG9tIHtcbiAgICBAZXh0ZW5kICVib3JkZXJlZDtcbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAxcHg7XG5cbiAgICAmLmJvcmRlcmVkX19saXN0LWl0ZW06bGFzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gICAgfVxufVxuXG4uYm9yZGVyZWQtLXRvcCB7XG4gICAgQGV4dGVuZCAlYm9yZGVyZWQ7XG4gICAgYm9yZGVyLXRvcC13aWR0aDogMXB4O1xufVxuXG4uYm9yZGVyZWQtLWxlZnQge1xuICAgIEBleHRlbmQgJWJvcmRlcmVkO1xuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7XG59XG5cbi5ib3JkZXJlZC0tcmlnaHQge1xuICAgIEBleHRlbmQgJWJvcmRlcmVkO1xuICAgIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xufSIsImJvZHkge1xuICAgIC5idXR0b24sIGJ1dHRvbiB7XG4gICAgXHRAZXh0ZW5kIC5idXR0b24ucmFkaXVzO1xuICAgIH1cbn0iLCIkYnhzbGlkZXItY29udHJvbHMtc2l6ZTogJHRvdWNoLWZyaWVuZGx5LXNpemUgIWRlZmF1bHQ7XG4kYnhzbGlkZXItY29udHJvbHMtYm9yZGVyLXNpemU6IDIgIWRlZmF1bHQ7XG4kYnhzbGlkZXItYnVsbGV0LW5hdi1zaXplOiAkdG91Y2gtZnJpZW5kbHktc2l6ZSAhZGVmYXVsdDtcbiRieHNsaWRlci1jb250cm9scy1uYXZpZ2F0aW9uLXJhZGl1czogJGJ4c2xpZGVyLWNvbnRyb2xzLXNpemUvMiAhZGVmYXVsdDtcbiRieHNsaWRlci1jb250cm9scy1uYXZpZ2F0aW9uLWxvY2F0aW9uOiBvdXRzaWRlICFkZWZhdWx0O1xuJGJ4c2xpZGVyLXBhZ2VyLWxpbmstYmc6ICRjb250ZW50LWJnICFkZWZhdWx0O1xuJGJ4c2xpZGVyLW5hdi1hcnJvdy1zaXplOiByZW0tY2FsYygzMCkgIWRlZmF1bHQ7XG5cbi5ieC13cmFwcGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5ieC1jb250cm9scy1kaXJlY3Rpb24gYSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIG1hcmdpbi10b3A6IC0jeyRieHNsaWRlci1jb250cm9scy1zaXplLzJ9O1xuICAgIG91dGxpbmU6IDA7XG4gICAgd2lkdGg6ICRieHNsaWRlci1jb250cm9scy1zaXplO1xuICAgIGhlaWdodDogJGJ4c2xpZGVyLWNvbnRyb2xzLXNpemU7XG4gICAgdGV4dC1pbmRlbnQ6IDEwMCU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgei1pbmRleDogMTAwO1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAyMDBtcywgLXdlYmtpdC10cmFuc2Zvcm0gMTUwbXMgZWFzZTtcbiAgICAtd2Via2l0LXRyYW5zaXRpb24tZGVsYXk6IGVhc2UsIDBzO1xuICAgIC1tb3otdHJhbnNpdGlvbjogb3BhY2l0eSAyMDBtcyBlYXNlLCAtbW96LXRyYW5zZm9ybSAxNTBtcyBlYXNlO1xuICAgIC1vLXRyYW5zaXRpb246IG9wYWNpdHkgMjAwbXMgZWFzZSwgLW8tdHJhbnNmb3JtIDE1MG1zIGVhc2U7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAyMDBtcyBlYXNlLCB0cmFuc2Zvcm0gMTUwbXMgZWFzZTtcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDIyKTtcbiAgICBAaW5jbHVkZSBwcmVmaXhlcihib3JkZXItcmFkaXVzLCAkYnhzbGlkZXItY29udHJvbHMtbmF2aWdhdGlvbi1yYWRpdXMsIG1zIHNwZWMpO1xuICAgIGJvcmRlcjogI3skYnhzbGlkZXItY29udHJvbHMtYm9yZGVyLXNpemV9cHggc29saWQgI2ZmZjtcblxuICAgIC5zbGlkZXJfX3dpdGgtbmF2ICYge1xuICAgICAgICBtYXJnaW4tdG9wOiAtI3skYnhzbGlkZXItY29udHJvbHMtc2l6ZS8yICsgJGJ4c2xpZGVyLWJ1bGxldC1uYXYtc2l6ZS8yfTtcbiAgICB9XG4gICBcbiAgICAmOmFmdGVyIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKHRleHQtaW5kZW50IDIwMG1zIGVhc2UpO1xuICAgICAgICB3aWR0aDogJGJ4c2xpZGVyLWNvbnRyb2xzLXNpemU7XG4gICAgICAgIGZvbnQtc2l6ZTogJGJ4c2xpZGVyLW5hdi1hcnJvdy1zaXplO1xuICAgICAgICB0b3A6IC0jeyRieHNsaWRlci1jb250cm9scy1ib3JkZXItc2l6ZX1weDtcbiAgICAgICAgbGVmdDogLSN7JGJ4c2xpZGVyLWNvbnRyb2xzLWJvcmRlci1zaXplfXB4O1xuICAgICAgICB6LWluZGV4OiAxMDE7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG5cbiAgICAmLmRpc2FibGVkIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbi8vIFJldmVyc2UgY29sb3JzXG5AaWYgbGlnaHRuZXNzKCRjb250ZW50LWJnKSA+IDUwJSB7XG4gICAgLmJ4LWNvbnRyb2xzLWRpcmVjdGlvbiBhIHtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwwLDAsIC40KTtcbiAgICAgICAgYm9yZGVyOiAjeyRieHNsaWRlci1jb250cm9scy1ib3JkZXItc2l6ZX1weCBzb2xpZCAjZmZmO1xuXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwwLDAsIC45KTtcbiAgICAgICAgfVxuICAgIH1cbn0gQGVsc2Uge1xuICAgIC5ieC1jb250cm9scy1kaXJlY3Rpb24gYSB7XG4gICAgICAgIGNvbG9yOiAjMDAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LCAuMjUpO1xuICAgICAgICBib3JkZXI6ICN7JGJ4c2xpZGVyLWNvbnRyb2xzLWJvcmRlci1zaXplfXB4IHNvbGlkICMwMDA7XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBjb2xvcjogIzAwMDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwgLjkpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uYngtbmV4dCB7XG4gICAgcmlnaHQ6ICN7JGNvbHVtbi1ndXR0ZXIvMn07XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgICAgQGluY2x1ZGUgaWNvbigkaWNvbi12YXItY2hldnJvbi1yaWdodCk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICB0ZXh0LWluZGVudDogM3B4O1xuICAgIH1cblxuICAgICY6aG92ZXI6YWZ0ZXIsXG4gICAgJjpmb2N1czphZnRlciB7XG4gICAgICAgIHRleHQtaW5kZW50OiA5cHg7XG4gICAgfVxuXG4gICAgJjphY3RpdmU6YWZ0ZXIge1xuICAgICAgICB0ZXh0LWluZGVudDogMDtcbiAgICB9XG5cbn1cblxuLmJ4LXByZXYge1xuICAgIGxlZnQ6ICN7JGNvbHVtbi1ndXR0ZXIvMn07XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgICAgQGluY2x1ZGUgaWNvbigkaWNvbi12YXItY2hldnJvbi1sZWZ0KTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgIHRleHQtaW5kZW50OiAtM3B4O1xuICAgIH1cblxuICAgICY6aG92ZXI6YWZ0ZXIsXG4gICAgJjpmb2N1czphZnRlciB7XG4gICAgICAgIHRleHQtaW5kZW50OiAtOXB4O1xuICAgIH1cblxuICAgICY6YWN0aXZlOmFmdGVyIHtcbiAgICAgICAgdGV4dC1pbmRlbnQ6IDA7XG4gICAgfVxufVxuXG4uYngtcGFnZXIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAvLyBUbyBwcmV2ZW50IGxhcmdlIHBhaW50IGZyYW1lcyBvbiBjaHJvbWUgZm9yIC5ieC1wYWdlci1pdGVtXG4gICAgLy8gV2l0aG91dCB0aGlzIC5ieC1wYWdlci1pdGVtIGNvbnN1bWUgNS44TUIgaW5zdGVhZCBvZiA1LjhLQlxuICAgIG92ZXJmbG93OiBoaWRkZW47IFxufVxuXG4uYngtcGFnZXItaXRlbSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmJ4LXBhZ2VyLWxpbmsge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6ICRieHNsaWRlci1idWxsZXQtbmF2LXNpemU7XG4gICAgd2lkdGg6ICRieHNsaWRlci1idWxsZXQtbmF2LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6ICRieHNsaWRlci1idWxsZXQtbmF2LXNpemU7XG4gICAgZm9udC1zaXplOiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGZvbnQtc2l6ZTogLjhyZW07XG4gICAgICAgIG9wYWNpdHk6IC4yNTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIEBpbmNsdWRlIGljb24oJGljb24tdmFyLWJyaWdodG5lc3MtMSk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRieHNsaWRlci1wYWdlci1saW5rLWJnO1xuICAgICAgICBAaWYgJGJ4c2xpZGVyLXBhZ2VyLWxpbmstYmcgIT0gdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgQGlmIGx1bWEoJGJ4c2xpZGVyLXBhZ2VyLWxpbmstYmcpIDwgNTAge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgjZmZmLCAkYnhzbGlkZXItcGFnZXItbGluay1iZyk7XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoIzAwMCwgJGJ4c2xpZGVyLXBhZ2VyLWxpbmstYmcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkY29udGVudC1iZywgJGNvbnRlbnQtYmcpO1xuICAgICAgICB9XG4gICAgICAgIGhlaWdodDogJGJ4c2xpZGVyLWJ1bGxldC1uYXYtc2l6ZTtcbiAgICAgICAgd2lkdGg6ICRieHNsaWRlci1idWxsZXQtbmF2LXNpemU7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oZm9udC1zaXplIDIwMG1zIGVhc2UpO1xuICAgIH1cblxuICAgICYuYWN0aXZlOmFmdGVyIHtcbiAgICAgICAgb3BhY2l0eTogLjc1O1xuICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgfVxuXG4gICAgJjpob3ZlcjphZnRlcixcbiAgICAmOmZvY3VzOmFmdGVyIHtcbiAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgICBAaWYgJGJ4c2xpZGVyLXBhZ2VyLWxpbmstYmcgIT0gdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRwcmltYXJ5LWNvbG9yLCAkYnhzbGlkZXItcGFnZXItbGluay1iZyk7XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRwcmltYXJ5LWNvbG9yLCAkY29udGVudC1iZyk7XG4gICAgICAgIH1cbiAgICAgICAgb3BhY2l0eTogLjc1O1xuICAgIH1cbn1cblxuQGlmICRieHNsaWRlci1jb250cm9scy1uYXZpZ2F0aW9uLWxvY2F0aW9uID09IG91dHNpZGUge1xuICAgIEBtZWRpYSAjeyR4bGFyZ2UtdXB9IHtcbiAgICAgICAgLmJ4LXByZXYge1xuICAgICAgICAgICAgbGVmdDogLSN7JGJ4c2xpZGVyLWNvbnRyb2xzLXNpemUgKyAkY29sdW1uLWd1dHRlcn07XG4gICAgICAgIH1cblxuICAgICAgICAuYngtbmV4dCB7XG4gICAgICAgICAgICByaWdodDogLSN7JGJ4c2xpZGVyLWNvbnRyb2xzLXNpemUgKyAkY29sdW1uLWd1dHRlcn07XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgfVxufSIsIiRjYXJ0LXN0eWxlOiBmdWxsICFkZWZhdWx0O1xuJGNhcnQtcXVhbnRpdHktYmFkZ2Utc2l6ZTogMS41cmVtICFkZWZhdWx0O1xuJGNhcnQtcXVhbnRpdHktYmFkZ2UtcmFkaXVzOiA1MCUgIWRlZmF1bHQ7XG5cbkBpbXBvcnQgXCJjYXJ0LWJ1dHRvbi1mdWxsXCI7XG5AaW1wb3J0IFwiY2FydC1idXR0b24tc2ltcGxlXCI7XG5cbkBpZiAkY2FydC1zdHlsZSA9PSBmdWxsIHtcbiAgICBAaW5jbHVkZSBjYXJ0LWJ1dHRvbi1mdWxsKCk7XG59IEBlbHNlaWYgJGNhcnQtc3R5bGUgPT0gc2ltcGxlIHtcbiAgICBAaW5jbHVkZSBjYXJ0LWJ1dHRvbi1zaW1wbGUoKTtcbn1cbiIsIi8vIENhcnQgYnV0dG9uIHdpdGggcXVhbnRpdHksIHN1bSBhbmQgY2hlY2tvdXQgYnV0dG9uXG5cbkBtaXhpbiBjYXJ0LWJ1dHRvbi1mdWxsKCkge1xuICAgIC5jYXJ0LWJ1dHRvbl9fcXVhbnRpdHksXG4gICAgLmNhcnQtYnV0dG9uX19zdW0sXG4gICAgLmNhcnQtYnV0dG9uX19jdXJyZW5jeSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkY2FydC1xdWFudGl0eS1iYWRnZS1zaXplO1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDEyKTtcbiAgICAgICAgaGVpZ2h0OiAkY2FydC1xdWFudGl0eS1iYWRnZS1zaXplO1xuICAgIH1cblxuICAgIC5jYXJ0LWJ1dHRvbl9fc3VtLFxuICAgIC5jYXJ0LWJ1dHRvbl9fY3VycmVuY3kge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC5jYXJ0LWJ1dHRvbl9fcXVhbnRpdHkge1xuICAgICAgICBAZXh0ZW5kIC5jYWxsLXRvLWFjdGlvbi1jb2xvci1iZztcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBAaW5jbHVkZSByYWRpdXMoJGNhcnQtcXVhbnRpdHktYmFkZ2UtcmFkaXVzKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB3aWR0aDogJGNhcnQtcXVhbnRpdHktYmFkZ2Utc2l6ZTtcblxuICAgICAgICAuY2FydC1idXR0b24tLWVtcHR5ICYge1xuICAgICAgICAgICAgQGV4dGVuZCAuc2Vjb25kYXJ5LWNvbG9yLWJnO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNhcnQtYnV0dG9uOmhvdmVyICYsXG4gICAgICAgIC5jYXJ0LWJ1dHRvbi0taGlnaGxpZ2h0ZWQgJiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaG92ZXItY29sb3IgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGNvbG9yOiAkaG92ZXItYmctdGV4dC1jb2xvcjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAzcHggM3B4IHJnYmEoMCwgMCwgMCwgLjEpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgMjAwbXMgZWFzZSk7XG4gICAgfVxuXG4gICAgLmljb24tbGFyZ2VyLXRoYW46YWZ0ZXIge1xuICAgICAgICBAaW5jbHVkZSBpY29uKCRpY29uLXZhci1jaGV2cm9uLXJpZ2h0KTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtM3B4O1xuICAgICAgICBtYXJnaW4tbGVmdDogLTRweDtcbiAgICB9XG5cbiAgICAuY2FydC1idXR0b24ge1xuICAgICAgICBsaW5lLWhlaWdodDogcmVtLWNhbGMoMzcpO1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4gICAgICAgIGNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxcmVtO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgY29sb3I6ICRib2R5LWZvbnQtY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuY2hlY2tvdXQtYnV0dG9uIHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1zaXplKHJlbS1jYWxjKDEwKSk7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkY2FsbC10by1hY3Rpb24tY29sb3IsIHRydWUpO1xuICAgICAgICBwYWRkaW5nOiAwIDFyZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkYnV0dG9uLXNpemU7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGhvdmVyLWNvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNhcnQtaWNvbjpiZWZvcmUge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtOXB4O1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmNhcnQtYnV0dG9uLS1lbXB0eSB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG5cbiAgICAgICAgLmNhcnQtYnV0dG9uX19zdW0sXG4gICAgICAgIC5jYXJ0LWJ1dHRvbl9fY3VycmVuY3ksXG4gICAgICAgIH4gLmNoZWNrb3V0LWJ1dHRvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuY2FydF9faWNvbi1jYXJ0IHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogLjFyZW07XG4gICAgfVxuXG4gICAgLmNhcnQtYnV0dG9uX190ZXh0IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAuY2FydF9faWNvbi1wcm9jZWRlICB7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTMpO1xuICAgIH1cblxuICAgIEBtZWRpYSAjeyRzbWFsbC1wbHVzLXVwfSB7XG4gICAgICAgIC5jYXJ0LWJ1dHRvbl9fc3VtLFxuICAgICAgICAuY2FydC1idXR0b25fX2N1cnJlbmN5IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuICAgIH1cbn0iLCIkY2FydC1xdWFudGl0eS1iYWRnZS1vZmZzZXQ6IDRweDtcblxuQG1peGluIGNhcnQtYnV0dG9uLXNpbXBsZSgpIHtcblxuICAgIC5jYXJ0LWFuZC1jaGVja291dCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB9XG5cbiAgICAuY2FydC1idXR0b25fX3F1YW50aXR5IHtcbiAgICAgICAgcG9zaXRpb246YWJzb2x1dGU7XG4gICAgICAgIGJvdHRvbTogLSN7JGNhcnQtcXVhbnRpdHktYmFkZ2Utb2Zmc2V0fTtcbiAgICAgICAgcmlnaHQ6IC0jeyRjYXJ0LXF1YW50aXR5LWJhZGdlLW9mZnNldH07XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpO1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDEyKTtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRjYXJ0LXF1YW50aXR5LWJhZGdlLXNpemU7XG4gICAgICAgIGhlaWdodDogJGNhcnQtcXVhbnRpdHktYmFkZ2Utc2l6ZTtcbiAgICAgICAgQGluY2x1ZGUgcmFkaXVzKDApO1xuICAgICAgICBwYWRkaW5nOiAwIDRweDtcbiAgICAgICAgQGV4dGVuZCAuY2FsbC10by1hY3Rpb24tY29sb3ItYmc7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBvcGFjaXR5OiAuOTtcblxuICAgICAgICAuY2FydC1idXR0b24tLWVtcHR5ICYge1xuICAgICAgICAgICAgQGV4dGVuZCAuc2Vjb25kYXJ5LWNvbG9yLWJnO1xuICAgICAgICAgICAgb3BhY2l0eTogLjk7XG4gICAgICAgIH1cblxuICAgICAgICAuY2FydC1idXR0b246aG92ZXIgJixcbiAgICAgICAgLmNhcnQtYnV0dG9uLS1oaWdobGlnaHRlZCAmIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRob3Zlci1jb2xvciAhaW1wb3J0YW50O1xuICAgICAgICAgICAgY29sb3I6ICRob3Zlci1iZy10ZXh0LWNvbG9yO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDNweCAzcHggcmdiYSgwLCAwLCAwLCAuMSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCAyMDBtcyBlYXNlKTtcbiAgICB9XG5cbiAgICAuaWNvbi1sYXJnZXItdGhhbjphZnRlciB7XG4gICAgICAgIEBpbmNsdWRlIGljb24oJGljb24tdmFyLWNoZXZyb24tcmlnaHQpO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IC0zcHg7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtNHB4O1xuICAgIH1cblxuICAgIC5jYXJ0LWJ1dHRvbl9faWNvbjpiZWZvcmUge1xuICAgICAgICBmb250LXNpemU6IDJyZW07XG4gICAgfVxuXG4gICAgLmNhcnQtYnV0dG9uX190ZXh0LFxuICAgIC5jYXJ0LWJ1dHRvbl9fc3VtLFxuICAgIC5jYXJ0LWJ1dHRvbl9fY3VycmVuY3kge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC5jYXJ0LWFuZC1jaGVja291dCAuY2hlY2tvdXQtYnV0dG9uIHtcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbn0iLCIkY2hlY2tvdXQtc21hbGwtc3BhY2luZzogcmVtLWNhbGMoMjApICFkZWZhdWx0O1xuJGNoZWNrb3V0LW1lZGl1bS1zcGFjaW5nOiByZW0tY2FsYygzMCkgIWRlZmF1bHQ7XG4kY2hlY2tvdXQtbGFyZ2Utc3BhY2luZzogcmVtLWNhbGMoNjkpICFkZWZhdWx0O1xuXG4kY2hlY2tvdXQtc3RlcHMtY29udGFpbmVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbkBpZiAoJGNoZWNrb3V0LXN0ZXBzLWNvbnRhaW5lci1yYWRpdXMgPiAwKSB7XG4gICAgJGNoZWNrb3V0LXN0ZXBzLWlubmVyLWNvbnRhaW5lci1yYWRpdXM6ICRjaGVja291dC1zdGVwcy1jb250YWluZXItcmFkaXVzIC0gMnB4O1xufSBAZWxzZSB7XG4gICAgJGNoZWNrb3V0LXN0ZXBzLWlubmVyLWNvbnRhaW5lci1yYWRpdXM6ICRjaGVja291dC1zdGVwcy1jb250YWluZXItcmFkaXVzO1xufVxuXG4kZWRpdC1zdGVwLWJ0bi1ib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8gVXNlIHJlZ3VsYXIgZ3JpZCBtYXJnaW5zIGZvciB0aGUgY2hlY2tvdXQgZm9ybSBncmlkXG4ja2Fzc2Vfb25lX2Zvcm0sXG4ja2Fzc2Vfb25lX2xvZ2dpbm4ge1xuICAgIC5yb3cgLnJvdyB7XG4gICAgICAgIEBpbmNsdWRlIGdyaWQtcm93KCRiZWhhdmlvcjogbmVzdCk7XG5cbiAgICAgICAgLmNvbHVtbixcbiAgICAgICAgLmNvbHVtbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gWmVicmEgdGFibGUgc3R5bGluZ1xuI2thc3NlX29uZV9mb3JtIC56ZWJyYSB7XG4gICAgYm9yZGVyLXNwYWNpbmc6IDA7XG4gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuI2thc3NlX29uZV9mb3JtIC56ZWJyYSB0cjpsYXN0LWNoaWxkIHRkIHtcbiAgICBib3JkZXItYm90dG9tOiBub25lO1xufVxuXG4uY2hlY2tvdXRfX3N0ZXBzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY2hlY2tvdXQtc3RlcHMtYmc7XG4gICAgcGFkZGluZzogMnB4O1xuICAgIGJvcmRlci1yYWRpdXM6ICRjaGVja291dC1zdGVwcy1jb250YWluZXItcmFkaXVzO1xuICAgIG1hcmdpbi10b3A6IDFlbTtcbn1cblxuLyogRU5JUk8gc2VhcmNoICovXG5cbiNlbmlyb19mZXRjaCB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4jZW5pcm9fb3B0aW9ucyxcbiNlbmlyb19tZXNzYWdlLFxuI2NsaWVudF9vcHRpb25zIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4jZW5pcm9fbWVzc2FnZSB7XG4gICAgcGFkZGluZzogNXB4O1xuICAgIG1hcmdpbi1ib3R0b206IDFlbTtcbiAgICBjbGVhcjogYm90aDtcbiAgICBsaW5lLWhlaWdodDogMS41O1xufVxuXG4jZW5pcm9fb3B0aW9ucyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogM3B4IDZweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjYmJiO1xufVxuXG4uY2FydC1jb250ZW50cyAubWluaS1pbWcge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyLXJpZ2h0OiAwO1xufVxuXG4ubWluaS1pbWcgaW1nIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4vKiBidXR0b25zICovXG5cbi5idXR0b24gLmFycm93IHtcbiAgICBwYWRkaW5nLWxlZnQ6IC40cmVtO1xufVxuXG4uY2hlY2tvdXRfX3N0ZXBfX2NvbnRlbnRzIHtcbiAgICBidXR0b24sXG4gICAgLmJ1dHRvbiB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxufVxuXG5hLmRpYWxvZ190cmlnZ2VyLFxuYS5kaWFsb2dfdHJpZ2dlcjpsaW5rLFxuYS5kaWFsb2dfdHJpZ2dlcjp2aXNpdGVkIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cblxuLmNoZWNrb3V0X19zdGVwX19jb250ZW50cyB7XG4gICAgLmRpYWxvZy1wb3B1cCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFlbTtcbiAgICB9XG59XG5cbi5kaWFsb2ctcG9wdXAgaDIge1xuICAgIG1hcmdpbi10b3A6IDA7XG59XG5cbi5kaWFsb2ctcG9wdXAge1xuICAgIC5rYXNzZV9vbmVfbG9nZ2lubl9lcnJvciB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgfVxuXG4gICAgLmZvcm1fc3VibWl0IHtcbiAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IC41ZW07XG4gICAgfVxuXG4gICAgLmZvcmdvdF9wYXNzd2Qge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICB9XG59XG5cbi5hZGRvbl9idXR0b25zIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgcGFkZGluZy1yaWdodDogJGNoZWNrb3V0LXNtYWxsLXNwYWNpbmc7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgbWFyZ2luLWJvdHRvbTogLjVyZW07XG5cbiAgICAuZWRpdF9zdGVwIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMnJlbTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuXG4gICAgICAgICYudG9nZ2xlZCAuaWNvbi1hZGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHJvdGF0ZSgtMTM1ZGVnKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuaWNvbi1hZGQge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGhlaWdodDogMS41cmVtO1xuICAgICAgICB3aWR0aDogMXJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNXJlbTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKHRyYW5zZm9ybSAwLjNzIGVhc2UpO1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0ocm90YXRlKDBkZWcpKTtcbiAgICB9XG5cbiAgICAuY2hlY2tvdXRfX3N0ZXAtLWluYWN0aXZlICYge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuLm5leHQtc3RlcC1idG4ge1xuICAgICYuYnV0dG9uIHtcbiAgICAgICAgQGV4dGVuZCAlY29udGVudF9fcHJpbWFyeS1jb2xvci1iZztcbiAgICB9XG5cbiAgICAuaWNvbiB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAuNWVtO1xuICAgIH1cbn1cblxuLmNoZWNrb3V0X19zdGVwICNjbGllbnRfZmV0Y2gge1xuICAgIEBleHRlbmQgJWNvbnRlbnRfX3ByaW1hcnktY29sb3ItYmc7XG59XG5cbi5lZGl0X3N0ZXAsXG4ubWFya2VyX2VkaXRfc3RlcCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgcGFkZGluZzogMCAuNWVtO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRlZGl0LXN0ZXAtYnV0dG9uLWJnO1xuICAgIGNvbG9yOiAkZWRpdC1zdGVwLWJ1dHRvbi10ZXh0LWNvbG9yO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3JkZXItcmFkaXVzOiAkZWRpdC1zdGVwLWJ0bi1ib3JkZXItcmFkaXVzO1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbn1cblxuLnBsdXMtaWNvbiB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi5lZGl0X3N0ZXA6bGluayxcbi5lZGl0X3N0ZXA6dmlzaXRlZCB7XG4gICAgY29sb3I6ICRlZGl0LXN0ZXAtYnV0dG9uLXRleHQtY29sb3I7XG59XG5cbi5jaGVja291dCB7XG4gICAgLmNoZWNrb3V0X19zdGVwLS1pbmFjdGl2ZTpob3ZlciAuZWRpdF9zdGVwLFxuICAgIC5jaGVja291dF9fc3RlcC0taW5hY3RpdmUgLmVkaXRfc3RlcDpmb2N1cyxcbiAgICAuZWRpdF9zdGVwOmhvdmVyLFxuICAgIC5lZGl0X3N0ZXA6Zm9jdXMge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZWRpdC1zdGVwLWhvdmVyLWJnO1xuICAgICAgICBjb2xvcjogJGVkaXQtc3RlcC1ob3Zlci10ZXh0LWNvbG9yO1xuICAgIH1cbn1cblxuLmVkaXRfc3RlcDpob3ZlciAucGx1cy1pY29uIHtcbiAgICBjb2xvcjogJGVkaXQtc3RlcC1ob3Zlci10ZXh0LWNvbG9yO1xufVxuXG4uZWRpdF9zdGVwIHtcbiAgICBsaW5lLWhlaWdodDogMjRweDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgbWFyZ2luOiAxOXB4ICRjaGVja291dC1zbWFsbC1zcGFjaW5nIDAgMDtcbn1cblxuLm1hcmtlcl9lZGl0X3N0ZXAge1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIG1hcmdpbi10b3A6IC00cHg7XG59XG5cbiNwcm9ncmVzcy1saXN0IC5jb21wbGV0ZSAubWFya2VyX2VkaXRfc3RlcCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZsb2F0OiBub25lO1xufVxuXG5pbnB1dC5jaGVja291dF9fcXR5IHtcbiAgICB3aWR0aDogM3JlbTtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG59XG5cbi8vIFVwZGF0ZSBjYXJ0IGJ1dHRvblxuXG4uY2hlY2tvdXRfX3VwZGF0ZS1jYXJ0LWJ0biB7XG4gICAgLmNoZWNrb3V0X191cGRhdGUtY2FydC1idG5fX3VwZGF0ZSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICB9XG5cbiAgICAuY2hlY2tvdXRfX3VwZGF0ZS1jYXJ0LWJ0bl9fbG9hZGluZyB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG4uY2hlY2tvdXRfX3VwZGF0ZS1jYXJ0LWJ0bjpkaXNhYmxlZCB7XG4gICAgLmNoZWNrb3V0X191cGRhdGUtY2FydC1idG5fX3VwZGF0ZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLmNoZWNrb3V0X191cGRhdGUtY2FydC1idG5fX2xvYWRpbmcge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgfVxufVxuXG4vLyBVcGRhdGUgY2FydCBidXR0b24gYW5pbWF0aW9uXG4uZWxsaXBzaXNfb25lLFxuLmVsbGlwc2lzX3R3byxcbi5lbGxpcHNpc190aHJlZSB7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygyMCk7XG4gICAgbGluZS1oZWlnaHQ6IDFyZW07XG4gICAgb3BhY2l0eTogMDtcbiAgICBAaW5jbHVkZSBhbmltYXRpb24oZWxsaXBzaXMgMC45cyBpbmZpbml0ZSk7XG4gICAgQGluY2x1ZGUgYW5pbWF0aW9uLWRlbGF5KDBzKTtcbn1cblxuLmVsbGlwc2lzX3R3byB7XG4gICAgQGluY2x1ZGUgYW5pbWF0aW9uLWRlbGF5KDAuMnMpO1xufVxuXG4uZWxsaXBzaXNfdGhyZWUge1xuICAgIEBpbmNsdWRlIGFuaW1hdGlvbi1kZWxheSgwLjNzKTtcbn1cblxuQGluY2x1ZGUga2V5ZnJhbWVzKGVsbGlwc2lzKSB7XG4gICAgICAwJSB7IG9wYWNpdHk6IDA7IH1cbiAgICAgNTAlIHsgb3BhY2l0eTogMDsgfVxuICAgIDEwMCUgeyBvcGFjaXR5OiAxOyB9XG59XG5cbi5kaWFsb2ctcG9wdXAgaW5wdXRbdHlwZT1cImVtYWlsXCJdLFxuLmRpYWxvZy1wb3B1cCBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG5cbi5tc2dib3gge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgcGFkZGluZzogMWVtIDFlbSAxZW0gMWVtO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGNsZWFyOiBib3RoO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRtc2dib3gtYmc7XG4gICAgYm9yZGVyLWxlZnQ6IDVweCBzb2xpZCAkbXNnYm94LWJvcmRlci1jb2xvcjtcbiAgICBtYXJnaW4tYm90dG9tOiAxZW07XG5cbiAgICBhIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgfVxuXG4gICAgcCB7XG4gICAgICAgIHBhZGRpbmc6IDAgMmVtIDAgMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cbn1cblxuLm1zZ2JveF9fY2xvc2Uge1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDIxKTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBjb2xvcjogJG1zZ2JveC1jbG9zZS10ZXh0LWNvbG9yO1xuICAgIHRleHQtc2hhZG93OiAwIDFweCAwICRtc2dib3gtY2xvc2Utc2hhZG93LWNvbG9yO1xuICAgIG9wYWNpdHk6IDAuMjtcbiAgICBmb250LWZhbWlseTogJ0hlbHZldGljYSBOZXVlJywgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBwYWRkaW5nOiAwO1xuXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgfVxufVxuXG5cbi5jaGVja291dF9fc3RlcCB7XG4gICAgcGFkZGluZy10b3A6IC41ZW07XG4gICAgcGFkZGluZy1ib3R0b206IDJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAxcHg7XG4gICAgYmFja2dyb3VuZDogJGNvbnRlbnQtYmc7XG59XG5cbi5jaGVja291dF9fc3RlcC0taW5hY3RpdmUge1xuICAgIHBhZGRpbmctdG9wOiAwO1xufVxuXG4janMtY2hlY2tvdXRzdGVwX19vdmVydmlldyAuY2hlY2tvdXRfX3N0ZXBfX2NvbnRlbnRzIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4janMtY2hlY2tvdXRzdGVwX19vdmVydmlldyxcbiNqcy1jaGVja291dHN0ZXBfX3BheW1ldGhvZCB7XG4gICAgLmpzLXRvZ2dsZS12aXNpYmlsaXR5LmVkaXRfc3RlcCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxZW07XG4gICAgfVxufVxuXG4uY2hlY2tvdXRfX3N0ZXAge1xuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkY2hlY2tvdXQtc3RlcHMtaW5uZXItY29udGFpbmVyLXJhZGl1cyAkY2hlY2tvdXQtc3RlcHMtaW5uZXItY29udGFpbmVyLXJhZGl1cyAwIDA7XG4gICAgfVxuXG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMCAwICRjaGVja291dC1zdGVwcy1pbm5lci1jb250YWluZXItcmFkaXVzICRjaGVja291dC1zdGVwcy1pbm5lci1jb250YWluZXItcmFkaXVzO1xuICAgIH1cbn1cblxuXG4vKiBJbmFjdGl2ZSBzdGVwIHN0eWxlcyAqL1xuXG4uY2hlY2tvdXRfX3N0ZXAtLWluYWN0aXZlIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICBiYWNrZ3JvdW5kOiAkY2hlY2tvdXQtc3RlcC1pbmFjdGl2ZS1iZztcbn1cblxuLmNoZWNrb3V0X19zdGVwX19taXJyb3IsXG4uY2hlY2tvdXRfX3N0ZXAtLWluYWN0aXZlIC5jaGVja291dF9fc3RlcF9fY29udGVudHMge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5jaGVja291dF9fc3RlcC0taW5hY3RpdmUudmFsaWQgLmNoZWNrb3V0X19zdGVwX19taXJyb3Ige1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGNsZWFyOiBib3RoO1xufVxuXG4janMtY2hlY2tvdXRzdGVwX19hZGRyZXNzIHtcbiAgICBoMiB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gICAgfVxuICAgIC5jaGVja291dF9fc3RlcF9fbWlycm9yIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbi5jaGVja291dF9fc3RlcF9fY29udGVudHMge1xuICAgIHBhZGRpbmc6IDAgJGNoZWNrb3V0LXNtYWxsLXNwYWNpbmc7XG4gICAgY2xlYXI6IGJvdGg7XG59XG5cbiNrYXNzZV9vbmVfbG9naW5fcXVlc3Rpb24sXG4jd2VsY29tZV9tc2csXG4jd2VsY29tZV9tc2ctLXRydWUge1xuICAgIGxpbmUtaGVpZ2h0OiAxLjVyZW07XG59XG5cbiNrYXNzZV9vbmVfbG9naW5fcXVlc3Rpb24gcC5zdWJ0bGUge1xuICAgIG1hcmdpbi10b3A6IDA7XG59XG5cbi5rYXNzZV9vbmVfbG9nZ2lubl9lcnJvciB7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbn1cblxuLmNoZWNrb3V0X19zdGVwLS1pbmFjdGl2ZSBoMiB7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgY29sb3I6IHJnYmEoJGNvbnRlbnQtdGV4dC1jb2xvciwgMC44KTtcbn1cblxuLmNoZWNrb3V0X19zdGVwX19taXJyb3Ige1xuICAgIGNvbG9yOiAjODg4O1xuICAgIHBhZGRpbmc6IDAgJGNoZWNrb3V0LXNtYWxsLXNwYWNpbmcgMS41ZW0gJGNoZWNrb3V0LWxhcmdlLXNwYWNpbmc7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuXG4gICAgaDMge1xuICAgICAgICBtYXJnaW46IDAgMCAuNWVtIDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICB9XG59XG5cbi5taXJyb3JfX2ZpcnN0LW5hbWUsXG4ubWlycm9yX19sYXN0LW5hbWUsXG4ubWlycm9yX196aXAsXG4ubWlycm9yX19jaXR5IHtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG59XG5cblxuLyogZW5kIGluYWN0aXZlIHN0ZXAgc3R5bGVzICovXG5cbi8qIGZyZWlnaHQgb3B0aW9ucyAqL1xuXG4uZnJlaWdodC1vcHRpb25zLFxuLnBheW1lbnQtb3B0aW9ucyB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbn1cbiAgICAuZnJlaWdodC1vcHRpb24sXG4gICAgLnBheW1lbnQtb3B0aW9uIHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgQGV4dGVuZCAuYm9yZGVyZWQtLWJvdHRvbTtcbiAgICAgICAgQGV4dGVuZCAlY29udGVudF9fYm9yZGVyZWQ7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucGF5bWVudC1vcHRpb24ge1xuICAgICAgICBkaXNwbGF5OiB0YWJsZTtcblxuICAgICAgICBsYWJlbCB7XG4gICAgICAgICAgICBkaXNwbGF5OiB0YWJsZS1yb3c7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgICAgICYgPiAqIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMWVtIDAgMWVtIDA7XG5cbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiA1cHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLnBheW1lbnQtb3B0aW9uX19wcmljZSB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDFlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYudGVzdCB7XG4gICAgICAgICAgICAucGF5bWVudC1vcHRpb25fX25hbWU6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLjVyZW07XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGljb24oJGljb24tdmFyLXdhcm5pbmcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkYWxlcnQtY29sb3IsICRjb250ZW50LWJnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5mcmVpZ2h0LW9wdGlvbiB7XG5cbiAgICAgICAgbGFiZWwge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAxZW0gNXB4IDFlbSAkY2hlY2tvdXQtbWVkaXVtLXNwYWNpbmc7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlucHV0W3R5cGU9cmFkaW9dIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0yMnB4O1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDJweDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmZyZWlnaHQtb3B0aW9uX19uYW1lIHtcbiAgICAgICAgd2lkdGg6IDYyJTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAzcHg7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgIH1cblxuICAgIC5mcmVpZ2h0LW9wdGlvbl9fcHJpY2Uge1xuICAgICAgICB3aWR0aDogMjklO1xuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgIH1cblxuICAgIC5mcmVpZ2h0LW9wdGlvbl9fZGVzYyxcbiAgICAucGF5bWVudC1vcHRpb25fX2Rlc2MsXG4gICAgLmF0dHJpYnV0ZSB7XG4gICAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoIzk5OSwgJGNvbnRlbnQtYmcsIDIpO1xuICAgICAgICBwYWRkaW5nOiAuNWVtIDgwcHggLjVlbSAzcHg7XG4gICAgfVxuXG4gICAgLmZyZWlnaHQtb3B0aW9uX19kZXNjIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICAuYXR0cmlidXRlIHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICB9XG5cbiAgICAucGF5bWVudC1vcHRpb25fX25hbWUge1xuICAgICAgICB3aWR0aDogNDAlO1xuICAgIH1cblxuICAgIC5wYXltZW50LW9wdGlvbl9faW5wdXQtd3JhcCB7XG4gICAgICAgIHdpZHRoOiAkY2hlY2tvdXQtbWVkaXVtLXNwYWNpbmc7XG4gICAgICAgIHBhZGRpbmctbGVmdDogNXB4O1xuXG4gICAgICAgIC5yZW1vdmVfZ2lmdGNhcmQge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDVweDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlucHV0IHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAzcHg7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAycHg7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnBheW1lbnQtb3B0aW9uX19wcmljZSB7XG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiA1cHg7XG4gICAgfVxuXG4vKiBlbmQgZnJlaWdodCBvcHRpb25zICovXG5cblxuLyogZWRpdCBzdGVwIGJ1dHRvbiAqL1xuLmNoZWNrb3V0X19zdGVwLS1pbmFjdGl2ZS52YWxpZCAuZWRpdF9zdGVwIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbn1cblxuLmlzLXRvZ2dsZXIge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmthc3NlX21haW4ge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGZsb2F0OiBsZWZ0O1xufVxuXG4uY2hlY2tvdXRfX3N0ZXBfX2hlYWRsaW5lIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBsaW5lLWhlaWdodDogMjhweDtcbiAgICBoZWlnaHQ6IDI4cHg7XG4gICAgbWFyZ2luOiAxNnB4IDA7XG4gICAgcGFkZGluZzogMCAxMHB4IDAgMDtcbiAgICBjbGVhcjogcmlnaHQ7XG4gICAgZm9udC1zaXplOiAxOHB4O1xufVxuXG4uY2hlY2tvdXRfX3N0ZXAtLWluYWN0aXZlIHtcbiAgICAmLnZhbGlkIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgIC5rYXNzZV9vbmVfc3RlcF9udW1iZXIge1xuICAgICAgICAgICAgQGV4dGVuZCAlY29udGVudF9fcHJpbWFyeS1jb2xvci1iZztcbiAgICAgICAgfVxuXG4gICAgICAgIGgyIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDhweDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuXG4ua2Fzc2Vfb25lX3N0ZXBfbnVtYmVyIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBoZWlnaHQ6IDI4cHg7XG4gICAgd2lkdGg6IDI4cHg7XG4gICAgbGluZS1oZWlnaHQ6IDI4cHg7XG4gICAgZm9udC1zaXplOiAxN3B4O1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHotaW5kZXg6IDE7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRzdGVwLW51bWJlci1iZztcbiAgICBtYXJnaW46IDE2cHggJGNoZWNrb3V0LXNtYWxsLXNwYWNpbmcgOHB4ICRjaGVja291dC1zbWFsbC1zcGFjaW5nO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgY29sb3I6ICRzdGVwLW51bWJlci10ZXh0LWNvbG9yO1xufVxuXG5idXR0b24ucmVtb3ZlX2dpZnRjYXJkLFxuYnV0dG9uLnJlbW92ZV9yYWJhdHQge1xuICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICBtYXJnaW4tbGVmdDogLjVlbTtcbiAgICBmb250LXNpemU6IDFyZW07XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgcGFkZGluZzogMDtcblxuICAgICYsXG4gICAgJjpsaW5rLFxuICAgICY6dmlzaXRlZCxcbiAgICAmOmhvdmVyLFxuICAgICY6YWN0aXZlLFxuICAgICY6Zm9jdXMge1xuICAgICAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGFsZXJ0LWNvbG9yLCAkY29udGVudC1iZyk7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIH1cbn1cblxuLmthc3NlX29uZV9zdGVwX251bWJlci0taW5mbyB7XG4gICAgZm9udC1mYW1pbHk6IEdlb3JnaWEsICdUaW1lcyBOZXcgUm9tYW4nLCBUaW1lcywgc2VyaWY7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG4ja2Fzc2Vfb25lX2Zvcm0gbGFiZWwuZXJyb3Ige1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGNsZWFyOiBib3RoO1xuICAgIGNvbG9yOiAjYjk0YTQ4O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjVlbTtcbiAgICBwYWRkaW5nLWJvdHRvbTogLjVlbTtcbn1cblxuI2thc3NlX29uZV9wb3B1cF9hcmVhIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6MzIwcHg7XG4gICAgLypoZWlnaHQ6ICAgMTU1cHg7Ki9cbiAgICBwYWRkaW5nOjE1cHg7XG4gICAgbWFyZ2luOjFlbSAwIDAgMDtcbiAgICBjb2xvcjojMDAwO1xuICAgIGJhY2tncm91bmQ6I2ZmZmZmZjsgLyogZGVmYXVsdCBiYWNrZ3JvdW5kIGZvciBicm93c2VycyB3aXRob3V0IGdyYWRpZW50IHN1cHBvcnQgKi9cbiAgICAvKiBjc3MzICovXG4gICAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50KCNmZmYsICNmMWYxZjEpO1xuICAgIGJvcmRlci1yYWRpdXM6MTBweDtcbiAgICBib3JkZXItc3R5bGU6c29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOjFweDtcbiAgICBib3JkZXItY29sb3I6I2NiY2JjYjtcbn1cblxuI2thc3NlX29uZV9wb3B1cCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogMTAyO1xufVxuXG4ja2Fzc2Vfb25lX3BvcHVwX2FyZWEgc3BhbiB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi5mcmFrdF93cmFwcGVyLFxuLnBheW1lbnRfd3JhcHBlcixcbi5wYXltZW50X3dyYXBwZXIgPiBsYWJlbC5lcnJvcixcbi5mcmFrdF93cmFwcGVyID4gbGFiZWwuZXJyb3Ige1xuICAgIG1hcmdpbi1ib3R0b206IDFlbTtcbn1cblxuI2thc3NlX29uZV9vcmRyZV9vdmVyc2lrdCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMS41ZW07XG5cbiAgICB0cjpudGgtb2YtdHlwZShldmVuKSB7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIH1cbn1cblxuLnN1YnRsZSB7XG4gICAgZm9udC1zaXplOiAxM3B4O1xufVxuXG4ja2Fzc2Vfb25lX2Zvcm0gLnN1YnRheGVzIHtcbiAgICBAZXh0ZW5kIC5zdWJ0bGU7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbiN3ZWxjb21lX21zZyB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLmhhc1BsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogI2JiYjtcbn1cblxuLm1pbmktaW1nIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxubGFiZWxbZm9yPVwia2pvcHNiZXRcIl0gYSB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgdGV4dC10cmFuc2Zvcm06IGxvd2VyY2FzZTtcblxuICAgICY6aG92ZXIge1xuICAgICAgICBjdXJzb3I6IGhlbHA7XG4gICAgfVxufVxuXG5sYWJlbFtmb3I9XCJram9wc2JldFwiXSBhIGIge1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG59XG5cbnRhYmxlLmxpbmVkIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICAgIG1hcmdpbi1ib3R0b206IDEuNWVtO1xuICAgIGNsZWFyOiBib3RoO1xuXG4gICAgdGgsXG4gICAgdGQge1xuICAgICAgICBsaW5lLWhlaWdodDogMS41ZW07XG4gICAgICAgIHBhZGRpbmc6IDVweCA3cHg7XG4gICAgICAgIGJvcmRlci1yaWdodDogMXB4IGRvdHRlZCAkdGFibGUtc3VidGxlLWJvcmRlci1jb2xvcjtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdGhlYWQgdGgge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHRhYmxlLWJvcmRlci1jb2xvcjtcbiAgICB9XG5cbiAgICB0Ym9keSB7XG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBkYXNoZWQgJHRhYmxlLXN1YnRsZS1ib3JkZXItY29sb3I7XG4gICAgICAgIH1cblxuICAgICAgICB0cjpmaXJzdC1jaGlsZCB0ZCB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdGZvb3Qge1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcblxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHRhYmxlLWJvcmRlci1jb2xvcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLnN1bSB0ZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAzcHggZG91YmxlICR0YWJsZS1ib3JkZXItY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucHJpY2Uge1xuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICB9XG59XG5cbi5jb250cm9sLWdyb3VwIHtcbiAgICBAaW5jbHVkZSBncmlkLWNvbHVtbigkY29sdW1uczogMTIpO1xuXG4gICAgLnJvdy5jb2xsYXBzZSA+ICYge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgfVxufVxuXG4uY2hlY2tvdXRfX3N1bS10b28tc21hbGxfX2Vycm9ybXNnIHtcbiAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgLmNoZWNrb3V0X19zdW0tdG9vLXNtYWxsICYge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG59XG5cbi5jaGVja291dF9fc3VtLXRvby1zbWFsbCB7XG4gICAgLmNoZWNrb3V0X19zdW0tdG9vLXNtYWxsX19lcnJvcm1zZyB7XG4gICAgICAgIGNvbG9yOiAkYWxlcnQtY29sb3I7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbn1cblxuXG5AbWVkaWEgI3skc21hbGwtcGx1cy11cH0ge1xuICAgIC5jb250cm9sLWdyb3VwIHtcbiAgICAgICAgd2lkdGg6IGdyaWQtY2FsYygxMCwgJHRvdGFsLWNvbHVtbnMpO1xuICAgIH1cblxuICAgIC5hZGRvbl9idXR0b25zIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICBjbGVhcjogcmlnaHQ7XG4gICAgfVxufVxuXG5AbWVkaWEgI3skbWVkaXVtLXVwfSB7XG4gICAgLmFkZG9uX2J1dHRvbnMge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkY2hlY2tvdXQtbWVkaXVtLXNwYWNpbmc7XG4gICAgfVxuXG4gICAgLmNhcnQtY29udGVudHMgLm1pbmktaW1nIHtcbiAgICAgICAgcGFkZGluZzogNXB4IDdweDtcbiAgICB9XG5cbiAgICAubWluaS1pbWcgaW1nIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgLmNoZWNrb3V0X19zdGVwX19jb250ZW50cyB7XG4gICAgICAgIHBhZGRpbmc6IDAgJGNoZWNrb3V0LW1lZGl1bS1zcGFjaW5nIDAgJGNoZWNrb3V0LWxhcmdlLXNwYWNpbmc7XG4gICAgfVxuXG4gICAgLmNvbnRyb2wtZ3JvdXAge1xuICAgICAgICB3aWR0aDogZ3JpZC1jYWxjKDEyLCAkdG90YWwtY29sdW1ucyk7XG4gICAgfVxuXG4gICAgLmNoZWNrb3V0LWxvZ2luIHtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4gICAgfVxuXG4gICAgLmNoZWNrb3V0X19zdGVwX19jb250ZW50cyB7XG4gICAgICAgIC5uZXh0LXN0ZXAtYnRuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1zaXplO1xuICAgICAgICAgICAgLmFycm93IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmNoZWNrb3V0X19zdGVwX19taXJyb3Ige1xuICAgICAgICBwYWRkaW5nLWxlZnQ6ICRjaGVja291dC1sYXJnZS1zcGFjaW5nO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkY2hlY2tvdXQtbWVkaXVtLXNwYWNpbmc7XG4gICAgfVxuXG4gICAgI2pzLWNoZWNrb3V0c3RlcF9fYWRkcmVzcy5jaGVja291dF9fc3RlcC0taW5hY3RpdmUudmFsaWQge1xuICAgICAgICAuY2hlY2tvdXRfX3N0ZXBfX21pcnJvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIGgyIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDhweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jaGVja291dF9fc3RlcF9fbWlycm9yX19hZGRyZXNzIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICAuZnJlaWdodC1vcHRpb24ge1xuICAgICAgICBpbnB1dFt0eXBlPXJhZGlvXSB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMjJweDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAycHg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtZWRpYSAjeyRsYXJnZS11cH0ge1xuICAgIC5jaGVja291dF9fc3RlcF9fY29udGVudHMsXG4gICAgLmNoZWNrb3V0X19zdGVwX19taXJyb3IsXG4gICAgLmFkZG9uX2J1dHRvbnMge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkY2hlY2tvdXQtbGFyZ2Utc3BhY2luZztcbiAgICB9XG59IiwiQGltcG9ydCBcImZvdW5kYXRpb24vY29tcG9uZW50cy9yZXZlYWxcIjtcbi8vQGltcG9ydCBcInF1aWNrZml4L2Z1bmN0aW9ucy9zYXNzLXN2Z1wiOyB0aGlzIGRvZXMgbm90IHdvcmsgb24gc2Fzc2Mgb24gb3VyIHNlcnZlciwgdXNlIGl0IHdoZW4geW91IG5lZWQgdG8gY2hhbmdlIHRoZSBiYXNlNjQgc3RyaW5nIGJ5IGhhbmRcblxuJGNoZWNrb3V0LWtjby1mb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCAnUm9ib3RvJywgJ094eWdlbicsICdVYnVudHUnLCAnQ2FudGFyZWxsJywgJ0ZpcmEgU2FucycsICdEcm9pZCBTYW5zJywgJ0hlbHZldGljYSBOZXVlJywgc2Fucy1zZXJpZiAhZGVmYXVsdDtcbiRjaGVja291dC1rY28tY2VsbC1wYWRkaW5nOiAuNXJlbSAuNzVyZW0gIWRlZmF1bHQ7XG4kY2hlY2tvdXQta2NvLXF0eS1oZWlnaHQ6IDJyZW0gIWRlZmF1bHQ7XG4kY2hlY2tvdXQta2NvLXJvdy1oZWlnaHQ6ICRjaGVja291dC1rY28tcXR5LWhlaWdodCArIG50aCgkY2hlY2tvdXQta2NvLWNlbGwtcGFkZGluZywgMSkgKiAyO1xuJGNoZWNrb3V0LWtjby1jYXJ0LWZvbnQtc2l6ZTogcmVtLWNhbGMoMTMpICFkZWZhdWx0O1xuJGNoZWNrb3V0LWtjby1jYXJ0LWxpbmUtaGVpZ2h0OiAxLjUgIWRlZmF1bHQ7XG4kY2hlY2tvdXQta2NvLWF0dHJpYnV0ZS1mbGFnLXNpemU6IHJlbS1jYWxjKDEwKSAhZGVmYXVsdDtcblxuJGNoZWNrb3V0LWtjby1rbGFybmEtZm9jdXMtY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCMwMDg5Y2YsICRjb250ZW50LWJnKSAhZGVmYXVsdDtcbiRjaGVja291dC1rY28tdGh1bWItaGVpZ2h0OiAkY2hlY2tvdXQta2NvLWNhcnQtZm9udC1zaXplICogJGNoZWNrb3V0LWtjby1jYXJ0LWxpbmUtaGVpZ2h0ICsgbnRoKCRjaGVja291dC1rY28tY2VsbC1wYWRkaW5nLCAxKSAqIDI7XG4kY2hlY2tvdXQta2NvLXRyYW5zaXRpb24tZHVyYXRpb246IDYwMG1zICFkZWZhdWx0O1xuJGNoZWNrb3V0LWtjby10cmFuc2l0aW9uLXRpbWluZzogZWFzZSAhZGVmYXVsdDtcbiRjaGVja291dC1rY28tb3ZlcmxheS1iZzogcmdiYShhY2Nlc3NpYmxlLWx1bWluYW5jZSgkY29udGVudC1iZywgJGNvbnRlbnQtYmcsIDUpLCAwLjUpICFkZWZhdWx0O1xuJGNoZWNrb3V0LWtjby1vdmVybGF5LWNvbG9yOiByZ2JhKGFjY2Vzc2libGUtbHVtaW5hbmNlKCRjaGVja291dC1rY28tb3ZlcmxheS1iZywgJGNoZWNrb3V0LWtjby1vdmVybGF5LWJnLCAyMSksIDEpICFkZWZhdWx0O1xuJGNoZWNrb3V0LWtjby1ib3JkZXItY29sb3I6IHJnYmEoJGNvbnRlbnQtdGV4dC1jb2xvciwgMC4yKSAhZGVmYXVsdDtcbiRjaGVja291dC1rY28tZGlzY291bnRfX3JhdGVfc3R5bGU6ICd0cmFuc3BhcmVudCcgIWRlZmF1bHQ7XG4kY2hlY2tvdXQta2NvLWFjdGl2ZS1ib3JkZXItY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRwcmltYXJ5LWNvbG9yLCAkY29udGVudC1iZykgIWRlZmF1bHQ7XG4kY2hlY2tvdXQta2NvLXJhZGlvLXNpemU6IDE0cHggIWRlZmF1bHQ7XG5cbi8vIFJlYWwgY2VsbCBwYWRkaW5nOiBTaXplIG9mIHRoZSBiaWdnZXN0IGVsZW1lbnQgcGx1cyBjZWxsIHBhZGRpbmcgbWludXMgYm9yZGVyIHNpemUsIG1pbnVzIHNpemUgb2YgdGV4dCwgZGl2aWRlZCBieSB0d29cbiRjaGVja291dC1rY28tcmVhbC1jZWxsLXBhZGRpbmc6ICgkY2hlY2tvdXQta2NvLXF0eS1oZWlnaHQgKyBudGgoJGNoZWNrb3V0LWtjby1jZWxsLXBhZGRpbmcsIDEpICogMiAtIHJlbS1jYWxjKDIpIC0gJGNoZWNrb3V0LWtjby1jYXJ0LWZvbnQtc2l6ZSAqICRjaGVja291dC1rY28tY2FydC1saW5lLWhlaWdodCkvMiBudGgoJGNoZWNrb3V0LWtjby1jZWxsLXBhZGRpbmcsIDIpIC0gcmVtLWNhbGMoMSk7XG5cbi8vIFZhcmlhYmxlcyB1c2VkIHRvIGNvbXBlbnNhdGUgZm9yIHBhZGRpbmcvbWFyZ2luIGluc2lkZSBLQ08gaWZyYW1lXG4ka2NvLXBhZGRpbmc6IDIwcHggMTJweCAyMHB4IDEycHg7XG4ka2NvLW1heC13aWR0aDogNjQwcHg7XG5cblxuJHNlbGVjdC1pbnB1dC1iZzogJHNlbGVjdC1iZy1jb2xvciAhZGVmYXVsdDtcbiRzZWxlY3QtaW5wdXQtYm9yZGVyLXJhZGl1czogM3B4ICFkZWZhdWx0O1xuJHNlbGVjdC1vcHRpb24tc2VsZWN0ZWQtY29sb3I6ICRpbnB1dC1mb250LWNvbG9yO1xuJHNlbGVjdC1vcHRpb24tc2VsZWN0ZWQtYmc6ICRzZWxlY3QtYmctY29sb3I7XG4kc2VsZWN0LW9wdGlvbi1mb2N1c2VkLWJnOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkcHJpbWFyeS1jb2xvciwgJHNlbGVjdC1pbnB1dC1iZywgMikgIWRlZmF1bHQ7XG4kc2VsZWN0LW9wdGlvbi1mb2N1c2VkLWNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSh3aGl0ZSwgJHNlbGVjdC1vcHRpb24tZm9jdXNlZC1iZywgMyk7XG4kc2VsZWN0LWlucHV0LWJvcmRlci13aWR0aDogMHB4O1xuXG5AaW1wb3J0IFwicXVpY2tmaXgvY29tcG9uZW50cy9yZWFjdC1zZWxlY3RcIjtcblxuQG1peGluIGFjdGl2aXR5LWluZGljYXRvcigkYWN0aXZpdHktY29sb3I6ICRjb250ZW50LWJnLCAkYWN0aXZpdHktYmc6ICRhY3Rpdml0eS1jb2xvcikge1xuXG4gICAgLyogV2UgY2Fubm90IHJ1biB0aGlzIHVzaW5nIHNhc3NjIHlldFxuICAgIEBpbmNsdWRlIHN2ZygoXG4gICAgICAgIHZpZXdCb3g6IDAgMCAyNCAyNFxuICAgICAgKSkge1xuICAgICAgICBAaW5jbHVkZSBzdmcoJ2RlZnMnKSB7XG4gICAgICAgICAgQGluY2x1ZGUgc3ZnKCdyYWRpYWxHcmFkaWVudCcsIChcbiAgICAgICAgICAgIGN4OiAnMjUlJyxcbiAgICAgICAgICAgIGN5OiAnMjUlJyxcbiAgICAgICAgICAgIGlkOiAnYSdcbiAgICAgICAgICApKSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgc3ZnKCdzdG9wJywgKFxuICAgICAgICAgICAgICAgICAgc3RvcC1jb2xvcjogJGFjdGl2aXR5LWNvbG9yLFxuICAgICAgICAgICAgICAgICAgb2Zmc2V0OiAnMTAlJ1xuICAgICAgICAgICAgICAgICkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHN2Zygnc3RvcCcsIChcbiAgICAgICAgICAgICAgICAgIHN0b3AtY29sb3I6ICRhY3Rpdml0eS1jb2xvcixcbiAgICAgICAgICAgICAgICAgIHN0b3Atb3BhY2l0eTogMC4xLFxuICAgICAgICAgICAgICAgICAgb2Zmc2V0OiAnMTAwJSdcbiAgICAgICAgICAgICAgICApKTtcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIEBpbmNsdWRlIHN2ZygnY2lyY2xlJywgKFxuICAgICAgICAgICAgZmlsbDogbm9uZSxcbiAgICAgICAgICAgIGN4OiAxMixcbiAgICAgICAgICAgIGN5OiAxMixcbiAgICAgICAgICAgIHI6IDEwLFxuICAgICAgICAgICAgLy9zdHJva2Utd2lkdGg6IDIsXG4gICAgICAgICAgICBzdHJva2U6IFwidXJsKCNhKVwiXG4gICAgICAgICkpO1xuICAgICAgfVxuICAgICAgLy8qL1xuICAgICAgJGNvbG9yOiBzdHItc2xpY2UoaWUtaGV4LXN0cigkYWN0aXZpdHktY29sb3IpLCA0KTtcbiAgICAgICRiZzogc3RyLXNsaWNlKGllLWhleC1zdHIoJGFjdGl2aXR5LWJnKSwgNCk7XG4gICAgICBjb250ZW50OiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGY4LCUzQ3N2ZyUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDI0JTIwMjQlMjIlMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3clMkV3MyUyRW9yZyUyRjIwMDAlMkZzdmclMjIlM0UlM0NkZWZzJTIwJTNFJTNDcmFkaWFsR3JhZGllbnQlMjBjeCUzRCUyMjI1JTI1JTIyJTIwY3klM0QlMjIyNSUyNSUyMiUyMGlkJTNEJTIyYSUyMiUzRSUzQ3N0b3AlMjBzdG9wJTJEY29sb3IlM0QlMjIlMjMjeyRjb2xvcn0lMjIlMjBvZmZzZXQlM0QlMjIxMCUyNSUyMiUyRiUzRSUzQ3N0b3AlMjBzdG9wJTJEY29sb3IlM0QlMjIlMjMjeyRiZ30lMjIlMjBzdG9wJTJEb3BhY2l0eSUzRCUyMjAlMkUxJTIyJTIwb2Zmc2V0JTNEJTIyMTAwJTI1JTIyJTJGJTNFJTNDJTJGcmFkaWFsR3JhZGllbnQlM0UlM0MlMkZkZWZzJTNFJTNDY2lyY2xlJTIwZmlsbCUzRCUyMm5vbmUlMjIlMjBjeCUzRCUyMjEyJTIyJTIwY3klM0QlMjIxMiUyMiUyMHIlM0QlMjIxMCUyMiUyMHN0cm9rZSUzRCUyMnVybCUyOCUyM2ElMjklMjIlMkYlM0UlM0MlMkZzdmclM0VcIik7XG59XG5cbiV0YWJ1bGFyLW51bXMge1xuICAgIC8vIHRhYnVsYXIgbnVtYmVyIHNwYWNpbmcgbWFrZXMgbnVtYmVycyBlYXNpZXIgdG8gcmVhZCBpbiB0YWJsZXNcbiAgICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zO1xuICAgIC1tb3otZm9udC1mZWF0dXJlLXNldHRpbmdzOiBcInRudW1cIjtcbiAgICAtd2Via2l0LWZvbnQtZmVhdHVyZS1zZXR0aW5nczogXCJ0bnVtXCI7XG4gICAgZm9udC1mZWF0dXJlLXNldHRpbmdzOiBcInRudW1cIjtcbn1cblxuJWRlY29yYXRlZC1yYWRpbyB7XG4gICAgJGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkcHJpbWFyeS1jb2xvciwgJGNvbnRlbnQtYmcpO1xuICAgIGlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuICAgIGlucHV0W3R5cGU9XCJyYWRpb1wiXSArIHNwYW4ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICY6YmVmb3JlLFxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcuJztcbiAgICAgICAgICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAgICAgICAgICAgY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAtKCRjaGVja291dC1rY28tcmFkaW8tc2l6ZS8yKTtcbiAgICAgICAgICAgIGxlZnQ6IC0oKCgkY29sdW1uLWd1dHRlcikgKyByZW0tY2FsYygkY2hlY2tvdXQta2NvLXJhZGlvLXNpemUpKS8yKTtcbiAgICAgICAgICAgIHdpZHRoOiAkY2hlY2tvdXQta2NvLXJhZGlvLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjaGVja291dC1rY28tcmFkaW8tc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMDBweDtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIDMwMG1zIGN1YmljLWJlemllcigwLjY1LCAwLjA1LCAwLjM2LCAxKSk7XG4gICAgICAgIH1cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHNjYWxlKDAuOCkpO1xuICAgICAgICB9XG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBibGFjayAwIDAgMXB4LCBpbnNldCBibGFjayAwIDAgMXB4O1xuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHNjYWxlKDEpKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpbnB1dFt0eXBlPVwicmFkaW9cIl06Y2hlY2tlZCArIHNwYW4ge1xuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0oc2NhbGUoMSkpO1xuICAgICAgICB9XG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHNjYWxlKDAuNCkpO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaHNsYSgwLCAwJSwgMCUsIDApIDAgMCAxcHgsIGluc2V0IGhzbGEoMCwgMCUsIDAlLCAwKSAwIDAgMXB4O1xuICAgICAgICB9XG4gICAgfVxuICAgIGlucHV0W3R5cGU9XCJyYWRpb1wiXVtkaXNhYmxlZF0gKyBzcGFuICY6YmVmb3JlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoZ3JheXNjYWxlKCRjb2xvciksIHdoaXRlKTtcbiAgICB9XG59XG5cbmZvcm06aW52YWxpZCB7XG4gICAgLmpzLWthc3NlLW9uZS1zdWJtaXQge1xuICAgICAgICAkYmc6IGFjY2Vzc2libGUtbHVtaW5hbmNlKGdyYXksICRjb250ZW50LWJnKTtcbiAgICAgICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKGdyYXksICRiZyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiZztcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTsgICAgICAgLyogSUUvRWRnZSAqL1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgb3BhY2l0eTogMC42O1xuICAgIH1cbn1cblxuLmNoZWNrb3V0X19zdGVwLS1zaGlwcGluZyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDI7XG59XG4uZnJlaWdodC0tcGlja3VwLXBvaW50IHtcbiAgICBjbGVhcjogYm90aDtcbn1cbi5TZWxlY3QtY29udHJvbCB7XG4gICAgLy8gQFRPRE8gcmV1c2Ugb3VyIHZhcmlhYmxlcyBzbyBpdCB3b3JrcyBpbiBhbGwgdGhlbWVzIGFuZCBhbnkgY29uZmlnIGxpa2UgPHNlbGVjdD5cbiAgICBmb250LXNpemU6ICRpbnB1dC1mb250LXNpemU7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICBtYXJnaW4tbGVmdDogMXB4O1xuICAgIG1hcmdpbi1yaWdodDogMXB4O1xuICAgIGJveC1zaGFkb3c6ICRpbnB1dC1ib3JkZXItY29sb3IgMCAwIDAgMXB4O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGJveC1zaGFkb3c6ICRpbnB1dC1ib3JkZXItY29sb3IgMCAwIDAgMXB4LCBoc2xhKDAsIDAlLCAwJSwgLjEpIDAgNXB4IDEwcHg7XG4gICAgfVxufVxuLlNlbGVjdC1vcHRpb24ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBmb250LXNpemU6ICRpbnB1dC1mb250LXNpemU7XG4gICAgcGFkZGluZy1sZWZ0OiAxLjZlbTtcbn1cbi5TZWxlY3Qtb3B0aW9uLmlzLXNlbGVjdGVkOmJlZm9yZSB7XG4gICAgY29udGVudDogJ+Kckyc7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjIpO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IHJlbS1jYWxjKDhweCk7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEuNmVtO1xufVxuLlNlbGVjdC1vcHRpb24uaXMtc2VsZWN0ZWQ6aG92ZXIge1xuICAgIGNvbG9yOiAkc2VsZWN0LW9wdGlvbi1mb2N1c2VkLWNvbG9yO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRzZWxlY3Qtb3B0aW9uLWZvY3VzZWQtYmc7XG59XG4uU2VsZWN0LW1lbnUtb3V0ZXIge1xuICAgIGJvcmRlci13aWR0aDogMHB4O1xuICAgIG1hcmdpbi1sZWZ0OiAxcHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAxcHg7XG59XG4uU2VsZWN0LW1lbnUge1xuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAzcHg7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogM3B4O1xuICAgIGJveC1zaGFkb3c6ICRpbnB1dC1ib3JkZXItY29sb3IgMCAwIDAgMXB4LCBoc2xhKDAsIDAlLCAwJSwgLjEpIDAgNXB4IDEwcHg7XG59XG5cbi5jaGVja291dC0ta2NvIC5qcy1hdHRhY2hfY29tbWVudCB7XG5cbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIEBpbmNsdWRlIGljb24oJGljb24tdmFyLWFkZCk7XG4gICAgfVxufVxuXG4ja2xhcm5hLWNoZWNrb3V0LWNvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1heC13aWR0aDogJGtjby1tYXgtd2lkdGggKyBudGgoJGtjby1wYWRkaW5nLCAyKSArIG50aCgka2NvLXBhZGRpbmcsIDQpOyAvLyBtYXggd2lkdGggKyBzaWRlIHBhZGRpbmdzXG4gICAgQGlmICRjb250ZW50LWJnICE9ICNmZmYge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIH1cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsgLy8ga2xhcm5hcyBpZnJhbWUgaXMgYWx3YXlzIHdoaXRlXG59XG5cbi5jaGVja291dC0ta2NvX19vdmVybGF5IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkY29udGVudC1iZywgJGNvbnRlbnQtYmcpO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIHotaW5kZXg6IDE7XG5cbiAgICAmLCAmICsgKiB7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybS1vcmlnaW4oNTAlIDAlKTtcbiAgICB9XG5cbiAgICBlbSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDE2KTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IHJlbS1jYWxjKDEwKTtcbiAgICAgICAgcmlnaHQ6IHJlbS1jYWxjKDEwKTtcbiAgICB9XG59XG5cbi5mcmVpZ2h0LW9wdGlvbiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgYm9yZGVyOiAxcHggcmdiYSgkY2hlY2tvdXQta2NvLWFjdGl2ZS1ib3JkZXItY29sb3IsIDAuNikgc29saWQ7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogLSgkY29sdW1uLWd1dHRlci80KTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJvdHRvbTogLSgkY29sdW1uLWd1dHRlci84KTtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHNjYWxlWCgwLjk4KSBzY2FsZVkoMC44KSk7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIDMwMG1zIGN1YmljLWJlemllcigwLjY1LCAwLjA1LCAwLjM2LCAxKSk7XG4gICAgfVxuICAgICYuYWN0aXZlIHtcbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybShzY2FsZVgoMSkgc2NhbGVZKDEpKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICA+IGxhYmVsIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBAZXh0ZW5kICVkZWNvcmF0ZWQtcmFkaW87XG4gICAgfVxuICAgICYuaW5hY3RpdmUge1xuICAgICAgICA+ICoge1xuICAgICAgICAgICAgb3BhY2l0eTogMC4zO1xuICAgICAgICB9XG4gICAgfVxufVxuLmtjb19zaGlwcGluZ19zaG93X21vcmVfb3B0aW9ucyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgICBtYXJnaW4tbGVmdDogM3B4O1xuICAgIHBhZGRpbmctYm90dG9tOiAuNXJlbTtcbiAgICBwYWRkaW5nLXRvcDogLjc1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMS41cmVtO1xufVxuXG4uY2hlY2tvdXQtLWtjb19fcGF5bWVudC1vcHRpb25zLCAuY3VzdG9tZXItdHlwZSB7XG4gICAgLmNvbnRyb2wtZ3JvdXAge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4ycmVtO1xuICAgICAgICBib3gtc2hhZG93LWJvdHRvbTogMCAxcHggMCAkY2hlY2tvdXQta2NvLWJvcmRlci1jb2xvcjtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgMTUwbXMgZWFzZSk7XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG4gICAgICAgIDpjaGVja2VkICsgbGFiZWwge1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyBPdmVycmlkZSBzdHVwaWQgaGFyZGNvZGVkIEZvdW5kYXRpb24gc3R5bGluZ1xuLnJldmVhbC1tb2RhbCB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMTZweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29udGVudC1iZztcblxuICAgIC5jbG9zZS1yZXZlYWwtbW9kYWwge1xuICAgICAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGNvbnRlbnQtYmcsICRjb250ZW50LWJnKTtcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoI2YwMCwgJGNvbnRlbnQtYmcpO1xuICAgICAgICB9XG4gICAgfVxuICAgIEBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XG4gICAgICBtaW4taGVpZ2h0OiBpbml0aWFsIWltcG9ydGFudDtcbiAgICB9XG59XG5cbi5jaGVja291dC0ta2NvX19wYWdlLWhlYWRlciB7XG4gICAgZm9udC1mYW1pbHk6ICRjaGVja291dC1rY28tZm9udC1mYW1pbHk7XG59XG5cbi5jaGVja291dC0ta2NvX19jdXN0b20taW50cm8ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW4tYm90dG9tOiAyZW07XG4gICAgQGV4dGVuZCAuYm9yZGVyZWQ7XG4gICAgQGV4dGVuZCAuYm9yZGVyZWQtLWJvdHRvbTtcblxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICB9XG59XG5cbi5jaGVja291dC0ta2NvIHtcbiAgICBmb250LWZhbWlseTogJGNoZWNrb3V0LWtjby1mb250LWZhbWlseTtcblxuICAgIC5wcmljZS1kaWZmIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIH1cbiAgICAuY3VycmVudC1wcmljZSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgb3BhY2l0eTogMC43NTtcbiAgICB9XG4gICAgLnBlbmRpbmctcHJpY2Uge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxZW07XG4gICAgICAgIGhlaWdodDogMWVtO1xuICAgIH1cblxuICAgIC5jaGVja291dF9fc3RlcF9faGVhZGxpbmUge1xuICAgICAgICBmb250LWZhbWlseTogJGNoZWNrb3V0LWtjby1mb250LWZhbWlseTtcbiAgICB9XG5cbiAgICAmLmNoZWNrb3V0X19zdGVwcyB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIH1cblxuICAgIC5jaGVja291dF9fc3RlcCB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAxcmVtO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMXJlbTtcbiAgICAgICAgQGV4dGVuZCAuYm9yZGVyZWQ7XG4gICAgICAgIEBleHRlbmQgLmJvcmRlcmVkLS1ib3R0b207XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jaGVja291dF9fYm90dG9tLXRvb2xiYXIgPiAuY29sdW1ucyB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNWVtO1xuICAgIH1cblxuICAgIC5jaGVja291dF9fc3RlcF9faGVhZGxpbmUge1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1hcmdpbjogMCAwIC41cmVtIDA7XG4gICAgICAgIHBhZGRpbmc6IDAgMCAuNXJlbSAwO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgfVxuXG4gICAgLmthc3NlX29uZV9zdGVwX251bWJlciB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuXG4gICAgLmFkZG9uX2J1dHRvbnMge1xuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgLmVkaXRfc3RlcCB7XG4gICAgICAgICAgICAkYmc6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRzZWNvbmRhcnktY29sb3IsICRjb250ZW50LWJnLCAxLjIpO1xuICAgICAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJnO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkc2Vjb25kYXJ5LWJ1dHRvbi1ib3JkZXItY29sb3IsICRjb250ZW50LWJnKTtcbiAgICAgICAgICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkc2Vjb25kYXJ5LWNvbG9yLCAkYmcsIDYpO1xuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgMzAwbXMgZWFzZSk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICRiZzogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJHNlY29uZGFyeS1jb2xvciwgJGNvbnRlbnQtYmcsIDIpO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiZztcbiAgICAgICAgICAgICAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJHNlY29uZGFyeS1jb2xvciwgJGJnLCA2KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBBcHBseSB0aGUgS0NPIHN0eWxpbmcsIHRvIG1ha2UgdGhpbmdzIGFwcGVhciBsaWtlIEtDT1xuICAgIC5jaGVja291dC1rY29fX2FkZHJlc3MtZm9ybSB7XG4gICAgICAgIGlucHV0LCBidXR0b24sIHNlbGVjdCB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgICAgIH1cbiAgICAgICAgLmNoZWNrb3V0LS1rY29fX3NoaXBwaW5nLWNvdW50cnkge1xuICAgICAgICAgICAgc2VsZWN0W2Rpc2FibGVkXSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGJ1dHRvbixcbiAgICAuYnV0dG9uLFxuICAgIGlucHV0W3R5cGU9XCJudW1iZXJcIl0sXG4gICAgLmVkaXRfc3RlcCB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICB9XG5cbiAgICBidXR0b24sXG4gICAgLmJ1dHRvbixcbiAgICBpbnB1dFt0eXBlPXN1Ym1pdF0sXG4gICAgLmVkaXRfc3RlcCB7XG4gICAgICAgICY6bm90KC5yZW1vdmVfcmFiYXR0KTpub3QoLnJlbW92ZV9naWZ0Y2FyZCkge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICBmb250LWZhbWlseTogJGNoZWNrb3V0LWtjby1mb250LWZhbWlseTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgcmdiYSgyNTUsMjU1LDI1NSwwLjEpLCBpbnNldCAwIC0zcHggMCByZ2JhKDAsMCwwLDAuMSksIDAgMnB4IDVweCByZ2JhKDAsMCwwLDAuMSk7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDNweCAwIHJnYmEoMCwwLDAsMC4xKTtcbiAgICAgICAgICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm5leHQtc3RlcC1idG4ge1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiAgICB9XG5cbiAgICAuZWRpdF9zdGVwIHtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxMyk7XG5cbiAgICAgICAgLmljb24tYWRkIHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjZyZW07IC8qIHRvIGZpeGVkIGEgbWVzc2VkIHVwIHJvdGF0ZSBhbmltYXRpb24gKi9cbiAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIDE1MG1zIGVhc2UpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5kaXNhYmxlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgb3BhY2l0eTogMC4zO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7ICAgICAgIC8qIElFL0VkZ2UgKi9cbiAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaW5wdXRbdHlwZT1cInRleHRcIl0sXG4gICAgaW5wdXRbdHlwZT1cIm51bWJlclwiXSxcbiAgICBpbnB1dFt0eXBlPVwidGVsXCJdLFxuICAgIGlucHV0W3R5cGU9XCJlbWFpbFwiXSB7XG4gICAgICAgICY6Zm9jdXMsICYuZm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGNoZWNrb3V0LWtjby1rbGFybmEtZm9jdXMtY29sb3I7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAxcHggMCBoc2xhKDAsIDAlLCAwJSwgMC4xNyksaW5zZXQgMCAxcHggM3B4IHJnYmEoMCwwLDAsMC4wNiksMCAwIDNweCAxcHggJGNoZWNrb3V0LWtjby1rbGFybmEtZm9jdXMtY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuemlwIHtcbiAgICAgICAgJjo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbiAgICAgICAgJjo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gICAgICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cbiAgICB9XG59XG4uY2hlY2tvdXQtLWtjb19fc2hpcHBpbmctemlwIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICBsYWJlbCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIG1hcmdpbi10b3A6IC0xLjEyNXJlbTtcbiAgICAgICAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgY29sb3I6IHJnYmEoJGlucHV0LWZvbnQtY29sb3IsIC41KTtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIGxlZnQ6IDVlbTtcbiAgICAgICAgbGVmdDogN2NoO1xuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtLW9yaWdpbig5MCUgNTAlKTtcbiAgICB9XG4gICAgaW5wdXQuaW52YWxpZDpub3QoOmZvY3VzKSB7XG4gICAgICAgICRjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoI2YwMCwgJGNvbnRlbnQtYmcpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkY29sb3I7XG4gICAgICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgjZjAwLCAkaW5wdXQtYmctY29sb3IpO1xuICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAxcHggMCBoc2xhKDAsIDAlLCAwJSwgMC4xNyksaW5zZXQgMCAxcHggM3B4IHJnYmEoMCwwLDAsMC4wNiksMCAwIDNweCAxcHggJGNvbG9yO1xuICAgIH1cbn1cblxuLy8gQ29tcGVuc2F0ZSBmb3IgdGhlIEtDTyB3aW5kb3cncyBwYWRkaW5nL21hcmdpblxuLmNoZWNrb3V0X19zdGVwLS1rY28td2luZG93IHtcbiAgICAmOm9ubHktY2hpbGQge1xuICAgICAgICAuY2hlY2tvdXRfX3N0ZXBfX2NvbnRlbnRzIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5rY28tcGF5bWVudC13cmFwcGVyLCAuYWx0ZXJuYXRlLXBheW1lbnQtd3JhcHBlciB7XG4gICAgbWluLWhlaWdodDogMzAwcHg7XG59XG4ua2NvLXBheW1lbnQtd3JhcHBlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyAvLyB0byBwb3NpdGlvbiBvdmVybGF5XG4gICAgbWFyZ2luOiAtMSpudGgoJGtjby1wYWRkaW5nLCAxKSAtMSpudGgoJGtjby1wYWRkaW5nLCAyKSAtMSpudGgoJGtjby1wYWRkaW5nLCAyKSAtMSpudGgoJGtjby1wYWRkaW5nLCA0KTsgLy8gQ29tcGVuc2F0ZSBmb3Iga2xhcm5hIHdpbmRvdyBwYWRkaW5nXG59XG5cbi5hbHRlcm5hdGUtcGF5bWVudC13cmFwcGVyIHtcbiAgICAuY2hlY2tvdXRfX3N0ZXBfX2hlYWRsaW5lIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IHJlbS1jYWxjKDkpO1xuICAgIH1cbn1cblxuLmNoZWNrb3V0X19zdGVwcy0taWNvbml6ZWQge1xuICAgIC5rYXNzZV9vbmVfc3RlcF9udW1iZXIge1xuICAgICAgICB3aWR0aDogMi41cmVtO1xuICAgICAgICBoZWlnaHQ6IDIuNXJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDIuNXJlbTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDEuMjVyZW07XG4gICAgICAgIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDVweCByZ2JhKDAsMCwwLC41KTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA3cHg7XG4gICAgICAgICAgICBsZWZ0OiA3cHg7XG4gICAgICAgICAgICByaWdodDogN3B4O1xuICAgICAgICAgICAgYm90dG9tOiA3cHg7XG4gICAgICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICB9XG4gICAgICAgIC5pY29uLWxvYWRpbmctaW5kaWNhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDBweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaSB7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAwIDVweCByZ2JhKDAsMCwwLC41KTtcbiAgICAgICAgICAgIGNvbG9yOiAkY29udGVudC1iZztcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jaGVja291dF9fc3RlcF9faGVhZGxpbmUge1xuICAgICAgICBsaW5lLWhlaWdodDogMi41cmVtO1xuICAgIH1cbn1cblxuLmNoZWNrb3V0LS1rY29fX3dyYXBwZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIG1pbi1oZWlnaHQ6IDIxMHB4O1xuICAgIG1pbi1oZWlnaHQ6IDUwdmg7XG5cbiAgICAuYWN0aXZpdHktaW5kaWNhdG9yIHtcbiAgICAgICAgJHNpemU6IDM4cHg7XG4gICAgICAgICRiZzogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJHByaW1hcnktY29sb3IsICRjb250ZW50LWJnKTtcblxuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgLW1zLXVzZXItc2VsZWN0OiBub25lOyAgICAgICAvKiBJRS9FZGdlICovXG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgei1pbmRleDogMzAwO1xuICAgICAgICBoZWlnaHQ6ICRzaXplO1xuICAgICAgICB3aWR0aDogJHNpemU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMDBweDtcbiAgICAgICAgYm94LXNoYWRvdzogcmdiYSgwLCAwLCAwLCAwLjUpIDAgMCAxcHgsIHJnYmEoMCwgMCwgMCwgMC4zKSAwIDJweCA2cHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiZztcbiAgICAgICAgcGFkZGluZzogNHB4O1xuICAgICAgICB6LWluZGV4OiA0MDA7XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2l6ZSAvIDI7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNpemUgLyAyO1xuXG4gICAgICAgIHdpbGwtY2hhbmdlOiBvcGFjaXR5LCB0cmFuc2Zvcm07XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybShzY2FsZSgwLjYpKTtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgMzAwbXMgY3ViaWMtYmV6aWVyKC42NSwuMDUsLjM2LDEpKTtcblxuICAgICAgICAuc3ZnIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBAaW5jbHVkZSBhbmltYXRpb24oYWN0aXZpdHktcm90YXRlIDYwMG1zIGxpbmVhciBpbmZpbml0ZSk7XG5cbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBhY3Rpdml0eS1pbmRpY2F0b3IoJGNvbnRlbnQtYmcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJiArIGRpdiB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKG9wYWNpdHkgMzAwbXMgY3ViaWMtYmV6aWVyKC42NSwuMDUsLjM2LDEpKTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLmlzLWxvYWRpbmcsXG4gICAgJi5pcy11cGxvYWRpbmcge1xuICAgICAgICBjdXJzb3I6IHByb2dyZXNzO1xuXG4gICAgICAgIC5hY3Rpdml0eS1pbmRpY2F0b3Ige1xuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHNjYWxlKDEpKTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG5cbiAgICAgICAgICAgICYgKyBkaXYge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24ob3BhY2l0eSAzMDAwbXMgZWFzZS1vdXQpO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTsgICAgICAgLyogSUUvRWRnZSAqL1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuMjU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5rYXNzZV9vbmVfc3RlcF9udW1iZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi8vIEBUT0RPIHdlIG1pZ2h0IHdhbnQgdG8gcmV1c2UgdGhpcyBvdGhlciBwbGFjZXMgaW4gdGhlIGZ1dHVyZVxuLmljb24tbG9hZGluZy1pbmRpY2F0b3IuaXMtbG9hZGluZyB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgaGVpZ2h0OiAxZW07XG4gICAgICAgIHdpZHRoOiAxZW07XG4gICAgICAgIG1hcmdpbjogLjNlbTtcblxuICAgICAgICBAaW5jbHVkZSBhY3Rpdml0eS1pbmRpY2F0b3IoYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGNvbnRlbnQtYmcsICRzdGVwLW51bWJlci1iZyksICRjb250ZW50LWJnKTtcbiAgICB9XG4gICAgQGluY2x1ZGUgYW5pbWF0aW9uKGFjdGl2aXR5LXJvdGF0ZSA2MDBtcyBsaW5lYXIgaW5maW5pdGUpO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAvKndpZHRoOiAycmVtO1xuICAgIHdpZHRoOiByZW0tY2FsYygyNCk7XG4gICAgaGVpZ2h0OiAycmVtO1xuICAgIGhlaWdodDogcmVtLWNhbGMoMjQpO1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDEyKTtcbiAgICBsaW5lLWhlaWdodDogMnJlbTtcbiAgICBsaW5lLWhlaWdodDogcmVtLWNhbGMoMjQpO1xuICAgICovXG59XG5cbnRhYmxlLmNoZWNrb3V0LS1rY29fX2NhcnQge1xuXG4gICAgLy8gYm94LXNoYWRvdzogMCAwIDFyZW0gcmdiYSgwLDAsMCwwLjEpO1xuICAgIG91dGxpbmU6IDFweCBzb2xpZCByZ2JhKCRjb250ZW50LXRleHQtY29sb3IsIDAuMSk7XG5cbiAgICB0aCxcbiAgICB0ZCB7XG4gICAgICAgIGZvbnQtc2l6ZTogJGNoZWNrb3V0LWtjby1jYXJ0LWZvbnQtc2l6ZTtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRjaGVja291dC1rY28tY2FydC1saW5lLWhlaWdodDtcbiAgICAgICAgcGFkZGluZzogJGNoZWNrb3V0LWtjby1jZWxsLXBhZGRpbmc7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoJGNvbnRlbnQtdGV4dC1jb2xvciwgMC4wNSk7XG5cbiAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItbGVmdDogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYucHJpY2Uge1xuICAgICAgICAgICAgQGV4dGVuZCAldGFidWxhci1udW1zO1xuXG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgd2lkdGg6IDFweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHRoZWFkIHRoIHtcbiAgICAgICAgYm94LXNoYWRvdzogMCAzcHggMCByZ2JhKDAsMCwwLDAuMDQpO1xuICAgICAgICBwYWRkaW5nOiAuNzVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKCRjb250ZW50LXRleHQtY29sb3IsIDAuMDUpO1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgjZmZmLCAwLjUpO1xuICAgIH1cblxuICAgIHRib2R5IHRyOmxhc3QtY2hpbGQgdGQge1xuICAgICAgICBib3gtc2hhZG93OiAwIDNweCAwIHJnYmEoMCwwLDAsMC4wMik7XG4gICAgfVxuXG4gICAgdGZvb3Quc3VtIHRkIHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoI2ZmZiwgMC41KTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAzcHggMCByZ2JhKDAsMCwwLDAuMDQpO1xuICAgIH1cblxuICAgIC5taW5pLWltZyB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHdpZHRoOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuXG4gICAgICAgIGltZyB7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjaGVja291dC1rY28tdGh1bWItaGVpZ2h0O1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmRpc2NvdW50LFxuICAgIC5zaGlwcGluZyxcbiAgICAuZ2lmdGNhcmQge1xuICAgICAgICAubWluaS1pbWcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgW2NsYXNzXj1cImljb24tXCJdIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogbnRoKCRjaGVja291dC1rY28tY2VsbC1wYWRkaW5nLCAyKTtcbiAgICAgICAgICAgICAgICB0b3A6IDFweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5wcm9kdWN0LW5hbWUge1xuICAgICAgICAgICAgdGV4dC1pbmRlbnQ6IG50aCgkY2hlY2tvdXQta2NvLWNlbGwtcGFkZGluZywgMikgKiAyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmRpc2NvdW50X19yYXRlIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDExKTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtYXJnaW46IHJlbS1jYWxjKC02IDYgMCA2KTtcbiAgICAgICAgcGFkZGluZzogcmVtLWNhbGMoMiA1KTtcblxuICAgICAgICBAaWYgJGNoZWNrb3V0LWtjby1kaXNjb3VudF9fcmF0ZV9zdHlsZSA9PSAnc29saWQnIHtcbiAgICAgICAgICAgIGNvbG9yOiAkY29udGVudC1iZztcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRjYWxsLXRvLWFjdGlvbi1jb2xvciwgJGNvbnRlbnQtYmcpO1xuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICRkaXNjb3VudF9fcmF0ZV9jb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGNhbGwtdG8tYWN0aW9uLWNvbG9yLCAkY29udGVudC1iZykgIWRlZmF1bHQ7XG4gICAgICAgICAgICBjb2xvcjogJGRpc2NvdW50X19yYXRlX2NvbG9yO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkZGlzY291bnRfX3JhdGVfY29sb3IsIDAuMjUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmF0dHJpYnV0ZXMge1xuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIH1cblxuICAgIC5wcm9kdWN0LW5hbWUge1xuICAgICAgICBib3JkZXItbGVmdDogbm9uZTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyAvLyBuZWNlc3NhcnkgZm9yIHRoZSBhdHRyaWJ1dGVzIHBvcHVwXG4gICAgfVxuXG4gICAgLmNoZWNrb3V0X19xdHkge1xuICAgICAgICBoZWlnaHQ6ICRjaGVja291dC1rY28tcXR5LWhlaWdodDtcbiAgICAgICAgcGFkZGluZzogLjI1cmVtIDAgLjI1cmVtIC4yNXJlbTtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBAZXh0ZW5kICV0YWJ1bGFyLW51bXM7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIDMwMG1zIGVhc2UpO1xuXG4gICAgICAgICYucHJpbWFyeS1jb2xvci1iZzpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IDAgaHNsYSgwLCAwJSwgMCUsIDAuMTcpLGluc2V0IDAgMXB4IDNweCByZ2JhKDAsMCwwLDAuMDYpLDAgMCAzcHggMXB4ICRwcmltYXJ5LWNvbG9yO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnN1YnRheGVzIHtcbiAgICAgICAgb3BhY2l0eTogMC42O1xuICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgfVxuXG4gICAgLnNlcnZpY2UsXG4gICAgLmRpc2NvdW50LFxuICAgIC5naWZ0Y2FyZCxcbiAgICAuc2hpcHBpbmcge1xuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gICAgICAgICAgICBib3JkZXItbGVmdDogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmNoZWNrb3V0LS1rY29fX2ZyZWlnaHQtcHJvdGlwIHtcbiAgICAkYmc6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRjb250ZW50LWJnLCAkY29udGVudC1iZywgMS4xKTtcbiAgICAkY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRiZywgJGJnKTtcbiAgICBib3R0b206IDEwMCU7XG5cbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmc7XG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgIG1hcmdpbi1ib3R0b206IC0wLjVyZW07XG4gICAgcGFkZGluZzogNHB4IDdweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICBzdHJvbmcge1xuICAgICAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGJnLCAkYmcsIDYpO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIH1cblxuICAgICY6YWZ0ZXIge1xuICAgICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoNnB4LCAkYmcsIHRvcCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICBsZWZ0OiA4cHg7XG4gICAgfVxufVxuXG4gLmNoZWNrb3V0LS1rY29fX3BheW1lbnQtbm90aWNlIHtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbi5jaGVja291dF9fcHJvZHVjdC1uYW1lLXdyYXAge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5wcm9kdWN0LW5hbWUtLWhhcy1hdHRyaWJ1dGVzIHtcbiAgICAmOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAyO1xuICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgICAgICBib3JkZXItd2lkdGg6IDAgJGNoZWNrb3V0LWtjby1hdHRyaWJ1dGUtZmxhZy1zaXplICRjaGVja291dC1rY28tYXR0cmlidXRlLWZsYWctc2l6ZSAwO1xuICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRjYWxsLXRvLWFjdGlvbi1jb2xvciwgJGNvbnRlbnQtYmcpIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgIH1cblxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG5cbiAgICAgICAgLmNoZWNrb3V0X19wcm9kdWN0LW5hbWUtd3JhcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6IDM7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nOiAkY2hlY2tvdXQta2NvLXJlYWwtY2VsbC1wYWRkaW5nO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgaWYoJGNvbnRlbnQtYmctaXMtZGFyaywgbGlnaHRlbigkY29udGVudC1iZywgNCUpLCBkYXJrZW4oJGNvbnRlbnQtYmcsIDQlKSk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkY29udGVudC1iZztcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAxMHB4IHJnYmEoMCwwLDAsMC4xKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmNoZWNrb3V0LS1rY29fX2NvcnBvcmF0ZS1saW5rIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xufVxuXG4uY2hlY2tvdXQtLWtjb19fa2VlcC1zaG9wcGluZyB7XG4gICAgbWFyZ2luLWxlZnQ6IC41cmVtO1xufVxuXG4uY2hlY2tvdXQtLWtjb19fcGF5bWVudC1ub3RpY2Uge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmctdG9wOiByZW0tY2FsYyg3KTtcbiAgICBwYWRkaW5nLWJvdHRvbTogcmVtLWNhbGMoNyk7XG59XG5cbi5rY29fc2hpcHBpbmdfb3B0aW9ucyB7XG4gICAgbWFyZ2luLXRvcDogJGNvbHVtbi1ndXR0ZXIvNDtcbiAgICBtYXJnaW4tYm90dG9tOiAkY29sdW1uLWd1dHRlci80O1xuICAgIC5mcmVpZ2h0LW9wdGlvbiB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG5cbiAgICAgICAgbGFiZWwge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206ICRjb2x1bW4tZ3V0dGVyLzI7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogJGNvbHVtbi1ndXR0ZXIvMjtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogKCRjb2x1bW4tZ3V0dGVyLzIpICsgcmVtLWNhbGMoJGNoZWNrb3V0LWtjby1yYWRpby1zaXplKTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRjb2x1bW4tZ3V0dGVyLzI7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5jaGVja291dF9fcGF5bWVudC1tZXRob2RzLWxpc3Qge1xuICAgID4gOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogKCRjb2x1bW4tZ3V0dGVyLzgpO1xuICAgIH1cbiAgICAkYm9yZGVyLWNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkcHJpbWFyeS1jb2xvciwgJGNvbnRlbnQtYmcpO1xuXG4gICAgbGlzdC1zdHlsZTogbm9uZTtcblxuICAgIC5wYXltZW50LW1ldGhvZCB7XG4gICAgICAgICY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGJveC1zaGFkb3cgMzAwbXMgY3ViaWMtYmV6aWVyKDAuNjUsIDAuMDUsIDAuMzYsIDEpKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgLTFweCAwIHJnYmEoJGNoZWNrb3V0LWtjby1ib3JkZXItY29sb3IsIDApO1xuICAgICAgICAgICAgJjpmaXJzdC1vZi10eXBlOm5vdCgucGF5bWVudC1tZXRob2QtLWFjdGl2ZSkge1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgLTFweCAwICRjaGVja291dC1rY28tYm9yZGVyLWNvbG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgZGlzcGxheTogYmxvY2s7IC8vIERvIG5vdCB1c2UgaW5saW5lLWJsb2NrLCBpdCBjYXVzZXMgaXJyaXRhdGluZyB3aGl0ZS1zcGFjZVxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHJnYmEoJGNoZWNrb3V0LWtjby1hY3RpdmUtYm9yZGVyLWNvbG9yLCAwLjYpIHNvbGlkO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkY29udGVudC1iZztcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAtKCRjb2x1bW4tZ3V0dGVyLzgpO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgYm90dG9tOiAtKCRjb2x1bW4tZ3V0dGVyLzgpO1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybShzY2FsZVgoMC45OCkgc2NhbGVZKDAuOCkpO1xuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgMzAwbXMgY3ViaWMtYmV6aWVyKDAuNjUsIDAuMDUsIDAuMzYsIDEpKTtcbiAgICAgICAgfVxuICAgICAgICAmLnBheW1lbnQtbWV0aG9kLS1hY3RpdmUge1xuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHNjYWxlWCgxKSBzY2FsZVkoMSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgbGFiZWwge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICgkY29sdW1uLWd1dHRlci8yKSArIHJlbS1jYWxjKCRjaGVja291dC1rY28tcmFkaW8tc2l6ZSk7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkY29sdW1uLWd1dHRlcjtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAkY29sdW1uLWd1dHRlci80O1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206ICRjb2x1bW4tZ3V0dGVyLzQ7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBAZXh0ZW5kICVkZWNvcmF0ZWQtcmFkaW87XG5cbiAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAgIGhlaWdodDogcmVtLWNhbGMoMjIpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaW5wdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpbWcge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxNTBweDtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcHg7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMnJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIG1hcmdpbi1yaWdodDogLjVyZW07XG4gICAgfVxufVxuLmNoZWNrb3V0X19wYXltZW50LW1ldGhvZHMtcHJlZml4LCAucGF5bWVudC1tZXRob2Qge1xuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTUpO1xufVxuLmNoZWNrb3V0LS1rY29fX2FsdGVybmF0ZS1wYXltZW50IHtcbiAgICBpbnB1dC5jaGVjay12YWxpZGl0eTppbnZhbGlkOm5vdCg6Zm9jdXMpLCBpbnB1dC5jaGVjay12YWxpZGl0eS5pbnZhbGlkOm5vdCg6Zm9jdXMpIHtcbiAgICAgICAgJGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgjZjAwLCAkY29udGVudC1iZyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvcjtcbiAgICAgICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCNmMDAsICRpbnB1dC1iZy1jb2xvcik7XG4gICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDFweCAwIGhzbGEoMCwgMCUsIDAlLCAwLjE3KSxpbnNldCAwIDFweCAzcHggcmdiYSgwLDAsMCwwLjA2KSwwIDAgM3B4IDFweCAkY29sb3I7XG4gICAgfVxufVxuXG4vLyBAVE9ETyBuZWVkcyBtb3JlIHdvcmtcbi8vQG1lZGlhICN7JHNtYWxsLXBsdXMtZG93bn0ge1xuLy8gICAgLy8gRGlzYWJsZSBpT1MgdGV4dCBpbnB1dCB6b29tLCBpT1MgOSBjaGFuZ2VkIGZvbnQtc2l6ZSBmcm9tIDE2cHggdG8gMjJweFxuLy8gICAgLmNoZWNrb3V0LS1rY28ge1xuLy8gICAgICAgIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxuLy8gICAgICAgIGlucHV0W3R5cGU9XCJlbWFpbFwiXSxcbi8vICAgICAgICBpbnB1dFt0eXBlPVwidGVsXCJdLFxuLy8gICAgICAgIHNlbGVjdCB7XG4vLyAgICAgICAgICAgIHBhZGRpbmc6IDAuMnJlbSAwLjVyZW07XG4vLyAgICAgICAgfVxuLy8gICAgICAgIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxuLy8gICAgICAgIGlucHV0W3R5cGU9XCJlbWFpbFwiXSxcbi8vICAgICAgICBpbnB1dFt0eXBlPVwidGVsXCJdLFxuLy8gICAgICAgIGlucHV0W3R5cGU9XCJudW1iZXJcIl0sXG4vLyAgICAgICAgc2VsZWN0IHtcbi8vICAgICAgICAgICAgZm9udC1zaXplOiAyMnB4O1xuLy8gICAgICAgIH1cbi8vICAgIH1cbi8vfVxuLmtjby1wYXltZW50LXdyYXBwZXIge1xuICAgIG1hcmdpbi10b3A6IDA7XG59XG5cbkBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XG4gICAgLmNoZWNrb3V0X19ib3R0b20tdG9vbGJhci1yaWdodCB7XG4gICAgICAgIGJ1dHRvbi5qcy1jaGVja291dF91cGRhdGUge1xuICAgICAgICAgICAgdG9wOiAtKCRjb2x1bW4tZ3V0dGVyLzIpIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuY2hlY2tvdXRfX3BheW1lbnQtbWV0aG9kcy1saXN0IHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAkY29sdW1uLWd1dHRlci8yO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkY29sdW1uLWd1dHRlci8yO1xuICAgIH1cbn1cblxuQG1lZGlhICN7JHNtYWxsLXBsdXMtdXB9IHtcbiAgICAuY2hlY2tvdXQtLWtjb19fcGF5bWVudCAuY29udHJvbC1ncm91cCB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbiAgICAvLyBAVE9ETyB3aHkgaXMgdGhpcyBrY29zP1xuICAgIC5jaGVja291dC0ta2NvcyB7XG4gICAgICAgIC5hZGRvbl9idXR0b25zIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogcmVtLWNhbGMoNykgKyAxcmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG5cbiAgICAgICAgICAgIC5lZGl0X3N0ZXAuZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jayFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAucm93IC5yb3cuY2hlY2tvdXQta2NvX19hZGRyZXNzLWZvcm0ge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkY29sdW1uLWd1dHRlci8yO1xuICAgIH1cbiAgICAucm93IC5jaGVja291dC0ta2NvX19mcmVpZ2h0LW9wdGlvbnMge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6ICRjb2x1bW4tZ3V0dGVyLzI7XG4gICAgfVxuICAgIC5jaGVja291dC0ta2NvX19mcmVpZ2h0IHtcbiAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMXB4IDAgMCAkY2hlY2tvdXQta2NvLWJvcmRlci1jb2xvcjtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJGNvbHVtbi1ndXR0ZXIvMjtcbiAgICB9XG4gICAgLmNoZWNrb3V0LS1rY29fX3BheW1lbnQtYWx0ZXJuYXRpdmVzIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6ICRjb2x1bW4tZ3V0dGVyLzI7XG4gICAgICAgIG1hcmdpbi1yaWdodDogKCRjb2x1bW4tZ3V0dGVyLzIpO1xuICAgIH1cbiAgICAuY2hlY2tvdXRfX3BheW1lbnQtbWV0aG9kcy1saXN0IHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAkY29sdW1uLWd1dHRlci8yO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkY29sdW1uLWd1dHRlci8yO1xuICAgIH1cblxuICAgIC5jaGVja291dC0ta2NvIHtcbiAgICAgICAgLmFkZG9uX2J1dHRvbnMge1xuICAgICAgICAgICAgdG9wOiByZW0tY2FsYyg2KSArIDFyZW07XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkY29sdW1uLWd1dHRlcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHRhYmxlLmNoZWNrb3V0LS1rY29fX2NhcnQge1xuICAgICAgICAubWluaS1pbWcge1xuICAgICAgICAgICAgd2lkdGg6IDc1cHg7XG4gICAgICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuXG4gICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5kaXNjb3VudCxcbiAgICAgICAgLnNoaXBwaW5nLFxuICAgICAgICAuZ2lmdGNhcmQge1xuICAgICAgICAgICAgLm1pbmktaW1nIHtcbiAgICAgICAgICAgICAgICBbY2xhc3NePVwiaWNvbi1cIl0ge1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5wcm9kdWN0LW5hbWUge1xuICAgICAgICAgICAgICAgIHRleHQtaW5kZW50OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLnByb2R1Y3QtbmFtZSB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jaGVja291dF9fc3RlcF9fY29udGVudHMge1xuICAgICAgICBwYWRkaW5nOiAwIDEuMjVyZW0gMCAxLjI1cmVtO1xuICAgIH1cblxuICAgIC5jaGVja291dC0ta2NvX19vdmVybGF5IHtcbiAgICAgICAgbGVmdDogMS44MTI1cmVtO1xuICAgIH1cblxuICAgIC5jaGVja291dC0ta2NvX19wYXltZW50IHtcbiAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgJGNvbnRlbnQtYmcgMCAzMHB4IDAsIGluc2V0ICRjb250ZW50LWJnIDAgLTMwcHggMCwgaW5zZXQgJGNoZWNrb3V0LWtjby1ib3JkZXItY29sb3IgMXB4IDFweCAwO1xuICAgIH1cbiAgICAua2NvLXBheW1lbnQtYm9yZGVyZWQtd3JhcHBlciB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAuNXJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLTEuMTVyZW07XG4gICAgICAgIG1pbi1oZWlnaHQ6IDMwMHB4O1xuICAgIH1cblxuICAgIC5rY28tcGF5bWVudC13cmFwcGVyLCAuYWx0ZXJuYXRlLXBheW1lbnQtd3JhcHBlciB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDMwMHB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29udGVudC1iZztcbiAgICAgICAgbWFyZ2luOjA7XG4gICAgfVxuXG4gICAgLmFsdGVybmF0ZS1wYXltZW50LXdyYXBwZXIge1xuICAgICAgICBtYXJnaW4tdG9wOiAtMS41cmVtO1xuICAgICAgICAuY2hlY2tvdXRfX3N0ZXBfX2hlYWRsaW5lIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IC0ycmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoNSk7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogcmVtLWNhbGMoOSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5qcy1hdHRhY2hfY29tbWVudCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG4uY2hlY2tvdXRfX2JvdHRvbS10b29sYmFyLXJpZ2h0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICBidXR0b24uanMtY2hlY2tvdXRfdXBkYXRlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDBweDtcbiAgICAgICAgcmlnaHQ6ICRjb2x1bW4tZ3V0dGVyLzI7XG4gICAgfVxufVxuLmNoZWNrb3V0LS1rY29fX2ZyZWlnaHQtb3B0aW9ucyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1pbi1oZWlnaHQ6IDZyZW07XG4gICAgbWFyZ2luLXRvcDogMDtcbn1cblxuXG5AbWVkaWEgI3skbGFyZ2UtdXB9IHtcbiAgICAucm93IC5yb3cuY2hlY2tvdXQta2NvX19hZGRyZXNzLWZvcm0sIC5jaGVja291dF9fcGF5bWVudC1tZXRob2RzLWxpc3Qge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkY29sdW1uLWd1dHRlcjtcbiAgICB9XG4gICAgLnJvdyAuY2hlY2tvdXQtLWtjb19fZnJlaWdodC1vcHRpb25zLCAuYWx0ZXJuYXRlLXBheW1lbnQtd3JhcHBlciB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogJGNvbHVtbi1ndXR0ZXI7XG4gICAgfVxuXG4gICAgLnN1Ym1pdC1mcmVpZ2h0LWRldGFpbHMge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAuY2hlY2tvdXQtLWtjb19fY29ycG9yYXRlLWxpbmsge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBpbXBvcnQgXCJnbG9iYWxcIjtcbkBpbXBvcnQgXCJncmlkXCI7XG5cbi8vXG4vLyBAbmFtZSBfcmV2ZWFsLnNjc3Ncbi8vIEBkZXBlbmRlbmNpZXMgX2dsb2JhbC5zY3NzXG4vL1xuXG4kaW5jbHVkZS1odG1sLXJldmVhbC1jbGFzc2VzOiAkaW5jbHVkZS1odG1sLWNsYXNzZXMgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIHRoZSBzdHlsZSBvZiB0aGUgcmV2ZWFsIG92ZXJsYXkuXG4kcmV2ZWFsLW92ZXJsYXktYmc6IHJnYmEoJGJsYWNrLCAuNDUpICFkZWZhdWx0O1xuJHJldmVhbC1vdmVybGF5LWJnLW9sZDogJGJsYWNrICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCB0aGUgc3R5bGUgb2YgdGhlIG1vZGFsIGl0c2VsZi5cbiRyZXZlYWwtbW9kYWwtYmc6ICR3aGl0ZSAhZGVmYXVsdDtcbiRyZXZlYWwtcG9zaXRpb24tdG9wOiByZW0tY2FsYygxMDApICFkZWZhdWx0O1xuJHJldmVhbC1kZWZhdWx0LXdpZHRoOiA4MCUgIWRlZmF1bHQ7XG4kcmV2ZWFsLW1heC13aWR0aDogJHJvdy13aWR0aCAhZGVmYXVsdDtcbiRyZXZlYWwtbW9kYWwtcGFkZGluZzogcmVtLWNhbGMoMjApICFkZWZhdWx0O1xuJHJldmVhbC1ib3gtc2hhZG93OiAwIDAgMTBweCByZ2JhKCRibGFjaywuNCkgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBzdHlsZSB0aGUgcmV2ZWFsIGNsb3NlIGJ1dHRvblxuJHJldmVhbC1jbG9zZS1mb250LXNpemU6IHJlbS1jYWxjKDQwKSAhZGVmYXVsdDtcbiRyZXZlYWwtY2xvc2UtdG9wOiByZW0tY2FsYygxMCkgIWRlZmF1bHQ7XG4kcmV2ZWFsLWNsb3NlLXNpZGU6IHJlbS1jYWxjKDIyKSAhZGVmYXVsdDtcbiRyZXZlYWwtY2xvc2UtY29sb3I6ICRiYXNlICFkZWZhdWx0O1xuJHJldmVhbC1jbG9zZS13ZWlnaHQ6ICRmb250LXdlaWdodC1ib2xkICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhpcyB0byBzZXQgdGhlIGRlZmF1bHQgcmFkaXVzIHVzZWQgdGhyb3VnaG91dCB0aGUgY29yZS5cbiRyZXZlYWwtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcbiRyZXZlYWwtcm91bmQ6ICRnbG9iYWwtcm91bmRlZCAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgdGhlIG1vZGFsIGJvcmRlclxuJHJldmVhbC1ib3JkZXItc3R5bGU6IHNvbGlkICFkZWZhdWx0O1xuJHJldmVhbC1ib3JkZXItd2lkdGg6IDFweCAhZGVmYXVsdDtcbiRyZXZlYWwtYm9yZGVyLWNvbG9yOiAkc3RlZWwgIWRlZmF1bHQ7XG5cbiRyZXZlYWwtbW9kYWwtY2xhc3M6IFwicmV2ZWFsLW1vZGFsXCIgIWRlZmF1bHQ7XG4kY2xvc2UtcmV2ZWFsLW1vZGFsLWNsYXNzOiBcImNsb3NlLXJldmVhbC1tb2RhbFwiICFkZWZhdWx0O1xuXG4vLyBTZXQgYmFzZSB6LWluZGV4XG4kei1pbmRleC1iYXNlOiAxMDA1O1xuXG4vL1xuLy8gQG1peGluc1xuLy9cblxuLy8gV2UgdXNlIHRoaXMgdG8gY3JlYXRlIHRoZSByZXZlYWwgYmFja2dyb3VuZCBvdmVybGF5IHN0eWxlc1xuQG1peGluIHJldmVhbC1iZyggJGluY2x1ZGUtei1pbmRleC12YWx1ZTogdHJ1ZSApIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICAvLyBwb3NpdGlvbjogYWJzb2x1dGU7IC8vIGFsbG93cyBtb2RhbCBiYWNrZ3JvdW5kIHRvIGV4dGVuZCBiZXlvbmQgd2luZG93IHBvc2l0aW9uXG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgYmFja2dyb3VuZDogJHJldmVhbC1vdmVybGF5LWJnLW9sZDsgLy8gQXV0b3ByZWZpeGVyIHNob3VsZCBiZSB1c2VkIHRvIGF2b2lkIHN1Y2ggdmFyaWFibGVzIG5lZWRlZCB3aGVuIEZvdW5kYXRpb24gZm9yIFNpdGVzIGNhbiBkbyBzbyBpbiB0aGUgbmVhciBmdXR1cmUuXG4gIGJhY2tncm91bmQ6ICRyZXZlYWwtb3ZlcmxheS1iZztcbiAgei1pbmRleDogaWYoICRpbmNsdWRlLXotaW5kZXgtdmFsdWUsICR6LWluZGV4LWJhc2UgLSAxLCBhdXRvICk7XG4gIGRpc3BsYXk6IG5vbmU7XG4gICN7JGRlZmF1bHQtZmxvYXR9OiAwO1xufVxuXG4vLyBXZSB1c2UgdGhpcyBtaXhpbiB0byBjcmVhdGUgdGhlIHN0cnVjdHVyZSBvZiBhIHJldmVhbCBtb2RhbFxuLy9cbi8vICRiYXNlLXN0eWxlIC0gUHJvdmlkZXMgcmV2ZWFsIGJhc2Ugc3R5bGVzLCBjYW4gYmUgc2V0IHRvIGZhbHNlIHRvIG92ZXJyaWRlLiBEZWZhdWx0OiB0cnVlLCBPcHRpb25zOiBmYWxzZVxuLy8gJHdpZHRoIC0gU2V0cyByZXZlYWwgd2lkdGggRGVmYXVsdDogJHJldmVhbC1kZWZhdWx0LXdpZHRoIHx8IDgwJVxuLy9cbkBtaXhpbiByZXZlYWwtbW9kYWwtYmFzZSggJGJhc2Utc3R5bGU6IHRydWUsICR3aWR0aDokcmV2ZWFsLWRlZmF1bHQtd2lkdGgsICRtYXgtd2lkdGg6JHJldmVhbC1tYXgtd2lkdGgsICRib3JkZXItcmFkaXVzOiAkcmV2ZWFsLXJhZGl1cykge1xuICBAaWYgJGJhc2Utc3R5bGUge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiAkei1pbmRleC1iYXNlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRvcDowO1xuICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgICN7JGRlZmF1bHQtZmxvYXR9OiAwO1xuXG4gICAgQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcbiAgICAgIG1pbi1oZWlnaHQ6MTAwdmg7XG4gICAgfVxuXG4gICAgLy8gTWFrZSBzdXJlIHJvd3MgZG9uJ3QgaGF2ZSBhIG1pbi13aWR0aCBvbiB0aGVtXG4gICAgLmNvbHVtbiwgLmNvbHVtbnMgeyBtaW4td2lkdGg6IDA7IH1cblxuICAgIC8vIEdldCByaWQgb2YgbWFyZ2luIGZyb20gZmlyc3QgYW5kIGxhc3QgZWxlbWVudCBpbnNpZGUgbW9kYWxcbiAgICAmID4gOmZpcnN0LWNoaWxkIHsgbWFyZ2luLXRvcDogMDsgfVxuXG4gICAgJiA+IDpsYXN0LWNoaWxkIHsgbWFyZ2luLWJvdHRvbTogMDsgfVxuICB9XG5cbiAgQGlmICR3aWR0aCB7XG4gICAgQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgICAgd2lkdGg6ICR3aWR0aDtcbiAgICAgIG1heC13aWR0aDogJG1heC13aWR0aDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICByaWdodDogMDtcbiAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIH1cbiAgfVxufVxuXG4vLyBXZSB1c2UgdGhpcyB0byBzdHlsZSB0aGUgcmV2ZWFsIG1vZGFsIGRlZmF1bHRzXG4vL1xuLy8gJGJnIC0gU2V0cyBiYWNrZ3JvdW5kIGNvbG9yIG9mIHJldmVhbCBtb2RhbC4gRGVmYXVsdDogJHJldmVhbC1tb2RhbC1iZyB8fCAkd2hpdGVcbi8vICRwYWRkaW5nIC0gUGFkZGluZyB0byBhcHBseSB0byByZXZlYWwgbW9kYWwuIERlZmF1bHQ6ICRyZXZlYWwtbW9kYWwtcGFkZGluZy5cbi8vICRib3JkZXIgLSBDaG9vc2Ugd2hldGhlciByZXZlYWwgdXNlcyBhIGJvcmRlci4gRGVmYXVsdDogdHJ1ZSwgT3B0aW9uczogZmFsc2Vcbi8vICRib3JkZXItc3R5bGUgLSBTZXQgcmV2ZWFsIGJvcmRlciBzdHlsZS4gRGVmYXVsdDogJHJldmVhbC1ib3JkZXItc3R5bGUgfHwgc29saWRcbi8vICRib3JkZXItd2lkdGggLSBXaWR0aCBvZiBib3JkZXIgKGkuZS4gMXB4KS4gRGVmYXVsdDogJHJldmVhbC1ib3JkZXItd2lkdGguXG4vLyAkYm9yZGVyLWNvbG9yIC0gQ29sb3Igb2YgYm9yZGVyLiBEZWZhdWx0OiAkcmV2ZWFsLWJvcmRlci1jb2xvci5cbi8vICRib3gtc2hhZG93IC0gQ2hvb3NlIHdoZXRoZXIgb3Igbm90IHRvIGluY2x1ZGUgdGhlIGRlZmF1bHQgYm94LXNoYWRvdy4gRGVmYXVsdDogdHJ1ZSwgT3B0aW9uczogZmFsc2Vcbi8vICRyYWRpdXMgLSBJZiB0cnVlLCBzZXQgdG8gbW9kYWwgcmFkaXVzIHdoaWNoIGlzICRnbG9iYWwtcmFkaXVzIHx8IGV4cGxpY2l0bHkgc2V0IHJhZGl1cyBhbW91bnQgaW4gcHggKGV4LiAkcmFkaXVzOjEwcHgpLiBEZWZhdWx0OiBmYWxzZVxuLy8gJHRvcC1vZmZzZXQgLSBEZWZhdWx0OiAkcmV2ZWFsLXBvc2l0aW9uLXRvcCB8fCA1MHB4XG5AbWl4aW4gcmV2ZWFsLW1vZGFsLXN0eWxlKFxuICAkYmc6ZmFsc2UsXG4gICRwYWRkaW5nOmZhbHNlLFxuICAkYm9yZGVyOmZhbHNlLFxuICAkYm9yZGVyLXN0eWxlOiRyZXZlYWwtYm9yZGVyLXN0eWxlLFxuICAkYm9yZGVyLXdpZHRoOiRyZXZlYWwtYm9yZGVyLXdpZHRoLFxuICAkYm9yZGVyLWNvbG9yOiRyZXZlYWwtYm9yZGVyLWNvbG9yLFxuICAkYm94LXNoYWRvdzpmYWxzZSxcbiAgJHJhZGl1czpmYWxzZSxcbiAgJHRvcC1vZmZzZXQ6ZmFsc2UpIHtcblxuICBAaWYgJGJnIHsgYmFja2dyb3VuZC1jb2xvcjogJGJnOyB9XG4gIEBpZiAkcGFkZGluZyAhPSBmYWxzZSB7IHBhZGRpbmc6ICRwYWRkaW5nOyB9XG5cbiAgQGlmICRib3JkZXIgeyBib3JkZXI6ICRib3JkZXItc3R5bGUgJGJvcmRlci13aWR0aCAkYm9yZGVyLWNvbG9yOyB9XG5cbiAgLy8gV2UgY2FuIGNob29zZSB3aGV0aGVyIG9yIG5vdCB0byBpbmNsdWRlIHRoZSBkZWZhdWx0IGJveC1zaGFkb3cuXG4gIEBpZiAkYm94LXNoYWRvdyB7XG4gICAgYm94LXNoYWRvdzogJHJldmVhbC1ib3gtc2hhZG93O1xuICB9XG5cbiAgLy8gV2UgY2FuIGNvbnRyb2wgaG93IG11Y2ggcmFkaXVzIGlzIHVzZWQgb24gdGhlIG1vZGFsXG4gIEBpZiAkcmFkaXVzID09IHRydWUgeyBAaW5jbHVkZSByYWRpdXMoJHJldmVhbC1yYWRpdXMpOyB9XG4gIEBlbHNlIGlmICRyYWRpdXMgeyBAaW5jbHVkZSByYWRpdXMoJHJhZGl1cyk7IH1cblxuICBAaWYgJHRvcC1vZmZzZXQge1xuICAgIEBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAgIHRvcDogJHRvcC1vZmZzZXQ7XG4gICAgfVxuICB9XG59XG5cbi8vIFdlIHVzZSB0aGlzIHRvIGNyZWF0ZSBhIGNsb3NlIGJ1dHRvbiBmb3IgdGhlIHJldmVhbCBtb2RhbFxuLy9cbi8vICRjb2xvciAtIERlZmF1bHQ6ICRyZXZlYWwtY2xvc2UtY29sb3IgfHwgJGJhc2VcbkBtaXhpbiByZXZlYWwtY2xvc2UoJGNvbG9yOiRyZXZlYWwtY2xvc2UtY29sb3IpIHtcbiAgZm9udC1zaXplOiAkcmV2ZWFsLWNsb3NlLWZvbnQtc2l6ZTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAkcmV2ZWFsLWNsb3NlLXRvcDtcbiAgI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogJHJldmVhbC1jbG9zZS1zaWRlO1xuICBjb2xvcjogJGNvbG9yO1xuICBmb250LXdlaWdodDogJHJldmVhbC1jbG9zZS13ZWlnaHQ7XG4gIGN1cnNvcjogJGN1cnNvci1wb2ludGVyLXZhbHVlO1xufVxuXG5AaW5jbHVkZSBleHBvcnRzKFwicmV2ZWFsXCIpIHtcbiAgQGlmICRpbmNsdWRlLWh0bWwtcmV2ZWFsLWNsYXNzZXMge1xuXG4gICAgLy8gUmV2ZWFsIE1vZGFsc1xuICAgIC5yZXZlYWwtbW9kYWwtYmcgeyBAaW5jbHVkZSByZXZlYWwtYmc7IH1cblxuICAgIC4jeyRyZXZlYWwtbW9kYWwtY2xhc3N9IHtcbiAgICAgIEBpbmNsdWRlIHJldmVhbC1tb2RhbC1iYXNlO1xuICAgICAgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLXN0eWxlKFxuICAgICAgICAkYmc6JHJldmVhbC1tb2RhbC1iZyxcbiAgICAgICAgJHBhZGRpbmc6JHJldmVhbC1tb2RhbC1wYWRkaW5nICogMS41LFxuICAgICAgICAkYm9yZGVyOnRydWUsXG4gICAgICAgICRib3gtc2hhZG93OnRydWUsXG4gICAgICAgICRyYWRpdXM6ZmFsc2UsXG4gICAgICAgICR0b3Atb2Zmc2V0OiRyZXZlYWwtcG9zaXRpb24tdG9wXG4gICAgICApO1xuXG4gICAgICAmLnJhZGl1cyB7IEBpbmNsdWRlIHJldmVhbC1tb2RhbC1zdHlsZSgkcmFkaXVzOnRydWUpOyB9XG4gICAgICAmLnJvdW5kICB7IEBpbmNsdWRlIHJldmVhbC1tb2RhbC1zdHlsZSgkcmFkaXVzOiRyZXZlYWwtcm91bmQpOyB9XG4gICAgICAmLmNvbGxhcHNlIHsgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLXN0eWxlKCRwYWRkaW5nOjApOyB9XG4gICAgICAmLnRpbnkgIHsgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLWJhc2UoZmFsc2UsIDMwJSk7IH1cbiAgICAgICYuc21hbGwgeyBAaW5jbHVkZSByZXZlYWwtbW9kYWwtYmFzZShmYWxzZSwgNDAlKTsgfVxuICAgICAgJi5tZWRpdW0gIHsgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLWJhc2UoZmFsc2UsIDYwJSk7IH1cbiAgICAgICYubGFyZ2UgeyBAaW5jbHVkZSByZXZlYWwtbW9kYWwtYmFzZShmYWxzZSwgNzAlKTsgfVxuICAgICAgJi54bGFyZ2UgeyBAaW5jbHVkZSByZXZlYWwtbW9kYWwtYmFzZShmYWxzZSwgOTUlKTsgfVxuICAgICAgJi5mdWxsIHtcbiAgICAgICAgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLWJhc2UoZmFsc2UsIDEwMCUpO1xuICAgICAgICB0b3A6MDtcbiAgICAgICAgbGVmdDowO1xuICAgICAgICBoZWlnaHQ6MTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDB2aDtcbiAgICAgICAgbWluLWhlaWdodDoxMDB2aDtcbiAgICAgICAgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgICBcbiAgICAgIC8vIE1vZGFscyBwdXNoZWQgdG8gYmFja1xuICAgICAgJi50b2JhY2sge1xuICAgICAgICB6LWluZGV4OiAkei1pbmRleC1iYXNlIC0gMjtcbiAgICAgIH1cblxuICAgICAgLiN7JGNsb3NlLXJldmVhbC1tb2RhbC1jbGFzc30geyBAaW5jbHVkZSByZXZlYWwtY2xvc2U7IH1cbiAgICB9XG4gIH1cbn1cbiIsIkBpbXBvcnQgXCJyZWFjdC1zZWxlY3Qvc2VsZWN0XCI7XG5AaW1wb3J0IFwicmVhY3Qtc2VsZWN0L2NvbnRyb2xcIjtcbkBpbXBvcnQgXCJyZWFjdC1zZWxlY3QvbWVudVwiO1xuQGltcG9ydCBcInJlYWN0LXNlbGVjdC9taXhpbnNcIjtcbkBpbXBvcnQgXCJyZWFjdC1zZWxlY3QvbXVsdGlcIjtcbkBpbXBvcnQgXCJyZWFjdC1zZWxlY3Qvc3Bpbm5lclwiO1xuIiwiLyoqXG4gKiBSZWFjdCBTZWxlY3RcbiAqID09PT09PT09PT09PVxuICogQ3JlYXRlZCBieSBKZWQgV2F0c29uIGFuZCBKb3NzIE1hY2tpc29uIGZvciBLZXlzdG9uZUpTLCBodHRwOi8vd3d3LmtleXN0b25lanMuY29tL1xuICogaHR0cHM6Ly90d2l0dGVyLmNvbS9qZWR3YXRzb24gaHR0cHM6Ly90d2l0dGVyLmNvbS9qb3NzbWFja2lzb24gaHR0cHM6Ly90d2l0dGVyLmNvbS9rZXlzdG9uZWpzXG4gKiBNSVQgTGljZW5zZTogaHR0cHM6Ly9naXRodWIuY29tL2tleXN0b25lanMvcmVhY3Qtc2VsZWN0XG4qL1xuXG4vLyBWYXJpYWJsZXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBjb250cm9sIG9wdGlvbnNcbiRzZWxlY3QtaW5wdXQtYmc6ICAgICAgICAgICAgICAgICAgI2ZmZiAhZGVmYXVsdDtcbiRzZWxlY3QtaW5wdXQtYmctZGlzYWJsZWQ6ICAgICAgICAgI2Y5ZjlmOSAhZGVmYXVsdDtcbiRzZWxlY3QtaW5wdXQtYm9yZGVyLWNvbG9yOiAgICAgICAgI2NjYyAhZGVmYXVsdDtcbiRzZWxlY3QtaW5wdXQtYm9yZGVyLXJhZGl1czogICAgICAgNHB4ICFkZWZhdWx0O1xuJHNlbGVjdC1pbnB1dC1ib3JkZXItZm9jdXM6ICAgICAgICAjMDhjICFkZWZhdWx0OyAvLyBibHVlXG4kc2VsZWN0LWlucHV0LWJvcmRlci13aWR0aDogICAgICAgIDFweCAhZGVmYXVsdDtcbiRzZWxlY3QtaW5wdXQtaGVpZ2h0OiAgICAgICAgICAgICAgMzZweCAhZGVmYXVsdDtcbiRzZWxlY3QtaW5wdXQtaW50ZXJuYWwtaGVpZ2h0OiAgICAgKCRzZWxlY3QtaW5wdXQtaGVpZ2h0IC0gKCRzZWxlY3QtaW5wdXQtYm9yZGVyLXdpZHRoICogMikpICFkZWZhdWx0O1xuJHNlbGVjdC1pbnB1dC1wbGFjZWhvbGRlcjogICAgICAgICAjYWFhICFkZWZhdWx0O1xuJHNlbGVjdC10ZXh0LWNvbG9yOiAgICAgICAgICAgICAgICAjMzMzICFkZWZhdWx0O1xuJHNlbGVjdC1saW5rLWhvdmVyLWNvbG9yOiAgICAgICAgICAkc2VsZWN0LWlucHV0LWJvcmRlci1mb2N1cyAhZGVmYXVsdDtcblxuJHNlbGVjdC1wYWRkaW5nLXZlcnRpY2FsOiAgICAgICAgICA4cHggIWRlZmF1bHQ7XG4kc2VsZWN0LXBhZGRpbmctaG9yaXpvbnRhbDogICAgICAgIDEwcHggIWRlZmF1bHQ7XG5cbi8vIG1lbnUgb3B0aW9uc1xuJHNlbGVjdC1tZW51LXppbmRleDogICAgICAgICAgICAgICAxMDAwICFkZWZhdWx0O1xuJHNlbGVjdC1tZW51LW1heC1oZWlnaHQ6ICAgICAgICAgICAyMDBweCAhZGVmYXVsdDtcblxuJHNlbGVjdC1vcHRpb24tY29sb3I6ICAgICAgICAgICAgICBsaWdodGVuKCRzZWxlY3QtdGV4dC1jb2xvciwgMjAlKSAhZGVmYXVsdDtcbiRzZWxlY3Qtb3B0aW9uLWJnOiAgICAgICAgICAgICAgICAgJHNlbGVjdC1pbnB1dC1iZyAhZGVmYXVsdDtcbiRzZWxlY3Qtb3B0aW9uLWZvY3VzZWQtY29sb3I6ICAgICAgJHNlbGVjdC10ZXh0LWNvbG9yICFkZWZhdWx0O1xuJHNlbGVjdC1vcHRpb24tZm9jdXNlZC1iZzogICAgICAgICAjZjJmOWZjICFkZWZhdWx0OyAvLyBwYWxlIGJsdWVcbiRzZWxlY3Qtb3B0aW9uLXNlbGVjdGVkLWNvbG9yOiAgICAgJHNlbGVjdC10ZXh0LWNvbG9yICFkZWZhdWx0O1xuJHNlbGVjdC1vcHRpb24tc2VsZWN0ZWQtYmc6ICAgICAgICAjREFEMUQxICFkZWZhdWx0OyAvLyBncmF5XG4kc2VsZWN0LW9wdGlvbi1kaXNhYmxlZC1jb2xvcjogICAgIGxpZ2h0ZW4oJHNlbGVjdC10ZXh0LWNvbG9yLCA2MCUpICFkZWZhdWx0O1xuXG4kc2VsZWN0LW5vcmVzdWx0cy1jb2xvcjogICAgICAgICAgIGxpZ2h0ZW4oJHNlbGVjdC10ZXh0LWNvbG9yLCA0MCUpICFkZWZhdWx0O1xuXG4vLyBjbGVhciBcInhcIiBidXR0b25cbiRzZWxlY3QtY2xlYXItc2l6ZTogICAgICAgICAgICAgICAgZmxvb3IoKCRzZWxlY3QtaW5wdXQtaGVpZ2h0IC8gMikpICFkZWZhdWx0O1xuJHNlbGVjdC1jbGVhci1jb2xvcjogICAgICAgICAgICAgICAjOTk5ICFkZWZhdWx0O1xuJHNlbGVjdC1jbGVhci1ob3Zlci1jb2xvcjogICAgICAgICAjRDAwMjFCICFkZWZhdWx0OyAvLyByZWRcbiRzZWxlY3QtY2xlYXItd2lkdGg6ICAgICAgICAgICAgICAgKCRzZWxlY3QtaW5wdXQtaW50ZXJuYWwtaGVpZ2h0IC8gMikgIWRlZmF1bHQ7XG5cbi8vIGFycm93IGluZGljYXRvclxuJHNlbGVjdC1hcnJvdy1jb2xvcjogICAgICAgICAgICAgICAjOTk5ICFkZWZhdWx0O1xuJHNlbGVjdC1hcnJvdy1jb2xvci1ob3ZlcjogICAgICAgICAjNjY2ICFkZWZhdWx0O1xuJHNlbGVjdC1hcnJvdy13aWR0aDogICAgICAgICAgICAgICA1cHggIWRlZmF1bHQ7XG5cbi8vIGxvYWRpbmcgaW5kaWNhdG9yXG4kc2VsZWN0LWxvYWRpbmctc2l6ZTogICAgICAgICAgICAgIDE2cHggIWRlZmF1bHQ7XG4kc2VsZWN0LWxvYWRpbmctY29sb3I6ICAgICAgICAgICAgICRzZWxlY3QtdGV4dC1jb2xvciAhZGVmYXVsdDtcbiRzZWxlY3QtbG9hZGluZy1jb2xvci1iZzogICAgICAgICAgJHNlbGVjdC1pbnB1dC1ib3JkZXItY29sb3IgIWRlZmF1bHQ7XG5cbi8vIG11bHRpLXNlbGVjdCBpdGVtXG4kc2VsZWN0LWl0ZW0tYm9yZGVyLXJhZGl1czogICAgICAgIDJweCAhZGVmYXVsdDtcbiRzZWxlY3QtaXRlbS1ndXR0ZXI6ICAgICAgICAgICAgICAgNXB4ICFkZWZhdWx0O1xuJHNlbGVjdC1pdGVtLXBhZGRpbmctdmVydGljYWw6ICAgICAycHggIWRlZmF1bHQ7XG4kc2VsZWN0LWl0ZW0tcGFkZGluZy1ob3Jpem9udGFsOiAgIDVweCAhZGVmYXVsdDtcbiRzZWxlY3QtaXRlbS1mb250LXNpemU6ICAgICAgICAgICAgLjllbSAhZGVmYXVsdDtcbiRzZWxlY3QtaXRlbS1jb2xvcjogICAgICAgICAgICAgICAgIzA4YyAhZGVmYXVsdDsgLy8gcGFsZSBibHVlXG4kc2VsZWN0LWl0ZW0tYmc6ICAgICAgICAgICAgICAgICAgICNmMmY5ZmMgIWRlZmF1bHQ7XG4kc2VsZWN0LWl0ZW0tYm9yZGVyLWNvbG9yOiAgICAgICAgIGRhcmtlbigkc2VsZWN0LWl0ZW0tYmcsIDEwJSkgIWRlZmF1bHQ7XG4kc2VsZWN0LWl0ZW0taG92ZXItY29sb3I6ICAgICAgICAgIGRhcmtlbigkc2VsZWN0LWl0ZW0tY29sb3IsIDUlKSAhZGVmYXVsdDsgLy8gcGFsZSBibHVlXG4kc2VsZWN0LWl0ZW0taG92ZXItYmc6ICAgICAgICAgICAgIGRhcmtlbigkc2VsZWN0LWl0ZW0tYmcsIDUlKSAhZGVmYXVsdDtcbiRzZWxlY3QtaXRlbS1kaXNhYmxlZC1jb2xvcjogICAgICAgIzMzMyAhZGVmYXVsdDtcbiRzZWxlY3QtaXRlbS1kaXNhYmxlZC1iZzogICAgICAgICAgI2ZjZmNmYyAhZGVmYXVsdDtcbiRzZWxlY3QtaXRlbS1kaXNhYmxlZC1ib3JkZXItY29sb3I6IGRhcmtlbigkc2VsZWN0LWl0ZW0tZGlzYWJsZWQtYmcsIDEwJSkgIWRlZmF1bHQ7XG4iLCIvL1xuLy8gQ29udHJvbFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBpbXBvcnQgJ3NwaW5uZXInO1xuQGltcG9ydCAnbWl4aW5zJztcblxuLlNlbGVjdCB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHQvLyBwcmVmZXJyZWQgYm94IG1vZGVsXG5cdCYsXG5cdCYgZGl2LFxuXHQmIGlucHV0LFxuXHQmIHNwYW4ge1xuXHRcdEBpbmNsdWRlIGJveC1zaXppbmcoYm9yZGVyLWJveCk7XG5cdH1cblxuXHQvLyBoYW5kbGUgZGlzYWJsZWQgc3RhdGVcblx0Ji5pcy1kaXNhYmxlZCA+IC5TZWxlY3QtY29udHJvbCB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJHNlbGVjdC1pbnB1dC1iZy1kaXNhYmxlZDtcblx0XHQmOmhvdmVyIHtcblx0XHRcdGJveC1zaGFkb3c6IG5vbmU7XG5cdFx0fVxuXHR9XG5cdCYuaXMtZGlzYWJsZWQgLlNlbGVjdC1hcnJvdy16b25lIHtcblx0XHRjdXJzb3I6IGRlZmF1bHQ7XG5cdFx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG5cdH1cbn1cblxuLy8gYmFzZVxuXG4uU2VsZWN0LWNvbnRyb2wge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAkc2VsZWN0LWlucHV0LWJnO1xuXHRib3JkZXItY29sb3I6IGxpZ2h0ZW4oJHNlbGVjdC1pbnB1dC1ib3JkZXItY29sb3IsIDUlKSAkc2VsZWN0LWlucHV0LWJvcmRlci1jb2xvciBkYXJrZW4oJHNlbGVjdC1pbnB1dC1ib3JkZXItY29sb3IsIDEwJSk7XG5cdGJvcmRlci1yYWRpdXM6ICRzZWxlY3QtaW5wdXQtYm9yZGVyLXJhZGl1cztcblx0Ym9yZGVyOiAkc2VsZWN0LWlucHV0LWJvcmRlci13aWR0aCBzb2xpZCAkc2VsZWN0LWlucHV0LWJvcmRlci1jb2xvcjtcblx0Y29sb3I6ICRzZWxlY3QtdGV4dC1jb2xvcjtcblx0Y3Vyc29yOiBkZWZhdWx0O1xuXHRkaXNwbGF5OiB0YWJsZTtcblx0Ym9yZGVyLXNwYWNpbmc6IDA7XG5cdGJvcmRlci1jb2xsYXBzZTogc2VwYXJhdGU7XG5cdGhlaWdodDogJHNlbGVjdC1pbnB1dC1oZWlnaHQ7XG5cdG91dGxpbmU6IG5vbmU7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0d2lkdGg6IDEwMCU7XG5cblx0Jjpob3ZlciB7XG5cdFx0Ym94LXNoYWRvdzogMCAxcHggMCByZ2JhKDAsIDAsIDAsIDAuMDYpO1xuXHR9XG59XG5cbi5pcy1zZWFyY2hhYmxlIHtcblx0Ji5pcy1vcGVuID4gLlNlbGVjdC1jb250cm9sIHtcblx0XHRjdXJzb3I6IHRleHQ7XG5cdH1cbn1cblxuLmlzLW9wZW4gPiAuU2VsZWN0LWNvbnRyb2wge1xuXHRAaW5jbHVkZSBib3JkZXItYm90dG9tLXJhZGl1cyggMCApO1xuXHRiYWNrZ3JvdW5kOiAkc2VsZWN0LWlucHV0LWJnO1xuXHRib3JkZXItY29sb3I6IGRhcmtlbigkc2VsZWN0LWlucHV0LWJvcmRlci1jb2xvciwgMTAlKSAkc2VsZWN0LWlucHV0LWJvcmRlci1jb2xvciBsaWdodGVuKCRzZWxlY3QtaW5wdXQtYm9yZGVyLWNvbG9yLCA1JSk7XG5cblx0Ly8gZmxpcCB0aGUgYXJyb3cgc28gaXRzIHBvaW50aW5nIHVwIHdoZW4gdGhlIG1lbnUgaXMgb3BlblxuXHQ+IC5TZWxlY3QtYXJyb3cge1xuXHRcdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgJHNlbGVjdC1hcnJvdy1jb2xvcjtcblx0XHRib3JkZXItd2lkdGg6IDAgJHNlbGVjdC1hcnJvdy13aWR0aCAkc2VsZWN0LWFycm93LXdpZHRoO1xuXHR9XG59XG5cbi5pcy1zZWFyY2hhYmxlIHtcblx0Ji5pcy1mb2N1c2VkOm5vdCguaXMtb3BlbikgPiAuU2VsZWN0LWNvbnRyb2wge1xuXHRcdGN1cnNvcjogdGV4dDtcblx0fVxufVxuXG4uaXMtZm9jdXNlZDpub3QoLmlzLW9wZW4pID4gLlNlbGVjdC1jb250cm9sIHtcblx0Ym9yZGVyLWNvbG9yOiAkc2VsZWN0LWlucHV0LWJvcmRlci1mb2N1cyBsaWdodGVuKCRzZWxlY3QtaW5wdXQtYm9yZGVyLWZvY3VzLCA1JSkgbGlnaHRlbigkc2VsZWN0LWlucHV0LWJvcmRlci1mb2N1cywgNSUpO1xuXHRib3gtc2hhZG93OiBpbnNldCAwIDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjEpLCAwIDAgNXB4IC0xcHggZmFkZSgkc2VsZWN0LWlucHV0LWJvcmRlci1mb2N1cyw1MCUpO1xufVxuXG4vLyBwbGFjZWhvbGRlclxuXG4uU2VsZWN0LXBsYWNlaG9sZGVyLFxuOm5vdCguU2VsZWN0LS1tdWx0aSkgPiAuU2VsZWN0LWNvbnRyb2wgLlNlbGVjdC12YWx1ZSB7XG5cdGJvdHRvbTogMDtcblx0Y29sb3I6ICRzZWxlY3QtaW5wdXQtcGxhY2Vob2xkZXI7XG5cdGxlZnQ6IDA7XG5cdGxpbmUtaGVpZ2h0OiAkc2VsZWN0LWlucHV0LWludGVybmFsLWhlaWdodDtcblx0cGFkZGluZy1sZWZ0OiAkc2VsZWN0LXBhZGRpbmctaG9yaXpvbnRhbDtcblx0cGFkZGluZy1yaWdodDogJHNlbGVjdC1wYWRkaW5nLWhvcml6b250YWw7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0cmlnaHQ6IDA7XG5cdHRvcDogMDtcblxuXHQvLyBjcm9wIHRleHRcblx0bWF4LXdpZHRoOiAxMDAlO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLmhhcy12YWx1ZTpub3QoLlNlbGVjdC0tbXVsdGkpOm5vdCguaXMtZm9jdXNlZCkgPiAuU2VsZWN0LWNvbnRyb2wgPiAuU2VsZWN0LXZhbHVlLFxuLmhhcy12YWx1ZS5pcy1wc2V1ZG8tZm9jdXNlZDpub3QoLlNlbGVjdC0tbXVsdGkpID4gLlNlbGVjdC1jb250cm9sID4gLlNlbGVjdC12YWx1ZSB7XG5cdC5TZWxlY3QtdmFsdWUtbGFiZWwge1xuXHRcdGNvbG9yOiAkc2VsZWN0LXRleHQtY29sb3I7XG5cdH1cblx0YS5TZWxlY3QtdmFsdWUtbGFiZWwge1xuXHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cblx0XHQmOmhvdmVyIHtcblx0XHRcdGNvbG9yOiAkc2VsZWN0LWxpbmstaG92ZXItY29sb3I7XG5cdFx0XHR0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcblx0XHR9XG5cdH1cbn1cblxuXG4vLyB0aGUgPGlucHV0PiBlbGVtZW50IHVzZXJzIHR5cGUgaW5cblxuLlNlbGVjdC1pbnB1dCB7XG5cdC8vIGluaGVyaXRzIGBkaXNwbGF5OiBpbmxpbmUtYmxvY2tgIGZyb20gXCJyZWFjdC1pbnB1dC1hdXRvc2l6ZVwiXG5cdGhlaWdodDogJHNlbGVjdC1pbnB1dC1pbnRlcm5hbC1oZWlnaHQ7XG5cdHBhZGRpbmctbGVmdDogJHNlbGVjdC1wYWRkaW5nLWhvcml6b250YWw7XG5cdHBhZGRpbmctcmlnaHQ6ICRzZWxlY3QtcGFkZGluZy1ob3Jpem9udGFsO1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG5cdD4gaW5wdXQge1xuXHRcdGJhY2tncm91bmQ6IG5vbmUgdHJhbnNwYXJlbnQ7XG5cdFx0Ym9yZGVyOiAwIG5vbmU7XG5cdFx0Ym94LXNoYWRvdzogbm9uZTtcblx0XHRjdXJzb3I6IGRlZmF1bHQ7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuXHRcdGZvbnQtc2l6ZTogaW5oZXJpdDtcblx0XHRoZWlnaHQ6ICRzZWxlY3QtaW5wdXQtaW50ZXJuYWwtaGVpZ2h0O1xuXHRcdG1hcmdpbjogMDtcblx0XHRvdXRsaW5lOiBub25lO1xuXHRcdHBhZGRpbmc6IDA7XG5cdFx0LXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuXG5cdFx0LmlzLWZvY3VzZWQgJiB7XG5cdFx0XHRjdXJzb3I6IHRleHQ7XG5cdFx0fVxuXHR9XG5cbn1cblxuLy8gZmFrZS1oaWRlIHRoZSBpbnB1dCB3aGVuIHRoZSBjb250cm9sIGlzIHBzZXVkby1mb2N1c2VkXG4uaGFzLXZhbHVlLmlzLXBzZXVkby1mb2N1c2VkIC5TZWxlY3QtaW5wdXQge1xuXHRvcGFjaXR5OiAwO1xufVxuXG4vLyBmYWtlIGlucHV0XG4uU2VsZWN0LWNvbnRyb2w6bm90KC5pcy1zZWFyY2hhYmxlKSA+IC5TZWxlY3QtaW5wdXQge1xuXHRvdXRsaW5lOiBub25lO1xufVxuXG4vLyBsb2FkaW5nIGluZGljYXRvclxuLlNlbGVjdC1sb2FkaW5nLXpvbmUge1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdGRpc3BsYXk6IHRhYmxlLWNlbGw7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHR3aWR0aDogJHNlbGVjdC1sb2FkaW5nLXNpemU7XG59XG4uU2VsZWN0LWxvYWRpbmcge1xuXHRAaW5jbHVkZSBTZWxlY3Qtc3Bpbm5lcigkc2VsZWN0LWxvYWRpbmctc2l6ZSwgJHNlbGVjdC1sb2FkaW5nLWNvbG9yLWJnLCAkc2VsZWN0LWxvYWRpbmctY29sb3IpO1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG5cbi8vIHRoZSBsaXR0bGUgY3Jvc3MgdGhhdCBjbGVhcnMgdGhlIGZpZWxkXG5cbi5TZWxlY3QtY2xlYXItem9uZSB7XG5cdEBpbmNsdWRlIGFuaW1hdGlvbiggU2VsZWN0LWFuaW1hdGlvbi1mYWRlSW4gMjAwbXMgKTtcblx0Y29sb3I6ICRzZWxlY3QtY2xlYXItY29sb3I7XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0ZGlzcGxheTogdGFibGUtY2VsbDtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdHdpZHRoOiAkc2VsZWN0LWNsZWFyLXdpZHRoO1xuXG5cdCY6aG92ZXIge1xuXHRcdGNvbG9yOiAkc2VsZWN0LWNsZWFyLWhvdmVyLWNvbG9yO1xuXHR9XG59XG4uU2VsZWN0LWNsZWFyIHtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRmb250LXNpemU6ICRzZWxlY3QtY2xlYXItc2l6ZTtcblx0bGluZS1oZWlnaHQ6IDE7XG59XG4uU2VsZWN0LS1tdWx0aSAuU2VsZWN0LWNsZWFyLXpvbmUge1xuXHR3aWR0aDogJHNlbGVjdC1jbGVhci13aWR0aDtcbn1cblxuXG4vLyBhcnJvdyBpbmRpY2F0b3JcblxuLlNlbGVjdC1hcnJvdy16b25lIHtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHRkaXNwbGF5OiB0YWJsZS1jZWxsO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0d2lkdGg6ICgkc2VsZWN0LWFycm93LXdpZHRoICogNSk7XG5cdHBhZGRpbmctcmlnaHQ6ICRzZWxlY3QtYXJyb3ctd2lkdGg7XG59XG5cbi5TZWxlY3QtYXJyb3cge1xuXHRib3JkZXItY29sb3I6ICRzZWxlY3QtYXJyb3ctY29sb3IgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG5cdGJvcmRlci1zdHlsZTogc29saWQ7XG5cdGJvcmRlci13aWR0aDogJHNlbGVjdC1hcnJvdy13aWR0aCAkc2VsZWN0LWFycm93LXdpZHRoICgkc2VsZWN0LWFycm93LXdpZHRoIC8gMik7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0aGVpZ2h0OiAwO1xuXHR3aWR0aDogMDtcbn1cbi5pcy1vcGVuIC5TZWxlY3QtYXJyb3csXG4uU2VsZWN0LWFycm93LXpvbmU6aG92ZXIgPiAuU2VsZWN0LWFycm93IHtcblx0Ym9yZGVyLXRvcC1jb2xvcjogJHNlbGVjdC1hcnJvdy1jb2xvci1ob3Zlcjtcbn1cblxuXG5cblxuLy8gQW5pbWF0aW9uXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gZmFkZSBpblxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgU2VsZWN0LWFuaW1hdGlvbi1mYWRlSW4ge1xuXHRmcm9tIHsgb3BhY2l0eTogMDsgfVxuXHR0byB7IG9wYWNpdHk6IDE7IH1cbn1cbkBrZXlmcmFtZXMgU2VsZWN0LWFuaW1hdGlvbi1mYWRlSW4ge1xuXHRmcm9tIHsgb3BhY2l0eTogMDsgfVxuXHR0byB7IG9wYWNpdHk6IDE7IH1cbn1cbiIsIi8vXG4vLyBTcGlubmVyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBpbXBvcnQgJ21peGlucyc7XG5cbkBtaXhpbiBTZWxlY3Qtc3Bpbm5lcigkc2l6ZSwgJG9yYml0LCAkc2F0ZWxsaXRlKVxue1xuXHRAaW5jbHVkZSBhbmltYXRpb24oIFNlbGVjdC1hbmltYXRpb24tc3BpbiA0MDBtcyBpbmZpbml0ZSBsaW5lYXIgKTtcblx0QGluY2x1ZGUgc3F1YXJlKCRzaXplKTtcblx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0Ym9yZGVyLXJhZGl1czogNTAlO1xuXHRib3JkZXI6IGZsb29yKCgkc2l6ZSAvIDgpKSBzb2xpZCAkb3JiaXQ7XG5cdGJvcmRlci1yaWdodC1jb2xvcjogJHNhdGVsbGl0ZTtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cbn1cblxuQGtleWZyYW1lcyBTZWxlY3QtYW5pbWF0aW9uLXNwaW4ge1xuXHR0byB7IHRyYW5zZm9ybTogcm90YXRlKDF0dXJuKTsgfVxufVxuQC13ZWJraXQta2V5ZnJhbWVzIFNlbGVjdC1hbmltYXRpb24tc3BpbiB7XG5cdHRvIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgxdHVybik7IH1cbn1cbiIsIi8vXG4vLyBNaXhpbnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbi8vIFV0aWxpdGllc1xuXG5AbWl4aW4gc2l6ZSgkd2lkdGgsICRoZWlnaHQpXG57XG5cdHdpZHRoOiAkd2lkdGg7XG5cdGhlaWdodDogJGhlaWdodDtcbn1cbkBtaXhpbiBzcXVhcmUoJHNpemUpXG57XG5cdEBpbmNsdWRlIHNpemUoJHNpemUsICRzaXplKTtcbn1cbkBtaXhpbiBib3JkZXItdG9wLXJhZGl1cygkcmFkaXVzKVxue1xuXHRib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogJHJhZGl1cztcblx0Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czogJHJhZGl1cztcbn1cbkBtaXhpbiBib3JkZXItcmlnaHQtcmFkaXVzKCRyYWRpdXMpXG57XG5cdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAkcmFkaXVzO1xuXHRib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogJHJhZGl1cztcbn1cbkBtaXhpbiBib3JkZXItYm90dG9tLXJhZGl1cygkcmFkaXVzKVxue1xuXHRib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogJHJhZGl1cztcblx0Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogJHJhZGl1cztcbn1cbkBtaXhpbiBib3JkZXItbGVmdC1yYWRpdXMoJHJhZGl1cylcbntcblx0Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogJHJhZGl1cztcblx0Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czogJHJhZGl1cztcbn1cblxuXG4vLyBWZW5kb3IgUHJlZml4ZXNcblxuQG1peGluIGFuaW1hdGlvbigkYW5pbWF0aW9uKVxue1xuXHQtd2Via2l0LWFuaW1hdGlvbjogJGFuaW1hdGlvbjtcblx0LW8tYW5pbWF0aW9uOiAkYW5pbWF0aW9uO1xuXHRhbmltYXRpb246ICRhbmltYXRpb247XG59XG5AbWl4aW4gYm94LXNpemluZygkYm94bW9kZWwpXG57XG5cdC13ZWJraXQtYm94LXNpemluZzogJGJveG1vZGVsO1xuXHQtbW96LWJveC1zaXppbmc6ICRib3htb2RlbDtcblx0Ym94LXNpemluZzogJGJveG1vZGVsO1xufVxuQG1peGluIHJvdGF0ZSgkZGVncmVlcylcbntcblx0LXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgkZGVncmVlcyk7XG5cdC1tcy10cmFuc2Zvcm06IHJvdGF0ZSgkZGVncmVlcyk7IC8vIElFOSBvbmx5XG5cdC1vLXRyYW5zZm9ybTogcm90YXRlKCRkZWdyZWVzKTtcblx0dHJhbnNmb3JtOiByb3RhdGUoJGRlZ3JlZXMpO1xufVxuQG1peGluIHRyYW5zZm9ybSgkdHJhbnNmb3JtKVxue1xuXHQtd2Via2l0LXRyYW5zZm9ybTogJHRyYW5zZm9ybTtcblx0LW1vei10cmFuc2Zvcm06ICR0cmFuc2Zvcm07XG5cdC1tcy10cmFuc2Zvcm06ICR0cmFuc2Zvcm07XG5cdHRyYW5zZm9ybTogJHRyYW5zZm9ybTtcbn1cbiIsIi8vXG4vLyBTZWxlY3QgTWVudVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuLy8gd3JhcHBlciBhcm91bmQgdGhlIG1lbnVcblxuLlNlbGVjdC1tZW51LW91dGVyIHtcblx0Ly8gVW5mb3J0dW5hdGVseSwgaGF2aW5nIGJvdGggYm9yZGVyLXJhZGl1cyBhbmQgYWxsb3dzIHNjcm9sbGluZyB1c2luZyBvdmVyZmxvdyBkZWZpbmVkIG9uIHRoZSBzYW1lXG5cdC8vIGVsZW1lbnQgZm9yY2VzIHRoZSBicm93c2VyIHRvIHJlcGFpbnQgb24gc2Nyb2xsLiAgSG93ZXZlciwgaWYgdGhlc2UgZGVmaW5pdGlvbnMgYXJlIHNwbGl0IGludG8gYW5cblx0Ly8gb3V0ZXIgYW5kIGFuIGlubmVyIGVsZW1lbnQsIHRoZSBicm93c2VyIGlzIGFibGUgdG8gb3B0aW1pemUgdGhlIHNjcm9sbGluZyBiZWhhdmlvciBhbmQgZG9lcyBub3Rcblx0Ly8gaGF2ZSB0byByZXBhaW50IG9uIHNjcm9sbC5cblx0QGluY2x1ZGUgYm9yZGVyLWJvdHRvbS1yYWRpdXMoICRzZWxlY3QtaW5wdXQtYm9yZGVyLXJhZGl1cyApO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAkc2VsZWN0LWlucHV0LWJnO1xuXHRib3JkZXI6IDFweCBzb2xpZCAkc2VsZWN0LWlucHV0LWJvcmRlci1jb2xvcjtcblx0Ym9yZGVyLXRvcC1jb2xvcjogbWl4KCRzZWxlY3QtaW5wdXQtYmcsICRzZWxlY3QtaW5wdXQtYm9yZGVyLWNvbG9yLCA1MCUpO1xuXHRib3gtc2hhZG93OiAwIDFweCAwIHJnYmEoMCwgMCwgMCwgMC4wNik7XG5cdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdG1hcmdpbi10b3A6IC0xcHg7XG5cdG1heC1oZWlnaHQ6ICRzZWxlY3QtbWVudS1tYXgtaGVpZ2h0O1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRvcDogMTAwJTtcblx0d2lkdGg6IDEwMCU7XG5cdHotaW5kZXg6ICRzZWxlY3QtbWVudS16aW5kZXg7XG5cdC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbn1cblxuXG4vLyB3cmFwcGVyXG5cbi5TZWxlY3QtbWVudSB7XG5cdG1heC1oZWlnaHQ6ICgkc2VsZWN0LW1lbnUtbWF4LWhlaWdodCAtIDJweCk7XG5cdG92ZXJmbG93LXk6IGF1dG87XG59XG5cblxuLy8gb3B0aW9uc1xuXG4uU2VsZWN0LW9wdGlvbiB7XG5cdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdGJhY2tncm91bmQtY29sb3I6ICRzZWxlY3Qtb3B0aW9uLWJnO1xuXHRjb2xvcjogJHNlbGVjdC1vcHRpb24tY29sb3I7XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0ZGlzcGxheTogYmxvY2s7XG5cdHBhZGRpbmc6ICRzZWxlY3QtcGFkZGluZy12ZXJ0aWNhbCAkc2VsZWN0LXBhZGRpbmctaG9yaXpvbnRhbDtcblxuXHQmOmxhc3QtY2hpbGQge1xuXHRcdEBpbmNsdWRlIGJvcmRlci1ib3R0b20tcmFkaXVzKCAkc2VsZWN0LWlucHV0LWJvcmRlci1yYWRpdXMgKTtcblx0fVxuXG5cdCYuaXMtZm9jdXNlZCB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJHNlbGVjdC1vcHRpb24tZm9jdXNlZC1iZztcblx0XHRjb2xvcjogJHNlbGVjdC1vcHRpb24tZm9jdXNlZC1jb2xvcjtcblx0fVxuXG5cdCYuaXMtc2VsZWN0ZWQge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICRzZWxlY3Qtb3B0aW9uLXNlbGVjdGVkLWJnO1xuXHRcdGNvbG9yOiAkc2VsZWN0LW9wdGlvbi1zZWxlY3RlZC1jb2xvcjtcblx0fVxuXG5cdCYuaXMtZGlzYWJsZWQge1xuXHRcdGNvbG9yOiAkc2VsZWN0LW9wdGlvbi1kaXNhYmxlZC1jb2xvcjtcblx0XHRjdXJzb3I6IGRlZmF1bHQ7XG5cdH1cblxufVxuXG5cbi8vIG5vIHJlc3VsdHNcblxuLlNlbGVjdC1ub3Jlc3VsdHMge1xuXHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRjb2xvcjogJHNlbGVjdC1ub3Jlc3VsdHMtY29sb3I7XG5cdGN1cnNvcjogZGVmYXVsdDtcblx0ZGlzcGxheTogYmxvY2s7XG5cdHBhZGRpbmc6ICRzZWxlY3QtcGFkZGluZy12ZXJ0aWNhbCAkc2VsZWN0LXBhZGRpbmctaG9yaXpvbnRhbDtcbn1cbiIsIi8vXG4vLyBNdWx0aS1TZWxlY3Rcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbi8vIEJhc2VcblxuLlNlbGVjdC0tbXVsdGkge1xuXG5cdC8vIGFkZCBtYXJnaW4gdG8gdGhlIGlucHV0IGVsZW1lbnRcblx0LlNlbGVjdC1pbnB1dCB7XG5cdFx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0XHQvLyBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcblx0XHRtYXJnaW4tbGVmdDogJHNlbGVjdC1wYWRkaW5nLWhvcml6b250YWw7XG5cdFx0cGFkZGluZzogMDtcblx0fVxuXG5cdC8vIHJlZHVjZSBtYXJnaW4gb25jZSB0aGVyZSBpcyB2YWx1ZVxuXHQmLmhhcy12YWx1ZSAuU2VsZWN0LWlucHV0IHtcblx0XHRtYXJnaW4tbGVmdDogJHNlbGVjdC1pdGVtLWd1dHRlcjtcblx0fVxuXG5cdC8vIEl0ZW1zXG5cdC5TZWxlY3QtdmFsdWUge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICRzZWxlY3QtaXRlbS1iZztcblx0XHRib3JkZXItcmFkaXVzOiAkc2VsZWN0LWl0ZW0tYm9yZGVyLXJhZGl1cztcblx0XHRib3JkZXI6IDFweCBzb2xpZCAkc2VsZWN0LWl0ZW0tYm9yZGVyLWNvbG9yO1xuXHRcdGNvbG9yOiAkc2VsZWN0LWl0ZW0tY29sb3I7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdGZvbnQtc2l6ZTogJHNlbGVjdC1pdGVtLWZvbnQtc2l6ZTtcblx0XHRtYXJnaW4tbGVmdDogJHNlbGVjdC1pdGVtLWd1dHRlcjtcblx0XHRtYXJnaW4tdG9wOiAkc2VsZWN0LWl0ZW0tZ3V0dGVyO1xuXHRcdHZlcnRpY2FsLWFsaWduOiB0b3A7XG5cdH1cblxuXHQvLyBjb21tb25cblx0LlNlbGVjdC12YWx1ZS1pY29uLFxuXHQuU2VsZWN0LXZhbHVlLWxhYmVsIHtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0fVxuXG5cdC8vIGxhYmVsXG5cdC5TZWxlY3QtdmFsdWUtbGFiZWwge1xuXHRcdEBpbmNsdWRlIGJvcmRlci1yaWdodC1yYWRpdXMoICRzZWxlY3QtaXRlbS1ib3JkZXItcmFkaXVzICk7XG5cdFx0Y3Vyc29yOiBkZWZhdWx0O1xuXHRcdHBhZGRpbmc6ICRzZWxlY3QtaXRlbS1wYWRkaW5nLXZlcnRpY2FsICRzZWxlY3QtaXRlbS1wYWRkaW5nLWhvcml6b250YWw7XG5cdH1cblx0YS5TZWxlY3QtdmFsdWUtbGFiZWwge1xuXHRcdGNvbG9yOiAkc2VsZWN0LWl0ZW0tY29sb3I7XG5cdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuXHRcdCY6aG92ZXIge1xuXHRcdFx0dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG5cdFx0fVxuXHR9XG5cblx0Ly8gaWNvblxuXHQuU2VsZWN0LXZhbHVlLWljb24ge1xuXHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHRAaW5jbHVkZSBib3JkZXItbGVmdC1yYWRpdXMoICRzZWxlY3QtaXRlbS1ib3JkZXItcmFkaXVzICk7XG5cdFx0Ym9yZGVyLXJpZ2h0OiAxcHggc29saWQgJHNlbGVjdC1pdGVtLWJvcmRlci1jb2xvcjtcblxuXHRcdC8vIG1vdmUgdGhlIGJhc2VsaW5lIHVwIGJ5IDFweFxuXHRcdHBhZGRpbmc6ICgkc2VsZWN0LWl0ZW0tcGFkZGluZy12ZXJ0aWNhbCAtIDEpICRzZWxlY3QtaXRlbS1wYWRkaW5nLWhvcml6b250YWwgKCRzZWxlY3QtaXRlbS1wYWRkaW5nLXZlcnRpY2FsICsgMSk7XG5cblx0XHQmOmhvdmVyLFxuXHRcdCY6Zm9jdXMge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJHNlbGVjdC1pdGVtLWhvdmVyLWJnO1xuXHRcdFx0Y29sb3I6ICRzZWxlY3QtaXRlbS1ob3Zlci1jb2xvcjtcblx0XHR9XG5cdFx0JjphY3RpdmUge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJHNlbGVjdC1pdGVtLWJvcmRlci1jb2xvcjtcblx0XHR9XG5cdH1cblxufVxuXG4uU2VsZWN0LS1tdWx0aS5pcy1kaXNhYmxlZCB7XG5cdC5TZWxlY3QtdmFsdWUge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICRzZWxlY3QtaXRlbS1kaXNhYmxlZC1iZztcblx0XHRib3JkZXI6IDFweCBzb2xpZCAkc2VsZWN0LWl0ZW0tZGlzYWJsZWQtYm9yZGVyLWNvbG9yO1xuXHRcdGNvbG9yOiAkc2VsZWN0LWl0ZW0tZGlzYWJsZWQtY29sb3I7XG5cdH1cblx0Ly8gaWNvblxuXHQuU2VsZWN0LXZhbHVlLWljb24ge1xuXHRcdGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cdFx0Ym9yZGVyLXJpZ2h0OiAxcHggc29saWQgJHNlbGVjdC1pdGVtLWRpc2FibGVkLWJvcmRlci1jb2xvcjtcblxuXHRcdCY6aG92ZXIsXG5cdFx0Jjpmb2N1cyxcblx0XHQmOmFjdGl2ZSB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkc2VsZWN0LWl0ZW0tZGlzYWJsZWQtYmc7XG5cdFx0fVxuXHR9XG59XG4iLCIvKipcbiAqIENvbW1lbnRzIHN0eWxpbmcsIGNvdXJ0ZXN5IG9mXG4gKiBodHRwOi8vcmVmaWxscy5ib3VyYm9uLmlvL1xuICovXG5cbiRjb21tZW50LWd1dHRlcjogICAgICAgICAgICAgICAgMS40ZW0gIWRlZmF1bHQ7XG4kY29tbWVudC1pbWFnZS1tYXJnaW46ICAgICAgICAgIC43ZW0gIWRlZmF1bHQ7XG4kY29tbWVudC1pbWFnZS13aWR0aDogICAgICAgICAgIDMwcHggIWRlZmF1bHQ7XG4kY29tbWVudC1pbWFnZS13aWR0aC1sYXJnZTogICAgIDYwcHggIWRlZmF1bHQ7XG4kY29tbWVudC1pbWFnZS1ib3JkZXItcGFkZGluZzogIDNweCAhZGVmYXVsdDtcbiRjb21tZW50LWltYWdlLWJvcmRlci13aWR0aDogICAgMXB4ICFkZWZhdWx0O1xuJGNvbW1lbnQtaGVhZGVyLWZvbnQtc2l6ZTogICAgICByZW0tY2FsYygyMCkgIWRlZmF1bHQ7XG4kY29tbWVudC1jb2xvcjogICAgICAgICAgICAgICAgICRib2R5LWZvbnQtY29sb3IgIWRlZmF1bHQ7XG4kY29tbWVudC1iYWNrZ3JvdW5kOiAgICAgICAgICAgICRzZWNvbmRhcnktY29sb3IgIWRlZmF1bHQ7XG4kY29tbWVudC1kZXRhaWwtY29sb3I6ICAgICAgICAgIHRyYW5zcGFyZW50aXplKCRjb21tZW50LWNvbG9yLCAuNSkgIWRlZmF1bHQ7XG4kY29tbWVudC1pbWFnZS12ZXJ0LWFsaWdubWVudDogIHRvcCAhZGVmYXVsdDtcbiRjb21tZW50LXN0YXItY29sb3I6ICAgICAgICAgICAgJGNhbGwtdG8tYWN0aW9uLWNvbG9yICFkZWZhdWx0O1xuJGNvbW1lbnQtYXZhdGFyLWJvcmRlci1jb2xvcjogICAjZGRkICFkZWZhdWx0O1xuJGNvbW1lbnQtYXZhdGFyLWJveC1zaXplOiAgICAgICAjeyRjb21tZW50LWltYWdlLXdpZHRoICsgJGNvbW1lbnQtaW1hZ2UtYm9yZGVyLXBhZGRpbmcgKiAyICsgJGNvbW1lbnQtaW1hZ2UtYm9yZGVyLXdpZHRoICogMn07XG4kY29tbWVudC1hdmF0YXItYm94LXNpemUtbGFyZ2U6ICN7JGNvbW1lbnQtaW1hZ2Utd2lkdGgtbGFyZ2UgKyAkY29tbWVudC1pbWFnZS1ib3JkZXItcGFkZGluZyAqIDIgKyAkY29tbWVudC1pbWFnZS1ib3JkZXItd2lkdGggKiAyfTtcblxuLmNvbW1lbnQge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1ib3R0b206ICN7JHBhcmFncmFwaC1saW5lLWhlaWdodCAqIDFyZW19O1xuICAgIHBhZGRpbmctYm90dG9tOiAxZW07XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHRyYW5zcGFyZW50aXplKCRjb21tZW50LWNvbG9yLCAuOSk7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgLmNvbW1lbnQtYXZhdGFyIHtcbiAgICAgICAgICAgIGJvcmRlcjogJGNvbW1lbnQtaW1hZ2UtYm9yZGVyLXdpZHRoIHNvbGlkIGRhcmtlbigkY29tbWVudC1hdmF0YXItYm9yZGVyLWNvbG9yLCAzMCUpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uY29tbWVudC1pbWFnZSxcbi5jb21tZW50LWNvbnRlbnQge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgdmVydGljYWwtYWxpZ246ICRjb21tZW50LWltYWdlLXZlcnQtYWxpZ25tZW50O1xufVxuXG4uY29tbWVudC1pbWFnZSB7XG4gICAgaW1nIHtcbiAgICAgICAgd2lkdGg6ICRjb21tZW50LWltYWdlLXdpZHRoO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgfVxuXG4gICAgcGFkZGluZy1yaWdodDogJGNvbW1lbnQtaW1hZ2UtbWFyZ2luO1xufVxuXG4vKipcbiAqIENpcmN1bGFyIGF2YXRhcnNcbiAqIENvdXJ0ZXN5IG9mIGh0dHA6Ly9jb2RlcGVuLmlvL2JyYWRlbmhhbW0vcGVuL3lEdWthXG4gKi9cblxuLmNvbW1lbnQtYXZhdGFyIHtcbiAgICBsaW5lLWhlaWdodDogMDsgICAgIC8qIHJlbW92ZSBsaW5lLWhlaWdodCAqLyBcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7ICAvKiBjaXJjbGUgd3JhcHMgaW1hZ2UgKi9cbiAgICBib3JkZXItcmFkaXVzOiA1MCU7IC8qIHJlbGF0aXZlIHZhbHVlICovXG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbihib3JkZXIgMzAwbXMgZWFzZSk7XG4gICAgaGVpZ2h0OiAkY29tbWVudC1hdmF0YXItYm94LXNpemU7XG4gICAgd2lkdGg6ICRjb21tZW50LWF2YXRhci1ib3gtc2l6ZTtcbiAgICBib3JkZXI6ICRjb21tZW50LWltYWdlLWJvcmRlci13aWR0aCBzb2xpZCAkY29tbWVudC1hdmF0YXItYm9yZGVyLWNvbG9yO1xuICAgIHBhZGRpbmc6ICRjb21tZW50LWltYWdlLWJvcmRlci1wYWRkaW5nO1xufVxuXG4uY29tbWVudC1hdmF0YXIgaW1nIHtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7IC8qIHJlbGF0aXZlIHZhbHVlIGZvclxuICAgICAgICAgICAgICAgICAgIGFkanVzdGFibGUgaW1hZ2Ugc2l6ZSAqL1xufVxuXG4uY29tbWVudC1jb250ZW50IHtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIC5jb21tZW50LWNvbnRlbnRfX3RpdGxlIHtcbiAgICAgICAgZm9udC1zaXplOiAkY29tbWVudC1oZWFkZXItZm9udC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAuNWVtO1xuICAgIH1cblxuICAgIHAge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAuNWVtO1xuICAgIH1cblxuICAgIC5jb21tZW50LWRldGFpbCB7XG4gICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgZm9udC1zaXplOiAuOWVtO1xuICAgICAgICBjb2xvcjogJGNvbW1lbnQtZGV0YWlsLWNvbG9yO1xuICAgIH1cbn1cblxuLmNvbW1lbnQtc3Rhci1yYXRpbmcgaSB7XG4gICAgY29sb3I6ICRjb21tZW50LXN0YXItY29sb3I7XG4gICAgbWFyZ2luLXJpZ2h0OiAtMnB4O1xufVxuXG4uY29tbWVudC1zdGFyLXJhdGluZyB7XG4gICAgZGlzcGxheTogaW5saW5lO1xuICAgIG1hcmdpbjogMDtcblxuICAgIGZpZ2NhcHRpb24ge1xuICAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgIH1cbn1cblxuLmNvbW1lbnQtc3Rhci1yYXRpbmctY291bnQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5jb21tZW50LWRldGFpbCB7XG4gICAgLmNvbW1lbnQtc3Rhci1yYXRpbmcge1xuICAgICAgICBvcGFjaXR5OiAuNTtcbiAgICAgICAgZmlnY2FwdGlvbiB7XG4gICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmNvbW1lbnRzLWZvcm0ge1xuICAgIHBhZGRpbmctdG9wOiAxcmVtO1xufVxuXG4uY29tbWVudHMtZm9ybS13cmFwcGVyIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMXJlbTtcbn1cblxuLmNvbW1lbnRzLWZvcm0tZXJyb3I6ZW1wdHksXG4uY29tbWVudC1mb3JtLXZhbGlkYXRpb24tZXJyb3JzOmVtcHR5IHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4uY29tbWVudHMtZ3VpZGVsaW5lcyB7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRib3JkZXItY29sb3I7XG4gICAgcGFkZGluZy10b3A6IDJyZW07XG4gICAgXG4gICAgcCwgbGkge1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiAgICB9XG59XG5cbiNwcm9kdWt0X2FubWVsZGVsc2VyX2Zvcm1fdmFsaWRlcnQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC13aWR0aDogbm9uZTtcbn1cblxuQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgIC5jb21tZW50LWltYWdlIHtcbiAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIHdpZHRoOiAkY29tbWVudC1pbWFnZS13aWR0aC1sYXJnZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jb21tZW50LWF2YXRhciB7XG4gICAgICAgIGhlaWdodDogJGNvbW1lbnQtYXZhdGFyLWJveC1zaXplLWxhcmdlO1xuICAgICAgICB3aWR0aDogJGNvbW1lbnQtYXZhdGFyLWJveC1zaXplLWxhcmdlO1xuICAgIH1cbn0iLCIuY29va2llX25vdGljZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgd2lkdGg6IDM5MHB4O1xuICAgIHotaW5kZXg6IDk5OTk5OTk7XG4gICAgbWF4LWhlaWdodDogOTUlO1xuICAgIHJpZ2h0OiAyMHB4O1xuICAgIGJvdHRvbTogMjBweDtcbn1cblxuLmNvb2tpZV9ub3RpY2VfYXJlYSB7XG5cdG1hcmdpbi1sZWZ0OiA1JTtcblx0bWFyZ2luLXJpZ2h0OiA1JTtcbiAgICBtYXJnaW4tYm90dG9tOiA1JTtcbn1cblxuI2Nvb2tpZV9ub3RpY2VfdGV4dCB7XG4gICAgcGFkZGluZzogMXJlbSAwO1xuICAgIGNvbG9yOndoaXRlO1xufVxuXG4jY29va2llX2J1dHRvbnMgYSB7XG4gICAgcGFkZGluZzogOHB4O1xuXG4gICAgJjp2aXNpdGVkLCBcbiAgICAmOmFjdGl2ZSB7XG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICB9XG59XG5cbiNjb29raWVfYnV0dG9ucyBzcGFuIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xufSIsIi8vIEVxdWFsIGhlaWdodCBjb2x1bW4gZ3JpZCwgbWVkaWEgcXVlcnkgc2V0dGluZ3NcbiRlcXVhbC1jb2wtZ3JpZC1zbWFsbC1yYW5nZTogICAoMGVtLCAyOS45MzdlbSkgIWRlZmF1bHQ7XG4kZXF1YWwtY29sLWdyaWQtbWVkaXVtLXJhbmdlOiAgKDMwZW0sIDQ3LjkzN2VtKSAhZGVmYXVsdDtcbiRlcXVhbC1jb2wtZ3JpZC1sYXJnZS1yYW5nZTogICAoNDhlbSwgNjMuOTM3ZW0pICFkZWZhdWx0O1xuJGVxdWFsLWNvbC1ncmlkLXhsYXJnZS1yYW5nZTogICg2NGVtLCA5MGVtKSAhZGVmYXVsdDtcbiRlcXVhbC1jb2wtZ3JpZC14eGxhcmdlLXJhbmdlOiAgKDkwLjA2M2VtLCA5OTk5OTk5OWVtKSAhZGVmYXVsdDtcblxuJGVxdWFsLWNvbC1ncmlkLXNtYWxsLXVwOiAgICAgICRzY3JlZW4gIWRlZmF1bHQ7XG4kZXF1YWwtY29sLWdyaWQtc21hbGwtb25seTogICAgXCIjeyRzY3JlZW59IGFuZCAobWF4LXdpZHRoOiN7dXBwZXItYm91bmQoJGVxdWFsLWNvbC1ncmlkLXNtYWxsLXJhbmdlKX0pXCIgIWRlZmF1bHQ7XG4kZXF1YWwtY29sLWdyaWQtbWVkaXVtLXVwOiAgICAgXCIjeyRzY3JlZW59IGFuZCAobWluLXdpZHRoOiN7bG93ZXItYm91bmQoJGVxdWFsLWNvbC1ncmlkLW1lZGl1bS1yYW5nZSl9KVwiICFkZWZhdWx0O1xuJGVxdWFsLWNvbC1ncmlkLW1lZGl1bS1vbmx5OiAgIFwiI3skc2NyZWVufSBhbmQgKG1pbi13aWR0aDoje2xvd2VyLWJvdW5kKCRlcXVhbC1jb2wtZ3JpZC1tZWRpdW0tcmFuZ2UpfSkgYW5kIChtYXgtd2lkdGg6I3t1cHBlci1ib3VuZCgkZXF1YWwtY29sLWdyaWQtbWVkaXVtLXJhbmdlKX0pXCIgIWRlZmF1bHQ7XG4kZXF1YWwtY29sLWdyaWQtbGFyZ2UtdXA6ICAgICAgXCIjeyRzY3JlZW59IGFuZCAobWluLXdpZHRoOiN7bG93ZXItYm91bmQoJGVxdWFsLWNvbC1ncmlkLWxhcmdlLXJhbmdlKX0pXCIgIWRlZmF1bHQ7XG4kZXF1YWwtY29sLWdyaWQtbGFyZ2Utb25seTogICAgXCIjeyRzY3JlZW59IGFuZCAobWluLXdpZHRoOiN7bG93ZXItYm91bmQoJGVxdWFsLWNvbC1ncmlkLWxhcmdlLXJhbmdlKX0pIGFuZCAobWF4LXdpZHRoOiN7dXBwZXItYm91bmQoJGVxdWFsLWNvbC1ncmlkLWxhcmdlLXJhbmdlKX0pXCIgIWRlZmF1bHQ7XG4kZXF1YWwtY29sLWdyaWQteGxhcmdlLXVwOiAgICAgXCIjeyRzY3JlZW59IGFuZCAobWluLXdpZHRoOiN7bG93ZXItYm91bmQoJGVxdWFsLWNvbC1ncmlkLXhsYXJnZS1yYW5nZSl9KVwiICFkZWZhdWx0O1xuJGVxdWFsLWNvbC1ncmlkLXhsYXJnZS1vbmx5OiAgIFwiI3skc2NyZWVufSBhbmQgKG1pbi13aWR0aDoje2xvd2VyLWJvdW5kKCRlcXVhbC1jb2wtZ3JpZC14bGFyZ2UtcmFuZ2UpfSkgYW5kIChtYXgtd2lkdGg6I3t1cHBlci1ib3VuZCgkZXF1YWwtY29sLWdyaWQteGxhcmdlLXJhbmdlKX0pXCIgIWRlZmF1bHQ7XG4kZXF1YWwtY29sLWdyaWQteHhsYXJnZS11cDogICAgXCIjeyRzY3JlZW59IGFuZCAobWluLXdpZHRoOiN7bG93ZXItYm91bmQoJGVxdWFsLWNvbC1ncmlkLXh4bGFyZ2UtcmFuZ2UpfSlcIiAhZGVmYXVsdDtcbiRlcXVhbC1jb2wtZ3JpZC14eGxhcmdlLW9ubHk6ICBcIiN7JHNjcmVlbn0gYW5kIChtaW4td2lkdGg6I3tsb3dlci1ib3VuZCgkZXF1YWwtY29sLWdyaWQteHhsYXJnZS1yYW5nZSl9KSBhbmQgKG1heC13aWR0aDoje3VwcGVyLWJvdW5kKCRlcXVhbC1jb2wtZ3JpZC14eGxhcmdlLXJhbmdlKX0pXCIgIWRlZmF1bHQ7XG5cbi5lcXVhbC1oZWlnaHQtY29sdW1ucyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAuZmxleGJveCAmIHtcbiAgICAgICAgQGluY2x1ZGUgZGlzcGxheShmbGV4KTtcbiAgICAgICAgQGluY2x1ZGUgZmxleC13cmFwKHdyYXApO1xuICAgIH1cblxuICAgIFtjbGFzcyo9XCJjb2x1bW5cIl0rW2NsYXNzKj1cImNvbHVtblwiXTpsYXN0LWNoaWxkIHsgLy8gTmVnYXRlIHRoZSBmb3VuZGF0aW9uIGdyaWQgY3NzXG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgIH1cbn1cblxuLmVxdWFsLWhlaWdodC1jb2x1bW4ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgLmZsZXhib3ggJiB7XG4gICAgICAgIEBpbmNsdWRlIGRpc3BsYXkoZmxleCk7XG4gICAgfVxuXG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogJGNvbHVtbi1ndXR0ZXIvMjtcbn1cblxuLmVxdWFsLWhlaWdodC1jb2x1bW4taW5uZXJ3cmFwIHtcbiAgICBwYWRkaW5nOiAkZXF1YWwtY29sLWlubmVyLXBhZGRpbmc7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgaGVpZ2h0OiAxMDAlO1xufVxuXG4uZmxleGJveCxcbi5uby1qcyB7XG4gICAgLmVxdWFsLWhlaWdodC1jb2x1bW4taW5uZXJ3cmFwICB7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICB9XG59XG5cbi5lcXVhbC1oZWlnaHQtY29sdW1uX19pbWFnZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAyNTBweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbWFyZ2luLWJvdHRvbTogLjc1cmVtO1xuXG4gICAgaW1nIHtcbiAgICAgICAgbWF4LWhlaWdodDogMjUwcHg7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG59XG5cbi5lcXVhbC1oZWlnaHQtY29sdW1uX19yZWFkb24ge1xuICAgIG1hcmdpbi1sZWZ0OiAtKCRjb2x1bW4tZ3V0dGVyLzIpO1xufVxuXG4vKiAyIGNvbHVtbnMgKi9cbkBtZWRpYSAjeyRlcXVhbC1jb2wtZ3JpZC1tZWRpdW0tdXB9IHtcbiAgICAuZXF1YWwtaGVpZ2h0LWNvbHVtbiB7XG4gICAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKCRjb2x1bW5zOjYsICRjb2xsYXBzZTpudWxsLCAkZmxvYXQ6ZmFsc2UpO1xuICAgIH1cblxuICAgIC5lcXVhbC1oZWlnaHQtY29sdW1uX19pbWFnZSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDIwMHB4O1xuICAgICAgICBpbWcge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjAwcHg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qIDMgY29sdW1ucyAqL1xuQG1lZGlhICN7JGVxdWFsLWNvbC1ncmlkLWxhcmdlLXVwfSAge1xuICAgIC5lcXVhbC1oZWlnaHQtY29sdW1uIHtcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJGNvbHVtbnM6NCwgJGNvbGxhcHNlOm51bGwsICRmbG9hdDpmYWxzZSk7XG4gICAgfVxufVxuXG4vKiA0IGNvbHVtbnMgKi9cbkBtZWRpYSAjeyRlcXVhbC1jb2wtZ3JpZC14bGFyZ2UtdXB9ICB7XG4gICAgLm5vLXNwbGl0LW1lbnUgLmVxdWFsLWhlaWdodC1jb2x1bW4ge1xuICAgICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbigkY29sdW1uczozLCAkY29sbGFwc2U6bnVsbCwgJGZsb2F0OmZhbHNlKTtcbiAgICB9XG59IiwiLyohIGZhbmN5Qm94IHYyLjEuNSBmYW5jeWFwcHMuY29tIHwgZmFuY3lhcHBzLmNvbS9mYW5jeWJveC8jbGljZW5zZSAqL1xuLmZhbmN5Ym94LXdyYXAsXG4uZmFuY3lib3gtc2tpbixcbi5mYW5jeWJveC1vdXRlcixcbi5mYW5jeWJveC1pbm5lcixcbi5mYW5jeWJveC1pbWFnZSxcbi5mYW5jeWJveC13cmFwIGlmcmFtZSxcbi5mYW5jeWJveC13cmFwIG9iamVjdCxcbi5mYW5jeWJveC1uYXYsXG4uZmFuY3lib3gtbmF2IHNwYW4sXG4uZmFuY3lib3gtdG1wXG57XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgYm9yZGVyOiAwO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcbn1cblxuLmZhbmN5Ym94LXdyYXAge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB6LWluZGV4OiA4MDIwO1xufVxuXG4uZmFuY3lib3gtc2tpbiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJhY2tncm91bmQ6ICNmOWY5Zjk7XG4gICAgY29sb3I6ICM0NDQ7XG4gICAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gICAgICAgLW1vei1ib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG59XG5cbi5mYW5jeWJveC1vcGVuZWQge1xuICAgIHotaW5kZXg6IDgwMzA7XG59XG5cbi5mYW5jeWJveC1vcGVuZWQgLmZhbmN5Ym94LXNraW4ge1xuICAgLW1vei1ib3gtc2hhZG93OiAwIDEwcHggMjVweCByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMTBweCAyNXB4IHJnYmEoMCwgMCwgMCwgMC41KTtcbn1cblxuLmZhbmN5Ym94LW91dGVyLCAuZmFuY3lib3gtaW5uZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmZhbmN5Ym94LWlubmVyIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uZmFuY3lib3gtdHlwZS1pZnJhbWUgLmZhbmN5Ym94LWlubmVyIHtcbiAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG59XG5cbi5mYW5jeWJveC1lcnJvciB7XG4gICAgY29sb3I6ICM0NDQ7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDE1cHg7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLmZhbmN5Ym94LWltYWdlLCAuZmFuY3lib3gtaWZyYW1lIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG59XG5cbi5mYW5jeWJveC1pbWFnZSB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1heC1oZWlnaHQ6IDEwMCU7XG59XG5cbiNmYW5jeWJveC1sb2FkaW5nLCAuZmFuY3lib3gtY2xvc2UsIC5mYW5jeWJveC1wcmV2IHNwYW4sIC5mYW5jeWJveC1uZXh0IHNwYW4ge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnL2Fzc2V0cy9pbWcvZmFuY3lib3hfc3ByaXRlLnBuZycpO1xufVxuXG4jZmFuY3lib3gtbG9hZGluZyB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogNTAlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICBtYXJnaW4tdG9wOiAtMjJweDtcbiAgICBtYXJnaW4tbGVmdDogLTIycHg7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtMTA4cHg7XG4gICAgb3BhY2l0eTogMC44O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB6LWluZGV4OiA4MDYwO1xufVxuXG4jZmFuY3lib3gtbG9hZGluZyBkaXYge1xuICAgIHdpZHRoOiA0NHB4O1xuICAgIGhlaWdodDogNDRweDtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoJy9hc3NldHMvaW1nL2ZhbmN5Ym94X2xvYWRpbmcuZ2lmJykgY2VudGVyIGNlbnRlciBuby1yZXBlYXQ7XG59XG5cbi5mYW5jeWJveC1jbG9zZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogLTE4cHg7XG4gICAgcmlnaHQ6IC0xOHB4O1xuICAgIHdpZHRoOiAzNnB4O1xuICAgIGhlaWdodDogMzZweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgei1pbmRleDogODA0MDtcbn1cblxuLmZhbmN5Ym94LW5hdiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICB3aWR0aDogNDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgwLDAsMCwwKTtcbiAgICB6LWluZGV4OiA4MDQwO1xufVxuXG4uZmFuY3lib3gtcHJldiB7XG4gICAgbGVmdDogMDtcbn1cblxuLmZhbmN5Ym94LW5leHQge1xuICAgIHJpZ2h0OiAwO1xufVxuXG4uZmFuY3lib3gtbmF2IHNwYW4ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICB3aWR0aDogMzZweDtcbiAgICBoZWlnaHQ6IDM0cHg7XG4gICAgbWFyZ2luLXRvcDogLTE4cHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHotaW5kZXg6IDgwNDA7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG4uZmFuY3lib3gtcHJldiBzcGFuIHtcbiAgICBsZWZ0OiAxMHB4O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAgLTM2cHg7XG59XG5cbi5mYW5jeWJveC1uZXh0IHNwYW4ge1xuICAgIHJpZ2h0OiAxMHB4O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAgLTcycHg7XG59XG5cbi5mYW5jeWJveC1uYXY6aG92ZXIgc3BhbiB7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbn1cblxuLmZhbmN5Ym94LXRtcCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogLTk5OTk5cHg7XG4gICAgbGVmdDogLTk5OTk5cHg7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIG1heC13aWR0aDogOTk5OTlweDtcbiAgICBtYXgtaGVpZ2h0OiA5OTk5OXB4O1xuICAgIG92ZXJmbG93OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG59XG5cbi8qIE92ZXJsYXkgaGVscGVyICovXG5cbi5mYW5jeWJveC1sb2NrIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IGF1dG87XG59XG5cbi5mYW5jeWJveC1sb2NrIGJvZHkge1xuICAgIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcbn1cblxuLmZhbmN5Ym94LWxvY2stdGVzdCB7XG4gICAgb3ZlcmZsb3cteTogaGlkZGVuICFpbXBvcnRhbnQ7XG59XG5cbi5mYW5jeWJveC1vdmVybGF5IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHotaW5kZXg6IDgwMTA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLDAsMCwuNzUpO1xufVxuXG4uZmFuY3lib3gtb3ZlcmxheS1maXhlZCB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIGJvdHRvbTogMDtcbiAgICByaWdodDogMDtcbn1cblxuLmZhbmN5Ym94LWxvY2sgLmZhbmN5Ym94LW92ZXJsYXkge1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICAgIG92ZXJmbG93LXk6IHNjcm9sbDtcbn1cblxuLyogVGl0bGUgaGVscGVyICovXG5cbi5mYW5jeWJveC10aXRsZSB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgICB6LWluZGV4OiA4MDUwO1xufVxuXG4uZmFuY3lib3gtb3BlbmVkIC5mYW5jeWJveC10aXRsZSB7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbn1cblxuLmZhbmN5Ym94LXRpdGxlLWZsb2F0LXdyYXAge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IDA7XG4gICAgcmlnaHQ6IDUwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAtMzVweDtcbiAgICB6LWluZGV4OiA4MDUwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmZhbmN5Ym94LXRpdGxlLWZsb2F0LXdyYXAgLmNoaWxkIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luLXJpZ2h0OiAtMTAwJTtcbiAgICBwYWRkaW5nOiAycHggMjBweDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgLyogRmFsbGJhY2sgZm9yIHdlYiBicm93c2VycyB0aGF0IGRvZXNuJ3Qgc3VwcG9ydCBSR0JhICovXG4gICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjgpO1xuICAgICAgIC1tb3otYm9yZGVyLXJhZGl1czogMTVweDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDE1cHg7XG4gICAgdGV4dC1zaGFkb3c6IDAgMXB4IDJweCAjMjIyO1xuICAgIGNvbG9yOiAjRkZGO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5mYW5jeWJveC10aXRsZS1vdXRzaWRlLXdyYXAge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgIGNvbG9yOiAjZmZmO1xufVxuXG4uZmFuY3lib3gtdGl0bGUtaW5zaWRlLXdyYXAge1xuICAgIHBhZGRpbmctdG9wOiAxMHB4O1xufVxuXG4uZmFuY3lib3gtdGl0bGUtb3Zlci13cmFwIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgcGFkZGluZzogMTBweDtcbiAgICBiYWNrZ3JvdW5kOiAjMDAwO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgLjgpO1xufVxuXG4vKlJldGluYSBncmFwaGljcyEqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjUpLFxuICAgICAgIG9ubHkgc2NyZWVuIGFuZCAobWluLS1tb3otZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjUpLFxuICAgICAgIG9ubHkgc2NyZWVuIGFuZCAobWluLWRldmljZS1waXhlbC1yYXRpbzogMS41KXtcblxuICAgICNmYW5jeWJveC1sb2FkaW5nLCAuZmFuY3lib3gtY2xvc2UsIC5mYW5jeWJveC1wcmV2IHNwYW4sIC5mYW5jeWJveC1uZXh0IHNwYW4ge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy9hc3NldHMvaW1nL2ZhbmN5Ym94X3Nwcml0ZV8yeC5wbmcnKTtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiA0NHB4IDE1MnB4OyAvKlRoZSBzaXplIG9mIHRoZSBub3JtYWwgaW1hZ2UsIGhhbGYgdGhlIHNpemUgb2YgdGhlIGhpLXJlcyBpbWFnZSovXG4gICAgfVxuXG4gICAgI2ZhbmN5Ym94LWxvYWRpbmcgZGl2IHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcvYXNzZXRzL2ltZy9mYW5jeWJveF9sb2FkaW5nXzJ4LmdpZicpO1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDI0cHggMjRweDsgLypUaGUgc2l6ZSBvZiB0aGUgbm9ybWFsIGltYWdlLCBoYWxmIHRoZSBzaXplIG9mIHRoZSBoaS1yZXMgaW1hZ2UqL1xuICAgIH1cbn0iLCIvLyBBZGRvbiB0byBGb3VuZGF0aW9uIEZvcm1zXG5sYWJlbCB7XG4gICAgY29sb3I6IGluaGVyaXQ7XG59XG5cbmxhYmVsID4gaW5wdXRbdHlwZT1jaGVja2JveF0ge1xuICAgIG1hcmdpbi1yaWdodDogJGZvcm0tc3BhY2luZyAqIC41O1xufVxuXG4uZXJyb3ItbXNnIHtcbiAgICBjb2xvcjogJGFsZXJ0LWNvbG9yO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjVlbTtcbiAgICBwYWRkaW5nLWJvdHRvbTogLjVlbTtcbn1cblxuaW5wdXRbdHlwZT1zZWFyY2hdIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgdGV4dC1pbmRlbnQ6IC41cmVtO1xufVxuXG4vL0BUT0RPIGRlYWwgd2l0aCA6cGxhY2Vob2xkZXIgY29sb3JzXG4vKiBXZSB1c2UgdGhpcyB0byBnZXQgYmFzaWMgc3R5bGluZyBvbiBhbGwgYmFzaWMgZm9ybSBlbGVtZW50cyAqL1xuaW5wdXRbdHlwZT1cInRleHRcIl0sXG5pbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0sXG5pbnB1dFt0eXBlPVwiZGF0ZVwiXSxcbmlucHV0W3R5cGU9XCJkYXRldGltZVwiXSxcbmlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXSxcbmlucHV0W3R5cGU9XCJtb250aFwiXSxcbmlucHV0W3R5cGU9XCJ3ZWVrXCJdLFxuaW5wdXRbdHlwZT1cImVtYWlsXCJdLFxuaW5wdXRbdHlwZT1cIm51bWJlclwiXSxcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl0sXG5pbnB1dFt0eXBlPVwidGVsXCJdLFxuaW5wdXRbdHlwZT1cInRpbWVcIl0sXG5pbnB1dFt0eXBlPVwidXJsXCJdLFxudGV4dGFyZWEsXG5zZWxlY3Qge1xuICAgIEBpbmNsdWRlIHJhZGl1cygkaW5wdXQtYm9yZGVyLXJhZGl1cyk7XG59XG5cbi8qIEZvdW5kYXRpb24gaGFyZGNvZGVzIHJhZGl1cyB0byAwLCB0aGlzIGZpeGVzIGl0ICovXG5pbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcblx0QGluY2x1ZGUgcmFkaXVzKCRidXR0b24tcmFkaXVzKTtcbn1cblxuLnByZWZpeC1yYWRpdXMucm93LmNvbGxhcHNlIHtcblx0aW5wdXQsIHRleHRhcmVhLCBzZWxlY3Qge1xuXHRcdEBpbmNsdWRlIHJhZGl1cygwKTsgQGluY2x1ZGUgc2lkZS1yYWRpdXMoJG9wcG9zaXRlLWRpcmVjdGlvbiwgJGlucHV0LWJvcmRlci1yYWRpdXMpO1xuXHR9XG59XG4ucG9zdGZpeC1yYWRpdXMucm93LmNvbGxhcHNlIHtcblx0aW5wdXQsIHRleHRhcmVhLCBzZWxlY3Qge1xuXHRcdEBpbmNsdWRlIHJhZGl1cygwKTsgQGluY2x1ZGUgc2lkZS1yYWRpdXMoJGRlZmF1bHQtZmxvYXQsICRpbnB1dC1ib3JkZXItcmFkaXVzKTtcblx0fVxufVxuXG5ALW1vei1kb2N1bWVudCB1cmwtcHJlZml4KCkge1xuICAgIHNlbGVjdCB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gICAgfVxufSIsIi5rbGFybmFfYm9rcyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICBtYXgtaGVpZ2h0OiAxMDBweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4ua2xhcm5hLWluZm8ge1xuICAgIC5rbGFybmEtaW5mb19fYmFkZ2Uge1xuICAgICAgICBmbG9hdDogcmlnaHQ7IFxuICAgICAgICBtYXJnaW4tbGVmdDogLjVyZW07XG4gICAgfVxufVxuXG4ua2xhcm5hLXdpZGdldCB7XG5cdGhlaWdodDogNzBweDtcbn0iLCIkaTE4bi1wb3B1cC1wb3NpdGlvbjogcmlnaHQgIWRlZmF1bHQ7XG5cbi5zZXR0aW5nX19mb3JtIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMTAwO1xuXG4gICAgaS5mYSB7XG4gICAgICAgIHdpZHRoOiAuOXJlbTtcbiAgICB9XG59XG5cbi5zZXR0aW5nX19idXR0b246Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG59XG5cbi5zZXR0aW5nX19zZWxlY3Qge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIG9wYWNpdHk6IC4zO1xuICAgIHdpZHRoOiAxNXJlbTtcbiAgICB6LWluZGV4OiAyO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci1jb2xvcjtcbiAgICBwYWRkaW5nOiAxcmVtO1xuICAgIEBpbmNsdWRlIHRyYW5zbGF0ZTNkKGlmKCRpMThuLXBvcHVwLXBvc2l0aW9uID09IHJpZ2h0LCAwLCAtOTIlKSwgLTFyZW0sIDAsIHNjYWxlM2QoLjksIC45LCAuOSkpO1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAxNTBtcywgLXdlYmtpdC10cmFuc2Zvcm0gMTUwbXMgZWFzZTtcbiAgICAtd2Via2l0LXRyYW5zaXRpb24tZGVsYXk6IGVhc2UsIDBzO1xuICAgIC1tb3otdHJhbnNpdGlvbjogb3BhY2l0eSAxNTBtcyBlYXNlLCAtbW96LXRyYW5zZm9ybSAxNTBtcyBlYXNlO1xuICAgIC1vLXRyYW5zaXRpb246IG9wYWNpdHkgMTUwbXMgZWFzZSwgLW8tdHJhbnNmb3JtIDE1MG1zIGVhc2U7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNTBtcyBlYXNlLCB0cmFuc2Zvcm0gMTUwbXMgZWFzZTtcblxuICAgICYgPiAqIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICBzZWxlY3Qge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgd2lkdGg6IDY1JTtcbiAgICB9XG5cbiAgICBpbnB1dFt0eXBlPXN1Ym1pdF0ge1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIHdpZHRoOiAzMCU7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiByZW0tY2FsYygzNyk7XG4gICAgICAgIGhlaWdodDogcmVtLWNhbGMoMzcpO1xuICAgICAgICBwYWRkaW5nOiAwIC41cmVtO1xuICAgIH1cbn1cblxuI2xhbmd1YWdlLXNob3csXG4jY3VycmVuY3ktc2hvdyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbiNsYW5ndWFnZS1jbG9zZSxcbiNjdXJyZW5jeS1jbG9zZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuI2xhbmd1YWdlLXNob3c6dGFyZ2V0LFxuI2N1cnJlbmN5LXNob3c6dGFyZ2V0IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbn1cblxuI2xhbmd1YWdlLXNob3c6dGFyZ2V0ICsgI2xhbmd1YWdlLWNsb3NlLFxuI2N1cnJlbmN5LXNob3c6dGFyZ2V0ICsgI2N1cnJlbmN5LWNsb3NlIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4jbGFuZ3VhZ2UtY2xvc2U6dGFyZ2V0LFxuI2N1cnJlbmN5LWNsb3NlOnRhcmdldCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbiNsYW5ndWFnZS1jbG9zZTp0YXJnZXQgKyAjbGFuZ3VhZ2Utc2hvdyxcbiNjdXJyZW5jeS1jbG9zZTp0YXJnZXQgKyAjY3VycmVuY3ktc2hvdyB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuI2xhbmd1YWdlLWNsb3NlOnRhcmdldCB+ICNsYW5ndWFnZSxcbiNjdXJyZW5jeS1jbG9zZTp0YXJnZXQgfiAjY3VycmVuY3kge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgQGluY2x1ZGUgdHJhbnNsYXRlM2QoaWYoJGkxOG4tcG9wdXAtcG9zaXRpb24gPT0gcmlnaHQsIDAsIC05MCUpLCAwLCAwLCBzY2FsZTNkKDEsIDEsIDEpKTtcbn1cblxuLmpzLW5hdiAjbGFuZ3VhZ2UsXG4uanMtbmF2ICNjdXJyZW5jeSB7XG4gICAgZGlzcGxheTogbm9uZTtcbn0iLCIvLyBQYWdlLXNwZWNpZmljIHN0eWxlcyBcbkBpbXBvcnQgXCJwYWdlcy9jYXJ0XCI7XG5AaW1wb3J0IFwicGFnZXMvZnJvbnRwYWdlXCI7XG5AaW1wb3J0IFwicGFnZXMvcmVjZWlwdFwiO1xuQGltcG9ydCBcInBhZ2VzL3JlZ2lzdGVyLWFjY291bnRcIjtcbkBpbXBvcnQgXCJwYWdlcy93aXNobGlzdFwiO1xuIiwiI2tuYXBwZS1tZW51X2tqb3Age1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgbWFyZ2luOiAwO1xuXG4gICAgbGkge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgICB9XG59IiwiLmZyb250cGFnZV9fY3VzdG9tLWNvbnRlbnQge1xuICAgIG1hcmdpbi1ib3R0b206ICRjb2x1bW4tZ3V0dGVyO1xufSIsIi5yZWNlaXB0X19oZWFkZXIge1xuICAgIGZsb2F0OiBsZWZ0O1xufVxuXG4uYnV0dG9uLnJlY2VpcHRfX3ByaW50IHtcbiAgICBAZXh0ZW5kICVjb250ZW50X19wcmltYXJ5LWNvbG9yLWJnO1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIG1hcmdpbi10b3A6IC4xNXJlbTtcbn1cblxuLnJlY2VpcHRfX3RoYW5rcyB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi5yZWNlaXB0X19vcmRlci1vdmVydmlldyxcbi5yZWNlaXB0X19jdXN0b21lci1pbmZvIHtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgIC5yZWNlaXB0X19wcmludCB7XG4gICAgICAgIG1hcmdpbi10b3A6IC41cmVtO1xuICAgIH1cblxuICAgIC5yZWNlaXB0X19vcmRlci1vdmVydmlldyxcbiAgICAucmVjZWlwdF9fY3VzdG9tZXItaW5mbyB7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICBtaW4td2lkdGg6IDYwJTtcbiAgICB9XG59XG5cbkBtZWRpYSAjeyRsYXJnZS11cH0ge1xuICAgIC5yZWNlaXB0X19vcmRlci1vdmVydmlldyxcbiAgICAucmVjZWlwdF9fY3VzdG9tZXItaW5mbyB7XG4gICAgICAgIG1pbi13aWR0aDogNTAlO1xuICAgIH1cbn0iLCJcbmh0bWwucGxhY2Vob2xkZXIgLmhhcy1wbGFjZWhvbGRlciB7XG4gICAgbGFiZWwge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuLmxvZ2luLWNvbHVtbiwgLnJlZ2lzdGVyLWNvbHVtbiB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIFxuICAgID4gZm9ybSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgbWF4LXdpZHRoOiAzNjBweDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxufVxuXG4uaWNvbi1sb2ctb3V0IGEge1xuICAgICY6YWZ0ZXIge1xuICAgICAgICBAaW5jbHVkZSBpY29uKCRpY29uLXZhci1leGl0LXRvLWFwcCk7XG4gICAgfVxufVxuXG4uYWNjb3VudC10YWJzIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtICFpbXBvcnRhbnQ7XG5cbiAgICAudGFiLXRpdGxlIGEge1xuICAgICAgICBwYWRkaW5nOiAwIC42cmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogcmVtLWNhbGMoNDApO1xuXG4gICAgICAgIC50b3VjaCAmIHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkdG91Y2gtZnJpZW5kbHktc2l6ZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmVkaXQtYWNjb3VudC1wYWdlLFxuLmdpZnQtY2VydGlmaWNhdGUtcGFnZSB7XG4gICAgZmllbGRzZXQge1xuICAgICAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gICAgICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuXG4gICAgZm9ybSB7XG4gICAgICAgIC5yb3cgLnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBncmlkLXJvdygkYmVoYXZpb3I6IG5lc3QpOyBcblxuICAgICAgICAgICAgLmNvbHVtbiwgXG4gICAgICAgICAgICAuY29sdW1ucyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oKTsgXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuY29udHJvbC1ncm91cCAuY29udHJvbC1ncm91cCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmVkaXQtYWNjb3VudF9fYnV0dG9ucyB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBtYXJnaW46IDA7XG5cbiAgICAuaWNvbiB7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIG1hcmdpbi10b3A6IDJweDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogLjVyZW07XG4gICAgfVxufVxuXG4ua2Fzc2Vfb25lX2xvZ2dpbm5fZXJyb3Ige1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGNvbG9yOiAkYWxlcnQtY29sb3I7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbSAqICRwYXJhZ3JhcGgtbGluZS1oZWlnaHQ7XG59XG5cbkBtZWRpYSAjeyRzbWFsbC1wbHVzLWRvd259IHtcbiAgICAubG9naW4tY29sdW1uIHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgJGJvcmRlci1jb2xvcjtcbiAgICB9XG5cbiAgICAuaWNvbi1sb2ctb3V0IGEge1xuICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAudGFicyAuaWNvbi1sb2ctb3V0ID4gYSB7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgfVxufVxuXG5AbWVkaWEgI3skc21hbGwtcGx1cy11cH0ge1xuICAgIC50YWJzIHsgICAgICBcbiAgICAgICAgLnRhYi10aXRsZSA+IGEge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5pY29uLWxvZy1vdXQgPiBhIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuXG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IC41cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYWxlcnQtY29sb3I7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgIC5lZGl0LWFjY291bnRfX2J1dHRvbnMge1xuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcblxuICAgICAgICAuaWNvbiB7XG4gICAgICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG4gICAgfVxufSIsIiN3aXNobGlzdF90YWJsZSB7XG4gICAgbWluLXdpZHRoOiAxMDAlO1xufVxuXG4ud2lzaGxpc3RfX3Byb2R1Y3QtbmFtZSB7XG4gICAgcDpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG59XG5cbi53aXNobGlzdF9fYnV0dG9uLWNlbGwge1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICBpbnB1dFt0eXBlPXN1Ym1pdF0ge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbn1cblxuLndpc2hsaXN0X19kZWxldGUsXG4ud2lzaGxpc3RfX2RlbGV0ZTpob3ZlciB7XG4gICAgY29sb3I6ICRhbGVydC1jb2xvcjtcbn1cblxuQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgICN3aXNobGlzdF90YWJsZSB7XG4gICAgICAgIG1pbi13aWR0aDogODAlO1xuICAgIH1cbn1cblxuQG1lZGlhICN7JGxhcmdlLXVwfSB7XG4gICAgI3dpc2hsaXN0X3RhYmxlIHtcbiAgICAgICAgbWluLXdpZHRoOiA2MCU7XG4gICAgfVxufSIsIi5wYWdpbmF0aW9uLXdyYXBwZXIge1xuICAgIHBhZGRpbmctdG9wOiAkY29sdW1uLWd1dHRlcjsgICAgXG59IiwiJHByb2R1Y3QtdGl0bGUtYm9yZGVyLWNvbG9yOiAgICAgICAkYm9yZGVyLWNvbG9yICFkZWZhdWx0O1xuJHByb2R1Y3QtcHJpY2UtZm9udHNpemU6ICAgICAgICAgICByZW0tY2FsYygzNikgIWRlZmF1bHQ7XG4kcHJvZHVjdC1wcmljZS1mb250c2l6ZS1sZzogICAgICAgIHJlbS1jYWxjKDM2KSAhZGVmYXVsdDtcbiRwcm9kdWN0LXN0b2NrLXN0YXR1cy1jb2xvcjogICAgICAgJHNtYWxsLWZvbnQtY29sb3IgIWRlZmF1bHQ7XG4kcHJvZHVjdC1pbWFnZS1jYXB0aW9uLXBhZGRpbmc6ICAgIC41cmVtICFkZWZhdWx0O1xuJHByb2R1Y3QtaW1hZ2UtY2FwdGlvbi1saW5laGVpZ2h0OiAkcGFyYWdyYXBoLWxpbmUtaGVpZ2h0ICFkZWZhdWx0O1xuJHByb2R1Y3QtaW1hZ2UtY2FwdGlvbi1oZWlnaHQ6ICAgICAkcGFyYWdyYXBoLWxpbmUtaGVpZ2h0ICsgMiAqICRwcm9kdWN0LWltYWdlLWNhcHRpb24tcGFkZGluZyAhZGVmYXVsdDtcbiRwcm9kdWN0LXNob3ctdGh1bWJzLW9uLW1lZGl1bS11cDogdHJ1ZSAhZGVmYXVsdDtcblxuQGlmICRwcm9kdWN0LXNob3ctdGh1bWJzLW9uLW1lZGl1bS11cCA9PSB0cnVlIHtcbiAgICAkdGh1bWItZG90cy1yYW5nZTogJHNtYWxsLW9ubHk7XG59IEBlbHNlIHtcbiAgICAkdGh1bWItZG90cy1yYW5nZTogJHNtYWxsLXVwO1xufVxuXG4ucHJvZHVjdF9faW1hZ2VzIHtcbiAgICAmLmludmlzaWJsZSB7XG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcblxuICAgICAgICAmLnNsaWRlci1sb2FkZWQge1xuICAgICAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnByb2R1Y3RfX21haW4taW1hZ2VzIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICBpbWcge1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgIH1cblxuICAgIHVsIHtcbiAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgLnJlYWRvbi1pY29uX19jb250YWluZXIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC5ieC1jYXB0aW9uIHtcbiAgICAgICAgQGV4dGVuZCAuc3VidGxlO1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICBsaW5lLWhlaWdodDogJHBhcmFncmFwaC1saW5lLWhlaWdodDtcbiAgICAgICAgcGFkZGluZzogJHByb2R1Y3QtaW1hZ2UtY2FwdGlvbi1wYWRkaW5nIDA7XG4gICAgfVxuXG4gICAgLmJ4LXByZXYge1xuICAgICAgICBsZWZ0OiAwO1xuICAgIH1cblxuICAgIC5ieC1uZXh0IHtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgfVxufVxuXG4ucHJvZHVjdF9fYnJlYWRjcnVtYnMge1xuICAgIC5jdXJyZW50IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAuYnJlYWRjcnVtYnMge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgfVxufVxuXG4ucHJvZHVjdF9fdGl0bGUge1xuICAgIEBleHRlbmQgLmJvcmRlcmVkLS1ib3R0b207XG4gICAgQGV4dGVuZCAlY29udGVudF9fYm9yZGVyZWQtLWhhcmQ7XG59XG5cbi5wcm9kdWN0X19tZXRhLW51bWJlcnMge1xuICAgIEBleHRlbmQgLnN1YnRsZTtcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDEyKTtcbiAgICBtYXJnaW4tYm90dG9tOiAkcGFyYWdyYXBoLW1hcmdpbi1ib3R0b20gLSAwLjVyZW07XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICAuY29tbWVudC1zdGFyLXJhdGluZyB7XG4gICAgICAgIC5pY29uLXN0YXIsXG4gICAgICAgIC5pY29uLXN0YXItaGFsZixcbiAgICAgICAgLmljb24tc3Rhci1vdXRsaW5lIHtcbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogLTFweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5jb21tZW50LXN0YXItcmF0aW5nLWF2ZyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNvbW1lbnQtc3Rhci1yYXRpbmctY291bnQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgPiAqIHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IC41cmVtO1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICB9XG59XG5cbi5wcm9kdWN0X19hcnQtbnItbGFiZWwsXG4ucHJvZHVjdF9fZWFuLWxhYmVsIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAuMjVyZW07XG59XG5cbi5wcm9kdWN0X19tZXRhLW51bWJlcnNfX3ZhbHVlIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxcmVtO1xufVxuXG4ucHJvZHVjdF9fYXNpZGUtYWRkb24ge1xuICAgIG1hcmdpbi1ib3R0b206ICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTtcbn1cblxuLnByb2R1Y3Qge1xuICAgIC5wcmljZSB7XG4gICAgICAgIEBleHRlbmQgJWNvbnRlbnRfX3ByaW1hcnktY29sb3ItYmlnO1xuICAgICAgICBmb250LXNpemU6ICRwcm9kdWN0LXByaWNlLWZvbnRzaXplO1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRoZWFkZXItZm9udC1mYW1pbHk7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBjbGVhcjogYm90aDtcbiAgICB9XG5cbiAgICAucHJpY2UtLW9yaWdpbmFsIHtcbiAgICAgICAgQGV4dGVuZCAuc3VidGxlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgY2xlYXI6IGJvdGg7XG5cbiAgICAgICAgLmN1cnJlbmN5IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAudmF0LWluZm8sXG4gICAgLnByaWNlLS1vcmlnaW5hbCB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkcGFyYWdyYXBoLWxpbmUtaGVpZ2h0O1xuICAgIH1cblxuICAgIC5kaXNjb3VudCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLnZhdC1pbmZvIHtcbiAgICAgICAgQGV4dGVuZCAuc3VidGxlO1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiAgICB9XG5cbiAgICAuY3VycmVuY3kge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAuNXJlbTtcbiAgICB9XG5cbiAgICAucHJpY2VfX3NhbGVwcmljZS10ZXh0IHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogLjVyZW07XG4gICAgfVxuXG4gICAgLm9mZmVycyB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTtcbiAgICB9XG59XG5cbi5wcm9kdWN0X19idXktYnV0dG9uLmJ1dHRvbiB7XG4gICAgQGV4dGVuZCAlY29udGVudF9fcHJpbWFyeS1jb2xvci1iZztcblxuICAgIGkge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAuNXJlbTtcbiAgICB9XG59XG5cbi5wcm9kdWN0IC5wcm9kdWN0X193aXNobGlzdC1idXR0b24uYnV0dG9uIHtcbiAgICBAZXh0ZW5kICVjb250ZW50X19zZWNvbmRhcnktY29sb3ItYmc7XG59XG5cbi5wcm9kdWN0X19zdG9ja3N0YXR1cyB7XG4gICAgQGV4dGVuZCAuc3VidGxlO1xuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuICAgIG1hcmdpbi1ib3R0b206ICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTtcbiAgICBsaW5lLWhlaWdodDogJHByb2R1Y3QtcHJpY2UtZm9udHNpemU7XG59XG5cbi5wcm9kdWN0X19zdG9ja3N0YXR1c19fbnVtYmVyIHtcbiAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJHN1Y2Nlc3MtY29sb3IsICRjb250ZW50LWJnKTtcbn1cbi5wcm9kdWN0X19zdG9ja3N0YXR1cy0tc29sZC1vdXQgLnByb2R1Y3RfX3N0b2Nrc3RhdHVzX19udW1iZXJ7XG4gICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRhbGVydC1jb2xvciwgJGNvbnRlbnQtYmcpO1xufVxuXG4ucHJvZHVjdF9fc3RvY2tzdGF0dXMtLWhhcy1leHRyYWluZm8ge1xuICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG59XG5cbi5wcm9kdWN0X19tYWluLWltYWdlc19fbGluayB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG91dGxpbmU6IG5vbmU7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgIH1cbn1cblxuLnByb2R1Y3RfX3F1YW50dW0tZGlzY291bnRzIHtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuLnByb2R1Y3RfX2F0dHJpYnV0ZXMsXG4ucHJvZHVjdF9fZXh0cmFmaWVsZCB7XG4gICAgQGluY2x1ZGUgZ3JpZC1yb3coJGJlaGF2aW9yOm5lc3QpO1xufVxuXG4ucHJvZHVjdF9fZXh0cmFmaWVsZF9fd3JhcCB7XG4gICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJGNvbHVtbnM6IDEyKTtcbn1cblxuLnByb2R1Y3RfX2F0dHJpYnV0ZSxcbi5wcm9kdWN0X19xdWFudGl0eSB7XG4gICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJGNvbHVtbnM6IDYpO1xufVxuXG4ucHJvZHVjdF9fZXh0cmFmaWVsZF9fcHJpY2VpbmZvIHtcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbn1cblxuLnByb2R1Y3RfX3JlbGF0ZWQtcHJvZHVjdHMge1xuICAgIHBhZGRpbmctdG9wOiAkY29sdW1uLWd1dHRlcjtcbiAgICBwYWRkaW5nLWJvdHRvbTogJGNvbHVtbi1ndXR0ZXI7XG59XG5cbkBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XG4gICAgLnByb2R1Y3RfX21haW4taW1hZ2VzIC5ieC1jYXB0aW9uIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cbn1cblxuQG1lZGlhICN7JHRodW1iLWRvdHMtcmFuZ2V9IHtcbiAgICAucHJvZHVjdF9faW1hZ2VnYWxsZXJ5IHtcbiAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICBsaSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAudGgge1xuICAgICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgICAgIGhlaWdodDogJHRvdWNoLWZyaWVuZGx5LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHRvdWNoLWZyaWVuZGx5LXNpemU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHRvdWNoLWZyaWVuZGx5LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBvdXRsaW5lOiBub25lO1xuXG4gICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkcHJpbWFyeS1jb2xvciwgJGNvbnRlbnQtYmcpO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAuNzU7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgID4gKiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaWNvbigkaWNvbi12YXItYnJpZ2h0bmVzcy0xKTsgLy8gQSBjaXJjdWxhciBpY29uXG4gICAgICAgICAgICAgICAgY29sb3I6ICMwMDA7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogLjI1O1xuICAgICAgICAgICAgICAgIGhlaWdodDogJHRvdWNoLWZyaWVuZGx5LXNpemU7XG4gICAgICAgICAgICAgICAgd2lkdGg6ICR0b3VjaC1mcmllbmRseS1zaXplO1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkdG91Y2gtZnJpZW5kbHktc2l6ZTtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAuOHJlbTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGZvbnQtc2l6ZSAyMDBtcyBlYXNlKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5hY3RpdmU6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IC43NTtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtZWRpYSAjeyRzbWFsbC1wbHVzLWRvd259IHtcbiAgICAucHJvZHVjdF9fdGl0bGUge1xuICAgICAgICBwYWRkaW5nLXRvcDogMXJlbTtcbiAgICB9XG59XG5cbkBtZWRpYSAjeyRzbWFsbC1wbHVzLW9ubHl9IHtcbiAgICAucHJvZHVjdF9faW5mbyxcbiAgICAucHJvZHVjdF9fYWJvdXQsXG4gICAgLnByb2R1Y3RfX2ltYWdlZ2FsbGVyeV9fd3JhcHBlcixcbiAgICAucHJvZHVjdF9fcmVsYXRlZC1wcm9kdWN0cyB7XG4gICAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKDEwKTtcbiAgICB9XG5cbiAgICAucHJvZHVjdCB7XG4gICAgICAgIC5wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRwcm9kdWN0LXByaWNlLWZvbnRzaXplLWxnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnByb2R1Y3RfX3N0b2Nrc3RhdHVzOm5vdCgucHJvZHVjdF9fc3RvY2tzdGF0dXMtLWhhcy1leHRyYWluZm8pIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRwcm9kdWN0LXByaWNlLWZvbnRzaXplLWxnO1xuICAgIH1cbn1cblxuQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgIC5wcm9kdWN0X19pbmZvIHtcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oNik7XG4gICAgfVxuXG4gICAgLnByb2R1Y3RfX2Fib3V0LFxuICAgIC5wcm9kdWN0X19pbWFnZWdhbGxlcnlfX3dyYXBwZXIge1xuICAgICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbigxMik7XG4gICAgfVxuXG4gICAgLnByb2R1Y3RfX2ltYWdlcyxcbiAgICAucHJvZHVjdF9faW5mbyxcbiAgICAucHJvZHVjdF9fbWFpbi1pbWFnZXMge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkY29sdW1uLWd1dHRlcjtcbiAgICB9XG5cbiAgICAucHJvZHVjdF9fYnJlYWRjcnVtYnMge1xuICAgICAgICAuY3VycmVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBsaXN0LWl0ZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucHJvZHVjdF9fbWFpbi1pbWFnZXMge1xuICAgICAgICBpbWcge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAucmVhZG9uLWljb25fX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wcm9kdWN0X19tYWluLWltYWdlc19fbGluayB7XG4gICAgICAgICY6aG92ZXJ7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgJHByb2R1Y3Qtc2hvdy10aHVtYnMtb24tbWVkaXVtLXVwID09IHRydWUge1xuICAgICAgICAucHJvZHVjdF9faW1hZ2VnYWxsZXJ5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJsb2NrLWdyaWQoNCk7XG4gICAgICAgIH1cblxuICAgICAgICBsaS5wcm9kdWN0X19pbWFnZWdhbGxlcnlfX2ltYWdld3JhcCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDUuNzVyZW07XG5cbiAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnRoIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgIEBpZiAkdGh1bWItYm9yZGVyLXdpZHRoID4gMCB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0aHVtYi1ib3JkZXItY29sb3I7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQGlmICR0aHVtYi1ib3gtc2hhZG93ICE9IG5vbmUge1xuICAgICAgICAgICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggcmdiYShhY2Nlc3NpYmxlLWx1bWluYW5jZSgkYmxhY2ssICRjb250ZW50LWJnLCA5KSwuMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgb3BhY2l0eTogLjg7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgICAgICAgICAgICBAaWYgJHRodW1iLWJveC1zaGFkb3ctaG92ZXIgIT0gbm9uZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBObyBlYXN5IHdheSB0byBtYW5pcHVsYXRlIHRoZSBib3ggc2hhZG93IGNvbG9yXG4gICAgICAgICAgICAgICAgICAgICAgICAvL2JveC1zaGFkb3c6ICR0aHVtYi1ib3gtc2hhZG93LWhvdmVyO1xuICAgICAgICAgICAgICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDZweCAxcHggcmdiYShhY2Nlc3NpYmxlLWx1bWluYW5jZSgkcHJpbWFyeS1jb2xvciwgJGNvbnRlbnQtYmcsIDkpLCAwLjUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnByb2R1Y3RfX3RpdGxlIHtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygzMCk7XG4gICAgfVxuXG4gICAgLnByb2R1Y3RfX2luZ3Jlc3Mge1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiAgICB9XG5cbiAgICAucHJvZHVjdF9fc3RvY2tzdGF0dXM6bm90KC5wcm9kdWN0X19zdG9ja3N0YXR1cy0taGFzLWV4dHJhaW5mbykge1xuICAgICAgICBsaW5lLWhlaWdodDogI3skcGFyYWdyYXBoLWxpbmUtaGVpZ2h0ICogMXJlbX07XG4gICAgfVxuXG4gICAgLnByb2R1Y3RfX2J1eS1idXR0b24uYnV0dG9uLFxuICAgIC5wcm9kdWN0X193aXNobGlzdC1idXR0b24uYnV0dG9uIHtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxNik7XG4gICAgICAgIEBpbmNsdWRlIHJhZGl1cygkYnV0dG9uLXJhZGl1cyk7XG4gICAgfVxufVxuXG5AbWVkaWEgI3skbGFyZ2UtdXB9IHtcbiAgICAucHJvZHVjdF9fdGl0bGUge1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDQ0KTtcbiAgICB9XG5cbiAgICAucHJvZHVjdF9faW5ncmVzcyB7XG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICB9XG5cbiAgICAucHJvZHVjdF9fc3RvY2tzdGF0dXM6bm90KC5wcm9kdWN0X19zdG9ja3N0YXR1cy0taGFzLWV4dHJhaW5mbykge1xuICAgICAgICBsaW5lLWhlaWdodDogJHByb2R1Y3QtcHJpY2UtZm9udHNpemUtbGc7XG4gICAgfVxuXG4gICAgLnByb2R1Y3RfX2Fib3V0Lm1lZGl1bS11bmNlbnRlcmVkOmxhc3QtY2hpbGQge1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgfVxuXG4gICAgQGlmICRwcm9kdWN0LXNob3ctdGh1bWJzLW9uLW1lZGl1bS11cCA9PSB0cnVlIHtcbiAgICAgICAgLnByb2R1Y3RfX2ltYWdlZ2FsbGVyeSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBibG9jay1ncmlkKDUpO1xuICAgICAgICB9XG5cbiAgICAgICAgbGkucHJvZHVjdF9faW1hZ2VnYWxsZXJ5X19pbWFnZXdyYXAge1xuICAgICAgICAgICAgaGVpZ2h0OiA2cmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnByb2R1Y3RfX2F0dHJpYnV0ZSxcbiAgICAucHJvZHVjdF9fcXVhbnRpdHkge1xuICAgICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbigkY29sdW1uczogNCk7XG4gICAgfVxuXG4gICAgLnByb2R1Y3RfX2V4dHJhZmllbGRfX3dyYXAge1xuICAgICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbigkY29sdW1uczogOCk7XG4gICAgfVxuXG4gICAgLnByb2R1Y3Qge1xuICAgICAgICAucHJvZHVjdF9fYnV5LWJ1dHRvbi5idXR0b24sXG4gICAgICAgIC5wcm9kdWN0X193aXNobGlzdC1idXR0b24uYnV0dG9uIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMjIpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4iLCIkcHJvZHVjdC1zZWFyY2gtaG9yaXpvbnRhbC1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuJHByb2R1Y3Qtc2VhcmNoLXZlcnRpY2FsLXBhZGRpbmc6IC4yNXJlbSAhZGVmYXVsdDtcbiRwcm9kdWN0LXNlYXJjaC1saW5rLWxpbmUtaGVpZ2h0OiAycmVtICFkZWZhdWx0O1xuJHByb2R1Y3Qtc2VhcmNoLXJlc3VsdHMtYmc6ICNmZmZmZmYgIWRlZmF1bHQ7XG4kcHJvZHVjdC1zZWFyY2gtcmVzdWx0cy1jb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJHByb2R1Y3Qtc2VhcmNoLXJlc3VsdHMtYmcsICRwcm9kdWN0LXNlYXJjaC1yZXN1bHRzLWJnKSAhZGVmYXVsdDtcblxuLnByb2R1Y3Qtc2VhcmNoIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMjAwO1xufVxuXG4ucHJvZHVjdC1zZWFyY2gtcmVzdWx0cyB7XG4gICAgb3BhY2l0eTogLjk1O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJvZHVjdC1zZWFyY2gtcmVzdWx0cy1iZztcbiAgICB6LWluZGV4OiAyMDA7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci1jb2xvcjtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIC4yNXMgZWFzZSk7XG5cbiAgICAucHJvZHVjdC1zZWFyY2hfX291dHB1dCB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgcGFkZGluZzogJHByb2R1Y3Qtc2VhcmNoLXZlcnRpY2FsLXBhZGRpbmcgMDtcbiAgICB9XG5cbiAgICAmLmlzLWhpZGRlbiB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0ocm90YXRlWCgtOTBkZWcpIHNjYWxlKC44KSk7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybS1vcmlnaW4oNTAlIDApO1xuICAgIH1cbn1cblxuLnByb2R1Y3Qtc2VhcmNoX19uby1oaXRzOm5vdCguaXMtaGlkZGVuKSArIC5wcm9kdWN0LXNlYXJjaF9fY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi5wcm9kdWN0LXNlYXJjaF9fZWxlbWVudCBhIHtcbiAgICBwYWRkaW5nOiAkcHJvZHVjdC1zZWFyY2gtdmVydGljYWwtcGFkZGluZyAkcHJvZHVjdC1zZWFyY2gtaG9yaXpvbnRhbC1wYWRkaW5nO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkcHJvZHVjdC1zZWFyY2gtcmVzdWx0cy1iZywgJGhvdmVyLWNvbG9yLCA3KSFpbXBvcnRhbnQ7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRob3Zlci1jb2xvciFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgaHRtbC50b3VjaCAmIHtcbiAgICAgICAgcGFkZGluZzogI3soJHRvdWNoLWZyaWVuZGx5LXNpemUgLSAkYmFzZS1saW5lLWhlaWdodCAqIDFyZW0pLzJ9ICRwcm9kdWN0LXNlYXJjaC1ob3Jpem9udGFsLXBhZGRpbmc7XG4gICAgfVxufVxuXG4ucHJvZHVjdC1zZWFyY2hfX2V4dHJhLWhpdHMge1xuICAgIG1hcmdpbjogMDtcblxuICAgIGEge1xuICAgICAgICBsaW5lLWhlaWdodDogJHByb2R1Y3Qtc2VhcmNoLWxpbmstbGluZS1oZWlnaHQ7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAkcHJvZHVjdC1zZWFyY2gtdmVydGljYWwtcGFkZGluZyAkcHJvZHVjdC1zZWFyY2gtaG9yaXpvbnRhbC1wYWRkaW5nO1xuXG4gICAgICAgIGh0bWwudG91Y2ggJiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAjeygkdG91Y2gtZnJpZW5kbHktc2l6ZSAtICRwcm9kdWN0LXNlYXJjaC12ZXJ0aWNhbC1wYWRkaW5nICogMikvMn0gJHByb2R1Y3Qtc2VhcmNoLWhvcml6b250YWwtcGFkZGluZztcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnByb2R1Y3Qtc2VhcmNoX19uby1oaXRzIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogJHByb2R1Y3Qtc2VhcmNoLXZlcnRpY2FsLXBhZGRpbmcgJHByb2R1Y3Qtc2VhcmNoLWhvcml6b250YWwtcGFkZGluZztcbiAgICBjb2xvcjogJHByb2R1Y3Qtc2VhcmNoLXJlc3VsdHMtY29sb3I7XG59IiwiJHJhdGluZy1zdGFyLWNvbG9yOiAkY2FsbC10by1hY3Rpb24tY29sb3IgIWRlZmF1bHQ7XG4kcmF0aW5nLXN0YXItc2l6ZTogcmVtLWNhbGMoNDQpICFkZWZhdWx0O1xuJHJhdGluZy1zdGFyLWZvbnRzaXplOiByZW0tY2FsYygyMikgIWRlZmF1bHQ7XG5cbi5yYXRpbmcge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBoZWlnaHQ6ICRyYXRpbmctc3Rhci1zaXplO1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICBsYWJlbC5zdGFyIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGNvbG9yOiBnb2xkO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGZvbnQtc2l6ZTogJHJhdGluZy1zdGFyLWZvbnRzaXplICFpbXBvcnRhbnQ7XG4gICAgICAgIHdpZHRoOiAkcmF0aW5nLXN0YXItc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcmF0aW5nLXN0YXItc2l6ZTtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRyYXRpbmctc3Rhci1zaXplO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgei1pbmRleDogNDtcbiAgICB9XG5cbiAgICBpbnB1dC5zdGFyLWNoZWNrYm94IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB3aWR0aDogJHJhdGluZy1zdGFyLXNpemU7XG4gICAgICAgIGhlaWdodDogJHJhdGluZy1zdGFyLXNpemU7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgIH1cblxuICAgIC5yYXRpbmctY2hlY2tib3gtaGlkZXIge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbnRlbnQtYmc7XG4gICAgICAgIHotaW5kZXg6IDI7XG5cbiAgICAgICAgLnJlc3AtdGFicy1jb250YWluZXIgJiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFicy1jb250YWluZXItYmc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIDUge1xuICAgICAgICBsYWJlbC5zdGFyLSN7JGkgKyAxfSxcbiAgICAgICAgaW5wdXQuc3Rhci1jaGVja2JveC0jeyRpICsgMX0ge1xuICAgICAgICAgICAgbGVmdDogI3skaSAqICRyYXRpbmctc3Rhci1zaXplfTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5zdGFycy1sYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIGFjY2Vzc2libGUtaGlkZSgpO1xuICAgIH1cblxuICAgIGxhYmVsOmJlZm9yZSB7XG4gICAgICAgIEBpbmNsdWRlIGljb24oJGljb24tdmFyLXN0YXIpO1xuICAgICAgICBAZXh0ZW5kIC5pY29uLW1lZGl1bTtcbiAgICB9XG5cbiAgICBpbnB1dDpjaGVja2VkIH4gbGFiZWwge1xuICAgICAgICBAZXh0ZW5kIC5zdWJ0bGU7XG4gICAgfVxuXG4gICAgbGFiZWw6aG92ZXIsXG4gICAgaW5wdXQ6Y2hlY2tlZCB+IGxhYmVsOmhvdmVyIHtcbiAgICAgICAgY29sb3I6IGdvbGQ7XG4gICAgfVxuXG4gICAgbGFiZWw6aG92ZXIgfiBsYWJlbCB7XG4gICAgICAgIEBleHRlbmQgLnN1YnRsZTtcbiAgICB9XG59IiwiJHJlYWRvbi1pY29uLWJnOiAjMDAwICFkZWZhdWx0O1xuJHJlYWRvbi1pY29uLWNvbG9yOiAjZmZmICFkZWZhdWx0O1xuJHJlYWRvbi1pY29uLWZvbnQtc2l6ZTogcmVtLWNhbGMoMjgpICFkZWZhdWx0O1xuJHJlYWRvbi1vdmVybGF5LW9wYWNpdHk6IC41ICFkZWZhdWx0O1xuJHJlYWRvbi1pY29uLW9wYWNpdHk6IC42ICFkZWZhdWx0O1xuJHJlYWRvbi1pY29uLWhvdmVyLW9wYWNpdHk6IC45ICFkZWZhdWx0O1xuXG4ucmVhZG9uLWljb25fX2NvbnRhaW5lciB7XG4gICAgb3BhY2l0eTogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKCRjb250ZW50LWJnLCAkcmVhZG9uLW92ZXJsYXktb3BhY2l0eSk7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24ob3BhY2l0eSAxNTBtcyBlYXNlKTtcblxuICAgIC50b3VjaCAmIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbi5yZWFkb24taWNvbiB7XG4gICAgQGluY2x1ZGUgdHJhbnNsYXRlM2QoMCwwLDAsc2NhbGUzZCgwLjUsIDAuNSwgMC41KSk7XG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDIwMG1zLCAtd2Via2l0LXRyYW5zZm9ybSAxNTBtcyBlYXNlO1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbi1kZWxheTogZWFzZSwgMHM7XG4gICAgLW1vei10cmFuc2l0aW9uOiBvcGFjaXR5IDIwMG1zIGVhc2UsIC1tb3otdHJhbnNmb3JtIDE1MG1zIGVhc2U7XG4gICAgLW8tdHJhbnNpdGlvbjogb3BhY2l0eSAyMDBtcyBlYXNlLCAtby10cmFuc2Zvcm0gMTUwbXMgZWFzZTtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDIwMG1zIGVhc2UsIHRyYW5zZm9ybSAxNTBtcyBlYXNlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIGxpbmUtaGVpZ2h0OiByZW0tY2FsYyg0NCk7XG4gICAgd2lkdGg6IHJlbS1jYWxjKDQ0KTtcbiAgICBoZWlnaHQ6IHJlbS1jYWxjKDQ0KTtcbiAgICBmb250LXNpemU6ICRyZWFkb24taWNvbi1mb250LXNpemU7XG4gICAgY29sb3I6ICRyZWFkb24taWNvbi1jb2xvcjtcbiAgICBvcGFjaXR5OiAuNjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcmVhZG9uLWljb24tYmc7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIEBpbmNsdWRlIHByZWZpeGVyKGJvcmRlci1yYWRpdXMsIHJlbS1jYWxjKDIyKSwgbXMgc3BlYyk7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgb3BhY2l0eTogLjk7XG4gICAgfVxufVxuXG4ucmVhZG9uLWljb25fX3dyYXBwZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuXG4gICAgICAgIC5yZWFkb24taWNvbl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cblxuICAgICAgICAucmVhZG9uLWljb24ge1xuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNsYXRlM2QoMCwwLDAsc2NhbGUzZCgxLCAxLCAxKSk7XG4gICAgICAgIH1cbiAgICB9XG59IiwiQGltcG9ydCBcImJvdXJib24vY3NzMy9wbGFjZWhvbGRlclwiO1xuXG4vKipcbiAqIEV4cGFuZGluZyBzZWFyY2ggaW5wdXQgZmllbGRcbiAqXG4gKiBDb2RlIGNvdXJ0ZXN5IG9mIGh0dHA6Ly9jb2RlcGVuLmlvL3NkYWl0em1hbi9wZW4vcm1xZkJcbiAqL1xuXG5AaWYgbGlnaHRuZXNzKCRuYXZpZ2F0aW9uLWJnKSA8IDUwJSB7XG4gICAgJHNlYXJjaC1ib3gtaW5wdXQtYmc6IGxpZ2h0ZW4oJG5hdmlnYXRpb24tYmcsIDEwJSkgIWRlZmF1bHQ7XG4gICAgJHNlYXJjaC1ib3gtaW5wdXQtaG92ZXItYmc6IGxpZ2h0ZW4oJG5hdmlnYXRpb24tYmcsIDIwJSkgIWRlZmF1bHQ7XG4gICAgJHNlYXJjaC1ib3gtaW5wdXQtYWN0aXZlLWJnOiBsaWdodGVuKCRuYXZpZ2F0aW9uLWJnLCAzMCUpICFkZWZhdWx0O1xuICAgICRzZWFyY2gtYm94LWljb24tY29sb3I6ICNmZmYgIWRlZmF1bHQ7XG4gICAgJHNlYXJjaC1ib3gtc2hhZG93OiBsaWdodGVuKCRzZWFyY2gtYm94LWlucHV0LWJnLCAyNSUpICFkZWZhdWx0O1xufSBAZWxzZSB7XG4gICAgJHNlYXJjaC1ib3gtaW5wdXQtYmc6IGRhcmtlbigkbmF2aWdhdGlvbi1iZywgNSUpICFkZWZhdWx0O1xuICAgICRzZWFyY2gtYm94LWlucHV0LWhvdmVyLWJnOiAjYzhjOGM4ICFkZWZhdWx0O1xuICAgICRzZWFyY2gtYm94LWlucHV0LWFjdGl2ZS1iZzogZGFya2VuKCRuYXZpZ2F0aW9uLWJnLCAzMCUpICFkZWZhdWx0O1xuICAgICRzZWFyY2gtYm94LWljb24tY29sb3I6ICMwMDAgIWRlZmF1bHQ7XG4gICAgJHNlYXJjaC1ib3gtc2hhZG93OiBkYXJrZW4oJHNlYXJjaC1ib3gtaW5wdXQtYmcsIDI1JSkgIWRlZmF1bHQ7XG59XG5cbiRzZWFyY2gtYm94LWlucHV0LWNvbG9yOmFjY2Vzc2libGUtbHVtaW5hbmNlKCRzZWFyY2gtYm94LWlucHV0LWJnLCAkc2VhcmNoLWJveC1pbnB1dC1iZykgIWRlZmF1bHQ7XG4kc2VhcmNoLWJveC1pbnB1dC1ob3Zlci1jb2xvcjphY2Nlc3NpYmxlLWx1bWluYW5jZSgkc2VhcmNoLWJveC1pbnB1dC1ob3Zlci1iZywgJHNlYXJjaC1ib3gtaW5wdXQtaG92ZXItYmcpICFkZWZhdWx0O1xuJHNlYXJjaC1ib3gtaW5wdXQtYWN0aXZlLWNvbG9yOmFjY2Vzc2libGUtbHVtaW5hbmNlKCRzZWFyY2gtYm94LWlucHV0LWFjdGl2ZS1iZywgJHNlYXJjaC1ib3gtaW5wdXQtYWN0aXZlLWJnKSAhZGVmYXVsdDtcblxuJHNlYXJjaC1ib3gtdHJhbnNpdGlvbjogMC4zcyAhZGVmYXVsdDsgLy8gdHJhbnNpdGlvbiBsZW5ndGhcbiRzZWFyY2gtYm94LXNpemU6IHJlbS1jYWxjKDQwKSAhZGVmYXVsdDtcblxuLnNlYXJjaC1ib3hfX2NvbnRhaW5lciB7XG4gICAgcGFkZGluZzogKCRuYXYtbGluZS1oZWlnaHQgLSAkc2VhcmNoLWJveC1zaXplKS8yIDA7XG4gICAgaGVpZ2h0OiAkbmF2LWxpbmUtaGVpZ2h0O1xuICAgIG1pbi13aWR0aDogJHNlYXJjaC1ib3gtc2l6ZTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5zZWFyY2gtYm94X19zdWJtaXQuaGlkZGVuIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG5pbnB1dC5zZWFyY2gtYm94X19pbnB1dCB7XG4gICAgdHJhbnNpdGlvbjogd2lkdGggJHNlYXJjaC1ib3gtdHJhbnNpdGlvbiwgYm9yZGVyLXJhZGl1cyAkc2VhcmNoLWJveC10cmFuc2l0aW9uLCBiYWNrZ3JvdW5kICRzZWFyY2gtYm94LXRyYW5zaXRpb24sIGJveC1zaGFkb3cgJHNlYXJjaC1ib3gtdHJhbnNpdGlvbjtcbiAgICB3aWR0aDogJHNlYXJjaC1ib3gtc2l6ZTtcbiAgICBoZWlnaHQ6ICRzZWFyY2gtYm94LXNpemU7XG4gICAgYm9yZGVyLXJhZGl1czogJHNlYXJjaC1ib3gtc2l6ZS8yO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYmFja2dyb3VuZDogJHNlYXJjaC1ib3gtaW5wdXQtYmc7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcmlnaHQ6IDA7XG5cbiAgICAmOjotbXMtY2xlYXIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgICYgfiBsYWJlbCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogJG5hdi1saW5lLWhlaWdodDtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRzZWFyY2gtYm94LXNpemU7XG4gICAgICAgIHBhZGRpbmc6ICgkbmF2LWxpbmUtaGVpZ2h0IC0gJHNlYXJjaC1ib3gtc2l6ZSkvMiAwO1xuICAgICAgICB3aWR0aDogJHNlYXJjaC1ib3gtc2l6ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB6LWluZGV4OiAyO1xuXG4gICAgICAgIC5pY29uLXNlYXJjaCB7XG4gICAgICAgICAgICBjb2xvcjogJHNlYXJjaC1ib3gtaWNvbi1jb2xvcjtcblxuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAmIH4gLnNlYXJjaC1ib3hfX3N1Ym1pdCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogJG5hdi1saW5lLWhlaWdodDtcblxuICAgICAgICB3aWR0aDogJHNlYXJjaC1ib3gtc2l6ZTtcbiAgICAgICAgb3BhY2l0eTogMDtcblxuICAgICAgICAgfiBsYWJlbDpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogJy4nO1xuICAgICAgICAgICAgY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6ICgkbmF2LWxpbmUtaGVpZ2h0IC0gJHNlYXJjaC1ib3gtc2l6ZSkvMjtcbiAgICAgICAgICAgIGxlZnQ6IDBweDtcbiAgICAgICAgICAgIHJpZ2h0OiAwcHg7XG4gICAgICAgICAgICBib3R0b206ICgkbmF2LWxpbmUtaGVpZ2h0IC0gJHNlYXJjaC1ib3gtc2l6ZSkvMjtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZWFyY2gtYm94LWlucHV0LWhvdmVyLWJnO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgICAgbWFyZ2luOiAycHg7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihvcGFjaXR5IDE1MG1zIGVhc2UpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlciB+IGxhYmVsIHtcbiAgICAgICAgICAgIC5pY29uLXNlYXJjaCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2VhcmNoLWJveC1pbnB1dC1ob3Zlci1iZztcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICRzZWFyY2gtYm94LXNoYWRvdztcblxuICAgICAgICAmIH4gbGFiZWwgLmljb24tc2VhcmNoIHtcbiAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICY6Zm9jdXMsICYuYWN0aXZlIHtcbiAgICAgICAgdHJhbnNpdGlvbjogd2lkdGggJHNlYXJjaC1ib3gtdHJhbnNpdGlvbiBjdWJpYy1iZXppZXIoLjYwLDAsLjQwLDEpLCBib3JkZXItcmFkaXVzICRzZWFyY2gtYm94LXRyYW5zaXRpb24sIGJhY2tncm91bmQgJHNlYXJjaC1ib3gtdHJhbnNpdGlvbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDFyZW07XG4gICAgICAgIGN1cnNvcjogdGV4dDtcbiAgICAgICAgd2lkdGg6IDIwMHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiBhdXRvO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2VhcmNoLWJveC1pbnB1dC1hY3RpdmUtYmc7XG4gICAgICAgIGNvbG9yOiAkc2VhcmNoLWJveC1pbnB1dC1hY3RpdmUtY29sb3I7XG5cbiAgICAgICAgQGluY2x1ZGUgcGxhY2Vob2xkZXJ7XG4gICAgICAgICAgICBjb2xvcjogcmdiYShhY2Nlc3NpYmxlLWx1bWluYW5jZSgkc2VhcmNoLWJveC1pbnB1dC1hY3RpdmUtYmcsICRzZWFyY2gtYm94LWlucHV0LWFjdGl2ZS1iZyksIC43NSk7XG4gICAgICAgIH07XG5cbiAgICAgICAgJiB+IGxhYmVsIC5pY29uLXNlYXJjaCB7XG4gICAgICAgICAgICBjb2xvcjogJHNlYXJjaC1ib3gtaW5wdXQtYWN0aXZlLWNvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgJiB+IC5zZWFyY2gtYm94X19zdWJtaXQge1xuICAgICAgICAgICAgei1pbmRleDogMztcbiAgICAgICAgfVxuICAgIH1cblxuICAgICY6bm90KDpmb2N1cyk6bm90KC5hY3RpdmUpIHtcbiAgICAgICAgY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBAaW5jbHVkZSBwbGFjZWhvbGRlcntcbiAgICAgICAgICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgfTtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGtleWZyYW1lcyhhY3Rpdml0eS1yb3RhdGUpIHtcbiAgICAwJSAgIHtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHJvdGF0ZSgwZGVnKSk7XG4gICAgfVxuICAgIDEwMCUge1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0ocm90YXRlKDM2MGRlZykpO1xuICAgIH1cbn1cblxuLnNlYXJjaC1ib3hfX2xhYmVsIC5pY29uLXNlYXJjaCB7XG4gICAgJjo6YmVmb3JlLCAmOjphZnRlciB7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24odHJhbnNmb3JtIDE1MG1zIGVhc2UsIG9wYWNpdHkgMTUwbXMgZWFzZSk7XG4gICAgfVxuICAgICY6OmFmdGVyIHtcbiAgICAgICAgLy9jb250ZW50OiBcIiN7JGljb24tdmFyLWxvYWRpbmctaW5kaWNhdG9yfVwiO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICRpY29uLXNlYXJjaC1vZmZzZXQ6IHJlbS1jYWxjKC03cHgpO1xuICAgICAgICBtYXJnaW4tbGVmdDogJGljb24tc2VhcmNoLW9mZnNldDtcbiAgICAgICAgbWFyZ2luLXRvcDogICRpY29uLXNlYXJjaC1vZmZzZXQ7XG5cbiAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHNjYWxlKDApKTtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG59XG4uc2VhcmNoLWJveC0tbG9hZGluZyAuc2VhcmNoLWJveF9fbGFiZWwgLmljb24tc2VhcmNoIHtcbiAgICAmOjpiZWZvcmUge1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0oc2NhbGUoMCkpO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgIH1cbiAgICAmOjphZnRlciB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybShzY2FsZSgxKSk7XG4gICAgICAgIEBpbmNsdWRlIGFuaW1hdGlvbihhY3Rpdml0eS1yb3RhdGUgMXMgMTUwbXMgbGluZWFyIGluZmluaXRlKTtcbiAgICB9XG59XG5cbiNzZWFyY2gtc3VibWl0IHtcbiAgICBAaW5jbHVkZSBhY2Nlc3NpYmxlLWhpZGU7XG59XG5cbi5zZWFyY2gtYm94X19jb250YWluZXIge1xuICAgIC5pY29uLXNlYXJjaCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgd2lkdGg6ICRzZWFyY2gtYm94LXNpemU7XG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cbn1cblxuQG1lZGlhICN7JHNtYWxsLXBsdXMtdXB9IHtcbiAgICBpbnB1dC5zZWFyY2gtYm94X19pbnB1dCB7XG4gICAgICAgICY6Zm9jdXMsICYuYWN0aXZlIHtcbiAgICAgICAgICAgIHdpZHRoOiAzMDBweDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuXG5AbWVkaWEgI3skbWVkaXVtLXVwfSB7XG4gICAgaW5wdXQuc2VhcmNoLWJveF9faW5wdXQge1xuICAgICAgICAmOmZvY3VzLCAmLmFjdGl2ZSB7XG4gICAgICAgICAgICB3aWR0aDogMzUwcHg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmEuc2VhcmNoLW1vZGFsLWxpbmsubmV1dHJhbC1saW5rOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn0iLCJAbWl4aW4gcGxhY2Vob2xkZXIge1xuICAkcGxhY2Vob2xkZXJzOiBcIjotd2Via2l0LWlucHV0XCIgXCI6LW1velwiIFwiLW1velwiIFwiLW1zLWlucHV0XCI7XG4gIEBlYWNoICRwbGFjZWhvbGRlciBpbiAkcGxhY2Vob2xkZXJzIHtcbiAgICAmOiN7JHBsYWNlaG9sZGVyfS1wbGFjZWhvbGRlciB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIFNob3cgYWN0aXZpdHkgaW5kaWNhdG9yIHdoZW4gc2VhcmNoaW5nXG5cbkBpbmNsdWRlIGtleWZyYW1lcyhhY3Rpdml0eS1yb3RhdGUpIHtcbiAgICAwJSAgIHtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHJvdGF0ZSgwZGVnKSk7XG4gICAgfVxuICAgIDEwMCUge1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0ocm90YXRlKDM2MGRlZykpO1xuICAgIH1cbn1cblxuQG1lZGlhICN7JGxhcmdlLXVwfSB7XG5cdC5zZWFyY2gtYm94LS1sb2FkaW5nIHtcblx0XHQucHJvZHVjdC1zZWFyY2gge1xuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdFx0XHQmOmJlZm9yZSB7XG5cdFx0XHRcdC8vQGluY2x1ZGUgaWNvbigkaWNvbi12YXItbG9hZGluZy1pbmRpY2F0b3IpO1xuXHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdHRvcDogLjY1cmVtO1xuXHRcdFx0XHRyaWdodDogLjNyZW07XG5cdFx0XHRcdEBpbmNsdWRlIGFuaW1hdGlvbihhY3Rpdml0eS1yb3RhdGUgMXMgMTUwbXMgbGluZWFyIGluZmluaXRlKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cbiIsIi5zbGlkZXIge1xuICAgIG1hcmdpbjogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIGhlaWdodDogMTAwJTtcbn1cblxuLnNsaWRlcl9fd3JhcHBlciB7XG4gICAgbWFyZ2luLWJvdHRvbTogJGNvbHVtbi1ndXR0ZXI7XG4gICAgbWFyZ2luLXJpZ2h0OiAtI3skY29sdW1uLWd1dHRlci8yfTtcbiAgICBtYXJnaW4tbGVmdDogLSN7JGNvbHVtbi1ndXR0ZXIvMn07XG59XG5cbi5zbGlkZS0tYWxpZ24tY2VudGVyIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5zbGlkZS0tYWxpZ24tbGVmdCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuLnNsaWRlLS1hbGlnbi1yaWdodCB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG5cbi5zbGlkZSB7XG4gICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAgICAgLmJ4LXdyYXBwZXIgJiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmhlcml0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaW1nIHtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG59XG5cbkBtZWRpYSAjeyR4bGFyZ2UtdXB9IHtcbiAgICAuc2xpZGVyX193cmFwcGVyIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICB9ICAgIFxufSIsIi8vIFNldCB0ZXh0IGNvbG9yXG5AaWYgbHVtYSgkZW5kLWJnKSA8IDUwIHtcbiAgICAkc29jaWFsLWljb24tYmc6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRsaWdodC1ib2R5LXRleHQsICRlbmQtYmcpICFkZWZhdWx0O1xufSBAZWxzZSB7XG4gICAgJHNvY2lhbC1pY29uLWJnOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkZGFyay1ib2R5LXRleHQsICRlbmQtYmcpICFkZWZhdWx0O1xufVxuXG5AaWYgbHVtYSgkY29udGVudC1iZykgPCA1MCB7XG4gICAgJHByb2R1Y3Qtc29jaWFsLWljb24tYmc6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRsaWdodC1ib2R5LXRleHQsICRjb250ZW50LWJnKTtcbn0gQGVsc2Uge1xuICAgICRwcm9kdWN0LXNvY2lhbC1pY29uLWJnOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkZGFyay1ib2R5LXRleHQsICRjb250ZW50LWJnKTtcbn1cblxuLnNvY2lhbC1idXR0b25zLWxpc3Qge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgbWFyZ2luOiAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLnNvY2lhbC1idXR0b25zLWxpc3QtLXByb2R1Y3Qge1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG59XG5cbi5zb2NpYWwtYnV0dG9uIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbGluZS1oZWlnaHQ6ICRzb2NpYWwtaWNvbi1zaXplO1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAuc29jaWFsLWJ1dHRvbnMtbGlzdC0tcHJvZHVjdCAmIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICAuc29jaWFsLWJ1dHRvbl9fbGluayB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6ICRzb2NpYWwtaWNvbi1zaXplO1xuICAgICAgICB3aWR0aDogJHNvY2lhbC1pY29uLXNpemU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzb2NpYWwtaWNvbi1iZztcbiAgICAgICAgb3BhY2l0eTogLjM7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIC4ycyBlYXNlKTtcbiAgICAgICAgQGluY2x1ZGUgcmFkaXVzKDUwJSk7XG4gICAgICAgIGNvbG9yOiAkZW5kLWJnO1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDIwKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgY29sb3I6ICRlbmQtYmc7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgLnNvY2lhbC1idXR0b25zLWxpc3QtLXByb2R1Y3QgJiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29udGVudC1iZztcbiAgICAgICAgICAgIGNvbG9yOiAkcHJvZHVjdC1zb2NpYWwtaWNvbi1iZztcbiAgICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICRwcm9kdWN0LXNvY2lhbC1pY29uLWJnO1xuICAgICAgICAgICAgb3BhY2l0eTogLjY7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGNvbnRlbnQtYmc7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnNvY2lhbC1idXR0b25zX19oZWFkbGluZS13cmFwcGVyIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4uc29jaWFsLWJ1dHRvbi0tYmxvZ2dlciB7IC5zb2NpYWwtYnV0dG9uX19saW5rIHsgJjpob3ZlciwmOmZvY3VzLCY6YWN0aXZlICAgIHsgY29sb3I6ICNmZmY7IGJhY2tncm91bmQtY29sb3I6ICRzb2NpYWwtY29sb3ItYmxvZ2dlcjsgYm9yZGVyLWNvbG9yOiAkc29jaWFsLWNvbG9yLWJsb2dnZXI7IH19fVxuLnNvY2lhbC1idXR0b24tLWVsbG8geyAuc29jaWFsLWJ1dHRvbl9fbGluayB7ICY6aG92ZXIsJjpmb2N1cywmOmFjdGl2ZSAgICAgICB7IGNvbG9yOiAjMDAwOyBiYWNrZ3JvdW5kLWNvbG9yOiAkc29jaWFsLWNvbG9yLWVsbG87IGJvcmRlci1jb2xvcjogJHNvY2lhbC1jb2xvci1lbGxvOyB9fX1cbi5zb2NpYWwtYnV0dG9uLS1mYWNlYm9vayB7IC5zb2NpYWwtYnV0dG9uX19saW5rIHsgJjpob3ZlciwmOmZvY3VzLCY6YWN0aXZlICAgeyBjb2xvcjogI2ZmZjsgYmFja2dyb3VuZC1jb2xvcjogJHNvY2lhbC1jb2xvci1mYWNlYm9vazsgYm9yZGVyLWNvbG9yOiAkc29jaWFsLWNvbG9yLWZhY2Vib29rOyB9fX1cbi5zb2NpYWwtYnV0dG9uLS1mbGlja3IgeyAuc29jaWFsLWJ1dHRvbl9fbGluayB7ICY6aG92ZXIsJjpmb2N1cywmOmFjdGl2ZSAgICAgeyBjb2xvcjogI2ZmZjsgYmFja2dyb3VuZC1jb2xvcjogJHNvY2lhbC1jb2xvci1mbGlja3I7IGJvcmRlci1jb2xvcjogJHNvY2lhbC1jb2xvci1mbGlja3I7IH19fVxuLnNvY2lhbC1idXR0b24tLWdvb2dsZXBsdXMgeyAuc29jaWFsLWJ1dHRvbl9fbGluayB7ICY6aG92ZXIsJjpmb2N1cywmOmFjdGl2ZSB7IGNvbG9yOiAjZmZmOyBiYWNrZ3JvdW5kLWNvbG9yOiAkc29jaWFsLWNvbG9yLWdvb2dsZXBsdXM7IGJvcmRlci1jb2xvcjogJHNvY2lhbC1jb2xvci1nb29nbGVwbHVzOyB9fX1cbi5zb2NpYWwtYnV0dG9uLS1pbnN0YWdyYW0geyAuc29jaWFsLWJ1dHRvbl9fbGluayB7ICY6aG92ZXIsJjpmb2N1cywmOmFjdGl2ZSAgeyBjb2xvcjogI2ZmZjsgYmFja2dyb3VuZC1jb2xvcjogJHNvY2lhbC1jb2xvci1pbnN0YWdyYW07IGJvcmRlci1jb2xvcjogJHNvY2lhbC1jb2xvci1pbnN0YWdyYW07IH19fVxuLnNvY2lhbC1idXR0b24tLWxpbmtlZGluIHsgLnNvY2lhbC1idXR0b25fX2xpbmsgeyAmOmhvdmVyLCY6Zm9jdXMsJjphY3RpdmUgICB7IGNvbG9yOiAjZmZmOyBiYWNrZ3JvdW5kLWNvbG9yOiAkc29jaWFsLWNvbG9yLWxpbmtlZGluOyBib3JkZXItY29sb3I6ICRzb2NpYWwtY29sb3ItbGlua2VkaW47IH19fVxuLnNvY2lhbC1idXR0b24tLW1haWwgeyAuc29jaWFsLWJ1dHRvbl9fbGluayB7ICY6aG92ZXIsJjpmb2N1cywmOmFjdGl2ZSAgICAgICB7IGNvbG9yOiAjZmZmOyBiYWNrZ3JvdW5kLWNvbG9yOiAkc29jaWFsLWNvbG9yLW1haWw7IGJvcmRlci1jb2xvcjogJHNvY2lhbC1jb2xvci1tYWlsOyB9fX1cbi5zb2NpYWwtYnV0dG9uLS1waW50ZXJlc3QgeyAuc29jaWFsLWJ1dHRvbl9fbGluayB7ICY6aG92ZXIsJjpmb2N1cywmOmFjdGl2ZSAgeyBjb2xvcjogI2ZmZjsgYmFja2dyb3VuZC1jb2xvcjogJHNvY2lhbC1jb2xvci1waW50ZXJlc3Q7IGJvcmRlci1jb2xvcjogJHNvY2lhbC1jb2xvci1waW50ZXJlc3Q7IH19fVxuLnNvY2lhbC1idXR0b24tLXR3aXR0ZXIgeyAuc29jaWFsLWJ1dHRvbl9fbGluayB7ICY6aG92ZXIsJjpmb2N1cywmOmFjdGl2ZSAgICB7IGNvbG9yOiAjZmZmOyBiYWNrZ3JvdW5kLWNvbG9yOiAkc29jaWFsLWNvbG9yLXR3aXR0ZXI7IGJvcmRlci1jb2xvcjogJHNvY2lhbC1jb2xvci10d2l0dGVyOyB9fX1cbi5zb2NpYWwtYnV0dG9uLS12aW1lbyB7IC5zb2NpYWwtYnV0dG9uX19saW5rIHsgJjpob3ZlciwmOmZvY3VzLCY6YWN0aXZlICAgICAgeyBjb2xvcjogI2ZmZjsgYmFja2dyb3VuZC1jb2xvcjogJHNvY2lhbC1jb2xvci12aW1lbzsgYm9yZGVyLWNvbG9yOiAkc29jaWFsLWNvbG9yLXZpbWVvOyB9fX1cbi5zb2NpYWwtYnV0dG9uLS15b3V0dWJlIHsgLnNvY2lhbC1idXR0b25fX2xpbmsgeyAmOmhvdmVyLCY6Zm9jdXMsJjphY3RpdmUgICAgeyBjb2xvcjogI2ZmZjsgYmFja2dyb3VuZC1jb2xvcjogJHNvY2lhbC1jb2xvci15b3V0dWJlOyBib3JkZXItY29sb3I6ICRzb2NpYWwtY29sb3IteW91dHViZTsgfX19XG5cbkBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAuc29jaWFsLWJ1dHRvbnMtbGlzdC0tcHJvZHVjdCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxufVxuXG5AbWVkaWEgI3skeGxhcmdlLXVwfSB7XG4gICAgLnNvY2lhbC1idXR0b25zLWxpc3QtLXByb2R1Y3Qge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHJpZ2h0OiAtM3JlbTtcbiAgICAgICAgdG9wOiAxcmVtO1xuICAgICAgICB3aWR0aDogJHNvY2lhbC1pY29uLXNpemU7XG5cbiAgICAgICAgLnNvY2lhbC1idXR0b24ge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAjcGFnZWZyYW1lICYge1xuICAgICAgICAgICAgcmlnaHQ6IC00LjVyZW07XG4gICAgICAgIH1cbiAgICB9XG59IiwiLyogU1BJTk5FUiwgdXNlZCBpbiBjaGVja291dCB3aGlsZSBjYXJ0IGlzIGxvYWRpbmcgZm9yIGluc3RhbmNlICovXG5cbiNzcGlubmVyLWNvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTIwcHg7XG59XG5cbmh0bWwubHQtaWUxMCAjc3Bpbm5lci1jb250YWluZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbiNzcGlubmVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogNTAlO1xuICAgIG1hcmdpbi1sZWZ0OiAtMzBweDtcbiAgICBib3R0b206IDA7XG59XG5cbiNmbG9hdGluZ0NpcmNsZXNHIHtcbiAgICBwb3NpdGlvbjpyZWxhdGl2ZTtcbiAgICB3aWR0aDo2MHB4O1xuICAgIGhlaWdodDo2MHB4O1xuICAgIEBpbmNsdWRlIHRyYW5zZm9ybShzY2FsZSgwLjYpKTtcbn1cblxuLmZfY2lyY2xlR3tcbiAgICBwb3NpdGlvbjphYnNvbHV0ZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiNGRkZGRkY7XG4gICAgaGVpZ2h0OjExcHg7XG4gICAgd2lkdGg6MTFweDtcbiAgICBib3JkZXItcmFkaXVzOjVweDtcbiAgICBAaW5jbHVkZSBhbmltYXRpb24tbmFtZShmX2ZhZGVHKTtcbiAgICBAaW5jbHVkZSBhbmltYXRpb24tZHVyYXRpb24oMC44cyk7XG4gICAgQGluY2x1ZGUgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudChpbmZpbml0ZSk7XG4gICAgQGluY2x1ZGUgYW5pbWF0aW9uLWRpcmVjdGlvbihub3JtYWwpO1xufVxuXG4jZnJvdGF0ZUdfMDF7XG4gICAgbGVmdDowO1xuICAgIHRvcDoyNXB4O1xuICAgIEBpbmNsdWRlIGFuaW1hdGlvbi1kZWxheSgwLjNzKTtcbn1cblxuI2Zyb3RhdGVHXzAye1xuICAgIGxlZnQ6N3B4O1xuICAgIHRvcDo3cHg7XG4gICAgQGluY2x1ZGUgYW5pbWF0aW9uLWRlbGF5KDAuNHMpO1xufVxuXG4jZnJvdGF0ZUdfMDN7XG4gICAgbGVmdDoyNXB4O1xuICAgIHRvcDowO1xuICAgIEBpbmNsdWRlIGFuaW1hdGlvbi1kZWxheSgwLjVzKTtcbn1cblxuI2Zyb3RhdGVHXzA0e1xuICAgIHJpZ2h0OjdweDtcbiAgICB0b3A6N3B4O1xuICAgIEBpbmNsdWRlIGFuaW1hdGlvbi1kZWxheSgwLjZzKTtcbn1cblxuI2Zyb3RhdGVHXzA1e1xuICAgIHJpZ2h0OjA7XG4gICAgdG9wOjI1cHg7XG4gICAgQGluY2x1ZGUgYW5pbWF0aW9uLWRlbGF5KDAuN3MpO1xufVxuXG4jZnJvdGF0ZUdfMDZ7XG4gICAgcmlnaHQ6N3B4O1xuICAgIGJvdHRvbTo3cHg7XG4gICAgQGluY2x1ZGUgYW5pbWF0aW9uLWRlbGF5KDAuOHMpO1xufVxuXG4jZnJvdGF0ZUdfMDd7XG4gICAgbGVmdDoyNXB4O1xuICAgIGJvdHRvbTowO1xuICAgIEBpbmNsdWRlIGFuaW1hdGlvbi1kZWxheSgwLjlzKTtcbn1cblxuI2Zyb3RhdGVHXzA4e1xuICAgIGxlZnQ6N3B4O1xuICAgIGJvdHRvbTo3cHg7XG4gICAgQGluY2x1ZGUgYW5pbWF0aW9uLWRlbGF5KDFzKTtcbn1cblxuQC1tb3ota2V5ZnJhbWVzIGZfZmFkZUd7XG4gICAgMCV7XG4gICAgYmFja2dyb3VuZC1jb2xvcjojMDAwMDAwfVxuXG4gICAgMTAwJXtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiNGRkZGRkZ9XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBmX2ZhZGVHe1xuICAgIDAle1xuICAgIGJhY2tncm91bmQtY29sb3I6IzAwMDAwMH1cblxuICAgIDEwMCV7XG4gICAgYmFja2dyb3VuZC1jb2xvcjojRkZGRkZGfVxufVxuXG5ALW1zLWtleWZyYW1lcyBmX2ZhZGVHe1xuICAgIDAle1xuICAgIGJhY2tncm91bmQtY29sb3I6IzAwMDAwMH1cblxuICAgIDEwMCV7XG4gICAgYmFja2dyb3VuZC1jb2xvcjojRkZGRkZGfVxufVxuXG5ALW8ta2V5ZnJhbWVzIGZfZmFkZUd7XG4gICAgMCV7XG4gICAgYmFja2dyb3VuZC1jb2xvcjojMDAwMDAwfVxuXG4gICAgMTAwJXtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiNGRkZGRkZ9XG59XG5cbkBrZXlmcmFtZXMgZl9mYWRlR3tcbiAgICAwJXtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiMwMDAwMDB9XG5cbiAgICAxMDAle1xuICAgIGJhY2tncm91bmQtY29sb3I6I0ZGRkZGRn1cbn0iLCIkbmF2LXNpZGUtaGVhZGVyLWZvbnRzaXplOiAkaDQtZm9udC1zaXplICFkZWZhdWx0O1xuJG5hdi1zaWRlLXRvcC1tYXJnaW46IDFyZW0gIWRlZmF1bHQ7XG4kcGFnZS1oZWFkZXItc2l6ZTogKCRwYWdlLXRpdGxlLXBhZGRpbmcgKiAyICsgJGgxLWZvbnQtc2l6ZSAqICRoZWFkZXItbGluZS1oZWlnaHQpICFkZWZhdWx0O1xuJG5hdi1zaWRlLWhlYWRlci10b3AtcGFkZGluZzogKCRwYWdlLWhlYWRlci1zaXplIC0gJHBhZ2UtdGl0bGUtcGFkZGluZyAtICRuYXYtc2lkZS10b3AtbWFyZ2luIC0gJG5hdi1zaWRlLWhlYWRlci1mb250c2l6ZSAqICRoZWFkZXItbGluZS1oZWlnaHQpICFkZWZhdWx0O1xuJHBhcmFncmFwaC1yZW0tbGluZS1oZWlnaHQ6IDFyZW0gKiAkcGFyYWdyYXBoLWxpbmUtaGVpZ2h0O1xuJGFjdGl2ZS1lbGVtLWJvcmRlci1zaXplOiByZW0tY2FsYyg1KTtcblxuLy8gVGhpcyBjb21wb25lbnQgaXMgb3B0aW9uYWwsIHdoaWNoIGlzIHdoeSBpdCBpcyBpbiBhIG1peGluXG5AbWl4aW4gc3BsaXRtZW51LXN0eWxlcygpIHtcblxuICAgIC5uYXYtc2lkZSB7XG4gICAgICAgIG1hcmdpbi10b3A6ICN7bWF4KDAsIC0kY29sdW1uLWd1dHRlciArICRuYXYtc2lkZS10b3AtbWFyZ2luKX07XG4gICAgICAgIGJhY2tncm91bmQ6ICNmNmY2ZjY7XG4gICAgfVxuXG4gICAgLm5hdi1zaWRlX19oZWFkZXIge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6ICRuYXYtc2lkZS1oZWFkZXItdG9wLXBhZGRpbmcgMXJlbSAkcGFnZS10aXRsZS1wYWRkaW5nO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGJvcmRlci1jb2xvcjtcbiAgICAgICAgZm9udC1zaXplOiAkbmF2LXNpZGUtaGVhZGVyLWZvbnRzaXplO1xuICAgIH1cbiAgICBcbiAgICAuc3BsaXRtZW51IHtcblxuICAgICAgICAmLmxldmVsLTAge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgLmxldmVsLTAge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgICAgICAgJi5zZWxlY3RlZCxcbiAgICAgICAgICAgICYuY3VycmVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgID4gYSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5sZXZlbC0xIHtcbiAgICAgICAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5sZXZlbC0yIGEge1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5zcGxpdG1lbnVfX2l0ZW0ge1xuICAgICAgICBsaW5lLWhlaWdodDogcmVtLWNhbGMoMjApO1xuXG4gICAgICAgIHVsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIGNvbG9yOiAjNTQ1NDU0O1xuICAgICAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gICAgICAgIH1cblxuICAgICAgICBhIHtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAkYWN0aXZlLWVsZW0tYm9yZGVyLXNpemUgc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZzogKHJlbS1jYWxjKDIwKS8yKSAoMXJlbSAtICRhY3RpdmUtZWxlbS1ib3JkZXItc2l6ZSk7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICAgICAgICAgIC5uby10b3VjaCAmIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAocmVtLWNhbGMoMTUpLzIpICgxcmVtIC0gJGFjdGl2ZS1lbGVtLWJvcmRlci1zaXplKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmb2N1cywgXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkaG92ZXItY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLmN1cnJlbnQgPiBhIHtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAkYWN0aXZlLWVsZW0tYm9yZGVyLXNpemUgc29saWQgJHByaW1hcnktY29sb3I7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuXG4gICAgICAgICAgICAmOmZvY3VzLCBcbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAkYWN0aXZlLWVsZW0tYm9yZGVyLXNpemUgc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGhvdmVyLWNvbG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi5zZWxlY3RlZCA+IGEge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLmxldmVsLTAge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYubGV2ZWwtMSB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGJvcmRlci1jb2xvcjtcblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmxldmVsLTIgYSB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAubGV2ZWwtMyBhIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIGEge1xuICAgICAgICAgICAgY29sb3I6ICRib2R5LWZvbnQtY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG5cbn1cblxuQGlmICRtZW51LXR5cGUgPT0gJ3NwbGl0JyB7XG4gICAgQGluY2x1ZGUgc3BsaXRtZW51LXN0eWxlcztcbn0iLCJ0YWJsZSB7XG4gICAgdGQucHJpcyxcbiAgICB0aC5wcmlzIHtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgfVxufVxuXG50ci5zdW0ge1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkYm9keS1mb250LWNvbG9yO1xuICAgIGJvcmRlci1ib3R0b206IDNweCBkb3VibGUgJGJvZHktZm9udC1jb2xvcjtcbn1cblxudGFibGUgdHIge1xuICAgICYuZXZlbixcbiAgICAmLmFsdCxcbiAgICAmOm50aC1vZi10eXBlKGV2ZW4pIHtcbiAgICAgICAgY29sb3I6ICR0YWJsZS1ldmVuLXJvdy10ZXh0LWNvbG9yO1xuICAgIH1cbn0iLCIkaW5jbHVkZS1xdWlja2ZpeC10YWItY2xhc3NlczogdHJ1ZSAhZGVmYXVsdDtcblxuJHRhYnMtaGVpZ2h0OiAgJHRvdWNoLWZyaWVuZGx5LXNpemUgIWRlZmF1bHQ7XG4kdGFicy1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuJHRhYnMtYm9yZGVyZWQ6IHRydWUgIWRlZmF1bHQ7XG4kdGFicy1ib3JkZXItY29sb3I6ICRib3JkZXItY29sb3IgIWRlZmF1bHQ7XG4kdGFicy1hY3RpdmUtYm9yZGVyLWNvbG9yOiAkdGFicy1hY3RpdmUtYmctY29sb3IgIWRlZmF1bHQ7XG4kdGFicy1uYXZpZ2F0aW9uLWFjdGl2ZS1ob3Zlci1iZy1jb2xvcjogbGlnaHRlbigkdGFicy1hY3RpdmUtYmctY29sb3IsIDE1JSkgIWRlZmF1bHQ7XG5cbkBtaXhpbiB0YWJzLXN0eWxpbmd7XG4gICAgLnRhYnMge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHRhYnMtYWN0aXZlLWJnLWNvbG9yO1xuICAgIH1cblxuICAgIC5qcy10YWJzIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDJyZW07XG4gICAgfVxuXG4gICAgLnJlc3AtdGFicy1saXN0IHtcbiAgICAgICAgbWFyZ2luOiAwcHg7XG4gICAgICAgIHBhZGRpbmc6IDBweDtcbiAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgIH1cblxuICAgIC5yZXNwLXRhYi1pdGVtIHtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRoZWFkZXItZm9udC1mYW1pbHk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAycHg7XG4gICAgfVxuXG4gICAgLnJlc3AtdGFiLWl0ZW0sXG4gICAgLnJlc3AtYWNjb3JkaW9uIHtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCR0YWJzLWZvbnQtY29sb3IsICR0YWJzLWJnLWNvbG9yKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYnMtYmctY29sb3I7XG4gICAgICAgIHBhZGRpbmc6IDAgJHRhYnMtcGFkZGluZztcbiAgICAgICAgbGluZS1oZWlnaHQ6ICR0YWJzLWhlaWdodDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgMjAwbXMgZWFzZSk7XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBpY29uKCRpY29uLXZhci1rZXlib2FyZC1hcnJvdy1kb3duKTtcbiAgICAgICAgICAgIEBleHRlbmQgLmljb24tbGFyZ2U7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IC41cmVtO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbih0cmFuc2Zvcm0gNDAwbXMgZWFzZSk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkdGFicy1mb250LWNvbG9yLCAkdGFicy1uYXZpZ2F0aW9uLWhvdmVyLWJnLWNvbG9yKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJzLW5hdmlnYXRpb24taG92ZXItYmctY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucmVzcC10YWJzLWNvbnRhaW5lciB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJzLWNvbnRhaW5lci1iZztcbiAgICAgICAgY2xlYXI6IGxlZnQ7XG4gICAgfVxuXG4gICAgLnJlc3AtYWNjb3JkaW9uIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC5yZXNwLXRhYi1jb250ZW50IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgcGFkZGluZzogJHRhYnMtcGFkZGluZztcblxuICAgICAgICA+IDpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucmVzcC10YWItYWN0aXZlLFxuICAgIC5yZXNwLWFjY29yZGlvbi5yZXNwLXRhYi1hY3RpdmUge1xuICAgICAgICBjb2xvcjogJHRhYnMtYWN0aXZlLWZvbnQtY29sb3I7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJzLWFjdGl2ZS1iZy1jb2xvcjtcblxuICAgICAgICAvLyBSb3RhdGUgYXJyb3cgd2hlbiBhY3RpdmF0ZWRcbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0ocm90YXRleCgxODBkZWcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCR0YWJzLWFjdGl2ZS1mb250LWNvbG9yLCAkdGFicy1uYXZpZ2F0aW9uLWFjdGl2ZS1ob3Zlci1iZy1jb2xvcik7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFicy1uYXZpZ2F0aW9uLWFjdGl2ZS1ob3Zlci1iZy1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5yZXNwLWNvbnRlbnQtYWN0aXZlLCBcbiAgICAucmVzcC1hY2NvcmRpb24tYWN0aXZlIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgLnJlc3AtZWFzeS1hY2NvcmRpb24gLnJlc3AtYWNjb3JkaW9uIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgLnJlc3AtamZpdCB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXJnaW46IDBweDtcbiAgICB9XG5cbiAgICAucmVzcC10YWItY29udGVudC1hY3RpdmUge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAvKkhlcmUgeW91ciBjYW4gY2hhbmdlIHRoZSBicmVha3BvaW50IHRvIHNldCB0aGUgYWNjb3JkaW9uLCB3aGVuIHNjcmVlbiByZXNvbHV0aW9uIGNoYW5nZWQqL1xuXG4gICAgQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcblxuICAgICAgICAuanMtdGFicyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHRhYnMtYm9yZGVyLWNvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgLnJlc3AtdGFicy1saXN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAucmVzcC1hY2NvcmRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICR0YWJzLXBhZGRpbmc7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDE2KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5yZXNwLXZ0YWJzIC5yZXNwLXRhYnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiBpbml0aWFsO1xuICAgICAgICAgICAgY2xlYXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAucmVzcC1hY2NvcmRpb24tY2xvc2VkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6bm9uZSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgICAgICAucmVzcC10YWItY29udGVudC1hY3RpdmUge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR0YWJzLWFjdGl2ZS1ib3JkZXItY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAbWVkaWEgI3skbGFyZ2UtdXB9IHtcbiAgICAgICAgLmpzLXRhYnMge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR0YWJzLWJvcmRlci1jb2xvcjtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAycmVtO1xuICAgICAgICB9XG4gICAgfVxuICAgIFxuICAgIEBjb250ZW50O1xufVxuXG5AaWYgJGluY2x1ZGUtcXVpY2tmaXgtdGFiLWNsYXNzZXMge1xuICBAaW5jbHVkZSB0YWJzLXN0eWxpbmc7XG59IiwiYS50aGVtZWQtbmF2IHtcbiAgICBjb2xvcjogJGJvZHktZm9udC1jb2xvcjtcblxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmLmFjdGl2ZSB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaG92ZXItY29sb3I7XG4gICAgfVxufSIsIi5zdWJ0bGUge1xuICAgIG9wYWNpdHk6IC42O1xufSIsIiRzdGlja3ktZm9vdGVyLW1lbnU6IGZhbHNlICFkZWZhdWx0O1xuJHNlYXJjaC1tb2RhbDogZmFsc2UgIWRlZmF1bHQ7XG5cbkBpZiAoJHN0aWNreS1mb290ZXItbWVudSkge1xuICAgIEBpbXBvcnQgXCJxdWlja2ZpeC9jb21wb25lbnRzL3N0aWNreS1mb290ZXItbWVudVwiO1xuICAgIEBpbXBvcnQgXCJxdWlja2ZpeC9jb21wb25lbnRzL3NsaWRlLWluLW1lbnVcIjtcbn1cblxuQGlmICgkc2VhcmNoLW1vZGFsKSB7XG4gICAgQGltcG9ydCBcInF1aWNrZml4L2NvbXBvbmVudHMvc2VhcmNoLW1vZGFsXCI7XG59XG4iLCIkc3RpY2t5LWZvb3Rlci1tZW51LWJnOiAjRUZFRkVGICFkZWZhdWx0O1xuJHN0aWNreS1mb290ZXItbWVudS1ib3JkZXItY29sb3I6IGRhcmtlbigkc3RpY2t5LWZvb3Rlci1tZW51LWJnLCAxMCUpICFkZWZhdWx0O1xuJHN0aWNreS1mb290ZXItbWVudS1jb2xvcjogaWYobHVtYSgkc3RpY2t5LWZvb3Rlci1tZW51LWJnKSA8IDUwLCAjZmZmLCAjMDAwKSAhZGVmYXVsdDtcbiRzdGlja3ktZm9vdGVyLWljb24tY29sb3I6ICRzdGlja3ktZm9vdGVyLW1lbnUtY29sb3IgIWRlZmF1bHQ7XG4kc3RpY2t5LWZvb3Rlci1oZWlnaHQ6IHJlbS1jYWxjKDYwKSAhZGVmYXVsdDtcbiRzdGlja3ktZm9vdGVyLWljb24tc2l6ZTogbWluKHJlbS1jYWxjKDI4KSwgLjQgKiAkc3RpY2t5LWZvb3Rlci1oZWlnaHQpICFkZWZhdWx0O1xuJHN0aWNreS1mb290ZXItbGFiZWwtZm9udC1zaXplOiByZW0tY2FsYygxMikgIWRlZmF1bHQ7XG4kc3RpY2t5LWZvb3Rlci1pY29uLXRvcC1wb3NpdGlvbjogJHN0aWNreS1mb290ZXItaGVpZ2h0IC0gJHN0aWNreS1mb290ZXItaWNvbi1zaXplIC0gJHN0aWNreS1mb290ZXItbGFiZWwtZm9udC1zaXplIC0gcmVtLWNhbGMoMTMpICFkZWZhdWx0O1xuJHN0aWNreS1mb290ZXItc2VwYXJhdG9yLWNvbG9yLWFkanVzdG1lbnQ6IDglICFkZWZhdWx0O1xuJHN0aWNreS1mb290ZXItc2VwYXJhdG9yLWNvbG9yOiBpZihsdW1hKCRzdGlja3ktZm9vdGVyLW1lbnUtYmcpIDwgNTAsIGxpZ2h0ZW4oJHN0aWNreS1mb290ZXItbWVudS1iZywgJHN0aWNreS1mb290ZXItc2VwYXJhdG9yLWNvbG9yLWFkanVzdG1lbnQpLCBkYXJrZW4oJHN0aWNreS1mb290ZXItbWVudS1iZywgJHN0aWNreS1mb290ZXItc2VwYXJhdG9yLWNvbG9yLWFkanVzdG1lbnQpKSAhZGVmYXVsdDtcblxuYm9keS5zdGlja3ktZm9vdGVyLW1lbnUgI2VuZCB7XG4gICAgcGFkZGluZy1ib3R0b206ICRzdGlja3ktZm9vdGVyLWhlaWdodDtcbn1cblxuI21lbnUtdG9nZ2xlciB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuI3N0aWNreS1mb290ZXItbWVudSB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIGJvdHRvbTogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6ICRzdGlja3ktZm9vdGVyLWhlaWdodDtcbiAgICBiYWNrZ3JvdW5kOiAkc3RpY2t5LWZvb3Rlci1tZW51LWJnO1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc3RpY2t5LWZvb3Rlci1tZW51LWJvcmRlci1jb2xvcjtcbiAgICB6LWluZGV4OiAyMDI7XG5cbiAgICB1bCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cblxuICAgIGxpIHtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiByZW0tY2FsYygyMSk7XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGhlaWdodDogNzAlO1xuICAgICAgICAgICAgdG9wOiAxNSU7XG4gICAgICAgICAgICB3aWR0aDogMXB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHN0aWNreS1mb290ZXItc2VwYXJhdG9yLWNvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkOmFmdGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmID4gYSxcbiAgICAgICAgJiA+IGxhYmVsIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc3RpY2t5LWZvb3Rlci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzdGlja3ktZm9vdGVyLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzdGlja3ktZm9vdGVyLWljb24tc2l6ZTtcblxuICAgICAgICAgICAgbGluZSxcbiAgICAgICAgICAgIGNpcmNsZSB7XG4gICAgICAgICAgICAgICAgc3Ryb2tlOiAkc3RpY2t5LWZvb3Rlci1pY29uLWNvbG9yICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHBhdGgge1xuICAgICAgICAgICAgICAgIGZpbGw6ICRzdGlja3ktZm9vdGVyLWljb24tY29sb3IgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGEge1xuICAgICAgICBjb2xvcjogJHN0aWNreS1mb290ZXItbWVudS1jb2xvcjtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cblxuICAgIGxhYmVsIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cblxuICAgIC5zdGlja3ktZm9vdGVyX19pY29uLWxhYmVsIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGZvbnQtc2l6ZTogJHN0aWNreS1mb290ZXItbGFiZWwtZm9udC1zaXplO1xuICAgICAgICBwYWRkaW5nLXRvcDogLjM1cmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY29sb3I6ICRzdGlja3ktZm9vdGVyLW1lbnUtY29sb3I7XG4gICAgfVxuXG4gICAgLyogTWVudSBzdHlsaW5nICovXG4gICAgI25hdi1vcGVuLWJ0biB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkc3RpY2t5LWZvb3Rlci1pY29uLXNpemU7XG4gICAgfVxuXG4gICAgLyogQ2FydCBzdHlsaW5nICovXG4gICAgLmNhcnQtYW5kLWNoZWNrb3V0IHtcbiAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICByaWdodDogMCAhaW1wb3J0YW50O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgfVxuICAgIC5jYXJ0LWJ1dHRvbiB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgI3N0aWNreS1mb290ZXItbWVudV9fY2FydCB7XG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jYXJ0LWJ1dHRvbl9fcXVhbnRpdHkge1xuICAgICAgICB0b3A6ICRzdGlja3ktZm9vdGVyLWljb24tdG9wLXBvc2l0aW9uIC0gcmVtLWNhbGMoOSk7XG4gICAgICAgIGxlZnQ6IGNhbGMoNTAlICsgM3B4KTtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxMyk7XG4gICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgIH1cbn1cbiIsIiRtZW51LWJnOiAjZmZmICFkZWZhdWx0O1xuJG1lbnUtbGluay1jb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGJvZHktZm9udC1jb2xvciwgJG1lbnUtYmcpO1xuJG1lbnUtbGluay1ob3Zlci1jb2xvcjogaWYoXG4gICAgbHVtYSgkcHJpbWFyeS1jb2xvcikgPiBsdW1hKCRtZW51LWJnKSxcbiAgICBsaWdodGVuKCRtZW51LWxpbmstY29sb3IsIDEwJSksXG4gICAgZGFya2VuKCRtZW51LWxpbmstY29sb3IsIDEwJSlcbik7XG4kbWVudS1oZWFkZXItcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcbiRtZW51LWhlYWRlci1mb250LXNpemU6IHJlbS1jYWxjKDIxKSAhZGVmYXVsdDtcbiRtZW51LWhlYWRlci1saW5lLWhlaWdodDogMS41ICFkZWZhdWx0O1xuJG1lbnUtaGVhZGVyLWhlaWdodDogJG1lbnUtaGVhZGVyLXBhZGRpbmcgKiAyICsgJG1lbnUtaGVhZGVyLWZvbnQtc2l6ZSAqICRtZW51LWhlYWRlci1saW5lLWhlaWdodDtcbiRtZW51LWl0ZW0tZm9udC1zaXplOiByZW0tY2FsYygxMykgIWRlZmF1bHQ7XG4kbWVudS1pdGVtLWxpbmUtaGVpZ2h0OiAxLjI1ICFkZWZhdWx0O1xuJG1lbnUtaXRlbS1oZWlnaHQ6IHJlbS1jYWxjKDQ0KSAhZGVmYXVsdDtcbiRtZW51LWl0ZW0tb3BlbmVyLXNpemU6ICRtZW51LWl0ZW0taGVpZ2h0ICFkZWZhdWx0O1xuJG1lbnUtaXRlbS1pbmRlbnRhdGlvbjogMXJlbSAhZGVmYXVsdDtcbiRtZW51LWl0ZW0tYm9yZGVyLWNvbG9yOiAjZWVlICFkZWZhdWx0O1xuJG1lbnUtaXRlbS1ib3JkZXItc3R5bGU6IDFweCBzb2xpZCAjeyRtZW51LWl0ZW0tYm9yZGVyLWNvbG9yfSAhZGVmYXVsdDtcbiRtZW51LWl0ZW0taG92ZXItZWZmZWN0LWNvbG9yOiByZ2JhKCNiYmIsIC4xKSAhZGVmYXVsdDtcbiRtZW51LWl0ZW0tc21hbGxlci1mb250LXNpemU6ICRtZW51LWl0ZW0tZm9udC1zaXplIC0gcmVtLWNhbGMoMSkgIWRlZmF1bHQ7XG4kbWVudS10cmFuc2l0aW9uLXNwZWVkOiAzMDBtcyAhZGVmYXVsdDtcblxuYm9keS5tZW51LW9wZW4ge1xuICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcbn1cblxuI21lbnUtbWFzayB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHotaW5kZXg6IDE5OTk7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IC0xMDAlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLC41KTtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5ICRtZW51LXRyYW5zaXRpb24tc3BlZWQgZWFzZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgbWFyZ2luOiAwO1xuXG4gICAgI21lbnUtdG9nZ2xlcjpjaGVja2VkIH4gJiB7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxufVxuXG4jbWVudSB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgdG9wOiAwO1xuICAgIHBhZGRpbmc6IDAgMXJlbTtcbiAgICB6LWluZGV4OiAyMDAwO1xuICAgIGJveC1zaGFkb3c6IDAgMCAxNDBweCAwIHJnYmEoMCwwLDAsLjE2KTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBiYWNrZ3JvdW5kOiAkbWVudS1iZztcbiAgICBsZWZ0OiAtMTAwJTtcbiAgICB3aWR0aDogNDByZW07XG4gICAgbWF4LXdpZHRoOiA4NSU7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0cmFuc2l0aW9uOiBsZWZ0ICRtZW51LXRyYW5zaXRpb24tc3BlZWQ7XG4gICAgY3Vyc29yOiBhdXRvO1xuXG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAzMHJlbSkge1xuICAgICAgICBwYWRkaW5nOiAwIDJyZW07XG4gICAgICAgIG1heC13aWR0aDogNzUlO1xuICAgIH1cblxuICAgICNtZW51LXRvZ2dsZXI6Y2hlY2tlZCB+ICYge1xuICAgICAgICBsZWZ0OiAwO1xuICAgIH1cblxuICAgIGhlYWRlciB7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZDNkM2QzO1xuICAgICAgICBwYWRkaW5nOiAkbWVudS1oZWFkZXItcGFkZGluZyAwO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgYmFja2dyb3VuZDogJG1lbnUtYmc7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICBoMyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkbWVudS1oZWFkZXItZm9udC1zaXplO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRtZW51LWhlYWRlci1saW5lLWhlaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIGxhYmVsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRtZW51LWhlYWRlci1saW5lLWhlaWdodDtcbiAgICAgICAgICAgIGhlaWdodDogJG1lbnUtaGVhZGVyLWxpbmUtaGVpZ2h0ICogJG1lbnUtaGVhZGVyLWZvbnQtc2l6ZSArICRtZW51LWhlYWRlci1wYWRkaW5nICogMjtcbiAgICAgICAgICAgIHdpZHRoOiAkbWVudS1pdGVtLW9wZW5lci1zaXplO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHVsIHtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICB1bCB7XG4gICAgICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJG1lbnUtaXRlbS1ib3JkZXItc3R5bGU7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiB2aXNpYmlsaXR5IDBzIGVhc2UsIGhlaWdodCAwcyBlYXNlLCBvcGFjaXR5ICRtZW51LXRyYW5zaXRpb24tc3BlZWQgZWFzZTtcblxuICAgICAgICAgICAgbGk6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggNCB7XG4gICAgICAgICAgICAmLm1lbnUtLWxldmVsLSN7JGl9IHtcbiAgICAgICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICAgICAgQGlmICgkaSA+IDIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJG1lbnUtaXRlbS1zbWFsbGVyLWZvbnQtc2l6ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAoJG1lbnUtaXRlbS1oZWlnaHQgLSAoJG1lbnUtaXRlbS1zbWFsbGVyLWZvbnQtc2l6ZSAqICRtZW51LWl0ZW0tbGluZS1oZWlnaHQpKS8yO1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206ICgkbWVudS1pdGVtLWhlaWdodCAtICgkbWVudS1pdGVtLXNtYWxsZXItZm9udC1zaXplICogJG1lbnUtaXRlbS1saW5lLWhlaWdodCkpLzI7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6ICRtZW51LWl0ZW0tZm9udC1zaXplO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAoJG1lbnUtaXRlbS1oZWlnaHQgLSAoJG1lbnUtaXRlbS1mb250LXNpemUgKiAkbWVudS1pdGVtLWxpbmUtaGVpZ2h0KSkvMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogKCRtZW51LWl0ZW0taGVpZ2h0IC0gKCRtZW51LWl0ZW0tZm9udC1zaXplICogJG1lbnUtaXRlbS1saW5lLWhlaWdodCkpLzI7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICgkaSArIDEpICogJG1lbnUtaXRlbS1pbmRlbnRhdGlvbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubWVudS1pdGVtLXdyYXAge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICB9XG5cbiAgICBsaSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgYm9yZGVyLXRvcDogJG1lbnUtaXRlbS1ib3JkZXItc3R5bGU7XG4gICAgICAgIGZvbnQtc2l6ZTogJG1lbnUtaXRlbS1mb250LXNpemU7XG5cbiAgICAgICAgQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkbWVudS1pdGVtLWZvbnQtc2l6ZSArIHJlbS1jYWxjKDEpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206ICRtZW51LWl0ZW0tYm9yZGVyLXN0eWxlO1xuICAgICAgICB9XG5cbiAgICAgICAgbGFiZWwge1xuICAgICAgICAgICAgd2lkdGg6ICRtZW51LWl0ZW0tb3BlbmVyLXNpemU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJG1lbnUtaXRlbS1ob3Zlci1lZmZlY3QtY29sb3I7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogNTAlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6IDk4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAkbWVudS10cmFuc2l0aW9uLXNwZWVkIGVhc2U7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGkge1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAxNTBtcyBlYXNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLyogY3VycmVudCBpdGVtIGhpZ2hsaWdodGluZyAqL1xuICAgICAgICAmLmN1cnJlbnQgPiAubWVudS1pdGVtLXdyYXAgYSB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGEge1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBsaW5lLWhlaWdodDogJG1lbnUtaXRlbS1saW5lLWhlaWdodDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgcGFkZGluZzogKCRtZW51LWl0ZW0taGVpZ2h0IC0gJG1lbnUtaXRlbS1saW5lLWhlaWdodCkvMiAkbWVudS1pdGVtLWluZGVudGF0aW9uO1xuICAgICAgICBjb2xvcjogJG1lbnUtbGluay1jb2xvcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkbWVudS1saW5rLWhvdmVyLWNvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgLyogaG92ZXIgZWZmZWN0ICovXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRtZW51LWl0ZW0taG92ZXItZWZmZWN0LWNvbG9yO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHJpZ2h0OiA1MCU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgei1pbmRleDogOTg7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyOmJlZm9yZSB7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIC4ycyBlYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC5tZW51LS1vcGVuZXIge1xuICAgICAgICAmIH4gLm1lbnUtaXRlbS13cmFwIGEge1xuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDFweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDgwJTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkbWVudS1pdGVtLWJvcmRlci1jb2xvcjtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDEwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAmIH4gLm1lbnUtaXRlbS13cmFwIHtcbiAgICAgICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJG1lbnUtaXRlbS1ob3Zlci1lZmZlY3QtY29sb3I7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgbGFiZWwge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkbWVudS1pdGVtLWhvdmVyLWVmZmVjdC1jb2xvcjtcblxuICAgICAgICAgICAgICAgICAgICBpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmIH4gdWwge1xuICAgICAgICAgICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59IiwiI3NlYXJjaC1tb2RhbCB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIC44NSk7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgb3BhY2l0eTogMDtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAwO1xuICAgIHRyYW5zaXRpb246IGFsbCAuNXM7XG4gICAgd2lkdGg6IDEwMHZ3O1xuICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gICAgei1pbmRleDogLTE7XG5cbiAgICAmOnRhcmdldCB7XG4gICAgICAgIGhlaWdodDogMTAwdmggIWltcG9ydGFudDtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgd2lkdGg6IDEwMHZ3ICFpbXBvcnRhbnQ7XG4gICAgICAgIHotaW5kZXg6IDIwMztcbiAgICAgICAgI3NlYXJjaC1tb2RhbF9fY2xvc2Uge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAjc2VhcmNoLW1vZGFsX19pbnB1dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYuZmFkZSB7XG4gICAgICAgIGhlaWdodDogMTAwdmg7XG4gICAgICAgIHdpZHRoOiAxMDB2dztcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAuNXM7XG4gICAgfVxufVxuXG4jc2VhcmgtbW9kYWxfX2Zvcm0ge1xuICAgIGZsZXg6IDEgMCBhdXRvO1xufVxuXG4jc2VhcmNoLW1vZGFsX19pbnB1dCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXI6IHNvbGlkICNmZmY7XG4gICAgYm9yZGVyLXdpZHRoOiAwIDAgMXB4IDA7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgaGVpZ2h0OiAycmVtO1xuICAgIG1heC13aWR0aDogNTAlO1xuICAgIG91dGxpbmU6IDA7XG4gICAgcGFkZGluZzogMnJlbSAxcmVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICBAbWVkaWEgI3skbWVkaXVtLXVwfSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICB9XG59XG5cbiNzZWFyY2gtbW9kYWxfX2Nsb3NlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAycmVtO1xuICAgIHJpZ2h0OiAycmVtO1xuXG4gICAgc3ZnIHtcbiAgICAgICAgd2lkdGg6IDRyZW07XG4gICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgfVxufVxuIiwiQGltcG9ydCBcImhvcml6b250YWxcIjtcblxuJG5hdi0taG9yaXpvbnRhbC0tcmlnaHQtaXMtbG9hZGVkOiBmYWxzZSAhZGVmYXVsdDtcblxuQGlmICRuYXYtLWhvcml6b250YWwtLXJpZ2h0LWlzLWxvYWRlZCA9PSBmYWxzZSB7XG5cbiAgICAubmF2LS1ob3Jpem9udGFsLS1yaWdodCB7XG4gICAgICAgIEBleHRlbmQgJW5hdi0taG9yaXpvbnRhbDtcblxuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICB9XG5cbiAgICAkbmF2LS1ob3Jpem9udGFsLS1yaWdodC1pcy1sb2FkZWQ6IHRydWU7XG59IiwiQGltcG9ydCBcImJvdXJib24vY3NzMy9maWx0ZXJcIjtcbkBpbXBvcnQgXCJib3VyYm9uL2NzczMvdHJhbnNpdGlvblwiO1xuXG5AaW1wb3J0IFwiaG92ZXJmeC9iYXNlXCI7XG5AaW1wb3J0IFwiaG92ZXJmeC9ibHVyXCI7XG5AaW1wb3J0IFwiaG92ZXJmeC9jb3ZlclwiO1xuQGltcG9ydCBcImhvdmVyZngvZmlnY2FwdGlvblwiO1xuQGltcG9ydCBcImhvdmVyZngvbGV2aXRhdGVcIjtcbkBpbXBvcnQgXCJob3ZlcmZ4L3Nob3d0aXRsZVwiO1xuQGltcG9ydCBcImhvdmVyZngvdGlsdFwiO1xuXG5hW2NsYXNzXj1cImhmeC0tXCJdLFxuYVtjbGFzcyo9XCIgaGZ4LS1cIl0ge1xuXHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59IiwiQG1peGluIGZpbHRlcigkZnVuY3Rpb246IG5vbmUpIHtcbiAgLy8gPGZpbHRlci1mdW5jdGlvbj4gWzxmaWx0ZXItZnVuY3Rpb25dKiB8IG5vbmVcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmlsdGVyLCAkZnVuY3Rpb24sIHdlYmtpdCBzcGVjKTtcbn1cblxuIiwiJWhmeC1iYXNlIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRkaXNwbGF5OiBibG9jaztcblx0d2lkdGg6IDEwMCU7XG5cdGhlaWdodDogMTAwJTtcbn0iLCIkaGZ4LWJsdXItdmFsdWU6IDJweCAhZGVmYXVsdDtcblxuLmhmeC0tYmx1ciB7XG5cdCY6aG92ZXIgaW1nIHtcblx0XHRAaW5jbHVkZSBmaWx0ZXIoYmx1cigkaGZ4LWJsdXItdmFsdWUpKTtcblx0fVxufSIsIkBpZiB2YXJpYWJsZS1leGlzdHMoXCJpY29uLXZhci1zZWFyY2hcIikgPT0gZmFsc2Uge1xuXHRAZXJyb3IgXCJNaXNzaW5nIGljb24gdmFyaWFibGVcIjsgXG59XG5cbkBpZiBtaXhpbi1leGlzdHMoXCJpY29uXCIpID09IGZhbHNlIHtcblx0QGVycm9yIFwiTWlzc2luZyBpY29uIG1peGluXCI7IFx0XG59XG5cbiRoZngtaWNvbi1zaXplOiByZW0tY2FsYygzMCkgIWRlZmF1bHQ7XG5cbi5oZngtLWNvdmVyLS1saWdodCxcbi5oZngtLWNvdmVyLS1kYXJrIHtcblx0QGV4dGVuZCAlaGZ4LWJhc2U7XG5cblx0Jjo6YmVmb3JlLFxuXHQmOjphZnRlciB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1x0XHRcblx0XHR3aWR0aDogMTAwJTtcblx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0b3BhY2l0eTogMDtcblx0XHR6LWluZGV4OiAxO1xuXHRcdEBpbmNsdWRlIHRyYW5zaXRpb24ob3BhY2l0eSAwLjNzIGVhc2UpO1xuXHR9XG5cblx0Jjo6YmVmb3JlIHtcblx0XHRjb250ZW50OiBcIlwiO1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHJnYmEoI2ZmZiwgLjY1KTtcblx0fVxuXG5cdCY6OmFmdGVyIHtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0XHRAaW5jbHVkZSBpY29uKCRpY29uLXZhci1zZWFyY2gpO1xuXHRcdGZvbnQtc2l6ZTogJGhmeC1pY29uLXNpemU7XG5cdFx0bGluZS1oZWlnaHQ6IDE7XG5cdFx0Y29sb3I6IHJnYmEoIzAwMCwgMC42NSk7XG5cdFx0dG9wOiA1MCU7XG5cdFx0bGVmdDogMDtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0bWFyZ2luLXRvcDogJGhmeC1pY29uLXNpemUvLTI7XG5cdFx0aGVpZ2h0OiAxZW07XG5cdFx0ei1pbmRleDogMjtcblx0fVxuXG5cdCY6aG92ZXIge1xuXHRcdCY6OmJlZm9yZSxcblx0XHQmOjphZnRlciB7XG5cdFx0XHRvcGFjaXR5OiAxO1xuXHRcdH1cblx0fVxufVxuXG4uaGZ4LS1jb3Zlci0tZGFyayB7XG5cdCY6OmJlZm9yZSB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogcmdiYSgjMDAwLCAuNjUpO1xuXHR9XG5cblx0Jjo6YWZ0ZXIge1xuXHRcdGNvbG9yOiByZ2JhKCNmZmYsIDAuNzUpO1xuXHR9XG59IiwiJGhmeC1maWdjYXB0aW9uLWZvbnQtc2l6ZTogcmVtLWNhbGMoMjUpICFkZWZhdWx0O1xuJGhmeC1maWdjYXB0aW9uLXRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2UgIWRlZmF1bHQ7XG4kaGZ4LWZpZ2NhcHRpb24tZm9udC13ZWlnaHQ6IGJvbGQgIWRlZmF1bHQ7XG4kaGZ4LWZpZ2NhcHRpb24tdHJhaWxlci1zeW1ib2w6IGZhbHNlICFkZWZhdWx0O1xuJGhmeC1maWdjYXB0aW9uLWxpZ2h0LWNvbG9yOiByZ2JhKCNmZmYsIC45KSAhZGVmYXVsdDtcbiRoZngtZmlnY2FwdGlvbi1kYXJrLWNvbG9yOiByZ2JhKCMwMDAsIC45KSAhZGVmYXVsdDtcblxuLmhmeC0tZmlnY2FwdGlvbiB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBmb250LXNpemU6ICRoZngtZmlnY2FwdGlvbi1mb250LXNpemU7XG4gICAgdGV4dC10cmFuc2Zvcm06ICRoZngtZmlnY2FwdGlvbi10ZXh0LXRyYW5zZm9ybTtcbiAgICBmb250LXdlaWdodDogJGhmeC1maWdjYXB0aW9uLWZvbnQtd2VpZ2h0O1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgZmlnY2FwdGlvbiB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcGFkZGluZzogLjVlbTtcbiAgICAgICAgei1pbmRleDoyO1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uIChvcGFjaXR5IC4zcyBlYXNlLWluLW91dCwgY29sb3IgLjNzIGVhc2UtaW4tb3V0KTtcblxuICAgICAgICBAaWYgJGhmeC1maWdjYXB0aW9uLXRyYWlsZXItc3ltYm9sICE9IGZhbHNlIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgY29udGVudDogXCIjeyRoZngtZmlnY2FwdGlvbi10cmFpbGVyLXN5bWJvbH1cIjtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IC4yNWVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmhmeC0tZmlnY2FwdGlvbi0tYm90dG9tLWxlZnQge1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgfVxuXG4gICAgLmhmeC0tZmlnY2FwdGlvbi0tYm90dG9tLXJpZ2h0IHtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICB9XG5cbiAgICAuaGZ4LS1maWdjYXB0aW9uLS10b3AtbGVmdCB7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICB9XG5cbiAgICAuaGZ4LS1maWdjYXB0aW9uLS10b3AtcmlnaHQge1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgIH1cblxuICAgIC5iYWNrZ3JvdW5kLS1saWdodCB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIGNvbG9yOiAkaGZ4LWZpZ2NhcHRpb24tZGFyay1jb2xvcjtcblxuICAgICAgICAuaGZ4LS1jb3Zlci0tZGFyazpob3ZlciAmLFxuICAgICAgICAuaGZ4LS1jb3Zlci0tZGFyazpmb2N1cyAmIHtcbiAgICAgICAgICAgIGNvbG9yOiAkaGZ4LWZpZ2NhcHRpb24tbGlnaHQtY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYmFja2dyb3VuZC0tZGFyayB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIGNvbG9yOiAkaGZ4LWZpZ2NhcHRpb24tbGlnaHQtY29sb3I7XG5cbiAgICAgICAgLmhmeC0tY292ZXItLWxpZ2h0OmhvdmVyICYsXG4gICAgICAgIC5oZngtLWNvdmVyLS1saWdodDpmb2N1cyAmIHtcbiAgICAgICAgICAgIGNvbG9yOiAkaGZ4LWZpZ2NhcHRpb24tZGFyay1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cbn0iLCIuaGZ4LS1sZXZpdGF0ZSB7XG5cdGltZyB7XG5cdFx0QGluY2x1ZGUgdHJhbnNpdGlvbih0cmFuc2Zvcm0gLjNzIGVhc2UsIGJveC1zaGFkb3cgLjNzIGVhc2UpO1xuXHR9XG5cblx0Jjpob3ZlciB7XG5cdFx0aW1nIHtcblx0XHRcdEBpbmNsdWRlIHRyYW5zZm9ybShzY2FsZSgxLjEpIHRyYW5zbGF0ZXooMCkpO1xuXHRcdFx0Ym94LXNoYWRvdzogMCAzcHggMTBweCByZ2JhKCMwMDAsIC4yNSk7XG5cdFx0fVxuXHR9XG59IiwiQGlmIHZhcmlhYmxlLWV4aXN0cyhcImNvbnRlbnQtYmdcIikgPT0gZmFsc2Uge1xuXHRAZXJyb3IgXCJNaXNzaW5nIGNvbnRlbnQtYmcgdmFyaWFibGVcIjsgXG59XG5cblxuLmhmeC0tc2hvdy10aXRsZSB7XG5cdEBleHRlbmQgJWhmeC1iYXNlO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXG5cdGltZyB7XG5cdFx0b3BhY2l0eTogMTtcblx0XHRAaW5jbHVkZSB0cmFuc2l0aW9uKG9wYWNpdHkgMC4yNXMgZWFzZSk7XG5cdH1cblxuXHQmOmFmdGVyIHtcblx0XHRjb250ZW50OiBhdHRyKHRpdGxlKTtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0Y29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCMzMzMsICRjb250ZW50LWJnLCA2KTtcblx0XHRib3R0b206IC0xMDAlO1xuXHRcdGJhY2tncm91bmQ6IHJnYmEoJGNvbnRlbnQtYmcsIDAuNzUpO1xuXHRcdGxlZnQ6IDA7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0cGFkZGluZzogMXJlbTtcblx0XHRAaW5jbHVkZSB0cmFuc2l0aW9uKGJvdHRvbSAwLjI1cyBlYXNlKTtcblx0fVxuXG5cdCY6aG92ZXIge1xuXHRcdGltZyB7XG5cdFx0XHRvcGFjaXR5OiAwLjM7XG5cdFx0fVxuXG5cdFx0JjphZnRlciB7XG5cdFx0XHRib3R0b206IDA7XG5cdFx0fVxuXHR9XG59IiwiJGhmeC10aWx0LWFuZ2xlOiA1ZGVnICFkZWZhdWx0O1xuXG4uaGZ4LS10aWx0LS1yaWdodCxcbi5oZngtLXRpbHQtLWxlZnQge1xuXHRAZXh0ZW5kICVoZngtYmFzZTtcblx0b3ZlcmZsb3c6IHZpc2libGU7XG5cblx0aW1nIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0QGluY2x1ZGUgdHJhbnNpdGlvbih0cmFuc2Zvcm0gMC4ycyBlYXNlKTtcblx0fVxufVxuXG4uaGZ4LS10aWx0LS1yaWdodCB7XG5cdCY6aG92ZXIge1xuXHRcdGltZyB7XG5cdFx0XHRAaW5jbHVkZSB0cmFuc2Zvcm0ocm90YXRlKCRoZngtdGlsdC1hbmdsZSkgdHJhbnNsYXRleigwKSk7XG5cdFx0fVxuXHR9XG59XG5cbi5oZngtLXRpbHQtLWxlZnQge1xuXHQmOmhvdmVyIHtcblx0XHRpbWcge1xuXHRcdFx0QGluY2x1ZGUgdHJhbnNmb3JtKHJvdGF0ZSgtJGhmeC10aWx0LWFuZ2xlKSB0cmFuc2xhdGV6KDApKTtcblx0XHR9XG5cdH1cbn1cbiIsIi5hYm91dC1tZW51IHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbGluZS1oZWlnaHQ6ICR0b3VjaC1mcmllbmRseS1zaXplO1xuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuXG4gICAgYSB7XG4gICAgICAgIHBhZGRpbmc6IDAgLjc1cmVtO1xuICAgIH1cblxuICAgIC5uby10b3VjaCAmIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRub25lLXRvdWNoLWZyaWVuZGx5LXNpemU7XG4gICAgfVxuXG4gICAgLmxvZ2luX2J0bi5pcy1oaWRkZW4ge1xuICAgIFx0ZGlzcGxheTogbm9uZTtcbiAgICB9XG59IiwiLmJsb2NrX19ib3hfX2hlYWRsaW5lIHtcblx0dGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi5ibG9ja19fYm94X19jb250ZW50LFxuLmJsb2NrX19ib3hfX2NvbnRlbnQgdWwsXG4uYmxvY2tfX2JveF9fY29udGVudCBvbCxcbi5ibG9ja19fYm94X19jb250ZW50IGRsIHtcblx0cGFkZGluZy10b3A6IDA7XG5cdGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xufVxuXG4uYmxvY2tfX2JveC0tdGlwLWEtZnJpZW5kLFxuLmJsb2NrX19ib3gtLWFjY291bnQsXG4uYmxvY2tfX2JveC0tbmV3c2xldHRlcixcbi5ibG9ja19fYm94LS1tYW51ZmFjdHVyZXJzIHtcblx0aW5wdXRbdHlwZT1zdWJtaXRdLFxuXHQuYnV0dG9uLFxuXHRzZWxlY3Qge1xuXHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdH1cbn1cblxuLmJsb2NrX19ib3gtLWJlc3RzZWxsZXIge1xuXHQuYmxvY2tfX2JveF9fY29udGVudCB7XG5cdFx0cGFkZGluZy10b3A6IDAgIWltcG9ydGFudDtcblx0fVxufVxuXG4vKiBpbmZvcm1hdGlvbiBtZW51ICovXG4jYmxvY2stdmVuc3RyZSB7XG5cdCNqcy1ib3gtNy1jb250ZW50cyB7XG5cdFx0QGV4dGVuZCAubmF2LXNpZGU7XG5cdH1cbn1cblxuI2Zvb3RlciB7XG5cdC5ibG9ja19fYm94X19jb250ZW50IHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0fVxufSIsIi5icmVhZGNydW1icyB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXG4gICAgbGksYSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkdG91Y2gtZnJpZW5kbHktc2l6ZTtcblxuICAgICAgICAubm8tdG91Y2ggJiB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJG5vbmUtdG91Y2gtZnJpZW5kbHktc2l6ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jdXJyZW50IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAmID4gKjpiZWZvcmUge1xuICAgIFx0QGluY2x1ZGUgaWNvbigkaWNvbi12YXItY2hldnJvbi1yaWdodCk7XG4gICAgXHRmb250LXNpemU6IHJlbS1jYWxjKDE1KTtcbiAgICBcdHZlcnRpY2FsLWFsaWduOiAtNSU7XG4gICAgXHRtYXJnaW46IDAgLjJyZW07XG4gICAgfVxufVxuXG5AbWVkaWEgI3skbWVkaXVtLXVwfSB7XG4gICAgLmJyZWFkY3J1bWJzIHtcbiAgICAgICAgLmN1cnJlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbGlzdC1pdGVtO1xuICAgICAgICB9XG4gICAgfVxufSIsIi5zbGlkZXJfX3dyYXBwZXIge1xuXHRtYXJnaW4tYm90dG9tOiAkY29sdW1uLWd1dHRlci8yO1xufVxuXG4uYngtcGFnZXItbGluayxcbi5ieC1wYWdlci1saW5rLmFjdGl2ZSB7XG5cdCY6YWZ0ZXIge1xuXHRcdGJhY2tncm91bmQ6ICRib2R5LWJnO1xuXHR9XG59IiwiLmNhcnQtYnV0dG9uLS1lbXB0eSB7XG4gICAgLmNhcnQtYnV0dG9uX19xdWFudGl0eSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufSIsIi5jYXRlZ29yeWxpc3RfX2NhdGVnb3J5X19oZWFkbGluZSB7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygyMCk7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uY2F0ZWdvcnlsaXN0X19jYXRlZ29yeS13cmFwIHtcbiAgICBib3gtc2hhZG93OiAwIDAgMCByZ2JhKCRjb250ZW50LXRleHQtY29sb3IsMCk7XG4gICAgQGluY2x1ZGUgc2luZ2xlLXRyYW5zaXRpb24oYm94LXNoYWRvdyk7XG59XG5cbi5jYXRlZ29yeWxpc3RfX2NhdGVnb3J5LXdyYXA6aG92ZXIge1xuICAgIGJveC1zaGFkb3c6IDAgMCAxcmVtIHJnYmEoJGNvbnRlbnQtdGV4dC1jb2xvciwuMik7XG59IiwiJG5hdm1lbnUtc2lkZS1wYWRkaW5nOiByZW0tY2FsYygxOCkgIWRlZmF1bHQ7XG5cbiNuYXZtZW51LXYge1xuXHRsaSB7XG5cdFx0bGkge1xuXHRcdFx0YSB7XG5cdFx0XHRcdHBhZGRpbmctbGVmdDogJG5hdm1lbnUtc2lkZS1wYWRkaW5nO1xuXHRcdFx0fVxuXG5cdFx0XHRsaSB7XG5cdFx0XHRcdGEge1xuXHRcdFx0XHRcdHBhZGRpbmctbGVmdDogJG5hdm1lbnUtc2lkZS1wYWRkaW5nICogMjtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGxpIHtcblx0XHRcdFx0XHRhIHtcblx0XHRcdFx0XHRcdHBhZGRpbmctbGVmdDogJG5hdm1lbnUtc2lkZS1wYWRkaW5nICogMztcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRsaSBhIHtcblx0XHRcdFx0XHRcdHBhZGRpbmctbGVmdDogJG5hdm1lbnUtc2lkZS1wYWRkaW5nICogNDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cbn0iLCIuc2V0dGluZ19fZm9ybSB7XG4gICAgei1pbmRleDogMjAxO1xufSIsIiNtYWluLW1lbnUge1xuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xufVxuXG5AbWVkaWEgI3skbGFyZ2UtdXB9IHtcblxuICAgICNtYWluLW1lbnUgLmljb24taG9tZSB7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiAtMTAlO1xuICAgIH1cblxuICAgIC5tYWluLW5hdl9faXRlbS5sZXZlbC0wIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxcHg7XG5cbiAgICAgICAgJiA+IGEge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuXG4gICAgICAgICAgICAmOm5vdCg6aG92ZXIpIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpZihsdW1hKCRuYXZpZ2F0aW9uLWJnKSA8IDUwLCBsaWdodGVuKCRuYXZpZ2F0aW9uLWJnLCAxNSUpLCBkYXJrZW4oJG5hdmlnYXRpb24tYmcsIDE1JSkpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYgJGdsb2JhbC1yYWRpdXMgPiAwIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBib3JkZXItdG9wLXJhZGl1cygkZ2xvYmFsLXJhZGl1cyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLmN1cnJlbnQgPiBhLFxuICAgICAgICAmLnNlbGVjdGVkID4gYSxcbiAgICAgICAgJiA+IGEuaGlnaGxpZ2h0ZWQsXG4gICAgICAgICYgPiBhOmhvdmVyLFxuICAgICAgICAmID4gYTpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnJlYWRjcnVtYnMtYmc7XG4gICAgICAgICAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoaWYobHVtYSgkYnJlYWRjcnVtYnMtYmcpIDwgNTAsICRsaWdodC1ib2R5LXRleHQsICRkYXJrLWJvZHktdGV4dCksICRicmVhZGNydW1icy1iZyk7XG4gICAgICAgIH1cblxuICAgICAgICAuZnJvbnRwYWdlICYuY3VycmVudCA+IGEsXG4gICAgICAgIC5mcm9udHBhZ2UgJi5zZWxlY3RlZCA+IGEsXG4gICAgICAgIC5mcm9udHBhZ2UgJiA+IGEuaGlnaGxpZ2h0ZWQsXG4gICAgICAgIC5mcm9udHBhZ2UgJiA+IGE6aG92ZXIsXG4gICAgICAgIC5mcm9udHBhZ2UgJiA+IGE6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJvZHktYmc7XG4gICAgICAgICAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoaWYobHVtYSgkYm9keS1iZykgPCA1MCwgJGxpZ2h0LWJvZHktdGV4dCwgJGRhcmstYm9keS10ZXh0KSwgJGJvZHktYmcpO1xuICAgICAgICB9XG5cblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgI25hdiB7XG4gICAgICAgIGJvcmRlci10b3A6IDA7XG4gICAgfVxuXG5cbiAgICAubm8tdG91Y2ggLm1haW4tbmF2X19pdGVtLmxldmVsLTAgPiBhLFxuICAgIC5uby10b3VjaCAubWFpbi1uYXZfX2l0ZW0ubGV2ZWwtMCA+IGE6YWZ0ZXIsIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRub25lLXRvdWNoLWZyaWVuZGx5LXNpemU7XG4gICAgfVxuXG4gICAgLm5vLXRvdWNoIC5tYWluLW5hdl9fbGlzdCBhIHtcbiAgICAgICAgcGFkZGluZy10b3A6IC4yNXJlbTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IC4yNXJlbTtcbiAgICB9XG5cbiAgICAubm8tdG91Y2ggLm1haW4tbmF2X19pdGVtLmxldmVsLTAgPiBhIHtcbiAgICAgICAgcGFkZGluZy10b3A6IGluaGVyaXQ7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBpbmhlcml0O1xuICAgIH1cblxufSIsIiNtYWluLWNvbnRlbnQsXG4jbWFpbi1jb250ZW50LW9uZXBhZ2Uge1xuICAgIHBhZGRpbmctdG9wOiAkY29sdW1uLWd1dHRlci8yO1xuICAgIHBhZGRpbmctYm90dG9tOiAkY29sdW1uLWd1dHRlci8yO1xufVxuXG4ucGFnZV9fdGl0bGUge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgcGFkZGluZy10b3A6IDA7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogJGNvbHVtbi1ndXR0ZXIvMjtcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDMwKTtcbn1cblxuI21haW4ge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAkYm9keS1iZztcbn0iLCIkcHJvZHVjdC1kaXNjb3VudC1oZWlnaHQ6IDIuNXJlbSAhZGVmYXVsdDtcbiRwcm9kdWN0LWRpc2NvdW50LWFycm93LWhlaWdodDogMTBweCAhZGVmYXVsdDtcblxuLnByb2R1Y3Qge1xuICAgIGJhY2tncm91bmQ6ICRjb250ZW50LWJnO1xuICAgIHBhZGRpbmc6ICRjb2x1bW4tZ3V0dGVyLzI7XG59XG5cbi5wcm9kdWN0LS1vbi1zYWxlIHtcblx0LnByaWNlIHtcblx0XHRtYXJnaW4tdG9wOiAkcHJvZHVjdC1kaXNjb3VudC1oZWlnaHQ7XG5cdFx0cGFkZGluZy10b3A6ICRwcm9kdWN0LWRpc2NvdW50LWFycm93LWhlaWdodC8yO1xuXHR9XG5cbiAgICAuZGlzY291bnQge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6ICRjb2x1bW4tZ3V0dGVyLzI7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJGNhbGwtdG8tYWN0aW9uLWNvbG9yLCAuOSk7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtZGlzY291bnQtaGVpZ2h0O1xuICAgICAgICBsaW5lLWhlaWdodDogJHByb2R1Y3QtZGlzY291bnQtaGVpZ2h0O1xuICAgICAgICBwYWRkaW5nOiAwIC43NXJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTgpO1xuICAgICAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGNvbnRlbnQtdGV4dC1jb2xvciwgJGNhbGwtdG8tYWN0aW9uLWNvbG9yLCAzKTtcblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDA7XG4gICAgICAgICAgICBib3JkZXItbGVmdDogMDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogMXJlbSBzb2xpZCByZ2JhKCRjYWxsLXRvLWFjdGlvbi1jb2xvciwgLjkpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogJHByb2R1Y3QtZGlzY291bnQtYXJyb3ctaGVpZ2h0IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm90dG9tOiAtJHByb2R1Y3QtZGlzY291bnQtYXJyb3ctaGVpZ2h0O1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogMDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAxcmVtIHNvbGlkIHJnYmEoJGNhbGwtdG8tYWN0aW9uLWNvbG9yLCAuOSk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAkcHJvZHVjdC1kaXNjb3VudC1hcnJvdy1oZWlnaHQgc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3R0b206IC0kcHJvZHVjdC1kaXNjb3VudC1hcnJvdy1oZWlnaHQ7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgIH1cbiAgICB9XG59IiwiJGRpc2NvdW50LWhlaWdodDogM3JlbSAhZGVmYXVsdDtcbiRkaXNjb3VudC1jb2xvcjogJGNhbGwtdG8tYWN0aW9uLWNvbG9yO1xuJGRpc2NvdW50LWFycm93LXdpZHRoOiBzdHJpcC11bml0KCRkaXNjb3VudC1oZWlnaHQvNCkgKiAkcmVtLWJhc2U7IC8vIGluIHBpeGVscywgZm9yIHBpeGVsIGFjY3VyYWN5XG5cbi5wcm9kdWN0bGlzdCB7XG4gICAgLm9mZmVycyB7XG4gICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgIH1cblxuICAgIC52YXQtaW5mbyxcbiAgICAuY3VycmVuY3ksXG4gICAgLnByaWNlX19zYWxlcHJpY2UtdGV4dCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLnByaWNlLS1vcmlnaW5hbCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTMpO1xuICAgICAgICBAZXh0ZW5kIC5zdWJ0bGU7XG4gICAgfVxuXG4gICAgLnByaWNlX19kaXNwbGF5IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IHJlbS1jYWxjKDMxKTtcbiAgICB9XG5cbiAgICAucHJvZHVjdGxpc3RfX3Byb2R1Y3RfX2J1dHRvbiB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIHBhZGRpbmc6IC41cmVtIDFyZW07XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICB9XG5cbiAgICAuZGlzY291bnQge1xuICAgICAgICAkX2Rpc2NvdW50LWJnOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkY2FsbC10by1hY3Rpb24tY29sb3IsICRjb250ZW50LWJnLCAxLjA1KTtcbiAgICAgICAgXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAxcmVtO1xuICAgICAgICByaWdodDogLSRlcXVhbC1jb2wtaW5uZXItcGFkZGluZztcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkX2Rpc2NvdW50LWJnLCAuOSk7XG4gICAgICAgIGhlaWdodDogJGRpc2NvdW50LWhlaWdodDtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRkaXNjb3VudC1oZWlnaHQ7XG4gICAgICAgIHBhZGRpbmc6IDAgLjc1cmVtO1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxOCk7XG5cbiAgICAgICAgJixcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoaWYobHVtYSgkX2Rpc2NvdW50LWJnKSA8IDUwLCAjZmZmLCAjMDAwKSwgJF9kaXNjb3VudC1iZywgMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgICAgICBsZWZ0OiAtI3skZGlzY291bnQtYXJyb3ctd2lkdGh9O1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJGRpc2NvdW50LWhlaWdodC8yIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkZGlzY291bnQtYXJyb3ctd2lkdGggc29saWQgcmdiYSgkX2Rpc2NvdW50LWJnLCAuOSk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAkZGlzY291bnQtaGVpZ2h0LzIgc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDA7XG4gICAgICAgICAgICBib3JkZXItbGVmdDogMXJlbSBzb2xpZCBpZigkY29udGVudC1iZy1pcy1kYXJrLCBsaWdodGVuKCRjb250ZW50LWJnLCAyMCUpLCBkYXJrZW4oJGNvbnRlbnQtYmcsIDIwJSkpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMTBweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvdHRvbTogLTEwcHg7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5wcm9kdWN0bGlzdF9fcHJvZHVjdC13cmFwIHtcbiAgICBib3gtc2hhZG93OiAwIDAgMCByZ2JhKCRjb250ZW50LXRleHQtY29sb3IsMCk7XG4gICAgQGluY2x1ZGUgc2luZ2xlLXRyYW5zaXRpb24oYm94LXNoYWRvdyk7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4ucHJvZHVjdGxpc3RfX3Byb2R1Y3Qtd3JhcDpob3ZlciB7XG4gICAgYm94LXNoYWRvdzogMCAwIDFyZW0gcmdiYSgkY29udGVudC10ZXh0LWNvbG9yLC4yKTtcbn1cblxuLnByb2R1Y3RsaXN0X19wcm9kdWN0X19idXR0b24td3JhcCB7XG4gICAgd2lkdGg6IDUwJTtcbiAgICBmbG9hdDogcmlnaHQ7XG59XG5cbi5lcXVhbC1oZWlnaHQtY29sdW1uX19pbWFnZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLnByb2R1Y3RsaXN0X19wcm9kdWN0X19oZWFkbGluZV9fd3JhcHBlciB7XG4gICAgaGVpZ2h0OiAxcmVtICogJGJhc2UtbGluZS1oZWlnaHQgKiAyO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLnByb2R1Y3RsaXN0X19wcm9kdWN0X19oZWFkbGluZSB7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi5wcm9kdWN0bGlzdF9fcHJvZHVjdF9fZGVzY3JpcHRpb24ge1xuICAgIGNsZWFyOiBib3RoO1xuICAgIHBhZGRpbmctdG9wOiAuNXJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuXG4gICAgYTpob3ZlciAmIHtcbiAgICAgICAgY29sb3I6ICRib2R5LWZvbnQtY29sb3I7XG4gICAgfVxufSIsIiRzaWRlYmFyLWJvcmRlci1jb2xvcjogaWYobHVtYSgkY29udGVudC1iZykgPCA1MCwgbGlnaHRlbigkY29udGVudC1iZywgMTUlKSwgZGFya2VuKCRjb250ZW50LWJnLCAxNSUpKSAhZGVmYXVsdDtcbiRzaWRlYmFyLWhlYWRlci1iZzogJGhlYWRlci1iZyAhZGVmYXVsdDtcblxuLnNpZGViYXIge1xuXHRwYWRkaW5nLXRvcDogcmVtLWNhbGMoNyk7XG5cblx0LmJsb2NrLFxuXHQuYmxvY2tfX2JveCB7XG5cdFx0bWFyZ2luLWJvdHRvbTogJGNvbHVtbi1ndXR0ZXI7XG5cblx0XHQmOmxhc3QtY2hpbGQge1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0XHR9XG5cdH1cblxuXHQuYmxvY2tfX2JveF9faGVhZGxpbmUtd3JhcHBlciB7XG5cdFx0YmFja2dyb3VuZDogJHNpZGViYXItaGVhZGVyLWJnO1xuXG4gICAgICAgIEBpZiAkZ2xvYmFsLXJhZGl1cyA+IDAge1xuICAgICAgICAgICAgQGluY2x1ZGUgYm9yZGVyLXRvcC1yYWRpdXMoJGdsb2JhbC1yYWRpdXMpO1xuICAgICAgICB9XG5cdH1cblxuXHQuYmxvY2tfX2JveC5ib3JkZXJlZC0tYm90dG9tIHtcblx0XHRib3JkZXItYm90dG9tOiBub25lO1xuXHR9XG5cblx0LmJsb2NrX19ib3hfX2hlYWRsaW5lIHtcblx0ICAgIGNvbG9yOiBpZihsdW1hKCRzaWRlYmFyLWhlYWRlci1iZykgPCA1MCwgYWNjZXNzaWJsZS1sdW1pbmFuY2UoI2ZmZiwgJHNpZGViYXItaGVhZGVyLWJnKSwgYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGRhcmstYm9keS10ZXh0LCAkc2lkZWJhci1oZWFkZXItYmcpKTtcblx0ICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuXHQgICAgZm9udC1zaXplOiByZW0tY2FsYygxNik7XG5cdCAgICBwYWRkaW5nOiAuMzVyZW0gJHNpZGViYXItc2lkZS1wYWRkaW5nO1xuXHR9XG5cblx0LmJsb2NrX19ib3hfX2NvbnRlbnQge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICRjb250ZW50LWJnO1xuXHRcdGNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuXHRcdHBhZGRpbmc6ICRzaWRlYmFyLXNpZGUtcGFkZGluZztcblx0XHRtYXJnaW4tYm90dG9tOiAuNXJlbTtcblx0XHRib3JkZXI6IDFweCBzb2xpZCAkc2lkZWJhci1ib3JkZXItY29sb3I7XG5cdH1cblxuXHQuYmxvY2tfX2JveC0tbWFudWZhY3R1cmVycyB7XG5cdFx0c2VsZWN0LGJ1dHRvbiB7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHRcdH1cblx0fVxuXG5cdC5ibG9ja19fYm94LS1iYW5uZXJzX2xlZnQsXG5cdC5ibG9ja19fYm94LS1iYW5uZXJzX3JpZ2h0IHtcblx0XHQud3JhcHBlcl9iYW5uZXIgPiBkaXYge1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogJHNpZGViYXItc2lkZS1wYWRkaW5nO1xuXG5cdFx0XHQmOmxhc3QtY2hpbGQge1xuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufSIsIi5zb2NpYWwtYnV0dG9ucy1saXN0LS1wcm9kdWN0IHtcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIHJpZ2h0OiAwO1xuICAgIHRvcDogMDtcbn1cblxuLnNvY2lhbC1idXR0b25zX19oZWFkbGluZS13cmFwcGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAuYmxvY2tfX2JveF9faGVhZGxpbmUge1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB9XG59XG5cbi5zb2NpYWwtYnV0dG9uIHtcbiAgICBsaW5lLWhlaWdodDogMnJlbTtcblxuICAgIC5zb2NpYWwtYnV0dG9uX19saW5rIHtcbiAgICAgICAgQGluY2x1ZGUgcmFkaXVzKCRnbG9iYWwtcmFkaXVzKTtcbiAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxNik7XG4gICAgfVxufVxuXG4uc29jaWFsLWJ1dHRvbnMtbGlzdC0tcHJvZHVjdCAuc29jaWFsLWJ1dHRvbiAuc29jaWFsLWJ1dHRvbl9fbGluayB7XG4gICAgYm9yZGVyOiBub25lO1xufVxuXG4uc29jaWFsLWJ1dHRvbi0tYmxvZ2dlciB7IFxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSxcbiAgICAuc29jaWFsLWJ1dHRvbnMtbGlzdC0tcHJvZHVjdCAmIHtcbiAgICAgICAgLnNvY2lhbC1idXR0b25fX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc29jaWFsLWNvbG9yLWJsb2dnZXI7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzb2NpYWwtY29sb3ItYmxvZ2dlcjtcbiAgICAgICAgfVxuICAgIH1cbn1cbi5zb2NpYWwtYnV0dG9uLS1lbGxvIHsgXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlLFxuICAgIC5zb2NpYWwtYnV0dG9ucy1saXN0LS1wcm9kdWN0ICYge1xuICAgICAgICAuc29jaWFsLWJ1dHRvbl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogIzAwMDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzb2NpYWwtY29sb3ItZWxsbztcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNvY2lhbC1jb2xvci1lbGxvO1xuICAgICAgICB9XG4gICAgfVxufVxuLnNvY2lhbC1idXR0b24tLWZhY2Vib29rIHsgXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlLFxuICAgIC5zb2NpYWwtYnV0dG9ucy1saXN0LS1wcm9kdWN0ICYge1xuICAgICAgICAuc29jaWFsLWJ1dHRvbl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzb2NpYWwtY29sb3ItZmFjZWJvb2s7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzb2NpYWwtY29sb3ItZmFjZWJvb2s7XG4gICAgICAgIH1cbiAgICB9XG59XG4uc29jaWFsLWJ1dHRvbi0tZmxpY2tyIHsgXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlLFxuICAgIC5zb2NpYWwtYnV0dG9ucy1saXN0LS1wcm9kdWN0ICYge1xuICAgICAgICAuc29jaWFsLWJ1dHRvbl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzb2NpYWwtY29sb3ItZmxpY2tyO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc29jaWFsLWNvbG9yLWZsaWNrcjtcbiAgICAgICAgfVxuICAgIH1cbn1cbi5zb2NpYWwtYnV0dG9uLS1nb29nbGVwbHVzIHsgXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlLFxuICAgIC5zb2NpYWwtYnV0dG9ucy1saXN0LS1wcm9kdWN0ICYge1xuICAgICAgICAuc29jaWFsLWJ1dHRvbl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzb2NpYWwtY29sb3ItZ29vZ2xlcGx1cztcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNvY2lhbC1jb2xvci1nb29nbGVwbHVzO1xuICAgICAgICB9XG4gICAgfVxufVxuLnNvY2lhbC1idXR0b24tLWluc3RhZ3JhbSB7IFxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSxcbiAgICAuc29jaWFsLWJ1dHRvbnMtbGlzdC0tcHJvZHVjdCAmIHtcbiAgICAgICAgLnNvY2lhbC1idXR0b25fX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc29jaWFsLWNvbG9yLWluc3RhZ3JhbTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNvY2lhbC1jb2xvci1pbnN0YWdyYW07XG4gICAgICAgIH1cbiAgICB9XG59XG4uc29jaWFsLWJ1dHRvbi0tbGlua2VkaW4geyBcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMsXG4gICAgJjphY3RpdmUsXG4gICAgLnNvY2lhbC1idXR0b25zLWxpc3QtLXByb2R1Y3QgJiB7XG4gICAgICAgIC5zb2NpYWwtYnV0dG9uX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNvY2lhbC1jb2xvci1saW5rZWRpbjtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNvY2lhbC1jb2xvci1saW5rZWRpbjtcbiAgICAgICAgfVxuICAgIH1cbn1cbi5zb2NpYWwtYnV0dG9uLS1tYWlsIHsgXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlLFxuICAgIC5zb2NpYWwtYnV0dG9ucy1saXN0LS1wcm9kdWN0ICYge1xuICAgICAgICAuc29jaWFsLWJ1dHRvbl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzb2NpYWwtY29sb3ItbWFpbDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNvY2lhbC1jb2xvci1tYWlsO1xuICAgICAgICB9XG4gICAgfVxufVxuLnNvY2lhbC1idXR0b24tLXBpbnRlcmVzdCB7IFxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSxcbiAgICAuc29jaWFsLWJ1dHRvbnMtbGlzdC0tcHJvZHVjdCAmIHtcbiAgICAgICAgLnNvY2lhbC1idXR0b25fX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc29jaWFsLWNvbG9yLXBpbnRlcmVzdDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNvY2lhbC1jb2xvci1waW50ZXJlc3Q7XG4gICAgICAgIH1cbiAgICB9XG59XG4uc29jaWFsLWJ1dHRvbi0tdHdpdHRlciB7IFxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSxcbiAgICAuc29jaWFsLWJ1dHRvbnMtbGlzdC0tcHJvZHVjdCAmIHtcbiAgICAgICAgLnNvY2lhbC1idXR0b25fX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc29jaWFsLWNvbG9yLXR3aXR0ZXI7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzb2NpYWwtY29sb3ItdHdpdHRlcjtcbiAgICAgICAgfVxuICAgIH1cbn1cbi5zb2NpYWwtYnV0dG9uLS12aW1lbyB7IFxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSxcbiAgICAuc29jaWFsLWJ1dHRvbnMtbGlzdC0tcHJvZHVjdCAmIHtcbiAgICAgICAgLnNvY2lhbC1idXR0b25fX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc29jaWFsLWNvbG9yLXZpbWVvO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc29jaWFsLWNvbG9yLXZpbWVvO1xuICAgICAgICB9XG4gICAgfVxufVxuLnNvY2lhbC1idXR0b24tLXlvdXR1YmUgeyBcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMsXG4gICAgJjphY3RpdmUsXG4gICAgLnNvY2lhbC1idXR0b25zLWxpc3QtLXByb2R1Y3QgJiB7XG4gICAgICAgIC5zb2NpYWwtYnV0dG9uX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNvY2lhbC1jb2xvci15b3V0dWJlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc29jaWFsLWNvbG9yLXlvdXR1YmU7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIjc3BsaXRtZW51IHtcblx0bGkge1xuXHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuXG5cdFx0Ji5sZXZlbC0xIHtcblx0XHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoMTMpO1xuXG5cdFx0XHRsaSB7XG5cdFx0XHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG4uc2lkZWJhciAubmF2LXNpZGUge1xuXHRwYWRkaW5nOiAwO1xufVxuXG4uc2lkZWJhciAubmF2LXNpZGUuYmxvY2tfX2JveF9fY29udGVudCB7XG5cdGJvcmRlci1ib3R0b206IG5vbmU7XG59XG5cbi8vIEhpZGUgZGVmYXVsdCBwbHVzL2NoZXZyb25cbi5ibG9ja19fYm94IGxpIGE6YmVmb3JlLFxuLmJsb2NrX19ib3ggbGkucGFyZW50ID4gYTpiZWZvcmUge1xuXHRkaXNwbGF5OiBub25lO1xufVxuXG4vLyBSZW1vdmUgbGVmdCBwYWRkaW5nXG4uYmxvY2tfX2JveCB1bCB1bCBsaSB7XG5cdHBhZGRpbmctbGVmdDogMDtcbn1cblxuLm5hdi1zaWRlIHtcblxuXHQuc2lkZWJhciAmIGEge1xuXHRcdHBhZGRpbmc6IDAgMnJlbSAwICRzaWRlYmFyLXNpZGUtcGFkZGluZztcblx0XHRsaW5lLWhlaWdodDogJG5vbmUtdG91Y2gtZnJpZW5kbHktc2l6ZTtcblx0XHRjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoaWYobHVtYSgkY29udGVudC1iZykgPCA1MCwgJGxpZ2h0LWJvZHktdGV4dCwgJGRhcmstYm9keS10ZXh0KSwgJGNvbnRlbnQtYmcpO1xuXHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc3BsaXRtZW51LWJvcmRlci1jb2xvcjtcblx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cblx0XHQudG91Y2ggJiB7XG5cdFx0XHRsaW5lLWhlaWdodDogJHRvdWNoLWZyaWVuZGx5LXNpemU7XG5cdFx0fVxuXG5cdFx0Jjpob3ZlciB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkc3BsaXRtZW51LXN1Ym1lbnUtYmFja2dyb3VuZDtcblx0XHR9XG5cdH1cblxuXHQvLyBTaG93IHN1Ym1lbnVcblx0LnBhcmVudCB7XG5cblx0XHQmID4gYSB7XG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0fVxuXG5cdFx0Ji5jdXJyZW50LFxuXHRcdCYuc2VsZWN0ZWQge1xuXHRcdFx0JiA+IHVsIHtcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRzcGxpdG1lbnUtc3VibWVudS1iYWNrZ3JvdW5kO1xuXG5cdFx0XHRcdGE6aG92ZXIge1xuXHRcdFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRzcGxpdG1lbnUtc3VibWVudS1iYWNrZ3JvdW5kLWhvdmVyO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdCYgPiBhOmFmdGVyIHtcblx0XHRcdFx0QGluY2x1ZGUgdHJhbnNmb3JtKHJvdGF0ZXgoMTgwZGVnKSk7XG5cdFx0XHR9XG5cblx0XHRcdCYgPiBhLnRvZ2dsZWQ6YWZ0ZXIge1xuXHRcdFx0XHRAaW5jbHVkZSB0cmFuc2Zvcm0ocm90YXRleCgwZGVnKSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0dWwubGV2ZWwtMS50b2dnbGVkIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkc3BsaXRtZW51LXN1Ym1lbnUtYmFja2dyb3VuZDtcblx0XHRcblx0XHQubWFpbi1uYXZfX3RvZ2dsZSB7XG5cdCAgICAgICAgQGluY2x1ZGUgbWFpbi1uYXZfX3RvZ2dsZS0tY29sb3JzKCRjb2xvcjogJHByaW1hcnktY29sb3IsICRiYWNrZHJvcDogJHNwbGl0bWVudS1zdWJtZW51LWJhY2tncm91bmQsICRob3Zlci1iZzogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJHNwbGl0bWVudS1zdWJtZW51LWJhY2tncm91bmQsICRzcGxpdG1lbnUtc3VibWVudS1iYWNrZ3JvdW5kLCAxLjEpKTtcblx0ICAgIH1cblx0fVxuXG5cdC5jdXJyZW50ID4gYSB7XG5cdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdH1cblxuXHRAZm9yICRpIGZyb20gMSB0aHJvdWdoIDQge1xuXHRcdC5sZXZlbC0jeyRpfSBhIHtcblx0XHRcdHBhZGRpbmctbGVmdDogJHNpZGViYXItc2lkZS1wYWRkaW5nICogKDEgKyAkaSk7XG5cdFx0fVxuXHR9XG59XG4iLCIkdXRpbHMtbmF2LWhlaWdodDogcmVtLWNhbGMoMzApICFkZWZhdWx0O1xuJHV0aWxzLW5hdi1pY29uLXNpemU6IHJlbS1jYWxjKDIwKSAhZGVmYXVsdDtcblxuI2xvZ28tcm93IHtcbiAgICBib3JkZXItdG9wOiBub25lO1xufVxuXG4jbG9nbyB7XG4gICAgcGFkZGluZy10b3A6IC41cmVtO1xuXG4gICAgaDEge1xuICAgICAgICBmb250LXNpemU6IDJyZW07XG4gICAgfVxufVxuXG4udXRpbHMtbmF2IHtcbiAgICBwYWRkaW5nOiAwIDAgMXJlbSAwO1xuICAgIFtjbGFzc149XCJpY29uLVwiXTpiZWZvcmUsXG4gICAgW2NsYXNzKj1cIiBpY29uLVwiXTpiZWZvcmUge1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDIwKTtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IC0xMCU7XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkdXRpbHMtbmF2LWhlaWdodDtcbiAgICB9XG5cbiAgICAuaWNvbi1sYW5ndWFnZSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogLjJyZW07XG4gICAgfVxufVxuXG4uY3VycmVuY3ktbmFtZSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4udXRpbHMtbmF2X19pdGVtIHtcbiAgICBwYWRkaW5nLXRvcDogLjc1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAkdXRpbHMtbmF2LWhlaWdodDtcbiAgICBoZWlnaHQ6ICR1dGlscy1uYXYtaGVpZ2h0O1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgbWFyZ2luLXJpZ2h0OiAuNXJlbTtcbiAgICBib3JkZXItdG9wOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgfVxuXG4gICAgJi5zZWxlY3RlZCB7XG4gICAgICAgIGJvcmRlci10b3A6IDJweCBzb2xpZCAkY2FsbC10by1hY3Rpb24tY29sb3I7XG4gICAgfVxufVxuXG4uc2V0dGluZ19fYnV0dG9uIHtcbiAgICBzcGFuIHtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkdXRpbHMtbmF2LWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbi5jYXJ0LWJ1dHRvbl9fcXVhbnRpdHkge1xuICAgIEBpbmNsdWRlIHJhZGl1cygkY2FydC1xdWFudGl0eS1iYWRnZS1yYWRpdXMpO1xuICAgIHdpZHRoOiAkY2FydC1xdWFudGl0eS1iYWRnZS1zaXplO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogI3soJHV0aWxzLW5hdi1oZWlnaHQgLSAkY2FydC1xdWFudGl0eS1iYWRnZS1zaXplKS8yfSAwO1xuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTEpO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAxLjNyZW07XG59XG5cbi5jYXJ0LWJ1dHRvbixcbi5pY29uLXNob3BwaW5nLWNhcnQge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLnV0aWxzLW5hdiB7XG4gICAgLmljb24tc2hvcHBpbmctY2FydCB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogI3skY2FydC1xdWFudGl0eS1iYWRnZS1zaXplfTtcbiAgICB9XG5cbiAgICAmIC5jYXJ0LWJ1dHRvbi0tZW1wdHkgLmljb24tc2hvcHBpbmctY2FydCB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICB9XG59XG5cbi5oZWFkZXJfX3NlYXJjaF9fd3JhcHBlciB7XG4gICAgZm9ybSB7XG4gICAgICAgIG1heC13aWR0aDogMzc4cHg7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgIH1cblxuICAgIGlucHV0LCBidXR0b24ge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cblxuICAgIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi51dGlsaXRpZXMsXG4ubG9nby1pbWcge1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG59XG5cbiNsYW5ndWFnZS1jbG9zZTp0YXJnZXQgfiAjbGFuZ3VhZ2UsICNjdXJyZW5jeS1jbG9zZTp0YXJnZXQgfiAjY3VycmVuY3kge1xuICAgIHotaW5kZXg6IDIwMTtcbn1cblxuQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgIC51dGlscy1uYXZfX2l0ZW0ge1xuICAgICAgICBwYWRkaW5nLXRvcDogMS4ycmVtO1xuICAgIH1cblxuICAgIC5zZXR0aW5nX19idXR0b24ge1xuICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQG1lZGlhICN7JGxhcmdlLXVwfSB7XG4gICAgI2xvZ28ge1xuICAgICAgICBoMSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDIuNXJlbTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBcbiAgICAudXRpbHMtbmF2IHtcbiAgICAgICAgLmljb24tc2hvcHBpbmctY2FydCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICN7JGNhcnQtcXVhbnRpdHktYmFkZ2Utc2l6ZSArIDFyZW19O1xuICAgICAgICB9XG5cbiAgICAgICAgJiAuY2FydC1idXR0b24tLWVtcHR5IC5pY29uLXNob3BwaW5nLWNhcnQge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnV0aWxzLW5hdl9faXRlbSB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgIH1cblxuICAgIC5jYXJ0LWFuZC1jaGVja291dCAuY2hlY2tvdXQtYnV0dG9uIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7XG4gICAgICAgIHBhZGRpbmc6IDAgLjVyZW0gMCAxcmVtO1xuICAgICAgICBoZWlnaHQ6ICR1dGlscy1uYXYtaGVpZ2h0O1xuICAgICAgICBsaW5lLWhlaWdodDogJHV0aWxzLW5hdi1oZWlnaHQ7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTMpO1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuXG4gICAgLmNhcnQtYW5kLWNoZWNrb3V0IC5jYXJ0LWJ1dHRvbi0tZW1wdHkgKyAuY2hlY2tvdXQtYnV0dG9uIHtcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbn1cbiIsIlxuLm5hdmlnYXRpb24tYmcge1xuXHQuYWJvdXQtbWVudSB7XG5cdFx0dGV4dC1hbGlnbjogbGVmdDtcblx0XHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG5cdFx0Lm5hdl9faXRlbSB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDFweDtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuXG4gICAgICAgICAgICAmOm5vdCg6aG92ZXIpIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpZihsdW1hKCRuYXZpZ2F0aW9uLWJnKSA8IDUwLCBsaWdodGVuKCRuYXZpZ2F0aW9uLWJnLCAxNSUpLCBkYXJrZW4oJG5hdmlnYXRpb24tYmcsIDE1JSkpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYgJGdsb2JhbC1yYWRpdXMgPiAwIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBib3JkZXItdG9wLXJhZGl1cygkZ2xvYmFsLXJhZGl1cyk7XG4gICAgICAgICAgICB9XG5cblx0XHRcdCYuY3VycmVudCwgXG5cdFx0XHQmOmhvdmVyLFxuXHRcdCAgICAmOmZvY3VzIHtcblx0XHQgICAgXHRhIHtcblx0XHRcdCAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJyZWFkY3J1bWJzLWJnO1xuXHRcdFx0ICAgICAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoaWYobHVtYSgkYnJlYWRjcnVtYnMtYmcpIDwgNTAsICRsaWdodC1ib2R5LXRleHQsICRkYXJrLWJvZHktdGV4dCksICRicmVhZGNydW1icy1iZyk7XG5cdFx0XHQgICAgfVxuXHRcdCAgICB9XG5cblx0XHQgICAgLmxvZ2luX2J0bi5pcy1oaWRkZW4ge1xuXHRcdCAgICBcdGRpc3BsYXk6IG5vbmU7XG5cdFx0ICAgIH1cblx0XHR9XG5cblx0ICAgIC5mcm9udHBhZ2UgJiB7XG5cdCAgICBcdC5uYXZfX2l0ZW0ge1xuXHRcdFx0XHQmLmN1cnJlbnQsIFxuXHRcdFx0XHQmOmhvdmVyLFxuXHRcdFx0ICAgICY6Zm9jdXMge1xuXHRcdFx0ICAgIFx0YSB7XG5cdFx0XHRcdCAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJvZHktYmc7XG5cdFx0XHRcdCAgICAgICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKGlmKGx1bWEoJGJvZHktYmcpIDwgNTAsICRsaWdodC1ib2R5LXRleHQsICRkYXJrLWJvZHktdGV4dCksICRib2R5LWJnKTtcblx0XHRcdFx0ICAgIH1cblx0XHRcdCAgICB9XG5cdFx0XHR9XG5cdCAgICB9XG5cblxuXHQgICAgJjpsYXN0LWNoaWxkIHtcblx0ICAgICAgICBib3JkZXItYm90dG9tOiBub25lICFpbXBvcnRhbnQ7XG5cdCAgICB9XG5cdH1cbn0iLCIvLyBDYW4ndCBoYXZlIHNsaWRlciBuYXYgb3ZlcmxhcCBsZWZ0IGhhbmQgbWVudVxuXG5AbWVkaWEgI3skeGxhcmdlLXVwfSB7XG4gICAgLmJ4LXByZXYge1xuICAgICAgICBsZWZ0OiAwO1xuICAgIH1cblxuICAgIC5ieC1uZXh0IHtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgfSAgIFxufSIsIi8vIEhpZGUgdGhlIHRvcCBuYXZpZ2F0aW9uIHNpbmNlIHdlJ3JlIHVzaW5nIGEgc2lkZWJhciBuYXZpZ2F0aW9uIGhlcmVcbkBtZWRpYSAjeyRsYXJnZS11cH0ge1xuXHQubmF2LW9mZmNhbnZhcyB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxufSIsIi5zaWRlYmFyLS1mcm9udHBhZ2Uge1xuXHRwYWRkaW5nLXRvcDogMDtcbn0iXSwibWFwcGluZ3MiOiI7QUlBQTs7R0FFRztBYW9D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M0Y7RUFMRCxhQUFhLENBQWI7SUFwREEsUUFBUSxFQUFFLFFBQVM7SUF5QlQsSUFBaUIsRUFwR3JCLEdBQVU7SUFvRytDLEtBQXNCLEVBQUUsSUFBSyxHQTZCM0Y7RUFDRCxhQUFhLENBQWI7SUF2REEsUUFBUSxFQUFFLFFBQVM7SUEwQlQsS0FBc0IsRUFyRzFCLEdBQVU7SUFxR29ELElBQWlCLEVBQUUsSUFBSyxHQStCM0Y7RUFMRCxhQUFhLENBQWI7SUFwREEsUUFBUSxFQUFFLFFBQVM7SUF5QlQsSUFBaUIsRUFwR3JCLFNBQVU7SUFvRytDLEtBQXNCLEVBQUUsSUFBSyxHQTZCM0Y7RUFDRCxhQUFhLENBQWI7SUF2REEsUUFBUSxFQUFFLFFBQVM7SUEwQlQsS0FBc0IsRUFyRzFCLFNBQVU7SUFxR29ELElBQWlCLEVBQUUsSUFBSyxHQStCM0Y7RUFMRCxhQUFhLENBQWI7SUFwREEsUUFBUSxFQUFFLFFBQVM7SUF5QlQsSUFBaUIsRUFwR3JCLFNBQVU7SUFvRytDLEtBQXNCLEVBQUUsSUFBSyxHQTZCM0Y7RUFDRCxhQUFhLENBQWI7SUF2REEsUUFBUSxFQUFFLFFBQVM7SUEwQlQsS0FBc0IsRUFyRzFCLFNBQVU7SUFxR29ELElBQWlCLEVBQUUsSUFBSyxHQStCM0Y7RUFMRCxhQUFhLENBQWI7SUFwREEsUUFBUSxFQUFFLFFBQVM7SUF5QlQsSUFBaUIsRUFwR3JCLEdBQVU7SUFvRytDLEtBQXNCLEVBQUUsSUFBSyxHQTZCM0Y7RUFDRCxhQUFhLENBQWI7SUF2REEsUUFBUSxFQUFFLFFBQVM7SUEwQlQsS0FBc0IsRUFyRzFCLEdBQVU7SUFxR29ELElBQWlCLEVBQUUsSUFBSyxHQStCM0Y7RUFMRCxhQUFhLENBQWI7SUFwREEsUUFBUSxFQUFFLFFBQVM7SUF5QlQsSUFBaUIsRUFwR3JCLFNBQVU7SUFvRytDLEtBQXNCLEVBQUUsSUFBSyxHQTZCM0Y7RUFDRCxhQUFhLENBQWI7SUF2REEsUUFBUSxFQUFFLFFBQVM7SUEwQlQsS0FBc0IsRUFyRzFCLFNBQVU7SUFxR29ELElBQWlCLEVBQUUsSUFBSyxHQStCM0Y7RUFMRCxhQUFhLENBQWI7SUFwREEsUUFBUSxFQUFFLFFBQVM7SUF5QlQsSUFBaUIsRUFwR3JCLFNBQVU7SUFvRytDLEtBQXNCLEVBQUUsSUFBSyxHQTZCM0Y7RUFDRCxhQUFhLENBQWI7SUF2REEsUUFBUSxFQUFFLFFBQVM7SUEwQlQsS0FBc0IsRUFyRzFCLFNBQVU7SUFxR29ELElBQWlCLEVBQUUsSUFBSyxHQStCM0Y7RUFMRCxhQUFhLENBQWI7SUFwREEsUUFBUSxFQUFFLFFBQVM7SUF5QlQsSUFBaUIsRUFwR3JCLEdBQVU7SUFvRytDLEtBQXNCLEVBQUUsSUFBSyxHQTZCM0Y7RUFDRCxhQUFhLENBQWI7SUF2REEsUUFBUSxFQUFFLFFBQVM7SUEwQlQsS0FBc0IsRUFyRzFCLEdBQVU7SUFxR29ELElBQWlCLEVBQUUsSUFBSyxHQStCM0Y7RUFMRCxjQUFjLENBQWQ7SUFwREEsUUFBUSxFQUFFLFFBQVM7SUF5QlQsSUFBaUIsRUFwR3JCLFNBQVU7SUFvRytDLEtBQXNCLEVBQUUsSUFBSyxHQTZCM0Y7RUFDRCxjQUFjLENBQWQ7SUF2REEsUUFBUSxFQUFFLFFBQVM7SUEwQlQsS0FBc0IsRUFyRzFCLFNBQVU7SUFxR29ELElBQWlCLEVBQUUsSUFBSyxHQStCM0Y7RUFMRCxjQUFjLENBQWQ7SUFwREEsUUFBUSxFQUFFLFFBQVM7SUF5QlQsSUFBaUIsRUFwR3JCLFNBQVU7SUFvRytDLEtBQXNCLEVBQUUsSUFBSyxHQTZCM0Y7RUFDRCxjQUFjLENBQWQ7SUF2REEsUUFBUSxFQUFFLFFBQVM7SUEwQlQsS0FBc0IsRUFyRzFCLFNBQVU7SUFxR29ELElBQWlCLEVBQUUsSUFBSyxHQStCM0Y7RUFHSCxPQUFPO0VBQ1AsUUFBUSxDQUFDO0lBN0RQLFFBQVEsRUFBRSxRQUFTO0lBWW5CLFlBQVksRUFBRyxTQUFjO0lBQzdCLGFBQWEsRUFBRyxTQUFjO0lBZ0JTLEtBQUssRU4ySTlCLElBQUksR00zRytDO0VBSWpFLFFBQVEsQ0FBUjtJQS9DQSxLQUFLLEVBN0ZDLFFBQVUsR0E0SW1EO0VBQW5FLFFBQVEsQ0FBUjtJQS9DQSxLQUFLLEVBN0ZDLFNBQVUsR0E0SW1EO0VBQW5FLFFBQVEsQ0FBUjtJQS9DQSxLQUFLLEVBN0ZDLEdBQVUsR0E0SW1EO0VBQW5FLFFBQVEsQ0FBUjtJQS9DQSxLQUFLLEVBN0ZDLFNBQVUsR0E0SW1EO0VBQW5FLFFBQVEsQ0FBUjtJQS9DQSxLQUFLLEVBN0ZDLFNBQVUsR0E0SW1EO0VBQW5FLFFBQVEsQ0FBUjtJQS9DQSxLQUFLLEVBN0ZDLEdBQVUsR0E0SW1EO0VBQW5FLFFBQVEsQ0FBUjtJQS9DQSxLQUFLLEVBN0ZDLFNBQVUsR0E0SW1EO0VBQW5FLFFBQVEsQ0FBUjtJQS9DQSxLQUFLLEVBN0ZDLFNBQVUsR0E0SW1EO0VBQW5FLFFBQVEsQ0FBUjtJQS9DQSxLQUFLLEVBN0ZDLEdBQVUsR0E0SW1EO0VBQW5FLFNBQVMsQ0FBVDtJQS9DQSxLQUFLLEVBN0ZDLFNBQVUsR0E0SW1EO0VBQW5FLFNBQVMsQ0FBVDtJQS9DQSxLQUFLLEVBN0ZDLFNBQVUsR0E0SW1EO0VBQW5FLFNBQVMsQ0FBVDtJQS9DQSxLQUFLLEVBN0ZDLElBQVUsR0E0SW1EO0VBSW5FLGVBQWUsQ0FBZjtJQTNCWSxXQUF3QixFQXJIOUIsRUFBVSxDQXFIZ0UsVUFBVSxHQTJCdkI7RUFBbkUsZUFBZSxDQUFmO0lBM0JZLFdBQXdCLEVBckg5QixRQUFVLENBcUhnRSxVQUFVLEdBMkJ2QjtFQUFuRSxlQUFlLENBQWY7SUEzQlksV0FBd0IsRUFySDlCLFNBQVUsQ0FxSGdFLFVBQVUsR0EyQnZCO0VBQW5FLGVBQWUsQ0FBZjtJQTNCWSxXQUF3QixFQXJIOUIsR0FBVSxDQXFIZ0UsVUFBVSxHQTJCdkI7RUFBbkUsZUFBZSxDQUFmO0lBM0JZLFdBQXdCLEVBckg5QixTQUFVLENBcUhnRSxVQUFVLEdBMkJ2QjtFQUFuRSxlQUFlLENBQWY7SUEzQlksV0FBd0IsRUFySDlCLFNBQVUsQ0FxSGdFLFVBQVUsR0EyQnZCO0VBQW5FLGVBQWUsQ0FBZjtJQTNCWSxXQUF3QixFQXJIOUIsR0FBVSxDQXFIZ0UsVUFBVSxHQTJCdkI7RUFBbkUsZUFBZSxDQUFmO0lBM0JZLFdBQXdCLEVBckg5QixTQUFVLENBcUhnRSxVQUFVLEdBMkJ2QjtFQUFuRSxlQUFlLENBQWY7SUEzQlksV0FBd0IsRUFySDlCLFNBQVUsQ0FxSGdFLFVBQVUsR0EyQnZCO0VBQW5FLGVBQWUsQ0FBZjtJQTNCWSxXQUF3QixFQXJIOUIsR0FBVSxDQXFIZ0UsVUFBVSxHQTJCdkI7RUFBbkUsZ0JBQWdCLENBQWhCO0lBM0JZLFdBQXdCLEVBckg5QixTQUFVLENBcUhnRSxVQUFVLEdBMkJ2QjtFQUFuRSxnQkFBZ0IsQ0FBaEI7SUEzQlksV0FBd0IsRUFySDlCLFNBQVUsQ0FxSGdFLFVBQVUsR0EyQnZCO0VBR3JFLGtCQUFrQixDQUFsQjtJQUNFLFdBQXdCLEVBQVMsQ0FBRTtJQUNuQyxZQUE2QixFQUFTLENBQUU7SUFDeEMsSUFBSSxFQUFFLElBQUs7SUFDWCxLQUFLLEVBQUUsSUFBSztJQUNaLEtBQUssRU4yRlMsSUFBSSxHTTFGbkI7RUFFRCxPQUFPLEFBQUEsZUFBZTtFQUN0QixRQUFRLEFBQUEsZUFBZSxDQUR2QjtJQTVDRSxXQUF3QixFQUFTLElBQUs7SUFDdEMsWUFBNkIsRUFBUyxJQUFLO0lBQzNDLEtBQUssRUFBRSxJQUFLLEdBMEN3RDtFQUV0RSxPQUFPLEFBQUEsaUJBQWlCO0VBQ3hCLFFBQVEsQUFBQSxpQkFBaUIsQ0FEekI7SUFDRSxXQUF3QixFQUFTLENBQUU7SUFDbkMsWUFBNkIsRUFBUyxDQUFFO0lBQ3hDLEtBQUssRU5tRlMsSUFBSSxHTWxGbkI7RUFHRCxPQUFPLEFBQUEsZUFBZSxBQUFBLFdBQVc7RUFDakMsUUFBUSxBQUFBLGVBQWUsQUFBQSxXQUFXLENBRGxDO0lBQ0UsS0FBSyxFQUFFLElBQUssR0FDYjtFQUdELE9BQU8sQUFBQSxpQkFBaUIsQUFBQSxXQUFXO0VBQ25DLFFBQVEsQUFBQSxpQkFBaUIsQUFBQSxXQUFXLENBRHBDO0lBQ0UsS0FBSyxFTnlFUyxJQUFJLEdNeEVuQjtFQUVELE9BQU8sQUFBQSxpQkFBaUIsQUFBQSxTQUFTO0VBQ2pDLFFBQVEsQUFBQSxpQkFBaUIsQUFBQSxTQUFTLENBRGxDO0lBQ0UsS0FBSyxFTnNFYyxLQUFLLEdNckV6QjtFQUVGLElBQUksQUFDRixlQUFlLEdBQ2IsT0FBTztFQUZYLElBQUksQUFDRixlQUFlLEdBRWIsUUFBUSxDQUFDO0lBcEdWLFlBQVksRUFBRSxDQUFFO0lBQ2hCLGFBQWEsRUFBRSxDQUFFLEdBbUdpRDtFQUhyRSxJQUFJLEFBQ0YsZUFBZSxDQUlmLElBQUksQ0FBQztJQUFDLFdBQVcsRUFBQyxDQUFFO0lBQUUsWUFBWSxFQUFDLENBQUUsR0FBRztFQUwxQyxJQUFJLEFBT0YsaUJBQWlCLEdBQ2YsT0FBTztFQVJYLElBQUksQUFPRixpQkFBaUIsR0FFZixRQUFRLENBQUM7SUFuR1YsWUFBWSxFQUFHLFNBQWM7SUFDN0IsYUFBYSxFQUFHLFNBQWM7SUFnQlMsS0FBSyxFTjJJOUIsSUFBSSxHTXZEbEI7O0FBZ0NBLE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFDLElBQUk7RUE3Ri9CLGNBQWMsQ0FBZDtJQXBEQSxRQUFRLEVBQUUsUUFBUztJQXlCVCxJQUFpQixFQXBHckIsRUFBVTtJQW9HK0MsS0FBc0IsRUFBRSxJQUFLLEdBNkIzRjtFQUNELGNBQWMsQ0FBZDtJQXZEQSxRQUFRLEVBQUUsUUFBUztJQTBCVCxLQUFzQixFQXJHMUIsRUFBVTtJQXFHb0QsSUFBaUIsRUFBRSxJQUFLLEdBK0IzRjtFQUxELGNBQWMsQ0FBZDtJQXBEQSxRQUFRLEVBQUUsUUFBUztJQXlCVCxJQUFpQixFQXBHckIsUUFBVTtJQW9HK0MsS0FBc0IsRUFBRSxJQUFLLEdBNkIzRjtFQUNELGNBQWMsQ0FBZDtJQXZEQSxRQUFRLEVBQUUsUUFBUztJQTBCVCxLQUFzQixFQXJHMUIsUUFBVTtJQXFHb0QsSUFBaUIsRUFBRSxJQUFLLEdBK0IzRjtFQUxELGNBQWMsQ0FBZDtJQXBEQSxRQUFRLEVBQUUsUUFBUztJQXlCVCxJQUFpQixFQXBHckIsU0FBVTtJQW9HK0MsS0FBc0IsRUFBRSxJQUFLLEdBNkIzRjtFQUNELGNBQWMsQ0FBZDtJQXZEQSxRQUFRLEVBQUUsUUFBUztJQTBCVCxLQUFzQixFQXJHMUIsU0FBVTtJQXFHb0QsSUFBaUIsRUFBRSxJQUFLLEdBK0IzRjtFQUxELGNBQWMsQ0FBZDtJQXBEQSxRQUFRLEVBQUUsUUFBUztJQXlCVCxJQUFpQixFQXBHckIsR0FBVTtJQW9HK0MsS0FBc0IsRUFBRSxJQUFLLEdBNkIzRjtFQUNELGNBQWMsQ0FBZDtJQXZEQSxRQUFRLEVBQUUsUUFBUztJQTBCVCxLQUFzQixFQXJHMUIsR0FBVTtJQXFHb0QsSUFBaUIsRUFBRSxJQUFLLEdBK0IzRjtFQUxELGNBQWMsQ0FBZDtJQXBEQSxRQUFRLEVBQUUsUUFBUztJQXlCVCxJQUFpQixFQXBHckIsU0FBVTtJQW9HK0MsS0FBc0IsRUFBRSxJQUFLLEdBNkIzRjtFQUNELGNBQWMsQ0FBZDtJQXZEQSxRQUFRLEVBQUUsUUFBUztJQTBCVCxLQUFzQixFQXJHMUIsU0FBVTtJQXFHb0QsSUFBaUIsRUFBRSxJQUFLLEdBK0IzRjtFQUxELGNBQWMsQ0FBZDtJQXBEQSxRQUFRLEVBQUUsUUFBUztJQXlCVCxJQUFpQixFQXBHckIsU0FBVTtJQW9HK0MsS0FBc0IsRUFBRSxJQUFLLEdBNkIzRjtFQUNELGNBQWMsQ0FBZDtJQXZEQSxRQUFRLEVBQUUsUUFBUztJQTBCVCxLQUFzQixFQXJHMUIsU0FBVTtJQXFHb0QsSUFBaUIsRUFBRSxJQUFLLEdBK0IzRjtFQUxELGNBQWMsQ0FBZDtJQXBEQSxRQUFRLEVBQUUsUUFBUztJQXlCVCxJQUFpQixFQXBHckIsR0FBVTtJQW9HK0MsS0FBc0IsRUFBRSxJQUFLLEdBNkIzRjtFQUNELGNBQWMsQ0FBZDtJQXZEQSxRQUFRLEVBQUUsUUFBUztJQTBCVCxLQUFzQixFQXJHMUIsR0FBVTtJQXFHb0QsSUFBaUIsRUFBRSxJQUFLLEdBK0IzRjtFQUxELGNBQWMsQ0FBZDtJQXBEQSxRQUFRLEVBQUUsUUFBUztJQXlCVCxJQUFpQixFQXBHckIsU0FBVTtJQW9HK0MsS0FBc0IsRUFBRSxJQUFLLEdBNkIzRjtFQUNELGNBQWMs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LElBQWlCLEVBQUUsSUFBSyxHQStCM0Y7RUFMRCxhQUFhLENBQWI7SUFwREEsUUFBUSxFQUFFLFFBQVM7SUF5QlQsSUFBaUIsRUFwR3JCLFNBQVU7SUFvRytDLEtBQXNCLEVBQUUsSUFBSyxHQTZCM0Y7RUFDRCxhQUFhLENBQWI7SUF2REEsUUFBUSxFQUFFLFFBQVM7SUEwQlQsS0FBc0IsRUFyRzFCLFNBQVU7SUFxR29ELElBQWlCLEVBQUUsSUFBSyxHQStCM0Y7RUFMRCxhQUFhLENBQWI7SUFwREEsUUFBUSxFQUFFLFFBQVM7SUF5QlQsSUFBaUIsRUFwR3JCLEdBQVU7SUFvRytDLEtBQXNCLEVBQUUsSUFBSyxHQTZCM0Y7RUFDRCxhQUFhLENBQWI7SUF2REEsUUFBUSxFQUFFLFFBQVM7SUEwQlQsS0FBc0IsRUFyRzFCLEdBQVU7SUFxR29ELElBQWlCLEVBQUUsSUFBSyxHQStCM0Y7RUFMRCxhQUFhLENBQWI7SUFwREEsUUFBUSxFQUFFLFFBQVM7SUF5QlQsSUFBaUIsRUFwR3JCLFNBQVU7SUFvRytDLEtBQXNCLEVBQUUsSUFBSyxHQTZCM0Y7RUFDRCxhQUFhLENBQWI7SUF2REEsUUFBUSxFQUFFLFFBQVM7SUEwQlQsS0FBc0IsRUFyRzFCLFNBQVU7SUFxR29ELElBQWlCLEVBQUUsSUFBSyxHQStCM0Y7RUFMRCxhQUFhLENBQWI7SUFwREEsUUFBUSxFQUFFLFFBQVM7SUF5QlQsSUFBaUIsRUFwR3JCLFNBQVU7SUFvRytDLEtBQXNCLEVBQUUsSUFBSyxHQTZCM0Y7RUFDRCxhQUFhLENBQWI7SUF2REEsUUFBUSxFQUFFLFFBQVM7SUEwQlQsS0FBc0IsRUFyRzFCLFNBQVU7SUFxR29ELElBQWlCLEVBQUUsSUFBSyxHQStCM0Y7RUFMRCxhQUFhLENBQWI7SUFwREEsUUFBUSxFQUFFLFFBQVM7SUF5QlQsSUFBaUIsRUFwR3JCLEdBQVU7SUFvRytDLEtBQXNCLEVBQUUsSUFBSyxHQTZCM0Y7RUFDRCxhQUFhLENBQWI7SUF2REEsUUFBUSxFQUFFLFFBQVM7SUEwQlQsS0FBc0IsRUFyRzFCLEdBQVU7SUFxR29E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 */
