@charset "UTF-8";
/*

  WHAT IS THIS?
  "sofi-global" is a shared style library for use with SoFi's external-facing apps. *

  IMPORTANT
  Do not edit sofi-global files within individual app repos!

  OVER-RIDING SOFI-GLOBAL STYLES:
  Add styles within stylesheets/app/

  ADDING APP-SPECIFIC STYLES:
  Add styles within stylesheets/app/

  * If you need a change or improvement to sofi-global styles (instead of adding override styles) or want to add a new pattern for global re-use open a ticket for updating the sofi-global style library. Once the library has been updated, import the latest version into your app.

*/
/*

  WHAT IS THIS?
  "sofi-global" is a shared style library for use with SoFi's external-facing apps. *

  IMPORTANT
  Do not edit sofi-global files within individual app repos!

  OVER-RIDING SOFI-GLOBAL STYLES:
  Add styles within stylesheets/app/

  ADDING APP-SPECIFIC STYLES:
  Add styles within stylesheets/app/

  * If you need a change or improvement to sofi-global styles (instead of adding override styles) or want to add a new pattern for global re-use open a ticket for updating the sofi-global style library. Once the library has been updated, import the latest version into your app.

*/
/*
  * Borders
  * Break Points
  * Colors
  * Dimensions
  * Fonts
*/
/*doc
---
title: Font Colors
parent: typography
name: subFontColors
---

See under [Colors][generalColors].
*/
/*doc
---
title: Colors
name: generalColors
category: Base
---

## Sofi Brand Colors

###Primary

<span class="hg-swatch sofi-blue">SoFi Blue</span>
<span class="hg-swatch sofi-accesibility-blue">SoFi Accesibility Blue</span>

### Accent

<span class="hg-swatch yellow-green-360C">Yellow Green</span>
<span class="hg-swatch accent-dark-blue">Accent Dark Blue</span>

<hr>

## Cool Greys

These are generally used as background colors.

<div>
  <figure class="u-display-inline-block u-vertical-align-top">
    <span class="hg-swatch grey-med-dk">Grey, Medium Dark</span>
    <figcaption class="small u-intrinsic-min-content-width">old 2ndary buttons</figcaption>
  </figure>
  <figure class="u-display-inline-block u-vertical-align-top">
    <span class="hg-swatch grey-med">Grey, Medium</span>
    <figcaption class="small u-intrinsic-min-content-width">not used</figcaption>
  </figure>
  <figure class="u-display-inline-block u-vertical-align-top">
    <span class="hg-swatch grey-med-light">Grey, Medium Light</span>
    <figcaption class="small u-intrinsic-min-content-width">page footer section</figcaption>
  </figure>
  <figure class="u-display-inline-block u-vertical-align-top">
    <span class="hg-swatch grey-light">Grey, Light</span>
    <figcaption class="small u-intrinsic-min-content-width">content backgrounds</figcaption>
  </figure>
</div>

## Border Colors
<span class="hg-swatch grey-border-color">Grey Border</span>

## Font Colors

<span class="hg-swatch default-text-color">Default Text Color</span>
<span class="hg-swatch subtle-text-color">Subtle Text Color</span>

<p>This text is in the <strong>default text color</strong>.</p>
<p class="subtle-text-color-text">This text is in the <strong>subtle text color</strong>.</p>
*/
.grey-med-dk {
  background: #6d6e70; }

.grey-med {
  background: #939597; }

.grey-med-light {
  background: #e6e7e8; }

.grey-light {
  background: #f5f5f6; }

.grey-border-color {
  background: #fff;
  border: 1px solid #D1D2D4; }

.sofi-blue {
  background: #29C4F3; }

.accent-dark-blue {
  background: #0D3A54; }

.yellow-green-360C {
  background: #9CCb3b; }

.green-text-color {
  background: #769C2A; }

.green-text-color-text {
  color: #769C2A; }

.default-text-color {
  background: #3d3d3d; }

.subtle-text-color {
  background: #8A8B8A; }

.default-text-color-text {
  color: #3d3d3d; }

.subtle-text-color-text {
  color: #8A8B8A; }

.sofi-accesibility-blue {
  background: #117DB0; }

/*doc
---
title: Break Points
name: breakPoints
category: Base
---

Break points have been standardized based on common device type widths for simplicity of usage.

Responsive styles can be applied to various screen widths individually or in combination. (for example you could apply certain styles only to "mobile" and different styles to "tablet and above" screen widths.)

<p class="small"><strong>NOTE:</strong> Design mocks should be created at the most representative screen size for the type of device being depicted. For example a design for a "mobile" screen should be 320px wide to represent iPhone5 which is the smallest device we support.</p>

##Simple

* **mobile** = 0 - 759px width
* **tablet** = 760px - 959px width
* **desktop** = 960px - 1279px width
* **wide** = 1280px and above widths

##Compound

* **mobile-and-tablet**
* **tablet-and-desktop**

##Minimums

* **tablet-and-above**
* **desktop-and-above**

*/
@font-face {
  font-family: "sofi-icons";
  src: url("./libraries/sofi-global/assets/fonts/sofi-icons/sofi-icons.eot");
  src: url("./libraries/sofi-global/assets/fonts/sofi-icons/sofi-icons.eot#iefix") format("embedded-opentype"), url("./libraries/sofi-global/assets/fonts/sofi-icons/sofi-icons.woff2") format("woff2"), url("./libraries/sofi-global/assets/fonts/sofi-icons/sofi-icons.woff") format("woff"), url("./libraries/sofi-global/assets/fonts/sofi-icons/sofi-icons.ttf") format("truetype"), url("./libraries/sofi-global/assets/fonts/sofi-icons/sofi-icons.svg#sofi-icons") format("svg");
  font-weight: normal;
  font-style: normal; }

@font-face {
  font-family: "Adelle Sans";
  src: url("./libraries/sofi-global/assets/fonts/adelle-sans/light/AdelleSans-Light.eot");
  src: url("./libraries/sofi-global/assets/fonts/adelle-sans/light/AdelleSans-Light.eot?#iefix") format("embedded-opentype"), url("./libraries/sofi-global/assets/fonts/adelle-sans/light/AdelleSans-Light.woff2") format("woff2"), url("./libraries/sofi-global/assets/fonts/adelle-sans/light/AdelleSans-Light.woff") format("woff"), url("./libraries/sofi-global/assets/fonts/adelle-sans/light/AdelleSans-Light.ttf") format("truetype"), url("./libraries/sofi-global/assets/fonts/adelle-sans/light/AdelleSans-Light.svg#AdelleSansLt") format("svg");
  font-weight: 300;
  font-style: normal; }

@font-face {
  font-family: "Adelle Sans";
  src: url("./libraries/sofi-global/assets/fonts/adelle-sans/regular/AdelleSans-Regular.eot");
  src: url("./libraries/sofi-global/assets/fonts/adelle-sans/regular/AdelleSans-Regular.eot?#iefix") format("embedded-opentype"), url("./libraries/sofi-global/assets/fonts/adelle-sans/regular/AdelleSans-Regular.woff2") format("woff2"), url("./libraries/sofi-global/assets/fonts/adelle-sans/regular/AdelleSans-Regular.woff") format("woff"), url("./libraries/sofi-global/assets/fonts/adelle-sans/regular/AdelleSans-Regular.ttf") format("truetype"), url("./libraries/sofi-global/assets/fonts/adelle-sans/regular/AdelleSans-Regular.svg#AdelleSans") format("svg");
  font-weight: normal;
  font-style: normal; }

@font-face {
  font-family: "Adelle Sans";
  src: url("./libraries/sofi-global/assets/fonts/adelle-sans/bold/AdelleSans-Bold.eot");
  src: url("./libraries/sofi-global/assets/fonts/adelle-sans/bold/AdelleSans-Bold.eot?#iefix") format("embedded-opentype"), url("./libraries/sofi-global/assets/fonts/adelle-sans/bold/AdelleSans-Bold.woff2") format("woff2"), url("./libraries/sofi-global/assets/fonts/adelle-sans/bold/AdelleSans-Bold.woff") format("woff"), url("./libraries/sofi-global/assets/fonts/adelle-sans/bold/AdelleSans-Bold.ttf") format("truetype"), url("./libraries/sofi-global/assets/fonts/adelle-sans/bold/AdelleSans-Bold.svg#AdelleSans-Bold") format("svg");
  font-weight: bold;
  font-style: normal; }

@font-face {
  font-family: "Avenir";
  src: url("./libraries/sofi-global/assets/fonts/avenir/medium/Avenir-Medium.eot");
  src: url("./libraries/sofi-global/assets/fonts/avenir/medium/Avenir-Medium.eot?#iefix") format("embedded-opentype"), url("./libraries/sofi-global/assets/fonts/avenir/medium/Avenir-Medium.woff") format("woff"), url("./libraries/sofi-global/assets/fonts/avenir/medium/Avenir-Medium.ttf") format("truetype"), url("./libraries/sofi-global/assets/fonts/avenir/medium/Avenir-Medium.svg#AvenirLTStd-Medium") format("svg");
  font-weight: normal;
  font-style: normal; }

@font-face {
  font-family: "Gotham";
  src: url("./libraries/sofi-global/assets/fonts/gotham/bold/Gotham-Bold.eot");
  src: url("./libraries/sofi-global/assets/fonts/gotham/bold/Gotham-Bold.eot#iefix") format("embedded-opentype"), url("./libraries/sofi-global/assets/fonts/gotham/bold/Gotham-Bold.woff2") format("woff2"), url("./libraries/sofi-global/assets/fonts/gotham/bold/Gotham-Bold.woff") format("woff"), url("./libraries/sofi-global/assets/fonts/gotham/bold/Gotham-Bold.ttf") format("truetype"), url("./libraries/sofi-global/assets/fonts/gotham/bold/Gotham-Bold.svg#Gotham-Bold") format("svg");
  font-weight: bold;
  font-style: normal; }

/*
  CSS3 Custom Mixins (to replace Compass mixins)

  * Animation Related
    - transition
    - keyframes animation
  * Flexbox Layout
  * Transform
  * Misc
*/
/*
 Usage:
@include keyframes(slide-down) {
  0% { opacity: 1; }
  90% { opacity: 0; }
}

.element {@include animation('slide-down 5s 3');}
*/
.inline-form .fancy-input {
  display: -webkit-inline-box;
  display: -webkit-inline-flex;
  display: -ms-inline-flexbox;
  display: inline-flex; }

/*doc
---
title: Patterns
name: aaaPatterns
category: Patterns
---

Patterns = Composable design patterns including layout, spacing, padding, and decoration.

Includes miscellaneous utility styles and animation.

*/
.dropdown__menu-list {
  -webkit-transition: -webkit-transform 0.3s ease-out;
  transition: transform 0.3s ease-out; }

.help-panel, [data-title]:not([data-title=""]):after {
  -webkit-transition: all 0.3s ease-out;
  transition: all 0.3s ease-out; }

a, .btn-link, .fake-link, .action-link, .nav-bar__sub-menu .nav-bar__sub-menu__control, .icon-action, .md-checkbox .md-fake-input:before, .sofi-blue-link, .content-panel.ghost-panel {
  -webkit-transition: color 0.3s ease-out;
  transition: color 0.3s ease-out; }

.dropdown__menu-list a, .md-radio-button .md-fake-input:before, .hover-row-table th,
.hover-row-table td {
  -webkit-transition: background 0.3s ease-out;
  transition: background 0.3s ease-out; }

input:not([type="submit"]):not([type="reset"]):not([type="file"]):not([type="button"]):not([type="radio"]):not([type="checkbox"]),
select,
textarea, .fancy-input__decorator, .md-radio-button .md-fake-input,
.md-checkbox .md-fake-input {
  -webkit-transition: border-color 0.3s ease-out;
  transition: border-color 0.3s ease-out; }

.animate-fade.ng-enter {
  -webkit-transition: all 0.5s linear;
  transition: all 0.5s linear;
  opacity: 0; }
  .animate-fade.ng-enter.ng-enter-active {
    opacity: 1; }

.animate-fade-up {
  position: relative; }
  .animate-fade-up.ng-enter {
    -webkit-transition: all 0.5s linear;
    transition: all 0.5s linear;
    opacity: 0;
    top: 100px; }
    .animate-fade-up.ng-enter.ng-enter-active {
      opacity: 1;
      top: 0; }

.animate-scroll-up {
  position: relative; }
  .animate-scroll-up.ng-enter {
    -webkit-transition: all 0.5s linear;
    transition: all 0.5s linear;
    opacity: 0;
    top: 60vh; }
    .animate-scroll-up.ng-enter.ng-enter-active {
      opacity: 1;
      top: 0; }
  .animate-scroll-up.ng-leave {
    -webkit-transition: all 0.5s linear;
    transition: all 0.5s linear;
    top: -60vh;
    opacity: 1; }
    .animate-scroll-up.ng-leave.ng-leave-active {
      top: -120vh;
      opacity: 0; }

.animate-scroll-down {
  position: relative; }
  .animate-scroll-down.ng-enter {
    -webkit-transition: all 0.5s linear;
    transition: all 0.5s linear;
    opacity: 0;
    top: 0; }
    .animate-scroll-down.ng-enter.ng-enter-active {
      opacity: 1;
      top: 60vh; }
  .animate-scroll-down.ng-leave {
    -webkit-transition: all 0.5s linear;
    transition: all 0.5s linear;
    top: -120vh;
    opacity: 1; }
    .animate-scroll-down.ng-leave.ng-leave-active {
      top: -60vh;
      opacity: 0; }

.animate-scroll-right {
  position: relative; }
  .animate-scroll-right.ng-enter {
    -webkit-transition: all 2s linear;
    transition: all 2s linear;
    opacity: 0;
    left: 60vw; }
    .animate-scroll-right.ng-enter.ng-enter-active {
      opacity: 1;
      left: 0; }
  .animate-scroll-right.ng-leave {
    -webkit-transition: all 2s linear;
    transition: all 2s linear;
    left: -60vw;
    opacity: 1; }
    .animate-scroll-right.ng-leave.ng-leave-active {
      left: -120vw;
      opacity: 0; }

@-webkit-keyframes spin {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg); }
  100% {
    -webkit-transform: rotate(359deg);
    transform: rotate(359deg); } }

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

/*
  * Dimensions
  * Usability and User Interaction
  * Text Related Patterns
  * Responsive
  * Margins and padding
  * Table related
  * Misc
    - gpu acceleration
    - Layout helpers
    - Constrain Content

  TODO: Update and add hologram documentation
  Utility styles should all be prepended by "u-"
*/
/*doc
---
title: Utility
name: utility
category: Patterns
---

Utility = helper classes and simple reusable patterns

Utility classes should start with "u-". They can be used to create quick ad hoc layouts or in certain cases where it may not make sense to create a specialized "Module" class. If you find yourself using several utility classes to style an HTML element though that's a sign you should consider creating a new Module class to encompass those styles.

More complex utility classes can be referenced within customized Modules by referencing the placeholder version. (Utility classes which are too simple only have class names however, not placeholders. For example text alignment styles only have class names.)
*/
/*doc
---
title: Dimensions
parent: utility
name: subDimensions
---

###.u-full-width

Make element 100% width.

```html_example
<p>
    <button class="btn" type="button">
        Without class
    </button>
</p>
<p>
    <button class="btn u-full-width" type="button">
        With class
    </button>
</p>

```

###.u-full-max-width
Prevent element from exceeding 100% width. If element is wider than its container it will shrink to fit.

Apply to images for example.

##More experimental, rarer use case utility classes for setting dimensions
###.u-intrinsic-max-content-width

Make element shrink wrap the width of its <em>widest</em> content. Apply to block level elements.

```html_example
<div style="background: skyblue; padding: 1em;">
  Without class
</div>

<hr>

<div class="u-intrinsic-max-content-width" style="background: skyblue; padding: 1em;">
  With class
</div>
```

###.u-intrinsic-min-content-width

Make element shrink wrap the width of its <em>narrowest</em> content. Apply to block level elements.

This has a side affect of causing words to wrap.

```html_example
<div style="background: skyblue; padding: 1em;">
  Without class
</div>

<hr>

<div class="u-intrinsic-min-content-width" style="background: skyblue; padding: 1em;">
  With class
</div>
```
*/
/*doc
---
title: Text
parent: utility
name: subText
---

###Text alignment

####.u-text-align-left
####.u-text-align-left
####.u-text-align-center

```html_example
<p class="u-text-align-left">
    Align text to the left. This is already the default for most elements so this class should rarely be needed.
</p>

<p class="u-text-align-right">
  Align text to the right.
</p>

<p class="u-text-align-center">
  Center text.
</p>
```

###Text wrapping

####.u-wrap-text

Make long text strings wrap to prevent breaking layouts. can apply to table cells, pre tags, etc. as needed.

```html_example
Without class:
<div style="width: 200px; border: 1px solid;">
  <p>Alongtextstringwithnospacesatallwhichnormallywouldnotwrapandwouldstickoutofitscontainer</p>
</div>

<hr>

With class:
<div style="width: 200px; border: 1px solid;">
  <p class="u-wrap-text">
    Alongtextstringwithnospacesatallwhichnormallywouldnotwrapandwouldstickoutofitscontainer
  </p>
</div>
```

####.u-nowrap
Prevent text from wrapping even if it has spaces.

```html_example
Without class:
<div style="width: 200px; border: 1px solid;">
  <p>Some text containing spaces which would normally wrap to fit within its container.</p>
</div>

<hr>

With class:
<div style="width: 200px; border: 1px solid;">
  <p class="u-nowrap">
    Some text containing spaces which would normally wrap to fit within its container.
  </p>
</div>
```

####.u-truncate-text

Truncate long text.

```html_example
Without class:
<div style="width: 200px; border: 1px solid;">
  <p>Alongtextstringwithnospacesatallwhichnormallywouldnotwrapandwouldstickoutofitscontainer</p>
</div>

<hr>

With class:
<div style="width: 200px; border: 1px solid;">
  <p class="u-truncate-text">
    Alongtextstringwithnospacesatallwhichnormallywouldnotwrapandwouldstickoutofitscontainer
  </p>
</div>
```
*/
/*doc
---
title: Vertical Alignment
parent: utility
name: subVerticalAlignment
---

Change vertical alignment of inline block elements in relationship to each other. (These should rarely be needed.)

####.u-vertical-align-middle
####.u-vertical-align-text-bottom
####.u-vertical-align-top
*/
/*doc
---
title: Responsive
parent: utility
name: subResponsive
---

Hide content in certain views for responsive layouts.

####.u-hide-in-mobile
####.u-hide-in-tablet
####.u-hide-in-mobile-and-tablet
####.u-hide-in-tablet-and-above}
####.u-hide-in-desktop-and-above
*/
.u-full-width {
  width: 100% !important; }

.u-full-max-width {
  max-width: 100% !important; }


.u-intrinsic-max-content-width {
  width: -moz-max-content;
  width: -webkit-max-content;
  width: max-content; }


.u-intrinsic-min-content-width {
  width: -moz-min-content;
  width: -webkit-min-content;
  width: min-content; }

.help-panel__close, .main-actions a:not(.btn) {
  position: relative; }
  .help-panel__close:before, .main-actions a:not(.btn):before {
    content: "";
    display: block;
    width: 44px;
    height: 44px;
    margin: auto;
    position: absolute;
    top: -50%;
    right: -100%;
    bottom: -50%;
    left: -100%; }

.nav-bar__sub-menu__content-wrapper, .dropdown__menu-content-wrapper {
  pointer-events: none; }

.nav-bar__sub-menu__content-wrapper ul, .dropdown__menu-list {
  pointer-events: auto; }

.action-control {
  cursor: pointer; }

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

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

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


.u-wrap-text {
  word-break: break-all;
  word-break: break-word;
  word-wrap: break-word;
  overflow-wrap: break-word; }

.nav-bar__logo, [class^="icon-"], .uib-daypicker .glyphicon,
.uib-monthpicker .glyphicon,
.uib-yearpicker .glyphicon {
  text-indent: 3000px;
  white-space: nowrap;
  overflow: hidden; }
  .nav-bar__logo:before, [class^="icon-"]:before, .uib-daypicker .glyphicon:before,
  .uib-monthpicker .glyphicon:before,
  .uib-yearpicker .glyphicon:before, .nav-bar__logo:after, [class^="icon-"]:after, .uib-daypicker .glyphicon:after,
  .uib-monthpicker .glyphicon:after,
  .uib-yearpicker .glyphicon:after {
    text-indent: 0; }

.content-panel__header-title,
.u-truncate-text {
  overflow: hidden;
  text-overflow: ellipsis;
  -ms-text-overflow: ellipsis;
  white-space: nowrap;
  word-wrap: normal; }


.u-nowrap {
  white-space: nowrap; }


.u-break-together {
  display: inline-block; }

.u-vertical-align-middle {
  vertical-align: middle !important; }

.u-vertical-align-text-bottom {
  vertical-align: text-bottom !important; }

.u-vertical-align-top {
  vertical-align: top !important; }

.hidden {
  display: none; }

@media (max-width: 759px) {
  
  .u-hide-in-mobile {
    display: none !important;
    margin-top: 0 !important; } }

@media (min-width: 760px) and (max-width: 959px) {
  
  .u-hide-in-tablet {
    display: none !important;
    margin-top: 0 !important; } }

@media (max-width: 959px) {
  
  .u-hide-in-mobile-and-tablet {
    display: none !important;
    margin-top: 0 !important; } }

@media (min-width: 760px) {
  
  .u-hide-in-tablet-and-above {
    display: none !important;
    margin-top: 0 !important; } }

@media (min-width: 960px) {
  
  .u-hide-in-desktop-and-above {
    display: none !important;
    margin-top: 0 !important; } }

.u-margin-top-content-wide {
  margin-top: 4rem !important; }

.action-cell,
.u-min-content-width-cell {
  white-space: nowrap;
  width: 1%; }


.u-max-reading-width {
  margin-right: auto;
  margin-left: auto;
  max-width: 86.0rem; }

.page__footer__main, .page__footer__subfooter, .nav-bar, .help-panel, .main__header, .main__header__sub, .main__body, .content-section__body,
.constrain-content {
  max-width: 1304px;
  margin: 0 auto; }
  @media (max-width: 759px) {
    .page__footer__main, .page__footer__subfooter, .nav-bar, .help-panel, .main__header, .main__header__sub, .main__body, .content-section__body,
    .constrain-content {
      padding-left: 1.33333rem;
      padding-right: 1.33333rem; } }
  @media (min-width: 760px) {
    .page__footer__main, .page__footer__subfooter, .nav-bar, .help-panel, .main__header, .main__header__sub, .main__body, .content-section__body,
    .constrain-content {
      padding-left: 2rem;
      padding-right: 2rem; } }

.u-flex-vertical-align-center {
  -webkit-box-align: center !important;
  -ms-flex-align: center !important;
  -webkit-align-items: center !important;
  -moz-align-items: center !important;
  align-items: center !important; }

.u-flex-horizontal-align-center {
  display: -webkit-box !important;
  display: -moz-box !important;
  display: -ms-flexbox !important;
  display: -webkit-flex !important;
  display: flex !important;
  -webkit-justify-content: center !important;
  -ms-flex-pack: center !important;
  justify-content: center !important; }

.u-display-inline-block {
  display: inline-block !important; }

.u-display-block {
  display: block !important; }

/*doc
---
title: Layout
name: layout
category: Patterns
---

Layout = Columns/grids and abstract layout patterns for groups of elements

*/
/*doc
---
title: Layout Patterns
parent: layout
name: sublayoutPatterns
---

Layout Patterns = Abstract layout patterns for arrangements of groups of elements.

Dotted outlines have been added to more clearly show the structure of layout patterns in the examples below. These outlines will not be visible in actual production usage.

**Flexbox Layouts:**

<ul class="bulleted-list">
  <li>center</li>
  <li>
    media object and variants:
    <ul class="bulleted-list">
      <li>media object</li>
      <li>flag object</li>
    </ul>
  </li>
  <li>
    justified block:
    <ul class="bulleted-list">
      <li>horizontal justified block</li>
      <li>vertical justified block</li>
    </ul>
  </li>
  <li>
    table-like layouts:
    <ul class="bulleted-list">
      <li>equal cell</li>
      <li>unequal cell</li>
    </ul>
  </li>
</ul>

### Center

Centers an element both vertically and horizontally within any container element it is applied to. Designed primarily for centering a single element but will also work on multiple elements. (Multiple elements will all be centered together within the main container.)

<em>(NOTE: Inline styles are for purposes of demonstration only. Do not use within production app code!)</em>

```html_example
<div class="l-flex-center" style="height: 200px; background: aliceBlue;">
  <p>A vertically and horizontally centered element. (Can be any element.)</p>
</div>
```

#### Media Object Layout

Aligns an element such as an image to the left of an associated block of content. The image does not need to be wrapped by any other element (a stand alone image tag is fine). Designed to work with 2 main elements of any type.

```html_example
<div class="l-media-object">
  <div>IMAGE</div>

  <div>
    <h4>A header</h4>
    <p>Some associated text content.</p>
  </div>
</div>
```

#### Flag Object Layout

This is very similar to the Media Object pattern except the 2 elements are center aligned to each other.

```html_example
<div class="l-flag-object">
  <div>IMAGE<br>IMAGE<br>IMAGE</div>

  <p>Some associated text content.</p>
</div>
```

#### Justified Block Layout

This pattern works on multiple elements distributing them an equal distance apart and justified to the right and left. (Works on any type of html elements. A list is used just as an example.)

```html_example
<ul class="l-justified-block">
  <li>First Item</li>
  <li>Another Item</li>
  <li>Item</li>
  <li>Last Item</li>
</ul>
```

#### Vertical Justified Block Layout

This is a variation on the above more common pattern. (It does not need to be used together with the above class. The below is only an example.)

```html_example
<ul class="l-justified-block">
  <li class="l-justified-block-vertical">
    <h5>
      A long header<br>
      which wraps to<br>
      the next few lines
    </h5>

    <a href="#">Click Me</a>
  </li>

  <li class="l-justified-block-vertical">
    <h5>Just a header</h5>

    <a href="#">Click Me</a>
  </li>

  <li class="l-justified-block-vertical">
    <h5>Just a header</h5>

    <a href="#">Click Me</a>
  </li>
</ul>
```

#### Equal Cell Layout

This is a table-like layout which works on muliple elements. All elements will be lined up in a row and will be equal width adding up to 100% total.

```html_example
<ul class="l-equal-cell">
  <li>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Odio voluptates praesentium!</li>
  <li>Lorem ipsum dolor sit amet</li>
  <li>Lorem</li>
</ul>

```

#### Unequal Cell Layout

This is similar to the above layout except the width of elements will be relative to the length of their contents. (NOTE: examples below do not include styles for spacing between elements.)

```html_example
<ul class="l-unequal-cell">
  <li>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Odio voluptates praesentium!</li>
  <li>Lorem ipsum dolor sit amet</li>
  <li>Lorem</li>
</ul>

<p class="l-unequal-cell">
  <input type="text" placeholder="Type something here">

  <select>
    <option>option</option>
  </select>

  <button type="button" class="btn">Go</button>
</p>

```

*/
/*
  Flexbox Layouts:
  --------------------
  * center
  * media object and variants
    - media object
    - flag object
    - TODO: add "reverse" variants?
  * justified block
    - horizontal justified block
    - vertical justified block
  * Table-like layouts
    - equal cell
    - unequal cell

  Other Layout Methods:
  ----------------------
  (replace with flexbox if feasible)
  * Transform layouts
    - vertical center
    - horizontal center
  * Inline-Block Layouts
    - block list
    - justified block
*/

.l-flex-center {
  display: -webkit-box;
  display: -moz-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -webkit-justify-content: center;
  -ms-flex-pack: center;
  justify-content: center;
  -webkit-box-align: center;
  -ms-flex-align: center;
  -webkit-align-items: center;
  -moz-align-items: center;
  align-items: center;
  -webkit-box-direction: normal;
  -webkit-box-orient: vertical;
  -webkit-flex-direction: column;
  -moz-flex-direction: column;
  -ms-flex-direction: column;
  flex-direction: column; }


.l-media-object {
  display: -webkit-box;
  display: -moz-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex; }
  
  .l-media-object > * {
    margin-top: 0;
    margin-bottom: 0; }
    
    .l-media-object > * + * {
      margin-top: 0;
      margin-bottom: 0; }
    
    .l-media-object > *:first-child {
      margin-right: 1rem; }
    
    .l-media-object > *:only-child,
    .l-media-object > *:nth-child(n+2) {
      width: 100%;
      flex-shrink: 1; }
  
  .l-media-object > table {
    width: auto !important; }


.l-flag-object {
  display: -webkit-box;
  display: -moz-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  -webkit-align-items: center;
  -moz-align-items: center;
  align-items: center; }
  
  .l-flag-object > * {
    margin-top: 0;
    margin-bottom: 0; }
    
    .l-flag-object > * + * {
      margin-top: 0;
      margin-bottom: 0; }
    
    .l-flag-object > *:first-child {
      margin-right: 1rem; }
    
    .l-flag-object > *:only-child,
    .l-flag-object > *:nth-child(n+2) {
      width: 100%;
      flex-shrink: 1; }
  
  .l-flag-object > table {
    width: auto !important; }

.nav-bar,
.l-justified-block {
  display: -webkit-box;
  display: -moz-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -webkit-justify-content: space-between;
  -ms-flex-pack: center;
  justify-content: space-between; }
  .nav-bar > *,
  .l-justified-block > * {
    margin-top: 0; }


.l-justified-block-vertical {
  display: -webkit-box;
  display: -moz-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -webkit-justify-content: space-between;
  -ms-flex-pack: center;
  justify-content: space-between;
  -webkit-box-direction: normal;
  -webkit-box-orient: vertical;
  -webkit-flex-direction: column;
  -moz-flex-direction: column;
  -ms-flex-direction: column;
  flex-direction: column; }


.l-equal-cell {
  display: -webkit-box;
  display: -moz-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex; }
  
  .l-equal-cell > * {
    flex-basis: 100%;
    margin-top: 0; }


.l-unequal-cell {
  display: -webkit-box;
  display: -moz-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex; }
  
  .l-unequal-cell > * {
    flex-grow: 1;
    margin-top: 0;
    min-width: -moz-min-content;
    min-width: -webkit-min-content;
    min-width: min-content; }
  
  .l-unequal-cell > .btn {
    flex-shrink: 0; }
  
  .l-unequal-cell > input,
  .l-unequal-cell > select {
    height: auto !important;
    min-width: auto !important; }
  
  .l-unequal-cell > .btn {
    width: auto; }
  
  .l-unequal-cell > input {
    width: 100%; }

.loading-mask__inner {
  -ms-transform: translateY(-50%);
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
  position: relative;
  top: 50%; }

[data-title]:not([data-title=""]):after {
  -ms-transform: translateX(-50%);
  -webkit-transform: translateX(-50%);
  transform: translateX(-50%);
  position: absolute;
  left: 50%; }

/*doc
---
title: Column Grid
parent: layout
name: subColumnGrid
---

Columns have fixed pixel width gutters but flexible percentage-based widths. Column layouts can be changed depending on screen width break points to create responsive layouts.

**Responsive Views:**<br>
  * all<br>
  * mobile<br>
  * tablet<br>
  * desktop<br>
  * wide<br>
  * mobile-and-tablet<br>
  * tablet-and-desktop<br>
  * tablet-and-above<br>
  * desktop-and-above

###Equal Width Columns

```html_example
<div class="col-group all--1-2">
  <div class="col">1/2 Content</div>
  <div class="col">1/2 Content</div>
</div><!-- /.col-group -->

<div class="col-group all--1-3">
  <div class="col">1/3 Content</div>
  <div class="col">1/3 Content</div>
  <div class="col">1/3 Content</div>
</div>

<div class="col-group all--1-4">
  <div class="col">1/4 Content</div>
  <div class="col">1/4 Content</div>
  <div class="col">1/4 Content</div>
  <div class="col">1/4 Content</div>
</div>

<div class="col-group all--1-5">
  <div class="col">1/5 Content</div>
  <div class="col">1/5 Content</div>
  <div class="col">1/5 Content</div>
  <div class="col">1/5 Content</div>
  <div class="col">1/5 Content</div>
</div>
```

###Unequal Width Columns

```html_example
<div class="col-group all--1-3-and-2-3">
  <div class="col">1/3 Content</div>
  <div class="col">2/3 Content</div>
</div>

<div class="col-group all--2-3-and-1-3">
  <div class="col">2/3 Content</div>
  <div class="col">1/3 Content</div>
</div>

<div class="col-group all--1-4-and-3-4">
  <div class="col">1/4 Content</div>
  <div class="col">3/4 Content</div>
</div>

<div class="col-group all--3-4-and-1-4">
  <div class="col">3/4 Content</div>
  <div class="col">1/4 Content</div>
</div>

<div class="col-group all--2-5-and-3-5">
  <div class="col">2/5 Content</div>
  <div class="col">3/5 Content</div>
</div>

<div class="col-group all--3-5-and-2-5">
  <div class="col">3/5 Content</div>
  <div class="col">2/5 Content</div>
</div>

<div class="col-group all--1-4-and-2-4-and-1-4">
  <div class="col">1/4 Content</div>
  <div class="col">2/4 Content</div>
  <div class="col">1/4 Content</div>
</div>
```

###Full Width Columns

The full width coloumn layout is mainly useful for mobile views.

```html_example
<div class="col-group all--full">
  <div class="col">Full width content</div>
  <div class="col">Full width content</div>
</div>
```

*/
/*
  Views:
  * all
  * mobile
  * tablet
  * desktop
  * wide
  * mobile-and-tablet
  * tablet-and-desktop
  * tablet-and-above
  * desktop-and-above

  Layouts:
  Equal width columns -
  * full
  * 1-2
  * 1-3
  * 1-4
  * 1-5
  Mixed width columns -
  * 1-3-and-2-3
  * 2-3-and-1-3
  * 1-4-and-3-4
  * 3-4-and-1-4
  * 1-4-and-2-4-and-1-4
  * 2-5-and-3-5
  * 3-5-and-2-5

  How to use:
  Add extra classes to col-group container to set the column layout.

  Examples:
  (half width columns in all screen sizes)
  <div class="col-group full--1-2">
    <div class="col">This is a column.</div>
    <div class="col">This is a column.</div>
  </div>

  (full width columns in mobile, half width columns in tablet, third width columns in desktop and above)
  <div class="col-group mobile--full tablet--1-2 desktop-and-above-1-3">
    <div class="col">This is a column.</div>
    <div class="col">This is a column.</div>
    <div class="col">This is a column.</div>
  </div>

  NOTES:
  * .col elements can also be a .col-group for creating nested columns,
  * .col and .col-group elements don't have to be div tags
*/
.col-group {
  display: -webkit-box;
  display: -moz-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -webkit-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap; }
  .col-group:not(.compact-gutters).all--full > .col {
    width: 100%; }
    .col-group:not(.compact-gutters).all--full > .col + .col {
      margin-top: 2rem; }
  .col-group:not(.compact-gutters).all--1-2 > .col {
    width: calc( (100% * 1 / 2 - 2rem) + 2rem / 2);
    max-width: calc( (100% * 1 / 2 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).all--1-2 > .col:not(:nth-child(2n)) + .col {
      margin-left: 2rem; }
    .col-group:not(.compact-gutters).all--1-2 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto; }
    .col-group:not(.compact-gutters).all--1-2 > .col:first-child, .col-group:not(.compact-gutters).all--1-2 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group:not(.compact-gutters).all--1-2 > .col:nth-child(n + 3) {
      margin-top: 2rem; }
  .col-group:not(.compact-gutters).all--1-3 > .col {
    width: calc( (100% * 1 / 3 - 2rem) + 2rem / 3);
    max-width: calc( (100% * 1 / 3 - 2rem) + 2rem / 3); }
    .col-group:not(.compact-gutters).all--1-3 > .col:not(:nth-child(3n)) + .col {
      margin-left: 2rem; }
    .col-group:not(.compact-gutters).all--1-3 > .col:nth-child(3n) {
      flex: 1 1 0;
      width: auto; }
    .col-group:not(.compact-gutters).all--1-3 > .col:first-child, .col-group:not(.compact-gutters).all--1-3 > .col:nth-child(2), .col-group:not(.compact-gutters).all--1-3 > .col:nth-child(3) {
      margin-top: 0; }
    .col-group:not(.compact-gutters).all--1-3 > .col:nth-child(n + 4) {
      margin-top: 2rem; }
  .col-group:not(.compact-gutters).all--1-4 > .col {
    width: calc( (100% * 1 / 4 - 2rem) + 2rem / 4);
    max-width: calc( (100% * 1 / 4 - 2rem) + 2rem / 4); }
    .col-group:not(.compact-gutters).all--1-4 > .col:not(:nth-child(4n)) + .col {
      margin-left: 2rem; }
    .col-group:not(.compact-gutters).all--1-4 > .col:nth-child(4n) {
      flex: 1 1 0;
      width: auto; }
    .col-group:not(.compact-gutters).all--1-4 > .col:first-child, .col-group:not(.compact-gutters).all--1-4 > .col:nth-child(2), .col-group:not(.compact-gutters).all--1-4 > .col:nth-child(3), .col-group:not(.compact-gutters).all--1-4 > .col:nth-child(4) {
      margin-top: 0; }
    .col-group:not(.compact-gutters).all--1-4 > .col:nth-child(n + 5) {
      margin-top: 2rem; }
  .col-group:not(.compact-gutters).all--1-5 > .col {
    width: calc( (100% * 1 / 5 - 2rem) + 2rem / 5);
    max-width: calc( (100% * 1 / 5 - 2rem) + 2rem / 5); }
    .col-group:not(.compact-gutters).all--1-5 > .col:not(:nth-child(5n)) + .col {
      margin-left: 2rem; }
    .col-group:not(.compact-gutters).all--1-5 > .col:nth-child(5n) {
      flex: 1 1 0;
      width: auto; }
    .col-group:not(.compact-gutters).all--1-5 > .col:first-child, .col-group:not(.compact-gutters).all--1-5 > .col:nth-child(2), .col-group:not(.compact-gutters).all--1-5 > .col:nth-child(3), .col-group:not(.compact-gutters).all--1-5 > .col:nth-child(4), .col-group:not(.compact-gutters).all--1-5 > .col:nth-child(5) {
      margin-top: 0; }
    .col-group:not(.compact-gutters).all--1-5 > .col:nth-child(n + 6) {
      margin-top: 2rem; }
  .col-group:not(.compact-gutters).all--1-3-and-2-3 > .col:nth-child(2n + 1) {
    width: calc( (100% * 1 / 3 - 2rem) + 2rem / 2); }
  .col-group:not(.compact-gutters).all--1-3-and-2-3 > .col:nth-child(2n) {
    flex: 1 1 0;
    width: auto;
    max-width: calc( (100% * 2 / 3 - 2rem) + 2rem / 2); }
  .col-group:not(.compact-gutters).all--1-3-and-2-3 > .col:not(:nth-child(2n)) + .col {
    margin-left: 2rem; }
  .col-group:not(.compact-gutters).all--1-3-and-2-3 > .col:first-child, .col-group:not(.compact-gutters).all--1-3-and-2-3 > .col:nth-child(2) {
    margin-top: 0; }
  .col-group:not(.compact-gutters).all--1-3-and-2-3 > .col:nth-child(n + 3) {
    margin-top: 2rem; }
  .col-group:not(.compact-gutters).all--2-3-and-1-3 > .col:nth-child(2n + 1) {
    width: calc( (100% * 2 / 3 - 2rem) + 2rem / 2); }
  .col-group:not(.compact-gutters).all--2-3-and-1-3 > .col:nth-child(2n) {
    flex: 1 1 0;
    width: auto;
    max-width: calc( (100% * 1 / 3 - 2rem) + 2rem / 2); }
  .col-group:not(.compact-gutters).all--2-3-and-1-3 > .col:not(:nth-child(2n)) + .col {
    margin-left: 2rem; }
  .col-group:not(.compact-gutters).all--2-3-and-1-3 > .col:first-child, .col-group:not(.compact-gutters).all--2-3-and-1-3 > .col:nth-child(2) {
    margin-top: 0; }
  .col-group:not(.compact-gutters).all--2-3-and-1-3 > .col:nth-child(n + 3) {
    margin-top: 2rem; }
  .col-group:not(.compact-gutters).all--1-4-and-3-4 > .col:nth-child(2n + 1) {
    width: calc( (100% * 1 / 4 - 2rem) + 2rem / 2); }
  .col-group:not(.compact-gutters).all--1-4-and-3-4 > .col:nth-child(2n) {
    flex: 1 1 0;
    width: auto;
    max-width: calc( (100% * 3 / 4 - 2rem) + 2rem / 2); }
  .col-group:not(.compact-gutters).all--1-4-and-3-4 > .col:not(:nth-child(2n)) + .col {
    margin-left: 2rem; }
  .col-group:not(.compact-gutters).all--1-4-and-3-4 > .col:first-child, .col-group:not(.compact-gutters).all--1-4-and-3-4 > .col:nth-child(2) {
    margin-top: 0; }
  .col-group:not(.compact-gutters).all--1-4-and-3-4 > .col:nth-child(n + 3) {
    margin-top: 2rem; }
  .col-group:not(.compact-gutters).all--3-4-and-1-4 > .col:nth-child(2n + 1) {
    width: calc( (100% * 3 / 4 - 2rem) + 2rem / 2); }
  .col-group:not(.compact-gutters).all--3-4-and-1-4 > .col:nth-child(2n) {
    flex: 1 1 0;
    width: auto;
    max-width: calc( (100% * 1 / 4 - 2rem) + 2rem / 2); }
  .col-group:not(.compact-gutters).all--3-4-and-1-4 > .col:not(:nth-child(2n)) + .col {
    margin-left: 2rem; }
  .col-group:not(.compact-gutters).all--3-4-and-1-4 > .col:first-child, .col-group:not(.compact-gutters).all--3-4-and-1-4 > .col:nth-child(2) {
    margin-top: 0; }
  .col-group:not(.compact-gutters).all--3-4-and-1-4 > .col:nth-child(n + 3) {
    margin-top: 2rem; }
  .col-group:not(.compact-gutters).all--1-4-and-2-4-and-1-4 > .col:nth-child(3n + 1) {
    width: calc( (100% * 1 / 4 - 2rem) + 2rem / 3); }
  .col-group:not(.compact-gutters).all--1-4-and-2-4-and-1-4 > .col:nth-child(3n - 1) {
    width: calc( (100% * 2 / 4 - 2rem) + 2rem / 3); }
  .col-group:not(.compact-gutters).all--1-4-and-2-4-and-1-4 > .col:nth-child(3n) {
    flex: 1 1 0;
    width: auto;
    max-width: calc( (100% * 1 / 4 - 2rem) + 2rem / 3); }
  .col-group:not(.compact-gutters).all--1-4-and-2-4-and-1-4 > .col:not(:nth-child(3n)) + .col {
    margin-left: 2rem; }
  .col-group:not(.compact-gutters).all--1-4-and-2-4-and-1-4 > .col:first-child, .col-group:not(.compact-gutters).all--1-4-and-2-4-and-1-4 > .col:nth-child(2), .col-group:not(.compact-gutters).all--1-4-and-2-4-and-1-4 > .col:nth-child(3) {
    margin-top: 0; }
  .col-group:not(.compact-gutters).all--1-4-and-2-4-and-1-4 > .col:nth-child(n + 4) {
    margin-top: 2rem; }
  .col-group:not(.compact-gutters).all--2-5-and-3-5 > .col:nth-child(2n + 1) {
    width: calc( (100% * 2 / 5 - 2rem) + 2rem / 2); }
  .col-group:not(.compact-gutters).all--2-5-and-3-5 > .col:nth-child(2n) {
    flex: 1 1 0;
    width: auto;
    max-width: calc( (100% * 3 / 5 - 2rem) + 2rem / 2); }
  .col-group:not(.compact-gutters).all--2-5-and-3-5 > .col:not(:nth-child(2n)) + .col {
    margin-left: 2rem; }
  .col-group:not(.compact-gutters).all--2-5-and-3-5 > .col:first-child, .col-group:not(.compact-gutters).all--2-5-and-3-5 > .col:nth-child(2) {
    margin-top: 0; }
  .col-group:not(.compact-gutters).all--2-5-and-3-5 > .col:nth-child(n + 3) {
    margin-top: 2rem; }
  .col-group:not(.compact-gutters).all--3-5-and-2-5 > .col:nth-child(2n + 1) {
    width: calc( (100% * 3 / 5 - 2rem) + 2rem / 2); }
  .col-group:not(.compact-gutters).all--3-5-and-2-5 > .col:nth-child(2n) {
    flex: 1 1 0;
    width: auto;
    max-width: calc( (100% * 2 / 5 - 2rem) + 2rem / 2); }
  .col-group:not(.compact-gutters).all--3-5-and-2-5 > .col:not(:nth-child(2n)) + .col {
    margin-left: 2rem; }
  .col-group:not(.compact-gutters).all--3-5-and-2-5 > .col:first-child, .col-group:not(.compact-gutters).all--3-5-and-2-5 > .col:nth-child(2) {
    margin-top: 0; }
  .col-group:not(.compact-gutters).all--3-5-and-2-5 > .col:nth-child(n + 3) {
    margin-top: 2rem; }
  .col-group:not(.compact-gutters).all--ruled {
    position: relative; }
    .col-group:not(.compact-gutters).all--ruled > .col:nth-child(2):before,
    .col-group:not(.compact-gutters).all--ruled > .col:nth-child(3):before,
    .col-group:not(.compact-gutters).all--ruled > .col:nth-child(4):before {
      border-left: 1px solid #D1D2D4;
      content: "";
      display: block;
      margin-left: -1rem;
      position: absolute;
      top: 0;
      bottom: 0; }
  .col-group:not(.compact-gutters).all--centered > .col {
    margin-left: auto;
    margin-right: auto; }
    .col-group:not(.compact-gutters).all--centered > .col + .col {
      margin-top: 1em; }
  .col-group:not(.compact-gutters).all--col-reverse {
    -webkit-box-direction: reverse;
    -webkit-box-orient: vertical;
    -webkit-flex-direction: column-reverse;
    -moz-flex-direction: column-reverse;
    -ms-flex-direction: column-reverse;
    flex-direction: column-reverse; }
  @media (max-width: 759px) {
    .col-group:not(.compact-gutters).mobile--full > .col {
      width: 100%; }
      .col-group:not(.compact-gutters).mobile--full > .col + .col {
        margin-top: 2rem; }
    .col-group:not(.compact-gutters).mobile--1-2 > .col {
      width: calc( (100% * 1 / 2 - 2rem) + 2rem / 2);
      max-width: calc( (100% * 1 / 2 - 2rem) + 2rem / 2); }
      .col-group:not(.compact-gutters).mobile--1-2 > .col:not(:nth-child(2n)) + .col {
        margin-left: 2rem; }
      .col-group:not(.compact-gutters).mobile--1-2 > .col:nth-child(2n) {
        flex: 1 1 0;
        width: auto; }
      .col-group:not(.compact-gutters).mobile--1-2 > .col:first-child, .col-group:not(.compact-gutters).mobile--1-2 > .col:nth-child(2) {
        margin-top: 0; }
      .col-group:not(.compact-gutters).mobile--1-2 > .col:nth-child(n + 3) {
        margin-top: 2rem; }
    .col-group:not(.compact-gutters).mobile--1-3 > .col {
      width: calc( (100% * 1 / 3 - 2rem) + 2rem / 3);
      max-width: calc( (100% * 1 / 3 - 2rem) + 2rem / 3); }
      .col-group:not(.compact-gutters).mobile--1-3 > .col:not(:nth-child(3n)) + .col {
        margin-left: 2rem; }
      .col-group:not(.compact-gutters).mobile--1-3 > .col:nth-child(3n) {
        flex: 1 1 0;
        width: auto; }
      .col-group:not(.compact-gutters).mobile--1-3 > .col:first-child, .col-group:not(.compact-gutters).mobile--1-3 > .col:nth-child(2), .col-group:not(.compact-gutters).mobile--1-3 > .col:nth-child(3) {
        margin-top: 0; }
      .col-group:not(.compact-gutters).mobile--1-3 > .col:nth-child(n + 4) {
        margin-top: 2rem; }
    .col-group:not(.compact-gutters).mobile--1-4 > .col {
      width: calc( (100% * 1 / 4 - 2rem) + 2rem / 4);
      max-width: calc( (100% * 1 / 4 - 2rem) + 2rem / 4); }
      .col-group:not(.compact-gutters).mobile--1-4 > .col:not(:nth-child(4n)) + .col {
        margin-left: 2rem; }
      .col-group:not(.compact-gutters).mobile--1-4 > .col:nth-child(4n) {
        flex: 1 1 0;
        width: auto; }
      .col-group:not(.compact-gutters).mobile--1-4 > .col:first-child, .col-group:not(.compact-gutters).mobile--1-4 > .col:nth-child(2), .col-group:not(.compact-gutters).mobile--1-4 > .col:nth-child(3), .col-group:not(.compact-gutters).mobile--1-4 > .col:nth-child(4) {
        margin-top: 0; }
      .col-group:not(.compact-gutters).mobile--1-4 > .col:nth-child(n + 5) {
        margin-top: 2rem; }
    .col-group:not(.compact-gutters).mobile--1-5 > .col {
      width: calc( (100% * 1 / 5 - 2rem) + 2rem / 5);
      max-width: calc( (100% * 1 / 5 - 2rem) + 2rem / 5); }
      .col-group:not(.compact-gutters).mobile--1-5 > .col:not(:nth-child(5n)) + .col {
        margin-left: 2rem; }
      .col-group:not(.compact-gutters).mobile--1-5 > .col:nth-child(5n) {
        flex: 1 1 0;
        width: auto; }
      .col-group:not(.compact-gutters).mobile--1-5 > .col:first-child, .col-group:not(.compact-gutters).mobile--1-5 > .col:nth-child(2), .col-group:not(.compact-gutters).mobile--1-5 > .col:nth-child(3), .col-group:not(.compact-gutters).mobile--1-5 > .col:nth-child(4), .col-group:not(.compact-gutters).mobile--1-5 > .col:nth-child(5) {
        margin-top: 0; }
      .col-group:not(.compact-gutters).mobile--1-5 > .col:nth-child(n + 6) {
        margin-top: 2rem; }
    .col-group:not(.compact-gutters).mobile--1-3-and-2-3 > .col:nth-child(2n + 1) {
      width: calc( (100% * 1 / 3 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).mobile--1-3-and-2-3 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 2 / 3 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).mobile--1-3-and-2-3 > .col:not(:nth-child(2n)) + .col {
      margin-left: 2rem; }
    .col-group:not(.compact-gutters).mobile--1-3-and-2-3 > .col:first-child, .col-group:not(.compact-gutters).mobile--1-3-and-2-3 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group:not(.compact-gutters).mobile--1-3-and-2-3 > .col:nth-child(n + 3) {
      margin-top: 2rem; }
    .col-group:not(.compact-gutters).mobile--2-3-and-1-3 > .col:nth-child(2n + 1) {
      width: calc( (100% * 2 / 3 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).mobile--2-3-and-1-3 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 1 / 3 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).mobile--2-3-and-1-3 > .col:not(:nth-child(2n)) + .col {
      margin-left: 2rem; }
    .col-group:not(.compact-gutters).mobile--2-3-and-1-3 > .col:first-child, .col-group:not(.compact-gutters).mobile--2-3-and-1-3 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group:not(.compact-gutters).mobile--2-3-and-1-3 > .col:nth-child(n + 3) {
      margin-top: 2rem; }
    .col-group:not(.compact-gutters).mobile--1-4-and-3-4 > .col:nth-child(2n + 1) {
      width: calc( (100% * 1 / 4 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).mobile--1-4-and-3-4 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 3 / 4 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).mobile--1-4-and-3-4 > .col:not(:nth-child(2n)) + .col {
      margin-left: 2rem; }
    .col-group:not(.compact-gutters).mobile--1-4-and-3-4 > .col:first-child, .col-group:not(.compact-gutters).mobile--1-4-and-3-4 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group:not(.compact-gutters).mobile--1-4-and-3-4 > .col:nth-child(n + 3) {
      margin-top: 2rem; }
    .col-group:not(.compact-gutters).mobile--3-4-and-1-4 > .col:nth-child(2n + 1) {
      width: calc( (100% * 3 / 4 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).mobile--3-4-and-1-4 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 1 / 4 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).mobile--3-4-and-1-4 > .col:not(:nth-child(2n)) + .col {
      margin-left: 2rem; }
    .col-group:not(.compact-gutters).mobile--3-4-and-1-4 > .col:first-child, .col-group:not(.compact-gutters).mobile--3-4-and-1-4 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group:not(.compact-gutters).mobile--3-4-and-1-4 > .col:nth-child(n + 3) {
      margin-top: 2rem; }
    .col-group:not(.compact-gutters).mobile--1-4-and-2-4-and-1-4 > .col:nth-child(3n + 1) {
      width: calc( (100% * 1 / 4 - 2rem) + 2rem / 3); }
    .col-group:not(.compact-gutters).mobile--1-4-and-2-4-and-1-4 > .col:nth-child(3n - 1) {
      width: calc( (100% * 2 / 4 - 2rem) + 2rem / 3); }
    .col-group:not(.compact-gutters).mobile--1-4-and-2-4-and-1-4 > .col:nth-child(3n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 1 / 4 - 2rem) + 2rem / 3); }
    .col-group:not(.compact-gutters).mobile--1-4-and-2-4-and-1-4 > .col:not(:nth-child(3n)) + .col {
      margin-left: 2rem; }
    .col-group:not(.compact-gutters).mobile--1-4-and-2-4-and-1-4 > .col:first-child, .col-group:not(.compact-gutters).mobile--1-4-and-2-4-and-1-4 > .col:nth-child(2), .col-group:not(.compact-gutters).mobile--1-4-and-2-4-and-1-4 > .col:nth-child(3) {
      margin-top: 0; }
    .col-group:not(.compact-gutters).mobile--1-4-and-2-4-and-1-4 > .col:nth-child(n + 4) {
      margin-top: 2rem; }
    .col-group:not(.compact-gutters).mobile--2-5-and-3-5 > .col:nth-child(2n + 1) {
      width: calc( (100% * 2 / 5 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).mobile--2-5-and-3-5 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 3 / 5 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).mobile--2-5-and-3-5 > .col:not(:nth-child(2n)) + .col {
      margin-left: 2rem; }
    .col-group:not(.compact-gutters).mobile--2-5-and-3-5 > .col:first-child, .col-group:not(.compact-gutters).mobile--2-5-and-3-5 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group:not(.compact-gutters).mobile--2-5-and-3-5 > .col:nth-child(n + 3) {
      margin-top: 2rem; }
    .col-group:not(.compact-gutters).mobile--3-5-and-2-5 > .col:nth-child(2n + 1) {
      width: calc( (100% * 3 / 5 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).mobile--3-5-and-2-5 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 2 / 5 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).mobile--3-5-and-2-5 > .col:not(:nth-child(2n)) + .col {
      margin-left: 2rem; }
    .col-group:not(.compact-gutters).mobile--3-5-and-2-5 > .col:first-child, .col-group:not(.compact-gutters).mobile--3-5-and-2-5 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group:not(.compact-gutters).mobile--3-5-and-2-5 > .col:nth-child(n + 3) {
      margin-top: 2rem; }
    .col-group:not(.compact-gutters).mobile--ruled {
      position: relative; }
      .col-group:not(.compact-gutters).mobile--ruled > .col:nth-child(2):before,
      .col-group:not(.compact-gutters).mobile--ruled > .col:nth-child(3):before,
      .col-group:not(.compact-gutters).mobile--ruled > .col:nth-child(4):before {
        border-left: 1px solid #D1D2D4;
        content: "";
        display: block;
        margin-left: -1rem;
        position: absolute;
        top: 0;
        bottom: 0; }
    .col-group:not(.compact-gutters).mobile--centered > .col {
      margin-left: auto;
      margin-right: auto; }
      .col-group:not(.compact-gutters).mobile--centered > .col + .col {
        margin-top: 1em; }
    .col-group:not(.compact-gutters).mobile--col-reverse {
      -webkit-box-direction: reverse;
      -webkit-box-orient: vertical;
      -webkit-flex-direction: column-reverse;
      -moz-flex-direction: column-reverse;
      -ms-flex-direction: column-reverse;
      flex-direction: column-reverse; } }
  @media (min-width: 760px) and (max-width: 959px) {
    .col-group:not(.compact-gutters).tablet--full > .col {
      width: 100%; }
      .col-group:not(.compact-gutters).tablet--full > .col + .col {
        margin-top: 2rem; }
    .col-group:not(.compact-gutters).tablet--1-2 > .col {
      width: calc( (100% * 1 / 2 - 2rem) + 2rem / 2);
      max-width: calc( (100% * 1 / 2 - 2rem) + 2rem / 2); }
      .col-group:not(.compact-gutters).tablet--1-2 > .col:not(:nth-child(2n)) + .col {
        margin-left: 2rem; }
      .col-group:not(.compact-gutters).tablet--1-2 > .col:nth-child(2n) {
        flex: 1 1 0;
        width: auto; }
      .col-group:not(.compact-gutters).tablet--1-2 > .col:first-child, .col-group:not(.compact-gutters).tablet--1-2 > .col:nth-child(2) {
        margin-top: 0; }
      .col-group:not(.compact-gutters).tablet--1-2 > .col:nth-child(n + 3) {
        margin-top: 2rem; }
    .col-group:not(.compact-gutters).tablet--1-3 > .col {
      width: calc( (100% * 1 / 3 - 2rem) + 2rem / 3);
      max-width: calc( (100% * 1 / 3 - 2rem) + 2rem / 3); }
      .col-group:not(.compact-gutters).tablet--1-3 > .col:not(:nth-child(3n)) + .col {
        margin-left: 2rem; }
      .col-group:not(.compact-gutters).tablet--1-3 > .col:nth-child(3n) {
        flex: 1 1 0;
        width: auto; }
      .col-group:not(.compact-gutters).tablet--1-3 > .col:first-child, .col-group:not(.compact-gutters).tablet--1-3 > .col:nth-child(2), .col-group:not(.compact-gutters).tablet--1-3 > .col:nth-child(3) {
        margin-top: 0; }
      .col-group:not(.compact-gutters).tablet--1-3 > .col:nth-child(n + 4) {
        margin-top: 2rem; }
    .col-group:not(.compact-gutters).tablet--1-4 > .col {
      width: calc( (100% * 1 / 4 - 2rem) + 2rem / 4);
      max-width: calc( (100% * 1 / 4 - 2rem) + 2rem / 4); }
      .col-group:not(.compact-gutters).tablet--1-4 > .col:not(:nth-child(4n)) + .col {
        margin-left: 2rem; }
      .col-group:not(.compact-gutters).tablet--1-4 > .col:nth-child(4n) {
        flex: 1 1 0;
        width: auto; }
      .col-group:not(.compact-gutters).tablet--1-4 > .col:first-child, .col-group:not(.compact-gutters).tablet--1-4 > .col:nth-child(2), .col-group:not(.compact-gutters).tablet--1-4 > .col:nth-child(3), .col-group:not(.compact-gutters).tablet--1-4 > .col:nth-child(4) {
        margin-top: 0; }
      .col-group:not(.compact-gutters).tablet--1-4 > .col:nth-child(n + 5) {
        margin-top: 2rem; }
    .col-group:not(.compact-gutters).tablet--1-5 > .col {
      width: calc( (100% * 1 / 5 - 2rem) + 2rem / 5);
      max-width: calc( (100% * 1 / 5 - 2rem) + 2rem / 5); }
      .col-group:not(.compact-gutters).tablet--1-5 > .col:not(:nth-child(5n)) + .col {
        margin-left: 2rem; }
      .col-group:not(.compact-gutters).tablet--1-5 > .col:nth-child(5n) {
        flex: 1 1 0;
        width: auto; }
      .col-group:not(.compact-gutters).tablet--1-5 > .col:first-child, .col-group:not(.compact-gutters).tablet--1-5 > .col:nth-child(2), .col-group:not(.compact-gutters).tablet--1-5 > .col:nth-child(3), .col-group:not(.compact-gutters).tablet--1-5 > .col:nth-child(4), .col-group:not(.compact-gutters).tablet--1-5 > .col:nth-child(5) {
        margin-top: 0; }
      .col-group:not(.compact-gutters).tablet--1-5 > .col:nth-child(n + 6) {
        margin-top: 2rem; }
    .col-group:not(.compact-gutters).tablet--1-3-and-2-3 > .col:nth-child(2n + 1) {
      width: calc( (100% * 1 / 3 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).tablet--1-3-and-2-3 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 2 / 3 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).tablet--1-3-and-2-3 > .col:not(:nth-child(2n)) + .col {
      margin-left: 2rem; }
    .col-group:not(.compact-gutters).tablet--1-3-and-2-3 > .col:first-child, .col-group:not(.compact-gutters).tablet--1-3-and-2-3 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group:not(.compact-gutters).tablet--1-3-and-2-3 > .col:nth-child(n + 3) {
      margin-top: 2rem; }
    .col-group:not(.compact-gutters).tablet--2-3-and-1-3 > .col:nth-child(2n + 1) {
      width: calc( (100% * 2 / 3 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).tablet--2-3-and-1-3 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 1 / 3 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).tablet--2-3-and-1-3 > .col:not(:nth-child(2n)) + .col {
      margin-left: 2rem; }
    .col-group:not(.compact-gutters).tablet--2-3-and-1-3 > .col:first-child, .col-group:not(.compact-gutters).tablet--2-3-and-1-3 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group:not(.compact-gutters).tablet--2-3-and-1-3 > .col:nth-child(n + 3) {
      margin-top: 2rem; }
    .col-group:not(.compact-gutters).tablet--1-4-and-3-4 > .col:nth-child(2n + 1) {
      width: calc( (100% * 1 / 4 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).tablet--1-4-and-3-4 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 3 / 4 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).tablet--1-4-and-3-4 > .col:not(:nth-child(2n)) + .col {
      margin-left: 2rem; }
    .col-group:not(.compact-gutters).tablet--1-4-and-3-4 > .col:first-child, .col-group:not(.compact-gutters).tablet--1-4-and-3-4 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group:not(.compact-gutters).tablet--1-4-and-3-4 > .col:nth-child(n + 3) {
      margin-top: 2rem; }
    .col-group:not(.compact-gutters).tablet--3-4-and-1-4 > .col:nth-child(2n + 1) {
      width: calc( (100% * 3 / 4 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).tablet--3-4-and-1-4 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 1 / 4 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).tablet--3-4-and-1-4 > .col:not(:nth-child(2n)) + .col {
      margin-left: 2rem; }
    .col-group:not(.compact-gutters).tablet--3-4-and-1-4 > .col:first-child, .col-group:not(.compact-gutters).tablet--3-4-and-1-4 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group:not(.compact-gutters).tablet--3-4-and-1-4 > .col:nth-child(n + 3) {
      margin-top: 2rem; }
    .col-group:not(.compact-gutters).tablet--1-4-and-2-4-and-1-4 > .col:nth-child(3n + 1) {
      width: calc( (100% * 1 / 4 - 2rem) + 2rem / 3); }
    .col-group:not(.compact-gutters).tablet--1-4-and-2-4-and-1-4 > .col:nth-child(3n - 1) {
      width: calc( (100% * 2 / 4 - 2rem) + 2rem / 3); }
    .col-group:not(.compact-gutters).tablet--1-4-and-2-4-and-1-4 > .col:nth-child(3n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 1 / 4 - 2rem) + 2rem / 3); }
    .col-group:not(.compact-gutters).tablet--1-4-and-2-4-and-1-4 > .col:not(:nth-child(3n)) + .col {
      margin-left: 2rem; }
    .col-group:not(.compact-gutters).tablet--1-4-and-2-4-and-1-4 > .col:first-child, .col-group:not(.compact-gutters).tablet--1-4-and-2-4-and-1-4 > .col:nth-child(2), .col-group:not(.compact-gutters).tablet--1-4-and-2-4-and-1-4 > .col:nth-child(3) {
      margin-top: 0; }
    .col-group:not(.compact-gutters).tablet--1-4-and-2-4-and-1-4 > .col:nth-child(n + 4) {
      margin-top: 2rem; }
    .col-group:not(.compact-gutters).tablet--2-5-and-3-5 > .col:nth-child(2n + 1) {
      width: calc( (100% * 2 / 5 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).tablet--2-5-and-3-5 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 3 / 5 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).tablet--2-5-and-3-5 > .col:not(:nth-child(2n)) + .col {
      margin-left: 2rem; }
    .col-group:not(.compact-gutters).tablet--2-5-and-3-5 > .col:first-child, .col-group:not(.compact-gutters).tablet--2-5-and-3-5 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group:not(.compact-gutters).tablet--2-5-and-3-5 > .col:nth-child(n + 3) {
      margin-top: 2rem; }
    .col-group:not(.compact-gutters).tablet--3-5-and-2-5 > .col:nth-child(2n + 1) {
      width: calc( (100% * 3 / 5 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).tablet--3-5-and-2-5 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 2 / 5 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).tablet--3-5-and-2-5 > .col:not(:nth-child(2n)) + .col {
      margin-left: 2rem; }
    .col-group:not(.compact-gutters).tablet--3-5-and-2-5 > .col:first-child, .col-group:not(.compact-gutters).tablet--3-5-and-2-5 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group:not(.compact-gutters).tablet--3-5-and-2-5 > .col:nth-child(n + 3) {
      margin-top: 2rem; }
    .col-group:not(.compact-gutters).tablet--ruled {
      position: relative; }
      .col-group:not(.compact-gutters).tablet--ruled > .col:nth-child(2):before,
      .col-group:not(.compact-gutters).tablet--ruled > .col:nth-child(3):before,
      .col-group:not(.compact-gutters).tablet--ruled > .col:nth-child(4):before {
        border-left: 1px solid #D1D2D4;
        content: "";
        display: block;
        margin-left: -1rem;
        position: absolute;
        top: 0;
        bottom: 0; }
    .col-group:not(.compact-gutters).tablet--centered > .col {
      margin-left: auto;
      margin-right: auto; }
      .col-group:not(.compact-gutters).tablet--centered > .col + .col {
        margin-top: 1em; }
    .col-group:not(.compact-gutters).tablet--col-reverse {
      -webkit-box-direction: reverse;
      -webkit-box-orient: vertical;
      -webkit-flex-direction: column-reverse;
      -moz-flex-direction: column-reverse;
      -ms-flex-direction: column-reverse;
      flex-direction: column-reverse; } }
  @media (min-width: 960px) and (max-width: 1279px) {
    .col-group:not(.compact-gutters).desktop--full > .col {
      width: 100%; }
      .col-group:not(.compact-gutters).desktop--full > .col + .col {
        margin-top: 2rem; }
    .col-group:not(.compact-gutters).desktop--1-2 > .col {
      width: calc( (100% * 1 / 2 - 2rem) + 2rem / 2);
      max-width: calc( (100% * 1 / 2 - 2rem) + 2rem / 2); }
      .col-group:not(.compact-gutters).desktop--1-2 > .col:not(:nth-child(2n)) + .col {
        margin-left: 2rem; }
      .col-group:not(.compact-gutters).desktop--1-2 > .col:nth-child(2n) {
        flex: 1 1 0;
        width: auto; }
      .col-group:not(.compact-gutters).desktop--1-2 > .col:first-child, .col-group:not(.compact-gutters).desktop--1-2 > .col:nth-child(2) {
        margin-top: 0; }
      .col-group:not(.compact-gutters).desktop--1-2 > .col:nth-child(n + 3) {
        margin-top: 2rem; }
    .col-group:not(.compact-gutters).desktop--1-3 > .col {
      width: calc( (100% * 1 / 3 - 2rem) + 2rem / 3);
      max-width: calc( (100% * 1 / 3 - 2rem) + 2rem / 3); }
      .col-group:not(.compact-gutters).desktop--1-3 > .col:not(:nth-child(3n)) + .col {
        margin-left: 2rem; }
      .col-group:not(.compact-gutters).desktop--1-3 > .col:nth-child(3n) {
        flex: 1 1 0;
        width: auto; }
      .col-group:not(.compact-gutters).desktop--1-3 > .col:first-child, .col-group:not(.compact-gutters).desktop--1-3 > .col:nth-child(2), .col-group:not(.compact-gutters).desktop--1-3 > .col:nth-child(3) {
        margin-top: 0; }
      .col-group:not(.compact-gutters).desktop--1-3 > .col:nth-child(n + 4) {
        margin-top: 2rem; }
    .col-group:not(.compact-gutters).desktop--1-4 > .col {
      width: calc( (100% * 1 / 4 - 2rem) + 2rem / 4);
      max-width: calc( (100% * 1 / 4 - 2rem) + 2rem / 4); }
      .col-group:not(.compact-gutters).desktop--1-4 > .col:not(:nth-child(4n)) + .col {
        margin-left: 2rem; }
      .col-group:not(.compact-gutters).desktop--1-4 > .col:nth-child(4n) {
        flex: 1 1 0;
        width: auto; }
      .col-group:not(.compact-gutters).desktop--1-4 > .col:first-child, .col-group:not(.compact-gutters).desktop--1-4 > .col:nth-child(2), .col-group:not(.compact-gutters).desktop--1-4 > .col:nth-child(3), .col-group:not(.compact-gutters).desktop--1-4 > .col:nth-child(4) {
        margin-top: 0; }
      .col-group:not(.compact-gutters).desktop--1-4 > .col:nth-child(n + 5) {
        margin-top: 2rem; }
    .col-group:not(.compact-gutters).desktop--1-5 > .col {
      width: calc( (100% * 1 / 5 - 2rem) + 2rem / 5);
      max-width: calc( (100% * 1 / 5 - 2rem) + 2rem / 5); }
      .col-group:not(.compact-gutters).desktop--1-5 > .col:not(:nth-child(5n)) + .col {
        margin-left: 2rem; }
      .col-group:not(.compact-gutters).desktop--1-5 > .col:nth-child(5n) {
        flex: 1 1 0;
        width: auto; }
      .col-group:not(.compact-gutters).desktop--1-5 > .col:first-child, .col-group:not(.compact-gutters).desktop--1-5 > .col:nth-child(2), .col-group:not(.compact-gutters).desktop--1-5 > .col:nth-child(3), .col-group:not(.compact-gutters).desktop--1-5 > .col:nth-child(4), .col-group:not(.compact-gutters).desktop--1-5 > .col:nth-child(5) {
        margin-top: 0; }
      .col-group:not(.compact-gutters).desktop--1-5 > .col:nth-child(n + 6) {
        margin-top: 2rem; }
    .col-group:not(.compact-gutters).desktop--1-3-and-2-3 > .col:nth-child(2n + 1) {
      width: calc( (100% * 1 / 3 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).desktop--1-3-and-2-3 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 2 / 3 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).desktop--1-3-and-2-3 > .col:not(:nth-child(2n)) + .col {
      margin-left: 2rem; }
    .col-group:not(.compact-gutters).desktop--1-3-and-2-3 > .col:first-child, .col-group:not(.compact-gutters).desktop--1-3-and-2-3 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group:not(.compact-gutters).desktop--1-3-and-2-3 > .col:nth-child(n + 3) {
      margin-top: 2rem; }
    .col-group:not(.compact-gutters).desktop--2-3-and-1-3 > .col:nth-child(2n + 1) {
      width: calc( (100% * 2 / 3 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).desktop--2-3-and-1-3 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 1 / 3 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).desktop--2-3-and-1-3 > .col:not(:nth-child(2n)) + .col {
      margin-left: 2rem; }
    .col-group:not(.compact-gutters).desktop--2-3-and-1-3 > .col:first-child, .col-group:not(.compact-gutters).desktop--2-3-and-1-3 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group:not(.compact-gutters).desktop--2-3-and-1-3 > .col:nth-child(n + 3) {
      margin-top: 2rem; }
    .col-group:not(.compact-gutters).desktop--1-4-and-3-4 > .col:nth-child(2n + 1) {
      width: calc( (100% * 1 / 4 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).desktop--1-4-and-3-4 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 3 / 4 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).desktop--1-4-and-3-4 > .col:not(:nth-child(2n)) + .col {
      margin-left: 2rem; }
    .col-group:not(.compact-gutters).desktop--1-4-and-3-4 > .col:first-child, .col-group:not(.compact-gutters).desktop--1-4-and-3-4 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group:not(.compact-gutters).desktop--1-4-and-3-4 > .col:nth-child(n + 3) {
      margin-top: 2rem; }
    .col-group:not(.compact-gutters).desktop--3-4-and-1-4 > .col:nth-child(2n + 1) {
      width: calc( (100% * 3 / 4 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).desktop--3-4-and-1-4 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 1 / 4 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).desktop--3-4-and-1-4 > .col:not(:nth-child(2n)) + .col {
      margin-left: 2rem; }
    .col-group:not(.compact-gutters).desktop--3-4-and-1-4 > .col:first-child, .col-group:not(.compact-gutters).desktop--3-4-and-1-4 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group:not(.compact-gutters).desktop--3-4-and-1-4 > .col:nth-child(n + 3) {
      margin-top: 2rem; }
    .col-group:not(.compact-gutters).desktop--1-4-and-2-4-and-1-4 > .col:nth-child(3n + 1) {
      width: calc( (100% * 1 / 4 - 2rem) + 2rem / 3); }
    .col-group:not(.compact-gutters).desktop--1-4-and-2-4-and-1-4 > .col:nth-child(3n - 1) {
      width: calc( (100% * 2 / 4 - 2rem) + 2rem / 3); }
    .col-group:not(.compact-gutters).desktop--1-4-and-2-4-and-1-4 > .col:nth-child(3n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 1 / 4 - 2rem) + 2rem / 3); }
    .col-group:not(.compact-gutters).desktop--1-4-and-2-4-and-1-4 > .col:not(:nth-child(3n)) + .col {
      margin-left: 2rem; }
    .col-group:not(.compact-gutters).desktop--1-4-and-2-4-and-1-4 > .col:first-child, .col-group:not(.compact-gutters).desktop--1-4-and-2-4-and-1-4 > .col:nth-child(2), .col-group:not(.compact-gutters).desktop--1-4-and-2-4-and-1-4 > .col:nth-child(3) {
      margin-top: 0; }
    .col-group:not(.compact-gutters).desktop--1-4-and-2-4-and-1-4 > .col:nth-child(n + 4) {
      margin-top: 2rem; }
    .col-group:not(.compact-gutters).desktop--2-5-and-3-5 > .col:nth-child(2n + 1) {
      width: calc( (100% * 2 / 5 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).desktop--2-5-and-3-5 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 3 / 5 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).desktop--2-5-and-3-5 > .col:not(:nth-child(2n)) + .col {
      margin-left: 2rem; }
    .col-group:not(.compact-gutters).desktop--2-5-and-3-5 > .col:first-child, .col-group:not(.compact-gutters).desktop--2-5-and-3-5 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group:not(.compact-gutters).desktop--2-5-and-3-5 > .col:nth-child(n + 3) {
      margin-top: 2rem; }
    .col-group:not(.compact-gutters).desktop--3-5-and-2-5 > .col:nth-child(2n + 1) {
      width: calc( (100% * 3 / 5 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).desktop--3-5-and-2-5 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 2 / 5 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).desktop--3-5-and-2-5 > .col:not(:nth-child(2n)) + .col {
      margin-left: 2rem; }
    .col-group:not(.compact-gutters).desktop--3-5-and-2-5 > .col:first-child, .col-group:not(.compact-gutters).desktop--3-5-and-2-5 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group:not(.compact-gutters).desktop--3-5-and-2-5 > .col:nth-child(n + 3) {
      margin-top: 2rem; }
    .col-group:not(.compact-gutters).desktop--ruled {
      position: relative; }
      .col-group:not(.compact-gutters).desktop--ruled > .col:nth-child(2):before,
      .col-group:not(.compact-gutters).desktop--ruled > .col:nth-child(3):before,
      .col-group:not(.compact-gutters).desktop--ruled > .col:nth-child(4):before {
        border-left: 1px solid #D1D2D4;
        content: "";
        display: block;
        margin-left: -1rem;
        position: absolute;
        top: 0;
        bottom: 0; }
    .col-group:not(.compact-gutters).desktop--centered > .col {
      margin-left: auto;
      margin-right: auto; }
      .col-group:not(.compact-gutters).desktop--centered > .col + .col {
        margin-top: 1em; }
    .col-group:not(.compact-gutters).desktop--col-reverse {
      -webkit-box-direction: reverse;
      -webkit-box-orient: vertical;
      -webkit-flex-direction: column-reverse;
      -moz-flex-direction: column-reverse;
      -ms-flex-direction: column-reverse;
      flex-direction: column-reverse; } }
  @media (min-width: 1280px) {
    .col-group:not(.compact-gutters).wide--full > .col {
      width: 100%; }
      .col-group:not(.compact-gutters).wide--full > .col + .col {
        margin-top: 2rem; }
    .col-group:not(.compact-gutters).wide--1-2 > .col {
      width: calc( (100% * 1 / 2 - 2rem) + 2rem / 2);
      max-width: calc( (100% * 1 / 2 - 2rem) + 2rem / 2); }
      .col-group:not(.compact-gutters).wide--1-2 > .col:not(:nth-child(2n)) + .col {
        margin-left: 2rem; }
      .col-group:not(.compact-gutters).wide--1-2 > .col:nth-child(2n) {
        flex: 1 1 0;
        width: auto; }
      .col-group:not(.compact-gutters).wide--1-2 > .col:first-child, .col-group:not(.compact-gutters).wide--1-2 > .col:nth-child(2) {
        margin-top: 0; }
      .col-group:not(.compact-gutters).wide--1-2 > .col:nth-child(n + 3) {
        margin-top: 2rem; }
    .col-group:not(.compact-gutters).wide--1-3 > .col {
      width: calc( (100% * 1 / 3 - 2rem) + 2rem / 3);
      max-width: calc( (100% * 1 / 3 - 2rem) + 2rem / 3); }
      .col-group:not(.compact-gutters).wide--1-3 > .col:not(:nth-child(3n)) + .col {
        margin-left: 2rem; }
      .col-group:not(.compact-gutters).wide--1-3 > .col:nth-child(3n) {
        flex: 1 1 0;
        width: auto; }
      .col-group:not(.compact-gutters).wide--1-3 > .col:first-child, .col-group:not(.compact-gutters).wide--1-3 > .col:nth-child(2), .col-group:not(.compact-gutters).wide--1-3 > .col:nth-child(3) {
        margin-top: 0; }
      .col-group:not(.compact-gutters).wide--1-3 > .col:nth-child(n + 4) {
        margin-top: 2rem; }
    .col-group:not(.compact-gutters).wide--1-4 > .col {
      width: calc( (100% * 1 / 4 - 2rem) + 2rem / 4);
      max-width: calc( (100% * 1 / 4 - 2rem) + 2rem / 4); }
      .col-group:not(.compact-gutters).wide--1-4 > .col:not(:nth-child(4n)) + .col {
        margin-left: 2rem; }
      .col-group:not(.compact-gutters).wide--1-4 > .col:nth-child(4n) {
        flex: 1 1 0;
        width: auto; }
      .col-group:not(.compact-gutters).wide--1-4 > .col:first-child, .col-group:not(.compact-gutters).wide--1-4 > .col:nth-child(2), .col-group:not(.compact-gutters).wide--1-4 > .col:nth-child(3), .col-group:not(.compact-gutters).wide--1-4 > .col:nth-child(4) {
        margin-top: 0; }
      .col-group:not(.compact-gutters).wide--1-4 > .col:nth-child(n + 5) {
        margin-top: 2rem; }
    .col-group:not(.compact-gutters).wide--1-5 > .col {
      width: calc( (100% * 1 / 5 - 2rem) + 2rem / 5);
      max-width: calc( (100% * 1 / 5 - 2rem) + 2rem / 5); }
      .col-group:not(.compact-gutters).wide--1-5 > .col:not(:nth-child(5n)) + .col {
        margin-left: 2rem; }
      .col-group:not(.compact-gutters).wide--1-5 > .col:nth-child(5n) {
        flex: 1 1 0;
        width: auto; }
      .col-group:not(.compact-gutters).wide--1-5 > .col:first-child, .col-group:not(.compact-gutters).wide--1-5 > .col:nth-child(2), .col-group:not(.compact-gutters).wide--1-5 > .col:nth-child(3), .col-group:not(.compact-gutters).wide--1-5 > .col:nth-child(4), .col-group:not(.compact-gutters).wide--1-5 > .col:nth-child(5) {
        margin-top: 0; }
      .col-group:not(.compact-gutters).wide--1-5 > .col:nth-child(n + 6) {
        margin-top: 2rem; }
    .col-group:not(.compact-gutters).wide--1-3-and-2-3 > .col:nth-child(2n + 1) {
      width: calc( (100% * 1 / 3 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).wide--1-3-and-2-3 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 2 / 3 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).wide--1-3-and-2-3 > .col:not(:nth-child(2n)) + .col {
      margin-left: 2rem; }
    .col-group:not(.compact-gutters).wide--1-3-and-2-3 > .col:first-child, .col-group:not(.compact-gutters).wide--1-3-and-2-3 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group:not(.compact-gutters).wide--1-3-and-2-3 > .col:nth-child(n + 3) {
      margin-top: 2rem; }
    .col-group:not(.compact-gutters).wide--2-3-and-1-3 > .col:nth-child(2n + 1) {
      width: calc( (100% * 2 / 3 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).wide--2-3-and-1-3 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 1 / 3 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).wide--2-3-and-1-3 > .col:not(:nth-child(2n)) + .col {
      margin-left: 2rem; }
    .col-group:not(.compact-gutters).wide--2-3-and-1-3 > .col:first-child, .col-group:not(.compact-gutters).wide--2-3-and-1-3 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group:not(.compact-gutters).wide--2-3-and-1-3 > .col:nth-child(n + 3) {
      margin-top: 2rem; }
    .col-group:not(.compact-gutters).wide--1-4-and-3-4 > .col:nth-child(2n + 1) {
      width: calc( (100% * 1 / 4 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).wide--1-4-and-3-4 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 3 / 4 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).wide--1-4-and-3-4 > .col:not(:nth-child(2n)) + .col {
      margin-left: 2rem; }
    .col-group:not(.compact-gutters).wide--1-4-and-3-4 > .col:first-child, .col-group:not(.compact-gutters).wide--1-4-and-3-4 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group:not(.compact-gutters).wide--1-4-and-3-4 > .col:nth-child(n + 3) {
      margin-top: 2rem; }
    .col-group:not(.compact-gutters).wide--3-4-and-1-4 > .col:nth-child(2n + 1) {
      width: calc( (100% * 3 / 4 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).wide--3-4-and-1-4 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 1 / 4 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).wide--3-4-and-1-4 > .col:not(:nth-child(2n)) + .col {
      margin-left: 2rem; }
    .col-group:not(.compact-gutters).wide--3-4-and-1-4 > .col:first-child, .col-group:not(.compact-gutters).wide--3-4-and-1-4 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group:not(.compact-gutters).wide--3-4-and-1-4 > .col:nth-child(n + 3) {
      margin-top: 2rem; }
    .col-group:not(.compact-gutters).wide--1-4-and-2-4-and-1-4 > .col:nth-child(3n + 1) {
      width: calc( (100% * 1 / 4 - 2rem) + 2rem / 3); }
    .col-group:not(.compact-gutters).wide--1-4-and-2-4-and-1-4 > .col:nth-child(3n - 1) {
      width: calc( (100% * 2 / 4 - 2rem) + 2rem / 3); }
    .col-group:not(.compact-gutters).wide--1-4-and-2-4-and-1-4 > .col:nth-child(3n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 1 / 4 - 2rem) + 2rem / 3); }
    .col-group:not(.compact-gutters).wide--1-4-and-2-4-and-1-4 > .col:not(:nth-child(3n)) + .col {
      margin-left: 2rem; }
    .col-group:not(.compact-gutters).wide--1-4-and-2-4-and-1-4 > .col:first-child, .col-group:not(.compact-gutters).wide--1-4-and-2-4-and-1-4 > .col:nth-child(2), .col-group:not(.compact-gutters).wide--1-4-and-2-4-and-1-4 > .col:nth-child(3) {
      margin-top: 0; }
    .col-group:not(.compact-gutters).wide--1-4-and-2-4-and-1-4 > .col:nth-child(n + 4) {
      margin-top: 2rem; }
    .col-group:not(.compact-gutters).wide--2-5-and-3-5 > .col:nth-child(2n + 1) {
      width: calc( (100% * 2 / 5 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).wide--2-5-and-3-5 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 3 / 5 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).wide--2-5-and-3-5 > .col:not(:nth-child(2n)) + .col {
      margin-left: 2rem; }
    .col-group:not(.compact-gutters).wide--2-5-and-3-5 > .col:first-child, .col-group:not(.compact-gutters).wide--2-5-and-3-5 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group:not(.compact-gutters).wide--2-5-and-3-5 > .col:nth-child(n + 3) {
      margin-top: 2rem; }
    .col-group:not(.compact-gutters).wide--3-5-and-2-5 > .col:nth-child(2n + 1) {
      width: calc( (100% * 3 / 5 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).wide--3-5-and-2-5 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 2 / 5 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).wide--3-5-and-2-5 > .col:not(:nth-child(2n)) + .col {
      margin-left: 2rem; }
    .col-group:not(.compact-gutters).wide--3-5-and-2-5 > .col:first-child, .col-group:not(.compact-gutters).wide--3-5-and-2-5 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group:not(.compact-gutters).wide--3-5-and-2-5 > .col:nth-child(n + 3) {
      margin-top: 2rem; }
    .col-group:not(.compact-gutters).wide--ruled {
      position: relative; }
      .col-group:not(.compact-gutters).wide--ruled > .col:nth-child(2):before,
      .col-group:not(.compact-gutters).wide--ruled > .col:nth-child(3):before,
      .col-group:not(.compact-gutters).wide--ruled > .col:nth-child(4):before {
        border-left: 1px solid #D1D2D4;
        content: "";
        display: block;
        margin-left: -1rem;
        position: absolute;
        top: 0;
        bottom: 0; }
    .col-group:not(.compact-gutters).wide--centered > .col {
      margin-left: auto;
      margin-right: auto; }
      .col-group:not(.compact-gutters).wide--centered > .col + .col {
        margin-top: 1em; }
    .col-group:not(.compact-gutters).wide--col-reverse {
      -webkit-box-direction: reverse;
      -webkit-box-orient: vertical;
      -webkit-flex-direction: column-reverse;
      -moz-flex-direction: column-reverse;
      -ms-flex-direction: column-reverse;
      flex-direction: column-reverse; } }
  @media (max-width: 959px) {
    .col-group:not(.compact-gutters).mobile-and-tablet--full > .col {
      width: 100%; }
      .col-group:not(.compact-gutters).mobile-and-tablet--full > .col + .col {
        margin-top: 2rem; }
    .col-group:not(.compact-gutters).mobile-and-tablet--1-2 > .col {
      width: calc( (100% * 1 / 2 - 2rem) + 2rem / 2);
      max-width: calc( (100% * 1 / 2 - 2rem) + 2rem / 2); }
      .col-group:not(.compact-gutters).mobile-and-tablet--1-2 > .col:not(:nth-child(2n)) + .col {
        margin-left: 2rem; }
      .col-group:not(.compact-gutters).mobile-and-tablet--1-2 > .col:nth-child(2n) {
        flex: 1 1 0;
        width: auto; }
      .col-group:not(.compact-gutters).mobile-and-tablet--1-2 > .col:first-child, .col-group:not(.compact-gutters).mobile-and-tablet--1-2 > .col:nth-child(2) {
        margin-top: 0; }
      .col-group:not(.compact-gutters).mobile-and-tablet--1-2 > .col:nth-child(n + 3) {
        margin-top: 2rem; }
    .col-group:not(.compact-gutters).mobile-and-tablet--1-3 > .col {
      width: calc( (100% * 1 / 3 - 2rem) + 2rem / 3);
      max-width: calc( (100% * 1 / 3 - 2rem) + 2rem / 3); }
      .col-group:not(.compact-gutters).mobile-and-tablet--1-3 > .col:not(:nth-child(3n)) + .col {
        margin-left: 2rem; }
      .col-group:not(.compact-gutters).mobile-and-tablet--1-3 > .col:nth-child(3n) {
        flex: 1 1 0;
        width: auto; }
      .col-group:not(.compact-gutters).mobile-and-tablet--1-3 > .col:first-child, .col-group:not(.compact-gutters).mobile-and-tablet--1-3 > .col:nth-child(2), .col-group:not(.compact-gutters).mobile-and-tablet--1-3 > .col:nth-child(3) {
        margin-top: 0; }
      .col-group:not(.compact-gutters).mobile-and-tablet--1-3 > .col:nth-child(n + 4) {
        margin-top: 2rem; }
    .col-group:not(.compact-gutters).mobile-and-tablet--1-4 > .col {
      width: calc( (100% * 1 / 4 - 2rem) + 2rem / 4);
      max-width: calc( (100% * 1 / 4 - 2rem) + 2rem / 4); }
      .col-group:not(.compact-gutters).mobile-and-tablet--1-4 > .col:not(:nth-child(4n)) + .col {
        margin-left: 2rem; }
      .col-group:not(.compact-gutters).mobile-and-tablet--1-4 > .col:nth-child(4n) {
        flex: 1 1 0;
        width: auto; }
      .col-group:not(.compact-gutters).mobile-and-tablet--1-4 > .col:first-child, .col-group:not(.compact-gutters).mobile-and-tablet--1-4 > .col:nth-child(2), .col-group:not(.compact-gutters).mobile-and-tablet--1-4 > .col:nth-child(3), .col-group:not(.compact-gutters).mobile-and-tablet--1-4 > .col:nth-child(4) {
        margin-top: 0; }
      .col-group:not(.compact-gutters).mobile-and-tablet--1-4 > .col:nth-child(n + 5) {
        margin-top: 2rem; }
    .col-group:not(.compact-gutters).mobile-and-tablet--1-5 > .col {
      width: calc( (100% * 1 / 5 - 2rem) + 2rem / 5);
      max-width: calc( (100% * 1 / 5 - 2rem) + 2rem / 5); }
      .col-group:not(.compact-gutters).mobile-and-tablet--1-5 > .col:not(:nth-child(5n)) + .col {
        margin-left: 2rem; }
      .col-group:not(.compact-gutters).mobile-and-tablet--1-5 > .col:nth-child(5n) {
        flex: 1 1 0;
        width: auto; }
      .col-group:not(.compact-gutters).mobile-and-tablet--1-5 > .col:first-child, .col-group:not(.compact-gutters).mobile-and-tablet--1-5 > .col:nth-child(2), .col-group:not(.compact-gutters).mobile-and-tablet--1-5 > .col:nth-child(3), .col-group:not(.compact-gutters).mobile-and-tablet--1-5 > .col:nth-child(4), .col-group:not(.compact-gutters).mobile-and-tablet--1-5 > .col:nth-child(5) {
        margin-top: 0; }
      .col-group:not(.compact-gutters).mobile-and-tablet--1-5 > .col:nth-child(n + 6) {
        margin-top: 2rem; }
    .col-group:not(.compact-gutters).mobile-and-tablet--1-3-and-2-3 > .col:nth-child(2n + 1) {
      width: calc( (100% * 1 / 3 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).mobile-and-tablet--1-3-and-2-3 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 2 / 3 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).mobile-and-tablet--1-3-and-2-3 > .col:not(:nth-child(2n)) + .col {
      margin-left: 2rem; }
    .col-group:not(.compact-gutters).mobile-and-tablet--1-3-and-2-3 > .col:first-child, .col-group:not(.compact-gutters).mobile-and-tablet--1-3-and-2-3 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group:not(.compact-gutters).mobile-and-tablet--1-3-and-2-3 > .col:nth-child(n + 3) {
      margin-top: 2rem; }
    .col-group:not(.compact-gutters).mobile-and-tablet--2-3-and-1-3 > .col:nth-child(2n + 1) {
      width: calc( (100% * 2 / 3 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).mobile-and-tablet--2-3-and-1-3 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 1 / 3 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).mobile-and-tablet--2-3-and-1-3 > .col:not(:nth-child(2n)) + .col {
      margin-left: 2rem; }
    .col-group:not(.compact-gutters).mobile-and-tablet--2-3-and-1-3 > .col:first-child, .col-group:not(.compact-gutters).mobile-and-tablet--2-3-and-1-3 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group:not(.compact-gutters).mobile-and-tablet--2-3-and-1-3 > .col:nth-child(n + 3) {
      margin-top: 2rem; }
    .col-group:not(.compact-gutters).mobile-and-tablet--1-4-and-3-4 > .col:nth-child(2n + 1) {
      width: calc( (100% * 1 / 4 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).mobile-and-tablet--1-4-and-3-4 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 3 / 4 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).mobile-and-tablet--1-4-and-3-4 > .col:not(:nth-child(2n)) + .col {
      margin-left: 2rem; }
    .col-group:not(.compact-gutters).mobile-and-tablet--1-4-and-3-4 > .col:first-child, .col-group:not(.compact-gutters).mobile-and-tablet--1-4-and-3-4 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group:not(.compact-gutters).mobile-and-tablet--1-4-and-3-4 > .col:nth-child(n + 3) {
      margin-top: 2rem; }
    .col-group:not(.compact-gutters).mobile-and-tablet--3-4-and-1-4 > .col:nth-child(2n + 1) {
      width: calc( (100% * 3 / 4 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).mobile-and-tablet--3-4-and-1-4 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 1 / 4 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).mobile-and-tablet--3-4-and-1-4 > .col:not(:nth-child(2n)) + .col {
      margin-left: 2rem; }
    .col-group:not(.compact-gutters).mobile-and-tablet--3-4-and-1-4 > .col:first-child, .col-group:not(.compact-gutters).mobile-and-tablet--3-4-and-1-4 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group:not(.compact-gutters).mobile-and-tablet--3-4-and-1-4 > .col:nth-child(n + 3) {
      margin-top: 2rem; }
    .col-group:not(.compact-gutters).mobile-and-tablet--1-4-and-2-4-and-1-4 > .col:nth-child(3n + 1) {
      width: calc( (100% * 1 / 4 - 2rem) + 2rem / 3); }
    .col-group:not(.compact-gutters).mobile-and-tablet--1-4-and-2-4-and-1-4 > .col:nth-child(3n - 1) {
      width: calc( (100% * 2 / 4 - 2rem) + 2rem / 3); }
    .col-group:not(.compact-gutters).mobile-and-tablet--1-4-and-2-4-and-1-4 > .col:nth-child(3n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 1 / 4 - 2rem) + 2rem / 3); }
    .col-group:not(.compact-gutters).mobile-and-tablet--1-4-and-2-4-and-1-4 > .col:not(:nth-child(3n)) + .col {
      margin-left: 2rem; }
    .col-group:not(.compact-gutters).mobile-and-tablet--1-4-and-2-4-and-1-4 > .col:first-child, .col-group:not(.compact-gutters).mobile-and-tablet--1-4-and-2-4-and-1-4 > .col:nth-child(2), .col-group:not(.compact-gutters).mobile-and-tablet--1-4-and-2-4-and-1-4 > .col:nth-child(3) {
      margin-top: 0; }
    .col-group:not(.compact-gutters).mobile-and-tablet--1-4-and-2-4-and-1-4 > .col:nth-child(n + 4) {
      margin-top: 2rem; }
    .col-group:not(.compact-gutters).mobile-and-tablet--2-5-and-3-5 > .col:nth-child(2n + 1) {
      width: calc( (100% * 2 / 5 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).mobile-and-tablet--2-5-and-3-5 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 3 / 5 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).mobile-and-tablet--2-5-and-3-5 > .col:not(:nth-child(2n)) + .col {
      margin-left: 2rem; }
    .col-group:not(.compact-gutters).mobile-and-tablet--2-5-and-3-5 > .col:first-child, .col-group:not(.compact-gutters).mobile-and-tablet--2-5-and-3-5 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group:not(.compact-gutters).mobile-and-tablet--2-5-and-3-5 > .col:nth-child(n + 3) {
      margin-top: 2rem; }
    .col-group:not(.compact-gutters).mobile-and-tablet--3-5-and-2-5 > .col:nth-child(2n + 1) {
      width: calc( (100% * 3 / 5 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).mobile-and-tablet--3-5-and-2-5 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 2 / 5 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).mobile-and-tablet--3-5-and-2-5 > .col:not(:nth-child(2n)) + .col {
      margin-left: 2rem; }
    .col-group:not(.compact-gutters).mobile-and-tablet--3-5-and-2-5 > .col:first-child, .col-group:not(.compact-gutters).mobile-and-tablet--3-5-and-2-5 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group:not(.compact-gutters).mobile-and-tablet--3-5-and-2-5 > .col:nth-child(n + 3) {
      margin-top: 2rem; }
    .col-group:not(.compact-gutters).mobile-and-tablet--ruled {
      position: relative; }
      .col-group:not(.compact-gutters).mobile-and-tablet--ruled > .col:nth-child(2):before,
      .col-group:not(.compact-gutters).mobile-and-tablet--ruled > .col:nth-child(3):before,
      .col-group:not(.compact-gutters).mobile-and-tablet--ruled > .col:nth-child(4):before {
        border-left: 1px solid #D1D2D4;
        content: "";
        display: block;
        margin-left: -1rem;
        position: absolute;
        top: 0;
        bottom: 0; }
    .col-group:not(.compact-gutters).mobile-and-tablet--centered > .col {
      margin-left: auto;
      margin-right: auto; }
      .col-group:not(.compact-gutters).mobile-and-tablet--centered > .col + .col {
        margin-top: 1em; }
    .col-group:not(.compact-gutters).mobile-and-tablet--col-reverse {
      -webkit-box-direction: reverse;
      -webkit-box-orient: vertical;
      -webkit-flex-direction: column-reverse;
      -moz-flex-direction: column-reverse;
      -ms-flex-direction: column-reverse;
      flex-direction: column-reverse; } }
  @media (min-width: 760px) and (max-width: 1279px) {
    .col-group:not(.compact-gutters).tablet-and-desktop--full > .col {
      width: 100%; }
      .col-group:not(.compact-gutters).tablet-and-desktop--full > .col + .col {
        margin-top: 2rem; }
    .col-group:not(.compact-gutters).tablet-and-desktop--1-2 > .col {
      width: calc( (100% * 1 / 2 - 2rem) + 2rem / 2);
      max-width: calc( (100% * 1 / 2 - 2rem) + 2rem / 2); }
      .col-group:not(.compact-gutters).tablet-and-desktop--1-2 > .col:not(:nth-child(2n)) + .col {
        margin-left: 2rem; }
      .col-group:not(.compact-gutters).tablet-and-desktop--1-2 > .col:nth-child(2n) {
        flex: 1 1 0;
        width: auto; }
      .col-group:not(.compact-gutters).tablet-and-desktop--1-2 > .col:first-child, .col-group:not(.compact-gutters).tablet-and-desktop--1-2 > .col:nth-child(2) {
        margin-top: 0; }
      .col-group:not(.compact-gutters).tablet-and-desktop--1-2 > .col:nth-child(n + 3) {
        margin-top: 2rem; }
    .col-group:not(.compact-gutters).tablet-and-desktop--1-3 > .col {
      width: calc( (100% * 1 / 3 - 2rem) + 2rem / 3);
      max-width: calc( (100% * 1 / 3 - 2rem) + 2rem / 3); }
      .col-group:not(.compact-gutters).tablet-and-desktop--1-3 > .col:not(:nth-child(3n)) + .col {
        margin-left: 2rem; }
      .col-group:not(.compact-gutters).tablet-and-desktop--1-3 > .col:nth-child(3n) {
        flex: 1 1 0;
        width: auto; }
      .col-group:not(.compact-gutters).tablet-and-desktop--1-3 > .col:first-child, .col-group:not(.compact-gutters).tablet-and-desktop--1-3 > .col:nth-child(2), .col-group:not(.compact-gutters).tablet-and-desktop--1-3 > .col:nth-child(3) {
        margin-top: 0; }
      .col-group:not(.compact-gutters).tablet-and-desktop--1-3 > .col:nth-child(n + 4) {
        margin-top: 2rem; }
    .col-group:not(.compact-gutters).tablet-and-desktop--1-4 > .col {
      width: calc( (100% * 1 / 4 - 2rem) + 2rem / 4);
      max-width: calc( (100% * 1 / 4 - 2rem) + 2rem / 4); }
      .col-group:not(.compact-gutters).tablet-and-desktop--1-4 > .col:not(:nth-child(4n)) + .col {
        margin-left: 2rem; }
      .col-group:not(.compact-gutters).tablet-and-desktop--1-4 > .col:nth-child(4n) {
        flex: 1 1 0;
        width: auto; }
      .col-group:not(.compact-gutters).tablet-and-desktop--1-4 > .col:first-child, .col-group:not(.compact-gutters).tablet-and-desktop--1-4 > .col:nth-child(2), .col-group:not(.compact-gutters).tablet-and-desktop--1-4 > .col:nth-child(3), .col-group:not(.compact-gutters).tablet-and-desktop--1-4 > .col:nth-child(4) {
        margin-top: 0; }
      .col-group:not(.compact-gutters).tablet-and-desktop--1-4 > .col:nth-child(n + 5) {
        margin-top: 2rem; }
    .col-group:not(.compact-gutters).tablet-and-desktop--1-5 > .col {
      width: calc( (100% * 1 / 5 - 2rem) + 2rem / 5);
      max-width: calc( (100% * 1 / 5 - 2rem) + 2rem / 5); }
      .col-group:not(.compact-gutters).tablet-and-desktop--1-5 > .col:not(:nth-child(5n)) + .col {
        margin-left: 2rem; }
      .col-group:not(.compact-gutters).tablet-and-desktop--1-5 > .col:nth-child(5n) {
        flex: 1 1 0;
        width: auto; }
      .col-group:not(.compact-gutters).tablet-and-desktop--1-5 > .col:first-child, .col-group:not(.compact-gutters).tablet-and-desktop--1-5 > .col:nth-child(2), .col-group:not(.compact-gutters).tablet-and-desktop--1-5 > .col:nth-child(3), .col-group:not(.compact-gutters).tablet-and-desktop--1-5 > .col:nth-child(4), .col-group:not(.compact-gutters).tablet-and-desktop--1-5 > .col:nth-child(5) {
        margin-top: 0; }
      .col-group:not(.compact-gutters).tablet-and-desktop--1-5 > .col:nth-child(n + 6) {
        margin-top: 2rem; }
    .col-group:not(.compact-gutters).tablet-and-desktop--1-3-and-2-3 > .col:nth-child(2n + 1) {
      width: calc( (100% * 1 / 3 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).tablet-and-desktop--1-3-and-2-3 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 2 / 3 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).tablet-and-desktop--1-3-and-2-3 > .col:not(:nth-child(2n)) + .col {
      margin-left: 2rem; }
    .col-group:not(.compact-gutters).tablet-and-desktop--1-3-and-2-3 > .col:first-child, .col-group:not(.compact-gutters).tablet-and-desktop--1-3-and-2-3 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group:not(.compact-gutters).tablet-and-desktop--1-3-and-2-3 > .col:nth-child(n + 3) {
      margin-top: 2rem; }
    .col-group:not(.compact-gutters).tablet-and-desktop--2-3-and-1-3 > .col:nth-child(2n + 1) {
      width: calc( (100% * 2 / 3 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).tablet-and-desktop--2-3-and-1-3 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 1 / 3 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).tablet-and-desktop--2-3-and-1-3 > .col:not(:nth-child(2n)) + .col {
      margin-left: 2rem; }
    .col-group:not(.compact-gutters).tablet-and-desktop--2-3-and-1-3 > .col:first-child, .col-group:not(.compact-gutters).tablet-and-desktop--2-3-and-1-3 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group:not(.compact-gutters).tablet-and-desktop--2-3-and-1-3 > .col:nth-child(n + 3) {
      margin-top: 2rem; }
    .col-group:not(.compact-gutters).tablet-and-desktop--1-4-and-3-4 > .col:nth-child(2n + 1) {
      width: calc( (100% * 1 / 4 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).tablet-and-desktop--1-4-and-3-4 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 3 / 4 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).tablet-and-desktop--1-4-and-3-4 > .col:not(:nth-child(2n)) + .col {
      margin-left: 2rem; }
    .col-group:not(.compact-gutters).tablet-and-desktop--1-4-and-3-4 > .col:first-child, .col-group:not(.compact-gutters).tablet-and-desktop--1-4-and-3-4 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group:not(.compact-gutters).tablet-and-desktop--1-4-and-3-4 > .col:nth-child(n + 3) {
      margin-top: 2rem; }
    .col-group:not(.compact-gutters).tablet-and-desktop--3-4-and-1-4 > .col:nth-child(2n + 1) {
      width: calc( (100% * 3 / 4 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).tablet-and-desktop--3-4-and-1-4 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 1 / 4 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).tablet-and-desktop--3-4-and-1-4 > .col:not(:nth-child(2n)) + .col {
      margin-left: 2rem; }
    .col-group:not(.compact-gutters).tablet-and-desktop--3-4-and-1-4 > .col:first-child, .col-group:not(.compact-gutters).tablet-and-desktop--3-4-and-1-4 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group:not(.compact-gutters).tablet-and-desktop--3-4-and-1-4 > .col:nth-child(n + 3) {
      margin-top: 2rem; }
    .col-group:not(.compact-gutters).tablet-and-desktop--1-4-and-2-4-and-1-4 > .col:nth-child(3n + 1) {
      width: calc( (100% * 1 / 4 - 2rem) + 2rem / 3); }
    .col-group:not(.compact-gutters).tablet-and-desktop--1-4-and-2-4-and-1-4 > .col:nth-child(3n - 1) {
      width: calc( (100% * 2 / 4 - 2rem) + 2rem / 3); }
    .col-group:not(.compact-gutters).tablet-and-desktop--1-4-and-2-4-and-1-4 > .col:nth-child(3n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 1 / 4 - 2rem) + 2rem / 3); }
    .col-group:not(.compact-gutters).tablet-and-desktop--1-4-and-2-4-and-1-4 > .col:not(:nth-child(3n)) + .col {
      margin-left: 2rem; }
    .col-group:not(.compact-gutters).tablet-and-desktop--1-4-and-2-4-and-1-4 > .col:first-child, .col-group:not(.compact-gutters).tablet-and-desktop--1-4-and-2-4-and-1-4 > .col:nth-child(2), .col-group:not(.compact-gutters).tablet-and-desktop--1-4-and-2-4-and-1-4 > .col:nth-child(3) {
      margin-top: 0; }
    .col-group:not(.compact-gutters).tablet-and-desktop--1-4-and-2-4-and-1-4 > .col:nth-child(n + 4) {
      margin-top: 2rem; }
    .col-group:not(.compact-gutters).tablet-and-desktop--2-5-and-3-5 > .col:nth-child(2n + 1) {
      width: calc( (100% * 2 / 5 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).tablet-and-desktop--2-5-and-3-5 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 3 / 5 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).tablet-and-desktop--2-5-and-3-5 > .col:not(:nth-child(2n)) + .col {
      margin-left: 2rem; }
    .col-group:not(.compact-gutters).tablet-and-desktop--2-5-and-3-5 > .col:first-child, .col-group:not(.compact-gutters).tablet-and-desktop--2-5-and-3-5 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group:not(.compact-gutters).tablet-and-desktop--2-5-and-3-5 > .col:nth-child(n + 3) {
      margin-top: 2rem; }
    .col-group:not(.compact-gutters).tablet-and-desktop--3-5-and-2-5 > .col:nth-child(2n + 1) {
      width: calc( (100% * 3 / 5 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).tablet-and-desktop--3-5-and-2-5 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 2 / 5 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).tablet-and-desktop--3-5-and-2-5 > .col:not(:nth-child(2n)) + .col {
      margin-left: 2rem; }
    .col-group:not(.compact-gutters).tablet-and-desktop--3-5-and-2-5 > .col:first-child, .col-group:not(.compact-gutters).tablet-and-desktop--3-5-and-2-5 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group:not(.compact-gutters).tablet-and-desktop--3-5-and-2-5 > .col:nth-child(n + 3) {
      margin-top: 2rem; }
    .col-group:not(.compact-gutters).tablet-and-desktop--ruled {
      position: relative; }
      .col-group:not(.compact-gutters).tablet-and-desktop--ruled > .col:nth-child(2):before,
      .col-group:not(.compact-gutters).tablet-and-desktop--ruled > .col:nth-child(3):before,
      .col-group:not(.compact-gutters).tablet-and-desktop--ruled > .col:nth-child(4):before {
        border-left: 1px solid #D1D2D4;
        content: "";
        display: block;
        margin-left: -1rem;
        position: absolute;
        top: 0;
        bottom: 0; }
    .col-group:not(.compact-gutters).tablet-and-desktop--centered > .col {
      margin-left: auto;
      margin-right: auto; }
      .col-group:not(.compact-gutters).tablet-and-desktop--centered > .col + .col {
        margin-top: 1em; }
    .col-group:not(.compact-gutters).tablet-and-desktop--col-reverse {
      -webkit-box-direction: reverse;
      -webkit-box-orient: vertical;
      -webkit-flex-direction: column-reverse;
      -moz-flex-direction: column-reverse;
      -ms-flex-direction: column-reverse;
      flex-direction: column-reverse; } }
  @media (min-width: 760px) {
    .col-group:not(.compact-gutters).tablet-and-above--full > .col {
      width: 100%; }
      .col-group:not(.compact-gutters).tablet-and-above--full > .col + .col {
        margin-top: 2rem; }
    .col-group:not(.compact-gutters).tablet-and-above--1-2 > .col {
      width: calc( (100% * 1 / 2 - 2rem) + 2rem / 2);
      max-width: calc( (100% * 1 / 2 - 2rem) + 2rem / 2); }
      .col-group:not(.compact-gutters).tablet-and-above--1-2 > .col:not(:nth-child(2n)) + .col {
        margin-left: 2rem; }
      .col-group:not(.compact-gutters).tablet-and-above--1-2 > .col:nth-child(2n) {
        flex: 1 1 0;
        width: auto; }
      .col-group:not(.compact-gutters).tablet-and-above--1-2 > .col:first-child, .col-group:not(.compact-gutters).tablet-and-above--1-2 > .col:nth-child(2) {
        margin-top: 0; }
      .col-group:not(.compact-gutters).tablet-and-above--1-2 > .col:nth-child(n + 3) {
        margin-top: 2rem; }
    .col-group:not(.compact-gutters).tablet-and-above--1-3 > .col {
      width: calc( (100% * 1 / 3 - 2rem) + 2rem / 3);
      max-width: calc( (100% * 1 / 3 - 2rem) + 2rem / 3); }
      .col-group:not(.compact-gutters).tablet-and-above--1-3 > .col:not(:nth-child(3n)) + .col {
        margin-left: 2rem; }
      .col-group:not(.compact-gutters).tablet-and-above--1-3 > .col:nth-child(3n) {
        flex: 1 1 0;
        width: auto; }
      .col-group:not(.compact-gutters).tablet-and-above--1-3 > .col:first-child, .col-group:not(.compact-gutters).tablet-and-above--1-3 > .col:nth-child(2), .col-group:not(.compact-gutters).tablet-and-above--1-3 > .col:nth-child(3) {
        margin-top: 0; }
      .col-group:not(.compact-gutters).tablet-and-above--1-3 > .col:nth-child(n + 4) {
        margin-top: 2rem; }
    .col-group:not(.compact-gutters).tablet-and-above--1-4 > .col {
      width: calc( (100% * 1 / 4 - 2rem) + 2rem / 4);
      max-width: calc( (100% * 1 / 4 - 2rem) + 2rem / 4); }
      .col-group:not(.compact-gutters).tablet-and-above--1-4 > .col:not(:nth-child(4n)) + .col {
        margin-left: 2rem; }
      .col-group:not(.compact-gutters).tablet-and-above--1-4 > .col:nth-child(4n) {
        flex: 1 1 0;
        width: auto; }
      .col-group:not(.compact-gutters).tablet-and-above--1-4 > .col:first-child, .col-group:not(.compact-gutters).tablet-and-above--1-4 > .col:nth-child(2), .col-group:not(.compact-gutters).tablet-and-above--1-4 > .col:nth-child(3), .col-group:not(.compact-gutters).tablet-and-above--1-4 > .col:nth-child(4) {
        margin-top: 0; }
      .col-group:not(.compact-gutters).tablet-and-above--1-4 > .col:nth-child(n + 5) {
        margin-top: 2rem; }
    .col-group:not(.compact-gutters).tablet-and-above--1-5 > .col {
      width: calc( (100% * 1 / 5 - 2rem) + 2rem / 5);
      max-width: calc( (100% * 1 / 5 - 2rem) + 2rem / 5); }
      .col-group:not(.compact-gutters).tablet-and-above--1-5 > .col:not(:nth-child(5n)) + .col {
        margin-left: 2rem; }
      .col-group:not(.compact-gutters).tablet-and-above--1-5 > .col:nth-child(5n) {
        flex: 1 1 0;
        width: auto; }
      .col-group:not(.compact-gutters).tablet-and-above--1-5 > .col:first-child, .col-group:not(.compact-gutters).tablet-and-above--1-5 > .col:nth-child(2), .col-group:not(.compact-gutters).tablet-and-above--1-5 > .col:nth-child(3), .col-group:not(.compact-gutters).tablet-and-above--1-5 > .col:nth-child(4), .col-group:not(.compact-gutters).tablet-and-above--1-5 > .col:nth-child(5) {
        margin-top: 0; }
      .col-group:not(.compact-gutters).tablet-and-above--1-5 > .col:nth-child(n + 6) {
        margin-top: 2rem; }
    .col-group:not(.compact-gutters).tablet-and-above--1-3-and-2-3 > .col:nth-child(2n + 1) {
      width: calc( (100% * 1 / 3 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).tablet-and-above--1-3-and-2-3 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 2 / 3 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).tablet-and-above--1-3-and-2-3 > .col:not(:nth-child(2n)) + .col {
      margin-left: 2rem; }
    .col-group:not(.compact-gutters).tablet-and-above--1-3-and-2-3 > .col:first-child, .col-group:not(.compact-gutters).tablet-and-above--1-3-and-2-3 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group:not(.compact-gutters).tablet-and-above--1-3-and-2-3 > .col:nth-child(n + 3) {
      margin-top: 2rem; }
    .col-group:not(.compact-gutters).tablet-and-above--2-3-and-1-3 > .col:nth-child(2n + 1) {
      width: calc( (100% * 2 / 3 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).tablet-and-above--2-3-and-1-3 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 1 / 3 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).tablet-and-above--2-3-and-1-3 > .col:not(:nth-child(2n)) + .col {
      margin-left: 2rem; }
    .col-group:not(.compact-gutters).tablet-and-above--2-3-and-1-3 > .col:first-child, .col-group:not(.compact-gutters).tablet-and-above--2-3-and-1-3 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group:not(.compact-gutters).tablet-and-above--2-3-and-1-3 > .col:nth-child(n + 3) {
      margin-top: 2rem; }
    .col-group:not(.compact-gutters).tablet-and-above--1-4-and-3-4 > .col:nth-child(2n + 1) {
      width: calc( (100% * 1 / 4 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).tablet-and-above--1-4-and-3-4 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 3 / 4 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).tablet-and-above--1-4-and-3-4 > .col:not(:nth-child(2n)) + .col {
      margin-left: 2rem; }
    .col-group:not(.compact-gutters).tablet-and-above--1-4-and-3-4 > .col:first-child, .col-group:not(.compact-gutters).tablet-and-above--1-4-and-3-4 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group:not(.compact-gutters).tablet-and-above--1-4-and-3-4 > .col:nth-child(n + 3) {
      margin-top: 2rem; }
    .col-group:not(.compact-gutters).tablet-and-above--3-4-and-1-4 > .col:nth-child(2n + 1) {
      width: calc( (100% * 3 / 4 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).tablet-and-above--3-4-and-1-4 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 1 / 4 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).tablet-and-above--3-4-and-1-4 > .col:not(:nth-child(2n)) + .col {
      margin-left: 2rem; }
    .col-group:not(.compact-gutters).tablet-and-above--3-4-and-1-4 > .col:first-child, .col-group:not(.compact-gutters).tablet-and-above--3-4-and-1-4 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group:not(.compact-gutters).tablet-and-above--3-4-and-1-4 > .col:nth-child(n + 3) {
      margin-top: 2rem; }
    .col-group:not(.compact-gutters).tablet-and-above--1-4-and-2-4-and-1-4 > .col:nth-child(3n + 1) {
      width: calc( (100% * 1 / 4 - 2rem) + 2rem / 3); }
    .col-group:not(.compact-gutters).tablet-and-above--1-4-and-2-4-and-1-4 > .col:nth-child(3n - 1) {
      width: calc( (100% * 2 / 4 - 2rem) + 2rem / 3); }
    .col-group:not(.compact-gutters).tablet-and-above--1-4-and-2-4-and-1-4 > .col:nth-child(3n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 1 / 4 - 2rem) + 2rem / 3); }
    .col-group:not(.compact-gutters).tablet-and-above--1-4-and-2-4-and-1-4 > .col:not(:nth-child(3n)) + .col {
      margin-left: 2rem; }
    .col-group:not(.compact-gutters).tablet-and-above--1-4-and-2-4-and-1-4 > .col:first-child, .col-group:not(.compact-gutters).tablet-and-above--1-4-and-2-4-and-1-4 > .col:nth-child(2), .col-group:not(.compact-gutters).tablet-and-above--1-4-and-2-4-and-1-4 > .col:nth-child(3) {
      margin-top: 0; }
    .col-group:not(.compact-gutters).tablet-and-above--1-4-and-2-4-and-1-4 > .col:nth-child(n + 4) {
      margin-top: 2rem; }
    .col-group:not(.compact-gutters).tablet-and-above--2-5-and-3-5 > .col:nth-child(2n + 1) {
      width: calc( (100% * 2 / 5 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).tablet-and-above--2-5-and-3-5 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 3 / 5 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).tablet-and-above--2-5-and-3-5 > .col:not(:nth-child(2n)) + .col {
      margin-left: 2rem; }
    .col-group:not(.compact-gutters).tablet-and-above--2-5-and-3-5 > .col:first-child, .col-group:not(.compact-gutters).tablet-and-above--2-5-and-3-5 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group:not(.compact-gutters).tablet-and-above--2-5-and-3-5 > .col:nth-child(n + 3) {
      margin-top: 2rem; }
    .col-group:not(.compact-gutters).tablet-and-above--3-5-and-2-5 > .col:nth-child(2n + 1) {
      width: calc( (100% * 3 / 5 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).tablet-and-above--3-5-and-2-5 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 2 / 5 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).tablet-and-above--3-5-and-2-5 > .col:not(:nth-child(2n)) + .col {
      margin-left: 2rem; }
    .col-group:not(.compact-gutters).tablet-and-above--3-5-and-2-5 > .col:first-child, .col-group:not(.compact-gutters).tablet-and-above--3-5-and-2-5 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group:not(.compact-gutters).tablet-and-above--3-5-and-2-5 > .col:nth-child(n + 3) {
      margin-top: 2rem; }
    .col-group:not(.compact-gutters).tablet-and-above--ruled {
      position: relative; }
      .col-group:not(.compact-gutters).tablet-and-above--ruled > .col:nth-child(2):before,
      .col-group:not(.compact-gutters).tablet-and-above--ruled > .col:nth-child(3):before,
      .col-group:not(.compact-gutters).tablet-and-above--ruled > .col:nth-child(4):before {
        border-left: 1px solid #D1D2D4;
        content: "";
        display: block;
        margin-left: -1rem;
        position: absolute;
        top: 0;
        bottom: 0; }
    .col-group:not(.compact-gutters).tablet-and-above--centered > .col {
      margin-left: auto;
      margin-right: auto; }
      .col-group:not(.compact-gutters).tablet-and-above--centered > .col + .col {
        margin-top: 1em; }
    .col-group:not(.compact-gutters).tablet-and-above--col-reverse {
      -webkit-box-direction: reverse;
      -webkit-box-orient: vertical;
      -webkit-flex-direction: column-reverse;
      -moz-flex-direction: column-reverse;
      -ms-flex-direction: column-reverse;
      flex-direction: column-reverse; } }
  @media (min-width: 960px) {
    .col-group:not(.compact-gutters).desktop-and-above--full > .col {
      width: 100%; }
      .col-group:not(.compact-gutters).desktop-and-above--full > .col + .col {
        margin-top: 2rem; }
    .col-group:not(.compact-gutters).desktop-and-above--1-2 > .col {
      width: calc( (100% * 1 / 2 - 2rem) + 2rem / 2);
      max-width: calc( (100% * 1 / 2 - 2rem) + 2rem / 2); }
      .col-group:not(.compact-gutters).desktop-and-above--1-2 > .col:not(:nth-child(2n)) + .col {
        margin-left: 2rem; }
      .col-group:not(.compact-gutters).desktop-and-above--1-2 > .col:nth-child(2n) {
        flex: 1 1 0;
        width: auto; }
      .col-group:not(.compact-gutters).desktop-and-above--1-2 > .col:first-child, .col-group:not(.compact-gutters).desktop-and-above--1-2 > .col:nth-child(2) {
        margin-top: 0; }
      .col-group:not(.compact-gutters).desktop-and-above--1-2 > .col:nth-child(n + 3) {
        margin-top: 2rem; }
    .col-group:not(.compact-gutters).desktop-and-above--1-3 > .col {
      width: calc( (100% * 1 / 3 - 2rem) + 2rem / 3);
      max-width: calc( (100% * 1 / 3 - 2rem) + 2rem / 3); }
      .col-group:not(.compact-gutters).desktop-and-above--1-3 > .col:not(:nth-child(3n)) + .col {
        margin-left: 2rem; }
      .col-group:not(.compact-gutters).desktop-and-above--1-3 > .col:nth-child(3n) {
        flex: 1 1 0;
        width: auto; }
      .col-group:not(.compact-gutters).desktop-and-above--1-3 > .col:first-child, .col-group:not(.compact-gutters).desktop-and-above--1-3 > .col:nth-child(2), .col-group:not(.compact-gutters).desktop-and-above--1-3 > .col:nth-child(3) {
        margin-top: 0; }
      .col-group:not(.compact-gutters).desktop-and-above--1-3 > .col:nth-child(n + 4) {
        margin-top: 2rem; }
    .col-group:not(.compact-gutters).desktop-and-above--1-4 > .col {
      width: calc( (100% * 1 / 4 - 2rem) + 2rem / 4);
      max-width: calc( (100% * 1 / 4 - 2rem) + 2rem / 4); }
      .col-group:not(.compact-gutters).desktop-and-above--1-4 > .col:not(:nth-child(4n)) + .col {
        margin-left: 2rem; }
      .col-group:not(.compact-gutters).desktop-and-above--1-4 > .col:nth-child(4n) {
        flex: 1 1 0;
        width: auto; }
      .col-group:not(.compact-gutters).desktop-and-above--1-4 > .col:first-child, .col-group:not(.compact-gutters).desktop-and-above--1-4 > .col:nth-child(2), .col-group:not(.compact-gutters).desktop-and-above--1-4 > .col:nth-child(3), .col-group:not(.compact-gutters).desktop-and-above--1-4 > .col:nth-child(4) {
        margin-top: 0; }
      .col-group:not(.compact-gutters).desktop-and-above--1-4 > .col:nth-child(n + 5) {
        margin-top: 2rem; }
    .col-group:not(.compact-gutters).desktop-and-above--1-5 > .col {
      width: calc( (100% * 1 / 5 - 2rem) + 2rem / 5);
      max-width: calc( (100% * 1 / 5 - 2rem) + 2rem / 5); }
      .col-group:not(.compact-gutters).desktop-and-above--1-5 > .col:not(:nth-child(5n)) + .col {
        margin-left: 2rem; }
      .col-group:not(.compact-gutters).desktop-and-above--1-5 > .col:nth-child(5n) {
        flex: 1 1 0;
        width: auto; }
      .col-group:not(.compact-gutters).desktop-and-above--1-5 > .col:first-child, .col-group:not(.compact-gutters).desktop-and-above--1-5 > .col:nth-child(2), .col-group:not(.compact-gutters).desktop-and-above--1-5 > .col:nth-child(3), .col-group:not(.compact-gutters).desktop-and-above--1-5 > .col:nth-child(4), .col-group:not(.compact-gutters).desktop-and-above--1-5 > .col:nth-child(5) {
        margin-top: 0; }
      .col-group:not(.compact-gutters).desktop-and-above--1-5 > .col:nth-child(n + 6) {
        margin-top: 2rem; }
    .col-group:not(.compact-gutters).desktop-and-above--1-3-and-2-3 > .col:nth-child(2n + 1) {
      width: calc( (100% * 1 / 3 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).desktop-and-above--1-3-and-2-3 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 2 / 3 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).desktop-and-above--1-3-and-2-3 > .col:not(:nth-child(2n)) + .col {
      margin-left: 2rem; }
    .col-group:not(.compact-gutters).desktop-and-above--1-3-and-2-3 > .col:first-child, .col-group:not(.compact-gutters).desktop-and-above--1-3-and-2-3 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group:not(.compact-gutters).desktop-and-above--1-3-and-2-3 > .col:nth-child(n + 3) {
      margin-top: 2rem; }
    .col-group:not(.compact-gutters).desktop-and-above--2-3-and-1-3 > .col:nth-child(2n + 1) {
      width: calc( (100% * 2 / 3 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).desktop-and-above--2-3-and-1-3 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 1 / 3 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).desktop-and-above--2-3-and-1-3 > .col:not(:nth-child(2n)) + .col {
      margin-left: 2rem; }
    .col-group:not(.compact-gutters).desktop-and-above--2-3-and-1-3 > .col:first-child, .col-group:not(.compact-gutters).desktop-and-above--2-3-and-1-3 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group:not(.compact-gutters).desktop-and-above--2-3-and-1-3 > .col:nth-child(n + 3) {
      margin-top: 2rem; }
    .col-group:not(.compact-gutters).desktop-and-above--1-4-and-3-4 > .col:nth-child(2n + 1) {
      width: calc( (100% * 1 / 4 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).desktop-and-above--1-4-and-3-4 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 3 / 4 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).desktop-and-above--1-4-and-3-4 > .col:not(:nth-child(2n)) + .col {
      margin-left: 2rem; }
    .col-group:not(.compact-gutters).desktop-and-above--1-4-and-3-4 > .col:first-child, .col-group:not(.compact-gutters).desktop-and-above--1-4-and-3-4 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group:not(.compact-gutters).desktop-and-above--1-4-and-3-4 > .col:nth-child(n + 3) {
      margin-top: 2rem; }
    .col-group:not(.compact-gutters).desktop-and-above--3-4-and-1-4 > .col:nth-child(2n + 1) {
      width: calc( (100% * 3 / 4 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).desktop-and-above--3-4-and-1-4 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 1 / 4 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).desktop-and-above--3-4-and-1-4 > .col:not(:nth-child(2n)) + .col {
      margin-left: 2rem; }
    .col-group:not(.compact-gutters).desktop-and-above--3-4-and-1-4 > .col:first-child, .col-group:not(.compact-gutters).desktop-and-above--3-4-and-1-4 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group:not(.compact-gutters).desktop-and-above--3-4-and-1-4 > .col:nth-child(n + 3) {
      margin-top: 2rem; }
    .col-group:not(.compact-gutters).desktop-and-above--1-4-and-2-4-and-1-4 > .col:nth-child(3n + 1) {
      width: calc( (100% * 1 / 4 - 2rem) + 2rem / 3); }
    .col-group:not(.compact-gutters).desktop-and-above--1-4-and-2-4-and-1-4 > .col:nth-child(3n - 1) {
      width: calc( (100% * 2 / 4 - 2rem) + 2rem / 3); }
    .col-group:not(.compact-gutters).desktop-and-above--1-4-and-2-4-and-1-4 > .col:nth-child(3n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 1 / 4 - 2rem) + 2rem / 3); }
    .col-group:not(.compact-gutters).desktop-and-above--1-4-and-2-4-and-1-4 > .col:not(:nth-child(3n)) + .col {
      margin-left: 2rem; }
    .col-group:not(.compact-gutters).desktop-and-above--1-4-and-2-4-and-1-4 > .col:first-child, .col-group:not(.compact-gutters).desktop-and-above--1-4-and-2-4-and-1-4 > .col:nth-child(2), .col-group:not(.compact-gutters).desktop-and-above--1-4-and-2-4-and-1-4 > .col:nth-child(3) {
      margin-top: 0; }
    .col-group:not(.compact-gutters).desktop-and-above--1-4-and-2-4-and-1-4 > .col:nth-child(n + 4) {
      margin-top: 2rem; }
    .col-group:not(.compact-gutters).desktop-and-above--2-5-and-3-5 > .col:nth-child(2n + 1) {
      width: calc( (100% * 2 / 5 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).desktop-and-above--2-5-and-3-5 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 3 / 5 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).desktop-and-above--2-5-and-3-5 > .col:not(:nth-child(2n)) + .col {
      margin-left: 2rem; }
    .col-group:not(.compact-gutters).desktop-and-above--2-5-and-3-5 > .col:first-child, .col-group:not(.compact-gutters).desktop-and-above--2-5-and-3-5 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group:not(.compact-gutters).desktop-and-above--2-5-and-3-5 > .col:nth-child(n + 3) {
      margin-top: 2rem; }
    .col-group:not(.compact-gutters).desktop-and-above--3-5-and-2-5 > .col:nth-child(2n + 1) {
      width: calc( (100% * 3 / 5 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).desktop-and-above--3-5-and-2-5 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 2 / 5 - 2rem) + 2rem / 2); }
    .col-group:not(.compact-gutters).desktop-and-above--3-5-and-2-5 > .col:not(:nth-child(2n)) + .col {
      margin-left: 2rem; }
    .col-group:not(.compact-gutters).desktop-and-above--3-5-and-2-5 > .col:first-child, .col-group:not(.compact-gutters).desktop-and-above--3-5-and-2-5 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group:not(.compact-gutters).desktop-and-above--3-5-and-2-5 > .col:nth-child(n + 3) {
      margin-top: 2rem; }
    .col-group:not(.compact-gutters).desktop-and-above--ruled {
      position: relative; }
      .col-group:not(.compact-gutters).desktop-and-above--ruled > .col:nth-child(2):before,
      .col-group:not(.compact-gutters).desktop-and-above--ruled > .col:nth-child(3):before,
      .col-group:not(.compact-gutters).desktop-and-above--ruled > .col:nth-child(4):before {
        border-left: 1px solid #D1D2D4;
        content: "";
        display: block;
        margin-left: -1rem;
        position: absolute;
        top: 0;
        bottom: 0; }
    .col-group:not(.compact-gutters).desktop-and-above--centered > .col {
      margin-left: auto;
      margin-right: auto; }
      .col-group:not(.compact-gutters).desktop-and-above--centered > .col + .col {
        margin-top: 1em; }
    .col-group:not(.compact-gutters).desktop-and-above--col-reverse {
      -webkit-box-direction: reverse;
      -webkit-box-orient: vertical;
      -webkit-flex-direction: column-reverse;
      -moz-flex-direction: column-reverse;
      -ms-flex-direction: column-reverse;
      flex-direction: column-reverse; } }
  .col-group.compact-gutters.all--full > .col {
    width: 100%; }
    .col-group.compact-gutters.all--full > .col + .col {
      margin-top: 1rem; }
  .col-group.compact-gutters.all--1-2 > .col {
    width: calc( (100% * 1 / 2 - 1rem) + 1rem / 2);
    max-width: calc( (100% * 1 / 2 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.all--1-2 > .col:not(:nth-child(2n)) + .col {
      margin-left: 1rem; }
    .col-group.compact-gutters.all--1-2 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto; }
    .col-group.compact-gutters.all--1-2 > .col:first-child, .col-group.compact-gutters.all--1-2 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group.compact-gutters.all--1-2 > .col:nth-child(n + 3) {
      margin-top: 1rem; }
  .col-group.compact-gutters.all--1-3 > .col {
    width: calc( (100% * 1 / 3 - 1rem) + 1rem / 3);
    max-width: calc( (100% * 1 / 3 - 1rem) + 1rem / 3); }
    .col-group.compact-gutters.all--1-3 > .col:not(:nth-child(3n)) + .col {
      margin-left: 1rem; }
    .col-group.compact-gutters.all--1-3 > .col:nth-child(3n) {
      flex: 1 1 0;
      width: auto; }
    .col-group.compact-gutters.all--1-3 > .col:first-child, .col-group.compact-gutters.all--1-3 > .col:nth-child(2), .col-group.compact-gutters.all--1-3 > .col:nth-child(3) {
      margin-top: 0; }
    .col-group.compact-gutters.all--1-3 > .col:nth-child(n + 4) {
      margin-top: 1rem; }
  .col-group.compact-gutters.all--1-4 > .col {
    width: calc( (100% * 1 / 4 - 1rem) + 1rem / 4);
    max-width: calc( (100% * 1 / 4 - 1rem) + 1rem / 4); }
    .col-group.compact-gutters.all--1-4 > .col:not(:nth-child(4n)) + .col {
      margin-left: 1rem; }
    .col-group.compact-gutters.all--1-4 > .col:nth-child(4n) {
      flex: 1 1 0;
      width: auto; }
    .col-group.compact-gutters.all--1-4 > .col:first-child, .col-group.compact-gutters.all--1-4 > .col:nth-child(2), .col-group.compact-gutters.all--1-4 > .col:nth-child(3), .col-group.compact-gutters.all--1-4 > .col:nth-child(4) {
      margin-top: 0; }
    .col-group.compact-gutters.all--1-4 > .col:nth-child(n + 5) {
      margin-top: 1rem; }
  .col-group.compact-gutters.all--1-5 > .col {
    width: calc( (100% * 1 / 5 - 1rem) + 1rem / 5);
    max-width: calc( (100% * 1 / 5 - 1rem) + 1rem / 5); }
    .col-group.compact-gutters.all--1-5 > .col:not(:nth-child(5n)) + .col {
      margin-left: 1rem; }
    .col-group.compact-gutters.all--1-5 > .col:nth-child(5n) {
      flex: 1 1 0;
      width: auto; }
    .col-group.compact-gutters.all--1-5 > .col:first-child, .col-group.compact-gutters.all--1-5 > .col:nth-child(2), .col-group.compact-gutters.all--1-5 > .col:nth-child(3), .col-group.compact-gutters.all--1-5 > .col:nth-child(4), .col-group.compact-gutters.all--1-5 > .col:nth-child(5) {
      margin-top: 0; }
    .col-group.compact-gutters.all--1-5 > .col:nth-child(n + 6) {
      margin-top: 1rem; }
  .col-group.compact-gutters.all--1-3-and-2-3 > .col:nth-child(2n + 1) {
    width: calc( (100% * 1 / 3 - 1rem) + 1rem / 2); }
  .col-group.compact-gutters.all--1-3-and-2-3 > .col:nth-child(2n) {
    flex: 1 1 0;
    width: auto;
    max-width: calc( (100% * 2 / 3 - 1rem) + 1rem / 2); }
  .col-group.compact-gutters.all--1-3-and-2-3 > .col:not(:nth-child(2n)) + .col {
    margin-left: 1rem; }
  .col-group.compact-gutters.all--1-3-and-2-3 > .col:first-child, .col-group.compact-gutters.all--1-3-and-2-3 > .col:nth-child(2) {
    margin-top: 0; }
  .col-group.compact-gutters.all--1-3-and-2-3 > .col:nth-child(n + 3) {
    margin-top: 1rem; }
  .col-group.compact-gutters.all--2-3-and-1-3 > .col:nth-child(2n + 1) {
    width: calc( (100% * 2 / 3 - 1rem) + 1rem / 2); }
  .col-group.compact-gutters.all--2-3-and-1-3 > .col:nth-child(2n) {
    flex: 1 1 0;
    width: auto;
    max-width: calc( (100% * 1 / 3 - 1rem) + 1rem / 2); }
  .col-group.compact-gutters.all--2-3-and-1-3 > .col:not(:nth-child(2n)) + .col {
    margin-left: 1rem; }
  .col-group.compact-gutters.all--2-3-and-1-3 > .col:first-child, .col-group.compact-gutters.all--2-3-and-1-3 > .col:nth-child(2) {
    margin-top: 0; }
  .col-group.compact-gutters.all--2-3-and-1-3 > .col:nth-child(n + 3) {
    margin-top: 1rem; }
  .col-group.compact-gutters.all--1-4-and-3-4 > .col:nth-child(2n + 1) {
    width: calc( (100% * 1 / 4 - 1rem) + 1rem / 2); }
  .col-group.compact-gutters.all--1-4-and-3-4 > .col:nth-child(2n) {
    flex: 1 1 0;
    width: auto;
    max-width: calc( (100% * 3 / 4 - 1rem) + 1rem / 2); }
  .col-group.compact-gutters.all--1-4-and-3-4 > .col:not(:nth-child(2n)) + .col {
    margin-left: 1rem; }
  .col-group.compact-gutters.all--1-4-and-3-4 > .col:first-child, .col-group.compact-gutters.all--1-4-and-3-4 > .col:nth-child(2) {
    margin-top: 0; }
  .col-group.compact-gutters.all--1-4-and-3-4 > .col:nth-child(n + 3) {
    margin-top: 1rem; }
  .col-group.compact-gutters.all--3-4-and-1-4 > .col:nth-child(2n + 1) {
    width: calc( (100% * 3 / 4 - 1rem) + 1rem / 2); }
  .col-group.compact-gutters.all--3-4-and-1-4 > .col:nth-child(2n) {
    flex: 1 1 0;
    width: auto;
    max-width: calc( (100% * 1 / 4 - 1rem) + 1rem / 2); }
  .col-group.compact-gutters.all--3-4-and-1-4 > .col:not(:nth-child(2n)) + .col {
    margin-left: 1rem; }
  .col-group.compact-gutters.all--3-4-and-1-4 > .col:first-child, .col-group.compact-gutters.all--3-4-and-1-4 > .col:nth-child(2) {
    margin-top: 0; }
  .col-group.compact-gutters.all--3-4-and-1-4 > .col:nth-child(n + 3) {
    margin-top: 1rem; }
  .col-group.compact-gutters.all--1-4-and-2-4-and-1-4 > .col:nth-child(3n + 1) {
    width: calc( (100% * 1 / 4 - 1rem) + 1rem / 3); }
  .col-group.compact-gutters.all--1-4-and-2-4-and-1-4 > .col:nth-child(3n - 1) {
    width: calc( (100% * 2 / 4 - 1rem) + 1rem / 3); }
  .col-group.compact-gutters.all--1-4-and-2-4-and-1-4 > .col:nth-child(3n) {
    flex: 1 1 0;
    width: auto;
    max-width: calc( (100% * 1 / 4 - 1rem) + 1rem / 3); }
  .col-group.compact-gutters.all--1-4-and-2-4-and-1-4 > .col:not(:nth-child(3n)) + .col {
    margin-left: 1rem; }
  .col-group.compact-gutters.all--1-4-and-2-4-and-1-4 > .col:first-child, .col-group.compact-gutters.all--1-4-and-2-4-and-1-4 > .col:nth-child(2), .col-group.compact-gutters.all--1-4-and-2-4-and-1-4 > .col:nth-child(3) {
    margin-top: 0; }
  .col-group.compact-gutters.all--1-4-and-2-4-and-1-4 > .col:nth-child(n + 4) {
    margin-top: 1rem; }
  .col-group.compact-gutters.all--2-5-and-3-5 > .col:nth-child(2n + 1) {
    width: calc( (100% * 2 / 5 - 1rem) + 1rem / 2); }
  .col-group.compact-gutters.all--2-5-and-3-5 > .col:nth-child(2n) {
    flex: 1 1 0;
    width: auto;
    max-width: calc( (100% * 3 / 5 - 1rem) + 1rem / 2); }
  .col-group.compact-gutters.all--2-5-and-3-5 > .col:not(:nth-child(2n)) + .col {
    margin-left: 1rem; }
  .col-group.compact-gutters.all--2-5-and-3-5 > .col:first-child, .col-group.compact-gutters.all--2-5-and-3-5 > .col:nth-child(2) {
    margin-top: 0; }
  .col-group.compact-gutters.all--2-5-and-3-5 > .col:nth-child(n + 3) {
    margin-top: 1rem; }
  .col-group.compact-gutters.all--3-5-and-2-5 > .col:nth-child(2n + 1) {
    width: calc( (100% * 3 / 5 - 1rem) + 1rem / 2); }
  .col-group.compact-gutters.all--3-5-and-2-5 > .col:nth-child(2n) {
    flex: 1 1 0;
    width: auto;
    max-width: calc( (100% * 2 / 5 - 1rem) + 1rem / 2); }
  .col-group.compact-gutters.all--3-5-and-2-5 > .col:not(:nth-child(2n)) + .col {
    margin-left: 1rem; }
  .col-group.compact-gutters.all--3-5-and-2-5 > .col:first-child, .col-group.compact-gutters.all--3-5-and-2-5 > .col:nth-child(2) {
    margin-top: 0; }
  .col-group.compact-gutters.all--3-5-and-2-5 > .col:nth-child(n + 3) {
    margin-top: 1rem; }
  .col-group.compact-gutters.all--ruled {
    position: relative; }
    .col-group.compact-gutters.all--ruled > .col:nth-child(2):before,
    .col-group.compact-gutters.all--ruled > .col:nth-child(3):before,
    .col-group.compact-gutters.all--ruled > .col:nth-child(4):before {
      border-left: 1px solid #D1D2D4;
      content: "";
      display: block;
      margin-left: -0.5rem;
      position: absolute;
      top: 0;
      bottom: 0; }
  .col-group.compact-gutters.all--centered > .col {
    margin-left: auto;
    margin-right: auto; }
    .col-group.compact-gutters.all--centered > .col + .col {
      margin-top: 1em; }
  .col-group.compact-gutters.all--col-reverse {
    -webkit-box-direction: reverse;
    -webkit-box-orient: vertical;
    -webkit-flex-direction: column-reverse;
    -moz-flex-direction: column-reverse;
    -ms-flex-direction: column-reverse;
    flex-direction: column-reverse; }
  @media (max-width: 759px) {
    .col-group.compact-gutters.mobile--full > .col {
      width: 100%; }
      .col-group.compact-gutters.mobile--full > .col + .col {
        margin-top: 1rem; }
    .col-group.compact-gutters.mobile--1-2 > .col {
      width: calc( (100% * 1 / 2 - 1rem) + 1rem / 2);
      max-width: calc( (100% * 1 / 2 - 1rem) + 1rem / 2); }
      .col-group.compact-gutters.mobile--1-2 > .col:not(:nth-child(2n)) + .col {
        margin-left: 1rem; }
      .col-group.compact-gutters.mobile--1-2 > .col:nth-child(2n) {
        flex: 1 1 0;
        width: auto; }
      .col-group.compact-gutters.mobile--1-2 > .col:first-child, .col-group.compact-gutters.mobile--1-2 > .col:nth-child(2) {
        margin-top: 0; }
      .col-group.compact-gutters.mobile--1-2 > .col:nth-child(n + 3) {
        margin-top: 1rem; }
    .col-group.compact-gutters.mobile--1-3 > .col {
      width: calc( (100% * 1 / 3 - 1rem) + 1rem / 3);
      max-width: calc( (100% * 1 / 3 - 1rem) + 1rem / 3); }
      .col-group.compact-gutters.mobile--1-3 > .col:not(:nth-child(3n)) + .col {
        margin-left: 1rem; }
      .col-group.compact-gutters.mobile--1-3 > .col:nth-child(3n) {
        flex: 1 1 0;
        width: auto; }
      .col-group.compact-gutters.mobile--1-3 > .col:first-child, .col-group.compact-gutters.mobile--1-3 > .col:nth-child(2), .col-group.compact-gutters.mobile--1-3 > .col:nth-child(3) {
        margin-top: 0; }
      .col-group.compact-gutters.mobile--1-3 > .col:nth-child(n + 4) {
        margin-top: 1rem; }
    .col-group.compact-gutters.mobile--1-4 > .col {
      width: calc( (100% * 1 / 4 - 1rem) + 1rem / 4);
      max-width: calc( (100% * 1 / 4 - 1rem) + 1rem / 4); }
      .col-group.compact-gutters.mobile--1-4 > .col:not(:nth-child(4n)) + .col {
        margin-left: 1rem; }
      .col-group.compact-gutters.mobile--1-4 > .col:nth-child(4n) {
        flex: 1 1 0;
        width: auto; }
      .col-group.compact-gutters.mobile--1-4 > .col:first-child, .col-group.compact-gutters.mobile--1-4 > .col:nth-child(2), .col-group.compact-gutters.mobile--1-4 > .col:nth-child(3), .col-group.compact-gutters.mobile--1-4 > .col:nth-child(4) {
        margin-top: 0; }
      .col-group.compact-gutters.mobile--1-4 > .col:nth-child(n + 5) {
        margin-top: 1rem; }
    .col-group.compact-gutters.mobile--1-5 > .col {
      width: calc( (100% * 1 / 5 - 1rem) + 1rem / 5);
      max-width: calc( (100% * 1 / 5 - 1rem) + 1rem / 5); }
      .col-group.compact-gutters.mobile--1-5 > .col:not(:nth-child(5n)) + .col {
        margin-left: 1rem; }
      .col-group.compact-gutters.mobile--1-5 > .col:nth-child(5n) {
        flex: 1 1 0;
        width: auto; }
      .col-group.compact-gutters.mobile--1-5 > .col:first-child, .col-group.compact-gutters.mobile--1-5 > .col:nth-child(2), .col-group.compact-gutters.mobile--1-5 > .col:nth-child(3), .col-group.compact-gutters.mobile--1-5 > .col:nth-child(4), .col-group.compact-gutters.mobile--1-5 > .col:nth-child(5) {
        margin-top: 0; }
      .col-group.compact-gutters.mobile--1-5 > .col:nth-child(n + 6) {
        margin-top: 1rem; }
    .col-group.compact-gutters.mobile--1-3-and-2-3 > .col:nth-child(2n + 1) {
      width: calc( (100% * 1 / 3 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.mobile--1-3-and-2-3 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 2 / 3 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.mobile--1-3-and-2-3 > .col:not(:nth-child(2n)) + .col {
      margin-left: 1rem; }
    .col-group.compact-gutters.mobile--1-3-and-2-3 > .col:first-child, .col-group.compact-gutters.mobile--1-3-and-2-3 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group.compact-gutters.mobile--1-3-and-2-3 > .col:nth-child(n + 3) {
      margin-top: 1rem; }
    .col-group.compact-gutters.mobile--2-3-and-1-3 > .col:nth-child(2n + 1) {
      width: calc( (100% * 2 / 3 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.mobile--2-3-and-1-3 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 1 / 3 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.mobile--2-3-and-1-3 > .col:not(:nth-child(2n)) + .col {
      margin-left: 1rem; }
    .col-group.compact-gutters.mobile--2-3-and-1-3 > .col:first-child, .col-group.compact-gutters.mobile--2-3-and-1-3 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group.compact-gutters.mobile--2-3-and-1-3 > .col:nth-child(n + 3) {
      margin-top: 1rem; }
    .col-group.compact-gutters.mobile--1-4-and-3-4 > .col:nth-child(2n + 1) {
      width: calc( (100% * 1 / 4 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.mobile--1-4-and-3-4 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 3 / 4 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.mobile--1-4-and-3-4 > .col:not(:nth-child(2n)) + .col {
      margin-left: 1rem; }
    .col-group.compact-gutters.mobile--1-4-and-3-4 > .col:first-child, .col-group.compact-gutters.mobile--1-4-and-3-4 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group.compact-gutters.mobile--1-4-and-3-4 > .col:nth-child(n + 3) {
      margin-top: 1rem; }
    .col-group.compact-gutters.mobile--3-4-and-1-4 > .col:nth-child(2n + 1) {
      width: calc( (100% * 3 / 4 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.mobile--3-4-and-1-4 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 1 / 4 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.mobile--3-4-and-1-4 > .col:not(:nth-child(2n)) + .col {
      margin-left: 1rem; }
    .col-group.compact-gutters.mobile--3-4-and-1-4 > .col:first-child, .col-group.compact-gutters.mobile--3-4-and-1-4 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group.compact-gutters.mobile--3-4-and-1-4 > .col:nth-child(n + 3) {
      margin-top: 1rem; }
    .col-group.compact-gutters.mobile--1-4-and-2-4-and-1-4 > .col:nth-child(3n + 1) {
      width: calc( (100% * 1 / 4 - 1rem) + 1rem / 3); }
    .col-group.compact-gutters.mobile--1-4-and-2-4-and-1-4 > .col:nth-child(3n - 1) {
      width: calc( (100% * 2 / 4 - 1rem) + 1rem / 3); }
    .col-group.compact-gutters.mobile--1-4-and-2-4-and-1-4 > .col:nth-child(3n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 1 / 4 - 1rem) + 1rem / 3); }
    .col-group.compact-gutters.mobile--1-4-and-2-4-and-1-4 > .col:not(:nth-child(3n)) + .col {
      margin-left: 1rem; }
    .col-group.compact-gutters.mobile--1-4-and-2-4-and-1-4 > .col:first-child, .col-group.compact-gutters.mobile--1-4-and-2-4-and-1-4 > .col:nth-child(2), .col-group.compact-gutters.mobile--1-4-and-2-4-and-1-4 > .col:nth-child(3) {
      margin-top: 0; }
    .col-group.compact-gutters.mobile--1-4-and-2-4-and-1-4 > .col:nth-child(n + 4) {
      margin-top: 1rem; }
    .col-group.compact-gutters.mobile--2-5-and-3-5 > .col:nth-child(2n + 1) {
      width: calc( (100% * 2 / 5 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.mobile--2-5-and-3-5 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 3 / 5 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.mobile--2-5-and-3-5 > .col:not(:nth-child(2n)) + .col {
      margin-left: 1rem; }
    .col-group.compact-gutters.mobile--2-5-and-3-5 > .col:first-child, .col-group.compact-gutters.mobile--2-5-and-3-5 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group.compact-gutters.mobile--2-5-and-3-5 > .col:nth-child(n + 3) {
      margin-top: 1rem; }
    .col-group.compact-gutters.mobile--3-5-and-2-5 > .col:nth-child(2n + 1) {
      width: calc( (100% * 3 / 5 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.mobile--3-5-and-2-5 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 2 / 5 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.mobile--3-5-and-2-5 > .col:not(:nth-child(2n)) + .col {
      margin-left: 1rem; }
    .col-group.compact-gutters.mobile--3-5-and-2-5 > .col:first-child, .col-group.compact-gutters.mobile--3-5-and-2-5 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group.compact-gutters.mobile--3-5-and-2-5 > .col:nth-child(n + 3) {
      margin-top: 1rem; }
    .col-group.compact-gutters.mobile--ruled {
      position: relative; }
      .col-group.compact-gutters.mobile--ruled > .col:nth-child(2):before,
      .col-group.compact-gutters.mobile--ruled > .col:nth-child(3):before,
      .col-group.compact-gutters.mobile--ruled > .col:nth-child(4):before {
        border-left: 1px solid #D1D2D4;
        content: "";
        display: block;
        margin-left: -0.5rem;
        position: absolute;
        top: 0;
        bottom: 0; }
    .col-group.compact-gutters.mobile--centered > .col {
      margin-left: auto;
      margin-right: auto; }
      .col-group.compact-gutters.mobile--centered > .col + .col {
        margin-top: 1em; }
    .col-group.compact-gutters.mobile--col-reverse {
      -webkit-box-direction: reverse;
      -webkit-box-orient: vertical;
      -webkit-flex-direction: column-reverse;
      -moz-flex-direction: column-reverse;
      -ms-flex-direction: column-reverse;
      flex-direction: column-reverse; } }
  @media (min-width: 760px) and (max-width: 959px) {
    .col-group.compact-gutters.tablet--full > .col {
      width: 100%; }
      .col-group.compact-gutters.tablet--full > .col + .col {
        margin-top: 1rem; }
    .col-group.compact-gutters.tablet--1-2 > .col {
      width: calc( (100% * 1 / 2 - 1rem) + 1rem / 2);
      max-width: calc( (100% * 1 / 2 - 1rem) + 1rem / 2); }
      .col-group.compact-gutters.tablet--1-2 > .col:not(:nth-child(2n)) + .col {
        margin-left: 1rem; }
      .col-group.compact-gutters.tablet--1-2 > .col:nth-child(2n) {
        flex: 1 1 0;
        width: auto; }
      .col-group.compact-gutters.tablet--1-2 > .col:first-child, .col-group.compact-gutters.tablet--1-2 > .col:nth-child(2) {
        margin-top: 0; }
      .col-group.compact-gutters.tablet--1-2 > .col:nth-child(n + 3) {
        margin-top: 1rem; }
    .col-group.compact-gutters.tablet--1-3 > .col {
      width: calc( (100% * 1 / 3 - 1rem) + 1rem / 3);
      max-width: calc( (100% * 1 / 3 - 1rem) + 1rem / 3); }
      .col-group.compact-gutters.tablet--1-3 > .col:not(:nth-child(3n)) + .col {
        margin-left: 1rem; }
      .col-group.compact-gutters.tablet--1-3 > .col:nth-child(3n) {
        flex: 1 1 0;
        width: auto; }
      .col-group.compact-gutters.tablet--1-3 > .col:first-child, .col-group.compact-gutters.tablet--1-3 > .col:nth-child(2), .col-group.compact-gutters.tablet--1-3 > .col:nth-child(3) {
        margin-top: 0; }
      .col-group.compact-gutters.tablet--1-3 > .col:nth-child(n + 4) {
        margin-top: 1rem; }
    .col-group.compact-gutters.tablet--1-4 > .col {
      width: calc( (100% * 1 / 4 - 1rem) + 1rem / 4);
      max-width: calc( (100% * 1 / 4 - 1rem) + 1rem / 4); }
      .col-group.compact-gutters.tablet--1-4 > .col:not(:nth-child(4n)) + .col {
        margin-left: 1rem; }
      .col-group.compact-gutters.tablet--1-4 > .col:nth-child(4n) {
        flex: 1 1 0;
        width: auto; }
      .col-group.compact-gutters.tablet--1-4 > .col:first-child, .col-group.compact-gutters.tablet--1-4 > .col:nth-child(2), .col-group.compact-gutters.tablet--1-4 > .col:nth-child(3), .col-group.compact-gutters.tablet--1-4 > .col:nth-child(4) {
        margin-top: 0; }
      .col-group.compact-gutters.tablet--1-4 > .col:nth-child(n + 5) {
        margin-top: 1rem; }
    .col-group.compact-gutters.tablet--1-5 > .col {
      width: calc( (100% * 1 / 5 - 1rem) + 1rem / 5);
      max-width: calc( (100% * 1 / 5 - 1rem) + 1rem / 5); }
      .col-group.compact-gutters.tablet--1-5 > .col:not(:nth-child(5n)) + .col {
        margin-left: 1rem; }
      .col-group.compact-gutters.tablet--1-5 > .col:nth-child(5n) {
        flex: 1 1 0;
        width: auto; }
      .col-group.compact-gutters.tablet--1-5 > .col:first-child, .col-group.compact-gutters.tablet--1-5 > .col:nth-child(2), .col-group.compact-gutters.tablet--1-5 > .col:nth-child(3), .col-group.compact-gutters.tablet--1-5 > .col:nth-child(4), .col-group.compact-gutters.tablet--1-5 > .col:nth-child(5) {
        margin-top: 0; }
      .col-group.compact-gutters.tablet--1-5 > .col:nth-child(n + 6) {
        margin-top: 1rem; }
    .col-group.compact-gutters.tablet--1-3-and-2-3 > .col:nth-child(2n + 1) {
      width: calc( (100% * 1 / 3 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.tablet--1-3-and-2-3 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 2 / 3 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.tablet--1-3-and-2-3 > .col:not(:nth-child(2n)) + .col {
      margin-left: 1rem; }
    .col-group.compact-gutters.tablet--1-3-and-2-3 > .col:first-child, .col-group.compact-gutters.tablet--1-3-and-2-3 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group.compact-gutters.tablet--1-3-and-2-3 > .col:nth-child(n + 3) {
      margin-top: 1rem; }
    .col-group.compact-gutters.tablet--2-3-and-1-3 > .col:nth-child(2n + 1) {
      width: calc( (100% * 2 / 3 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.tablet--2-3-and-1-3 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 1 / 3 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.tablet--2-3-and-1-3 > .col:not(:nth-child(2n)) + .col {
      margin-left: 1rem; }
    .col-group.compact-gutters.tablet--2-3-and-1-3 > .col:first-child, .col-group.compact-gutters.tablet--2-3-and-1-3 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group.compact-gutters.tablet--2-3-and-1-3 > .col:nth-child(n + 3) {
      margin-top: 1rem; }
    .col-group.compact-gutters.tablet--1-4-and-3-4 > .col:nth-child(2n + 1) {
      width: calc( (100% * 1 / 4 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.tablet--1-4-and-3-4 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 3 / 4 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.tablet--1-4-and-3-4 > .col:not(:nth-child(2n)) + .col {
      margin-left: 1rem; }
    .col-group.compact-gutters.tablet--1-4-and-3-4 > .col:first-child, .col-group.compact-gutters.tablet--1-4-and-3-4 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group.compact-gutters.tablet--1-4-and-3-4 > .col:nth-child(n + 3) {
      margin-top: 1rem; }
    .col-group.compact-gutters.tablet--3-4-and-1-4 > .col:nth-child(2n + 1) {
      width: calc( (100% * 3 / 4 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.tablet--3-4-and-1-4 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 1 / 4 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.tablet--3-4-and-1-4 > .col:not(:nth-child(2n)) + .col {
      margin-left: 1rem; }
    .col-group.compact-gutters.tablet--3-4-and-1-4 > .col:first-child, .col-group.compact-gutters.tablet--3-4-and-1-4 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group.compact-gutters.tablet--3-4-and-1-4 > .col:nth-child(n + 3) {
      margin-top: 1rem; }
    .col-group.compact-gutters.tablet--1-4-and-2-4-and-1-4 > .col:nth-child(3n + 1) {
      width: calc( (100% * 1 / 4 - 1rem) + 1rem / 3); }
    .col-group.compact-gutters.tablet--1-4-and-2-4-and-1-4 > .col:nth-child(3n - 1) {
      width: calc( (100% * 2 / 4 - 1rem) + 1rem / 3); }
    .col-group.compact-gutters.tablet--1-4-and-2-4-and-1-4 > .col:nth-child(3n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 1 / 4 - 1rem) + 1rem / 3); }
    .col-group.compact-gutters.tablet--1-4-and-2-4-and-1-4 > .col:not(:nth-child(3n)) + .col {
      margin-left: 1rem; }
    .col-group.compact-gutters.tablet--1-4-and-2-4-and-1-4 > .col:first-child, .col-group.compact-gutters.tablet--1-4-and-2-4-and-1-4 > .col:nth-child(2), .col-group.compact-gutters.tablet--1-4-and-2-4-and-1-4 > .col:nth-child(3) {
      margin-top: 0; }
    .col-group.compact-gutters.tablet--1-4-and-2-4-and-1-4 > .col:nth-child(n + 4) {
      margin-top: 1rem; }
    .col-group.compact-gutters.tablet--2-5-and-3-5 > .col:nth-child(2n + 1) {
      width: calc( (100% * 2 / 5 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.tablet--2-5-and-3-5 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 3 / 5 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.tablet--2-5-and-3-5 > .col:not(:nth-child(2n)) + .col {
      margin-left: 1rem; }
    .col-group.compact-gutters.tablet--2-5-and-3-5 > .col:first-child, .col-group.compact-gutters.tablet--2-5-and-3-5 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group.compact-gutters.tablet--2-5-and-3-5 > .col:nth-child(n + 3) {
      margin-top: 1rem; }
    .col-group.compact-gutters.tablet--3-5-and-2-5 > .col:nth-child(2n + 1) {
      width: calc( (100% * 3 / 5 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.tablet--3-5-and-2-5 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 2 / 5 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.tablet--3-5-and-2-5 > .col:not(:nth-child(2n)) + .col {
      margin-left: 1rem; }
    .col-group.compact-gutters.tablet--3-5-and-2-5 > .col:first-child, .col-group.compact-gutters.tablet--3-5-and-2-5 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group.compact-gutters.tablet--3-5-and-2-5 > .col:nth-child(n + 3) {
      margin-top: 1rem; }
    .col-group.compact-gutters.tablet--ruled {
      position: relative; }
      .col-group.compact-gutters.tablet--ruled > .col:nth-child(2):before,
      .col-group.compact-gutters.tablet--ruled > .col:nth-child(3):before,
      .col-group.compact-gutters.tablet--ruled > .col:nth-child(4):before {
        border-left: 1px solid #D1D2D4;
        content: "";
        display: block;
        margin-left: -0.5rem;
        position: absolute;
        top: 0;
        bottom: 0; }
    .col-group.compact-gutters.tablet--centered > .col {
      margin-left: auto;
      margin-right: auto; }
      .col-group.compact-gutters.tablet--centered > .col + .col {
        margin-top: 1em; }
    .col-group.compact-gutters.tablet--col-reverse {
      -webkit-box-direction: reverse;
      -webkit-box-orient: vertical;
      -webkit-flex-direction: column-reverse;
      -moz-flex-direction: column-reverse;
      -ms-flex-direction: column-reverse;
      flex-direction: column-reverse; } }
  @media (min-width: 960px) and (max-width: 1279px) {
    .col-group.compact-gutters.desktop--full > .col {
      width: 100%; }
      .col-group.compact-gutters.desktop--full > .col + .col {
        margin-top: 1rem; }
    .col-group.compact-gutters.desktop--1-2 > .col {
      width: calc( (100% * 1 / 2 - 1rem) + 1rem / 2);
      max-width: calc( (100% * 1 / 2 - 1rem) + 1rem / 2); }
      .col-group.compact-gutters.desktop--1-2 > .col:not(:nth-child(2n)) + .col {
        margin-left: 1rem; }
      .col-group.compact-gutters.desktop--1-2 > .col:nth-child(2n) {
        flex: 1 1 0;
        width: auto; }
      .col-group.compact-gutters.desktop--1-2 > .col:first-child, .col-group.compact-gutters.desktop--1-2 > .col:nth-child(2) {
        margin-top: 0; }
      .col-group.compact-gutters.desktop--1-2 > .col:nth-child(n + 3) {
        margin-top: 1rem; }
    .col-group.compact-gutters.desktop--1-3 > .col {
      width: calc( (100% * 1 / 3 - 1rem) + 1rem / 3);
      max-width: calc( (100% * 1 / 3 - 1rem) + 1rem / 3); }
      .col-group.compact-gutters.desktop--1-3 > .col:not(:nth-child(3n)) + .col {
        margin-left: 1rem; }
      .col-group.compact-gutters.desktop--1-3 > .col:nth-child(3n) {
        flex: 1 1 0;
        width: auto; }
      .col-group.compact-gutters.desktop--1-3 > .col:first-child, .col-group.compact-gutters.desktop--1-3 > .col:nth-child(2), .col-group.compact-gutters.desktop--1-3 > .col:nth-child(3) {
        margin-top: 0; }
      .col-group.compact-gutters.desktop--1-3 > .col:nth-child(n + 4) {
        margin-top: 1rem; }
    .col-group.compact-gutters.desktop--1-4 > .col {
      width: calc( (100% * 1 / 4 - 1rem) + 1rem / 4);
      max-width: calc( (100% * 1 / 4 - 1rem) + 1rem / 4); }
      .col-group.compact-gutters.desktop--1-4 > .col:not(:nth-child(4n)) + .col {
        margin-left: 1rem; }
      .col-group.compact-gutters.desktop--1-4 > .col:nth-child(4n) {
        flex: 1 1 0;
        width: auto; }
      .col-group.compact-gutters.desktop--1-4 > .col:first-child, .col-group.compact-gutters.desktop--1-4 > .col:nth-child(2), .col-group.compact-gutters.desktop--1-4 > .col:nth-child(3), .col-group.compact-gutters.desktop--1-4 > .col:nth-child(4) {
        margin-top: 0; }
      .col-group.compact-gutters.desktop--1-4 > .col:nth-child(n + 5) {
        margin-top: 1rem; }
    .col-group.compact-gutters.desktop--1-5 > .col {
      width: calc( (100% * 1 / 5 - 1rem) + 1rem / 5);
      max-width: calc( (100% * 1 / 5 - 1rem) + 1rem / 5); }
      .col-group.compact-gutters.desktop--1-5 > .col:not(:nth-child(5n)) + .col {
        margin-left: 1rem; }
      .col-group.compact-gutters.desktop--1-5 > .col:nth-child(5n) {
        flex: 1 1 0;
        width: auto; }
      .col-group.compact-gutters.desktop--1-5 > .col:first-child, .col-group.compact-gutters.desktop--1-5 > .col:nth-child(2), .col-group.compact-gutters.desktop--1-5 > .col:nth-child(3), .col-group.compact-gutters.desktop--1-5 > .col:nth-child(4), .col-group.compact-gutters.desktop--1-5 > .col:nth-child(5) {
        margin-top: 0; }
      .col-group.compact-gutters.desktop--1-5 > .col:nth-child(n + 6) {
        margin-top: 1rem; }
    .col-group.compact-gutters.desktop--1-3-and-2-3 > .col:nth-child(2n + 1) {
      width: calc( (100% * 1 / 3 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.desktop--1-3-and-2-3 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 2 / 3 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.desktop--1-3-and-2-3 > .col:not(:nth-child(2n)) + .col {
      margin-left: 1rem; }
    .col-group.compact-gutters.desktop--1-3-and-2-3 > .col:first-child, .col-group.compact-gutters.desktop--1-3-and-2-3 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group.compact-gutters.desktop--1-3-and-2-3 > .col:nth-child(n + 3) {
      margin-top: 1rem; }
    .col-group.compact-gutters.desktop--2-3-and-1-3 > .col:nth-child(2n + 1) {
      width: calc( (100% * 2 / 3 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.desktop--2-3-and-1-3 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 1 / 3 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.desktop--2-3-and-1-3 > .col:not(:nth-child(2n)) + .col {
      margin-left: 1rem; }
    .col-group.compact-gutters.desktop--2-3-and-1-3 > .col:first-child, .col-group.compact-gutters.desktop--2-3-and-1-3 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group.compact-gutters.desktop--2-3-and-1-3 > .col:nth-child(n + 3) {
      margin-top: 1rem; }
    .col-group.compact-gutters.desktop--1-4-and-3-4 > .col:nth-child(2n + 1) {
      width: calc( (100% * 1 / 4 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.desktop--1-4-and-3-4 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 3 / 4 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.desktop--1-4-and-3-4 > .col:not(:nth-child(2n)) + .col {
      margin-left: 1rem; }
    .col-group.compact-gutters.desktop--1-4-and-3-4 > .col:first-child, .col-group.compact-gutters.desktop--1-4-and-3-4 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group.compact-gutters.desktop--1-4-and-3-4 > .col:nth-child(n + 3) {
      margin-top: 1rem; }
    .col-group.compact-gutters.desktop--3-4-and-1-4 > .col:nth-child(2n + 1) {
      width: calc( (100% * 3 / 4 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.desktop--3-4-and-1-4 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 1 / 4 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.desktop--3-4-and-1-4 > .col:not(:nth-child(2n)) + .col {
      margin-left: 1rem; }
    .col-group.compact-gutters.desktop--3-4-and-1-4 > .col:first-child, .col-group.compact-gutters.desktop--3-4-and-1-4 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group.compact-gutters.desktop--3-4-and-1-4 > .col:nth-child(n + 3) {
      margin-top: 1rem; }
    .col-group.compact-gutters.desktop--1-4-and-2-4-and-1-4 > .col:nth-child(3n + 1) {
      width: calc( (100% * 1 / 4 - 1rem) + 1rem / 3); }
    .col-group.compact-gutters.desktop--1-4-and-2-4-and-1-4 > .col:nth-child(3n - 1) {
      width: calc( (100% * 2 / 4 - 1rem) + 1rem / 3); }
    .col-group.compact-gutters.desktop--1-4-and-2-4-and-1-4 > .col:nth-child(3n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 1 / 4 - 1rem) + 1rem / 3); }
    .col-group.compact-gutters.desktop--1-4-and-2-4-and-1-4 > .col:not(:nth-child(3n)) + .col {
      margin-left: 1rem; }
    .col-group.compact-gutters.desktop--1-4-and-2-4-and-1-4 > .col:first-child, .col-group.compact-gutters.desktop--1-4-and-2-4-and-1-4 > .col:nth-child(2), .col-group.compact-gutters.desktop--1-4-and-2-4-and-1-4 > .col:nth-child(3) {
      margin-top: 0; }
    .col-group.compact-gutters.desktop--1-4-and-2-4-and-1-4 > .col:nth-child(n + 4) {
      margin-top: 1rem; }
    .col-group.compact-gutters.desktop--2-5-and-3-5 > .col:nth-child(2n + 1) {
      width: calc( (100% * 2 / 5 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.desktop--2-5-and-3-5 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 3 / 5 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.desktop--2-5-and-3-5 > .col:not(:nth-child(2n)) + .col {
      margin-left: 1rem; }
    .col-group.compact-gutters.desktop--2-5-and-3-5 > .col:first-child, .col-group.compact-gutters.desktop--2-5-and-3-5 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group.compact-gutters.desktop--2-5-and-3-5 > .col:nth-child(n + 3) {
      margin-top: 1rem; }
    .col-group.compact-gutters.desktop--3-5-and-2-5 > .col:nth-child(2n + 1) {
      width: calc( (100% * 3 / 5 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.desktop--3-5-and-2-5 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 2 / 5 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.desktop--3-5-and-2-5 > .col:not(:nth-child(2n)) + .col {
      margin-left: 1rem; }
    .col-group.compact-gutters.desktop--3-5-and-2-5 > .col:first-child, .col-group.compact-gutters.desktop--3-5-and-2-5 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group.compact-gutters.desktop--3-5-and-2-5 > .col:nth-child(n + 3) {
      margin-top: 1rem; }
    .col-group.compact-gutters.desktop--ruled {
      position: relative; }
      .col-group.compact-gutters.desktop--ruled > .col:nth-child(2):before,
      .col-group.compact-gutters.desktop--ruled > .col:nth-child(3):before,
      .col-group.compact-gutters.desktop--ruled > .col:nth-child(4):before {
        border-left: 1px solid #D1D2D4;
        content: "";
        display: block;
        margin-left: -0.5rem;
        position: absolute;
        top: 0;
        bottom: 0; }
    .col-group.compact-gutters.desktop--centered > .col {
      margin-left: auto;
      margin-right: auto; }
      .col-group.compact-gutters.desktop--centered > .col + .col {
        margin-top: 1em; }
    .col-group.compact-gutters.desktop--col-reverse {
      -webkit-box-direction: reverse;
      -webkit-box-orient: vertical;
      -webkit-flex-direction: column-reverse;
      -moz-flex-direction: column-reverse;
      -ms-flex-direction: column-reverse;
      flex-direction: column-reverse; } }
  @media (min-width: 1280px) {
    .col-group.compact-gutters.wide--full > .col {
      width: 100%; }
      .col-group.compact-gutters.wide--full > .col + .col {
        margin-top: 1rem; }
    .col-group.compact-gutters.wide--1-2 > .col {
      width: calc( (100% * 1 / 2 - 1rem) + 1rem / 2);
      max-width: calc( (100% * 1 / 2 - 1rem) + 1rem / 2); }
      .col-group.compact-gutters.wide--1-2 > .col:not(:nth-child(2n)) + .col {
        margin-left: 1rem; }
      .col-group.compact-gutters.wide--1-2 > .col:nth-child(2n) {
        flex: 1 1 0;
        width: auto; }
      .col-group.compact-gutters.wide--1-2 > .col:first-child, .col-group.compact-gutters.wide--1-2 > .col:nth-child(2) {
        margin-top: 0; }
      .col-group.compact-gutters.wide--1-2 > .col:nth-child(n + 3) {
        margin-top: 1rem; }
    .col-group.compact-gutters.wide--1-3 > .col {
      width: calc( (100% * 1 / 3 - 1rem) + 1rem / 3);
      max-width: calc( (100% * 1 / 3 - 1rem) + 1rem / 3); }
      .col-group.compact-gutters.wide--1-3 > .col:not(:nth-child(3n)) + .col {
        margin-left: 1rem; }
      .col-group.compact-gutters.wide--1-3 > .col:nth-child(3n) {
        flex: 1 1 0;
        width: auto; }
      .col-group.compact-gutters.wide--1-3 > .col:first-child, .col-group.compact-gutters.wide--1-3 > .col:nth-child(2), .col-group.compact-gutters.wide--1-3 > .col:nth-child(3) {
        margin-top: 0; }
      .col-group.compact-gutters.wide--1-3 > .col:nth-child(n + 4) {
        margin-top: 1rem; }
    .col-group.compact-gutters.wide--1-4 > .col {
      width: calc( (100% * 1 / 4 - 1rem) + 1rem / 4);
      max-width: calc( (100% * 1 / 4 - 1rem) + 1rem / 4); }
      .col-group.compact-gutters.wide--1-4 > .col:not(:nth-child(4n)) + .col {
        margin-left: 1rem; }
      .col-group.compact-gutters.wide--1-4 > .col:nth-child(4n) {
        flex: 1 1 0;
        width: auto; }
      .col-group.compact-gutters.wide--1-4 > .col:first-child, .col-group.compact-gutters.wide--1-4 > .col:nth-child(2), .col-group.compact-gutters.wide--1-4 > .col:nth-child(3), .col-group.compact-gutters.wide--1-4 > .col:nth-child(4) {
        margin-top: 0; }
      .col-group.compact-gutters.wide--1-4 > .col:nth-child(n + 5) {
        margin-top: 1rem; }
    .col-group.compact-gutters.wide--1-5 > .col {
      width: calc( (100% * 1 / 5 - 1rem) + 1rem / 5);
      max-width: calc( (100% * 1 / 5 - 1rem) + 1rem / 5); }
      .col-group.compact-gutters.wide--1-5 > .col:not(:nth-child(5n)) + .col {
        margin-left: 1rem; }
      .col-group.compact-gutters.wide--1-5 > .col:nth-child(5n) {
        flex: 1 1 0;
        width: auto; }
      .col-group.compact-gutters.wide--1-5 > .col:first-child, .col-group.compact-gutters.wide--1-5 > .col:nth-child(2), .col-group.compact-gutters.wide--1-5 > .col:nth-child(3), .col-group.compact-gutters.wide--1-5 > .col:nth-child(4), .col-group.compact-gutters.wide--1-5 > .col:nth-child(5) {
        margin-top: 0; }
      .col-group.compact-gutters.wide--1-5 > .col:nth-child(n + 6) {
        margin-top: 1rem; }
    .col-group.compact-gutters.wide--1-3-and-2-3 > .col:nth-child(2n + 1) {
      width: calc( (100% * 1 / 3 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.wide--1-3-and-2-3 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 2 / 3 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.wide--1-3-and-2-3 > .col:not(:nth-child(2n)) + .col {
      margin-left: 1rem; }
    .col-group.compact-gutters.wide--1-3-and-2-3 > .col:first-child, .col-group.compact-gutters.wide--1-3-and-2-3 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group.compact-gutters.wide--1-3-and-2-3 > .col:nth-child(n + 3) {
      margin-top: 1rem; }
    .col-group.compact-gutters.wide--2-3-and-1-3 > .col:nth-child(2n + 1) {
      width: calc( (100% * 2 / 3 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.wide--2-3-and-1-3 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 1 / 3 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.wide--2-3-and-1-3 > .col:not(:nth-child(2n)) + .col {
      margin-left: 1rem; }
    .col-group.compact-gutters.wide--2-3-and-1-3 > .col:first-child, .col-group.compact-gutters.wide--2-3-and-1-3 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group.compact-gutters.wide--2-3-and-1-3 > .col:nth-child(n + 3) {
      margin-top: 1rem; }
    .col-group.compact-gutters.wide--1-4-and-3-4 > .col:nth-child(2n + 1) {
      width: calc( (100% * 1 / 4 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.wide--1-4-and-3-4 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 3 / 4 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.wide--1-4-and-3-4 > .col:not(:nth-child(2n)) + .col {
      margin-left: 1rem; }
    .col-group.compact-gutters.wide--1-4-and-3-4 > .col:first-child, .col-group.compact-gutters.wide--1-4-and-3-4 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group.compact-gutters.wide--1-4-and-3-4 > .col:nth-child(n + 3) {
      margin-top: 1rem; }
    .col-group.compact-gutters.wide--3-4-and-1-4 > .col:nth-child(2n + 1) {
      width: calc( (100% * 3 / 4 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.wide--3-4-and-1-4 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 1 / 4 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.wide--3-4-and-1-4 > .col:not(:nth-child(2n)) + .col {
      margin-left: 1rem; }
    .col-group.compact-gutters.wide--3-4-and-1-4 > .col:first-child, .col-group.compact-gutters.wide--3-4-and-1-4 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group.compact-gutters.wide--3-4-and-1-4 > .col:nth-child(n + 3) {
      margin-top: 1rem; }
    .col-group.compact-gutters.wide--1-4-and-2-4-and-1-4 > .col:nth-child(3n + 1) {
      width: calc( (100% * 1 / 4 - 1rem) + 1rem / 3); }
    .col-group.compact-gutters.wide--1-4-and-2-4-and-1-4 > .col:nth-child(3n - 1) {
      width: calc( (100% * 2 / 4 - 1rem) + 1rem / 3); }
    .col-group.compact-gutters.wide--1-4-and-2-4-and-1-4 > .col:nth-child(3n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 1 / 4 - 1rem) + 1rem / 3); }
    .col-group.compact-gutters.wide--1-4-and-2-4-and-1-4 > .col:not(:nth-child(3n)) + .col {
      margin-left: 1rem; }
    .col-group.compact-gutters.wide--1-4-and-2-4-and-1-4 > .col:first-child, .col-group.compact-gutters.wide--1-4-and-2-4-and-1-4 > .col:nth-child(2), .col-group.compact-gutters.wide--1-4-and-2-4-and-1-4 > .col:nth-child(3) {
      margin-top: 0; }
    .col-group.compact-gutters.wide--1-4-and-2-4-and-1-4 > .col:nth-child(n + 4) {
      margin-top: 1rem; }
    .col-group.compact-gutters.wide--2-5-and-3-5 > .col:nth-child(2n + 1) {
      width: calc( (100% * 2 / 5 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.wide--2-5-and-3-5 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 3 / 5 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.wide--2-5-and-3-5 > .col:not(:nth-child(2n)) + .col {
      margin-left: 1rem; }
    .col-group.compact-gutters.wide--2-5-and-3-5 > .col:first-child, .col-group.compact-gutters.wide--2-5-and-3-5 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group.compact-gutters.wide--2-5-and-3-5 > .col:nth-child(n + 3) {
      margin-top: 1rem; }
    .col-group.compact-gutters.wide--3-5-and-2-5 > .col:nth-child(2n + 1) {
      width: calc( (100% * 3 / 5 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.wide--3-5-and-2-5 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 2 / 5 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.wide--3-5-and-2-5 > .col:not(:nth-child(2n)) + .col {
      margin-left: 1rem; }
    .col-group.compact-gutters.wide--3-5-and-2-5 > .col:first-child, .col-group.compact-gutters.wide--3-5-and-2-5 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group.compact-gutters.wide--3-5-and-2-5 > .col:nth-child(n + 3) {
      margin-top: 1rem; }
    .col-group.compact-gutters.wide--ruled {
      position: relative; }
      .col-group.compact-gutters.wide--ruled > .col:nth-child(2):before,
      .col-group.compact-gutters.wide--ruled > .col:nth-child(3):before,
      .col-group.compact-gutters.wide--ruled > .col:nth-child(4):before {
        border-left: 1px solid #D1D2D4;
        content: "";
        display: block;
        margin-left: -0.5rem;
        position: absolute;
        top: 0;
        bottom: 0; }
    .col-group.compact-gutters.wide--centered > .col {
      margin-left: auto;
      margin-right: auto; }
      .col-group.compact-gutters.wide--centered > .col + .col {
        margin-top: 1em; }
    .col-group.compact-gutters.wide--col-reverse {
      -webkit-box-direction: reverse;
      -webkit-box-orient: vertical;
      -webkit-flex-direction: column-reverse;
      -moz-flex-direction: column-reverse;
      -ms-flex-direction: column-reverse;
      flex-direction: column-reverse; } }
  @media (max-width: 959px) {
    .col-group.compact-gutters.mobile-and-tablet--full > .col {
      width: 100%; }
      .col-group.compact-gutters.mobile-and-tablet--full > .col + .col {
        margin-top: 1rem; }
    .col-group.compact-gutters.mobile-and-tablet--1-2 > .col {
      width: calc( (100% * 1 / 2 - 1rem) + 1rem / 2);
      max-width: calc( (100% * 1 / 2 - 1rem) + 1rem / 2); }
      .col-group.compact-gutters.mobile-and-tablet--1-2 > .col:not(:nth-child(2n)) + .col {
        margin-left: 1rem; }
      .col-group.compact-gutters.mobile-and-tablet--1-2 > .col:nth-child(2n) {
        flex: 1 1 0;
        width: auto; }
      .col-group.compact-gutters.mobile-and-tablet--1-2 > .col:first-child, .col-group.compact-gutters.mobile-and-tablet--1-2 > .col:nth-child(2) {
        margin-top: 0; }
      .col-group.compact-gutters.mobile-and-tablet--1-2 > .col:nth-child(n + 3) {
        margin-top: 1rem; }
    .col-group.compact-gutters.mobile-and-tablet--1-3 > .col {
      width: calc( (100% * 1 / 3 - 1rem) + 1rem / 3);
      max-width: calc( (100% * 1 / 3 - 1rem) + 1rem / 3); }
      .col-group.compact-gutters.mobile-and-tablet--1-3 > .col:not(:nth-child(3n)) + .col {
        margin-left: 1rem; }
      .col-group.compact-gutters.mobile-and-tablet--1-3 > .col:nth-child(3n) {
        flex: 1 1 0;
        width: auto; }
      .col-group.compact-gutters.mobile-and-tablet--1-3 > .col:first-child, .col-group.compact-gutters.mobile-and-tablet--1-3 > .col:nth-child(2), .col-group.compact-gutters.mobile-and-tablet--1-3 > .col:nth-child(3) {
        margin-top: 0; }
      .col-group.compact-gutters.mobile-and-tablet--1-3 > .col:nth-child(n + 4) {
        margin-top: 1rem; }
    .col-group.compact-gutters.mobile-and-tablet--1-4 > .col {
      width: calc( (100% * 1 / 4 - 1rem) + 1rem / 4);
      max-width: calc( (100% * 1 / 4 - 1rem) + 1rem / 4); }
      .col-group.compact-gutters.mobile-and-tablet--1-4 > .col:not(:nth-child(4n)) + .col {
        margin-left: 1rem; }
      .col-group.compact-gutters.mobile-and-tablet--1-4 > .col:nth-child(4n) {
        flex: 1 1 0;
        width: auto; }
      .col-group.compact-gutters.mobile-and-tablet--1-4 > .col:first-child, .col-group.compact-gutters.mobile-and-tablet--1-4 > .col:nth-child(2), .col-group.compact-gutters.mobile-and-tablet--1-4 > .col:nth-child(3), .col-group.compact-gutters.mobile-and-tablet--1-4 > .col:nth-child(4) {
        margin-top: 0; }
      .col-group.compact-gutters.mobile-and-tablet--1-4 > .col:nth-child(n + 5) {
        margin-top: 1rem; }
    .col-group.compact-gutters.mobile-and-tablet--1-5 > .col {
      width: calc( (100% * 1 / 5 - 1rem) + 1rem / 5);
      max-width: calc( (100% * 1 / 5 - 1rem) + 1rem / 5); }
      .col-group.compact-gutters.mobile-and-tablet--1-5 > .col:not(:nth-child(5n)) + .col {
        margin-left: 1rem; }
      .col-group.compact-gutters.mobile-and-tablet--1-5 > .col:nth-child(5n) {
        flex: 1 1 0;
        width: auto; }
      .col-group.compact-gutters.mobile-and-tablet--1-5 > .col:first-child, .col-group.compact-gutters.mobile-and-tablet--1-5 > .col:nth-child(2), .col-group.compact-gutters.mobile-and-tablet--1-5 > .col:nth-child(3), .col-group.compact-gutters.mobile-and-tablet--1-5 > .col:nth-child(4), .col-group.compact-gutters.mobile-and-tablet--1-5 > .col:nth-child(5) {
        margin-top: 0; }
      .col-group.compact-gutters.mobile-and-tablet--1-5 > .col:nth-child(n + 6) {
        margin-top: 1rem; }
    .col-group.compact-gutters.mobile-and-tablet--1-3-and-2-3 > .col:nth-child(2n + 1) {
      width: calc( (100% * 1 / 3 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.mobile-and-tablet--1-3-and-2-3 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 2 / 3 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.mobile-and-tablet--1-3-and-2-3 > .col:not(:nth-child(2n)) + .col {
      margin-left: 1rem; }
    .col-group.compact-gutters.mobile-and-tablet--1-3-and-2-3 > .col:first-child, .col-group.compact-gutters.mobile-and-tablet--1-3-and-2-3 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group.compact-gutters.mobile-and-tablet--1-3-and-2-3 > .col:nth-child(n + 3) {
      margin-top: 1rem; }
    .col-group.compact-gutters.mobile-and-tablet--2-3-and-1-3 > .col:nth-child(2n + 1) {
      width: calc( (100% * 2 / 3 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.mobile-and-tablet--2-3-and-1-3 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 1 / 3 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.mobile-and-tablet--2-3-and-1-3 > .col:not(:nth-child(2n)) + .col {
      margin-left: 1rem; }
    .col-group.compact-gutters.mobile-and-tablet--2-3-and-1-3 > .col:first-child, .col-group.compact-gutters.mobile-and-tablet--2-3-and-1-3 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group.compact-gutters.mobile-and-tablet--2-3-and-1-3 > .col:nth-child(n + 3) {
      margin-top: 1rem; }
    .col-group.compact-gutters.mobile-and-tablet--1-4-and-3-4 > .col:nth-child(2n + 1) {
      width: calc( (100% * 1 / 4 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.mobile-and-tablet--1-4-and-3-4 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 3 / 4 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.mobile-and-tablet--1-4-and-3-4 > .col:not(:nth-child(2n)) + .col {
      margin-left: 1rem; }
    .col-group.compact-gutters.mobile-and-tablet--1-4-and-3-4 > .col:first-child, .col-group.compact-gutters.mobile-and-tablet--1-4-and-3-4 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group.compact-gutters.mobile-and-tablet--1-4-and-3-4 > .col:nth-child(n + 3) {
      margin-top: 1rem; }
    .col-group.compact-gutters.mobile-and-tablet--3-4-and-1-4 > .col:nth-child(2n + 1) {
      width: calc( (100% * 3 / 4 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.mobile-and-tablet--3-4-and-1-4 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 1 / 4 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.mobile-and-tablet--3-4-and-1-4 > .col:not(:nth-child(2n)) + .col {
      margin-left: 1rem; }
    .col-group.compact-gutters.mobile-and-tablet--3-4-and-1-4 > .col:first-child, .col-group.compact-gutters.mobile-and-tablet--3-4-and-1-4 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group.compact-gutters.mobile-and-tablet--3-4-and-1-4 > .col:nth-child(n + 3) {
      margin-top: 1rem; }
    .col-group.compact-gutters.mobile-and-tablet--1-4-and-2-4-and-1-4 > .col:nth-child(3n + 1) {
      width: calc( (100% * 1 / 4 - 1rem) + 1rem / 3); }
    .col-group.compact-gutters.mobile-and-tablet--1-4-and-2-4-and-1-4 > .col:nth-child(3n - 1) {
      width: calc( (100% * 2 / 4 - 1rem) + 1rem / 3); }
    .col-group.compact-gutters.mobile-and-tablet--1-4-and-2-4-and-1-4 > .col:nth-child(3n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 1 / 4 - 1rem) + 1rem / 3); }
    .col-group.compact-gutters.mobile-and-tablet--1-4-and-2-4-and-1-4 > .col:not(:nth-child(3n)) + .col {
      margin-left: 1rem; }
    .col-group.compact-gutters.mobile-and-tablet--1-4-and-2-4-and-1-4 > .col:first-child, .col-group.compact-gutters.mobile-and-tablet--1-4-and-2-4-and-1-4 > .col:nth-child(2), .col-group.compact-gutters.mobile-and-tablet--1-4-and-2-4-and-1-4 > .col:nth-child(3) {
      margin-top: 0; }
    .col-group.compact-gutters.mobile-and-tablet--1-4-and-2-4-and-1-4 > .col:nth-child(n + 4) {
      margin-top: 1rem; }
    .col-group.compact-gutters.mobile-and-tablet--2-5-and-3-5 > .col:nth-child(2n + 1) {
      width: calc( (100% * 2 / 5 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.mobile-and-tablet--2-5-and-3-5 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 3 / 5 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.mobile-and-tablet--2-5-and-3-5 > .col:not(:nth-child(2n)) + .col {
      margin-left: 1rem; }
    .col-group.compact-gutters.mobile-and-tablet--2-5-and-3-5 > .col:first-child, .col-group.compact-gutters.mobile-and-tablet--2-5-and-3-5 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group.compact-gutters.mobile-and-tablet--2-5-and-3-5 > .col:nth-child(n + 3) {
      margin-top: 1rem; }
    .col-group.compact-gutters.mobile-and-tablet--3-5-and-2-5 > .col:nth-child(2n + 1) {
      width: calc( (100% * 3 / 5 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.mobile-and-tablet--3-5-and-2-5 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 2 / 5 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.mobile-and-tablet--3-5-and-2-5 > .col:not(:nth-child(2n)) + .col {
      margin-left: 1rem; }
    .col-group.compact-gutters.mobile-and-tablet--3-5-and-2-5 > .col:first-child, .col-group.compact-gutters.mobile-and-tablet--3-5-and-2-5 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group.compact-gutters.mobile-and-tablet--3-5-and-2-5 > .col:nth-child(n + 3) {
      margin-top: 1rem; }
    .col-group.compact-gutters.mobile-and-tablet--ruled {
      position: relative; }
      .col-group.compact-gutters.mobile-and-tablet--ruled > .col:nth-child(2):before,
      .col-group.compact-gutters.mobile-and-tablet--ruled > .col:nth-child(3):before,
      .col-group.compact-gutters.mobile-and-tablet--ruled > .col:nth-child(4):before {
        border-left: 1px solid #D1D2D4;
        content: "";
        display: block;
        margin-left: -0.5rem;
        position: absolute;
        top: 0;
        bottom: 0; }
    .col-group.compact-gutters.mobile-and-tablet--centered > .col {
      margin-left: auto;
      margin-right: auto; }
      .col-group.compact-gutters.mobile-and-tablet--centered > .col + .col {
        margin-top: 1em; }
    .col-group.compact-gutters.mobile-and-tablet--col-reverse {
      -webkit-box-direction: reverse;
      -webkit-box-orient: vertical;
      -webkit-flex-direction: column-reverse;
      -moz-flex-direction: column-reverse;
      -ms-flex-direction: column-reverse;
      flex-direction: column-reverse; } }
  @media (min-width: 760px) and (max-width: 1279px) {
    .col-group.compact-gutters.tablet-and-desktop--full > .col {
      width: 100%; }
      .col-group.compact-gutters.tablet-and-desktop--full > .col + .col {
        margin-top: 1rem; }
    .col-group.compact-gutters.tablet-and-desktop--1-2 > .col {
      width: calc( (100% * 1 / 2 - 1rem) + 1rem / 2);
      max-width: calc( (100% * 1 / 2 - 1rem) + 1rem / 2); }
      .col-group.compact-gutters.tablet-and-desktop--1-2 > .col:not(:nth-child(2n)) + .col {
        margin-left: 1rem; }
      .col-group.compact-gutters.tablet-and-desktop--1-2 > .col:nth-child(2n) {
        flex: 1 1 0;
        width: auto; }
      .col-group.compact-gutters.tablet-and-desktop--1-2 > .col:first-child, .col-group.compact-gutters.tablet-and-desktop--1-2 > .col:nth-child(2) {
        margin-top: 0; }
      .col-group.compact-gutters.tablet-and-desktop--1-2 > .col:nth-child(n + 3) {
        margin-top: 1rem; }
    .col-group.compact-gutters.tablet-and-desktop--1-3 > .col {
      width: calc( (100% * 1 / 3 - 1rem) + 1rem / 3);
      max-width: calc( (100% * 1 / 3 - 1rem) + 1rem / 3); }
      .col-group.compact-gutters.tablet-and-desktop--1-3 > .col:not(:nth-child(3n)) + .col {
        margin-left: 1rem; }
      .col-group.compact-gutters.tablet-and-desktop--1-3 > .col:nth-child(3n) {
        flex: 1 1 0;
        width: auto; }
      .col-group.compact-gutters.tablet-and-desktop--1-3 > .col:first-child, .col-group.compact-gutters.tablet-and-desktop--1-3 > .col:nth-child(2), .col-group.compact-gutters.tablet-and-desktop--1-3 > .col:nth-child(3) {
        margin-top: 0; }
      .col-group.compact-gutters.tablet-and-desktop--1-3 > .col:nth-child(n + 4) {
        margin-top: 1rem; }
    .col-group.compact-gutters.tablet-and-desktop--1-4 > .col {
      width: calc( (100% * 1 / 4 - 1rem) + 1rem / 4);
      max-width: calc( (100% * 1 / 4 - 1rem) + 1rem / 4); }
      .col-group.compact-gutters.tablet-and-desktop--1-4 > .col:not(:nth-child(4n)) + .col {
        margin-left: 1rem; }
      .col-group.compact-gutters.tablet-and-desktop--1-4 > .col:nth-child(4n) {
        flex: 1 1 0;
        width: auto; }
      .col-group.compact-gutters.tablet-and-desktop--1-4 > .col:first-child, .col-group.compact-gutters.tablet-and-desktop--1-4 > .col:nth-child(2), .col-group.compact-gutters.tablet-and-desktop--1-4 > .col:nth-child(3), .col-group.compact-gutters.tablet-and-desktop--1-4 > .col:nth-child(4) {
        margin-top: 0; }
      .col-group.compact-gutters.tablet-and-desktop--1-4 > .col:nth-child(n + 5) {
        margin-top: 1rem; }
    .col-group.compact-gutters.tablet-and-desktop--1-5 > .col {
      width: calc( (100% * 1 / 5 - 1rem) + 1rem / 5);
      max-width: calc( (100% * 1 / 5 - 1rem) + 1rem / 5); }
      .col-group.compact-gutters.tablet-and-desktop--1-5 > .col:not(:nth-child(5n)) + .col {
        margin-left: 1rem; }
      .col-group.compact-gutters.tablet-and-desktop--1-5 > .col:nth-child(5n) {
        flex: 1 1 0;
        width: auto; }
      .col-group.compact-gutters.tablet-and-desktop--1-5 > .col:first-child, .col-group.compact-gutters.tablet-and-desktop--1-5 > .col:nth-child(2), .col-group.compact-gutters.tablet-and-desktop--1-5 > .col:nth-child(3), .col-group.compact-gutters.tablet-and-desktop--1-5 > .col:nth-child(4), .col-group.compact-gutters.tablet-and-desktop--1-5 > .col:nth-child(5) {
        margin-top: 0; }
      .col-group.compact-gutters.tablet-and-desktop--1-5 > .col:nth-child(n + 6) {
        margin-top: 1rem; }
    .col-group.compact-gutters.tablet-and-desktop--1-3-and-2-3 > .col:nth-child(2n + 1) {
      width: calc( (100% * 1 / 3 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.tablet-and-desktop--1-3-and-2-3 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 2 / 3 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.tablet-and-desktop--1-3-and-2-3 > .col:not(:nth-child(2n)) + .col {
      margin-left: 1rem; }
    .col-group.compact-gutters.tablet-and-desktop--1-3-and-2-3 > .col:first-child, .col-group.compact-gutters.tablet-and-desktop--1-3-and-2-3 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group.compact-gutters.tablet-and-desktop--1-3-and-2-3 > .col:nth-child(n + 3) {
      margin-top: 1rem; }
    .col-group.compact-gutters.tablet-and-desktop--2-3-and-1-3 > .col:nth-child(2n + 1) {
      width: calc( (100% * 2 / 3 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.tablet-and-desktop--2-3-and-1-3 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 1 / 3 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.tablet-and-desktop--2-3-and-1-3 > .col:not(:nth-child(2n)) + .col {
      margin-left: 1rem; }
    .col-group.compact-gutters.tablet-and-desktop--2-3-and-1-3 > .col:first-child, .col-group.compact-gutters.tablet-and-desktop--2-3-and-1-3 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group.compact-gutters.tablet-and-desktop--2-3-and-1-3 > .col:nth-child(n + 3) {
      margin-top: 1rem; }
    .col-group.compact-gutters.tablet-and-desktop--1-4-and-3-4 > .col:nth-child(2n + 1) {
      width: calc( (100% * 1 / 4 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.tablet-and-desktop--1-4-and-3-4 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 3 / 4 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.tablet-and-desktop--1-4-and-3-4 > .col:not(:nth-child(2n)) + .col {
      margin-left: 1rem; }
    .col-group.compact-gutters.tablet-and-desktop--1-4-and-3-4 > .col:first-child, .col-group.compact-gutters.tablet-and-desktop--1-4-and-3-4 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group.compact-gutters.tablet-and-desktop--1-4-and-3-4 > .col:nth-child(n + 3) {
      margin-top: 1rem; }
    .col-group.compact-gutters.tablet-and-desktop--3-4-and-1-4 > .col:nth-child(2n + 1) {
      width: calc( (100% * 3 / 4 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.tablet-and-desktop--3-4-and-1-4 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 1 / 4 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.tablet-and-desktop--3-4-and-1-4 > .col:not(:nth-child(2n)) + .col {
      margin-left: 1rem; }
    .col-group.compact-gutters.tablet-and-desktop--3-4-and-1-4 > .col:first-child, .col-group.compact-gutters.tablet-and-desktop--3-4-and-1-4 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group.compact-gutters.tablet-and-desktop--3-4-and-1-4 > .col:nth-child(n + 3) {
      margin-top: 1rem; }
    .col-group.compact-gutters.tablet-and-desktop--1-4-and-2-4-and-1-4 > .col:nth-child(3n + 1) {
      width: calc( (100% * 1 / 4 - 1rem) + 1rem / 3); }
    .col-group.compact-gutters.tablet-and-desktop--1-4-and-2-4-and-1-4 > .col:nth-child(3n - 1) {
      width: calc( (100% * 2 / 4 - 1rem) + 1rem / 3); }
    .col-group.compact-gutters.tablet-and-desktop--1-4-and-2-4-and-1-4 > .col:nth-child(3n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 1 / 4 - 1rem) + 1rem / 3); }
    .col-group.compact-gutters.tablet-and-desktop--1-4-and-2-4-and-1-4 > .col:not(:nth-child(3n)) + .col {
      margin-left: 1rem; }
    .col-group.compact-gutters.tablet-and-desktop--1-4-and-2-4-and-1-4 > .col:first-child, .col-group.compact-gutters.tablet-and-desktop--1-4-and-2-4-and-1-4 > .col:nth-child(2), .col-group.compact-gutters.tablet-and-desktop--1-4-and-2-4-and-1-4 > .col:nth-child(3) {
      margin-top: 0; }
    .col-group.compact-gutters.tablet-and-desktop--1-4-and-2-4-and-1-4 > .col:nth-child(n + 4) {
      margin-top: 1rem; }
    .col-group.compact-gutters.tablet-and-desktop--2-5-and-3-5 > .col:nth-child(2n + 1) {
      width: calc( (100% * 2 / 5 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.tablet-and-desktop--2-5-and-3-5 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 3 / 5 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.tablet-and-desktop--2-5-and-3-5 > .col:not(:nth-child(2n)) + .col {
      margin-left: 1rem; }
    .col-group.compact-gutters.tablet-and-desktop--2-5-and-3-5 > .col:first-child, .col-group.compact-gutters.tablet-and-desktop--2-5-and-3-5 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group.compact-gutters.tablet-and-desktop--2-5-and-3-5 > .col:nth-child(n + 3) {
      margin-top: 1rem; }
    .col-group.compact-gutters.tablet-and-desktop--3-5-and-2-5 > .col:nth-child(2n + 1) {
      width: calc( (100% * 3 / 5 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.tablet-and-desktop--3-5-and-2-5 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 2 / 5 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.tablet-and-desktop--3-5-and-2-5 > .col:not(:nth-child(2n)) + .col {
      margin-left: 1rem; }
    .col-group.compact-gutters.tablet-and-desktop--3-5-and-2-5 > .col:first-child, .col-group.compact-gutters.tablet-and-desktop--3-5-and-2-5 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group.compact-gutters.tablet-and-desktop--3-5-and-2-5 > .col:nth-child(n + 3) {
      margin-top: 1rem; }
    .col-group.compact-gutters.tablet-and-desktop--ruled {
      position: relative; }
      .col-group.compact-gutters.tablet-and-desktop--ruled > .col:nth-child(2):before,
      .col-group.compact-gutters.tablet-and-desktop--ruled > .col:nth-child(3):before,
      .col-group.compact-gutters.tablet-and-desktop--ruled > .col:nth-child(4):before {
        border-left: 1px solid #D1D2D4;
        content: "";
        display: block;
        margin-left: -0.5rem;
        position: absolute;
        top: 0;
        bottom: 0; }
    .col-group.compact-gutters.tablet-and-desktop--centered > .col {
      margin-left: auto;
      margin-right: auto; }
      .col-group.compact-gutters.tablet-and-desktop--centered > .col + .col {
        margin-top: 1em; }
    .col-group.compact-gutters.tablet-and-desktop--col-reverse {
      -webkit-box-direction: reverse;
      -webkit-box-orient: vertical;
      -webkit-flex-direction: column-reverse;
      -moz-flex-direction: column-reverse;
      -ms-flex-direction: column-reverse;
      flex-direction: column-reverse; } }
  @media (min-width: 760px) {
    .col-group.compact-gutters.tablet-and-above--full > .col {
      width: 100%; }
      .col-group.compact-gutters.tablet-and-above--full > .col + .col {
        margin-top: 1rem; }
    .col-group.compact-gutters.tablet-and-above--1-2 > .col {
      width: calc( (100% * 1 / 2 - 1rem) + 1rem / 2);
      max-width: calc( (100% * 1 / 2 - 1rem) + 1rem / 2); }
      .col-group.compact-gutters.tablet-and-above--1-2 > .col:not(:nth-child(2n)) + .col {
        margin-left: 1rem; }
      .col-group.compact-gutters.tablet-and-above--1-2 > .col:nth-child(2n) {
        flex: 1 1 0;
        width: auto; }
      .col-group.compact-gutters.tablet-and-above--1-2 > .col:first-child, .col-group.compact-gutters.tablet-and-above--1-2 > .col:nth-child(2) {
        margin-top: 0; }
      .col-group.compact-gutters.tablet-and-above--1-2 > .col:nth-child(n + 3) {
        margin-top: 1rem; }
    .col-group.compact-gutters.tablet-and-above--1-3 > .col {
      width: calc( (100% * 1 / 3 - 1rem) + 1rem / 3);
      max-width: calc( (100% * 1 / 3 - 1rem) + 1rem / 3); }
      .col-group.compact-gutters.tablet-and-above--1-3 > .col:not(:nth-child(3n)) + .col {
        margin-left: 1rem; }
      .col-group.compact-gutters.tablet-and-above--1-3 > .col:nth-child(3n) {
        flex: 1 1 0;
        width: auto; }
      .col-group.compact-gutters.tablet-and-above--1-3 > .col:first-child, .col-group.compact-gutters.tablet-and-above--1-3 > .col:nth-child(2), .col-group.compact-gutters.tablet-and-above--1-3 > .col:nth-child(3) {
        margin-top: 0; }
      .col-group.compact-gutters.tablet-and-above--1-3 > .col:nth-child(n + 4) {
        margin-top: 1rem; }
    .col-group.compact-gutters.tablet-and-above--1-4 > .col {
      width: calc( (100% * 1 / 4 - 1rem) + 1rem / 4);
      max-width: calc( (100% * 1 / 4 - 1rem) + 1rem / 4); }
      .col-group.compact-gutters.tablet-and-above--1-4 > .col:not(:nth-child(4n)) + .col {
        margin-left: 1rem; }
      .col-group.compact-gutters.tablet-and-above--1-4 > .col:nth-child(4n) {
        flex: 1 1 0;
        width: auto; }
      .col-group.compact-gutters.tablet-and-above--1-4 > .col:first-child, .col-group.compact-gutters.tablet-and-above--1-4 > .col:nth-child(2), .col-group.compact-gutters.tablet-and-above--1-4 > .col:nth-child(3), .col-group.compact-gutters.tablet-and-above--1-4 > .col:nth-child(4) {
        margin-top: 0; }
      .col-group.compact-gutters.tablet-and-above--1-4 > .col:nth-child(n + 5) {
        margin-top: 1rem; }
    .col-group.compact-gutters.tablet-and-above--1-5 > .col {
      width: calc( (100% * 1 / 5 - 1rem) + 1rem / 5);
      max-width: calc( (100% * 1 / 5 - 1rem) + 1rem / 5); }
      .col-group.compact-gutters.tablet-and-above--1-5 > .col:not(:nth-child(5n)) + .col {
        margin-left: 1rem; }
      .col-group.compact-gutters.tablet-and-above--1-5 > .col:nth-child(5n) {
        flex: 1 1 0;
        width: auto; }
      .col-group.compact-gutters.tablet-and-above--1-5 > .col:first-child, .col-group.compact-gutters.tablet-and-above--1-5 > .col:nth-child(2), .col-group.compact-gutters.tablet-and-above--1-5 > .col:nth-child(3), .col-group.compact-gutters.tablet-and-above--1-5 > .col:nth-child(4), .col-group.compact-gutters.tablet-and-above--1-5 > .col:nth-child(5) {
        margin-top: 0; }
      .col-group.compact-gutters.tablet-and-above--1-5 > .col:nth-child(n + 6) {
        margin-top: 1rem; }
    .col-group.compact-gutters.tablet-and-above--1-3-and-2-3 > .col:nth-child(2n + 1) {
      width: calc( (100% * 1 / 3 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.tablet-and-above--1-3-and-2-3 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 2 / 3 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.tablet-and-above--1-3-and-2-3 > .col:not(:nth-child(2n)) + .col {
      margin-left: 1rem; }
    .col-group.compact-gutters.tablet-and-above--1-3-and-2-3 > .col:first-child, .col-group.compact-gutters.tablet-and-above--1-3-and-2-3 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group.compact-gutters.tablet-and-above--1-3-and-2-3 > .col:nth-child(n + 3) {
      margin-top: 1rem; }
    .col-group.compact-gutters.tablet-and-above--2-3-and-1-3 > .col:nth-child(2n + 1) {
      width: calc( (100% * 2 / 3 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.tablet-and-above--2-3-and-1-3 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 1 / 3 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.tablet-and-above--2-3-and-1-3 > .col:not(:nth-child(2n)) + .col {
      margin-left: 1rem; }
    .col-group.compact-gutters.tablet-and-above--2-3-and-1-3 > .col:first-child, .col-group.compact-gutters.tablet-and-above--2-3-and-1-3 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group.compact-gutters.tablet-and-above--2-3-and-1-3 > .col:nth-child(n + 3) {
      margin-top: 1rem; }
    .col-group.compact-gutters.tablet-and-above--1-4-and-3-4 > .col:nth-child(2n + 1) {
      width: calc( (100% * 1 / 4 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.tablet-and-above--1-4-and-3-4 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 3 / 4 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.tablet-and-above--1-4-and-3-4 > .col:not(:nth-child(2n)) + .col {
      margin-left: 1rem; }
    .col-group.compact-gutters.tablet-and-above--1-4-and-3-4 > .col:first-child, .col-group.compact-gutters.tablet-and-above--1-4-and-3-4 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group.compact-gutters.tablet-and-above--1-4-and-3-4 > .col:nth-child(n + 3) {
      margin-top: 1rem; }
    .col-group.compact-gutters.tablet-and-above--3-4-and-1-4 > .col:nth-child(2n + 1) {
      width: calc( (100% * 3 / 4 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.tablet-and-above--3-4-and-1-4 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 1 / 4 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.tablet-and-above--3-4-and-1-4 > .col:not(:nth-child(2n)) + .col {
      margin-left: 1rem; }
    .col-group.compact-gutters.tablet-and-above--3-4-and-1-4 > .col:first-child, .col-group.compact-gutters.tablet-and-above--3-4-and-1-4 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group.compact-gutters.tablet-and-above--3-4-and-1-4 > .col:nth-child(n + 3) {
      margin-top: 1rem; }
    .col-group.compact-gutters.tablet-and-above--1-4-and-2-4-and-1-4 > .col:nth-child(3n + 1) {
      width: calc( (100% * 1 / 4 - 1rem) + 1rem / 3); }
    .col-group.compact-gutters.tablet-and-above--1-4-and-2-4-and-1-4 > .col:nth-child(3n - 1) {
      width: calc( (100% * 2 / 4 - 1rem) + 1rem / 3); }
    .col-group.compact-gutters.tablet-and-above--1-4-and-2-4-and-1-4 > .col:nth-child(3n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 1 / 4 - 1rem) + 1rem / 3); }
    .col-group.compact-gutters.tablet-and-above--1-4-and-2-4-and-1-4 > .col:not(:nth-child(3n)) + .col {
      margin-left: 1rem; }
    .col-group.compact-gutters.tablet-and-above--1-4-and-2-4-and-1-4 > .col:first-child, .col-group.compact-gutters.tablet-and-above--1-4-and-2-4-and-1-4 > .col:nth-child(2), .col-group.compact-gutters.tablet-and-above--1-4-and-2-4-and-1-4 > .col:nth-child(3) {
      margin-top: 0; }
    .col-group.compact-gutters.tablet-and-above--1-4-and-2-4-and-1-4 > .col:nth-child(n + 4) {
      margin-top: 1rem; }
    .col-group.compact-gutters.tablet-and-above--2-5-and-3-5 > .col:nth-child(2n + 1) {
      width: calc( (100% * 2 / 5 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.tablet-and-above--2-5-and-3-5 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 3 / 5 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.tablet-and-above--2-5-and-3-5 > .col:not(:nth-child(2n)) + .col {
      margin-left: 1rem; }
    .col-group.compact-gutters.tablet-and-above--2-5-and-3-5 > .col:first-child, .col-group.compact-gutters.tablet-and-above--2-5-and-3-5 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group.compact-gutters.tablet-and-above--2-5-and-3-5 > .col:nth-child(n + 3) {
      margin-top: 1rem; }
    .col-group.compact-gutters.tablet-and-above--3-5-and-2-5 > .col:nth-child(2n + 1) {
      width: calc( (100% * 3 / 5 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.tablet-and-above--3-5-and-2-5 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 2 / 5 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.tablet-and-above--3-5-and-2-5 > .col:not(:nth-child(2n)) + .col {
      margin-left: 1rem; }
    .col-group.compact-gutters.tablet-and-above--3-5-and-2-5 > .col:first-child, .col-group.compact-gutters.tablet-and-above--3-5-and-2-5 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group.compact-gutters.tablet-and-above--3-5-and-2-5 > .col:nth-child(n + 3) {
      margin-top: 1rem; }
    .col-group.compact-gutters.tablet-and-above--ruled {
      position: relative; }
      .col-group.compact-gutters.tablet-and-above--ruled > .col:nth-child(2):before,
      .col-group.compact-gutters.tablet-and-above--ruled > .col:nth-child(3):before,
      .col-group.compact-gutters.tablet-and-above--ruled > .col:nth-child(4):before {
        border-left: 1px solid #D1D2D4;
        content: "";
        display: block;
        margin-left: -0.5rem;
        position: absolute;
        top: 0;
        bottom: 0; }
    .col-group.compact-gutters.tablet-and-above--centered > .col {
      margin-left: auto;
      margin-right: auto; }
      .col-group.compact-gutters.tablet-and-above--centered > .col + .col {
        margin-top: 1em; }
    .col-group.compact-gutters.tablet-and-above--col-reverse {
      -webkit-box-direction: reverse;
      -webkit-box-orient: vertical;
      -webkit-flex-direction: column-reverse;
      -moz-flex-direction: column-reverse;
      -ms-flex-direction: column-reverse;
      flex-direction: column-reverse; } }
  @media (min-width: 960px) {
    .col-group.compact-gutters.desktop-and-above--full > .col {
      width: 100%; }
      .col-group.compact-gutters.desktop-and-above--full > .col + .col {
        margin-top: 1rem; }
    .col-group.compact-gutters.desktop-and-above--1-2 > .col {
      width: calc( (100% * 1 / 2 - 1rem) + 1rem / 2);
      max-width: calc( (100% * 1 / 2 - 1rem) + 1rem / 2); }
      .col-group.compact-gutters.desktop-and-above--1-2 > .col:not(:nth-child(2n)) + .col {
        margin-left: 1rem; }
      .col-group.compact-gutters.desktop-and-above--1-2 > .col:nth-child(2n) {
        flex: 1 1 0;
        width: auto; }
      .col-group.compact-gutters.desktop-and-above--1-2 > .col:first-child, .col-group.compact-gutters.desktop-and-above--1-2 > .col:nth-child(2) {
        margin-top: 0; }
      .col-group.compact-gutters.desktop-and-above--1-2 > .col:nth-child(n + 3) {
        margin-top: 1rem; }
    .col-group.compact-gutters.desktop-and-above--1-3 > .col {
      width: calc( (100% * 1 / 3 - 1rem) + 1rem / 3);
      max-width: calc( (100% * 1 / 3 - 1rem) + 1rem / 3); }
      .col-group.compact-gutters.desktop-and-above--1-3 > .col:not(:nth-child(3n)) + .col {
        margin-left: 1rem; }
      .col-group.compact-gutters.desktop-and-above--1-3 > .col:nth-child(3n) {
        flex: 1 1 0;
        width: auto; }
      .col-group.compact-gutters.desktop-and-above--1-3 > .col:first-child, .col-group.compact-gutters.desktop-and-above--1-3 > .col:nth-child(2), .col-group.compact-gutters.desktop-and-above--1-3 > .col:nth-child(3) {
        margin-top: 0; }
      .col-group.compact-gutters.desktop-and-above--1-3 > .col:nth-child(n + 4) {
        margin-top: 1rem; }
    .col-group.compact-gutters.desktop-and-above--1-4 > .col {
      width: calc( (100% * 1 / 4 - 1rem) + 1rem / 4);
      max-width: calc( (100% * 1 / 4 - 1rem) + 1rem / 4); }
      .col-group.compact-gutters.desktop-and-above--1-4 > .col:not(:nth-child(4n)) + .col {
        margin-left: 1rem; }
      .col-group.compact-gutters.desktop-and-above--1-4 > .col:nth-child(4n) {
        flex: 1 1 0;
        width: auto; }
      .col-group.compact-gutters.desktop-and-above--1-4 > .col:first-child, .col-group.compact-gutters.desktop-and-above--1-4 > .col:nth-child(2), .col-group.compact-gutters.desktop-and-above--1-4 > .col:nth-child(3), .col-group.compact-gutters.desktop-and-above--1-4 > .col:nth-child(4) {
        margin-top: 0; }
      .col-group.compact-gutters.desktop-and-above--1-4 > .col:nth-child(n + 5) {
        margin-top: 1rem; }
    .col-group.compact-gutters.desktop-and-above--1-5 > .col {
      width: calc( (100% * 1 / 5 - 1rem) + 1rem / 5);
      max-width: calc( (100% * 1 / 5 - 1rem) + 1rem / 5); }
      .col-group.compact-gutters.desktop-and-above--1-5 > .col:not(:nth-child(5n)) + .col {
        margin-left: 1rem; }
      .col-group.compact-gutters.desktop-and-above--1-5 > .col:nth-child(5n) {
        flex: 1 1 0;
        width: auto; }
      .col-group.compact-gutters.desktop-and-above--1-5 > .col:first-child, .col-group.compact-gutters.desktop-and-above--1-5 > .col:nth-child(2), .col-group.compact-gutters.desktop-and-above--1-5 > .col:nth-child(3), .col-group.compact-gutters.desktop-and-above--1-5 > .col:nth-child(4), .col-group.compact-gutters.desktop-and-above--1-5 > .col:nth-child(5) {
        margin-top: 0; }
      .col-group.compact-gutters.desktop-and-above--1-5 > .col:nth-child(n + 6) {
        margin-top: 1rem; }
    .col-group.compact-gutters.desktop-and-above--1-3-and-2-3 > .col:nth-child(2n + 1) {
      width: calc( (100% * 1 / 3 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.desktop-and-above--1-3-and-2-3 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 2 / 3 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.desktop-and-above--1-3-and-2-3 > .col:not(:nth-child(2n)) + .col {
      margin-left: 1rem; }
    .col-group.compact-gutters.desktop-and-above--1-3-and-2-3 > .col:first-child, .col-group.compact-gutters.desktop-and-above--1-3-and-2-3 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group.compact-gutters.desktop-and-above--1-3-and-2-3 > .col:nth-child(n + 3) {
      margin-top: 1rem; }
    .col-group.compact-gutters.desktop-and-above--2-3-and-1-3 > .col:nth-child(2n + 1) {
      width: calc( (100% * 2 / 3 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.desktop-and-above--2-3-and-1-3 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 1 / 3 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.desktop-and-above--2-3-and-1-3 > .col:not(:nth-child(2n)) + .col {
      margin-left: 1rem; }
    .col-group.compact-gutters.desktop-and-above--2-3-and-1-3 > .col:first-child, .col-group.compact-gutters.desktop-and-above--2-3-and-1-3 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group.compact-gutters.desktop-and-above--2-3-and-1-3 > .col:nth-child(n + 3) {
      margin-top: 1rem; }
    .col-group.compact-gutters.desktop-and-above--1-4-and-3-4 > .col:nth-child(2n + 1) {
      width: calc( (100% * 1 / 4 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.desktop-and-above--1-4-and-3-4 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 3 / 4 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.desktop-and-above--1-4-and-3-4 > .col:not(:nth-child(2n)) + .col {
      margin-left: 1rem; }
    .col-group.compact-gutters.desktop-and-above--1-4-and-3-4 > .col:first-child, .col-group.compact-gutters.desktop-and-above--1-4-and-3-4 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group.compact-gutters.desktop-and-above--1-4-and-3-4 > .col:nth-child(n + 3) {
      margin-top: 1rem; }
    .col-group.compact-gutters.desktop-and-above--3-4-and-1-4 > .col:nth-child(2n + 1) {
      width: calc( (100% * 3 / 4 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.desktop-and-above--3-4-and-1-4 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 1 / 4 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.desktop-and-above--3-4-and-1-4 > .col:not(:nth-child(2n)) + .col {
      margin-left: 1rem; }
    .col-group.compact-gutters.desktop-and-above--3-4-and-1-4 > .col:first-child, .col-group.compact-gutters.desktop-and-above--3-4-and-1-4 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group.compact-gutters.desktop-and-above--3-4-and-1-4 > .col:nth-child(n + 3) {
      margin-top: 1rem; }
    .col-group.compact-gutters.desktop-and-above--1-4-and-2-4-and-1-4 > .col:nth-child(3n + 1) {
      width: calc( (100% * 1 / 4 - 1rem) + 1rem / 3); }
    .col-group.compact-gutters.desktop-and-above--1-4-and-2-4-and-1-4 > .col:nth-child(3n - 1) {
      width: calc( (100% * 2 / 4 - 1rem) + 1rem / 3); }
    .col-group.compact-gutters.desktop-and-above--1-4-and-2-4-and-1-4 > .col:nth-child(3n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 1 / 4 - 1rem) + 1rem / 3); }
    .col-group.compact-gutters.desktop-and-above--1-4-and-2-4-and-1-4 > .col:not(:nth-child(3n)) + .col {
      margin-left: 1rem; }
    .col-group.compact-gutters.desktop-and-above--1-4-and-2-4-and-1-4 > .col:first-child, .col-group.compact-gutters.desktop-and-above--1-4-and-2-4-and-1-4 > .col:nth-child(2), .col-group.compact-gutters.desktop-and-above--1-4-and-2-4-and-1-4 > .col:nth-child(3) {
      margin-top: 0; }
    .col-group.compact-gutters.desktop-and-above--1-4-and-2-4-and-1-4 > .col:nth-child(n + 4) {
      margin-top: 1rem; }
    .col-group.compact-gutters.desktop-and-above--2-5-and-3-5 > .col:nth-child(2n + 1) {
      width: calc( (100% * 2 / 5 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.desktop-and-above--2-5-and-3-5 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 3 / 5 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.desktop-and-above--2-5-and-3-5 > .col:not(:nth-child(2n)) + .col {
      margin-left: 1rem; }
    .col-group.compact-gutters.desktop-and-above--2-5-and-3-5 > .col:first-child, .col-group.compact-gutters.desktop-and-above--2-5-and-3-5 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group.compact-gutters.desktop-and-above--2-5-and-3-5 > .col:nth-child(n + 3) {
      margin-top: 1rem; }
    .col-group.compact-gutters.desktop-and-above--3-5-and-2-5 > .col:nth-child(2n + 1) {
      width: calc( (100% * 3 / 5 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.desktop-and-above--3-5-and-2-5 > .col:nth-child(2n) {
      flex: 1 1 0;
      width: auto;
      max-width: calc( (100% * 2 / 5 - 1rem) + 1rem / 2); }
    .col-group.compact-gutters.desktop-and-above--3-5-and-2-5 > .col:not(:nth-child(2n)) + .col {
      margin-left: 1rem; }
    .col-group.compact-gutters.desktop-and-above--3-5-and-2-5 > .col:first-child, .col-group.compact-gutters.desktop-and-above--3-5-and-2-5 > .col:nth-child(2) {
      margin-top: 0; }
    .col-group.compact-gutters.desktop-and-above--3-5-and-2-5 > .col:nth-child(n + 3) {
      margin-top: 1rem; }
    .col-group.compact-gutters.desktop-and-above--ruled {
      position: relative; }
      .col-group.compact-gutters.desktop-and-above--ruled > .col:nth-child(2):before,
      .col-group.compact-gutters.desktop-and-above--ruled > .col:nth-child(3):before,
      .col-group.compact-gutters.desktop-and-above--ruled > .col:nth-child(4):before {
        border-left: 1px solid #D1D2D4;
        content: "";
        display: block;
        margin-left: -0.5rem;
        position: absolute;
        top: 0;
        bottom: 0; }
    .col-group.compact-gutters.desktop-and-above--centered > .col {
      margin-left: auto;
      margin-right: auto; }
      .col-group.compact-gutters.desktop-and-above--centered > .col + .col {
        margin-top: 1em; }
    .col-group.compact-gutters.desktop-and-above--col-reverse {
      -webkit-box-direction: reverse;
      -webkit-box-orient: vertical;
      -webkit-flex-direction: column-reverse;
      -moz-flex-direction: column-reverse;
      -ms-flex-direction: column-reverse;
      flex-direction: column-reverse; } }

@media (max-width: 759px) {
  .col.mobile--full {
    width: 100% !important;
    max-width: 100% !important; } }

@media (min-width: 760px) and (max-width: 959px) {
  .col.tablet--full {
    width: 100% !important;
    max-width: 100% !important; } }

@media (max-width: 959px) {
  .col.mobile-and-tablet--full {
    width: 100% !important;
    max-width: 100% !important; } }

.col.all--full {
  width: 100% !important;
  max-width: 100% !important; }

.col > :first-child {
  margin-top: 0; }

.col > :last-child {
  margin-bottom: 0; }

/*doc
---
title: Spacing
name: spacing
category: Patterns
---

Spacing = Margins or gutters between blocks of content or text/typographic elements
*/
/*doc
---
title: Typographic Spacing
parent: spacing
name: subTypographicSpacing
---

Vertical (and sometimes horizontal) spacing between typographic elements including h1 - h6 headers, paragraphs, lists, etc.

Margin space is added "between" text elements instead of just to the bottom or top of all elements. This prevents the first and last elements inside a container from having top or bottom margins respectively so that containers will hug text contents. (Uniform padding can then be easily added to the container element itself as needed for a particular design).

Typographic spacing uses em units so is based on each element's individual font-size. Headers (h1 - h6) have wider top margins when combined with other non-header text elements above them.

This spacing system is based off <a href="http://alistapart.com/article/axiomatic-css-and-lobotomized-owls" target="_blank">"Axiomatic CSS and Lobotomized Owls"</a> but is more targeted to to text related elements instead of being applied to all html elements.

```html_example
<h1>Header 1</h1>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ratione delectus, magni, voluptate blanditiis animi itaque amet reprehenderit fuga aliquam veritatis.</p>
<p>Saepe quasi officiis mollitia magnam, esse ratione itaque, facere maxime laboriosam velit pariatur quia repudiandae veritatis modi laborum eligendi aperiam.</p>

<h2>Header 2</h2>
<p>Saepe quasi officiis mollitia magnam, esse ratione itaque, facere maxime laboriosam velit pariatur quia repudiandae veritatis modi laborum eligendi aperiam.</p>

<h2>Header 2</h2>
<h3>Header 3 Subheader</h3>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ratione delectus, magni, voluptate blanditiis animi itaque amet reprehenderit fuga aliquam veritatis.</p>
<p>Saepe quasi officiis mollitia magnam, esse ratione itaque, facere maxime laboriosam velit pariatur quia repudiandae veritatis modi laborum eligendi aperiam.</p>
<p>Necessitatibus aut vel dolorem ipsa id nemo architecto amet nihil libero, repellendus consectetur veniam dolorum, unde quos dolor magnam labore!</p>
```
*/
/*doc
---
title: Block / Gutter Spacing
parent: spacing
name: subBlockSpacing
---

Vertical and horizontal spacing between blocks of content such as gutters between columns or margins between groups of related content.

Uses fixed units instead of ems so that spacing is consistent and independant of an element's text size.

<strong>TODO:</strong> Document and better define standardized gutter spacing. (currently based on width of 20px for column gutters, etc.)

*/
p + *,
h1 + *, h2 + *, h3 + *, h4 + *, h5 + *, h6 + *,
ul + *, ol + *,
hr + *,
table + *, .alert + *, .sub-title + *, .spaced-list > li + *, .bulleted-list + *, .progress-list > li + *,
* + p,
* +
h1,
* + h2,
* + h3,
* + h4,
* + h5,
* + h6,
* +
ul,
* + ol,
* +
hr,
* +
table,
* + .alert,
* + .sub-title, .spaced-list >
* + li,
* + .bulleted-list, .progress-list >
* + li {
  margin-top: 0.8em; }

.compact-spaced-list > li + *, .numbered-list > li + *, .numbered-list p + *, .pdf-doc-list > li + *, .custom-bullet-list > li + *, th p + *, .compact-spaced-list >
* + li, .numbered-list >
* + li, .numbered-list
* + p, .pdf-doc-list >
* + li, .custom-bullet-list >
* + li, th
* + p {
  margin-top: 0.4em; }

.page__footer__copyright__third-party-logos > * + *, .nav-bar__menu > li + *, .main-actions .btn + *,
.main-actions a + *, .multi-section-form-actions .btn + *,
.multi-section-form-actions a + *, .inline-form ol + *,
.inline-form li + *,
.inline-form > p + *,
.inline-form .field-n-error-wrapper + *, .page__footer__copyright__third-party-logos >
* + *, .nav-bar__menu >
* + li, .main-actions
* + .btn,
.main-actions
* + a, .multi-section-form-actions
* + .btn,
.multi-section-form-actions
* + a, .inline-form
* + ol,
.inline-form
* + li,
.inline-form >
* + p,
.inline-form
* + .field-n-error-wrapper {
  margin-left: 1em; }

.alternating-row-table caption > * + *, .hover-row-table caption > * + *, tfoot.table-total td > * + *, .alternating-row-table caption >
* + *, .hover-row-table caption >
* + *, tfoot.table-total td >
* + * {
  margin-left: 0.5em; }

@media (max-width: 759px) {
  p.u-hide-in-mobile + *,
  h1.u-hide-in-mobile + *, h2.u-hide-in-mobile + *, h3.u-hide-in-mobile + *, h4.u-hide-in-mobile + *, h5.u-hide-in-mobile + *, h6.u-hide-in-mobile + *,
  ul.u-hide-in-mobile + *, ol.u-hide-in-mobile + *,
  hr.u-hide-in-mobile + *,
  table.u-hide-in-mobile + *, .u-hide-in-mobile.alert + *, .u-hide-in-mobile.sub-title + *, .spaced-list > li.u-hide-in-mobile + *, .u-hide-in-mobile.bulleted-list + *, .progress-list > li.u-hide-in-mobile + *, .compact-spaced-list > li.u-hide-in-mobile + *, .numbered-list > li.u-hide-in-mobile + *, .numbered-list p.u-hide-in-mobile + *, .pdf-doc-list > li.u-hide-in-mobile + *, .custom-bullet-list > li.u-hide-in-mobile + *, th p.u-hide-in-mobile + *, .page__footer__copyright__third-party-logos > .u-hide-in-mobile + *, .nav-bar__menu > li.u-hide-in-mobile + *, .main-actions .u-hide-in-mobile.btn + *,
  .main-actions a.u-hide-in-mobile + *, .multi-section-form-actions .u-hide-in-mobile.btn + *,
  .multi-section-form-actions a.u-hide-in-mobile + *, .inline-form ol.u-hide-in-mobile + *,
  .inline-form li.u-hide-in-mobile + *,
  .inline-form > p.u-hide-in-mobile + *,
  .inline-form .u-hide-in-mobile.field-n-error-wrapper + *, .alternating-row-table caption > .u-hide-in-mobile + *, .hover-row-table caption > .u-hide-in-mobile + *, tfoot.table-total td > .u-hide-in-mobile + * {
    margin-top: 0;
    margin-left: 0; } }

@media (min-width: 760px) and (max-width: 959px) {
  p.u-hide-in-tablet + *,
  h1.u-hide-in-tablet + *, h2.u-hide-in-tablet + *, h3.u-hide-in-tablet + *, h4.u-hide-in-tablet + *, h5.u-hide-in-tablet + *, h6.u-hide-in-tablet + *,
  ul.u-hide-in-tablet + *, ol.u-hide-in-tablet + *,
  hr.u-hide-in-tablet + *,
  table.u-hide-in-tablet + *, .u-hide-in-tablet.alert + *, .u-hide-in-tablet.sub-title + *, .spaced-list > li.u-hide-in-tablet + *, .u-hide-in-tablet.bulleted-list + *, .progress-list > li.u-hide-in-tablet + *, .compact-spaced-list > li.u-hide-in-tablet + *, .numbered-list > li.u-hide-in-tablet + *, .numbered-list p.u-hide-in-tablet + *, .pdf-doc-list > li.u-hide-in-tablet + *, .custom-bullet-list > li.u-hide-in-tablet + *, th p.u-hide-in-tablet + *, .page__footer__copyright__third-party-logos > .u-hide-in-tablet + *, .nav-bar__menu > li.u-hide-in-tablet + *, .main-actions .u-hide-in-tablet.btn + *,
  .main-actions a.u-hide-in-tablet + *, .multi-section-form-actions .u-hide-in-tablet.btn + *,
  .multi-section-form-actions a.u-hide-in-tablet + *, .inline-form ol.u-hide-in-tablet + *,
  .inline-form li.u-hide-in-tablet + *,
  .inline-form > p.u-hide-in-tablet + *,
  .inline-form .u-hide-in-tablet.field-n-error-wrapper + *, .alternating-row-table caption > .u-hide-in-tablet + *, .hover-row-table caption > .u-hide-in-tablet + *, tfoot.table-total td > .u-hide-in-tablet + * {
    margin-top: 0;
    margin-left: 0; } }

@media (max-width: 959px) {
  p.u-hide-in-mobile-and-tablet + *,
  h1.u-hide-in-mobile-and-tablet + *, h2.u-hide-in-mobile-and-tablet + *, h3.u-hide-in-mobile-and-tablet + *, h4.u-hide-in-mobile-and-tablet + *, h5.u-hide-in-mobile-and-tablet + *, h6.u-hide-in-mobile-and-tablet + *,
  ul.u-hide-in-mobile-and-tablet + *, ol.u-hide-in-mobile-and-tablet + *,
  hr.u-hide-in-mobile-and-tablet + *,
  table.u-hide-in-mobile-and-tablet + *, .u-hide-in-mobile-and-tablet.alert + *, .u-hide-in-mobile-and-tablet.sub-title + *, .spaced-list > li.u-hide-in-mobile-and-tablet + *, .u-hide-in-mobile-and-tablet.bulleted-list + *, .progress-list > li.u-hide-in-mobile-and-tablet + *, .compact-spaced-list > li.u-hide-in-mobile-and-tablet + *, .numbered-list > li.u-hide-in-mobile-and-tablet + *, .numbered-list p.u-hide-in-mobile-and-tablet + *, .pdf-doc-list > li.u-hide-in-mobile-and-tablet + *, .custom-bullet-list > li.u-hide-in-mobile-and-tablet + *, th p.u-hide-in-mobile-and-tablet + *, .page__footer__copyright__third-party-logos > .u-hide-in-mobile-and-tablet + *, .nav-bar__menu > li.u-hide-in-mobile-and-tablet + *, .main-actions .u-hide-in-mobile-and-tablet.btn + *,
  .main-actions a.u-hide-in-mobile-and-tablet + *, .multi-section-form-actions .u-hide-in-mobile-and-tablet.btn + *,
  .multi-section-form-actions a.u-hide-in-mobile-and-tablet + *, .inline-form ol.u-hide-in-mobile-and-tablet + *,
  .inline-form li.u-hide-in-mobile-and-tablet + *,
  .inline-form > p.u-hide-in-mobile-and-tablet + *,
  .inline-form .u-hide-in-mobile-and-tablet.field-n-error-wrapper + *, .alternating-row-table caption > .u-hide-in-mobile-and-tablet + *, .hover-row-table caption > .u-hide-in-mobile-and-tablet + *, tfoot.table-total td > .u-hide-in-mobile-and-tablet + * {
    margin-top: 0;
    margin-left: 0; } }

@media (min-width: 760px) {
  p.u-hide-in-tablet-and-above + *,
  h1.u-hide-in-tablet-and-above + *, h2.u-hide-in-tablet-and-above + *, h3.u-hide-in-tablet-and-above + *, h4.u-hide-in-tablet-and-above + *, h5.u-hide-in-tablet-and-above + *, h6.u-hide-in-tablet-and-above + *,
  ul.u-hide-in-tablet-and-above + *, ol.u-hide-in-tablet-and-above + *,
  hr.u-hide-in-tablet-and-above + *,
  table.u-hide-in-tablet-and-above + *, .u-hide-in-tablet-and-above.alert + *, .u-hide-in-tablet-and-above.sub-title + *, .spaced-list > li.u-hide-in-tablet-and-above + *, .u-hide-in-tablet-and-above.bulleted-list + *, .progress-list > li.u-hide-in-tablet-and-above + *, .compact-spaced-list > li.u-hide-in-tablet-and-above + *, .numbered-list > li.u-hide-in-tablet-and-above + *, .numbered-list p.u-hide-in-tablet-and-above + *, .pdf-doc-list > li.u-hide-in-tablet-and-above + *, .custom-bullet-list > li.u-hide-in-tablet-and-above + *, th p.u-hide-in-tablet-and-above + *, .page__footer__copyright__third-party-logos > .u-hide-in-tablet-and-above + *, .nav-bar__menu > li.u-hide-in-tablet-and-above + *, .main-actions .u-hide-in-tablet-and-above.btn + *,
  .main-actions a.u-hide-in-tablet-and-above + *, .multi-section-form-actions .u-hide-in-tablet-and-above.btn + *,
  .multi-section-form-actions a.u-hide-in-tablet-and-above + *, .inline-form ol.u-hide-in-tablet-and-above + *,
  .inline-form li.u-hide-in-tablet-and-above + *,
  .inline-form > p.u-hide-in-tablet-and-above + *,
  .inline-form .u-hide-in-tablet-and-above.field-n-error-wrapper + *, .alternating-row-table caption > .u-hide-in-tablet-and-above + *, .hover-row-table caption > .u-hide-in-tablet-and-above + *, tfoot.table-total td > .u-hide-in-tablet-and-above + * {
    margin-top: 0;
    margin-left: 0; } }

@media (min-width: 960px) {
  p.u-hide-in-desktop-and-above + *,
  h1.u-hide-in-desktop-and-above + *, h2.u-hide-in-desktop-and-above + *, h3.u-hide-in-desktop-and-above + *, h4.u-hide-in-desktop-and-above + *, h5.u-hide-in-desktop-and-above + *, h6.u-hide-in-desktop-and-above + *,
  ul.u-hide-in-desktop-and-above + *, ol.u-hide-in-desktop-and-above + *,
  hr.u-hide-in-desktop-and-above + *,
  table.u-hide-in-desktop-and-above + *, .u-hide-in-desktop-and-above.alert + *, .u-hide-in-desktop-and-above.sub-title + *, .spaced-list > li.u-hide-in-desktop-and-above + *, .u-hide-in-desktop-and-above.bulleted-list + *, .progress-list > li.u-hide-in-desktop-and-above + *, .compact-spaced-list > li.u-hide-in-desktop-and-above + *, .numbered-list > li.u-hide-in-desktop-and-above + *, .numbered-list p.u-hide-in-desktop-and-above + *, .pdf-doc-list > li.u-hide-in-desktop-and-above + *, .custom-bullet-list > li.u-hide-in-desktop-and-above + *, th p.u-hide-in-desktop-and-above + *, .page__footer__copyright__third-party-logos > .u-hide-in-desktop-and-above + *, .nav-bar__menu > li.u-hide-in-desktop-and-above + *, .main-actions .u-hide-in-desktop-and-above.btn + *,
  .main-actions a.u-hide-in-desktop-and-above + *, .multi-section-form-actions .u-hide-in-desktop-and-above.btn + *,
  .multi-section-form-actions a.u-hide-in-desktop-and-above + *, .inline-form ol.u-hide-in-desktop-and-above + *,
  .inline-form li.u-hide-in-desktop-and-above + *,
  .inline-form > p.u-hide-in-desktop-and-above + *,
  .inline-form .u-hide-in-desktop-and-above.field-n-error-wrapper + *, .alternating-row-table caption > .u-hide-in-desktop-and-above + *, .hover-row-table caption > .u-hide-in-desktop-and-above + *, tfoot.table-total td > .u-hide-in-desktop-and-above + * {
    margin-top: 0;
    margin-left: 0; } }

.u-remove-vertical-spacing * + * {
  margin-top: 0 !important; }

/*doc
---
title: Padding
name: padding
category: Patterns
---

Padding = Standardized padding for container elements

<strong>TODO:</strong> Define standardized padding styles.

*/
/*
  * Backgrounds
  * Borders and outlines
  * Buttons
  * Header styles (this should probably move to a "text" based styles category)
  * Links
  * Lists
  * Misc Helpers
  * Shadows
*/
.page__footer__main, .page__footer__subfooter, .help-panel, .main__header, .main__header__sub {
  position: relative; }
  .page__footer__main:before, .page__footer__subfooter:before, .help-panel:before, .main__header:before, .main__header__sub:before, .page__footer__main:after, .page__footer__subfooter:after, .help-panel:after, .main__header:after, .main__header__sub:after {
    background: inherit;
    border: inherit;
    box-shadow: inherit;
    content: "";
    display: block;
    width: 100%;
    position: absolute;
    top: 0;
    bottom: 0; }
  .page__footer__main:before, .page__footer__subfooter:before, .help-panel:before, .main__header:before, .main__header__sub:before {
    left: -100%; }
  .page__footer__main:after, .page__footer__subfooter:after, .help-panel:after, .main__header:after, .main__header__sub:after {
    left: 100%; }

.btn-group--toggle input[type="radio"]:focus + .btn:focus {
  outline: none;
  border: 1px solid #29C4F3 !important;
  -webkit-box-shadow: 0 0 5px #29C4F3 !important;
  box-shadow: 0 0 5px #29C4F3 !important; }

.btn:disabled {
  background: #d1d3d4 !important;
  border-color: #d1d3d4 !important;
  color: #fff !important;
  cursor: default; }
  .btn:hover:disabled, .btn:focus:disabled, .btn:active:disabled {
    background: #d1d3d4 !important;
    border-color: #d1d3d4 !important; }

.explanatory-title, .sub-title, .back-link, .alternating-row-table tbody th, .hover-row-table tbody th, .alternating-row-table > thead th, .hover-row-table > thead th {
  letter-spacing: 0.04em;
  text-transform: uppercase;
  line-height: 1.1; }

h1, .h1 {
  font-size: 2.4rem !important;
  font-weight: 400;
  line-height: 1.1; }

h2, .h2 {
  font-size: 2.1rem !important;
  font-weight: 400;
  line-height: 1.1; }

h3, .aligned-form legend, .h3 {
  font-size: 1.8rem !important;
  font-weight: 400;
  line-height: 1.1; }

h4, caption, .h4 {
  font-size: 1.6rem !important;
  font-weight: 700;
  line-height: 1.1; }

h5, .h5 {
  font-size: 1.4rem !important;
  font-weight: 700;
  line-height: 1.1; }

h6, .h6 {
  font-size: 1.2rem !important;
  font-weight: 700;
  line-height: 1.1; }

a, .btn-link, .fake-link, .action-link {
  color: #117DB0;
  cursor: pointer;
  outline: none;
  text-decoration: none; }
  a:hover, .btn-link:hover, .fake-link:hover, .action-link:hover {
    color: #0A5070; }
  a:active, .btn-link:active, .fake-link:active, .action-link:active {
    color: #0A5070; }

.page__footer__copyright__nav-links > li {
  display: inline; }
  .page__footer__copyright__nav-links > li + li:before {
    content: " • ";
    display: inline; }

.pdf-doc-list__links > li,
.piped-separated-horiz-list > li {
  display: inline; }
  .pdf-doc-list__links > li + li:before,
  .piped-separated-horiz-list > li + li:before {
    content: " | ";
    display: inline; }

.main__header--dashboard, .accent-blue-box {
  background: #0D3A54 !important;
  color: #fff; }
  .main__header--dashboard a, .accent-blue-box a {
    color: #29C4F3; }
    .main__header--dashboard a:hover, .accent-blue-box a:hover {
      color: #0b9dc9; }
  .main__header--dashboard strong, .accent-blue-box strong {
    color: #fff; }

.page__footer__main, .page__footer__subfooter, .help-panel, .main__header, .main__header__sub {
  position: relative; }
  .page__footer__main:before, .page__footer__subfooter:before, .help-panel:before, .main__header:before, .main__header__sub:before, .page__footer__main:after, .page__footer__subfooter:after, .help-panel:after, .main__header:after, .main__header__sub:after {
    background: inherit;
    border: inherit;
    box-shadow: inherit;
    content: "";
    display: block;
    width: 100%;
    position: absolute;
    top: 0;
    bottom: 0; }
  .page__footer__main:before, .page__footer__subfooter:before, .help-panel:before, .main__header:before, .main__header__sub:before {
    left: -100%; }
  .page__footer__main:after, .page__footer__subfooter:after, .help-panel:after, .main__header:after, .main__header__sub:after {
    left: 100%; }

.btn-group--toggle input[type="radio"]:focus + .btn {
  outline: none;
  border-color: #29C4F3 !important;
  box-shadow: 0 0 5px 0.5px #29C4F3 !important; }

/*doc
---
title: Intro
name: aaaaIntro
category: Base
---

Welcome to SoFi's living style guide. This guide is generated from specially formatted comments within the shared-styles scss files using <a href="https://trulia.github.io/hologram/" target="_blank">Hologram</a>.

<h2>Styles are separated into these main categories:</h2>

* <strong>Patterns =</strong> abstract layout patterns, grid, spacing, padding, decoration, and misc. utility styles
* <strong>Base =</strong> Basic HTML element default styling, includes typography styles and colors
* <strong>Templates =</strong> shared page templates and standard "chrome" such as nav bars, footers, etc.
* <strong>Modules =</strong> Special elements and components

<hr>
*/
/*doc
---
title: Base
name: aaaBase
category: Base
---

Base = HTML element default styles

Includes typography styles such as fonts and text spacing. Also brand colors such as background colors, etc...

See [Modules][aaaModules] for more custom and complex component styles.
*/
/*doc
---
title: Typography
name: typography
category: Base
---

Typography = Anything related to basic text content styling and associated elements including fonts, colors, font-sizes, etc.

See [typographic spacing pattern styles][subTypographicSpacing] for more examples of headers and paragraphs in relationship to each other.

*/
/*doc
---
title: Font Families
parent: typography
name: subFontFamilies
---

Header and body text font: "Adelle Sans"
*/
/*doc
---
title: Font Sizes
parent: typography
name: subFontSizes
---

NOTE: The actual font sizes in the CSS use "rem units" not pixels. The below listed sizes are used in tablet and above width and are calculated off of base 10px. Font sizes are bumped down slightly for mobile width by instead calculating off base 9px. (Adjust your browser screen width to view the change in font size in "mobile" vs. other widths.)

<div class="col-group all--1-2">
  <div class="col">
    <p>TABLET & ABOVE:<br>
    h1: 24px <small><em>(Page Heading)</em></small><br>
    h2: 18px <small><em>("Product" Heading)</em></small><br>
    h3: 14px <small><em>(Section / Box Heading)</em></small></p>

    <p><em>(h4, h5 & h6 not defined in UX style guide)</em><br>
    h4: 16px<br>
    h5: 14px<br>
    h6: 12px</p>

    <p>body text: 16px<br>
    small text: 12px</p>
  </div>

  <div class="col">
    <p>MOBILE:<br>
    h1: 22px<br>
    h2: 16px<br>
    h3: 13px</p>

    <p><em>(not defined in UX style guide)</em><br>
    h4: 14px<br>
    h5: 13px<br>
    h6: 11px</p>

    <p>body text: 14px<br>
    small text: 11px</p>
  </div>
</div>

*/
/*doc
---
title: Line Heights
parent: typography
name: subLineHeights
---

These use unitless values so are relative to the font size of each element.

**Body text:**<br>
line-height: 1.4

**Header text:**<br>
line-height: 1.1
*/
/*doc
---
title: Headers
parent: typography
name: subHeaders
---

```html_example
<h1>Header 1 (Page Heading)</h1>
<h2>Header 2 (Dashboard Heading)</h2>
<h3>Header 3 (Product Heading)</h3>

<hr>
<p class="small">(below are not defined in UX styles)</p>
<h4>Header 4</h4>
<h5>Header 5</h5>
<h6>Header 6</h6>
```
*/
/*doc
---
title: Paragraphs
parent: typography
name: subParagraphs
---

```html_example
<p>Lorem ipsum dolor sit amet, <strong>some bold text</strong> consectetur adipiscing elit. Aenean pretium, urna vitae tempor sodales, metus diam rutrum arcu, eget porttitor erat sapien sit amet metus. Etiam porttitor dolor at metus auctor luctus. Integer urna ligula, ultrices at accumsan nec, rutrum in lacus. Integer eu dolor vel ipsum cursus cursus. Phasellus sed blandit nibh.</p>
<p>Saepe quasi officiis mollitia magnam, esse ratione itaque, facere maxime laboriosam velit pariatur quia repudiandae veritatis modi laborum eligendi aperiam. Curabitur tempus suscipit ipsum, quis consectetur nisi sagittis eget. Donec fermentum mollis augue.</p>
<p>Necessitatibus aut vel dolorem ipsa id nemo architecto amet nihil libero, repellendus consectetur veniam dolorum, unde quos dolor magnam labore! Sed tristique, massa eget imperdiet lobortis.</p>
```
*/
/*doc
---
title: Links
name: links
category: Base
---

These are the default link styles. See [module link styles][links] for special targeted link styles.

```html_example
<p>
  <a href="#">This is a stand alone text link.</a>
</p>
<p>
  Lorem ipsum dolor <a href="#">link within a sentence</a> sit amet, consectetur adipiscing elit.
</p>
```
*/
/*doc
---
title: Small Text
parent: typography
name: subSmall
---

The "Small" tag should be used for fine print and side comments. We also have a "small" class name which can be used on any element if the small tag doesn't seem semantically appropriate for your use case.

```html_example
<p>Regular paragraph without small text.</p>
<p>
  <small>This is an example of small text.</small>
</p>
<p class="small">
  An example of an alternate way to use the small text style.
</p>
```
*/
* {
  box-sizing: border-box;
  margin: 0; }

html, body {
  height: 100%; }

body, figure, ul {
  padding: 0; }

ul {
  list-style-type: none; }

footer, header, main {
  display: block; }

pre {
  white-space: pre-wrap; }

html {
  -webkit-tap-highlight-color: transparent;
  -webkit-text-size-adjust: 100%;
  overflow-x: hidden;
  scroll-behavior: smooth; }
  @media (max-width: 759px) {
    html {
      font-size: 9px; } }
  @media (min-width: 760px) {
    html {
      font-size: 10px; } }

body {
  color: #3d3d3d;
  font-family: "Adelle Sans", Helvetica, Arial, "Lucida Grande", sans-serif;
  font-size: 1.6em;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  line-height: 1.4; }

small {
  font-size: 1.2rem;
  font-weight: normal; }

time {
  font-size: 1.2rem;
  font-weight: normal; }

hr {
  background: #D1D2D4;
  border: 0;
  height: 1px;
  margin: 1em 0; }

h1, h2, h3, h4, h5, h6 {
  font-family: "Adelle Sans", Helvetica, Arial, "Lucida Grande", sans-serif; }

:not(h1):not(h2):not(h3):not(h4):not(h5):not(h6) + h1, :not(h1):not(h2):not(h3):not(h4):not(h5):not(h6) + h2, :not(h1):not(h2):not(h3):not(h4):not(h5):not(h6) + h3, :not(h1):not(h2):not(h3):not(h4):not(h5):not(h6) + h4, :not(h1):not(h2):not(h3):not(h4):not(h5):not(h6) + h5, :not(h1):not(h2):not(h3):not(h4):not(h5):not(h6) + h6 {
  margin-top: 1.6em; }

button, input, select, textarea {
  font-size: 1.6rem;
  color: inherit;
  font-family: inherit;
  max-width: 100%; }

button,
input[type="button"],
input[type="reset"],
input[type="submit"],
input[type="file"] {
  cursor: pointer; }
  button:focus,
  input[type="button"]:focus,
  input[type="reset"]:focus,
  input[type="submit"]:focus,
  input[type="file"]:focus {
    outline: 0; }

input[type="radio"],
input[type="checkbox"] {
  font-size: 16px;
  width: 1em;
  height: 1em;
  vertical-align: middle; }
  input[type="radio"]:focus,
  input[type="checkbox"]:focus {
    outline: 0; }

input:not([type="submit"]):not([type="reset"]):not([type="file"]):not([type="button"]):not([type="radio"]):not([type="checkbox"]),
textarea,
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
  -webkit-appearance: none; }

input[type="number"] {
  -moz-appearance: textfield; }

input[maxlength="2"] {
  width: 2em !important; }

input[maxlength="3"] {
  width: 3em !important; }

input[maxlength="4"] {
  width: 4em !important; }

input[maxlength="5"] {
  width: 5em !important; }

input + select {
  width: auto; }

textarea {
  vertical-align: top;
  width: 100%;
  height: 5em;
  resize: vertical; }

label {
  line-height: 1.1;
  margin-bottom: 0.3em; }

legend {
  background-color: inherit;
  font-weight: 700;
  line-height: 1.1;
  padding: 0; }

fieldset {
  border: 0;
  min-width: 0;
  padding: 0; }

body:not(:-moz-handler-blocked) fieldset {
  display: table-cell; }

li select:only-of-type {
  width: 100%; }

::-webkit-input-placeholder {
  color: #8A8B8A; }

:-moz-placeholder {
  color: #8A8B8A; }

::-moz-placeholder {
  color: #8A8B8A; }

:-ms-input-placeholder {
  color: #8A8B8A; }

::input-placeholder {
  color: #8A8B8A; }

input:not([type="submit"]):not([type="reset"]):not([type="file"]):not([type="button"]):not([type="radio"]):not([type="checkbox"]),
select,
textarea {
  background-color: transparent;
  border-radius: 0; }
  input:not([type="submit"]):not([type="reset"]):not([type="file"]):not([type="button"]):not([type="radio"]):not([type="checkbox"]):focus,
  select:focus,
  textarea:focus {
    border-color: #117DB0 !important;
    box-shadow: none !important;
    outline: 0; }
  input:not([type="submit"]):not([type="reset"]):not([type="file"]):not([type="button"]):not([type="radio"]):not([type="checkbox"]):disabled,
  select:disabled,
  textarea:disabled {
    background-color: transparent !important;
    color: #3d3d3d;
    -webkit-text-fill-color: #3d3d3d;
    opacity: 1;
    resize: none; }

input:not([type="submit"]):not([type="reset"]):not([type="file"]):not([type="button"]):not([type="radio"]):not([type="checkbox"]),
select {
  border: 0;
  border-bottom: 1px solid #D1D2D4;
  padding: 0; }
  input:not([type="submit"]):not([type="reset"]):not([type="file"]):not([type="button"]):not([type="radio"]):not([type="checkbox"]):focus,
  select:focus {
    border-width: 0 0 1px 0 !important; }

textarea {
  border: 1px solid #D1D2D4;
  padding: 0.1em 0.3em; }

input:not([type="submit"]):not([type="reset"]):not([type="file"]):not([type="button"]):not([type="radio"]):not([type="checkbox"]),
select {
  height: 1.5em; }

select {
  background: url("./libraries/sofi-global/assets/images/icons/arrow-angle-down.svg") no-repeat;
  background-position: right .6em bottom 50%;
  border-radius: 0;
  -moz-border-radius: 0;
  -moz-appearance: none;
  -webkit-appearance: none;
  -webkit-border-radius: 0;
  padding-right: 2.2em;
  min-width: 5em;
  vertical-align: middle; }
  select::-ms-expand {
    display: none; }
  select + select {
    margin-left: 0.4em; }

label + ul,
label + ol {
  margin-top: 0.8em !important; }

fieldset + fieldset {
  margin-top: 2rem; }

caption, th {
  text-align: left; }

caption {
  padding-bottom: 0.3em; }
  caption:empty {
    display: none; }

table {
  border-collapse: collapse; }

th,
td {
  vertical-align: top;
  line-height: 1.2;
  padding: 0.1em 0.5em; }
  @media (max-width: 759px) {
    th,
    td {
      padding: 0.1em 0.3em; } }
  th:first-child,
  td:first-child {
    padding-left: 0; }
  th:last-child,
  td:last-child {
    padding-right: 0; }

th {
  font-weight: 700; }

img,
iframe,
embed,
object {
  border: 0; }

iframe,
embed,
object {
  display: block;
  max-width: 100%; }

svg {
  display: block;
  max-width: 100%;
  max-height: 100%; }

@media screen and (-webkit-min-device-pixel-ratio: 0), (min--moz-device-pixel-ratio: 0) {
  svg {
    height: auto; } }

/*doc
---
title: Templates
name: aaaTemplates
category: Templates
---

Template = shared page template structure and related elements such as common headers and footers, navbars, etc.

<strong>TODO:</strong> Include examples of page template types in documentation.
*/
/*doc
---
title: Page Template Structure
name: pageTemplateStructure
category: Templates
---

This is the underlying template structure for all pages.

<ul class="bulleted-list">
  <li>
    div.page
    <ul class="bulleted-list">
      <li>
        <strong>header.page__header</strong>
        <ul class="bulleted-list">
          <li>
            nav.nav-bar
            <ul class="bulleted-list">
              <li>a.nav-bar__logo</li>
              <li>ul.nav-bar__menu <small><em>(optional, not on logged out pages)</em></small></li>
            </ul>
          </li>

          <li>div.help-panel</li>
        </ul>
      </li>

      <li>
        <strong>main.page__main</strong>
        <ul class="bulleted-list">
          <li>header.main__header <small><em>(optional)</em></small></li>
          <li>
            div.main__body <small><em>(adds consistent padding around content, optional)</em></small>
            <ul class="bulleted-list">
              <li>section.content-section <small><em>(This inner content container may be refactored in the future, optional)</em></small></li>
            </ul>
          </li>
        </ul>
      </li>

      <li>
        <strong>footer.page__footer</strong> <small><em>(optional, not included on all pages)</em></small>
      </li>
    </ul>
  </li>
</ul>

*/
.page {
  overflow: hidden; }
  .page__header {
    background: #fff;
    border-bottom: 1px solid #f5f5f6;
    box-shadow: 0 1px 1px -1px rgba(0, 0, 0, 0.05), 0 5px 5px -5px rgba(0, 0, 0, 0.1);
    min-height: 5.7rem;
    position: fixed;
    top: 0;
    right: 0;
    left: 0;
    z-index: 700; }
  .page__main {
    padding-top: 5.7rem;
    min-height: 40vh; }
  .page__footer {
    font-size: 1.2rem;
    background-color: #f5f5f6;
    color: #5b5b5b; }
    .page__footer__main, .page__footer__subfooter {
      padding-top: 4rem; }
    .page__footer__main {
      line-height: 1.6;
      padding-bottom: 4rem; }
    .page__footer__subfooter {
      padding-bottom: 7.7rem;
      font-size: 1.2rem;
      background: #e6e7e8; }
      .page__footer__subfooter a,
      .page__footer__subfooter a:hover {
        color: inherit; }
      .page__footer__subfooter p a {
        text-decoration: underline; }
    .page__footer__copyright {
      padding-top: 2rem; }
      @media (min-width: 760px) {
        .page__footer__copyright__third-party-logos {
          text-align: right; } }
      .page__footer__copyright__third-party-logos > * {
        vertical-align: middle; }
    .page__footer__nav-links li + li {
      margin-top: 0.5em; }
    .page__footer__nav-links a {
      line-height: 1.2; }
    .page__footer__social-links {
      text-align: right;
      line-height: 2.2; }
      .page__footer__social-links [class^="icon-"], .page__footer__social-links .uib-daypicker .glyphicon, .uib-daypicker .page__footer__social-links .glyphicon, .page__footer__social-links
      .uib-monthpicker .glyphicon,
      .uib-monthpicker .page__footer__social-links .glyphicon, .page__footer__social-links
      .uib-yearpicker .glyphicon,
      .uib-yearpicker .page__footer__social-links .glyphicon {
        font-size: 2.8rem; }

.nav-bar {
  -webkit-box-align: center;
  -ms-flex-align: center;
  -webkit-align-items: center;
  -moz-align-items: center;
  align-items: center;
  padding-top: 1.0rem;
  padding-bottom: 1.0rem;
  position: relative;
  z-index: 3; }
  .nav-bar a {
    color: #767676;
    text-decoration: none;
    font-weight: normal; }
    .nav-bar a:hover {
      color: #29C4F3; }
  .nav-bar__logo {
    background: url("./libraries/sofi-global/assets/images/logos-sofi/sofi-logo.svg") no-repeat;
    background-size: contain;
    display: inline-block;
    width: 88px;
    height: 31px; }
  .nav-bar__menu {
    margin-top: 0; }
    .nav-bar__menu > li {
      display: inline-block; }
  .nav-bar__sub-menu__section-header {
    background: #e6e7e8;
    border-bottom: 1px solid #D1D2D4;
    display: block;
    padding: 0.4em 1em; }
  .nav-bar__sub-menu ul {
    margin-top: 0; }

.help-panel {
  font-size: 1.2rem;
  background: #f5f5f6;
  line-height: 1.6;
  padding: 2rem;
  position: relative; }
  @media (max-width: 759px) {
    .help-panel {
      height: calc(100vh - 5.7rem);
      overflow-x: hidden;
      overflow-y: auto; } }
  .help-panel__close {
    cursor: pointer;
    position: absolute;
    right: 1rem;
    top: 1rem;
    z-index: 2; }
  .help-panel:not(.active) {
    height: 0;
    padding-top: 0;
    padding-bottom: 0;
    overflow: hidden; }

div[data-noscript] {
  display: none; }

.nav-bar__sub-menu {
  display: inline-block;
  position: relative; }
  @media (max-width: 959px) {
    .nav-bar__sub-menu {
      position: static; } }
  @media (min-width: 960px) {
    .nav-bar__sub-menu {
      padding: 0.5em 0; } }
  .nav-bar__sub-menu .dropdown-backdrop {
    display: none !important; }
  .nav-bar__sub-menu .nav-bar__sub-menu__control {
    color: #117DB0;
    cursor: pointer;
    outline: none;
    text-decoration: none;
    cursor: pointer;
    line-height: 1; }
    .nav-bar__sub-menu .nav-bar__sub-menu__control:hover {
      color: #0A5070; }
    .nav-bar__sub-menu .nav-bar__sub-menu__control:active {
      color: #0A5070; }
    @media (max-width: 759px) {
      .nav-bar__sub-menu .nav-bar__sub-menu__control {
        vertical-align: middle;
        font-size: 3.2rem;
        font-weight: normal; } }
    @media (min-width: 760px) {
      .nav-bar__sub-menu .nav-bar__sub-menu__control {
        font-weight: bold;
        min-width: 9em; } }
  .nav-bar__sub-menu__content-wrapper {
    overflow: hidden;
    position: absolute;
    top: 100%;
    right: 0; }
    @media (max-width: 959px) {
      .nav-bar__sub-menu__content-wrapper {
        width: 100%; } }
    @media (min-width: 960px) {
      .nav-bar__sub-menu__content-wrapper {
        left: 0; } }
  .nav-bar__sub-menu__list {
    -webkit-transition: -webkit-transform 0.3s ease-out;
    transition: transform 0.3s ease-out;
    -ms-transform: translateY(-100%);
    -webkit-transform: translateY(-100%);
    transform: translateY(-100%);
    background: #fff;
    border: 1px solid #D1D2D4;
    margin: 0; }
    @media (max-width: 959px) {
      .nav-bar__sub-menu__list {
        position: relative; }
        .nav-bar__sub-menu__list:before {
          pointer-events: none;
          box-shadow: inset 0 6px 10px -10px rgba(0, 0, 0, 0.65);
          content: "";
          display: block;
          position: absolute;
          top: 0;
          right: 0;
          bottom: 0;
          left: 0;
          z-index: 2; } }
    .nav-bar__sub-menu__list li {
      font-size: 1.2rem; }
      .nav-bar__sub-menu__list li + li {
        border-top: 1px solid #D1D2D4; }
    .nav-bar__sub-menu__list a {
      -webkit-transition: background 0.3s ease-out;
      transition: background 0.3s ease-out;
      background: #fff;
      color: inherit;
      display: block;
      padding: 0.8em 1em; }
      .nav-bar__sub-menu__list a:hover, .nav-bar__sub-menu__list a:active {
        color: inherit;
        background: #f5f5f6;
        text-decoration: none; }

.nav-bar__sub-menu.open .nav-bar__sub-menu__list {
  -ms-transform: translateY(0);
  -webkit-transform: translateY(0);
  transform: translateY(0); }

div[data-device-breakpoint] {
  visibility: hidden;
  text-indent: -9999px;
  font-size: 0; }
  div[data-device-breakpoint]:before {
    position: absolute; }
    @media (max-width: 759px) {
      div[data-device-breakpoint]:before {
        content: 'mobile'; } }
    @media (min-width: 760px) and (max-width: 959px) {
      div[data-device-breakpoint]:before {
        content: 'tablet'; } }
    @media (min-width: 960px) and (max-width: 1279px) {
      div[data-device-breakpoint]:before {
        content: 'desktop'; } }
    @media (min-width: 1280px) {
      div[data-device-breakpoint]:before {
        content: 'wide'; } }

.page-background:before {
  background-size: cover;
  background-repeat: no-repeat;
  background-position: top;
  content: "";
  display: block;
  position: fixed;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  z-index: -1; }

.page-background--grey:before {
  background: #f5f5f6; }

/* Chrome hack: SVG is rendered more smooth in Windozze. 100% magic, uncomment if you need it. */
/* Note, that will break hinting! In other OS-es font will be not as sharp as it could be */
/*
@media screen and (-webkit-min-device-pixel-ratio:0) {
  @font-face {
    font-family: 'sofi-icons';
    src: url('../font/sofi-icons.svg?65737341#sofi-icons') format('svg');
  }
}
*/
[class^="icon-"]:before, .uib-daypicker .glyphicon:before,
.uib-monthpicker .glyphicon:before,
.uib-yearpicker .glyphicon:before, [class*=" icon-"]:before {
  font-family: "sofi-icons";
  font-style: normal;
  font-weight: normal;
  speak: none;
  display: inline-block;
  text-decoration: inherit;
  width: 1em;
  margin-right: .2em;
  text-align: center;
  /* opacity: .8; */
  /* For safety - reset parent styles, that can break glyph codes*/
  font-variant: normal;
  text-transform: none;
  /* fix buttons height, for twitter bootstrap */
  line-height: 1em;
  /* Animation center compensation - margins should be symmetric */
  /* remove if not needed */
  margin-left: .2em;
  /* you can be more comfortable with increased icons size */
  /* font-size: 120%; */
  /* Font smoothing. That was taken from TWBS */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  /* Uncomment for 3D effect */
  /* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */ }

.icon-lifesavers:before {
  content: '\e800'; }

/* '' */
.icon-suit:before {
  content: '\e801'; }

/* '' */
.icon-spinner:before, .btn--loading:before {
  content: '\e802'; }

/* '' */
.icon-search:before {
  content: '\e803'; }

/* '' */
.icon-cancel-circled:before {
  content: '\e804'; }

/* '' */
.icon-cancel:before {
  content: '\e805'; }

/* '' */
.icon-plus-circled:before {
  content: '\e806'; }

/* '' */
.icon-plus:before {
  content: '\e807'; }

/* '' */
.icon-home:before {
  content: '\e808'; }

/* '' */
.icon-attention:before {
  content: '\e809'; }

/* '' */
.icon-angle-down:before {
  content: '\e80a'; }

/* '' */
.icon-thumbs-up-alt:before {
  content: '\e80b'; }

/* '' */
.icon-location:before {
  content: '\e80c'; }

/* '' */
.icon-doc-text-inv:before {
  content: '\e80d'; }

/* '' */
.icon-rss:before {
  content: '\e80e'; }

/* '' */
.icon-phone:before {
  content: '\e80f'; }

/* '' */
.icon-menu:before {
  content: '\e810'; }

/* '' */
.icon-cog:before {
  content: '\e811'; }

/* '' */
.icon-calendar:before {
  content: '\e812'; }

/* '' */
.icon-login:before {
  content: '\e813'; }

/* '' */
.icon-cancel-large:before {
  content: '\e814'; }

/* '' */
.icon-gplus:before {
  content: '\e815'; }

/* '' */
.icon-ok:before, .md-checkbox input + .md-fake-input:before, .progress-list > li.complete:before {
  content: '\e816'; }

/* '' */
.icon-instagram:before {
  content: '\e817'; }

/* '' */
.icon-mail-solid:before {
  content: '\e818'; }

/* '' */
.icon-mail-outline:before {
  content: '\e819'; }

/* '' */
.icon-twitter:before {
  content: '\e81a'; }

/* '' */
.icon-graduation-cap:before {
  content: '\e81b'; }

/* '' */
.icon-share:before {
  content: '\e81c'; }

/* '' */
.icon-user:before {
  content: '\e81d'; }

/* '' */
.icon-percent:before {
  content: '\e81e'; }

/* '' */
.icon-music-1:before {
  content: '\e81f'; }

/* '' */
.icon-info-circled:before {
  content: '\e820'; }

/* '' */
.icon-money:before {
  content: '\e821'; }

/* '' */
.icon-investor:before {
  content: '\e822'; }

/* '' */
.icon-dollar:before {
  content: '\e823'; }

/* '' */
.icon-blank:before {
  content: '\e824'; }

/* '' */
.icon-glass:before {
  content: '\e825'; }

/* '' */
.icon-tag:before {
  content: '\e826'; }

/* '' */
.icon-mobile-alt:before {
  content: '\e827'; }

/* '' */
.icon-logout:before {
  content: '\e828'; }

/* '' */
.icon-ok-circled:before {
  content: '\e829'; }

/* '' */
.icon-flag:before {
  content: '\e82a'; }

/* '' */
.icon-angle-up:before {
  content: '\e82b'; }

/* '' */
.icon-sort-down:before {
  content: '\e82c'; }

/* '' */
.icon-upload:before {
  content: '\e82d'; }

/* '' */
.icon-play-circled:before {
  content: '\e82e'; }

/* '' */
.icon-resize-full:before {
  content: '\e82f'; }

/* '' */
.icon-stars-little:before {
  content: '\e830'; }

/* '' */
.icon-angle-circled-left:before {
  content: '\e831'; }

/* '' */
.icon-angle-circled-right:before {
  content: '\e832'; }

/* '' */
.icon-comment:before {
  content: '\e833'; }

/* '' */
.icon-clipboard:before {
  content: '\e834'; }

/* '' */
.icon-angle-left:before, .uib-daypicker .glyphicon-chevron-left:before,
.uib-monthpicker .glyphicon-chevron-left:before,
.uib-yearpicker .glyphicon-chevron-left:before {
  content: '\e835'; }

/* '' */
.icon-chart-pie:before {
  content: '\e836'; }

/* '' */
.icon-angle-double-left:before {
  content: '\e837'; }

/* '' */
.icon-chat:before {
  content: '\e838'; }

/* '' */
.icon-angle-double-right:before {
  content: '\e839'; }

/* '' */
.icon-vcard:before {
  content: '\e83a'; }

/* '' */
.icon-ellipsis:before {
  content: '\e83b'; }

/* '' */
.icon-angle-right:before, .uib-daypicker .glyphicon-chevron-right:before,
.uib-monthpicker .glyphicon-chevron-right:before,
.uib-yearpicker .glyphicon-chevron-right:before, .goto-link:after {
  content: '\e83c'; }

/* '' */
.icon-parent-loan:before {
  content: '\e83d'; }

/* '' */
.icon-briefcase:before {
  content: '\e83e'; }

/* '' */
.icon-folder:before {
  content: '\e83f'; }

/* '' */
.icon-down:before {
  content: '\e840'; }

/* '' */
.icon-left:before {
  content: '\e841'; }

/* '' */
.icon-archive:before {
  content: '\e842'; }

/* '' */
.icon-tools:before {
  content: '\e843'; }

/* '' */
.icon-wallet:before {
  content: '\e844'; }

/* '' */
.icon-sofi-logo:before {
  content: '\e845'; }

/* '' */
.icon-right:before {
  content: '\e846'; }

/* '' */
.icon-circle-empty:before {
  content: '\e847'; }

/* '' */
.icon-circle:before {
  content: '\e848'; }

/* '' */
.icon-shield-check:before {
  content: '\e849'; }

/* '' */
.icon-dollar-sign:before {
  content: '\e84a'; }

/* '' */
.icon-stars-more:before {
  content: '\e84b'; }

/* '' */
.icon-up:before {
  content: '\e84c'; }

/* '' */
.icon-exchange:before {
  content: '\e84d'; }

/* '' */
.icon-stars-lots:before {
  content: '\e84e'; }

/* '' */
.icon-arrow-combo:before {
  content: '\e84f'; }

/* '' */
.icon-play-circled2:before {
  content: '\e850'; }

/* '' */
.icon-check:before {
  content: '\e851'; }

/* '' */
.icon-wealth:before {
  content: '\e852'; }

/* '' */
.icon-list-bullet:before {
  content: '\e853'; }

/* '' */
.icon-table:before {
  content: '\e854'; }

/* '' */
.icon-music:before {
  content: '\e855'; }

/* '' */
.icon-facebook:before {
  content: '\e856'; }

/* '' */
.icon-question-circled:before {
  content: '\e857'; }

/* '' */
.icon-up-open:before {
  content: '\e858'; }

/* '' */
.icon-down-open:before {
  content: '\e859'; }

/* '' */
.icon-pencil:before {
  content: '\e85a'; }

/* '' */
.icon-lightbulb:before {
  content: '\e85b'; }

/* '' */
.icon-users:before {
  content: '\e85c'; }

/* '' */
.icon-library:before {
  content: '\e85d'; }

/* '' */
.icon-shield:before {
  content: '\e85e'; }

/* '' */
.icon-locked:before {
  content: '\e85f'; }

/* '' */
.icon-unlocked:before {
  content: '\e860'; }

/* '' */
.icon-equal-housing-lender:before {
  content: '\e861'; }

/* '' */
.icon-linkedin:before {
  content: '\e862'; }

/* '' */
.icon-question:before {
  content: '\e863'; }

/* '' */
.icon-exclamation:before {
  content: '\e864'; }

/* '' */
.icon-diamond:before {
  content: '\e865'; }

/* '' */
.icon-pig-outline:before {
  content: '\e866'; }

/* '' */
.icon-dollars:before {
  content: '\e867'; }

/* '' */
.icon-pig-solid:before {
  content: '\e868'; }

/* '' */
.icon-joint:before {
  content: '\e869'; }

/* '' */
.icon-repeating:before {
  content: '\e86a'; }

/* '' */
.icon-pinterest:before {
  content: '\e86b'; }

/* '' */
.icon-attention-circled:before {
  content: '\e86c'; }

/* '' */
.icon-down-dir:before {
  content: '\e86d'; }

/* '' */
.icon-up-dir:before {
  content: '\e86e'; }

/* '' */
/*doc
---
title: Icons
name: icons
category: Modules
---

SoFi Icon Font:

<strong>TODO:</strong> Need a better way to link to and display this.

<a href="static/fontello-98f23d6d/demo.html" target="_blank">Open all icon examples below in new window.</a>

<iframe src="static/fontello-98f23d6d/demo.html" width="100%" height="400" style="border: 1px solid #ccc;"></iframe>

 */
[class^="icon-"], .uib-daypicker .glyphicon,
.uib-monthpicker .glyphicon,
.uib-yearpicker .glyphicon {
  cursor: inherit;
  font-size: inherit;
  vertical-align: middle;
  display: inline-block;
  box-sizing: content-box;
  padding: 1px;
  width: 1em;
  height: 1em;
  position: relative; }
  [class^="icon-"]:before, .uib-daypicker .glyphicon:before,
  .uib-monthpicker .glyphicon:before,
  .uib-yearpicker .glyphicon:before {
    cursor: inherit;
    padding: 1px;
    width: 1em;
    height: 1em;
    margin: auto;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0; }

.icon-text {
  font-weight: bold;
  text-align: center;
  text-indent: 0;
  letter-spacing: -0.15em;
  text-indent: -0.15em; }

.icon-action {
  border: 2px solid;
  border-radius: 600px;
  color: #8A8B8A;
  cursor: pointer;
  text-align: center;
  display: inline-block;
  width: 1.5em;
  height: 1.5em;
  line-height: 1.5em; }
  .icon-action.positive:hover {
    color: #29C4F3; }
  .icon-action.negative:hover {
    color: #F0503A; }

.icon-question-circled {
  cursor: pointer; }

@media (max-width: 759px) {
  header .icon-question-circled {
    display: block;
    font-size: 2.5rem !important;
    width: 100%; } }

/*doc
---
title: Alerts
name: alerts
category: Modules
---

**TODO:** Alert design patterns need to be better defined and standardized.

###General Alert Messages

These are used for general informational messages or error messages. They often appear as a result of a user action such as after a form is submitted. Their widths are confined to content areas they appear within.

```html_example
<div class="alert alert--danger">
    <p>Danger alert</p>
</div>

<div class="alert alert--info">
    <p>Info alert</p>
</div>
```

###Alert Banner

These currently appear only on the Wealth Account Dashboard page. They stretch across the full width of the screen and are used to inform the users of important actions they should take.

NOTE: These may be redesigned as part of the upcoming Account Dashboard page redesign,

```html_example
<div class="alert-banner alert-banner--info">
  <button type="button" class="alert-banner__close" aria-label="Close">
    <i class="icon-cancel">Close</i>
  </button>

  <p>
    (Info Banner) Congratulations on your new SoFi Wealth account! <a href="#">Add Funds.</a>
  </p>
</div>

<div class="alert-banner alert-banner--danger">
  <button type="button" class="alert-banner__close" aria-label="Close">
    <i class="icon-cancel">Close</i>
  </button>

  <p>
    (Danger Banner) Congratulations on your new SoFi Wealth account! <a href="#">Add Funds.</a>
  </p>
</div>

<div class="alert-banner alert-banner--market">
  <button type="button" class="alert-banner__close" aria-label="Close">
    <i class="icon-cancel">Close</i>
  </button>

  <p>
    (Market Alert Banner) Congratulations on your new SoFi Wealth account! <a href="#">Add Funds.</a>
  </p>
</div>
```
*/
.alert {
  font-size: 1.2rem;
  padding: 1em; }
  .alert + * {
    margin-top: 1em; }
  .alert--danger {
    background: #f2dede;
    border: 1px solid #ebccd1;
    color: #a94442; }
    .alert--danger a {
      color: inherit;
      text-decoration: underline; }
  .alert--info {
    background: #d2f3fc;
    border: 1px solid #76d9f7; }
  .alert--empty {
    text-align: center; }

.error-page-notice {
  display: -webkit-box;
  display: -moz-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  -webkit-align-items: center;
  -moz-align-items: center;
  align-items: center;
  text-align: center;
  min-height: 60vh; }
  .error-page-notice > * {
    margin: 0 auto; }

.alert-banner {
  background: #1899d5;
  color: #fff;
  text-align: center;
  padding: 1rem 1.5rem;
  position: relative; }
  .alert-banner a {
    color: inherit;
    font-weight: 700; }
    .alert-banner a:hover {
      text-decoration: underline; }
  .alert-banner__close {
    background: transparent;
    border: 0;
    cursor: pointer;
    padding: 0;
    -webkit-appearance: none;
    position: absolute;
    top: 0.1em;
    right: 0.1em; }
    .alert-banner__close + * {
      margin-top: 0; }
  .alert-banner + .alert-banner {
    border-top: 1px solid #D1D2D4; }
  .alert-banner--info {
    background: #1899d5; }
  .alert-banner--danger {
    background: #cd0b24; }
  .alert-banner--market {
    background: #F7932A; }

/*
    - Buttons
    - Button & Action containers
*/
/*doc
---
title: Buttons
name: buttons
category: Modules
---

##Single Buttons

```html_example
<p>
Regular Size:<br>
  <button type="button" class="btn">Default Button</button>
  <button type="button" class="btn btn--secondary">Secondary Button</button>
</p>
<p>
Disabled:<br>
  <button type="button" class="btn" disabled>Default Button</button>
  <button type="button" class="btn btn--secondary" disabled>Secondary Button</button>
</p>
<p>
Small:<br>
  <button type="button" class="btn btn--small">Default Button</button>
  <button type="button" class="btn btn--secondary btn--small">Secondary Button</button>
</p>

<p style="padding: 1em; background: #f5f5f6">
  On grey background:<br>
  <button type="button" class="btn">Default Button</button>
  <button type="button" class="btn btn--secondary">Secondary Button</button>
  <button type="button" class="btn" disabled>Default Button</button>
  <button type="button" class="btn btn--secondary" disabled>Secondary Button</button>
</p>

<p>
  "Full" Size:<br>
  (has a max-width of 345px)<br>
  <button type="button" class="btn btn--full">Default Button</button>
</p>
<p>
  "Loading" state buttons:<br>
  <button type="button" class="btn btn--loading">Default Button</button>
  <button type="button" class="btn btn--secondary btn--loading">Secondary Button</button>
</p>
```

##Group Buttons

NOTE: Group buttons are mostly used in Advisor currently. Designs haven't been completely standardized by the designers.

###Toggle Button

```html_example
<ul class="btn-group btn-group--toggle">
    <li>
        <input type="radio" name="toggle-1" value="yes" id="toggle-yes-1" checked>
        <label class="btn btn--small" for="toggle-yes-1">Yes</label>
    </li>
    <li>
        <input type="radio" name="toggle-1" value="no" id="toggle-no-1">
        <label class="btn btn--small" for="toggle-no-1">No</label>
    </li>
    <li>
        <input type="radio" name="toggle-1" value="maybe" id="toggle-maybe-1">
        <label class="btn btn--small" for="toggle-maybe-1">Maybe</label>
    </li>
</ul>

<hr>

<ul class="btn-group btn-group--toggle">
    <li>
        <input type="radio" name="toggle-2" value="yes" id="toggle-yes-2" checked>
        <label class="btn" for="toggle-yes-2">Yes</label>
    </li>
    <li>
        <input type="radio" name="toggle-2" value="no" id="toggle-no-2">
        <label class="btn" for="toggle-no-2">No</label>
    </li>
    <li>
        <input type="radio" name="toggle-2" value="maybe" id="toggle-maybe-2">
        <label class="btn" for="toggle-maybe-2">Maybe</label>
    </li>
</ul>
```

###Button with Dropdown

```html_example
<div class="btn-group dropdown" data-uib-dropdown>
    <a class="btn btn--small" target="_blank">
        Download Report
    </a>

    <div class="dropdown">
        <a class="btn btn--small" type="button" data-uib-dropdown-toggle>
            <span class="icon-angle-down"></span>
        </a>

        <div class="dropdown__menu-content-wrapper">
            <ul class="dropdown__menu-list" role="menu">
                <li>
                    <label class="input-wrapper">
                        <input type="checkbox" name="checkAll">
                        <strong>Select All</strong>
                    </label>
                </li>

                <li>
                    <label class="input-wrapper">
                        <input type="checkbox">
                        Text
                    </label>
                </li>

                <li>
                    <label class="input-wrapper">
                        <input type="checkbox">
                        Text
                    </label>
                </li>
            </ul>
        </div>
    </div>
</div>
```
*/
.btn {
  -webkit-transition: all 0.3s ease-out;
  transition: all 0.3s ease-out;
  background: #117DB0;
  border: 1px solid #117DB0;
  border-radius: 4px;
  color: #fff;
  cursor: pointer;
  text-align: center !important;
  display: inline-block;
  position: relative; }
  @media (max-width: 759px) {
    .btn {
      padding: 0.6em 0.9em; } }
  @media (min-width: 760px) {
    .btn {
      padding: 0.6em 1.5em; } }
  .btn:hover, .btn:active {
    color: #fff; }
  .btn:hover {
    background: #0d648c;
    border-color: #0d648c; }
  .btn:active {
    background: #0a5070;
    border-color: #0a5070; }
  .btn + .btn {
    margin-left: 0.4em; }
  .btn--call-out {
    background: #9CCb3b;
    border-color: #9CCb3b;
    color: #fff; }
    .btn--call-out:hover, .btn--call-out:active {
      background: #739728;
      border-color: #739728; }
  .btn--danger {
    background: #F0503A;
    border-color: #F0503A; }
  .btn--secondary {
    border: 1px solid;
    background: #fff;
    color: #117DB0; }
    .btn--secondary:hover, .file-input-unit:hover .btn--secondary, .btn--secondary:active {
      background: #fff;
      color: #0A5070; }
  .btn--loading:before, .btn--loading:after {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0; }
  .btn--loading:before {
    font-family: "sofi-icons";
    width: 1em;
    height: 1em;
    -webkit-animation: spin 2s infinite linear;
    animation: spin 2s infinite linear;
    margin: auto;
    z-index: 2; }
  .btn--loading:after {
    background-color: inherit;
    border-radius: inherit;
    content: '';
    display: block; }
  .btn--small {
    font-size: 1.4rem !important;
    padding: 0.35em 0.6em;
    min-width: 0; }
    .btn--small [class^="icon-"], .btn--small .uib-daypicker .glyphicon, .uib-daypicker .btn--small .glyphicon, .btn--small
    .uib-monthpicker .glyphicon,
    .uib-monthpicker .btn--small .glyphicon, .btn--small
    .uib-yearpicker .glyphicon,
    .uib-yearpicker .btn--small .glyphicon {
      color: inherit;
      font-size: 1.4rem;
      text-shadow: none; }
  .btn--tiny {
    font-size: 1.2rem !important;
    padding: 0.2em 0.6em; }
  .btn--full {
    display: block;
    width: 345px;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto; }
  .btn [class^="icon-"], .btn .uib-daypicker .glyphicon, .uib-daypicker .btn .glyphicon, .btn
  .uib-monthpicker .glyphicon,
  .uib-monthpicker .btn .glyphicon, .btn
  .uib-yearpicker .glyphicon,
  .uib-yearpicker .btn .glyphicon {
    display: inline-block;
    margin-top: -4px;
    margin-bottom: -2px; }

.main-actions {
  display: -webkit-box;
  display: -moz-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  -webkit-align-items: center;
  -moz-align-items: center;
  align-items: center;
  -webkit-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-justify-content: space-between;
  -ms-flex-pack: center;
  justify-content: space-between;
  white-space: nowrap; }
  @media (max-width: 759px) {
    .main-actions {
      margin-top: 1.2em; } }
  @media (min-width: 760px) {
    .main-actions {
      margin-top: 2em; } }
  .main-actions p {
    width: 100%; }
  .main-actions + .main-actions {
    margin-top: 0.8em; }
  .main-actions a:not(.btn) {
    white-space: normal;
    display: inline-block;
    vertical-align: middle;
    max-width: 51.5%; }
    .main-actions a:not(.btn):only-child {
      max-width: none; }

table .main-actions {
  margin-top: 1em; }

.inline-form .main-actions {
  margin-top: 0; }

.multi-section-form-actions {
  margin-top: 2rem;
  text-align: right; }
  @media (min-width: 760px) {
    .multi-section-form-actions .btn {
      width: 345px;
      max-width: 50%; } }

.btn-group {
  display: -webkit-inline-box !important;
  display: -webkit-inline-flex !important;
  display: -ms-inline-flexbox !important;
  display: inline-flex !important; }
  .btn-group > * {
    flex-grow: 1;
    margin-top: 0;
    min-width: -moz-min-content;
    min-width: -webkit-min-content;
    min-width: min-content; }
  .btn-group > .btn {
    flex-shrink: 0; }
  .btn-group > input,
  .btn-group > select {
    height: auto !important;
    min-width: auto !important; }
  .btn-group > .btn {
    width: auto; }
  .btn-group > input {
    width: 100%; }
  .btn-group label {
    margin: 0 !important;
    font-weight: normal; }
  .btn-group .btn {
    border-radius: 0;
    min-width: 0; }
  .btn-group > * {
    flex-grow: initial; }
    .btn-group > * + * {
      margin-left: 1px; }
  .btn-group > .btn:first-child,
  .btn-group > *:first-child .btn {
    border-top-left-radius: 4px;
    border-bottom-left-radius: 4px; }
  .btn-group > .btn:last-child,
  .btn-group > *:last-child .btn {
    border-top-right-radius: 4px;
    border-bottom-right-radius: 4px; }
  .btn-group--toggle .btn {
    background-color: #e6e7e8;
    border-color: #e6e7e8;
    color: #3d3d3d; }
  .btn-group--toggle input[type="radio"] {
    position: absolute;
    clip: rect(0 0 0 0); }
    .btn-group--toggle input[type="radio"]:checked + .btn {
      background: #117DB0;
      border-color: #117DB0;
      color: #fff;
      cursor: default; }

.btn-link {
  border: 0;
  background: transparent;
  font-size: inherit;
  display: inline-block;
  width: auto;
  padding: 0.6em; }

/*doc
---
title: Containers & Boxes
name: containers
category: Modules
---

<strong>TODO:</strong> Container types and usage still need to be better defined and standardized.

##Boxes

NOTE: Some or all of these boxes will likely be going away in the current redesign.

```html_example
<div class="accent-blue-box">
  <p>This is a box. It can have any kind of content.</p>
  <p>This is <a href="#">a link</a> within a box.</p>
</div>

<hr>

<div class="highlight-box">
  <p>This is a box. It can have any kind of content.</p>
  <p>This is <a href="#">a link</a> within a box.</p>
</div>

<hr>

<div class="subtle-highlight-box">
  <p>This is a box. It can have any kind of content.</p>
  <p>This is <a href="#">a link</a> within a box.</p>
</div>

<hr>

<div class="disclaimer-box">
  <p>This is a <strong>disclaimer box</strong>. It can have any kind of content but is meant for displaying disclaimer messages.</p>
  <p>This is <a href="#">a link</a> within a box.</p>
</div>
```

###Boxes used in Condensed Form flow screens

#### Progress Box

<strong>TODO:</strong> Originally this box was used to only contain progress indicator lists but seems to be used for other types of content in some WIP designs so we should redefine and rename it...

```html_example
<div style="padding: 1em; background: #f5f5f6">

<section class="progress-box content-section">
    <header class="progress-box__header">
        <h4>SoFi Wealth</h4>
    </header>

    <div class="progress-box__body">
        <ol class="progress-list">
            <li class="complete">Create Account</li>
            <li class="current">Complete Your Profile</li>
            <li>Review Terms of Service</li>
            <li>Add Funds</li>
        </ol>
    </div>
</section>

</div>
```

#### Wide Box

So far this is being used in wide left side columns on two column pages. It initially was used mainly for form content so was originally based on form fieldset and legend tags but newer mocks show it being used for other types of content so it's been refactored.

We may want to come up with better naming as usage patterns become clearer. (NOTE: The "content-section" may be refactored or removed in upcoming revisions.)

```html_example
<div style="padding: 1em; background: #f5f5f6">

<section class="wide-box content-section">
    <header class="wide-box__header">
        <h4>Box Header</h4>
    </header>

    <div class="wide-box__body">
        Content goes in here...
    </div>
</section>

</div>
```

*/
.main__header {
  background: #e6e7e8;
  padding-top: 2rem;
  padding-bottom: 2rem; }
  .main__header h1:not(:last-child) {
    margin-bottom: 0.6em; }
  .main__header__sub {
    background: #e6e7e8;
    padding-top: 2rem;
    padding-bottom: 2rem; }
    .main__header__sub h2:not(:last-child) {
      margin-bottom: 0.6em; }

@media (max-width: 759px) {
  .main__body {
    padding-top: 2rem;
    padding-bottom: 2rem; } }

@media (min-width: 760px) {
  .main__body {
    padding-top: 4rem;
    padding-bottom: 4rem; } }

@media (max-width: 759px) {
  .content-section {
    margin-top: 2rem;
    margin-bottom: 2rem; } }

@media (min-width: 760px) {
  .content-section {
    margin-top: 3rem;
    margin-bottom: 3rem; } }

.content-section__header {
  padding-bottom: 1.0em; }

.content-section__body {
  padding-top: 2rem;
  padding-bottom: 2rem; }

.content-section__sub-section + * {
  margin-top: 2rem; }

.accent-blue-box, .highlight-box, .subtle-highlight-box,
.disclaimer-box {
  border-radius: 4px;
  padding: 2rem; }

.highlight-box {
  background: #d2f3fc; }

.subtle-highlight-box,
.disclaimer-box {
  background: #f5f5f6; }

.disclaimer-box {
  font-size: 1.2rem; }

.progress-box {
  position: relative; }
  @media (min-width: 760px) {
    .progress-box {
      background: #fff; } }
  @media (min-width: 760px) {
    .progress-box__header, .progress-box__body {
      padding: 2rem; } }
  .progress-box__header {
    border-bottom: 1px solid #D1D2D4; }
    .progress-box__header h2, .progress-box__header h3, .progress-box__header h4 {
      letter-spacing: 0.04em;
      text-transform: uppercase;
      line-height: 1.1;
      font-weight: 700;
      font-size: 1.4rem !important; }
    @media (max-width: 759px) {
      .progress-box__header {
        display: none; } }

.border-box {
  background: #fff;
  border: 1px solid #D1D2D4;
  border-radius: 4px;
  padding: 1rem;
  position: relative; }

.wide-box__header {
  text-transform: uppercase;
  margin-bottom: 0.2em; }
  .wide-box__header h2, .wide-box__header h3, .wide-box__header h4 {
    letter-spacing: 0.04em;
    text-transform: uppercase;
    line-height: 1.1;
    font-weight: 700;
    font-size: 1.4rem !important; }

.wide-box__body {
  background: #fff;
  position: relative; }
  @media (max-width: 759px) {
    .wide-box__body {
      padding: 1rem; } }
  @media (min-width: 760px) and (max-width: 959px) {
    .wide-box__body {
      padding: 2rem; } }
  @media (min-width: 960px) {
    .wide-box__body {
      padding: 2rem 4rem; } }

.wide-box .form-step-list {
  width: 100%; }

@media (min-width: 760px) {
  .wide-box .form-step-list {
    max-width: 420px; } }

.wide-box label + ul {
  margin-top: 0.3em; }

@media (min-width: 760px) {
  .reader-content {
    display: -webkit-box;
    display: -moz-box;
    display: -ms-flexbox;
    display: -webkit-flex;
    display: flex;
    -webkit-justify-content: space-between;
    -ms-flex-pack: center;
    justify-content: space-between; } }

.reader-content__edit {
  text-align: right; }
  @media (min-width: 760px) {
    .reader-content__edit {
      -webkit-box-ordinal-group: 2;
      -moz-box-ordinal-group: 2;
      -ms-flex-order: 2;
      -webkit-order: 2;
      order: 2; } }

/*
    - Errors
    - Help Text (WIP - see if included in final UI)
    - Custom Form Controls
    - Form Layouts
    - Material Design style form controls
*/
/*doc
---
title: Forms and Form Elements
name: formElements
category: Modules
---

NOTE: Form element examples below don't include JavaScript so do not show animation of label flying up, etc. For examples of functionality, see Wealth app. (Currently we don't have a solution for including JavaScript in the Living Style Guide.)

##Basic Form Elements (not within a form layout)

"MD" style form elements:
(These have animated transitions between the states which unfortunately aren't included in the Living Style Guide since they need JS for functionality. See Wealth app for working examples.)

```html_example
<p>An empty text input:</p>
<ol class="form-step-list">
  <li class="md-input-container" data-input-focus-container>
      <label>First Name</label>
      <input type="text" data-input-focus required>
  </li>
</ol>

<p>A focused text input:</p>
<ol class="form-step-list">
  <li class="md-input-container is-focused" data-input-focus-container>
      <label>First Name</label>
      <input type="text" data-input-focus required>
  </li>
</ol>

<p>A filled text input:</p>
<ol class="form-step-list">
  <li class="md-input-container is-not-empty" data-input-focus-container>
      <label>First Name</label>
      <input type="text" value="Filled" data-input-focus required>
  </li>
</ol>

<p>A text input with an error:</p>
<ol class="form-step-list">
  <li class="md-input-container is-not-empty" data-input-focus-container>
      <label>First Name</label>
      <input type="text" value="Filled" data-input-focus required class="ng-invalid ng-touched">
      <p class="error">
         An error!
      </p>
  </li>
</ol>
```

##Fancy Specialized Custom Form Elements (not within a form layout)
```html_example
<p>
  <label>No max-length set:</label>
  <span class="fancy-input fancy-input--dollar">
    <input type="text" placeholder="0">
    <span class="fancy-input__decorator">$</span>
  </span>
</p>

<p>
  <label>This example has a max-length set:</label>
  <span class="fancy-input">
    <input type="text" maxlength="3" placeholder="0">
    <span class="fancy-input__decorator">%</span>
  </span>
</p>
```

##Form Layouts with Basic Form Elements
NOTE: These layouts are in the process of being refactored and updated.

###Form Layout

```html_example
<div style="padding: 1em; background: #f5f5f6">

<section class="wide-box content-section">
    <header class="wide-box__header">
      <h4>Some Header</h4>
    </header>

    <div class="wide-box__body">
      <form>
        <ol class="form-step-list">
          <li>
            <label>Enter a line of text</label>
            <input type="text" placeholder="placeholder" />
            <p class="error">This is an example of an error message.</p>
          </li>

          <li>
            <label>Write some longer text</label>
            <textarea cols="30" rows="10" placeholder="placeholder"></textarea>
          </li>

          <li>
            <label>Make a choice</label>

            <ul class="spaced-list">
              <li>
                <label class="md-radio-button">
                  <input type="radio" name="choice" />
                  <span class="md-fake-input"></span>
                  <span class="md-label-text">Yes</span>
                </label>
              </li>

              <li>
                <label class="md-radio-button">
                  <input type="radio" name="choice" />
                  <span class="md-fake-input"></span>
                  <span class="md-label-text">No</span>
                </label>
              </li>
            </ul>
          </li>

          <li>
            <label>Make a choice</label>

            <p></p>

            <ul class="spaced-list">
              <li>
                <label class="md-radio-button">
                  <input type="radio" name="choice" />
                  <span class="md-fake-input"></span>
                  <span class="md-label-text">Yes</span>
                </label>
              </li>

              <li>
                <label class="md-radio-button">
                  <input type="radio" name="choice" />
                  <span class="md-fake-input"></span>
                  <span class="md-label-text">No</span>
                </label>
              </li>
            </ul>
          </li>

          <li>
            <label>Select any or none of the following</label>

            <ul class="spaced-list">
              <li>
                <label class="md-checkbox">
                  <input type="checkbox" />
                  <span class="md-fake-input"></span>
                  <span class="md-label-text">Red</span>
                </label>
              </li>

              <li>
                <label class="md-checkbox">
                  <input type="checkbox" />
                  <span class="md-fake-input"></span>
                  <span class="md-label-text">Blue</span>
                </label>
              </li>

              <li>
                <label class="md-checkbox">
                  <input type="checkbox" />
                  <span class="md-fake-input"></span>
                  <span class="md-label-text">Orange</span>
                </label>
              </li>
            </ul>
          </li>

          <li>
            <label>Upload a file</label>
            <input type="file" />
          </li>

          <li>
            <label>Select an option</label>
            <select>
              <option selected="selected" disabled>Default</option>
              <option>First choice</option>
              <option>Another choice</option>
              <option>One more</option>
            </select>
            <p class="form-help">An example of extra help text to explain field.</p>
          </li>

          <li>
            <label>Select multiple options</label>

            <span class="compound-input">
              <select>
                <option selected="selected" disabled>Month</option>
                <option>October</option>
              </select>

              <select>
                <option selected="selected" disabled>Day</option>
                <option>24</option>
              </select>

              <select>
                <option selected="selected" disabled>Year</option>
                <option>1984</option>
              </select>
            </span>
          </li>
        </ol>
      </form>
    </div><!-- /.wide-box__body -->
</section>

<p class="multi-section-form-actions">
  <button type="submit" class="btn">Submit</button>
</p>

</div>
```
*/
.error,
.form-help {
  font-size: 1.2rem;
  line-height: 1.2;
  margin-top: 0.5em;
  margin-top: 0.3em; }

.error {
  color: #a94442; }

.form-help {
  color: #8A8B8A; }

.file-input-unit {
  overflow: hidden;
  display: inline-block;
  position: relative; }
  .file-input-unit input[type="file"] {
    opacity: 0;
    font-size: 200px;
    display: block;
    width: 100%;
    min-height: 3em;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 2; }
  .file-input-unit .btn {
    white-space: nowrap; }

.fancy-input {
  display: -webkit-box;
  display: -moz-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -webkit-box-align: end;
  -ms-flex-align: end;
  -webkit-align-items: flex-end;
  -moz-align-items: flex-end;
  align-items: flex-end;
  height: 1.5em;
  position: relative; }
  .fancy-input input {
    min-width: 4em !important;
    padding-right: 0.3em !important; }
    .fancy-input input:focus + .fancy-input__decorator {
      border-color: #117DB0 !important; }
    .fancy-input input.ng-invalid.ng-touched + .fancy-input__decorator {
      border-color: #F0503A; }
  .fancy-input--dollar {
    -webkit-box-direction: reverse;
    -webkit-box-orient: horizontal;
    -webkit-flex-direction: row-reverse;
    -moz-flex-direction: row-reverse;
    -ms-flex-direction: row-reverse;
    flex-direction: row-reverse;
    -webkit-justify-content: flex-end;
    -ms-flex-pack: flex-end;
    justify-content: flex-end; }
    .fancy-input--dollar input {
      padding-left: 0.3em !important;
      padding-right: 0 !important; }
  .fancy-input__decorator {
    border-bottom: 1px solid #D1D2D4;
    color: #767676;
    white-space: nowrap;
    height: 1.5em; }

.dropdown {
  display: inline-block;
  position: relative; }
  .dropdown__button {
    white-space: nowrap; }
    .dropdown__button:after {
      border: 4px solid transparent;
      border-top-color: inherit;
      border-bottom-width: 0;
      content: "";
      display: inline-block;
      margin-left: 0.3em;
      vertical-align: middle; }
  .dropdown__menu-content-wrapper {
    -ms-transform: translateX(-50%);
    -webkit-transform: translateX(-50%);
    transform: translateX(-50%);
    position: absolute;
    overflow: hidden;
    position: absolute;
    top: 100%;
    z-index: 5; }
  .dropdown__menu-list {
    -ms-transform: translateY(-100%);
    -webkit-transform: translateY(-100%);
    transform: translateY(-100%);
    background: #fff;
    border: 1px solid #D1D2D4;
    font-size: 1.2rem;
    margin: 0; }
    .dropdown__menu-list li {
      line-height: 1.1; }
      .dropdown__menu-list li + li {
        border-top: 1px solid #D1D2D4; }
    .dropdown__menu-list a {
      background: #fff;
      color: inherit;
      white-space: initial;
      display: block;
      padding: 0.3em; }
      .dropdown__menu-list a:hover {
        background: #f5f5f6;
        text-decoration: none; }

.dropdown.open .dropdown__menu-list {
  -ms-transform: translateY(0);
  -webkit-transform: translateY(0);
  transform: translateY(0); }

.input-wrapper {
  display: inline-block;
  max-width: 100%;
  min-width: 2.5em;
  padding-left: 22px;
  margin-bottom: 0;
  vertical-align: middle; }
  .input-wrapper + .input-wrapper {
    margin-left: 0.8em; }
  .input-wrapper input[type="radio"],
  .input-wrapper input[type="checkbox"] {
    margin-left: -22px; }
  @media (max-width: 759px) {
    .input-wrapper:nth-of-type(n+5) {
      display: block;
      margin-left: 0;
      margin-top: 0.2em; } }

[class*="input-wrapper"] + select {
  width: auto; }

.compound-input {
  display: -webkit-inline-box;
  display: -webkit-inline-flex;
  display: -ms-inline-flexbox;
  display: inline-flex;
  vertical-align: middle;
  width: 100%; }
  .compound-input > * {
    flex-grow: 1;
    margin-top: 0;
    min-width: -moz-min-content;
    min-width: -webkit-min-content;
    min-width: min-content; }
  .compound-input > .btn {
    flex-shrink: 0; }
  .compound-input > input,
  .compound-input > select {
    height: auto !important;
    min-width: auto !important; }
  .compound-input > .btn {
    width: auto; }
  .compound-input > input {
    width: 100%; }
  .compound-input > * {
    line-height: 1.4;
    white-space: nowrap; }
    .compound-input > * + * {
      margin-left: 0.4em; }
  .compound-input input[maxlength] {
    width: 100% !important; }

.date-input-wrapper {
  max-width: 100%;
  display: inline-block;
  vertical-align: middle; }
  .date-input-wrapper__unit {
    display: table-cell;
    vertical-align: top; }
    .date-input-wrapper__unit:first-child {
      width: 100%; }
    .date-input-wrapper__unit:nth-child(2) {
      padding: 0.3em 0.5em; }

select.ng-invalid {
  color: #8A8B8A; }

.uib-datepicker {
  margin-top: -1px;
  position: absolute;
  z-index: 1000; }

.uib-daypicker,
.uib-monthpicker,
.uib-yearpicker {
  background: #f5f5f6;
  border: 1px solid #D1D2D4;
  border-radius: 4px;
  display: inline-block;
  padding: 0.5em; }
  .uib-daypicker .btn,
  .uib-monthpicker .btn,
  .uib-yearpicker .btn {
    background-color: #fff;
    border: 1px solid #D1D2D4;
    border-radius: 4px;
    color: initial;
    font-weight: initial;
    width: 100%;
    min-width: 0;
    padding: 0.3em; }
    .uib-daypicker .btn:not([disable]) .text-muted,
    .uib-monthpicker .btn:not([disable]) .text-muted,
    .uib-yearpicker .btn:not([disable]) .text-muted {
      opacity: 0.3; }
    .uib-daypicker .btn:focus,
    .uib-monthpicker .btn:focus,
    .uib-yearpicker .btn:focus {
      outline: none;
      background-color: #d2f3fc; }
  .uib-daypicker table,
  .uib-monthpicker table,
  .uib-yearpicker table {
    outline: none; }
  .uib-daypicker th,
  .uib-daypicker td,
  .uib-monthpicker th,
  .uib-monthpicker td,
  .uib-yearpicker th,
  .uib-yearpicker td {
    text-align: center;
    width: 2em;
    padding: 0.1em; }
  .uib-daypicker small,
  .uib-monthpicker small,
  .uib-yearpicker small {
    font-size: smaller; }
  .uib-daypicker .glyphicon,
  .uib-monthpicker .glyphicon,
  .uib-yearpicker .glyphicon {
    font-size: 1.6rem; }
    .uib-daypicker .glyphicon:before,
    .uib-monthpicker .glyphicon:before,
    .uib-yearpicker .glyphicon:before {
      font-weight: 700; }

input[type="text"][disabled],
input[type="number"][disabled],
input[type="tel"][disabled],
input[type="date"][disabled],
input[type="email"][disabled] {
  background-color: #eeeeee !important; }

.form-step-list {
  list-style-type: none;
  padding: 0; }
  .form-step-list > li + * {
    margin-top: 2rem; }
  .form-step-list input:not([type="submit"]):not([type="reset"]):not([type="file"]):not([type="button"]):not([type="radio"]):not([type="checkbox"]),
  .form-step-list select,
  .form-step-list textarea {
    width: 100%; }

legend + .form-step-list {
  margin-top: 0.4em; }

@media (min-width: 760px) {
  .aligned-form .form-step-list > li {
    padding-left: 10em; } }

.modal-content .stacked-form {
  max-width: none !important; }

.aligned-form input:not([type="submit"]):not([type="reset"]):not([type="file"]):not([type="button"]):not([type="radio"]):not([type="checkbox"]),
.aligned-form [class*="-input-wrapper"],
.aligned-form .compound-input,
.aligned-form .combo-box-input textarea,
.stacked-form input:not([type="submit"]):not([type="reset"]):not([type="file"]):not([type="button"]):not([type="radio"]):not([type="checkbox"]),
.stacked-form [class*="-input-wrapper"],
.stacked-form .compound-input,
.stacked-form .combo-box-input textarea {
  width: 100%; }

@media (max-width: 759px) {
  .aligned-form label:not(.input-wrapper):not(.toggle-label) {
    display: block;
    margin-bottom: 0.2em; } }

@media (min-width: 760px) {
  .aligned-form .main-actions,
  .aligned-form .secondary-actions {
    padding-left: 10em; }
  .aligned-form input:not([type="submit"]):not([type="reset"]):not([type="file"]):not([type="button"]):not([type="radio"]):not([type="checkbox"]),
  .aligned-form [class*="-input-wrapper"],
  .aligned-form .compound-input,
  .aligned-form .combo-box-input,
  .aligned-form select,
  .aligned-form textarea {
    max-width: 29em; }
  .aligned-form label:not(.input-wrapper):not(.toggle-label) {
    display: inline-block;
    width: 9.5em;
    margin-left: -10em;
    vertical-align: middle; } }

.aligned-form legend {
  border-bottom: 1px dotted #D1D2D4;
  text-transform: none !important;
  width: 29em;
  max-width: 100%; }
  .aligned-form legend + .form-step-list {
    margin-top: 1em; }

.stacked-form {
  margin-left: auto;
  margin-right: auto;
  max-width: 56.0rem !important; }
  .stacked-form label:not(.input-wrapper):not(.toggle-label) {
    display: block;
    margin-bottom: 0.3em; }

.inline-form {
  padding-bottom: 0.3em; }
  .inline-form ol,
  .inline-form li,
  .inline-form > p,
  .inline-form .field-n-error-wrapper,
  .inline-form label,
  .inline-form input,
  .inline-form button,
  .inline-form select {
    display: inline-block !important;
    vertical-align: middle; }
  .inline-form .form-step-list li,
  .inline-form > p {
    margin-top: 0 !important; }
  .inline-form .field-n-error-wrapper p.error {
    position: absolute; }
  @media (max-width: 759px) {
    .inline-form .btn {
      padding-left: 0.4em;
      padding-right: 0.4em; } }

.sub-fields-unit__sub-fields {
  margin-bottom: 1.5em;
  padding-left: 20px; }

.md-input-container {
  position: relative; }
  .md-input-container label:not(.input-wrapper) {
    color: #767676;
    font-weight: normal;
    transition: transform 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);
    transform: translate3d(0, 1.3em, 0) scale(1);
    transform-origin: left top;
    display: block;
    pointer-events: none;
    margin-bottom: 0; }
  .md-input-container.is-focused label, .md-input-container.is-not-empty label {
    font-weight: 300;
    transform: translate3d(0, 0, 0) scale(0.85); }
  .md-input-container.is-focused label {
    color: #117DB0; }
  .md-input-container.is-focused input:not([type="submit"]):not([type="reset"]):not([type="file"]):not([type="button"]):not([type="radio"]):not([type="checkbox"]),
  .md-input-container.is-focused select,
  .md-input-container.is-focused textarea {
    border-color: #117DB0; }
  .md-input-container ::-webkit-input-placeholder {
    color: transparent; }
  .md-input-container :-moz-placeholder {
    color: transparent; }
  .md-input-container ::-moz-placeholder {
    color: transparent; }
  .md-input-container :-ms-input-placeholder {
    color: transparent; }
  .md-input-container ::input-placeholder {
    color: transparent; }
  .md-input-container--dollar:not(.is-focused):not(.is-not-empty) label {
    padding-left: 0.6em; }
  .md-input-container--dollar input {
    padding-left: 0.3em !important;
    padding-right: 0 !important; }

.md-radio-button,
.md-checkbox {
  display: -webkit-inline-box;
  display: -webkit-inline-flex;
  display: -ms-inline-flexbox;
  display: inline-flex;
  cursor: pointer;
  font-weight: normal !important;
  position: relative; }
  .md-radio-button + .md-radio-button,
  .md-radio-button .md-checkbox,
  .md-checkbox + .md-radio-button,
  .md-checkbox .md-checkbox {
    margin-left: 4rem; }
  .md-radio-button .md-fake-input,
  .md-checkbox .md-fake-input {
    border: 1px solid #767676;
    display: inline-block;
    width: 2.8rem;
    height: 2.8rem;
    position: relative;
    flex-shrink: 0; }
    .md-radio-button .md-fake-input:before,
    .md-checkbox .md-fake-input:before {
      font-size: 2.0rem;
      content: "";
      display: block;
      margin: auto;
      background: transparent;
      position: absolute; }
    .md-radio-button .md-fake-input + .md-label-text,
    .md-checkbox .md-fake-input + .md-label-text {
      margin-left: 0.4em; }
  .md-radio-button input,
  .md-checkbox input {
    opacity: 0;
    position: absolute;
    z-index: -1; }
    .md-radio-button input:checked + .md-fake-input,
    .md-checkbox input:checked + .md-fake-input {
      color: #117DB0;
      border-color: #117DB0; }
    .md-radio-button input:focus + .md-fake-input,
    .md-checkbox input:focus + .md-fake-input {
      border-color: #117DB0 !important; }
  .md-radio-button + .md-input-container,
  .md-checkbox + .md-input-container {
    padding-left: 0.4em;
    margin-left: 2.8rem; }
  .md-radio-button .md-label-text,
  .md-checkbox .md-label-text {
    padding-top: 0.45em; }

.md-radio-button .md-fake-input:before {
  top: 2px;
  right: 2px;
  bottom: 2px;
  left: 2px; }

.md-radio-button .md-fake-input,
.md-radio-button .md-fake-input:before {
  border-radius: 500px; }

.md-radio-button input:checked + .md-fake-input:before {
  background: #117DB0; }

.md-checkbox .md-fake-input {
  border-radius: 2px; }
  .md-checkbox .md-fake-input:before {
    color: transparent;
    width: 1em;
    height: 1em;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0; }

.md-checkbox input + .md-fake-input:before {
  font-family: "sofi-icons"; }

.md-checkbox input:checked + .md-fake-input:before {
  color: #117DB0; }

.ng-submitted:not(.ng-valid-parse) .ng-invalid-required,
.ng-submitted:not(.ng-valid-parse) .ng-invalid-required + .md-fake-input,
.ng-submitted:not(.ng-valid-parse) .error-item {
  border-color: #F0503A !important; }

.ng-invalid.ng-touched {
  border-color: #F0503A !important; }

.disabled-choice {
  cursor: default;
  -webkit-filter: grayscale(80%);
  /* Safari 6.0 - 9.0 */
  filter: grayscale(80%);
  opacity: 0.45; }
  .disabled-choice * {
    cursor: default; }

h1 + [class*="js-"]:empty + p, h2 + [class*="js-"]:empty + p, h3 + [class*="js-"]:empty + p, h4 + [class*="js-"]:empty + p, h5 + [class*="js-"]:empty + p, h6 + [class*="js-"]:empty + p {
  margin-top: 0.4em; }

.explanatory-title {
  font-weight: normal;
  opacity: .75;
  display: block; }
  .explanatory-title + h1, .explanatory-title + h2, .explanatory-title + h3, .explanatory-title + h4, .explanatory-title + h5, .explanatory-title + h6 {
    margin-top: 0; }

.content-header {
  text-align: center;
  line-height: 1.1;
  margin-left: auto;
  margin-right: auto;
  max-width: 86.0rem; }
  @media (max-width: 759px) {
    .content-header {
      margin-bottom: 1.33333rem; } }
  @media (min-width: 760px) {
    .content-header {
      margin-bottom: 4rem; } }
  .content-header [class^="icon-"], .content-header .uib-daypicker .glyphicon, .uib-daypicker .content-header .glyphicon, .content-header
  .uib-monthpicker .glyphicon,
  .uib-monthpicker .content-header .glyphicon, .content-header
  .uib-yearpicker .glyphicon,
  .uib-yearpicker .content-header .glyphicon {
    font-size: 1.6rem; }

/*doc
---
title: Links
name: customLinks
category: Modules
---

**TODO:** We need to come up with more defined patterns for link types and how/where they should be used.

See [base link styles][links] for comparison.

##Secondary Link

Secondary links are more subtle de-emphasized links.

```html_example
<p>
  <a href="#" class="secondary-link">This is a stand alone secondary link.</a>
</p>
```

##Action Link
<strong>TODO:</strong> These need to be rethought/refactored. May go away.

These links use the standard link styles but are bold to stand out more. We may possibly want to consider making this the standard link style instead of a special style.

(The "action-link" class name can be applied to any type of element such as a span tag instead of using an anchor tag.)

```html_example
<p>
  <a href="#" class="action-link">This is a stand alone "action" link.</a>
</p>
<p>
  Lorem ipsum dolor <a href="#" class="action-link">"action" link within a sentence</a> sit amet, consectetur adipiscing elit.
</p>
```

##Negative Action Link

NOTE: So far this seems to be used only in one place on Wealth. Need to better define usage.

<p>
  <a href="" class="negative-action-link">Delete</a>
</p>

*/
.fake-link {
  border: 0;
  background: transparent;
  font-size: inherit;
  display: inline-block;
  padding: 0;
  width: auto; }

.action-link {
  font-weight: 700; }

.text-color-link {
  color: inherit !important; }

.sofi-blue-link {
  color: #29C4F3;
  cursor: pointer;
  outline: none;
  text-decoration: none; }
  .sofi-blue-link:hover {
    color: #0b9dc9; }
  .sofi-blue-link:active {
    color: #0A5070; }

.goto-link {
  padding-right: 1em;
  line-height: 1.2;
  display: inline-block;
  position: relative; }
  .goto-link:after {
    font-size: 1em;
    font-family: 'sofi-icons';
    font-style: normal;
    line-height: 1;
    text-decoration: inherit;
    text-align: center;
    display: inline-block;
    width: 1em;
    height: 1em;
    margin: auto 0;
    position: absolute;
    top: 0;
    bottom: 0;
    right: 0; }

.secondary-link {
  color: #767676; }
  .secondary-link:hover {
    color: #767676;
    text-decoration: underline; }
    .secondary-link:hover:after {
      text-decoration: none; }

.back-link {
  font-size: 1.2rem; }
  .back-link [class^="icon-"], .back-link .uib-daypicker .glyphicon, .uib-daypicker .back-link .glyphicon, .back-link
  .uib-monthpicker .glyphicon,
  .uib-monthpicker .back-link .glyphicon, .back-link
  .uib-yearpicker .glyphicon,
  .uib-yearpicker .back-link .glyphicon {
    vertical-align: text-top; }
  .back-link + * {
    margin-top: 0.6em; }

.negative-action-link {
  color: #F0503A; }

/*doc
---
title: Lists
name: lists
category: Modules
---

##Numbered List

A basic numbered list.

```html_example
<ol class="numbered-list">
  <li>list item</li>
  <li>another one</li>
  <li>one more thing</li>
</ol>
```

##Bulleted List

A basic bulleted list.

```html_example
<ul class="bulleted-list">
  <li>list item</li>
  <li>another one</li>
  <li>one more thing</li>
</ul>
```

##PDF Doc List

A list of PDF docs.

NOTE: This may be going away in the upcoming redesign of the Wealth Account Dashboard.

```html_example
<ul class="pdf-doc-list">
  <li>
    <strong><a href="#">May 2016</a></strong>
    <a class="secondary-link small" href="#">Download</a>
  </li>

  <li>
    <strong><a href="#">April 2016</a></strong>
    <a class="secondary-link small" href="#">Download</a>
  </li>

  <li>
    <strong><a href="#">March 2016</a></strong>
    <a class="secondary-link small" href="#">Download</a>
  </li>
</ul>
```

##Progress List

```html_example
<ol class="progress-list">
  <li class="complete">Completed item</li>
  <li class="current">Current item</li>
  <li>An upcoming item</li>
  <li>And another one after that</li>
</ol>
```

*/
.compact-spaced-list > li {
  line-height: 1.1; }

.spaced-list > li {
  line-height: 1.1; }

.numbered-list {
  list-style-type: none;
  counter-reset: custom-counter;
  position: relative;
  padding-left: 2.8em;
  overflow: hidden; }
  .numbered-list > li {
    counter-increment: custom-counter; }
    .numbered-list > li:before {
      content: counter(custom-counter) ".";
      position: absolute;
      left: 0;
      min-width: 1.5em;
      text-align: right; }

.bulleted-list {
  list-style-type: disc;
  padding-left: 1.5em; }
  .bulleted-list .bulleted-list {
    list-style-type: circle;
    margin-top: 0; }

.line-separated-list li + li {
  border-top: 1px dotted #D1D2D4;
  padding-top: 0.5em;
  margin-top: 0.5em; }

.pdf-doc-list > li {
  min-height: 25px;
  padding-left: 30px;
  position: relative; }
  .pdf-doc-list > li:before {
    background: url("./libraries/sofi-global/assets/images/icons/icon-pdf.png") no-repeat;
    background-size: contain;
    content: "";
    display: block;
    width: 20px;
    height: 25px;
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0; }
    @media only screen and (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
      .pdf-doc-list > li:before {
        background-image: url("./libraries/sofi-global/assets/images/icons/icon-pdf-2x.png"); } }
  .pdf-doc-list > li > * {
    vertical-align: middle; }

.pdf-doc-list__links {
  display: inline;
  white-space: nowrap;
  color: #767676; }

.custom-bullet-list > li {
  padding-left: 1.5em;
  position: relative; }
  .custom-bullet-list > li [class^="icon-"], .custom-bullet-list > li .uib-daypicker .glyphicon, .uib-daypicker .custom-bullet-list > li .glyphicon, .custom-bullet-list > li
  .uib-monthpicker .glyphicon,
  .uib-monthpicker .custom-bullet-list > li .glyphicon, .custom-bullet-list > li
  .uib-yearpicker .glyphicon,
  .uib-yearpicker .custom-bullet-list > li .glyphicon {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0; }

.progress-list {
  counter-reset: custom-counter;
  list-style-type: none;
  padding-left: 0; }
  .progress-list .step-label {
    vertical-align: middle; }
  .progress-list > li {
    counter-increment: custom-counter;
    position: relative;
    padding-left: 2.5em; }
    .progress-list > li:before {
      border: 2px solid;
      border-radius: 500px;
      color: #8A8B8A;
      content: counter(custom-counter) "";
      font-weight: bold;
      line-height: 1;
      text-align: center;
      display: block;
      width: 1em;
      height: 1em;
      padding: 0.3em;
      margin: auto 0;
      position: absolute;
      left: 0;
      top: 0;
      bottom: 0; }
    .progress-list > li.complete:before {
      font-family: "sofi-icons"; }
    .progress-list > li.current {
      font-weight: bold; }
      .progress-list > li.current:before {
        color: inherit; }
  @media (max-width: 759px) {
    .progress-list--mobile-responsive {
      display: -webkit-box;
      display: -moz-box;
      display: -ms-flexbox;
      display: -webkit-flex;
      display: flex;
      -webkit-box-align: center;
      -ms-flex-align: center;
      -webkit-align-items: center;
      -moz-align-items: center;
      align-items: center;
      -webkit-justify-content: center;
      -ms-flex-pack: center;
      justify-content: center; }
      .progress-list--mobile-responsive li {
        height: calc(1em + (0.3em * 2) + (2px * 2));
        margin-top: 0;
        overflow: hidden;
        max-width: 0;
        padding-left: 3em; }
        .progress-list--mobile-responsive li:last-child {
          padding-left: calc(1em + (0.3em * 2) + (2px * 2)); }
        .progress-list--mobile-responsive li:not(:last-child):after {
          border-top: 1px solid;
          content: "";
          display: block;
          height: 0;
          margin: auto;
          position: absolute;
          top: 0;
          right: 2px;
          bottom: 0;
          left: calc(1em + (0.3em * 2) + (2px * 2) + 2px); } }

.loading-mask {
  background-color: rgba(255, 255, 255, 0.8);
  text-align: center;
  height: 100%;
  position: fixed;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  z-index: 1100; }
  .loading-mask .icon-spinner, .loading-mask .btn--loading:before {
    font-size: 3.2rem;
    -webkit-animation: spin 2s infinite linear;
    animation: spin 2s infinite linear; }

.pdf-embed {
  border: 1px solid #D1D2D4;
  margin: 2em 0; }
  .pdf-embed iframe {
    width: 100%; }
  .pdf-embed .alert {
    margin: 3px; }

.media-object {
  overflow: hidden; }
  .media-object > img,
  .media-object figcaption {
    display: block; }
  .media-object > img {
    float: left;
    margin-right: 1em; }
  .media-object figcaption {
    overflow: hidden; }

/*doc
---
title: Modals
name: modals
category: Modules
---

Modals are also referred to as dialogs, pop ups and popovers.

```html_example
<div style="padding: 20px; background: #666;">

<div class="modal-dialog modal-lg">
    <div class="modal-content">
		<header class="modal-header">
			<button type="button" class="close" data-dismiss="modal" aria-label="Close" ng-click="vm.close()">
				<i class="icon-cancel-large" aria-hidden="true"></i>
			</button>

			<h2 class="h1">Header for Modal</h2>
		</header>

		<div class="modal-body">
			<p>Some text content.</p>
		</div><!-- /.modal-body -->

		<footer class="modal-footer">
			<a class="fake-link" href="">Secondary Action</a>
			<button type="button" class="btn">Primary Action</button>
		</footer>
    </div>
</div>

</div>
```

*/
.modal-content > *,
.modal-header,
.modal-body,
.modal-footer {
  border-radius: inherit; }

.modal-dialog {
  max-width: 660px; }

.modal-content {
  background: #fff;
  background-clip: padding-box;
  border: 1px solid rgba(0, 0, 0, 0.2);
  border-radius: 4px;
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5); }

.modal-header {
  display: -webkit-box;
  display: -moz-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -webkit-justify-content: space-between;
  -ms-flex-pack: center;
  justify-content: space-between;
  -webkit-box-direction: reverse;
  -webkit-box-orient: horizontal;
  -webkit-flex-direction: row-reverse;
  -moz-flex-direction: row-reverse;
  -ms-flex-direction: row-reverse;
  flex-direction: row-reverse;
  -webkit-box-align: start;
  -ms-flex-align: start;
  -webkit-align-items: flex-start;
  -moz-align-items: flex-start;
  align-items: flex-start;
  -webkit-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  background: transparent;
  border-bottom: 1px solid #D1D2D4;
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0; }
  @media (max-width: 759px) {
    .modal-header {
      padding: 1rem !important; } }
  @media (min-width: 760px) {
    .modal-header {
      padding: 2rem !important; } }
  .modal-header .close {
    color: #8A8B8A;
    font-size: 1.6rem; }
    .modal-header .close + * {
      flex: 1 1 0;
      margin-top: 0 !important;
      margin-right: 0.5em !important; }
  .modal-header button.close {
    background: transparent;
    border: 0;
    padding: 0;
    cursor: pointer;
    -webkit-appearance: none; }
  .modal-header > :not(.close) {
    width: 100%;
    margin-right: auto; }

@media (max-width: 759px) {
  .modal-body {
    padding: 1rem !important; } }

@media (min-width: 760px) {
  .modal-body {
    padding: 2rem !important; } }

.modal-body h3 {
  text-transform: none; }

.modal-body .stacked-form {
  max-width: none !important; }

.modal-dialog .modal-body * + p {
  margin-top: 0.8em !important; }

.modal-footer {
  background: #f5f5f6;
  border-top: 0 !important;
  border-top-left-radius: 0;
  border-top-right-radius: 0;
  padding: 1rem !important; }
  @media (max-width: 759px) {
    .modal-footer {
      display: -webkit-box;
      display: -moz-box;
      display: -ms-flexbox;
      display: -webkit-flex;
      display: flex;
      -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
      flex-wrap: wrap;
      -webkit-box-direction: reverse;
      -webkit-box-orient: vertical;
      -webkit-flex-direction: column-reverse;
      -moz-flex-direction: column-reverse;
      -ms-flex-direction: column-reverse;
      flex-direction: column-reverse; }
      .modal-footer .btn,
      .modal-footer a {
        text-align: center;
        display: block;
        width: 100%; }
        .modal-footer .btn + *,
        .modal-footer a + * {
          margin-bottom: 0.8em; }
      .modal-footer a {
        padding: 0.6em; } }
  @media (min-width: 760px) {
    .modal-footer {
      text-align: right; }
      .modal-footer .btn,
      .modal-footer a {
        display: inline-block;
        width: auto; }
      .modal-footer > * + * {
        margin-left: 1em;
        margin-top: 0 !important; } }

.popover {
  font-weight: normal;
  line-height: initial; }

[style*="none"] + * {
  margin-top: 0; }

.popover-title + .popover-content:empty {
  padding: 0;
  margin: 0; }

.content-panel {
  background: #fff;
  border: 1px solid #D1D2D4; }
  @media (min-width: 760px) {
    .content-panel {
      min-height: 226px; } }
  .content-panel__header {
    background: #0D3A54;
    color: #fff;
    padding: .6rem 1.0rem;
    position: relative; }
    .content-panel__header [class^="icon-"], .content-panel__header .uib-daypicker .glyphicon, .uib-daypicker .content-panel__header .glyphicon, .content-panel__header
    .uib-monthpicker .glyphicon,
    .uib-monthpicker .content-panel__header .glyphicon, .content-panel__header
    .uib-yearpicker .glyphicon,
    .uib-yearpicker .content-panel__header .glyphicon {
      font-size: 0.8em; }
  .content-panel__header-title {
    line-height: 1;
    padding-right: 62px; }
  .content-panel .goal-actions {
    -ms-transform: translateY(-50%);
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%);
    position: absolute;
    right: .8rem;
    top: 50%;
    margin: 0; }
  .content-panel__body {
    padding: 2rem; }
  .content-panel.ghost-panel {
    display: -webkit-box;
    display: -moz-box;
    display: -ms-flexbox;
    display: -webkit-flex;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    -webkit-align-items: center;
    -moz-align-items: center;
    align-items: center;
    border: 3px dotted #76d9f7;
    color: #117DB0;
    cursor: pointer;
    text-align: center;
    word-spacing: 9999px;
    line-height: 1.2; }
    .content-panel.ghost-panel:hover [class^="icon-"], .content-panel.ghost-panel:hover .uib-daypicker .glyphicon, .uib-daypicker .content-panel.ghost-panel:hover .glyphicon, .content-panel.ghost-panel:hover
    .uib-monthpicker .glyphicon,
    .uib-monthpicker .content-panel.ghost-panel:hover .glyphicon, .content-panel.ghost-panel:hover
    .uib-yearpicker .glyphicon,
    .uib-yearpicker .content-panel.ghost-panel:hover .glyphicon {
      color: inherit; }

/*doc
---
title: Tables
name: tables
category: Modules
---

Table design patterns still need better definition and standardization.

##Alternating Row Table

This table style is currently the same as the "Hover Row Table" except the table rows don't change color when you hover over them. We need to standardize these two table designs to consolidate them or else differentiate them more if we can.

Add the class "responsive-table" to make table cells stack into one column in mobile view. You must also add a data-th attribute with the associated table header to each td for this to display headers in mobile view. See below tables for examples of how this works. (Narrow your browser screen.)

```html_example
<table class="alternating-row-table responsive-table">
  <caption>Table Caption</caption>

  <thead>
    <tr>
      <th>Cell Header</th>
      <th>Cell Header</th>
      <th>Cell Header</th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td data-th="Cell Header">Cell content</td>
      <td data-th="Cell Header">Cell content</td>
      <td data-th="Cell Header">Cell content</td>
    </tr>

    <tr>
      <td data-th="Cell Header">Cell content</td>
      <td data-th="Cell Header">Cell content</td>
      <td data-th="Cell Header">Cell content</td>
    </tr>

    <tr>
      <td data-th="Cell Header">Cell content</td>
      <td data-th="Cell Header">Cell content</td>
      <td data-th="Cell Header">Cell content</td>
    </tr>
  </tbody>
</table>
```

##Hover Row Table

```html_example
<table class="hover-row-table responsive-table">
  <caption>Table Caption</caption>

  <thead>
    <tr>
      <th>Cell Header</th>
      <th>Cell Header</th>
      <th>Cell Header</th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td data-th="Cell Header">Cell content</td>
      <td data-th="Cell Header">Cell content</td>
      <td data-th="Cell Header">Cell content</td>
    </tr>

    <tr>
      <td data-th="Cell Header">Cell content</td>
      <td data-th="Cell Header">Cell content</td>
      <td data-th="Cell Header">Cell content</td>
    </tr>

    <tr>
      <td data-th="Cell Header">Cell content</td>
      <td data-th="Cell Header">Cell content</td>
      <td data-th="Cell Header">Cell content</td>
    </tr>
  </tbody>
</table>
```

##Bordered Table

This was originally created as a temporary table style. It's no longer used within Wealth but is still used in Advisor for some tables. If we want to continue using it we should better define how/where to use it and perhaps refine the design.

```html_example
<table class="bordered-table">
  <caption>Table Caption</caption>

  <thead>
    <tr>
      <th>Cell Header</th>
      <th>Cell Header</th>
      <th>Cell Header</th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td data-th="Cell Header">Cell content</td>
      <td data-th="Cell Header">Cell content</td>
      <td data-th="Cell Header">Cell content</td>
    </tr>

    <tr>
      <td data-th="Cell Header">Cell content</td>
      <td data-th="Cell Header">Cell content</td>
      <td data-th="Cell Header">Cell content</td>
    </tr>

    <tr>
      <td data-th="Cell Header">Cell content</td>
      <td data-th="Cell Header">Cell content</td>
      <td data-th="Cell Header">Cell content</td>
    </tr>
  </tbody>
</table>
```

*/
.responsive-table {
  width: 100%; }
  @media (max-width: 759px) {
    .responsive-table thead {
      display: none; }
    .responsive-table tr,
    .responsive-table td,
    .responsive-table th {
      display: block; }
    .responsive-table td,
    .responsive-table th {
      padding: initial !important;
      width: auto !important; }
    .responsive-table tr {
      padding: 0.5em; }
    .responsive-table tbody {
      border-top: 1px solid #D1D2D4; }
      .responsive-table tbody tr {
        border-top: 0 !important; }
        .responsive-table tbody tr:nth-child(odd) {
          background: #fafafa !important; }
        .responsive-table tbody tr:nth-child(even) {
          background: #f5f5f6 !important; }
      .responsive-table tbody td,
      .responsive-table tbody th {
        text-align: left !important; }
        .responsive-table tbody td + td,
        .responsive-table tbody td + th,
        .responsive-table tbody th + td,
        .responsive-table tbody th + th {
          margin-top: 0.3em; }
    .responsive-table td:empty {
      display: none; }
    .responsive-table tbody td[data-th]:before,
    .responsive-table tfoot td[data-th]:before {
      content: attr(data-th) ": ";
      display: inline;
      font-weight: 700; }
    .responsive-table tfoot {
      border-top: 2px dotted #D1D2D4 !important; }
      .responsive-table tfoot td[data-th]:before {
        text-transform: uppercase;
        letter-spacing: 0.04em; } }

.bordered-table {
  width: 100%; }
  .bordered-table th, .bordered-table td {
    border: 1px solid #D1D2D4;
    padding: 0.2em 0.4em; }
  .bordered-table th {
    background: #f5f5f6; }
  .bordered-table tbody th {
    width: 5%;
    white-space: nowrap; }

.border-separated-table {
  width: 100%; }
  .border-separated-table th,
  .border-separated-table td {
    padding: 2rem;
    vertical-align: middle; }
  .border-separated-table thead + tbody th,
  .border-separated-table thead + tbody td,
  .border-separated-table tr + tr th,
  .border-separated-table tr + tr td {
    border-top: 1px solid #D1D2D4; }

.alternating-row-table, .hover-row-table {
  width: 100%; }
  .alternating-row-table tbody th, .hover-row-table tbody th {
    font-size: 1.2rem;
    padding-top: 2em !important; }
  .alternating-row-table + table, .hover-row-table + table {
    margin-top: 2em; }
  .alternating-row-table thead > tr, .hover-row-table thead > tr,
  .alternating-row-table tbody > tr, .hover-row-table tbody > tr {
    border-bottom: 1px solid #e6e7e8; }
  .alternating-row-table > thead, .hover-row-table > thead {
    background: #e6e7e8; }
    .alternating-row-table > thead th, .hover-row-table > thead th {
      font-size: 1.2rem;
      font-weight: normal;
      padding: 0.5em;
      vertical-align: middle; }
      .alternating-row-table > thead th [class^="icon-"], .hover-row-table > thead th [class^="icon-"], .alternating-row-table > thead th .uib-daypicker .glyphicon, .uib-daypicker .alternating-row-table > thead th .glyphicon, .hover-row-table > thead th .uib-daypicker .glyphicon, .uib-daypicker .hover-row-table > thead th .glyphicon, .alternating-row-table > thead th
      .uib-monthpicker .glyphicon,
      .uib-monthpicker .alternating-row-table > thead th .glyphicon, .hover-row-table > thead th
      .uib-monthpicker .glyphicon,
      .uib-monthpicker .hover-row-table > thead th .glyphicon, .alternating-row-table > thead th
      .uib-yearpicker .glyphicon,
      .uib-yearpicker .alternating-row-table > thead th .glyphicon, .hover-row-table > thead th
      .uib-yearpicker .glyphicon,
      .uib-yearpicker .hover-row-table > thead th .glyphicon {
        font-size: 1em; }
  .alternating-row-table > tbody > tr th, .hover-row-table > tbody > tr th,
  .alternating-row-table > tbody > tr td, .hover-row-table > tbody > tr td,
  .alternating-row-table > tfoot > tr th, .hover-row-table > tfoot > tr th,
  .alternating-row-table > tfoot > tr td, .hover-row-table > tfoot > tr td {
    vertical-align: middle;
    padding: 0.8em 0.5em; }
    @media (max-width: 959px) {
      .alternating-row-table > tbody > tr th, .hover-row-table > tbody > tr th,
      .alternating-row-table > tbody > tr td, .hover-row-table > tbody > tr td,
      .alternating-row-table > tfoot > tr th, .hover-row-table > tfoot > tr th,
      .alternating-row-table > tfoot > tr td, .hover-row-table > tfoot > tr td {
        padding: 0.5em; } }
  .alternating-row-table > tbody > tr:nth-child(odd), .hover-row-table > tbody > tr:nth-child(odd) {
    background: transparent; }
  .alternating-row-table > tbody > tr:nth-child(even), .hover-row-table > tbody > tr:nth-child(even) {
    background: #f5f5f6; }
  .alternating-row-table > tfoot, .hover-row-table > tfoot {
    border-top: 1px solid #D1D2D4; }
    .alternating-row-table > tfoot td, .hover-row-table > tfoot td {
      padding-top: .5em;
      padding-bottom: .5em; }

.hover-row-table > tbody > tr:hover > th,
.hover-row-table > tbody > tr:hover > td {
  background: #EBF7FC; }

.number-cell {
  text-align: right; }

.action-cell {
  text-align: center; }
  .action-cellth {
    text-align: left !important; }

tfoot.table-total {
  font-size: 1.2rem;
  text-transform: uppercase;
  background: #f5f5f6;
  text-align: right; }

.simple-data-table > thead th,
.simple-data-table > thead td,
.simple-data-table > tbody th,
.simple-data-table > tbody td {
  padding: 0.1em 0.5em; }
  .simple-data-table > thead th:first-child,
  .simple-data-table > thead td:first-child,
  .simple-data-table > tbody th:first-child,
  .simple-data-table > tbody td:first-child {
    padding-left: 0; }
  .simple-data-table > thead th:last-child,
  .simple-data-table > thead td:last-child,
  .simple-data-table > tbody th:last-child,
  .simple-data-table > tbody td:last-child {
    padding-right: 0; }

.simple-data-table > tbody th {
  font-weight: normal; }

th .date-input-wrapper,
th input {
  max-width: 7em; }

th input {
  font-size: 1.2rem;
  height: auto !important;
  padding: 0.1em !important; }

th input[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none; }

.strong {
  font-weight: bold; }

.small {
  font-size: 1.2rem;
  font-weight: normal; }

[data-title]:not([data-title=""]) {
  cursor: pointer;
  position: relative;
  overflow: visible; }
  [data-title]:not([data-title=""]).open-below:after {
    margin-top: 0.2em;
    margin-bottom: 0;
    bottom: auto;
    top: 100%; }
  [data-title]:not([data-title=""]).verbose-tooltip:after {
    width: 11em;
    width: -webkit-max-content;
    width: -moz-max-content;
    width: max-content; }
  [data-title]:not([data-title=""]):after {
    background: #000;
    border-radius: 4px;
    color: #fff;
    cursor: default;
    font-size: 1.2rem;
    font-weight: bold;
    font-style: normal;
    line-height: 1.2;
    text-align: left;
    content: attr(data-title);
    display: block;
    margin-bottom: 0.2em;
    position: absolute;
    bottom: 100%;
    opacity: 0;
    overflow: hidden;
    max-width: 11em;
    max-height: 0;
    z-index: 500; }
  [data-title]:not([data-title=""]):hover:after {
    border: 1px solid rgba(255, 255, 255, 0.5);
    opacity: .85;
    padding: 0.5em;
    max-height: 10em; }

/**
 *
 * CSS value variables
 *
 */
/*! normalize.css v3.0.2 | MIT License | git.io/normalize */
body {
  font-family: sans-serif;
  margin: 0;
  -ms-text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%; }

article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
menu,
nav,
section,
summary {
  display: block; }

audio,
canvas,
progress,
video {
  display: inline-block;
  vertical-align: baseline; }

audio:not([controls]) {
  display: none;
  height: 0; }

[hidden],
template {
  display: none; }

a {
  background-color: transparent; }

a:active,
a:hover {
  outline: 0; }

abbr[title] {
  border-bottom: 1px dotted; }

b,
strong {
  font-weight: bold; }

dfn {
  font-style: italic; }

h1 {
  font-size: 2em;
  margin: 0.67em 0; }

mark {
  background: #ff0;
  color: #000; }

small {
  font-size: 80%; }

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline; }

sup {
  top: -0.5em; }

sub {
  bottom: -0.25em; }

img {
  border: 0; }

svg:not(:root) {
  overflow: hidden; }

figure {
  margin: 1em 40px; }

hr {
  -moz-box-sizing: content-box;
  box-sizing: content-box;
  height: 0; }

pre {
  overflow: auto; }

code,
kbd,
pre,
samp {
  font-family: monospace, monospace;
  font-size: 1em; }

button,
input,
optgroup,
select,
textarea {
  color: inherit;
  font: inherit;
  margin: 0; }

button {
  overflow: visible; }

button,
select {
  text-transform: none; }

button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
  -webkit-appearance: button;
  cursor: pointer; }

button[disabled],
html input[disabled] {
  cursor: default; }

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

input {
  line-height: normal; }

input[type="checkbox"],
input[type="radio"] {
  box-sizing: border-box;
  padding: 0; }

input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
  height: auto; }

input[type="search"] {
  -webkit-appearance: textfield;
  -moz-box-sizing: content-box;
  -webkit-box-sizing: content-box;
  box-sizing: content-box; }

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

fieldset {
  border: 1px solid #c0c0c0;
  margin: 0 2px;
  padding: 0.35em 0.625em 0.75em; }

legend {
  border: 0;
  padding: 0; }

textarea {
  overflow: auto; }

optgroup {
  font-weight: bold; }

table {
  border-collapse: collapse;
  border-spacing: 0; }

td,
th {
  padding: 0; }

/*! end normalize.css */
/**
 *
 * Vendor css for custom range sliders
 * ex. /student-loan-calculator/
 *
 */
/* https://github.com/andreruffert/rangeslider.js
   ========================================================================== */
.rangeslider,
.rangeslider__fill {
  display: block;
  -moz-box-shadow: inset 0px 1px 3px rgba(0, 0, 0, 0.3);
  -webkit-box-shadow: inset 0px 1px 3px rgba(0, 0, 0, 0.3);
  box-shadow: inset 0px 1px 3px rgba(0, 0, 0, 0.3);
  -moz-border-radius: 10px;
  -webkit-border-radius: 10px;
  border-radius: 10px; }

.rangeslider {
  background: #e6e6e6;
  position: relative; }

.rangeslider--horizontal {
  height: 10px;
  width: 100%; }

.rangeslider--vertical {
  width: 20px;
  min-height: 150px;
  max-height: 100%; }

.rangeslider--disabled {
  filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=40);
  opacity: 0.4; }

.rangeslider__fill {
  background: #15c0f1;
  position: absolute; }

.rangeslider--horizontal .rangeslider__fill {
  top: 0;
  height: 100%; }

.rangeslider--vertical .rangeslider__fill {
  bottom: 0;
  width: 100%; }

.rangeslider__handle {
  background: white;
  border: 1px solid #ccc;
  cursor: pointer;
  display: inline-block;
  width: 27px;
  height: 27px;
  position: absolute;
  background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuNSIgeTE9IjAuMCIgeDI9IjAuNSIgeTI9IjEuMCI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2ZmZmZmZiIgc3RvcC1vcGFjaXR5PSIwLjAiLz48c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiMwMDAwMDAiIHN0b3Atb3BhY2l0eT0iMC4xIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgZmlsbD0idXJsKCNncmFkKSIgLz48L3N2Zz4g");
  background-size: 100%;
  background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, rgba(255, 255, 255, 0)), color-stop(100%, rgba(0, 0, 0, 0.1)));
  background-image: -moz-linear-gradient(rgba(255, 255, 255, 0), rgba(0, 0, 0, 0.1));
  background-image: -webkit-linear-gradient(rgba(255, 255, 255, 0), rgba(0, 0, 0, 0.1));
  background-image: linear-gradient(rgba(255, 255, 255, 0), rgba(0, 0, 0, 0.1));
  -moz-box-shadow: 0 0 8px rgba(0, 0, 0, 0.3);
  -webkit-box-shadow: 0 0 8px rgba(0, 0, 0, 0.3);
  box-shadow: 0 0 3px rgba(0, 0, 0, 0.1);
  -moz-border-radius: 50%;
  -webkit-border-radius: 50%;
  border-radius: 50%; }
  @media (max-width: 759px) {
    .rangeslider__handle {
      width: 34px;
      height: 34px; } }

.rangeslider__handle:after {
  content: "";
  display: block;
  width: 10px;
  height: 10px;
  margin: auto;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuNSIgeTE9IjAuMCIgeDI9IjAuNSIgeTI9IjEuMCI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzAwMDAwMCIgc3RvcC1vcGFjaXR5PSIwLjEzIi8+PHN0b3Agb2Zmc2V0PSIxMDAlIiBzdG9wLWNvbG9yPSIjZmZmZmZmIiBzdG9wLW9wYWNpdHk9IjAuMCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA==");
  background-size: 100%;
  background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, rgba(0, 0, 0, 0.13)), color-stop(100%, rgba(255, 255, 255, 0)));
  background-image: -moz-linear-gradient(rgba(0, 0, 0, 0.13), rgba(255, 255, 255, 0));
  background-image: -webkit-linear-gradient(rgba(0, 0, 0, 0.13), rgba(255, 255, 255, 0));
  background-image: linear-gradient(rgba(0, 0, 0, 0.13), rgba(255, 255, 255, 0));
  -moz-border-radius: 50%;
  -webkit-border-radius: 50%;
  border-radius: 50%; }

.rangeslider__handle:active {
  background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuNSIgeTE9IjAuMCIgeDI9IjAuNSIgeTI9IjEuMCI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzAwMDAwMCIgc3RvcC1vcGFjaXR5PSIwLjEiLz48c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiMwMDAwMDAiIHN0b3Atb3BhY2l0eT0iMC4xMiIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA==");
  background-size: 100%;
  background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, rgba(0, 0, 0, 0.1)), color-stop(100%, rgba(0, 0, 0, 0.12)));
  background-image: -moz-linear-gradient(rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0.12));
  background-image: -webkit-linear-gradient(rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0.12));
  background-image: linear-gradient(rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0.12)); }

.rangeslider--horizontal .rangeslider__handle {
  top: -10px;
  touch-action: pan-y;
  -ms-touch-action: pan-y; }

.rangeslider--vertical .rangeslider__handle {
  left: -10px;
  touch-action: pan-x;
  -ms-touch-action: pan-x; }

input[type="range"]:focus + .rangeslider .rangeslider__handle {
  -moz-box-shadow: 0 0 8px rgba(255, 0, 255, 0.9);
  -webkit-box-shadow: 0 0 8px rgba(255, 0, 255, 0.9);
  box-shadow: 0 0 8px rgba(255, 0, 255, 0.9); }

input[type=text] {
  display: block;
  width: 100%;
  height: 60px;
  padding: 30px 8px 0 8px;
  border-top: none;
  border-left: none;
  border-right: none;
  border-bottom: 1px solid #979797;
  border-radius: 0;
  font-size: 20px;
  font-weight: 400;
  line-height: 1;
  background: rgba(255, 255, 255, 0.97);
  color: #212121;
  box-shadow: none;
  outline: 0;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  -webkit-transition: all 0.2s ease-in-out;
  transition: all 0.2s ease-in-out; }

input[type=text]:focus,
textarea:focus {
  box-shadow: none; }

fieldset {
  border: none;
  position: relative; }

label {
  position: absolute;
  top: 14px;
  left: 15px;
  color: #5B5B5B;
  -webkit-transition: all 0.2s ease-in-out;
  transition: all 0.2s ease-in-out;
  line-height: 1.2;
  cursor: text;
  /*@media all and (min-width:0\0) and (min-resolution: .001dpcm) {
    top: 10px;
  }*/ }
  label .subtext {
    font-size: 12px; }

input[type=text]:focus {
  outline: 0;
  background: white; }

input[type=text]:focus + label,
input[type=text]:valid + label {
  color: #5B5B5B;
  font-weight: 700;
  font-size: 12px;
  -webkit-transform: translate3d(0, -25px, 0);
  -ms-transform: translate3d(0, -25px, 0);
  transform: translate3d(0, -25px, 0);
  position: absolute; }
  @media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
    input[type=text]:focus + label,
    input[type=text]:valid + label {
      top: 30px; } }

input[type=text]::-ms-clear {
  display: none; }

.icon {
  position: absolute;
  top: 12px;
  right: 0;
  width: 18px;
  height: 18px;
  font-weight: bold; }

/**
 *
 * SoFi Wordpress button style override
 *
 */
.btn {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  -webkit-font-smoothing: antialiased;
  background-color: #15c0f1;
  border: 2px solid transparent;
  color: #fff;
  cursor: pointer;
  display: inline-block;
  font-family: "Gotham Bold", Helvetica, Arial, "Lucida Grande", sans-serif;
  font-size: 12px;
  text-transform: uppercase;
  font-weight: 700;
  line-height: 1;
  padding: 10px 13px;
  text-decoration: none;
  user-select: none;
  vertical-align: middle;
  white-space: nowrap;
  -webkit-border-radius: 1px;
  border-radius: 1px;
  background-clip: padding-box;
  /* stops bg color from leaking outside the border: */
  /*  @include media($tablet) {
    font-size: 13px;
    padding: 13px 18px;
  }*/ }
  .btn:hover, .btn:focus, .btn.active {
    background-color: transparent;
    color: #15c0f1;
    border: 2px solid #15c0f1;
    overflow: hidden; }
  .btn:active {
    opacity: 0.7; }
  .btn:disabled {
    cursor: not-allowed;
    opacity: 0.5; }

/**
 *
 * SoFi Wordpress button style override
 *
 */
.btn-select {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  -webkit-font-smoothing: antialiased;
  background-color: #666;
  border: 2px solid transparent;
  color: #fff;
  cursor: pointer;
  display: inline-block;
  font-family: "Gotham Bold", Helvetica, Arial, "Lucida Grande", sans-serif;
  font-size: 12px;
  text-transform: uppercase;
  font-weight: 700;
  line-height: 1;
  padding: 10px 13px;
  text-decoration: none;
  user-select: none;
  vertical-align: middle;
  white-space: nowrap;
  -webkit-border-radius: 1px;
  border-radius: 1px;
  background-clip: padding-box;
  /* stops bg color from leaking outside the border: */
  /*  @include media($tablet) {
    font-size: 13px;
    padding: 13px 18px;
  }*/ }
  .btn-select:hover, .btn-select:focus, .btn-select.active {
    background-color: #15c0f1;
    color: #FFF;
    border: 2px solid #15c0f1;
    overflow: hidden; }
  .btn-select:active {
    opacity: 0.7; }
  .btn-select:disabled {
    cursor: not-allowed;
    opacity: 0.5; }

/**
 * SoFi Wordpress styles override
 * Base settings for typographic elements
 *
 */
/* Web fonts
    ========================================================================== */
@font-face {
  font-family: 'Larsseit';
  src: url("../fonts/larsseit.woff2") format("woff2"), url("../fonts/larsseit.woff") format("woff"), url("../fonts/larsseit.ttf") format("truetype");
  font-weight: normal;
  font-style: normal; }

@font-face {
  font-family: 'Larsseit-Bold';
  src: url("../fonts/larsseit-bold.woff2") format("woff2"), url("../fonts/larsseit-bold.woff") format("woff"), url("../fonts/larsseit-bold.ttf") format("truetype");
  font-weight: normal;
  font-style: normal; }

@font-face {
  font-family: 'Gotham Bold';
  src: url("../fonts/gothambold-webfont.woff2") format("woff2"), url("../fonts/gothambold-webfont.woff") format("woff"), url("../fonts/gothambold-webfont.ttf") format("truetype");
  font-weight: normal;
  font-style: normal; }

/* Prevent FOIT (flash of unstyled text)
    https://www.filamentgroup.com/lab/font-events.html
    See src/js/custom.js for implementation
    ========================================================================== */
body,
h1,
h2,
h3,
h4,
h5,
h6,
.l-hero .section__heading,
.l-hero .section__subheading {
  font-family: sans-serif; }

.fonts-loaded body {
  font-family: "Larsseit", Helvetica, Arial, "Lucida Grande", sans-serif; }

.fonts-loaded h1,
.fonts-loaded h2,
.fonts-loaded h3,
.fonts-loaded h4,
.fonts-loaded h5,
.fonts-loaded h6 {
  font-family: "Gotham Bold", Helvetica, Arial, "Lucida Grande", sans-serif; }

.fonts-loaded .l-hero .section__heading,
.fonts-loaded .l-hero .section__subheading {
  font-family: "Larsseit-Bold", Helvetica, Arial, "Lucida Grande", sans-serif; }

/* Global
    ========================================================================== */
body {
  -webkit-font-feature-settings: "kern", "liga", "pnum";
  -moz-font-feature-settings: "kern", "liga", "pnum";
  -ms-font-feature-settings: "kern", "liga", "pnum";
  font-feature-settings: "kern", "liga", "pnum";
  -webkit-font-smoothing: antialiased;
  color: #5b5b5b;
  font-size: 16px;
  line-height: 1.4;
  letter-spacing: 0;
  font-family: "Larsseit", Helvetica, Arial, "Lucida Grande", sans-serif;
  font-weight: 590; }

h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: 16px;
  line-height: 1.5;
  margin: 0 0 0.7em;
  letter-spacing: 0;
  font-weight: 600;
  font-family: "Gotham Bold", Helvetica, Arial, "Lucida Grande", sans-serif; }

p {
  margin: 0 0 0.7em;
  line-height: 1.5; }

a {
  color: #15c0f1;
  text-decoration: none;
  transition: color 0.1s linear; }
  a:active, a:focus, a:hover {
    color: #119ac1; }
  a:active, a:focus {
    outline: none; }

_ hr {
  border-bottom: 1px solid #cccccc;
  border-left: none;
  border-right: none;
  border-top: none;
  margin: 1.4em 0; }

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

sub,
sup {
  position: relative;
  vertical-align: baseline;
  line-height: 0; }
  sub a,
  sup a {
    color: inherit; }

sub {
  font-size: 50%;
  font-weight: normal; }

sup {
  top: -0.8em;
  font-size: 60%;
  font-weight: 900; }
  sup a {
    text-decoration: underline; }

/** Put custom scss here */
.retirement-calculator {
  margin: 0 auto;
  width: 100%;
  max-width: 1000px;
  min-width: 320px;
  font-size: 1.1em;
  line-height: 1.7em; }
  .retirement-calculator div.wealth-cta {
    padding-top: 30px;
    padding-bottom: 20px;
    text-align: center; }
    .retirement-calculator div.wealth-cta .btn--wealth {
      padding: 15px 40px;
      margin-top: -6px;
      background: #9ccb3b;
      font-weight: normal; }
      @media (max-width: 759px) {
        .retirement-calculator div.wealth-cta .btn--wealth {
          width: -moz-calc(100% - 50px);
          width: -webkit-calc(100% - 50px);
          width: calc(100% - 50px); } }
      .retirement-calculator div.wealth-cta .btn--wealth:hover {
        background-color: #15c0f1;
        color: #FFF; }
  .retirement-calculator .disclaimer {
    width: 100%;
    text-align: left;
    padding-left: 15px;
    padding-right: 15px;
    padding-top: 10px;
    font-size: 15px; }
    @media (max-width: 759px) {
      .retirement-calculator .disclaimer {
        display: none; } }
  .retirement-calculator .col {
    margin-top: 0 !important; }
  .retirement-calculator .hide {
    display: none; }
  .retirement-calculator hr {
    border: 0;
    height: 1px;
    margin: 1.2em 0; }
  .retirement-calculator .intro-wrapper {
    padding-bottom: 10px;
    background-color: transparent;
    padding-right: 32px;
    padding-left: 32px;
    max-width: 600px;
    margin: 0 auto; }
  .retirement-calculator i.stretch {
    display: inline-block;
    -webkit-transform: scale(2, 1);
    -moz-transform: scale(2, 1);
    -ms-transform: scale(2, 1);
    -o-transform: scale(2, 1);
    transform: scale(2, 1); }
  .retirement-calculator .optional, .retirement-calculator .page {
    display: none; }
  .retirement-calculator .show {
    display: block !important; }
  .retirement-calculator .fancy-input.missing-error {
    border: 1px solid #F02234; }
  .retirement-calculator .retirement-error-messages, .retirement-calculator .error-message, .retirement-calculator .saving-error-messages, .retirement-calculator .savingsIncrease-error-messages {
    display: none;
    width: 100%;
    text-align: right;
    color: #F02234;
    font-size: 12px; }
    @media (max-width: 760px) {
      .retirement-calculator .retirement-error-messages, .retirement-calculator .error-message, .retirement-calculator .saving-error-messages, .retirement-calculator .savingsIncrease-error-messages {
        text-align: center; } }
  .retirement-calculator #questions_page {
    background-color: #fff;
    margin: 20px; }
    .retirement-calculator #questions_page button.btn--hero {
      float: right; }
    .retirement-calculator #questions_page .label {
      font-size: 20px; }
    .retirement-calculator #questions_page .toolTip {
      display: inline-block; }
      .retirement-calculator #questions_page .toolTip .tooltiptext {
        visibility: hidden;
        width: 300px;
        background-color: #FFFFFF;
        text-align: left;
        border-radius: 6px;
        padding: 20px;
        box-shadow: 2px 3px 12px 0 rgba(0, 0, 0, 0.1);
        /* Position the tooltip in question wrap*/
        font-size: 14px;
        line-height: 20px;
        position: absolute;
        z-index: 1;
        left: 10%;
        margin-top: 10px; }
        @media (min-width: 759px) {
          .retirement-calculator #questions_page .toolTip .tooltiptext {
            left: 30%; } }
        @media (min-width: 1920px) {
          .retirement-calculator #questions_page .toolTip .tooltiptext {
            left: 40%; } }
    .retirement-calculator #questions_page .toolTip:hover .tooltiptext {
      visibility: visible; }
    .retirement-calculator #questions_page svg {
      width: 18px;
      height: 18px;
      margin-left: 10px; }
    .retirement-calculator #questions_page .button-wrapper button {
      border: 1px solid #DDDDDD;
      background-color: #F4F4F4;
      color: #5B5B5B;
      font-family: Larsseit;
      font-size: 16px;
      text-transform: none; }
    .retirement-calculator #questions_page .button-wrapper .selected {
      background-color: #36C5F1;
      color: #FFFFFF; }
    .retirement-calculator #questions_page .button-wrapper .calculator__btn--result:last-child {
      margin-right: 0; }
  .retirement-calculator #results_page {
    padding-left: 15px;
    padding-right: 15px; }
    .retirement-calculator #results_page .max-header {
      margin: 0 auto;
      width: 110px; }
      @media (max-width: 759px) {
        .retirement-calculator #results_page .max-header {
          margin: 0 auto; } }
      @media (max-width: 340px) {
        .retirement-calculator #results_page .max-header {
          margin: 0 auto; } }
    .retirement-calculator #results_page .result-header {
      padding-top: 15px;
      text-align: center;
      position: relative;
      font-family: Larsseit;
      color: #5B5B5B; }
      .retirement-calculator #results_page .result-header .title {
        font-size: 28px !important;
        font-weight: 800;
        line-height: 35px; }
      .retirement-calculator #results_page .result-header p {
        /*font-size: 16px !important;  */
        line-height: 22px; }
      .retirement-calculator #results_page .result-header .edit-wrapper {
        position: absolute;
        top: 0;
        right: 0;
        cursor: pointer;
        text-align: right; }
        .retirement-calculator #results_page .result-header .edit-wrapper button {
          font-weight: 600;
          text-align: right;
          padding-right: 5px;
          margin-right: 0; }
      .retirement-calculator #results_page .result-header .no-margin {
        margin: 0px !important; }
      @media (min-width: 760px) {
        .retirement-calculator #results_page .result-header {
          text-align: left; } }
    .retirement-calculator #results_page .min-640 {
      min-width: 640px; }
    .retirement-calculator #results_page .scroll-pane {
      width: 100%;
      height: auto;
      overflow-x: scroll; }
    @media (min-width: 760px) {
      .retirement-calculator #results_page .result {
        padding-right: 40px; } }
    .retirement-calculator #results_page .result-inner {
      padding-top: 10px;
      /*bar*/ }
      .retirement-calculator #results_page .result-inner .odd-success {
        background-color: #007EAD;
        color: #FFFFFF;
        padding: 40px; }
        .retirement-calculator #results_page .result-inner .odd-success h2 {
          font-size: 100px !important;
          line-height: 125px;
          margin: 0; }
        @media (max-width: 759px) {
          .retirement-calculator #results_page .result-inner .odd-success .blur-not-show {
            display: none; } }
      .retirement-calculator #results_page .result-inner .need-amount {
        background-color: #024357;
        color: #FFFFFF;
        margin-bottom: 10px;
        padding: 40px; }
        .retirement-calculator #results_page .result-inner .need-amount h2 {
          font-size: 30px !important;
          line-height: 54px;
          margin: 0; }
          @media (min-width: 350px) {
            .retirement-calculator #results_page .result-inner .need-amount h2 {
              font-size: 35px !important; } }
          @media (min-width: 860px) {
            .retirement-calculator #results_page .result-inner .need-amount h2 {
              font-size: 42px !important; } }
      .retirement-calculator #results_page .result-inner .loader {
        margin: 0 auto;
        border: 16px solid #f3f3f3;
        /* Light grey */
        border-top: 16px solid #3498db;
        /* Blue */
        border-radius: 50%;
        width: 120px;
        height: 120px;
        animation: spin 2s linear infinite; }

@keyframes spin {
  0% {
    transform: rotate(0deg); }
  100% {
    transform: rotate(360deg); } }
      .retirement-calculator #results_page .result-inner .result-footer {
        margin: 20px 0;
        font-size: 16px;
        color: #5B5B5B;
        font-weight: bold;
        line-height: 22px;
        font-family: Larsseit;
        letter-spacing: .5px; }
        .retirement-calculator #results_page .result-inner .result-footer span {
          color: #007EAD; }
        @media (min-width: 759px) {
          .retirement-calculator #results_page .result-inner .result-footer {
            text-align: left; } }
      .retirement-calculator #results_page .result-inner .slider {
        /* toolTip for portfolio*/ }
        @media (max-width: 759px) {
          .retirement-calculator #results_page .result-inner .slider {
            display: none; } }
        .retirement-calculator #results_page .result-inner .slider .btn {
          background-color: #F0F0F0;
          border: none;
          color: #5B5B5B;
          font-size: 12px;
          font-family: Larsseit;
          line-height: 24px;
          text-transform: none;
          padding: 15px 70px; }
        .retirement-calculator #results_page .result-inner .slider .rangeslider__fill {
          background: #e6e6e6; }
        .retirement-calculator #results_page .result-inner .slider .l-flex-center {
          margin-top: 30px; }
          .retirement-calculator #results_page .result-inner .slider .l-flex-center ul {
            list-style: none;
            width: 100%;
            margin-bottom: 30px; }
            .retirement-calculator #results_page .result-inner .slider .l-flex-center ul p {
              margin-top: 15px;
              margin-bottom: 15px; }
          .retirement-calculator #results_page .result-inner .slider .l-flex-center .portfolio-odds {
            background-color: #F0F0F0;
            font-size: 12px;
            width: 50%; }
        .retirement-calculator #results_page .result-inner .slider .label {
          text-align: left; }
        .retirement-calculator #results_page .result-inner .slider .toolTip {
          display: inline-block; }
          .retirement-calculator #results_page .result-inner .slider .toolTip .tooltiptext {
            visibility: hidden;
            width: 300px;
            background-color: #FFFFFF;
            text-align: left;
            border-radius: 6px;
            padding: 20px;
            box-shadow: 2px 3px 12px 0 rgba(0, 0, 0, 0.1);
            font-size: 14px;
            line-height: 20px;
            position: absolute;
            z-index: 1;
            margin-left: -15%;
            margin-top: 10px; }
        .retirement-calculator #results_page .result-inner .slider .toolTip:hover .tooltiptext {
          visibility: visible; }
        .retirement-calculator #results_page .result-inner .slider svg {
          width: 18px;
          height: 18px;
          margin-left: 10px; }
        .retirement-calculator #results_page .result-inner .slider .legend-five {
          position: relative;
          margin-top: 15px;
          margin-bottom: 90px;
          line-height: 2; }
          .retirement-calculator #results_page .result-inner .slider .legend-five .figure {
            position: absolute;
            font-size: 10px; }
            .retirement-calculator #results_page .result-inner .slider .legend-five .figure.fifth:nth-child(1) {
              left: 1.5%; }
            .retirement-calculator #results_page .result-inner .slider .legend-five .figure.fifth:nth-child(2) {
              left: 20%; }
            .retirement-calculator #results_page .result-inner .slider .legend-five .figure.fifth:nth-child(3) {
              left: 45%;
              font-weight: bold; }
            .retirement-calculator #results_page .result-inner .slider .legend-five .figure.fifth:nth-child(4) {
              left: 67%; }
            .retirement-calculator #results_page .result-inner .slider .legend-five .figure.fifth:nth-child(5) {
              left: 90%; }
      .retirement-calculator #results_page .result-inner .edit-assumptions {
        border: 2px solid #00C5F2;
        color: #00C5F2;
        text-align: center;
        font-family: Gotham;
        padding: 10px 20px;
        margin: 10px;
        background: #FFFFFF;
        font-size: 14px; }
        @media (min-width: 760px) {
          .retirement-calculator #results_page .result-inner .edit-assumptions {
            display: none; } }
      .retirement-calculator #results_page .result-inner .returns-select {
        position: relative;
        text-align: left; }
        .retirement-calculator #results_page .result-inner .returns-select label {
          text-align: left;
          font-size: 18px;
          margin-bottom: 2px;
          position: relative;
          left: 0; }
        .retirement-calculator #results_page .result-inner .returns-select select {
          margin-top: 30px;
          margin-bottom: 50px;
          width: 100%;
          border: 1px solid #DDDDDD !important;
          height: 50px;
          display: block;
          border-radius: 4px;
          font-size: 14px;
          padding-left: 20px; }
        .retirement-calculator #results_page .result-inner .returns-select .drop-down-arrow {
          height: 15px;
          position: absolute;
          right: 5px;
          top: 52px;
          width: 52px;
          pointer-events: none;
          fill: #29C4F3; }
        .retirement-calculator #results_page .result-inner .returns-select .toolTip {
          display: inline-block; }
          .retirement-calculator #results_page .result-inner .returns-select .toolTip .tooltiptext {
            visibility: hidden;
            width: 300px;
            background-color: #FFFFFF;
            text-align: left;
            border-radius: 6px;
            padding: 20px;
            box-shadow: 2px 3px 12px 0 rgba(0, 0, 0, 0.1);
            font-size: 14px;
            line-height: 20px;
            position: absolute;
            z-index: 1;
            margin-left: -15%;
            margin-top: 10px; }
        .retirement-calculator #results_page .result-inner .returns-select .toolTip:hover .tooltiptext {
          visibility: visible; }
        .retirement-calculator #results_page .result-inner .returns-select svg {
          width: 18px;
          height: 18px;
          margin-left: 10px; }
        @media (min-width: 760px) {
          .retirement-calculator #results_page .result-inner .returns-select {
            display: none; } }
      @media (min-width: 760px) {
        .retirement-calculator #results_page .result-inner .returns-select-hr {
          display: none; } }
      .retirement-calculator #results_page .result-inner .result-note {
        color: #5B5B5B;
        font-size: 14px;
        margin: 15px 0;
        font-family: Larsseit; }
        @media (min-width: 760px) {
          .retirement-calculator #results_page .result-inner .result-note {
            text-align: left; } }
      .retirement-calculator #results_page .result-inner .started {
        margin: 30px 0; }
        @media (min-width: 759px) {
          .retirement-calculator #results_page .result-inner .started {
            display: none; } }
      .retirement-calculator #results_page .result-inner .result-account {
        color: #5B5B5B;
        font-size: 18px;
        font-weight: bold;
        line-height: 22px;
        font-family: Larsseit;
        letter-spacing: .5px; }
        .retirement-calculator #results_page .result-inner .result-account button {
          margin: 15px;
          font-size: 14px;
          padding: 15px 20px; }
        @media (min-width: 760px) {
          .retirement-calculator #results_page .result-inner .result-account {
            text-align: left; } }
      @media (min-width: 320px) {
        .retirement-calculator #results_page .result-inner h2.title {
          text-align: center; } }
    .retirement-calculator #results_page .assumption {
      text-align: left; }
      @media (min-width: 759px) {
        .retirement-calculator #results_page .assumption {
          margin-left: 5rem; } }
      @media (max-width: 759px) {
        .retirement-calculator #results_page .assumption {
          display: none; } }
    .retirement-calculator #results_page .assumption-wrapper {
      /*assumption wrapper button yes or no*/
      /*spendingAjustment slider*/ }
      .retirement-calculator #results_page .assumption-wrapper .bottom-border {
        border-bottom: 1px solid #CCC; }
      .retirement-calculator #results_page .assumption-wrapper .recalculate {
        text-align: center; }
        @media (min-width: 760px) {
          .retirement-calculator #results_page .assumption-wrapper .recalculate {
            text-align: right; } }
      .retirement-calculator #results_page .assumption-wrapper .calculate-btn {
        margin-top: 30px;
        font-size: 14px;
        background: #9ECB4F;
        border: 2px solid #9ECB4F;
        padding: 15px 35px;
        color: #fff; }
      .retirement-calculator #results_page .assumption-wrapper .button-wrapper button {
        border: 1px solid #DDDDDD;
        background-color: #F4F4F4;
        color: #5B5B5B;
        font-family: Larsseit;
        font-size: 16px;
        text-transform: none;
        padding: 10px 12px; }
      .retirement-calculator #results_page .assumption-wrapper .button-wrapper .selected {
        background-color: #36C5F1;
        color: #FFFFFF; }
      .retirement-calculator #results_page .assumption-wrapper .button-wrapper .calculator__btn--result:last-child {
        margin-right: 0; }
      .retirement-calculator #results_page .assumption-wrapper .spendingAdjustment .col {
        width: 100%;
        margin-left: 0 !important; }
      .retirement-calculator #results_page .assumption-wrapper #spendingAdjustmentSlider {
        width: 100%;
        margin-top: 30px;
        margin-bottom: -40px; }
        .retirement-calculator #results_page .assumption-wrapper #spendingAdjustmentSlider #js-rangeslider-0 {
          display: none; }
        .retirement-calculator #results_page .assumption-wrapper #spendingAdjustmentSlider .rangeslider__fill {
          background: #e6e6e6; }
        .retirement-calculator #results_page .assumption-wrapper #spendingAdjustmentSlider .legend-five {
          position: relative;
          margin-top: 15px;
          margin-bottom: 90px;
          line-height: 2; }
          .retirement-calculator #results_page .assumption-wrapper #spendingAdjustmentSlider .legend-five .figure {
            position: absolute;
            font-size: 15px; }
            .retirement-calculator #results_page .assumption-wrapper #spendingAdjustmentSlider .legend-five .figure.fifth:nth-child(1) {
              left: 1.5%; }
            .retirement-calculator #results_page .assumption-wrapper #spendingAdjustmentSlider .legend-five .figure.fifth:nth-child(2) {
              left: 23%; }
            .retirement-calculator #results_page .assumption-wrapper #spendingAdjustmentSlider .legend-five .figure.fifth:nth-child(3) {
              left: 49%;
              font-weight: bold; }
            .retirement-calculator #results_page .assumption-wrapper #spendingAdjustmentSlider .legend-five .figure.fifth:nth-child(4) {
              left: 70%; }
            .retirement-calculator #results_page .assumption-wrapper #spendingAdjustmentSlider .legend-five .figure.fifth:nth-child(5) {
              left: 92%; }
      .retirement-calculator #results_page .assumption-wrapper .calculate-btn:hover {
        background: #fff;
        color: #9ECB4F; }
      .retirement-calculator #results_page .assumption-wrapper .value {
        position: absolute;
        top: -10px;
        right: 0;
        color: #15c0f1; }
      .retirement-calculator #results_page .assumption-wrapper .toolTip {
        display: inline-block; }
        .retirement-calculator #results_page .assumption-wrapper .toolTip .tooltiptext {
          visibility: hidden;
          width: 300px;
          background-color: #FFFFFF;
          text-align: left;
          border-radius: 6px;
          padding: 20px;
          box-shadow: 2px 3px 12px 0 rgba(0, 0, 0, 0.1);
          /* Position the tooltip */
          font-size: 14px;
          line-height: 20px;
          position: absolute;
          z-index: 1;
          margin-top: 10px;
          left: 10%; }
          @media (min-width: 759px) {
            .retirement-calculator #results_page .assumption-wrapper .toolTip .tooltiptext {
              left: initial;
              margin-left: -15%; } }
          @media (min-width: 1920px) {
            .retirement-calculator #results_page .assumption-wrapper .toolTip .tooltiptext {
              margin-left: -5%; } }
      .retirement-calculator #results_page .assumption-wrapper .toolTip:hover .tooltiptext {
        visibility: visible; }
      .retirement-calculator #results_page .assumption-wrapper svg {
        width: 18px;
        height: 18px;
        margin-left: 10px; }
    .retirement-calculator #results_page .page-header {
      margin-bottom: 20px; }
      .retirement-calculator #results_page .page-header .col {
        margin-left: 0; }
      .retirement-calculator #results_page .page-header .col:last-child {
        margin-top: 0 !important;
        text-align: right; }
      .retirement-calculator #results_page .page-header .col:first-child {
        text-align: left; }
  .retirement-calculator #intro_page, .retirement-calculator #results_page {
    text-align: center; }
    .retirement-calculator #intro_page h1, .retirement-calculator #results_page h1 {
      text-transform: uppercase; }
    .retirement-calculator #intro_page p, .retirement-calculator #results_page p {
      margin-bottom: 10px; }
  .retirement-calculator a.calculator__btn--info {
    color: #999;
    margin-left: 5px;
    font-size: 22px; }
  .retirement-calculator .question.not-optional {
    padding: 20px 0; }
    @media (max-width: 760px) {
      .retirement-calculator .question.not-optional {
        text-align: center; } }
    @media (max-width: 760px) {
      .retirement-calculator .question.not-optional .fancy-input {
        display: inline-flex;
        float: inherit; } }
    @media (max-width: 760px) {
      .retirement-calculator .question.not-optional .button-wrapper {
        display: inline-flex;
        float: inherit; } }
  .retirement-calculator .question.optional {
    padding-top: 20px !important; }
  .retirement-calculator .fancy-input {
    height: 44px;
    width: 100px;
    border: 1px solid #DDDDDD;
    border-radius: 4px;
    float: right;
    padding-left: 2%; }
    @media (min-width: 760px) {
      .retirement-calculator .fancy-input {
        padding-left: 5%; } }
  .retirement-calculator .percentage span {
    color: #29C4F3;
    margin-left: -35px;
    margin-bottom: 3px; }
  .retirement-calculator .fancy-input--dollar {
    float: right;
    color: #29C4F3;
    font-size: 1.3em;
    width: 163px;
    min-width: 0px !important; }
    .retirement-calculator .fancy-input--dollar span {
      height: 1.5em; }
  .retirement-calculator .narrowWidth {
    width: 120px; }
  .retirement-calculator input:not([type="submit"]):not([type="reset"]):not([type="file"]):not([type="button"]):not([type="radio"]):not([type="checkbox"]), .retirement-calculator select {
    border-bottom: 0;
    height: 2em; }
  .retirement-calculator .question.not-optional {
    border-bottom: 1px solid #EEEEEE; }
  .retirement-calculator button {
    font-weight: 400; }
  .retirement-calculator .calculator__btn--result {
    float: right;
    background-color: #555555;
    border: #555555;
    padding-left: 20px;
    padding-right: 20px;
    padding: 10px 30px; }
    .retirement-calculator .calculator__btn--result:last-child {
      margin-right: 10px; }
    .retirement-calculator .calculator__btn--result:hover {
      color: #fff;
      background-color: #29C4F3; }
  .retirement-calculator .question-submit {
    text-align: center; }
    .retirement-calculator .question-submit .btn--hero {
      margin-top: 20px;
      padding: 15px 40px;
      float: inherit !important; }
      @media (min-width: 760px) {
        .retirement-calculator .question-submit .btn--hero {
          float: right !important; } }
  .retirement-calculator .btn--basic {
    text-align: left;
    border: none;
    color: #15c0f1;
    background-color: transparent;
    font-size: inherit; }
    .retirement-calculator .btn--basic i {
      font-size: 1.4em;
      margin-right: -5px; }
  .retirement-calculator .btn--back {
    position: relative;
    font-size: 0.8em;
    left: -20px;
    text-align: left; }
  .retirement-calculator .btn--pdf {
    color: #999;
    position: relative;
    right: -10px;
    text-transform: none;
    font-weight: normal;
    font-size: 0.8em; }
    .retirement-calculator .btn--pdf i {
      font-size: 1.4em;
      color: #29C4F3; }
    .retirement-calculator .btn--pdf:hover {
      color: #29C4F3; }
  .retirement-calculator button.result.selected {
    background-color: #29C4F3;
    border-color: #29C4F3;
    color: #fff; }

@media (max-width: 759px) {
  .ira-calculator .radio-align {
    text-align: center; }
  .ira-calculator #questions_page .label {
    font-size: 0.92em; }
  .ira-calculator #questions_page .button-wrapper {
    float: right;
    width: 190px;
    padding-top: 5px; }
  .ira-calculator .calculate-btn {
    width: 100%; }
  .ira-calculator .calculator__btn--result {
    float: right;
    background-color: #555555;
    border: #555555;
    padding-left: 30px;
    padding-right: 30px; }
    .ira-calculator .calculator__btn--result:hover {
      color: #fff;
      background-color: #29C4F3; } }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGUuY3NzIiwic291cmNlcyI6WyJzdHlsZS5zY3NzIiwiLi4vX2Jhc2Uvc2hhcmVkLXN0eWxlcy9zcmMvc3R5bGVzaGVldHMvc29maS1nbG9iYWwtYWxsLW1vZHVsZXMuc2NzcyIsIi4uL19iYXNlL3NoYXJlZC1zdHlsZXMvc3JjL3N0eWxlc2hlZXRzL2xpYnJhcmllcy9zb2ZpLWdsb2JhbC9fc29maS1nbG9iYWwuc2NzcyIsIi4uL19iYXNlL3NoYXJlZC1zdHlsZXMvc3JjL3N0eWxlc2hlZXRzL2xpYnJhcmllcy9zb2ZpLWdsb2JhbC9jb25maWcvX2NvbmZpZy5zY3NzIiwiLi4vX2Jhc2Uvc2hhcmVkLXN0eWxlcy9zcmMvc3R5bGVzaGVldHMvbGlicmFyaWVzL3NvZmktZ2xvYmFsL2NvbmZpZy9zdWIvX3ZhcmlhYmxlcy5zY3NzIiwiLi4vX2Jhc2Uvc2hhcmVkLXN0eWxlcy9zcmMvc3R5bGVzaGVldHMvbGlicmFyaWVzL3NvZmktZ2xvYmFsL2NvbmZpZy9zdWIvX2JyZWFrLXBvaW50cy5zY3NzIiwiLi4vX2Jhc2Uvc2hhcmVkLXN0eWxlcy9zcmMvc3R5bGVzaGVldHMvbGlicmFyaWVzL3NvZmktZ2xvYmFsL2NvbmZpZy9zdWIvX2ZvbnQtaW1wb3J0cy5zY3NzIiwiLi4vX2Jhc2Uvc2hhcmVkLXN0eWxlcy9zcmMvc3R5bGVzaGVldHMvbGlicmFyaWVzL3NvZmktZ2xvYmFsL2NvbmZpZy9zdWIvX2xpYnJhcnktaW1wb3J0cy5zY3NzIiwiLi4vX2Jhc2Uvc2hhcmVkLXN0eWxlcy9zcmMvc3R5bGVzaGVldHMvbGlicmFyaWVzL3NvZmktZ2xvYmFsL2NvbmZpZy9zdWIvX2Nyb3NzLWJyb3dzZXItc3VwcG9ydC1taXhpbnMuc2NzcyIsIi4uL19iYXNlL3NoYXJlZC1zdHlsZXMvc3JjL3N0eWxlc2hlZXRzL2xpYnJhcmllcy9zb2ZpLWdsb2JhbC9wYXR0ZXJucy9fcGF0dGVybnMuc2NzcyIsIi4uL19iYXNlL3NoYXJlZC1zdHlsZXMvc3JjL3N0eWxlc2hlZXRzL2xpYnJhcmllcy9zb2ZpLWdsb2JhbC9wYXR0ZXJucy9hbmltYXRpb24vX2FuaW1hdGlvbi5zY3NzIiwiLi4vX2Jhc2Uvc2hhcmVkLXN0eWxlcy9zcmMvc3R5bGVzaGVldHMvbGlicmFyaWVzL3NvZmktZ2xvYmFsL3BhdHRlcm5zL2FuaW1hdGlvbi9zdWIvX3RyYW5zaXRpb25zLnNjc3MiLCIuLi9fYmFzZS9zaGFyZWQtc3R5bGVzL3NyYy9zdHlsZXNoZWV0cy9saWJyYXJpZXMvc29maS1nbG9iYWwvcGF0dGVybnMvYW5pbWF0aW9uL3N1Yi9fYW5ndWxhci1uZy1hbmltYXRpb25zLnNjc3MiLCIuLi9fYmFzZS9zaGFyZWQtc3R5bGVzL3NyYy9zdHlsZXNoZWV0cy9saWJyYXJpZXMvc29maS1nbG9iYWwvcGF0dGVybnMvYW5pbWF0aW9uL3N1Yi9fa2V5ZnJhbWUtYW5pbWF0aW9ucy5zY3NzIiwiLi4vX2Jhc2Uvc2hhcmVkLXN0eWxlcy9zcmMvc3R5bGVzaGVldHMvbGlicmFyaWVzL3NvZmktZ2xvYmFsL3BhdHRlcm5zL3V0aWxpdHkvX3V0aWxpdHkuc2NzcyIsIi4uL19iYXNlL3NoYXJlZC1zdHlsZXMvc3JjL3N0eWxlc2hlZXRzL2xpYnJhcmllcy9zb2ZpLWdsb2JhbC9wYXR0ZXJucy9sYXlvdXQvX2xheW91dC5zY3NzIiwiLi4vX2Jhc2Uvc2hhcmVkLXN0eWxlcy9zcmMvc3R5bGVzaGVldHMvbGlicmFyaWVzL3NvZmktZ2xvYmFsL3BhdHRlcm5zL2xheW91dC9zdWIvX2xheW91dC1wYXR0ZXJucy5zY3NzIiwiLi4vX2Jhc2Uvc2hhcmVkLXN0eWxlcy9zcmMvc3R5bGVzaGVldHMvbGlicmFyaWVzL3NvZmktZ2xvYmFsL3BhdHRlcm5zL2xheW91dC9zdWIvX2NvbHVtbi1ncmlkLnNjc3MiLCIuLi9fYmFzZS9zaGFyZWQtc3R5bGVzL3NyYy9zdHlsZXNoZWV0cy9saWJyYXJpZXMvc29maS1nbG9iYWwvcGF0dGVybnMvc3BhY2luZy9fc3BhY2luZy5zY3NzIiwiLi4vX2Jhc2Uvc2hhcmVkLXN0eWxlcy9zcmMvc3R5bGVzaGVldHMvbGlicmFyaWVzL3NvZmktZ2xvYmFsL3BhdHRlcm5zL3BhZGRpbmcvX3BhZGRpbmcuc2NzcyIsIi4uL19iYXNlL3NoYXJlZC1zdHlsZXMvc3JjL3N0eWxlc2hlZXRzL2xpYnJhcmllcy9zb2ZpLWdsb2JhbC9wYXR0ZXJucy9kZWNvcmF0aW9uL19kZWNvcmF0aW9uLnNjc3MiLCIuLi9fYmFzZS9zaGFyZWQtc3R5bGVzL3NyYy9zdHlsZXNoZWV0cy9saWJyYXJpZXMvc29maS1nbG9iYWwvYmFzZS9fYmFzZS5zY3NzIiwiLi4vX2Jhc2Uvc2hhcmVkLXN0eWxlcy9zcmMvc3R5bGVzaGVldHMvbGlicmFyaWVzL3NvZmktZ2xvYmFsL2Jhc2Uvc3ViL19yZXNldC5zY3NzIiwiLi4vX2Jhc2Uvc2hhcmVkLXN0eWxlcy9zcmMvc3R5bGVzaGVldHMvbGlicmFyaWVzL3NvZmktZ2xvYmFsL2Jhc2Uvc3ViL190eXBvZ3JhcGh5LnNjc3MiLCIuLi9fYmFzZS9zaGFyZWQtc3R5bGVzL3NyYy9zdHlsZXNoZWV0cy9saWJyYXJpZXMvc29maS1nbG9iYWwvYmFzZS9zdWIvX2xpbmtzLnNjc3MiLCIuLi9fYmFzZS9zaGFyZWQtc3R5bGVzL3NyYy9zdHlsZXNoZWV0cy9saWJyYXJpZXMvc29maS1nbG9iYWwvYmFzZS9zdWIvX2Zvcm1zLXNoYXJlZC5zY3NzIiwiLi4vX2Jhc2Uvc2hhcmVkLXN0eWxlcy9zcmMvc3R5bGVzaGVldHMvbGlicmFyaWVzL3NvZmktZ2xvYmFsL2Jhc2Uvc3ViL19mb3Jtcy1tZC5zY3NzIiwiLi4vX2Jhc2Uvc2hhcmVkLXN0eWxlcy9zcmMvc3R5bGVzaGVldHMvbGlicmFyaWVzL3NvZmktZ2xvYmFsL2Jhc2Uvc3ViL190YWJsZXMuc2NzcyIsIi4uL19iYXNlL3NoYXJlZC1zdHlsZXMvc3JjL3N0eWxlc2hlZXRzL2xpYnJhcmllcy9zb2ZpLWdsb2JhbC9iYXNlL3N1Yi9fbWVkaWEuc2NzcyIsIi4uL19iYXNlL3NoYXJlZC1zdHlsZXMvc3JjL3N0eWxlc2hlZXRzL2xpYnJhcmllcy9zb2ZpLWdsb2JhbC90ZW1wbGF0ZXMvX3RlbXBsYXRlcy5zY3NzIiwiLi4vX2Jhc2Uvc2hhcmVkLXN0eWxlcy9zcmMvc3R5bGVzaGVldHMvbGlicmFyaWVzL3NvZmktZ2xvYmFsL3RlbXBsYXRlcy9zdWIvX3BhZ2UtbmF2LnNjc3MiLCIuLi9fYmFzZS9zaGFyZWQtc3R5bGVzL3NyYy9zdHlsZXNoZWV0cy9saWJyYXJpZXMvc29maS1nbG9iYWwvdGVtcGxhdGVzL3N1Yi9fcGFnZS1iYWNrZ3JvdW5kcy5zY3NzIiwiLi4vX2Jhc2Uvc2hhcmVkLXN0eWxlcy9zcmMvc3R5bGVzaGVldHMvbGlicmFyaWVzL3NvZmktZ2xvYmFsL3NvZmktaWNvbnMvX3NvZmktaWNvbnMuc2NzcyIsIi4uL19iYXNlL3NoYXJlZC1zdHlsZXMvc3JjL3N0eWxlc2hlZXRzL2xpYnJhcmllcy9zb2ZpLWdsb2JhbC9tb2R1bGVzL3N1Yi9faWNvbnMuc2NzcyIsIi4uL19iYXNlL3NoYXJlZC1zdHlsZXMvc3JjL3N0eWxlc2hlZXRzL2xpYnJhcmllcy9zb2ZpLWdsb2JhbC9tb2R1bGVzL3N1Yi9fYWxlcnRzLnNjc3MiLCIuLi9fYmFzZS9zaGFyZWQtc3R5bGVzL3NyYy9zdHlsZXNoZWV0cy9saWJyYXJpZXMvc29maS1nbG9iYWwvbW9kdWxlcy9zdWIvX2J1dHRvbnMuc2NzcyIsIi4uL19iYXNlL3NoYXJlZC1zdHlsZXMvc3JjL3N0eWxlc2hlZXRzL2xpYnJhcmllcy9zb2ZpLWdsb2JhbC9tb2R1bGVzL3N1Yi9fY29udGFpbmVycy5zY3NzIiwiLi4vX2Jhc2Uvc2hhcmVkLXN0eWxlcy9zcmMvc3R5bGVzaGVldHMvbGlicmFyaWVzL3NvZmktZ2xvYmFsL21vZHVsZXMvc3ViL19mb3JtLWVsZW1lbnRzLnNjc3MiLCIuLi9fYmFzZS9zaGFyZWQtc3R5bGVzL3NyYy9zdHlsZXNoZWV0cy9saWJyYXJpZXMvc29maS1nbG9iYWwvbW9kdWxlcy9zdWIvX2hlYWRpbmdzLnNjc3MiLCIuLi9fYmFzZS9zaGFyZWQtc3R5bGVzL3NyYy9zdHlsZXNoZWV0cy9saWJyYXJpZXMvc29maS1nbG9iYWwvbW9kdWxlcy9zdWIvX2xpbmtzLnNjc3MiLCIuLi9fYmFzZS9zaGFyZWQtc3R5bGVzL3NyYy9zdHlsZXNoZWV0cy9saWJyYXJpZXMvc29maS1nbG9iYWwvbW9kdWxlcy9zdWIvX2xpc3RzLnNjc3MiLCIuLi9fYmFzZS9zaGFyZWQtc3R5bGVzL3NyYy9zdHlsZXNoZWV0cy9saWJyYXJpZXMvc29maS1nbG9iYWwvbW9kdWxlcy9zdWIvX2xvYWRpbmctc3RhdGVzLnNjc3MiLCIuLi9fYmFzZS9zaGFyZWQtc3R5bGVzL3NyYy9zdHlsZXNoZWV0cy9saWJyYXJpZXMvc29maS1nbG9iYWwvbW9kdWxlcy9zdWIvX21lZGlhLnNjc3MiLCIuLi9fYmFzZS9zaGFyZWQtc3R5bGVzL3NyYy9zdHlsZXNoZWV0cy9saWJyYXJpZXMvc29maS1nbG9iYWwvbW9kdWxlcy9zdWIvX21vZGFscy5zY3NzIiwiLi4vX2Jhc2Uvc2hhcmVkLXN0eWxlcy9zcmMvc3R5bGVzaGVldHMvbGlicmFyaWVzL3NvZmktZ2xvYmFsL21vZHVsZXMvc3ViL19wYW5lbHMuc2NzcyIsIi4uL19iYXNlL3NoYXJlZC1zdHlsZXMvc3JjL3N0eWxlc2hlZXRzL2xpYnJhcmllcy9zb2ZpLWdsb2JhbC9tb2R1bGVzL3N1Yi9fdGFibGVzLnNjc3MiLCIuLi9fYmFzZS9zaGFyZWQtc3R5bGVzL3NyYy9zdHlsZXNoZWV0cy9saWJyYXJpZXMvc29maS1nbG9iYWwvbW9kdWxlcy9zdWIvX3RleHQtZWxlbWVudHMuc2NzcyIsIi4uL19iYXNlL3NoYXJlZC1zdHlsZXMvc3JjL3N0eWxlc2hlZXRzL2xpYnJhcmllcy9zb2ZpLWdsb2JhbC9tb2R1bGVzL3N1Yi9fdG9vbHRpcHMuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvX2JvdXJib24uc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvc2V0dGluZ3MvX2RlcHJlY2F0aW9uLXdhcm5pbmdzLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL3NldHRpbmdzL19wcmVmaXhlci5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9zZXR0aW5ncy9fcHgtdG8tZW0uc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvc2V0dGluZ3MvX2Fzc2V0LXBpcGVsaW5lLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL19ib3VyYm9uLWRlcHJlY2F0ZS5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX2Fzc2lnbi1pbnB1dHMuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19jb250YWlucy5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX2NvbnRhaW5zLWZhbHN5LnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9faXMtbGVuZ3RoLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9faXMtbGlnaHQuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19pcy1udW1iZXIuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19pcy1zaXplLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fcHgtdG8tZW0uc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19weC10by1yZW0uc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19zaGFkZS5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX3N0cmlwLXVuaXRzLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fdGludC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX3RyYW5zaXRpb24tcHJvcGVydHktbmFtZS5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX3VucGFjay5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX21vZHVsYXItc2NhbGUuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fY29udmVydC11bml0cy5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19kaXJlY3Rpb25hbC12YWx1ZXMuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fZm9udC1zb3VyY2UtZGVjbGFyYXRpb24uc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fZ3JhZGllbnQtcG9zaXRpb25zLXBhcnNlci5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19saW5lYXItYW5nbGUtcGFyc2VyLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX2xpbmVhci1ncmFkaWVudC1wYXJzZXIuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fbGluZWFyLXBvc2l0aW9ucy1wYXJzZXIuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fbGluZWFyLXNpZGUtY29ybmVyLXBhcnNlci5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19yYWRpYWwtYXJnLXBhcnNlci5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19yYWRpYWwtcG9zaXRpb25zLXBhcnNlci5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19yYWRpYWwtZ3JhZGllbnQtcGFyc2VyLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX3JlbmRlci1ncmFkaWVudHMuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fc2hhcGUtc2l6ZS1zdHJpcHBlci5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19zdHItdG8tbnVtLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2FuaW1hdGlvbi5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19hcHBlYXJhbmNlLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2JhY2tmYWNlLXZpc2liaWxpdHkuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fYmFja2dyb3VuZC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19iYWNrZ3JvdW5kLWltYWdlLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2JvcmRlci1pbWFnZS5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19jYWxjLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2NvbHVtbnMuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fZmlsdGVyLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2ZsZXgtYm94LnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2ZvbnQtZmFjZS5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19mb250LWZlYXR1cmUtc2V0dGluZ3Muc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9faGlkcGktbWVkaWEtcXVlcnkuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9faHlwaGVucy5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19pbWFnZS1yZW5kZXJpbmcuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fa2V5ZnJhbWVzLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2xpbmVhci1ncmFkaWVudC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19wZXJzcGVjdGl2ZS5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19wbGFjZWhvbGRlci5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19yYWRpYWwtZ3JhZGllbnQuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fc2VsZWN0aW9uLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX3RleHQtZGVjb3JhdGlvbi5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL190cmFuc2Zvcm0uc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fdHJhbnNpdGlvbi5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL191c2VyLXNlbGVjdC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX2JvcmRlci1jb2xvci5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX2JvcmRlci1yYWRpdXMuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19ib3JkZXItc3R5bGUuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19ib3JkZXItd2lkdGguc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19idXR0b25zLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fY2xlYXJmaXguc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19lbGxpcHNpcy5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX2ZvbnQtc3RhY2tzLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9faGlkZS10ZXh0LnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fbWFyZ2luLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fcGFkZGluZy5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX3Bvc2l0aW9uLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fcHJlZml4ZXIuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19yZXRpbmEtaW1hZ2Uuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19zaXplLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fdGV4dC1pbnB1dHMuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL190aW1pbmctZnVuY3Rpb25zLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fdHJpYW5nbGUuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL193b3JkLXdyYXAuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvX2JvdXJib24tZGVwcmVjYXRlZC11cGNvbWluZy5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL3N1c3kvc2Fzcy9fc3VzeS5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL3N1c3kvc2Fzcy9zdXN5L2xhbmd1YWdlL19zdXN5LnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvc3VzeS9zYXNzL3N1c3kvX3N1LnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvc3VzeS9zYXNzL3N1c3kvc3UvX3V0aWxpdGllcy5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL3N1c3kvc2Fzcy9zdXN5L3N1L19zZXR0aW5ncy5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL3N1c3kvc2Fzcy9zdXN5L3N1L192YWxpZGF0aW9uLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvc3VzeS9zYXNzL3N1c3kvc3UvX2dyaWQuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9zdXN5L3Nhc3Mvc3VzeS9vdXRwdXQvX2Zsb2F0LnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvc3VzeS9zYXNzL3N1c3kvb3V0cHV0L19zaGFyZWQuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9zdXN5L3Nhc3Mvc3VzeS9vdXRwdXQvX3N1cHBvcnQuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9zdXN5L3Nhc3Mvc3VzeS9vdXRwdXQvc3VwcG9ydC9fc3VwcG9ydC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL3N1c3kvc2Fzcy9zdXN5L291dHB1dC9zdXBwb3J0L19wcmVmaXguc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9zdXN5L3Nhc3Mvc3VzeS9vdXRwdXQvc3VwcG9ydC9fYmFja2dyb3VuZC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL3N1c3kvc2Fzcy9zdXN5L291dHB1dC9zdXBwb3J0L19ib3gtc2l6aW5nLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvc3VzeS9zYXNzL3N1c3kvb3V0cHV0L3N1cHBvcnQvX3JlbS5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL3N1c3kvc2Fzcy9zdXN5L291dHB1dC9zdXBwb3J0L19jbGVhcmZpeC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL3N1c3kvc2Fzcy9zdXN5L291dHB1dC9zaGFyZWQvX2luc3BlY3Quc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9zdXN5L3Nhc3Mvc3VzeS9vdXRwdXQvc2hhcmVkL19vdXRwdXQuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9zdXN5L3Nhc3Mvc3VzeS9vdXRwdXQvc2hhcmVkL19kaXJlY3Rpb24uc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9zdXN5L3Nhc3Mvc3VzeS9vdXRwdXQvc2hhcmVkL19iYWNrZ3JvdW5kLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvc3VzeS9zYXNzL3N1c3kvb3V0cHV0L3NoYXJlZC9fY29udGFpbmVyLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvc3VzeS9zYXNzL3N1c3kvb3V0cHV0L3NoYXJlZC9fbWFyZ2lucy5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL3N1c3kvc2Fzcy9zdXN5L291dHB1dC9zaGFyZWQvX3BhZGRpbmcuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9zdXN5L3Nhc3Mvc3VzeS9vdXRwdXQvZmxvYXQvX2NvbnRhaW5lci5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL3N1c3kvc2Fzcy9zdXN5L291dHB1dC9mbG9hdC9fc3Bhbi5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL3N1c3kvc2Fzcy9zdXN5L291dHB1dC9mbG9hdC9fZW5kLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvc3VzeS9zYXNzL3N1c3kvb3V0cHV0L2Zsb2F0L19pc29sYXRlLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvc3VzeS9zYXNzL3N1c3kvbGFuZ3VhZ2Uvc3VzeS9fc2V0dGluZ3Muc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9zdXN5L3Nhc3Mvc3VzeS9sYW5ndWFnZS9zdXN5L192YWxpZGF0aW9uLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvc3VzeS9zYXNzL3N1c3kvbGFuZ3VhZ2Uvc3VzeS9fZ3JpZHMuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9zdXN5L3Nhc3Mvc3VzeS9sYW5ndWFnZS9zdXN5L19ib3gtc2l6aW5nLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvc3VzeS9zYXNzL3N1c3kvbGFuZ3VhZ2Uvc3VzeS9fY29udGV4dC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL3N1c3kvc2Fzcy9zdXN5L2xhbmd1YWdlL3N1c3kvX2JhY2tncm91bmQuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9zdXN5L3Nhc3Mvc3VzeS9sYW5ndWFnZS9zdXN5L19jb250YWluZXIuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9zdXN5L3Nhc3Mvc3VzeS9sYW5ndWFnZS9zdXN5L19zcGFuLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvc3VzeS9zYXNzL3N1c3kvbGFuZ3VhZ2Uvc3VzeS9fZ3V0dGVycy5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL3N1c3kvc2Fzcy9zdXN5L2xhbmd1YWdlL3N1c3kvX2lzb2xhdGUuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9zdXN5L3Nhc3Mvc3VzeS9sYW5ndWFnZS9zdXN5L19nYWxsZXJ5LnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvc3VzeS9zYXNzL3N1c3kvbGFuZ3VhZ2Uvc3VzeS9fcm93cy5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL3N1c3kvc2Fzcy9zdXN5L2xhbmd1YWdlL3N1c3kvX21hcmdpbnMuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9zdXN5L3Nhc3Mvc3VzeS9sYW5ndWFnZS9zdXN5L19wYWRkaW5nLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvc3VzeS9zYXNzL3N1c3kvbGFuZ3VhZ2Uvc3VzeS9fYmxlZWQuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9zdXN5L3Nhc3Mvc3VzeS9sYW5ndWFnZS9zdXN5L19icmVha3BvaW50LXBsdWdpbi5zY3NzIiwiLi4vX2Jhc2Uvc2Nzcy9fdmFyaWFibGVzLnNjc3MiLCIuLi9fYmFzZS9zY3NzL19ub3JtYWxpemUuc2NzcyIsIi4uL19iYXNlL3Njc3MvX21peGlucy5zY3NzIiwiLi4vX2Jhc2Uvc2Nzcy9faW5wdXQtcmFuZ2VzLnNjc3MiLCIuLi9fYmFzZS9zY3NzL19iZXR0ZXItdGV4dC1pbnB1dC5zY3NzIiwiLi4vX2Jhc2Uvc2Nzcy9fYnV0dG9ucy5zY3NzIiwiLi4vX2Jhc2Uvc2Nzcy9fdHlwb2dyYXBoeS5zY3NzIiwiLi4vX2Jhc2Uvc2Nzcy9fdXRpbGl0aWVzLnNjc3MiLCJzY3NzL19kZWZhdWx0LnNjc3MiXSwic291cmNlc0NvbnRlbnQiOlsiQGltcG9ydCAnLi4vX2Jhc2Uvc2hhcmVkLXN0eWxlcy9zcmMvc3R5bGVzaGVldHMvc29maS1nbG9iYWwtYWxsLW1vZHVsZXMuc2Nzcyc7XG5cbi8vIEJvdXJib25cbi8vIFNlZTogaHR0cDovL2JvdXJib24uaW8vZG9jcy9cbkBpbXBvcnQgJ2JvdXJib24nO1xuXG4vLyBTdXN5XG4vLyBTdXN5IGdyaWQgc3lzdGVtLiBTZWU6IGh0dHA6Ly9zdXN5ZG9jcy5vZGRiaXJkLm5ldC9lbi9sYXRlc3QvXG5cbkBpbXBvcnQgJy4uL25vZGVfbW9kdWxlcy9zdXN5L3Nhc3Mvc3VzeSc7XG5cbi8vIFV0aWxpdGllc1xuLy8gU2FzcyB0b29scyBhbmQgaGVscGVycyB1c2VkIGFjcm9zcyB0aGUgcHJvamVjdC5cbi8vIEBpbXBvcnQgJ2Fzc2V0cy9zYXNzL3V0aWxzL3ZhcmlhYmxlcyc7XG4vLyBAaW1wb3J0ICdhc3NldHMvc2Fzcy91dGlscy9taXhpbnMnO1xuXG4vLyBfYmFzZSBMaWJyYXJpZXNcbkBpbXBvcnQgJy4uL19iYXNlL3Njc3MvdmFyaWFibGVzJyxcbiAgICAgICAgJy4uL19iYXNlL3Njc3Mvbm9ybWFsaXplJyxcbiAgICAgICAgJy4uL19iYXNlL3Njc3MvbWl4aW5zJyxcbiAgICAgICAgJy4uL19iYXNlL3Njc3MvaW5wdXQtcmFuZ2VzJyxcbiAgICAgICAgJy4uL19iYXNlL3Njc3MvYmV0dGVyLXRleHQtaW5wdXQnLFxuICAgICAgICAnLi4vX2Jhc2Uvc2Nzcy9idXR0b25zJyxcbiAgICAgICAgJy4uL19iYXNlL3Njc3MvdHlwb2dyYXBoeScsXG4gICAgICAgICcuLi9fYmFzZS9zY3NzL3V0aWxpdGllcyc7XG5cbi8vQGltcG9ydCAnYXNzZXRzL3Nhc3MvdmVuZG9ycy9mb250LWF3ZXNvbWUvZm9udC1hd2Vzb21lJztcbi8vQGltcG9ydCAnYXNzZXRzL3Nhc3MvdmVuZG9ycy9tb2R1bGFyLXNjYWxlJztcblxuLy8gQ3VzdG9tIFBhcnRpYWxzXG5AaW1wb3J0ICdzY3NzL2RlZmF1bHQnO1xuIiwiLypcblxuICBXSEFUIElTIFRISVM/XG4gIFwic29maS1nbG9iYWxcIiBpcyBhIHNoYXJlZCBzdHlsZSBsaWJyYXJ5IGZvciB1c2Ugd2l0aCBTb0ZpJ3MgZXh0ZXJuYWwtZmFjaW5nIGFwcHMuICpcblxuICBJTVBPUlRBTlRcbiAgRG8gbm90IGVkaXQgc29maS1nbG9iYWwgZmlsZXMgd2l0aGluIGluZGl2aWR1YWwgYXBwIHJlcG9zIVxuXG4gIE9WRVItUklESU5HIFNPRkktR0xPQkFMIFNUWUxFUzpcbiAgQWRkIHN0eWxlcyB3aXRoaW4gc3R5bGVzaGVldHMvYXBwL1xuXG4gIEFERElORyBBUFAtU1BFQ0lGSUMgU1RZTEVTOlxuICBBZGQgc3R5bGVzIHdpdGhpbiBzdHlsZXNoZWV0cy9hcHAvXG5cbiAgKiBJZiB5b3UgbmVlZCBhIGNoYW5nZSBvciBpbXByb3ZlbWVudCB0byBzb2ZpLWdsb2JhbCBzdHlsZXMgKGluc3RlYWQgb2YgYWRkaW5nIG92ZXJyaWRlIHN0eWxlcykgb3Igd2FudCB0byBhZGQgYSBuZXcgcGF0dGVybiBmb3IgZ2xvYmFsIHJlLXVzZSBvcGVuIGEgdGlja2V0IGZvciB1cGRhdGluZyB0aGUgc29maS1nbG9iYWwgc3R5bGUgbGlicmFyeS4gT25jZSB0aGUgbGlicmFyeSBoYXMgYmVlbiB1cGRhdGVkLCBpbXBvcnQgdGhlIGxhdGVzdCB2ZXJzaW9uIGludG8geW91ciBhcHAuXG5cbiovXG5cbi8vIEluY2x1ZGUgcGFydGlhbHMgaW4gYmVsb3cgb3JkZXI6XG5cbi8vIEFsbCByZXF1aXJlZCBwYXJ0aWFsc1xuQGltcG9ydCBcImxpYnJhcmllcy9zb2ZpLWdsb2JhbC9zb2ZpLWdsb2JhbFwiO1xuXG4vLyBpbmRpdmlkdWFsIGljb24gc3R5bGVzLCBnZW5lcmF0ZWQgYnkgRm9udGVsbG9cbkBpbXBvcnQgXCJsaWJyYXJpZXMvc29maS1nbG9iYWwvc29maS1pY29ucy9zb2ZpLWljb25zXCI7XG5cbi8vIFwiTW9kdWxlc1wiIHNob3VsZCBiZSBpbXBvcnRlZCBhZnRlciB0aGUgYWJvdmUgc3R5bGVzXG4vLyBJbmRpdmlkdWFsIExpYnJhcnkgTW9kdWxlczpcbkBpbXBvcnQgXCJsaWJyYXJpZXMvc29maS1nbG9iYWwvbW9kdWxlcy9zdWIvaWNvbnNcIjtcbkBpbXBvcnQgXCJsaWJyYXJpZXMvc29maS1nbG9iYWwvbW9kdWxlcy9zdWIvYWxlcnRzXCI7XG5AaW1wb3J0IFwibGlicmFyaWVzL3NvZmktZ2xvYmFsL21vZHVsZXMvc3ViL2J1dHRvbnNcIjtcbkBpbXBvcnQgXCJsaWJyYXJpZXMvc29maS1nbG9iYWwvbW9kdWxlcy9zdWIvY29udGFpbmVyc1wiO1xuQGltcG9ydCBcImxpYnJhcmllcy9zb2ZpLWdsb2JhbC9tb2R1bGVzL3N1Yi9mb3JtLWVsZW1lbnRzXCI7XG5AaW1wb3J0IFwibGlicmFyaWVzL3NvZmktZ2xvYmFsL21vZHVsZXMvc3ViL2hlYWRpbmdzXCI7XG5AaW1wb3J0IFwibGlicmFyaWVzL3NvZmktZ2xvYmFsL21vZHVsZXMvc3ViL2xpbmtzXCI7XG5AaW1wb3J0IFwibGlicmFyaWVzL3NvZmktZ2xvYmFsL21vZHVsZXMvc3ViL2xpc3RzXCI7XG5AaW1wb3J0IFwibGlicmFyaWVzL3NvZmktZ2xvYmFsL21vZHVsZXMvc3ViL2xvYWRpbmctc3RhdGVzXCI7XG5AaW1wb3J0IFwibGlicmFyaWVzL3NvZmktZ2xvYmFsL21vZHVsZXMvc3ViL21lZGlhXCI7XG5AaW1wb3J0IFwibGlicmFyaWVzL3NvZmktZ2xvYmFsL21vZHVsZXMvc3ViL21vZGFsc1wiO1xuQGltcG9ydCBcImxpYnJhcmllcy9zb2ZpLWdsb2JhbC9tb2R1bGVzL3N1Yi9wYW5lbHNcIjtcbkBpbXBvcnQgXCJsaWJyYXJpZXMvc29maS1nbG9iYWwvbW9kdWxlcy9zdWIvdGFibGVzXCI7XG5AaW1wb3J0IFwibGlicmFyaWVzL3NvZmktZ2xvYmFsL21vZHVsZXMvc3ViL3RleHQtZWxlbWVudHNcIjtcbkBpbXBvcnQgXCJsaWJyYXJpZXMvc29maS1nbG9iYWwvbW9kdWxlcy9zdWIvdG9vbHRpcHNcIjtcbiIsIi8qXG5cbiAgV0hBVCBJUyBUSElTP1xuICBcInNvZmktZ2xvYmFsXCIgaXMgYSBzaGFyZWQgc3R5bGUgbGlicmFyeSBmb3IgdXNlIHdpdGggU29GaSdzIGV4dGVybmFsLWZhY2luZyBhcHBzLiAqXG5cbiAgSU1QT1JUQU5UXG4gIERvIG5vdCBlZGl0IHNvZmktZ2xvYmFsIGZpbGVzIHdpdGhpbiBpbmRpdmlkdWFsIGFwcCByZXBvcyFcblxuICBPVkVSLVJJRElORyBTT0ZJLUdMT0JBTCBTVFlMRVM6XG4gIEFkZCBzdHlsZXMgd2l0aGluIHN0eWxlc2hlZXRzL2FwcC9cblxuICBBRERJTkcgQVBQLVNQRUNJRklDIFNUWUxFUzpcbiAgQWRkIHN0eWxlcyB3aXRoaW4gc3R5bGVzaGVldHMvYXBwL1xuXG4gICogSWYgeW91IG5lZWQgYSBjaGFuZ2Ugb3IgaW1wcm92ZW1lbnQgdG8gc29maS1nbG9iYWwgc3R5bGVzIChpbnN0ZWFkIG9mIGFkZGluZyBvdmVycmlkZSBzdHlsZXMpIG9yIHdhbnQgdG8gYWRkIGEgbmV3IHBhdHRlcm4gZm9yIGdsb2JhbCByZS11c2Ugb3BlbiBhIHRpY2tldCBmb3IgdXBkYXRpbmcgdGhlIHNvZmktZ2xvYmFsIHN0eWxlIGxpYnJhcnkuIE9uY2UgdGhlIGxpYnJhcnkgaGFzIGJlZW4gdXBkYXRlZCwgaW1wb3J0IHRoZSBsYXRlc3QgdmVyc2lvbiBpbnRvIHlvdXIgYXBwLlxuXG4qL1xuXG4vLyBJbmNsdWRlIHBhcnRpYWxzIGluIGJlbG93IG9yZGVyOlxuXG4vLyBDb25maWcgKHNldCB1cCB2YXJpYWJsZXMsIGV0Yy4pXG5AaW1wb3J0IFwiY29uZmlnL2NvbmZpZ1wiO1xuXG4vLyBQYXR0ZXJucyAoYWJzdHJhY3QgcGF0dGVybnMgY29uc2lzdGluZyBtYWlubHkgb2YgbWl4aW5zIGFuZCBzYXNzIHBsYWNlaG9sZGVycylcbkBpbXBvcnQgXCJwYXR0ZXJucy9wYXR0ZXJuc1wiO1xuXG4vLyBCYXNlIChodG1sIGRlZmF1bHRzKVxuQGltcG9ydCBcImJhc2UvYmFzZVwiO1xuXG4vLyBUZW1wbGF0ZXMgKHNoYXJlZCBwYWdlIHRlbXBsYXRlcyAvIGNocm9tZSlcbkBpbXBvcnQgXCJ0ZW1wbGF0ZXMvdGVtcGxhdGVzXCI7XG5cbi8vIFwiTW9kdWxlc1wiIHNob3VsZCBiZSBpbXBvcnRlZCBhZnRlciB0aGUgYWJvdmUgc3R5bGVzXG4iLCJAaW1wb3J0IFwic3ViL3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcInN1Yi9icmVhay1wb2ludHNcIjtcbkBpbXBvcnQgXCJzdWIvZm9udC1pbXBvcnRzXCI7XG5AaW1wb3J0IFwic3ViL2xpYnJhcnktaW1wb3J0c1wiO1xuQGltcG9ydCBcInN1Yi9jcm9zcy1icm93c2VyLXN1cHBvcnQtbWl4aW5zXCI7IiwiLy8gVmFyaWFibGVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gTk9URTogXCItcHhcIiBzdWZmaXggYWRkZWQgdG8gcGl4ZWwgdmFsdWVzIHR5cGljYWxseSB1c2VkIGluIHJlbSBtaXhpbiBmb3IgY2xhcml0eSwgVE9ETzogcmVtb3ZlIHJlbSBtaXhpblxuXG4vKlxuICAqIEJvcmRlcnNcbiAgKiBCcmVhayBQb2ludHNcbiAgKiBDb2xvcnNcbiAgKiBEaW1lbnNpb25zXG4gICogRm9udHNcbiovXG5cblxuLypkb2Ncbi0tLVxudGl0bGU6IEZvbnQgQ29sb3JzXG5wYXJlbnQ6IHR5cG9ncmFwaHlcbm5hbWU6IHN1YkZvbnRDb2xvcnNcbi0tLVxuXG5TZWUgdW5kZXIgW0NvbG9yc11bZ2VuZXJhbENvbG9yc10uXG4qL1xuXG5cbi8qZG9jXG4tLS1cbnRpdGxlOiBDb2xvcnNcbm5hbWU6IGdlbmVyYWxDb2xvcnNcbmNhdGVnb3J5OiBCYXNlXG4tLS1cblxuIyMgU29maSBCcmFuZCBDb2xvcnNcblxuIyMjUHJpbWFyeVxuXG48c3BhbiBjbGFzcz1cImhnLXN3YXRjaCBzb2ZpLWJsdWVcIj5Tb0ZpIEJsdWU8L3NwYW4+XG48c3BhbiBjbGFzcz1cImhnLXN3YXRjaCBzb2ZpLWFjY2VzaWJpbGl0eS1ibHVlXCI+U29GaSBBY2Nlc2liaWxpdHkgQmx1ZTwvc3Bhbj5cblxuIyMjIEFjY2VudFxuXG48c3BhbiBjbGFzcz1cImhnLXN3YXRjaCB5ZWxsb3ctZ3JlZW4tMzYwQ1wiPlllbGxvdyBHcmVlbjwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwiaGctc3dhdGNoIGFjY2VudC1kYXJrLWJsdWVcIj5BY2NlbnQgRGFyayBCbHVlPC9zcGFuPlxuXG48aHI+XG5cbiMjIENvb2wgR3JleXNcblxuVGhlc2UgYXJlIGdlbmVyYWxseSB1c2VkIGFzIGJhY2tncm91bmQgY29sb3JzLlxuXG48ZGl2PlxuICA8ZmlndXJlIGNsYXNzPVwidS1kaXNwbGF5LWlubGluZS1ibG9jayB1LXZlcnRpY2FsLWFsaWduLXRvcFwiPlxuICAgIDxzcGFuIGNsYXNzPVwiaGctc3dhdGNoIGdyZXktbWVkLWRrXCI+R3JleSwgTWVkaXVtIERhcms8L3NwYW4+XG4gICAgPGZpZ2NhcHRpb24gY2xhc3M9XCJzbWFsbCB1LWludHJpbnNpYy1taW4tY29udGVudC13aWR0aFwiPm9sZCAybmRhcnkgYnV0dG9uczwvZmlnY2FwdGlvbj5cbiAgPC9maWd1cmU+XG4gIDxmaWd1cmUgY2xhc3M9XCJ1LWRpc3BsYXktaW5saW5lLWJsb2NrIHUtdmVydGljYWwtYWxpZ24tdG9wXCI+XG4gICAgPHNwYW4gY2xhc3M9XCJoZy1zd2F0Y2ggZ3JleS1tZWRcIj5HcmV5LCBNZWRpdW08L3NwYW4+XG4gICAgPGZpZ2NhcHRpb24gY2xhc3M9XCJzbWFsbCB1LWludHJpbnNpYy1taW4tY29udGVudC13aWR0aFwiPm5vdCB1c2VkPC9maWdjYXB0aW9uPlxuICA8L2ZpZ3VyZT5cbiAgPGZpZ3VyZSBjbGFzcz1cInUtZGlzcGxheS1pbmxpbmUtYmxvY2sgdS12ZXJ0aWNhbC1hbGlnbi10b3BcIj5cbiAgICA8c3BhbiBjbGFzcz1cImhnLXN3YXRjaCBncmV5LW1lZC1saWdodFwiPkdyZXksIE1lZGl1bSBMaWdodDwvc3Bhbj5cbiAgICA8ZmlnY2FwdGlvbiBjbGFzcz1cInNtYWxsIHUtaW50cmluc2ljLW1pbi1jb250ZW50LXdpZHRoXCI+cGFnZSBmb290ZXIgc2VjdGlvbjwvZmlnY2FwdGlvbj5cbiAgPC9maWd1cmU+XG4gIDxmaWd1cmUgY2xhc3M9XCJ1LWRpc3BsYXktaW5saW5lLWJsb2NrIHUtdmVydGljYWwtYWxpZ24tdG9wXCI+XG4gICAgPHNwYW4gY2xhc3M9XCJoZy1zd2F0Y2ggZ3JleS1saWdodFwiPkdyZXksIExpZ2h0PC9zcGFuPlxuICAgIDxmaWdjYXB0aW9uIGNsYXNzPVwic21hbGwgdS1pbnRyaW5zaWMtbWluLWNvbnRlbnQtd2lkdGhcIj5jb250ZW50IGJhY2tncm91bmRzPC9maWdjYXB0aW9uPlxuICA8L2ZpZ3VyZT5cbjwvZGl2PlxuXG4jIyBCb3JkZXIgQ29sb3JzXG48c3BhbiBjbGFzcz1cImhnLXN3YXRjaCBncmV5LWJvcmRlci1jb2xvclwiPkdyZXkgQm9yZGVyPC9zcGFuPlxuXG4jIyBGb250IENvbG9yc1xuXG48c3BhbiBjbGFzcz1cImhnLXN3YXRjaCBkZWZhdWx0LXRleHQtY29sb3JcIj5EZWZhdWx0IFRleHQgQ29sb3I8L3NwYW4+XG48c3BhbiBjbGFzcz1cImhnLXN3YXRjaCBzdWJ0bGUtdGV4dC1jb2xvclwiPlN1YnRsZSBUZXh0IENvbG9yPC9zcGFuPlxuXG48cD5UaGlzIHRleHQgaXMgaW4gdGhlIDxzdHJvbmc+ZGVmYXVsdCB0ZXh0IGNvbG9yPC9zdHJvbmc+LjwvcD5cbjxwIGNsYXNzPVwic3VidGxlLXRleHQtY29sb3ItdGV4dFwiPlRoaXMgdGV4dCBpcyBpbiB0aGUgPHN0cm9uZz5zdWJ0bGUgdGV4dCBjb2xvcjwvc3Ryb25nPi48L3A+XG4qL1xuXG5cbi8vIEJPUkRFUlNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiRkZWZhdWx0LWJvcmRlci1yYWRpdXM6IDRweDtcblxuXG4vLyBCUkVBSyBQT0lOVFNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiR0YWJsZXQtbWluLXdpZHRoOiA3NjBweDtcbiRkZXNrdG9wLW1pbi13aWR0aDogOTYwcHg7XG4kd2lkZS1taW4td2lkdGg6IDEyODBweDtcblxuLy8gTWF4LXdpZHRoczpcbiRtb2JpbGUtbWF4LXdpZHRoOiAoJHRhYmxldC1taW4td2lkdGggLSAxKTtcbiR0YWJsZXQtbWF4LXdpZHRoOiAoJGRlc2t0b3AtbWluLXdpZHRoIC0gMSk7XG4kZGVza3RvcC1tYXgtd2lkdGg6ICgkd2lkZS1taW4td2lkdGggLSAxKTtcblxuXG4vLyBDT0xPUlNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFdJUDogUGFudG9uZSBDb2xvcnNcbi8vKGRvbid0IHVzZSBkaXJlY3RseSwgbWFwIHRvIHNpbXBsZXIgY29sb3IgbmFtZXMpXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gY29vbCBncmF5czogZGFyayB0byBsaWdodFxuJGNvb2wtZ3JheS05YzogIzZkNmU3MDtcbiRjb29sLWdyYXktN2M6ICM5Mzk1OTc7XG4kY29vbC1ncmF5LTNjOiAjZTZlN2U4O1xuJGNvb2wtZ3JheS0xYzogI2Y1ZjVmNjtcblxuLy8gZ3JheXNjYWxlIGdyYXlzXG4kZ3JleS1zY2FsZS1saWdodDogI0QxRDJENDtcblxuLy8gZXh0ZW5kZWQgY29sb3IgcGFsZXR0ZVxuJHllbGxvdy1ncmVlbi0zNjBDOiAjOUNDYjNiOyAvLyB3YXMgdXNlZCBmb3Igc29tZSBidXR0b25zLCBpY29ucywgZXRjLlxuJGdyZWVuLXllbGxvdy0zODlDOiAjZTNlNDIzO1xuJHllbGxvdzogI0ZDQ0YyODtcbiRyZWQ6ICNGMDUwM0E7XG4kb3JhbmdlOiAjRjc5MzJBO1xuXG4kYWNjZW50LWRhcmstYmx1ZTogIzBEM0E1NDtcblxuLy8gV2ViIENvbG9yc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4kc29maS1ibHVlOiAjMjlDNEYzO1xuJHNvZmktZ3JleTogIzQwNDA0MTsgLy8gc2ltaWxhciB0byBzdmcgbG9nbyAoZnJvbSBQYW50b25lKVxuXG4vLyBzb2ZpIGJsdWUgc2hhZGVzIC0tLS1cbi8vIFRPRE86IHJlcGxhY2Ugd2l0aCBvZmZpY2lhbCBzaGFkZXMsIGN1cnJlbnQgb25lcyBhcmUga2luZCBvZiBhcmJpdHJhcnlcbiRzb2ZpLWJsdWUtZGs6ICMwMDU0ODI7XG4kc29maS1ibHVlLW1lZC1kazogIzE1OTdENTtcbiRzb2ZpLWJsdWUtbWVkLWxpZ2h0OiBsaWdodGVuKCRzb2ZpLWJsdWUsIDE2JSk7IC8vIHVzZWQgZm9yIHByb2R1Y3QgaWNvbnNcbiRzb2ZpLWJsdWUtbGlnaHQ6IGxpZ2h0ZW4oJHNvZmktYmx1ZSwgMzUlKTsgLy8gdXNlZCBmb3IgYWxlcnRzIGFuZCBoaWdobGlnaHRzXG5cbiRzb2ZpLWFjY2VzaWJpbGl0eS1ibHVlOiAjMTE3REIwOyAvLyBuZXcgXCJTb0ZpIGFjY2Vzc2liaWxpdHkgYmx1ZVwiIGZyb20gVVggc3R5bGUgZ3VpZGVcbiRzb2ZpLWFjY2VzaWJpbGl0eS1ibHVlLWhvdmVyOiAjMEQ2NDhDO1xuJHNvZmktYWNjZXNpYmlsaXR5LWJsdWUtYWN0aXZlOiAjMEE1MDcwO1xuXG4vLyBzcGVjaWFsXG4kY2FsbC1vdXQtZ3JlZW46ICMxNWJkNDM7IC8vIHZlcnkgb2xkLCBkZWxldGUgaWYgbm8gbG9uZ2VyIHVzZWQvbmVlZGVkXG5cbi8vIGdyZXkgc2hhZGVzIC0tLS1cbiRncmV5LW1lZC1kazogJGNvb2wtZ3JheS05YzsgLy8gdXNlZCBmb3Igc2Vjb25kYXJ5IGJ1dHRvbnNcbiRncmV5LW1lZDogJGNvb2wtZ3JheS03YzsgLy8gdXNlZCBmb3IgYm9yZGVyc1xuJGdyZXktbWVkLWxpZ2h0OiAkY29vbC1ncmF5LTNjOyAvLyB1c2VkIGZvciBzdWItZm9vdGVyIGFuZCBzZWN0aW9uIGhlYWRlcnMgYmFja2dyb3VuZFxuJGdyZXktbGlnaHQ6ICRjb29sLWdyYXktMWM7IC8vIHVzZWQgZm9yIHBhZ2UtZm9vdGVyIGJhY2tncm91bmQgYW5kIHZhcmlvdXMgY29udGFpbmVyIGJhY2tncm91bmRzXG5cbi8vIHRleHQgY29sb3JzIC0tLS1cbi8vIFRPRE86IHJlZmFjdG9yIGFuZCBzaW1wbGlmeSB0ZXh0IGNvbG9yc1xuXG4vLyBsYXJnZXIgdGV4dCBsaWdodGVzdCBjb2xvciAoMjRweCssIDIzcHggLSAxOXB4IGJvbGQpOiAjOTU5NTk1XG4vLyBzbWFsbGVyIHRleHQgbGlnaHRlc3QgY29sb3IgKDIzcHggYW5kIHVuZGVyIG5vcm1hbC13ZWlnaHQpOiAjNzY3Njc2XG4kbGFyZ2VyLXRleHQtbGlnaHRlc3Q6ICM5NTk1OTU7XG4kc21hbGxlci10ZXh0LWxpZ2h0ZXN0OiAjNzY3Njc2O1xuXG4kZGVmYXVsdC10ZXh0LWNvbG9yOiAjM2QzZDNkO1xuJHN1YnRsZS10ZXh0LWNvbG9yOiAjOEE4QjhBO1xuXG4kcGxhY2Vob2xkZXItdGV4dC1jb2xvcjogJHN1YnRsZS10ZXh0LWNvbG9yO1xuXG4vLyBzcGVjaWFsXG4kZ3JlZW4tdGV4dC1jb2xvcjogIzc2OUMyQTsgLy8gc2VtaS1hY2Nlc3NpYmxlIHZlcnNpb24gb2YgXCIkeWVsbG93LWdyZWVuLTM2MENcIlxuJHdhcm5pbmctcmVkOiAjYTk0NDQyOyAvLyB1c2VkIGZvciBkYW5nZXIgYWxlcnRzXG5cbi8vIGxpbmsgY29sb3JzIC0tLS1cbiRsaW5rLWNvbG9yLWRlZmF1bHQ6ICRzb2ZpLWFjY2VzaWJpbGl0eS1ibHVlOyAvLyB3YXMgc29maS1ibHVlXG4kZ3JleS1saW5rczogJHNtYWxsZXItdGV4dC1saWdodGVzdDsgLy8gdXNlZCBmb3IgbWFpbiBuYXYgbGluayBjb2xvclxuXG4vLyBib3JkZXIgY29sb3JzIC0tLS1cbiRncmV5LWJvcmRlci1jb2xvcjogJGdyZXktc2NhbGUtbGlnaHQ7XG5cbi8vIENvbG9yIHN0eWxlcyBmb3Igb3V0cHV0dGluZyBpbiBzdHlsZSBkb2N1bWVudGF0aW9uIC0tLS1cbi8vIERPIE5PVCBVU0UgVEhFU0UgQ0xBU1NFUyBJTiBTT0ZJIEFQUCBDT0RFXG4uZ3JleS1tZWQtZGsge2JhY2tncm91bmQ6ICRjb29sLWdyYXktOWM7fSAuZ3JleS1tZWQge2JhY2tncm91bmQ6ICRjb29sLWdyYXktN2M7fVxuLmdyZXktbWVkLWxpZ2h0IHtiYWNrZ3JvdW5kOiAkY29vbC1ncmF5LTNjO30gLmdyZXktbGlnaHQge2JhY2tncm91bmQ6ICRjb29sLWdyYXktMWMgO31cbi5ncmV5LWJvcmRlci1jb2xvciB7YmFja2dyb3VuZDogI2ZmZjsgYm9yZGVyOiAxcHggc29saWQgJGdyZXktYm9yZGVyLWNvbG9yO31cbi5zb2ZpLWJsdWUge2JhY2tncm91bmQ6ICRzb2ZpLWJsdWU7fSAuYWNjZW50LWRhcmstYmx1ZSB7YmFja2dyb3VuZDogJGFjY2VudC1kYXJrLWJsdWU7fVxuLnllbGxvdy1ncmVlbi0zNjBDIHtiYWNrZ3JvdW5kOiAkeWVsbG93LWdyZWVuLTM2MEM7fVxuLmdyZWVuLXRleHQtY29sb3Ige2JhY2tncm91bmQ6ICRncmVlbi10ZXh0LWNvbG9yfSAuZ3JlZW4tdGV4dC1jb2xvci10ZXh0IHtjb2xvcjogJGdyZWVuLXRleHQtY29sb3I7fVxuLmRlZmF1bHQtdGV4dC1jb2xvciB7YmFja2dyb3VuZDogJGRlZmF1bHQtdGV4dC1jb2xvcjt9IC5zdWJ0bGUtdGV4dC1jb2xvciB7YmFja2dyb3VuZDogJHN1YnRsZS10ZXh0LWNvbG9yO31cbi5kZWZhdWx0LXRleHQtY29sb3ItdGV4dCB7Y29sb3I6ICRkZWZhdWx0LXRleHQtY29sb3I7fSAuc3VidGxlLXRleHQtY29sb3ItdGV4dCB7Y29sb3I6ICRzdWJ0bGUtdGV4dC1jb2xvcjt9XG4uc29maS1hY2Nlc2liaWxpdHktYmx1ZSB7YmFja2dyb3VuZDogJHNvZmktYWNjZXNpYmlsaXR5LWJsdWU7fVxuXG5cbi8vIERJTUVOU0lPTlNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIHRleHQgZWxlbWVudCBzcGFjaW5nXG4kdGV4dC1zcGFjZTogMC44ZW07XG4kdGV4dC1zcGFjZS1zZW1pLWNvbXBhY3Q6ICggKCR0ZXh0LXNwYWNlIC8gNCkgKiAzICk7IC8vIFRPRE86IGFkanVzdCB0aGlzIHZhbHVlXG4kdGV4dC1zcGFjZS1jb21wYWN0OiAoJHRleHQtc3BhY2UgLyAyKTtcbiR0ZXh0LXNwYWNlLXdpZGU6ICgkdGV4dC1zcGFjZSArICgkdGV4dC1zcGFjZSAvIDIpKTtcblxuLy8gY29udGVudCBibG9jayBzcGFjaW5nXG4vLyBUT0RPOiBzaW1wbGlmeVxuJGNvbnRlbnQtc3BhY2UtdmFsdWU6IDIwO1xuJGNvbnRlbnQtc3BhY2U6ICgkY29udGVudC1zcGFjZS12YWx1ZSAqIC4xcmVtKTtcbiRjb250ZW50LXNwYWNlLXB4OiAoJGNvbnRlbnQtc3BhY2UtdmFsdWUgLyAxMCkgKiAxcHg7XG5cbiRjb250ZW50LXNwYWNlLWhhbGY6ICgkY29udGVudC1zcGFjZSAvIDIpO1xuJGNvbnRlbnQtc3BhY2UtdGhpcmQ6ICgkY29udGVudC1zcGFjZSAvIDMpO1xuJGNvbnRlbnQtc3BhY2UtZm91cnRoOiAoJGNvbnRlbnQtc3BhY2UgLyA0KTtcblxuJGNvbnRlbnQtc3BhY2UtdHdvLXRoaXJkczogKCRjb250ZW50LXNwYWNlLXRoaXJkICogMik7XG4kY29udGVudC1zcGFjZS10aHJlZS1mb3VydGhzOiAoJGNvbnRlbnQtc3BhY2UtZm91cnRoICogMyk7XG5cbiRjb250ZW50LXNwYWNlLWFuZC1oYWxmOiAoJGNvbnRlbnQtc3BhY2UgKyAkY29udGVudC1zcGFjZS1oYWxmKTtcbiRjb250ZW50LXNwYWNlLWFuZC10d28tdGhpcmRzOiAoJGNvbnRlbnQtc3BhY2UgKyAoJGNvbnRlbnQtc3BhY2UtdGhpcmQgKiAyKSk7XG5cbiRjb250ZW50LXNwYWNlLWRvdWJsZTogKCRjb250ZW50LXNwYWNlICogMik7XG5cbi8vIGNvbWZvcnRhYmxlIHJlYWRpbmcgbGluZSB3aWR0aCAofjUwIHRvIDYwIGNoYXJzIHBlciBsaW5lKVxuJG1heC1yZWFkaW5nLXdpZHRoOiA1NnJlbTtcblxuLy8gUGFnZSB3aWR0aFxuJG1heC1jb250ZW50LXdpZHRoOiAoMTMwMHB4ICsgKCRjb250ZW50LXNwYWNlLXB4ICogMikgKTtcblxuLy8gcmVuYW1lIG9yIHJlZmFjdG9yOlxuJGljb24tc3BhY2UtcHg6IDQ1cHg7XG4kaWNvbi1zcGFjZS1tb2JpbGUtcHg6IDQwcHg7XG5cbi8vIHVzZWQgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgZml4ZWQgcG9zaXRpb24gaGVhZGVyIGFuZCBmb290ZXIsIG1heSBiZSBiZXR0ZXIgdG8gdXNlIEpTIHRvIG1lYXN1cmUgaGVpZ2h0IG9yIGVsc2UgYW4gYWx0ZXJuYXRlIGxheW91dFxuJHBhZ2UtaGVhZGVyLWhlaWdodDogNS43cmVtO1xuJHBhZ2UtdG9vbGJhci1oZWlnaHQ6IDUuN3JlbTtcblxuLy8gY29sdW1uIGd1dHRlcnM6XG4kY29sLWd1dHRlcjogJGNvbnRlbnQtc3BhY2U7XG4kZG91YmxlLWNvbC1ndXR0ZXI6ICgkY29sLWd1dHRlciAqIDIpO1xuJGhhbGYtY29sLWd1dHRlcjogKCRjb2wtZ3V0dGVyIC8gMik7XG5cbi8vIGZvcm0gZWxlbWVudHNcbiRsYWJlbC13aWR0aDogMTBlbTtcbiRpbnB1dC1oZWlnaHQ6IDEuNWVtO1xuXG5cbi8vIEZPTlRTXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBGb250IFNpemVzXG4vLyB1c2VkIHRvIGNhbGN1bGF0ZSByZW0gdW5pdHNcbiRiYXNlbGluZS1mb250LXNpemU6IDEwcHg7XG4kbW9iaWxlLWJhc2VsaW5lLWZvbnQtc2l6ZTogOXB4O1xuXG4vLyByZWZlcmVuY2U6IGh0dHA6Ly9odWdvZ2lyYXVkZWwuY29tLzIwMTMvMDkvMDMvdXNlLWxlbmd0aHMtbm90LXN0cmluZ3MvXG4kZGVmYXVsdC1mb250LXNpemUtdmFsdWU6IDE2O1xuJGRlZmF1bHQtZm9udC1zaXplOiAoJGRlZmF1bHQtZm9udC1zaXplLXZhbHVlICogLjFyZW0pO1xuJGRlZmF1bHQtZm9udC1zaXplLWVtOiAoJGRlZmF1bHQtZm9udC1zaXplLXZhbHVlIC8gMTApICogMWVtOyAvLyBmaXggQ2hyb21lIHJlbSBmb250LXNpemluZyBidWdcblxuLy8gaGVhZGVyc1xuLy8gTWFya2V0aW5nIC8gV29yZHByZXNzIHNpdGUgb25seT8gJGgxLWZvbnQtc2l6ZTogMy4ycmVtO1xuXG4kaDEtZm9udC1zaXplOiAyLjRyZW07XG4kaDItZm9udC1zaXplOiAyLjFyZW07XG4kaDMtZm9udC1zaXplOiAxLjhyZW07XG5cbi8vIE5PVCBVU0VEIGluIFVYIHN0eWxlIGd1aWRlIGN1cnJlbnRseTpcbiRoNC1mb250LXNpemU6IDEuNnJlbTsgLy8gdGhlcmUgaXMgc3RpbGwgYSB1c2UgZm9yIHRoaXMgd2l0aGluIFdlYWx0aCBzbyBuZWVkIHRvIGRlZmluZSBpbiBVWCBzdHlsZSBndWlkZVxuJGg1LWZvbnQtc2l6ZTogMS40cmVtOyAvLyBub3QgY3VycmVudGx5IHVzZWRcbiRoNi1mb250LXNpemU6IDEuMnJlbTsgLy8gbm90IGN1cnJlbnRseSB1c2VkXG5cbi8vIHNtYWxsIHRleHQgKHVzZSBmb3IgZmluZSBwcmludCBhbmQgbGVnYWwgdGV4dClcbiRzbWFsbC1mb250LXNpemU6IDEuMnJlbTtcblxuLy8gTGV0dGVyLXNwYWNpbmdcbiRhbGwtY2Fwcy1sZXR0ZXItc3BhY2luZzogLjA0ZW07XG4kdGlnaHQtbGV0dGVyLXNwYWNpbmc6IC0uMDFlbTtcblxuLy8gRm9udCBGYW1pbGllc1xuJGJhc2UtZm9udC1mYW1pbHk6IFwiQWRlbGxlIFNhbnNcIiwgSGVsdmV0aWNhLCBBcmlhbCwgXCJMdWNpZGEgR3JhbmRlXCIsIHNhbnMtc2VyaWY7XG4kaGVhZGluZy1mb250LWZhbWlseTogXCJBZGVsbGUgU2Fuc1wiLCBIZWx2ZXRpY2EsIEFyaWFsLCBcIkx1Y2lkYSBHcmFuZGVcIiwgc2Fucy1zZXJpZjtcblxuLy8gRm9udCBXZWlnaHRzXG4vLyBkZWxldGU/XG4kbGlnaHQtd2VpZ2h0OiAzMDA7XG4kbm9ybWFsLXdlaWdodDogNDAwO1xuJGJvbGQtd2VpZ2h0OiA3MDA7IiwiLy8gQnJlYWsgUG9pbnRzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKmRvY1xuLS0tXG50aXRsZTogQnJlYWsgUG9pbnRzXG5uYW1lOiBicmVha1BvaW50c1xuY2F0ZWdvcnk6IEJhc2Vcbi0tLVxuXG5CcmVhayBwb2ludHMgaGF2ZSBiZWVuIHN0YW5kYXJkaXplZCBiYXNlZCBvbiBjb21tb24gZGV2aWNlIHR5cGUgd2lkdGhzIGZvciBzaW1wbGljaXR5IG9mIHVzYWdlLlxuXG5SZXNwb25zaXZlIHN0eWxlcyBjYW4gYmUgYXBwbGllZCB0byB2YXJpb3VzIHNjcmVlbiB3aWR0aHMgaW5kaXZpZHVhbGx5IG9yIGluIGNvbWJpbmF0aW9uLiAoZm9yIGV4YW1wbGUgeW91IGNvdWxkIGFwcGx5IGNlcnRhaW4gc3R5bGVzIG9ubHkgdG8gXCJtb2JpbGVcIiBhbmQgZGlmZmVyZW50IHN0eWxlcyB0byBcInRhYmxldCBhbmQgYWJvdmVcIiBzY3JlZW4gd2lkdGhzLilcblxuPHAgY2xhc3M9XCJzbWFsbFwiPjxzdHJvbmc+Tk9URTo8L3N0cm9uZz4gRGVzaWduIG1vY2tzIHNob3VsZCBiZSBjcmVhdGVkIGF0IHRoZSBtb3N0IHJlcHJlc2VudGF0aXZlIHNjcmVlbiBzaXplIGZvciB0aGUgdHlwZSBvZiBkZXZpY2UgYmVpbmcgZGVwaWN0ZWQuIEZvciBleGFtcGxlIGEgZGVzaWduIGZvciBhIFwibW9iaWxlXCIgc2NyZWVuIHNob3VsZCBiZSAzMjBweCB3aWRlIHRvIHJlcHJlc2VudCBpUGhvbmU1IHdoaWNoIGlzIHRoZSBzbWFsbGVzdCBkZXZpY2Ugd2Ugc3VwcG9ydC48L3A+XG5cbiMjU2ltcGxlXG5cbiogKiptb2JpbGUqKiA9IDAgLSA3NTlweCB3aWR0aFxuKiAqKnRhYmxldCoqID0gNzYwcHggLSA5NTlweCB3aWR0aFxuKiAqKmRlc2t0b3AqKiA9IDk2MHB4IC0gMTI3OXB4IHdpZHRoXG4qICoqd2lkZSoqID0gMTI4MHB4IGFuZCBhYm92ZSB3aWR0aHNcblxuIyNDb21wb3VuZFxuXG4qICoqbW9iaWxlLWFuZC10YWJsZXQqKlxuKiAqKnRhYmxldC1hbmQtZGVza3RvcCoqXG5cbiMjTWluaW11bXNcblxuKiAqKnRhYmxldC1hbmQtYWJvdmUqKlxuKiAqKmRlc2t0b3AtYW5kLWFib3ZlKipcblxuKi9cblxuXG5AbWl4aW4gYnAoJHBvaW50KSB7XG4gIC8vIHNpbXBsZTpcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEBpZiAkcG9pbnQgPT0gbW9iaWxlIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJG1vYmlsZS1tYXgtd2lkdGgpIHtAY29udGVudDt9XG4gIH1cbiAgQGlmICRwb2ludCA9PSB0YWJsZXQge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkdGFibGV0LW1pbi13aWR0aCkgYW5kIChtYXgtd2lkdGg6ICR0YWJsZXQtbWF4LXdpZHRoKSB7QGNvbnRlbnQ7fVxuICB9XG4gIEBpZiAkcG9pbnQgPT0gZGVza3RvcCB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRkZXNrdG9wLW1pbi13aWR0aCkgYW5kIChtYXgtd2lkdGg6ICRkZXNrdG9wLW1heC13aWR0aCkge0Bjb250ZW50O31cbiAgfVxuICBAaWYgJHBvaW50ID09IHdpZGUge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkd2lkZS1taW4td2lkdGgpIHtAY29udGVudDt9XG4gIH1cblxuICAvLyBjb21wb3VuZDpcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEBpZiAkcG9pbnQgPT0gbW9iaWxlLWFuZC10YWJsZXQge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkdGFibGV0LW1heC13aWR0aCkge0Bjb250ZW50O31cbiAgfVxuICBAaWYgJHBvaW50ID09IHRhYmxldC1hbmQtZGVza3RvcCB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICR0YWJsZXQtbWluLXdpZHRoKSBhbmQgKG1heC13aWR0aDogJGRlc2t0b3AtbWF4LXdpZHRoKSB7QGNvbnRlbnQ7fVxuICB9XG5cbiAgLy8gbWluaW11bXM6XG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLVxuICBAaWYgJHBvaW50ID09IHRhYmxldC1hbmQtYWJvdmUge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkdGFibGV0LW1pbi13aWR0aCkge0Bjb250ZW50O31cbiAgfVxuICBAaWYgJHBvaW50ID09IGRlc2t0b3AtYW5kLWFib3ZlIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJGRlc2t0b3AtbWluLXdpZHRoKSB7QGNvbnRlbnQ7fVxuICB9XG59XG4vLyBVc2FnZTogLnNvbWUtZWxlbWVudCB7IEBpbmNsdWRlIGJwKGRlc2t0b3ApIHsvKiBzdHlsZXMgaGVyZSAqL30gfVxuXG4vLyBSZXRpbmEgbWVkaWEgcXVlcnk6XG4vLyBUT0RPOiByZWZhY3RvciBmb3IgaW1hZ2VzIG9ubHk/IChwcm9iYWJseSB0aGUgb25seSByZWFsIHVzYWdlIGNhc2UpXG5AbWl4aW4gcmV0aW5hIHtcbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSwobWluLXJlc29sdXRpb246IDE5MmRwaSkge0Bjb250ZW50O31cbn1cbi8vIFVzYWdlOiAuc29tZS1lbGVtZW50IHsgQGluY2x1ZGUgcmV0aW5hIHsvKiByZXRpbmEgc3R5bGVzIGhlcmUgKi99IH0iLCIvLyBGb250IEltcG9ydHNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vIElDT04gRk9OVFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwic29maS1pY29uc1wiO1xuICBzcmM6IHVybChcIi4vbGlicmFyaWVzL3NvZmktZ2xvYmFsL2Fzc2V0cy9mb250cy9zb2ZpLWljb25zL3NvZmktaWNvbnMuZW90XCIpO1xuICBzcmM6IHVybChcIi4vbGlicmFyaWVzL3NvZmktZ2xvYmFsL2Fzc2V0cy9mb250cy9zb2ZpLWljb25zL3NvZmktaWNvbnMuZW90I2llZml4XCIpIGZvcm1hdChcImVtYmVkZGVkLW9wZW50eXBlXCIpLFxuICB1cmwoXCIuL2xpYnJhcmllcy9zb2ZpLWdsb2JhbC9hc3NldHMvZm9udHMvc29maS1pY29ucy9zb2ZpLWljb25zLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLFxuICB1cmwoXCIuL2xpYnJhcmllcy9zb2ZpLWdsb2JhbC9hc3NldHMvZm9udHMvc29maS1pY29ucy9zb2ZpLWljb25zLndvZmZcIikgZm9ybWF0KFwid29mZlwiKSxcbiAgdXJsKFwiLi9saWJyYXJpZXMvc29maS1nbG9iYWwvYXNzZXRzL2ZvbnRzL3NvZmktaWNvbnMvc29maS1pY29ucy50dGZcIikgZm9ybWF0KFwidHJ1ZXR5cGVcIiksXG4gIHVybChcIi4vbGlicmFyaWVzL3NvZmktZ2xvYmFsL2Fzc2V0cy9mb250cy9zb2ZpLWljb25zL3NvZmktaWNvbnMuc3ZnI3NvZmktaWNvbnNcIikgZm9ybWF0KFwic3ZnXCIpO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG5cbi8vIERlZmluaW5nIHZhcmlhdGlvbnMgb2YgZm9udCBmYWNlczpcbi8vIGh0dHA6Ly93d3cuNDU2YmVyZWFzdHJlZXQuY29tL2FyY2hpdmUvMjAxMDEyL2ZvbnQtZmFjZV90aXBfZGVmaW5lX2ZvbnQtd2VpZ2h0X2FuZF9mb250LXN0eWxlX3RvX2tlZXBfeW91cl9jc3Nfc2ltcGxlL1xuLy8gU3VtbWFyeTogSW4gQGZvbnQtZmFjZSBkZWZpbml0aW9uczogMSkgVXNlIHNhbWUgZm9udC1mYW1pbHkgbmFtZSBmb3IgZWFjaCB2YXJpYW50LCAyKSBEZWZpbmUgYXBwcm9wcmlhdGUgZm9udC13ZWlnaHQgYW5kIGZvbnQtc3R5bGUgZm9yIGVhY2guXG5cblxuLy8gSEVBRElORyAmIEJPRFkgRk9OVFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEFkZWxsZSBTYW5zOlxuXG4vLyBMaWdodFxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiBcIkFkZWxsZSBTYW5zXCI7XG4gIHNyYzogdXJsKFwiLi9saWJyYXJpZXMvc29maS1nbG9iYWwvYXNzZXRzL2ZvbnRzL2FkZWxsZS1zYW5zL2xpZ2h0L0FkZWxsZVNhbnMtTGlnaHQuZW90XCIpO1xuICBzcmM6IHVybChcIi4vbGlicmFyaWVzL3NvZmktZ2xvYmFsL2Fzc2V0cy9mb250cy9hZGVsbGUtc2Fucy9saWdodC9BZGVsbGVTYW5zLUxpZ2h0LmVvdD8jaWVmaXhcIikgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIiksXG4gIHVybChcIi4vbGlicmFyaWVzL3NvZmktZ2xvYmFsL2Fzc2V0cy9mb250cy9hZGVsbGUtc2Fucy9saWdodC9BZGVsbGVTYW5zLUxpZ2h0LndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLFxuICB1cmwoXCIuL2xpYnJhcmllcy9zb2ZpLWdsb2JhbC9hc3NldHMvZm9udHMvYWRlbGxlLXNhbnMvbGlnaHQvQWRlbGxlU2Fucy1MaWdodC53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksXG4gIHVybChcIi4vbGlicmFyaWVzL3NvZmktZ2xvYmFsL2Fzc2V0cy9mb250cy9hZGVsbGUtc2Fucy9saWdodC9BZGVsbGVTYW5zLUxpZ2h0LnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKSxcbiAgdXJsKFwiLi9saWJyYXJpZXMvc29maS1nbG9iYWwvYXNzZXRzL2ZvbnRzL2FkZWxsZS1zYW5zL2xpZ2h0L0FkZWxsZVNhbnMtTGlnaHQuc3ZnI0FkZWxsZVNhbnNMdFwiKSBmb3JtYXQoXCJzdmdcIik7XG4gIGZvbnQtd2VpZ2h0OiAkbGlnaHQtd2VpZ2h0O1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG5cbi8vIFJlZ3VsYXJcbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJBZGVsbGUgU2Fuc1wiO1xuICBzcmM6IHVybChcIi4vbGlicmFyaWVzL3NvZmktZ2xvYmFsL2Fzc2V0cy9mb250cy9hZGVsbGUtc2Fucy9yZWd1bGFyL0FkZWxsZVNhbnMtUmVndWxhci5lb3RcIik7XG4gIHNyYzogdXJsKFwiLi9saWJyYXJpZXMvc29maS1nbG9iYWwvYXNzZXRzL2ZvbnRzL2FkZWxsZS1zYW5zL3JlZ3VsYXIvQWRlbGxlU2Fucy1SZWd1bGFyLmVvdD8jaWVmaXhcIikgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIiksXG4gIHVybChcIi4vbGlicmFyaWVzL3NvZmktZ2xvYmFsL2Fzc2V0cy9mb250cy9hZGVsbGUtc2Fucy9yZWd1bGFyL0FkZWxsZVNhbnMtUmVndWxhci53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSxcbiAgdXJsKFwiLi9saWJyYXJpZXMvc29maS1nbG9iYWwvYXNzZXRzL2ZvbnRzL2FkZWxsZS1zYW5zL3JlZ3VsYXIvQWRlbGxlU2Fucy1SZWd1bGFyLndvZmZcIikgZm9ybWF0KFwid29mZlwiKSxcbiAgdXJsKFwiLi9saWJyYXJpZXMvc29maS1nbG9iYWwvYXNzZXRzL2ZvbnRzL2FkZWxsZS1zYW5zL3JlZ3VsYXIvQWRlbGxlU2Fucy1SZWd1bGFyLnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKSxcbiAgdXJsKFwiLi9saWJyYXJpZXMvc29maS1nbG9iYWwvYXNzZXRzL2ZvbnRzL2FkZWxsZS1zYW5zL3JlZ3VsYXIvQWRlbGxlU2Fucy1SZWd1bGFyLnN2ZyNBZGVsbGVTYW5zXCIpIGZvcm1hdChcInN2Z1wiKTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG4vLyBCb2xkXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwiQWRlbGxlIFNhbnNcIjtcbiAgc3JjOiB1cmwoXCIuL2xpYnJhcmllcy9zb2ZpLWdsb2JhbC9hc3NldHMvZm9udHMvYWRlbGxlLXNhbnMvYm9sZC9BZGVsbGVTYW5zLUJvbGQuZW90XCIpO1xuICBzcmM6IHVybChcIi4vbGlicmFyaWVzL3NvZmktZ2xvYmFsL2Fzc2V0cy9mb250cy9hZGVsbGUtc2Fucy9ib2xkL0FkZWxsZVNhbnMtQm9sZC5lb3Q/I2llZml4XCIpIGZvcm1hdChcImVtYmVkZGVkLW9wZW50eXBlXCIpLFxuICB1cmwoXCIuL2xpYnJhcmllcy9zb2ZpLWdsb2JhbC9hc3NldHMvZm9udHMvYWRlbGxlLXNhbnMvYm9sZC9BZGVsbGVTYW5zLUJvbGQud29mZjJcIikgZm9ybWF0KFwid29mZjJcIiksXG4gIHVybChcIi4vbGlicmFyaWVzL3NvZmktZ2xvYmFsL2Fzc2V0cy9mb250cy9hZGVsbGUtc2Fucy9ib2xkL0FkZWxsZVNhbnMtQm9sZC53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksXG4gIHVybChcIi4vbGlicmFyaWVzL3NvZmktZ2xvYmFsL2Fzc2V0cy9mb250cy9hZGVsbGUtc2Fucy9ib2xkL0FkZWxsZVNhbnMtQm9sZC50dGZcIikgZm9ybWF0KFwidHJ1ZXR5cGVcIiksXG4gIHVybChcIi4vbGlicmFyaWVzL3NvZmktZ2xvYmFsL2Fzc2V0cy9mb250cy9hZGVsbGUtc2Fucy9ib2xkL0FkZWxsZVNhbnMtQm9sZC5zdmcjQWRlbGxlU2Fucy1Cb2xkXCIpIGZvcm1hdChcInN2Z1wiKTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cblxuXG4vLyBPTEQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gQk9EWSBGT05UXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJBdmVuaXJcIjtcbiAgc3JjOiB1cmwoXCIuL2xpYnJhcmllcy9zb2ZpLWdsb2JhbC9hc3NldHMvZm9udHMvYXZlbmlyL21lZGl1bS9BdmVuaXItTWVkaXVtLmVvdFwiKTtcbiAgc3JjOiB1cmwoXCIuL2xpYnJhcmllcy9zb2ZpLWdsb2JhbC9hc3NldHMvZm9udHMvYXZlbmlyL21lZGl1bS9BdmVuaXItTWVkaXVtLmVvdD8jaWVmaXhcIikgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIiksXG4gIHVybChcIi4vbGlicmFyaWVzL3NvZmktZ2xvYmFsL2Fzc2V0cy9mb250cy9hdmVuaXIvbWVkaXVtL0F2ZW5pci1NZWRpdW0ud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLFxuICB1cmwoXCIuL2xpYnJhcmllcy9zb2ZpLWdsb2JhbC9hc3NldHMvZm9udHMvYXZlbmlyL21lZGl1bS9BdmVuaXItTWVkaXVtLnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKSxcbiAgdXJsKFwiLi9saWJyYXJpZXMvc29maS1nbG9iYWwvYXNzZXRzL2ZvbnRzL2F2ZW5pci9tZWRpdW0vQXZlbmlyLU1lZGl1bS5zdmcjQXZlbmlyTFRTdGQtTWVkaXVtXCIpIGZvcm1hdChcInN2Z1wiKTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG4vLyBIRUFESU5HIEZPTlRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gR290aGFtIEJvbGQ6XG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwiR290aGFtXCI7XG4gIHNyYzogdXJsKFwiLi9saWJyYXJpZXMvc29maS1nbG9iYWwvYXNzZXRzL2ZvbnRzL2dvdGhhbS9ib2xkL0dvdGhhbS1Cb2xkLmVvdFwiKTtcbiAgc3JjOiB1cmwoXCIuL2xpYnJhcmllcy9zb2ZpLWdsb2JhbC9hc3NldHMvZm9udHMvZ290aGFtL2JvbGQvR290aGFtLUJvbGQuZW90I2llZml4XCIpIGZvcm1hdChcImVtYmVkZGVkLW9wZW50eXBlXCIpLFxuICAgIHVybChcIi4vbGlicmFyaWVzL3NvZmktZ2xvYmFsL2Fzc2V0cy9mb250cy9nb3RoYW0vYm9sZC9Hb3RoYW0tQm9sZC53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSxcbiAgICB1cmwoXCIuL2xpYnJhcmllcy9zb2ZpLWdsb2JhbC9hc3NldHMvZm9udHMvZ290aGFtL2JvbGQvR290aGFtLUJvbGQud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLFxuICAgIHVybChcIi4vbGlicmFyaWVzL3NvZmktZ2xvYmFsL2Fzc2V0cy9mb250cy9nb3RoYW0vYm9sZC9Hb3RoYW0tQm9sZC50dGZcIikgZm9ybWF0KFwidHJ1ZXR5cGVcIiksXG4gICAgdXJsKFwiLi9saWJyYXJpZXMvc29maS1nbG9iYWwvYXNzZXRzL2ZvbnRzL2dvdGhhbS9ib2xkL0dvdGhhbS1Cb2xkLnN2ZyNHb3RoYW0tQm9sZFwiKSBmb3JtYXQoXCJzdmdcIik7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG4iLCIvLyBDb21wYXNzIG9yIE90aGVyIExpYnJhcnkgSW1wb3J0c1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy9AaW1wb3J0IFwiY29tcGFzc1wiO1xuLy9AaW1wb3J0IFwiY29tcGFzcy9zdXBwb3J0XCI7XG4vL0BpbXBvcnQgXCJzdXN5LWdyaWQvc3VzeVwiOyAvLyBTdXN5IGdyaWRcbi8vQGltcG9ydCBcImNvbXBhc3MvY3NzMy9hbmltYXRpb25cIjtcbi8vQGltcG9ydCBcImNvbXBhc3MvY3NzMy9ib3hcIjsgLy8gZm9yIGZsZXggYm94IHN1cHBvcnRcbi8vQGltcG9ydCBcImNvbXBhc3MvY3NzMy9ib3gtc2hhZG93XCI7IC8vIG9ubHkgd29ya3MgaW4gSUU5K1xuLy9AaW1wb3J0IFwiY29tcGFzcy9jc3MzL3RyYW5zaXRpb25cIjtcbi8vQGltcG9ydCBcImNvbXBhc3MvY3NzMy90cmFuc2Zvcm1cIjsgLy8gb25seSB3b3JrcyBpbiBJRTkrXG4vL0BpbXBvcnQgXCJjb21wYXNzL2NzczMvZm9udC1mYWNlXCI7IC8vIGV4YW1wbGU6IEBpbmNsdWRlIGZvbnQtZmFjZShcIkZvbnQgTmFtZVwiLCBmb250LWZpbGVzKFwiZXhhbXBsZXMvZm9udC50dGZcIiwgXCJleGFtcGxlcy9mb250Lm90ZlwiKSk7XG5cbi8vIENvbXBhc3MgU3VwcG9ydDpcbi8vJGxlZ2FjeS1zdXBwb3J0LWZvci1pZTogZmFsc2U7XG4vLyRsZWdhY3ktc3VwcG9ydC1mb3ItaWU2OiBmYWxzZTtcbi8vJGxlZ2FjeS1zdXBwb3J0LWZvci1pZTc6IGZhbHNlO1xuLy8kbGVnYWN5LXN1cHBvcnQtZm9yLWllODogZmFsc2U7XG4vLyRleHBlcmltZW50YWwtc3VwcG9ydC1mb3ItbW96aWxsYTogdHJ1ZTtcbi8vJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci13ZWJraXQ6IHRydWU7XG4vLyRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Itb3BlcmE6IHRydWU7XG4vLyRleHBlcmltZW50YWwtc3VwcG9ydC1mb3ItbWljcm9zb2Z0OiB0cnVlO1xuLy8kZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLXN2ZzogdHJ1ZTsgLy8gc2V0IHRvIHRydWUgdG8gc3VwcG9ydCBncmFkaWVudHMgaW4gSUU5XG4vLyRleHBlcmltZW50YWwtc3VwcG9ydC1mb3ItcGllOiBmYWxzZTsiLCIvKlxuICBDU1MzIEN1c3RvbSBNaXhpbnMgKHRvIHJlcGxhY2UgQ29tcGFzcyBtaXhpbnMpXG5cbiAgKiBBbmltYXRpb24gUmVsYXRlZFxuICAgIC0gdHJhbnNpdGlvblxuICAgIC0ga2V5ZnJhbWVzIGFuaW1hdGlvblxuICAqIEZsZXhib3ggTGF5b3V0XG4gICogVHJhbnNmb3JtXG4gICogTWlzY1xuKi9cblxuLy8gQW5pbWF0aW9uIFJlbGF0ZWRcbi8vID09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vIFRyYW5zaXRpb25cbi8vIC0tLS0tLS0tLS0tLS0tLS0tXG4vLyBOT1RFOiBvbmx5IG5lZWQgLXdlYmtpdC0gcHJlZml4IGZvciBBbmRyb2lkIDQuMSAtIDQuMyB0cmFuc2l0aW9uIHN1cHBvcnRcbkBtaXhpbiB0cmFuc2l0aW9uKCR0cmFuc2l0aW9uLXByb3BlcnRpZXMpIHtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiAkdHJhbnNpdGlvbi1wcm9wZXJ0aWVzO1xuICB0cmFuc2l0aW9uOiAkdHJhbnNpdGlvbi1wcm9wZXJ0aWVzO1xufVxuXG4vLyBLZXlmcmFtZXMgQW5pbWF0aW9uXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AbWl4aW4ga2V5ZnJhbWVzKCRhbmltYXRpb24tbmFtZSkge1xuICBALXdlYmtpdC1rZXlmcmFtZXMgJGFuaW1hdGlvbi1uYW1lIHtAY29udGVudDt9XG4gIEAtbW96LWtleWZyYW1lcyAkYW5pbWF0aW9uLW5hbWUge0Bjb250ZW50O31cbiAgQC1tcy1rZXlmcmFtZXMgJGFuaW1hdGlvbi1uYW1lIHtAY29udGVudDt9XG4gIEAtby1rZXlmcmFtZXMgJGFuaW1hdGlvbi1uYW1lIHtAY29udGVudDt9XG4gIEBrZXlmcmFtZXMgJGFuaW1hdGlvbi1uYW1lIHtAY29udGVudDt9XG59XG5cbi8qXG4gVXNhZ2U6XG5AaW5jbHVkZSBrZXlmcmFtZXMoc2xpZGUtZG93bikge1xuICAwJSB7IG9wYWNpdHk6IDE7IH1cbiAgOTAlIHsgb3BhY2l0eTogMDsgfVxufVxuXG4uZWxlbWVudCB7QGluY2x1ZGUgYW5pbWF0aW9uKCdzbGlkZS1kb3duIDVzIDMnKTt9XG4qL1xuXG5AbWl4aW4gYW5pbWF0aW9uKCRzdHIpIHtcbiAgLXdlYmtpdC1hbmltYXRpb246ICN7JHN0cn07XG4gIC1tb3otYW5pbWF0aW9uOiAjeyRzdHJ9O1xuICAtbXMtYW5pbWF0aW9uOiAjeyRzdHJ9O1xuICAtby1hbmltYXRpb246ICN7JHN0cn07XG4gIGFuaW1hdGlvbjogI3skc3RyfTtcbn1cblxuXG4vLyBGbGV4Ym94IExheW91dFxuLy8gPT09PT09PT09PT09PT09PT09PT1cbi8vIFBhcmVudCBQcm9wZXJ0aWVzIChGbGV4IENvbnRhaW5lcilcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gZGlzcGxheTogZmxleCwgaW5saW5lLWZsZXhcbi8vIChlbmFibGUgZmxleCBsYXlvdXQpXG5AbWl4aW4gZGlzcGxheUZsZXgoJGxheW91dDogZmxleCwgJGltcG9ydGFudDogbnVsbCkge1xuICBAaWYgJGxheW91dCA9PSBmbGV4IHtcbiAgICBkaXNwbGF5OiAtd2Via2l0LWJveCAkaW1wb3J0YW50O1xuICAgIGRpc3BsYXk6IC1tb3otYm94ICRpbXBvcnRhbnQ7XG4gICAgZGlzcGxheTogLW1zLWZsZXhib3ggJGltcG9ydGFudDtcbiAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXggJGltcG9ydGFudDtcbiAgICBkaXNwbGF5OiBmbGV4ICRpbXBvcnRhbnQ7XG4gIH0gQGVsc2UgaWYgJGxheW91dCA9PSBpbmxpbmUtZmxleCB7XG4gICAgZGlzcGxheTogLXdlYmtpdC1pbmxpbmUtYm94ICRpbXBvcnRhbnQ7XG4gICAgZGlzcGxheTogLXdlYmtpdC1pbmxpbmUtZmxleCAkaW1wb3J0YW50O1xuICAgIGRpc3BsYXk6IC1tcy1pbmxpbmUtZmxleGJveCAkaW1wb3J0YW50O1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4ICRpbXBvcnRhbnQ7XG4gIH1cbn1cblxuJWRpc3BsYXktZmxleCB7QGluY2x1ZGUgZGlzcGxheUZsZXg7fVxuJWRpc3BsYXktaW5saW5lLWZsZXgge0BpbmNsdWRlIGRpc3BsYXlGbGV4KGlubGluZS1mbGV4KTt9XG5cbi8vICogUGFyZW50IHN1Yi1wcm9wZXJ0aWVzOlxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBhbGlnbi1pdGVtczogZmxleC1zdGFydCwgZmxleC1lbmQsIGNlbnRlciwgYmFzZWxpbmUsIHN0cmV0Y2ggKGRlZmF1bHQgaWYgdW5zZXQpXG4vLyAoc2V0IGJlaGF2aW91ciBmb3IgaG93IGZsZXggaXRlbXMgYXJlIGxhaWQgb3V0IGFsb25nIHRoZSBjcm9zcyBheGlzKVxuQG1peGluIGFsaWduSXRlbXMoJGFsaWdubWVudDogc3RyZXRjaCkge1xuICBAaWYgJGFsaWdubWVudCA9PSBmbGV4LXN0YXJ0IHtcbiAgICAtd2Via2l0LWJveC1hbGlnbjogc3RhcnQ7XG4gICAgLW1zLWZsZXgtYWxpZ246IHN0YXJ0O1xuICB9IEBlbHNlIGlmICRhbGlnbm1lbnQgPT0gZmxleC1lbmQge1xuICAgIC13ZWJraXQtYm94LWFsaWduOiBlbmQ7XG4gICAgLW1zLWZsZXgtYWxpZ246IGVuZDtcbiAgfSBAZWxzZSB7XG4gICAgLXdlYmtpdC1ib3gtYWxpZ246ICRhbGlnbm1lbnQ7XG4gICAgLW1zLWZsZXgtYWxpZ246ICRhbGlnbm1lbnQ7XG4gIH1cbiAgLXdlYmtpdC1hbGlnbi1pdGVtczogJGFsaWdubWVudDtcbiAgLW1vei1hbGlnbi1pdGVtczogJGFsaWdubWVudDtcbiAgYWxpZ24taXRlbXM6ICRhbGlnbm1lbnQ7XG59XG5cbi8vIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydCAoZGVmYXVsdCBpZiB1bnNldCksIGZsZXgtZW5kLCBjZW50ZXIsIHNwYWNlLWJldHdlZW4sIHNwYWNlLWFyb3VuZFxuLy8gKGRlZmluZXMgdGhlIGFsaWdubWVudCBhbG9uZyB0aGUgbWFpbiBheGlzLCBkaXN0cmlidXRlcyBleHRyYSBmcmVlIHNwYWNlIGFyb3VuZCBpdGVtcylcbkBtaXhpbiBqdXN0aWZ5Q29udGVudCgkanVzdGlmaWNhdGlvbjogZmxleC1zdGFydCkge1xuICAtd2Via2l0LWp1c3RpZnktY29udGVudDogJGp1c3RpZmljYXRpb247XG4gIEBpZiAkanVzdGlmaWNhdGlvbiA9PSBzcGFjZS1iZXR3ZWVuIHstbXMtZmxleC1wYWNrOiBjZW50ZXI7fVxuICBAZWxzZSB7LW1zLWZsZXgtcGFjazogJGp1c3RpZmljYXRpb247fVxuICBqdXN0aWZ5LWNvbnRlbnQ6ICRqdXN0aWZpY2F0aW9uO1xufVxuXG4vLyBmbGV4LXdyYXA6IG5vd3JhcCAoZGVmYXVsdCBpZiB1bnNldCksIHdyYXAsIHdyYXAtcmV2ZXJzZVxuLy8gKGRlZmluZXMgd2hldGhlciB0aGUgZmxleCBpdGVtcyBhcmUgZm9yY2VkIGluIGEgc2luZ2xlIGxpbmUgb3IgY2FuIGJlIGZsb3dlZCBpbnRvIG11bHRpcGxlIGxpbmVzKVxuLy8gbm90ZTogYW5kcm9pZCA0LjQgYW5kIGVhcmxpZXIgZG8gbm90IHN1cHBvcnQgXCJ3cmFwXCJcbkBtaXhpbiBmbGV4V3JhcCgkd3JhcDogbm93cmFwKSB7XG4gIC13ZWJraXQtZmxleC13cmFwOiAkd3JhcDtcbiAgLW1zLWZsZXgtd3JhcDogJHdyYXA7XG4gIGZsZXgtd3JhcDogJHdyYXA7XG59XG5cbi8vIGZsZXgtZGlyZWN0aW9uOiByb3cgKGRlZmF1bHQgaWYgdW5zZXQpLCByb3ctcmV2ZXJzZSwgY29sdW1uLCBjb2x1bW4tcmV2ZXJzZVxuQG1peGluIGZsZXhEaXJlY3Rpb24oJGRpcmVjdGlvbjogcm93KSB7XG4gIEBpZiAkZGlyZWN0aW9uID09IHJvdy1yZXZlcnNlIHtcbiAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IHJldmVyc2U7XG4gICAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsO1xuICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gY29sdW1uIHtcbiAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDtcbiAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gY29sdW1uLXJldmVyc2Uge1xuICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogcmV2ZXJzZTtcbiAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICB9IEBlbHNlIHtcbiAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDtcbiAgICAtd2Via2l0LWJveC1vcmllbnQ6IGhvcml6b250YWw7XG4gIH1cbiAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogJGRpcmVjdGlvbjtcbiAgLW1vei1mbGV4LWRpcmVjdGlvbjogJGRpcmVjdGlvbjtcbiAgLW1zLWZsZXgtZGlyZWN0aW9uOiAkZGlyZWN0aW9uO1xuICBmbGV4LWRpcmVjdGlvbjogJGRpcmVjdGlvbjtcbn1cblxuLy8gQ2hpbGQgUHJvcGVydGllcyAoRmxleCBJdGVtcylcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gYWxpZ24tc2VsZjogZmxleC1zdGFydCwgZmxleC1lbmQsIGNlbnRlciwgYmFzZWxpbmUsIHN0cmV0Y2ggKGRlZmF1bHQgaWYgdW5zZXRcbkBtaXhpbiBBbGlnblNlbGYoJGZsZXgtYWxpZ25tZW50KSB7XG4gIC13ZWJraXQtYWxpZ24tc2VsZjogJGZsZXgtYWxpZ25tZW50O1xuICAtbW96LWFsaWduLXNlbGY6ICRmbGV4LWFsaWdubWVudDtcbiAgLW1zLWFsaWduLXNlbGY6ICRmbGV4LWFsaWdubWVudDtcbiAgYWxpZ24tc2VsZjogJGZsZXgtYWxpZ25tZW50O1xufVxuXG4vLyBvcmRlcjogIyAoaXRlbXMgYXJlIGxhaWQgb3V0IGluIHNvdXJjZSBvcmRlciBieSBkZWZhdWx0KVxuQG1peGluIG9yZGVyKCRvcmRlci1udW0pIHtcbiAgLXdlYmtpdC1ib3gtb3JkaW5hbC1ncm91cDogJG9yZGVyLW51bTtcbiAgLW1vei1ib3gtb3JkaW5hbC1ncm91cDogJG9yZGVyLW51bTtcbiAgLW1zLWZsZXgtb3JkZXI6ICRvcmRlci1udW07XG4gIC13ZWJraXQtb3JkZXI6ICRvcmRlci1udW07XG4gIG9yZGVyOiAkb3JkZXItbnVtO1xufVxuXG5cbi8vIFRyYW5zZm9ybVxuLy8gPT09PT09PT09PT09PT09PT09XG4vLyAoLXdlYmtpdC0gcHJlZml4IG5lZWRlZCBmb3IgU2FmYXJpIGFuZCBBbmRyb2lkIDQuMSAtIDQuNC40IHN1cHBvcnQsIC1tcy0gbmVlZGVkIGZvciBJRTkgc3VwcG9ydClcbkBtaXhpbiB0cmFuc2Zvcm0oJHRyYW5zZm9ybXMpIHtcbiAgLW1zLXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgdHJhbnNmb3JtOiAkdHJhbnNmb3Jtcztcbn1cbi8vIEV4YW1wbGU6IEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGVZKDApKTtcblxuXG4vLyBNSVNDXG4vLyA9PT09PT09PT09PT09PT09PT1cbi8vIFJlbSBwaXhlbCBmYWxsYmFjayBzdXBwb3J0IC0tLS1cbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9iaXRtYW5pYy9yZW0vYmxvYi9tYXN0ZXIvc3R5bGVzaGVldHMvX3JlbS5zY3NzXG4vLyBCYXNlbGluZSwgbWVhc3VyZWQgaW4gcGl4ZWxzXG4vLyBUaGUgdmFsdWUgc2hvdWxkIGJlIHRoZSBzYW1lIGFzIHRoZSBmb250LXNpemUgdmFsdWUgZm9yIHRoZSBodG1sIGVsZW1lbnRcbi8vIElmIHRoZSBodG1sIGVsZW1lbnQncyBmb250LXNpemUgaXMgc2V0IHRvIDYyLjUlIChvZiB0aGUgYnJvd3NlcidzIGRlZmF1bHQgZm9udC1zaXplIG9mIDE2cHgpLFxuLy8gdGhlbiB0aGUgdmFyaWFibGUgYmVsb3cgd291bGQgYmUgMTBweC5cbiRiYXNlbGluZS1weDogJGJhc2VsaW5lLWZvbnQtc2l6ZTtcblxuQG1peGluIHJlbSgkcHJvcGVydHksICRweC12YWx1ZXMpIHtcbiAgLy8gQ29udmVydCB0aGUgYmFzZWxpbmUgaW50byByZW1zXG4gICRiYXNlbGluZS1yZW06ICRiYXNlbGluZS1weCAvIDFyZW0gKiAxO1xuICAvLyBQcmludCB0aGUgZmlyc3QgbGluZSBpbiBwaXhlbCB2YWx1ZXNcbiAgI3skcHJvcGVydHl9OiAkcHgtdmFsdWVzO1xuICAvLyBJZiB0aGVyZSBpcyBvbmx5IG9uZSAobnVtZXJpYykgdmFsdWUsIHJldHVybiB0aGUgcHJvcGVydHkvdmFsdWUgbGluZSBmb3IgaXQuXG4gIEBpZiB0eXBlLW9mKCRweC12YWx1ZXMpID09IFwibnVtYmVyXCIge1xuICAgICN7JHByb3BlcnR5fTogJHB4LXZhbHVlcyAvICRiYXNlbGluZS1yZW07XG4gIH1cbiAgQGVsc2Uge1xuICAgIC8vIENyZWF0ZSBhbiBlbXB0eSBsaXN0IHRoYXQgd2UgY2FuIGR1bXAgdmFsdWVzIGludG9cbiAgICAkcmVtLXZhbHVlczogKCk7XG4gICAgQGVhY2ggJHZhbHVlIGluICRweC12YWx1ZXMge1xuICAgICAgLy8gSWYgdGhlIHZhbHVlIGlzIHplcm8gb3Igbm90IGEgbnVtYmVyLCByZXR1cm4gaXRcbiAgICAgIEBpZiAkdmFsdWUgPT0gMCBvciB0eXBlLW9mKCAkdmFsdWUgKSAhPSBcIm51bWJlclwiIHtcbiAgICAgICAgJHJlbS12YWx1ZXM6IGFwcGVuZCgkcmVtLXZhbHVlcywgJHZhbHVlKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJHJlbS12YWx1ZXM6IGFwcGVuZCgkcmVtLXZhbHVlcywgJHZhbHVlIC8gJGJhc2VsaW5lLXJlbSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gUmV0dXJuIHRoZSBwcm9wZXJ0eSBhbmQgaXRzIGxpc3Qgb2YgY29udmVydGVkIHZhbHVlc1xuICAgICN7JHByb3BlcnR5fTogJHJlbS12YWx1ZXM7XG4gIH1cbn1cbi8vIEV4YW1wbGU6IC5lbGVtZW50IHtAaW5jbHVkZSByZW0od2lkdGgsIDIwcHgpO31cbiIsIi8qZG9jXG4tLS1cbnRpdGxlOiBQYXR0ZXJuc1xubmFtZTogYWFhUGF0dGVybnNcbmNhdGVnb3J5OiBQYXR0ZXJuc1xuLS0tXG5cblBhdHRlcm5zID0gQ29tcG9zYWJsZSBkZXNpZ24gcGF0dGVybnMgaW5jbHVkaW5nIGxheW91dCwgc3BhY2luZywgcGFkZGluZywgYW5kIGRlY29yYXRpb24uXG5cbkluY2x1ZGVzIG1pc2NlbGxhbmVvdXMgdXRpbGl0eSBzdHlsZXMgYW5kIGFuaW1hdGlvbi5cblxuKi9cblxuQGltcG9ydCBcImFuaW1hdGlvbi9hbmltYXRpb25cIjtcbkBpbXBvcnQgXCJ1dGlsaXR5L3V0aWxpdHlcIjtcbkBpbXBvcnQgXCJsYXlvdXQvbGF5b3V0XCI7XG5AaW1wb3J0IFwic3BhY2luZy9zcGFjaW5nXCI7XG5AaW1wb3J0IFwicGFkZGluZy9wYWRkaW5nXCI7XG5AaW1wb3J0IFwiZGVjb3JhdGlvbi9kZWNvcmF0aW9uXCI7IiwiQGltcG9ydCBcInN1Yi90cmFuc2l0aW9uc1wiO1xuQGltcG9ydCBcInN1Yi9hbmd1bGFyLW5nLWFuaW1hdGlvbnNcIjtcbkBpbXBvcnQgXCJzdWIva2V5ZnJhbWUtYW5pbWF0aW9uc1wiOyIsIi8vIFVzZSBtaXhpbnMgaW5zaWRlIG1lZGlhIHF1ZXJpZXMsIHBsYWNlaG9sZGVycyBlbHNld2hlcmVcbi8vIE5PVEU6IG5lZWQgLXdlYmtpdC0gcHJlZml4IGZvciBBbmRyb2lkIDQuMSAtIDQuMyB0cmFuc2l0aW9uIHN1cHBvcnQhXG5cbi8vIFRyYW5zaXRpb25zXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLyBNb3N0IHBlcmZvcm1hbnQ6XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS1cbi8vIG9wYWNpdHkgJiB0cmFuc2Zvcm0gaW5jbHVkaW5nIHBvc2l0aW9uICh0cmFuc2xhdGUpLCBzY2FsZSwgcm90YXRpb25cbkBtaXhpbiBvcGFjaXR5VHJhbnNpdGlvbiB7XG4gIEBpbmNsdWRlIHRyYW5zaXRpb24ob3BhY2l0eSAwLjNzIGVhc2Utb3V0KTtcbn1cblxuQG1peGluIHRyYW5zZm9ybVRyYW5zaXRpb24ge1xuICAtd2Via2l0LXRyYW5zaXRpb246IC13ZWJraXQtdHJhbnNmb3JtIDAuM3MgZWFzZS1vdXQ7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGVhc2Utb3V0O1xufVxuXG4lb3BhY2l0eS10cmFuc2l0aW9uIHtAaW5jbHVkZSBvcGFjaXR5VHJhbnNpdGlvbjt9XG4ldHJhbnNmb3JtLXRyYW5zaXRpb24ge0BpbmNsdWRlIHRyYW5zZm9ybVRyYW5zaXRpb247fVxuXG4vLyBMZXNzIHBlcmZvcm1hbnQ6XG4vLyAtLS0tLS0tLS0tLS0tLS0tLVxuQG1peGluIHVuaXZlcnNhbFRyYW5zaXRpb24ge1xuICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCAwLjNzIGVhc2Utb3V0KTtcbn1cblxuQG1peGluIGNvbG9yVHJhbnNpdGlvbiB7XG4gIEBpbmNsdWRlIHRyYW5zaXRpb24oY29sb3IgMC4zcyBlYXNlLW91dCk7XG59XG5cbkBtaXhpbiBiYWNrZ3JvdW5kVHJhbnNpdGlvbiB7XG4gIEBpbmNsdWRlIHRyYW5zaXRpb24oYmFja2dyb3VuZCAwLjNzIGVhc2Utb3V0KTtcbn1cblxuQG1peGluIGJvcmRlckNvbG9yVHJhbnNpdGlvbiB7XG4gIEBpbmNsdWRlIHRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIDAuM3MgZWFzZS1vdXQpO1xufVxuXG5AbWl4aW4gaGVpZ2h0VHJhbnNpdGlvbiB7XG4gIEBpbmNsdWRlIHRyYW5zaXRpb24oaGVpZ2h0IDAuM3MgZWFzZS1vdXQpO1xufVxuXG4ldW5pdmVyc2FsLXRyYW5zaXRpb24ge0BpbmNsdWRlIHVuaXZlcnNhbFRyYW5zaXRpb247fVxuJWNvbG9yLXRyYW5zaXRpb24ge0BpbmNsdWRlIGNvbG9yVHJhbnNpdGlvbjt9XG4lYmFja2dyb3VuZC10cmFuc2l0aW9uIHtAaW5jbHVkZSBiYWNrZ3JvdW5kVHJhbnNpdGlvbjt9XG4lYm9yZGVyLWNvbG9yLXRyYW5zaXRpb24ge0BpbmNsdWRlIGJvcmRlckNvbG9yVHJhbnNpdGlvbjt9XG4laGVpZ2h0LXRyYW5zaXRpb24ge0BpbmNsdWRlIGhlaWdodFRyYW5zaXRpb247fVxuXG4vLyBSZW1vdmUgdHJhbnNpdGlvbnM6XG5AbWl4aW4gbm9UcmFuc2l0aW9uIHtcbiAgQGluY2x1ZGUgdHJhbnNpdGlvbihub25lKTtcbn1cblxuJW5vLXRyYW5zaXRpb24ge0BpbmNsdWRlIG5vVHJhbnNpdGlvbjt9XG4iLCIvLyBBbmd1bGFyIG5nQW5pbWF0aW9uIHRyYW5zaXRpb25zXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gaHR0cHM6Ly9kb2NzLmFuZ3VsYXJqcy5vcmcvYXBpL25nQW5pbWF0ZVxuXG4uYW5pbWF0ZS1mYWRlIHtcbiAgLy8gVGhlIHN0YXJ0aW5nIGFuaW1hdGlvbiBzdHlsZXNcbiAgJi5uZy1lbnRlciB7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgMC41cyBsaW5lYXIpO1xuICAgIG9wYWNpdHk6IDA7XG5cbiAgICAvLyBUaGUgZmluaXNoaW5nIGFuaW1hdGlvbiBzdHlsZXNcbiAgICAmLm5nLWVudGVyLWFjdGl2ZSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbiAgfVxufVxuXG4vLyBmYWRlIG91dCBjdXJyZW50IGVsZW1lbnQgYW5kIG1vdmUgdXAgbmV4dCBlbGVtZW50IGZyb20gYmVsb3dcbi5hbmltYXRlLWZhZGUtdXAge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgLy8gVGhlIHN0YXJ0aW5nIGFuaW1hdGlvbiBzdHlsZXNcbiAgJi5uZy1lbnRlciB7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgMC41cyBsaW5lYXIpO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdG9wOiAxMDBweDtcblxuICAgIC8vIFRoZSBmaW5pc2hpbmcgYW5pbWF0aW9uIHN0eWxlc1xuICAgICYubmctZW50ZXItYWN0aXZlIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB0b3A6IDA7XG4gICAgfVxuICB9XG59XG5cbi8vIFwic2Nyb2xsXCIgcHJldmlvdXMgZWxlbWVudCB1cCB3aGlsZSBhbHNvIHNjcm9sbGluZyBpbiBuZXcgZWxlbWVudCBmcm9tIGJlbG93OlxuJHNjcm9sbC10aW1pbmc6IC41cztcblxuLmFuaW1hdGUtc2Nyb2xsLXVwIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIC8vIG1vdmUgbmV4dCBzY3JlZW4gdXAgaW50byBwb3NpdGlvbjpcbiAgLy8gVGhlIHN0YXJ0aW5nIGFuaW1hdGlvbiBzdHlsZXNcbiAgJi5uZy1lbnRlciB7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgJHNjcm9sbC10aW1pbmcgbGluZWFyKTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRvcDogNjB2aDtcblxuICAgIC8vIFRoZSBmaW5pc2hpbmcgYW5pbWF0aW9uIHN0eWxlc1xuICAgICYubmctZW50ZXItYWN0aXZlIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB0b3A6IDA7XG4gICAgfVxuICB9XG5cbiAgLy8gTW92ZSBwcmV2aW91cyBzY3JlZW4gdXAgYW5kIG91dDpcbiAgLy8gc3RhcnRcbiAgJi5uZy1sZWF2ZSB7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgJHNjcm9sbC10aW1pbmcgbGluZWFyKTtcbiAgICB0b3A6IC02MHZoO1xuICAgIG9wYWNpdHk6IDE7XG5cbiAgICAvLyBmaW5pc2hcbiAgICAmLm5nLWxlYXZlLWFjdGl2ZSB7XG4gICAgICB0b3A6IC0xMjB2aDtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuICB9XG59XG5cbi5hbmltYXRlLXNjcm9sbC1kb3duIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIC8vIG1vdmUgbmV4dCBzY3JlZW4gdXAgaW50byBwb3NpdGlvbjpcbiAgLy8gVGhlIHN0YXJ0aW5nIGFuaW1hdGlvbiBzdHlsZXNcbiAgJi5uZy1lbnRlciB7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgJHNjcm9sbC10aW1pbmcgbGluZWFyKTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRvcDogMDtcblxuICAgIC8vIFRoZSBmaW5pc2hpbmcgYW5pbWF0aW9uIHN0eWxlc1xuICAgICYubmctZW50ZXItYWN0aXZlIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB0b3A6IDYwdmg7XG4gICAgfVxuICB9XG5cbiAgLy8gTW92ZSBwcmV2aW91cyBzY3JlZW4gdXAgYW5kIG91dDpcbiAgLy8gc3RhcnRcbiAgJi5uZy1sZWF2ZSB7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgJHNjcm9sbC10aW1pbmcgbGluZWFyKTtcbiAgICB0b3A6IC0xMjB2aDtcbiAgICBvcGFjaXR5OiAxO1xuXG4gICAgLy8gZmluaXNoXG4gICAgJi5uZy1sZWF2ZS1hY3RpdmUge1xuICAgICAgdG9wOiAtNjB2aDtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuICB9XG59XG5cbi8vIEhvcml6b250YWwgU2Nyb2xsOlxuLmFuaW1hdGUtc2Nyb2xsLXJpZ2h0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIC8vIG1vdmUgbmV4dCBzY3JlZW4gdXAgaW50byBwb3NpdGlvbjpcbiAgLy8gVGhlIHN0YXJ0aW5nIGFuaW1hdGlvbiBzdHlsZXNcbiAgJi5uZy1lbnRlciB7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgMnMgbGluZWFyKTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIGxlZnQ6IDYwdnc7XG5cbiAgICAvLyBUaGUgZmluaXNoaW5nIGFuaW1hdGlvbiBzdHlsZXNcbiAgICAmLm5nLWVudGVyLWFjdGl2ZSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgbGVmdDogMDtcbiAgICB9XG4gIH1cblxuICAvLyBNb3ZlIHByZXZpb3VzIHNjcmVlbiB1cCBhbmQgb3V0OlxuICAvLyBzdGFydFxuICAmLm5nLWxlYXZlIHtcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCAycyBsaW5lYXIpO1xuICAgIGxlZnQ6IC02MHZ3O1xuICAgIG9wYWNpdHk6IDE7XG5cbiAgICAvLyBmaW5pc2hcbiAgICAmLm5nLWxlYXZlLWFjdGl2ZSB7XG4gICAgICBsZWZ0OiAtMTIwdnc7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gS2V5ZnJhbWUgQW5pbWF0aW9uc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQC13ZWJraXQta2V5ZnJhbWVzIHNwaW4ge1xuICAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgfVxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM1OWRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzU5ZGVnKTtcbiAgfVxufVxuQGtleWZyYW1lcyBzcGluIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDM1OWRlZyk7XG4gIH1cbn1cblxuIiwiLypcbiAgKiBEaW1lbnNpb25zXG4gICogVXNhYmlsaXR5IGFuZCBVc2VyIEludGVyYWN0aW9uXG4gICogVGV4dCBSZWxhdGVkIFBhdHRlcm5zXG4gICogUmVzcG9uc2l2ZVxuICAqIE1hcmdpbnMgYW5kIHBhZGRpbmdcbiAgKiBUYWJsZSByZWxhdGVkXG4gICogTWlzY1xuICAgIC0gZ3B1IGFjY2VsZXJhdGlvblxuICAgIC0gTGF5b3V0IGhlbHBlcnNcbiAgICAtIENvbnN0cmFpbiBDb250ZW50XG5cbiAgVE9ETzogVXBkYXRlIGFuZCBhZGQgaG9sb2dyYW0gZG9jdW1lbnRhdGlvblxuICBVdGlsaXR5IHN0eWxlcyBzaG91bGQgYWxsIGJlIHByZXBlbmRlZCBieSBcInUtXCJcbiovXG5cbi8qZG9jXG4tLS1cbnRpdGxlOiBVdGlsaXR5XG5uYW1lOiB1dGlsaXR5XG5jYXRlZ29yeTogUGF0dGVybnNcbi0tLVxuXG5VdGlsaXR5ID0gaGVscGVyIGNsYXNzZXMgYW5kIHNpbXBsZSByZXVzYWJsZSBwYXR0ZXJuc1xuXG5VdGlsaXR5IGNsYXNzZXMgc2hvdWxkIHN0YXJ0IHdpdGggXCJ1LVwiLiBUaGV5IGNhbiBiZSB1c2VkIHRvIGNyZWF0ZSBxdWljayBhZCBob2MgbGF5b3V0cyBvciBpbiBjZXJ0YWluIGNhc2VzIHdoZXJlIGl0IG1heSBub3QgbWFrZSBzZW5zZSB0byBjcmVhdGUgYSBzcGVjaWFsaXplZCBcIk1vZHVsZVwiIGNsYXNzLiBJZiB5b3UgZmluZCB5b3Vyc2VsZiB1c2luZyBzZXZlcmFsIHV0aWxpdHkgY2xhc3NlcyB0byBzdHlsZSBhbiBIVE1MIGVsZW1lbnQgdGhvdWdoIHRoYXQncyBhIHNpZ24geW91IHNob3VsZCBjb25zaWRlciBjcmVhdGluZyBhIG5ldyBNb2R1bGUgY2xhc3MgdG8gZW5jb21wYXNzIHRob3NlIHN0eWxlcy5cblxuTW9yZSBjb21wbGV4IHV0aWxpdHkgY2xhc3NlcyBjYW4gYmUgcmVmZXJlbmNlZCB3aXRoaW4gY3VzdG9taXplZCBNb2R1bGVzIGJ5IHJlZmVyZW5jaW5nIHRoZSBwbGFjZWhvbGRlciB2ZXJzaW9uLiAoVXRpbGl0eSBjbGFzc2VzIHdoaWNoIGFyZSB0b28gc2ltcGxlIG9ubHkgaGF2ZSBjbGFzcyBuYW1lcyBob3dldmVyLCBub3QgcGxhY2Vob2xkZXJzLiBGb3IgZXhhbXBsZSB0ZXh0IGFsaWdubWVudCBzdHlsZXMgb25seSBoYXZlIGNsYXNzIG5hbWVzLilcbiovXG5cblxuLypkb2Ncbi0tLVxudGl0bGU6IERpbWVuc2lvbnNcbnBhcmVudDogdXRpbGl0eVxubmFtZTogc3ViRGltZW5zaW9uc1xuLS0tXG5cbiMjIy51LWZ1bGwtd2lkdGhcblxuTWFrZSBlbGVtZW50IDEwMCUgd2lkdGguXG5cbmBgYGh0bWxfZXhhbXBsZVxuPHA+XG4gICAgPGJ1dHRvbiBjbGFzcz1cImJ0blwiIHR5cGU9XCJidXR0b25cIj5cbiAgICAgICAgV2l0aG91dCBjbGFzc1xuICAgIDwvYnV0dG9uPlxuPC9wPlxuPHA+XG4gICAgPGJ1dHRvbiBjbGFzcz1cImJ0biB1LWZ1bGwtd2lkdGhcIiB0eXBlPVwiYnV0dG9uXCI+XG4gICAgICAgIFdpdGggY2xhc3NcbiAgICA8L2J1dHRvbj5cbjwvcD5cblxuYGBgXG5cbiMjIy51LWZ1bGwtbWF4LXdpZHRoXG5QcmV2ZW50IGVsZW1lbnQgZnJvbSBleGNlZWRpbmcgMTAwJSB3aWR0aC4gSWYgZWxlbWVudCBpcyB3aWRlciB0aGFuIGl0cyBjb250YWluZXIgaXQgd2lsbCBzaHJpbmsgdG8gZml0LlxuXG5BcHBseSB0byBpbWFnZXMgZm9yIGV4YW1wbGUuXG5cbiMjTW9yZSBleHBlcmltZW50YWwsIHJhcmVyIHVzZSBjYXNlIHV0aWxpdHkgY2xhc3NlcyBmb3Igc2V0dGluZyBkaW1lbnNpb25zXG4jIyMudS1pbnRyaW5zaWMtbWF4LWNvbnRlbnQtd2lkdGhcblxuTWFrZSBlbGVtZW50IHNocmluayB3cmFwIHRoZSB3aWR0aCBvZiBpdHMgPGVtPndpZGVzdDwvZW0+IGNvbnRlbnQuIEFwcGx5IHRvIGJsb2NrIGxldmVsIGVsZW1lbnRzLlxuXG5gYGBodG1sX2V4YW1wbGVcbjxkaXYgc3R5bGU9XCJiYWNrZ3JvdW5kOiBza3libHVlOyBwYWRkaW5nOiAxZW07XCI+XG4gIFdpdGhvdXQgY2xhc3NcbjwvZGl2PlxuXG48aHI+XG5cbjxkaXYgY2xhc3M9XCJ1LWludHJpbnNpYy1tYXgtY29udGVudC13aWR0aFwiIHN0eWxlPVwiYmFja2dyb3VuZDogc2t5Ymx1ZTsgcGFkZGluZzogMWVtO1wiPlxuICBXaXRoIGNsYXNzXG48L2Rpdj5cbmBgYFxuXG4jIyMudS1pbnRyaW5zaWMtbWluLWNvbnRlbnQtd2lkdGhcblxuTWFrZSBlbGVtZW50IHNocmluayB3cmFwIHRoZSB3aWR0aCBvZiBpdHMgPGVtPm5hcnJvd2VzdDwvZW0+IGNvbnRlbnQuIEFwcGx5IHRvIGJsb2NrIGxldmVsIGVsZW1lbnRzLlxuXG5UaGlzIGhhcyBhIHNpZGUgYWZmZWN0IG9mIGNhdXNpbmcgd29yZHMgdG8gd3JhcC5cblxuYGBgaHRtbF9leGFtcGxlXG48ZGl2IHN0eWxlPVwiYmFja2dyb3VuZDogc2t5Ymx1ZTsgcGFkZGluZzogMWVtO1wiPlxuICBXaXRob3V0IGNsYXNzXG48L2Rpdj5cblxuPGhyPlxuXG48ZGl2IGNsYXNzPVwidS1pbnRyaW5zaWMtbWluLWNvbnRlbnQtd2lkdGhcIiBzdHlsZT1cImJhY2tncm91bmQ6IHNreWJsdWU7IHBhZGRpbmc6IDFlbTtcIj5cbiAgV2l0aCBjbGFzc1xuPC9kaXY+XG5gYGBcbiovXG5cbi8qZG9jXG4tLS1cbnRpdGxlOiBUZXh0XG5wYXJlbnQ6IHV0aWxpdHlcbm5hbWU6IHN1YlRleHRcbi0tLVxuXG4jIyNUZXh0IGFsaWdubWVudFxuXG4jIyMjLnUtdGV4dC1hbGlnbi1sZWZ0XG4jIyMjLnUtdGV4dC1hbGlnbi1sZWZ0XG4jIyMjLnUtdGV4dC1hbGlnbi1jZW50ZXJcblxuYGBgaHRtbF9leGFtcGxlXG48cCBjbGFzcz1cInUtdGV4dC1hbGlnbi1sZWZ0XCI+XG4gICAgQWxpZ24gdGV4dCB0byB0aGUgbGVmdC4gVGhpcyBpcyBhbHJlYWR5IHRoZSBkZWZhdWx0IGZvciBtb3N0IGVsZW1lbnRzIHNvIHRoaXMgY2xhc3Mgc2hvdWxkIHJhcmVseSBiZSBuZWVkZWQuXG48L3A+XG5cbjxwIGNsYXNzPVwidS10ZXh0LWFsaWduLXJpZ2h0XCI+XG4gIEFsaWduIHRleHQgdG8gdGhlIHJpZ2h0LlxuPC9wPlxuXG48cCBjbGFzcz1cInUtdGV4dC1hbGlnbi1jZW50ZXJcIj5cbiAgQ2VudGVyIHRleHQuXG48L3A+XG5gYGBcblxuIyMjVGV4dCB3cmFwcGluZ1xuXG4jIyMjLnUtd3JhcC10ZXh0XG5cbk1ha2UgbG9uZyB0ZXh0IHN0cmluZ3Mgd3JhcCB0byBwcmV2ZW50IGJyZWFraW5nIGxheW91dHMuIGNhbiBhcHBseSB0byB0YWJsZSBjZWxscywgcHJlIHRhZ3MsIGV0Yy4gYXMgbmVlZGVkLlxuXG5gYGBodG1sX2V4YW1wbGVcbldpdGhvdXQgY2xhc3M6XG48ZGl2IHN0eWxlPVwid2lkdGg6IDIwMHB4OyBib3JkZXI6IDFweCBzb2xpZDtcIj5cbiAgPHA+QWxvbmd0ZXh0c3RyaW5nd2l0aG5vc3BhY2VzYXRhbGx3aGljaG5vcm1hbGx5d291bGRub3R3cmFwYW5kd291bGRzdGlja291dG9maXRzY29udGFpbmVyPC9wPlxuPC9kaXY+XG5cbjxocj5cblxuV2l0aCBjbGFzczpcbjxkaXYgc3R5bGU9XCJ3aWR0aDogMjAwcHg7IGJvcmRlcjogMXB4IHNvbGlkO1wiPlxuICA8cCBjbGFzcz1cInUtd3JhcC10ZXh0XCI+XG4gICAgQWxvbmd0ZXh0c3RyaW5nd2l0aG5vc3BhY2VzYXRhbGx3aGljaG5vcm1hbGx5d291bGRub3R3cmFwYW5kd291bGRzdGlja291dG9maXRzY29udGFpbmVyXG4gIDwvcD5cbjwvZGl2PlxuYGBgXG5cbiMjIyMudS1ub3dyYXBcblByZXZlbnQgdGV4dCBmcm9tIHdyYXBwaW5nIGV2ZW4gaWYgaXQgaGFzIHNwYWNlcy5cblxuYGBgaHRtbF9leGFtcGxlXG5XaXRob3V0IGNsYXNzOlxuPGRpdiBzdHlsZT1cIndpZHRoOiAyMDBweDsgYm9yZGVyOiAxcHggc29saWQ7XCI+XG4gIDxwPlNvbWUgdGV4dCBjb250YWluaW5nIHNwYWNlcyB3aGljaCB3b3VsZCBub3JtYWxseSB3cmFwIHRvIGZpdCB3aXRoaW4gaXRzIGNvbnRhaW5lci48L3A+XG48L2Rpdj5cblxuPGhyPlxuXG5XaXRoIGNsYXNzOlxuPGRpdiBzdHlsZT1cIndpZHRoOiAyMDBweDsgYm9yZGVyOiAxcHggc29saWQ7XCI+XG4gIDxwIGNsYXNzPVwidS1ub3dyYXBcIj5cbiAgICBTb21lIHRleHQgY29udGFpbmluZyBzcGFjZXMgd2hpY2ggd291bGQgbm9ybWFsbHkgd3JhcCB0byBmaXQgd2l0aGluIGl0cyBjb250YWluZXIuXG4gIDwvcD5cbjwvZGl2PlxuYGBgXG5cbiMjIyMudS10cnVuY2F0ZS10ZXh0XG5cblRydW5jYXRlIGxvbmcgdGV4dC5cblxuYGBgaHRtbF9leGFtcGxlXG5XaXRob3V0IGNsYXNzOlxuPGRpdiBzdHlsZT1cIndpZHRoOiAyMDBweDsgYm9yZGVyOiAxcHggc29saWQ7XCI+XG4gIDxwPkFsb25ndGV4dHN0cmluZ3dpdGhub3NwYWNlc2F0YWxsd2hpY2hub3JtYWxseXdvdWxkbm90d3JhcGFuZHdvdWxkc3RpY2tvdXRvZml0c2NvbnRhaW5lcjwvcD5cbjwvZGl2PlxuXG48aHI+XG5cbldpdGggY2xhc3M6XG48ZGl2IHN0eWxlPVwid2lkdGg6IDIwMHB4OyBib3JkZXI6IDFweCBzb2xpZDtcIj5cbiAgPHAgY2xhc3M9XCJ1LXRydW5jYXRlLXRleHRcIj5cbiAgICBBbG9uZ3RleHRzdHJpbmd3aXRobm9zcGFjZXNhdGFsbHdoaWNobm9ybWFsbHl3b3VsZG5vdHdyYXBhbmR3b3VsZHN0aWNrb3V0b2ZpdHNjb250YWluZXJcbiAgPC9wPlxuPC9kaXY+XG5gYGBcbiovXG5cbi8qZG9jXG4tLS1cbnRpdGxlOiBWZXJ0aWNhbCBBbGlnbm1lbnRcbnBhcmVudDogdXRpbGl0eVxubmFtZTogc3ViVmVydGljYWxBbGlnbm1lbnRcbi0tLVxuXG5DaGFuZ2UgdmVydGljYWwgYWxpZ25tZW50IG9mIGlubGluZSBibG9jayBlbGVtZW50cyBpbiByZWxhdGlvbnNoaXAgdG8gZWFjaCBvdGhlci4gKFRoZXNlIHNob3VsZCByYXJlbHkgYmUgbmVlZGVkLilcblxuIyMjIy51LXZlcnRpY2FsLWFsaWduLW1pZGRsZVxuIyMjIy51LXZlcnRpY2FsLWFsaWduLXRleHQtYm90dG9tXG4jIyMjLnUtdmVydGljYWwtYWxpZ24tdG9wXG4qL1xuXG4vKmRvY1xuLS0tXG50aXRsZTogUmVzcG9uc2l2ZVxucGFyZW50OiB1dGlsaXR5XG5uYW1lOiBzdWJSZXNwb25zaXZlXG4tLS1cblxuSGlkZSBjb250ZW50IGluIGNlcnRhaW4gdmlld3MgZm9yIHJlc3BvbnNpdmUgbGF5b3V0cy5cblxuIyMjIy51LWhpZGUtaW4tbW9iaWxlXG4jIyMjLnUtaGlkZS1pbi10YWJsZXRcbiMjIyMudS1oaWRlLWluLW1vYmlsZS1hbmQtdGFibGV0XG4jIyMjLnUtaGlkZS1pbi10YWJsZXQtYW5kLWFib3ZlfVxuIyMjIy51LWhpZGUtaW4tZGVza3RvcC1hbmQtYWJvdmVcbiovXG5cblxuLy8gRGltZW5zaW9uc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4udS1mdWxsLXdpZHRoIHtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbn1cblxuLy8gVE9ETzogYmV0dGVyIGRlZmluZSBwYXR0ZXJuIChiZXR0ZXIgbmFtZT8pXG4udS1mdWxsLW1heC13aWR0aCB7XG4gIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50O1xufVxuXG4vLyBJbnRyaW5zaWMgRGltZW5zaW9ucyAoRXhwZXJpbWVudGFsKVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAoTm90ZTogVXNlIG9ubHkgaW4gaW50ZXJuYWwgYXBwcywgY3Jvc3MgYnJvd3NlciBzdXBwb3J0IGlzIGxhY2tpbmcpXG4laW50cmluc2ljLW1heC1jb250ZW50LXdpZHRoLFxuLnUtaW50cmluc2ljLW1heC1jb250ZW50LXdpZHRoIHtcbiAgd2lkdGg6IC1tb3otbWF4LWNvbnRlbnQ7XG4gIHdpZHRoOiAtd2Via2l0LW1heC1jb250ZW50O1xuICB3aWR0aDogbWF4LWNvbnRlbnQ7XG59XG5cbiVpbnRyaW5zaWMtbWluLWNvbnRlbnQtd2lkdGgsXG4udS1pbnRyaW5zaWMtbWluLWNvbnRlbnQtd2lkdGgge1xuICB3aWR0aDogLW1vei1taW4tY29udGVudDtcbiAgd2lkdGg6IC13ZWJraXQtbWluLWNvbnRlbnQ7XG4gIHdpZHRoOiBtaW4tY29udGVudDtcbn1cblxuXG4vLyBVc2FiaWxpdHkgYW5kIFVzZXIgSW50ZXJhY3Rpb25cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8gVXNhYmlsaXR5XG4vLyAtLS0tLS0tLS0tLS0tLS0tXG4vLyBOT1RFOiB0ZXN0IHRvIG1ha2Ugc3VyZSB1c2FnZSBkb2Vzbid0IG1ha2UgdG91Y2ggdGFyZ2V0IG92ZXJsYXAgb3RoZXIgbmVhciBieSB0YXJnZXRzLCBhZGp1c3QgaWYgbmVjZXNzYXJ5XG4lZXhwYW5kLXRvdWNoLXRhcmdldCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAmOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogNDRweDtcbiAgICBoZWlnaHQ6IDQ0cHg7XG4gICAgbWFyZ2luOiBhdXRvO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IC01MCU7XG4gICAgcmlnaHQ6IC0xMDAlO1xuICAgIGJvdHRvbTogLTUwJTtcbiAgICBsZWZ0OiAtMTAwJTtcbiAgfVxufVxuXG4vLyBVc2VyIGludGVyYWN0aW9uXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLVxuQG1peGluIGRpc2FibGVVc2VySW50ZXJhY3Rpb24ge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuQG1peGluIGVuYWJsZVVzZXJJbnRlcmFjdGlvbiB7XG4gIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xufVxuXG4lZGlzYWJsZS11c2VyLWludGVyYWN0aW9uIHtcbiAgQGluY2x1ZGUgZGlzYWJsZVVzZXJJbnRlcmFjdGlvbjtcbn1cblxuJWVuYWJsZS11c2VyLWludGVyYWN0aW9uIHtcbiAgQGluY2x1ZGUgZW5hYmxlVXNlckludGVyYWN0aW9uO1xufVxuXG4ldXNlci1zZWxlY3QtZGlzYWJsZSB7XG4gIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG5cbiV1c2VyLXNlbGVjdC1lbmFibGUge1xuICAtbW96LXVzZXItc2VsZWN0OiBhbGw7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IGFsbDtcbiAgLW1zLXVzZXItc2VsZWN0OiBhbGw7XG4gIHVzZXItc2VsZWN0OiBhbGw7XG59XG5cbi8vIHJlbmFtZSBvciBnZXQgcmlkIG9mP1xuLmFjdGlvbi1jb250cm9sLFxuJWFjdGlvbi1jb250cm9sIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG5cbi8vIFRleHQgUmVsYXRlZFxuLy8gPT09PT09PT09PT09PT09PT09PVxuLy8gVGhlc2Ugc2hvdWxkIGJlIHVzZWQgc3BhcmluZ2x5LiAoVXBkYXRlIG1vZHVsZSBzdHlsZXMgb3IgYWRkIGEgbmV3IG1vZHVsZSBzdHlsZSB3aGVuZXZlciBmZWFzaWJsZSBpbnN0ZWFkLilcblxuLy8gdGV4dCBhbGlnbm1lbnRcbi8vIC0tLS0tLS0tLS0tLS0tLS1cbi51LXRleHQtYWxpZ24tbGVmdCB7XG4gIHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDtcbn1cblxuLnUtdGV4dC1hbGlnbi1yaWdodCB7XG4gIHRleHQtYWxpZ246IHJpZ2h0ICFpbXBvcnRhbnQ7XG59XG5cbi51LXRleHQtYWxpZ24tY2VudGVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7XG59XG5cbi8vIE1ha2UgbG9uZyB0ZXh0IHN0cmluZ3Mgd3JhcCB0byBwcmV2ZW50IGJyZWFraW5nIGxheW91dHMsXG4vLyBjYW4gYmUgYXBwbGllZCB0byB0YWJsZSBjZWxscywgcHJlIHRhZ3MsIGV0Yy4gYXMgbmVlZGVkXG4ld3JhcC10ZXh0LFxuLnUtd3JhcC10ZXh0IHtcbiAgd29yZC1icmVhazogYnJlYWstYWxsOyAvLyBJRVxuICB3b3JkLWJyZWFrOiBicmVhay13b3JkOyAvLyB3ZWJraXRcbiAgd29yZC13cmFwOiBicmVhay13b3JkOyAvLyAobGVnYWN5KVxuICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkOyAvLyAoY3NzMylcbn1cblxuLy8gUmVwbGFjZSB0ZXh0IHdpdGggYmFja2dyb3VuZCBpbWFnZSAoaGlkZSB0ZXh0KVxuLy8gVE9ETzogcmVmYWN0b3IgbmFtaW5nXG5AbWl4aW4gaW1hZ2VSZXBsYWNlbWVudCB7XG4gIHRleHQtaW5kZW50OiAzMDAwcHg7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgJjpiZWZvcmUsICY6YWZ0ZXIge1xuICAgIHRleHQtaW5kZW50OiAwO1xuICB9XG59XG5cbiVpbWFnZS1yZXBsYWNlbWVudCB7QGluY2x1ZGUgaW1hZ2VSZXBsYWNlbWVudDt9XG5cbkBtaXhpbiB0cnVuY2F0ZVRleHQge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgLW1zLXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB3b3JkLXdyYXA6IG5vcm1hbDsgLy8gSUU5IGZpeCB0byBwcmV2ZW50IHdvcmRzIGZyb20gYnJlYWtpbmcgdG8gdGhlIG5leHQgbGluZVxufVxuXG4ldHJ1bmNhdGUtdGV4dCxcbi51LXRydW5jYXRlLXRleHQge1xuICBAaW5jbHVkZSB0cnVuY2F0ZVRleHQ7XG59XG5cbiVub3dyYXAsXG4udS1ub3dyYXAge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4vLyBtYWtlIGdyb3VwIG9mIHdvcmRzIGJyZWFrIHRvIG5leHQgbGluZSB0b2dldGhlciBpZiB0aGVyZSBpcyBubyBzcGFjZTpcbiVicmVhay10b2dldGhlcixcbi51LWJyZWFrLXRvZ2V0aGVyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4vLyBWZXJ0aWNhbCBhbGlnbm1lbnRcbi8vID09PT09PT09PT09PT09PT09PT09PT1cbi51LXZlcnRpY2FsLWFsaWduLW1pZGRsZSB7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGUgIWltcG9ydGFudDtcbn1cblxuLnUtdmVydGljYWwtYWxpZ24tdGV4dC1ib3R0b20ge1xuICB2ZXJ0aWNhbC1hbGlnbjogdGV4dC1ib3R0b20gIWltcG9ydGFudDtcbn1cblxuLnUtdmVydGljYWwtYWxpZ24tdG9wIHtcbiAgdmVydGljYWwtYWxpZ246IHRvcCAhaW1wb3J0YW50O1xufVxuXG5cbi8vIFJlc3BvbnNpdmVcbi8vID09PT09PT09PT09PT09PT09PT09PVxuLy8gdGhpcyBjbGFzcyBpcyB1c2VkIGJ5IHRoZSBkMy5qcyBwaWUgY2hhcnQgdG8gaGlkZSB0aGUgXCJObyBkYXRhIGF2YWlsYWJsZVwiIC5tc2cgd2hpY2ggd2FzIGRpc3BsYXlpbmcgYmVoaW5kIHRoZSBwaWUgY2hhcnQgd2hlbiBpdCBhbmltYXRlZFxuLy8gKFRPRE86IGFuaW1hdGlvbiBvZiBwaWUgY2hhcnQgbmVlZHMgdG8gYmUgaW1wcm92ZWQgc28gaXQgYW5pbWF0ZXMgYmV0d2VlbiBtaWRkbGUgc3RhdGUgd2l0aG91dCBkaXNwbGF5aW5nIGJsYW5rIGJhY2tncm91bmQpXG4uaGlkZGVuIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLy8gaGlkZSBpbiBtb2JpbGU6XG5AaW5jbHVkZSBicChtb2JpbGUpIHtcbiAgJWhpZGUtaW4tbW9iaWxlLFxuICAudS1oaWRlLWluLW1vYmlsZSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgfVxufVxuXG4vLyBoaWRlIGluIHRhYmxldDpcbkBpbmNsdWRlIGJwKHRhYmxldCkge1xuICAlaGlkZS1pbi10YWJsZXQsXG4gIC51LWhpZGUtaW4tdGFibGV0IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xuICB9XG59XG5cbi8vIGhpZGUgaW4gbW9iaWxlIGFuZCB0YWJsZXQ6XG5AaW5jbHVkZSBicChtb2JpbGUtYW5kLXRhYmxldCkge1xuICAlaGlkZS1pbi1tb2JpbGUtYW5kLXRhYmxldCxcbiAgLnUtaGlkZS1pbi1tb2JpbGUtYW5kLXRhYmxldCB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgfVxufVxuXG4vLyBoaWRlIGluIHRhYmxldCBhbmQgYWJvdmU6XG5AaW5jbHVkZSBicCh0YWJsZXQtYW5kLWFib3ZlKSB7XG4gICVoaWRlLWluLXRhYmxldC1hbmQtYWJvdmUsXG4gIC51LWhpZGUtaW4tdGFibGV0LWFuZC1hYm92ZSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgfVxufVxuXG4vLyBoaWRlIGluIGRlc2t0b3AgYW5kIGFib3ZlOlxuQGluY2x1ZGUgYnAoZGVza3RvcC1hbmQtYWJvdmUpIHtcbiAgJWhpZGUtaW4tZGVza3RvcC1hbmQtYWJvdmUsXG4gIC51LWhpZGUtaW4tZGVza3RvcC1hbmQtYWJvdmUge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLy8gTWFyZ2lucyBhbmQgcGFkZGluZ1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gV0lQLCBhdm9pZCB3aWRlIHVzYWdlXG4udS1tYXJnaW4tdG9wLWNvbnRlbnQtd2lkZSB7XG4gIG1hcmdpbi10b3A6ICRjb250ZW50LXNwYWNlLWRvdWJsZSAhaW1wb3J0YW50O1xufVxuXG5cbi8vIFRhYmxlIFJlbGF0ZWRcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEFsbG93IG1heC13aWR0aCB0byBiZSBhcHBsaWVkIHRvIHRhYmxlcyBpbiBDaHJvbWVcbkBtaXhpbiB0YWJsZU1heFdpZHRoKCR0YWJsZVdpZHRoKSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogJHRhYmxlV2lkdGg7XG4gIG1heC13aWR0aDogMTAwJTtcblxuICB0aGVhZCxcbiAgdGJvZHkge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG5cbi8vIHRhYmxlIGNlbGwgbGF5b3V0czpcbi8vIFJlbmFtZS9yZWZhY3Rvcj9cbiVtaW4tY29udGVudC13aWR0aC1jZWxsLFxuLnUtbWluLWNvbnRlbnQtd2lkdGgtY2VsbCB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHdpZHRoOiAxJTtcbn1cblxuXG4vLyBNaXNjXG4vLyA9PT09PT09PT09PT09XG5cbi8vIGVuYWJsZSBncHUgYWNjZWxlcmF0aW9uXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiVoYXJkd2FyZS1hY2NlbGVyYXRlIHtcbiAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZVooMCkpO1xufVxuXG4lZ3JvdXA6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBkaXNwbGF5OiBibG9jaztcbiAgY2xlYXI6IGJvdGg7XG59XG5cbi8vIENvbnN0cmFpbiBDb250ZW50XG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gV0lQLCBzZXQgY29tZm9ydGFibGUgcmVhZGluZyB3aWR0aFxuJW1heC1yZWFkaW5nLXdpZHRoLFxuLnUtbWF4LXJlYWRpbmctd2lkdGgge1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXgtd2lkdGg6IDg2LjByZW07XG59XG5cbi8vIFNldHMgY29udGVudCB3aWR0aCBmb3IgcGFnZSwgYWxzbyBhZGRzIHNpZGUgcGFkZGluZyBmb3IgbWFyZ2luczpcbkBtaXhpbiBjb25zdHJhaW5Db250ZW50IHtcbiAgbWF4LXdpZHRoOiAkbWF4LWNvbnRlbnQtd2lkdGg7XG4gIG1hcmdpbjogMCBhdXRvO1xuXG4gIEBpbmNsdWRlIGJwKG1vYmlsZSkge1xuICAgIHBhZGRpbmctbGVmdDogJGNvbnRlbnQtc3BhY2UtdHdvLXRoaXJkcztcbiAgICBwYWRkaW5nLXJpZ2h0OiAkY29udGVudC1zcGFjZS10d28tdGhpcmRzO1xuICB9XG5cbiAgQGluY2x1ZGUgYnAodGFibGV0LWFuZC1hYm92ZSkge1xuICAgIHBhZGRpbmctbGVmdDogJGNvbnRlbnQtc3BhY2U7XG4gICAgcGFkZGluZy1yaWdodDogJGNvbnRlbnQtc3BhY2U7XG4gIH1cbn1cblxuJWNvbnN0cmFpbi1jb250ZW50LFxuLmNvbnN0cmFpbi1jb250ZW50IHtcbiAgQGluY2x1ZGUgY29uc3RyYWluQ29udGVudDtcbn1cblxuXG4vLyBMYXlvdXQgSGVscGVyc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gbW92ZT9cbi51LWZsZXgtdmVydGljYWwtYWxpZ24tY2VudGVyLFxuJXUtZmxleC12ZXJ0aWNhbC1hbGlnbi1jZW50ZXIge1xuICBAaW5jbHVkZSBhbGlnbkl0ZW1zKGNlbnRlciAhaW1wb3J0YW50KTtcbn1cblxuLnUtZmxleC1ob3Jpem9udGFsLWFsaWduLWNlbnRlcixcbiV1LWZsZXgtaG9yaXpvbnRhbC1hbGlnbi1jZW50ZXIge1xuICAvLyBUT0RPOiByZWZhY3RvciBob3cgIWltcG9ydGFudCB3b3JrcyBpbiBtaXhpbnMgdG8gbWFrZSBzaW1wbGVyL21vcmUgY29uc2lzdGVudFxuICAvLyAodGhlIGNvbW1hIGlzIG5lZWRlZCBhZnRlciB0aGUgXCJmbGV4XCIgdmFsdWUgYmVsb3cgc2luY2UgdGhlIGRpc3BsYXlGbGV4IG1peGluIGhhcyBhIGRlZmF1bHQgdmFsdWUgc2V0KVxuICBAaW5jbHVkZSBkaXNwbGF5RmxleChmbGV4LCAhaW1wb3J0YW50KTtcbiAgQGluY2x1ZGUganVzdGlmeUNvbnRlbnQoY2VudGVyICFpbXBvcnRhbnQpO1xufVxuXG4vLyB5b3Ugc2hvdWxkIHZlcnkgcmFyZWx5IG5lZWQgdGhlc2UuLi5cbi51LWRpc3BsYXktaW5saW5lLWJsb2NrIHtkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDt9XG5cbi51LWRpc3BsYXktYmxvY2sge2Rpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7fVxuIiwiLypkb2Ncbi0tLVxudGl0bGU6IExheW91dFxubmFtZTogbGF5b3V0XG5jYXRlZ29yeTogUGF0dGVybnNcbi0tLVxuXG5MYXlvdXQgPSBDb2x1bW5zL2dyaWRzIGFuZCBhYnN0cmFjdCBsYXlvdXQgcGF0dGVybnMgZm9yIGdyb3VwcyBvZiBlbGVtZW50c1xuXG4qL1xuXG5cbkBpbXBvcnQgXCJzdWIvbGF5b3V0LXBhdHRlcm5zXCI7XG5AaW1wb3J0IFwic3ViL2NvbHVtbi1ncmlkXCI7XG4iLCIvKmRvY1xuLS0tXG50aXRsZTogTGF5b3V0IFBhdHRlcm5zXG5wYXJlbnQ6IGxheW91dFxubmFtZTogc3VibGF5b3V0UGF0dGVybnNcbi0tLVxuXG5MYXlvdXQgUGF0dGVybnMgPSBBYnN0cmFjdCBsYXlvdXQgcGF0dGVybnMgZm9yIGFycmFuZ2VtZW50cyBvZiBncm91cHMgb2YgZWxlbWVudHMuXG5cbkRvdHRlZCBvdXRsaW5lcyBoYXZlIGJlZW4gYWRkZWQgdG8gbW9yZSBjbGVhcmx5IHNob3cgdGhlIHN0cnVjdHVyZSBvZiBsYXlvdXQgcGF0dGVybnMgaW4gdGhlIGV4YW1wbGVzIGJlbG93LiBUaGVzZSBvdXRsaW5lcyB3aWxsIG5vdCBiZSB2aXNpYmxlIGluIGFjdHVhbCBwcm9kdWN0aW9uIHVzYWdlLlxuXG4qKkZsZXhib3ggTGF5b3V0czoqKlxuXG48dWwgY2xhc3M9XCJidWxsZXRlZC1saXN0XCI+XG4gIDxsaT5jZW50ZXI8L2xpPlxuICA8bGk+XG4gICAgbWVkaWEgb2JqZWN0IGFuZCB2YXJpYW50czpcbiAgICA8dWwgY2xhc3M9XCJidWxsZXRlZC1saXN0XCI+XG4gICAgICA8bGk+bWVkaWEgb2JqZWN0PC9saT5cbiAgICAgIDxsaT5mbGFnIG9iamVjdDwvbGk+XG4gICAgPC91bD5cbiAgPC9saT5cbiAgPGxpPlxuICAgIGp1c3RpZmllZCBibG9jazpcbiAgICA8dWwgY2xhc3M9XCJidWxsZXRlZC1saXN0XCI+XG4gICAgICA8bGk+aG9yaXpvbnRhbCBqdXN0aWZpZWQgYmxvY2s8L2xpPlxuICAgICAgPGxpPnZlcnRpY2FsIGp1c3RpZmllZCBibG9jazwvbGk+XG4gICAgPC91bD5cbiAgPC9saT5cbiAgPGxpPlxuICAgIHRhYmxlLWxpa2UgbGF5b3V0czpcbiAgICA8dWwgY2xhc3M9XCJidWxsZXRlZC1saXN0XCI+XG4gICAgICA8bGk+ZXF1YWwgY2VsbDwvbGk+XG4gICAgICA8bGk+dW5lcXVhbCBjZWxsPC9saT5cbiAgICA8L3VsPlxuICA8L2xpPlxuPC91bD5cblxuIyMjIENlbnRlclxuXG5DZW50ZXJzIGFuIGVsZW1lbnQgYm90aCB2ZXJ0aWNhbGx5IGFuZCBob3Jpem9udGFsbHkgd2l0aGluIGFueSBjb250YWluZXIgZWxlbWVudCBpdCBpcyBhcHBsaWVkIHRvLiBEZXNpZ25lZCBwcmltYXJpbHkgZm9yIGNlbnRlcmluZyBhIHNpbmdsZSBlbGVtZW50IGJ1dCB3aWxsIGFsc28gd29yayBvbiBtdWx0aXBsZSBlbGVtZW50cy4gKE11bHRpcGxlIGVsZW1lbnRzIHdpbGwgYWxsIGJlIGNlbnRlcmVkIHRvZ2V0aGVyIHdpdGhpbiB0aGUgbWFpbiBjb250YWluZXIuKVxuXG48ZW0+KE5PVEU6IElubGluZSBzdHlsZXMgYXJlIGZvciBwdXJwb3NlcyBvZiBkZW1vbnN0cmF0aW9uIG9ubHkuIERvIG5vdCB1c2Ugd2l0aGluIHByb2R1Y3Rpb24gYXBwIGNvZGUhKTwvZW0+XG5cbmBgYGh0bWxfZXhhbXBsZVxuPGRpdiBjbGFzcz1cImwtZmxleC1jZW50ZXJcIiBzdHlsZT1cImhlaWdodDogMjAwcHg7IGJhY2tncm91bmQ6IGFsaWNlQmx1ZTtcIj5cbiAgPHA+QSB2ZXJ0aWNhbGx5IGFuZCBob3Jpem9udGFsbHkgY2VudGVyZWQgZWxlbWVudC4gKENhbiBiZSBhbnkgZWxlbWVudC4pPC9wPlxuPC9kaXY+XG5gYGBcblxuIyMjIyBNZWRpYSBPYmplY3QgTGF5b3V0XG5cbkFsaWducyBhbiBlbGVtZW50IHN1Y2ggYXMgYW4gaW1hZ2UgdG8gdGhlIGxlZnQgb2YgYW4gYXNzb2NpYXRlZCBibG9jayBvZiBjb250ZW50LiBUaGUgaW1hZ2UgZG9lcyBub3QgbmVlZCB0byBiZSB3cmFwcGVkIGJ5IGFueSBvdGhlciBlbGVtZW50IChhIHN0YW5kIGFsb25lIGltYWdlIHRhZyBpcyBmaW5lKS4gRGVzaWduZWQgdG8gd29yayB3aXRoIDIgbWFpbiBlbGVtZW50cyBvZiBhbnkgdHlwZS5cblxuYGBgaHRtbF9leGFtcGxlXG48ZGl2IGNsYXNzPVwibC1tZWRpYS1vYmplY3RcIj5cbiAgPGRpdj5JTUFHRTwvZGl2PlxuXG4gIDxkaXY+XG4gICAgPGg0PkEgaGVhZGVyPC9oND5cbiAgICA8cD5Tb21lIGFzc29jaWF0ZWQgdGV4dCBjb250ZW50LjwvcD5cbiAgPC9kaXY+XG48L2Rpdj5cbmBgYFxuXG4jIyMjIEZsYWcgT2JqZWN0IExheW91dFxuXG5UaGlzIGlzIHZlcnkgc2ltaWxhciB0byB0aGUgTWVkaWEgT2JqZWN0IHBhdHRlcm4gZXhjZXB0IHRoZSAyIGVsZW1lbnRzIGFyZSBjZW50ZXIgYWxpZ25lZCB0byBlYWNoIG90aGVyLlxuXG5gYGBodG1sX2V4YW1wbGVcbjxkaXYgY2xhc3M9XCJsLWZsYWctb2JqZWN0XCI+XG4gIDxkaXY+SU1BR0U8YnI+SU1BR0U8YnI+SU1BR0U8L2Rpdj5cblxuICA8cD5Tb21lIGFzc29jaWF0ZWQgdGV4dCBjb250ZW50LjwvcD5cbjwvZGl2PlxuYGBgXG5cbiMjIyMgSnVzdGlmaWVkIEJsb2NrIExheW91dFxuXG5UaGlzIHBhdHRlcm4gd29ya3Mgb24gbXVsdGlwbGUgZWxlbWVudHMgZGlzdHJpYnV0aW5nIHRoZW0gYW4gZXF1YWwgZGlzdGFuY2UgYXBhcnQgYW5kIGp1c3RpZmllZCB0byB0aGUgcmlnaHQgYW5kIGxlZnQuIChXb3JrcyBvbiBhbnkgdHlwZSBvZiBodG1sIGVsZW1lbnRzLiBBIGxpc3QgaXMgdXNlZCBqdXN0IGFzIGFuIGV4YW1wbGUuKVxuXG5gYGBodG1sX2V4YW1wbGVcbjx1bCBjbGFzcz1cImwtanVzdGlmaWVkLWJsb2NrXCI+XG4gIDxsaT5GaXJzdCBJdGVtPC9saT5cbiAgPGxpPkFub3RoZXIgSXRlbTwvbGk+XG4gIDxsaT5JdGVtPC9saT5cbiAgPGxpPkxhc3QgSXRlbTwvbGk+XG48L3VsPlxuYGBgXG5cbiMjIyMgVmVydGljYWwgSnVzdGlmaWVkIEJsb2NrIExheW91dFxuXG5UaGlzIGlzIGEgdmFyaWF0aW9uIG9uIHRoZSBhYm92ZSBtb3JlIGNvbW1vbiBwYXR0ZXJuLiAoSXQgZG9lcyBub3QgbmVlZCB0byBiZSB1c2VkIHRvZ2V0aGVyIHdpdGggdGhlIGFib3ZlIGNsYXNzLiBUaGUgYmVsb3cgaXMgb25seSBhbiBleGFtcGxlLilcblxuYGBgaHRtbF9leGFtcGxlXG48dWwgY2xhc3M9XCJsLWp1c3RpZmllZC1ibG9ja1wiPlxuICA8bGkgY2xhc3M9XCJsLWp1c3RpZmllZC1ibG9jay12ZXJ0aWNhbFwiPlxuICAgIDxoNT5cbiAgICAgIEEgbG9uZyBoZWFkZXI8YnI+XG4gICAgICB3aGljaCB3cmFwcyB0bzxicj5cbiAgICAgIHRoZSBuZXh0IGZldyBsaW5lc1xuICAgIDwvaDU+XG5cbiAgICA8YSBocmVmPVwiI1wiPkNsaWNrIE1lPC9hPlxuICA8L2xpPlxuXG4gIDxsaSBjbGFzcz1cImwtanVzdGlmaWVkLWJsb2NrLXZlcnRpY2FsXCI+XG4gICAgPGg1Pkp1c3QgYSBoZWFkZXI8L2g1PlxuXG4gICAgPGEgaHJlZj1cIiNcIj5DbGljayBNZTwvYT5cbiAgPC9saT5cblxuICA8bGkgY2xhc3M9XCJsLWp1c3RpZmllZC1ibG9jay12ZXJ0aWNhbFwiPlxuICAgIDxoNT5KdXN0IGEgaGVhZGVyPC9oNT5cblxuICAgIDxhIGhyZWY9XCIjXCI+Q2xpY2sgTWU8L2E+XG4gIDwvbGk+XG48L3VsPlxuYGBgXG5cbiMjIyMgRXF1YWwgQ2VsbCBMYXlvdXRcblxuVGhpcyBpcyBhIHRhYmxlLWxpa2UgbGF5b3V0IHdoaWNoIHdvcmtzIG9uIG11bGlwbGUgZWxlbWVudHMuIEFsbCBlbGVtZW50cyB3aWxsIGJlIGxpbmVkIHVwIGluIGEgcm93IGFuZCB3aWxsIGJlIGVxdWFsIHdpZHRoIGFkZGluZyB1cCB0byAxMDAlIHRvdGFsLlxuXG5gYGBodG1sX2V4YW1wbGVcbjx1bCBjbGFzcz1cImwtZXF1YWwtY2VsbFwiPlxuICA8bGk+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2ljaW5nIGVsaXQuIE9kaW8gdm9sdXB0YXRlcyBwcmFlc2VudGl1bSE8L2xpPlxuICA8bGk+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ8L2xpPlxuICA8bGk+TG9yZW08L2xpPlxuPC91bD5cblxuYGBgXG5cbiMjIyMgVW5lcXVhbCBDZWxsIExheW91dFxuXG5UaGlzIGlzIHNpbWlsYXIgdG8gdGhlIGFib3ZlIGxheW91dCBleGNlcHQgdGhlIHdpZHRoIG9mIGVsZW1lbnRzIHdpbGwgYmUgcmVsYXRpdmUgdG8gdGhlIGxlbmd0aCBvZiB0aGVpciBjb250ZW50cy4gKE5PVEU6IGV4YW1wbGVzIGJlbG93IGRvIG5vdCBpbmNsdWRlIHN0eWxlcyBmb3Igc3BhY2luZyBiZXR3ZWVuIGVsZW1lbnRzLilcblxuYGBgaHRtbF9leGFtcGxlXG48dWwgY2xhc3M9XCJsLXVuZXF1YWwtY2VsbFwiPlxuICA8bGk+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2ljaW5nIGVsaXQuIE9kaW8gdm9sdXB0YXRlcyBwcmFlc2VudGl1bSE8L2xpPlxuICA8bGk+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ8L2xpPlxuICA8bGk+TG9yZW08L2xpPlxuPC91bD5cblxuPHAgY2xhc3M9XCJsLXVuZXF1YWwtY2VsbFwiPlxuICA8aW5wdXQgdHlwZT1cInRleHRcIiBwbGFjZWhvbGRlcj1cIlR5cGUgc29tZXRoaW5nIGhlcmVcIj5cblxuICA8c2VsZWN0PlxuICAgIDxvcHRpb24+b3B0aW9uPC9vcHRpb24+XG4gIDwvc2VsZWN0PlxuXG4gIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuXCI+R288L2J1dHRvbj5cbjwvcD5cblxuYGBgXG5cbiovXG5cblxuLy8gVE9ETyAtIFVQREFURSBUSEVTRSBQQVRURVJOUzpcblxuLypcbiAgRmxleGJveCBMYXlvdXRzOlxuICAtLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAqIGNlbnRlclxuICAqIG1lZGlhIG9iamVjdCBhbmQgdmFyaWFudHNcbiAgICAtIG1lZGlhIG9iamVjdFxuICAgIC0gZmxhZyBvYmplY3RcbiAgICAtIFRPRE86IGFkZCBcInJldmVyc2VcIiB2YXJpYW50cz9cbiAgKiBqdXN0aWZpZWQgYmxvY2tcbiAgICAtIGhvcml6b250YWwganVzdGlmaWVkIGJsb2NrXG4gICAgLSB2ZXJ0aWNhbCBqdXN0aWZpZWQgYmxvY2tcbiAgKiBUYWJsZS1saWtlIGxheW91dHNcbiAgICAtIGVxdWFsIGNlbGxcbiAgICAtIHVuZXF1YWwgY2VsbFxuXG4gIE90aGVyIExheW91dCBNZXRob2RzOlxuICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIChyZXBsYWNlIHdpdGggZmxleGJveCBpZiBmZWFzaWJsZSlcbiAgKiBUcmFuc2Zvcm0gbGF5b3V0c1xuICAgIC0gdmVydGljYWwgY2VudGVyXG4gICAgLSBob3Jpem9udGFsIGNlbnRlclxuICAqIElubGluZS1CbG9jayBMYXlvdXRzXG4gICAgLSBibG9jayBsaXN0XG4gICAgLSBqdXN0aWZpZWQgYmxvY2tcbiovXG5cbi8vIFRPRE86IEFkZCBob2xvZ3JhbSBEb2NzXG5cblxuLy8gRmxleGJveCBMYXlvdXRzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8gRmxleCBDZW50ZXJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBjZW50ZXJzIGNoaWxkIGVsZW1lbnRzIHZlcnRpY2FsbHkgYW5kIGhvcml6b250YWxseVxuQG1peGluIGwtZmxleENlbnRlciB7XG4gIEBpbmNsdWRlIGRpc3BsYXlGbGV4KCk7XG4gIEBpbmNsdWRlIGp1c3RpZnlDb250ZW50KGNlbnRlcik7XG4gIEBpbmNsdWRlIGFsaWduSXRlbXMoY2VudGVyKTtcbiAgQGluY2x1ZGUgZmxleERpcmVjdGlvbihjb2x1bW4pO1xufVxuXG4lbC1mbGV4LWNlbnRlcixcbi5sLWZsZXgtY2VudGVyIHtcbiAgQGluY2x1ZGUgbC1mbGV4Q2VudGVyO1xufVxuXG4vLyBNZWRpYSBPYmplY3QgYW5kIFZhcmlhdGlvbnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBtaXhpbiBsLU1lZGlhT2JqZWN0IHtcbiAgQGluY2x1ZGUgZGlzcGxheUZsZXg7XG5cbiAgPiAqIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgICArICoge1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuXG4gICAgLy8gVE9ETzogc2VwYXJhdGUgb3V0IG1hcmdpbiBzdHlsZXMgZm9yIHNwYWNpbmdcbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1yaWdodDogJGNvbnRlbnQtc3BhY2UtaGFsZjtcbiAgICB9XG5cbiAgICAmOm9ubHktY2hpbGQsXG4gICAgJjpudGgtY2hpbGQobisyKSB7XG4gICAgICAvLyBOT1RFOiB0cmllZCB0byByZW1vdmUgMTAwJSB3aWR0aCBiZWNhdXNlIG9mIHNpZGUgYWZmZWN0IG9uIHRhYmxlIGVsZW1zIGJ1dCBjYXVzZXMgbGF5b3V0IGJ1ZyBpbiBTYWZhcmkgKHdvcmtlZCBmaW5lIGluIENocm9tZSkgTmVlZCB0byB0ZXN0IGFuZCByZXNlYXJjaCBmdXJ0aGVyIFNPRkktMTQwNTRcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgZmxleC1zaHJpbms6IDE7XG4gICAgfVxuICB9XG5cbiAgLy8gVE9ETzogcmV2aXNlIHdpZHRoc1xuICA+IHRhYmxlIHt3aWR0aDogYXV0byAhaW1wb3J0YW50O31cbn1cblxuLy8gTWVkaWEgT2JqZWN0OlxuJWwtbWVkaWEtb2JqZWN0LFxuLmwtbWVkaWEtb2JqZWN0IHtcbiAgQGluY2x1ZGUgbC1NZWRpYU9iamVjdDtcbn1cblxuLy8gRmxhZyBPYmplY3Q6XG5AbWl4aW4gbC1mbGFnT2JqZWN0IHtcbiAgQGluY2x1ZGUgbC1NZWRpYU9iamVjdDtcbiAgQGluY2x1ZGUgYWxpZ25JdGVtcyhjZW50ZXIpO1xufVxuXG4lbC1mbGFnLW9iamVjdCxcbi5sLWZsYWctb2JqZWN0IHtcbiAgQGluY2x1ZGUgbC1mbGFnT2JqZWN0O1xufVxuXG4vLyBKdXN0aWZpZWQgQmxvY2tzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBIb3Jpem9udGFsIEp1c3RpZmllZCBCbG9ja3NcbkBtaXhpbiBsLWp1c3RpZmllZEJsb2NrIHtcbiAgQGluY2x1ZGUgZGlzcGxheUZsZXg7XG4gIEBpbmNsdWRlIGp1c3RpZnlDb250ZW50KHNwYWNlLWJldHdlZW4pO1xuXG4gID4gKiB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgfVxufVxuXG4lbC1qdXN0aWZpZWQtYmxvY2ssXG4ubC1qdXN0aWZpZWQtYmxvY2sge1xuICBAaW5jbHVkZSBsLWp1c3RpZmllZEJsb2NrO1xufVxuXG4vLyBWZXJ0aWNhbCBKdXN0aWZpZWQgQmxvY2tzXG5AbWl4aW4gbC1qdXN0aWZpZWRCbG9ja1ZlcnRpY2FsIHtcbiAgQGluY2x1ZGUgZGlzcGxheUZsZXgoKTtcbiAgQGluY2x1ZGUganVzdGlmeUNvbnRlbnQoc3BhY2UtYmV0d2Vlbik7XG4gIEBpbmNsdWRlIGZsZXhEaXJlY3Rpb24oY29sdW1uKTtcbn1cblxuJWwtanVzdGlmaWVkLWJsb2NrLXZlcnRpY2FsLFxuLmwtanVzdGlmaWVkLWJsb2NrLXZlcnRpY2FsIHtcbiAgQGluY2x1ZGUgbC1qdXN0aWZpZWRCbG9ja1ZlcnRpY2FsO1xufVxuXG4vLyBXSVA6IHRhYmxlLXN0eWxlIGxheW91dHNcbi8vIEFsbCBcImNlbGxzXCIgYXJlIGVxdWFsIHdpZHRoIGFuZCBhZGQgdXAgdG8gMTAwJSBpbiB0b3RhbFxuQG1peGluIGwtZXF1YWxDZWxsKCRjZWxsLWxheW91dDogZmxleCkge1xuICBAaW5jbHVkZSBkaXNwbGF5RmxleCgkY2VsbC1sYXlvdXQpO1xuXG4gID4gKiB7XG4gICAgZmxleC1iYXNpczogMTAwJTtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICB9XG59XG5cbiVsLWVxdWFsLWNlbGwsXG4ubC1lcXVhbC1jZWxsIHtcbiAgQGluY2x1ZGUgbC1lcXVhbENlbGw7XG59XG5cbi8vIFwiY2VsbHNcIiBhZGQgdXAgdG8gMTAwJSBpbiB0b3RhbCBidXQgd2lkdGggaXMgdmFyaWFibGUgYmFzZWQgb24gY29udGVudHNcbkBtaXhpbiBsLXVuZXF1YWxDZWxsKCRjZWxsLWxheW91dDogZmxleCwgJGltcG9ydGFudDogbnVsbCkge1xuICBAaW5jbHVkZSBkaXNwbGF5RmxleCgkY2VsbC1sYXlvdXQsICRpbXBvcnRhbnQpO1xuXG4gID4gKiB7XG4gICAgZmxleC1ncm93OiAxO1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgLy8gZml4IFNhZmFyaSBidWcgY2F1c2luZyBzb21lIHRleHQgdG8gb3ZlcmZsb3cgY29udGFpbmVyczpcbiAgICBtaW4td2lkdGg6IC1tb3otbWluLWNvbnRlbnQ7XG4gICAgbWluLXdpZHRoOiAtd2Via2l0LW1pbi1jb250ZW50O1xuICAgIG1pbi13aWR0aDogbWluLWNvbnRlbnQ7XG4gIH1cblxuICA+IC5idG4ge1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICB9XG5cbiAgPiBpbnB1dCxcbiAgPiBzZWxlY3Qge1xuICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50OyAvLyBtYWtlIHNhbWUgaGVpZ2h0IGFzIG90aGVyIGVsZW1lbnRzIHN1Y2ggYXMgYnV0dG9uc1xuICAgIG1pbi13aWR0aDogYXV0byAhaW1wb3J0YW50O1xuICB9XG5cbiAgPiAuYnRuIHt3aWR0aDogYXV0bzt9XG5cbiAgPiBpbnB1dCB7XG4gICAgd2lkdGg6IDEwMCU7IC8vID0gdGFrZSB1cCBhcyBtdWNoIHNwYWNlIGFzIHBvc3NpYmxlXG4gIH1cbn1cblxuJWwtdW5lcXVhbC1jZWxsLFxuLmwtdW5lcXVhbC1jZWxsIHtcbiAgQGluY2x1ZGUgbC11bmVxdWFsQ2VsbDtcbn1cblxuXG4vLyBUT0RPOiBSZXBsYWNlIHRyYW5zZm9ybSBzdHlsZXMgd2l0aCBmbGV4Ym94IGlmIGZlYXNpYmxlIGVsc2UgYWRkIGluZm8gb24gdXNhZ2Vcbi8vIFRyYW5zZm9ybVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT1cbkBtaXhpbiB0cmFuc2Zvcm1WZXJ0aWNhbENlbnRlciB7XG4gIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGVZKC01MCUpKTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IDUwJTtcbn1cblxuJXRyYW5zZm9ybS12ZXJ0aWNhbC1jZW50ZXIge1xuICBAaW5jbHVkZSB0cmFuc2Zvcm1WZXJ0aWNhbENlbnRlcjtcbn1cblxuLy8gc29tZXRpbWVzIHVzZWZ1bCBmb3IgYWJzb2x1dGVseSBwb3NpdGlvbmVkIGVsZW1lbnRzOlxuQG1peGluIHRyYW5zZm9ybUhvcml6b250YWxDZW50ZXIge1xuICBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlWCgtNTAlKSk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogNTAlO1xufVxuXG4ldHJhbnNmb3JtLWhvcml6b250YWwtY2VudGVyIHtcbiAgQGluY2x1ZGUgdHJhbnNmb3JtSG9yaXpvbnRhbENlbnRlcjtcbn1cblxuXG4vLyBCbG9jayBMYXlvdXRzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gVE9ETzogcmVwbGFjZSB3aXRoIGZsZXhib3ggYmFzZWQgbGF5b3V0XG5cbi8vIEJsb2NrLWxpc3QgKGJldHRlciBuYW1lPyBub3QganVzdCBmb3IgbGlzdHMpXG4vLyAtLS0tLS0tLS0tLS0tLVxuQG1peGluIGJsb2NrTGlzdCB7XG4gIGZvbnQtc2l6ZTogMCAhaW1wb3J0YW50OyAvLyByZW1vdmUgc3BhY2VzIGJldHdlZW4gaXRlbXNcblxuICAvLyBhbGxvdyBpdGVtcyB0byBiZSBldmVubHkgc3BhY2VkXG4gICY6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICA+ICo6bm90KC5uZy1oaWRlKSB7XG4gICAgZm9udC1zaXplOiAkZGVmYXVsdC1mb250LXNpemU7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWl4aW4ganVzdGlmaWVkQmxvY2sge1xuICBAaW5jbHVkZSBibG9ja0xpc3Q7XG4gIHRleHQtYWxpZ246IGp1c3RpZnkgIWltcG9ydGFudDsgLy8gcHJldmVudCBvdmVyLXJpZGVzIHdoaWNoIGJyZWFrIHRoZSBsYXlvdXRcbiAgdGV4dC1qdXN0aWZ5OiBkaXN0cmlidXRlLWFsbC1saW5lcztcblxuICA+ICoge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7IC8vIGRlZmF1bHQgdG8gb3ZlcnJpZGUganVzdGlmeVxuICAgIG1hcmdpbjogMDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyAvLyBkZWZhdWx0LCBtb2RpZnkgaWYgbmVlZGVkXG4gIH1cbn1cblxuLy8gSnVzdGlmaWVkIEJsb2NrcyAtLS0tXG4vLyBJTVBPUlRBTlQ6IG11c3QgYmUgYSBwaHlzaWNhbCBzcGFjZSBiZXR3ZWVuIGp1c3RpZmllZCBlbGVtZW50cywgdXNlIGFzIGV4dGVuc2lvbiBvbiBjb250YWluZXIgZWxlbWVudHMgb25seVxuLy8gRGVwcmVjYXRlZCwgdXNlIGwtanVzdGlmaWVkLWJsb2NrIGluc3RlYWRcbiVqdXN0aWZpZWQtYmxvY2sge1xuICBAaW5jbHVkZSBqdXN0aWZpZWRCbG9jaztcbn1cbiIsIi8qZG9jXG4tLS1cbnRpdGxlOiBDb2x1bW4gR3JpZFxucGFyZW50OiBsYXlvdXRcbm5hbWU6IHN1YkNvbHVtbkdyaWRcbi0tLVxuXG5Db2x1bW5zIGhhdmUgZml4ZWQgcGl4ZWwgd2lkdGggZ3V0dGVycyBidXQgZmxleGlibGUgcGVyY2VudGFnZS1iYXNlZCB3aWR0aHMuIENvbHVtbiBsYXlvdXRzIGNhbiBiZSBjaGFuZ2VkIGRlcGVuZGluZyBvbiBzY3JlZW4gd2lkdGggYnJlYWsgcG9pbnRzIHRvIGNyZWF0ZSByZXNwb25zaXZlIGxheW91dHMuXG5cbioqUmVzcG9uc2l2ZSBWaWV3czoqKjxicj5cbiAgKiBhbGw8YnI+XG4gICogbW9iaWxlPGJyPlxuICAqIHRhYmxldDxicj5cbiAgKiBkZXNrdG9wPGJyPlxuICAqIHdpZGU8YnI+XG4gICogbW9iaWxlLWFuZC10YWJsZXQ8YnI+XG4gICogdGFibGV0LWFuZC1kZXNrdG9wPGJyPlxuICAqIHRhYmxldC1hbmQtYWJvdmU8YnI+XG4gICogZGVza3RvcC1hbmQtYWJvdmVcblxuIyMjRXF1YWwgV2lkdGggQ29sdW1uc1xuXG5gYGBodG1sX2V4YW1wbGVcbjxkaXYgY2xhc3M9XCJjb2wtZ3JvdXAgYWxsLS0xLTJcIj5cbiAgPGRpdiBjbGFzcz1cImNvbFwiPjEvMiBDb250ZW50PC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJjb2xcIj4xLzIgQ29udGVudDwvZGl2PlxuPC9kaXY+PCEtLSAvLmNvbC1ncm91cCAtLT5cblxuPGRpdiBjbGFzcz1cImNvbC1ncm91cCBhbGwtLTEtM1wiPlxuICA8ZGl2IGNsYXNzPVwiY29sXCI+MS8zIENvbnRlbnQ8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImNvbFwiPjEvMyBDb250ZW50PC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJjb2xcIj4xLzMgQ29udGVudDwvZGl2PlxuPC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJjb2wtZ3JvdXAgYWxsLS0xLTRcIj5cbiAgPGRpdiBjbGFzcz1cImNvbFwiPjEvNCBDb250ZW50PC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJjb2xcIj4xLzQgQ29udGVudDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiY29sXCI+MS80IENvbnRlbnQ8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImNvbFwiPjEvNCBDb250ZW50PC9kaXY+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cImNvbC1ncm91cCBhbGwtLTEtNVwiPlxuICA8ZGl2IGNsYXNzPVwiY29sXCI+MS81IENvbnRlbnQ8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImNvbFwiPjEvNSBDb250ZW50PC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJjb2xcIj4xLzUgQ29udGVudDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiY29sXCI+MS81IENvbnRlbnQ8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImNvbFwiPjEvNSBDb250ZW50PC9kaXY+XG48L2Rpdj5cbmBgYFxuXG4jIyNVbmVxdWFsIFdpZHRoIENvbHVtbnNcblxuYGBgaHRtbF9leGFtcGxlXG48ZGl2IGNsYXNzPVwiY29sLWdyb3VwIGFsbC0tMS0zLWFuZC0yLTNcIj5cbiAgPGRpdiBjbGFzcz1cImNvbFwiPjEvMyBDb250ZW50PC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJjb2xcIj4yLzMgQ29udGVudDwvZGl2PlxuPC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJjb2wtZ3JvdXAgYWxsLS0yLTMtYW5kLTEtM1wiPlxuICA8ZGl2IGNsYXNzPVwiY29sXCI+Mi8zIENvbnRlbnQ8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImNvbFwiPjEvMyBDb250ZW50PC9kaXY+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cImNvbC1ncm91cCBhbGwtLTEtNC1hbmQtMy00XCI+XG4gIDxkaXYgY2xhc3M9XCJjb2xcIj4xLzQgQ29udGVudDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiY29sXCI+My80IENvbnRlbnQ8L2Rpdj5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwiY29sLWdyb3VwIGFsbC0tMy00LWFuZC0xLTRcIj5cbiAgPGRpdiBjbGFzcz1cImNvbFwiPjMvNCBDb250ZW50PC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJjb2xcIj4xLzQgQ29udGVudDwvZGl2PlxuPC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJjb2wtZ3JvdXAgYWxsLS0yLTUtYW5kLTMtNVwiPlxuICA8ZGl2IGNsYXNzPVwiY29sXCI+Mi81IENvbnRlbnQ8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImNvbFwiPjMvNSBDb250ZW50PC9kaXY+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cImNvbC1ncm91cCBhbGwtLTMtNS1hbmQtMi01XCI+XG4gIDxkaXYgY2xhc3M9XCJjb2xcIj4zLzUgQ29udGVudDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiY29sXCI+Mi81IENvbnRlbnQ8L2Rpdj5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwiY29sLWdyb3VwIGFsbC0tMS00LWFuZC0yLTQtYW5kLTEtNFwiPlxuICA8ZGl2IGNsYXNzPVwiY29sXCI+MS80IENvbnRlbnQ8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImNvbFwiPjIvNCBDb250ZW50PC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJjb2xcIj4xLzQgQ29udGVudDwvZGl2PlxuPC9kaXY+XG5gYGBcblxuIyMjRnVsbCBXaWR0aCBDb2x1bW5zXG5cblRoZSBmdWxsIHdpZHRoIGNvbG91bW4gbGF5b3V0IGlzIG1haW5seSB1c2VmdWwgZm9yIG1vYmlsZSB2aWV3cy5cblxuYGBgaHRtbF9leGFtcGxlXG48ZGl2IGNsYXNzPVwiY29sLWdyb3VwIGFsbC0tZnVsbFwiPlxuICA8ZGl2IGNsYXNzPVwiY29sXCI+RnVsbCB3aWR0aCBjb250ZW50PC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJjb2xcIj5GdWxsIHdpZHRoIGNvbnRlbnQ8L2Rpdj5cbjwvZGl2PlxuYGBgXG5cbiovXG5cblxuLy8gU2ltcGxlIEN1c3RvbSBGbHVpZCBDb2x1bW4gLyBHcmlkIFN5c3RlbVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vIENvbHVtbiBsYXlvdXRzOlxuLy8gLS0tLS0tLS0tLS0tLS0tLS1cbi8qXG4gIFZpZXdzOlxuICAqIGFsbFxuICAqIG1vYmlsZVxuICAqIHRhYmxldFxuICAqIGRlc2t0b3BcbiAgKiB3aWRlXG4gICogbW9iaWxlLWFuZC10YWJsZXRcbiAgKiB0YWJsZXQtYW5kLWRlc2t0b3BcbiAgKiB0YWJsZXQtYW5kLWFib3ZlXG4gICogZGVza3RvcC1hbmQtYWJvdmVcblxuICBMYXlvdXRzOlxuICBFcXVhbCB3aWR0aCBjb2x1bW5zIC1cbiAgKiBmdWxsXG4gICogMS0yXG4gICogMS0zXG4gICogMS00XG4gICogMS01XG4gIE1peGVkIHdpZHRoIGNvbHVtbnMgLVxuICAqIDEtMy1hbmQtMi0zXG4gICogMi0zLWFuZC0xLTNcbiAgKiAxLTQtYW5kLTMtNFxuICAqIDMtNC1hbmQtMS00XG4gICogMS00LWFuZC0yLTQtYW5kLTEtNFxuICAqIDItNS1hbmQtMy01XG4gICogMy01LWFuZC0yLTVcblxuICBIb3cgdG8gdXNlOlxuICBBZGQgZXh0cmEgY2xhc3NlcyB0byBjb2wtZ3JvdXAgY29udGFpbmVyIHRvIHNldCB0aGUgY29sdW1uIGxheW91dC5cblxuICBFeGFtcGxlczpcbiAgKGhhbGYgd2lkdGggY29sdW1ucyBpbiBhbGwgc2NyZWVuIHNpemVzKVxuICA8ZGl2IGNsYXNzPVwiY29sLWdyb3VwIGZ1bGwtLTEtMlwiPlxuICAgIDxkaXYgY2xhc3M9XCJjb2xcIj5UaGlzIGlzIGEgY29sdW1uLjwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJjb2xcIj5UaGlzIGlzIGEgY29sdW1uLjwvZGl2PlxuICA8L2Rpdj5cblxuICAoZnVsbCB3aWR0aCBjb2x1bW5zIGluIG1vYmlsZSwgaGFsZiB3aWR0aCBjb2x1bW5zIGluIHRhYmxldCwgdGhpcmQgd2lkdGggY29sdW1ucyBpbiBkZXNrdG9wIGFuZCBhYm92ZSlcbiAgPGRpdiBjbGFzcz1cImNvbC1ncm91cCBtb2JpbGUtLWZ1bGwgdGFibGV0LS0xLTIgZGVza3RvcC1hbmQtYWJvdmUtMS0zXCI+XG4gICAgPGRpdiBjbGFzcz1cImNvbFwiPlRoaXMgaXMgYSBjb2x1bW4uPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImNvbFwiPlRoaXMgaXMgYSBjb2x1bW4uPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImNvbFwiPlRoaXMgaXMgYSBjb2x1bW4uPC9kaXY+XG4gIDwvZGl2PlxuXG4gIE5PVEVTOlxuICAqIC5jb2wgZWxlbWVudHMgY2FuIGFsc28gYmUgYSAuY29sLWdyb3VwIGZvciBjcmVhdGluZyBuZXN0ZWQgY29sdW1ucyxcbiAgKiAuY29sIGFuZCAuY29sLWdyb3VwIGVsZW1lbnRzIGRvbid0IGhhdmUgdG8gYmUgZGl2IHRhZ3NcbiovXG5cblxuLy8gVE9ETzogQ2xlYW4gdXAgcmVwZXRpdGlvdXMgY29sdW1uIGxheW91dCBjb2RlIGFuZCB1c2Ugc29tZSB0eXBlIG9mIHNhc3MgZnVuY3Rpb24gYW5kIGxvb3BpbmcgdG8gZ2VuZXJhdGVcblxuLy8gRml4IElFIGxheW91dCBnbGl0Y2g6XG5AbWl4aW4gY29sTGFzdCB7XG4gIGZsZXg6IDEgMSAwO1xuICB3aWR0aDogYXV0bztcbn1cblxuQG1peGluIGNvbEdyb3VwTGF5b3V0cygkY29sLWd1dHRlcjogJGNvbC1ndXR0ZXIpIHtcbiAgJi0tZnVsbCB7XG4gICAgPiAuY29sIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICArIC5jb2wge1xuICAgICAgICBtYXJnaW4tdG9wOiAkY29sLWd1dHRlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmLS0xLTIgPiAuY29sIHtcbiAgICB3aWR0aDogY2FsYyggKDEwMCUgKiAxIC8gMiAtICN7JGNvbC1ndXR0ZXJ9KSArICN7JGNvbC1ndXR0ZXJ9IC8gMiApO1xuICAgIG1heC13aWR0aDogY2FsYyggKDEwMCUgKiAxIC8gMiAtICN7JGNvbC1ndXR0ZXJ9KSArICN7JGNvbC1ndXR0ZXJ9IC8gMiApO1xuXG4gICAgJjpub3QoOm50aC1jaGlsZCgybikpICsgLmNvbCB7bWFyZ2luLWxlZnQ6ICRjb2wtZ3V0dGVyO31cbiAgICAmOm50aC1jaGlsZCgybikge0BpbmNsdWRlIGNvbExhc3Q7fVxuXG4gICAgJjpmaXJzdC1jaGlsZCwgJjpudGgtY2hpbGQoMikge21hcmdpbi10b3A6IDA7fVxuICAgICY6bnRoLWNoaWxkKG4gKyAzKSB7bWFyZ2luLXRvcDogJGNvbC1ndXR0ZXI7fVxuICB9XG5cbiAgJi0tMS0zID4gLmNvbCB7XG4gICAgd2lkdGg6IGNhbGMoICgxMDAlICogMSAvIDMgLSAjeyRjb2wtZ3V0dGVyfSkgKyAjeyRjb2wtZ3V0dGVyfSAvIDMgKTtcbiAgICBtYXgtd2lkdGg6IGNhbGMoICgxMDAlICogMSAvIDMgLSAjeyRjb2wtZ3V0dGVyfSkgKyAjeyRjb2wtZ3V0dGVyfSAvIDMgKTtcblxuICAgICY6bm90KDpudGgtY2hpbGQoM24pKSArIC5jb2wge21hcmdpbi1sZWZ0OiAkY29sLWd1dHRlcjt9XG4gICAgJjpudGgtY2hpbGQoM24pIHtAaW5jbHVkZSBjb2xMYXN0O31cblxuICAgICY6Zmlyc3QtY2hpbGQsICY6bnRoLWNoaWxkKDIpLCAmOm50aC1jaGlsZCgzKSB7bWFyZ2luLXRvcDogMDt9XG4gICAgJjpudGgtY2hpbGQobiArIDQpIHttYXJnaW4tdG9wOiAkY29sLWd1dHRlcjt9XG4gIH1cblxuICAmLS0xLTQgPiAuY29sIHtcbiAgICB3aWR0aDogY2FsYyggKDEwMCUgKiAxIC8gNCAtICN7JGNvbC1ndXR0ZXJ9KSArICN7JGNvbC1ndXR0ZXJ9IC8gNCApO1xuICAgIG1heC13aWR0aDogY2FsYyggKDEwMCUgKiAxIC8gNCAtICN7JGNvbC1ndXR0ZXJ9KSArICN7JGNvbC1ndXR0ZXJ9IC8gNCApO1xuXG4gICAgJjpub3QoOm50aC1jaGlsZCg0bikpICsgLmNvbCB7bWFyZ2luLWxlZnQ6ICRjb2wtZ3V0dGVyO31cbiAgICAmOm50aC1jaGlsZCg0bikge0BpbmNsdWRlIGNvbExhc3Q7fVxuXG4gICAgJjpmaXJzdC1jaGlsZCwgJjpudGgtY2hpbGQoMiksICY6bnRoLWNoaWxkKDMpLCAmOm50aC1jaGlsZCg0KSB7bWFyZ2luLXRvcDogMDt9XG4gICAgJjpudGgtY2hpbGQobiArIDUpIHttYXJnaW4tdG9wOiAkY29sLWd1dHRlcjt9XG4gIH1cblxuICAmLS0xLTUgPiAuY29sIHtcbiAgICB3aWR0aDogY2FsYyggKDEwMCUgKiAxIC8gNSAtICN7JGNvbC1ndXR0ZXJ9KSArICN7JGNvbC1ndXR0ZXJ9IC8gNSApO1xuICAgIG1heC13aWR0aDogY2FsYyggKDEwMCUgKiAxIC8gNSAtICN7JGNvbC1ndXR0ZXJ9KSArICN7JGNvbC1ndXR0ZXJ9IC8gNSApO1xuXG4gICAgJjpub3QoOm50aC1jaGlsZCg1bikpICsgLmNvbCB7bWFyZ2luLWxlZnQ6ICRjb2wtZ3V0dGVyO31cbiAgICAmOm50aC1jaGlsZCg1bikge0BpbmNsdWRlIGNvbExhc3Q7fVxuXG4gICAgJjpmaXJzdC1jaGlsZCwgJjpudGgtY2hpbGQoMiksICY6bnRoLWNoaWxkKDMpLCAmOm50aC1jaGlsZCg0KSwgJjpudGgtY2hpbGQoNSkge21hcmdpbi10b3A6IDA7fVxuICAgICY6bnRoLWNoaWxkKG4gKyA2KSB7bWFyZ2luLXRvcDogJGNvbC1ndXR0ZXI7fVxuICB9XG5cbiAgJi0tMS0zLWFuZC0yLTMgPiAuY29sIHtcbiAgICAmOm50aC1jaGlsZCgybiArIDEpIHt3aWR0aDogY2FsYyggKDEwMCUgKiAxIC8gMyAtICN7JGNvbC1ndXR0ZXJ9KSArICN7JGNvbC1ndXR0ZXJ9IC8gMiApO31cblxuICAgICY6bnRoLWNoaWxkKDJuKSB7XG4gICAgICBAaW5jbHVkZSBjb2xMYXN0O1xuICAgICAgbWF4LXdpZHRoOiBjYWxjKCAoMTAwJSAqIDIgLyAzIC0gI3skY29sLWd1dHRlcn0pICsgI3skY29sLWd1dHRlcn0gLyAyICk7XG4gICAgfVxuXG4gICAgJjpub3QoOm50aC1jaGlsZCgybikpICsgLmNvbCB7bWFyZ2luLWxlZnQ6ICRjb2wtZ3V0dGVyO31cblxuICAgICY6Zmlyc3QtY2hpbGQsICY6bnRoLWNoaWxkKDIpIHttYXJnaW4tdG9wOiAwO31cbiAgICAmOm50aC1jaGlsZChuICsgMykge21hcmdpbi10b3A6ICRjb2wtZ3V0dGVyO31cbiAgfVxuXG4gICYtLTItMy1hbmQtMS0zID4gLmNvbCB7XG4gICAgJjpudGgtY2hpbGQoMm4gKyAxKSB7d2lkdGg6IGNhbGMoICgxMDAlICogMiAvIDMgLSAjeyRjb2wtZ3V0dGVyfSkgKyAjeyRjb2wtZ3V0dGVyfSAvIDIgKTt9XG5cbiAgICAmOm50aC1jaGlsZCgybikge1xuICAgICAgQGluY2x1ZGUgY29sTGFzdDtcbiAgICAgIG1heC13aWR0aDogY2FsYyggKDEwMCUgKiAxIC8gMyAtICN7JGNvbC1ndXR0ZXJ9KSArICN7JGNvbC1ndXR0ZXJ9IC8gMiApO1xuICAgIH1cblxuICAgICY6bm90KDpudGgtY2hpbGQoMm4pKSArIC5jb2wge21hcmdpbi1sZWZ0OiAkY29sLWd1dHRlcjt9XG5cbiAgICAmOmZpcnN0LWNoaWxkLCAmOm50aC1jaGlsZCgyKSB7bWFyZ2luLXRvcDogMDt9XG4gICAgJjpudGgtY2hpbGQobiArIDMpIHttYXJnaW4tdG9wOiAkY29sLWd1dHRlcjt9XG4gIH1cblxuICAmLS0xLTQtYW5kLTMtNCA+IC5jb2wge1xuICAgICY6bnRoLWNoaWxkKDJuICsgMSkge3dpZHRoOiBjYWxjKCAoMTAwJSAqIDEgLyA0IC0gI3skY29sLWd1dHRlcn0pICsgI3skY29sLWd1dHRlcn0gLyAyICk7fVxuXG4gICAgJjpudGgtY2hpbGQoMm4pIHtcbiAgICAgIEBpbmNsdWRlIGNvbExhc3Q7XG4gICAgICBtYXgtd2lkdGg6IGNhbGMoICgxMDAlICogMyAvIDQgLSAjeyRjb2wtZ3V0dGVyfSkgKyAjeyRjb2wtZ3V0dGVyfSAvIDIgKTtcbiAgICB9XG5cbiAgICAmOm5vdCg6bnRoLWNoaWxkKDJuKSkgKyAuY29sIHttYXJnaW4tbGVmdDogJGNvbC1ndXR0ZXI7fVxuXG4gICAgJjpmaXJzdC1jaGlsZCwgJjpudGgtY2hpbGQoMikge21hcmdpbi10b3A6IDA7fVxuICAgICY6bnRoLWNoaWxkKG4gKyAzKSB7bWFyZ2luLXRvcDogJGNvbC1ndXR0ZXI7fVxuICB9XG5cbiAgJi0tMy00LWFuZC0xLTQgPiAuY29sIHtcbiAgICAmOm50aC1jaGlsZCgybiArIDEpIHt3aWR0aDogY2FsYyggKDEwMCUgKiAzIC8gNCAtICN7JGNvbC1ndXR0ZXJ9KSArICN7JGNvbC1ndXR0ZXJ9IC8gMiApO31cblxuICAgICY6bnRoLWNoaWxkKDJuKSB7XG4gICAgICBAaW5jbHVkZSBjb2xMYXN0O1xuICAgICAgbWF4LXdpZHRoOiBjYWxjKCAoMTAwJSAqIDEgLyA0IC0gI3skY29sLWd1dHRlcn0pICsgI3skY29sLWd1dHRlcn0gLyAyICk7XG4gICAgfVxuXG4gICAgJjpub3QoOm50aC1jaGlsZCgybikpICsgLmNvbCB7bWFyZ2luLWxlZnQ6ICRjb2wtZ3V0dGVyO31cblxuICAgICY6Zmlyc3QtY2hpbGQsICY6bnRoLWNoaWxkKDIpIHttYXJnaW4tdG9wOiAwO31cbiAgICAmOm50aC1jaGlsZChuICsgMykge21hcmdpbi10b3A6ICRjb2wtZ3V0dGVyO31cbiAgfVxuXG4gICYtLTEtNC1hbmQtMi00LWFuZC0xLTQgPiAuY29sIHtcbiAgICAmOm50aC1jaGlsZCgzbiArIDEpIHt3aWR0aDogY2FsYyggKDEwMCUgKiAxIC8gNCAtICN7JGNvbC1ndXR0ZXJ9KSArICN7JGNvbC1ndXR0ZXJ9IC8gMyApO31cbiAgICAmOm50aC1jaGlsZCgzbiAtIDEpIHt3aWR0aDogY2FsYyggKDEwMCUgKiAyIC8gNCAtICN7JGNvbC1ndXR0ZXJ9KSArICN7JGNvbC1ndXR0ZXJ9IC8gMyApO31cblxuICAgICY6bnRoLWNoaWxkKDNuKSB7XG4gICAgICBAaW5jbHVkZSBjb2xMYXN0O1xuICAgICAgbWF4LXdpZHRoOiBjYWxjKCAoMTAwJSAqIDEgLyA0IC0gI3skY29sLWd1dHRlcn0pICsgI3skY29sLWd1dHRlcn0gLyAzICk7XG4gICAgfVxuXG4gICAgJjpub3QoOm50aC1jaGlsZCgzbikpICsgLmNvbCB7bWFyZ2luLWxlZnQ6ICRjb2wtZ3V0dGVyO31cblxuICAgICY6Zmlyc3QtY2hpbGQsICY6bnRoLWNoaWxkKDIpLCAmOm50aC1jaGlsZCgzKSB7bWFyZ2luLXRvcDogMDt9XG4gICAgJjpudGgtY2hpbGQobiArIDQpIHttYXJnaW4tdG9wOiAkY29sLWd1dHRlcjt9XG4gIH1cblxuICAmLS0yLTUtYW5kLTMtNSA+IC5jb2wge1xuICAgICY6bnRoLWNoaWxkKDJuICsgMSkge3dpZHRoOiBjYWxjKCAoMTAwJSAqIDIgLyA1IC0gI3skY29sLWd1dHRlcn0pICsgI3skY29sLWd1dHRlcn0gLyAyICk7fVxuXG4gICAgJjpudGgtY2hpbGQoMm4pIHtcbiAgICAgIEBpbmNsdWRlIGNvbExhc3Q7XG4gICAgICBtYXgtd2lkdGg6IGNhbGMoICgxMDAlICogMyAvIDUgLSAjeyRjb2wtZ3V0dGVyfSkgKyAjeyRjb2wtZ3V0dGVyfSAvIDIgKTtcbiAgICB9XG5cbiAgICAmOm5vdCg6bnRoLWNoaWxkKDJuKSkgKyAuY29sIHttYXJnaW4tbGVmdDogJGNvbC1ndXR0ZXI7fVxuXG4gICAgJjpmaXJzdC1jaGlsZCwgJjpudGgtY2hpbGQoMikge21hcmdpbi10b3A6IDA7fVxuICAgICY6bnRoLWNoaWxkKG4gKyAzKSB7bWFyZ2luLXRvcDogJGNvbC1ndXR0ZXI7fVxuICB9XG5cbiAgJi0tMy01LWFuZC0yLTUgPiAuY29sIHtcbiAgICAmOm50aC1jaGlsZCgybiArIDEpIHt3aWR0aDogY2FsYyggKDEwMCUgKiAzIC8gNSAtICN7JGNvbC1ndXR0ZXJ9KSArICN7JGNvbC1ndXR0ZXJ9IC8gMiApO31cblxuICAgICY6bnRoLWNoaWxkKDJuKSB7XG4gICAgICBAaW5jbHVkZSBjb2xMYXN0O1xuICAgICAgbWF4LXdpZHRoOiBjYWxjKCAoMTAwJSAqIDIgLyA1IC0gI3skY29sLWd1dHRlcn0pICsgI3skY29sLWd1dHRlcn0gLyAyICk7XG4gICAgfVxuXG4gICAgJjpub3QoOm50aC1jaGlsZCgybikpICsgLmNvbCB7bWFyZ2luLWxlZnQ6ICRjb2wtZ3V0dGVyO31cblxuICAgICY6Zmlyc3QtY2hpbGQsICY6bnRoLWNoaWxkKDIpIHttYXJnaW4tdG9wOiAwO31cbiAgICAmOm50aC1jaGlsZChuICsgMykge21hcmdpbi10b3A6ICRjb2wtZ3V0dGVyO31cbiAgfVxuXG4gIC8vIENvbHVtbnMgU3R5bGUgVmFyaWF0aW9uczpcbiAgLy8gUnVsZSBsaW5lIHNlcGFyYXRlZCBjb2x1bW5zOlxuICAmLS1ydWxlZCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgPiAuY29sOm50aC1jaGlsZCgyKTpiZWZvcmUsXG4gICAgPiAuY29sOm50aC1jaGlsZCgzKTpiZWZvcmUsXG4gICAgPiAuY29sOm50aC1jaGlsZCg0KTpiZWZvcmUge1xuICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAkZ3JleS1ib3JkZXItY29sb3I7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBtYXJnaW4tbGVmdDogKC0kY29sLWd1dHRlciAvIDIpO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgYm90dG9tOiAwO1xuICAgIH1cbiAgfVxuXG4gICYtLWNlbnRlcmVkIHtcbiAgICA+IC5jb2wge1xuICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG5cbiAgICAgICsgLmNvbCB7bWFyZ2luLXRvcDogMWVtO31cbiAgICB9XG4gIH1cblxuICAvLyByZXZlcnNlIG9yZGVyIG9mIGNvbHVtbnNcbiAgJi0tY29sLXJldmVyc2Uge1xuICAgIEBpbmNsdWRlIGZsZXhEaXJlY3Rpb24oY29sdW1uLXJldmVyc2UpO1xuICB9XG59XG5cbi8vIChOb3RlOiBUaGlzIGNvbHVtbiBzeXN0ZW0gY2FuIGJlIHVzZWQgYXMgZXh0ZW5kZWQgY2xhc3NlcyBhcyB3ZWxsLiBCZXdhcmUgb2YgZXhjZWVkaW5nIHNlbGV0b3IgbGltaXQgaW4gSUU5IGFuZCBiZWxvdyB3aGljaCBjYW4gY2F1c2Ugc29tZSBzdHlsZXMgdG8gZmFpbCB0byBiZSBhcHBsaWVkIGFsdGhvdWdoIGZlbHhib3ggbGF5b3V0cyB3aWxsIG9ubHkgd29yayBmb3IgSUUxMCBhbmQgYWJvdmUgYW55d2F5LilcblxuLmNvbC1ncm91cCB7XG4gIEBpbmNsdWRlIGRpc3BsYXlGbGV4O1xuICBAaW5jbHVkZSBmbGV4V3JhcCh3cmFwKTtcblxuICAvLyBkZWZhdWx0IGd1dHRlcnM6XG4gICY6bm90KC5jb21wYWN0LWd1dHRlcnMpIHtcbiAgICAvLyBTZXQgY29sIHdpZHRoczpcbiAgICAvLyBBcHBseSB0byBhbGwgdmlld3M6XG4gICAgJi5hbGwge0BpbmNsdWRlIGNvbEdyb3VwTGF5b3V0czt9XG5cbiAgICAvLyBTaW1wbGU6XG4gICAgQGluY2x1ZGUgYnAobW9iaWxlKSB7Ji5tb2JpbGUge0BpbmNsdWRlIGNvbEdyb3VwTGF5b3V0czt9fVxuICAgIEBpbmNsdWRlIGJwKHRhYmxldCkgeyYudGFibGV0IHtAaW5jbHVkZSBjb2xHcm91cExheW91dHM7fX1cbiAgICBAaW5jbHVkZSBicChkZXNrdG9wKSB7Ji5kZXNrdG9wIHtAaW5jbHVkZSBjb2xHcm91cExheW91dHM7fX1cbiAgICBAaW5jbHVkZSBicCh3aWRlKSB7Ji53aWRlIHtAaW5jbHVkZSBjb2xHcm91cExheW91dHM7fX1cblxuICAgIC8vIENvbXBvdW5kOlxuICAgIEBpbmNsdWRlIGJwKG1vYmlsZS1hbmQtdGFibGV0KSB7Ji5tb2JpbGUtYW5kLXRhYmxldCB7QGluY2x1ZGUgY29sR3JvdXBMYXlvdXRzO319XG4gICAgQGluY2x1ZGUgYnAodGFibGV0LWFuZC1kZXNrdG9wKSB7Ji50YWJsZXQtYW5kLWRlc2t0b3Age0BpbmNsdWRlIGNvbEdyb3VwTGF5b3V0czt9fVxuXG4gICAgLy8gTWluaW11bXM6XG4gICAgQGluY2x1ZGUgYnAodGFibGV0LWFuZC1hYm92ZSkgeyYudGFibGV0LWFuZC1hYm92ZSB7QGluY2x1ZGUgY29sR3JvdXBMYXlvdXRzO319XG4gICAgQGluY2x1ZGUgYnAoZGVza3RvcC1hbmQtYWJvdmUpIHsmLmRlc2t0b3AtYW5kLWFib3ZlIHtAaW5jbHVkZSBjb2xHcm91cExheW91dHM7fX1cbiAgfVxuXG4gIC8vIGNvbXBhY3QgZ3V0dGVyczpcbiAgJi5jb21wYWN0LWd1dHRlcnMge1xuICAgIC8vIFNldCBjb2wgd2lkdGhzOlxuICAgIC8vIEFwcGx5IHRvIGFsbCB2aWV3czpcbiAgICAmLmFsbCB7QGluY2x1ZGUgY29sR3JvdXBMYXlvdXRzKCRoYWxmLWNvbC1ndXR0ZXIpO31cblxuICAgIC8vIFNpbXBsZTpcbiAgICBAaW5jbHVkZSBicChtb2JpbGUpIHsmLm1vYmlsZSB7QGluY2x1ZGUgY29sR3JvdXBMYXlvdXRzKCRoYWxmLWNvbC1ndXR0ZXIpO319XG4gICAgQGluY2x1ZGUgYnAodGFibGV0KSB7Ji50YWJsZXQge0BpbmNsdWRlIGNvbEdyb3VwTGF5b3V0cygkaGFsZi1jb2wtZ3V0dGVyKTt9fVxuICAgIEBpbmNsdWRlIGJwKGRlc2t0b3ApIHsmLmRlc2t0b3Age0BpbmNsdWRlIGNvbEdyb3VwTGF5b3V0cygkaGFsZi1jb2wtZ3V0dGVyKTt9fVxuICAgIEBpbmNsdWRlIGJwKHdpZGUpIHsmLndpZGUge0BpbmNsdWRlIGNvbEdyb3VwTGF5b3V0cygkaGFsZi1jb2wtZ3V0dGVyKTt9fVxuXG4gICAgLy8gQ29tcG91bmQ6XG4gICAgQGluY2x1ZGUgYnAobW9iaWxlLWFuZC10YWJsZXQpIHsmLm1vYmlsZS1hbmQtdGFibGV0IHtAaW5jbHVkZSBjb2xHcm91cExheW91dHMoJGhhbGYtY29sLWd1dHRlcik7fX1cbiAgICBAaW5jbHVkZSBicCh0YWJsZXQtYW5kLWRlc2t0b3ApIHsmLnRhYmxldC1hbmQtZGVza3RvcCB7QGluY2x1ZGUgY29sR3JvdXBMYXlvdXRzKCRoYWxmLWNvbC1ndXR0ZXIpO319XG5cbiAgICAvLyBNaW5pbXVtczpcbiAgICBAaW5jbHVkZSBicCh0YWJsZXQtYW5kLWFib3ZlKSB7Ji50YWJsZXQtYW5kLWFib3ZlIHtAaW5jbHVkZSBjb2xHcm91cExheW91dHMoJGhhbGYtY29sLWd1dHRlcik7fX1cbiAgICBAaW5jbHVkZSBicChkZXNrdG9wLWFuZC1hYm92ZSkgeyYuZGVza3RvcC1hbmQtYWJvdmUge0BpbmNsdWRlIGNvbEdyb3VwTGF5b3V0cygkaGFsZi1jb2wtZ3V0dGVyKTt9fVxuICB9XG59XG5cbi8vIG1vZGlmeSBpbmRpdmlkdWFsIGNvbCBsYXlvdXQ6XG4uY29sIHtcbiAgQGluY2x1ZGUgYnAobW9iaWxlKSB7XG4gICAgJi5tb2JpbGUtLWZ1bGwge1xuICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIGJwKHRhYmxldCkge1xuICAgICYudGFibGV0LS1mdWxsIHtcbiAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBicChtb2JpbGUtYW5kLXRhYmxldCkge1xuICAgICYubW9iaWxlLWFuZC10YWJsZXQtLWZ1bGwge1xuICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gIC8vIEFwcGx5IHRvIGFsbCB2aWV3czpcbiAgJi5hbGwtLWZ1bGwge1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIH1cblxuICAvLyByZWZhY3RvciAoYXBwbGllcyBtYWlubHkgdG8gY29udGVudC1zZWN0aW9uIGNvbnRhaW5lciB3aGljaCBuZWVkcyB0byBiZSB1cGRhdGVkKVxuICA+IDpmaXJzdC1jaGlsZCB7bWFyZ2luLXRvcDogMDt9XG4gID4gOmxhc3QtY2hpbGQge21hcmdpbi1ib3R0b206IDA7fVxufSIsIi8qZG9jXG4tLS1cbnRpdGxlOiBTcGFjaW5nXG5uYW1lOiBzcGFjaW5nXG5jYXRlZ29yeTogUGF0dGVybnNcbi0tLVxuXG5TcGFjaW5nID0gTWFyZ2lucyBvciBndXR0ZXJzIGJldHdlZW4gYmxvY2tzIG9mIGNvbnRlbnQgb3IgdGV4dC90eXBvZ3JhcGhpYyBlbGVtZW50c1xuKi9cblxuLypkb2Ncbi0tLVxudGl0bGU6IFR5cG9ncmFwaGljIFNwYWNpbmdcbnBhcmVudDogc3BhY2luZ1xubmFtZTogc3ViVHlwb2dyYXBoaWNTcGFjaW5nXG4tLS1cblxuVmVydGljYWwgKGFuZCBzb21ldGltZXMgaG9yaXpvbnRhbCkgc3BhY2luZyBiZXR3ZWVuIHR5cG9ncmFwaGljIGVsZW1lbnRzIGluY2x1ZGluZyBoMSAtIGg2IGhlYWRlcnMsIHBhcmFncmFwaHMsIGxpc3RzLCBldGMuXG5cbk1hcmdpbiBzcGFjZSBpcyBhZGRlZCBcImJldHdlZW5cIiB0ZXh0IGVsZW1lbnRzIGluc3RlYWQgb2YganVzdCB0byB0aGUgYm90dG9tIG9yIHRvcCBvZiBhbGwgZWxlbWVudHMuIFRoaXMgcHJldmVudHMgdGhlIGZpcnN0IGFuZCBsYXN0IGVsZW1lbnRzIGluc2lkZSBhIGNvbnRhaW5lciBmcm9tIGhhdmluZyB0b3Agb3IgYm90dG9tIG1hcmdpbnMgcmVzcGVjdGl2ZWx5IHNvIHRoYXQgY29udGFpbmVycyB3aWxsIGh1ZyB0ZXh0IGNvbnRlbnRzLiAoVW5pZm9ybSBwYWRkaW5nIGNhbiB0aGVuIGJlIGVhc2lseSBhZGRlZCB0byB0aGUgY29udGFpbmVyIGVsZW1lbnQgaXRzZWxmIGFzIG5lZWRlZCBmb3IgYSBwYXJ0aWN1bGFyIGRlc2lnbikuXG5cblR5cG9ncmFwaGljIHNwYWNpbmcgdXNlcyBlbSB1bml0cyBzbyBpcyBiYXNlZCBvbiBlYWNoIGVsZW1lbnQncyBpbmRpdmlkdWFsIGZvbnQtc2l6ZS4gSGVhZGVycyAoaDEgLSBoNikgaGF2ZSB3aWRlciB0b3AgbWFyZ2lucyB3aGVuIGNvbWJpbmVkIHdpdGggb3RoZXIgbm9uLWhlYWRlciB0ZXh0IGVsZW1lbnRzIGFib3ZlIHRoZW0uXG5cblRoaXMgc3BhY2luZyBzeXN0ZW0gaXMgYmFzZWQgb2ZmIDxhIGhyZWY9XCJodHRwOi8vYWxpc3RhcGFydC5jb20vYXJ0aWNsZS9heGlvbWF0aWMtY3NzLWFuZC1sb2JvdG9taXplZC1vd2xzXCIgdGFyZ2V0PVwiX2JsYW5rXCI+XCJBeGlvbWF0aWMgQ1NTIGFuZCBMb2JvdG9taXplZCBPd2xzXCI8L2E+IGJ1dCBpcyBtb3JlIHRhcmdldGVkIHRvIHRvIHRleHQgcmVsYXRlZCBlbGVtZW50cyBpbnN0ZWFkIG9mIGJlaW5nIGFwcGxpZWQgdG8gYWxsIGh0bWwgZWxlbWVudHMuXG5cbmBgYGh0bWxfZXhhbXBsZVxuPGgxPkhlYWRlciAxPC9oMT5cbjxwPkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNpY2luZyBlbGl0LiBSYXRpb25lIGRlbGVjdHVzLCBtYWduaSwgdm9sdXB0YXRlIGJsYW5kaXRpaXMgYW5pbWkgaXRhcXVlIGFtZXQgcmVwcmVoZW5kZXJpdCBmdWdhIGFsaXF1YW0gdmVyaXRhdGlzLjwvcD5cbjxwPlNhZXBlIHF1YXNpIG9mZmljaWlzIG1vbGxpdGlhIG1hZ25hbSwgZXNzZSByYXRpb25lIGl0YXF1ZSwgZmFjZXJlIG1heGltZSBsYWJvcmlvc2FtIHZlbGl0IHBhcmlhdHVyIHF1aWEgcmVwdWRpYW5kYWUgdmVyaXRhdGlzIG1vZGkgbGFib3J1bSBlbGlnZW5kaSBhcGVyaWFtLjwvcD5cblxuPGgyPkhlYWRlciAyPC9oMj5cbjxwPlNhZXBlIHF1YXNpIG9mZmljaWlzIG1vbGxpdGlhIG1hZ25hbSwgZXNzZSByYXRpb25lIGl0YXF1ZSwgZmFjZXJlIG1heGltZSBsYWJvcmlvc2FtIHZlbGl0IHBhcmlhdHVyIHF1aWEgcmVwdWRpYW5kYWUgdmVyaXRhdGlzIG1vZGkgbGFib3J1bSBlbGlnZW5kaSBhcGVyaWFtLjwvcD5cblxuPGgyPkhlYWRlciAyPC9oMj5cbjxoMz5IZWFkZXIgMyBTdWJoZWFkZXI8L2gzPlxuPHA+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2ljaW5nIGVsaXQuIFJhdGlvbmUgZGVsZWN0dXMsIG1hZ25pLCB2b2x1cHRhdGUgYmxhbmRpdGlpcyBhbmltaSBpdGFxdWUgYW1ldCByZXByZWhlbmRlcml0IGZ1Z2EgYWxpcXVhbSB2ZXJpdGF0aXMuPC9wPlxuPHA+U2FlcGUgcXVhc2kgb2ZmaWNpaXMgbW9sbGl0aWEgbWFnbmFtLCBlc3NlIHJhdGlvbmUgaXRhcXVlLCBmYWNlcmUgbWF4aW1lIGxhYm9yaW9zYW0gdmVsaXQgcGFyaWF0dXIgcXVpYSByZXB1ZGlhbmRhZSB2ZXJpdGF0aXMgbW9kaSBsYWJvcnVtIGVsaWdlbmRpIGFwZXJpYW0uPC9wPlxuPHA+TmVjZXNzaXRhdGlidXMgYXV0IHZlbCBkb2xvcmVtIGlwc2EgaWQgbmVtbyBhcmNoaXRlY3RvIGFtZXQgbmloaWwgbGliZXJvLCByZXBlbGxlbmR1cyBjb25zZWN0ZXR1ciB2ZW5pYW0gZG9sb3J1bSwgdW5kZSBxdW9zIGRvbG9yIG1hZ25hbSBsYWJvcmUhPC9wPlxuYGBgXG4qL1xuXG4vKmRvY1xuLS0tXG50aXRsZTogQmxvY2sgLyBHdXR0ZXIgU3BhY2luZ1xucGFyZW50OiBzcGFjaW5nXG5uYW1lOiBzdWJCbG9ja1NwYWNpbmdcbi0tLVxuXG5WZXJ0aWNhbCBhbmQgaG9yaXpvbnRhbCBzcGFjaW5nIGJldHdlZW4gYmxvY2tzIG9mIGNvbnRlbnQgc3VjaCBhcyBndXR0ZXJzIGJldHdlZW4gY29sdW1ucyBvciBtYXJnaW5zIGJldHdlZW4gZ3JvdXBzIG9mIHJlbGF0ZWQgY29udGVudC5cblxuVXNlcyBmaXhlZCB1bml0cyBpbnN0ZWFkIG9mIGVtcyBzbyB0aGF0IHNwYWNpbmcgaXMgY29uc2lzdGVudCBhbmQgaW5kZXBlbmRhbnQgb2YgYW4gZWxlbWVudCdzIHRleHQgc2l6ZS5cblxuPHN0cm9uZz5UT0RPOjwvc3Ryb25nPiBEb2N1bWVudCBhbmQgYmV0dGVyIGRlZmluZSBzdGFuZGFyZGl6ZWQgZ3V0dGVyIHNwYWNpbmcuIChjdXJyZW50bHkgYmFzZWQgb24gd2lkdGggb2YgMjBweCBmb3IgY29sdW1uIGd1dHRlcnMsIGV0Yy4pXG5cbiovXG5cblxuLy8gVE9ETzogVXBkYXRlIHBsYWNlaG9sZGVyIG5hbWVzIGFuZCBhZGQgdXRpbGl0eSBjbGFzc2VzXG5cbi8vIENvbnRlbnQgU3BhY2luZ1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFwibG9ib3RvbWl6ZWQgb3dsXCIgc3BhY2luZyAtLS0tXG5cbi8vIFRZUE9HUkFQSElDIFNQQUNJTkc6XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIHZlcnRpY2FsIHNwYWNlIGJldHdlZW46XG4vLyAoYXBwbHkgdG8gZWxlbWVudHMgdG8gYmUgc3BhY2VkKVxuJXZlcnQtdGV4dC1zcGFjaW5nICsgKixcbiogKyAldmVydC10ZXh0LXNwYWNpbmcge1xuICBtYXJnaW4tdG9wOiAkdGV4dC1zcGFjZTtcbn1cblxuJXZlcnQtdGV4dC1zcGFjaW5nLWNvbXBhY3QgKyAqLFxuKiArICV2ZXJ0LXRleHQtc3BhY2luZy1jb21wYWN0IHtcbiAgbWFyZ2luLXRvcDogJHRleHQtc3BhY2UtY29tcGFjdDtcbn1cblxuJXZlcnQtdGV4dC1zcGFjaW5nLXdpZGUgKyAqLFxuKiArICV2ZXJ0LXRleHQtc3BhY2luZy13aWRlIHtcbiAgbWFyZ2luLXRvcDogJHRleHQtc3BhY2Utd2lkZTtcbn1cblxuLy8gdmVydGljYWwgc3BhY2UgYWZ0ZXI6XG4vLyAoYXBwbHkgdG8gZWxlbWVudHMgdG8gYmUgc3BhY2VkKVxuJXZlcnQtdGV4dC1zcGFjaW5nLWFmdGVyICsgKiB7bWFyZ2luLXRvcDogJHRleHQtc3BhY2U7fVxuJXZlcnQtdGV4dC1zcGFjaW5nLWNvbXBhY3QtYWZ0ZXIgKyAqIHttYXJnaW4tdG9wOiAkdGV4dC1zcGFjZS1zZW1pLWNvbXBhY3Q7fVxuXG4vLyBob3Jpem9udGFsIHNwYWNlIGJldHdlZW46XG4vLyAoYXBwbHkgdG8gZWxlbWVudHMgdG8gYmUgc3BhY2VkKVxuJWhvcml6LXRleHQtc3BhY2luZyArICosXG4qICsgJWhvcml6LXRleHQtc3BhY2luZyB7XG4gIG1hcmdpbi1sZWZ0OiAxZW07XG59XG5cbiVob3Jpei10ZXh0LXNwYWNpbmctY29tcGFjdCArICosXG4qICsgJWhvcml6LXRleHQtc3BhY2luZy1jb21wYWN0IHtcbiAgbWFyZ2luLWxlZnQ6IDAuNWVtO1xufVxuXG4vLyBob3Jpem9udGFsIHNwYWNlIGFmdGVyOlxuJWhvcml6LXRleHQtc3BhY2luZy1hZnRlciArICoge1xuICBtYXJnaW4tbGVmdDogMWVtO1xufVxuXG4vLyBCTE9DSyBTUEFDSU5HOlxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIHZlcnRpY2FsIHNwYWNpbmdcbiV2ZXJ0LWNvbnRlbnQtc3BhY2luZyArICosXG4qICsgJXZlcnQtY29udGVudC1zcGFjaW5nIHtcbiAgbWFyZ2luLXRvcDogJGNvbnRlbnQtc3BhY2U7XG59XG5cbiV2ZXJ0LWNvbnRlbnQtc3BhY2luZy1jb21wYWN0ICsgKixcbiogKyAldmVydC1jb250ZW50LXNwYWNpbmctY29tcGFjdCB7XG4gIG1hcmdpbi10b3A6ICgkY29udGVudC1zcGFjZS10aGlyZCAqIDIpO1xufVxuXG4vLyBQcmV2ZW50IGhpZGRlbiBlbGVtZW50cyBmcm9tIGFmZmVjdGluZyBtYXJnaW5zIG9mIG90aGVyIGVsZW1lbnRzXG4ldmVydC10ZXh0LXNwYWNpbmcsXG4ldmVydC10ZXh0LXNwYWNpbmctY29tcGFjdCxcbiV2ZXJ0LXRleHQtc3BhY2luZy13aWRlLFxuJWhvcml6LXRleHQtc3BhY2luZyxcbiVob3Jpei10ZXh0LXNwYWNpbmctY29tcGFjdCB7XG4gIEBpbmNsdWRlIGJwKG1vYmlsZSkge1xuICAgICYudS1oaWRlLWluLW1vYmlsZSB7XG4gICAgICArICoge1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBicCh0YWJsZXQpIHtcbiAgICAmLnUtaGlkZS1pbi10YWJsZXQge1xuICAgICAgKyAqIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgYnAobW9iaWxlLWFuZC10YWJsZXQpIHtcbiAgICAmLnUtaGlkZS1pbi1tb2JpbGUtYW5kLXRhYmxldCB7XG4gICAgICArICoge1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBicCh0YWJsZXQtYW5kLWFib3ZlKSB7XG4gICAgJi51LWhpZGUtaW4tdGFibGV0LWFuZC1hYm92ZSB7XG4gICAgICArICoge1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBicChkZXNrdG9wLWFuZC1hYm92ZSkge1xuICAgICYudS1oaWRlLWluLWRlc2t0b3AtYW5kLWFib3ZlIHtcbiAgICAgICsgKiB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5cbi8vIFJlbW92ZSBTcGFjaW5nXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gdGVzdGluZywgcmVmaW5lXG4udS1yZW1vdmUtdmVydGljYWwtc3BhY2luZyB7XG4gICogKyAqIHtcbiAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gIH1cbn0iLCIvKmRvY1xuLS0tXG50aXRsZTogUGFkZGluZ1xubmFtZTogcGFkZGluZ1xuY2F0ZWdvcnk6IFBhdHRlcm5zXG4tLS1cblxuUGFkZGluZyA9IFN0YW5kYXJkaXplZCBwYWRkaW5nIGZvciBjb250YWluZXIgZWxlbWVudHNcblxuPHN0cm9uZz5UT0RPOjwvc3Ryb25nPiBEZWZpbmUgc3RhbmRhcmRpemVkIHBhZGRpbmcgc3R5bGVzLlxuXG4qL1xuXG5cbi8vIHN0YW5kYXJkIGJveCBhbmQgZWxlbWVudCBwYWRkaW5nIHN0eWxlcyB3aWxsIGdvIGhlcmUiLCIvLyBUT0RPOiByZWZhY3RvciBhbmQgcmVuYW1lIHN0eWxlcywgbWF5IHdhbnQgdG8gbW92ZSBzb21lXG5cbi8qXG4gICogQmFja2dyb3VuZHNcbiAgKiBCb3JkZXJzIGFuZCBvdXRsaW5lc1xuICAqIEJ1dHRvbnNcbiAgKiBIZWFkZXIgc3R5bGVzICh0aGlzIHNob3VsZCBwcm9iYWJseSBtb3ZlIHRvIGEgXCJ0ZXh0XCIgYmFzZWQgc3R5bGVzIGNhdGVnb3J5KVxuICAqIExpbmtzXG4gICogTGlzdHNcbiAgKiBNaXNjIEhlbHBlcnNcbiAgKiBTaGFkb3dzXG4qL1xuXG5cbi8vIEJhY2tncm91bmRzXG4vLyAtLS0tLS0tLS0tLS0tLVxuQG1peGluIGV4dGVuZEJhY2tncm91bmQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgJjpiZWZvcmUsXG4gICY6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQ6IGluaGVyaXQ7XG4gICAgYm9yZGVyOiBpbmhlcml0O1xuICAgIGJveC1zaGFkb3c6IGluaGVyaXQ7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGJvdHRvbTogMDtcbiAgfVxuXG4gICY6YmVmb3JlIHtcbiAgICBsZWZ0OiAtMTAwJTtcbiAgfVxuXG4gICY6YWZ0ZXIge1xuICAgIGxlZnQ6IDEwMCU7XG4gIH1cbn1cblxuLy8gVE9ETzogcmVuYW1lIHRvIGF2b2lkIGNvbmZ1c2lvbiB3aXRoIHNhc3MgXCJleHRlbmRcIlxuJWV4dGVuZC1iYWNrZ3JvdW5kIHtAaW5jbHVkZSBleHRlbmRCYWNrZ3JvdW5kO31cblxuLy8gY29sb3IgaWNvbiBjaGFyYWN0ZXIgcmV2ZXJzZWQgb3V0IG9mIHNvbGlkIGJnXG4lY29sb3JSZXZlcnNlZEljb24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDI7XG5cbiAgJjphZnRlciB7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3JkZXItcmFkaXVzOiA1MDBweDtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwLjhlbTtcbiAgICBoZWlnaHQ6IDAuOGVtO1xuICAgIG1hcmdpbjogYXV0bztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHotaW5kZXg6IC0xO1xuICB9XG59XG5cbi8vIGlkZWEgZnJvbTogaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8yMjE1MzA4MC9ob3ctZG8taS1jaGFuZ2UtdGhlLXNlbGVjdC1ib3gtYXJyb3dcbkBtaXhpbiByaWdodEFycm93KCRhcnJvdy1jb2xvcjogJGRlZmF1bHQtdGV4dC1jb2xvciwgJGFycm93LXNpemU6IDAuM2VtLCAkcmlnaHQtb2Zmc2V0OiAwLjNlbSkge1xuICAkZnVkZ2U6ICRhcnJvdy1zaXplIC0gLjM7XG5cbiAgYmFja2dyb3VuZC1pbWFnZTpcbiAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoNDVkZWcsIHRyYW5zcGFyZW50IDUwLjElLCAkYXJyb3ctY29sb3IgNTAuMSUpLFxuICAgICAgICAgIGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICRhcnJvdy1jb2xvciA2MCUsIHRyYW5zcGFyZW50IDUwLjElKTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjpcbiAgICAgICAgICBjYWxjKDEwMCUgLSAoKCN7JGZ1ZGdlfSkgKyAjeyRyaWdodC1vZmZzZXR9KSkgNTAlLFxuICAgICAgICAgIGNhbGMoMTAwJSAtICN7JHJpZ2h0LW9mZnNldH0pIDUwJTtcbiAgYmFja2dyb3VuZC1zaXplOlxuICAgICAgICAgICRhcnJvdy1zaXplICRhcnJvdy1zaXplLFxuICAgICAgICAgICRhcnJvdy1zaXplICRhcnJvdy1zaXplO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xufVxuLy8gRXhhbXBsZSBVc2FnZTogQGluY2x1ZGUgcmlnaHRBcnJvdyhyZWQsIDEwcHgsIDFlbSk7XG5cblxuLy8gQm9yZGVycyBhbmQgb3V0bGluZXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBtaXhpbiB0ZXh0U3Ryb2tlKCRzdHJva2VDb2xvciwgJHN0cm9rZVdlaWdodDogMXB4KSB7XG4gIHRleHQtc2hhZG93OlxuICAgICAgICAgICAgICAgICAgKCRzdHJva2VXZWlnaHQgKiAtMSkgKCRzdHJva2VXZWlnaHQgKiAtMSkgMCAkc3Ryb2tlQ29sb3IsXG4gICAgICAgICAgJHN0cm9rZVdlaWdodCAoJHN0cm9rZVdlaWdodCAqIC0xKSAwICRzdHJva2VDb2xvcixcbiAgICAgICAgICAgICAgICAgICgkc3Ryb2tlV2VpZ2h0ICogLTEpICRzdHJva2VXZWlnaHQgMCAkc3Ryb2tlQ29sb3IsXG4gICAgICAgICAgJHN0cm9rZVdlaWdodCAkc3Ryb2tlV2VpZ2h0IDAgJHN0cm9rZUNvbG9yXG47XG59XG5cbiVmb2N1cy1vdXRsaW5lIHtcbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkc29maS1ibHVlICFpbXBvcnRhbnQ7XG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDAgNXB4ICRzb2ZpLWJsdWUgIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiAwIDAgNXB4ICRzb2ZpLWJsdWUgIWltcG9ydGFudDtcbiAgfVxufVxuXG5cbi8vIEJ1dHRvbnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIGh0dHA6Ly9yYXpvcmphbS5naXRodWIuaW8vc2Fzc2NvbG91cmZ1bmN0aW9uY2FsY3VsYXRvci9cblxuQG1peGluIGJ1dHRvbkJhc2UoJGJhY2tncm91bmRDb2xvcjogJHNvZmktYWNjZXNpYmlsaXR5LWJsdWUsICRmb250Q29sb3I6ICNmZmYpIHtcbiAgQGluY2x1ZGUgdW5pdmVyc2FsVHJhbnNpdGlvbjtcbiAgYmFja2dyb3VuZDogJGJhY2tncm91bmRDb2xvcjtcbiAgYm9yZGVyOiAxcHggc29saWQgJGJhY2tncm91bmRDb2xvcjtcbiAgYm9yZGVyLXJhZGl1czogJGRlZmF1bHQtYm9yZGVyLXJhZGl1cztcbiAgY29sb3I6ICRmb250Q29sb3I7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdGV4dC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIEBpbmNsdWRlIGJwKG1vYmlsZSkge1xuICAgIHBhZGRpbmc6IDAuNmVtIDAuOWVtO1xuICB9XG5cbiAgQGluY2x1ZGUgYnAodGFibGV0LWFuZC1hYm92ZSkge1xuICAgIHBhZGRpbmc6IDAuNmVtIDEuNWVtO1xuICB9XG5cbiAgJjpob3ZlcixcbiAgJjphY3RpdmUge1xuICAgIGNvbG9yOiAjZmZmO1xuICB9XG5cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogZGFya2VuKHNhdHVyYXRlKGFkanVzdC1odWUoJHNvZmktYWNjZXNpYmlsaXR5LWJsdWUsIC0wLjM0NzYpLCAwLjYyMzEpLCA3Ljg0MzEpO1xuICAgIGJvcmRlci1jb2xvcjogZGFya2VuKHNhdHVyYXRlKGFkanVzdC1odWUoJHNvZmktYWNjZXNpYmlsaXR5LWJsdWUsIC0wLjM0NzYpLCAwLjYyMzEpLCA3Ljg0MzEpO1xuICB9XG5cbiAgJjphY3RpdmUge1xuICAgIGJhY2tncm91bmQ6IGRhcmtlbihzYXR1cmF0ZShhZGp1c3QtaHVlKCRzb2ZpLWFjY2VzaWJpbGl0eS1ibHVlLCAtMC40MjE4KSwgMS4yMjMxKSwgMTMuOTIxNik7XG4gICAgYm9yZGVyLWNvbG9yOiBkYXJrZW4oc2F0dXJhdGUoYWRqdXN0LWh1ZSgkc29maS1hY2Nlc2liaWxpdHktYmx1ZSwgLTAuNDIxOCksIDEuMjIzMSksIDEzLjkyMTYpO1xuICB9XG59XG5cbiVidXR0b24tZGlzYWJsZWQge1xuICBiYWNrZ3JvdW5kOiAjZDFkM2Q0ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogI2QxZDNkNCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50O1xuICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgIGJhY2tncm91bmQ6ICNkMWQzZDQgIWltcG9ydGFudDtcbiAgICBib3JkZXItY29sb3I6ICNkMWQzZDQgIWltcG9ydGFudDtcbiAgfVxufVxuXG5cbi8vIEhlYWRlciBzdHlsZXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tXG5AbWl4aW4gYWxsQ2Fwc1RleHQge1xuICBsZXR0ZXItc3BhY2luZzogJGFsbC1jYXBzLWxldHRlci1zcGFjaW5nO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsaW5lLWhlaWdodDogMS4xO1xufVxuXG4lYWxsLWNhcHMtdGV4dCB7XG4gIEBpbmNsdWRlIGFsbENhcHNUZXh0O1xufVxuXG5AbWl4aW4gaGVhZGVyMSB7XG4gIGZvbnQtc2l6ZTogJGgxLWZvbnQtc2l6ZSAhaW1wb3J0YW50O1xuICBmb250LXdlaWdodDogJG5vcm1hbC13ZWlnaHQ7XG4gIGxpbmUtaGVpZ2h0OiAxLjE7XG59XG5cbiVoZWFkZXItMSB7QGluY2x1ZGUgaGVhZGVyMTt9XG5cbkBtaXhpbiBoZWFkZXIyIHtcbiAgZm9udC1zaXplOiAkaDItZm9udC1zaXplICFpbXBvcnRhbnQ7XG4gIGZvbnQtd2VpZ2h0OiAkbm9ybWFsLXdlaWdodDtcbiAgbGluZS1oZWlnaHQ6IDEuMTtcbn1cblxuJWhlYWRlci0yIHtAaW5jbHVkZSBoZWFkZXIyO31cblxuQG1peGluIGhlYWRlcjMge1xuICBmb250LXNpemU6ICRoMy1mb250LXNpemUgIWltcG9ydGFudDtcbiAgZm9udC13ZWlnaHQ6ICRub3JtYWwtd2VpZ2h0O1xuICBsaW5lLWhlaWdodDogMS4xO1xufVxuXG4laGVhZGVyLTMge0BpbmNsdWRlIGhlYWRlcjM7fVxuXG5AbWl4aW4gaGVhZGVyNCB7XG4gIGZvbnQtc2l6ZTogJGg0LWZvbnQtc2l6ZSAhaW1wb3J0YW50O1xuICBmb250LXdlaWdodDogJGJvbGQtd2VpZ2h0O1xuICBsaW5lLWhlaWdodDogMS4xO1xufVxuXG4laGVhZGVyLTQge0BpbmNsdWRlIGhlYWRlcjQ7fVxuXG4vLyBOT1RFOiBoNSAmIGg2IG5vdCBjdXJyZW50bHkgdXNlZCBpbiBVWCBzdHlsZSBndWlkZVxuQG1peGluIGhlYWRlcjUge1xuICBmb250LXNpemU6ICRoNS1mb250LXNpemUgIWltcG9ydGFudDtcbiAgZm9udC13ZWlnaHQ6ICRib2xkLXdlaWdodDtcbiAgbGluZS1oZWlnaHQ6IDEuMTtcbn1cblxuJWhlYWRlci01IHtAaW5jbHVkZSBoZWFkZXI1O31cblxuQG1peGluIGhlYWRlcjYge1xuICBmb250LXNpemU6ICRoNi1mb250LXNpemUgIWltcG9ydGFudDtcbiAgZm9udC13ZWlnaHQ6ICRib2xkLXdlaWdodDtcbiAgbGluZS1oZWlnaHQ6IDEuMTtcbn1cblxuJWhlYWRlci02IHtAaW5jbHVkZSBoZWFkZXI2O31cblxuXG4vLyBMaW5rc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gaG92ZXIgbGluayB1c2VzIFNvRmkncyBkZWZhdWx0IGxpbmsgY29sb3JzIGJ5IGRlZmF1bHQgaWYgbm8gY3VzdG9tIGNvbG9ycyBhcmUgc3BlY2lmaWVkXG5AbWl4aW4gaG92ZXJMaW5rKCRsaW5rLWNvbG9yOiAkc29maS1hY2Nlc2liaWxpdHktYmx1ZSwgJGhvdmVyLWNvbG9yOiAkc29maS1hY2Nlc2liaWxpdHktYmx1ZS1hY3RpdmUsICRhY3RpdmUtY29sb3I6ICRzb2ZpLWFjY2VzaWJpbGl0eS1ibHVlLWFjdGl2ZSkge1xuICBAZXh0ZW5kICVjb2xvci10cmFuc2l0aW9uO1xuICBjb2xvcjogJGxpbmstY29sb3I7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgb3V0bGluZTogbm9uZTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICY6aG92ZXIge2NvbG9yOiAkaG92ZXItY29sb3I7fVxuICAmOmFjdGl2ZSB7Y29sb3I6ICRhY3RpdmUtY29sb3I7fVxufVxuXG4lZGVmYXVsdC1saW5rIHtAaW5jbHVkZSBob3Zlckxpbms7fVxuXG5cbi8vIExpc3RzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4lYnVsbGV0LXNlcGFyYXRlZC1ob3Jpei1saXN0IHtcbiAgPiBsaSB7XG4gICAgZGlzcGxheTogaW5saW5lO1xuXG4gICAgKyBsaTpiZWZvcmUge1xuICAgICAgY29udGVudDogXCIg4oCiIFwiO1xuICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgIH1cbiAgfVxufVxuXG4lcGlwZS1zZXBhcmF0ZWQtaG9yaXotbGlzdCxcbi5waXBlZC1zZXBhcmF0ZWQtaG9yaXotbGlzdCB7XG4gID4gbGkge1xuICAgIGRpc3BsYXk6IGlubGluZTtcblxuICAgICsgbGk6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IFwiIHwgXCI7XG4gICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgfVxuICB9XG59XG5cblxuLy8gTWlzYyBIZWxwZXJzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLVxuLy8gc21vb3RoIGFudGlhbGlzaW5nIChVc2UgdG8gc21vb3RoIHJvdW5kZWQgYm9yZGVycywgZXRjLik6XG4lc21vb3RoLWFudGlhbGlzaW5nIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLjAxLCAxLjAxKTtcbn1cblxuLy8gQmFja2dyb3VuZHNcbi8vIC0tLS0tLS0tLS0tLS0tXG4vLyBUT0RPOiBtYWtlIGEgbW9yZSBzb3BoaXN0aWNhdGVkIG1peGluIHRoYXQgc2V0cyB0ZXh0IGNvbG9ycyBiYXNlZCBvbiBkYXJrbmVzcyBvZiBiZyBjb2xvcj9cbiVhY2NlbnQtYmx1ZS1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZDogJGFjY2VudC1kYXJrLWJsdWUgIWltcG9ydGFudDtcbiAgY29sb3I6ICNmZmY7XG5cbiAgYSB7XG4gICAgY29sb3I6ICRzb2ZpLWJsdWU7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiBkYXJrZW4oJHNvZmktYmx1ZSwgMTQlKTtcbiAgICB9XG4gIH1cblxuICBzdHJvbmcge2NvbG9yOiAjZmZmO31cbn1cblxuQG1peGluIGV4dGVuZEJhY2tncm91bmQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgJjpiZWZvcmUsXG4gICY6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQ6IGluaGVyaXQ7XG4gICAgYm9yZGVyOiBpbmhlcml0O1xuICAgIGJveC1zaGFkb3c6IGluaGVyaXQ7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGJvdHRvbTogMDtcbiAgfVxuXG4gICY6YmVmb3JlIHtcbiAgICBsZWZ0OiAtMTAwJTtcbiAgfVxuXG4gICY6YWZ0ZXIge1xuICAgIGxlZnQ6IDEwMCU7XG4gIH1cbn1cblxuLy8gVE9ETzogcmVuYW1lIHRvIGF2b2lkIGNvbmZ1c2lvbiB3aXRoIHNhc3MgXCJleHRlbmRcIlxuJWV4dGVuZC1iYWNrZ3JvdW5kIHtAaW5jbHVkZSBleHRlbmRCYWNrZ3JvdW5kO31cblxuLy8gY29sb3IgaWNvbiBjaGFyYWN0ZXIgcmV2ZXJzZWQgb3V0IG9mIHNvbGlkIGJnXG4lY29sb3JSZXZlcnNlZEljb24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDI7XG5cbiAgJjphZnRlciB7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3JkZXItcmFkaXVzOiA1MDBweDtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwLjhlbTtcbiAgICBoZWlnaHQ6IDAuOGVtO1xuICAgIG1hcmdpbjogYXV0bztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHotaW5kZXg6IC0xO1xuICB9XG59XG5cbi8vIEJvcmRlcnMgYW5kIG91dGxpbmVzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AbWl4aW4gdGV4dFN0cm9rZSgkc3Ryb2tlQ29sb3IsICRzdHJva2VXZWlnaHQ6IDFweCkge1xuICB0ZXh0LXNoYWRvdzpcbiAgICAgICAgICAgICAgICAgICgkc3Ryb2tlV2VpZ2h0ICogLTEpICgkc3Ryb2tlV2VpZ2h0ICogLTEpIDAgJHN0cm9rZUNvbG9yLFxuICAgICAgICAgICRzdHJva2VXZWlnaHQgKCRzdHJva2VXZWlnaHQgKiAtMSkgMCAkc3Ryb2tlQ29sb3IsXG4gICAgICAgICAgICAgICAgICAoJHN0cm9rZVdlaWdodCAqIC0xKSAkc3Ryb2tlV2VpZ2h0IDAgJHN0cm9rZUNvbG9yLFxuICAgICAgICAgICRzdHJva2VXZWlnaHQgJHN0cm9rZVdlaWdodCAwICRzdHJva2VDb2xvclxuO1xufVxuXG4lZm9jdXMtb3V0bGluZSB7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJvcmRlci1jb2xvcjogJHNvZmktYmx1ZSAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwIDAgNXB4IC41cHggJHNvZmktYmx1ZSAhaW1wb3J0YW50O1xufVxuXG4vLyBTaGFkb3dzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iLCIvKmRvY1xuLS0tXG50aXRsZTogSW50cm9cbm5hbWU6IGFhYWFJbnRyb1xuY2F0ZWdvcnk6IEJhc2Vcbi0tLVxuXG5XZWxjb21lIHRvIFNvRmkncyBsaXZpbmcgc3R5bGUgZ3VpZGUuIFRoaXMgZ3VpZGUgaXMgZ2VuZXJhdGVkIGZyb20gc3BlY2lhbGx5IGZvcm1hdHRlZCBjb21tZW50cyB3aXRoaW4gdGhlIHNoYXJlZC1zdHlsZXMgc2NzcyBmaWxlcyB1c2luZyA8YSBocmVmPVwiaHR0cHM6Ly90cnVsaWEuZ2l0aHViLmlvL2hvbG9ncmFtL1wiIHRhcmdldD1cIl9ibGFua1wiPkhvbG9ncmFtPC9hPi5cblxuPGgyPlN0eWxlcyBhcmUgc2VwYXJhdGVkIGludG8gdGhlc2UgbWFpbiBjYXRlZ29yaWVzOjwvaDI+XG5cbiogPHN0cm9uZz5QYXR0ZXJucyA9PC9zdHJvbmc+IGFic3RyYWN0IGxheW91dCBwYXR0ZXJucywgZ3JpZCwgc3BhY2luZywgcGFkZGluZywgZGVjb3JhdGlvbiwgYW5kIG1pc2MuIHV0aWxpdHkgc3R5bGVzXG4qIDxzdHJvbmc+QmFzZSA9PC9zdHJvbmc+IEJhc2ljIEhUTUwgZWxlbWVudCBkZWZhdWx0IHN0eWxpbmcsIGluY2x1ZGVzIHR5cG9ncmFwaHkgc3R5bGVzIGFuZCBjb2xvcnNcbiogPHN0cm9uZz5UZW1wbGF0ZXMgPTwvc3Ryb25nPiBzaGFyZWQgcGFnZSB0ZW1wbGF0ZXMgYW5kIHN0YW5kYXJkIFwiY2hyb21lXCIgc3VjaCBhcyBuYXYgYmFycywgZm9vdGVycywgZXRjLlxuKiA8c3Ryb25nPk1vZHVsZXMgPTwvc3Ryb25nPiBTcGVjaWFsIGVsZW1lbnRzIGFuZCBjb21wb25lbnRzXG5cbjxocj5cbiovXG5cbi8qZG9jXG4tLS1cbnRpdGxlOiBCYXNlXG5uYW1lOiBhYWFCYXNlXG5jYXRlZ29yeTogQmFzZVxuLS0tXG5cbkJhc2UgPSBIVE1MIGVsZW1lbnQgZGVmYXVsdCBzdHlsZXNcblxuSW5jbHVkZXMgdHlwb2dyYXBoeSBzdHlsZXMgc3VjaCBhcyBmb250cyBhbmQgdGV4dCBzcGFjaW5nLiBBbHNvIGJyYW5kIGNvbG9ycyBzdWNoIGFzIGJhY2tncm91bmQgY29sb3JzLCBldGMuLi5cblxuU2VlIFtNb2R1bGVzXVthYWFNb2R1bGVzXSBmb3IgbW9yZSBjdXN0b20gYW5kIGNvbXBsZXggY29tcG9uZW50IHN0eWxlcy5cbiovXG5cbi8qZG9jXG4tLS1cbnRpdGxlOiBUeXBvZ3JhcGh5XG5uYW1lOiB0eXBvZ3JhcGh5XG5jYXRlZ29yeTogQmFzZVxuLS0tXG5cblR5cG9ncmFwaHkgPSBBbnl0aGluZyByZWxhdGVkIHRvIGJhc2ljIHRleHQgY29udGVudCBzdHlsaW5nIGFuZCBhc3NvY2lhdGVkIGVsZW1lbnRzIGluY2x1ZGluZyBmb250cywgY29sb3JzLCBmb250LXNpemVzLCBldGMuXG5cblNlZSBbdHlwb2dyYXBoaWMgc3BhY2luZyBwYXR0ZXJuIHN0eWxlc11bc3ViVHlwb2dyYXBoaWNTcGFjaW5nXSBmb3IgbW9yZSBleGFtcGxlcyBvZiBoZWFkZXJzIGFuZCBwYXJhZ3JhcGhzIGluIHJlbGF0aW9uc2hpcCB0byBlYWNoIG90aGVyLlxuXG4qL1xuXG4vKmRvY1xuLS0tXG50aXRsZTogRm9udCBGYW1pbGllc1xucGFyZW50OiB0eXBvZ3JhcGh5XG5uYW1lOiBzdWJGb250RmFtaWxpZXNcbi0tLVxuXG5IZWFkZXIgYW5kIGJvZHkgdGV4dCBmb250OiBcIkFkZWxsZSBTYW5zXCJcbiovXG5cbi8qZG9jXG4tLS1cbnRpdGxlOiBGb250IFNpemVzXG5wYXJlbnQ6IHR5cG9ncmFwaHlcbm5hbWU6IHN1YkZvbnRTaXplc1xuLS0tXG5cbk5PVEU6IFRoZSBhY3R1YWwgZm9udCBzaXplcyBpbiB0aGUgQ1NTIHVzZSBcInJlbSB1bml0c1wiIG5vdCBwaXhlbHMuIFRoZSBiZWxvdyBsaXN0ZWQgc2l6ZXMgYXJlIHVzZWQgaW4gdGFibGV0IGFuZCBhYm92ZSB3aWR0aCBhbmQgYXJlIGNhbGN1bGF0ZWQgb2ZmIG9mIGJhc2UgMTBweC4gRm9udCBzaXplcyBhcmUgYnVtcGVkIGRvd24gc2xpZ2h0bHkgZm9yIG1vYmlsZSB3aWR0aCBieSBpbnN0ZWFkIGNhbGN1bGF0aW5nIG9mZiBiYXNlIDlweC4gKEFkanVzdCB5b3VyIGJyb3dzZXIgc2NyZWVuIHdpZHRoIHRvIHZpZXcgdGhlIGNoYW5nZSBpbiBmb250IHNpemUgaW4gXCJtb2JpbGVcIiB2cy4gb3RoZXIgd2lkdGhzLilcblxuPGRpdiBjbGFzcz1cImNvbC1ncm91cCBhbGwtLTEtMlwiPlxuICA8ZGl2IGNsYXNzPVwiY29sXCI+XG4gICAgPHA+VEFCTEVUICYgQUJPVkU6PGJyPlxuICAgIGgxOiAyNHB4IDxzbWFsbD48ZW0+KFBhZ2UgSGVhZGluZyk8L2VtPjwvc21hbGw+PGJyPlxuICAgIGgyOiAxOHB4IDxzbWFsbD48ZW0+KFwiUHJvZHVjdFwiIEhlYWRpbmcpPC9lbT48L3NtYWxsPjxicj5cbiAgICBoMzogMTRweCA8c21hbGw+PGVtPihTZWN0aW9uIC8gQm94IEhlYWRpbmcpPC9lbT48L3NtYWxsPjwvcD5cblxuICAgIDxwPjxlbT4oaDQsIGg1ICYgaDYgbm90IGRlZmluZWQgaW4gVVggc3R5bGUgZ3VpZGUpPC9lbT48YnI+XG4gICAgaDQ6IDE2cHg8YnI+XG4gICAgaDU6IDE0cHg8YnI+XG4gICAgaDY6IDEycHg8L3A+XG5cbiAgICA8cD5ib2R5IHRleHQ6IDE2cHg8YnI+XG4gICAgc21hbGwgdGV4dDogMTJweDwvcD5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImNvbFwiPlxuICAgIDxwPk1PQklMRTo8YnI+XG4gICAgaDE6IDIycHg8YnI+XG4gICAgaDI6IDE2cHg8YnI+XG4gICAgaDM6IDEzcHg8L3A+XG5cbiAgICA8cD48ZW0+KG5vdCBkZWZpbmVkIGluIFVYIHN0eWxlIGd1aWRlKTwvZW0+PGJyPlxuICAgIGg0OiAxNHB4PGJyPlxuICAgIGg1OiAxM3B4PGJyPlxuICAgIGg2OiAxMXB4PC9wPlxuXG4gICAgPHA+Ym9keSB0ZXh0OiAxNHB4PGJyPlxuICAgIHNtYWxsIHRleHQ6IDExcHg8L3A+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbiovXG5cbi8qZG9jXG4tLS1cbnRpdGxlOiBMaW5lIEhlaWdodHNcbnBhcmVudDogdHlwb2dyYXBoeVxubmFtZTogc3ViTGluZUhlaWdodHNcbi0tLVxuXG5UaGVzZSB1c2UgdW5pdGxlc3MgdmFsdWVzIHNvIGFyZSByZWxhdGl2ZSB0byB0aGUgZm9udCBzaXplIG9mIGVhY2ggZWxlbWVudC5cblxuKipCb2R5IHRleHQ6Kio8YnI+XG5saW5lLWhlaWdodDogMS40XG5cbioqSGVhZGVyIHRleHQ6Kio8YnI+XG5saW5lLWhlaWdodDogMS4xXG4qL1xuXG4vKmRvY1xuLS0tXG50aXRsZTogSGVhZGVyc1xucGFyZW50OiB0eXBvZ3JhcGh5XG5uYW1lOiBzdWJIZWFkZXJzXG4tLS1cblxuYGBgaHRtbF9leGFtcGxlXG48aDE+SGVhZGVyIDEgKFBhZ2UgSGVhZGluZyk8L2gxPlxuPGgyPkhlYWRlciAyIChEYXNoYm9hcmQgSGVhZGluZyk8L2gyPlxuPGgzPkhlYWRlciAzIChQcm9kdWN0IEhlYWRpbmcpPC9oMz5cblxuPGhyPlxuPHAgY2xhc3M9XCJzbWFsbFwiPihiZWxvdyBhcmUgbm90IGRlZmluZWQgaW4gVVggc3R5bGVzKTwvcD5cbjxoND5IZWFkZXIgNDwvaDQ+XG48aDU+SGVhZGVyIDU8L2g1PlxuPGg2PkhlYWRlciA2PC9oNj5cbmBgYFxuKi9cblxuLypkb2Ncbi0tLVxudGl0bGU6IFBhcmFncmFwaHNcbnBhcmVudDogdHlwb2dyYXBoeVxubmFtZTogc3ViUGFyYWdyYXBoc1xuLS0tXG5cbmBgYGh0bWxfZXhhbXBsZVxuPHA+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIDxzdHJvbmc+c29tZSBib2xkIHRleHQ8L3N0cm9uZz4gY29uc2VjdGV0dXIgYWRpcGlzY2luZyBlbGl0LiBBZW5lYW4gcHJldGl1bSwgdXJuYSB2aXRhZSB0ZW1wb3Igc29kYWxlcywgbWV0dXMgZGlhbSBydXRydW0gYXJjdSwgZWdldCBwb3J0dGl0b3IgZXJhdCBzYXBpZW4gc2l0IGFtZXQgbWV0dXMuIEV0aWFtIHBvcnR0aXRvciBkb2xvciBhdCBtZXR1cyBhdWN0b3IgbHVjdHVzLiBJbnRlZ2VyIHVybmEgbGlndWxhLCB1bHRyaWNlcyBhdCBhY2N1bXNhbiBuZWMsIHJ1dHJ1bSBpbiBsYWN1cy4gSW50ZWdlciBldSBkb2xvciB2ZWwgaXBzdW0gY3Vyc3VzIGN1cnN1cy4gUGhhc2VsbHVzIHNlZCBibGFuZGl0IG5pYmguPC9wPlxuPHA+U2FlcGUgcXVhc2kgb2ZmaWNpaXMgbW9sbGl0aWEgbWFnbmFtLCBlc3NlIHJhdGlvbmUgaXRhcXVlLCBmYWNlcmUgbWF4aW1lIGxhYm9yaW9zYW0gdmVsaXQgcGFyaWF0dXIgcXVpYSByZXB1ZGlhbmRhZSB2ZXJpdGF0aXMgbW9kaSBsYWJvcnVtIGVsaWdlbmRpIGFwZXJpYW0uIEN1cmFiaXR1ciB0ZW1wdXMgc3VzY2lwaXQgaXBzdW0sIHF1aXMgY29uc2VjdGV0dXIgbmlzaSBzYWdpdHRpcyBlZ2V0LiBEb25lYyBmZXJtZW50dW0gbW9sbGlzIGF1Z3VlLjwvcD5cbjxwPk5lY2Vzc2l0YXRpYnVzIGF1dCB2ZWwgZG9sb3JlbSBpcHNhIGlkIG5lbW8gYXJjaGl0ZWN0byBhbWV0IG5paGlsIGxpYmVybywgcmVwZWxsZW5kdXMgY29uc2VjdGV0dXIgdmVuaWFtIGRvbG9ydW0sIHVuZGUgcXVvcyBkb2xvciBtYWduYW0gbGFib3JlISBTZWQgdHJpc3RpcXVlLCBtYXNzYSBlZ2V0IGltcGVyZGlldCBsb2JvcnRpcy48L3A+XG5gYGBcbiovXG5cbi8qZG9jXG4tLS1cbnRpdGxlOiBMaW5rc1xubmFtZTogbGlua3NcbmNhdGVnb3J5OiBCYXNlXG4tLS1cblxuVGhlc2UgYXJlIHRoZSBkZWZhdWx0IGxpbmsgc3R5bGVzLiBTZWUgW21vZHVsZSBsaW5rIHN0eWxlc11bbGlua3NdIGZvciBzcGVjaWFsIHRhcmdldGVkIGxpbmsgc3R5bGVzLlxuXG5gYGBodG1sX2V4YW1wbGVcbjxwPlxuICA8YSBocmVmPVwiI1wiPlRoaXMgaXMgYSBzdGFuZCBhbG9uZSB0ZXh0IGxpbmsuPC9hPlxuPC9wPlxuPHA+XG4gIExvcmVtIGlwc3VtIGRvbG9yIDxhIGhyZWY9XCIjXCI+bGluayB3aXRoaW4gYSBzZW50ZW5jZTwvYT4gc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdC5cbjwvcD5cbmBgYFxuKi9cblxuLypkb2Ncbi0tLVxudGl0bGU6IFNtYWxsIFRleHRcbnBhcmVudDogdHlwb2dyYXBoeVxubmFtZTogc3ViU21hbGxcbi0tLVxuXG5UaGUgXCJTbWFsbFwiIHRhZyBzaG91bGQgYmUgdXNlZCBmb3IgZmluZSBwcmludCBhbmQgc2lkZSBjb21tZW50cy4gV2UgYWxzbyBoYXZlIGEgXCJzbWFsbFwiIGNsYXNzIG5hbWUgd2hpY2ggY2FuIGJlIHVzZWQgb24gYW55IGVsZW1lbnQgaWYgdGhlIHNtYWxsIHRhZyBkb2Vzbid0IHNlZW0gc2VtYW50aWNhbGx5IGFwcHJvcHJpYXRlIGZvciB5b3VyIHVzZSBjYXNlLlxuXG5gYGBodG1sX2V4YW1wbGVcbjxwPlJlZ3VsYXIgcGFyYWdyYXBoIHdpdGhvdXQgc21hbGwgdGV4dC48L3A+XG48cD5cbiAgPHNtYWxsPlRoaXMgaXMgYW4gZXhhbXBsZSBvZiBzbWFsbCB0ZXh0Ljwvc21hbGw+XG48L3A+XG48cCBjbGFzcz1cInNtYWxsXCI+XG4gIEFuIGV4YW1wbGUgb2YgYW4gYWx0ZXJuYXRlIHdheSB0byB1c2UgdGhlIHNtYWxsIHRleHQgc3R5bGUuXG48L3A+XG5gYGBcbiovXG5cbkBpbXBvcnQgXCJzdWIvcmVzZXRcIjtcbkBpbXBvcnQgXCJzdWIvdHlwb2dyYXBoeVwiO1xuQGltcG9ydCBcInN1Yi9saW5rc1wiO1xuQGltcG9ydCBcInN1Yi9mb3Jtcy1zaGFyZWRcIjtcbkBpbXBvcnQgXCJzdWIvZm9ybXMtbWRcIjtcbkBpbXBvcnQgXCJzdWIvdGFibGVzXCI7XG5AaW1wb3J0IFwic3ViL21lZGlhXCI7XG4iLCIvLyBSZXNldHNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4qIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgbWFyZ2luOiAwO1xufVxuXG5odG1sLCBib2R5IHtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG5ib2R5LCBmaWd1cmUsIHVsIHtcbiAgcGFkZGluZzogMDtcbn1cblxudWwge2xpc3Qtc3R5bGUtdHlwZTogbm9uZTt9XG5cbi8vIEhUTUw1IGVsZW1zXG4vLyAtLS0tLS0tLS0tLS0tLVxuZm9vdGVyLCBoZWFkZXIsIG1haW4ge1xuICBkaXNwbGF5OiBibG9jazsgLy8gZm9yIG9sZCBicm93c2Vyc1xufVxuXG4vLyBNaXNjIChtb3ZlPylcbi8vIC0tLS0tLS0tLS0tLS0tLVxucHJlIHt3aGl0ZS1zcGFjZTogcHJlLXdyYXA7fVxuIiwiLy8gVHlwb2dyYXBoeVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbmh0bWwge1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAvLyBQcmV2ZW50IGZvbnQgc2NhbGluZyBpbiBsYW5kc2NhcGUgd2hpbGUgYWxsb3dpbmcgdXNlciB6b29tXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgLy8gcHJldmVudCBob3Jpem9udGFsIHNjcm9sbFxuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIC8vIHNtb290aCBzY3JvbGwgdG8gcmVsYXRpdmUgcGFnZSBsaW5rcyAob25seSBGRiBzdXBwb3J0IGN1cnJlbnRseSlcbiAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7XG5cbiAgQGluY2x1ZGUgYnAobW9iaWxlKSB7XG4gICAgZm9udC1zaXplOiAkbW9iaWxlLWJhc2VsaW5lLWZvbnQtc2l6ZTtcbiAgfVxuXG4gIEBpbmNsdWRlIGJwKHRhYmxldC1hbmQtYWJvdmUpIHtcbiAgICBmb250LXNpemU6ICRiYXNlbGluZS1mb250LXNpemU7XG4gIH1cbn1cblxuYm9keSB7XG4gIGNvbG9yOiAkZGVmYXVsdC10ZXh0LWNvbG9yO1xuICBmb250LWZhbWlseTogJGJhc2UtZm9udC1mYW1pbHk7XG4gIGZvbnQtc2l6ZTogJGRlZmF1bHQtZm9udC1zaXplLWVtOyAvLyBmaXggQ2hyb21lIHJlbSBmb250LXNpemluZyBidWdcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC8vIHVzZSBmb3IgaGVhZGVycyBvbmx5PzpcbiAgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbn1cblxuc21hbGwge1xuICBmb250LXNpemU6ICRzbWFsbC1mb250LXNpemU7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG59XG5cbi8vIHNjb3BlIGJldHRlciBpZiB0b28gYnJvYWQ6XG50aW1lIHtcbiAgZm9udC1zaXplOiAkc21hbGwtZm9udC1zaXplO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xufVxuXG5ociB7XG4gIGJhY2tncm91bmQ6ICRncmV5LWJvcmRlci1jb2xvcjtcbiAgYm9yZGVyOiAwO1xuICBoZWlnaHQ6IDFweDtcbiAgbWFyZ2luOiAxZW0gMDtcbn1cblxuLy8gSGVhZGVyc1xuLy8gLS0tLS0tLS1cbmgxLCBoMiwgaDMsIGg0LCBoNSwgaDYge1xuICBmb250LWZhbWlseTogJGhlYWRpbmctZm9udC1mYW1pbHk7XG59XG5cbmgxIHtAZXh0ZW5kICVoZWFkZXItMTt9XG5oMiB7QGV4dGVuZCAlaGVhZGVyLTI7fVxuaDMge0BleHRlbmQgJWhlYWRlci0zO31cbmg0IHtAZXh0ZW5kICVoZWFkZXItNDt9XG5oNSB7QGV4dGVuZCAlaGVhZGVyLTU7fVxuaDYge0BleHRlbmQgJWhlYWRlci02O31cblxuLy8gVGV4dCAvIFR5cG9ncmFwaGljIFZlcnRpY2FsIFNwYWNpbmdcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5wLFxuaDEsIGgyLCBoMywgaDQsIGg1LCBoNixcbnVsLCBvbCxcbmhyLFxudGFibGUge1xuICBAZXh0ZW5kICV2ZXJ0LXRleHQtc3BhY2luZztcbn1cblxuOm5vdChoMSk6bm90KGgyKTpub3QoaDMpOm5vdChoNCk6bm90KGg1KTpub3QoaDYpICsge1xuICBoMSwgaDIsIGgzLCBoNCwgaDUsIGg2IHttYXJnaW4tdG9wOiAoJHRleHQtc3BhY2UgKiAyKTt9XG59XG4iLCIvLyBMaW5rc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbmEge1xuICBAZXh0ZW5kICVkZWZhdWx0LWxpbms7XG59IiwiLy8gU2hhcmVkIGJhc2ljIGZvcm0gZWxlbWVudCBzdHlsZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmJ1dHRvbiwgaW5wdXQsIHNlbGVjdCwgdGV4dGFyZWEge1xuICBmb250LXNpemU6ICRkZWZhdWx0LWZvbnQtc2l6ZTtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBtYXgtd2lkdGg6IDEwMCU7XG59XG5cbmJ1dHRvbixcbmlucHV0W3R5cGU9XCJidXR0b25cIl0sXG5pbnB1dFt0eXBlPVwicmVzZXRcIl0sXG5pbnB1dFt0eXBlPVwic3VibWl0XCJdLFxuaW5wdXRbdHlwZT1cImZpbGVcIl0ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogMDtcbiAgfVxufVxuXG4vLyBidW1wIHVwIHNpemUgZm9yIFdlYmtpdCBicm93c2Vyc1xuaW5wdXRbdHlwZT1cInJhZGlvXCJdLFxuaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgZm9udC1zaXplOiAxNnB4O1xuICB3aWR0aDogMWVtO1xuICBoZWlnaHQ6IDFlbTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAvLyBkb2Vzbid0IHdvcmsgaW4gQ2hyb21lOlxuICAmOmZvY3VzIHtcbiAgICBvdXRsaW5lOiAwO1xuICB9XG59XG5cbi8vIFJlbW92ZSBpbm5lciBib3gtc2hhZG93IGluIFNhZmFyaSBpT1Ncbi8vIHJlbW92ZSBhcnJvdyBjb250cm9scyBmb3IgaW5jcmVtZW50aW5nIGFuZCBkZWNyZW1lbnRpbmcgbnVtYmVyc1xuaW5wdXQ6bm90KFt0eXBlPVwic3VibWl0XCJdKTpub3QoW3R5cGU9XCJyZXNldFwiXSk6bm90KFt0eXBlPVwiZmlsZVwiXSk6bm90KFt0eXBlPVwiYnV0dG9uXCJdKTpub3QoW3R5cGU9XCJyYWRpb1wiXSk6bm90KFt0eXBlPVwiY2hlY2tib3hcIl0pLFxudGV4dGFyZWEsXG5pbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuaW5wdXRbdHlwZT1cIm51bWJlclwiXSB7XG4gIC1tb3otYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xufVxuXG4vLyBzZXQgaW5wdXQgd2lkdGggYmFzZWQgb24gbWF4bGVuZ3RoOlxuLy8gVGhpcyBpc24ndCB1c2VkIGluIGxhdGVzdCBkZXNpZ25zIGFuZCBjYXVzZXMgbGF5b3V0IGlzc3VlIHdpdGggXCJmYW5jeS1pbnB1dFwiIHRoYXQgbmVlZHMgdG8gYmUgcmVmYWN0b3JlZFxuQGZvciAkaSBmcm9tIDIgdGhyb3VnaCA1IHtcbiAgaW5wdXRbbWF4bGVuZ3RoPVwiI3skaX1cIl0ge1xuICAgIHdpZHRoOiAjeyRpfWVtICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLy8gVE9ETzogcmVmYWN0b3I/XG5pbnB1dCArIHNlbGVjdCB7d2lkdGg6IGF1dG87fVxuXG50ZXh0YXJlYSB7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDVlbTtcbiAgcmVzaXplOiB2ZXJ0aWNhbDtcbn1cblxubGFiZWwge1xuICBsaW5lLWhlaWdodDogMS4xO1xuICBtYXJnaW4tYm90dG9tOiAwLjNlbTtcbn1cblxubGVnZW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcbiAgZm9udC13ZWlnaHQ6ICRib2xkLXdlaWdodDtcbiAgbGluZS1oZWlnaHQ6IDEuMTtcbiAgcGFkZGluZzogMDtcbn1cblxuLy8gcmVmZXJlbmNlOiBodHRwOi8vdGhhdGVtaWwuY29tL2Jsb2cvMjAxNS8wMS8wMy9yZXNldC15b3VyLWZpZWxkc2V0L1xuZmllbGRzZXQge1xuICBib3JkZXI6IDA7XG4gIG1pbi13aWR0aDogMDtcbiAgcGFkZGluZzogMDtcbn1cblxuYm9keTpub3QoOi1tb3otaGFuZGxlci1ibG9ja2VkKSBmaWVsZHNldCB7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG59XG5cbi8vIFRPRE86IHJlZmFjdG9yIHRvIHRhcmdldCBiZXR0ZXIgdG8gZm9ybSB0eXBlc1xubGkge1xuICBzZWxlY3Q6b25seS1vZi10eXBlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuXG46Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge2NvbG9yOiAkcGxhY2Vob2xkZXItdGV4dC1jb2xvcjt9XG46LW1vei1wbGFjZWhvbGRlciB7Y29sb3I6ICRwbGFjZWhvbGRlci10ZXh0LWNvbG9yO31cbjo6LW1vei1wbGFjZWhvbGRlciB7Y29sb3I6ICRwbGFjZWhvbGRlci10ZXh0LWNvbG9yO31cbjotbXMtaW5wdXQtcGxhY2Vob2xkZXIge2NvbG9yOiAkcGxhY2Vob2xkZXItdGV4dC1jb2xvcjt9XG46OmlucHV0LXBsYWNlaG9sZGVyIHtjb2xvcjogJHBsYWNlaG9sZGVyLXRleHQtY29sb3I7fVxuIiwiLy8gXCJNYXRlcmlhbCBEZXNpZ25cIiBzdHlsZSBmb3JtIGVsZW1lbnRzICh3aXRob3V0IGFuaW1hdGVkIGxhYmVscylcblxuaW5wdXQ6bm90KFt0eXBlPVwic3VibWl0XCJdKTpub3QoW3R5cGU9XCJyZXNldFwiXSk6bm90KFt0eXBlPVwiZmlsZVwiXSk6bm90KFt0eXBlPVwiYnV0dG9uXCJdKTpub3QoW3R5cGU9XCJyYWRpb1wiXSk6bm90KFt0eXBlPVwiY2hlY2tib3hcIl0pLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBAZXh0ZW5kICVib3JkZXItY29sb3ItdHJhbnNpdGlvbjtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgJjpmb2N1cyB7XG4gICAgYm9yZGVyLWNvbG9yOiAkc29maS1hY2Nlc2liaWxpdHktYmx1ZSAhaW1wb3J0YW50O1xuICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICBvdXRsaW5lOiAwO1xuICB9XG5cbiAgJjpkaXNhYmxlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICBjb2xvcjogJGRlZmF1bHQtdGV4dC1jb2xvcjtcbiAgICAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogJGRlZmF1bHQtdGV4dC1jb2xvcjtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHJlc2l6ZTogbm9uZTtcbiAgfVxufVxuXG5pbnB1dDpub3QoW3R5cGU9XCJzdWJtaXRcIl0pOm5vdChbdHlwZT1cInJlc2V0XCJdKTpub3QoW3R5cGU9XCJmaWxlXCJdKTpub3QoW3R5cGU9XCJidXR0b25cIl0pOm5vdChbdHlwZT1cInJhZGlvXCJdKTpub3QoW3R5cGU9XCJjaGVja2JveFwiXSksXG5zZWxlY3Qge1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkZ3JleS1ib3JkZXItY29sb3I7XG4gIHBhZGRpbmc6IDA7XG5cbiAgJjpmb2N1cyB7XG4gICAgYm9yZGVyLXdpZHRoOiAwIDAgMXB4IDAgIWltcG9ydGFudDtcbiAgfVxufVxuXG50ZXh0YXJlYSB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICRncmV5LWJvcmRlci1jb2xvcjtcbiAgcGFkZGluZzogMC4xZW0gMC4zZW07XG59XG5cbmlucHV0Om5vdChbdHlwZT1cInN1Ym1pdFwiXSk6bm90KFt0eXBlPVwicmVzZXRcIl0pOm5vdChbdHlwZT1cImZpbGVcIl0pOm5vdChbdHlwZT1cImJ1dHRvblwiXSk6bm90KFt0eXBlPVwicmFkaW9cIl0pOm5vdChbdHlwZT1cImNoZWNrYm94XCJdKSxcbnNlbGVjdCB7XG4gIGhlaWdodDogJGlucHV0LWhlaWdodDtcbn1cblxuc2VsZWN0IHtcbiAgYmFja2dyb3VuZDogdXJsKFwiLi9saWJyYXJpZXMvc29maS1nbG9iYWwvYXNzZXRzL2ltYWdlcy9pY29ucy9hcnJvdy1hbmdsZS1kb3duLnN2Z1wiKSBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IC42ZW0gYm90dG9tIDUwJTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgLy8gY2hlY2sgaWYgdGhpcyBpcyBuZWVkZWQ6XG4gIC1tb3otYm9yZGVyLXJhZGl1czogMDtcbiAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMDtcbiAgcGFkZGluZy1yaWdodDogMi4yZW07XG4gIG1pbi13aWR0aDogNWVtO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICY6Oi1tcy1leHBhbmQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICArIHNlbGVjdCB7XG4gICAgbWFyZ2luLWxlZnQ6ICR0ZXh0LXNwYWNlLWNvbXBhY3Q7XG4gIH1cbn1cblxuLy8gcmVmYWN0b3JcbmxhYmVsICsgdWwsXG5sYWJlbCArIG9sIHtcbiAgbWFyZ2luLXRvcDogJHRleHQtc3BhY2UgIWltcG9ydGFudDtcbn1cblxuZmllbGRzZXQgKyBmaWVsZHNldCB7XG4gIG1hcmdpbi10b3A6ICRjb250ZW50LXNwYWNlO1xufSIsIi8vIFRhYmxlcyAoZm9yIHRhYnVsYXIgZGF0YSBvbmx5KVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbmNhcHRpb24sIHRoIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuY2FwdGlvbiB7XG4gIEBleHRlbmQgJWhlYWRlci00O1xuICBwYWRkaW5nLWJvdHRvbTogMC4zZW07XG5cbiAgJjplbXB0eSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG50YWJsZSB7XG4gIEBleHRlbmQgJXZlcnQtdGV4dC1zcGFjaW5nO1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xufVxuXG50aCxcbnRkIHtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgcGFkZGluZzogMC4xZW0gMC41ZW07XG5cbiAgQGluY2x1ZGUgYnAobW9iaWxlKSB7XG4gICAgcGFkZGluZzogMC4xZW0gMC4zZW07XG4gIH1cblxuICAmOmZpcnN0LWNoaWxkIHtwYWRkaW5nLWxlZnQ6IDA7fVxuICAmOmxhc3QtY2hpbGQge3BhZGRpbmctcmlnaHQ6IDA7fVxufVxuXG50aCB7Zm9udC13ZWlnaHQ6ICRib2xkLXdlaWdodDt9XG4iLCIvLyBNZWRpYVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbmltZyxcbmlmcmFtZSxcbmVtYmVkLFxub2JqZWN0IHtcbiAgYm9yZGVyOiAwO1xufVxuXG5pZnJhbWUsXG5lbWJlZCxcbm9iamVjdCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXgtd2lkdGg6IDEwMCU7XG59XG5cbi8vIG1heC13aWR0aCBpcyBkZXBlbmRhbnQgb24gdmlld0JveCBhdHRyaWJ1dGUgYmVpbmcgc2V0XG5zdmcge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXgtaGVpZ2h0OiAxMDAlOyAvLyBmaXhlcyBzY2FsaW5nIG9mIGhlaWdodCBhbmQgY29udGFpbmVyIGluIHZhcmlvdXMgYnJvd3NlcnNcbn1cblxuLy8gV2Via2l0IGFuZCBGRiBvbmx5IChub3QgSUUpIC0gSUUxMCBhbmQgYWJvdmUgZG9uJ3Qgc3VwcG9ydCBjb25kaXRpb25hbCBjb21tZW50c1xuQG1lZGlhIHNjcmVlbiBhbmQgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzowKSwgKG1pbi0tbW96LWRldmljZS1waXhlbC1yYXRpbzowKSB7XG4gIC8vIGZpeGVzIGhlaWdodCBzY2FsaW5nIGluIG5vbi1pZSBicm93c2VycyBidXQgY2F1c2VzIElFIHRvIGRpc3BsYXkgc3ZnIGF0IGEgc21hbGwgZGVmYXVsdCBzaXplXG4gIHN2ZyB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICB9XG59IiwiLy8gVGVtcGxhdGVzIChzaGFyZWQgcGFnZSB0ZW1wbGF0ZXMgLyBjaHJvbWUpXG5AaW1wb3J0IFwic3ViL3BhZ2UtbmF2XCI7XG5AaW1wb3J0IFwic3ViL3BhZ2UtYmFja2dyb3VuZHNcIjtcbiIsIi8qZG9jXG4tLS1cbnRpdGxlOiBUZW1wbGF0ZXNcbm5hbWU6IGFhYVRlbXBsYXRlc1xuY2F0ZWdvcnk6IFRlbXBsYXRlc1xuLS0tXG5cblRlbXBsYXRlID0gc2hhcmVkIHBhZ2UgdGVtcGxhdGUgc3RydWN0dXJlIGFuZCByZWxhdGVkIGVsZW1lbnRzIHN1Y2ggYXMgY29tbW9uIGhlYWRlcnMgYW5kIGZvb3RlcnMsIG5hdmJhcnMsIGV0Yy5cblxuPHN0cm9uZz5UT0RPOjwvc3Ryb25nPiBJbmNsdWRlIGV4YW1wbGVzIG9mIHBhZ2UgdGVtcGxhdGUgdHlwZXMgaW4gZG9jdW1lbnRhdGlvbi5cbiovXG5cbi8qZG9jXG4tLS1cbnRpdGxlOiBQYWdlIFRlbXBsYXRlIFN0cnVjdHVyZVxubmFtZTogcGFnZVRlbXBsYXRlU3RydWN0dXJlXG5jYXRlZ29yeTogVGVtcGxhdGVzXG4tLS1cblxuVGhpcyBpcyB0aGUgdW5kZXJseWluZyB0ZW1wbGF0ZSBzdHJ1Y3R1cmUgZm9yIGFsbCBwYWdlcy5cblxuPHVsIGNsYXNzPVwiYnVsbGV0ZWQtbGlzdFwiPlxuICA8bGk+XG4gICAgZGl2LnBhZ2VcbiAgICA8dWwgY2xhc3M9XCJidWxsZXRlZC1saXN0XCI+XG4gICAgICA8bGk+XG4gICAgICAgIDxzdHJvbmc+aGVhZGVyLnBhZ2VfX2hlYWRlcjwvc3Ryb25nPlxuICAgICAgICA8dWwgY2xhc3M9XCJidWxsZXRlZC1saXN0XCI+XG4gICAgICAgICAgPGxpPlxuICAgICAgICAgICAgbmF2Lm5hdi1iYXJcbiAgICAgICAgICAgIDx1bCBjbGFzcz1cImJ1bGxldGVkLWxpc3RcIj5cbiAgICAgICAgICAgICAgPGxpPmEubmF2LWJhcl9fbG9nbzwvbGk+XG4gICAgICAgICAgICAgIDxsaT51bC5uYXYtYmFyX19tZW51IDxzbWFsbD48ZW0+KG9wdGlvbmFsLCBub3Qgb24gbG9nZ2VkIG91dCBwYWdlcyk8L2VtPjwvc21hbGw+PC9saT5cbiAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgPC9saT5cblxuICAgICAgICAgIDxsaT5kaXYuaGVscC1wYW5lbDwvbGk+XG4gICAgICAgIDwvdWw+XG4gICAgICA8L2xpPlxuXG4gICAgICA8bGk+XG4gICAgICAgIDxzdHJvbmc+bWFpbi5wYWdlX19tYWluPC9zdHJvbmc+XG4gICAgICAgIDx1bCBjbGFzcz1cImJ1bGxldGVkLWxpc3RcIj5cbiAgICAgICAgICA8bGk+aGVhZGVyLm1haW5fX2hlYWRlciA8c21hbGw+PGVtPihvcHRpb25hbCk8L2VtPjwvc21hbGw+PC9saT5cbiAgICAgICAgICA8bGk+XG4gICAgICAgICAgICBkaXYubWFpbl9fYm9keSA8c21hbGw+PGVtPihhZGRzIGNvbnNpc3RlbnQgcGFkZGluZyBhcm91bmQgY29udGVudCwgb3B0aW9uYWwpPC9lbT48L3NtYWxsPlxuICAgICAgICAgICAgPHVsIGNsYXNzPVwiYnVsbGV0ZWQtbGlzdFwiPlxuICAgICAgICAgICAgICA8bGk+c2VjdGlvbi5jb250ZW50LXNlY3Rpb24gPHNtYWxsPjxlbT4oVGhpcyBpbm5lciBjb250ZW50IGNvbnRhaW5lciBtYXkgYmUgcmVmYWN0b3JlZCBpbiB0aGUgZnV0dXJlLCBvcHRpb25hbCk8L2VtPjwvc21hbGw+PC9saT5cbiAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgPC9saT5cbiAgICAgICAgPC91bD5cbiAgICAgIDwvbGk+XG5cbiAgICAgIDxsaT5cbiAgICAgICAgPHN0cm9uZz5mb290ZXIucGFnZV9fZm9vdGVyPC9zdHJvbmc+IDxzbWFsbD48ZW0+KG9wdGlvbmFsLCBub3QgaW5jbHVkZWQgb24gYWxsIHBhZ2VzKTwvZW0+PC9zbWFsbD5cbiAgICAgIDwvbGk+XG4gICAgPC91bD5cbiAgPC9saT5cbjwvdWw+XG5cbiovXG5cblxuLnBhZ2Uge1xuICAvLyBmaXggc2FmYXJpIG1vYmlsZSBsYXlvdXQgYnVnOlxuICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gIC8vIE5hdmJhcjpcbiAgJl9faGVhZGVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkZ3JleS1saWdodDtcbiAgICAvLyBvbmUtc2lkZWQgKGJvdHRvbSlcbiAgICBib3gtc2hhZG93OlxuICAgICAgMCAxcHggMXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjA1KSxcbiAgICAgIDAgNXB4IDVweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4xKVxuICAgIDtcbiAgICBtaW4taGVpZ2h0OiAkcGFnZS1oZWFkZXItaGVpZ2h0O1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgbGVmdDogMDtcbiAgICB6LWluZGV4OiA3MDA7XG4gIH1cblxuICAvLyBUT0RPOiBMb29rIGludG8gSlMgc29sdXRpb24gdG8gbWVhc3VyZSBoZWlnaHQgb2YgZml4ZWQgaGVhZGVyIGFuZCBhZGQgaW4gcGFkZGluZyB0byBtYXRjaFxuICAmX19tYWluIHtcbiAgICBwYWRkaW5nLXRvcDogJHBhZ2UtaGVhZGVyLWhlaWdodDsgLy8gc3BhY2UgZm9yIGZpeGVkIGhlYWRlclxuICAgIG1pbi1oZWlnaHQ6IDQwdmg7XG4gIH1cblxuICAmX19mb290ZXIge1xuICAgIGZvbnQtc2l6ZTogJHNtYWxsLWZvbnQtc2l6ZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JleS1saWdodDtcbiAgICBjb2xvcjogIzViNWI1YjtcblxuICAgIC8vIFRPRE86IHNpbXBsaWZ5IGZvb3RlciBjb250ZW50IHN0cnVjdHVyZSBhbmQgc3R5bGVzXG4gICAgJl9fbWFpbixcbiAgICAmX19zdWJmb290ZXIge1xuICAgICAgQGV4dGVuZCAlZXh0ZW5kLWJhY2tncm91bmQ7XG4gICAgICBAZXh0ZW5kICVjb25zdHJhaW4tY29udGVudDtcbiAgICAgIHBhZGRpbmctdG9wOiAkY29udGVudC1zcGFjZS1kb3VibGU7XG4gICAgfVxuXG4gICAgJl9fbWFpbiB7XG4gICAgICBsaW5lLWhlaWdodDogMS42O1xuICAgICAgcGFkZGluZy1ib3R0b206ICRjb250ZW50LXNwYWNlLWRvdWJsZTtcbiAgICB9XG5cbiAgICAmX19zdWJmb290ZXIge1xuICAgICAgLy8gVE9ETzogTmVlZCBhIGJldHRlciBwYWdlLXNwZWNpZmljIHdheSB0byByZXNlcnZlIHNwYWNlIGZvciBmaXhlZCBwb3NpdGlvbiBwYWdlLXRvb2xiYXJcbiAgICAgIHBhZGRpbmctYm90dG9tOiAkY29udGVudC1zcGFjZSArICRwYWdlLXRvb2xiYXItaGVpZ2h0O1xuICAgICAgZm9udC1zaXplOiAkc21hbGwtZm9udC1zaXplO1xuICAgICAgYmFja2dyb3VuZDogJGdyZXktbWVkLWxpZ2h0O1xuXG4gICAgICBhLFxuICAgICAgYTpob3ZlciB7XG4gICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgfVxuXG4gICAgICBwIGEge3RleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO31cbiAgICB9XG5cbiAgICAmX19jb3B5cmlnaHQge1xuICAgICAgcGFkZGluZy10b3A6ICRjb250ZW50LXNwYWNlO1xuXG4gICAgICAmX19uYXYtbGlua3Mge1xuICAgICAgICBAZXh0ZW5kICVidWxsZXQtc2VwYXJhdGVkLWhvcml6LWxpc3Q7XG4gICAgICB9XG5cbiAgICAgICZfX3RoaXJkLXBhcnR5LWxvZ29zIHtcbiAgICAgICAgQGluY2x1ZGUgYnAodGFibGV0LWFuZC1hYm92ZSkge1xuICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgPiAqIHtcbiAgICAgICAgICBAZXh0ZW5kICVob3Jpei10ZXh0LXNwYWNpbmc7XG4gICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICZfX25hdi1saW5rcyB7XG4gICAgICBsaSArIGxpIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMC41ZW07XG4gICAgICB9XG5cbiAgICAgIGEge2xpbmUtaGVpZ2h0OiAxLjI7fVxuICAgIH1cblxuICAgICZfX3NvY2lhbC1saW5rcyB7XG4gICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAyLjI7XG5cbiAgICAgIFtjbGFzc149XCJpY29uLVwiXSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMi44cmVtO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4ubmF2LWJhciB7XG4gIEBleHRlbmQgJWwtanVzdGlmaWVkLWJsb2NrO1xuICBAaW5jbHVkZSBhbGlnbkl0ZW1zKGNlbnRlcik7XG4gIEBleHRlbmQgJWNvbnN0cmFpbi1jb250ZW50O1xuICBwYWRkaW5nLXRvcDogMS4wcmVtO1xuICBwYWRkaW5nLWJvdHRvbTogMS4wcmVtO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDM7XG5cbiAgYSB7XG4gICAgY29sb3I6ICRncmV5LWxpbmtzO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuXG4gICAgJjpob3ZlciB7Y29sb3I6ICRzb2ZpLWJsdWU7fVxuICB9XG5cbiAgJl9fbG9nbyB7XG4gICAgQGV4dGVuZCAlaW1hZ2UtcmVwbGFjZW1lbnQ7XG4gICAgYmFja2dyb3VuZDogdXJsKFwiLi9saWJyYXJpZXMvc29maS1nbG9iYWwvYXNzZXRzL2ltYWdlcy9sb2dvcy1zb2ZpL3NvZmktbG9nby5zdmdcIikgbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IDg4cHg7XG4gICAgaGVpZ2h0OiAzMXB4O1xuICB9XG5cbiAgLy8gVE9ETzogQ3JlYXRlIC8gdXBkYXRlIHJldXNhYmxlIGxheW91dCBwYXR0ZXJuXG4gICZfX21lbnUge1xuICAgIC8vIHRvZG86IHJlZmFjdG9yXG4gICAgbWFyZ2luLXRvcDogMDtcblxuICAgID4gbGkge1xuICAgICAgQGV4dGVuZCAlaG9yaXotdGV4dC1zcGFjaW5nO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cbiAgfVxuXG4gICZfX3N1Yi1tZW51IHtcbiAgICAmX19zZWN0aW9uLWhlYWRlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkZ3JleS1tZWQtbGlnaHQ7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGdyZXktYm9yZGVyLWNvbG9yO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBwYWRkaW5nOiAwLjRlbSAxZW07XG4gICAgfVxuXG4gICAgdWwge21hcmdpbi10b3A6IDA7fVxuICB9XG59XG5cbi8vIE5FVywgV0lQXG4uaGVscC1wYW5lbCB7XG4gIEBleHRlbmQgJXVuaXZlcnNhbC10cmFuc2l0aW9uO1xuICBAZXh0ZW5kICVjb25zdHJhaW4tY29udGVudDtcbiAgQGV4dGVuZCAlZXh0ZW5kLWJhY2tncm91bmQ7XG4gIGZvbnQtc2l6ZTogJHNtYWxsLWZvbnQtc2l6ZTtcbiAgYmFja2dyb3VuZDogJGNvb2wtZ3JheS0xYztcbiAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgcGFkZGluZzogJGNvbnRlbnQtc3BhY2U7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICBAaW5jbHVkZSBicChtb2JpbGUpIHtcbiAgICBoZWlnaHQ6IGNhbGMoMTAwdmggLSAjeyRwYWdlLWhlYWRlci1oZWlnaHR9KTtcbiAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgfVxuXG4gICZfX2Nsb3NlIHtcbiAgICBAZXh0ZW5kICVleHBhbmQtdG91Y2gtdGFyZ2V0O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6ICRjb250ZW50LXNwYWNlLWhhbGY7XG4gICAgdG9wOiAkY29udGVudC1zcGFjZS1oYWxmO1xuICAgIHotaW5kZXg6IDI7XG4gIH1cblxuICAvLyB0ZXN0aW5nOlxuICAmOm5vdCguYWN0aXZlKSB7XG4gICAgaGVpZ2h0OiAwO1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47IC8vIHRoaXMgbmVlZHMgdG8gYmUgcmVmYWN0b3JlZCBvciBlbHNlIGdyZXkgYmFja2dyb3VuZCBuZWVkcyB0byBtb3ZlIHRvIGEgd3JhcHBlciBlbGVtXG4gIH1cbn1cblxuZGl2W2RhdGEtbm9zY3JpcHRdIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLm5hdi1iYXJfX3N1Yi1tZW51IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgQGluY2x1ZGUgYnAobW9iaWxlLWFuZC10YWJsZXQpIHtcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICB9XG5cbiAgQGluY2x1ZGUgYnAoZGVza3RvcC1hbmQtYWJvdmUpIHtcbiAgICBwYWRkaW5nOiAwLjVlbSAwO1xuICB9XG5cbiAgLy8gZ2V0IHJpZCBvZiBkaXYgYWRkZWQgYnkgYm9vdHN0cmFwLmpzIGJsb2NraW5nIGNsaWNraW5nIG9uIGxpbmtzIChpZiB3ZSBkbyBjdXN0b20ganMgZm9yIHRoaXMgZHJvcGRvd24gbWVudSB0aGVuIHJlbW92ZSlcbiAgLmRyb3Bkb3duLWJhY2tkcm9wIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubmF2LWJhcl9fc3ViLW1lbnVfX2NvbnRyb2wge1xuICAgIEBpbmNsdWRlIGhvdmVyTGluaztcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICBAaW5jbHVkZSBicChtb2JpbGUpIHtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICBmb250LXNpemU6IDMuMnJlbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnAodGFibGV0LWFuZC1hYm92ZSkge1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICBtaW4td2lkdGg6IDllbTtcbiAgICB9XG4gIH1cblxuICAmX19jb250ZW50LXdyYXBwZXIge1xuICAgIEBleHRlbmQgJWRpc2FibGUtdXNlci1pbnRlcmFjdGlvbjtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDEwMCU7XG4gICAgcmlnaHQ6IDA7XG5cbiAgICB1bCB7XG4gICAgICBAZXh0ZW5kICVlbmFibGUtdXNlci1pbnRlcmFjdGlvbjtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicChtb2JpbGUtYW5kLXRhYmxldCkge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnAoZGVza3RvcC1hbmQtYWJvdmUpIHtcbiAgICAgIGxlZnQ6IDA7XG4gICAgfVxuICB9XG5cbiAgJl9fbGlzdCB7XG4gICAgQGluY2x1ZGUgdHJhbnNmb3JtVHJhbnNpdGlvbjtcbiAgICBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlWSgtMTAwJSkpO1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGdyZXktYm9yZGVyLWNvbG9yO1xuICAgIG1hcmdpbjogMDtcblxuICAgIC8vIHNoYWRvdzpcbiAgICBAaW5jbHVkZSBicChtb2JpbGUtYW5kLXRhYmxldCkge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAmOmJlZm9yZSB7XG4gICAgICAgIEBpbmNsdWRlIGRpc2FibGVVc2VySW50ZXJhY3Rpb247XG4gICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgNnB4IDEwcHggLTEwcHggcmdiYSgwLCAwLCAwLCAuNjUpO1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHotaW5kZXg6IDI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgbGkge1xuICAgICAgZm9udC1zaXplOiAkc21hbGwtZm9udC1zaXplO1xuXG4gICAgICArIGxpIHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRncmV5LWJvcmRlci1jb2xvcjsgLy8gTWFrZSB2aXN1YWwgcGF0dGVybj9cbiAgICAgIH1cbiAgICB9XG5cbiAgICBhIHtcbiAgICAgIEBpbmNsdWRlIGJhY2tncm91bmRUcmFuc2l0aW9uO1xuICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBwYWRkaW5nOiAwLjhlbSAxZW07XG5cbiAgICAgICY6aG92ZXIsXG4gICAgICAmOmFjdGl2ZSB7XG4gICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICBiYWNrZ3JvdW5kOiAkZ3JleS1saWdodDtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBKUyB0cmlnZ2VyZWQgY2xhc3MgXCJvcGVuXCJcbi8vIFRPRE86IFwib3BlblwiIGNsYXNzIGlzIGFwcGxpZWQgYnkgQm9vdHN0cmFwLCByZXBsYWNlIHNvIEJvb3RzdHJhcCBjYW4gYmUgcmVtb3ZlZFxuLm5hdi1iYXJfX3N1Yi1tZW51Lm9wZW4ge1xuICAubmF2LWJhcl9fc3ViLW1lbnVfX2xpc3Qge1xuICAgIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGVZKDApKTtcbiAgfVxufVxuXG4vLyBTaG93IGJyZWFrIHBvaW50IGFsaWFzIHdoZW4gcmVzaXppbmcgYnJvd3Nlci5cbmRpdltkYXRhLWRldmljZS1icmVha3BvaW50XSB7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgdGV4dC1pbmRlbnQ6IC05OTk5cHg7XG4gIGZvbnQtc2l6ZTogMDtcblxuICAmOmJlZm9yZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIEBpbmNsdWRlIGJwKG1vYmlsZSkge1xuICAgICAgY29udGVudDogJ21vYmlsZSc7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnAodGFibGV0KSB7XG4gICAgICBjb250ZW50OiAndGFibGV0JztcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicChkZXNrdG9wKSB7XG4gICAgICBjb250ZW50OiAnZGVza3RvcCc7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnAod2lkZSkge1xuICAgICAgY29udGVudDogJ3dpZGUnO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gVE9ETzogZGVmaW5lIHdoZXJlIC8gaG93IHRvIHVzZSBncmV5IGJhY2tncm91bmQgc3R5bGVcbi8vIG5vdGU6IHdvdWxkIGJlIG5pY2UgdG8gYWRkIGFzIGEgYm9keSBjbGFzcyBpbnN0ZWFkIGlmIHBvc3NpYmxlIGluc3RlYWQgb2YgbmVlZGluZyBwc2V1ZG8gZWxlbWVudFxuXG4ucGFnZS1iYWNrZ3JvdW5kIHtcbiAgLy8gdGhpcyBpcyBuZWVkZWQgdG8gZW5zdXJlIGJhY2tncm91bmQgZmlsbHMgdGhlIHdob2xlIHNjcmVlbm4gd2l0aG91dCB0cmlnZ2VyaW5nIHVuZWNlc3Nhcnkgc2Nyb2xsIGJhcnMgc2luY2UgdGhlIGNsYXNzIGhhcyB0byBiZSBhZGRlZCBvbiBkaWZmZXJlbnQgbmVzdGVkIGRpdnMgZm9yIGRpZmZlcmVudCBwYWdlcy4gTmVlZCB0byBiZSBjYXJlZnVsIHdpdGggdGhlIHotaW5kZXguLi5cbiAgJjpiZWZvcmUge1xuICAgIC8vIGZvciBpbWFnZSBiYWNrZ3JvdW5kczpcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogdG9wO1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICByaWdodDogMDtcbiAgICB6LWluZGV4OiAtMTtcbiAgfVxuXG4gICYtLWdyZXk6YmVmb3JlIHtcbiAgICBiYWNrZ3JvdW5kOiAkZ3JleS1saWdodDtcbiAgfVxufSIsIi8vQGZvbnQtZmFjZSB7XG4vLyAgZm9udC1mYW1pbHk6ICdzb2ZpLWljb25zJztcbi8vICBzcmM6IHVybCgnLi4vZm9udC9zb2ZpLWljb25zLmVvdD82NTczNzM0MScpO1xuLy8gIHNyYzogdXJsKCcuLi9mb250L3NvZmktaWNvbnMuZW90PzY1NzM3MzQxI2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuLy8gICAgICAgdXJsKCcuLi9mb250L3NvZmktaWNvbnMud29mZjI/NjU3MzczNDEnKSBmb3JtYXQoJ3dvZmYyJyksXG4vLyAgICAgICB1cmwoJy4uL2ZvbnQvc29maS1pY29ucy53b2ZmPzY1NzM3MzQxJykgZm9ybWF0KCd3b2ZmJyksXG4vLyAgICAgICB1cmwoJy4uL2ZvbnQvc29maS1pY29ucy50dGY/NjU3MzczNDEnKSBmb3JtYXQoJ3RydWV0eXBlJyksXG4vLyAgICAgICB1cmwoJy4uL2ZvbnQvc29maS1pY29ucy5zdmc/NjU3MzczNDEjc29maS1pY29ucycpIGZvcm1hdCgnc3ZnJyk7XG4vLyAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbi8vICBmb250LXN0eWxlOiBub3JtYWw7XG4vL31cbi8qIENocm9tZSBoYWNrOiBTVkcgaXMgcmVuZGVyZWQgbW9yZSBzbW9vdGggaW4gV2luZG96emUuIDEwMCUgbWFnaWMsIHVuY29tbWVudCBpZiB5b3UgbmVlZCBpdC4gKi9cbi8qIE5vdGUsIHRoYXQgd2lsbCBicmVhayBoaW50aW5nISBJbiBvdGhlciBPUy1lcyBmb250IHdpbGwgYmUgbm90IGFzIHNoYXJwIGFzIGl0IGNvdWxkIGJlICovXG4vKlxuQG1lZGlhIHNjcmVlbiBhbmQgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzowKSB7XG4gIEBmb250LWZhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiAnc29maS1pY29ucyc7XG4gICAgc3JjOiB1cmwoJy4uL2ZvbnQvc29maS1pY29ucy5zdmc/NjU3MzczNDEjc29maS1pY29ucycpIGZvcm1hdCgnc3ZnJyk7XG4gIH1cbn1cbiovXG4gXG4gW2NsYXNzXj1cImljb24tXCJdOmJlZm9yZSwgW2NsYXNzKj1cIiBpY29uLVwiXTpiZWZvcmUge1xuICBmb250LWZhbWlseTogXCJzb2ZpLWljb25zXCI7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgc3BlYWs6IG5vbmU7XG4gXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0O1xuICB3aWR0aDogMWVtO1xuICBtYXJnaW4tcmlnaHQ6IC4yZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgLyogb3BhY2l0eTogLjg7ICovXG4gXG4gIC8qIEZvciBzYWZldHkgLSByZXNldCBwYXJlbnQgc3R5bGVzLCB0aGF0IGNhbiBicmVhayBnbHlwaCBjb2RlcyovXG4gIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiBcbiAgLyogZml4IGJ1dHRvbnMgaGVpZ2h0LCBmb3IgdHdpdHRlciBib290c3RyYXAgKi9cbiAgbGluZS1oZWlnaHQ6IDFlbTtcbiBcbiAgLyogQW5pbWF0aW9uIGNlbnRlciBjb21wZW5zYXRpb24gLSBtYXJnaW5zIHNob3VsZCBiZSBzeW1tZXRyaWMgKi9cbiAgLyogcmVtb3ZlIGlmIG5vdCBuZWVkZWQgKi9cbiAgbWFyZ2luLWxlZnQ6IC4yZW07XG4gXG4gIC8qIHlvdSBjYW4gYmUgbW9yZSBjb21mb3J0YWJsZSB3aXRoIGluY3JlYXNlZCBpY29ucyBzaXplICovXG4gIC8qIGZvbnQtc2l6ZTogMTIwJTsgKi9cbiBcbiAgLyogRm9udCBzbW9vdGhpbmcuIFRoYXQgd2FzIHRha2VuIGZyb20gVFdCUyAqL1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiBcbiAgLyogVW5jb21tZW50IGZvciAzRCBlZmZlY3QgKi9cbiAgLyogdGV4dC1zaGFkb3c6IDFweCAxcHggMXB4IHJnYmEoMTI3LCAxMjcsIDEyNywgMC4zKTsgKi9cbn1cbiBcbi5pY29uLWxpZmVzYXZlcnM6YmVmb3JlIHsgY29udGVudDogJ1xcZTgwMCc7IH0gLyogJ+6ggCcgKi9cbi5pY29uLXN1aXQ6YmVmb3JlIHsgY29udGVudDogJ1xcZTgwMSc7IH0gLyogJ+6ggScgKi9cbi5pY29uLXNwaW5uZXI6YmVmb3JlIHsgY29udGVudDogJ1xcZTgwMic7IH0gLyogJ+6ggicgKi9cbi5pY29uLXNlYXJjaDpiZWZvcmUgeyBjb250ZW50OiAnXFxlODAzJzsgfSAvKiAn7qCDJyAqL1xuLmljb24tY2FuY2VsLWNpcmNsZWQ6YmVmb3JlIHsgY29udGVudDogJ1xcZTgwNCc7IH0gLyogJ+6ghCcgKi9cbi5pY29uLWNhbmNlbDpiZWZvcmUgeyBjb250ZW50OiAnXFxlODA1JzsgfSAvKiAn7qCFJyAqL1xuLmljb24tcGx1cy1jaXJjbGVkOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MDYnOyB9IC8qICfuoIYnICovXG4uaWNvbi1wbHVzOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MDcnOyB9IC8qICfuoIcnICovXG4uaWNvbi1ob21lOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MDgnOyB9IC8qICfuoIgnICovXG4uaWNvbi1hdHRlbnRpb246YmVmb3JlIHsgY29udGVudDogJ1xcZTgwOSc7IH0gLyogJ+6giScgKi9cbi5pY29uLWFuZ2xlLWRvd246YmVmb3JlIHsgY29udGVudDogJ1xcZTgwYSc7IH0gLyogJ+6giicgKi9cbi5pY29uLXRodW1icy11cC1hbHQ6YmVmb3JlIHsgY29udGVudDogJ1xcZTgwYic7IH0gLyogJ+6giycgKi9cbi5pY29uLWxvY2F0aW9uOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MGMnOyB9IC8qICfuoIwnICovXG4uaWNvbi1kb2MtdGV4dC1pbnY6YmVmb3JlIHsgY29udGVudDogJ1xcZTgwZCc7IH0gLyogJ+6gjScgKi9cbi5pY29uLXJzczpiZWZvcmUgeyBjb250ZW50OiAnXFxlODBlJzsgfSAvKiAn7qCOJyAqL1xuLmljb24tcGhvbmU6YmVmb3JlIHsgY29udGVudDogJ1xcZTgwZic7IH0gLyogJ+6gjycgKi9cbi5pY29uLW1lbnU6YmVmb3JlIHsgY29udGVudDogJ1xcZTgxMCc7IH0gLyogJ+6gkCcgKi9cbi5pY29uLWNvZzpiZWZvcmUgeyBjb250ZW50OiAnXFxlODExJzsgfSAvKiAn7qCRJyAqL1xuLmljb24tY2FsZW5kYXI6YmVmb3JlIHsgY29udGVudDogJ1xcZTgxMic7IH0gLyogJ+6gkicgKi9cbi5pY29uLWxvZ2luOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MTMnOyB9IC8qICfuoJMnICovXG4uaWNvbi1jYW5jZWwtbGFyZ2U6YmVmb3JlIHsgY29udGVudDogJ1xcZTgxNCc7IH0gLyogJ+6glCcgKi9cbi5pY29uLWdwbHVzOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MTUnOyB9IC8qICfuoJUnICovXG4uaWNvbi1vazpiZWZvcmUgeyBjb250ZW50OiAnXFxlODE2JzsgfSAvKiAn7qCWJyAqL1xuLmljb24taW5zdGFncmFtOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MTcnOyB9IC8qICfuoJcnICovXG4uaWNvbi1tYWlsLXNvbGlkOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MTgnOyB9IC8qICfuoJgnICovXG4uaWNvbi1tYWlsLW91dGxpbmU6YmVmb3JlIHsgY29udGVudDogJ1xcZTgxOSc7IH0gLyogJ+6gmScgKi9cbi5pY29uLXR3aXR0ZXI6YmVmb3JlIHsgY29udGVudDogJ1xcZTgxYSc7IH0gLyogJ+6gmicgKi9cbi5pY29uLWdyYWR1YXRpb24tY2FwOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MWInOyB9IC8qICfuoJsnICovXG4uaWNvbi1zaGFyZTpiZWZvcmUgeyBjb250ZW50OiAnXFxlODFjJzsgfSAvKiAn7qCcJyAqL1xuLmljb24tdXNlcjpiZWZvcmUgeyBjb250ZW50OiAnXFxlODFkJzsgfSAvKiAn7qCdJyAqL1xuLmljb24tcGVyY2VudDpiZWZvcmUgeyBjb250ZW50OiAnXFxlODFlJzsgfSAvKiAn7qCeJyAqL1xuLmljb24tbXVzaWMtMTpiZWZvcmUgeyBjb250ZW50OiAnXFxlODFmJzsgfSAvKiAn7qCfJyAqL1xuLmljb24taW5mby1jaXJjbGVkOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MjAnOyB9IC8qICfuoKAnICovXG4uaWNvbi1tb25leTpiZWZvcmUgeyBjb250ZW50OiAnXFxlODIxJzsgfSAvKiAn7qChJyAqL1xuLmljb24taW52ZXN0b3I6YmVmb3JlIHsgY29udGVudDogJ1xcZTgyMic7IH0gLyogJ+6goicgKi9cbi5pY29uLWRvbGxhcjpiZWZvcmUgeyBjb250ZW50OiAnXFxlODIzJzsgfSAvKiAn7qCjJyAqL1xuLmljb24tYmxhbms6YmVmb3JlIHsgY29udGVudDogJ1xcZTgyNCc7IH0gLyogJ+6gpCcgKi9cbi5pY29uLWdsYXNzOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MjUnOyB9IC8qICfuoKUnICovXG4uaWNvbi10YWc6YmVmb3JlIHsgY29udGVudDogJ1xcZTgyNic7IH0gLyogJ+6gpicgKi9cbi5pY29uLW1vYmlsZS1hbHQ6YmVmb3JlIHsgY29udGVudDogJ1xcZTgyNyc7IH0gLyogJ+6gpycgKi9cbi5pY29uLWxvZ291dDpiZWZvcmUgeyBjb250ZW50OiAnXFxlODI4JzsgfSAvKiAn7qCoJyAqL1xuLmljb24tb2stY2lyY2xlZDpiZWZvcmUgeyBjb250ZW50OiAnXFxlODI5JzsgfSAvKiAn7qCpJyAqL1xuLmljb24tZmxhZzpiZWZvcmUgeyBjb250ZW50OiAnXFxlODJhJzsgfSAvKiAn7qCqJyAqL1xuLmljb24tYW5nbGUtdXA6YmVmb3JlIHsgY29udGVudDogJ1xcZTgyYic7IH0gLyogJ+6gqycgKi9cbi5pY29uLXNvcnQtZG93bjpiZWZvcmUgeyBjb250ZW50OiAnXFxlODJjJzsgfSAvKiAn7qCsJyAqL1xuLmljb24tdXBsb2FkOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MmQnOyB9IC8qICfuoK0nICovXG4uaWNvbi1wbGF5LWNpcmNsZWQ6YmVmb3JlIHsgY29udGVudDogJ1xcZTgyZSc7IH0gLyogJ+6gricgKi9cbi5pY29uLXJlc2l6ZS1mdWxsOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MmYnOyB9IC8qICfuoK8nICovXG4uaWNvbi1zdGFycy1saXR0bGU6YmVmb3JlIHsgY29udGVudDogJ1xcZTgzMCc7IH0gLyogJ+6gsCcgKi9cbi5pY29uLWFuZ2xlLWNpcmNsZWQtbGVmdDpiZWZvcmUgeyBjb250ZW50OiAnXFxlODMxJzsgfSAvKiAn7qCxJyAqL1xuLmljb24tYW5nbGUtY2lyY2xlZC1yaWdodDpiZWZvcmUgeyBjb250ZW50OiAnXFxlODMyJzsgfSAvKiAn7qCyJyAqL1xuLmljb24tY29tbWVudDpiZWZvcmUgeyBjb250ZW50OiAnXFxlODMzJzsgfSAvKiAn7qCzJyAqL1xuLmljb24tY2xpcGJvYXJkOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MzQnOyB9IC8qICfuoLQnICovXG4uaWNvbi1hbmdsZS1sZWZ0OmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MzUnOyB9IC8qICfuoLUnICovXG4uaWNvbi1jaGFydC1waWU6YmVmb3JlIHsgY29udGVudDogJ1xcZTgzNic7IH0gLyogJ+6gticgKi9cbi5pY29uLWFuZ2xlLWRvdWJsZS1sZWZ0OmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MzcnOyB9IC8qICfuoLcnICovXG4uaWNvbi1jaGF0OmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MzgnOyB9IC8qICfuoLgnICovXG4uaWNvbi1hbmdsZS1kb3VibGUtcmlnaHQ6YmVmb3JlIHsgY29udGVudDogJ1xcZTgzOSc7IH0gLyogJ+6guScgKi9cbi5pY29uLXZjYXJkOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4M2EnOyB9IC8qICfuoLonICovXG4uaWNvbi1lbGxpcHNpczpiZWZvcmUgeyBjb250ZW50OiAnXFxlODNiJzsgfSAvKiAn7qC7JyAqL1xuLmljb24tYW5nbGUtcmlnaHQ6YmVmb3JlIHsgY29udGVudDogJ1xcZTgzYyc7IH0gLyogJ+6gvCcgKi9cbi5pY29uLXBhcmVudC1sb2FuOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4M2QnOyB9IC8qICfuoL0nICovXG4uaWNvbi1icmllZmNhc2U6YmVmb3JlIHsgY29udGVudDogJ1xcZTgzZSc7IH0gLyogJ+6gvicgKi9cbi5pY29uLWZvbGRlcjpiZWZvcmUgeyBjb250ZW50OiAnXFxlODNmJzsgfSAvKiAn7qC/JyAqL1xuLmljb24tZG93bjpiZWZvcmUgeyBjb250ZW50OiAnXFxlODQwJzsgfSAvKiAn7qGAJyAqL1xuLmljb24tbGVmdDpiZWZvcmUgeyBjb250ZW50OiAnXFxlODQxJzsgfSAvKiAn7qGBJyAqL1xuLmljb24tYXJjaGl2ZTpiZWZvcmUgeyBjb250ZW50OiAnXFxlODQyJzsgfSAvKiAn7qGCJyAqL1xuLmljb24tdG9vbHM6YmVmb3JlIHsgY29udGVudDogJ1xcZTg0Myc7IH0gLyogJ+6hgycgKi9cbi5pY29uLXdhbGxldDpiZWZvcmUgeyBjb250ZW50OiAnXFxlODQ0JzsgfSAvKiAn7qGEJyAqL1xuLmljb24tc29maS1sb2dvOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4NDUnOyB9IC8qICfuoYUnICovXG4uaWNvbi1yaWdodDpiZWZvcmUgeyBjb250ZW50OiAnXFxlODQ2JzsgfSAvKiAn7qGGJyAqL1xuLmljb24tY2lyY2xlLWVtcHR5OmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4NDcnOyB9IC8qICfuoYcnICovXG4uaWNvbi1jaXJjbGU6YmVmb3JlIHsgY29udGVudDogJ1xcZTg0OCc7IH0gLyogJ+6hiCcgKi9cbi5pY29uLXNoaWVsZC1jaGVjazpiZWZvcmUgeyBjb250ZW50OiAnXFxlODQ5JzsgfSAvKiAn7qGJJyAqL1xuLmljb24tZG9sbGFyLXNpZ246YmVmb3JlIHsgY29udGVudDogJ1xcZTg0YSc7IH0gLyogJ+6hiicgKi9cbi5pY29uLXN0YXJzLW1vcmU6YmVmb3JlIHsgY29udGVudDogJ1xcZTg0Yic7IH0gLyogJ+6hiycgKi9cbi5pY29uLXVwOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4NGMnOyB9IC8qICfuoYwnICovXG4uaWNvbi1leGNoYW5nZTpiZWZvcmUgeyBjb250ZW50OiAnXFxlODRkJzsgfSAvKiAn7qGNJyAqL1xuLmljb24tc3RhcnMtbG90czpiZWZvcmUgeyBjb250ZW50OiAnXFxlODRlJzsgfSAvKiAn7qGOJyAqL1xuLmljb24tYXJyb3ctY29tYm86YmVmb3JlIHsgY29udGVudDogJ1xcZTg0Zic7IH0gLyogJ+6hjycgKi9cbi5pY29uLXBsYXktY2lyY2xlZDI6YmVmb3JlIHsgY29udGVudDogJ1xcZTg1MCc7IH0gLyogJ+6hkCcgKi9cbi5pY29uLWNoZWNrOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4NTEnOyB9IC8qICfuoZEnICovXG4uaWNvbi13ZWFsdGg6YmVmb3JlIHsgY29udGVudDogJ1xcZTg1Mic7IH0gLyogJ+6hkicgKi9cbi5pY29uLWxpc3QtYnVsbGV0OmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4NTMnOyB9IC8qICfuoZMnICovXG4uaWNvbi10YWJsZTpiZWZvcmUgeyBjb250ZW50OiAnXFxlODU0JzsgfSAvKiAn7qGUJyAqL1xuLmljb24tbXVzaWM6YmVmb3JlIHsgY29udGVudDogJ1xcZTg1NSc7IH0gLyogJ+6hlScgKi9cbi5pY29uLWZhY2Vib29rOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4NTYnOyB9IC8qICfuoZYnICovXG4uaWNvbi1xdWVzdGlvbi1jaXJjbGVkOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4NTcnOyB9IC8qICfuoZcnICovXG4uaWNvbi11cC1vcGVuOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4NTgnOyB9IC8qICfuoZgnICovXG4uaWNvbi1kb3duLW9wZW46YmVmb3JlIHsgY29udGVudDogJ1xcZTg1OSc7IH0gLyogJ+6hmScgKi9cbi5pY29uLXBlbmNpbDpiZWZvcmUgeyBjb250ZW50OiAnXFxlODVhJzsgfSAvKiAn7qGaJyAqL1xuLmljb24tbGlnaHRidWxiOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4NWInOyB9IC8qICfuoZsnICovXG4uaWNvbi11c2VyczpiZWZvcmUgeyBjb250ZW50OiAnXFxlODVjJzsgfSAvKiAn7qGcJyAqL1xuLmljb24tbGlicmFyeTpiZWZvcmUgeyBjb250ZW50OiAnXFxlODVkJzsgfSAvKiAn7qGdJyAqL1xuLmljb24tc2hpZWxkOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4NWUnOyB9IC8qICfuoZ4nICovXG4uaWNvbi1sb2NrZWQ6YmVmb3JlIHsgY29udGVudDogJ1xcZTg1Zic7IH0gLyogJ+6hnycgKi9cbi5pY29uLXVubG9ja2VkOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4NjAnOyB9IC8qICfuoaAnICovXG4uaWNvbi1lcXVhbC1ob3VzaW5nLWxlbmRlcjpiZWZvcmUgeyBjb250ZW50OiAnXFxlODYxJzsgfSAvKiAn7qGhJyAqL1xuLmljb24tbGlua2VkaW46YmVmb3JlIHsgY29udGVudDogJ1xcZTg2Mic7IH0gLyogJ+6hoicgKi9cbi5pY29uLXF1ZXN0aW9uOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4NjMnOyB9IC8qICfuoaMnICovXG4uaWNvbi1leGNsYW1hdGlvbjpiZWZvcmUgeyBjb250ZW50OiAnXFxlODY0JzsgfSAvKiAn7qGkJyAqL1xuLmljb24tZGlhbW9uZDpiZWZvcmUgeyBjb250ZW50OiAnXFxlODY1JzsgfSAvKiAn7qGlJyAqL1xuLmljb24tcGlnLW91dGxpbmU6YmVmb3JlIHsgY29udGVudDogJ1xcZTg2Nic7IH0gLyogJ+6hpicgKi9cbi5pY29uLWRvbGxhcnM6YmVmb3JlIHsgY29udGVudDogJ1xcZTg2Nyc7IH0gLyogJ+6hpycgKi9cbi5pY29uLXBpZy1zb2xpZDpiZWZvcmUgeyBjb250ZW50OiAnXFxlODY4JzsgfSAvKiAn7qGoJyAqL1xuLmljb24tam9pbnQ6YmVmb3JlIHsgY29udGVudDogJ1xcZTg2OSc7IH0gLyogJ+6hqScgKi9cbi5pY29uLXJlcGVhdGluZzpiZWZvcmUgeyBjb250ZW50OiAnXFxlODZhJzsgfSAvKiAn7qGqJyAqL1xuLmljb24tcGludGVyZXN0OmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4NmInOyB9IC8qICfuoasnICovXG4uaWNvbi1hdHRlbnRpb24tY2lyY2xlZDpiZWZvcmUgeyBjb250ZW50OiAnXFxlODZjJzsgfSAvKiAn7qGsJyAqL1xuLmljb24tZG93bi1kaXI6YmVmb3JlIHsgY29udGVudDogJ1xcZTg2ZCc7IH0gLyogJ+6hrScgKi9cbi5pY29uLXVwLWRpcjpiZWZvcmUgeyBjb250ZW50OiAnXFxlODZlJzsgfSAvKiAn7qGuJyAqLyIsIi8qZG9jXG4tLS1cbnRpdGxlOiBJY29uc1xubmFtZTogaWNvbnNcbmNhdGVnb3J5OiBNb2R1bGVzXG4tLS1cblxuU29GaSBJY29uIEZvbnQ6XG5cbjxzdHJvbmc+VE9ETzo8L3N0cm9uZz4gTmVlZCBhIGJldHRlciB3YXkgdG8gbGluayB0byBhbmQgZGlzcGxheSB0aGlzLlxuXG48YSBocmVmPVwic3RhdGljL2ZvbnRlbGxvLTk4ZjIzZDZkL2RlbW8uaHRtbFwiIHRhcmdldD1cIl9ibGFua1wiPk9wZW4gYWxsIGljb24gZXhhbXBsZXMgYmVsb3cgaW4gbmV3IHdpbmRvdy48L2E+XG5cbjxpZnJhbWUgc3JjPVwic3RhdGljL2ZvbnRlbGxvLTk4ZjIzZDZkL2RlbW8uaHRtbFwiIHdpZHRoPVwiMTAwJVwiIGhlaWdodD1cIjQwMFwiIHN0eWxlPVwiYm9yZGVyOiAxcHggc29saWQgI2NjYztcIj48L2lmcmFtZT5cblxuICovXG5cbi8vIEljb25zXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gTk9URTogaW5kaXZpZHVhbCBpY29uIHN0eWxlcyBhcmUgZ2VuZXJhdGVkIGJ5IEZvbnRlbGxvXG4vLyAoc21hbGxlc3Qgc2l6ZSBmb3IgY2xlYXJlc3QgZGlzcGxheSBpcyAxNnB4KVxuXG5bY2xhc3NePVwiaWNvbi1cIl0ge1xuICBAZXh0ZW5kICVpbWFnZS1yZXBsYWNlbWVudDtcbiAgY3Vyc29yOiBpbmhlcml0O1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgLy8gcHJldmVudCBlZGdlcyBvZiByZW5kZXJlZCBpY29uIGZyb20gYmVpbmcgY3V0IG9mZjpcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIHBhZGRpbmc6IDFweDtcbiAgd2lkdGg6IDFlbTtcbiAgaGVpZ2h0OiAxZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAmOmJlZm9yZSB7XG4gICAgY3Vyc29yOiBpbmhlcml0O1xuICAgIHBhZGRpbmc6IDFweDtcbiAgICB3aWR0aDogMWVtO1xuICAgIGhlaWdodDogMWVtO1xuICAgIG1hcmdpbjogYXV0bztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICB9XG59XG5cbi8vIGljb25zIHVzaW5nIHRleHQgYXMgcGxhY2Vob2xkZXIgaW5zdGVhZCBvZiBpY29uIGZvbnRcbi5pY29uLXRleHQge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LWluZGVudDogMDtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjE1ZW07XG4gIHRleHQtaW5kZW50OiAtMC4xNWVtO1xufVxuXG4uaWNvbi1hY3Rpb24ge1xuICBAZXh0ZW5kICVjb2xvci10cmFuc2l0aW9uO1xuICBib3JkZXI6IDJweCBzb2xpZDtcbiAgYm9yZGVyLXJhZGl1czogNjAwcHg7XG4gIGNvbG9yOiAkc3VidGxlLXRleHQtY29sb3I7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAxLjVlbTtcbiAgaGVpZ2h0OiAxLjVlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNWVtO1xuXG4gICYucG9zaXRpdmU6aG92ZXIge1xuICAgIGNvbG9yOiAkc29maS1ibHVlO1xuICB9XG5cbiAgJi5uZWdhdGl2ZTpob3ZlciB7XG4gICAgY29sb3I6ICRyZWQ7XG4gIH1cbn1cblxuLy8gQ2xhcmlmeSBwYXR0ZXJuOiBTaG91bGQgYWxsIFwiY2lyY2xlZFwiIGljb25zIHJlcHJlc2VudCBhY3Rpb25zP1xuLmljb24tcXVlc3Rpb24tY2lyY2xlZCB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLy8gaW4gTW9iaWxlIHZpZXcsIGJyZWFrIHRvIG5leHQgbGluZSBhbmQgY2VudGVyIGljb24gc28gdG9sbHRpcCB0ZXh0IHdvbid0IGJlIGN1dCBvZmY6XG5AaW5jbHVkZSBicChtb2JpbGUpIHtcbiAgaGVhZGVyIC5pY29uLXF1ZXN0aW9uLWNpcmNsZWQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMi41cmVtICFpbXBvcnRhbnQ7XG4gICAgLy8gbmVlZGVkIHNvIGFic29sdXRlbHkgcG9zaXRpb25lZCBpY29uIGNoYXIgd2lsbCBiZSBjZW50ZXJlZDpcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufSIsIi8qZG9jXG4tLS1cbnRpdGxlOiBBbGVydHNcbm5hbWU6IGFsZXJ0c1xuY2F0ZWdvcnk6IE1vZHVsZXNcbi0tLVxuXG4qKlRPRE86KiogQWxlcnQgZGVzaWduIHBhdHRlcm5zIG5lZWQgdG8gYmUgYmV0dGVyIGRlZmluZWQgYW5kIHN0YW5kYXJkaXplZC5cblxuIyMjR2VuZXJhbCBBbGVydCBNZXNzYWdlc1xuXG5UaGVzZSBhcmUgdXNlZCBmb3IgZ2VuZXJhbCBpbmZvcm1hdGlvbmFsIG1lc3NhZ2VzIG9yIGVycm9yIG1lc3NhZ2VzLiBUaGV5IG9mdGVuIGFwcGVhciBhcyBhIHJlc3VsdCBvZiBhIHVzZXIgYWN0aW9uIHN1Y2ggYXMgYWZ0ZXIgYSBmb3JtIGlzIHN1Ym1pdHRlZC4gVGhlaXIgd2lkdGhzIGFyZSBjb25maW5lZCB0byBjb250ZW50IGFyZWFzIHRoZXkgYXBwZWFyIHdpdGhpbi5cblxuYGBgaHRtbF9leGFtcGxlXG48ZGl2IGNsYXNzPVwiYWxlcnQgYWxlcnQtLWRhbmdlclwiPlxuICAgIDxwPkRhbmdlciBhbGVydDwvcD5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwiYWxlcnQgYWxlcnQtLWluZm9cIj5cbiAgICA8cD5JbmZvIGFsZXJ0PC9wPlxuPC9kaXY+XG5gYGBcblxuIyMjQWxlcnQgQmFubmVyXG5cblRoZXNlIGN1cnJlbnRseSBhcHBlYXIgb25seSBvbiB0aGUgV2VhbHRoIEFjY291bnQgRGFzaGJvYXJkIHBhZ2UuIFRoZXkgc3RyZXRjaCBhY3Jvc3MgdGhlIGZ1bGwgd2lkdGggb2YgdGhlIHNjcmVlbiBhbmQgYXJlIHVzZWQgdG8gaW5mb3JtIHRoZSB1c2VycyBvZiBpbXBvcnRhbnQgYWN0aW9ucyB0aGV5IHNob3VsZCB0YWtlLlxuXG5OT1RFOiBUaGVzZSBtYXkgYmUgcmVkZXNpZ25lZCBhcyBwYXJ0IG9mIHRoZSB1cGNvbWluZyBBY2NvdW50IERhc2hib2FyZCBwYWdlIHJlZGVzaWduLFxuXG5gYGBodG1sX2V4YW1wbGVcbjxkaXYgY2xhc3M9XCJhbGVydC1iYW5uZXIgYWxlcnQtYmFubmVyLS1pbmZvXCI+XG4gIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYWxlcnQtYmFubmVyX19jbG9zZVwiIGFyaWEtbGFiZWw9XCJDbG9zZVwiPlxuICAgIDxpIGNsYXNzPVwiaWNvbi1jYW5jZWxcIj5DbG9zZTwvaT5cbiAgPC9idXR0b24+XG5cbiAgPHA+XG4gICAgKEluZm8gQmFubmVyKSBDb25ncmF0dWxhdGlvbnMgb24geW91ciBuZXcgU29GaSBXZWFsdGggYWNjb3VudCEgPGEgaHJlZj1cIiNcIj5BZGQgRnVuZHMuPC9hPlxuICA8L3A+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cImFsZXJ0LWJhbm5lciBhbGVydC1iYW5uZXItLWRhbmdlclwiPlxuICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImFsZXJ0LWJhbm5lcl9fY2xvc2VcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIj5cbiAgICA8aSBjbGFzcz1cImljb24tY2FuY2VsXCI+Q2xvc2U8L2k+XG4gIDwvYnV0dG9uPlxuXG4gIDxwPlxuICAgIChEYW5nZXIgQmFubmVyKSBDb25ncmF0dWxhdGlvbnMgb24geW91ciBuZXcgU29GaSBXZWFsdGggYWNjb3VudCEgPGEgaHJlZj1cIiNcIj5BZGQgRnVuZHMuPC9hPlxuICA8L3A+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cImFsZXJ0LWJhbm5lciBhbGVydC1iYW5uZXItLW1hcmtldFwiPlxuICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImFsZXJ0LWJhbm5lcl9fY2xvc2VcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIj5cbiAgICA8aSBjbGFzcz1cImljb24tY2FuY2VsXCI+Q2xvc2U8L2k+XG4gIDwvYnV0dG9uPlxuXG4gIDxwPlxuICAgIChNYXJrZXQgQWxlcnQgQmFubmVyKSBDb25ncmF0dWxhdGlvbnMgb24geW91ciBuZXcgU29GaSBXZWFsdGggYWNjb3VudCEgPGEgaHJlZj1cIiNcIj5BZGQgRnVuZHMuPC9hPlxuICA8L3A+XG48L2Rpdj5cbmBgYFxuKi9cblxuXG4vLyBBbGVydHMsIG5vdGljZXMsIHN0YXR1c1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBOT1RFOiB0YWtlbiBmcm9tIG9yaWdpbmFsIGRlc2lnbiwgbW9kaWZ5IGFzIG5lZWRlZDpcbi8vIFRPRE86IFJFRkFDVE9SISEhIFRoZXNlIGRlc2lnbnMgbmVlZCB0byBiZSBpbXByb3ZlZCBhbmQgc3RhbmRhcmRpemVkXG4uYWxlcnQge1xuICBAZXh0ZW5kICV2ZXJ0LXRleHQtc3BhY2luZztcbiAgZm9udC1zaXplOiAkc21hbGwtZm9udC1zaXplO1xuICBwYWRkaW5nOiAxZW07XG5cbiAgKyAqIHtcbiAgICBtYXJnaW4tdG9wOiAxZW07XG4gIH1cblxuICAmLS1kYW5nZXIge1xuICAgIGJhY2tncm91bmQ6ICNmMmRlZGU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2ViY2NkMTtcbiAgICBjb2xvcjogJHdhcm5pbmctcmVkO1xuXG4gICAgYSB7XG4gICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIH1cbiAgfVxuXG4gICYtLWluZm8ge1xuICAgIGJhY2tncm91bmQ6ICRzb2ZpLWJsdWUtbGlnaHQ7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJHNvZmktYmx1ZS1tZWQtbGlnaHQ7XG4gIH1cblxuICAmLS1zdWNjZXNzIHtcbiAgICAvLyBUT0RPOiBOZWVkIGRlc2lnblxuICB9XG5cbiAgLy8gdGVtcG9yYXJ5IHN0eWxlOlxuICAmLS1lbXB0eSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG59XG5cbi8vIFRPRE86IHJlZGVmaW5lIGFuZCBtb3ZlXG4vLyA0MDQgcGFnZXMsIFwibWFyYmxlc1wiXG4uZXJyb3ItcGFnZS1ub3RpY2Uge1xuICBAaW5jbHVkZSBkaXNwbGF5RmxleDtcbiAgQGluY2x1ZGUgYWxpZ25JdGVtcyhjZW50ZXIpO1xuXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWluLWhlaWdodDogNjB2aDtcblxuICAvLyByZWZhY3RvclxuICA+ICoge1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICB9XG59XG5cbi8vIFRPRE86IERlZmluZSBhbmQgc3RhbmRhcmRpemUgZGlmZmVyZW50IGFsZXJ0IGFuZCBiYW5uZXIgdHlwZXMgKGFsZXJ0LCBwcm9tbywgZXRjPylcbi5hbGVydC1iYW5uZXIge1xuICBiYWNrZ3JvdW5kOiAjMTg5OWQ1OyAvLyBkZWZhdWx0IGJhY2tncm91bmQgY29sb3IgZm9yIHNhZmV0eVxuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nOiAkY29udGVudC1zcGFjZS1oYWxmICRjb250ZW50LXNwYWNlLXRocmVlLWZvdXJ0aHM7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAvLyBtYWtlIHBhdHRlcm4/XG4gIGEge1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIGZvbnQtd2VpZ2h0OiAkYm9sZC13ZWlnaHQ7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIH1cbiAgfVxuXG4gIC8vIFRPRE86IHRoaXMgaXMgcGFydGlhbGx5IGR1cGxpY2F0ZWQgZnJvbSB0aGUgbW9kYWwgY2xvc2UgYnV0dG9uLCByZWZhY3RvciBpbnRvIHBhdHRlcm5cbiAgJl9fY2xvc2Uge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlcjogMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgcGFkZGluZzogMDtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMC4xZW07XG4gICAgcmlnaHQ6IDAuMWVtO1xuXG4gICAgKyAqIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgfVxuICB9XG5cbiAgKyAuYWxlcnQtYmFubmVyIHtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgJGdyZXktYm9yZGVyLWNvbG9yO1xuICB9XG5cbiAgJi0taW5mbyB7XG4gICAgYmFja2dyb3VuZDogIzE4OTlkNTtcbiAgfVxuXG4gICYtLWRhbmdlciB7XG4gICAgYmFja2dyb3VuZDogI2NkMGIyNDtcbiAgfVxuXG4gICYtLW1hcmtldCB7XG4gICAgYmFja2dyb3VuZDogJG9yYW5nZTtcbiAgfVxufVxuIiwiLypcbiAgICAtIEJ1dHRvbnNcbiAgICAtIEJ1dHRvbiAmIEFjdGlvbiBjb250YWluZXJzXG4qL1xuXG4vKmRvY1xuLS0tXG50aXRsZTogQnV0dG9uc1xubmFtZTogYnV0dG9uc1xuY2F0ZWdvcnk6IE1vZHVsZXNcbi0tLVxuXG4jI1NpbmdsZSBCdXR0b25zXG5cbmBgYGh0bWxfZXhhbXBsZVxuPHA+XG5SZWd1bGFyIFNpemU6PGJyPlxuICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0blwiPkRlZmF1bHQgQnV0dG9uPC9idXR0b24+XG4gIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi0tc2Vjb25kYXJ5XCI+U2Vjb25kYXJ5IEJ1dHRvbjwvYnV0dG9uPlxuPC9wPlxuPHA+XG5EaXNhYmxlZDo8YnI+XG4gIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuXCIgZGlzYWJsZWQ+RGVmYXVsdCBCdXR0b248L2J1dHRvbj5cbiAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLS1zZWNvbmRhcnlcIiBkaXNhYmxlZD5TZWNvbmRhcnkgQnV0dG9uPC9idXR0b24+XG48L3A+XG48cD5cblNtYWxsOjxicj5cbiAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLS1zbWFsbFwiPkRlZmF1bHQgQnV0dG9uPC9idXR0b24+XG4gIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi0tc2Vjb25kYXJ5IGJ0bi0tc21hbGxcIj5TZWNvbmRhcnkgQnV0dG9uPC9idXR0b24+XG48L3A+XG5cbjxwIHN0eWxlPVwicGFkZGluZzogMWVtOyBiYWNrZ3JvdW5kOiAjZjVmNWY2XCI+XG4gIE9uIGdyZXkgYmFja2dyb3VuZDo8YnI+XG4gIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuXCI+RGVmYXVsdCBCdXR0b248L2J1dHRvbj5cbiAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLS1zZWNvbmRhcnlcIj5TZWNvbmRhcnkgQnV0dG9uPC9idXR0b24+XG4gIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuXCIgZGlzYWJsZWQ+RGVmYXVsdCBCdXR0b248L2J1dHRvbj5cbiAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLS1zZWNvbmRhcnlcIiBkaXNhYmxlZD5TZWNvbmRhcnkgQnV0dG9uPC9idXR0b24+XG48L3A+XG5cbjxwPlxuICBcIkZ1bGxcIiBTaXplOjxicj5cbiAgKGhhcyBhIG1heC13aWR0aCBvZiAzNDVweCk8YnI+XG4gIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi0tZnVsbFwiPkRlZmF1bHQgQnV0dG9uPC9idXR0b24+XG48L3A+XG48cD5cbiAgXCJMb2FkaW5nXCIgc3RhdGUgYnV0dG9uczo8YnI+XG4gIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi0tbG9hZGluZ1wiPkRlZmF1bHQgQnV0dG9uPC9idXR0b24+XG4gIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi0tc2Vjb25kYXJ5IGJ0bi0tbG9hZGluZ1wiPlNlY29uZGFyeSBCdXR0b248L2J1dHRvbj5cbjwvcD5cbmBgYFxuXG4jI0dyb3VwIEJ1dHRvbnNcblxuTk9URTogR3JvdXAgYnV0dG9ucyBhcmUgbW9zdGx5IHVzZWQgaW4gQWR2aXNvciBjdXJyZW50bHkuIERlc2lnbnMgaGF2ZW4ndCBiZWVuIGNvbXBsZXRlbHkgc3RhbmRhcmRpemVkIGJ5IHRoZSBkZXNpZ25lcnMuXG5cbiMjI1RvZ2dsZSBCdXR0b25cblxuYGBgaHRtbF9leGFtcGxlXG48dWwgY2xhc3M9XCJidG4tZ3JvdXAgYnRuLWdyb3VwLS10b2dnbGVcIj5cbiAgICA8bGk+XG4gICAgICAgIDxpbnB1dCB0eXBlPVwicmFkaW9cIiBuYW1lPVwidG9nZ2xlLTFcIiB2YWx1ZT1cInllc1wiIGlkPVwidG9nZ2xlLXllcy0xXCIgY2hlY2tlZD5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiYnRuIGJ0bi0tc21hbGxcIiBmb3I9XCJ0b2dnbGUteWVzLTFcIj5ZZXM8L2xhYmVsPlxuICAgIDwvbGk+XG4gICAgPGxpPlxuICAgICAgICA8aW5wdXQgdHlwZT1cInJhZGlvXCIgbmFtZT1cInRvZ2dsZS0xXCIgdmFsdWU9XCJub1wiIGlkPVwidG9nZ2xlLW5vLTFcIj5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiYnRuIGJ0bi0tc21hbGxcIiBmb3I9XCJ0b2dnbGUtbm8tMVwiPk5vPC9sYWJlbD5cbiAgICA8L2xpPlxuICAgIDxsaT5cbiAgICAgICAgPGlucHV0IHR5cGU9XCJyYWRpb1wiIG5hbWU9XCJ0b2dnbGUtMVwiIHZhbHVlPVwibWF5YmVcIiBpZD1cInRvZ2dsZS1tYXliZS0xXCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImJ0biBidG4tLXNtYWxsXCIgZm9yPVwidG9nZ2xlLW1heWJlLTFcIj5NYXliZTwvbGFiZWw+XG4gICAgPC9saT5cbjwvdWw+XG5cbjxocj5cblxuPHVsIGNsYXNzPVwiYnRuLWdyb3VwIGJ0bi1ncm91cC0tdG9nZ2xlXCI+XG4gICAgPGxpPlxuICAgICAgICA8aW5wdXQgdHlwZT1cInJhZGlvXCIgbmFtZT1cInRvZ2dsZS0yXCIgdmFsdWU9XCJ5ZXNcIiBpZD1cInRvZ2dsZS15ZXMtMlwiIGNoZWNrZWQ+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImJ0blwiIGZvcj1cInRvZ2dsZS15ZXMtMlwiPlllczwvbGFiZWw+XG4gICAgPC9saT5cbiAgICA8bGk+XG4gICAgICAgIDxpbnB1dCB0eXBlPVwicmFkaW9cIiBuYW1lPVwidG9nZ2xlLTJcIiB2YWx1ZT1cIm5vXCIgaWQ9XCJ0b2dnbGUtbm8tMlwiPlxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJidG5cIiBmb3I9XCJ0b2dnbGUtbm8tMlwiPk5vPC9sYWJlbD5cbiAgICA8L2xpPlxuICAgIDxsaT5cbiAgICAgICAgPGlucHV0IHR5cGU9XCJyYWRpb1wiIG5hbWU9XCJ0b2dnbGUtMlwiIHZhbHVlPVwibWF5YmVcIiBpZD1cInRvZ2dsZS1tYXliZS0yXCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImJ0blwiIGZvcj1cInRvZ2dsZS1tYXliZS0yXCI+TWF5YmU8L2xhYmVsPlxuICAgIDwvbGk+XG48L3VsPlxuYGBgXG5cbiMjI0J1dHRvbiB3aXRoIERyb3Bkb3duXG5cbmBgYGh0bWxfZXhhbXBsZVxuPGRpdiBjbGFzcz1cImJ0bi1ncm91cCBkcm9wZG93blwiIGRhdGEtdWliLWRyb3Bkb3duPlxuICAgIDxhIGNsYXNzPVwiYnRuIGJ0bi0tc21hbGxcIiB0YXJnZXQ9XCJfYmxhbmtcIj5cbiAgICAgICAgRG93bmxvYWQgUmVwb3J0XG4gICAgPC9hPlxuXG4gICAgPGRpdiBjbGFzcz1cImRyb3Bkb3duXCI+XG4gICAgICAgIDxhIGNsYXNzPVwiYnRuIGJ0bi0tc21hbGxcIiB0eXBlPVwiYnV0dG9uXCIgZGF0YS11aWItZHJvcGRvd24tdG9nZ2xlPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpY29uLWFuZ2xlLWRvd25cIj48L3NwYW4+XG4gICAgICAgIDwvYT5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd25fX21lbnUtY29udGVudC13cmFwcGVyXCI+XG4gICAgICAgICAgICA8dWwgY2xhc3M9XCJkcm9wZG93bl9fbWVudS1saXN0XCIgcm9sZT1cIm1lbnVcIj5cbiAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImlucHV0LXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBuYW1lPVwiY2hlY2tBbGxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+U2VsZWN0IEFsbDwvc3Ryb25nPlxuICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgIDwvbGk+XG5cbiAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImlucHV0LXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIFRleHRcbiAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8L2xpPlxuXG4gICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJpbnB1dC13cmFwcGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBUZXh0XG4gICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIDwvdWw+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG5gYGBcbiovXG5cblxuLy8gQnV0dG9uc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBOT1RFOiBDaGFuZ2UgZGVmYXVsdCBjb2xvcnMgb2YgYnV0dG9uIGFuZCBhZGQgbW9yZSB0eXBlcyBpZiBuZWVkZWRcbi8vIFRPRE86IHJlZmFjdG9yIGJ1dHRvbiBzdHlsZXMgdG8gbWFrZSBiZXR0ZXIgdXNlIG9mIG1peGluXG4uYnRuIHtcbiAgQGluY2x1ZGUgYnV0dG9uQmFzZSgpO1xuXG4gICY6ZGlzYWJsZWQge1xuICAgIEBleHRlbmQgJWJ1dHRvbi1kaXNhYmxlZDtcbiAgfVxuXG4gIC8vIFRPRE86IEFwcGx5IG1hcmdpbnMgdXNpbmcgc3BhY2luZyBsYXlvdXQgcGF0dGVybnMgKGFwcGx5IHRvIGNvbnRhaW5lcnMsIG5vdCB0byBidXR0b25zIHRoZW1zZWx2ZXM/KVxuICAvLyBOb3RlOiBtYXkgd2FudCB0byByZWZhY3RvciBzaW1pbGFyIGNvZGUgZWxzZXdoZXJlXG4gICsgLmJ0biB7XG4gICAgbWFyZ2luLWxlZnQ6ICR0ZXh0LXNwYWNlLWNvbXBhY3Q7XG4gIH1cblxuICAvLyBOT1RFOiB0aGlzIGlzIGdvaW5nIGF3YXkgc29vbiBpbiB0aGUgV2VhbHRoIHJlZGVzaWduXG4gICYtLWNhbGwtb3V0IHtcbiAgICBiYWNrZ3JvdW5kOiAkeWVsbG93LWdyZWVuLTM2MEM7XG4gICAgYm9yZGVyLWNvbG9yOiAkeWVsbG93LWdyZWVuLTM2MEM7XG4gICAgY29sb3I6ICNmZmY7XG5cbiAgICAmOmhvdmVyLFxuICAgICY6YWN0aXZlIHtcbiAgICAgIGJhY2tncm91bmQ6IGRhcmtlbigkeWVsbG93LWdyZWVuLTM2MEMsIDE0JSk7XG4gICAgICBib3JkZXItY29sb3I6IGRhcmtlbigkeWVsbG93LWdyZWVuLTM2MEMsIDE0JSk7XG4gICAgfVxuICB9XG5cbiAgLy8gVE9ETzogbmVlZHMgdG8gYmUgc3RhbmRhcmRpemVkXG4gICYtLWRhbmdlciB7XG4gICAgYmFja2dyb3VuZDogJHJlZDtcbiAgICBib3JkZXItY29sb3I6ICRyZWQ7XG4gIH1cblxuICAmLS1zZWNvbmRhcnkge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgY29sb3I6ICRzb2ZpLWFjY2VzaWJpbGl0eS1ibHVlO1xuXG4gICAgJjpob3ZlcixcbiAgICAmOmFjdGl2ZSB7XG4gICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgY29sb3I6ICRzb2ZpLWFjY2VzaWJpbGl0eS1ibHVlLWFjdGl2ZTtcbiAgICB9XG4gIH1cblxuICAmLS1sb2FkaW5nIHtcbiAgICAmOmJlZm9yZSxcbiAgICAmOmFmdGVyIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICByaWdodDogMDtcbiAgICAgIGJvdHRvbTogMDtcbiAgICB9XG5cbiAgICAvLyBzcGlubmVyIGljb246XG4gICAgJjpiZWZvcmUge1xuICAgICAgQGV4dGVuZCAuaWNvbi1zcGlubmVyO1xuICAgICAgZm9udC1mYW1pbHk6IFwic29maS1pY29uc1wiO1xuICAgICAgd2lkdGg6IDFlbTtcbiAgICAgIGhlaWdodDogMWVtO1xuICAgICAgLXdlYmtpdC1hbmltYXRpb246IHNwaW4gMnMgaW5maW5pdGUgbGluZWFyO1xuICAgICAgYW5pbWF0aW9uOiBzcGluIDJzIGluZmluaXRlIGxpbmVhcjtcbiAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgIHotaW5kZXg6IDI7XG4gICAgfVxuXG4gICAgLy8gY292ZXIgYnV0dG9uIHRleHQ6XG4gICAgJjphZnRlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICAgICAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICB9XG5cbiAgLy8gTW9kaWZ5IHNpemU6XG4gICYtLXNtYWxsIHtcbiAgICBmb250LXNpemU6IDEuNHJlbSAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmc6IDAuMzVlbSAwLjZlbTtcbiAgICBtaW4td2lkdGg6IDA7XG5cbiAgICBbY2xhc3NePVwiaWNvbi1cIl0ge1xuICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICAgIHRleHQtc2hhZG93OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC8vIFRPRE86IHN0YW5kYXJkaXplIHdpdGggZGVzaWduZXJzXG4gICYtLXRpbnkge1xuICAgIGZvbnQtc2l6ZTogJHNtYWxsLWZvbnQtc2l6ZSAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmc6IDAuMmVtIDAuNmVtO1xuICB9XG5cbiAgLy8gdXBkYXRlIG1haW4tYWN0aW9ucyBjb250YWluZXJzXG4gICYtLWZ1bGwge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAzNDVweDtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICB9XG5cbiAgLy8gcmVkdWNlIHZlcnRpY2FsIG9jY3VwaWVkIHNwYWNlXG4gIFtjbGFzc149XCJpY29uLVwiXSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbi10b3A6IC00cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogLTJweDtcbiAgfVxufVxuXG5cbi8vIEJ1dHRvbiAmIEFjdGlvbiBjb250YWluZXJzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFRPRE86IFJlZmFjdG9yIGFuZCBzaW1wbGlmeSBtYWluLWFjdGlvbnMgbGF5b3V0LiBEZXNpZ24gcGF0dGVybiBpcyB1bmRlcmdvaW5nIGNoYW5nZXMsIG5vdCB5ZXQgc2V0LlxuLy8gUmVmaW5lIHBhdHRlcm46IC5zZWNvbmRhcnktYWN0aW9ucyB7fVxuXG4ubWFpbi1hY3Rpb25zIHtcbiAgQGluY2x1ZGUgZGlzcGxheUZsZXg7XG4gIEBpbmNsdWRlIGFsaWduSXRlbXMoY2VudGVyKTtcbiAgQGluY2x1ZGUgZmxleFdyYXAod3JhcCk7XG4gIEBpbmNsdWRlIGp1c3RpZnlDb250ZW50KHNwYWNlLWJldHdlZW4pO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gIEBpbmNsdWRlIGJwKG1vYmlsZSkge1xuICAgIG1hcmdpbi10b3A6IDEuMmVtO1xuICB9XG5cbiAgQGluY2x1ZGUgYnAodGFibGV0LWFuZC1hYm92ZSkge1xuICAgIG1hcmdpbi10b3A6IDJlbTtcbiAgfVxuXG4gIC8vIG1ha2UgcCB0YWdzIHdyYXAgdG8gbmV4dCBsaW5lIChuZWVkZWQgd2l0aCBmbGV4Ym94IGxheW91dClcbiAgcCB7d2lkdGg6IDEwMCU7fVxuXG4gICsgLm1haW4tYWN0aW9ucyB7XG4gICAgbWFyZ2luLXRvcDogMC44ZW07XG4gIH1cblxuICAuYnRuLFxuICBhIHtcbiAgICBAZXh0ZW5kICVob3Jpei10ZXh0LXNwYWNpbmc7XG4gIH1cblxuICBhOm5vdCguYnRuKSB7XG4gICAgQGV4dGVuZCAlZXhwYW5kLXRvdWNoLXRhcmdldDtcbiAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIG1heC13aWR0aDogNTEuNSU7XG5cbiAgICAmOm9ubHktY2hpbGQge1xuICAgICAgbWF4LXdpZHRoOiBub25lO1xuICAgIH1cbiAgfVxufVxuXG4vLyBUT0RPOiBjbGVhbiAubWFpbi1hY3Rpb25zIHN0eWxlcyB1cFxudGFibGUgLm1haW4tYWN0aW9ucyB7XG4gIG1hcmdpbi10b3A6IDFlbTtcbn1cblxuLmlubGluZS1mb3JtIC5tYWluLWFjdGlvbnMge1xuICBtYXJnaW4tdG9wOiAwO1xufVxuXG4vLyBUT0RPOiByZWZpbmUgcGF0dGVybiBhbmQgcmVuYW1lXG4ubXVsdGktc2VjdGlvbi1mb3JtLWFjdGlvbnMge1xuICBtYXJnaW4tdG9wOiAkY29udGVudC1zcGFjZTtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG5cbiAgLmJ0bixcbiAgYSB7XG4gICAgQGV4dGVuZCAlaG9yaXotdGV4dC1zcGFjaW5nO1xuICB9XG5cbiAgQGluY2x1ZGUgYnAodGFibGV0LWFuZC1hYm92ZSkge1xuICAgIC5idG4ge1xuICAgICAgd2lkdGg6IDM0NXB4O1xuICAgICAgbWF4LXdpZHRoOiA1MCU7XG4gICAgfVxuICB9XG59XG5cbi8vIEJ1dHRvbiBncm91cHNcbi8vIFRPRE86IGRlZmluZSB1c2FnZSBjYXNlcyBiZXR0ZXIuIEN1cnJlbnRseSB0aGlzIGVsZW1lbnQgZGlzcGxheXMgaW5saW5lIGJ1dCBtYXliZSBpdCBzaG91bGQgYmUgYmxvY2s/XG4uYnRuLWdyb3VwIHtcbiAgQGluY2x1ZGUgbC11bmVxdWFsQ2VsbChpbmxpbmUtZmxleCwgIWltcG9ydGFudCk7XG5cbiAgbGFiZWwge1xuICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIH1cblxuICAuYnRuIHtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIG1pbi13aWR0aDogMDtcbiAgfVxuXG4gID4gKiB7XG4gICAgLy8gVE9ETzogdGVzdCBpZiBmbGV4LWdyb3c6IDEgaXMgbmVlZGVkIGZvciBsLXVuZXF1YWxDZWxsIGxheW91dFxuICAgIGZsZXgtZ3JvdzogaW5pdGlhbDtcblxuICAgICsgKiB7XG4gICAgICBtYXJnaW4tbGVmdDogMXB4O1xuICAgIH1cbiAgfVxuXG4gID4gLmJ0bjpmaXJzdC1jaGlsZCxcbiAgPiAqOmZpcnN0LWNoaWxkIC5idG4ge1xuICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6ICRkZWZhdWx0LWJvcmRlci1yYWRpdXM7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogJGRlZmF1bHQtYm9yZGVyLXJhZGl1cztcbiAgfVxuXG4gID4gLmJ0bjpsYXN0LWNoaWxkLFxuICA+ICo6bGFzdC1jaGlsZCAuYnRuIHtcbiAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogJGRlZmF1bHQtYm9yZGVyLXJhZGl1cztcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogJGRlZmF1bHQtYm9yZGVyLXJhZGl1cztcbiAgfVxuXG4gIC8vIHRvZ2dsZSBidXR0b25zXG4gICYtLXRvZ2dsZSB7XG4gICAgLmJ0biB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JleS1tZWQtbGlnaHQ7XG4gICAgICBib3JkZXItY29sb3I6ICRncmV5LW1lZC1saWdodDtcbiAgICAgIGNvbG9yOiAkZGVmYXVsdC10ZXh0LWNvbG9yO1xuICAgIH1cblxuICAgIGlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBjbGlwOiByZWN0KDAgMCAwIDApO1xuXG4gICAgICAmOmNoZWNrZWQgKyAuYnRuIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHNvZmktYWNjZXNpYmlsaXR5LWJsdWU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNvZmktYWNjZXNpYmlsaXR5LWJsdWU7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICB9XG5cbiAgICAgICY6Zm9jdXMgKyAuYnRuIHtcbiAgICAgICAgQGV4dGVuZCAlZm9jdXMtb3V0bGluZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gTkVXLCByZXBsYWNlIFwiZmFrZS1saW5rXCIgY2xhc3MgdXNlZCBvbiBidXR0b25zXG4vLyBVc2FnZTogTWFrZSBhIGJ1dHRvbiBsb29rIGxpa2UgYSBsaW5rXG4uYnRuLWxpbmsge1xuICBAZXh0ZW5kICVkZWZhdWx0LWxpbms7XG4gIGJvcmRlcjogMDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogYXV0bztcbiAgcGFkZGluZzogMC42ZW07XG59IiwiLy8gQ29udGVudCBzZWN0aW9ucyAmIGJveGVzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vKmRvY1xuLS0tXG50aXRsZTogQ29udGFpbmVycyAmIEJveGVzXG5uYW1lOiBjb250YWluZXJzXG5jYXRlZ29yeTogTW9kdWxlc1xuLS0tXG5cbjxzdHJvbmc+VE9ETzo8L3N0cm9uZz4gQ29udGFpbmVyIHR5cGVzIGFuZCB1c2FnZSBzdGlsbCBuZWVkIHRvIGJlIGJldHRlciBkZWZpbmVkIGFuZCBzdGFuZGFyZGl6ZWQuXG5cbiMjQm94ZXNcblxuTk9URTogU29tZSBvciBhbGwgb2YgdGhlc2UgYm94ZXMgd2lsbCBsaWtlbHkgYmUgZ29pbmcgYXdheSBpbiB0aGUgY3VycmVudCByZWRlc2lnbi5cblxuYGBgaHRtbF9leGFtcGxlXG48ZGl2IGNsYXNzPVwiYWNjZW50LWJsdWUtYm94XCI+XG4gIDxwPlRoaXMgaXMgYSBib3guIEl0IGNhbiBoYXZlIGFueSBraW5kIG9mIGNvbnRlbnQuPC9wPlxuICA8cD5UaGlzIGlzIDxhIGhyZWY9XCIjXCI+YSBsaW5rPC9hPiB3aXRoaW4gYSBib3guPC9wPlxuPC9kaXY+XG5cbjxocj5cblxuPGRpdiBjbGFzcz1cImhpZ2hsaWdodC1ib3hcIj5cbiAgPHA+VGhpcyBpcyBhIGJveC4gSXQgY2FuIGhhdmUgYW55IGtpbmQgb2YgY29udGVudC48L3A+XG4gIDxwPlRoaXMgaXMgPGEgaHJlZj1cIiNcIj5hIGxpbms8L2E+IHdpdGhpbiBhIGJveC48L3A+XG48L2Rpdj5cblxuPGhyPlxuXG48ZGl2IGNsYXNzPVwic3VidGxlLWhpZ2hsaWdodC1ib3hcIj5cbiAgPHA+VGhpcyBpcyBhIGJveC4gSXQgY2FuIGhhdmUgYW55IGtpbmQgb2YgY29udGVudC48L3A+XG4gIDxwPlRoaXMgaXMgPGEgaHJlZj1cIiNcIj5hIGxpbms8L2E+IHdpdGhpbiBhIGJveC48L3A+XG48L2Rpdj5cblxuPGhyPlxuXG48ZGl2IGNsYXNzPVwiZGlzY2xhaW1lci1ib3hcIj5cbiAgPHA+VGhpcyBpcyBhIDxzdHJvbmc+ZGlzY2xhaW1lciBib3g8L3N0cm9uZz4uIEl0IGNhbiBoYXZlIGFueSBraW5kIG9mIGNvbnRlbnQgYnV0IGlzIG1lYW50IGZvciBkaXNwbGF5aW5nIGRpc2NsYWltZXIgbWVzc2FnZXMuPC9wPlxuICA8cD5UaGlzIGlzIDxhIGhyZWY9XCIjXCI+YSBsaW5rPC9hPiB3aXRoaW4gYSBib3guPC9wPlxuPC9kaXY+XG5gYGBcblxuIyMjQm94ZXMgdXNlZCBpbiBDb25kZW5zZWQgRm9ybSBmbG93IHNjcmVlbnNcblxuIyMjIyBQcm9ncmVzcyBCb3hcblxuPHN0cm9uZz5UT0RPOjwvc3Ryb25nPiBPcmlnaW5hbGx5IHRoaXMgYm94IHdhcyB1c2VkIHRvIG9ubHkgY29udGFpbiBwcm9ncmVzcyBpbmRpY2F0b3IgbGlzdHMgYnV0IHNlZW1zIHRvIGJlIHVzZWQgZm9yIG90aGVyIHR5cGVzIG9mIGNvbnRlbnQgaW4gc29tZSBXSVAgZGVzaWducyBzbyB3ZSBzaG91bGQgcmVkZWZpbmUgYW5kIHJlbmFtZSBpdC4uLlxuXG5gYGBodG1sX2V4YW1wbGVcbjxkaXYgc3R5bGU9XCJwYWRkaW5nOiAxZW07IGJhY2tncm91bmQ6ICNmNWY1ZjZcIj5cblxuPHNlY3Rpb24gY2xhc3M9XCJwcm9ncmVzcy1ib3ggY29udGVudC1zZWN0aW9uXCI+XG4gICAgPGhlYWRlciBjbGFzcz1cInByb2dyZXNzLWJveF9faGVhZGVyXCI+XG4gICAgICAgIDxoND5Tb0ZpIFdlYWx0aDwvaDQ+XG4gICAgPC9oZWFkZXI+XG5cbiAgICA8ZGl2IGNsYXNzPVwicHJvZ3Jlc3MtYm94X19ib2R5XCI+XG4gICAgICAgIDxvbCBjbGFzcz1cInByb2dyZXNzLWxpc3RcIj5cbiAgICAgICAgICAgIDxsaSBjbGFzcz1cImNvbXBsZXRlXCI+Q3JlYXRlIEFjY291bnQ8L2xpPlxuICAgICAgICAgICAgPGxpIGNsYXNzPVwiY3VycmVudFwiPkNvbXBsZXRlIFlvdXIgUHJvZmlsZTwvbGk+XG4gICAgICAgICAgICA8bGk+UmV2aWV3IFRlcm1zIG9mIFNlcnZpY2U8L2xpPlxuICAgICAgICAgICAgPGxpPkFkZCBGdW5kczwvbGk+XG4gICAgICAgIDwvb2w+XG4gICAgPC9kaXY+XG48L3NlY3Rpb24+XG5cbjwvZGl2PlxuYGBgXG5cbiMjIyMgV2lkZSBCb3hcblxuU28gZmFyIHRoaXMgaXMgYmVpbmcgdXNlZCBpbiB3aWRlIGxlZnQgc2lkZSBjb2x1bW5zIG9uIHR3byBjb2x1bW4gcGFnZXMuIEl0IGluaXRpYWxseSB3YXMgdXNlZCBtYWlubHkgZm9yIGZvcm0gY29udGVudCBzbyB3YXMgb3JpZ2luYWxseSBiYXNlZCBvbiBmb3JtIGZpZWxkc2V0IGFuZCBsZWdlbmQgdGFncyBidXQgbmV3ZXIgbW9ja3Mgc2hvdyBpdCBiZWluZyB1c2VkIGZvciBvdGhlciB0eXBlcyBvZiBjb250ZW50IHNvIGl0J3MgYmVlbiByZWZhY3RvcmVkLlxuXG5XZSBtYXkgd2FudCB0byBjb21lIHVwIHdpdGggYmV0dGVyIG5hbWluZyBhcyB1c2FnZSBwYXR0ZXJucyBiZWNvbWUgY2xlYXJlci4gKE5PVEU6IFRoZSBcImNvbnRlbnQtc2VjdGlvblwiIG1heSBiZSByZWZhY3RvcmVkIG9yIHJlbW92ZWQgaW4gdXBjb21pbmcgcmV2aXNpb25zLilcblxuYGBgaHRtbF9leGFtcGxlXG48ZGl2IHN0eWxlPVwicGFkZGluZzogMWVtOyBiYWNrZ3JvdW5kOiAjZjVmNWY2XCI+XG5cbjxzZWN0aW9uIGNsYXNzPVwid2lkZS1ib3ggY29udGVudC1zZWN0aW9uXCI+XG4gICAgPGhlYWRlciBjbGFzcz1cIndpZGUtYm94X19oZWFkZXJcIj5cbiAgICAgICAgPGg0PkJveCBIZWFkZXI8L2g0PlxuICAgIDwvaGVhZGVyPlxuXG4gICAgPGRpdiBjbGFzcz1cIndpZGUtYm94X19ib2R5XCI+XG4gICAgICAgIENvbnRlbnQgZ29lcyBpbiBoZXJlLi4uXG4gICAgPC9kaXY+XG48L3NlY3Rpb24+XG5cbjwvZGl2PlxuYGBgXG5cbiovXG5cbi8vIG1vdmUgLm1haW5fX2hlYWRlciBhbmQgLm1haW5fX2JvZHkgdG8gXCJmcmFtZVwiP1xuLm1haW5fX2hlYWRlciB7XG4gIEBleHRlbmQgJWNvbnN0cmFpbi1jb250ZW50O1xuICBAZXh0ZW5kICVleHRlbmQtYmFja2dyb3VuZDtcbiAgYmFja2dyb3VuZDogJGdyZXktbWVkLWxpZ2h0O1xuICBwYWRkaW5nLXRvcDogJGNvbnRlbnQtc3BhY2U7XG4gIHBhZGRpbmctYm90dG9tOiAkY29udGVudC1zcGFjZTtcblxuICBoMTpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjZlbTtcbiAgfVxuXG4gICYtLWRhc2hib2FyZCB7XG4gICAgQGV4dGVuZCAlYWNjZW50LWJsdWUtYmFja2dyb3VuZDtcbiAgfVxuXG4gIC8vIE5lZWQgYmV0dGVyIG5hbWU6XG4gICZfX3N1YiB7XG4gICAgQGV4dGVuZCAlY29uc3RyYWluLWNvbnRlbnQ7XG4gICAgQGV4dGVuZCAlZXh0ZW5kLWJhY2tncm91bmQ7XG4gICAgYmFja2dyb3VuZDogJGdyZXktbWVkLWxpZ2h0O1xuICAgIHBhZGRpbmctdG9wOiAkY29udGVudC1zcGFjZTtcbiAgICBwYWRkaW5nLWJvdHRvbTogJGNvbnRlbnQtc3BhY2U7XG5cbiAgICBoMjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDAuNmVtO1xuICAgIH1cbiAgfVxufVxuXG4ubWFpbl9fYm9keSB7XG4gIEBleHRlbmQgJWNvbnN0cmFpbi1jb250ZW50O1xuXG4gIEBpbmNsdWRlIGJwKG1vYmlsZSkge1xuICAgIHBhZGRpbmctdG9wOiAkY29udGVudC1zcGFjZTtcbiAgICBwYWRkaW5nLWJvdHRvbTogJGNvbnRlbnQtc3BhY2U7XG4gIH1cblxuICBAaW5jbHVkZSBicCh0YWJsZXQtYW5kLWFib3ZlKSB7XG4gICAgcGFkZGluZy10b3A6ICRjb250ZW50LXNwYWNlLWRvdWJsZTtcbiAgICBwYWRkaW5nLWJvdHRvbTogJGNvbnRlbnQtc3BhY2UtZG91YmxlO1xuICB9XG59XG5cbi8vIFJFRkFDVE9SIElOIFBST0dSRVNTOiBVc2UgXCJjb250ZW50LXNlY3Rpb24gZm9yIHNlcGFyYXRpbmcgYmxvY2tzIG9mIHJlbGF0ZWQgY29udGVudC4gQ2FuIGJlIGNvbWJpbmVkIHdpdGggXCJib3hcIiBjbGFzc2VzIGZvciBib3hlcyB3aGljaCBhbHNvIG5lZWQgc3BhY2luZyBmcm9tIGVhY2ggb3RoZXJcblxuLy8gaGVhZGVyIGlzIG9wdGlvbmFsXG4vLyBUT0RPOiBcImNvbnRlbnQtc2VjdGlvblwiIG5lZWRzIHRvIGJlIHJlZmFjdG9yZWQuXG4uY29udGVudC1zZWN0aW9uIHtcbiAgLy8gVE9ETzogcmVmYWN0b3Igc3BhY2luZ1xuXG4gIEBpbmNsdWRlIGJwKG1vYmlsZSkge1xuICAgIG1hcmdpbi10b3A6ICRjb250ZW50LXNwYWNlO1xuICAgIG1hcmdpbi1ib3R0b206ICRjb250ZW50LXNwYWNlO1xuICB9XG5cbiAgQGluY2x1ZGUgYnAodGFibGV0LWFuZC1hYm92ZSkge1xuICAgIG1hcmdpbi10b3A6ICRjb250ZW50LXNwYWNlLWFuZC1oYWxmO1xuICAgIG1hcmdpbi1ib3R0b206ICRjb250ZW50LXNwYWNlLWFuZC1oYWxmO1xuICB9XG5cbiAgLy8gbmVlZCB0byBtYWtlIG1vcmUgcmV1c2FibGUsIHJlZmFjdG9yIGNsYXNzIG5hbWVzXG4gIC8vIGNoaWxkcmVuOlxuICAvLyBOT1RFOiBoZWFkZXIgY29udGVudCBtdXN0IGJlIHdyYXBwZWQgaW4gXCJjb25zdHJhaW4tY29udGVudFwiXG4gICZfX2hlYWRlciB7XG4gICAgcGFkZGluZy1ib3R0b206IDEuMGVtO1xuICB9XG5cbiAgLy8gVE9ETzogVGhpcyBubyBsb25nZXIgc2VlbXMgdG8gYmUgdXNlZCwgcmVmYWN0b3IgY29udGVudC1zZWN0aW9uIHR5cGVzIGFuZCBzdWItZWxlbWVudHNcbiAgJl9fYm9keSB7XG4gICAgLy8gVE9ETzogcmVmYWN0b3JcbiAgICBAZXh0ZW5kICVjb25zdHJhaW4tY29udGVudDtcbiAgICBwYWRkaW5nLXRvcDogJGNvbnRlbnQtc3BhY2U7XG4gICAgcGFkZGluZy1ib3R0b206ICRjb250ZW50LXNwYWNlO1xuICB9XG5cbiAgLy8gVE9ETzogcmVmYWN0b3JcbiAgJl9fc3ViLXNlY3Rpb24gKyAqIHtcbiAgICBtYXJnaW4tdG9wOiAkY29udGVudC1zcGFjZTtcbiAgfVxufVxuXG5cbi8vIEJleGVzIC8gQ2FyZHNcbi8vIChDb250YWluZXJzIGZvciBncm91cHMgb2YgY29udGVudC4gTm9ybWFsbHkgaW5jbHVkZSBhIGJhY2tncm91bmQgY29sb3IgYW5kIG9yIGJvcmRlciwgcGFkZGluZyBhbmQgbWF5IGhhdmUgYSBoZWFkZXIgYW5kIGZvb3RlciBidXQgbm90IGFsd2F5cylcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFRPRE86IFJlZmFjdG9yIGFuZCBzaW1wbGlmeSBzeXN0ZW0gb2YgXCJzZWN0aW9uc1wiLCBcImJveGVzXCIsIFwiY29udGFpbmVyc1wiLCBldGMuXG4vLyBDb250ZW50IGJveGVzIChnZW5lcmFsbHkgbmVzdGVkIGluc2lkZSBjb250ZW50LXNlY3Rpb24pXG4lYmFzaWMtYm94LWJhc2Uge1xuICBib3JkZXItcmFkaXVzOiAkZGVmYXVsdC1ib3JkZXItcmFkaXVzO1xuICBwYWRkaW5nOiAkY29udGVudC1zcGFjZTtcbn1cblxuLy8gZGVmaW5lIHVzYWdlIHRoZW4gcmVmYWN0b3I6XG4uYWNjZW50LWJsdWUtYm94IHtcbiAgQGV4dGVuZCAlYmFzaWMtYm94LWJhc2U7XG4gIEBleHRlbmQgJWFjY2VudC1ibHVlLWJhY2tncm91bmQ7XG59XG5cbi5oaWdobGlnaHQtYm94IHtcbiAgQGV4dGVuZCAlYmFzaWMtYm94LWJhc2U7XG4gIGJhY2tncm91bmQ6ICRzb2ZpLWJsdWUtbGlnaHQ7XG59XG5cbi5zdWJ0bGUtaGlnaGxpZ2h0LWJveCxcbi5kaXNjbGFpbWVyLWJveCB7XG4gIEBleHRlbmQgJWJhc2ljLWJveC1iYXNlO1xuICBiYWNrZ3JvdW5kOiAkZ3JleS1saWdodDtcbn1cblxuLy8gbmVlZCB0byBjbGFyaWZ5IHVzYWdlOlxuLmRpc2NsYWltZXItYm94IHtcbiAgZm9udC1zaXplOiAkc21hbGwtZm9udC1zaXplO1xufVxuXG5cbi8vIE5ldyBjb250YWluZXJzIGZvciBDb25kZW5zZWQgRm9ybSBmbG93cyBhbmQgcmVsYXRlZCAtLS0tXG4vLyBOT1RFOiBtYXkgd2FudCB0byBzaW1wbGlmeSBvciBleHRyYWN0IG91dCByZXNwb25zaXZlIHN0eWxlc1xuXG4vLyBuYXJyb3cgY29udGVudCBib3ggd2l0aCBoZWFkZXJcbi5wcm9ncmVzcy1ib3gge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IC8vIGNoZWNrIGlmIG5lZWRlZFxuXG4gIEBpbmNsdWRlIGJwKHRhYmxldC1hbmQtYWJvdmUpIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICB9XG5cbiAgJl9faGVhZGVyLFxuICAmX19ib2R5IHtcbiAgICBAaW5jbHVkZSBicCh0YWJsZXQtYW5kLWFib3ZlKSB7XG4gICAgICBwYWRkaW5nOiAkY29udGVudC1zcGFjZTtcbiAgICB9O1xuICB9XG5cbiAgJl9faGVhZGVyIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGdyZXktYm9yZGVyLWNvbG9yO1xuXG4gICAgLy8gVE9ETzogYWRkIGNsYXNzIG5hbWUgdG8gaGVhZGluZyBlbGVtZW50IGluc3RlYWQgb2Ygc2VsZWN0aW5nIGJ5IGVsZW1lbnRcbiAgICAvLyAodGhpcyBoZWFkaW5nIHN0eWxlIGlzIGFsc28gdXNlZCBieSAud2lkZS1ib3hfX2hlYWRlciwgcmVmYWN0b3IhKVxuICAgIGgyLCBoMywgaDQge1xuICAgICAgQGluY2x1ZGUgYWxsQ2Fwc1RleHQ7XG4gICAgICBmb250LXdlaWdodDogJGJvbGQtd2VpZ2h0O1xuICAgICAgLy8gZGVmaW5lIGZvbnQtc2l6ZSBhcyB2YXJpYWJsZT9cbiAgICAgIGZvbnQtc2l6ZTogMS40cmVtICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnAobW9iaWxlKSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH07XG4gIH1cbn1cblxuLy8gVE9ETzogYWJzdHJhY3QgYmV0dGVyIGludG8gcmV1c2FibGUgcGF0dGVybiBvciByZW5hbWVcbi5ib3JkZXItYm94IHtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgYm9yZGVyOiAxcHggc29saWQgJGdyZXktYm9yZGVyLWNvbG9yO1xuICBib3JkZXItcmFkaXVzOiAkZGVmYXVsdC1ib3JkZXItcmFkaXVzO1xuICBwYWRkaW5nOiAkY29udGVudC1zcGFjZS1oYWxmO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi8vIHdpZGUgYm94LCB1c2VkIGluIHdpZGUgY29sdW1ucyAodXNlZCBpbiBmb3JtIGZsb3dzIGZvciBmb3JtIHNlY3Rpb25zKVxuLndpZGUtYm94IHtcbiAgJl9faGVhZGVyIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIG1hcmdpbi1ib3R0b206IDAuMmVtO1xuXG4gICAgLy8gVE9ETzogYWRkIGNsYXNzIG5hbWUgdG8gaGVhZGluZyBlbGVtZW50IGluc3RlYWQgb2Ygc2VsZWN0aW5nIGJ5IGVsZW1lbnRcbiAgICBoMiwgaDMsIGg0IHtcbiAgICAgIEBpbmNsdWRlIGFsbENhcHNUZXh0O1xuICAgICAgZm9udC13ZWlnaHQ6ICRib2xkLXdlaWdodDtcbiAgICAgIC8vIGRlZmluZSBmb250LXNpemUgYXMgdmFyaWFibGU/XG4gICAgICBmb250LXNpemU6IDEuNHJlbSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gICZfX2JvZHkge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgQGluY2x1ZGUgYnAobW9iaWxlKSB7XG4gICAgICBwYWRkaW5nOiAkY29udGVudC1zcGFjZS1oYWxmO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJwKHRhYmxldCkge1xuICAgICAgcGFkZGluZzogJGNvbnRlbnQtc3BhY2U7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnAoZGVza3RvcC1hbmQtYWJvdmUpIHtcbiAgICAgIHBhZGRpbmc6ICRjb250ZW50LXNwYWNlICRjb250ZW50LXNwYWNlLWRvdWJsZTtcbiAgICB9XG4gIH1cblxuICAvLyBUT0RPOiByZWZhY3RvciBhbGwgZm9ybSByZWxhdGVkIHN0eWxlcyBhbmQgbW92ZVxuICAuZm9ybS1zdGVwLWxpc3Qge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5cbiAgQGluY2x1ZGUgYnAodGFibGV0LWFuZC1hYm92ZSkge1xuICAgIC5mb3JtLXN0ZXAtbGlzdCB7XG4gICAgICBtYXgtd2lkdGg6IDQyMHB4O1xuICAgIH1cbiAgfVxuXG4gIGxhYmVsICsgdWwge1xuICAgIG1hcmdpbi10b3A6IDAuM2VtO1xuICB9XG59XG5cbi8vIFRPRE86IE1vdmU/IHRoaXMgaXMgcmVsYXRlZCB0byBlZGl0aW5nIGZvcm0gY29uZmlybWF0aW9uIGluZm9cbi8vIFJlYWRlciBtb2RlXG4ucmVhZGVyLWNvbnRlbnQge1xuICBAaW5jbHVkZSBicCh0YWJsZXQtYW5kLWFib3ZlKSB7XG4gICAgQGluY2x1ZGUgZGlzcGxheUZsZXg7XG4gICAgQGluY2x1ZGUganVzdGlmeUNvbnRlbnQoc3BhY2UtYmV0d2Vlbik7XG4gIH1cblxuICAmX19lZGl0IHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcblxuICAgIEBpbmNsdWRlIGJwKHRhYmxldC1hbmQtYWJvdmUpIHtcbiAgICAgIEBpbmNsdWRlIG9yZGVyKDIpO1xuICAgIH1cbiAgfVxufSIsIi8vIEZvcm1zIGFuZCBGb3JtLXJlbGF0ZWQgRWxlbWVudHNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qXG4gICAgLSBFcnJvcnNcbiAgICAtIEhlbHAgVGV4dCAoV0lQIC0gc2VlIGlmIGluY2x1ZGVkIGluIGZpbmFsIFVJKVxuICAgIC0gQ3VzdG9tIEZvcm0gQ29udHJvbHNcbiAgICAtIEZvcm0gTGF5b3V0c1xuICAgIC0gTWF0ZXJpYWwgRGVzaWduIHN0eWxlIGZvcm0gY29udHJvbHNcbiovXG5cbi8qZG9jXG4tLS1cbnRpdGxlOiBGb3JtcyBhbmQgRm9ybSBFbGVtZW50c1xubmFtZTogZm9ybUVsZW1lbnRzXG5jYXRlZ29yeTogTW9kdWxlc1xuLS0tXG5cbk5PVEU6IEZvcm0gZWxlbWVudCBleGFtcGxlcyBiZWxvdyBkb24ndCBpbmNsdWRlIEphdmFTY3JpcHQgc28gZG8gbm90IHNob3cgYW5pbWF0aW9uIG9mIGxhYmVsIGZseWluZyB1cCwgZXRjLiBGb3IgZXhhbXBsZXMgb2YgZnVuY3Rpb25hbGl0eSwgc2VlIFdlYWx0aCBhcHAuIChDdXJyZW50bHkgd2UgZG9uJ3QgaGF2ZSBhIHNvbHV0aW9uIGZvciBpbmNsdWRpbmcgSmF2YVNjcmlwdCBpbiB0aGUgTGl2aW5nIFN0eWxlIEd1aWRlLilcblxuIyNCYXNpYyBGb3JtIEVsZW1lbnRzIChub3Qgd2l0aGluIGEgZm9ybSBsYXlvdXQpXG5cblwiTURcIiBzdHlsZSBmb3JtIGVsZW1lbnRzOlxuKFRoZXNlIGhhdmUgYW5pbWF0ZWQgdHJhbnNpdGlvbnMgYmV0d2VlbiB0aGUgc3RhdGVzIHdoaWNoIHVuZm9ydHVuYXRlbHkgYXJlbid0IGluY2x1ZGVkIGluIHRoZSBMaXZpbmcgU3R5bGUgR3VpZGUgc2luY2UgdGhleSBuZWVkIEpTIGZvciBmdW5jdGlvbmFsaXR5LiBTZWUgV2VhbHRoIGFwcCBmb3Igd29ya2luZyBleGFtcGxlcy4pXG5cbmBgYGh0bWxfZXhhbXBsZVxuPHA+QW4gZW1wdHkgdGV4dCBpbnB1dDo8L3A+XG48b2wgY2xhc3M9XCJmb3JtLXN0ZXAtbGlzdFwiPlxuICA8bGkgY2xhc3M9XCJtZC1pbnB1dC1jb250YWluZXJcIiBkYXRhLWlucHV0LWZvY3VzLWNvbnRhaW5lcj5cbiAgICAgIDxsYWJlbD5GaXJzdCBOYW1lPC9sYWJlbD5cbiAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGRhdGEtaW5wdXQtZm9jdXMgcmVxdWlyZWQ+XG4gIDwvbGk+XG48L29sPlxuXG48cD5BIGZvY3VzZWQgdGV4dCBpbnB1dDo8L3A+XG48b2wgY2xhc3M9XCJmb3JtLXN0ZXAtbGlzdFwiPlxuICA8bGkgY2xhc3M9XCJtZC1pbnB1dC1jb250YWluZXIgaXMtZm9jdXNlZFwiIGRhdGEtaW5wdXQtZm9jdXMtY29udGFpbmVyPlxuICAgICAgPGxhYmVsPkZpcnN0IE5hbWU8L2xhYmVsPlxuICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgZGF0YS1pbnB1dC1mb2N1cyByZXF1aXJlZD5cbiAgPC9saT5cbjwvb2w+XG5cbjxwPkEgZmlsbGVkIHRleHQgaW5wdXQ6PC9wPlxuPG9sIGNsYXNzPVwiZm9ybS1zdGVwLWxpc3RcIj5cbiAgPGxpIGNsYXNzPVwibWQtaW5wdXQtY29udGFpbmVyIGlzLW5vdC1lbXB0eVwiIGRhdGEtaW5wdXQtZm9jdXMtY29udGFpbmVyPlxuICAgICAgPGxhYmVsPkZpcnN0IE5hbWU8L2xhYmVsPlxuICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgdmFsdWU9XCJGaWxsZWRcIiBkYXRhLWlucHV0LWZvY3VzIHJlcXVpcmVkPlxuICA8L2xpPlxuPC9vbD5cblxuPHA+QSB0ZXh0IGlucHV0IHdpdGggYW4gZXJyb3I6PC9wPlxuPG9sIGNsYXNzPVwiZm9ybS1zdGVwLWxpc3RcIj5cbiAgPGxpIGNsYXNzPVwibWQtaW5wdXQtY29udGFpbmVyIGlzLW5vdC1lbXB0eVwiIGRhdGEtaW5wdXQtZm9jdXMtY29udGFpbmVyPlxuICAgICAgPGxhYmVsPkZpcnN0IE5hbWU8L2xhYmVsPlxuICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgdmFsdWU9XCJGaWxsZWRcIiBkYXRhLWlucHV0LWZvY3VzIHJlcXVpcmVkIGNsYXNzPVwibmctaW52YWxpZCBuZy10b3VjaGVkXCI+XG4gICAgICA8cCBjbGFzcz1cImVycm9yXCI+XG4gICAgICAgICBBbiBlcnJvciFcbiAgICAgIDwvcD5cbiAgPC9saT5cbjwvb2w+XG5gYGBcblxuIyNGYW5jeSBTcGVjaWFsaXplZCBDdXN0b20gRm9ybSBFbGVtZW50cyAobm90IHdpdGhpbiBhIGZvcm0gbGF5b3V0KVxuYGBgaHRtbF9leGFtcGxlXG48cD5cbiAgPGxhYmVsPk5vIG1heC1sZW5ndGggc2V0OjwvbGFiZWw+XG4gIDxzcGFuIGNsYXNzPVwiZmFuY3ktaW5wdXQgZmFuY3ktaW5wdXQtLWRvbGxhclwiPlxuICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPVwiMFwiPlxuICAgIDxzcGFuIGNsYXNzPVwiZmFuY3ktaW5wdXRfX2RlY29yYXRvclwiPiQ8L3NwYW4+XG4gIDwvc3Bhbj5cbjwvcD5cblxuPHA+XG4gIDxsYWJlbD5UaGlzIGV4YW1wbGUgaGFzIGEgbWF4LWxlbmd0aCBzZXQ6PC9sYWJlbD5cbiAgPHNwYW4gY2xhc3M9XCJmYW5jeS1pbnB1dFwiPlxuICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIG1heGxlbmd0aD1cIjNcIiBwbGFjZWhvbGRlcj1cIjBcIj5cbiAgICA8c3BhbiBjbGFzcz1cImZhbmN5LWlucHV0X19kZWNvcmF0b3JcIj4lPC9zcGFuPlxuICA8L3NwYW4+XG48L3A+XG5gYGBcblxuIyNGb3JtIExheW91dHMgd2l0aCBCYXNpYyBGb3JtIEVsZW1lbnRzXG5OT1RFOiBUaGVzZSBsYXlvdXRzIGFyZSBpbiB0aGUgcHJvY2VzcyBvZiBiZWluZyByZWZhY3RvcmVkIGFuZCB1cGRhdGVkLlxuXG4jIyNGb3JtIExheW91dFxuXG5gYGBodG1sX2V4YW1wbGVcbjxkaXYgc3R5bGU9XCJwYWRkaW5nOiAxZW07IGJhY2tncm91bmQ6ICNmNWY1ZjZcIj5cblxuPHNlY3Rpb24gY2xhc3M9XCJ3aWRlLWJveCBjb250ZW50LXNlY3Rpb25cIj5cbiAgICA8aGVhZGVyIGNsYXNzPVwid2lkZS1ib3hfX2hlYWRlclwiPlxuICAgICAgPGg0PlNvbWUgSGVhZGVyPC9oND5cbiAgICA8L2hlYWRlcj5cblxuICAgIDxkaXYgY2xhc3M9XCJ3aWRlLWJveF9fYm9keVwiPlxuICAgICAgPGZvcm0+XG4gICAgICAgIDxvbCBjbGFzcz1cImZvcm0tc3RlcC1saXN0XCI+XG4gICAgICAgICAgPGxpPlxuICAgICAgICAgICAgPGxhYmVsPkVudGVyIGEgbGluZSBvZiB0ZXh0PC9sYWJlbD5cbiAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPVwicGxhY2Vob2xkZXJcIiAvPlxuICAgICAgICAgICAgPHAgY2xhc3M9XCJlcnJvclwiPlRoaXMgaXMgYW4gZXhhbXBsZSBvZiBhbiBlcnJvciBtZXNzYWdlLjwvcD5cbiAgICAgICAgICA8L2xpPlxuXG4gICAgICAgICAgPGxpPlxuICAgICAgICAgICAgPGxhYmVsPldyaXRlIHNvbWUgbG9uZ2VyIHRleHQ8L2xhYmVsPlxuICAgICAgICAgICAgPHRleHRhcmVhIGNvbHM9XCIzMFwiIHJvd3M9XCIxMFwiIHBsYWNlaG9sZGVyPVwicGxhY2Vob2xkZXJcIj48L3RleHRhcmVhPlxuICAgICAgICAgIDwvbGk+XG5cbiAgICAgICAgICA8bGk+XG4gICAgICAgICAgICA8bGFiZWw+TWFrZSBhIGNob2ljZTwvbGFiZWw+XG5cbiAgICAgICAgICAgIDx1bCBjbGFzcz1cInNwYWNlZC1saXN0XCI+XG4gICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJtZC1yYWRpby1idXR0b25cIj5cbiAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwicmFkaW9cIiBuYW1lPVwiY2hvaWNlXCIgLz5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWQtZmFrZS1pbnB1dFwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWQtbGFiZWwtdGV4dFwiPlllczwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICA8L2xpPlxuXG4gICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJtZC1yYWRpby1idXR0b25cIj5cbiAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwicmFkaW9cIiBuYW1lPVwiY2hvaWNlXCIgLz5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWQtZmFrZS1pbnB1dFwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWQtbGFiZWwtdGV4dFwiPk5vPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICA8L3VsPlxuICAgICAgICAgIDwvbGk+XG5cbiAgICAgICAgICA8bGk+XG4gICAgICAgICAgICA8bGFiZWw+TWFrZSBhIGNob2ljZTwvbGFiZWw+XG5cbiAgICAgICAgICAgIDxwPjwvcD5cblxuICAgICAgICAgICAgPHVsIGNsYXNzPVwic3BhY2VkLWxpc3RcIj5cbiAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cIm1kLXJhZGlvLWJ1dHRvblwiPlxuICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJyYWRpb1wiIG5hbWU9XCJjaG9pY2VcIiAvPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZC1mYWtlLWlucHV0XCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZC1sYWJlbC10ZXh0XCI+WWVzPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgIDwvbGk+XG5cbiAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cIm1kLXJhZGlvLWJ1dHRvblwiPlxuICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJyYWRpb1wiIG5hbWU9XCJjaG9pY2VcIiAvPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZC1mYWtlLWlucHV0XCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZC1sYWJlbC10ZXh0XCI+Tm88L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgPC9saT5cblxuICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgIDxsYWJlbD5TZWxlY3QgYW55IG9yIG5vbmUgb2YgdGhlIGZvbGxvd2luZzwvbGFiZWw+XG5cbiAgICAgICAgICAgIDx1bCBjbGFzcz1cInNwYWNlZC1saXN0XCI+XG4gICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJtZC1jaGVja2JveFwiPlxuICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIC8+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1kLWZha2UtaW5wdXRcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1kLWxhYmVsLXRleHRcIj5SZWQ8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgPC9saT5cblxuICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwibWQtY2hlY2tib3hcIj5cbiAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiAvPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZC1mYWtlLWlucHV0XCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZC1sYWJlbC10ZXh0XCI+Qmx1ZTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICA8L2xpPlxuXG4gICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJtZC1jaGVja2JveFwiPlxuICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIC8+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1kLWZha2UtaW5wdXRcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1kLWxhYmVsLXRleHRcIj5PcmFuZ2U8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgPC9saT5cblxuICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgIDxsYWJlbD5VcGxvYWQgYSBmaWxlPC9sYWJlbD5cbiAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiZmlsZVwiIC8+XG4gICAgICAgICAgPC9saT5cblxuICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgIDxsYWJlbD5TZWxlY3QgYW4gb3B0aW9uPC9sYWJlbD5cbiAgICAgICAgICAgIDxzZWxlY3Q+XG4gICAgICAgICAgICAgIDxvcHRpb24gc2VsZWN0ZWQ9XCJzZWxlY3RlZFwiIGRpc2FibGVkPkRlZmF1bHQ8L29wdGlvbj5cbiAgICAgICAgICAgICAgPG9wdGlvbj5GaXJzdCBjaG9pY2U8L29wdGlvbj5cbiAgICAgICAgICAgICAgPG9wdGlvbj5Bbm90aGVyIGNob2ljZTwvb3B0aW9uPlxuICAgICAgICAgICAgICA8b3B0aW9uPk9uZSBtb3JlPC9vcHRpb24+XG4gICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgICAgIDxwIGNsYXNzPVwiZm9ybS1oZWxwXCI+QW4gZXhhbXBsZSBvZiBleHRyYSBoZWxwIHRleHQgdG8gZXhwbGFpbiBmaWVsZC48L3A+XG4gICAgICAgICAgPC9saT5cblxuICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgIDxsYWJlbD5TZWxlY3QgbXVsdGlwbGUgb3B0aW9uczwvbGFiZWw+XG5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY29tcG91bmQtaW5wdXRcIj5cbiAgICAgICAgICAgICAgPHNlbGVjdD5cbiAgICAgICAgICAgICAgICA8b3B0aW9uIHNlbGVjdGVkPVwic2VsZWN0ZWRcIiBkaXNhYmxlZD5Nb250aDwvb3B0aW9uPlxuICAgICAgICAgICAgICAgIDxvcHRpb24+T2N0b2Jlcjwvb3B0aW9uPlxuICAgICAgICAgICAgICA8L3NlbGVjdD5cblxuICAgICAgICAgICAgICA8c2VsZWN0PlxuICAgICAgICAgICAgICAgIDxvcHRpb24gc2VsZWN0ZWQ9XCJzZWxlY3RlZFwiIGRpc2FibGVkPkRheTwvb3B0aW9uPlxuICAgICAgICAgICAgICAgIDxvcHRpb24+MjQ8L29wdGlvbj5cbiAgICAgICAgICAgICAgPC9zZWxlY3Q+XG5cbiAgICAgICAgICAgICAgPHNlbGVjdD5cbiAgICAgICAgICAgICAgICA8b3B0aW9uIHNlbGVjdGVkPVwic2VsZWN0ZWRcIiBkaXNhYmxlZD5ZZWFyPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgPG9wdGlvbj4xOTg0PC9vcHRpb24+XG4gICAgICAgICAgICAgIDwvc2VsZWN0PlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvbGk+XG4gICAgICAgIDwvb2w+XG4gICAgICA8L2Zvcm0+XG4gICAgPC9kaXY+PCEtLSAvLndpZGUtYm94X19ib2R5IC0tPlxuPC9zZWN0aW9uPlxuXG48cCBjbGFzcz1cIm11bHRpLXNlY3Rpb24tZm9ybS1hY3Rpb25zXCI+XG4gIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIGNsYXNzPVwiYnRuXCI+U3VibWl0PC9idXR0b24+XG48L3A+XG5cbjwvZGl2PlxuYGBgXG4qL1xuXG5cbi8vIEZvcm0gZmllbGQgZXJyb3JzIGFuZCBoZWxwZXIgdGV4dCxcbi8vIGNyZWF0ZSBhIHJldXNhYmxlIHBhdHRlcm4gZm9yIHNtYWxsIHRleHQ/XG4uZXJyb3IsXG4uZm9ybS1oZWxwIHtcbiAgZm9udC1zaXplOiAkc21hbGwtZm9udC1zaXplO1xuICBsaW5lLWhlaWdodDogMS4yO1xuICAvLyByZWZhY3RvciBtYXJnaW5zPyAodXNlIGNvbXBhY3QgbWFyZ2lucz8pXG4gIG1hcmdpbi10b3A6IDAuNWVtO1xuICBtYXJnaW4tdG9wOiAwLjNlbTtcbn1cblxuLy8gKGNoYW5nZSBjbGFzcyB0byBcImZpZWxkLWVycm9yXCI/KVxuLmVycm9yIHtcbiAgY29sb3I6ICR3YXJuaW5nLXJlZDtcbn1cblxuLy8gSGVscCBUZXh0IChXSVAgLSBzZWUgaWYgaW5jbHVkZWQgaW4gZmluYWwgVUksIHJlbmFtZT8pXG4uZm9ybS1oZWxwIHtcbiAgY29sb3I6ICRzdWJ0bGUtdGV4dC1jb2xvcjtcbn1cblxuLy8gQ3VzdG9tIGZvcm0gY29udHJvbHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi5maWxlLWlucHV0LXVuaXQge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICBpbnB1dFt0eXBlPVwiZmlsZVwiXSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICBmb250LXNpemU6IDIwMHB4O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1pbi1oZWlnaHQ6IDNlbTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgei1pbmRleDogMjtcbiAgfVxuXG4gIC5idG4ge1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIH1cblxuICAmOmhvdmVyIHtcbiAgICAuYnRuLS1zZWNvbmRhcnkge1xuICAgICAgQGV4dGVuZCAuYnRuLS1zZWNvbmRhcnk6aG92ZXI7XG4gICAgfVxuICB9XG59XG5cbi8vIGlucHV0cyB3aXRoICQgYmVmb3JlIG9yICUgYWZ0ZXIgKGJldHRlciBuYW1lPylcbi5mYW5jeS1pbnB1dCB7XG4gIEBpbmNsdWRlIGRpc3BsYXlGbGV4O1xuICBAaW5jbHVkZSBhbGlnbkl0ZW1zKGZsZXgtZW5kKTtcbiAgaGVpZ2h0OiAkaW5wdXQtaGVpZ2h0O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgaW5wdXQge1xuICAgIG1pbi13aWR0aDogNGVtICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1yaWdodDogMC4zZW0gIWltcG9ydGFudDtcblxuICAgICY6Zm9jdXMgKyAuZmFuY3ktaW5wdXRfX2RlY29yYXRvciB7XG4gICAgICBib3JkZXItY29sb3I6ICRzb2ZpLWFjY2VzaWJpbGl0eS1ibHVlICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgJi5uZy1pbnZhbGlkLm5nLXRvdWNoZWQgKyAuZmFuY3ktaW5wdXRfX2RlY29yYXRvciB7XG4gICAgICBib3JkZXItY29sb3I6ICRyZWQ7XG4gICAgfVxuICB9XG5cbiAgLy8gXCJmYW5jeS1pbnB1dF9fZGVjb3JhdG9yXCIgZWxlbWVudCBjb250YWluaW5nICQgbXVzdCBiZSBhZnRlciB0aGUgaW5wdXQgaW4gaHRtbC4gVGhpcyBpcyBuZWVkZWQgZm9yIGNoaWxkLXNlbGVjdG9yIHN0eWxlcyB0byB3b3JrIHdoaWNoIGNoYW5nZSB0aGUgdGhlIGJvdHRvbSBib3JkZXIgY29sb3IgZm9yIGZvY3VzIGFuZCBlcnJvciBzdGF0ZXNcbiAgLy8gVE9ETzogTmVlZCB0byByZWZhY3RvciBcImZhbmN5LWlucHV0c1wiIHRvIHNpbXBsaWZ5IChBZGQgZG9sbGFyIHNpZ25zIHRvIFwicGxhY2Vob2xkZXJcIiB0ZXh0IGluc3RlYWQ/IG9yIGFub3RoZXIgc29sdXRpb24/KVxuICAmLS1kb2xsYXIge1xuICAgIEBpbmNsdWRlIGZsZXhEaXJlY3Rpb24ocm93LXJldmVyc2UpO1xuICAgIEBpbmNsdWRlIGp1c3RpZnlDb250ZW50KGZsZXgtZW5kKTtcblxuICAgIGlucHV0IHtcbiAgICAgIHBhZGRpbmctbGVmdDogMC4zZW0gIWltcG9ydGFudDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDAgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cblxuICAvLyBjb250YWlucyB0ZXh0IHN1Y2ggYXMgXCIkXCIsIFwiJVwiLCBldGMuXG4gICZfX2RlY29yYXRvciB7XG4gICAgQGV4dGVuZCAlYm9yZGVyLWNvbG9yLXRyYW5zaXRpb247XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRncmV5LWJvcmRlci1jb2xvcjtcbiAgICBjb2xvcjogJHNtYWxsZXItdGV4dC1saWdodGVzdDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGhlaWdodDogJGlucHV0LWhlaWdodDtcbiAgfVxufVxuXG4uZHJvcGRvd24ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAmX19idXR0b24ge1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICAvLyBwb2ludGVyXG4gICAgJjphZnRlciB7XG4gICAgICBib3JkZXI6IDRweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlci10b3AtY29sb3I6IGluaGVyaXQ7XG4gICAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIG1hcmdpbi1sZWZ0OiAwLjNlbTtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuICB9XG5cbiAgJl9fbWVudS1jb250ZW50LXdyYXBwZXIge1xuICAgIEBleHRlbmQgJWRpc2FibGUtdXNlci1pbnRlcmFjdGlvbjtcbiAgICBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlWCgtNTAlKSk7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMTAwJTtcbiAgICB6LWluZGV4OiA1O1xuICB9XG5cbiAgJl9fbWVudS1saXN0IHtcbiAgICBAZXh0ZW5kICVlbmFibGUtdXNlci1pbnRlcmFjdGlvbjtcbiAgICBAZXh0ZW5kICV0cmFuc2Zvcm0tdHJhbnNpdGlvbjtcbiAgICBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlWSgtMTAwJSkpO1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGdyZXktYm9yZGVyLWNvbG9yO1xuICAgIGZvbnQtc2l6ZTogJHNtYWxsLWZvbnQtc2l6ZTtcbiAgICBtYXJnaW46IDA7XG5cbiAgICBsaSB7XG4gICAgICBsaW5lLWhlaWdodDogMS4xO1xuXG4gICAgICArIGxpIHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRncmV5LWJvcmRlci1jb2xvcjsgLy8gTWFrZSB2aXN1YWwgcGF0dGVybj9cbiAgICAgIH1cbiAgICB9XG5cbiAgICBhIHtcbiAgICAgIEBleHRlbmQgJWJhY2tncm91bmQtdHJhbnNpdGlvbjtcbiAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgIHdoaXRlLXNwYWNlOiBpbml0aWFsO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBwYWRkaW5nOiAwLjNlbTtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRncmV5LWxpZ2h0O1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIEpTIHRyaWdnZXJlZCBjbGFzcyBcIm9wZW5cIlxuLy8gVE9ETzogXCJvcGVuXCIgY2xhc3MgaXMgYXBwbGllZCBieSBCb290c3RyYXAsIHJlcGxhY2Ugc28gQm9vdHN0cmFwIGNhbiBiZSByZW1vdmVkXG4uZHJvcGRvd24ub3BlbiB7XG4gIC5kcm9wZG93bl9fbWVudS1saXN0IHtcbiAgICBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlWSgwKSk7XG4gIH1cbn1cblxuLmlucHV0LXdyYXBwZXIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgLy8gZml4IENocm9tZSBidWcgdGhhdCBzaHJpbmtzIHNpemUgb2YgY2hlY2tib3ggd2l0aCBubyB0ZXh0XG4gIG1pbi13aWR0aDogMi41ZW07XG4gIC8vIHB4IHVuaXRzIGFyZSB1c2VkIHRvIGJlIGNvbXBhdGlibGUgd2l0aCBmb250LXNpemUgZm9yIFdlYmtpdFxuICBwYWRkaW5nLWxlZnQ6IDIycHg7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgKyAuaW5wdXQtd3JhcHBlciB7XG4gICAgbWFyZ2luLWxlZnQ6ICR0ZXh0LXNwYWNlO1xuICB9XG5cbiAgaW5wdXRbdHlwZT1cInJhZGlvXCJdLFxuICBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICAgIG1hcmdpbi1sZWZ0OiAtMjJweDtcbiAgfVxuXG4gIC8vIHRlbXAgZml4IGZvciBtb2JpbGUgdmlldywgaW1wcm92ZVxuICAvLyAoZml4ZXMgYXdrd2FyZCB3cmFwcGluZyBvZiBzZXZlcmFsIHJhZGlvIGJ1dHRvbnMgaW4gYSByb3cgb24gc2V0dXAvd2VhbHRoLzgvcHJvZmlsZSlcbiAgQGluY2x1ZGUgYnAobW9iaWxlKSB7XG4gICAgJjpudGgtb2YtdHlwZShuKzUpIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICBtYXJnaW4tdG9wOiAwLjJlbTtcbiAgICB9XG4gIH1cbn1cblxuW2NsYXNzKj1cImlucHV0LXdyYXBwZXJcIl0gKyBzZWxlY3Qge3dpZHRoOiBhdXRvO31cblxuLy8gVE9ETzogc2VwYXJhdGUgb3V0IGNvbW1vbiBzdHlsZXMgZm9yIGN1c3RvbSBpbnB1dHMgaW50byBwYXR0ZXJuPzpcbi8vIFRPRE86IHNpbXBsaWZ5IGN1c3RvbSBpbnB1dCB0eXBlcyAoZXNwIG5hbWluZykgZm9yIGVhc2llciB1c2Ugd2l0aGluIGZvcm0gbGF5b3V0c1xuJWZhbmN5LXRleHQtaW5wdXQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIEBmb3IgJGkgZnJvbSAyIHRocm91Z2ggNiB7XG4gICAgaW5wdXRbbWF4bGVuZ3RoPVwiI3skaX1cIl0ge1xuICAgICAgd2lkdGg6ICgjeyRpICsgMX1lbSk7XG4gICAgfVxuICB9XG5cbiAgaW5wdXQge1xuICAgIC8vIHJlbW92ZXMgZXh0cmEgbGluZS1oZWlnaHQ6XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWluLXdpZHRoOiA0ZW07XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICAvLyBUT0RPOiBSZXBsYWNlIHNvbWUgdmFsdWVzIGJlbG93IHdpdGggdmFyaWFibGVzIHRvIG1hdGNoIGlucHV0IHN0eWxlc1xuICAmOmJlZm9yZSB7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAvLyBtYXRjaCBoZWlnaHQgb2YgaW5wdXRzICh2YXJpYWJsZT8pXG4gICAgZm9udC13ZWlnaHQ6ICRib2xkLXdlaWdodDtcbiAgICBsaW5lLWhlaWdodDogMi4zZW07XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMXB4O1xuICAgIGJvdHRvbTogMXB4O1xuICB9XG59XG5cbi8vIEV4YW1wbGUgRE9NIEZvcm1hdDpcbi8vIC5jb21wb3VuZC1pbnB1dCA+IGZvcm0gZWxlbWVudCBvciBvdGhlciBlbGVtZW50XG4uY29tcG91bmQtaW5wdXQge1xuICBAaW5jbHVkZSBsLXVuZXF1YWxDZWxsKGlubGluZS1mbGV4KTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAvLyBGaXggd2lkdGggb2YgY29tcG91bmQgaW5wdXQgaW4gU2FmYXJpOlxuICB3aWR0aDogMTAwJTtcblxuICA+ICoge1xuICAgIC8vIFRPRE86IGFkZCBsaW5lLWhlaWdodCBhcyBzYXNzIHZhcmlhYmxlIG9yIHJlZmFjdG9yIHRvIHJlbW92ZT9cbiAgICBsaW5lLWhlaWdodDogMS40O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICAvLyBUT0RPOiBzZXBhcmF0ZSBzcGFjaW5nIG91dCBhcyBwYXR0ZXJuOlxuICAgICsgKiB7XG4gICAgICBtYXJnaW4tbGVmdDogJHRleHQtc3BhY2UtY29tcGFjdDtcbiAgICB9XG4gIH1cblxuICAvLyBvdmVycmlkZSBkZWZhdWx0XG4gIGlucHV0W21heGxlbmd0aF0ge1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLy8gVE9ETzogbWFrZSBhYnN0cmFjdCByZXVzYWJsZSBsYXlvdXQgcGF0dGVybj9cbi5kYXRlLWlucHV0LXdyYXBwZXIge1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAmX191bml0IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG5cbiAgICAvLyBzY29wZSB0byBjbGFzcyBuYW1lcyBpbnN0ZWFkP1xuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgJjpudGgtY2hpbGQoMikge1xuICAgICAgcGFkZGluZzogMC4zZW0gMC41ZW07XG4gICAgfVxuICB9XG59XG5cbi8vIHVzaW5nIGFuZ3VsYXIgbmctY2xhc3MgdG8gc3R5bGUgc2VsZWN0IFwicGxhY2Vob2xkZXJcIlxuc2VsZWN0Lm5nLWludmFsaWQge1xuICBjb2xvcjogJHBsYWNlaG9sZGVyLXRleHQtY29sb3I7XG59XG5cbi8vIEJvb3RzdHJhcCBkYXRlcGlja2VyIGNhbGVuZGFyXG4udWliLWRhdGVwaWNrZXIge1xuICBtYXJnaW4tdG9wOiAtMXB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDEwMDA7XG59XG5cbi51aWItZGF5cGlja2VyLFxuLnVpYi1tb250aHBpY2tlcixcbi51aWIteWVhcnBpY2tlciB7XG4gIGJhY2tncm91bmQ6ICRncmV5LWxpZ2h0O1xuICBib3JkZXI6IDFweCBzb2xpZCAkZ3JleS1ib3JkZXItY29sb3I7XG4gIGJvcmRlci1yYWRpdXM6ICRkZWZhdWx0LWJvcmRlci1yYWRpdXM7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogMC41ZW07XG5cbiAgLy8gcmVtb3ZlIHRoZXNlIGJ1dHRvbiBjbGFzc25hbWVzIGluc3RlYWQgaWYgcG9zc2libGUgb3IgcGVyaGFwcyBzY29wZSAuYnRuIHN0eWxlcyBkaWZmZXJlbnRseVxuICAuYnRuIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRncmV5LWJvcmRlci1jb2xvcjtcbiAgICBib3JkZXItcmFkaXVzOiAkZGVmYXVsdC1ib3JkZXItcmFkaXVzO1xuICAgIGNvbG9yOiBpbml0aWFsO1xuICAgIGZvbnQtd2VpZ2h0OiBpbml0aWFsO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBwYWRkaW5nOiAwLjNlbTtcblxuICAgICY6bm90KFtkaXNhYmxlXSkgLnRleHQtbXV0ZWQge1xuICAgICAgb3BhY2l0eTogMC4zO1xuICAgIH1cblxuICAgICY6Zm9jdXMge1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzb2ZpLWJsdWUtbGlnaHQ7XG4gICAgfVxuICB9XG5cbiAgdGFibGUge291dGxpbmU6IG5vbmU7fVxuXG4gIHRoLFxuICB0ZCB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHdpZHRoOiAyZW07XG4gICAgcGFkZGluZzogMC4xZW07XG4gIH1cblxuICBzbWFsbCB7Zm9udC1zaXplOiBzbWFsbGVyO31cblxuICAuZ2x5cGhpY29uIHtcbiAgICBAZXh0ZW5kIFtjbGFzc149XCJpY29uLVwiXTtcbiAgICBmb250LXNpemU6IDEuNnJlbTtcblxuICAgICY6YmVmb3JlIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiAkYm9sZC13ZWlnaHQ7XG4gICAgfVxuICB9XG5cbiAgLmdseXBoaWNvbi1jaGV2cm9uLWxlZnQ6YmVmb3JlIHtcbiAgICBAZXh0ZW5kIC5pY29uLWFuZ2xlLWxlZnQ7XG4gIH1cblxuICAuZ2x5cGhpY29uLWNoZXZyb24tcmlnaHQ6YmVmb3JlIHtcbiAgICBAZXh0ZW5kIC5pY29uLWFuZ2xlLXJpZ2h0O1xuICB9XG59XG5cbi8vIERpc2FibGVkIGlucHV0IGZpZWxkc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxuaW5wdXRbdHlwZT1cIm51bWJlclwiXSxcbmlucHV0W3R5cGU9XCJ0ZWxcIl0sXG5pbnB1dFt0eXBlPVwiZGF0ZVwiXSxcbmlucHV0W3R5cGU9XCJlbWFpbFwiXSB7XG4gICZbZGlzYWJsZWRdIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKCMwMDAsIDkzLjUlKSAhaW1wb3J0YW50O1xuICB9XG59XG5cblxuLy8gRm9ybSBMYXlvdXRzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLVxuLy8gV0lQICh1c2UgZm9yIGxpc3RzIG9mIGZvcm0gZWxlbWVudHMsIHJlcGxhY2UgbmVzdGVkIG9sIHN0eWxlcyBiZWxvdyk6XG4uZm9ybS1zdGVwLWxpc3Qge1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG5cbiAgPiBsaSB7XG4gICAgKyAqIHtcbiAgICAgIG1hcmdpbi10b3A6ICgkY29udGVudC1zcGFjZSk7XG4gICAgfVxuICB9XG5cbiAgaW5wdXQ6bm90KFt0eXBlPVwic3VibWl0XCJdKTpub3QoW3R5cGU9XCJyZXNldFwiXSk6bm90KFt0eXBlPVwiZmlsZVwiXSk6bm90KFt0eXBlPVwiYnV0dG9uXCJdKTpub3QoW3R5cGU9XCJyYWRpb1wiXSk6bm90KFt0eXBlPVwiY2hlY2tib3hcIl0pLFxuICBzZWxlY3QsXG4gIHRleHRhcmVhIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuXG4vLyBUT0RPOiByZWZhY3RvclxubGVnZW5kICsgLmZvcm0tc3RlcC1saXN0IHtcbiAgbWFyZ2luLXRvcDogJHRleHQtc3BhY2UtY29tcGFjdDtcbn1cblxuQGluY2x1ZGUgYnAodGFibGV0LWFuZC1hYm92ZSkge1xuICAuYWxpZ25lZC1mb3JtIHtcbiAgICAuZm9ybS1zdGVwLWxpc3QgPiBsaSB7XG4gICAgICBwYWRkaW5nLWxlZnQ6ICRsYWJlbC13aWR0aDtcbiAgICB9XG4gIH1cbn1cblxuLy8gcmVmYWN0b3IhXG4ubW9kYWwtY29udGVudCAuc3RhY2tlZC1mb3JtIHtcbiAgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi5hbGlnbmVkLWZvcm0sXG4uc3RhY2tlZC1mb3JtIHtcbiAgaW5wdXQ6bm90KFt0eXBlPVwic3VibWl0XCJdKTpub3QoW3R5cGU9XCJyZXNldFwiXSk6bm90KFt0eXBlPVwiZmlsZVwiXSk6bm90KFt0eXBlPVwiYnV0dG9uXCJdKTpub3QoW3R5cGU9XCJyYWRpb1wiXSk6bm90KFt0eXBlPVwiY2hlY2tib3hcIl0pLFxuICBbY2xhc3MqPVwiLWlucHV0LXdyYXBwZXJcIl0sXG4gIC5jb21wb3VuZC1pbnB1dCxcbiAgLmNvbWJvLWJveC1pbnB1dFxuICB0ZXh0YXJlYSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cblxuLmFsaWduZWQtZm9ybSB7XG4gIEBpbmNsdWRlIGJwKG1vYmlsZSkge1xuICAgIGxhYmVsOm5vdCguaW5wdXQtd3JhcHBlcik6bm90KC50b2dnbGUtbGFiZWwpIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMC4yZW07XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgYnAodGFibGV0LWFuZC1hYm92ZSkge1xuICAgIC5tYWluLWFjdGlvbnMsXG4gICAgLnNlY29uZGFyeS1hY3Rpb25zIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMTBlbTtcbiAgICB9XG5cbiAgICBpbnB1dDpub3QoW3R5cGU9XCJzdWJtaXRcIl0pOm5vdChbdHlwZT1cInJlc2V0XCJdKTpub3QoW3R5cGU9XCJmaWxlXCJdKTpub3QoW3R5cGU9XCJidXR0b25cIl0pOm5vdChbdHlwZT1cInJhZGlvXCJdKTpub3QoW3R5cGU9XCJjaGVja2JveFwiXSksXG4gICAgW2NsYXNzKj1cIi1pbnB1dC13cmFwcGVyXCJdLFxuICAgIC5jb21wb3VuZC1pbnB1dCxcbiAgICAuY29tYm8tYm94LWlucHV0LFxuICAgIHNlbGVjdCxcbiAgICB0ZXh0YXJlYSB7XG4gICAgICBtYXgtd2lkdGg6IDI5ZW07XG4gICAgfVxuXG4gICAgbGFiZWw6bm90KC5pbnB1dC13cmFwcGVyKTpub3QoLnRvZ2dsZS1sYWJlbCkge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgd2lkdGg6IDkuNWVtO1xuICAgICAgbWFyZ2luLWxlZnQ6IC0xMGVtO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG4gIH1cblxuICBsZWdlbmQge1xuICAgIEBleHRlbmQgJWhlYWRlci0zO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQgJGdyZXktYm9yZGVyLWNvbG9yO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IDI5ZW07XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgKyAuZm9ybS1zdGVwLWxpc3Qge1xuICAgICAgbWFyZ2luLXRvcDogMWVtO1xuICAgIH1cbiAgfVxufVxuXG4vLyBUT0RPOiByZXBsYWNlIHRoaXMgd2l0aCBhIG1vcmUgZ2VuZXJhbCBjb250YWluZXIgdG8gY29uc3RyYWluIG1heC13aWR0aCB0byBjb21mb3J0YWJsZSBsaW5lIGxlbmd0aFxuLnN0YWNrZWQtZm9ybSB7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1heC13aWR0aDogNTYuMHJlbSAhaW1wb3J0YW50O1xuXG4gIGxhYmVsOm5vdCguaW5wdXQtd3JhcHBlcik6bm90KC50b2dnbGUtbGFiZWwpIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tYm90dG9tOiAwLjNlbTtcbiAgfVxufVxuXG4vLyBXSVAsIG5lZWQgdG8gc3RhbmRhcmRpemUgZGVzaWduIHBhdHRlcm4gYW5kIHNpbXBsaWZ5IHN0eWxlczpcbi8vIFRPRE86IFVQZGF0ZSBpbmxpbmUgZm9ybSBzdHlsZXMgYW5kIHJlcGxhY2UgXCIuZnVuZC1nb2Fscy1mb3JtXCIgP1xuLmlubGluZS1mb3JtIHtcbiAgLy8gYWRkIGEgYml0IG9mIGV4dHJhIHNwYWNlIGZvciBhYnNvbHV0ZWx5IHBvc2l0aW9uZWQgZXJyb3IgbWVzc2FnZXM6XG4gIHBhZGRpbmctYm90dG9tOiAwLjNlbTtcblxuICBvbCxcbiAgbGksXG4gID4gcCxcbiAgLmZpZWxkLW4tZXJyb3Itd3JhcHBlcixcbiAgbGFiZWwsXG4gIGlucHV0LFxuICBidXR0b24sXG4gIHNlbGVjdCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxuXG4gIG9sLFxuICBsaSxcbiAgPiBwLFxuICAuZmllbGQtbi1lcnJvci13cmFwcGVyIHtcbiAgICBAZXh0ZW5kICVob3Jpei10ZXh0LXNwYWNpbmc7XG4gIH1cblxuICAuZm9ybS1zdGVwLWxpc3QgbGksXG4gID4gcCB7XG4gICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmZhbmN5LWlucHV0IHtcbiAgICBAZXh0ZW5kICVkaXNwbGF5LWlubGluZS1mbGV4O1xuICB9XG5cbiAgLy8gYWJzb2x1dGUgcG9zaXRpb24gaXMgdG8gZml4IGFsaWdubWVudCBvZiBmaWVsZHMgYW5kIGJ1dHRvbiwgbWF5IG5lZWQgYWRqdXN0bWVudFxuICAuZmllbGQtbi1lcnJvci13cmFwcGVyIHAuZXJyb3Ige1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgfVxuXG4gIC8vIFJlZHVjZSBvY2N1cGllZCBzcGFjZTpcbiAgQGluY2x1ZGUgYnAobW9iaWxlKSB7XG4gICAgLmJ0biB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDAuNGVtO1xuICAgICAgcGFkZGluZy1yaWdodDogMC40ZW07XG4gICAgfVxuICB9XG59XG5cbi8vIEV4cGFuZGFibGUgc3ViLW9wdGlvbnNcbi8vIFRoZXNlIG5lZWQgdG8gYmUgcmVmYWN0b3JlZCwgdGhleSBvbmx5IHNlZW0gdG8gYmUgdXNlZCBpZiB1c2VyIHNlbGVjdHMgYSByYWRpbyBidXR0b24gb3IgY2hlY2tib3g/XG4uc3ViLWZpZWxkcy11bml0IHtcbiAgJl9fc3ViLWZpZWxkcyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMS41ZW07XG4gICAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICB9XG59XG5cblxuLy8gTWF0ZXJpYWwgRGVzaWduIHN0eWxlIGZvcm0gY29udHJvbHNcbi8vIFRPRE86IGNsZWFuIHVwIGFuZCByZWZhY3RvciwgdXNlIGZsZXhib3ggZm9yIHJhZGlvIGFuZCBjaGVja2JveCBsYXlvdXRzPyBGaWd1cmUgb3V0IGhvdyB0byBhZGQgd29ya2luZyBleGFtcGxlIHRvIEhvbG9ncmFtIHN0eWxlIGd1aWRlXG4vLyBtb2R1bGVzOiBmb3JtLWVsZW1lbnRzXG4vLyBodHRwczovL21hdGVyaWFsLmFuZ3VsYXJqcy5vcmcvbGF0ZXN0L2RlbW8vaW5wdXRcblxuLm1kLWlucHV0LWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICBsYWJlbDpub3QoLmlucHV0LXdyYXBwZXIpIHtcbiAgICBjb2xvcjogJHNtYWxsZXItdGV4dC1saWdodGVzdDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAuNHMgY3ViaWMtYmV6aWVyKC4yNSwgLjgsIC4yNSwgMSk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAoJGlucHV0LWhlaWdodCAtIDAuMmVtKSwgMCkgc2NhbGUoMSk7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCB0b3A7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxuXG4gICYuaXMtZm9jdXNlZCxcbiAgJi5pcy1ub3QtZW1wdHkge1xuICAgIGxhYmVsIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiAkbGlnaHQtd2VpZ2h0O1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKSBzY2FsZSguODUpO1xuICAgIH1cbiAgfVxuXG4gICYuaXMtZm9jdXNlZCB7XG4gICAgbGFiZWwge2NvbG9yOiAkc29maS1hY2Nlc2liaWxpdHktYmx1ZTt9XG5cbiAgICBpbnB1dDpub3QoW3R5cGU9XCJzdWJtaXRcIl0pOm5vdChbdHlwZT1cInJlc2V0XCJdKTpub3QoW3R5cGU9XCJmaWxlXCJdKTpub3QoW3R5cGU9XCJidXR0b25cIl0pOm5vdChbdHlwZT1cInJhZGlvXCJdKTpub3QoW3R5cGU9XCJjaGVja2JveFwiXSksXG4gICAgc2VsZWN0LFxuICAgIHRleHRhcmVhIHtcbiAgICAgIGJvcmRlci1jb2xvcjogJHNvZmktYWNjZXNpYmlsaXR5LWJsdWU7XG4gICAgfVxuICB9XG5cbiAgOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtjb2xvcjogdHJhbnNwYXJlbnQ7fVxuICA6LW1vei1wbGFjZWhvbGRlciB7Y29sb3I6IHRyYW5zcGFyZW50O31cbiAgOjotbW96LXBsYWNlaG9sZGVyIHtjb2xvcjogdHJhbnNwYXJlbnQ7fVxuICA6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtjb2xvcjogdHJhbnNwYXJlbnQ7fVxuICA6OmlucHV0LXBsYWNlaG9sZGVyIHtjb2xvcjogdHJhbnNwYXJlbnQ7fVxuXG4gIC8vIHRlc3RpbmcgKGRvbGxhciBzaWducyBpbiBmcm9udCBpbnN0ZWFkIG9mIGVuZClcbiAgJi0tZG9sbGFyIHtcbiAgICAmOm5vdCguaXMtZm9jdXNlZCk6bm90KC5pcy1ub3QtZW1wdHkpIGxhYmVsIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMC42ZW07XG4gICAgfVxuXG4gICAgaW5wdXQge1xuICAgICAgcGFkZGluZy1sZWZ0OiAwLjNlbSAhaW1wb3J0YW50O1xuICAgICAgcGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuXG4ubWQtcmFkaW8tYnV0dG9uLFxuLm1kLWNoZWNrYm94IHtcbiAgJGlucHV0LXNpemU6IDIuOHJlbTtcblxuICBAaW5jbHVkZSBkaXNwbGF5RmxleChpbmxpbmUtZmxleCk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbCAhaW1wb3J0YW50O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgLy8gUmVmYWN0b3I/IFJlZmFjdG9yIG9sZCAuaW5wdXQtd3JhcHBlciBjbGFzcyBhbHNvP1xuICArIC5tZC1yYWRpby1idXR0b24sXG4gIC5tZC1jaGVja2JveCB7XG4gICAgbWFyZ2luLWxlZnQ6ICRjb250ZW50LXNwYWNlLWRvdWJsZTtcbiAgfVxuXG4gIC5tZC1mYWtlLWlucHV0IHtcbiAgICBAZXh0ZW5kICVib3JkZXItY29sb3ItdHJhbnNpdGlvbjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkc21hbGxlci10ZXh0LWxpZ2h0ZXN0O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogJGlucHV0LXNpemU7XG4gICAgaGVpZ2h0OiAkaW5wdXQtc2l6ZTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZmxleC1zaHJpbms6IDA7XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICBmb250LXNpemU6IDIuMHJlbTtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIH1cblxuICAgICsgLm1kLWxhYmVsLXRleHQge1xuICAgICAgbWFyZ2luLWxlZnQ6ICR0ZXh0LXNwYWNlLWNvbXBhY3Q7XG4gICAgfVxuICB9XG5cbiAgaW5wdXQge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6IC0xO1xuXG4gICAgJjpjaGVja2VkICsgLm1kLWZha2UtaW5wdXQge1xuICAgICAgY29sb3I6ICRzb2ZpLWFjY2VzaWJpbGl0eS1ibHVlO1xuICAgICAgYm9yZGVyLWNvbG9yOiAkc29maS1hY2Nlc2liaWxpdHktYmx1ZTtcbiAgICB9XG5cbiAgICAmOmZvY3VzICsgLm1kLWZha2UtaW5wdXQge1xuICAgICAgYm9yZGVyLWNvbG9yOiAkc29maS1hY2Nlc2liaWxpdHktYmx1ZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gICsgLm1kLWlucHV0LWNvbnRhaW5lciB7XG4gICAgcGFkZGluZy1sZWZ0OiAkdGV4dC1zcGFjZS1jb21wYWN0O1xuICAgIG1hcmdpbi1sZWZ0OiAkaW5wdXQtc2l6ZTtcbiAgfVxuXG4gIC5tZC1sYWJlbC10ZXh0IHtcbiAgICBwYWRkaW5nLXRvcDogMC40NWVtO1xuICB9XG59XG5cbi5tZC1yYWRpby1idXR0b24ge1xuICAubWQtZmFrZS1pbnB1dDpiZWZvcmUge1xuICAgIEBleHRlbmQgJWJhY2tncm91bmQtdHJhbnNpdGlvbjtcbiAgICB0b3A6IDJweDtcbiAgICByaWdodDogMnB4O1xuICAgIGJvdHRvbTogMnB4O1xuICAgIGxlZnQ6IDJweDtcbiAgfVxuXG4gIC5tZC1mYWtlLWlucHV0LFxuICAubWQtZmFrZS1pbnB1dDpiZWZvcmUge1xuICAgIGJvcmRlci1yYWRpdXM6IDUwMHB4O1xuICB9XG5cbiAgaW5wdXQ6Y2hlY2tlZCArIC5tZC1mYWtlLWlucHV0OmJlZm9yZSB7XG4gICAgYmFja2dyb3VuZDogJHNvZmktYWNjZXNpYmlsaXR5LWJsdWU7XG4gIH1cbn1cblxuLm1kLWNoZWNrYm94IHtcbiAgLm1kLWZha2UtaW5wdXQge1xuICAgIGJvcmRlci1yYWRpdXM6IDJweDtcblxuICAgICY6YmVmb3JlIHtcbiAgICAgIEBleHRlbmQgJWNvbG9yLXRyYW5zaXRpb247XG4gICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICB3aWR0aDogMWVtO1xuICAgICAgaGVpZ2h0OiAxZW07XG4gICAgICB0b3A6IDA7XG4gICAgICByaWdodDogMDtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgfVxuICB9XG5cbiAgaW5wdXQgKyAubWQtZmFrZS1pbnB1dDpiZWZvcmUge1xuICAgIEBleHRlbmQgLmljb24tb2s7XG4gICAgZm9udC1mYW1pbHk6IFwic29maS1pY29uc1wiO1xuICB9XG5cbiAgaW5wdXQ6Y2hlY2tlZCArIC5tZC1mYWtlLWlucHV0OmJlZm9yZSB7XG4gICAgY29sb3I6ICRzb2ZpLWFjY2VzaWJpbGl0eS1ibHVlO1xuICB9XG59XG5cbi8vIFN1Ym1pdHRlZCBmb3JtIGVycm9yczpcbi5uZy1zdWJtaXR0ZWQ6bm90KC5uZy12YWxpZC1wYXJzZSkge1xuICAubmctaW52YWxpZC1yZXF1aXJlZCxcbiAgLm5nLWludmFsaWQtcmVxdWlyZWQgKyAubWQtZmFrZS1pbnB1dCxcbiAgLmVycm9yLWl0ZW0ge1xuICAgIGJvcmRlci1jb2xvcjogJHJlZCAhaW1wb3J0YW50O1xuICB9XG59XG5cbi5uZy1pbnZhbGlkLm5nLXRvdWNoZWQge1xuICBib3JkZXItY29sb3I6ICRyZWQgIWltcG9ydGFudDtcbn1cblxuLy8gTW92ZSBhbmQvb3IgcmVuYW1lP1xuLmRpc2FibGVkLWNob2ljZSB7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgLXdlYmtpdC1maWx0ZXI6IGdyYXlzY2FsZSg4MCUpOyAvKiBTYWZhcmkgNi4wIC0gOS4wICovXG4gIGZpbHRlcjogZ3JheXNjYWxlKDgwJSk7XG4gIG9wYWNpdHk6IDAuNDU7XG5cbiAgKiB7Y3Vyc29yOiBkZWZhdWx0O31cbn1cbiIsIi8vIFNpbXBsZSBIZWFkaW5nc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi5oMSB7QGV4dGVuZCAlaGVhZGVyLTE7fVxuLmgyIHtAZXh0ZW5kICVoZWFkZXItMjt9XG4uaDMge0BleHRlbmQgJWhlYWRlci0zO31cbi5oNCB7QGV4dGVuZCAlaGVhZGVyLTQ7fVxuLmg1IHtAZXh0ZW5kICVoZWFkZXItNTt9XG4uaDYge0BleHRlbmQgJWhlYWRlci02O31cblxuLy8gRml4IFRlbXBsYXRpbmcgaXNzdWVzIC0tLS1cbi8vIEZpeCBtYXJnaW5zIHRocm93biBvZmYgYnkgZW1wdHkgZGl2c1xuLy8gKFdvdWxkIGJlIHByZWZlcmFibGUgdG8gbm90IHJlbmRlciBkaXZzIGluIHRlbXBsYXRlIGlmIHRoZXkgaW5jbHVkZSBubyBjb250ZW50KVxuaDEsIGgyLCBoMywgaDQsIGg1LCBoNiB7XG4gICsgW2NsYXNzKj1cImpzLVwiXTplbXB0eSArIHAge1xuICAgIG1hcmdpbi10b3A6ICR0ZXh0LXNwYWNlLWNvbXBhY3Q7XG4gIH1cbn1cblxuLy8gVGhpcyBjYW4gZ28gZWl0aGVyIGFib3ZlIG9yIGJlbG93IGFuIGVsZW1lbnQgaXQgaXMgbGFiZWxpbmdcbi8vIFRPRE86IFJlc2VhcmNoIHBhdHRlcm5zL25hbWluZyAtIGh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw1L2NvbW1vbi1pZGlvbXMuaHRtbFxuLmV4cGxhbmF0b3J5LXRpdGxlIHtcbiAgQGV4dGVuZCAlYWxsLWNhcHMtdGV4dDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgb3BhY2l0eTogLjc1O1xuICBkaXNwbGF5OiBibG9jaztcblxuICArIHtcbiAgICBoMSwgaDIsIGgzLCBoNCwgaDUsIGg2IHtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgfVxuICB9XG59XG5cbi8vIFRPRE86IGN1cnJlbnRseSB0aGlzIGVsZW1lbnQgaXMgdmVyeSBzaW1pbGFyIHRvIGFib3ZlLCBuZWVkIHRvIGJldHRlciBkZWZpbmUgYW5kIHN0YW5kYXJkaXplIHBhdHR0ZXJuXG4uc3ViLXRpdGxlIHtcbiAgQGV4dGVuZCAlYWxsLWNhcHMtdGV4dDtcbiAgQGV4dGVuZCAldmVydC10ZXh0LXNwYWNpbmc7XG59XG5cbi8vIE5PVEU6IFByZXZpb3VzbHkgd2FzIFwidGFiYmVkLXBhZ2VfY29udGVudC1oZWFkZXJcIiwgbmVlZCB0byBjbGFyaWZ5IHBhdHRlcm4gYW5kIHN0cnVjdHVyZVxuLmNvbnRlbnQtaGVhZGVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBsaW5lLWhlaWdodDogMS4xO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXgtd2lkdGg6IDg2LjByZW07XG5cbiAgQGluY2x1ZGUgYnAobW9iaWxlKSB7XG4gICAgbWFyZ2luLWJvdHRvbTogJGNvbnRlbnQtc3BhY2UtdHdvLXRoaXJkcztcbiAgfVxuXG4gIEBpbmNsdWRlIGJwKHRhYmxldC1hbmQtYWJvdmUpIHtcbiAgICBtYXJnaW4tYm90dG9tOiAkY29udGVudC1zcGFjZS1kb3VibGU7XG4gIH1cblxuICAvLyByZWZhY3Rvcj9cbiAgW2NsYXNzXj1cImljb24tXCJdIHtcbiAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgfVxufSIsIlxuLy8gVE9ETzogcGF0dGVybnMgbmVlZCBiZXR0ZXIgZGVmaW5pdGlvbiBhbmQgc2ltcGxpZmljYXRpb25cblxuLypkb2Ncbi0tLVxudGl0bGU6IExpbmtzXG5uYW1lOiBjdXN0b21MaW5rc1xuY2F0ZWdvcnk6IE1vZHVsZXNcbi0tLVxuXG4qKlRPRE86KiogV2UgbmVlZCB0byBjb21lIHVwIHdpdGggbW9yZSBkZWZpbmVkIHBhdHRlcm5zIGZvciBsaW5rIHR5cGVzIGFuZCBob3cvd2hlcmUgdGhleSBzaG91bGQgYmUgdXNlZC5cblxuU2VlIFtiYXNlIGxpbmsgc3R5bGVzXVtsaW5rc10gZm9yIGNvbXBhcmlzb24uXG5cbiMjU2Vjb25kYXJ5IExpbmtcblxuU2Vjb25kYXJ5IGxpbmtzIGFyZSBtb3JlIHN1YnRsZSBkZS1lbXBoYXNpemVkIGxpbmtzLlxuXG5gYGBodG1sX2V4YW1wbGVcbjxwPlxuICA8YSBocmVmPVwiI1wiIGNsYXNzPVwic2Vjb25kYXJ5LWxpbmtcIj5UaGlzIGlzIGEgc3RhbmQgYWxvbmUgc2Vjb25kYXJ5IGxpbmsuPC9hPlxuPC9wPlxuYGBgXG5cbiMjQWN0aW9uIExpbmtcbjxzdHJvbmc+VE9ETzo8L3N0cm9uZz4gVGhlc2UgbmVlZCB0byBiZSByZXRob3VnaHQvcmVmYWN0b3JlZC4gTWF5IGdvIGF3YXkuXG5cblRoZXNlIGxpbmtzIHVzZSB0aGUgc3RhbmRhcmQgbGluayBzdHlsZXMgYnV0IGFyZSBib2xkIHRvIHN0YW5kIG91dCBtb3JlLiBXZSBtYXkgcG9zc2libHkgd2FudCB0byBjb25zaWRlciBtYWtpbmcgdGhpcyB0aGUgc3RhbmRhcmQgbGluayBzdHlsZSBpbnN0ZWFkIG9mIGEgc3BlY2lhbCBzdHlsZS5cblxuKFRoZSBcImFjdGlvbi1saW5rXCIgY2xhc3MgbmFtZSBjYW4gYmUgYXBwbGllZCB0byBhbnkgdHlwZSBvZiBlbGVtZW50IHN1Y2ggYXMgYSBzcGFuIHRhZyBpbnN0ZWFkIG9mIHVzaW5nIGFuIGFuY2hvciB0YWcuKVxuXG5gYGBodG1sX2V4YW1wbGVcbjxwPlxuICA8YSBocmVmPVwiI1wiIGNsYXNzPVwiYWN0aW9uLWxpbmtcIj5UaGlzIGlzIGEgc3RhbmQgYWxvbmUgXCJhY3Rpb25cIiBsaW5rLjwvYT5cbjwvcD5cbjxwPlxuICBMb3JlbSBpcHN1bSBkb2xvciA8YSBocmVmPVwiI1wiIGNsYXNzPVwiYWN0aW9uLWxpbmtcIj5cImFjdGlvblwiIGxpbmsgd2l0aGluIGEgc2VudGVuY2U8L2E+IHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNjaW5nIGVsaXQuXG48L3A+XG5gYGBcblxuIyNOZWdhdGl2ZSBBY3Rpb24gTGlua1xuXG5OT1RFOiBTbyBmYXIgdGhpcyBzZWVtcyB0byBiZSB1c2VkIG9ubHkgaW4gb25lIHBsYWNlIG9uIFdlYWx0aC4gTmVlZCB0byBiZXR0ZXIgZGVmaW5lIHVzYWdlLlxuXG48cD5cbiAgPGEgaHJlZj1cIlwiIGNsYXNzPVwibmVnYXRpdmUtYWN0aW9uLWxpbmtcIj5EZWxldGU8L2E+XG48L3A+XG5cbiovXG5cbi8vIGZha2UgbGlua3M6XG4vLyBXSVA6IG1ha2UgYnV0dG9uIGV0Yy4gbG9vayBsaWtlIGxpbmsuIFRPRE86IFJlZmFjdG9yXG4uZmFrZS1saW5rIHtcbiAgQGV4dGVuZCAlZGVmYXVsdC1saW5rO1xuICBib3JkZXI6IDA7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogMDtcbiAgd2lkdGg6IGF1dG87XG59XG5cbi5hY3Rpb24tbGluayB7XG4gIEBleHRlbmQgJWRlZmF1bHQtbGluaztcbiAgZm9udC13ZWlnaHQ6ICRib2xkLXdlaWdodDtcbn1cblxuLnRleHQtY29sb3ItbGluayB7XG4gIGNvbG9yOiBpbmhlcml0ICFpbXBvcnRhbnQ7XG59XG5cbi5zb2ZpLWJsdWUtbGluayB7XG4gIEBpbmNsdWRlIGhvdmVyTGluaygkc29maS1ibHVlLCBkYXJrZW4oJHNvZmktYmx1ZSwgMTQlKSk7XG59XG5cbi8vIGxpbmsgd2l0aCByaWdodCBwb2ludGluZyBhcnJvd1xuLy8gTk9URTogdGhpcyBpc24ndCB3ZWxsLXVzZWQgb3Igc3RhbmRhcmRpemVkIGN1cnJlbnRseSBzbyBtYXkgYmUgcmVtb3ZlZFxuLmdvdG8tbGluayB7XG4gIC8vIHJlc2VydmUgc3BhY2UgZm9yIHBvaW50ZXI6XG4gIHBhZGRpbmctcmlnaHQ6IDFlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgJjphZnRlciB7XG4gICAgQGV4dGVuZCAuaWNvbi1hbmdsZS1yaWdodDpiZWZvcmU7XG4gICAgZm9udC1zaXplOiAxZW07XG4gICAgZm9udC1mYW1pbHk6ICdzb2ZpLWljb25zJztcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IDFlbTtcbiAgICBoZWlnaHQ6IDFlbTtcbiAgICBtYXJnaW46IGF1dG8gMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICByaWdodDogMDtcbiAgfVxufVxuXG4uc2Vjb25kYXJ5LWxpbmsge1xuICBjb2xvcjogJGdyZXktbGlua3M7XG5cbiAgJjpob3ZlciB7XG4gICAgY29sb3I6ICRncmV5LWxpbmtzO1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuXG4gICAgJjphZnRlciB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuICB9XG59XG5cbi8vIGJyZWFkY3J1bWIgbGlrZSBsaW5rIGJhY2sgdG8gYSBwcmV2aW91cyBwYWdlXG4uYmFjay1saW5rIHtcbiAgQGV4dGVuZCAlYWxsLWNhcHMtdGV4dDtcbiAgZm9udC1zaXplOiAkc21hbGwtZm9udC1zaXplO1xuXG4gIC8vIFRPRE86IGxvb2sgaW50byByZWZhY3RvcmluZyBpY29uIHN0eWxlcyB0byBzZWUgaWYgYWxpZ25tZW50IGNhbiBiZSBmaXhlZC9zaW1wbGlmaWVkXG4gIFtjbGFzc149XCJpY29uLVwiXSB7XG4gICAgdmVydGljYWwtYWxpZ246IHRleHQtdG9wO1xuICB9XG5cbiAgKyAqIHtcbiAgICBtYXJnaW4tdG9wOiAwLjZlbTtcbiAgfVxufVxuXG4ubmVnYXRpdmUtYWN0aW9uLWxpbmsge2NvbG9yOiAkcmVkO30iLCIvLyBMaXN0c1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLypkb2Ncbi0tLVxudGl0bGU6IExpc3RzXG5uYW1lOiBsaXN0c1xuY2F0ZWdvcnk6IE1vZHVsZXNcbi0tLVxuXG4jI051bWJlcmVkIExpc3RcblxuQSBiYXNpYyBudW1iZXJlZCBsaXN0LlxuXG5gYGBodG1sX2V4YW1wbGVcbjxvbCBjbGFzcz1cIm51bWJlcmVkLWxpc3RcIj5cbiAgPGxpPmxpc3QgaXRlbTwvbGk+XG4gIDxsaT5hbm90aGVyIG9uZTwvbGk+XG4gIDxsaT5vbmUgbW9yZSB0aGluZzwvbGk+XG48L29sPlxuYGBgXG5cbiMjQnVsbGV0ZWQgTGlzdFxuXG5BIGJhc2ljIGJ1bGxldGVkIGxpc3QuXG5cbmBgYGh0bWxfZXhhbXBsZVxuPHVsIGNsYXNzPVwiYnVsbGV0ZWQtbGlzdFwiPlxuICA8bGk+bGlzdCBpdGVtPC9saT5cbiAgPGxpPmFub3RoZXIgb25lPC9saT5cbiAgPGxpPm9uZSBtb3JlIHRoaW5nPC9saT5cbjwvdWw+XG5gYGBcblxuIyNQREYgRG9jIExpc3RcblxuQSBsaXN0IG9mIFBERiBkb2NzLlxuXG5OT1RFOiBUaGlzIG1heSBiZSBnb2luZyBhd2F5IGluIHRoZSB1cGNvbWluZyByZWRlc2lnbiBvZiB0aGUgV2VhbHRoIEFjY291bnQgRGFzaGJvYXJkLlxuXG5gYGBodG1sX2V4YW1wbGVcbjx1bCBjbGFzcz1cInBkZi1kb2MtbGlzdFwiPlxuICA8bGk+XG4gICAgPHN0cm9uZz48YSBocmVmPVwiI1wiPk1heSAyMDE2PC9hPjwvc3Ryb25nPlxuICAgIDxhIGNsYXNzPVwic2Vjb25kYXJ5LWxpbmsgc21hbGxcIiBocmVmPVwiI1wiPkRvd25sb2FkPC9hPlxuICA8L2xpPlxuXG4gIDxsaT5cbiAgICA8c3Ryb25nPjxhIGhyZWY9XCIjXCI+QXByaWwgMjAxNjwvYT48L3N0cm9uZz5cbiAgICA8YSBjbGFzcz1cInNlY29uZGFyeS1saW5rIHNtYWxsXCIgaHJlZj1cIiNcIj5Eb3dubG9hZDwvYT5cbiAgPC9saT5cblxuICA8bGk+XG4gICAgPHN0cm9uZz48YSBocmVmPVwiI1wiPk1hcmNoIDIwMTY8L2E+PC9zdHJvbmc+XG4gICAgPGEgY2xhc3M9XCJzZWNvbmRhcnktbGluayBzbWFsbFwiIGhyZWY9XCIjXCI+RG93bmxvYWQ8L2E+XG4gIDwvbGk+XG48L3VsPlxuYGBgXG5cbiMjUHJvZ3Jlc3MgTGlzdFxuXG5gYGBodG1sX2V4YW1wbGVcbjxvbCBjbGFzcz1cInByb2dyZXNzLWxpc3RcIj5cbiAgPGxpIGNsYXNzPVwiY29tcGxldGVcIj5Db21wbGV0ZWQgaXRlbTwvbGk+XG4gIDxsaSBjbGFzcz1cImN1cnJlbnRcIj5DdXJyZW50IGl0ZW08L2xpPlxuICA8bGk+QW4gdXBjb21pbmcgaXRlbTwvbGk+XG4gIDxsaT5BbmQgYW5vdGhlciBvbmUgYWZ0ZXIgdGhhdDwvbGk+XG48L29sPlxuYGBgXG5cbiovXG5cblxuLy8gVE9ETzogY2xhcmlmeSBwYXR0ZXJucyBhbmQgbmFtaW5nXG4uY29tcGFjdC1zcGFjZWQtbGlzdCA+IGxpIHtcbiAgQGV4dGVuZCAldmVydC10ZXh0LXNwYWNpbmctY29tcGFjdDtcbiAgbGluZS1oZWlnaHQ6IDEuMTtcbn1cblxuLy8gcmVmaW5lIHBhdHRlcm5zLi4uXG4uc3BhY2VkLWxpc3QgPiBsaSB7XG4gIEBleHRlbmQgJXZlcnQtdGV4dC1zcGFjaW5nO1xuICBsaW5lLWhlaWdodDogMS4xO1xufVxuXG4vLyBjaGVjayBpZiBzdGlsbCB1c2VkL25lZWRlZFxuLm51bWJlcmVkLWxpc3Qge1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIGNvdW50ZXItcmVzZXQ6IGN1c3RvbS1jb3VudGVyO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmctbGVmdDogMi44ZW07XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgPiBsaSB7XG4gICAgQGV4dGVuZCAldmVydC10ZXh0LXNwYWNpbmctY29tcGFjdDtcbiAgICBjb3VudGVyLWluY3JlbWVudDogY3VzdG9tLWNvdW50ZXI7XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiBjb3VudGVyKGN1c3RvbS1jb3VudGVyKSBcIi5cIjtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICBtaW4td2lkdGg6IDEuNWVtO1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgfVxuICB9XG5cbiAgcCB7XG4gICAgQGV4dGVuZCAldmVydC10ZXh0LXNwYWNpbmctY29tcGFjdDtcbiAgfVxufVxuXG4vLyBjaGVjayBpZiBzdGlsbCB1c2VkL25lZWRlZFxuLmJ1bGxldGVkLWxpc3Qge1xuICBAZXh0ZW5kICV2ZXJ0LXRleHQtc3BhY2luZztcbiAgbGlzdC1zdHlsZS10eXBlOiBkaXNjO1xuICBwYWRkaW5nLWxlZnQ6IDEuNWVtO1xuXG4gIC5idWxsZXRlZC1saXN0IHtcbiAgICBsaXN0LXN0eWxlLXR5cGU6IGNpcmNsZTtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICB9XG59XG5cbi8vIHN0YW5kYXJkaXplIHdpdGggZGVzaWduZXJzXG4ubGluZS1zZXBhcmF0ZWQtbGlzdCBsaSArIGxpIHtcbiAgYm9yZGVyLXRvcDogMXB4IGRvdHRlZCAkZ3JleS1ib3JkZXItY29sb3I7XG4gIHBhZGRpbmctdG9wOiAwLjVlbTtcbiAgbWFyZ2luLXRvcDogMC41ZW07XG59XG5cbi8vIFJlZmFjdG9yIHRoaXMgdG8gaW5jbHVkZSBvdGhlciB0eXBlcyBvZiBkb2NzIGxhdGVyIGlmIG5lZWRlZFxuLnBkZi1kb2MtbGlzdCB7XG4gID4gbGkge1xuICAgIEBleHRlbmQgJXZlcnQtdGV4dC1zcGFjaW5nLWNvbXBhY3Q7XG4gICAgbWluLWhlaWdodDogMjVweDtcbiAgICBwYWRkaW5nLWxlZnQ6IDMwcHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgJjpiZWZvcmUge1xuICAgICAgYmFja2dyb3VuZDogdXJsKFwiLi9saWJyYXJpZXMvc29maS1nbG9iYWwvYXNzZXRzL2ltYWdlcy9pY29ucy9pY29uLXBkZi5wbmdcIikgbm8tcmVwZWF0O1xuICAgICAgQGluY2x1ZGUgcmV0aW5hIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi9saWJyYXJpZXMvc29maS1nbG9iYWwvYXNzZXRzL2ltYWdlcy9pY29ucy9pY29uLXBkZi0yeC5wbmdcIik7XG4gICAgICB9XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogMjBweDtcbiAgICAgIGhlaWdodDogMjVweDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB0b3A6IDA7XG4gICAgICBib3R0b206IDA7XG4gICAgfVxuXG4gICAgLy8gcmVmYWN0b3JcbiAgICA+ICoge1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG4gIH1cblxuICAvLyBTZXBhcmF0ZSB0aGlzIG91dCBhbmQgc3RhbmRhcmRpemUgYXMgbW9yZSByZXVzYWJsZSBwYXR0ZXJuP1xuICAmX19saW5rcyB7XG4gICAgQGV4dGVuZCAlcGlwZS1zZXBhcmF0ZWQtaG9yaXotbGlzdDtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBjb2xvcjogJGdyZXktbGlua3M7XG4gIH1cbn1cblxuLy8gVGhpcyBzaG91bGQgb25seSBiZSB1c2VkIGZvciBzaG9ydCBsaXN0cyAobm8gbW9yZSB0aGFuIDkgaXRlbXMpXG4vLyBUT0RPOiBsb29rIGludG8gY29tYmluaW5nIHdpdGggcGRmLWRvYy1saXN0PyBNYWtlIHBhdHRlcm5cbi5jdXN0b20tYnVsbGV0LWxpc3QgPiBsaSB7XG4gIEBleHRlbmQgJXZlcnQtdGV4dC1zcGFjaW5nLWNvbXBhY3Q7XG4gIHBhZGRpbmctbGVmdDogMS41ZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICBbY2xhc3NePVwiaWNvbi1cIl0ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gIH1cbn1cblxuLy8gTkVXOiByZXBsYWNlcyBvbGQgXCJjaXJjbGVkLW51bWJlcmVkLWxpc3RcIiBhbmQgXCJnb2Fscy1saXN0XCJcbi5wcm9ncmVzcy1saXN0IHtcbiAgY291bnRlci1yZXNldDogY3VzdG9tLWNvdW50ZXI7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuXG4gIC5zdGVwLWxhYmVsIHtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG5cbiAgPiBsaSB7XG4gICAgQGV4dGVuZCAldmVydC10ZXh0LXNwYWNpbmc7XG4gICAgY291bnRlci1pbmNyZW1lbnQ6IGN1c3RvbS1jb3VudGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nLWxlZnQ6IDIuNWVtO1xuXG4gICAgLy8gY2lyY2xlZCBudW1iZXJzXG4gICAgJjpiZWZvcmUge1xuICAgICAgYm9yZGVyOiAycHggc29saWQ7XG4gICAgICBib3JkZXItcmFkaXVzOiA1MDBweDtcbiAgICAgIGNvbG9yOiAkc3VidGxlLXRleHQtY29sb3I7XG4gICAgICBjb250ZW50OiBjb3VudGVyKGN1c3RvbS1jb3VudGVyKSBcIlwiO1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDFlbTtcbiAgICAgIGhlaWdodDogMWVtO1xuICAgICAgcGFkZGluZzogMC4zZW07XG4gICAgICBtYXJnaW46IGF1dG8gMDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB0b3A6IDA7XG4gICAgICBib3R0b206IDA7XG4gICAgfVxuXG4gICAgJi5jb21wbGV0ZTpiZWZvcmUge1xuICAgICAgQGV4dGVuZCAuaWNvbi1vaztcbiAgICAgIGZvbnQtZmFtaWx5OiBcInNvZmktaWNvbnNcIjtcbiAgICB9XG5cbiAgICAmLmN1cnJlbnQge1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG5cbiAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gcmVzcG9uc2l2ZSBsYXlvdXRcbiAgLy8gVE9ETzogcmVmYWN0b3IgJiBzaW1wbGlmeVxuICAmLS1tb2JpbGUtcmVzcG9uc2l2ZSB7XG4gICAgQGluY2x1ZGUgYnAobW9iaWxlKSB7XG4gICAgICBAaW5jbHVkZSBkaXNwbGF5RmxleDtcbiAgICAgIEBpbmNsdWRlIGFsaWduSXRlbXMoY2VudGVyKTtcbiAgICAgIEBpbmNsdWRlIGp1c3RpZnlDb250ZW50KGNlbnRlcik7XG5cbiAgICAgIGxpIHtcbiAgICAgICAgaGVpZ2h0OiBjYWxjKDFlbSArICgwLjNlbSAqIDIpICsgKDJweCAqIDIpKTtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgLy8gaGlkZSB0ZXh0OlxuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBtYXgtd2lkdGg6IDA7XG4gICAgICAgIC8vIHNwYWNlIGJldHdlZW4gaXRlbXM6XG4gICAgICAgIHBhZGRpbmctbGVmdDogM2VtO1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgcGFkZGluZy1sZWZ0OiBjYWxjKDFlbSArICgwLjNlbSAqIDIpICsgKDJweCAqIDIpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6bm90KDpsYXN0LWNoaWxkKTphZnRlciB7XG4gICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkO1xuICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgIHJpZ2h0OiAycHg7XG4gICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgIGxlZnQ6IGNhbGMoMWVtICsgKDAuM2VtICogMikgKyAoMnB4ICogMikgKyAycHgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59IiwiLy8gTG9hZGluZyBTdGF0ZXMgYW5kIFwiU3Bpbm5lcnNcIlxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4ubG9hZGluZy1tYXNrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwwLjgpO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIC8vIGhlaWdodCBlbmFibGVzIGNvbnRlbnQgdG8gYmUgdmVydGljYWxseSBjZW50ZXJlZDpcbiAgaGVpZ2h0OiAxMDAlO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgYm90dG9tOiAwO1xuICByaWdodDogMDtcbiAgei1pbmRleDogMTEwMDtcblxuICAmX19pbm5lciB7XG4gICAgQGV4dGVuZCAldHJhbnNmb3JtLXZlcnRpY2FsLWNlbnRlcjtcbiAgfVxuXG4gIC5pY29uLXNwaW5uZXIge1xuICAgIGZvbnQtc2l6ZTogMy4ycmVtO1xuICAgIC13ZWJraXQtYW5pbWF0aW9uOiBzcGluIDJzIGluZmluaXRlIGxpbmVhcjtcbiAgICBhbmltYXRpb246IHNwaW4gMnMgaW5maW5pdGUgbGluZWFyO1xuICB9XG59XG4iLCIvLyBPYmplY3RzLCBFbWJlZHMsIElmcmFtZXMsIGV0Yy5cblxuLnBkZi1lbWJlZCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICRncmV5LWJvcmRlci1jb2xvcjtcbiAgbWFyZ2luOiAyZW0gMDtcblxuICBpZnJhbWUge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5cbiAgLmFsZXJ0IHtcbiAgICBtYXJnaW46IDNweDtcbiAgfVxufVxuXG4vLyBEZWZpbmUgYXMgbGF5b3V0IHBhdHRlcm4gaW5zdGVhZD9cbi8vIFRPRE86IHJlcGxhY2Ugd2l0aCBuZXcgbGF5b3V0IHBhdHRlcm4gc3R5bGVzL2NsYXNzIFwibC1tZWRpYS1vYmplY3RcIlxuLm1lZGlhLW9iamVjdCB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgPiBpbWcsXG4gIGZpZ2NhcHRpb24ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgPiBpbWcge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbi1yaWdodDogMWVtO1xuICB9XG5cbiAgZmlnY2FwdGlvbiB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxufSIsIi8vIE1vZGFsc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLypkb2Ncbi0tLVxudGl0bGU6IE1vZGFsc1xubmFtZTogbW9kYWxzXG5jYXRlZ29yeTogTW9kdWxlc1xuLS0tXG5cbk1vZGFscyBhcmUgYWxzbyByZWZlcnJlZCB0byBhcyBkaWFsb2dzLCBwb3AgdXBzIGFuZCBwb3BvdmVycy5cblxuYGBgaHRtbF9leGFtcGxlXG48ZGl2IHN0eWxlPVwicGFkZGluZzogMjBweDsgYmFja2dyb3VuZDogIzY2NjtcIj5cblxuPGRpdiBjbGFzcz1cIm1vZGFsLWRpYWxvZyBtb2RhbC1sZ1wiPlxuICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1jb250ZW50XCI+XG5cdFx0PGhlYWRlciBjbGFzcz1cIm1vZGFsLWhlYWRlclwiPlxuXHRcdFx0PGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjbG9zZVwiIGRhdGEtZGlzbWlzcz1cIm1vZGFsXCIgYXJpYS1sYWJlbD1cIkNsb3NlXCIgbmctY2xpY2s9XCJ2bS5jbG9zZSgpXCI+XG5cdFx0XHRcdDxpIGNsYXNzPVwiaWNvbi1jYW5jZWwtbGFyZ2VcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG5cdFx0XHQ8L2J1dHRvbj5cblxuXHRcdFx0PGgyIGNsYXNzPVwiaDFcIj5IZWFkZXIgZm9yIE1vZGFsPC9oMj5cblx0XHQ8L2hlYWRlcj5cblxuXHRcdDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5XCI+XG5cdFx0XHQ8cD5Tb21lIHRleHQgY29udGVudC48L3A+XG5cdFx0PC9kaXY+PCEtLSAvLm1vZGFsLWJvZHkgLS0+XG5cblx0XHQ8Zm9vdGVyIGNsYXNzPVwibW9kYWwtZm9vdGVyXCI+XG5cdFx0XHQ8YSBjbGFzcz1cImZha2UtbGlua1wiIGhyZWY9XCJcIj5TZWNvbmRhcnkgQWN0aW9uPC9hPlxuXHRcdFx0PGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG5cIj5QcmltYXJ5IEFjdGlvbjwvYnV0dG9uPlxuXHRcdDwvZm9vdGVyPlxuICAgIDwvZGl2PlxuPC9kaXY+XG5cbjwvZGl2PlxuYGBgXG5cbiovXG5cbi8vIG92ZXJyaWRlIEJvb3RzdHJhcCBtb2RhbCBzdHlsZXNcbi8vIFRPRE86IEFkZCBtb3JlIGN1c3RvbSBtb2RhbCBzdHlsZXMgdG8gcmVwbGFjZSBib290c3RyYXBcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4ubW9kYWwtY29udGVudCA+ICosXG4ubW9kYWwtaGVhZGVyLFxuLm1vZGFsLWJvZHksXG4ubW9kYWwtZm9vdGVyIHtcbiAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDtcbn1cblxuLm1vZGFsLWRpYWxvZyB7XG4gIG1heC13aWR0aDogNjYwcHg7XG59XG5cbi8vIGNvbnRhaW5lciBvZiBtb2RhbFxuLy8gTk9URTogc29tZSBzdHlsZXMgYXJlIGR1cGxpY2F0ZWQgZnJvbSBib290c3RyYXAgdG8gd29yayBpbiBzaGFyZWQtc3R5bGVzIGxpdmluZyBzdHlsZSBndWlkZVxuLm1vZGFsLWNvbnRlbnQge1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94OyAvLyBuZWVkZWQ/XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwwLDAsMC4yKTtcbiAgYm9yZGVyLXJhZGl1czogJGRlZmF1bHQtYm9yZGVyLXJhZGl1cztcbiAgYm94LXNoYWRvdzogMCA1cHggMTVweCByZ2JhKDAsMCwwLDAuNSk7XG59XG5cbi5tb2RhbC1oZWFkZXIge1xuICBAaW5jbHVkZSBkaXNwbGF5RmxleDtcbiAgQGluY2x1ZGUganVzdGlmeUNvbnRlbnQoc3BhY2UtYmV0d2Vlbik7XG4gIEBpbmNsdWRlIGZsZXhEaXJlY3Rpb24ocm93LXJldmVyc2UpO1xuICBAaW5jbHVkZSBhbGlnbkl0ZW1zKGZsZXgtc3RhcnQpO1xuICBAaW5jbHVkZSBmbGV4V3JhcCh3cmFwKTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkZ3JleS1ib3JkZXItY29sb3I7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuXG4gIEBpbmNsdWRlIGJwKG1vYmlsZSkge1xuICAgIHBhZGRpbmc6ICRjb250ZW50LXNwYWNlLWhhbGYgIWltcG9ydGFudDtcbiAgfVxuXG4gIEBpbmNsdWRlIGJwKHRhYmxldC1hbmQtYWJvdmUpIHtcbiAgICBwYWRkaW5nOiAkY29udGVudC1zcGFjZSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmNsb3NlIHtcbiAgICBjb2xvcjogJHN1YnRsZS10ZXh0LWNvbG9yO1xuICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuXG4gICAgKyAqIHtcbiAgICAgIC8vIGtlZXAgb24gc2FtZSBsaW5lIGFzIGNsb3NlIGJ1dHRvbjpcbiAgICAgIGZsZXg6IDEgMSAwO1xuICAgICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVlbSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gIC8vIEFkZGl0aW9uYWwgcHJvcGVydGllcyBmb3IgYnV0dG9uIHZlcnNpb25cbiAgLy8gaU9TIHJlcXVpcmVzIHRoZSBidXR0b24gZWxlbWVudCBpbnN0ZWFkIG9mIGFuIGFuY2hvciB0YWcuXG4gIC8vIElmIHlvdSB3YW50IHRoZSBhbmNob3IgdmVyc2lvbiwgaXQgcmVxdWlyZXMgYGhyZWY9XCIjXCJgLlxuICBidXR0b24uY2xvc2Uge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlcjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIH1cblxuICA+IDpub3QoLmNsb3NlKSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgLy8gYWxpZ24gdG8gbGVmdDpcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIH1cbn1cblxuLm1vZGFsLWJvZHkge1xuICBAaW5jbHVkZSBicChtb2JpbGUpIHtcbiAgICBwYWRkaW5nOiAkY29udGVudC1zcGFjZS1oYWxmICFpbXBvcnRhbnQ7XG4gIH1cblxuICBAaW5jbHVkZSBicCh0YWJsZXQtYW5kLWFib3ZlKSB7XG4gICAgcGFkZGluZzogJGNvbnRlbnQtc3BhY2UgIWltcG9ydGFudDtcbiAgfVxuXG4gIC8vIGgzIGlzIGluIGJvb3RzdHJhcCBqcyByZW5kZXJlZCBodG1sXG4gIGgzIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgfVxuXG4gIC8vIFRPRE86IHJlZmFjdG9yIGZvcm0gc3R5bGVzIGFuZCBkZWxldGUhISFcbiAgLnN0YWNrZWQtZm9ybSB7XG4gICAgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLy8gb3ZlcnJpZGUgYm9vdHN0cmFwIGRlZmF1bHRzXG4ubW9kYWwtZGlhbG9nIC5tb2RhbC1ib2R5IHtcbiAgKiArIHAge1xuICAgIG1hcmdpbi10b3A6ICR0ZXh0LXNwYWNlICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLm1vZGFsLWZvb3RlciB7XG4gIGJhY2tncm91bmQ6ICRncmV5LWxpZ2h0O1xuICBib3JkZXItdG9wOiAwICFpbXBvcnRhbnQ7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuICBwYWRkaW5nOiAkY29udGVudC1zcGFjZS1oYWxmICFpbXBvcnRhbnQ7XG5cbiAgQGluY2x1ZGUgYnAobW9iaWxlKSB7XG4gICAgQGluY2x1ZGUgZGlzcGxheUZsZXgoKTtcbiAgICBAaW5jbHVkZSBmbGV4V3JhcCh3cmFwKTtcbiAgICBAaW5jbHVkZSBmbGV4RGlyZWN0aW9uKGNvbHVtbi1yZXZlcnNlKTtcblxuICAgIC5idG4sXG4gICAgYSB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAvLyByZXBsYWNlIHdpdGggcGF0dGVybj8gVXNlcyBtYXJnaW4tYm90dG9tIGZvciBzcGFjaW5nIHNpbmNlIGVsZW1lbnQgb3JkZXIgaXMgcmV2ZXJzZWRcbiAgICAgICsgKiB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICR0ZXh0LXNwYWNlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGEge3BhZGRpbmc6IDAuNmVtO31cbiAgfVxuXG4gIEBpbmNsdWRlIGJwKHRhYmxldC1hbmQtYWJvdmUpIHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcblxuICAgIC5idG4sXG4gICAgYSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICB9XG5cbiAgICAvLyByZWZhY3RvclxuICAgID4gKiArICoge1xuICAgICAgbWFyZ2luLWxlZnQ6IDFlbTtcbiAgICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cblxuLy8gb3ZlcnJpZGUgQm9vdHN0cmFwIG1vZGFsIHN0eWxlcywgVE9ETzogQWRkIGN1c3RvbSBtb2RhbCBzdHlsZXMgdG8gcmVwbGFjZSBib290c3RyYXBcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBCb290c3RyYXAncyB0b29sdGlwIHRoaW5neTpcbi5wb3BvdmVyIHtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IGluaXRpYWw7XG59XG5cbi8vIEZpeCBtYXJnaW5zIGFuZCBwYWRkaW5nIGFkZGVkIGJ5IGhpZGRlbiBpdGVtcyAob2NjdXJzIGluIEJvb3RzdHJhcCBcInBvcG92ZXJcIilcbltzdHlsZSo9XCJub25lXCJdICsgKiB7bWFyZ2luLXRvcDogMDt9XG5cbi5wb3BvdmVyLXRpdGxlICsgLnBvcG92ZXItY29udGVudDplbXB0eSB7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbn1cbiIsIi8vIFBhbmVsc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8gVE9ETzogS3Jpc3RpbiwgcGxlYXNlIHJlZmFjdG9yIHRvIHlvdXIgbGlraW5nLlxuXG4vLyBUT0RPOlxuLy8gKiBjb21lIHVwIHdpdGggYmV0dGVyIGNsYXNzbmFtZXMgKFE6IElzIHRoaXMgZ29pbmcgdG8gYmUgcmV1c2VkIGVsc2V3aGVyZSBvciBqdXN0IGZvciBnb2Fscz8pXG4vLyAqIHN0YW5kYXJkaXplIGhlYWRpbmcgYW5kIGJvZHkgcGFkZGluZywgY3VycnJlbnRseSB0b28gYXJiaXRyYXJ5XG4uY29udGVudC1wYW5lbCB7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIGJvcmRlcjogMXB4IHNvbGlkICRncmV5LWJvcmRlci1jb2xvcjtcblxuICBAaW5jbHVkZSBicCh0YWJsZXQtYW5kLWFib3ZlKSB7XG4gICAgLy8gdGhpcyBpcyB0b28gYXJiaXRyYXJ5LCBsb29rIGludG8gcmVmYWN0b3JpbmcgKHVzZSBmbGV4Ym94Pyk6XG4gICAgbWluLWhlaWdodDogMjI2cHg7XG4gIH1cblxuICAmX19oZWFkZXIge1xuICAgIGJhY2tncm91bmQ6ICRhY2NlbnQtZGFyay1ibHVlO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIHBhZGRpbmc6IC42cmVtIDEuMHJlbTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICBbY2xhc3NePVwiaWNvbi1cIl0ge1xuICAgICAgZm9udC1zaXplOiAwLjhlbTtcbiAgICB9XG4gIH1cblxuICAmX19oZWFkZXItdGl0bGUge1xuICAgIEBleHRlbmQgJXRydW5jYXRlLXRleHQ7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgLy8gc3BhY2UgZm9yIGljb25zOlxuICAgIHBhZGRpbmctcmlnaHQ6IDYycHg7XG4gIH1cblxuICAvLyBtb3JlIHNwZWNpZmljIGNsYXNzbmFtZSA/XG4gIC5nb2FsLWFjdGlvbnMge1xuICAgIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGVZKC01MCUpKTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IC44cmVtO1xuICAgIHRvcDogNTAlO1xuICAgIG1hcmdpbjogMDtcbiAgfVxuXG4gICZfX2JvZHkge1xuICAgIHBhZGRpbmc6ICRjb250ZW50LXNwYWNlO1xuICB9XG5cbiAgLy8gRGVmaW5lIGJldHRlciwgd2lsbCB0aGlzIGdldCByZXVzZWQ/XG4gICYuZ2hvc3QtcGFuZWwge1xuICAgIEBpbmNsdWRlIGRpc3BsYXlGbGV4O1xuICAgIEBpbmNsdWRlIGFsaWduSXRlbXMoY2VudGVyKTtcbiAgICBAZXh0ZW5kICVjb2xvci10cmFuc2l0aW9uO1xuICAgIGJvcmRlcjogM3B4IGRvdHRlZCAkc29maS1ibHVlLW1lZC1saWdodDtcbiAgICBjb2xvcjogJGxpbmstY29sb3ItZGVmYXVsdDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHdvcmQtc3BhY2luZzogOTk5OXB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIFtjbGFzc149XCJpY29uLVwiXSB7XG4gICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gVGFibGVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gVE9ETzogKiBNb3ZlIG9yIGRlbGV0ZSB0YWJsZSBzdHlsZXMgbm90IHVzZWQgaW4gYWxsIGFwcHMsICogU3RhbmRhcmRpemUgdGFibGUgZGVzaWduIHBhdHRlcm5zIGJldHRlclxuXG4vKmRvY1xuLS0tXG50aXRsZTogVGFibGVzXG5uYW1lOiB0YWJsZXNcbmNhdGVnb3J5OiBNb2R1bGVzXG4tLS1cblxuVGFibGUgZGVzaWduIHBhdHRlcm5zIHN0aWxsIG5lZWQgYmV0dGVyIGRlZmluaXRpb24gYW5kIHN0YW5kYXJkaXphdGlvbi5cblxuIyNBbHRlcm5hdGluZyBSb3cgVGFibGVcblxuVGhpcyB0YWJsZSBzdHlsZSBpcyBjdXJyZW50bHkgdGhlIHNhbWUgYXMgdGhlIFwiSG92ZXIgUm93IFRhYmxlXCIgZXhjZXB0IHRoZSB0YWJsZSByb3dzIGRvbid0IGNoYW5nZSBjb2xvciB3aGVuIHlvdSBob3ZlciBvdmVyIHRoZW0uIFdlIG5lZWQgdG8gc3RhbmRhcmRpemUgdGhlc2UgdHdvIHRhYmxlIGRlc2lnbnMgdG8gY29uc29saWRhdGUgdGhlbSBvciBlbHNlIGRpZmZlcmVudGlhdGUgdGhlbSBtb3JlIGlmIHdlIGNhbi5cblxuQWRkIHRoZSBjbGFzcyBcInJlc3BvbnNpdmUtdGFibGVcIiB0byBtYWtlIHRhYmxlIGNlbGxzIHN0YWNrIGludG8gb25lIGNvbHVtbiBpbiBtb2JpbGUgdmlldy4gWW91IG11c3QgYWxzbyBhZGQgYSBkYXRhLXRoIGF0dHJpYnV0ZSB3aXRoIHRoZSBhc3NvY2lhdGVkIHRhYmxlIGhlYWRlciB0byBlYWNoIHRkIGZvciB0aGlzIHRvIGRpc3BsYXkgaGVhZGVycyBpbiBtb2JpbGUgdmlldy4gU2VlIGJlbG93IHRhYmxlcyBmb3IgZXhhbXBsZXMgb2YgaG93IHRoaXMgd29ya3MuIChOYXJyb3cgeW91ciBicm93c2VyIHNjcmVlbi4pXG5cbmBgYGh0bWxfZXhhbXBsZVxuPHRhYmxlIGNsYXNzPVwiYWx0ZXJuYXRpbmctcm93LXRhYmxlIHJlc3BvbnNpdmUtdGFibGVcIj5cbiAgPGNhcHRpb24+VGFibGUgQ2FwdGlvbjwvY2FwdGlvbj5cblxuICA8dGhlYWQ+XG4gICAgPHRyPlxuICAgICAgPHRoPkNlbGwgSGVhZGVyPC90aD5cbiAgICAgIDx0aD5DZWxsIEhlYWRlcjwvdGg+XG4gICAgICA8dGg+Q2VsbCBIZWFkZXI8L3RoPlxuICAgIDwvdHI+XG4gIDwvdGhlYWQ+XG5cbiAgPHRib2R5PlxuICAgIDx0cj5cbiAgICAgIDx0ZCBkYXRhLXRoPVwiQ2VsbCBIZWFkZXJcIj5DZWxsIGNvbnRlbnQ8L3RkPlxuICAgICAgPHRkIGRhdGEtdGg9XCJDZWxsIEhlYWRlclwiPkNlbGwgY29udGVudDwvdGQ+XG4gICAgICA8dGQgZGF0YS10aD1cIkNlbGwgSGVhZGVyXCI+Q2VsbCBjb250ZW50PC90ZD5cbiAgICA8L3RyPlxuXG4gICAgPHRyPlxuICAgICAgPHRkIGRhdGEtdGg9XCJDZWxsIEhlYWRlclwiPkNlbGwgY29udGVudDwvdGQ+XG4gICAgICA8dGQgZGF0YS10aD1cIkNlbGwgSGVhZGVyXCI+Q2VsbCBjb250ZW50PC90ZD5cbiAgICAgIDx0ZCBkYXRhLXRoPVwiQ2VsbCBIZWFkZXJcIj5DZWxsIGNvbnRlbnQ8L3RkPlxuICAgIDwvdHI+XG5cbiAgICA8dHI+XG4gICAgICA8dGQgZGF0YS10aD1cIkNlbGwgSGVhZGVyXCI+Q2VsbCBjb250ZW50PC90ZD5cbiAgICAgIDx0ZCBkYXRhLXRoPVwiQ2VsbCBIZWFkZXJcIj5DZWxsIGNvbnRlbnQ8L3RkPlxuICAgICAgPHRkIGRhdGEtdGg9XCJDZWxsIEhlYWRlclwiPkNlbGwgY29udGVudDwvdGQ+XG4gICAgPC90cj5cbiAgPC90Ym9keT5cbjwvdGFibGU+XG5gYGBcblxuIyNIb3ZlciBSb3cgVGFibGVcblxuYGBgaHRtbF9leGFtcGxlXG48dGFibGUgY2xhc3M9XCJob3Zlci1yb3ctdGFibGUgcmVzcG9uc2l2ZS10YWJsZVwiPlxuICA8Y2FwdGlvbj5UYWJsZSBDYXB0aW9uPC9jYXB0aW9uPlxuXG4gIDx0aGVhZD5cbiAgICA8dHI+XG4gICAgICA8dGg+Q2VsbCBIZWFkZXI8L3RoPlxuICAgICAgPHRoPkNlbGwgSGVhZGVyPC90aD5cbiAgICAgIDx0aD5DZWxsIEhlYWRlcjwvdGg+XG4gICAgPC90cj5cbiAgPC90aGVhZD5cblxuICA8dGJvZHk+XG4gICAgPHRyPlxuICAgICAgPHRkIGRhdGEtdGg9XCJDZWxsIEhlYWRlclwiPkNlbGwgY29udGVudDwvdGQ+XG4gICAgICA8dGQgZGF0YS10aD1cIkNlbGwgSGVhZGVyXCI+Q2VsbCBjb250ZW50PC90ZD5cbiAgICAgIDx0ZCBkYXRhLXRoPVwiQ2VsbCBIZWFkZXJcIj5DZWxsIGNvbnRlbnQ8L3RkPlxuICAgIDwvdHI+XG5cbiAgICA8dHI+XG4gICAgICA8dGQgZGF0YS10aD1cIkNlbGwgSGVhZGVyXCI+Q2VsbCBjb250ZW50PC90ZD5cbiAgICAgIDx0ZCBkYXRhLXRoPVwiQ2VsbCBIZWFkZXJcIj5DZWxsIGNvbnRlbnQ8L3RkPlxuICAgICAgPHRkIGRhdGEtdGg9XCJDZWxsIEhlYWRlclwiPkNlbGwgY29udGVudDwvdGQ+XG4gICAgPC90cj5cblxuICAgIDx0cj5cbiAgICAgIDx0ZCBkYXRhLXRoPVwiQ2VsbCBIZWFkZXJcIj5DZWxsIGNvbnRlbnQ8L3RkPlxuICAgICAgPHRkIGRhdGEtdGg9XCJDZWxsIEhlYWRlclwiPkNlbGwgY29udGVudDwvdGQ+XG4gICAgICA8dGQgZGF0YS10aD1cIkNlbGwgSGVhZGVyXCI+Q2VsbCBjb250ZW50PC90ZD5cbiAgICA8L3RyPlxuICA8L3Rib2R5PlxuPC90YWJsZT5cbmBgYFxuXG4jI0JvcmRlcmVkIFRhYmxlXG5cblRoaXMgd2FzIG9yaWdpbmFsbHkgY3JlYXRlZCBhcyBhIHRlbXBvcmFyeSB0YWJsZSBzdHlsZS4gSXQncyBubyBsb25nZXIgdXNlZCB3aXRoaW4gV2VhbHRoIGJ1dCBpcyBzdGlsbCB1c2VkIGluIEFkdmlzb3IgZm9yIHNvbWUgdGFibGVzLiBJZiB3ZSB3YW50IHRvIGNvbnRpbnVlIHVzaW5nIGl0IHdlIHNob3VsZCBiZXR0ZXIgZGVmaW5lIGhvdy93aGVyZSB0byB1c2UgaXQgYW5kIHBlcmhhcHMgcmVmaW5lIHRoZSBkZXNpZ24uXG5cbmBgYGh0bWxfZXhhbXBsZVxuPHRhYmxlIGNsYXNzPVwiYm9yZGVyZWQtdGFibGVcIj5cbiAgPGNhcHRpb24+VGFibGUgQ2FwdGlvbjwvY2FwdGlvbj5cblxuICA8dGhlYWQ+XG4gICAgPHRyPlxuICAgICAgPHRoPkNlbGwgSGVhZGVyPC90aD5cbiAgICAgIDx0aD5DZWxsIEhlYWRlcjwvdGg+XG4gICAgICA8dGg+Q2VsbCBIZWFkZXI8L3RoPlxuICAgIDwvdHI+XG4gIDwvdGhlYWQ+XG5cbiAgPHRib2R5PlxuICAgIDx0cj5cbiAgICAgIDx0ZCBkYXRhLXRoPVwiQ2VsbCBIZWFkZXJcIj5DZWxsIGNvbnRlbnQ8L3RkPlxuICAgICAgPHRkIGRhdGEtdGg9XCJDZWxsIEhlYWRlclwiPkNlbGwgY29udGVudDwvdGQ+XG4gICAgICA8dGQgZGF0YS10aD1cIkNlbGwgSGVhZGVyXCI+Q2VsbCBjb250ZW50PC90ZD5cbiAgICA8L3RyPlxuXG4gICAgPHRyPlxuICAgICAgPHRkIGRhdGEtdGg9XCJDZWxsIEhlYWRlclwiPkNlbGwgY29udGVudDwvdGQ+XG4gICAgICA8dGQgZGF0YS10aD1cIkNlbGwgSGVhZGVyXCI+Q2VsbCBjb250ZW50PC90ZD5cbiAgICAgIDx0ZCBkYXRhLXRoPVwiQ2VsbCBIZWFkZXJcIj5DZWxsIGNvbnRlbnQ8L3RkPlxuICAgIDwvdHI+XG5cbiAgICA8dHI+XG4gICAgICA8dGQgZGF0YS10aD1cIkNlbGwgSGVhZGVyXCI+Q2VsbCBjb250ZW50PC90ZD5cbiAgICAgIDx0ZCBkYXRhLXRoPVwiQ2VsbCBIZWFkZXJcIj5DZWxsIGNvbnRlbnQ8L3RkPlxuICAgICAgPHRkIGRhdGEtdGg9XCJDZWxsIEhlYWRlclwiPkNlbGwgY29udGVudDwvdGQ+XG4gICAgPC90cj5cbiAgPC90Ym9keT5cbjwvdGFibGU+XG5gYGBcblxuKi9cblxuLy8gYmV0dGVyIG5hbWUgLyB1c2FnZSBjYXNlID9cbi8vIFRPRE86IFN0YW5kYXJkaXplIGFuZCByZWZhY3RvclxuLnJlc3BvbnNpdmUtdGFibGUge1xuICB3aWR0aDogMTAwJTtcblxuICBAaW5jbHVkZSBicChtb2JpbGUpIHtcbiAgICB0aGVhZCB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIHRyLFxuICAgIHRkLFxuICAgIHRoIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIHRkLFxuICAgIHRoIHtcbiAgICAgIHBhZGRpbmc6IGluaXRpYWwgIWltcG9ydGFudDtcbiAgICAgIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgdHIge1xuICAgICAgcGFkZGluZzogMC41ZW07XG4gICAgfVxuXG4gICAgdGJvZHkge1xuICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRncmV5LWJvcmRlci1jb2xvcjtcblxuICAgICAgdHIge1xuICAgICAgICBib3JkZXItdG9wOiAwICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgJjpudGgtY2hpbGQob2RkKSB7XG4gICAgICAgICAgYmFja2dyb3VuZDogI2ZhZmFmYSAhaW1wb3J0YW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgIGJhY2tncm91bmQ6ICRjb29sLWdyYXktMWMgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB0ZCxcbiAgICAgIHRoIHtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50O1xuXG4gICAgICAgICsgdGQsXG4gICAgICAgICsgdGgge1xuICAgICAgICAgIG1hcmdpbi10b3A6IDAuM2VtO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGQ6ZW1wdHkge2Rpc3BsYXk6IG5vbmU7fVxuXG4gICAgLy8gXCJUSCdzXCIgZm9yIGNvbXBhY3QgbW9iaWxlIHZpZXc6XG4gICAgdGJvZHkgdGRbZGF0YS10aF06YmVmb3JlLFxuICAgIHRmb290IHRkW2RhdGEtdGhdOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiBhdHRyKGRhdGEtdGgpIFwiOiBcIjtcbiAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAgIGZvbnQtd2VpZ2h0OiAkYm9sZC13ZWlnaHQ7XG4gICAgfVxuXG4gICAgdGZvb3Qge1xuICAgICAgYm9yZGVyLXRvcDogMnB4IGRvdHRlZCAkZ3JleS1ib3JkZXItY29sb3IgIWltcG9ydGFudDtcblxuICAgICAgdGRbZGF0YS10aF06YmVmb3JlIHtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6ICRhbGwtY2Fwcy1sZXR0ZXItc3BhY2luZztcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gdGVtcCBzdHlsZTpcbi5ib3JkZXJlZC10YWJsZSB7XG4gIHdpZHRoOiAxMDAlO1xuXG4gIHRoLCB0ZCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGdyZXktYm9yZGVyLWNvbG9yO1xuICAgIHBhZGRpbmc6IDAuMmVtIDAuNGVtO1xuICB9XG5cbiAgdGgge1xuICAgIGJhY2tncm91bmQ6ICRjb29sLWdyYXktMWM7XG4gIH1cblxuICB0Ym9keSB0aCB7XG4gICAgd2lkdGg6IDUlO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIH1cbn1cblxuLmJvcmRlci1zZXBhcmF0ZWQtdGFibGUge1xuICB3aWR0aDogMTAwJTtcblxuICB0aCxcbiAgdGQge1xuICAgIHBhZGRpbmc6ICRjb250ZW50LXNwYWNlO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIH1cblxuICB0aGVhZCArIHRib2R5LFxuICB0ciArIHRyIHtcbiAgICB0aCxcbiAgICB0ZCB7XG4gICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJGdyZXktYm9yZGVyLWNvbG9yO1xuICAgIH1cbiAgfVxufVxuXG4vLyBOT1RFOiBUaGlzIHRhYmxlIGRlc2lnbiBpcyBzdGlsbCBpbiBmbHV4LCBhbHRlcm5hdGluZyByb3dzIGFyZSBiZWluZyByZXBsYWNlZCB3aXRoIGhpZ2hsaWdodGluZyByb3dzIG9uIGhvdmVyLFxuLy8gVE9ETzogbmVlZCB0byB1cGRhdGUgY2xhc3MgbmFtZSB0byByZWZsZWN0IGNoYW5nZXMgKGFkZGluZyBhZGRpdGlvbmFsIHRlbXAgY2xhc3MpLCBuZWVkIHRvIGRlZmluZSB1c2FnZSBzbyBtb3JlIGFwcHJvcHJpYXRlIGNsYXNzIG5hbWUgY2FuIGJlIGNob3NlblxuLmFsdGVybmF0aW5nLXJvdy10YWJsZSB7XG4gIHdpZHRoOiAxMDAlO1xuXG4gIHRib2R5IHRoIHtcbiAgICBAZXh0ZW5kICVhbGwtY2Fwcy10ZXh0O1xuICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICAgIHBhZGRpbmctdG9wOiAyZW0gIWltcG9ydGFudDtcbiAgfVxuXG4gIC8vIFRPRE86IG5lZWQgdG8gcmVmaW5lIHNwYWNpbmcgKHVzZSBzb21lIHNvcnQgb2YgY29udGFpbmVyL3NlY3Rpb24gd3JhcHBlcnMgaW5zdGVhZCB0byBhZGQgY29uc2lzdGVudCBzcGFjaW5nPyk6XG4gICsgdGFibGUge1xuICAgIG1hcmdpbi10b3A6IDJlbTtcbiAgfVxuXG4gIGNhcHRpb24gPiAqIHtcbiAgICBAZXh0ZW5kICVob3Jpei10ZXh0LXNwYWNpbmctY29tcGFjdDtcbiAgfVxuXG4gIHRoZWFkID4gdHIsXG4gIHRib2R5ID4gdHIge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkY29vbC1ncmF5LTNjO1xuICB9XG5cbiAgPiB0aGVhZCB7XG4gICAgYmFja2dyb3VuZDogJGNvb2wtZ3JheS0zYztcblxuICAgIHRoIHtcbiAgICAgIEBleHRlbmQgJWFsbC1jYXBzLXRleHQ7XG4gICAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICBwYWRkaW5nOiAwLjVlbTtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgIFtjbGFzc149XCJpY29uLVwiXSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gID4gdGJvZHkgPiB0cixcbiAgPiB0Zm9vdCA+IHRyIHtcbiAgICB0aCxcbiAgICB0ZCB7XG4gICAgICAvLyBUT0RPOiBUZXN0IHdoZXRoZXIgdmVydGljYWwtYWxpZ24gbWlkZGxlIGlzIGEgZ29vZCBkZWZhdWx0IGZvciB0aGlzIHRhYmxlIG9yIG5vdFxuICAgICAgLy8gKG5vdCBnb29kIHdpdGggbG9uZ2VyIHRleHQgY29udGVudCBhcyBpbiBBZHZpc29yIE5vdGVzIG1vZGFsKVxuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgIHBhZGRpbmc6IDAuOGVtIDAuNWVtO1xuXG4gICAgICBAaW5jbHVkZSBicChtb2JpbGUtYW5kLXRhYmxldCkge1xuICAgICAgICBwYWRkaW5nOiAwLjVlbTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICA+IHRib2R5ID4gdHIge1xuICAgICY6bnRoLWNoaWxkKG9kZCkge1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgfVxuXG4gICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgYmFja2dyb3VuZDogJGNvb2wtZ3JheS0xYztcbiAgICB9XG4gIH1cblxuICA+IHRmb290IHtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgJGdyZXktYm9yZGVyLWNvbG9yO1xuXG4gICAgdGQge1xuICAgICAgcGFkZGluZy10b3A6IC41ZW07XG4gICAgICBwYWRkaW5nLWJvdHRvbTogLjVlbTtcbiAgICB9XG4gIH1cbn1cblxuLmhvdmVyLXJvdy10YWJsZSB7XG4gIEBleHRlbmQgLmFsdGVybmF0aW5nLXJvdy10YWJsZTtcblxuICB0aCxcbiAgdGQge1xuICAgIEBleHRlbmQgJWJhY2tncm91bmQtdHJhbnNpdGlvbjtcbiAgfVxuXG4gID4gdGJvZHkgPiB0cjpob3ZlciB7XG4gICAgPiB0aCxcbiAgICA+IHRkIHtcbiAgICAgIC8vIFRPRE86IGNvbG9yIHRha2VuIGZyb20gVmlzdWFsIEd1aWRlbGluZXMgUERGLCBhZGQgYXMgbmFtZWQgdmFyaWFibGVcbiAgICAgIGJhY2tncm91bmQ6ICNFQkY3RkM7XG4gICAgfVxuICB9XG59XG5cbi8vIFRPRE86IGRlZmluZSBtb3JlIHJldXNhYmxlIHN0eWxlcyB0byBhcHBseSB0byB0YWJsZSBjZWxsc1xuLy8gdGFibGUgY2VsbHMgLyBjb2xzXG4ubnVtYmVyLWNlbGwge1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuLy8gYmV0dGVyIG5hbWU/XG4uYWN0aW9uLWNlbGwge1xuICBAZXh0ZW5kICVtaW4tY29udGVudC13aWR0aC1jZWxsO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgJnRoIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLy8gV0lQOlxudGZvb3QudGFibGUtdG90YWwge1xuICBmb250LXNpemU6ICRzbWFsbC1mb250LXNpemU7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGJhY2tncm91bmQ6ICRjb29sLWdyYXktMWM7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuXG4gIHRkID4gKiB7XG4gICAgQGV4dGVuZCAlaG9yaXotdGV4dC1zcGFjaW5nLWNvbXBhY3Q7XG4gIH1cbn1cblxuLy8gZm9yIGZvcm1hdHRpbmcgc2ltcGxlIHRhYmxlIG9mIHZhbHVlc1xuLnNpbXBsZS1kYXRhLXRhYmxlIHtcbiAgPiB0aGVhZCxcbiAgPiB0Ym9keSB7XG4gICAgdGgsXG4gICAgdGQge1xuICAgICAgcGFkZGluZzogMC4xZW0gMC41ZW07XG5cbiAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICB9XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgPiB0Ym9keSB0aCB7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgfVxufVxuXG5cbi8vIFRPRE86IGNsZWFuIHVwLCByZWZhY3RvciBhbmQgbW92ZSB0aGVzZSBzdHlsZXNcbi8vIHByZXZlbnQgZm9ybSBlbGVtZW50cyBzdHVjayBpbiB0YWJsZSBoZWFkZXJzIGZyb20gc3RyZXRjaGluZyB0YWJsZSB0b28gbXVjaC4uLlxudGgge1xuICBwIHtcbiAgICBAZXh0ZW5kICV2ZXJ0LXRleHQtc3BhY2luZy1jb21wYWN0O1xuICB9XG5cbiAgLmRhdGUtaW5wdXQtd3JhcHBlcixcbiAgaW5wdXQge1xuICAgIG1heC13aWR0aDogN2VtO1xuICB9XG5cbiAgaW5wdXQge1xuICAgIGZvbnQtc2l6ZTogJHNtYWxsLWZvbnQtc2l6ZTtcbiAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOiAwLjFlbSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLy8gZ2V0IHJpZCBvZiBleGNlc3MgcGFkZGluZyBpbiBzZWFyY2ggaW5wdXRzXG4gIGlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgfVxufVxuIiwiLy8gVGV4dCBFbGVtZW50c1xuXG4uc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogJHNtYWxsLWZvbnQtc2l6ZTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbn0iLCIvLyBjdXN0b20gdG9vbCB0aXBzXG5cbi8vIFNpbXBsZSB0b29sIHRpcCB1c2VkIG1haW5seSBmb3IgZXhwbGFpbmluZyBwdXJwb3NlIG9mIGljb25zIChvbmUtd29yZCApXG5bZGF0YS10aXRsZV06bm90KFtkYXRhLXRpdGxlPVwiXCJdKSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogdmlzaWJsZTtcblxuICAmLm9wZW4tYmVsb3c6YWZ0ZXIge1xuICAgIG1hcmdpbi10b3A6IDAuMmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgYm90dG9tOiBhdXRvO1xuICAgIHRvcDogMTAwJTtcbiAgfVxuXG4gIC8vIHNlcGFyYXRlZCBvdXQgdG8gc3VwcG9ydCBicm93c2VycyB0aGF0IGRvbid0IHJlY29nbml6ZSBpbnRyaW5zaWMgc2l6aW5nIHZhbHVlcyAob3RoZXJ3aXNlIGNvdWxkIGJlIGFwcGxpZWQgdG8gYWxsIHRvb2x0aXBzKVxuICAmLnZlcmJvc2UtdG9vbHRpcDphZnRlciB7XG4gICAgd2lkdGg6IDExZW07XG4gICAgd2lkdGg6IC13ZWJraXQtbWF4LWNvbnRlbnQ7XG4gICAgd2lkdGg6IC1tb3otbWF4LWNvbnRlbnQ7XG4gICAgd2lkdGg6IG1heC1jb250ZW50O1xuICB9XG5cbiAgJjphZnRlciB7XG4gICAgQGV4dGVuZCAldW5pdmVyc2FsLXRyYW5zaXRpb247XG4gICAgQGV4dGVuZCAldHJhbnNmb3JtLWhvcml6b250YWwtY2VudGVyO1xuICAgIGJhY2tncm91bmQ6ICMwMDA7XG4gICAgYm9yZGVyLXJhZGl1czogJGRlZmF1bHQtYm9yZGVyLXJhZGl1cztcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgZm9udC1zaXplOiAkc21hbGwtZm9udC1zaXplO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgY29udGVudDogYXR0cihkYXRhLXRpdGxlKTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tYm90dG9tOiAwLjJlbTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAxMDAlO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBtYXgtd2lkdGg6IDExZW07XG4gICAgbWF4LWhlaWdodDogMDtcbiAgICB6LWluZGV4OiA1MDA7XG4gIH1cblxuICAmOmhvdmVyOmFmdGVyIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIC41KTtcbiAgICBvcGFjaXR5OiAuODU7XG4gICAgcGFkZGluZzogMC41ZW07XG4gICAgbWF4LWhlaWdodDogMTBlbTtcbiAgfVxufVxuIiwiLy8gQm91cmJvbiA0LjMuNFxuLy8gaHR0cDovL2JvdXJib24uaW9cbi8vIENvcHlyaWdodCAyMDExLTIwMTcgdGhvdWdodGJvdCwgaW5jLlxuLy8gTUlUIExpY2Vuc2VcblxuQGltcG9ydCBcInNldHRpbmdzL2RlcHJlY2F0aW9uLXdhcm5pbmdzXCI7XG5AaW1wb3J0IFwic2V0dGluZ3MvcHJlZml4ZXJcIjtcbkBpbXBvcnQgXCJzZXR0aW5ncy9weC10by1lbVwiO1xuQGltcG9ydCBcInNldHRpbmdzL2Fzc2V0LXBpcGVsaW5lXCI7XG5cbkBpbXBvcnQgXCJib3VyYm9uLWRlcHJlY2F0ZVwiO1xuXG5AaW1wb3J0IFwiZnVuY3Rpb25zL2Fzc2lnbi1pbnB1dHNcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvY29udGFpbnNcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvY29udGFpbnMtZmFsc3lcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvaXMtbGVuZ3RoXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL2lzLWxpZ2h0XCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL2lzLW51bWJlclwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9pcy1zaXplXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL3B4LXRvLWVtXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL3B4LXRvLXJlbVwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9zaGFkZVwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9zdHJpcC11bml0c1wiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy90aW50XCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL3RyYW5zaXRpb24tcHJvcGVydHktbmFtZVwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy91bnBhY2tcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvbW9kdWxhci1zY2FsZVwiO1xuXG5AaW1wb3J0IFwiaGVscGVycy9jb252ZXJ0LXVuaXRzXCI7XG5AaW1wb3J0IFwiaGVscGVycy9kaXJlY3Rpb25hbC12YWx1ZXNcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL2ZvbnQtc291cmNlLWRlY2xhcmF0aW9uXCI7XG5AaW1wb3J0IFwiaGVscGVycy9ncmFkaWVudC1wb3NpdGlvbnMtcGFyc2VyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9saW5lYXItYW5nbGUtcGFyc2VyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9saW5lYXItZ3JhZGllbnQtcGFyc2VyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9saW5lYXItcG9zaXRpb25zLXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvbGluZWFyLXNpZGUtY29ybmVyLXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvcmFkaWFsLWFyZy1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL3JhZGlhbC1wb3NpdGlvbnMtcGFyc2VyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9yYWRpYWwtZ3JhZGllbnQtcGFyc2VyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9yZW5kZXItZ3JhZGllbnRzXCI7XG5AaW1wb3J0IFwiaGVscGVycy9zaGFwZS1zaXplLXN0cmlwcGVyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9zdHItdG8tbnVtXCI7XG5cbkBpbXBvcnQgXCJjc3MzL2FuaW1hdGlvblwiO1xuQGltcG9ydCBcImNzczMvYXBwZWFyYW5jZVwiO1xuQGltcG9ydCBcImNzczMvYmFja2ZhY2UtdmlzaWJpbGl0eVwiO1xuQGltcG9ydCBcImNzczMvYmFja2dyb3VuZFwiO1xuQGltcG9ydCBcImNzczMvYmFja2dyb3VuZC1pbWFnZVwiO1xuQGltcG9ydCBcImNzczMvYm9yZGVyLWltYWdlXCI7XG5AaW1wb3J0IFwiY3NzMy9jYWxjXCI7XG5AaW1wb3J0IFwiY3NzMy9jb2x1bW5zXCI7XG5AaW1wb3J0IFwiY3NzMy9maWx0ZXJcIjtcbkBpbXBvcnQgXCJjc3MzL2ZsZXgtYm94XCI7XG5AaW1wb3J0IFwiY3NzMy9mb250LWZhY2VcIjtcbkBpbXBvcnQgXCJjc3MzL2ZvbnQtZmVhdHVyZS1zZXR0aW5nc1wiO1xuQGltcG9ydCBcImNzczMvaGlkcGktbWVkaWEtcXVlcnlcIjtcbkBpbXBvcnQgXCJjc3MzL2h5cGhlbnNcIjtcbkBpbXBvcnQgXCJjc3MzL2ltYWdlLXJlbmRlcmluZ1wiO1xuQGltcG9ydCBcImNzczMva2V5ZnJhbWVzXCI7XG5AaW1wb3J0IFwiY3NzMy9saW5lYXItZ3JhZGllbnRcIjtcbkBpbXBvcnQgXCJjc3MzL3BlcnNwZWN0aXZlXCI7XG5AaW1wb3J0IFwiY3NzMy9wbGFjZWhvbGRlclwiO1xuQGltcG9ydCBcImNzczMvcmFkaWFsLWdyYWRpZW50XCI7XG5AaW1wb3J0IFwiY3NzMy9zZWxlY3Rpb25cIjtcbkBpbXBvcnQgXCJjc3MzL3RleHQtZGVjb3JhdGlvblwiO1xuQGltcG9ydCBcImNzczMvdHJhbnNmb3JtXCI7XG5AaW1wb3J0IFwiY3NzMy90cmFuc2l0aW9uXCI7XG5AaW1wb3J0IFwiY3NzMy91c2VyLXNlbGVjdFwiO1xuXG5AaW1wb3J0IFwiYWRkb25zL2JvcmRlci1jb2xvclwiO1xuQGltcG9ydCBcImFkZG9ucy9ib3JkZXItcmFkaXVzXCI7XG5AaW1wb3J0IFwiYWRkb25zL2JvcmRlci1zdHlsZVwiO1xuQGltcG9ydCBcImFkZG9ucy9ib3JkZXItd2lkdGhcIjtcbkBpbXBvcnQgXCJhZGRvbnMvYnV0dG9uc1wiO1xuQGltcG9ydCBcImFkZG9ucy9jbGVhcmZpeFwiO1xuQGltcG9ydCBcImFkZG9ucy9lbGxpcHNpc1wiO1xuQGltcG9ydCBcImFkZG9ucy9mb250LXN0YWNrc1wiO1xuQGltcG9ydCBcImFkZG9ucy9oaWRlLXRleHRcIjtcbkBpbXBvcnQgXCJhZGRvbnMvbWFyZ2luXCI7XG5AaW1wb3J0IFwiYWRkb25zL3BhZGRpbmdcIjtcbkBpbXBvcnQgXCJhZGRvbnMvcG9zaXRpb25cIjtcbkBpbXBvcnQgXCJhZGRvbnMvcHJlZml4ZXJcIjtcbkBpbXBvcnQgXCJhZGRvbnMvcmV0aW5hLWltYWdlXCI7XG5AaW1wb3J0IFwiYWRkb25zL3NpemVcIjtcbkBpbXBvcnQgXCJhZGRvbnMvdGV4dC1pbnB1dHNcIjtcbkBpbXBvcnQgXCJhZGRvbnMvdGltaW5nLWZ1bmN0aW9uc1wiO1xuQGltcG9ydCBcImFkZG9ucy90cmlhbmdsZVwiO1xuQGltcG9ydCBcImFkZG9ucy93b3JkLXdyYXBcIjtcblxuQGltcG9ydCBcImJvdXJib24tZGVwcmVjYXRlZC11cGNvbWluZ1wiO1xuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gRW5hYmxlIG9yIGRpc2FibGUgb3V0cHV0IG9mIEJvdXJib27igJlzIGRlcHJlY2F0aW9uLXJlbGF0ZWQgU2FzcyB3YXJuaW5ncy5cbi8vLyBUaGlzIHZhcmlhYmxlIG11c3QgYmUgZGVjbGFyZWQgX2JlZm9yZV8gaW1wb3J0aW5nIEJvdXJib24uXG4vLy9cbi8vLyBAdHlwZSBCb29sXG5cbiRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogdHJ1ZSAhZGVmYXVsdDtcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIEdsb2JhbCB2YXJpYWJsZXMgdG8gZW5hYmxlIG9yIGRpc2FibGUgdmVuZG9yIHByZWZpeGVzXG5cbiRwcmVmaXgtZm9yLXdlYmtpdDogICAgdHJ1ZSAhZGVmYXVsdDtcbiRwcmVmaXgtZm9yLW1vemlsbGE6ICAgdHJ1ZSAhZGVmYXVsdDtcbiRwcmVmaXgtZm9yLW1pY3Jvc29mdDogdHJ1ZSAhZGVmYXVsdDtcbiRwcmVmaXgtZm9yLW9wZXJhOiAgICAgdHJ1ZSAhZGVmYXVsdDtcbiRwcmVmaXgtZm9yLXNwZWM6ICAgICAgdHJ1ZSAhZGVmYXVsdDtcbiIsIiRlbS1iYXNlOiAxNnB4ICFkZWZhdWx0O1xuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQSBnbG9iYWwgc2V0dGluZyB0byBlbmFibGUgb3IgZGlzYWJsZSB0aGUgYCRhc3NldC1waXBlbGluZWAgdmFyaWFibGUgZm9yIGFsbCBmdW5jdGlvbnMgdGhhdCBhY2NlcHQgaXQuXG4vLy9cbi8vLyBAdHlwZSBCb29sXG5cbiRhc3NldC1waXBlbGluZTogZmFsc2UgIWRlZmF1bHQ7XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBUaHJvd3MgU2FzcyB3YXJuaW5ncyB0byBhbm5vdW5jZSBsaWJyYXJ5IGRlcHJlY2F0aW9ucy4gWW91IGNhbiBkaXNhYmxlIHRoZW1cbi8vLyBieSBzZXR0aW5nIHRoZSBgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzYCB2YXJpYWJsZSB0byBgZmFsc2VgLlxuLy8vXG4vLy8gQGFjY2VzcyBwcml2YXRlXG5cbkBtaXhpbiBfYm91cmJvbi1kZXByZWNhdGUoJGZlYXR1cmUsICRtZXNzYWdlOiBudWxsKSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgI3skZmVhdHVyZX1gIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgXCIgK1xuICAgICAgXCJyZW1vdmVkIGluIDUuMC4wLiAjeyRtZXNzYWdlfVwiO1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBtaXhpbiBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZygkZmVhdHVyZSkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUoJGZlYXR1cmUsIFwiV2Ugc3VnZ2VzdCB1c2luZyBhbiBhdXRvbWF0ZWQgXCIgK1xuICAgIFwicHJlZml4aW5nIHRvb2wsIGxpa2UgQXV0b3ByZWZpeGVyLlwiKTtcbn1cbiIsIkBmdW5jdGlvbiBhc3NpZ24taW5wdXRzKCRpbnB1dHMsICRwc2V1ZG86IG51bGwpIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGBhc3NpZ24taW5wdXRzYCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIFwiICtcbiAgICBcInJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICAkbGlzdDogKCk7XG5cbiAgQGVhY2ggJGlucHV0IGluICRpbnB1dHMge1xuICAgICRpbnB1dDogdW5xdW90ZSgkaW5wdXQpO1xuICAgICRpbnB1dDogaWYoJHBzZXVkbywgJGlucHV0ICsgXCI6XCIgKyAkcHNldWRvLCAkaW5wdXQpO1xuICAgICRsaXN0OiBhcHBlbmQoJGxpc3QsICRpbnB1dCwgY29tbWEpO1xuICB9XG5cbiAgQHJldHVybiAkbGlzdDtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIENoZWNrcyBpZiBhIGxpc3QgY29udGFpbnMgYSB2YWx1ZShzKS5cbi8vL1xuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkbGlzdFxuLy8vICAgVGhlIGxpc3QgdG8gY2hlY2sgYWdhaW5zdC5cbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHZhbHVlc1xuLy8vICAgQSBzaW5nbGUgdmFsdWUgb3IgbGlzdCBvZiB2YWx1ZXMgdG8gY2hlY2sgZm9yLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICBjb250YWlucygkbGlzdCwgJHZhbHVlKVxuLy8vXG4vLy8gQHJldHVybiB7Qm9vbH1cblxuQGZ1bmN0aW9uIGNvbnRhaW5zKCRsaXN0LCAkdmFsdWVzLi4uKSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgY29udGFpbnNgIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgXCIgK1xuICAgIFwicmVtb3ZlZCBpbiA1LjAuMC5cIjtcbiAgfVxuXG4gIEBlYWNoICR2YWx1ZSBpbiAkdmFsdWVzIHtcbiAgICBAaWYgdHlwZS1vZihpbmRleCgkbGlzdCwgJHZhbHVlKSkgIT0gXCJudW1iZXJcIiB7XG4gICAgICBAcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gdHJ1ZTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIENoZWNrcyBpZiBhIGxpc3QgZG9lcyBub3QgY29udGFpbnMgYSB2YWx1ZS5cbi8vL1xuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkbGlzdFxuLy8vICAgVGhlIGxpc3QgdG8gY2hlY2sgYWdhaW5zdC5cbi8vL1xuLy8vIEByZXR1cm4ge0Jvb2x9XG5cbkBmdW5jdGlvbiBjb250YWlucy1mYWxzeSgkbGlzdCkge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYGNvbnRhaW5zLWZhbHN5YCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIFwiICtcbiAgICBcInJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICBAZWFjaCAkaXRlbSBpbiAkbGlzdCB7XG4gICAgQGlmIG5vdCAkaXRlbSB7XG4gICAgICBAcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiBmYWxzZTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIENoZWNrcyBmb3IgYSB2YWxpZCBDU1MgbGVuZ3RoLlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR2YWx1ZVxuXG5AZnVuY3Rpb24gaXMtbGVuZ3RoKCR2YWx1ZSkge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYGlzLWxlbmd0aGAgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSBcIiArXG4gICAgXCJyZW1vdmVkIGluIDUuMC4wLlwiO1xuICB9XG5cbiAgQHJldHVybiB0eXBlLW9mKCR2YWx1ZSkgIT0gXCJudWxsXCIgYW5kIChzdHItc2xpY2UoJHZhbHVlICsgXCJcIiwgMSwgNCkgPT0gXCJjYWxjXCJcbiAgICAgICBvciBpbmRleChhdXRvIGluaGVyaXQgaW5pdGlhbCAwLCAkdmFsdWUpXG4gICAgICAgb3IgKHR5cGUtb2YoJHZhbHVlKSA9PSBcIm51bWJlclwiIGFuZCBub3QodW5pdGxlc3MoJHZhbHVlKSkpKTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb2dyYW1hdGljYWxseSBkZXRlcm1pbmVzIHdoZXRoZXIgYSBjb2xvciBpcyBsaWdodCBvciBkYXJrLlxuLy8vXG4vLy8gQGxpbmsgaHR0cDovL3JvYm90cy50aG91Z2h0Ym90LmNvbS9jbG9zZXItbG9vay1jb2xvci1saWdodG5lc3Ncbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3IgKEhleCl9ICRjb2xvclxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICBpcy1saWdodCgkY29sb3IpXG4vLy9cbi8vLyBAcmV0dXJuIHtCb29sfVxuXG5AZnVuY3Rpb24gaXMtbGlnaHQoJGhleC1jb2xvcikge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYGlzLWxpZ2h0YCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIFwiICtcbiAgICBcInJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICAkLWxvY2FsLXJlZDogcmVkKHJnYmEoJGhleC1jb2xvciwgMSkpO1xuICAkLWxvY2FsLWdyZWVuOiBncmVlbihyZ2JhKCRoZXgtY29sb3IsIDEpKTtcbiAgJC1sb2NhbC1ibHVlOiBibHVlKHJnYmEoJGhleC1jb2xvciwgMSkpO1xuICAkLWxvY2FsLWxpZ2h0bmVzczogKCQtbG9jYWwtcmVkICogMC4yMTI2ICsgJC1sb2NhbC1ncmVlbiAqIDAuNzE1MiArICQtbG9jYWwtYmx1ZSAqIDAuMDcyMikgLyAyNTU7XG5cbiAgQHJldHVybiAkLWxvY2FsLWxpZ2h0bmVzcyA+IDAuNjtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIENoZWNrcyBmb3IgYSB2YWxpZCBudW1iZXIuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHZhbHVlXG4vLy9cbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGNvbnRhaW5zXG5cbkBmdW5jdGlvbiBpcy1udW1iZXIoJHZhbHVlKSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgaXMtbnVtYmVyYCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIFwiICtcbiAgICBcInJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICBAcmV0dXJuIGNvbnRhaW5zKFwiMFwiIFwiMVwiIFwiMlwiIFwiM1wiIFwiNFwiIFwiNVwiIFwiNlwiIFwiN1wiIFwiOFwiIFwiOVwiIDAgMSAyIDMgNCA1IDYgNyA4IDksICR2YWx1ZSk7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBDaGVja3MgZm9yIGEgdmFsaWQgQ1NTIHNpemUuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHZhbHVlXG4vLy9cbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGNvbnRhaW5zXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBpcy1sZW5ndGhcblxuQGZ1bmN0aW9uIGlzLXNpemUoJHZhbHVlKSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgaXMtc2l6ZWAgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSBcIiArXG4gICAgXCJyZW1vdmVkIGluIDUuMC4wLlwiO1xuICB9XG5cbiAgJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZzogJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzO1xuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6IGZhbHNlICFnbG9iYWw7XG5cbiAgQHJldHVybiBpcy1sZW5ndGgoJHZhbHVlKVxuICAgICAgICAgIG9yIGNvbnRhaW5zKFwiZmlsbFwiIFwiZml0LWNvbnRlbnRcIiBcIm1pbi1jb250ZW50XCIgXCJtYXgtY29udGVudFwiLCAkdmFsdWUpO1xuXG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZyAhZ2xvYmFsO1xufVxuIiwiLy8gQ29udmVydCBwaXhlbHMgdG8gZW1zXG4vLyBlZy4gZm9yIGEgcmVsYXRpb25hbCB2YWx1ZSBvZiAxMnB4IHdyaXRlIGVtKDEyKSB3aGVuIHRoZSBwYXJlbnQgaXMgMTZweFxuLy8gaWYgdGhlIHBhcmVudCBpcyBhbm90aGVyIHZhbHVlIHNheSAyNHB4IHdyaXRlIGVtKDEyLCAyNClcblxuQGZ1bmN0aW9uIGVtKCRweHZhbCwgJGJhc2U6ICRlbS1iYXNlKSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgZW1gIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgXCIgK1xuICAgIFwicmVtb3ZlZCBpbiA1LjAuMC5cIjtcbiAgfVxuXG4gICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmc6ICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncztcbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiBmYWxzZSAhZ2xvYmFsO1xuXG4gIEBpZiBub3QgdW5pdGxlc3MoJHB4dmFsKSB7XG4gICAgJHB4dmFsOiBzdHJpcC11bml0cygkcHh2YWwpO1xuICB9XG4gIEBpZiBub3QgdW5pdGxlc3MoJGJhc2UpIHtcbiAgICAkYmFzZTogc3RyaXAtdW5pdHMoJGJhc2UpO1xuICB9XG5cbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nICFnbG9iYWw7XG5cbiAgQHJldHVybiAoJHB4dmFsIC8gJGJhc2UpICogMWVtO1xufVxuIiwiLy8gQ29udmVydCBwaXhlbHMgdG8gcmVtc1xuLy8gZWcuIGZvciBhIHJlbGF0aW9uYWwgdmFsdWUgb2YgMTJweCB3cml0ZSByZW0oMTIpXG4vLyBBc3N1bWVzICRlbS1iYXNlIGlzIHRoZSBmb250LXNpemUgb2YgPGh0bWw+XG5cbkBmdW5jdGlvbiByZW0oJHB4dmFsKSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgcmVtYCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIFwiICtcbiAgICBcInJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nOiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M7XG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogZmFsc2UgIWdsb2JhbDtcblxuICBAaWYgbm90IHVuaXRsZXNzKCRweHZhbCkge1xuICAgICRweHZhbDogc3RyaXAtdW5pdHMoJHB4dmFsKTtcbiAgfVxuXG4gICRiYXNlOiAkZW0tYmFzZTtcbiAgQGlmIG5vdCB1bml0bGVzcygkYmFzZSkge1xuICAgICRiYXNlOiBzdHJpcC11bml0cygkYmFzZSk7XG4gIH1cblxuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6ICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmcgIWdsb2JhbDtcblxuICBAcmV0dXJuICgkcHh2YWwgLyAkYmFzZSkgKiAxcmVtO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gTWl4ZXMgYSBjb2xvciB3aXRoIGJsYWNrLlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlciAoUGVyY2VudGFnZSl9ICRwZXJjZW50XG4vLy8gICBUaGUgYW1vdW50IG9mIGJsYWNrIHRvIGJlIG1peGVkIGluLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6IHNoYWRlKCNmZmJiNTIsIDYwJSk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICM2NjRhMjA7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmV0dXJuIHtDb2xvcn1cblxuQGZ1bmN0aW9uIHNoYWRlKCRjb2xvciwgJHBlcmNlbnQpIHtcbiAgQHJldHVybiBtaXgoIzAwMCwgJGNvbG9yLCAkcGVyY2VudCk7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBTdHJpcHMgdGhlIHVuaXQgZnJvbSBhIG51bWJlci5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyIChXaXRoIFVuaXQpfSAkdmFsdWVcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgJGRpbWVuc2lvbjogc3RyaXAtdW5pdHMoMTBlbSk7XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAkZGltZW5zaW9uOiAxMDtcbi8vL1xuLy8vIEByZXR1cm4ge051bWJlciAoVW5pdGxlc3MpfVxuXG5AZnVuY3Rpb24gc3RyaXAtdW5pdHMoJHZhbHVlKSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgc3RyaXAtdW5pdHNgIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgXCIgK1xuICAgIFwicmVtb3ZlZCBpbiA1LjAuMCBhbmQgcmVwbGFjZWQgYnkgdGhlIGBzdHJpcC11bml0YCBmdW5jdGlvbi5cIjtcbiAgfVxuXG4gIEByZXR1cm4gKCR2YWx1ZSAvICgkdmFsdWUgKiAwICsgMSkpO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gTWl4ZXMgYSBjb2xvciB3aXRoIHdoaXRlLlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlciAoUGVyY2VudGFnZSl9ICRwZXJjZW50XG4vLy8gICBUaGUgYW1vdW50IG9mIHdoaXRlIHRvIGJlIG1peGVkIGluLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6IHRpbnQoIzZlY2FhNiwgNDAlKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogI2E4ZGZjOTtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXR1cm4ge0NvbG9yfVxuXG5AZnVuY3Rpb24gdGludCgkY29sb3IsICRwZXJjZW50KSB7XG4gIEByZXR1cm4gbWl4KCNmZmYsICRjb2xvciwgJHBlcmNlbnQpO1xufVxuIiwiLy8gUmV0dXJuIHZlbmRvci1wcmVmaXhlZCBwcm9wZXJ0eSBuYW1lcyBpZiBhcHByb3ByaWF0ZVxuLy8gRXhhbXBsZTogdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lcygodHJhbnNmb3JtLCBjb2xvciwgYmFja2dyb3VuZCksIG1veikgLT4gLW1vei10cmFuc2Zvcm0sIGNvbG9yLCBiYWNrZ3JvdW5kXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG5AZnVuY3Rpb24gdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lcygkcHJvcHMsICR2ZW5kb3I6IGZhbHNlKSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lc2AgaXMgZGVwcmVjYXRlZCBcIiArXG4gICAgXCJhbmQgd2lsbCBiZSByZW1vdmVkIGluIDUuMC4wLlwiO1xuICB9XG5cbiAgJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZzogJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzO1xuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6IGZhbHNlICFnbG9iYWw7XG5cbiAgJG5ldy1wcm9wczogKCk7XG5cbiAgQGVhY2ggJHByb3AgaW4gJHByb3BzIHtcbiAgICAkbmV3LXByb3BzOiBhcHBlbmQoJG5ldy1wcm9wcywgdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lKCRwcm9wLCAkdmVuZG9yKSwgY29tbWEpO1xuICB9XG5cbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nICFnbG9iYWw7XG5cbiAgQHJldHVybiAkbmV3LXByb3BzO1xufVxuXG5AZnVuY3Rpb24gdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lKCRwcm9wLCAkdmVuZG9yOiBmYWxzZSkge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYHRyYW5zaXRpb24tcHJvcGVydHktbmFtZWAgaXMgZGVwcmVjYXRlZCBcIiArXG4gICAgXCJhbmQgd2lsbCBiZSByZW1vdmVkIGluIDUuMC4wLlwiO1xuICB9XG5cbiAgLy8gcHV0IG90aGVyIHByb3BlcnRpZXMgdGhhdCBuZWVkIHRvIGJlIHByZWZpeGVkIGhlcmUgYXN3ZWxsXG4gIEBpZiAkdmVuZG9yIGFuZCAkcHJvcCA9PSB0cmFuc2Zvcm0ge1xuICAgIEByZXR1cm4gdW5xdW90ZSgnLScrJHZlbmRvcisnLScrJHByb3ApO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuICRwcm9wO1xuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBDb252ZXJ0cyBzaG9ydGhhbmQgdG8gdGhlIDQtdmFsdWUgc3ludGF4LlxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkc2hvcnRoYW5kXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgbWFyZ2luOiB1bnBhY2soMWVtIDJlbSk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIG1hcmdpbjogMWVtIDJlbSAxZW0gMmVtO1xuLy8vICAgfVxuXG5AZnVuY3Rpb24gdW5wYWNrKCRzaG9ydGhhbmQpIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGB1bnBhY2tgIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgXCIgK1xuICAgIFwicmVtb3ZlZCBpbiA1LjAuMC5cIjtcbiAgfVxuXG4gIEBpZiBsZW5ndGgoJHNob3J0aGFuZCkgPT0gMSB7XG4gICAgQHJldHVybiBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMSk7XG4gIH0gQGVsc2UgaWYgbGVuZ3RoKCRzaG9ydGhhbmQpID09IDIge1xuICAgIEByZXR1cm4gbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAyKSBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDIpO1xuICB9IEBlbHNlIGlmIGxlbmd0aCgkc2hvcnRoYW5kKSA9PSAzIHtcbiAgICBAcmV0dXJuIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMikgbnRoKCRzaG9ydGhhbmQsIDMpIG50aCgkc2hvcnRoYW5kLCAyKTtcbiAgfSBAZWxzZSB7XG4gICAgQHJldHVybiAkc2hvcnRoYW5kO1xuICB9XG59XG4iLCIvLyBTY2FsaW5nIFZhcmlhYmxlc1xuJGdvbGRlbjogICAgICAgICAgIDEuNjE4O1xuJG1pbm9yLXNlY29uZDogICAgIDEuMDY3O1xuJG1ham9yLXNlY29uZDogICAgIDEuMTI1O1xuJG1pbm9yLXRoaXJkOiAgICAgIDEuMjtcbiRtYWpvci10aGlyZDogICAgICAxLjI1O1xuJHBlcmZlY3QtZm91cnRoOiAgIDEuMzMzO1xuJGF1Z21lbnRlZC1mb3VydGg6IDEuNDE0O1xuJHBlcmZlY3QtZmlmdGg6ICAgIDEuNTtcbiRtaW5vci1zaXh0aDogICAgICAxLjY7XG4kbWFqb3Itc2l4dGg6ICAgICAgMS42Njc7XG4kbWlub3Itc2V2ZW50aDogICAgMS43Nzg7XG4kbWFqb3Itc2V2ZW50aDogICAgMS44NzU7XG4kb2N0YXZlOiAgICAgICAgICAgMjtcbiRtYWpvci10ZW50aDogICAgICAyLjU7XG4kbWFqb3ItZWxldmVudGg6ICAgMi42Njc7XG4kbWFqb3ItdHdlbGZ0aDogICAgMztcbiRkb3VibGUtb2N0YXZlOiAgICA0O1xuXG4kdXNlci1vdXRwdXQtZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZzogJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzO1xuJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiBmYWxzZTtcblxuJG1vZHVsYXItc2NhbGUtcmF0aW86ICRwZXJmZWN0LWZvdXJ0aCAhZGVmYXVsdDtcbiRtb2R1bGFyLXNjYWxlLWJhc2U6IGVtKCRlbS1iYXNlKSAhZGVmYXVsdDtcblxuJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiAkdXNlci1vdXRwdXQtZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZztcblxuQGZ1bmN0aW9uIG1vZHVsYXItc2NhbGUoJGluY3JlbWVudCwgJHZhbHVlOiAkbW9kdWxhci1zY2FsZS1iYXNlLCAkcmF0aW86ICRtb2R1bGFyLXNjYWxlLXJhdGlvKSB7XG4gICR2MTogbnRoKCR2YWx1ZSwgMSk7XG4gICR2MjogbnRoKCR2YWx1ZSwgbGVuZ3RoKCR2YWx1ZSkpO1xuICAkdmFsdWU6ICR2MTtcblxuICAvLyBzY2FsZSAkdjIgdG8ganVzdCBhYm92ZSAkdjFcbiAgQHdoaWxlICR2MiA+ICR2MSB7XG4gICAgJHYyOiAoJHYyIC8gJHJhdGlvKTsgLy8gd2lsbCBiZSBvZmYtYnktMVxuICB9XG4gIEB3aGlsZSAkdjIgPCAkdjEge1xuICAgICR2MjogKCR2MiAqICRyYXRpbyk7IC8vIHdpbGwgZml4IG9mZi1ieS0xXG4gIH1cblxuICAvLyBjaGVjayBBRlRFUiBzY2FsaW5nICR2MiB0byBwcmV2ZW50IGRvdWJsZS1jb3VudGluZyBjb3JuZXItY2FzZVxuICAkZG91YmxlLXN0cmFuZGVkOiAkdjIgPiAkdjE7XG5cbiAgQGlmICRpbmNyZW1lbnQgPiAwIHtcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRpbmNyZW1lbnQge1xuICAgICAgQGlmICRkb3VibGUtc3RyYW5kZWQgYW5kICgkdjEgKiAkcmF0aW8pID4gJHYyIHtcbiAgICAgICAgJHZhbHVlOiAkdjI7XG4gICAgICAgICR2MjogKCR2MiAqICRyYXRpbyk7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgJHYxOiAoJHYxICogJHJhdGlvKTtcbiAgICAgICAgJHZhbHVlOiAkdjE7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGlmICRpbmNyZW1lbnQgPCAwIHtcbiAgICAvLyBhZGp1c3QgJHYyIHRvIGp1c3QgYmVsb3cgJHYxXG4gICAgQGlmICRkb3VibGUtc3RyYW5kZWQge1xuICAgICAgJHYyOiAoJHYyIC8gJHJhdGlvKTtcbiAgICB9XG5cbiAgICBAZm9yICRpIGZyb20gJGluY3JlbWVudCB0aHJvdWdoIC0xIHtcbiAgICAgIEBpZiAkZG91YmxlLXN0cmFuZGVkIGFuZCAoJHYxIC8gJHJhdGlvKSA8ICR2MiB7XG4gICAgICAgICR2YWx1ZTogJHYyO1xuICAgICAgICAkdjI6ICgkdjIgLyAkcmF0aW8pO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgICR2MTogKCR2MSAvICRyYXRpbyk7XG4gICAgICAgICR2YWx1ZTogJHYxO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlO1xufVxuIiwiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuLy8gSGVscGVyIGZ1bmN0aW9uIGZvciBzdHItdG8tbnVtIGZuLlxuLy8gU291cmNlOiBodHRwOi8vc2Fzc21laXN0ZXIuY29tL2dpc3QvOTY0NzQwOFxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuQGZ1bmN0aW9uIF9jb252ZXJ0LXVuaXRzKCRudW1iZXIsICR1bml0KSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgX2NvbnZlcnQtdW5pdHNgIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgXCIgK1xuICAgIFwiYmUgcmVtb3ZlZCBpbiA1LjAuMC5cIjtcbiAgfVxuXG4gICRzdHJpbmdzOiBcInB4XCIsIFwiY21cIiwgXCJtbVwiLCBcIiVcIiwgXCJjaFwiLCBcInBpY2FcIiwgXCJpblwiLCBcImVtXCIsIFwicmVtXCIsIFwicHRcIiwgXCJwY1wiLCBcImV4XCIsIFwidndcIiwgXCJ2aFwiLCBcInZtaW5cIiwgXCJ2bWF4XCIsIFwiZGVnXCIsIFwicmFkXCIsIFwiZ3JhZFwiLCBcInR1cm5cIjtcbiAgJHVuaXRzOiAgIDFweCwgMWNtLCAxbW0sIDElLCAxY2gsIDFwaWNhLCAxaW4sIDFlbSwgMXJlbSwgMXB0LCAxcGMsIDFleCwgMXZ3LCAxdmgsIDF2bWluLCAxdm1heCwgMWRlZywgMXJhZCwgMWdyYWQsIDF0dXJuO1xuICAkaW5kZXg6IGluZGV4KCRzdHJpbmdzLCAkdW5pdCk7XG5cbiAgQGlmIG5vdCAkaW5kZXgge1xuICAgIEB3YXJuIFwiVW5rbm93biB1bml0IGAjeyR1bml0fWAuXCI7XG4gICAgQHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCRudW1iZXIpICE9IFwibnVtYmVyXCIge1xuICAgIEB3YXJuIFwiYCN7JG51bWJlcn0gaXMgbm90IGEgbnVtYmVyYFwiO1xuICAgIEByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBAcmV0dXJuICRudW1iZXIgKiBudGgoJHVuaXRzLCAkaW5kZXgpO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gRGlyZWN0aW9uYWwtcHJvcGVydHkgbWl4aW5zIGFyZSBzaG9ydGhhbmRzIGZvciB3cml0aW5nIHByb3BlcnRpZXMgbGlrZSB0aGUgZm9sbG93aW5nXG4vLy9cbi8vLyBAaWdub3JlIFlvdSBjYW4gYWxzbyB1c2UgYGZhbHNlYCBpbnN0ZWFkIG9mIGBudWxsYC5cbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHZhbHNcbi8vLyAgIExpc3Qgb2YgZGlyZWN0aW9uYWwgdmFsdWVzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgYm9yZGVyLXN0eWxlKGRvdHRlZCBudWxsKTtcbi8vLyAgICAgQGluY2x1ZGUgbWFyZ2luKG51bGwgMCAxMHB4KTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogZG90dGVkO1xuLy8vICAgICBib3JkZXItdG9wLXN0eWxlOiBkb3R0ZWQ7XG4vLy8gICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4vLy8gICAgIG1hcmdpbi1sZWZ0OiAwO1xuLy8vICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGNvbnRhaW5zLWZhbHN5XG4vLy9cbi8vLyBAcmV0dXJuIHtMaXN0fVxuXG5AZnVuY3Rpb24gY29sbGFwc2UtZGlyZWN0aW9uYWxzKCR2YWxzKSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgY29sbGFwc2UtZGlyZWN0aW9uYWxzYCBpcyBkZXByZWNhdGVkIGFuZCBcIiArXG4gICAgXCJ3aWxsIGJlIHJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICAkb3V0cHV0OiBudWxsO1xuXG4gICRhOiBudGgoJHZhbHMsIDEpO1xuICAkYjogaWYobGVuZ3RoKCR2YWxzKSA8IDIsICRhLCBudGgoJHZhbHMsIDIpKTtcbiAgJGM6IGlmKGxlbmd0aCgkdmFscykgPCAzLCAkYSwgbnRoKCR2YWxzLCAzKSk7XG4gICRkOiBpZihsZW5ndGgoJHZhbHMpIDwgMiwgJGEsIG50aCgkdmFscywgaWYobGVuZ3RoKCR2YWxzKSA8IDQsIDIsIDQpKSk7XG5cbiAgQGlmICRhID09IDAgeyAkYTogMDsgfVxuICBAaWYgJGIgPT0gMCB7ICRiOiAwOyB9XG4gIEBpZiAkYyA9PSAwIHsgJGM6IDA7IH1cbiAgQGlmICRkID09IDAgeyAkZDogMDsgfVxuXG4gIEBpZiAkYSA9PSAkYiBhbmQgJGEgPT0gJGMgYW5kICRhID09ICRkIHsgJG91dHB1dDogJGE7ICAgICAgICAgIH1cbiAgQGVsc2UgaWYgJGEgPT0gJGMgYW5kICRiID09ICRkICAgICAgICAgeyAkb3V0cHV0OiAkYSAkYjsgICAgICAgfVxuICBAZWxzZSBpZiAkYiA9PSAkZCAgICAgICAgICAgICAgICAgICAgICB7ICRvdXRwdXQ6ICRhICRiICRjOyAgICB9XG4gIEBlbHNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgJG91dHB1dDogJGEgJGIgJGMgJGQ7IH1cblxuICBAcmV0dXJuICRvdXRwdXQ7XG59XG5cbi8vLyBPdXRwdXQgZGlyZWN0aW9uYWwgcHJvcGVydGllcywgZm9yIGluc3RhbmNlIGBtYXJnaW5gLlxuLy8vXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHByZVxuLy8vICAgUHJlZml4IHRvIHVzZVxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc3VmXG4vLy8gICBTdWZmaXggdG8gdXNlXG4vLy8gQHBhcmFtIHtMaXN0fSAkdmFsc1xuLy8vICAgTGlzdCBvZiB2YWx1ZXNcbi8vL1xuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gY29sbGFwc2UtZGlyZWN0aW9uYWxzXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBjb250YWlucy1mYWxzeVxuXG5AbWl4aW4gZGlyZWN0aW9uYWwtcHJvcGVydHkoJHByZSwgJHN1ZiwgJHZhbHMpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlKFwiZGlyZWN0aW9uYWwtcHJvcGVydHlcIik7XG5cbiAgJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZzogJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzO1xuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6IGZhbHNlICFnbG9iYWw7XG5cbiAgLy8gUHJvcGVydHkgTmFtZXNcbiAgJHRvcDogICAgJHByZSArIFwiLXRvcFwiICAgICsgaWYoJHN1ZiwgXCItI3skc3VmfVwiLCBcIlwiKTtcbiAgJGJvdHRvbTogJHByZSArIFwiLWJvdHRvbVwiICsgaWYoJHN1ZiwgXCItI3skc3VmfVwiLCBcIlwiKTtcbiAgJGxlZnQ6ICAgJHByZSArIFwiLWxlZnRcIiAgICsgaWYoJHN1ZiwgXCItI3skc3VmfVwiLCBcIlwiKTtcbiAgJHJpZ2h0OiAgJHByZSArIFwiLXJpZ2h0XCIgICsgaWYoJHN1ZiwgXCItI3skc3VmfVwiLCBcIlwiKTtcbiAgJGFsbDogICAgJHByZSArICAgICAgICAgICAgIGlmKCRzdWYsIFwiLSN7JHN1Zn1cIiwgXCJcIik7XG5cbiAgJHZhbHM6IGNvbGxhcHNlLWRpcmVjdGlvbmFscygkdmFscyk7XG5cbiAgQGlmIGNvbnRhaW5zLWZhbHN5KCR2YWxzKSB7XG4gICAgQGlmIG50aCgkdmFscywgMSkgeyAjeyR0b3B9OiBudGgoJHZhbHMsIDEpOyB9XG5cbiAgICBAaWYgbGVuZ3RoKCR2YWxzKSA9PSAxIHtcbiAgICAgIEBpZiBudGgoJHZhbHMsIDEpIHsgI3skcmlnaHR9OiBudGgoJHZhbHMsIDEpOyB9XG4gICAgfSBAZWxzZSB7XG4gICAgICBAaWYgbnRoKCR2YWxzLCAyKSB7ICN7JHJpZ2h0fTogbnRoKCR2YWxzLCAyKTsgfVxuICAgIH1cblxuICAgIEBpZiBsZW5ndGgoJHZhbHMpID09IDIge1xuICAgICAgQGlmIG50aCgkdmFscywgMSkgeyAjeyRib3R0b219OiBudGgoJHZhbHMsIDEpOyB9XG4gICAgICBAaWYgbnRoKCR2YWxzLCAyKSB7ICN7JGxlZnR9OiAgIG50aCgkdmFscywgMik7IH1cbiAgICB9IEBlbHNlIGlmIGxlbmd0aCgkdmFscykgPT0gMyB7XG4gICAgICBAaWYgbnRoKCR2YWxzLCAzKSB7ICN7JGJvdHRvbX06IG50aCgkdmFscywgMyk7IH1cbiAgICAgIEBpZiBudGgoJHZhbHMsIDIpIHsgI3skbGVmdH06ICAgbnRoKCR2YWxzLCAyKTsgfVxuICAgIH0gQGVsc2UgaWYgbGVuZ3RoKCR2YWxzKSA9PSA0IHtcbiAgICAgIEBpZiBudGgoJHZhbHMsIDMpIHsgI3skYm90dG9tfTogbnRoKCR2YWxzLCAzKTsgfVxuICAgICAgQGlmIG50aCgkdmFscywgNCkgeyAjeyRsZWZ0fTogICBudGgoJHZhbHMsIDQpOyB9XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICAjeyRhbGx9OiAkdmFscztcbiAgfVxuXG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZyAhZ2xvYmFsO1xufVxuIiwiLy8gVXNlZCBmb3IgY3JlYXRpbmcgdGhlIHNvdXJjZSBzdHJpbmcgZm9yIGZvbnRzIHVzaW5nIEBmb250LWZhY2Vcbi8vIFJlZmVyZW5jZTogaHR0cDovL2dvby5nbC9SdTFiS1BcblxuQGZ1bmN0aW9uIGZvbnQtdXJsLXByZWZpeGVyKCRhc3NldC1waXBlbGluZSkge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYGZvbnQtdXJsLXByZWZpeGVyYCBpcyBkZXByZWNhdGVkIGFuZCBcIiArXG4gICAgXCJ3aWxsIGJlIHJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICBAaWYgJGFzc2V0LXBpcGVsaW5lID09IHRydWUge1xuICAgIEByZXR1cm4gZm9udC11cmw7XG4gIH0gQGVsc2Uge1xuICAgIEByZXR1cm4gdXJsO1xuICB9XG59XG5cbkBmdW5jdGlvbiBmb250LXNvdXJjZS1kZWNsYXJhdGlvbihcbiAgJGZvbnQtZmFtaWx5LFxuICAkZmlsZS1wYXRoLFxuICAkYXNzZXQtcGlwZWxpbmUsXG4gICRmaWxlLWZvcm1hdHMsXG4gICRmb250LXVybCkge1xuXG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgZm9udC1zb3VyY2UtZGVjbGFyYXRpb25gIGlzIGRlcHJlY2F0ZWQgXCIgK1xuICAgIFwiYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiA1LjAuMC5cIjtcbiAgfVxuXG4gICRzcmM6ICgpO1xuXG4gICRmb3JtYXRzLW1hcDogKFxuICAgIGVvdDogICBcIiN7JGZpbGUtcGF0aH0uZW90PyNpZWZpeFwiIGZvcm1hdChcImVtYmVkZGVkLW9wZW50eXBlXCIpLFxuICAgIHdvZmYyOiBcIiN7JGZpbGUtcGF0aH0ud29mZjJcIiBmb3JtYXQoXCJ3b2ZmMlwiKSxcbiAgICB3b2ZmOiAgXCIjeyRmaWxlLXBhdGh9LndvZmZcIiBmb3JtYXQoXCJ3b2ZmXCIpLFxuICAgIHR0ZjogICBcIiN7JGZpbGUtcGF0aH0udHRmXCIgZm9ybWF0KFwidHJ1ZXR5cGVcIiksXG4gICAgc3ZnOiAgIFwiI3skZmlsZS1wYXRofS5zdmcjI3skZm9udC1mYW1pbHl9XCIgZm9ybWF0KFwic3ZnXCIpXG4gICk7XG5cbiAgQGVhY2ggJGtleSwgJHZhbHVlcyBpbiAkZm9ybWF0cy1tYXAge1xuICAgIEBpZiBjb250YWlucygkZmlsZS1mb3JtYXRzLCAka2V5KSB7XG4gICAgICAkZmlsZS1wYXRoOiBudGgoJHZhbHVlcywgMSk7XG4gICAgICAkZm9udC1mb3JtYXQ6IG50aCgkdmFsdWVzLCAyKTtcblxuICAgICAgQGlmICRhc3NldC1waXBlbGluZSA9PSB0cnVlIHtcbiAgICAgICAgJHNyYzogYXBwZW5kKCRzcmMsIGZvbnQtdXJsKCRmaWxlLXBhdGgpICRmb250LWZvcm1hdCwgY29tbWEpO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgICRzcmM6IGFwcGVuZCgkc3JjLCB1cmwoJGZpbGUtcGF0aCkgJGZvbnQtZm9ybWF0LCBjb21tYSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkc3JjO1xufVxuIiwiQGZ1bmN0aW9uIF9ncmFkaWVudC1wb3NpdGlvbnMtcGFyc2VyKCRncmFkaWVudC10eXBlLCAkZ3JhZGllbnQtcG9zaXRpb25zKSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgX2dyYWRpZW50LXBvc2l0aW9ucy1wYXJzZXJgIGlzIFwiICtcbiAgICBcImRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiA1LjAuMC5cIjtcbiAgfVxuXG4gICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmc6ICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncztcbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiBmYWxzZSAhZ2xvYmFsO1xuXG4gIEBpZiAkZ3JhZGllbnQtcG9zaXRpb25zXG4gIGFuZCAoJGdyYWRpZW50LXR5cGUgPT0gbGluZWFyKVxuICBhbmQgKHR5cGUtb2YoJGdyYWRpZW50LXBvc2l0aW9ucykgIT0gY29sb3IpIHtcbiAgICAkZ3JhZGllbnQtcG9zaXRpb25zOiBfbGluZWFyLXBvc2l0aW9ucy1wYXJzZXIoJGdyYWRpZW50LXBvc2l0aW9ucyk7XG4gIH1cbiAgQGVsc2UgaWYgJGdyYWRpZW50LXBvc2l0aW9uc1xuICBhbmQgKCRncmFkaWVudC10eXBlID09IHJhZGlhbClcbiAgYW5kICh0eXBlLW9mKCRncmFkaWVudC1wb3NpdGlvbnMpICE9IGNvbG9yKSB7XG4gICAgJGdyYWRpZW50LXBvc2l0aW9uczogX3JhZGlhbC1wb3NpdGlvbnMtcGFyc2VyKCRncmFkaWVudC1wb3NpdGlvbnMpO1xuICB9XG5cbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nICFnbG9iYWw7XG5cbiAgQHJldHVybiAkZ3JhZGllbnQtcG9zaXRpb25zO1xufVxuIiwiLy8gUHJpdmF0ZSBmdW5jdGlvbiBmb3IgbGluZWFyLWdyYWRpZW50LXBhcnNlclxuQGZ1bmN0aW9uIF9saW5lYXItYW5nbGUtcGFyc2VyKCRpbWFnZSwgJGZpcnN0LXZhbCwgJHByZWZpeCwgJHN1ZmZpeCkge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYF9saW5lYXItYW5nbGUtcGFyc2VyYCBpcyBcIiArXG4gICAgXCJkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICAkb2Zmc2V0OiBudWxsO1xuICAkdW5pdC1zaG9ydDogIHN0ci1zbGljZSgkZmlyc3QtdmFsLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpIC0gMiwgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSk7XG4gICR1bml0LWxvbmc6ICAgc3RyLXNsaWNlKCRmaXJzdC12YWwsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkgLSAzLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpKTtcblxuICBAaWYgKCR1bml0LWxvbmcgPT0gXCJncmFkXCIpIG9yXG4gICAgICAoJHVuaXQtbG9uZyA9PSBcInR1cm5cIikge1xuICAgICRvZmZzZXQ6IGlmKCR1bml0LWxvbmcgPT0gXCJncmFkXCIsIC0xMDBncmFkICogMywgLTAuNzV0dXJuKTtcbiAgfVxuXG4gIEBlbHNlIGlmICgkdW5pdC1zaG9ydCA9PSBcImRlZ1wiKSBvclxuICAgICAgICAgICAoJHVuaXQtc2hvcnQgPT0gXCJyYWRcIikge1xuICAgICRvZmZzZXQ6IGlmKCR1bml0LXNob3J0ID09IFwiZGVnXCIsIC05MCAqIDMsIDEuNnJhZCk7XG4gIH1cblxuICBAaWYgJG9mZnNldCB7XG4gICAgJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZzogJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzO1xuICAgICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogZmFsc2UgIWdsb2JhbDtcblxuICAgICRudW06IF9zdHItdG8tbnVtKCRmaXJzdC12YWwpO1xuXG4gICAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nICFnbG9iYWw7XG5cbiAgICBAcmV0dXJuIChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkcHJlZml4ICsgKCRvZmZzZXQgLSAkbnVtKSArICRzdWZmaXgsXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcbiAgICApO1xuICB9XG59XG4iLCJAZnVuY3Rpb24gX2xpbmVhci1ncmFkaWVudC1wYXJzZXIoJGltYWdlKSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgX2xpbmVhci1ncmFkaWVudC1wYXJzZXJgIGlzIFwiICtcbiAgICBcImRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiA1LjAuMC5cIjtcbiAgfVxuXG4gICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmc6ICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncztcbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiBmYWxzZSAhZ2xvYmFsO1xuXG4gICRpbWFnZTogdW5xdW90ZSgkaW1hZ2UpO1xuICAkZ3JhZGllbnRzOiAoKTtcbiAgJHN0YXJ0OiBzdHItaW5kZXgoJGltYWdlLCBcIihcIik7XG4gICRlbmQ6IHN0ci1pbmRleCgkaW1hZ2UsIFwiLFwiKTtcbiAgJGZpcnN0LXZhbDogc3RyLXNsaWNlKCRpbWFnZSwgJHN0YXJ0ICsgMSwgJGVuZCAtIDEpO1xuXG4gICRwcmVmaXg6IHN0ci1zbGljZSgkaW1hZ2UsIDEsICRzdGFydCk7XG4gICRzdWZmaXg6IHN0ci1zbGljZSgkaW1hZ2UsICRlbmQsIHN0ci1sZW5ndGgoJGltYWdlKSk7XG5cbiAgJGhhcy1tdWx0aXBsZS12YWxzOiBzdHItaW5kZXgoJGZpcnN0LXZhbCwgXCIgXCIpO1xuICAkaGFzLXNpbmdsZS1wb3NpdGlvbjogdW5xdW90ZShfcG9zaXRpb24tZmxpcHBlcigkZmlyc3QtdmFsKSArIFwiXCIpO1xuICAkaGFzLWFuZ2xlOiBpcy1udW1iZXIoc3RyLXNsaWNlKCRmaXJzdC12YWwsIDEsIDEpKTtcblxuICBAaWYgJGhhcy1tdWx0aXBsZS12YWxzIHtcbiAgICAkZ3JhZGllbnRzOiBfbGluZWFyLXNpZGUtY29ybmVyLXBhcnNlcigkaW1hZ2UsICRmaXJzdC12YWwsICRwcmVmaXgsICRzdWZmaXgsICRoYXMtbXVsdGlwbGUtdmFscyk7XG4gIH1cblxuICBAZWxzZSBpZiAkaGFzLXNpbmdsZS1wb3NpdGlvbiAhPSBcIlwiIHtcbiAgICAkcG9zOiB1bnF1b3RlKCRoYXMtc2luZ2xlLXBvc2l0aW9uICsgXCJcIik7XG5cbiAgICAkZ3JhZGllbnRzOiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJGltYWdlLFxuICAgICAgc3BlYy1pbWFnZTogJHByZWZpeCArIFwidG8gXCIgKyAkcG9zICsgJHN1ZmZpeFxuICAgICk7XG4gIH1cblxuICBAZWxzZSBpZiAkaGFzLWFuZ2xlIHtcbiAgICAvLyBSb3RhdGUgZGVncmVlIGZvciB3ZWJraXRcbiAgICAkZ3JhZGllbnRzOiBfbGluZWFyLWFuZ2xlLXBhcnNlcigkaW1hZ2UsICRmaXJzdC12YWwsICRwcmVmaXgsICRzdWZmaXgpO1xuICB9XG5cbiAgQGVsc2Uge1xuICAgICRncmFkaWVudHM6IChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkaW1hZ2UsXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcbiAgICApO1xuICB9XG5cbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nICFnbG9iYWw7XG5cbiAgQHJldHVybiAkZ3JhZGllbnRzO1xufVxuIiwiQGZ1bmN0aW9uIF9saW5lYXItcG9zaXRpb25zLXBhcnNlcigkcG9zKSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgX2xpbmVhci1wb3NpdGlvbnMtcGFyc2VyYCBpcyBcIiArXG4gICAgXCJkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nOiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M7XG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogZmFsc2UgIWdsb2JhbDtcblxuICAkdHlwZTogdHlwZS1vZihudGgoJHBvcywgMSkpO1xuICAkc3BlYzogbnVsbDtcbiAgJGRlZ3JlZTogbnVsbDtcbiAgJHNpZGU6IG51bGw7XG4gICRjb3JuZXI6IG51bGw7XG4gICRsZW5ndGg6IGxlbmd0aCgkcG9zKTtcbiAgLy8gUGFyc2UgU2lkZSBhbmQgY29ybmVyIHBvc2l0aW9uc1xuICBAaWYgKCRsZW5ndGggPiAxKSB7XG4gICAgQGlmIG50aCgkcG9zLCAxKSA9PSBcInRvXCIgeyAvLyBOZXdlciBzeW50YXhcbiAgICAgICRzaWRlOiBudGgoJHBvcywgMik7XG5cbiAgICAgIEBpZiAkbGVuZ3RoID09IDIgeyAvLyBlZy4gdG8gdG9wXG4gICAgICAgIC8vIFN3YXAgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5XG4gICAgICAgICRkZWdyZWU6IF9wb3NpdGlvbi1mbGlwcGVyKG50aCgkcG9zLCAyKSk7XG4gICAgICB9XG4gICAgICBAZWxzZSBpZiAkbGVuZ3RoID09IDMgeyAvLyBlZy4gdG8gdG9wIGxlZnRcbiAgICAgICAgJGNvcm5lcjogbnRoKCRwb3MsIDMpO1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSBpZiAkbGVuZ3RoID09IDIgeyAvLyBPbGRlciBzeW50YXggKFwidG9wIGxlZnRcIilcbiAgICAgICRzaWRlOiBfcG9zaXRpb24tZmxpcHBlcihudGgoJHBvcywgMSkpO1xuICAgICAgJGNvcm5lcjogX3Bvc2l0aW9uLWZsaXBwZXIobnRoKCRwb3MsIDIpKTtcbiAgICB9XG5cbiAgICBAaWYgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwibGVmdCB0b3BcIikgb3IgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwidG9wIGxlZnRcIikge1xuICAgICAgJGRlZ3JlZTogX3Bvc2l0aW9uLWZsaXBwZXIoI3skc2lkZX0pIF9wb3NpdGlvbi1mbGlwcGVyKCN7JGNvcm5lcn0pO1xuICAgIH1cbiAgICBAZWxzZSBpZiAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJyaWdodCB0b3BcIikgb3IgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwidG9wIHJpZ2h0XCIpIHtcbiAgICAgICRkZWdyZWU6IF9wb3NpdGlvbi1mbGlwcGVyKCN7JHNpZGV9KSBfcG9zaXRpb24tZmxpcHBlcigjeyRjb3JuZXJ9KTtcbiAgICB9XG4gICAgQGVsc2UgaWYgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwicmlnaHQgYm90dG9tXCIpIG9yIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcImJvdHRvbSByaWdodFwiKSB7XG4gICAgICAkZGVncmVlOiBfcG9zaXRpb24tZmxpcHBlcigjeyRzaWRlfSkgX3Bvc2l0aW9uLWZsaXBwZXIoI3skY29ybmVyfSk7XG4gICAgfVxuICAgIEBlbHNlIGlmIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcImxlZnQgYm90dG9tXCIpIG9yIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcImJvdHRvbSBsZWZ0XCIpIHtcbiAgICAgICRkZWdyZWU6IF9wb3NpdGlvbi1mbGlwcGVyKCN7JHNpZGV9KSBfcG9zaXRpb24tZmxpcHBlcigjeyRjb3JuZXJ9KTtcbiAgICB9XG4gICAgJHNwZWM6IHRvICRzaWRlICRjb3JuZXI7XG4gIH1cbiAgQGVsc2UgaWYgJGxlbmd0aCA9PSAxIHtcbiAgICAvLyBTd2FwIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eVxuICAgIEBpZiAkdHlwZSA9PSBzdHJpbmcge1xuICAgICAgJGRlZ3JlZTogJHBvcztcbiAgICAgICRzcGVjOiB0byBfcG9zaXRpb24tZmxpcHBlcigkcG9zKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJGRlZ3JlZTogLTI3MCAtICRwb3M7IC8vcm90YXRlIHRoZSBncmFkaWVudCBvcHBvc2l0ZSBmcm9tIHNwZWNcbiAgICAgICRzcGVjOiAkcG9zO1xuICAgIH1cbiAgfVxuICAkZGVncmVlOiB1bnF1b3RlKCRkZWdyZWUgKyBcIixcIik7XG4gICRzcGVjOiAgIHVucXVvdGUoJHNwZWMgKyBcIixcIik7XG5cbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nICFnbG9iYWw7XG5cbiAgQHJldHVybiAkZGVncmVlICRzcGVjO1xufVxuXG5AZnVuY3Rpb24gX3Bvc2l0aW9uLWZsaXBwZXIoJHBvcykge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYF9wb3NpdGlvbi1mbGlwcGVyYCBpcyBcIiArXG4gICAgXCJkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICBAcmV0dXJuIGlmKCRwb3MgPT0gbGVmdCwgcmlnaHQsIG51bGwpXG4gICAgICAgICBpZigkcG9zID09IHJpZ2h0LCBsZWZ0LCBudWxsKVxuICAgICAgICAgaWYoJHBvcyA9PSB0b3AsIGJvdHRvbSwgbnVsbClcbiAgICAgICAgIGlmKCRwb3MgPT0gYm90dG9tLCB0b3AsIG51bGwpO1xufVxuIiwiLy8gUHJpdmF0ZSBmdW5jdGlvbiBmb3IgbGluZWFyLWdyYWRpZW50LXBhcnNlclxuQGZ1bmN0aW9uIF9saW5lYXItc2lkZS1jb3JuZXItcGFyc2VyKCRpbWFnZSwgJGZpcnN0LXZhbCwgJHByZWZpeCwgJHN1ZmZpeCwgJGhhcy1tdWx0aXBsZS12YWxzKSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgX2xpbmVhci1zaWRlLWNvcm5lci1wYXJzZXJgIGlzIFwiICtcbiAgICBcImRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiA1LjAuMC5cIjtcbiAgfVxuXG4gICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmc6ICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncztcbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiBmYWxzZSAhZ2xvYmFsO1xuXG4gICR2YWwtMTogc3RyLXNsaWNlKCRmaXJzdC12YWwsIDEsICRoYXMtbXVsdGlwbGUtdmFscyAtIDEpO1xuICAkdmFsLTI6IHN0ci1zbGljZSgkZmlyc3QtdmFsLCAkaGFzLW11bHRpcGxlLXZhbHMgKyAxLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpKTtcbiAgJHZhbC0zOiBudWxsO1xuICAkaGFzLXZhbC0zOiBzdHItaW5kZXgoJHZhbC0yLCBcIiBcIik7XG5cbiAgQGlmICRoYXMtdmFsLTMge1xuICAgICR2YWwtMzogc3RyLXNsaWNlKCR2YWwtMiwgJGhhcy12YWwtMyArIDEsIHN0ci1sZW5ndGgoJHZhbC0yKSk7XG4gICAgJHZhbC0yOiBzdHItc2xpY2UoJHZhbC0yLCAxLCAkaGFzLXZhbC0zIC0gMSk7XG4gIH1cblxuICAkcG9zOiBfcG9zaXRpb24tZmxpcHBlcigkdmFsLTEpIF9wb3NpdGlvbi1mbGlwcGVyKCR2YWwtMikgX3Bvc2l0aW9uLWZsaXBwZXIoJHZhbC0zKTtcbiAgJHBvczogdW5xdW90ZSgkcG9zICsgXCJcIik7XG5cbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nICFnbG9iYWw7XG5cbiAgLy8gVXNlIG9sZCBzcGVjIGZvciB3ZWJraXRcbiAgQGlmICR2YWwtMSA9PSBcInRvXCIge1xuICAgIEByZXR1cm4gKFxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRwcmVmaXggKyAkcG9zICsgJHN1ZmZpeCxcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxuICAgICk7XG4gIH1cblxuICAvLyBCcmluZyB0aGUgY29kZSB1cCB0byBzcGVjXG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkaW1hZ2UsXG4gICAgICBzcGVjLWltYWdlOiAkcHJlZml4ICsgXCJ0byBcIiArICRwb3MgKyAkc3VmZml4XG4gICAgKTtcbiAgfVxufVxuIiwiQGZ1bmN0aW9uIF9yYWRpYWwtYXJnLXBhcnNlcigkZzEsICRnMiwgJHBvcywgJHNoYXBlLXNpemUpIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGBfcmFkaWFsLWFyZy1wYXJzZXJgIGlzIFwiICtcbiAgICBcImRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiA1LjAuMC5cIjtcbiAgfVxuXG4gIEBlYWNoICR2YWx1ZSBpbiAkZzEsICRnMiB7XG4gICAgJGZpcnN0LXZhbDogbnRoKCR2YWx1ZSwgMSk7XG4gICAgJHBvcy10eXBlOiAgdHlwZS1vZigkZmlyc3QtdmFsKTtcbiAgICAkc3BlYy1hdC1pbmRleDogbnVsbDtcblxuICAgIC8vIERldGVybWluZSBpZiBzcGVjIHdhcyBwYXNzZWQgdG8gbWl4aW5cbiAgICBAaWYgdHlwZS1vZigkdmFsdWUpID09IGxpc3Qge1xuICAgICAgJHNwZWMtYXQtaW5kZXg6IGlmKGluZGV4KCR2YWx1ZSwgYXQpLCBpbmRleCgkdmFsdWUsIGF0KSwgZmFsc2UpO1xuICAgIH1cbiAgICBAaWYgJHNwZWMtYXQtaW5kZXgge1xuICAgICAgQGlmICRzcGVjLWF0LWluZGV4ID4gMSB7XG4gICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggKCRzcGVjLWF0LWluZGV4IC0gMSkge1xuICAgICAgICAgICRzaGFwZS1zaXplOiAkc2hhcGUtc2l6ZSBudGgoJHZhbHVlLCAkaSk7XG4gICAgICAgIH1cbiAgICAgICAgQGZvciAkaSBmcm9tICgkc3BlYy1hdC1pbmRleCArIDEpIHRocm91Z2ggbGVuZ3RoKCR2YWx1ZSkge1xuICAgICAgICAgICRwb3M6ICRwb3MgbnRoKCR2YWx1ZSwgJGkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZWxzZSBpZiAkc3BlYy1hdC1pbmRleCA9PSAxIHtcbiAgICAgICAgQGZvciAkaSBmcm9tICgkc3BlYy1hdC1pbmRleCArIDEpIHRocm91Z2ggbGVuZ3RoKCR2YWx1ZSkge1xuICAgICAgICAgICRwb3M6ICRwb3MgbnRoKCR2YWx1ZSwgJGkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAkZzE6IG51bGw7XG4gICAgfVxuXG4gICAgLy8gSWYgbm90IHNwZWMgY2FsY3VsYXRlIGNvcnJlY3QgdmFsdWVzXG4gICAgQGVsc2Uge1xuICAgICAgQGlmICgkcG9zLXR5cGUgIT0gY29sb3IpIG9yICgkZmlyc3QtdmFsICE9IFwidHJhbnNwYXJlbnRcIikge1xuICAgICAgICBAaWYgKCRwb3MtdHlwZSA9PSBudW1iZXIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY2VudGVyXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwidG9wXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwicmlnaHRcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJib3R0b21cIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJsZWZ0XCIpIHtcblxuICAgICAgICAgICRwb3M6ICR2YWx1ZTtcblxuICAgICAgICAgIEBpZiAkcG9zID09ICRnMSB7XG4gICAgICAgICAgICAkZzE6IG51bGw7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVsc2UgaWZcbiAgICAgICAgICAgKCRmaXJzdC12YWwgPT0gXCJlbGxpcHNlXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY2lyY2xlXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY2xvc2VzdC1zaWRlXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY2xvc2VzdC1jb3JuZXJcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJmYXJ0aGVzdC1zaWRlXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiZmFydGhlc3QtY29ybmVyXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY29udGFpblwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImNvdmVyXCIpIHtcblxuICAgICAgICAgICRzaGFwZS1zaXplOiAkdmFsdWU7XG5cbiAgICAgICAgICBAaWYgJHZhbHVlID09ICRnMSB7XG4gICAgICAgICAgICAkZzE6IG51bGw7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQGVsc2UgaWYgJHZhbHVlID09ICRnMiB7XG4gICAgICAgICAgICAkZzI6IG51bGw7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEByZXR1cm4gJGcxLCAkZzIsICRwb3MsICRzaGFwZS1zaXplO1xufVxuIiwiQGZ1bmN0aW9uIF9yYWRpYWwtcG9zaXRpb25zLXBhcnNlcigkZ3JhZGllbnQtcG9zKSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgX3JhZGlhbC1wb3NpdGlvbnMtcGFyc2VyYCBpcyBcIiArXG4gICAgXCJkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nOiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M7XG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogZmFsc2UgIWdsb2JhbDtcblxuICAkc2hhcGUtc2l6ZTogbnRoKCRncmFkaWVudC1wb3MsIDEpO1xuICAkcG9zOiAgICAgICAgbnRoKCRncmFkaWVudC1wb3MsIDIpO1xuICAkc2hhcGUtc2l6ZS1zcGVjOiBfc2hhcGUtc2l6ZS1zdHJpcHBlcigkc2hhcGUtc2l6ZSk7XG5cbiAgJHByZS1zcGVjOiB1bnF1b3RlKGlmKCRwb3MsIFwiI3skcG9zfSwgXCIsIG51bGwpKVxuICAgICAgICAgICAgIHVucXVvdGUoaWYoJHNoYXBlLXNpemUsIFwiI3skc2hhcGUtc2l6ZX0sXCIsIG51bGwpKTtcbiAgJHBvcy1zcGVjOiBpZigkcG9zLCBcImF0ICN7JHBvc31cIiwgbnVsbCk7XG5cbiAgJHNwZWM6IFwiI3skc2hhcGUtc2l6ZS1zcGVjfSAjeyRwb3Mtc3BlY31cIjtcblxuICAvLyBBZGQgY29tbWFcbiAgQGlmICgkc3BlYyAhPSBcIiAgXCIpIHtcbiAgICAkc3BlYzogXCIjeyRzcGVjfSxcIjtcbiAgfVxuXG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZyAhZ2xvYmFsO1xuXG4gIEByZXR1cm4gJHByZS1zcGVjICRzcGVjO1xufVxuIiwiQGZ1bmN0aW9uIF9yYWRpYWwtZ3JhZGllbnQtcGFyc2VyKCRpbWFnZSkge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYF9yYWRpYWwtZ3JhZGllbnQtcGFyc2VyYCBpcyBcIiArXG4gICAgXCJkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICAkaW1hZ2U6IHVucXVvdGUoJGltYWdlKTtcbiAgJGdyYWRpZW50czogKCk7XG4gICRzdGFydDogc3RyLWluZGV4KCRpbWFnZSwgXCIoXCIpO1xuICAkZW5kOiBzdHItaW5kZXgoJGltYWdlLCBcIixcIik7XG4gICRmaXJzdC12YWw6IHN0ci1zbGljZSgkaW1hZ2UsICRzdGFydCArIDEsICRlbmQgLSAxKTtcblxuICAkcHJlZml4OiBzdHItc2xpY2UoJGltYWdlLCAxLCAkc3RhcnQpO1xuICAkc3VmZml4OiBzdHItc2xpY2UoJGltYWdlLCAkZW5kLCBzdHItbGVuZ3RoKCRpbWFnZSkpO1xuXG4gICRpcy1zcGVjLXN5bnRheDogc3RyLWluZGV4KCRmaXJzdC12YWwsIFwiYXRcIik7XG5cbiAgQGlmICRpcy1zcGVjLXN5bnRheCBhbmQgJGlzLXNwZWMtc3ludGF4ID4gMSB7XG4gICAgJGtleXdvcmQ6IHN0ci1zbGljZSgkZmlyc3QtdmFsLCAxLCAkaXMtc3BlYy1zeW50YXggLSAyKTtcbiAgICAkcG9zOiBzdHItc2xpY2UoJGZpcnN0LXZhbCwgJGlzLXNwZWMtc3ludGF4ICsgMywgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSk7XG4gICAgJHBvczogYXBwZW5kKCRwb3MsICRrZXl3b3JkLCBjb21tYSk7XG5cbiAgICAkZ3JhZGllbnRzOiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJHByZWZpeCArICRwb3MgKyAkc3VmZml4LFxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXG4gICAgKTtcbiAgfVxuXG4gIEBlbHNlIGlmICRpcy1zcGVjLXN5bnRheCA9PSAxIHtcbiAgICAkcG9zOiBzdHItc2xpY2UoJGZpcnN0LXZhbCwgJGlzLXNwZWMtc3ludGF4ICsgMywgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSk7XG5cbiAgICAkZ3JhZGllbnRzOiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJHByZWZpeCArICRwb3MgKyAkc3VmZml4LFxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXG4gICAgKTtcbiAgfVxuXG4gIEBlbHNlIGlmIHN0ci1pbmRleCgkaW1hZ2UsIFwiY292ZXJcIikgb3Igc3RyLWluZGV4KCRpbWFnZSwgXCJjb250YWluXCIpIHtcbiAgICBAd2FybiBcIlJhZGlhbC1ncmFkaWVudCBuZWVkcyB0byBiZSB1cGRhdGVkIHRvIGNvbmZvcm0gdG8gbGF0ZXN0IHNwZWMuXCI7XG5cbiAgICAkZ3JhZGllbnRzOiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IG51bGwsXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcbiAgICApO1xuICB9XG5cbiAgQGVsc2Uge1xuICAgICRncmFkaWVudHM6IChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkaW1hZ2UsXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcbiAgICApO1xuICB9XG5cbiAgQHJldHVybiAkZ3JhZGllbnRzO1xufVxuIiwiLy8gVXNlciBmb3IgbGluZWFyIGFuZCByYWRpYWwgZ3JhZGllbnRzIHdpdGhpbiBiYWNrZ3JvdW5kLWltYWdlIG9yIGJvcmRlci1pbWFnZSBwcm9wZXJ0aWVzXG5cbkBmdW5jdGlvbiBfcmVuZGVyLWdyYWRpZW50cygkZ3JhZGllbnQtcG9zaXRpb25zLCAkZ3JhZGllbnRzLCAkZ3JhZGllbnQtdHlwZSwgJHZlbmRvcjogZmFsc2UpIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGBfcmVuZGVyLWdyYWRpZW50c2AgaXMgXCIgK1xuICAgIFwiZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIDUuMC4wLlwiO1xuICB9XG5cbiAgJHByZS1zcGVjOiBudWxsO1xuICAkc3BlYzogbnVsbDtcbiAgJHZlbmRvci1ncmFkaWVudHM6IG51bGw7XG4gIEBpZiAkZ3JhZGllbnQtdHlwZSA9PSBsaW5lYXIge1xuICAgIEBpZiAkZ3JhZGllbnQtcG9zaXRpb25zIHtcbiAgICAgICRwcmUtc3BlYzogbnRoKCRncmFkaWVudC1wb3NpdGlvbnMsIDEpO1xuICAgICAgJHNwZWM6ICAgICBudGgoJGdyYWRpZW50LXBvc2l0aW9ucywgMik7XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IHJhZGlhbCB7XG4gICAgJHByZS1zcGVjOiBudGgoJGdyYWRpZW50LXBvc2l0aW9ucywgMSk7XG4gICAgJHNwZWM6ICAgICBudGgoJGdyYWRpZW50LXBvc2l0aW9ucywgMik7XG4gIH1cblxuICBAaWYgJHZlbmRvciB7XG4gICAgJHZlbmRvci1ncmFkaWVudHM6IC0jeyR2ZW5kb3J9LSN7JGdyYWRpZW50LXR5cGV9LWdyYWRpZW50KCN7JHByZS1zcGVjfSAkZ3JhZGllbnRzKTtcbiAgfVxuICBAZWxzZSBpZiAkdmVuZG9yID09IGZhbHNlIHtcbiAgICAkdmVuZG9yLWdyYWRpZW50czogXCIjeyRncmFkaWVudC10eXBlfS1ncmFkaWVudCgjeyRzcGVjfSAjeyRncmFkaWVudHN9KVwiO1xuICAgICR2ZW5kb3ItZ3JhZGllbnRzOiB1bnF1b3RlKCR2ZW5kb3ItZ3JhZGllbnRzKTtcbiAgfVxuICBAcmV0dXJuICR2ZW5kb3ItZ3JhZGllbnRzO1xufVxuIiwiQGZ1bmN0aW9uIF9zaGFwZS1zaXplLXN0cmlwcGVyKCRzaGFwZS1zaXplKSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgX3NoYXBlLXNpemUtc3RyaXBwZXJgIGlzIFwiICtcbiAgICBcImRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiA1LjAuMC5cIjtcbiAgfVxuXG4gICRzaGFwZS1zaXplLXNwZWM6IG51bGw7XG4gIEBlYWNoICR2YWx1ZSBpbiAkc2hhcGUtc2l6ZSB7XG4gICAgQGlmICgkdmFsdWUgPT0gXCJjb3ZlclwiKSBvciAoJHZhbHVlID09IFwiY29udGFpblwiKSB7XG4gICAgICAkdmFsdWU6IG51bGw7XG4gICAgfVxuICAgICRzaGFwZS1zaXplLXNwZWM6IFwiI3skc2hhcGUtc2l6ZS1zcGVjfSAjeyR2YWx1ZX1cIjtcbiAgfVxuICBAcmV0dXJuICRzaGFwZS1zaXplLXNwZWM7XG59XG4iLCIvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG4vLyBIZWxwZXIgZnVuY3Rpb24gZm9yIGxpbmVhci9yYWRpYWwtZ3JhZGllbnQtcGFyc2Vycy5cbi8vIFNvdXJjZTogaHR0cDovL3Nhc3NtZWlzdGVyLmNvbS9naXN0Lzk2NDc0MDhcbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbkBmdW5jdGlvbiBfc3RyLXRvLW51bSgkc3RyaW5nKSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgX3N0ci10by1udW1gIGlzIFwiICtcbiAgICBcImRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiA1LjAuMC5cIjtcbiAgfVxuXG4gIC8vIE1hdHJpY2VzXG4gICRzdHJpbmdzOiBcIjBcIiBcIjFcIiBcIjJcIiBcIjNcIiBcIjRcIiBcIjVcIiBcIjZcIiBcIjdcIiBcIjhcIiBcIjlcIjtcbiAgJG51bWJlcnM6ICAwICAgMSAgIDIgICAzICAgNCAgIDUgICA2ICAgNyAgIDggICA5O1xuXG4gIC8vIFJlc3VsdFxuICAkcmVzdWx0OiAwO1xuICAkZGl2aWRlcjogMDtcbiAgJG1pbnVzOiBmYWxzZTtcblxuICAvLyBMb29waW5nIHRocm91Z2ggYWxsIGNoYXJhY3RlcnNcbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCBzdHItbGVuZ3RoKCRzdHJpbmcpIHtcbiAgICAkY2hhcmFjdGVyOiBzdHItc2xpY2UoJHN0cmluZywgJGksICRpKTtcbiAgICAkaW5kZXg6IGluZGV4KCRzdHJpbmdzLCAkY2hhcmFjdGVyKTtcblxuICAgIEBpZiAkY2hhcmFjdGVyID09IFwiLVwiIHtcbiAgICAgICRtaW51czogdHJ1ZTtcbiAgICB9XG5cbiAgICBAZWxzZSBpZiAkY2hhcmFjdGVyID09IFwiLlwiIHtcbiAgICAgICRkaXZpZGVyOiAxO1xuICAgIH1cblxuICAgIEBlbHNlIHtcbiAgICAgIEBpZiBub3QgJGluZGV4IHtcbiAgICAgICAgJHJlc3VsdDogaWYoJG1pbnVzLCAkcmVzdWx0ICogLTEsICRyZXN1bHQpO1xuICAgICAgICBAcmV0dXJuIF9jb252ZXJ0LXVuaXRzKCRyZXN1bHQsIHN0ci1zbGljZSgkc3RyaW5nLCAkaSkpO1xuICAgICAgfVxuXG4gICAgICAkbnVtYmVyOiBudGgoJG51bWJlcnMsICRpbmRleCk7XG5cbiAgICAgIEBpZiAkZGl2aWRlciA9PSAwIHtcbiAgICAgICAgJHJlc3VsdDogJHJlc3VsdCAqIDEwO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSB7XG4gICAgICAgIC8vIE1vdmUgdGhlIGRlY2ltYWwgZG90IHRvIHRoZSBsZWZ0XG4gICAgICAgICRkaXZpZGVyOiAkZGl2aWRlciAqIDEwO1xuICAgICAgICAkbnVtYmVyOiAkbnVtYmVyIC8gJGRpdmlkZXI7XG4gICAgICB9XG5cbiAgICAgICRyZXN1bHQ6ICRyZXN1bHQgKyAkbnVtYmVyO1xuICAgIH1cbiAgfVxuICBAcmV0dXJuIGlmKCRtaW51cywgJHJlc3VsdCAqIC0xLCAkcmVzdWx0KTtcbn1cbiIsIi8vIGh0dHA6Ly93d3cudzMub3JnL1RSL2NzczMtYW5pbWF0aW9ucy8jdGhlLWFuaW1hdGlvbi1uYW1lLXByb3BlcnR5LVxuLy8gRWFjaCBvZiB0aGVzZSBtaXhpbnMgc3VwcG9ydCBjb21tYSBzZXBhcmF0ZWQgbGlzdHMgb2YgdmFsdWVzLCB3aGljaCBhbGxvd3MgZGlmZmVyZW50IHRyYW5zaXRpb25zIGZvciBpbmRpdmlkdWFsIHByb3BlcnRpZXMgdG8gYmUgZGVzY3JpYmVkIGluIGEgc2luZ2xlIHN0eWxlIHJ1bGUuIEVhY2ggdmFsdWUgaW4gdGhlIGxpc3QgY29ycmVzcG9uZHMgdG8gdGhlIHZhbHVlIGF0IHRoYXQgc2FtZSBwb3NpdGlvbiBpbiB0aGUgb3RoZXIgcHJvcGVydGllcy5cblxuQG1peGluIGFuaW1hdGlvbigkYW5pbWF0aW9ucy4uLikge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImFuaW1hdGlvblwiKTtcblxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24sICRhbmltYXRpb25zLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYW5pbWF0aW9uLW5hbWUoJG5hbWVzLi4uKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiYW5pbWF0aW9uLW5hbWVcIik7XG5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLW5hbWUsICRuYW1lcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGFuaW1hdGlvbi1kdXJhdGlvbigkdGltZXMuLi4pIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJhbmltYXRpb24tZHVyYXRpb25cIik7XG5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWR1cmF0aW9uLCAkdGltZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uKCRtb3Rpb25zLi4uKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvblwiKTtcblxuICAvLyBlYXNlIHwgbGluZWFyIHwgZWFzZS1pbiB8IGVhc2Utb3V0IHwgZWFzZS1pbi1vdXRcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbiwgJG1vdGlvbnMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50KCR2YWx1ZXMuLi4pIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJhbmltYXRpb24taXRlcmF0aW9uLWNvdW50XCIpO1xuXG4gIC8vIGluZmluaXRlIHwgPG51bWJlcj5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCwgJHZhbHVlcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGFuaW1hdGlvbi1kaXJlY3Rpb24oJGRpcmVjdGlvbnMuLi4pIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJhbmltYXRpb24tZGlyZWN0aW9uXCIpO1xuXG4gIC8vIG5vcm1hbCB8IGFsdGVybmF0ZVxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tZGlyZWN0aW9uLCAkZGlyZWN0aW9ucywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGFuaW1hdGlvbi1wbGF5LXN0YXRlKCRzdGF0ZXMuLi4pIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJhbmltYXRpb24tcGxheS1zdGF0ZVwiKTtcblxuICAvLyBydW5uaW5nIHwgcGF1c2VkXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1wbGF5LXN0YXRlLCAkc3RhdGVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYW5pbWF0aW9uLWRlbGF5KCR0aW1lcy4uLikge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImFuaW1hdGlvbi1kZWxheVwiKTtcblxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tZGVsYXksICR0aW1lcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGFuaW1hdGlvbi1maWxsLW1vZGUoJG1vZGVzLi4uKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiYW5pbWF0aW9uLWZpbGwtbW9kZVwiKTtcblxuICAvLyBub25lIHwgZm9yd2FyZHMgfCBiYWNrd2FyZHMgfCBib3RoXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1maWxsLW1vZGUsICRtb2Rlcywgd2Via2l0IG1veiBzcGVjKTtcbn1cbiIsIkBtaXhpbiBhcHBlYXJhbmNlKCR2YWx1ZSkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImFwcGVhcmFuY2VcIik7XG5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoYXBwZWFyYW5jZSwgJHZhbHVlLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XG59XG4iLCJAbWl4aW4gYmFja2ZhY2UtdmlzaWJpbGl0eSgkdmlzaWJpbGl0eSkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImJhY2tmYWNlLXZpc2liaWxpdHlcIik7XG5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoYmFja2ZhY2UtdmlzaWJpbGl0eSwgJHZpc2liaWxpdHksIHdlYmtpdCBzcGVjKTtcbn1cbiIsIi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbi8vIEJhY2tncm91bmQgcHJvcGVydHkgZm9yIGFkZGluZyBtdWx0aXBsZSBiYWNrZ3JvdW5kcyB1c2luZyBzaG9ydGhhbmRcbi8vIG5vdGF0aW9uLlxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuXG5AbWl4aW4gYmFja2dyb3VuZCgkYmFja2dyb3VuZHMuLi4pIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJiYWNrZ3JvdW5kXCIpO1xuXG4gICR3ZWJraXQtYmFja2dyb3VuZHM6ICgpO1xuICAkc3BlYy1iYWNrZ3JvdW5kczogKCk7XG5cbiAgQGVhY2ggJGJhY2tncm91bmQgaW4gJGJhY2tncm91bmRzIHtcbiAgICAkd2Via2l0LWJhY2tncm91bmQ6ICgpO1xuICAgICRzcGVjLWJhY2tncm91bmQ6ICgpO1xuICAgICRiYWNrZ3JvdW5kLXR5cGU6IHR5cGUtb2YoJGJhY2tncm91bmQpO1xuXG4gICAgQGlmICRiYWNrZ3JvdW5kLXR5cGUgPT0gc3RyaW5nIG9yICRiYWNrZ3JvdW5kLXR5cGUgPT0gbGlzdCB7XG4gICAgICAkYmFja2dyb3VuZC1zdHI6IGlmKCRiYWNrZ3JvdW5kLXR5cGUgPT0gbGlzdCwgbnRoKCRiYWNrZ3JvdW5kLCAxKSwgJGJhY2tncm91bmQpO1xuXG4gICAgICAkdXJsLXN0cjogICAgICAgc3RyLXNsaWNlKCRiYWNrZ3JvdW5kLXN0ciwgMSwgMyk7XG4gICAgICAkZ3JhZGllbnQtdHlwZTogc3RyLXNsaWNlKCRiYWNrZ3JvdW5kLXN0ciwgMSwgNik7XG5cbiAgICAgIEBpZiAkdXJsLXN0ciA9PSBcInVybFwiIHtcbiAgICAgICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICAgICAgJHNwZWMtYmFja2dyb3VuZDogICAkYmFja2dyb3VuZDtcbiAgICAgIH1cblxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJsaW5lYXJcIiB7XG4gICAgICAgICRncmFkaWVudHM6IF9saW5lYXItZ3JhZGllbnQtcGFyc2VyKFwiI3skYmFja2dyb3VuZH1cIik7XG4gICAgICAgICR3ZWJraXQtYmFja2dyb3VuZDogbWFwLWdldCgkZ3JhZGllbnRzLCB3ZWJraXQtaW1hZ2UpO1xuICAgICAgICAkc3BlYy1iYWNrZ3JvdW5kOiAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwicmFkaWFsXCIge1xuICAgICAgICAkZ3JhZGllbnRzOiBfcmFkaWFsLWdyYWRpZW50LXBhcnNlcihcIiN7JGJhY2tncm91bmR9XCIpO1xuICAgICAgICAkd2Via2l0LWJhY2tncm91bmQ6IG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcbiAgICAgICAgJHNwZWMtYmFja2dyb3VuZDogICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSB7XG4gICAgICAgICR3ZWJraXQtYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgICAgICRzcGVjLWJhY2tncm91bmQ6ICAgJGJhY2tncm91bmQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGVsc2Uge1xuICAgICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICAgICRzcGVjLWJhY2tncm91bmQ6ICAgJGJhY2tncm91bmQ7XG4gICAgfVxuXG4gICAgJHdlYmtpdC1iYWNrZ3JvdW5kczogYXBwZW5kKCR3ZWJraXQtYmFja2dyb3VuZHMsICR3ZWJraXQtYmFja2dyb3VuZCwgY29tbWEpO1xuICAgICRzcGVjLWJhY2tncm91bmRzOiAgIGFwcGVuZCgkc3BlYy1iYWNrZ3JvdW5kcywgICAkc3BlYy1iYWNrZ3JvdW5kLCAgIGNvbW1hKTtcbiAgfVxuXG4gIGJhY2tncm91bmQ6ICR3ZWJraXQtYmFja2dyb3VuZHM7XG4gIGJhY2tncm91bmQ6ICRzcGVjLWJhY2tncm91bmRzO1xufVxuIiwiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuLy8gQmFja2dyb3VuZC1pbWFnZSBwcm9wZXJ0eSBmb3IgYWRkaW5nIG11bHRpcGxlIGJhY2tncm91bmQgaW1hZ2VzIHdpdGhcbi8vIGdyYWRpZW50cywgb3IgZm9yIHN0cmluZ2luZyBtdWx0aXBsZSBncmFkaWVudHMgdG9nZXRoZXIuXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG5cbkBtaXhpbiBiYWNrZ3JvdW5kLWltYWdlKCRpbWFnZXMuLi4pIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJiYWNrZ3JvdW5kLWltYWdlXCIpO1xuXG4gICR3ZWJraXQtaW1hZ2VzOiAoKTtcbiAgJHNwZWMtaW1hZ2VzOiAoKTtcblxuICBAZWFjaCAkaW1hZ2UgaW4gJGltYWdlcyB7XG4gICAgJHdlYmtpdC1pbWFnZTogKCk7XG4gICAgJHNwZWMtaW1hZ2U6ICgpO1xuXG4gICAgQGlmICh0eXBlLW9mKCRpbWFnZSkgPT0gc3RyaW5nKSB7XG4gICAgICAkdXJsLXN0cjogICAgICAgc3RyLXNsaWNlKCRpbWFnZSwgMSwgMyk7XG4gICAgICAkZ3JhZGllbnQtdHlwZTogc3RyLXNsaWNlKCRpbWFnZSwgMSwgNik7XG5cbiAgICAgIEBpZiAkdXJsLXN0ciA9PSBcInVybFwiIHtcbiAgICAgICAgJHdlYmtpdC1pbWFnZTogJGltYWdlO1xuICAgICAgICAkc3BlYy1pbWFnZTogICAkaW1hZ2U7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwibGluZWFyXCIge1xuICAgICAgICAkZ3JhZGllbnRzOiBfbGluZWFyLWdyYWRpZW50LXBhcnNlcigkaW1hZ2UpO1xuICAgICAgICAkd2Via2l0LWltYWdlOiAgbWFwLWdldCgkZ3JhZGllbnRzLCB3ZWJraXQtaW1hZ2UpO1xuICAgICAgICAkc3BlYy1pbWFnZTogICAgbWFwLWdldCgkZ3JhZGllbnRzLCBzcGVjLWltYWdlKTtcbiAgICAgIH1cblxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJyYWRpYWxcIiB7XG4gICAgICAgICRncmFkaWVudHM6IF9yYWRpYWwtZ3JhZGllbnQtcGFyc2VyKCRpbWFnZSk7XG4gICAgICAgICR3ZWJraXQtaW1hZ2U6IG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcbiAgICAgICAgJHNwZWMtaW1hZ2U6ICAgbWFwLWdldCgkZ3JhZGllbnRzLCBzcGVjLWltYWdlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAkd2Via2l0LWltYWdlczogYXBwZW5kKCR3ZWJraXQtaW1hZ2VzLCAkd2Via2l0LWltYWdlLCBjb21tYSk7XG4gICAgJHNwZWMtaW1hZ2VzOiAgIGFwcGVuZCgkc3BlYy1pbWFnZXMsICAgJHNwZWMtaW1hZ2UsICAgY29tbWEpO1xuICB9XG5cbiAgYmFja2dyb3VuZC1pbWFnZTogJHdlYmtpdC1pbWFnZXM7XG4gIGJhY2tncm91bmQtaW1hZ2U6ICRzcGVjLWltYWdlcztcbn1cbiIsIkBtaXhpbiBib3JkZXItaW1hZ2UoJGJvcmRlcnMuLi4pIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJib3JkZXItaW1hZ2VcIik7XG5cbiAgJHdlYmtpdC1ib3JkZXJzOiAoKTtcbiAgJHNwZWMtYm9yZGVyczogKCk7XG5cbiAgQGVhY2ggJGJvcmRlciBpbiAkYm9yZGVycyB7XG4gICAgJHdlYmtpdC1ib3JkZXI6ICgpO1xuICAgICRzcGVjLWJvcmRlcjogKCk7XG4gICAgJGJvcmRlci10eXBlOiB0eXBlLW9mKCRib3JkZXIpO1xuXG4gICAgQGlmICRib3JkZXItdHlwZSA9PSBzdHJpbmcgb3IgbGlzdCB7XG4gICAgICAkYm9yZGVyLXN0cjogaWYoJGJvcmRlci10eXBlID09IGxpc3QsIG50aCgkYm9yZGVyLCAxKSwgJGJvcmRlcik7XG5cbiAgICAgICR1cmwtc3RyOiAgICAgICBzdHItc2xpY2UoJGJvcmRlci1zdHIsIDEsIDMpO1xuICAgICAgJGdyYWRpZW50LXR5cGU6IHN0ci1zbGljZSgkYm9yZGVyLXN0ciwgMSwgNik7XG5cbiAgICAgIEBpZiAkdXJsLXN0ciA9PSBcInVybFwiIHtcbiAgICAgICAgJHdlYmtpdC1ib3JkZXI6ICRib3JkZXI7XG4gICAgICAgICRzcGVjLWJvcmRlcjogICAkYm9yZGVyO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSBcImxpbmVhclwiIHtcbiAgICAgICAgJGdyYWRpZW50czogX2xpbmVhci1ncmFkaWVudC1wYXJzZXIoXCIjeyRib3JkZXJ9XCIpO1xuICAgICAgICAkd2Via2l0LWJvcmRlcjogbWFwLWdldCgkZ3JhZGllbnRzLCB3ZWJraXQtaW1hZ2UpO1xuICAgICAgICAkc3BlYy1ib3JkZXI6ICAgbWFwLWdldCgkZ3JhZGllbnRzLCBzcGVjLWltYWdlKTtcbiAgICAgIH1cblxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJyYWRpYWxcIiB7XG4gICAgICAgICRncmFkaWVudHM6IF9yYWRpYWwtZ3JhZGllbnQtcGFyc2VyKFwiI3skYm9yZGVyfVwiKTtcbiAgICAgICAgJHdlYmtpdC1ib3JkZXI6IG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcbiAgICAgICAgJHNwZWMtYm9yZGVyOiAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJHdlYmtpdC1ib3JkZXI6ICRib3JkZXI7XG4gICAgICAgICRzcGVjLWJvcmRlcjogICAkYm9yZGVyO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBlbHNlIHtcbiAgICAgICR3ZWJraXQtYm9yZGVyOiAkYm9yZGVyO1xuICAgICAgJHNwZWMtYm9yZGVyOiAgICRib3JkZXI7XG4gICAgfVxuXG4gICAgJHdlYmtpdC1ib3JkZXJzOiBhcHBlbmQoJHdlYmtpdC1ib3JkZXJzLCAkd2Via2l0LWJvcmRlciwgY29tbWEpO1xuICAgICRzcGVjLWJvcmRlcnM6ICAgYXBwZW5kKCRzcGVjLWJvcmRlcnMsICAgJHNwZWMtYm9yZGVyLCAgIGNvbW1hKTtcbiAgfVxuXG4gIC13ZWJraXQtYm9yZGVyLWltYWdlOiAkd2Via2l0LWJvcmRlcnM7XG4gICAgICAgICAgYm9yZGVyLWltYWdlOiAkc3BlYy1ib3JkZXJzO1xuICAgICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG59XG5cbi8vRXhhbXBsZXM6XG4vLyBAaW5jbHVkZSBib3JkZXItaW1hZ2UodXJsKFwiaW1hZ2UucG5nXCIpKTtcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZSh1cmwoXCJpbWFnZS5wbmdcIikgMjAgc3RyZXRjaCk7XG4vLyBAaW5jbHVkZSBib3JkZXItaW1hZ2UobGluZWFyLWdyYWRpZW50KDQ1ZGVnLCBvcmFuZ2UsIHllbGxvdykpO1xuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKGxpbmVhci1ncmFkaWVudCg0NWRlZywgb3JhbmdlLCB5ZWxsb3cpIHN0cmV0Y2gpO1xuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKGxpbmVhci1ncmFkaWVudCg0NWRlZywgb3JhbmdlLCB5ZWxsb3cpIDIwIDMwIDQwIDUwIHN0cmV0Y2ggcm91bmQpO1xuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKHJhZGlhbC1ncmFkaWVudCh0b3AsIGNvdmVyLCBvcmFuZ2UsIHllbGxvdywgb3JhbmdlKSk7XG4iLCJAbWl4aW4gY2FsYygkcHJvcGVydHksICR2YWx1ZSkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImNhbGNcIik7XG5cbiAgI3skcHJvcGVydHl9OiAtd2Via2l0LWNhbGMoI3skdmFsdWV9KTtcbiAgI3skcHJvcGVydHl9OiBjYWxjKCN7JHZhbHVlfSk7XG59XG4iLCJAbWl4aW4gY29sdW1ucygkYXJnOiBhdXRvKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiY29sdW1uc1wiKTtcblxuICAvLyA8Y29sdW1uLWNvdW50PiB8fCA8Y29sdW1uLXdpZHRoPlxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW5zLCAkYXJnLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLWNvdW50KCRpbnQ6IGF1dG8pIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJjb2x1bW4tY291bnRcIik7XG5cbiAgLy8gYXV0byB8fCBpbnRlZ2VyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1jb3VudCwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1nYXAoJGxlbmd0aDogbm9ybWFsKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiY29sdW1uLWdhcFwiKTtcblxuICAvLyBub3JtYWwgfHwgbGVuZ3RoXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1nYXAsICRsZW5ndGgsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4tZmlsbCgkYXJnOiBhdXRvKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiY29sdW1uLWZpbGxcIik7XG5cbiAgLy8gYXV0byB8fCBsZW5ndGhcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLWZpbGwsICRhcmcsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4tcnVsZSgkYXJnKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiY29sdW1uLXJ1bGVcIik7XG5cbiAgLy8gPGJvcmRlci13aWR0aD4gfHwgPGJvcmRlci1zdHlsZT4gfHwgPGNvbG9yPlxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tcnVsZSwgJGFyZywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1ydWxlLWNvbG9yKCRjb2xvcikge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImNvbHVtbi1ydWxlLWNvbG9yXCIpO1xuXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1ydWxlLWNvbG9yLCAkY29sb3IsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4tcnVsZS1zdHlsZSgkc3R5bGU6IG5vbmUpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJjb2x1bW4tcnVsZS1zdHlsZVwiKTtcblxuICAvLyBub25lIHwgaGlkZGVuIHwgZGFzaGVkIHwgZG90dGVkIHwgZG91YmxlIHwgZ3Jvb3ZlIHwgaW5zZXQgfCBpbnNldCB8IG91dHNldCB8IHJpZGdlIHwgc29saWRcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXJ1bGUtc3R5bGUsICRzdHlsZSwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1ydWxlLXdpZHRoKCR3aWR0aDogbm9uZSkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImNvbHVtbi1ydWxlLXdpZHRoXCIpO1xuXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1ydWxlLXdpZHRoLCAkd2lkdGgsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4tc3BhbigkYXJnOiBub25lKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiY29sdW1uLXNwYW5cIik7XG5cbiAgLy8gbm9uZSB8fCBhbGxcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXNwYW4sICRhcmcsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4td2lkdGgoJGxlbmd0aDogYXV0bykge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImNvbHVtbi13aWR0aFwiKTtcblxuICAvLyBhdXRvIHx8IGxlbmd0aFxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4td2lkdGgsICRsZW5ndGgsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG4iLCJAbWl4aW4gZmlsdGVyKCRmdW5jdGlvbjogbm9uZSkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImZpbHRlclwiKTtcblxuICAvLyA8ZmlsdGVyLWZ1bmN0aW9uPiBbPGZpbHRlci1mdW5jdGlvbl0qIHwgbm9uZVxuICBAaW5jbHVkZSBwcmVmaXhlcihmaWx0ZXIsICRmdW5jdGlvbiwgd2Via2l0IHNwZWMpO1xufVxuIiwiLy8gQ1NTMyBGbGV4aWJsZSBCb3ggTW9kZWwgYW5kIHByb3BlcnR5IGRlZmF1bHRzXG5cbi8vIEN1c3RvbSBzaG9ydGhhbmQgbm90YXRpb24gZm9yIGZsZXhib3hcbkBtaXhpbiBib3goJG9yaWVudDogaW5saW5lLWF4aXMsICRwYWNrOiBzdGFydCwgJGFsaWduOiBzdHJldGNoKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiYm94XCIpO1xuXG4gIEBpbmNsdWRlIGRpc3BsYXktYm94O1xuICBAaW5jbHVkZSBib3gtb3JpZW50KCRvcmllbnQpO1xuICBAaW5jbHVkZSBib3gtcGFjaygkcGFjayk7XG4gIEBpbmNsdWRlIGJveC1hbGlnbigkYWxpZ24pO1xufVxuXG5AbWl4aW4gZGlzcGxheS1ib3gge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImRpc3BsYXktYm94XCIpO1xuXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICBkaXNwbGF5OiAtbW96LWJveDtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7IC8vIElFIDEwXG4gIGRpc3BsYXk6IGJveDtcbn1cblxuQG1peGluIGJveC1vcmllbnQoJG9yaWVudDogaW5saW5lLWF4aXMpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJib3gtb3JpZW50XCIpO1xuXG4vLyBob3Jpem9udGFsfHZlcnRpY2FsfGlubGluZS1heGlzfGJsb2NrLWF4aXN8aW5oZXJpdFxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtb3JpZW50LCAkb3JpZW50LCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYm94LXBhY2soJHBhY2s6IHN0YXJ0KSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiYm94LXBhY2tcIik7XG5cbi8vIHN0YXJ0fGVuZHxjZW50ZXJ8anVzdGlmeVxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtcGFjaywgJHBhY2ssIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LXBhY2s6ICRwYWNrOyAvLyBJRSAxMFxufVxuXG5AbWl4aW4gYm94LWFsaWduKCRhbGlnbjogc3RyZXRjaCkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImJveC1hbGlnblwiKTtcblxuLy8gc3RhcnR8ZW5kfGNlbnRlcnxiYXNlbGluZXxzdHJldGNoXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1hbGlnbiwgJGFsaWduLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1hbGlnbjogJGFsaWduOyAvLyBJRSAxMFxufVxuXG5AbWl4aW4gYm94LWRpcmVjdGlvbigkZGlyZWN0aW9uOiBub3JtYWwpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJib3gtZGlyZWN0aW9uXCIpO1xuXG4vLyBub3JtYWx8cmV2ZXJzZXxpbmhlcml0XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1kaXJlY3Rpb24sICRkaXJlY3Rpb24sIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LWRpcmVjdGlvbjogJGRpcmVjdGlvbjsgLy8gSUUgMTBcbn1cblxuQG1peGluIGJveC1saW5lcygkbGluZXM6IHNpbmdsZSkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImJveC1saW5lc1wiKTtcblxuLy8gc2luZ2xlfG11bHRpcGxlXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1saW5lcywgJGxpbmVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYm94LW9yZGluYWwtZ3JvdXAoJGludDogMSkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImJveC1vcmRpbmFsLWdyb3VwXCIpO1xuXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1vcmRpbmFsLWdyb3VwLCAkaW50LCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1vcmRlcjogJGludDsgLy8gSUUgMTBcbn1cblxuQG1peGluIGJveC1mbGV4KCR2YWx1ZTogMCkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImJveC1mbGV4XCIpO1xuXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1mbGV4LCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4OiAkdmFsdWU7IC8vIElFIDEwXG59XG5cbkBtaXhpbiBib3gtZmxleC1ncm91cCgkaW50OiAxKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiYm94LWZsZXgtZ3JvdXBcIik7XG5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWZsZXgtZ3JvdXAsICRpbnQsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbi8vIENTUzMgRmxleGlibGUgQm94IE1vZGVsIGFuZCBwcm9wZXJ0eSBkZWZhdWx0c1xuLy8gVW5pZmllZCBhdHRyaWJ1dGVzIGZvciAyMDA5LCAyMDExLCBhbmQgMjAxMiBmbGF2b3Vycy5cblxuLy8gMjAwOSAtIGRpc3BsYXkgKGJveCB8IGlubGluZS1ib3gpXG4vLyAyMDExIC0gZGlzcGxheSAoZmxleGJveCB8IGlubGluZS1mbGV4Ym94KVxuLy8gMjAxMiAtIGRpc3BsYXkgKGZsZXggfCBpbmxpbmUtZmxleClcbkBtaXhpbiBkaXNwbGF5KCR2YWx1ZSkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImRpc3BsYXlcIik7XG5cbi8vIGZsZXggfCBpbmxpbmUtZmxleFxuICBAaWYgJHZhbHVlID09IFwiZmxleFwiIHtcbiAgICAvLyAyMDA5XG4gICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gICAgZGlzcGxheTogLW1vei1ib3g7XG4gICAgZGlzcGxheTogYm94O1xuXG4gICAgLy8gMjAxMlxuICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgICBkaXNwbGF5OiAtbW96LWZsZXg7XG4gICAgZGlzcGxheTogLW1zLWZsZXhib3g7IC8vIDIwMTEgKElFIDEwKVxuICAgIGRpc3BsYXk6IGZsZXg7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwiaW5saW5lLWZsZXhcIiB7XG4gICAgZGlzcGxheTogLXdlYmtpdC1pbmxpbmUtYm94O1xuICAgIGRpc3BsYXk6IC1tb3otaW5saW5lLWJveDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYm94O1xuXG4gICAgZGlzcGxheTogLXdlYmtpdC1pbmxpbmUtZmxleDtcbiAgICBkaXNwbGF5OiAtbW96LWlubGluZS1mbGV4O1xuICAgIGRpc3BsYXk6IC1tcy1pbmxpbmUtZmxleGJveDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgfSBAZWxzZSB7XG4gICAgZGlzcGxheTogJHZhbHVlO1xuICB9XG59XG5cbi8vIDIwMDkgLSBib3gtZmxleCAoaW50ZWdlcilcbi8vIDIwMTEgLSBmbGV4IChkZWNpbWFsIHwgd2lkdGggZGVjaW1hbClcbi8vIDIwMTIgLSBmbGV4IChpbnRlZ2VyIGludGVnZXIgd2lkdGgpXG5AbWl4aW4gZmxleCgkdmFsdWUpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJmbGV4XCIpO1xuXG4gIC8vIEdyYWIgZmxleC1ncm93IGZvciBvbGRlciBicm93c2Vycy5cbiAgJGZsZXgtZ3JvdzogbnRoKCR2YWx1ZSwgMSk7XG5cbiAgLy8gMjAwOVxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZmxleCwgJGZsZXgtZ3Jvdywgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDExIChJRSAxMCksIDIwMTJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleCwgJHZhbHVlLCB3ZWJraXQgbW96IG1zIHNwZWMpO1xufVxuXG4vLyAyMDA5IC0gYm94LW9yaWVudCAoIGhvcml6b250YWwgfCB2ZXJ0aWNhbCB8IGlubGluZS1heGlzIHwgYmxvY2stYXhpcylcbi8vICAgICAgLSBib3gtZGlyZWN0aW9uIChub3JtYWwgfCByZXZlcnNlKVxuLy8gMjAxMSAtIGZsZXgtZGlyZWN0aW9uIChyb3cgfCByb3ctcmV2ZXJzZSB8IGNvbHVtbiB8IGNvbHVtbi1yZXZlcnNlKVxuLy8gMjAxMiAtIGZsZXgtZGlyZWN0aW9uIChyb3cgfCByb3ctcmV2ZXJzZSB8IGNvbHVtbiB8IGNvbHVtbi1yZXZlcnNlKVxuQG1peGluIGZsZXgtZGlyZWN0aW9uKCR2YWx1ZTogcm93KSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiZmxleC1kaXJlY3Rpb25cIik7XG5cbiAgLy8gQWx0IHZhbHVlcy5cbiAgJHZhbHVlLTIwMDk6ICR2YWx1ZTtcbiAgJHZhbHVlLTIwMTE6ICR2YWx1ZTtcbiAgJGRpcmVjdGlvbjogbm9ybWFsO1xuXG4gIEBpZiAkdmFsdWUgPT0gcm93IHtcbiAgICAkdmFsdWUtMjAwOTogaG9yaXpvbnRhbDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJyb3ctcmV2ZXJzZVwiIHtcbiAgICAkdmFsdWUtMjAwOTogaG9yaXpvbnRhbDtcbiAgICAkZGlyZWN0aW9uOiByZXZlcnNlO1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBjb2x1bW4ge1xuICAgICR2YWx1ZS0yMDA5OiB2ZXJ0aWNhbDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJjb2x1bW4tcmV2ZXJzZVwiIHtcbiAgICAkdmFsdWUtMjAwOTogdmVydGljYWw7XG4gICAgJGRpcmVjdGlvbjogcmV2ZXJzZTtcbiAgfVxuXG4gIC8vIDIwMDlcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LW9yaWVudCwgJHZhbHVlLTIwMDksIHdlYmtpdCBtb3ogc3BlYyk7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1kaXJlY3Rpb24sICRkaXJlY3Rpb24sIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMlxuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LWRpcmVjdGlvbiwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTEgKElFIDEwKVxuICAtbXMtZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcbn1cblxuLy8gMjAwOSAtIGJveC1saW5lcyAoc2luZ2xlIHwgbXVsdGlwbGUpXG4vLyAyMDExIC0gZmxleC13cmFwIChub3dyYXAgfCB3cmFwIHwgd3JhcC1yZXZlcnNlKVxuLy8gMjAxMiAtIGZsZXgtd3JhcCAobm93cmFwIHwgd3JhcCB8IHdyYXAtcmV2ZXJzZSlcbkBtaXhpbiBmbGV4LXdyYXAoJHZhbHVlOiBub3dyYXApIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJmbGV4LXdyYXBcIik7XG5cbiAgLy8gQWx0IHZhbHVlc1xuICAkYWx0LXZhbHVlOiAkdmFsdWU7XG4gIEBpZiAkdmFsdWUgPT0gbm93cmFwIHtcbiAgICAkYWx0LXZhbHVlOiBzaW5nbGU7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IHdyYXAge1xuICAgICRhbHQtdmFsdWU6IG11bHRpcGxlO1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcIndyYXAtcmV2ZXJzZVwiIHtcbiAgICAkYWx0LXZhbHVlOiBtdWx0aXBsZTtcbiAgfVxuXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1saW5lcywgJGFsdC12YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC13cmFwLCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgc3BlYyk7XG59XG5cbi8vIDIwMDkgLSBUT0RPOiBwYXJzZSB2YWx1ZXMgaW50byBmbGV4LWRpcmVjdGlvbi9mbGV4LXdyYXBcbi8vIDIwMTEgLSBUT0RPOiBwYXJzZSB2YWx1ZXMgaW50byBmbGV4LWRpcmVjdGlvbi9mbGV4LXdyYXBcbi8vIDIwMTIgLSBmbGV4LWZsb3cgKGZsZXgtZGlyZWN0aW9uIHx8IGZsZXgtd3JhcClcbkBtaXhpbiBmbGV4LWZsb3coJHZhbHVlKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiZmxleC1mbG93XCIpO1xuXG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtZmxvdywgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG4vLyAyMDA5IC0gYm94LW9yZGluYWwtZ3JvdXAgKGludGVnZXIpXG4vLyAyMDExIC0gZmxleC1vcmRlciAoaW50ZWdlcilcbi8vIDIwMTIgLSBvcmRlciAoaW50ZWdlcilcbkBtaXhpbiBvcmRlcigkaW50OiAwKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwib3JkZXJcIik7XG5cbiAgLy8gMjAwOVxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtb3JkaW5hbC1ncm91cCwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDEyXG4gIEBpbmNsdWRlIHByZWZpeGVyKG9yZGVyLCAkaW50LCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTEgKElFIDEwKVxuICAtbXMtZmxleC1vcmRlcjogJGludDtcbn1cblxuLy8gMjAxMiAtIGZsZXgtZ3JvdyAobnVtYmVyKVxuQG1peGluIGZsZXgtZ3JvdygkbnVtYmVyOiAwKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiZmxleC1ncm93XCIpO1xuXG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtZ3JvdywgJG51bWJlciwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtcG9zaXRpdmU6ICRudW1iZXI7XG59XG5cbi8vIDIwMTIgLSBmbGV4LXNocmluayAobnVtYmVyKVxuQG1peGluIGZsZXgtc2hyaW5rKCRudW1iZXI6IDEpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJmbGV4LXNocmlua1wiKTtcblxuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LXNocmluaywgJG51bWJlciwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtbmVnYXRpdmU6ICRudW1iZXI7XG59XG5cbi8vIDIwMTIgLSBmbGV4LWJhc2lzIChudW1iZXIpXG5AbWl4aW4gZmxleC1iYXNpcygkd2lkdGg6IGF1dG8pIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJmbGV4LWJhc2lzXCIpO1xuXG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtYmFzaXMsICR3aWR0aCwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6ICR3aWR0aDtcbn1cblxuLy8gMjAwOSAtIGJveC1wYWNrIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGp1c3RpZnkpXG4vLyAyMDExIC0gZmxleC1wYWNrIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGp1c3RpZnkpXG4vLyAyMDEyIC0ganVzdGlmeS1jb250ZW50IChmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBzcGFjZS1iZXR3ZWVuIHwgc3BhY2UtYXJvdW5kKVxuQG1peGluIGp1c3RpZnktY29udGVudCgkdmFsdWU6IGZsZXgtc3RhcnQpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJqdXN0aWZ5LWNvbnRlbnRcIik7XG5cbiAgLy8gQWx0IHZhbHVlcy5cbiAgJGFsdC12YWx1ZTogJHZhbHVlO1xuICBAaWYgJHZhbHVlID09IFwiZmxleC1zdGFydFwiIHtcbiAgICAkYWx0LXZhbHVlOiBzdGFydDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJmbGV4LWVuZFwiIHtcbiAgICAkYWx0LXZhbHVlOiBlbmQ7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwic3BhY2UtYmV0d2VlblwiIHtcbiAgICAkYWx0LXZhbHVlOiBqdXN0aWZ5O1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcInNwYWNlLWFyb3VuZFwiIHtcbiAgICAkYWx0LXZhbHVlOiBkaXN0cmlidXRlO1xuICB9XG5cbiAgLy8gMjAwOVxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtcGFjaywgJGFsdC12YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDEyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGp1c3RpZnktY29udGVudCwgJHZhbHVlLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XG5cbiAgLy8gMjAxMSAoSUUgMTApXG4gIC1tcy1mbGV4LXBhY2s6ICRhbHQtdmFsdWU7XG59XG5cbi8vIDIwMDkgLSBib3gtYWxpZ24gKHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxuLy8gMjAxMSAtIGZsZXgtYWxpZ24gKHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxuLy8gMjAxMiAtIGFsaWduLWl0ZW1zIChmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXG5AbWl4aW4gYWxpZ24taXRlbXMoJHZhbHVlOiBzdHJldGNoKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiYWxpZ24taXRlbXNcIik7XG5cbiAgJGFsdC12YWx1ZTogJHZhbHVlO1xuXG4gIEBpZiAkdmFsdWUgPT0gXCJmbGV4LXN0YXJ0XCIge1xuICAgICRhbHQtdmFsdWU6IHN0YXJ0O1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcImZsZXgtZW5kXCIge1xuICAgICRhbHQtdmFsdWU6IGVuZDtcbiAgfVxuXG4gIC8vIDIwMDlcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWFsaWduLCAkYWx0LXZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYWxpZ24taXRlbXMsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xuXG4gIC8vIDIwMTEgKElFIDEwKVxuICAtbXMtZmxleC1hbGlnbjogJGFsdC12YWx1ZTtcbn1cblxuLy8gMjAxMSAtIGZsZXgtaXRlbS1hbGlnbiAoYXV0byB8IHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxuLy8gMjAxMiAtIGFsaWduLXNlbGYgKGF1dG8gfCBmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXG5AbWl4aW4gYWxpZ24tc2VsZigkdmFsdWU6IGF1dG8pIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJhbGlnbi1zZWxmXCIpO1xuXG4gICR2YWx1ZS0yMDExOiAkdmFsdWU7XG4gIEBpZiAkdmFsdWUgPT0gXCJmbGV4LXN0YXJ0XCIge1xuICAgICR2YWx1ZS0yMDExOiBzdGFydDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJmbGV4LWVuZFwiIHtcbiAgICAkdmFsdWUtMjAxMTogZW5kO1xuICB9XG5cbiAgLy8gMjAxMlxuICBAaW5jbHVkZSBwcmVmaXhlcihhbGlnbi1zZWxmLCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMSAoSUUgMTApXG4gIC1tcy1mbGV4LWl0ZW0tYWxpZ246ICR2YWx1ZS0yMDExO1xufVxuXG4vLyAyMDExIC0gZmxleC1saW5lLXBhY2sgKHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwganVzdGlmeSB8IGRpc3RyaWJ1dGUgfCBzdHJldGNoKVxuLy8gMjAxMiAtIGFsaWduLWNvbnRlbnQgKGZsZXgtc3RhcnQgfCBmbGV4LWVuZCB8IGNlbnRlciB8IHNwYWNlLWJldHdlZW4gfCBzcGFjZS1hcm91bmQgfCBzdHJldGNoKVxuQG1peGluIGFsaWduLWNvbnRlbnQoJHZhbHVlOiBzdHJldGNoKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiYWxpZ24tY29udGVudFwiKTtcblxuICAkdmFsdWUtMjAxMTogJHZhbHVlO1xuICBAaWYgJHZhbHVlID09IFwiZmxleC1zdGFydFwiIHtcbiAgICAkdmFsdWUtMjAxMTogc3RhcnQ7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwiZmxleC1lbmRcIiB7XG4gICAgJHZhbHVlLTIwMTE6IGVuZDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJzcGFjZS1iZXR3ZWVuXCIge1xuICAgICR2YWx1ZS0yMDExOiBqdXN0aWZ5O1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcInNwYWNlLWFyb3VuZFwiIHtcbiAgICAkdmFsdWUtMjAxMTogZGlzdHJpYnV0ZTtcbiAgfVxuXG4gIC8vIDIwMTJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYWxpZ24tY29udGVudCwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTEgKElFIDEwKVxuICAtbXMtZmxleC1saW5lLXBhY2s6ICR2YWx1ZS0yMDExO1xufVxuIiwiQG1peGluIGZvbnQtZmFjZShcbiAgJGZvbnQtZmFtaWx5LFxuICAkZmlsZS1wYXRoLFxuICAkd2VpZ2h0OiBub3JtYWwsXG4gICRzdHlsZTogbm9ybWFsLFxuICAkYXNzZXQtcGlwZWxpbmU6ICRhc3NldC1waXBlbGluZSxcbiAgJGZpbGUtZm9ybWF0czogZW90IHdvZmYyIHdvZmYgdHRmIHN2Zykge1xuXG4gICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmc6ICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncztcbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiBmYWxzZSAhZ2xvYmFsO1xuXG4gICRmb250LXVybC1wcmVmaXg6IGZvbnQtdXJsLXByZWZpeGVyKCRhc3NldC1waXBlbGluZSk7XG5cbiAgQGZvbnQtZmFjZSB7XG4gICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseTtcbiAgICBmb250LXN0eWxlOiAkc3R5bGU7XG4gICAgZm9udC13ZWlnaHQ6ICR3ZWlnaHQ7XG5cbiAgICBzcmM6IGZvbnQtc291cmNlLWRlY2xhcmF0aW9uKFxuICAgICAgJGZvbnQtZmFtaWx5LFxuICAgICAgJGZpbGUtcGF0aCxcbiAgICAgICRhc3NldC1waXBlbGluZSxcbiAgICAgICRmaWxlLWZvcm1hdHMsXG4gICAgICAkZm9udC11cmwtcHJlZml4XG4gICAgKTtcbiAgfVxuXG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZyAhZ2xvYmFsO1xufVxuIiwiQG1peGluIGZvbnQtZmVhdHVyZS1zZXR0aW5ncygkc2V0dGluZ3MuLi4pIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJmb250LWZlYXR1cmUtc2V0dGluZ3NcIik7XG5cbiAgQGlmIGxlbmd0aCgkc2V0dGluZ3MpID09IDAgeyAkc2V0dGluZ3M6IG5vbmU7IH1cbiAgQGluY2x1ZGUgcHJlZml4ZXIoZm9udC1mZWF0dXJlLXNldHRpbmdzLCAkc2V0dGluZ3MsIHdlYmtpdCBtb3ogbXMgc3BlYyk7XG59XG4iLCIvLyBIaURQSSBtaXhpbi4gRGVmYXVsdCB2YWx1ZSBzZXQgdG8gMS4zIHRvIHRhcmdldCBHb29nbGUgTmV4dXMgNyAoaHR0cDovL2JqYW5nby5jb20vYXJ0aWNsZXMvbWluLWRldmljZS1waXhlbC1yYXRpby8pXG5AbWl4aW4gaGlkcGkoJHJhdGlvOiAxLjMpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJoaWRwaVwiKTtcblxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86ICRyYXRpbyksXG4gIG9ubHkgc2NyZWVuIGFuZCAobWluLS1tb3otZGV2aWNlLXBpeGVsLXJhdGlvOiAkcmF0aW8pLFxuICBvbmx5IHNjcmVlbiBhbmQgKC1vLW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86ICN7JHJhdGlvfS8xKSxcbiAgb25seSBzY3JlZW4gYW5kIChtaW4tcmVzb2x1dGlvbjogcm91bmQoJHJhdGlvICogOTZkcGkpKSxcbiAgb25seSBzY3JlZW4gYW5kIChtaW4tcmVzb2x1dGlvbjogJHJhdGlvICogMWRwcHgpIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuIiwiQG1peGluIGh5cGhlbnMoJGh5cGhlbmF0aW9uOiBub25lKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiaHlwaGVuc1wiKTtcblxuICAvLyBub25lIHwgbWFudWFsIHwgYXV0b1xuICBAaW5jbHVkZSBwcmVmaXhlcihoeXBoZW5zLCAkaHlwaGVuYXRpb24sIHdlYmtpdCBtb3ogbXMgc3BlYyk7XG59XG4iLCJAbWl4aW4gaW1hZ2UtcmVuZGVyaW5nICgkbW9kZTphdXRvKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiaW1hZ2UtcmVuZGVyaW5nXCIpO1xuXG4gIEBpZiAoJG1vZGUgPT0gY3Jpc3AtZWRnZXMpIHtcbiAgICAtbXMtaW50ZXJwb2xhdGlvbi1tb2RlOiBuZWFyZXN0LW5laWdoYm9yOyAvLyBJRTgrXG4gICAgaW1hZ2UtcmVuZGVyaW5nOiAtbW96LWNyaXNwLWVkZ2VzO1xuICAgIGltYWdlLXJlbmRlcmluZzogLW8tY3Jpc3AtZWRnZXM7XG4gICAgaW1hZ2UtcmVuZGVyaW5nOiAtd2Via2l0LW9wdGltaXplLWNvbnRyYXN0O1xuICAgIGltYWdlLXJlbmRlcmluZzogY3Jpc3AtZWRnZXM7XG4gIH1cblxuICBAZWxzZSB7XG4gICAgaW1hZ2UtcmVuZGVyaW5nOiAkbW9kZTtcbiAgfVxufVxuIiwiLy8gQWRkcyBrZXlmcmFtZXMgYmxvY2tzIGZvciBzdXBwb3J0ZWQgcHJlZml4ZXMsIHJlbW92aW5nIHJlZHVuZGFudCBwcmVmaXhlcyBpbiB0aGUgYmxvY2sncyBjb250ZW50XG5AbWl4aW4ga2V5ZnJhbWVzKCRuYW1lKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwia2V5ZnJhbWVzXCIpO1xuXG4gICRvcmlnaW5hbC1wcmVmaXgtZm9yLXdlYmtpdDogICAgJHByZWZpeC1mb3Itd2Via2l0O1xuICAkb3JpZ2luYWwtcHJlZml4LWZvci1tb3ppbGxhOiAgICRwcmVmaXgtZm9yLW1vemlsbGE7XG4gICRvcmlnaW5hbC1wcmVmaXgtZm9yLW1pY3Jvc29mdDogJHByZWZpeC1mb3ItbWljcm9zb2Z0O1xuICAkb3JpZ2luYWwtcHJlZml4LWZvci1vcGVyYTogICAgICRwcmVmaXgtZm9yLW9wZXJhO1xuICAkb3JpZ2luYWwtcHJlZml4LWZvci1zcGVjOiAgICAgICRwcmVmaXgtZm9yLXNwZWM7XG5cbiAgQGlmICRvcmlnaW5hbC1wcmVmaXgtZm9yLXdlYmtpdCB7XG4gICAgQGluY2x1ZGUgZGlzYWJsZS1wcmVmaXgtZm9yLWFsbCgpO1xuICAgICRwcmVmaXgtZm9yLXdlYmtpdDogdHJ1ZSAhZ2xvYmFsO1xuICAgIEAtd2Via2l0LWtleWZyYW1lcyAjeyRuYW1lfSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cblxuICBAaWYgJG9yaWdpbmFsLXByZWZpeC1mb3ItbW96aWxsYSB7XG4gICAgQGluY2x1ZGUgZGlzYWJsZS1wcmVmaXgtZm9yLWFsbCgpO1xuICAgICRwcmVmaXgtZm9yLW1vemlsbGE6IHRydWUgIWdsb2JhbDtcbiAgICBALW1vei1rZXlmcmFtZXMgI3skbmFtZX0ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG5cbiAgJHByZWZpeC1mb3Itd2Via2l0OiAgICAkb3JpZ2luYWwtcHJlZml4LWZvci13ZWJraXQgICAgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3ItbW96aWxsYTogICAkb3JpZ2luYWwtcHJlZml4LWZvci1tb3ppbGxhICAgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3ItbWljcm9zb2Z0OiAkb3JpZ2luYWwtcHJlZml4LWZvci1taWNyb3NvZnQgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3Itb3BlcmE6ICAgICAkb3JpZ2luYWwtcHJlZml4LWZvci1vcGVyYSAgICAgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3Itc3BlYzogICAgICAkb3JpZ2luYWwtcHJlZml4LWZvci1zcGVjICAgICAgIWdsb2JhbDtcblxuICBAaWYgJG9yaWdpbmFsLXByZWZpeC1mb3Itc3BlYyB7XG4gICAgQGtleWZyYW1lcyAjeyRuYW1lfSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cbiIsIkBtaXhpbiBsaW5lYXItZ3JhZGllbnQoJHBvcywgJGcxLCAkZzI6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRnMzogbnVsbCwgJGc0OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZzU6IG51bGwsICRnNjogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGc3OiBudWxsLCAkZzg6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRnOTogbnVsbCwgJGcxMDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGZhbGxiYWNrOiBudWxsKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwibGluZWFyLWdyYWRpZW50XCIpO1xuXG4gIC8vIERldGVjdCB3aGF0IHR5cGUgb2YgdmFsdWUgZXhpc3RzIGluICRwb3NcbiAgJHBvcy10eXBlOiB0eXBlLW9mKG50aCgkcG9zLCAxKSk7XG4gICRwb3Mtc3BlYzogbnVsbDtcbiAgJHBvcy1kZWdyZWU6IG51bGw7XG5cbiAgLy8gSWYgJHBvcyBpcyBtaXNzaW5nIGZyb20gbWl4aW4sIHJlYXNzaWduIHZhcnMgYW5kIGFkZCBkZWZhdWx0IHBvc2l0aW9uXG4gIEBpZiAoJHBvcy10eXBlID09IGNvbG9yKSBvciAobnRoKCRwb3MsIDEpID09IFwidHJhbnNwYXJlbnRcIikgIHtcbiAgICAkZzEwOiAkZzk7ICRnOTogJGc4OyAkZzg6ICRnNzsgJGc3OiAkZzY7ICRnNjogJGc1O1xuICAgICRnNTogJGc0OyAkZzQ6ICRnMzsgJGczOiAkZzI7ICRnMjogJGcxOyAkZzE6ICRwb3M7XG4gICAgJHBvczogbnVsbDtcbiAgfVxuXG4gIEBpZiAkcG9zIHtcbiAgICAkcG9zaXRpb25zOiBfbGluZWFyLXBvc2l0aW9ucy1wYXJzZXIoJHBvcyk7XG4gICAgJHBvcy1kZWdyZWU6IG50aCgkcG9zaXRpb25zLCAxKTtcbiAgICAkcG9zLXNwZWM6ICAgbnRoKCRwb3NpdGlvbnMsIDIpO1xuICB9XG5cbiAgJGZ1bGw6ICRnMSwgJGcyLCAkZzMsICRnNCwgJGc1LCAkZzYsICRnNywgJGc4LCAkZzksICRnMTA7XG5cbiAgLy8gU2V0ICRnMSBhcyB0aGUgZGVmYXVsdCBmYWxsYmFjayBjb2xvclxuICAkZmFsbGJhY2stY29sb3I6IG50aCgkZzEsIDEpO1xuXG4gIC8vIElmICRmYWxsYmFjayBpcyBhIGNvbG9yIHVzZSB0aGF0IGNvbG9yIGFzIHRoZSBmYWxsYmFjayBjb2xvclxuICBAaWYgKHR5cGUtb2YoJGZhbGxiYWNrKSA9PSBjb2xvcikgb3IgKCRmYWxsYmFjayA9PSBcInRyYW5zcGFyZW50XCIpIHtcbiAgICAkZmFsbGJhY2stY29sb3I6ICRmYWxsYmFjaztcbiAgfVxuXG4gIGJhY2tncm91bmQtY29sb3I6ICRmYWxsYmFjay1jb2xvcjtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoJHBvcy1kZWdyZWUgJGZ1bGwpOyAvLyBTYWZhcmkgNS4xKywgQ2hyb21lXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVucXVvdGUoXCJsaW5lYXItZ3JhZGllbnQoI3skcG9zLXNwZWN9I3skZnVsbH0pXCIpO1xufVxuIiwiQG1peGluIHBlcnNwZWN0aXZlKCRkZXB0aDogbm9uZSkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcInBlcnNwZWN0aXZlXCIpO1xuXG4gIC8vIG5vbmUgfCA8bGVuZ3RoPlxuICBAaW5jbHVkZSBwcmVmaXhlcihwZXJzcGVjdGl2ZSwgJGRlcHRoLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gcGVyc3BlY3RpdmUtb3JpZ2luKCR2YWx1ZTogNTAlIDUwJSkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcInBlcnNwZWN0aXZlLW9yaWdpblwiKTtcblxuICBAaW5jbHVkZSBwcmVmaXhlcihwZXJzcGVjdGl2ZS1vcmlnaW4sICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcbn1cbiIsIkBtaXhpbiBwbGFjZWhvbGRlciB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwicGxhY2Vob2xkZXJcIik7XG5cbiAgJHBsYWNlaG9sZGVyczogXCI6LXdlYmtpdC1pbnB1dFwiIFwiOi1tb3pcIiBcIi1tb3pcIiBcIi1tcy1pbnB1dFwiO1xuICBAZWFjaCAkcGxhY2Vob2xkZXIgaW4gJHBsYWNlaG9sZGVycyB7XG4gICAgJjojeyRwbGFjZWhvbGRlcn0tcGxhY2Vob2xkZXIge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG4iLCIvLyBSZXF1aXJlcyBTYXNzIDMuMStcbkBtaXhpbiByYWRpYWwtZ3JhZGllbnQoJGcxLCAkZzIsXG4gICAgICAgICAgICAgICAgICAgICAgICRnMzogbnVsbCwgJGc0OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZzU6IG51bGwsICRnNjogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGc3OiBudWxsLCAkZzg6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRnOTogbnVsbCwgJGcxMDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJHBvczogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJHNoYXBlLXNpemU6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRmYWxsYmFjazogbnVsbCkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcInJhZGlhbC1ncmFkaWVudFwiKTtcblxuICAkZGF0YTogX3JhZGlhbC1hcmctcGFyc2VyKCRnMSwgJGcyLCAkcG9zLCAkc2hhcGUtc2l6ZSk7XG4gICRnMTogIG50aCgkZGF0YSwgMSk7XG4gICRnMjogIG50aCgkZGF0YSwgMik7XG4gICRwb3M6IG50aCgkZGF0YSwgMyk7XG4gICRzaGFwZS1zaXplOiBudGgoJGRhdGEsIDQpO1xuXG4gICRmdWxsOiAkZzEsICRnMiwgJGczLCAkZzQsICRnNSwgJGc2LCAkZzcsICRnOCwgJGc5LCAkZzEwO1xuXG4gIC8vIFN0cmlwIGRlcHJlY2F0ZWQgY292ZXIvY29udGFpbiBmb3Igc3BlY1xuICAkc2hhcGUtc2l6ZS1zcGVjOiBfc2hhcGUtc2l6ZS1zdHJpcHBlcigkc2hhcGUtc2l6ZSk7XG5cbiAgLy8gU2V0ICRnMSBhcyB0aGUgZGVmYXVsdCBmYWxsYmFjayBjb2xvclxuICAkZmlyc3QtY29sb3I6IG50aCgkZnVsbCwgMSk7XG4gICRmYWxsYmFjay1jb2xvcjogbnRoKCRmaXJzdC1jb2xvciwgMSk7XG5cbiAgQGlmICh0eXBlLW9mKCRmYWxsYmFjaykgPT0gY29sb3IpIG9yICgkZmFsbGJhY2sgPT0gXCJ0cmFuc3BhcmVudFwiKSB7XG4gICAgJGZhbGxiYWNrLWNvbG9yOiAkZmFsbGJhY2s7XG4gIH1cblxuICAvLyBBZGQgQ29tbWFzIGFuZCBzcGFjZXNcbiAgJHNoYXBlLXNpemU6IGlmKCRzaGFwZS1zaXplLCBcIiN7JHNoYXBlLXNpemV9LCBcIiwgbnVsbCk7XG4gICRwb3M6ICAgICAgICBpZigkcG9zLCBcIiN7JHBvc30sIFwiLCBudWxsKTtcbiAgJHBvcy1zcGVjOiAgIGlmKCRwb3MsIFwiYXQgI3skcG9zfVwiLCBudWxsKTtcbiAgJHNoYXBlLXNpemUtc3BlYzogaWYoKCRzaGFwZS1zaXplLXNwZWMgIT0gXCIgXCIpIGFuZCAoJHBvcyA9PSBudWxsKSwgXCIjeyRzaGFwZS1zaXplLXNwZWN9LCBcIiwgXCIjeyRzaGFwZS1zaXplLXNwZWN9IFwiKTtcblxuICBiYWNrZ3JvdW5kLWNvbG9yOiAgJGZhbGxiYWNrLWNvbG9yO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LXJhZGlhbC1ncmFkaWVudCgjeyRwb3N9I3skc2hhcGUtc2l6ZX0jeyRmdWxsfSk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHJhZGlhbC1ncmFkaWVudCgjeyRzaGFwZS1zaXplLXNwZWN9I3skcG9zLXNwZWN9I3skZnVsbH0pO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIE91dHB1dHMgdGhlIHNwZWMgYW5kIHByZWZpeGVkIHZlcnNpb25zIG9mIHRoZSBgOjpzZWxlY3Rpb25gIHBzZXVkby1lbGVtZW50LlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7Qm9vbH0gJGN1cnJlbnQtc2VsZWN0b3IgW2ZhbHNlXVxyXG4vLy8gICBJZiBzZXQgdG8gYHRydWVgLCBpdCB0YWtlcyB0aGUgY3VycmVudCBlbGVtZW50IGludG8gY29uc2lkZXJhdGlvbi5cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIEBpbmNsdWRlIHNlbGVjdGlvbih0cnVlKSB7XHJcbi8vLyAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZiYjUyO1xyXG4vLy8gICAgIH1cclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcclxuLy8vICAgLmVsZW1lbnQ6Oi1tb3otc2VsZWN0aW9uIHtcclxuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZiYjUyO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gICAuZWxlbWVudDo6c2VsZWN0aW9uIHtcclxuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZiYjUyO1xyXG4vLy8gICB9XHJcblxyXG5AbWl4aW4gc2VsZWN0aW9uKCRjdXJyZW50LXNlbGVjdG9yOiBmYWxzZSkge1xyXG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwic2VsZWN0aW9uXCIpO1xyXG5cclxuICBAaWYgJGN1cnJlbnQtc2VsZWN0b3Ige1xyXG4gICAgJjo6LW1vei1zZWxlY3Rpb24ge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuXHJcbiAgICAmOjpzZWxlY3Rpb24ge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9IEBlbHNlIHtcclxuICAgIDo6LW1vei1zZWxlY3Rpb24ge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuXHJcbiAgICA6OnNlbGVjdGlvbiB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCJAbWl4aW4gdGV4dC1kZWNvcmF0aW9uKCR2YWx1ZSkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcInRleHQtZGVjb3JhdGlvblwiKTtcblxuLy8gPHRleHQtZGVjb3JhdGlvbi1saW5lPiB8fCA8dGV4dC1kZWNvcmF0aW9uLXN0eWxlPiB8fCA8dGV4dC1kZWNvcmF0aW9uLWNvbG9yPlxuICBAaW5jbHVkZSBwcmVmaXhlcih0ZXh0LWRlY29yYXRpb24sICR2YWx1ZSwgbW96KTtcbn1cblxuQG1peGluIHRleHQtZGVjb3JhdGlvbi1saW5lKCRsaW5lOiBub25lKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwidGV4dC1kZWNvcmF0aW9uLWxpbmVcIik7XG5cbi8vIG5vbmUgfHwgdW5kZXJsaW5lIHx8IG92ZXJsaW5lIHx8IGxpbmUtdGhyb3VnaFxuICBAaW5jbHVkZSBwcmVmaXhlcih0ZXh0LWRlY29yYXRpb24tbGluZSwgJGxpbmUsIG1veik7XG59XG5cbkBtaXhpbiB0ZXh0LWRlY29yYXRpb24tc3R5bGUoJHN0eWxlOiBzb2xpZCkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcInRleHQtZGVjb3JhdGlvbi1zdHlsZVwiKTtcblxuLy8gc29saWQgfHwgZG91YmxlIHx8IGRvdHRlZCB8fCBkYXNoZWQgfHwgd2F2eVxuICBAaW5jbHVkZSBwcmVmaXhlcih0ZXh0LWRlY29yYXRpb24tc3R5bGUsICRzdHlsZSwgbW96IHdlYmtpdCk7XG59XG5cbkBtaXhpbiB0ZXh0LWRlY29yYXRpb24tY29sb3IoJGNvbG9yOiBjdXJyZW50Q29sb3IpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJ0ZXh0LWRlY29yYXRpb24tY29sb3JcIik7XG5cbi8vIGN1cnJlbnRDb2xvciB8fCA8Y29sb3I+XG4gIEBpbmNsdWRlIHByZWZpeGVyKHRleHQtZGVjb3JhdGlvbi1jb2xvciwgJGNvbG9yLCBtb3opO1xufVxuIiwiQG1peGluIHRyYW5zZm9ybSgkcHJvcGVydHk6IG5vbmUpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJ0cmFuc2Zvcm1cIik7XG5cbiAgLy8gbm9uZSB8IDx0cmFuc2Zvcm0tZnVuY3Rpb24+XG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zZm9ybSwgJHByb3BlcnR5LCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XG59XG5cbkBtaXhpbiB0cmFuc2Zvcm0tb3JpZ2luKCRheGVzOiA1MCUpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJ0cmFuc2Zvcm0tb3JpZ2luXCIpO1xuXG4gIC8vIHgtYXhpcyAtIGxlZnQgfCBjZW50ZXIgfCByaWdodCAgfCBsZW5ndGggfCAlXG4gIC8vIHktYXhpcyAtIHRvcCAgfCBjZW50ZXIgfCBib3R0b20gfCBsZW5ndGggfCAlXG4gIC8vIHotYXhpcyAtICAgICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGhcbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNmb3JtLW9yaWdpbiwgJGF4ZXMsIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcbn1cblxuQG1peGluIHRyYW5zZm9ybS1zdHlsZSgkc3R5bGU6IGZsYXQpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJ0cmFuc2Zvcm0tc3R5bGVcIik7XG5cbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNmb3JtLXN0eWxlLCAkc3R5bGUsIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcbn1cbiIsIi8vIFNob3J0aGFuZCBtaXhpbi4gU3VwcG9ydHMgbXVsdGlwbGUgcGFyZW50aGVzZXMtZGVsaW1pbmF0ZWQgdmFsdWVzIGZvciBlYWNoIHZhcmlhYmxlLlxuLy8gRXhhbXBsZTogQGluY2x1ZGUgdHJhbnNpdGlvbiAoYWxsIDJzIGVhc2UtaW4tb3V0KTtcbi8vICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24gKG9wYWNpdHkgMXMgZWFzZS1pbiAycywgd2lkdGggMnMgZWFzZS1vdXQpO1xuLy8gICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1wcm9wZXJ0eSAodHJhbnNmb3JtLCBvcGFjaXR5KTtcblxuQG1peGluIHRyYW5zaXRpb24oJHByb3BlcnRpZXMuLi4pIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJ0cmFuc2l0aW9uXCIpO1xuXG4gIC8vIEZpeCBmb3IgdmVuZG9yLXByZWZpeCB0cmFuc2Zvcm0gcHJvcGVydHlcbiAgJG5lZWRzLXByZWZpeGVzOiBmYWxzZTtcbiAgJHdlYmtpdDogKCk7XG4gICRtb3o6ICgpO1xuICAkc3BlYzogKCk7XG5cbiAgLy8gQ3JlYXRlIGxpc3RzIGZvciB2ZW5kb3ItcHJlZml4ZWQgdHJhbnNmb3JtXG4gIEBlYWNoICRsaXN0IGluICRwcm9wZXJ0aWVzIHtcbiAgICBAaWYgbnRoKCRsaXN0LCAxKSA9PSBcInRyYW5zZm9ybVwiIHtcbiAgICAgICRuZWVkcy1wcmVmaXhlczogdHJ1ZTtcbiAgICAgICRsaXN0MTogLXdlYmtpdC10cmFuc2Zvcm07XG4gICAgICAkbGlzdDI6IC1tb3otdHJhbnNmb3JtO1xuICAgICAgJGxpc3QzOiAoKTtcblxuICAgICAgQGVhY2ggJHZhciBpbiAkbGlzdCB7XG4gICAgICAgICRsaXN0Mzogam9pbigkbGlzdDMsICR2YXIpO1xuXG4gICAgICAgIEBpZiAkdmFyICE9IFwidHJhbnNmb3JtXCIge1xuICAgICAgICAgICRsaXN0MTogam9pbigkbGlzdDEsICR2YXIpO1xuICAgICAgICAgICRsaXN0Mjogam9pbigkbGlzdDIsICR2YXIpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICR3ZWJraXQ6IGFwcGVuZCgkd2Via2l0LCAkbGlzdDEpO1xuICAgICAgJG1vejogICAgYXBwZW5kKCRtb3osICAgICRsaXN0Mik7XG4gICAgICAkc3BlYzogICBhcHBlbmQoJHNwZWMsICAgJGxpc3QzKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICR3ZWJraXQ6IGFwcGVuZCgkd2Via2l0LCAkbGlzdCwgY29tbWEpO1xuICAgICAgJG1vejogICAgYXBwZW5kKCRtb3osICAgICRsaXN0LCBjb21tYSk7XG4gICAgICAkc3BlYzogICBhcHBlbmQoJHNwZWMsICAgJGxpc3QsIGNvbW1hKTtcbiAgICB9XG4gIH1cblxuICBAaWYgJG5lZWRzLXByZWZpeGVzIHtcbiAgICAtd2Via2l0LXRyYW5zaXRpb246ICR3ZWJraXQ7XG4gICAgICAgLW1vei10cmFuc2l0aW9uOiAkbW96O1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogJHNwZWM7XG4gIH0gQGVsc2Uge1xuICAgIEBpZiBsZW5ndGgoJHByb3BlcnRpZXMpID49IDEge1xuICAgICAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbiwgJHByb3BlcnRpZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkcHJvcGVydGllczogYWxsIDAuMTVzIGVhc2Utb3V0IDBzO1xuICAgICAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbiwgJHByb3BlcnRpZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiB0cmFuc2l0aW9uLXByb3BlcnR5KCRwcm9wZXJ0aWVzLi4uKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwidHJhbnNpdGlvbi1wcm9wZXJ0eVwiKTtcblxuICAtd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zaXRpb24tcHJvcGVydHktbmFtZXMoJHByb3BlcnRpZXMsIFwid2Via2l0XCIpO1xuICAgICAtbW96LXRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zaXRpb24tcHJvcGVydHktbmFtZXMoJHByb3BlcnRpZXMsIFwibW96XCIpO1xuICAgICAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zaXRpb24tcHJvcGVydHktbmFtZXMoJHByb3BlcnRpZXMsIGZhbHNlKTtcbn1cblxuQG1peGluIHRyYW5zaXRpb24tZHVyYXRpb24oJHRpbWVzLi4uKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwidHJhbnNpdGlvbi1kdXJhdGlvblwiKTtcblxuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2l0aW9uLWR1cmF0aW9uLCAkdGltZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbigkbW90aW9ucy4uLikge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcInRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uXCIpO1xuXG4gIC8vIGVhc2UgfCBsaW5lYXIgfCBlYXNlLWluIHwgZWFzZS1vdXQgfCBlYXNlLWluLW91dCB8IGN1YmljLWJlemllcigpXG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uLCAkbW90aW9ucywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIHRyYW5zaXRpb24tZGVsYXkoJHRpbWVzLi4uKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwidHJhbnNpdGlvbi1kZWxheVwiKTtcblxuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2l0aW9uLWRlbGF5LCAkdGltZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG4iLCJAbWl4aW4gdXNlci1zZWxlY3QoJHZhbHVlOiBub25lKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwidXNlci1zZWxlY3RcIik7XG5cbiAgQGluY2x1ZGUgcHJlZml4ZXIodXNlci1zZWxlY3QsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBzcGVjKTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciB0YXJnZXRpbmcgYGJvcmRlci1jb2xvcmAgb24gc3BlY2lmaWMgc2lkZXMgb2YgYSBib3guIFVzZSBhIGBudWxsYCB2YWx1ZSB0byDigJxza2lw4oCdIGEgc2lkZS5cbi8vL1xuLy8vIEBwYXJhbSB7QXJnbGlzdH0gJHZhbHNcbi8vLyAgIExpc3Qgb2YgYXJndW1lbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgYm9yZGVyLWNvbG9yKCNhNjBiNTUgIzc2Y2Q5YyBudWxsICNlOGFlMWEpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBib3JkZXItbGVmdC1jb2xvcjogI2U4YWUxYTtcbi8vLyAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAjNzZjZDljO1xuLy8vICAgICBib3JkZXItdG9wLWNvbG9yOiAjYTYwYjU1O1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge21peGlufSBkaXJlY3Rpb25hbC1wcm9wZXJ0eVxuLy8vXG4vLy8gQG91dHB1dCBgYm9yZGVyLWNvbG9yYFxuXG5AbWl4aW4gYm9yZGVyLWNvbG9yKCR2YWxzLi4uKSB7XG4gICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmc6ICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncztcbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiBmYWxzZSAhZ2xvYmFsO1xuICBAaW5jbHVkZSBkaXJlY3Rpb25hbC1wcm9wZXJ0eShib3JkZXIsIGNvbG9yLCAkdmFscy4uLik7XG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZyAhZ2xvYmFsO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHRhcmdldGluZyBgYm9yZGVyLXJhZGl1c2Agb24gYm90aCBjb3JuZXJzIG9uIHRoZSBzaWRlIG9mIGEgYm94LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRyYWRpaVxuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQtb25lIHtcbi8vLyAgICAgQGluY2x1ZGUgYm9yZGVyLXRvcC1yYWRpdXMoNXB4KTtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLmVsZW1lbnQtdHdvIHtcbi8vLyAgICAgQGluY2x1ZGUgYm9yZGVyLWxlZnQtcmFkaXVzKDNweCk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudC1vbmUge1xuLy8vICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA1cHg7XG4vLy8gICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA1cHg7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5lbGVtZW50LXR3byB7XG4vLy8gICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDNweDtcbi8vLyAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogM3B4O1xuLy8vICAgfVxuLy8vXG4vLy8gQG91dHB1dCBgYm9yZGVyLXJhZGl1c2BcblxuQG1peGluIGJvcmRlci10b3AtcmFkaXVzKCRyYWRpaSkge1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkcmFkaWk7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkcmFkaWk7XG59XG5cbkBtaXhpbiBib3JkZXItcmlnaHQtcmFkaXVzKCRyYWRpaSkge1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogJHJhZGlpO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogJHJhZGlpO1xufVxuXG5AbWl4aW4gYm9yZGVyLWJvdHRvbS1yYWRpdXMoJHJhZGlpKSB7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICRyYWRpaTtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6ICRyYWRpaTtcbn1cblxuQG1peGluIGJvcmRlci1sZWZ0LXJhZGl1cygkcmFkaWkpIHtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogJHJhZGlpO1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkcmFkaWk7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm92aWRlcyBhIHF1aWNrIG1ldGhvZCBmb3IgdGFyZ2V0aW5nIGBib3JkZXItc3R5bGVgIG9uIHNwZWNpZmljIHNpZGVzIG9mIGEgYm94LiBVc2UgYSBgbnVsbGAgdmFsdWUgdG8g4oCcc2tpcOKAnSBhIHNpZGUuXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICR2YWxzXG4vLy8gICBMaXN0IG9mIGFyZ3VtZW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIGJvcmRlci1zdHlsZShkYXNoZWQgbnVsbCBzb2xpZCk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkO1xuLy8vICAgICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSB7bWl4aW59IGRpcmVjdGlvbmFsLXByb3BlcnR5XG4vLy9cbi8vLyBAb3V0cHV0IGBib3JkZXItc3R5bGVgXG5cbkBtaXhpbiBib3JkZXItc3R5bGUoJHZhbHMuLi4pIHtcbiAgJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZzogJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzO1xuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6IGZhbHNlICFnbG9iYWw7XG4gIEBpbmNsdWRlIGRpcmVjdGlvbmFsLXByb3BlcnR5KGJvcmRlciwgc3R5bGUsICR2YWxzLi4uKTtcbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nICFnbG9iYWw7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm92aWRlcyBhIHF1aWNrIG1ldGhvZCBmb3IgdGFyZ2V0aW5nIGBib3JkZXItd2lkdGhgIG9uIHNwZWNpZmljIHNpZGVzIG9mIGEgYm94LiBVc2UgYSBgbnVsbGAgdmFsdWUgdG8g4oCcc2tpcOKAnSBhIHNpZGUuXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICR2YWxzXG4vLy8gICBMaXN0IG9mIGFyZ3VtZW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIGJvcmRlci13aWR0aCgxZW0gbnVsbCAyMHB4KTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMjBweDtcbi8vLyAgICAgYm9yZGVyLXRvcC13aWR0aDogMWVtO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge21peGlufSBkaXJlY3Rpb25hbC1wcm9wZXJ0eVxuLy8vXG4vLy8gQG91dHB1dCBgYm9yZGVyLXdpZHRoYFxuXG5AbWl4aW4gYm9yZGVyLXdpZHRoKCR2YWxzLi4uKSB7XG4gICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmc6ICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncztcbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiBmYWxzZSAhZ2xvYmFsO1xuICBAaW5jbHVkZSBkaXJlY3Rpb25hbC1wcm9wZXJ0eShib3JkZXIsIHdpZHRoLCAkdmFscy4uLik7XG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZyAhZ2xvYmFsO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gR2VuZXJhdGVzIHZhcmlhYmxlcyBmb3IgYWxsIGJ1dHRvbnMuIFBsZWFzZSBub3RlIHRoYXQgeW91IG11c3QgdXNlIGludGVycG9sYXRpb24gb24gdGhlIHZhcmlhYmxlOiBgI3skYWxsLWJ1dHRvbnN9YC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgI3skYWxsLWJ1dHRvbnN9IHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogI2YwMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgI3skYWxsLWJ1dHRvbnMtZm9jdXN9LFxuLy8vICAgI3skYWxsLWJ1dHRvbnMtaG92ZXJ9IHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogIzBmMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgI3skYWxsLWJ1dHRvbnMtYWN0aXZlfSB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICMwMGY7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICBidXR0b24sXG4vLy8gICBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cInJlc2V0XCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICNmMDA7XG4vLy8gICB9XG4vLy9cbi8vLyAgIGJ1dHRvbjpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJidXR0b25cIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwicmVzZXRcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwic3VibWl0XCJdOmZvY3VzLFxuLy8vICAgYnV0dG9uOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cImJ1dHRvblwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJyZXNldFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJzdWJtaXRcIl06aG92ZXIge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGYwO1xuLy8vICAgfVxuLy8vXG4vLy8gICBidXR0b246YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cImJ1dHRvblwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwicmVzZXRcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXTphY3RpdmUge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBmO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUgYXNzaWduLWlucHV0c1xuLy8vXG4vLy8gQHR5cGUgTGlzdFxuLy8vXG4vLy8gQHRvZG8gUmVtb3ZlIGRvdWJsZSBhc3NpZ25lZCB2YXJpYWJsZXMgKExpbmVzIDU54oCTNjIpIGluIHY1LjAuMFxuXG4kYnV0dG9ucy1saXN0OiAnYnV0dG9uJyxcbiAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwiYnV0dG9uXCJdJyxcbiAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwicmVzZXRcIl0nLFxuICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJzdWJtaXRcIl0nO1xuXG4kdXNlci1vdXRwdXQtZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZzogJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzO1xuJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiBmYWxzZTtcblxuJGFsbC1idXR0b25zOiAgICAgICAgYXNzaWduLWlucHV0cygkYnV0dG9ucy1saXN0KTtcbiRhbGwtYnV0dG9ucy1hY3RpdmU6IGFzc2lnbi1pbnB1dHMoJGJ1dHRvbnMtbGlzdCwgYWN0aXZlKTtcbiRhbGwtYnV0dG9ucy1mb2N1czogIGFzc2lnbi1pbnB1dHMoJGJ1dHRvbnMtbGlzdCwgZm9jdXMpO1xuJGFsbC1idXR0b25zLWhvdmVyOiAgYXNzaWduLWlucHV0cygkYnV0dG9ucy1saXN0LCBob3Zlcik7XG5cbiRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogJHVzZXItb3V0cHV0LWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmc7XG5cbiRhbGwtYnV0dG9uLWlucHV0czogICAgICAgICRhbGwtYnV0dG9ucztcbiRhbGwtYnV0dG9uLWlucHV0cy1hY3RpdmU6ICRhbGwtYnV0dG9ucy1hY3RpdmU7XG4kYWxsLWJ1dHRvbi1pbnB1dHMtZm9jdXM6ICAkYWxsLWJ1dHRvbnMtZm9jdXM7XG4kYWxsLWJ1dHRvbi1pbnB1dHMtaG92ZXI6ICAkYWxsLWJ1dHRvbnMtaG92ZXI7XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm92aWRlcyBhbiBlYXN5IHdheSB0byBpbmNsdWRlIGEgY2xlYXJmaXggZm9yIGNvbnRhaW5pbmcgZmxvYXRzLlxuLy8vXG4vLy8gQGxpbmsgaHR0cDovL2Nzc21vam8uY29tL2xhdGVzdF9uZXdfY2xlYXJmaXhfc29fZmFyL1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQ6OmFmdGVyIHtcbi8vLyAgICAgY2xlYXI6IGJvdGg7XG4vLy8gICAgIGNvbnRlbnQ6IFwiXCI7XG4vLy8gICAgIGRpc3BsYXk6IHRhYmxlO1xuLy8vICAgfVxuXG5AbWl4aW4gY2xlYXJmaXgge1xuICAmOjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gVHJ1bmNhdGVzIHRleHQgYW5kIGFkZHMgYW4gZWxsaXBzaXMgdG8gcmVwcmVzZW50IG92ZXJmbG93LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3aWR0aCBbMTAwJV1cbi8vLyAgIE1heC13aWR0aCBmb3IgdGhlIHN0cmluZyB0byByZXNwZWN0IGJlZm9yZSBiZWluZyB0cnVuY2F0ZWRcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBlbGxpcHNpcztcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuLy8vICAgICBtYXgtd2lkdGg6IDEwMCU7XG4vLy8gICAgIG92ZXJmbG93OiBoaWRkZW47XG4vLy8gICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuLy8vICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuLy8vICAgICB3b3JkLXdyYXA6IG5vcm1hbDtcbi8vLyAgIH1cblxuQG1peGluIGVsbGlwc2lzKCR3aWR0aDogMTAwJSkge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1heC13aWR0aDogJHdpZHRoO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgd29yZC13cmFwOiBub3JtYWw7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBHZW9yZ2lhIGZvbnQgc3RhY2suXG4vLy9cbi8vLyBAdHlwZSBMaXN0XG5cbiRnZW9yZ2lhOiBcIkdlb3JnaWFcIiwgXCJDYW1icmlhXCIsIFwiVGltZXMgTmV3IFJvbWFuXCIsIFwiVGltZXNcIiwgc2VyaWY7XG5cbi8vLyBIZWx2ZXRpY2EgZm9udCBzdGFjay5cbi8vL1xuLy8vIEB0eXBlIExpc3RcblxuJGhlbHZldGljYTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBcIkhlbHZldGljYVwiLCBcIlJvYm90b1wiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG5cbi8vLyBMdWNpZGEgR3JhbmRlIGZvbnQgc3RhY2suXG4vLy9cbi8vLyBAdHlwZSBMaXN0XG5cbiRsdWNpZGEtZ3JhbmRlOiBcIkx1Y2lkYSBHcmFuZGVcIiwgXCJUYWhvbWFcIiwgXCJWZXJkYW5hXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcblxuLy8vIE1vbm9zcGFjZSBmb250IHN0YWNrLlxuLy8vXG4vLy8gQHR5cGUgTGlzdFxuXG4kbW9ub3NwYWNlOiBcIkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ub1wiLCBcIkNvbnNvbGFzXCIsIFwiQ291cmllclwiLCBtb25vc3BhY2U7XG5cbi8vLyBWZXJkYW5hIGZvbnQgc3RhY2suXG4vLy9cbi8vLyBAdHlwZSBMaXN0XG5cbiR2ZXJkYW5hOiBcIlZlcmRhbmFcIiwgXCJHZW5ldmFcIiwgc2Fucy1zZXJpZjtcbiIsIi8vLyBIaWRlcyB0aGUgdGV4dCBpbiBhbiBlbGVtZW50LCBjb21tb25seSB1c2VkIHRvIHNob3cgYW4gaW1hZ2UuIFNvbWUgZWxlbWVudHMgd2lsbCBuZWVkIGJsb2NrLWxldmVsIHN0eWxlcyBhcHBsaWVkLlxuLy8vXG4vLy8gQGxpbmsgaHR0cDovL3plbGRtYW4uY29tLzIwMTIvMDMvMDEvcmVwbGFjaW5nLXRoZS05OTk5cHgtaGFjay1uZXctaW1hZ2UtcmVwbGFjZW1lbnRcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBoaWRlLXRleHQ7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIG92ZXJmbG93OiBoaWRkZW47XG4vLy8gICAgIHRleHQtaW5kZW50OiAxMDElO1xuLy8vICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuLy8vICAgfVxuLy8vXG4vLy8gQHRvZG8gUmVtb3ZlIGhlaWdodCBhcmd1bWVudCBpbiB2NS4wLjBcblxuQG1peGluIGhpZGUtdGV4dCgkaGVpZ2h0OiBudWxsKSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtaW5kZW50OiAxMDElO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gIEBpZiAkaGVpZ2h0IHtcbiAgICBAd2FybiBcIlRoZSBgaGlkZS10ZXh0YCBtaXhpbiBoYXMgY2hhbmdlZCBhbmQgbm8gbG9uZ2VyIHJlcXVpcmVzIGEgaGVpZ2h0LiBUaGUgaGVpZ2h0IGFyZ3VtZW50IHdpbGwgbm8gbG9uZ2VyIGJlIGFjY2VwdGVkIGluIHY1LjAuMFwiO1xuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm92aWRlcyBhIHF1aWNrIG1ldGhvZCBmb3IgdGFyZ2V0aW5nIGBtYXJnaW5gIG9uIHNwZWNpZmljIHNpZGVzIG9mIGEgYm94LiBVc2UgYSBgbnVsbGAgdmFsdWUgdG8g4oCcc2tpcOKAnSBhIHNpZGUuXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICR2YWxzXG4vLy8gICBMaXN0IG9mIGFyZ3VtZW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIG1hcmdpbihudWxsIDEwcHggM2VtIDIwdmgpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBtYXJnaW4tYm90dG9tOiAzZW07XG4vLy8gICAgIG1hcmdpbi1sZWZ0OiAyMHZoO1xuLy8vICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSB7bWl4aW59IGRpcmVjdGlvbmFsLXByb3BlcnR5XG4vLy9cbi8vLyBAb3V0cHV0IGBtYXJnaW5gXG5cbkBtaXhpbiBtYXJnaW4oJHZhbHMuLi4pIHtcbiAgJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZzogJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzO1xuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6IGZhbHNlICFnbG9iYWw7XG4gIEBpbmNsdWRlIGRpcmVjdGlvbmFsLXByb3BlcnR5KG1hcmdpbiwgZmFsc2UsICR2YWxzLi4uKTtcbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nICFnbG9iYWw7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm92aWRlcyBhIHF1aWNrIG1ldGhvZCBmb3IgdGFyZ2V0aW5nIGBwYWRkaW5nYCBvbiBzcGVjaWZpYyBzaWRlcyBvZiBhIGJveC4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkdmFsc1xuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBwYWRkaW5nKDEydmggbnVsbCAxMHB4IDUlKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgcGFkZGluZy1ib3R0b206IDEwcHg7XG4vLy8gICAgIHBhZGRpbmctbGVmdDogNSU7XG4vLy8gICAgIHBhZGRpbmctdG9wOiAxMnZoO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge21peGlufSBkaXJlY3Rpb25hbC1wcm9wZXJ0eVxuLy8vXG4vLy8gQG91dHB1dCBgcGFkZGluZ2BcblxuQG1peGluIHBhZGRpbmcoJHZhbHMuLi4pIHtcbiAgJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZzogJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzO1xuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6IGZhbHNlICFnbG9iYWw7XG4gIEBpbmNsdWRlIGRpcmVjdGlvbmFsLXByb3BlcnR5KHBhZGRpbmcsIGZhbHNlLCAkdmFscy4uLik7XG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZyAhZ2xvYmFsO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHNldHRpbmcgYW4gZWxlbWVudOKAmXMgcG9zaXRpb24uIFVzZSBhIGBudWxsYCB2YWx1ZSB0byDigJxza2lw4oCdIGEgc2lkZS5cbi8vL1xuLy8vIEBwYXJhbSB7UG9zaXRpb259ICRwb3NpdGlvbiBbcmVsYXRpdmVdXG4vLy8gICBBIENTUyBwb3NpdGlvbiB2YWx1ZVxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkY29vcmRpbmF0ZXMgW251bGwgbnVsbCBudWxsIG51bGxdXG4vLy8gICBMaXN0IG9mIHZhbHVlcyB0aGF0IGNvcnJlc3BvbmQgdG8gdGhlIDQtdmFsdWUgc3ludGF4IGZvciB0aGUgZWRnZXMgb2YgYSBib3hcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgMCBudWxsIG51bGwgMTBlbSk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGxlZnQ6IDEwZW07XG4vLy8gICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbi8vLyAgICAgdG9wOiAwO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBpcy1sZW5ndGhcbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IHVucGFja1xuXG5AbWl4aW4gcG9zaXRpb24oJHBvc2l0aW9uOiByZWxhdGl2ZSwgJGNvb3JkaW5hdGVzOiBudWxsIG51bGwgbnVsbCBudWxsKSB7XG4gIEBpZiB0eXBlLW9mKCRwb3NpdGlvbikgPT0gbGlzdCB7XG4gICAgJGNvb3JkaW5hdGVzOiAkcG9zaXRpb247XG4gICAgJHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxuXG4gICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmc6ICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncztcbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiBmYWxzZSAhZ2xvYmFsO1xuICAkY29vcmRpbmF0ZXM6IHVucGFjaygkY29vcmRpbmF0ZXMpO1xuXG4gICRvZmZzZXRzOiAoXG4gICAgdG9wOiAgICBudGgoJGNvb3JkaW5hdGVzLCAxKSxcbiAgICByaWdodDogIG50aCgkY29vcmRpbmF0ZXMsIDIpLFxuICAgIGJvdHRvbTogbnRoKCRjb29yZGluYXRlcywgMyksXG4gICAgbGVmdDogICBudGgoJGNvb3JkaW5hdGVzLCA0KVxuICApO1xuXG4gIHBvc2l0aW9uOiAkcG9zaXRpb247XG5cbiAgQGVhY2ggJG9mZnNldCwgJHZhbHVlIGluICRvZmZzZXRzIHtcbiAgICBAaWYgaXMtbGVuZ3RoKCR2YWx1ZSkge1xuICAgICAgI3skb2Zmc2V0fTogJHZhbHVlO1xuICAgIH1cbiAgfVxuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6ICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmcgIWdsb2JhbDtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIEEgbWl4aW4gZm9yIGdlbmVyYXRpbmcgdmVuZG9yIHByZWZpeGVzIG9uIG5vbi1zdGFuZGFyZGl6ZWQgcHJvcGVydGllcy5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkcHJvcGVydHlcbi8vLyAgIFByb3BlcnR5IHRvIHByZWZpeFxuLy8vXG4vLy8gQHBhcmFtIHsqfSAkdmFsdWVcbi8vLyAgIFZhbHVlIHRvIHVzZVxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkcHJlZml4ZXNcbi8vLyAgIFByZWZpeGVzIHRvIGRlZmluZVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIHByZWZpeGVyKGJvcmRlci1yYWRpdXMsIDEwcHgsIHdlYmtpdCBtcyBzcGVjKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAxMHB4O1xuLy8vICAgICAtbW96LWJvcmRlci1yYWRpdXM6IDEwcHg7XG4vLy8gICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSB7dmFyaWFibGV9ICRwcmVmaXgtZm9yLXdlYmtpdFxuLy8vIEByZXF1aXJlIHt2YXJpYWJsZX0gJHByZWZpeC1mb3ItbW96aWxsYVxuLy8vIEByZXF1aXJlIHt2YXJpYWJsZX0gJHByZWZpeC1mb3ItbWljcm9zb2Z0XG4vLy8gQHJlcXVpcmUge3ZhcmlhYmxlfSAkcHJlZml4LWZvci1vcGVyYVxuLy8vIEByZXF1aXJlIHt2YXJpYWJsZX0gJHByZWZpeC1mb3Itc3BlY1xuXG5AbWl4aW4gcHJlZml4ZXIoJHByb3BlcnR5LCAkdmFsdWUsICRwcmVmaXhlcykge1xuICBAZWFjaCAkcHJlZml4IGluICRwcmVmaXhlcyB7XG4gICAgQGlmICRwcmVmaXggPT0gd2Via2l0IHtcbiAgICAgIEBpZiAkcHJlZml4LWZvci13ZWJraXQge1xuICAgICAgICAtd2Via2l0LSN7JHByb3BlcnR5fTogJHZhbHVlO1xuICAgICAgfVxuICAgIH0gQGVsc2UgaWYgJHByZWZpeCA9PSBtb3oge1xuICAgICAgQGlmICRwcmVmaXgtZm9yLW1vemlsbGEge1xuICAgICAgICAtbW96LSN7JHByb3BlcnR5fTogJHZhbHVlO1xuICAgICAgfVxuICAgIH0gQGVsc2UgaWYgJHByZWZpeCA9PSBtcyB7XG4gICAgICBAaWYgJHByZWZpeC1mb3ItbWljcm9zb2Z0IHtcbiAgICAgICAgLW1zLSN7JHByb3BlcnR5fTogJHZhbHVlO1xuICAgICAgfVxuICAgIH0gQGVsc2UgaWYgJHByZWZpeCA9PSBvIHtcbiAgICAgIEBpZiAkcHJlZml4LWZvci1vcGVyYSB7XG4gICAgICAgIC1vLSN7JHByb3BlcnR5fTogJHZhbHVlO1xuICAgICAgfVxuICAgIH0gQGVsc2UgaWYgJHByZWZpeCA9PSBzcGVjIHtcbiAgICAgIEBpZiAkcHJlZml4LWZvci1zcGVjIHtcbiAgICAgICAgI3skcHJvcGVydHl9OiAkdmFsdWU7XG4gICAgICB9XG4gICAgfSBAZWxzZSAge1xuICAgICAgQHdhcm4gXCJVbnJlY29nbml6ZWQgcHJlZml4OiAjeyRwcmVmaXh9XCI7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBkaXNhYmxlLXByZWZpeC1mb3ItYWxsKCkge1xuICAkcHJlZml4LWZvci13ZWJraXQ6ICAgIGZhbHNlICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLW1vemlsbGE6ICAgZmFsc2UgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3ItbWljcm9zb2Z0OiBmYWxzZSAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1vcGVyYTogICAgIGZhbHNlICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLXNwZWM6ICAgICAgZmFsc2UgIWdsb2JhbDtcbn1cbiIsIkBtaXhpbiByZXRpbmEtaW1hZ2UoJGZpbGVuYW1lLCAkYmFja2dyb3VuZC1zaXplLCAkZXh0ZW5zaW9uOiBwbmcsICRyZXRpbmEtZmlsZW5hbWU6IG51bGwsICRyZXRpbmEtc3VmZml4OiBfMngsICRhc3NldC1waXBlbGluZTogJGFzc2V0LXBpcGVsaW5lKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZShcInJldGluYS1pbWFnZVwiKTtcblxuICBAaWYgJGFzc2V0LXBpcGVsaW5lIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBpbWFnZS11cmwoXCIjeyRmaWxlbmFtZX0uI3skZXh0ZW5zaW9ufVwiKTtcbiAgfSBAZWxzZSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogICAgICAgdXJsKFwiI3skZmlsZW5hbWV9LiN7JGV4dGVuc2lvbn1cIik7XG4gIH1cblxuICBAaW5jbHVkZSBoaWRwaSB7XG4gICAgQGlmICRhc3NldC1waXBlbGluZSB7XG4gICAgICBAaWYgJHJldGluYS1maWxlbmFtZSB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGltYWdlLXVybChcIiN7JHJldGluYS1maWxlbmFtZX0uI3skZXh0ZW5zaW9ufVwiKTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBpbWFnZS11cmwoXCIjeyRmaWxlbmFtZX0jeyRyZXRpbmEtc3VmZml4fS4jeyRleHRlbnNpb259XCIpO1xuICAgICAgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgQGlmICRyZXRpbmEtZmlsZW5hbWUge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIjeyRyZXRpbmEtZmlsZW5hbWV9LiN7JGV4dGVuc2lvbn1cIik7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiI3skZmlsZW5hbWV9I3skcmV0aW5hLXN1ZmZpeH0uI3skZXh0ZW5zaW9ufVwiKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBiYWNrZ3JvdW5kLXNpemU6ICRiYWNrZ3JvdW5kLXNpemU7XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFNldHMgdGhlIGB3aWR0aGAgYW5kIGBoZWlnaHRgIG9mIHRoZSBlbGVtZW50LlxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkc2l6ZVxuLy8vICAgQSBsaXN0IG9mIGF0IG1vc3QgMiBzaXplIHZhbHVlcy5cbi8vL1xuLy8vICAgSWYgdGhlcmUgaXMgb25seSBhIHNpbmdsZSB2YWx1ZSBpbiBgJHNpemVgIGl0IGlzIHVzZWQgZm9yIGJvdGggd2lkdGggYW5kIGhlaWdodC4gQWxsIHVuaXRzIGFyZSBzdXBwb3J0ZWQuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5maXJzdC1lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgc2l6ZSgyZW0pO1xuLy8vICAgfVxuLy8vXG4vLy8gICAuc2Vjb25kLWVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBzaXplKGF1dG8gMTBlbSk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZmlyc3QtZWxlbWVudCB7XG4vLy8gICAgIHdpZHRoOiAyZW07XG4vLy8gICAgIGhlaWdodDogMmVtO1xuLy8vICAgfVxuLy8vXG4vLy8gICAuc2Vjb25kLWVsZW1lbnQge1xuLy8vICAgICB3aWR0aDogYXV0bztcbi8vLyAgICAgaGVpZ2h0OiAxMGVtO1xuLy8vICAgfVxuLy8vXG4vLy8gQHRvZG8gUmVmYWN0b3IgaW4gNS4wLjAgdG8gdXNlIGEgY29tbWEtc2VwYXJhdGVkIGFyZ3VtZW50XG5cbkBtaXhpbiBzaXplKCR2YWx1ZSkge1xuICAkd2lkdGg6IG50aCgkdmFsdWUsIDEpO1xuICAkaGVpZ2h0OiAkd2lkdGg7XG5cbiAgQGlmIGxlbmd0aCgkdmFsdWUpID4gMSB7XG4gICAgJGhlaWdodDogbnRoKCR2YWx1ZSwgMik7XG4gIH1cblxuICAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nOiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M7XG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogZmFsc2UgIWdsb2JhbDtcblxuICBAaWYgaXMtc2l6ZSgkaGVpZ2h0KSB7XG4gICAgaGVpZ2h0OiAkaGVpZ2h0O1xuICB9IEBlbHNlIHtcbiAgICBAd2FybiBcImAjeyRoZWlnaHR9YCBpcyBub3QgYSB2YWxpZCBsZW5ndGggZm9yIHRoZSBgJGhlaWdodGAgcGFyYW1ldGVyIGluIHRoZSBgc2l6ZWAgbWl4aW4uXCI7XG4gIH1cblxuICBAaWYgaXMtc2l6ZSgkd2lkdGgpIHtcbiAgICB3aWR0aDogJHdpZHRoO1xuICB9IEBlbHNlIHtcbiAgICBAd2FybiBcImAjeyR3aWR0aH1gIGlzIG5vdCBhIHZhbGlkIGxlbmd0aCBmb3IgdGhlIGAkd2lkdGhgIHBhcmFtZXRlciBpbiB0aGUgYHNpemVgIG1peGluLlwiO1xuICB9XG5cbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nICFnbG9iYWw7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBHZW5lcmF0ZXMgdmFyaWFibGVzIGZvciBhbGwgdGV4dC1iYXNlZCBpbnB1dHMuIFBsZWFzZSBub3RlIHRoYXQgeW91IG11c3QgdXNlIGludGVycG9sYXRpb24gb24gdGhlIHZhcmlhYmxlOiBgI3skYWxsLXRleHQtaW5wdXRzfWAuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgICN7JGFsbC10ZXh0LWlucHV0c30ge1xuLy8vICAgICBib3JkZXI6IDFweCBzb2xpZCAjZjAwO1xuLy8vICAgfVxuLy8vXG4vLy8gICAjeyRhbGwtdGV4dC1pbnB1dHMtZm9jdXN9LFxuLy8vICAgI3skYWxsLXRleHQtaW5wdXRzLWhvdmVyfSB7XG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICMwZjA7XG4vLy8gICB9XG4vLy9cbi8vLyAgICN7JGFsbC10ZXh0LWlucHV0cy1hY3RpdmV9IHtcbi8vLyAgICAgYm9yZGVyOiAxcHggc29saWQgIzAwZjtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIGlucHV0W3R5cGU9XCJjb2xvclwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRlXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cImVtYWlsXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cIm1vbnRoXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cIm51bWJlclwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJzZWFyY2hcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwidGVsXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cInRleHRcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwidGltZVwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ1cmxcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwid2Vla1wiXSxcbi8vLyAgIHRleHRhcmVhIHtcbi8vLyAgICAgYm9yZGVyOiAxcHggc29saWQgI2YwMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgaW5wdXRbdHlwZT1cImNvbG9yXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGVcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwiZW1haWxcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwibW9udGhcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cInNlYXJjaFwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZWxcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwidGV4dFwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJ0aW1lXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cInVybFwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJ3ZWVrXCJdOmZvY3VzLFxuLy8vICAgdGV4dGFyZWE6Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwiY29sb3JcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZVwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZVwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJlbWFpbFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJtb250aFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJudW1iZXJcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwic2VhcmNoXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cInRlbFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZXh0XCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cInRpbWVcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwidXJsXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cIndlZWtcIl06aG92ZXIsXG4vLy8gICB0ZXh0YXJlYTpob3ZlciB7XG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICMwZjA7XG4vLy8gICB9XG4vLy9cbi8vLyAgIGlucHV0W3R5cGU9XCJjb2xvclwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZVwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJlbWFpbFwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwibW9udGhcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cIm51bWJlclwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cInNlYXJjaFwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwidGVsXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZXh0XCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ0aW1lXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ1cmxcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cIndlZWtcIl06YWN0aXZlLFxuLy8vICAgdGV4dGFyZWE6YWN0aXZlIHtcbi8vLyAgICAgYm9yZGVyOiAxcHggc29saWQgIzAwZjtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIGFzc2lnbi1pbnB1dHNcbi8vL1xuLy8vIEB0eXBlIExpc3RcblxuJHRleHQtaW5wdXRzLWxpc3Q6ICdpbnB1dFt0eXBlPVwiY29sb3JcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwiZGF0ZVwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJkYXRldGltZVwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJlbWFpbFwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJtb250aFwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJudW1iZXJcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwic2VhcmNoXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInRlbFwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJ0ZXh0XCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInRpbWVcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwidXJsXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cIndlZWtcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dDpub3QoW3R5cGVdKScsXG4gICAgICAgICAgICAgICAgICAgJ3RleHRhcmVhJztcblxuJHVzZXItb3V0cHV0LWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmc6ICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncztcbiRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogZmFsc2U7XG5cbiRhbGwtdGV4dC1pbnB1dHM6ICAgICAgICBhc3NpZ24taW5wdXRzKCR0ZXh0LWlucHV0cy1saXN0KTtcbiRhbGwtdGV4dC1pbnB1dHMtYWN0aXZlOiBhc3NpZ24taW5wdXRzKCR0ZXh0LWlucHV0cy1saXN0LCBhY3RpdmUpO1xuJGFsbC10ZXh0LWlucHV0cy1mb2N1czogIGFzc2lnbi1pbnB1dHMoJHRleHQtaW5wdXRzLWxpc3QsIGZvY3VzKTtcbiRhbGwtdGV4dC1pbnB1dHMtaG92ZXI6ICBhc3NpZ24taW5wdXRzKCR0ZXh0LWlucHV0cy1saXN0LCBob3Zlcik7XG5cbiRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogJHVzZXItb3V0cHV0LWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmc7XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBDU1MgY3ViaWMtYmV6aWVyIHRpbWluZyBmdW5jdGlvbnMuIFRpbWluZyBmdW5jdGlvbnMgY291cnRlc3kgb2YganF1ZXJ5LmVhc2llIChnaXRodWIuY29tL2phdWtpYS9lYXNpZSlcbi8vL1xuLy8vIFRpbWluZyBmdW5jdGlvbnMgYXJlIHRoZSBzYW1lIGFzIGRlbW9lZCBoZXJlOiBodHRwOi8vanF1ZXJ5dWkuY29tL3Jlc291cmNlcy9kZW1vcy9lZmZlY3QvZWFzaW5nLmh0bWxcbi8vL1xuLy8vIEB0eXBlIGN1YmljLWJlemllclxuXG4kZWFzZS1pbi1xdWFkOiAgICAgIGN1YmljLWJlemllcigwLjU1MCwgIDAuMDg1LCAwLjY4MCwgMC41MzApO1xuJGVhc2UtaW4tY3ViaWM6ICAgICBjdWJpYy1iZXppZXIoMC41NTAsICAwLjA1NSwgMC42NzUsIDAuMTkwKTtcbiRlYXNlLWluLXF1YXJ0OiAgICAgY3ViaWMtYmV6aWVyKDAuODk1LCAgMC4wMzAsIDAuNjg1LCAwLjIyMCk7XG4kZWFzZS1pbi1xdWludDogICAgIGN1YmljLWJlemllcigwLjc1NSwgIDAuMDUwLCAwLjg1NSwgMC4wNjApO1xuJGVhc2UtaW4tc2luZTogICAgICBjdWJpYy1iZXppZXIoMC40NzAsICAwLjAwMCwgMC43NDUsIDAuNzE1KTtcbiRlYXNlLWluLWV4cG86ICAgICAgY3ViaWMtYmV6aWVyKDAuOTUwLCAgMC4wNTAsIDAuNzk1LCAwLjAzNSk7XG4kZWFzZS1pbi1jaXJjOiAgICAgIGN1YmljLWJlemllcigwLjYwMCwgIDAuMDQwLCAwLjk4MCwgMC4zMzUpO1xuJGVhc2UtaW4tYmFjazogICAgICBjdWJpYy1iZXppZXIoMC42MDAsIC0wLjI4MCwgMC43MzUsIDAuMDQ1KTtcblxuJGVhc2Utb3V0LXF1YWQ6ICAgICBjdWJpYy1iZXppZXIoMC4yNTAsICAwLjQ2MCwgMC40NTAsIDAuOTQwKTtcbiRlYXNlLW91dC1jdWJpYzogICAgY3ViaWMtYmV6aWVyKDAuMjE1LCAgMC42MTAsIDAuMzU1LCAxLjAwMCk7XG4kZWFzZS1vdXQtcXVhcnQ6ICAgIGN1YmljLWJlemllcigwLjE2NSwgIDAuODQwLCAwLjQ0MCwgMS4wMDApO1xuJGVhc2Utb3V0LXF1aW50OiAgICBjdWJpYy1iZXppZXIoMC4yMzAsICAxLjAwMCwgMC4zMjAsIDEuMDAwKTtcbiRlYXNlLW91dC1zaW5lOiAgICAgY3ViaWMtYmV6aWVyKDAuMzkwLCAgMC41NzUsIDAuNTY1LCAxLjAwMCk7XG4kZWFzZS1vdXQtZXhwbzogICAgIGN1YmljLWJlemllcigwLjE5MCwgIDEuMDAwLCAwLjIyMCwgMS4wMDApO1xuJGVhc2Utb3V0LWNpcmM6ICAgICBjdWJpYy1iZXppZXIoMC4wNzUsICAwLjgyMCwgMC4xNjUsIDEuMDAwKTtcbiRlYXNlLW91dC1iYWNrOiAgICAgY3ViaWMtYmV6aWVyKDAuMTc1LCAgMC44ODUsIDAuMzIwLCAxLjI3NSk7XG5cbiRlYXNlLWluLW91dC1xdWFkOiAgY3ViaWMtYmV6aWVyKDAuNDU1LCAgMC4wMzAsIDAuNTE1LCAwLjk1NSk7XG4kZWFzZS1pbi1vdXQtY3ViaWM6IGN1YmljLWJlemllcigwLjY0NSwgIDAuMDQ1LCAwLjM1NSwgMS4wMDApO1xuJGVhc2UtaW4tb3V0LXF1YXJ0OiBjdWJpYy1iZXppZXIoMC43NzAsICAwLjAwMCwgMC4xNzUsIDEuMDAwKTtcbiRlYXNlLWluLW91dC1xdWludDogY3ViaWMtYmV6aWVyKDAuODYwLCAgMC4wMDAsIDAuMDcwLCAxLjAwMCk7XG4kZWFzZS1pbi1vdXQtc2luZTogIGN1YmljLWJlemllcigwLjQ0NSwgIDAuMDUwLCAwLjU1MCwgMC45NTApO1xuJGVhc2UtaW4tb3V0LWV4cG86ICBjdWJpYy1iZXppZXIoMS4wMDAsICAwLjAwMCwgMC4wMDAsIDEuMDAwKTtcbiRlYXNlLWluLW91dC1jaXJjOiAgY3ViaWMtYmV6aWVyKDAuNzg1LCAgMC4xMzUsIDAuMTUwLCAwLjg2MCk7XG4kZWFzZS1pbi1vdXQtYmFjazogIGN1YmljLWJlemllcigwLjY4MCwgLTAuNTUwLCAwLjI2NSwgMS41NTApO1xuIiwiQG1peGluIHRyaWFuZ2xlKCRzaXplLCAkY29sb3IsICRkaXJlY3Rpb24pIHtcbiAgJHdpZHRoOiBudGgoJHNpemUsIDEpO1xuICAkaGVpZ2h0OiBudGgoJHNpemUsIGxlbmd0aCgkc2l6ZSkpO1xuICAkZm9yZWdyb3VuZC1jb2xvcjogbnRoKCRjb2xvciwgMSk7XG4gICRiYWNrZ3JvdW5kLWNvbG9yOiBpZihsZW5ndGgoJGNvbG9yKSA9PSAyLCBudGgoJGNvbG9yLCAyKSwgdHJhbnNwYXJlbnQpO1xuICBoZWlnaHQ6IDA7XG4gIHdpZHRoOiAwO1xuXG4gIEBpZiAoJGRpcmVjdGlvbiA9PSB1cCkgb3IgKCRkaXJlY3Rpb24gPT0gZG93bikgb3IgKCRkaXJlY3Rpb24gPT0gcmlnaHQpIG9yICgkZGlyZWN0aW9uID09IGxlZnQpIHtcbiAgICAkd2lkdGg6ICR3aWR0aCAvIDI7XG4gICAgJGhlaWdodDogaWYobGVuZ3RoKCRzaXplKSA+IDEsICRoZWlnaHQsICRoZWlnaHQvMik7XG5cbiAgICBAaWYgJGRpcmVjdGlvbiA9PSB1cCB7XG4gICAgICBib3JkZXItYm90dG9tOiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLWxlZnQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSByaWdodCB7XG4gICAgICBib3JkZXItYm90dG9tOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItbGVmdDogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci10b3A6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gZG93biB7XG4gICAgICBib3JkZXItbGVmdDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXJpZ2h0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItdG9wOiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBsZWZ0IHtcbiAgICAgIGJvcmRlci1ib3R0b206ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1yaWdodDogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci10b3A6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9XG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gdXAtcmlnaHQpIG9yICgkZGlyZWN0aW9uID09IHVwLWxlZnQpIHtcbiAgICBib3JkZXItdG9wOiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuXG4gICAgQGlmICRkaXJlY3Rpb24gPT0gdXAtcmlnaHQge1xuICAgICAgYm9yZGVyLWxlZnQ6ICAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IHVwLWxlZnQge1xuICAgICAgYm9yZGVyLXJpZ2h0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfVxuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGRvd24tcmlnaHQpIG9yICgkZGlyZWN0aW9uID09IGRvd24tbGVmdCkge1xuICAgIGJvcmRlci1ib3R0b206ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG5cbiAgICBAaWYgJGRpcmVjdGlvbiA9PSBkb3duLXJpZ2h0IHtcbiAgICAgIGJvcmRlci1sZWZ0OiAgJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBkb3duLWxlZnQge1xuICAgICAgYm9yZGVyLXJpZ2h0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfVxuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGluc2V0LXVwKSB7XG4gICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogJGhlaWdodCAkd2lkdGg7XG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gaW5zZXQtZG93bikge1xuICAgIGJvcmRlci1jb2xvcjogJGZvcmVncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3I7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6ICRoZWlnaHQgJHdpZHRoO1xuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGluc2V0LXJpZ2h0KSB7XG4gICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogJHdpZHRoICRoZWlnaHQ7XG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gaW5zZXQtbGVmdCkge1xuICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQtY29sb3IgJGZvcmVncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3I7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6ICR3aWR0aCAkaGVpZ2h0O1xuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm92aWRlcyBhbiBlYXN5IHdheSB0byBjaGFuZ2UgdGhlIGB3b3JkLXdyYXBgIHByb3BlcnR5LlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR3cmFwIFticmVhay13b3JkXVxuLy8vICAgVmFsdWUgZm9yIHRoZSBgd29yZC1icmVha2AgcHJvcGVydHkuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC53cmFwcGVyIHtcbi8vLyAgICAgQGluY2x1ZGUgd29yZC13cmFwKGJyZWFrLXdvcmQpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLndyYXBwZXIge1xuLy8vICAgICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xuLy8vICAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XG4vLy8gICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbi8vLyAgIH1cblxuQG1peGluIHdvcmQtd3JhcCgkd3JhcDogYnJlYWstd29yZCkge1xuICBvdmVyZmxvdy13cmFwOiAkd3JhcDtcbiAgd29yZC13cmFwOiAkd3JhcDtcblxuICBAaWYgJHdyYXAgPT0gYnJlYWstd29yZCB7XG4gICAgd29yZC1icmVhazogYnJlYWstYWxsO1xuICB9IEBlbHNlIHtcbiAgICB3b3JkLWJyZWFrOiAkd3JhcDtcbiAgfVxufVxuIiwiLy8gVGhlIGZvbGxvd2luZyBmZWF0dXJlcyBoYXZlIGJlZW4gZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IE1BSk9SIHZlcnNpb24gcmVsZWFzZVxuXG5AbWl4aW4gaW5saW5lLWJsb2NrIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlKFwiaW5saW5lLWJsb2NrXCIpO1xuXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuQG1peGluIGJ1dHRvbiAoJHN0eWxlOiBzaW1wbGUsICRiYXNlLWNvbG9yOiAjNDI5NGYwLCAkdGV4dC1zaXplOiBpbmhlcml0LCAkcGFkZGluZzogN3B4IDE4cHgpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlKFwiYnV0dG9uXCIpO1xuXG4gIEBpZiB0eXBlLW9mKCRzdHlsZSkgPT0gc3RyaW5nIGFuZCB0eXBlLW9mKCRiYXNlLWNvbG9yKSA9PSBjb2xvciB7XG4gICAgQGluY2x1ZGUgYnV0dG9uc3R5bGUoJHN0eWxlLCAkYmFzZS1jb2xvciwgJHRleHQtc2l6ZSwgJHBhZGRpbmcpO1xuICB9XG5cbiAgQGlmIHR5cGUtb2YoJHN0eWxlKSA9PSBzdHJpbmcgYW5kIHR5cGUtb2YoJGJhc2UtY29sb3IpID09IG51bWJlciB7XG4gICAgJHBhZGRpbmc6ICR0ZXh0LXNpemU7XG4gICAgJHRleHQtc2l6ZTogJGJhc2UtY29sb3I7XG4gICAgJGJhc2UtY29sb3I6ICM0Mjk0ZjA7XG5cbiAgICBAaWYgJHBhZGRpbmcgPT0gaW5oZXJpdCB7XG4gICAgICAkcGFkZGluZzogN3B4IDE4cHg7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnV0dG9uc3R5bGUoJHN0eWxlLCAkYmFzZS1jb2xvciwgJHRleHQtc2l6ZSwgJHBhZGRpbmcpO1xuICB9XG5cbiAgQGlmIHR5cGUtb2YoJHN0eWxlKSA9PSBjb2xvciBhbmQgdHlwZS1vZigkYmFzZS1jb2xvcikgPT0gY29sb3Ige1xuICAgICRiYXNlLWNvbG9yOiAkc3R5bGU7XG4gICAgJHN0eWxlOiBzaW1wbGU7XG4gICAgQGluY2x1ZGUgYnV0dG9uc3R5bGUoJHN0eWxlLCAkYmFzZS1jb2xvciwgJHRleHQtc2l6ZSwgJHBhZGRpbmcpO1xuICB9XG5cbiAgQGlmIHR5cGUtb2YoJHN0eWxlKSA9PSBjb2xvciBhbmQgdHlwZS1vZigkYmFzZS1jb2xvcikgPT0gbnVtYmVyIHtcbiAgICAkcGFkZGluZzogJHRleHQtc2l6ZTtcbiAgICAkdGV4dC1zaXplOiAkYmFzZS1jb2xvcjtcbiAgICAkYmFzZS1jb2xvcjogJHN0eWxlO1xuICAgICRzdHlsZTogc2ltcGxlO1xuXG4gICAgQGlmICRwYWRkaW5nID09IGluaGVyaXQge1xuICAgICAgJHBhZGRpbmc6IDdweCAxOHB4O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJ1dHRvbnN0eWxlKCRzdHlsZSwgJGJhc2UtY29sb3IsICR0ZXh0LXNpemUsICRwYWRkaW5nKTtcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCRzdHlsZSkgPT0gbnVtYmVyIHtcbiAgICAkcGFkZGluZzogJGJhc2UtY29sb3I7XG4gICAgJHRleHQtc2l6ZTogJHN0eWxlO1xuICAgICRiYXNlLWNvbG9yOiAjNDI5NGYwO1xuICAgICRzdHlsZTogc2ltcGxlO1xuXG4gICAgQGlmICRwYWRkaW5nID09ICM0Mjk0ZjAge1xuICAgICAgJHBhZGRpbmc6IDdweCAxOHB4O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJ1dHRvbnN0eWxlKCRzdHlsZSwgJGJhc2UtY29sb3IsICR0ZXh0LXNpemUsICRwYWRkaW5nKTtcbiAgfVxuXG4gICY6ZGlzYWJsZWQge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgb3BhY2l0eTogMC41O1xuICB9XG59XG5cbi8vIFNlbGVjdG9yIFN0eWxlIEJ1dHRvblxuQG1peGluIGJ1dHRvbnN0eWxlKCR0eXBlLCAkYi1jb2xvciwgJHQtc2l6ZSwgJHBhZCkge1xuICAvLyBHcmF5c2NhbGUgYnV0dG9uXG4gIEBpZiAkdHlwZSA9PSBzaW1wbGUgYW5kICRiLWNvbG9yID09IGdyYXlzY2FsZSgkYi1jb2xvcikge1xuICAgIEBpbmNsdWRlIHNpbXBsZSgkYi1jb2xvciwgdHJ1ZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cblxuICBAaWYgJHR5cGUgPT0gc2hpbnkgYW5kICRiLWNvbG9yID09IGdyYXlzY2FsZSgkYi1jb2xvcikge1xuICAgIEBpbmNsdWRlIHNoaW55KCRiLWNvbG9yLCB0cnVlLCAkdC1zaXplLCAkcGFkKTtcbiAgfVxuXG4gIEBpZiAkdHlwZSA9PSBwaWxsIGFuZCAkYi1jb2xvciA9PSBncmF5c2NhbGUoJGItY29sb3IpIHtcbiAgICBAaW5jbHVkZSBwaWxsKCRiLWNvbG9yLCB0cnVlLCAkdC1zaXplLCAkcGFkKTtcbiAgfVxuXG4gIEBpZiAkdHlwZSA9PSBmbGF0IGFuZCAkYi1jb2xvciA9PSBncmF5c2NhbGUoJGItY29sb3IpIHtcbiAgICBAaW5jbHVkZSBmbGF0KCRiLWNvbG9yLCB0cnVlLCAkdC1zaXplLCAkcGFkKTtcbiAgfVxuXG4gIC8vIENvbG9yZWQgYnV0dG9uXG4gIEBpZiAkdHlwZSA9PSBzaW1wbGUge1xuICAgIEBpbmNsdWRlIHNpbXBsZSgkYi1jb2xvciwgZmFsc2UsICR0LXNpemUsICRwYWQpO1xuICB9XG5cbiAgQGVsc2UgaWYgJHR5cGUgPT0gc2hpbnkge1xuICAgIEBpbmNsdWRlIHNoaW55KCRiLWNvbG9yLCBmYWxzZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cblxuICBAZWxzZSBpZiAkdHlwZSA9PSBwaWxsIHtcbiAgICBAaW5jbHVkZSBwaWxsKCRiLWNvbG9yLCBmYWxzZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cblxuICBAZWxzZSBpZiAkdHlwZSA9PSBmbGF0IHtcbiAgICBAaW5jbHVkZSBmbGF0KCRiLWNvbG9yLCBmYWxzZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cbn1cblxuLy8gU2ltcGxlIEJ1dHRvblxuQG1peGluIHNpbXBsZSgkYmFzZS1jb2xvciwgJGdyYXlzY2FsZTogZmFsc2UsICR0ZXh0c2l6ZTogaW5oZXJpdCwgJHBhZGRpbmc6IDdweCAxOHB4KSB7XG4gICRjb2xvcjogICAgICAgICBoc2woMCwgMCwgMTAwJSk7XG4gICRib3JkZXI6ICAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAgOSUsICAkbGlnaHRuZXNzOiAtMTQlKTtcbiAgJGluc2V0LXNoYWRvdzogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IC04JSwgICRsaWdodG5lc3M6ICAxNSUpO1xuICAkc3RvcC1ncmFkaWVudDogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogIDklLCAgJGxpZ2h0bmVzczogLTExJSk7XG4gICR0ZXh0LXNoYWRvdzogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAgMTUlLCAkbGlnaHRuZXNzOiAtMTglKTtcblxuICBAaWYgaXMtbGlnaHQoJGJhc2UtY29sb3IpIHtcbiAgICAkY29sb3I6ICAgICAgIGhzbCgwLCAwLCAyMCUpO1xuICAgICR0ZXh0LXNoYWRvdzogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogMTAlLCAkbGlnaHRuZXNzOiA0JSk7XG4gIH1cblxuICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAkYm9yZGVyOiAgICAgICAgZ3JheXNjYWxlKCRib3JkZXIpO1xuICAgICRpbnNldC1zaGFkb3c6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdyk7XG4gICAgJHN0b3AtZ3JhZGllbnQ6IGdyYXlzY2FsZSgkc3RvcC1ncmFkaWVudCk7XG4gICAgJHRleHQtc2hhZG93OiAgIGdyYXlzY2FsZSgkdGV4dC1zaGFkb3cpO1xuICB9XG5cbiAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIDAgJGluc2V0LXNoYWRvdztcbiAgY29sb3I6ICRjb2xvcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6ICR0ZXh0c2l6ZTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCAoJGJhc2UtY29sb3IsICRzdG9wLWdyYWRpZW50KTtcbiAgcGFkZGluZzogJHBhZGRpbmc7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC1zaGFkb3c6IDAgMXB4IDAgJHRleHQtc2hhZG93O1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuXG4gICY6aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICAgICRiYXNlLWNvbG9yLWhvdmVyOiAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAtNCUsICRsaWdodG5lc3M6IC01JSk7XG4gICAgJGluc2V0LXNoYWRvdy1ob3ZlcjogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IC03JSwgJGxpZ2h0bmVzczogIDUlKTtcbiAgICAkc3RvcC1ncmFkaWVudC1ob3ZlcjogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogIDglLCAkbGlnaHRuZXNzOiAtMTQlKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGJhc2UtY29sb3ItaG92ZXI6ICAgIGdyYXlzY2FsZSgkYmFzZS1jb2xvci1ob3Zlcik7XG4gICAgICAkaW5zZXQtc2hhZG93LWhvdmVyOiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3ctaG92ZXIpO1xuICAgICAgJHN0b3AtZ3JhZGllbnQtaG92ZXI6IGdyYXlzY2FsZSgkc3RvcC1ncmFkaWVudC1ob3Zlcik7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50ICgkYmFzZS1jb2xvci1ob3ZlciwgJHN0b3AtZ3JhZGllbnQtaG92ZXIpO1xuXG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCAwICRpbnNldC1zaGFkb3ctaG92ZXI7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG5cbiAgJjphY3RpdmU6bm90KDpkaXNhYmxlZCksXG4gICY6Zm9jdXM6bm90KDpkaXNhYmxlZCkge1xuICAgICRib3JkZXItYWN0aXZlOiAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiA5JSwgJGxpZ2h0bmVzczogLTE0JSk7XG4gICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDclLCAkbGlnaHRuZXNzOiAtMTclKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGJvcmRlci1hY3RpdmU6ICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyLWFjdGl2ZSk7XG4gICAgICAkaW5zZXQtc2hhZG93LWFjdGl2ZTogZ3JheXNjYWxlKCRpbnNldC1zaGFkb3ctYWN0aXZlKTtcbiAgICB9XG5cbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLWFjdGl2ZTtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgOHB4IDRweCAkaW5zZXQtc2hhZG93LWFjdGl2ZSwgaW5zZXQgMCAwIDhweCA0cHggJGluc2V0LXNoYWRvdy1hY3RpdmU7XG4gIH1cbn1cblxuLy8gU2hpbnkgQnV0dG9uXG5AbWl4aW4gc2hpbnkoJGJhc2UtY29sb3IsICRncmF5c2NhbGU6IGZhbHNlLCAkdGV4dHNpemU6IGluaGVyaXQsICRwYWRkaW5nOiA3cHggMThweCkge1xuICAkY29sb3I6ICAgICAgICAgaHNsKDAsIDAsIDEwMCUpO1xuICAkYm9yZGVyOiAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtMTE3LCAkZ3JlZW46IC0xMTEsICRibHVlOiAtODEpO1xuICAkYm9yZGVyLWJvdHRvbTogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtMTI2LCAkZ3JlZW46IC0xMjcsICRibHVlOiAtMTIyKTtcbiAgJGZvdXJ0aC1zdG9wOiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTc5LCAgJGdyZWVuOiAtNzAsICAkYmx1ZTogLTQ2KTtcbiAgJGluc2V0LXNoYWRvdzogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogIDM3LCAgJGdyZWVuOiAgMjksICAkYmx1ZTogIDEyKTtcbiAgJHNlY29uZC1zdG9wOiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTU2LCAgJGdyZWVuOiAtNTAsICAkYmx1ZTogLTMzKTtcbiAgJHRleHQtc2hhZG93OiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTE0MCwgJGdyZWVuOiAtMTQxLCAkYmx1ZTogLTExNCk7XG4gICR0aGlyZC1zdG9wOiAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC04NiwgICRncmVlbjogLTc1LCAgJGJsdWU6IC00OCk7XG5cbiAgQGlmIGlzLWxpZ2h0KCRiYXNlLWNvbG9yKSB7XG4gICAgJGNvbG9yOiAgICAgICBoc2woMCwgMCwgMjAlKTtcbiAgICAkdGV4dC1zaGFkb3c6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDEwJSwgJGxpZ2h0bmVzczogNCUpO1xuICB9XG5cbiAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgJGJvcmRlcjogICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyKTtcbiAgICAkYm9yZGVyLWJvdHRvbTogZ3JheXNjYWxlKCRib3JkZXItYm90dG9tKTtcbiAgICAkZm91cnRoLXN0b3A6ICAgZ3JheXNjYWxlKCRmb3VydGgtc3RvcCk7XG4gICAgJGluc2V0LXNoYWRvdzogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93KTtcbiAgICAkc2Vjb25kLXN0b3A6ICAgZ3JheXNjYWxlKCRzZWNvbmQtc3RvcCk7XG4gICAgJHRleHQtc2hhZG93OiAgIGdyYXlzY2FsZSgkdGV4dC1zaGFkb3cpO1xuICAgICR0aGlyZC1zdG9wOiAgICBncmF5c2NhbGUoJHRoaXJkLXN0b3ApO1xuICB9XG5cbiAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50KHRvcCwgJGJhc2UtY29sb3IgMCUsICRzZWNvbmQtc3RvcCA1MCUsICR0aGlyZC1zdG9wIDUwJSwgJGZvdXJ0aC1zdG9wIDEwMCUpO1xuXG4gIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXI7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkYm9yZGVyLWJvdHRvbTtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIDAgJGluc2V0LXNoYWRvdztcbiAgY29sb3I6ICRjb2xvcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6ICR0ZXh0c2l6ZTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC1zaGFkb3c6IDAgLTFweCAxcHggJHRleHQtc2hhZG93O1xuXG4gICY6aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICAgICRmaXJzdC1zdG9wLWhvdmVyOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtMTMsICRncmVlbjogLTE1LCAkYmx1ZTogLTE4KTtcbiAgICAkc2Vjb25kLXN0b3AtaG92ZXI6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTY2LCAkZ3JlZW46IC02MiwgJGJsdWU6IC01MSk7XG4gICAgJHRoaXJkLXN0b3AtaG92ZXI6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC05MywgJGdyZWVuOiAtODUsICRibHVlOiAtNjYpO1xuICAgICRmb3VydGgtc3RvcC1ob3ZlcjogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtODYsICRncmVlbjogLTgwLCAkYmx1ZTogLTYzKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGZpcnN0LXN0b3AtaG92ZXI6ICBncmF5c2NhbGUoJGZpcnN0LXN0b3AtaG92ZXIpO1xuICAgICAgJHNlY29uZC1zdG9wLWhvdmVyOiBncmF5c2NhbGUoJHNlY29uZC1zdG9wLWhvdmVyKTtcbiAgICAgICR0aGlyZC1zdG9wLWhvdmVyOiAgZ3JheXNjYWxlKCR0aGlyZC1zdG9wLWhvdmVyKTtcbiAgICAgICRmb3VydGgtc3RvcC1ob3ZlcjogZ3JheXNjYWxlKCRmb3VydGgtc3RvcC1ob3Zlcik7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50KHRvcCwgJGZpcnN0LXN0b3AtaG92ZXIgIDAlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzZWNvbmQtc3RvcC1ob3ZlciA1MCUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXJkLXN0b3AtaG92ZXIgIDUwJSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZm91cnRoLXN0b3AtaG92ZXIgMTAwJSk7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG5cbiAgJjphY3RpdmU6bm90KDpkaXNhYmxlZCksXG4gICY6Zm9jdXM6bm90KDpkaXNhYmxlZCkge1xuICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC0xMTEsICRncmVlbjogLTExNiwgJGJsdWU6IC0xMjIpO1xuXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgICAkaW5zZXQtc2hhZG93LWFjdGl2ZTogZ3JheXNjYWxlKCRpbnNldC1zaGFkb3ctYWN0aXZlKTtcbiAgICB9XG5cbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMjBweCAwICRpbnNldC1zaGFkb3ctYWN0aXZlO1xuICB9XG59XG5cbi8vIFBpbGwgQnV0dG9uXG5AbWl4aW4gcGlsbCgkYmFzZS1jb2xvciwgJGdyYXlzY2FsZTogZmFsc2UsICR0ZXh0c2l6ZTogaW5oZXJpdCwgJHBhZGRpbmc6IDdweCAxOHB4KSB7XG4gICRjb2xvcjogICAgICAgICBoc2woMCwgMCwgMTAwJSk7XG4gICRib3JkZXItYm90dG9tOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA4LCAkc2F0dXJhdGlvbjogLTExJSwgJGxpZ2h0bmVzczogLTI2JSk7XG4gICRib3JkZXItc2lkZXM6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA0LCAkc2F0dXJhdGlvbjogLTIxJSwgJGxpZ2h0bmVzczogLTIxJSk7XG4gICRib3JkZXItdG9wOiAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IC0xLCAkc2F0dXJhdGlvbjogLTMwJSwgJGxpZ2h0bmVzczogLTE1JSk7XG4gICRpbnNldC1zaGFkb3c6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IC0xLCAkc2F0dXJhdGlvbjogLTElLCAgJGxpZ2h0bmVzczogIDclKTtcbiAgJHN0b3AtZ3JhZGllbnQ6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDgsICRzYXR1cmF0aW9uOiAgMTQlLCAkbGlnaHRuZXNzOiAtMTAlKTtcbiAgJHRleHQtc2hhZG93OiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDUsICRzYXR1cmF0aW9uOiAtMTklLCAkbGlnaHRuZXNzOiAtMTUlKTtcblxuICBAaWYgaXMtbGlnaHQoJGJhc2UtY29sb3IpIHtcbiAgICAkY29sb3I6ICAgICAgIGhzbCgwLCAwLCAyMCUpO1xuICAgICR0ZXh0LXNoYWRvdzogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogMTAlLCAkbGlnaHRuZXNzOiA0JSk7XG4gIH1cblxuICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAkYm9yZGVyLWJvdHRvbTogZ3JheXNjYWxlKCRib3JkZXItYm90dG9tKTtcbiAgICAkYm9yZGVyLXNpZGVzOiAgZ3JheXNjYWxlKCRib3JkZXItc2lkZXMpO1xuICAgICRib3JkZXItdG9wOiAgICBncmF5c2NhbGUoJGJvcmRlci10b3ApO1xuICAgICRpbnNldC1zaGFkb3c6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdyk7XG4gICAgJHN0b3AtZ3JhZGllbnQ6IGdyYXlzY2FsZSgkc3RvcC1ncmFkaWVudCk7XG4gICAgJHRleHQtc2hhZG93OiAgIGdyYXlzY2FsZSgkdGV4dC1zaGFkb3cpO1xuICB9XG5cbiAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci10b3A7XG4gIGJvcmRlci1jb2xvcjogJGJvcmRlci10b3AgJGJvcmRlci1zaWRlcyAkYm9yZGVyLWJvdHRvbTtcbiAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCAwICRpbnNldC1zaGFkb3c7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAkdGV4dHNpemU7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQgKCRiYXNlLWNvbG9yLCAkc3RvcC1ncmFkaWVudCk7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC1zaGFkb3c6IDAgLTFweCAxcHggJHRleHQtc2hhZG93O1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuXG4gICY6aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICAgICRiYXNlLWNvbG9yLWhvdmVyOiAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGlnaHRuZXNzOiAtNC41JSk7XG4gICAgJGJvcmRlci1ib3R0b206ICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDgsICRzYXR1cmF0aW9uOiAgMTMuNSUsICRsaWdodG5lc3M6IC0zMiUpO1xuICAgICRib3JkZXItc2lkZXM6ICAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA0LCAkc2F0dXJhdGlvbjogLTIlLCAgICAkbGlnaHRuZXNzOiAtMjclKTtcbiAgICAkYm9yZGVyLXRvcDogICAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAtMSwgJHNhdHVyYXRpb246IC0xNyUsICAgJGxpZ2h0bmVzczogLTIxJSk7XG4gICAgJGluc2V0LXNoYWRvdy1ob3ZlcjogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgICAgICAgICAgICRzYXR1cmF0aW9uOiAtMSUsICAgICRsaWdodG5lc3M6ICAzJSk7XG4gICAgJHN0b3AtZ3JhZGllbnQtaG92ZXI6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDgsICRzYXR1cmF0aW9uOiAtNCUsICAgICRsaWdodG5lc3M6IC0xNS41JSk7XG4gICAgJHRleHQtc2hhZG93LWhvdmVyOiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDUsICRzYXR1cmF0aW9uOiAtNSUsICAgICRsaWdodG5lc3M6IC0yMiUpO1xuXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgICAkYmFzZS1jb2xvci1ob3ZlcjogICAgZ3JheXNjYWxlKCRiYXNlLWNvbG9yLWhvdmVyKTtcbiAgICAgICRib3JkZXItYm90dG9tOiAgICAgICBncmF5c2NhbGUoJGJvcmRlci1ib3R0b20pO1xuICAgICAgJGJvcmRlci1zaWRlczogICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyLXNpZGVzKTtcbiAgICAgICRib3JkZXItdG9wOiAgICAgICAgICBncmF5c2NhbGUoJGJvcmRlci10b3ApO1xuICAgICAgJGluc2V0LXNoYWRvdy1ob3ZlcjogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93LWhvdmVyKTtcbiAgICAgICRzdG9wLWdyYWRpZW50LWhvdmVyOiBncmF5c2NhbGUoJHN0b3AtZ3JhZGllbnQtaG92ZXIpO1xuICAgICAgJHRleHQtc2hhZG93LWhvdmVyOiAgIGdyYXlzY2FsZSgkdGV4dC1zaGFkb3ctaG92ZXIpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCAoJGJhc2UtY29sb3ItaG92ZXIsICRzdG9wLWdyYWRpZW50LWhvdmVyKTtcblxuICAgIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci10b3A7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLXRvcCAkYm9yZGVyLXNpZGVzICRib3JkZXItYm90dG9tO1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgMCAkaW5zZXQtc2hhZG93LWhvdmVyO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0ZXh0LXNoYWRvdzogMCAtMXB4IDFweCAkdGV4dC1zaGFkb3ctaG92ZXI7XG4gIH1cblxuICAmOmFjdGl2ZTpub3QoOmRpc2FibGVkKSxcbiAgJjpmb2N1czpub3QoOmRpc2FibGVkKSB7XG4gICAgJGFjdGl2ZS1jb2xvcjogICAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IDQsICAkc2F0dXJhdGlvbjogLTEyJSwgICRsaWdodG5lc3M6IC0xMCUpO1xuICAgICRib3JkZXItYWN0aXZlOiAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiA2LCAgJHNhdHVyYXRpb246IC0yLjUlLCAkbGlnaHRuZXNzOiAtMzAlKTtcbiAgICAkYm9yZGVyLWJvdHRvbS1hY3RpdmU6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogMTEsICRzYXR1cmF0aW9uOiAgNiUsICAgJGxpZ2h0bmVzczogLTMxJSk7XG4gICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IDksICAkc2F0dXJhdGlvbjogIDIlLCAgICRsaWdodG5lc3M6IC0yMS41JSk7XG4gICAgJHRleHQtc2hhZG93LWFjdGl2ZTogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IDUsICAkc2F0dXJhdGlvbjogLTEyJSwgICRsaWdodG5lc3M6IC0yMS41JSk7XG5cbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRhY3RpdmUtY29sb3I6ICAgICAgICAgZ3JheXNjYWxlKCRhY3RpdmUtY29sb3IpO1xuICAgICAgJGJvcmRlci1hY3RpdmU6ICAgICAgICBncmF5c2NhbGUoJGJvcmRlci1hY3RpdmUpO1xuICAgICAgJGJvcmRlci1ib3R0b20tYWN0aXZlOiBncmF5c2NhbGUoJGJvcmRlci1ib3R0b20tYWN0aXZlKTtcbiAgICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3ctYWN0aXZlKTtcbiAgICAgICR0ZXh0LXNoYWRvdy1hY3RpdmU6ICAgZ3JheXNjYWxlKCR0ZXh0LXNoYWRvdy1hY3RpdmUpO1xuICAgIH1cblxuICAgIGJhY2tncm91bmQ6ICRhY3RpdmUtY29sb3I7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci1hY3RpdmU7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRib3JkZXItYm90dG9tLWFjdGl2ZTtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgNnB4IDNweCAkaW5zZXQtc2hhZG93LWFjdGl2ZTtcbiAgICB0ZXh0LXNoYWRvdzogMCAtMXB4IDFweCAkdGV4dC1zaGFkb3ctYWN0aXZlO1xuICB9XG59XG5cbi8vIEZsYXQgQnV0dG9uXG5AbWl4aW4gZmxhdCgkYmFzZS1jb2xvciwgJGdyYXlzY2FsZTogZmFsc2UsICR0ZXh0c2l6ZTogaW5oZXJpdCwgJHBhZGRpbmc6IDdweCAxOHB4KSB7XG4gICRjb2xvcjogICAgICAgICBoc2woMCwgMCwgMTAwJSk7XG5cbiAgQGlmIGlzLWxpZ2h0KCRiYXNlLWNvbG9yKSB7XG4gICAgJGNvbG9yOiAgICAgICBoc2woMCwgMCwgMjAlKTtcbiAgfVxuXG4gIGJhY2tncm91bmQtY29sb3I6ICRiYXNlLWNvbG9yO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGJvcmRlcjogMDtcbiAgY29sb3I6ICRjb2xvcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6ICR0ZXh0c2l6ZTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG5cbiAgJjpob3Zlcjpub3QoOmRpc2FibGVkKXtcbiAgICAkYmFzZS1jb2xvci1ob3ZlcjogICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogNCUsICRsaWdodG5lc3M6IDUlKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGJhc2UtY29sb3ItaG92ZXI6IGdyYXlzY2FsZSgkYmFzZS1jb2xvci1ob3Zlcik7XG4gICAgfVxuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhc2UtY29sb3ItaG92ZXI7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG5cbiAgJjphY3RpdmU6bm90KDpkaXNhYmxlZCksXG4gICY6Zm9jdXM6bm90KDpkaXNhYmxlZCkge1xuICAgICRiYXNlLWNvbG9yLWFjdGl2ZTogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogLTQlLCAkbGlnaHRuZXNzOiAtNSUpO1xuXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgICAkYmFzZS1jb2xvci1hY3RpdmU6IGdyYXlzY2FsZSgkYmFzZS1jb2xvci1hY3RpdmUpO1xuICAgIH1cblxuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYXNlLWNvbG9yLWFjdGl2ZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbn1cblxuLy8gRmxleGlibGUgZ3JpZFxuQGZ1bmN0aW9uIGZsZXgtZ3JpZCgkY29sdW1ucywgJGNvbnRhaW5lci1jb2x1bW5zOiAkZmctbWF4LWNvbHVtbnMpIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGBmbGV4LWdyaWRgIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgXCIgK1xuICAgIFwicmVtb3ZlZCBpbiA1LjAuMC4gRm9yIGdyaWQgZnVuY3Rpb25zLCBjaGVjayBvdXQgQm91cmJvbidzIHNpc3RlciBsaWJyYXJ5XCIgK1xuICAgIFwiTmVhdC5cIjtcbiAgfVxuXG4gICR3aWR0aDogJGNvbHVtbnMgKiAkZmctY29sdW1uICsgKCRjb2x1bW5zIC0gMSkgKiAkZmctZ3V0dGVyO1xuICAkY29udGFpbmVyLXdpZHRoOiAkY29udGFpbmVyLWNvbHVtbnMgKiAkZmctY29sdW1uICsgKCRjb250YWluZXItY29sdW1ucyAtIDEpICogJGZnLWd1dHRlcjtcbiAgQHJldHVybiBwZXJjZW50YWdlKCR3aWR0aCAvICRjb250YWluZXItd2lkdGgpO1xufVxuXG4vLyBGbGV4aWJsZSBndXR0ZXJcbkBmdW5jdGlvbiBmbGV4LWd1dHRlcigkY29udGFpbmVyLWNvbHVtbnM6ICRmZy1tYXgtY29sdW1ucywgJGd1dHRlcjogJGZnLWd1dHRlcikge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYGZsZXgtZ3V0dGVyYCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIFwiICtcbiAgICBcInJlbW92ZWQgaW4gNS4wLjAuIEZvciBncmlkIGZ1bmN0aW9ucywgY2hlY2sgb3V0IEJvdXJib24ncyBzaXN0ZXIgbGlicmFyeVwiICtcbiAgICBcIk5lYXQuXCI7XG4gIH1cblxuICAkY29udGFpbmVyLXdpZHRoOiAkY29udGFpbmVyLWNvbHVtbnMgKiAkZmctY29sdW1uICsgKCRjb250YWluZXItY29sdW1ucyAtIDEpICogJGZnLWd1dHRlcjtcbiAgQHJldHVybiBwZXJjZW50YWdlKCRndXR0ZXIgLyAkY29udGFpbmVyLXdpZHRoKTtcbn1cblxuQGZ1bmN0aW9uIGdyaWQtd2lkdGgoJG4pIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGBncmlkLXdpZHRoYCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIFwiICtcbiAgICBcInJlbW92ZWQgaW4gNS4wLjAuIEZvciBncmlkIGZ1bmN0aW9ucywgY2hlY2sgb3V0IEJvdXJib24ncyBzaXN0ZXIgbGlicmFyeVwiICtcbiAgICBcIk5lYXQuXCI7XG4gIH1cblxuICBAcmV0dXJuICRuICogJGd3LWNvbHVtbiArICgkbiAtIDEpICogJGd3LWd1dHRlcjtcbn1cblxuQGZ1bmN0aW9uIGdvbGRlbi1yYXRpbygkdmFsdWUsICRpbmNyZW1lbnQpIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGBnb2xkZW4tcmF0aW9gIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgXCIgK1xuICAgIFwicmVtb3ZlZCBpbiA1LjAuMC4gWW91IGNhbiB1c2UgdGhlIGBtb2R1bGFyLXNjYWxlYCBmdW5jdGlvbiBpbnN0ZWFkLlwiO1xuICB9XG5cbiAgQHJldHVybiBtb2R1bGFyLXNjYWxlKCRpbmNyZW1lbnQsICR2YWx1ZSwgJHJhdGlvOiAkZ29sZGVuKTtcbn1cblxuQG1peGluIGJveC1zaXppbmcoJGJveCkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImJveC1zaXppbmdcIik7XG5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LXNpemluZywgJGJveCwgd2Via2l0IG1veiBzcGVjKTtcbn1cbiIsIi8vIFN1c3lcbi8vID09PT1cblxuQGltcG9ydCAnc3VzeS9sYW5ndWFnZS9zdXN5JztcbiIsIi8vIFN1c3kgTmV4dCBTeW50YXhcbi8vID09PT09PT09PT09PT09PT1cblxuJHN1c3ktdmVyc2lvbjogMi4xO1xuXG5AaW1wb3J0IFwiLi4vc3VcIjtcbkBpbXBvcnQgXCIuLi9vdXRwdXQvZmxvYXRcIjtcblxuQGltcG9ydCBcInN1c3kvc2V0dGluZ3NcIjtcbkBpbXBvcnQgXCJzdXN5L3ZhbGlkYXRpb25cIjtcbkBpbXBvcnQgXCJzdXN5L2dyaWRzXCI7XG5AaW1wb3J0IFwic3VzeS9ib3gtc2l6aW5nXCI7XG5AaW1wb3J0IFwic3VzeS9jb250ZXh0XCI7XG5AaW1wb3J0IFwic3VzeS9iYWNrZ3JvdW5kXCI7XG5AaW1wb3J0IFwic3VzeS9jb250YWluZXJcIjtcbkBpbXBvcnQgXCJzdXN5L3NwYW5cIjtcbkBpbXBvcnQgXCJzdXN5L2d1dHRlcnNcIjtcbkBpbXBvcnQgXCJzdXN5L2lzb2xhdGVcIjtcbkBpbXBvcnQgXCJzdXN5L2dhbGxlcnlcIjtcbkBpbXBvcnQgXCJzdXN5L3Jvd3NcIjtcbkBpbXBvcnQgXCJzdXN5L21hcmdpbnNcIjtcbkBpbXBvcnQgXCJzdXN5L3BhZGRpbmdcIjtcbkBpbXBvcnQgXCJzdXN5L2JsZWVkXCI7XG5AaW1wb3J0IFwic3VzeS9icmVha3BvaW50LXBsdWdpblwiO1xuIiwiLy8gU3Vcbi8vID09XG5cbkBpbXBvcnQgXCJzdS91dGlsaXRpZXNcIjtcbkBpbXBvcnQgXCJzdS9zZXR0aW5nc1wiO1xuQGltcG9ydCBcInN1L3ZhbGlkYXRpb25cIjtcbkBpbXBvcnQgXCJzdS9ncmlkXCI7XG4iLCIvLyBNYXAgRnVuY3Rpb25zXG4vLyA9PT09PT09PT09PT09XG5cblxuLy8gVHJ1bmNhdGUgTGlzdFxuLy8gLS0tLS0tLS0tLS0tLVxuLy8gLSBSZXR1cm4gYSBsaXN0LCB0cnVuY2F0ZWQgdG8gYSBnaXZlbiBsZW5ndGhcbkBmdW5jdGlvbiBfc3VzeS10cnVuY2F0ZS1saXN0KFxuICAkbGlzdCxcbiAgJGxlbmd0aFxuKSB7XG4gICRfcmV0dXJuOiAoKTtcblxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIGxlbmd0aCgkbGlzdCkge1xuICAgICRfcmV0dXJuOiBpZigkaSA8PSAkbGVuZ3RoLCBhcHBlbmQoJF9yZXR1cm4sIG50aCgkbGlzdCwgJGkpKSwgJF9yZXR1cm4pO1xuICB9XG5cbiAgQHJldHVybiAkX3JldHVybjtcbn1cblxuXG4vLyBEZWVwIEdldFxuLy8gLS0tLS0tLS1cbi8vIC0gUmV0dXJuIGEgdmFsdWUgZGVlcCBpbiBuZXN0ZWQgbWFwc1xuQGZ1bmN0aW9uIF9zdXN5LWRlZXAtZ2V0KFxuICAkbWFwLFxuICAka2V5cy4uLlxuKSB7XG4gICRfcmV0dXJuOiAkbWFwO1xuXG4gIEBlYWNoICRrZXkgaW4gJGtleXMge1xuICAgIEBpZiB0eXBlLW9mKCRfcmV0dXJuKSA9PSBtYXAge1xuICAgICAgJF9yZXR1cm46IG1hcC1nZXQoJF9yZXR1cm4sICRrZXkpO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJF9yZXR1cm47XG59XG5cblxuLy8gRGVlcCBTZXRcbi8vIC0tLS0tLS0tXG4vLyAtIFNldCBhIHZhbHVlIGRlZXAgaW4gbmVzdGVkIG1hcHNcbkBmdW5jdGlvbiBfc3VzeS1kZWVwLXNldChcbiAgJG1hcCxcbiAgJGtleXMtdmFsdWUuLi5cbikge1xuICAkX3ZhbHVlOiBudGgoJGtleXMtdmFsdWUsIC0xKTtcbiAgJF9rZXlzOiBfc3VzeS10cnVuY2F0ZS1saXN0KCRrZXlzLXZhbHVlLCBsZW5ndGgoJGtleXMtdmFsdWUpIC0gMSk7XG4gICRfbGVuZ3RoOiBsZW5ndGgoJF9rZXlzKTtcbiAgJF9yZXR1cm46ICgpO1xuXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJF9sZW5ndGgge1xuICAgICRfbjogMCAtICRpO1xuICAgICRfbGV2ZWw6IF9zdXN5LXRydW5jYXRlLWxpc3QoJF9rZXlzLCAkX2xlbmd0aCArICRfbik7XG4gICAgJF9sZXZlbDogX3N1c3ktZGVlcC1nZXQoJG1hcCwgJF9sZXZlbC4uLik7XG4gICAgJF9tZXJnZTogbnRoKCRfa2V5cywgJF9uKTtcbiAgICAkX21lcmdlOiAoJF9tZXJnZTogJF92YWx1ZSk7XG4gICAgJF9yZXR1cm46IGlmKCRfbGV2ZWwsIG1hcC1tZXJnZSgkX2xldmVsLCAkX21lcmdlKSwgJF9tZXJnZSk7XG4gICAgJF92YWx1ZTogJF9yZXR1cm47XG4gIH1cblxuICBAcmV0dXJuICRfcmV0dXJuO1xufVxuXG5cbi8vIERlZXAgTWVyZ2Vcbi8vIC0tLS0tLS0tLS1cbi8vIFJldHVybiAyIG9iamVjdHMgb2YgYW55IGRlcHRoLCBtZXJnZWRcbkBmdW5jdGlvbiBfc3VzeS1kZWVwLW1lcmdlKFxuICAkbWFwMSxcbiAgJG1hcDJcbikge1xuXG4gIEBpZiB0eXBlLW9mKCRtYXAxKSAhPSBtYXAgb3IgdHlwZS1vZigkbWFwMikgIT0gbWFwIHtcbiAgICAkbWFwMTogJG1hcDI7XG4gIH0gQGVsc2Uge1xuICAgIEBlYWNoICRrZXksICR2YWx1ZSBpbiAkbWFwMiB7XG4gICAgICAkX25ldzogKCRrZXk6IF9zdXN5X2RlZXAtbWVyZ2UobWFwLWdldCgkbWFwMSwgJGtleSksICR2YWx1ZSkpO1xuICAgICAgJG1hcDE6IG1hcC1tZXJnZSgkbWFwMSwgJF9uZXcpO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJG1hcDE7XG59XG5cblxuLy8gRGVlcCBIYXMtS2V5XG4vLyAtLS0tLS0tLS0tLS1cbi8vIC0gUmV0dXJuIHRydWUgaWYgYSBkZWVwIGtleSBleGlzdHNcbkBmdW5jdGlvbiBfc3VzeS1kZWVwLWhhcy1rZXkoXG4gICRtYXAsXG4gICRrZXlzLi4uXG4pIHtcbiAgJF9yZXR1cm46IG51bGw7XG4gICRfc3RvcDogZmFsc2U7XG5cbiAgQGVhY2ggJGtleSBpbiAka2V5cyB7XG4gICAgQGlmIG5vdCgkX3N0b3ApIHtcbiAgICAgICRfcmV0dXJuOiBtYXAtaGFzLWtleSgkbWFwLCAka2V5KTtcbiAgICB9XG5cbiAgICBAaWYgJF9yZXR1cm4ge1xuICAgICAgJG1hcDogbWFwLWdldCgkbWFwLCAka2V5KTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICRfc3RvcDogdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRfcmV0dXJuO1xufVxuIiwiLy8gU2V0dGluZ3Ncbi8vID09PT09PT09XG5cbi8vIFZlcnNpb25cbi8vIC0tLS0tLS1cbiRzdS12ZXJzaW9uOiAxLjE7XG5cblxuLy8gRGVmYXVsdCBTZXR0aW5nc1xuLy8gLS0tLS0tLS0tLS0tLS0tLVxuLy8gUFJJVkFURTogVGhlIGJhc2ljIHNldHRpbmdzXG4kc3VzeS1kZWZhdWx0czogKFxuICBjb2x1bW5zOiA0LFxuICBndXR0ZXJzOiAuMjUsXG4pO1xuXG5cbi8vIFVzZXIgU2V0dGluZ3Ncbi8vIC0tLS0tLS0tLS0tLS1cbi8vIC0gRGVmaW5lIHRoZSAkc3VzeSB2YXJpYWJsZSB3aXRoIGEgbWFwIG9mIHlvdXIgb3duIHNldHRpbmdzLlxuLy8gLSBTZXQgRUlUSEVSICRjb2x1bW4td2lkdGggT1IgJGNvbnRhaW5lclxuLy8gLSBVc2UgJGNvbHVtbi13aWR0aCBmb3Igc3RhdGljIGxheW91dHNcbiRzdXN5OiAoKSAhZGVmYXVsdDtcblxuXG4vLyBTdXN5IERlZmF1bHRzXG4vLyAtLS0tLS0tLS0tLS0tXG4vLyBQUklWQVRFOiBBZGQgZGVmYXVsdHMgdG8gU3VzeVxuQG1peGluIHN1c3ktZGVmYXVsdHMoXG4gICRkZWZhdWx0c1xuKSB7XG4gICRzdXN5LWRlZmF1bHRzOiBtYXAtbWVyZ2UoJHN1c3ktZGVmYXVsdHMsICRkZWZhdWx0cykgIWdsb2JhbDtcbn1cblxuXG4vLyBTdXN5IFNldFxuLy8gLS0tLS0tLS1cbi8vIENoYW5nZSBvbmUgc2V0dGluZ1xuLy8gLSAka2V5ICAgOiBzZXR0aW5nIG5hbWVcbi8vIC0gJHZhbHVlIDogc2V0dGluZyB2YWx1ZVxuQG1peGluIHN1c3ktc2V0KFxuICAka2V5LXZhbHVlLi4uXG4pIHtcbiAgJHN1c3k6IF9zdXN5LWRlZXAtc2V0KCRzdXN5LCAka2V5LXZhbHVlLi4uKSAhZ2xvYmFsO1xufVxuXG5cbi8vIFN1c3kgR2V0XG4vLyAtLS0tLS0tLVxuLy8gUmV0dXJuIG9uZSBzZXR0aW5nIGZyb20gYSBncmlkXG4vLyAtICRrZXkgICAgIDogPGtleXdvcmQ+XG4vLyAtICRsYXlvdXQgIDogPHNldHRpbmdzPlxuQGZ1bmN0aW9uIHN1c3ktZ2V0KFxuICAka2V5LFxuICAkbGF5b3V0OiBtYXAtbWVyZ2UoJHN1c3ktZGVmYXVsdHMsICRzdXN5KVxuKSB7XG4gICRsYXlvdXQ6IHBhcnNlLWdyaWQoJGxheW91dCk7XG4gICRfb3B0aW9uczogJGxheW91dCAkc3VzeSAkc3VzeS1kZWZhdWx0cztcbiAgJF9icmVhazogZmFsc2U7XG4gICRfcmV0dXJuOiBudWxsO1xuXG4gIEBlYWNoICRvcHQgaW4gJF9vcHRpb25zIHtcbiAgICBAaWYgdHlwZS1vZigkb3B0KSA9PSBtYXAgYW5kIG5vdCgkX2JyZWFrKSB7XG4gICAgICAkX2tleXNldDogX3N1c3ktZGVlcC1oYXMta2V5KCRvcHQsICRrZXkuLi4pO1xuICAgICAgQGlmICRfa2V5c2V0IHtcbiAgICAgICAgJF9yZXR1cm46IF9zdXN5LWRlZXAtZ2V0KCRvcHQsICRrZXkuLi4pO1xuICAgICAgICAkX2JyZWFrOiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJF9yZXR1cm47XG59XG4iLCIvLyBNYXRoIFZhbGlkYXRpb25cbi8vID09PT09PT09PT09PT09PVxuXG5cbi8vIFZhbGlkIENvbHVtbnNcbi8vIC0tLS0tLS0tLS0tLS1cbi8vIENoZWNrIHRoYXQgYSBjb2x1bW4gc2V0dGluZyBpcyB2YWxpZC5cbkBmdW5jdGlvbiB2YWxpZC1jb2x1bW5zKFxuICAkY29sdW1ucyxcbiAgJHNpbGVudDogZmFsc2Vcbikge1xuICAkdHlwZTogdHlwZS1vZigkY29sdW1ucyk7XG4gICRyZXR1cm46IG51bGw7XG5cbiAgQGlmICR0eXBlID09IG51bWJlciBhbmQgdW5pdGxlc3MoJGNvbHVtbnMpIHtcbiAgICAkcmV0dXJuOiAkY29sdW1ucztcbiAgfSBAZWxzZSBpZiAkdHlwZSA9PSBsaXN0IHtcbiAgICAkZmFpbDogbnVsbDtcbiAgICBAZWFjaCAkY29sIGluICRjb2x1bW5zIHtcbiAgICAgIEBpZiB0eXBlLW9mKCRjb2wpID09IG51bWJlciB7XG4gICAgICAgICRmYWlsOiAkZmFpbCBvciBpZih1bml0bGVzcygkY29sKSwgbnVsbCwgdHJ1ZSk7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgJGZhaWw6IHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgICRyZXR1cm46IGlmKCRmYWlsLCAkcmV0dXJuLCAkY29sdW1ucyk7XG4gIH1cblxuICBAaWYgJHJldHVybiAhPSAkY29sdW1ucyBhbmQgbm90KCRzaWxlbnQpIHtcbiAgICAkcmV0dXJuOiBudWxsO1xuICAgICR3YXJuOiAnJGNvbHVtbnMgbXVzdCBiZSBhIHVuaXRsZXNzIG51bWJlciBvciBsaXN0IG9mIHVuaXRsZXNzIG51bWJlcnMuJztcbiAgICBAd2FybiAkd2FybiArICcgQ3VycmVudCB2YWx1ZSBbI3skdHlwZX1dOiAjeyRjb2x1bW5zfSc7XG4gIH1cblxuICBAcmV0dXJuICRyZXR1cm47XG59XG5cblxuLy8gVmFsaWQgR3V0dGVyc1xuLy8gLS0tLS0tLS0tLS0tLVxuLy8gQ2hlY2sgdGhhdCBhIGd1dHRlciBzZXR0aW5nIGlzIHZhbGlkLlxuQGZ1bmN0aW9uIHZhbGlkLWd1dHRlcnMoXG4gICRndXR0ZXJzLFxuICAkc2lsZW50OiBmYWxzZVxuKSB7XG4gICR0eXBlOiB0eXBlLW9mKCRndXR0ZXJzKTtcbiAgJHJldHVybjogbnVsbDtcblxuICBAaWYgJHR5cGUgPT0gbnVtYmVyIGFuZCB1bml0bGVzcygkZ3V0dGVycykge1xuICAgICRyZXR1cm46ICRndXR0ZXJzO1xuICB9IEBlbHNlIGlmIG5vdCgkc2lsZW50KSB7XG4gICAgJHdhcm46ICckZ3V0dGVycyBtdXN0IGJlIGEgdW5pdGxlc3MgbnVtYmVyLic7XG4gICAgQHdhcm4gJHdhcm4gKyAnIEN1cnJlbnQgdmFsdWUgWyN7JHR5cGV9XTogI3skZ3V0dGVyc30nO1xuICB9XG5cbiAgQHJldHVybiAkcmV0dXJuO1xufVxuIiwiLy8gQ29sdW1uIG1hdGhcbi8vID09PT09PT09PT09XG5cblxuLy8gSXMgU3ltbWV0cmljYWxcbi8vIC0tLS0tLS0tLS0tLS0tXG4vLyBSZXR1cm5zIHRydWUgaWYgYSBncmlkIGlzIHN5bW1ldHJpY2FsLlxuLy8gLSBbJGNvbHVtbnNdICAgOiA8bnVtYmVyPiB8IDxsaXN0PlxuQGZ1bmN0aW9uIGlzLXN5bW1ldHJpY2FsKFxuICAkY29sdW1uczogc3VzeS1nZXQoY29sdW1ucylcbikge1xuICAkY29sdW1uczogdmFsaWQtY29sdW1ucygkY29sdW1ucyk7XG4gIEByZXR1cm4gaWYodHlwZS1vZigkY29sdW1ucykgPT0gbnVtYmVyLCAkY29sdW1ucywgbnVsbCk7XG59XG5cblxuLy8gU3VzeSBDb3VudFxuLy8gLS0tLS0tLS0tLVxuLy8gRmluZCB0aGUgbnVtYmVyIG9mIGNvbHVtbnMgaW4gYSBnaXZlbiBsYXlvdXRcbi8vIC0gWyRjb2x1bW5zXSAgIDogPG51bWJlcj4gfCA8bGlzdD5cbkBmdW5jdGlvbiBzdXN5LWNvdW50KFxuICAkY29sdW1uczogc3VzeS1nZXQoY29sdW1ucylcbikge1xuICAkY29sdW1uczogdmFsaWQtY29sdW1ucygkY29sdW1ucyk7XG4gIEByZXR1cm4gaXMtc3ltbWV0cmljYWwoJGNvbHVtbnMpIG9yIGxlbmd0aCgkY29sdW1ucyk7XG59XG5cblxuLy8gU3VzeSBTdW1cbi8vIC0tLS0tLS0tXG4vLyBGaW5kIHRoZSB0b3RhbCBzdW0gb2YgY29sdW1uLXVuaXRzIGluIGEgbGF5b3V0XG4vLyAtIFskY29sdW1uc10gICA6IDxudW1iZXI+IHwgPGxpc3Q+XG4vLyAtIFskZ3V0dGVyc10gICA6IDxyYXRpbz5cbi8vIC0gWyRzcHJlYWRdICAgIDogZmFsc2UvbmFycm93IHwgd2lkZSB8IHdpZGVyXG5AZnVuY3Rpb24gc3VzeS1zdW0oXG4gICRjb2x1bW5zICA6IHN1c3ktZ2V0KGNvbHVtbnMpLFxuICAkZ3V0dGVycyAgOiBzdXN5LWdldChndXR0ZXJzKSxcbiAgJHNwcmVhZCAgIDogZmFsc2Vcbikge1xuICAkY29sdW1uczogdmFsaWQtY29sdW1ucygkY29sdW1ucyk7XG4gICRndXR0ZXJzOiB2YWxpZC1ndXR0ZXJzKCRndXR0ZXJzKTtcblxuICAkc3ByZWFkOiBpZigkc3ByZWFkID09IHdpZGUsIDAsIGlmKCRzcHJlYWQgPT0gd2lkZXIsIDEsIC0xKSk7XG4gICRndXR0ZXItc3VtOiAoc3VzeS1jb3VudCgkY29sdW1ucykgKyAkc3ByZWFkKSAqICRndXR0ZXJzO1xuICAkY29sdW1uLXN1bTogaXMtc3ltbWV0cmljYWwoJGNvbHVtbnMpO1xuXG4gIEBpZiBub3QoJGNvbHVtbi1zdW0pIHtcbiAgICBAZWFjaCAkY29sdW1uIGluICRjb2x1bW5zIHtcbiAgICAgICRjb2x1bW4tc3VtOiAoJGNvbHVtbi1zdW0gb3IgMCkgKyAkY29sdW1uO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJGNvbHVtbi1zdW0gKyAkZ3V0dGVyLXN1bTtcbn1cblxuXG4vLyBTdXN5IFNsaWNlXG4vLyAtLS0tLS0tLS0tXG4vLyBSZXR1cm4gYSBzdWJzZXQgb2YgY29sdW1ucyBhdCBhIGdpdmVuIGxvY2F0aW9uLlxuLy8gLSAkc3BhbiAgICAgICAgOiA8bnVtYmVyPlxuLy8gLSAkbG9jYXRpb24gICAgOiA8bnVtYmVyPlxuLy8gLSBbJGNvbHVtbnNdICAgOiA8bnVtYmVyPiB8IDxsaXN0PlxuQGZ1bmN0aW9uIHN1c3ktc2xpY2UoXG4gICRzcGFuLFxuICAkbG9jYXRpb24sXG4gICRjb2x1bW5zOiBzdXN5LWdldChjb2x1bW5zKVxuKSB7XG4gICRjb2x1bW5zOiB2YWxpZC1jb2x1bW5zKCRjb2x1bW5zKTtcbiAgJHN1Yi1jb2x1bW5zOiAkc3BhbjtcblxuICBAaWYgbm90KGlzLXN5bW1ldHJpY2FsKCRjb2x1bW5zKSkge1xuICAgICRsb2NhdGlvbjogJGxvY2F0aW9uIG9yIDE7XG4gICAgJHN1Yi1jb2x1bW5zOiAoKTtcbiAgICBAZm9yICRpIGZyb20gJGxvY2F0aW9uIHRvICgkbG9jYXRpb24gKyAkc3Bhbikge1xuICAgICAgJHN1Yi1jb2x1bW5zOiBhcHBlbmQoJHN1Yi1jb2x1bW5zLCBudGgoJGNvbHVtbnMsICRpKSk7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkc3ViLWNvbHVtbnM7XG59XG5cblxuLy8gU3VzeVxuLy8gLS0tLVxuLy8gRmluZCB0aGUgc3VtIG9mIGEgY29sdW1uLXNwYW4uXG4vLyAtICRzcGFuICAgICAgICA6IDxudW1iZXI+XG4vLyAtICRsb2NhdGlvbiAgICA6IDxudW1iZXI+XG4vLyAtIFskY29sdW1uc10gICA6IDxudW1iZXI+IHwgPGxpc3Q+XG4vLyAtIFskZ3V0dGVyc10gICA6IDxyYXRpbz5cbi8vIC0gWyRzcHJlYWRdICAgIDogZmFsc2UvbmFycm93IHwgd2lkZSB8IHdpZGVyXG5AZnVuY3Rpb24gc3VzeShcbiAgJHNwYW4sXG4gICRsb2NhdGlvbiAgICAgOiBmYWxzZSxcbiAgJGNvbHVtbnMgICAgICA6IHN1c3ktZ2V0KGNvbHVtbnMpLFxuICAkZ3V0dGVycyAgICAgIDogc3VzeS1nZXQoZ3V0dGVycyksXG4gICRzcHJlYWQgICAgICAgOiBmYWxzZVxuKSB7XG4gICRjb2x1bW5zOiB2YWxpZC1jb2x1bW5zKCRjb2x1bW5zKTtcbiAgJGd1dHRlcnM6IHZhbGlkLWd1dHRlcnMoJGd1dHRlcnMpO1xuICAkc3Bhbjogc3VzeS1zbGljZSgkc3BhbiwgJGxvY2F0aW9uLCAkY29sdW1ucyk7XG5cbiAgQHJldHVybiBzdXN5LXN1bSgkc3BhbiwgJGd1dHRlcnMsICRzcHJlYWQpO1xufVxuIiwiLy8gRmxvYXQgQVBJXG4vLyA9PT09PT09PT1cblxuQGltcG9ydCBcInNoYXJlZFwiO1xuXG5AaW1wb3J0IFwiZmxvYXQvY29udGFpbmVyXCI7XG5AaW1wb3J0IFwiZmxvYXQvc3BhblwiO1xuQGltcG9ydCBcImZsb2F0L2VuZFwiO1xuQGltcG9ydCBcImZsb2F0L2lzb2xhdGVcIjtcbiIsIi8vIFNoYXJlZCBBUElcbi8vID09PT09PT09PT1cblxuQGltcG9ydCBcInN1cHBvcnRcIjtcblxuQGltcG9ydCBcInNoYXJlZC9pbnNwZWN0XCI7XG5AaW1wb3J0IFwic2hhcmVkL291dHB1dFwiO1xuQGltcG9ydCBcInNoYXJlZC9kaXJlY3Rpb25cIjtcbkBpbXBvcnQgXCJzaGFyZWQvYmFja2dyb3VuZFwiO1xuQGltcG9ydCBcInNoYXJlZC9jb250YWluZXJcIjtcbkBpbXBvcnQgXCJzaGFyZWQvbWFyZ2luc1wiO1xuQGltcG9ydCBcInNoYXJlZC9wYWRkaW5nXCI7XG5cblxuXG4iLCIvLyBTdXN5IEJyb3dzZXIgU3VwcG9ydFxuLy8gPT09PT09PT09PT09PT09PT09PT1cblxuQGltcG9ydCBcInN1cHBvcnQvc3VwcG9ydFwiO1xuQGltcG9ydCBcInN1cHBvcnQvcHJlZml4XCI7XG5AaW1wb3J0IFwic3VwcG9ydC9iYWNrZ3JvdW5kXCI7XG5AaW1wb3J0IFwic3VwcG9ydC9ib3gtc2l6aW5nXCI7XG5AaW1wb3J0IFwic3VwcG9ydC9yZW1cIjtcbkBpbXBvcnQgXCJzdXBwb3J0L2NsZWFyZml4XCI7XG4iLCIvLyBCcm93c2VyIFN1cHBvcnRcbi8vID09PT09PT09PT09PT09PVxuXG4vLyBTdXN5IFN1cHBvcnQgRGVmYXVsdHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQGluY2x1ZGUgc3VzeS1kZWZhdWx0cygoXG4gIHVzZS1jdXN0b206IChcbiAgICBjbGVhcmZpeDogZmFsc2UsXG4gICAgYmFja2dyb3VuZC1pbWFnZTogdHJ1ZSxcbiAgICBiYWNrZ3JvdW5kLW9wdGlvbnM6IGZhbHNlLFxuICAgIGJyZWFrcG9pbnQ6IHRydWUsXG4gICAgYm94LXNpemluZzogdHJ1ZSxcbiAgICByZW06IHRydWUsXG4gICksXG4pKTtcblxuXG4vLyBTdXN5IFN1cHBvcnQgW21peGluXVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFNlbmQgcHJvcGVydHktdmFsdWUgcGFpcnMgdG8gdGhlIHByb3BlciBzdXBwb3J0IG1vZHVsZXMuXG4vLyAtICRwcm9wICA6IDxjc3MgcHJvcGVydHk+XG4vLyAtICR2YWwgICA6IDxjc3MgdmFsdWU+XG5AbWl4aW4gc3VzeS1zdXBwb3J0KFxuICAkcHJvcCxcbiAgJHZhbFxuKSB7XG4gIC8vIEJhY2tncm91bmQgU3VwcG9ydFxuICBAaWYgJHByb3AgPT0gYmFja2dyb3VuZC1pbWFnZSB7XG4gICAgQGluY2x1ZGUgc3VzeS1iYWNrZ3JvdW5kLWltYWdlKCR2YWwpO1xuICB9IEBlbHNlIGlmICRwcm9wID09IGJhY2tncm91bmQtc2l6ZSB7XG4gICAgQGluY2x1ZGUgc3VzeS1iYWNrZ3JvdW5kLXNpemUoJHZhbCk7XG4gIH0gQGVsc2UgaWYgJHByb3AgPT0gYmFja2dyb3VuZC1vcmlnaW4ge1xuICAgIEBpbmNsdWRlIHN1c3ktYmFja2dyb3VuZC1vcmlnaW4oJHZhbCk7XG4gIH0gQGVsc2UgaWYgJHByb3AgPT0gYmFja2dyb3VuZC1jbGlwIHtcbiAgICBAaW5jbHVkZSBzdXN5LWJhY2tncm91bmQtY2xpcCgkdmFsKTtcbiAgfVxuXG4gIC8vIEJveC1TaXppbmcgU3VwcG9ydFxuICBAZWxzZSBpZiAkcHJvcCA9PSBib3gtc2l6aW5nIHtcbiAgICBAaW5jbHVkZSBzdXN5LWJveC1zaXppbmcoJHZhbCk7XG4gIH1cblxuICAvLyBSZW0gU3VwcG9ydFxuICBAZWxzZSB7XG4gICAgQGluY2x1ZGUgc3VzeS1yZW0oJHByb3AsICR2YWwpO1xuICB9XG59XG5cblxuLy8gU3VzeSBTdXBwb3J0IFtmdW5jdGlvbl1cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBDaGVjayBmb3Igc3VwcG9ydCBvZiBhIGZlYXR1cmUuXG4vLyAtICRmZWF0dXJlICAgICAgIDogPHN0cmluZz5cbi8vICAgICAgICAgICAgICAgICAgICAtIGUuZyBcInJlbVwiIG9yIFwiYm94LXNpemluZ1wiXG4vLyAtICRyZXF1aXJlbWVudHMgIDogPG1hcD5cbi8vICAgICAgICAgICAgICAgICAgICAtIGUuZyAodmFyaWFibGU6IHJlbS13aXRoLXB4LWZhbGxiYWNrLCBtaXhpbjogcmVtKVxuLy8gLSAkd2FybiAgICAgICAgICA6IDxib29sPlxuQGZ1bmN0aW9uIHN1c3ktc3VwcG9ydChcbiAgJGZlYXR1cmUsXG4gICRyZXF1aXJlbWVudHM6ICgpLFxuICAkd2FybjogdHJ1ZVxuKSB7XG4gICRfc3VwcG9ydDogc3VzeS1nZXQodXNlLWN1c3RvbSAkZmVhdHVyZSk7XG5cbiAgQGlmICRfc3VwcG9ydCB7XG4gICAgJF9mYWlsOiBmYWxzZTtcblxuICAgIEBlYWNoICRfdHlwZSwgJF9yZXEgaW4gJHJlcXVpcmVtZW50cyB7XG4gICAgICBAZWFjaCAkX2kgaW4gJF9yZXEge1xuICAgICAgICAkX3Bhc3M6IGNhbGwodW5xdW90ZShcIiN7JF90eXBlfS1leGlzdHNcIiksICRfaSk7XG5cbiAgICAgICAgQGlmIG5vdCgkX3Bhc3MpIHtcbiAgICAgICAgICAkX2ZhaWw6IHRydWU7XG4gICAgICAgICAgQGlmICR3YXJuIHtcbiAgICAgICAgICAgIEB3YXJuIFwiWW91IHJlcXVlc3RlZCBjdXN0b20gc3VwcG9ydCBvZiAjeyRmZWF0dXJlfSwgYnV0IHRoZSAjeyRfaX0gI3skX3R5cGV9IGlzIG5vdCBhdmFpbGFibGUuXCI7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgJF9zdXBwb3J0OiBpZigkX2ZhaWwsIGZhbHNlLCAkX3N1cHBvcnQpO1xuICB9XG5cbiAgQHJldHVybiAkX3N1cHBvcnQ7XG59XG4iLCIvLyBTdXN5IFByZWZpeFxuLy8gPT09PT09PT09PT1cblxuLy8gUHJlZml4XG4vLyAtLS0tLS1cbi8vIE91dHB1dCBzaW1wbGUgcHJlZml4ZWQgcHJvcGVydGllcy5cbi8vIC0gJHByb3AgICAgICA6IDxjc3MgcHJvcGVydHk+XG4vLyAtICR2YWwgICAgICAgOiA8Y3NzIHZhbHVlPlxuLy8gLSBbJHByZWZpeF0gIDogPGJyb3dzZXIgcHJlZml4IGxpc3Q+XG5AbWl4aW4gc3VzeS1wcmVmaXgoXG4gICRwcm9wLFxuICAkdmFsLFxuICAkcHJlZml4OiBvZmZpY2lhbFxuKSB7XG4gIEBlYWNoICRmaXggaW4gJHByZWZpeCB7XG4gICAgJGZpeDogaWYoJGZpeCA9PSBvZmZpY2lhbCBvciBub3QoJGZpeCksICRwcm9wLCAnLSN7JGZpeH0tI3skcHJvcH0nKTtcbiAgICBAaW5jbHVkZSBzdXN5LXJlbSgkZml4LCAkdmFsKTtcbiAgfVxufVxuIiwiLy8gQmFja2dyb3VuZCBQcm9wZXJ0aWVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT1cblxuLy8gU3VzeSBCYWNrZ3JvdW5kIEltYWdlXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIENoZWNrIGZvciBhbiBleGlzdGluZyBzdXBwb3J0IG1peGluLCBvciBwcm92aWRlIGEgc2ltcGxlIGZhbGxiYWNrLlxuLy8gLSAkaW1hZ2U6IDxiYWNrZ3JvdW5kLWltYWdlPlxuQG1peGluIHN1c3ktYmFja2dyb3VuZC1pbWFnZShcbiAgJGltYWdlXG4pIHtcbiAgQGlmIHN1c3ktc3VwcG9ydChiYWNrZ3JvdW5kLWltYWdlLCAobWl4aW46IGJhY2tncm91bmQtaW1hZ2UpLCAkd2FybjogZmFsc2UpIHtcbiAgICBAaW5jbHVkZSBiYWNrZ3JvdW5kLWltYWdlKCRpbWFnZS4uLik7XG4gIH0gQGVsc2Uge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6ICRpbWFnZTtcbiAgfVxufVxuXG4vLyBTdXN5IEJhY2tncm91bmQgU2l6ZVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBDaGVjayBmb3IgYW4gZXhpc3Rpbmcgc3VwcG9ydCBtaXhpbiwgb3IgcHJvdmlkZSBhIHNpbXBsZSBmYWxsYmFjay5cbi8vIC0gJGltYWdlOiA8YmFja2dyb3VuZC1zaXplPlxuQG1peGluIHN1c3ktYmFja2dyb3VuZC1zaXplKFxuICAkc2l6ZVxuKSB7XG4gIEBpZiBzdXN5LXN1cHBvcnQoYmFja2dyb3VuZC1vcHRpb25zLCAobWl4aW46IGJhY2tncm91bmQtc2l6ZSkpIHtcbiAgICBAaW5jbHVkZSBiYWNrZ3JvdW5kLXNpemUoJHNpemUpO1xuICB9IEBlbHNlIHtcbiAgICBiYWNrZ3JvdW5kLXNpemU6ICRzaXplO1xuICB9XG59XG5cbi8vIFN1c3kgQmFja2dyb3VuZCBPcmlnaW5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIENoZWNrIGZvciBhbiBleGlzdGluZyBzdXBwb3J0IG1peGluLCBvciBwcm92aWRlIGEgc2ltcGxlIGZhbGxiYWNrLlxuLy8gLSAkaW1hZ2U6IDxiYWNrZ3JvdW5kLW9yaWdpbj5cbkBtaXhpbiBzdXN5LWJhY2tncm91bmQtb3JpZ2luKFxuICAkb3JpZ2luXG4pIHtcbiAgQGlmIHN1c3ktc3VwcG9ydChiYWNrZ3JvdW5kLW9wdGlvbnMsIChtaXhpbjogYmFja2dyb3VuZC1vcmlnaW4pKSB7XG4gICAgQGluY2x1ZGUgYmFja2dyb3VuZC1vcmlnaW4oJG9yaWdpbik7XG4gIH0gQGVsc2Uge1xuICAgIGJhY2tncm91bmQtb3JpZ2luOiAkb3JpZ2luO1xuICB9XG59XG5cbi8vIFN1c3kgQmFja2dyb3VuZCBDbGlwXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gQ2hlY2sgZm9yIGFuIGV4aXN0aW5nIHN1cHBvcnQgbWl4aW4sIG9yIHByb3ZpZGUgYSBzaW1wbGUgZmFsbGJhY2suXG4vLyAtICRpbWFnZTogPGJhY2tncm91bmQtY2xpcD5cbkBtaXhpbiBzdXN5LWJhY2tncm91bmQtY2xpcChcbiAgJGNsaXBcbikge1xuICBAaWYgc3VzeS1zdXBwb3J0KGJhY2tncm91bmQtb3B0aW9ucywgKG1peGluOiBiYWNrZ3JvdW5kLWNsaXApKSB7XG4gICAgQGluY2x1ZGUgYmFja2dyb3VuZC1jbGlwKCRjbGlwKTtcbiAgfSBAZWxzZSB7XG4gICAgYmFja2dyb3VuZC1jbGlwOiAkY2xpcDtcbiAgfVxufVxuIiwiLy8gQm94IFNpemluZ1xuLy8gPT09PT09PT09PVxuXG4vLyBCb3ggU2l6aW5nXG4vLyAtLS0tLS0tLS0tXG4vLyBDaGVjayBmb3IgYW4gZXhpc3Rpbmcgc3VwcG9ydCBtaXhpbiwgb3IgcHJvdmlkZSBhIHNpbXBsZSBmYWxsYmFjay5cbi8vIC0gJG1vZGVsOiA8Ym94LXNpemluZz5cbkBtaXhpbiBzdXN5LWJveC1zaXppbmcoXG4gICRtb2RlbDogY29udGVudC1ib3hcbikge1xuICBAaWYgJG1vZGVsIHtcbiAgICBAaWYgc3VzeS1zdXBwb3J0KGJveC1zaXppbmcsIChtaXhpbjogYm94LXNpemluZyksICR3YXJuOiBmYWxzZSkge1xuICAgICAgQGluY2x1ZGUgYm94LXNpemluZygkbW9kZWwpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJHByZWZpeDogKG1veiwgd2Via2l0LCBvZmZpY2lhbCk7XG4gICAgICBAaW5jbHVkZSBzdXN5LXByZWZpeChib3gtc2l6aW5nLCAkbW9kZWwsICRwcmVmaXgpO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gcmVtIFN1cHBvcnRcbi8vID09PT09PT09PT09XG5cbi8vIHJlbVxuLy8gLS0tXG4vLyBDaGVjayBmb3IgYW4gZXhpc3Rpbmcgc3VwcG9ydCBtaXhpbiwgb3Igb3V0cHV0IGRpcmVjdGx5LlxuLy8gLSAkcHJvcCAgOiA8Y3NzIHByb3BlcnR5PlxuLy8gLSAkdmFsICAgOiA8Y3NzIHZhbHVlPlxuQG1peGluIHN1c3ktcmVtKFxuICAkcHJvcCxcbiAgJHZhbFxuKSB7XG4gICRfcmVxczogKFxuICAgIHZhcmlhYmxlOiByaHl0aG0tdW5pdCByZW0td2l0aC1weC1mYWxsYmFjayxcbiAgICBtaXhpbjogcmVtLFxuICApO1xuICBAaWYgc3VzeS1zdXBwb3J0KHJlbSwgJF9yZXFzLCAkd2FybjogZmFsc2UpIGFuZCAkcmh5dGhtLXVuaXQgPT0gcmVtIHtcbiAgICBAaW5jbHVkZSByZW0oJHByb3AsICR2YWwpO1xuICB9IEBlbHNlIHtcbiAgICAjeyRwcm9wfTogJHZhbDtcbiAgfVxufVxuIiwiLy8gU3VzeSBGYWxsYmFjayBDbGVhcmZpeFxuLy8gPT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIENsZWFyZml4XG4vLyAtLS0tLS0tLVxuLy8gQ2hlY2sgZm9yIGFuIGV4aXN0aW5nIHN1cHBvcnQgbWl4aW4sIG9yIHByb3ZpZGUgYSBzaW1wbGUgZmFsbGJhY2suXG5AbWl4aW4gc3VzeS1jbGVhcmZpeCB7XG4gIEBpZiBzdXN5LXN1cHBvcnQoY2xlYXJmaXgsIChtaXhpbjogY2xlYXJmaXgpKSB7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIH0gQGVsc2Uge1xuICAgICY6YWZ0ZXIge1xuICAgICAgY29udGVudDogXCIgXCI7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGNsZWFyOiBib3RoO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRGVidWdnaW5nXG4vLyA9PT09PT09PT1cblxuLy8gU3VzeSBJbnNwZWN0XG4vLyAtLS0tLS0tLS0tLS1cbi8vIE91dHB1dCBhcmd1bWVudHMgcGFzc2VkIHRvIGEgaW5zcGVjdC5cbi8vIC0gJG1peGluICA6IDxzdXN5IG1peGluPlxuLy8gLSAkaW5zcGVjICAgOiA8bWl4aW4gYXJndW1lbnRzPlxuXG5AbWl4aW4gc3VzeS1pbnNwZWN0KFxuICAkbWl4aW4sXG4gICRpbnNwZWN0XG4pIHtcbiAgJHNob3c6IGZhbHNlO1xuXG4gIEBlYWNoICRpdGVtIGluICRpbnNwZWN0IHtcbiAgICBAaWYgaW5kZXgoJGl0ZW0sIGluc3BlY3QpIHtcbiAgICAgICRzaG93OiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkc2hvdyBvciBzdXN5LWdldChkZWJ1ZyBpbnNwZWN0KSB7XG4gICAgLXN1c3ktI3skbWl4aW59OiBpbnNwZWN0KCRpbnNwZWN0KTtcbiAgfVxufVxuIiwiLy8gT3V0cHV0XG4vLyA9PT09PT1cblxuLy8gT3V0cHV0XG4vLyAtLS0tLS1cbi8vIE91dHB1dCBDU1Mgd2l0aCBwcm9wZXIgYnJvd3NlciBzdXBwb3J0LlxuLy8gLSAkc3R5bGVzICA6IDxtYXAgb2YgY3NzIHByb3BlcnR5LXZhbHVlIHBhaXJzPlxuQG1peGluIG91dHB1dChcbiAgJHN0eWxlc1xuKSB7XG4gIEBlYWNoICRwcm9wLCAkdmFsIGluICRzdHlsZXMge1xuICAgIEBpbmNsdWRlIHN1c3ktc3VwcG9ydCgkcHJvcCwgJHZhbCk7XG4gIH1cbn1cbiIsIi8vIERpcmVjdGlvbiBIZWxwZXJzXG4vLyA9PT09PT09PT09PT09PT09PVxuXG4vLyBTdXN5IEZsb3cgRGVmYXVsdHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gLSBQUklWQVRFXG5AaW5jbHVkZSBzdXN5LWRlZmF1bHRzKChcbiAgZmxvdzogbHRyLFxuKSk7XG5cbi8vIEdldCBEaXJlY3Rpb25cbi8vIC0tLS0tLS0tLS0tLS1cbi8vIFJldHVybiB0aGUgJ2Zyb20nIG9yICd0bycgZGlyZWN0aW9uIG9mIGEgbHRyIG9yIHJ0bCBmbG93LlxuLy8gLSBbJGZsb3ddICA6IGx0ciB8IHJ0bFxuLy8gLSBbJGtleV0gICA6IGZyb20gfCB0b1xuQGZ1bmN0aW9uIGdldC1kaXJlY3Rpb24oXG4gICRmbG93OiBtYXAtZ2V0KCRzdXN5LWRlZmF1bHRzLCBmbG93KSxcbiAgJGtleTogZnJvbVxuKSB7XG4gICRyZXR1cm46IGlmKCRmbG93ID09IHJ0bCwgKGZyb206IHJpZ2h0LCB0bzogbGVmdCksIChmcm9tOiBsZWZ0LCB0bzogcmlnaHQpKTtcbiAgQHJldHVybiBtYXAtZ2V0KCRyZXR1cm4sICRrZXkpO1xufVxuXG4vLyBUb1xuLy8gLS1cbi8vIFJldHVybiB0aGUgJ3RvJyBkaXJlY3Rpb24gb2YgYSBmbG93XG4vLyAtIFskZmxvd10gIDogbHRyIHwgcnRsXG5AZnVuY3Rpb24gdG8oXG4gICRmbG93OiBtYXAtZ2V0KCRzdXN5LWRlZmF1bHRzLCBmbG93KVxuKSB7XG4gIEByZXR1cm4gZ2V0LWRpcmVjdGlvbigkZmxvdywgdG8pO1xufVxuXG4vLyBGcm9tXG4vLyAtLS0tXG4vLyBSZXR1cm4gdGhlICdmcm9tJyBkaXJlY3Rpb24gb2YgYSBmbG93XG4vLyAtIFskZmxvd10gIDogbHRyIHwgcnRsXG5AZnVuY3Rpb24gZnJvbShcbiAgJGZsb3c6IG1hcC1nZXQoJHN1c3ktZGVmYXVsdHMsIGZsb3cpXG4pIHtcbiAgQHJldHVybiBnZXQtZGlyZWN0aW9uKCRmbG93LCBmcm9tKTtcbn1cbiIsIi8vIEdyaWQgQmFja2dyb3VuZCBBUElcbi8vID09PT09PT09PT09PT09PT09PT1cbi8vIC0gU3ViLXBpeGVsIHJvdW5kaW5nIGNhbiBsZWFkIHRvIHNldmVyYWwgcGl4ZWxzIHZhcmlhdGlvbiBiZXR3ZWVuIGJyb3dzZXJzLlxuXG4vLyBHcmlkIEJhY2tncm91bmQgT3V0cHV0XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAtICRpbWFnZTogYmFja2dyb3VuZC1pbWFnZVxuLy8gLSAkc2l6ZTogYmFja2dyb3VuZC1zaXplXG4vLyAtICRjbGlwOiBiYWNrZ3JvdW5kLWNsaXBcbi8vIC0gWyRmbG93XTogbHRyIHwgcnRsXG5AbWl4aW4gYmFja2dyb3VuZC1ncmlkLW91dHB1dCAoXG4gICRpbWFnZSxcbiAgJHNpemU6IG51bGwsXG4gICRjbGlwOiBudWxsLFxuICAkZmxvdzogbWFwLWdldCgkc3VzeS1kZWZhdWx0cywgZmxvdylcbikge1xuICAkb3V0cHV0OiAoXG4gICAgYmFja2dyb3VuZC1pbWFnZTogJGltYWdlLFxuICAgIGJhY2tncm91bmQtc2l6ZTogJHNpemUsXG4gICAgYmFja2dyb3VuZC1vcmlnaW46ICRjbGlwLFxuICAgIGJhY2tncm91bmQtY2xpcDogJGNsaXAsXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogZnJvbSgkZmxvdykgdG9wLFxuICApO1xuXG4gIEBpbmNsdWRlIG91dHB1dCgkb3V0cHV0KTtcbn1cbiIsIi8vIFNoYXJlZCBDb250YWluZXIgQVBJXG4vLyA9PT09PT09PT09PT09PT09PT09PVxuXG4vLyBDb250YWluZXIgT3V0cHV0XG4vLyAtLS0tLS0tLS0tLS0tLS0tXG4vLyAtIFskd2lkdGhdICAgICAgICAgOiA8bGVuZ3RoPlxuLy8gLSBbJGp1c3RpZnldICAgICAgIDogbGVmdCB8IGNlbnRlciB8IHJpZ2h0XG4vLyAtIFskbWF0aF0gICAgICAgICAgOiBmbHVpZCB8IHN0YXRpY1xuQG1peGluIGNvbnRhaW5lci1vdXRwdXQoXG4gICR3aWR0aCxcbiAgJGp1c3RpZnk6IGF1dG8gYXV0byxcbiAgJHByb3BlcnR5OiBtYXgtd2lkdGhcbikge1xuICAkb3V0cHV0OiAoXG4gICAgI3skcHJvcGVydHl9OiAkd2lkdGggb3IgMTAwJSxcbiAgICBtYXJnaW4tbGVmdDogbnRoKCRqdXN0aWZ5LCAxKSxcbiAgICBtYXJnaW4tcmlnaHQ6IG50aCgkanVzdGlmeSwgMiksXG4gICk7XG5cbiAgQGluY2x1ZGUgb3V0cHV0KCRvdXRwdXQpO1xufVxuIiwiLy8gTWFyZ2lucyBBUElcbi8vID09PT09PT09PT09XG5cbi8vIE1hcmdpbiBPdXRwdXRcbi8vIC0tLS0tLS0tLS0tLS1cbi8vIC0gJGJlZm9yZSAgOiA8bGVuZ3RoPlxuLy8gLSAkYWZ0ZXIgICA6IDxsZW5ndGg+XG4vLyAtIFskZmxvd10gIDogbHRyIHwgcnRsXG5AbWl4aW4gbWFyZ2luLW91dHB1dChcbiAgJGJlZm9yZSxcbiAgJGFmdGVyLFxuICAkZmxvdzogbWFwLWdldCgkc3VzeS1kZWZhdWx0cywgZmxvdylcbikge1xuICAkdG86IHRvKCRmbG93KTtcbiAgJGZyb206IGZyb20oJGZsb3cpO1xuXG4gICRvdXRwdXQ6IChcbiAgICBtYXJnaW4tI3skZnJvbX06ICRiZWZvcmUsXG4gICAgbWFyZ2luLSN7JHRvfTogJGFmdGVyLFxuICApO1xuXG4gIEBpbmNsdWRlIG91dHB1dCgkb3V0cHV0KTtcbn1cbiIsIi8vIFBhZGRpbmcgQVBJXG4vLyA9PT09PT09PT09PVxuXG4vLyBQYWRkaW5nIE91dHB1dFxuLy8gLS0tLS0tLS0tLS0tLS1cbi8vIC0gJGJlZm9yZSAgOiA8bGVuZ3RoPlxuLy8gLSAkYWZ0ZXIgICA6IDxsZW5ndGg+XG4vLyAtIFskZmxvd10gIDogbHRyIHwgcnRsXG5AbWl4aW4gcGFkZGluZy1vdXRwdXQoXG4gICRiZWZvcmUsXG4gICRhZnRlcixcbiAgJGZsb3c6IG1hcC1nZXQoJHN1c3ktZGVmYXVsdHMsIGZsb3cpXG4pIHtcbiAgJHRvOiB0bygkZmxvdyk7XG4gICRmcm9tOiBmcm9tKCRmbG93KTtcblxuICAkb3V0cHV0OiAoXG4gICAgcGFkZGluZy0jeyRmcm9tfTogJGJlZm9yZSxcbiAgICBwYWRkaW5nLSN7JHRvfTogJGFmdGVyLFxuICApO1xuXG4gIEBpbmNsdWRlIG91dHB1dCgkb3V0cHV0KTtcbn1cbiIsIi8vIEZsb2F0IENvbnRhaW5lciBBUElcbi8vID09PT09PT09PT09PT09PT09PT1cblxuLy8gRmxvYXQgQ29udGFpbmVyXG4vLyAtLS0tLS0tLS0tLS0tLS1cbi8vIC0gWyR3aWR0aF0gICAgICAgICA6IDxsZW5ndGg+XG4vLyAtIFskanVzdGlmeV0gICAgICAgOiBsZWZ0IHwgY2VudGVyIHwgcmlnaHRcbi8vIC0gWyRtYXRoXSAgIDogZmx1aWQgfCBzdGF0aWNcbkBtaXhpbiBmbG9hdC1jb250YWluZXIoXG4gICR3aWR0aCxcbiAgJGp1c3RpZnk6IGF1dG8gYXV0byxcbiAgJHByb3BlcnR5OiBtYXgtd2lkdGhcbikge1xuICBAaW5jbHVkZSBzdXN5LWNsZWFyZml4O1xuICBAaW5jbHVkZSBjb250YWluZXItb3V0cHV0KCR3aWR0aCwgJGp1c3RpZnksICRwcm9wZXJ0eSk7XG59XG4iLCIvLyBGbG9hdCBTcGFuIEFQSVxuLy8gPT09PT09PT09PT09PT1cblxuLy8gRmxvYXQgU3BhbiBPdXRwdXRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tXG4vLyAtICR3aWR0aCAgICAgICAgICAgICA6IDxsZW5ndGg+XG4vLyAtIFskZmxvYXRdICAgICAgICAgICA6IGZyb20gfCB0b1xuLy8gLSBbJG1hcmdpbi1iZWZvcmVdICAgOiA8bGVuZ3RoPlxuLy8gLSBbJG1hcmdpbi1hZnRlcl0gICAgOiA8bGVuZ3RoPlxuLy8gLSBbJHBhZGRpbmctYmVmb3JlXSAgOiA8bGVuZ3RoPlxuLy8gLSBbJHBhZGRpbmctYWZ0ZXJdICAgOiA8bGVuZ3RoPlxuLy8gLSBbJGZsb3ddICAgICAgICAgICAgOiBsdHIgfCBydGxcbkBtaXhpbiBmbG9hdC1zcGFuLW91dHB1dChcbiAgJHdpZHRoLFxuICAkZmxvYXQgICAgICAgICAgICA6IGZyb20sXG4gICRtYXJnaW4tYmVmb3JlICAgIDogbnVsbCxcbiAgJG1hcmdpbi1hZnRlciAgICAgOiBudWxsLFxuICAkcGFkZGluZy1iZWZvcmUgICA6IG51bGwsXG4gICRwYWRkaW5nLWFmdGVyICAgIDogbnVsbCxcbiAgJGZsb3cgICAgICAgICAgICAgOiBtYXAtZ2V0KCRzdXN5LWRlZmF1bHRzLCBmbG93KVxuKSB7XG4gICR0byAgICAgOiB0bygkZmxvdyk7XG4gICRmcm9tICAgOiBmcm9tKCRmbG93KTtcblxuICAkb3V0cHV0OiAoXG4gICAgd2lkdGg6ICR3aWR0aCxcbiAgICBmbG9hdDogaWYoJGZsb2F0ID09IHRvLCAkdG8sIG51bGwpIG9yIGlmKCRmbG9hdCA9PSBmcm9tLCAkZnJvbSwgbnVsbCksXG4gICAgbWFyZ2luLSN7JGZyb219OiAkbWFyZ2luLWJlZm9yZSxcbiAgICBtYXJnaW4tI3skdG99OiAkbWFyZ2luLWFmdGVyLFxuICAgIHBhZGRpbmctI3skZnJvbX06ICRwYWRkaW5nLWJlZm9yZSxcbiAgICBwYWRkaW5nLSN7JHRvfTogJHBhZGRpbmctYWZ0ZXIsXG4gICk7XG5cbiAgQGluY2x1ZGUgb3V0cHV0KCRvdXRwdXQpO1xufVxuIiwiLy8gRmxvYXQgRW5kcyBBUElcbi8vID09PT09PT09PT09PT09XG5cbi8vIFN1c3kgRW5kIERlZmF1bHRzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLVxuLy8gLSBQUklWQVRFXG5AaW5jbHVkZSBzdXN5LWRlZmF1bHRzKChcbiAgbGFzdC1mbG93OiB0byxcbikpO1xuXG4vLyBGbG9hdCBMYXN0XG4vLyAtLS0tLS0tLS0tXG4vLyAtIFskZmxvd10gIDogbHRyIHwgcnRsXG5AbWl4aW4gZmxvYXQtbGFzdChcbiAgJGZsb3c6IG1hcC1nZXQoJHN1c3ktZGVmYXVsdHMsIGZsb3cpLFxuICAkbGFzdC1mbG93OiBtYXAtZ2V0KCRzdXN5LWRlZmF1bHRzLCBsYXN0LWZsb3cpLFxuICAkbWFyZ2luOiAwXG4pIHtcbiAgJHRvOiB0bygkZmxvdyk7XG5cbiAgJG91dHB1dDogKFxuICAgIGZsb2F0OiBpZigkbGFzdC1mbG93ID09IHRvLCAkdG8sIG51bGwpLFxuICAgIG1hcmdpbi0jeyR0b306ICRtYXJnaW4sXG4gICk7XG5cbiAgQGluY2x1ZGUgb3V0cHV0KCRvdXRwdXQpO1xufVxuXG4vLyBGbG9hdCBGaXJzdFxuLy8gLS0tLS0tLS0tLS1cbi8vIC0gWyRmbG93XSAgOiBsdHIgfCBydGxcbkBtaXhpbiBmbG9hdC1maXJzdChcbiAgJGZsb3c6IG1hcC1nZXQoJHN1c3ktZGVmYXVsdHMsIGZsb3cpXG4pIHtcbiAgJG91dHB1dDogKFxuICAgIG1hcmdpbi0je2Zyb20oJGZsb3cpfTogMCxcbiAgKTtcblxuICBAaW5jbHVkZSBvdXRwdXQoJG91dHB1dCk7XG59XG4iLCIvLyBGbG9hdCBJc29sYXRpb24gQVBJXG4vLyA9PT09PT09PT09PT09PT09PT09XG5cbi8vIElzb2xhdGUgT3V0cHV0XG4vLyAtLS0tLS0tLS0tLS0tLVxuLy8gLSAkcHVzaCAgICA6IDxsZW5ndGg+XG4vLyAtIFskZmxvd10gIDogbHRyIHwgcnRsXG5AbWl4aW4gaXNvbGF0ZS1vdXRwdXQoXG4gICRwdXNoLFxuICAkZmxvdzogbWFwLWdldCgkc3VzeS1kZWZhdWx0cywgZmxvdylcbikge1xuICAkdG86IHRvKCRmbG93KTtcbiAgJGZyb206IGZyb20oJGZsb3cpO1xuXG4gICRvdXRwdXQ6IChcbiAgICBmbG9hdDogJGZyb20sXG4gICAgbWFyZ2luLSN7JGZyb219OiAkcHVzaCxcbiAgICBtYXJnaW4tI3skdG99OiAtMTAwJSxcbiAgKTtcblxuICBAaW5jbHVkZSBvdXRwdXQoJG91dHB1dCk7XG59XG4iLCIvLyBTdXN5IFNldHRpbmdzXG4vLyA9PT09PT09PT09PT09XG5cbi8vIFN1c3kgTGFuZ3VhZ2UgRGVmYXVsdHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIC0gUFJJVkFURVxuQGluY2x1ZGUgc3VzeS1kZWZhdWx0cygoXG4gIGNvbnRhaW5lcjogYXV0byxcbiAgbWF0aDogZmx1aWQsXG4gIG91dHB1dDogZmxvYXQsXG4gIGNvbnRhaW5lci1wb3NpdGlvbjogY2VudGVyLFxuICBndXR0ZXItcG9zaXRpb246IGFmdGVyLFxuICBnbG9iYWwtYm94LXNpemluZzogY29udGVudC1ib3gsXG4gIGRlYnVnOiAoXG4gICAgaW1hZ2U6IGhpZGUsXG4gICAgY29sb3I6IHJnYmEoIzY2ZiwgLjI1KSxcbiAgICBvdXRwdXQ6IGJhY2tncm91bmQsXG4gICAgdG9nZ2xlOiB0b3AgcmlnaHQsXG4gICksXG4pKTtcblxuXG4vLyBWYWxpZCBLZXl3b3JkIFZhbHVlc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIC0gUFJJVkFURTogRE9OVCdUIFRPVUNIXG4kc3VzeS1rZXl3b3JkczogKFxuICBjb250YWluZXI6IGF1dG8sXG4gIG1hdGg6IHN0YXRpYyBmbHVpZCxcbiAgb3V0cHV0OiBpc29sYXRlIGZsb2F0LFxuICBjb250YWluZXItcG9zaXRpb246IGxlZnQgY2VudGVyIHJpZ2h0LFxuICBmbG93OiBsdHIgcnRsLFxuICBndXR0ZXItcG9zaXRpb246IGJlZm9yZSBhZnRlciBzcGxpdCBpbnNpZGUgaW5zaWRlLXN0YXRpYyxcbiAgYm94LXNpemluZzogYm9yZGVyLWJveCBjb250ZW50LWJveCxcbiAgc3BhbjogZnVsbCxcbiAgZWRnZTogZmlyc3QgYWxwaGEgbGFzdCBvbWVnYSBmdWxsLFxuICBzcHJlYWQ6IG5hcnJvdyB3aWRlIHdpZGVyLFxuICBndXR0ZXItb3ZlcnJpZGU6IG5vLWd1dHRlcnMgbm8tZ3V0dGVyLFxuICByb2xlOiBuZXN0LFxuICBjbGVhcjogYnJlYWsgbm9icmVhayxcbiAgZGVidWcgaW1hZ2U6IHNob3cgaGlkZSBzaG93LWNvbHVtbnMgc2hvdy1iYXNlbGluZSxcbiAgZGVidWcgb3V0cHV0OiBiYWNrZ3JvdW5kIG92ZXJsYXksXG4pO1xuXG5cbi8vIFBhcnNlIFN1c3kgS2V5d29yZHMgYW5kIE1hcHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBmdW5jdGlvbiBwYXJzZS1zZXR0aW5ncyhcbiAgJHNob3J0OiAkc3VzeVxuKSB7XG4gICRfcmV0dXJuOiAoKTtcblxuICBAaWYgdHlwZS1vZigkc2hvcnQpID09IG1hcCB7XG4gICAgJF9yZXR1cm46ICRzaG9ydDtcbiAgfSBAZWxzZSB7XG4gICAgQGVhY2ggJGl0ZW0gaW4gJHNob3J0IHtcbiAgICAgIC8vIHN0cmluZ3NcbiAgICAgIEBpZiB0eXBlLW9mKCRpdGVtKSA9PSBzdHJpbmcge1xuICAgICAgICBAZWFjaCAka2V5LCAkdmFsdWUgaW4gJHN1c3kta2V5d29yZHMge1xuICAgICAgICAgIEBpZiBpbmRleCgkdmFsdWUsICRpdGVtKSB7XG4gICAgICAgICAgICAkX2tleS12YWx1ZTogYXBwZW5kKCRrZXksICRpdGVtKTtcbiAgICAgICAgICAgICRfcmV0dXJuOiBfc3VzeS1kZWVwLXNldCgkX3JldHVybiwgJF9rZXktdmFsdWUuLi4pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgLy8gbWFwc1xuICAgICAgfSBAZWxzZSBpZiB0eXBlLW9mKCRpdGVtKSA9PSBtYXAge1xuICAgICAgICAkX3JldHVybjogbWFwLW1lcmdlKCRfcmV0dXJuLCAkaXRlbSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkX3JldHVybjtcbn1cblxuXG4vLyBQYXJzZSBDb2x1bW5zICYgR3V0dGVyc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBmdW5jdGlvbiBwYXJzZS1sYXlvdXQoXG4gICRzaG9ydFxuKSB7XG4gICRfcmV0dXJuOiAoKTtcbiAgJF9jb2x1bW5zOiAoKTtcbiAgJF9ndXR0ZXJzOiBudWxsO1xuXG4gIEBpZiBub3QodW5pdGxlc3MobnRoKG50aCgkc2hvcnQsIDEpLCAxKSkpIHtcbiAgICAkX2d1dHRlcnM6IG50aCgkc2hvcnQsIDEpO1xuICB9IEBlbHNlIHtcbiAgICAkX2NvbHVtbnM6IChjb2x1bW5zOiBudGgoJHNob3J0LCAxKSk7XG4gICAgJF9ndXR0ZXJzOiBpZihsZW5ndGgoJHNob3J0KSA+IDEsIG50aCgkc2hvcnQsIDIpLCAkX2d1dHRlcnMpO1xuICB9XG5cbiAgQGlmIHR5cGUtb2YoJF9ndXR0ZXJzKSA9PSBsaXN0IGFuZCBsZW5ndGgoJF9ndXR0ZXJzKSA+IDAge1xuICAgICRfZ3V0dGVyczogKFxuICAgICAgZ3V0dGVyczogbnRoKCRfZ3V0dGVycywgMikgLyBudGgoJF9ndXR0ZXJzLCAxKSxcbiAgICAgIGNvbHVtbi13aWR0aDogbnRoKCRfZ3V0dGVycywgMSksXG4gICAgKTtcbiAgfSBAZWxzZSB7XG4gICAgJF9ndXR0ZXJzOiBpZigkX2d1dHRlcnMsIChndXR0ZXJzOiAkX2d1dHRlcnMpLCAoKSk7XG4gIH1cblxuICAkX3JldHVybjogbWFwLW1lcmdlKCRfcmV0dXJuLCAkX2NvbHVtbnMpO1xuICAkX3JldHVybjogbWFwLW1lcmdlKCRfcmV0dXJuLCAkX2d1dHRlcnMpO1xuXG4gIEByZXR1cm4gJF9yZXR1cm47XG59XG5cblxuLy8gUGFyc2UgR3JpZC9Db250ZXh0XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS1cbkBmdW5jdGlvbiBwYXJzZS1ncmlkKFxuICAkc2hvcnQ6ICRzdXN5XG4pIHtcbiAgJF9yZXR1cm46IHBhcnNlLXNldHRpbmdzKCRzaG9ydCk7XG4gICRfbGF5b3V0OiAoKTtcblxuICBAaWYgdHlwZS1vZigkc2hvcnQpID09IG1hcCB7XG4gICAgJF9yZXR1cm46ICRzaG9ydDtcbiAgfSBAZWxzZSB7XG4gICAgQGVhY2ggJGl0ZW0gaW4gJHNob3J0IHtcbiAgICAgIC8vIG51bWJlciBvciBsaXN0XG4gICAgICBAaWYgdHlwZS1vZigkaXRlbSkgPT0gbnVtYmVyIG9yIHR5cGUtb2YoJGl0ZW0pID09IGxpc3Qge1xuICAgICAgICBAaWYgdHlwZS1vZigkaXRlbSkgPT0gbGlzdCBvciB1bml0bGVzcygkaXRlbSkge1xuICAgICAgICAgICRfbGF5b3V0OiBhcHBlbmQoJF9sYXlvdXQsICRpdGVtKTtcbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgJF9yZXR1cm46IG1hcC1tZXJnZSgkX3JldHVybiwgKGNvbnRhaW5lcjogJGl0ZW0pKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICRfbGF5b3V0OiBpZihsZW5ndGgoJF9sYXlvdXQpID4gMCwgcGFyc2UtbGF5b3V0KCRfbGF5b3V0KSwgJF9sYXlvdXQpO1xuICB9XG5cbiAgQHJldHVybiBtYXAtbWVyZ2UoJF9yZXR1cm4sICRfbGF5b3V0KTtcbn1cblxuXG4vLyBQYXJzZSBTcGFuXG4vLyAtLS0tLS0tLS0tXG5AZnVuY3Rpb24gcGFyc2Utc3BhbihcbiAgJHNob3J0LFxuICAka2V5OiBzcGFuXG4pIHtcbiAgJF9yZXR1cm46ICgpO1xuXG4gIEBpZiB0eXBlLW9mKCRzaG9ydCkgPT0gbWFwIHtcbiAgICAkX3JldHVybjogJHNob3J0O1xuICB9IEBlbHNlIHtcbiAgICAkX2F0OiBpbmRleCgkc2hvcnQsIGF0KTtcblxuICAgIEBpZiAkX2F0IHtcbiAgICAgICRfbG9jaTogJF9hdCArIDE7XG4gICAgICAkX2xvY2F0aW9uOiBudGgoJHNob3J0LCAkX2xvY2kpO1xuICAgICAgJF9yZXR1cm46IG1hcC1tZXJnZSgkX3JldHVybiwgKGxvY2F0aW9uOiAkX2xvY2F0aW9uKSk7XG4gICAgICAkc2hvcnQ6IHNldC1udGgoJHNob3J0LCAkX2F0LCBudWxsKTtcbiAgICAgICRzaG9ydDogc2V0LW50aCgkc2hvcnQsICRfbG9jaSwgbnVsbCk7XG4gICAgfVxuXG4gICAgJF9pOiAxO1xuICAgICRfc3BhbjogKCk7XG5cbiAgICBAd2hpbGUgJF9pIDw9IGxlbmd0aCgkc2hvcnQpIHtcbiAgICAgICRfdGhpczogbnRoKCRzaG9ydCwgJF9pKTtcblxuICAgICAgQGlmIHR5cGUtb2YoJF90aGlzKSA9PSBudW1iZXIge1xuICAgICAgICAkX3NwYW46IGFwcGVuZCgkX3NwYW4sICRfdGhpcyk7XG4gICAgICAgICRzaG9ydDogc2V0LW50aCgkc2hvcnQsICRfaSwgbnVsbCk7XG4gICAgICB9IEBlbHNlIGlmICRfdGhpcyA9PSBvZiB7XG4gICAgICAgICRzaG9ydDogc2V0LW50aCgkc2hvcnQsICRfaSwgbnVsbCk7XG4gICAgICAgICRfaTogbGVuZ3RoKCRzaG9ydCkgKyAxO1xuICAgICAgfVxuXG4gICAgICAkX2k6ICRfaSArIDE7XG4gICAgfVxuXG4gICAgQGlmIGxlbmd0aCgkX3NwYW4pID4gMCB7XG4gICAgICAkX3NwYW46IGlmKGxlbmd0aCgkX3NwYW4pID09IDEsIG50aCgkX3NwYW4sIDEpLCAkX3NwYW4pO1xuICAgICAgJF9yZXR1cm46IG1hcC1tZXJnZSgkX3JldHVybiwgKCRrZXk6ICRfc3BhbikpO1xuICAgIH1cblxuICAgICRfcmV0dXJuOiBtYXAtbWVyZ2UoJF9yZXR1cm4sIHBhcnNlLWdyaWQoJHNob3J0KSk7XG4gIH1cblxuICBAcmV0dXJuICRfcmV0dXJuO1xufVxuXG5cbi8vIFBhcnNlIEd1dHRlcnNcbi8vIC0tLS0tLS0tLS0tLS1cbkBmdW5jdGlvbiBwYXJzZS1ndXR0ZXJzKFxuICAkc2hvcnQ6ICRzdXN5XG4pIHtcbiAgJF9ndXR0ZXJzOiBwYXJzZS1zcGFuKCRzaG9ydCwgZ3V0dGVyLW92ZXJyaWRlKTtcbiAgJF9zcGFuOiBzdXN5LWdldChndXR0ZXItb3ZlcnJpZGUsICRfZ3V0dGVycyk7XG5cbiAgQGlmICRfc3BhbiBhbmQgbm90KG1hcC1nZXQoJF9ndXR0ZXJzLCBjb2x1bW5zKSkge1xuICAgICRfY29udGV4dDogKCk7XG4gICAgJF9uZXc6ICgpO1xuXG4gICAgQGVhY2ggJGl0ZW0gaW4gJF9zcGFuIHtcbiAgICAgIEBpZiB0eXBlLW9mKCRpdGVtKSA9PSBudW1iZXIgYW5kIHVuaXRsZXNzKCRpdGVtKSB7XG4gICAgICAgICRfY29udGV4dDogYXBwZW5kKCRfY29udGV4dCwgJGl0ZW0pO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgICRfbmV3OiBhcHBlbmQoJF9uZXcsICRpdGVtKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAkX2NvbnRleHQ6IHBhcnNlLWdyaWQoJF9jb250ZXh0KTtcbiAgICAkX25ldzogaWYobGVuZ3RoKCRfbmV3KSA9PSAwLCBudWxsLCAkX25ldyk7XG4gICAgJF9uZXc6IGlmKGxlbmd0aCgkX25ldykgPT0gMSwgbnRoKCRfbmV3LCAxKSwgJF9uZXcpO1xuICAgICRfbmV3OiAoZ3V0dGVyLW92ZXJyaWRlOiBpZigkX25ldyAhPSAkX3NwYW4sICRfbmV3LCAkX3NwYW4pKTtcblxuICAgICRfZ3V0dGVyczogbWFwLW1lcmdlKCRfZ3V0dGVycywgJF9uZXcpO1xuICAgICRfZ3V0dGVyczogbWFwLW1lcmdlKCRfZ3V0dGVycywgJF9jb250ZXh0KTtcbiAgfVxuXG4gIEByZXR1cm4gJF9ndXR0ZXJzO1xufVxuIiwiLy8gVmFsaWRhdGlvblxuLy8gPT09PT09PT09PVxuXG5cbi8vIFZhbGlkYXRlIENvbHVtbiBNYXRoXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLVxuQGZ1bmN0aW9uIHZhbGlkLWNvbHVtbi1tYXRoKFxuICAkbWF0aCxcbiAgJGNvbHVtbi13aWR0aFxuKSB7XG4gIEBpZiAkbWF0aCA9PSBzdGF0aWMgYW5kIG5vdCgkY29sdW1uLXdpZHRoKSB7XG4gICAgQGVycm9yICdTdGF0aWMgbWF0aCByZXF1aXJlcyBhIHZhbGlkIGNvbHVtbi13aWR0aCBzZXR0aW5nLic7XG4gIH1cblxuICBAcmV0dXJuICRjb2x1bW4td2lkdGg7XG59XG4iLCIvLyBHcmlkIFN5bnRheFxuLy8gPT09PT09PT09PT1cblxuXG4vLyBMYXlvdXRcbi8vIC0tLS0tLVxuLy8gU2V0IGEgbmV3IGxheW91dCB1c2luZyBhIHNob3J0aGFuZFxuLy8gLSAkbGF5b3V0OiA8c2V0dGluZ3M+XG4vLyAtICRjbGVhbjogYm9vbGVhblxuQG1peGluIGxheW91dChcbiAgJGxheW91dCxcbiAgJGNsZWFuOiBmYWxzZVxuKSB7XG4gICRpbnNwZWN0ICA6ICRsYXlvdXQ7XG4gICRzdXN5ICAgICA6IF9nZXQtbGF5b3V0KCRsYXlvdXQsICRjbGVhbikgIWdsb2JhbDtcblxuICBAaW5jbHVkZSBzdXN5LWluc3BlY3QobGF5b3V0LCAkaW5zcGVjdCk7XG59XG5cblxuLy8gVXNlIEdyaWRcbi8vIC0tLS0tLS0tXG4vLyBVc2UgYW4gYXJiaXRyYXJ5IGxheW91dCBmb3IgYSBzZWN0aW9uIG9mIGNvZGVcbi8vIC0gJGxheW91dDogPHNldHRpbmdzPlxuLy8gLSAkY2xlYW46IGJvb2xlYW5cbkBtaXhpbiB3aXRoLWxheW91dChcbiAgJGxheW91dCxcbiAgJGNsZWFuOiBmYWxzZVxuKSB7XG4gICRpbnNwZWN0ICA6ICRsYXlvdXQ7XG4gICRvbGQgICAgICA6ICRzdXN5O1xuICAkc3VzeSAgICAgOiBfZ2V0LWxheW91dCgkbGF5b3V0LCAkY2xlYW4pICFnbG9iYWw7XG5cbiAgQGluY2x1ZGUgc3VzeS1pbnNwZWN0KHdpdGgtbGF5b3V0LCAkaW5zcGVjdCk7XG5cbiAgQGNvbnRlbnQ7XG5cbiAgJHN1c3k6ICRvbGQgIWdsb2JhbDtcbn1cblxuXG4vLyBMYXlvdXRcbi8vIC0tLS0tLVxuLy8gUmV0dXJuIGEgcGFyc2VkIGxheW91dCBtYXAgYmFzZWQgb24gc2hvcnRoYW5kIHN5bnRheFxuLy8gLSAkbGF5b3V0OiA8c2V0dGluZ3M+XG5AZnVuY3Rpb24gbGF5b3V0KFxuICAkbGF5b3V0OiAkc3VzeVxuKSB7XG4gIEByZXR1cm4gcGFyc2UtZ3JpZCgkbGF5b3V0KTtcbn1cblxuXG4vLyBHZXQgTGF5b3V0XG4vLyAtLS0tLS0tLS0tXG4vLyBSZXR1cm4gYSBuZXcgbGF5b3V0IGJhc2VkIG9uIGN1cnJlbnQgYW5kIGdpdmVuIHNldHRpbmdzXG4vLyAtICRsYXlvdXQ6IDxzZXR0aW5ncz5cbi8vIC0gJGNsZWFuOiBib29sZWFuXG5AZnVuY3Rpb24gX2dldC1sYXlvdXQoXG4gICRsYXlvdXQsXG4gICRjbGVhbjogZmFsc2Vcbikge1xuICAkbGF5b3V0OiBsYXlvdXQoJGxheW91dCk7XG4gIEByZXR1cm4gaWYoJGNsZWFuLCAkbGF5b3V0LCBfc3VzeS1kZWVwLW1lcmdlKCRzdXN5LCAkbGF5b3V0KSk7XG59XG4iLCIvLyBTdXN5IEJveCBTaXppbmdcbi8vID09PT09PT09PT09PT09PT09XG5cbi8vIEdsb2JhbCBCb3ggU2l6aW5nXG4vLyAtLS0tLS0tLS0tLS0tLS0tLVxuLy8gU2V0IGEgYm94IG1vZGVsIGdsb2JhbGx5IG9uIGFsbCBlbGVtZW50cy5cbi8vIC0gWyRib3hdOiBib3JkZXItYm94IHwgY29udGVudC1ib3hcbi8vIC0gWyRpbmhlcml0XTogdHJ1ZSB8IGZhbHNlXG5AbWl4aW4gZ2xvYmFsLWJveC1zaXppbmcoXG4gICRib3g6IHN1c3ktZ2V0KGdsb2JhbC1ib3gtc2l6aW5nKSxcbiAgJGluaGVyaXQ6IGZhbHNlXG4pIHtcbiAgJGluc3BlY3Q6ICRib3g7XG5cbiAgQGlmICRpbmhlcml0IHtcbiAgICBAYXQtcm9vdCB7XG4gICAgICAgaHRtbCB7IEBpbmNsdWRlIG91dHB1dCgoYm94LXNpemluZzogJGJveCkpOyB9XG4gICAgICAgKiwgKjpiZWZvcmUsICo6YWZ0ZXIgeyBib3gtc2l6aW5nOiBpbmhlcml0OyB9XG4gICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgKiwgKjpiZWZvcmUsICo6YWZ0ZXIgeyBAaW5jbHVkZSBvdXRwdXQoKGJveC1zaXppbmc6ICRib3gpKTsgfVxuICB9XG5cbiAgQGluY2x1ZGUgc3VzeS1pbnNwZWN0KGdsb2JhbC1ib3gtc2l6aW5nLCAkaW5zcGVjdCk7XG4gIEBpbmNsdWRlIHVwZGF0ZS1ib3gtbW9kZWwoJGJveCk7XG59XG5cbi8vIEJvcmRlciBCb3ggU2l6aW5nXG4vLyAtLS0tLS0tLS0tLS0tLS0tLVxuLy8gQSBsZWdhY3kgc2hvcnRjdXQuLi5cbi8vIC0gWyRpbmhlcml0XTogdHJ1ZSB8IGZhbHNlXG5AbWl4aW4gYm9yZGVyLWJveC1zaXppbmcoXG4gICRpbmhlcml0OiBmYWxzZVxuKSB7XG4gIEBpbmNsdWRlIGdsb2JhbC1ib3gtc2l6aW5nKGJvcmRlci1ib3gsICRpbmhlcml0KTtcbn1cblxuLy8gVXBkYXRlIEJveCBNb2RlbFxuLy8gLS0tLS0tLS0tLS0tLS0tLVxuLy8gUFJJVkFURTogVXBkYXRlcyBnbG9iYWwgYm94IG1vZGVsIHNldHRpbmdcbkBtaXhpbiB1cGRhdGUtYm94LW1vZGVsKFxuICAkYm94XG4pIHtcbiAgQGlmICRib3ggIT0gc3VzeS1nZXQoZ2xvYmFsLWJveC1zaXppbmcpIHtcbiAgQGluY2x1ZGUgc3VzeS1zZXQoZ2xvYmFsLWJveC1zaXppbmcsICRib3gpO1xuICB9XG59XG4iLCIvLyBDb250ZXh0IFN5bnRheFxuLy8gPT09PT09PT09PT09PT1cblxuLy8gTmVzdGVkIFtmdW5jdGlvbl1cbi8vIC0tLS0tLS0tLS0tLS0tLS0tXG4vLyBSZXR1cm4gYSBzdWJzZXQgZ3JpZCBmb3IgbmVzdGVkIGNvbnRleHQuXG4vLyAtICRjb250ZXh0ICAgOiA8c3Bhbj5cbkBmdW5jdGlvbiBuZXN0ZWQoXG4gICRjb250ZXh0XG4pIHtcbiAgJGNvbnRleHQgICAgOiBwYXJzZS1zcGFuKCRjb250ZXh0KTtcbiAgJHNwYW4gICAgICAgOiBzdXN5LWdldChzcGFuLCAkY29udGV4dCk7XG4gICRsb2NhdGlvbiAgIDogZ2V0LWxvY2F0aW9uKCRjb250ZXh0KTtcbiAgJGNvbHVtbnMgICAgOiBzdXN5LWdldChjb2x1bW5zLCAkY29udGV4dCk7XG5cbiAgQHJldHVybiBzdXN5LXNsaWNlKCRzcGFuLCAkbG9jYXRpb24sICRjb2x1bW5zKTtcbn1cblxuLy8gTmVzdGVkIFttaXhpbl1cbi8vIC0tLS0tLS0tLS0tLS0tXG4vLyBVc2UgYSBzdWJzZXQgZ3JpZCBmb3IgYSBuZXN0ZWQgY29udGV4dFxuLy8gLSAkY29udGV4dCAgIDogPHNwYW4+XG4vLyAtIEBjb250ZW50ICAgOiA8Y29udGVudD5cbkBtaXhpbiBuZXN0ZWQoXG4gICRjb250ZXh0XG4pIHtcbiAgJGluc3BlY3QgIDogJGNvbnRleHQ7XG4gICRjb250ZXh0ICA6IHBhcnNlLXNwYW4oJGNvbnRleHQpO1xuICAkb2xkICAgICAgOiBzdXN5LWdldChjb2x1bW5zKTtcbiAgJHN1c3kgICAgIDogbWFwLW1lcmdlKCRzdXN5LCAoY29sdW1uczogbmVzdGVkKCRjb250ZXh0KSkpICFnbG9iYWw7XG5cbiAgQGluY2x1ZGUgc3VzeS1pbnNwZWN0KG5lc3RlZCwgJGluc3BlY3QpO1xuICBAY29udGVudDtcblxuICAkc3VzeSAgICAgOiBtYXAtbWVyZ2UoJHN1c3ksIChjb2x1bW5zOiAkb2xkKSkgIWdsb2JhbDtcbn1cbiIsIi8vIEJhY2tncm91bmQgR3JpZCBTeW50YXhcbi8vID09PT09PT09PT09PT09PT09PT09PT1cblxuJHN1c3ktb3ZlcmxheS1ncmlkLWhlYWQtZXhpc3RzOiBmYWxzZTtcblxuXG4vLyBTaG93IEdyaWQvc1xuLy8gLS0tLS0tLS0tLS1cbi8vIFNob3cgZ3JpZCBvbiBhbnkgZWxlbWVudCB1c2luZyBlaXRoZXIgYmFja2dyb3VuZCBvciBvdmVybGF5LlxuLy8gLSBbJGdyaWRdICA6IDxzZXR0aW5ncz5cbkBtaXhpbiBzaG93LWdyaWQoXG4gICRncmlkOiAkc3VzeVxuKSB7XG4gICRpbnNwZWN0OiAkZ3JpZDtcbiAgJF9vdXRwdXQ6IGRlYnVnLWdldChvdXRwdXQsICRncmlkKTtcblxuICBAaW5jbHVkZSBzdXN5LWluc3BlY3Qoc2hvdy1ncmlkLCAkaW5zcGVjdCk7XG4gIEBpZiAkX291dHB1dCA9PSBvdmVybGF5IGFuZCBzdXN5LWdldChkZWJ1ZyBpbWFnZSwgJGdyaWQpICE9IGhpZGUge1xuICAgIEBpbmNsdWRlIG92ZXJsYXktZ3JpZCgkZ3JpZCk7XG4gIH0gQGVsc2Uge1xuICAgIEBpbmNsdWRlIGJhY2tncm91bmQtZ3JpZCgkZ3JpZCk7XG4gIH1cbn1cblxuQG1peGluIHNob3ctZ3JpZHMoXG4gICRncmlkOiAkc3VzeVxuKSB7XG4gIEBpbmNsdWRlIHNob3ctZ3JpZCgkZ3JpZCk7XG59XG5cbi8vIEJhY2tncm91bmQgR3JpZFxuLy8gLS0tLS0tLS0tLS0tLS0tXG4vLyBTaG93IGEgZ3JpZCBiYWNrZ3JvdW5kIG9uIGFueSBlbGVtZW50LlxuLy8gLSBbJGdyaWRdICA6IDxzZXR0aW5ncz5cbkBtaXhpbiBiYWNrZ3JvdW5kLWdyaWQoXG4gICRncmlkOiAkc3VzeVxuKSB7XG4gICRpbnNwZWN0ICA6ICRncmlkO1xuICAkX291dHB1dCAgOiBnZXQtYmFja2dyb3VuZCgkZ3JpZCk7XG5cbiAgQGlmIGxlbmd0aCgkX291dHB1dCkgPiAwIHtcbiAgICAkX2Zsb3c6IHN1c3ktZ2V0KGZsb3csICRncmlkKTtcblxuICAgICRfaW1hZ2U6ICgpO1xuICAgIEBlYWNoICRuYW1lLCAkbGF5ZXIgaW4gbWFwLWdldCgkX291dHB1dCwgaW1hZ2UpIHtcbiAgICAgICRfZGlyZWN0aW9uOiBpZigkbmFtZSA9PSBiYXNlbGluZSwgdG8gYm90dG9tLCB0byB0bygkX2Zsb3cpKTtcbiAgICAgICRfaW1hZ2U6IGFwcGVuZCgkX2ltYWdlLCBsaW5lYXItZ3JhZGllbnQoJF9kaXJlY3Rpb24sICRsYXllciksIGNvbW1hKTtcbiAgICB9XG4gICAgJF9vdXRwdXQ6IG1hcC1tZXJnZSgkX291dHB1dCwgKGltYWdlOiAkX2ltYWdlKSk7XG5cbiAgICBAaW5jbHVkZSBiYWNrZ3JvdW5kLWdyaWQtb3V0cHV0KCRfb3V0cHV0Li4uKTtcbiAgICBAaW5jbHVkZSBzdXN5LWluc3BlY3QoYmFja2dyb3VuZC1ncmlkLCAkaW5zcGVjdCk7XG4gIH1cbn1cblxuXG4vLyBPdmVybGF5IEdyaWRcbi8vIC0tLS0tLS0tLS0tLVxuLy8gR2VuZXJhdGUgYW4gaWNvbiB0byB0cmlnZ2VyIGdyaWQtb3ZlcmxheXMgb24gYW55IGdpdmVuIGVsZW1lbnRzLlxuLy8gJGdyaWRzLi4uICA6IDxzZWxlY3Rvcj4gWzxzZXR0aW5ncz5dIFssIDxzZWxlY3Rvcj5dKlxuQG1peGluIG92ZXJsYXktZ3JpZCAoXG4gICRncmlkOiAkc3VzeVxuKSB7XG4gIEBpZiBub3QoJHN1c3ktb3ZlcmxheS1ncmlkLWhlYWQtZXhpc3RzKSB7XG4gICAgQGF0LXJvb3QgaGVhZCB7IEBpbmNsdWRlIG92ZXJsYXktaGVhZCgkZ3JpZCk7IH1cbiAgICBAYXQtcm9vdCBoZWFkOmJlZm9yZSB7IEBpbmNsdWRlIG92ZXJsYXktdHJpZ2dlcjsgfVxuICAgIEBhdC1yb290IGhlYWQ6aG92ZXIgeyBAaW5jbHVkZSBvdmVybGF5LXRyaWdnZXItaG92ZXI7IH1cbiAgICAkc3VzeS1vdmVybGF5LWdyaWQtaGVhZC1leGlzdHM6IHRydWUgIWdsb2JhbDtcbiAgfVxuXG4gIGhlYWQ6aG92ZXIgfiAmLFxuICBoZWFkOmhvdmVyIH4gYm9keSAmIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgJjpiZWZvcmUge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1vdmVybGF5LWJhc2U7XG4gICAgICBAaW5jbHVkZSBiYWNrZ3JvdW5kLWdyaWQoJGdyaWQpO1xuICAgIH1cbiAgfVxufVxuXG5cbi8vIFtQcml2YXRlXSBPdmVybGF5IFRyaWdnZXJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBtaXhpbiBvdmVybGF5LXRyaWdnZXIge1xuICBjb250ZW50OiBcInx8fFwiO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogNXB4IDEwcHg7XG4gIGZvbnQ6IHtcbiAgICBmYW1pbHk6IHNhbnMtc2VyaWY7XG4gICAgc2l6ZTogMTZweDtcbiAgICB3ZWlnaHQ6IGJvbGQ7XG4gIH1cbn1cblxuXG4vLyBbUHJpdmF0ZV0gT3ZlcmxheSBUcmlnZ2VyIEhvdmVyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AbWl4aW4gb3ZlcmxheS10cmlnZ2VyLWhvdmVyIHtcbiAgYmFja2dyb3VuZDogcmdiYSh3aGl0ZSwgLjUpO1xuICBjb2xvcjogcmVkO1xufVxuXG5cbi8vIFtQcml2YXRlXSBPdmVybGF5IEhlYWRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIDxoZWFkPiBzdHlsZXMgdG8gY3JlYXRlIGdyaWQgb3ZlcmxheSB0b2dnbGVcbkBtaXhpbiBvdmVybGF5LWhlYWQgKFxuICAkZ3JpZDogJHN1c3lcbikge1xuICAkX3RvZ2dsZTogZGVidWctZ2V0KHRvZ2dsZSwgJGdyaWQpO1xuICAkX2hvcno6IG51bGw7XG4gICRfdmVydDogbnVsbDtcblxuICBAZWFjaCAkc2lkZSBpbiAkX3RvZ2dsZSB7XG4gICAgJF9ob3J6OiBpZigkc2lkZSA9PSBsZWZ0IG9yICRzaWRlID09IHJpZ2h0LCAkc2lkZSwgJF9ob3J6KTtcbiAgICAkX3ZlcnQ6IGlmKCRzaWRlID09IHRvcCBvciAkc2lkZSA9PSBib3R0b20sICRzaWRlLCAkX3ZlcnQpO1xuICB9XG5cbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgI3skX2hvcnp9OiAxMHB4O1xuICAjeyRfdmVydH06IDEwcHg7XG4gIHotaW5kZXg6IDk5OTtcbiAgY29sb3I6ICMzMzM7XG4gIGJhY2tncm91bmQ6IHJnYmEod2hpdGUsIC4yNSk7XG59XG5cblxuLy8gW1ByaXZhdGVdIEdyaWQgT3ZlcmxheSBCYXNlXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEJhc2Ugc3R5bGVzIGZvciBnZW5lcmF0aW5nIGEgZ3JpZCBvdmVybGF5XG5AbWl4aW4gZ3JpZC1vdmVybGF5LWJhc2UoKSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBib3R0b206IDA7XG4gIHJpZ2h0OiAwO1xuICBjb250ZW50OiBcIiBcIjtcbiAgei1pbmRleDogOTk4O1xufVxuXG5cbi8vIEdldCBTeW1tZXRyaWNhbCBCYWNrZ3JvdW5kXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gLSAkZ3JpZDogPG1hcD5cbkBmdW5jdGlvbiBnZXQtYmFja2dyb3VuZC1zeW0oXG4gICRncmlkXG4pIHtcbiAgJGdyaWQgICAgICAgICAgIDogcGFyc2UtZ3JpZCgkZ3JpZCk7XG4gICRfZ3V0dGVycyAgICAgICA6IHN1c3ktZ2V0KGd1dHRlcnMsICRncmlkKTtcbiAgJF9jb2x1bW4td2lkdGggIDogc3VzeS1nZXQoY29sdW1uLXdpZHRoLCAkZ3JpZCk7XG4gICRfbWF0aCAgICAgICAgICA6IHN1c3ktZ2V0KG1hdGgsICRncmlkKTtcblxuICAkX2NvbG9yICAgICAgICAgOiBkZWJ1Zy1nZXQoY29sb3IpO1xuICAkX3RyYW5zICAgICAgICAgOiB0cmFuc3BhcmVudDtcbiAgJF9saWdodCAgICAgICAgIDogbGlnaHRlbigkX2NvbG9yLCAxNSUpO1xuXG4gICRfZW5kICAgICAgICAgICA6IDEgKyAkX2d1dHRlcnM7XG4gICRfYWZ0ZXIgICAgICAgICA6IHBlcmNlbnRhZ2UoMS8kX2VuZCk7XG4gICRfc3RvcHMgICAgICAgICA6ICgpO1xuICAkX3NpemUgICAgICAgICAgOiBzcGFuKDEgJGdyaWQgd2lkZSk7XG5cbiAgQGlmIGlzLWluc2lkZSgkZ3JpZCkge1xuICAgICRfc3RvcHM6ICRfY29sb3IsICRfbGlnaHQ7XG4gIH0gQGVsc2UgaWYgaXMtc3BsaXQoJGdyaWQpIHtcbiAgICAkX3NwbGl0OiAkX2d1dHRlcnMvMjtcbiAgICAkX2JlZm9yZTogcGVyY2VudGFnZSgkX3NwbGl0LyRfZW5kKTtcbiAgICAkX2FmdGVyOiBwZXJjZW50YWdlKCgxICsgJF9zcGxpdCkvJF9lbmQpO1xuICAgICRfc3RvcHM6ICRfdHJhbnMgJF9iZWZvcmUsICRfY29sb3IgJF9iZWZvcmUsICRfbGlnaHQgJF9hZnRlciwgJF90cmFucyAkX2FmdGVyO1xuICB9IEBlbHNlIHtcbiAgICAkX3N0b3BzOiAkX2NvbG9yLCAkX2xpZ2h0ICRfYWZ0ZXIsICRfdHJhbnMgJF9hZnRlcjtcbiAgfVxuXG4gIEBpZiAkX21hdGggPT0gc3RhdGljIHtcbiAgICAkX3NpemU6IHZhbGlkLWNvbHVtbi1tYXRoKCRfbWF0aCwgJF9jb2x1bW4td2lkdGgpICogJF9lbmQ7XG4gIH1cblxuICAkX291dHB1dDogKFxuICAgIGltYWdlOiAoY29sdW1uczogJF9zdG9wcyksXG4gICAgc2l6ZTogJF9zaXplLFxuICApO1xuXG4gIEByZXR1cm4gJF9vdXRwdXQ7XG59XG5cblxuLy8gR2V0IEFzeW1tZXRyaWNhbCBJbnNpZGVcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAtICRncmlkOiA8c2V0dGluZ3M+XG5AZnVuY3Rpb24gZ2V0LWFzeW0taW5zaWRlKFxuICAkZ3JpZFxuKSB7XG4gICRncmlkICAgICA6IHBhcnNlLWdyaWQoJGdyaWQpO1xuICAkX2NvbHVtbnMgOiBzdXN5LWdldChjb2x1bW5zLCAkZ3JpZCk7XG5cbiAgJF9jb2xvciAgIDogZGVidWctZ2V0KGNvbG9yKTtcbiAgJF9saWdodCAgIDogbGlnaHRlbigkX2NvbG9yLCAxNSUpO1xuICAkX3N0b3BzICAgOiAoKTtcblxuICBAZm9yICRsb2NhdGlvbiBmcm9tIDEgdGhyb3VnaCBzdXN5LWNvdW50KCRfY29sdW1ucykge1xuICAgICR0aGlzLXN0b3A6ICgpO1xuXG4gICAgQGlmICRsb2NhdGlvbiA9PSAxIHtcbiAgICAgICR0aGlzLXN0b3A6IGFwcGVuZCgkdGhpcy1zdG9wLCAkX2NvbG9yLCBjb21tYSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkc3RhcnQ6IHBhcnNlLXNwYW4oMSBhdCAkbG9jYXRpb24gJGdyaWQpO1xuICAgICAgJHN0YXJ0OiBnZXQtaXNvbGF0aW9uKCRzdGFydCk7XG4gICAgICAkdGhpcy1zdG9wOiBhcHBlbmQoJHRoaXMtc3RvcCwgJF9jb2xvciAkc3RhcnQsIGNvbW1hKTtcbiAgICB9XG5cbiAgICBAaWYgJGxvY2F0aW9uID09IHN1c3ktY291bnQoJF9jb2x1bW5zKSB7XG4gICAgICAkdGhpcy1zdG9wOiBhcHBlbmQoJHRoaXMtc3RvcCwgJF9saWdodCwgY29tbWEpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJF9lbmQ6IHBhcnNlLXNwYW4oMSBhdCAoJGxvY2F0aW9uICsgMSkgJGdyaWQpO1xuICAgICAgJF9lbmQ6IGdldC1pc29sYXRpb24oJF9lbmQpO1xuICAgICAgJHRoaXMtc3RvcDogYXBwZW5kKCR0aGlzLXN0b3AsICRfbGlnaHQgJF9lbmQsIGNvbW1hKTtcbiAgICB9XG5cbiAgICAkX3N0b3BzOiBqb2luKCRfc3RvcHMsICR0aGlzLXN0b3AsIGNvbW1hKTtcbiAgfVxuXG4gIEByZXR1cm4gJF9zdG9wcztcbn1cblxuXG4vLyBHZXQgQXN5bW1ldHJpY2FsIFNwbGl0XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAtICRncmlkOiA8c2V0dGluZ3M+XG5AZnVuY3Rpb24gZ2V0LWFzeW0tc3BsaXQoXG4gICRncmlkXG4pIHtcbiAgJGdyaWQgICAgIDogcGFyc2UtZ3JpZCgkZ3JpZCk7XG4gICRfY29sdW1ucyA6IHN1c3ktZ2V0KGNvbHVtbnMsICRncmlkKTtcblxuICAkX2NvbG9yICAgOiBkZWJ1Zy1nZXQoY29sb3IpO1xuICAkX2xpZ2h0ICAgOiBsaWdodGVuKCRfY29sb3IsIDE1JSk7XG4gICRfc3RvcHMgICA6ICgpO1xuXG4gIEBmb3IgJGxvY2F0aW9uIGZyb20gMSB0aHJvdWdoIHN1c3ktY291bnQoJF9jb2x1bW5zKSB7XG4gICAgJHRoaXMtc3RvcDogKCk7XG5cbiAgICAkc3RhcnQ6IHBhcnNlLXNwYW4oMSBhdCAkbG9jYXRpb24gJGdyaWQpO1xuICAgICRzdGFydDogZ2V0LWlzb2xhdGlvbigkc3RhcnQpO1xuICAgICR0aGlzLXN0b3A6IGFwcGVuZCgkdGhpcy1zdG9wLCB0cmFuc3BhcmVudCAkc3RhcnQsIGNvbW1hKTtcbiAgICAkdGhpcy1zdG9wOiBhcHBlbmQoJHRoaXMtc3RvcCwgJF9jb2xvciAkc3RhcnQsIGNvbW1hKTtcblxuICAgICRfZW5kOiAkc3RhcnQgKyBzcGFuKDEgYXQgJGxvY2F0aW9uICRncmlkKTtcbiAgICAkdGhpcy1zdG9wOiBhcHBlbmQoJHRoaXMtc3RvcCwgJF9saWdodCAkX2VuZCwgY29tbWEpO1xuICAgICR0aGlzLXN0b3A6IGFwcGVuZCgkdGhpcy1zdG9wLCB0cmFuc3BhcmVudCAkX2VuZCwgY29tbWEpO1xuXG4gICAgJF9zdG9wczogam9pbigkX3N0b3BzLCAkdGhpcy1zdG9wLCBjb21tYSk7XG4gIH1cblxuICBAcmV0dXJuICRfc3RvcHM7XG59XG5cblxuLy8gR2V0IEFzeW1tZXRyaWNhbCBPdXRzaWRlXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIC0gJGdyaWQ6IDxzZXR0aW5ncz5cbkBmdW5jdGlvbiBnZXQtYXN5bS1vdXRzaWRlKFxuICAkZ3JpZFxuKSB7XG4gICRncmlkICAgICA6IHBhcnNlLWdyaWQoJGdyaWQpO1xuICAkX2NvbHVtbnMgOiBzdXN5LWdldChjb2x1bW5zLCAkZ3JpZCk7XG5cbiAgJF9jb2xvciAgIDogZGVidWctZ2V0KGNvbG9yKTtcbiAgJF9saWdodCAgIDogbGlnaHRlbigkX2NvbG9yLCAxNSUpO1xuICAkX3RyYW5zICAgOiB0cmFuc3BhcmVudDtcbiAgJF9zdG9wcyAgIDogKCk7XG5cbiAgQGZvciAkbG9jYXRpb24gZnJvbSAxIHRocm91Z2ggc3VzeS1jb3VudCgkX2NvbHVtbnMpIHtcbiAgICAkdGhpcy1zdG9wOiAoKTtcblxuICAgIEBpZiAkbG9jYXRpb24gPT0gMSB7XG4gICAgICAkdGhpcy1zdG9wOiBhcHBlbmQoJHRoaXMtc3RvcCwgJF9jb2xvciwgY29tbWEpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJHN0YXJ0OiBwYXJzZS1zcGFuKDEgYXQgJGxvY2F0aW9uICRncmlkKTtcbiAgICAgICRzdGFydDogZ2V0LWlzb2xhdGlvbigkc3RhcnQpO1xuICAgICAgJHRoaXMtc3RvcDogYXBwZW5kKCR0aGlzLXN0b3AsICRfY29sb3IgJHN0YXJ0LCBjb21tYSk7XG4gICAgfVxuXG4gICAgQGlmICRsb2NhdGlvbiA9PSBzdXN5LWNvdW50KCRfY29sdW1ucykge1xuICAgICAgJHRoaXMtc3RvcDogYXBwZW5kKCR0aGlzLXN0b3AsICRfbGlnaHQsIGNvbW1hKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICRndXR0ZXI6IGdldC1zcGFuLXdpZHRoKGZpcnN0ICRsb2NhdGlvbiAkZ3JpZCk7XG5cbiAgICAgICRfZW5kOiBwYXJzZS1zcGFuKDEgYXQgKCRsb2NhdGlvbiArIDEpICRncmlkKTtcbiAgICAgICRfZW5kOiBnZXQtaXNvbGF0aW9uKCRfZW5kKTtcblxuICAgICAgJGd1dHRlcjogJF9saWdodCAkZ3V0dGVyLCAkX3RyYW5zICRndXR0ZXIsICRfdHJhbnMgJF9lbmQ7XG4gICAgICAkdGhpcy1zdG9wOiBqb2luKCR0aGlzLXN0b3AsICRndXR0ZXIsIGNvbW1hKTtcbiAgICB9XG5cbiAgICAkX3N0b3BzOiBqb2luKCRfc3RvcHMsICR0aGlzLXN0b3AsIGNvbW1hKTtcbiAgfVxuXG4gIEByZXR1cm4gJF9zdG9wcztcbn1cblxuXG4vLyBHZXQgQXN5bW1ldHJpY2FsIEJhY2tncm91bmRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gLSAkZ3JpZDogPHNldHRpbmdzPlxuQGZ1bmN0aW9uIGdldC1iYWNrZ3JvdW5kLWFzeW0oXG4gICRncmlkXG4pIHtcbiAgJF9zdG9wczogKCk7XG5cbiAgQGlmIGlzLWluc2lkZSgkZ3JpZCkge1xuICAgICRfc3RvcHM6IGdldC1hc3ltLWluc2lkZSgkZ3JpZCk7XG4gIH0gQGVsc2UgaWYgaXMtc3BsaXQoJGdyaWQpIHtcbiAgICAkX3N0b3BzOiBnZXQtYXN5bS1zcGxpdCgkZ3JpZCk7XG4gIH0gQGVsc2Uge1xuICAgICRfc3RvcHM6IGdldC1hc3ltLW91dHNpZGUoJGdyaWQpO1xuICB9XG5cbiAgQHJldHVybiAoaW1hZ2U6IChjb2x1bW5zOiAkX3N0b3BzKSk7XG59XG5cblxuLy8gR2V0IEJhY2tncm91bmRcbi8vIC0tLS0tLS0tLS0tLS0tXG4vLyAtICRncmlkOiA8c2V0dGluZ3M+XG5AZnVuY3Rpb24gZ2V0LWJhY2tncm91bmQoXG4gICRncmlkXG4pIHtcbiAgJGdyaWQgICAgIDogcGFyc2UtZ3JpZCgkZ3JpZCk7XG4gICRfc2hvdyAgICA6IHN1c3ktZ2V0KGRlYnVnIGltYWdlLCAkZ3JpZCk7XG4gICRfcmV0dXJuICA6ICgpO1xuXG4gIEBpZiAkX3Nob3cgYW5kICRfc2hvdyAhPSAnaGlkZScge1xuICAgICRfY29sdW1uczogc3VzeS1nZXQoY29sdW1ucywgJGdyaWQpO1xuXG4gICAgQGlmICRfc2hvdyAhPSAnc2hvdy1iYXNlbGluZScge1xuICAgICAgJF9zeW06IGlzLXN5bW1ldHJpY2FsKCRfY29sdW1ucyk7XG4gICAgICAkX3JldHVybjogaWYoJF9zeW0sIGdldC1iYWNrZ3JvdW5kLXN5bSgkZ3JpZCksIGdldC1iYWNrZ3JvdW5kLWFzeW0oJGdyaWQpKTtcbiAgICAgICRfcmV0dXJuOiBtYXAtbWVyZ2UoJF9yZXR1cm4sIChjbGlwOiBjb250ZW50LWJveCkpO1xuICAgIH1cblxuICAgIEBpZiAkX3Nob3cgIT0gJ3Nob3ctY29sdW1ucydcbiAgICAgIGFuZCBnbG9iYWwtdmFyaWFibGUtZXhpc3RzKGJhc2UtbGluZS1oZWlnaHQpXG4gICAgICBhbmQgdHlwZS1vZigkYmFzZS1saW5lLWhlaWdodCkgPT0gJ251bWJlcidcbiAgICAgIGFuZCBub3QgdW5pdGxlc3MoJGJhc2UtbGluZS1oZWlnaHQpIHtcbiAgICAgICRfY29sb3I6IHZhcmlhYmxlLWV4aXN0cygnZ3JpZC1iYWNrZ3JvdW5kLWJhc2VsaW5lLWNvbG9yJyk7XG4gICAgICAkX2NvbG9yOiBpZigkX2NvbG9yLCAkZ3JpZC1iYWNrZ3JvdW5kLWJhc2VsaW5lLWNvbG9yLCAjMDAwKTtcblxuICAgICAgJF9pbWFnZTogbWFwLWdldCgkX3JldHVybiwgaW1hZ2UpO1xuICAgICAgJF9zaXplOiBtYXAtZ2V0KCRfcmV0dXJuLCBzaXplKTtcbiAgICAgICRfYmFzZWxpbmU6IChiYXNlbGluZTogKCRfY29sb3IgMXB4LCB0cmFuc3BhcmVudCAxcHgpKTtcbiAgICAgICRfYmFzZWxpbmUtc2l6ZTogMTAwJSAkYmFzZS1saW5lLWhlaWdodDtcblxuICAgICAgJF9yZXR1cm46IG1hcC1tZXJnZSgkX3JldHVybiwgKFxuICAgICAgICBpbWFnZTogaWYoJF9pbWFnZSwgbWFwLW1lcmdlKCRfaW1hZ2UsICRfYmFzZWxpbmUpLCAkX2Jhc2VsaW5lKSxcbiAgICAgICAgc2l6ZTogaWYoJF9zaXplLCAoJF9zaXplLCAkX2Jhc2VsaW5lLXNpemUpLCAkX2Jhc2VsaW5lLXNpemUpLFxuICAgICAgKSk7XG5cbiAgICAgIEBpZiAkX3Nob3cgPT0gJ3Nob3cnIHtcbiAgICAgICAgJF9jbGlwOiBtYXAtZ2V0KCRfcmV0dXJuLCBjbGlwKTtcbiAgICAgICAgJF9yZXR1cm46IG1hcC1tZXJnZSgkX3JldHVybiwgKGNsaXA6IGpvaW4oJF9jbGlwLCBib3JkZXItYm94LCBjb21tYSkpKTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIGlmICRfc2hvdyA9PSAnc2hvdy1iYXNlbGluZScge1xuICAgICAgQHdhcm4gJ1BsZWFzZSBwcm92aWRlIGEgJGJhc2UtbGluZS1oZWlnaHQgd2l0aCB0aGUgZGVzaXJlZCBoZWlnaHQgYW5kIHVuaXRzJztcbiAgICB9XG4gIH1cblxuICBAaWYgbWFwLWdldCgkX3JldHVybiwgaW1hZ2UpIHtcbiAgICAkX3JldHVybjogbWFwLW1lcmdlKCRfcmV0dXJuLCAoZmxvdzogc3VzeS1nZXQoZmxvdywgJGdyaWQpKSk7XG4gIH1cblxuICBAcmV0dXJuICRfcmV0dXJuO1xufVxuXG5cbi8vIEdldCBEZWJ1Z1xuLy8gLS0tLS0tLS0tXG4vLyBSZXR1cm4gdGhlIHZhbHVlIG9mIGEgZGVidWcgc2V0dGluZ1xuLy8gLSAka2V5OiA8c2V0dGluZz5cbkBmdW5jdGlvbiBkZWJ1Zy1nZXQoXG4gICRrZXksXG4gICRncmlkOiAkc3VzeVxuKSB7XG4gICRrZXk6IGpvaW4oZGVidWcsICRrZXksIHNwYWNlKTtcbiAgQHJldHVybiBzdXN5LWdldCgka2V5LCAkZ3JpZCk7XG59XG4iLCIvLyBDb250YWluZXIgU3ludGF4XG4vLyA9PT09PT09PT09PT09PT09XG5cbi8vIENvbnRhaW5lciBbbWl4aW5dXG4vLyAtLS0tLS0tLS0tLS0tLS0tLVxuLy8gU2V0IGEgY29udGFpbmVyIGVsZW1lbnRcbi8vIC0gWyRsYXlvdXRdICA6IDxzZXR0aW5ncz5cbkBtaXhpbiBjb250YWluZXIoXG4gICRsYXlvdXQ6ICRzdXN5XG4pIHtcbiAgJGluc3BlY3QgICAgOiAkbGF5b3V0O1xuICAkbGF5b3V0ICAgICA6IHBhcnNlLWdyaWQoJGxheW91dCk7XG5cbiAgJF93aWR0aCAgICAgOiBnZXQtY29udGFpbmVyLXdpZHRoKCRsYXlvdXQpO1xuICAkX2p1c3RpZnkgICA6IHBhcnNlLWNvbnRhaW5lci1wb3NpdGlvbihzdXN5LWdldChjb250YWluZXItcG9zaXRpb24sICRsYXlvdXQpKTtcbiAgJF9wcm9wZXJ0eSAgOiBpZihzdXN5LWdldChtYXRoLCAkbGF5b3V0KSA9PSBzdGF0aWMsIHdpZHRoLCBtYXgtd2lkdGgpO1xuXG4gICRfYm94ICAgICAgIDogc3VzeS1nZXQoYm94LXNpemluZywgJGxheW91dCk7XG5cbiAgQGlmICRfYm94IHtcbiAgICBAaW5jbHVkZSBvdXRwdXQoKGJveC1zaXppbmc6ICRfYm94KSk7XG4gIH1cblxuICBAaW5jbHVkZSBzdXN5LWluc3BlY3QoY29udGFpbmVyLCAkaW5zcGVjdCk7XG4gIEBpbmNsdWRlIGZsb2F0LWNvbnRhaW5lcigkX3dpZHRoLCAkX2p1c3RpZnksICRfcHJvcGVydHkpO1xuICBAaW5jbHVkZSBzaG93LWdyaWQoJGxheW91dCk7XG59XG5cbi8vIENvbnRhaW5lciBbZnVuY3Rpb25dXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gUmV0dXJuIGNvbnRhaW5lciB3aWR0aFxuLy8gLSBbJGxheW91dF0gIDogPHNldHRpbmdzPlxuQGZ1bmN0aW9uIGNvbnRhaW5lcihcbiAgJGxheW91dDogJHN1c3lcbikge1xuICAkbGF5b3V0OiBwYXJzZS1ncmlkKCRsYXlvdXQpO1xuICBAcmV0dXJuIGdldC1jb250YWluZXItd2lkdGgoJGxheW91dCk7XG59XG5cbi8vIEdldCBDb250YWluZXIgV2lkdGhcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIENhbGN1bGF0ZSB0aGUgY29udGFpbmVyIHdpZHRoXG4vLyAtIFskbGF5b3V0XTogPHNldHRpbmdzPlxuQGZ1bmN0aW9uIGdldC1jb250YWluZXItd2lkdGgoXG4gICRsYXlvdXQ6ICRzdXN5XG4pIHtcbiAgJGxheW91dCAgICAgICAgIDogcGFyc2UtZ3JpZCgkbGF5b3V0KTtcbiAgJF93aWR0aCAgICAgICAgIDogc3VzeS1nZXQoY29udGFpbmVyLCAkbGF5b3V0KTtcbiAgJF9jb2x1bW4td2lkdGggIDogc3VzeS1nZXQoY29sdW1uLXdpZHRoLCAkbGF5b3V0KTtcbiAgJF9tYXRoICAgICAgICAgIDogc3VzeS1nZXQobWF0aCwgJGxheW91dCk7XG5cbiAgQGlmIG5vdCgkX3dpZHRoKSBvciAkX3dpZHRoID09IGF1dG8ge1xuICAgIEBpZiB2YWxpZC1jb2x1bW4tbWF0aCgkX21hdGgsICRfY29sdW1uLXdpZHRoKSB7XG4gICAgICAkX2NvbHVtbnMgICA6IHN1c3ktZ2V0KGNvbHVtbnMsICRsYXlvdXQpO1xuICAgICAgJF9ndXR0ZXJzICAgOiBzdXN5LWdldChndXR0ZXJzLCAkbGF5b3V0KTtcbiAgICAgICRfc3ByZWFkICAgIDogaWYoaXMtc3BsaXQoJGxheW91dCksIHdpZGUsIG5hcnJvdyk7XG4gICAgICAkX3dpZHRoICAgICA6IHN1c3ktc3VtKCRfY29sdW1ucywgJF9ndXR0ZXJzLCAkX3NwcmVhZCkgKiAkX2NvbHVtbi13aWR0aDtcbiAgICB9IEBlbHNlIHtcbiAgICAgICRfd2lkdGg6IDEwMCU7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkX3dpZHRoO1xufVxuXG4vLyBQYXJzZSBDb250YWluZXIgUG9zaXRpb25cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gUGFyc2UgdGhlICRjb250YWluZXItcG9zaXRpb24gaW50byBtYXJnaW4gdmFsdWVzLlxuLy8gLSBbJGp1c3RpZnldICAgOiBsZWZ0IHwgY2VudGVyIHwgcmlnaHQgfCA8bGVuZ3RoPiBbPGxlbmd0aD5dXG5AZnVuY3Rpb24gcGFyc2UtY29udGFpbmVyLXBvc2l0aW9uKFxuICAkanVzdGlmeTogbWFwLWdldCgkc3VzeS1kZWZhdWx0cywgY29udGFpbmVyLXBvc2l0aW9uKVxuKSB7XG4gICRfcmV0dXJuOiBpZigkanVzdGlmeSA9PSBsZWZ0LCAwLCBhdXRvKSBpZigkanVzdGlmeSA9PSByaWdodCwgMCwgYXV0byk7XG5cbiAgQGlmIG5vdChpbmRleChsZWZ0IHJpZ2h0IGNlbnRlciwgJGp1c3RpZnkpKSB7XG4gICAgJF9yZXR1cm46IG50aCgkanVzdGlmeSwgMSk7XG4gICAgJF9yZXR1cm46ICRfcmV0dXJuIGlmKGxlbmd0aCgkanVzdGlmeSkgPiAxLCBudGgoJGp1c3RpZnksIDIpLCAkX3JldHVybik7XG4gIH1cblxuICBAcmV0dXJuICRfcmV0dXJuO1xufVxuIiwiLy8gU3BhbiBTeW50YXhcbi8vID09PT09PT09PT09XG5cbi8vIFNwYW4gW21peGluXVxuLy8gLS0tLS0tLS0tLS0tXG4vLyBTZXQgYSBzcGFubmluZyBlbGVtZW50IHVzaW5nIHNob3J0aGFuZCBzeW50YXguXG4vLyAtICRzcGFuICA6IDxzcGFuPlxuQG1peGluIHNwYW4oXG4gICRzcGFuXG4pIHtcbiAgJGluc3BlY3Q6ICRzcGFuO1xuICAkc3BhbjogcGFyc2Utc3Bhbigkc3Bhbik7XG4gICRvdXRwdXQ6IHNwYW4tbWF0aCgkc3Bhbik7XG4gICRuZXN0aW5nOiBzdXN5LWdldChzcGFuLCAkc3Bhbik7XG4gICRjbGVhcjogc3VzeS1nZXQoY2xlYXIsICRzcGFuKTtcblxuICAkYm94OiBzdXN5LWdldChib3gtc2l6aW5nLCAkc3Bhbik7XG4gICRjb250ZW50LWJveDogaWYoc3VzeS1nZXQoZ2xvYmFsLWJveC1zaXppbmcpICE9ICdib3JkZXItYm94JywgdHJ1ZSwgZmFsc2UpO1xuICAkYm94OiAkYm94IG9yIGlmKGlzLWluc2lkZSgkc3BhbikgYW5kICRjb250ZW50LWJveCwgYm9yZGVyLWJveCwgbnVsbCk7XG5cbiAgQGlmICRjbGVhciA9PSBicmVhayB7XG4gICAgQGluY2x1ZGUgYnJlYWs7XG4gIH0gQGVsc2UgaWYgJGNsZWFyID09IG5vYnJlYWsge1xuICAgIEBpbmNsdWRlIG5vYnJlYWs7XG4gIH1cblxuICBAaW5jbHVkZSBzdXN5LWluc3BlY3Qoc3BhbiwgJGluc3BlY3QpO1xuICBAaW5jbHVkZSBvdXRwdXQoKGJveC1zaXppbmc6ICRib3gpKTtcbiAgQGluY2x1ZGUgZmxvYXQtc3Bhbi1vdXRwdXQoJG91dHB1dC4uLik7XG5cbiAgQGlmIHZhbGlkLWNvbHVtbnMoJG5lc3RpbmcsIHNpbGVudCkge1xuICAgIEBpbmNsdWRlIG5lc3RlZCgkc3BhbikgeyBAY29udGVudDsgfVxuICB9IEBlbHNlIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBTcGFuIFtmdW5jdGlvbl1cbi8vIC0tLS0tLS0tLS0tLS0tLVxuLy8gUmV0dXJuIHRoZSB3aWR0aCBvZiBhIHNwYW4uXG4vLyAtICRzcGFuICA6IDxzcGFuPlxuQGZ1bmN0aW9uIHNwYW4oXG4gICRzcGFuXG4pIHtcbiAgQHJldHVybiBnZXQtc3Bhbi13aWR0aCgkc3Bhbik7XG59XG5cbi8vIFNwYW4gTWF0aFxuLy8gLS0tLS0tLS0tXG4vLyBHZXQgYWxsIHRoZSBzcGFuIHJlc3VsdHMuXG4vLyAtICRzcGFuOiA8bWFwPlxuQGZ1bmN0aW9uIHNwYW4tbWF0aChcbiAgJHNwYW5cbikge1xuICAkbmVzdCAgICAgICAgICAgICA6IGlmKHN1c3ktZ2V0KHJvbGUsICRzcGFuKSA9PSBuZXN0LCB0cnVlLCBmYWxzZSk7XG4gICRzcGxpdC1uZXN0ICAgICAgIDogaWYoaXMtc3BsaXQoJHNwYW4pIGFuZCAkbmVzdCwgdHJ1ZSwgZmFsc2UpO1xuICAkZWRnZSAgICAgICAgICAgICA6IGdldC1lZGdlKCRzcGFuKTtcbiAgJGxvY2F0aW9uICAgICAgICAgOiBnZXQtbG9jYXRpb24oJHNwYW4pO1xuXG4gICRmbG9hdCAgICAgICAgICAgIDogZnJvbTtcbiAgJHBhZGRpbmctYmVmb3JlICAgOiBudWxsO1xuICAkcGFkZGluZy1hZnRlciAgICA6IG51bGw7XG4gICRtYXJnaW4tYmVmb3JlICAgIDogbnVsbDtcbiAgJG1hcmdpbi1hZnRlciAgICAgOiBudWxsO1xuXG4gIC8vIGNhbGN1bGF0ZSB3aWR0aHNcbiAgJHNwcmVhZDogaW5kZXgobWFwLXZhbHVlcygkc3BhbiksIHNwcmVhZCk7XG4gICRzcGFuOiBpZigkc3BsaXQtbmVzdCBhbmQgbm90KCRzcHJlYWQpLCBtYXAtbWVyZ2UoJHNwYW4sIChzcHJlYWQ6IHdpZGUpKSwgJHNwYW4pO1xuICAkd2lkdGg6IGdldC1zcGFuLXdpZHRoKCRzcGFuKTtcbiAgJGd1dHRlcnM6IGdldC1ndXR0ZXJzKCRzcGFuKTtcblxuICAvLyBhcHBseSBndXR0ZXJzXG4gIEBpZiBpcy1pbnNpZGUoJHNwYW4pIHtcbiAgICBAaWYgbm90KHN1c3ktZ2V0KHJvbGUsICRzcGFuKSkge1xuICAgICAgJHBhZGRpbmctYmVmb3JlOiBtYXAtZ2V0KCRndXR0ZXJzLCBiZWZvcmUpO1xuICAgICAgJHBhZGRpbmctYWZ0ZXI6IG1hcC1nZXQoJGd1dHRlcnMsIGFmdGVyKTtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBpZiBub3QoJHNwbGl0LW5lc3QpIHtcbiAgICAgICRtYXJnaW4tYmVmb3JlOiBtYXAtZ2V0KCRndXR0ZXJzLCBiZWZvcmUpO1xuICAgICAgJG1hcmdpbi1hZnRlcjogbWFwLWdldCgkZ3V0dGVycywgYWZ0ZXIpO1xuICAgIH1cbiAgfVxuXG4gIC8vIHNwZWNpYWwgbWFyZ2luIGhhbmRsaW5nXG4gIEBpZiBzdXN5LWdldChvdXRwdXQsICRzcGFuKSA9PSBpc29sYXRlIGFuZCAkbG9jYXRpb24ge1xuICAgICRtYXJnaW4tYmVmb3JlOiBnZXQtaXNvbGF0aW9uKCRzcGFuKTtcbiAgICAkbWFyZ2luLWFmdGVyOiAtMTAwJTtcbiAgfSBAZWxzZSBpZiAkZWRnZSB7XG4gICAgJGlzLXNwbGl0OiBpcy1zcGxpdCgkc3Bhbik7XG4gICAgJHBvczogc3VzeS1nZXQoZ3V0dGVyLXBvc2l0aW9uLCAkc3Bhbik7XG5cbiAgICBAaWYgJGVkZ2UgPT0gbGFzdCB7XG4gICAgICAkZmxvYXQ6IHN1c3ktZ2V0KGxhc3QtZmxvdywgJHNwYW4pO1xuICAgIH1cblxuICAgIEBpZiBub3QoJGlzLXNwbGl0KSB7XG4gICAgICBAaWYgJGVkZ2UgPT0gZnVsbCBvciAoJGVkZ2UgPT0gZmlyc3QgYW5kICRwb3MgPT0gYmVmb3JlKSB7XG4gICAgICAgICRtYXJnaW4tYmVmb3JlOiAwO1xuICAgICAgfVxuICAgICAgQGlmICRlZGdlID09IGZ1bGwgb3IgKCRlZGdlID09IGxhc3QgYW5kICRwb3MgPT0gYWZ0ZXIpIHtcbiAgICAgICAgJG1hcmdpbi1hZnRlcjogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgfVxuXG4gIEByZXR1cm4gKFxuICAgIHdpZHRoICAgICAgICAgICA6ICR3aWR0aCxcbiAgICBmbG9hdCAgICAgICAgICAgOiAkZmxvYXQsXG4gICAgbWFyZ2luLWJlZm9yZSAgIDogJG1hcmdpbi1iZWZvcmUsXG4gICAgbWFyZ2luLWFmdGVyICAgIDogJG1hcmdpbi1hZnRlcixcbiAgICBwYWRkaW5nLWJlZm9yZSAgOiAkcGFkZGluZy1iZWZvcmUsXG4gICAgcGFkZGluZy1hZnRlciAgIDogJHBhZGRpbmctYWZ0ZXIsXG4gICAgZmxvdyAgICAgICAgICAgIDogc3VzeS1nZXQoZmxvdywgJHNwYW4pLFxuICApO1xufVxuXG4vLyBHZXQgU3BhbiBXaWR0aFxuLy8gLS0tLS0tLS0tLS0tLS1cbi8vIFJldHVybiBzcGFuIHdpZHRoLlxuLy8gLSAkc3BhbjogPG1hcD5cbkBmdW5jdGlvbiBnZXQtc3Bhbi13aWR0aChcbiAgJHNwYW5cbikge1xuICAkc3BhbiAgICAgOiBwYXJzZS1zcGFuKCRzcGFuKTtcblxuICAkbiAgICAgICAgOiBzdXN5LWdldChzcGFuLCAkc3Bhbik7XG4gICRsb2NhdGlvbiA6IGdldC1sb2NhdGlvbigkc3Bhbik7XG4gICRjb2x1bW5zICA6IHN1c3ktZ2V0KGNvbHVtbnMsICRzcGFuKTtcbiAgJGd1dHRlcnMgIDogc3VzeS1nZXQoZ3V0dGVycywgJHNwYW4pO1xuICAkc3ByZWFkICAgOiBzdXN5LWdldChzcHJlYWQsICRzcGFuKTtcblxuICAkY29udGV4dCAgOiBudWxsO1xuICAkc3Bhbi1zdW0gOiBudWxsO1xuICAkd2lkdGggICAgOiBudWxsO1xuXG4gIEBpZiAkbiA9PSAnZnVsbCcge1xuICAgICRwb3M6IHN1c3ktZ2V0KGd1dHRlci1wb3NpdGlvbiwgJHNwYW4pO1xuICAgICRyb2xlOiBzdXN5LWdldChyb2xlLCAkc3Bhbik7XG4gICAgJG46IGlmKCRwb3MgPT0gc3BsaXQgYW5kICRyb2xlICE9IG5lc3QsIHN1c3ktY291bnQoJGNvbHVtbnMpLCAxMDAlKTtcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCRuKSAhPSBudW1iZXIge1xuICAgIEB3YXJuIFwiKCN7dHlwZS1vZigkbil9KSAjeyRufSBpcyBub3QgYSB2YWxpZCBzcGFuLlwiO1xuICB9IEBlbHNlIGlmIHVuaXRsZXNzKCRuKSB7XG4gICAgJGNvbnRleHQ6IHN1c3ktc3VtKCRjb2x1bW5zLCAkZ3V0dGVycywgaWYoaXMtc3BsaXQoJHNwYW4pLCB3aWRlLCBuYXJyb3cpKTtcbiAgICAkc3ByZWFkOiBpZihpcy1pbnNpZGUoJHNwYW4pLCAkc3ByZWFkIG9yIHdpZGUsICRzcHJlYWQpO1xuICAgICRzcGFuLXN1bTogc3VzeSgkbiwgJGxvY2F0aW9uLCAkY29sdW1ucywgJGd1dHRlcnMsICRzcHJlYWQpO1xuXG4gICAgJF9tYXRoOiBzdXN5LWdldChtYXRoLCAkc3Bhbik7XG4gICAgJF9jb2x1bW4td2lkdGg6IHN1c3ktZ2V0KGNvbHVtbi13aWR0aCwgJHNwYW4pO1xuICAgIEBpZiAkX21hdGggPT0gc3RhdGljIHtcbiAgICAgICR3aWR0aDogJHNwYW4tc3VtICogdmFsaWQtY29sdW1uLW1hdGgoJF9tYXRoLCAkX2NvbHVtbi13aWR0aCk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkd2lkdGg6IHBlcmNlbnRhZ2UoJHNwYW4tc3VtIC8gJGNvbnRleHQpO1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgJHdpZHRoOiAkbjtcbiAgfVxuXG4gIEByZXR1cm4gJHdpZHRoO1xufVxuIiwiLy8gR3V0dGVyIFN5bnRheFxuLy8gPT09PT09PT09PT09PVxuXG5cbi8vIEd1dHRlcnNcbi8vIC0tLS0tLS1cbi8vIFNldCBndXR0ZXJzIG9uIGFuIGVsZW1lbnQuXG4vLyAtIFskc3Bhbl0gICA6IDxzZXR0aW5ncz5cbkBtaXhpbiBndXR0ZXJzKFxuICAkc3BhbjogJHN1c3lcbikge1xuICAkaW5zcGVjdCAgOiAkc3BhbjtcbiAgJHNwYW4gICAgIDogcGFyc2UtZ3V0dGVycygkc3Bhbik7XG4gICRfZ3V0dGVycyA6IGdldC1ndXR0ZXJzKCRzcGFuKTtcblxuICAkX291dHB1dDogKFxuICAgIGJlZm9yZTogbWFwLWdldCgkX2d1dHRlcnMsIGJlZm9yZSksXG4gICAgYWZ0ZXI6IG1hcC1nZXQoJF9ndXR0ZXJzLCBhZnRlciksXG4gICAgZmxvdzogc3VzeS1nZXQoZmxvdywgJHNwYW4pLFxuICApO1xuXG4gIEBpbmNsdWRlIHN1c3ktaW5zcGVjdChndXR0ZXJzLCAkaW5zcGVjdCk7XG5cbiAgQGlmIGlzLWluc2lkZSgkc3Bhbikge1xuICAgIEBpbmNsdWRlIHBhZGRpbmctb3V0cHV0KCRfb3V0cHV0Li4uKTtcbiAgfSBAZWxzZSB7XG4gICAgQGluY2x1ZGUgbWFyZ2luLW91dHB1dCgkX291dHB1dC4uLik7XG4gIH1cbn1cblxuQG1peGluIGd1dHRlcihcbiAgJHNwYW46ICRzdXN5XG4pIHtcbiAgQGluY2x1ZGUgZ3V0dGVycygkc3Bhbik7XG59XG5cblxuLy8gR3V0dGVyXG4vLyAtLS0tLS1cbi8vIFJldHVybiB0aGUgd2lkdGggb2YgYSBndXR0ZXIuXG4vLyAtIFskc3Bhbl0gICA6IDxzZXR0aW5ncz5cbkBmdW5jdGlvbiBndXR0ZXIoXG4gICRzcGFuOiAkc3VzeVxuKSB7XG4gICRzcGFuOiBwYXJzZS1ndXR0ZXJzKCRzcGFuKTtcblxuICAkX2d1dHRlcnM6IGdldC1ndXR0ZXJzKCRzcGFuKTtcbiAgJF9ndXR0ZXJzOiBtYXAtZ2V0KCRfZ3V0dGVycywgYmVmb3JlKSBvciBtYXAtZ2V0KCRfZ3V0dGVycywgYWZ0ZXIpO1xuXG4gIEByZXR1cm4gJF9ndXR0ZXJzO1xufVxuXG5AZnVuY3Rpb24gZ3V0dGVycyhcbiAgJHNwYW46ICRzdXN5XG4pIHtcbiAgQHJldHVybiBndXR0ZXIoJHNwYW4pO1xufVxuXG5cbi8vIEdldCBHdXR0ZXIgV2lkdGhcbi8vIC0tLS0tLS0tLS0tLS0tLS1cbi8vIFJldHVybiBndXR0ZXIgd2lkdGguXG4vLyAtIFskY29udGV4dF06IDxjb250ZXh0PlxuQGZ1bmN0aW9uIGdldC1ndXR0ZXItd2lkdGgoXG4gICRjb250ZXh0OiAkc3VzeVxuKSB7XG4gICRjb250ZXh0ICA6IHBhcnNlLWd1dHRlcnMoJGNvbnRleHQpO1xuXG4gICRfZ3V0dGVycyA6IHN1c3ktZ2V0KGd1dHRlcnMsICRjb250ZXh0KTtcbiAgJF9ndXR0ZXIgIDogc3VzeS1nZXQoZ3V0dGVyLW92ZXJyaWRlLCAkY29udGV4dCk7XG5cbiAgQGlmICRfZ3V0dGVycyBhbmQgKCRfZ3V0dGVycyA+IDApIGFuZCBub3QoJF9ndXR0ZXIpIHtcbiAgICAkX2NvbHVtbi13aWR0aDogc3VzeS1nZXQoY29sdW1uLXdpZHRoLCAkY29udGV4dCk7XG4gICAgJF9tYXRoOiBndXR0ZXItbWF0aCgkY29udGV4dCk7XG4gICAgQGlmICRfbWF0aCA9PSBzdGF0aWMge1xuICAgICAgJF9ndXR0ZXI6ICRfZ3V0dGVycyAqIHZhbGlkLWNvbHVtbi1tYXRoKCRfbWF0aCwgJF9jb2x1bW4td2lkdGgpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJF9jb2x1bW5zIDogc3VzeS1nZXQoY29sdW1ucywgJGNvbnRleHQpO1xuICAgICAgJF9zcHJlYWQgIDogaWYoaXMtc3BsaXQoJGNvbnRleHQpLCB3aWRlLCBzdXN5LWdldChzcHJlYWQsICRjb250ZXh0KSk7XG4gICAgICAkX2d1dHRlciAgOiBwZXJjZW50YWdlKCRfZ3V0dGVycyAvIHN1c3ktc3VtKCRfY29sdW1ucywgJF9ndXR0ZXJzLCAkX3NwcmVhZCkpO1xuICAgIH1cbiAgfVxuXG4gICRfZ3V0dGVyOiBpZigkX2d1dHRlciA9PSAnbm8tZ3V0dGVycycgb3IgJF9ndXR0ZXIgPT0gJ25vLWd1dHRlcicsIG51bGwsICRfZ3V0dGVyKTtcblxuICBAcmV0dXJuICRfZ3V0dGVyO1xufVxuXG5cbi8vIEdldCBHdXR0ZXJzXG4vLyAtLS0tLS0tLS0tLVxuLy8gUmV0dXJuIGJlZm9yZSBhbmQgYWZ0ZXIgZ3V0dGVyIHZhbHVlcy5cbi8vIC0gWyRjb250ZXh0XTogPGNvbnRleHQ+XG5AZnVuY3Rpb24gZ2V0LWd1dHRlcnMoXG4gICRjb250ZXh0OiAkc3VzeVxuKSB7XG4gICRjb250ZXh0ICAgICAgICAgICAgOiBwYXJzZS1ndXR0ZXJzKCRjb250ZXh0KTtcblxuICAkX2d1dHRlci1wb3NpdGlvbiAgIDogc3VzeS1nZXQoZ3V0dGVyLXBvc2l0aW9uLCAkY29udGV4dCk7XG4gICRfZ3V0dGVyICAgICAgICAgICAgOiBnZXQtZ3V0dGVyLXdpZHRoKCRjb250ZXh0KTtcblxuICAkX3JldHVybiAgICAgICAgICAgIDogKGJlZm9yZTogbnVsbCwgYWZ0ZXI6IG51bGwpO1xuXG4gIEBpZiBpcy1zcGxpdCgkY29udGV4dCkgYW5kICRfZ3V0dGVyIHtcbiAgICAkX2d1dHRlcjogJF9ndXR0ZXIgLyAyO1xuICAgICRfcmV0dXJuOiBtYXAtbWVyZ2UoJF9yZXR1cm4sIChiZWZvcmU6ICRfZ3V0dGVyLCBhZnRlcjogJF9ndXR0ZXIpKTtcbiAgfSBAZWxzZSB7XG4gICAgJF9yZXR1cm46IG1hcC1tZXJnZSgkX3JldHVybiwgKCRfZ3V0dGVyLXBvc2l0aW9uOiAkX2d1dHRlcikpO1xuICB9XG5cbiAgQHJldHVybiAkX3JldHVybjtcbn1cblxuXG4vLyBJcyBJbnNpZGVcbi8vIC0tLS0tLS0tLVxuLy8gUmV0dXJucyB0cnVlIGlmIGd1dHRlcnMgYXJlIGluc2lkZS5cbi8vICRjb250ZXh0OiA8Y29udGV4dD5cbkBmdW5jdGlvbiBpcy1pbnNpZGUoXG4gICRjb250ZXh0XG4pIHtcbiAgJF9pbnNpZGU6IGluc2lkZSBpbnNpZGUtc3RhdGljO1xuICAkX2d1dHRlci1wb3NpdGlvbjogc3VzeS1nZXQoZ3V0dGVyLXBvc2l0aW9uLCAkY29udGV4dCk7XG5cbiAgQHJldHVybiBpZihpbmRleCgkX2luc2lkZSwgJF9ndXR0ZXItcG9zaXRpb24pLCB0cnVlLCBmYWxzZSk7XG59XG5cblxuLy8gSXMgU3BsaXRcbi8vIC0tLS0tLS0tXG4vLyBSZXR1cm5zIHRydWUgaWYgZ3V0dGVycyBhcmUgc3BsaXQuXG4vLyAkY29udGV4dDogPGNvbnRleHQ+XG5AZnVuY3Rpb24gaXMtc3BsaXQoXG4gICRjb250ZXh0XG4pIHtcbiAgJF9zcGxpdDogc3BsaXQgaW5zaWRlIGluc2lkZS1zdGF0aWM7XG4gICRfZ3V0dGVyLXBvc2l0aW9uOiBzdXN5LWdldChndXR0ZXItcG9zaXRpb24sICRjb250ZXh0KTtcblxuICBAcmV0dXJuIGlmKGluZGV4KCRfc3BsaXQsICRfZ3V0dGVyLXBvc2l0aW9uKSwgdHJ1ZSwgZmFsc2UpO1xufVxuXG5cbi8vIEd1dHRlciBNYXRoXG4vLyAtLS0tLS0tLS0tLVxuLy8gUmV0dXJuIHRoZSBtYXRoIHRvIHVzZSBmb3IgZ3V0dGVyIGNhbGN1bGF0aW9uc1xuLy8gJGNvbnRleHQ6IDxjb250ZXh0PlxuQGZ1bmN0aW9uIGd1dHRlci1tYXRoKFxuICAkY29udGV4dDogJHN1c3lcbikge1xuICAkX3JldHVybiAgOiBzdXN5LWdldChtYXRoLCAkY29udGV4dCk7XG4gICRfcmV0dXJuICA6IGlmKHN1c3ktZ2V0KGd1dHRlci1wb3NpdGlvbiwgJGNvbnRleHQpID09IGluc2lkZS1zdGF0aWMsIHN0YXRpYywgJF9yZXR1cm4pO1xuXG4gIEByZXR1cm4gJF9yZXR1cm47XG59XG4iLCIvLyBJc29sYXRpb24gU3ludGF4XG4vLyA9PT09PT09PT09PT09PT09XG5cblxuLy8gSXNvbGF0ZSBbTWl4aW5dXG4vLyAtLS0tLS0tLS0tLS0tLS1cbi8vIFNldCBpc29sYXRpb24gYXMgYW4gb3ZlcnJpZGUuXG4vLyAtICRsb2NhdGlvbjogPHNwYW4+XG5AbWl4aW4gaXNvbGF0ZShcbiAgJGlzb2xhdGU6IDFcbikge1xuICAkaW5zcGVjdDogJGlzb2xhdGU7XG5cbiAgJG91dHB1dDogKFxuICAgIHB1c2g6IGlzb2xhdGUoJGlzb2xhdGUpLFxuICAgIGZsb3c6IHN1c3ktZ2V0KGZsb3csICRpc29sYXRlKSxcbiAgKTtcblxuICBAaW5jbHVkZSBzdXN5LWluc3BlY3QoaXNvbGF0ZSwgJGluc3BlY3QpO1xuICBAaW5jbHVkZSBpc29sYXRlLW91dHB1dCgkb3V0cHV0Li4uKTtcbn1cblxuXG4vLyBJc29sYXRlIFtmdW5jdGlvbl1cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gUmV0dXJuIGFuIGlzb2xhdGlvbiBvZmZzZXQgd2lkdGguXG4vLyAtICRsb2NhdGlvbjogPHNwYW4+XG5AZnVuY3Rpb24gaXNvbGF0ZShcbiAgJGlzb2xhdGU6IDFcbikge1xuICAkaXNvbGF0ZTogcGFyc2Utc3BhbigkaXNvbGF0ZSk7XG4gICRpc29sYXRpb246IHN1c3ktZ2V0KHNwYW4sICRpc29sYXRlKTtcblxuICBAaWYgJGlzb2xhdGlvbiBhbmQgbm90KGdldC1sb2NhdGlvbigkaXNvbGF0ZSkpIHtcbiAgICAkbmV3OiAoXG4gICAgICBzcGFuOiBudWxsLFxuICAgICAgbG9jYXRpb246ICRpc29sYXRpb24sXG4gICAgKTtcbiAgICAkaXNvbGF0ZTogbWFwLW1lcmdlKCRpc29sYXRlLCAkbmV3KTtcbiAgfVxuXG4gIEByZXR1cm4gZ2V0LWlzb2xhdGlvbigkaXNvbGF0ZSk7XG59XG5cblxuLy8gR2V0IElzb2xhdGlvblxuLy8gLS0tLS0tLS0tLS0tLVxuLy8gUmV0dXJuIHRoZSBpc29sYXRpb24gb2Zmc2V0IHdpZHRoXG4vLyAtICRpbnB1dDogPG1hcD5cbkBmdW5jdGlvbiBnZXQtaXNvbGF0aW9uKFxuICAkaW5wdXRcbikge1xuICAkbG9jYXRpb24gICA6IGdldC1sb2NhdGlvbigkaW5wdXQpO1xuICAkY29sdW1ucyAgICA6IHN1c3ktZ2V0KGNvbHVtbnMsICRpbnB1dCk7XG4gICR3aWR0aCAgICAgIDogbnVsbDtcblxuICBAaWYgdHlwZS1vZigkbG9jYXRpb24pID09IG51bWJlciBhbmQgbm90KHVuaXRsZXNzKCRsb2NhdGlvbikpIHtcbiAgICAkd2lkdGg6ICRsb2NhdGlvbjtcbiAgfSBAZWxzZSBpZiAkbG9jYXRpb24ge1xuICAgICRwdXNoOiAkbG9jYXRpb24gLSAxO1xuICAgIEBpZiAkcHVzaCA+IDAge1xuICAgICAgJHB1c2g6IG1hcC1tZXJnZSgkaW5wdXQsIChcbiAgICAgICAgc3BhbjogJHB1c2gsXG4gICAgICAgIGxvY2F0aW9uOiAxLFxuICAgICAgICBzcHJlYWQ6IHdpZGUsXG4gICAgICApKTtcbiAgICAgICR3aWR0aDogZ2V0LXNwYW4td2lkdGgoJHB1c2gpO1xuICAgIH1cbiAgfVxuXG4gIEBpZiBzdXN5LWdldChndXR0ZXItcG9zaXRpb24sICRpbnB1dCkgPT0gc3BsaXRcbiAgICAgIGFuZCBzdXN5LWdldChndXR0ZXJzLCAkaW5wdXQpID4gMCB7XG4gICAgJHdpZHRoOiBpZigkd2lkdGggPT0gbnVsbCwgZ3V0dGVycygkaW5wdXQpLCAkd2lkdGggKyBndXR0ZXJzKCRpbnB1dCkpO1xuICB9XG5cbiAgQHJldHVybiAkd2lkdGggb3IgMDtcbn1cbiIsIi8vIEdhbGxlcnkgU3ludGF4XG4vLyA9PT09PT09PT09PT09PVxuXG4vLyBHYWxsZXJ5XG4vLyAtLS0tLS0tXG4vLyBDcmVhdGUgYW4gaXNvbGF0ZWQgZ2FsbGVyeVxuLy8gLSAkc3BhbiAgICAgICAgOiA8c3Bhbj5cbi8vIC0gWyRzZWxlY3Rvcl0gIDogY2hpbGQgfCBvZi10eXBlXG5AbWl4aW4gZ2FsbGVyeShcbiAgJHNwYW4sXG4gICRzZWxlY3RvcjogY2hpbGRcbikge1xuICAkaW5zcGVjdCAgICA6ICRzcGFuO1xuICAkc3BhbiAgICAgICA6IHBhcnNlLXNwYW4oJHNwYW4pO1xuICAkc3BhbiAgICAgICA6IG1hcC1tZXJnZSgkc3BhbiwgKGxvY2F0aW9uOiAxKSk7XG5cbiAgJG4gICAgICAgICAgICA6IHN1c3ktZ2V0KHNwYW4sICRzcGFuKTtcbiAgJGNvbHVtbnMgICAgICA6IHN1c3ktZ2V0KGNvbHVtbnMsICRzcGFuKTtcbiAgJGNvbnRleHQgICAgICA6IHN1c3ktY291bnQoJGNvbHVtbnMpO1xuICAkZmxvdyAgICAgICAgIDogc3VzeS1nZXQoZmxvdywgJHNwYW4pO1xuXG4gICRpbnNpZGUgICAgICAgOiBpcy1pbnNpZGUoJHNwYW4pO1xuICAkZnJvbSAgICAgICAgIDogZnJvbSgkZmxvdyk7XG4gICRsaW5lICAgICAgICAgOiBmbG9vcigkY29udGV4dCAvICRuKTtcbiAgJHN5bW1ldHJpY2FsICA6IGlzLXN5bW1ldHJpY2FsKCRjb2x1bW5zKTtcblxuICAkb3V0cHV0OiAoXG4gICAgd2lkdGggICAgICAgICAgICAgOiBudWxsLFxuICAgIGZsb2F0ICAgICAgICAgICAgIDogZnJvbSxcbiAgICBtYXJnaW4tYmVmb3JlICAgICA6IG51bGwsXG4gICAgbWFyZ2luLWFmdGVyICAgICAgOiBudWxsLFxuICAgIHBhZGRpbmctYmVmb3JlICAgIDogbnVsbCxcbiAgICBwYWRkaW5nLWFmdGVyICAgICA6IG51bGwsXG4gICAgZmxvdyAgICAgICAgICAgICAgOiAkZmxvdyxcbiAgKTtcblxuICBAaWYgJGluc2lkZSB7XG4gICAgJGd1dHRlcnM6IGdldC1ndXR0ZXJzKCRzcGFuKTtcbiAgICAkb3V0cHV0OiBtYXAtbWVyZ2UoJG91dHB1dCwgKFxuICAgICAgcGFkZGluZy1iZWZvcmU6IG1hcC1nZXQoJGd1dHRlcnMsIGJlZm9yZSksXG4gICAgICBwYWRkaW5nLWFmdGVyOiBtYXAtZ2V0KCRndXR0ZXJzLCBhZnRlciksXG4gICAgKSk7XG4gIH1cblxuICBAaWYgJHN5bW1ldHJpY2FsIHtcbiAgICAkb3V0cHV0OiBtYXAtbWVyZ2UoJG91dHB1dCwgKHdpZHRoOiBnZXQtc3Bhbi13aWR0aCgkc3BhbikpKTtcbiAgfVxuXG4gICRib3ggICAgICAgICAgOiBzdXN5LWdldChib3gtc2l6aW5nLCAkc3Bhbik7XG4gICRnbG9iYWwtYm94ICAgOiBpZihzdXN5LWdldChnbG9iYWwtYm94LXNpemluZykgPT0gJ2JvcmRlci1ib3gnLCB0cnVlLCBmYWxzZSk7XG5cbiAgQGluY2x1ZGUgc3VzeS1pbnNwZWN0KGdhbGxlcnksICRpbnNwZWN0KTtcblxuICAvLyBDb2xsZWN0aXZlIE91dHB1dFxuICBAaWYgJGJveCA9PSBib3JkZXItYm94IG9yICgkaW5zaWRlIGFuZCBub3QoJGJveCkgYW5kIG5vdCgkZ2xvYmFsLWJveCkpIHtcbiAgICBAaW5jbHVkZSBvdXRwdXQoKGJveC1zaXppbmc6IGJvcmRlci1ib3gpKTtcbiAgfSBAZWxzZSBpZiAkYm94ID09IGNvbnRlbnQtYm94IHtcbiAgICBAaW5jbHVkZSBvdXRwdXQoKGJveC1zaXppbmc6IGNvbnRlbnQtYm94KSk7XG4gIH1cblxuICBAaW5jbHVkZSBmbG9hdC1zcGFuLW91dHB1dCgkb3V0cHV0Li4uKTtcblxuICAvLyBJbmRpdmlkdWFsIExvb3BcbiAgQGZvciAkaXRlbSBmcm9tIDEgdGhyb3VnaCAkbGluZSB7XG4gICAgJG50aDogJyN7JGxpbmV9biArICN7JGl0ZW19JztcbiAgICAmOm50aC0jeyRzZWxlY3Rvcn0oI3skbnRofSkge1xuICAgICAgLy8gSW5kaXZpZHVhbCBQcmVwXG4gICAgICAkb3V0cHV0OiAoXG4gICAgICAgIHdpZHRoICAgICAgICAgICAgIDogaWYoJHN5bW1ldHJpY2FsLCBudWxsLCBnZXQtc3Bhbi13aWR0aCgkc3BhbikpLFxuICAgICAgICBmbG9hdCAgICAgICAgICAgICA6IG51bGwsXG4gICAgICAgIG1hcmdpbi1iZWZvcmUgICAgIDogZ2V0LWlzb2xhdGlvbigkc3BhbiksXG4gICAgICAgIG1hcmdpbi1hZnRlciAgICAgIDogLTEwMCUsXG4gICAgICAgIHBhZGRpbmctYmVmb3JlICAgIDogbnVsbCxcbiAgICAgICAgcGFkZGluZy1hZnRlciAgICAgOiBudWxsLFxuICAgICAgICBmbG93ICAgICAgICAgICAgICA6ICRmbG93LFxuICAgICAgKTtcblxuICAgICAgLy8gSW5kaXZpZHVhbCBPdXRwdXRcbiAgICAgIEBpbmNsdWRlIGZsb2F0LXNwYW4tb3V0cHV0KCRvdXRwdXQuLi4pO1xuXG4gICAgICBAaWYgZ2V0LWVkZ2UoJHNwYW4pID09IGZpcnN0IHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWs7XG4gICAgICAgIEBpbmNsdWRlIGZpcnN0KCRzcGFuKTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICBAaW5jbHVkZSBub2JyZWFrO1xuICAgICAgfVxuXG4gICAgICAvLyBJbmRpdmlkdWFsIExvY2F0aW9uIEluY3JlbWVudFxuICAgICAgJGxvY2F0aW9uOiBnZXQtbG9jYXRpb24oJHNwYW4pICsgJG47XG4gICAgICAkbG9jYXRpb246IGlmKCRsb2NhdGlvbiA+ICRjb250ZXh0LCAxLCAkbG9jYXRpb24pO1xuICAgICAgJHNwYW46IG1hcC1tZXJnZSgkc3BhbiwgKGxvY2F0aW9uOiAkbG9jYXRpb24pKTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIFJvdyBTdGFydCAmIEVuZFxuLy8gPT09PT09PT09PT09PT09XG5cbi8vIEJyZWFrXG4vLyAtLS0tLVxuLy8gQXBwbHkgdG8gYW55IGVsZW1lbnQgdGhhdCBzaG91bGQgZm9yY2UgYSBsaW5lIGJyZWFrLlxuQG1peGluIGJyZWFrIHtcbiAgQGluY2x1ZGUgb3V0cHV0KChjbGVhcjogYm90aCkpO1xufVxuXG5cbi8vIE5vQnJlYWtcbi8vIC0tLS0tLS1cbi8vIENhbmNlbCB0aGUgYnJlYWsoKSBlZmZlY3QsIGUuZy4gd2hlbiB1c2luZyBtZWRpYSBxdWVyaWVzLlxuQG1peGluIG5vYnJlYWsge1xuICBAaW5jbHVkZSBvdXRwdXQoKGNsZWFyOiBub25lKSk7XG59XG5cblxuLy8gRnVsbFxuLy8gLS0tLVxuLy8gLSBbJGNvbnRleHRdOiA8bGF5b3V0IHNob3J0aGFuZD5cbkBtaXhpbiBmdWxsKFxuICAkY29udGV4dDogJHN1c3lcbikge1xuICAkaW5zcGVjdCA6ICRjb250ZXh0O1xuICBAaW5jbHVkZSBzdXN5LWluc3BlY3QoZnVsbCwgJGluc3BlY3QpO1xuICBAaW5jbHVkZSBzcGFuKGZ1bGwgb2YgcGFyc2UtZ3JpZCgkY29udGV4dCkgYnJlYWspO1xufVxuXG5cbi8vIEZpcnN0XG4vLyAtLS0tLVxuLy8gLSBbJGNvbnRleHRdOiA8c2V0dGluZ3M+XG5AbWl4aW4gZmlyc3QoXG4gICRjb250ZXh0OiAkc3VzeVxuKSB7XG4gICRpbnNwZWN0ICA6ICRjb250ZXh0O1xuICAkY29udGV4dCAgOiBwYXJzZS1ncmlkKCRjb250ZXh0KTtcbiAgJGZsb3cgICAgIDogc3VzeS1nZXQoZmxvdywgJGNvbnRleHQpO1xuXG4gIEBpbmNsdWRlIHN1c3ktaW5zcGVjdChmaXJzdCwgJGluc3BlY3QpO1xuICBAaWYgbm90KGlzLXNwbGl0KCRjb250ZXh0KSkge1xuICAgIEBpbmNsdWRlIGZsb2F0LWZpcnN0KCRmbG93KTtcbiAgfVxufVxuXG5AbWl4aW4gYWxwaGEoXG4gICRjb250ZXh0OiAkc3VzeVxuKSB7XG4gIEBpbmNsdWRlIGZpcnN0KCRjb250ZXh0KTtcbn1cblxuXG4vLyBMYXN0XG4vLyAtLS0tXG4vLyAtIFskY29udGV4dF06IDxzZXR0aW5ncz5cbkBtaXhpbiBsYXN0KFxuICAkY29udGV4dDogJHN1c3lcbikge1xuICAkaW5zcGVjdCAgOiAkY29udGV4dDtcbiAgJGNvbnRleHQgIDogcGFyc2UtZ3JpZCgkY29udGV4dCk7XG5cbiAgQGluY2x1ZGUgc3VzeS1pbnNwZWN0KGxhc3QsICRpbnNwZWN0KTtcblxuICAkb3V0cHV0OiAoXG4gICAgZmxvdzogc3VzeS1nZXQoZmxvdywgJGNvbnRleHQpLFxuICAgIGxhc3QtZmxvdzogc3VzeS1nZXQobGFzdC1mbG93LCAkY29udGV4dCksXG4gICAgbWFyZ2luOiBpZihpcy1zcGxpdCgkY29udGV4dCksIG51bGwsIDApLFxuICApO1xuXG4gIEBpbmNsdWRlIGZsb2F0LWxhc3QoJG91dHB1dC4uLik7XG59XG5cbkBtaXhpbiBvbWVnYShcbiAgJGNvbnRleHQ6ICRzdXN5XG4pIHtcbiAgQGluY2x1ZGUgbGFzdCgkY29udGV4dCk7XG59XG5cblxuLy8gR2V0IEVkZ2Vcbi8vIC0tLS0tLS0tXG4vLyBDYWxjdWxhdGUgZWRnZSB2YWx1ZSBiYXNlZCBvbiBsb2NhdGlvbiwgaWYgcG9zc2libGVcbkBmdW5jdGlvbiBnZXQtZWRnZShcbiAgJHNwYW5cbikge1xuICAkc3BhbiAgICAgICA6IHBhcnNlLXNwYW4oJHNwYW4pO1xuICAkZWRnZSAgICAgICA6IHN1c3ktZ2V0KGVkZ2UsICRzcGFuKTtcblxuICBAaWYgbm90KCRlZGdlKSB7XG4gICAgJGNvdW50OiBzdXN5LWNvdW50KHN1c3ktZ2V0KGNvbHVtbnMsICRzcGFuKSk7XG4gICAgJGxvY2F0aW9uOiBzdXN5LWdldChsb2NhdGlvbiwgJHNwYW4pO1xuICAgICRuOiBzdXN5LWdldChzcGFuLCAkc3Bhbik7XG5cbiAgICAkbnVtYmVyOiBpZih0eXBlLW9mKCRsb2NhdGlvbikgPT0gbnVtYmVyLCB0cnVlLCBmYWxzZSk7XG4gICAgJGluZGV4OiBpZigkbnVtYmVyIGFuZCB1bml0bGVzcygkbG9jYXRpb24pLCB0cnVlLCBmYWxzZSk7XG5cbiAgICBAaWYgJG4gPT0gJGNvdW50IHtcbiAgICAgICRlZGdlOiBmdWxsO1xuICAgIH0gQGVsc2UgaWYgJGxvY2F0aW9uIGFuZCAkbiBhbmQgJGluZGV4IHtcbiAgICAgIEBpZiAkbG9jYXRpb24gPT0gMSB7XG4gICAgICAgICRlZGdlOiBpZigkbiA9PSAkY291bnQsIGZ1bGwsIGZpcnN0KTtcbiAgICAgIH0gQGVsc2UgaWYgJGxvY2F0aW9uICsgJG4gLSAxID09ICRjb3VudCB7XG4gICAgICAgICRlZGdlOiBsYXN0O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpZiAkZWRnZSA9PSBhbHBoYSBvciAkZWRnZSA9PSBvbWVnYSB7XG4gICAgJGVkZ2U6IGlmKCRlZGdlID09IGFscGhhLCBmaXJzdCwgbGFzdCk7XG4gIH1cblxuICBAcmV0dXJuICRlZGdlO1xufVxuXG5cbi8vIEdldCBMb2NhdGlvblxuLy8gLS0tLS0tLS0tLS0tXG4vLyBDYWxjdWxhdGUgbG9jYXRpb24gdmFsdWUgYmFzZWQgb24gZWRnZSwgaWYgcG9zc2libGVcbkBmdW5jdGlvbiBnZXQtbG9jYXRpb24oXG4gICRzcGFuXG4pIHtcbiAgJHNwYW4gICAgICAgOiBwYXJzZS1zcGFuKCRzcGFuKTtcbiAgJGxvY2F0aW9uICAgOiBzdXN5LWdldChsb2NhdGlvbiwgJHNwYW4pO1xuICAkZWRnZSAgICAgICA6IGdldC1lZGdlKCRzcGFuKTtcbiAgJG4gICAgICAgICAgOiBzdXN5LWdldChzcGFuLCAkc3Bhbik7XG5cbiAgQGlmICRlZGdlIGFuZCBub3QoJGxvY2F0aW9uKSBhbmQgdHlwZS1vZigkbikgPT0gbnVtYmVyIGFuZCB1bml0bGVzcygkbikge1xuICAgIEBpZiAkZWRnZSA9PSBmaXJzdCB7XG4gICAgICAkbG9jYXRpb246IDE7XG4gICAgfSBAZWxzZSBpZiAkZWRnZSA9PSBsYXN0IHtcbiAgICAgICRsb2NhdGlvbjogc3VzeS1jb3VudChzdXN5LWdldChjb2x1bW5zLCAkc3BhbikpIC0gJG4gKyAxO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJGxvY2F0aW9uXG59XG4iLCIvLyBNYXJnaW4gU3ludGF4XG4vLyA9PT09PT09PT09PT09XG5cbi8vIFByZVxuLy8gLS0tXG4vLyBBZGQgc3Bhbm5pbmctbWFyZ2lucyBiZWZvcmUgYW4gZWxlbWVudC5cbi8vIC0gJHNwYW4gIDogPHNwYW4+XG5AbWl4aW4gcHJlKFxuICAkc3BhblxuKSB7XG4gICRpbnNwZWN0OiAkc3BhbjtcbiAgJHNwYW4gICA6IG1hcC1tZXJnZSgoc3ByZWFkOiB3aWRlKSwgcGFyc2Utc3Bhbigkc3BhbikpO1xuICAkZmxvdyAgIDogc3VzeS1nZXQoZmxvdywgJHNwYW4pO1xuICAkc3BsaXQgIDogaWYoc3VzeS1nZXQoZ3V0dGVyLXBvc2l0aW9uLCAkc3BhbikgPT0gc3BsaXQsIHRydWUsIGZhbHNlKTtcbiAgJGd1dHRlciA6IGd1dHRlcigkc3Bhbik7XG4gICRzcGFuICAgOiBzcGFuKCRzcGFuKTtcbiAgJHdpZHRoICA6IGlmKCRzcGxpdCBhbmQgJGd1dHRlciwgJHNwYW4gKyAkZ3V0dGVyLCAkc3Bhbik7XG5cbiAgQGluY2x1ZGUgc3VzeS1pbnNwZWN0KHByZSwgJGluc3BlY3QpO1xuICBAaW5jbHVkZSBtYXJnaW4tb3V0cHV0KCR3aWR0aCwgbnVsbCwgJGZsb3cpO1xufVxuXG4vLyBQb3N0XG4vLyAtLS0tXG4vLyBBZGQgc3Bhbm5pbmctbWFyZ2lucyBhZnRlciBhbiBlbGVtZW50LlxuLy8gLSAkc3BhbiAgOiA8c3Bhbj5cbkBtaXhpbiBwb3N0KFxuICAkc3BhblxuKSB7XG4gICRpbnNwZWN0ICA6ICRzcGFuO1xuICAkc3BhbiAgICAgOiBtYXAtbWVyZ2UoKHNwcmVhZDogd2lkZSksIHBhcnNlLXNwYW4oJHNwYW4pKTtcbiAgJGZsb3cgICAgIDogc3VzeS1nZXQoZmxvdywgJHNwYW4pO1xuICAkc3BsaXQgICAgOiBpZihzdXN5LWdldChndXR0ZXItcG9zaXRpb24sICRzcGFuKSA9PSBzcGxpdCwgdHJ1ZSwgZmFsc2UpO1xuICAkd2lkdGggICAgOiBpZigkc3BsaXQsIHNwYW4oJHNwYW4pICsgZ3V0dGVyKCRzcGFuKSwgc3Bhbigkc3BhbikpO1xuXG4gIEBpbmNsdWRlIHN1c3ktaW5zcGVjdChwb3N0LCAkaW5zcGVjdCk7XG4gIEBpbmNsdWRlIG1hcmdpbi1vdXRwdXQobnVsbCwgJHdpZHRoLCAkZmxvdyk7XG59XG5cbi8vIFB1c2hcbi8vIC0tLS1cbi8vIFNpbXBsZSBzeW5vbnltbiBmb3IgcHJlLlxuLy8gLSAkc3BhbiAgOiA8c3Bhbj5cbkBtaXhpbiBwdXNoKFxuICAkc3BhblxuKSB7XG4gIEBpbmNsdWRlIHByZSgkc3Bhbik7XG59XG5cbi8vIFB1bGxcbi8vIC0tLS1cbi8vIEFkZCBuZWdhdGl2ZSBzcGFubmluZy1tYXJnaW5zIGJlZm9yZSBhbiBlbGVtZW50LlxuLy8gLSAkc3BhbiAgOiA8c3Bhbj5cbkBtaXhpbiBwdWxsKFxuICAkc3BhblxuKSB7XG4gICRpbnNwZWN0ICA6ICRzcGFuO1xuICAkc3BhbiAgICAgOiBtYXAtbWVyZ2UoKHNwcmVhZDogd2lkZSksIHBhcnNlLXNwYW4oJHNwYW4pKTtcbiAgJGZsb3cgICAgIDogc3VzeS1nZXQoZmxvdywgJHNwYW4pO1xuICAkc3BsaXQgICAgOiBpZihzdXN5LWdldChndXR0ZXItcG9zaXRpb24sICRzcGFuKSA9PSBzcGxpdCwgdHJ1ZSwgZmFsc2UpO1xuICAkd2lkdGggICAgOiBpZigkc3BsaXQsIDAgLSBzcGFuKCRzcGFuKSArIGd1dHRlcigkc3BhbiksIDAgLSBzcGFuKCRzcGFuKSk7XG5cbiAgQGluY2x1ZGUgc3VzeS1pbnNwZWN0KHB1bGwsICRpbnNwZWN0KTtcbiAgQGluY2x1ZGUgbWFyZ2luLW91dHB1dCgkd2lkdGgsIG51bGwsICRmbG93KTtcbn1cblxuLy8gU3F1aXNoXG4vLyAtLS0tLS1cbi8vIEFkZCBzcGFubmluZy1tYXJnaW5zIGJlZm9yZSBhbmQgYWZ0ZXIgYW4gZWxlbWVudC5cbi8vIC0gJHByZSAgICAgOiA8c3Bhbj5cbi8vIC0gWyRwb3N0XSAgOiA8c3Bhbj5cbkBtaXhpbiBzcXVpc2goXG4gICRwcmUsXG4gICRwb3N0OiBmYWxzZVxuKSB7XG4gICRpbnNwZWN0ICAgICAgOiAoJHByZSwgJHBvc3QpO1xuICAkcHJlICAgICAgICAgIDogbWFwLW1lcmdlKChzcHJlYWQ6IHdpZGUpLCBwYXJzZS1zcGFuKCRwcmUpKTtcblxuICBAaWYgJHBvc3Qge1xuICAgICRwb3N0OiBtYXAtbWVyZ2UoKHNwcmVhZDogd2lkZSksIHBhcnNlLXNwYW4oJHBvc3QpKTtcbiAgfSBAZWxzZSB7XG4gICAgJHNwYW46IHN1c3ktZ2V0KHNwYW4sICRwcmUpO1xuICAgIEBpZiBsZW5ndGgoJHNwYW4pID4gMSB7XG4gICAgICAkcHJlOiBtYXAtbWVyZ2UoJHByZSwgKHNwYW46IG50aCgkc3BhbiwgMSkpKTtcbiAgICAgICRwb3N0OiBtYXAtbWVyZ2UoJHByZSwgKHNwYW46IG50aCgkc3BhbiwgMikpKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICRwb3N0OiAkcHJlO1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIHN1c3ktaW5zcGVjdChzcXVpc2gsICRpbnNwZWN0KTtcbiAgQGluY2x1ZGUgcHJlKCRwcmUpO1xuICBAaW5jbHVkZSBwb3N0KCRwb3N0KTtcbn1cbiIsIi8vIFBhZGRpbmcgU3ludGF4XG4vLyA9PT09PT09PT09PT09PVxuXG4vLyBQcmVmaXhcbi8vIC0tLS0tLVxuLy8gQWRkIHNwYW5uaW5nLXBhZGRpbmcgYmVmb3JlIGFuIGVsZW1lbnQuXG4vLyAtICRzcGFuICA6IDxzcGFuPlxuQG1peGluIHByZWZpeChcbiAgJHNwYW5cbikge1xuICAkaW5zcGVjdCAgOiAkc3BhbjtcbiAgJHNwYW4gICAgIDogbWFwLW1lcmdlKChzcHJlYWQ6IHdpZGUpLCBwYXJzZS1zcGFuKCRzcGFuKSk7XG4gICRmbG93ICAgICA6IHN1c3ktZ2V0KGZsb3csICRzcGFuKTtcbiAgJHdpZHRoICAgIDogc3Bhbigkc3Bhbik7XG5cbiAgQGlmIGlzLWluc2lkZSgkc3Bhbikge1xuICAgICRndXR0ZXI6IGd1dHRlcigkc3Bhbik7XG4gICAgJHdpZHRoOiBpZigkZ3V0dGVyIGFuZCBjb21wYXJhYmxlKCR3aWR0aCwgJGd1dHRlciksICR3aWR0aCArICRndXR0ZXIsICR3aWR0aCk7XG4gIH1cblxuICBAaW5jbHVkZSBzdXN5LWluc3BlY3QocHJlZml4LCAkaW5zcGVjdCk7XG4gIEBpbmNsdWRlIHBhZGRpbmctb3V0cHV0KCR3aWR0aCwgbnVsbCwgJGZsb3cpO1xufVxuXG4vLyBTdWZmaXhcbi8vIC0tLS0tLVxuLy8gQWRkIHNwYW5uaW5nLXBhZGRpbmcgYWZ0ZXIgYW4gZWxlbWVudC5cbi8vIC0gJHNwYW4gIDogPHNwYW4+XG5AbWl4aW4gc3VmZml4KFxuICAkc3BhblxuKSB7XG4gICRpbnNwZWN0ICA6ICRzcGFuO1xuICAkc3BhbiAgICAgOiBtYXAtbWVyZ2UoKHNwcmVhZDogd2lkZSksIHBhcnNlLXNwYW4oJHNwYW4pKTtcbiAgJGZsb3cgICAgIDogc3VzeS1nZXQoZmxvdywgJHNwYW4pO1xuICAkd2lkdGggICAgOiBzcGFuKCRzcGFuKTtcblxuICBAaWYgaXMtaW5zaWRlKCRzcGFuKSB7XG4gICAgJGd1dHRlcjogZ3V0dGVyKCRzcGFuKTtcbiAgICAkd2lkdGg6IGlmKCRndXR0ZXIgYW5kIGNvbXBhcmFibGUoJHdpZHRoLCAkZ3V0dGVyKSwgJHdpZHRoICsgJGd1dHRlciwgJHdpZHRoKTtcbiAgfVxuXG4gIEBpbmNsdWRlIHN1c3ktaW5zcGVjdChzdWZmaXgsICRpbnNwZWN0KTtcbiAgQGluY2x1ZGUgcGFkZGluZy1vdXRwdXQobnVsbCwgJHdpZHRoLCAkZmxvdyk7XG59XG5cbi8vIFBhZFxuLy8gLS0tXG4vLyBBZGQgc3Bhbm5pbmctcGFkZGluZyBiZWZvcmUgYW5kIGFmdGVyIGFuIGVsZW1lbnQuXG4vLyAtICRwcmUgICAgIDogPHNwYW4+XG4vLyAtIFskcG9zdF0gIDogPHNwYW4+XG5AbWl4aW4gcGFkKFxuICAkcHJlLFxuICAkcG9zdDogZmFsc2Vcbikge1xuICAkaW5zcGVjdCAgOiAoJHByZSwgJHBvc3QpO1xuICAkcHJlICAgICAgOiBtYXAtbWVyZ2UoKHNwcmVhZDogd2lkZSksIHBhcnNlLXNwYW4oJHByZSkpO1xuXG4gIEBpZiAkcG9zdCB7XG4gICAgJHBvc3Q6IG1hcC1tZXJnZSgoc3ByZWFkOiB3aWRlKSwgcGFyc2Utc3BhbigkcG9zdCkpO1xuICB9IEBlbHNlIHtcbiAgICAkc3Bhbjogc3VzeS1nZXQoc3BhbiwgJHByZSk7XG4gICAgQGlmIGxlbmd0aCgkc3BhbikgPiAxIHtcbiAgICAgICRwcmU6IG1hcC1tZXJnZSgkcHJlLCAoc3BhbjogbnRoKCRzcGFuLCAxKSkpO1xuICAgICAgJHBvc3Q6IG1hcC1tZXJnZSgkcHJlLCAoc3BhbjogbnRoKCRzcGFuLCAyKSkpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJHBvc3Q6ICRwcmU7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgc3VzeS1pbnNwZWN0KHBhZCwgJGluc3BlY3QpO1xuICBAaW5jbHVkZSBwcmVmaXgoJHByZSk7XG4gIEBpbmNsdWRlIHN1ZmZpeCgkcG9zdCk7XG5cbn1cbiIsIi8vIEJsZWVkIFN5bnRheFxuLy8gPT09PT09PT09PT09XG5cbi8vIEJsZWVkXG4vLyAtLS0tLVxuLy8gQWRkIG5lZ2F0aXZlIG1hcmdpbnMsIGFuZCBlcXVhbCBwb3NpdGl2ZSBwYWRkaW5nIHRvIGNyZWF0ZSBibGVlZC5cbi8vIC0gJGJsZWVkICA6IDxzcGFuPlxuQG1peGluIGJsZWVkKFxuICAkYmxlZWQ6IDAgZ3V0dGVyKClcbikge1xuICAkaW5zcGVjdCAgOiAkYmxlZWQ7XG4gICRvdXRwdXQgICA6IGdldC1ibGVlZCgkYmxlZWQpO1xuXG4gIEBpZiBzdXN5LWdldChnbG9iYWwtYm94LXNpemluZykgIT0gY29udGVudC1ib3gge1xuICAgICRvdXRwdXQ6IG1hcC1tZXJnZSgoYm94LXNpemluZzogY29udGVudC1ib3gpLCAkb3V0cHV0KTtcbiAgfVxuXG4gIEBpbmNsdWRlIHN1c3ktaW5zcGVjdChibGVlZCwgJGluc3BlY3QpO1xuICBAaW5jbHVkZSBvdXRwdXQoJG91dHB1dCk7XG59XG5cblxuLy8gQmxlZWQteFxuLy8gLS0tLS0tLVxuLy8gU2hvcnRjdXQgZm9yIGhvcml6b250YWwgYmxlZWQuXG4vLyAtICRibGVlZCAgOiA8c3Bhbj5cbkBtaXhpbiBibGVlZC14KFxuICAkYmxlZWQ6IGd1dHRlcigpXG4pIHtcbiAgJGJsZWVkICA6IHBhcnNlLXNwYW4oJGJsZWVkKTtcbiAgJHRyYmwgICA6IHN1c3ktZ2V0KHNwYW4sICRibGVlZCk7XG5cbiAgQGlmIGxlbmd0aCgkdHJibCkgPT0gMSB7XG4gICAgJGJsZWVkOiBtYXAtbWVyZ2UoJGJsZWVkLCAoc3BhbjogMCBudGgoJHRyYmwsIDEpKSk7XG4gIH0gQGVsc2UgaWYgbGVuZ3RoKCR0cmJsKSA9PSAyIHtcbiAgICAkYmxlZWQ6IG1hcC1tZXJnZSgkYmxlZWQsIChzcGFuOiAwIG50aCgkdHJibCwgMikgMCBudGgoJHRyYmwsIDEpKSk7XG4gIH0gQGVsc2Uge1xuICAgIEB3YXJuICdibGVlZC14IG9ubHkgdGFrZXMgMiBsZW5ndGhzLCBidXQgI3tsZW5ndGgoJHRyYmwpfSB3ZXJlIHBhc3NlZC4nO1xuICB9XG5cbiAgQGluY2x1ZGUgYmxlZWQoJGJsZWVkKTtcbn1cblxuXG4vLyBCbGVlZC15XG4vLyAtLS0tLS0tXG4vLyBTaG9ydGN1dCBmb3IgdmVydGljYWwgYmxlZWQuXG4vLyAtICRibGVlZCAgOiA8c3Bhbj5cbkBtaXhpbiBibGVlZC15KFxuICAkYmxlZWQ6IGlmKGZ1bmN0aW9uLWV4aXN0cyhyaHl0aG0pLCByaHl0aG0oMSksIDFlbSlcbikge1xuICAkYmxlZWQgIDogcGFyc2Utc3BhbigkYmxlZWQpO1xuICAkdHJibCAgIDogc3VzeS1nZXQoc3BhbiwgJGJsZWVkKTtcblxuICBAaWYgbGVuZ3RoKCR0cmJsKSA9PSAxIHtcbiAgICAkYmxlZWQ6IG1hcC1tZXJnZSgkYmxlZWQsIChzcGFuOiBudGgoJHRyYmwsIDEpIDApKTtcbiAgfSBAZWxzZSBpZiBsZW5ndGgoJHRyYmwpID09IDIge1xuICAgICRibGVlZDogbWFwLW1lcmdlKCRibGVlZCwgKHNwYW46IG50aCgkdHJibCwgMSkgMCBudGgoJHRyYmwsIDIpIDApKTtcbiAgfSBAZWxzZSB7XG4gICAgQHdhcm4gJ2JsZWVkLXkgb25seSB0YWtlcyAyIGxlbmd0aHMsIGJ1dCAje2xlbmd0aCgkdHJibCl9IHdlcmUgcGFzc2VkLic7XG4gIH1cblxuICBAaW5jbHVkZSBibGVlZCgkYmxlZWQpO1xufVxuXG5cbi8vIEdldCBCbGVlZFxuLy8gLS0tLS0tLS0tXG4vLyBSZXR1cm4gYmxlZWQgb3V0cHV0IHZhbHVlc1xuLy8gLSAkYmxlZWQ6IDxzcGFuPlxuQGZ1bmN0aW9uIGdldC1ibGVlZChcbiAgJGJsZWVkXG4pIHtcbiAgJGJsZWVkICAgIDogbWFwLW1lcmdlKChzcHJlYWQ6IHdpZGUpLCBwYXJzZS1zcGFuKCRibGVlZCkpO1xuICAkdHJibCAgICAgOiBzdXN5LWdldChzcGFuLCAkYmxlZWQpO1xuICAkc2hvcnQgICAgOiBudWxsO1xuICAkb3V0cHV0ICAgOiAoKTtcblxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIGxlbmd0aCgkdHJibCkge1xuICAgICR0aGlzOiBudGgoJHRyYmwsICRpKTtcbiAgICAkbmV3OiAoKTtcbiAgICAkbWFyZ2luOiBudWxsO1xuICAgICRwYWRkaW5nOiBudWxsO1xuICAgICRwYWRkaW5nLXg6IG51bGw7XG5cbiAgICBAaWYgJHRoaXMgPiAwIHtcbiAgICAgICR0aGlzOiBtYXAtbWVyZ2UoJGJsZWVkLCAoc3BhbjogJHRoaXMpKTtcbiAgICAgICRtYXJnaW46IHNwYW4oJHRoaXMpO1xuICAgICAgJHBhZGRpbmc6ICRtYXJnaW47XG4gICAgICAkcGFkZGluZy14OiAkcGFkZGluZztcbiAgICB9XG5cbiAgICBAaWYgJG1hcmdpbiBhbmQgJG1hcmdpbiA+IDAge1xuICAgICAgJG1hcmdpbjogLSAkbWFyZ2luO1xuXG4gICAgICBAaWYgaXMtaW5zaWRlKCR0aGlzKSB7XG4gICAgICAgICRndXR0ZXI6IGd1dHRlcigkdGhpcyk7XG4gICAgICAgICRqb2luOiBpZigkZ3V0dGVyIGFuZCBjb21wYXJhYmxlKCRwYWRkaW5nLCAkZ3V0dGVyKSwgdHJ1ZSwgZmFsc2UpO1xuICAgICAgICAkcGFkZGluZy14OiBpZigkam9pbiBhbmQgJHBhZGRpbmcgPiAwLCAkcGFkZGluZyArICRndXR0ZXIsICRwYWRkaW5nKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgJGkgPT0gMSB7XG4gICAgICAkbmV3OiAoXG4gICAgICAgIG1hcmdpbi10b3A6ICRtYXJnaW4sXG4gICAgICAgIHBhZGRpbmctdG9wOiAkcGFkZGluZyxcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAkbWFyZ2luLFxuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkcGFkZGluZy14LFxuICAgICAgICBtYXJnaW4tYm90dG9tOiAkbWFyZ2luLFxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogJHBhZGRpbmcsXG4gICAgICAgIG1hcmdpbi1sZWZ0OiAkbWFyZ2luLFxuICAgICAgICBwYWRkaW5nLWxlZnQ6ICRwYWRkaW5nLXgsXG4gICAgICApO1xuICAgIH0gQGVsc2UgaWYgJGkgPT0gMiB7XG4gICAgICAkbmV3OiAoXG4gICAgICAgIG1hcmdpbi1yaWdodDogJG1hcmdpbixcbiAgICAgICAgcGFkZGluZy1yaWdodDogJHBhZGRpbmcteCxcbiAgICAgICAgbWFyZ2luLWxlZnQ6ICRtYXJnaW4sXG4gICAgICAgIHBhZGRpbmctbGVmdDogJHBhZGRpbmcteCxcbiAgICAgICk7XG4gICAgfSBAZWxzZSBpZiAkaSA9PSAzIHtcbiAgICAgICRuZXc6IChcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJG1hcmdpbixcbiAgICAgICAgcGFkZGluZy1ib3R0b206ICRwYWRkaW5nLFxuICAgICAgKTtcbiAgICB9IEBlbHNlIGlmICRpID09IDQge1xuICAgICAgJG5ldzogKFxuICAgICAgICBtYXJnaW4tbGVmdDogJG1hcmdpbixcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAkcGFkZGluZy14LFxuICAgICAgKTtcbiAgICB9XG5cbiAgICAkb3V0cHV0OiBtYXAtbWVyZ2UoJG91dHB1dCwgJG5ldyk7XG4gIH1cblxuICBAZWFjaCAkcHJvcCwgJHZhbHVlIGluICRvdXRwdXQge1xuICAgICRvdXRwdXQ6IGlmKCR2YWx1ZSA9PSAwLCBtYXAtbWVyZ2UoJG91dHB1dCwgKCRwcm9wOiBudWxsKSksICRvdXRwdXQpO1xuICB9XG5cbiAgQHJldHVybiBibGVlZC1zaG9ydGhhbmQoJG91dHB1dCk7XG59XG5cbi8vIEJsZWVkIFNob3J0aGFuZFxuLy8gLS0tLS0tLS0tLS0tLS0tXG4vLyBDb252ZXJ0IGJsZWVkIG91dHB1dCBpbnRvIHNob3J0aGFuZCB3aGVuIHBvc3NpYmxlLlxuLy8gLSAkYmxlZWQ6IDxvdXRwdXQgbWFwPlxuQGZ1bmN0aW9uIGJsZWVkLXNob3J0aGFuZChcbiAgJGJsZWVkXG4pIHtcbiAgJG1hcmdpbjogKCk7XG4gICRwYWRkaW5nOiAoKTtcbiAgJHJldHVybjogKCk7XG5cbiAgQGVhY2ggJGtleSwgJHZhbHVlIGluICRibGVlZCB7XG4gICAgQGlmIHN0ci1pbmRleCgka2V5LCBtYXJnaW4pIHtcbiAgICAgICRtYXJnaW46IG1hcC1tZXJnZSgkbWFyZ2luLCAoJGtleTogJHZhbHVlKSk7XG4gICAgfSBAZWxzZSBpZiBzdHItaW5kZXgoJGtleSwgcGFkZGluZykgPiAwIHtcbiAgICAgICRwYWRkaW5nOiBtYXAtbWVyZ2UoJHBhZGRpbmcsICgka2V5OiAkdmFsdWUpKTtcbiAgICB9XG4gIH1cblxuICAkcHJvcHM6IChcbiAgICBtYXJnaW46ICRtYXJnaW4sXG4gICAgcGFkZGluZzogJHBhZGRpbmcsXG4gICk7XG5cbiAgQGVhY2ggJG5hbWUsICRtYXAgaW4gJHByb3BzIHtcbiAgICAkZm91cjogaWYobGVuZ3RoKG1hcC1rZXlzKCRtYXApKSA9PSA0LCB0cnVlLCBmYWxzZSk7XG4gICAgJG51bGw6IGlmKGluZGV4KG1hcC12YWx1ZXMoJG1hcCksIG51bGwpLCB0cnVlLCBmYWxzZSk7XG5cbiAgICBAaWYgJGZvdXIgYW5kIG5vdCgkbnVsbCkge1xuICAgICAgJHRvcDogbWFwLWdldCgkbWFwLCAnI3skbmFtZX0tdG9wJyk7XG4gICAgICAkcmlnaHQ6IG1hcC1nZXQoJG1hcCwgJyN7JG5hbWV9LXJpZ2h0Jyk7XG4gICAgICAkYm90dG9tOiBtYXAtZ2V0KCRtYXAsICcjeyRuYW1lfS1ib3R0b20nKTtcbiAgICAgICRsZWZ0OiBtYXAtZ2V0KCRtYXAsICcjeyRuYW1lfS1sZWZ0Jyk7XG5cbiAgICAgICR0YjogaWYoJHRvcCA9PSAkYm90dG9tLCAkdG9wLCBudWxsKTtcbiAgICAgICRybDogaWYoJHJpZ2h0ID09ICRsZWZ0LCAkcmlnaHQsIG51bGwpO1xuICAgICAgJGFsbDogaWYoJHRiID09ICRybCwgJHRiLCBudWxsKTtcblxuICAgICAgJG5ldzogaWYoJGFsbCwgJGFsbCwgbnVsbCk7XG5cbiAgICAgIEBpZiBub3QoJG5ldykge1xuICAgICAgICBAaWYgJHRiIGFuZCAkcmwge1xuICAgICAgICAgICRuZXc6ICR0YiAkcmw7XG4gICAgICAgIH0gQGVsc2UgaWYgJHJsIHtcbiAgICAgICAgICAkbmV3OiAkdG9wICRybCAkYm90dG9tO1xuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAkbmV3OiAkdG9wICRyaWdodCAkYm90dG9tICRsZWZ0O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICRyZXR1cm46IG1hcC1tZXJnZSgkcmV0dXJuLCAoJG5hbWU6ICRuZXcpKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICRyZXR1cm46IG1hcC1tZXJnZSgkcmV0dXJuLCAkbWFwKTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRyZXR1cm47XG59XG4iLCIvLyBCcmVha3BvaW50IEludGVncmF0aW9uXG4vLyA9PT09PT09PT09PT09PT09PT09PT09XG5cbiRzdXN5LW1lZGlhOiAoKSAhZGVmYXVsdDtcbiRzdXN5LW1lZGlhLWZhbGxiYWNrOiBmYWxzZSAhZGVmYXVsdDtcblxuJF9zdXN5LW1lZGlhLWNvbnRleHQ6ICgpO1xuXG5cbi8vIFN1c3kgQnJlYWtwb2ludFxuLy8gLS0tLS0tLS0tLS0tLS0tXG4vLyBDaGFuZ2UgZ3JpZHMgYXQgZGlmZmVyZW50IG1lZGlhIHF1ZXJ5IGJyZWFrcG9pbnRzLlxuLy8gLSAkcXVlcnkgICAgIDogPG1pbi13aWR0aD4gWzxtYXgtd2lkdGg+XSB8IDxwcm9wZXJ0eT4gPHZhbHVlPiB8IDxtYXA+XG4vLyAtICRsYXlvdXQgICAgOiA8c2V0dGluZ3M+XG4vLyAtICRuby1xdWVyeSAgOiA8Ym9vbGVhbj4gfCA8c2VsZWN0b3I+XG5AbWl4aW4gc3VzeS1icmVha3BvaW50KFxuICAkcXVlcnksXG4gICRsYXlvdXQ6IGZhbHNlLFxuICAkbm8tcXVlcnk6ICRzdXN5LW1lZGlhLWZhbGxiYWNrXG4pIHtcbiAgQGluY2x1ZGUgc3VzeS1tZWRpYS1yb3V0ZXIoJHF1ZXJ5LCAkbm8tcXVlcnkpIHtcbiAgICBAaWYgJGxheW91dCB7XG4gICAgICBAaW5jbHVkZSB3aXRoLWxheW91dCgkbGF5b3V0KSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cblxuLy8gU3VzeSBNZWRpYVxuLy8gLS0tLS0tLS0tLVxuLy8gLSAkcXVlcnk6IDxtaW4td2lkdGg+IFs8bWF4LXdpZHRoPl0gfCA8cHJvcGVydHk+IDx2YWx1ZT5cbi8vIC0gJG5vLXF1ZXJ5OiA8Ym9vbGVhbj4gfCA8c2VsZWN0b3I+XG5AbWl4aW4gc3VzeS1tZWRpYShcbiAgJHF1ZXJ5LFxuICAkbm8tcXVlcnk6ICRzdXN5LW1lZGlhLWZhbGxiYWNrXG4pIHtcbiAgJG9sZC1jb250ZXh0OiAkX3N1c3ktbWVkaWEtY29udGV4dDtcbiAgJG5hbWU6IGlmKG1hcC1oYXMta2V5KCRzdXN5LW1lZGlhLCAkcXVlcnkpLCAkcXVlcnksIG51bGwpO1xuICAkcXVlcnk6IHN1c3ktZ2V0LW1lZGlhKCRxdWVyeSk7XG4gICRxdWVyeTogc3VzeS1wYXJzZS1tZWRpYSgkcXVlcnkpO1xuXG4gIEBpbmNsdWRlIHN1c3ktbWVkaWEtY29udGV4dCgkcXVlcnksICRuYW1lKTtcblxuICBAaWYgJG5vLXF1ZXJ5IGFuZCB0eXBlLW9mKCRuby1xdWVyeSkgIT0gc3RyaW5nIHtcbiAgICBAY29udGVudDtcbiAgfSBAZWxzZSB7XG4gICAgQG1lZGlhICN7c3VzeS1yZW5kZXItbWVkaWEoJHF1ZXJ5KX0ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuXG4gICAgQGlmIHR5cGUtb2YoJG5vLXF1ZXJ5KSA9PSBzdHJpbmcge1xuICAgICAgI3skbm8tcXVlcnl9ICYge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBzdXN5LW1lZGlhLWNvbnRleHQoJG9sZC1jb250ZXh0LCAkY2xlYW46IHRydWUpO1xufVxuXG5cbi8vIE1lZGlhIFJvdXRlclxuLy8gLS0tLS0tLS0tLS0tXG4vLyBSb3V0IG1lZGlhIGFyZ3VtZW50cyB0byB0aGUgY29ycmVjdCBtaXhpbi5cbkBtaXhpbiBzdXN5LW1lZGlhLXJvdXRlcihcbiAgJHF1ZXJ5LFxuICAkbm8tcXVlcnk6ICRzdXN5LW1lZGlhLWZhbGxiYWNrXG4pIHtcbiAgQGlmIHN1c3ktc3VwcG9ydChicmVha3BvaW50LCAobWl4aW46IGJyZWFrcG9pbnQpLCAkd2FybjogZmFsc2UpIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRxdWVyeSwgJG5vLXF1ZXJ5KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBpbmNsdWRlIHN1c3ktbWVkaWEoJHF1ZXJ5LCAkbm8tcXVlcnkpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG5cbi8vIFVwZGF0ZSBDb250ZXh0XG4vLyAtLS0tLS0tLS0tLS0tXG4vLyBTZXQgdGhlIG5ldyBtZWRpYSBjb250ZXh0XG5AbWl4aW4gc3VzeS1tZWRpYS1jb250ZXh0KFxuICAkcXVlcnksXG4gICRuYW1lOiBudWxsLFxuICAkY2xlYW46IGZhbHNlXG4pIHtcbiAgJHF1ZXJ5OiBtYXAtbWVyZ2UoKG5hbWU6ICRuYW1lKSwgJHF1ZXJ5KTtcblxuICBAaWYgJGNsZWFuIHtcbiAgICAkX3N1c3ktbWVkaWEtY29udGV4dDogJHF1ZXJ5ICFnbG9iYWw7XG4gIH0gQGVsc2Uge1xuICAgICRfc3VzeS1tZWRpYS1jb250ZXh0OiBtYXAtbWVyZ2UoJF9zdXN5LW1lZGlhLWNvbnRleHQsICRxdWVyeSkgIWdsb2JhbDtcbiAgfVxufVxuXG5cbi8vIE1lZGlhIENvbnRleHRcbi8vIC0tLS0tLS0tLS0tLS1cbi8vIFJldHVybiB0aGUgZnVsbCBtZWRpYSBjb250ZXh0LCBvciBhIHNpbmdsZSBtZWRpYSBwcm9wZXJ0eSAoZS5nLiBtaW4td2lkdGgpXG5AZnVuY3Rpb24gc3VzeS1tZWRpYS1jb250ZXh0KFxuICAkcHJvcGVydHk6IGZhbHNlXG4pIHtcbiAgQGlmICRwcm9wZXJ0eSB7XG4gICAgQHJldHVybiBtYXAtZ2V0KCRfc3VzeS1tZWRpYS1jb250ZXh0LCAkcHJvcGVydHkpO1xuICB9IEBlbHNlIHtcbiAgICBAcmV0dXJuICRfc3VzeS1tZWRpYS1jb250ZXh0O1xuICB9XG59XG5cblxuLy8gR2V0IE1lZGlhXG4vLyAtLS0tLS0tLS1cbi8vIFJldHVybiBhIG5hbWVkIG1lZGlhLXF1ZXJ5IGZyb20gJHN1c3ktbWVkaWEuXG4vLyAtICRuYW1lOiA8a2V5PlxuQGZ1bmN0aW9uIHN1c3ktZ2V0LW1lZGlhKFxuICAkbmFtZVxuKSB7XG4gIEBpZiBtYXAtaGFzLWtleSgkc3VzeS1tZWRpYSwgJG5hbWUpIHtcbiAgICAkbWFwLXZhbHVlOiBtYXAtZ2V0KCRzdXN5LW1lZGlhLCAkbmFtZSk7XG4gICAgQGlmICgkbmFtZSA9PSAkbWFwLXZhbHVlKSB7XG4gICAgICAkbmFtZTogJG1hcC12YWx1ZTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICRuYW1lOiBzdXN5LWdldC1tZWRpYSgkbWFwLXZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRuYW1lO1xufVxuXG5cbi8vIFJlbmRlciBNZWRpYVxuLy8gLS0tLS0tLS0tLS0tXG4vLyBCdWlsZCBhIG1lZGlhLXF1ZXJ5IHN0cmluZyBmcm9tIHZhcmlvdXMgbWVkaWEgc2V0dGluZ3NcbkBmdW5jdGlvbiBzdXN5LXJlbmRlci1tZWRpYShcbiAgJHF1ZXJ5XG4pIHtcbiAgJG91dHB1dDogbnVsbDtcbiAgQGVhY2ggJHByb3BlcnR5LCAkdmFsdWUgaW4gJHF1ZXJ5IHtcbiAgICAkc3RyaW5nOiBudWxsO1xuXG4gICAgQGlmICRwcm9wZXJ0eSA9PSBtZWRpYSB7XG4gICAgICAkc3RyaW5nOiAkdmFsdWU7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkc3RyaW5nOiAnKCN7JHByb3BlcnR5fTogI3skdmFsdWV9KSc7XG4gICAgfVxuXG4gICAgJG91dHB1dDogaWYoJG91dHB1dCwgJyN7JG91dHB1dH0gYW5kICN7JHN0cmluZ30nLCAkc3RyaW5nKTtcbiAgfVxuXG4gIEByZXR1cm4gJG91dHB1dDtcbn1cblxuXG4vLyBQYXJzZSBNZWRpYVxuLy8gLS0tLS0tLS0tLS1cbi8vIFJldHVybiBwYXJzZWQgbWVkaWEtcXVlcnkgc2V0dGluZ3MgYmFzZWQgb24gc2hvcnRoYW5kXG5AZnVuY3Rpb24gc3VzeS1wYXJzZS1tZWRpYShcbiAgJHF1ZXJ5XG4pIHtcbiAgJG1xOiBudWxsO1xuICBAaWYgdHlwZS1vZigkcXVlcnkpID09IG1hcCB7XG4gICAgJG1xOiAkcXVlcnk7XG4gIH0gQGVsc2UgaWYgdHlwZS1vZigkcXVlcnkpID09IG51bWJlciB7XG4gICAgJG1xOiAobWluLXdpZHRoOiAkcXVlcnkpO1xuICB9IEBlbHNlIGlmIHR5cGUtb2YoJHF1ZXJ5KSA9PSBsaXN0IGFuZCBsZW5ndGgoJHF1ZXJ5KSA9PSAyIHtcbiAgICBAaWYgdHlwZS1vZihudGgoJHF1ZXJ5LCAxKSkgPT0gbnVtYmVyIHtcbiAgICAgICRtcTogKFxuICAgICAgICBtaW4td2lkdGg6IG1pbigkcXVlcnkuLi4pLFxuICAgICAgICBtYXgtd2lkdGg6IG1heCgkcXVlcnkuLi4pLFxuICAgICAgKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICRtcTogKG50aCgkcXVlcnksIDEpOiBudGgoJHF1ZXJ5LCAyKSk7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICAkbXE6IChtZWRpYTogJyN7JHF1ZXJ5fScpO1xuICB9XG5cbiAgQHJldHVybiAkbXE7XG59XG4iLCIvKipcbiAqXG4gKiBDU1MgdmFsdWUgdmFyaWFibGVzXG4gKlxuICovXG5cbi8vIExheW91dHNcbiAkZGVza3RvcDpcdFx0XHQxMDI0cHg7XG4gJGhhbmRoZWxkOlx0XHRcdDc1OXB4O1xuICRtaWNybzogICAgICAgIDM0MHB4O1xuXG4vLyBGb250IEZhbWlsaWVzXG4kYmFzZS1mb250LWZhbWlseTogXCJMYXJzc2VpdFwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBcIkx1Y2lkYSBHcmFuZGVcIiwgc2Fucy1zZXJpZjtcbiRoZWF2eS1mb250LWZhbWlseTogXCJMYXJzc2VpdC1Cb2xkXCIsIEhlbHZldGljYSwgQXJpYWwsIFwiTHVjaWRhIEdyYW5kZVwiLCBzYW5zLXNlcmlmO1xuJGhlYWRpbmctZm9udC1mYW1pbHk6IFwiR290aGFtIEJvbGRcIiwgSGVsdmV0aWNhLCBBcmlhbCwgXCJMdWNpZGEgR3JhbmRlXCIsIHNhbnMtc2VyaWY7XG5cbi8vIEZvbnQgU2l6ZXNcbiRiYXNlLWZvbnQtc2l6ZTogMTZweDtcblxuXG4vLyBMaW5lIEhlaWdodFxuJGJhc2UtbGluZS1oZWlnaHQ6IDEuNDtcbiRoZWFkaW5nLWxpbmUtaGVpZ2h0OiAxLjI7XG5cbi8vIExldHRlciBTcGFjaW5nXG4kaGVhZGluZy1sZXR0ZXItc3BhY2luZzogMDtcbiRiYXNlLWxldHRlci1zcGFjaW5nOiAwO1xuXG4vLyBPdGhlciBTaXplc1xuJGJhc2UtYm9yZGVyLXJhZGl1czogM3B4O1xuJGJhc2Utc3BhY2luZzogJGJhc2UtbGluZS1oZWlnaHQgKiAxZW07XG4kc21hbGwtc3BhY2luZzogJGJhc2Utc3BhY2luZyAvIDI7XG4kYmFzZS16LWluZGV4OiAwO1xuXG4vLyBDb2xvcnNcbiRiYXNlLWFjY2VudC1jb2xvcjogIzE1YzBmMSAhZGVmYXVsdDtcbiRibHVlOiAjMTVjMGYxO1xuJGRhcmstYmx1ZTogIzBmNDI1ODtcbiRsaWdodC1ibHVlOiAjZGJmNGZiO1xuJGRhcmstZ3JheTogI2VhZTllOTtcbiRtZWRpdW0tZ3JheTogIzk5OTtcbiRsaWdodC1ncmF5OiAjZjZmNmY2O1xuJGlucHV0LWJvcmRlcjogI2NjY2NjYztcbiRncmVlbjogIzljY2IzYjtcbiRlcnJvci1yZWQ6ICNmMjcwNWQ7XG5cbi8vIEZvbnQgQ29sb3JzXG4kYmFzZS1iYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuJGJhc2UtZm9udC1jb2xvcjogIzViNWI1YjtcbiRhY3Rpb24tY29sb3I6ICRibHVlO1xuXG4vLyBCb3JkZXJcbiRiYXNlLWJvcmRlci1jb2xvcjogJGlucHV0LWJvcmRlcjtcbiRiYXNlLWJvcmRlcjogMXB4IHNvbGlkICRiYXNlLWJvcmRlci1jb2xvcjtcblxuLy8gU2VwYXJhdG9yc1xuJGJhc2Utc2VwYXJhdG9yOiAjY2NjO1xuXG4vLyBGb3Jtc1xuJGZvcm0tYm94LXNoYWRvdzogaW5zZXQgMCAxcHggM3B4IHJnYmEoIzAwMCwgMC4xNSk7XG4kZm9ybS1ib3gtc2hhZG93LWZvY3VzOiAkZm9ybS1ib3gtc2hhZG93LCAwIDAgNXB4IGFkanVzdC1jb2xvcigkYWN0aW9uLWNvbG9yLCAkbGlnaHRuZXNzOiAtNSUsICRhbHBoYTogLTAuMyk7XG5cbi8vIEJ1dHRvbnNcbiRiYXNlLWJ1dHRvbi1jb2xvcjogJGFjdGlvbi1jb2xvcjtcbiRoZXJvLWJ1dHRvbi1jb2xvcjogcmdiYSgyNDEsIDI0MCwgMjQwLCAwLjgpO1xuJGJhc2UtYnV0dG9uLWZvbnQtc2l6ZTogMTJweDtcblxuLy8gU2Nob29sc1xuJHVjbGEtYmx1ZTogIzAwN2NjMjtcbiR1Y2xhLXllbGxvdzogI2ZmYzYyNztcbiRkdWtlLWxpZ2h0LWJsdWU6ICMwMDQ4YTA7XG4kZHVrZS1kYXJrLWJsdWU6ICMwMDJlODI7XG4kdGV4YXMtbGlnaHQtb3JhbmdlOiAjZDM1ZTEzO1xuJHRleGFzLWRhcmstb3JhbmdlOiAjYzE0MDBhO1xuJG1pY2hpZ2FuLWJsdWU6ICMwNDFlNDE7XG4kbWljaGlnYW4teWVsbG93OiAjZmZjZTAwO1xuJGZsb3JpZGEtYmx1ZTogIzAwNTM5YjtcbiRmbG9yaWRhLW9yYW5nZTogI2Y0NzczNTtcbiRydXRnZXJzLWJsYWNrOiAjMWExYTFhO1xuJHJ1dGdlcnMtcmVkOiAjZWIxYzJjO1xuIiwiLyohIG5vcm1hbGl6ZS5jc3MgdjMuMC4yIHwgTUlUIExpY2Vuc2UgfCBnaXQuaW8vbm9ybWFsaXplICovXG5cbmJvZHkge1xuICBmb250LWZhbWlseTogc2Fucy1zZXJpZjtcbiAgbWFyZ2luOiAwO1xuICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xufVxuYXJ0aWNsZSxcbmFzaWRlLFxuZGV0YWlscyxcbmZpZ2NhcHRpb24sXG5maWd1cmUsXG5mb290ZXIsXG5oZWFkZXIsXG5oZ3JvdXAsXG5tYWluLFxubWVudSxcbm5hdixcbnNlY3Rpb24sXG5zdW1tYXJ5IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5hdWRpbyxcbmNhbnZhcyxcbnByb2dyZXNzLFxudmlkZW8ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cbmF1ZGlvOm5vdChbY29udHJvbHNdKSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGhlaWdodDogMDtcbn1cbltoaWRkZW5dLFxudGVtcGxhdGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuYSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuYTphY3RpdmUsXG5hOmhvdmVyIHtcbiAgb3V0bGluZTogMDtcbn1cbmFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZDtcbn1cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuZGZuIHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuaDEge1xuICBmb250LXNpemU6IDJlbTtcbiAgbWFyZ2luOiAwLjY3ZW0gMDtcbn1cbm1hcmsge1xuICBiYWNrZ3JvdW5kOiAjZmYwO1xuICBjb2xvcjogIzAwMDtcbn1cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7XG59XG5zdWIsXG5zdXAge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuc3VwIHtcbiAgdG9wOiAtMC41ZW07XG59XG5zdWIge1xuICBib3R0b206IC0wLjI1ZW07XG59XG5pbWcge1xuICBib3JkZXI6IDA7XG59XG5zdmc6bm90KDpyb290KSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5maWd1cmUge1xuICBtYXJnaW46IDFlbSA0MHB4O1xufVxuaHIge1xuICAtbW96LWJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgaGVpZ2h0OiAwO1xufVxucHJlIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5jb2RlLFxua2JkLFxucHJlLFxuc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcbiAgZm9udC1zaXplOiAxZW07XG59XG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBjb2xvcjogaW5oZXJpdDtcbiAgZm9udDogaW5oZXJpdDtcbiAgbWFyZ2luOiAwO1xufVxuYnV0dG9uIHtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG5idXR0b24sXG5zZWxlY3Qge1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cbmJ1dHRvbixcbmh0bWwgaW5wdXRbdHlwZT1cImJ1dHRvblwiXSxcbmlucHV0W3R5cGU9XCJyZXNldFwiXSxcbmlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuYnV0dG9uW2Rpc2FibGVkXSxcbmh0bWwgaW5wdXRbZGlzYWJsZWRdIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuaW5wdXQ6Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXI6IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5pbnB1dCB7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG59XG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sXG5pbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBwYWRkaW5nOiAwO1xufVxuaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87XG59XG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XG4gIC1tb3otYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIC13ZWJraXQtYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xufVxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5maWVsZHNldCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjMGMwYzA7XG4gIG1hcmdpbjogMCAycHg7XG4gIHBhZGRpbmc6IDAuMzVlbSAwLjYyNWVtIDAuNzVlbTtcbn1cbmxlZ2VuZCB7XG4gIGJvcmRlcjogMDtcbiAgcGFkZGluZzogMDtcbn1cbnRleHRhcmVhIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5vcHRncm91cCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxudGFibGUge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBib3JkZXItc3BhY2luZzogMDtcbn1cbnRkLFxudGgge1xuICBwYWRkaW5nOiAwO1xufVxuLyohIGVuZCBub3JtYWxpemUuY3NzICovXG4iLCJAbWl4aW4gY2xlYXJmaXgge1xuICAgJjpiZWZvcmUsICY6YWZ0ZXIge1xuICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgZGlzcGxheTogdGFibGU7XG4gICB9XG4gICAmOmFmdGVyIHtcbiAgICAgICBjbGVhcjogYm90aDtcbiAgIH1cbn1cblxuQG1peGluIGJveC1zaXppbmcoICR0eXBlOiBib3JkZXItYm94ICkge1xuICAgLXdlYmtpdC1ib3gtc2l6aW5nOiAkdHlwZTtcbiAgICAgIC1tb3otYm94LXNpemluZzogJHR5cGU7XG4gICAgICAgIC1vLWJveC1zaXppbmc6ICR0eXBlO1xuICAgICAgIC1tcy1ib3gtc2l6aW5nOiAkdHlwZTtcbiAgICAgICAgICAgYm94LXNpemluZzogJHR5cGU7XG59XG5cbkBtaXhpbiBvcGFjaXR5KCRvcGFjaXR5KSB7XG4gb3BhY2l0eTogJG9wYWNpdHk7XG4gJG9wYWNpdHktaWU6ICRvcGFjaXR5ICogMTAwO1xuIGZpbHRlcjogYWxwaGEob3BhY2l0eT0kb3BhY2l0eS1pZSk7IC8vSUU4XG59XG5cbkBtaXhpbiBjYWxjKCRwcm9wZXJ0eSwgJGV4cHJlc3Npb24pIHtcbiAjeyRwcm9wZXJ0eX06IC1tb3otY2FsYygjeyRleHByZXNzaW9ufSk7XG4gI3skcHJvcGVydHl9OiAtd2Via2l0LWNhbGMoI3skZXhwcmVzc2lvbn0pO1xuICN7JHByb3BlcnR5fTogY2FsYygjeyRleHByZXNzaW9ufSk7XG59XG5cbkBtaXhpbiBhcHBlYXJhbmNlICgkdmFsdWUpIHtcblx0LXdlYmtpdC1hcHBlYXJhbmNlOiAkdmFsdWU7XG5cdCAgIC1tb3otYXBwZWFyYW5jZTogJHZhbHVlO1xuXHQgICAgICAgIGFwcGVhcmFuY2U6ICR2YWx1ZTtcbn1cblxuQG1peGluIGJvcmRlci1yYWRpdXMoJHJhZGl1cykge1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6ICRyYWRpdXM7XG4gIGJvcmRlci1yYWRpdXM6ICRyYWRpdXM7XG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7ICAvKiBzdG9wcyBiZyBjb2xvciBmcm9tIGxlYWtpbmcgb3V0c2lkZSB0aGUgYm9yZGVyOiAqL1xufVxuXG5AbWl4aW4gYm94LXNoYWRvdygkdmFsdWUpIHtcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6ICR2YWx1ZTtcbiAgICAtbW96LWJveC1zaGFkb3c6ICR2YWx1ZTtcbiAgICBib3gtc2hhZG93OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBuby1zZWxlY3Qge1xuICAtd2Via2l0LXRvdWNoLWNhbGxvdXQ6IG5vbmU7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1raHRtbC11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cbiIsIi8qKlxuICpcbiAqIFZlbmRvciBjc3MgZm9yIGN1c3RvbSByYW5nZSBzbGlkZXJzXG4gKiBleC4gL3N0dWRlbnQtbG9hbi1jYWxjdWxhdG9yL1xuICpcbiAqL1xuXG4vKiBodHRwczovL2dpdGh1Yi5jb20vYW5kcmVydWZmZXJ0L3Jhbmdlc2xpZGVyLmpzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4ucmFuZ2VzbGlkZXIsXG4ucmFuZ2VzbGlkZXJfX2ZpbGwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgLW1vei1ib3gtc2hhZG93OiBpbnNldCAwcHggMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMyk7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogaW5zZXQgMHB4IDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjMpO1xuICBib3gtc2hhZG93OiBpbnNldCAwcHggMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMyk7XG4gIC1tb3otYm9yZGVyLXJhZGl1czogMTBweDtcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAxMHB4O1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xufVxuLnJhbmdlc2xpZGVyIHtcbiAgYmFja2dyb3VuZDogI2U2ZTZlNjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLnJhbmdlc2xpZGVyLS1ob3Jpem9udGFsIHtcbiAgaGVpZ2h0OiAxMHB4O1xuICB3aWR0aDogMTAwJTtcbn1cbi5yYW5nZXNsaWRlci0tdmVydGljYWwge1xuICB3aWR0aDogMjBweDtcbiAgbWluLWhlaWdodDogMTUwcHg7XG4gIG1heC1oZWlnaHQ6IDEwMCU7XG59XG4ucmFuZ2VzbGlkZXItLWRpc2FibGVkIHtcbiAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQWxwaGEoT3BhY2l0eT00MCk7XG4gIG9wYWNpdHk6IDAuNDtcbn1cbi5yYW5nZXNsaWRlcl9fZmlsbCB7XG4gIGJhY2tncm91bmQ6ICRibHVlO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG59XG4ucmFuZ2VzbGlkZXItLWhvcml6b250YWwgLnJhbmdlc2xpZGVyX19maWxsIHtcbiAgdG9wOiAwO1xuICBoZWlnaHQ6IDEwMCU7XG59XG4ucmFuZ2VzbGlkZXItLXZlcnRpY2FsIC5yYW5nZXNsaWRlcl9fZmlsbCB7XG4gIGJvdHRvbTogMDtcbiAgd2lkdGg6IDEwMCU7XG59XG4ucmFuZ2VzbGlkZXJfX2hhbmRsZSB7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDI3cHg7XG4gIGhlaWdodDogMjdweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEQ5NGJXd2dkbVZ5YzJsdmJqMGlNUzR3SWlCbGJtTnZaR2x1WnowaWRYUm1MVGdpUHo0Z1BITjJaeUIyWlhKemFXOXVQU0l4TGpFaUlIaHRiRzV6UFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eU1EQXdMM04yWnlJK1BHUmxabk0rUEd4cGJtVmhja2R5WVdScFpXNTBJR2xrUFNKbmNtRmtJaUJuY21Ga2FXVnVkRlZ1YVhSelBTSnZZbXBsWTNSQ2IzVnVaR2x1WjBKdmVDSWdlREU5SWpBdU5TSWdlVEU5SWpBdU1DSWdlREk5SWpBdU5TSWdlVEk5SWpFdU1DSStQSE4wYjNBZ2IyWm1jMlYwUFNJd0pTSWdjM1J2Y0MxamIyeHZjajBpSTJabVptWm1aaUlnYzNSdmNDMXZjR0ZqYVhSNVBTSXdMakFpTHo0OGMzUnZjQ0J2Wm1aelpYUTlJakV3TUNVaUlITjBiM0F0WTI5c2IzSTlJaU13TURBd01EQWlJSE4wYjNBdGIzQmhZMmwwZVQwaU1DNHhJaTgrUEM5c2FXNWxZWEpIY21Ga2FXVnVkRDQ4TDJSbFpuTStQSEpsWTNRZ2VEMGlNQ0lnZVQwaU1DSWdkMmxrZEdnOUlqRXdNQ1VpSUdobGFXZG9kRDBpTVRBd0pTSWdabWxzYkQwaWRYSnNLQ05uY21Ga0tTSWdMejQ4TDNOMlp6NGcnKTtcbiAgYmFja2dyb3VuZC1zaXplOiAxMDAlO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgNTAlIDAlLCA1MCUgMTAwJSwgY29sb3Itc3RvcCgwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSksIGNvbG9yLXN0b3AoMTAwJSwgcmdiYSgwLCAwLCAwLCAwLjEpKSk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC1tb3otbGluZWFyLWdyYWRpZW50KHJnYmEoMjU1LCAyNTUsIDI1NSwgMCksIHJnYmEoMCwgMCwgMCwgMC4xKSk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHJnYmEoMjU1LCAyNTUsIDI1NSwgMCksIHJnYmEoMCwgMCwgMCwgMC4xKSk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudChyZ2JhKDI1NSwgMjU1LCAyNTUsIDApLCByZ2JhKDAsIDAsIDAsIDAuMSkpO1xuICAtbW96LWJveC1zaGFkb3c6IDAgMCA4cHggcmdiYSgwLCAwLCAwLCAwLjMpO1xuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMCA4cHggcmdiYSgwLCAwLCAwLCAwLjMpO1xuICBib3gtc2hhZG93OiAwIDAgM3B4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgLW1vei1ib3JkZXItcmFkaXVzOiA1MCU7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogNTAlO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIEBpbmNsdWRlIHN1c3ktbWVkaWEgKG1heC13aWR0aCAkaGFuZGhlbGQpIHtcbiAgICB3aWR0aDozNHB4O1xuICAgIGhlaWdodDozNHB4O1xuICB9XG59XG4ucmFuZ2VzbGlkZXJfX2hhbmRsZTphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTBweDtcbiAgaGVpZ2h0OiAxMHB4O1xuICBtYXJnaW46IGF1dG87XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEQ5NGJXd2dkbVZ5YzJsdmJqMGlNUzR3SWlCbGJtTnZaR2x1WnowaWRYUm1MVGdpUHo0Z1BITjJaeUIyWlhKemFXOXVQU0l4TGpFaUlIaHRiRzV6UFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eU1EQXdMM04yWnlJK1BHUmxabk0rUEd4cGJtVmhja2R5WVdScFpXNTBJR2xrUFNKbmNtRmtJaUJuY21Ga2FXVnVkRlZ1YVhSelBTSnZZbXBsWTNSQ2IzVnVaR2x1WjBKdmVDSWdlREU5SWpBdU5TSWdlVEU5SWpBdU1DSWdlREk5SWpBdU5TSWdlVEk5SWpFdU1DSStQSE4wYjNBZ2IyWm1jMlYwUFNJd0pTSWdjM1J2Y0MxamIyeHZjajBpSXpBd01EQXdNQ0lnYzNSdmNDMXZjR0ZqYVhSNVBTSXdMakV6SWk4K1BITjBiM0FnYjJabWMyVjBQU0l4TURBbElpQnpkRzl3TFdOdmJHOXlQU0lqWm1abVptWm1JaUJ6ZEc5d0xXOXdZV05wZEhrOUlqQXVNQ0l2UGp3dmJHbHVaV0Z5UjNKaFpHbGxiblErUEM5a1pXWnpQanh5WldOMElIZzlJakFpSUhrOUlqQWlJSGRwWkhSb1BTSXhNREFsSWlCb1pXbG5hSFE5SWpFd01DVWlJR1pwYkd3OUluVnliQ2dqWjNKaFpDa2lJQzgrUEM5emRtYytJQT09Jyk7XG4gIGJhY2tncm91bmQtc2l6ZTogMTAwJTtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIDUwJSAwJSwgNTAlIDEwMCUsIGNvbG9yLXN0b3AoMCUsIHJnYmEoMCwgMCwgMCwgMC4xMykpLCBjb2xvci1zdG9wKDEwMCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkpKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogLW1vei1saW5lYXItZ3JhZGllbnQocmdiYSgwLCAwLCAwLCAwLjEzKSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHJnYmEoMCwgMCwgMCwgMC4xMyksIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQocmdiYSgwLCAwLCAwLCAwLjEzKSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSk7XG4gIC1tb3otYm9yZGVyLXJhZGl1czogNTAlO1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xufVxuLnJhbmdlc2xpZGVyX19oYW5kbGU6YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBEOTRiV3dnZG1WeWMybHZiajBpTVM0d0lpQmxibU52WkdsdVp6MGlkWFJtTFRnaVB6NGdQSE4yWnlCMlpYSnphVzl1UFNJeExqRWlJSGh0Ykc1elBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHlNREF3TDNOMlp5SStQR1JsWm5NK1BHeHBibVZoY2tkeVlXUnBaVzUwSUdsa1BTSm5jbUZrSWlCbmNtRmthV1Z1ZEZWdWFYUnpQU0p2WW1wbFkzUkNiM1Z1WkdsdVowSnZlQ0lnZURFOUlqQXVOU0lnZVRFOUlqQXVNQ0lnZURJOUlqQXVOU0lnZVRJOUlqRXVNQ0krUEhOMGIzQWdiMlptYzJWMFBTSXdKU0lnYzNSdmNDMWpiMnh2Y2owaUl6QXdNREF3TUNJZ2MzUnZjQzF2Y0dGamFYUjVQU0l3TGpFaUx6NDhjM1J2Y0NCdlptWnpaWFE5SWpFd01DVWlJSE4wYjNBdFkyOXNiM0k5SWlNd01EQXdNREFpSUhOMGIzQXRiM0JoWTJsMGVUMGlNQzR4TWlJdlBqd3ZiR2x1WldGeVIzSmhaR2xsYm5RK1BDOWtaV1p6UGp4eVpXTjBJSGc5SWpBaUlIazlJakFpSUhkcFpIUm9QU0l4TURBbElpQm9aV2xuYUhROUlqRXdNQ1VpSUdacGJHdzlJblZ5YkNnalozSmhaQ2tpSUM4K1BDOXpkbWMrSUE9PScpO1xuICBiYWNrZ3JvdW5kLXNpemU6IDEwMCU7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCA1MCUgMCUsIDUwJSAxMDAlLCBjb2xvci1zdG9wKDAlLCByZ2JhKDAsIDAsIDAsIDAuMSkpLCBjb2xvci1zdG9wKDEwMCUsIHJnYmEoMCwgMCwgMCwgMC4xMikpKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogLW1vei1saW5lYXItZ3JhZGllbnQocmdiYSgwLCAwLCAwLCAwLjEpLCByZ2JhKDAsIDAsIDAsIDAuMTIpKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQocmdiYSgwLCAwLCAwLCAwLjEpLCByZ2JhKDAsIDAsIDAsIDAuMTIpKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHJnYmEoMCwgMCwgMCwgMC4xKSwgcmdiYSgwLCAwLCAwLCAwLjEyKSk7XG59XG4ucmFuZ2VzbGlkZXItLWhvcml6b250YWwgLnJhbmdlc2xpZGVyX19oYW5kbGUge1xuICB0b3A6IC0xMHB4O1xuICB0b3VjaC1hY3Rpb246IHBhbi15O1xuICAtbXMtdG91Y2gtYWN0aW9uOiBwYW4teTtcbn1cbi5yYW5nZXNsaWRlci0tdmVydGljYWwgLnJhbmdlc2xpZGVyX19oYW5kbGUge1xuICBsZWZ0OiAtMTBweDtcbiAgdG91Y2gtYWN0aW9uOiBwYW4teDtcbiAgLW1zLXRvdWNoLWFjdGlvbjogcGFuLXg7XG59XG5pbnB1dFt0eXBlPVwicmFuZ2VcIl06Zm9jdXMgKyAucmFuZ2VzbGlkZXIgLnJhbmdlc2xpZGVyX19oYW5kbGUge1xuICAtbW96LWJveC1zaGFkb3c6IDAgMCA4cHggcmdiYSgyNTUsIDAsIDI1NSwgMC45KTtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDAgOHB4IHJnYmEoMjU1LCAwLCAyNTUsIDAuOSk7XG4gIGJveC1zaGFkb3c6IDAgMCA4cHggcmdiYSgyNTUsIDAsIDI1NSwgMC45KTtcbn1cbiIsIlxuaW5wdXRbdHlwZT10ZXh0XSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiA2MHB4O1xuICBwYWRkaW5nOiAzMHB4IDhweCAwIDhweDtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gIGJvcmRlci1yaWdodDogbm9uZTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM5Nzk3OTc7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45Nyk7XG4gIGNvbG9yOiAjMjEyMTIxO1xuICBib3gtc2hhZG93OiBub25lO1xuICBvdXRsaW5lOiAwO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7XG59XG5pbnB1dFt0eXBlPXRleHRdOmZvY3VzLFxudGV4dGFyZWE6Zm9jdXMge1xuICBib3gtc2hhZG93OiBub25lO1xufVxuZmllbGRzZXQge1xuICBib3JkZXI6IG5vbmU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbmxhYmVsIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDE0cHg7XG4gIGxlZnQ6IDE1cHg7XG4gIGNvbG9yOiAjNUI1QjVCO1xuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4tb3V0O1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgY3Vyc29yOiB0ZXh0O1xuICAvKkBtZWRpYSBhbGwgYW5kIChtaW4td2lkdGg6MFxcMCkgYW5kIChtaW4tcmVzb2x1dGlvbjogLjAwMWRwY20pIHtcbiAgICB0b3A6IDEwcHg7XG4gIH0qL1xuICAuc3VidGV4dHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gIH1cbn1cbmlucHV0W3R5cGU9dGV4dF06Zm9jdXMge1xuICBvdXRsaW5lOiAwO1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbn1cbmlucHV0W3R5cGU9dGV4dF06Zm9jdXMgKyBsYWJlbCxcbmlucHV0W3R5cGU9dGV4dF06dmFsaWQgKyBsYWJlbCB7XG4gIGNvbG9yOiAjNUI1QjVCO1xuICBmb250LXdlaWdodDogNzAwO1xuICBmb250LXNpemU6IDEycHg7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMjVweCwgMCk7XG4gIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0yNXB4LCAwKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMjVweCwgMCk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgQG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpLCAoLW1zLWhpZ2gtY29udHJhc3Q6IG5vbmUpIHtcbiAgICB0b3A6IDMwcHg7XG4gIH1cbn1cbmlucHV0W3R5cGU9dGV4dF06Oi1tcy1jbGVhciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4uaWNvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxMnB4O1xuICByaWdodDogMDtcbiAgd2lkdGg6IDE4cHg7XG4gIGhlaWdodDogMThweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4iLCIvKipcbiAqXG4gKiBTb0ZpIFdvcmRwcmVzcyBidXR0b24gc3R5bGUgb3ZlcnJpZGVcbiAqXG4gKi9cblxuLmJ0biB7XG4gIEBpbmNsdWRlIGFwcGVhcmFuY2Uobm9uZSk7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYWN0aW9uLWNvbG9yO1xuICBib3JkZXI6IDJweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgY29sb3I6ICNmZmY7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LWZhbWlseTogJGhlYWRpbmctZm9udC1mYW1pbHk7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHBhZGRpbmc6IDEwcHggMTNweDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cygxcHgpO1xuLyogIEBpbmNsdWRlIG1lZGlhKCR0YWJsZXQpIHtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgcGFkZGluZzogMTNweCAxOHB4O1xuICB9Ki9cbiAgJjpob3ZlcixcbiAgJjpmb2N1cywgJi5hY3RpdmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAkYWN0aW9uLWNvbG9yO1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICRhY3Rpb24tY29sb3I7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxuICAmOmFjdGl2ZSB7XG4gICAgb3BhY2l0eTogMC43O1xuICB9XG4gICY6ZGlzYWJsZWQge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgb3BhY2l0eTogMC41O1xuICB9XG59XG5cbi8qKlxuICpcbiAqIFNvRmkgV29yZHByZXNzIGJ1dHRvbiBzdHlsZSBvdmVycmlkZVxuICpcbiAqL1xuXG4uYnRuLXNlbGVjdCB7XG4gIEBpbmNsdWRlIGFwcGVhcmFuY2Uobm9uZSk7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjY2O1xuICBib3JkZXI6IDJweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgY29sb3I6ICNmZmY7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LWZhbWlseTogJGhlYWRpbmctZm9udC1mYW1pbHk7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHBhZGRpbmc6IDEwcHggMTNweDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cygxcHgpO1xuLyogIEBpbmNsdWRlIG1lZGlhKCR0YWJsZXQpIHtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgcGFkZGluZzogMTNweCAxOHB4O1xuICB9Ki9cbiAgJjpob3ZlcixcbiAgJjpmb2N1cywgJi5hY3RpdmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRhY3Rpb24tY29sb3I7O1xuICAgIGNvbG9yOiAjRkZGO1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICRhY3Rpb24tY29sb3I7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxuICAmOmFjdGl2ZSB7XG4gICAgb3BhY2l0eTogMC43O1xuICB9XG4gICY6ZGlzYWJsZWQge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgb3BhY2l0eTogMC41O1xuICB9XG59XG4iLCIvKipcbiAqIFNvRmkgV29yZHByZXNzIHN0eWxlcyBvdmVycmlkZVxuICogQmFzZSBzZXR0aW5ncyBmb3IgdHlwb2dyYXBoaWMgZWxlbWVudHNcbiAqXG4gKi9cblxuXG4gLyogV2ViIGZvbnRzXG4gICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbiBAZm9udC1mYWNlIHtcbiAgIGZvbnQtZmFtaWx5OiAnTGFyc3NlaXQnO1xuICAgc3JjOiB1cmwoJy4uL2ZvbnRzL2xhcnNzZWl0LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLFxuICAgICAgICB1cmwoJy4uL2ZvbnRzL2xhcnNzZWl0LndvZmYnKSBmb3JtYXQoJ3dvZmYnKSxcbiAgICAgICAgdXJsKCcuLi9mb250cy9sYXJzc2VpdC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyk7XG4gICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgZm9udC1zdHlsZTogbm9ybWFsO1xuIH1cbiBAZm9udC1mYWNlIHtcbiAgIGZvbnQtZmFtaWx5OiAnTGFyc3NlaXQtQm9sZCc7XG4gICBzcmM6IHVybCgnLi4vZm9udHMvbGFyc3NlaXQtYm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSxcbiAgICAgICAgdXJsKCcuLi9mb250cy9sYXJzc2VpdC1ib2xkLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSxcbiAgICAgICAgdXJsKCcuLi9mb250cy9sYXJzc2VpdC1ib2xkLnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKTtcbiAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICBmb250LXN0eWxlOiBub3JtYWw7XG4gfVxuIEBmb250LWZhY2Uge1xuICAgZm9udC1mYW1pbHk6ICdHb3RoYW0gQm9sZCc7XG4gICBzcmM6IHVybCgnLi4vZm9udHMvZ290aGFtYm9sZC13ZWJmb250LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLFxuICAgICAgICB1cmwoJy4uL2ZvbnRzL2dvdGhhbWJvbGQtd2ViZm9udC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksXG4gICAgICAgIHVybCgnLi4vZm9udHMvZ290aGFtYm9sZC13ZWJmb250LnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKTtcbiAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICBmb250LXN0eWxlOiBub3JtYWw7XG4gfVxuXG5cbiAvKiBQcmV2ZW50IEZPSVQgKGZsYXNoIG9mIHVuc3R5bGVkIHRleHQpXG4gICAgaHR0cHM6Ly93d3cuZmlsYW1lbnRncm91cC5jb20vbGFiL2ZvbnQtZXZlbnRzLmh0bWxcbiAgICBTZWUgc3JjL2pzL2N1c3RvbS5qcyBmb3IgaW1wbGVtZW50YXRpb25cbiAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuIGJvZHksXG4gaDEsXG4gaDIsXG4gaDMsXG4gaDQsXG4gaDUsXG4gaDYsXG4gLmwtaGVybyAuc2VjdGlvbl9faGVhZGluZyxcbiAubC1oZXJvIC5zZWN0aW9uX19zdWJoZWFkaW5nIHtcbiAgIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmO1xuIH1cbiAuZm9udHMtbG9hZGVkIGJvZHkge1xuICAgZm9udC1mYW1pbHk6ICRiYXNlLWZvbnQtZmFtaWx5O1xuIH1cbiAuZm9udHMtbG9hZGVkIGgxLFxuIC5mb250cy1sb2FkZWQgaDIsXG4gLmZvbnRzLWxvYWRlZCBoMyxcbiAuZm9udHMtbG9hZGVkIGg0LFxuIC5mb250cy1sb2FkZWQgaDUsXG4gLmZvbnRzLWxvYWRlZCBoNiB7XG4gICBmb250LWZhbWlseTogJGhlYWRpbmctZm9udC1mYW1pbHk7XG4gfVxuIC5mb250cy1sb2FkZWQgLmwtaGVybyAuc2VjdGlvbl9faGVhZGluZyxcbiAuZm9udHMtbG9hZGVkIC5sLWhlcm8gLnNlY3Rpb25fX3N1YmhlYWRpbmcge1xuICAgZm9udC1mYW1pbHk6ICRoZWF2eS1mb250LWZhbWlseTtcbiB9XG5cblxuIC8qIEdsb2JhbFxuICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5ib2R5IHtcbiAgQGluY2x1ZGUgZm9udC1mZWF0dXJlLXNldHRpbmdzKFwia2VyblwiLCBcImxpZ2FcIiwgXCJwbnVtXCIpO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgY29sb3I6ICRiYXNlLWZvbnQtY29sb3I7XG4gIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplO1xuICBsaW5lLWhlaWdodDogJGJhc2UtbGluZS1oZWlnaHQ7XG4gIGxldHRlci1zcGFjaW5nOiAkYmFzZS1sZXR0ZXItc3BhY2luZztcbiAgZm9udC1mYW1pbHk6ICRiYXNlLWZvbnQtZmFtaWx5O1xuICBmb250LXdlaWdodDo1OTA7XG59XG5oMSxcbmgyLFxuaDMsXG5oNCxcbmg1LFxuaDYge1xuICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZTtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgbWFyZ2luOiAwIDAgJHNtYWxsLXNwYWNpbmc7XG4gIGxldHRlci1zcGFjaW5nOiAkaGVhZGluZy1sZXR0ZXItc3BhY2luZztcbiAgZm9udC13ZWlnaHQ6NjAwO1xuICBmb250LWZhbWlseTogJGhlYWRpbmctZm9udC1mYW1pbHk7XG59XG5wIHtcbiAgbWFyZ2luOiAwIDAgJHNtYWxsLXNwYWNpbmc7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG59XG5hIHtcbiAgY29sb3I6ICRibHVlO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuMXMgbGluZWFyO1xuICAmOmFjdGl2ZSxcbiAgJjpmb2N1cyxcbiAgJjpob3ZlciB7XG4gICAgY29sb3I6IHNoYWRlKCRibHVlLCAyMCUpO1xuICB9XG4gICY6YWN0aXZlLFxuICAmOmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICB9XG59X1xuaHIge1xuICBib3JkZXItYm90dG9tOiAkYmFzZS1ib3JkZXI7XG4gIGJvcmRlci1sZWZ0OiBub25lO1xuICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gIGJvcmRlci10b3A6IG5vbmU7XG4gIG1hcmdpbjogJGJhc2Utc3BhY2luZyAwO1xufVxuaW1nLFxucGljdHVyZSB7XG4gIG1hcmdpbjogMDtcbiAgbWF4LXdpZHRoOiAxMDAlO1xufVxuc3ViLFxuc3VwIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBhIHtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgfVxufVxuc3ViIHtcbiAgZm9udC1zaXplOiA1MCU7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG59XG5zdXAge1xuICB0b3A6IC0wLjhlbTtcbiAgZm9udC1zaXplOiA2MCU7XG4gIGZvbnQtd2VpZ2h0OiA5MDA7XG4gIGEge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICB9XG59XG4iLCIiLCIvKiogUHV0IGN1c3RvbSBzY3NzIGhlcmUgKi9cbiRlcnJvci1yZWQ6I0YwMjIzNDtcbiRkYXJrZXN0LWdyYXk6IzU1NTU1NTtcblxuXG4ucmV0aXJlbWVudC1jYWxjdWxhdG9yIHtcbiAgbWFyZ2luOjAgYXV0bztcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDoxMDAwcHg7XG4gIG1pbi13aWR0aDozMjBweDtcbiAgZm9udC1zaXplOjEuMWVtO1xuICBsaW5lLWhlaWdodDoxLjdlbTtcblxuICBkaXYud2VhbHRoLWN0YSB7XG4gICAgcGFkZGluZy10b3A6MzBweDtcbiAgICBwYWRkaW5nLWJvdHRvbToyMHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAuYnRuLS13ZWFsdGgge1xuICAgICAgcGFkZGluZzogMTVweCA0MHB4O1xuICAgICAgbWFyZ2luLXRvcDotNnB4O1xuICAgICAgYmFja2dyb3VuZDogIzljY2IzYjtcbiAgICAgIGZvbnQtd2VpZ2h0Om5vcm1hbDtcbiAgICAgIEBpbmNsdWRlIHN1c3ktbWVkaWEgKG1heC13aWR0aCAkaGFuZGhlbGQpIHtcbiAgICAgICAgQGluY2x1ZGUgY2FsYygnd2lkdGgnLCAnMTAwJSAtIDUwcHgnKTtcbiAgICAgIH1cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmx1ZTtcbiAgICAgICAgLy9ib3JkZXItY29sb3I6ICNGRkY7XG4gICAgICAgIGNvbG9yOiNGRkY7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmRpc2NsYWltZXIge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgcGFkZGluZy1sZWZ0OiAxNXB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDE1cHg7XG4gICAgcGFkZGluZy10b3A6IDEwcHg7XG4gICAgZm9udC1zaXplOjE1cHg7XG4gICAgQGluY2x1ZGUgc3VzeS1tZWRpYSAobWF4LXdpZHRoICRoYW5kaGVsZCkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC5jb2wge1xuICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgfVxuICAuaGlkZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIGhyIHtcbiAgICBib3JkZXI6MDtcbiAgICBoZWlnaHQ6MXB4O1xuICAgIG1hcmdpbjoxLjJlbSAwO1xuICB9XG5cbiAgLmludHJvLXdyYXBwZXIge1xuICAgIHBhZGRpbmctYm90dG9tOjEwcHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLDAsMCwwKTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAzMnB4O1xuICAgIHBhZGRpbmctbGVmdDogMzJweDtcbiAgICBtYXgtd2lkdGg6NjAwcHg7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gIH1cbiAgaS5zdHJldGNoIHtcbiAgICAgIGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHNjYWxlKDIsMSkpO1xuICB9XG5cbiAgLm9wdGlvbmFsLCAucGFnZSB7XG4gICAgZGlzcGxheTpub25lO1xuICB9XG4gIC5zaG93IHtcbiAgICBkaXNwbGF5OmJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmZhbmN5LWlucHV0Lm1pc3NpbmctZXJyb3Ige1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNGMDIyMzQ7XG4gIH1cbiAgLnJldGlyZW1lbnQtZXJyb3ItbWVzc2FnZXMsIC5lcnJvci1tZXNzYWdlLCAuc2F2aW5nLWVycm9yLW1lc3NhZ2VzLCAuc2F2aW5nc0luY3JlYXNlLWVycm9yLW1lc3NhZ2VzIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIGNvbG9yOiAjRjAyMjM0O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgQGluY2x1ZGUgc3VzeS1tZWRpYSAobWF4LXdpZHRoIDc2MHB4KSB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfSBcbiAgfVxuICAjcXVlc3Rpb25zX3BhZ2Uge1xuICAgIGJhY2tncm91bmQtY29sb3I6I2ZmZjtcbiAgICBtYXJnaW46MjBweDtcbiAgICBidXR0b24uYnRuLS1oZXJvIHtcbiAgICAgIGZsb2F0OnJpZ2h0O1xuICAgIH1cbiAgICAubGFiZWwge1xuICAgICAgZm9udC1zaXplOjIwcHg7XG4gICAgfVxuICAgIC50b29sVGlwIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIC50b29sdGlwdGV4dCB7XG4gICAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgIHdpZHRoOiAzMDBweDtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGO1xuICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgICAgICAgIHBhZGRpbmc6IDIwcHg7XG4gICAgICAgICAgYm94LXNoYWRvdzogMnB4IDNweCAxMnB4IDAgcmdiYSgwLDAsMCwwLjEpO1xuICAgICAgICAgIC8qIFBvc2l0aW9uIHRoZSB0b29sdGlwIGluIHF1ZXN0aW9uIHdyYXAqL1xuICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgICBsZWZ0OiAxMCU7XG4gICAgICAgICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICAgICAgICBAaW5jbHVkZSBzdXN5LW1lZGlhIChtaW4td2lkdGggJGhhbmRoZWxkKSB7XG4gICAgICAgICAgICBsZWZ0OiAzMCU7XG4gICAgICAgICAgfVxuICAgICAgICAgIEBpbmNsdWRlIHN1c3ktbWVkaWEgKG1pbi13aWR0aCAxOTIwcHgpIHtcbiAgICAgICAgICAgIGxlZnQ6IDQwJTtcbiAgICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIC50b29sVGlwOmhvdmVyIC50b29sdGlwdGV4dCB7XG4gICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIH1cbiAgICBzdmcge1xuICAgICAgd2lkdGg6IDE4cHg7XG4gICAgICBoZWlnaHQ6IDE4cHg7XG4gICAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICB9XG4gICAgLmJ1dHRvbi13cmFwcGVyIHtcbiAgICAgIGJ1dHRvbiB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNEREREREQ7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNGNEY0RjQ7XG4gICAgICAgIGNvbG9yOiAjNUI1QjVCO1xuICAgICAgICBmb250LWZhbWlseTogTGFyc3NlaXQ7XG4gICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICB9XG4gICAgICAuc2VsZWN0ZWQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzZDNUYxO1xuICAgICAgICBjb2xvcjogI0ZGRkZGRjtcbiAgICAgIH1cbiAgICAgIC5jYWxjdWxhdG9yX19idG4tLXJlc3VsdDpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICNyZXN1bHRzX3BhZ2V7XG4gICAgcGFkZGluZy1sZWZ0OiAxNXB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDE1cHg7XG4gICAgLm1heC1oZWFkZXIge1xuICAgICAgbWFyZ2luOjAgYXV0bztcbiAgICAgIHdpZHRoOjExMHB4O1xuICAgICAgQGluY2x1ZGUgc3VzeS1tZWRpYSAobWF4LXdpZHRoICRoYW5kaGVsZCkge1xuICAgICAgICBtYXJnaW46MCBhdXRvO1xuICAgICAgfVxuICAgICAgQGluY2x1ZGUgc3VzeS1tZWRpYSAobWF4LXdpZHRoICRtaWNybykge1xuICAgICAgICBtYXJnaW46MCBhdXRvO1xuICAgICAgfVxuICAgIH1cbiAgICAucmVzdWx0LWhlYWRlciB7XG4gICAgICAgIHBhZGRpbmctdG9wOjE1cHg7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBmb250LWZhbWlseTogTGFyc3NlaXQ7ICBcbiAgICAgICAgY29sb3I6ICM1QjVCNUI7IFxuICAgICAgICAudGl0bGUgeyBcbiAgICAgICAgICBmb250LXNpemU6IDI4cHggIWltcG9ydGFudDsgIFxuICAgICAgICAgIGZvbnQtd2VpZ2h0OiA4MDA7IFxuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAzNXB4O1xuICAgICAgICB9XG4gICAgICAgIHAge1xuICAgICAgICAgIC8qZm9udC1zaXplOiAxNnB4ICFpbXBvcnRhbnQ7ICAqL1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyMnB4O1xuICAgICAgICB9XG4gICAgICAgIC5lZGl0LXdyYXBwZXIge1xuICAgICAgICAgIHBvc2l0aW9uOmFic29sdXRlO1xuICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgYnV0dG9uIHtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDVweDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLm5vLW1hcmdpbiB7XG4gICAgICAgICAgbWFyZ2luOiAwcHggIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBzdXN5LW1lZGlhIChtaW4td2lkdGggNzYwcHgpIHtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG4gICAgfVxuICAgIC5taW4tNjQwIHtcbiAgICAgICAgbWluLXdpZHRoOiA2NDBweDtcbiAgICB9XG5cbiAgICAuc2Nyb2xsLXBhbmUge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgfVxuICAgIC5yZXN1bHQge1xuICAgICAgQGluY2x1ZGUgc3VzeS1tZWRpYSAobWluLXdpZHRoIDc2MHB4KSB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDQwcHg7XG4gICAgICB9XG4gICAgfVxuICAgIC5yZXN1bHQtaW5uZXIge1xuICAgICAgcGFkZGluZy10b3A6MTBweDtcbiAgICAgIC5vZGQtc3VjY2VzcyB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwN0VBRDtcbiAgICAgICAgICBjb2xvcjogI0ZGRkZGRjtcbiAgICAgICAgICBwYWRkaW5nOiA0MHB4O1xuICAgICAgICAgIGgyIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTAwcHggIWltcG9ydGFudDsgXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMTI1cHg7XG4gICAgICAgICAgICBtYXJnaW46MDtcbiAgICAgICAgICB9XG4gICAgICBcbiAgICAgICAgICBAaW5jbHVkZSBzdXN5LW1lZGlhIChtYXgtd2lkdGggJGhhbmRoZWxkKSB7XG4gICAgICAgICAgICAuYmx1ci1ub3Qtc2hvdyB7XG4gICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAubmVlZC1hbW91bnQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDI0MzU3O1xuICAgICAgICBjb2xvcjogI0ZGRkZGRjtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICAgICAgcGFkZGluZzogNDBweDtcbiAgICAgICAgaDJ7XG4gICAgICAgICAgZm9udC1zaXplOiAzMHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDU0cHg7XG4gICAgICAgICAgbWFyZ2luOjA7XG4gICAgICAgICAgQGluY2x1ZGUgc3VzeS1tZWRpYSAobWluLXdpZHRoIDM1MHB4KSB7XG4gICAgICAgICAgIGZvbnQtc2l6ZTogMzVweCAhaW1wb3J0YW50O1xuICAgICAgICAgIH1cbiAgICAgICAgICBAaW5jbHVkZSBzdXN5LW1lZGlhIChtaW4td2lkdGggODYwcHgpIHtcbiAgICAgICAgICAgZm9udC1zaXplOiA0MnB4ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgfVxuICAgICAgICB9ICAgICAgICBcbiAgICAgIH1cblxuICAgICAgLmxvYWRlciB7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICBib3JkZXI6IDE2cHggc29saWQgI2YzZjNmMzsgLyogTGlnaHQgZ3JleSAqL1xuICAgICAgICBib3JkZXItdG9wOiAxNnB4IHNvbGlkICMzNDk4ZGI7IC8qIEJsdWUgKi9cbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICB3aWR0aDogMTIwcHg7XG4gICAgICAgIGhlaWdodDogMTIwcHg7XG4gICAgICAgIGFuaW1hdGlvbjogc3BpbiAycyBsaW5lYXIgaW5maW5pdGU7XG4gICAgICB9XG5cbiAgICAgIEBrZXlmcmFtZXMgc3BpbiB7XG4gICAgICAgICAgMCUgeyB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfVxuICAgICAgICAgIDEwMCUgeyB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9XG4gICAgICB9XG5cbiAgICAgIC5yZXN1bHQtZm9vdGVyIHtcbiAgICAgICAgbWFyZ2luOiAyMHB4IDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICAgY29sb3I6ICM1QjVCNUI7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICBsaW5lLWhlaWdodDogMjJweDtcbiAgICAgICAgZm9udC1mYW1pbHk6IExhcnNzZWl0O1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogLjVweDtcbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgY29sb3I6ICMwMDdFQUQ7O1xuICAgICAgICB9XG4gICAgICAgIEBpbmNsdWRlIHN1c3ktbWVkaWEgKG1pbi13aWR0aCAkaGFuZGhlbGQpIHtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgfVxuICAgICAgLypiYXIqL1xuICAgICAgLnNsaWRlciB7XG4gICAgICAgIEBpbmNsdWRlIHN1c3ktbWVkaWEgKG1heC13aWR0aCAkaGFuZGhlbGQpIHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgICAgIC5idG4ge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNGMEYwRjA7XG4gICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgIGNvbG9yOiAjNUI1QjVCO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgICBmb250LWZhbWlseTogTGFyc3NlaXQ7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gICAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgICAgcGFkZGluZzogMTVweCA3MHB4O1xuICAgICAgICB9XG4gICAgICAgIC5yYW5nZXNsaWRlcl9fZmlsbCB7XG4gICAgICAgICAgYmFja2dyb3VuZDogI2U2ZTZlNjtcbiAgICAgICAgfVxuXG4gICAgICAgLmwtZmxleC1jZW50ZXIge1xuICAgICAgICAgIG1hcmdpbi10b3A6IDMwcHg7XG4gICAgICAgICAgdWwge1xuICAgICAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMzBweDtcbiAgICAgICAgICAgIHAge1xuICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAxNXB4O1xuICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgXG4gICAgICAgICAgfVxuICAgICAgICAgIC5wb3J0Zm9saW8tb2RkcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjBGMEYwO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLmxhYmVsIHtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG4gICAgICAgLyogdG9vbFRpcCBmb3IgcG9ydGZvbGlvKi9cbiAgICAgICAgLnRvb2xUaXAge1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAudG9vbHRpcHRleHQge1xuICAgICAgICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICAgIHdpZHRoOiAzMDBweDtcbiAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjtcbiAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgICAgICAgICAgICBwYWRkaW5nOiAyMHB4O1xuICAgICAgICAgICAgICBib3gtc2hhZG93OiAycHggM3B4IDEycHggMCByZ2JhKDAsMCwwLDAuMSk7XG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0xNSU7XG4gICAgICAgICAgICAgIG1hcmdpbi10b3A6IDEwcHg7ICBcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLnRvb2xUaXA6aG92ZXIgLnRvb2x0aXB0ZXh0IHtcbiAgICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgICB9XG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgd2lkdGg6IDE4cHg7XG4gICAgICAgICAgaGVpZ2h0OiAxOHB4O1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgICAgICB9XG4gICAgICAgIC5sZWdlbmQtZml2ZSB7XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgIG1hcmdpbi10b3A6IDE1cHg7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogOTBweDtcbiAgICAgICAgICBsaW5lLWhlaWdodDogMjtcbiAgICAgICAgICAuZmlndXJlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICAgICAgICAgICYuZmlmdGg6bnRoLWNoaWxkKDEpIHtcbiAgICAgICAgICAgICAgbGVmdDoxLjUlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJi5maWZ0aDpudGgtY2hpbGQoMikge1xuICAgICAgICAgICAgICBsZWZ0OjIwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICYuZmlmdGg6bnRoLWNoaWxkKDMpIHtcbiAgICAgICAgICAgICAgbGVmdDo0NSU7XG4gICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJi5maWZ0aDpudGgtY2hpbGQoNCkge1xuICAgICAgICAgICAgICBsZWZ0OjY3JTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICYuZmlmdGg6bnRoLWNoaWxkKDUpIHtcbiAgICAgICAgICAgICAgbGVmdDo5MCU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICAuZWRpdC1hc3N1bXB0aW9ucyB7XG4gICAgICAgICAgYm9yZGVyOiAycHggc29saWQgIzAwQzVGMjtcbiAgICAgICAgICBjb2xvcjogIzAwQzVGMjtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgZm9udC1mYW1pbHk6IEdvdGhhbTtcbiAgICAgICAgICBwYWRkaW5nOiAxMHB4IDIwcHg7XG4gICAgICAgICAgbWFyZ2luOiAxMHB4IDtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDsgXG4gICAgICAgICAgQGluY2x1ZGUgc3VzeS1tZWRpYSAobWluLXdpZHRoIDc2MHB4KSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgIH0gIFxuICAgICAgICB9XG4gICAgICAgIC5yZXR1cm5zLXNlbGVjdCB7XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgbGFiZWwge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDJweDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgfVxuICAgICAgICAgIHNlbGVjdCB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAzMHB4O1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNTBweDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI0RERERERCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgaGVpZ2h0OiA1MHB4O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG4gICAgICAgICAgfVxuICAgICAgICAgIC5kcm9wLWRvd24tYXJyb3cge1xuICAgICAgICAgICAgaGVpZ2h0OiAxNXB4O1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgcmlnaHQ6IDVweDtcbiAgICAgICAgICAgIHRvcDogNTJweDtcbiAgICAgICAgICAgIHdpZHRoOiA1MnB4O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICBmaWxsOiAjMjlDNEYzO1xuICAgICAgICAgIH1cbiAgICAgICAgICAudG9vbFRpcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAudG9vbHRpcHRleHQge1xuICAgICAgICAgICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgICAgICB3aWR0aDogMzAwcHg7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAyMHB4O1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IDJweCAzcHggMTJweCAwIHJnYmEoMCwwLDAsMC4xKTtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0xNSU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMTBweDsgIFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICAudG9vbFRpcDpob3ZlciAudG9vbHRpcHRleHQge1xuICAgICAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIHdpZHRoOiAxOHB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAxOHB4O1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgICAgICAgfVxuICAgICAgICAgIEBpbmNsdWRlIHN1c3ktbWVkaWEgKG1pbi13aWR0aCA3NjBweCkge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLnJldHVybnMtc2VsZWN0LWhyIHtcbiAgICAgICAgICBAaW5jbHVkZSBzdXN5LW1lZGlhIChtaW4td2lkdGggNzYwcHgpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC5yZXN1bHQtbm90ZSB7XG4gICAgICAgICAgY29sb3I6ICM1QjVCNUI7XG4gICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICAgIG1hcmdpbjogMTVweCAwO1xuICAgICAgICAgIGZvbnQtZmFtaWx5OiBMYXJzc2VpdDtcblxuICAgICAgICAgIEBpbmNsdWRlIHN1c3ktbWVkaWEgKG1pbi13aWR0aCA3NjBweCkge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLnN0YXJ0ZWQge1xuICAgICAgICAgIG1hcmdpbjogMzBweCAwO1xuICAgICAgICAgIEBpbmNsdWRlIHN1c3ktbWVkaWEgKG1pbi13aWR0aCAkaGFuZGhlbGQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7IFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAucmVzdWx0LWFjY291bnQge1xuICAgICAgICAgIGNvbG9yOiAjNUI1QjVCO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICBsaW5lLWhlaWdodDogMjJweDtcbiAgICAgICAgICBmb250LWZhbWlseTogTGFyc3NlaXQ7XG4gICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC41cHg7XG4gICAgICAgICAgYnV0dG9uIHtcbiAgICAgICAgICAgIG1hcmdpbjogMTVweDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDE1cHggMjBweDtcbiAgICAgICAgICB9XG4gICAgICAgICAgQGluY2x1ZGUgc3VzeS1tZWRpYSAobWluLXdpZHRoIDc2MHB4KSB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICBAaW5jbHVkZSBzdXN5LW1lZGlhIChtaW4td2lkdGggMzIwcHgpIHtcbiAgICAgICAgaDIudGl0bGV7XG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG4gICAgICB9ICBcbiAgICB9XG5cbiAgICAuYXNzdW1wdGlvbiB7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgXG4gICAgICBAaW5jbHVkZSBzdXN5LW1lZGlhIChtaW4td2lkdGggJGhhbmRoZWxkKSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA1cmVtO1xuICAgICAgfVxuICAgICAgQGluY2x1ZGUgc3VzeS1tZWRpYSAobWF4LXdpZHRoICRoYW5kaGVsZCkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuXG4gICAgfVxuICAgIC5hc3N1bXB0aW9uLXdyYXBwZXIge1xuICAgICAgLmJvdHRvbS1ib3JkZXIge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0NDQztcbiAgICAgIH1cbiAgICAgIC5yZWNhbGN1bGF0ZSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgQGluY2x1ZGUgc3VzeS1tZWRpYSAobWluLXdpZHRoIDc2MHB4KSB7XG4gICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH0gXG4gICAgICB9XG5cbiAgICAgIC5jYWxjdWxhdGUtYnRuIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMzBweDtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAjOUVDQjRGO1xuICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAjOUVDQjRGO1xuICAgICAgICBwYWRkaW5nOiAxNXB4IDM1cHg7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgfVxuICAgICAgLyphc3N1bXB0aW9uIHdyYXBwZXIgYnV0dG9uIHllcyBvciBubyovXG4gICAgICAuYnV0dG9uLXdyYXBwZXIge1xuICAgICAgICBidXR0b24ge1xuICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNEREREREQ7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0Y0RjRGNDtcbiAgICAgICAgICBjb2xvcjogIzVCNUI1QjtcbiAgICAgICAgICBmb250LWZhbWlseTogTGFyc3NlaXQ7XG4gICAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgICAgIHBhZGRpbmc6IDEwcHggMTJweDtcbiAgICAgICAgfVxuICAgICAgICAuc2VsZWN0ZWQge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMzNkM1RjE7XG4gICAgICAgICAgY29sb3I6ICNGRkZGRkY7XG4gICAgICAgIH1cbiAgICAgICAgLmNhbGN1bGF0b3JfX2J0bi0tcmVzdWx0Omxhc3QtY2hpbGQge1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvKnNwZW5kaW5nQWp1c3RtZW50IHNsaWRlciovXG4gICAgICAuc3BlbmRpbmdBZGp1c3RtZW50IC5jb2wge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICAgICNzcGVuZGluZ0FkanVzdG1lbnRTbGlkZXIge1xuICAgICAgICAjanMtcmFuZ2VzbGlkZXItMCB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgICAucmFuZ2VzbGlkZXJfX2ZpbGwge1xuICAgICAgICAgIGJhY2tncm91bmQ6ICNlNmU2ZTY7XG4gICAgICAgIH1cbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1hcmdpbi10b3A6IDMwcHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IC00MHB4O1xuICAgICAgICAubGVnZW5kLWZpdmUge1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICBtYXJnaW4tdG9wOiAxNXB4O1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDkwcHg7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDI7XG4gICAgICAgICAgLmZpZ3VyZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBmb250LXNpemU6IDE1cHg7XG4gICAgICAgICAgICAmLmZpZnRoOm50aC1jaGlsZCgxKSB7XG4gICAgICAgICAgICAgIGxlZnQ6MS41JTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICYuZmlmdGg6bnRoLWNoaWxkKDIpIHtcbiAgICAgICAgICAgICAgbGVmdDoyMyU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmLmZpZnRoOm50aC1jaGlsZCgzKSB7XG4gICAgICAgICAgICAgIGxlZnQ6NDklO1xuICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICYuZmlmdGg6bnRoLWNoaWxkKDQpIHtcbiAgICAgICAgICAgICAgbGVmdDo3MCU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmLmZpZnRoOm50aC1jaGlsZCg1KSB7XG4gICAgICAgICAgICAgIGxlZnQ6OTIlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICB9XG5cbiAgICAgIC5jYWxjdWxhdGUtYnRuOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAgICAgY29sb3I6ICM5RUNCNEY7XG4gICAgICB9XG4gICAgICAgIC52YWx1ZXtcbiAgICAgICAgICBwb3NpdGlvbjphYnNvbHV0ZTtcbiAgICAgICAgICB0b3A6LTEwcHg7XG4gICAgICAgICAgcmlnaHQ6MDtcbiAgICAgICAgICBjb2xvcjokYmx1ZTtcbiAgICAgICAgfVxuICAgICAgICAudG9vbFRpcCB7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgIC50b29sdGlwdGV4dCB7XG4gICAgICAgICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgICAgd2lkdGg6IDMwMHB4O1xuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGO1xuICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgICAgICAgICAgIHBhZGRpbmc6IDIwcHg7XG4gICAgICAgICAgICAgIGJveC1zaGFkb3c6IDJweCAzcHggMTJweCAwIHJnYmEoMCwwLDAsMC4xKTtcbiAgICAgICAgICAgICAgLyogUG9zaXRpb24gdGhlIHRvb2x0aXAgKi9cbiAgICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgICAgICAgICAgICBsZWZ0OiAxMCU7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIHN1c3ktbWVkaWEgKG1pbi13aWR0aCAkaGFuZGhlbGQpIHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBpbml0aWFsO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMTUlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIEBpbmNsdWRlIHN1c3ktbWVkaWEgKG1pbi13aWR0aCAxOTIwcHgpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTUlO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLnRvb2xUaXA6aG92ZXIgLnRvb2x0aXB0ZXh0IHtcbiAgICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgICB9XG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgd2lkdGg6IDE4cHg7XG4gICAgICAgICAgaGVpZ2h0OiAxOHB4O1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnBhZ2UtaGVhZGVyIHtcbiAgICAgIG1hcmdpbi1ib3R0b206MjBweDtcbiAgICAgIC5jb2wge1xuICAgICAgICBtYXJnaW4tbGVmdDowO1xuICAgICAgfVxuICAgICAgLmNvbDpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLXRvcDowICFpbXBvcnRhbnQ7XG4gICAgICAgIHRleHQtYWxpZ246cmlnaHQ7XG4gICAgICB9XG4gICAgICAuY29sOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgdGV4dC1hbGlnbjpsZWZ0O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICNpbnRyb19wYWdlLCAjcmVzdWx0c19wYWdlIHtcbiAgICB0ZXh0LWFsaWduOmNlbnRlcjtcbiAgICBoMSB7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7XG4gICAgfVxuICAgIHAge1xuICAgICAgbWFyZ2luLWJvdHRvbToxMHB4O1xuICAgIH1cbiAgfVxuICBhLmNhbGN1bGF0b3JfX2J0bi0taW5mbyB7XG4gICAgY29sb3I6JG1lZGl1bS1ncmF5O1xuICAgIG1hcmdpbi1sZWZ0OjVweDtcbiAgICBmb250LXNpemU6MjJweDtcbiAgfVxuICAucXVlc3Rpb24ubm90LW9wdGlvbmFsIHtcbiAgICBwYWRkaW5nOjIwcHggMDtcbiAgICBAaW5jbHVkZSBzdXN5LW1lZGlhIChtYXgtd2lkdGggNzYwcHgpIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9IFxuXG4gICAgLmZhbmN5LWlucHV0IHtcbiAgICAgQGluY2x1ZGUgc3VzeS1tZWRpYSAobWF4LXdpZHRoIDc2MHB4KSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICBmbG9hdDogaW5oZXJpdDtcbiAgICAgIH1cbiAgICB9XG4gICAgLmJ1dHRvbi13cmFwcGVyIHtcbiAgICAgIEBpbmNsdWRlIHN1c3ktbWVkaWEgKG1heC13aWR0aCA3NjBweCkge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgZmxvYXQ6IGluaGVyaXQ7XG4gICAgICB9XG4gICAgfVxuICAgIFxuICB9XG4gIC5xdWVzdGlvbi5vcHRpb25hbCB7XG4gICAgcGFkZGluZy10b3A6MjBweCAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmZhbmN5LWlucHV0IHtcbiAgICBoZWlnaHQ6IDQ0cHg7XG4gICAgd2lkdGg6IDEwMHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNEREREREQ7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBwYWRkaW5nLWxlZnQ6IDIlO1xuICAgIEBpbmNsdWRlIHN1c3ktbWVkaWEgKG1pbi13aWR0aCA3NjBweCkge1xuICAgICAgcGFkZGluZy1sZWZ0OiA1JTtcbiAgICB9XG4gIH1cbiAgLnBlcmNlbnRhZ2Uge1xuICAgIHNwYW4ge1xuICAgICAgY29sb3I6ICRzb2ZpLWJsdWU7XG4gICAgICBtYXJnaW4tbGVmdDogLTM1cHg7XG4gICAgICBtYXJnaW4tYm90dG9tOiAzcHg7XG4gICAgfVxuICB9XG5cbiAgLmZhbmN5LWlucHV0LS1kb2xsYXIge1xuICAgIGZsb2F0OnJpZ2h0O1xuICAgIGNvbG9yOiRzb2ZpLWJsdWU7XG4gICAgZm9udC1zaXplOjEuM2VtO1xuICAgIHdpZHRoOjE2M3B4O1xuICAgIG1pbi13aWR0aDowcHggIWltcG9ydGFudDtcbiAgICBzcGFuIHtcbiAgICAgIGhlaWdodDogMS41ZW07XG4gICAgfVxuICB9XG5cbiAgLm5hcnJvd1dpZHRoIHtcbiAgICB3aWR0aDogMTIwcHg7XG4gIH1cblxuICBpbnB1dDpub3QoW3R5cGU9XCJzdWJtaXRcIl0pOm5vdChbdHlwZT1cInJlc2V0XCJdKTpub3QoW3R5cGU9XCJmaWxlXCJdKTpub3QoW3R5cGU9XCJidXR0b25cIl0pOm5vdChbdHlwZT1cInJhZGlvXCJdKTpub3QoW3R5cGU9XCJjaGVja2JveFwiXSksIHNlbGVjdCB7XG4gICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICBoZWlnaHQ6IDJlbTtcbiAgfVxuICAucXVlc3Rpb24ubm90LW9wdGlvbmFsIHtcbiAgICBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjRUVFRUVFO1xuICB9XG5cbiAgYnV0dG9uIHtcbiAgICBmb250LXdlaWdodDo0MDA7XG4gIH1cbiAgLmNhbGN1bGF0b3JfX2J0bi0tcmVzdWx0IHtcbiAgICBmbG9hdDpyaWdodDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiRkYXJrZXN0LWdyYXk7XG4gICAgYm9yZGVyOiRkYXJrZXN0LWdyYXk7XG4gICAgcGFkZGluZy1sZWZ0OjIwcHg7XG4gICAgcGFkZGluZy1yaWdodDoyMHB4O1xuICAgIHBhZGRpbmc6MTBweCAzMHB4O1xuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6MTBweDtcbiAgICB9XG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjojZmZmO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjokc29maS1ibHVlO1xuICAgIH1cbiAgfVxuICAucXVlc3Rpb24tc3VibWl0IHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgLmJ0bi0taGVybyB7XG4gICAgICBtYXJnaW4tdG9wOjIwcHg7XG4gICAgICBwYWRkaW5nOjE1cHggNDBweDtcbiAgICAgIGZsb2F0OiBpbmhlcml0ICFpbXBvcnRhbnQ7XG4gICAgICBAaW5jbHVkZSBzdXN5LW1lZGlhIChtaW4td2lkdGggNzYwcHgpIHtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0ICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC5idG4tLWJhc2ljIHtcbiAgICB0ZXh0LWFsaWduOmxlZnQ7XG4gICAgYm9yZGVyOm5vbmU7XG4gICAgY29sb3I6JGJsdWU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtcbiAgICBmb250LXNpemU6aW5oZXJpdDtcbiAgICBpIHtcbiAgICAgIGZvbnQtc2l6ZToxLjRlbTtcbiAgICAgIG1hcmdpbi1yaWdodDotNXB4O1xuICAgIH1cbiAgfVxuICAuYnRuLS1iYWNrIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZm9udC1zaXplOjAuOGVtO1xuICAgIGxlZnQ6LTIwcHg7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgfVxuICAuYnRuLS1wZGYge1xuICAgIGNvbG9yOiAkbWVkaXVtLWdyYXk7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHJpZ2h0Oi0xMHB4O1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIGZvbnQtd2VpZ2h0Om5vcm1hbDtcbiAgICBmb250LXNpemU6MC44ZW07XG4gICAgaSB7XG4gICAgICBmb250LXNpemU6MS40ZW07XG4gICAgICBjb2xvcjogJHNvZmktYmx1ZTtcbiAgICB9XG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogJHNvZmktYmx1ZTtcbiAgICB9XG4gIH1cbiAgYnV0dG9uLnJlc3VsdC5zZWxlY3RlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjokc29maS1ibHVlO1xuICAgIGJvcmRlci1jb2xvcjokc29maS1ibHVlO1xuICAgIGNvbG9yOiNmZmY7XG4gIH1cbn1cblxuQGluY2x1ZGUgc3VzeS1tZWRpYSAobWF4LXdpZHRoICRoYW5kaGVsZCkge1xuICAuaXJhLWNhbGN1bGF0b3IgIHtcbiAgICAucmFkaW8tYWxpZ24ge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cbiAgICAjcXVlc3Rpb25zX3BhZ2Uge1xuICAgICAgLmxhYmVsIHtcbiAgICAgICAgZm9udC1zaXplOjAuOTJlbTtcblxuICAgICAgfVxuICAgICAgLmJ1dHRvbi13cmFwcGVyIHtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICB3aWR0aDoxOTBweDtcbiAgICAgICAgcGFkZGluZy10b3A6IDVweDtcbiAgICAgIH1cbiAgICB9XG4gICAgLmNhbGN1bGF0ZS1idG4ge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICAgIC5jYWxjdWxhdG9yX19idG4tLXJlc3VsdCB7XG4gICAgICBmbG9hdDpyaWdodDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6JGRhcmtlc3QtZ3JheTtcbiAgICAgIGJvcmRlcjokZGFya2VzdC1ncmF5O1xuICAgICAgcGFkZGluZy1sZWZ0OjMwcHg7XG4gICAgICBwYWRkaW5nLXJpZ2h0OjMwcHg7XG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgY29sb3I6I2ZmZjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjokc29maS1ibHVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4iXSwibWFwcGluZ3MiOiI7QUNBQTs7Ozs7Ozs7Ozs7Ozs7OztFQWdCRTtBQ2hCRjs7Ozs7Ozs7Ozs7Ozs7OztFQWdCRTtBRVpGOzs7Ozs7RUFNRTtBQUdGOzs7Ozs7OztFQVFFO0FBR0Y7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQXNERTtBQThGRixBQUFBLFlBQVksQ0FBQztFQUFDLFVBQVUsRUFwRVQsT0FBTyxHQW9Fb0I7O0FBQUEsQUFBQSxTQUFTLENBQUM7RUFBQyxVQUFVLEVBbkVoRCxPQUFPLEdBbUUyRDs7QUFDakYsQUFBQSxlQUFlLENBQUM7RUFBQyxVQUFVLEVBbkVaLE9BQU8sR0FtRXVCOztBQUFBLEFBQUEsV0FBVyxDQUFDO0VBQUMsVUFBVSxFQWxFckQsT0FBTyxHQWtFaUU7O0FBQ3ZGLEFBQUEsa0JBQWtCLENBQUM7RUFBQyxVQUFVLEVBQUUsSUFBSztFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUMsS0FBSyxDQWhFckMsT0FBTyxHQWdFb0Q7O0FBQzlFLEFBQUEsVUFBVSxDQUFDO0VBQUMsVUFBVSxFQXBEVixPQUFPLEdBb0RrQjs7QUFBQSxBQUFBLGlCQUFpQixDQUFDO0VBQUMsVUFBVSxFQXhEL0MsT0FBTyxHQXdEOEQ7O0FBQ3hGLEFBQUEsa0JB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QUxFaUIsRUtGZixHTEVlLENBQUMsRUtGZCxBTEVhLEVLRlgsR0xFVyxDQUFDLEVLRlYsQUxFUyxFS0ZQLEdMRU8sQ0FBQyxFS0ZOLEFMRUssRUtGSCxHTEVHLENBQUMsRUtGRixBTEVDLEVLRkMsR0xFRCxDQUFDO0FLRHRCLEFMQ3FCLEVLRG5CLEdMQ21CLENBQUMsRUtEbEIsQUxDaUIsRUtEZixHTENlLENBQUM7QUtBdEIsQUxBcUIsRUtBbkIsR0xBbUIsQ0FBQztBS0N0QixBTERxQixLS0NoQixHTERnQixDQUFDLEVnQkF0QixBaEJBcUIsTWdCQWYsR2hCQWUsQ0FBQyxFb0JqQ3RCLEFwQmlDcUIsVW9CakNYLEdwQmlDVyxDQUFDLEVzQmF0QixBdEJicUIsWXNCYVQsR0FBRyxFQUFFLEd0QmJJLENBQUMsRXNCNkN0QixBdEI3Q3FCLGNzQjZDUCxHdEI3Q08sQ0FBQyxFc0JzSHRCLEF0QnRIcUIsY3NCc0hQLEdBU1YsRUFBRSxHdEIvSGUsQ0FBQztBQUN0QixBQUFFLENBQUQsR0tKRCxDQUFDO0FMSUQsQUFBRSxDQUFEO0FLSEQsRUFBRTtBTEdGLEFBQUUsQ0FBRCxHS0hHLEVBQUU7QUxHTixBQUFFLENBQUQsR0tITyxFQUFFO0FMR1YsQUFBRSxDQUFELEdLSFcsRUFBRTtBTEdkLEFBQUUsQ0FBRCxHS0hlLEVBQUU7QUxHbEIsQUFBRSxDQUFELEdLSG1CLEVBQUU7QUxHdEIsQUFBRSxDQUFEO0FLRkQsRUFBRTtBTEVGLEFBQUUsQ0FBRCxHS0ZHLEVBQUU7QUxFTixBQUFFLENBQUQ7QUtERCxFQUFFO0FMQ0YsQUFBRSxDQUFEO0FLQUQsS0FBSztBTEFMLEFBQUUsQ0FBRCxHZ0JERCxNQUFNO0FoQkNOLEFBQUUsQ0FBRCxHb0JsQ0QsVUFBVSxFRThDVixBdEJaRSxZc0JZVTtBdEJaWixDQUFDLEdzQlljLEVBQUU7QXRCWmpCLEFBQUUsQ0FBRCxHc0I0Q0QsY0FBYyxFQXlFZCxBdEJySEUsY3NCcUhZO0F0QnJIZCxDQUFDLEdzQjhIRyxFQUFFLEN0QjlIaUI7RUFDckIsVUFBVSxFZHFIQyxLQUFLLEdjcEhqQjs7QXNCSUQsQXRCRjZCLG9Cc0JFVCxHQUFHLEVBQUUsR3RCRkksQ0FBQyxFc0JjOUIsQXRCZDZCLGNzQmNmLEdBT1YsRUFBRSxHdEJyQnVCLENBQUMsRXNCYzlCLEF0QmQ2Qixjc0JjZixDQW9CWixDQUFDLEd0QmxDMEIsQ0FBQyxFc0IyRDlCLEF0QjNENkIsYXNCMkRoQixHQUNULEVBQUUsR3RCNUR1QixDQUFDLEVzQm1HOUIsQXRCbkc2QixtQnNCbUdWLEdBQUcsRUFBRSxHdEJuR0ssQ0FBQyxFMkIwVDlCLEEzQjFUNkIsRTJCMFQzQixDQUNBLENBQUMsRzNCM1QwQixDQUFDLEVzQkU5QixBdEJERSxvQnNCQ2tCO0F0QkRwQixDQUFDLEdzQkNzQixFQUFFLEVBWXpCLEF0QmJFLGNzQmFZO0F0QmJkLENBQUMsR3NCb0JHLEVBQUUsRUFQTixBdEJiRSxjc0JhWTtBdEJiZCxDQUFDLEdzQmlDQyxDQUFDLEVBeUJILEF0QjFERSxhc0IwRFc7QXRCMURiLENBQUMsR3NCMkRHLEVBQUUsRUF1Q04sQXRCbEdFLG1Cc0JrR2lCO0F0QmxHbkIsQ0FBQyxHc0JrR3FCLEVBQUUsRUt1TnhCLEEzQnpURSxFMkJ5VEE7QTNCelRGLENBQUMsRzJCMFRDLENBQUMsQzNCMVQ0QjtFQUM3QixVQUFVLEVka0hVLEtBQVcsR2NqSGhDOztBWVpELEFaMEJzQiwyQ1kxQmpCLEdBdUVLLENBQUMsR1o3Q1csQ0FBQyxFWXVFdkIsQVp2RXNCLGNZdUVkLEdBK0JGLEVBQUUsR1p0R2MsQ0FBQyxFaUJzS3ZCLEFqQnRLc0IsYWlCc0tULENBc0JYLElBQUksR2pCNUxnQixDQUFDO0FpQnNLdkIsQWpCdEtzQixhaUJzS1QsQ0F1QlgsQ0FBQyxHakI3TG1CLENBQUMsRWlCd052QixBakJ4TnNCLDJCaUJ3TkssQ0FJekIsSUFBSSxHakI1TmdCLENBQUM7QWlCd052QixBakJ4TnNCLDJCaUJ3TkssQ0FLekIsQ0FBQyxHakI3Tm1CLENBQUMsRW1Cb21CdkIsQW5CcG1Cc0IsWW1Cb21CVixDQWdCVixFQUFFLEduQnBuQmtCLENBQUM7QW1Cb21CdkIsQW5CcG1Cc0IsWW1Cb21CVixDQWlCVixFQUFFLEduQnJuQmtCLENBQUM7QW1Cb21CdkIsQW5CcG1Cc0IsWW1Cb21CVixHQWtCUixDQUFDLEduQnRuQmlCLENBQUM7QW1Cb21CdkIsQW5CcG1Cc0IsWW1Cb21CVixDQW1CVixzQkFBc0IsR25Cdm5CRixDQUFDLEVZMUJ2QixBWjJCRSwyQ1kzQkc7QVoyQkwsQ0FBQyxHWTRDUyxDQUFDLEVBMEJYLEFadEVFLGNZc0VNO0FadEVSLENBQUMsR1lxR0ssRUFBRSxFS2dFUixBakJyS0UsYWlCcUtXO0FqQnJLYixDQUFDLEdpQjJMQyxJQUFJO0FBdEJOLEFqQnJLRSxhaUJxS1c7QWpCcktiLENBQUMsR2lCNExDLENBQUMsRUEyQkgsQWpCdk5FLDJCaUJ1TnlCO0FqQnZOM0IsQ0FBQyxHaUIyTkMsSUFBSTtBQUpOLEFqQnZORSwyQmlCdU55QjtBakJ2TjNCLENBQUMsR2lCNE5DLENBQUMsRUV1WUgsQW5Cbm1CRSxZbUJtbUJVO0FuQm5tQlosQ0FBQyxHbUJtbkJDLEVBQUU7QUFoQkosQW5Cbm1CRSxZbUJtbUJVO0FuQm5tQlosQ0FBQyxHbUJvbkJDLEVBQUU7QUFqQkosQW5Cbm1CRSxZbUJtbUJVO0FuQm5tQlosQ0FBQyxHbUJxbkJHLENBQUM7QUFsQkwsQW5Cbm1CRSxZbUJtbUJVO0FuQm5tQlosQ0FBQyxHbUJzbkJDLHNCQUFzQixDbkJ0bkJBO0VBQ3RCLFdBQVcsRUFBRSxHQUFJLEdBQ2xCOztBMkJxSkQsQTNCbko4QixzQjJCbUpSLENBY3BCLE9BQU8sR0FBRyxDQUFDLEczQmpLaUIsQ0FBQyxFMkI2Ti9CLEEzQjdOOEIsZ0IyQjZOZCxDQTVEZCxPQUFPLEdBQUcsQ0FBQyxHM0JqS2lCLENBQUMsRTJCK1AvQixBM0IvUDhCLEsyQitQekIsQUFBQSxZQUFZLENBTWYsRUFBRSxHQUFHLENBQUMsRzNCclFzQixDQUFDLEUyQm1KL0IsQTNCbEpFLHNCMkJrSm9CLENBY3BCLE9BQU87QTNCaEtULENBQUMsRzJCZ0tXLENBQUMsRUE0RGIsQTNCNU5F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QUFXLEVBQUUsR0FBSSxHQUdXOztBR3pIOUIsQUhpSUEsRUdqSUUsRWVyREYsQWxCc0xBLEdrQnRMRyxDbEJzTE87RUFMUixTQUFTLEVoQnFFSSxNQUFNLENnQnJFTSxVQUFVO0VBQ25DLFdBQVcsRWhCMEZHLEdBQUc7RWdCekZqQixXQUFXLEVBQUUsR0FBSSxHQUdXOztBR2hJOUIsQUh3SUEsRUd4SUUsRWMwa0JGLEFqQmxjQSxhaUJrY2EsQ0ErQlgsTUFBTSxFQzlwQlIsQWxCNkxBLEdrQjdMRyxDbEI2TE87RUFMUixTQUFTLEVoQjhESSxNQUFNLENnQjlETSxVQUFVO0VBQ25DLFdBQVcsRWhCa0ZHLEdBQUc7RWdCakZqQixXQUFXLEVBQUUsR0FBSSxHQUdXOztBR3ZJOUIsQUgrSUEsRUcvSUUsRUlwREYsQVBtTUEsT09uTU8sRVdEUCxBbEJvTUEsR2tCcE1HLENsQm9NTztFQUxSLFNBQVMsRWhCeURJLE1BQU0sQ2dCekRNLFVBQVU7RUFDbkMsV0FBVyxFaEIyRUMsR0FBRztFZ0IxRWYsV0FBVyxFQUFFLEdBQUksR0FHVzs7QUc5STlCLEFIdUpBLEVHdkpFLEVlckRGLEFsQjRNQSxHa0I1TUcsQ2xCNE1PO0VBTFIsU0FBUyxFaEJpREksTUFBTSxDZ0JqRE0sVUFBVTtFQUNuQyxXQUFXLEVoQmtFQyxHQUFHO0VnQmpFZixXQUFXLEVBQUUsR0FBSSxHQUdXOztBR3RKOUIsQUg4SkEsRUc5SkUsRWVyREYsQWxCbU5BLEdrQm5ORyxDbEJtTk87RUFMUixTQUFTLEVoQjBDSSxNQUFNLENnQjFDTSxVQUFVO0VBQ25DLFdBQVcsRWhCMERDLEdBQUc7RWdCekRmLFdBQVcsRUFBRSxHQUFJLEdBR1c7O0FJeE45QixBSnlPQSxDSXpPQyxFV2dZRCxBZnZKQSxTZXVKUyxFSTlVVCxBbkJ1TEEsVW1CdkxVLEVBVVYsQW5CNktBLFltQjdLWSxDbkI2S0U7RUFUWixLQUFLLEVoQjdGa0IsT0FBTztFZ0I4RjlCLE1BQU0sRUFBRSxPQUFRO0VBQ2hCLE9BQU8sRUFBRSxJQUFLO0VBQ2QsZUFBZSxFQUFFLElBQUssR0FN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 */
