/*
Also please follow this
Do your project have diferent charset languages to account with?
      - Yes -> follow https://projects.netcentric.biz/wiki/display/FRONTEND/CSS+-+Font+Normalization
      - No -> You can still use it, there are tons of advantages, but its create some extra css and layout rendering
*/
/*
  * Design spec:
  * https://www.figma.com/file/SR4rvQlNnCmPMrQ9WYaIqv/branch/TJqkFymq09wf8KwmY1WNcj/Volvo-AEM-Design-system?type=design&node-id=7-26&t=pAm916VRiqCOD2I1-0
*/
/**
 * z-indexes from lower to -> higher
 */
/* doc
---
title: Pixel to em
name: nn-px-to-em
category: functions
---

Calculate the em with a given pixel with the given base font size
If you don't set a $base the $base-font-size is used as the context

## Live Template abbreviations
---
-ptu

## Parameters
---
@parameter $value = pixel based number (without unit)
@parameter $base = pixel based number (without unit)

## Dependencies
---
nn-strip-unit

## Example
---
```html_example
nn-px-to-em(5) // Output: 0.3125em
nn-px-to-em(5, 10) // Output: 0.5em
nn-px-to-em(5, 20) // Output: 0.25em
```
*/
/* doc
---
title: Pixel to rem
name: nn-px-to-rem
category: functions
---

Calculate the rem with a given pixel with the given base font size

In:  5px
Out: 0.3125rem

## Live Template abbreviations
---
-rem

## Parameters
---
@parameter $value = pixel based number (without unit)

## Dependencies
---
nn-strip-unit

## Example
---
```html_example
nn-px-to-rem(5) // Output 0.3125rem
```

*/
/* doc
---
title: Pixel to unit
name: px-to-unit
category: mixins
---

Set a property and value (pixel based without unit)

Calculates rem / em / % from given pixel and base (default base is the
base-font-size, 16px)
If rtl is true, this mixin handles all the direction stuff:
- Switching the values, when we have exactly 4 values
- Switching left and right in properties (padding and margin)

## Live Template abbreviations
---
-ptu (for em or % to pixel - with base parameter)
-rem (for rem to pixel - without base parameter)

## Parameters
---
@parameter $property = padding | margin | font-size | width | height
@parameter $value = Pixel based number - add px to keep the px for a value
@parameter $base = px based number, Default: 16px
@parameter $unit = Set unit: px | em | rem | percent

## Dependencies
---
abstract/functions/swap-left-right
abstract/functions/strip-unit

## Example
---

```html_example
@include nn-px-to-unit(padding, 0 10px 20 0); => padding: 0 10px 1.25rem 0;
@include nn-px-to-unit(padding, 0 10 20 0); => padding: 0 0.625rem 1.25rem 0;
@include nn-px-to-unit(padding-left, 10);
@include nn-px-to-unit(padding-right, 10);
@include nn-px-to-unit(margin, 0 10 20 0);
@include nn-px-to-unit(margin-left, 10);
@include nn-px-to-unit(margin-right, 10);
@include nn-px-to-unit(font-size, 20);
@include nn-px-to-unit(width, 100);
@include nn-px-to-unit(min-width, 100);
@include nn-px-to-unit(mann-width, 100);
@include nn-px-to-unit(height, 100);
@include nn-px-to-unit(min-height, 100);
@include nn-px-to-unit(mann-height, 100);
```

## Source
---
http://css-tricks.com/snippets/css/less-mixin-for-rem-font-sizing/

*/
/* doc
---
title: Pixel to unitless
name: nn-px-to-unitless
category: functions
---

This makes the same calculation as px to em. But it don't print out the unit.

Use this for line-heights.

## Live Template abbreviations
---

## Parameters
---
@parameter $value = pixel based number (without unit)
@parameter $base = pixel based number (without unit)

## Dependencies
---

## Example
---

```html_example
line-height: nn-px-to-unitless(5) // Output: 0.3125
```

## Source
---

*/
/* doc
---
title: Strip unit
name: nn-strip-unit
category: functions
---

Strips of the unit of a number

## Parameters
---
@parameter $num = number with unit (5px, 5em, 5rem)

## Example
---

```html_example
nn-strip-unit(5px) //Output: 5
nn-strip-unit(10em) // Output: 10
nn-strip-unit(15rem) // Output: 15
```

*/
/* doc
---
title: z-index
name: nn-z-index
category: functions
---

Because z-indices can get tricky we manage them in the theme.scss globally.

Always use this mixin to set set a z-index.

Read the Best Practice to get an full documentation:
https://projects.netcentric.biz/wiki/display/FRONTEND/How+to+set+a+z-index

## Live Template abbreviations
---
-z

## Parameters
---
@parameter $element = Name of the element (normally this will be the module name for the main stack)
@parameter $list = Name of the list (default $z-indices). Must be only set for stack context
@parameter $min = Set a minimum z-index which will be added to the list.

## Dependencies
---
$z-indices variable in the theme.scss

## Example
---

```html_example

// In the SASS theme file

$z-indices: slider, modal, dialog, navigation;

// In the SASS module file

.modal {
    &__base {
        position: absolute;
        z-index: nn-z-index(modal);
    }
}
```

## Source
---
http://www.smashingmagazine.com/2014/06/12/sassy-z-index-management-for-complex-layouts/

*/
/* doc
---
title: remove every unit
name: strip-unit
category: functions
---
remove all units

## Parameters
---
@parameter $number = number with unit

## Example
---
```html_example
strip-unit(5px) // Output: 5
```
*/
/*
    This mixin converts any unitless number (for example 40) to the correct unit, according to the given axis.

    Parameters:
    - $value: unitless number to be converted. A unit in $value will correspond to a px in the browser,
        no matter if it's output as px or rem

    Returns
    - Horizontal: will convert the number to pixels (40px)
    - Vertical: will convert the number to rem (if rem === 16px, then 40 will be converted to 2.5 rem)
*/
/*
    Converts a unitless number to the corresponding unit on the horizontal axis.
    By default will convert the value to px.
*/
/*
    Converts a unitless number to the corresponding unit on the vertical axis.
    By default will convert the value to rem.
*/
/* stylelint-disable */
/* doc
---
title: Swap left right values
name: swap-left-right-values
category: functions
---

Swap the values for right and left when $rtl is set to true:

In:  0 5px 8px 12px
Out: 0 12px 8px 5px (in rtl)

## Parameters
---
@parameter $values = 4 numbers (works with all units)

## Example
---

```html_example
swap-left-right-values(0 1px 8px 12px) // 0 12px 8px 1px
swap-left-right-values(0 1em 8em 12em) // 0 12em 8em 1em
wap-left-right-values(0 1rem 8rem 12rem) // 0 12rem 8rem 1rem
```

## Source
---
http://stackoverflow.com/questions/14199323/right-to-left-rtl-support-in-sass-project

*/
/* stylelint-disable */
/* doc
---
title: Swap left right names
name: swap-left-right-names
category: functions
---

Swap the names right and left when $rtl is set to true.
If the value is not right or left it returns the original value.

In:  right
Out: left (in rtl), right (in ltr)

## Live Template abbreviations
---

## Parameters
---
@parameter $origin = right | left

## Example
---

```html_example
swap-left-right-name(left)
swap-left-right-name(right)
```

## Source
---
http://stackoverflow.com/questions/14199323/right-to-left-rtl-support-in-sass-project

*/
/*  List of CSS properties that will always be output at least as 2 different values
    in order to be able to convert each one to the correct axis unit */
/*
    Mixin for automatically handling spacings around/between elements.

    This mixin will automatically invert the lef/right directions in RTL languages.
    Also, the unitless values will be converted to the proper unit according to the axis

    Parameters:
    - $property-name: name of the CSS property that should be output. Supported properties are:
        margin, margin-top, margin-right, margin-bottom, margin-left
        padding, padding-top, padding-right, padding-bottom, padding-left
        width, height, min-width, max-width, min-height, min-height
    - $value: value that will be output as part of the given property. Supported values are:
        Unitless number (40): this should be used most of the times. It will automatically be converted
            to the correct unit depending on the axis where it's used (horizontal axis => px, vertical axis => rem).
            Each unit in $value will correspond to a px in the browser, no matter to which unit it will be converted.
        Number with unit (40px, 40%...): the number and the unit will be preserved and only the left/right inversion
            will be done for RTL languages
        List of values (40 30% 20 10): margin and padding shorthands whith multiple values are supported.
            The left/right values will be automatically swapped in RTL and the unitless numbers will be converted
            to the corresponding unit. Unitless and numbers with units can be mixed in the same call.
        Using calc() in any of the previous examples is supported, although no unit conversion will be done

 ## Example
---

```html_example
@include spacing(padding, 0 10px 20 0); => padding: 0 10px 2rem 0;
@include spacing(padding, 0 10 20 0); => padding: 0 10px 2rem 0;
@include spacing(padding-left, 10);
@include spacing(padding-right, 10);
@include spacing(margin, 0 10 20 0);
@include spacing(margin-left, 10);
@include spacing(margin-right, 10);
@include spacing(width, 100);
@include spacing(min-width, 100);
@include spacing(max-width, 100);
@include spacing(height, 100);
@include spacing(min-height, 100);
@include spacing(max-height, 100);
```
*/
/* doc
---
title: Clearfix
name: clearfix
category: mixins
---

Clears after floating element

Use this mixin only inside media queries where you can't use the
abstract/extends/utils/_clearfix version, which adds less code to css

## Live Template abbreviations
---

## Example
---

```html_example
@include clearfix;
```

## Source
---
https://css-tricks.com/snippets/css/clear-fix/
*/
/* stylelint-disable string-no-newline */
/* doc
---
title: focus color
name: focus color
category: mixins
---

Add a focus color when keyboard-focus is activated
## Parameters
---
@param $number

*/
/* doc
---
title: ignore-container
name: ignore-container
category: mixins
---

Set full page width for something inside a container

## Parameters
---
@param $container-size
@param $gutter

*/
/* Generates all the rules for the grid columns up to the given amount of column */
/* Generates all the rules for the grid column offset up to the given amount of column */
/* Generates all the rules for the grid and columns for the given break point and total of columns */
/* API function to be called to generate a grid config */
/* doc
---
type: button type
state: state button
---

Button styles

Use this mixin for button styles: color text, background, border

## Example
---

```html_example
@include button(primary);
```
*/
/* doc
---
lineLimit: This value specifies the number of lines after which the content will be clamped. It must be greater than 0.
---

Truncates text at a specific number of lines.

Use this mixin to hide long text.

## Example
---

```html_example
@include line-clamp($lineLimit: 4);
```
*/
/* typography
---
title: typography
name: Typography
category: mixins
---

Adds font CSS properties by a map provided

## Parameters
---
@param $t-style
@param $is-important: false

* $t-style is expected to be a map with 'default' and 'breakpoint[s]' submaps with a property
for every css property to be set.
* $is-important parameter allows to force typography properties to be set as !important
Try to avoid its use, but it might be needed for situations where styles for a component
are very specific and to overwrite the generic ones is too complex (if they have a lot of specificity)

*/
/* doc
---
title: hidden
name: hidden
category: mixins
---

Hide from both screenreaders and browsers: h5bp.com/u
## Parameters
---

*/
/* doc
---
title: overlay
name: overlay
category: mixins
---

Creates an overlay with the provided background color
## Parameters
---
@param $bgColor

*/
/**
 * @mixin top-bottom-border
 * @desc Creates a dynamic and customizable border at the specified position on an element.
 *
 * @param {string} $position - Optional, Default: 'bottom'. Defines the position of the border. Accepts values 'top' or 'bottom'.
 * @param {color} $color - Optional, Default: '$c-black'. Specifies the color of the border. Accepts any valid CSS color value.
 * @param {length} $width - Optional, Default: '2px'. Sets the width of the border. Accepts any valid CSS length value.
 * @param {length} $margin - Optional, Default: '0'. Adds margin to the border. Accepts any valid CSS length value.
 *
 * @example
 *   .example-element {
 *       @include top-bottom-border($position: top, $color: $c-grey-two, $width: 3px, $margin: 10px);
 *   }
 */
