@charset "UTF-8";
/*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
```
*/
/*doc
---
title: Swap left right values
name: nn-rtl
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
nn-rtl(left): 10px;
nn-rtl(padding-right): 30px;
nn-rtl(0 1px 8px 12px) // 0 12px 8px 1px
```


*/
/*
    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/
*/
.icon {
  display: inline-block;
  width: 32px;
  height: 32px;
}

/* 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

*/
/*
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
 */
/*
  * Design spec:
  * https://www.figma.com/file/SR4rvQlNnCmPMrQ9WYaIqv/branch/TJqkFymq09wf8KwmY1WNcj/Volvo-AEM-Design-system?type=design&node-id=7-26&t=pAm916VRiqCOD2I1-0
*/
@font-face {
  font-family: "VolvoIcons";
  src: url("../../resources/fonts/volvoicons/VolvoIcons.woff2?v=2023.1214.1131937.0003535563") format("woff"), url("../../resources/fonts/volvoicons/VolvoIcons.woff?v=2023.1214.1131937.0003535563") format("woff");
  font-weight: normal;
  font-style: normal;
  font-display: auto;
}

.vi::before {
  font-family: "VolvoIcons";
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  text-rendering: auto;
  display: inline-block;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.vi-twitter:before {
  content: "";
}

.vi-pinterest-p:before {
  content: "";
}

.vi-facebook:before {
  content: "";
}

.vi-facebook-f:before {
  content: "";
}

.vi-linkedin:before {
  content: "";
}

.vi-group:before {
  content: "";
}

.vi-star:before {
  content: "";
}

.vi-comments-o:before {
  content: "";
}

.vi-plane:before {
  content: "";
}

.vi-tag:before {
  content: "";
}

.vi-envelope:before {
  content: "";
}

.vi-sitemap:before {
  content: "";
}

.vi-address-card:before {
  content: "";
}

.vi-share-alt:before {
  content: "";
}

.vi-heart:before {
  content: "";
}

.vi-heart-o:before {
  content: "";
}

.vi-map-marker:before {
  content: '';
  display: inline-block;
  background: url("../../../../../../../content/dam/volvo-media/list-icons/geopin.svg#geopin-icon-w24-view");
  width: var(--v-icon-size);
  height: var(--v-icon-size);
  -webkit-filter: saturate(0%) brightness(0%) invert(33.92157%) opacity(1);
          filter: saturate(0%) brightness(0%) invert(33.92157%) opacity(1);
  filter: url('data:image/svg+xml;utf8,    <svg xmlns="http://www.w3.org/2000/svg">    <filter id="recolor" color-interpolation-filters="sRGB">        <feColorMatrix type="matrix" values="         0 0 0 0 0.32549         0 0 0 0 0.33725         0 0 0 0 0.35294         0 0 0 1 0         "/>    </filter>    </svg>    #recolor');
  pointer-events: none;
}

@media (min-width: 1200px) {
  .vi-map-marker:before {
    background: url("../../../../../../../content/dam/volvo-media/list-icons/geopin.svg#geopin-icon-w16-view");
  }
}

.vi-calendar:before {
  content: "";
}

.vi-arrow-up:before {
  content: "";
}

.vi-rss:before {
  content: "";
}

.vi-fullwidth-quote:before {
  content: '"';
}

.vi-hook-bracket-left:before {
  content: "「";
}

.vi-hook-bracket-right:before {
  content: "」";
}

.vi-single-quote-left:before {
  content: "‘";
}

.vi-single-quote-right:before {
  content: "’";
}

.vi-single-quote-left-low:before {
  content: "‚";
}

.vi-quote-left-low:before {
  content: "„";
}

.vi-compress:before {
  content: "";
}

.vi-expand:before {
  content: "";
}

.vi-angle-left:before {
  content: "‹";
}

.vi-angle-right:before {
  content: "›";
}

.vi-quote-left:before {
  content: "“";
}

.vi-quote-right:before {
  content: "”";
}

.vi-angle-double-right:before {
  content: "»";
}

.vi-angle-double-left:before {
  content: "«";
}

.vi-minus-circle:before {
  content: "";
}

.vi-plus-circle:before {
  content: "";
}

.vi-sort-up:before {
  content: "";
}

.vi-bars:before {
  content: "";
}

.vi-square:before {
  content: "";
}

.vi-external-link:after {
  content: '';
  display: inline-block;
  background: url("../../../../../../../content/dam/volvo-media/list-icons/link-external.svg#link-external-icon-w24-view");
  width: var(--v-icon-size);
  height: var(--v-icon-size);
  -webkit-filter: saturate(0%) brightness(0%) invert(33.92157%) opacity(1);
          filter: saturate(0%) brightness(0%) invert(33.92157%) opacity(1);
  filter: url('data:image/svg+xml;utf8,    <svg xmlns="http://www.w3.org/2000/svg">    <filter id="recolor" color-interpolation-filters="sRGB">        <feColorMatrix type="matrix" values="         0 0 0 0 0.32549         0 0 0 0 0.33725         0 0 0 0 0.35294         0 0 0 1 0         "/>    </filter>    </svg>    #recolor');
  pointer-events: none;
}

@media (min-width: 1200px) {
  .vi-external-link:after {
    background: url("../../../../../../../content/dam/volvo-media/list-icons/link-external.svg#link-external-icon-w16-view");
  }
}

.vi-share-alt-square:before {
  content: "";
}

.vi-search:before {
  content: "";
}

.vi-spinner:before {
  content: "";
}

.vi-check:before {
  content: "";
}

.vi-download:before {
  content: "";
}

.vi-step-forward:before {
  content: "";
}

.vi-step-backward:before {
  content: "";
}

.vi-chevron-right:before {
  content: "";
}

.vi-chevron-left:before {
  content: "";
}

.vi-chevron-down:before {
  content: "";
}

.vi-chevron-up:before {
  content: "";
}

.vi-close:before {
  content: "";
}

.vi-play:before {
  content: "";
}

.vi-trending-up:before {
  content: "";
}

.vi-time:before {
  content: "";
}

.vi-arrow-right:before {
  content: "";
}

.vi-arrow-down:before {
  content: "";
}

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

body {
  font-family: var(--ff-regular);
  font-size: 16px;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: var(--ls-default);
  margin: 0;
  padding: 0;
  color: #4d4e53;
  background-color: #fff;
  -webkit-text-size-adjust: 100%;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  overflow-x: hidden;
}

[tabindex='-1']:focus:not(:focus-visible) {
  outline: 0 !important;
}

hr {
  margin: 1rem 0;
  color: inherit;
  background-color: currentColor;
  border: 0;
}

hr:not([size]) {
  height: 1px;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  margin-top: 0;
  margin-bottom: 0;
}

p {
  margin-top: 0;
  margin-bottom: 0;
}

abbr[title] {
  text-decoration: underline;
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted;
  cursor: help;
  text-decoration-skip-ink: none;
}

address {
  margin-bottom: 1rem;
  font-style: normal;
  line-height: inherit;
}

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

ol,
ul,
dl {
  margin-top: 0;
  margin-bottom: 0;
}

ol ol,
ul ul,
ol ul,
ul ol {
  margin-bottom: 0;
}

dt {
  font-weight: 700;
}

dd {
  margin-left: 0;
}

blockquote {
  margin: 0 0 1rem;
}

b,
strong {
  font-weight: bolder;
  font-family: var(--ff-medium);
}

small {
  font-size: 0.875em;
}

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

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

a {
  color: #4d4e53;
  text-decoration: none;
  transition: color 0.1s linear;
}

a:hover {
  text-decoration: none;
}

figure {
  margin: 0 0 1rem;
}

img {
  vertical-align: middle;
  max-width: 100%;
}

table {
  border-collapse: collapse;
}

th {
  text-align: inherit;
}

button:focus {
  outline: 1px dotted;
  outline: 5px auto -webkit-focus-ring-color;
}

input,
button,
select,
optgroup,
textarea {
  color: #4d4e53;
  margin: 0;
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
}

button,
input {
  overflow: visible;
}

button,
select {
  text-transform: none;
}

select {
  word-wrap: normal;
}

[list]::-webkit-calendar-picker-indicator {
  display: none;
}

button,
[type='button'],
[type='reset'],
[type='submit'] {
  -webkit-appearance: button;
  -moz-appearance: button;
       appearance: button;
}

::-moz-focus-inner {
  padding: 0;
  border-style: none;
}

input[type='date'],
input[type='time'],
input[type='datetime-local'],
input[type='month'] {
  -webkit-appearance: textfield;
  -moz-appearance: textfield;
       appearance: textfield;
}

textarea {
  overflow: auto;
  resize: vertical;
}

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

progress {
  vertical-align: baseline;
}

::-webkit-datetime-edit {
  overflow: visible;
  line-height: 0;
}

[type='search'] {
  outline-offset: -2px;
  -webkit-appearance: textfield;
  -moz-appearance: textfield;
       appearance: textfield;
}

::-webkit-search-decoration {
  -webkit-appearance: none;
}

::-webkit-color-swatch-wrapper {
  padding: 0;
}

::-webkit-file-upload-button {
  font: inherit;
  -webkit-appearance: button;
}

output {
  display: inline-block;
}

summary {
  display: list-item;
  cursor: pointer;
}

template {
  display: none;
}

main {
  display: block;
}

[hidden] {
  display: none !important;
}

/*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);
```
*/
.button {
  margin: 30px 0;
  text-align: center;
}

.button__anchor {
  display: inline-block;
  align-items: center;
  text-decoration: none;
  font-weight: bold;
  box-sizing: border-box;
  padding: 12px 32px;
  background: #1251b5;
  border: 1px solid #1251b5;
  color: #fff;
  transition: background 1s;
  font-family: var(--ff-regular);
  font-size: 16px;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: var(--ls-default);
  position: relative;
  cursor: pointer;
}

.button__anchor:hover, .button__anchor:focus {
  color: #fff;
  background: #0d3c87;
  border: 1px solid #0d3c87;
  text-decoration: none;
}

.button__anchor:hover::after, .button__anchor:focus::after {
  -webkit-transform: translateX(5px);
          transform: translateX(5px);
}

.button__anchor::after {
  transition: -webkit-transform .3s ease-out;
  transition: transform .3s ease-out;
  transition: transform .3s ease-out, -webkit-transform .3s ease-out;
}

.button__anchor:disabled, .button__anchor.disabled {
  background: #6fa1f1;
  border: 1px solid #6fa1f1;
  cursor: not-allowed;
}

.button--primary .button__iconImg, .button:not(.button--secondary) .button__iconImg {
  width: var(--v-icon-size);
  height: var(--v-icon-size);
  -webkit-filter: brightness(5);
          filter: brightness(5);
}

.button--secondary .button__anchor {
  display: inline-block;
  align-items: center;
  text-decoration: none;
  font-weight: bold;
  box-sizing: border-box;
  padding: 12px 32px;
  background: #fff;
  border: 1px solid #4d4e53;
  color: #4d4e53;
  transition: background 1s;
}

.button--secondary .button__anchor:hover, .button--secondary .button__anchor:focus {
  background: #e6e6e6;
  text-decoration: none;
  color: #4d4e53;
}

.button--secondary .button__anchor:hover::after, .button--secondary .button__anchor:focus::after {
  -webkit-transform: translateX(5px);
          transform: translateX(5px);
}

.button--secondary .button__anchor::after {
  transition: -webkit-transform .3s ease-out;
  transition: transform .3s ease-out;
  transition: transform .3s ease-out, -webkit-transform .3s ease-out;
}

.button--secondary .button__anchor:disabled, .button--secondary .button__anchor.disabled {
  border: 1px solid #999aa0;
  color: #999aa0;
}

.button--secondary .button--noIcon:after {
  content: '';
  display: inline-block;
  background: url("../../../../../../../content/dam/volvo-media/list-icons/chevron-right.svg#chevron-right-icon-w24-view");
  width: var(--v-icon-size);
  height: var(--v-icon-size);
  -webkit-filter: saturate(0%) brightness(0%) invert(33.92157%) opacity(1);
          filter: saturate(0%) brightness(0%) invert(33.92157%) opacity(1);
  filter: url('data:image/svg+xml;utf8,    <svg xmlns="http://www.w3.org/2000/svg">    <filter id="recolor" color-interpolation-filters="sRGB">        <feColorMatrix type="matrix" values="         0 0 0 0 0.32549         0 0 0 0 0.33725         0 0 0 0 0.35294         0 0 0 1 0         "/>    </filter>    </svg>    #recolor');
  pointer-events: none;
}

@media (min-width: 1200px) {
  .button--secondary .button--noIcon:after {
    background: url("../../../../../../../content/dam/volvo-media/list-icons/chevron-right.svg#chevron-right-icon-w16-view");
  }
}

.button--secondary .button--noIcon[target=_blank]:after {
  content: '';
  display: inline-block;
  background: url("../../../../../../../content/dam/volvo-media/list-icons/link-external.svg#link-external-icon-w24-view");
  width: var(--v-icon-size);
  height: var(--v-icon-size);
  -webkit-filter: saturate(0%) brightness(0%) invert(33.92157%) opacity(1);
          filter: saturate(0%) brightness(0%) invert(33.92157%) opacity(1);
  filter: url('data:image/svg+xml;utf8,    <svg xmlns="http://www.w3.org/2000/svg">    <filter id="recolor" color-interpolation-filters="sRGB">        <feColorMatrix type="matrix" values="         0 0 0 0 0.32549         0 0 0 0 0.33725         0 0 0 0 0.35294         0 0 0 1 0         "/>    </filter>    </svg>    #recolor');
  pointer-events: none;
}

@media (min-width: 1200px) {
  .button--secondary .button--noIcon[target=_blank]:after {
    background: url("../../../../../../../content/dam/volvo-media/list-icons/link-external.svg#link-external-icon-w16-view");
  }
}

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

.button--noIcon:after {
  content: '';
  display: inline-block;
  background: url("../../../../../../../content/dam/volvo-media/list-icons/chevron-right.svg#chevron-right-icon-w24-view");
  width: var(--v-icon-size);
  height: var(--v-icon-size);
  -webkit-filter: saturate(0%) brightness(0%) invert(100%) opacity(1);
          filter: saturate(0%) brightness(0%) invert(100%) opacity(1);
  filter: url('data:image/svg+xml;utf8,    <svg xmlns="http://www.w3.org/2000/svg">    <filter id="recolor" color-interpolation-filters="sRGB">        <feColorMatrix type="matrix" values="         0 0 0 0 1         0 0 0 0 1         0 0 0 0 1         0 0 0 1 0         "/>    </filter>    </svg>    #recolor');
  pointer-events: none;
}

@media (min-width: 1200px) {
  .button--noIcon:after {
    background: url("../../../../../../../content/dam/volvo-media/list-icons/chevron-right.svg#chevron-right-icon-w16-view");
  }
}

.button--noIcon::after {
  margin-left: 10px;
  top: -2px;
  position: relative;
  vertical-align: middle;
  width: 24px !important;
  height: 24px !important;
}

.button--noIcon[target=_blank]:after {
  content: '';
  display: inline-block;
  background: url("../../../../../../../content/dam/volvo-media/list-icons/link-external.svg#link-external-icon-w24-view");
  width: var(--v-icon-size);
  height: var(--v-icon-size);
  -webkit-filter: saturate(0%) brightness(0%) invert(100%) opacity(1);
          filter: saturate(0%) brightness(0%) invert(100%) opacity(1);
  filter: url('data:image/svg+xml;utf8,    <svg xmlns="http://www.w3.org/2000/svg">    <filter id="recolor" color-interpolation-filters="sRGB">        <feColorMatrix type="matrix" values="         0 0 0 0 1         0 0 0 0 1         0 0 0 0 1         0 0 0 1 0         "/>    </filter>    </svg>    #recolor');
  pointer-events: none;
}

@media (min-width: 1200px) {
  .button--noIcon[target=_blank]:after {
    background: url("../../../../../../../content/dam/volvo-media/list-icons/link-external.svg#link-external-icon-w16-view");
  }
}

.button__text {
  vertical-align: middle;
}

.button__icon {
  display: flex;
  margin-left: 5px;
  width: var(--v-icon-size);
  height: var(--v-icon-size);
}

.button__icon .button__iconImg {
  width: var(--v-icon-size);
  height: var(--v-icon-size);
}

.button--disabled .button__anchor {
  background-color: #bdbdbd;
  border-color: #bdbdbd;
  pointer-events: none;
}

.button--full .button__anchor {
  display: block;
  text-align: center;
}

.button--small {
  display: inline-block;
}

.button--small .button__anchor {
  padding: 6px 16px;
}
/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3RhcmdldC92YXVsdC13b3JrL2pjcl9yb290L2FwcHMvdm9sdm8vY2xpZW50bGlicy92b2x2by1jb20vcHVibGlzaC9jb21wb25lbnRzL2NvbnRlbnQvYnV0dG9uL2J1dHRvbi5idW5kbGUuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGlCQUFpQjtBQUNqQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQWtDRTtBQUNGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFpQ0U7QUFDRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQTZERTtBQUNGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBd0NFO0FBQ0Y7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQXdCRTtBQUNGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUF5REU7QUFDRjs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFpQkU7QUFDRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQWtDRTtBQUNGOzs7Ozs7Ozs7O0VBVUU7QUFDRjs7O0VBR0U7QUFDRjs7O0VBR0U7QUFDRix1QkFBdUI7QUFDdkI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBNkJFO0FBQ0YsdUJBQXVCO0FBQ3ZCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQWdDRTtBQUNGO3VFQUN1RTtBQUN2RTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQXdDRTtBQUNGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQTZCRTtBQUNGO0VBQ0Usc0JBQXNCO0VBQ3RCLFlBQVk7RUFDWixhQUFhO0NBQ2Q7O0FBRUQ7Ozs7Ozs7Ozs7OztFQVlFO0FBQ0Y7Ozs7Ozs7Ozs7Ozs7O0VBY0U7QUFD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O0VBQzFCLDJCQUEyQjtDQUM1Qjs7QUFFRDtFQUNFLDBCQUEwQjtFQUMxQixzQkFBc0I7RUFDdEIscUJBQXFCO0NBQ3RCOztBQUVEO0VBQ0UsZUFBZTtFQUNmLG1CQUFtQjtDQUNwQjs7QUFFRDtFQUNFLHNCQUFzQjtDQUN2Qjs7QUFFRDtFQUNFLGtCQUFrQjtDQUNuQiIsImZpbGUiOiIuLi90YXJnZXQvdmF1bHQtd29yay9qY3Jfcm9vdC9hcHBzL3ZvbHZvL2NsaWVudGxpYnMvdm9sdm8tY29tL3B1Ymxpc2gvY29tcG9uZW50cy9jb250ZW50L2J1dHRvbi9idXR0b24uYnVuZGxlLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIkBjaGFyc2V0IFwiVVRGLThcIjtcbi8qZG9jXG4tLS1cbnRpdGxlOiBQaXhlbCB0byBlbVxubmFtZTogbm4tcHgtdG8tZW1cbmNhdGVnb3J5OiBmdW5jdGlvbnNcbi0tLVxuXG5DYWxjdWxhdGUgdGhlIGVtIHdpdGggYSBnaXZlbiBwaXhlbCB3aXRoIHRoZSBnaXZlbiBiYXNlIGZvbnQgc2l6ZVxuSWYgeW91IGRvbid0IHNldCBhICRiYXNlIHRoZSAkYmFzZS1mb250LXNpemUgaXMgdXNlZCBhcyB0aGUgY29udGV4dFxuXG5cbiMjIExpdmUgVGVtcGxhdGUgYWJicmV2aWF0aW9uc1xuLS0tXG4tcHR1XG5cblxuIyMgUGFyYW1ldGVyc1xuLS0tXG5AcGFyYW1ldGVyICR2YWx1ZSA9IHBpeGVsIGJhc2VkIG51bWJlciAod2l0aG91dCB1bml0KVxuQHBhcmFtZXRlciAkYmFzZSA9IHBpeGVsIGJhc2VkIG51bWJlciAod2l0aG91dCB1bml0KVxuXG5cbiMjIERlcGVuZGVuY2llc1xuLS0tXG5ubi1zdHJpcC11bml0XG5cblxuIyMgRXhhbXBsZVxuLS0tXG5gYGBodG1sX2V4YW1wbGVcbm5uLXB4LXRvLWVtKDUpIC8vIE91dHB1dDogMC4zMTI1ZW1cbm5uLXB4LXRvLWVtKDUsIDEwKSAvLyBPdXRwdXQ6IDAuNWVtXG5ubi1weC10by1lbSg1LCAyMCkgLy8gT3V0cHV0OiAwLjI1ZW1cbmBgYFxuKi9cbi8qZG9jXG4tLS1cbnRpdGxlOiBQaXhlbCB0byByZW1cbm5hbWU6IG5uLXB4LXRvLXJlbVxuY2F0ZWdvcnk6IGZ1bmN0aW9uc1xuLS0tXG5cbkNhbGN1bGF0ZSB0aGUgcmVtIHdpdGggYSBnaXZlbiBwaXhlbCB3aXRoIHRoZSBnaXZlbiBiYXNlIGZvbnQgc2l6ZVxuXG5JbjogIDVweFxuT3V0OiAwLjMxMjVyZW1cblxuXG4jIyBMaXZlIFRlbXBsYXRlIGFiYnJldmlhdGlvbnNcbi0tLVxuLXJlbVxuXG5cbiMjIFBhcmFtZXRlcnNcbi0tLVxuQHBhcmFtZXRlciAkdmFsdWUgPSBwaXhlbCBiYXNlZCBudW1iZXIgKHdpdGhvdXQgdW5pdClcblxuXG4jIyBEZXBlbmRlbmNpZXNcbi0tLVxubm4tc3RyaXAtdW5pdFxuXG4jIyBFeGFtcGxlXG4tLS1cbmBgYGh0bWxfZXhhbXBsZVxubm4tcHgtdG8tcmVtKDUpIC8vIE91dHB1dCAwLjMxMjVyZW1cbmBgYFxuXG4qL1xuLypkb2Ncbi0tLVxudGl0bGU6IFBpeGVsIHRvIHVuaXRcbm5hbWU6IHB4LXRvLXVuaXRcbmNhdGVnb3J5OiBtaXhpbnNcbi0tLVxuXG5TZXQgYSBwcm9wZXJ0eSBhbmQgdmFsdWUgKHBpeGVsIGJhc2VkIHdpdGhvdXQgdW5pdClcblxuQ2FsY3VsYXRlcyByZW0gLyBlbSAvICUgZnJvbSBnaXZlbiBwaXhlbCBhbmQgYmFzZSAoZGVmYXVsdCBiYXNlIGlzIHRoZVxuYmFzZS1mb250LXNpemUsIDE2cHgpXG5JZiBydGwgaXMgdHJ1ZSwgdGhpcyBtaXhpbiBoYW5kbGVzIGFsbCB0aGUgZGlyZWN0aW9uIHN0dWZmOlxuLSBTd2l0Y2hpbmcgdGhlIHZhbHVlcywgd2hlbiB3ZSBoYXZlIGV4YWN0bHkgNCB2YWx1ZXNcbi0gU3dpdGNoaW5nIGxlZnQgYW5kIHJpZ2h0IGluIHByb3BlcnRpZXMgKHBhZGRpbmcgYW5kIG1hcmdpbilcblxuXG4jIyBMaXZlIFRlbXBsYXRlIGFiYnJldmlhdGlvbnNcbi0tLVxuLXB0dSAoZm9yIGVtIG9yICUgdG8gcGl4ZWwgLSB3aXRoIGJhc2UgcGFyYW1ldGVyKVxuLXJlbSAoZm9yIHJlbSB0byBwaXhlbCAtIHdpdGhvdXQgYmFzZSBwYXJhbWV0ZXIpXG5cblxuIyMgUGFyYW1ldGVyc1xuLS0tXG5AcGFyYW1ldGVyICRwcm9wZXJ0eSA9IHBhZGRpbmcgfCBtYXJnaW4gfCBmb250LXNpemUgfCB3aWR0aCB8IGhlaWdodFxuQHBhcmFtZXRlciAkdmFsdWUgPSBQaXhlbCBiYXNlZCBudW1iZXIgLSBhZGQgcHggdG8ga2VlcCB0aGUgcHggZm9yIGEgdmFsdWVcbkBwYXJhbWV0ZXIgJGJhc2UgPSBweCBiYXNlZCBudW1iZXIsIERlZmF1bHQ6IDE2cHhcbkBwYXJhbWV0ZXIgJHVuaXQgPSBTZXQgdW5pdDogcHggfCBlbSB8IHJlbSB8IHBlcmNlbnRcblxuXG4jIyBEZXBlbmRlbmNpZXNcbi0tLVxuYWJzdHJhY3QvZnVuY3Rpb25zL3N3YXAtbGVmdC1yaWdodFxuYWJzdHJhY3QvZnVuY3Rpb25zL3N0cmlwLXVuaXRcblxuXG4jIyBFeGFtcGxlXG4tLS1cblxuYGBgaHRtbF9leGFtcGxlXG5AaW5jbHVkZSBubi1weC10by11bml0KHBhZGRpbmcsIDAgMTBweCAyMCAwKTsgPT4gcGFkZGluZzogMCAxMHB4IDEuMjVyZW0gMDtcbkBpbmNsdWRlIG5uLXB4LXRvLXVuaXQocGFkZGluZywgMCAxMCAyMCAwKTsgPT4gcGFkZGluZzogMCAwLjYyNXJlbSAxLjI1cmVtIDA7XG5AaW5jbHVkZSBubi1weC10by11bml0KHBhZGRpbmctbGVmdCwgMTApO1xuQGluY2x1ZGUgbm4tcHgtdG8tdW5pdChwYWRkaW5nLXJpZ2h0LCAxMCk7XG5AaW5jbHVkZSBubi1weC10by11bml0KG1hcmdpbiwgMCAxMCAyMCAwKTtcbkBpbmNsdWRlIG5uLXB4LXRvLXVuaXQobWFyZ2luLWxlZnQsIDEwKTtcbkBpbmNsdWRlIG5uLXB4LXRvLXVuaXQobWFyZ2luLXJpZ2h0LCAxMCk7XG5AaW5jbHVkZSBubi1weC10by11bml0KGZvbnQtc2l6ZSwgMjApO1xuQGluY2x1ZGUgbm4tcHgtdG8tdW5pdCh3aWR0aCwgMTAwKTtcbkBpbmNsdWRlIG5uLXB4LXRvLXVuaXQobWluLXdpZHRoLCAxMDApO1xuQGluY2x1ZGUgbm4tcHgtdG8tdW5pdChtYW5uLXdpZHRoLCAxMDApO1xuQGluY2x1ZGUgbm4tcHgtdG8tdW5pdChoZWlnaHQsIDEwMCk7XG5AaW5jbHVkZSBubi1weC10by11bml0KG1pbi1oZWlnaHQsIDEwMCk7XG5AaW5jbHVkZSBubi1weC10by11bml0KG1hbm4taGVpZ2h0LCAxMDApO1xuYGBgXG5cblxuIyMgU291cmNlXG4tLS1cbmh0dHA6Ly9jc3MtdHJpY2tzLmNvbS9zbmlwcGV0cy9jc3MvbGVzcy1taXhpbi1mb3ItcmVtLWZvbnQtc2l6aW5nL1xuXG4qL1xuLypkb2Ncbi0tLVxudGl0bGU6IFBpeGVsIHRvIHVuaXRsZXNzXG5uYW1lOiBubi1weC10by11bml0bGVzc1xuY2F0ZWdvcnk6IGZ1bmN0aW9uc1xuLS0tXG5cblRoaXMgbWFrZXMgdGhlIHNhbWUgY2FsY3VsYXRpb24gYXMgcHggdG8gZW0uIEJ1dCBpdCBkb24ndCBwcmludCBvdXQgdGhlIHVuaXQuXG5cblVzZSB0aGlzIGZvciBsaW5lLWhlaWdodHMuXG5cblxuIyMgTGl2ZSBUZW1wbGF0ZSBhYmJyZXZpYXRpb25zXG4tLS1cblxuXG5cbiMjIFBhcmFtZXRlcnNcbi0tLVxuQHBhcmFtZXRlciAkdmFsdWUgPSBwaXhlbCBiYXNlZCBudW1iZXIgKHdpdGhvdXQgdW5pdClcbkBwYXJhbWV0ZXIgJGJhc2UgPSBwaXhlbCBiYXNlZCBudW1iZXIgKHdpdGhvdXQgdW5pdClcblxuXG4jIyBEZXBlbmRlbmNpZXNcbi0tLVxuXG5cblxuIyMgRXhhbXBsZVxuLS0tXG5cbmBgYGh0bWxfZXhhbXBsZVxubGluZS1oZWlnaHQ6IG5uLXB4LXRvLXVuaXRsZXNzKDUpIC8vIE91dHB1dDogMC4zMTI1XG5gYGBcblxuXG4jIyBTb3VyY2Vcbi0tLVxuXG5cbiovXG4vKmRvY1xuLS0tXG50aXRsZTogU3RyaXAgdW5pdFxubmFtZTogbm4tc3RyaXAtdW5pdFxuY2F0ZWdvcnk6IGZ1bmN0aW9uc1xuLS0tXG5cblN0cmlwcyBvZiB0aGUgdW5pdCBvZiBhIG51bWJlclxuXG5cbiMjIFBhcmFtZXRlcnNcbi0tLVxuQHBhcmFtZXRlciAkbnVtID0gbnVtYmVyIHdpdGggdW5pdCAoNXB4LCA1ZW0sIDVyZW0pXG5cblxuIyMgRXhhbXBsZVxuLS0tXG5cbmBgYGh0bWxfZXhhbXBsZVxubm4tc3RyaXAtdW5pdCg1cHgpIC8vT3V0cHV0OiA1XG5ubi1zdHJpcC11bml0KDEwZW0pIC8vIE91dHB1dDogMTBcbm5uLXN0cmlwLXVuaXQoMTVyZW0pIC8vIE91dHB1dDogMTVcbmBgYFxuXG4qL1xuLypkb2Ncbi0tLVxudGl0bGU6IHotaW5kZXhcbm5hbWU6IG5uLXotaW5kZXhcbmNhdGVnb3J5OiBmdW5jdGlvbnNcbi0tLVxuIFxuQmVjYXVzZSB6LWluZGljZXMgY2FuIGdldCB0cmlja3kgd2UgbWFuYWdlIHRoZW0gaW4gdGhlIHRoZW1lLnNjc3MgZ2xvYmFsbHkuXG5cbkFsd2F5cyB1c2UgdGhpcyBtaXhpbiB0byBzZXQgc2V0IGEgei1pbmRleC5cbiAgXG5SZWFkIHRoZSBCZXN0IFByYWN0aWNlIHRvIGdldCBhbiBmdWxsIGRvY3VtZW50YXRpb246XG5odHRwczovL3Byb2plY3RzLm5ldGNlbnRyaWMuYml6L3dpa2kvZGlzcGxheS9GUk9OVEVORC9Ib3crdG8rc2V0K2Erei1pbmRleFxuIFxuIFxuIyMgTGl2ZSBUZW1wbGF0ZSBhYmJyZXZpYXRpb25zXG4tLS1cbi16XG4gXG4gXG4jIyBQYXJhbWV0ZXJzXG4tLS1cbkBwYXJhbWV0ZXIgJGVsZW1lbnQgPSBOYW1lIG9mIHRoZSBlbGVtZW50IChub3JtYWxseSB0aGlzIHdpbGwgYmUgdGhlIG1vZHVsZSBuYW1lIGZvciB0aGUgbWFpbiBzdGFjaylcbkBwYXJhbWV0ZXIgJGxpc3QgPSBOYW1lIG9mIHRoZSBsaXN0IChkZWZhdWx0ICR6LWluZGljZXMpLiBNdXN0IGJlIG9ubHkgc2V0IGZvciBzdGFjayBjb250ZXh0XG5AcGFyYW1ldGVyICRtaW4gPSBTZXQgYSBtaW5pbXVtIHotaW5kZXggd2hpY2ggd2lsbCBiZSBhZGRlZCB0byB0aGUgbGlzdC5cblxuIFxuIyMgRGVwZW5kZW5jaWVzXG4tLS1cbiR6LWluZGljZXMgdmFyaWFibGUgaW4gdGhlIHRoZW1lLnNjc3NcblxuXG4jIyBFeGFtcGxlXG4tLS1cbiAgXG5gYGBodG1sX2V4YW1wbGVcblxuLy8gSW4gdGhlIFNBU1MgdGhlbWUgZmlsZVxuXG4kei1pbmRpY2VzOiBzbGlkZXIsIG1vZGFsLCBkaWFsb2csIG5hdmlnYXRpb247XG5cblxuLy8gSW4gdGhlIFNBU1MgbW9kdWxlIGZpbGVcblxuLm1vZGFsIHtcbiAgICAmX19iYXNlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB6LWluZGV4OiBubi16LWluZGV4KG1vZGFsKTtcbiAgICB9XG59XG5gYGBcbiBcblxuIyMgU291cmNlXG4tLS1cbmh0dHA6Ly93d3cuc21hc2hpbmdtYWdhemluZS5jb20vMjAxNC8wNi8xMi9zYXNzeS16LWluZGV4LW1hbmFnZW1lbnQtZm9yLWNvbXBsZXgtbGF5b3V0cy9cblxuKi9cbi8qIGRvY1xuLS0tXG50aXRsZTogcmVtb3ZlIGV2ZXJ5IHVuaXRcbm5hbWU6IHN0cmlwLXVuaXRcbmNhdGVnb3J5OiBmdW5jdGlvbnNcbi0tLVxucmVtb3ZlIGFsbCB1bml0c1xuXG4jIyBQYXJhbWV0ZXJzXG4tLS1cbkBwYXJhbWV0ZXIgJG51bWJlciA9IG51bWJlciB3aXRoIHVuaXRcblxuIyMgRXhhbXBsZVxuLS0tXG5gYGBodG1sX2V4YW1wbGVcbnN0cmlwLXVuaXQoNXB4KSAvLyBPdXRwdXQ6IDVcbmBgYFxuKi9cbi8qZG9jXG4tLS1cbnRpdGxlOiBTd2FwIGxlZnQgcmlnaHQgdmFsdWVzXG5uYW1lOiBubi1ydGxcbmNhdGVnb3J5OiBmdW5jdGlvbnNcbi0tLVxuXG5Td2FwIHRoZSBuYW1lcyByaWdodCBhbmQgbGVmdCB3aGVuICRydGwgaXMgc2V0IHRvIHRydWUuXG5JZiB0aGUgdmFsdWUgaXMgbm90IHJpZ2h0IG9yIGxlZnQgaXQgcmV0dXJucyB0aGUgb3JpZ2luYWwgdmFsdWUuXG5cbkluOiAgcmlnaHRcbk91dDogbGVmdCAoaW4gcnRsKSwgcmlnaHQgKGluIGx0cilcblxuXG4jIyBMaXZlIFRlbXBsYXRlIGFiYnJldmlhdGlvbnNcbi0tLVxuXG5cblxuIyMgUGFyYW1ldGVyc1xuLS0tXG5AcGFyYW1ldGVyICRvcmlnaW4gPSByaWdodCB8IGxlZnRcblxuXG4jIyBFeGFtcGxlXG4tLS1cblxuYGBgaHRtbF9leGFtcGxlXG5ubi1ydGwobGVmdCk6IDEwcHg7XG5ubi1ydGwocGFkZGluZy1yaWdodCk6IDMwcHg7XG5ubi1ydGwoMCAxcHggOHB4IDEycHgpIC8vIDAgMTJweCA4cHggMXB4XG5gYGBcblxuXG4qL1xuLypcbiAgICBUaGlzIG1peGluIGNvbnZlcnRzIGFueSB1bml0bGVzcyBudW1iZXIgKGZvciBleGFtcGxlIDQwKSB0byB0aGUgY29ycmVjdCB1bml0LCBhY2NvcmRpbmcgdG8gdGhlIGdpdmVuIGF4aXMuXG5cbiAgICBQYXJhbWV0ZXJzOlxuICAgIC0gJHZhbHVlOiB1bml0bGVzcyBudW1iZXIgdG8gYmUgY29udmVydGVkLiBBIHVuaXQgaW4gJHZhbHVlIHdpbGwgY29ycmVzcG9uZCB0byBhIHB4IGluIHRoZSBicm93c2VyLFxuICAgICAgICBubyBtYXR0ZXIgaWYgaXQncyBvdXRwdXQgYXMgcHggb3IgcmVtXG5cbiAgICBSZXR1cm5zXG4gICAgLSBIb3Jpem9udGFsOiB3aWxsIGNvbnZlcnQgdGhlIG51bWJlciB0byBwaXhlbHMgKDQwcHgpXG4gICAgLSBWZXJ0aWNhbDogd2lsbCBjb252ZXJ0IHRoZSBudW1iZXIgdG8gcmVtIChpZiByZW0gPT09IDE2cHgsIHRoZW4gNDAgd2lsbCBiZSBjb252ZXJ0ZWQgdG8gMi41IHJlbSlcbiovXG4vKlxuICAgIENvbnZlcnRzIGEgdW5pdGxlc3MgbnVtYmVyIHRvIHRoZSBjb3JyZXNwb25kaW5nIHVuaXQgb24gdGhlIGhvcml6b250YWwgYXhpcy5cbiAgICBCeSBkZWZhdWx0IHdpbGwgY29udmVydCB0aGUgdmFsdWUgdG8gcHguXG4qL1xuLypcbiAgICBDb252ZXJ0cyBhIHVuaXRsZXNzIG51bWJlciB0byB0aGUgY29ycmVzcG9uZGluZyB1bml0IG9uIHRoZSB2ZXJ0aWNhbCBheGlzLlxuICAgIEJ5IGRlZmF1bHQgd2lsbCBjb252ZXJ0IHRoZSB2YWx1ZSB0byByZW0uXG4qL1xuLyogc3R5bGVsaW50LWRpc2FibGUgKi9cbi8qIGRvY1xuLS0tXG50aXRsZTogU3dhcCBsZWZ0IHJpZ2h0IHZhbHVlc1xubmFtZTogc3dhcC1sZWZ0LXJpZ2h0LXZhbHVlc1xuY2F0ZWdvcnk6IGZ1bmN0aW9uc1xuLS0tXG5cblN3YXAgdGhlIHZhbHVlcyBmb3IgcmlnaHQgYW5kIGxlZnQgd2hlbiAkcnRsIGlzIHNldCB0byB0cnVlOlxuXG5JbjogIDAgNXB4IDhweCAxMnB4XG5PdXQ6IDAgMTJweCA4cHggNXB4IChpbiBydGwpXG5cbiMjIFBhcmFtZXRlcnNcbi0tLVxuQHBhcmFtZXRlciAkdmFsdWVzID0gNCBudW1iZXJzICh3b3JrcyB3aXRoIGFsbCB1bml0cylcblxuIyMgRXhhbXBsZVxuLS0tXG5cbmBgYGh0bWxfZXhhbXBsZVxuc3dhcC1sZWZ0LXJpZ2h0LXZhbHVlcygwIDFweCA4cHggMTJweCkgLy8gMCAxMnB4IDhweCAxcHhcbnN3YXAtbGVmdC1yaWdodC12YWx1ZXMoMCAxZW0gOGVtIDEyZW0pIC8vIDAgMTJlbSA4ZW0gMWVtXG53YXAtbGVmdC1yaWdodC12YWx1ZXMoMCAxcmVtIDhyZW0gMTJyZW0pIC8vIDAgMTJyZW0gOHJlbSAxcmVtXG5gYGBcblxuIyMgU291cmNlXG4tLS1cbmh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMTQxOTkzMjMvcmlnaHQtdG8tbGVmdC1ydGwtc3VwcG9ydC1pbi1zYXNzLXByb2plY3RcblxuKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlICovXG4vKiBkb2Ncbi0tLVxudGl0bGU6IFN3YXAgbGVmdCByaWdodCBuYW1lc1xubmFtZTogc3dhcC1sZWZ0LXJpZ2h0LW5hbWVzXG5jYXRlZ29yeTogZnVuY3Rpb25zXG4tLS1cblxuU3dhcCB0aGUgbmFtZXMgcmlnaHQgYW5kIGxlZnQgd2hlbiAkcnRsIGlzIHNldCB0byB0cnVlLlxuSWYgdGhlIHZhbHVlIGlzIG5vdCByaWdodCBvciBsZWZ0IGl0IHJldHVybnMgdGhlIG9yaWdpbmFsIHZhbHVlLlxuXG5JbjogIHJpZ2h0XG5PdXQ6IGxlZnQgKGluIHJ0bCksIHJpZ2h0IChpbiBsdHIpXG5cbiMjIExpdmUgVGVtcGxhdGUgYWJicmV2aWF0aW9uc1xuLS0tXG5cbiMjIFBhcmFtZXRlcnNcbi0tLVxuQHBhcmFtZXRlciAkb3JpZ2luID0gcmlnaHQgfCBsZWZ0XG5cbiMjIEV4YW1wbGVcbi0tLVxuXG5gYGBodG1sX2V4YW1wbGVcbnN3YXAtbGVmdC1yaWdodC1uYW1lKGxlZnQpXG5zd2FwLWxlZnQtcmlnaHQtbmFtZShyaWdodClcbmBgYFxuXG4jIyBTb3VyY2Vcbi0tLVxuaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8xNDE5OTMyMy9yaWdodC10by1sZWZ0LXJ0bC1zdXBwb3J0LWluLXNhc3MtcHJvamVjdFxuXG4qL1xuLyogIExpc3Qgb2YgQ1NTIHByb3BlcnRpZXMgdGhhdCB3aWxsIGFsd2F5cyBiZSBvdXRwdXQgYXQgbGVhc3QgYXMgMiBkaWZmZXJlbnQgdmFsdWVzXG4gICAgaW4gb3JkZXIgdG8gYmUgYWJsZSB0byBjb252ZXJ0IGVhY2ggb25lIHRvIHRoZSBjb3JyZWN0IGF4aXMgdW5pdCAqL1xuLypcbiAgICBNaXhpbiBmb3IgYXV0b21hdGljYWxseSBoYW5kbGluZyBzcGFjaW5ncyBhcm91bmQvYmV0d2VlbiBlbGVtZW50cy5cblxuICAgIFRoaXMgbWl4aW4gd2lsbCBhdXRvbWF0aWNhbGx5IGludmVydCB0aGUgbGVmL3JpZ2h0IGRpcmVjdGlvbnMgaW4gUlRMIGxhbmd1YWdlcy5cbiAgICBBbHNvLCB0aGUgdW5pdGxlc3MgdmFsdWVzIHdpbGwgYmUgY29udmVydGVkIHRvIHRoZSBwcm9wZXIgdW5pdCBhY2NvcmRpbmcgdG8gdGhlIGF4aXNcblxuICAgIFBhcmFtZXRlcnM6XG4gICAgLSAkcHJvcGVydHktbmFtZTogbmFtZSBvZiB0aGUgQ1NTIHByb3BlcnR5IHRoYXQgc2hvdWxkIGJlIG91dHB1dC4gU3VwcG9ydGVkIHByb3BlcnRpZXMgYXJlOlxuICAgICAgICBtYXJnaW4sIG1hcmdpbi10b3AsIG1hcmdpbi1yaWdodCwgbWFyZ2luLWJvdHRvbSwgbWFyZ2luLWxlZnRcbiAgICAgICAgcGFkZGluZywgcGFkZGluZy10b3AsIHBhZGRpbmctcmlnaHQsIHBhZGRpbmctYm90dG9tLCBwYWRkaW5nLWxlZnRcbiAgICAgICAgd2lkdGgsIGhlaWdodCwgbWluLXdpZHRoLCBtYXgtd2lkdGgsIG1pbi1oZWlnaHQsIG1pbi1oZWlnaHRcbiAgICAtICR2YWx1ZTogdmFsdWUgdGhhdCB3aWxsIGJlIG91dHB1dCBhcyBwYXJ0IG9mIHRoZSBnaXZlbiBwcm9wZXJ0eS4gU3VwcG9ydGVkIHZhbHVlcyBhcmU6XG4gICAgICAgIFVuaXRsZXNzIG51bWJlciAoNDApOiB0aGlzIHNob3VsZCBiZSB1c2VkIG1vc3Qgb2YgdGhlIHRpbWVzLiBJdCB3aWxsIGF1dG9tYXRpY2FsbHkgYmUgY29udmVydGVkXG4gICAgICAgICAgICB0byB0aGUgY29ycmVjdCB1bml0IGRlcGVuZGluZyBvbiB0aGUgYXhpcyB3aGVyZSBpdCdzIHVzZWQgKGhvcml6b250YWwgYXhpcyA9PiBweCwgdmVydGljYWwgYXhpcyA9PiByZW0pLlxuICAgICAgICAgICAgRWFjaCB1bml0IGluICR2YWx1ZSB3aWxsIGNvcnJlc3BvbmQgdG8gYSBweCBpbiB0aGUgYnJvd3Nlciwgbm8gbWF0dGVyIHRvIHdoaWNoIHVuaXQgaXQgd2lsbCBiZSBjb252ZXJ0ZWQuXG4gICAgICAgIE51bWJlciB3aXRoIHVuaXQgKDQwcHgsIDQwJS4uLik6IHRoZSBudW1iZXIgYW5kIHRoZSB1bml0IHdpbGwgYmUgcHJlc2VydmVkIGFuZCBvbmx5IHRoZSBsZWZ0L3JpZ2h0IGludmVyc2lvblxuICAgICAgICAgICAgd2lsbCBiZSBkb25lIGZvciBSVEwgbGFuZ3VhZ2VzXG4gICAgICAgIExpc3Qgb2YgdmFsdWVzICg0MCAzMCUgMjAgMTApOiBtYXJnaW4gYW5kIHBhZGRpbmcgc2hvcnRoYW5kcyB3aGl0aCBtdWx0aXBsZSB2YWx1ZXMgYXJlIHN1cHBvcnRlZC5cbiAgICAgICAgICAgIFRoZSBsZWZ0L3JpZ2h0IHZhbHVlcyB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgc3dhcHBlZCBpbiBSVEwgYW5kIHRoZSB1bml0bGVzcyBudW1iZXJzIHdpbGwgYmUgY29udmVydGVkXG4gICAgICAgICAgICB0byB0aGUgY29ycmVzcG9uZGluZyB1bml0LiBVbml0bGVzcyBhbmQgbnVtYmVycyB3aXRoIHVuaXRzIGNhbiBiZSBtaXhlZCBpbiB0aGUgc2FtZSBjYWxsLlxuICAgICAgICBVc2luZyBjYWxjKCkgaW4gYW55IG9mIHRoZSBwcmV2aW91cyBleGFtcGxlcyBpcyBzdXBwb3J0ZWQsIGFsdGhvdWdoIG5vIHVuaXQgY29udmVyc2lvbiB3aWxsIGJlIGRvbmVcblxuICMjIEV4YW1wbGVcbi0tLVxuXG5gYGBodG1sX2V4YW1wbGVcbkBpbmNsdWRlIHNwYWNpbmcocGFkZGluZywgMCAxMHB4IDIwIDApOyA9PiBwYWRkaW5nOiAwIDEwcHggMnJlbSAwO1xuQGluY2x1ZGUgc3BhY2luZyhwYWRkaW5nLCAwIDEwIDIwIDApOyA9PiBwYWRkaW5nOiAwIDEwcHggMnJlbSAwO1xuQGluY2x1ZGUgc3BhY2luZyhwYWRkaW5nLWxlZnQsIDEwKTtcbkBpbmNsdWRlIHNwYWNpbmcocGFkZGluZy1yaWdodCwgMTApO1xuQGluY2x1ZGUgc3BhY2luZyhtYXJnaW4sIDAgMTAgMjAgMCk7XG5AaW5jbHVkZSBzcGFjaW5nKG1hcmdpbi1sZWZ0LCAxMCk7XG5AaW5jbHVkZSBzcGFjaW5nKG1hcmdpbi1yaWdodCwgMTApO1xuQGluY2x1ZGUgc3BhY2luZyh3aWR0aCwgMTAwKTtcbkBpbmNsdWRlIHNwYWNpbmcobWluLXdpZHRoLCAxMDApO1xuQGluY2x1ZGUgc3BhY2luZyhtYXgtd2lkdGgsIDEwMCk7XG5AaW5jbHVkZSBzcGFjaW5nKGhlaWdodCwgMTAwKTtcbkBpbmNsdWRlIHNwYWNpbmcobWluLWhlaWdodCwgMTAwKTtcbkBpbmNsdWRlIHNwYWNpbmcobWF4LWhlaWdodCwgMTAwKTtcbmBgYFxuKi9cbi8qZG9jXG4tLS1cbnRpdGxlOiBDbGVhcmZpeFxubmFtZTogY2xlYXJmaXhcbmNhdGVnb3J5OiBtaXhpbnNcbi0tLVxuXG5DbGVhcnMgYWZ0ZXIgZmxvYXRpbmcgZWxlbWVudFxuXG5Vc2UgdGhpcyBtaXhpbiBvbmx5IGluc2lkZSBtZWRpYSBxdWVyaWVzIHdoZXJlIHlvdSBjYW4ndCB1c2UgdGhlXG5hYnN0cmFjdC9leHRlbmRzL3V0aWxzL19jbGVhcmZpeCB2ZXJzaW9uLCB3aGljaCBhZGRzIGxlc3MgY29kZSB0byBjc3NcblxuXG4jIyBMaXZlIFRlbXBsYXRlIGFiYnJldmlhdGlvbnNcbi0tLVxuXG5cblxuIyMgRXhhbXBsZVxuLS0tXG5cbmBgYGh0bWxfZXhhbXBsZVxuQGluY2x1ZGUgY2xlYXJmaXg7XG5gYGBcblxuXG4jIyBTb3VyY2Vcbi0tLVxuaHR0cHM6Ly9jc3MtdHJpY2tzLmNvbS9zbmlwcGV0cy9jc3MvY2xlYXItZml4L1xuKi9cbi5pY29uIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMzJweDtcbiAgaGVpZ2h0OiAzMnB4O1xufVxuXG4vKiBkb2Ncbi0tLVxudGl0bGU6IGZvY3VzIGNvbG9yXG5uYW1lOiBmb2N1cyBjb2xvclxuY2F0ZWdvcnk6IG1peGluc1xuLS0tXG5cbkFkZCBhIGZvY3VzIGNvbG9yIHdoZW4ga2V5Ym9hcmQtZm9jdXMgaXMgYWN0aXZhdGVkXG4jIyBQYXJhbWV0ZXJzXG4tLS1cbkBwYXJhbSAkbnVtYmVyXG5cbiovXG4vKiBkb2Ncbi0tLVxudGl0bGU6IGlnbm9yZS1jb250YWluZXJcbm5hbWU6IGlnbm9yZS1jb250YWluZXJcbmNhdGVnb3J5OiBtaXhpbnNcbi0tLVxuXG5TZXQgZnVsbCBwYWdlIHdpZHRoIGZvciBzb21ldGhpbmcgaW5zaWRlIGEgY29udGFpbmVyXG5cbiMjIFBhcmFtZXRlcnNcbi0tLVxuQHBhcmFtICRjb250YWluZXItc2l6ZVxuQHBhcmFtICRndXR0ZXJcblxuKi9cbi8qIEdlbmVyYXRlcyBhbGwgdGhlIHJ1bGVzIGZvciB0aGUgZ3JpZCBjb2x1bW5zIHVwIHRvIHRoZSBnaXZlbiBhbW91bnQgb2YgY29sdW1uICovXG4vKiBHZW5lcmF0ZXMgYWxsIHRoZSBydWxlcyBmb3IgdGhlIGdyaWQgY29sdW1uIG9mZnNldCB1cCB0byB0aGUgZ2l2ZW4gYW1vdW50IG9mIGNvbHVtbiAqL1xuLyogR2VuZXJhdGVzIGFsbCB0aGUgcnVsZXMgZm9yIHRoZSBncmlkIGFuZCBjb2x1bW5zIGZvciB0aGUgZ2l2ZW4gYnJlYWsgcG9pbnQgYW5kIHRvdGFsIG9mIGNvbHVtbnMgKi9cbi8qIEFQSSBmdW5jdGlvbiB0byBiZSBjYWxsZWQgdG8gZ2VuZXJhdGUgYSBncmlkIGNvbmZpZyAqL1xuLypkb2Ncbi0tLVxudHlwZTogYnV0dG9uIHR5cGVcbnN0YXRlOiBzdGF0ZSBidXR0b25cbi0tLVxuXG5CdXR0b24gc3R5bGVzXG5cblVzZSB0aGlzIG1peGluIGZvciBidXR0b24gc3R5bGVzOiBjb2xvciB0ZXh0LCBiYWNrZ3JvdW5kLCBib3JkZXJcblxuXG4jIyBFeGFtcGxlXG4tLS1cblxuYGBgaHRtbF9leGFtcGxlXG5AaW5jbHVkZSBidXR0b24ocHJpbWFyeSk7XG5gYGBcbiovXG4vKmRvY1xuLS0tXG5saW5lTGltaXQ6IFRoaXMgdmFsdWUgc3BlY2lmaWVzIHRoZSBudW1iZXIgb2YgbGluZXMgYWZ0ZXIgd2hpY2ggdGhlIGNvbnRlbnQgd2lsbCBiZSBjbGFtcGVkLiBJdCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAwLlxuLS0tXG5cblRydW5jYXRlcyB0ZXh0IGF0IGEgc3BlY2lmaWMgbnVtYmVyIG9mIGxpbmVzLlxuXG5Vc2UgdGhpcyBtaXhpbiB0byBoaWRlIGxvbmcgdGV4dC5cblxuIyMgRXhhbXBsZVxuLS0tXG5cbmBgYGh0bWxfZXhhbXBsZVxuQGluY2x1ZGUgbGluZS1jbGFtcCgkbGluZUxpbWl0OiA0KTtcbmBgYFxuKi9cbi8qIHR5cG9ncmFwaHlcbi0tLVxudGl0bGU6IHR5cG9ncmFwaHlcbm5hbWU6IFR5cG9ncmFwaHlcbmNhdGVnb3J5OiBtaXhpbnNcbi0tLVxuXG5BZGRzIGZvbnQgQ1NTIHByb3BlcnRpZXMgYnkgYSBtYXAgcHJvdmlkZWRcblxuIyMgUGFyYW1ldGVyc1xuLS0tXG5AcGFyYW0gJHQtc3R5bGVcbkBwYXJhbSAkaXMtaW1wb3J0YW50OiBmYWxzZVxuXG4qICR0LXN0eWxlIGlzIGV4cGVjdGVkIHRvIGJlIGEgbWFwIHdpdGggJ2RlZmF1bHQnIGFuZCAnYnJlYWtwb2ludFtzXScgc3VibWFwcyB3aXRoIGEgcHJvcGVydHlcbmZvciBldmVyeSBjc3MgcHJvcGVydHkgdG8gYmUgc2V0LlxuKiAkaXMtaW1wb3J0YW50IHBhcmFtZXRlciBhbGxvd3MgdG8gZm9yY2UgdHlwb2dyYXBoeSBwcm9wZXJ0aWVzIHRvIGJlIHNldCBhcyAhaW1wb3J0YW50XG5UcnkgdG8gYXZvaWQgaXRzIHVzZSwgYnV0IGl0IG1pZ2h0IGJlIG5lZWRlZCBmb3Igc2l0dWF0aW9ucyB3aGVyZSBzdHlsZXMgZm9yIGEgY29tcG9uZW50XG5hcmUgdmVyeSBzcGVjaWZpYyBhbmQgdG8gb3ZlcndyaXRlIHRoZSBnZW5lcmljIG9uZXMgaXMgdG9vIGNvbXBsZXggKGlmIHRoZXkgaGF2ZSBhIGxvdCBvZiBzcGVjaWZpY2l0eSlcblxuKi9cbi8qIGRvY1xuLS0tXG50aXRsZTogaGlkZGVuXG5uYW1lOiBoaWRkZW5cbmNhdGVnb3J5OiBtaXhpbnNcbi0tLVxuXG5IaWRlIGZyb20gYm90aCBzY3JlZW5yZWFkZXJzIGFuZCBicm93c2VyczogaDVicC5jb20vdVxuIyMgUGFyYW1ldGVyc1xuLS0tXG5cbiovXG4vKiBkb2Ncbi0tLVxudGl0bGU6IG92ZXJsYXlcbm5hbWU6IG92ZXJsYXlcbmNhdGVnb3J5OiBtaXhpbnNcbi0tLVxuXG5DcmVhdGVzIGFuIG92ZXJsYXkgd2l0aCB0aGUgcHJvdmlkZWQgYmFja2dyb3VuZCBjb2xvclxuIyMgUGFyYW1ldGVyc1xuLS0tXG5AcGFyYW0gJGJnQ29sb3JcblxuKi9cbi8qXG5BbHNvIHBsZWFzZSBmb2xsb3cgdGhpc1xuRG8geW91ciBwcm9qZWN0IGhhdmUgZGlmZXJlbnQgY2hhcnNldCBsYW5ndWFnZXMgdG8gYWNjb3VudCB3aXRoP1xuICAgICAgLSBZZXMgLT4gZm9sbG93IGh0dHBzOi8vcHJvamVjdHMubmV0Y2VudHJpYy5iaXovd2lraS9kaXNwbGF5L0ZST05URU5EL0NTUystK0ZvbnQrTm9ybWFsaXphdGlvblxuICAgICAgLSBObyAtPiBZb3UgY2FuIHN0aWxsIHVzZSBpdCwgdGhlcmUgYXJlIHRvbnMgb2YgYWR2YW50YWdlcywgYnV0IGl0cyBjcmVhdGUgc29tZSBleHRyYSBjc3MgYW5kIGxheW91dCByZW5kZXJpbmdcbiovXG4vKlxuICAqIERlc2lnbiBzcGVjOlxuICAqIGh0dHBzOi8vd3d3LmZpZ21hLmNvbS9maWxlL1NSNHJ2UWxObkNtUE1yUTlXWWFJcXYvYnJhbmNoL1RKcWtGeW1xMDl3ZjhLd21ZMVdOY2ovVm9sdm8tQUVNLURlc2lnbi1zeXN0ZW0/dHlwZT1kZXNpZ24mbm9kZS1pZD03LTI2JnQ9cEFtOTE2VlJpcUNPRDJJMS0wXG4qL1xuLyoqXG4gKiB6LWluZGV4ZXMgZnJvbSBsb3dlciB0byAtPiBoaWdoZXJcbiAqL1xuLypcbiAgKiBEZXNpZ24gc3BlYzpcbiAgKiBodHRwczovL3d3dy5maWdtYS5jb20vZmlsZS9TUjRydlFsTm5DbVBNclE5V1lhSXF2L2JyYW5jaC9USnFrRnltcTA5d2Y4S3dtWTFXTmNqL1ZvbHZvLUFFTS1EZXNpZ24tc3lzdGVtP3R5cGU9ZGVzaWduJm5vZGUtaWQ9Ny0yNiZ0PXBBbTkxNlZSaXFDT0QySTEtMFxuKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJWb2x2b0ljb25zXCI7XG4gIHNyYzogdXJsKFwiL2FwcHMvdm9sdm8vY2xpZW50bGlicy92b2x2by1jb20vcHVibGlzaC9yZXNvdXJjZXMvZm9udHMvdm9sdm9pY29ucy8vVm9sdm9JY29ucy53b2ZmMj92PXt7dmVyc2lvbn19XCIpIGZvcm1hdChcIndvZmZcIiksIHVybChcIi9hcHBzL3ZvbHZvL2NsaWVudGxpYnMvdm9sdm8tY29tL3B1Ymxpc2gvcmVzb3VyY2VzL2ZvbnRzL3ZvbHZvaWNvbnMvL1ZvbHZvSWNvbnMud29mZj92PXt7dmVyc2lvbn19XCIpIGZvcm1hdChcIndvZmZcIik7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1kaXNwbGF5OiBhdXRvO1xufVxuXG4udmk6OmJlZm9yZSB7XG4gIGZvbnQtZmFtaWx5OiBcIlZvbHZvSWNvbnNcIjtcbiAgc3BlYWs6IG5vbmU7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBsaW5lLWhlaWdodDogMTtcbiAgdGV4dC1yZW5kZXJpbmc6IGF1dG87XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG59XG5cbi52aS10d2l0dGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwi7qSoXCI7XG59XG5cbi52aS1waW50ZXJlc3QtcDpiZWZvcmUge1xuICBjb250ZW50OiBcIu6kqVwiO1xufVxuXG4udmktZmFjZWJvb2s6YmVmb3JlIHtcbiAgY29udGVudDogXCLupKpcIjtcbn1cblxuLnZpLWZhY2Vib29rLWY6YmVmb3JlIHtcbiAgY29udGVudDogXCLupKpcIjtcbn1cblxuLnZpLWxpbmtlZGluOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwi7qSrXCI7XG59XG5cbi52aS1ncm91cDpiZWZvcmUge1xuICBjb250ZW50OiBcIu6kpVwiO1xufVxuXG4udmktc3RhcjpiZWZvcmUge1xuICBjb250ZW50OiBcIu6kplwiO1xufVxuXG4udmktY29tbWVudHMtbzpiZWZvcmUge1xuICBjb250ZW50OiBcIu6kp1wiO1xufVxuXG4udmktcGxhbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCLupJ1cIjtcbn1cblxuLnZpLXRhZzpiZWZvcmUge1xuICBjb250ZW50OiBcIu6knlwiO1xufVxuXG4udmktZW52ZWxvcGU6YmVmb3JlIHtcbiAgY29udGVudDogXCLupJ9cIjtcbn1cblxuLnZpLXNpdGVtYXA6YmVmb3JlIHtcbiAgY29udGVudDogXCLupKBcIjtcbn1cblxuLnZpLWFkZHJlc3MtY2FyZDpiZWZvcmUge1xuICBjb250ZW50OiBcIu6koVwiO1xufVxuXG4udmktc2hhcmUtYWx0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwi7qSiXCI7XG59XG5cbi52aS1oZWFydDpiZWZvcmUge1xuICBjb250ZW50OiBcIu6kpFwiO1xufVxuXG4udmktaGVhcnQtbzpiZWZvcmUge1xuICBjb250ZW50OiBcIu6ko1wiO1xufVxuXG4udmktbWFwLW1hcmtlcjpiZWZvcmUge1xuICBjb250ZW50OiAnJztcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBiYWNrZ3JvdW5kOiB1cmwoXCIvY29udGVudC9kYW0vdm9sdm8tbWVkaWEvbGlzdC1pY29ucy9nZW9waW4uc3ZnI2dlb3Bpbi1pY29uLXcyNC12aWV3XCIpO1xuICB3aWR0aDogdmFyKC0tdi1pY29uLXNpemUpO1xuICBoZWlnaHQ6IHZhcigtLXYtaWNvbi1zaXplKTtcbiAgZmlsdGVyOiBzYXR1cmF0ZSgwJSkgYnJpZ2h0bmVzcygwJSkgaW52ZXJ0KDMzLjkyMTU3JSkgb3BhY2l0eSgxKTtcbiAgZmlsdGVyOiB1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LCAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj4gICAgPGZpbHRlciBpZD1cInJlY29sb3JcIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9XCJzUkdCXCI+ICAgICAgICA8ZmVDb2xvck1hdHJpeCB0eXBlPVwibWF0cml4XCIgdmFsdWVzPVwiICAgICAgICAgMCAwIDAgMCAwLjMyNTQ5ICAgICAgICAgMCAwIDAgMCAwLjMzNzI1ICAgICAgICAgMCAwIDAgMCAwLjM1Mjk0ICAgICAgICAgMCAwIDAgMSAwICAgICAgICAgXCIvPiAgICA8L2ZpbHRlcj4gICAgPC9zdmc+ICAgICNyZWNvbG9yJyk7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC52aS1tYXAtbWFya2VyOmJlZm9yZSB7XG4gICAgYmFja2dyb3VuZDogdXJsKFwiL2NvbnRlbnQvZGFtL3ZvbHZvLW1lZGlhL2xpc3QtaWNvbnMvZ2VvcGluLnN2ZyNnZW9waW4taWNvbi13MTYtdmlld1wiKTtcbiAgfVxufVxuXG4udmktY2FsZW5kYXI6YmVmb3JlIHtcbiAgY29udGVudDogXCLupJhcIjtcbn1cblxuLnZpLWFycm93LXVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwi7qSZXCI7XG59XG5cbi52aS1yc3M6YmVmb3JlIHtcbiAgY29udGVudDogXCLupINcIjtcbn1cblxuLnZpLWZ1bGx3aWR0aC1xdW90ZTpiZWZvcmUge1xuICBjb250ZW50OiAnXCInO1xufVxuXG4udmktaG9vay1icmFja2V0LWxlZnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCLjgIxcIjtcbn1cblxuLnZpLWhvb2stYnJhY2tldC1yaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIuOAjVwiO1xufVxuXG4udmktc2luZ2xlLXF1b3RlLWxlZnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCLigJhcIjtcbn1cblxuLnZpLXNpbmdsZS1xdW90ZS1yaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIuKAmVwiO1xufVxuXG4udmktc2luZ2xlLXF1b3RlLWxlZnQtbG93OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwi4oCaXCI7XG59XG5cbi52aS1xdW90ZS1sZWZ0LWxvdzpiZWZvcmUge1xuICBjb250ZW50OiBcIuKAnlwiO1xufVxuXG4udmktY29tcHJlc3M6YmVmb3JlIHtcbiAgY29udGVudDogXCLupJRcIjtcbn1cblxuLnZpLWV4cGFuZDpiZWZvcmUge1xuICBjb250ZW50OiBcIu6kgVwiO1xufVxuXG4udmktYW5nbGUtbGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIuKAuVwiO1xufVxuXG4udmktYW5nbGUtcmlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCLigLpcIjtcbn1cblxuLnZpLXF1b3RlLWxlZnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCLigJxcIjtcbn1cblxuLnZpLXF1b3RlLXJpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwi4oCdXCI7XG59XG5cbi52aS1hbmdsZS1kb3VibGUtcmlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCLCu1wiO1xufVxuXG4udmktYW5nbGUtZG91YmxlLWxlZnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCLCq1wiO1xufVxuXG4udmktbWludXMtY2lyY2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwi7qSVXCI7XG59XG5cbi52aS1wbHVzLWNpcmNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIu6kklwiO1xufVxuXG4udmktc29ydC11cDpiZWZvcmUge1xuICBjb250ZW50OiBcIu6kk1wiO1xufVxuXG4udmktYmFyczpiZWZvcmUge1xuICBjb250ZW50OiBcIu6kgFwiO1xufVxuXG4udmktc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwi7qSCXCI7XG59XG5cbi52aS1leHRlcm5hbC1saW5rOmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYmFja2dyb3VuZDogdXJsKFwiL2NvbnRlbnQvZGFtL3ZvbHZvLW1lZGlhL2xpc3QtaWNvbnMvbGluay1leHRlcm5hbC5zdmcjbGluay1leHRlcm5hbC1pY29uLXcyNC12aWV3XCIpO1xuICB3aWR0aDogdmFyKC0tdi1pY29uLXNpemUpO1xuICBoZWlnaHQ6IHZhcigtLXYtaWNvbi1zaXplKTtcbiAgZmlsdGVyOiBzYXR1cmF0ZSgwJSkgYnJpZ2h0bmVzcygwJSkgaW52ZXJ0KDMzLjkyMTU3JSkgb3BhY2l0eSgxKTtcbiAgZmlsdGVyOiB1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LCAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj4gICAgPGZpbHRlciBpZD1cInJlY29sb3JcIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9XCJzUkdCXCI+ICAgICAgICA8ZmVDb2xvck1hdHJpeCB0eXBlPVwibWF0cml4XCIgdmFsdWVzPVwiICAgICAgICAgMCAwIDAgMCAwLjMyNTQ5ICAgICAgICAgMCAwIDAgMCAwLjMzNzI1ICAgICAgICAgMCAwIDAgMCAwLjM1Mjk0ICAgICAgICAgMCAwIDAgMSAwICAgICAgICAgXCIvPiAgICA8L2ZpbHRlcj4gICAgPC9zdmc+ICAgICNyZWNvbG9yJyk7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC52aS1leHRlcm5hbC1saW5rOmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoXCIvY29udGVudC9kYW0vdm9sdm8tbWVkaWEvbGlzdC1pY29ucy9saW5rLWV4dGVybmFsLnN2ZyNsaW5rLWV4dGVybmFsLWljb24tdzE2LXZpZXdcIik7XG4gIH1cbn1cblxuLnZpLXNoYXJlLWFsdC1zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCLupIVcIjtcbn1cblxuLnZpLXNlYXJjaDpiZWZvcmUge1xuICBjb250ZW50OiBcIu6khlwiO1xufVxuXG4udmktc3Bpbm5lcjpiZWZvcmUge1xuICBjb250ZW50OiBcIu6kh1wiO1xufVxuXG4udmktY2hlY2s6YmVmb3JlIHtcbiAgY29udGVudDogXCLupIhcIjtcbn1cblxuLnZpLWRvd25sb2FkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwi7qSJXCI7XG59XG5cbi52aS1zdGVwLWZvcndhcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCLupIpcIjtcbn1cblxuLnZpLXN0ZXAtYmFja3dhcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCLupItcIjtcbn1cblxuLnZpLWNoZXZyb24tcmlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCLupIxcIjtcbn1cblxuLnZpLWNoZXZyb24tbGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIu6kjVwiO1xufVxuXG4udmktY2hldnJvbi1kb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwi7qSOXCI7XG59XG5cbi52aS1jaGV2cm9uLXVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwi7qSPXCI7XG59XG5cbi52aS1jbG9zZTpiZWZvcmUge1xuICBjb250ZW50OiBcIu6kkFwiO1xufVxuXG4udmktcGxheTpiZWZvcmUge1xuICBjb250ZW50OiBcIu6kkVwiO1xufVxuXG4udmktdHJlbmRpbmctdXA6YmVmb3JlIHtcbiAgY29udGVudDogXCLupJpcIjtcbn1cblxuLnZpLXRpbWU6YmVmb3JlIHtcbiAgY29udGVudDogXCLupJdcIjtcbn1cblxuLnZpLWFycm93LXJpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwi7qSWXCI7XG59XG5cbi52aS1hcnJvdy1kb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwi7qSbXCI7XG59XG5cbiosXG4qOjpiZWZvcmUsXG4qOjphZnRlciB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbmJvZHkge1xuICBmb250LWZhbWlseTogdmFyKC0tZmYtcmVndWxhcik7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgbGV0dGVyLXNwYWNpbmc6IHZhcigtLWxzLWRlZmF1bHQpO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGNvbG9yOiAjNGQ0ZTUzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKTtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xufVxuXG5bdGFiaW5kZXg9Jy0xJ106Zm9jdXM6bm90KDpmb2N1cy12aXNpYmxlKSB7XG4gIG91dGxpbmU6IDAgIWltcG9ydGFudDtcbn1cblxuaHIge1xuICBtYXJnaW46IDFyZW0gMDtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGJhY2tncm91bmQtY29sb3I6IGN1cnJlbnRDb2xvcjtcbiAgYm9yZGVyOiAwO1xufVxuXG5ocjpub3QoW3NpemVdKSB7XG4gIGhlaWdodDogMXB4O1xufVxuXG5oMSxcbmgyLFxuaDMsXG5oNCxcbmg1LFxuaDYge1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG5wIHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuYWJiclt0aXRsZV0ge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkO1xuICBjdXJzb3I6IGhlbHA7XG4gIHRleHQtZGVjb3JhdGlvbi1za2lwLWluazogbm9uZTtcbn1cblxuYWRkcmVzcyB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG59XG5cbm9sLFxudWwge1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG5cbm9sLFxudWwsXG5kbCB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbm9sIG9sLFxudWwgdWwsXG5vbCB1bCxcbnVsIG9sIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuZHQge1xuICBmb250LXdlaWdodDogNzAwO1xufVxuXG5kZCB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xufVxuXG5ibG9ja3F1b3RlIHtcbiAgbWFyZ2luOiAwIDAgMXJlbTtcbn1cblxuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkZXI7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mZi1tZWRpdW0pO1xufVxuXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogMC44NzVlbTtcbn1cblxuc3ViLFxuc3VwIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmb250LXNpemU6IDAuNzVlbTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtO1xufVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTtcbn1cblxuYSB7XG4gIGNvbG9yOiAjNGQ0ZTUzO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuMXMgbGluZWFyO1xufVxuXG5hOmhvdmVyIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG5maWd1cmUge1xuICBtYXJnaW46IDAgMCAxcmVtO1xufVxuXG5pbWcge1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXgtd2lkdGg6IDEwMCU7XG59XG5cbnRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbn1cblxudGgge1xuICB0ZXh0LWFsaWduOiBpbmhlcml0O1xufVxuXG5idXR0b246Zm9jdXMge1xuICBvdXRsaW5lOiAxcHggZG90dGVkO1xuICBvdXRsaW5lOiA1cHggYXV0byAtd2Via2l0LWZvY3VzLXJpbmctY29sb3I7XG59XG5cbmlucHV0LFxuYnV0dG9uLFxuc2VsZWN0LFxub3B0Z3JvdXAsXG50ZXh0YXJlYSB7XG4gIGNvbG9yOiAjNGQ0ZTUzO1xuICBtYXJnaW46IDA7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xufVxuXG5idXR0b24sXG5pbnB1dCB7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG5idXR0b24sXG5zZWxlY3Qge1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuc2VsZWN0IHtcbiAgd29yZC13cmFwOiBub3JtYWw7XG59XG5cbltsaXN0XTo6LXdlYmtpdC1jYWxlbmRhci1waWNrZXItaW5kaWNhdG9yIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuYnV0dG9uLFxuW3R5cGU9J2J1dHRvbiddLFxuW3R5cGU9J3Jlc2V0J10sXG5bdHlwZT0nc3VibWl0J10ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbiAgYXBwZWFyYW5jZTogYnV0dG9uO1xufVxuXG46Oi1tb3otZm9jdXMtaW5uZXIge1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG59XG5cbmlucHV0W3R5cGU9J2RhdGUnXSxcbmlucHV0W3R5cGU9J3RpbWUnXSxcbmlucHV0W3R5cGU9J2RhdGV0aW1lLWxvY2FsJ10sXG5pbnB1dFt0eXBlPSdtb250aCddIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XG4gIGFwcGVhcmFuY2U6IHRleHRmaWVsZDtcbn1cblxudGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0bztcbiAgcmVzaXplOiB2ZXJ0aWNhbDtcbn1cblxuZmllbGRzZXQge1xuICBtaW4td2lkdGg6IDA7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgYm9yZGVyOiAwO1xufVxuXG5wcm9ncmVzcyB7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuOjotd2Via2l0LWRhdGV0aW1lLWVkaXQge1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgbGluZS1oZWlnaHQ6IDA7XG59XG5cblt0eXBlPSdzZWFyY2gnXSB7XG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDtcbiAgYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xufVxuXG46Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbjo6LXdlYmtpdC1jb2xvci1zd2F0Y2gtd3JhcHBlciB7XG4gIHBhZGRpbmc6IDA7XG59XG5cbjo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xuICBmb250OiBpbmhlcml0O1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbn1cblxub3V0cHV0IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG5zdW1tYXJ5IHtcbiAgZGlzcGxheTogbGlzdC1pdGVtO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbnRlbXBsYXRlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxubWFpbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG5baGlkZGVuXSB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLypkb2Ncbi0tLVxudHlwZTogYnV0dG9uIHR5cGVcbnN0YXRlOiBzdGF0ZSBidXR0b25cbi0tLVxuXG5CdXR0b24gc3R5bGVzXG5cblVzZSB0aGlzIG1peGluIGZvciBidXR0b24gc3R5bGVzOiBjb2xvciB0ZXh0LCBiYWNrZ3JvdW5kLCBib3JkZXJcblxuXG4jIyBFeGFtcGxlXG4tLS1cblxuYGBgaHRtbF9leGFtcGxlXG5AaW5jbHVkZSBidXR0b24ocHJpbWFyeSk7XG5gYGBcbiovXG4uYnV0dG9uIHtcbiAgbWFyZ2luOiAzMHB4IDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmJ1dHRvbl9fYW5jaG9yIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBwYWRkaW5nOiAxMnB4IDMycHg7XG4gIGJhY2tncm91bmQ6ICMxMjUxYjU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICMxMjUxYjU7XG4gIGNvbG9yOiAjZmZmO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDFzO1xuICBmb250LWZhbWlseTogdmFyKC0tZmYtcmVndWxhcik7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgbGV0dGVyLXNwYWNpbmc6IHZhcigtLWxzLWRlZmF1bHQpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmJ1dHRvbl9fYW5jaG9yOmhvdmVyLCAuYnV0dG9uX19hbmNob3I6Zm9jdXMge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZDogIzBkM2M4NztcbiAgYm9yZGVyOiAxcHggc29saWQgIzBkM2M4NztcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG4uYnV0dG9uX19hbmNob3I6aG92ZXI6OmFmdGVyLCAuYnV0dG9uX19hbmNob3I6Zm9jdXM6OmFmdGVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDVweCk7XG59XG5cbi5idXR0b25fX2FuY2hvcjo6YWZ0ZXIge1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjNzIGVhc2Utb3V0O1xufVxuXG4uYnV0dG9uX19hbmNob3I6ZGlzYWJsZWQsIC5idXR0b25fX2FuY2hvci5kaXNhYmxlZCB7XG4gIGJhY2tncm91bmQ6ICM2ZmExZjE7XG4gIGJvcmRlcjogMXB4IHNvbGlkICM2ZmExZjE7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG5cbi5idXR0b24tLXByaW1hcnkgLmJ1dHRvbl9faWNvbkltZywgLmJ1dHRvbjpub3QoLmJ1dHRvbi0tc2Vjb25kYXJ5KSAuYnV0dG9uX19pY29uSW1nIHtcbiAgd2lkdGg6IHZhcigtLXYtaWNvbi1zaXplKTtcbiAgaGVpZ2h0OiB2YXIoLS12LWljb24tc2l6ZSk7XG4gIGZpbHRlcjogYnJpZ2h0bmVzcyg1KTtcbn1cblxuLmJ1dHRvbi0tc2Vjb25kYXJ5IC5idXR0b25fX2FuY2hvciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgcGFkZGluZzogMTJweCAzMnB4O1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBib3JkZXI6IDFweCBzb2xpZCAjNGQ0ZTUzO1xuICBjb2xvcjogIzRkNGU1MztcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAxcztcbn1cblxuLmJ1dHRvbi0tc2Vjb25kYXJ5IC5idXR0b25fX2FuY2hvcjpob3ZlciwgLmJ1dHRvbi0tc2Vjb25kYXJ5IC5idXR0b25fX2FuY2hvcjpmb2N1cyB7XG4gIGJhY2tncm91bmQ6ICNlNmU2ZTY7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY29sb3I6ICM0ZDRlNTM7XG59XG5cbi5idXR0b24tLXNlY29uZGFyeSAuYnV0dG9uX19hbmNob3I6aG92ZXI6OmFmdGVyLCAuYnV0dG9uLS1zZWNvbmRhcnkgLmJ1dHRvbl9fYW5jaG9yOmZvY3VzOjphZnRlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg1cHgpO1xufVxuXG4uYnV0dG9uLS1zZWNvbmRhcnkgLmJ1dHRvbl9fYW5jaG9yOjphZnRlciB7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAuM3MgZWFzZS1vdXQ7XG59XG5cbi5idXR0b24tLXNlY29uZGFyeSAuYnV0dG9uX19hbmNob3I6ZGlzYWJsZWQsIC5idXR0b24tLXNlY29uZGFyeSAuYnV0dG9uX19hbmNob3IuZGlzYWJsZWQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjOTk5YWEwO1xuICBjb2xvcjogIzk5OWFhMDtcbn1cblxuLmJ1dHRvbi0tc2Vjb25kYXJ5IC5idXR0b24tLW5vSWNvbjphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJhY2tncm91bmQ6IHVybChcIi9jb250ZW50L2RhbS92b2x2by1tZWRpYS9saXN0LWljb25zL2NoZXZyb24tcmlnaHQuc3ZnI2NoZXZyb24tcmlnaHQtaWNvbi13MjQtdmlld1wiKTtcbiAgd2lkdGg6IHZhcigtLXYtaWNvbi1zaXplKTtcbiAgaGVpZ2h0OiB2YXIoLS12LWljb24tc2l6ZSk7XG4gIGZpbHRlcjogc2F0dXJhdGUoMCUpIGJyaWdodG5lc3MoMCUpIGludmVydCgzMy45MjE1NyUpIG9wYWNpdHkoMSk7XG4gIGZpbHRlcjogdXJsKCdkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCwgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+ICAgIDxmaWx0ZXIgaWQ9XCJyZWNvbG9yXCIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPVwic1JHQlwiPiAgICAgICAgPGZlQ29sb3JNYXRyaXggdHlwZT1cIm1hdHJpeFwiIHZhbHVlcz1cIiAgICAgICAgIDAgMCAwIDAgMC4zMjU0OSAgICAgICAgIDAgMCAwIDAgMC4zMzcyNSAgICAgICAgIDAgMCAwIDAgMC4zNTI5NCAgICAgICAgIDAgMCAwIDEgMCAgICAgICAgIFwiLz4gICAgPC9maWx0ZXI+ICAgIDwvc3ZnPiAgICAjcmVjb2xvcicpO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAuYnV0dG9uLS1zZWNvbmRhcnkgLmJ1dHRvbi0tbm9JY29uOmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoXCIvY29udGVudC9kYW0vdm9sdm8tbWVkaWEvbGlzdC1pY29ucy9jaGV2cm9uLXJpZ2h0LnN2ZyNjaGV2cm9uLXJpZ2h0LWljb24tdzE2LXZpZXdcIik7XG4gIH1cbn1cblxuLmJ1dHRvbi0tc2Vjb25kYXJ5IC5idXR0b24tLW5vSWNvblt0YXJnZXQ9X2JsYW5rXTphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJhY2tncm91bmQ6IHVybChcIi9jb250ZW50L2RhbS92b2x2by1tZWRpYS9saXN0LWljb25zL2xpbmstZXh0ZXJuYWwuc3ZnI2xpbmstZXh0ZXJuYWwtaWNvbi13MjQtdmlld1wiKTtcbiAgd2lkdGg6IHZhcigtLXYtaWNvbi1zaXplKTtcbiAgaGVpZ2h0OiB2YXIoLS12LWljb24tc2l6ZSk7XG4gIGZpbHRlcjogc2F0dXJhdGUoMCUpIGJyaWdodG5lc3MoMCUpIGludmVydCgzMy45MjE1NyUpIG9wYWNpdHkoMSk7XG4gIGZpbHRlcjogdXJsKCdkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCwgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+ICAgIDxmaWx0ZXIgaWQ9XCJyZWNvbG9yXCIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPVwic1JHQlwiPiAgICAgICAgPGZlQ29sb3JNYXRyaXggdHlwZT1cIm1hdHJpeFwiIHZhbHVlcz1cIiAgICAgICAgIDAgMCAwIDAgMC4zMjU0OSAgICAgICAgIDAgMCAwIDAgMC4zMzcyNSAgICAgICAgIDAgMCAwIDAgMC4zNTI5NCAgICAgICAgIDAgMCAwIDEgMCAgICAgICAgIFwiLz4gICAgPC9maWx0ZXI+ICAgIDwvc3ZnPiAgICAjcmVjb2xvcicpO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAuYnV0dG9uLS1zZWNvbmRhcnkgLmJ1dHRvbi0tbm9JY29uW3RhcmdldD1fYmxhbmtdOmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoXCIvY29udGVudC9kYW0vdm9sdm8tbWVkaWEvbGlzdC1pY29ucy9saW5rLWV4dGVybmFsLnN2ZyNsaW5rLWV4dGVybmFsLWljb24tdzE2LXZpZXdcIik7XG4gIH1cbn1cblxuLmJ1dHRvbi0tbGVmdCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi5idXR0b24tLW5vSWNvbjphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJhY2tncm91bmQ6IHVybChcIi9jb250ZW50L2RhbS92b2x2by1tZWRpYS9saXN0LWljb25zL2NoZXZyb24tcmlnaHQuc3ZnI2NoZXZyb24tcmlnaHQtaWNvbi13MjQtdmlld1wiKTtcbiAgd2lkdGg6IHZhcigtLXYtaWNvbi1zaXplKTtcbiAgaGVpZ2h0OiB2YXIoLS12LWljb24tc2l6ZSk7XG4gIGZpbHRlcjogc2F0dXJhdGUoMCUpIGJyaWdodG5lc3MoMCUpIGludmVydCgxMDAlKSBvcGFjaXR5KDEpO1xuICBmaWx0ZXI6IHVybCgnZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPiAgICA8ZmlsdGVyIGlkPVwicmVjb2xvclwiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz1cInNSR0JcIj4gICAgICAgIDxmZUNvbG9yTWF0cml4IHR5cGU9XCJtYXRyaXhcIiB2YWx1ZXM9XCIgICAgICAgICAwIDAgMCAwIDEgICAgICAgICAwIDAgMCAwIDEgICAgICAgICAwIDAgMCAwIDEgICAgICAgICAwIDAgMCAxIDAgICAgICAgICBcIi8+ICAgIDwvZmlsdGVyPiAgICA8L3N2Zz4gICAgI3JlY29sb3InKTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLmJ1dHRvbi0tbm9JY29uOmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoXCIvY29udGVudC9kYW0vdm9sdm8tbWVkaWEvbGlzdC1pY29ucy9jaGV2cm9uLXJpZ2h0LnN2ZyNjaGV2cm9uLXJpZ2h0LWljb24tdzE2LXZpZXdcIik7XG4gIH1cbn1cblxuLmJ1dHRvbi0tbm9JY29uOjphZnRlciB7XG4gIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICB0b3A6IC0ycHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgd2lkdGg6IDI0cHggIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAyNHB4ICFpbXBvcnRhbnQ7XG59XG5cbi5idXR0b24tLW5vSWNvblt0YXJnZXQ9X2JsYW5rXTphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJhY2tncm91bmQ6IHVybChcIi9jb250ZW50L2RhbS92b2x2by1tZWRpYS9saXN0LWljb25zL2xpbmstZXh0ZXJuYWwuc3ZnI2xpbmstZXh0ZXJuYWwtaWNvbi13MjQtdmlld1wiKTtcbiAgd2lkdGg6IHZhcigtLXYtaWNvbi1zaXplKTtcbiAgaGVpZ2h0OiB2YXIoLS12LWljb24tc2l6ZSk7XG4gIGZpbHRlcjogc2F0dXJhdGUoMCUpIGJyaWdodG5lc3MoMCUpIGludmVydCgxMDAlKSBvcGFjaXR5KDEpO1xuICBmaWx0ZXI6IHVybCgnZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPiAgICA8ZmlsdGVyIGlkPVwicmVjb2xvclwiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz1cInNSR0JcIj4gICAgICAgIDxmZUNvbG9yTWF0cml4IHR5cGU9XCJtYXRyaXhcIiB2YWx1ZXM9XCIgICAgICAgICAwIDAgMCAwIDEgICAgICAgICAwIDAgMCAwIDEgICAgICAgICAwIDAgMCAwIDEgICAgICAgICAwIDAgMCAxIDAgICAgICAgICBcIi8+ICAgIDwvZmlsdGVyPiAgICA8L3N2Zz4gICAgI3JlY29sb3InKTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLmJ1dHRvbi0tbm9JY29uW3RhcmdldD1fYmxhbmtdOmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoXCIvY29udGVudC9kYW0vdm9sdm8tbWVkaWEvbGlzdC1pY29ucy9saW5rLWV4dGVybmFsLnN2ZyNsaW5rLWV4dGVybmFsLWljb24tdzE2LXZpZXdcIik7XG4gIH1cbn1cblxuLmJ1dHRvbl9fdGV4dCB7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5idXR0b25fX2ljb24ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBtYXJnaW4tbGVmdDogNXB4O1xuICB3aWR0aDogdmFyKC0tdi1pY29uLXNpemUpO1xuICBoZWlnaHQ6IHZhcigtLXYtaWNvbi1zaXplKTtcbn1cblxuLmJ1dHRvbl9faWNvbiAuYnV0dG9uX19pY29uSW1nIHtcbiAgd2lkdGg6IHZhcigtLXYtaWNvbi1zaXplKTtcbiAgaGVpZ2h0OiB2YXIoLS12LWljb24tc2l6ZSk7XG59XG5cbi5idXR0b24tLWRpc2FibGVkIC5idXR0b25fX2FuY2hvciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNiZGJkYmQ7XG4gIGJvcmRlci1jb2xvcjogI2JkYmRiZDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5idXR0b24tLWZ1bGwgLmJ1dHRvbl9fYW5jaG9yIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmJ1dHRvbi0tc21hbGwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi5idXR0b24tLXNtYWxsIC5idXR0b25fX2FuY2hvciB7XG4gIHBhZGRpbmc6IDZweCAxNnB4O1xufVxuXG4vKiMgc291cmNlTWFwcGluZ1VSTD1idXR0b24uYnVuZGxlLmNzcy5tYXAgKi8iXX0= */