/*
---
name: Colors
category: Shared/Variables
template: colors
tag:
 - variables
 - colors
colors:
 - variable: "text-color"
   description: "The default text color on the body"
   value: "#3F3F40"
 - variable: "text-inverted-color"
   description: "The default inverted text color on the body"
   value: "#FFF"
 - variable: "action-color"
   description: "The main action color used for links and buttons"
   value: "#EC6449"
 - variable: "body-color"
   description: "The main background color"
   value: "#FFF"
 - variable: "enabled-color"
   description: "Signalcolor for enabled/ok/success/true - search for a better name"
   value: "#7CAE7A"
 - variable: "disabled-color"
   description: "Signalcolor for disabled/notok/error/false - search for a better name"
   value: "#EC6449"
 - variable: "outline-navigation-color"
   description: "Color for the elements in the outline navigation"
   value: "lighten( #3F3F40, 60 )"
---

The color variables that are used throughout the library. 
*/
/*
---
name: Global settings
category: Shared/Variables
template: variables
tag:
 - variables
variables:
 - name: "text-line-height"
   description: "The line height of the body"
   default: "1.5rem"
 - name: "font-family"
   description: "The font-family of the body"
   default: "'Helvetica', sans-serif"
 - name: "text-rendering"
   description: "The text-rendering of the body"
   default: "optimizeLegibility"
 - name: "transition-duration"
   description: "The duration of the slide transitions"
   default: "0.4s"
 - name: "border-radius"
   description: "The default radius for borders"
   default: "2px"
---

These variables setups some global text formatting and styling.
*/
html,
body,
div,
span,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
abbr,
address,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
samp,
small,
strong,
sub,
sup,
var,
b,
i,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section,
summary,
time,
mark,
audio,
video {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  font-size: inherit;
  vertical-align: baseline;
}
:root {
  font-size: 16px;
}
html {
  font-size: 100%;
}
body {
  line-height: 1.5rem;
  color: #202023;
  font-family: 'Glober-Regular';
  text-rendering: ;
  background-color: #fff;
  -webkit-font-smoothing: antialiased;
}
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section {
  display: block;
}
select {
  vertical-align: middle;
}
textarea {
  width: 100%;
}
table {
  border-collapse: collapse;
  border-spacing: 0;
}
button,
input,
optgroup,
select,
textarea {
  color: inherit;
  font: inherit;
  margin: 0;
}
button::-moz-focus-inner,
input::-moz-focus-inner {
  border: 0;
  padding: 0;
}
html {
  box-sizing: border-box;
}
*,
*:before,
*:after {
  box-sizing: inherit;
}
a {
  text-decoration: none;
  color: #3031fe;
}
img {
  display: block;
}
ul,
ol {
  margin-left: 1.25rem;
}
/*
---
name: .border-box
category: Box/Border
tag:
 - component
 - border
compile: true
---

A box to control borders on all four sides.

```jade
div.border-box.-left Some demo content
```

```jade
div.border-box.-all Some demo content
```
*/
.border-box.-top {
  border-top-style: solid;
  border-width: 1px;
  border-color: #e0e0e0;
}
.border-box.-right {
  border-right-style: solid;
  border-width: 1px;
  border-color: #e0e0e0;
}
.border-box.-bottom {
  border-bottom-style: solid;
  border-width: 1px;
  border-color: #e0e0e0;
}
.border-box.-left {
  border-left-style: solid;
  border-width: 1px;
  border-color: #e0e0e0;
}
.border-box.-all {
  border-style: solid;
  border-width: 1px;
  border-color: #e0e0e0;
}
.border-box.-round {
  border-radius: 50%;
}
/*
---
name: .color-box
category: Box/Color
tag:
 - component
 - border
compile: true
---

A box to control the background color. It makes a variant foreach color definion in the file `color-box.var.styl`

```jade
div.color-box.-white(style="width:100px;height:100px")
```

```jade
div.color-box.-action(style="width:100px;height:100px")
```
*/
.color-box.-body {
  background-color: #fff;
}
.color-box.-action {
  background-color: #3031fe;
}
.color-box.-white {
  background-color: #fff;
}
.color-box.-black {
  background-color: #000;
}
/*
---
name: .margin-box
category: Box/Margin
tag:
 - component
 - layout
compile: true
---

A component to add margins

## Applying margins

The easiest use case is to use simple `.margin-box .-all` for a margin on top, right, bottom and left with default size or
`.-top`, `.-right`, `.-bottom` and `.-left` for specified sides.

```jade
div.margin-box.-all
	div.aigis-debug Default margin applied on top, right, bottom and left
```
```jade
div.margin-box.-bottom
	div.aigis-debug Default margin applied on bottom
```


## Variants

The variants for the margins are `.-top-{size}`, `.-right-{size}`, `.-bottom-{size}` and `.left-{size}` together with sizes small, medium or large.
All sizes are defined in the variable theme.components.margin-box. Values are `small`, `medium`, `large` and `auto`

```jade
div.margin-box.-left-small
    div.aigis-debug Small margin applied on left
```
```jade
div.margin-box.-right-small
    div.aigis-debug Small margin applied on right
```
```jade
div.margin-box.-top-small
    div.aigis-debug Small margin applied on top
```
```jade
div.margin-box.-bottom-small
    div.aigis-debug Small margin applied on bottom
```

There are also shortcuts for vertical `.-v-{size}` and horizontal `.-h-{size}` together with sizes small, medium and large

```jade
div.margin-box.-v-medium
    div.aigis-debug Medium margin applied on top and bottom
```
```jade
div.margin-box.-h-medium
    div.aigis-debug Medium margin applied on right and left
```

## Variants for auto margins

```jade
div.margin-box.-auto.-h(style="width: 200px")
    div.aigis-debug Auto margin applied on right and left
```
```jade
div.margin-box.-auto.-v(style="height: 46px")
    div.aigis-debug Auto margin applied on top and bottom
```

*/
.margin-box.-top {
  margin-top: 1.25rem;
}
.margin-box.-right {
  margin-right: 1.25rem;
}
.margin-box.-bottom {
  margin-bottom: 1.25rem;
}
.margin-box.-left {
  margin-left: 1.25rem;
}
.margin-box.-h {
  margin-left: 1.25rem;
  margin-right: 1.25rem;
}
.margin-box.-v {
  margin-top: 1.25rem;
  margin-bottom: 1.25rem;
}
.margin-box.-all {
  margin: 1.25rem 1.25rem;
}
.margin-box.-top-xsmall {
  margin-top: 0.625rem;
}
.margin-box.-right-xsmall {
  margin-right: 0.625rem;
}
.margin-box.-bottom-xsmall {
  margin-bottom: 0.625rem;
}
.margin-box.-left-xsmall {
  margin-left: 0.625rem;
}
.margin-box.-h-xsmall {
  margin-left: 0.625rem;
  margin-right: 0.625rem;
}
.margin-box.-v-xsmall {
  margin-top: 0.625rem;
  margin-bottom: 0.625rem;
}
.margin-box.-all-xsmall {
  margin: 0.625rem 0.625rem;
}
.margin-box.-top-small {
  margin-top: 0.9375rem;
}
.margin-box.-right-small {
  margin-right: 0.9375rem;
}
.margin-box.-bottom-small {
  margin-bottom: 0.9375rem;
}
.margin-box.-left-small {
  margin-left: 0.9375rem;
}
.margin-box.-h-small {
  margin-left: 0.9375rem;
  margin-right: 0.9375rem;
}
.margin-box.-v-small {
  margin-top: 0.9375rem;
  margin-bottom: 0.9375rem;
}
.margin-box.-all-small {
  margin: 0.9375rem 0.9375rem;
}
.margin-box.-top-medium {
  margin-top: 1.875rem;
}
.margin-box.-right-medium {
  margin-right: 1.875rem;
}
.margin-box.-bottom-medium {
  margin-bottom: 1.875rem;
}
.margin-box.-left-medium {
  margin-left: 1.875rem;
}
.margin-box.-h-medium {
  margin-left: 1.875rem;
  margin-right: 1.875rem;
}
.margin-box.-v-medium {
  margin-top: 1.875rem;
  margin-bottom: 1.875rem;
}
.margin-box.-all-medium {
  margin: 1.875rem 1.875rem;
}
.margin-box.-top-large {
  margin-top: 5rem;
}
.margin-box.-right-large {
  margin-right: 5rem;
}
.margin-box.-bottom-large {
  margin-bottom: 5rem;
}
.margin-box.-left-large {
  margin-left: 5rem;
}
.margin-box.-h-large {
  margin-left: 5rem;
  margin-right: 5rem;
}
.margin-box.-v-large {
  margin-top: 5rem;
  margin-bottom: 5rem;
}
.margin-box.-all-large {
  margin: 5rem 5rem;
}
.margin-box.-top-xlarge {
  margin-top: 7.5rem;
}
.margin-box.-right-xlarge {
  margin-right: 7.5rem;
}
.margin-box.-bottom-xlarge {
  margin-bottom: 7.5rem;
}
.margin-box.-left-xlarge {
  margin-left: 7.5rem;
}
.margin-box.-h-xlarge {
  margin-left: 7.5rem;
  margin-right: 7.5rem;
}
.margin-box.-v-xlarge {
  margin-top: 7.5rem;
  margin-bottom: 7.5rem;
}
.margin-box.-all-xlarge {
  margin: 7.5rem 7.5rem;
}
.margin-box.-top-auto {
  margin-top: auto;
}
.margin-box.-right-auto {
  margin-right: auto;
}
.margin-box.-bottom-auto {
  margin-bottom: auto;
}
.margin-box.-left-auto {
  margin-left: auto;
}
.margin-box.-h-auto {
  margin-left: auto;
  margin-right: auto;
}
.margin-box.-v-auto {
  margin-top: auto;
  margin-bottom: auto;
}
.margin-box.-all-auto {
  margin: auto auto;
}
.margin-box.-auto.-v {
  margin-top: auto;
  margin-bottom: auto;
}
.margin-box.-auto.-h {
  margin-left: auto;
  margin-right: auto;
}
/*
---
name: .padding-box
category: Box/Padding
tag:
 - component
 - layout
compile: true
---

A simple component to add paddings

## Applying paddings

The easiest use case is to use simple `.padding-box .-all` for a padding on top, right, bottom and left with default size or
`.-top`, `.-right`, `.-bottom` and `.-left` for specified sides

```jade
div.aigis-debug.padding-box.-all Defaut padding applied on top, right, bottom and left
```
```jade
div.aigis-debug.padding-box.-bottom Defaut padding applied on bottom
```

## Variants

The variants for the paddings are `.-top-{size}`, `.-right-{size}`, `.-bottom-{size}` and `.left-{size}` together with sizes small, medium or large.
All sizes are defined in the variable theme.components.padding-box. Values are `small`, `medium`, and `large`

```jade
div.aigis-debug.padding-box.-left-small Small padding applied on left
```
```jade
div.aigis-debug.padding-box.-right-small(style="text-align:right") Small padding applied on right
```
```jade
div.aigis-debug.padding-box.-top-small Small padding applied on top
```
```jade
div.aigis-debug.padding-box.-bottom-small Small padding applied on bottom
```

There are also shortcuts for vertical `.-v-{size}` and horizontal `.-h-{size}` together with sizes

```jade
div.aigis-debug.padding-box.-v-medium Medium padding applied on top and bottom
```
```jade
div.aigis-debug.padding-box.-h-medium(style="width: 300px") Medium padding applied on right and left
```
```jade
div.aigis-debug.padding-box.-h-medium.-top-large(style="width: 400px") Medium padding applied on right and left, large padding applied on top
```
*/
.padding-box.-top {
  padding-top: 0.5rem;
}
.padding-box.-right {
  padding-right: 0.5rem;
}
.padding-box.-bottom {
  padding-bottom: 0.5rem;
}
.padding-box.-left {
  padding-left: 0.5rem;
}
.padding-box.-h {
  padding-left: 0.5rem;
  padding-right: 0.5rem;
}
.padding-box.-v {
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}
.padding-box.-all {
  padding: 0.5rem 0.5rem;
}
.padding-box.-top-small {
  padding-top: 0.125rem;
}
.padding-box.-right-small {
  padding-right: 0.125rem;
}
.padding-box.-bottom-small {
  padding-bottom: 0.125rem;
}
.padding-box.-left-small {
  padding-left: 0.125rem;
}
.padding-box.-h-small {
  padding-left: 0.125rem;
  padding-right: 0.125rem;
}
.padding-box.-v-small {
  padding-top: 0.125rem;
  padding-bottom: 0.125rem;
}
.padding-box.-all-small {
  padding: 0.125rem 0.125rem;
}
.padding-box.-top-medium {
  padding-top: 1rem;
}
.padding-box.-right-medium {
  padding-right: 1rem;
}
.padding-box.-bottom-medium {
  padding-bottom: 1rem;
}
.padding-box.-left-medium {
  padding-left: 1rem;
}
.padding-box.-h-medium {
  padding-left: 1rem;
  padding-right: 1rem;
}
.padding-box.-v-medium {
  padding-top: 1rem;
  padding-bottom: 1rem;
}
.padding-box.-all-medium {
  padding: 1rem 1rem;
}
.padding-box.-top-large {
  padding-top: 2rem;
}
.padding-box.-right-large {
  padding-right: 2rem;
}
.padding-box.-bottom-large {
  padding-bottom: 2rem;
}
.padding-box.-left-large {
  padding-left: 2rem;
}
.padding-box.-h-large {
  padding-left: 2rem;
  padding-right: 2rem;
}
.padding-box.-v-large {
  padding-top: 2rem;
  padding-bottom: 2rem;
}
.padding-box.-all-large {
  padding: 2rem 2rem;
}
.padding-box.-gutter {
  padding: 0.9375rem 0.9375rem;
}
/*
---
name: .shadow-box
category: Box/Shadow
tag:
 - component
 - shadow
 - helper
compile: true
---

A box to control box-shadows with different variants

## Default variants
```jade
div.shadow-box Demo content
div.shadow-box.-inset Demo content
div.shadow-box.-zero Use zero shadow in animations
```
*/
.shadow-box {
  box-shadow: 0px 1px 6px 0px rgba(0,0,0,0.17);
}
.shadow-box.-inset {
  box-shadow: inset 0px 1px 6px 0px rgba(0,0,0,0.17);
}
.shadow-box.-zero {
  box-shadow: inset 0px 0px 0px 0px rgba(0,0,0,0.17);
}
/*
---
name: .transform-box
category: Box/Transform
tag:
 - component
 - tranform
 - helper
compile: true
---

A box to control common transformations

## Rotate
```jade
div.transform-box.-rot90 Some demo content
div.transform-box.-rot180 Some demo content
div.transform-box.-rot270 Some demo content
```

## Flip
```jade
div.transform-box.-flipX Some demo content
div.transform-box.-flipY Some demo content
```
*/
.transform-box.-rot90 {
  transform: rotate(90deg);
}
.transform-box.-rot180 {
  transform: rotate(180deg);
}
.transform-box.-rot270 {
  transform: rotate(270deg);
}
.transform-box.-flipX {
  transform: scaleX(-1);
}
.transform-box.-flipY {
  transform: scaleY(-1);
}
/*
---
name: .button-style
category: Components/Button
tag:
 - component
 - button
compile: true
---

A button component as a base for different button variants defined in its configuration.

```jade
button.button-style.-main Action
```
*/
.button-style {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  background: transparent;
  border: none;
  display: inline-block;
  cursor: pointer;
  outline: none;
  white-space: nowrap;
  display: flex;
  align-items: center;
}
.button-style.-main {
  color: #fff;
  background-color: #3031fe;
  padding: 0.125rem 0.5rem;
}
.button-style.-main.-hover:hover {
  color: #fff;
  background-color: #1616bd;
}
.button-style.-hover {
  transition: all 0.1s;
}
.button-style.-hover:hover {
  color: #3031fe;
}
.button-style.-disabled {
  background-color: #b6b6b6;
}
/*
---
name: .drop-down-menu
category: DropDown
tag:
 - component
 - dropdown
compile: true
---

This styles a menu inside a .drop-down.

```jade
div.drop-down-menu
	div.item Menu 1
	div.item Menu 2
	div.item Menu 3
```

Used in combination with the .drop-down itself
```jade
div.drop-down.-open
	div.toggle.aigis-debug Toggle
	div.content.drop-down-menu
		div.item Menu 1
		div.item Menu 2
		div.item Menu 3
```

*/
.drop-down-menu {
  box-shadow: 0px 1px 6px 0px rgba(0,0,0,0.17);
  border: 1px solid #e0e0e0;
  border-top: none;
}
.drop-down-menu > .item + .item {
  border-top: 1px solid #e0e0e0;
}
/*
---
name: .drop-down
category: DropDown
tag:
 - component
 - dropdown
compile: true
---

This dropdown has the simple mechanism to open and close a dropdown content.

Trigger with mouseover by adding `.-hover` variant

Trigger with js by adding `.-open` variant 

Closed Dropdown
```jade
div.drop-down
	div.toggle.aigis-debug Toggle
	div.content Dropdown content
```
## Variants

Variants `.-top`, `.-bottom`, `.-left` and `.-right` can be combined

Bottom left
```jade
div.drop-down.-hover.-bottom.-left
	div.toggle.aigis-debug Toggle
	div.content Dropdown content
```

Bottom right
```jade
div.drop-down.-hover.-bottom.-right
	div.toggle.aigis-debug Toggle
	div.content Dropdown content
```

Top right
```jade
div.drop-down.-hover.-top.-right
	div.toggle.aigis-debug Toggle
	div.content Dropdown content
```

Top left
```jade
div.drop-down.-hover.-top.-left
	div.toggle.aigis-debug Toggle
	div.content Dropdown content
```
## Aside

There is an `.-aside` variant to open content aside

Top left aside
```jade
div.drop-down.-hover.-top.-left.-aside(style="left:200px;width:50%")
	div.toggle.aigis-debug Toggle
	div.content Dropdown content
```

Top right aside
```jade
div.drop-down.-hover.-top.-right.-aside(style="width:50%")
	div.toggle.aigis-debug Toggle
	div.content Dropdown content
```
## Relative content

There is a variant for opening the content relative instead of absolute

Relative
```jade
div.drop-down.-hover.-relative(style="width:50%")
	div.toggle.aigis-debug Toggle
	div.content Dropdown content
```

JS Trigger
```jade
div.drop-down.-open.-bottom.-left
	div.toggle.aigis-debug Toggle
	div.content Dropdown content
```

## Do not wrap content

A variant preventing the content from wrapping


```jade
div.drop-down.-hover.-nowrap
	div.toggle.aigis-debug Toggle
	div.content Dropdown content with some whitespaces
```

*/
.drop-down {
  position: relative;
  display: inline-block;
  cursor: pointer;
}
.drop-down.-open > .content {
  display: block;
}
.drop-down.-hover:hover > .content {
  display: block;
}
.drop-down.-top > .content {
  bottom: 100%;
}
.drop-down.-bottom > .content {
  top: 100%;
}
.drop-down.-left > .content {
  left: 0;
}
.drop-down.-top.-left.-aside > .content {
  transform: translate(-100%, 100%);
}
.drop-down.-right > .content {
  right: 0;
}
.drop-down.-top.-right.-aside > .content {
  transform: translate(100%, 100%);
}
.drop-down.-relative > .content {
  position: relative;
}
.drop-down.-nowrap > .content {
  white-space: nowrap;
}
.drop-down > .toggle {
  display: inline-block;
}
.drop-down > .content {
  position: absolute;
  z-index: 1000;
  display: none;
}
.svg-icon {
  fill: currentColor;
  display: block;
  width: 1.5rem;
  height: 1.5rem;
}
.svg-icon.-inline {
  display: inline-block;
}
.svg-icon.-scale {
  width: 100%;
  height: 100%;
}
/*
---
name: .abs-layout
category: Layout/Absolute
tag:
 - component
 - layout
compile: true
---

A simple component to position an element absolute. Default is top, left

## Variants

The variants for the vertical positioning are `.-top`, `.-vcenter` and `.-bottom`.
The variants for the horizontal positioning are `.-right`, `.-hcenter` and `.-left`.
Additinally the `-center` variant will center horizontal and vertical.
Variants to stretch an item to its full width/height can be dine with `.item.-stretch`.
In some situations the abs-layout itself needs to stretch so use the stretch variant on the component. `.abs-layout.-stretch` 

```jade
div.abs-layout(style="width: 100%; height: 50px")
    div.aigis-debug.item.-center
```
```jade
div.abs-layout(style="width: 100%; height: 50px")
    div.aigis-debug.item.-top.-hcenter
```
```jade
div.abs-layout(style="width: 100%; height: 50px")
    div.aigis-debug.item.-top.-right
```
```jade
div.abs-layout(style="width: 100%; height: 50px")
    div.aigis-debug.item.-right.-vcenter
```
```jade
div.abs-layout(style="width: 100%; height: 50px")
    div.aigis-debug.item.-right.-bottom
```
```jade
div.abs-layout(style="width: 100%; height: 50px")
    div.aigis-debug.item.-bottom.-hcenter
```
```jade
div.abs-layout(style="width: 100%; height: 50px")
    div.aigis-debug.item.-bottom.-left
```
```jade
div.abs-layout(style="width: 100%; height: 50px")
    div.aigis-debug.item.-left.-vcenter
```
```jade
div.abs-layout(style="width: 100%; height: 50px")
    div.aigis-debug.item.-left.-top
```
```jade
div.abs-layout(style="width: 100%; height: 50px")
    div.aigis-debug.item.-stretch
```

## Z-Index

Every item can controll its z index with the `.-z{i}`variants.
```jade
div.abs-layout(style="width: 100%; height: 50px")
    div.aigis-debug.item.-top.-left.-z1
    div.aigis-debug.item.-top.-left.-z2
```

*/
.abs-layout {
  position: relative;
}
.abs-layout.-stretch {
  width: 100%;
  height: 100%;
}
.abs-layout > .item {
  position: absolute;
}
.abs-layout > .item.-top {
  top: 0;
}
.abs-layout > .item.-right {
  right: 0;
}
.abs-layout > .item.-bottom {
  bottom: 0;
}
.abs-layout > .item.-left {
  left: 0;
}
.abs-layout > .item.-vcenter {
  top: 50%;
  transform: translateY(-50%);
}
.abs-layout > .item.-hcenter {
  left: 50%;
  transform: translateX(-50%);
}
.abs-layout > .item.-center {
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
.abs-layout > .item.-stretch {
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.abs-layout > .item.-z1 {
  z-index: 1;
}
.abs-layout > .item.-z2 {
  z-index: 2;
}
.abs-layout > .item.-z3 {
  z-index: 3;
}
.abs-layout > .item.-z4 {
  z-index: 4;
}
.abs-layout > .item.-z5 {
  z-index: 5;
}
.abs-layout > .item.-z6 {
  z-index: 6;
}
.abs-layout > .item.-z7 {
  z-index: 7;
}
.abs-layout > .item.-z8 {
  z-index: 8;
}
.abs-layout > .item.-z9 {
  z-index: 9;
}
.abs-layout > .item.-z10 {
  z-index: 10;
}
/*
---
name: .fixed-layout
category: Layout/Fixed
tag:
 - container
---

Fixed container
You can position the container with the different variants `.-top`, `.-bottom`, `.-left`, `.-right`.
To span full width / height use `.-left` & `.-right` / `.-top` & `.-bottom`

Fixed top and full width

```jade
div.fixed-layout.-top.-left.-right.aigis-debug top left fullwidth
    
```

Fixed right and full height

```jade
div.fixed-layout.-top.-bottom.-right.aigis-debug top right fullheight
    
```

*/
.fixed-layout {
  position: fixed;
}
.fixed-layout.-top {
  top: 0;
}
.fixed-layout.-bottom {
  bottom: 0;
}
.fixed-layout.-left {
  left: 0;
}
.fixed-layout.-right {
  right: 0;
}
/*
---
name: .fixed-page-layout
category: Layout/Fixed Page
tag:
 - component
 - page
compile: true
---

A page layout with a fixed header and optional sidebars.
With the `-margin-{top|left|right}`, `-margin-{top|left|right}-small` variants you can control the spacing.
If the content for example needs a spacing towards the header use: `.content.-margin-top`.
If the sidebar show be below the header use: `.sidebar.-left.-margin-top`.


There are variants to resize the header and sidebars to a smaller width/height: `.header.-small`, `.sidebar.-small`.
If you need a spacing on your content or sidebar you need to adjust that manually like this:
```
div.fixed-page-layout
	div.header.-small
		div.aigis-debug(style="width:100%;height:100%")  Header
	div.content.-margin-top-small Content
	div.sidebar.-left.-margin-top-small.-small
		div.aigis-debug(style="height:100%")  Left Sidebar
```

## Header with sidebars

```jade
div.fixed-page-layout
	div.header
		div.aigis-debug(style="width:100%;height:100%")  Header
	div.content.-margin-top Content
	div.sidebar.-left.-margin-top
		div.aigis-debug(style="height:100%")  Left Sidebar
	div.sidebar.-right
		div.aigis-debug(style="height:100%")  Right Sidebar
```
*/
.fixed-page-layout > .header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  height: 3.125rem;
  transition: all 0.2s;
  z-index: 1000;
}
.fixed-page-layout > .header.-small {
  height: 1.875rem;
}
.fixed-page-layout > .header.-hide {
  transform: translateY(-100%);
}
.fixed-page-layout > .sidebar {
  position: fixed;
  top: 0;
  bottom: 0;
  width: 14.5625rem;
  transition: all 0.2s;
  z-index: 1005;
}
.fixed-page-layout > .sidebar.-margin-top {
  top: 3.125rem;
}
.fixed-page-layout > .sidebar.-margin-top-small {
  top: 1.875rem;
}
.fixed-page-layout > .sidebar.-small {
  width: 3.125rem;
}
.fixed-page-layout > .sidebar.-left {
  left: 0;
}
.fixed-page-layout > .sidebar.-left.-hide {
  transform: translateX(-100%);
}
.fixed-page-layout > .sidebar.-right {
  right: 0;
}
.fixed-page-layout > .sidebar.-right.-hide {
  transform: translateX(100%);
}
.fixed-page-layout > .content {
  transition: margin 0.2s;
}
.fixed-page-layout > .content.-margin-left {
  margin-left: 14.5625rem;
}
.fixed-page-layout > .content.-margin-left-small {
  margin-left: 3.125rem;
}
.fixed-page-layout > .content.-margin-right {
  margin-right: 14.5625rem;
}
.fixed-page-layout > .content.-margin-right-small {
  margin-right: 3.125rem;
}
.fixed-page-layout > .content.-margin-top {
  margin-top: 3.125rem;
}
.fixed-page-layout > .content.-margin-top-small {
  margin-top: 1.875rem;
}
/*
---
name: .flex-layout
category: Layout/Flex
tag:
 - component
 - layout
 - flexbox
compile: true
---

A layout system based on flexbox to align and distribute items horizontally and vertically.


# Alignment of items

The `-center` shortcut will center all items horizontal & vertical
```jade
div(style="height: 100px").flex-layout.-center
	div.aigis-debug Item 1
	div.aigis-debug Item 2
	div.aigis-debug Item 3
```

`-baseline` will align items based on their baseline. Works good if all the items contain text. 
```jade
div.flex-layout.-baseline
	div.aigis-debug Item
	div.aigis-debug(style="padding-top: 50px;padding-bottom: 30px;") Item 2
```

`-items-top` & `-items-bottom` will align the items either on top or bottom
```jade
div.flex-layout.-items-top
	div.aigis-debug Item 1
	div.aigis-debug(style="padding-top: 50px;padding-bottom: 30px;") Item 2
	div.aigis-debug Item 3
```
```jade
div.flex-layout.-items-bottom
	div.aigis-debug Item 1
	div.aigis-debug(style="padding-top: 50px;padding-bottom: 30px;") Item 2
	div.aigis-debug Item 3
```

`-items-center` will center the items vertically
```jade
div.flex-layout.-items-center
	div.aigis-debug Item 1
	div.aigis-debug(style="padding-top: 50px;padding-bottom: 30px;") Item 2
	div.aigis-debug Item 3
```

# Alignment of individual items

```jade
div(style="height: 100px").flex-layout
	div.aigis-debug.item.-top top
	div.aigis-debug.item.-center center
	div.aigis-debug.item.-bottom bottom
	div.aigis-debug.item.-stretch stretch
```

# Row mode

If you like a container that spans the full width with item that resize themself you can use the `-row` variant.

```jade
div.flex-layout.-row
	div.aigis-debug.item Item 1
	div.aigis-debug.item Item 2
	div.aigis-debug.item Item 3
```

If you like to fix an item based on its content width use the `-content` variant.
This is a shortcut for `-no-grow -no-shrink`. 
```jade
div.flex-layout.-row
	div.aigis-debug.item.-content
		img(src="http://via.placeholder.com/350x80")
	div.aigis-debug.item Item 2
	div.aigis-debug.item Item 3
```

You can control the sizing of the items with `-grow`, `-shrink`, `-no-grow`, `-no-shrink`.
```jade
div.flex-layout.-row
	div.aigis-debug.item.-no-shrink
		img(src="http://via.placeholder.com/350x80")
	div.aigis-debug.item.-no-grow Item 2
	div.aigis-debug.item Item 3
```


# Distribution of items

Use `-[v/h]-space-around` & `-[v/h]-space-between` to distribute the items in the flex container.

```jade
div.flex-layout.-h-space-around
	div.aigis-debug Item 1
	div.aigis-debug Item 2
	div.aigis-debug Item 3
```
```jade
div.flex-layout.-h-space-between
	div.aigis-debug Item 1
	div.aigis-debug Item 2
	div.aigis-debug Item 3
```
```jade
div(style="height: 200px").flex-layout.-v-space-around.-wrap
	div.aigis-debug Item longer 1
	div.aigis-debug Item longer 2
	div.aigis-debug Item longer 3
	div.aigis-debug Item longer 4
	div.aigis-debug Item longer 5
	div.aigis-debug Item longer 6
	div.aigis-debug Item longer 7
	div.aigis-debug Item longer 8
	div.aigis-debug Item longer 9
```
```jade
div(style="height: 200px").flex-layout.-v-space-between.-wrap
	div.aigis-debug Item longer 1
	div.aigis-debug Item longer 2
	div.aigis-debug Item longer 3
	div.aigis-debug Item longer 4
	div.aigis-debug Item longer 5
	div.aigis-debug Item longer 6
	div.aigis-debug Item longer 7
	div.aigis-debug Item longer 8
	div.aigis-debug Item longer 9
```

# Alignment of multiline items with wrap

If you have alot on items that wrap you can align the multilines with the following variants:
```jade
div.flex-layout.-wrap.-h-center
	div.aigis-debug Item longer 1
	div.aigis-debug Item longer 2
	div.aigis-debug Item longer 3
	div.aigis-debug Item longer 4
	div.aigis-debug Item longer 5
	div.aigis-debug Item longer 6
	div.aigis-debug Item longer 7
	div.aigis-debug Item longer 8
	div.aigis-debug Item longer 9
```
```jade
div.flex-layout.-wrap.-left
	div.aigis-debug Item longer 1
	div.aigis-debug Item longer 2
	div.aigis-debug Item longer 3
	div.aigis-debug Item longer 4
	div.aigis-debug Item longer 5
	div.aigis-debug Item longer 6
	div.aigis-debug Item longer 7
	div.aigis-debug Item longer 8
	div.aigis-debug Item longer 9
```
```jade
div.flex-layout.-wrap.-right
	div.aigis-debug Item longer 1
	div.aigis-debug Item longer 2
	div.aigis-debug Item longer 3
	div.aigis-debug Item longer 4
	div.aigis-debug Item longer 5
	div.aigis-debug Item longer 6
	div.aigis-debug Item longer 7
	div.aigis-debug Item longer 8
	div.aigis-debug Item longer 9
```
```jade
div(style="height: 200px").flex-layout.-wrap.-v-center
	div.aigis-debug Item longer 1
	div.aigis-debug Item longer 2
	div.aigis-debug Item longer 3
	div.aigis-debug Item longer 4
	div.aigis-debug Item longer 5
	div.aigis-debug Item longer 6
	div.aigis-debug Item longer 7
	div.aigis-debug Item longer 8
	div.aigis-debug Item longer 9
```
```jade
div(style="height: 200px").flex-layout.-wrap.-top
	div.aigis-debug Item longer 1
	div.aigis-debug Item longer 2
	div.aigis-debug Item longer 3
	div.aigis-debug Item longer 4
	div.aigis-debug Item longer 5
	div.aigis-debug Item longer 6
	div.aigis-debug Item longer 7
	div.aigis-debug Item longer 8
	div.aigis-debug Item longer 9
```
```jade
div(style="height: 200px").flex-layout.-wrap.-bottom
	div.aigis-debug Item longer 1
	div.aigis-debug Item longer 2
	div.aigis-debug Item longer 3
	div.aigis-debug Item longer 4
	div.aigis-debug Item longer 5
	div.aigis-debug Item longer 6
	div.aigis-debug Item longer 7
	div.aigis-debug Item longer 8
	div.aigis-debug Item longer 9
```




*/
.flex-layout {
  display: flex;
}
.flex-layout.-inline {
  display: flex-inline;
}
.flex-layout.-wrap {
  flex-wrap: wrap;
}
.flex-layout.-row {
  flex-wrap: nowrap;
}
.flex-layout.-row > .item {
  flex: 1 1 auto;
}
.flex-layout.-column {
  flex-direction: column;
}
.flex-layout.-center {
  justify-content: center;
  align-items: center;
  align-content: center;
}
.flex-layout.-baseline {
  align-items: baseline;
}
.flex-layout.-left {
  justify-content: flex-start;
}
.flex-layout.-right {
  justify-content: flex-end;
}
.flex-layout.-top {
  align-content: flex-start;
}
.flex-layout.-bottom {
  align-content: flex-end;
}
.flex-layout.-v-center {
  align-content: center;
}
.flex-layout.-v-space-between {
  align-content: space-between;
}
.flex-layout.-v-space-around {
  align-content: space-around;
}
.flex-layout.-h-center {
  justify-content: center;
}
.flex-layout.-h-space-between {
  justify-content: space-between;
}
.flex-layout.-h-space-around {
  justify-content: space-around;
}
.flex-layout.-items-top {
  align-items: flex-start;
}
.flex-layout.-items-bottom {
  align-items: flex-end;
}
.flex-layout.-items-center {
  align-items: center;
}
.flex-layout.-items-stretch {
  align-items: flex-stretch;
}
.flex-layout > .item.-stretch {
  align-self: stretch;
}
.flex-layout > .item.-top {
  align-self: flex-start;
}
.flex-layout > .item.-center {
  align-self: center;
}
.flex-layout > .item.-bottom {
  align-self: flex-end;
}
.flex-layout > .item.-content {
  flex: none;
}
.flex-layout > .item.-grow {
  flex-grow: 1;
}
.flex-layout > .item.-shrink {
  flex-shrink: 1;
}
.flex-layout > .item.-no-grow {
  flex-grow: 0;
}
.flex-layout > .item.-no-shrink {
  flex-shrink: 0;
}
/*
---
name: .grid-layout
category: Layout/Grid
tag:
 - component
 - layout
 - grid
 - responsive
 - flexbox
compile: true
---

A grid layout system based on flexbox. It provides sizing variants to size on different percentages.


## Percentage based sizing

The easiest use case is to use simple `.item -w1`, `.item -w1-2`, `.item -w1-3`, `.item -w1-4` for a percentage based side-by-side rendering.

```jade
div.grid-layout
	div.item.-w1
		div.aigis-debug item -w1
	div.item.-w1-2 
		div.aigis-debug item -w1-2
	div.item.-w1-2
		div.aigis-debug item -w1-2
	div.item.-w1-3
		div.aigis-debug item -w1-3
	div.item.-w2-3
		div.aigis-debug item -w2-3
	div.item.-w1-4
		div.aigis-debug item -w1-4
	div.item.-w1-2
		div.aigis-debug item -w1-2
	div.item.-w1-4
		div.aigis-debug item -w1-4
```

## Layouts on different devices

The breakpoints for different screen sizes are specified in the global settings `theme.settings.breakpoints` and can be overwritten in `theme.components.grid-layout.breakpoints`.
The default settings define breakpoints with labels: `.-small-X-X`, `.-medium-X-X`, `.-large-X-X`.

```jade
div.grid-layout
	div.item.-w1.-small-1-3.-medium-1-2.-large-1-4
		div.aigis-debug item -w1 -small-1-3 -medium-1-2 -large-1-4
	div.item.-w1.-small-1-3.-medium-1-2.-large-1-4
		div.aigis-debug item -w1 -small-1-3 -medium-1-2 -large-1-4
	div.item.-w1-2.-small-1-3.-medium-1-2.-large-1-4
		div.aigis-debug item -w1-2 -small-1-3 -medium-1-2 -large-1-4
	div.item.-w1-2.-small-1.-medium-1-2.-large-1-4
		div.aigis-debug item -w1-2 -small-1 -medium-1-2 -large-1-4
```


## Gutter

If you need a spacing between the columns add the `-gutter` variant.
The size of the gutter is specified in the `grid-gutter`variable.

```jade
div.grid-layout.-gutter
	div.item.-w1-4
		div.aigis-debug col -w1-4
	div.item.-w1-4
		div.aigis-debug col -w1-4
	div.item.-w1-2
		div.aigis-debug col -w1-2
```


## Reverse order

To reverse the order in which the columns are displayed, you can add the modifier class `.-reverse` to your table-grid.
The columns will be in DOM order when viewport switches to small layout.

```jade
div.grid-layout.-reverse
	div.item.-w1-4
		div.aigis-debug First column in DOM
	div.item.-w1-4
		div.aigis-debug Second column in DOM
	div.item.-w1-4
		div.aigis-debug Third column in DOM
	div.item.-w1-4
		div.aigis-debug Fourth column in DOM
```

## Vertical centering

You can vertical center with the help of the `flex-layout` component.

```jade
div.grid-layout.flex-layout
	div.item.-w1-4
		div.aigis-debug A column with a lot of content that should wrap on fixed size.
	div.item.-bottom
		div.aigis-debug bottom
	div.item.-center
		div.aigis-debug center
	div.item.-stretch
		div.aigis-debug(style="height:100%") stretch
```

*/
.grid-layout {
  display: flex;
  flex-wrap: wrap;
}
.grid-layout.-gutter {
  margin: -0.625rem -0.9375rem;
}
.grid-layout.-gutter > .item {
  padding: 0.625rem 0.9375rem;
}
.grid-layout.-reverse {
  flex-direction: row-reverse;
}
.grid-layout > .item.-w1 {
  flex: 0 0 100%;
  max-width: 100%;
}
.grid-layout > .item.-w1-2 {
  flex: 0 0 50%;
  max-width: 50%;
}
.grid-layout > .item.-w1-3 {
  flex: 0 0 33.333333333333336%;
  max-width: 33.333333333333336%;
}
.grid-layout > .item.-w2-3 {
  flex: 0 0 66.66666666666667%;
  max-width: 66.66666666666667%;
}
.grid-layout > .item.-w1-4 {
  flex: 0 0 25%;
  max-width: 25%;
}
.grid-layout > .item.-w3-4 {
  flex: 0 0 75%;
  max-width: 75%;
}
.grid-layout > .item.-w1-7 {
  flex: 0 0 14.285714285714286%;
  max-width: 14.285714285714286%;
}
@media all and (min-width: 32.5rem) {
  .grid-layout > .item.-xsmall-1 {
    flex: 0 0 100%;
    max-width: 100%;
  }
  .grid-layout > .item.-xsmall-1-2 {
    flex: 0 0 50%;
    max-width: 50%;
  }
  .grid-layout > .item.-xsmall-1-3 {
    flex: 0 0 33.333333333333336%;
    max-width: 33.333333333333336%;
  }
  .grid-layout > .item.-xsmall-2-3 {
    flex: 0 0 66.66666666666667%;
    max-width: 66.66666666666667%;
  }
  .grid-layout > .item.-xsmall-1-4 {
    flex: 0 0 25%;
    max-width: 25%;
  }
  .grid-layout > .item.-xsmall-3-4 {
    flex: 0 0 75%;
    max-width: 75%;
  }
  .grid-layout > .item.-xsmall-1-7 {
    flex: 0 0 14.285714285714286%;
    max-width: 14.285714285714286%;
  }
}
@media all and (min-width: 48rem) {
  .grid-layout > .item.-small-1 {
    flex: 0 0 100%;
    max-width: 100%;
  }
  .grid-layout > .item.-small-1-2 {
    flex: 0 0 50%;
    max-width: 50%;
  }
  .grid-layout > .item.-small-1-3 {
    flex: 0 0 33.333333333333336%;
    max-width: 33.333333333333336%;
  }
  .grid-layout > .item.-small-2-3 {
    flex: 0 0 66.66666666666667%;
    max-width: 66.66666666666667%;
  }
  .grid-layout > .item.-small-1-4 {
    flex: 0 0 25%;
    max-width: 25%;
  }
  .grid-layout > .item.-small-3-4 {
    flex: 0 0 75%;
    max-width: 75%;
  }
  .grid-layout > .item.-small-1-7 {
    flex: 0 0 14.285714285714286%;
    max-width: 14.285714285714286%;
  }
}
@media all and (min-width: 61.25rem) {
  .grid-layout > .item.-medium-1 {
    flex: 0 0 100%;
    max-width: 100%;
  }
  .grid-layout > .item.-medium-1-2 {
    flex: 0 0 50%;
    max-width: 50%;
  }
  .grid-layout > .item.-medium-1-3 {
    flex: 0 0 33.333333333333336%;
    max-width: 33.333333333333336%;
  }
  .grid-layout > .item.-medium-2-3 {
    flex: 0 0 66.66666666666667%;
    max-width: 66.66666666666667%;
  }
  .grid-layout > .item.-medium-1-4 {
    flex: 0 0 25%;
    max-width: 25%;
  }
  .grid-layout > .item.-medium-3-4 {
    flex: 0 0 75%;
    max-width: 75%;
  }
  .grid-layout > .item.-medium-1-7 {
    flex: 0 0 14.285714285714286%;
    max-width: 14.285714285714286%;
  }
}
@media all and (min-width: 75rem) {
  .grid-layout > .item.-large-1 {
    flex: 0 0 100%;
    max-width: 100%;
  }
  .grid-layout > .item.-large-1-2 {
    flex: 0 0 50%;
    max-width: 50%;
  }
  .grid-layout > .item.-large-1-3 {
    flex: 0 0 33.333333333333336%;
    max-width: 33.333333333333336%;
  }
  .grid-layout > .item.-large-2-3 {
    flex: 0 0 66.66666666666667%;
    max-width: 66.66666666666667%;
  }
  .grid-layout > .item.-large-1-4 {
    flex: 0 0 25%;
    max-width: 25%;
  }
  .grid-layout > .item.-large-3-4 {
    flex: 0 0 75%;
    max-width: 75%;
  }
  .grid-layout > .item.-large-1-7 {
    flex: 0 0 14.285714285714286%;
    max-width: 14.285714285714286%;
  }
}
/*
---
name: .max-width-layout
category: Layout/Page
tag:
 - component
 - layout
 - responsive
compile: true
---

This component will limit its content to a maximum width. Forthermore it can center its content.
Usefull for page content that should not span the full width.


## Percentage based sizing

*/
@media all and (min-width: 48rem) {
  .max-width-layout {
    max-width: 41.75rem;
  }
}
@media all and (min-width: 61.25rem) {
  .max-width-layout {
    max-width: 55.75rem;
  }
}
@media all and (min-width: 75rem) {
  .max-width-layout {
    max-width: 68.75rem;
  }
}
.max-width-layout.-center {
  margin-left: auto;
  margin-right: auto;
}
/*
---
name: .slide-overlay
category: Overlay/Slide
tag:
 - rollover
 - slide
 - overlay
---

Rollover component - content rollover rolls in - default from bottom

Trigger with mouserover by adding `.-hover` variant

Trigger with js by adding `.-show` variant

```jade
div.slide-overlay.-hover
    div Some main content
    div.rollover Rollover content
```

Rollover component variant -left
```jade
div.slide-overlay.-left.-hover
    div Some main content
    div.rollover Rollover content
```

Rollover component variant -right
```jade
div.slide-overlay.-right.-hover
    div Some main content
    div.rollover Rollover content
```

Rollover component variant -top
```jade
div.slide-overlay.-top.-hover
    div Some main content
    div.rollover Rollover content
```

Rollover component variant -top with js trigger
```jade
div.slide-overlay.-top.-show
    div Some main content
    div.rollover Rollover content
```
*/
.slide-overlay {
  position: relative;
  overflow: hidden;
}
.slide-overlay > .rollover {
  position: absolute;
  bottom: 0;
  transform: translate(0, 100%);
  transition: transform 0.5s ease;
}
.slide-overlay.-left > .rollover {
  transform: translate(-100%, 0);
  left: 0;
}
.slide-overlay.-right > .rollover {
  transform: translate(100%, 0);
  right: 0;
}
.slide-overlay.-top > .rollover {
  transform: translate(0, -100%);
  top: 0;
}
.slide-overlay.-show > .rollover {
  transform: translate(0, 0);
}
.slide-overlay.-hover:hover > .rollover {
  transform: translate(0, 0);
}
/*
---
name: .control-responsive
category: Responsive/Control
tag:
 - responsive
 - display
compile: true
---

Controls the display of an element depending on the current breakpoint

## Hide

`.-hide-medium` hides an element as long as the screen is wider than the breakpoint `medium`.

```jade
div.control-responsive.-hide-medium Only shown when the screen is wider than the breakpoint medium
```

## Show

`.-show-medium` show an element as long as the screen is narrower than the breakpoint `medium`.

```jade
div.control-responsive.-show-medium Only shown when the screen is narrower than the breakpoint `medium`
```

*/
@media all and (max-width: 32.5rem) {
  .control-responsive.-hide-xsmall {
    display: none;
  }
}
@media all and (min-width: 32.5rem) {
  .control-responsive.-show-xsmall {
    display: none;
  }
}
@media all and (max-width: 48rem) {
  .control-responsive.-hide-small {
    display: none;
  }
}
@media all and (min-width: 48rem) {
  .control-responsive.-show-small {
    display: none;
  }
}
@media all and (max-width: 61.25rem) {
  .control-responsive.-hide-medium {
    display: none;
  }
}
@media all and (min-width: 61.25rem) {
  .control-responsive.-show-medium {
    display: none;
  }
}
@media all and (max-width: 75rem) {
  .control-responsive.-hide-large {
    display: none;
  }
}
@media all and (min-width: 75rem) {
  .control-responsive.-show-large {
    display: none;
  }
}
@media all and (max-width: 32.5rem) {
  .hide-responsive.-xsmall {
    display: none;
  }
}
@media all and (max-width: 48rem) {
  .hide-responsive.-small {
    display: none;
  }
}
@media all and (max-width: 61.25rem) {
  .hide-responsive.-medium {
    display: none;
  }
}
@media all and (max-width: 75rem) {
  .hide-responsive.-large {
    display: none;
  }
}
/*
---
name: .image-responsive
category: Responsive/Image
tag:
 - responsive
compile: true
---

This class makes the image scaling to its max width.

```jade
img.image-responsive(src='http://www.byui.edu/images/agriculture-life-sciences/flower.jpg')
```

## Variants

`.-full` forces the picture to span to 100% of the parent

```jade
img.image-responsive.-full(src='http://www.byui.edu/images/agriculture-life-sciences/flower.jpg')
```
*/
.image-responsive {
  max-width: 100%;
  height: auto;
  display: block;
}
.image-responsive.-full {
  width: 100%;
}
.image-responsive.-inset {
  max-height: 100%;
}
/*
---
name: .media-responsive
category: Responsive/Media
tag:
 - responsive
compile: true
---

`.media-responsive` - This makes a the `.media-responsive` div a container for any media element (iframe, video, ... ) that responsive scales with a fix ratio.
The media element ( child ) needs the class `.media` to fully fill out the parents size.

The `.media-responsive` component has to predefined modifiers: `.-media-4-3`, `.-media-16-9` that define a fix ratio.

```jade
div.media-responsive.-media-16-9
	iframe.media(src="https://www.youtube.com/embed/TCd6PfxOy0Y")
```

```jade
div.media-responsive.-media-4-3
	iframe.media(src="https://www.youtube.com/embed/TCd6PfxOy0Y")
```

*/
.media-responsive {
  width: 100%;
  position: relative;
  padding-bottom: 50%;
}
.media-responsive.-media-1-1 {
  padding-bottom: 50%;
}
.media-responsive.-media-4-3 {
  padding-bottom: 75%;
}
.media-responsive.-media-16-9 {
  padding-bottom: 56.25%;
}
.media-responsive > .media {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
/*
---
name: .overflow-text
category: Text
tag:
 - component
 - text
compile: true
---

This component cuts the text on a given height and adds a fadeout effect.
This is usefull for text containers that have more content than space.


```jade
div.overflow-text(style="width: 200px;height: 70px") This is a very long text that is rwaped and cut at the end.
```
*/
.overflow-text {
  overflow: hidden;
  position: relative;
}
.overflow-text:after {
  content: "";
  position: absolute;
  bottom: 0;
  right: 0;
  left: 0;
  height: 2.1875rem;
  background: linear-gradient(to bottom, rgba(255,255,255,0), #fff 70%);
}
/*
---
name: .text-style
category: Text
tag:
 - component
 - text
compile: true
---

A text styling component for different text styles

## Default heading

```jade
div.text-style Default heading
```

## H1
```jade
div.text-style.-h1 The h1 header

```

## H2
```jade
div.text-style.-h2 The h2 header
```

## H3
```jade
div.text-style.-h3 The h3 header
```

## Bold
```jade
div.text-style.-bold Bold text
```

## Align center
```jade
div.text-style.-center Centered text
```

## Align right
```jade
div.text-style.-right Right aligned text
```

*/
.text-style.-h1 {
  font-family: 'Roboto' , serif;
  font-size: 1.25rem;
  line-height: 1.875rem;
}
.text-style.-h2 {
  font-family: 'Roboto' , serif;
  font-size: 1rem;
  line-height: 1.625rem;
  font-weight: 500;
  letter-spacing: 0.5px;
}
.text-style.-h3 {
  font-family: 'Roboto' , serif;
  font-size: 0.875rem;
  line-height: 1.25rem;
}
.text-style.-center {
  text-align: center;
}
.text-style.-right {
  text-align: right;
}
.text-style.-bold {
  font-weight: 700;
}
.text-style.-medium {
  font-weight: 500;
}
.text-style.-inverted {
  color: #fff;
}
.text-style.-indent-1 {
  padding-left: 1.875rem;
}
.text-style.-indent-2 {
  padding-left: 3.75rem;
}
.text-style.-indent-3 {
  padding-left: 5.625rem;
}
.text-style.-indent-4 {
  padding-left: 7.5rem;
}
.text-style.-indent-5 {
  padding-left: 9.375rem;
}
.text-style.-indent-6 {
  padding-left: 11.25rem;
}
.collapse-ui > .content.-transition {
  transition: height  ease;
  overflow: hidden;
  height: 0;
}
.collapse-ui.-close > .content {
  display: none;
}
.collapse-ui.-close .collapse-icon {
  transform: rotate(90deg);
}
.collapse-ui .collapse-icon {
  transition: all  ease;
}
@font-face {
  font-family: "Glober-Regular";
  src: url("../Fonts/Glober-Regular.eot") format("eot"), url("../Fonts/Glober-Regular.woff") format("woff"), url("../Fonts/Glober-Regular.woff2") format("woff2"), url("../Fonts/Glober-Regular.ttf") format("ttf");
}
@font-face {
  font-family: "Glober-Semi-Bold";
  src: url("../Fonts/Glober-Semi-Bold.eot") format("eot"), url("../Fonts/Glober-Semi-Bold.woff") format("woff"), url("../Fonts/Glober-Semi-Bold.woff2") format("woff2"), url("../Fonts/Glober-Semi-Bold.ttf") format("ttf");
}
@font-face {
  font-family: "Glober-Bold";
  src: url("../Fonts/Glober-Bold.eot") format("eot"), url("../Fonts/Glober-Bold.woff") format("woff"), url("../Fonts/Glober-Bold.woff2") format("woff2"), url("../Fonts/Glober-Bold.ttf") format("ttf");
}
@font-face {
  font-family: "Glober-Extra-Bold";
  src: url("../Fonts/Glober-Extra-Bold.eot") format("eot"), url("../Fonts/Glober-Extra-Bold.woff") format("woff"), url("../Fonts/Glober-Extra-Bold.woff2") format("woff2"), url("../Fonts/Glober-Extra-Bold.ttf") format("ttf");
}
body {
  text-rendering: optimizeLegibility;
}
h1.-error,
h2.-error,
h3.-error,
h4.-error,
p.-error {
  color: #e94d51;
}
h1.magazine-title {
  font-family: 'Glober-Extra-Bold';
  color: #fff;
  font-size: 5rem;
  line-height: 5.625rem;
  letter-spacing: 0.125rem;
  text-shadow: 0 1px 5px rgba(0,0,0,0) 0;
  text-rendering: optimizeLegibility;
}
h1 {
  font-family: 'Glober-Extra-Bold';
  color: #26262b;
  font-size: 3.125rem;
  line-height: 3.875rem;
  letter-spacing: 0.0625rem;
  text-rendering: optimizeLegibility;
}
h2 {
  font-family: 'Glober-Extra-Bold';
  color: #26262b;
  font-size: 1.875rem;
  line-height: 3rem;
  padding-bottom: 0.625rem;
}
h3 {
  font-family: 'Glober-Extra-Bold';
  color: #26262b;
  font-size: 1.375rem;
  line-height: 2rem;
  padding-bottom: 0.625rem;
  text-rendering: optimizeLegibility;
}
h4 {
  font-family: 'Glober-Extra-Bold';
  color: #26262b;
  font-size: 1.25rem;
  line-height: 1.875rem;
}
.paragraph-element a {
  font-weight: bold;
  color: #009a5b;
  font-size: 1.25rem;
  line-height: 1.875rem;
  text-rendering: optimizeLegibility;
}
.paragraph-element a:hover {
  color: #6b6b6b;
}
a {
  color: #009a5b;
}
a:hover {
  color: #6b6b6b;
}
.p-normal,
ol,
ul,
.text-style {
  font-family: 'Glober-Regular';
  color: #26262b;
  font-size: 1.25rem;
  line-height: 1.875rem;
  text-rendering: optimizeLegibility;
}
ul,
ol {
  margin-left: 1.7rem;
}
p.-bold,
.p-bold {
  font-family: 'Glober-Extra-Bold';
  color: #26262b;
  font-size: 1rem;
  line-height: 1.4375rem;
}
p.-big,
.p-big {
  font-family: 'Glober-Regular';
  color: #26262b;
  font-size: 1.5rem;
  line-height: 2rem;
}
p.-small,
.p-small {
  font-family: 'Glober-Regular';
  color: #26262b;
  font-size: 0.9375rem;
  line-height: 1.3125rem;
  padding-bottom: 3.75rem;
}
.footer-text {
  font-family: 'Glober-Semi-Bold';
  color: #26262b;
  font-size: 0.8125rem;
  line-height: 1.25rem;
  text-rendering: optimizeLegibility;
}
.footer-heading {
  color: #fff;
  font-family: 'Glober-Extra-Bold';
  font-size: 0.9375rem;
  line-height: 1.5rem;
  padding-bottom: 0.9375rem;
  text-rendering: optimizeLegibility;
}
input,
textarea {
  font-family: 'Glober-Semi-Bold';
  color: #6b6b6b;
  font-size: 1rem;
  line-height: 1.625rem;
  text-rendering: optimizeLegibility;
}
input:active,
textarea:active {
  color: #009a5b;
}
input.-disabled,
textarea.-disabled {
  color: #9c9b9b;
}
.tag-text {
  font-family: 'Glober-Bold';
  color: #6b6b6b;
  font-size: 1rem;
  line-height: 1.625rem;
  text-rendering: optimizeLegibility;
}
.label-text {
  font-family: 'Glober-Extra-Bold';
  color: #26262b;
  font-size: 1rem;
  line-height: 1.5rem;
  text-rendering: optimizeLegibility;
}
.label-text.-library {
  font-family: 'Glober-Regular';
}
.filter-text {
  font-family: 'Glober-Bold';
  color: #6b6b6b;
  font-size: 1rem;
  line-height: 1.5rem;
  text-rendering: optimizeLegibility;
}
.navigation-text {
  font-family: 'Glober-Bold';
  color: #26262b;
  font-size: 1rem;
  line-height: 1.5rem;
  text-transform: uppercase;
  letter-spacing: 0.125rem;
  text-rendering: optimizeLegibility;
}
.caption-text {
  font-family: 'Glober-Extra-Bold';
  color: #26262b;
  font-size: 0.875rem;
  line-height: 1.3125rem;
  text-align: center;
  text-rendering: optimizeLegibility;
}
.link-button,
.link-button a {
  font-family: 'Glober-Bold';
  color: #6b6b6b;
  text-transform: uppercase;
  font-size: 1rem;
  line-height: 1.4375rem;
  letter-spacing: 0.125rem;
  text-rendering: optimizeLegibility;
}
.button-text {
  font-family: 'Glober-Extra-Bold';
  font-size: 1rem;
  line-height: 1.4375rem;
  letter-spacing: 0.125rem;
  text-rendering: optimizeLegibility;
}
@media only screen and (max-width: 48rem) {
  h1.magazine-title {
    font-size: 2.5rem;
    line-height: 3rem;
    letter-spacing: 0.0625rem;
  }
  h1 {
    font-size: 2.25rem;
    line-height: 2.875rem;
    letter-spacing: 0.04375rem;
  }
  h2 {
    font-size: 1.625rem;
    line-height: 2.25rem;
    padding-bottom: 0.5rem;
  }
  h3 {
    font-size: 1.25rem;
    line-height: 1.75rem;
    padding-bottom: 0.5rem;
  }
  h4 {
    font-size: 1.125rem;
    line-height: 1.625rem;
  }
  .p-normal,
  ol,
  ul,
  .text-style {
    font-size: 1.125rem;
    line-height: 1.625rem;
  }
  ul,
  ol {
    margin-left: 1.7rem;
  }
  p.-big,
  .p-big {
    font-size: 1.25rem;
    line-height: 1.875rem;
  }
  .paragraph-element a {
    font-size: 0.9375rem;
    line-height: 1.3125rem;
  }
}
.cart-component .button .svg-icon {
  width: 20px;
}
@media only screen and (max-width: 48rem) {
  .cart-component {
    margin-bottom: 10px;
  }
}
.dropdown-filter {
  width: 100%;
  display: none;
  margin: 0.625rem auto;
}
.dropdown-filter >.description {
  margin-bottom: 0.625rem;
}
.dropdown-filter >.description a {
  color: #009a5b;
}
.dropdown-filter >.description a:hover {
  color: #26262b;
}
.dropdown-filter >.drop-down >.toggle {
  border: 1px solid #6b6b6b;
  padding: 0.3125rem;
}
.dropdown-filter >.drop-down.-open >.toggle {
  border-bottom: none;
}
.dropdown-filter >.drop-down >.drop-down-menu {
  background-color: #fff;
  border: 1px solid #6b6b6b;
  border-top: none;
  width: 100%;
}
.dropdown-filter .value {
  overflow: hidden;
  padding: 0.3125rem;
}
.dropdown-filter .value:hover {
  color: #009a5b;
}
.dropdown-filter .svg-icon {
  color: #009a5b;
}
.dropdown-filter .svg-icon.-toggle {
  color: #6b6b6b;
  width: 0.625rem;
  height: 0.375rem;
}
@media only screen and (max-width: 48rem) {
  .dropdown-filter {
    display: block;
  }
  .dropdown-filter >.drop-down {
    display: block;
    margin: 0 auto;
  }
  .dropdown-filter >.drop-down >.toggle {
    display: block;
  }
}
.element-layout {
  max-width: 62.5rem;
  width: 100%; /* IE11 fix */
  margin-right: auto;
  margin-left: auto;
  padding: 0 1rem;
}
.element-layout.-small {
  max-width: 50rem;
}
.element-layout.-full {
  width: 100%;
  max-width: 100%;
}
.feedback-form .autocomplete >.value {
  cursor: pointer;
  padding-top: 5px;
  border-top: 1px solid #9c9b9b;
}
.footer-component {
  color: #fff;
  padding: 1.875rem 8.75rem;
  background-color: #26262b;
}
.footer-component .mailto,
.footer-component .impressum,
.footer-component .phone {
  color: #fff;
}
.footer-component .mailto:hover,
.footer-component .impressum:hover,
.footer-component .phone:hover {
  text-decoration: underline;
}
@media only screen and (max-width: 48rem) {
  .footer-component {
    padding: 1.875rem 4.375rem;
  }
  .footer-component .-location,
  .footer-component .-phone,
  .footer-component .-mail,
  .footer-component .impressum,
  .footer-component .footer-heading {
    display: block;
    text-align: center;
  }
  .footer-component .logo {
    display: flex;
    justify-content: center;
  }
  .footer-component .-spacer {
    display: none;
  }
  .footer-component .-phone,
  .footer-component .-mail,
  .footer-component .-impressum {
    padding-bottom: 1.25rem;
  }
}
.form-component .input {
  background-color: #f8f8f8;
  color: #000;
  border: 2px solid #a9a9a9;
  padding: 0.625rem;
  font-size: 1.25rem;
  width: 12.5rem;
  margin-bottom: 1rem;
}
.form-component .button {
  width: 8.125rem;
  line-height: 0.8;
  margin-bottom: 1rem;
}
.form-component .button:focus {
  box-shadow: 0 0 3pt 2pt #009a5b;
  outline: none;
  border: none;
}
.level-box {
  display: flex;
  align-items: center;
}
.level-box >.box {
  width: 20px;
  height: 20px;
  margin-right: 0.3125rem;
  border: 2px solid #009fe3;
  display: inline-block;
}
.level-box >.box.-filled {
  background-color: #009fe3;
}
.meta-box {
  padding: 3.125rem 0;
}
.meta-box.-editor .task-menu >.add {
  display: none;
}
@media only screen and (max-width: 48rem) {
  .meta-box {
    padding: 2.5rem 0;
  }
  .meta-box.-editor {
    display: none;
  }
}
@page {
  margin: 1cm;
}
@media print {
  .pdf-license {
    page-break-after: always;
  }
}
.ie-fixMinHeight {
  display: flex;
}
.ie-fixMinHeight .page {
  min-height: 100vh;
  position: relative;
  width: 100%;
  display: flex;
  flex-direction: column;
}
.ie-fixMinHeight .page .content {
  flex-grow: 1;
}
.teacher-comment {
  display: flex;
  padding-top: 1.875rem;
}
.teacher-comment > .download {
  display: flex;
}
.teacher-comment > .download > svg {
  margin-right: 1rem;
}
.zikzak-logo-white {
  display: flex;
}
.zikzak-logo-white > img {
  height: 3.125rem;
}
.zikzak-logo {
  display: flex;
}
.zikzak-logo > img {
  height: 3.125rem;
}
/*
---
name: .padding-box
category: Box/Padding
tag:
 - component
 - layout
compile: true
---

A simple component to add paddings

## Applying paddings

The easiest use case is to use simple `.padding-box .-all` for a padding on top, right, bottom and left with default size or
`.-top`, `.-right`, `.-bottom` and `.-left` for specified sides

```jade
div.aigis-debug.padding-box.-all Defaut padding applied on top, right, bottom and left
```
```jade
div.aigis-debug.padding-box.-bottom Defaut padding applied on bottom
```

## Variants

The variants for the paddings are `.-top-{size}`, `.-right-{size}`, `.-bottom-{size}` and `.left-{size}` together with sizes small, medium or large.
All sizes are defined in the variable theme.components.padding-box. Values are `small`, `medium`, and `large`

```jade
div.aigis-debug.padding-box.-left-small Small padding applied on left
```
```jade
div.aigis-debug.padding-box.-right-small(style="text-align:right") Small padding applied on right
```
```jade
div.aigis-debug.padding-box.-top-small Small padding applied on top
```
```jade
div.aigis-debug.padding-box.-bottom-small Small padding applied on bottom
```

There are also shortcuts for vertical `.-v-{size}` and horizontal `.-h-{size}` together with sizes

```jade
div.aigis-debug.padding-box.-v-medium Medium padding applied on top and bottom
```
```jade
div.aigis-debug.padding-box.-h-medium(style="width: 300px") Medium padding applied on right and left
```
```jade
div.aigis-debug.padding-box.-h-medium.-top-large(style="width: 400px") Medium padding applied on right and left, large padding applied on top
```
*/
.padding-box.-top {
  padding-top: 0.625rem;
}
.padding-box.-right {
  padding-right: 0.625rem;
}
.padding-box.-bottom {
  padding-bottom: 0.625rem;
}
.padding-box.-left {
  padding-left: 0.625rem;
}
.padding-box.-h {
  padding-left: 0.625rem;
  padding-right: 0.625rem;
}
.padding-box.-v {
  padding-top: 0.625rem;
  padding-bottom: 0.625rem;
}
.padding-box.-all {
  padding: 0.625rem 0.625rem;
}
.padding-box.-top-small {
  padding-top: 0.125rem;
}
.padding-box.-right-small {
  padding-right: 0.125rem;
}
.padding-box.-bottom-small {
  padding-bottom: 0.125rem;
}
.padding-box.-left-small {
  padding-left: 0.125rem;
}
.padding-box.-h-small {
  padding-left: 0.125rem;
  padding-right: 0.125rem;
}
.padding-box.-v-small {
  padding-top: 0.125rem;
  padding-bottom: 0.125rem;
}
.padding-box.-all-small {
  padding: 0.125rem 0.125rem;
}
.padding-box.-top-medium {
  padding-top: 1rem;
}
.padding-box.-right-medium {
  padding-right: 1rem;
}
.padding-box.-bottom-medium {
  padding-bottom: 1rem;
}
.padding-box.-left-medium {
  padding-left: 1rem;
}
.padding-box.-h-medium {
  padding-left: 1rem;
  padding-right: 1rem;
}
.padding-box.-v-medium {
  padding-top: 1rem;
  padding-bottom: 1rem;
}
.padding-box.-all-medium {
  padding: 1rem 1rem;
}
.padding-box.-top-large {
  padding-top: 2rem;
}
.padding-box.-right-large {
  padding-right: 2rem;
}
.padding-box.-bottom-large {
  padding-bottom: 2rem;
}
.padding-box.-left-large {
  padding-left: 2rem;
}
.padding-box.-h-large {
  padding-left: 2rem;
  padding-right: 2rem;
}
.padding-box.-v-large {
  padding-top: 2rem;
  padding-bottom: 2rem;
}
.padding-box.-all-large {
  padding: 2rem 2rem;
}
.padding-box.-gutter {
  padding: 0.9375rem 0.9375rem;
}
.button-back {
  height: 2.5rem;
  background-color: transparent;
  color: #6b6b6b;
  text-transform: uppercase;
  display: flex;
  justify-content: center;
  align-items: center;
}
.button-back:hover {
  color: #009a5b;
}
.button-back > .svg-icon {
  fill: #009a5b;
  margin-top: 0.4375rem;
}
.button-general {
  height: 2.5rem;
  border-radius: 1.25rem;
  padding: 0.625rem 0.9375rem;
  color: #fff;
  text-transform: uppercase;
  cursor: pointer;
  display: flex;
  justify-content: center;
  align-items: center;
}
.button-primary {
  background-color: #009a5b;
  border: none;
}
.button-primary:hover {
  background-color: #037848;
}
.button-primary.-disabled {
  cursor: default;
  background-color: #9c9b9b;
  color: #26262b;
}
.button-secondary {
  background-color: #fff;
  border: 2px solid #009a5b;
  color: #009a5b;
}
.button-secondary:hover {
  background-color: #009a5b;
  color: #fff;
}
.button-secondary.-active {
  background-color: #009a5b;
  color: #fff;
}
.link-button > a:hover {
  color: #009a5b;
}
.cart-component .button .svg-icon {
  width: 20px;
}
@media only screen and (max-width: 48rem) {
  .cart-component {
    margin-bottom: 10px;
  }
}
.collapse-ui {
  cursor: pointer;
}
.collapse-ui >.content {
  cursor: auto;
}
.collapse-ui >.toggle {
  border-bottom: 2px solid #26262b;
}
.collapse-ui >.toggle > .collapse-icon {
  width: 1.5rem;
  height: 1.5rem;
  background-image: url("../images/icon-minus.svg");
}
.collapse-ui >.toggle > .collapse-icon:hover {
  background-image: url("../images/icon-minus-grey.svg");
}
.collapse-ui.-close > .toggle > .collapse-icon {
  background-image: url("../images/icon-plus.svg");
}
.collapse-ui.-close > .toggle > .collapse-icon:hover {
  background-image: url("../images/icon-plus-grey.svg");
}
.contents-table .element:nth-child(even) {
  flex-direction: row-reverse;
}
.contents-table .element {
  margin-bottom: 2.25rem;
}
.contents-table .element .image {
  width: 100%;
}
.contents-table .element .page-row {
  align-items: center;
}
.contents-table .element .pagenumber {
  color: #009a5b;
  font-family: Glober-Extra-Bold;
  line-height: 3.875rem;
  font-size: 3.125rem;
  letter-spacing: 0.0625rem;
}
.image-element {
  padding-bottom: 3.75rem;
}
.image-element > .image {
  min-width: 100%;
}
.image-element > .caption {
  padding-top: 0.625rem;
}
.license-content {
  margin-bottom: 7.5rem;
}
.license-content.-auth .auth .dialog {
  background-color: #f8f8f8;
  padding-top: 9.375rem;
  padding-bottom: 3.75rem;
  margin-bottom: 3.75rem;
}
.license-content.-noauth .auth {
  position: relative;
}
.license-content.-noauth .auth .overlay {
  position: absolute;
  z-index: 50;
  width: 100%;
  height: 100%;
  opacity: 0.7;
  background-color: #fff;
}
.license-content.-noauth .noauth {
  background-color: #dcecdc;
  padding-top: 9.375rem;
  padding-bottom: 3.75rem;
  margin-bottom: 3.75rem;
}
.license-content .button {
  display: inline-block;
}
.license-content .cart-component >.button {
  width: 200px;
  display: flex;
}
.license-content .link {
  border-bottom: 1px solid #009a5b;
  color: #009a5b;
  text-rendering: optimizeLegibility;
}
.license-content .link:hover {
  color: #6b6b6b;
}
.license-content .user-licenses >.table {
  width: 100%;
}
.license-content .user-licenses >.table th {
  text-align: left;
}
.license-content .user-licenses >.table td,
.license-content .user-licenses >.table th {
  padding: 0.25rem;
}
.overview-content {
  margin-top: 9.375rem;
}
.paragraph-element {
  padding-bottom: 3.75rem;
}
.paragraph-element ul >li,
.paragraph-element ol >li {
  padding: 0.3125rem;
}
.schoolpage-content {
  margin-top: 9.375rem;
}
.schoolpage-content.element-layout {
  max-width: 43.75rem;
}
.singlepage-content {
  margin-top: 9.375rem;
  margin-bottom: 7.5rem;
}
.slide-container {
  padding-bottom: 3.75rem;
}
.startpage-content {
  padding-top: 4rem;
}
.startpage-content >.subheader {
  background-color: #ffd226;
}
.startpage-content >.subheader .award {
  max-width: 1100px;
  margin: 0 auto;
}
.startpage-content >.subheader .award .container {
  margin-left: 16px;
}
.startpage-content >.subheader .award .image {
  display: inline-block;
}
.startpage-content >.subheader .award .pokal {
  height: 50px;
  margin-right: 32px;
}
.startpage-content >.subheader .award .worlddidac {
  height: 32px;
  margin-right: 16px;
}
.startpage-content >.subheader .award .text {
  font-size: 22px;
  line-height: 30px;
  font-family: 'Glober-Semi-Bold';
}
.startpage-content .intro {
  background-color: #f8f8f8;
  padding-top: 6.25rem;
}
.startpage-content .video-element {
  max-width: 62.5rem;
  width: 100%;
  margin-right: auto;
  margin-left: auto;
  padding: 0 1rem;
  margin-bottom: 3.75rem;
}
@media only screen and (max-width: 48rem) {
  .startpage-content >.subheader .award {
    display: block;
  }
  .startpage-content >.subheader .award .container {
    margin-bottom: 16px;
    margin-left: 16px;
  }
  .startpage-content >.subheader .award .text {
    font-size: 14px;
    line-height: 20px;
    font-family: 'Glober-Semi-Bold';
    margin-left: 16px;
  }
  .startpage-content .video-element {
    margin-bottom: 2.5rem;
  }
}
.startpage-contents .contents-row .item {
  padding: 5px;
}
.startpage-contents .contents-row .pagenumber {
  width: 2rem;
  font-weight: bold;
}
.video-element {
  padding-bottom: 3.75rem;
}
.video-element > .caption {
  padding-top: 0.625rem;
}
.year-header {
  border-bottom: solid 2px #6b6b6b;
  padding-bottom: 1.875rem;
  margin-top: 4.6875rem;
  margin-bottom: 1.875rem;
}
.dropdown-filter {
  width: 100%;
  display: none;
  margin: 0.625rem auto;
}
.dropdown-filter >.description {
  margin-bottom: 0.625rem;
}
.dropdown-filter >.description a {
  color: #009a5b;
}
.dropdown-filter >.description a:hover {
  color: #26262b;
}
.dropdown-filter >.drop-down >.toggle {
  border: 1px solid #6b6b6b;
  padding: 0.3125rem;
}
.dropdown-filter >.drop-down.-open >.toggle {
  border-bottom: none;
}
.dropdown-filter >.drop-down >.drop-down-menu {
  background-color: #fff;
  border: 1px solid #6b6b6b;
  border-top: none;
  width: 100%;
}
.dropdown-filter .value {
  overflow: hidden;
  padding: 0.3125rem;
}
.dropdown-filter .value:hover {
  color: #009a5b;
}
.dropdown-filter .svg-icon {
  color: #009a5b;
}
.dropdown-filter .svg-icon.-toggle {
  color: #6b6b6b;
  width: 0.625rem;
  height: 0.375rem;
}
@media only screen and (max-width: 48rem) {
  .dropdown-filter {
    display: block;
  }
  .dropdown-filter >.drop-down {
    display: block;
    margin: 0 auto;
  }
  .dropdown-filter >.drop-down >.toggle {
    display: block;
  }
}
.editor-content dl {
  display: flex;
  flex-flow: row wrap;
}
.editor-content dt {
  flex-basis: 30%;
  padding: 2px 4px;
  background: #333;
  margin-right: 2px;
  margin-bottom: 2px;
  background-color: #fff;
}
.editor-content dt.customer {
  margin-top: 1rem;
}
.editor-content dd {
  flex-basis: 60%;
  flex-grow: 1;
  margin-bottom: 2px;
  padding: 2px 4px;
  background-color: #fff;
}
.editor-content dd.customer {
  margin-top: 1rem;
}
.editor-content .form-component .input {
  margin: 0;
}
.editor-content .autocomplete-component {
  border: 1px solid #000;
}
.pagination {
  list-style: none;
  text-align: center;
  margin-bottom: 10px;
}
.pagination li {
  display: inline;
  padding: 0.3125rem;
}
.state-symbol.-redeemed {
  background-color: #009a5b;
}
.state-symbol.-unredeemed {
  background-color: #6b6b6b;
}
.state-symbol.-deactivated {
  background-color: #e94d51;
}
.element-layout {
  max-width: 62.5rem;
  width: 100%; /* IE11 fix */
  margin-right: auto;
  margin-left: auto;
  padding: 0 1rem;
}
.element-layout.-small {
  max-width: 50rem;
}
.element-layout.-full {
  width: 100%;
  max-width: 100%;
}
.feedback-form .autocomplete >.value {
  cursor: pointer;
  padding-top: 5px;
  border-top: 1px solid #9c9b9b;
}
.footer-component {
  color: #fff;
  padding: 1.875rem 8.75rem;
  background-color: #26262b;
}
.footer-component .mailto,
.footer-component .impressum,
.footer-component .phone {
  color: #fff;
}
.footer-component .mailto:hover,
.footer-component .impressum:hover,
.footer-component .phone:hover {
  text-decoration: underline;
}
@media only screen and (max-width: 48rem) {
  .footer-component {
    padding: 1.875rem 4.375rem;
  }
  .footer-component .-location,
  .footer-component .-phone,
  .footer-component .-mail,
  .footer-component .impressum,
  .footer-component .footer-heading {
    display: block;
    text-align: center;
  }
  .footer-component .logo {
    display: flex;
    justify-content: center;
  }
  .footer-component .-spacer {
    display: none;
  }
  .footer-component .-phone,
  .footer-component .-mail,
  .footer-component .-impressum {
    padding-bottom: 1.25rem;
  }
}
.form-component .input {
  background-color: #f8f8f8;
  color: #000;
  border: 2px solid #a9a9a9;
  padding: 0.625rem;
  font-size: 1.25rem;
  width: 12.5rem;
  margin-bottom: 1rem;
}
.form-component .button {
  width: 8.125rem;
  line-height: 0.8;
  margin-bottom: 1rem;
}
.form-component .button:focus {
  box-shadow: 0 0 3pt 2pt #009a5b;
  outline: none;
  border: none;
}
.answer-container {
  padding-bottom: 1.5625rem;
}
.answer-container > .input {
  margin-right: 0.9375rem;
  flex: none;
}
.dropdown-text > .select {
  background-color: #f8f8f8;
  border: solid 1px #9c9b9b;
}
.feedback-box > .feedback-panel {
  display: flex;
  align-items: center;
}
.feedback-box > .feedback-panel > .icon {
  display: inline-block;
  min-width: 2.5rem;
  height: 2.5rem;
  margin-right: 1.25rem;
}
.feedback-box.-wrong.select {
  border: 1px solid #ea5762;
  background-color: #ffe0e2;
}
.feedback-box.-wrong > .answer-container > .text {
  color: #ea5762;
}
.feedback-box.-wrong > .feedback-panel > .icon {
  background-image: url("../images/icon-wrong.svg");
}
.feedback-box.-correct.select {
  border: 1px solid #009a5b;
  background-color: #dcecdc;
}
.feedback-box.-correct > .answer-container > .text {
  color: #009a5b;
}
.feedback-box.-correct > .feedback-panel > .icon {
  background-image: url("../images/icon-correct.svg");
}
.feedback-container {
  display: inline-block;
  padding-top: 2.1875rem;
}
.feedback-panel {
  background-color: #f8f8f8;
}
.hotspot-image {
  min-width: 100%;
  margin-bottom: 0.625rem;
}
.hotspot-point {
  background-color: #6b6b6b;
  border-radius: 50%;
  width: 1.5625rem;
  height: 1.5625rem;
  opacity: 0.6;
}
.hotspot-point.-wrong {
  background-color: #ea5762;
}
.hotspot-point.-correct {
  background-color: #009a5b;
}
.hotspot-question {
  padding-bottom: 1.25rem;
}
.question-container {
  padding-bottom: 1.5625rem;
}
.level-box {
  display: flex;
  align-items: center;
}
.level-box >.box {
  width: 20px;
  height: 20px;
  margin-right: 0.3125rem;
  border: 2px solid #009fe3;
  display: inline-block;
}
.level-box >.box.-filled {
  background-color: #009fe3;
}
.add-license >.input {
  padding: 5px;
  font-size: 1.875rem;
  width: 6.25rem;
}
.add-license .button-general {
  line-height: 0.8px;
}
.magazine-header >.cover-image {
  position: relative;
  height: 460px;
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
}
.magazine-header >.cover-image >.transparent {
  position: absolute;
  width: 100%;
  height: 100%;
  background-color: rgba(0,0,0,0.3);
  z-index: 5;
}
.magazine-header >.cover-image > .content {
  position: absolute;
  z-index: 10;
  width: 100%;
  padding-top: 14rem;
}
.magazine-header >.cover-image > .content > .date {
  color: #fff;
}
.magazine-header >.cover-image.-mobile {
  display: none;
}
@media only screen and (max-width: 48rem) {
  .magazine-header >.cover-image {
    display: none;
  }
  .magazine-header >.cover-image.-mobile {
    display: block;
    height: 300px;
  }
  .magazine-header >.cover-image.-mobile > .content {
    padding-top: 8rem;
  }
}
.magazine-page {
  margin-bottom: 7.5rem;
}
.magazine-page.-student .magazine-description,
.magazine-page.-student .teacher-comment,
.magazine-page.-student .unit-menu,
.magazine-page.-student .meta-box,
.magazine-page.-student .dropdown-filter {
  display: none;
}
.magazine-preview {
  text-align: center;
  width: 100%;
}
.magazine-preview.-hidden {
  display: none;
}
.magazine-preview >.image-container {
  position: relative;
  display: inline-block;
  text-align: left;
}
.magazine-preview >.image-container .preview-icon {
  color: #009a5b;
}
.magazine-preview >.image-container .future-publication {
  position: absolute;
  top: 0px;
  width: 100%;
  background-color: #009fe3;
  color: #fff;
  line-height: 3rem;
  text-align: center;
}
.magazine-preview:hover .preview .preview-icon {
  display: none;
}
.magazine-preview:hover .preview .preview-icon.-hover {
  display: inline-block;
}
.magazine-preview:hover .image {
  box-shadow: 0px 2px 16px rgba(107,107,107,0.5);
  transition: box-shadow 0.3s;
}
.magazine-preview .image {
  box-shadow: 0 2px 4px 0 rgba(107,107,107,0.3);
  max-height: 20rem;
}
.magazine-preview .date {
  padding-top: 0.9375rem;
}
.magazine-preview .preview {
  text-align: center;
  position: absolute;
  top: 130px;
  transform: translate(-50%, 0%);
  left: 50%;
}
.magazine-preview .preview .preview-icon {
  width: 60px;
  height: 60px;
}
.magazine-preview .preview .preview-icon.-hover {
  display: none;
}
.magazine-preview .preview .text {
  color: #009a5b;
  font-size: 1rem;
  font-weight: bold;
}
.magazine-preview.-future .image-container .cart-component {
  bottom: 10px;
}
.magazine-preview.-disabled .image-container .image,
.magazine-preview.-disabled .image-container .date,
.magazine-preview.-disabled .image-container .title {
  opacity: 0.5;
}
.meta-box {
  padding: 3.125rem 0;
}
.meta-box.-editor .task-menu >.add {
  display: none;
}
@media only screen and (max-width: 48rem) {
  .meta-box {
    padding: 2.5rem 0;
  }
  .meta-box.-editor {
    display: none;
  }
}
.mobilenavigation-mainheader {
  display: none;
  text-align: right;
  align-items: center;
  justify-content: flex-end;
}
.mobilenavigation-mainheader > a {
  color: #26262b;
}
@media only screen and (max-width: 61.25rem) {
  .mobilenavigation-mainheader {
    display: flex;
  }
}
.mobilenavigation-menu {
  position: absolute;
  top: 4.4375rem;
  min-width: 30%;
  right: 0;
  background-color: #fff;
  box-shadow: 0px 5px 7px 0px rgba(38,38,43,0.1);
  max-width: 23.4375rem;
  padding: 2.8125rem 1rem;
}
.mobilenavigation-menu > a.-showall,
.mobilenavigation-menu a.-about,
.mobilenavigation-menu a.-license {
  color: #26262b;
  justify-content: flex-start;
}
.mobilenavigation-menu > a.-showall:hover,
.mobilenavigation-menu a.-about:hover,
.mobilenavigation-menu a.-license:hover {
  color: #009a5b;
}
.mobilenavigation-menu > a.-showall,
.mobilenavigation-menu > a.-about {
  padding-bottom: 1.25rem;
}
.mobilenavigation-menu > a.-license {
  padding-bottom: 3.75rem;
}
.navigation-link {
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}
.navigation-link > .icon {
  display: flex;
}
.navigation-link > .icon svg {
  color: #009a5b;
  width: 1.875rem;
  height: 1.875rem;
}
.navigation-link > .icon svg.-open,
.navigation-link > .icon svg.-close {
  margin: 0.625rem;
}
.navigation-link > .text {
  margin-left: 0.9375rem;
}
.navigation-link:hover .text {
  color: #009a5b;
}
.navigation-link .svg-icon.-inline.-close {
  display: none;
}
.navigation-link.-open .svg-icon.-inline.-close {
  display: inline-block;
}
.navigation-link.-open .svg-icon.-inline.-open {
  display: none;
}
.navigation-link.-active >.text {
  border-bottom: 2px solid #009a5b;
  color: #009a5b;
}
.navigation-main {
  background-color: #fff;
  padding: 0.625rem 1.875rem 0.625rem 1.875rem;
  box-shadow: 0 2px 8px 0 rgba(38,38,43,0.1);
  z-index: 75;
}
.navigation-main.-transparent {
  background-color: rgba(0,0,0,0);
  box-shadow: none;
}
.navigation-main.-transparent .navigation-link {
  color: #fff;
}
.navigation-main.-transparent .navigation-link > .icon svg {
  color: #fff;
}
.navigation-main.-transparent .button-secondary {
  background-color: transparent;
  border: 2px solid #fff;
  color: #fff;
}
.navigation-main.-transparent .zikzak-logo-white {
  display: block;
}
.navigation-main.-transparent .zikzak-logo {
  display: none;
}
.navigation-main.-transparent .mobilenavigation-menu .navigation-link {
  color: #000;
}
.navigation-main.-transparent .mobilenavigation-menu .navigation-link .button-secondary {
  background-color: #fff;
  border: 2px solid #009a5b;
  color: #009a5b;
}
.navigation-main.-transparent .mobilenavigation-menu .navigation-link .button-secondary:hover {
  background-color: #009a5b;
  color: #fff;
}
.navigation-main.-transparent .mobilenavigation-menu .navigation-link:hover {
  color: #009a5b;
}
.navigation-main.-transparent .mobilenavigation-menu .navigation-link > .icon svg {
  color: #009a5b;
}
.navigation-main .zikzak-logo-white {
  display: none;
}
.navigation-main .-right {
  text-align: right;
}
.navigation-main.-schoolpage .navigation-mainheader,
.navigation-main.-schoolpage .mobilenavigation-mainheader {
  display: none;
}
.navigation-main.-overview,
.navigation-main.-startpage,
.navigation-main.-schoolpage {
  box-shadow: none;
}
.navigation-main.-overview .mobilenavigation-menu,
.navigation-main.-startpage .mobilenavigation-menu,
.navigation-main.-schoolpage .mobilenavigation-menu {
  box-shadow: none;
  border-left: 1px solid #9c9b9b;
  border-bottom: 1px solid #9c9b9b;
}
@media only screen and (max-width: 61.25rem) {
  .navigation-main {
    padding: 0.625rem 1.25rem 0.625rem 1.875rem;
  }
  .navigation-main.-overview,
  .navigation-main.-startpage,
  .navigation-main.-schoolpage {
    border-bottom: 1px solid #9c9b9b;
  }
}
.navigation-mainheader {
  text-align: right;
  display: flex;
  align-items: center;
  justify-content: flex-end;
}
.navigation-mainheader > .navigation-link {
  margin-right: 1.5rem;
}
.navigation-mainheader > a {
  color: #26262b;
}
@media only screen and (max-width: 61.25rem) {
  .navigation-mainheader {
    display: none;
  }
}
.navigation-unit {
  background-color: #fff;
  padding: 0.625rem 1.875rem 0.625rem 1.875rem;
  box-shadow: 0 2px 8px 0 rgba(38,38,43,0.1);
  z-index: 10;
}
.navigation-unit .-right {
  text-align: right;
}
.navigation-unit .back {
  width: -webkit-min-content;
  width: -moz-min-content;
  width: min-content;
}
.navigation-unit .stupidIE {
  display: -ms-grid;
  -ms-grid-columns: min-content;
}
.navigation-unitheader {
  text-align: right;
  display: flex;
  align-items: center;
  justify-content: flex-end;
}
.navigation-unitheader > a {
  color: #26262b;
}
.navigation-unitheader > .close {
  padding-left: 1.875rem;
}
.navigation-unitheader > .close > svg {
  width: 2.5rem;
  height: 2.5rem;
}
@media only screen and (max-width: 48rem) {
  .navigation-unitheader > .download > .downloadtext {
    display: none;
  }
  .navigation-unitheader > .close {
    padding-left: 1.25rem;
  }
}
.preview-overview >.start-magazineoverview >.element-layout {
  padding: 0;
}
.preview-page .level-image {
  width: 100%;
}
.preview-page .level-image.-desktop {
  display: block;
}
.preview-page .level-image.-mobile {
  display: none;
}
@media only screen and (max-width: 32.5rem) {
  .preview-page .image.-desktop {
    display: none;
  }
  .preview-page .image.-mobile {
    display: block;
  }
}
.preview-switch {
  text-transform: uppercase;
  padding: 3.4375rem 0;
  background-color: #f2f8fd;
}
.preview-switch .toggle {
  width: 64px;
  height: 40px;
  margin: 0 16px;
}
.preview-switch .preview,
.preview-switch .magazine {
  display: inline-block;
  color: #6b6b6b;
}
.preview-switch .preview.-active,
.preview-switch .magazine.-active {
  color: #009a5b;
}
.preview-switch .preview:hover,
.preview-switch .magazine:hover {
  color: #009a5b;
}
.preview-switch .cart-component {
  display: inline-block;
}
.preview-switch .cart-component .button {
  width: 150px;
  float: right;
}
@media only screen and (max-width: 48rem) {
  .preview-switch.navigation-text {
    font-size: 0.875rem;
  }
  .preview-switch {
    display: flex;
    justify-content: center;
  }
  .preview-switch >.element-layout {
    width: unset;
  }
  .preview-switch .cart-component {
    display: none;
  }
}
@page {
  margin: 1cm;
}
@media print {
  .pdf-license {
    page-break-after: always;
  }
}
.start-arrownavigation .svg-icon.-right {
  transform: rotate(180deg);
}
.start-arrownavigation .previous,
.start-arrownavigation .next {
  display: none;
  cursor: pointer;
  font-size: 5rem;
  font-weight: bold;
  color: #009a5b;
}
@media only screen and (max-width: 61.25rem) {
  .start-arrownavigation {
    display: flex;
    flex-direction: row;
    width: 100%;
  }
  .start-arrownavigation .previous,
  .start-arrownavigation .next {
    display: block;
    transform: translate(0%, 160px);
  }
  .start-arrownavigation .previous,
  .start-arrownavigation .next,
  .start-arrownavigation .elements {
    flex: 1 1 auto;
    text-align: center;
  }
}
.start-licenseinstruction {
  background-color: #009fe3;
  color: #fff;
}
.start-licenseinstruction .p-big,
.start-licenseinstruction h2 {
  color: #fff;
}
.start-licenseinstruction .svg-icon.cart {
  width: 4.375rem;
  height: 4.0625rem;
}
.start-licenseinstruction .svg-icon.url {
  width: 8.625rem;
  height: 4.0625rem;
}
.start-licenseinstruction .svg-icon.code {
  width: 4.375rem;
  height: 4.0625rem;
}
.start-licenseinstruction .svg-icon.book {
  width: 4.375rem;
  height: 4.0625rem;
}
.start-licenseinstruction .arrow {
  margin-top: 1.25rem;
}
.start-licenseinstruction .elements {
  margin-top: 2.5rem;
}
.start-licenseinstruction .elements .element {
  text-align: center;
}
.start-licenseinstruction .elements .element .text {
  color: #fff;
}
.start-licenseinstruction .container {
  padding: 3.75rem 1rem;
}
@media only screen and (max-width: 48rem) {
  .start-licenseinstruction .elements {
    margin-top: 1.875rem;
  }
  .start-licenseinstruction .elements .element {
    text-align: center;
  }
  .start-licenseinstruction .elements .arrow {
    transform: rotate(90deg);
    margin-bottom: 1.25rem;
  }
  .start-licenseinstruction .elements .url,
  .start-licenseinstruction .elements .code {
    margin-bottom: 2.3125rem;
  }
  .start-licenseinstruction .container {
    padding: 3.75rem 0rem;
  }
}
.start-magazineoverview {
  margin-bottom: 3.75rem;
  position: relative;
}
.start-magazineoverview .start-pointnavigation {
  bottom: 100px;
  display: none;
}
@media only screen and (max-width: 61.25rem) {
  .start-magazineoverview {
    margin-bottom: 2.5rem;
  }
  .start-magazineoverview .description {
    display: none;
  }
  .start-magazineoverview .start-pointnavigation {
    display: block;
  }
  .start-magazineoverview .button-container {
    text-align: center;
  }
  .start-magazineoverview .buttons {
    display: inline-block;
  }
  .start-magazineoverview .buttons >.order {
    margin: 0 auto 0.9375rem auto;
  }
}
.start-pointnavigation {
  text-align: center;
  width: 100px;
  display: inline-block;
  position: absolute;
  bottom: 30px;
  left: 50%;
  transform: translate(-50%, 0%);
}
.start-pointnavigation.-hidden {
  display: none;
}
.start-pointnavigation .point {
  display: inline-block;
  cursor: pointer;
  margin: 5px;
  border-radius: 50%;
  width: 10px;
  height: 10px;
  background-color: #f1f0f1;
}
.start-pointnavigation .point.-active {
  background-color: #9c9b9b;
}
.start-teaser {
  margin-bottom: 3.75rem;
}
.start-teaser .download .svg-icon {
  width: 17px;
  height: 14px;
}
.start-teaser .download .text {
  height: 1.4375rem;
  color: #6b6b6b;
  font-family: Glober-Bold;
  font-size: 1rem;
  letter-spacing: 0.125rem;
  line-height: 1.4375rem;
}
.start-teaser .download a:hover .text {
  color: #009a5b;
}
.start-teaser .cover .image-container {
  position: relative;
  display: block;
}
.start-teaser .cover .image-container .preview {
  display: none;
  color: #009a5b;
  position: absolute;
  transform: translate(-50%, -50%);
  z-index: 10;
  left: 50%;
  top: 50%;
  text-align: center;
}
.start-teaser .cover .image-container .preview .preview-icon {
  width: 60px;
  height: 60px;
}
.start-teaser .cover .image-container .preview .text {
  color: #009a5b;
  font-size: 1rem;
  font-weight: bold;
}
.start-teaser .cover .image-container .image {
  width: 100%;
}
.start-teaser .cover .image-container:hover .preview {
  display: block;
}
.start-teaser .cover .image-container:hover .image {
  box-shadow: 0px 2px 16px rgba(107,107,107,0.5);
  opacity: 0.5;
  transition: box-shadow 0.3s, opacity 0.3s;
}
.start-teaser .grid-layout.-gutter > .item.infos {
  padding-left: 100px;
}
.start-teaser .grid-layout.-gutter > .item.infos > .date {
  margin-bottom: 0.9375rem;
}
.start-teaser .grid-layout.-gutter > .item.infos > .title {
  margin-bottom: 0.9375rem;
}
.start-teaser .grid-layout.-gutter > .item.infos > .description a {
  color: #009a5b;
  text-rendering: optimizeLegibility;
  font-weight: bold;
}
.start-teaser .grid-layout.-gutter > .item.infos > .description a:hover {
  color: #6b6b6b;
}
.start-teaser .grid-layout.-gutter > .item.infos .link-button:hover {
  color: #009a5b;
}
.start-teaser .grid-layout.-gutter > .item.infos .link-button .svg-icon {
  width: 1.4375rem;
  height: 1.4375rem;
  color: #009a5b;
}
.start-teaser .grid-layout.-gutter > .item.infos .link-button .svg-icon.-right {
  transform: rotate(180deg);
}
.start-teaser .grid-layout.-gutter > .item.infos >.cart-component {
  display: inline-block;
  width: 150px;
}
.start-teaser .grid-layout.-gutter > .item.infos >.buttons >.button-general {
  margin-top: 1.875rem;
}
@media only screen and (max-width: 48rem) {
  .start-teaser .cover {
    text-align: center;
  }
  .start-teaser .cover .image-container .preview {
    display: inline-block;
  }
  .start-teaser .cover .image-container .image {
    width: 80%;
    display: inline-block;
    margin-bottom: 0.9375rem;
    box-shadow: 0px 2px 16px rgba(107,107,107,0.5);
    opacity: 0.5;
  }
  .start-teaser .grid-layout.-gutter > .item.infos {
    padding-left: 0px;
  }
}
.start-testimonialcontainer {
  margin-bottom: 3.75rem;
  background-color: #009fe3;
  text-align: center;
  position: relative;
  height: 21.875rem;
}
.start-testimonialcontainer .testimonial {
  opacity: 1;
  transition: opacity 1s;
}
.start-testimonialcontainer .testimonial .quote,
.start-testimonialcontainer .testimonial .autor {
  color: #fff;
}
.start-testimonialcontainer .testimonial .quote > p {
  padding-bottom: 0.625rem;
  display: inline;
  color: #fff;
}
.start-testimonialcontainer .testimonial.-hidden {
  display: none;
  opacity: 0;
}
.start-testimonialcontainer .start-pointnavigation .point {
  border: 1px solid #66c5ef;
  background-color: #66c5ef;
}
.start-testimonialcontainer .start-pointnavigation .point.-active {
  background-color: #fff;
}
@media only screen and (max-width: 48rem) {
  .start-testimonialcontainer {
    margin-bottom: 3.125rem;
    height: 25rem;
  }
  .start-testimonialcontainer .testimonial .quote > p {
    font-family: 'Glober-Bold';
    font-size: 1.625rem;
    line-height: 2.125rem;
  }
}
.start-zikzakteaser {
  margin-bottom: 3.75rem;
}
.start-zikzakteaser .text {
  margin-bottom: 1.875rem;
}
.start-zikzakteaser .image {
  width: 100%;
}
.start-zikzakteaser .svg-icon {
  color: #009a5b;
  width: 30px;
  height: 30px;
}
.start-zikzakteaser .point {
  line-height: 0;
}
@media only screen and (max-width: 32.5rem) {
  .start-zikzakteaser {
    margin-bottom: 2.5rem;
  }
}
.ie-fixMinHeight {
  display: flex;
}
.ie-fixMinHeight .page {
  min-height: 100vh;
  position: relative;
  width: 100%;
  display: flex;
  flex-direction: column;
}
.ie-fixMinHeight .page .content {
  flex-grow: 1;
}
.task-alert {
  position: absolute;
  top: 0px;
  bottom: 0px;
  left: 0px;
  width: 100%;
  height: 100%;
  z-index: 200;
  background-color: rgba(0,0,0,0.7);
}
.task-alert .content {
  background-color: #fff;
  width: 50%;
  padding: 4rem;
  position: absolute;
  left: 25vw;
  top: 100px;
}
.task-alert .content .button,
.task-alert .content .message {
  text-align: center;
}
@media only screen and (max-width: 32.5rem) {
  .task-alert .content {
    top: 50px;
    width: 90%;
    left: 5vw;
    padding: 2rem;
  }
}
.task-container {
  padding-top: 4.375rem;
  width: 100%;
  background-color: #dcecdc;
  padding-top: 5.625rem;
  padding-right: 8.75rem;
  padding-bottom: 3.75rem;
  padding-left: 8.75rem;
  margin-bottom: 5rem;
}
.task-container .task-form {
  margin-top: 7.5rem;
}
.task-container .close {
  cursor: pointer;
  position: absolute;
  top: 5.9375rem;
  right: 1.5625rem;
}
.task-container .close > .svg-icon {
  width: 2.5rem;
  height: 2.5rem;
}
.task-container .share {
  display: inline-block;
  margin-top: 1.875rem;
}
.task-container .description,
.task-container .label {
  margin-top: 2.5rem;
  display: block;
}
.task-container .task-title,
.task-container .task-description {
  border: none;
  padding: 0.9375rem;
  width: 100%;
}
.task-container .inputlabel {
  padding-bottom: 0.3125rem;
}
@media only screen and (max-width: 48rem) {
  .task-container {
    padding: 1.25rem 0.9375rem 2.5rem 0.9375rem;
  }
  .task-container .description {
    margin-top: 3.75rem;
  }
  .task-container .label {
    margin-top: 1.875rem;
  }
  .task-container .share {
    display: table;
    margin: 0.625rem auto;
  }
}
.task-link {
  margin: 0.625rem 0;
  display: flex;
  background-color: #f8f8f8;
}
.task-link > a {
  color: #009a5b;
}
.task-link .button {
  text-align: right;
}
.task-link .copy {
  display: inline;
}
.task-link .copy-link {
  width: 1rem;
  height: 1rem;
  margin-right: 0.625rem;
}
.task-menu >.add {
  cursor: pointer;
}
.task-menu >.add.-disabled {
  color: #808080;
  cursor: auto;
}
.task-response {
  position: absolute;
  top: 0px;
  bottom: 0px;
  left: 0px;
  width: 100%;
  height: 100%;
  z-index: 100;
  background-color: rgba(0,0,0,0.7);
  padding: 6.25rem;
}
.task-response a.break-text {
  color: #000;
}
.task-response >.content {
  background-color: #fff;
  padding: 1.25rem;
  position: relative;
}
.task-response >.content >.close {
  top: 1rem;
  right: 1rem;
}
@media only screen and (max-width: 48rem) {
  .task-response .task-link .svg-icon {
    display: none;
  }
}
@media only screen and (max-width: 32.5rem) {
  .task-response {
    padding: 1.25rem;
  }
  .task-response .content .task-link {
    background-color: #fff;
  }
  .task-response .content .task-link .button {
    text-align: center;
  }
  .task-response .content .task-link .svg-icon,
  .task-response .content .task-link .break-text {
    display: none;
  }
}
.teacher-comment {
  display: flex;
  padding-top: 1.875rem;
}
.teacher-comment > .download {
  display: flex;
}
.teacher-comment > .download > svg {
  margin-right: 1rem;
}
.unit-infobox {
  padding: 0.9375rem;
  height: 12.625rem;
}
.unit-infobox > .meta {
  padding-bottom: 0.9375rem;
  align-items: center;
}
.unit-infobox > .meta >.slugcode {
  text-align: right;
  color: #e94d51;
}
.unit-infobox > .meta >.slugcode >.number {
  color: #000;
}
.unit-infobox > .meta >.pagenumber {
  text-align: right;
  color: #6b6b6b;
}
.unit-levelfilter >.description {
  margin-bottom: 0.625rem;
}
.unit-levelfilter >.description a {
  color: #009a5b;
}
.unit-levelfilter >.description a:hover {
  color: #26262b;
}
.unit-levelfilter .filter {
  cursor: pointer;
}
.unit-levelfilter .filter:hover {
  color: #009a5b;
}
.unit-levelfilter .filter.-active >.item {
  border-bottom: 2px solid #009a5b;
}
@media only screen and (max-width: 48rem) {
  .unit-levelfilter {
    display: none;
  }
}
.unit-menu {
  display: inline-grid;
  justify-content: end;
}
@media only screen and (max-width: 48rem) {
  .unit-menu {
    justify-content: center;
  }
}
.unit-page {
  margin-bottom: 7.5rem;
}
.unit-preview {
  box-shadow: 0 2px 6px 0 rgba(107,107,107,0.2);
  border-radius: 2px;
  transition: transform 0.2s, box-shadow 0.2s;
  width: 319px;
  position: relative;
}
.unit-preview:hover {
  box-shadow: 0 2px 16px 1px rgba(107,107,107,0.3);
}
.unit-preview:hover.-disabled {
  box-shadow: 0 2px 6px 0 rgba(107,107,107,0.2);
  transform: none;
}
.unit-preview.-enabled {
  cursor: pointer;
}
.unit-preview.-disabled > .image-container,
.unit-preview.-disabled > .download,
.unit-preview.-disabled > .unit-infobox {
  opacity: 0.2;
}
.unit-preview.-selected {
  border: 2px solid #009a5b;
}
.unit-preview >.image-container {
  position: relative;
}
.unit-preview >.image-container > .image {
  height: 11.25rem;
  background-size: cover;
  background-position: center;
}
.unit-preview >.image-container >.subject {
  width: 50%;
  text-align: center;
  background-color: #008000;
  transform: translate(50%, -50%);
}
.unit-preview > .download {
  padding: 0.625rem 0.9375rem;
  display: flex;
  align-items: center;
  border-top: 1px solid #f8f8f8;
}
.unit-preview > .download.-disabled {
  cursor: default;
}
.unit-preview > .download.-empty {
  border-top: none;
  min-height: 2.8125rem;
  max-height: 2.8125rem;
}
.unit-preview > .download > a {
  display: flex;
  align-items: center;
}
.unit-preview >.login-required {
  display: none;
}
.unit-preview >.license-required,
.unit-preview.-disabled.-auth >.login-required {
  display: none;
}
.unit-preview.-disabled >.login-required,
.unit-preview.-disabled.-auth >.license-required {
  display: block;
  position: absolute;
  bottom: 0px;
  left: 0px;
  right: 0px;
  padding: 1.25rem 0;
  background-color: #fff;
  text-align: center;
}
.unit-preview.-disabled >.login-required >.text,
.unit-preview.-disabled.-auth >.license-required >.text {
  margin-bottom: 0.9375rem;
}
@media only screen and (max-width: 61.25rem) {
  .unit-preview {
    width: 100%;
  }
}
@media only screen and (max-width: 48rem) {
  .unit-preview {
    width: 100%;
  }
}
.unit-teacherinfo {
  padding: 3.75rem 0;
  background-color: #f2f8fd;
  margin-top: 3.75rem;
}
.unit-teacherinfo >.toggle {
  margin: 0 1.25rem;
  padding: 0.625rem 0;
  border-bottom: 1px solid #26262b;
}
.unit-teacherinfo > .content {
  padding: 1.25rem;
}
.unit-teacherinfo > .content > .teacher-download {
  display: flex;
}
.unit-type {
  padding-right: 0.9375rem;
}
.unit-type > svg {
  width: 2.1875rem;
  height: 2.1875rem;
}
.unitpage-header {
  padding-bottom: 1.875rem;
  padding-top: 5.625rem;
}
.unitpage-header > .unittype {
  display: flex;
  align-items: center;
  padding-right: 0.9375rem;
  padding-top: 3.75rem;
}
.unitpage-header > .unittype >.slugcode {
  color: #e94d51;
  font-family: 'Glober-Extra-Bold';
}
.unitpage-header > .unittype >.slugcode >.number {
  color: #000;
}
.unitpage-header > .unittype .pagenumber {
  color: #6b6b6b;
}
.unitpage-header > .unittype > svg {
  width: 3.75rem;
  height: 3.75rem;
}
.unitpage-header > .title {
  padding: 1.875rem 0;
}
.unitpage-header > .meta {
  padding: 1.375rem 0;
  margin-bottom: 1.875rem;
  border-top: 1px solid #9c9b9b;
  border-bottom: 1px solid #9c9b9b;
}
.unitpage-header > .description {
  padding-bottom: 1.875rem;
}
@media only screen and (max-width: 48rem) {
  .unitpage-header {
    padding-top: 3.75rem;
  }
}
.unitpage-metacontainer {
  padding: 1.375rem 0;
  margin-bottom: 1.875rem;
  border-top: 1px solid #9c9b9b;
  border-bottom: 1px solid #9c9b9b;
}
.unitpage-metacontainer > .levelbox-container {
  padding-right: 1.875rem;
  display: flex;
  align-items: center;
}
.unitpage-metacontainer > .slug {
  margin-right: 1.875rem;
  border: 2px solid #009fe3;
  padding: 0px 5px;
  border-radius: 5px 15px 5px 5px;
}
.unitpage-metacontainer > .duration {
  display: flex;
  padding-right: 1.875rem;
}
.unitpage-metacontainer > .duration > svg {
  margin-right: 0.9375rem;
}
.unitpage-metacontainer > .competences {
  display: flex;
}
.unitpage-metacontainer > .competences > .competence {
  display: flex;
  margin-right: 1.5625rem;
}
.unitpage-metacontainer > .competences > .competence > svg {
  margin-right: 0.9375rem;
}
.unitpage-metacontainer > .competences > .competence > a {
  color: #6b6b6b;
}
.unitpage-metacontainer > .competences > .competence:hover > a {
  color: #009a5b;
}
@media only screen and (max-width: 48rem) {
  .unitpage-metacontainer {
    display: block;
  }
  .unitpage-metacontainer >.item {
    margin-bottom: 1rem;
  }
}
.zikzak-logo-white {
  display: flex;
}
.zikzak-logo-white > img {
  height: 3.125rem;
}
.zikzak-logo {
  display: flex;
}
.zikzak-logo > img {
  height: 3.125rem;
}
.hidden {
  display: none;
  visibility: hidden;
}
.break-text {
  overflow-wrap: break-word;
  word-wrap: break-word;
  word-break: break-word;
}
.inline {
  display: inline-block;
}
svg path {
  fill: inherit;
}
html,
body {
  height: 100%;
  position: relative;
}

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9zdHlsdXMvdmFyaWFibGVzL2NvbG9ycy5zdHlsIiwibWFpbi5jc3MiLCJsaWIvc3R5bHVzL3ZhcmlhYmxlcy9zZXR0aW5ncy5zdHlsIiwibGliL3N0eWx1cy9zaGFyZWQvcmVzZXQuc3R5bCIsImxpYi9zdHlsdXMvY29tcG9uZW50cy9ib3gvYm9yZGVyLWJveC5zdHlsIiwibGliL3N0eWx1cy9jb21wb25lbnRzL2JveC9jb2xvci1ib3guc3R5bCIsImxpYi9zdHlsdXMvY29tcG9uZW50cy9ib3gvbWFyZ2luLWJveC5zdHlsIiwibGliL3N0eWx1cy9jb21wb25lbnRzL2JveC9wYWRkaW5nLWJveC5zdHlsIiwibGliL3N0eWx1cy9jb21wb25lbnRzL2JveC9zaGFkb3ctYm94LnN0eWwiLCJsaWIvc3R5bHVzL2NvbXBvbmVudHMvYm94L3RyYW5zZm9ybS1ib3guc3R5bCIsImxpYi9zdHlsdXMvY29tcG9uZW50cy9idXR0b24vYnV0dG9uLXN0eWxlLnN0eWwiLCJsaWIvc3R5bHVzL2NvbXBvbmVudHMvZHJvcGRvd24vZHJvcC1kb3duLW1lbnUuc3R5bCIsImxpYi9zdHlsdXMvY29tcG9uZW50cy9kcm9wZG93bi9kcm9wLWRvd24uc3R5bCIsImxpYi9zdHlsdXMvY29tcG9uZW50cy9pY29uL3N2Zy1pY29uLnN0eWwiLCJsaWIvc3R5bHVzL2NvbXBvbmVudHMvbGF5b3V0L2Ficy1sYXlvdXQuc3R5bCIsImxpYi9zdHlsdXMvY29tcG9uZW50cy9sYXlvdXQvZml4ZWQtbGF5b3V0LnN0eWwiLCJsaWIvc3R5bHVzL2NvbXBvbmVudHMvbGF5b3V0L2ZpeGVkLXBhZ2UtbGF5b3V0LnN0eWwiLCJsaWIvc3R5bHVzL2NvbXBvbmVudHMvbGF5b3V0L2ZsZXgtbGF5b3V0LnN0eWwiLCJsaWIvc3R5bHVzL2NvbXBvbmVudHMvbGF5b3V0L2dyaWQtbGF5b3V0LnN0eWwiLCJsaWIvc3R5bHVzL2NvbXBvbmVudHMvbGF5b3V0L21heC13aWR0aC1sYXlvdXQuc3R5bCIsImxpYi9zdHlsdXMvY29tcG9uZW50cy9vdmVybGF5L3NsaWRlLW92ZXJsYXkuc3R5bCIsImxpYi9zdHlsdXMvY29tcG9uZW50cy9yZXNwb25zaXZlL2NvbnRyb2wtcmVzcG9uc2l2ZS5zdHlsIiwibGliL3N0eWx1cy9jb21wb25lbnRzL3Jlc3BvbnNpdmUvaGlkZS1yZXNwb25zaXZlLnN0eWwiLCJsaWIvc3R5bHVzL2NvbXBvbmVudHMvcmVzcG9uc2l2ZS9pbWFnZS1yZXNwb25zaXZlLnN0eWwiLCJsaWIvc3R5bHVzL2NvbXBvbmVudHMvcmVzcG9uc2l2ZS9tZWRpYS1yZXNwb25zaXZlLnN0eWwiLCJsaWIvc3R5bHVzL2NvbXBvbmVudHMvdGV4dC9vdmVyZmxvdy10ZXh0LnN0eWwiLCJsaWIvc3R5bHVzL2NvbXBvbmVudHMvdGV4dC90ZXh0LXN0eWxlLnN0eWwiLCJsaWIvc3R5bHVzL2NvbXBvbmVudHMvdWkvY29sbGFwc2UtdWkuc3R5bCIsInN0eWxlZ3VpZGUvZm9udHMuc3R5bCIsInN0eWxlZ3VpZGUvdGV4dC5zdHlsIiwiY29tcG9uZW50cy9jYXJ0LWNvbXBvbmVudC5zdHlsIiwiY29tcG9uZW50cy9kcm9wZG93bi1maWx0ZXIuc3R5bCIsImNvbXBvbmVudHMvZWxlbWVudC1sYXlvdXQuc3R5bCIsImNvbXBvbmVudHMvZmVlZGJhY2stZm9ybS5zdHlsIiwiY29tcG9uZW50cy9mb290ZXItY29tcG9uZW50LnN0eWwiLCJjb21wb25lbnRzL2Zvcm0tY29tcG9uZW50LnN0eWwiLCJjb21wb25lbnRzL2xldmVsLWJveC5zdHlsIiwiY29tcG9uZW50cy9tZXRhLWJveC5zdHlsIiwiY29tcG9uZW50cy9wcmludC5zdHlsIiwiY29tcG9uZW50cy9zdGlja3ktZm9vdGVyLnN0eWwiLCJjb21wb25lbnRzL3RlYWNoZXItY29tbWVudC5zdHlsIiwiY29tcG9uZW50cy96aWt6YWstbG9nby13aGl0ZS5zdHlsIiwiY29tcG9uZW50cy96aWt6YWstbG9nby5zdHlsIiwiY29tcG9uZW50cy9idXR0b24vYnV0dG9uLWJhY2suc3R5bCIsImNvbXBvbmVudHMvYnV0dG9uL2J1dHRvbi1nZW5lcmFsLnN0eWwiLCJjb21wb25lbnRzL2J1dHRvbi9idXR0b24tcHJpbWFyeS5zdHlsIiwiY29tcG9uZW50cy9idXR0b24vYnV0dG9uLXNlY29uZGFyeS5zdHlsIiwiY29tcG9uZW50cy9idXR0b24vbGluay1idXR0b24uc3R5bCIsImNvbXBvbmVudHMvY29udGVudC9jb2xsYXBzZS11aS5zdHlsIiwiY29tcG9uZW50cy9jb250ZW50L2NvbnRlbnRzLXRhYmxlLnN0eWwiLCJjb21wb25lbnRzL2NvbnRlbnQvaW1hZ2UtZWxlbWVudC5zdHlsIiwiY29tcG9uZW50cy9jb250ZW50L2xpY2Vuc2UtY29udGVudC5zdHlsIiwiY29tcG9uZW50cy9jb250ZW50L292ZXJ2aWV3LWNvbnRlbnQuc3R5bCIsImNvbXBvbmVudHMvY29udGVudC9wYXJhZ3JhcGgtZWxlbWVudC5zdHlsIiwiY29tcG9uZW50cy9jb250ZW50L3NjaG9vbHBhZ2UtY29udGVudC5zdHlsIiwiY29tcG9uZW50cy9jb250ZW50L3NpbmdsZXBhZ2UtY29udGVudC5zdHlsIiwiY29tcG9uZW50cy9jb250ZW50L3NsaWRlLWNvbnRhaW5lci5zdHlsIiwiY29tcG9uZW50cy9jb250ZW50L3N0YXJ0cGFnZS1jb250ZW50LnN0eWwiLCJjb21wb25lbnRzL2NvbnRlbnQvc3RhcnRwYWdlLWNvbnRlbnRzLnN0eWwiLCJjb21wb25lbnRzL2NvbnRlbnQvdmlkZW8tZWxlbWVudC5zdHlsIiwiY29tcG9uZW50cy9jb250ZW50L3llYXItaGVhZGVyLnN0eWwiLCJjb21wb25lbnRzL2VkaXRvci9lZGl0b3ItY29udGVudC5zdHlsIiwiY29tcG9uZW50cy9lZGl0b3IvcGFnaW5hdGlvbi5zdHlsIiwiY29tcG9uZW50cy9lZGl0b3Ivc3RhdGUtc3ltYm9sLnN0eWwiLCJjb21wb25lbnRzL2xlcm5mcmFnZW4vYW5zd2VyLWNvbnRhaW5lci5zdHlsIiwiY29tcG9uZW50cy9sZXJuZnJhZ2VuL2Ryb3Bkb3duLXRleHQuc3R5bCIsImNvbXBvbmVudHMvbGVybmZyYWdlbi9mZWVkYmFjay1ib3guc3R5bCIsImNvbXBvbmVudHMvbGVybmZyYWdlbi9mZWVkYmFjay1jb250YWluZXIuc3R5bCIsImNvbXBvbmVudHMvbGVybmZyYWdlbi9mZWVkYmFjay1wYW5lbC5zdHlsIiwiY29tcG9uZW50cy9sZXJuZnJhZ2VuL2hvdHNwb3QtaW1hZ2Uuc3R5bCIsImNvbXBvbmVudHMvbGVybmZyYWdlbi9ob3RzcG90LXBvaW50LnN0eWwiLCJjb21wb25lbnRzL2xlcm5mcmFnZW4vaG90c3BvdC1xdWVzdGlvbi5zdHlsIiwiY29tcG9uZW50cy9sZXJuZnJhZ2VuL3F1ZXN0aW9uLWNvbnRhaW5lci5zdHlsIiwiY29tcG9uZW50cy9saWNlbnNlL2FkZC1saWNlbnNlLnN0eWwiLCJjb21wb25lbnRzL21hZ2F6aW5lL21hZ2F6aW5lLWhlYWRlci5zdHlsIiwiY29tcG9uZW50cy9tYWdhemluZS9tYWdhemluZS1wYWdlLnN0eWwiLCJjb21wb25lbnRzL21hZ2F6aW5lL21hZ2F6aW5lLXByZXZpZXcuc3R5bCIsImNvbXBvbmVudHMvbmF2aWdhdGlvbi9tb2JpbGVuYXZpZ2F0aW9uLW1haW5oZWFkZXIuc3R5bCIsImNvbXBvbmVudHMvbmF2aWdhdGlvbi9tb2JpbGVuYXZpZ2F0aW9uLW1lbnUuc3R5bCIsImNvbXBvbmVudHMvbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLWxpbmsuc3R5bCIsImNvbXBvbmVudHMvbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLW1haW4uc3R5bCIsImNvbXBvbmVudHMvbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLW1haW5oZWFkZXIuc3R5bCIsImNvbXBvbmVudHMvbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLXVuaXQuc3R5bCIsImNvbXBvbmVudHMvbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLXVuaXRoZWFkZXIuc3R5bCIsImNvbXBvbmVudHMvcHJldmlldy9wcmV2aWV3LW92ZXJ2aWV3LnN0eWwiLCJjb21wb25lbnRzL3ByZXZpZXcvcHJldmlldy1wYWdlLnN0eWwiLCJjb21wb25lbnRzL3ByZXZpZXcvcHJldmlldy1zd2l0Y2guc3R5bCIsImNvbXBvbmVudHMvc3RhcnQvc3RhcnQtYXJyb3duYXZpZ2F0aW9uLnN0eWwiLCJjb21wb25lbnRzL3N0YXJ0L3N0YXJ0LWxpY2Vuc2VpbnN0cnVjdGlvbi5zdHlsIiwiY29tcG9uZW50cy9zdGFydC9zdGFydC1tYWdhemluZW92ZXJ2aWV3LnN0eWwiLCJjb21wb25lbnRzL3N0YXJ0L3N0YXJ0LXBvaW50bmF2aWdhdGlvbi5zdHlsIiwiY29tcG9uZW50cy9zdGFydC9zdGFydC10ZWFzZXIuc3R5bCIsImNvbXBvbmVudHMvc3RhcnQvc3RhcnQtdGVzdGltb25pYWxjb250YWluZXIuc3R5bCIsImNvbXBvbmVudHMvc3RhcnQvc3RhcnQtemlremFrdGVhc2VyLnN0eWwiLCJjb21wb25lbnRzL3Rhc2svdGFzay1hbGVydC5zdHlsIiwiY29tcG9uZW50cy90YXNrL3Rhc2stY29udGFpbmVyLnN0eWwiLCJjb21wb25lbnRzL3Rhc2svdGFzay1saW5rLnN0eWwiLCJjb21wb25lbnRzL3Rhc2svdGFzay1tZW51LnN0eWwiLCJjb21wb25lbnRzL3Rhc2svdGFzay1yZXNwb25zZS5zdHlsIiwiY29tcG9uZW50cy91bml0L3VuaXQtaW5mb2JveC5zdHlsIiwiY29tcG9uZW50cy91bml0L3VuaXQtbGV2ZWxmaWx0ZXIuc3R5bCIsImNvbXBvbmVudHMvdW5pdC91bml0LW1lbnUuc3R5bCIsImNvbXBvbmVudHMvdW5pdC91bml0LXBhZ2Uuc3R5bCIsImNvbXBvbmVudHMvdW5pdC91bml0LXByZXZpZXcuc3R5bCIsImNvbXBvbmVudHMvdW5pdC91bml0LXRlYWNoZXJpbmZvLnN0eWwiLCJjb21wb25lbnRzL3VuaXQvdW5pdC10eXBlLnN0eWwiLCJjb21wb25lbnRzL3VuaXQvdW5pdHBhZ2UtaGVhZGVyLnN0eWwiLCJjb21wb25lbnRzL3VuaXQvdW5pdHBhZ2UtbWV0YWNvbnRhaW5lci5zdHlsIiwiaGVs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QzdCO0FlaG9DRTtFQUNDLHFCQUEwQjtBZmtvQzdCO0FlL25DRTtFQUNDLHdCQUEyQjtBZmlvQzlCO0FlOW5DRTtFQUNDLHNCQUEyQjtBZmdvQzlCO0FlN25DRTtFQUNDLG9CQUF3QjtBZituQzNCO0FlNW5DRTtFQUNDLG9CQUF3QjtBZjhuQzNCO0FnQjF2Q0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q2hCaTlDQztBZ0J6dkNEO0VBRUMsYUFBUztBaEIwdkNWO0FnQnh2Q0M7RUFDQyxvQkFBUztBaEIwdkNYO0FnQnZ2Q0M7RUFDQyxlQUFXO0FoQnl2Q2I7QWdCdHZDQztFQUNDLGlCQUFXO0FoQnd2Q2I7QWdCdHZDRTtFQUNDLGNBQU07QWhCd3ZDVDtBZ0JwdkNDO0VBQ0Msc0JBQWdCO0FoQnN2Q2xCO0FnQm52Q0M7RUFDQyx1QkFBaUI7RUFDakIsbUJBQWE7RUFDYixxQkFBZTtBaEJxdkNqQjtBZ0JsdkNDO0VBQ0MscUJBQWE7QWhCb3ZDZjtBZ0JqdkNDO0VBQ0MsMkJBQWlCO0FoQm12Q25CO0FnQmh2Q0M7RUFDQyx5QkFBaUI7QWhCa3ZDbkI7QWdCL3VDQztFQUNDLHlCQUFlO0FoQml2Q2pCO0FnQjl1Q0M7RUFDQyx1QkFBZTtBaEJndkNqQjtBZ0I3dUNDO0VBQ0MscUJBQWU7QWhCK3VDakI7QWdCNXVDQztFQUNDLDRCQUFlO0FoQjh1Q2pCO0FnQjN1Q0M7RUFDQywyQkFBZTtBaEI2dUNqQjtBZ0IxdUNDO0VBQ0MsdUJBQWlCO0FoQjR1Q25CO0FnQnp1Q0M7RUFDQyw4QkFBaUI7QWhCMnVDbkI7QWdCeHVDQztFQUNDLDZCQUFpQjtBaEIwdUNuQjtBZ0J0dUND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bmNhdGVnb3J5OiBTaGFyZWQvVmFyaWFibGVzXG50ZW1wbGF0ZTogY29sb3JzXG50YWc6XG4gLSB2YXJpYWJsZXNcbiAtIGNvbG9yc1xuY29sb3JzOlxuIC0gdmFyaWFibGU6IFwidGV4dC1jb2xvclwiXG4gICBkZXNjcmlwdGlvbjogXCJUaGUgZGVmYXVsdCB0ZXh0IGNvbG9yIG9uIHRoZSBib2R5XCJcbiAgIHZhbHVlOiBcIiMzRjNGNDBcIlxuIC0gdmFyaWFibGU6IFwidGV4dC1pbnZlcnRlZC1jb2xvclwiXG4gICBkZXNjcmlwdGlvbjogXCJUaGUgZGVmYXVsdCBpbnZlcnRlZCB0ZXh0IGNvbG9yIG9uIHRoZSBib2R5XCJcbiAgIHZhbHVlOiBcIiNGRkZcIlxuIC0gdmFyaWFibGU6IFwiYWN0aW9uLWNvbG9yXCJcbiAgIGRlc2NyaXB0aW9uOiBcIlRoZSBtYWluIGFjdGlvbiBjb2xvciB1c2VkIGZvciBsaW5rcyBhbmQgYnV0dG9uc1wiXG4gICB2YWx1ZTogXCIjRUM2NDQ5XCJcbiAtIHZhcmlhYmxlOiBcImJvZHktY29sb3JcIlxuICAgZGVzY3JpcHRpb246IFwiVGhlIG1haW4gYmFja2dyb3VuZCBjb2xvclwiXG4gICB2YWx1ZTogXCIjRkZGXCJcbiAtIHZhcmlhYmxlOiBcImVuYWJsZWQtY29sb3JcIlxuICAgZGVzY3JpcHRpb246IFwiU2lnbmFsY29sb3IgZm9yIGVuYWJsZWQvb2svc3VjY2Vzcy90cnVlIC0gc2VhcmNoIGZvciBhIGJldHRlciBuYW1lXCJcbiAgIHZhbHVlOiBcIiM3Q0FFN0FcIlxuIC0gdmFyaWFibGU6IFwiZGlzYWJsZWQtY29sb3JcIlxuICAgZGVzY3JpcHRpb246IFwiU2lnbmFsY29sb3IgZm9yIGRpc2FibGVkL25vdG9rL2Vycm9yL2ZhbHNlIC0gc2VhcmNoIGZvciBhIGJldHRlciBuYW1lXCJcbiAgIHZhbHVlOiBcIiNFQzY0NDlcIlxuIC0gdmFyaWFibGU6IFwib3V0bGluZS1uYXZpZ2F0aW9uLWNvbG9yXCJcbiAgIGRlc2NyaXB0aW9uOiBcIkNvbG9yIGZvciB0aGUgZWxlbWVudHMgaW4gdGhlIG91dGxpbmUgbmF2aWdhdGlvblwiXG4gICB2YWx1ZTogXCJsaWdodGVuKCAjM0YzRjQwLCA2MCApXCJcbi0tLVxuXG5UaGUgY29sb3IgdmFyaWFibGVzIHRoYXQgYXJlIHVzZWQgdGhyb3VnaG91dCB0aGUgbGlicmFyeS4gXG4qL1xudGhlbWUuY29sb3JzID0ge1xuXG4gIHRleHQ6ICMyMDIwMjMsXG4gIHRleHQtaW52ZXJ0ZWQ6ICNGRkYsXG4gIHRleHQtZ3JheTogIzZBNkE2QSxcblxuICBhY3Rpb246ICMzMDMxRkUsXG5cbiAgYm9keTogI0ZGRixcblxuICBsaW5lOiAjZTBlMGUwLFxuXG4gIGVycm9yOiAjREMxNTNBLFxuICBzdWNjZXNzOiAjMDBBNjg1LFxufVxuIiwiLypcbi0tLVxubmFtZTogQ29sb3JzXG5jYXRlZ29yeTogU2hhcmVkL1ZhcmlhYmxlc1xudGVtcGxhdGU6IGNvbG9yc1xudGFnOlxuIC0gdmFyaWFibGVzXG4gLSBjb2xvcnNcbmNvbG9yczpcbiAtIHZhcmlhYmxlOiBcInRleHQtY29sb3JcIlxuICAgZGVzY3JpcHRpb246IFwiVGhlIGRlZmF1bHQgdGV4dCBjb2xvciBvbiB0aGUgYm9keVwiXG4gICB2YWx1ZTogXCIjM0YzRjQwXCJcbiAtIHZhcmlhYmxlOiBcInRleHQtaW52ZXJ0ZWQtY29sb3JcIlxuICAgZGVzY3JpcHRpb246IFwiVGhlIGRlZmF1bHQgaW52ZXJ0ZWQgdGV4dCBjb2xvciBvbiB0aGUgYm9keVwiXG4gICB2YWx1ZTogXCIjRkZGXCJcbiAtIHZhcmlhYmxlOiBcImFjdGlvbi1jb2xvclwiXG4gICBkZXNjcmlwdGlvbjogXCJUaGUgbWFpbiBhY3Rpb24gY29sb3IgdXNlZCBmb3IgbGlua3MgYW5kIGJ1dHRvbnNcIlxuICAgdmFsdWU6IFwiI0VDNjQ0OVwiXG4gLSB2YXJpYWJsZTogXCJib2R5LWNvbG9yXCJcbiAgIGRlc2NyaXB0aW9uOiBcIlRoZSBtYWluIGJhY2tncm91bmQgY29sb3JcIlxuICAgdmFsdWU6IFwiI0ZGRlwiXG4gLSB2YXJpYWJsZTogXCJlbmFibGVkLWNvbG9yXCJcbiAgIGRlc2NyaXB0aW9uOiBcIlNpZ25hbGNvbG9yIGZvciBlbmFibGVkL29rL3N1Y2Nlc3MvdHJ1ZSAtIHNlYXJjaCBmb3IgYSBiZXR0ZXIgbmFtZVwiXG4gICB2YWx1ZTogXCIjN0NBRTdBXCJcbiAtIHZhcmlhYmxlOiBcImRpc2FibGVkLWNvbG9yXCJcbiAgIGRlc2NyaXB0aW9uOiBcIlNpZ25hbGNvbG9yIGZvciBkaXNhYmxlZC9ub3Rvay9lcnJvci9mYWxzZSAtIHNlYXJjaCBmb3IgYSBiZXR0ZXIgbmFtZVwiXG4gICB2YWx1ZTogXCIjRUM2NDQ5XCJcbiAtIHZhcmlhYmxlOiBcIm91dGxpbmUtbmF2aWdhdGlvbi1jb2xvclwiXG4gICBkZXNjcmlwdGlvbjogXCJDb2xvciBmb3IgdGhlIGVsZW1lbnRzIGluIHRoZSBvdXRsaW5lIG5hdmlnYXRpb25cIlxuICAgdmFsdWU6IFwibGlnaHRlbiggIzNGM0Y0MCwgNjAgKVwiXG4tLS1cblxuVGhlIGNvbG9yIHZhcmlhYmxlcyB0aGF0IGFyZSB1c2VkIHRocm91Z2hvdXQgdGhlIGxpYnJhcnkuIFxuKi9cbi8qXG4tLS1cbm5hbWU6IEdsb2JhbCBzZXR0aW5nc1xuY2F0ZWdvcnk6IFNoYXJlZC9WYXJpYWJsZXNcbnRlbXBsYXRlOiB2YXJpYWJsZXNcbnRhZzpcbiAtIHZhcmlhYmxlc1xudmFyaWFibGVzOlxuIC0gbmFtZTogXCJ0ZXh0LWxpbmUtaGVpZ2h0XCJcbiAgIGRlc2NyaXB0aW9uOiBcIlRoZSBsaW5lIGhlaWdodCBvZiB0aGUgYm9keVwiXG4gICBkZWZhdWx0OiBcIjEuNXJlbVwiXG4gLSBuYW1lOiBcImZvbnQtZmFtaWx5XCJcbiAgIGRlc2NyaXB0aW9uOiBcIlRoZSBmb250LWZhbWlseSBvZiB0aGUgYm9keVwiXG4gICBkZWZhdWx0OiBcIidIZWx2ZXRpY2EnLCBzYW5zLXNlcmlmXCJcbiAtIG5hbWU6IFwidGV4dC1yZW5kZXJpbmdcIlxuICAgZGVzY3JpcHRpb246IFwiVGhlIHRleHQtcmVuZGVyaW5nIG9mIHRoZSBib2R5XCJcbiAgIGRlZmF1bHQ6IFwib3B0aW1pemVMZWdpYmlsaXR5XCJcbiAtIG5hbWU6IFwidHJhbnNpdGlvbi1kdXJhdGlvblwiXG4gICBkZXNjcmlwdGlvbjogXCJUaGUgZHVyYXRpb24gb2YgdGhlIHNsaWRlIHRyYW5zaXRpb25zXCJcbiAgIGRlZmF1bHQ6IFwiMC40c1wiXG4gLSBuYW1lOiBcImJvcmRlci1yYWRpdXNcIlxuICAgZGVzY3JpcHRpb246IFwiVGhlIGRlZmF1bHQgcmFkaXVzIGZvciBib3JkZXJzXCJcbiAgIGRlZmF1bHQ6IFwiMnB4XCJcbi0tLVxuXG5UaGVzZSB2YXJpYWJsZXMgc2V0dXBzIHNvbWUgZ2xvYmFsIHRleHQgZm9ybWF0dGluZyBhbmQgc3R5bGluZy5cbiovXG5odG1sLFxuYm9keSxcbmRpdixcbnNwYW4sXG5vYmplY3QsXG5pZnJhbWUsXG5oMSxcbmgyLFxuaDMsXG5oNCxcbmg1LFxuaDYsXG5wLFxuYmxvY2txdW90ZSxcbnByZSxcbmFiYnIsXG5hZGRyZXNzLFxuY2l0ZSxcbmNvZGUsXG5kZWwsXG5kZm4sXG5lbSxcbmltZyxcbmlucyxcbmtiZCxcbnEsXG5zYW1wLFxuc21hbGwsXG5zdHJvbmcsXG5zdWIsXG5zdXAsXG52YXIsXG5iLFxuaSxcbmRsLFxuZHQsXG5kZCxcbm9sLFxudWwsXG5saSxcbmZpZWxkc2V0LFxuZm9ybSxcbmxhYmVsLFxubGVnZW5kLFxudGFibGUsXG5jYXB0aW9uLFxudGJvZHksXG50Zm9vdCxcbnRoZWFkLFxudHIsXG50aCxcbnRkLFxuYXJ0aWNsZSxcbmFzaWRlLFxuY2FudmFzLFxuZGV0YWlscyxcbmZpZ2NhcHRpb24sXG5maWd1cmUsXG5mb290ZXIsXG5oZWFkZXIsXG5oZ3JvdXAsXG5tZW51LFxubmF2LFxuc2VjdGlvbixcbnN1bW1hcnksXG50aW1lLFxubWFyayxcbmF1ZGlvLFxudmlkZW8ge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogMDtcbiAgb3V0bGluZTogMDtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG46cm9vdCB7XG4gIGZvbnQtc2l6ZTogMTZweDtcbn1cbmh0bWwge1xuICBmb250LXNpemU6IDEwMCU7XG59XG5ib2R5IHtcbiAgbGluZS1oZWlnaHQ6IDEuNXJlbTtcbiAgY29sb3I6ICMyMDIwMjM7XG4gIGZvbnQtZmFtaWx5OiAnR2xvYmVyLVJlZ3VsYXInO1xuICB0ZXh0LXJlbmRlcmluZzogO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbn1cbmFydGljbGUsXG5hc2lkZSxcbmRldGFpbHMsXG5maWdjYXB0aW9uLFxuZmlndXJlLFxuZm9vdGVyLFxuaGVhZGVyLFxuaGdyb3VwLFxubWVudSxcbm5hdixcbnNlY3Rpb24ge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbnNlbGVjdCB7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG50ZXh0YXJlYSB7XG4gIHdpZHRoOiAxMDAlO1xufVxudGFibGUge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBib3JkZXItc3BhY2luZzogMDtcbn1cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBmb250OiBpbmhlcml0O1xuICBtYXJnaW46IDA7XG59XG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5pbnB1dDo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlcjogMDtcbiAgcGFkZGluZzogMDtcbn1cbmh0bWwge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuKixcbio6YmVmb3JlLFxuKjphZnRlciB7XG4gIGJveC1zaXppbmc6IGluaGVyaXQ7XG59XG5hIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjb2xvcjogIzMwMzFmZTtcbn1cbmltZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxudWwsXG5vbCB7XG4gIG1hcmdpbi1sZWZ0OiAxLjI1cmVtO1xufVxuLypcbi0tLVxubmFtZTogLmJvcmRlci1ib3hcbmNhdGVnb3J5OiBCb3gvQm9yZGVyXG50YWc6XG4gLSBjb21wb25lbnRcbiAtIGJvcmRlclxuY29tcGlsZTogdHJ1ZVxuLS0tXG5cbkEgYm94IHRvIGNvbnRyb2wgYm9yZGVycyBvbiBhbGwgZm91ciBzaWRlcy5cblxuYGBgamFkZVxuZGl2LmJvcmRlci1ib3guLWxlZnQgU29tZSBkZW1vIGNvbnRlbnRcbmBgYFxuXG5gYGBqYWRlXG5kaXYuYm9yZGVyLWJveC4tYWxsIFNvbWUgZGVtbyBjb250ZW50XG5gYGBcbiovXG4uYm9yZGVyLWJveC4tdG9wIHtcbiAgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogMXB4O1xuICBib3JkZXItY29sb3I6ICNlMGUwZTA7XG59XG4uYm9yZGVyLWJveC4tcmlnaHQge1xuICBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDFweDtcbiAgYm9yZGVyLWNvbG9yOiAjZTBlMGUwO1xufVxuLmJvcmRlci1ib3guLWJvdHRvbSB7XG4gIGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDFweDtcbiAgYm9yZGVyLWNvbG9yOiAjZTBlMGUwO1xufVxuLmJvcmRlci1ib3guLWxlZnQge1xuICBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogMXB4O1xuICBib3JkZXItY29sb3I6ICNlMGUwZTA7XG59XG4uYm9yZGVyLWJveC4tYWxsIHtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gIGJvcmRlci1jb2xvcjogI2UwZTBlMDtcbn1cbi5ib3JkZXItYm94Li1yb3VuZCB7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbn1cbi8qXG4tLS1cbm5hbWU6IC5jb2xvci1ib3hcbmNhdGVnb3J5OiBCb3gvQ29sb3JcbnRhZzpcbiAtIGNvbXBvbmVudFxuIC0gYm9yZGVyXG5jb21waWxlOiB0cnVlXG4tLS1cblxuQSBib3ggdG8gY29udHJvbCB0aGUgYmFja2dyb3VuZCBjb2xvci4gSXQgbWFrZXMgYSB2YXJpYW50IGZvcmVhY2ggY29sb3IgZGVmaW5pb24gaW4gdGhlIGZpbGUgYGNvbG9yLWJveC52YXIuc3R5bGBcblxuYGBgamFkZVxuZGl2LmNvbG9yLWJveC4td2hpdGUoc3R5bGU9XCJ3aWR0aDoxMDBweDtoZWlnaHQ6MTAwcHhcIilcbmBgYFxuXG5gYGBqYWRlXG5kaXYuY29sb3ItYm94Li1hY3Rpb24oc3R5bGU9XCJ3aWR0aDoxMDBweDtoZWlnaHQ6MTAwcHhcIilcbmBgYFxuKi9cbi5jb2xvci1ib3guLWJvZHkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuLmNvbG9yLWJveC4tYWN0aW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzMwMzFmZTtcbn1cbi5jb2xvci1ib3guLXdoaXRlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbn1cbi5jb2xvci1ib3guLWJsYWNrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDtcbn1cbi8qXG4tLS1cbm5hbWU6IC5tYXJnaW4tYm94XG5jYXRlZ29yeTogQm94L01hcmdpblxudGFnOlxuIC0gY29tcG9uZW50XG4gLSBsYXlvdXRcbmNvbXBpbGU6IHRydWVcbi0tLVxuXG5BIGNvbXBvbmVudCB0byBhZGQgbWFyZ2luc1xuXG4jIyBBcHBseWluZyBtYXJnaW5zXG5cblRoZSBlYXNpZXN0IHVzZSBjYXNlIGlzIHRvIHVzZSBzaW1wbGUgYC5tYXJnaW4tYm94IC4tYWxsYCBmb3IgYSBtYXJnaW4gb24gdG9wLCByaWdodCwgYm90dG9tIGFuZCBsZWZ0IHdpdGggZGVmYXVsdCBzaXplIG9yXG5gLi10b3BgLCBgLi1yaWdodGAsIGAuLWJvdHRvbWAgYW5kIGAuLWxlZnRgIGZvciBzcGVjaWZpZWQgc2lkZXMuXG5cbmBgYGphZGVcbmRpdi5tYXJnaW4tYm94Li1hbGxcblx0ZGl2LmFpZ2lzLWRlYnVnIERlZmF1bHQgbWFyZ2luIGFwcGxpZWQgb24gdG9wLCByaWdodCwgYm90dG9tIGFuZCBsZWZ0XG5gYGBcbmBgYGphZGVcbmRpdi5tYXJnaW4tYm94Li1ib3R0b21cblx0ZGl2LmFpZ2lzLWRlYnVnIERlZmF1bHQgbWFyZ2luIGFwcGxpZWQgb24gYm90dG9tXG5gYGBcblxuXG4jIyBWYXJpYW50c1xuXG5UaGUgdmFyaWFudHMgZm9yIHRoZSBtYXJnaW5zIGFyZSBgLi10b3Ate3NpemV9YCwgYC4tcmlnaHQte3NpemV9YCwgYC4tYm90dG9tLXtzaXplfWAgYW5kIGAubGVmdC17c2l6ZX1gIHRvZ2V0aGVyIHdpdGggc2l6ZXMgc21hbGwsIG1lZGl1bSBvciBsYXJnZS5cbkFsbCBzaXplcyBhcmUgZGVmaW5lZCBpbiB0aGUgdmFyaWFibGUgdGhlbWUuY29tcG9uZW50cy5tYXJnaW4tYm94LiBWYWx1ZXMgYXJlIGBzbWFsbGAsIGBtZWRpdW1gLCBgbGFyZ2VgIGFuZCBgYXV0b2BcblxuYGBgamFkZVxuZGl2Lm1hcmdpbi1ib3guLWxlZnQtc21hbGxcbiAgICBkaXYuYWlnaXMtZGVidWcgU21hbGwgbWFyZ2luIGFwcGxpZWQgb24gbGVmdFxuYGBgXG5gYGBqYWRlXG5kaXYubWFyZ2luLWJveC4tcmlnaHQtc21hbGxcbiAgICBkaXYuYWlnaXMtZGVidWcgU21hbGwgbWFyZ2luIGFwcGxpZWQgb24gcmlnaHRcbmBgYFxuYGBgamFkZVxuZGl2Lm1hcmdpbi1ib3guLXRvcC1zbWFsbFxuICAgIGRpdi5haWdpcy1kZWJ1ZyBTbWFsbCBtYXJnaW4gYXBwbGllZCBvbiB0b3BcbmBgYFxuYGBgamFkZVxuZGl2Lm1hcmdpbi1ib3guLWJvdHRvbS1zbWFsbFxuICAgIGRpdi5haWdpcy1kZWJ1ZyBTbWFsbCBtYXJnaW4gYXBwbGllZCBvbiBib3R0b21cbmBgYFxuXG5UaGVyZSBhcmUgYWxzbyBzaG9ydGN1dHMgZm9yIHZlcnRpY2FsIGAuLXYte3NpemV9YCBhbmQgaG9yaXpvbnRhbCBgLi1oLXtzaXplfWAgdG9nZXRoZXIgd2l0aCBzaXplcyBzbWFsbCwgbWVkaXVtIGFuZCBsYXJnZVxuXG5gYGBqYWRlXG5kaXYubWFyZ2luLWJveC4tdi1tZWRpdW1cbiAgICBkaXYuYWlnaXMtZGVidWcgTWVkaXVtIG1hcmdpbiBhcHBsaWVkIG9uIHRvcCBhbmQgYm90dG9tXG5gYGBcbmBgYGphZGVcbmRpdi5tYXJnaW4tYm94Li1oLW1lZGl1bVxuICAgIGRpdi5haWdpcy1kZWJ1ZyBNZWRpdW0gbWFyZ2luIGFwcGxpZWQgb24gcmlnaHQgYW5kIGxlZnRcbmBgYFxuXG4jIyBWYXJpYW50cyBmb3IgYXV0byBtYXJnaW5zXG5cbmBgYGphZGVcbmRpdi5tYXJnaW4tYm94Li1hdXRvLi1oKHN0eWxlPVwid2lkdGg6IDIwMHB4XCIpXG4gICAgZGl2LmFpZ2lzLWRlYnVnIEF1dG8gbWFyZ2luIGFwcGxpZWQgb24gcmlnaHQgYW5kIGxlZnRcbmBgYFxuYGBgamFkZVxuZGl2Lm1hcmdpbi1ib3guLWF1dG8uLXYoc3R5bGU9XCJoZWlnaHQ6IDQ2cHhcIilcbiAgICBkaXYuYWlnaXMtZGVidWcgQXV0byBtYXJnaW4gYXBwbGllZCBvbiB0b3AgYW5kIGJvdHRvbVxuYGBgXG5cbiovXG4ubWFyZ2luLWJveC4tdG9wIHtcbiAgbWFyZ2luLXRvcDogMS4yNXJlbTtcbn1cbi5tYXJnaW4tYm94Li1yaWdodCB7XG4gIG1hcmdpbi1yaWdodDogMS4yNXJlbTtcbn1cbi5tYXJnaW4tYm94Li1ib3R0b20ge1xuICBtYXJnaW4tYm90dG9tOiAxLjI1cmVtO1xufVxuLm1hcmdpbi1ib3guLWxlZnQge1xuICBtYXJnaW4tbGVmdDogMS4yNXJlbTtcbn1cbi5tYXJnaW4tYm94Li1oIHtcbiAgbWFyZ2luLWxlZnQ6IDEuMjVyZW07XG4gIG1hcmdpbi1yaWdodDogMS4yNXJlbTtcbn1cbi5tYXJnaW4tYm94Li12IHtcbiAgbWFyZ2luLXRvcDogMS4yNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMS4yNXJlbTtcbn1cbi5tYXJnaW4tYm94Li1hbGwge1xuICBtYXJnaW46IDEuMjVyZW0gMS4yNXJlbTtcbn1cbi5tYXJnaW4tYm94Li10b3AteHNtYWxsIHtcbiAgbWFyZ2luLXRvcDogMC42MjVyZW07XG59XG4ubWFyZ2luLWJveC4tcmlnaHQteHNtYWxsIHtcbiAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbn1cbi5tYXJnaW4tYm94Li1ib3R0b20teHNtYWxsIHtcbiAgbWFyZ2luLWJvdHRvbTogMC42MjVyZW07XG59XG4ubWFyZ2luLWJveC4tbGVmdC14c21hbGwge1xuICBtYXJnaW4tbGVmdDogMC42MjVyZW07XG59XG4ubWFyZ2luLWJveC4taC14c21hbGwge1xuICBtYXJnaW4tbGVmdDogMC42MjVyZW07XG4gIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG59XG4ubWFyZ2luLWJveC4tdi14c21hbGwge1xuICBtYXJnaW4tdG9wOiAwLjYyNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMC42MjVyZW07XG59XG4ubWFyZ2luLWJveC4tYWxsLXhzbWFsbCB7XG4gIG1hcmdpbjogMC42MjVyZW0gMC42MjVyZW07XG59XG4ubWFyZ2luLWJveC4tdG9wLXNtYWxsIHtcbiAgbWFyZ2luLXRvcDogMC45Mzc1cmVtO1xufVxuLm1hcmdpbi1ib3guLXJpZ2h0LXNtYWxsIHtcbiAgbWFyZ2luLXJpZ2h0OiAwLjkzNzVyZW07XG59XG4ubWFyZ2luLWJveC4tYm90dG9tLXNtYWxsIHtcbiAgbWFyZ2luLWJvdHRvbTogMC45Mzc1cmVtO1xufVxuLm1hcmdpbi1ib3guLWxlZnQtc21hbGwge1xuICBtYXJnaW4tbGVmdDogMC45Mzc1cmVtO1xufVxuLm1hcmdpbi1ib3guLWgtc21hbGwge1xuICBtYXJnaW4tbGVmdDogMC45Mzc1cmVtO1xuICBtYXJnaW4tcmlnaHQ6IDAuOTM3NXJlbTtcbn1cbi5tYXJnaW4tYm94Li12LXNtYWxsIHtcbiAgbWFyZ2luLXRvcDogMC45Mzc1cmVtO1xuICBtYXJnaW4tYm90dG9tOiAwLjkzNzVyZW07XG59XG4ubWFyZ2luLWJveC4tYWxsLXNtYWxsIHtcbiAgbWFyZ2luOiAwLjkzNzVyZW0gMC45Mzc1cmVtO1xufVxuLm1hcmdpbi1ib3guLXRvcC1tZWRpdW0ge1xuICBtYXJnaW4tdG9wOiAxLjg3NXJlbTtcbn1cbi5tYXJnaW4tYm94Li1yaWdodC1tZWRpdW0ge1xuICBtYXJnaW4tcmlnaHQ6IDEuODc1cmVtO1xufVxuLm1hcmdpbi1ib3guLWJvdHRvbS1tZWRpdW0ge1xuICBtYXJnaW4tYm90dG9tOiAxLjg3NXJlbTtcbn1cbi5tYXJnaW4tYm94Li1sZWZ0LW1lZGl1bSB7XG4gIG1hcmdpbi1sZWZ0OiAxLjg3NXJlbTtcbn1cbi5tYXJnaW4tYm94Li1oLW1lZGl1bSB7XG4gIG1hcmdpbi1sZWZ0OiAxLjg3NXJlbTtcbiAgbWFyZ2luLXJpZ2h0OiAxLjg3NXJlbTtcbn1cbi5tYXJnaW4tYm94Li12LW1lZGl1bSB7XG4gIG1hcmdpbi10b3A6IDEuODc1cmVtO1xuICBtYXJnaW4tYm90dG9tOiAxLjg3NXJlbTtcbn1cbi5tYXJnaW4tYm94Li1hbGwtbWVkaXVtIHtcbiAgbWFyZ2luOiAxLjg3NXJlbSAxLjg3NXJlbTtcbn1cbi5tYXJnaW4tYm94Li10b3AtbGFyZ2Uge1xuICBtYXJnaW4tdG9wOiA1cmVtO1xufVxuLm1hcmdpbi1ib3guLXJpZ2h0LWxhcmdlIHtcbiAgbWFyZ2luLXJpZ2h0OiA1cmVtO1xufVxuLm1hcmdpbi1ib3guLWJvdHRvbS1sYXJnZSB7XG4gIG1hcmdpbi1ib3R0b206IDVyZW07XG59XG4ubWFyZ2luLWJveC4tbGVmdC1sYXJnZSB7XG4gIG1hcmdpbi1sZWZ0OiA1cmVtO1xufVxuLm1hcmdpbi1ib3guLWgtbGFyZ2Uge1xuICBtYXJnaW4tbGVmdDogNXJlbTtcbiAgbWFyZ2luLXJpZ2h0OiA1cmVtO1xufVxuLm1hcmdpbi1ib3guLXYtbGFyZ2Uge1xuICBtYXJnaW4tdG9wOiA1cmVtO1xuICBtYXJnaW4tYm90dG9tOiA1cmVtO1xufVxuLm1hcmdpbi1ib3guLWFsbC1sYXJnZSB7XG4gIG1hcmdpbjogNXJlbSA1cmVtO1xufVxuLm1hcmdpbi1ib3guLXRvcC14bGFyZ2Uge1xuICBtYXJnaW4tdG9wOiA3LjVyZW07XG59XG4ubWFyZ2luLWJveC4tcmlnaHQteGxhcmdlIHtcbiAgbWFyZ2luLXJpZ2h0OiA3LjVyZW07XG59XG4ubWFyZ2luLWJveC4tYm90dG9tLXhsYXJnZSB7XG4gIG1hcmdpbi1ib3R0b206IDcuNXJlbTtcbn1cbi5tYXJnaW4tYm94Li1sZWZ0LXhsYXJnZSB7XG4gIG1hcmdpbi1sZWZ0OiA3LjVyZW07XG59XG4ubWFyZ2luLWJveC4taC14bGFyZ2Uge1xuICBtYXJnaW4tbGVmdDogNy41cmVtO1xuICBtYXJnaW4tcmlnaHQ6IDcuNXJlbTtcbn1cbi5tYXJnaW4tYm94Li12LXhsYXJnZSB7XG4gIG1hcmdpbi10b3A6IDcuNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogNy41cmVtO1xufVxuLm1hcmdpbi1ib3guLWFsbC14bGFyZ2Uge1xuICBtYXJnaW46IDcuNXJlbSA3LjVyZW07XG59XG4ubWFyZ2luLWJveC4tdG9wLWF1dG8ge1xuICBtYXJnaW4tdG9wOiBhdXRvO1xufVxuLm1hcmdpbi1ib3guLXJpZ2h0LWF1dG8ge1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG4ubWFyZ2luLWJveC4tYm90dG9tLWF1dG8ge1xuICBtYXJnaW4tYm90dG9tOiBhdXRvO1xufVxuLm1hcmdpbi1ib3guLWxlZnQtYXV0byB7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xufVxuLm1hcmdpbi1ib3guLWgtYXV0byB7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG4ubWFyZ2luLWJveC4tdi1hdXRvIHtcbiAgbWFyZ2luLXRvcDogYXV0bztcbiAgbWFyZ2luLWJvdHRvbTogYXV0bztcbn1cbi5tYXJnaW4tYm94Li1hbGwtYXV0byB7XG4gIG1hcmdpbjogYXV0byBhdXRvO1xufVxuLm1hcmdpbi1ib3guLWF1dG8uLXYge1xuICBtYXJnaW4tdG9wOiBhdXRvO1xuICBtYXJnaW4tYm90dG9tOiBhdXRvO1xufVxuLm1hcmdpbi1ib3guLWF1dG8uLWgge1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuLypcbi0tLVxubmFtZTogLnBhZGRpbmctYm94XG5jYXRlZ29yeTogQm94L1BhZGRpbmdcbnRhZzpcbiAtIGNvbXBvbmVudFxuIC0gbGF5b3V0XG5jb21waWxlOiB0cnVlXG4tLS1cblxuQSBzaW1wbGUgY29tcG9uZW50IHRvIGFkZCBwYWRkaW5nc1xuXG4jIyBBcHBseWluZyBwYWRkaW5nc1xuXG5UaGUgZWFzaWVzdCB1c2UgY2FzZSBpcyB0byB1c2Ugc2ltcGxlIGAucGFkZGluZy1ib3ggLi1hbGxgIGZvciBhIHBhZGRpbmcgb24gdG9wLCByaWdodCwgYm90dG9tIGFuZCBsZWZ0IHdpdGggZGVmYXVsdCBzaXplIG9yXG5gLi10b3BgLCBgLi1yaWdodGAsIGAuLWJvdHRvbWAgYW5kIGAuLWxlZnRgIGZvciBzcGVjaWZpZWQgc2lkZXNcblxuYGBgamFkZVxuZGl2LmFpZ2lzLWRlYnVnLnBhZGRpbmctYm94Li1hbGwgRGVmYXV0IHBhZGRpbmcgYXBwbGllZCBvbiB0b3AsIHJpZ2h0LCBib3R0b20gYW5kIGxlZnRcbmBgYFxuYGBgamFkZVxuZGl2LmFpZ2lzLWRlYnVnLnBhZGRpbmctYm94Li1ib3R0b20gRGVmYXV0IHBhZGRpbmcgYXBwbGllZCBvbiBib3R0b21cbmBgYFxuXG4jIyBWYXJpYW50c1xuXG5UaGUgdmFyaWFudHMgZm9yIHRoZSBwYWRkaW5ncyBhcmUgYC4tdG9wLXtzaXplfWAsIGAuLXJpZ2h0LXtzaXplfWAsIGAuLWJvdHRvbS17c2l6ZX1gIGFuZCBgLmxlZnQte3NpemV9YCB0b2dldGhlciB3aXRoIHNpemVzIHNtYWxsLCBtZWRpdW0gb3IgbGFyZ2UuXG5BbGwgc2l6ZXMgYXJlIGRlZmluZWQgaW4gdGhlIHZhcmlhYmxlIHRoZW1lLmNvbXBvbmVudHMucGFkZGluZy1ib3guIFZhbHVlcyBhcmUgYHNtYWxsYCwgYG1lZGl1bWAsIGFuZCBgbGFyZ2VgXG5cbmBgYGphZGVcbmRpdi5haWdpcy1kZWJ1Zy5wYWRkaW5nLWJveC4tbGVmdC1zbWFsbCBTbWFsbCBwYWRkaW5nIGFwcGxpZWQgb24gbGVmdFxuYGBgXG5gYGBqYWRlXG5kaXYuYWlnaXMtZGVidWcucGFkZGluZy1ib3guLXJpZ2h0LXNtYWxsKHN0eWxlPVwidGV4dC1hbGlnbjpyaWdodFwiKSBTbWFsbCBwYWRkaW5nIGFwcGxpZWQgb24gcmlnaHRcbmBgYFxuYGBgamFkZVxuZGl2LmFpZ2lzLWRlYnVnLnBhZGRpbmctYm94Li10b3Atc21hbGwgU21hbGwgcGFkZGluZyBhcHBsaWVkIG9uIHRvcFxuYGBgXG5gYGBqYWRlXG5kaXYuYWlnaXMtZGVidWcucGFkZGluZy1ib3guLWJvdHRvbS1zbWFsbCBTbWFsbCBwYWRkaW5nIGFwcGxpZWQgb24gYm90dG9tXG5gYGBcblxuVGhlcmUgYXJlIGFsc28gc2hvcnRjdXRzIGZvciB2ZXJ0aWNhbCBgLi12LXtzaXplfWAgYW5kIGhvcml6b250YWwgYC4taC17c2l6ZX1gIHRvZ2V0aGVyIHdpdGggc2l6ZXNcblxuYGBgamFkZVxuZGl2LmFpZ2lzLWRlYnVnLnBhZGRpbmctYm94Li12LW1lZGl1bSBNZWRpdW0gcGFkZGluZyBhcHBsaWVkIG9uIHRvcCBhbmQgYm90dG9tXG5gYGBcbmBgYGphZGVcbmRpdi5haWdpcy1kZWJ1Zy5wYWRkaW5nLWJveC4taC1tZWRpdW0oc3R5bGU9XCJ3aWR0aDogMzAwcHhcIikgTWVkaXVtIHBhZGRpbmcgYXBwbGllZCBvbiByaWdodCBhbmQgbGVmdFxuYGBgXG5gYGBqYWRlXG5kaXYuYWlnaXMtZGVidWcucGFkZGluZy1ib3guLWgtbWVkaXVtLi10b3AtbGFyZ2Uoc3R5bGU9XCJ3aWR0aDogNDAwcHhcIikgTWVkaXVtIHBhZGRpbmcgYXBwbGllZCBvbiByaWdodCBhbmQgbGVmdCwgbGFyZ2UgcGFkZGluZyBhcHBsaWVkIG9uIHRvcFxuYGBgXG4qL1xuLnBhZGRpbmctYm94Li10b3Age1xuICBwYWRkaW5nLXRvcDogMC41cmVtO1xufVxuLnBhZGRpbmctYm94Li1yaWdodCB7XG4gIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbn1cbi5wYWRkaW5nLWJveC4tYm90dG9tIHtcbiAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbn1cbi5wYWRkaW5nLWJveC4tbGVmdCB7XG4gIHBhZGRpbmctbGVmdDogMC41cmVtO1xufVxuLnBhZGRpbmctYm94Li1oIHtcbiAgcGFkZGluZy1sZWZ0OiAwLjVyZW07XG4gIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbn1cbi5wYWRkaW5nLWJveC4tdiB7XG4gIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG59XG4ucGFkZGluZy1ib3guLWFsbCB7XG4gIHBhZGRpbmc6IDAuNXJlbSAwLjVyZW07XG59XG4ucGFkZGluZy1ib3guLXRvcC1zbWFsbCB7XG4gIHBhZGRpbmctdG9wOiAwLjEyNXJlbTtcbn1cbi5wYWRkaW5nLWJveC4tcmlnaHQtc21hbGwge1xuICBwYWRkaW5nLXJpZ2h0OiAwLjEyNXJlbTtcbn1cbi5wYWRkaW5nLWJveC4tYm90dG9tLXNtYWxsIHtcbiAgcGFkZGluZy1ib3R0b206IDAuMTI1cmVtO1xufVxuLnBhZGRpbmctYm94Li1sZWZ0LXNtYWxsIHtcbiAgcGFkZGluZy1sZWZ0OiAwLjEyNXJlbTtcbn1cbi5wYWRkaW5nLWJveC4taC1zbWFsbCB7XG4gIHBhZGRpbmctbGVmdDogMC4xMjVyZW07XG4gIHBhZGRpbmctcmlnaHQ6IDAuMTI1cmVtO1xufVxuLnBhZGRpbmctYm94Li12LXNtYWxsIHtcbiAgcGFkZGluZy10b3A6IDAuMTI1cmVtO1xuICBwYWRkaW5nLWJvdHRvbTogMC4xMjVyZW07XG59XG4ucGFkZGluZy1ib3guLWFsbC1zbWFsbCB7XG4gIHBhZGRpbmc6IDAuMTI1cmVtIDAuMTI1cmVtO1xufVxuLnBhZGRpbmctYm94Li10b3AtbWVkaXVtIHtcbiAgcGFkZGluZy10b3A6IDFyZW07XG59XG4ucGFkZGluZy1ib3guLXJpZ2h0LW1lZGl1bSB7XG4gIHBhZGRpbmctcmlnaHQ6IDFyZW07XG59XG4ucGFkZGluZy1ib3guLWJvdHRvbS1tZWRpdW0ge1xuICBwYWRkaW5nLWJvdHRvbTogMXJlbTtcbn1cbi5wYWRkaW5nLWJveC4tbGVmdC1tZWRpdW0ge1xuICBwYWRkaW5nLWxlZnQ6IDFyZW07XG59XG4ucGFkZGluZy1ib3guLWgtbWVkaXVtIHtcbiAgcGFkZGluZy1sZWZ0OiAxcmVtO1xuICBwYWRkaW5nLXJpZ2h0OiAxcmVtO1xufVxuLnBhZGRpbmctYm94Li12LW1lZGl1bSB7XG4gIHBhZGRpbmctdG9wOiAxcmVtO1xuICBwYWRkaW5nLWJvdHRvbTogMXJlbTtcbn1cbi5wYWRkaW5nLWJveC4tYWxsLW1lZGl1bSB7XG4gIHBhZGRpbmc6IDFyZW0gMXJlbTtcbn1cbi5wYWRkaW5nLWJveC4tdG9wLWxhcmdlIHtcbiAgcGFkZGluZy10b3A6IDJyZW07XG59XG4ucGFkZGluZy1ib3guLXJpZ2h0LWxhcmdlIHtcbiAgcGFkZGluZy1yaWdodDogMnJlbTtcbn1cbi5wYWRkaW5nLWJveC4tYm90dG9tLWxhcmdlIHtcbiAgcGFkZGluZy1ib3R0b206IDJyZW07XG59XG4ucGFkZGluZy1ib3guLWxlZnQtbGFyZ2Uge1xuICBwYWRkaW5nLWxlZnQ6IDJyZW07XG59XG4ucGFkZGluZy1ib3guLWgtbGFyZ2Uge1xuICBwYWRkaW5nLWxlZnQ6IDJyZW07XG4gIHBhZGRpbmctcmlnaHQ6IDJyZW07XG59XG4ucGFkZGluZy1ib3guLXYtbGFyZ2Uge1xuICBwYWRkaW5nLXRvcDogMnJlbTtcbiAgcGFkZGluZy1ib3R0b206IDJyZW07XG59XG4ucGFkZGluZy1ib3guLWFsbC1sYXJnZSB7XG4gIHBhZGRpbmc6IDJyZW0gMnJlbTtcbn1cbi5wYWRkaW5nLWJveC4tZ3V0dGVyIHtcbiAgcGFkZGluZzogMC45Mzc1cmVtIDAuOTM3NXJlbTtcbn1cbi8qXG4tLS1cbm5hbWU6IC5zaGFkb3ctYm94XG5jYXRlZ29yeTogQm94L1NoYWRvd1xudGFnOlxuIC0gY29tcG9uZW50XG4gLSBzaGFkb3dcbiAtIGhlbHBlclxuY29tcGlsZTogdHJ1ZVxuLS0tXG5cbkEgYm94IHRvIGNvbnRyb2wgYm94LXNoYWRvd3Mgd2l0aCBkaWZmZXJlbnQgdmFyaWFudHNcblxuIyMgRGVmYXVsdCB2YXJpYW50c1xuYGBgamFkZVxuZGl2LnNoYWRvdy1ib3ggRGVtbyBjb250ZW50XG5kaXYuc2hhZG93LWJveC4taW5zZXQgRGVtbyBjb250ZW50XG5kaXYuc2hhZG93LWJveC4temVybyBVc2UgemVybyBzaGFkb3cgaW4gYW5pbWF0aW9uc1xuYGBgXG4qL1xuLnNoYWRvdy1ib3gge1xuICBib3gtc2hhZG93OiAwcHggMXB4IDZweCAwcHggcmdiYSgwLDAsMCwwLjE3KTtcbn1cbi5zaGFkb3ctYm94Li1pbnNldCB7XG4gIGJveC1zaGFkb3c6IGluc2V0IDBweCAxcHggNnB4IDBweCByZ2JhKDAsMCwwLDAuMTcpO1xufVxuLnNoYWRvdy1ib3guLXplcm8ge1xuICBib3gtc2hhZG93OiBpbnNldCAwcHggMHB4IDBweCAwcHggcmdiYSgwLDAsMCwwLjE3KTtcbn1cbi8qXG4tLS1cbm5hbWU6IC50cmFuc2Zvcm0tYm94XG5jYXRlZ29yeTogQm94L1RyYW5zZm9ybVxudGFnOlxuIC0gY29tcG9uZW50XG4gLSB0cmFuZm9ybVxuIC0gaGVscGVyXG5jb21waWxlOiB0cnVlXG4tLS1cblxuQSBib3ggdG8gY29udHJvbCBjb21tb24gdHJhbnNmb3JtYXRpb25zXG5cbiMjIFJvdGF0ZVxuYGBgamFkZVxuZGl2LnRyYW5zZm9ybS1ib3guLXJvdDkwIFNvbWUgZGVtbyBjb250ZW50XG5kaXYudHJhbnNmb3JtLWJveC4tcm90MTgwIFNvbWUgZGVtbyBjb250ZW50XG5kaXYudHJhbnNmb3JtLWJveC4tcm90MjcwIFNvbWUgZGVtbyBjb250ZW50XG5gYGBcblxuIyMgRmxpcFxuYGBgamFkZVxuZGl2LnRyYW5zZm9ybS1ib3guLWZsaXBYIFNvbWUgZGVtbyBjb250ZW50XG5kaXYudHJhbnNmb3JtLWJveC4tZmxpcFkgU29tZSBkZW1vIGNvbnRlbnRcbmBgYFxuKi9cbi50cmFuc2Zvcm0tYm94Li1yb3Q5MCB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcbn1cbi50cmFuc2Zvcm0tYm94Li1yb3QxODAge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xufVxuLnRyYW5zZm9ybS1ib3guLXJvdDI3MCB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDI3MGRlZyk7XG59XG4udHJhbnNmb3JtLWJveC4tZmxpcFgge1xuICB0cmFuc2Zvcm06IHNjYWxlWCgtMSk7XG59XG4udHJhbnNmb3JtLWJveC4tZmxpcFkge1xuICB0cmFuc2Zvcm06IHNjYWxlWSgtMSk7XG59XG4vKlxuLS0tXG5uYW1lOiAuYnV0dG9uLXN0eWxlXG5jYXRlZ29yeTogQ29tcG9uZW50cy9CdXR0b25cbnRhZzpcbiAtIGNvbXBvbmVudFxuIC0gYnV0dG9uXG5jb21waWxlOiB0cnVlXG4tLS1cblxuQSBidXR0b24gY29tcG9uZW50IGFzIGEgYmFzZSBmb3IgZGlmZmVyZW50IGJ1dHRvbiB2YXJpYW50cyBkZWZpbmVkIGluIGl0cyBjb25maWd1cmF0aW9uLlxuXG5gYGBqYWRlXG5idXR0b24uYnV0dG9uLXN0eWxlLi1tYWluIEFjdGlvblxuYGBgXG4qL1xuLmJ1dHRvbi1zdHlsZSB7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IG5vbmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBvdXRsaW5lOiBub25lO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuLmJ1dHRvbi1zdHlsZS4tbWFpbiB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzAzMWZlO1xuICBwYWRkaW5nOiAwLjEyNXJlbSAwLjVyZW07XG59XG4uYnV0dG9uLXN0eWxlLi1tYWluLi1ob3Zlcjpob3ZlciB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTYxNmJkO1xufVxuLmJ1dHRvbi1zdHlsZS4taG92ZXIge1xuICB0cmFuc2l0aW9uOiBhbGwgMC4xcztcbn1cbi5idXR0b24tc3R5bGUuLWhvdmVyOmhvdmVyIHtcbiAgY29sb3I6ICMzMDMxZmU7XG59XG4uYnV0dG9uLXN0eWxlLi1kaXNhYmxlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNiNmI2YjY7XG59XG4vKlxuLS0tXG5uYW1lOiAuZHJvcC1kb3duLW1lbnVcbmNhdGVnb3J5OiBEcm9wRG93blxudGFnOlxuIC0gY29tcG9uZW50XG4gLSBkcm9wZG93blxuY29tcGlsZTogdHJ1ZVxuLS0tXG5cblRoaXMgc3R5bGVzIGEgbWVudSBpbnNpZGUgYSAuZHJvcC1kb3duLlxuXG5gYGBqYWRlXG5kaXYuZHJvcC1kb3duLW1lbnVcblx0ZGl2Lml0ZW0gTWVudSAxXG5cdGRpdi5pdGVtIE1lbnUgMlxuXHRkaXYuaXRlbSBNZW51IDNcbmBgYFxuXG5Vc2VkIGluIGNvbWJpbmF0aW9uIHdpdGggdGhlIC5kcm9wLWRvd24gaXRzZWxmXG5gYGBqYWRlXG5kaXYuZHJvcC1kb3duLi1vcGVuXG5cdGRpdi50b2dnbGUuYWlnaXMtZGVidWcgVG9nZ2xlXG5cdGRpdi5jb250ZW50LmRyb3AtZG93bi1tZW51XG5cdFx0ZGl2Lml0ZW0gTWVudSAxXG5cdFx0ZGl2Lml0ZW0gTWVudSAyXG5cdFx0ZGl2Lml0ZW0gTWVudSAzXG5gYGBcblxuKi9cbi5kcm9wLWRvd24tbWVudSB7XG4gIGJveC1zaGFkb3c6IDBweCAxcHggNnB4IDBweCByZ2JhKDAsMCwwLDAuMTcpO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTBlMGUwO1xuICBib3JkZXItdG9wOiBub25lO1xufVxuLmRyb3AtZG93bi1tZW51ID4gLml0ZW0gKyAuaXRlbSB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZTBlMGUwO1xufVxuLypcbi0tLVxubmFtZTogLmRyb3AtZG93blxuY2F0ZWdvcnk6IERyb3BEb3duXG50YWc6XG4gLSBjb21wb25lbnRcbiAtIGRyb3Bkb3duXG5jb21waWxlOiB0cnVlXG4tLS1cblxuVGhpcyBkcm9wZG93biBoYXMgdGhlIHNpbXBsZSBtZWNoYW5pc20gdG8gb3BlbiBhbmQgY2xvc2UgYSBkcm9wZG93biBjb250ZW50LlxuXG5UcmlnZ2VyIHdpdGggbW91c2VvdmVyIGJ5IGFkZGluZyBgLi1ob3ZlcmAgdmFyaWFudFxuXG5UcmlnZ2VyIHdpdGgganMgYnkgYWRkaW5nIGAuLW9wZW5gIHZhcmlhbnQgXG5cbkNsb3NlZCBEcm9wZG93blxuYGBgamFkZVxuZGl2LmRyb3AtZG93blxuXHRkaXYudG9nZ2xlLmFpZ2lzLWRlYnVnIFRvZ2dsZVxuXHRkaXYuY29udGVudCBEcm9wZG93biBjb250ZW50XG5gYGBcbiMjIFZhcmlhbnRzXG5cblZhcmlhbnRzIGAuLXRvcGAsIGAuLWJvdHRvbWAsIGAuLWxlZnRgIGFuZCBgLi1yaWdodGAgY2FuIGJlIGNvbWJpbmVkXG5cbkJvdHRvbSBsZWZ0XG5gYGBqYWRlXG5kaXYuZHJvcC1kb3duLi1ob3Zlci4tYm90dG9tLi1sZWZ0XG5cdGRpdi50b2dnbGUuYWlnaXMtZGVidWcgVG9nZ2xlXG5cdGRpdi5jb250ZW50IERyb3Bkb3duIGNvbnRlbnRcbmBgYFxuXG5Cb3R0b20gcmlnaHRcbmBgYGphZGVcbmRpdi5kcm9wLWRvd24uLWhvdmVyLi1ib3R0b20uLXJpZ2h0XG5cdGRpdi50b2dnbGUuYWlnaXMtZGVidWcgVG9nZ2xlXG5cdGRpdi5jb250ZW50IERyb3Bkb3duIGNvbnRlbnRcbmBgYFxuXG5Ub3AgcmlnaHRcbmBgYGphZGVcbmRpdi5kcm9wLWRvd24uLWhvdmVyLi10b3AuLXJpZ2h0XG5cdGRpdi50b2dnbGUuYWlnaXMtZGVidWcgVG9nZ2xlXG5cdGRpdi5jb250ZW50IERyb3Bkb3duIGNvbnRlbnRcbmBgYFxuXG5Ub3AgbGVmdFxuYGBgamFkZVxuZGl2LmRyb3AtZG93bi4taG92ZXIuLXRvcC4tbGVmdFxuXHRkaXYudG9nZ2xlLmFpZ2lzLWRlYnVnIFRvZ2dsZVxuXHRkaXYuY29udGVudCBEcm9wZG93biBjb250ZW50XG5gYGBcbiMjIEFzaWRlXG5cblRoZXJlIGlzIGFuIGAuLWFzaWRlYCB2YXJpYW50IHRvIG9wZW4gY29udGVudCBhc2lkZVxuXG5Ub3AgbGVmdCBhc2lkZVxuYGBgamFkZVxuZGl2LmRyb3AtZG93bi4taG92ZXIuLXRvcC4tbGVmdC4tYXNpZGUoc3R5bGU9XCJsZWZ0OjIwMHB4O3dpZHRoOjUwJVwiKVxuXHRkaXYudG9nZ2xlLmFpZ2lzLWRlYnVnIFRvZ2dsZVxuXHRkaXYuY29udGVudCBEcm9wZG93biBjb250ZW50XG5gYGBcblxuVG9wIHJpZ2h0IGFzaWRlXG5gYGBqYWRlXG5kaXYuZHJvcC1kb3duLi1ob3Zlci4tdG9wLi1yaWdodC4tYXNpZGUoc3R5bGU9XCJ3aWR0aDo1MCVcIilcblx0ZGl2LnRvZ2dsZS5haWdpcy1kZWJ1ZyBUb2dnbGVcblx0ZGl2LmNvbnRlbnQgRHJvcGRvd24gY29udGVudFxuYGBgXG4jIyBSZWxhdGl2ZSBjb250ZW50XG5cblRoZXJlIGlzIGEgdmFyaWFudCBmb3Igb3BlbmluZyB0aGUgY29udGVudCByZWxhdGl2ZSBpbnN0ZWFkIG9mIGFic29sdXRlXG5cblJlbGF0aXZlXG5gYGBqYWRlXG5kaXYuZHJvcC1kb3duLi1ob3Zlci4tcmVsYXRpdmUoc3R5bGU9XCJ3aWR0aDo1MCVcIilcblx0ZGl2LnRvZ2dsZS5haWdpcy1kZWJ1ZyBUb2dnbGVcblx0ZGl2LmNvbnRlbnQgRHJvcGRvd24gY29udGVudFxuYGBgXG5cbkpTIFRyaWdnZXJcbmBgYGphZGVcbmRpdi5kcm9wLWRvd24uLW9wZW4uLWJvdHRvbS4tbGVmdFxuXHRkaXYudG9nZ2xlLmFpZ2lzLWRlYnVnIFRvZ2dsZVxuXHRkaXYuY29udGVudCBEcm9wZG93biBjb250ZW50XG5gYGBcblxuIyMgRG8gbm90IHdyYXAgY29udGVudFxuXG5BIHZhcmlhbnQgcHJldmVudGluZyB0aGUgY29udGVudCBmcm9tIHdyYXBwaW5nXG5cblxuYGBgamFkZVxuZGl2LmRyb3AtZG93bi4taG92ZXIuLW5vd3JhcFxuXHRkaXYudG9nZ2xlLmFpZ2lzLWRlYnVnIFRvZ2dsZVxuXHRkaXYuY29udGVudCBEcm9wZG93biBjb250ZW50IHdpdGggc29tZSB3aGl0ZXNwYWNlc1xuYGBgXG5cbiovXG4uZHJvcC1kb3duIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5kcm9wLWRvd24uLW9wZW4gPiAuY29udGVudCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLmRyb3AtZG93bi4taG92ZXI6aG92ZXIgPiAuY29udGVudCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLmRyb3AtZG93bi4tdG9wID4gLmNvbnRlbnQge1xuICBib3R0b206IDEwMCU7XG59XG4uZHJvcC1kb3duLi1ib3R0b20gPiAuY29udGVudCB7XG4gIHRvcDogMTAwJTtcbn1cbi5kcm9wLWRvd24uLWxlZnQgPiAuY29udGVudCB7XG4gIGxlZnQ6IDA7XG59XG4uZHJvcC1kb3duLi10b3AuLWxlZnQuLWFzaWRlID4gLmNvbnRlbnQge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMTAwJSwgMTAwJSk7XG59XG4uZHJvcC1kb3duLi1yaWdodCA+IC5jb250ZW50IHtcbiAgcmlnaHQ6IDA7XG59XG4uZHJvcC1kb3duLi10b3AuLXJpZ2h0Li1hc2lkZSA+IC5jb250ZW50IHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTAwJSwgMTAwJSk7XG59XG4uZHJvcC1kb3duLi1yZWxhdGl2ZSA+IC5jb250ZW50IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLmRyb3AtZG93bi4tbm93cmFwID4gLmNvbnRlbnQge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLmRyb3AtZG93biA+IC50b2dnbGUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG4uZHJvcC1kb3duID4gLmNvbnRlbnQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDEwMDA7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4uc3ZnLWljb24ge1xuICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMS41cmVtO1xuICBoZWlnaHQ6IDEuNXJlbTtcbn1cbi5zdmctaWNvbi4taW5saW5lIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuLnN2Zy1pY29uLi1zY2FsZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG4vKlxuLS0tXG5uYW1lOiAuYWJzLWxheW91dFxuY2F0ZWdvcnk6IExheW91dC9BYnNvbHV0ZVxudGFnOlxuIC0gY29tcG9uZW50XG4gLSBsYXlvdXRcbmNvbXBpbGU6IHRydWVcbi0tLVxuXG5BIHNpbXBsZSBjb21wb25lbnQgdG8gcG9zaXRpb24gYW4gZWxlbWVudCBhYnNvbHV0ZS4gRGVmYXVsdCBpcyB0b3AsIGxlZnRcblxuIyMgVmFyaWFudHNcblxuVGhlIHZhcmlhbnRzIGZvciB0aGUgdmVydGljYWwgcG9zaXRpb25pbmcgYXJlIGAuLXRvcGAsIGAuLXZjZW50ZXJgIGFuZCBgLi1ib3R0b21gLlxuVGhlIHZhcmlhbnRzIGZvciB0aGUgaG9yaXpvbnRhbCBwb3NpdGlvbmluZyBhcmUgYC4tcmlnaHRgLCBgLi1oY2VudGVyYCBhbmQgYC4tbGVmdGAuXG5BZGRpdGluYWxseSB0aGUgYC1jZW50ZXJgIHZhcmlhbnQgd2lsbCBjZW50ZXIgaG9yaXpvbnRhbCBhbmQgdmVydGljYWwuXG5WYXJpYW50cyB0byBzdHJldGNoIGFuIGl0ZW0gdG8gaXRzIGZ1bGwgd2lkdGgvaGVpZ2h0IGNhbiBiZSBkaW5lIHdpdGggYC5pdGVtLi1zdHJldGNoYC5cbkluIHNvbWUgc2l0dWF0aW9ucyB0aGUgYWJzLWxheW91dCBpdHNlbGYgbmVlZHMgdG8gc3RyZXRjaCBzbyB1c2UgdGhlIHN0cmV0Y2ggdmFyaWFudCBvbiB0aGUgY29tcG9uZW50LiBgLmFicy1sYXlvdXQuLXN0cmV0Y2hgIFxuXG5gYGBqYWRlXG5kaXYuYWJzLWxheW91dChzdHlsZT1cIndpZHRoOiAxMDAlOyBoZWlnaHQ6IDUwcHhcIilcbiAgICBkaXYuYWlnaXMtZGVidWcuaXRlbS4tY2VudGVyXG5gYGBcbmBgYGphZGVcbmRpdi5hYnMtbGF5b3V0KHN0eWxlPVwid2lkdGg6IDEwMCU7IGhlaWdodDogNTBweFwiKVxuICAgIGRpdi5haWdpcy1kZWJ1Zy5pdGVtLi10b3AuLWhjZW50ZXJcbmBgYFxuYGBgamFkZVxuZGl2LmFicy1sYXlvdXQoc3R5bGU9XCJ3aWR0aDogMTAwJTsgaGVpZ2h0OiA1MHB4XCIpXG4gICAgZGl2LmFpZ2lzLWRlYnVnLml0ZW0uLXRvcC4tcmlnaHRcbmBgYFxuYGBgamFkZVxuZGl2LmFicy1sYXlvdXQoc3R5bGU9XCJ3aWR0aDogMTAwJTsgaGVpZ2h0OiA1MHB4XCIpXG4gICAgZGl2LmFpZ2lzLWRlYnVnLml0ZW0uLXJpZ2h0Li12Y2VudGVyXG5gYGBcbmBgYGphZGVcbmRpdi5hYnMtbGF5b3V0KHN0eWxlPVwid2lkdGg6IDEwMCU7IGhlaWdodDogNTBweFwiKVxuICAgIGRpdi5haWdpcy1kZWJ1Zy5pdGVtLi1yaWdodC4tYm90dG9tXG5gYGBcbmBgYGphZGVcbmRpdi5hYnMtbGF5b3V0KHN0eWxlPVwid2lkdGg6IDEwMCU7IGhlaWdodDogNTBweFwiKVxuICAgIGRpdi5haWdpcy1kZWJ1Zy5pdGVtLi1ib3R0b20uLWhjZW50ZXJcbmBgYFxuYGBgamFkZVxuZGl2LmFicy1sYXlvdXQoc3R5bGU9XCJ3aWR0aDogMTAwJTsgaGVpZ2h0OiA1MHB4XCIpXG4gICAgZGl2LmFpZ2lzLWRlYnVnLml0ZW0uLWJvdHRvbS4tbGVmdFxuYGBgXG5gYGBqYWRlXG5kaXYuYWJzLWxheW91dChzdHlsZT1cIndpZHRoOiAxMDAlOyBoZWlnaHQ6IDUwcHhcIilcbiAgICBkaXYuYWlnaXMtZGVidWcuaXRlbS4tbGVmdC4tdmNlbnRlclxuYGBgXG5gYGBqYWRlXG5kaXYuYWJzLWxheW91dChzdHlsZT1cIndpZHRoOiAxMDAlOyBoZWlnaHQ6IDUwcHhcIilcbiAgICBkaXYuYWlnaXMtZGVidWcuaXRlbS4tbGVmdC4tdG9wXG5gYGBcbmBgYGphZGVcbmRpdi5hYnMtbGF5b3V0KHN0eWxlPVwid2lkdGg6IDEwMCU7IGhlaWdodDogNTBweFwiKVxuICAgIGRpdi5haWdpcy1kZWJ1Zy5pdGVtLi1zdHJldGNoXG5gYGBcblxuIyMgWi1JbmRleFxuXG5FdmVyeSBpdGVtIGNhbiBjb250cm9sbCBpdHMgeiBpbmRleCB3aXRoIHRoZSBgLi16e2l9YHZhcmlhbnRzLlxuYGBgamFkZVxuZGl2LmFicy1sYXlvdXQoc3R5bGU9XCJ3aWR0aDogMTAwJTsgaGVpZ2h0OiA1MHB4XCIpXG4gICAgZGl2LmFpZ2lzLWRlYnVnLml0ZW0uLXRvcC4tbGVmdC4tejFcbiAgICBkaXYuYWlnaXMtZGVidWcuaXRlbS4tdG9wLi1sZWZ0Li16MlxuYGBgXG5cbiovXG4uYWJzLWxheW91dCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5hYnMtbGF5b3V0Li1zdHJldGNoIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbn1cbi5hYnMtbGF5b3V0ID4gLml0ZW0ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG59XG4uYWJzLWxheW91dCA+IC5pdGVtLi10b3Age1xuICB0b3A6IDA7XG59XG4uYWJzLWxheW91dCA+IC5pdGVtLi1yaWdodCB7XG4gIHJpZ2h0OiAwO1xufVxuLmFicy1sYXlvdXQgPiAuaXRlbS4tYm90dG9tIHtcbiAgYm90dG9tOiAwO1xufVxuLmFicy1sYXlvdXQgPiAuaXRlbS4tbGVmdCB7XG4gIGxlZnQ6IDA7XG59XG4uYWJzLWxheW91dCA+IC5pdGVtLi12Y2VudGVyIHtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbn1cbi5hYnMtbGF5b3V0ID4gLml0ZW0uLWhjZW50ZXIge1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbn1cbi5hYnMtbGF5b3V0ID4gLml0ZW0uLWNlbnRlciB7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xufVxuLmFicy1sYXlvdXQgPiAuaXRlbS4tc3RyZXRjaCB7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbn1cbi5hYnMtbGF5b3V0ID4gLml0ZW0uLXoxIHtcbiAgei1pbmRleDogMTtcbn1cbi5hYnMtbGF5b3V0ID4gLml0ZW0uLXoyIHtcbiAgei1pbmRleDogMjtcbn1cbi5hYnMtbGF5b3V0ID4gLml0ZW0uLXozIHtcbiAgei1pbmRleDogMztcbn1cbi5hYnMtbGF5b3V0ID4gLml0ZW0uLXo0IHtcbiAgei1pbmRleDogNDtcbn1cbi5hYnMtbGF5b3V0ID4gLml0ZW0uLXo1IHtcbiAgei1pbmRleDogNTtcbn1cbi5hYnMtbGF5b3V0ID4gLml0ZW0uLXo2IHtcbiAgei1pbmRleDogNjtcbn1cbi5hYnMtbGF5b3V0ID4gLml0ZW0uLXo3IHtcbiAgei1pbmRleDogNztcbn1cbi5hYnMtbGF5b3V0ID4gLml0ZW0uLXo4IHtcbiAgei1pbmRleDogODtcbn1cbi5hYnMtbGF5b3V0ID4gLml0ZW0uLXo5IHtcbiAgei1pbmRleDogOTtcbn1cbi5hYnMtbGF5b3V0ID4gLml0ZW0uLXoxMCB7XG4gIHotaW5kZXg6IDEwO1xufVxuLypcbi0tLVxubmFtZTogLmZpeGVkLWxheW91dFxuY2F0ZWdvcnk6IExheW91dC9GaXhlZFxudGFnOlxuIC0gY29udGFpbmVyXG4tLS1cblxuRml4ZWQgY29udGFpbmVyXG5Zb3UgY2FuIHBvc2l0aW9uIHRoZSBjb250YWluZXIgd2l0aCB0aGUgZGlmZmVyZW50IHZhcmlhbnRzIGAuLXRvcGAsIGAuLWJvdHRvbWAsIGAuLWxlZnRgLCBgLi1yaWdodGAuXG5UbyBzcGFuIGZ1bGwgd2lkdGggLyBoZWlnaHQgdXNlIGAuLWxlZnRgICYgYC4tcmlnaHRgIC8gYC4tdG9wYCAmIGAuLWJvdHRvbWBcblxuRml4ZWQgdG9wIGFuZCBmdWxsIHdpZHRoXG5cbmBgYGphZGVcbmRpdi5maXhlZC1sYXlvdXQuLXRvcC4tbGVmdC4tcmlnaHQuYWlnaXMtZGVidWcgdG9wIGxlZnQgZnVsbHdpZHRoXG4gICAgXG5gYGBcblxuRml4ZWQgcmlnaHQgYW5kIGZ1bGwgaGVpZ2h0XG5cbmBgYGphZGVcbmRpdi5maXhlZC1sYXlvdXQuLXRvcC4tYm90dG9tLi1yaWdodC5haWdpcy1kZWJ1ZyB0b3AgcmlnaHQgZnVsbGhlaWdodFxuICAgIFxuYGBgXG5cbiovXG4uZml4ZWQtbGF5b3V0IHtcbiAgcG9zaXRpb246IGZpeGVkO1xufVxuLmZpeGVkLWxheW91dC4tdG9wIHtcbiAgdG9wOiAwO1xufVxuLmZpeGVkLWxheW91dC4tYm90dG9tIHtcbiAgYm90dG9tOiAwO1xufVxuLmZpeGVkLWxheW91dC4tbGVmdCB7XG4gIGxlZnQ6IDA7XG59XG4uZml4ZWQtbGF5b3V0Li1yaWdodCB7XG4gIHJpZ2h0OiAwO1xufVxuLypcbi0tLVxubmFtZTogLmZpeGVkLXBhZ2UtbGF5b3V0XG5jYXRlZ29yeTogTGF5b3V0L0ZpeGVkIFBhZ2VcbnRhZzpcbiAtIGNvbXBvbmVudFxuIC0gcGFnZVxuY29tcGlsZTogdHJ1ZVxuLS0tXG5cbkEgcGFnZSBsYXlvdXQgd2l0aCBhIGZpeGVkIGhlYWRlciBhbmQgb3B0aW9uYWwgc2lkZWJhcnMuXG5XaXRoIHRoZSBgLW1hcmdpbi17dG9wfGxlZnR8cmlnaHR9YCwgYC1tYXJnaW4te3RvcHxsZWZ0fHJpZ2h0fS1zbWFsbGAgdmFyaWFudHMgeW91IGNhbiBjb250cm9sIHRoZSBzcGFjaW5nLlxuSWYgdGhlIGNvbnRlbnQgZm9yIGV4YW1wbGUgbmVlZHMgYSBzcGFjaW5nIHRvd2FyZHMgdGhlIGhlYWRlciB1c2U6IGAuY29udGVudC4tbWFyZ2luLXRvcGAuXG5JZiB0aGUgc2lkZWJhciBzaG93IGJlIGJlbG93IHRoZSBoZWFkZXIgdXNlOiBgLnNpZGViYXIuLWxlZnQuLW1hcmdpbi10b3BgLlxuXG5cblRoZXJlIGFyZSB2YXJpYW50cyB0byByZXNpemUgdGhlIGhlYWRlciBhbmQgc2lkZWJhcnMgdG8gYSBzbWFsbGVyIHdpZHRoL2hlaWdodDogYC5oZWFkZXIuLXNtYWxsYCwgYC5zaWRlYmFyLi1zbWFsbGAuXG5JZiB5b3UgbmVlZCBhIHNwYWNpbmcgb24geW91ciBjb250ZW50IG9yIHNpZGViYXIgeW91IG5lZWQgdG8gYWRqdXN0IHRoYXQgbWFudWFsbHkgbGlrZSB0aGlzOlxuYGBgXG5kaXYuZml4ZWQtcGFnZS1sYXlvdXRcblx0ZGl2LmhlYWRlci4tc21hbGxcblx0XHRkaXYuYWlnaXMtZGVidWcoc3R5bGU9XCJ3aWR0aDoxMDAlO2hlaWdodDoxMDAlXCIpICBIZWFkZXJcblx0ZGl2LmNvbnRlbnQuLW1hcmdpbi10b3Atc21hbGwgQ29udGVudFxuXHRkaXYuc2lkZWJhci4tbGVmdC4tbWFyZ2luLXRvcC1zbWFsbC4tc21hbGxcblx0XHRkaXYuYWlnaXMtZGVidWcoc3R5bGU9XCJoZWlnaHQ6MTAwJVwiKSAgTGVmdCBTaWRlYmFyXG5gYGBcblxuIyMgSGVhZGVyIHdpdGggc2lkZWJhcnNcblxuYGBgamFkZVxuZGl2LmZpeGVkLXBhZ2UtbGF5b3V0XG5cdGRpdi5oZWFkZXJcblx0XHRkaXYuYWlnaXMtZGVidWcoc3R5bGU9XCJ3aWR0aDoxMDAlO2hlaWdodDoxMDAlXCIpICBIZWFkZXJcblx0ZGl2LmNvbnRlbnQuLW1hcmdpbi10b3AgQ29udGVudFxuXHRkaXYuc2lkZWJhci4tbGVmdC4tbWFyZ2luLXRvcFxuXHRcdGRpdi5haWdpcy1kZWJ1ZyhzdHlsZT1cImhlaWdodDoxMDAlXCIpICBMZWZ0IFNpZGViYXJcblx0ZGl2LnNpZGViYXIuLXJpZ2h0XG5cdFx0ZGl2LmFpZ2lzLWRlYnVnKHN0eWxlPVwiaGVpZ2h0OjEwMCVcIikgIFJpZ2h0IFNpZGViYXJcbmBgYFxuKi9cbi5maXhlZC1wYWdlLWxheW91dCA+IC5oZWFkZXIge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGhlaWdodDogMy4xMjVyZW07XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzO1xuICB6LWluZGV4OiAxMDAwO1xufVxuLmZpeGVkLXBhZ2UtbGF5b3V0ID4gLmhlYWRlci4tc21hbGwge1xuICBoZWlnaHQ6IDEuODc1cmVtO1xufVxuLmZpeGVkLXBhZ2UtbGF5b3V0ID4gLmhlYWRlci4taGlkZSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwJSk7XG59XG4uZml4ZWQtcGFnZS1sYXlvdXQgPiAuc2lkZWJhciB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIHdpZHRoOiAxNC41NjI1cmVtO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycztcbiAgei1pbmRleDogMTAwNTtcbn1cbi5maXhlZC1wYWdlLWxheW91dCA+IC5zaWRlYmFyLi1tYXJnaW4tdG9wIHtcbiAgdG9wOiAzLjEyNXJlbTtcbn1cbi5maXhlZC1wYWdlLWxheW91dCA+IC5zaWRlYmFyLi1tYXJnaW4tdG9wLXNtYWxsIHtcbiAgdG9wOiAxLjg3NXJlbTtcbn1cbi5maXhlZC1wYWdlLWxheW91dCA+IC5zaWRlYmFyLi1zbWFsbCB7XG4gIHdpZHRoOiAzLjEyNXJlbTtcbn1cbi5maXhlZC1wYWdlLWxheW91dCA+IC5zaWRlYmFyLi1sZWZ0IHtcbiAgbGVmdDogMDtcbn1cbi5maXhlZC1wYWdlLWxheW91dCA+IC5zaWRlYmFyLi1sZWZ0Li1oaWRlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTtcbn1cbi5maXhlZC1wYWdlLWxheW91dCA+IC5zaWRlYmFyLi1yaWdodCB7XG4gIHJpZ2h0OiAwO1xufVxuLmZpeGVkLXBhZ2UtbGF5b3V0ID4gLnNpZGViYXIuLXJpZ2h0Li1oaWRlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpO1xufVxuLmZpeGVkLXBhZ2UtbGF5b3V0ID4gLmNvbnRlbnQge1xuICB0cmFuc2l0aW9uOiBtYXJnaW4gMC4ycztcbn1cbi5maXhlZC1wYWdlLWxheW91dCA+IC5jb250ZW50Li1tYXJnaW4tbGVmdCB7XG4gIG1hcmdpbi1sZWZ0OiAxNC41NjI1cmVtO1xufVxuLmZpeGVkLXBhZ2UtbGF5b3V0ID4gLmNvbnRlbnQuLW1hcmdpbi1sZWZ0LXNtYWxsIHtcbiAgbWFyZ2luLWxlZnQ6IDMuMTI1cmVtO1xufVxuLmZpeGVkLXBhZ2UtbGF5b3V0ID4gLmNvbnRlbnQuLW1hcmdpbi1yaWdodCB7XG4gIG1hcmdpbi1yaWdodDogMTQuNTYyNXJlbTtcbn1cbi5maXhlZC1wYWdlLWxheW91dCA+IC5jb250ZW50Li1tYXJnaW4tcmlnaHQtc21hbGwge1xuICBtYXJnaW4tcmlnaHQ6IDMuMTI1cmVtO1xufVxuLmZpeGVkLXBhZ2UtbGF5b3V0ID4gLmNvbnRlbnQuLW1hcmdpbi10b3Age1xuICBtYXJnaW4tdG9wOiAzLjEyNXJlbTtcbn1cbi5maXhlZC1wYWdlLWxheW91dCA+IC5jb250ZW50Li1tYXJnaW4tdG9wLXNtYWxsIHtcbiAgbWFyZ2luLXRvcDogMS44NzVyZW07XG59XG4vKlxuLS0tXG5uYW1lOiAuZmxleC1sYXlvdXRcbmNhdGVnb3J5OiBMYXlvdXQvRmxleFxudGFnOlxuIC0gY29tcG9uZW50XG4gLSBsYXlvdXRcbiAtIGZsZXhib3hcbmNvbXBpbGU6IHRydWVcbi0tLVxuXG5BIGxheW91dCBzeXN0ZW0gYmFzZWQgb24gZmxleGJveCB0byBhbGlnbiBhbmQgZGlzdHJpYnV0ZSBpdGVtcyBob3Jpem9udGFsbHkgYW5kIHZlcnRpY2FsbHkuXG5cblxuIyBBbGlnbm1lbnQgb2YgaXRlbXNcblxuVGhlIGAtY2VudGVyYCBzaG9ydGN1dCB3aWxsIGNlbnRlciBhbGwgaXRlbXMgaG9yaXpvbnRhbCAmIHZlcnRpY2FsXG5gYGBqYWRlXG5kaXYoc3R5bGU9XCJoZWlnaHQ6IDEwMHB4XCIpLmZsZXgtbGF5b3V0Li1jZW50ZXJcblx0ZGl2LmFpZ2lzLWRlYnVnIEl0ZW0gMVxuXHRkaXYuYWlnaXMtZGVidWcgSXRlbSAyXG5cdGRpdi5haWdpcy1kZWJ1ZyBJdGVtIDNcbmBgYFxuXG5gLWJhc2VsaW5lYCB3aWxsIGFsaWduIGl0ZW1zIGJhc2VkIG9uIHRoZWlyIGJhc2VsaW5lLiBXb3JrcyBnb29kIGlmIGFsbCB0aGUgaXRlbXMgY29udGFpbiB0ZXh0LiBcbmBgYGphZGVcbmRpdi5mbGV4LWxheW91dC4tYmFzZWxpbmVcblx0ZGl2LmFpZ2lzLWRlYnVnIEl0ZW1cblx0ZGl2LmFpZ2lzLWRlYnVnKHN0eWxlPVwicGFkZGluZy10b3A6IDUwcHg7cGFkZGluZy1ib3R0b206IDMwcHg7XCIpIEl0ZW0gMlxuYGBgXG5cbmAtaXRlbXMtdG9wYCAmIGAtaXRlbXMtYm90dG9tYCB3aWxsIGFsaWduIHRoZSBpdGVtcyBlaXRoZXIgb24gdG9wIG9yIGJvdHRvbVxuYGBgamFkZVxuZGl2LmZsZXgtbGF5b3V0Li1pdGVtcy10b3Bcblx0ZGl2LmFpZ2lzLWRlYnVnIEl0ZW0gMVxuXHRkaXYuYWlnaXMtZGVidWcoc3R5bGU9XCJwYWRkaW5nLXRvcDogNTBweDtwYWRkaW5nLWJvdHRvbTogMzBweDtcIikgSXRlbSAyXG5cdGRpdi5haWdpcy1kZWJ1ZyBJdGVtIDNcbmBgYFxuYGBgamFkZVxuZGl2LmZsZXgtbGF5b3V0Li1pdGVtcy1ib3R0b21cblx0ZGl2LmFpZ2lzLWRlYnVnIEl0ZW0gMVxuXHRkaXYuYWlnaXMtZGVidWcoc3R5bGU9XCJwYWRkaW5nLXRvcDogNTBweDtwYWRkaW5nLWJvdHRvbTogMzBweDtcIikgSXRlbSAyXG5cdGRpdi5haWdpcy1kZWJ1ZyBJdGVtIDNcbmBgYFxuXG5gLWl0ZW1zLWNlbnRlcmAgd2lsbCBjZW50ZXIgdGhlIGl0ZW1zIHZlcnRpY2FsbHlcbmBgYGphZGVcbmRpdi5mbGV4LWxheW91dC4taXRlbXMtY2VudGVyXG5cdGRpdi5haWdpcy1kZWJ1ZyBJdGVtIDFcblx0ZGl2LmFpZ2lzLWRlYnVnKHN0eWxlPVwicGFkZGluZy10b3A6IDUwcHg7cGFkZGluZy1ib3R0b206IDMwcHg7XCIpIEl0ZW0gMlxuXHRkaXYuYWlnaXMtZGVidWcgSXRlbSAzXG5gYGBcblxuIyBBbGlnbm1lbnQgb2YgaW5kaXZpZHVhbCBpdGVtc1xuXG5gYGBqYWRlXG5kaXYoc3R5bGU9XCJoZWlnaHQ6IDEwMHB4XCIpLmZsZXgtbGF5b3V0XG5cdGRpdi5haWdpcy1kZWJ1Zy5pdGVtLi10b3AgdG9wXG5cdGRpdi5haWdpcy1kZWJ1Zy5pdGVtLi1jZW50ZXIgY2VudGVyXG5cdGRpdi5haWdpcy1kZWJ1Zy5pdGVtLi1ib3R0b20gYm90dG9tXG5cdGRpdi5haWdpcy1kZWJ1Zy5pdGVtLi1zdHJldGNoIHN0cmV0Y2hcbmBgYFxuXG4jIFJvdyBtb2RlXG5cbklmIHlvdSBsaWtlIGEgY29udGFpbmVyIHRoYXQgc3BhbnMgdGhlIGZ1bGwgd2lkdGggd2l0aCBpdGVtIHRoYXQgcmVzaXplIHRoZW1zZWxmIHlvdSBjYW4gdXNlIHRoZSBgLXJvd2AgdmFyaWFudC5cblxuYGBgamFkZVxuZGl2LmZsZXgtbGF5b3V0Li1yb3dcblx0ZGl2LmFpZ2lzLWRlYnVnLml0ZW0gSXRlbSAxXG5cdGRpdi5haWdpcy1kZWJ1Zy5pdGVtIEl0ZW0gMlxuXHRkaXYuYWlnaXMtZGVidWcuaXRlbSBJdGVtIDNcbmBgYFxuXG5JZiB5b3UgbGlrZSB0byBmaXggYW4gaXRlbSBiYXNlZCBvbiBpdHMgY29udGVudCB3aWR0aCB1c2UgdGhlIGAtY29udGVudGAgdmFyaWFudC5cblRoaXMgaXMgYSBzaG9ydGN1dCBmb3IgYC1uby1ncm93IC1uby1zaHJpbmtgLiBcbmBgYGphZGVcbmRpdi5mbGV4LWxheW91dC4tcm93XG5cdGRpdi5haWdpcy1kZWJ1Zy5pdGVtLi1jb250ZW50XG5cdFx0aW1nKHNyYz1cImh0dHA6Ly92aWEucGxhY2Vob2xkZXIuY29tLzM1MHg4MFwiKVxuXHRkaXYuYWlnaXMtZGVidWcuaXRlbSBJdGVtIDJcblx0ZGl2LmFpZ2lzLWRlYnVnLml0ZW0gSXRlbSAzXG5gYGBcblxuWW91IGNhbiBjb250cm9sIHRoZSBzaXppbmcgb2YgdGhlIGl0ZW1zIHdpdGggYC1ncm93YCwgYC1zaHJpbmtgLCBgLW5vLWdyb3dgLCBgLW5vLXNocmlua2AuXG5gYGBqYWRlXG5kaXYuZmxleC1sYXlvdXQuLXJvd1xuXHRkaXYuYWlnaXMtZGVidWcuaXRlbS4tbm8tc2hyaW5rXG5cdFx0aW1nKHNyYz1cImh0dHA6Ly92aWEucGxhY2Vob2xkZXIuY29tLzM1MHg4MFwiKVxuXHRkaXYuYWlnaXMtZGVidWcuaXRlbS4tbm8tZ3JvdyBJdGVtIDJcblx0ZGl2LmFpZ2lzLWRlYnVnLml0ZW0gSXRlbSAzXG5gYGBcblxuXG4jIERpc3RyaWJ1dGlvbiBvZiBpdGVtc1xuXG5Vc2UgYC1bdi9oXS1zcGFjZS1hcm91bmRgICYgYC1bdi9oXS1zcGFjZS1iZXR3ZWVuYCB0byBkaXN0cmlidXRlIHRoZSBpdGVtcyBpbiB0aGUgZmxleCBjb250YWluZXIuXG5cbmBgYGphZGVcbmRpdi5mbGV4LWxheW91dC4taC1zcGFjZS1hcm91bmRcblx0ZGl2LmFpZ2lzLWRlYnVnIEl0ZW0gMVxuXHRkaXYuYWlnaXMtZGVidWcgSXRlbSAyXG5cdGRpdi5haWdpcy1kZWJ1ZyBJdGVtIDNcbmBgYFxuYGBgamFkZVxuZGl2LmZsZXgtbGF5b3V0Li1oLXNwYWNlLWJldHdlZW5cblx0ZGl2LmFpZ2lzLWRlYnVnIEl0ZW0gMVxuXHRkaXYuYWlnaXMtZGVidWcgSXRlbSAyXG5cdGRpdi5haWdpcy1kZWJ1ZyBJdGVtIDNcbmBgYFxuYGBgamFkZVxuZGl2KHN0eWxlPVwiaGVpZ2h0OiAyMDBweFwiKS5mbGV4LWxheW91dC4tdi1zcGFjZS1hcm91bmQuLXdyYXBcblx0ZGl2LmFpZ2lzLWRlYnVnIEl0ZW0gbG9uZ2VyIDFcblx0ZGl2LmFpZ2lzLWRlYnVnIEl0ZW0gbG9uZ2VyIDJcblx0ZGl2LmFpZ2lzLWRlYnVnIEl0ZW0gbG9uZ2VyIDNcblx0ZGl2LmFpZ2lzLWRlYnVnIEl0ZW0gbG9uZ2VyIDRcblx0ZGl2LmFpZ2lzLWRlYnVnIEl0ZW0gbG9uZ2VyIDVcblx0ZGl2LmFpZ2lzLWRlYnVnIEl0ZW0gbG9uZ2VyIDZcblx0ZGl2LmFpZ2lzLWRlYnVnIEl0ZW0gbG9uZ2VyIDdcblx0ZGl2LmFpZ2lzLWRlYnVnIEl0ZW0gbG9uZ2VyIDhcblx0ZGl2LmFpZ2lzLWRlYnVnIEl0ZW0gbG9uZ2VyIDlcbmBgYFxuYGBgamFkZVxuZGl2KHN0eWxlPVwiaGVpZ2h0OiAyMDBweFwiKS5mbGV4LWxheW91dC4tdi1zcGFjZS1iZXR3ZWVuLi13cmFwXG5cdGRpdi5haWdpcy1kZWJ1ZyBJdGVtIGxvbmdlciAxXG5cdGRpdi5haWdpcy1kZWJ1ZyBJdGVtIGxvbmdlciAyXG5cdGRpdi5haWdpcy1kZWJ1ZyBJdGVtIGxvbmdlciAzXG5cdGRpdi5haWdpcy1kZWJ1ZyBJdGVtIGxvbmdlciA0XG5cdGRpdi5haWdpcy1kZWJ1ZyBJdGVtIGxvbmdlciA1XG5cdGRpdi5haWdpcy1kZWJ1ZyBJdGVtIGxvbmdlciA2XG5cdGRpdi5haWdpcy1kZWJ1ZyBJdGVtIGxvbmdlciA3XG5cdGRpdi5haWdpcy1kZWJ1ZyBJdGVtIGxvbmdlciA4XG5cdGRpdi5haWdpcy1kZWJ1ZyBJdGVtIGxvbmdlciA5XG5gYGBcblxuIyBBbGlnbm1lbnQgb2YgbXVsdGlsaW5lIGl0ZW1zIHdpdGggd3JhcFxuXG5JZiB5b3UgaGF2ZSBhbG90IG9uIGl0ZW1zIHRoYXQgd3JhcCB5b3UgY2FuIGFsaWduIHRoZSBtdWx0aWxpbmVzIHdpdGggdGhlIGZvbGxvd2luZyB2YXJpYW50czpcbmBgYGphZGVcbmRpdi5mbGV4LWxheW91dC4td3JhcC4taC1jZW50ZXJcblx0ZGl2LmFpZ2lzLWRlYnVnIEl0ZW0gbG9uZ2VyIDFcblx0ZGl2LmFpZ2lzLWRlYnVnIEl0ZW0gbG9uZ2VyIDJcblx0ZGl2LmFpZ2lzLWRlYnVnIEl0ZW0gbG9uZ2VyIDNcblx0ZGl2LmFpZ2lzLWRlYnVnIEl0ZW0gbG9uZ2VyIDRcblx0ZGl2LmFpZ2lzLWRlYnVnIEl0ZW0gbG9uZ2VyIDVcblx0ZGl2LmFpZ2lzLWRlYnVnIEl0ZW0gbG9uZ2VyIDZcblx0ZGl2LmFpZ2lzLWRlYnVnIEl0ZW0gbG9uZ2VyIDdcblx0ZGl2LmFpZ2lzLWRlYnVnIEl0ZW0gbG9uZ2VyIDhcblx0ZGl2LmFpZ2lzLWRlYnVnIEl0ZW0gbG9uZ2VyIDlcbmBgYFxuYGBgamFkZVxuZGl2LmZsZXgtbGF5b3V0Li13cmFwLi1sZWZ0XG5cdGRpdi5haWdpcy1kZWJ1ZyBJdGVtIGxvbmdlciAxXG5cdGRpdi5haWdpcy1kZWJ1ZyBJdGVtIGxvbmdlciAyXG5cdGRpdi5haWdpcy1kZWJ1ZyBJdGVtIGxvbmdlciAzXG5cdGRpdi5haWdpcy1kZWJ1ZyBJdGVtIGxvbmdlciA0XG5cdGRpdi5haWdpcy1kZWJ1ZyBJdGVtIGxvbmdlciA1XG5cdGRpdi5haWdpcy1kZWJ1ZyBJdGVtIGxvbmdlciA2XG5cdGRpdi5haWdpcy1kZWJ1ZyBJdGVtIGxvbmdlciA3XG5cdGRpdi5haWdpcy1kZWJ1ZyBJdGVtIGxvbmdlciA4XG5cdGRpdi5haWdpcy1kZWJ1ZyBJdGVtIGxvbmdlciA5XG5gYGBcbmBgYGphZGVcbmRpdi5mbGV4LWxheW91dC4td3JhcC4tcmlnaHRcblx0ZGl2LmFpZ2lzLWRlYnVnIEl0ZW0gbG9uZ2VyIDFcblx0ZGl2LmFpZ2lzLWRlYnVnIEl0ZW0gbG9uZ2VyIDJcblx0ZGl2LmFpZ2lzLWRlYnVnIEl0ZW0gbG9uZ2VyIDNcblx0ZGl2LmFpZ2lzLWRlYnVnIEl0ZW0gbG9uZ2VyIDRcblx0ZGl2LmFpZ2lzLWRlYnVnIEl0ZW0gbG9uZ2VyIDVcblx0ZGl2LmFpZ2lzLWRlYnVnIEl0ZW0gbG9uZ2VyIDZcblx0ZGl2LmFpZ2lzLWRlYnVnIEl0ZW0gbG9uZ2VyIDdcblx0ZGl2LmFpZ2lzLWRlYnVnIEl0ZW0gbG9uZ2VyIDhcblx0ZGl2LmFpZ2lzLWRlYnVnIEl0ZW0gbG9uZ2VyIDlcbmBgYFxuYGBgamFkZVxuZGl2KHN0eWxlPVwiaGVpZ2h0OiAyMDBweFwiKS5mbGV4LWxheW91dC4td3JhcC4tdi1jZW50ZXJcblx0ZGl2LmFpZ2lzLWRlYnVnIEl0ZW0gbG9uZ2VyIDFcblx0ZGl2LmFpZ2lzLWRlYnVnIEl0ZW0gbG9uZ2VyIDJcblx0ZGl2LmFpZ2lzLWRlYnVnIEl0ZW0gbG9uZ2VyIDNcblx0ZGl2LmFpZ2lzLWRlYnVnIEl0ZW0gbG9uZ2VyIDRcblx0ZGl2LmFpZ2lzLWRlYnVnIEl0ZW0gbG9uZ2VyIDVcblx0ZGl2LmFpZ2lzLWRlYnVnIEl0ZW0gbG9uZ2VyIDZcblx0ZGl2LmFpZ2lzLWRlYnVnIEl0ZW0gbG9uZ2VyIDdcblx0ZGl2LmFpZ2lzLWRlYnVnIEl0ZW0gbG9uZ2VyIDhcblx0ZGl2LmFpZ2lzLWRlYnVnIEl0ZW0gbG9uZ2VyIDlcbmBgYFxuYGBgamFkZVxuZGl2KHN0eWxlPVwiaGVpZ2h0OiAyMDBweFwiKS5mbGV4LWxheW91dC4td3JhcC4tdG9wXG5cdGRpdi5haWdpcy1kZWJ1ZyBJdGVtIGxvbmdlciAxXG5cdGRpdi5haWdpcy1kZWJ1ZyBJdGVtIGxvbmdlciAyXG5cdGRpdi5haWdpcy1kZWJ1ZyBJdGVtIGxvbmdlciAzXG5cdGRpdi5haWdpcy1kZWJ1ZyBJdGVtIGxvbmdlciA0XG5cdGRpdi5haWdpcy1kZWJ1ZyBJdGVtIGxvbmdlciA1XG5cdGRpdi5haWdpcy1kZWJ1ZyBJdGVtIGxvbmdlciA2XG5cdGRpdi5haWdpcy1kZWJ1ZyBJdGVtIGxvbmdlciA3XG5cdGRpdi5haWdpcy1kZWJ1ZyBJdGVtIGxvbmdlciA4XG5cdGRpdi5haWdpcy1kZWJ1ZyBJdGVtIGxvbmdlciA5XG5gYGBcbmBgYGphZGVcbmRpdihzdHlsZT1cImhlaWdodDogMjAwcHhcIikuZmxleC1sYXlvdXQuLXdyYXAuLWJvdHRvbVxuXHRkaXYuYWlnaXMtZGVidWcgSXRlbSBsb25nZXIgMVxuXHRkaXYuYWlnaXMtZGVidWcgSXRlbSBsb25nZXIgMlxuXHRkaXYuYWlnaXMtZGVidWcgSXRlbSBsb25nZXIgM1xuXHRkaXYuYWlnaXMtZGVidWcgSXRlbSBsb25nZXIgNFxuXHRkaXYuYWlnaXMtZGVidWcgSXRlbSBsb25nZXIgNVxuXHRkaXYuYWlnaXMtZGVidWcgSXRlbSBsb25nZXIgNlxuXHRkaXYuYWlnaXMtZGVidWcgSXRlbSBsb25nZXIgN1xuXHRkaXYuYWlnaXMtZGVidWcgSXRlbSBsb25nZXIgOFxuXHRkaXYuYWlnaXMtZGVidWcgSXRlbSBsb25nZXIgOVxuYGBgXG5cblxuXG5cbiovXG4uZmxleC1sYXlvdXQge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuLmZsZXgtbGF5b3V0Li1pbmxpbmUge1xuICBkaXNwbGF5OiBmbGV4LWlubGluZTtcbn1cbi5mbGV4LWxheW91dC4td3JhcCB7XG4gIGZsZXgtd3JhcDogd3JhcDtcbn1cbi5mbGV4LWxheW91dC4tcm93IHtcbiAgZmxleC13cmFwOiBub3dyYXA7XG59XG4uZmxleC1sYXlvdXQuLXJvdyA+IC5pdGVtIHtcbiAgZmxleDogMSAxIGF1dG87XG59XG4uZmxleC1sYXlvdXQuLWNvbHVtbiB7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG4uZmxleC1sYXlvdXQuLWNlbnRlciB7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBhbGlnbi1jb250ZW50OiBjZW50ZXI7XG59XG4uZmxleC1sYXlvdXQuLWJhc2VsaW5lIHtcbiAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xufVxuLmZsZXgtbGF5b3V0Li1sZWZ0IHtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xufVxuLmZsZXgtbGF5b3V0Li1yaWdodCB7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG59XG4uZmxleC1sYXlvdXQuLXRvcCB7XG4gIGFsaWduLWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG59XG4uZmxleC1sYXlvdXQuLWJvdHRvbSB7XG4gIGFsaWduLWNvbnRlbnQ6IGZsZXgtZW5kO1xufVxuLmZsZXgtbGF5b3V0Li12LWNlbnRlciB7XG4gIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcbn1cbi5mbGV4LWxheW91dC4tdi1zcGFjZS1iZXR3ZWVuIHtcbiAgYWxpZ24tY29udGVudDogc3BhY2UtYmV0d2Vlbjtcbn1cbi5mbGV4LWxheW91dC4tdi1zcGFjZS1hcm91bmQge1xuICBhbGlnbi1jb250ZW50OiBzcGFjZS1hcm91bmQ7XG59XG4uZmxleC1sYXlvdXQuLWgtY2VudGVyIHtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG4uZmxleC1sYXlvdXQuLWgtc3BhY2UtYmV0d2VlbiB7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcbn1cbi5mbGV4LWxheW91dC4taC1zcGFjZS1hcm91bmQge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcbn1cbi5mbGV4LWxheW91dC4taXRlbXMtdG9wIHtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG59XG4uZmxleC1sYXlvdXQuLWl0ZW1zLWJvdHRvbSB7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbn1cbi5mbGV4LWxheW91dC4taXRlbXMtY2VudGVyIHtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbi5mbGV4LWxheW91dC4taXRlbXMtc3RyZXRjaCB7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0cmV0Y2g7XG59XG4uZmxleC1sYXlvdXQgPiAuaXRlbS4tc3RyZXRjaCB7XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG59XG4uZmxleC1sYXlvdXQgPiAuaXRlbS4tdG9wIHtcbiAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbn1cbi5mbGV4LWxheW91dCA+IC5pdGVtLi1jZW50ZXIge1xuICBhbGlnbi1zZWxmOiBjZW50ZXI7XG59XG4uZmxleC1sYXlvdXQgPiAuaXRlbS4tYm90dG9tIHtcbiAgYWxpZ24tc2VsZjogZmxleC1lbmQ7XG59XG4uZmxleC1sYXlvdXQgPiAuaXRlbS4tY29udGVudCB7XG4gIGZsZXg6IG5vbmU7XG59XG4uZmxleC1sYXlvdXQgPiAuaXRlbS4tZ3JvdyB7XG4gIGZsZXgtZ3JvdzogMTtcbn1cbi5mbGV4LWxheW91dCA+IC5pdGVtLi1zaHJpbmsge1xuICBmbGV4LXNocmluazogMTtcbn1cbi5mbGV4LWxheW91dCA+IC5pdGVtLi1uby1ncm93IHtcbiAgZmxleC1ncm93OiAwO1xufVxuLmZsZXgtbGF5b3V0ID4gLml0ZW0uLW5vLXNocmluayB7XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuLypcbi0tLVxubmFtZTogLmdyaWQtbGF5b3V0XG5jYXRlZ29yeTogTGF5b3V0L0dyaWRcbnRhZzpcbiAtIGNvbXBvbmVudFxuIC0gbGF5b3V0XG4gLSBncmlkXG4gLSByZXNwb25zaXZlXG4gLSBmbGV4Ym94XG5jb21waWxlOiB0cnVlXG4tLS1cblxuQSBncmlkIGxheW91dCBzeXN0ZW0gYmFzZWQgb24gZmxleGJveC4gSXQgcHJvdmlkZXMgc2l6aW5nIHZhcmlhbnRzIHRvIHNpemUgb24gZGlmZmVyZW50IHBlcmNlbnRhZ2VzLlxuXG5cbiMjIFBlcmNlbnRhZ2UgYmFzZWQgc2l6aW5nXG5cblRoZSBlYXNpZXN0IHVzZSBjYXNlIGlzIHRvIHVzZSBzaW1wbGUgYC5pdGVtIC13MWAsIGAuaXRlbSAtdzEtMmAsIGAuaXRlbSAtdzEtM2AsIGAuaXRlbSAtdzEtNGAgZm9yIGEgcGVyY2VudGFnZSBiYXNlZCBzaWRlLWJ5LXNpZGUgcmVuZGVyaW5nLlxuXG5gYGBqYWRlXG5kaXYuZ3JpZC1sYXlvdXRcblx0ZGl2Lml0ZW0uLXcxXG5cdFx0ZGl2LmFpZ2lzLWRlYnVnIGl0ZW0gLXcxXG5cdGRpdi5pdGVtLi13MS0yIFxuXHRcdGRpdi5haWdpcy1kZWJ1ZyBpdGVtIC13MS0yXG5cdGRpdi5pdGVtLi13MS0yXG5cdFx0ZGl2LmFpZ2lzLWRlYnVnIGl0ZW0gLXcxLTJcblx0ZGl2Lml0ZW0uLXcxLTNcblx0XHRkaXYuYWlnaXMtZGVidWcgaXRlbSAtdzEtM1xuXHRkaXYuaXRlbS4tdzItM1xuXHRcdGRpdi5haWdpcy1kZWJ1ZyBpdGVtIC13Mi0zXG5cdGRpdi5pdGVtLi13MS00XG5cdFx0ZGl2LmFpZ2lzLWRlYnVnIGl0ZW0gLXcxLTRcblx0ZGl2Lml0ZW0uLXcxLTJcblx0XHRkaXYuYWlnaXMtZGVidWcgaXRlbSAtdzEtMlxuXHRkaXYuaXRlbS4tdzEtNFxuXHRcdGRpdi5haWdpcy1kZWJ1ZyBpdGVtIC13MS00XG5gYGBcblxuIyMgTGF5b3V0cyBvbiBkaWZmZXJlbnQgZGV2aWNlc1xuXG5UaGUgYnJlYWtwb2ludHMgZm9yIGRpZmZlcmVudCBzY3JlZW4gc2l6ZXMgYXJlIHNwZWNpZmllZCBpbiB0aGUgZ2xvYmFsIHNldHRpbmdzIGB0aGVtZS5zZXR0aW5ncy5icmVha3BvaW50c2AgYW5kIGNhbiBiZSBvdmVyd3JpdHRlbiBpbiBgdGhlbWUuY29tcG9uZW50cy5ncmlkLWxheW91dC5icmVha3BvaW50c2AuXG5UaGUgZGVmYXVsdCBzZXR0aW5ncyBkZWZpbmUgYnJlYWtwb2ludHMgd2l0aCBsYWJlbHM6IGAuLXNtYWxsLVgtWGAsIGAuLW1lZGl1bS1YLVhgLCBgLi1sYXJnZS1YLVhgLlxuXG5gYGBqYWRlXG5kaXYuZ3JpZC1sYXlvdXRcblx0ZGl2Lml0ZW0uLXcxLi1zbWFsbC0xLTMuLW1lZGl1bS0xLTIuLWxhcmdlLTEtNFxuXHRcdGRpdi5haWdpcy1kZWJ1ZyBpdGVtIC13MSAtc21hbGwtMS0zIC1tZWRpdW0tMS0yIC1sYXJnZS0xLTRcblx0ZGl2Lml0ZW0uLXcxLi1zbWFsbC0xLTMuLW1lZGl1bS0xLTIuLWxhcmdlLTEtNFxuXHRcdGRpdi5haWdpcy1kZWJ1ZyBpdGVtIC13MSAtc21hbGwtMS0zIC1tZWRpdW0tMS0yIC1sYXJnZS0xLTRcblx0ZGl2Lml0ZW0uLXcxLTIuLXNtYWxsLTEtMy4tbWVkaXVtLTEtMi4tbGFyZ2UtMS00XG5cdFx0ZGl2LmFpZ2lzLWRlYnVnIGl0ZW0gLXcxLTIgLXNtYWxsLTEtMyAtbWVkaXVtLTEtMiAtbGFyZ2UtMS00XG5cdGRpdi5pdGVtLi13MS0yLi1zbWFsbC0xLi1tZWRpdW0tMS0yLi1sYXJnZS0xLTRcblx0XHRkaXYuYWlnaXMtZGVidWcgaXRlbSAtdzEtMiAtc21hbGwtMSAtbWVkaXVtLTEtMiAtbGFyZ2UtMS00XG5gYGBcblxuXG4jIyBHdXR0ZXJcblxuSWYgeW91IG5lZWQgYSBzcGFjaW5nIGJldHdlZW4gdGhlIGNvbHVtbnMgYWRkIHRoZSBgLWd1dHRlcmAgdmFyaWFudC5cblRoZSBzaXplIG9mIHRoZSBndXR0ZXIgaXMgc3BlY2lmaWVkIGluIHRoZSBgZ3JpZC1ndXR0ZXJgdmFyaWFibGUuXG5cbmBgYGphZGVcbmRpdi5ncmlkLWxheW91dC4tZ3V0dGVyXG5cdGRpdi5pdGVtLi13MS00XG5cdFx0ZGl2LmFpZ2lzLWRlYnVnIGNvbCAtdzEtNFxuXHRkaXYuaXRlbS4tdzEtNFxuXHRcdGRpdi5haWdpcy1kZWJ1ZyBjb2wgLXcxLTRcblx0ZGl2Lml0ZW0uLXcxLTJcblx0XHRkaXYuYWlnaXMtZGVidWcgY29sIC13MS0yXG5gYGBcblxuXG4jIyBSZXZlcnNlIG9yZGVyXG5cblRvIHJldmVyc2UgdGhlIG9yZGVyIGluIHdoaWNoIHRoZSBjb2x1bW5zIGFyZSBkaXNwbGF5ZWQsIHlvdSBjYW4gYWRkIHRoZSBtb2RpZmllciBjbGFzcyBgLi1yZXZlcnNlYCB0byB5b3VyIHRhYmxlLWdyaWQuXG5UaGUgY29sdW1ucyB3aWxsIGJlIGluIERPTSBvcmRlciB3aGVuIHZpZXdwb3J0IHN3aXRjaGVzIHRvIHNtYWxsIGxheW91dC5cblxuYGBgamFkZVxuZGl2LmdyaWQtbGF5b3V0Li1yZXZlcnNlXG5cdGRpdi5pdGVtLi13MS00XG5cdFx0ZGl2LmFpZ2lzLWRlYnVnIEZpcnN0IGNvbHVtbiBpbiBET01cblx0ZGl2Lml0ZW0uLXcxLTRcblx0XHRkaXYuYWlnaXMtZGVidWcgU2Vjb25kIGNvbHVtbiBpbiBET01cblx0ZGl2Lml0ZW0uLXcxLTRcblx0XHRkaXYuYWlnaXMtZGVidWcgVGhpcmQgY29sdW1uIGluIERPTVxuXHRkaXYuaXRlbS4tdzEtNFxuXHRcdGRpdi5haWdpcy1kZWJ1ZyBGb3VydGggY29sdW1uIGluIERPTVxuYGBgXG5cbiMjIFZlcnRpY2FsIGNlbnRlcmluZ1xuXG5Zb3UgY2FuIHZlcnRpY2FsIGNlbnRlciB3aXRoIHRoZSBoZWxwIG9mIHRoZSBgZmxleC1sYXlvdXRgIGNvbXBvbmVudC5cblxuYGBgamFkZVxuZGl2LmdyaWQtbGF5b3V0LmZsZXgtbGF5b3V0XG5cdGRpdi5pdGVtLi13MS00XG5cdFx0ZGl2LmFpZ2lzLWRlYnVnIEEgY29sdW1uIHdpdGggYSBsb3Qgb2YgY29udGVudCB0aGF0IHNob3VsZCB3cmFwIG9uIGZpeGVkIHNpemUuXG5cdGRpdi5pdGVtLi1ib3R0b21cblx0XHRkaXYuYWlnaXMtZGVidWcgYm90dG9tXG5cdGRpdi5pdGVtLi1jZW50ZXJcblx0XHRkaXYuYWlnaXMtZGVidWcgY2VudGVyXG5cdGRpdi5pdGVtLi1zdHJldGNoXG5cdFx0ZGl2LmFpZ2lzLWRlYnVnKHN0eWxlPVwiaGVpZ2h0OjEwMCVcIikgc3RyZXRjaFxuYGBgXG5cbiovXG4uZ3JpZC1sYXlvdXQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG59XG4uZ3JpZC1sYXlvdXQuLWd1dHRlciB7XG4gIG1hcmdpbjogLTAuNjI1cmVtIC0wLjkzNzVyZW07XG59XG4uZ3JpZC1sYXlvdXQuLWd1dHRlciA+IC5pdGVtIHtcbiAgcGFkZGluZzogMC42MjVyZW0gMC45Mzc1cmVtO1xufVxuLmdyaWQtbGF5b3V0Li1yZXZlcnNlIHtcbiAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xufVxuLmdyaWQtbGF5b3V0ID4gLml0ZW0uLXcxIHtcbiAgZmxleDogMCAwIDEwMCU7XG4gIG1heC13aWR0aDogMTAwJTtcbn1cbi5ncmlkLWxheW91dCA+IC5pdGVtLi13MS0yIHtcbiAgZmxleDogMCAwIDUwJTtcbiAgbWF4LXdpZHRoOiA1MCU7XG59XG4uZ3JpZC1sYXlvdXQgPiAuaXRlbS4tdzEtMyB7XG4gIGZsZXg6IDAgMCAzMy4zMzMzMzMzMzMzMzMzMzYlO1xuICBtYXgtd2lkdGg6IDMzLjMzMzMzMzMzMzMzMzMzNiU7XG59XG4uZ3JpZC1sYXlvdXQgPiAuaXRlbS4tdzItMyB7XG4gIGZsZXg6IDAgMCA2Ni42NjY2NjY2NjY2NjY2NyU7XG4gIG1heC13aWR0aDogNjYuNjY2NjY2NjY2NjY2NjclO1xufVxuLmdyaWQtbGF5b3V0ID4gLml0ZW0uLXcxLTQge1xuICBmbGV4OiAwIDAgMjUlO1xuICBtYXgtd2lkdGg6IDI1JTtcbn1cbi5ncmlkLWxheW91dCA+IC5pdGVtLi13My00IHtcbiAgZmxleDogMCAwIDc1JTtcbiAgbWF4LXdpZHRoOiA3NSU7XG59XG4uZ3JpZC1sYXlvdXQgPiAuaXRlbS4tdzEtNyB7XG4gIGZsZXg6IDAgMCAxNC4yODU3MTQyODU3MTQyODYlO1xuICBtYXgtd2lkdGg6IDE0LjI4NTcxNDI4NTcxNDI4NiU7XG59XG5AbWVkaWEgYWxsIGFuZCAobWluLXdpZHRoOiAzMi41cmVtKSB7XG4gIC5ncmlkLWxheW91dCA+IC5pdGVtLi14c21hbGwtMSB7XG4gICAgZmxleDogMCAwIDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG4gIC5ncmlkLWxheW91dCA+IC5pdGVtLi14c21hbGwtMS0yIHtcbiAgICBmbGV4OiAwIDAgNTAlO1xuICAgIG1heC13aWR0aDogNTAlO1xuICB9XG4gIC5ncmlkLWxheW91dCA+IC5pdGVtLi14c21hbGwtMS0zIHtcbiAgICBmbGV4OiAwIDAgMzMuMzMzMzMzMzMzMzMzMzM2JTtcbiAgICBtYXgtd2lkdGg6IDMzLjMzMzMzMzMzMzMzMzMzNiU7XG4gIH1cbiAgLmdyaWQtbGF5b3V0ID4gLml0ZW0uLXhzbWFsbC0yLTMge1xuICAgIGZsZXg6IDAgMCA2Ni42NjY2NjY2NjY2NjY2NyU7XG4gICAgbWF4LXdpZHRoOiA2Ni42NjY2NjY2NjY2NjY2NyU7XG4gIH1cbiAgLmdyaWQtbGF5b3V0ID4gLml0ZW0uLXhzbWFsbC0xLTQge1xuICAgIGZsZXg6IDAgMCAyNSU7XG4gICAgbWF4LXdpZHRoOiAyNSU7XG4gIH1cbiAgLmdyaWQtbGF5b3V0ID4gLml0ZW0uLXhzbWFsbC0zLTQge1xuICAgIGZsZXg6IDAgMCA3NSU7XG4gICAgbWF4LXdpZHRoOiA3NSU7XG4gIH1cbiAgLmdyaWQtbGF5b3V0ID4gLml0ZW0uLXhzbWFsbC0xLTcge1xuICAgIGZsZXg6IDAgMCAxNC4yODU3MTQyODU3MTQyODYlO1xuICAgIG1heC13aWR0aDogMTQuMjg1NzE0Mjg1NzE0Mjg2JTtcbiAgfVxufVxuQG1lZGlhIGFsbCBhbmQgKG1pbi13aWR0aDogNDhyZW0pIHtcbiAgLmdyaWQtbGF5b3V0ID4gLml0ZW0uLXNtYWxsLTEge1xuICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgfVxuICAuZ3JpZC1sYXlvdXQgPiAuaXRlbS4tc21hbGwtMS0yIHtcbiAgICBmbGV4OiAwIDAgNTAlO1xuICAgIG1heC13aWR0aDogNTAlO1xuICB9XG4gIC5ncmlkLWxheW91dCA+IC5pdGVtLi1zbWFsbC0xLTMge1xuICAgIGZsZXg6IDAgMCAzMy4zMzMzMzMzMzMzMzMzMzYlO1xuICAgIG1heC13aWR0aDogMzMuMzMzMzMzMzMzMzMzMzM2JTtcbiAgfVxuICAuZ3JpZC1sYXlvdXQgPiAuaXRlbS4tc21hbGwtMi0zIHtcbiAgICBmbGV4OiAwIDAgNjYuNjY2NjY2NjY2NjY2NjclO1xuICAgIG1heC13aWR0aDogNjYuNjY2NjY2NjY2NjY2NjclO1xuICB9XG4gIC5ncmlkLWxheW91dCA+IC5pdGVtLi1zbWFsbC0xLTQge1xuICAgIGZsZXg6IDAgMCAyNSU7XG4gICAgbWF4LXdpZHRoOiAyNSU7XG4gIH1cbiAgLmdyaWQtbGF5b3V0ID4gLml0ZW0uLXNtYWxsLTMtNCB7XG4gICAgZmxleDogMCAwIDc1JTtcbiAgICBtYXgtd2lkdGg6IDc1JTtcbiAgfVxuICAuZ3JpZC1sYXlvdXQgPiAuaXRlbS4tc21hbGwtMS03IHtcbiAgICBmbGV4OiAwIDAgMTQuMjg1NzE0Mjg1NzE0Mjg2JTtcbiAgICBtYXgtd2lkdGg6IDE0LjI4NTcxNDI4NTcxNDI4NiU7XG4gIH1cbn1cbkBtZWRpYSBhbGwgYW5kIChtaW4td2lkdGg6IDYxLjI1cmVtKSB7XG4gIC5ncmlkLWxheW91dCA+IC5pdGVtLi1tZWRpdW0tMSB7XG4gICAgZmxleDogMCAwIDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG4gIC5ncmlkLWxheW91dCA+IC5pdGVtLi1tZWRpdW0tMS0yIHtcbiAgICBmbGV4OiAwIDAgNTAlO1xuICAgIG1heC13aWR0aDogNTAlO1xuICB9XG4gIC5ncmlkLWxheW91dCA+IC5pdGVtLi1tZWRpdW0tMS0zIHtcbiAgICBmbGV4OiAwIDAgMzMuMzMzMzMzMzMzMzMzMzM2JTtcbiAgICBtYXgtd2lkdGg6IDMzLjMzMzMzMzMzMzMzMzMzNiU7XG4gIH1cbiAgLmdyaWQtbGF5b3V0ID4gLml0ZW0uLW1lZGl1bS0yLTMge1xuICAgIGZsZXg6IDAgMCA2Ni42NjY2NjY2NjY2NjY2NyU7XG4gICAgbWF4LXdpZHRoOiA2Ni42NjY2NjY2NjY2NjY2NyU7XG4gIH1cbiAgLmdyaWQtbGF5b3V0ID4gLml0ZW0uLW1lZGl1bS0xLTQge1xuICAgIGZsZXg6IDAgMCAyNSU7XG4gICAgbWF4LXdpZHRoOiAyNSU7XG4gIH1cbiAgLmdyaWQtbGF5b3V0ID4gLml0ZW0uLW1lZGl1bS0zLTQge1xuICAgIGZsZXg6IDAgMCA3NSU7XG4gICAgbWF4LXdpZHRoOiA3NSU7XG4gIH1cbiAgLmdyaWQtbGF5b3V0ID4gLml0ZW0uLW1lZGl1bS0xLTcge1xuICAgIGZsZXg6IDAgMCAxNC4yODU3MTQyODU3MTQyODYlO1xuICAgIG1heC13aWR0aDogMTQuMjg1NzE0Mjg1NzE0Mjg2JTtcbiAgfVxufVxuQG1lZGlhIGFsbCBhbmQgKG1pbi13aWR0aDogNzVyZW0pIHtcbiAgLmdyaWQtbGF5b3V0ID4gLml0ZW0uLWxhcmdlLTEge1xuICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgfVxuICAuZ3JpZC1sYXlvdXQgPiAuaXRlbS4tbGFyZ2UtMS0yIHtcbiAgICBmbGV4OiAwIDAgNTAlO1xuICAgIG1heC13aWR0aDogNTAlO1xuICB9XG4gIC5ncmlkLWxheW91dCA+IC5pdGVtLi1sYXJnZS0xLTMge1xuICAgIGZsZXg6IDAgMCAzMy4zMzMzMzMzMzMzMzMzMzYlO1xuICAgIG1heC13aWR0aDogMzMuMzMzMzMzMzMzMzMzMzM2JTtcbiAgfVxuICAuZ3JpZC1sYXlvdXQgPiAuaXRlbS4tbGFyZ2UtMi0zIHtcbiAgICBmbGV4OiAwIDAgNjYuNjY2NjY2NjY2NjY2NjclO1xuICAgIG1heC13aWR0aDogNjYuNjY2NjY2NjY2NjY2NjclO1xuICB9XG4gIC5ncmlkLWxheW91dCA+IC5pdGVtLi1sYXJnZS0xLTQge1xuICAgIGZsZXg6IDAgMCAyNSU7XG4gICAgbWF4LXdpZHRoOiAyNSU7XG4gIH1cbiAgLmdyaWQtbGF5b3V0ID4gLml0ZW0uLWxhcmdlLTMtNCB7XG4gICAgZmxleDogMCAwIDc1JTtcbiAgICBtYXgtd2lkdGg6IDc1JTtcbiAgfVxuICAuZ3JpZC1sYXlvdXQgPiAuaXRlbS4tbGFyZ2UtMS03IHtcbiAgICBmbGV4OiAwIDAgMTQuMjg1NzE0Mjg1NzE0Mjg2JTtcbiAgICBtYXgtd2lkdGg6IDE0LjI4NTcxNDI4NTcxNDI4NiU7XG4gIH1cbn1cbi8qXG4tLS1cbm5hbWU6IC5tYXgtd2lkdGgtbGF5b3V0XG5jYXRlZ29yeTogTGF5b3V0L1BhZ2VcbnRhZzpcbiAtIGNvbXBvbmVudFxuIC0gbGF5b3V0XG4gLSByZXNwb25zaXZlXG5jb21waWxlOiB0cnVlXG4tLS1cblxuVGhpcyBjb21wb25lbnQgd2lsbCBsaW1pdCBpdHMgY29udGVudCB0byBhIG1heGltdW0gd2lkdGguIEZvcnRoZXJtb3JlIGl0IGNhbiBjZW50ZXIgaXRzIGNvbnRlbnQuXG5Vc2VmdWxsIGZvciBwYWdlIGNvbnRlbnQgdGhhdCBzaG91bGQgbm90IHNwYW4gdGhlIGZ1bGwgd2lkdGguXG5cblxuIyMgUGVyY2VudGFnZSBiYXNlZCBzaXppbmdcblxuKi9cbkBtZWRpYSBhbGwgYW5kIChtaW4td2lkdGg6IDQ4cmVtKSB7XG4gIC5tYXgtd2lkdGgtbGF5b3V0IHtcbiAgICBtYXgtd2lkdGg6IDQxLjc1cmVtO1xuICB9XG59XG5AbWVkaWEgYWxsIGFuZCAobWluLXdpZHRoOiA2MS4yNXJlbSkge1xuICAubWF4LXdpZHRoLWxheW91dCB7XG4gICAgbWF4LXdpZHRoOiA1NS43NXJlbTtcbiAgfVxufVxuQG1lZGlhIGFsbCBhbmQgKG1pbi13aWR0aDogNzVyZW0pIHtcbiAgLm1heC13aWR0aC1sYXlvdXQge1xuICAgIG1heC13aWR0aDogNjguNzVyZW07XG4gIH1cbn1cbi5tYXgtd2lkdGgtbGF5b3V0Li1jZW50ZXIge1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuLypcbi0tLVxubmFtZTogLnNsaWRlLW92ZXJsYXlcbmNhdGVnb3J5OiBPdmVybGF5L1NsaWRlXG50YWc6XG4gLSByb2xsb3ZlclxuIC0gc2xpZGVcbiAtIG92ZXJsYXlcbi0tLVxuXG5Sb2xsb3ZlciBjb21wb25lbnQgLSBjb250ZW50IHJvbGxvdmVyIHJvbGxzIGluIC0gZGVmYXVsdCBmcm9tIGJvdHRvbVxuXG5UcmlnZ2VyIHdpdGggbW91c2Vyb3ZlciBieSBhZGRpbmcgYC4taG92ZXJgIHZhcmlhbnRcblxuVHJpZ2dlciB3aXRoIGpzIGJ5IGFkZGluZyBgLi1zaG93YCB2YXJpYW50XG5cbmBgYGphZGVcbmRpdi5zbGlkZS1vdmVybGF5Li1ob3ZlclxuICAgIGRpdiBTb21lIG1haW4gY29udGVudFxuICAgIGRpdi5yb2xsb3ZlciBSb2xsb3ZlciBjb250ZW50XG5gYGBcblxuUm9sbG92ZXIgY29tcG9uZW50IHZhcmlhbnQgLWxlZnRcbmBgYGphZGVcbmRpdi5zbGlkZS1vdmVybGF5Li1sZWZ0Li1ob3ZlclxuICAgIGRpdiBTb21lIG1haW4gY29udGVudFxuICAgIGRpdi5yb2xsb3ZlciBSb2xsb3ZlciBjb250ZW50XG5gYGBcblxuUm9sbG92ZXIgY29tcG9uZW50IHZhcmlhbnQgLXJpZ2h0XG5gYGBqYWRlXG5kaXYuc2xpZGUtb3ZlcmxheS4tcmlnaHQuLWhvdmVyXG4gICAgZGl2IFNvbWUgbWFpbiBjb250ZW50XG4gICAgZGl2LnJvbGxvdmVyIFJvbGxvdmVyIGNvbnRlbnRcbmBgYFxuXG5Sb2xsb3ZlciBjb21wb25lbnQgdmFyaWFudCAtdG9wXG5gYGBqYWRlXG5kaXYuc2xpZGUtb3ZlcmxheS4tdG9wLi1ob3ZlclxuICAgIGRpdiBTb21lIG1haW4gY29udGVudFxuICAgIGRpdi5yb2xsb3ZlciBSb2xsb3ZlciBjb250ZW50XG5gYGBcblxuUm9sbG92ZXIgY29tcG9uZW50IHZhcmlhbnQgLXRvcCB3aXRoIGpzIHRyaWdnZXJcbmBgYGphZGVcbmRpdi5zbGlkZS1vdmVybGF5Li10b3AuLXNob3dcbiAgICBkaXYgU29tZSBtYWluIGNvbnRlbnRcbiAgICBkaXYucm9sbG92ZXIgUm9sbG92ZXIgY29udGVudFxuYGBgXG4qL1xuLnNsaWRlLW92ZXJsYXkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4uc2xpZGUtb3ZlcmxheSA+IC5yb2xsb3ZlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAxMDAlKTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNXMgZWFzZTtcbn1cbi5zbGlkZS1vdmVybGF5Li1sZWZ0ID4gLnJvbGxvdmVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTEwMCUsIDApO1xuICBsZWZ0OiAwO1xufVxuLnNsaWRlLW92ZXJsYXkuLXJpZ2h0ID4gLnJvbGxvdmVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTAwJSwgMCk7XG4gIHJpZ2h0OiAwO1xufVxuLnNsaWRlLW92ZXJsYXkuLXRvcCA+IC5yb2xsb3ZlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC0xMDAlKTtcbiAgdG9wOiAwO1xufVxuLnNsaWRlLW92ZXJsYXkuLXNob3cgPiAucm9sbG92ZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcbn1cbi5zbGlkZS1vdmVybGF5Li1ob3Zlcjpob3ZlciA+IC5yb2xsb3ZlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xufVxuLypcbi0tLVxubmFtZTogLmNvbnRyb2wtcmVzcG9uc2l2ZVxuY2F0ZWdvcnk6IFJlc3BvbnNpdmUvQ29udHJvbFxudGFnOlxuIC0gcmVzcG9uc2l2ZVxuIC0gZGlzcGxheVxuY29tcGlsZTogdHJ1ZVxuLS0tXG5cbkNvbnRyb2xzIHRoZSBkaXNwbGF5IG9mIGFuIGVsZW1lbnQgZGVwZW5kaW5nIG9uIHRoZSBjdXJyZW50IGJyZWFrcG9pbnRcblxuIyMgSGlkZVxuXG5gLi1oaWRlLW1lZGl1bWAgaGlkZXMgYW4gZWxlbWVudCBhcyBsb25nIGFzIHRoZSBzY3JlZW4gaXMgd2lkZXIgdGhhbiB0aGUgYnJlYWtwb2ludCBgbWVkaXVtYC5cblxuYGBgamFkZVxuZGl2LmNvbnRyb2wtcmVzcG9uc2l2ZS4taGlkZS1tZWRpdW0gT25seSBzaG93biB3aGVuIHRoZSBzY3JlZW4gaXMgd2lkZXIgdGhhbiB0aGUgYnJlYWtwb2ludCBtZWRpdW1cbmBgYFxuXG4jIyBTaG93XG5cbmAuLXNob3ctbWVkaXVtYCBzaG93IGFuIGVsZW1lbnQgYXMgbG9uZyBhcyB0aGUgc2NyZWVuIGlzIG5hcnJvd2VyIHRoYW4gdGhlIGJyZWFrcG9pbnQgYG1lZGl1bWAuXG5cbmBgYGphZGVcbmRpdi5jb250cm9sLXJlc3BvbnNpdmUuLXNob3ctbWVkaXVtIE9ubHkgc2hvd24gd2hlbiB0aGUgc2NyZWVuIGlzIG5hcnJvd2VyIHRoYW4gdGhlIGJyZWFrcG9pbnQgYG1lZGl1bWBcbmBgYFxuXG4qL1xuQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogMzIuNXJlbSkge1xuICAuY29udHJvbC1yZXNwb25zaXZlLi1oaWRlLXhzbWFsbCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuQG1lZGlhIGFsbCBhbmQgKG1pbi13aWR0aDogMzIuNXJlbSkge1xuICAuY29udHJvbC1yZXNwb25zaXZlLi1zaG93LXhzbWFsbCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogNDhyZW0pIHtcbiAgLmNvbnRyb2wtcmVzcG9uc2l2ZS4taGlkZS1zbWFsbCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuQG1lZGlhIGFsbCBhbmQgKG1pbi13aWR0aDogNDhyZW0pIHtcbiAgLmNvbnRyb2wtcmVzcG9uc2l2ZS4tc2hvdy1zbWFsbCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogNjEuMjVyZW0pIHtcbiAgLmNvbnRyb2wtcmVzcG9uc2l2ZS4taGlkZS1tZWRpdW0ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbkBtZWRpYSBhbGwgYW5kIChtaW4td2lkdGg6IDYxLjI1cmVtKSB7XG4gIC5jb250cm9sLXJlc3BvbnNpdmUuLXNob3ctbWVkaXVtIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA3NXJlbSkge1xuICAuY29udHJvbC1yZXNwb25zaXZlLi1oaWRlLWxhcmdlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5AbWVkaWEgYWxsIGFuZCAobWluLXdpZHRoOiA3NXJlbSkge1xuICAuY29udHJvbC1yZXNwb25zaXZlLi1zaG93LWxhcmdlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiAzMi41cmVtKSB7XG4gIC5oaWRlLXJlc3BvbnNpdmUuLXhzbWFsbCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogNDhyZW0pIHtcbiAgLmhpZGUtcmVzcG9uc2l2ZS4tc21hbGwge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbkBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDYxLjI1cmVtKSB7XG4gIC5oaWRlLXJlc3BvbnNpdmUuLW1lZGl1bSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogNzVyZW0pIHtcbiAgLmhpZGUtcmVzcG9uc2l2ZS4tbGFyZ2Uge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbi8qXG4tLS1cbm5hbWU6IC5pbWFnZS1yZXNwb25zaXZlXG5jYXRlZ29yeTogUmVzcG9uc2l2ZS9JbWFnZVxudGFnOlxuIC0gcmVzcG9uc2l2ZVxuY29tcGlsZTogdHJ1ZVxuLS0tXG5cblRoaXMgY2xhc3MgbWFrZXMgdGhlIGltYWdlIHNjYWxpbmcgdG8gaXRzIG1heCB3aWR0aC5cblxuYGBgamFkZVxuaW1nLmltYWdlLXJlc3BvbnNpdmUoc3JjPSdodHRwOi8vd3d3LmJ5dWkuZWR1L2ltYWdlcy9hZ3JpY3VsdHVyZS1saWZlLXNjaWVuY2VzL2Zsb3dlci5qcGcnKVxuYGBgXG5cbiMjIFZhcmlhbnRzXG5cbmAuLWZ1bGxgIGZvcmNlcyB0aGUgcGljdHVyZSB0byBzcGFuIHRvIDEwMCUgb2YgdGhlIHBhcmVudFxuXG5gYGBqYWRlXG5pbWcuaW1hZ2UtcmVzcG9uc2l2ZS4tZnVsbChzcmM9J2h0dHA6Ly93d3cuYnl1aS5lZHUvaW1hZ2VzL2FncmljdWx0dXJlLWxpZmUtc2NpZW5jZXMvZmxvd2VyLmpwZycpXG5gYGBcbiovXG4uaW1hZ2UtcmVzcG9uc2l2ZSB7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi5pbWFnZS1yZXNwb25zaXZlLi1mdWxsIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4uaW1hZ2UtcmVzcG9uc2l2ZS4taW5zZXQge1xuICBtYXgtaGVpZ2h0OiAxMDAlO1xufVxuLypcbi0tLVxubmFtZTogLm1lZGlhLXJlc3BvbnNpdmVcbmNhdGVnb3J5OiBSZXNwb25zaXZlL01lZGlhXG50YWc6XG4gLSByZXNwb25zaXZlXG5jb21waWxlOiB0cnVlXG4tLS1cblxuYC5tZWRpYS1yZXNwb25zaXZlYCAtIFRoaXMgbWFrZXMgYSB0aGUgYC5tZWRpYS1yZXNwb25zaXZlYCBkaXYgYSBjb250YWluZXIgZm9yIGFueSBtZWRpYSBlbGVtZW50IChpZnJhbWUsIHZpZGVvLCAuLi4gKSB0aGF0IHJlc3BvbnNpdmUgc2NhbGVzIHdpdGggYSBmaXggcmF0aW8uXG5UaGUgbWVkaWEgZWxlbWVudCAoIGNoaWxkICkgbmVlZHMgdGhlIGNsYXNzIGAubWVkaWFgIHRvIGZ1bGx5IGZpbGwgb3V0IHRoZSBwYXJlbnRzIHNpemUuXG5cblRoZSBgLm1lZGlhLXJlc3BvbnNpdmVgIGNvbXBvbmVudCBoYXMgdG8gcHJlZGVmaW5lZCBtb2RpZmllcnM6IGAuLW1lZGlhLTQtM2AsIGAuLW1lZGlhLTE2LTlgIHRoYXQgZGVmaW5lIGEgZml4IHJhdGlvLlxuXG5gYGBqYWRlXG5kaXYubWVkaWEtcmVzcG9uc2l2ZS4tbWVkaWEtMTYtOVxuXHRpZnJhbWUubWVkaWEoc3JjPVwiaHR0cHM6Ly93d3cueW91dHViZS5jb20vZW1iZWQvVENkNlBmeE95MFlcIilcbmBgYFxuXG5gYGBqYWRlXG5kaXYubWVkaWEtcmVzcG9uc2l2ZS4tbWVkaWEtNC0zXG5cdGlmcmFtZS5tZWRpYShzcmM9XCJodHRwczovL3d3dy55b3V0dWJlLmNvbS9lbWJlZC9UQ2Q2UGZ4T3kwWVwiKVxuYGBgXG5cbiovXG4ubWVkaWEtcmVzcG9uc2l2ZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmctYm90dG9tOiA1MCU7XG59XG4ubWVkaWEtcmVzcG9uc2l2ZS4tbWVkaWEtMS0xIHtcbiAgcGFkZGluZy1ib3R0b206IDUwJTtcbn1cbi5tZWRpYS1yZXNwb25zaXZlLi1tZWRpYS00LTMge1xuICBwYWRkaW5nLWJvdHRvbTogNzUlO1xufVxuLm1lZGlhLXJlc3BvbnNpdmUuLW1lZGlhLTE2LTkge1xuICBwYWRkaW5nLWJvdHRvbTogNTYuMjUlO1xufVxuLm1lZGlhLXJlc3BvbnNpdmUgPiAubWVkaWEge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbn1cbi8qXG4tLS1cbm5hbWU6IC5vdmVyZmxvdy10ZXh0XG5jYXRlZ29yeTogVGV4dFxudGFnOlxuIC0gY29tcG9uZW50XG4gLSB0ZXh0XG5jb21waWxlOiB0cnVlXG4tLS1cblxuVGhpcyBjb21wb25lbnQgY3V0cyB0aGUgdGV4dCBvbiBhIGdpdmVuIGhlaWdodCBhbmQgYWRkcyBhIGZhZGVvdXQgZWZmZWN0LlxuVGhpcyBpcyB1c2VmdWxsIGZvciB0ZXh0IGNvbnRhaW5lcnMgdGhhdCBoYXZlIG1vcmUgY29udGVudCB0aGFuIHNwYWNlLlxuXG5cbmBgYGphZGVcbmRpdi5vdmVyZmxvdy10ZXh0KHN0eWxlPVwid2lkdGg6IDIwMHB4O2hlaWdodDogNzBweFwiKSBUaGlzIGlzIGEgdmVyeSBsb25nIHRleHQgdGhhdCBpcyByd2FwZWQgYW5kIGN1dCBhdCB0aGUgZW5kLlxuYGBgXG4qL1xuLm92ZXJmbG93LXRleHQge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4ub3ZlcmZsb3ctdGV4dDphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAwO1xuICByaWdodDogMDtcbiAgbGVmdDogMDtcbiAgaGVpZ2h0OiAyLjE4NzVyZW07XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHJnYmEoMjU1LDI1NSwyNTUsMCksICNmZmYgNzAlKTtcbn1cbi8qXG4tLS1cbm5hbWU6IC50ZXh0LXN0eWxlXG5jYXRlZ29yeTogVGV4dFxudGFnOlxuIC0gY29tcG9uZW50XG4gLSB0ZXh0XG5jb21waWxlOiB0cnVlXG4tLS1cblxuQSB0ZXh0IHN0eWxpbmcgY29tcG9uZW50IGZvciBkaWZmZXJlbnQgdGV4dCBzdHlsZXNcblxuIyMgRGVmYXVsdCBoZWFkaW5nXG5cbmBgYGphZGVcbmRpdi50ZXh0LXN0eWxlIERlZmF1bHQgaGVhZGluZ1xuYGBgXG5cbiMjIEgxXG5gYGBqYWRlXG5kaXYudGV4dC1zdHlsZS4taDEgVGhlIGgxIGhlYWRlclxuXG5gYGBcblxuIyMgSDJcbmBgYGphZGVcbmRpdi50ZXh0LXN0eWxlLi1oMiBUaGUgaDIgaGVhZGVyXG5gYGBcblxuIyMgSDNcbmBgYGphZGVcbmRpdi50ZXh0LXN0eWxlLi1oMyBUaGUgaDMgaGVhZGVyXG5gYGBcblxuIyMgQm9sZFxuYGBgamFkZVxuZGl2LnRleHQtc3R5bGUuLWJvbGQgQm9sZCB0ZXh0XG5gYGBcblxuIyMgQWxpZ24gY2VudGVyXG5gYGBqYWRlXG5kaXYudGV4dC1zdHlsZS4tY2VudGVyIENlbnRlcmVkIHRleHRcbmBgYFxuXG4jIyBBbGlnbiByaWdodFxuYGBgamFkZVxuZGl2LnRleHQtc3R5bGUuLXJpZ2h0IFJpZ2h0IGFsaWduZWQgdGV4dFxuYGBgXG5cbiovXG4udGV4dC1zdHlsZS4taDEge1xuICBmb250LWZhbWlseTogJ1JvYm90bycgLCBzZXJpZjtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBsaW5lLWhlaWdodDogMS44NzVyZW07XG59XG4udGV4dC1zdHlsZS4taDIge1xuICBmb250LWZhbWlseTogJ1JvYm90bycgLCBzZXJpZjtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBsaW5lLWhlaWdodDogMS42MjVyZW07XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxldHRlci1zcGFjaW5nOiAwLjVweDtcbn1cbi50ZXh0LXN0eWxlLi1oMyB7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvJyAsIHNlcmlmO1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBsaW5lLWhlaWdodDogMS4yNXJlbTtcbn1cbi50ZXh0LXN0eWxlLi1jZW50ZXIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4udGV4dC1zdHlsZS4tcmlnaHQge1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cbi50ZXh0LXN0eWxlLi1ib2xkIHtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cbi50ZXh0LXN0eWxlLi1tZWRpdW0ge1xuICBmb250LXdlaWdodDogNTAwO1xufVxuLnRleHQtc3R5bGUuLWludmVydGVkIHtcbiAgY29sb3I6ICNmZmY7XG59XG4udGV4dC1zdHlsZS4taW5kZW50LTEge1xuICBwYWRkaW5nLWxlZnQ6IDEuODc1cmVtO1xufVxuLnRleHQtc3R5bGUuLWluZGVudC0yIHtcbiAgcGFkZGluZy1sZWZ0OiAzLjc1cmVtO1xufVxuLnRleHQtc3R5bGUuLWluZGVudC0zIHtcbiAgcGFkZGluZy1sZWZ0OiA1LjYyNXJlbTtcbn1cbi50ZXh0LXN0eWxlLi1pbmRlbnQtNCB7XG4gIHBhZGRpbmctbGVmdDogNy41cmVtO1xufVxuLnRleHQtc3R5bGUuLWluZGVudC01IHtcbiAgcGFkZGluZy1sZWZ0OiA5LjM3NXJlbTtcbn1cbi50ZXh0LXN0eWxlLi1pbmRlbnQtNiB7XG4gIHBhZGRpbmctbGVmdDogMTEuMjVyZW07XG59XG4uY29sbGFwc2UtdWkgPiAuY29udGVudC4tdHJhbnNpdGlvbiB7XG4gIHRyYW5zaXRpb246IGhlaWdodCAgZWFzZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgaGVpZ2h0OiAwO1xufVxuLmNvbGxhcHNlLXVpLi1jbG9zZSA+IC5jb250ZW50IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5jb2xsYXBzZS11aS4tY2xvc2UgLmNvbGxhcHNlLWljb24ge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG59XG4uY29sbGFwc2UtdWkgLmNvbGxhcHNlLWljb24ge1xuICB0cmFuc2l0aW9uOiBhbGwgIGVhc2U7XG59XG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwiR2xvYmVyLVJlZ3VsYXJcIjtcbiAgc3JjOiB1cmwoXCIuLi9Gb250cy9HbG9iZXItUmVndWxhci5lb3RcIikgZm9ybWF0KFwiZW90XCIpLCB1cmwoXCIuLi9Gb250cy9HbG9iZXItUmVndWxhci53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksIHVybChcIi4uL0ZvbnRzL0dsb2Jlci1SZWd1bGFyLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLCB1cmwoXCIuLi9Gb250cy9HbG9iZXItUmVndWxhci50dGZcIikgZm9ybWF0KFwidHRmXCIpO1xufVxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiBcIkdsb2Jlci1TZW1pLUJvbGRcIjtcbiAgc3JjOiB1cmwoXCIuLi9Gb250cy9HbG9iZXItU2VtaS1Cb2xkLmVvdFwiKSBmb3JtYXQoXCJlb3RcIiksIHVybChcIi4uL0ZvbnRzL0dsb2Jlci1TZW1pLUJvbGQud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLCB1cmwoXCIuLi9Gb250cy9HbG9iZXItU2VtaS1Cb2xkLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLCB1cmwoXCIuLi9Gb250cy9HbG9iZXItU2VtaS1Cb2xkLnR0ZlwiKSBmb3JtYXQoXCJ0dGZcIik7XG59XG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwiR2xvYmVyLUJvbGRcIjtcbiAgc3JjOiB1cmwoXCIuLi9Gb250cy9HbG9iZXItQm9sZC5lb3RcIikgZm9ybWF0KFwiZW90XCIpLCB1cmwoXCIuLi9Gb250cy9HbG9iZXItQm9sZC53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksIHVybChcIi4uL0ZvbnRzL0dsb2Jlci1Cb2xkLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLCB1cmwoXCIuLi9Gb250cy9HbG9iZXItQm9sZC50dGZcIikgZm9ybWF0KFwidHRmXCIpO1xufVxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiBcIkdsb2Jlci1FeHRyYS1Cb2xkXCI7XG4gIHNyYzogdXJsKFwiLi4vRm9udHMvR2xvYmVyLUV4dHJhLUJvbGQuZW90XCIpIGZvcm1hdChcImVvdFwiKSwgdXJsKFwiLi4vRm9udHMvR2xvYmVyLUV4dHJhLUJvbGQud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLCB1cmwoXCIuLi9Gb250cy9HbG9iZXItRXh0cmEtQm9sZC53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSwgdXJsKFwiLi4vRm9udHMvR2xvYmVyLUV4dHJhLUJvbGQudHRmXCIpIGZvcm1hdChcInR0ZlwiKTtcbn1cbmJvZHkge1xuICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5O1xufVxuaDEuLWVycm9yLFxuaDIuLWVycm9yLFxuaDMuLWVycm9yLFxuaDQuLWVycm9yLFxucC4tZXJyb3Ige1xuICBjb2xvcjogI2U5NGQ1MTtcbn1cbmgxLm1hZ2F6aW5lLXRpdGxlIHtcbiAgZm9udC1mYW1pbHk6ICdHbG9iZXItRXh0cmEtQm9sZCc7XG4gIGNvbG9yOiAjZmZmO1xuICBmb250LXNpemU6IDVyZW07XG4gIGxpbmUtaGVpZ2h0OiA1LjYyNXJlbTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMTI1cmVtO1xuICB0ZXh0LXNoYWRvdzogMCAxcHggNXB4IHJnYmEoMCwwLDAsMCkgMDtcbiAgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTtcbn1cbmgxIHtcbiAgZm9udC1mYW1pbHk6ICdHbG9iZXItRXh0cmEtQm9sZCc7XG4gIGNvbG9yOiAjMjYyNjJiO1xuICBmb250LXNpemU6IDMuMTI1cmVtO1xuICBsaW5lLWhlaWdodDogMy44NzVyZW07XG4gIGxldHRlci1zcGFjaW5nOiAwLjA2MjVyZW07XG4gIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7XG59XG5oMiB7XG4gIGZvbnQtZmFtaWx5OiAnR2xvYmVyLUV4dHJhLUJvbGQnO1xuICBjb2xvcjogIzI2MjYyYjtcbiAgZm9udC1zaXplOiAxLjg3NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDNyZW07XG4gIHBhZGRpbmctYm90dG9tOiAwLjYyNXJlbTtcbn1cbmgzIHtcbiAgZm9udC1mYW1pbHk6ICdHbG9iZXItRXh0cmEtQm9sZCc7XG4gIGNvbG9yOiAjMjYyNjJiO1xuICBmb250LXNpemU6IDEuMzc1cmVtO1xuICBsaW5lLWhlaWdodDogMnJlbTtcbiAgcGFkZGluZy1ib3R0b206IDAuNjI1cmVtO1xuICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5O1xufVxuaDQge1xuICBmb250LWZhbWlseTogJ0dsb2Jlci1FeHRyYS1Cb2xkJztcbiAgY29sb3I6ICMyNjI2MmI7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuODc1cmVtO1xufVxuLnBhcmFncmFwaC1lbGVtZW50IGEge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6ICMwMDlhNWI7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuODc1cmVtO1xuICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5O1xufVxuLnBhcmFncmFwaC1lbGVtZW50IGE6aG92ZXIge1xuICBjb2xvcjogIzZiNmI2Yjtcbn1cbmEge1xuICBjb2xvcjogIzAwOWE1Yjtcbn1cbmE6aG92ZXIge1xuICBjb2xvcjogIzZiNmI2Yjtcbn1cbi5wLW5vcm1hbCxcbm9sLFxudWwsXG4udGV4dC1zdHlsZSB7XG4gIGZvbnQtZmFtaWx5OiAnR2xvYmVyLVJlZ3VsYXInO1xuICBjb2xvcjogIzI2MjYyYjtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBsaW5lLWhlaWdodDogMS44NzVyZW07XG4gIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7XG59XG51bCxcbm9sIHtcbiAgbWFyZ2luLWxlZnQ6IDEuN3JlbTtcbn1cbnAuLWJvbGQsXG4ucC1ib2xkIHtcbiAgZm9udC1mYW1pbHk6ICdHbG9iZXItRXh0cmEtQm9sZCc7XG4gIGNvbG9yOiAjMjYyNjJiO1xuICBmb250LXNpemU6IDFyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjQzNzVyZW07XG59XG5wLi1iaWcsXG4ucC1iaWcge1xuICBmb250LWZhbWlseTogJ0dsb2Jlci1SZWd1bGFyJztcbiAgY29sb3I6ICMyNjI2MmI7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBsaW5lLWhlaWdodDogMnJlbTtcbn1cbnAuLXNtYWxsLFxuLnAtc21hbGwge1xuICBmb250LWZhbWlseTogJ0dsb2Jlci1SZWd1bGFyJztcbiAgY29sb3I6ICMyNjI2MmI7XG4gIGZvbnQtc2l6ZTogMC45Mzc1cmVtO1xuICBsaW5lLWhlaWdodDogMS4zMTI1cmVtO1xuICBwYWRkaW5nLWJvdHRvbTogMy43NXJlbTtcbn1cbi5mb290ZXItdGV4dCB7XG4gIGZvbnQtZmFtaWx5OiAnR2xvYmVyLVNlbWktQm9sZCc7XG4gIGNvbG9yOiAjMjYyNjJiO1xuICBmb250LXNpemU6IDAuODEyNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMjVyZW07XG4gIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7XG59XG4uZm9vdGVyLWhlYWRpbmcge1xuICBjb2xvcjogI2ZmZjtcbiAgZm9udC1mYW1pbHk6ICdHbG9iZXItRXh0cmEtQm9sZCc7XG4gIGZvbnQtc2l6ZTogMC45Mzc1cmVtO1xuICBsaW5lLWhlaWdodDogMS41cmVtO1xuICBwYWRkaW5nLWJvdHRvbTogMC45Mzc1cmVtO1xuICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5O1xufVxuaW5wdXQsXG50ZXh0YXJlYSB7XG4gIGZvbnQtZmFtaWx5OiAnR2xvYmVyLVNlbWktQm9sZCc7XG4gIGNvbG9yOiAjNmI2YjZiO1xuICBmb250LXNpemU6IDFyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjYyNXJlbTtcbiAgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTtcbn1cbmlucHV0OmFjdGl2ZSxcbnRleHRhcmVhOmFjdGl2ZSB7XG4gIGNvbG9yOiAjMDA5YTViO1xufVxuaW5wdXQuLWRpc2FibGVkLFxudGV4dGFyZWEuLWRpc2FibGVkIHtcbiAgY29sb3I6ICM5YzliOWI7XG59XG4udGFnLXRleHQge1xuICBmb250LWZhbWlseTogJ0dsb2Jlci1Cb2xkJztcbiAgY29sb3I6ICM2YjZiNmI7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNjI1cmVtO1xuICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5O1xufVxuLmxhYmVsLXRleHQge1xuICBmb250LWZhbWlseTogJ0dsb2Jlci1FeHRyYS1Cb2xkJztcbiAgY29sb3I6ICMyNjI2MmI7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNXJlbTtcbiAgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTtcbn1cbi5sYWJlbC10ZXh0Li1saWJyYXJ5IHtcbiAgZm9udC1mYW1pbHk6ICdHbG9iZXItUmVndWxhcic7XG59XG4uZmlsdGVyLXRleHQge1xuICBmb250LWZhbWlseTogJ0dsb2Jlci1Cb2xkJztcbiAgY29sb3I6ICM2YjZiNmI7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNXJlbTtcbiAgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTtcbn1cbi5uYXZpZ2F0aW9uLXRleHQge1xuICBmb250LWZhbWlseTogJ0dsb2Jlci1Cb2xkJztcbiAgY29sb3I6ICMyNjI2MmI7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNXJlbTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMTI1cmVtO1xuICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5O1xufVxuLmNhcHRpb24tdGV4dCB7XG4gIGZvbnQtZmFtaWx5OiAnR2xvYmVyLUV4dHJhLUJvbGQnO1xuICBjb2xvcjogIzI2MjYyYjtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMzEyNXJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5O1xufVxuLmxpbmstYnV0dG9uLFxuLmxpbmstYnV0dG9uIGEge1xuICBmb250LWZhbWlseTogJ0dsb2Jlci1Cb2xkJztcbiAgY29sb3I6ICM2YjZiNmI7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDM3NXJlbTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMTI1cmVtO1xuICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5O1xufVxuLmJ1dHRvbi10ZXh0IHtcbiAgZm9udC1mYW1pbHk6ICdHbG9iZXItRXh0cmEtQm9sZCc7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDM3NXJlbTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMTI1cmVtO1xuICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5O1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0OHJlbSkge1xuICBoMS5tYWdhemluZS10aXRsZSB7XG4gICAgZm9udC1zaXplOiAyLjVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDNyZW07XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDYyNXJlbTtcbiAgfVxuICBoMSB7XG4gICAgZm9udC1zaXplOiAyLjI1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAyLjg3NXJlbTtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wNDM3NXJlbTtcbiAgfVxuICBoMiB7XG4gICAgZm9udC1zaXplOiAxLjYyNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMi4yNXJlbTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICB9XG4gIGgzIHtcbiAgICBmb250LXNpemU6IDEuMjVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuNzVyZW07XG4gICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgfVxuICBoNCB7XG4gICAgZm9udC1zaXplOiAxLjEyNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS42MjVyZW07XG4gIH1cbiAgLnAtbm9ybWFsLFxuICBvbCxcbiAgdWwsXG4gIC50ZXh0LXN0eWxlIHtcbiAgICBmb250LXNpemU6IDEuMTI1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjYyNXJlbTtcbiAgfVxuICB1bCxcbiAgb2wge1xuICAgIG1hcmdpbi1sZWZ0OiAxLjdyZW07XG4gIH1cbiAgcC4tYmlnLFxuICAucC1iaWcge1xuICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS44NzVyZW07XG4gIH1cbiAgLnBhcmFncmFwaC1lbGVtZW50IGEge1xuICAgIGZvbnQtc2l6ZTogMC45Mzc1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjMxMjVyZW07XG4gIH1cbn1cbi5jYXJ0LWNvbXBvbmVudCAuYnV0dG9uIC5zdmctaWNvbiB7XG4gIHdpZHRoOiAyMHB4O1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0OHJlbSkge1xuICAuY2FydC1jb21wb25lbnQge1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIH1cbn1cbi5kcm9wZG93bi1maWx0ZXIge1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogbm9uZTtcbiAgbWFyZ2luOiAwLjYyNXJlbSBhdXRvO1xufVxuLmRyb3Bkb3duLWZpbHRlciA+LmRlc2NyaXB0aW9uIHtcbiAgbWFyZ2luLWJvdHRvbTogMC42MjVyZW07XG59XG4uZHJvcGRvd24tZmlsdGVyID4uZGVzY3JpcHRpb24gYSB7XG4gIGNvbG9yOiAjMDA5YTViO1xufVxuLmRyb3Bkb3duLWZpbHRlciA+LmRlc2NyaXB0aW9uIGE6aG92ZXIge1xuICBjb2xvcjogIzI2MjYyYjtcbn1cbi5kcm9wZG93bi1maWx0ZXIgPi5kcm9wLWRvd24gPi50b2dnbGUge1xuICBib3JkZXI6IDFweCBzb2xpZCAjNmI2YjZiO1xuICBwYWRkaW5nOiAwLjMxMjVyZW07XG59XG4uZHJvcGRvd24tZmlsdGVyID4uZHJvcC1kb3duLi1vcGVuID4udG9nZ2xlIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbn1cbi5kcm9wZG93bi1maWx0ZXIgPi5kcm9wLWRvd24gPi5kcm9wLWRvd24tbWVudSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJvcmRlcjogMXB4IHNvbGlkICM2YjZiNmI7XG4gIGJvcmRlci10b3A6IG5vbmU7XG4gIHdpZHRoOiAxMDAlO1xufVxuLmRyb3Bkb3duLWZpbHRlciAudmFsdWUge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nOiAwLjMxMjVyZW07XG59XG4uZHJvcGRvd24tZmlsdGVyIC52YWx1ZTpob3ZlciB7XG4gIGNvbG9yOiAjMDA5YTViO1xufVxuLmRyb3Bkb3duLWZpbHRlciAuc3ZnLWljb24ge1xuICBjb2xvcjogIzAwOWE1Yjtcbn1cbi5kcm9wZG93bi1maWx0ZXIgLnN2Zy1pY29uLi10b2dnbGUge1xuICBjb2xvcjogIzZiNmI2YjtcbiAgd2lkdGg6IDAuNjI1cmVtO1xuICBoZWlnaHQ6IDAuMzc1cmVtO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0OHJlbSkge1xuICAuZHJvcGRvd24tZmlsdGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuICAuZHJvcGRvd24tZmlsdGVyID4uZHJvcC1kb3duIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgfVxuICAuZHJvcGRvd24tZmlsdGVyID4uZHJvcC1kb3duID4udG9nZ2xlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuLmVsZW1lbnQtbGF5b3V0IHtcbiAgbWF4LXdpZHRoOiA2Mi41cmVtO1xuICB3aWR0aDogMTAwJTsgLyogSUUxMSBmaXggKi9cbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgcGFkZGluZzogMCAxcmVtO1xufVxuLmVsZW1lbnQtbGF5b3V0Li1zbWFsbCB7XG4gIG1heC13aWR0aDogNTByZW07XG59XG4uZWxlbWVudC1sYXlvdXQuLWZ1bGwge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xufVxuLmZlZWRiYWNrLWZvcm0gLmF1dG9jb21wbGV0ZSA+LnZhbHVlIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwYWRkaW5nLXRvcDogNXB4O1xuICBib3JkZXItdG9wOiAxcHggc29saWQgIzljOWI5Yjtcbn1cbi5mb290ZXItY29tcG9uZW50IHtcbiAgY29sb3I6ICNmZmY7XG4gIHBhZGRpbmc6IDEuODc1cmVtIDguNzVyZW07XG4gIGJhY2tncm91bmQtY29sb3I6ICMyNjI2MmI7XG59XG4uZm9vdGVyLWNvbXBvbmVudCAubWFpbHRvLFxuLmZvb3Rlci1jb21wb25lbnQgLmltcHJlc3N1bSxcbi5mb290ZXItY29tcG9uZW50IC5waG9uZSB7XG4gIGNvbG9yOiAjZmZmO1xufVxuLmZvb3Rlci1jb21wb25lbnQgLm1haWx0bzpob3Zlcixcbi5mb290ZXItY29tcG9uZW50IC5pbXByZXNzdW06aG92ZXIsXG4uZm9vdGVyLWNvbXBvbmVudCAucGhvbmU6aG92ZXIge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDhyZW0pIHtcbiAgLmZvb3Rlci1jb21wb25lbnQge1xuICAgIHBhZGRpbmc6IDEuODc1cmVtIDQuMzc1cmVtO1xuICB9XG4gIC5mb290ZXItY29tcG9uZW50IC4tbG9jYXRpb24sXG4gIC5mb290ZXItY29tcG9uZW50IC4tcGhvbmUsXG4gIC5mb290ZXItY29tcG9uZW50IC4tbWFpbCxcbiAgLmZvb3Rlci1jb21wb25lbnQgLmltcHJlc3N1bSxcbiAgLmZvb3Rlci1jb21wb25lbnQgLmZvb3Rlci1oZWFkaW5nIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbiAgLmZvb3Rlci1jb21wb25lbnQgLmxvZ28ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIH1cbiAgLmZvb3Rlci1jb21wb25lbnQgLi1zcGFjZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgLmZvb3Rlci1jb21wb25lbnQgLi1waG9uZSxcbiAgLmZvb3Rlci1jb21wb25lbnQgLi1tYWlsLFxuICAuZm9vdGVyLWNvbXBvbmVudCAuLWltcHJlc3N1bSB7XG4gICAgcGFkZGluZy1ib3R0b206IDEuMjVyZW07XG4gIH1cbn1cbi5mb3JtLWNvbXBvbmVudCAuaW5wdXQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjhmOGY4O1xuICBjb2xvcjogIzAwMDtcbiAgYm9yZGVyOiAycHggc29saWQgI2E5YTlhOTtcbiAgcGFkZGluZzogMC42MjVyZW07XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgd2lkdGg6IDEyLjVyZW07XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG59XG4uZm9ybS1jb21wb25lbnQgLmJ1dHRvbiB7XG4gIHdpZHRoOiA4LjEyNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDAuODtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbn1cbi5mb3JtLWNvbXBvbmVudCAuYnV0dG9uOmZvY3VzIHtcbiAgYm94LXNoYWRvdzogMCAwIDNwdCAycHQgIzAwOWE1YjtcbiAgb3V0bGluZTogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xufVxuLmxldmVsLWJveCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG4ubGV2ZWwtYm94ID4uYm94IHtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMjBweDtcbiAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gIGJvcmRlcjogMnB4IHNvbGlkICMwMDlmZTM7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbi5sZXZlbC1ib3ggPi5ib3guLWZpbGxlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDlmZTM7XG59XG4ubWV0YS1ib3gge1xuICBwYWRkaW5nOiAzLjEyNXJlbSAwO1xufVxuLm1ldGEtYm94Li1lZGl0b3IgLnRhc2stbWVudSA+LmFkZCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ4cmVtKSB7XG4gIC5tZXRhLWJveCB7XG4gICAgcGFkZGluZzogMi41cmVtIDA7XG4gIH1cbiAgLm1ldGEtYm94Li1lZGl0b3Ige1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbkBwYWdlIHtcbiAgbWFyZ2luOiAxY207XG59XG5AbWVkaWEgcHJpbnQge1xuICAucGRmLWxpY2Vuc2Uge1xuICAgIHBhZ2UtYnJlYWstYWZ0ZXI6IGFsd2F5cztcbiAgfVxufVxuLmllLWZpeE1pbkhlaWdodCB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG4uaWUtZml4TWluSGVpZ2h0IC5wYWdlIHtcbiAgbWluLWhlaWdodDogMTAwdmg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG4uaWUtZml4TWluSGVpZ2h0IC5wYWdlIC5jb250ZW50IHtcbiAgZmxleC1ncm93OiAxO1xufVxuLnRlYWNoZXItY29tbWVudCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBhZGRpbmctdG9wOiAxLjg3NXJlbTtcbn1cbi50ZWFjaGVyLWNvbW1lbnQgPiAuZG93bmxvYWQge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuLnRlYWNoZXItY29tbWVudCA+IC5kb3dubG9hZCA+IHN2ZyB7XG4gIG1hcmdpbi1yaWdodDogMXJlbTtcbn1cbi56aWt6YWstbG9nby13aGl0ZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG4uemlremFrLWxvZ28td2hpdGUgPiBpbWcge1xuICBoZWlnaHQ6IDMuMTI1cmVtO1xufVxuLnppa3phay1sb2dvIHtcbiAgZGlzcGxheTogZmxleDtcbn1cbi56aWt6YWstbG9nbyA+IGltZyB7XG4gIGhlaWdodDogMy4xMjVyZW07XG59XG4vKlxuLS0tXG5uYW1lOiAucGFkZGluZy1ib3hcbmNhdGVnb3J5OiBCb3gvUGFkZGluZ1xudGFnOlxuIC0gY29tcG9uZW50XG4gLSBsYXlvdXRcbmNvbXBpbGU6IHRydWVcbi0tLVxuXG5BIHNpbXBsZSBjb21wb25lbnQgdG8gYWRkIHBhZGRpbmdzXG5cbiMjIEFwcGx5aW5nIHBhZGRpbmdzXG5cblRoZSBlYXNpZXN0IHVzZSBjYXNlIGlzIHRvIHVzZSBzaW1wbGUgYC5wYWRkaW5nLWJveCAuLWFsbGAgZm9yIGEgcGFkZGluZyBvbiB0b3AsIHJpZ2h0LCBib3R0b20gYW5kIGxlZnQgd2l0aCBkZWZhdWx0IHNpemUgb3JcbmAuLXRvcGAsIGAuLXJpZ2h0YCwgYC4tYm90dG9tYCBhbmQgYC4tbGVmdGAgZm9yIHNwZWNpZmllZCBzaWRlc1xuXG5gYGBqYWRlXG5kaXYuYWlnaXMtZGVidWcucGFkZGluZy1ib3guLWFsbCBEZWZhdXQgcGFkZGluZyBhcHBsaWVkIG9uIHRvcCwgcmlnaHQsIGJvdHRvbSBhbmQgbGVmdFxuYGBgXG5gYGBqYWRlXG5kaXYuYWlnaXMtZGVidWcucGFkZGluZy1ib3guLWJvdHRvbSBEZWZhdXQgcGFkZGluZyBhcHBsaWVkIG9uIGJvdHRvbVxuYGBgXG5cbiMjIFZhcmlhbnRzXG5cblRoZSB2YXJpYW50cyBmb3IgdGhlIHBhZGRpbmdzIGFyZSBgLi10b3Ate3NpemV9YCwgYC4tcmlnaHQte3NpemV9YCwgYC4tYm90dG9tLXtzaXplfWAgYW5kIGAubGVmdC17c2l6ZX1gIHRvZ2V0aGVyIHdpdGggc2l6ZXMgc21hbGwsIG1lZGl1bSBvciBsYXJnZS5cbkFsbCBzaXplcyBhcmUgZGVmaW5lZCBpbiB0aGUgdmFyaWFibGUgdGhlbWUuY29tcG9uZW50cy5wYWRkaW5nLWJveC4gVmFsdWVzIGFyZSBgc21hbGxgLCBgbWVkaXVtYCwgYW5kIGBsYXJnZWBcblxuYGBgamFkZVxuZGl2LmFpZ2lzLWRlYnVnLnBhZGRpbmctYm94Li1sZWZ0LXNtYWxsIFNtYWxsIHBhZGRpbmcgYXBwbGllZCBvbiBsZWZ0XG5gYGBcbmBgYGphZGVcbmRpdi5haWdpcy1kZWJ1Zy5wYWRkaW5nLWJveC4tcmlnaHQtc21hbGwoc3R5bGU9XCJ0ZXh0LWFsaWduOnJpZ2h0XCIpIFNtYWxsIHBhZGRpbmcgYXBwbGllZCBvbiByaWdodFxuYGBgXG5gYGBqYWRlXG5kaXYuYWlnaXMtZGVidWcucGFkZGluZy1ib3guLXRvcC1zbWFsbCBTbWFsbCBwYWRkaW5nIGFwcGxpZWQgb24gdG9wXG5gYGBcbmBgYGphZGVcbmRpdi5haWdpcy1kZWJ1Zy5wYWRkaW5nLWJveC4tYm90dG9tLXNtYWxsIFNtYWxsIHBhZGRpbmcgYXBwbGllZCBvbiBib3R0b21cbmBgYFxuXG5UaGVyZSBhcmUgYWxzbyBzaG9ydGN1dHMgZm9yIHZlcnRpY2FsIGAuLXYte3NpemV9YCBhbmQgaG9yaXpvbnRhbCBgLi1oLXtzaXplfWAgdG9nZXRoZXIgd2l0aCBzaXplc1xuXG5gYGBqYWRlXG5kaXYuYWlnaXMtZGVidWcucGFkZGluZy1ib3guLXYtbWVkaXVtIE1lZGl1bSBwYWRkaW5nIGFwcGxpZWQgb24gdG9wIGFuZCBib3R0b21cbmBgYFxuYGBgamFkZVxuZGl2LmFpZ2lzLWRlYnVnLnBhZGRpbmctYm94Li1oLW1lZGl1bShzdHlsZT1cIndpZHRoOiAzMDBweFwiKSBNZWRpdW0gcGFkZGluZyBhcHBsaWVkIG9uIHJpZ2h0IGFuZCBsZWZ0XG5gYGBcbmBgYGphZGVcbmRpdi5haWdpcy1kZWJ1Zy5wYWRkaW5nLWJveC4taC1tZWRpdW0uLXRvcC1sYXJnZShzdHlsZT1cIndpZHRoOiA0MDBweFwiKSBNZWRpdW0gcGFkZGluZyBhcHBsaWVkIG9uIHJpZ2h0IGFuZCBsZWZ0LCBsYXJnZSBwYWRkaW5nIGFwcGxpZWQgb24gdG9wXG5gYGBcbiovXG4ucGFkZGluZy1ib3guLXRvcCB7XG4gIHBhZGRpbmctdG9wOiAwLjYyNXJlbTtcbn1cbi5wYWRkaW5nLWJveC4tcmlnaHQge1xuICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbn1cbi5wYWRkaW5nLWJveC4tYm90dG9tIHtcbiAgcGFkZGluZy1ib3R0b206IDAuNjI1cmVtO1xufVxuLnBhZGRpbmctYm94Li1sZWZ0IHtcbiAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbn1cbi5wYWRkaW5nLWJveC4taCB7XG4gIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG4gIHBhZGRpbmctcmlnaHQ6IDAuNjI1cmVtO1xufVxuLnBhZGRpbmctYm94Li12IHtcbiAgcGFkZGluZy10b3A6IDAuNjI1cmVtO1xuICBwYWRkaW5nLWJvdHRvbTogMC42MjVyZW07XG59XG4ucGFkZGluZy1ib3guLWFsbCB7XG4gIHBhZGRpbmc6IDAuNjI1cmVtIDAuNjI1cmVtO1xufVxuLnBhZGRpbmctYm94Li10b3Atc21hbGwge1xuICBwYWRkaW5nLXRvcDogMC4xMjVyZW07XG59XG4ucGFkZGluZy1ib3guLXJpZ2h0LXNtYWxsIHtcbiAgcGFkZGluZy1yaWdodDogMC4xMjVyZW07XG59XG4ucGFkZGluZy1ib3guLWJvdHRvbS1zbWFsbCB7XG4gIHBhZGRpbmctYm90dG9tOiAwLjEyNXJlbTtcbn1cbi5wYWRkaW5nLWJveC4tbGVmdC1zbWFsbCB7XG4gIHBhZGRpbmctbGVmdDogMC4xMjVyZW07XG59XG4ucGFkZGluZy1ib3guLWgtc21hbGwge1xuICBwYWRkaW5nLWxlZnQ6IDAuMTI1cmVtO1xuICBwYWRkaW5nLXJpZ2h0OiAwLjEyNXJlbTtcbn1cbi5wYWRkaW5nLWJveC4tdi1zbWFsbCB7XG4gIHBhZGRpbmctdG9wOiAwLjEyNXJlbTtcbiAgcGFkZGluZy1ib3R0b206IDAuMTI1cmVtO1xufVxuLnBhZGRpbmctYm94Li1hbGwtc21hbGwge1xuICBwYWRkaW5nOiAwLjEyNXJlbSAwLjEyNXJlbTtcbn1cbi5wYWRkaW5nLWJveC4tdG9wLW1lZGl1bSB7XG4gIHBhZGRpbmctdG9wOiAxcmVtO1xufVxuLnBhZGRpbmctYm94Li1yaWdodC1tZWRpdW0ge1xuICBwYWRkaW5nLXJpZ2h0OiAxcmVtO1xufVxuLnBhZGRpbmctYm94Li1ib3R0b20tbWVkaXVtIHtcbiAgcGFkZGluZy1ib3R0b206IDFyZW07XG59XG4ucGFkZGluZy1ib3guLWxlZnQtbWVkaXVtIHtcbiAgcGFkZGluZy1sZWZ0OiAxcmVtO1xufVxuLnBhZGRpbmctYm94Li1oLW1lZGl1bSB7XG4gIHBhZGRpbmctbGVmdDogMXJlbTtcbiAgcGFkZGluZy1yaWdodDogMXJlbTtcbn1cbi5wYWRkaW5nLWJveC4tdi1tZWRpdW0ge1xuICBwYWRkaW5nLXRvcDogMXJlbTtcbiAgcGFkZGluZy1ib3R0b206IDFyZW07XG59XG4ucGFkZGluZy1ib3guLWFsbC1tZWRpdW0ge1xuICBwYWRkaW5nOiAxcmVtIDFyZW07XG59XG4ucGFkZGluZy1ib3guLXRvcC1sYXJnZSB7XG4gIHBhZGRpbmctdG9wOiAycmVtO1xufVxuLnBhZGRpbmctYm94Li1yaWdodC1sYXJnZSB7XG4gIHBhZGRpbmctcmlnaHQ6IDJyZW07XG59XG4ucGFkZGluZy1ib3guLWJvdHRvbS1sYXJnZSB7XG4gIHBhZGRpbmctYm90dG9tOiAycmVtO1xufVxuLnBhZGRpbmctYm94Li1sZWZ0LWxhcmdlIHtcbiAgcGFkZGluZy1sZWZ0OiAycmVtO1xufVxuLnBhZGRpbmctYm94Li1oLWxhcmdlIHtcbiAgcGFkZGluZy1sZWZ0OiAycmVtO1xuICBwYWRkaW5nLXJpZ2h0OiAycmVtO1xufVxuLnBhZGRpbmctYm94Li12LWxhcmdlIHtcbiAgcGFkZGluZy10b3A6IDJyZW07XG4gIHBhZGRpbmctYm90dG9tOiAycmVtO1xufVxuLnBhZGRpbmctYm94Li1hbGwtbGFyZ2Uge1xuICBwYWRkaW5nOiAycmVtIDJyZW07XG59XG4ucGFkZGluZy1ib3guLWd1dHRlciB7XG4gIHBhZGRpbmc6IDAuOTM3NXJlbSAwLjkzNzVyZW07XG59XG4uYnV0dG9uLWJhY2sge1xuICBoZWlnaHQ6IDIuNXJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAjNmI2YjZiO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbi5idXR0b24tYmFjazpob3ZlciB7XG4gIGNvbG9yOiAjMDA5YTViO1xufVxuLmJ1dHRvbi1iYWNrID4gLnN2Zy1pY29uIHtcbiAgZmlsbDogIzAwOWE1YjtcbiAgbWFyZ2luLXRvcDogMC40Mzc1cmVtO1xufVxuLmJ1dHRvbi1nZW5lcmFsIHtcbiAgaGVpZ2h0OiAyLjVyZW07XG4gIGJvcmRlci1yYWRpdXM6IDEuMjVyZW07XG4gIHBhZGRpbmc6IDAuNjI1cmVtIDAuOTM3NXJlbTtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG4uYnV0dG9uLXByaW1hcnkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA5YTViO1xuICBib3JkZXI6IG5vbmU7XG59XG4uYnV0dG9uLXByaW1hcnk6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDM3ODQ4O1xufVxuLmJ1dHRvbi1wcmltYXJ5Li1kaXNhYmxlZCB7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzljOWI5YjtcbiAgY29sb3I6ICMyNjI2MmI7XG59XG4uYnV0dG9uLXNlY29uZGFyeSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJvcmRlcjogMnB4IHNvbGlkICMwMDlhNWI7XG4gIGNvbG9yOiAjMDA5YTViO1xufVxuLmJ1dHRvbi1zZWNvbmRhcnk6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA5YTViO1xuICBjb2xvcjogI2ZmZjtcbn1cbi5idXR0b24tc2Vjb25kYXJ5Li1hY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA5YTViO1xuICBjb2xvcjogI2ZmZjtcbn1cbi5saW5rLWJ1dHRvbiA+IGE6aG92ZXIge1xuICBjb2xvcjogIzAwOWE1Yjtcbn1cbi5jYXJ0LWNvbXBvbmVudCAuYnV0dG9uIC5zdmctaWNvbiB7XG4gIHdpZHRoOiAyMHB4O1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0OHJlbSkge1xuICAuY2FydC1jb21wb25lbnQge1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIH1cbn1cbi5jb2xsYXBzZS11aSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5jb2xsYXBzZS11aSA+LmNvbnRlbnQge1xuICBjdXJzb3I6IGF1dG87XG59XG4uY29sbGFwc2UtdWkgPi50b2dnbGUge1xuICBib3JkZXItYm90dG9tOiAycHggc29saWQgIzI2MjYyYjtcbn1cbi5jb2xsYXBzZS11aSA+LnRvZ2dsZSA+IC5jb2xsYXBzZS1pY29uIHtcbiAgd2lkdGg6IDEuNXJlbTtcbiAgaGVpZ2h0OiAxLjVyZW07XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9pY29uLW1pbnVzLnN2Z1wiKTtcbn1cbi5jb2xsYXBzZS11aSA+LnRvZ2dsZSA+IC5jb2xsYXBzZS1pY29uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2ljb24tbWludXMtZ3JleS5zdmdcIik7XG59XG4uY29sbGFwc2UtdWkuLWNsb3NlID4gLnRvZ2dsZSA+IC5jb2xsYXBzZS1pY29uIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2ljb24tcGx1cy5zdmdcIik7XG59XG4uY29sbGFwc2UtdWkuLWNsb3NlID4gLnRvZ2dsZSA+IC5jb2xsYXBzZS1pY29uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2ljb24tcGx1cy1ncmV5LnN2Z1wiKTtcbn1cbi5jb250ZW50cy10YWJsZSAuZWxlbWVudDpudGgtY2hpbGQoZXZlbikge1xuICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XG59XG4uY29udGVudHMtdGFibGUgLmVsZW1lbnQge1xuICBtYXJnaW4tYm90dG9tOiAyLjI1cmVtO1xufVxuLmNvbnRlbnRzLXRhYmxlIC5lbGVtZW50IC5pbWFnZSB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLmNvbnRlbnRzLXRhYmxlIC5lbGVtZW50IC5wYWdlLXJvdyB7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG4uY29udGVudHMtdGFibGUgLmVsZW1lbnQgLnBhZ2VudW1iZXIge1xuICBjb2xvcjogIzAwOWE1YjtcbiAgZm9udC1mYW1pbHk6IEdsb2Jlci1FeHRyYS1Cb2xkO1xuICBsaW5lLWhlaWdodDogMy44NzVyZW07XG4gIGZvbnQtc2l6ZTogMy4xMjVyZW07XG4gIGxldHRlci1zcGFjaW5nOiAwLjA2MjVyZW07XG59XG4uaW1hZ2UtZWxlbWVudCB7XG4gIHBhZGRpbmctYm90dG9tOiAzLjc1cmVtO1xufVxuLmltYWdlLWVsZW1lbnQgPiAuaW1hZ2Uge1xuICBtaW4td2lkdGg6IDEwMCU7XG59XG4uaW1hZ2UtZWxlbWVudCA+IC5jYXB0aW9uIHtcbiAgcGFkZGluZy10b3A6IDAuNjI1cmVtO1xufVxuLmxpY2Vuc2UtY29udGVudCB7XG4gIG1hcmdpbi1ib3R0b206IDcuNXJlbTtcbn1cbi5saWNlbnNlLWNvbnRlbnQuLWF1dGggLmF1dGggLmRpYWxvZyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmOGY4Zjg7XG4gIHBhZGRpbmctdG9wOiA5LjM3NXJlbTtcbiAgcGFkZGluZy1ib3R0b206IDMuNzVyZW07XG4gIG1hcmdpbi1ib3R0b206IDMuNzVyZW07XG59XG4ubGljZW5zZS1jb250ZW50Li1ub2F1dGggLmF1dGgge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4ubGljZW5zZS1jb250ZW50Li1ub2F1dGggLmF1dGggLm92ZXJsYXkge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDUwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvcGFjaXR5OiAwLjc7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG4ubGljZW5zZS1jb250ZW50Li1ub2F1dGggLm5vYXV0aCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkY2VjZGM7XG4gIHBhZGRpbmctdG9wOiA5LjM3NXJlbTtcbiAgcGFkZGluZy1ib3R0b206IDMuNzVyZW07XG4gIG1hcmdpbi1ib3R0b206IDMuNzVyZW07XG59XG4ubGljZW5zZS1jb250ZW50IC5idXR0b24ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG4ubGljZW5zZS1jb250ZW50IC5jYXJ0LWNvbXBvbmVudCA+LmJ1dHRvbiB7XG4gIHdpZHRoOiAyMDBweDtcbiAgZGlzcGxheTogZmxleDtcbn1cbi5saWNlbnNlLWNvbnRlbnQgLmxpbmsge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzAwOWE1YjtcbiAgY29sb3I6ICMwMDlhNWI7XG4gIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7XG59XG4ubGljZW5zZS1jb250ZW50IC5saW5rOmhvdmVyIHtcbiAgY29sb3I6ICM2YjZiNmI7XG59XG4ubGljZW5zZS1jb250ZW50IC51c2VyLWxpY2Vuc2VzID4udGFibGUge1xuICB3aWR0aDogMTAwJTtcbn1cbi5saWNlbnNlLWNvbnRlbnQgLnVzZXItbGljZW5zZXMgPi50YWJsZSB0aCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG4ubGljZW5zZS1jb250ZW50IC51c2VyLWxpY2Vuc2VzID4udGFibGUgdGQsXG4ubGljZW5zZS1jb250ZW50IC51c2VyLWxpY2Vuc2VzID4udGFibGUgdGgge1xuICBwYWRkaW5nOiAwLjI1cmVtO1xufVxuLm92ZXJ2aWV3LWNvbnRlbnQge1xuICBtYXJnaW4tdG9wOiA5LjM3NXJlbTtcbn1cbi5wYXJhZ3JhcGgtZWxlbWVudCB7XG4gIHBhZGRpbmctYm90dG9tOiAzLjc1cmVtO1xufVxuLnBhcmFncmFwaC1lbGVtZW50IHVsID5saSxcbi5wYXJhZ3JhcGgtZWxlbWVudCBvbCA+bGkge1xuICBwYWRkaW5nOiAwLjMxMjVyZW07XG59XG4uc2Nob29scGFnZS1jb250ZW50IHtcbiAgbWFyZ2luLXRvcDogOS4zNzVyZW07XG59XG4uc2Nob29scGFnZS1jb250ZW50LmVsZW1lbnQtbGF5b3V0IHtcbiAgbWF4LXdpZHRoOiA0My43NXJlbTtcbn1cbi5zaW5nbGVwYWdlLWNvbnRlbnQge1xuICBtYXJnaW4tdG9wOiA5LjM3NXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogNy41cmVtO1xufVxuLnNsaWRlLWNvbnRhaW5lciB7XG4gIHBhZGRpbmctYm90dG9tOiAzLjc1cmVtO1xufVxuLnN0YXJ0cGFnZS1jb250ZW50IHtcbiAgcGFkZGluZy10b3A6IDRyZW07XG59XG4uc3RhcnRwYWdlLWNvbnRlbnQgPi5zdWJoZWFkZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZkMjI2O1xufVxuLnN0YXJ0cGFnZS1jb250ZW50ID4uc3ViaGVhZGVyIC5hd2FyZCB7XG4gIG1heC13aWR0aDogMTEwMHB4O1xuICBtYXJnaW46IDAgYXV0bztcbn1cbi5zdGFydHBhZ2UtY29udGVudCA+LnN1YmhlYWRlciAuYXdhcmQgLmNvbnRhaW5lciB7XG4gIG1hcmdpbi1sZWZ0OiAxNnB4O1xufVxuLnN0YXJ0cGFnZS1jb250ZW50ID4uc3ViaGVhZGVyIC5hd2FyZCAuaW1hZ2Uge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG4uc3RhcnRwYWdlLWNvbnRlbnQgPi5zdWJoZWFkZXIgLmF3YXJkIC5wb2thbCB7XG4gIGhlaWdodDogNTBweDtcbiAgbWFyZ2luLXJpZ2h0OiAzMnB4O1xufVxuLnN0YXJ0cGFnZS1jb250ZW50ID4uc3ViaGVhZGVyIC5hd2FyZCAud29ybGRkaWRhYyB7XG4gIGhlaWdodDogMzJweDtcbiAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xufVxuLnN0YXJ0cGFnZS1jb250ZW50ID4uc3ViaGVhZGVyIC5hd2FyZCAudGV4dCB7XG4gIGZvbnQtc2l6ZTogMjJweDtcbiAgbGluZS1oZWlnaHQ6IDMwcHg7XG4gIGZvbnQtZmFtaWx5OiAnR2xvYmVyLVNlbWktQm9sZCc7XG59XG4uc3RhcnRwYWdlLWNvbnRlbnQgLmludHJvIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y4ZjhmODtcbiAgcGFkZGluZy10b3A6IDYuMjVyZW07XG59XG4uc3RhcnRwYWdlLWNvbnRlbnQgLnZpZGVvLWVsZW1lbnQge1xuICBtYXgtd2lkdGg6IDYyLjVyZW07XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBwYWRkaW5nOiAwIDFyZW07XG4gIG1hcmdpbi1ib3R0b206IDMuNzVyZW07XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ4cmVtKSB7XG4gIC5zdGFydHBhZ2UtY29udGVudCA+LnN1YmhlYWRlciAuYXdhcmQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG4gIC5zdGFydHBhZ2UtY29udGVudCA+LnN1YmhlYWRlciAuYXdhcmQgLmNvbnRhaW5lciB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgICBtYXJnaW4tbGVmdDogMTZweDtcbiAgfVxuICAuc3RhcnRwYWdlLWNvbnRlbnQgPi5zdWJoZWFkZXIgLmF3YXJkIC50ZXh0IHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgZm9udC1mYW1pbHk6ICdHbG9iZXItU2VtaS1Cb2xkJztcbiAgICBtYXJnaW4tbGVmdDogMTZweDtcbiAgfVxuICAuc3RhcnRwYWdlLWNvbnRlbnQgLnZpZGVvLWVsZW1lbnQge1xuICAgIG1hcmdpbi1ib3R0b206IDIuNXJlbTtcbiAgfVxufVxuLnN0YXJ0cGFnZS1jb250ZW50cyAuY29udGVudHMtcm93IC5pdGVtIHtcbiAgcGFkZGluZzogNXB4O1xufVxuLnN0YXJ0cGFnZS1jb250ZW50cyAuY29udGVudHMtcm93IC5wYWdlbnVtYmVyIHtcbiAgd2lkdGg6IDJyZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLnZpZGVvLWVsZW1lbnQge1xuICBwYWRkaW5nLWJvdHRvbTogMy43NXJlbTtcbn1cbi52aWRlby1lbGVtZW50ID4gLmNhcHRpb24ge1xuICBwYWRkaW5nLXRvcDogMC42MjVyZW07XG59XG4ueWVhci1oZWFkZXIge1xuICBib3JkZXItYm90dG9tOiBzb2xpZCAycHggIzZiNmI2YjtcbiAgcGFkZGluZy1ib3R0b206IDEuODc1cmVtO1xuICBtYXJnaW4tdG9wOiA0LjY4NzVyZW07XG4gIG1hcmdpbi1ib3R0b206IDEuODc1cmVtO1xufVxuLmRyb3Bkb3duLWZpbHRlciB7XG4gIHdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiBub25lO1xuICBtYXJnaW46IDAuNjI1cmVtIGF1dG87XG59XG4uZHJvcGRvd24tZmlsdGVyID4uZGVzY3JpcHRpb24ge1xuICBtYXJnaW4tYm90dG9tOiAwLjYyNXJlbTtcbn1cbi5kcm9wZG93bi1maWx0ZXIgPi5kZXNjcmlwdGlvbiBhIHtcbiAgY29sb3I6ICMwMDlhNWI7XG59XG4uZHJvcGRvd24tZmlsdGVyID4uZGVzY3JpcHRpb24gYTpob3ZlciB7XG4gIGNvbG9yOiAjMjYyNjJiO1xufVxuLmRyb3Bkb3duLWZpbHRlciA+LmRyb3AtZG93biA+LnRvZ2dsZSB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICM2YjZiNmI7XG4gIHBhZGRpbmc6IDAuMzEyNXJlbTtcbn1cbi5kcm9wZG93bi1maWx0ZXIgPi5kcm9wLWRvd24uLW9wZW4gPi50b2dnbGUge1xuICBib3JkZXItYm90dG9tOiBub25lO1xufVxuLmRyb3Bkb3duLWZpbHRlciA+LmRyb3AtZG93biA+LmRyb3AtZG93bi1tZW51IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm9yZGVyOiAxcHggc29saWQgIzZiNmI2YjtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbiAgd2lkdGg6IDEwMCU7XG59XG4uZHJvcGRvd24tZmlsdGVyIC52YWx1ZSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmc6IDAuMzEyNXJlbTtcbn1cbi5kcm9wZG93bi1maWx0ZXIgLnZhbHVlOmhvdmVyIHtcbiAgY29sb3I6ICMwMDlhNWI7XG59XG4uZHJvcGRvd24tZmlsdGVyIC5zdmctaWNvbiB7XG4gIGNvbG9yOiAjMDA5YTViO1xufVxuLmRyb3Bkb3duLWZpbHRlciAuc3ZnLWljb24uLXRvZ2dsZSB7XG4gIGNvbG9yOiAjNmI2YjZiO1xuICB3aWR0aDogMC42MjVyZW07XG4gIGhlaWdodDogMC4zNzVyZW07XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ4cmVtKSB7XG4gIC5kcm9wZG93bi1maWx0ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG4gIC5kcm9wZG93bi1maWx0ZXIgPi5kcm9wLWRvd24ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICB9XG4gIC5kcm9wZG93bi1maWx0ZXIgPi5kcm9wLWRvd24gPi50b2dnbGUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG4uZWRpdG9yLWNvbnRlbnQgZGwge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xufVxuLmVkaXRvci1jb250ZW50IGR0IHtcbiAgZmxleC1iYXNpczogMzAlO1xuICBwYWRkaW5nOiAycHggNHB4O1xuICBiYWNrZ3JvdW5kOiAjMzMzO1xuICBtYXJnaW4tcmlnaHQ6IDJweDtcbiAgbWFyZ2luLWJvdHRvbTogMnB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuLmVkaXRvci1jb250ZW50IGR0LmN1c3RvbWVyIHtcbiAgbWFyZ2luLXRvcDogMXJlbTtcbn1cbi5lZGl0b3ItY29udGVudCBkZCB7XG4gIGZsZXgtYmFzaXM6IDYwJTtcbiAgZmxleC1ncm93OiAxO1xuICBtYXJnaW4tYm90dG9tOiAycHg7XG4gIHBhZGRpbmc6IDJweCA0cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG4uZWRpdG9yLWNvbnRlbnQgZGQuY3VzdG9tZXIge1xuICBtYXJnaW4tdG9wOiAxcmVtO1xufVxuLmVkaXRvci1jb250ZW50IC5mb3JtLWNvbXBvbmVudCAuaW5wdXQge1xuICBtYXJnaW46IDA7XG59XG4uZWRpdG9yLWNvbnRlbnQgLmF1dG9jb21wbGV0ZS1jb21wb25lbnQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjMDAwO1xufVxuLnBhZ2luYXRpb24ge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG4ucGFnaW5hdGlvbiBsaSB7XG4gIGRpc3BsYXk6IGlubGluZTtcbiAgcGFkZGluZzogMC4zMTI1cmVtO1xufVxuLnN0YXRlLXN5bWJvbC4tcmVkZWVtZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA5YTViO1xufVxuLnN0YXRlLXN5bWJvbC4tdW5yZWRlZW1lZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2YjZiNmI7XG59XG4uc3RhdGUtc3ltYm9sLi1kZWFjdGl2YXRlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlOTRkNTE7XG59XG4uZWxlbWVudC1sYXlvdXQge1xuICBtYXgtd2lkdGg6IDYyLjVyZW07XG4gIHdpZHRoOiAxMDAlOyAvKiBJRTExIGZpeCAqL1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBwYWRkaW5nOiAwIDFyZW07XG59XG4uZWxlbWVudC1sYXlvdXQuLXNtYWxsIHtcbiAgbWF4LXdpZHRoOiA1MHJlbTtcbn1cbi5lbGVtZW50LWxheW91dC4tZnVsbCB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDEwMCU7XG59XG4uZmVlZGJhY2stZm9ybSAuYXV0b2NvbXBsZXRlID4udmFsdWUge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBhZGRpbmctdG9wOiA1cHg7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjOWM5YjliO1xufVxuLmZvb3Rlci1jb21wb25lbnQge1xuICBjb2xvcjogI2ZmZjtcbiAgcGFkZGluZzogMS44NzVyZW0gOC43NXJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzI2MjYyYjtcbn1cbi5mb290ZXItY29tcG9uZW50IC5tYWlsdG8sXG4uZm9vdGVyLWNvbXBvbmVudCAuaW1wcmVzc3VtLFxuLmZvb3Rlci1jb21wb25lbnQgLnBob25lIHtcbiAgY29sb3I6ICNmZmY7XG59XG4uZm9vdGVyLWNvbXBvbmVudCAubWFpbHRvOmhvdmVyLFxuLmZvb3Rlci1jb21wb25lbnQgLmltcHJlc3N1bTpob3Zlcixcbi5mb290ZXItY29tcG9uZW50IC5waG9uZTpob3ZlciB7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0OHJlbSkge1xuICAuZm9vdGVyLWNvbXBvbmVudCB7XG4gICAgcGFkZGluZzogMS44NzVyZW0gNC4zNzVyZW07XG4gIH1cbiAgLmZvb3Rlci1jb21wb25lbnQgLi1sb2NhdGlvbixcbiAgLmZvb3Rlci1jb21wb25lbnQgLi1waG9uZSxcbiAgLmZvb3Rlci1jb21wb25lbnQgLi1tYWlsLFxuICAuZm9vdGVyLWNvbXBvbmVudCAuaW1wcmVzc3VtLFxuICAuZm9vdGVyLWNvbXBvbmVudCAuZm9vdGVyLWhlYWRpbmcge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuICAuZm9vdGVyLWNvbXBvbmVudCAubG9nbyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgfVxuICAuZm9vdGVyLWNvbXBvbmVudCAuLXNwYWNlciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICAuZm9vdGVyLWNvbXBvbmVudCAuLXBob25lLFxuICAuZm9vdGVyLWNvbXBvbmVudCAuLW1haWwsXG4gIC5mb290ZXItY29tcG9uZW50IC4taW1wcmVzc3VtIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMS4yNXJlbTtcbiAgfVxufVxuLmZvcm0tY29tcG9uZW50IC5pbnB1dCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmOGY4Zjg7XG4gIGNvbG9yOiAjMDAwO1xuICBib3JkZXI6IDJweCBzb2xpZCAjYTlhOWE5O1xuICBwYWRkaW5nOiAwLjYyNXJlbTtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICB3aWR0aDogMTIuNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbn1cbi5mb3JtLWNvbXBvbmVudCAuYnV0dG9uIHtcbiAgd2lkdGg6IDguMTI1cmVtO1xuICBsaW5lLWhlaWdodDogMC44O1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xufVxuLmZvcm0tY29tcG9uZW50IC5idXR0b246Zm9jdXMge1xuICBib3gtc2hhZG93OiAwIDAgM3B0IDJwdCAjMDA5YTViO1xuICBvdXRsaW5lOiBub25lO1xuICBib3JkZXI6IG5vbmU7XG59XG4uYW5zd2VyLWNvbnRhaW5lciB7XG4gIHBhZGRpbmctYm90dG9tOiAxLjU2MjVyZW07XG59XG4uYW5zd2VyLWNvbnRhaW5lciA+IC5pbnB1dCB7XG4gIG1hcmdpbi1yaWdodDogMC45Mzc1cmVtO1xuICBmbGV4OiBub25lO1xufVxuLmRyb3Bkb3duLXRleHQgPiAuc2VsZWN0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y4ZjhmODtcbiAgYm9yZGVyOiBzb2xpZCAxcHggIzljOWI5Yjtcbn1cbi5mZWVkYmFjay1ib3ggPiAuZmVlZGJhY2stcGFuZWwge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuLmZlZWRiYWNrLWJveCA+IC5mZWVkYmFjay1wYW5lbCA+IC5pY29uIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgaGVpZ2h0OiAyLjVyZW07XG4gIG1hcmdpbi1yaWdodDogMS4yNXJlbTtcbn1cbi5mZWVkYmFjay1ib3guLXdyb25nLnNlbGVjdCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlYTU3NjI7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmUwZTI7XG59XG4uZmVlZGJhY2stYm94Li13cm9uZyA+IC5hbnN3ZXItY29udGFpbmVyID4gLnRleHQge1xuICBjb2xvcjogI2VhNTc2Mjtcbn1cbi5mZWVkYmFjay1ib3guLXdyb25nID4gLmZlZWRiYWNrLXBhbmVsID4gLmljb24ge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvaWNvbi13cm9uZy5zdmdcIik7XG59XG4uZmVlZGJhY2stYm94Li1jb3JyZWN0LnNlbGVjdCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICMwMDlhNWI7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkY2VjZGM7XG59XG4uZmVlZGJhY2stYm94Li1jb3JyZWN0ID4gLmFuc3dlci1jb250YWluZXIgPiAudGV4dCB7XG4gIGNvbG9yOiAjMDA5YTViO1xufVxuLmZlZWRiYWNrLWJveC4tY29ycmVjdCA+IC5mZWVkYmFjay1wYW5lbCA+IC5pY29uIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2ljb24tY29ycmVjdC5zdmdcIik7XG59XG4uZmVlZGJhY2stY29udGFpbmVyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nLXRvcDogMi4xODc1cmVtO1xufVxuLmZlZWRiYWNrLXBhbmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y4ZjhmODtcbn1cbi5ob3RzcG90LWltYWdlIHtcbiAgbWluLXdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAwLjYyNXJlbTtcbn1cbi5ob3RzcG90LXBvaW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzZiNmI2YjtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICB3aWR0aDogMS41NjI1cmVtO1xuICBoZWlnaHQ6IDEuNTYyNXJlbTtcbiAgb3BhY2l0eTogMC42O1xufVxuLmhvdHNwb3QtcG9pbnQuLXdyb25nIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VhNTc2Mjtcbn1cbi5ob3RzcG90LXBvaW50Li1jb3JyZWN0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwOWE1Yjtcbn1cbi5ob3RzcG90LXF1ZXN0aW9uIHtcbiAgcGFkZGluZy1ib3R0b206IDEuMjVyZW07XG59XG4ucXVlc3Rpb24tY29udGFpbmVyIHtcbiAgcGFkZGluZy1ib3R0b206IDEuNTYyNXJlbTtcbn1cbi5sZXZlbC1ib3gge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuLmxldmVsLWJveCA+LmJveCB7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG4gIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICBib3JkZXI6IDJweCBzb2xpZCAjMDA5ZmUzO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG4ubGV2ZWwtYm94ID4uYm94Li1maWxsZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA5ZmUzO1xufVxuLmFkZC1saWNlbnNlID4uaW5wdXQge1xuICBwYWRkaW5nOiA1cHg7XG4gIGZvbnQtc2l6ZTogMS44NzVyZW07XG4gIHdpZHRoOiA2LjI1cmVtO1xufVxuLmFkZC1saWNlbnNlIC5idXR0b24tZ2VuZXJhbCB7XG4gIGxpbmUtaGVpZ2h0OiAwLjhweDtcbn1cbi5tYWdhemluZS1oZWFkZXIgPi5jb3Zlci1pbWFnZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiA0NjBweDtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xufVxuLm1hZ2F6aW5lLWhlYWRlciA+LmNvdmVyLWltYWdlID4udHJhbnNwYXJlbnQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwwLDAsMC4zKTtcbiAgei1pbmRleDogNTtcbn1cbi5tYWdhemluZS1oZWFkZXIgPi5jb3Zlci1pbWFnZSA+IC5jb250ZW50IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxMDtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmctdG9wOiAxNHJlbTtcbn1cbi5tYWdhemluZS1oZWFkZXIgPi5jb3Zlci1pbWFnZSA+IC5jb250ZW50ID4gLmRhdGUge1xuICBjb2xvcjogI2ZmZjtcbn1cbi5tYWdhemluZS1oZWFkZXIgPi5jb3Zlci1pbWFnZS4tbW9iaWxlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDhyZW0pIHtcbiAgLm1hZ2F6aW5lLWhlYWRlciA+LmNvdmVyLWltYWdlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIC5tYWdhemluZS1oZWFkZXIgPi5jb3Zlci1pbWFnZS4tbW9iaWxlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDMwMHB4O1xuICB9XG4gIC5tYWdhemluZS1oZWFkZXIgPi5jb3Zlci1pbWFnZS4tbW9iaWxlID4gLmNvbnRlbnQge1xuICAgIHBhZGRpbmctdG9wOiA4cmVtO1xuICB9XG59XG4ubWFnYXppbmUtcGFnZSB7XG4gIG1hcmdpbi1ib3R0b206IDcuNXJlbTtcbn1cbi5tYWdhemluZS1wYWdlLi1zdHVkZW50IC5tYWdhemluZS1kZXNjcmlwdGlvbixcbi5tYWdhemluZS1wYWdlLi1zdHVkZW50IC50ZWFjaGVyLWNvbW1lbnQsXG4ubWFnYXppbmUtcGFnZS4tc3R1ZGVudCAudW5pdC1tZW51LFxuLm1hZ2F6aW5lLXBhZ2UuLXN0dWRlbnQgLm1ldGEtYm94LFxuLm1hZ2F6aW5lLXBhZ2UuLXN0dWRlbnQgLmRyb3Bkb3duLWZpbHRlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4ubWFnYXppbmUtcHJldmlldyB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgd2lkdGg6IDEwMCU7XG59XG4ubWFnYXppbmUtcHJldmlldy4taGlkZGVuIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5tYWdhemluZS1wcmV2aWV3ID4uaW1hZ2UtY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG4ubWFnYXppbmUtcHJldmlldyA+LmltYWdlLWNvbnRhaW5lciAucHJldmlldy1pY29uIHtcbiAgY29sb3I6ICMwMDlhNWI7XG59XG4ubWFnYXppbmUtcHJldmlldyA+LmltYWdlLWNvbnRhaW5lciAuZnV0dXJlLXB1YmxpY2F0aW9uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDlmZTM7XG4gIGNvbG9yOiAjZmZmO1xuICBsaW5lLWhlaWdodDogM3JlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLm1hZ2F6aW5lLXByZXZpZXc6aG92ZXIgLnByZXZpZXcgLnByZXZpZXctaWNvbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4ubWFnYXppbmUtcHJldmlldzpob3ZlciAucHJldmlldyAucHJldmlldy1pY29uLi1ob3ZlciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbi5tYWdhemluZS1wcmV2aWV3OmhvdmVyIC5pbWFnZSB7XG4gIGJveC1zaGFkb3c6IDBweCAycHggMTZweCByZ2JhKDEwNywxMDcsMTA3LDAuNSk7XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC4zcztcbn1cbi5tYWdhemluZS1wcmV2aWV3IC5pbWFnZSB7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDRweCAwIHJnYmEoMTA3LDEwNywxMDcsMC4zKTtcbiAgbWF4LWhlaWdodDogMjByZW07XG59XG4ubWFnYXppbmUtcHJldmlldyAuZGF0ZSB7XG4gIHBhZGRpbmctdG9wOiAwLjkzNzVyZW07XG59XG4ubWFnYXppbmUtcHJldmlldyAucHJldmlldyB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDEzMHB4O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAwJSk7XG4gIGxlZnQ6IDUwJTtcbn1cbi5tYWdhemluZS1wcmV2aWV3IC5wcmV2aWV3IC5wcmV2aWV3LWljb24ge1xuICB3aWR0aDogNjBweDtcbiAgaGVpZ2h0OiA2MHB4O1xufVxuLm1hZ2F6aW5lLXByZXZpZXcgLnByZXZpZXcgLnByZXZpZXctaWNvbi4taG92ZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuLm1hZ2F6aW5lLXByZXZpZXcgLnByZXZpZXcgLnRleHQge1xuICBjb2xvcjogIzAwOWE1YjtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbi5tYWdhemluZS1wcmV2aWV3Li1mdXR1cmUgLmltYWdlLWNvbnRhaW5lciAuY2FydC1jb21wb25lbnQge1xuICBib3R0b206IDEwcHg7XG59XG4ubWFnYXppbmUtcHJldmlldy4tZGlzYWJsZWQgLmltYWdlLWNvbnRhaW5lciAuaW1hZ2UsXG4ubWFnYXppbmUtcHJldmlldy4tZGlzYWJsZWQgLmltYWdlLWNvbnRhaW5lciAuZGF0ZSxcbi5tYWdhemluZS1wcmV2aWV3Li1kaXNhYmxlZCAuaW1hZ2UtY29udGFpbmVyIC50aXRsZSB7XG4gIG9wYWNpdHk6IDAuNTtcbn1cbi5tZXRhLWJveCB7XG4gIHBhZGRpbmc6IDMuMTI1cmVtIDA7XG59XG4ubWV0YS1ib3guLWVkaXRvciAudGFzay1tZW51ID4uYWRkIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDhyZW0pIHtcbiAgLm1ldGEtYm94IHtcbiAgICBwYWRkaW5nOiAyLjVyZW0gMDtcbiAgfVxuICAubWV0YS1ib3guLWVkaXRvciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuLm1vYmlsZW5hdmlnYXRpb24tbWFpbmhlYWRlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xufVxuLm1vYmlsZW5hdmlnYXRpb24tbWFpbmhlYWRlciA+IGEge1xuICBjb2xvcjogIzI2MjYyYjtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjEuMjVyZW0pIHtcbiAgLm1vYmlsZW5hdmlnYXRpb24tbWFpbmhlYWRlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgfVxufVxuLm1vYmlsZW5hdmlnYXRpb24tbWVudSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA0LjQzNzVyZW07XG4gIG1pbi13aWR0aDogMzAlO1xuICByaWdodDogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm94LXNoYWRvdzogMHB4IDVweCA3cHggMHB4IHJnYmEoMzgsMzgsNDMsMC4xKTtcbiAgbWF4LXdpZHRoOiAyMy40Mzc1cmVtO1xuICBwYWRkaW5nOiAyLjgxMjVyZW0gMXJlbTtcbn1cbi5tb2JpbGVuYXZpZ2F0aW9uLW1lbnUgPiBhLi1zaG93YWxsLFxuLm1vYmlsZW5hdmlnYXRpb24tbWVudSBhLi1hYm91dCxcbi5tb2JpbGVuYXZpZ2F0aW9uLW1lbnUgYS4tbGljZW5zZSB7XG4gIGNvbG9yOiAjMjYyNjJiO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG59XG4ubW9iaWxlbmF2aWdhdGlvbi1tZW51ID4gYS4tc2hvd2FsbDpob3Zlcixcbi5tb2JpbGVuYXZpZ2F0aW9uLW1lbnUgYS4tYWJvdXQ6aG92ZXIsXG4ubW9iaWxlbmF2aWdhdGlvbi1tZW51IGEuLWxpY2Vuc2U6aG92ZXIge1xuICBjb2xvcjogIzAwOWE1Yjtcbn1cbi5tb2JpbGVuYXZpZ2F0aW9uLW1lbnUgPiBhLi1zaG93YWxsLFxuLm1vYmlsZW5hdmlnYXRpb24tbWVudSA+IGEuLWFib3V0IHtcbiAgcGFkZGluZy1ib3R0b206IDEuMjVyZW07XG59XG4ubW9iaWxlbmF2aWdhdGlvbi1tZW51ID4gYS4tbGljZW5zZSB7XG4gIHBhZGRpbmctYm90dG9tOiAzLjc1cmVtO1xufVxuLm5hdmlnYXRpb24tbGluayB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4ubmF2aWdhdGlvbi1saW5rID4gLmljb24ge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuLm5hdmlnYXRpb24tbGluayA+IC5pY29uIHN2ZyB7XG4gIGNvbG9yOiAjMDA5YTViO1xuICB3aWR0aDogMS44NzVyZW07XG4gIGhlaWdodDogMS44NzVyZW07XG59XG4ubmF2aWdhdGlvbi1saW5rID4gLmljb24gc3ZnLi1vcGVuLFxuLm5hdmlnYXRpb24tbGluayA+IC5pY29uIHN2Zy4tY2xvc2Uge1xuICBtYXJnaW46IDAuNjI1cmVtO1xufVxuLm5hdmlnYXRpb24tbGluayA+IC50ZXh0IHtcbiAgbWFyZ2luLWxlZnQ6IDAuOTM3NXJlbTtcbn1cbi5uYXZpZ2F0aW9uLWxpbms6aG92ZXIgLnRleHQge1xuICBjb2xvcjogIzAwOWE1Yjtcbn1cbi5uYXZpZ2F0aW9uLWxpbmsgLnN2Zy1pY29uLi1pbmxpbmUuLWNsb3NlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5uYXZpZ2F0aW9uLWxpbmsuLW9wZW4gLnN2Zy1pY29uLi1pbmxpbmUuLWNsb3NlIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuLm5hdmlnYXRpb24tbGluay4tb3BlbiAuc3ZnLWljb24uLWlubGluZS4tb3BlbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4ubmF2aWdhdGlvbi1saW5rLi1hY3RpdmUgPi50ZXh0IHtcbiAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICMwMDlhNWI7XG4gIGNvbG9yOiAjMDA5YTViO1xufVxuLm5hdmlnYXRpb24tbWFpbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIHBhZGRpbmc6IDAuNjI1cmVtIDEuODc1cmVtIDAuNjI1cmVtIDEuODc1cmVtO1xuICBib3gtc2hhZG93OiAwIDJweCA4cHggMCByZ2JhKDM4LDM4LDQzLDAuMSk7XG4gIHotaW5kZXg6IDc1O1xufVxuLm5hdmlnYXRpb24tbWFpbi4tdHJhbnNwYXJlbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLDApO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLm5hdmlnYXRpb24tbWFpbi4tdHJhbnNwYXJlbnQgLm5hdmlnYXRpb24tbGluayB7XG4gIGNvbG9yOiAjZmZmO1xufVxuLm5hdmlnYXRpb24tbWFpbi4tdHJhbnNwYXJlbnQgLm5hdmlnYXRpb24tbGluayA+IC5pY29uIHN2ZyB7XG4gIGNvbG9yOiAjZmZmO1xufVxuLm5hdmlnYXRpb24tbWFpbi4tdHJhbnNwYXJlbnQgLmJ1dHRvbi1zZWNvbmRhcnkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAycHggc29saWQgI2ZmZjtcbiAgY29sb3I6ICNmZmY7XG59XG4ubmF2aWdhdGlvbi1tYWluLi10cmFuc3BhcmVudCAuemlremFrLWxvZ28td2hpdGUge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi5uYXZpZ2F0aW9uLW1haW4uLXRyYW5zcGFyZW50IC56aWt6YWstbG9nbyB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4ubmF2aWdhdGlvbi1tYWluLi10cmFuc3BhcmVudCAubW9iaWxlbmF2aWdhdGlvbi1tZW51IC5uYXZpZ2F0aW9uLWxpbmsge1xuICBjb2xvcjogIzAwMDtcbn1cbi5uYXZpZ2F0aW9uLW1haW4uLXRyYW5zcGFyZW50IC5tb2JpbGVuYXZpZ2F0aW9uLW1lbnUgLm5hdmlnYXRpb24tbGluayAuYnV0dG9uLXNlY29uZGFyeSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJvcmRlcjogMnB4IHNvbGlkICMwMDlhNWI7XG4gIGNvbG9yOiAjMDA5YTViO1xufVxuLm5hdmlnYXRpb24tbWFpbi4tdHJhbnNwYXJlbnQgLm1vYmlsZW5hdmlnYXRpb24tbWVudSAubmF2aWdhdGlvbi1saW5rIC5idXR0b24tc2Vjb25kYXJ5OmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwOWE1YjtcbiAgY29sb3I6ICNmZmY7XG59XG4ubmF2aWdhdGlvbi1tYWluLi10cmFuc3BhcmVudCAubW9iaWxlbmF2aWdhdGlvbi1tZW51IC5uYXZpZ2F0aW9uLWxpbms6aG92ZXIge1xuICBjb2xvcjogIzAwOWE1Yjtcbn1cbi5uYXZpZ2F0aW9uLW1haW4uLXRyYW5zcGFyZW50IC5tb2JpbGVuYXZpZ2F0aW9uLW1lbnUgLm5hdmlnYXRpb24tbGluayA+IC5pY29uIHN2ZyB7XG4gIGNvbG9yOiAjMDA5YTViO1xufVxuLm5hdmlnYXRpb24tbWFpbiAuemlremFrLWxvZ28td2hpdGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuLm5hdmlnYXRpb24tbWFpbiAuLXJpZ2h0IHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG4ubmF2aWdhdGlvbi1tYWluLi1zY2hvb2xwYWdlIC5uYXZpZ2F0aW9uLW1haW5oZWFkZXIsXG4ubmF2aWdhdGlvbi1tYWluLi1zY2hvb2xwYWdlIC5tb2JpbGVuYXZpZ2F0aW9uLW1haW5oZWFkZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuLm5hdmlnYXRpb24tbWFpbi4tb3ZlcnZpZXcsXG4ubmF2aWdhdGlvbi1tYWluLi1zdGFydHBhZ2UsXG4ubmF2aWdhdGlvbi1tYWluLi1zY2hvb2xwYWdlIHtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi5uYXZpZ2F0aW9uLW1haW4uLW92ZXJ2aWV3IC5tb2JpbGVuYXZpZ2F0aW9uLW1lbnUsXG4ubmF2aWdhdGlvbi1tYWluLi1zdGFydHBhZ2UgLm1vYmlsZW5hdmlnYXRpb24tbWVudSxcbi5uYXZpZ2F0aW9uLW1haW4uLXNjaG9vbHBhZ2UgLm1vYmlsZW5hdmlnYXRpb24tbWVudSB7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgIzljOWI5YjtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM5YzliOWI7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYxLjI1cmVtKSB7XG4gIC5uYXZpZ2F0aW9uLW1haW4ge1xuICAgIHBhZGRpbmc6IDAuNjI1cmVtIDEuMjVyZW0gMC42MjVyZW0gMS44NzVyZW07XG4gIH1cbiAgLm5hdmlnYXRpb24tbWFpbi4tb3ZlcnZpZXcsXG4gIC5uYXZpZ2F0aW9uLW1haW4uLXN0YXJ0cGFnZSxcbiAgLm5hdmlnYXRpb24tbWFpbi4tc2Nob29scGFnZSB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM5YzliOWI7XG4gIH1cbn1cbi5uYXZpZ2F0aW9uLW1haW5oZWFkZXIge1xuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbn1cbi5uYXZpZ2F0aW9uLW1haW5oZWFkZXIgPiAubmF2aWdhdGlvbi1saW5rIHtcbiAgbWFyZ2luLXJpZ2h0OiAxLjVyZW07XG59XG4ubmF2aWdhdGlvbi1tYWluaGVhZGVyID4gYSB7XG4gIGNvbG9yOiAjMjYyNjJiO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MS4yNXJlbSkge1xuICAubmF2aWdhdGlvbi1tYWluaGVhZGVyIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4ubmF2aWdhdGlvbi11bml0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgcGFkZGluZzogMC42MjVyZW0gMS44NzVyZW0gMC42MjVyZW0gMS44NzVyZW07XG4gIGJveC1zaGFkb3c6IDAgMnB4IDhweCAwIHJnYmEoMzgsMzgsNDMsMC4xKTtcbiAgei1pbmRleDogMTA7XG59XG4ubmF2aWdhdGlvbi11bml0IC4tcmlnaHQge1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cbi5uYXZpZ2F0aW9uLXVuaXQgLmJhY2sge1xuICB3aWR0aDogbWluLWNvbnRlbnQ7XG59XG4ubmF2aWdhdGlvbi11bml0IC5zdHVwaWRJRSB7XG4gIGRpc3BsYXk6IC1tcy1ncmlkO1xuICAtbXMtZ3JpZC1jb2x1bW5zOiBtaW4tY29udGVudDtcbn1cbi5uYXZpZ2F0aW9uLXVuaXRoZWFkZXIge1xuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbn1cbi5uYXZpZ2F0aW9uLXVuaXRoZWFkZXIgPiBhIHtcbiAgY29sb3I6ICMyNjI2MmI7XG59XG4ubmF2aWdhdGlvbi11bml0aGVhZGVyID4gLmNsb3NlIHtcbiAgcGFkZGluZy1sZWZ0OiAxLjg3NXJlbTtcbn1cbi5uYXZpZ2F0aW9uLXVuaXRoZWFkZXIgPiAuY2xvc2UgPiBzdmcge1xuICB3aWR0aDogMi41cmVtO1xuICBoZWlnaHQ6IDIuNXJlbTtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDhyZW0pIHtcbiAgLm5hdmlnYXRpb24tdW5pdGhlYWRlciA+IC5kb3dubG9hZCA+IC5kb3dubG9hZHRleHQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgLm5hdmlnYXRpb24tdW5pdGhlYWRlciA+IC5jbG9zZSB7XG4gICAgcGFkZGluZy1sZWZ0OiAxLjI1cmVtO1xuICB9XG59XG4ucHJldmlldy1vdmVydmlldyA+LnN0YXJ0LW1hZ2F6aW5lb3ZlcnZpZXcgPi5lbGVtZW50LWxheW91dCB7XG4gIHBhZGRpbmc6IDA7XG59XG4ucHJldmlldy1wYWdlIC5sZXZlbC1pbWFnZSB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLnByZXZpZXctcGFnZSAubGV2ZWwtaW1hZ2UuLWRlc2t0b3Age1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi5wcmV2aWV3LXBhZ2UgLmxldmVsLWltYWdlLi1tb2JpbGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzMi41cmVtKSB7XG4gIC5wcmV2aWV3LXBhZ2UgLmltYWdlLi1kZXNrdG9wIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIC5wcmV2aWV3LXBhZ2UgLmltYWdlLi1tb2JpbGUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG4ucHJldmlldy1zd2l0Y2gge1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBwYWRkaW5nOiAzLjQzNzVyZW0gMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YyZjhmZDtcbn1cbi5wcmV2aWV3LXN3aXRjaCAudG9nZ2xlIHtcbiAgd2lkdGg6IDY0cHg7XG4gIGhlaWdodDogNDBweDtcbiAgbWFyZ2luOiAwIDE2cHg7XG59XG4ucHJldmlldy1zd2l0Y2ggLnByZXZpZXcsXG4ucHJldmlldy1zd2l0Y2ggLm1hZ2F6aW5lIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBjb2xvcjogIzZiNmI2Yjtcbn1cbi5wcmV2aWV3LXN3aXRjaCAucHJldmlldy4tYWN0aXZlLFxuLnByZXZpZXctc3dpdGNoIC5tYWdhemluZS4tYWN0aXZlIHtcbiAgY29sb3I6ICMwMDlhNWI7XG59XG4ucHJldmlldy1zd2l0Y2ggLnByZXZpZXc6aG92ZXIsXG4ucHJldmlldy1zd2l0Y2ggLm1hZ2F6aW5lOmhvdmVyIHtcbiAgY29sb3I6ICMwMDlhNWI7XG59XG4ucHJldmlldy1zd2l0Y2ggLmNhcnQtY29tcG9uZW50IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuLnByZXZpZXctc3dpdGNoIC5jYXJ0LWNvbXBvbmVudCAuYnV0dG9uIHtcbiAgd2lkdGg6IDE1MHB4O1xuICBmbG9hdDogcmlnaHQ7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ4cmVtKSB7XG4gIC5wcmV2aWV3LXN3aXRjaC5uYXZpZ2F0aW9uLXRleHQge1xuICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIH1cbiAgLnByZXZpZXctc3dpdGNoIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB9XG4gIC5wcmV2aWV3LXN3aXRjaCA+LmVsZW1lbnQtbGF5b3V0IHtcbiAgICB3aWR0aDogdW5zZXQ7XG4gIH1cbiAgLnByZXZpZXctc3dpdGNoIC5jYXJ0LWNvbXBvbmVudCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuQHBhZ2Uge1xuICBtYXJnaW46IDFjbTtcbn1cbkBtZWRpYSBwcmludCB7XG4gIC5wZGYtbGljZW5zZSB7XG4gICAgcGFnZS1icmVhay1hZnRlcjogYWx3YXlzO1xuICB9XG59XG4uc3RhcnQtYXJyb3duYXZpZ2F0aW9uIC5zdmctaWNvbi4tcmlnaHQge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xufVxuLnN0YXJ0LWFycm93bmF2aWdhdGlvbiAucHJldmlvdXMsXG4uc3RhcnQtYXJyb3duYXZpZ2F0aW9uIC5uZXh0IHtcbiAgZGlzcGxheTogbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LXNpemU6IDVyZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogIzAwOWE1Yjtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjEuMjVyZW0pIHtcbiAgLnN0YXJ0LWFycm93bmF2aWdhdGlvbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG4gIC5zdGFydC1hcnJvd25hdmlnYXRpb24gLnByZXZpb3VzLFxuICAuc3RhcnQtYXJyb3duYXZpZ2F0aW9uIC5uZXh0IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwJSwgMTYwcHgpO1xuICB9XG4gIC5zdGFydC1hcnJvd25hdmlnYXRpb24gLnByZXZpb3VzLFxuICAuc3RhcnQtYXJyb3duYXZpZ2F0aW9uIC5uZXh0LFxuICAuc3RhcnQtYXJyb3duYXZpZ2F0aW9uIC5lbGVtZW50cyB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG59XG4uc3RhcnQtbGljZW5zZWluc3RydWN0aW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwOWZlMztcbiAgY29sb3I6ICNmZmY7XG59XG4uc3RhcnQtbGljZW5zZWluc3RydWN0aW9uIC5wLWJpZyxcbi5zdGFydC1saWNlbnNlaW5zdHJ1Y3Rpb24gaDIge1xuICBjb2xvcjogI2ZmZjtcbn1cbi5zdGFydC1saWNlbnNlaW5zdHJ1Y3Rpb24gLnN2Zy1pY29uLmNhcnQge1xuICB3aWR0aDogNC4zNzVyZW07XG4gIGhlaWdodDogNC4wNjI1cmVtO1xufVxuLnN0YXJ0LWxpY2Vuc2VpbnN0cnVjdGlvbiAuc3ZnLWljb24udXJsIHtcbiAgd2lkdGg6IDguNjI1cmVtO1xuICBoZWlnaHQ6IDQuMDYyNXJlbTtcbn1cbi5zdGFydC1saWNlbnNlaW5zdHJ1Y3Rpb24gLnN2Zy1pY29uLmNvZGUge1xuICB3aWR0aDogNC4zNzVyZW07XG4gIGhlaWdodDogNC4wNjI1cmVtO1xufVxuLnN0YXJ0LWxpY2Vuc2VpbnN0cnVjdGlvbiAuc3ZnLWljb24uYm9vayB7XG4gIHdpZHRoOiA0LjM3NXJlbTtcbiAgaGVpZ2h0OiA0LjA2MjVyZW07XG59XG4uc3RhcnQtbGljZW5zZWluc3RydWN0aW9uIC5hcnJvdyB7XG4gIG1hcmdpbi10b3A6IDEuMjVyZW07XG59XG4uc3RhcnQtbGljZW5zZWluc3RydWN0aW9uIC5lbGVtZW50cyB7XG4gIG1hcmdpbi10b3A6IDIuNXJlbTtcbn1cbi5zdGFydC1saWNlbnNlaW5zdHJ1Y3Rpb24gLmVsZW1lbnRzIC5lbGVtZW50IHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLnN0YXJ0LWxpY2Vuc2VpbnN0cnVjdGlvbiAuZWxlbWVudHMgLmVsZW1lbnQgLnRleHQge1xuICBjb2xvcjogI2ZmZjtcbn1cbi5zdGFydC1saWNlbnNlaW5zdHJ1Y3Rpb24gLmNvbnRhaW5lciB7XG4gIHBhZGRpbmc6IDMuNzVyZW0gMXJlbTtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDhyZW0pIHtcbiAgLnN0YXJ0LWxpY2Vuc2VpbnN0cnVjdGlvbiAuZWxlbWVudHMge1xuICAgIG1hcmdpbi10b3A6IDEuODc1cmVtO1xuICB9XG4gIC5zdGFydC1saWNlbnNlaW5zdHJ1Y3Rpb24gLmVsZW1lbnRzIC5lbGVtZW50IHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbiAgLnN0YXJ0LWxpY2Vuc2VpbnN0cnVjdGlvbiAuZWxlbWVudHMgLmFycm93IHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG4gICAgbWFyZ2luLWJvdHRvbTogMS4yNXJlbTtcbiAgfVxuICAuc3RhcnQtbGljZW5zZWluc3RydWN0aW9uIC5lbGVtZW50cyAudXJsLFxuICAuc3RhcnQtbGljZW5zZWluc3RydWN0aW9uIC5lbGVtZW50cyAuY29kZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMi4zMTI1cmVtO1xuICB9XG4gIC5zdGFydC1saWNlbnNlaW5zdHJ1Y3Rpb24gLmNvbnRhaW5lciB7XG4gICAgcGFkZGluZzogMy43NXJlbSAwcmVtO1xuICB9XG59XG4uc3RhcnQtbWFnYXppbmVvdmVydmlldyB7XG4gIG1hcmdpbi1ib3R0b206IDMuNzVyZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5zdGFydC1tYWdhemluZW92ZXJ2aWV3IC5zdGFydC1wb2ludG5hdmlnYXRpb24ge1xuICBib3R0b206IDEwMHB4O1xuICBkaXNwbGF5OiBub25lO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MS4yNXJlbSkge1xuICAuc3RhcnQtbWFnYXppbmVvdmVydmlldyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMi41cmVtO1xuICB9XG4gIC5zdGFydC1tYWdhemluZW92ZXJ2aWV3IC5kZXNjcmlwdGlvbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICAuc3RhcnQtbWFnYXppbmVvdmVydmlldyAuc3RhcnQtcG9pbnRuYXZpZ2F0aW9uIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuICAuc3RhcnQtbWFnYXppbmVvdmVydmlldyAuYnV0dG9uLWNvbnRhaW5lciB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG4gIC5zdGFydC1tYWdhemluZW92ZXJ2aWV3IC5idXR0b25zIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIH1cbiAgLnN0YXJ0LW1hZ2F6aW5lb3ZlcnZpZXcgLmJ1dHRvbnMgPi5vcmRlciB7XG4gICAgbWFyZ2luOiAwIGF1dG8gMC45Mzc1cmVtIGF1dG87XG4gIH1cbn1cbi5zdGFydC1wb2ludG5hdmlnYXRpb24ge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHdpZHRoOiAxMDBweDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMzBweDtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAwJSk7XG59XG4uc3RhcnQtcG9pbnRuYXZpZ2F0aW9uLi1oaWRkZW4ge1xuICBkaXNwbGF5OiBub25lO1xufVxuLnN0YXJ0LXBvaW50bmF2aWdhdGlvbiAucG9pbnQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgbWFyZ2luOiA1cHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgd2lkdGg6IDEwcHg7XG4gIGhlaWdodDogMTBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjBmMTtcbn1cbi5zdGFydC1wb2ludG5hdmlnYXRpb24gLnBvaW50Li1hY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOWM5YjliO1xufVxuLnN0YXJ0LXRlYXNlciB7XG4gIG1hcmdpbi1ib3R0b206IDMuNzVyZW07XG59XG4uc3RhcnQtdGVhc2VyIC5kb3dubG9hZCAuc3ZnLWljb24ge1xuICB3aWR0aDogMTdweDtcbiAgaGVpZ2h0OiAxNHB4O1xufVxuLnN0YXJ0LXRlYXNlciAuZG93bmxvYWQgLnRleHQge1xuICBoZWlnaHQ6IDEuNDM3NXJlbTtcbiAgY29sb3I6ICM2YjZiNmI7XG4gIGZvbnQtZmFtaWx5OiBHbG9iZXItQm9sZDtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBsZXR0ZXItc3BhY2luZzogMC4xMjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjQzNzVyZW07XG59XG4uc3RhcnQtdGVhc2VyIC5kb3dubG9hZCBhOmhvdmVyIC50ZXh0IHtcbiAgY29sb3I6ICMwMDlhNWI7XG59XG4uc3RhcnQtdGVhc2VyIC5jb3ZlciAuaW1hZ2UtY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi5zdGFydC10ZWFzZXIgLmNvdmVyIC5pbWFnZS1jb250YWluZXIgLnByZXZpZXcge1xuICBkaXNwbGF5OiBub25lO1xuICBjb2xvcjogIzAwOWE1YjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgei1pbmRleDogMTA7XG4gIGxlZnQ6IDUwJTtcbiAgdG9wOiA1MCU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5zdGFydC10ZWFzZXIgLmNvdmVyIC5pbWFnZS1jb250YWluZXIgLnByZXZpZXcgLnByZXZpZXctaWNvbiB7XG4gIHdpZHRoOiA2MHB4O1xuICBoZWlnaHQ6IDYwcHg7XG59XG4uc3RhcnQtdGVhc2VyIC5jb3ZlciAuaW1hZ2UtY29udGFpbmVyIC5wcmV2aWV3IC50ZXh0IHtcbiAgY29sb3I6ICMwMDlhNWI7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4uc3RhcnQtdGVhc2VyIC5jb3ZlciAuaW1hZ2UtY29udGFpbmVyIC5pbWFnZSB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLnN0YXJ0LXRlYXNlciAuY292ZXIgLmltYWdlLWNvbnRhaW5lcjpob3ZlciAucHJldmlldyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLnN0YXJ0LXRlYXNlciAuY292ZXIgLmltYWdlLWNvbnRhaW5lcjpob3ZlciAuaW1hZ2Uge1xuICBib3gtc2hhZG93OiAwcHggMnB4IDE2cHggcmdiYSgxMDcsMTA3LDEwNywwLjUpO1xuICBvcGFjaXR5OiAwLjU7XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC4zcywgb3BhY2l0eSAwLjNzO1xufVxuLnN0YXJ0LXRlYXNlciAuZ3JpZC1sYXlvdXQuLWd1dHRlciA+IC5pdGVtLmluZm9zIHtcbiAgcGFkZGluZy1sZWZ0OiAxMDBweDtcbn1cbi5zdGFydC10ZWFzZXIgLmdyaWQtbGF5b3V0Li1ndXR0ZXIgPiAuaXRlbS5pbmZvcyA+IC5kYXRlIHtcbiAgbWFyZ2luLWJvdHRvbTogMC45Mzc1cmVtO1xufVxuLnN0YXJ0LXRlYXNlciAuZ3JpZC1sYXlvdXQuLWd1dHRlciA+IC5pdGVtLmluZm9zID4gLnRpdGxlIHtcbiAgbWFyZ2luLWJvdHRvbTogMC45Mzc1cmVtO1xufVxuLnN0YXJ0LXRlYXNlciAuZ3JpZC1sYXlvdXQuLWd1dHRlciA+IC5pdGVtLmluZm9zID4gLmRlc2NyaXB0aW9uIGEge1xuICBjb2xvcjogIzAwOWE1YjtcbiAgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4uc3RhcnQtdGVhc2VyIC5ncmlkLWxheW91dC4tZ3V0dGVyID4gLml0ZW0uaW5mb3MgPiAuZGVzY3JpcHRpb24gYTpob3ZlciB7XG4gIGNvbG9yOiAjNmI2YjZiO1xufVxuLnN0YXJ0LXRlYXNlciAuZ3JpZC1sYXlvdXQuLWd1dHRlciA+IC5pdGVtLmluZm9zIC5saW5rLWJ1dHRvbjpob3ZlciB7XG4gIGNvbG9yOiAjMDA5YTViO1xufVxuLnN0YXJ0LXRlYXNlciAuZ3JpZC1sYXlvdXQuLWd1dHRlciA+IC5pdGVtLmluZm9zIC5saW5rLWJ1dHRvbiAuc3ZnLWljb24ge1xuICB3aWR0aDogMS40Mzc1cmVtO1xuICBoZWlnaHQ6IDEuNDM3NXJlbTtcbiAgY29sb3I6ICMwMDlhNWI7XG59XG4uc3RhcnQtdGVhc2VyIC5ncmlkLWxheW91dC4tZ3V0dGVyID4gLml0ZW0uaW5mb3MgLmxpbmstYnV0dG9uIC5zdmctaWNvbi4tcmlnaHQge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xufVxuLnN0YXJ0LXRlYXNlciAuZ3JpZC1sYXlvdXQuLWd1dHRlciA+IC5pdGVtLmluZm9zID4uY2FydC1jb21wb25lbnQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAxNTBweDtcbn1cbi5zdGFydC10ZWFzZXIgLmdyaWQtbGF5b3V0Li1ndXR0ZXIgPiAuaXRlbS5pbmZvcyA+LmJ1dHRvbnMgPi5idXR0b24tZ2VuZXJhbCB7XG4gIG1hcmdpbi10b3A6IDEuODc1cmVtO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0OHJlbSkge1xuICAuc3RhcnQtdGVhc2VyIC5jb3ZlciB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG4gIC5zdGFydC10ZWFzZXIgLmNvdmVyIC5pbWFnZS1jb250YWluZXIgLnByZXZpZXcge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgfVxuICAuc3RhcnQtdGVhc2VyIC5jb3ZlciAuaW1hZ2UtY29udGFpbmVyIC5pbWFnZSB7XG4gICAgd2lkdGg6IDgwJTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luLWJvdHRvbTogMC45Mzc1cmVtO1xuICAgIGJveC1zaGFkb3c6IDBweCAycHggMTZweCByZ2JhKDEwNywxMDcsMTA3LDAuNSk7XG4gICAgb3BhY2l0eTogMC41O1xuICB9XG4gIC5zdGFydC10ZWFzZXIgLmdyaWQtbGF5b3V0Li1ndXR0ZXIgPiAuaXRlbS5pbmZvcyB7XG4gICAgcGFkZGluZy1sZWZ0OiAwcHg7XG4gIH1cbn1cbi5zdGFydC10ZXN0aW1vbmlhbGNvbnRhaW5lciB7XG4gIG1hcmdpbi1ib3R0b206IDMuNzVyZW07XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDlmZTM7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDIxLjg3NXJlbTtcbn1cbi5zdGFydC10ZXN0aW1vbmlhbGNvbnRhaW5lciAudGVzdGltb25pYWwge1xuICBvcGFjaXR5OiAxO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDFzO1xufVxuLnN0YXJ0LXRlc3RpbW9uaWFsY29udGFpbmVyIC50ZXN0aW1vbmlhbCAucXVvdGUsXG4uc3RhcnQtdGVzdGltb25pYWxjb250YWluZXIgLnRlc3RpbW9uaWFsIC5hdXRvciB7XG4gIGNvbG9yOiAjZmZmO1xufVxuLnN0YXJ0LXRlc3RpbW9uaWFsY29udGFpbmVyIC50ZXN0aW1vbmlhbCAucXVvdGUgPiBwIHtcbiAgcGFkZGluZy1ib3R0b206IDAuNjI1cmVtO1xuICBkaXNwbGF5OiBpbmxpbmU7XG4gIGNvbG9yOiAjZmZmO1xufVxuLnN0YXJ0LXRlc3RpbW9uaWFsY29udGFpbmVyIC50ZXN0aW1vbmlhbC4taGlkZGVuIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgb3BhY2l0eTogMDtcbn1cbi5zdGFydC10ZXN0aW1vbmlhbGNvbnRhaW5lciAuc3RhcnQtcG9pbnRuYXZpZ2F0aW9uIC5wb2ludCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICM2NmM1ZWY7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2NmM1ZWY7XG59XG4uc3RhcnQtdGVzdGltb25pYWxjb250YWluZXIgLnN0YXJ0LXBvaW50bmF2aWdhdGlvbiAucG9pbnQuLWFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ4cmVtKSB7XG4gIC5zdGFydC10ZXN0aW1vbmlhbGNvbnRhaW5lciB7XG4gICAgbWFyZ2luLWJvdHRvbTogMy4xMjVyZW07XG4gICAgaGVpZ2h0OiAyNXJlbTtcbiAgfVxuICAuc3RhcnQtdGVzdGltb25pYWxjb250YWluZXIgLnRlc3RpbW9uaWFsIC5xdW90ZSA+IHAge1xuICAgIGZvbnQtZmFtaWx5OiAnR2xvYmVyLUJvbGQnO1xuICAgIGZvbnQtc2l6ZTogMS42MjVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDIuMTI1cmVtO1xuICB9XG59XG4uc3RhcnQtemlremFrdGVhc2VyIHtcbiAgbWFyZ2luLWJvdHRvbTogMy43NXJlbTtcbn1cbi5zdGFydC16aWt6YWt0ZWFzZXIgLnRleHQge1xuICBtYXJnaW4tYm90dG9tOiAxLjg3NXJlbTtcbn1cbi5zdGFydC16aWt6YWt0ZWFzZXIgLmltYWdlIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4uc3RhcnQtemlremFrdGVhc2VyIC5zdmctaWNvbiB7XG4gIGNvbG9yOiAjMDA5YTViO1xuICB3aWR0aDogMzBweDtcbiAgaGVpZ2h0OiAzMHB4O1xufVxuLnN0YXJ0LXppa3pha3RlYXNlciAucG9pbnQge1xuICBsaW5lLWhlaWdodDogMDtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzIuNXJlbSkge1xuICAuc3RhcnQtemlremFrdGVhc2VyIHtcbiAgICBtYXJnaW4tYm90dG9tOiAyLjVyZW07XG4gIH1cbn1cbi5pZS1maXhNaW5IZWlnaHQge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuLmllLWZpeE1pbkhlaWdodCAucGFnZSB7XG4gIG1pbi1oZWlnaHQ6IDEwMHZoO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuLmllLWZpeE1pbkhlaWdodCAucGFnZSAuY29udGVudCB7XG4gIGZsZXgtZ3JvdzogMTtcbn1cbi50YXNrLWFsZXJ0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDBweDtcbiAgYm90dG9tOiAwcHg7XG4gIGxlZnQ6IDBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgei1pbmRleDogMjAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLDAuNyk7XG59XG4udGFzay1hbGVydCAuY29udGVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIHdpZHRoOiA1MCU7XG4gIHBhZGRpbmc6IDRyZW07XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMjV2dztcbiAgdG9wOiAxMDBweDtcbn1cbi50YXNrLWFsZXJ0IC5jb250ZW50IC5idXR0b24sXG4udGFzay1hbGVydCAuY29udGVudCAubWVzc2FnZSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzIuNXJlbSkge1xuICAudGFzay1hbGVydCAuY29udGVudCB7XG4gICAgdG9wOiA1MHB4O1xuICAgIHdpZHRoOiA5MCU7XG4gICAgbGVmdDogNXZ3O1xuICAgIHBhZGRpbmc6IDJyZW07XG4gIH1cbn1cbi50YXNrLWNvbnRhaW5lciB7XG4gIHBhZGRpbmctdG9wOiA0LjM3NXJlbTtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkY2VjZGM7XG4gIHBhZGRpbmctdG9wOiA1LjYyNXJlbTtcbiAgcGFkZGluZy1yaWdodDogOC43NXJlbTtcbiAgcGFkZGluZy1ib3R0b206IDMuNzVyZW07XG4gIHBhZGRpbmctbGVmdDogOC43NXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogNXJlbTtcbn1cbi50YXNrLWNvbnRhaW5lciAudGFzay1mb3JtIHtcbiAgbWFyZ2luLXRvcDogNy41cmVtO1xufVxuLnRhc2stY29udGFpbmVyIC5jbG9zZSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUuOTM3NXJlbTtcbiAgcmlnaHQ6IDEuNTYyNXJlbTtcbn1cbi50YXNrLWNvbnRhaW5lciAuY2xvc2UgPiAuc3ZnLWljb24ge1xuICB3aWR0aDogMi41cmVtO1xuICBoZWlnaHQ6IDIuNXJlbTtcbn1cbi50YXNrLWNvbnRhaW5lciAuc2hhcmUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbi10b3A6IDEuODc1cmVtO1xufVxuLnRhc2stY29udGFpbmVyIC5kZXNjcmlwdGlvbixcbi50YXNrLWNvbnRhaW5lciAubGFiZWwge1xuICBtYXJnaW4tdG9wOiAyLjVyZW07XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLnRhc2stY29udGFpbmVyIC50YXNrLXRpdGxlLFxuLnRhc2stY29udGFpbmVyIC50YXNrLWRlc2NyaXB0aW9uIHtcbiAgYm9yZGVyOiBub25lO1xuICBwYWRkaW5nOiAwLjkzNzVyZW07XG4gIHdpZHRoOiAxMDAlO1xufVxuLnRhc2stY29udGFpbmVyIC5pbnB1dGxhYmVsIHtcbiAgcGFkZGluZy1ib3R0b206IDAuMzEyNXJlbTtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDhyZW0pIHtcbiAgLnRhc2stY29udGFpbmVyIHtcbiAgICBwYWRkaW5nOiAxLjI1cmVtIDAuOTM3NXJlbSAyLjVyZW0gMC45Mzc1cmVtO1xuICB9XG4gIC50YXNrLWNvbnRhaW5lciAuZGVzY3JpcHRpb24ge1xuICAgIG1hcmdpbi10b3A6IDMuNzVyZW07XG4gIH1cbiAgLnRhc2stY29udGFpbmVyIC5sYWJlbCB7XG4gICAgbWFyZ2luLXRvcDogMS44NzVyZW07XG4gIH1cbiAgLnRhc2stY29udGFpbmVyIC5zaGFyZSB7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgbWFyZ2luOiAwLjYyNXJlbSBhdXRvO1xuICB9XG59XG4udGFzay1saW5rIHtcbiAgbWFyZ2luOiAwLjYyNXJlbSAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjhmOGY4O1xufVxuLnRhc2stbGluayA+IGEge1xuICBjb2xvcjogIzAwOWE1Yjtcbn1cbi50YXNrLWxpbmsgLmJ1dHRvbiB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuLnRhc2stbGluayAuY29weSB7XG4gIGRpc3BsYXk6IGlubGluZTtcbn1cbi50YXNrLWxpbmsgLmNvcHktbGluayB7XG4gIHdpZHRoOiAxcmVtO1xuICBoZWlnaHQ6IDFyZW07XG4gIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG59XG4udGFzay1tZW51ID4uYWRkIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLnRhc2stbWVudSA+LmFkZC4tZGlzYWJsZWQge1xuICBjb2xvcjogIzgwODA4MDtcbiAgY3Vyc29yOiBhdXRvO1xufVxuLnRhc2stcmVzcG9uc2Uge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMHB4O1xuICBib3R0b206IDBweDtcbiAgbGVmdDogMHB4O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB6LWluZGV4OiAxMDA7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwwLDAsMC43KTtcbiAgcGFkZGluZzogNi4yNXJlbTtcbn1cbi50YXNrLXJlc3BvbnNlIGEuYnJlYWstdGV4dCB7XG4gIGNvbG9yOiAjMDAwO1xufVxuLnRhc2stcmVzcG9uc2UgPi5jb250ZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgcGFkZGluZzogMS4yNXJlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLnRhc2stcmVzcG9uc2UgPi5jb250ZW50ID4uY2xvc2Uge1xuICB0b3A6IDFyZW07XG4gIHJpZ2h0OiAxcmVtO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0OHJlbSkge1xuICAudGFzay1yZXNwb25zZSAudGFzay1saW5rIC5zdmctaWNvbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzMi41cmVtKSB7XG4gIC50YXNrLXJlc3BvbnNlIHtcbiAgICBwYWRkaW5nOiAxLjI1cmVtO1xuICB9XG4gIC50YXNrLXJlc3BvbnNlIC5jb250ZW50IC50YXNrLWxpbmsge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIH1cbiAgLnRhc2stcmVzcG9uc2UgLmNvbnRlbnQgLnRhc2stbGluayAuYnV0dG9uIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbiAgLnRhc2stcmVzcG9uc2UgLmNvbnRlbnQgLnRhc2stbGluayAuc3ZnLWljb24sXG4gIC50YXNrLXJlc3BvbnNlIC5jb250ZW50IC50YXNrLWxpbmsgLmJyZWFrLXRleHQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbi50ZWFjaGVyLWNvbW1lbnQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBwYWRkaW5nLXRvcDogMS44NzVyZW07XG59XG4udGVhY2hlci1jb21tZW50ID4gLmRvd25sb2FkIHtcbiAgZGlzcGxheTogZmxleDtcbn1cbi50ZWFjaGVyLWNvbW1lbnQgPiAuZG93bmxvYWQgPiBzdmcge1xuICBtYXJnaW4tcmlnaHQ6IDFyZW07XG59XG4udW5pdC1pbmZvYm94IHtcbiAgcGFkZGluZzogMC45Mzc1cmVtO1xuICBoZWlnaHQ6IDEyLjYyNXJlbTtcbn1cbi51bml0LWluZm9ib3ggPiAubWV0YSB7XG4gIHBhZGRpbmctYm90dG9tOiAwLjkzNzVyZW07XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG4udW5pdC1pbmZvYm94ID4gLm1ldGEgPi5zbHVnY29kZSB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBjb2xvcjogI2U5NGQ1MTtcbn1cbi51bml0LWluZm9ib3ggPiAubWV0YSA+LnNsdWdjb2RlID4ubnVtYmVyIHtcbiAgY29sb3I6ICMwMDA7XG59XG4udW5pdC1pbmZvYm94ID4gLm1ldGEgPi5wYWdlbnVtYmVyIHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIGNvbG9yOiAjNmI2YjZiO1xufVxuLnVuaXQtbGV2ZWxmaWx0ZXIgPi5kZXNjcmlwdGlvbiB7XG4gIG1hcmdpbi1ib3R0b206IDAuNjI1cmVtO1xufVxuLnVuaXQtbGV2ZWxmaWx0ZXIgPi5kZXNjcmlwdGlvbiBhIHtcbiAgY29sb3I6ICMwMDlhNWI7XG59XG4udW5pdC1sZXZlbGZpbHRlciA+LmRlc2NyaXB0aW9uIGE6aG92ZXIge1xuICBjb2xvcjogIzI2MjYyYjtcbn1cbi51bml0LWxldmVsZmlsdGVyIC5maWx0ZXIge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4udW5pdC1sZXZlbGZpbHRlciAuZmlsdGVyOmhvdmVyIHtcbiAgY29sb3I6ICMwMDlhNWI7XG59XG4udW5pdC1sZXZlbGZpbHRlciAuZmlsdGVyLi1hY3RpdmUgPi5pdGVtIHtcbiAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICMwMDlhNWI7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ4cmVtKSB7XG4gIC51bml0LWxldmVsZmlsdGVyIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4udW5pdC1tZW51IHtcbiAgZGlzcGxheTogaW5saW5lLWdyaWQ7XG4gIGp1c3RpZnktY29udGVudDogZW5kO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0OHJlbSkge1xuICAudW5pdC1tZW51IHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgfVxufVxuLnVuaXQtcGFnZSB7XG4gIG1hcmdpbi1ib3R0b206IDcuNXJlbTtcbn1cbi51bml0LXByZXZpZXcge1xuICBib3gtc2hhZG93OiAwIDJweCA2cHggMCByZ2JhKDEwNywxMDcsMTA3LDAuMik7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMsIGJveC1zaGFkb3cgMC4ycztcbiAgd2lkdGg6IDMxOXB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4udW5pdC1wcmV2aWV3OmhvdmVyIHtcbiAgYm94LXNoYWRvdzogMCAycHggMTZweCAxcHggcmdiYSgxMDcsMTA3LDEwNywwLjMpO1xufVxuLnVuaXQtcHJldmlldzpob3Zlci4tZGlzYWJsZWQge1xuICBib3gtc2hhZG93OiAwIDJweCA2cHggMCByZ2JhKDEwNywxMDcsMTA3LDAuMik7XG4gIHRyYW5zZm9ybTogbm9uZTtcbn1cbi51bml0LXByZXZpZXcuLWVuYWJsZWQge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4udW5pdC1wcmV2aWV3Li1kaXNhYmxlZCA+IC5pbWFnZS1jb250YWluZXIsXG4udW5pdC1wcmV2aWV3Li1kaXNhYmxlZCA+IC5kb3dubG9hZCxcbi51bml0LXByZXZpZXcuLWRpc2FibGVkID4gLnVuaXQtaW5mb2JveCB7XG4gIG9wYWNpdHk6IDAuMjtcbn1cbi51bml0LXByZXZpZXcuLXNlbGVjdGVkIHtcbiAgYm9yZGVyOiAycHggc29saWQgIzAwOWE1Yjtcbn1cbi51bml0LXByZXZpZXcgPi5pbWFnZS1jb250YWluZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4udW5pdC1wcmV2aWV3ID4uaW1hZ2UtY29udGFpbmVyID4gLmltYWdlIHtcbiAgaGVpZ2h0OiAxMS4yNXJlbTtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xufVxuLnVuaXQtcHJldmlldyA+LmltYWdlLWNvbnRhaW5lciA+LnN1YmplY3Qge1xuICB3aWR0aDogNTAlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDgwMDA7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKDUwJSwgLTUwJSk7XG59XG4udW5pdC1wcmV2aWV3ID4gLmRvd25sb2FkIHtcbiAgcGFkZGluZzogMC42MjVyZW0gMC45Mzc1cmVtO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2Y4ZjhmODtcbn1cbi51bml0LXByZXZpZXcgPiAuZG93bmxvYWQuLWRpc2FibGVkIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuLnVuaXQtcHJldmlldyA+IC5kb3dubG9hZC4tZW1wdHkge1xuICBib3JkZXItdG9wOiBub25lO1xuICBtaW4taGVpZ2h0OiAyLjgxMjVyZW07XG4gIG1heC1oZWlnaHQ6IDIuODEyNXJlbTtcbn1cbi51bml0LXByZXZpZXcgPiAuZG93bmxvYWQgPiBhIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbi51bml0LXByZXZpZXcgPi5sb2dpbi1yZXF1aXJlZCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4udW5pdC1wcmV2aWV3ID4ubGljZW5zZS1yZXF1aXJlZCxcbi51bml0LXByZXZpZXcuLWRpc2FibGVkLi1hdXRoID4ubG9naW4tcmVxdWlyZWQge1xuICBkaXNwbGF5OiBub25lO1xufVxuLnVuaXQtcHJldmlldy4tZGlzYWJsZWQgPi5sb2dpbi1yZXF1aXJlZCxcbi51bml0LXByZXZpZXcuLWRpc2FibGVkLi1hdXRoID4ubGljZW5zZS1yZXF1aXJlZCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMHB4O1xuICBsZWZ0OiAwcHg7XG4gIHJpZ2h0OiAwcHg7XG4gIHBhZGRpbmc6IDEuMjVyZW0gMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLnVuaXQtcHJldmlldy4tZGlzYWJsZWQgPi5sb2dpbi1yZXF1aXJlZCA+LnRleHQsXG4udW5pdC1wcmV2aWV3Li1kaXNhYmxlZC4tYXV0aCA+LmxpY2Vuc2UtcmVxdWlyZWQgPi50ZXh0IHtcbiAgbWFyZ2luLWJvdHRvbTogMC45Mzc1cmVtO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MS4yNXJlbSkge1xuICAudW5pdC1wcmV2aWV3IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0OHJlbSkge1xuICAudW5pdC1wcmV2aWV3IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuLnVuaXQtdGVhY2hlcmluZm8ge1xuICBwYWRkaW5nOiAzLjc1cmVtIDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMmY4ZmQ7XG4gIG1hcmdpbi10b3A6IDMuNzVyZW07XG59XG4udW5pdC10ZWFjaGVyaW5mbyA+LnRvZ2dsZSB7XG4gIG1hcmdpbjogMCAxLjI1cmVtO1xuICBwYWRkaW5nOiAwLjYyNXJlbSAwO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzI2MjYyYjtcbn1cbi51bml0LXRlYWNoZXJpbmZvID4gLmNvbnRlbnQge1xuICBwYWRkaW5nOiAxLjI1cmVtO1xufVxuLnVuaXQtdGVhY2hlcmluZm8gPiAuY29udGVudCA+IC50ZWFjaGVyLWRvd25sb2FkIHtcbiAgZGlzcGxheTogZmxleDtcbn1cbi51bml0LXR5cGUge1xuICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG59XG4udW5pdC10eXBlID4gc3ZnIHtcbiAgd2lkdGg6IDIuMTg3NXJlbTtcbiAgaGVpZ2h0OiAyLjE4NzVyZW07XG59XG4udW5pdHBhZ2UtaGVhZGVyIHtcbiAgcGFkZGluZy1ib3R0b206IDEuODc1cmVtO1xuICBwYWRkaW5nLXRvcDogNS42MjVyZW07XG59XG4udW5pdHBhZ2UtaGVhZGVyID4gLnVuaXR0eXBlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICBwYWRkaW5nLXRvcDogMy43NXJlbTtcbn1cbi51bml0cGFnZS1oZWFkZXIgPiAudW5pdHR5cGUgPi5zbHVnY29kZSB7XG4gIGNvbG9yOiAjZTk0ZDUxO1xuICBmb250LWZhbWlseTogJ0dsb2Jlci1FeHRyYS1Cb2xkJztcbn1cbi51bml0cGFnZS1oZWFkZXIgPiAudW5pdHR5cGUgPi5zbHVnY29kZSA+Lm51bWJlciB7XG4gIGNvbG9yOiAjMDAwO1xufVxuLnVuaXRwYWdlLWhlYWRlciA+IC51bml0dHlwZSAucGFnZW51bWJlciB7XG4gIGNvbG9yOiAjNmI2YjZiO1xufVxuLnVuaXRwYWdlLWhlYWRlciA+IC51bml0dHlwZSA+IHN2ZyB7XG4gIHdpZHRoOiAzLjc1cmVtO1xuICBoZWlnaHQ6IDMuNzVyZW07XG59XG4udW5pdHBhZ2UtaGVhZGVyID4gLnRpdGxlIHtcbiAgcGFkZGluZzogMS44NzVyZW0gMDtcbn1cbi51bml0cGFnZS1oZWFkZXIgPiAubWV0YSB7XG4gIHBhZGRpbmc6IDEuMzc1cmVtIDA7XG4gIG1hcmdpbi1ib3R0b206IDEuODc1cmVtO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgIzljOWI5YjtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM5YzliOWI7XG59XG4udW5pdHBhZ2UtaGVhZGVyID4gLmRlc2NyaXB0aW9uIHtcbiAgcGFkZGluZy1ib3R0b206IDEuODc1cmVtO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0OHJlbSkge1xuICAudW5pdHBhZ2UtaGVhZGVyIHtcbiAgICBwYWRkaW5nLXRvcDogMy43NXJlbTtcbiAgfVxufVxuLnVuaXRwYWdlLW1ldGFjb250YWluZXIge1xuICBwYWRkaW5nOiAxLjM3NXJlbSAwO1xuICBtYXJnaW4tYm90dG9tOiAxLjg3NXJlbTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICM5YzliOWI7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjOWM5YjliO1xufVxuLnVuaXRwYWdlLW1ldGFjb250YWluZXIgPiAubGV2ZWxib3gtY29udGFpbmVyIHtcbiAgcGFkZGluZy1yaWdodDogMS44NzVyZW07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG4udW5pdHBhZ2UtbWV0YWNvbnRhaW5lciA+IC5zbHVnIHtcbiAgbWFyZ2luLXJpZ2h0OiAxLjg3NXJlbTtcbiAgYm9yZGVyOiAycHggc29saWQgIzAwOWZlMztcbiAgcGFkZGluZzogMHB4IDVweDtcbiAgYm9yZGVyLXJhZGl1czogNXB4IDE1cHggNXB4IDVweDtcbn1cbi51bml0cGFnZS1tZXRhY29udGFpbmVyID4gLmR1cmF0aW9uIHtcbiAgZGlzcGxheTogZmxleDtcbiAgcGFkZGluZy1yaWdodDogMS44NzVyZW07XG59XG4udW5pdHBhZ2UtbWV0YWNvbnRhaW5lciA+IC5kdXJhdGlvbiA+IHN2ZyB7XG4gIG1hcmdpbi1yaWdodDogMC45Mzc1cmVtO1xufVxuLnVuaXRwYWdlLW1ldGFjb250YWluZXIgPiAuY29tcGV0ZW5jZXMge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuLnVuaXRwYWdlLW1ldGFjb250YWluZXIgPiAuY29tcGV0ZW5jZXMgPiAuY29tcGV0ZW5jZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG1hcmdpbi1yaWdodDogMS41NjI1cmVtO1xufVxuLnVuaXRwYWdlLW1ldGFjb250YWluZXIgPiAuY29tcGV0ZW5jZXMgPiAuY29tcGV0ZW5jZSA+IHN2ZyB7XG4gIG1hcmdpbi1yaWdodDogMC45Mzc1cmVtO1xufVxuLnVuaXRwYWdlLW1ldGFjb250YWluZXIgPiAuY29tcGV0ZW5jZXMgPiAuY29tcGV0ZW5jZSA+IGEge1xuICBjb2xvcjogIzZiNmI2Yjtcbn1cbi51bml0cGFnZS1tZXRhY29udGFpbmVyID4gLmNvbXBldGVuY2VzID4gLmNvbXBldGVuY2U6aG92ZXIgPiBhIHtcbiAgY29sb3I6ICMwMDlhNWI7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ4cmVtKSB7XG4gIC51bml0cGFnZS1tZXRhY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuICAudW5pdHBhZ2UtbWV0YWNvbnRhaW5lciA+Lml0ZW0ge1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIH1cbn1cbi56aWt6YWstbG9nby13aGl0ZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG4uemlremFrLWxvZ28td2hpdGUgPiBpbWcge1xuICBoZWlnaHQ6IDMuMTI1cmVtO1xufVxuLnppa3phay1sb2dvIHtcbiAgZGlzcGxheTogZmxleDtcbn1cbi56aWt6YWstbG9nbyA+IGltZyB7XG4gIGhlaWdodDogMy4xMjVyZW07XG59XG4uaGlkZGVuIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuLmJyZWFrLXRleHQge1xuICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG59XG4uaW5saW5lIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuc3ZnIHBhdGgge1xuICBmaWxsOiBpbmhlcml0O1xufVxuaHRtbCxcbmJvZHkge1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbiIsIi8qIVxuLS0tXG5uYW1lOiBHbG9iYWwgc2V0dGluZ3NcbmNhdGVnb3J5OiBTaGFyZWQvVmFyaWFibGVzXG50ZW1wbGF0ZTogdmFyaWFibGVzXG50YWc6XG4gLSB2YXJpYWJsZXNcbnZhcmlhYmxlczpcbiAtIG5hbWU6IFwidGV4dC1saW5lLWhlaWdodFwiXG4gICBkZXNjcmlwdGlvbjogXCJUaGUgbGluZSBoZWlnaHQgb2YgdGhlIGJvZHlcIlxuICAgZGVmYXVsdDogXCIxLjVyZW1cIlxuIC0gbmFtZTogXCJmb250LWZhbWlseVwiXG4gICBkZXNjcmlwdGlvbjogXCJUaGUgZm9udC1mYW1pbHkgb2YgdGhlIGJvZHlcIlxuICAgZGVmYXVsdDogXCInSGVsdmV0aWNhJywgc2Fucy1zZXJpZlwiXG4gLSBuYW1lOiBcInRleHQtcmVuZGVyaW5nXCJcbiAgIGRlc2NyaXB0aW9uOiBcIlRoZSB0ZXh0LXJlbmRlcmluZyBvZiB0aGUgYm9keVwiXG4gICBkZWZhdWx0OiBcIm9wdGltaXplTGVnaWJpbGl0eVwiXG4gLSBuYW1lOiBcInRyYW5zaXRpb24tZHVyYXRpb25cIlxuICAgZGVzY3JpcHRpb246IFwiVGhlIGR1cmF0aW9uIG9mIHRoZSBzbGlkZSB0cmFuc2l0aW9uc1wiXG4gICBkZWZhdWx0OiBcIjAuNHNcIlxuIC0gbmFtZTogXCJib3JkZXItcmFkaXVzXCJcbiAgIGRlc2NyaXB0aW9uOiBcIlRoZSBkZWZhdWx0IHJhZGl1cyBmb3IgYm9yZGVyc1wiXG4gICBkZWZhdWx0OiBcIjJweFwiXG4tLS1cblxuVGhlc2UgdmFyaWFibGVzIHNldHVwcyBzb21lIGdsb2JhbCB0ZXh0IGZvcm1hdHRpbmcgYW5kIHN0eWxpbmcuXG4qL1xuXG50aGVtZS5zZXR0aW5ncyA9IHtcbiAgdGV4dC1saW5lLWhlaWdodDogcmVtKCAyNHB4ICksXG4gIHRleHQtZm9udDogJ1JvYm90bydcXCwgc2VyaWYsXG4gIGhlYWRpbmctZm9udDogJ1JvYm90bydcXCwgc2VyaWYsXG4gIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHksXG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDAuM3MsXG4gIGJvcmRlci1yYWRpdXM6IDJweCxcbiAgYnJlYWtwb2ludHM6IHtcbiAgICBzbWFsbDogcmVtKCA3NjhweCApLFxuICAgIG1lZGl1bTogcmVtKCA5OTJweCApLFxuICAgIGxhcmdlOiByZW0oIDEyMDBweCApXG4gIH0sXG59XG5cbiIsIi8qXG4tLS1cbm5hbWU6IEdsb2JhbCBSZXNldFxuY2F0ZWdvcnk6IFNoYXJlZFxuLS0tXG5cblRoZSBsZXJuZXR6IGNzcyBsaWJyYXJ5IGhhcyBhIHNldCBvZiByZXNldCBzdHlsZSB0byBoYXZlIHRoZSBzYW1lIGJlaGF2aW91ciBvbiBldmVyeSBicm93c2VyLlxuRnVydGhlcm1vcmUgdGhpcyByZXNldCBzZXRzIHNvbWUgZ2xvYmFsIHZhcmlhYmxlcyBsaWtlOlxuICogYm9keSBmb250LWZhbWlsaWVzXG4gKiBib2R5IGxpbmUtaGVpZ2h0XG4gKiBib2R5IHRleHQtcmVuZGVyaW5nXG4gKiA6cm9vdCBmb250LXNpemUgZm9yIHByb3BlciByZW0gY29udmVyc2lvblxuKi9cblxuXG5cbmh0bWwsIGJvZHksIGRpdiwgc3Bhbiwgb2JqZWN0LCBpZnJhbWUsXG5oMSwgaDIsIGgzLCBoNCwgaDUsIGg2LCBwLCBibG9ja3F1b3RlLCBwcmUsXG5hYmJyLCBhZGRyZXNzLCBjaXRlLCBjb2RlLFxuZGVsLCBkZm4sIGVtLCBpbWcsIGlucywga2JkLCBxLCBzYW1wLFxuc21hbGwsIHN0cm9uZywgc3ViLCBzdXAsIHZhcixcbmIsIGksXG5kbCwgZHQsIGRkLCBvbCwgdWwsIGxpLFxuZmllbGRzZXQsIGZvcm0sIGxhYmVsLCBsZWdlbmQsXG50YWJsZSwgY2FwdGlvbiwgdGJvZHksIHRmb290LCB0aGVhZCwgdHIsIHRoLCB0ZCxcbmFydGljbGUsIGFzaWRlLCBjYW52YXMsIGRldGFpbHMsIGZpZ2NhcHRpb24sIGZpZ3VyZSxcbmZvb3RlciwgaGVhZGVyLCBoZ3JvdXAsIG1lbnUsIG5hdiwgc2VjdGlvbiwgc3VtbWFyeSxcbnRpbWUsIG1hcmssIGF1ZGlvLCB2aWRlbyB7XG5cdG1hcmdpbjowO1xuXHRwYWRkaW5nOjA7XG5cdGJvcmRlcjowO1xuXHRvdXRsaW5lOjA7XG5cdGZvbnQtc2l6ZTppbmhlcml0O1xuXHR2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTtcbn1cblxuOnJvb3Qge1xuXHRmb250LXNpemU6IDE2cHg7XG59XG5cbmh0bWwge1xuXHRmb250LXNpemU6IDEwMCU7XG59XG5cbmJvZHkge1xuXHRsaW5lLWhlaWdodDogdGhlbWUuc2V0dGluZ3MudGV4dC1saW5lLWhlaWdodDtcblx0Y29sb3I6IHRoZW1lLmNvbG9ycy50ZXh0O1xuXHRmb250LWZhbWlseTogdGhlbWUuc2V0dGluZ3MudGV4dC1mb250O1xuXHR0ZXh0LXJlbmRlcmluZzogdGhlbWUuc2V0dGluZ3MudGV4dC1yZW5kZXJpbmc7XG5cdGJhY2tncm91bmQtY29sb3I6IHRoZW1lLmNvbG9ycy5ib2R5O1xuXHQtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbn1cblxuYXJ0aWNsZSxhc2lkZSxkZXRhaWxzLGZpZ2NhcHRpb24sZmlndXJlLFxuZm9vdGVyLGhlYWRlcixoZ3JvdXAsbWVudSxuYXYsc2VjdGlvbiB7XG5cdGRpc3BsYXk6YmxvY2s7XG59XG5cblxuc2VsZWN0IHtcblx0dmVydGljYWwtYWxpZ246bWlkZGxlO1xufVxuXG50ZXh0YXJlYSB7XG5cdHdpZHRoOjEwMCU7XG59XG5cbnRhYmxlIHtcblx0Ym9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlO1xuXHRib3JkZXItc3BhY2luZzowO1xufVxuXG4vL1xuLy8gMS4gQ29ycmVjdCBjb2xvciBub3QgYmVpbmcgaW5oZXJpdGVkLlxuLy8gICAgS25vd24gaXNzdWU6IGFmZmVjdHMgY29sb3Igb2YgZGlzYWJsZWQgZWxlbWVudHMuXG4vLyAyLiBDb3JyZWN0IGZvbnQgcHJvcGVydGllcyBub3QgYmVpbmcgaW5oZXJpdGVkLlxuLy8gMy4gQWRkcmVzcyBtYXJnaW5zIHNldCBkaWZmZXJlbnRseSBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4vL1xuXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBjb2xvcjogaW5oZXJpdDsgLy8gMVxuICBmb250OiBpbmhlcml0OyAvLyAyXG4gIG1hcmdpbjogMDsgLy8gM1xufVxuXG5cbi8vXG4vLyBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgYm9yZGVyIGluIEZpcmVmb3ggNCsuXG4vL1xuXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5pbnB1dDo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlcjogMDtcbiAgcGFkZGluZzogMDtcbn1cblxuXG5cbi8qXG4gKiBOb3JtYWxpemUgdGhlIGJlaGF2aW91ciBvZiBhbGwgYnJvd3NlcnNcbiAqXG4gKiBJbnN0ZWFkIG9mIHNldHRpbmcgYm94LXNpemluZyBmaXggb24gYWxsIGVsZW1lbnRzIHdlIG9ubHkgc2V0IGl0IG9uIHRoZSByb290IGVsZW1lbnRcbiAqIGFuZCB0ZWxsIGFsbCBlbGVtZW50cyB0byBpbmhlcml0IGl0J3MgcHJvcGVydHkgZnJvbSB0aGUgcGFyZW50XG4gKiBUaGF0IHdheSBpdCdzIHBvc3NpYmxlIHRvIG92ZXJ3cml0ZSB0aGUgYm94LXNpemluZyBhbnl3aGVyZSB3aGlsZSBrZWVwaW5nIHByb3BlciBpbmhlcml0YW5jZVxuICovXG5odG1sIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbiosICo6YmVmb3JlLCAqOmFmdGVyIHtcbiAgYm94LXNpemluZzogaW5oZXJpdDtcbn1cbmEge1xuXHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdGNvbG9yOiB0aGVtZS5jb2xvcnMuYWN0aW9uO1xufVxuaW1nIHtcblx0ZGlzcGxheTogYmxvY2s7XG59XG51bCxvbCB7XG5cdG1hcmdpbi1sZWZ0OiByZW0oIDIwcHggKTtcbn1cbiIsIi8qIVxuLS0tXG5uYW1lOiAuYm9yZGVyLWJveFxuY2F0ZWdvcnk6IEJveC9Cb3JkZXJcbnRhZzpcbiAtIGNvbXBvbmVudFxuIC0gYm9yZGVyXG5jb21waWxlOiB0cnVlXG4tLS1cblxuQSBib3ggdG8gY29udHJvbCBib3JkZXJzIG9uIGFsbCBmb3VyIHNpZGVzLlxuXG5gYGBqYWRlXG5kaXYuYm9yZGVyLWJveC4tbGVmdCBTb21lIGRlbW8gY29udGVudFxuYGBgXG5cbmBgYGphZGVcbmRpdi5ib3JkZXItYm94Li1hbGwgU29tZSBkZW1vIGNvbnRlbnRcbmBgYFxuKi9cbi5ib3JkZXItYm94IHtcblxuXHRjb25mID0gdGhlbWUuY29tcG9uZW50cy5ib3JkZXItYm94O1xuXHRcblx0Zm9yIHZhcmlhbnQsIHZhbHVlIGluIGNvbmYge1xuXG4gICAgICAgIGZvciBzaWRlIGluIHRvcCByaWdodCBib3R0b20gbGVmdCB7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIGlmIHZhcmlhbnQgIT0gJ2RlZmF1bHQnIHtcbiAgICAgICAgICAgICAgICAmLi17c2lkZX0te3ZhcmlhbnR9IHtcblx0XHRcdFx0XHRib3JkZXIte3NpZGV9LXN0eWxlOiBzb2xpZDtcbiAgICAgICAgICAgICAgICAgICAge3ZhbHVlfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgJi4te3NpZGV9IHtcblx0XHRcdFx0XHRib3JkZXIte3NpZGV9LXN0eWxlOiBzb2xpZDtcbiAgICAgICAgICAgICAgICAgICAge3ZhbHVlfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gICAgICBcbiAgICAgICAgfVxuXG5cdFx0aWYgdmFyaWFudCAhPSAnZGVmYXVsdCcge1xuXHRcdFx0Ji4tYWxsLXt2YXJpYW50fSB7XG5cdFx0XHRcdGJvcmRlci1zdHlsZTogc29saWQ7XG5cdFx0XHRcdHt2YWx1ZX1cblx0XHRcdH1cblx0XHR9IGVsc2Uge1xuXHRcdFx0Ji4tYWxsIHtcblx0XHRcdFx0Ym9yZGVyLXN0eWxlOiBzb2xpZDtcblx0XHRcdFx0e3ZhbHVlfVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdCYuLXJvdW5kIHtcblx0XHRib3JkZXItcmFkaXVzOiA1MCU7XHRcblx0fVxufSIsIi8qIVxuLS0tXG5uYW1lOiAuY29sb3ItYm94XG5jYXRlZ29yeTogQm94L0NvbG9yXG50YWc6XG4gLSBjb21wb25lbnRcbiAtIGJvcmRlclxuY29tcGlsZTogdHJ1ZVxuLS0tXG5cbkEgYm94IHRvIGNvbnRyb2wgdGhlIGJhY2tncm91bmQgY29sb3IuIEl0IG1ha2VzIGEgdmFyaWFudCBmb3JlYWNoIGNvbG9yIGRlZmluaW9uIGluIHRoZSBmaWxlIGBjb2xvci1ib3gudmFyLnN0eWxgXG5cbmBgYGphZGVcbmRpdi5jb2xvci1ib3guLXdoaXRlKHN0eWxlPVwid2lkdGg6MTAwcHg7aGVpZ2h0OjEwMHB4XCIpXG5gYGBcblxuYGBgamFkZVxuZGl2LmNvbG9yLWJveC4tYWN0aW9uKHN0eWxlPVwid2lkdGg6MTAwcHg7aGVpZ2h0OjEwMHB4XCIpXG5gYGBcbiovXG4uY29sb3ItYm94IHtcbiAgICBcbiAgICBjb25mID0gdGhlbWUuY29tcG9uZW50cy5jb2xvci1ib3guY29sb3JzO1xuXG4gICAgZm9yIGtleSwgdmFsdWUgaW4gY29uZntcbiAgICAgICAgJi4te2tleX17XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YWx1ZTsgICAgXG4gICAgICAgIH1cbiAgICB9XG59IiwiLyohXG4tLS1cbm5hbWU6IC5tYXJnaW4tYm94XG5jYXRlZ29yeTogQm94L01hcmdpblxudGFnOlxuIC0gY29tcG9uZW50XG4gLSBsYXlvdXRcbmNvbXBpbGU6IHRydWVcbi0tLVxuXG5BIGNvbXBvbmVudCB0byBhZGQgbWFyZ2luc1xuXG4jIyBBcHBseWluZyBtYXJnaW5zXG5cblRoZSBlYXNpZXN0IHVzZSBjYXNlIGlzIHRvIHVzZSBzaW1wbGUgYC5tYXJnaW4tYm94IC4tYWxsYCBmb3IgYSBtYXJnaW4gb24gdG9wLCByaWdodCwgYm90dG9tIGFuZCBsZWZ0IHdpdGggZGVmYXVsdCBzaXplIG9yXG5gLi10b3BgLCBgLi1yaWdodGAsIGAuLWJvdHRvbWAgYW5kIGAuLWxlZnRgIGZvciBzcGVjaWZpZWQgc2lkZXMuXG5cbmBgYGphZGVcbmRpdi5tYXJnaW4tYm94Li1hbGxcblx0ZGl2LmFpZ2lzLWRlYnVnIERlZmF1bHQgbWFyZ2luIGFwcGxpZWQgb24gdG9wLCByaWdodCwgYm90dG9tIGFuZCBsZWZ0XG5gYGBcbmBgYGphZGVcbmRpdi5tYXJnaW4tYm94Li1ib3R0b21cblx0ZGl2LmFpZ2lzLWRlYnVnIERlZmF1bHQgbWFyZ2luIGFwcGxpZWQgb24gYm90dG9tXG5gYGBcblxuXG4jIyBWYXJpYW50c1xuXG5UaGUgdmFyaWFudHMgZm9yIHRoZSBtYXJnaW5zIGFyZSBgLi10b3Ate3NpemV9YCwgYC4tcmlnaHQte3NpemV9YCwgYC4tYm90dG9tLXtzaXplfWAgYW5kIGAubGVmdC17c2l6ZX1gIHRvZ2V0aGVyIHdpdGggc2l6ZXMgc21hbGwsIG1lZGl1bSBvciBsYXJnZS5cbkFsbCBzaXplcyBhcmUgZGVmaW5lZCBpbiB0aGUgdmFyaWFibGUgdGhlbWUuY29tcG9uZW50cy5tYXJnaW4tYm94LiBWYWx1ZXMgYXJlIGBzbWFsbGAsIGBtZWRpdW1gLCBgbGFyZ2VgIGFuZCBgYXV0b2BcblxuYGBgamFkZVxuZGl2Lm1hcmdpbi1ib3guLWxlZnQtc21hbGxcbiAgICBkaXYuYWlnaXMtZGVidWcgU21hbGwgbWFyZ2luIGFwcGxpZWQgb24gbGVmdFxuYGBgXG5gYGBqYWRlXG5kaXYubWFyZ2luLWJveC4tcmlnaHQtc21hbGxcbiAgICBkaXYuYWlnaXMtZGVidWcgU21hbGwgbWFyZ2luIGFwcGxpZWQgb24gcmlnaHRcbmBgYFxuYGBgamFkZVxuZGl2Lm1hcmdpbi1ib3guLXRvcC1zbWFsbFxuICAgIGRpdi5haWdpcy1kZWJ1ZyBTbWFsbCBtYXJnaW4gYXBwbGllZCBvbiB0b3BcbmBgYFxuYGBgamFkZVxuZGl2Lm1hcmdpbi1ib3guLWJvdHRvbS1zbWFsbFxuICAgIGRpdi5haWdpcy1kZWJ1ZyBTbWFsbCBtYXJnaW4gYXBwbGllZCBvbiBib3R0b21cbmBgYFxuXG5UaGVyZSBhcmUgYWxzbyBzaG9ydGN1dHMgZm9yIHZlcnRpY2FsIGAuLXYte3NpemV9YCBhbmQgaG9yaXpvbnRhbCBgLi1oLXtzaXplfWAgdG9nZXRoZXIgd2l0aCBzaXplcyBzbWFsbCwgbWVkaXVtIGFuZCBsYXJnZVxuXG5gYGBqYWRlXG5kaXYubWFyZ2luLWJveC4tdi1tZWRpdW1cbiAgICBkaXYuYWlnaXMtZGVidWcgTWVkaXVtIG1hcmdpbiBhcHBsaWVkIG9uIHRvcCBhbmQgYm90dG9tXG5gYGBcbmBgYGphZGVcbmRpdi5tYXJnaW4tYm94Li1oLW1lZGl1bVxuICAgIGRpdi5haWdpcy1kZWJ1ZyBNZWRpdW0gbWFyZ2luIGFwcGxpZWQgb24gcmlnaHQgYW5kIGxlZnRcbmBgYFxuXG4jIyBWYXJpYW50cyBmb3IgYXV0byBtYXJnaW5zXG5cbmBgYGphZGVcbmRpdi5tYXJnaW4tYm94Li1hdXRvLi1oKHN0eWxlPVwid2lkdGg6IDIwMHB4XCIpXG4gICAgZGl2LmFpZ2lzLWRlYnVnIEF1dG8gbWFyZ2luIGFwcGxpZWQgb24gcmlnaHQgYW5kIGxlZnRcbmBgYFxuYGBgamFkZVxuZGl2Lm1hcmdpbi1ib3guLWF1dG8uLXYoc3R5bGU9XCJoZWlnaHQ6IDQ2cHhcIilcbiAgICBkaXYuYWlnaXMtZGVidWcgQXV0byBtYXJnaW4gYXBwbGllZCBvbiB0b3AgYW5kIGJvdHRvbVxuYGBgXG5cbiovXG5cbi5tYXJnaW4tYm94IHtcblxuICAgIGNvbmYgPSB0aGVtZS5jb21wb25lbnRzLm1hcmdpbi1ib3g7XG5cbiAgICBmb3Igc2l6ZSwgdmFsdWUgaW4gY29uZiB7XG5cbiAgICAgICAgZm9yIHNpZGUgaW4gdG9wIHJpZ2h0IGJvdHRvbSBsZWZ0e1xuICAgICAgICAgICAgXG4gICAgICAgICAgICBpZiBzaXplICE9ICdkZWZhdWx0JyB7XG4gICAgICAgICAgICAgICAgJi4te3NpZGV9LXtzaXplfXtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXtzaWRlfTogdmFsdWU7ICAgIFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgJi4te3NpZGV9e1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4te3NpZGV9OiB2YWx1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9ICAgICAgXG4gICAgICAgIH1cblxuICAgICAgICBpZiBzaXplICE9ICdkZWZhdWx0JyB7XG4gICAgICAgICAgICAmLi1oLXtzaXplfXtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogdmFsdWU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiB2YWx1ZTsgICAgXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYuLXYte3NpemV9e1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IHZhbHVlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHZhbHVlOyAgICBcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi4tYWxsLXtzaXplfXtcbiAgICAgICAgICAgICAgICBtYXJnaW46IHZhbHVlIHZhbHVlOyAgICBcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICYuLWh7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IHZhbHVlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogdmFsdWU7ICAgIFxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLi12e1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IHZhbHVlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHZhbHVlOyAgICBcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICYuLWFsbHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IHZhbHVlIHZhbHVlOyAgICBcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICYuLWF1dG97XG5cbiAgICAgICAgJi4tdntcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IGF1dG87ICAgIFxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogYXV0bzsgICAgXG4gICAgICAgIH1cblxuICAgICAgICAmLi1oe1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87ICAgIFxuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvOyAgICBcbiAgICAgICAgfSAgICBcbiAgICB9XG5cbn0iLCIvKiFcbi0tLVxubmFtZTogLnBhZGRpbmctYm94XG5jYXRlZ29yeTogQm94L1BhZGRpbmdcbnRhZzpcbiAtIGNvbXBvbmVudFxuIC0gbGF5b3V0XG5jb21waWxlOiB0cnVlXG4tLS1cblxuQSBzaW1wbGUgY29tcG9uZW50IHRvIGFkZCBwYWRkaW5nc1xuXG4jIyBBcHBseWluZyBwYWRkaW5nc1xuXG5UaGUgZWFzaWVzdCB1c2UgY2FzZSBpcyB0byB1c2Ugc2ltcGxlIGAucGFkZGluZy1ib3ggLi1hbGxgIGZvciBhIHBhZGRpbmcgb24gdG9wLCByaWdodCwgYm90dG9tIGFuZCBsZWZ0IHdpdGggZGVmYXVsdCBzaXplIG9yXG5gLi10b3BgLCBgLi1yaWdodGAsIGAuLWJvdHRvbWAgYW5kIGAuLWxlZnRgIGZvciBzcGVjaWZpZWQgc2lkZXNcblxuYGBgamFkZVxuZGl2LmFpZ2lzLWRlYnVnLnBhZGRpbmctYm94Li1hbGwgRGVmYXV0IHBhZGRpbmcgYXBwbGllZCBvbiB0b3AsIHJpZ2h0LCBib3R0b20gYW5kIGxlZnRcbmBgYFxuYGBgamFkZVxuZGl2LmFpZ2lzLWRlYnVnLnBhZGRpbmctYm94Li1ib3R0b20gRGVmYXV0IHBhZGRpbmcgYXBwbGllZCBvbiBib3R0b21cbmBgYFxuXG4jIyBWYXJpYW50c1xuXG5UaGUgdmFyaWFudHMgZm9yIHRoZSBwYWRkaW5ncyBhcmUgYC4tdG9wLXtzaXplfWAsIGAuLXJpZ2h0LXtzaXplfWAsIGAuLWJvdHRvbS17c2l6ZX1gIGFuZCBgLmxlZnQte3NpemV9YCB0b2dldGhlciB3aXRoIHNpemVzIHNtYWxsLCBtZWRpdW0gb3IgbGFyZ2UuXG5BbGwgc2l6ZXMgYXJlIGRlZmluZWQgaW4gdGhlIHZhcmlhYmxlIHRoZW1lLmNvbXBvbmVudHMucGFkZGluZy1ib3guIFZhbHVlcyBhcmUgYHNtYWxsYCwgYG1lZGl1bWAsIGFuZCBgbGFyZ2VgXG5cbmBgYGphZGVcbmRpdi5haWdpcy1kZWJ1Zy5wYWRkaW5nLWJveC4tbGVmdC1zbWFsbCBTbWFsbCBwYWRkaW5nIGFwcGxpZWQgb24gbGVmdFxuYGBgXG5gYGBqYWRlXG5kaXYuYWlnaXMtZGVidWcucGFkZGluZy1ib3guLXJpZ2h0LXNtYWxsKHN0eWxlPVwidGV4dC1hbGlnbjpyaWdodFwiKSBTbWFsbCBwYWRkaW5nIGFwcGxpZWQgb24gcmlnaHRcbmBgYFxuYGBgamFkZVxuZGl2LmFpZ2lzLWRlYnVnLnBhZGRpbmctYm94Li10b3Atc21hbGwgU21hbGwgcGFkZGluZyBhcHBsaWVkIG9uIHRvcFxuYGBgXG5gYGBqYWRlXG5kaXYuYWlnaXMtZGVidWcucGFkZGluZy1ib3guLWJvdHRvbS1zbWFsbCBTbWFsbCBwYWRkaW5nIGFwcGxpZWQgb24gYm90dG9tXG5gYGBcblxuVGhlcmUgYXJlIGFsc28gc2hvcnRjdXRzIGZvciB2ZXJ0aWNhbCBgLi12LXtzaXplfWAgYW5kIGhvcml6b250YWwgYC4taC17c2l6ZX1gIHRvZ2V0aGVyIHdpdGggc2l6ZXNcblxuYGBgamFkZVxuZGl2LmFpZ2lzLWRlYnVnLnBhZGRpbmctYm94Li12LW1lZGl1bSBNZWRpdW0gcGFkZGluZyBhcHBsaWVkIG9uIHRvcCBhbmQgYm90dG9tXG5gYGBcbmBgYGphZGVcbmRpdi5haWdpcy1kZWJ1Zy5wYWRkaW5nLWJveC4taC1tZWRpdW0oc3R5bGU9XCJ3aWR0aDogMzAwcHhcIikgTWVkaXVtIHBhZGRpbmcgYXBwbGllZCBvbiByaWdodCBhbmQgbGVmdFxuYGBgXG5gYGBqYWRlXG5kaXYuYWlnaXMtZGVidWcucGFkZGluZy1ib3guLWgtbWVkaXVtLi10b3AtbGFyZ2Uoc3R5bGU9XCJ3aWR0aDogNDAwcHhcIikgTWVkaXVtIHBhZGRpbmcgYXBwbGllZCBvbiByaWdodCBhbmQgbGVmdCwgbGFyZ2UgcGFkZGluZyBhcHBsaWVkIG9uIHRvcFxuYGBgXG4qL1xuXG4ucGFkZGluZy1ib3h7XG5cbiAgICBjb25mID0gdGhlbWUuY29tcG9uZW50cy5wYWRkaW5nLWJveDtcblxuICAgIGZvciBzaXplLCB2YWx1ZSBpbiBjb25mIHtcblxuICAgICAgICBmb3Igc2lkZSBpbiB0b3AgcmlnaHQgYm90dG9tIGxlZnR7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIGlmIHNpemUgIT0gJ2RlZmF1bHQnIHtcbiAgICAgICAgICAgICAgICAmLi17c2lkZX0te3NpemV9e1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXtzaWRlfTogdmFsdWU7ICAgIFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgJi4te3NpZGV9e1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXtzaWRlfTogdmFsdWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSAgICAgIFxuICAgICAgICB9XG5cbiAgICAgICAgaWYgc2l6ZSAhPSAnZGVmYXVsdCcge1xuICAgICAgICAgICAgJi4taC17c2l6ZX17XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiB2YWx1ZTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiB2YWx1ZTsgICAgXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYuLXYte3NpemV9e1xuICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiB2YWx1ZTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogdmFsdWU7ICAgIFxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLi1hbGwte3NpemV9e1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IHZhbHVlIHZhbHVlOyAgICBcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICYuLWh7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiB2YWx1ZTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiB2YWx1ZTsgICAgXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYuLXZ7XG4gICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IHZhbHVlO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiB2YWx1ZTsgICAgXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmLi1hbGx7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogdmFsdWUgdmFsdWU7ICAgIFxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi4tZ3V0dGVyIHtcbiAgICAgICAgZ3V0dGVyID0gdGhlbWUuY29tcG9uZW50cy5ncmlkLWxheW91dC5ndXR0ZXI7XG4gICAgICAgIHBhZGRpbmc6ICggZ3V0dGVyWzBdIC8gMiApICggZ3V0dGVyWzBdIC8gMiApOyAgICBcbiAgICB9XG59IiwiLyohXG4tLS1cbm5hbWU6IC5zaGFkb3ctYm94XG5jYXRlZ29yeTogQm94L1NoYWRvd1xudGFnOlxuIC0gY29tcG9uZW50XG4gLSBzaGFkb3dcbiAtIGhlbHBlclxuY29tcGlsZTogdHJ1ZVxuLS0tXG5cbkEgYm94IHRvIGNvbnRyb2wgYm94LXNoYWRvd3Mgd2l0aCBkaWZmZXJlbnQgdmFyaWFudHNcblxuIyMgRGVmYXVsdCB2YXJpYW50c1xuYGBgamFkZVxuZGl2LnNoYWRvdy1ib3ggRGVtbyBjb250ZW50XG5kaXYuc2hhZG93LWJveC4taW5zZXQgRGVtbyBjb250ZW50XG5kaXYuc2hhZG93LWJveC4temVybyBVc2UgemVybyBzaGFkb3cgaW4gYW5pbWF0aW9uc1xuYGBgXG4qL1xuLnNoYWRvdy1ib3gge1xuXHRcblx0Y29uZiA9IHRoZW1lLmNvbXBvbmVudHMuc2hhZG93LWJveDtcblxuXHRmb3IgbmFtZSwgdmFsdWUgaW4gY29uZiB7XG5cdFx0aWYgbmFtZSAhPSAnZGVmYXVsdCcge1xuICAgICAgICAgICAgJi4te25hbWV9IHtcbiAgICAgICAgICAgICAgICB7dmFsdWV9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG5cdFx0XHR7dmFsdWV9XG5cdFx0fVxuXHR9XG59IiwiLyohXG4tLS1cbm5hbWU6IC50cmFuc2Zvcm0tYm94XG5jYXRlZ29yeTogQm94L1RyYW5zZm9ybVxudGFnOlxuIC0gY29tcG9uZW50XG4gLSB0cmFuZm9ybVxuIC0gaGVscGVyXG5jb21waWxlOiB0cnVlXG4tLS1cblxuQSBib3ggdG8gY29udHJvbCBjb21tb24gdHJhbnNmb3JtYXRpb25zXG5cbiMjIFJvdGF0ZVxuYGBgamFkZVxuZGl2LnRyYW5zZm9ybS1ib3guLXJvdDkwIFNvbWUgZGVtbyBjb250ZW50XG5kaXYudHJhbnNmb3JtLWJveC4tcm90MTgwIFNvbWUgZGVtbyBjb250ZW50XG5kaXYudHJhbnNmb3JtLWJveC4tcm90MjcwIFNvbWUgZGVtbyBjb250ZW50XG5gYGBcblxuIyMgRmxpcFxuYGBgamFkZVxuZGl2LnRyYW5zZm9ybS1ib3guLWZsaXBYIFNvbWUgZGVtbyBjb250ZW50XG5kaXYudHJhbnNmb3JtLWJveC4tZmxpcFkgU29tZSBkZW1vIGNvbnRlbnRcbmBgYFxuKi9cbi50cmFuc2Zvcm0tYm94IHtcblxuXHRjb25mID0gdGhlbWUuY29tcG9uZW50cy50cmFuc2Zvcm0tYm94O1xuXG5cdGZvciBuYW1lLCB2YWx1ZSBpbiBjb25mIHtcblx0XHQmLi17bmFtZX0ge1xuXHRcdFx0e3ZhbHVlfVxuXHRcdH1cblx0fVxuXG59IiwiLyohXG4tLS1cbm5hbWU6IC5idXR0b24tc3R5bGVcbmNhdGVnb3J5OiBDb21wb25lbnRzL0J1dHRvblxudGFnOlxuIC0gY29tcG9uZW50XG4gLSBidXR0b25cbmNvbXBpbGU6IHRydWVcbi0tLVxuXG5BIGJ1dHRvbiBjb21wb25lbnQgYXMgYSBiYXNlIGZvciBkaWZmZXJlbnQgYnV0dG9uIHZhcmlhbnRzIGRlZmluZWQgaW4gaXRzIGNvbmZpZ3VyYXRpb24uXG5cbmBgYGphZGVcbmJ1dHRvbi5idXR0b24tc3R5bGUuLW1haW4gQWN0aW9uXG5gYGBcbiovXG4uYnV0dG9uLXN0eWxlIHtcblxuXHRhcHBlYXJhbmNlOiBub25lO1xuXHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblx0Ym9yZGVyOiBub25lO1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0b3V0bGluZTogbm9uZTtcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuXHRkaXNwbGF5OiBmbGV4O1xuXHRhbGlnbi1pdGVtczogY2VudGVyO1xuXG5cdGZvciBuYW1lLCB2YWx1ZSBpbiB0aGVtZS5jb21wb25lbnRzLmJ1dHRvbi1zdHlsZSB7XG5cdFxuXHRcdCYuLXtuYW1lfSB7XG5cdFx0XHR7dmFsdWV9XG5cdFx0fVxuXHR9XG59IiwiLyohXG4tLS1cbm5hbWU6IC5kcm9wLWRvd24tbWVudVxuY2F0ZWdvcnk6IERyb3BEb3duXG50YWc6XG4gLSBjb21wb25lbnRcbiAtIGRyb3Bkb3duXG5jb21waWxlOiB0cnVlXG4tLS1cblxuVGhpcyBzdHlsZXMgYSBtZW51IGluc2lkZSBhIC5kcm9wLWRvd24uXG5cbmBgYGphZGVcbmRpdi5kcm9wLWRvd24tbWVudVxuXHRkaXYuaXRlbSBNZW51IDFcblx0ZGl2Lml0ZW0gTWVudSAyXG5cdGRpdi5pdGVtIE1lbnUgM1xuYGBgXG5cblVzZWQgaW4gY29tYmluYXRpb24gd2l0aCB0aGUgLmRyb3AtZG93biBpdHNlbGZcbmBgYGphZGVcbmRpdi5kcm9wLWRvd24uLW9wZW5cblx0ZGl2LnRvZ2dsZS5haWdpcy1kZWJ1ZyBUb2dnbGVcblx0ZGl2LmNvbnRlbnQuZHJvcC1kb3duLW1lbnVcblx0XHRkaXYuaXRlbSBNZW51IDFcblx0XHRkaXYuaXRlbSBNZW51IDJcblx0XHRkaXYuaXRlbSBNZW51IDNcbmBgYFxuXG4qL1xuLmRyb3AtZG93bi1tZW51IHtcblxuXHRib3gtc2hhZG93OiAwcHggMXB4IDZweCAwcHggcmdiYSgwLDAsMCwwLjE3KTtcblx0Ym9yZGVyOiAxcHggc29saWQgdGhlbWUuY29sb3JzLmxpbmU7XG5cdGJvcmRlci10b3A6IG5vbmU7XG5cblx0PiAuaXRlbSB7XG5cdFx0JiArIC5pdGVtIHtcblx0XHRcdGJvcmRlci10b3A6IDFweCBzb2xpZCB0aGVtZS5jb2xvcnMubGluZTtcblx0XHR9XG5cdH1cbn0iLCIvKiFcbi0tLVxubmFtZTogLmRyb3AtZG93blxuY2F0ZWdvcnk6IERyb3BEb3duXG50YWc6XG4gLSBjb21wb25lbnRcbiAtIGRyb3Bkb3duXG5jb21waWxlOiB0cnVlXG4tLS1cblxuVGhpcyBkcm9wZG93biBoYXMgdGhlIHNpbXBsZSBtZWNoYW5pc20gdG8gb3BlbiBhbmQgY2xvc2UgYSBkcm9wZG93biBjb250ZW50LlxuXG5UcmlnZ2VyIHdpdGggbW91c2VvdmVyIGJ5IGFkZGluZyBgLi1ob3ZlcmAgdmFyaWFudFxuXG5UcmlnZ2VyIHdpdGgganMgYnkgYWRkaW5nIGAuLW9wZW5gIHZhcmlhbnQgXG5cbkNsb3NlZCBEcm9wZG93blxuYGBgamFkZVxuZGl2LmRyb3AtZG93blxuXHRkaXYudG9nZ2xlLmFpZ2lzLWRlYnVnIFRvZ2dsZVxuXHRkaXYuY29udGVudCBEcm9wZG93biBjb250ZW50XG5gYGBcbiMjIFZhcmlhbnRzXG5cblZhcmlhbnRzIGAuLXRvcGAsIGAuLWJvdHRvbWAsIGAuLWxlZnRgIGFuZCBgLi1yaWdodGAgY2FuIGJlIGNvbWJpbmVkXG5cbkJvdHRvbSBsZWZ0XG5gYGBqYWRlXG5kaXYuZHJvcC1kb3duLi1ob3Zlci4tYm90dG9tLi1sZWZ0XG5cdGRpdi50b2dnbGUuYWlnaXMtZGVidWcgVG9nZ2xlXG5cdGRpdi5jb250ZW50IERyb3Bkb3duIGNvbnRlbnRcbmBgYFxuXG5Cb3R0b20gcmlnaHRcbmBgYGphZGVcbmRpdi5kcm9wLWRvd24uLWhvdmVyLi1ib3R0b20uLXJpZ2h0XG5cdGRpdi50b2dnbGUuYWlnaXMtZGVidWcgVG9nZ2xlXG5cdGRpdi5jb250ZW50IERyb3Bkb3duIGNvbnRlbnRcbmBgYFxuXG5Ub3AgcmlnaHRcbmBgYGphZGVcbmRpdi5kcm9wLWRvd24uLWhvdmVyLi10b3AuLXJpZ2h0XG5cdGRpdi50b2dnbGUuYWlnaXMtZGVidWcgVG9nZ2xlXG5cdGRpdi5jb250ZW50IERyb3Bkb3duIGNvbnRlbnRcbmBgYFxuXG5Ub3AgbGVmdFxuYGBgamFkZVxuZGl2LmRyb3AtZG93bi4taG92ZXIuLXRvcC4tbGVmdFxuXHRkaXYudG9nZ2xlLmFpZ2lzLWRlYnVnIFRvZ2dsZVxuXHRkaXYuY29udGVudCBEcm9wZG93biBjb250ZW50XG5gYGBcbiMjIEFzaWRlXG5cblRoZXJlIGlzIGFuIGAuLWFzaWRlYCB2YXJpYW50IHRvIG9wZW4gY29udGVudCBhc2lkZVxuXG5Ub3AgbGVmdCBhc2lkZVxuYGBgamFkZVxuZGl2LmRyb3AtZG93bi4taG92ZXIuLXRvcC4tbGVmdC4tYXNpZGUoc3R5bGU9XCJsZWZ0OjIwMHB4O3dpZHRoOjUwJVwiKVxuXHRkaXYudG9nZ2xlLmFpZ2lzLWRlYnVnIFRvZ2dsZVxuXHRkaXYuY29udGVudCBEcm9wZG93biBjb250ZW50XG5gYGBcblxuVG9wIHJpZ2h0IGFzaWRlXG5gYGBqYWRlXG5kaXYuZHJvcC1kb3duLi1ob3Zlci4tdG9wLi1yaWdodC4tYXNpZGUoc3R5bGU9XCJ3aWR0aDo1MCVcIilcblx0ZGl2LnRvZ2dsZS5haWdpcy1kZWJ1ZyBUb2dnbGVcblx0ZGl2LmNvbnRlbnQgRHJvcGRvd24gY29udGVudFxuYGBgXG4jIyBSZWxhdGl2ZSBjb250ZW50XG5cblRoZXJlIGlzIGEgdmFyaWFudCBmb3Igb3BlbmluZyB0aGUgY29udGVudCByZWxhdGl2ZSBpbnN0ZWFkIG9mIGFic29sdXRlXG5cblJlbGF0aXZlXG5gYGBqYWRlXG5kaXYuZHJvcC1kb3duLi1ob3Zlci4tcmVsYXRpdmUoc3R5bGU9XCJ3aWR0aDo1MCVcIilcblx0ZGl2LnRvZ2dsZS5haWdpcy1kZWJ1ZyBUb2dnbGVcblx0ZGl2LmNvbnRlbnQgRHJvcGRvd24gY29udGVudFxuYGBgXG5cbkpTIFRyaWdnZXJcbmBgYGphZGVcbmRpdi5kcm9wLWRvd24uLW9wZW4uLWJvdHRvbS4tbGVmdFxuXHRkaXYudG9nZ2xlLmFpZ2lzLWRlYnVnIFRvZ2dsZVxuXHRkaXYuY29udGVudCBEcm9wZG93biBjb250ZW50XG5gYGBcblxuIyMgRG8gbm90IHdyYXAgY29udGVudFxuXG5BIHZhcmlhbnQgcHJldmVudGluZyB0aGUgY29udGVudCBmcm9tIHdyYXBwaW5nXG5cblxuYGBgamFkZVxuZGl2LmRyb3AtZG93bi4taG92ZXIuLW5vd3JhcFxuXHRkaXYudG9nZ2xlLmFpZ2lzLWRlYnVnIFRvZ2dsZVxuXHRkaXYuY29udGVudCBEcm9wZG93biBjb250ZW50IHdpdGggc29tZSB3aGl0ZXNwYWNlc1xuYGBgXG5cbiovXG4uZHJvcC1kb3duIHtcblxuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0Y3Vyc29yOiBwb2ludGVyXG5cblx0Ji4tb3BlbiA+IC5jb250ZW50IHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0fVxuXG5cdCYuLWhvdmVyOmhvdmVyID4gLmNvbnRlbnR7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdH1cblxuXHQmLi10b3AgPiAuY29udGVudCB7XG5cdFx0Ym90dG9tOiAxMDAlO1xuXHR9XG5cblx0Ji4tYm90dG9tID4gLmNvbnRlbnQge1xuXHRcdHRvcDogMTAwJTtcblx0fVxuXG5cdCYuLWxlZnQgPiAuY29udGVudCB7XG5cdFx0bGVmdDogMDtcblx0fVxuXG5cdCYuLXRvcC4tbGVmdC4tYXNpZGUgPiAuY29udGVudCB7XG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGUoIC0xMDAlLCAxMDAlICk7XG5cdH1cblxuXHQmLi1yaWdodCA+IC5jb250ZW50IHtcblx0XHRyaWdodDogMDtcblx0fVxuXG5cdCYuLXRvcC4tcmlnaHQuLWFzaWRlID4gLmNvbnRlbnQge1xuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlKCAxMDAlLCAxMDAlICk7XG5cdH1cblxuXHQmLi1yZWxhdGl2ZXtcblx0XHQ+IC5jb250ZW50IHtcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHR9XG5cdH1cblxuXHQmLi1ub3dyYXAge1xuXHRcdD4gLmNvbnRlbnQge1xuXHRcdFx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0XHR9XG5cdH1cblxuXHQ+IC50b2dnbGUge1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0fVxuXG5cdD4gLmNvbnRlbnQge1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR6LWluZGV4OiAxMDAwO1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cbn0iLCIuc3ZnLWljb24ge1xuXG5cdGZpbGw6IGN1cnJlbnRDb2xvcjtcblx0ZGlzcGxheTogYmxvY2s7XG5cblx0Ji4taW5saW5lIHtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdH1cblxuXHRmb3Igc2l6ZSwgdmFsdWUgaW4gdGhlbWUuY29tcG9uZW50cy5zdmctaWNvbiB7XG5cdFx0XG5cdFx0aWYoIHNpemUgIT0gJ2RlZmF1bHQnICkge1xuXHRcdFx0Ji4te3NpemV9IHtcblx0XHRcdFx0e3ZhbHVlfVx0XG5cdFx0XHR9XG5cdFx0fSBlbHNlIHtcblx0XHRcdHt2YWx1ZX1cblx0XHR9XG5cdH1cbn1cbiIsIi8qIVxuLS0tXG5uYW1lOiAuYWJzLWxheW91dFxuY2F0ZWdvcnk6IExheW91dC9BYnNvbHV0ZVxudGFnOlxuIC0gY29tcG9uZW50XG4gLSBsYXlvdXRcbmNvbXBpbGU6IHRydWVcbi0tLVxuXG5BIHNpbXBsZSBjb21wb25lbnQgdG8gcG9zaXRpb24gYW4gZWxlbWVudCBhYnNvbHV0ZS4gRGVmYXVsdCBpcyB0b3AsIGxlZnRcblxuIyMgVmFyaWFudHNcblxuVGhlIHZhcmlhbnRzIGZvciB0aGUgdmVydGljYWwgcG9zaXRpb25pbmcgYXJlIGAuLXRvcGAsIGAuLXZjZW50ZXJgIGFuZCBgLi1ib3R0b21gLlxuVGhlIHZhcmlhbnRzIGZvciB0aGUgaG9yaXpvbnRhbCBwb3NpdGlvbmluZyBhcmUgYC4tcmlnaHRgLCBgLi1oY2VudGVyYCBhbmQgYC4tbGVmdGAuXG5BZGRpdGluYWxseSB0aGUgYC1jZW50ZXJgIHZhcmlhbnQgd2lsbCBjZW50ZXIgaG9yaXpvbnRhbCBhbmQgdmVydGljYWwuXG5WYXJpYW50cyB0byBzdHJldGNoIGFuIGl0ZW0gdG8gaXRzIGZ1bGwgd2lkdGgvaGVpZ2h0IGNhbiBiZSBkaW5lIHdpdGggYC5pdGVtLi1zdHJldGNoYC5cbkluIHNvbWUgc2l0dWF0aW9ucyB0aGUgYWJzLWxheW91dCBpdHNlbGYgbmVlZHMgdG8gc3RyZXRjaCBzbyB1c2UgdGhlIHN0cmV0Y2ggdmFyaWFudCBvbiB0aGUgY29tcG9uZW50LiBgLmFicy1sYXlvdXQuLXN0cmV0Y2hgIFxuXG5gYGBqYWRlXG5kaXYuYWJzLWxheW91dChzdHlsZT1cIndpZHRoOiAxMDAlOyBoZWlnaHQ6IDUwcHhcIilcbiAgICBkaXYuYWlnaXMtZGVidWcuaXRlbS4tY2VudGVyXG5gYGBcbmBgYGphZGVcbmRpdi5hYnMtbGF5b3V0KHN0eWxlPVwid2lkdGg6IDEwMCU7IGhlaWdodDogNTBweFwiKVxuICAgIGRpdi5haWdpcy1kZWJ1Zy5pdGVtLi10b3AuLWhjZW50ZXJcbmBgYFxuYGBgamFkZVxuZGl2LmFicy1sYXlvdXQoc3R5bGU9XCJ3aWR0aDogMTAwJTsgaGVpZ2h0OiA1MHB4XCIpXG4gICAgZGl2LmFpZ2lzLWRlYnVnLml0ZW0uLXRvcC4tcmlnaHRcbmBgYFxuYGBgamFkZVxuZGl2LmFicy1sYXlvdXQoc3R5bGU9XCJ3aWR0aDogMTAwJTsgaGVpZ2h0OiA1MHB4XCIpXG4gICAgZGl2LmFpZ2lzLWRlYnVnLml0ZW0uLXJpZ2h0Li12Y2VudGVyXG5gYGBcbmBgYGphZGVcbmRpdi5hYnMtbGF5b3V0KHN0eWxlPVwid2lkdGg6IDEwMCU7IGhlaWdodDogNTBweFwiKVxuICAgIGRpdi5haWdpcy1kZWJ1Zy5pdGVtLi1yaWdodC4tYm90dG9tXG5gYGBcbmBgYGphZGVcbmRpdi5hYnMtbGF5b3V0KHN0eWxlPVwid2lkdGg6IDEwMCU7IGhlaWdodDogNTBweFwiKVxuICAgIGRpdi5haWdpcy1kZWJ1Zy5pdGVtLi1ib3R0b20uLWhjZW50ZXJcbmBgYFxuYGBgamFkZVxuZGl2LmFicy1sYXlvdXQoc3R5bGU9XCJ3aWR0aDogMTAwJTsgaGVpZ2h0OiA1MHB4XCIpXG4gICAgZGl2LmFpZ2lzLWRlYnVnLml0ZW0uLWJvdHRvbS4tbGVmdFxuYGBgXG5gYGBqYWRlXG5kaXYuYWJzLWxheW91dChzdHlsZT1cIndpZHRoOiAxMDAlOyBoZWlnaHQ6IDUwcHhcIilcbiAgICBkaXYuYWlnaXMtZGVidWcuaXRlbS4tbGVmdC4tdmNlbnRlclxuYGBgXG5gYGBqYWRlXG5kaXYuYWJzLWxheW91dChzdHlsZT1cIndpZHRoOiAxMDAlOyBoZWlnaHQ6IDUwcHhcIilcbiAgICBkaXYuYWlnaXMtZGVidWcuaXRlbS4tbGVmdC4tdG9wXG5gYGBcbmBgYGphZGVcbmRpdi5hYnMtbGF5b3V0KHN0eWxlPVwid2lkdGg6IDEwMCU7IGhlaWdodDogNTBweFwiKVxuICAgIGRpdi5haWdpcy1kZWJ1Zy5pdGVtLi1zdHJldGNoXG5gYGBcblxuIyMgWi1JbmRleFxuXG5FdmVyeSBpdGVtIGNhbiBjb250cm9sbCBpdHMgeiBpbmRleCB3aXRoIHRoZSBgLi16e2l9YHZhcmlhbnRzLlxuYGBgamFkZVxuZGl2LmFicy1sYXlvdXQoc3R5bGU9XCJ3aWR0aDogMTAwJTsgaGVpZ2h0OiA1MHB4XCIpXG4gICAgZGl2LmFpZ2lzLWRlYnVnLml0ZW0uLXRvcC4tbGVmdC4tejFcbiAgICBkaXYuYWlnaXMtZGVidWcuaXRlbS4tdG9wLi1sZWZ0Li16MlxuYGBgXG5cbiovXG5cbi5hYnMtbGF5b3V0e1xuICAgIFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICYuLXN0cmV0Y2gge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cblxuICAgID4gLml0ZW0ge1xuXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAmLi10b3B7XG4gICAgICAgICAgICB0b3A6IDA7ICAgIFxuICAgICAgICB9XG5cbiAgICAgICAgJi4tcmlnaHR7XG4gICAgICAgICAgICByaWdodDogMDsgICAgXG4gICAgICAgIH1cblxuICAgICAgICAmLi1ib3R0b217XG4gICAgICAgICAgICBib3R0b206IDA7ICAgIFxuICAgICAgICB9XG5cbiAgICAgICAgJi4tbGVmdHtcbiAgICAgICAgICAgIGxlZnQ6IDA7ICAgIFxuICAgICAgICB9XG5cbiAgICAgICAgJi4tdmNlbnRlcntcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKCAtNTAlICk7ICAgIFxuICAgICAgICB9XG5cbiAgICAgICAgJi4taGNlbnRlcntcbiAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCggLTUwJSApOyAgICBcbiAgICAgICAgfVxuXG4gICAgICAgICYuLWNlbnRlciB7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKCAtNTAlLCAtNTAlICk7ICAgIFxuICAgICAgICB9XG5cbiAgICAgICAgJi4tc3RyZXRjaCB7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgaSBpbiAxLi4xMCB7XG4gICAgICAgICAgICAmLi16e2l9IHtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiBpOyAgICBcbiAgICAgICAgICAgIH0gICAgXG4gICAgICAgIH1cbiAgICB9XG59IiwiLyohXG4tLS1cbm5hbWU6IC5maXhlZC1sYXlvdXRcbmNhdGVnb3J5OiBMYXlvdXQvRml4ZWRcbnRhZzpcbiAtIGNvbnRhaW5lclxuLS0tXG5cbkZpeGVkIGNvbnRhaW5lclxuWW91IGNhbiBwb3NpdGlvbiB0aGUgY29udGFpbmVyIHdpdGggdGhlIGRpZmZlcmVudCB2YXJpYW50cyBgLi10b3BgLCBgLi1ib3R0b21gLCBgLi1sZWZ0YCwgYC4tcmlnaHRgLlxuVG8gc3BhbiBmdWxsIHdpZHRoIC8gaGVpZ2h0IHVzZSBgLi1sZWZ0YCAmIGAuLXJpZ2h0YCAvIGAuLXRvcGAgJiBgLi1ib3R0b21gXG5cbkZpeGVkIHRvcCBhbmQgZnVsbCB3aWR0aFxuXG5gYGBqYWRlXG5kaXYuZml4ZWQtbGF5b3V0Li10b3AuLWxlZnQuLXJpZ2h0LmFpZ2lzLWRlYnVnIHRvcCBsZWZ0IGZ1bGx3aWR0aFxuICAgIFxuYGBgXG5cbkZpeGVkIHJpZ2h0IGFuZCBmdWxsIGhlaWdodFxuXG5gYGBqYWRlXG5kaXYuZml4ZWQtbGF5b3V0Li10b3AuLWJvdHRvbS4tcmlnaHQuYWlnaXMtZGVidWcgdG9wIHJpZ2h0IGZ1bGxoZWlnaHRcbiAgICBcbmBgYFxuXG4qL1xuXG4uZml4ZWQtbGF5b3V0IHtcblx0XG4gICAgcG9zaXRpb246Zml4ZWQ7XG5cbiAgICAmLi10b3B7XG4gICAgICAgIHRvcDogMDtcbiAgICB9XG5cbiAgICAmLi1ib3R0b217XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICB9XG5cbiAgICAmLi1sZWZ0e1xuICAgICAgICBsZWZ0OiAwO1xuICAgIH1cblxuICAgICYuLXJpZ2h0e1xuICAgICAgICByaWdodDogMDtcbiAgICB9XG59IiwiLyohXG4tLS1cbm5hbWU6IC5maXhlZC1wYWdlLWxheW91dFxuY2F0ZWdvcnk6IExheW91dC9GaXhlZCBQYWdlXG50YWc6XG4gLSBjb21wb25lbnRcbiAtIHBhZ2VcbmNvbXBpbGU6IHRydWVcbi0tLVxuXG5BIHBhZ2UgbGF5b3V0IHdpdGggYSBmaXhlZCBoZWFkZXIgYW5kIG9wdGlvbmFsIHNpZGViYXJzLlxuV2l0aCB0aGUgYC1tYXJnaW4te3RvcHxsZWZ0fHJpZ2h0fWAsIGAtbWFyZ2luLXt0b3B8bGVmdHxyaWdodH0tc21hbGxgIHZhcmlhbnRzIHlvdSBjYW4gY29udHJvbCB0aGUgc3BhY2luZy5cbklmIHRoZSBjb250ZW50IGZvciBleGFtcGxlIG5lZWRzIGEgc3BhY2luZyB0b3dhcmRzIHRoZSBoZWFkZXIgdXNlOiBgLmNvbnRlbnQuLW1hcmdpbi10b3BgLlxuSWYgdGhlIHNpZGViYXIgc2hvdyBiZSBiZWxvdyB0aGUgaGVhZGVyIHVzZTogYC5zaWRlYmFyLi1sZWZ0Li1tYXJnaW4tdG9wYC5cblxuXG5UaGVyZSBhcmUgdmFyaWFudHMgdG8gcmVzaXplIHRoZSBoZWFkZXIgYW5kIHNpZGViYXJzIHRvIGEgc21hbGxlciB3aWR0aC9oZWlnaHQ6IGAuaGVhZGVyLi1zbWFsbGAsIGAuc2lkZWJhci4tc21hbGxgLlxuSWYgeW91IG5lZWQgYSBzcGFjaW5nIG9uIHlvdXIgY29udGVudCBvciBzaWRlYmFyIHlvdSBuZWVkIHRvIGFkanVzdCB0aGF0IG1hbnVhbGx5IGxpa2UgdGhpczpcbmBgYFxuZGl2LmZpeGVkLXBhZ2UtbGF5b3V0XG5cdGRpdi5oZWFkZXIuLXNtYWxsXG5cdFx0ZGl2LmFpZ2lzLWRlYnVnKHN0eWxlPVwid2lkdGg6MTAwJTtoZWlnaHQ6MTAwJVwiKSAgSGVhZGVyXG5cdGRpdi5jb250ZW50Li1tYXJnaW4tdG9wLXNtYWxsIENvbnRlbnRcblx0ZGl2LnNpZGViYXIuLWxlZnQuLW1hcmdpbi10b3Atc21hbGwuLXNtYWxsXG5cdFx0ZGl2LmFpZ2lzLWRlYnVnKHN0eWxlPVwiaGVpZ2h0OjEwMCVcIikgIExlZnQgU2lkZWJhclxuYGBgXG5cbiMjIEhlYWRlciB3aXRoIHNpZGViYXJzXG5cbmBgYGphZGVcbmRpdi5maXhlZC1wYWdlLWxheW91dFxuXHRkaXYuaGVhZGVyXG5cdFx0ZGl2LmFpZ2lzLWRlYnVnKHN0eWxlPVwid2lkdGg6MTAwJTtoZWlnaHQ6MTAwJVwiKSAgSGVhZGVyXG5cdGRpdi5jb250ZW50Li1tYXJnaW4tdG9wIENvbnRlbnRcblx0ZGl2LnNpZGViYXIuLWxlZnQuLW1hcmdpbi10b3Bcblx0XHRkaXYuYWlnaXMtZGVidWcoc3R5bGU9XCJoZWlnaHQ6MTAwJVwiKSAgTGVmdCBTaWRlYmFyXG5cdGRpdi5zaWRlYmFyLi1yaWdodFxuXHRcdGRpdi5haWdpcy1kZWJ1ZyhzdHlsZT1cImhlaWdodDoxMDAlXCIpICBSaWdodCBTaWRlYmFyXG5gYGBcbiovXG4uZml4ZWQtcGFnZS1sYXlvdXQge1xuXG5cdGNvbmYgPSB0aGVtZS5jb21wb25lbnRzLmZpeGVkLXBhZ2UtbGF5b3V0O1xuXG5cblx0PiAuaGVhZGVyIHtcblx0XHRwb3NpdGlvbjogZml4ZWQ7XG5cdFx0dG9wOiAwO1xuXHRcdGxlZnQ6IDA7XG5cdFx0cmlnaHQ6IDA7XG5cdFx0aGVpZ2h0OiBjb25mLmhlYWRlci5kZWZhdWx0O1xuXHRcdHRyYW5zaXRpb246IGFsbCAwLjJzO1xuXHRcdHotaW5kZXg6IDEwMDA7XG5cblx0XHQmLi1zbWFsbCB7XG5cdFx0XHRoZWlnaHQ6IGNvbmYuaGVhZGVyLnNtYWxsO1xuXHRcdH1cblxuXHRcdCYuLWhpZGUge1xuXHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKCAtMTAwJSApO1xuXHRcdH1cblx0fVxuXG5cdD4gLnNpZGViYXIge1xuXHRcdHBvc2l0aW9uOiBmaXhlZDtcblx0XHR0b3A6IDA7XG5cdFx0Ym90dG9tOiAwO1xuXHRcdHdpZHRoOiBjb25mLnNpZGViYXIuZGVmYXVsdDtcblx0XHR0cmFuc2l0aW9uOiBhbGwgMC4ycztcblx0XHR6LWluZGV4OiAxMDA1O1xuXG5cdFx0Ji4tbWFyZ2luLXRvcCB7XG5cdFx0XHR0b3A6IGNvbmYuaGVhZGVyLmRlZmF1bHQ7XG5cdFx0fVxuXG5cdFx0Ji4tbWFyZ2luLXRvcC1zbWFsbCB7XG5cdFx0XHR0b3A6IGNvbmYuaGVhZGVyLnNtYWxsO1xuXHRcdH1cblxuXHRcdCYuLXNtYWxsIHtcblx0XHRcdHdpZHRoOiBjb25mLnNpZGViYXIuc21hbGw7XG5cdFx0fVxuXG5cdFx0Ji4tbGVmdCB7XG5cdFx0XHRsZWZ0OiAwO1xuXG5cdFx0XHQmLi1oaWRlIHtcblx0XHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKCAtMTAwJSApO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCYuLXJpZ2h0IHtcblx0XHRcdHJpZ2h0OiAwO1xuXG5cdFx0XHQmLi1oaWRlIHtcblx0XHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKCAxMDAlICk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdH1cblxuXHQ+IC5jb250ZW50IHtcblxuXHRcdCYuLW1hcmdpbi1sZWZ0IHtcblx0XHRcdG1hcmdpbi1sZWZ0OiBjb25mLnNpZGViYXIuZGVmYXVsdDtcblx0XHR9XG5cblx0XHQmLi1tYXJnaW4tbGVmdC1zbWFsbCB7XG5cdFx0XHRtYXJnaW4tbGVmdDogY29uZi5zaWRlYmFyLnNtYWxsO1xuXHRcdH1cblxuXHRcdCYuLW1hcmdpbi1yaWdodCB7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IGNvbmYuc2lkZWJhci5kZWZhdWx0O1xuXHRcdH1cblxuXHRcdCYuLW1hcmdpbi1yaWdodC1zbWFsbCB7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IGNvbmYuc2lkZWJhci5zbWFsbDtcblx0XHR9XG5cblx0XHQmLi1tYXJnaW4tdG9wIHtcblx0XHRcdG1hcmdpbi10b3A6IGNvbmYuaGVhZGVyLmRlZmF1bHQ7XG5cdFx0fVxuXG5cdFx0Ji4tbWFyZ2luLXRvcC1zbWFsbCB7XG5cdFx0XHRtYXJnaW4tdG9wOiBjb25mLmhlYWRlci5zbWFsbDtcblx0XHR9XG5cblx0XHR0cmFuc2l0aW9uOiBtYXJnaW4gMC4ycztcblx0fVxufSIsIi8qIVxuLS0tXG5uYW1lOiAuZmxleC1sYXlvdXRcbmNhdGVnb3J5OiBMYXlvdXQvRmxleFxudGFnOlxuIC0gY29tcG9uZW50XG4gLSBsYXlvdXRcbiAtIGZsZXhib3hcbmNvbXBpbGU6IHRydWVcbi0tLVxuXG5BIGxheW91dCBzeXN0ZW0gYmFzZWQgb24gZmxleGJveCB0byBhbGlnbiBhbmQgZGlzdHJpYnV0ZSBpdGVtcyBob3Jpem9udGFsbHkgYW5kIHZlcnRpY2FsbHkuXG5cblxuIyBBbGlnbm1lbnQgb2YgaXRlbXNcblxuVGhlIGAtY2VudGVyYCBzaG9ydGN1dCB3aWxsIGNlbnRlciBhbGwgaXRlbXMgaG9yaXpvbnRhbCAmIHZlcnRpY2FsXG5gYGBqYWRlXG5kaXYoc3R5bGU9XCJoZWlnaHQ6IDEwMHB4XCIpLmZsZXgtbGF5b3V0Li1jZW50ZXJcblx0ZGl2LmFpZ2lzLWRlYnVnIEl0ZW0gMVxuXHRkaXYuYWlnaXMtZGVidWcgSXRlbSAyXG5cdGRpdi5haWdpcy1kZWJ1ZyBJdGVtIDNcbmBgYFxuXG5gLWJhc2VsaW5lYCB3aWxsIGFsaWduIGl0ZW1zIGJhc2VkIG9uIHRoZWlyIGJhc2VsaW5lLiBXb3JrcyBnb29kIGlmIGFsbCB0aGUgaXRlbXMgY29udGFpbiB0ZXh0LiBcbmBgYGphZGVcbmRpdi5mbGV4LWxheW91dC4tYmFzZWxpbmVcblx0ZGl2LmFpZ2lzLWRlYnVnIEl0ZW1cblx0ZGl2LmFpZ2lzLWRlYnVnKHN0eWxlPVwicGFkZGluZy10b3A6IDUwcHg7cGFkZGluZy1ib3R0b206IDMwcHg7XCIpIEl0ZW0gMlxuYGBgXG5cbmAtaXRlbXMtdG9wYCAmIGAtaXRlbXMtYm90dG9tYCB3aWxsIGFsaWduIHRoZSBpdGVtcyBlaXRoZXIgb24gdG9wIG9yIGJvdHRvbVxuYGBgamFkZVxuZGl2LmZsZXgtbGF5b3V0Li1pdGVtcy10b3Bcblx0ZGl2LmFpZ2lzLWRlYnVnIEl0ZW0gMVxuXHRkaXYuYWlnaXMtZGVidWcoc3R5bGU9XCJwYWRkaW5nLXRvcDogNTBweDtwYWRkaW5nLWJvdHRvbTogMzBweDtcIikgSXRlbSAyXG5cdGRpdi5haWdpcy1kZWJ1ZyBJdGVtIDNcbmBgYFxuYGBgamFkZVxuZGl2LmZsZXgtbGF5b3V0Li1pdGVtcy1ib3R0b21cblx0ZGl2LmFpZ2lzLWRlYnVnIEl0ZW0gMVxuXHRkaXYuYWlnaXMtZGVidWcoc3R5bGU9XCJwYWRkaW5nLXRvcDogNTBweDtwYWRkaW5nLWJvdHRvbTogMzBweDtcIikgSXRlbSAyXG5cdGRpdi5haWdpcy1kZWJ1ZyBJdGVtIDNcbmBgYFxuXG5gLWl0ZW1zLWNlbnRlcmAgd2lsbCBjZW50ZXIgdGhlIGl0ZW1zIHZlcnRpY2FsbHlcbmBgYGphZGVcbmRpdi5mbGV4LWxheW91dC4taXRlbXMtY2VudGVyXG5cdGRpdi5haWdpcy1kZWJ1ZyBJdGVtIDFcblx0ZGl2LmFpZ2lzLWRlYnVnKHN0eWxlPVwicGFkZGluZy10b3A6IDUwcHg7cGFkZGluZy1ib3R0b206IDMwcHg7XCIpIEl0ZW0gMlxuXHRkaXYuYWlnaXMtZGVidWcgSXRlbSAzXG5gYGBcblxuIyBBbGlnbm1lbnQgb2YgaW5kaXZpZHVhbCBpdGVtc1xuXG5gYGBqYWRlXG5kaXYoc3R5bGU9XCJoZWlnaHQ6IDEwMHB4XCIpLmZsZXgtbGF5b3V0XG5cdGRpdi5haWdpcy1kZWJ1Zy5pdGVtLi10b3AgdG9wXG5cdGRpdi5haWdpcy1kZWJ1Zy5pdGVtLi1jZW50ZXIgY2VudGVyXG5cdGRpdi5haWdpcy1kZWJ1Zy5pdGVtLi1ib3R0b20gYm90dG9tXG5cdGRpdi5haWdpcy1kZWJ1Zy5pdGVtLi1zdHJldGNoIHN0cmV0Y2hcbmBgYFxuXG4jIFJvdyBtb2RlXG5cbklmIHlvdSBsaWtlIGEgY29udGFpbmVyIHRoYXQgc3BhbnMgdGhlIGZ1bGwgd2lkdGggd2l0aCBpdGVtIHRoYXQgcmVzaXplIHRoZW1zZWxmIHlvdSBjYW4gdXNlIHRoZSBgLXJvd2AgdmFyaWFudC5cblxuYGBgamFkZVxuZGl2LmZsZXgtbGF5b3V0Li1yb3dcblx0ZGl2LmFpZ2lzLWRlYnVnLml0ZW0gSXRlbSAxXG5cdGRpdi5haWdpcy1kZWJ1Zy5pdGVtIEl0ZW0gMlxuXHRkaXYuYWlnaXMtZGVidWcuaXRlbSBJdGVtIDNcbmBgYFxuXG5JZiB5b3UgbGlrZSB0byBmaXggYW4gaXRlbSBiYXNlZCBvbiBpdHMgY29udGVudCB3aWR0aCB1c2UgdGhlIGAtY29udGVudGAgdmFyaWFudC5cblRoaXMgaXMgYSBzaG9ydGN1dCBmb3IgYC1uby1ncm93IC1uby1zaHJpbmtgLiBcbmBgYGphZGVcbmRpdi5mbGV4LWxheW91dC4tcm93XG5cdGRpdi5haWdpcy1kZWJ1Zy5pdGVtLi1jb250ZW50XG5cdFx0aW1nKHNyYz1cImh0dHA6Ly92aWEucGxhY2Vob2xkZXIuY29tLzM1MHg4MFwiKVxuXHRkaXYuYWlnaXMtZGVidWcuaXRlbSBJdGVtIDJcblx0ZGl2LmFpZ2lzLWRlYnVnLml0ZW0gSXRlbSAzXG5gYGBcblxuWW91IGNhbiBjb250cm9sIHRoZSBzaXppbmcgb2YgdGhlIGl0ZW1zIHdpdGggYC1ncm93YCwgYC1zaHJpbmtgLCBgLW5vLWdyb3dgLCBgLW5vLXNocmlua2AuXG5gYGBqYWRlXG5kaXYuZmxleC1sYXlvdXQuLXJvd1xuXHRkaXYuYWlnaXMtZGVidWcuaXRlbS4tbm8tc2hyaW5rXG5cdFx0aW1nKHNyYz1cImh0dHA6Ly92aWEucGxhY2Vob2xkZXIuY29tLzM1MHg4MFwiKVxuXHRkaXYuYWlnaXMtZGVidWcuaXRlbS4tbm8tZ3JvdyBJdGVtIDJcblx0ZGl2LmFpZ2lzLWRlYnVnLml0ZW0gSXRlbSAzXG5gYGBcblxuXG4jIERpc3RyaWJ1dGlvbiBvZiBpdGVtc1xuXG5Vc2UgYC1bdi9oXS1zcGFjZS1hcm91bmRgICYgYC1bdi9oXS1zcGFjZS1iZXR3ZWVuYCB0byBkaXN0cmlidXRlIHRoZSBpdGVtcyBpbiB0aGUgZmxleCBjb250YWluZXIuXG5cbmBgYGphZGVcbmRpdi5mbGV4LWxheW91dC4taC1zcGFjZS1hcm91bmRcblx0ZGl2LmFpZ2lzLWRlYnVnIEl0ZW0gMVxuXHRkaXYuYWlnaXMtZGVidWcgSXRlbSAyXG5cdGRpdi5haWdpcy1kZWJ1ZyBJdGVtIDNcbmBgYFxuYGBgamFkZVxuZGl2LmZsZXgtbGF5b3V0Li1oLXNwYWNlLWJldHdlZW5cblx0ZGl2LmFpZ2lzLWRlYnVnIEl0ZW0gMVxuXHRkaXYuYWlnaXMtZGVidWcgSXRlbSAyXG5cdGRpdi5haWdpcy1kZWJ1ZyBJdGVtIDNcbmBgYFxuYGBgamFkZVxuZGl2KHN0eWxlPVwiaGVpZ2h0OiAyMDBweFwiKS5mbGV4LWxheW91dC4tdi1zcGFjZS1hcm91bmQuLXdyYXBcblx0ZGl2LmFpZ2lzLWRlYnVnIEl0ZW0gbG9uZ2VyIDFcblx0ZGl2LmFpZ2lzLWRlYnVnIEl0ZW0gbG9uZ2VyIDJcblx0ZGl2LmFpZ2lzLWRlYnVnIEl0ZW0gbG9uZ2VyIDNcblx0ZGl2LmFpZ2lzLWRlYnVnIEl0ZW0gbG9uZ2VyIDRcblx0ZGl2LmFpZ2lzLWRlYnVnIEl0ZW0gbG9uZ2VyIDVcblx0ZGl2LmFpZ2lzLWRlYnVnIEl0ZW0gbG9uZ2VyIDZcblx0ZGl2LmFpZ2lzLWRlYnVnIEl0ZW0gbG9uZ2VyIDdcblx0ZGl2LmFpZ2lzLWRlYnVnIEl0ZW0gbG9uZ2VyIDhcblx0ZGl2LmFpZ2lzLWRlYnVnIEl0ZW0gbG9uZ2VyIDlcbmBgYFxuYGBgamFkZVxuZGl2KHN0eWxlPVwiaGVpZ2h0OiAyMDBweFwiKS5mbGV4LWxheW91dC4tdi1zcGFjZS1iZXR3ZWVuLi13cmFwXG5cdGRpdi5haWdpcy1kZWJ1ZyBJdGVtIGxvbmdlciAxXG5cdGRpdi5haWdpcy1kZWJ1ZyBJdGVtIGxvbmdlciAyXG5cdGRpdi5haWdpcy1kZWJ1ZyBJdGVtIGxvbmdlciAzXG5cdGRpdi5haWdpcy1kZWJ1ZyBJdGVtIGxvbmdlciA0XG5cdGRpdi5haWdpcy1kZWJ1ZyBJdGVtIGxvbmdlciA1XG5cdGRpdi5haWdpcy1kZWJ1ZyBJdGVtIGxvbmdlciA2XG5cdGRpdi5haWdpcy1kZWJ1ZyBJdGVtIGxvbmdlciA3XG5cdGRpdi5haWdpcy1kZWJ1ZyBJdGVtIGxvbmdlciA4XG5cdGRpdi5haWdpcy1kZWJ1ZyBJdGVtIGxvbmdlciA5XG5gYGBcblxuIyBBbGlnbm1lbnQgb2YgbXVsdGlsaW5lIGl0ZW1zIHdpdGggd3JhcFxuXG5JZiB5b3UgaGF2ZSBhbG90IG9uIGl0ZW1zIHRoYXQgd3JhcCB5b3UgY2FuIGFsaWduIHRoZSBtdWx0aWxpbmVzIHdpdGggdGhlIGZvbGxvd2luZyB2YXJpYW50czpcbmBgYGphZGVcbmRpdi5mbGV4LWxheW91dC4td3JhcC4taC1jZW50ZXJcblx0ZGl2LmFpZ2lzLWRlYnVnIEl0ZW0gbG9uZ2VyIDFcblx0ZGl2LmFpZ2lzLWRlYnVnIEl0ZW0gbG9uZ2VyIDJcblx0ZGl2LmFpZ2lzLWRlYnVnIEl0ZW0gbG9uZ2VyIDNcblx0ZGl2LmFpZ2lzLWRlYnVnIEl0ZW0gbG9uZ2VyIDRcblx0ZGl2LmFpZ2lzLWRlYnVnIEl0ZW0gbG9uZ2VyIDVcblx0ZGl2LmFpZ2lzLWRlYnVnIEl0ZW0gbG9uZ2VyIDZcblx0ZGl2LmFpZ2lzLWRlYnVnIEl0ZW0gbG9uZ2VyIDdcblx0ZGl2LmFpZ2lzLWRlYnVnIEl0ZW0gbG9uZ2VyIDhcblx0ZGl2LmFpZ2lzLWRlYnVnIEl0ZW0gbG9uZ2VyIDlcbmBgYFxuYGBgamFkZVxuZGl2LmZsZXgtbGF5b3V0Li13cmFwLi1sZWZ0XG5cdGRpdi5haWdpcy1kZWJ1ZyBJdGVtIGxvbmdlciAxXG5cdGRpdi5haWdpcy1kZWJ1ZyBJdGVtIGxvbmdlciAyXG5cdGRpdi5haWdpcy1kZWJ1ZyBJdGVtIGxvbmdlciAzXG5cdGRpdi5haWdpcy1kZWJ1ZyBJdGVtIGxvbmdlciA0XG5cdGRpdi5haWdpcy1kZWJ1ZyBJdGVtIGxvbmdlciA1XG5cdGRpdi5haWdpcy1kZWJ1ZyBJdGVtIGxvbmdlciA2XG5cdGRpdi5haWdpcy1kZWJ1ZyBJdGVtIGxvbmdlciA3XG5cdGRpdi5haWdpcy1kZWJ1ZyBJdGVtIGxvbmdlciA4XG5cdGRpdi5haWdpcy1kZWJ1ZyBJdGVtIGxvbmdlciA5XG5gYGBcbmBgYGphZGVcbmRpdi5mbGV4LWxheW91dC4td3JhcC4tcmlnaHRcblx0ZGl2LmFpZ2lzLWRlYnVnIEl0ZW0gbG9uZ2VyIDFcblx0ZGl2LmFpZ2lzLWRlYnVnIEl0ZW0gbG9uZ2VyIDJcblx0ZGl2LmFpZ2lzLWRlYnVnIEl0ZW0gbG9uZ2VyIDNcblx0ZGl2LmFpZ2lzLWRlYnVnIEl0ZW0gbG9uZ2VyIDRcblx0ZGl2LmFpZ2lzLWRlYnVnIEl0ZW0gbG9uZ2VyIDVcblx0ZGl2LmFpZ2lzLWRlYnVnIEl0ZW0gbG9uZ2VyIDZcblx0ZGl2LmFpZ2lzLWRlYnVnIEl0ZW0gbG9uZ2VyIDdcblx0ZGl2LmFpZ2lzLWRlYnVnIEl0ZW0gbG9uZ2VyIDhcblx0ZGl2LmFpZ2lzLWRlYnVnIEl0ZW0gbG9uZ2VyIDlcbmBgYFxuYGBgamFkZVxuZGl2KHN0eWxlPVwiaGVpZ2h0OiAyMDBweFwiKS5mbGV4LWxheW91dC4td3JhcC4tdi1jZW50ZXJcblx0ZGl2LmFpZ2lzLWRlYnVnIEl0ZW0gbG9uZ2VyIDFcblx0ZGl2LmFpZ2lzLWRlYnVnIEl0ZW0gbG9uZ2VyIDJcblx0ZGl2LmFpZ2lzLWRlYnVnIEl0ZW0gbG9uZ2VyIDNcblx0ZGl2LmFpZ2lzLWRlYnVnIEl0ZW0gbG9uZ2VyIDRcblx0ZGl2LmFpZ2lzLWRlYnVnIEl0ZW0gbG9uZ2VyIDVcblx0ZGl2LmFpZ2lzLWRlYnVnIEl0ZW0gbG9uZ2VyIDZcblx0ZGl2LmFpZ2lzLWRlYnVnIEl0ZW0gbG9uZ2VyIDdcblx0ZGl2LmFpZ2lzLWRlYnVnIEl0ZW0gbG9uZ2VyIDhcblx0ZGl2LmFpZ2lzLWRlYnVnIEl0ZW0gbG9uZ2VyIDlcbmBgYFxuYGBgamFkZVxuZGl2KHN0eWxlPVwiaGVpZ2h0OiAyMDBweFwiKS5mbGV4LWxheW91dC4td3JhcC4tdG9wXG5cdGRpdi5haWdpcy1kZWJ1ZyBJdGVtIGxvbmdlciAxXG5cdGRpdi5haWdpcy1kZWJ1ZyBJdGVtIGxvbmdlciAyXG5cdGRpdi5haWdpcy1kZWJ1ZyBJdGVtIGxvbmdlciAzXG5cdGRpdi5haWdpcy1kZWJ1ZyBJdGVtIGxvbmdlciA0XG5cdGRpdi5haWdpcy1kZWJ1ZyBJdGVtIGxvbmdlciA1XG5cdGRpdi5haWdpcy1kZWJ1ZyBJdGVtIGxvbmdlciA2XG5cdGRpdi5haWdpcy1kZWJ1ZyBJdGVtIGxvbmdlciA3XG5cdGRpdi5haWdpcy1kZWJ1ZyBJdGVtIGxvbmdlciA4XG5cdGRpdi5haWdpcy1kZWJ1ZyBJdGVtIGxvbmdlciA5XG5gYGBcbmBgYGphZGVcbmRpdihzdHlsZT1cImhlaWdodDogMjAwcHhcIikuZmxleC1sYXlvdXQuLXdyYXAuLWJvdHRvbVxuXHRkaXYuYWlnaXMtZGVidWcgSXRlbSBsb25nZXIgMVxuXHRkaXYuYWlnaXMtZGVidWcgSXRlbSBsb25nZXIgMlxuXHRkaXYuYWlnaXMtZGVidWcgSXRlbSBsb25nZXIgM1xuXHRkaXYuYWlnaXMtZGVidWcgSXRlbSBsb25nZXIgNFxuXHRkaXYuYWlnaXMtZGVidWcgSXRlbSBsb25nZXIgNVxuXHRkaXYuYWlnaXMtZGVidWcgSXRlbSBsb25nZXIgNlxuXHRkaXYuYWlnaXMtZGVidWcgSXRlbSBsb25nZXIgN1xuXHRkaXYuYWlnaXMtZGVidWcgSXRlbSBsb25nZXIgOFxuXHRkaXYuYWlnaXMtZGVidWcgSXRlbSBsb25nZXIgOVxuYGBgXG5cblxuXG5cbiovXG5cbi5mbGV4LWxheW91dCB7XG5cdFxuXHRkaXNwbGF5OiBmbGV4O1xuXG5cdCYuLWlubGluZSB7XG5cdFx0ZGlzcGxheTogZmxleC1pbmxpbmU7XG5cdH1cblxuXHQmLi13cmFwIHtcblx0XHRmbGV4LXdyYXA6IHdyYXA7XHRcblx0fVxuXG5cdCYuLXJvdyB7XG5cdFx0ZmxleC13cmFwOiBub3dyYXA7XG5cblx0XHQ+IC5pdGVtIHtcblx0XHRcdGZsZXg6IDEgMSBhdXRvO1xuXHRcdH1cdFxuXHR9XG5cblx0Ji4tY29sdW1uIHtcblx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHR9XG5cblx0Ji4tY2VudGVyIHtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcdFxuXHR9XG5cblx0Ji4tYmFzZWxpbmUge1xuXHRcdGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcblx0fVxuXG5cdCYuLWxlZnQge1xuXHRcdGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcblx0fVxuXG5cdCYuLXJpZ2h0IHtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXHR9XG5cblx0Ji4tdG9wIHtcblx0XHRhbGlnbi1jb250ZW50OiBmbGV4LXN0YXJ0O1xuXHR9XG5cblx0Ji4tYm90dG9tIHtcblx0XHRhbGlnbi1jb250ZW50OiBmbGV4LWVuZDtcblx0fVxuXG5cdCYuLXYtY2VudGVyIHtcblx0XHRhbGlnbi1jb250ZW50OiBjZW50ZXI7XG5cdH1cblxuXHQmLi12LXNwYWNlLWJldHdlZW4ge1xuXHRcdGFsaWduLWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cdH1cblxuXHQmLi12LXNwYWNlLWFyb3VuZCB7XG5cdFx0YWxpZ24tY29udGVudDogc3BhY2UtYXJvdW5kO1xuXHR9XG5cblx0Ji4taC1jZW50ZXIge1xuXHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHR9XG5cblx0Ji4taC1zcGFjZS1iZXR3ZWVuIHtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cdH1cblxuXHQmLi1oLXNwYWNlLWFyb3VuZCB7XG5cdFx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XG5cdH1cblxuXG5cdCYuLWl0ZW1zLXRvcCB7XG5cdFx0YWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XHRcblx0fVxuXG5cdCYuLWl0ZW1zLWJvdHRvbSB7XG5cdFx0YWxpZ24taXRlbXM6IGZsZXgtZW5kO1x0XG5cdH1cblxuXHQmLi1pdGVtcy1jZW50ZXIge1xuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XHRcblx0fVxuXG5cdCYuLWl0ZW1zLXN0cmV0Y2gge1xuXHRcdGFsaWduLWl0ZW1zOiBmbGV4LXN0cmV0Y2g7XHRcblx0fVxuXG5cdD4gLml0ZW0ge1xuXG5cdFx0Ji4tc3RyZXRjaCB7XG5cdFx0XHRhbGlnbi1zZWxmOiBzdHJldGNoO1xuXHRcdH1cblxuXHRcdCYuLXRvcCB7XG5cdFx0XHRhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xuXHRcdH1cblxuXHRcdCYuLWNlbnRlciB7XG5cdFx0XHRhbGlnbi1zZWxmOiBjZW50ZXI7XG5cdFx0fVxuXG5cdFx0Ji4tYm90dG9tIHtcblx0XHRcdGFsaWduLXNlbGY6IGZsZXgtZW5kO1xuXHRcdH1cblxuXHRcdCYuLWNvbnRlbnQge1xuXHRcdFx0ZmxleDogbm9uZTtcblx0XHR9XG5cblx0XHQmLi1ncm93IHtcblx0XHRcdGZsZXgtZ3JvdzogMTtcdFxuXHRcdH1cblx0XHRcblx0XHQmLi1zaHJpbmsge1xuXHRcdFx0ZmxleC1zaHJpbms6IDE7XHRcblx0XHR9XG5cblx0XHQmLi1uby1ncm93IHtcblx0XHRcdGZsZXgtZ3JvdzogMDtcdFxuXHRcdH1cblxuXHRcdCYuLW5vLXNocmluayB7XG5cdFx0XHRmbGV4LXNocmluazogMDtcdFxuXHRcdH1cblx0fVxufSIsIi8qIVxuLS0tXG5uYW1lOiAuZ3JpZC1sYXlvdXRcbmNhdGVnb3J5OiBMYXlvdXQvR3JpZFxudGFnOlxuIC0gY29tcG9uZW50XG4gLSBsYXlvdXRcbiAtIGdyaWRcbiAtIHJlc3BvbnNpdmVcbiAtIGZsZXhib3hcbmNvbXBpbGU6IHRydWVcbi0tLVxuXG5BIGdyaWQgbGF5b3V0IHN5c3RlbSBiYXNlZCBvbiBmbGV4Ym94LiBJdCBwcm92aWRlcyBzaXppbmcgdmFyaWFudHMgdG8gc2l6ZSBvbiBkaWZmZXJlbnQgcGVyY2VudGFnZXMuXG5cblxuIyMgUGVyY2VudGFnZSBiYXNlZCBzaXppbmdcblxuVGhlIGVhc2llc3QgdXNlIGNhc2UgaXMgdG8gdXNlIHNpbXBsZSBgLml0ZW0gLXcxYCwgYC5pdGVtIC13MS0yYCwgYC5pdGVtIC13MS0zYCwgYC5pdGVtIC13MS00YCBmb3IgYSBwZXJjZW50YWdlIGJhc2VkIHNpZGUtYnktc2lkZSByZW5kZXJpbmcuXG5cbmBgYGphZGVcbmRpdi5ncmlkLWxheW91dFxuXHRkaXYuaXRlbS4tdzFcblx0XHRkaXYuYWlnaXMtZGVidWcgaXRlbSAtdzFcblx0ZGl2Lml0ZW0uLXcxLTIgXG5cdFx0ZGl2LmFpZ2lzLWRlYnVnIGl0ZW0gLXcxLTJcblx0ZGl2Lml0ZW0uLXcxLTJcblx0XHRkaXYuYWlnaXMtZGVidWcgaXRlbSAtdzEtMlxuXHRkaXYuaXRlbS4tdzEtM1xuXHRcdGRpdi5haWdpcy1kZWJ1ZyBpdGVtIC13MS0zXG5cdGRpdi5pdGVtLi13Mi0zXG5cdFx0ZGl2LmFpZ2lzLWRlYnVnIGl0ZW0gLXcyLTNcblx0ZGl2Lml0ZW0uLXcxLTRcblx0XHRkaXYuYWlnaXMtZGVidWcgaXRlbSAtdzEtNFxuXHRkaXYuaXRlbS4tdzEtMlxuXHRcdGRpdi5haWdpcy1kZWJ1ZyBpdGVtIC13MS0yXG5cdGRpdi5pdGVtLi13MS00XG5cdFx0ZGl2LmFpZ2lzLWRlYnVnIGl0ZW0gLXcxLTRcbmBgYFxuXG4jIyBMYXlvdXRzIG9uIGRpZmZlcmVudCBkZXZpY2VzXG5cblRoZSBicmVha3BvaW50cyBmb3IgZGlmZmVyZW50IHNjcmVlbiBzaXplcyBhcmUgc3BlY2lmaWVkIGluIHRoZSBnbG9iYWwgc2V0dGluZ3MgYHRoZW1lLnNldHRpbmdzLmJyZWFrcG9pbnRzYCBhbmQgY2FuIGJlIG92ZXJ3cml0dGVuIGluIGB0aGVtZS5jb21wb25lbnRzLmdyaWQtbGF5b3V0LmJyZWFrcG9pbnRzYC5cblRoZSBkZWZhdWx0IHNldHRpbmdzIGRlZmluZSBicmVha3BvaW50cyB3aXRoIGxhYmVsczogYC4tc21hbGwtWC1YYCwgYC4tbWVkaXVtLVgtWGAsIGAuLWxhcmdlLVgtWGAuXG5cbmBgYGphZGVcbmRpdi5ncmlkLWxheW91dFxuXHRkaXYuaXRlbS4tdzEuLXNtYWxsLTEtMy4tbWVkaXVtLTEtMi4tbGFyZ2UtMS00XG5cdFx0ZGl2LmFpZ2lzLWRlYnVnIGl0ZW0gLXcxIC1zbWFsbC0xLTMgLW1lZGl1bS0xLTIgLWxhcmdlLTEtNFxuXHRkaXYuaXRlbS4tdzEuLXNtYWxsLTEtMy4tbWVkaXVtLTEtMi4tbGFyZ2UtMS00XG5cdFx0ZGl2LmFpZ2lzLWRlYnVnIGl0ZW0gLXcxIC1zbWFsbC0xLTMgLW1lZGl1bS0xLTIgLWxhcmdlLTEtNFxuXHRkaXYuaXRlbS4tdzEtMi4tc21hbGwtMS0zLi1tZWRpdW0tMS0yLi1sYXJnZS0xLTRcblx0XHRkaXYuYWlnaXMtZGVidWcgaXRlbSAtdzEtMiAtc21hbGwtMS0zIC1tZWRpdW0tMS0yIC1sYXJnZS0xLTRcblx0ZGl2Lml0ZW0uLXcxLTIuLXNtYWxsLTEuLW1lZGl1bS0xLTIuLWxhcmdlLTEtNFxuXHRcdGRpdi5haWdpcy1kZWJ1ZyBpdGVtIC13MS0yIC1zbWFsbC0xIC1tZWRpdW0tMS0yIC1sYXJnZS0xLTRcbmBgYFxuXG5cbiMjIEd1dHRlclxuXG5JZiB5b3UgbmVlZCBhIHNwYWNpbmcgYmV0d2VlbiB0aGUgY29sdW1ucyBhZGQgdGhlIGAtZ3V0dGVyYCB2YXJpYW50LlxuVGhlIHNpemUgb2YgdGhlIGd1dHRlciBpcyBzcGVjaWZpZWQgaW4gdGhlIGBncmlkLWd1dHRlcmB2YXJpYWJsZS5cblxuYGBgamFkZVxuZGl2LmdyaWQtbGF5b3V0Li1ndXR0ZXJcblx0ZGl2Lml0ZW0uLXcxLTRcblx0XHRkaXYuYWlnaXMtZGVidWcgY29sIC13MS00XG5cdGRpdi5pdGVtLi13MS00XG5cdFx0ZGl2LmFpZ2lzLWRlYnVnIGNvbCAtdzEtNFxuXHRkaXYuaXRlbS4tdzEtMlxuXHRcdGRpdi5haWdpcy1kZWJ1ZyBjb2wgLXcxLTJcbmBgYFxuXG5cbiMjIFJldmVyc2Ugb3JkZXJcblxuVG8gcmV2ZXJzZSB0aGUgb3JkZXIgaW4gd2hpY2ggdGhlIGNvbHVtbnMgYXJlIGRpc3BsYXllZCwgeW91IGNhbiBhZGQgdGhlIG1vZGlmaWVyIGNsYXNzIGAuLXJldmVyc2VgIHRvIHlvdXIgdGFibGUtZ3JpZC5cblRoZSBjb2x1bW5zIHdpbGwgYmUgaW4gRE9NIG9yZGVyIHdoZW4gdmlld3BvcnQgc3dpdGNoZXMgdG8gc21hbGwgbGF5b3V0LlxuXG5gYGBqYWRlXG5kaXYuZ3JpZC1sYXlvdXQuLXJldmVyc2Vcblx0ZGl2Lml0ZW0uLXcxLTRcblx0XHRkaXYuYWlnaXMtZGVidWcgRmlyc3QgY29sdW1uIGluIERPTVxuXHRkaXYuaXRlbS4tdzEtNFxuXHRcdGRpdi5haWdpcy1kZWJ1ZyBTZWNvbmQgY29sdW1uIGluIERPTVxuXHRkaXYuaXRlbS4tdzEtNFxuXHRcdGRpdi5haWdpcy1kZWJ1ZyBUaGlyZCBjb2x1bW4gaW4gRE9NXG5cdGRpdi5pdGVtLi13MS00XG5cdFx0ZGl2LmFpZ2lzLWRlYnVnIEZvdXJ0aCBjb2x1bW4gaW4gRE9NXG5gYGBcblxuIyMgVmVydGljYWwgY2VudGVyaW5nXG5cbllvdSBjYW4gdmVydGljYWwgY2VudGVyIHdpdGggdGhlIGhlbHAgb2YgdGhlIGBmbGV4LWxheW91dGAgY29tcG9uZW50LlxuXG5gYGBqYWRlXG5kaXYuZ3JpZC1sYXlvdXQuZmxleC1sYXlvdXRcblx0ZGl2Lml0ZW0uLXcxLTRcblx0XHRkaXYuYWlnaXMtZGVidWcgQSBjb2x1bW4gd2l0aCBhIGxvdCBvZiBjb250ZW50IHRoYXQgc2hvdWxkIHdyYXAgb24gZml4ZWQgc2l6ZS5cblx0ZGl2Lml0ZW0uLWJvdHRvbVxuXHRcdGRpdi5haWdpcy1kZWJ1ZyBib3R0b21cblx0ZGl2Lml0ZW0uLWNlbnRlclxuXHRcdGRpdi5haWdpcy1kZWJ1ZyBjZW50ZXJcblx0ZGl2Lml0ZW0uLXN0cmV0Y2hcblx0XHRkaXYuYWlnaXMtZGVidWcoc3R5bGU9XCJoZWlnaHQ6MTAwJVwiKSBzdHJldGNoXG5gYGBcblxuKi9cblxuXG5cbi5ncmlkLWxheW91dCB7XG5cblx0Y29uZiA9IHRoZW1lLmNvbXBvbmVudHMuZ3JpZC1sYXlvdXQ7XG5cdGJyZWFrcG9pbnRzID0gdGhlbWUuc2V0dGluZ3MuYnJlYWtwb2ludHM7XG5cblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC13cmFwOiB3cmFwO1xuXG5cdCYuLWd1dHRlciB7XG5cblx0XHRtYXJnaW46ICggLSggY29uZi5ndXR0ZXJbMV0gLyAyICkgKSAoIC0oIGNvbmYuZ3V0dGVyWzBdIC8gMiApICk7XG5cblx0XHQ+IC5pdGVtIHtcblx0XHRcdHBhZGRpbmc6ICggY29uZi5ndXR0ZXJbMV0gLyAyICkgKCBjb25mLmd1dHRlclswXSAvIDIgKTtcblx0XHR9XG5cdH1cblxuXHQmLi1yZXZlcnNlIHtcblx0XHRmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XG5cdH1cblxuXHQ+IC5pdGVtIHtcblxuXHRcdGZvciBuYW1lLCBwZXJjIGluIGNvbmYuc2l6ZXMge1xuXHRcdFx0Ji4td3tuYW1lfSB7XG5cdFx0XHRcdGZsZXg6IDAgMCBwZXJjO1xuXHRcdFx0XHRtYXgtd2lkdGg6IHBlcmM7IC8vIGllIGZpeFxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8qKlxuXHRcdCogR2VuZXJhdGUgYWxsIG1lZGlhIGJyZWFrcG9pbnRzIGJhc2VkIG9uIHRoZSBicmVha3BvaW50cyB2YXJpYWJsZS5cblx0XHQqL1xuXHRcdGZvciBicmVha25hbWUsIGJyZWFrd2lkdGggaW4gYnJlYWtwb2ludHMge1xuXG5cdFx0XHRAbWVkaWEgYWxsIGFuZCAoIG1pbi13aWR0aDogYnJlYWt3aWR0aCApIHtcblxuXHRcdFx0XHRmb3IgbmFtZSwgcGVyYyBpbiBjb25mLnNpemVzIHtcblx0XHRcdFx0XHQmLi17YnJlYWtuYW1lfS17bmFtZX0ge1xuXHRcdFx0XHRcdFx0ZmxleDogMCAwIHBlcmM7XG5cdFx0XHRcdFx0XHRtYXgtd2lkdGg6IHBlcmM7IC8vIGllIGZpeFxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxufSIsIi8qIVxuLS0tXG5uYW1lOiAubWF4LXdpZHRoLWxheW91dFxuY2F0ZWdvcnk6IExheW91dC9QYWdlXG50YWc6XG4gLSBjb21wb25lbnRcbiAtIGxheW91dFxuIC0gcmVzcG9uc2l2ZVxuY29tcGlsZTogdHJ1ZVxuLS0tXG5cblRoaXMgY29tcG9uZW50IHdpbGwgbGltaXQgaXRzIGNvbnRlbnQgdG8gYSBtYXhpbXVtIHdpZHRoLiBGb3J0aGVybW9yZSBpdCBjYW4gY2VudGVyIGl0cyBjb250ZW50LlxuVXNlZnVsbCBmb3IgcGFnZSBjb250ZW50IHRoYXQgc2hvdWxkIG5vdCBzcGFuIHRoZSBmdWxsIHdpZHRoLlxuXG5cbiMjIFBlcmNlbnRhZ2UgYmFzZWQgc2l6aW5nXG5cbiovXG5cblxuXG4ubWF4LXdpZHRoLWxheW91dCB7XG5cblx0Y29uZiA9IHRoZW1lLmNvbXBvbmVudHMubWF4LXdpZHRoLWxheW91dDtcblx0YnJlYWtwb2ludHMgPSB0aGVtZS5zZXR0aW5ncy5icmVha3BvaW50cztcblxuXHQvKipcblx0KiBHZW5lcmF0ZSBhbGwgbWVkaWEgYnJlYWtwb2ludHMgYmFzZWQgb24gdGhlIGJyZWFrcG9pbnRzIHZhcmlhYmxlLlxuXHQqL1xuXHRmb3IgYnJlYWtuYW1lLCBtYXh3aWR0aCBpbiBjb25mIHtcblxuXHRcdC8vIGNoZWNrIGlmIGNvcnJlc3BvbmRpbmcgYnJlYWtwb2ludCBleGlzdHNcblx0XHRicmVha3dpZHRoID0gYnJlYWtwb2ludHNbIGJyZWFrbmFtZSBdXG5cdFx0aWYoIGJyZWFrd2lkdGggKSB7XG5cblx0XHRcdEBtZWRpYSBhbGwgYW5kICggbWluLXdpZHRoOiBicmVha3dpZHRoICkge1xuXG5cdFx0XHRcdG1heC13aWR0aDogbWF4d2lkdGg7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0Ji4tY2VudGVyIHtcblx0XHRtYXJnaW4tbGVmdDogYXV0bztcblx0XHRtYXJnaW4tcmlnaHQ6IGF1dG87XHRcblx0fVxufSIsIi8qIVxuLS0tXG5uYW1lOiAuc2xpZGUtb3ZlcmxheVxuY2F0ZWdvcnk6IE92ZXJsYXkvU2xpZGVcbnRhZzpcbiAtIHJvbGxvdmVyXG4gLSBzbGlkZVxuIC0gb3ZlcmxheVxuLS0tXG5cblJvbGxvdmVyIGNvbXBvbmVudCAtIGNvbnRlbnQgcm9sbG92ZXIgcm9sbHMgaW4gLSBkZWZhdWx0IGZyb20gYm90dG9tXG5cblRyaWdnZXIgd2l0aCBtb3VzZXJvdmVyIGJ5IGFkZGluZyBgLi1ob3ZlcmAgdmFyaWFudFxuXG5UcmlnZ2VyIHdpdGgganMgYnkgYWRkaW5nIGAuLXNob3dgIHZhcmlhbnRcblxuYGBgamFkZVxuZGl2LnNsaWRlLW92ZXJsYXkuLWhvdmVyXG4gICAgZGl2IFNvbWUgbWFpbiBjb250ZW50XG4gICAgZGl2LnJvbGxvdmVyIFJvbGxvdmVyIGNvbnRlbnRcbmBgYFxuXG5Sb2xsb3ZlciBjb21wb25lbnQgdmFyaWFudCAtbGVmdFxuYGBgamFkZVxuZGl2LnNsaWRlLW92ZXJsYXkuLWxlZnQuLWhvdmVyXG4gICAgZGl2IFNvbWUgbWFpbiBjb250ZW50XG4gICAgZGl2LnJvbGxvdmVyIFJvbGxvdmVyIGNvbnRlbnRcbmBgYFxuXG5Sb2xsb3ZlciBjb21wb25lbnQgdmFyaWFudCAtcmlnaHRcbmBgYGphZGVcbmRpdi5zbGlkZS1vdmVybGF5Li1yaWdodC4taG92ZXJcbiAgICBkaXYgU29tZSBtYWluIGNvbnRlbnRcbiAgICBkaXYucm9sbG92ZXIgUm9sbG92ZXIgY29udGVudFxuYGBgXG5cblJvbGxvdmVyIGNvbXBvbmVudCB2YXJpYW50IC10b3BcbmBgYGphZGVcbmRpdi5zbGlkZS1vdmVybGF5Li10b3AuLWhvdmVyXG4gICAgZGl2IFNvbWUgbWFpbiBjb250ZW50XG4gICAgZGl2LnJvbGxvdmVyIFJvbGxvdmVyIGNvbnRlbnRcbmBgYFxuXG5Sb2xsb3ZlciBjb21wb25lbnQgdmFyaWFudCAtdG9wIHdpdGgganMgdHJpZ2dlclxuYGBgamFkZVxuZGl2LnNsaWRlLW92ZXJsYXkuLXRvcC4tc2hvd1xuICAgIGRpdiBTb21lIG1haW4gY29udGVudFxuICAgIGRpdi5yb2xsb3ZlciBSb2xsb3ZlciBjb250ZW50XG5gYGBcbiovXG4uc2xpZGUtb3ZlcmxheSB7XG5cdFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgY29uZiA9IHRoZW1lLmNvbXBvbmVudHMuc2xpZGUtb3ZlcmxheTtcblxuICAgID4gLnJvbGxvdmVyIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKCAwLCAxMDAlICk7XG4gICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSBjb25mLnRyYW5zLWR1cmF0aW9uIGVhc2U7XG4gICAgfVxuXG4gICAgJi4tbGVmdCB7XG4gICAgICAgID4gLnJvbGxvdmVye1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoIC0xMDAlLCAwICk7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi4tcmlnaHQge1xuICAgICAgICA+IC5yb2xsb3ZlcntcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKCAxMDAlLCAwICk7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYuLXRvcCB7XG4gICAgICAgID4gLnJvbGxvdmVye1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoIDAsIC0xMDAlICk7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLi1zaG93ID4gLnJvbGxvdmVyIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoIDAsIDAgKTtcbiAgICB9XG5cbiAgICBcbiAgICAmLi1ob3Zlcjpob3ZlciA+IC5yb2xsb3ZlciB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKCAwLCAwICk7XG4gICAgfVxufSIsIi8qIVxuLS0tXG5uYW1lOiAuY29udHJvbC1yZXNwb25zaXZlXG5jYXRlZ29yeTogUmVzcG9uc2l2ZS9Db250cm9sXG50YWc6XG4gLSByZXNwb25zaXZlXG4gLSBkaXNwbGF5XG5jb21waWxlOiB0cnVlXG4tLS1cblxuQ29udHJvbHMgdGhlIGRpc3BsYXkgb2YgYW4gZWxlbWVudCBkZXBlbmRpbmcgb24gdGhlIGN1cnJlbnQgYnJlYWtwb2ludFxuXG4jIyBIaWRlXG5cbmAuLWhpZGUtbWVkaXVtYCBoaWRlcyBhbiBlbGVtZW50IGFzIGxvbmcgYXMgdGhlIHNjcmVlbiBpcyB3aWRlciB0aGFuIHRoZSBicmVha3BvaW50IGBtZWRpdW1gLlxuXG5gYGBqYWRlXG5kaXYuY29udHJvbC1yZXNwb25zaXZlLi1oaWRlLW1lZGl1bSBPbmx5IHNob3duIHdoZW4gdGhlIHNjcmVlbiBpcyB3aWRlciB0aGFuIHRoZSBicmVha3BvaW50IG1lZGl1bVxuYGBgXG5cbiMjIFNob3dcblxuYC4tc2hvdy1tZWRpdW1gIHNob3cgYW4gZWxlbWVudCBhcyBsb25nIGFzIHRoZSBzY3JlZW4gaXMgbmFycm93ZXIgdGhhbiB0aGUgYnJlYWtwb2ludCBgbWVkaXVtYC5cblxuYGBgamFkZVxuZGl2LmNvbnRyb2wtcmVzcG9uc2l2ZS4tc2hvdy1tZWRpdW0gT25seSBzaG93biB3aGVuIHRoZSBzY3JlZW4gaXMgbmFycm93ZXIgdGhhbiB0aGUgYnJlYWtwb2ludCBgbWVkaXVtYFxuYGBgXG5cbiovXG5cblxuLmNvbnRyb2wtcmVzcG9uc2l2ZSB7XG5cblx0YnJlYWtwb2ludHMgPSB0aGVtZS5zZXR0aW5ncy5icmVha3BvaW50cztcblxuXHRmb3IgYnJlYWtuYW1lLCBicmVha3dpZHRoIGluIGJyZWFrcG9pbnRzIHtcblx0XHQmLi1oaWRlLXsgYnJlYWtuYW1lIH0ge1xuXHRcdFx0QG1lZGlhIGFsbCBhbmQgKCBtYXgtd2lkdGg6IGJyZWFrd2lkdGggKSB7XG5cdFx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdCYuLXNob3cteyBicmVha25hbWUgfSB7XG5cdFx0XHRAbWVkaWEgYWxsIGFuZCAoIG1pbi13aWR0aDogYnJlYWt3aWR0aCApIHtcblx0XHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn0iLCIuaGlkZS1yZXNwb25zaXZlIHtcblxuXHRicmVha3BvaW50cyA9IHRoZW1lLnNldHRpbmdzLmJyZWFrcG9pbnRzO1xuXG5cdGZvciBicmVha25hbWUsIGJyZWFrd2lkdGggaW4gYnJlYWtwb2ludHMge1xuXHRcdCYuLXsgYnJlYWtuYW1lIH0ge1xuXHRcdFx0QG1lZGlhIGFsbCBhbmQgKCBtYXgtd2lkdGg6IGJyZWFrd2lkdGggKSB7XG5cdFx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59IiwiLyohXG4tLS1cbm5hbWU6IC5pbWFnZS1yZXNwb25zaXZlXG5jYXRlZ29yeTogUmVzcG9uc2l2ZS9JbWFnZVxudGFnOlxuIC0gcmVzcG9uc2l2ZVxuY29tcGlsZTogdHJ1ZVxuLS0tXG5cblRoaXMgY2xhc3MgbWFrZXMgdGhlIGltYWdlIHNjYWxpbmcgdG8gaXRzIG1heCB3aWR0aC5cblxuYGBgamFkZVxuaW1nLmltYWdlLXJlc3BvbnNpdmUoc3JjPSdodHRwOi8vd3d3LmJ5dWkuZWR1L2ltYWdlcy9hZ3JpY3VsdHVyZS1saWZlLXNjaWVuY2VzL2Zsb3dlci5qcGcnKVxuYGBgXG5cbiMjIFZhcmlhbnRzXG5cbmAuLWZ1bGxgIGZvcmNlcyB0aGUgcGljdHVyZSB0byBzcGFuIHRvIDEwMCUgb2YgdGhlIHBhcmVudFxuXG5gYGBqYWRlXG5pbWcuaW1hZ2UtcmVzcG9uc2l2ZS4tZnVsbChzcmM9J2h0dHA6Ly93d3cuYnl1aS5lZHUvaW1hZ2VzL2FncmljdWx0dXJlLWxpZmUtc2NpZW5jZXMvZmxvd2VyLmpwZycpXG5gYGBcbiovXG5cbi5pbWFnZS1yZXNwb25zaXZlIHtcblx0bWF4LXdpZHRoOiAxMDAlO1xuXHRoZWlnaHQ6IGF1dG87XG5cdGRpc3BsYXk6IGJsb2NrO1xuXG5cdCYuLWZ1bGx7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdH1cblxuXHQmLi1pbnNldCB7XG5cdFx0bWF4LWhlaWdodDogMTAwJTtcdFxuXHR9XG59XG4iLCIvKiFcbi0tLVxubmFtZTogLm1lZGlhLXJlc3BvbnNpdmVcbmNhdGVnb3J5OiBSZXNwb25zaXZlL01lZGlhXG50YWc6XG4gLSByZXNwb25zaXZlXG5jb21waWxlOiB0cnVlXG4tLS1cblxuYC5tZWRpYS1yZXNwb25zaXZlYCAtIFRoaXMgbWFrZXMgYSB0aGUgYC5tZWRpYS1yZXNwb25zaXZlYCBkaXYgYSBjb250YWluZXIgZm9yIGFueSBtZWRpYSBlbGVtZW50IChpZnJhbWUsIHZpZGVvLCAuLi4gKSB0aGF0IHJlc3BvbnNpdmUgc2NhbGVzIHdpdGggYSBmaXggcmF0aW8uXG5UaGUgbWVkaWEgZWxlbWVudCAoIGNoaWxkICkgbmVlZHMgdGhlIGNsYXNzIGAubWVkaWFgIHRvIGZ1bGx5IGZpbGwgb3V0IHRoZSBwYXJlbnRzIHNpemUuXG5cblRoZSBgLm1lZGlhLXJlc3BvbnNpdmVgIGNvbXBvbmVudCBoYXMgdG8gcHJlZGVmaW5lZCBtb2RpZmllcnM6IGAuLW1lZGlhLTQtM2AsIGAuLW1lZGlhLTE2LTlgIHRoYXQgZGVmaW5lIGEgZml4IHJhdGlvLlxuXG5gYGBqYWRlXG5kaXYubWVkaWEtcmVzcG9uc2l2ZS4tbWVkaWEtMTYtOVxuXHRpZnJhbWUubWVkaWEoc3JjPVwiaHR0cHM6Ly93d3cueW91dHViZS5jb20vZW1iZWQvVENkNlBmeE95MFlcIilcbmBgYFxuXG5gYGBqYWRlXG5kaXYubWVkaWEtcmVzcG9uc2l2ZS4tbWVkaWEtNC0zXG5cdGlmcmFtZS5tZWRpYShzcmM9XCJodHRwczovL3d3dy55b3V0dWJlLmNvbS9lbWJlZC9UQ2Q2UGZ4T3kwWVwiKVxuYGBgXG5cbiovXG4ubWVkaWEtcmVzcG9uc2l2ZSB7XG5cblx0Y29uZiA9IHRoZW1lLmNvbXBvbmVudHMubWVkaWEtcmVzcG9uc2l2ZTtcblxuXHR3aWR0aDogMTAwJTtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRwYWRkaW5nLWJvdHRvbTogdmFsdWVzKCBjb25mLnJhdGlvcyApWzBdO1xuXG5cdGZvciBuYW1lLCB2YWx1ZSBpbiBjb25mLnJhdGlvcyB7XG5cdFx0Ji4tbWVkaWEte25hbWV9IHtcblx0XHRcdHBhZGRpbmctYm90dG9tOiB2YWx1ZTtcblx0XHR9XG5cdH1cblxuXHQ+IC5tZWRpYSB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHRvcDogMDtcblx0XHRsZWZ0OiAwO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdGhlaWdodDogMTAwJTtcblx0fVxufSIsIi8qIVxuLS0tXG5uYW1lOiAub3ZlcmZsb3ctdGV4dFxuY2F0ZWdvcnk6IFRleHRcbnRhZzpcbiAtIGNvbXBvbmVudFxuIC0gdGV4dFxuY29tcGlsZTogdHJ1ZVxuLS0tXG5cblRoaXMgY29tcG9uZW50IGN1dHMgdGhlIHRleHQgb24gYSBnaXZlbiBoZWlnaHQgYW5kIGFkZHMgYSBmYWRlb3V0IGVmZmVjdC5cblRoaXMgaXMgdXNlZnVsbCBmb3IgdGV4dCBjb250YWluZXJzIHRoYXQgaGF2ZSBtb3JlIGNvbnRlbnQgdGhhbiBzcGFjZS5cblxuXG5gYGBqYWRlXG5kaXYub3ZlcmZsb3ctdGV4dChzdHlsZT1cIndpZHRoOiAyMDBweDtoZWlnaHQ6IDcwcHhcIikgVGhpcyBpcyBhIHZlcnkgbG9uZyB0ZXh0IHRoYXQgaXMgcndhcGVkIGFuZCBjdXQgYXQgdGhlIGVuZC5cbmBgYFxuKi9cblxuLm92ZXJmbG93LXRleHQge1xuXG5cdGNvbmYgPSB0aGVtZS5jb21wb25lbnRzLm92ZXJmbG93LXRleHQ7XG5cblx0b3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0JjphZnRlciB7XG5cdFx0Y29udGVudDogXCJcIjtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0Ym90dG9tOiAwO1xuXHRcdHJpZ2h0OiAwO1xuXHRcdGxlZnQ6IDA7XG5cdFx0aGVpZ2h0OiBjb25mLmhlaWdodDtcblx0XHRiYWNrZ3JvdW5kOiBjb25mLmdyYWRpZW50O1xuICAgIH1cbn1cblxuXG4iLCIvKiFcbi0tLVxubmFtZTogLnRleHQtc3R5bGVcbmNhdGVnb3J5OiBUZXh0XG50YWc6XG4gLSBjb21wb25lbnRcbiAtIHRleHRcbmNvbXBpbGU6IHRydWVcbi0tLVxuXG5BIHRleHQgc3R5bGluZyBjb21wb25lbnQgZm9yIGRpZmZlcmVudCB0ZXh0IHN0eWxlc1xuXG4jIyBEZWZhdWx0IGhlYWRpbmdcblxuYGBgamFkZVxuZGl2LnRleHQtc3R5bGUgRGVmYXVsdCBoZWFkaW5nXG5gYGBcblxuIyMgSDFcbmBgYGphZGVcbmRpdi50ZXh0LXN0eWxlLi1oMSBUaGUgaDEgaGVhZGVyXG5cbmBgYFxuXG4jIyBIMlxuYGBgamFkZVxuZGl2LnRleHQtc3R5bGUuLWgyIFRoZSBoMiBoZWFkZXJcbmBgYFxuXG4jIyBIM1xuYGBgamFkZVxuZGl2LnRleHQtc3R5bGUuLWgzIFRoZSBoMyBoZWFkZXJcbmBgYFxuXG4jIyBCb2xkXG5gYGBqYWRlXG5kaXYudGV4dC1zdHlsZS4tYm9sZCBCb2xkIHRleHRcbmBgYFxuXG4jIyBBbGlnbiBjZW50ZXJcbmBgYGphZGVcbmRpdi50ZXh0LXN0eWxlLi1jZW50ZXIgQ2VudGVyZWQgdGV4dFxuYGBgXG5cbiMjIEFsaWduIHJpZ2h0XG5gYGBqYWRlXG5kaXYudGV4dC1zdHlsZS4tcmlnaHQgUmlnaHQgYWxpZ25lZCB0ZXh0XG5gYGBcblxuKi9cblxuXG5cbi50ZXh0LXN0eWxlIHtcblxuXHRmb3IgbmFtZSwgdmFsdWUgaW4gdGhlbWUuY29tcG9uZW50cy50ZXh0LXN0eWxlIHtcblx0XG5cdFx0XG5cdFx0Ji4te25hbWV9IHtcblx0XHRcdHt2YWx1ZX1cblx0XHR9XG4gICAgICAgIFxuXHR9XG59XG5cblxuIiwiLmNvbGxhcHNlLXVpIHtcblxuXHQ+IC5jb250ZW50IHtcblxuXHRcdCYuLXRyYW5zaXRpb24ge1xuXHRcdFx0dHJhbnNpdGlvbjogaGVpZ2h0IHRoZW1lLnNldHRpbmdzLnRyYW5zaXRpb24tZHVyYXRpb24gZWFzZTtcblx0XHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0XHRoZWlnaHQ6IDA7XG5cdFx0fVxuXHR9XG5cblx0Ji4tY2xvc2Uge1xuXHRcdD4gLmNvbnRlbnQge1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHR9XG5cblx0XHQuY29sbGFwc2UtaWNvbiB7XG5cdFx0XHR0cmFuc2Zvcm06IHJvdGF0ZSggOTBkZWcgKTtcblx0XHR9XG5cdH1cblxuXHQuY29sbGFwc2UtaWNvbiB7XG5cdFx0dHJhbnNpdGlvbjogYWxsIHRoZW1lLnNldHRpbmdzLnRyYW5zaXRpb24tZHVyYXRpb24gZWFzZTtcblx0fVxufSIsIkBmb250LWZhY2V7XG4gICAgZm9udC1mYW1pbHk6XCJHbG9iZXItUmVndWxhclwiO1xuICAgIHNyYzp1cmwoXCIuLi9Gb250cy9HbG9iZXItUmVndWxhci5lb3RcIikgZm9ybWF0KFwiZW90XCIpLCBcbiAgICAgICAgdXJsKFwiLi4vRm9udHMvR2xvYmVyLVJlZ3VsYXIud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLFxuICAgICAgICB1cmwoXCIuLi9Gb250cy9HbG9iZXItUmVndWxhci53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSxcbiAgICAgICAgdXJsKFwiLi4vRm9udHMvR2xvYmVyLVJlZ3VsYXIudHRmXCIpIGZvcm1hdChcInR0ZlwiKVxufVxuXG5AZm9udC1mYWNle1xuICAgIGZvbnQtZmFtaWx5OlwiR2xvYmVyLVNlbWktQm9sZFwiO1xuICAgIHNyYzp1cmwoXCIuLi9Gb250cy9HbG9iZXItU2VtaS1Cb2xkLmVvdFwiKSBmb3JtYXQoXCJlb3RcIiksIFxuICAgICAgICB1cmwoXCIuLi9Gb250cy9HbG9iZXItU2VtaS1Cb2xkLndvZmZcIikgZm9ybWF0KFwid29mZlwiKSxcbiAgICAgICAgdXJsKFwiLi4vRm9udHMvR2xvYmVyLVNlbWktQm9sZC53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSxcbiAgICAgICAgdXJsKFwiLi4vRm9udHMvR2xvYmVyLVNlbWktQm9sZC50dGZcIikgZm9ybWF0KFwidHRmXCIpXG59XG5cbkBmb250LWZhY2V7XG4gICAgZm9udC1mYW1pbHk6XCJHbG9iZXItQm9sZFwiO1xuICAgIHNyYzp1cmwoXCIuLi9Gb250cy9HbG9iZXItQm9sZC5lb3RcIikgZm9ybWF0KFwiZW90XCIpLCBcbiAgICAgICAgdXJsKFwiLi4vRm9udHMvR2xvYmVyLUJvbGQud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLFxuICAgICAgICB1cmwoXCIuLi9Gb250cy9HbG9iZXItQm9sZC53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSxcbiAgICAgICAgdXJsKFwiLi4vRm9udHMvR2xvYmVyLUJvbGQudHRmXCIpIGZvcm1hdChcInR0ZlwiKVxufVxuXG5AZm9udC1mYWNle1xuICAgIGZvbnQtZmFtaWx5OlwiR2xvYmVyLUV4dHJhLUJvbGRcIjtcbiAgICBzcmM6dXJsKFwiLi4vRm9udHMvR2xvYmVyLUV4dHJhLUJvbGQuZW90XCIpIGZvcm1hdChcImVvdFwiKSwgXG4gICAgICAgIHVybChcIi4uL0ZvbnRzL0dsb2Jlci1FeHRyYS1Cb2xkLndvZmZcIikgZm9ybWF0KFwid29mZlwiKSxcbiAgICAgICAgdXJsKFwiLi4vRm9udHMvR2xvYmVyLUV4dHJhLUJvbGQud29mZjJcIikgZm9ybWF0KFwid29mZjJcIiksXG4gICAgICAgIHVybChcIi4uL0ZvbnRzL0dsb2Jlci1FeHRyYS1Cb2xkLnR0ZlwiKSBmb3JtYXQoXCJ0dGZcIilcbn0iLCJib2R5IHtcbiAgICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5O1xufVxuXG5cbmgxLCBoMiwgaDMsIGg0LCBwIHtcbiAgICAmLi1lcnJvciB7XG4gICAgICAgIGNvbG9yOiB0aGVtZS5jb2xvcnMucmVkO1xuICAgIH1cbn1cbmgxLm1hZ2F6aW5lLXRpdGxlIHtcblxuICAgIGZvbnQtZmFtaWx5OiAnR2xvYmVyLUV4dHJhLUJvbGQnO1xuICAgIGNvbG9yOiB0aGVtZS5jb2xvcnMud2hpdGU7XG4gICAgZm9udC1zaXplOiByZW0oODBweCk7XG4gICAgbGluZS1oZWlnaHQ6IHJlbSg5MHB4KTtcbiAgICBsZXR0ZXItc3BhY2luZzogcmVtKDJweCk7XG4gICAgdGV4dC1zaGFkb3c6IDAgMXB4IDVweCAjMDAwMDA7XG4gICAgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTtcbn1cblxuaDEge1xuXG4gICAgZm9udC1mYW1pbHk6ICdHbG9iZXItRXh0cmEtQm9sZCc7XG4gICAgY29sb3I6IHRoZW1lLmNvbG9ycy5ibGFjaztcbiAgICBmb250LXNpemU6IHJlbSg1MHB4KTtcbiAgICBsaW5lLWhlaWdodDogcmVtKDYycHgpO1xuICAgIGxldHRlci1zcGFjaW5nOiByZW0oMXB4KTtcbiAgICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5O1xuXG59XG5cbmgyIHtcblxuICAgIGZvbnQtZmFtaWx5OiAnR2xvYmVyLUV4dHJhLUJvbGQnO1xuICAgIGNvbG9yOiB0aGVtZS5jb2xvcnMuYmxhY2s7XG4gICAgZm9udC1zaXplOiByZW0oMzBweCk7XG4gICAgbGluZS1oZWlnaHQ6IHJlbSg0OHB4KTtcbiAgICBwYWRkaW5nLWJvdHRvbTogcmVtKDEwcHgpO1xuXG59XG5cbmgzIHtcblxuICAgIGZvbnQtZmFtaWx5OiAnR2xvYmVyLUV4dHJhLUJvbGQnO1xuICAgIGNvbG9yOiB0aGVtZS5jb2xvcnMuYmxhY2s7XG4gICAgZm9udC1zaXplOiByZW0oMjJweCk7XG4gICAgbGluZS1oZWlnaHQ6IHJlbSgzMnB4KTtcbiAgICBwYWRkaW5nLWJvdHRvbTogcmVtKDEwcHgpO1xuICAgIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7XG5cbn1cblxuaDQge1xuICAgIGZvbnQtZmFtaWx5OiAnR2xvYmVyLUV4dHJhLUJvbGQnO1xuICAgIGNvbG9yOiB0aGVtZS5jb2xvcnMuYmxhY2s7XG4gICAgZm9udC1zaXplOiByZW0oMjBweCk7XG4gICAgbGluZS1oZWlnaHQ6IHJlbSgzMHB4KTtcbn1cblxuXG5cbi5wYXJhZ3JhcGgtZWxlbWVudCBhIHtcbiAgICAvLyBib3JkZXItYm90dG9tOiAxcHggc29saWQgdGhlbWUuY29sb3JzLnByaW1hcnk7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgY29sb3I6IHRoZW1lLmNvbG9ycy5wcmltYXJ5O1xuICAgIGZvbnQtc2l6ZTogcmVtKDIwcHgpO1xuICAgIGxpbmUtaGVpZ2h0OiByZW0oMzBweCk7XG4gICAgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTtcbiAgICAmOmhvdmVyIHtcbiAgICAgICAgY29sb3I6IHRoZW1lLmNvbG9ycy5ncmF5LTE7XG4gICAgfVxufVxuXG5hIHtcbiAgICBjb2xvcjogdGhlbWUuY29sb3JzLnByaW1hcnk7XG4gICAgLy8gZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgJjpob3ZlciB7XG4gICAgICAgIGNvbG9yOiB0aGVtZS5jb2xvcnMuZ3JheS0xO1xuICAgIH1cbn1cblxuXG4ucC1ub3JtYWwsIG9sLCB1bCwgLnRleHQtc3R5bGUge1xuICAgIGZvbnQtZmFtaWx5OiAnR2xvYmVyLVJlZ3VsYXInO1xuICAgIGNvbG9yOiB0aGVtZS5jb2xvcnMuYmxhY2s7XG4gICAgZm9udC1zaXplOiByZW0oMjBweCk7XG4gICAgbGluZS1oZWlnaHQ6IHJlbSgzMHB4KTtcbiAgICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5O1xufVxuXG5cbnVsLCBvbCB7XG4gICAgbWFyZ2luLWxlZnQ6IDEuN3JlbTtcbn1cblxucC4tYm9sZCwgLnAtYm9sZCB7XG4gICAgZm9udC1mYW1pbHk6ICdHbG9iZXItRXh0cmEtQm9sZCc7XG4gICAgY29sb3I6IHRoZW1lLmNvbG9ycy5ibGFjaztcbiAgICBmb250LXNpemU6IHJlbSgxNnB4KTtcbiAgICBsaW5lLWhlaWdodDogcmVtKDIzcHgpO1xufVxuXG5wLi1iaWcsIC5wLWJpZyB7XG5cbiAgICBmb250LWZhbWlseTogJ0dsb2Jlci1SZWd1bGFyJztcbiAgICBjb2xvcjogdGhlbWUuY29sb3JzLmJsYWNrO1xuICAgIGZvbnQtc2l6ZTogcmVtKDI0cHgpO1xuICAgIGxpbmUtaGVpZ2h0OiByZW0oMzJweCk7XG59XG5cbnAuLXNtYWxsLCAucC1zbWFsbCB7XG5cbiAgICBmb250LWZhbWlseTogJ0dsb2Jlci1SZWd1bGFyJztcbiAgICBjb2xvcjogdGhlbWUuY29sb3JzLmJsYWNrO1xuICAgIGZvbnQtc2l6ZTogcmVtKDE1cHgpO1xuICAgIGxpbmUtaGVpZ2h0OiByZW0oMjFweCk7XG4gICAgcGFkZGluZy1ib3R0b206IHJlbSg2MHB4KTtcblxufVxuXG4uZm9vdGVyLXRleHQge1xuXG4gICAgZm9udC1mYW1pbHk6ICdHbG9iZXItU2VtaS1Cb2xkJztcbiAgICBjb2xvcjogdGhlbWUuY29sb3JzLmJsYWNrO1xuICAgIGZvbnQtc2l6ZTogcmVtKDEzcHgpO1xuICAgIGxpbmUtaGVpZ2h0OiByZW0oMjBweCk7XG4gICAgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTtcblxufVxuXG4uZm9vdGVyLWhlYWRpbmcge1xuXG4gICAgY29sb3I6IHRoZW1lLmNvbG9ycy53aGl0ZTtcbiAgICBmb250LWZhbWlseTogJ0dsb2Jlci1FeHRyYS1Cb2xkJztcbiAgICBmb250LXNpemU6IHJlbSgxNXB4KTtcbiAgICBsaW5lLWhlaWdodDogcmVtKDI0cHgpO1xuICAgIHBhZGRpbmctYm90dG9tOiByZW0oMTVweCk7XG4gICAgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTtcblxufVxuXG5pbnB1dCwgdGV4dGFyZWEge1xuXG4gICAgZm9udC1mYW1pbHk6ICdHbG9iZXItU2VtaS1Cb2xkJztcbiAgICBjb2xvcjogdGhlbWUuY29sb3JzLmdyYXktMTtcbiAgICBmb250LXNpemU6IHJlbSgxNnB4KTtcbiAgICBsaW5lLWhlaWdodDogcmVtKDI2cHgpO1xuICAgIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7XG4gICAgJjphY3RpdmUge1xuICAgICAgICBjb2xvcjogdGhlbWUuY29sb3JzLmdyZWVuO1xuICAgIH1cblxuICAgICYuLWRpc2FibGVkIHtcbiAgICAgICAgY29sb3I6IHRoZW1lLmNvbG9ycy5ncmF5LTI7XG4gICAgfVxuXG59XG5cbi50YWctdGV4dCB7XG5cbiAgICBmb250LWZhbWlseTogJ0dsb2Jlci1Cb2xkJztcbiAgICBjb2xvcjogdGhlbWUuY29sb3JzLmdyYXktMTtcbiAgICBmb250LXNpemU6IHJlbSgxNnB4KTtcbiAgICBsaW5lLWhlaWdodDogcmVtKDI2cHgpO1xuICAgIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7XG59XG5cbi5sYWJlbC10ZXh0IHtcblxuICAgIGZvbnQtZmFtaWx5OiAnR2xvYmVyLUV4dHJhLUJvbGQnO1xuICAgIGNvbG9yOiB0aGVtZS5jb2xvcnMuYmxhY2s7XG4gICAgZm9udC1zaXplOiByZW0oMTZweCk7XG4gICAgbGluZS1oZWlnaHQ6IHJlbSgyNHB4KTtcbiAgICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5O1xuICAgICYuLWxpYnJhcnkge1xuICAgICAgICBmb250LWZhbWlseTogJ0dsb2Jlci1SZWd1bGFyJztcbiAgICB9XG5cbn1cblxuLmZpbHRlci10ZXh0IHtcblxuICAgIGZvbnQtZmFtaWx5OiAnR2xvYmVyLUJvbGQnO1xuICAgIGNvbG9yOiB0aGVtZS5jb2xvcnMuZ3JheS0xO1xuICAgIGZvbnQtc2l6ZTogcmVtKDE2cHgpO1xuICAgIGxpbmUtaGVpZ2h0OiByZW0oMjRweCk7XG4gICAgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTtcbn1cblxuLm5hdmlnYXRpb24tdGV4dCB7XG4gICAgZm9udC1mYW1pbHk6ICdHbG9iZXItQm9sZCc7XG4gICAgY29sb3I6IHRoZW1lLmNvbG9ycy5ibGFjaztcbiAgICBmb250LXNpemU6IHJlbSgxNnB4KTtcbiAgICBsaW5lLWhlaWdodDogcmVtKDI0cHgpO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgbGV0dGVyLXNwYWNpbmc6IHJlbSgycHgpO1xuICAgIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7XG5cbn1cblxuLmNhcHRpb24tdGV4dCB7XG4gICAgZm9udC1mYW1pbHk6ICdHbG9iZXItRXh0cmEtQm9sZCc7XG4gICAgY29sb3I6IHRoZW1lLmNvbG9ycy5ibGFjaztcbiAgICBmb250LXNpemU6IHJlbSgxNHB4KTtcbiAgICBsaW5lLWhlaWdodDogcmVtKDIxcHgpO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5O1xuXG59XG5cbi5saW5rLWJ1dHRvbiwgLmxpbmstYnV0dG9uIGEge1xuXG4gICAgZm9udC1mYW1pbHk6ICdHbG9iZXItQm9sZCc7XG4gICAgY29sb3I6IHRoZW1lLmNvbG9ycy5ncmF5LTE7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBmb250LXNpemU6IHJlbSgxNnB4KTtcbiAgICBsaW5lLWhlaWdodDogcmVtKDIzcHgpO1xuICAgIGxldHRlci1zcGFjaW5nOiByZW0oMnB4KTtcbiAgICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5O1xuXG59XG5cbi5idXR0b24tdGV4dCB7XG4gICAgXG4gICAgZm9udC1mYW1pbHk6ICdHbG9iZXItRXh0cmEtQm9sZCc7XG4gICAgZm9udC1zaXplOiByZW0oMTZweCk7XG4gICAgbGluZS1oZWlnaHQ6IHJlbSgyM3B4KTtcbiAgICBsZXR0ZXItc3BhY2luZzogcmVtKDJweCk7XG4gICAgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTtcblxufVxuXG5cblxuXG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogdGhlbWUuc2V0dGluZ3MuYnJlYWtwb2ludHMuc21hbGwpIHsgXG4gICAgaDEubWFnYXppbmUtdGl0bGUge1xuICAgICAgICBmb250LXNpemU6IHJlbSg0MHB4KTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSg0OHB4KTtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IHJlbSgxcHgpO1xuICAgIH1cblxuICAgIGgxIHtcbiAgICAgICAgZm9udC1zaXplOiByZW0oMzZweCk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiByZW0oNDZweCk7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiByZW0oMC43cHgpO1xuICAgIH1cblxuICAgIGgyIHtcbiAgICAgICAgZm9udC1zaXplOiByZW0oMjZweCk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiByZW0oMzZweCk7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiByZW0oOHB4KTtcbiAgICB9XG5cbiAgICBoMyB7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtKDIwcHgpO1xuICAgICAgICBsaW5lLWhlaWdodDogcmVtKDI4cHgpO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogcmVtKDhweCk7XG4gICAgfVxuXG4gICAgaDQge1xuICAgICAgICBmb250LXNpemU6IHJlbSgxOHB4KTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSgyNnB4KTtcbiAgICB9XG5cbiAgICAucC1ub3JtYWwsIG9sLCB1bCwgLnRleHQtc3R5bGUge1xuICAgICAgICBmb250LXNpemU6IHJlbSgxOHB4KTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSgyNnB4KTtcbiAgICB9XG5cbiAgICB1bCwgb2wge1xuICAgICAgICBtYXJnaW4tbGVmdDogMS43cmVtO1xuICAgIH1cblxuICAgIHAuLWJpZywgLnAtYmlnIHtcbiAgICAgICAgZm9udC1zaXplOiByZW0oMjBweCk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiByZW0oMzBweCk7XG4gICAgfVxuXG5cbiAgICAucGFyYWdyYXBoLWVsZW1lbnQgYSB7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtKDE1cHgpO1xuICAgICAgICBsaW5lLWhlaWdodDogcmVtKDIxcHgpO1xuICAgIH1cblxuXG59XG5cbiIsIi5jYXJ0LWNvbXBvbmVudCB7XG4gICAgXG4gICAgXG4gICAgLmJ1dHRvbiB7XG4gICAgICAgIC5zdmctaWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiB0aGVtZS5zZXR0aW5ncy5icmVha3BvaW50cy5zbWFsbCkge1xuICAgIC5jYXJ0LWNvbXBvbmVudCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgfVxufSIsIi5kcm9wZG93bi1maWx0ZXIge1xuXG4gICAgXG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBtYXJnaW46IHJlbSgxMHB4KSBhdXRvO1xuICAgIFxuICAgID4uZGVzY3JpcHRpb24ge1xuICAgICAgICBtYXJnaW4tYm90dG9tOnJlbSgxMHB4KTtcblxuICAgICAgICBhIHtcbiAgICAgICAgICAgIGNvbG9yOiB0aGVtZS5jb2xvcnMucHJpbWFyeTtcbiAgICAgICAgICAgIC8vIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB0aGVtZS5jb2xvcnMucHJpbWFyeTtcbiAgICAgICAgfVxuICAgICAgICBhOmhvdmVyIHtcblxuICAgICAgICAgICAgY29sb3I6IHRoZW1lLmNvbG9ycy5ibGFjaztcbiAgICAgICAgICAgIC8vIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB0aGVtZS5jb2xvcnMuYmxhY2s7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICA+LmRyb3AtZG93biB7XG5cbiAgICAgICAgPi50b2dnbGUge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdGhlbWUuY29sb3JzLmdyYXktMTtcbiAgICAgICAgICAgIHBhZGRpbmc6IHJlbSg1cHgpO1xuICAgICAgICB9XG4gICAgICAgICYuLW9wZW4ge1xuICAgICAgICAgICAgPi50b2dnbGUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICA+LmRyb3AtZG93bi1tZW51IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB0aGVtZS5jb2xvcnMuZ3JheS0xO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnZhbHVlIHtcbiAgICAgICAgb3ZlcmZsb3c6aGlkZGVuO1xuICAgICAgICBwYWRkaW5nOiByZW0oNXB4KTtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiB0aGVtZS5jb2xvcnMucHJpbWFyeTtcbiAgICAgICAgfVxuXG4gICAgfVxuICAgIC5zdmctaWNvbiB7XG4gICAgICAgIGNvbG9yOiB0aGVtZS5jb2xvcnMucHJpbWFyeTtcblxuICAgICAgICAmLi10b2dnbGUge1xuICAgICAgICAgICAgY29sb3I6IHRoZW1lLmNvbG9ycy5ncmF5LTE7XG4gICAgICAgICAgICB3aWR0aDogcmVtKDEwcHgpO1xuICAgICAgICAgICAgaGVpZ2h0OiByZW0oNnB4KTtcbiAgICAgICAgfVxuICAgIH1cblxuXG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiB0aGVtZS5zZXR0aW5ncy5icmVha3BvaW50cy5zbWFsbCkge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICA+LmRyb3AtZG93biB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICAgICAgPi50b2dnbGUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6YmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59IiwiLmVsZW1lbnQtbGF5b3V0IHtcbiAgICAgICAgbWF4LXdpZHRoOnJlbSgxMDAwcHgpO1xuICAgICAgICB3aWR0aDogMTAwJTsgLyogSUUxMSBmaXggKi9cbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgcGFkZGluZzogMCAxcmVtO1xuXG4gICAgICAgICYuLXNtYWxsIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IHJlbSg4MDBweCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLi1mdWxsIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxufSIsIlxuXG4uZmVlZGJhY2stZm9ybSB7XG4gICAgLmF1dG9jb21wbGV0ZSA+LnZhbHVlIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBwYWRkaW5nLXRvcDogNXB4O1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgdGhlbWUuY29sb3JzLmdyYXktMjtcbiAgICB9XG59XG5cblxuIiwiLmZvb3Rlci1jb21wb25lbnQge1xuICAgIFxuICAgIGNvbG9yOiB0aGVtZS5jb2xvcnMud2hpdGU7XG4gICAgcGFkZGluZzogcmVtKDMwcHgpIHJlbSgxNDBweCk7XG4gICAgLy8gbWFyZ2luLXRvcDogcmVtKDEyMHB4KTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZS5jb2xvcnMuYmxhY2s7XG5cbiAgICAubWFpbHRvLCAuaW1wcmVzc3VtLCAucGhvbmUge1xuICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTtcbiAgICAgICAgfVxuICAgIH1cblxuXG5cblxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogdGhlbWUuc2V0dGluZ3MuYnJlYWtwb2ludHMuc21hbGwpIHtcblxuICAgICAgICBwYWRkaW5nOiByZW0oMzBweCkgcmVtKDcwcHgpO1xuXG4gICAgICAgIC4tbG9jYXRpb24sIC4tcGhvbmUsIC4tbWFpbCwgLmltcHJlc3N1bSwgLmZvb3Rlci1oZWFkaW5nIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgLmxvZ28ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgLi1zcGFjZXIge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC4tcGhvbmUsIC4tbWFpbCwgLi1pbXByZXNzdW0ge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IHJlbSgyMHB4KTtcbiAgICAgICAgfVxuXG5cbiAgICB9XG5cbn0iLCIuZm9ybS1jb21wb25lbnQge1xuXG4gICAgLmlucHV0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWUuY29sb3JzLmdyYXktMztcbiAgICAgICAgY29sb3I6ICMwMDA7XG4gICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIGRhcmtncmV5O1xuICAgICAgICBwYWRkaW5nOiByZW0oMTBweCk7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtKDIwcHgpXG4gICAgICAgIHdpZHRoOiByZW0oMjAwcHgpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oMTZweCk7XG4gICAgfVxuICAgIC5idXR0b24ge1xuICAgICAgICB3aWR0aDogcmVtKDEzMHB4KTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDAuODtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtKDE2cHgpO1xuICAgICAgICBcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgM3B0IDJwdCB0aGVtZS5jb2xvcnMucHJpbWFyeTtcbiAgICAgICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgICAgICBib3JkZXI6bm9uZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBcbn0iLCIubGV2ZWwtYm94e1xuXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIFxuICAgID4uYm94IHtcbiAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiByZW0oNXB4KTtcbiAgICAgICAgYm9yZGVyOiAycHggc29saWQgdGhlbWUuY29sb3JzLnNlY29uZGFyeTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICYuLWZpbGxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOnRoZW1lLmNvbG9ycy5zZWNvbmRhcnk7XG4gICAgICAgIH1cbiAgICB9XG59IiwiLm1ldGEtYm94IHtcblxuICAgIHBhZGRpbmc6IHJlbSg1MHB4KSAwO1xuXG4gICAgJi4tZWRpdG9yIHtcbiAgICAgICAgLnRhc2stbWVudSB7XG4gICAgICAgICAgICA+LmFkZCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTpub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiB0aGVtZS5zZXR0aW5ncy5icmVha3BvaW50cy5zbWFsbCkge1xuICAgICAgICBwYWRkaW5nOiByZW0oNDBweCkgMDtcblxuICAgICAgICAmLi1lZGl0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTpub25lO1xuICAgICAgICB9XG4gICAgfVxuXG5cbn0iLCJcbkBwYWdlIHtcbiAgbWFyZ2luOiAxY207XG5cbn1cblxuQG1lZGlhIHByaW50IHtcblxuXG4gICAgLnBkZi1saWNlbnNlIHtcbiAgICAgICAgcGFnZS1icmVhay1hZnRlcjogYWx3YXlzO1xuICAgIH1cblxufSIsIi5pZS1maXhNaW5IZWlnaHQge1xuICAgIGRpc3BsYXk6ZmxleDtcbiAgICAucGFnZSB7XG4gICAgICAgIG1pbi1oZWlnaHQ6MTAwdmg7XG4gICAgICAgIHBvc2l0aW9uOnJlbGF0aXZlO1xuICAgICAgICB3aWR0aDoxMDAlO1xuICAgICAgICBkaXNwbGF5OmZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOmNvbHVtbjtcblxuICAgICAgICAuY29udGVudCB7XG4gICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgIC8vaGFjayBmb3IgbGl6ZW56LXBhZ2VcbiAgICAgICAgICAvLyBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZS5jb2xvcnMuZ3JheS0xO1xuICAgICAgICAgIC8vICYuLW5vYXV0aCB7XG4gICAgICAgICAgLy8gICA+LmF1dGgge1xuICAgICAgICAgIC8vICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgICAgLy8gICB9XG4gICAgICAgICAgICBcbiAgICAgICAgICAvLyB9XG4gICAgICAgIH1cbiAgICB9XG5cbn1cblxuXG5cblxuLy9kb2VzbnQgd29yayBmb3IgaWUxMVxuLypcbmh0bWwsIGJvZHkge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBtaW4taGVpZ2h0OiAxMDB2aDtcbn1cblxuYm9keSA+LmNvbnRlbnQge1xuICAgIGZsZXg6IDE7XG59XG5cbiovIiwiLnRlYWNoZXItY29tbWVudCB7XG5cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHBhZGRpbmctdG9wOiByZW0oMzBweCk7XG5cbiAgICA+IC5kb3dubG9hZCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgID4gc3ZnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogcmVtKDE2cHgpO1xuICAgICAgICB9XG4gICAgfVxuXG59IiwiLnppa3phay1sb2dvLXdoaXRle1xuICAgIFxuICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICA+IGltZyB7XG4gICAgICAgIGhlaWdodDogcmVtKDUwcHgpO1xuICAgIH1cblxufSIsIi56aWt6YWstbG9nb3tcbiAgICBcbiAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgPiBpbWcge1xuICAgICAgICBoZWlnaHQ6IHJlbSg1MHB4KTtcbiAgICB9XG5cbn0iLCIuYnV0dG9uLWJhY2sge1xuXG4gICAgaGVpZ2h0OiByZW0oNDBweCk7XG4gICAgLy9wYWRkaW5nOiByZW0oMTBweCkgcmVtKDE1cHgpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiB0aGVtZS5jb2xvcnMuZ3JheS0xO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgY29sb3I6IHRoZW1lLmNvbG9ycy5wcmltYXJ5O1xuICAgIH1cblxuICAgID4gLnN2Zy1pY29uIHtcbiAgICAgICAgZmlsbDogdGhlbWUuY29sb3JzLnByaW1hcnk7XG4gICAgICAgIG1hcmdpbi10b3A6IHJlbSg3cHgpO1xuICAgIH1cblxufVxuXG4iLCIuYnV0dG9uLWdlbmVyYWwge1xuXG4gICAgaGVpZ2h0OiByZW0oNDBweCk7XG4gICAgYm9yZGVyLXJhZGl1czogcmVtKDIwcHgpO1xuICAgIHBhZGRpbmc6IHJlbSgxMHB4KSByZW0oMTVweCk7XG4gICAgY29sb3I6IHRoZW1lLmNvbG9ycy53aGl0ZTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxufVxuXG4iLCIuYnV0dG9uLXByaW1hcnkge1xuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWUuY29sb3JzLnByaW1hcnk7XG4gICAgYm9yZGVyOiBub25lO1xuICAgICY6aG92ZXIge1xuXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lLmNvbG9ycy5wcmltYXJ5LWhvdmVyO1xuXG4gICAgfVxuXG4gICAgJi4tZGlzYWJsZWQge1xuXG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWUuY29sb3JzLmdyYXktMjtcbiAgICAgICAgY29sb3I6IHRoZW1lLmNvbG9ycy5ibGFjaztcbiAgICAgICAgXG4gICAgfVxuXG59XG5cbiIsIi5idXR0b24tc2Vjb25kYXJ5IHtcblxuICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lLmNvbG9ycy53aGl0ZTtcbiAgICBib3JkZXI6IDJweCBzb2xpZCB0aGVtZS5jb2xvcnMucHJpbWFyeTtcbiAgICBjb2xvcjogdGhlbWUuY29sb3JzLnByaW1hcnk7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWUuY29sb3JzLnByaW1hcnk7XG4gICAgICAgIGNvbG9yOiB0aGVtZS5jb2xvcnMud2hpdGU7XG4gICAgfVxuXG4gICAgJi4tYWN0aXZlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWUuY29sb3JzLnByaW1hcnk7XG4gICAgICAgIGNvbG9yOiB0aGVtZS5jb2xvcnMud2hpdGU7XG4gICAgfVxuXG59IiwiLmxpbmstYnV0dG9uIHtcblxuICAgID4gYSB7XG4gICAgICAgIFxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiB0aGVtZS5jb2xvcnMucHJpbWFyeTtcbiAgICAgICAgfVxuXG4gICAgfSBcblxufSIsIi5jb2xsYXBzZS11aSB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgPi5jb250ZW50IHtcbiAgICAgICAgY3Vyc29yOiBhdXRvO1xuICAgIH1cbiAgICA+LnRvZ2dsZSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCB0aGVtZS5jb2xvcnMuYmxhY2s7XG4gXG5cbiAgICAgICAgPiAuY29sbGFwc2UtaWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogcmVtKDI0cHgpO1xuICAgICAgICAgICAgaGVpZ2h0OiByZW0oMjRweCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltYWdlcy9pY29uLW1pbnVzLnN2ZycpO1xuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWFnZXMvaWNvbi1taW51cy1ncmV5LnN2ZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi4tY2xvc2Uge1xuICAgICAgICA+IC50b2dnbGUge1xuICAgICAgICAgICAgPiAuY29sbGFwc2UtaWNvbiB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWFnZXMvaWNvbi1wbHVzLnN2ZycpO1xuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltYWdlcy9pY29uLXBsdXMtZ3JleS5zdmcnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cblxufSIsIi5jb250ZW50cy10YWJsZSB7XG4gICAgLmVsZW1lbnQ6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTsgXG4gICAgfVxuXG4gICAgLmVsZW1lbnQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oMzZweCk7XG5cbiAgICAgICAgLmltYWdlIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG4gICAgICAgIC5wYWdlLXJvdyB7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG4gICAgICAgIC5wYWdlbnVtYmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiB0aGVtZS5jb2xvcnMucHJpbWFyeTtcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBHbG9iZXItRXh0cmEtQm9sZDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiByZW0oNjJweCk7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbSg1MHB4KTtcbiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiByZW0oMXB4KTtcbiAgICAgICAgfVxuICAgIH1cbn0iLCIuaW1hZ2UtZWxlbWVudCB7XG4gICAgXG4gICAgcGFkZGluZy1ib3R0b206IHJlbSg2MHB4KTtcbiAgICBcbiAgICA+IC5pbWFnZSB7XG4gICAgICAgIG1pbi13aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICA+IC5jYXB0aW9uIHtcbiAgICAgICAgcGFkZGluZy10b3A6IHJlbSgxMHB4KTtcbiAgICB9XG59IiwiLmxpY2Vuc2UtY29udGVudCB7XG4gICAgbWFyZ2luLWJvdHRvbTogcmVtKDEyMHB4KTtcbiAgICAmLi1hdXRoIHtcbiAgICAgICAgLmF1dGgge1xuICAgICAgICAgICAgLmRpYWxvZyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWUuY29sb3JzLmdyYXktMztcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogcmVtKDE1MHB4KTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogcmVtKDYwcHgpO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSg2MHB4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgIFxuICAgICYuLW5vYXV0aCB7XG4gICAgICAgIC5hdXRoIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIC5vdmVybGF5IHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogNTA7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNztcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC5ub2F1dGgge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWUuY29sb3JzLmJhY2tncm91bmQtZ3JlZW5cbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiByZW0oMTUwcHgpO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IHJlbSg2MHB4KTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSg2MHB4KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuYnV0dG9uIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cbiAgICBcbiAgICAuY2FydC1jb21wb25lbnQge1xuICAgICAgICA+LmJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDIwMHB4O1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgfVxuICAgIFxuXG5cbiAgICAubGluayB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjMDA5YTViO1xuICAgICAgICBjb2xvcjogIzAwOWE1YjtcbiAgICAgICAgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTtcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBjb2xvcjogIzZiNmI2YjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC51c2VyLWxpY2Vuc2VzIHtcbiAgICAgICAgPi50YWJsZSB7XG5cbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgdGgge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0ZCwgdGgge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IHJlbSg0cHgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG5cblxuXG5cbn0iLCIub3ZlcnZpZXctY29udGVudCB7XG5cbiAgICBtYXJnaW4tdG9wOiByZW0oMTUwcHgpO1xuXG59IiwiLnBhcmFncmFwaC1lbGVtZW50IHtcblxuICAgIHBhZGRpbmctYm90dG9tOiByZW0oNjBweCk7XG5cbiAgICB1bCwgb2wge1xuICAgICAgICA+bGkge1xuICAgICAgICAgICAgcGFkZGluZzogcmVtKDVweCk7XG4gICAgICAgIH1cblxuXG4gICAgfVxuXG59IiwiLnNjaG9vbHBhZ2UtY29udGVudCB7XG4gICAgbWFyZ2luLXRvcDogcmVtKDE1MHB4KTtcblxuICAgICYuZWxlbWVudC1sYXlvdXQge1xuICAgICAgICBtYXgtd2lkdGg6IHJlbSg3MDBweCk7XG4gICAgfVxufSIsIi5zaW5nbGVwYWdlLWNvbnRlbnQge1xuXG4gICAgbWFyZ2luLXRvcDogcmVtKDE1MHB4KTtcbiAgICBtYXJnaW4tYm90dG9tOiByZW0oMTIwcHgpO1xuIFxufSIsIi5zbGlkZS1jb250YWluZXIge1xuXG4gICAgcGFkZGluZy1ib3R0b206IHJlbSg2MHB4KTtcblxufSIsIi5zdGFydHBhZ2UtY29udGVudCB7XG5cbiAgICBwYWRkaW5nLXRvcDogcmVtKDY0cHgpO1xuXG4gICAgPi5zdWJoZWFkZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZS5jb2xvcnMueWVsbG93O1xuICAgICAgICAuYXdhcmQge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMTAwcHg7XG4gICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgICAgIC5jb250YWluZXIge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxNnB4XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAuaW1hZ2Uge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5wb2thbCB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiA1MHB4O1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMzJweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC53b3JsZGRpZGFjIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDMycHg7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLnRleHQge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMjJweDtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMzBweDtcbiAgICAgICAgICAgICAgICBmb250LWZhbWlseTogJ0dsb2Jlci1TZW1pLUJvbGQnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmludHJvIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWUuY29sb3JzLmdyYXktMztcbiAgICAgICAgcGFkZGluZy10b3A6IHJlbSgxMDBweCk7XG4gICAgIFxuICAgIH1cblxuICAgIC52aWRlby1lbGVtZW50IHtcbiAgICAgICAgbWF4LXdpZHRoOiA2Mi41cmVtO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgcGFkZGluZzogMCAxcmVtO1xuXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDMuNzVyZW07XG4gICAgfVxuXG5cbn1cblxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IHRoZW1lLnNldHRpbmdzLmJyZWFrcG9pbnRzLnNtYWxsKSB7XG4gICAgLnN0YXJ0cGFnZS1jb250ZW50IHtcblxuICAgICAgICA+LnN1YmhlYWRlciB7XG5cbiAgICAgICAgICAgIC5hd2FyZCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgLmNvbnRhaW5lciB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHhcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDE2cHhcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLnRleHQge1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgICAgICAgICBmb250LWZhbWlseTogJ0dsb2Jlci1TZW1pLUJvbGQnO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMTZweFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC52aWRlby1lbGVtZW50IHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuICAgIH1cblxufSIsIi5zdGFydHBhZ2UtY29udGVudHMge1xuXG4gICAgLmNvbnRlbnRzLXJvdyB7XG4gICAgICAgIC5pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDVweDtcbiAgICAgICAgfVxuICAgICAgICAucGFnZW51bWJlciB7XG4gICAgICAgICAgICB3aWR0aDogcmVtKDMycHgpO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIH1cblxuICAgIH1cbiAgICBcblxufVxuIiwiLnZpZGVvLWVsZW1lbnQge1xuICAgIFxuICAgIHBhZGRpbmctYm90dG9tOiByZW0oNjBweCk7XG5cbiAgICA+IC5jYXB0aW9uIHtcbiAgICAgICAgcGFkZGluZy10b3A6IHJlbSgxMHB4KTtcbiAgICB9XG59IiwiLnllYXItaGVhZGVyIHtcblxuICAgIGJvcmRlci1ib3R0b206IHNvbGlkIDJweCB0aGVtZS5jb2xvcnMuZ3JheS0xO1xuICAgIHBhZGRpbmctYm90dG9tOiByZW0oMzBweCk7XG4gICAgbWFyZ2luLXRvcDogcmVtKDc1cHgpO1xuICAgIG1hcmdpbi1ib3R0b206IHJlbSgzMHB4KTtcblxufSIsIi5lZGl0b3ItY29udGVudCB7XG4gICAgLy8gZGwge1xuICAgIC8vICAgICB3aWR0aDogMTAwJTtcbiAgICAvLyAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAvLyAgICAgLy8gYmFja2dyb3VuZDogI2ZmMDtcbiAgICAvLyAgICAgcGFkZGluZzogMDtcbiAgICAvLyAgICAgbWFyZ2luOiAwXG4gICAgLy8gICAgIGNsZWFyOiBsZWZ0O1xuICAgIC8vIH1cbiAgICAvLyBkdCB7XG4gICAgLy8gICAgIGZsb2F0OiBsZWZ0O1xuICAgIC8vICAgICB3aWR0aDogMjUlO1xuICAgIC8vICAgICBwYWRkaW5nOiAwO1xuICAgIC8vICAgICBtYXJnaW46IDA7XG4gICAgLy8gICAgIG1hcmdpbi1ib3R0b206IDJweDtcbiAgICAvLyAgICAgbWFyZ2luLXJpZ2h0OiAycHg7XG4gICAgLy8gICAgIGJhY2tncm91bmQtY29sb3I6I2ZmZjtcbiAgICAvLyAgICAgY2xlYXI6IGxlZnQ7XG4gICAgLy8gfVxuICAgIC8vIGRkIHtcbiAgICAvLyAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgLy8gICAgIHdpZHRoOiA3MiU7XG4gICAgICAgIFxuICAgIC8vICAgICBiYWNrZ3JvdW5kOiAjZmZmXG4gICAgLy8gICAgIHBhZGRpbmc6IDA7XG4gICAgLy8gICAgIG1hcmdpbjogMFxuICAgIC8vIH1cbiAgICBcblxuZGwge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1mbG93OiByb3cgd3JhcDtcbn1cbiAgZHQge1xuICAgIGZsZXgtYmFzaXM6IDMwJTtcbiAgICBwYWRkaW5nOiAycHggNHB4O1xuICAgIGJhY2tncm91bmQ6ICMzMzM7XG4gICAgLy8gdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgbWFyZ2luLXJpZ2h0OiAycHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMnB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG5cbiAgICAmLmN1c3RvbWVyIHtcbiAgICAgICAgbWFyZ2luLXRvcDogcmVtKDE2cHgpO1xuICAgIH1cbiAgfVxuICBkZCB7XG4gICAgZmxleC1iYXNpczogNjAlO1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICBtYXJnaW4tYm90dG9tOiAycHg7XG4gICAgcGFkZGluZzogMnB4IDRweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIC8vYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMzMzM7XG4gICAgXG4gICAgJi5jdXN0b21lciB7XG4gICAgICAgIG1hcmdpbi10b3A6IHJlbSgxNnB4KTtcbiAgICB9XG4gIH1cblxuICAgIC5mb3JtLWNvbXBvbmVudCB7XG4gICAgICAgIC5pbnB1dCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYXV0b2NvbXBsZXRlLWNvbXBvbmVudCB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrO1xuICAgIH1cblxuXG59XG5cbiIsIi5wYWdpbmF0aW9uIHtcblxuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG5cbiAgICBsaSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAgICAgcGFkZGluZzogcmVtKDVweCk7XG4gICAgfVxufSIsIi5zdGF0ZS1zeW1ib2wge1xuXG4gICAgJi4tcmVkZWVtZWQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZS5jb2xvcnMuZ3JlZW47XG4gICAgfVxuICAgICYuLXVucmVkZWVtZWQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZS5jb2xvcnMuZ3JheS0xO1xuICAgIH1cblxuICAgICYuLWRlYWN0aXZhdGVkIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWUuY29sb3JzLnJlZDtcbiAgICB9XG5cbn0iLCIuYW5zd2VyLWNvbnRhaW5lciB7XG5cbiAgICBwYWRkaW5nLWJvdHRvbTogcmVtKDI1cHgpO1xuICAgIFxuICAgID4gLmlucHV0IHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiByZW0oMTVweCk7XG4gICAgICAgIC8vaGFjayB0byBhdm9pZCBzaHJpbmtpbmcgb2YgY2hlY2tib3hlc1xuICAgICAgICBmbGV4Om5vbmU7XG4gICAgfVxuXG59IiwiLmRyb3Bkb3duLXRleHQge1xuXG4gICAgPiAuc2VsZWN0IHtcblxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZS5jb2xvcnMuZ3JheS0zO1xuICAgICAgICBib3JkZXI6IHNvbGlkIDFweCB0aGVtZS5jb2xvcnMuZ3JheS0yO1xuXG4gICAgfVxuXG59IiwiLmZlZWRiYWNrLWJveCB7XG5cbiAgICA+IC5mZWVkYmFjay1wYW5lbCB7XG5cbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICAgICA+IC5pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogcmVtKDQwcHgpO1xuICAgICAgICAgICAgaGVpZ2h0OiByZW0oNDBweCk7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IHJlbSgyMHB4KTtcbiAgICAgICAgfVxuXG4gICAgfVxuXG5cbiAgICAmLi13cm9uZyB7XG5cbiAgICAgICAgJi5zZWxlY3Qge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdGhlbWUuY29sb3JzLndyb25nO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWUuY29sb3JzLndyb25nLWJhY2tncm91bmQ7XG4gICAgICAgIH1cblxuICAgICAgICA+IC5hbnN3ZXItY29udGFpbmVyIHtcbiAgICAgICAgICAgID4gLnRleHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiB0aGVtZS5jb2xvcnMud3Jvbmc7XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICA+IC5mZWVkYmFjay1wYW5lbCB7XG5cbiAgICAgICAgICAgID4gLmljb24ge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1hZ2VzL2ljb24td3Jvbmcuc3ZnJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgJi4tY29ycmVjdCB7XG5cbiAgICAgICAgJi5zZWxlY3Qge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdGhlbWUuY29sb3JzLmdyZWVuO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjp0aGVtZS5jb2xvcnMuY29ycmVjdC1iYWNrZ3JvdW5kO1xuICAgICAgICB9XG4gICAgICAgIFxuXG4gICAgICAgID4gLmFuc3dlci1jb250YWluZXIge1xuICAgICAgICAgICAgPiAudGV4dCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IHRoZW1lLmNvbG9ycy5ncmVlbjtcbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgID4gLmZlZWRiYWNrLXBhbmVsIHtcblxuICAgICAgICAgICAgPiAuaWNvbiB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWFnZXMvaWNvbi1jb3JyZWN0LnN2ZycpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgIH1cblxufSIsIi5mZWVkYmFjay1jb250YWluZXIge1xuICAgIFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwYWRkaW5nLXRvcDogcmVtKDM1cHgpO1xuICAgIFxufSIsIi5mZWVkYmFjay1wYW5lbCB7XG4gICAgXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWUuY29sb3JzLmdyYXktMztcblxufSIsIi5ob3RzcG90LWltYWdlIHtcblxuICAgIG1pbi13aWR0aDogMTAwJTtcbiAgICBcbiAgICBtYXJnaW4tYm90dG9tOiByZW0oMTBweCk7XG4gICAgXG59IiwiLmhvdHNwb3QtcG9pbnQge1xuICAgIGJhY2tncm91bmQtY29sb3I6dGhlbWUuY29sb3JzLmdyYXktMTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgd2lkdGg6IHJlbSgyNXB4KTtcbiAgICBoZWlnaHQ6IHJlbSgyNXB4KTtcbiAgICBvcGFjaXR5OiAwLjY7XG5cbiAgICAmLi13cm9uZyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6dGhlbWUuY29sb3JzLndyb25nO1xuICAgIH1cbiAgICBcbiAgICAmLi1jb3JyZWN0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjp0aGVtZS5jb2xvcnMucHJpbWFyeTtcbiAgICB9XG5cbn0iLCIuaG90c3BvdC1xdWVzdGlvbiB7XG4gICAgXG4gICAgcGFkZGluZy1ib3R0b206IHJlbSgyMHB4KTtcblxufSIsIi5xdWVzdGlvbi1jb250YWluZXIge1xuXG4gICAgcGFkZGluZy1ib3R0b206IHJlbSgyNXB4KTtcblxufSIsIi5hZGQtbGljZW5zZSB7XG4gICAgLy8gZm9udC1zaXplOiByZW0oNDBweCk7XG5cbiAgICA+LmlucHV0IHtcbiAgICAgICAgcGFkZGluZzogNXB4O1xuICAgICAgICBmb250LXNpemU6IHJlbSgzMHB4KTtcbiAgICAgICAgd2lkdGg6IHJlbSgxMDBweCk7XG4gICAgfVxuXG4gICAgLmJ1dHRvbi1nZW5lcmFsIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDAuOHB4O1xuICAgIH1cblxufSIsIi5tYWdhemluZS1oZWFkZXIge1xuXG4gICAgIFxuICAgICA+LmNvdmVyLWltYWdlIHtcbiAgICAgICAgICBwb3NpdGlvbjpyZWxhdGl2ZTtcbiAgICAgICAgICAvL21hcmdpbi10b3A6IDcwcHg7XG5cbiAgICAgICAgICBoZWlnaHQ6IDQ2MHB4O1xuICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG5cbiAgICAgICAgICA+LnRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgIHBvc2l0aW9uOmFic29sdXRlO1xuICAgICAgICAgICAgICAgd2lkdGg6MTAwJTtcbiAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwwLDAsMC4zKTtcbiAgICAgICAgICAgICAgIHotaW5kZXg6NTtcbiAgICAgICAgICB9XG4gICAgICAgICAgXG4gICAgICAgICAgPiAuY29udGVudCB7XG4gICAgICAgICAgICAgICBwb3NpdGlvbjphYnNvbHV0ZTtcbiAgICAgICAgICAgICAgIHotaW5kZXg6IDEwO1xuICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMTRyZW07XG4gICAgICAgICAgICAgICA+IC5kYXRlIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IHRoZW1lLmNvbG9ycy53aGl0ZTtcbiAgICAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICAmLi1tb2JpbGUge1xuICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICB9XG4gICAgIH1cblxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogdGhlbWUuc2V0dGluZ3MuYnJlYWtwb2ludHMuc21hbGwpIHtcbiAgICAgICAgPi5jb3Zlci1pbWFnZSB7XG4gICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAmLi1tb2JpbGUge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAzMDBweDtcbiAgICAgICAgICAgICAgICAgICAgPiAuY29udGVudCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDhyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxufVxuXG5cbiIsIi5tYWdhemluZS1wYWdlIHtcbiAgICBtYXJnaW4tYm90dG9tOiByZW0oMTIwcHgpO1xuICAgICYuLXN0dWRlbnQge1xuICAgICAgICAubWFnYXppbmUtZGVzY3JpcHRpb24sIC50ZWFjaGVyLWNvbW1lbnQsIC51bml0LW1lbnUsIC5tZXRhLWJveCwgLmRyb3Bkb3duLWZpbHRlciB7IFxuICAgICAgICAgICAgZGlzcGxheTpub25lO1xuICAgICAgICB9XG4gICAgfVxufSIsIi5tYWdhemluZS1wcmV2aWV3IHtcblxuICAgICYuLWhpZGRlbiB7XG4gICAgICAgIGRpc3BsYXk6bm9uZTtcbiAgICB9XG4gICAgXG4gICAgdGV4dC1hbGlnbjpjZW50ZXI7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICA+LmltYWdlLWNvbnRhaW5lciB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB0ZXh0LWFsaWduOmxlZnQ7XG5cblxuICAgICAgICAucHJldmlldy1pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiB0aGVtZS5jb2xvcnMuZ3JlZW47XG4gICAgICAgIH1cblxuICAgICAgICAuZnV0dXJlLXB1YmxpY2F0aW9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMHB4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiMwMDlGRTM7XG4gICAgICAgICAgICBjb2xvcjojZmZmO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSg0OHB4KTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246Y2VudGVyXG4gICAgICAgIH1cblxuICAgIH1cblxuXG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgLnByZXZpZXcge1xuICAgICAgICAgICAgLnByZXZpZXctaWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAmLi1ob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgIC5pbWFnZSB7XG4gICAgICAgIGJveC1zaGFkb3c6IDBweCAycHggMTZweCByZ2JhKDEwNywgMTA3LCAxMDcsIDAuNTApXG4gICAgICAgIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC4zcztcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLmltYWdlIHtcbiAgICAgICAgYm94LXNoYWRvdzogMCAycHggNHB4IDAgcmdiYSgxMDcsMTA3LDEwNywwLjMwKTtcbiAgICAgICAgbWF4LWhlaWdodDogcmVtKDMyMHB4KTtcbiAgICB9XG5cbiAgICAuZGF0ZSB7XG4gICAgICAgIHBhZGRpbmctdG9wOiByZW0oMTVweCk7XG4gICAgfVxuXG5cbiAgICAucHJldmlldyB7XG4gICAgICAgIHRleHQtYWxpZ246Y2VudGVyO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMTMwcHg7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIDAlKTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAucHJldmlldy1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA2MHB4O1xuICAgICAgICAgICAgaGVpZ2h0OiA2MHB4O1xuICAgICAgICAgICAgJi4taG92ZXIge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6bm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIFxuICAgICAgICB9XG4gICAgICAgIC50ZXh0IHtcbiAgICAgICAgICAgIGNvbG9yOiB0aGVtZS5jb2xvcnMuZ3JlZW47XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbSgxNnB4KTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICB9XG4gICAgfVxuXG5cblxuICAgICYuLWZ1dHVyZXtcbiAgICAgICAgLmltYWdlLWNvbnRhaW5lciB7XG4gICAgICAgICAgICAuY2FydC1jb21wb25lbnQge1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMTBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuXG4gICAgJi4tZGlzYWJsZWR7XG4gICAgICAgIC5pbWFnZS1jb250YWluZXIge1xuICAgICAgICAgICAgLmltYWdlLCAuZGF0ZSwgLnRpdGxlIHtcbiAgICAgICAgICAgICAgICAvLyBmaWx0ZXI6IGdyYXlzY2FsZSgxMDAlKTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cblxufSIsIi5tb2JpbGVuYXZpZ2F0aW9uLW1haW5oZWFkZXIge1xuICAgIFxuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgPiBhIHtcbiAgICAgICAgY29sb3I6IHRoZW1lLmNvbG9ycy5ibGFjaztcbiAgICB9XG5cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IHRoZW1lLnNldHRpbmdzLmJyZWFrcG9pbnRzLm1lZGl1bSkge1xuXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIC8vZGlzcGxheTogbm9uZTtcblxuICAgIH1cblxufSIsIi5tb2JpbGVuYXZpZ2F0aW9uLW1lbnUge1xuICAgIFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IHJlbSg3MXB4KTtcbiAgICBtaW4td2lkdGg6IDMwJTtcbiAgICByaWdodDogMDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZS5jb2xvcnMud2hpdGU7XG4gICAgYm94LXNoYWRvdzogMHB4IDVweCA3cHggMHB4IHJnYmEoMzgsMzgsNDMsMC4xMCk7XG4gICAgbWF4LXdpZHRoOiByZW0oMzc1cHgpO1xuICAgIHBhZGRpbmc6IHJlbSg0NXB4KSByZW0oMTZweCk7XG5cbiAgICA+IGEuLXNob3dhbGwsIGEuLWFib3V0LCBhLi1saWNlbnNlICB7XG5cbiAgICAgICAgY29sb3I6IHRoZW1lLmNvbG9ycy5ibGFjaztcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgY29sb3I6IHRoZW1lLmNvbG9ycy5wcmltYXJ5O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgPiBhLi1zaG93YWxsLCA+IGEuLWFib3V0ICB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiByZW0oMjBweCk7XG4gICAgfVxuXG4gICAgPiBhLi1saWNlbnNlIHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IHJlbSg2MHB4KTtcbiAgICB9XG5cblxuXG59IiwiLm5hdmlnYXRpb24tbGluayB7XG4gICAgXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgID4gLmljb24ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgIH1cblxuICAgID4gLmljb24gc3ZnIHtcbiAgICAgICAgY29sb3I6dGhlbWUuY29sb3JzLnByaW1hcnk7XG4gICAgICAgIHdpZHRoOiByZW0oMzBweCk7XG4gICAgICAgIGhlaWdodDogcmVtKDMwcHgpO1xuICAgICAgICAvL3RvIGF2b2lkIGVsZW1lbnQgc2VsZWN0aW9uIG9uIG1vYmlsZVxuICAgICAgICAmLi1vcGVuLCAmLi1jbG9zZSB7XG4gICAgICAgICAgICBtYXJnaW46IHJlbSgxMHB4KTtcbiAgICAgICAgfVxuICAgIH1cblxuXG4gICAgPiAudGV4dCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiByZW0oMTVweCk7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIC50ZXh0IHtcbiAgICAgICAgICAgIGNvbG9yOiB0aGVtZS5jb2xvcnMucHJpbWFyeTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBcbiAgICAuc3ZnLWljb24uLWlubGluZS4tY2xvc2Uge1xuICAgICAgICBkaXNwbGF5Om5vbmU7XG4gICAgfVxuXG4gICAgJi4tb3BlbiB7XG4gICAgICAgIC5zdmctaWNvbi4taW5saW5lLi1jbG9zZSB7XG4gICAgICAgICAgICBkaXNwbGF5OmlubGluZS1ibG9jaztcbiAgICAgICAgfVxuICAgICAgICAuc3ZnLWljb24uLWlubGluZS4tb3BlbiB7XG4gICAgICAgICAgICBkaXNwbGF5Om5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLi1hY3RpdmUgPi50ZXh0IHtcbiAgICAgICAgLy93ZWlsIGZyZWRpIGRhcyBzY2jDtm4gZmluZGV0OlxuICAgICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgdGhlbWUuY29sb3JzLnByaW1hcnk7XG4gICAgICAgIGNvbG9yOnRoZW1lLmNvbG9ycy5wcmltYXJ5O1xuICAgIH1cbn0iLCIubmF2aWdhdGlvbi1tYWluIHtcbiAgICBcbiAgICAmLi10cmFuc3BhcmVudCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wKVxuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuXG4gICAgICAgIC5uYXZpZ2F0aW9uLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgICAgICA+IC5pY29uIHN2ZyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuYnV0dG9uLXNlY29uZGFyeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICNmZmY7XG4gICAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgfVxuICAgICAgICAuemlremFrLWxvZ28td2hpdGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cbiAgICAgICAgLnppa3phay1sb2dvIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBcbiAgICAgICAgLm1vYmlsZW5hdmlnYXRpb24tbWVudXtcbiAgICAgICAgICAgIC5uYXZpZ2F0aW9uLWxpbmsge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAjMDAwO1xuXG4gICAgICAgICAgICAgICAgLmJ1dHRvbi1zZWNvbmRhcnkge1xuICAgICAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lLmNvbG9ycy5ncmVlbjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHRoZW1lLmNvbG9ycy5ncmVlbjtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IHRoZW1lLmNvbG9ycy5ncmVlbjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IHRoZW1lLmNvbG9ycy5ncmVlbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgPiAuaWNvbiBzdmcge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjp0aGVtZS5jb2xvcnMuZ3JlZW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnppa3phay1sb2dvLXdoaXRlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cblxuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICBwYWRkaW5nOiByZW0oMTBweCkgcmVtKDMwcHgpIHJlbSgxMHB4KSByZW0oMzBweCk7XG4gICAgYm94LXNoYWRvdzogMCAycHggOHB4IDAgcmdiYSgzOCwzOCw0MywwLjEwKTtcblxuICAgIHotaW5kZXg6IDc1O1xuXG4gICAgLi1yaWdodCB7XG4gICAgICAgIHRleHQtYWxpZ246cmlnaHQ7XG4gICAgfVxuXG4gICAgJi4tc2Nob29scGFnZSB7XG4gICAgICAgIC5uYXZpZ2F0aW9uLW1haW5oZWFkZXIsIC5tb2JpbGVuYXZpZ2F0aW9uLW1haW5oZWFkZXIge1xuICAgICAgICAgICAgZGlzcGxheTpub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi4tb3ZlcnZpZXcsICYuLXN0YXJ0cGFnZSwgJi4tc2Nob29scGFnZSB7XG5cbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcblxuICAgICAgICAubW9iaWxlbmF2aWdhdGlvbi1tZW51IHtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgdGhlbWUuY29sb3JzLmdyYXktMjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB0aGVtZS5jb2xvcnMuZ3JheS0yO1xuXG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogdGhlbWUuc2V0dGluZ3MuYnJlYWtwb2ludHMubWVkaXVtKSB7XG4gICAgICAgIFxuICAgICAgICBwYWRkaW5nOiByZW0oMTBweCkgcmVtKDIwcHgpIHJlbSgxMHB4KSByZW0oMzBweCk7XG5cbiAgICAgICAgJi4tb3ZlcnZpZXcsICYuLXN0YXJ0cGFnZSwgJi4tc2Nob29scGFnZSB7IFxuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHRoZW1lLmNvbG9ycy5ncmF5LTI7XG4gICAgICAgIH1cblxuICAgIH1cbn0iLCIubmF2aWdhdGlvbi1tYWluaGVhZGVyIHtcbiAgICBcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIC8vZGlzcGxheTogbm9uZTtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICA+IC5uYXZpZ2F0aW9uLWxpbmsge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IHJlbSgyNHB4KTtcbiAgICB9XG5cbiAgICA+IGEge1xuICAgICAgICBjb2xvcjogdGhlbWUuY29sb3JzLmJsYWNrO1xuICAgIH1cblxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogdGhlbWUuc2V0dGluZ3MuYnJlYWtwb2ludHMubWVkaXVtKSB7XG5cbiAgICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgIH1cblxufSIsIi5uYXZpZ2F0aW9uLXVuaXQge1xuICAgIFxuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgIHBhZGRpbmc6IHJlbSgxMHB4KSByZW0oMzBweCkgcmVtKDEwcHgpIHJlbSgzMHB4KTtcbiAgICBib3gtc2hhZG93OiAwIDJweCA4cHggMCByZ2JhKDM4LDM4LDQzLDAuMTApO1xuXG4gICAgei1pbmRleDogMTA7XG4gICAgLi1yaWdodCB7XG5cbiAgICAgICAgdGV4dC1hbGlnbjpyaWdodDtcbiAgICAgICAgXG4gICAgfVxuXG4gICAgLmJhY2sge1xuICAgICAgICB3aWR0aDogbWluLWNvbnRlbnQ7XG4gICAgfVxuXG4gICAgLnN0dXBpZElFIHtcbiAgICAgICAgZGlzcGxheTogLW1zLWdyaWQ7XG4gICAgICAgIC1tcy1ncmlkLWNvbHVtbnM6IG1pbi1jb250ZW50O1xuICAgIH1cblxufSIsIi5uYXZpZ2F0aW9uLXVuaXRoZWFkZXIge1xuICAgIFxuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgPiBhIHtcbiAgICAgICAgY29sb3I6IHRoZW1lLmNvbG9ycy5ibGFjaztcbiAgICB9XG5cbiAgICA+IC5jbG9zZSB7XG5cbiAgICAgICAgcGFkZGluZy1sZWZ0OiByZW0oMzBweCk7XG5cbiAgICAgICAgPiBzdmcge1xuICAgICAgICAgICAgd2lkdGg6IHJlbSg0MHB4KTtcbiAgICAgICAgICAgIGhlaWdodDogcmVtKDQwcHgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiB0aGVtZS5zZXR0aW5ncy5icmVha3BvaW50cy5zbWFsbCkge1xuXG4gICAgICAgID4gLmRvd25sb2FkIHtcblxuICAgICAgICAgICAgPiAuZG93bmxvYWR0ZXh0IHtcblxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICAgICAgPiAuY2xvc2UgeyBcblxuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiByZW0oMjBweCk7XG4gICAgICAgICAgICBcbiAgICAgICAgfVxuICAgIH1cblxufSIsIi5wcmV2aWV3LW92ZXJ2aWV3e1xuXG4gICAgPi5zdGFydC1tYWdhemluZW92ZXJ2aWV3e1xuICAgICAgICA+LmVsZW1lbnQtbGF5b3V0IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbn0iLCIucHJldmlldy1wYWdlIHtcblxuXG4gICAgLmxldmVsLWltYWdle1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgXG4gICAgICAgICYuLWRlc2t0b3Age1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLi1tb2JpbGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IHRoZW1lLnNldHRpbmdzLmJyZWFrcG9pbnRzLnhzbWFsbCkge1xuXG4gICAgLnByZXZpZXctcGFnZSB7XG4gICAgICAgIC5pbWFnZXtcbiAgICAgICAgICAgICYuLWRlc2t0b3Age1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmLi1tb2JpbGUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICB9XG5cbn0iLCIucHJldmlldy1zd2l0Y2gge1xuICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIHBhZGRpbmc6IHJlbSg1NXB4KSAwXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWUuY29sb3JzLmJhY2tncm91bmQtYmx1ZTtcblxuICAgICAudG9nZ2xlIHtcbiAgICAgICAgIHdpZHRoOiA2NHB4O1xuICAgICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgICAgbWFyZ2luOiAwIDE2cHg7XG4gICAgIH1cbiAgICAgLnByZXZpZXcsIC5tYWdhemluZSB7XG4gICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICBjb2xvcjogdGhlbWUuY29sb3JzLmdyYXktMTtcblxuICAgICAgICAgJi4tYWN0aXZlIHtcbiAgICAgICAgICAgICBjb2xvcjogdGhlbWUuY29sb3JzLnByaW1hcnk7XG4gICAgICAgICB9XG4gICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICBjb2xvcjogdGhlbWUuY29sb3JzLnByaW1hcnk7XG4gICAgICAgICB9XG5cbiAgICAgfVxuXG4gICAgIC5jYXJ0LWNvbXBvbmVudCB7XG4gICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAuYnV0dG9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxNTBweDtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgIH1cbiAgICAgICAgIFxuICAgICB9XG5cblxuXG59XG5cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiB0aGVtZS5zZXR0aW5ncy5icmVha3BvaW50cy5zbWFsbCkgeyBcbiAgICAucHJldmlldy1zd2l0Y2gubmF2aWdhdGlvbi10ZXh0IHtcbiAgICAgICAgZm9udC1zaXplOiByZW0oMTRweCk7XG4gICAgfVxuICAgIC5wcmV2aWV3LXN3aXRjaCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICA+LmVsZW1lbnQtbGF5b3V0IHtcbiAgICAgICAgICAgIHdpZHRoOiB1bnNldDtcbiAgICAgICAgfVxuICAgICAgICAuY2FydC1jb21wb25lbnQge1xuICAgICAgICAgICAgZGlzcGxheTpub25lO1xuICAgICAgICB9XG4gICAgXG4gICAgXG4gICAgfVxuXG59XG5cbiIsIi5zdGFydC1hcnJvd25hdmlnYXRpb24ge1xuXG5cbiAgICAuc3ZnLWljb24uLXJpZ2h0IHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbiAgICB9XG5cbiAgICAucHJldmlvdXMsIC5uZXh0IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgY3Vyc29yOnBvaW50ZXI7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtKDgwcHgpO1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgY29sb3I6IHRoZW1lLmNvbG9ycy5wcmltYXJ5O1xuICAgICAgICBcbiAgICB9XG5cblxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogdGhlbWUuc2V0dGluZ3MuYnJlYWtwb2ludHMubWVkaXVtKSB7IFxuXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBcbiAgICAgICAgLnByZXZpb3VzLCAubmV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAlLCAxNjBweCk7XG4gICAgICAgIH1cblxuICAgICAgICAucHJldmlvdXMsIC5uZXh0LCAuZWxlbWVudHMge1xuICAgICAgICAgICAgZmxleDogMSAxIGF1dG87XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgIH1cblxuXG5cbn0iLCIuc3RhcnQtbGljZW5zZWluc3RydWN0aW9uIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZS5jb2xvcnMuc2Vjb25kYXJ5O1xuICAgIGNvbG9yOiAjZmZmO1xuXG4gICAgLnAtYmlnLCBoMiB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgIH1cblxuICAgIC5zdmctaWNvbiB7XG4gICAgICAgIFxuICAgICAgICAmLmNhcnQge1xuICAgICAgICAgICAgd2lkdGg6IHJlbSg3MHB4KTtcbiAgICAgICAgICAgIGhlaWdodDogcmVtKDY1cHgpO1xuICAgICAgICB9XG4gICAgICAgICYudXJsIHtcbiAgICAgICAgICAgIC8vIHdpZHRoOiByZW0oMTczcHgpO1xuICAgICAgICAgICAgd2lkdGg6IHJlbSgxMzhweClcbiAgICAgICAgICAgIGhlaWdodDogcmVtKDY1cHgpO1xuICAgICAgICB9XG4gICAgICAgICYuY29kZSB7XG4gICAgICAgICAgICAvLyB3aWR0aDogcmVtKDE1N3B4KTtcbiAgICAgICAgICAgIC8vIHdpZHRoOiByZW0oMTM4cHgpO1xuICAgICAgICAgICAgd2lkdGggcmVtKDcwcHgpO1xuICAgICAgICAgICAgaGVpZ2h0OiByZW0oNjVweCk7XG4gICAgICAgIH1cbiAgICAgICAgJi5ib29rIHtcbiAgICAgICAgICAgIHdpZHRoOiByZW0oNzBweCk7XG4gICAgICAgICAgICBoZWlnaHQ6IHJlbSg2NXB4KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5hcnJvdyB7XG4gICAgICAgIG1hcmdpbi10b3A6IHJlbSgyMHB4KTtcbiAgICB9XG4gICAgLmVsZW1lbnRzIHtcbiAgICAgICAgbWFyZ2luLXRvcDogcmVtKDQwcHgpO1xuICAgICAgICAuZWxlbWVudCB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOmNlbnRlcjtcbiAgICAgICAgICAgIC50ZXh0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIFxuICAgICAgICB9XG4gICAgfVxuICAgIFxuXG4gICAgLmNvbnRhaW5lciB7XG4gICAgICAgIHBhZGRpbmc6IHJlbSg2MHB4KSByZW0oMTZweCk7XG4gICAgfVxuXG5cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IHRoZW1lLnNldHRpbmdzLmJyZWFrcG9pbnRzLnNtYWxsKSB7XG5cbiAgICAgICAgLmVsZW1lbnRzIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbSgzMHB4KTtcbiAgICAgICAgICAgIC5lbGVtZW50IHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5hcnJvdyB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSgyMHB4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC51cmwsIC5jb2RlIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oMzdweCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IHJlbSg2MHB4KSByZW0oMHB4KTtcbiAgICAgICAgfVxuXG4gICAgfVxuXG59IiwiLnN0YXJ0LW1hZ2F6aW5lb3ZlcnZpZXcge1xuICAgIG1hcmdpbi1ib3R0b206IHJlbSg2MHB4KTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgXG4gICAgLnN0YXJ0LXBvaW50bmF2aWdhdGlvbiB7XG4gICAgICAgIGJvdHRvbTogMTAwcHg7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG5cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IHRoZW1lLnNldHRpbmdzLmJyZWFrcG9pbnRzLm1lZGl1bSkgeyBcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtKDQwcHgpO1xuICAgICAgICAuZGVzY3JpcHRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTpub25lO1xuICAgICAgICB9XG4gICAgICAgIC5zdGFydC1wb2ludG5hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAuYnV0dG9uLWNvbnRhaW5lciB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICAgICAgLmJ1dHRvbnMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgPi5vcmRlciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG8gcmVtKDE1cHgpIGF1dG87XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59IiwiXG4uc3RhcnQtcG9pbnRuYXZpZ2F0aW9uIHtcbiAgICBcbiAgICAmLi1oaWRkZW4ge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgICBcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgd2lkdGg6IDEwMHB4O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAzMHB4O1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAwJSlcblxuICAgIC5wb2ludCB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBtYXJnaW46IDVweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICB3aWR0aDogMTBweDtcbiAgICAgICAgaGVpZ2h0OiAxMHB4O1xuICAgICAgICAvL2JvcmRlcjogMXB4IHNvbGlkICM2NmM1ZWY7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lLmNvbG9ycy5ncmF5LTQ7XG5cbiAgICAgICAgJi4tYWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lLmNvbG9ycy5ncmF5LTI7XG4gICAgICAgIH1cbiAgICB9XG5cblxufSIsIi5zdGFydC10ZWFzZXIge1xuICAgIG1hcmdpbi1ib3R0b206IHJlbSg2MHB4KTtcbiAgICAvL3BhZGRpbmctYm90dG9tOiByZW0oNDBweCk7XG5cbiAgICAuZG93bmxvYWQge1xuICAgICAgICAuc3ZnLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDE3cHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDE0cHg7XG4gICAgICAgIH1cbiAgICAgICAgLnRleHQge1xuICAgICAgICAgICAgXHRoZWlnaHQ6IHJlbSgyM3B4KTtcbiAgICAgICAgICAgICAgICBjb2xvcjogdGhlbWUuY29sb3JzLmdyYXktMTtcdFxuICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBHbG9iZXItQm9sZDtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IHJlbSgxNnB4KTtcbiAgICAgICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogcmVtKDJweCk7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSgyM3B4KTtcbiAgICAgICAgfVxuICAgICAgICBhOmhvdmVyIHtcbiAgICAgICAgICAgIC50ZXh0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogdGhlbWUuY29sb3JzLmdyZWVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgIC5jb3ZlciB7XG4gICAgICAgIC5pbWFnZS1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgIC5wcmV2aWV3IHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTpub25lO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogdGhlbWUuY29sb3JzLmdyZWVuO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICAgICAgICAgICAgICB6LWluZGV4OiAxMDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjpjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgIC5wcmV2aWV3LWljb24ge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDYwcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDYwcHg7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLnRleHQge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IHRoZW1lLmNvbG9ycy5ncmVlbjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDE2cHgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmltYWdlIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgLnByZXZpZXcge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLmltYWdlIHtcbiAgICAgICAgICAgICAgICAgICAgYm94LXNoYWRvdzogMHB4IDJweCAxNnB4IHJnYmEoMTA3LCAxMDcsIDEwNywgMC41MClcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuM3MsIG9wYWNpdHkgMC4zcztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cblxuXG5cbiAgICAgLmdyaWQtbGF5b3V0Li1ndXR0ZXIgPiAuaXRlbS5pbmZvcyB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMTAwcHg7XG4gICAgICAgID4gLmRhdGUge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oMTVweCk7XG4gICAgICAgIH1cblxuICAgICAgICA+IC50aXRsZSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oMTVweCk7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgID4gLmRlc2NyaXB0aW9uIHtcblxuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgY29sb3I6IHRoZW1lLmNvbG9ycy5wcmltYXJ5O1xuICAgICAgICAgICAgICAgIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IHRoZW1lLmNvbG9ycy5ncmF5LTE7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5saW5rLWJ1dHRvbiB7XG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogdGhlbWUuY29sb3JzLmdyZWVuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuc3ZnLWljb24ge1xuICAgICAgICAgICAgICAgIHdpZHRoOiByZW0oMjNweCk7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiByZW0oMjNweCk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICB0aGVtZS5jb2xvcnMucHJpbWFyeTtcbiAgICAgICAgICAgICAgICAmLi1yaWdodCB7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgPi5jYXJ0LWNvbXBvbmVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTUwcHg7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgID4uYnV0dG9ucyA+LmJ1dHRvbi1nZW5lcmFsIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbSgzMHB4KTtcbiAgICAgICAgfVxuXG4gICAgfVxuXG5cblxuXG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiB0aGVtZS5zZXR0aW5ncy5icmVha3BvaW50cy5zbWFsbCkge1xuICAgICAgICAgLmNvdmVyIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgLmltYWdlLWNvbnRhaW5lciB7XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgLnByZXZpZXcge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OmlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAuaW1hZ2Uge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogODAlO1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSgxNXB4KTtcbiAgICAgICAgICAgICAgICAgICAgYm94LXNoYWRvdzogMHB4IDJweCAxNnB4IHJnYmEoMTA3LCAxMDcsIDEwNywgMC41MClcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICAgICAgICAgICAgICAvLyB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuM3MsIG9wYWNpdHkgMC4zcztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAuZ3JpZC1sYXlvdXQuLWd1dHRlciA+IC5pdGVtLmluZm9zIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMHB4O1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICBcbiAgICB9XG5cbn0iLCIuc3RhcnQtdGVzdGltb25pYWxjb250YWluZXIge1xuICAgIG1hcmdpbi1ib3R0b206IHJlbSg2MHB4KTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZS5jb2xvcnMuc2Vjb25kYXJ5O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICBoZWlnaHQ6IHJlbSgzNTBweCk7XG5cbiAgICAudGVzdGltb25pYWwge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDFzO1xuXG4gICAgICAgIC5xdW90ZSwgLmF1dG9yIHtcbiAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICB9XG4gICAgICAgIC5xdW90ZSA+IHAge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IHJlbSgxMHB4KTtcbiAgICAgICAgICAgIGRpc3BsYXk6aW5saW5lO1xuICAgICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIH1cbiAgICAgICAgJi4taGlkZGVuIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB9XG4gICAgfVxuXG5cblxuICAgIC5zdGFydC1wb2ludG5hdmlnYXRpb24ge1xuICAgICAgICAucG9pbnQge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdGhlbWUuY29sb3JzLmxpZ2h0LWJsdWU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOnRoZW1lLmNvbG9ycy5saWdodC1ibHVlO1xuICAgICAgICAgICAgJi4tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiB0aGVtZS5zZXR0aW5ncy5icmVha3BvaW50cy5zbWFsbCkgeyBcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtKDUwcHgpO1xuICAgICAgICBoZWlnaHQ6IHJlbSg0MDBweCk7XG4gICAgICAgIFxuICAgICAgICAudGVzdGltb25pYWwge1xuICAgICAgICAgICAgLnF1b3RlID4gcCB7XG4gICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdHbG9iZXItQm9sZCc7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMjZweCk7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSgzNHB4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn0iLCIuc3RhcnQtemlremFrdGVhc2VyIHtcbiAgICBtYXJnaW4tYm90dG9tOiByZW0oNjBweCk7XG4gICAgLnRleHQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiB0aGVtZS5jb21wb25lbnRzLm1hcmdpbi1ib3gubWVkaXVtO1xuICAgIH1cbiAgICBcbiAgICAuaW1hZ2Uge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAuc3ZnLWljb24ge1xuICAgICAgICBjb2xvcjogdGhlbWUuY29sb3JzLnByaW1hcnk7XG4gICAgICAgIHdpZHRoOiAzMHB4O1xuICAgICAgICBoZWlnaHQ6IDMwcHg7XG4gICAgfVxuICAgIC5wb2ludCB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgIH1cblxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogdGhlbWUuc2V0dGluZ3MuYnJlYWtwb2ludHMueHNtYWxsKSB7IFxuICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oNDBweCk7XG4gICAgICAgIC5pbWFnZSB7XG4gICAgICAgICAgICAvL21hcmdpbi1yaWdodDowcHg7XG4gICAgICAgIH1cbiAgICB9XG5cbn0iLCIudGFzay1hbGVydCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMHB4O1xuICAgIGJvdHRvbTogMHB4O1xuICAgIGxlZnQ6IDBweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgei1pbmRleDogMjAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwwLDAsMC43KTtcblxuICAgIC5jb250ZW50IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICAgcGFkZGluZzogcmVtKDY0cHgpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IDI1dnc7XG4gICAgICAgIHRvcDogMTAwcHg7XG4gICAgICAgIFxuICAgICAgICAuYnV0dG9uLCAubWVzc2FnZSB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogdGhlbWUuc2V0dGluZ3MuYnJlYWtwb2ludHMueHNtYWxsKSB7XG4gICAgICAgIC5jb250ZW50IHtcbiAgICAgICAgICAgIHRvcDogNTBweDtcbiAgICAgICAgICAgIHdpZHRoOjkwJTtcbiAgICAgICAgICAgIGxlZnQ6IDV2dztcbiAgICAgICAgICAgIHBhZGRpbmc6IHJlbSgzMnB4KTtcbiAgICAgICAgfVxuICAgIH1cbn0iLCIudGFzay1jb250YWluZXIge1xuXG4gICAgLy8gcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIC8vdG9wOiByZW0oNzBweCk7XG4gICAgLy8gd2lkdGg6IDEwMHZ3O1xuICAgIHBhZGRpbmctdG9wOiByZW0oNzBweCk7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWUuY29sb3JzLmJhY2tncm91bmQtZ3JlZW47XG5cbiAgICBcblxuICAgIHBhZGRpbmctdG9wOiByZW0oOTBweCk7XG4gICAgcGFkZGluZy1yaWdodDogcmVtKDE0MHB4KTtcbiAgICBwYWRkaW5nLWJvdHRvbTogcmVtKDYwcHgpO1xuICAgIHBhZGRpbmctbGVmdDogcmVtKDE0MHB4KTtcbiAgICBtYXJnaW4tYm90dG9tOiByZW0oODBweCk7XG5cbiAgICAudGFzay1mb3JtIHtcbiAgICAgICAgbWFyZ2luLXRvcDogcmVtKDEyMHB4KTtcbiAgICB9XG4gICAgLmNsb3NlIHtcblxuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiByZW0oOTVweCk7XG4gICAgICAgIHJpZ2h0OiByZW0oMjVweCk7XG5cbiAgICAgICAgPiAuc3ZnLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IHJlbSg0MHB4KTtcbiAgICAgICAgICAgIGhlaWdodDogcmVtKDQwcHgpO1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAuc2hhcmUge1xuXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgbWFyZ2luLXRvcDogcmVtKDMwcHgpO1xuXG4gICAgfVxuXG4gICAgLmRlc2NyaXB0aW9uLCAubGFiZWwge1xuICAgICAgICBtYXJnaW4tdG9wOiByZW0oNDBweCk7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgfVxuXG4gICAgLnRhc2stdGl0bGUsIC50YXNrLWRlc2NyaXB0aW9uIHtcblxuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IHJlbSgxNXB4KTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICB9XG5cbiAgICAuaW5wdXRsYWJlbCB7XG5cbiAgICAgICAgcGFkZGluZy1ib3R0b206IHJlbSg1cHgpO1xuXG4gICAgfVxuXG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiB0aGVtZS5zZXR0aW5ncy5icmVha3BvaW50cy5zbWFsbCkge1xuICAgICAgICBcblxuICAgICAgICBwYWRkaW5nOiByZW0oMjBweCkgcmVtKDE1cHgpIHJlbSg0MHB4KSByZW0oMTVweCk7XG5cbiAgICAgICAgLmRlc2NyaXB0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbSg2MHB4KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiByZW0oMzBweCk7XG4gICAgICAgIH1cblxuICAgICAgICAuc2hhcmUge1xuICAgICAgICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICAgICAgICBtYXJnaW46IHJlbSgxMHB4KSBhdXRvO1xuICAgICAgICB9XG5cbiAgICB9XG5cbn0iLCIudGFzay1saW5rIHtcblxuICAgIFxuICAgIG1hcmdpbjogcmVtKDEwcHgpIDA7XG4gICAgZGlzcGxheTpmbGV4O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lLmNvbG9ycy5ncmF5LTM7XG4gICAgPiBhIHtcbiAgICAgICAgY29sb3I6IHRoZW1lLmNvbG9ycy5wcmltYXJ5O1xuICAgIH1cbiAgICAuYnV0dG9uIHtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgfVxuICAgIC5jb3B5IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgIH1cblxuICAgIC5jb3B5LWxpbmsge1xuICAgICAgICB3aWR0aDogcmVtKDE2cHgpO1xuICAgICAgICBoZWlnaHQ6IHJlbSgxNnB4KTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiByZW0oMTBweCk7XG4gICAgICAgIC8vIGN1cnNvcjpwb2ludGVyO1xuICAgICAgICBcbiAgICB9XG59IiwiLnRhc2stbWVudSB7XG5cbiAgICA+LmFkZCB7XG4gICAgICAgIGN1cnNvcjpwb2ludGVyO1xuICAgICAgICAmLi1kaXNhYmxlZHtcbiAgICAgICAgICAgIGNvbG9yOmdyZXk7XG4gICAgICAgICAgICBjdXJzb3I6IGF1dG87XG4gICAgICAgIH1cblxuICAgIH1cbiAgICBcbiAgICAvKj4uY2xvc2Uge1xuICAgICAgICBkaXNwbGF5Om5vbmU7XG4gICAgICAgIGN1cnNvcjpwb2ludGVyO1xuICAgIH1cbiAgICA+LnNoYXJlIHtcbiAgICAgICAgZGlzcGxheTpub25lO1xuICAgICAgICBjdXJzb3I6cG9pbnRlcjtcbiAgICB9XG4gICAgKi9cbn0iLCIudGFzay1yZXNwb25zZSB7XG5cblxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDBweDtcbiAgICBib3R0b206IDBweDtcbiAgICBsZWZ0OiAwcHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHotaW5kZXg6IDEwMDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLCAwLjcpO1xuICAgIHBhZGRpbmc6IHJlbSgxMDBweCk7XG5cbiAgICBhLmJyZWFrLXRleHQge1xuICAgICAgICBjb2xvcjogIzAwMDtcbiAgICAgICAgJjpob3ZlciB7XG5cbiAgICAgICAgfVxuICAgIH1cblxuICAgID4uY29udGVudCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgICAgICBwYWRkaW5nOiByZW0oMjBweCk7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgPi5jbG9zZSB7XG4gICAgICAgICAgICB0b3A6IHJlbSgxNnB4KTtcbiAgICAgICAgICAgIHJpZ2h0OiByZW0oMTZweClcbiAgICAgICAgfVxuXG5cblxuICAgIH1cblxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogdGhlbWUuc2V0dGluZ3MuYnJlYWtwb2ludHMuc21hbGwpIHtcbiAgICAgICAgXG4gICAgICAgIFxuICAgICAgICAudGFzay1saW5rIHtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgLnN2Zy1pY29ue1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6bm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogdGhlbWUuc2V0dGluZ3MuYnJlYWtwb2ludHMueHNtYWxsKSB7XG4gICAgICAgIHBhZGRpbmc6IHJlbSgyMHB4KTtcbiAgICAgICAgLmNvbnRlbnQge1xuICAgICAgICAgICAgLnRhc2stbGluayB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICAgICAgICAgICAgICAuYnV0dG9uIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjpjZW50ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC5zdmctaWNvbiwgLmJyZWFrLXRleHR7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6bm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cblxufVxuXG4iLCIudW5pdC1pbmZvYm94IHtcblxuICAgIHBhZGRpbmc6IHJlbSgxNXB4KTtcbiAgICBoZWlnaHQ6IHJlbSgyMDJweCk7XG4gICAgXG5cbiAgICA+IC5tZXRhIHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IHJlbSgxNXB4KTtcbiAgICAgICAgYWxpZ24taXRlbXM6Y2VudGVyO1xuXG4gICAgICAgID4uc2x1Z2NvZGUge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjpyaWdodDtcbiAgICAgICAgICAgIGNvbG9yOiB0aGVtZS5jb2xvcnMucmVkO1xuICAgICAgICAgICAgPi5udW1iZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAjMDAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgID4ucGFnZW51bWJlciB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOnJpZ2h0O1xuICAgICAgICAgICAgLy9mb250LXNpemU6IDE2cHg7XG4gICAgICAgICAgICBjb2xvcjogdGhlbWUuY29sb3JzLmdyYXktMTtcbiAgICAgICAgICAgIC8vZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIH1cblxuICAgIH1cblxufSIsIi51bml0LWxldmVsZmlsdGVyIHtcblxuICAgID4uZGVzY3JpcHRpb24ge1xuICAgICAgICBtYXJnaW4tYm90dG9tOnJlbSgxMHB4KTtcblxuICAgICAgICBhIHtcbiAgICAgICAgICAgIGNvbG9yOiB0aGVtZS5jb2xvcnMucHJpbWFyeTtcbiAgICAgICAgfVxuICAgICAgICBhOmhvdmVyIHtcblxuICAgICAgICAgICAgY29sb3I6IHRoZW1lLmNvbG9ycy5ibGFjaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIFxuXG4gICAgIC5maWx0ZXIge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgY29sb3I6IHRoZW1lLmNvbG9ycy5wcmltYXJ5O1xuICAgICAgICB9XG4gICAgICAgICYuLWFjdGl2ZSB7XG4gICAgICAgICAgICAgPi5pdGVtIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgIHRoZW1lLmNvbG9ycy5wcmltYXJ5O1xuICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICBcbiAgICAgICAgfVxuICAgIH1cblxuXG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiB0aGVtZS5zZXR0aW5ncy5icmVha3BvaW50cy5zbWFsbCkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn0iLCIudW5pdC1tZW51IHtcblxuICAgIGRpc3BsYXk6IGlubGluZS1ncmlkO1xuICAgIGp1c3RpZnktY29udGVudDogZW5kO1xuXG59XG5cblxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IHRoZW1lLnNldHRpbmdzLmJyZWFrcG9pbnRzLnNtYWxsKSB7IFxuICAgIC51bml0LW1lbnUge1xuICAgICAgICAvL21hcmdpbi1ib3R0b206IHJlbSgzMHB4KTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgfVxufSIsIi51bml0LXBhZ2Uge1xuICAgIG1hcmdpbi1ib3R0b206IHJlbSgxMjBweCk7XG59IiwiLnVuaXQtcHJldmlldyB7XG5cbiAgICBib3gtc2hhZG93OiAwIDJweCA2cHggMCByZ2JhKDEwNywxMDcsMTA3LDAuMjApO1xuICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjJzLCBib3gtc2hhZG93IC4ycztcbiAgICB3aWR0aDogMzE5cHg7XG4gICAgXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDE2cHggMXB4IHJnYmEoMTA3LDEwNywxMDcsMC4zMCk7XG5cbiAgICAgICAgJi4tZGlzYWJsZWQge1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAycHggNnB4IDAgcmdiYSgxMDcsMTA3LDEwNywwLjIwKTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYuLWVuYWJsZWQge1xuICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICB9XG4gICAgXG4gICAgJi4tZGlzYWJsZWQgPiAuaW1hZ2UtY29udGFpbmVyLCAmLi1kaXNhYmxlZCA+IC5kb3dubG9hZCwgJi4tZGlzYWJsZWQgPiAudW5pdC1pbmZvYm94ICAge1xuICAgICAgICAvLyAtd2Via2l0LWZpbHRlcjogZ3JheXNjYWxlKDEwMCUpO1xuICAgICAgICAvLyAtd2Via2l0LWZpbHRlcjogZ3JheXNjYWxlKDEpO1xuICAgICAgICAvLyBmaWx0ZXI6IGdyYXlzY2FsZSgxMDAlKTtcbiAgICAgICAgXG4gICAgICAgIC8vIGZpbHRlcjogdXJsKCcvaW1hZ2VzL2dyYXkuc3ZnI2dyYXlzY2FsZScpO1xuICAgICAgICAvLyBmaWx0ZXI6IGdyYXk7XG5cbiAgICAgICAgb3BhY2l0eTogMC4yO1xuICAgIH1cblxuICAgICYuLXNlbGVjdGVkIHtcbiAgICAgICAgYm9yZGVyOiAycHggc29saWQgdGhlbWUuY29sb3JzLmdyZWVuO1xuICAgIH1cblxuICAgID4uaW1hZ2UtY29udGFpbmVyIHtcbiAgICAgICAgXG4gICAgICAgIHBvc2l0aW9uOnJlbGF0aXZlOyBcbiAgICAgICAgXG4gICAgICAgID4gLmltYWdlIHtcbiAgICAgICAgICAgIGhlaWdodDogcmVtKDE4MHB4KTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgID4uc3ViamVjdCB7XG4gICAgICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDUwJSwgLTUwJSk7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgID4gLmRvd25sb2FkIHtcblxuICAgICAgICBwYWRkaW5nOiByZW0oMTBweCkgcmVtKDE1cHgpO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgdGhlbWUuY29sb3JzLmdyYXktMztcblxuICAgICAgICAmLi1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLi1lbXB0eSB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiBub25lO1xuICAgICAgICAgICAgbWluLWhlaWdodDogcmVtKDQ1cHgpO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogcmVtKDQ1cHgpO1xuICAgICAgICB9XG5cbiAgICAgICAgPiBhIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICA+LmxvZ2luLXJlcXVpcmVkIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICA+LmxpY2Vuc2UtcmVxdWlyZWQsICYuLWRpc2FibGVkLi1hdXRoID4ubG9naW4tcmVxdWlyZWQge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgICBcblxuICAgICYuLWRpc2FibGVkID4ubG9naW4tcmVxdWlyZWQsICYuLWRpc2FibGVkLi1hdXRoID4ubGljZW5zZS1yZXF1aXJlZCB7XG4gICAgICAgIGRpc3BsYXk6YmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgYm90dG9tOiAwcHg7XG4gICAgICAgIGxlZnQ6IDBweDtcbiAgICAgICAgcmlnaHQ6IDBweDtcbiAgICAgICAgcGFkZGluZzogcmVtKDIwcHgpIDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgXG4gICAgICAgID4udGV4dCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOnJlbSgxNXB4KTtcbiAgICAgICAgfVxuXG4gICAgfVxuXG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogdGhlbWUuc2V0dGluZ3MuYnJlYWtwb2ludHMubWVkaXVtKSB7IFxuICAgIC51bml0LXByZXZpZXcge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgIH1cbn1cblxuXG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogdGhlbWUuc2V0dGluZ3MuYnJlYWtwb2ludHMuc21hbGwpIHsgXG4gICAgLnVuaXQtcHJldmlldyB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgfVxufSIsIi51bml0LXRlYWNoZXJpbmZvIHtcblxuICAgIHBhZGRpbmc6IHJlbSg2MHB4KSAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lLmNvbG9ycy5iYWNrZ3JvdW5kLWJsdWU7XG4gICAgbWFyZ2luLXRvcDogcmVtKDYwcHgpO1xuXG4gICAgPi50b2dnbGUge1xuICAgICAgICAgICAgIG1hcmdpbjogMCByZW0oMjBweCk7XG4gICAgICAgICAgICAgcGFkZGluZzogcmVtKDEwcHgpIDA7XG4gICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHRoZW1lLmNvbG9ycy5ibGFjaztcbiAgICB9XG5cbiAgICA+IC5jb250ZW50IHtcblxuICAgICAgICBwYWRkaW5nOiByZW0oMjBweCk7XG5cbiAgICAgICAgPiAudGVhY2hlci1kb3dubG9hZCB7XG5cbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBcbiAgICAgICAgfVxuXG4gICAgfVxuXG59IiwiLnVuaXQtdHlwZSB7XG5cbiAgICAvL2Rpc3BsYXk6IGZsZXg7XG4gICAgLy9hbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHBhZGRpbmctcmlnaHQ6IHJlbSgxNXB4KTtcblxuICAgID4gc3ZnIHtcbiAgICAgICAgd2lkdGg6IHJlbSgzNXB4KTtcbiAgICAgICAgaGVpZ2h0OiByZW0oMzVweCk7XG4gICAgfVxuXG59IiwiLnVuaXRwYWdlLWhlYWRlciB7XG5cbiAgICBwYWRkaW5nLWJvdHRvbTogcmVtKDMwcHgpO1xuICAgIHBhZGRpbmctdG9wOiByZW0oOTBweCk7XG5cblxuXG4gICAgPiAudW5pdHR5cGUge1xuXG4gICAgICAgID4uc2x1Z2NvZGUge1xuICAgICAgICAgICAgY29sb3I6IHRoZW1lLmNvbG9ycy5yZWQ7XG4gICAgICAgICAgICBmb250LWZhbWlseTogJ0dsb2Jlci1FeHRyYS1Cb2xkJztcbiAgICAgICAgICAgID4ubnVtYmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogIzAwMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5wYWdlbnVtYmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiB0aGVtZS5jb2xvcnMuZ3JheS0xO1xuICAgICAgICB9XG5cbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgcGFkZGluZy1yaWdodDogcmVtKDE1cHgpO1xuICAgICAgICBwYWRkaW5nLXRvcDogcmVtKDYwcHgpO1xuXG4gICAgICAgID4gc3ZnIHtcbiAgICAgICAgICAgIHdpZHRoOiByZW0oNjBweCk7XG4gICAgICAgICAgICBoZWlnaHQ6IHJlbSg2MHB4KTtcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgPiAudGl0bGUge1xuXG4gICAgICAgIHBhZGRpbmc6IHJlbSgzMHB4KSAwO1xuICAgIFxuICAgIH1cblxuICAgID4gLm1ldGEge1xuXG4gICAgICAgIHBhZGRpbmc6IHJlbSgyMnB4KSAwO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oMzBweCk7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB0aGVtZS5jb2xvcnMuZ3JheS0yO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdGhlbWUuY29sb3JzLmdyYXktMjtcblxuICAgIH1cblxuICAgID4gLmRlc2NyaXB0aW9uIHtcblxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogcmVtKDMwcHgpO1xuXG4gICAgfVxuXG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiB0aGVtZS5zZXR0aW5ncy5icmVha3BvaW50cy5zbWFsbCkgeyBcbiAgICAgICAgcGFkZGluZy10b3A6IHJlbSg2MHB4KTtcbiAgICB9XG5cblxufSIsIi51bml0cGFnZS1tZXRhY29udGFpbmVyIHtcblxuICAgIHBhZGRpbmc6IHJlbSgyMnB4KSAwO1xuICAgIG1hcmdpbi1ib3R0b206IHJlbSgzMHB4KTtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgdGhlbWUuY29sb3JzLmdyYXktMjtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdGhlbWUuY29sb3JzLmdyYXktMjtcblxuICAgIFxuXG4gICAgPiAubGV2ZWxib3gtY29udGFpbmVyIHsgXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IHJlbSgzMHB4KTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgIH1cblxuICAgID4gLnNsdWcgeyBcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiByZW0oMzBweCk7XG4gICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHRoZW1lLmNvbG9ycy5zZWNvbmRhcnk7XG4gICAgICAgIHBhZGRpbmc6IDBweCA1cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDVweCAxNXB4IDVweCA1cHg7XG4gICAgfVxuXG5cbiAgICA+IC5kdXJhdGlvbiB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IHJlbSgzMHB4KTtcbiAgICAgICAgPiBzdmcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiByZW0oMTVweCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICA+IC5jb21wZXRlbmNlcyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgID4gLmNvbXBldGVuY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogcmVtKDI1cHgpO1xuICAgICAgICAgICAgPiBzdmcge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogcmVtKDE1cHgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgPiBhIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogdGhlbWUuY29sb3JzLmdyYXktMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgPiBhIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IHRoZW1lLmNvbG9ycy5ncmVlbjtcbiAgICAgICAgICAgICAgICB9ICAgICAgICAgICBcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG4gICAgfVxuXG59XG5cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiB0aGVtZS5zZXR0aW5ncy5icmVha3BvaW50cy5zbWFsbCkge1xuICAgIC51bml0cGFnZS1tZXRhY29udGFpbmVyIHtcbiAgICAgICAgZGlzcGxheTpibG9jaztcbiAgICAgICAgPi5pdGVtIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSgxNnB4KTtcbiAgICAgICAgfVxuICAgIH1cbn0iLCIuaGlkZGVuIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cblxuLmJyZWFrLXRleHQge1xuICBcbiAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xufVxuXG4uaW5saW5lIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufSIsIkBpbXBvcnQgXCJsaWIvc3R5bHVzL3RoZW1lcy9kZWZhdWx0L3NldHVwXCI7XG5cbnRoZW1lLmNvbXBvbmVudHMubWFyZ2luLWJveCA9IHtcbiAgZGVmYXVsdDogcmVtKCAyMHB4ICksXG4gIHhzbWFsbDogcmVtKCAxMHB4ICksXG4gIHNtYWxsOiByZW0oIDE1cHggKSxcbiAgbWVkaXVtOiByZW0oIDMwcHggKSxcbiAgLy8gbGFyZ2U6IHJlbSggNjBweCApLFxuICBsYXJnZTogcmVtKDgwcHgpLFxuICB4bGFyZ2U6IHJlbSgxMjBweCksXG4gIGF1dG86IGF1dG8sXG59XG5cbnRoZW1lLnNldHRpbmdzID0ge1xuICBicmVha3BvaW50czoge1xuICAgIHhzbWFsbDogcmVtKCA1MjBweCApLFxuICAgIHNtYWxsOiByZW0oIDc2OHB4ICksXG4gICAgbWVkaXVtOiByZW0oIDk4MHB4ICksXG4gICAgbGFyZ2U6IHJlbSggMTIwMHB4IClcbiAgfSwgXG4gIHRleHQtbGluZS1oZWlnaHQ6IHJlbSggMjRweCApLFxuICB0ZXh0LWZvbnQ6ICdHbG9iZXItUmVndWxhcicsXG59XG5cbnRoZW1lLmNvbXBvbmVudHMuZ3JpZC1sYXlvdXQuc2l6ZXMgPSB7XG5cdFx0JzEnOjEwMCUsXG5cdFx0JzEtMic6NTAlLFxuXHRcdCcxLTMnOjEwMCUvMyxcblx0XHQnMi0zJzoxMDAlLzMqMixcblx0XHQnMS00JzoxMDAlLzQsXG5cdFx0JzMtNCc6MTAwJS80KjMsXG5cbiAgICAnMS03JzoxMDAlLzcsXG59XG5cblxuLy9oYWNrIHRvIHJlbW92ZSB0aGUgdWdseSBiYWNrZ3JvdW5kIG9uIG1vYmlsZSBjaHJvbWUgb25DbGlja1xuLy8gZGl2LFxuLy8gaW1nLFxuLy8gYSB7XG4vLyAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgwLDAsMCwwKTtcbi8vIH1cblxuLy9wcm9qZWN0XG5AaW1wb3J0IFwibGliL3N0eWx1cy90aGVtZXMvZGVmYXVsdC9jb21wb25lbnRzXCI7XG5AaW1wb3J0IFwiLi9zdHlsZWd1aWRlLyoqLnN0eWxcIjtcbkBpbXBvcnQgXCIuL2NvbXBvbmVudHMvKiouc3R5bFwiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy8qKi8qKi52YXIuc3R5bFwiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy8qKi8qKi5zdHlsXCI7XG5AaW1wb3J0IFwiLi9oZWxwZXJzLyoqLnN0eWxcIjtcblxuc3ZnIHBhdGgge1xuICBmaWxsOiBpbmhlcml0O1xufVxuXG5odG1sLCBib2R5IHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbiJdfQ== */