/* doc
---
title: reset-fullwidth-margins
name: reset-fullwidth-margins
category: mixins
---

Reset margins for full width components inside a Container or a Column Control
*/
/* doc
---
title: visually hidden
name: visually hidden
category: mixins
---

Hidden from browsers but accessible to screen readers
## Parameters
---

*/
.teaserlist:not(.teaser--layout-top):not(.teaser--layout-right) .cmp-teaser {
  min-height: 0;
  padding-block-start: 100%;
}
.teaserlist__list {
  --grid-gap: 15px;
  display: grid;
  gap: var(--grid-gap);
  margin-block-end: var(--grid-gap);
}
@media (min-width: 480px) {
  .teaserlist__list {
    --grid-gap: 30px;
    grid-template-columns: calc(100% / 3 - var(--grid-gap) * 2 / 3) calc(100% / 3 - var(--grid-gap) * 2 / 3) calc(100% / 3 - var(--grid-gap) * 2 / 3) ;
    grid-gap: var(--grid-gap);
  }
  .teaserlistLayout-cols--2 .teaserlist__list {
    grid-template-columns: calc(100% / 2 - var(--grid-gap) * 1 / 2) calc(100% / 2 - var(--grid-gap) * 1 / 2) ;
    grid-gap: var(--grid-gap);
  }
}
@media (min-width: 960px) {
  .teaserlist__list {
    margin-block: 15px;
    margin-inline: 0;
  }
  .teaserlistLayout-cols--4 .teaserlist__list {
    grid-template-columns: calc(100% / 4 - var(--grid-gap) * 3 / 4) calc(100% / 4 - var(--grid-gap) * 3 / 4) calc(100% / 4 - var(--grid-gap) * 3 / 4) calc(100% / 4 - var(--grid-gap) * 3 / 4) ;
    grid-gap: var(--grid-gap);
  }
}
.teaserlistLayout--no-column .teaserlist__list {
  grid-template-columns: calc(100% / 1 - var(--grid-gap) * 0 / 1) ;
  grid-gap: var(--grid-gap);
}
.teaserlistLayout--no-column .teaserlist__list .cmp-teaser__item {
  width: 100%;
  margin-block: 0;
  margin-inline: auto;
}
.teaserlist__title {
  display: none;
}
.teaserlist__title--group {
  display: none;
}
.teaserlist .cmp-teaser {
  position: relative;
  overflow: hidden;
  margin: 0;
}
.teaserlist .cmp-teaser__warning {
  color: #c4001a;
  width: 100%;
  text-align: center;
}
.teaserlist .cmp-teaser__link:hover .cmp-teaser__overlay {
  background: rgba(0, 0, 0, 0.5);
}
.teaserlist .cmp-teaser__link:hover .cmp-teaser__content {
  transform: translateY(-100%);
}
.teaserlist .cmp-teaser__link:hover .cmp-teaser__description {
  opacity: 1;
  transition: opacity 0.1s linear;
}
.teaserlist .cmp-teaser__link:hover .article__title::after {
  padding-inline-start: 5px;
}
.teaserlist .cmp-teaser__image {
  padding: 0 !important;
}
.teaserlist .cmp-teaser__overlay {
  transition: background 0.2s ease-in-out;
  content: "";
  display: block;
  position: absolute;
  height: 100%;
  inset-block-start: 0;
  inset-inline: 0;
  background: rgba(0, 0, 0, 0);
}
.teaserlist .cmp-teaser__overlay--shade {
  background: linear-gradient(to top, #000, transparent);
  position: absolute;
  height: 200px;
  width: 100%;
  inset-block-end: 0;
}
.teaserlist .cmp-teaser__content {
  position: absolute;
  inset-block-start: 100%;
  transform: translateY(-3.5em);
  color: #e1dfdd;
  transition: transform 0.3s ease-in-out;
  padding-inline: 15px;
  padding-block: 0 5px;
  max-width: 100%;
}
.teaserlist .cmp-teaser__title {
  font-family: var(--ff-medium);
  font-size: 21px;
  font-weight: 400;
  line-height: 1.2;
  letter-spacing: var(--ls-default);
  margin-block-end: 16px;
  color: #fff;
}
@media (min-width: 768px) {
  .teaserlist .cmp-teaser__title {
    font-size: 24px;
  }
}
.teaserlist .cmp-teaser__description {
  /* stylelint-disable-next-line value-no-vendor-prefix */
  display: -webkit-box;
  -webkit-line-clamp: 8;
  -webkit-box-orient: vertical;
  /* stylelint-disable-next-line property-no-unknown */
  box-orient: vertical;
  -webkit-box-orient: vertical;
  overflow: hidden;
  padding-block-end: 1px;
  margin-block-start: 0;
  color: #fff;
  opacity: 0;
  transition: opacity 1s linear;
}
.teaserlist .cmp-teaser__linkLabel {
  font-family: var(--ff-regular);
  font-size: 16px;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: var(--ls-default);
  color: #fff;
}
.teaserlist .cmp-teaser__linkLabel:after {
  background-color: #fff;
  content: "";
  display: inline-block;
  -webkit-mask-image: url("../../../../../../content/dam/volvo-media/list-icons/chevron-right.svg#chevron-right-icon-w24-view");
          mask-image: url("../../../../../../content/dam/volvo-media/list-icons/chevron-right.svg#chevron-right-icon-w24-view");
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-size: cover;
          mask-size: cover;
  pointer-events: none;
  width: 24px;
  height: 24px;
}
@media (min-width: 1200px) {
  .teaserlist .cmp-teaser__linkLabel:after {
    -webkit-mask-image: url("../../../../../../content/dam/volvo-media/list-icons/chevron-right.svg#chevron-right-icon-w16-view");
            mask-image: url("../../../../../../content/dam/volvo-media/list-icons/chevron-right.svg#chevron-right-icon-w16-view");
  }
}
.teaserlist .cmp-teaser__linkLabel::after {
  font-size: 10px;
  margin-inline-start: 10px;
  vertical-align: middle;
  display: inline-block;
}
html[dir=rtl] .teaserlist .cmp-teaser__linkLabel::after {
  transform: scale(-1);
}
.teaserlist .cmp-teaser .cmp-image {
  position: relative;
  height: 0;
  padding-block-start: 100%;
  overflow: hidden;
}
.teaserlist .cmp-teaser .cmp-image__image {
  position: absolute;
  inset-block-start: 0;
  height: 100%;
}
.teaserlist .article__header {
  display: none;
}
.teaserlist .article__date--long {
  display: none;
}
.teaserlist.teaser--description-hide .cmp-teaser__link .cmp-teaser__title--lastword::after {
  transform: translate(0, -1px);
}
html[dir=rtl] .teaserlist.teaser--description-hide .cmp-teaser__link .cmp-teaser__title--lastword::after {
  transform: scale(-1, 1) translate(0, -1px);
}
.teaserlist.teaser--description-hide .cmp-teaser__link:hover .cmp-teaser__title--lastword::after {
  transform: translate(5px, -1px);
}
html[dir=rtl] .teaserlist.teaser--description-hide .cmp-teaser__link:hover .cmp-teaser__title--lastword::after {
  transform: scale(-1, 1) translate(5px, -1px);
}
.teaserlist.teaser--description-hide .cmp-teaser__title--lastword:after {
  background-color: #004fbc;
  content: "";
  display: inline-block;
  -webkit-mask-image: url("../../../../../../content/dam/volvo-media/list-icons/chevron-right.svg#chevron-right-icon-w24-view");
          mask-image: url("../../../../../../content/dam/volvo-media/list-icons/chevron-right.svg#chevron-right-icon-w24-view");
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-size: cover;
          mask-size: cover;
  pointer-events: none;
  width: var(--v-icon-size);
  height: var(--v-icon-size);
}
@media (min-width: 1200px) {
  .teaserlist.teaser--description-hide .cmp-teaser__title--lastword:after {
    -webkit-mask-image: url("../../../../../../content/dam/volvo-media/list-icons/chevron-right.svg#chevron-right-icon-w16-view");
            mask-image: url("../../../../../../content/dam/volvo-media/list-icons/chevron-right.svg#chevron-right-icon-w16-view");
  }
}
.teaserlist.teaser--description-hide .cmp-teaser__title--lastword::after {
  margin-inline-start: 10px;
  vertical-align: middle;
  transition: transform 0.3s ease-out;
}
.teaserlist.teaser--description-hide .cmp-teaser__description {
  display: none;
}
.teaserlist.teaser--description-hide .cmp-teaser__linkLabel {
  display: none;
}
.teaserlist.teaser--layout-top .cmp-teaser__overlay, .teaserlist.teaser--layout-top .cmp-teaser__overlay--shade {
  display: none;
}
.teaserlist.teaser--layout-top .cmp-teaser__linkLabel {
  color: #004fbc;
}
.teaserlist.teaser--layout-top .cmp-teaser__linkLabel:after {
  background-color: #004fbc;
  content: "";
  display: inline-block;
  -webkit-mask-image: url("../../../../../../content/dam/volvo-media/list-icons/chevron-right.svg#chevron-right-icon-w24-view");
          mask-image: url("../../../../../../content/dam/volvo-media/list-icons/chevron-right.svg#chevron-right-icon-w24-view");
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-size: cover;
          mask-size: cover;
  pointer-events: none;
  width: var(--v-icon-size);
  height: var(--v-icon-size);
}
@media (min-width: 1200px) {
  .teaserlist.teaser--layout-top .cmp-teaser__linkLabel:after {
    -webkit-mask-image: url("../../../../../../content/dam/volvo-media/list-icons/chevron-right.svg#chevron-right-icon-w16-view");
            mask-image: url("../../../../../../content/dam/volvo-media/list-icons/chevron-right.svg#chevron-right-icon-w16-view");
  }
}
.teaserlist.teaser--layout-top .cmp-teaser__linkLabel::after {
  transform: translateY(-2px);
}
.teaserlist.teaser--layout-top .cmp-teaser__link:hover .cmp-teaser__content {
  transform: none;
}
.teaserlist.teaser--layout-top .cmp-teaser__content {
  padding-block: 1em;
  padding-inline: 0;
  position: static;
  transform: none;
  background: #fff;
}
.container__base .teaserlist.teaser--layout-top .cmp-teaser__content {
  padding: 1em;
}
.teaserlist.teaser--layout-top .cmp-teaser__description, .teaserlist.teaser--layout-top .cmp-teaser__title {
  color: #53565a;
}
.teaserlist.teaser--layout-top .cmp-teaser__title--lastword {
  display: inline-block;
  white-space: nowrap;
}
.teaserlist.teaser--layout-top .cmp-teaser__description {
  opacity: 1;
}
.teaserlist.teaser--layout-top .cmp-teaser .cmp-image {
  padding-block-start: 56.48%;
}
.teaserlist.teaser--layout-top .article__header {
  display: block;
  color: #a7a8a9;
}
@media (min-width: 768px) {
  .teaserlist.teaser--layout-top .article__header {
    display: flex;
    justify-content: flex-end;
  }
}
.teaserlist.teaser--layout-top .article__title--lastword {
  padding-inline-end: 24px;
}
.teaserlist.teaser--layout-top .article__title--lastword:after {
  background-color: #004fbc;
  content: "";
  display: inline-block;
  -webkit-mask-image: url("../../../../../../content/dam/volvo-media/list-icons/chevron-right.svg#chevron-right-icon-w24-view");
          mask-image: url("../../../../../../content/dam/volvo-media/list-icons/chevron-right.svg#chevron-right-icon-w24-view");
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-size: cover;
          mask-size: cover;
  pointer-events: none;
  width: var(--v-icon-size);
  height: var(--v-icon-size);
}
@media (min-width: 1200px) {
  .teaserlist.teaser--layout-top .article__title--lastword:after {
    -webkit-mask-image: url("../../../../../../content/dam/volvo-media/list-icons/chevron-right.svg#chevron-right-icon-w16-view");
            mask-image: url("../../../../../../content/dam/volvo-media/list-icons/chevron-right.svg#chevron-right-icon-w16-view");
  }
}
.teaserlist.teaser--layout-top .article__title--lastword::after {
  display: inline-block;
  margin-inline: 10px -34px;
  transition: padding-left 0.3s ease-out;
  width: 24px;
  height: 24px;
}
@media (max-width: 959px) {
  .teaserlist.teaser--layout-top .article__title--lastword::after {
    transform: translateY(4px);
  }
}
@media (min-width: 768px) {
  .teaserlist.teaser--layout-top .article__title--lastword::after {
    transform: translateY(3px);
  }
}
.teaserlist.teaser--layout-top .article__tag {
  width: 100%;
}
@media (min-width: 768px) {
  .teaserlist.teaser--layout-top .article__tag {
    width: 40%;
    display: flex;
    align-items: baseline;
  }
}
.teaserlist.teaser--layout-top .article__details {
  width: 100%;
}
@media (min-width: 768px) {
  .teaserlist.teaser--layout-top .article__details {
    width: 60%;
    text-align: end;
  }
  html[dir=rtl] .teaserlist.teaser--layout-top .article__details {
    text-align: start;
  }
}
.teaserlist.teaser--layout-top .article__time {
  display: none;
}
@media (min-width: 768px) {
  .teaserlist.teaser--layout-top .article__time {
    display: inline-block;
  }
}
@media (min-width: 768px) {
  .teaserlist.teaser--layout-top .article__time--mobile {
    display: none;
  }
}
@media (max-width: 767px) {
  .teaserlist.teaser--layout-top.mobile-horizontal-scroll:has(.teaserlist__list) {
    padding-inline: 15px;
  }
  .teaserlist.teaser--layout-top.mobile-horizontal-scroll:has(.teaserlist__list) ::-webkit-scrollbar {
    -webkit-appearance: none;
    height: 4px;
  }
  .teaserlist.teaser--layout-top.mobile-horizontal-scroll:has(.teaserlist__list) ::-webkit-scrollbar-thumb {
    border-radius: 4px;
    background-color: #a7a8a9;
  }
  .teaserlist.teaser--layout-top.mobile-horizontal-scroll:has(.teaserlist__list) .teaserlist__list {
    overflow-x: auto;
    gap: 0;
  }
  .teaserlist.teaser--layout-top.mobile-horizontal-scroll:has(.teaserlist__list) .teaserlist__list:has(> :nth-child(n+3)) {
    display: flex;
    flex-wrap: nowrap;
    margin: 0;
    padding-block-end: 16px;
    gap: 16px;
  }
  .teaserlist.teaser--layout-top.mobile-horizontal-scroll:has(.teaserlist__list) .teaserlist__list:has(> :nth-child(n+3)) > * {
    flex: 0 0 auto;
    width: 92%;
    padding: 0;
  }
}
@media (max-width: 767px) {
  .teaserlist.teaser--layout-top.mobile-horizontal-scroll .cmp-teaser__item, .teaserlist.teaser--layout-top.mobile-horizontal-scroll .cmp-teaser__link {
    display: grid;
  }
  .teaserlist.teaser--layout-top.mobile-horizontal-scroll .cmp-teaser__content {
    height: 100%;
  }
}
.teaserlist.teaserlistLayout-cols--4.teaser--layout-top .article__header {
  display: block;
}
.teaserlist.teaserlistLayout-cols--4.teaser--layout-top .article__tag, .teaserlist.teaserlistLayout-cols--4.teaser--layout-top .article__details {
  width: 100%;
  text-align: start;
}
.teaserlist.teaser--layout-right .cmp-teaser {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
@media (min-width: 768px) {
  .teaserlist.teaser--layout-right .cmp-teaser {
    flex-direction: row-reverse;
  }
}
.teaserlist.teaser--layout-right .cmp-teaser__image {
  position: relative;
}
@media (max-width: 767px) {
  .teaserlist.teaser--layout-right .cmp-teaser__image {
    width: 100%;
  }
}
@media (min-width: 768px) {
  .teaserlist.teaser--layout-right .cmp-teaser__image {
    width: 30%;
    height: auto;
  }
}
@media (min-width: 768px) and (max-width: 959px) {
  .teaserlist.teaser--layout-right .cmp-teaser__image {
    width: 50%;
  }
}
@media (max-width: 767px) {
  .teaserlist.teaser--layout-right .cmp-teaser .cmp-image {
    padding-block-start: 0;
    height: auto;
  }
}
@media (min-width: 768px) {
  .teaserlist.teaser--layout-right .cmp-teaser .cmp-image {
    padding-block-start: 56.48%;
  }
}
@media (max-width: 767px) {
  .teaserlist.teaser--layout-right .cmp-teaser .cmp-image .cmp-image__image {
    position: relative;
  }
}
.teaserlist.teaser--layout-right .cmp-teaser__overlay, .teaserlist.teaser--layout-right .cmp-teaser__overlay--shade {
  display: none;
}
.teaserlist.teaser--layout-right .cmp-teaser__linkLabel {
  display: inline-block;
  align-items: center;
  text-decoration: none;
  font-family: var(--ff-medium);
  box-sizing: border-box;
  padding-block: 12px;
  padding-inline: 32px;
  background: #fff;
  border: 1px solid #53565a;
  color: #53565a;
  transition: background 1s;
  max-width: calc(100% - var(--v-icon-size));
}
.teaserlist.teaser--layout-right .cmp-teaser__linkLabel:hover, .teaserlist.teaser--layout-right .cmp-teaser__linkLabel:focus {
  background: #f7f7f7;
  text-decoration: none;
  color: #53565a;
}
.teaserlist.teaser--layout-right .cmp-teaser__linkLabel:hover::after, .teaserlist.teaser--layout-right .cmp-teaser__linkLabel:focus::after {
  transform: var(--button-icon-transform-hover);
}
.teaserlist.teaser--layout-right .cmp-teaser__linkLabel:active {
  background: #e1dfdd;
}
.teaserlist.teaser--layout-right .cmp-teaser__linkLabel:active, .teaserlist.teaser--layout-right .cmp-teaser__linkLabel:focus, .teaserlist.teaser--layout-right .cmp-teaser__linkLabel:focus-visible {
  outline: 2px solid #0041a3;
  outline-offset: 3px;
}
.teaserlist.teaser--layout-right .cmp-teaser__linkLabel::after {
  transform: var(--button-icon-transform);
  transition: transform 0.3s ease-out;
}
.teaserlist.teaser--layout-right .cmp-teaser__linkLabel:disabled, .teaserlist.teaser--layout-right .cmp-teaser__linkLabel.disabled {
  border: 1px solid #888b8d;
  color: #888b8d;
}
.teaserlist.teaser--layout-right .cmp-teaser__linkLabel:after {
  background-color: #53565a;
  content: "";
  display: inline-block;
  -webkit-mask-image: url("../../../../../../content/dam/volvo-media/list-icons/chevron-right.svg#chevron-right-icon-w24-view");
          mask-image: url("../../../../../../content/dam/volvo-media/list-icons/chevron-right.svg#chevron-right-icon-w24-view");
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-size: cover;
          mask-size: cover;
  pointer-events: none;
  width: var(--v-icon-size);
  height: var(--v-icon-size);
}
@media (min-width: 1200px) {
  .teaserlist.teaser--layout-right .cmp-teaser__linkLabel:after {
    -webkit-mask-image: url("../../../../../../content/dam/volvo-media/list-icons/chevron-right.svg#chevron-right-icon-w16-view");
            mask-image: url("../../../../../../content/dam/volvo-media/list-icons/chevron-right.svg#chevron-right-icon-w16-view");
  }
}
.teaserlist.teaser--layout-right .cmp-teaser__linkLabel::after {
  color: #000;
  padding-inline-start: 10px;
  vertical-align: bottom;
  width: 24px;
  height: 24px;
}
@media (min-width: 960px) {
  .teaserlist.teaser--layout-right .cmp-teaser__linkLabel::after {
    transform: translateY(-1px);
  }
}
@media (min-width: 960px) {
  .teaserlist.teaser--layout-right .cmp-teaser__linkLabel:hover::after {
    transform: translate(5px, -1px);
  }
}
.teaserlist.teaser--layout-right .cmp-teaser__link:hover .cmp-teaser__content {
  transform: none;
}
.teaserlist.teaser--layout-right .cmp-teaser__content {
  transform: none;
  position: static;
  padding: 1em;
  pointer-events: auto;
}
@media (min-width: 768px) {
  .teaserlist.teaser--layout-right .cmp-teaser__content {
    position: relative;
    width: 70%;
    height: -moz-fit-content;
    height: fit-content;
    padding-block-start: 0;
  }
}
@media (min-width: 768px) and (max-width: 959px) {
  .teaserlist.teaser--layout-right .cmp-teaser__content {
    width: 50%;
  }
}
@media (max-width: 959px) {
  .teaserlist.teaser--layout-right .cmp-teaser__content .cmp-teaser__linkLabel::after {
    margin-inline-start: 0;
  }
}
.teaserlist.teaser--layout-right .cmp-teaser__description, .teaserlist.teaser--layout-right .cmp-teaser__title {
  color: #53565a;
}
.teaserlist.teaser--layout-right .cmp-teaser__description {
  opacity: 1;
  margin-block-end: 10px;
}
@media (min-width: 768px) {
  .teaserlist.teaser--layout-right .cmp-teaser__description {
    /* stylelint-disable-next-line value-no-vendor-prefix */
    display: -webkit-box;
    -webkit-line-clamp: 4;
    -webkit-box-orient: vertical;
    /* stylelint-disable-next-line property-no-unknown */
    box-orient: vertical;
    -webkit-box-orient: vertical;
    overflow: hidden;
    padding-block-end: 1px;
    margin-inline-end: 0;
  }
  .teaserlist.teaser--layout-right .cmp-teaser__description::after {
    height: 1.2em;
  }
}
.teaserlist.teaser--layout-right .article__header {
  display: block;
  color: #a7a8a9;
}
@media (max-width: 767px) {
  .teaserlist.teaser--layout-right .article__header {
    display: flex;
    justify-content: space-between;
  }
}
.teaserlist.teaser--layout-right .article__title--lastword {
  margin-block-end: 0;
}
.teaserlist.teaser--layout-right .article__title--lastword:after {
  background-color: #004fbc;
  content: "";
  display: inline-block;
  -webkit-mask-image: url("../../../../../../content/dam/volvo-media/list-icons/chevron-right.svg#chevron-right-icon-w24-view");
          mask-image: url("../../../../../../content/dam/volvo-media/list-icons/chevron-right.svg#chevron-right-icon-w24-view");
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-size: cover;
          mask-size: cover;
  pointer-events: none;
  width: var(--v-icon-size);
  height: var(--v-icon-size);
}
@media (min-width: 1200px) {
  .teaserlist.teaser--layout-right .article__title--lastword:after {
    -webkit-mask-image: url("../../../../../../content/dam/volvo-media/list-icons/chevron-right.svg#chevron-right-icon-w16-view");
            mask-image: url("../../../../../../content/dam/volvo-media/list-icons/chevron-right.svg#chevron-right-icon-w16-view");
  }
}
.teaserlist.teaser--layout-right .article__title--lastword::after {
  display: inline-block;
  margin-inline-start: 10px;
  transition: padding-left 0.3s ease-out;
  width: 24px !important;
  height: 24px !important;
}
@media (max-width: 959px) {
  .teaserlist.teaser--layout-right .article__title--lastword::after {
    vertical-align: bottom;
  }
}
@media (min-width: 960px) {
  .teaserlist.teaser--layout-right .article__title--lastword::after {
    transform: translateY(3px);
  }
}
.teaserlist.teaser--layout-right .article__details {
  direction: ltr;
}
html[dir=rtl] .teaserlist.teaser--layout-right .article__details {
  text-align: end;
}
@media (min-width: 768px) {
  .teaserlist.teaser--layout-right .article__details {
    position: absolute;
    inset-block-end: 0;
  }
}
.teaserlist.teaser--layout-right .article__time, .teaserlist.teaser--layout-right .article__time--mobile {
  display: none;
}
@media (max-width: 1199px) {
  .container__base.container--fullWidth .cmp-container > .teaserlist {
    margin-inline: -15px;
  }
}
@media (min-width: 1200px) {
  .container__base.container--fullWidth .cmp-container > .teaserlist {
    padding-inline: 15px;
  }
}

.collage .teaserlist {
  height: 100%;
  padding-block: 14px;
  padding-inline: 20px;
}
.collage .teaserlist__title {
  font-family: var(--ff-medium);
  font-size: 21px;
  font-weight: 400;
  line-height: 1.2;
  letter-spacing: var(--ls-default);
  margin-block-end: 25px;
  display: block;
  position: absolute;
  color: #fff;
  z-index: 1;
  pointer-events: none;
}
@media (min-width: 768px) {
  .collage .teaserlist__title {
    font-size: 24px;
  }
}
.collage .teaserlist__list {
  margin: 0;
}
.collage .teaserlist .cmp-teaser {
  width: 100%;
  height: 100%;
}
.collage .teaserlist .cmp-teaser__overlay, .collage .teaserlist .cmp-teaser__description, .collage .teaserlist .cmp-teaser__linkLabel {
  display: none;
}
.collage .teaserlist .cmp-teaser .cmp-image {
  position: initial;
}
.collage .teaserlist .cmp-teaser__item:nth-of-type(n+2) {
  display: none;
}
.collage .teaserlist .cmp-teaser__link {
  position: absolute;
  inset-block-start: 0;
  inset-inline-start: 0;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: flex-end;
}
.collage .teaserlist .cmp-teaser__link:hover .cmp-teaser__content {
  transform: none;
}
.collage .teaserlist .cmp-teaser__content {
  position: absolute;
  inset-block-start: auto;
  padding-block: 0 7px;
  padding-inline: 20px;
  transform: none;
  display: flex;
  flex-direction: column;
}
.collage .teaserlist .cmp-teaser__title {
  font-family: var(--ff-regular);
  font-size: 24px;
  font-weight: 400;
  line-height: 1.2;
  letter-spacing: var(--ls-default);
  color: #53565a;
}
.collage .teaserlist .cmp-teaser .cmp-teaser__content .article__title {
  line-height: 1;
}
.collage .teaserlist .article__tag, .collage .teaserlist .article__time, .collage .teaserlist .article__time--mobile, .collage .teaserlist .article__date {
  display: none;
}
.collage .teaserlist .article__details {
  color: #53565a;
}
.collage .teaserlist .article__header {
  display: block;
  order: 3;
}
.collage .teaserlist .article__date--long {
  display: inline;
}
.collage .teaserlist .article__title--lastword {
  padding-inline-end: 10px;
  color: #fff;
}
.collage .teaserlist .article__title--lastword:after {
  background-color: #004fbc;
  content: "";
  display: inline-block;
  -webkit-mask-image: url("../../../../../../content/dam/volvo-media/list-icons/chevron-right.svg#chevron-right-icon-w24-view");
          mask-image: url("../../../../../../content/dam/volvo-media/list-icons/chevron-right.svg#chevron-right-icon-w24-view");
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-size: cover;
          mask-size: cover;
  pointer-events: none;
  width: var(--v-icon-size);
  height: var(--v-icon-size);
}
@media (min-width: 1200px) {
  .collage .teaserlist .article__title--lastword:after {
    -webkit-mask-image: url("../../../../../../content/dam/volvo-media/list-icons/chevron-right.svg#chevron-right-icon-w16-view");
            mask-image: url("../../../../../../content/dam/volvo-media/list-icons/chevron-right.svg#chevron-right-icon-w16-view");
  }
}
.collage .teaserlist .article__title--lastword::after {
  margin-inline-start: 5px;
  vertical-align: middle;
  transition: padding-inline-start 0.3s ease-out;
}
.collage .cmp-container--bg + .cmp-container .teaserlist__title,
.collage .cmp-container--bg + .cmp-container .cmp-teaser__title,
.collage .cmp-container--bg + .cmp-container .article__details {
  color: #fff;
}
/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZpbGU6Ly8vYnVpbGRfcm9vdC9idWlsZC9nbG9iYWwtcDExMDQ5OC11azQzMDExL3ZvbHZvLWNsaWVudGxpYnMtYXBwcy9zcmMvbWFpbi9mcm9udGVuZC92b2x2by9jb21tb24vc3R5bGVzL3ZhcmlhYmxlcy9faW1wb3J0X3ZhcmlhYmxlcy5zY3NzIiwiZmlsZTovLy9idWlsZF9yb290L2J1aWxkL2dsb2JhbC1wMTEwNDk4LXVrNDMwMTEvdm9sdm8tY2xpZW50bGlicy1hcHBzL3NyYy9tYWluL2Zyb250ZW5kL3ZvbHZvL2NvbW1vbi9zdHlsZXMvdmFyaWFibGVzL190eXBvZ3JhcGhpZXMuc2NzcyIsImZpbGU6Ly8vYnVpbGRfcm9vdC9idWlsZC9nbG9iYWwtcDExMDQ5OC11azQzMDExL3ZvbHZvLWNsaWVudGxpYnMtYXBwcy9zcmMvbWFpbi9mcm9udGVuZC92b2x2by9jb21tb24vc3R5bGVzL3ZhcmlhYmxlcy9fel9pbmRleC5zY3NzIiwiZmlsZTovLy9idWlsZF9yb290L2J1aWxkL2dsb2JhbC1wMTEwNDk4LXVrNDMwMTEvdm9sdm8tY2xpZW50bGlicy1hcHBzL3NyYy9tYWluL2Zyb250ZW5kL3ZvbHZvL2NvbW1vbi9zdHlsZXMvYWJzdHJhY3QvZnVuY3Rpb25zL19ubi1weC10by1lbS5zY3NzIiwiZmlsZTovLy9idWlsZF9yb290L2J1aWxkL2dsb2JhbC1wMTEwNDk4LXVrNDMwMTEvdm9sdm8tY2xpZW50bGlicy1hcHBzL3NyYy9tYWluL2Zyb250ZW5kL3ZvbHZvL2NvbW1vbi9zdHlsZXMvYWJzdHJhY3QvZnVuY3Rpb25zL19ubi1weC10by1yZW0uc2NzcyIsImZpbGU6Ly8vYnVpbGRfcm9vdC9idWlsZC9nbG9iYWwtcDExMDQ5OC11azQzMDExL3ZvbHZvLWNsaWVudGxpYnMtYXBwcy9zcmMvbWFpbi9mcm9udGVuZC92b2x2by9jb21tb24vc3R5bGVzL2Fic3RyYWN0L2Z1bmN0aW9ucy9fbm4tcHgtdG8tdW5pdC5zY3NzIiwiZmlsZTovLy9idWlsZF9yb290L2J1aWxkL2dsb2JhbC1wMTEwNDk4LXVrNDMwMTEvdm9sdm8tY2xpZW50bGlicy1hcHBzL3NyYy9tYWluL2Zyb250ZW5kL3ZvbHZvL2NvbW1vbi9zdHlsZXMvYWJzdHJhY3QvZnVuY3Rpb25zL19ubi1weC10by11bml0bGVzcy5zY3NzIiwiZmlsZTovLy9idWlsZF9yb290L2J1aWxkL2dsb2JhbC1wMTEwNDk4LXVrNDMwMTEvdm9sdm8tY2xpZW50bGlicy1hcHBzL3NyYy9tYWluL2Zyb250ZW5kL3ZvbHZvL2NvbW1vbi9zdHlsZXMvYWJzdHJhY3QvZnVuY3Rpb25zL19ubi1zdHJpcC11bml0LnNjc3MiLCJmaWxlOi8vL2J1aWxkX3Jvb3QvYnVpbGQvZ2xvYmFsLXAxMTA0OTgtdWs0MzAxMS92b2x2by1jbGllbnRsaWJzLWFwcHMvc3JjL21haW4vZnJvbnRlbmQvdm9sdm8vY29tbW9uL3N0eWxlcy9hYnN0cmFjdC9mdW5jdGlvbnMvX25uLXotaW5kZXguc2NzcyIsImZpbGU6Ly8vYnVpbGRfcm9vdC9idWlsZC9nbG9iYWwtcDExMDQ5OC11azQzMDExL3ZvbHZvLWNsaWVudGxpYnMtYXBwcy9zcmMvbWFpbi9mcm9udGVuZC92b2x2by9jb21tb24vc3R5bGVzL2Fic3RyYWN0L2Z1bmN0aW9ucy9fc3RyaXAtdW5pdC5zY3NzIiwiZmlsZTovLy9idWlsZF9yb290L2J1aWxkL2dsb2JhbC1wMTEwNDk4LXVrNDMwMTEvdm9sdm8tY2xpZW50bGlicy1hcHBzL3NyYy9tYWluL2Zyb250ZW5kL3ZvbHZvL2NvbW1vbi9zdHlsZXMvYWJzdHJhY3QvZnVuY3Rpb25zL19weC10by1heGlzLXVuaXQuc2NzcyIsImZpbGU6Ly8vYnVpbGRfcm9vdC9idWlsZC9nbG9iYWwtcDExMDQ5OC11azQzMDExL3ZvbHZvLWNsaWVudGxpYnMtYXBwcy9zcmMvbWFpbi9mcm9udGVuZC92b2x2by9jb21tb24vc3R5bGVzL2Fic3RyYWN0L2Z1bmN0aW9ucy9fc3dhcC1sZWZ0LXJpZ2h0LXZhbHVlcy5zY3NzIiwiZmlsZTovLy9idWlsZF9yb290L2J1aWxkL2dsb2JhbC1wMTEwNDk4LXVrNDMwMTEvdm9sdm8tY2xpZW50bGlicy1hcHBzL3NyYy9tYWluL2Zyb250ZW5kL3ZvbHZvL2NvbW1vbi9zdHlsZXMvYWJzdHJhY3QvZnVuY3Rpb25zL19zd2FwLWxlZnQtcmlnaHQtbmFtZXMuc2NzcyIsImZpbGU6Ly8vYnVpbGRfcm9vdC9idWlsZC9nbG9iYWwtcDExMDQ5OC11azQzMDExL3ZvbHZvLWNsaWVudGxpYnMtYXBwcy9zcmMvbWFpbi9mcm9udGVuZC92b2x2by9jb21tb24vc3R5bGVzL2Fic3RyYWN0L2Z1bmN0aW9ucy9fc3BhY2luZy5zY3NzIiwiZmlsZTovLy9idWlsZF9yb290L2J1aWxkL2dsb2JhbC1wMTEwNDk4LXVrNDMwMTEvdm9sdm8tY2xpZW50bGlicy1hcHBzL3NyYy9tYWluL2Zyb250ZW5kL3ZvbHZvL2NvbW1vbi9zdHlsZXMvYWJzdHJhY3QvbWl4aW5zL19jbGVhcmZpeC5zY3NzIiwiZmlsZTovLy9idWlsZF9yb290L2J1aWxkL2dsb2JhbC1wMTEwNDk4LXVrNDMwMTEvdm9sdm8tY2xpZW50bGlicy1hcHBzL3NyYy9tYWluL2Zyb250ZW5kL3ZvbHZvL2NvbW1vbi9zdHlsZXMvYWJzdHJhY3QvbWl4aW5zL19mb250LWljb24uc2NzcyIsImZpbGU6Ly8vYnVpbGRfcm9vdC9idWlsZC9nbG9iYWwtcDExMDQ5OC11azQzMDExL3ZvbHZvLWNsaWVudGxpYnMtYXBwcy9zcmMvbWFpbi9mcm9udGVuZC92b2x2by9jb21tb24vc3R5bGVzL2Fic3RyYWN0L21peGlucy9fZm9jdXMtY29sb3Iuc2NzcyIsImZpbGU6Ly8vYnVpbGRfcm9vdC9idWlsZC9nbG9iYWwtcDExMDQ5OC11azQzMDExL3ZvbHZvLWNsaWVudGxpYnMtYXBwcy9zcmMvbWFpbi9mcm9udGVuZC92b2x2by9jb21tb24vc3R5bGVzL2Fic3RyYWN0L21peGlucy9faWdub3JlLWNvbnRhaW5lci5zY3NzIiwiZmlsZTovLy9idWlsZF9yb290L2J1aWxkL2dsb2JhbC1wMTEwNDk4LXVrNDMwMTEvdm9sdm8tY2xpZW50bGlicy1hcHBzL3NyYy9tYWluL2Zyb250ZW5kL3ZvbHZvL2NvbW1vbi9zdHlsZXMvYWJzdHJhY3QvbWl4aW5zL19nZW5lcmF0ZS1hZW0tZ3JpZC5zY3NzIiwiZmlsZTovLy9idWlsZF9yb290L2J1aWxkL2dsb2JhbC1wMTEwNDk4LXVrNDMwMTEvdm9sdm8tY2xpZW50bGlicy1hcHBzL3NyYy9tYWluL2Zyb250ZW5kL3ZvbHZvL2NvbW1vbi9zdHlsZXMvYWJzdHJhY3QvbWl4aW5zL19idXR0b24uc2NzcyIsImZpbGU6Ly8vYnVpbGRfcm9vdC9idWlsZC9nbG9iYWwtcDExMDQ5OC11azQzMDExL3ZvbHZvLWNsaWVudGxpYnMtYXBwcy9zcmMvbWFpbi9mcm9udGVuZC92b2x2by9jb21tb24vc3R5bGVzL2Fic3RyYWN0L21peGlucy9fbGluZS1jbGFtcC5zY3NzIiwiZmlsZTovLy9idWlsZF9yb290L2J1aWxkL2dsb2JhbC1wMTEwNDk4LXVrNDMwMTEvdm9sdm8tY2xpZW50bGlicy1hcHBzL3NyYy9tYWluL2Zyb250ZW5kL3ZvbHZvL2NvbW1vbi9zdHlsZXMvYWJzdHJhY3QvbWl4aW5zL190eXBvZ3JhcGh5LnNjc3MiLCJmaWxlOi8vL2J1aWxkX3Jvb3QvYnVpbGQvZ2xvYmFsLXAxMTA0OTgtdWs0MzAxMS92b2x2by1jbGllbnRsaWJzLWFwcHMvc3JjL21haW4vZnJvbnRlbmQvdm9sdm8vY29tbW9uL3N0eWxlcy9hYnN0cmFjdC9taXhpbnMvX2hpZGRlbi5zY3NzIiwiZmlsZTovLy9idWlsZF9yb290L2J1aWxkL2dsb2JhbC1wMTEwNDk4LXVrNDMwMTEvdm9sdm8tY2xpZW50bGlicy1hcHBzL3NyYy9tYWluL2Zyb250ZW5kL3ZvbHZvL2NvbW1vbi9zdHlsZXMvYWJzdHJhY3QvbWl4aW5zL19vdmVybGF5LnNjc3MiLCJmaWxlOi8vL2J1aWxkX3Jvb3QvYnVpbGQvZ2xvYmFsLXAxMTA0OTgtdWs0MzAxMS92b2x2by1jbGllbnRsaWJzLWFwcHMvc3JjL21haW4vZnJvbnRlbmQvdm9sdm8vY29tbW9uL3N0eWxlcy9hYnN0cmFjdC9taXhpbnMvX3RvcC1ib3R0b20tYm9yZGVyLnNjc3MiLCJmaWxlOi8vL2J1aWxkX3Jvb3QvYnVpbGQvZ2xvYmFsLXAxMTA0OTgtdWs0MzAxMS92b2x2by1jbGllbnRsaWJzLWFwcHMvc3JjL21haW4vZnJvbnRlbmQvdm9sdm8vY29tbW9uL3N0eWxlcy9hYnN0cmFjdC9taXhpbnMvX3Jlc2V0LWZ1bGx3aWR0aC1tYXJnaW5zLnNjc3MiLCJmaWxlOi8vL2J1aWxkX3Jvb3QvYnVpbGQvZ2xvYmFsLXAxMTA0OTgtdWs0MzAxMS92b2x2by1jbGllbnRsaWJzLWFwcHMvc3JjL21haW4vZnJvbnRlbmQvdm9sdm8vY29tbW9uL3N0eWxlcy9hYnN0cmFjdC9taXhpbnMvX3Zpc3VhbGx5LWhpZGRlbi5zY3NzIiwiZmlsZTovLy9idWlsZF9yb290L2J1aWxkL2dsb2JhbC1wMTEwNDk4LXVrNDMwMTEvdm9sdm8tY2xpZW50bGlicy1hcHBzL3NyYy9tYWluL2Zyb250ZW5kL3ZvbHZvL3NoYXJlZC9jb21wb25lbnRzL2NvbnRlbnQvdGVhc2VybGlzdC90ZWFzZXJsaXN0LmNsaWVudGxpYnMuc2NzcyIsIi4uL3RhcmdldC92YXVsdC13b3JrL2pjcl9yb290L2FwcHMvdm9sdm8vY2xpZW50bGlicy9zaGFyZWQvY29tcG9uZW50cy9jb250ZW50L3RlYXNlcmxpc3QvdGVhc2VybGlzdC5idW5kbGUuY3NzIiwiZmlsZTovLy9idWlsZF9yb290L2J1aWxkL2dsb2JhbC1wMTEwNDk4LXVrNDMwMTEvdm9sdm8tY2xpZW50bGlicy1hcHBzL2J1aWxkL25vZGVfbW9kdWxlcy9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvX2JyZWFrcG9pbnQuc2NzcyIsImZpbGU6Ly8vYnVpbGRfcm9vdC9idWlsZC9nbG9iYWwtcDExMDQ5OC11azQzMDExL3ZvbHZvLWNsaWVudGxpYnMtYXBwcy9zcmMvbWFpbi9mcm9udGVuZC92b2x2by9jb21tb24vc3R5bGVzL2Fic3RyYWN0L21peGlucy9fZ3JpZC1jb2xzLXdpZHRoLnNjc3MiLCJmaWxlOi8vL2J1aWxkX3Jvb3QvYnVpbGQvZ2xvYmFsLXAxMTA0OTgtdWs0MzAxMS92b2x2by1jbGllbnRsaWJzLWFwcHMvc3JjL21haW4vZnJvbnRlbmQvdm9sdm8vY29tbW9uL3N0eWxlcy92YXJpYWJsZXMvX2NvbG9ycy5zY3NzIiwiZmlsZTovLy9idWlsZF9yb290L2J1aWxkL2dsb2JhbC1wMTEwNDk4LXVrNDMwMTEvdm9sdm8tY2xpZW50bGlicy1hcHBzL3NyYy9tYWluL2Zyb250ZW5kL3ZvbHZvL2NvbW1vbi9zdHlsZXMvdmFyaWFibGVzL19taXNjLnNjc3MiLCJmaWxlOi8vL2J1aWxkX3Jvb3QvYnVpbGQvZ2xvYmFsLXAxMTA0OTgtdWs0MzAxMS92b2x2by1jbGllbnRsaWJzLWFwcHMvc3JjL21haW4vZnJvbnRlbmQvdm9sdm8vY29tbW9uL3N0eWxlcy9saWIvdm9sdm9pY29ucy9fdmFyaWFibGVzLnNjc3MiLCJmaWxlOi8vL2J1aWxkX3Jvb3QvYnVpbGQvZ2xvYmFsLXAxMTA0OTgtdWs0MzAxMS92b2x2by1jbGllbnRsaWJzLWFwcHMvc3JjL21haW4vZnJvbnRlbmQvdm9sdm8vY29tbW9uL3N0eWxlcy9hYnN0cmFjdC9taXhpbnMvX21vYmlsZS1ob3Jpem9udGFsLXNjcm9sbC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBOzs7OztDQUFBO0FDRkE7OztDQUFBO0FDRUE7O0VBQUE7QUNGQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBQUE7QUNBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBQUE7QUNBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FBQTtBQ0FBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQUFBO0FDQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FBQTtBQ0FBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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O0FEMWpCWTtFQUlJLGFBQUE7QUN5akJoQjtBRHRqQlk7RUFDSSxjSXJwQkc7QUg2c0NuQjtBRHJqQlk7RUFDSSxjQUFBO0VBQ0EsUUFBQTtBQ3VqQmhCO0FEcGpCWTtFQUNJLGVBQUE7QUNzakJoQjtBRG5qQlk7RUFPSSx3QkFBQTtFQUNBLFdJanJCRztBSGd1Q25CO0FiM3BDSTtFQUNJLHlCZ0IzRlk7RWhCNEZaLFdBQUE7RUFDQSxxQkFBQTtFQUNBLDRHQUFBO1VBQUEsb0dBQUE7RUFDQSw4QkFBQTtVQUFBLHNCQUFBO0VBQ0Esd0JBQUE7VUFBQSxnQkFBQTtFQUNBLG9CQUFBO0VBVUkseUJBQUE7RUFDQSwwQkFBQTtBYW9wQ1o7QWI3cENRO0VBVEo7SUFVUSw0R0FBQTtZQUFBLG9HQUFBO0VhZ3FDVjtBQUNGO0FEN2pCZ0I7RUFDSSx3QkFBQTtFQUNBLHNCQUFBO0VBQ0EsOENBQUE7QUMrakJwQjtBRHhqQlE7OztFQUdJLFdJaHNCTztBSDB2Q25CIiwiZmlsZSI6Ii4uL3RhcmdldC92YXVsdC13b3JrL2pjcl9yb290L2FwcHMvdm9sdm8vY2xpZW50bGlicy9zaGFyZWQvY29tcG9uZW50cy9jb250ZW50L3RlYXNlcmxpc3QvdGVhc2VybGlzdC5idW5kbGUuY3NzIiwic291cmNlc0NvbnRlbnQiOltudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLCIvKlxuQWxzbyBwbGVhc2UgZm9sbG93IHRoaXNcbkRvIHlvdXIgcHJvamVjdCBoYXZlIGRpZmVyZW50IGNoYXJzZXQgbGFuZ3VhZ2VzIHRvIGFjY291bnQgd2l0aD9cbiAgICAgIC0gWWVzIC0+IGZvbGxvdyBodHRwczovL3Byb2plY3RzLm5ldGNlbnRyaWMuYml6L3dpa2kvZGlzcGxheS9GUk9OVEVORC9DU1MrLStGb250K05vcm1hbGl6YXRpb25cbiAgICAgIC0gTm8gLT4gWW91IGNhbiBzdGlsbCB1c2UgaXQsIHRoZXJlIGFyZSB0b25zIG9mIGFkdmFudGFnZXMsIGJ1dCBpdHMgY3JlYXRlIHNvbWUgZXh0cmEgY3NzIGFuZCBsYXlvdXQgcmVuZGVyaW5nXG4qL1xuLypcbiAgKiBEZXNpZ24gc3BlYzpcbiAgKiBodHRwczovL3d3dy5maWdtYS5jb20vZmlsZS9TUjRydlFsTm5DbVBNclE5V1lhSXF2L2JyYW5jaC9USnFrRnltcTA5d2Y4S3dtWTFXTmNqL1ZvbHZvLUFFTS1EZXNpZ24tc3lzdGVtP3R5cGU9ZGVzaWduJm5vZGUtaWQ9Ny0yNiZ0PXBBbTkxNlZSaXFDT0QySTEtMFxuKi9cbi8qKlxuICogei1pbmRleGVzIGZyb20gbG93ZXIgdG8gLT4gaGlnaGVyXG4gKi9cbi8qIGRvY1xuLS0tXG50aXRsZTogUGl4ZWwgdG8gZW1cbm5hbWU6IG5uLXB4LXRvLWVtXG5jYXRlZ29yeTogZnVuY3Rpb25zXG4tLS1cblxuQ2FsY3VsYXRlIHRoZSBlbSB3aXRoIGEgZ2l2ZW4gcGl4ZWwgd2l0aCB0aGUgZ2l2ZW4gYmFzZSBmb250IHNpemVcbklmIHlvdSBkb24ndCBzZXQgYSAkYmFzZSB0aGUgJGJhc2UtZm9udC1zaXplIGlzIHVzZWQgYXMgdGhlIGNvbnRleHRcblxuIyMgTGl2ZSBUZW1wbGF0ZSBhYmJyZXZpYXRpb25zXG4tLS1cbi1wdHVcblxuIyMgUGFyYW1ldGVyc1xuLS0tXG5AcGFyYW1ldGVyICR2YWx1ZSA9IHBpeGVsIGJhc2VkIG51bWJlciAod2l0aG91dCB1bml0KVxuQHBhcmFtZXRlciAkYmFzZSA9IHBpeGVsIGJhc2VkIG51bWJlciAod2l0aG91dCB1bml0KVxuXG4jIyBEZXBlbmRlbmNpZXNcbi0tLVxubm4tc3RyaXAtdW5pdFxuXG4jIyBFeGFtcGxlXG4tLS1cbmBgYGh0bWxfZXhhbXBsZVxubm4tcHgtdG8tZW0oNSkgLy8gT3V0cHV0OiAwLjMxMjVlbVxubm4tcHgtdG8tZW0oNSwgMTApIC8vIE91dHB1dDogMC41ZW1cbm5uLXB4LXRvLWVtKDUsIDIwKSAvLyBPdXRwdXQ6IDAuMjVlbVxuYGBgXG4qL1xuLyogZG9jXG4tLS1cbnRpdGxlOiBQaXhlbCB0byByZW1cbm5hbWU6IG5uLXB4LXRvLXJlbVxuY2F0ZWdvcnk6IGZ1bmN0aW9uc1xuLS0tXG5cbkNhbGN1bGF0ZSB0aGUgcmVtIHdpdGggYSBnaXZlbiBwaXhlbCB3aXRoIHRoZSBnaXZlbiBiYXNlIGZvbnQgc2l6ZVxuXG5JbjogIDVweFxuT3V0OiAwLjMxMjVyZW1cblxuIyMgTGl2ZSBUZW1wbGF0ZSBhYmJyZXZpYXRpb25zXG4tLS1cbi1yZW1cblxuIyMgUGFyYW1ldGVyc1xuLS0tXG5AcGFyYW1ldGVyICR2YWx1ZSA9IHBpeGVsIGJhc2VkIG51bWJlciAod2l0aG91dCB1bml0KVxuXG4jIyBEZXBlbmRlbmNpZXNcbi0tLVxubm4tc3RyaXAtdW5pdFxuXG4jIyBFeGFtcGxlXG4tLS1cbmBgYGh0bWxfZXhhbXBsZVxubm4tcHgtdG8tcmVtKDUpIC8vIE91dHB1dCAwLjMxMjVyZW1cbmBgYFxuXG4qL1xuLyogZG9jXG4tLS1cbnRpdGxlOiBQaXhlbCB0byB1bml0XG5uYW1lOiBweC10by11bml0XG5jYXRlZ29yeTogbWl4aW5zXG4tLS1cblxuU2V0IGEgcHJvcGVydHkgYW5kIHZhbHVlIChwaXhlbCBiYXNlZCB3aXRob3V0IHVuaXQpXG5cbkNhbGN1bGF0ZXMgcmVtIC8gZW0gLyAlIGZyb20gZ2l2ZW4gcGl4ZWwgYW5kIGJhc2UgKGRlZmF1bHQgYmFzZSBpcyB0aGVcbmJhc2UtZm9udC1zaXplLCAxNnB4KVxuSWYgcnRsIGlzIHRydWUsIHRoaXMgbWl4aW4gaGFuZGxlcyBhbGwgdGhlIGRpcmVjdGlvbiBzdHVmZjpcbi0gU3dpdGNoaW5nIHRoZSB2YWx1ZXMsIHdoZW4gd2UgaGF2ZSBleGFjdGx5IDQgdmFsdWVzXG4tIFN3aXRjaGluZyBsZWZ0IGFuZCByaWdodCBpbiBwcm9wZXJ0aWVzIChwYWRkaW5nIGFuZCBtYXJnaW4pXG5cbiMjIExpdmUgVGVtcGxhdGUgYWJicmV2aWF0aW9uc1xuLS0tXG4tcHR1IChmb3IgZW0gb3IgJSB0byBwaXhlbCAtIHdpdGggYmFzZSBwYXJhbWV0ZXIpXG4tcmVtIChmb3IgcmVtIHRvIHBpeGVsIC0gd2l0aG91dCBiYXNlIHBhcmFtZXRlcilcblxuIyMgUGFyYW1ldGVyc1xuLS0tXG5AcGFyYW1ldGVyICRwcm9wZXJ0eSA9IHBhZGRpbmcgfCBtYXJnaW4gfCBmb250LXNpemUgfCB3aWR0aCB8IGhlaWdodFxuQHBhcmFtZXRlciAkdmFsdWUgPSBQaXhlbCBiYXNlZCBudW1iZXIgLSBhZGQgcHggdG8ga2VlcCB0aGUgcHggZm9yIGEgdmFsdWVcbkBwYXJhbWV0ZXIgJGJhc2UgPSBweCBiYXNlZCBudW1iZXIsIERlZmF1bHQ6IDE2cHhcbkBwYXJhbWV0ZXIgJHVuaXQgPSBTZXQgdW5pdDogcHggfCBlbSB8IHJlbSB8IHBlcmNlbnRcblxuIyMgRGVwZW5kZW5jaWVzXG4tLS1cbmFic3RyYWN0L2Z1bmN0aW9ucy9zd2FwLWxlZnQtcmlnaHRcbmFic3RyYWN0L2Z1bmN0aW9ucy9zdHJpcC11bml0XG5cbiMjIEV4YW1wbGVcbi0tLVxuXG5gYGBodG1sX2V4YW1wbGVcbkBpbmNsdWRlIG5uLXB4LXRvLXVuaXQocGFkZGluZywgMCAxMHB4IDIwIDApOyA9PiBwYWRkaW5nOiAwIDEwcHggMS4yNXJlbSAwO1xuQGluY2x1ZGUgbm4tcHgtdG8tdW5pdChwYWRkaW5nLCAwIDEwIDIwIDApOyA9PiBwYWRkaW5nOiAwIDAuNjI1cmVtIDEuMjVyZW0gMDtcbkBpbmNsdWRlIG5uLXB4LXRvLXVuaXQocGFkZGluZy1sZWZ0LCAxMCk7XG5AaW5jbHVkZSBubi1weC10by11bml0KHBhZGRpbmctcmlnaHQsIDEwKTtcbkBpbmNsdWRlIG5uLXB4LXRvLXVuaXQobWFyZ2luLCAwIDEwIDIwIDApO1xuQGluY2x1ZGUgbm4tcHgtdG8tdW5pdChtYXJnaW4tbGVmdCwgMTApO1xuQGluY2x1ZGUgbm4tcHgtdG8tdW5pdChtYXJnaW4tcmlnaHQsIDEwKTtcbkBpbmNsdWRlIG5uLXB4LXRvLXVuaXQoZm9udC1zaXplLCAyMCk7XG5AaW5jbHVkZSBubi1weC10by11bml0KHdpZHRoLCAxMDApO1xuQGluY2x1ZGUgbm4tcHgtdG8tdW5pdChtaW4td2lkdGgsIDEwMCk7XG5AaW5jbHVkZSBubi1weC10by11bml0KG1hbm4td2lkdGgsIDEwMCk7XG5AaW5jbHVkZSBubi1weC10by11bml0KGhlaWdodCwgMTAwKTtcbkBpbmNsdWRlIG5uLXB4LXRvLXVuaXQobWluLWhlaWdodCwgMTAwKTtcbkBpbmNsdWRlIG5uLXB4LXRvLXVuaXQobWFubi1oZWlnaHQsIDEwMCk7XG5gYGBcblxuIyMgU291cmNlXG4tLS1cbmh0dHA6Ly9jc3MtdHJpY2tzLmNvbS9zbmlwcGV0cy9jc3MvbGVzcy1taXhpbi1mb3ItcmVtLWZvbnQtc2l6aW5nL1xuXG4qL1xuLyogZG9jXG4tLS1cbnRpdGxlOiBQaXhlbCB0byB1bml0bGVzc1xubmFtZTogbm4tcHgtdG8tdW5pdGxlc3NcbmNhdGVnb3J5OiBmdW5jdGlvbnNcbi0tLVxuXG5UaGlzIG1ha2VzIHRoZSBzYW1lIGNhbGN1bGF0aW9uIGFzIHB4IHRvIGVtLiBCdXQgaXQgZG9uJ3QgcHJpbnQgb3V0IHRoZSB1bml0LlxuXG5Vc2UgdGhpcyBmb3IgbGluZS1oZWlnaHRzLlxuXG4jIyBMaXZlIFRlbXBsYXRlIGFiYnJldmlhdGlvbnNcbi0tLVxuXG4jIyBQYXJhbWV0ZXJzXG4tLS1cbkBwYXJhbWV0ZXIgJHZhbHVlID0gcGl4ZWwgYmFzZWQgbnVtYmVyICh3aXRob3V0IHVuaXQpXG5AcGFyYW1ldGVyICRiYXNlID0gcGl4ZWwgYmFzZWQgbnVtYmVyICh3aXRob3V0IHVuaXQpXG5cbiMjIERlcGVuZGVuY2llc1xuLS0tXG5cbiMjIEV4YW1wbGVcbi0tLVxuXG5gYGBodG1sX2V4YW1wbGVcbmxpbmUtaGVpZ2h0OiBubi1weC10by11bml0bGVzcyg1KSAvLyBPdXRwdXQ6IDAuMzEyNVxuYGBgXG5cbiMjIFNvdXJjZVxuLS0tXG5cbiovXG4vKiBkb2Ncbi0tLVxudGl0bGU6IFN0cmlwIHVuaXRcbm5hbWU6IG5uLXN0cmlwLXVuaXRcbmNhdGVnb3J5OiBmdW5jdGlvbnNcbi0tLVxuXG5TdHJpcHMgb2YgdGhlIHVuaXQgb2YgYSBudW1iZXJcblxuIyMgUGFyYW1ldGVyc1xuLS0tXG5AcGFyYW1ldGVyICRudW0gPSBudW1iZXIgd2l0aCB1bml0ICg1cHgsIDVlbSwgNXJlbSlcblxuIyMgRXhhbXBsZVxuLS0tXG5cbmBgYGh0bWxfZXhhbXBsZVxubm4tc3RyaXAtdW5pdCg1cHgpIC8vT3V0cHV0OiA1XG5ubi1zdHJpcC11bml0KDEwZW0pIC8vIE91dHB1dDogMTBcbm5uLXN0cmlwLXVuaXQoMTVyZW0pIC8vIE91dHB1dDogMTVcbmBgYFxuXG4qL1xuLyogZG9jXG4tLS1cbnRpdGxlOiB6LWluZGV4XG5uYW1lOiBubi16LWluZGV4XG5jYXRlZ29yeTogZnVuY3Rpb25zXG4tLS1cblxuQmVjYXVzZSB6LWluZGljZXMgY2FuIGdldCB0cmlja3kgd2UgbWFuYWdlIHRoZW0gaW4gdGhlIHRoZW1lLnNjc3MgZ2xvYmFsbHkuXG5cbkFsd2F5cyB1c2UgdGhpcyBtaXhpbiB0byBzZXQgc2V0IGEgei1pbmRleC5cblxuUmVhZCB0aGUgQmVzdCBQcmFjdGljZSB0byBnZXQgYW4gZnVsbCBkb2N1bWVudGF0aW9uOlxuaHR0cHM6Ly9wcm9qZWN0cy5uZXRjZW50cmljLmJpei93aWtpL2Rpc3BsYXkvRlJPTlRFTkQvSG93K3RvK3NldCthK3otaW5kZXhcblxuIyMgTGl2ZSBUZW1wbGF0ZSBhYmJyZXZpYXRpb25zXG4tLS1cbi16XG5cbiMjIFBhcmFtZXRlcnNcbi0tLVxuQHBhcmFtZXRlciAkZWxlbWVudCA9IE5hbWUgb2YgdGhlIGVsZW1lbnQgKG5vcm1hbGx5IHRoaXMgd2lsbCBiZSB0aGUgbW9kdWxlIG5hbWUgZm9yIHRoZSBtYWluIHN0YWNrKVxuQHBhcmFtZXRlciAkbGlzdCA9IE5hbWUgb2YgdGhlIGxpc3QgKGRlZmF1bHQgJHotaW5kaWNlcykuIE11c3QgYmUgb25seSBzZXQgZm9yIHN0YWNrIGNvbnRleHRcbkBwYXJhbWV0ZXIgJG1pbiA9IFNldCBhIG1pbmltdW0gei1pbmRleCB3aGljaCB3aWxsIGJlIGFkZGVkIHRvIHRoZSBsaXN0LlxuXG4jIyBEZXBlbmRlbmNpZXNcbi0tLVxuJHotaW5kaWNlcyB2YXJpYWJsZSBpbiB0aGUgdGhlbWUuc2Nzc1xuXG4jIyBFeGFtcGxlXG4tLS1cblxuYGBgaHRtbF9leGFtcGxlXG5cbi8vIEluIHRoZSBTQVNTIHRoZW1lIGZpbGVcblxuJHotaW5kaWNlczogc2xpZGVyLCBtb2RhbCwgZGlhbG9nLCBuYXZpZ2F0aW9uO1xuXG4vLyBJbiB0aGUgU0FTUyBtb2R1bGUgZmlsZVxuXG4ubW9kYWwge1xuICAgICZfX2Jhc2Uge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHotaW5kZXg6IG5uLXotaW5kZXgobW9kYWwpO1xuICAgIH1cbn1cbmBgYFxuXG4jIyBTb3VyY2Vcbi0tLVxuaHR0cDovL3d3dy5zbWFzaGluZ21hZ2F6aW5lLmNvbS8yMDE0LzA2LzEyL3Nhc3N5LXotaW5kZXgtbWFuYWdlbWVudC1mb3ItY29tcGxleC1sYXlvdXRzL1xuXG4qL1xuLyogZG9jXG4tLS1cbnRpdGxlOiByZW1vdmUgZXZlcnkgdW5pdFxubmFtZTogc3RyaXAtdW5pdFxuY2F0ZWdvcnk6IGZ1bmN0aW9uc1xuLS0tXG5yZW1vdmUgYWxsIHVuaXRzXG5cbiMjIFBhcmFtZXRlcnNcbi0tLVxuQHBhcmFtZXRlciAkbnVtYmVyID0gbnVtYmVyIHdpdGggdW5pdFxuXG4jIyBFeGFtcGxlXG4tLS1cbmBgYGh0bWxfZXhhbXBsZVxuc3RyaXAtdW5pdCg1cHgpIC8vIE91dHB1dDogNVxuYGBgXG4qL1xuLypcbiAgICBUaGlzIG1peGluIGNvbnZlcnRzIGFueSB1bml0bGVzcyBudW1iZXIgKGZvciBleGFtcGxlIDQwKSB0byB0aGUgY29ycmVjdCB1bml0LCBhY2NvcmRpbmcgdG8gdGhlIGdpdmVuIGF4aXMuXG5cbiAgICBQYXJhbWV0ZXJzOlxuICAgIC0gJHZhbHVlOiB1bml0bGVzcyBudW1iZXIgdG8gYmUgY29udmVydGVkLiBBIHVuaXQgaW4gJHZhbHVlIHdpbGwgY29ycmVzcG9uZCB0byBhIHB4IGluIHRoZSBicm93c2VyLFxuICAgICAgICBubyBtYXR0ZXIgaWYgaXQncyBvdXRwdXQgYXMgcHggb3IgcmVtXG5cbiAgICBSZXR1cm5zXG4gICAgLSBIb3Jpem9udGFsOiB3aWxsIGNvbnZlcnQgdGhlIG51bWJlciB0byBwaXhlbHMgKDQwcHgpXG4gICAgLSBWZXJ0aWNhbDogd2lsbCBjb252ZXJ0IHRoZSBudW1iZXIgdG8gcmVtIChpZiByZW0gPT09IDE2cHgsIHRoZW4gNDAgd2lsbCBiZSBjb252ZXJ0ZWQgdG8gMi41IHJlbSlcbiovXG4vKlxuICAgIENvbnZlcnRzIGEgdW5pdGxlc3MgbnVtYmVyIHRvIHRoZSBjb3JyZXNwb25kaW5nIHVuaXQgb24gdGhlIGhvcml6b250YWwgYXhpcy5cbiAgICBCeSBkZWZhdWx0IHdpbGwgY29udmVydCB0aGUgdmFsdWUgdG8gcHguXG4qL1xuLypcbiAgICBDb252ZXJ0cyBhIHVuaXRsZXNzIG51bWJlciB0byB0aGUgY29ycmVzcG9uZGluZyB1bml0IG9uIHRoZSB2ZXJ0aWNhbCBheGlzLlxuICAgIEJ5IGRlZmF1bHQgd2lsbCBjb252ZXJ0IHRoZSB2YWx1ZSB0byByZW0uXG4qL1xuLyogc3R5bGVsaW50LWRpc2FibGUgKi9cbi8qIGRvY1xuLS0tXG50aXRsZTogU3dhcCBsZWZ0IHJpZ2h0IHZhbHVlc1xubmFtZTogc3dhcC1sZWZ0LXJpZ2h0LXZhbHVlc1xuY2F0ZWdvcnk6IGZ1bmN0aW9uc1xuLS0tXG5cblN3YXAgdGhlIHZhbHVlcyBmb3IgcmlnaHQgYW5kIGxlZnQgd2hlbiAkcnRsIGlzIHNldCB0byB0cnVlOlxuXG5JbjogIDAgNXB4IDhweCAxMnB4XG5PdXQ6IDAgMTJweCA4cHggNXB4IChpbiBydGwpXG5cbiMjIFBhcmFtZXRlcnNcbi0tLVxuQHBhcmFtZXRlciAkdmFsdWVzID0gNCBudW1iZXJzICh3b3JrcyB3aXRoIGFsbCB1bml0cylcblxuIyMgRXhhbXBsZVxuLS0tXG5cbmBgYGh0bWxfZXhhbXBsZVxuc3dhcC1sZWZ0LXJpZ2h0LXZhbHVlcygwIDFweCA4cHggMTJweCkgLy8gMCAxMnB4IDhweCAxcHhcbnN3YXAtbGVmdC1yaWdodC12YWx1ZXMoMCAxZW0gOGVtIDEyZW0pIC8vIDAgMTJlbSA4ZW0gMWVtXG53YXAtbGVmdC1yaWdodC12YWx1ZXMoMCAxcmVtIDhyZW0gMTJyZW0pIC8vIDAgMTJyZW0gOHJlbSAxcmVtXG5gYGBcblxuIyMgU291cmNlXG4tLS1cbmh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMTQxOTkzMjMvcmlnaHQtdG8tbGVmdC1ydGwtc3VwcG9ydC1pbi1zYXNzLXByb2plY3RcblxuKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlICovXG4vKiBkb2Ncbi0tLVxudGl0bGU6IFN3YXAgbGVmdCByaWdodCBuYW1lc1xubmFtZTogc3dhcC1sZWZ0LXJpZ2h0LW5hbWVzXG5jYXRlZ29yeTogZnVuY3Rpb25zXG4tLS1cblxuU3dhcCB0aGUgbmFtZXMgcmlnaHQgYW5kIGxlZnQgd2hlbiAkcnRsIGlzIHNldCB0byB0cnVlLlxuSWYgdGhlIHZhbHVlIGlzIG5vdCByaWdodCBvciBsZWZ0IGl0IHJldHVybnMgdGhlIG9yaWdpbmFsIHZhbHVlLlxuXG5JbjogIHJpZ2h0XG5PdXQ6IGxlZnQgKGluIHJ0bCksIHJpZ2h0IChpbiBsdHIpXG5cbiMjIExpdmUgVGVtcGxhdGUgYWJicmV2aWF0aW9uc1xuLS0tXG5cbiMjIFBhcmFtZXRlcnNcbi0tLVxuQHBhcmFtZXRlciAkb3JpZ2luID0gcmlnaHQgfCBsZWZ0XG5cbiMjIEV4YW1wbGVcbi0tLVxuXG5gYGBodG1sX2V4YW1wbGVcbnN3YXAtbGVmdC1yaWdodC1uYW1lKGxlZnQpXG5zd2FwLWxlZnQtcmlnaHQtbmFtZShyaWdodClcbmBgYFxuXG4jIyBTb3VyY2Vcbi0tLVxuaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8xNDE5OTMyMy9yaWdodC10by1sZWZ0LXJ0bC1zdXBwb3J0LWluLXNhc3MtcHJvamVjdFxuXG4qL1xuLyogIExpc3Qgb2YgQ1NTIHByb3BlcnRpZXMgdGhhdCB3aWxsIGFsd2F5cyBiZSBvdXRwdXQgYXQgbGVhc3QgYXMgMiBkaWZmZXJlbnQgdmFsdWVzXG4gICAgaW4gb3JkZXIgdG8gYmUgYWJsZSB0byBjb252ZXJ0IGVhY2ggb25lIHRvIHRoZSBjb3JyZWN0IGF4aXMgdW5pdCAqL1xuLypcbiAgICBNaXhpbiBmb3IgYXV0b21hdGljYWxseSBoYW5kbGluZyBzcGFjaW5ncyBhcm91bmQvYmV0d2VlbiBlbGVtZW50cy5cblxuICAgIFRoaXMgbWl4aW4gd2lsbCBhdXRvbWF0aWNhbGx5IGludmVydCB0aGUgbGVmL3JpZ2h0IGRpcmVjdGlvbnMgaW4gUlRMIGxhbmd1YWdlcy5cbiAgICBBbHNvLCB0aGUgdW5pdGxlc3MgdmFsdWVzIHdpbGwgYmUgY29udmVydGVkIHRvIHRoZSBwcm9wZXIgdW5pdCBhY2NvcmRpbmcgdG8gdGhlIGF4aXNcblxuICAgIFBhcmFtZXRlcnM6XG4gICAgLSAkcHJvcGVydHktbmFtZTogbmFtZSBvZiB0aGUgQ1NTIHByb3BlcnR5IHRoYXQgc2hvdWxkIGJlIG91dHB1dC4gU3VwcG9ydGVkIHByb3BlcnRpZXMgYXJlOlxuICAgICAgICBtYXJnaW4sIG1hcmdpbi10b3AsIG1hcmdpbi1yaWdodCwgbWFyZ2luLWJvdHRvbSwgbWFyZ2luLWxlZnRcbiAgICAgICAgcGFkZGluZywgcGFkZGluZy10b3AsIHBhZGRpbmctcmlnaHQsIHBhZGRpbmctYm90dG9tLCBwYWRkaW5nLWxlZnRcbiAgICAgICAgd2lkdGgsIGhlaWdodCwgbWluLXdpZHRoLCBtYXgtd2lkdGgsIG1pbi1oZWlnaHQsIG1pbi1oZWlnaHRcbiAgICAtICR2YWx1ZTogdmFsdWUgdGhhdCB3aWxsIGJlIG91dHB1dCBhcyBwYXJ0IG9mIHRoZSBnaXZlbiBwcm9wZXJ0eS4gU3VwcG9ydGVkIHZhbHVlcyBhcmU6XG4gICAgICAgIFVuaXRsZXNzIG51bWJlciAoNDApOiB0aGlzIHNob3VsZCBiZSB1c2VkIG1vc3Qgb2YgdGhlIHRpbWVzLiBJdCB3aWxsIGF1dG9tYXRpY2FsbHkgYmUgY29udmVydGVkXG4gICAgICAgICAgICB0byB0aGUgY29ycmVjdCB1bml0IGRlcGVuZGluZyBvbiB0aGUgYXhpcyB3aGVyZSBpdCdzIHVzZWQgKGhvcml6b250YWwgYXhpcyA9PiBweCwgdmVydGljYWwgYXhpcyA9PiByZW0pLlxuICAgICAgICAgICAgRWFjaCB1bml0IGluICR2YWx1ZSB3aWxsIGNvcnJlc3BvbmQgdG8gYSBweCBpbiB0aGUgYnJvd3Nlciwgbm8gbWF0dGVyIHRvIHdoaWNoIHVuaXQgaXQgd2lsbCBiZSBjb252ZXJ0ZWQuXG4gICAgICAgIE51bWJlciB3aXRoIHVuaXQgKDQwcHgsIDQwJS4uLik6IHRoZSBudW1iZXIgYW5kIHRoZSB1bml0IHdpbGwgYmUgcHJlc2VydmVkIGFuZCBvbmx5IHRoZSBsZWZ0L3JpZ2h0IGludmVyc2lvblxuICAgICAgICAgICAgd2lsbCBiZSBkb25lIGZvciBSVEwgbGFuZ3VhZ2VzXG4gICAgICAgIExpc3Qgb2YgdmFsdWVzICg0MCAzMCUgMjAgMTApOiBtYXJnaW4gYW5kIHBhZGRpbmcgc2hvcnRoYW5kcyB3aGl0aCBtdWx0aXBsZSB2YWx1ZXMgYXJlIHN1cHBvcnRlZC5cbiAgICAgICAgICAgIFRoZSBsZWZ0L3JpZ2h0IHZhbHVlcyB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgc3dhcHBlZCBpbiBSVEwgYW5kIHRoZSB1bml0bGVzcyBudW1iZXJzIHdpbGwgYmUgY29udmVydGVkXG4gICAgICAgICAgICB0byB0aGUgY29ycmVzcG9uZGluZyB1bml0LiBVbml0bGVzcyBhbmQgbnVtYmVycyB3aXRoIHVuaXRzIGNhbiBiZSBtaXhlZCBpbiB0aGUgc2FtZSBjYWxsLlxuICAgICAgICBVc2luZyBjYWxjKCkgaW4gYW55IG9mIHRoZSBwcmV2aW91cyBleGFtcGxlcyBpcyBzdXBwb3J0ZWQsIGFsdGhvdWdoIG5vIHVuaXQgY29udmVyc2lvbiB3aWxsIGJlIGRvbmVcblxuICMjIEV4YW1wbGVcbi0tLVxuXG5gYGBodG1sX2V4YW1wbGVcbkBpbmNsdWRlIHNwYWNpbmcocGFkZGluZywgMCAxMHB4IDIwIDApOyA9PiBwYWRkaW5nOiAwIDEwcHggMnJlbSAwO1xuQGluY2x1ZGUgc3BhY2luZyhwYWRkaW5nLCAwIDEwIDIwIDApOyA9PiBwYWRkaW5nOiAwIDEwcHggMnJlbSAwO1xuQGluY2x1ZGUgc3BhY2luZyhwYWRkaW5nLWxlZnQsIDEwKTtcbkBpbmNsdWRlIHNwYWNpbmcocGFkZGluZy1yaWdodCwgMTApO1xuQGluY2x1ZGUgc3BhY2luZyhtYXJnaW4sIDAgMTAgMjAgMCk7XG5AaW5jbHVkZSBzcGFjaW5nKG1hcmdpbi1sZWZ0LCAxMCk7XG5AaW5jbHVkZSBzcGFjaW5nKG1hcmdpbi1yaWdodCwgMTApO1xuQGluY2x1ZGUgc3BhY2luZyh3aWR0aCwgMTAwKTtcbkBpbmNsdWRlIHNwYWNpbmcobWluLXdpZHRoLCAxMDApO1xuQGluY2x1ZGUgc3BhY2luZyhtYXgtd2lkdGgsIDEwMCk7XG5AaW5jbHVkZSBzcGFjaW5nKGhlaWdodCwgMTAwKTtcbkBpbmNsdWRlIHNwYWNpbmcobWluLWhlaWdodCwgMTAwKTtcbkBpbmNsdWRlIHNwYWNpbmcobWF4LWhlaWdodCwgMTAwKTtcbmBgYFxuKi9cbi8qIGRvY1xuLS0tXG50aXRsZTogQ2xlYXJmaXhcbm5hbWU6IGNsZWFyZml4XG5jYXRlZ29yeTogbWl4aW5zXG4tLS1cblxuQ2xlYXJzIGFmdGVyIGZsb2F0aW5nIGVsZW1lbnRcblxuVXNlIHRoaXMgbWl4aW4gb25seSBpbnNpZGUgbWVkaWEgcXVlcmllcyB3aGVyZSB5b3UgY2FuJ3QgdXNlIHRoZVxuYWJzdHJhY3QvZXh0ZW5kcy91dGlscy9fY2xlYXJmaXggdmVyc2lvbiwgd2hpY2ggYWRkcyBsZXNzIGNvZGUgdG8gY3NzXG5cbiMjIExpdmUgVGVtcGxhdGUgYWJicmV2aWF0aW9uc1xuLS0tXG5cbiMjIEV4YW1wbGVcbi0tLVxuXG5gYGBodG1sX2V4YW1wbGVcbkBpbmNsdWRlIGNsZWFyZml4O1xuYGBgXG5cbiMjIFNvdXJjZVxuLS0tXG5odHRwczovL2Nzcy10cmlja3MuY29tL3NuaXBwZXRzL2Nzcy9jbGVhci1maXgvXG4qL1xuLyogc3R5bGVsaW50LWRpc2FibGUgc3RyaW5nLW5vLW5ld2xpbmUgKi9cbi8qIGRvY1xuLS0tXG50aXRsZTogZm9jdXMgY29sb3Jcbm5hbWU6IGZvY3VzIGNvbG9yXG5jYXRlZ29yeTogbWl4aW5zXG4tLS1cblxuQWRkIGEgZm9jdXMgY29sb3Igd2hlbiBrZXlib2FyZC1mb2N1cyBpcyBhY3RpdmF0ZWRcbiMjIFBhcmFtZXRlcnNcbi0tLVxuQHBhcmFtICRudW1iZXJcblxuKi9cbi8qIGRvY1xuLS0tXG50aXRsZTogaWdub3JlLWNvbnRhaW5lclxubmFtZTogaWdub3JlLWNvbnRhaW5lclxuY2F0ZWdvcnk6IG1peGluc1xuLS0tXG5cblNldCBmdWxsIHBhZ2Ugd2lkdGggZm9yIHNvbWV0aGluZyBpbnNpZGUgYSBjb250YWluZXJcblxuIyMgUGFyYW1ldGVyc1xuLS0tXG5AcGFyYW0gJGNvbnRhaW5lci1zaXplXG5AcGFyYW0gJGd1dHRlclxuXG4qL1xuLyogR2VuZXJhdGVzIGFsbCB0aGUgcnVsZXMgZm9yIHRoZSBncmlkIGNvbHVtbnMgdXAgdG8gdGhlIGdpdmVuIGFtb3VudCBvZiBjb2x1bW4gKi9cbi8qIEdlbmVyYXRlcyBhbGwgdGhlIHJ1bGVzIGZvciB0aGUgZ3JpZCBjb2x1bW4gb2Zmc2V0IHVwIHRvIHRoZSBnaXZlbiBhbW91bnQgb2YgY29sdW1uICovXG4vKiBHZW5lcmF0ZXMgYWxsIHRoZSBydWxlcyBmb3IgdGhlIGdyaWQgYW5kIGNvbHVtbnMgZm9yIHRoZSBnaXZlbiBicmVhayBwb2ludCBhbmQgdG90YWwgb2YgY29sdW1ucyAqL1xuLyogQVBJIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB0byBnZW5lcmF0ZSBhIGdyaWQgY29uZmlnICovXG4vKiBkb2Ncbi0tLVxudHlwZTogYnV0dG9uIHR5cGVcbnN0YXRlOiBzdGF0ZSBidXR0b25cbi0tLVxuXG5CdXR0b24gc3R5bGVzXG5cblVzZSB0aGlzIG1peGluIGZvciBidXR0b24gc3R5bGVzOiBjb2xvciB0ZXh0LCBiYWNrZ3JvdW5kLCBib3JkZXJcblxuIyMgRXhhbXBsZVxuLS0tXG5cbmBgYGh0bWxfZXhhbXBsZVxuQGluY2x1ZGUgYnV0dG9uKHByaW1hcnkpO1xuYGBgXG4qL1xuLyogZG9jXG4tLS1cbmxpbmVMaW1pdDogVGhpcyB2YWx1ZSBzcGVjaWZpZXMgdGhlIG51bWJlciBvZiBsaW5lcyBhZnRlciB3aGljaCB0aGUgY29udGVudCB3aWxsIGJlIGNsYW1wZWQuIEl0IG11c3QgYmUgZ3JlYXRlciB0aGFuIDAuXG4tLS1cblxuVHJ1bmNhdGVzIHRleHQgYXQgYSBzcGVjaWZpYyBudW1iZXIgb2YgbGluZXMuXG5cblVzZSB0aGlzIG1peGluIHRvIGhpZGUgbG9uZyB0ZXh0LlxuXG4jIyBFeGFtcGxlXG4tLS1cblxuYGBgaHRtbF9leGFtcGxlXG5AaW5jbHVkZSBsaW5lLWNsYW1wKCRsaW5lTGltaXQ6IDQpO1xuYGBgXG4qL1xuLyogdHlwb2dyYXBoeVxuLS0tXG50aXRsZTogdHlwb2dyYXBoeVxubmFtZTogVHlwb2dyYXBoeVxuY2F0ZWdvcnk6IG1peGluc1xuLS0tXG5cbkFkZHMgZm9udCBDU1MgcHJvcGVydGllcyBieSBhIG1hcCBwcm92aWRlZFxuXG4jIyBQYXJhbWV0ZXJzXG4tLS1cbkBwYXJhbSAkdC1zdHlsZVxuQHBhcmFtICRpcy1pbXBvcnRhbnQ6IGZhbHNlXG5cbiogJHQtc3R5bGUgaXMgZXhwZWN0ZWQgdG8gYmUgYSBtYXAgd2l0aCAnZGVmYXVsdCcgYW5kICdicmVha3BvaW50W3NdJyBzdWJtYXBzIHdpdGggYSBwcm9wZXJ0eVxuZm9yIGV2ZXJ5IGNzcyBwcm9wZXJ0eSB0byBiZSBzZXQuXG4qICRpcy1pbXBvcnRhbnQgcGFyYW1ldGVyIGFsbG93cyB0byBmb3JjZSB0eXBvZ3JhcGh5IHByb3BlcnRpZXMgdG8gYmUgc2V0IGFzICFpbXBvcnRhbnRcblRyeSB0byBhdm9pZCBpdHMgdXNlLCBidXQgaXQgbWlnaHQgYmUgbmVlZGVkIGZvciBzaXR1YXRpb25zIHdoZXJlIHN0eWxlcyBmb3IgYSBjb21wb25lbnRcbmFyZSB2ZXJ5IHNwZWNpZmljIGFuZCB0byBvdmVyd3JpdGUgdGhlIGdlbmVyaWMgb25lcyBpcyB0b28gY29tcGxleCAoaWYgdGhleSBoYXZlIGEgbG90IG9mIHNwZWNpZmljaXR5KVxuXG4qL1xuLyogZG9jXG4tLS1cbnRpdGxlOiBoaWRkZW5cbm5hbWU6IGhpZGRlblxuY2F0ZWdvcnk6IG1peGluc1xuLS0tXG5cbkhpZGUgZnJvbSBib3RoIHNjcmVlbnJlYWRlcnMgYW5kIGJyb3dzZXJzOiBoNWJwLmNvbS91XG4jIyBQYXJhbWV0ZXJzXG4tLS1cblxuKi9cbi8qIGRvY1xuLS0tXG50aXRsZTogb3ZlcmxheVxubmFtZTogb3ZlcmxheVxuY2F0ZWdvcnk6IG1peGluc1xuLS0tXG5cbkNyZWF0ZXMgYW4gb3ZlcmxheSB3aXRoIHRoZSBwcm92aWRlZCBiYWNrZ3JvdW5kIGNvbG9yXG4jIyBQYXJhbWV0ZXJzXG4tLS1cbkBwYXJhbSAkYmdDb2xvclxuXG4qL1xuLyoqXG4gKiBAbWl4aW4gdG9wLWJvdHRvbS1ib3JkZXJcbiAqIEBkZXNjIENyZWF0ZXMgYSBkeW5hbWljIGFuZCBjdXN0b21pemFibGUgYm9yZGVyIGF0IHRoZSBzcGVjaWZpZWQgcG9zaXRpb24gb24gYW4gZWxlbWVudC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gJHBvc2l0aW9uIC0gT3B0aW9uYWwsIERlZmF1bHQ6ICdib3R0b20nLiBEZWZpbmVzIHRoZSBwb3NpdGlvbiBvZiB0aGUgYm9yZGVyLiBBY2NlcHRzIHZhbHVlcyAndG9wJyBvciAnYm90dG9tJy5cbiAqIEBwYXJhbSB7Y29sb3J9ICRjb2xvciAtIE9wdGlvbmFsLCBEZWZhdWx0OiAnJGMtYmxhY2snLiBTcGVjaWZpZXMgdGhlIGNvbG9yIG9mIHRoZSBib3JkZXIuIEFjY2VwdHMgYW55IHZhbGlkIENTUyBjb2xvciB2YWx1ZS5cbiAqIEBwYXJhbSB7bGVuZ3RofSAkd2lkdGggLSBPcHRpb25hbCwgRGVmYXVsdDogJzJweCcuIFNldHMgdGhlIHdpZHRoIG9mIHRoZSBib3JkZXIuIEFjY2VwdHMgYW55IHZhbGlkIENTUyBsZW5ndGggdmFsdWUuXG4gKiBAcGFyYW0ge2xlbmd0aH0gJG1hcmdpbiAtIE9wdGlvbmFsLCBEZWZhdWx0OiAnMCcuIEFkZHMgbWFyZ2luIHRvIHRoZSBib3JkZXIuIEFjY2VwdHMgYW55IHZhbGlkIENTUyBsZW5ndGggdmFsdWUuXG4gKlxuICogQGV4YW1wbGVcbiAqICAgLmV4YW1wbGUtZWxlbWVudCB7XG4gKiAgICAgICBAaW5jbHVkZSB0b3AtYm90dG9tLWJvcmRlcigkcG9zaXRpb246IHRvcCwgJGNvbG9yOiAkYy1ncmV5LXR3bywgJHdpZHRoOiAzcHgsICRtYXJnaW46IDEwcHgpO1xuICogICB9XG4gKi9cbi8qIGRvY1xuLS0tXG50aXRsZTogcmVzZXQtZnVsbHdpZHRoLW1hcmdpbnNcbm5hbWU6IHJlc2V0LWZ1bGx3aWR0aC1tYXJnaW5zXG5jYXRlZ29yeTogbWl4aW5zXG4tLS1cblxuUmVzZXQgbWFyZ2lucyBmb3IgZnVsbCB3aWR0aCBjb21wb25lbnRzIGluc2lkZSBhIENvbnRhaW5lciBvciBhIENvbHVtbiBDb250cm9sXG4qL1xuLyogZG9jXG4tLS1cbnRpdGxlOiB2aXN1YWxseSBoaWRkZW5cbm5hbWU6IHZpc3VhbGx5IGhpZGRlblxuY2F0ZWdvcnk6IG1peGluc1xuLS0tXG5cbkhpZGRlbiBmcm9tIGJyb3dzZXJzIGJ1dCBhY2Nlc3NpYmxlIHRvIHNjcmVlbiByZWFkZXJzXG4jIyBQYXJhbWV0ZXJzXG4tLS1cblxuKi9cbi50ZWFzZXJsaXN0Om5vdCgudGVhc2VyLS1sYXlvdXQtdG9wKTpub3QoLnRlYXNlci0tbGF5b3V0LXJpZ2h0KSAuY21wLXRlYXNlciB7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIHBhZGRpbmctYmxvY2stc3RhcnQ6IDEwMCU7XG59XG4udGVhc2VybGlzdF9fbGlzdCB7XG4gIC0tZ3JpZC1nYXA6IDE1cHg7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdhcDogdmFyKC0tZ3JpZC1nYXApO1xuICBtYXJnaW4tYmxvY2stZW5kOiB2YXIoLS1ncmlkLWdhcCk7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNDgwcHgpIHtcbiAgLnRlYXNlcmxpc3RfX2xpc3Qge1xuICAgIC0tZ3JpZC1nYXA6IDMwcHg7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBjYWxjKDEwMCUgLyAzIC0gdmFyKC0tZ3JpZC1nYXApICogMiAvIDMpIGNhbGMoMTAwJSAvIDMgLSB2YXIoLS1ncmlkLWdhcCkgKiAyIC8gMykgY2FsYygxMDAlIC8gMyAtIHZhcigtLWdyaWQtZ2FwKSAqIDIgLyAzKSA7XG4gICAgZ3JpZC1nYXA6IHZhcigtLWdyaWQtZ2FwKTtcbiAgfVxuICAudGVhc2VybGlzdExheW91dC1jb2xzLS0yIC50ZWFzZXJsaXN0X19saXN0IHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGNhbGMoMTAwJSAvIDIgLSB2YXIoLS1ncmlkLWdhcCkgKiAxIC8gMikgY2FsYygxMDAlIC8gMiAtIHZhcigtLWdyaWQtZ2FwKSAqIDEgLyAyKSA7XG4gICAgZ3JpZC1nYXA6IHZhcigtLWdyaWQtZ2FwKTtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gIC50ZWFzZXJsaXN0X19saXN0IHtcbiAgICBtYXJnaW4tYmxvY2s6IDE1cHg7XG4gICAgbWFyZ2luLWlubGluZTogMDtcbiAgfVxuICAudGVhc2VybGlzdExheW91dC1jb2xzLS00IC50ZWFzZXJsaXN0X19saXN0IHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGNhbGMoMTAwJSAvIDQgLSB2YXIoLS1ncmlkLWdhcCkgKiAzIC8gNCkgY2FsYygxMDAlIC8gNCAtIHZhcigtLWdyaWQtZ2FwKSAqIDMgLyA0KSBjYWxjKDEwMCUgLyA0IC0gdmFyKC0tZ3JpZC1nYXApICogMyAvIDQpIGNhbGMoMTAwJSAvIDQgLSB2YXIoLS1ncmlkLWdhcCkgKiAzIC8gNCkgO1xuICAgIGdyaWQtZ2FwOiB2YXIoLS1ncmlkLWdhcCk7XG4gIH1cbn1cbi50ZWFzZXJsaXN0TGF5b3V0LS1uby1jb2x1bW4gLnRlYXNlcmxpc3RfX2xpc3Qge1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGNhbGMoMTAwJSAvIDEgLSB2YXIoLS1ncmlkLWdhcCkgKiAwIC8gMSkgO1xuICBncmlkLWdhcDogdmFyKC0tZ3JpZC1nYXApO1xufVxuLnRlYXNlcmxpc3RMYXlvdXQtLW5vLWNvbHVtbiAudGVhc2VybGlzdF9fbGlzdCAuY21wLXRlYXNlcl9faXRlbSB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYmxvY2s6IDA7XG4gIG1hcmdpbi1pbmxpbmU6IGF1dG87XG59XG4udGVhc2VybGlzdF9fdGl0bGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuLnRlYXNlcmxpc3RfX3RpdGxlLS1ncm91cCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4udGVhc2VybGlzdCAuY21wLXRlYXNlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgbWFyZ2luOiAwO1xufVxuLnRlYXNlcmxpc3QgLmNtcC10ZWFzZXJfX3dhcm5pbmcge1xuICBjb2xvcjogI2M0MDAxYTtcbiAgd2lkdGg6IDEwMCU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi50ZWFzZXJsaXN0IC5jbXAtdGVhc2VyX19saW5rOmhvdmVyIC5jbXAtdGVhc2VyX19vdmVybGF5IHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjUpO1xufVxuLnRlYXNlcmxpc3QgLmNtcC10ZWFzZXJfX2xpbms6aG92ZXIgLmNtcC10ZWFzZXJfX2NvbnRlbnQge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMCUpO1xufVxuLnRlYXNlcmxpc3QgLmNtcC10ZWFzZXJfX2xpbms6aG92ZXIgLmNtcC10ZWFzZXJfX2Rlc2NyaXB0aW9uIHtcbiAgb3BhY2l0eTogMTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjFzIGxpbmVhcjtcbn1cbi50ZWFzZXJsaXN0IC5jbXAtdGVhc2VyX19saW5rOmhvdmVyIC5hcnRpY2xlX190aXRsZTo6YWZ0ZXIge1xuICBwYWRkaW5nLWlubGluZS1zdGFydDogNXB4O1xufVxuLnRlYXNlcmxpc3QgLmNtcC10ZWFzZXJfX2ltYWdlIHtcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xufVxuLnRlYXNlcmxpc3QgLmNtcC10ZWFzZXJfX292ZXJsYXkge1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMnMgZWFzZS1pbi1vdXQ7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGhlaWdodDogMTAwJTtcbiAgaW5zZXQtYmxvY2stc3RhcnQ6IDA7XG4gIGluc2V0LWlubGluZTogMDtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwKTtcbn1cbi50ZWFzZXJsaXN0IC5jbXAtdGVhc2VyX19vdmVybGF5LS1zaGFkZSB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byB0b3AsICMwMDAsIHRyYW5zcGFyZW50KTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBoZWlnaHQ6IDIwMHB4O1xuICB3aWR0aDogMTAwJTtcbiAgaW5zZXQtYmxvY2stZW5kOiAwO1xufVxuLnRlYXNlcmxpc3QgLmNtcC10ZWFzZXJfX2NvbnRlbnQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0LWJsb2NrLXN0YXJ0OiAxMDAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTMuNWVtKTtcbiAgY29sb3I6ICNlMWRmZGQ7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGVhc2UtaW4tb3V0O1xuICBwYWRkaW5nLWlubGluZTogMTVweDtcbiAgcGFkZGluZy1ibG9jazogMCA1cHg7XG4gIG1heC13aWR0aDogMTAwJTtcbn1cbi50ZWFzZXJsaXN0IC5jbXAtdGVhc2VyX190aXRsZSB7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mZi1tZWRpdW0pO1xuICBmb250LXNpemU6IDIxcHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG4gIGxldHRlci1zcGFjaW5nOiB2YXIoLS1scy1kZWZhdWx0KTtcbiAgbWFyZ2luLWJsb2NrLWVuZDogMTZweDtcbiAgY29sb3I6ICNmZmY7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLnRlYXNlcmxpc3QgLmNtcC10ZWFzZXJfX3RpdGxlIHtcbiAgICBmb250LXNpemU6IDI0cHg7XG4gIH1cbn1cbi50ZWFzZXJsaXN0IC5jbXAtdGVhc2VyX19kZXNjcmlwdGlvbiB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSB2YWx1ZS1uby12ZW5kb3ItcHJlZml4ICovXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAtd2Via2l0LWxpbmUtY2xhbXA6IDg7XG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBwcm9wZXJ0eS1uby11bmtub3duICovXG4gIGJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nLWJsb2NrLWVuZDogMXB4O1xuICBtYXJnaW4tYmxvY2stc3RhcnQ6IDA7XG4gIGNvbG9yOiAjZmZmO1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDFzIGxpbmVhcjtcbn1cbi50ZWFzZXJsaXN0IC5jbXAtdGVhc2VyX19saW5rTGFiZWwge1xuICBmb250LWZhbWlseTogdmFyKC0tZmYtcmVndWxhcik7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgbGV0dGVyLXNwYWNpbmc6IHZhcigtLWxzLWRlZmF1bHQpO1xuICBjb2xvcjogI2ZmZjtcbn1cbi50ZWFzZXJsaXN0IC5jbXAtdGVhc2VyX19saW5rTGFiZWw6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBjb250ZW50OiBcIlwiO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hc2staW1hZ2U6IHVybChcIi9jb250ZW50L2RhbS92b2x2by1tZWRpYS9saXN0LWljb25zL2NoZXZyb24tcmlnaHQuc3ZnI2NoZXZyb24tcmlnaHQtaWNvbi13MjQtdmlld1wiKTtcbiAgbWFzay1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgbWFzay1zaXplOiBjb3ZlcjtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHdpZHRoOiAyNHB4O1xuICBoZWlnaHQ6IDI0cHg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC50ZWFzZXJsaXN0IC5jbXAtdGVhc2VyX19saW5rTGFiZWw6YWZ0ZXIge1xuICAgIG1hc2staW1hZ2U6IHVybChcIi9jb250ZW50L2RhbS92b2x2by1tZWRpYS9saXN0LWljb25zL2NoZXZyb24tcmlnaHQuc3ZnI2NoZXZyb24tcmlnaHQtaWNvbi13MTYtdmlld1wiKTtcbiAgfVxufVxuLnRlYXNlcmxpc3QgLmNtcC10ZWFzZXJfX2xpbmtMYWJlbDo6YWZ0ZXIge1xuICBmb250LXNpemU6IDEwcHg7XG4gIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IDEwcHg7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbmh0bWxbZGlyPXJ0bF0gLnRlYXNlcmxpc3QgLmNtcC10ZWFzZXJfX2xpbmtMYWJlbDo6YWZ0ZXIge1xuICB0cmFuc2Zvcm06IHNjYWxlKC0xKTtcbn1cbi50ZWFzZXJsaXN0IC5jbXAtdGVhc2VyIC5jbXAtaW1hZ2Uge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogMDtcbiAgcGFkZGluZy1ibG9jay1zdGFydDogMTAwJTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi50ZWFzZXJsaXN0IC5jbXAtdGVhc2VyIC5jbXAtaW1hZ2VfX2ltYWdlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBpbnNldC1ibG9jay1zdGFydDogMDtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuLnRlYXNlcmxpc3QgLmFydGljbGVfX2hlYWRlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4udGVhc2VybGlzdCAuYXJ0aWNsZV9fZGF0ZS0tbG9uZyB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4udGVhc2VybGlzdC50ZWFzZXItLWRlc2NyaXB0aW9uLWhpZGUgLmNtcC10ZWFzZXJfX2xpbmsgLmNtcC10ZWFzZXJfX3RpdGxlLS1sYXN0d29yZDo6YWZ0ZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMXB4KTtcbn1cbmh0bWxbZGlyPXJ0bF0gLnRlYXNlcmxpc3QudGVhc2VyLS1kZXNjcmlwdGlvbi1oaWRlIC5jbXAtdGVhc2VyX19saW5rIC5jbXAtdGVhc2VyX190aXRsZS0tbGFzdHdvcmQ6OmFmdGVyIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgtMSwgMSkgdHJhbnNsYXRlKDAsIC0xcHgpO1xufVxuLnRlYXNlcmxpc3QudGVhc2VyLS1kZXNjcmlwdGlvbi1oaWRlIC5jbXAtdGVhc2VyX19saW5rOmhvdmVyIC5jbXAtdGVhc2VyX190aXRsZS0tbGFzdHdvcmQ6OmFmdGVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoNXB4LCAtMXB4KTtcbn1cbmh0bWxbZGlyPXJ0bF0gLnRlYXNlcmxpc3QudGVhc2VyLS1kZXNjcmlwdGlvbi1oaWRlIC5jbXAtdGVhc2VyX19saW5rOmhvdmVyIC5jbXAtdGVhc2VyX190aXRsZS0tbGFzdHdvcmQ6OmFmdGVyIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgtMSwgMSkgdHJhbnNsYXRlKDVweCwgLTFweCk7XG59XG4udGVhc2VybGlzdC50ZWFzZXItLWRlc2NyaXB0aW9uLWhpZGUgLmNtcC10ZWFzZXJfX3RpdGxlLS1sYXN0d29yZDphZnRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDRmYmM7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFzay1pbWFnZTogdXJsKFwiL2NvbnRlbnQvZGFtL3ZvbHZvLW1lZGlhL2xpc3QtaWNvbnMvY2hldnJvbi1yaWdodC5zdmcjY2hldnJvbi1yaWdodC1pY29uLXcyNC12aWV3XCIpO1xuICBtYXNrLXJlcGVhdDogbm8tcmVwZWF0O1xuICBtYXNrLXNpemU6IGNvdmVyO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgd2lkdGg6IHZhcigtLXYtaWNvbi1zaXplKTtcbiAgaGVpZ2h0OiB2YXIoLS12LWljb24tc2l6ZSk7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC50ZWFzZXJsaXN0LnRlYXNlci0tZGVzY3JpcHRpb24taGlkZSAuY21wLXRlYXNlcl9fdGl0bGUtLWxhc3R3b3JkOmFmdGVyIHtcbiAgICBtYXNrLWltYWdlOiB1cmwoXCIvY29udGVudC9kYW0vdm9sdm8tbWVkaWEvbGlzdC1pY29ucy9jaGV2cm9uLXJpZ2h0LnN2ZyNjaGV2cm9uLXJpZ2h0LWljb24tdzE2LXZpZXdcIik7XG4gIH1cbn1cbi50ZWFzZXJsaXN0LnRlYXNlci0tZGVzY3JpcHRpb24taGlkZSAuY21wLXRlYXNlcl9fdGl0bGUtLWxhc3R3b3JkOjphZnRlciB7XG4gIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IDEwcHg7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGVhc2Utb3V0O1xufVxuLnRlYXNlcmxpc3QudGVhc2VyLS1kZXNjcmlwdGlvbi1oaWRlIC5jbXAtdGVhc2VyX19kZXNjcmlwdGlvbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4udGVhc2VybGlzdC50ZWFzZXItLWRlc2NyaXB0aW9uLWhpZGUgLmNtcC10ZWFzZXJfX2xpbmtMYWJlbCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4udGVhc2VybGlzdC50ZWFzZXItLWxheW91dC10b3AgLmNtcC10ZWFzZXJfX292ZXJsYXksIC50ZWFzZXJsaXN0LnRlYXNlci0tbGF5b3V0LXRvcCAuY21wLXRlYXNlcl9fb3ZlcmxheS0tc2hhZGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuLnRlYXNlcmxpc3QudGVhc2VyLS1sYXlvdXQtdG9wIC5jbXAtdGVhc2VyX19saW5rTGFiZWwge1xuICBjb2xvcjogIzAwNGZiYztcbn1cbi50ZWFzZXJsaXN0LnRlYXNlci0tbGF5b3V0LXRvcCAuY21wLXRlYXNlcl9fbGlua0xhYmVsOmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNGZiYztcbiAgY29udGVudDogXCJcIjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXNrLWltYWdlOiB1cmwoXCIvY29udGVudC9kYW0vdm9sdm8tbWVkaWEvbGlzdC1pY29ucy9jaGV2cm9uLXJpZ2h0LnN2ZyNjaGV2cm9uLXJpZ2h0LWljb24tdzI0LXZpZXdcIik7XG4gIG1hc2stcmVwZWF0OiBuby1yZXBlYXQ7XG4gIG1hc2stc2l6ZTogY292ZXI7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB3aWR0aDogdmFyKC0tdi1pY29uLXNpemUpO1xuICBoZWlnaHQ6IHZhcigtLXYtaWNvbi1zaXplKTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLnRlYXNlcmxpc3QudGVhc2VyLS1sYXlvdXQtdG9wIC5jbXAtdGVhc2VyX19saW5rTGFiZWw6YWZ0ZXIge1xuICAgIG1hc2staW1hZ2U6IHVybChcIi9jb250ZW50L2RhbS92b2x2by1tZWRpYS9saXN0LWljb25zL2NoZXZyb24tcmlnaHQuc3ZnI2NoZXZyb24tcmlnaHQtaWNvbi13MTYtdmlld1wiKTtcbiAgfVxufVxuLnRlYXNlcmxpc3QudGVhc2VyLS1sYXlvdXQtdG9wIC5jbXAtdGVhc2VyX19saW5rTGFiZWw6OmFmdGVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpO1xufVxuLnRlYXNlcmxpc3QudGVhc2VyLS1sYXlvdXQtdG9wIC5jbXAtdGVhc2VyX19saW5rOmhvdmVyIC5jbXAtdGVhc2VyX19jb250ZW50IHtcbiAgdHJhbnNmb3JtOiBub25lO1xufVxuLnRlYXNlcmxpc3QudGVhc2VyLS1sYXlvdXQtdG9wIC5jbXAtdGVhc2VyX19jb250ZW50IHtcbiAgcGFkZGluZy1ibG9jazogMWVtO1xuICBwYWRkaW5nLWlubGluZTogMDtcbiAgcG9zaXRpb246IHN0YXRpYztcbiAgdHJhbnNmb3JtOiBub25lO1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xufVxuLmNvbnRhaW5lcl9fYmFzZSAudGVhc2VybGlzdC50ZWFzZXItLWxheW91dC10b3AgLmNtcC10ZWFzZXJfX2NvbnRlbnQge1xuICBwYWRkaW5nOiAxZW07XG59XG4udGVhc2VybGlzdC50ZWFzZXItLWxheW91dC10b3AgLmNtcC10ZWFzZXJfX2Rlc2NyaXB0aW9uLCAudGVhc2VybGlzdC50ZWFzZXItLWxheW91dC10b3AgLmNtcC10ZWFzZXJfX3RpdGxlIHtcbiAgY29sb3I6ICM1MzU2NWE7XG59XG4udGVhc2VybGlzdC50ZWFzZXItLWxheW91dC10b3AgLmNtcC10ZWFzZXJfX3RpdGxlLS1sYXN0d29yZCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi50ZWFzZXJsaXN0LnRlYXNlci0tbGF5b3V0LXRvcCAuY21wLXRlYXNlcl9fZGVzY3JpcHRpb24ge1xuICBvcGFjaXR5OiAxO1xufVxuLnRlYXNlcmxpc3QudGVhc2VyLS1sYXlvdXQtdG9wIC5jbXAtdGVhc2VyIC5jbXAtaW1hZ2Uge1xuICBwYWRkaW5nLWJsb2NrLXN0YXJ0OiA1Ni40OCU7XG59XG4udGVhc2VybGlzdC50ZWFzZXItLWxheW91dC10b3AgLmFydGljbGVfX2hlYWRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjb2xvcjogI2E3YThhOTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAudGVhc2VybGlzdC50ZWFzZXItLWxheW91dC10b3AgLmFydGljbGVfX2hlYWRlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICB9XG59XG4udGVhc2VybGlzdC50ZWFzZXItLWxheW91dC10b3AgLmFydGljbGVfX3RpdGxlLS1sYXN0d29yZCB7XG4gIHBhZGRpbmctaW5saW5lLWVuZDogMjRweDtcbn1cbi50ZWFzZXJsaXN0LnRlYXNlci0tbGF5b3V0LXRvcCAuYXJ0aWNsZV9fdGl0bGUtLWxhc3R3b3JkOmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNGZiYztcbiAgY29udGVudDogXCJcIjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXNrLWltYWdlOiB1cmwoXCIvY29udGVudC9kYW0vdm9sdm8tbWVkaWEvbGlzdC1pY29ucy9jaGV2cm9uLXJpZ2h0LnN2ZyNjaGV2cm9uLXJpZ2h0LWljb24tdzI0LXZpZXdcIik7XG4gIG1hc2stcmVwZWF0OiBuby1yZXBlYXQ7XG4gIG1hc2stc2l6ZTogY292ZXI7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB3aWR0aDogdmFyKC0tdi1pY29uLXNpemUpO1xuICBoZWlnaHQ6IHZhcigtLXYtaWNvbi1zaXplKTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLnRlYXNlcmxpc3QudGVhc2VyLS1sYXlvdXQtdG9wIC5hcnRpY2xlX190aXRsZS0tbGFzdHdvcmQ6YWZ0ZXIge1xuICAgIG1hc2staW1hZ2U6IHVybChcIi9jb250ZW50L2RhbS92b2x2by1tZWRpYS9saXN0LWljb25zL2NoZXZyb24tcmlnaHQuc3ZnI2NoZXZyb24tcmlnaHQtaWNvbi13MTYtdmlld1wiKTtcbiAgfVxufVxuLnRlYXNlcmxpc3QudGVhc2VyLS1sYXlvdXQtdG9wIC5hcnRpY2xlX190aXRsZS0tbGFzdHdvcmQ6OmFmdGVyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4taW5saW5lOiAxMHB4IC0zNHB4O1xuICB0cmFuc2l0aW9uOiBwYWRkaW5nLWxlZnQgMC4zcyBlYXNlLW91dDtcbiAgd2lkdGg6IDI0cHg7XG4gIGhlaWdodDogMjRweDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5NTlweCkge1xuICAudGVhc2VybGlzdC50ZWFzZXItLWxheW91dC10b3AgLmFydGljbGVfX3RpdGxlLS1sYXN0d29yZDo6YWZ0ZXIge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg0cHgpO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLnRlYXNlcmxpc3QudGVhc2VyLS1sYXlvdXQtdG9wIC5hcnRpY2xlX190aXRsZS0tbGFzdHdvcmQ6OmFmdGVyIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoM3B4KTtcbiAgfVxufVxuLnRlYXNlcmxpc3QudGVhc2VyLS1sYXlvdXQtdG9wIC5hcnRpY2xlX190YWcge1xuICB3aWR0aDogMTAwJTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAudGVhc2VybGlzdC50ZWFzZXItLWxheW91dC10b3AgLmFydGljbGVfX3RhZyB7XG4gICAgd2lkdGg6IDQwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcbiAgfVxufVxuLnRlYXNlcmxpc3QudGVhc2VyLS1sYXlvdXQtdG9wIC5hcnRpY2xlX19kZXRhaWxzIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLnRlYXNlcmxpc3QudGVhc2VyLS1sYXlvdXQtdG9wIC5hcnRpY2xlX19kZXRhaWxzIHtcbiAgICB3aWR0aDogNjAlO1xuICAgIHRleHQtYWxpZ246IGVuZDtcbiAgfVxuICBodG1sW2Rpcj1ydGxdIC50ZWFzZXJsaXN0LnRlYXNlci0tbGF5b3V0LXRvcCAuYXJ0aWNsZV9fZGV0YWlscyB7XG4gICAgdGV4dC1hbGlnbjogc3RhcnQ7XG4gIH1cbn1cbi50ZWFzZXJsaXN0LnRlYXNlci0tbGF5b3V0LXRvcCAuYXJ0aWNsZV9fdGltZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLnRlYXNlcmxpc3QudGVhc2VyLS1sYXlvdXQtdG9wIC5hcnRpY2xlX190aW1lIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAudGVhc2VybGlzdC50ZWFzZXItLWxheW91dC10b3AgLmFydGljbGVfX3RpbWUtLW1vYmlsZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC50ZWFzZXJsaXN0LnRlYXNlci0tbGF5b3V0LXRvcC5tb2JpbGUtaG9yaXpvbnRhbC1zY3JvbGw6aGFzKC50ZWFzZXJsaXN0X19saXN0KSB7XG4gICAgcGFkZGluZy1pbmxpbmU6IDE1cHg7XG4gIH1cbiAgLnRlYXNlcmxpc3QudGVhc2VyLS1sYXlvdXQtdG9wLm1vYmlsZS1ob3Jpem9udGFsLXNjcm9sbDpoYXMoLnRlYXNlcmxpc3RfX2xpc3QpIDo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICBoZWlnaHQ6IDRweDtcbiAgfVxuICAudGVhc2VybGlzdC50ZWFzZXItLWxheW91dC10b3AubW9iaWxlLWhvcml6b250YWwtc2Nyb2xsOmhhcygudGVhc2VybGlzdF9fbGlzdCkgOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNhN2E4YTk7XG4gIH1cbiAgLnRlYXNlcmxpc3QudGVhc2VyLS1sYXlvdXQtdG9wLm1vYmlsZS1ob3Jpem9udGFsLXNjcm9sbDpoYXMoLnRlYXNlcmxpc3RfX2xpc3QpIC50ZWFzZXJsaXN0X19saXN0IHtcbiAgICBvdmVyZmxvdy14OiBhdXRvO1xuICAgIGdhcDogMDtcbiAgfVxuICAudGVhc2VybGlzdC50ZWFzZXItLWxheW91dC10b3AubW9iaWxlLWhvcml6b250YWwtc2Nyb2xsOmhhcygudGVhc2VybGlzdF9fbGlzdCkgLnRlYXNlcmxpc3RfX2xpc3Q6aGFzKD4gOm50aC1jaGlsZChuKzMpKSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZy1ibG9jay1lbmQ6IDE2cHg7XG4gICAgZ2FwOiAxNnB4O1xuICB9XG4gIC50ZWFzZXJsaXN0LnRlYXNlci0tbGF5b3V0LXRvcC5tb2JpbGUtaG9yaXpvbnRhbC1zY3JvbGw6aGFzKC50ZWFzZXJsaXN0X19saXN0KSAudGVhc2VybGlzdF9fbGlzdDpoYXMoPiA6bnRoLWNoaWxkKG4rMykpID4gKiB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDkyJTtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnRlYXNlcmxpc3QudGVhc2VyLS1sYXlvdXQtdG9wLm1vYmlsZS1ob3Jpem9udGFsLXNjcm9sbCAuY21wLXRlYXNlcl9faXRlbSwgLnRlYXNlcmxpc3QudGVhc2VyLS1sYXlvdXQtdG9wLm1vYmlsZS1ob3Jpem9udGFsLXNjcm9sbCAuY21wLXRlYXNlcl9fbGluayB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgfVxuICAudGVhc2VybGlzdC50ZWFzZXItLWxheW91dC10b3AubW9iaWxlLWhvcml6b250YWwtc2Nyb2xsIC5jbXAtdGVhc2VyX19jb250ZW50IHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gIH1cbn1cbi50ZWFzZXJsaXN0LnRlYXNlcmxpc3RMYXlvdXQtY29scy0tNC50ZWFzZXItLWxheW91dC10b3AgLmFydGljbGVfX2hlYWRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLnRlYXNlcmxpc3QudGVhc2VybGlzdExheW91dC1jb2xzLS00LnRlYXNlci0tbGF5b3V0LXRvcCAuYXJ0aWNsZV9fdGFnLCAudGVhc2VybGlzdC50ZWFzZXJsaXN0TGF5b3V0LWNvbHMtLTQudGVhc2VyLS1sYXlvdXQtdG9wIC5hcnRpY2xlX19kZXRhaWxzIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHRleHQtYWxpZ246IHN0YXJ0O1xufVxuLnRlYXNlcmxpc3QudGVhc2VyLS1sYXlvdXQtcmlnaHQgLmNtcC10ZWFzZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAudGVhc2VybGlzdC50ZWFzZXItLWxheW91dC1yaWdodCAuY21wLXRlYXNlciB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xuICB9XG59XG4udGVhc2VybGlzdC50ZWFzZXItLWxheW91dC1yaWdodCAuY21wLXRlYXNlcl9faW1hZ2Uge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnRlYXNlcmxpc3QudGVhc2VyLS1sYXlvdXQtcmlnaHQgLmNtcC10ZWFzZXJfX2ltYWdlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC50ZWFzZXJsaXN0LnRlYXNlci0tbGF5b3V0LXJpZ2h0IC5jbXAtdGVhc2VyX19pbWFnZSB7XG4gICAgd2lkdGg6IDMwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkgYW5kIChtYXgtd2lkdGg6IDk1OXB4KSB7XG4gIC50ZWFzZXJsaXN0LnRlYXNlci0tbGF5b3V0LXJpZ2h0IC5jbXAtdGVhc2VyX19pbWFnZSB7XG4gICAgd2lkdGg6IDUwJTtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC50ZWFzZXJsaXN0LnRlYXNlci0tbGF5b3V0LXJpZ2h0IC5jbXAtdGVhc2VyIC5jbXAtaW1hZ2Uge1xuICAgIHBhZGRpbmctYmxvY2stc3RhcnQ6IDA7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLnRlYXNlcmxpc3QudGVhc2VyLS1sYXlvdXQtcmlnaHQgLmNtcC10ZWFzZXIgLmNtcC1pbWFnZSB7XG4gICAgcGFkZGluZy1ibG9jay1zdGFydDogNTYuNDglO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnRlYXNlcmxpc3QudGVhc2VyLS1sYXlvdXQtcmlnaHQgLmNtcC10ZWFzZXIgLmNtcC1pbWFnZSAuY21wLWltYWdlX19pbWFnZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG59XG4udGVhc2VybGlzdC50ZWFzZXItLWxheW91dC1yaWdodCAuY21wLXRlYXNlcl9fb3ZlcmxheSwgLnRlYXNlcmxpc3QudGVhc2VyLS1sYXlvdXQtcmlnaHQgLmNtcC10ZWFzZXJfX292ZXJsYXktLXNoYWRlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi50ZWFzZXJsaXN0LnRlYXNlci0tbGF5b3V0LXJpZ2h0IC5jbXAtdGVhc2VyX19saW5rTGFiZWwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZmLW1lZGl1bSk7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHBhZGRpbmctYmxvY2s6IDEycHg7XG4gIHBhZGRpbmctaW5saW5lOiAzMnB4O1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBib3JkZXI6IDFweCBzb2xpZCAjNTM1NjVhO1xuICBjb2xvcjogIzUzNTY1YTtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAxcztcbiAgbWF4LXdpZHRoOiBjYWxjKDEwMCUgLSB2YXIoLS12LWljb24tc2l6ZSkpO1xufVxuLnRlYXNlcmxpc3QudGVhc2VyLS1sYXlvdXQtcmlnaHQgLmNtcC10ZWFzZXJfX2xpbmtMYWJlbDpob3ZlciwgLnRlYXNlcmxpc3QudGVhc2VyLS1sYXlvdXQtcmlnaHQgLmNtcC10ZWFzZXJfX2xpbmtMYWJlbDpmb2N1cyB7XG4gIGJhY2tncm91bmQ6ICNmN2Y3Zjc7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY29sb3I6ICM1MzU2NWE7XG59XG4udGVhc2VybGlzdC50ZWFzZXItLWxheW91dC1yaWdodCAuY21wLXRlYXNlcl9fbGlua0xhYmVsOmhvdmVyOjphZnRlciwgLnRlYXNlcmxpc3QudGVhc2VyLS1sYXlvdXQtcmlnaHQgLmNtcC10ZWFzZXJfX2xpbmtMYWJlbDpmb2N1czo6YWZ0ZXIge1xuICB0cmFuc2Zvcm06IHZhcigtLWJ1dHRvbi1pY29uLXRyYW5zZm9ybS1ob3Zlcik7XG59XG4udGVhc2VybGlzdC50ZWFzZXItLWxheW91dC1yaWdodCAuY21wLXRlYXNlcl9fbGlua0xhYmVsOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6ICNlMWRmZGQ7XG59XG4udGVhc2VybGlzdC50ZWFzZXItLWxheW91dC1yaWdodCAuY21wLXRlYXNlcl9fbGlua0xhYmVsOmFjdGl2ZSwgLnRlYXNlcmxpc3QudGVhc2VyLS1sYXlvdXQtcmlnaHQgLmNtcC10ZWFzZXJfX2xpbmtMYWJlbDpmb2N1cywgLnRlYXNlcmxpc3QudGVhc2VyLS1sYXlvdXQtcmlnaHQgLmNtcC10ZWFzZXJfX2xpbmtMYWJlbDpmb2N1cy12aXNpYmxlIHtcbiAgb3V0bGluZTogMnB4IHNvbGlkICMwMDQxYTM7XG4gIG91dGxpbmUtb2Zmc2V0OiAzcHg7XG59XG4udGVhc2VybGlzdC50ZWFzZXItLWxheW91dC1yaWdodCAuY21wLXRlYXNlcl9fbGlua0xhYmVsOjphZnRlciB7XG4gIHRyYW5zZm9ybTogdmFyKC0tYnV0dG9uLWljb24tdHJhbnNmb3JtKTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgZWFzZS1vdXQ7XG59XG4udGVhc2VybGlzdC50ZWFzZXItLWxheW91dC1yaWdodCAuY21wLXRlYXNlcl9fbGlua0xhYmVsOmRpc2FibGVkLCAudGVhc2VybGlzdC50ZWFzZXItLWxheW91dC1yaWdodCAuY21wLXRlYXNlcl9fbGlua0xhYmVsLmRpc2FibGVkIHtcbiAgYm9yZGVyOiAxcHggc29saWQgIzg4OGI4ZDtcbiAgY29sb3I6ICM4ODhiOGQ7XG59XG4udGVhc2VybGlzdC50ZWFzZXItLWxheW91dC1yaWdodCAuY21wLXRlYXNlcl9fbGlua0xhYmVsOmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzUzNTY1YTtcbiAgY29udGVudDogXCJcIjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXNrLWltYWdlOiB1cmwoXCIvY29udGVudC9kYW0vdm9sdm8tbWVkaWEvbGlzdC1pY29ucy9jaGV2cm9uLXJpZ2h0LnN2ZyNjaGV2cm9uLXJpZ2h0LWljb24tdzI0LXZpZXdcIik7XG4gIG1hc2stcmVwZWF0OiBuby1yZXBlYXQ7XG4gIG1hc2stc2l6ZTogY292ZXI7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB3aWR0aDogdmFyKC0tdi1pY29uLXNpemUpO1xuICBoZWlnaHQ6IHZhcigtLXYtaWNvbi1zaXplKTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLnRlYXNlcmxpc3QudGVhc2VyLS1sYXlvdXQtcmlnaHQgLmNtcC10ZWFzZXJfX2xpbmtMYWJlbDphZnRlciB7XG4gICAgbWFzay1pbWFnZTogdXJsKFwiL2NvbnRlbnQvZGFtL3ZvbHZvLW1lZGlhL2xpc3QtaWNvbnMvY2hldnJvbi1yaWdodC5zdmcjY2hldnJvbi1yaWdodC1pY29uLXcxNi12aWV3XCIpO1xuICB9XG59XG4udGVhc2VybGlzdC50ZWFzZXItLWxheW91dC1yaWdodCAuY21wLXRlYXNlcl9fbGlua0xhYmVsOjphZnRlciB7XG4gIGNvbG9yOiAjMDAwO1xuICBwYWRkaW5nLWlubGluZS1zdGFydDogMTBweDtcbiAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbiAgd2lkdGg6IDI0cHg7XG4gIGhlaWdodDogMjRweDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAudGVhc2VybGlzdC50ZWFzZXItLWxheW91dC1yaWdodCAuY21wLXRlYXNlcl9fbGlua0xhYmVsOjphZnRlciB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgLnRlYXNlcmxpc3QudGVhc2VyLS1sYXlvdXQtcmlnaHQgLmNtcC10ZWFzZXJfX2xpbmtMYWJlbDpob3Zlcjo6YWZ0ZXIge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDVweCwgLTFweCk7XG4gIH1cbn1cbi50ZWFzZXJsaXN0LnRlYXNlci0tbGF5b3V0LXJpZ2h0IC5jbXAtdGVhc2VyX19saW5rOmhvdmVyIC5jbXAtdGVhc2VyX19jb250ZW50IHtcbiAgdHJhbnNmb3JtOiBub25lO1xufVxuLnRlYXNlcmxpc3QudGVhc2VyLS1sYXlvdXQtcmlnaHQgLmNtcC10ZWFzZXJfX2NvbnRlbnQge1xuICB0cmFuc2Zvcm06IG5vbmU7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG4gIHBhZGRpbmc6IDFlbTtcbiAgcG9pbnRlci1ldmVudHM6IGF1dG87XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLnRlYXNlcmxpc3QudGVhc2VyLS1sYXlvdXQtcmlnaHQgLmNtcC10ZWFzZXJfX2NvbnRlbnQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogNzAlO1xuICAgIGhlaWdodDogZml0LWNvbnRlbnQ7XG4gICAgcGFkZGluZy1ibG9jay1zdGFydDogMDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSBhbmQgKG1heC13aWR0aDogOTU5cHgpIHtcbiAgLnRlYXNlcmxpc3QudGVhc2VyLS1sYXlvdXQtcmlnaHQgLmNtcC10ZWFzZXJfX2NvbnRlbnQge1xuICAgIHdpZHRoOiA1MCU7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5NTlweCkge1xuICAudGVhc2VybGlzdC50ZWFzZXItLWxheW91dC1yaWdodCAuY21wLXRlYXNlcl9fY29udGVudCAuY21wLXRlYXNlcl9fbGlua0xhYmVsOjphZnRlciB7XG4gICAgbWFyZ2luLWlubGluZS1zdGFydDogMDtcbiAgfVxufVxuLnRlYXNlcmxpc3QudGVhc2VyLS1sYXlvdXQtcmlnaHQgLmNtcC10ZWFzZXJfX2Rlc2NyaXB0aW9uLCAudGVhc2VybGlzdC50ZWFzZXItLWxheW91dC1yaWdodCAuY21wLXRlYXNlcl9fdGl0bGUge1xuICBjb2xvcjogIzUzNTY1YTtcbn1cbi50ZWFzZXJsaXN0LnRlYXNlci0tbGF5b3V0LXJpZ2h0IC5jbXAtdGVhc2VyX19kZXNjcmlwdGlvbiB7XG4gIG9wYWNpdHk6IDE7XG4gIG1hcmdpbi1ibG9jay1lbmQ6IDEwcHg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLnRlYXNlcmxpc3QudGVhc2VyLS1sYXlvdXQtcmlnaHQgLmNtcC10ZWFzZXJfX2Rlc2NyaXB0aW9uIHtcbiAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgdmFsdWUtbm8tdmVuZG9yLXByZWZpeCAqL1xuICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAgIC13ZWJraXQtbGluZS1jbGFtcDogNDtcbiAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBwcm9wZXJ0eS1uby11bmtub3duICovXG4gICAgYm94LW9yaWVudDogdmVydGljYWw7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwYWRkaW5nLWJsb2NrLWVuZDogMXB4O1xuICAgIG1hcmdpbi1pbmxpbmUtZW5kOiAwO1xuICB9XG4gIC50ZWFzZXJsaXN0LnRlYXNlci0tbGF5b3V0LXJpZ2h0IC5jbXAtdGVhc2VyX19kZXNjcmlwdGlvbjo6YWZ0ZXIge1xuICAgIGhlaWdodDogMS4yZW07XG4gIH1cbn1cbi50ZWFzZXJsaXN0LnRlYXNlci0tbGF5b3V0LXJpZ2h0IC5hcnRpY2xlX19oZWFkZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgY29sb3I6ICNhN2E4YTk7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnRlYXNlcmxpc3QudGVhc2VyLS1sYXlvdXQtcmlnaHQgLmFydGljbGVfX2hlYWRlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIH1cbn1cbi50ZWFzZXJsaXN0LnRlYXNlci0tbGF5b3V0LXJpZ2h0IC5hcnRpY2xlX190aXRsZS0tbGFzdHdvcmQge1xuICBtYXJnaW4tYmxvY2stZW5kOiAwO1xufVxuLnRlYXNlcmxpc3QudGVhc2VyLS1sYXlvdXQtcmlnaHQgLmFydGljbGVfX3RpdGxlLS1sYXN0d29yZDphZnRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDRmYmM7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFzay1pbWFnZTogdXJsKFwiL2NvbnRlbnQvZGFtL3ZvbHZvLW1lZGlhL2xpc3QtaWNvbnMvY2hldnJvbi1yaWdodC5zdmcjY2hldnJvbi1yaWdodC1pY29uLXcyNC12aWV3XCIpO1xuICBtYXNrLXJlcGVhdDogbm8tcmVwZWF0O1xuICBtYXNrLXNpemU6IGNvdmVyO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgd2lkdGg6IHZhcigtLXYtaWNvbi1zaXplKTtcbiAgaGVpZ2h0OiB2YXIoLS12LWljb24tc2l6ZSk7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC50ZWFzZXJsaXN0LnRlYXNlci0tbGF5b3V0LXJpZ2h0IC5hcnRpY2xlX190aXRsZS0tbGFzdHdvcmQ6YWZ0ZXIge1xuICAgIG1hc2staW1hZ2U6IHVybChcIi9jb250ZW50L2RhbS92b2x2by1tZWRpYS9saXN0LWljb25zL2NoZXZyb24tcmlnaHQuc3ZnI2NoZXZyb24tcmlnaHQtaWNvbi13MTYtdmlld1wiKTtcbiAgfVxufVxuLnRlYXNlcmxpc3QudGVhc2VyLS1sYXlvdXQtcmlnaHQgLmFydGljbGVfX3RpdGxlLS1sYXN0d29yZDo6YWZ0ZXIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IDEwcHg7XG4gIHRyYW5zaXRpb246IHBhZGRpbmctbGVmdCAwLjNzIGVhc2Utb3V0O1xuICB3aWR0aDogMjRweCAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDI0cHggIWltcG9ydGFudDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5NTlweCkge1xuICAudGVhc2VybGlzdC50ZWFzZXItLWxheW91dC1yaWdodCAuYXJ0aWNsZV9fdGl0bGUtLWxhc3R3b3JkOjphZnRlciB7XG4gICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gIC50ZWFzZXJsaXN0LnRlYXNlci0tbGF5b3V0LXJpZ2h0IC5hcnRpY2xlX190aXRsZS0tbGFzdHdvcmQ6OmFmdGVyIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoM3B4KTtcbiAgfVxufVxuLnRlYXNlcmxpc3QudGVhc2VyLS1sYXlvdXQtcmlnaHQgLmFydGljbGVfX2RldGFpbHMge1xuICBkaXJlY3Rpb246IGx0cjtcbn1cbmh0bWxbZGlyPXJ0bF0gLnRlYXNlcmxpc3QudGVhc2VyLS1sYXlvdXQtcmlnaHQgLmFydGljbGVfX2RldGFpbHMge1xuICB0ZXh0LWFsaWduOiBlbmQ7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLnRlYXNlcmxpc3QudGVhc2VyLS1sYXlvdXQtcmlnaHQgLmFydGljbGVfX2RldGFpbHMge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBpbnNldC1ibG9jay1lbmQ6IDA7XG4gIH1cbn1cbi50ZWFzZXJsaXN0LnRlYXNlci0tbGF5b3V0LXJpZ2h0IC5hcnRpY2xlX190aW1lLCAudGVhc2VybGlzdC50ZWFzZXItLWxheW91dC1yaWdodCAuYXJ0aWNsZV9fdGltZS0tbW9iaWxlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxMTk5cHgpIHtcbiAgLmNvbnRhaW5lcl9fYmFzZS5jb250YWluZXItLWZ1bGxXaWR0aCAuY21wLWNvbnRhaW5lciA+IC50ZWFzZXJsaXN0IHtcbiAgICBtYXJnaW4taW5saW5lOiAtMTVweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAuY29udGFpbmVyX19iYXNlLmNvbnRhaW5lci0tZnVsbFdpZHRoIC5jbXAtY29udGFpbmVyID4gLnRlYXNlcmxpc3Qge1xuICAgIHBhZGRpbmctaW5saW5lOiAxNXB4O1xuICB9XG59XG5cbi5jb2xsYWdlIC50ZWFzZXJsaXN0IHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwYWRkaW5nLWJsb2NrOiAxNHB4O1xuICBwYWRkaW5nLWlubGluZTogMjBweDtcbn1cbi5jb2xsYWdlIC50ZWFzZXJsaXN0X190aXRsZSB7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mZi1tZWRpdW0pO1xuICBmb250LXNpemU6IDIxcHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG4gIGxldHRlci1zcGFjaW5nOiB2YXIoLS1scy1kZWZhdWx0KTtcbiAgbWFyZ2luLWJsb2NrLWVuZDogMjVweDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29sb3I6ICNmZmY7XG4gIHotaW5kZXg6IDE7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5jb2xsYWdlIC50ZWFzZXJsaXN0X190aXRsZSB7XG4gICAgZm9udC1zaXplOiAyNHB4O1xuICB9XG59XG4uY29sbGFnZSAudGVhc2VybGlzdF9fbGlzdCB7XG4gIG1hcmdpbjogMDtcbn1cbi5jb2xsYWdlIC50ZWFzZXJsaXN0IC5jbXAtdGVhc2VyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbn1cbi5jb2xsYWdlIC50ZWFzZXJsaXN0IC5jbXAtdGVhc2VyX19vdmVybGF5LCAuY29sbGFnZSAudGVhc2VybGlzdCAuY21wLXRlYXNlcl9fZGVzY3JpcHRpb24sIC5jb2xsYWdlIC50ZWFzZXJsaXN0IC5jbXAtdGVhc2VyX19saW5rTGFiZWwge1xuICBkaXNwbGF5OiBub25lO1xufVxuLmNvbGxhZ2UgLnRlYXNlcmxpc3QgLmNtcC10ZWFzZXIgLmNtcC1pbWFnZSB7XG4gIHBvc2l0aW9uOiBpbml0aWFsO1xufVxuLmNvbGxhZ2UgLnRlYXNlcmxpc3QgLmNtcC10ZWFzZXJfX2l0ZW06bnRoLW9mLXR5cGUobisyKSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4uY29sbGFnZSAudGVhc2VybGlzdCAuY21wLXRlYXNlcl9fbGluayB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQtYmxvY2stc3RhcnQ6IDA7XG4gIGluc2V0LWlubGluZS1zdGFydDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xufVxuLmNvbGxhZ2UgLnRlYXNlcmxpc3QgLmNtcC10ZWFzZXJfX2xpbms6aG92ZXIgLmNtcC10ZWFzZXJfX2NvbnRlbnQge1xuICB0cmFuc2Zvcm06IG5vbmU7XG59XG4uY29sbGFnZSAudGVhc2VybGlzdCAuY21wLXRlYXNlcl9fY29udGVudCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQtYmxvY2stc3RhcnQ6IGF1dG87XG4gIHBhZGRpbmctYmxvY2s6IDAgN3B4O1xuICBwYWRkaW5nLWlubGluZTogMjBweDtcbiAgdHJhbnNmb3JtOiBub25lO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuLmNvbGxhZ2UgLnRlYXNlcmxpc3QgLmNtcC10ZWFzZXJfX3RpdGxlIHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZmLXJlZ3VsYXIpO1xuICBmb250LXNpemU6IDI0cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG4gIGxldHRlci1zcGFjaW5nOiB2YXIoLS1scy1kZWZhdWx0KTtcbiAgY29sb3I6ICM1MzU2NWE7XG59XG4uY29sbGFnZSAudGVhc2VybGlzdCAuY21wLXRlYXNlciAuY21wLXRlYXNlcl9fY29udGVudCAuYXJ0aWNsZV9fdGl0bGUge1xuICBsaW5lLWhlaWdodDogMTtcbn1cbi5jb2xsYWdlIC50ZWFzZXJsaXN0IC5hcnRpY2xlX190YWcsIC5jb2xsYWdlIC50ZWFzZXJsaXN0IC5hcnRpY2xlX190aW1lLCAuY29sbGFnZSAudGVhc2VybGlzdCAuYXJ0aWNsZV9fdGltZS0tbW9iaWxlLCAuY29sbGFnZSAudGVhc2VybGlzdCAuYXJ0aWNsZV9fZGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4uY29sbGFnZSAudGVhc2VybGlzdCAuYXJ0aWNsZV9fZGV0YWlscyB7XG4gIGNvbG9yOiAjNTM1NjVhO1xufVxuLmNvbGxhZ2UgLnRlYXNlcmxpc3QgLmFydGljbGVfX2hlYWRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBvcmRlcjogMztcbn1cbi5jb2xsYWdlIC50ZWFzZXJsaXN0IC5hcnRpY2xlX19kYXRlLS1sb25nIHtcbiAgZGlzcGxheTogaW5saW5lO1xufVxuLmNvbGxhZ2UgLnRlYXNlcmxpc3QgLmFydGljbGVfX3RpdGxlLS1sYXN0d29yZCB7XG4gIHBhZGRpbmctaW5saW5lLWVuZDogMTBweDtcbiAgY29sb3I6ICNmZmY7XG59XG4uY29sbGFnZSAudGVhc2VybGlzdCAuYXJ0aWNsZV9fdGl0bGUtLWxhc3R3b3JkOmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNGZiYztcbiAgY29udGVudDogXCJcIjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXNrLWltYWdlOiB1cmwoXCIvY29udGVudC9kYW0vdm9sdm8tbWVkaWEvbGlzdC1pY29ucy9jaGV2cm9uLXJpZ2h0LnN2ZyNjaGV2cm9uLXJpZ2h0LWljb24tdzI0LXZpZXdcIik7XG4gIG1hc2stcmVwZWF0OiBuby1yZXBlYXQ7XG4gIG1hc2stc2l6ZTogY292ZXI7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB3aWR0aDogdmFyKC0tdi1pY29uLXNpemUpO1xuICBoZWlnaHQ6IHZhcigtLXYtaWNvbi1zaXplKTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLmNvbGxhZ2UgLnRlYXNlcmxpc3QgLmFydGljbGVfX3RpdGxlLS1sYXN0d29yZDphZnRlciB7XG4gICAgbWFzay1pbWFnZTogdXJsKFwiL2NvbnRlbnQvZGFtL3ZvbHZvLW1lZGlhL2xpc3QtaWNvbnMvY2hldnJvbi1yaWdodC5zdmcjY2hldnJvbi1yaWdodC1pY29uLXcxNi12aWV3XCIpO1xuICB9XG59XG4uY29sbGFnZSAudGVhc2VybGlzdCAuYXJ0aWNsZV9fdGl0bGUtLWxhc3R3b3JkOjphZnRlciB7XG4gIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IDVweDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgdHJhbnNpdGlvbjogcGFkZGluZy1pbmxpbmUtc3RhcnQgMC4zcyBlYXNlLW91dDtcbn1cbi5jb2xsYWdlIC5jbXAtY29udGFpbmVyLS1iZyArIC5jbXAtY29udGFpbmVyIC50ZWFzZXJsaXN0X190aXRsZSxcbi5jb2xsYWdlIC5jbXAtY29udGFpbmVyLS1iZyArIC5jbXAtY29udGFpbmVyIC5jbXAtdGVhc2VyX190aXRsZSxcbi5jb2xsYWdlIC5jbXAtY29udGFpbmVyLS1iZyArIC5jbXAtY29udGFpbmVyIC5hcnRpY2xlX19kZXRhaWxzIHtcbiAgY29sb3I6ICNmZmY7XG59IixudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbF19 */