.strip--callout p {
  font-size: 1.375rem !important; }

.sousMenu {
  z-index: 605;
  background: #001B59 !important; }
  .sousMenu li.active a {
    color: #fff !important; }
  .sousMenu a:hover {
    color: #598bff !important; }

@media screen and (min-width: 0em) and (max-width: 39.9375em) {
  .sousMenuLang {
    background: #001B59 !important; }
    .sousMenuLang li {
      display: block !important; } }

.perso__content-footer {
  text-align: center; }

.primary-footer__address a {
  color: #000; }

/**
 * Foundation for Sites by ZURB
 * Version 6.0.6
 * foundation.zurb.com
 * Licensed under MIT Open Source
 */
/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
/**
   * 1. Set default font family to sans-serif.
   * 2. Prevent iOS and IE text size adjust after device orientation change,
   *    without disabling user zoom.
   */
html {
  font-family: sans-serif;
  /* 1 */
  -ms-text-size-adjust: 100%;
  /* 2 */
  -webkit-text-size-adjust: 100%;
  /* 2 */ }

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

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

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

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

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

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

/**
   * Improve readability of focused elements when they are also in an
   * active/hover state.
   */
a:active,
a:hover {
  outline: 0; }

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

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

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

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

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

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

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

sup {
  top: -0.5em; }

sub {
  bottom: -0.25em; }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

td,
th {
  padding: 0; }

.foundation-mq {
  font-family: "small=0em&medium=40em&large=64em&xlarge=75em&xxlarge=90em"; }

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

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

body {
  padding: 0;
  margin: 0;
  font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
  font-weight: normal;
  line-height: 1.5;
  color: #333;
  background: #eee;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

img {
  max-width: 100%;
  height: auto;
  -ms-interpolation-mode: bicubic;
  display: inline-block;
  vertical-align: middle; }

textarea {
  height: auto;
  min-height: 50px;
  border-radius: 0; }

select {
  width: 100%;
  border-radius: 0; }

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

button {
  -webkit-appearance: none;
  -moz-appearance: none;
  background: transparent;
  padding: 0;
  border: 0;
  border-radius: 0;
  line-height: 1; }

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

p {
  font-size: inherit;
  line-height: 1.6;
  margin-bottom: 1rem;
  text-rendering: optimizeLegibility; }

em,
i {
  font-style: italic;
  line-height: inherit; }

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

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

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
  font-weight: normal;
  font-style: normal;
  color: inherit;
  text-rendering: optimizeLegibility;
  margin-top: 0;
  margin-bottom: 0.5rem;
  line-height: 1.4; }
  h1 small,
  h2 small,
  h3 small,
  h4 small,
  h5 small,
  h6 small {
    color: #cacaca;
    line-height: 0; }

h1 {
  font-size: 1.5rem; }

h2 {
  font-size: 1.25rem; }

h3 {
  font-size: 1.1875rem; }

h4 {
  font-size: 1.125rem; }

h5 {
  font-size: 1.0625rem; }

h6 {
  font-size: 1rem; }

@media screen and (min-width: 40em) {
  h1 {
    font-size: 3rem; }
  h2 {
    font-size: 2.5rem; }
  h3 {
    font-size: 1.9375rem; }
  h4 {
    font-size: 1.5625rem; }
  h5 {
    font-size: 1.25rem; }
  h6 {
    font-size: 1rem; } }

a {
  color: #ffffff;
  text-decoration: none;
  line-height: inherit;
  cursor: pointer; }
  a:hover, a:focus {
    color: #dbdbdb; }
  a img {
    border: 0; }

hr {
  max-width: 75rem;
  height: 0;
  border-right: 0;
  border-top: 0;
  border-bottom: 1px solid #cacaca;
  border-left: 0;
  margin: 1.25rem auto;
  clear: both; }

ul,
ol,
dl {
  line-height: 1.6;
  margin-bottom: 1rem;
  list-style-position: outside; }

li {
  font-size: inherit; }

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

ol {
  margin-left: 1.25rem; }

ul ul, ol ul, ul ol, ol ol {
  margin-left: 1.25rem;
  margin-bottom: 0;
  list-style-type: inherit; }

dl {
  margin-bottom: 1rem; }
  dl dt {
    margin-bottom: 0.3rem;
    font-weight: bold; }

blockquote {
  margin: 0 0 1rem;
  padding: 0.5625rem 1.25rem 0 1.1875rem;
  border-left: 1px solid #cacaca; }
  blockquote, blockquote p {
    line-height: 1.6;
    color: #8a8a8a; }

cite {
  display: block;
  font-size: 0.8125rem;
  color: #8a8a8a; }
  cite:before {
    content: '\2014 \0020'; }

abbr {
  color: #333;
  cursor: help;
  border-bottom: 1px dotted #0a0a0a; }

code {
  font-family: Consolas, "Liberation Mono", Courier, monospace;
  font-weight: normal;
  color: #0a0a0a;
  background-color: #e6e6e6;
  border: 1px solid #cacaca;
  padding: 0.125rem 0.3125rem 0.0625rem; }

kbd {
  padding: 0.125rem 0.25rem 0;
  margin: 0;
  background-color: #e6e6e6;
  color: #0a0a0a;
  font-family: Consolas, "Liberation Mono", Courier, monospace; }

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

.lead {
  font-size: 125%;
  line-height: 1.6; }

.stat {
  font-size: 2.5rem;
  line-height: 1; }
  p + .stat {
    margin-top: -1rem; }

.no-bullet {
  margin-left: 0;
  list-style: none; }

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

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

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

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

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

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

.show-for-print {
  display: none !important; }

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

[type='text'], [type='password'], [type='date'], [type='datetime'], [type='datetime-local'], [type='month'], [type='week'], [type='email'], [type='number'], [type='search'], [type='tel'], [type='time'], [type='url'], [type='color'],
textarea {
  display: block;
  box-sizing: border-box;
  width: 100%;
  height: 2.4375rem;
  padding: 0.5rem;
  border: 1px solid #f2f2f2;
  margin: 0 0 1rem;
  font-family: inherit;
  font-size: 1rem;
  color: #000;
  background-color: #c2c2c2;
  box-shadow: inset 0 1px 2px #f2f2f2;
  border-radius: 0;
  transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
  -webkit-appearance: none;
  -moz-appearance: none; }
  [type='text']:focus, [type='password']:focus, [type='date']:focus, [type='datetime']:focus, [type='datetime-local']:focus, [type='month']:focus, [type='week']:focus, [type='email']:focus, [type='number']:focus, [type='search']:focus, [type='tel']:focus, [type='time']:focus, [type='url']:focus, [type='color']:focus,
  textarea:focus {
    border: 1px solid #f2f2f2;
    background: #fcfcfc;
    outline: none;
    box-shadow: 0 0 5px #f2f2f2;
    transition: box-shadow 0.5s, border-color 0.25s ease-in-out; }

textarea {
  max-width: 100%; }
  textarea[rows] {
    height: auto; }

input:disabled, input[readonly],
textarea:disabled,
textarea[readonly] {
  background-color: #e6e6e6;
  cursor: default; }

[type='submit'],
[type='button'] {
  border-radius: 0;
  -webkit-appearance: none;
  -moz-appearance: none; }

input[type='search'] {
  box-sizing: border-box; }

[type='file'],
[type='checkbox'],
[type='radio'] {
  margin: 0 0 1rem; }

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

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

[type='file'] {
  width: 100%; }

label {
  display: block;
  margin: 0;
  font-size: 0.875rem;
  font-weight: normal;
  line-height: 1.8;
  color: #777777; }
  label.middle {
    margin: 0 0 1rem;
    padding: 0.5625rem 0; }

.help-text {
  margin-top: -0.5rem;
  font-size: 0.8125rem;
  font-style: italic;
  color: #333; }

.input-group {
  display: table;
  width: 100%;
  margin-bottom: 1rem; }
  .input-group > *:first-child {
    border-radius: 0 0 0 0; }
  .input-group > *:last-child > * {
    border-radius: 0 0 0 0; }

.input-group-label, .input-group-field, .input-group-button {
  display: table-cell;
  margin: 0;
  vertical-align: middle; }

.input-group-label {
  text-align: center;
  width: 1%;
  height: 100%;
  padding: 0 1rem;
  background: #e6e6e6;
  color: #0a0a0a;
  border: 1px solid #cacaca; }
  .input-group-label:first-child {
    border-right: 0; }
  .input-group-label:last-child {
    border-left: 0; }

.input-group-field {
  border-radius: 0;
  height: 2.5rem; }

.input-group-button {
  height: 100%;
  padding-top: 0;
  padding-bottom: 0;
  text-align: center;
  width: 1%; }
  .input-group-button a,
  .input-group-button input,
  .input-group-button button {
    margin: 0; }

fieldset {
  border: 0;
  padding: 0;
  margin: 0; }

legend {
  margin-bottom: 0.5rem; }

.fieldset {
  border: 1px solid #cacaca;
  padding: 1.25rem;
  margin: 1.125rem 0; }
  .fieldset legend {
    background: #eee;
    padding: 0 0.1875rem;
    margin: 0;
    margin-left: -0.1875rem; }

select {
  height: 2.4375rem;
  padding: 0.5rem;
  border: 1px solid #f2f2f2;
  border-radius: 0;
  margin: 0 0 1rem;
  font-size: 1rem;
  font-family: inherit;
  line-height: normal;
  color: #000;
  background-color: #fafafa;
  border-radius: 0;
  -webkit-appearance: none;
  -moz-appearance: none;
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="32" height="24" viewBox="0 0 32 24"><polygon points="0,0 32,0 16,24" style="fill: rgb(51, 51, 51)"></polygon></svg>');
  background-size: 9px 6px;
  background-position: right 0.5rem center;
  background-repeat: no-repeat; }
  @media screen and (min-width: 0\0) {
    select {
      background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg=="); } }
  select:disabled {
    background-color: #e6e6e6;
    cursor: default; }
  select::-ms-expand {
    display: none; }
  select[multiple] {
    height: auto; }

.is-invalid-input:not(:focus) {
  background-color: rgba(236, 88, 64, 0.1);
  border-color: #ec5840; }

.is-invalid-label {
  color: #ec5840; }

.form-error {
  display: none;
  margin-top: -0.5rem;
  margin-bottom: 1rem;
  font-size: 0.75rem;
  font-weight: bold;
  color: #ec5840; }
  .form-error.is-visible {
    display: block; }

.hide {
  display: none !important; }

.invisible {
  visibility: hidden; }

@media screen and (min-width: 0em) and (max-width: 39.9375em) {
  .hide-for-small-only {
    display: none !important; } }

@media screen and (max-width: 0em), screen and (min-width: 40em) {
  .show-for-small-only {
    display: none !important; } }

@media screen and (min-width: 40em) {
  .hide-for-medium {
    display: none !important; } }

@media screen and (max-width: 39.9375em) {
  .show-for-medium {
    display: none !important; } }

@media screen and (min-width: 40em) and (max-width: 63.9375em) {
  .hide-for-medium-only {
    display: none !important; } }

@media screen and (max-width: 39.9375em), screen and (min-width: 64em) {
  .show-for-medium-only {
    display: none !important; } }

@media screen and (min-width: 64em) {
  .hide-for-large {
    display: none !important; } }

@media screen and (max-width: 63.9375em) {
  .show-for-large {
    display: none !important; } }

@media screen and (min-width: 64em) and (max-width: 74.9375em) {
  .hide-for-large-only {
    display: none !important; } }

@media screen and (max-width: 63.9375em), screen and (min-width: 75em) {
  .show-for-large-only {
    display: none !important; } }

.show-for-sr,
.show-on-focus {
  position: absolute !important;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0); }

.show-on-focus:active, .show-on-focus:focus {
  position: static !important;
  height: auto;
  width: auto;
  overflow: visible;
  clip: auto; }

.show-for-landscape,
.hide-for-portrait {
  display: block !important; }
  @media screen and (orientation: landscape) {
    .show-for-landscape,
    .hide-for-portrait {
      display: block !important; } }
  @media screen and (orientation: portrait) {
    .show-for-landscape,
    .hide-for-portrait {
      display: none !important; } }

.hide-for-landscape,
.show-for-portrait {
  display: none !important; }
  @media screen and (orientation: landscape) {
    .hide-for-landscape,
    .show-for-portrait {
      display: none !important; } }
  @media screen and (orientation: portrait) {
    .hide-for-landscape,
    .show-for-portrait {
      display: block !important; } }

.breadcrumbs {
  list-style: none;
  margin: 0 0 0 0; }
  .breadcrumbs::before, .breadcrumbs::after {
    content: ' ';
    display: table; }
  .breadcrumbs::after {
    clear: both; }
  .breadcrumbs li {
    float: left;
    color: #333;
    font-size: 0.6875rem;
    cursor: default;
    text-transform: uppercase; }
    .breadcrumbs li:not(:last-child)::after {
      color: #cacaca;
      content: "/";
      margin: 0 0.75rem;
      position: relative;
      top: 1px;
      opacity: 1; }
  .breadcrumbs a {
    color: #333; }
    .breadcrumbs a:hover {
      text-decoration: underline; }
  .breadcrumbs .disabled {
    color: #cacaca; }

.callout {
  margin: 0 0 1rem 0;
  padding: 1rem;
  border: 1px solid rgba(10, 10, 10, 0.25);
  border-radius: 0;
  position: relative;
  color: #333;
  background-color: white; }
  .callout > :first-child {
    margin-top: 0; }
  .callout > :last-child {
    margin-bottom: 0; }
  .callout.primary {
    background-color: #c0d3ff; }
  .callout.secondary {
    background-color: white; }
  .callout.success {
    background-color: #e1faea; }
  .callout.alert {
    background-color: #fce6e2; }
  .callout.warning {
    background-color: #fff3d9; }
  .callout.small {
    padding-top: 0.5rem;
    padding-right: 0.5rem;
    padding-bottom: 0.5rem;
    padding-left: 0.5rem; }
  .callout.large {
    padding-top: 3rem;
    padding-right: 3rem;
    padding-bottom: 3rem;
    padding-left: 3rem; }

.close-button {
  position: absolute;
  color: #8a8a8a;
  right: 1rem;
  top: 0.5rem;
  font-size: 2em;
  line-height: 1;
  cursor: pointer; }
  [data-whatinput='mouse'] .close-button {
    outline: 0; }
  .close-button:hover, .close-button:focus {
    color: #0a0a0a; }

.is-drilldown {
  position: relative;
  overflow: hidden; }

.is-drilldown-submenu {
  position: absolute;
  top: 0;
  left: 100%;
  z-index: -1;
  height: 100%;
  width: 100%;
  background: #fefefe;
  transition: transform 0.15s linear; }
  .is-drilldown-submenu.is-active {
    z-index: 1;
    display: block;
    transform: translateX(-100%); }
  .is-drilldown-submenu.is-closing {
    transform: translateX(100%); }

.is-drilldown-submenu-parent > a {
  position: relative; }
  .is-drilldown-submenu-parent > a::after {
    content: '';
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    border-color: transparent transparent transparent #001B59;
    border-left-style: solid;
    position: absolute;
    top: 50%;
    margin-top: -6px;
    right: 1rem; }

.js-drilldown-back::before {
  content: '';
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  border-color: transparent #001B59 transparent transparent;
  border-right-style: solid;
  float: left;
  margin-right: 0.75rem;
  margin-left: 0.6rem;
  margin-top: 14px; }

.dropdown-pane {
  background-color: #eee;
  border: 1px solid #cacaca;
  display: block;
  padding: 1rem;
  position: absolute;
  visibility: hidden;
  width: 300px;
  z-index: 10;
  border-radius: 0; }
  .dropdown-pane.is-open {
    visibility: visible; }

.dropdown-pane.tiny {
  width: 100px; }

.dropdown-pane.small {
  width: 200px; }

.dropdown-pane.large {
  width: 400px; }

[data-whatinput='mouse'] .dropdown.menu a {
  outline: 0; }

.dropdown.menu .is-dropdown-submenu-parent {
  position: relative; }
  .dropdown.menu .is-dropdown-submenu-parent a::after {
    float: right;
    margin-top: 3px;
    margin-left: 10px; }
  .dropdown.menu .is-dropdown-submenu-parent.is-down-arrow a {
    padding-right: 1.5rem;
    position: relative; }
  .dropdown.menu .is-dropdown-submenu-parent.is-down-arrow > a::after {
    content: '';
    display: block;
    width: 0;
    height: 0;
    border: inset 5px;
    border-color: #ffffff transparent transparent;
    border-top-style: solid;
    position: absolute;
    top: 0.825rem;
    right: 5px; }
  .dropdown.menu .is-dropdown-submenu-parent.is-left-arrow > a::after {
    content: '';
    display: block;
    width: 0;
    height: 0;
    border: inset 5px;
    border-color: transparent #ffffff transparent transparent;
    border-right-style: solid;
    float: left;
    margin-left: 0;
    margin-right: 10px; }
  .dropdown.menu .is-dropdown-submenu-parent.is-right-arrow > a::after {
    content: '';
    display: block;
    width: 0;
    height: 0;
    border: inset 5px;
    border-color: transparent transparent transparent #ffffff;
    border-left-style: solid; }
  .dropdown.menu .is-dropdown-submenu-parent.is-left-arrow.opens-inner .submenu {
    right: 0;
    left: auto; }
  .dropdown.menu .is-dropdown-submenu-parent.is-right-arrow.opens-inner .submenu {
    left: 0;
    right: auto; }
  .dropdown.menu .is-dropdown-submenu-parent.opens-inner .submenu {
    top: 100%; }

.no-js .dropdown.menu ul {
  display: none; }

.dropdown.menu .submenu {
  display: none;
  position: absolute;
  top: 0;
  left: 100%;
  min-width: 200px;
  z-index: 1;
  background: #fefefe;
  border: 1px solid #cacaca; }
  .dropdown.menu .submenu > li {
    width: 100%; }
  .dropdown.menu .submenu.first-sub {
    top: 100%;
    left: 0;
    right: auto; }
  .dropdown.menu .submenu:not(.js-dropdown-nohover) > .is-dropdown-submenu-parent:hover > .dropdown.menu .submenu, .dropdown.menu .submenu.js-dropdown-active {
    display: block; }

.dropdown.menu .is-dropdown-submenu-parent.opens-left .submenu {
  left: auto;
  right: 100%; }

.dropdown.menu.align-right .submenu.first-sub {
  top: 100%;
  left: auto;
  right: 0; }

.is-dropdown-menu.vertical {
  width: 100px; }
  .is-dropdown-menu.vertical.align-right {
    float: right; }
  .is-dropdown-menu.vertical > li .submenu {
    top: 0;
    left: 100%; }

.menu {
  margin: 0;
  list-style-type: none; }
  .menu > li {
    display: table-cell;
    vertical-align: middle; }
    [data-whatinput='mouse'] .menu > li {
      outline: 0; }
  .menu > li:not(.menu-text) > a {
    display: block;
    padding: 0.7rem 1rem;
    line-height: 1; }
  .menu input,
  .menu a,
  .menu button {
    margin-bottom: 0; }
  .menu > li > a > img,
  .menu > li > a > i {
    vertical-align: middle; }
  .menu > li > a > span {
    vertical-align: middle; }
  .menu > li > a > img,
  .menu > li > a > i {
    display: inline-block;
    margin-right: 0.25rem; }
  .menu > li {
    display: table-cell; }
  .menu.vertical > li {
    display: block; }
  @media screen and (min-width: 40em) {
    .menu.medium-horizontal > li {
      display: table-cell; }
    .menu.medium-vertical > li {
      display: block; } }
  @media screen and (min-width: 64em) {
    .menu.large-horizontal > li {
      display: table-cell; }
    .menu.large-vertical > li {
      display: block; } }
  .menu.simple a {
    padding: 0;
    margin-right: 1rem; }
  .menu.align-right > li {
    float: right; }
  .menu.expanded {
    display: table;
    width: 100%; }
    .menu.expanded > li:nth-last-child(2):first-child,
    .menu.expanded > li:nth-last-child(2):first-child ~ li {
      width: 50%; }
    .menu.expanded > li:nth-last-child(3):first-child,
    .menu.expanded > li:nth-last-child(3):first-child ~ li {
      width: 33.3333333333%; }
    .menu.expanded > li:nth-last-child(4):first-child,
    .menu.expanded > li:nth-last-child(4):first-child ~ li {
      width: 25%; }
    .menu.expanded > li:nth-last-child(5):first-child,
    .menu.expanded > li:nth-last-child(5):first-child ~ li {
      width: 20%; }
    .menu.expanded > li:nth-last-child(6):first-child,
    .menu.expanded > li:nth-last-child(6):first-child ~ li {
      width: 16.6666666667%; }
    .menu.expanded > li:first-child:last-child {
      width: 100%; }
  .menu.icon-top > li > a {
    text-align: center; }
    .menu.icon-top > li > a > img,
    .menu.icon-top > li > a > i {
      display: block;
      margin: 0 auto 0.25rem; }
  .menu.nested {
    margin-left: 1rem; }

.menu-text {
  font-weight: bold;
  color: inherit;
  line-height: 1;
  padding-top: 0;
  padding-bottom: 0;
  padding: 0.7rem 1rem; }

.no-js [data-responsive-menu] ul {
  display: none; }

.sticky-container {
  position: relative; }

.sticky {
  position: absolute;
  z-index: 0;
  transform: translate3d(0, 0, 0); }

.sticky.is-stuck {
  position: fixed;
  z-index: 5; }
  .sticky.is-stuck.is-at-top {
    top: 0; }
  .sticky.is-stuck.is-at-bottom {
    bottom: 0; }

.sticky.is-anchored {
  position: absolute;
  left: auto;
  right: auto; }
  .sticky.is-anchored.is-at-bottom {
    bottom: 0; }

table {
  margin-bottom: 1rem;
  border-radius: 0; }
  thead,
  tbody,
  tfoot {
    border: 1px solid #fafafa;
    background-color: #fff; }
  caption {
    font-weight: bold;
    padding: 0.5rem 0.625rem 0.625rem; }
  thead,
  tfoot {
    background: #fcfcfc;
    color: #333; }
    thead tr,
    tfoot tr {
      background: transparent; }
    thead th,
    thead td,
    tfoot th,
    tfoot td {
      padding: 0.5rem 0.625rem 0.625rem;
      font-weight: bold;
      text-align: left; }
  tbody tr:nth-child(even) {
    background-color: #fafafa; }
  tbody th,
  tbody td {
    padding: 0.5rem 0.625rem 0.625rem; }

@media screen and (max-width: 63.9375em) {
  table.stack thead {
    display: none; }
  table.stack tfoot {
    display: none; }
  table.stack tr,
  table.stack th,
  table.stack td {
    display: block; }
  table.stack td {
    border-top: 0; } }

table.scroll {
  display: block;
  width: 100%;
  overflow-y: scroll; }

table.hover tr:hover {
  background-color: #fafafa; }

table.hover tr:nth-of-type(even):hover {
  background-color: whitesmoke; }

.title-bar {
  background: #0a0a0a;
  color: #fefefe;
  padding: 0.5rem; }
  .title-bar::before, .title-bar::after {
    content: ' ';
    display: table; }
  .title-bar::after {
    clear: both; }
  .title-bar .menu-icon {
    margin-left: 0.25rem;
    margin-right: 0.5rem; }

.title-bar-left {
  float: left; }

.title-bar-right {
  float: right;
  text-align: right; }

.title-bar-title {
  font-weight: bold;
  vertical-align: middle;
  display: inline-block; }

.menu-icon {
  position: relative;
  display: inline-block;
  vertical-align: middle;
  cursor: pointer;
  width: 20px;
  height: 16px; }
  .menu-icon::after {
    content: '';
    position: absolute;
    display: block;
    width: 100%;
    height: 2px;
    background: #fefefe;
    top: 0;
    left: 0;
    box-shadow: 0 7px 0 #fefefe, 0 14px 0 #fefefe; }
  .menu-icon:hover::after {
    background: #cacaca;
    box-shadow: 0 7px 0 #cacaca, 0 14px 0 #cacaca; }

.top-bar {
  padding: 2rem; }
  .top-bar::before, .top-bar::after {
    content: ' ';
    display: table; }
  .top-bar::after {
    clear: both; }
  .top-bar,
  .top-bar ul {
    background-color: #ccc; }
  .top-bar a {
    color: #ffffff; }
  .top-bar input {
    width: 200px;
    margin-right: 1rem; }
  .top-bar input.button {
    width: auto; }

@media screen and (max-width: 39.9375em) {
  .stacked-for-small .top-bar-right {
    width: 100%; }
  .stacked-for-small .top-bar-left {
    width: 100%; } }

@media screen and (max-width: 63.9375em) {
  .stacked-for-medium .top-bar-right {
    width: 100%; }
  .stacked-for-medium .top-bar-left {
    width: 100%; } }

@media screen and (max-width: 74.9375em) {
  .stacked-for-large .top-bar-right {
    width: 100%; }
  .stacked-for-large .top-bar-left {
    width: 100%; } }

@media screen and (max-width: 39.9375em) {
  .top-bar-right {
    width: 100%; }
  .top-bar-left {
    width: 100%; } }

.top-bar-left {
  float: left; }

.top-bar-right {
  float: right; }

.top-bar {
  background: transparent;
  padding: 0;
  position: relative;
  z-index: 300;
  max-width: 75rem;
  display: flex;
  flex-flow: row wrap;
  margin-left: auto;
  margin-right: auto; }
  .top-bar .right,
  .top-bar .left {
    flex: 0 0 100%;
    padding-left: 0.9375rem;
    padding-right: 0.9375rem;
    max-width: 100%; }
  @media screen and (min-width: 0em) and (max-width: 39.9375em) {
    .top-bar .left {
      padding: 0; } }
  .top-bar ul {
    background: transparent; }
  .top-bar.expanded {
    position: fixed; }
  .top-bar.expanded ul {
    background: #ccc; }
  .top-bar__icon img {
    max-height: 400px;
    max-width: 250px; }
  .top-bar li > a {
    text-transform: uppercase;
    font-weight: 500;
    transition: .2s all; }
    .top-bar li > a.button {
      border-color: #ffffff;
      color: #ffffff; }
  .top-bar li.active a,
  .top-bar a:hover {
    color: #001B59; }
    .top-bar li.active a.button,
    .top-bar a:hover.button {
      border-color: #001B59;
      color: #001B59; }
  .top-bar.expanded {
    background: #ccc; }
  @media screen and (min-width: 64em) {
    .top-bar__locale-picker {
      border-left: 1px solid #ffffff; } }
  .top-bar__locale-picker svg {
    height: 16px;
    width: 21px; }
  @media screen and (max-width: 63.9375em) {
    .top-bar .menu-text {
      display: block;
      padding: .5rem;
      text-align: center;
      width: 100%; }
    .top-bar__icon {
      display: block;
      margin-top: 3rem; }
    .top-bar__toggle {
      float: left; }
    .top-bar .right li {
      text-align: center; }
    .top-bar .right .button {
      border: 0;
      margin: 0; } }
  @media screen and (min-width: 64em) {
    .top-bar .right {
      flex: 0 0 auto;
      padding-left: 0.9375rem;
      padding-right: 0.9375rem; }
    .top-bar .left {
      flex: 1 1 0px;
      padding-left: 0.9375rem;
      padding-right: 0.9375rem; }
    .top-bar .right {
      padding: 2rem 0;
      align-items: center;
      display: flex; } }

@media screen and (min-width: 64em) {
  .dropdown.menu .is-dropdown-submenu-parent.is-right-arrow > a::after {
    display: none; }
  .dropdown.menu .submenu.first-sub {
    left: auto !important;
    right: 0 !important;
    min-width: inherit !important; } }
  @media screen and (min-width: 64em) and (min-width: 64em) {
    .dropdown.menu .submenu.first-sub {
      background: transparent;
      border: none;
      border-left: 1px solid #ffffff;
      max-width: inherit !important;
      min-width: 200px !important; } }

.hero {
  background: url("../img/background-s.png") center center/cover;
  height: 400px;
  overflow: hidden;
  position: relative; }
  @media screen and (min-width: 40em) {
    .hero {
      background-image: url("../img/background-m.png"); } }
  @media screen and (min-width: 64em) {
    .hero {
      background-image: url("../img/background-l.png"); } }
  @media screen and (min-width: 75em) {
    .hero {
      background-image: url("../img/background-xl.png"); } }
  @media screen and (min-width: 90em) {
    .hero {
      background-image: url("../img/background-xxl.png"); } }

.hero--full {
  min-height: 400px; }

.fullscreen-bg {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  overflow: hidden;
  z-index: -100;
  background: red; }

.fullscreen-bg__video {
  position: absolute;
  top: 50%;
  left: 50%;
  min-width: 100%;
  min-height: 400px;
  width: auto;
  height: auto;
  transform: translateX(-50%) translateY(-50%);
  background-size: cover; }
  @media screen and (min-width: 0em) and (max-width: 39.9375em) {
    .fullscreen-bg__video {
      display: none !important; } }

.hero--full .fullscreen-bg__video {
  min-height: 100vh; }

@media screen and (min-width: 40em) {
  .top-bar-wrapper {
    background: rgba(21, 113, 183, 0.7);
    border-bottom: 1px solid rgba(23, 121, 197, 0.7);
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    z-index: 2; } }

@media screen and (min-width: 40em) and (max-width: 63.9375em) {
  .top-bar-wrapper {
    height: 100%; } }

.menu .sousMenu a {
  font-size: .9rem; }

.primary-footer {
  background: #fff;
  color: #000;
  padding: 2rem 0; }
  .primary-footer ul {
    list-style: none; }
  .primary-footer__company {
    max-width: 75rem;
    display: flex;
    flex-flow: row wrap;
    margin-left: auto;
    margin-right: auto;
    font-size: 0.875rem;
    align-items: center; }
    .primary-footer__company > div {
      flex: 0 0 100%;
      padding-left: 0.9375rem;
      padding-right: 0.9375rem;
      max-width: 100%;
      margin-bottom: 1rem; }
      @media screen and (min-width: 0em) and (max-width: 39.9375em) {
        .primary-footer__company > div {
          text-align: center; } }
      @media screen and (min-width: 40em) {
        .primary-footer__company > div {
          flex: 0 0 33.3333333333%;
          padding-left: 0.9375rem;
          padding-right: 0.9375rem;
          max-width: 33.3333333333%; } }
  .primary-footer__address {
    list-style: none; }
    .primary-footer__address li {
      position: relative;
      margin-bottom: .5rem; }
      @media screen and (min-width: 0em) and (max-width: 39.9375em) {
        .primary-footer__address li {
          padding-top: 25px;
          margin-bottom: 1rem; } }
      @media screen and (min-width: 40em) {
        .primary-footer__address li {
          padding-left: 25px; } }
      .primary-footer__address li strong {
        color: black; }
    .primary-footer__address svg {
      fill: black;
      height: 20px;
      width: 20px; }
      @media screen and (min-width: 0em) and (max-width: 39.9375em) {
        .primary-footer__address svg {
          position: absolute;
          top: 0;
          position: absolute;
          left: 50%;
          transform: translateX(-50%); } }
      @media screen and (min-width: 40em) {
        .primary-footer__address svg {
          position: absolute;
          left: 0; } }
  .primary-footer__copyright {
    margin: 0; }
    .primary-footer__copyright svg {
      height: 0.875rem;
      width: 0.875rem;
      fill: #000 !important; }
    .primary-footer__copyright li {
      display: inline-block;
      margin-right: .5rem; }
      .primary-footer__copyright li a {
        color: #000; }
      .primary-footer__copyright li:not(:last-child)::after {
        content: '/';
        padding-right: .5rem;
        padding-left: .5rem;
        color: black; }
  .primary-footer__links {
    max-width: 75rem;
    display: flex;
    flex-flow: row wrap;
    margin-left: auto;
    margin-right: auto;
    border-bottom: 1px solid #000;
    text-align: center;
    margin-bottom: 1rem; }
    .primary-footer__links > div {
      flex: 0 0 100%;
      padding-left: 0.9375rem;
      padding-right: 0.9375rem;
      max-width: 100%;
      text-align: center;
      margin-bottom: 1rem; }
      @media screen and (min-width: 40em) {
        .primary-footer__links > div {
          flex: 0 0 50%;
          padding-left: 0.9375rem;
          padding-right: 0.9375rem;
          max-width: 50%; } }
    .primary-footer__links a {
      color: #000;
      transition: .5s all; }
      .primary-footer__links a svg {
        fill: black; }
    @media screen and (min-width: 40em) {
      .primary-footer__links > div {
        margin-bottom: inherit; }
      .primary-footer__links > div:first-child {
        text-align: left; }
      .primary-footer__links > div:last-child {
        text-align: right; } }
  .primary-footer__sociale {
    list-style: none; }
    .primary-footer__sociale li {
      display: inline-block;
      margin: 0 1rem; }
      .primary-footer__sociale li:hover svg {
        fill: #666666; }
    .primary-footer__sociale svg {
      transition: .5s all;
      fill: black;
      height: 20px;
      width: 20px; }

.perso__content-footer img {
  width: 140px; }

.perso__content-footer p {
  font-size: .7rem; }

.about-us {
  max-width: 75rem;
  display: flex;
  flex-flow: row wrap;
  margin-left: auto;
  margin-right: auto; }
  .about-us__anchor {
    flex: 0 0 100%;
    padding-left: 0.9375rem;
    padding-right: 0.9375rem;
    max-width: 100%; }
    @media screen and (min-width: 40em) {
      .about-us__anchor {
        flex: 0 0 33.3333333333%;
        padding-left: 0.9375rem;
        padding-right: 0.9375rem;
        max-width: 33.3333333333%;
        order: 2; } }
    .about-us__anchor > div {
      width: 100%; }
    .about-us__anchor ul {
      width: 100%; }
    .about-us__anchor a {
      width: 100%;
      display: block; }
    .about-us__anchor a.active {
      background: #001B59;
      color: #fff; }
  .about-us__items {
    flex: 0 0 100%;
    padding-left: 0.9375rem;
    padding-right: 0.9375rem;
    max-width: 100%; }
    @media screen and (min-width: 40em) {
      .about-us__items {
        flex: 0 0 66.6666666667%;
        padding-left: 0.9375rem;
        padding-right: 0.9375rem;
        max-width: 66.6666666667%;
        order: 1; } }
  .about-us__item {
    margin-bottom: 2rem; }
  .about-us__content {
    padding: 4rem; }

.record__content-list {
  max-width: 75rem;
  display: flex;
  flex-flow: row wrap;
  margin-left: auto;
  margin-right: auto; }
  .record__content-list-item {
    flex: 0 0 100%;
    padding-left: 0.9375rem;
    padding-right: 0.9375rem;
    max-width: 100%; }
    @media screen and (min-width: 64em) {
      .record__content-list-item {
        flex: 0 0 50%;
        padding-left: 0.9375rem;
        padding-right: 0.9375rem;
        max-width: 50%; } }

.record__content-list-item__content {
  max-width: 75rem;
  display: flex;
  flex-flow: row wrap;
  margin-left: auto;
  margin-right: auto;
  margin: 10px;
  padding: 10px;
  background-color: #fff;
  min-height: 200px;
  align-items: center; }
  .record__content-list-item__content-logo {
    flex: 0 0 50%;
    padding-left: 0;
    padding-right: 0;
    max-width: 50%; }
  .record__content-list-item__content-description {
    flex: 0 0 50%;
    padding-left: 0.9375rem;
    padding-right: 0.9375rem;
    max-width: 50%; }

.withImage .record__content-list-item__content-description {
  flex: 0 0 100%;
  padding-left: 0.9375rem;
  padding-right: 0.9375rem;
  max-width: 100%; }

.record__content-list-item_title {
  font-size: 1.125rem;
  color: #001B59; }

.record__content-list-item_link {
  font-size: 0.75rem; }

.svg__link {
  width: 24px;
  margin-right: 5px; }

.links__content-list {
  max-width: 75rem;
  display: flex;
  flex-flow: row wrap;
  margin-left: auto;
  margin-right: auto; }
  .links__content-list-item {
    flex: 0 0 100%;
    padding-left: 0.9375rem;
    padding-right: 0.9375rem;
    max-width: 100%; }
    @media screen and (min-width: 40em) {
      .links__content-list-item {
        flex: 0 0 50%;
        padding-left: 0.9375rem;
        padding-right: 0.9375rem;
        max-width: 50%; } }

.links__content-list-item__content {
  max-width: 75rem;
  display: flex;
  flex-flow: row wrap;
  margin-left: auto;
  margin-right: auto;
  padding: 15px;
  margin: 10px 0; }
  .links__content-list-item__content-title {
    font-size: 1.125rem;
    padding-right: 10px; }
    .links__content-list-item__content-title::before {
      content: '';
      background: url("../img/puce.gif") no-repeat top left;
      width: 25px;
      height: 25px;
      display: inline-block; }
  .links__content-list-item__content-link {
    padding-left: 10px;
    color: #001B59; }
    .links__content-list-item__content-link:hover {
      color: #000c26; }

.services__content {
  max-width: 75rem;
  display: flex;
  flex-flow: row wrap;
  margin-left: auto;
  margin-right: auto; }

.services-content__article {
  flex: 0 0 100%;
  padding-left: 0.9375rem;
  padding-right: 0.9375rem;
  max-width: 100%; }

.services-content__article__content {
  max-width: 75rem;
  display: flex;
  flex-flow: row wrap;
  margin-left: auto;
  margin-right: auto; }
  .services-content__article__content-img {
    display: none; }
    @media screen and (min-width: 64em) {
      .services-content__article__content-img {
        display: block;
        flex: 0 0 33.3333333333%;
        padding-left: 0.9375rem;
        padding-right: 0.9375rem;
        max-width: 33.3333333333%; } }
  .services-content__article__content-txt {
    flex: 0 0 100%;
    padding-left: 0.9375rem;
    padding-right: 0.9375rem;
    max-width: 100%; }
    @media screen and (min-width: 64em) {
      .services-content__article__content-txt {
        flex: 0 0 66.6666666667%;
        padding-left: 0.9375rem;
        padding-right: 0.9375rem;
        max-width: 66.6666666667%; } }

.services-content__article-list li {
  display: list-item;
  list-style-type: none; }
  .services-content__article-list li::before {
    content: '';
    background: url(../img/puce.gif) no-repeat;
    display: inline-block;
    width: 25px;
    height: 25px;
    margin: 0px 8px -6px -30px; }

.team__content-list {
  max-width: 75rem;
  display: flex;
  flex-flow: row wrap;
  margin-left: auto;
  margin-right: auto; }
  .team__content-list-item {
    flex: 0 0 100%;
    padding-left: 0.9375rem;
    padding-right: 0.9375rem;
    max-width: 100%; }

.team__content-list-item__content {
  max-width: 75rem;
  display: flex;
  flex-flow: row wrap;
  margin-left: auto;
  margin-right: auto;
  margin: 10px;
  padding: 10px;
  background-color: #fff;
  min-height: 200px;
  align-items: center; }
  .team__content-list-item__content-description {
    flex: 0 0 100%;
    padding-left: 0.9375rem;
    padding-right: 0.9375rem;
    max-width: 100%; }

.team__content-list-item__content-picture {
  flex: 0 0 100%;
  padding-left: 0.9375rem;
  padding-right: 0.9375rem;
  max-width: 100%;
  align-self: flex-start; }
  @media screen and (min-width: 40em) {
    .team__content-list-item__content-picture {
      flex: 0 0 33.3333333333%;
      padding-left: 0.9375rem;
      padding-right: 0.9375rem;
      max-width: 33.3333333333%; } }

.team__content-list-item__content-description {
  flex: 0 0 100%;
  padding-left: 0.9375rem;
  padding-right: 0.9375rem;
  max-width: 100%;
  align-self: flex-start; }
  @media screen and (min-width: 40em) {
    .team__content-list-item__content-description {
      flex: 0 0 66.6666666667%;
      padding-left: 0.9375rem;
      padding-right: 0.9375rem;
      max-width: 66.6666666667%; } }

.team__content-list-item_title {
  text-transform: uppercase;
  font-size: 1.5rem;
  margin-bottom: 0px; }

.team__content-list-item_fonction {
  color: #001B59;
  font-size: 1rem;
  display: block; }

.team__content-list-item_text {
  margin-top: 20px; }

.contact {
  max-width: 75rem;
  display: flex;
  flex-flow: row wrap;
  margin-left: auto;
  margin-right: auto; }
  .contact__address {
    flex: 0 0 100%;
    padding-left: 0.9375rem;
    padding-right: 0.9375rem;
    max-width: 100%; }
    @media screen and (min-width: 40em) {
      .contact__address {
        flex: 0 0 33.3333333333%;
        padding-left: 0.9375rem;
        padding-right: 0.9375rem;
        max-width: 33.3333333333%;
        order: 2; } }
    .contact__address.content {
      padding: 4rem 1rem; }
    .contact__address a {
      color: #001B59; }
  .contact__inquire {
    flex: 0 0 100%;
    padding-left: 0.9375rem;
    padding-right: 0.9375rem;
    max-width: 100%; }
    @media screen and (min-width: 40em) {
      .contact__inquire {
        flex: 0 0 66.6666666667%;
        padding-left: 0.9375rem;
        padding-right: 0.9375rem;
        max-width: 66.6666666667%;
        order: 1; } }
  .contact__callout {
    max-width: 75rem;
    display: flex;
    flex-flow: row wrap;
    margin-left: auto;
    margin-right: auto; }
    .contact__callout .callout {
      flex: 1 1 0px;
      padding-left: 0.9375rem;
      padding-right: 0.9375rem; }

.news {
  max-width: 75rem;
  display: flex;
  flex-flow: row wrap;
  margin-left: auto;
  margin-right: auto;
  padding: 4rem 1rem;
  align-items: center; }
  .news__content {
    order: 2; }
    @media screen and (min-width: 40em) {
      .news__content {
        flex: 0 0 58.3333333333%;
        padding-left: 5rem;
        padding-right: 5rem;
        max-width: 58.3333333333%;
        order: 1; } }
  .news__content--wide {
    order: 1;
    flex: 0 0 100%;
    padding-left: 5rem;
    padding-right: 5rem;
    max-width: 100%; }
    @media screen and (min-width: 0em) and (max-width: 39.9375em) {
      .news__content--wide {
        flex: 0 0 100%;
        padding-left: 0.5rem;
        padding-right: 0.5rem;
        max-width: 100%; } }
  .news__picture {
    text-align: center;
    flex: 1 1 0px;
    padding-left: 0.9375rem;
    padding-right: 0.9375rem;
    order: 1; }
    @media screen and (min-width: 0em) and (max-width: 39.9375em) {
      .news__picture {
        padding-bottom: 2rem; } }
    .news__picture img {
      transition: .2s linear all; }
    @media screen and (min-width: 0em) and (max-width: 39.9375em) {
      .news__picture {
        margin-top: 2rem; } }
    @media screen and (min-width: 40em) {
      .news__picture {
        flex: 0 0 41.6666666667%;
        padding-left: 5rem;
        padding-right: 5rem;
        max-width: 41.6666666667%;
        order: 2; }
        .news__picture img {
          margin-bottom: 0;
          margin-bottom: 0; } }
  .news__title {
    font-size: 1.75rem;
    margin-bottom: 1rem; }
    .news__title > small {
      font-size: 1.125rem;
      margin-left: 1rem; }
  .news__short-description {
    font-size: 0.875rem;
    margin-bottom: 2rem; }
  @media screen and (min-width: 0em) and (max-width: 39.9375em) {
    .news .button {
      display: block;
      width: 100%;
      margin-left: 0;
      margin-right: 0; } }
  .news.text-right .button {
    margin-right: 0; }
  .news:hover .news__picture img {
    transform: scale(1.1); }

@media screen and (min-width: 0em) and (max-width: 39.9375em) {
  .news.text-right {
    text-align: center; }
    .news.text-right h2 {
      margin-top: 1rem; } }

.post {
  max-width: 75rem;
  display: flex;
  flex-flow: row wrap;
  margin-left: auto;
  margin-right: auto; }
  .post > * {
    width: 100%; }
  .post__header {
    max-width: 75rem;
    display: flex;
    flex-flow: row wrap;
    margin-left: auto;
    margin-right: auto;
    background: #001B59;
    align-items: center; }
  .post__picture {
    flex: 0 0 100%;
    padding-left: 0.9375rem;
    padding-right: 0.9375rem;
    max-width: 100%;
    margin: 0;
    padding: 0 !important;
    text-align: center; }
    @media screen and (min-width: 40em) {
      .post__picture {
        text-align: left;
        flex: 0 0 50%;
        padding-left: 0.9375rem;
        padding-right: 0.9375rem;
        max-width: 50%; } }
  .post__metas {
    flex: 0 0 100%;
    padding-left: 0.9375rem;
    padding-right: 0.9375rem;
    max-width: 100%;
    padding: 3rem !important; }
    .post__metas h1 {
      color: #fff;
      font-size: 2rem; }
    .post__metas time {
      color: #fff;
      margin-bottom: 1rem;
      font-size: 0.875rem; }
      .post__metas time svg {
        height: 0.875rem;
        width: 0.875rem; }
    .post__metas svg {
      fill: #fff; }
    .post__metas .buttons {
      margin-top: 4rem;
      max-width: 75rem;
      display: flex;
      flex-flow: row wrap;
      margin-left: auto;
      margin-right: auto; }
      .post__metas .buttons > div {
        flex: 0 0 100%;
        padding-left: 0.9375rem;
        padding-right: 0.9375rem;
        max-width: 100%; }
    .post__metas .button {
      border: 1px solid #fff;
      color: #fff;
      display: block;
      width: 100%;
      margin-left: 0;
      margin-right: 0; }
      .post__metas .button:hover, .post__metas .button:focus {
        border-color: gray;
        color: gray; }
      .post__metas .button, .post__metas .button:hover, .post__metas .button:focus {
        background: transparent; }
      .post__metas .button svg {
        fill: #fff;
        height: 1rem;
        width: 1rem; }
      .post__metas .button:hover svg {
        fill: gray; }
    @media screen and (min-width: 40em) {
      .post__metas {
        text-align: left;
        flex: 0 0 50%;
        padding-left: 0.9375rem;
        padding-right: 0.9375rem;
        max-width: 50%; } }
  .post__content {
    padding: 4rem;
    background: #f3f3f3; }
  .post__footer::before, .post__footer::after {
    content: ' ';
    display: table; }
  .post__footer::after {
    clear: both; }
  @media screen and (max-width: 63.9375em) {
    .post__footer {
      display: none !important; } }
  .post__footer .button {
    border: 1px solid #929292;
    color: #929292; }
    .post__footer .button, .post__footer .button:hover, .post__footer .button:focus {
      background: transparent; }
    .post__footer .button:hover, .post__footer .button:focus {
      border-color: #494949;
      color: #494949; }
    .post__footer .button svg {
      height: 10px;
      width: 10px;
      fill: #929292; }
    .post__footer .button:hover svg {
      fill: #494949; }
  .post__footer .right {
    float: right; }
  .post__footer .left {
    float: left; }

.works {
  max-width: 75rem;
  display: flex;
  flex-flow: row wrap;
  margin-left: auto;
  margin-right: auto; }
  .works__items {
    margin-bottom: 2rem;
    flex: 0 0 100%;
    padding-left: 0.9375rem;
    padding-right: 0.9375rem;
    max-width: 100%;
    background: #fff;
    background-clip: content-box; }
    @media screen and (min-width: 40em) {
      .works__items {
        flex: 0 0 50%;
        padding-left: 0.9375rem;
        padding-right: 0.9375rem;
        max-width: 50%; } }
    @media screen and (min-width: 64em) {
      .works__items {
        flex: 0 0 33.3333333333%;
        padding-left: 0.9375rem;
        padding-right: 0.9375rem;
        max-width: 33.3333333333%; } }
    .works__items > article {
      color: #000;
      margin-bottom: 0; }
    .works__items__picture {
      position: relative;
      text-align: center;
      overflow: hidden; }
      .works__items__picture::after {
        opacity: 0;
        content: '';
        top: 0;
        bottom: 0;
        left: 0;
        right: 0;
        position: absolute;
        transition: all .5s; }
      .works__items__picture .button {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        transform: translateY(100vh);
        z-index: 9999; }
    .works__items:hover .works__items__picture .button {
      transform: translateY(0);
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%); }
    .works__items:hover .works__items__picture::after {
      opacity: 1; }
    .works__items__title {
      padding: 1rem;
      color: #333;
      font-size: 1.125rem;
      font-weight: bold;
      font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
      text-align: center;
      height: 100%; }

.work {
  max-width: 75rem;
  display: flex;
  flex-flow: row wrap;
  margin-left: auto;
  margin-right: auto; }
  .work > div {
    flex: 0 0 100%;
    padding-left: 0.9375rem;
    padding-right: 0.9375rem;
    max-width: 100%; }
  .work__footer {
    margin-top: 2rem; }
    .work__footer::before, .work__footer::after {
      content: ' ';
      display: table; }
    .work__footer::after {
      clear: both; }
    @media screen and (max-width: 63.9375em) {
      .work__footer {
        display: none !important; } }
    .work__footer .button {
      border: 1px solid #929292;
      color: #929292; }
      .work__footer .button, .work__footer .button:hover, .work__footer .button:focus {
        background: transparent; }
      .work__footer .button:hover, .work__footer .button:focus {
        border-color: #494949;
        color: #494949; }
      .work__footer .button svg {
        height: 10px;
        width: 10px;
        fill: #929292; }
      .work__footer .button:hover svg {
        fill: #494949; }
    .work__footer .right {
      float: right; }
    .work__footer .left {
      float: left; }

.work-stripe {
  max-width: 100vw;
  display: flex;
  flex-flow: row wrap;
  margin-left: auto;
  margin-right: auto; }
  .work-stripe > div > a {
    display: block;
    z-index: 99999; }
  .work-stripe > div {
    flex: 0 0 100%;
    padding-left: 0;
    padding-right: 0;
    max-width: 100%;
    position: relative;
    text-align: center;
    overflow: hidden; }
    @media screen and (min-width: 40em) {
      .work-stripe > div {
        flex: 0 0 50%;
        padding-left: 0;
        padding-right: 0;
        max-width: 50%; } }
    @media screen and (min-width: 64em) {
      .work-stripe > div {
        flex: 0 0 25%;
        padding-left: 0;
        padding-right: 0;
        max-width: 25%; } }
    .work-stripe > div:hover .caption {
      opacity: 1; }
      .work-stripe > div:hover .caption a {
        transform: translateY(0); }
      .work-stripe > div:hover .caption::after {
        opacity: 0;
        content: '';
        top: 0;
        bottom: 0;
        left: 0;
        right: 0;
        position: absolute;
        transition: all .5s; }
    .work-stripe > div .caption {
      opacity: 0;
      content: '';
      top: 0;
      bottom: 0;
      left: 0;
      right: 0;
      position: absolute;
      transition: all .5s;
      pointer-events: none;
      color: #ffffff; }
      .work-stripe > div .caption a {
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        transform: translateY(100vh);
        margin: 0; }
    .work-stripe > div img {
      width: 100%;
      object-fit: cover; }

[data-whatinput='touch'] .work-stripe caption {
  opacity: 1; }

.strip {
  max-width: 75rem;
  display: flex;
  flex-flow: row wrap;
  margin-left: auto;
  margin-right: auto;
  align-items: center;
  margin-bottom: 2rem; }

.strip__title {
  padding: 1rem;
  flex: 1 1 0px;
  padding-left: 0.9375rem;
  padding-right: 0.9375rem;
  color: #000;
  text-transform: inherit;
  font-size: 2rem; }
  @media screen and (min-width: 0em) and (max-width: 39.9375em) {
    .strip__title {
      text-align: center; } }
  .strip__title::before {
    content: '';
    background: url("../img/puce.gif") no-repeat;
    display: inline-block;
    width: 25px;
    height: 25px;
    margin-right: 5px; }

.strip__breadcrumbs {
  flex: 0 0 auto;
  padding-left: 0.9375rem;
  padding-right: 0.9375rem; }
  @media screen and (min-width: 0em) and (max-width: 39.9375em) {
    .strip__breadcrumbs {
      display: none; } }

.strip--secondary {
  background: #fff; }

.strip--no-margin,
.strip--no-margin .strip {
  margin-bottom: 0; }

.strip--callout {
  padding: 1rem 0;
  background-color: #fff;
  position: relative; }
  .strip--callout::after {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    bottom: 0; }
  .strip--callout > div {
    max-width: 75rem;
    display: flex;
    flex-flow: row wrap;
    margin-left: auto;
    margin-right: auto;
    position: relative;
    color: #fff;
    z-index: 9999; }
    .strip--callout > div > div {
      flex: 1 1 0px;
      padding-left: 0.9375rem;
      padding-right: 0.9375rem;
      text-align: center; }

.strip--callout-newsletter {
  background: url("../img/newsletter-m.png") no-repeat center center fixed;
  background-size: cover; }
  @media screen and (min-width: 40em) {
    .strip--callout-newsletter {
      background-image: url("../img/newsletter-m.png"); } }
  @media screen and (min-width: 64em) {
    .strip--callout-newsletter {
      background-image: url("../img/newsletter-l.png"); } }
  @media screen and (min-width: 75em) {
    .strip--callout-newsletter {
      background-image: url("../img/newsletter-xl.png"); } }
  @media screen and (min-width: 90em) {
    .strip--callout-newsletter {
      background-image: url("../img/newsletter-xxl.png"); } }

.slider {
  position: absolute !important;
  top: 0;
  z-index: 1;
  height: 100%;
  width: 100%;
  overflow: hidden; }
  .slider .slider--items {
    height: 400px;
    object-fit: cover; }

@keyframes bounce {
  0% {
    transform: translateY(-10px); }
  50% {
    transform: translateY(0); }
  100% {
    transform: translateY(-10px); } }

.map {
  height: 50vh; }

section,
article,
.grid-margin {
  margin-bottom: 2rem; }

.no-margin {
  margin-bottom: 0; }

.zebra {
  width: 100%; }

.zebra .zebra__item:nth-child(1n) {
  background: #fff; }
  .zebra .zebra__item:nth-child(1n) .about__items {
    position: relative; }
    .zebra .zebra__item:nth-child(1n) .about__items::after {
      content: '';
      position: absolute;
      border: 10px solid #fff;
      top: 0;
      right: 0;
      left: 0;
      bottom: 0;
      pointer-events: none; }

.zebra--shadow .zebra__item:nth-child(1n):hover {
  box-shadow: 0 0 5px 1px #e6e6e6; }

.zebra .zebra__item:nth-child(2n) {
  background: #000; }
  .zebra .zebra__item:nth-child(2n) .about__items {
    position: relative; }
    .zebra .zebra__item:nth-child(2n) .about__items::after {
      content: '';
      position: absolute;
      border: 10px solid #000;
      top: 0;
      right: 0;
      left: 0;
      bottom: 0;
      pointer-events: none; }

.zebra--shadow .zebra__item:nth-child(2n):hover {
  box-shadow: 0 0 5px 1px #1a1a1a; }

.zebra .zebra__item:nth-child(1n) h1,
.zebra .zebra__item:nth-child(1n) h2,
.zebra .zebra__item:nth-child(1n) h3,
.zebra .zebra__item:nth-child(1n) h4,
.zebra .zebra__item:nth-child(1n) h5,
.zebra .zebra__item:nth-child(1n) h6 {
  color: #333; }

.zebra .zebra__item:nth-child(2n) h1,
.zebra .zebra__item:nth-child(2n) h2,
.zebra .zebra__item:nth-child(2n) h3,
.zebra .zebra__item:nth-child(2n) h4,
.zebra .zebra__item:nth-child(2n) h5,
.zebra .zebra__item:nth-child(2n) h6 {
  color: #222; }

.zebra .zebra__item:nth-child(1n) {
  color: #333; }
  .zebra .zebra__item:nth-child(1n) .about svg {
    fill: rgba(51, 51, 51, 0.2); }
  .zebra .zebra__item:nth-child(1n) .about__item {
    border: 1px solid rgba(51, 51, 51, 0.1); }

.zebra .zebra__item:nth-child(2n) {
  color: #222; }
  .zebra .zebra__item:nth-child(2n) .about svg {
    fill: rgba(34, 34, 34, 0.2); }
  .zebra .zebra__item:nth-child(2n) .about__item {
    border: 1px solid rgba(34, 34, 34, 0.1); }

.zebra .zebra__item {
  transition: .5s linear all; }
  .zebra .zebra__item * {
    color: currentColor; }

.zebra .zebra__item:nth-child(1n) .button {
  background: #333;
  color: #fff; }
  .zebra .zebra__item:nth-child(1n) .button:hover, .zebra .zebra__item:nth-child(1n) .button:focus {
    background: #858585;
    color: #fff; }

.zebra .zebra__item:nth-child(2n) .button {
  background: #222;
  color: #fff; }
  .zebra .zebra__item:nth-child(2n) .button:hover, .zebra .zebra__item:nth-child(2n) .button:focus {
    background: #7a7a7a;
    color: #fff; }

.button,
button[type=submit],
button[type=reset] {
  display: inline-block;
  text-align: center;
  line-height: 1;
  cursor: pointer;
  -webkit-appearance: none;
  transition: all 0.25s ease-out;
  vertical-align: middle;
  border: 1px solid transparent;
  border-radius: 0;
  padding: 0.85em 1em;
  margin: 0 1rem 1rem 0;
  font-size: 0.9rem;
  background: #001B59;
  color: #fff; }
  [data-whatinput='mouse'] .button, [data-whatinput='mouse']
  button[type=submit], [data-whatinput='mouse']
  button[type=reset] {
    outline: 0; }
  .button:hover, .button:focus,
  button[type=submit]:hover,
  button[type=submit]:focus,
  button[type=reset]:hover,
  button[type=reset]:focus {
    background: #00174c;
    color: #fff; }
  .button.hollow,
  button[type=submit].hollow,
  button[type=reset].hollow {
    border: 1px solid #001B59;
    color: #001B59; }
    .button.hollow, .button.hollow:hover, .button.hollow:focus,
    button[type=submit].hollow,
    button[type=submit].hollow:hover,
    button[type=submit].hollow:focus,
    button[type=reset].hollow,
    button[type=reset].hollow:hover,
    button[type=reset].hollow:focus {
      background: transparent; }
    .button.hollow:hover, .button.hollow:focus,
    button[type=submit].hollow:hover,
    button[type=submit].hollow:focus,
    button[type=reset].hollow:hover,
    button[type=reset].hollow:focus {
      border-color: #000e2d;
      color: #000e2d; }
  .button.secondary:not(.secondary),
  button[type=submit].secondary:not(.secondary),
  button[type=reset].secondary:not(.secondary) {
    background: #fff;
    color: #000; }
    .button.secondary:not(.secondary):hover, .button.secondary:not(.secondary):focus,
    button[type=submit].secondary:not(.secondary):hover,
    button[type=submit].secondary:not(.secondary):focus,
    button[type=reset].secondary:not(.secondary):hover,
    button[type=reset].secondary:not(.secondary):focus {
      background: #00174c;
      color: #000; }
  .button.hollow.secondary,
  button[type=submit].hollow.secondary,
  button[type=reset].hollow.secondary {
    border: 1px solid #fff;
    color: #fff; }
    .button.hollow.secondary:hover, .button.hollow.secondary:focus,
    button[type=submit].hollow.secondary:hover,
    button[type=submit].hollow.secondary:focus,
    button[type=reset].hollow.secondary:hover,
    button[type=reset].hollow.secondary:focus {
      border-color: gray;
      color: gray; }

.scroll-down {
  position: absolute;
  bottom: 2rem;
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  z-index: 600;
  animation: bounce 3s infinite; }
  @media screen and (min-width: 0em) and (max-width: 39.9375em) {
    .scroll-down {
      display: none !important; } }
  .scroll-down svg {
    fill: #ffffff;
    height: 40px;
    width: 40px; }

.scroll-top {
  z-index: 600;
  position: fixed;
  bottom: 2rem;
  display: none;
  right: 2rem;
  height: 40px;
  width: 40px;
  background: rgba(0, 27, 89, 0.4);
  transform: translateX(200px);
  transition: .5s transform; }
  .scroll-top svg {
    fill: #00216e;
    height: 40px;
    width: 40px; }
  .scroll-top.visible {
    transform: translateX(0);
    display: block; }

.content {
  max-width: 75rem;
  display: flex;
  flex-flow: row wrap;
  margin-left: auto;
  margin-right: auto;
  padding: 1rem;
  margin-bottom: 2rem;
  background: #fff;
  color: #000; }
  @media screen and (min-width: 40em) {
    .content {
      padding: 4rem; } }
  .content > div {
    flex: 1 1 0px;
    padding-left: 0.9375rem;
    padding-right: 0.9375rem; }
  .content table {
    width: 100% !important;
    max-width: 100% !important; }

.hero {
  position: relative; }

.hero::after {
  content: '';
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  bottom: 0; }

.hero > .hero__content {
  text-align: center;
  color: #fff;
  z-index: 250;
  text-align: center;
  width: 100vw;
  position: absolute;
  top: 50%;
  transform: translateY(-50%); }
  .hero > .hero__content * {
    color: #fff; }

.about {
  max-width: 75rem;
  display: flex;
  flex-flow: row wrap;
  margin-left: auto;
  margin-right: auto;
  padding-top: 3rem;
  padding-bottom: 3rem;
  justify-content: center; }
  .about__hero {
    text-align: center;
    margin-bottom: 3rem;
    flex: 0 0 100%;
    padding-left: 0.9375rem;
    padding-right: 0.9375rem;
    max-width: 100%; }
  .about__items {
    max-width: 75rem;
    display: flex;
    flex-flow: row wrap;
    margin-left: auto;
    margin-right: auto; }
  .about__item {
    flex: 0 0 100%;
    padding-left: 0.9375rem;
    padding-right: 0.9375rem;
    max-width: 100%;
    padding: 1rem;
    text-align: center; }
    .about__item svg {
      height: 60px;
      width: 60px; }
    .about__item h2 {
      font-size: 1.375rem;
      margin: 1rem 0; }
    .about__item p {
      font-size: 0.875rem; }
    @media screen and (min-width: 40em) {
      .about__item {
        flex: 0 0 50%;
        padding-left: 4rem;
        padding-right: 4rem;
        max-width: 50%; } }
    @media screen and (min-width: 64em) {
      .about__item {
        flex: 0 0 33.3333333333%;
        padding-left: 4rem;
        padding-right: 4rem;
        max-width: 33.3333333333%; } }

.gallery {
  max-width: 75rem;
  display: flex;
  flex-flow: row wrap;
  margin-left: auto;
  margin-right: auto; }
  .gallery a::after {
    opacity: 0;
    content: '';
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    position: absolute;
    transition: all .5s; }
  .gallery a:hover::after {
    opacity: 1; }

.row {
  max-width: 75rem;
  display: flex;
  flex-flow: row wrap;
  margin-left: auto;
  margin-right: auto;
  justify-content: space-around; }

.cols {
  flex: 1 1 0px;
  padding-left: 0.9375rem;
  padding-right: 0.9375rem; }
  @media screen and (min-width: 0em) and (max-width: 39.9375em) {
    .cols {
      flex: 0 0 100%;
      padding-left: 0.9375rem;
      padding-right: 0.9375rem;
      max-width: 100%; } }

.newsletter-signup__field {
  max-width: 500px;
  margin: 1rem auto;
  opacity: .5; }
  .newsletter-signup__field:focus {
    opacity: 1;
    border: 0; }

.newsletter-signup__submit[type=submit] {
  background: #3adb76;
  color: #fff; }
  .newsletter-signup__submit[type=submit]:hover, .newsletter-signup__submit[type=submit]:focus {
    background: #00174c;
    color: #fff; }

.newsletter-signup__submit {
  margin-right: 0; }

.lg-thumb-item img {
  object-fit: cover !important; }

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIl9zZXR0aW5ncy5zY3NzIiwiLi4vbGliL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL191bml0LnNjc3MiLCIuLi9saWIvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX2JyZWFrcG9pbnQuc2NzcyIsIi4uL2xpYi9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm91bmRhdGlvbi5zY3NzIiwiLi4vbGliL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9fZ2xvYmFsLnNjc3MiLCJfc2V0dGluZ3NfZm91bmRhdGlvbi5zY3NzIiwiLi4vbGliL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy90eXBvZ3JhcGh5L19iYXNlLnNjc3MiLCIuLi9saWIvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX2hlbHBlcnMuc2NzcyIsIi4uL2xpYi9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9fYWxpZ25tZW50LnNjc3MiLCIuLi9saWIvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX3ByaW50LnNjc3MiLCIuLi9saWIvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL190ZXh0LnNjc3MiLCIuLi9saWIvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX2NvbG9yLnNjc3MiLCIuLi9saWIvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19jaGVja2JveC5zY3NzIiwiLi4vbGliL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fbGFiZWwuc2NzcyIsIi4uL2xpYi9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX2hlbHAtdGV4dC5zY3NzIiwiLi4vbGliL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9faW5wdXQtZ3JvdXAuc2NzcyIsIi4uL2xpYi9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX2ZpZWxkc2V0LnNjc3MiLCIuLi9saWIvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19zZWxlY3Quc2NzcyIsIi4uL2xpYi9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fbWl4aW5zLnNjc3MiLCIuLi9saWIvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19lcnJvci5zY3NzIiwiLi4vbGliL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL192aXNpYmlsaXR5LnNjc3MiLCIuLi9saWIvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2JyZWFkY3J1bWJzLnNjc3MiLCIuLi9saWIvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2NhbGxvdXQuc2NzcyIsIi4uL2xpYi9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fY2xvc2UtYnV0dG9uLnNjc3MiLCIuLi9saWIvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2RyaWxsZG93bi5zY3NzIiwiLi4vbGliL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19kcm9wZG93bi5zY3NzIiwiLi4vbGliL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19kcm9wZG93bi1tZW51LnNjc3MiLCIuLi9saWIvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX21lbnUuc2NzcyIsIi4uL2xpYi9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fc3RpY2t5LnNjc3MiLCIuLi9saWIvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3RhYmxlLnNjc3MiLCIuLi9saWIvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3RpdGxlLWJhci5zY3NzIiwiLi4vbGliL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL190b3AtYmFyLnNjc3MiLCJsYXlvdXQvX3RvcGJhci5zY3NzIiwiLi4vbGliL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyIsIi4uL2xpYi9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fY29sdW1uLnNjc3MiLCJsYXlvdXQvX2Zvb3Rlci5zY3NzIiwibGF5b3V0L19hYm91dC5zY3NzIiwibGF5b3V0L19yZWNvcmQuc2NzcyIsImxheW91dC9fbGlua3Muc2NzcyIsImxheW91dC9fc2VydmljZXMuc2NzcyIsImxheW91dC9fdGVhbS5zY3NzIiwibGF5b3V0L19jb250YWN0LnNjc3MiLCJsYXlvdXQvX25ld3Muc2NzcyIsIi4uL2xpYi9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fYnV0dG9uLnNjc3MiLCJsYXlvdXQvX3dvcmtzLnNjc3MiLCJtb2R1bGVzL19zdHJpcGUuc2NzcyIsIm1vZHVsZXMvX3NsaWRlci5zY3NzIiwiLi4vLi4vc3RkaW4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBNEVBLGVBQWUsQ0FBQyxDQUFDLENBQUM7RUFDaEIsU0FBUyxFQ1BDLFFBQVUsQ0RPSSxVQUFVLEdBQ25DOztBQXdERCxTQUFTLENBQUM7RUFFUixPQUFPLEVBUlEsR0FBRztFQVVsQixVQUFVLEVBMUhJLE9BQU8sQ0EwSE0sVUFBVSxHQVN0QztFQWJELFNBQVMsQ0FNUCxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDVixLQUFLLEVBNUhTLElBQUksQ0E0SE0sVUFBVSxHQUNuQztFQVJILFNBQVMsQ0FVUCxDQUFDLE1BQU0sQ0FBQztJQUNOLEtBQUssRUFBRSxPQUFPLENBQXFCLFVBQVUsR0FDOUM7O0FFWkMsTUFBTSxDQUFOLE1BQU0sTUFBTSxTQUFTLEVBQUUsR0FBRyxPQUFPLFNBQVMsRUFBRSxTQUFTO0VGZ0J6RCxhQUFhLENBQUM7SUFHVixVQUFVLEVBeklFLE9BQU8sQ0F5SVEsVUFBVSxHQU94QztJQVZELGFBQWEsQ0FLVCxFQUFFLENBQUM7TUFDRCxPQUFPLEVBQUUsZ0JBQWlCLEdBQzNCOztBQU1MLHNCQUFzQixDQUFDO0VBQ3JCLFVBQVUsRUFBRSxNQUFPLEdBQ3BCOztBQUNELHdCQUF3QixDQUFDLENBQUMsQ0FBQTtFQUN4QixLQUFLLEVBQUUsSUFBSyxHQUNiOztBR3hLRDs7Ozs7R0FLRztB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RSxHQUNiOztBQVRULDBCQUFrQixDQVlMLElBQUMsQ0FBRCxNQUFDLEVBQWE7RUo1UnpCLFVBQVUsRXRDeEVJLE9BQU87RXNDeUVyQixLQUFLLEV0Q3NHUSxJQUFJLEcwQ3dMZDtFQWZMLDBCQUFrQixDQVlMLElBQUMsQ0FBRCxNQUFDLENKelJYLE1BQU0sRUk2UVQsMEJBQWtCLENBWUwsSUFBQyxDQUFELE1BQUMsQ0p6UkYsTUFBTSxDQUFDO0lBQ2YsVUFBVSxFdENrR1ksT0FBVztJc0NqR2pDLEtBQUssRXRDa0dNLElBQUksR3NDakdoQjs7QUk2UkgsMEJBQTBCLENBQUM7RUFDdkIsWUFBWSxFQUFFLENBQUUsR0FDbkI7O0FBS0QsY0FBYyxDQUFDLEdBQUcsQ0FBQztFQUNmLFVBQVUsRUFBRSxnQkFBaUIsR0FDaEMiLCJmaWxlIjoiYXBwLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIkBpbXBvcnQgJy4uL2xpYi9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC91dGlsJztcblxuLy8gMS4gTW9kdWxlc1xuLy8gLS0tLS0tLS0tXG4kc3RhbmRhcmQtbW9kdWxlLXNlcnZpY2U6IHRydWU7XG4kc3RhbmRhcmQtbW9kdWxlLW5ld3M6IHRydWU7XG4kc3RhbmRhcmQtbW9kdWxlLXdvcmtzOiB0cnVlO1xuJHN0YW5kYXJkLW1vZHVsZS1jb250YWN0OiB0cnVlO1xuXG4vLyAyLiBUaGVtZVxuLy8gLS0tLS0tLS0tXG5cbiRnbG9iYWwtcmFkaXVzOiAwO1xuXG4vLyBDb2xvcnNcbi8vIC0tLS0tLS0tLVxuJHByaW1hcnktY29sb3I6ICMwMDFCNTk7XG4kc2Vjb25kYXJ5LWNvbG9yOiAjZmZmO1xuXG4kYm9keS1iYWNrZ3JvdW5kOiAjZWVlO1xuJGJvZHktZm9udC1jb2xvcjogIzMzMztcblxuJGxlYWQtY29sb3I6ICNmZmY7XG4kbGVhZC10aXRsZS1jb2xvcjogIzAwMDtcbiRsZWFkLXRpdGxlLXN0eWxlOiBpbmhlcml0O1xuJGxlYWQtdGV4dC1jb2xvcjogIzAwMDtcblxuJGNhcmRzLWJhY2tncm91bmQ6ICRsZWFkLWNvbG9yO1xuJGNhcmRzLWNvbG9yOiAkbGVhZC10aXRsZS1jb2xvcjtcblxuJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3I6ICMzMzM7XG4kYnJlYWRjcnVtYnMtaXRlbS1jb2xvci1jdXJyZW50OiAjMzMzO1xuXG4kZm9vdGVyLWJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4kZm9vdGVyLWNvbG9yOiAjMDAwO1xuXG4kemVicmEtYmFja2dyb3VuZC1jb2xvcjogI2ZmZiwgIzAwMDtcbiR6ZWJyYS10aXRsZS1jb2xvcjogIzMzMywgIzIyMjtcbiR6ZWJyYS1jb2xvcjogIzMzMywgIzIyMjtcblxuJHplYnJhLWJ1dHRvbi1jb2xvcjogJHplYnJhLWNvbG9yO1xuXG4vLyBQb2xpY2Vcbi8vIC0tLS0tLS0tLVxuXG4vL0BpbXBvcnQgdXJsKGh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzP2ZhbWlseT1Sb2JvdG98TGF0byk7XG5cbiRnbG9iYWwtd2VpZ2h0LW5vcm1hbDogbm9ybWFsO1xuJGdsb2JhbC13ZWlnaHQtYm9sZDogYm9sZDtcblxuJGJvZHktZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBSb2JvdG8sIEFyaWFsLCBzYW5zLXNlcmlmO1xuJGhlYWRlci1mb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHk7XG4kaGVhZGVyLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWw7XG5cbi8vIE1hcFxuLy8gLS0tLS0tLS0tXG5cbiRtYXAtaGVpZ2h0OiA1MHZoO1xuXG4vLyBOYXZcbi8vIC0tLS0tLS0tLVxuJHRvcGJhci1wYWRkaW5nOiAycmVtO1xuJHRvcGJhci1iYWNrZ3JvdW5kOiAjY2NjO1xuJHRvcGJhci1saW5rLXN0eWxlOiB1cHBlcmNhc2U7XG4kdG9wYmFyLWxpbmstY29sb3I6ICNmZmZmZmY7XG4kdG9wYmFyLWxpbmstY29sb3ItaG92ZXI6ICMwMDFCNTk7XG4kdG9wYmFyLWxpbmstd2VpZ2h0OiA1MDA7XG4kdG9wYmFyLWJhY2tncm91bmQtY29sb3I6IHJnYmEoIzE1NzFiNywgLjcpO1xuXG5cbi8vIEhlcm9cbi8vIC0tLS0tLS0tLVxuJGhlcm8taG9tZXBhZ2UtbWF4LWhlaWdodDogNDAwcHg7XG4kaGVyby1tYXgtaGVpZ2h0OiA0MDBweDtcbiRoZXJvLWNvbG9yOiAjZmZmO1xuXG4uc3RyaXAtLWNhbGxvdXQgcCB7XG4gIGZvbnQtc2l6ZTogcmVtLWNhbGMoMjIpICFpbXBvcnRhbnQ7XG59XG5cbi8vIEZPUk1cbi8vIC0tLS0tLS0tLVxuJGlucHV0LWZvbnQtc2l6ZTogcmVtLWNhbGMoMTYpO1xuJGlucHV0LWJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCNjY2MsIDUlKTtcbiRpbnB1dC1iYWNrZ3JvdW5kLWZvY3VzOiBzbWFydC1zY2FsZSgkY2FyZHMtYmFja2dyb3VuZCwgMSUpO1xuJGlucHV0LWJvcmRlcjogMXB4IHNvbGlkIHNtYXJ0LXNjYWxlKCRjYXJkcy1iYWNrZ3JvdW5kLCA1JSk7XG4kaW5wdXQtYm9yZGVyLWZvY3VzOiAxcHggc29saWQgc21hcnQtc2NhbGUoJGNhcmRzLWJhY2tncm91bmQsIDUlKTtcbiRpbnB1dC1zaGFkb3c6IGluc2V0IDAgMXB4IDJweCBzbWFydC1zY2FsZSgkY2FyZHMtYmFja2dyb3VuZCwgNSUpO1xuJGlucHV0LXNoYWRvdy1mb2N1czogMCAwIDVweCBzbWFydC1zY2FsZSgkY2FyZHMtYmFja2dyb3VuZCwgNSUpO1xuJGlucHV0LWNvbG9yOiAkY2FyZHMtY29sb3I7XG4kaW5wdXQtZm9udC1mYW1pbHk6IGluaGVyaXQ7XG5cbiVmaWx0ZXItaGVybyB7XG4gIC8vQGluY2x1ZGUgZmlsdGVyLWZpbGwocmdiYShkZWVwcGluaywgLjUpKTtcbiAgLy9AaW5jbHVkZSBmaWx0ZXItZ3JhZGllbnQodG8gYm90dG9tLCByZ2JhKGRlZXBwaW5rLCAuNSksIHJnYmEobWlkbmlnaHRibHVlLCAuNSkpO1xuICAvL0BpbmNsdWRlIGZpbHRlci1wYXR0ZXJuKHN0cmlwZXMsIGRlZXBwaW5rLCAxMHB4KTtcbn1cblxuJWZpbHRlci1oZXJvLXNlY29uZGFyeSB7XG4gIC8vQGluY2x1ZGUgZmlsdGVyLWZpbGwocmdiYShkZWVwcGluaywgLjUpKTtcbiAgLy9AaW5jbHVkZSBmaWx0ZXItZ3JhZGllbnQodG8gYm90dG9tLCByZ2JhKGRlZXBwaW5rLCAuNSksIHJnYmEobWlkbmlnaHRibHVlLCAuNSkpO1xuICAvL0BpbmNsdWRlIGZpbHRlci1wYXR0ZXJuKHN0cmlwZXMsIGRlZXBwaW5rLCAxMHB4KTtcbn1cblxuJWZpbHRlci1hY2Nlc3Nvcnkge1xuICAvL0BpbmNsdWRlIGZpbHRlci1maWxsKHJnYmEoZGVlcHBpbmssIC41KSk7XG4gIEBpbmNsdWRlIGZpbHRlci1ncmFkaWVudCh0byBib3R0b20sIHJnYmEoIzAwMCwgLjMpLCByZ2JhKG1pZG5pZ2h0Ymx1ZSwgLjUpKTtcbiAgLy9AaW5jbHVkZSBmaWx0ZXItcGF0dGVybihjcm9zcywgZGVlcHBpbmssIDEwcHgpO1xufVxuXG4lZmlsdGVyLWVtYWlsaW5nIHtcbiAgLy9AaW5jbHVkZSBmaWx0ZXItZmlsbChyZ2JhKGRlZXBwaW5rLCAuNSkpO1xuICAvL0BpbmNsdWRlIGZpbHRlci1ncmFkaWVudCh0byBib3R0b20sIHJnYmEoZGVlcHBpbmssIC41KSwgcmdiYShtaWRuaWdodGJsdWUsIC41KSk7XG4gIC8vQGluY2x1ZGUgZmlsdGVyLXBhdHRlcm4oc3RyaXBlcywgZGVlcHBpbmssIDEwcHgpO1xufVxuXG4lZmlsdGVyLWhvdmVyIHtcbiAgLy9AaW5jbHVkZSBmaWx0ZXItZmlsbChyZ2JhKGRlZXBwaW5rLCAuNSkpO1xuICAvL0BpbmNsdWRlIGZpbHRlci1ncmFkaWVudCh0byBib3R0b20sIHJnYmEoZGVlcHBpbmssIC41KSwgcmdiYShtaWRuaWdodGJsdWUsIC41KSk7XG4gIC8vQGluY2x1ZGUgZmlsdGVyLXBhdHRlcm4oY3Jvc3MsIGRlZXBwaW5rLCAxMHB4KTtcbn1cblxuJHotaW5kZXg6IChcbiAgICAgICAgZ3VscCBoZXJvT3ZlcmxheTogMjAwLFxuICAgICAgICBoZXJvVGV4dDogMjUwLFxuICAgICAgICB2aWRlbzogMjgwLFxuICAgICAgICB0b3BiYXI6IDMwMCxcbiAgICAgICAgc2Nyb2xsVG9wOiA2MDAsXG4gICAgICAgIHN1Ym1lbnU6IDYwNVxuKTtcblxuQGltcG9ydCAnc2V0dGluZ3NfZm91bmRhdGlvbic7XG5cbi8vU3VibmF2XG4uc291c01lbnUge1xuXG4gIHotaW5kZXg6IG1hcF9nZXQoJHotaW5kZXgsICdzdWJtZW51Jyk7XG5cbiAgYmFja2dyb3VuZDogJHByaW1hcnktY29sb3IgIWltcG9ydGFudDtcblxuICBsaS5hY3RpdmUgYSB7XG4gICAgY29sb3I6ICRzZWNvbmRhcnktY29sb3IgIWltcG9ydGFudDtcbiAgfVxuXG4gIGE6aG92ZXIge1xuICAgIGNvbG9yOiBsaWdodGVuKCRwcmltYXJ5LWNvbG9yLCA1MCkgIWltcG9ydGFudDtcbiAgfVxufVxuXG4vL1N1Ym5hdlxuLnNvdXNNZW51TGFuZyB7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XG4gICAgYmFja2dyb3VuZDogJHByaW1hcnktY29sb3IgIWltcG9ydGFudDtcblxuICAgIGxpIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gIH1cbn1cblxuLy9Gb290ZXJcbi5wZXJzb19fY29udGVudC1mb290ZXIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4ucHJpbWFyeS1mb290ZXJfX2FkZHJlc3MgYXtcbiAgY29sb3I6ICMwMDA7XG59XG5cbi8vQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSB1cCkge1xuLy8gIC50b3AtYmFyIHtcbi8vICAgIGhlaWdodDogMjAwcHg7XG4vLyAgfVxuLy9cbi8vICAudG9wLWJhciAubGVmdC5tZW51IHtcbi8vICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbi8vICB9XG4vL1xuLy8gIC50b3AtYmFyIGEge1xuLy8gICAgZm9udC1zaXplOiAxLjNlbTtcbi8vICB9XG4vL31cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZ1bmN0aW9uc1xuLy8vL1xuXG4vLyBzY3NzLWxpbnQ6ZGlzYWJsZSBaZXJvVW5pdFxuXG4vLy8gRGVmaW5lcyB0aGUgYmFzZSBmb250IHNpemUgb2YgdGhlIHBhZ2UsIHdoaWNoIGlzIHRoZSB2YWx1ZSBgMXJlbWAgaXMgZXF1YWwgdG8uXG4vLy8gQHR5cGUgTnVtYmVyXG4vLy8gQGdyb3VwIGdsb2JhbFxuJHJlbS1iYXNlOiAxNnB4ICFkZWZhdWx0O1xuXG4vLy8gUmVtb3ZlcyB0aGUgdW5pdCAoZS5nLiBweCwgZW0sIHJlbSkgZnJvbSBhIHZhbHVlLCByZXR1cm5pbmcgdGhlIG51bWJlciBvbmx5LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRudW0gLSBOdW1iZXIgdG8gc3RyaXAgdW5pdCBmcm9tLlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gVGhlIHNhbWUgbnVtYmVyLCBzYW5zIHVuaXQuXG5AZnVuY3Rpb24gc3RyaXAtdW5pdCgkbnVtKSB7XG4gIEByZXR1cm4gJG51bSAvICgkbnVtICogMCArIDEpO1xufVxuXG4vLy8gQ29udmVydHMgb25lIG9yIG1vcmUgcGl4ZWwgdmFsdWVzIGludG8gbWF0Y2hpbmcgcmVtIHZhbHVlcy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfExpc3R9ICR2YWx1ZXMgLSBPbmUgb3IgbW9yZSB2YWx1ZXMgdG8gY29udmVydC4gQmUgc3VyZSB0byBzZXBhcmF0ZSB0aGVtIHdpdGggc3BhY2VzIGFuZCBub3QgY29tbWFzLiBJZiB5b3UgbmVlZCB0byBjb252ZXJ0IGEgY29tbWEtc2VwYXJhdGVkIGxpc3QsIHdyYXAgdGhlIGxpc3QgaW4gcGFyZW50aGVzZXMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXNlIFskcmVtLWJhc2VdIC0gVGhlIGJhc2UgdmFsdWUgdG8gdXNlIHdoZW4gY2FsY3VsYXRpbmcgdGhlIGByZW1gLiBJZiB5b3UncmUgdXNpbmcgRm91bmRhdGlvbiBvdXQgb2YgdGhlIGJveCwgdGhpcyBpcyAxNnB4LlxuLy8vXG4vLy8gQHJldHVybnMge0xpc3R9IEEgbGlzdCBvZiBjb252ZXJ0ZWQgdmFsdWVzLlxuQGZ1bmN0aW9uIHJlbS1jYWxjKCR2YWx1ZXMsICRiYXNlOiAkcmVtLWJhc2UpIHtcbiAgJHJlbS12YWx1ZXM6ICgpO1xuICAkY291bnQ6IGxlbmd0aCgkdmFsdWVzKTtcblxuICBAaWYgJGJhc2UgPT0gbnVsbCB7XG4gICAgJGJhc2U6ICRyZW0tYmFzZTtcbiAgfVxuXG4gIEBpZiAkY291bnQgPT0gMSB7XG4gICAgQHJldHVybiAtemYtdG8tcmVtKCR2YWx1ZXMsICRiYXNlKTtcbiAgfVxuXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGNvdW50IHtcbiAgICAkcmVtLXZhbHVlczogYXBwZW5kKCRyZW0tdmFsdWVzLCAtemYtdG8tcmVtKG50aCgkdmFsdWVzLCAkaSksICRiYXNlKSk7XG4gIH1cblxuICBAcmV0dXJuICRyZW0tdmFsdWVzO1xufVxuXG4vLyBDb252ZXJ0cyBhIHVuaXRsZXNzLCBwaXhlbCwgb3IgcmVtIHZhbHVlIHRvIGVtLCBmb3IgdXNlIGluIGJyZWFrcG9pbnRzLlxuQGZ1bmN0aW9uIC16Zi1icC10by1lbSgkdmFsdWUpIHtcbiAgLy8gUGl4ZWwgYW5kIHVuaXRsZXNzIHZhbHVlcyBhcmUgY29udmVydGVkIHRvIHJlbXNcbiAgQGlmIHVuaXQoJHZhbHVlKSA9PSAncHgnIG9yIHVuaXRsZXNzKCR2YWx1ZSkge1xuICAgICR2YWx1ZTogcmVtLWNhbGMoJHZhbHVlKTtcbiAgfVxuXG4gIC8vIFRoZW4gdGhlIHZhbHVlIGlzIGNvbnZlcnRlZCB0byBlbXNcbiAgQHJldHVybiBzdHJpcC11bml0KCR2YWx1ZSkgKiAxZW07XG59XG5cbi8vLyBDb252ZXJ0cyBhIHBpeGVsIHZhbHVlIHRvIG1hdGNoaW5nIHJlbSB2YWx1ZS4gKkFueSogdmFsdWUgcGFzc2VkLCByZWdhcmRsZXNzIG9mIHVuaXQsIGlzIGFzc3VtZWQgdG8gYmUgYSBwaXhlbCB2YWx1ZS4gQnkgZGVmYXVsdCwgdGhlIGJhc2UgcGl4ZWwgdmFsdWUgdXNlZCB0byBjYWxjdWxhdGUgdGhlIHJlbSB2YWx1ZSBpcyB0YWtlbiBmcm9tIHRoZSBgJHJlbS1iYXNlYCB2YXJpYWJsZS5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdmFsdWUgLSBQaXhlbCB2YWx1ZSB0byBjb252ZXJ0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFzZSBbJHJlbS1iYXNlXSAtIEJhc2UgZm9yIHBpeGVsIGNvbnZlcnNpb24uXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBBIG51bWJlciBpbiByZW1zLCBjYWxjdWxhdGVkIGJhc2VkIG9uIHRoZSBnaXZlbiB2YWx1ZSBhbmQgdGhlIGJhc2UgcGl4ZWwgdmFsdWUuIHJlbSB2YWx1ZXMgYXJlIHBhc3NlZCB0aHJvdWdoIGFzIGlzLlxuQGZ1bmN0aW9uIC16Zi10by1yZW0oJHZhbHVlLCAkYmFzZTogJHJlbS1iYXNlKSB7XG4gIC8vIENhbGN1bGF0ZSByZW0gaWYgdW5pdHMgZm9yICR2YWx1ZSBpcyBub3QgcmVtXG4gIEBpZiAodW5pdCgkdmFsdWUpICE9ICdyZW0nKSB7XG4gICAgJHZhbHVlOiBzdHJpcC11bml0KCR2YWx1ZSkgLyBzdHJpcC11bml0KCRiYXNlKSAqIDFyZW07XG4gIH1cbiAgLy8gVHVybiAwcmVtIGludG8gMFxuICBAaWYgKCR2YWx1ZSA9PSAwcmVtKSB7ICR2YWx1ZTogMDsgfVxuICBAcmV0dXJuICR2YWx1ZTtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGJyZWFrcG9pbnRzXG4vLy8vXG5cbi8vIHNjc3MtbGludDpkaXNhYmxlIFplcm9Vbml0XG5cbi8vLyBBIGxpc3Qgb2YgbmFtZWQgYnJlYWtwb2ludHMuIFlvdSBjYW4gdXNlIHRoZXNlIHdpdGggdGhlIGBicmVha3BvaW50KClgIG1peGluIHRvIHF1aWNrbHkgY3JlYXRlIG1lZGlhIHF1ZXJpZXMuXG4vLy8gQHR5cGUgTWFwXG4kYnJlYWtwb2ludHM6IChcbiAgc21hbGw6IDAsXG4gIG1lZGl1bTogNjQwcHgsXG4gIGxhcmdlOiAxMDI0cHgsXG4gIHhsYXJnZTogMTIwMHB4LFxuICB4eGxhcmdlOiAxNDQwcHgsXG4pICFkZWZhdWx0O1xuXG4vLy8gQWxsIG9mIHRoZSBuYW1lcyBpbiB0aGlzIGxpc3Qgd2lsbCBiZSBvdXRwdXQgYXMgY2xhc3NlcyBpbiB5b3VyIENTUywgbGlrZSBgLnNtYWxsLTEyYCwgYC5tZWRpdW0tNmAsIGFuZCBzbyBvbi4gRWFjaCB2YWx1ZSBpbiB0aGlzIGxpc3QgbXVzdCBhbHNvIGJlIGluIHRoZSBgJGJyZWFrcG9pbnRzYCBtYXAuXG4vLy8gQHR5cGUgTGlzdFxuJGJyZWFrcG9pbnQtY2xhc3NlczogKHNtYWxsIG1lZGl1bSBsYXJnZSkgIWRlZmF1bHQ7XG5cbi8vLyBHZW5lcmF0ZXMgYSBtZWRpYSBxdWVyeSBzdHJpbmcgbWF0Y2hpbmcgdGhlIGlucHV0IHZhbHVlLiBSZWZlciB0byB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIGBicmVha3BvaW50KClgIG1peGluIHRvIHNlZSB3aGF0IHRoZSBwb3NzaWJsZSBpbnB1dHMgYXJlLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJHZhbCBbc21hbGxdIC0gQnJlYWtwb2ludCBuYW1lLCBvciBweCwgcmVtLCBvciBlbSB2YWx1ZSB0byBwcm9jZXNzLlxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQoJHZhbDogc21hbGwpIHtcbiAgLy8gU2l6ZSBvciBrZXl3b3JkXG4gICRicDogbnRoKCR2YWwsIDEpO1xuICAvLyBWYWx1ZSBmb3IgbWF4LXdpZHRoIG1lZGlhIHF1ZXJpZXNcbiAgJGJwLW1heDogMDtcbiAgLy8gRGlyZWN0aW9uIG9mIG1lZGlhIHF1ZXJ5ICh1cCwgZG93biwgb3Igb25seSlcbiAgJGRpcjogaWYobGVuZ3RoKCR2YWwpID4gMSwgbnRoKCR2YWwsIDIpLCB1cCk7XG4gIC8vIEV2ZW50dWFsIG91dHB1dFxuICAkc3RyOiAnJztcbiAgLy8gSXMgaXQgYSBuYW1lZCBtZWRpYSBxdWVyeT9cbiAgJG5hbWVkOiBmYWxzZTtcblxuICAvLyBPcmllbnRhdGlvbiBtZWRpYSBxdWVyaWVzIGhhdmUgYSB1bmlxdWUgc3ludGF4XG4gIEBpZiAkYnAgPT0gJ2xhbmRzY2FwZScgb3IgJGJwID09ICdwb3J0cmFpdCcge1xuICAgIEByZXR1cm4gJyhvcmllbnRhdGlvbjogI3skYnB9KSc7XG4gIH1cbiAgQGVsc2UgaWYgJGJwID09ICdyZXRpbmEnIHtcbiAgICBAcmV0dXJuICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSwgKG1pbi1yZXNvbHV0aW9uOiAxOTJkcGkpJztcbiAgfVxuXG4gIC8vIFRyeSB0byBwdWxsIGEgbmFtZWQgYnJlYWtwb2ludCBvdXQgb2YgdGhlICRicmVha3BvaW50cyBtYXBcbiAgQGlmIHR5cGUtb2YoJGJwKSA9PSAnc3RyaW5nJyB7XG4gICAgQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJGJwKSB7XG4gICAgICBAaWYgJGRpciA9PSAnb25seScgb3IgJGRpciA9PSAnZG93bicge1xuICAgICAgICAkbmV4dC1icDogLXpmLW1hcC1uZXh0KCRicmVha3BvaW50cywgJGJwKTtcblxuICAgICAgICBAaWYgJG5leHQtYnAgPT0gbnVsbCB7XG4gICAgICAgICAgJGJwLW1heDogbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgJGJwLW1heDogJG5leHQtYnA7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJGJwOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJGJwKTtcbiAgICAgICRuYW1lZDogdHJ1ZTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJGJwOiAwO1xuICAgIH1cbiAgfVxuXG4gIC8vIENvbnZlcnQgYW55IHBpeGVsLCByZW0sIG9yIHVuaXRsZXNzIHZhbHVlIHRvIGVtXG4gICRicDogLXpmLWJwLXRvLWVtKCRicCk7XG4gIEBpZiAkYnAtbWF4IHtcbiAgICAkYnAtbWF4OiAtemYtYnAtdG8tZW0oJGJwLW1heCkgLSAoMS8xNik7XG4gIH1cblxuICAvLyBTa2lwIG1lZGlhIHF1ZXJ5IGNyZWF0aW9uIGlmIHRoZSBpbnB1dCBpcyBcIjAgdXBcIiBvciBcIjAgZG93blwiXG4gIEBpZiAkYnAgPiAwIG9yICRkaXIgPT0gJ29ubHknIHtcbiAgICAvLyBgb25seWAgcmFuZ2VzIHVzZSB0aGUgZm9ybWF0IGAobWluLXdpZHRoOiBuKSBhbmQgKG1heC13aWR0aDogbilgXG4gICAgQGlmICRkaXIgPT0gJ29ubHknIHtcbiAgICAgIEBpZiAkbmFtZWQgPT0gdHJ1ZSB7XG4gICAgICAgICRzdHI6ICRzdHIgKyAnKG1pbi13aWR0aDogI3skYnB9KSc7XG5cbiAgICAgICAgQGlmICRicC1tYXggIT0gbnVsbCB7XG4gICAgICAgICAgJHN0cjogJHN0ciArICcgYW5kIChtYXgtd2lkdGg6ICN7JGJwLW1heH0pJztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBAd2FybiAnT25seSBuYW1lZCBtZWRpYSBxdWVyaWVzIGNhbiBoYXZlIGFuIGBvbmx5YCByYW5nZS4nO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIGBkb3duYCByYW5nZXMgdXNlIHRoZSBmb3JtYXQgYChtYXgtd2lkdGg6IG4pYFxuICAgIEBlbHNlIGlmICRkaXIgPT0gJ2Rvd24nIHtcbiAgICAgICRtYXg6IDA7XG5cbiAgICAgIC8vIEZvciBuYW1lZCBicmVha3BvaW50cywgc3VidHJhY3QgdGhlIGJyZWFrcG9pbnQgdmFsdWUgYnkgb25lIFwicGl4ZWxcIiwgb3IgMS8xNmVtLlxuICAgICAgQGlmICRuYW1lZCB7XG4gICAgICAgICRtYXg6ICRicC1tYXg7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICRtYXg6ICRicDtcbiAgICAgIH1cblxuICAgICAgJHN0cjogJHN0ciArICcobWF4LXdpZHRoOiAjeyRtYXh9KSc7XG4gICAgfVxuXG4gICAgLy8gYHVwYCByYW5nZXMgdXNlIHRoZSBmb3JtYXQgYChtaW4td2lkdGg6IG4pYFxuICAgIEBlbHNlIGlmIHN0cmlwLXVuaXQoJGJwKSA+IDAge1xuICAgICAgJHN0cjogJHN0ciArICcobWluLXdpZHRoOiAjeyRicH0pJztcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRzdHI7XG59XG5cbi8vLyBXcmFwcyBhIG1lZGlhIHF1ZXJ5IGFyb3VuZCB0aGUgY29udGVudCB5b3UgcHV0IGluc2lkZSB0aGUgbWl4aW4uIFRoaXMgbWl4aW4gYWNjZXB0cyBhIG51bWJlciBvZiB2YWx1ZXM6XG4vLy8gIC0gSWYgYSBzdHJpbmcgaXMgcGFzc2VkLCB0aGUgbWl4aW4gd2lsbCBsb29rIGZvciBpdCBpbiB0aGUgYCRicmVha3BvaW50c2AgbWFwLCBhbmQgdXNlIGEgbWVkaWEgcXVlcnkgdGhlcmUuXG4vLy8gIC0gSWYgYSBwaXhlbCB2YWx1ZSBpcyBwYXNzZWQsIGl0IHdpbGwgYmUgY29udmVydGVkIHRvIGFuIGVtIHZhbHVlIHVzaW5nIGAkcmVtLWJhc2VgLlxuLy8vICAtIElmIGEgcmVtIHZhbHVlIGlzIHBhc3NlZCwgdGhlIHVuaXQgd2lsbCBiZSBjaGFuZ2VkIHRvIGVtLlxuLy8vICAtIElmIGFuIGVtIHZhbHVlIGlzIHBhc3NlZCwgdGhlIHZhbHVlIHdpbGwgYmUgdXNlZCBhcy1pcy5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICR2YWx1ZSAtIEJyZWFrcG9pbnQgbmFtZSwgb3IgcHgsIHJlbSwgb3IgZW0gdmFsdWUgdG8gcHJvY2Vzcy5cbi8vL1xuLy8vIEBvdXRwdXQgSWYgdGhlIGJyZWFrcG9pbnQgaXMgXCIwcHggYW5kIGxhcmdlclwiLCBvdXRwdXRzIHRoZSBjb250ZW50IGFzLWlzLiBPdGhlcndpc2UsIG91dHB1dHMgdGhlIGNvbnRlbnQgd3JhcHBlZCBpbiBhIG1lZGlhIHF1ZXJ5LlxuQG1peGluIGJyZWFrcG9pbnQoJHZhbHVlKSB7XG4gICRzdHI6IGJyZWFrcG9pbnQoJHZhbHVlKTtcblxuICAvLyBJZiAkc3RyIGlzIHN0aWxsIGFuIGVtcHR5IHN0cmluZywgbm8gbWVkaWEgcXVlcnkgaXMgbmVlZGVkXG4gIEBpZiAkc3RyID09ICcnIHtcbiAgICBAY29udGVudDtcbiAgfVxuXG4gIC8vIE90aGVyd2lzZSwgd3JhcCB0aGUgY29udGVudCBpbiBhIG1lZGlhIHF1ZXJ5XG4gIEBlbHNlIHtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAjeyRzdHJ9IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQ29udmVycyB0aGUgYnJlYWtwb2ludHMgbWFwIHRvIGEgVVJMLWVuY29kZWQgc3RyaW5nLCBsaWtlIHRoaXM6IGBrZXkxPXZhbHVlMSZrZXkyPXZhbHVlMmAuIFRoZSB2YWx1ZSBpcyB0aGVuIGRyb3BwZWQgaW50byB0aGUgQ1NTIGZvciBhIHNwZWNpYWwgYDxtZXRhPmAgdGFnLCB3aGljaCBpcyByZWFkIGJ5IHRoZSBGb3VuZGF0aW9uIEphdmFTY3JpcHQuIFRoaXMgaXMgaG93IHdlIHRyYW5zZmVyIHZhbHVlcyBmcm9tIFNhc3MgdG8gSmF2YVNjcmlwdCwgc28gdGhleSBjYW4gYmUgZGVmaW5lZCBpbiBvbmUgcGxhY2UuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge01hcH0gJG1hcCAtIE1hcCB0byBjb252ZXJ0LlxuLy8vXG4vLy8gQHJldHVybnMge1N0cmluZ30gQSBzdHJpbmcgY29udGFpbmluZyB0aGUgbWFwJ3MgY29udGVudHMuXG5AZnVuY3Rpb24gLXpmLWJwLXNlcmlhbGl6ZSgkbWFwKSB7XG4gICRzdHI6ICcnO1xuICBAZWFjaCAka2V5LCAkdmFsdWUgaW4gJG1hcCB7XG4gICAgJHN0cjogJHN0ciArICRrZXkgKyAnPScgKyAtemYtYnAtdG8tZW0oJHZhbHVlKSArICcmJztcbiAgfVxuICAkc3RyOiBzdHItc2xpY2UoJHN0ciwgMSwgLTIpO1xuXG4gIEByZXR1cm4gJHN0cjtcbn1cblxuLy8vIEZpbmQgdGhlIG5leHQga2V5IGluIGEgbWFwLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtNYXB9ICRtYXAgLSBNYXAgdG8gdHJhdmVyc2UuXG4vLy8gQHBhcmFtIHtNaXhlZH0gJGtleSAtIEtleSB0byB1c2UgYXMgYSBzdGFydGluZyBwb2ludC5cbi8vL1xuLy8vIEByZXR1cm5zIHtNaXhlZH0gVGhlIHZhbHVlIGZvciB0aGUga2V5IGFmdGVyIGAka2V5YCwgaWYgYCRrZXlgIHdhcyBmb3VuZC4gSWYgYCRrZXlgIHdhcyBub3QgZm91bmQsIG9yIGAka2V5YCB3YXMgdGhlIGxhc3QgdmFsdWUgaW4gdGhlIG1hcCwgcmV0dXJucyBgbnVsbGAuXG5AZnVuY3Rpb24gLXpmLW1hcC1uZXh0KCRtYXAsICRrZXkpIHtcbiAgLy8gU3RvcmUgdGhlIHZhbHVlcyBvZiB0aGUgbWFwIGFzIGEgbGlzdCwgc28gd2UgY2FuIGFjY2VzcyB0aGVtIHdpdGggbnRoXG4gICR2YWx1ZXM6IG1hcC12YWx1ZXMoJG1hcCk7XG5cbiAgLy8gR2hldHRvIGZvciBsb29wXG4gICRpOiAxO1xuICAkZm91bmQ6IGZhbHNlO1xuICBAZWFjaCAkdmFsIGluIG1hcC1rZXlzKCRtYXApIHtcbiAgICBAaWYgJGZvdW5kID09IGZhbHNlIHtcbiAgICAgIEBpZiAoJGtleSA9PSAkdmFsKSB7XG4gICAgICAgICRmb3VuZDogdHJ1ZTtcbiAgICAgIH1cbiAgICAgICRpOiAkaSArIDE7XG4gICAgfVxuICB9XG5cbiAgLy8gSWYgdGhlIGtleSBkb2Vzbid0IGV4aXN0LCBvciBpdCdzIHRoZSBsYXN0IGtleSBpbiB0aGUgbWFwLCByZXR1cm4gbnVsbFxuICBAaWYgJGkgPiBsZW5ndGgoJG1hcCkge1xuICAgIEByZXR1cm4gbnVsbDtcbiAgfVxuICAvLyBPdGhlcndpc2UsIHJldHVybiB0aGUgdmFsdWVcbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gbnRoKCR2YWx1ZXMsICRpKTtcbiAgfVxufVxuXG4vLyBMZWdhY3kgYnJlYWtwb2ludCB2YXJpYWJsZXNcbi8vIFRoZXNlIHdpbGwgYmUgcmVtb3ZlZCBpbiA2LjJcbiRzbWFsbC11cDogbnVsbDtcbiRzbWFsbC1vbmx5OiBudWxsO1xuJG1lZGl1bS11cDogbnVsbDtcbiRtZWRpdW0tb25seTogbnVsbDtcbiRsYXJnZS11cDogbnVsbDtcbiRsYXJnZS1vbmx5OiBudWxsO1xuJHhsYXJnZS11cDogbnVsbDtcbiR4bGFyZ2Utb25seTogbnVsbDtcbiR4eGxhcmdlLXVwOiBudWxsO1xuJHh4bGFyZ2Utb25seTogbnVsbDtcblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgc21hbGwpIHtcbiAgJHNtYWxsLXVwOiBzY3JlZW47XG4gICRzbWFsbC1vbmx5OiBzY3JlZW4gYW5kICN7YnJlYWtwb2ludChzbWFsbCBvbmx5KX07XG59XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIG1lZGl1bSkge1xuICAkbWVkaXVtLXVwOiBzY3JlZW4gYW5kICN7YnJlYWtwb2ludChtZWRpdW0pfTtcbiAgJG1lZGl1bS1vbmx5OiBzY3JlZW4gYW5kICN7YnJlYWtwb2ludChtZWRpdW0gb25seSl9O1xufVxuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCBsYXJnZSkge1xuICAkbGFyZ2UtdXA6IHNjcmVlbiBhbmQgI3ticmVha3BvaW50KGxhcmdlKX07XG4gICRsYXJnZS1vbmx5OiBzY3JlZW4gYW5kICN7YnJlYWtwb2ludChsYXJnZSBvbmx5KX07XG59XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIHhsYXJnZSkge1xuICAkeGxhcmdlLXVwOiBzY3JlZW4gYW5kICN7YnJlYWtwb2ludCh4bGFyZ2UpfTtcbiAgJHhsYXJnZS1vbmx5OiBzY3JlZW4gYW5kICN7YnJlYWtwb2ludCh4bGFyZ2Ugb25seSl9O1xufVxuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCB4eGxhcmdlKSB7XG4gICR4eGxhcmdlLXVwOiBzY3JlZW4gYW5kICN7YnJlYWtwb2ludCh4eGxhcmdlKX07XG4gICR4eGxhcmdlLW9ubHk6IHNjcmVlbiBhbmQgI3ticmVha3BvaW50KHh4bGFyZ2Ugb25seSl9O1xufVxuIiwiLyoqXG4gKiBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4gKiBWZXJzaW9uIDYuMC42XG4gKiBmb3VuZGF0aW9uLnp1cmIuY29tXG4gKiBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcbiAqL1xuXG4vLyBTYXNzIHV0aWxpdGllc1xuQGltcG9ydCAndXRpbC91dGlsJztcblxuLy8gR2xvYmFsIHZhcmlhYmxlcyBhbmQgc3R5bGVzXG5AaW1wb3J0ICdnbG9iYWwnO1xuXG4vLyBDb21wb25lbnRzXG5AaW1wb3J0ICdncmlkL2dyaWQnO1xuQGltcG9ydCAndHlwb2dyYXBoeS90eXBvZ3JhcGh5JztcbkBpbXBvcnQgJ2Zvcm1zL2Zvcm1zJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdmlzaWJpbGl0eSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2Zsb2F0JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnV0dG9uJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnV0dG9uLWdyb3VwJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYWNjb3JkaW9uLW1lbnUnO1xuQGltcG9ydCAnY29tcG9uZW50cy9hY2NvcmRpb24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9iYWRnZSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2JyZWFkY3J1bWJzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvY2FsbG91dCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2Nsb3NlLWJ1dHRvbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2RyaWxsZG93bic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2Ryb3Bkb3duLW1lbnUnO1xuQGltcG9ydCAnY29tcG9uZW50cy9kcm9wZG93bic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2ZsZXgtdmlkZW8nO1xuQGltcG9ydCAnY29tcG9uZW50cy9sYWJlbCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL21lZGlhLW9iamVjdCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL21lbnUnO1xuQGltcG9ydCAnY29tcG9uZW50cy9vZmYtY2FudmFzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvb3JiaXQnO1xuQGltcG9ydCAnY29tcG9uZW50cy9wYWdpbmF0aW9uJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcHJvZ3Jlc3MtYmFyJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcmV2ZWFsJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvc2xpZGVyJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvc3RpY2t5JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvc3dpdGNoJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdGFibGUnO1xuQGltcG9ydCAnY29tcG9uZW50cy90YWJzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdGl0bGUtYmFyJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdG9wLWJhcic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3RodW1ibmFpbCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3Rvb2x0aXAnO1xuXG5AbWl4aW4gZm91bmRhdGlvbi1ldmVyeXRoaW5nIHtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1nbG9iYWwtc3R5bGVzO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWdyaWQ7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdHlwb2dyYXBoeTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1idXR0b247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZm9ybXM7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdmlzaWJpbGl0eS1jbGFzc2VzO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZsb2F0LWNsYXNzZXM7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYWNjb3JkaW9uO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWFjY29yZGlvbi1tZW51O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWJhZGdlO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWJyZWFkY3J1bWJzO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWJ1dHRvbi1ncm91cDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1jYWxsb3V0O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWNsb3NlLWJ1dHRvbjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1kcmlsbGRvd24tbWVudTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1kcm9wZG93bjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1kcm9wZG93bi1tZW51O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZsZXgtdmlkZW87XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tbGFiZWw7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tbWVkaWEtb2JqZWN0O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLW1lbnU7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tb2ZmLWNhbnZhcztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1vcmJpdDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1wYWdpbmF0aW9uO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXByb2dyZXNzLWJhcjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1zbGlkZXI7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tc3RpY2t5O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXJldmVhbDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1zd2l0Y2g7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdGFibGU7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdGFicztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10aHVtYm5haWw7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdGl0bGUtYmFyO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRvb2x0aXA7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdG9wLWJhcjtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGdsb2JhbFxuLy8vL1xuXG4vLy8gR2xvYmFsIHdpZHRoIG9mIHlvdXIgc2l0ZS4gVXNlZCBieSB0aGUgZ3JpZCB0byBkZXRlcm1pbmUgcm93IHdpZHRoLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC13aWR0aDogcmVtLWNhbGMoMTIwMCkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgYXR0cmlidXRlIGFwcGxpZWQgdG8gYDxodG1sPmAgYW5kIGA8Ym9keT5gLiBXZSB1c2UgMTAwJSBieSBkZWZhdWx0IHNvIHRoZSB2YWx1ZSBpcyBpbmhlcml0ZWQgZnJvbSB0aGUgdXNlcidzIGJyb3dzZXIgc2V0dGluZ3MuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLWZvbnQtc2l6ZTogMTAwJSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbGluZSBoZWlnaHQgZm9yIGFsbCB0eXBlLiBgJGdsb2JhbC1saW5laGVpZ2h0YCBpcyAyNHB4IHdoaWxlIGAkZ2xvYmFsLWZvbnQtc2l6ZWAgaXMgMTZweFxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1saW5laGVpZ2h0OiAxLjUgIWRlZmF1bHQ7XG5cbi8vLyBQcmltYXJ5IGNvbG9yIGZvciBpbnRlcmFjdGl2ZSBjb21wb25lbnRzIGxpa2UgbGlua3MgYW5kIGJ1dHRvbnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRwcmltYXJ5LWNvbG9yOiAjMjE5OWU4ICFkZWZhdWx0O1xuXG4vLy8gU2Vjb25kYXJ5IGNvbG9yLCB1c2VkIHdpdGggY29tcG9uZW50cyB0aGF0IHN1cHBvcnQgdGhlIGAuc2Vjb25kYXJ5YCBjbGFzcy5cbi8vLyBAdHlwZSBDb2xvclxuJHNlY29uZGFyeS1jb2xvcjogIzc3NyAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHRvIGluZGljYXRlIGEgcG9zaXRpdmUgc3RhdHVzIG9yIGFjdGlvbiwgdXNlZCB3aXRoIHRoZSBgLnN1Y2Nlc3NgIGNsYXNzLlxuLy8vIEB0eXBlIENvbG9yXG4kc3VjY2Vzcy1jb2xvcjogIzNhZGI3NiAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHRvIGluZGljYXRlIGEgY2F1dGlvbiBzdGF0dXMgb3IgYWN0aW9uLCB1c2VkIHdpdGggdGhlIGAud2FybmluZ2AgY2xhc3MuXG4vLy8gQHR5cGUgQ29sb3JcbiR3YXJuaW5nLWNvbG9yOiAjZmZhZTAwICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdG8gaW5kaWNhdGUgYSBuZWdhdGl2ZSBzdGF0dXMgb3IgYWN0aW9uLCB1c2VkIHdpdGggdGhlIGAuYWxlcnRgIGNsYXNzLlxuLy8vIEB0eXBlIENvbG9yXG4kYWxlcnQtY29sb3I6ICNlYzU4NDAgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciBsaWdodCBncmF5IFVJIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kbGlnaHQtZ3JheTogI2U2ZTZlNiAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHVzZWQgZm9yIG1lZGl1bSBncmF5IFVJIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kbWVkaXVtLWdyYXk6ICNjYWNhY2EgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciBkYXJrIGdyYXkgVUkgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRkYXJrLWdyYXk6ICM4YThhOGEgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciBibGFjayB1aSBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJGJsYWNrOiAjMGEwYTBhICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdXNlZCBmb3Igd2hpdGUgdWkgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiR3aGl0ZTogI2ZlZmVmZSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJvZHkuXG4vLy8gQHR5cGUgQ29sb3JcbiRib2R5LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgdGhlIGJvZHkuXG4vLy8gQHR5cGUgQ29sb3JcbiRib2R5LWZvbnQtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc3RhY2sgb2YgdGhlIGJvZHkuXG4vLy8gQHR5cGUgTGlzdFxuJGJvZHktZm9udC1mYW1pbHk6ICdIZWx2ZXRpY2EgTmV1ZScsIEhlbHZldGljYSwgUm9ib3RvLCBBcmlhbCwgc2Fucy1zZXJpZiAhZGVmYXVsdDtcblxuLy8vIFNldCB0byBgdHJ1ZWAgdG8gZW5hYmxlIGFudGlhbGlhc2VkIHR5cGUsIHVzaW5nIHRoZSBgLXdlYmtpdC1mb250LXNtb290aGluZ2AgYW5kIGAtbW96LW9zeC1mb250LXNtb290aGluZ2AgQ1NTIHByb3BlcnRpZXMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGJvZHktYW50aWFsaWFzZWQ6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgdmFsdWUgdXNlZCBmb3IgbWFyZ2luIG9uIGNvbXBvbmVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLW1hcmdpbjogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCB2YWx1ZSB1c2VkIGZvciBwYWRkaW5nIG9uIGNvbXBvbmVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgZm9udCB3ZWlnaHQgdXNlZCBmb3Igbm9ybWFsIHR5cGUuXG4vLy8gQHR5cGUgS2V5d29yZCB8IE51bWJlclxuJGdsb2JhbC13ZWlnaHQtbm9ybWFsOiBub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgZm9udCB3ZWlnaHQgdXNlZCBmb3IgYm9sZCB0eXBlLlxuLy8vIEB0eXBlIEtleXdvcmQgfCBOdW1iZXJcbiRnbG9iYWwtd2VpZ2h0LWJvbGQ6IGJvbGQgIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgdmFsdWUgdXNlZCBmb3IgYWxsIGVsZW1lbnRzIHRoYXQgaGF2ZSBhIGJvcmRlciByYWRpdXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLXJhZGl1czogMCAhZGVmYXVsdDtcblxuLy8vIFNldHMgdGhlIHRleHQgZGlyZWN0aW9uIG9mIHRoZSBDU1MuIENhbiBiZSBlaXRoZXIgYGx0cmAgb3IgYHJ0bGAuXG4kZ2xvYmFsLXRleHQtZGlyZWN0aW9uOiBsdHIgIWRlZmF1bHQ7XG5cbi8vIEludGVybmFsIHZhcmlhYmxlcyB1c2VkIGZvciB0ZXh0IGRpcmVjdGlvblxuJGdsb2JhbC1sZWZ0OiBpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IHJ0bCwgcmlnaHQsIGxlZnQpO1xuJGdsb2JhbC1yaWdodDogaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBydGwsIGxlZnQsIHJpZ2h0KTtcblxuLy8gSW50ZXJuYWwgbWFwIHVzZWQgdG8gaXRlcmF0ZSB0aHJvdWdoIGNvbG9ycywgdG8gZ2VuZXJhdGUgQ1NTIGNsYXNzZXMgd2l0aCBsZXNzIGNvZGVcbiRmb3VuZGF0aW9uLWNvbG9yczogKFxuICBwcmltYXJ5OiAkcHJpbWFyeS1jb2xvcixcbiAgc2Vjb25kYXJ5OiAkc2Vjb25kYXJ5LWNvbG9yLFxuICBzdWNjZXNzOiAkc3VjY2Vzcy1jb2xvcixcbiAgYWxlcnQ6ICRhbGVydC1jb2xvcixcbiAgd2FybmluZzogJHdhcm5pbmctY29sb3IsXG4pO1xuXG5AbWl4aW4gZm91bmRhdGlvbi1nbG9iYWwtc3R5bGVzIHtcbiAgQGluY2x1ZGUgLXpmLW5vcm1hbGl6ZTtcblxuICAvLyBUaGVzZSBzdHlsZXMgYXJlIGFwcGxpZWQgdG8gYSA8bWV0YT4gdGFnLCB3aGljaCBpcyByZWFkIGJ5IHRoZSBGb3VuZGF0aW9uIEphdmFTY3JpcHRcbiAgLmZvdW5kYXRpb24tbXEge1xuICAgIGZvbnQtZmFtaWx5OiAnI3stemYtYnAtc2VyaWFsaXplKCRicmVha3BvaW50cyl9JztcbiAgfVxuXG4gIGh0bWwsXG4gIGJvZHkge1xuICAgIGZvbnQtc2l6ZTogJGdsb2JhbC1mb250LXNpemU7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgfVxuXG4gIC8vIFNldCBib3gtc2l6aW5nIGdsb2JhbGx5IHRvIGhhbmRsZSBwYWRkaW5nIGFuZCBib3JkZXIgd2lkdGhzXG4gICosXG4gICo6YmVmb3JlLFxuICAqOmFmdGVyIHtcbiAgICBib3gtc2l6aW5nOiBpbmhlcml0O1xuICB9XG5cbiAgLy8gRGVmYXVsdCBib2R5IHN0eWxlc1xuICBib2R5IHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHk7XG4gICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbDtcbiAgICBsaW5lLWhlaWdodDogJGdsb2JhbC1saW5laGVpZ2h0O1xuICAgIGNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuICAgIGJhY2tncm91bmQ6ICRib2R5LWJhY2tncm91bmQ7XG5cbiAgICBAaWYgKCRib2R5LWFudGlhbGlhc2VkKSB7XG4gICAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gICAgfVxuICB9XG5cbiAgaW1nIHtcbiAgICAvLyBHcmlkIGRlZmF1bHRzIHRvIGdldCBpbWFnZXMgYW5kIGVtYmVkcyB0byB3b3JrIHByb3Blcmx5XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogYXV0bztcbiAgICAtbXMtaW50ZXJwb2xhdGlvbi1tb2RlOiBiaWN1YmljO1xuXG4gICAgLy8gR2V0IHJpZCBvZiBnYXAgdW5kZXIgaW1hZ2VzIGJ5IG1ha2luZyB0aGVtIGRpc3BsYXk6IGlubGluZS1ibG9jazsgYnkgZGVmYXVsdFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG5cbiAgLy8gTWFrZSBzdXJlIHRleHRhcmVhIHRha2VzIG9uIGhlaWdodCBhdXRvbWF0aWNhbGx5XG4gIHRleHRhcmVhIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWluLWhlaWdodDogNTBweDtcbiAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgfVxuXG4gIC8vIE1ha2Ugc2VsZWN0IGVsZW1lbnRzIGFyZSAxMDAlIHdpZHRoIGJ5IGRlZmF1bHRcbiAgc2VsZWN0IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgfVxuXG4gIC8vIFN0eWxlcyBHb29nbGUgTWFwcyBhbmQgTWFwUXVlc3QgZW1iZWRzIHByb3Blcmx5XG4gIC8vIHNjc3MtbGludDpkaXNhYmxlIElkU2VsZWN0b3JcbiAgI21hcF9jYW52YXMsXG4gIC5tYXBfY2FudmFzLFxuICAubXFhLWRpc3BsYXkge1xuICAgIGltZyxcbiAgICBlbWJlZCxcbiAgICBvYmplY3Qge1xuICAgICAgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgLy8gUmVzZXQgPGJ1dHRvbj4gc3R5bGVzIGNyZWF0ZWQgYnkgbW9zdCBicm93c2Vyc1xuICBidXR0b24ge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gIH1cbn1cblxuLy8vIExvYWRzIG5vcm1hbGl6ZS5jc3MuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG5AbWl4aW4gLXpmLW5vcm1hbGl6ZSB7XG4gIC8qISBub3JtYWxpemUuY3NzIHYzLjAuMyB8IE1JVCBMaWNlbnNlIHwgZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3MgKi9cblxuICAvKipcbiAgICogMS4gU2V0IGRlZmF1bHQgZm9udCBmYW1pbHkgdG8gc2Fucy1zZXJpZi5cbiAgICogMi4gUHJldmVudCBpT1MgYW5kIElFIHRleHQgc2l6ZSBhZGp1c3QgYWZ0ZXIgZGV2aWNlIG9yaWVudGF0aW9uIGNoYW5nZSxcbiAgICogICAgd2l0aG91dCBkaXNhYmxpbmcgdXNlciB6b29tLlxuICAgKi9cblxuICBodG1sIHtcbiAgICBmb250LWZhbWlseTogc2Fucy1zZXJpZjsgLyogMSAqL1xuICAgIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXG4gICAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIGRlZmF1bHQgbWFyZ2luLlxuICAgKi9cblxuICBib2R5IHtcbiAgICBtYXJnaW46IDA7XG4gIH1cblxuICAvKiBIVE1MNSBkaXNwbGF5IGRlZmluaXRpb25zXG4gICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgLyoqXG4gICAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBhbnkgSFRNTDUgZWxlbWVudCBpbiBJRSA4LzkuXG4gICAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBgZGV0YWlsc2Agb3IgYHN1bW1hcnlgIGluIElFIDEwLzExXG4gICAqIGFuZCBGaXJlZm94LlxuICAgKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYG1haW5gIGluIElFIDExLlxuICAgKi9cblxuICBhcnRpY2xlLFxuICBhc2lkZSxcbiAgZGV0YWlscyxcbiAgZmlnY2FwdGlvbixcbiAgZmlndXJlLFxuICBmb290ZXIsXG4gIGhlYWRlcixcbiAgaGdyb3VwLFxuICBtYWluLFxuICBtZW51LFxuICBuYXYsXG4gIHNlY3Rpb24sXG4gIHN1bW1hcnkge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgLyoqXG4gICAqIDEuIENvcnJlY3QgYGlubGluZS1ibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBpbiBJRSA4LzkuXG4gICAqIDIuIE5vcm1hbGl6ZSB2ZXJ0aWNhbCBhbGlnbm1lbnQgb2YgYHByb2dyZXNzYCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbiAgICovXG5cbiAgYXVkaW8sXG4gIGNhbnZhcyxcbiAgcHJvZ3Jlc3MsXG4gIHZpZGVvIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IC8qIDEgKi9cbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IC8qIDIgKi9cbiAgfVxuXG4gIC8qKlxuICAgKiBQcmV2ZW50IG1vZGVybiBicm93c2VycyBmcm9tIGRpc3BsYXlpbmcgYGF1ZGlvYCB3aXRob3V0IGNvbnRyb2xzLlxuICAgKiBSZW1vdmUgZXhjZXNzIGhlaWdodCBpbiBpT1MgNSBkZXZpY2VzLlxuICAgKi9cblxuICBhdWRpbzpub3QoW2NvbnRyb2xzXSkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgaGVpZ2h0OiAwO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHJlc3MgYFtoaWRkZW5dYCBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS8xMC5cbiAgICogSGlkZSB0aGUgYHRlbXBsYXRlYCBlbGVtZW50IGluIElFIDgvOS8xMC8xMSwgU2FmYXJpLCBhbmQgRmlyZWZveCA8IDIyLlxuICAgKi9cblxuICBbaGlkZGVuXSxcbiAgdGVtcGxhdGUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAvKiBMaW5rc1xuICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gIC8qKlxuICAgKiBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBjb2xvciBmcm9tIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cbiAgICovXG5cbiAgYSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cblxuICAvKipcbiAgICogSW1wcm92ZSByZWFkYWJpbGl0eSBvZiBmb2N1c2VkIGVsZW1lbnRzIHdoZW4gdGhleSBhcmUgYWxzbyBpbiBhblxuICAgKiBhY3RpdmUvaG92ZXIgc3RhdGUuXG4gICAqL1xuXG4gIGE6YWN0aXZlLFxuICBhOmhvdmVyIHtcbiAgICBvdXRsaW5lOiAwO1xuICB9XG5cbiAgLyogVGV4dC1sZXZlbCBzZW1hbnRpY3NcbiAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuICAvKipcbiAgICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS8xMC8xMSwgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICAgKi9cblxuICBhYmJyW3RpdGxlXSB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRyZXNzIHN0eWxlIHNldCB0byBgYm9sZGVyYCBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gICAqL1xuXG4gIGIsXG4gIHN0cm9uZyB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIH1cblxuICAvKipcbiAgICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIFNhZmFyaSBhbmQgQ2hyb21lLlxuICAgKi9cblxuICBkZm4ge1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRyZXNzIHZhcmlhYmxlIGBoMWAgZm9udC1zaXplIGFuZCBtYXJnaW4gd2l0aGluIGBzZWN0aW9uYCBhbmQgYGFydGljbGVgXG4gICAqIGNvbnRleHRzIGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiAgICovXG5cbiAgaDEge1xuICAgIGZvbnQtc2l6ZTogMmVtO1xuICAgIG1hcmdpbjogMC42N2VtIDA7XG4gIH1cblxuICAvKipcbiAgICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS5cbiAgICovXG5cbiAgbWFyayB7XG4gICAgYmFja2dyb3VuZDogI2ZmMDtcbiAgICBjb2xvcjogIzAwMDtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRyZXNzIGluY29uc2lzdGVudCBhbmQgdmFyaWFibGUgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAgICovXG5cbiAgc21hbGwge1xuICAgIGZvbnQtc2l6ZTogODAlO1xuICB9XG5cbiAgLyoqXG4gICAqIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGFmZmVjdGluZyBgbGluZS1oZWlnaHRgIGluIGFsbCBicm93c2Vycy5cbiAgICovXG5cbiAgc3ViLFxuICBzdXAge1xuICAgIGZvbnQtc2l6ZTogNzUlO1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIH1cblxuICBzdXAge1xuICAgIHRvcDogLTAuNWVtO1xuICB9XG5cbiAgc3ViIHtcbiAgICBib3R0b206IC0wLjI1ZW07XG4gIH1cblxuICAvKiBFbWJlZGRlZCBjb250ZW50XG4gICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgLyoqXG4gICAqIFJlbW92ZSBib3JkZXIgd2hlbiBpbnNpZGUgYGFgIGVsZW1lbnQgaW4gSUUgOC85LzEwLlxuICAgKi9cblxuICBpbWcge1xuICAgIGJvcmRlcjogMDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb3JyZWN0IG92ZXJmbG93IG5vdCBoaWRkZW4gaW4gSUUgOS8xMC8xMS5cbiAgICovXG5cbiAgc3ZnOm5vdCg6cm9vdCkge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cblxuICAvKiBHcm91cGluZyBjb250ZW50XG4gICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgLyoqXG4gICAqIEFkZHJlc3MgbWFyZ2luIG5vdCBwcmVzZW50IGluIElFIDgvOSBhbmQgU2FmYXJpLlxuICAgKi9cblxuICBmaWd1cmUge1xuICAgIG1hcmdpbjogMWVtIDQwcHg7XG4gIH1cblxuICAvKipcbiAgICogQWRkcmVzcyBkaWZmZXJlbmNlcyBiZXR3ZWVuIEZpcmVmb3ggYW5kIG90aGVyIGJyb3dzZXJzLlxuICAgKi9cblxuICBociB7XG4gICAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gICAgaGVpZ2h0OiAwO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnRhaW4gb3ZlcmZsb3cgaW4gYWxsIGJyb3dzZXJzLlxuICAgKi9cblxuICBwcmUge1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHJlc3Mgb2RkIGBlbWAtdW5pdCBmb250IHNpemUgcmVuZGVyaW5nIGluIGFsbCBicm93c2Vycy5cbiAgICovXG5cbiAgY29kZSxcbiAga2JkLFxuICBwcmUsXG4gIHNhbXAge1xuICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcbiAgICBmb250LXNpemU6IDFlbTtcbiAgfVxuXG4gIC8qIEZvcm1zXG4gICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgLyoqXG4gICAqIEtub3duIGxpbWl0YXRpb246IGJ5IGRlZmF1bHQsIENocm9tZSBhbmQgU2FmYXJpIG9uIE9TIFggYWxsb3cgdmVyeSBsaW1pdGVkXG4gICAqIHN0eWxpbmcgb2YgYHNlbGVjdGAsIHVubGVzcyBhIGBib3JkZXJgIHByb3BlcnR5IGlzIHNldC5cbiAgICovXG5cbiAgLyoqXG4gICAqIDEuIENvcnJlY3QgY29sb3Igbm90IGJlaW5nIGluaGVyaXRlZC5cbiAgICogICAgS25vd24gaXNzdWU6IGFmZmVjdHMgY29sb3Igb2YgZGlzYWJsZWQgZWxlbWVudHMuXG4gICAqIDIuIENvcnJlY3QgZm9udCBwcm9wZXJ0aWVzIG5vdCBiZWluZyBpbmhlcml0ZWQuXG4gICAqIDMuIEFkZHJlc3MgbWFyZ2lucyBzZXQgZGlmZmVyZW50bHkgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICAgKi9cblxuICBidXR0b24sXG4gIGlucHV0LFxuICBvcHRncm91cCxcbiAgc2VsZWN0LFxuICB0ZXh0YXJlYSB7XG4gICAgY29sb3I6IGluaGVyaXQ7IC8qIDEgKi9cbiAgICBmb250OiBpbmhlcml0OyAvKiAyICovXG4gICAgbWFyZ2luOiAwOyAvKiAzICovXG4gIH1cblxuICAvKipcbiAgICogQWRkcmVzcyBgb3ZlcmZsb3dgIHNldCB0byBgaGlkZGVuYCBpbiBJRSA4LzkvMTAvMTEuXG4gICAqL1xuXG4gIGJ1dHRvbiB7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIH1cblxuICAvKipcbiAgICogQWRkcmVzcyBpbmNvbnNpc3RlbnQgYHRleHQtdHJhbnNmb3JtYCBpbmhlcml0YW5jZSBmb3IgYGJ1dHRvbmAgYW5kIGBzZWxlY3RgLlxuICAgKiBBbGwgb3RoZXIgZm9ybSBjb250cm9sIGVsZW1lbnRzIGRvIG5vdCBpbmhlcml0IGB0ZXh0LXRyYW5zZm9ybWAgdmFsdWVzLlxuICAgKiBDb3JyZWN0IGBidXR0b25gIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3gsIElFIDgvOS8xMC8xMSwgYW5kIE9wZXJhLlxuICAgKiBDb3JyZWN0IGBzZWxlY3RgIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3guXG4gICAqL1xuXG4gIGJ1dHRvbixcbiAgc2VsZWN0IHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgfVxuXG4gIC8qKlxuICAgKiAxLiBBdm9pZCB0aGUgV2ViS2l0IGJ1ZyBpbiBBbmRyb2lkIDQuMC4qIHdoZXJlICgyKSBkZXN0cm95cyBuYXRpdmUgYGF1ZGlvYFxuICAgKiAgICBhbmQgYHZpZGVvYCBjb250cm9scy5cbiAgICogMi4gQ29ycmVjdCBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIGBpbnB1dGAgdHlwZXMgaW4gaU9TLlxuICAgKiAzLiBJbXByb3ZlIHVzYWJpbGl0eSBhbmQgY29uc2lzdGVuY3kgb2YgY3Vyc29yIHN0eWxlIGJldHdlZW4gaW1hZ2UtdHlwZVxuICAgKiAgICBgaW5wdXRgIGFuZCBvdGhlcnMuXG4gICAqL1xuXG4gIGJ1dHRvbixcbiAgaHRtbCBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdLCAvKiAxICovXG4gIGlucHV0W3R5cGU9XCJyZXNldFwiXSxcbiAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDIgKi9cbiAgICBjdXJzb3I6IHBvaW50ZXI7IC8qIDMgKi9cbiAgfVxuXG4gIC8qKlxuICAgKiBSZS1zZXQgZGVmYXVsdCBjdXJzb3IgZm9yIGRpc2FibGVkIGVsZW1lbnRzLlxuICAgKi9cblxuICBidXR0b25bZGlzYWJsZWRdLFxuICBodG1sIGlucHV0W2Rpc2FibGVkXSB7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBpbm5lciBwYWRkaW5nIGFuZCBib3JkZXIgaW4gRmlyZWZveCA0Ky5cbiAgICovXG5cbiAgYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuICBpbnB1dDo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgYm9yZGVyOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cblxuICAvKipcbiAgICogQWRkcmVzcyBGaXJlZm94IDQrIHNldHRpbmcgYGxpbmUtaGVpZ2h0YCBvbiBgaW5wdXRgIHVzaW5nIGAhaW1wb3J0YW50YCBpblxuICAgKiB0aGUgVUEgc3R5bGVzaGVldC5cbiAgICovXG5cbiAgaW5wdXQge1xuICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gIH1cblxuICAvKipcbiAgICogSXQncyByZWNvbW1lbmRlZCB0aGF0IHlvdSBkb24ndCBhdHRlbXB0IHRvIHN0eWxlIHRoZXNlIGVsZW1lbnRzLlxuICAgKiBGaXJlZm94J3MgaW1wbGVtZW50YXRpb24gZG9lc24ndCByZXNwZWN0IGJveC1zaXppbmcsIHBhZGRpbmcsIG9yIHdpZHRoLlxuICAgKlxuICAgKiAxLiBBZGRyZXNzIGJveCBzaXppbmcgc2V0IHRvIGBjb250ZW50LWJveGAgaW4gSUUgOC85LzEwLlxuICAgKiAyLiBSZW1vdmUgZXhjZXNzIHBhZGRpbmcgaW4gSUUgOC85LzEwLlxuICAgKi9cblxuICBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sXG4gIGlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xuICAgIHBhZGRpbmc6IDA7IC8qIDIgKi9cbiAgfVxuXG4gIC8qKlxuICAgKiBGaXggdGhlIGN1cnNvciBzdHlsZSBmb3IgQ2hyb21lJ3MgaW5jcmVtZW50L2RlY3JlbWVudCBidXR0b25zLiBGb3IgY2VydGFpblxuICAgKiBgZm9udC1zaXplYCB2YWx1ZXMgb2YgdGhlIGBpbnB1dGAsIGl0IGNhdXNlcyB0aGUgY3Vyc29yIHN0eWxlIG9mIHRoZVxuICAgKiBkZWNyZW1lbnQgYnV0dG9uIHRvIGNoYW5nZSBmcm9tIGBkZWZhdWx0YCB0byBgdGV4dGAuXG4gICAqL1xuXG4gIGlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG4gIGlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICAgIGhlaWdodDogYXV0bztcbiAgfVxuXG4gIC8qKlxuICAgKiAxLiBBZGRyZXNzIGBhcHBlYXJhbmNlYCBzZXQgdG8gYHNlYXJjaGZpZWxkYCBpbiBTYWZhcmkgYW5kIENocm9tZS5cbiAgICogMi4gQWRkcmVzcyBgYm94LXNpemluZ2Agc2V0IHRvIGBib3JkZXItYm94YCBpbiBTYWZhcmkgYW5kIENocm9tZS5cbiAgICovXG5cbiAgaW5wdXRbdHlwZT1cInNlYXJjaFwiXSB7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IC8qIDEgKi9cbiAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLyogMiAqL1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBpbm5lciBwYWRkaW5nIGFuZCBzZWFyY2ggY2FuY2VsIGJ1dHRvbiBpbiBTYWZhcmkgYW5kIENocm9tZSBvbiBPUyBYLlxuICAgKiBTYWZhcmkgKGJ1dCBub3QgQ2hyb21lKSBjbGlwcyB0aGUgY2FuY2VsIGJ1dHRvbiB3aGVuIHRoZSBzZWFyY2ggaW5wdXQgaGFzXG4gICAqIHBhZGRpbmcgKGFuZCBgdGV4dGZpZWxkYCBhcHBlYXJhbmNlKS5cbiAgICovXG5cbiAgaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbiAgaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICB9XG5cbiAgLyoqXG4gICAqIERlZmluZSBjb25zaXN0ZW50IGJvcmRlciwgbWFyZ2luLCBhbmQgcGFkZGluZy5cbiAgICovXG5cbiAgZmllbGRzZXQge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjMGMwYzA7XG4gICAgbWFyZ2luOiAwIDJweDtcbiAgICBwYWRkaW5nOiAwLjM1ZW0gMC42MjVlbSAwLjc1ZW07XG4gIH1cblxuICAvKipcbiAgICogMS4gQ29ycmVjdCBgY29sb3JgIG5vdCBiZWluZyBpbmhlcml0ZWQgaW4gSUUgOC85LzEwLzExLlxuICAgKiAyLiBSZW1vdmUgcGFkZGluZyBzbyBwZW9wbGUgYXJlbid0IGNhdWdodCBvdXQgaWYgdGhleSB6ZXJvIG91dCBmaWVsZHNldHMuXG4gICAqL1xuXG4gIGxlZ2VuZCB7XG4gICAgYm9yZGVyOiAwOyAvKiAxICovXG4gICAgcGFkZGluZzogMDsgLyogMiAqL1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRSA4LzkvMTAvMTEuXG4gICAqL1xuXG4gIHRleHRhcmVhIHtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgfVxuXG4gIC8qKlxuICAgKiBEb24ndCBpbmhlcml0IHRoZSBgZm9udC13ZWlnaHRgIChhcHBsaWVkIGJ5IGEgcnVsZSBhYm92ZSkuXG4gICAqIE5PVEU6IHRoZSBkZWZhdWx0IGNhbm5vdCBzYWZlbHkgYmUgY2hhbmdlZCBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBPUyBYLlxuICAgKi9cblxuICBvcHRncm91cCB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIH1cblxuICAvKiBUYWJsZXNcbiAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuICAvKipcbiAgICogUmVtb3ZlIG1vc3Qgc3BhY2luZyBiZXR3ZWVuIHRhYmxlIGNlbGxzLlxuICAgKi9cblxuICB0YWJsZSB7XG4gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgICBib3JkZXItc3BhY2luZzogMDtcbiAgfVxuXG4gIHRkLFxuICB0aCB7XG4gICAgcGFkZGluZzogMDtcbiAgfVxufVxuIiwiLy8gIEZvdW5kYXRpb24gZm9yIFNpdGVzIFNldHRpbmdzXG4vLyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vXG4vLyAgVGFibGUgb2YgQ29udGVudHM6XG4vL1xuLy8gICAxLiBHbG9iYWxcbi8vICAgMi4gQnJlYWtwb2ludHNcbi8vICAgMy4gVGhlIEdyaWRcbi8vICAgNC4gQmFzZSBUeXBvZ3JhcGh5XG4vLyAgIDUuIFR5cG9ncmFwaHkgSGVscGVyc1xuLy8gICA2LiBBYmlkZVxuLy8gICA3LiBBY2NvcmRpb25cbi8vICAgOC4gQWNjb3JkaW9uIE1lbnVcbi8vICAgOS4gQmFkZ2Vcbi8vICAxMC4gQnJlYWRjcnVtYnNcbi8vICAxMS4gQnV0dG9uXG4vLyAgMTIuIEJ1dHRvbiBHcm91cFxuLy8gIDEzLiBDYWxsb3V0XG4vLyAgMTQuIENsb3NlIEJ1dHRvblxuLy8gIDE1LiBEcmlsbGRvd25cbi8vICAxNi4gRHJvcGRvd25cbi8vICAxNy4gRHJvcGRvd24gTWVudVxuLy8gIDE4LiBGbGV4IFZpZGVvXG4vLyAgMTkuIEZvcm1zXG4vLyAgMjAuIExhYmVsXG4vLyAgMjEuIE1lZGlhIE9iamVjdFxuLy8gIDIyLiBNZW51XG4vLyAgMjMuIE9mZi1jYW52YXNcbi8vICAyNC4gT3JiaXRcbi8vICAyNS4gUGFnaW5hdGlvblxuLy8gIDI2LiBQcm9ncmVzcyBCYXJcbi8vICAyNy4gUmV2ZWFsXG4vLyAgMjguIFNsaWRlclxuLy8gIDI5LiBTd2l0Y2hcbi8vICAzMC4gVGFibGVcbi8vICAzMS4gVGFic1xuLy8gIDMyLiBUaHVtYm5haWxcbi8vICAzMy4gVG9vbHRpcFxuLy8gIDM0LiBUb3AgQmFyXG5cbi8vIDEuIEdsb2JhbFxuLy8gLS0tLS0tLS0tXG4vLyRoZXJvLWZpbHRlci10eXBlOiAnbm9uZScgIWRlZmF1bHQ7XG4kc3VjY2Vzcy1jb2xvcjogIzNhZGI3NjtcbiR3YXJuaW5nLWNvbG9yOiAjZmZhZTAwO1xuJGFsZXJ0LWNvbG9yOiAjZWM1ODQwO1xuXG4kZ2xvYmFsLXdpZHRoOiByZW0tY2FsYygxMjAwKTtcbiRnbG9iYWwtZm9udC1zaXplOiAxMDAlO1xuJGdsb2JhbC1saW5laGVpZ2h0OiAxLjU7XG4kbGlnaHQtZ3JheTogI2U2ZTZlNjtcbiRtZWRpdW0tZ3JheTogI2NhY2FjYTtcbiRkYXJrLWdyYXk6ICM4YThhOGE7XG4kYmxhY2s6ICMwYTBhMGE7XG4kd2hpdGU6ICNmZWZlZmU7XG4kYm9keS1hbnRpYWxpYXNlZDogdHJ1ZTtcbiR0ZXh0LWRpcmVjdGlvbjogbHRyO1xuJGdsb2JhbC1tYXJnaW46IDFyZW07XG4kZ2xvYmFsLXBhZGRpbmc6IDFyZW07XG4vLyRnbG9iYWwtcmFkaXVzOiAwO1xuJGdsb2JhbC1uYW1lc3BhY2U6IGZhbHNlO1xuJGdsb2JhbC10ZXh0LWRpcmVjdGlvbjogbHRyO1xuJHJlbS1iYXNlOiAxNnB4O1xuXG4vLyAyLiBCcmVha3BvaW50c1xuLy8gLS0tLS0tLS0tLS0tLS1cblxuJGJyZWFrcG9pbnRzOiAoXG4gICAgc21hbGw6IDAsXG4gICAgbWVkaXVtOiA2NDBweCxcbiAgICBsYXJnZTogMTAyNHB4LFxuICAgIHhsYXJnZTogMTIwMHB4LFxuICAgIHh4bGFyZ2U6IDE0NDBweCxcbik7XG4kYnJlYWtwb2ludC1jbGFzc2VzOiAoc21hbGwgbWVkaXVtIGxhcmdlKTtcblxuLy8gMy4gVGhlIEdyaWRcbi8vIC0tLS0tLS0tLS0tXG5cbiRncmlkLXJvdy13aWR0aDogJGdsb2JhbC13aWR0aDtcbiRncmlkLWNvbHVtbi1jb3VudDogMTI7XG4kZ3JpZC1jb2x1bW4tZ3V0dGVyOiAzMHB4O1xuJGJsb2NrLWdyaWQtbWF4OiA2O1xuXG4vLyA0LiBCYXNlIFR5cG9ncmFwaHlcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kaGVhZGVyLWZvbnQtc3R5bGU6IG5vcm1hbDtcbiRmb250LWZhbWlseS1tb25vc3BhY2U6IENvbnNvbGFzLCBcIkxpYmVyYXRpb24gTW9ub1wiLCBDb3VyaWVyLCBtb25vc3BhY2U7XG4kaGVhZGVyLXNpemVzOiAoXG4gICAgc21hbGw6IChcbiAgICAgICAgJ2gxJzogMjQsXG4gICAgICAgICdoMic6IDIwLFxuICAgICAgICAnaDMnOiAxOSxcbiAgICAgICAgJ2g0JzogMTgsXG4gICAgICAgICdoNSc6IDE3LFxuICAgICAgICAnaDYnOiAxNixcbiAgICApLFxuICAgIG1lZGl1bTogKFxuICAgICAgICAnaDEnOiA0OCxcbiAgICAgICAgJ2gyJzogNDAsXG4gICAgICAgICdoMyc6IDMxLFxuICAgICAgICAnaDQnOiAyNSxcbiAgICAgICAgJ2g1JzogMjAsXG4gICAgICAgICdoNic6IDE2LFxuICAgICksXG4pO1xuJGhlYWRlci1jb2xvcjogaW5oZXJpdDtcbiRoZWFkZXItbGluZWhlaWdodDogMS40O1xuJGhlYWRlci1tYXJnaW4tYm90dG9tOiAwLjVyZW07XG4kaGVhZGVyLXRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7XG4kc21hbGwtZm9udC1zaXplOiA4MCU7XG4kaGVhZGVyLXNtYWxsLWZvbnQtY29sb3I6ICRtZWRpdW0tZ3JheTtcbiRwYXJhZ3JhcGgtbGluZWhlaWdodDogMS42O1xuJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tOiAxcmVtO1xuJHBhcmFncmFwaC10ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5O1xuJGNvZGUtY29sb3I6ICRibGFjaztcbiRjb2RlLWZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktbW9ub3NwYWNlO1xuJGNvZGUtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbDtcbiRjb2RlLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5O1xuJGNvZGUtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xuJGNvZGUtcGFkZGluZzogcmVtLWNhbGMoMiA1IDEpO1xuJGFuY2hvci1jb2xvcjogJHRvcGJhci1saW5rLWNvbG9yO1xuJGFuY2hvci1jb2xvci1ob3Zlcjogc2NhbGUtY29sb3IoJGFuY2hvci1jb2xvciwgJGxpZ2h0bmVzczogLTE0JSk7XG4kYW5jaG9yLXRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiRhbmNob3ItdGV4dC1kZWNvcmF0aW9uLWhvdmVyOiBub25lO1xuJGhyLXdpZHRoOiAkZ2xvYmFsLXdpZHRoO1xuJGhyLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcbiRoci1tYXJnaW46IHJlbS1jYWxjKDIwKSBhdXRvO1xuJGxpc3QtbGluZWhlaWdodDogJHBhcmFncmFwaC1saW5laGVpZ2h0O1xuJGxpc3QtbWFyZ2luLWJvdHRvbTogJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tO1xuJGxpc3Qtc3R5bGUtdHlwZTogZGlzYztcbiRsaXN0LXN0eWxlLXBvc2l0aW9uOiBvdXRzaWRlO1xuJGxpc3Qtc2lkZS1tYXJnaW46IDEuMjVyZW07XG4kbGlzdC1uZXN0ZWQtc2lkZS1tYXJnaW46IDEuMjVyZW07XG4kZGVmbmxpc3QtbWFyZ2luLWJvdHRvbTogMXJlbTtcbiRkZWZubGlzdC10ZXJtLXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcbiRkZWZubGlzdC10ZXJtLW1hcmdpbi1ib3R0b206IDAuM3JlbTtcbiRibG9ja3F1b3RlLWNvbG9yOiAkZGFyay1ncmF5O1xuJGJsb2NrcXVvdGUtcGFkZGluZzogcmVtLWNhbGMoOSAyMCAwIDE5KTtcbiRibG9ja3F1b3RlLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcbiRjaXRlLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTMpO1xuJGNpdGUtY29sb3I6ICRkYXJrLWdyYXk7XG4ka2V5c3Ryb2tlLWZvbnQ6ICRmb250LWZhbWlseS1tb25vc3BhY2U7XG4ka2V5c3Ryb2tlLWNvbG9yOiAkYmxhY2s7XG4ka2V5c3Ryb2tlLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5O1xuJGtleXN0cm9rZS1wYWRkaW5nOiByZW0tY2FsYygyIDQgMCk7XG4ka2V5c3Ryb2tlLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kYWJici11bmRlcmxpbmU6IDFweCBkb3R0ZWQgJGJsYWNrO1xuXG4vLyA1LiBUeXBvZ3JhcGh5IEhlbHBlcnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kbGVhZC1mb250LXNpemU6ICRnbG9iYWwtZm9udC1zaXplICogMS4yNTtcbiRsZWFkLWxpbmVoZWlnaHQ6IDEuNjtcbiRzdWJoZWFkZXItbGluZWhlaWdodDogMS40O1xuJHN1YmhlYWRlci1jb2xvcjogJGRhcmstZ3JheTtcbiRzdWJoZWFkZXItZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbDtcbiRzdWJoZWFkZXItbWFyZ2luLXRvcDogMC4ycmVtO1xuJHN1YmhlYWRlci1tYXJnaW4tYm90dG9tOiAwLjVyZW07XG4kc3RhdC1mb250LXNpemU6IDIuNXJlbTtcblxuLy8gNi4gQWJpZGVcbi8vIC0tLS0tLS0tXG5cbiRhYmlkZS1pbnB1dHM6IHRydWU7XG4kYWJpZGUtbGFiZWxzOiB0cnVlO1xuJGlucHV0LWJhY2tncm91bmQtaW52YWxpZDogJGFsZXJ0LWNvbG9yO1xuJGZvcm0tbGFiZWwtY29sb3ItaW52YWxpZDogJGFsZXJ0LWNvbG9yO1xuJGlucHV0LWVycm9yLWNvbG9yOiAkYWxlcnQtY29sb3I7XG4kaW5wdXQtZXJyb3ItZm9udC1zaXplOiByZW0tY2FsYygxMik7XG4kaW5wdXQtZXJyb3ItZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG5cbi8vIDcuIEFjY29yZGlvblxuLy8gLS0tLS0tLS0tLS0tXG5cbiRhY2NvcmRpb24tYmFja2dyb3VuZDogJHdoaXRlO1xuJGFjY29yZGlvbi1wbHVzbWludXM6IHRydWU7XG4kYWNjb3JkaW9uLWl0ZW0tY29sb3I6IGZvcmVncm91bmQoJGFjY29yZGlvbi1iYWNrZ3JvdW5kLCAkcHJpbWFyeS1jb2xvcik7XG4kYWNjb3JkaW9uLWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjogJGxpZ2h0LWdyYXk7XG4kYWNjb3JkaW9uLWl0ZW0tcGFkZGluZzogMS4yNXJlbSAxcmVtO1xuJGFjY29yZGlvbi1jb250ZW50LWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRhY2NvcmRpb24tY29udGVudC1ib3JkZXI6IDFweCBzb2xpZCAkbGlnaHQtZ3JheTtcbiRhY2NvcmRpb24tY29udGVudC1jb2xvcjogZm9yZWdyb3VuZCgkYWNjb3JkaW9uLWJhY2tncm91bmQsICRwcmltYXJ5LWNvbG9yKTtcbiRhY2NvcmRpb24tY29udGVudC1wYWRkaW5nOiAxcmVtO1xuXG4vLyA4LiBBY2NvcmRpb24gTWVudVxuLy8gLS0tLS0tLS0tLS0tLS0tLS1cblxuJGFjY29yZGlvbm1lbnUtYXJyb3dzOiB0cnVlO1xuXG4vLyA5LiBCYWRnZVxuLy8gLS0tLS0tLS1cblxuJGJhZGdlLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuJGJhZGdlLWNvbG9yOiBmb3JlZ3JvdW5kKCRiYWRnZS1iYWNrZ3JvdW5kKTtcbiRiYWRnZS1wYWRkaW5nOiAwLjNlbTtcbiRiYWRnZS1taW53aWR0aDogMi4xZW07XG4kYmFkZ2UtZm9udC1zaXplOiAwLjZyZW07XG5cbi8vIDEwLiBCcmVhZGNydW1ic1xuLy8gLS0tLS0tLS0tLS0tLS0tXG5cbiRicmVhZGNydW1icy1tYXJnaW46IDAgMCAwIDA7XG4kYnJlYWRjcnVtYnMtaXRlbS1mb250LXNpemU6IHJlbS1jYWxjKDExKTtcbiRicmVhZGNydW1icy1pdGVtLWNvbG9yLWRpc2FibGVkOiAkbWVkaXVtLWdyYXk7XG4kYnJlYWRjcnVtYnMtaXRlbS1tYXJnaW46IDAuNzVyZW07XG4kYnJlYWRjcnVtYnMtaXRlbS11cHBlcmNhc2U6IHRydWU7XG4kYnJlYWRjcnVtYnMtaXRlbS1zbGFzaDogdHJ1ZTtcblxuLy8gMTEuIEJ1dHRvblxuLy8gLS0tLS0tLS0tLVxuXG4kYnV0dG9uLXBhZGRpbmc6IDAuODVlbSAxZW07XG4kYnV0dG9uLW1hcmdpbjogMCAkZ2xvYmFsLW1hcmdpbiAkZ2xvYmFsLW1hcmdpbiAwO1xuJGJ1dHRvbi1maWxsOiBzb2xpZDtcbiRidXR0b24tYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG4kYnV0dG9uLWJhY2tncm91bmQtaG92ZXI6IHNjYWxlLWNvbG9yKCRidXR0b24tYmFja2dyb3VuZCwgJGxpZ2h0bmVzczogLTE1JSk7XG4kYnV0dG9uLWNvbG9yOiAjZmZmO1xuJGJ1dHRvbi1jb2xvci1hbHQ6ICMwMDA7XG4kYnV0dG9uLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kYnV0dG9uLXNpemVzOiAoXG4gICAgdGlueTogMC42cmVtLFxuICAgIHNtYWxsOiAwLjc1cmVtLFxuICAgIGRlZmF1bHQ6IDAuOXJlbSxcbiAgICBsYXJnZTogMS4yNXJlbSxcbik7XG4kYnV0dG9uLW9wYWNpdHktZGlzYWJsZWQ6IDAuMjU7XG5cbi8vIDEyLiBCdXR0b24gR3JvdXBcbi8vIC0tLS0tLS0tLS0tLS0tLS1cblxuJGJ1dHRvbmdyb3VwLW1hcmdpbjogMXJlbTtcbiRidXR0b25ncm91cC1zcGFjaW5nOiAxcHg7XG4kYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3I6ICcuYnV0dG9uJztcbiRidXR0b25ncm91cC1leHBhbmQtbWF4OiA2O1xuXG4vLyAxMy4gQ2FsbG91dFxuLy8gLS0tLS0tLS0tLS1cblxuJGNhbGxvdXQtYmFja2dyb3VuZDogJHdoaXRlO1xuJGNhbGxvdXQtYmFja2dyb3VuZC1mYWRlOiA4NSU7XG4kY2FsbG91dC1ib3JkZXI6IDFweCBzb2xpZCByZ2JhKCRibGFjaywgMC4yNSk7XG4kY2FsbG91dC1tYXJnaW46IDAgMCAxcmVtIDA7XG4kY2FsbG91dC1wYWRkaW5nOiAxcmVtO1xuJGNhbGxvdXQtZm9udC1jb2xvcjogJGJvZHktZm9udC1jb2xvcjtcbiRjYWxsb3V0LWZvbnQtY29sb3ItYWx0OiAkYm9keS1iYWNrZ3JvdW5kO1xuJGNhbGxvdXQtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRjYWxsb3V0LWxpbmstdGludDogMzAlO1xuXG4vLyAxNC4gQ2xvc2UgQnV0dG9uXG4vLyAtLS0tLS0tLS0tLS0tLS0tXG5cbiRjbG9zZWJ1dHRvbi1wb3NpdGlvbjogcmlnaHQgdG9wO1xuJGNsb3NlYnV0dG9uLW9mZnNldC1ob3Jpem9udGFsOiAxcmVtO1xuJGNsb3NlYnV0dG9uLW9mZnNldC12ZXJ0aWNhbDogMC41cmVtO1xuJGNsb3NlYnV0dG9uLXNpemU6IDJlbTtcbiRjbG9zZWJ1dHRvbi1saW5laGVpZ2h0OiAxO1xuJGNsb3NlYnV0dG9uLWNvbG9yOiAkZGFyay1ncmF5O1xuJGNsb3NlYnV0dG9uLWNvbG9yLWhvdmVyOiAkYmxhY2s7XG5cbi8vIDE1LiBEcmlsbGRvd25cbi8vIC0tLS0tLS0tLS0tLS1cblxuJGRyaWxsZG93bi10cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNXMgbGluZWFyO1xuJGRyaWxsZG93bi1hcnJvd3M6IHRydWU7XG5cbi8vIDE2LiBEcm9wZG93blxuLy8gLS0tLS0tLS0tLS0tXG5cbiRkcm9wZG93bi1wYWRkaW5nOiAxcmVtO1xuJGRyb3Bkb3duLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcbiRkcm9wZG93bi1mb250LXNpemU6IDE2cmVtO1xuJGRyb3Bkb3duLXdpZHRoOiAzMDBweDtcbiRkcm9wZG93bi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJGRyb3Bkb3duLXNpemVzOiAoXG4gICAgdGlueTogMTAwcHgsXG4gICAgc21hbGw6IDIwMHB4LFxuICAgIGxhcmdlOiA0MDBweCxcbik7XG5cbi8vIDE3LiBEcm9wZG93biBNZW51XG4vLyAtLS0tLS0tLS0tLS0tLS0tLVxuXG4kZHJvcGRvd25tZW51LWFycm93czogdHJ1ZTtcbiRkcm9wZG93bm1lbnUtbWluLXdpZHRoOiAyMDBweDtcbiRkcm9wZG93bm1lbnUtYmFja2dyb3VuZDogJHdoaXRlO1xuJGRyb3Bkb3duLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcblxuLy8gMTguIEZsZXggVmlkZW9cbi8vIC0tLS0tLS0tLS0tLS0tXG5cbiRmbGV4dmlkZW8tcGFkZGluZy10b3A6IHJlbS1jYWxjKDI1KTtcbiRmbGV4dmlkZW8tbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMTYpO1xuJGZsZXh2aWRlby1yYXRpbzogNCBieSAzO1xuJGZsZXh2aWRlby1yYXRpby13aWRlc2NyZWVuOiAxNiBieSA5O1xuXG4vLyAxOS4gRm9ybXNcbi8vIC0tLS0tLS0tLVxuXG4kZmllbGRzZXQtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xuJGZpZWxkc2V0LXBhZGRpbmc6IHJlbS1jYWxjKDIwKTtcbiRmaWVsZHNldC1tYXJnaW46IHJlbS1jYWxjKDE4IDApO1xuJGxlZ2VuZC1wYWRkaW5nOiByZW0tY2FsYygwIDMpO1xuJGZvcm0tc3BhY2luZzogcmVtLWNhbGMoMTYpO1xuJGhlbHB0ZXh0LWNvbG9yOiAjMzMzO1xuJGhlbHB0ZXh0LWZvbnQtc2l6ZTogcmVtLWNhbGMoMTMpO1xuJGhlbHB0ZXh0LWZvbnQtc3R5bGU6IGl0YWxpYztcbiRpbnB1dC1wcmVmaXgtY29sb3I6ICRibGFjaztcbiRpbnB1dC1wcmVmaXgtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXk7XG4kaW5wdXQtcHJlZml4LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcbiRpbnB1dC1wcmVmaXgtcGFkZGluZzogMXJlbTtcbiRmb3JtLWxhYmVsLWNvbG9yOiBzbWFydC1zY2FsZSgkYm9keS1iYWNrZ3JvdW5kLCA1MCUpO1xuJGZvcm0tbGFiZWwtZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4kZm9ybS1sYWJlbC1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsO1xuJGZvcm0tbGFiZWwtbGluZS1oZWlnaHQ6IDEuODtcbiRzZWxlY3QtYmFja2dyb3VuZDogI2ZhZmFmYTtcbiRzZWxlY3QtdHJpYW5nbGUtY29sb3I6ICMzMzM7XG4kc2VsZWN0LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG47XG4kaW5wdXQtYmFja2dyb3VuZC1kaXNhYmxlZDogJGxpZ2h0LWdyYXk7XG4kaW5wdXQtY3Vyc29yLWRpc2FibGVkOiBkZWZhdWx0O1xuJGlucHV0LXRyYW5zaXRpb246IGJveC1zaGFkb3cgMC41cywgYm9yZGVyLWNvbG9yIDAuMjVzIGVhc2UtaW4tb3V0O1xuJGlucHV0LW51bWJlci1zcGlubmVyczogdHJ1ZTtcbiRpbnB1dC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXG4vLyAyMC4gTGFiZWxcbi8vIC0tLS0tLS0tLVxuXG4kbGFiZWwtYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG4kbGFiZWwtY29sb3I6IGZvcmVncm91bmQoJGxhYmVsLWJhY2tncm91bmQpO1xuJGxhYmVsLWZvbnQtc2l6ZTogMC44cmVtO1xuJGxhYmVsLXBhZGRpbmc6IDAuMzMzMzNyZW0gMC41cmVtO1xuJGxhYmVsLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG5cbi8vIDIxLiBNZWRpYSBPYmplY3Rcbi8vIC0tLS0tLS0tLS0tLS0tLS1cblxuJG1lZGlhb2JqZWN0LW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xuJG1lZGlhb2JqZWN0LXNlY3Rpb24tcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nO1xuJG1lZGlhb2JqZWN0LWltYWdlLXdpZHRoLXN0YWNrZWQ6IDEwMCU7XG5cbi8vIDIyLiBNZW51XG4vLyAtLS0tLS0tLVxuXG4kbWVudS1tYXJnaW46IDA7XG4kbWVudS1tYXJnaW4tbmVzdGVkOiAxcmVtO1xuJG1lbnUtaXRlbS1wYWRkaW5nOiAwLjdyZW0gMXJlbTtcbiRtZW51LWljb24tc3BhY2luZzogMC4yNXJlbTtcbiRtZW51LWV4cGFuZC1tYXg6IDY7XG5cbi8vIDIzLiBPZmYtY2FudmFzXG4vLyAtLS0tLS0tLS0tLS0tLVxuXG4kb2ZmY2FudmFzLXNpemU6IDI1MHB4O1xuJG9mZmNhbnZhcy1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheTtcbiRvZmZjYW52YXMtemluZGV4OiAtMTtcbiRvZmZjYW52YXMtdHJhbnNpdGlvbi1sZW5ndGg6IDAuNXM7XG4kb2ZmY2FudmFzLXRyYW5zaXRpb24tdGltaW5nOiBlYXNlO1xuJG9mZmNhbnZhcy1leGl0LWJhY2tncm91bmQ6IHJnYmEoJHdoaXRlLCAwLjI1KTtcbiRtYWluY29udGVudC1jbGFzczogJ29mZi1jYW52YXMtY29udGVudCc7XG4kbWFpbmNvbnRlbnQtc2hhZG93OiAwIDAgMTBweCByZ2JhKCRibGFjaywgMC41KTtcblxuLy8gMjQuIE9yYml0XG4vLyAtLS0tLS0tLS1cblxuJG9yYml0LWJ1bGxldC1iYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXk7XG4kb3JiaXQtYnVsbGV0LWJhY2tncm91bmQtYWN0aXZlOiAkZGFyay1ncmF5O1xuJG9yYml0LWJ1bGxldC1kaWFtZXRlcjogMS4ycmVtO1xuJG9yYml0LWJ1bGxldC1tYXJnaW46IDAuMXJlbTtcbiRvcmJpdC1idWxsZXQtbWFyZ2luLXRvcDogMC44cmVtO1xuJG9yYml0LWJ1bGxldC1tYXJnaW4tYm90dG9tOiAwLjhyZW07XG4kb3JiaXQtY2FwdGlvbi1iYWNrZ3JvdW5kOiByZ2JhKCRibGFjaywgMC41KTtcbiRvcmJpdC1jYXB0aW9uLXBhZGRpbmc6IDFyZW07XG4kb3JiaXQtY29udHJvbC1iYWNrZ3JvdW5kLWhvdmVyOiByZ2JhKCRibGFjaywgMC41KTtcbiRvcmJpdC1jb250cm9sLXBhZGRpbmc6IDFyZW07XG4kb3JiaXQtY29udHJvbC16aW5kZXg6IDEwO1xuXG4vLyAyNS4gUGFnaW5hdGlvblxuLy8gLS0tLS0tLS0tLS0tLS1cblxuJHBhZ2luYXRpb24tZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4kcGFnaW5hdGlvbi1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcbiRwYWdpbmF0aW9uLWl0ZW0tY29sb3I6ICRibGFjaztcbiRwYWdpbmF0aW9uLWl0ZW0tcGFkZGluZzogcmVtLWNhbGMoMyAxMCk7XG4kcGFnaW5hdGlvbi1pdGVtLXNwYWNpbmc6IHJlbS1jYWxjKDEpO1xuJHBhZ2luYXRpb24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRwYWdpbmF0aW9uLWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjogJGxpZ2h0LWdyYXk7XG4kcGFnaW5hdGlvbi1pdGVtLWJhY2tncm91bmQtY3VycmVudDogJHByaW1hcnktY29sb3I7XG4kcGFnaW5hdGlvbi1pdGVtLWNvbG9yLWN1cnJlbnQ6IGZvcmVncm91bmQoJHBhZ2luYXRpb24taXRlbS1iYWNrZ3JvdW5kLWN1cnJlbnQpO1xuJHBhZ2luYXRpb24taXRlbS1jb2xvci1kaXNhYmxlZDogJG1lZGl1bS1ncmF5O1xuJHBhZ2luYXRpb24tZWxsaXBzaXMtY29sb3I6ICRibGFjaztcbiRwYWdpbmF0aW9uLW1vYmlsZS1pdGVtczogZmFsc2U7XG4kcGFnaW5hdGlvbi1hcnJvd3M6IHRydWU7XG5cbi8vIDI2LiBQcm9ncmVzcyBCYXJcbi8vIC0tLS0tLS0tLS0tLS0tLS1cblxuJHByb2dyZXNzLWhlaWdodDogMXJlbTtcbiRwcm9ncmVzcy1iYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXk7XG4kcHJvZ3Jlc3MtbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW47XG4kcHJvZ3Jlc3MtbWV0ZXItYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG4kcHJvZ3Jlc3MtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcblxuLy8gMjcuIFJldmVhbFxuLy8gLS0tLS0tLS0tLVxuXG4kcmV2ZWFsLWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRyZXZlYWwtd2lkdGg6IDYwMHB4O1xuJHJldmVhbC1tYXgtd2lkdGg6ICRnbG9iYWwtd2lkdGg7XG4kcmV2ZWFsLW9mZnNldDogcmVtLWNhbGMoMTAwKTtcbiRyZXZlYWwtcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nO1xuJHJldmVhbC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kcmV2ZWFsLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kcmV2ZWFsLXppbmRleDogMTAwNTtcbiRyZXZlYWwtb3ZlcmxheS1iYWNrZ3JvdW5kOiByZ2JhKCRibGFjaywgMC40NSk7XG5cbi8vIDI4LiBTbGlkZXJcbi8vIC0tLS0tLS0tLS1cblxuJHNsaWRlci1oZWlnaHQ6IDAuNXJlbTtcbiRzbGlkZXItd2lkdGgtdmVydGljYWw6ICRzbGlkZXItaGVpZ2h0O1xuJHNsaWRlci1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheTtcbiRzbGlkZXItZmlsbC1iYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXk7XG4kc2xpZGVyLWhhbmRsZS1oZWlnaHQ6IDEuNHJlbTtcbiRzbGlkZXItaGFuZGxlLXdpZHRoOiAxLjRyZW07XG4kc2xpZGVyLWhhbmRsZS1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcbiRzbGlkZXItb3BhY2l0eS1kaXNhYmxlZDogMC4yNTtcbiRzbGlkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRzbGlkZXItdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7XG5cbi8vIDI5LiBTd2l0Y2hcbi8vIC0tLS0tLS0tLS1cblxuJHN3aXRjaC1iYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXk7XG4kc3dpdGNoLWJhY2tncm91bmQtYWN0aXZlOiAkcHJpbWFyeS1jb2xvcjtcbiRzd2l0Y2gtaGVpZ2h0OiAycmVtO1xuJHN3aXRjaC1oZWlnaHQtdGlueTogMS41cmVtO1xuJHN3aXRjaC1oZWlnaHQtc21hbGw6IDEuNzVyZW07XG4kc3dpdGNoLWhlaWdodC1sYXJnZTogMi41cmVtO1xuJHN3aXRjaC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJHN3aXRjaC1tYXJnaW46ICRnbG9iYWwtbWFyZ2luO1xuJHN3aXRjaC1wYWRkbGUtYmFja2dyb3VuZDogJHdoaXRlO1xuJHN3aXRjaC1wYWRkbGUtb2Zmc2V0OiAwLjI1cmVtO1xuJHN3aXRjaC1wYWRkbGUtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRzd2l0Y2gtcGFkZGxlLXRyYW5zaXRpb246IGFsbCAwLjI1cyBlYXNlLW91dDtcblxuLy8gMzAuIFRhYmxlXG4vLyAtLS0tLS0tLS1cblxuJHRhYmxlLWJhY2tncm91bmQ6ICRjYXJkcy1iYWNrZ3JvdW5kO1xuJHRhYmxlLWNvbG9yLXNjYWxlOiAyJTtcbiR0YWJsZS1ib3JkZXI6IDFweCBzb2xpZCBzbWFydC1zY2FsZSgkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlKTtcbiR0YWJsZS1wYWRkaW5nOiByZW0tY2FsYyg4IDEwIDEwKTtcbiR0YWJsZS1ob3Zlci1zY2FsZTogMiU7XG4kdGFibGUtcm93LWhvdmVyOiBkYXJrZW4oJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1ob3Zlci1zY2FsZSk7XG4kdGFibGUtcm93LXN0cmlwZS1ob3ZlcjogZGFya2VuKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUgKyAkdGFibGUtaG92ZXItc2NhbGUpO1xuJHRhYmxlLXN0cmlwZWQtYmFja2dyb3VuZDogc21hcnQtc2NhbGUoJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSk7XG4kdGFibGUtc3RyaXBlOiBldmVuO1xuJHRhYmxlLWhlYWQtYmFja2dyb3VuZDogc21hcnQtc2NhbGUoJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSAvIDIpO1xuJHRhYmxlLWZvb3QtYmFja2dyb3VuZDogc21hcnQtc2NhbGUoJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSk7XG4kdGFibGUtaGVhZC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuJHNob3ctaGVhZGVyLWZvci1zdGFja2VkOiBmYWxzZTtcblxuLy8gMzEuIFRhYnNcbi8vIC0tLS0tLS0tXG5cbiR0YWItbWFyZ2luOiAwO1xuJHRhYi1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kdGFiLWJhY2tncm91bmQtYWN0aXZlOiAkbGlnaHQtZ3JheTtcbiR0YWItYm9yZGVyOiAkbGlnaHQtZ3JheTtcbiR0YWItaXRlbS1jb2xvcjogZm9yZWdyb3VuZCgkdGFiLWJhY2tncm91bmQsICRwcmltYXJ5LWNvbG9yKTtcbiR0YWItaXRlbS1iYWNrZ3JvdW5kLWhvdmVyOiAkd2hpdGU7XG4kdGFiLWl0ZW0tcGFkZGluZzogMS4yNXJlbSAxLjVyZW07XG4kdGFiLWV4cGFuZC1tYXg6IDY7XG4kdGFiLWNvbnRlbnQtYmFja2dyb3VuZDogJHdoaXRlO1xuJHRhYi1jb250ZW50LWJvcmRlcjogJGxpZ2h0LWdyYXk7XG4kdGFiLWNvbnRlbnQtY29sb3I6IGZvcmVncm91bmQoJHRhYi1iYWNrZ3JvdW5kLCAkcHJpbWFyeS1jb2xvcik7XG4kdGFiLWNvbnRlbnQtcGFkZGluZzogMXJlbTtcblxuLy8gMzIuIFRodW1ibmFpbFxuLy8gLS0tLS0tLS0tLS0tLVxuXG4kdGh1bWJuYWlsLWJvcmRlcjogc29saWQgNHB4ICR3aGl0ZTtcbiR0aHVtYm5haWwtbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW47XG4kdGh1bWJuYWlsLXNoYWRvdzogMCAwIDAgMXB4IHJnYmEoJGJsYWNrLCAwLjIpO1xuJHRodW1ibmFpbC1zaGFkb3ctaG92ZXI6IDAgMCA2cHggMXB4IHJnYmEoJHByaW1hcnktY29sb3IsIDAuNSk7XG4kdGh1bWJuYWlsLXRyYW5zaXRpb246IGJveC1zaGFkb3cgMjAwbXMgZWFzZS1vdXQ7XG4kdGh1bWJuYWlsLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG5cbi8vIDMzLiBUb29sdGlwXG4vLyAtLS0tLS0tLS0tLVxuXG4kdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yOiAkYmxhY2s7XG4kdG9vbHRpcC1jb2xvcjogJHdoaXRlO1xuJHRvb2x0aXAtcGFkZGluZzogMC43NXJlbTtcbiR0b29sdGlwLWZvbnQtc2l6ZTogJHNtYWxsLWZvbnQtc2l6ZTtcbiR0b29sdGlwLXBpcC13aWR0aDogMC43NXJlbTtcbiR0b29sdGlwLXBpcC1oZWlnaHQ6ICR0b29sdGlwLXBpcC13aWR0aCAqIDAuODY2O1xuJHRvb2x0aXAtcGlwLW9mZnNldDogMS4yNXJlbTtcbiR0b29sdGlwLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG5cbi8vIDM0LiBUb3AgQmFyXG4vLyAtLS0tLS0tLS0tLVxuXG4kdG9wYmFyLWlucHV0LXdpZHRoOiAyMDBweDtcbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHR5cG9ncmFwaHktYmFzZVxuLy8vL1xuXG4vLyBCYXNlIFR5cG9ncmFwaHlcbi8vIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtXG4vLyBUaGVzZSBhcmUgc3R5bGVzIGFwcGxpZWQgdG8gYmFzaWMgSFRNTCB0YWdzLCBpbmNsdWRpbmc6XG4vLyAgIC0gUGFyYWdyYXBocyA8cD5cbi8vICAgLSBCb2xkL2l0YWxpY3MgPGI+IDxzdHJvbmc+IDxpPiA8ZW0+XG4vLyAgIC0gU21hbGwgdGV4dCA8c21hbGw+XG4vLyAgIC0gSGVhZGluZ3MgPGgxPuKAlDxoNj5cbi8vICAgLSBBbmNob3JzIDxhPlxuLy8gICAtIERpdmlkZXJzIDxocj5cbi8vICAgLSBMaXN0cyA8dWw+IDxvbD4gPGRsPlxuLy8gICAtIEJsb2NrcXVvdGVzIDxibG9ja3F1b3RlPlxuLy8gICAtIENvZGUgYmxvY2tzIDxjb2RlPlxuLy8gICAtIEFiYnJldmlhdGlvbnMgPGFiYnI+XG4vLyAgIC0gQ2l0YXRpb25zIDxjaXRlPlxuLy8gICAtIEtleXN0cm9rZXMgPGtiZD5cblxuLy8vIEZvbnQgZmFtaWx5IGZvciBoZWFkZXIgZWxlbWVudHMuXG4vLy8gQHR5cGUgU3RyaW5nIHwgTGlzdFxuJGhlYWRlci1mb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdlaWdodCBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGhlYWRlci1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzdHlsZSAoZS5nLiBpdGFsaWNpemVkKSBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGhlYWRlci1mb250LXN0eWxlOiBub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHN0YWNrIHVzZWQgZm9yIGVsZW1lbnRzIHRoYXQgdXNlIG1vbm9zcGFjZWQgdHlwZSwgc3VjaCBhcyBjb2RlIHNhbXBsZXNcbi8vLyBAdHlwZSBTdHJpbmcgfCBMaXN0XG4kZm9udC1mYW1pbHktbW9ub3NwYWNlOiBDb25zb2xhcywgJ0xpYmVyYXRpb24gTW9ubycsIENvdXJpZXIsIG1vbm9zcGFjZSAhZGVmYXVsdDtcblxuLy8vIFNpemVzIG9mIGhlYWRpbmdzIGF0IHZhcmlvdXMgc2NyZWVuIHNpemVzLiBFYWNoIGtleSBpcyBhIGJyZWFrcG9pbnQsIGFuZCBlYWNoIHZhbHVlIGlzIGEgbWFwIG9mIGhlYWRpbmcgc2l6ZXMuXG4vLy8gQHR5cGUgTWFwXG4kaGVhZGVyLXNpemVzOiAoXG4gIHNtYWxsOiAoXG4gICAgJ2gxJzogMjQsXG4gICAgJ2gyJzogMjAsXG4gICAgJ2gzJzogMTksXG4gICAgJ2g0JzogMTgsXG4gICAgJ2g1JzogMTcsXG4gICAgJ2g2JzogMTYsXG4gICksXG4gIG1lZGl1bTogKFxuICAgICdoMSc6IDQ4LFxuICAgICdoMic6IDQwLFxuICAgICdoMyc6IDMxLFxuICAgICdoNCc6IDI1LFxuICAgICdoNSc6IDIwLFxuICAgICdoNic6IDE2LFxuICApLFxuKSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRoZWFkZXItY29sb3I6IGluaGVyaXQgIWRlZmF1bHQ7XG5cbi8vLyBMaW5lIGhlaWdodCBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJGhlYWRlci1saW5laGVpZ2h0OiAxLjQgIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gbWFyZ2luIG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kaGVhZGVyLW1hcmdpbi1ib3R0b206IDAuNXJlbSAhZGVmYXVsdDtcblxuLy8vIFRleHQgcmVuZGVyaW5nIG1ldGhvZCBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGhlYWRlci10ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5ICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIG9mIGA8c21hbGw+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzbWFsbC1mb250LXNpemU6IDgwJSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIGA8c21hbGw+YCBlbGVtZW50cyB3aGVuIHBsYWNlZCBpbnNpZGUgaGVhZGVycy5cbi8vLyBAdHlwZSBDb2xvclxuJGhlYWRlci1zbWFsbC1mb250LWNvbG9yOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBMaW5lIGhlaWdodCBvZiB0ZXh0IGluc2lkZSBgPHA+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwYXJhZ3JhcGgtbGluZWhlaWdodDogMS42ICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIG1hcmdpbiBvZiBwYXJhZ3JhcGhzLlxuLy8vIEB0eXBlIE51bWJlclxuJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gVGV4dCByZW5kZXJpbmcgbWV0aG9kIGZvciBwYXJhZ3JhcGggdGV4dC5cbi8vLyBAdHlwZSBTdHJpbmdcbiRwYXJhZ3JhcGgtdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgY29kZSBzYW1wbGVzLlxuLy8vIEB0eXBlIENvbG9yXG4kY29kZS1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gRm9udCBmYW1pbHkgb2YgY29kZSBzYW1wbGVzLlxuLy8vIEB0eXBlIFN0cmluZyB8IExpc3RcbiRjb2RlLWZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktbW9ub3NwYWNlICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgb2YgdGV4dCBpbiBjb2RlIHNhbXBsZXMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kY29kZS1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBjb2RlIHNhbXBsZXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRjb2RlLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIGFyb3VuZCBjb2RlIHNhbXBsZXMuXG4vLy8gQHR5cGUgTGlzdFxuJGNvZGUtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBhcm91bmQgdGV4dCBvZiBjb2RlIHNhbXBsZXMuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGNvZGUtcGFkZGluZzogcmVtLWNhbGMoMiA1IDEpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgbGlua3MuXG4vLy8gQHR5cGUgQ29sb3JcbiRhbmNob3ItY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgbGlua3Mgb24gaG92ZXIuXG4vLy8gQHR5cGUgQ29sb3JcbiRhbmNob3ItY29sb3ItaG92ZXI6IHNjYWxlLWNvbG9yKCRhbmNob3ItY29sb3IsICRsaWdodG5lc3M6IC0xNCUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0ZXh0IGRlb2NyYXRpb24gZm9yIGxpbmtzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGFuY2hvci10ZXh0LWRlY29yYXRpb246IG5vbmUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHRleHQgZGVjb3JhdGlvbiBmb3IgbGlua3Mgb24gaG92ZXIuXG4vLy8gQHR5cGUgU3RyaW5nXG4kYW5jaG9yLXRleHQtZGVjb3JhdGlvbi1ob3Zlcjogbm9uZSAhZGVmYXVsdDtcblxuLy8vIE1heGltdW0gd2lkdGggb2YgYSBkaXZpZGVyLlxuLy8vIEB0eXBlIE51bWJlclxuJGhyLXdpZHRoOiAkZ2xvYmFsLXdpZHRoICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgZm9yIGEgZGl2aWRlci5cbi8vLyBAdHlwZSBMaXN0XG4kaHItYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBtYXJnaW4gZm9yIGEgZGl2aWRlci5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4kaHItbWFyZ2luOiByZW0tY2FsYygyMCkgYXV0byAhZGVmYXVsdDtcblxuLy8vIExpbmUgaGVpZ2h0IGZvciBpdGVtcyBpbiBhIGxpc3QuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGlzdC1saW5laGVpZ2h0OiAkcGFyYWdyYXBoLWxpbmVoZWlnaHQgIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gbWFyZ2luIGZvciBpdGVtcyBpbiBhIGxpc3QuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGlzdC1tYXJnaW4tYm90dG9tOiAkcGFyYWdyYXBoLW1hcmdpbi1ib3R0b20gIWRlZmF1bHQ7XG5cbi8vLyBCdWxsZXQgdHlwZSB0byB1c2UgZm9yIHVub3JkZXJlZCBsaXN0cyAoZS5nLiwgYHNxdWFyZWAsIGBjaXJjbGVgLCBgZGlzY2ApLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGxpc3Qtc3R5bGUtdHlwZTogZGlzYyAhZGVmYXVsdDtcblxuLy8vIFBvc2l0aW9uaW5nIGZvciBidWxsZXRzIG9uIHVub3JkZXJlZCBsaXN0IGl0ZW1zLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGxpc3Qtc3R5bGUtcG9zaXRpb246IG91dHNpZGUgIWRlZmF1bHQ7XG5cbi8vLyBMZWZ0IChvciByaWdodCkgbWFyZ2luIGZvciBsaXN0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsaXN0LXNpZGUtbWFyZ2luOiAxLjI1cmVtICFkZWZhdWx0O1xuXG4vLy8gTGVmdCAob3IgcmlnaHQpIG1hcmdpbiBmb3IgYSBsaXN0IGluc2lkZSBhIGxpc3QuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGlzdC1uZXN0ZWQtc2lkZS1tYXJnaW46IDEuMjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gbWFyZ2luIGZvciBgPGRsPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZGVmbmxpc3QtbWFyZ2luLWJvdHRvbTogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgd2VpZ2h0IGZvciBgPGR0PmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kZGVmbmxpc3QtdGVybS13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQgIWRlZmF1bHQ7XG5cbi8vLyBTcGFjaW5nIGJldHdlZW4gYDxkdD5gIGFuZCBgPGRkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZGVmbmxpc3QtdGVybS1tYXJnaW4tYm90dG9tOiAwLjNyZW0gIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIGA8YmxvY2txdW90ZT5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIENvbG9yXG4kYmxvY2txdW90ZS1jb2xvcjogJGRhcmstZ3JheSAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgaW5zaWRlIGEgYDxibG9ja3F1b3RlPmAgZWxlbWVudC5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4kYmxvY2txdW90ZS1wYWRkaW5nOiByZW0tY2FsYyg5IDIwIDAgMTkpICFkZWZhdWx0O1xuXG4vLy8gU2lkZSBib3JkZXIgZm9yIGA8YmxvY2txdW90ZT5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIExpc3RcbiRibG9ja3F1b3RlLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBmb3IgYDxjaXRlPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kY2l0ZS1mb250LXNpemU6IHJlbS1jYWxjKDEzKSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3IgZm9yIGA8Y2l0ZT5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIENvbG9yXG4kY2l0ZS1jb2xvcjogJGRhcmstZ3JheSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgZmFtaWx5IGZvciBgPGtiZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIFN0cmluZyB8IExpc3RcbiRrZXlzdHJva2UtZm9udDogJGZvbnQtZmFtaWx5LW1vbm9zcGFjZSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3IgZm9yIGA8a2JkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRrZXlzdHJva2UtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIGA8a2JkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRrZXlzdHJva2UtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGZvciBgPGtiZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRrZXlzdHJva2UtcGFkZGluZzogcmVtLWNhbGMoMiA0IDApICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIHJhZGl1cyBmb3IgYDxrYmQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4ka2V5c3Ryb2tlLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gYm9yZGVyIHN0eWxlIGZvciBgPGFiYnI+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBMaXN0XG4kYWJici11bmRlcmxpbmU6IDFweCBkb3R0ZWQgJGJsYWNrICFkZWZhdWx0O1xuXG5AbWl4aW4gZm91bmRhdGlvbi10eXBvZ3JhcGh5LWJhc2Uge1xuICAvLyBUeXBvZ3JhcGh5IHJlc2V0c1xuICBkaXYsXG4gIGRsLFxuICBkdCxcbiAgZGQsXG4gIHVsLFxuICBvbCxcbiAgbGksXG4gIGgxLFxuICBoMixcbiAgaDMsXG4gIGg0LFxuICBoNSxcbiAgaDYsXG4gIHByZSxcbiAgZm9ybSxcbiAgcCxcbiAgYmxvY2txdW90ZSxcbiAgdGgsXG4gIHRkIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG4gIC8vIFBhcmFncmFwaHNcbiAgcCB7XG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgIGxpbmUtaGVpZ2h0OiAkcGFyYWdyYXBoLWxpbmVoZWlnaHQ7XG4gICAgbWFyZ2luLWJvdHRvbTogJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tO1xuICAgIHRleHQtcmVuZGVyaW5nOiAkcGFyYWdyYXBoLXRleHQtcmVuZGVyaW5nO1xuICB9XG5cbiAgLy8gRW1waGFzaXplZCB0ZXh0XG4gIGVtLFxuICBpIHtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIH1cblxuICAvLyBTdHJvbmcgdGV4dFxuICBzdHJvbmcsXG4gIGIge1xuICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICB9XG5cbiAgLy8gU21hbGwgdGV4dFxuICBzbWFsbCB7XG4gICAgZm9udC1zaXplOiAkc21hbGwtZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICB9XG5cbiAgLy8gSGVhZGluZ3NcbiAgaDEsXG4gIGgyLFxuICBoMyxcbiAgaDQsXG4gIGg1LFxuICBoNiB7XG4gICAgZm9udC1mYW1pbHk6ICRoZWFkZXItZm9udC1mYW1pbHk7XG4gICAgZm9udC13ZWlnaHQ6ICRoZWFkZXItZm9udC13ZWlnaHQ7XG4gICAgZm9udC1zdHlsZTogJGhlYWRlci1mb250LXN0eWxlO1xuICAgIGNvbG9yOiAkaGVhZGVyLWNvbG9yO1xuICAgIHRleHQtcmVuZGVyaW5nOiAkaGVhZGVyLXRleHQtcmVuZGVyaW5nO1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogJGhlYWRlci1tYXJnaW4tYm90dG9tO1xuICAgIGxpbmUtaGVpZ2h0OiAkaGVhZGVyLWxpbmVoZWlnaHQ7XG5cbiAgICBzbWFsbCB7XG4gICAgICBjb2xvcjogJGhlYWRlci1zbWFsbC1mb250LWNvbG9yO1xuICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgfVxuICB9XG5cbiAgLy8gSGVhZGluZyBzaXplc1xuICBAZWFjaCAkc2l6ZSwgJGhlYWRlcnMgaW4gJGhlYWRlci1zaXplcyB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgQGVhY2ggJGhlYWRlciwgJGZvbnQtc2l6ZSBpbiAkaGVhZGVycyB7XG4gICAgICAgICN7JGhlYWRlcn0geyBmb250LXNpemU6IHJlbS1jYWxjKCRmb250LXNpemUpOyB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gTGlua3NcbiAgYSB7XG4gICAgY29sb3I6ICRhbmNob3ItY29sb3I7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiAkYW5jaG9yLXRleHQtZGVjb3JhdGlvbjtcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgY29sb3I6ICRhbmNob3ItY29sb3ItaG92ZXI7XG4gICAgICBAaWYgJGFuY2hvci10ZXh0LWRlY29yYXRpb24taG92ZXIgIT0gJGFuY2hvci10ZXh0LWRlY29yYXRpb24ge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246ICRhbmNob3ItdGV4dC1kZWNvcmF0aW9uLWhvdmVyO1xuICAgICAgfVxuICAgIH1cblxuICAgIGltZyB7XG4gICAgICBib3JkZXI6IDA7XG4gICAgfVxuICB9XG5cbiAgLy8gSG9yaXpvbnRhbCBydWxlXG4gIGhyIHtcbiAgICBtYXgtd2lkdGg6ICRoci13aWR0aDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyLXJpZ2h0OiAwO1xuICAgIGJvcmRlci10b3A6IDA7XG4gICAgYm9yZGVyLWJvdHRvbTogJGhyLWJvcmRlcjtcbiAgICBib3JkZXItbGVmdDogMDtcbiAgICBtYXJnaW46ICRoci1tYXJnaW47XG4gICAgY2xlYXI6IGJvdGg7XG4gIH1cblxuICAvLyBMaXN0c1xuICB1bCxcbiAgb2wsXG4gIGRsIHtcbiAgICBsaW5lLWhlaWdodDogJGxpc3QtbGluZWhlaWdodDtcbiAgICBtYXJnaW4tYm90dG9tOiAkbGlzdC1tYXJnaW4tYm90dG9tO1xuICAgIGxpc3Qtc3R5bGUtcG9zaXRpb246ICRsaXN0LXN0eWxlLXBvc2l0aW9uO1xuICB9XG5cbiAgLy8gTGlzdCBpdGVtc1xuICBsaSB7XG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xuICB9XG5cbiAgLy8gVW5vcmRlcmVkIGxpc3RzXG4gIHVsIHtcbiAgICBsaXN0LXN0eWxlLXR5cGU6ICRsaXN0LXN0eWxlLXR5cGU7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJGxpc3Qtc2lkZS1tYXJnaW47XG4gIH1cblxuICAvLyBPcmRlcmVkIGxpc3RzXG4gIG9sIHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkbGlzdC1zaWRlLW1hcmdpbjtcbiAgfVxuXG4gIC8vIE5lc3RlZCB1bm9yZGVyZWQvb3JkZXJlZCBsaXN0c1xuICB1bCwgb2wge1xuICAgICYgJiB7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkbGlzdC1uZXN0ZWQtc2lkZS1tYXJnaW47XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgbGlzdC1zdHlsZS10eXBlOiBpbmhlcml0O1xuICAgIH1cbiAgfVxuXG4gIC8vIERlZmluaXRpb24gbGlzdHNcbiAgZGwge1xuICAgIG1hcmdpbi1ib3R0b206ICRkZWZubGlzdC1tYXJnaW4tYm90dG9tO1xuXG4gICAgZHQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogJGRlZm5saXN0LXRlcm0tbWFyZ2luLWJvdHRvbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiAkZGVmbmxpc3QtdGVybS13ZWlnaHQ7XG4gICAgfVxuICB9XG5cbiAgLy8gQmxvY2txdW90ZXNcbiAgYmxvY2txdW90ZSB7XG4gICAgbWFyZ2luOiAwIDAgJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tO1xuICAgIHBhZGRpbmc6ICRibG9ja3F1b3RlLXBhZGRpbmc7XG4gICAgYm9yZGVyLSN7JGdsb2JhbC1sZWZ0fTogJGJsb2NrcXVvdGUtYm9yZGVyO1xuXG4gICAgJiwgcCB7XG4gICAgICBsaW5lLWhlaWdodDogJHBhcmFncmFwaC1saW5laGVpZ2h0O1xuICAgICAgY29sb3I6ICRibG9ja3F1b3RlLWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIC8vIENpdGF0aW9uc1xuICBjaXRlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6ICRjaXRlLWZvbnQtc2l6ZTtcbiAgICBjb2xvcjogJGNpdGUtY29sb3I7XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnXFwyMDE0IFxcMDAyMCc7XG4gICAgfVxuICB9XG5cbiAgLy8gQWJicmV2aWF0aW9uc1xuICBhYmJyIHtcbiAgICBjb2xvcjogJGJvZHktZm9udC1jb2xvcjtcbiAgICBjdXJzb3I6IGhlbHA7XG4gICAgYm9yZGVyLWJvdHRvbTogJGFiYnItdW5kZXJsaW5lO1xuICB9XG5cbiAgLy8gQ29kZVxuICBjb2RlIHtcbiAgICBmb250LWZhbWlseTogJGNvZGUtZm9udC1mYW1pbHk7XG4gICAgZm9udC13ZWlnaHQ6ICRjb2RlLWZvbnQtd2VpZ2h0O1xuICAgIGNvbG9yOiAkY29kZS1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29kZS1iYWNrZ3JvdW5kO1xuICAgIGJvcmRlcjogJGNvZGUtYm9yZGVyO1xuICAgIHBhZGRpbmc6ICRjb2RlLXBhZGRpbmc7XG4gIH1cblxuICAvLyBLZXlzdHJva2VzXG4gIGtiZCB7XG4gICAgcGFkZGluZzogJGtleXN0cm9rZS1wYWRkaW5nO1xuICAgIG1hcmdpbjogMDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAka2V5c3Ryb2tlLWJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRrZXlzdHJva2UtY29sb3I7XG4gICAgZm9udC1mYW1pbHk6ICRrZXlzdHJva2UtZm9udDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgdHlwb2dyYXBoeS1oZWxwZXJzXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBmb3IgbGVhZCBwYXJhZ3JhcGhzLlxuLy8vIEB0eXBlIE51bWJlclxuJGxlYWQtZm9udC1zaXplOiAkZ2xvYmFsLWZvbnQtc2l6ZSAqIDEuMjUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGxpbmUgaGVpZ2h0IGZvciBsZWFkIHBhcmFncmFwaHMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kbGVhZC1saW5laGVpZ2h0OiAxLjYgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGxpbmUgaGVpZ2h0IGZvciBzdWJoZWFkZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJHN1YmhlYWRlci1saW5laGVpZ2h0OiAxLjQgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgY29sb3IgZm9yIHN1YmhlYWRlcnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRzdWJoZWFkZXItY29sb3I6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgd2VpZ2h0IGZvciBzdWJoZWFkZXJzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJHN1YmhlYWRlci1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0b3AgbWFyZ2luIGZvciBzdWJoaGVhZGVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzdWJoZWFkZXItbWFyZ2luLXRvcDogMC4ycmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3R0b20gbWFyZ2luIGZvciBzdWJoZWFkZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJHN1YmhlYWRlci1tYXJnaW4tYm90dG9tOiAwLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBmb3Igc3RhdGlzdGljIG51bWJlcnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3RhdC1mb250LXNpemU6IDIuNXJlbSAhZGVmYXVsdDtcblxuQG1peGluIGZvdW5kYXRpb24tdHlwb2dyYXBoeS1oZWxwZXJzIHtcbiAgLy8gVXNlIHRvIGNyZWF0ZSBhIHN1YmhlYWRpbmcgdW5kZXIgYSBtYWluIGhlYWRlclxuICAvLyBNYWtlIHN1cmUgeW91IHBhaXIgdGhlIHR3byBlbGVtZW50cyBpbiBhIDxoZWFkZXI+IGVsZW1lbnQsIGxpa2UgdGhpczpcbiAgLy8gPGhlYWRlcj5cbiAgLy8gICA8aDE+SGVhZGluZzwvaDE+XG4gIC8vICAgPGgyPlN1YmhlYWRpbmc8L2gyPlxuICAvLyA8L2hlYWRlcj5cbiAgLnN1YmhlYWRlciB7XG4gICAgbWFyZ2luLXRvcDogJHN1YmhlYWRlci1tYXJnaW4tdG9wO1xuICAgIG1hcmdpbi1ib3R0b206ICRzdWJoZWFkZXItbWFyZ2luLWJvdHRvbTtcbiAgICBmb250LXdlaWdodDogJHN1YmhlYWRlci1mb250LXdlaWdodDtcbiAgICBsaW5lLWhlaWdodDogJHN1YmhlYWRlci1saW5laGVpZ2h0O1xuICAgIGNvbG9yOiAkc3ViaGVhZGVyLWNvbG9yO1xuICB9XG5cbiAgLy8gVXNlIHRvIHN0eWxlIGFuIGludHJvZHVjdG9yeSBsZWFkLCBkZWNrLCBibHVyYiwgZXRjLlxuICAubGVhZCB7XG4gICAgZm9udC1zaXplOiAkbGVhZC1mb250LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6ICRsZWFkLWxpbmVoZWlnaHQ7XG4gIH1cblxuICAvLyBVc2UgdG8gc3R5bGUgYSBsYXJnZSBudW1iZXIgdG8gZGlzcGxheSBhIHN0YXRpc3RpY1xuICAuc3RhdCB7XG4gICAgZm9udC1zaXplOiAkc3RhdC1mb250LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICBwICsgJiB7XG4gICAgICBtYXJnaW4tdG9wOiAtMXJlbTtcbiAgICB9XG4gIH1cblxuICAvLyBVc2UgdG8gcmVtb3ZlIHRoZSBidWxsZXRzIGZyb20gYW4gdW5vcmRlcmVkIGxpc3RcbiAgLm5vLWJ1bGxldCB7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQG1peGluIGZvdW5kYXRpb24tdGV4dC1hbGlnbm1lbnQge1xuICAgIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgICBAZWFjaCAkYWxpZ24gaW4gKGxlZnQsIHJpZ2h0LCBjZW50ZXIsIGp1c3RpZnkpIHtcbiAgICAgICAgICBAaWYgJHNpemUgIT0gJ3NtYWxsJyB7XG4gICAgICAgICAgICAuI3skc2l6ZX0tdGV4dC0jeyRhbGlnbn0ge1xuICAgICAgICAgICAgICB0ZXh0LWFsaWduOiAkYWxpZ247XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIEBlbHNlIHsgICAgICAgICAgICBcbiAgICAgICAgICAgIC50ZXh0LSN7JGFsaWdufSB7XG4gICAgICAgICAgICAgIHRleHQtYWxpZ246ICRhbGlnbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB0eXBvZ3JhcGh5XG4vLy8vXG5cbi8vIHNjc3MtbGludDpkaXNhYmxlIGFsbFxuXG5AbWl4aW4gZm91bmRhdGlvbi1wcmludC1zdHlsZXMge1xuICAuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuICBAbWVkaWEgcHJpbnQge1xuICAgICoge1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgIGNvbG9yOiBibGFjayAhaW1wb3J0YW50OyAvLyBCbGFjayBwcmludHMgZmFzdGVyOiBoNWJwLmNvbS9zXG4gICAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICB0ZXh0LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH1cbiAgICAuaGlkZS1mb3ItcHJpbnQgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuICAgIHRhYmxlLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDsgfVxuICAgIHRoZWFkLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgICB0Ym9keS5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLXJvdy1ncm91cCAhaW1wb3J0YW50OyB9XG4gICAgdHIuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1yb3cgIWltcG9ydGFudDsgfVxuICAgIHRkLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XG4gICAgdGguc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cblxuICAgIC8vIERpc3BsYXkgdGhlIFVSTCBvZiBhIGxpbmsgYWZ0ZXIgdGhlIHRleHRcbiAgICBhLFxuICAgIGE6dmlzaXRlZCB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO31cbiAgICBhW2hyZWZdOmFmdGVyIHsgY29udGVudDogJyAoJyBhdHRyKGhyZWYpICcpJzsgfVxuXG4gICAgLy8gRG9uJ3QgZGlzcGxheSB0aGUgVVJMIGZvciBpbWFnZXMgb3IgSmF2YVNjcmlwdC9pbnRlcm5hbCBsaW5rc1xuICAgIC5pciBhOmFmdGVyLFxuICAgIGFbaHJlZl49J2phdmFzY3JpcHQ6J106YWZ0ZXIsXG4gICAgYVtocmVmXj0nIyddOmFmdGVyIHsgY29udGVudDogJyc7IH1cblxuICAgIC8vIERpc3BsYXkgd2hhdCBhbiBhYmJyZXZpYXRpb24gc3RhbmRzIGZvciBhZnRlciB0aGUgdGV4dFxuICAgIGFiYnJbdGl0bGVdOmFmdGVyIHsgY29udGVudDogJyAoJyBhdHRyKHRpdGxlKSAnKSc7IH1cblxuICAgIC8vIFByZXZlbnQgcGFnZSBicmVha3MgaW4gdGhlIG1pZGRsZSBvZiBhIGJsb2NrcXVvdGUgb3IgcHJlZm9ybWF0dGVkIHRleHQgYmxvY2tcbiAgICBwcmUsXG4gICAgYmxvY2txdW90ZSB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjOTk5O1xuICAgICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xuICAgIH1cblxuICAgIC8vIGg1YnAuY29tL3RcbiAgICB0aGVhZCB7IGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cDsgfVxuXG4gICAgdHIsXG4gICAgaW1nIHsgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkOyB9XG5cbiAgICBpbWcgeyBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfVxuXG4gICAgQHBhZ2UgeyBtYXJnaW46IDAuNWNtOyB9XG5cbiAgICBwLFxuICAgIGgyLFxuICAgIGgzIHtcbiAgICAgIG9ycGhhbnM6IDM7XG4gICAgICB3aWRvd3M6IDM7XG4gICAgfVxuXG4gICAgLy8gQXZvaWQgcGFnZSBicmVha3MgYWZ0ZXIgYSBoZWFkaW5nXG4gICAgaDIsXG4gICAgaDMgeyBwYWdlLWJyZWFrLWFmdGVyOiBhdm9pZDsgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gRm9udCBjb2xvciBvZiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBGb250IGZhbWlseSBvZiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBGb250XG4kaW5wdXQtZm9udC1mYW1pbHk6IGluaGVyaXQgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kaW5wdXQtZm9udC1zaXplOiByZW0tY2FsYygxNikgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBmb2N1c2VkIG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtYmFja2dyb3VuZC1mb2N1czogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBkaXNhYmxlZCB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWJhY2tncm91bmQtZGlzYWJsZWQ6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIGFyb3VuZCB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBCb3JkZXJcbiRpbnB1dC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgYXJvdW5kIGZvY3VzZWQgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1ib3JkZXItZm9jdXM6IDFweCBzb2xpZCAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQm94IHNoYWRvdyBpbnNpZGUgdGV4dCBpbnB1dHMgd2hlbiBub3QgZm9jdXNlZC5cbi8vLyBAdHlwZSBTaGFkb3dcbiRpbnB1dC1zaGFkb3c6IGluc2V0IDAgMXB4IDJweCByZ2JhKCRibGFjaywgMC4xKSAhZGVmYXVsdDtcblxuLy8vIEJveCBzaGFkb3cgb3V0c2lkZSB0ZXh0IGlucHV0cyB3aGVuIGZvY3VzZWQuXG4vLy8gQHR5cGUgU2hhZG93XG4kaW5wdXQtc2hhZG93LWZvY3VzOiAwIDAgNXB4ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIEN1cnNvciB0byB1c2Ugd2hlbiBob3ZlcmluZyBvdmVyIGEgZGlzYWJsZWQgdGV4dCBpbnB1dC5cbi8vLyBAdHlwZSBDdXJzb3JcbiRpbnB1dC1jdXJzb3ItZGlzYWJsZWQ6IGRlZmF1bHQgIWRlZmF1bHQ7XG5cbi8vLyBQcm9wZXJ0aWVzIHRvIHRyYW5zaXRpb24gb24gdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgVHJhbnNpdGlvblxuJGlucHV0LXRyYW5zaXRpb246IGJveC1zaGFkb3cgMC41cywgYm9yZGVyLWNvbG9yIDAuMjVzIGVhc2UtaW4tb3V0ICFkZWZhdWx0O1xuXG4vLy8gRW5hYmxlcyB0aGUgdXAvZG93biBidXR0b25zIHRoYXQgQ2hyb21lIGFuZCBGaXJlZm94IGFkZCB0byBgPGlucHV0IHR5cGU9J251bWJlcic+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kaW5wdXQtbnVtYmVyLXNwaW5uZXJzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gUmFkaXVzIGZvciB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBCb3JkZXJcbiRpbnB1dC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG5AbWl4aW4gZm9ybS1lbGVtZW50IHtcbiAgJGhlaWdodDogKCRpbnB1dC1mb250LXNpemUgKyAoJGZvcm0tc3BhY2luZyAqIDEuNSkgLSByZW0tY2FsYygxKSk7XG5cbiAgZGlzcGxheTogYmxvY2s7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6ICRoZWlnaHQ7XG4gIHBhZGRpbmc6ICRmb3JtLXNwYWNpbmcgLyAyO1xuICBib3JkZXI6ICRpbnB1dC1ib3JkZXI7XG4gIG1hcmdpbjogMCAwICRmb3JtLXNwYWNpbmc7XG5cbiAgZm9udC1mYW1pbHk6ICRpbnB1dC1mb250LWZhbWlseTtcbiAgZm9udC1zaXplOiAkaW5wdXQtZm9udC1zaXplO1xuICBjb2xvcjogJGlucHV0LWNvbG9yO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmFja2dyb3VuZDtcbiAgYm94LXNoYWRvdzogJGlucHV0LXNoYWRvdztcbiAgYm9yZGVyLXJhZGl1czogJGlucHV0LXJhZGl1cztcblxuICBAaWYgaGFzLXZhbHVlKCRpbnB1dC10cmFuc2l0aW9uKSB7XG4gICAgdHJhbnNpdGlvbjogJGlucHV0LXRyYW5zaXRpb247XG4gIH1cblxuICAvLyBGb2N1cyBzdGF0ZVxuICAmOmZvY3VzIHtcbiAgICBib3JkZXI6ICRpbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgYmFja2dyb3VuZDogJGlucHV0LWJhY2tncm91bmQtZm9jdXM7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBib3gtc2hhZG93OiAkaW5wdXQtc2hhZG93LWZvY3VzO1xuXG4gICAgQGlmIGhhcy12YWx1ZSgkaW5wdXQtdHJhbnNpdGlvbikge1xuICAgICAgdHJhbnNpdGlvbjogJGlucHV0LXRyYW5zaXRpb247XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tdGV4dCB7XG4gIC8vIFRleHQgaW5wdXRzXG4gICN7dGV4dC1pbnB1dHMoKX0sXG4gIHRleHRhcmVhIHtcbiAgICBAaW5jbHVkZSBmb3JtLWVsZW1lbnQ7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgfVxuXG4gIC8vIFRleHQgYXJlYXNcbiAgdGV4dGFyZWEge1xuICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICZbcm93c10ge1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgIH1cbiAgfVxuXG4gIC8vIERpc2FibGVkL3JlYWRvbmx5IHN0YXRlXG4gIGlucHV0LFxuICB0ZXh0YXJlYSB7XG4gICAgJjpkaXNhYmxlZCxcbiAgICAmW3JlYWRvbmx5XSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmFja2dyb3VuZC1kaXNhYmxlZDtcbiAgICAgIGN1cnNvcjogJGlucHV0LWN1cnNvci1kaXNhYmxlZDtcbiAgICB9XG4gIH1cblxuICAvLyBSZXNldCBzdHlsZXMgb24gYnV0dG9uLWxpa2UgaW5wdXRzXG4gIFt0eXBlPSdzdWJtaXQnXSxcbiAgW3R5cGU9J2J1dHRvbiddIHtcbiAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICB9XG5cbiAgLy8gUmVzZXQgTm9ybWFsaXplIHNldHRpbmcgY29udGVudC1ib3ggdG8gc2VhcmNoIGVsZW1lbnRzXG4gIGlucHV0W3R5cGU9J3NlYXJjaCddIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB9XG5cbiAgLy8gTnVtYmVyIGlucHV0IHN0eWxlc1xuICBbdHlwZT0nbnVtYmVyJ10ge1xuICAgIEBpZiBub3QgJGlucHV0LW51bWJlci1zcGlubmVycyB7XG4gICAgICAtbW96LWFwcGVhcmFuY2U6IHRleHRmaWVsZDtcblxuICAgICAgW3R5cGU9J251bWJlciddOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuICAgICAgW3R5cGU9J251bWJlciddOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmdW5jdGlvbnNcbi8vLy9cblxuLy8vIENoZWNrcyB0aGUgbGlnaHRuZXNzIG9mIGAkY29sb3JgLCBhbmQgaWYgaXQgcGFzc2VzIHRoZSBgJHRocmVzaG9sZGAgb2YgbGlnaHRuZXNzLCBpdCByZXR1cm5zIHRoZSBgJHllc2AgY29sb3IuIE90aGVyd2lzZSwgaXQgcmV0dXJucyB0aGUgYCRub2AgY29sb3IuIFVzZSB0aGlzIGZ1bmN0aW9uIHRvIGR5bmFtaWNhbGx5IG91dHB1dCBhIGZvcmVncm91bmQgY29sb3IgYmFzZWQgb24gYSBnaXZlbiBiYWNrZ3JvdW5kIGNvbG9yLlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIC0gQ29sb3IgdG8gY2hlY2sgdGhlIGxpZ2h0bmVzcyBvZi5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkeWVzIFskYmxhY2tdIC0gQ29sb3IgdG8gcmV0dXJuIGlmIGAkY29sb3JgIGlzIGxpZ2h0LlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRubyBbJHdoaXRlXSAtIENvbG9yIHRvIHJldHVybiBpZiBgJGNvbG9yYCBpcyBkYXJrLlxuLy8vIEBwYXJhbSB7UGVyY2VudGFnZX0gJHRocmVzaG9sZCBbNjAlXSAtIFRocmVzaG9sZCBvZiBsaWdodG5lc3MgdG8gY2hlY2sgYWdhaW5zdC5cbi8vL1xuLy8vIEByZXR1cm5zIHtDb2xvcn0gVGhlICR5ZXMgY29sb3Igb3IgJG5vIGNvbG9yLlxuQGZ1bmN0aW9uIGZvcmVncm91bmQoJGNvbG9yLCAkeWVzOiAkYmxhY2ssICRubzogJHdoaXRlLCAkdGhyZXNob2xkOiA2MCUpIHtcbiAgQGlmICRjb2xvciA9PSB0cmFuc3BhcmVudCB7XG4gICAgJGNvbG9yOiAkYm9keS1iYWNrZ3JvdW5kO1xuICB9XG4gIEBpZiAobGlnaHRuZXNzKCRjb2xvcikgPiAkdGhyZXNob2xkKSB7XG4gICAgQHJldHVybiAkeWVzO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuICRubztcbiAgfVxufVxuXG4vLy8gU2NhbGVzIGEgY29sb3IgdG8gYmUgbGlnaHRlciBpZiBpdCdzIGxpZ2h0LCBvciBkYXJrZXIgaWYgaXQncyBkYXJrLiBVc2UgdGhpcyBmdW5jdGlvbiB0byB0aW50IGEgY29sb3IgYXBwcm9wcmlhdGUgdG8gaXRzIGxpZ2h0bmVzcy5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciAtIENvbG9yIHRvIHNjYWxlLlxuLy8vIEBwYXJhbSB7UGVyY2VudGFnZX0gJHNjYWxlIFs1JV0gLSBBbW91bnQgdG8gc2NhbGUgdXAgb3IgZG93bi5cbi8vLyBAcGFyYW0ge1BlcmNlbnRhZ2V9ICR0aHJlc2hvbGQgWzQwJV0gLSBUaHJlc2hvbGQgb2YgbGlnaHRuZXNzIHRvIGNoZWNrIGFnYWluc3QuXG4vLy9cbi8vLyBAcmV0dXJucyB7Q29sb3J9IEEgc2NhbGVkIGNvbG9yLlxuQGZ1bmN0aW9uIHNtYXJ0LXNjYWxlKCRjb2xvciwgJHNjYWxlOiA1JSwgJHRocmVzaG9sZDogNDAlKSB7XG4gIEBpZiBsaWdodG5lc3MoJGNvbG9yKSA+ICR0aHJlc2hvbGQge1xuICAgICRzY2FsZTogLSRzY2FsZTtcbiAgfVxuICBAcmV0dXJuIHNjYWxlLWNvbG9yKCRjb2xvciwgJGxpZ2h0bmVzczogJHNjYWxlKTtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tY2hlY2tib3gge1xuICBbdHlwZT0nZmlsZSddLFxuICBbdHlwZT0nY2hlY2tib3gnXSxcbiAgW3R5cGU9J3JhZGlvJ10ge1xuICAgIG1hcmdpbjogMCAwICRmb3JtLXNwYWNpbmc7XG4gIH1cblxuICAvLyBTdHlsZXMgZm9yIGlucHV0L2xhYmVsIHNpYmxpbmdzXG4gIFt0eXBlPSdjaGVja2JveCddICsgbGFiZWwsXG4gIFt0eXBlPSdyYWRpbyddICsgbGFiZWwge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkZm9ybS1zcGFjaW5nICogMC41O1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkZm9ybS1zcGFjaW5nO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICB9XG5cbiAgLy8gU3R5bGVzIGZvciBpbnB1dHMgaW5zaWRlIGxhYmVsc1xuICBsYWJlbCA+IFt0eXBlPSdjaGVja2JveCddLFxuICBsYWJlbCA+IFt0eXBlPSdsYWJlbCddIHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJGZvcm0tc3BhY2luZyAqIDAuNTtcbiAgfVxuXG4gIC8vIE5vcm1hbGl6ZSBmaWxlIGlucHV0IHdpZHRoXG4gIFt0eXBlPSdmaWxlJ10ge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gQ29sb3IgZm9yIGZvcm0gbGFiZWxzLlxuLy8vIEB0eXBlIENvbG9yXG4kZm9ybS1sYWJlbC1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIGZvciBmb3JtIGxhYmVscy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRmb3JtLWxhYmVsLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgZm9yIGZvcm0gbGFiZWxzLlxuLy8vIEB0eXBlIEtleXdvcmRcbiRmb3JtLWxhYmVsLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBMaW5lIGhlaWdodCBmb3IgZm9ybSBsYWJlbHMuIFRoZSBoaWdoZXIgdGhlIG51bWJlciwgdGhlIG1vcmUgc3BhY2UgYmV0d2VlbiB0aGUgbGFiZWwgYW5kIGl0cyBpbnB1dCBmaWVsZC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRmb3JtLWxhYmVsLWxpbmUtaGVpZ2h0OiAxLjggIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3JtLWxhYmVsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMDtcbiAgZm9udC1zaXplOiAkZm9ybS1sYWJlbC1mb250LXNpemU7XG4gIGZvbnQtd2VpZ2h0OiAkZm9ybS1sYWJlbC1mb250LXdlaWdodDtcbiAgbGluZS1oZWlnaHQ6ICRmb3JtLWxhYmVsLWxpbmUtaGVpZ2h0O1xuICBjb2xvcjogJGZvcm0tbGFiZWwtY29sb3I7XG59XG5cbkBtaXhpbiBmb3JtLWxhYmVsLW1pZGRsZSB7XG4gICRpbnB1dC1ib3JkZXItd2lkdGg6IGdldC1ib3JkZXItdmFsdWUoJGlucHV0LWJvcmRlciwgd2lkdGgpO1xuICBtYXJnaW46IDAgMCAkZm9ybS1zcGFjaW5nO1xuICBwYWRkaW5nOiAoJGZvcm0tc3BhY2luZyAvIDIgKyByZW0tY2FsYygkaW5wdXQtYm9yZGVyLXdpZHRoKSkgMDtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1sYWJlbCB7XG4gIGxhYmVsIHtcbiAgICBAaW5jbHVkZSBmb3JtLWxhYmVsO1xuXG4gICAgJi5taWRkbGUge1xuICAgICAgQGluY2x1ZGUgZm9ybS1sYWJlbC1taWRkbGU7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgaGVscCB0ZXh0LlxuLy8vIEB0eXBlIENvbG9yXG4kaGVscHRleHQtY29sb3I6ICMzMzMgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBmb3IgaGVscCB0ZXh0LlxuLy8vIEB0eXBlIE51bWJlclxuJGhlbHB0ZXh0LWZvbnQtc2l6ZTogcmVtLWNhbGMoMTMpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHN0eWxlIGZvciBoZWxwIHRleHQuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGhlbHB0ZXh0LWZvbnQtc3R5bGU6IGl0YWxpYyAhZGVmYXVsdDtcblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1oZWxwdGV4dCB7XG4gIC5oZWxwLXRleHQge1xuICAgICRtYXJnaW4tdG9wOiAoJGZvcm0tc3BhY2luZyAqIDAuNSkgKiAtMTtcblxuICAgIG1hcmdpbi10b3A6ICRtYXJnaW4tdG9wO1xuICAgIGZvbnQtc2l6ZTogJGhlbHB0ZXh0LWZvbnQtc2l6ZTtcbiAgICBmb250LXN0eWxlOiAkaGVscHRleHQtZm9udC1zdHlsZTtcbiAgICBjb2xvcjogJGhlbHB0ZXh0LWNvbG9yO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gQ29sb3Igb2YgbGFiZWxzIHByZWZpeGVkIHRvIGFuIGlucHV0LlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtcHJlZml4LWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGxhYmVscyBwcmVmaXhlZCB0byBhbiBpbnB1dC5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LXByZWZpeC1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBhcm91bmQgbGFiZWxzIHByZWZpeGVkIHRvIGFuIGlucHV0LlxuLy8vIEB0eXBlIEJvcmRlclxuJGlucHV0LXByZWZpeC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBMZWZ0L3JpZ2h0IHBhZGRpbmcgb2YgYW4gcHJlL3Bvc3RmaXhlZCBpbnB1dCBsYWJlbFxuJGlucHV0LXByZWZpeC1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLXByZXBvc3RmaXgge1xuICAkaGVpZ2h0OiAoJGlucHV0LWZvbnQtc2l6ZSArICRmb3JtLXNwYWNpbmcgKiAxLjUpO1xuXG5cbiAgLmlucHV0LWdyb3VwIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAkZm9ybS1zcGFjaW5nO1xuXG4gICAgJiA+ICo6Zmlyc3QtY2hpbGQge1xuICAgICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgMCAwICRnbG9iYWwtcmFkaXVzO1xuICAgIH1cblxuICAgICYgPiAqOmxhc3QtY2hpbGQge1xuICAgICAgJiA+ICoge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwICRnbG9iYWwtcmFkaXVzICRnbG9iYWwtcmFkaXVzIDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJWlucHV0LWdyb3VwLWNoaWxkIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIG1hcmdpbjogMDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG5cbiAgLmlucHV0LWdyb3VwLWxhYmVsIHtcbiAgICBAZXh0ZW5kICVpbnB1dC1ncm91cC1jaGlsZDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgd2lkdGg6IDElO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBwYWRkaW5nOiAwICRpbnB1dC1wcmVmaXgtcGFkZGluZztcbiAgICBiYWNrZ3JvdW5kOiAkaW5wdXQtcHJlZml4LWJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRpbnB1dC1wcmVmaXgtY29sb3I7XG4gICAgYm9yZGVyOiAkaW5wdXQtcHJlZml4LWJvcmRlcjtcblxuICAgIEBpZiBoYXMtdmFsdWUoJGlucHV0LXByZWZpeC1ib3JkZXIpIHtcbiAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItI3skZ2xvYmFsLXJpZ2h0fTogMDtcbiAgICAgIH1cblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLSN7JGdsb2JhbC1sZWZ0fTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuaW5wdXQtZ3JvdXAtZmllbGQge1xuICAgIEBleHRlbmQgJWlucHV0LWdyb3VwLWNoaWxkO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgaGVpZ2h0OiAkaGVpZ2h0O1xuICB9XG5cbiAgLmlucHV0LWdyb3VwLWJ1dHRvbiB7XG4gICAgQGV4dGVuZCAlaW5wdXQtZ3JvdXAtY2hpbGQ7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB3aWR0aDogMSU7XG5cbiAgICBhLFxuICAgIGlucHV0LFxuICAgIGJ1dHRvbiB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgYXJvdW5kIGN1c3RvbSBmaWVsZHNldHMuXG4vLy8gQHR5cGUgQm9yZGVyXG4kZmllbGRzZXQtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGluc2lkZSBjdXN0b20gZmllbGRzZXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGZpZWxkc2V0LXBhZGRpbmc6IHJlbS1jYWxjKDIwKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbWFyZ2luIGFyb3VuZCBjdXN0b20gZmllbGRzZXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGZpZWxkc2V0LW1hcmdpbjogcmVtLWNhbGMoMTggMCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgYmV0d2VlbiB0aGUgbGVnZW5kIHRleHQgYW5kIGZpZWxkc2V0IGJvcmRlci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsZWdlbmQtcGFkZGluZzogcmVtLWNhbGMoMCAzKSAhZGVmYXVsdDtcblxuQG1peGluIGZpZWxkc2V0IHtcbiAgYm9yZGVyOiAkZmllbGRzZXQtYm9yZGVyO1xuICBwYWRkaW5nOiAkZmllbGRzZXQtcGFkZGluZztcbiAgbWFyZ2luOiAkZmllbGRzZXQtbWFyZ2luO1xuXG4gIGxlZ2VuZCB7XG4gICAgLy8gQ292ZXJzIHVwIHRoZSBmaWVsZHNldCdzIGJvcmRlciB0byBjcmVhdGUgYXJ0aWZpY2lhbCBwYWRkaW5nXG4gICAgYmFja2dyb3VuZDogJGJvZHktYmFja2dyb3VuZDtcbiAgICBwYWRkaW5nOiAkbGVnZW5kLXBhZGRpbmc7XG4gICAgbWFyZ2luOiAwO1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IHJlbS1jYWxjKC0zKTtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLWZpZWxkc2V0IHtcbiAgZmllbGRzZXQge1xuICAgIGJvcmRlcjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgfVxuXG4gIGxlZ2VuZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogJGZvcm0tc3BhY2luZyAqIDAuNTtcbiAgfVxuXG4gIC5maWVsZHNldCB7XG4gICAgQGluY2x1ZGUgZmllbGRzZXQ7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciBzZWxlY3QgbWVudXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRzZWxlY3QtYmFja2dyb3VuZDogI2ZhZmFmYSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIHRoZSBkcm9wZG93biB0cmlhbmdsZSBpbnNpZGUgc2VsZWN0IG1lbnVzLiBTZXQgdG8gYHRyYW5zcGFyZW50YCB0byByZW1vdmUgaXQgZW50aXJlbHkuXG4vLy8gQHR5cGUgQ29sb3JcbiRzZWxlY3QtdHJpYW5nbGUtY29sb3I6ICMzMzMgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHJhZGl1cyBmb3Igc2VsZWN0IG1lbnVzLlxuLy8vIEB0eXBlIENvbG9yXG4kc2VsZWN0LXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3JtLXNlbGVjdCB7XG4gICRoZWlnaHQ6ICgkaW5wdXQtZm9udC1zaXplICsgKCRmb3JtLXNwYWNpbmcgKiAxLjUpIC0gcmVtLWNhbGMoMSkpO1xuXG4gIGhlaWdodDogJGhlaWdodDtcbiAgcGFkZGluZzogKCRmb3JtLXNwYWNpbmcgLyAyKTtcbiAgYm9yZGVyOiAkaW5wdXQtYm9yZGVyO1xuICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgbWFyZ2luOiAwIDAgJGZvcm0tc3BhY2luZztcbiAgZm9udC1zaXplOiAkaW5wdXQtZm9udC1zaXplO1xuICBmb250LWZhbWlseTogJGlucHV0LWZvbnQtZmFtaWx5O1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICBjb2xvcjogJGlucHV0LWNvbG9yO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2VsZWN0LWJhY2tncm91bmQ7XG4gIGJvcmRlci1yYWRpdXM6ICRzZWxlY3QtcmFkaXVzO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcblxuICBAaWYgJHNlbGVjdC10cmlhbmdsZS1jb2xvciAhPSB0cmFuc3BhcmVudCB7XG4gICAgQGluY2x1ZGUgYmFja2dyb3VuZC10cmlhbmdsZSgkc2VsZWN0LXRyaWFuZ2xlLWNvbG9yKTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDlweCA2cHg7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogJGdsb2JhbC1yaWdodCAoJGZvcm0tc3BhY2luZyAvIDIpIGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICB9XG4gIC8vIERpc2FibGVkIHN0YXRlXG4gICY6ZGlzYWJsZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1iYWNrZ3JvdW5kLWRpc2FibGVkO1xuICAgIGN1cnNvcjogJGlucHV0LWN1cnNvci1kaXNhYmxlZDtcbiAgfVxuXG4gIC8vIEhpZGUgdGhlIGRyb3Bkb3duIGFycm93IHNob3duIGluIG5ld2VyIElFIHZlcnNpb25zXG4gICY6Oi1tcy1leHBhbmQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAmW211bHRpcGxlXSB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tc2VsZWN0IHtcbiAgc2VsZWN0IHtcbiAgICBAaW5jbHVkZSBmb3JtLXNlbGVjdDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZnVuY3Rpb25zXG4vLy8vXG5cbi8vLyBDcmVhdGVzIGEgQ1NTIHRyaWFuZ2xlLCB3aGljaCBjYW4gYmUgdXNlZCBmb3IgZHJvcGRvd24gYXJyb3dzLCBkcm9wZG93biBwaXBzLCBhbmQgbW9yZS4gVXNlIHRoaXMgbWl4aW4gaW5zaWRlIGEgYCY6OmJlZm9yZWAgb3IgYCY6OmFmdGVyYCBzZWxlY3RvciwgdG8gYXR0YWNoIHRoZSB0cmlhbmdsZSB0byBhbiBleGlzdGluZyBlbGVtZW50LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR0cmlhbmdsZS1zaXplIC0gV2lkdGggb2YgdGhlIHRyaWFuZ2xlLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICR0cmlhbmdsZS1jb2xvciAtIENvbG9yIG9mIHRoZSB0cmlhbmdsZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR0cmlhbmdsZS1kaXJlY3Rpb24gLSBEaXJlY3Rpb24gdGhlIHRyaWFuZ2xlIHBvaW50cy4gQ2FuIGJlIGB1cGAsIGByaWdodGAsIGBkb3duYCwgb3IgYGxlZnRgLlxuQG1peGluIGNzcy10cmlhbmdsZShcbiAgJHRyaWFuZ2xlLXNpemUsXG4gICR0cmlhbmdsZS1jb2xvcixcbiAgJHRyaWFuZ2xlLWRpcmVjdGlvblxuKSB7XG4gIGNvbnRlbnQ6ICcnO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyOiBpbnNldCAkdHJpYW5nbGUtc2l6ZTtcblxuICBAaWYgKCR0cmlhbmdsZS1kaXJlY3Rpb24gPT0gZG93bikge1xuICAgIGJvcmRlci1jb2xvcjogJHRyaWFuZ2xlLWNvbG9yIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci10b3Atc3R5bGU6IHNvbGlkO1xuICB9XG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSB1cCkge1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgJHRyaWFuZ2xlLWNvbG9yO1xuICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkO1xuICB9XG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSByaWdodCkge1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgJHRyaWFuZ2xlLWNvbG9yO1xuICAgIGJvcmRlci1sZWZ0LXN0eWxlOiBzb2xpZDtcbiAgfVxuICBAaWYgKCR0cmlhbmdsZS1kaXJlY3Rpb24gPT0gbGVmdCkge1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgJHRyaWFuZ2xlLWNvbG9yIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1yaWdodC1zdHlsZTogc29saWQ7XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBtZW51IGljb24gd2l0aCBhIHNldCB3aWR0aCwgaGVpZ2h0LCBudW1iZXIgb2YgYmFycywgYW5kIGNvbG9ycy4gVGhlIG1peGluIHVzZXMgdGhlIGhlaWdodCBvZiB0aGUgaWNvbiBhbmQgdGhlIHdlaWdodCBvZiB0aGUgYmFycyB0byBkZXRlcm1pbmUgc3BhY2luZy4gPGRpdiBjbGFzcz1cImRvY3MtZXhhbXBsZS1idXJnZXJcIj48L2Rpdj5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciAtIENvbG9yIHRvIHVzZSBmb3IgdGhlIGljb24uXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yLWhvdmVyIC0gQ29sb3IgdG8gdXNlIHdoZW4gdGhlIGljb24gaXMgaG92ZXJlZCBvdmVyLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2lkdGggLSBXaWR0aCBvZiB0aGUgaWNvbi5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGhlaWdodCAtIEhlaWdodCBvZiB0aGUgaWNvbi5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHdlaWdodCAtIEhlaWdodCBvZiBpbmRpdmlkdWFsIGJhcnMgaW4gdGhlIGljb24uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXJzIC0gTnVtYmVyIG9mIGJhcnMgaW4gdGhlIGljb24uXG5AbWl4aW4gaGFtYnVyZ2VyKFxuICAkY29sb3I6IGJsYWNrLFxuICAkY29sb3ItaG92ZXI6ICM2NjYsXG4gICR3aWR0aDogMjBweCxcbiAgJGhlaWdodDogMTZweCxcbiAgJHdlaWdodDogMnB4LFxuICAkYmFyczogM1xuKSB7XG4gIC8vIGJveC1zaGFkb3cgQ1NTIG91dHB1dFxuICAkc2hhZG93OiAoKTtcbiAgJGhvdmVyLXNoYWRvdzogKCk7XG5cbiAgLy8gU3BhY2luZyBiZXR3ZWVuIGJhcnMgaXMgY2FsY3VsYXRlZCBiYXNlZCBvbiB0aGUgdG90YWwgaGVpZ2h0IG9mIHRoZSBpY29uIGFuZCB0aGUgd2VpZ2h0IG9mIGVhY2ggYmFyXG4gICRzcGFjaW5nOiBmbG9vcigoJGhlaWdodCAtICgkd2VpZ2h0ICogJGJhcnMpKSAvICgkYmFycyAtIDEpKTtcblxuICAvLyBJY29uIGNvbnRhaW5lclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB3aWR0aDogJHdpZHRoO1xuICBoZWlnaHQ6ICRoZWlnaHQ7XG5cbiAgLy8gSWNvbiBiYXJzXG4gICY6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAkd2VpZ2h0O1xuICAgIGJhY2tncm91bmQ6ICRjb2xvcjtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcblxuICAgIEBmb3IgJGkgZnJvbSAyIHRocm91Z2ggJGJhcnMge1xuICAgICAgJG9mZnNldDogKCR3ZWlnaHQgKyAkc3BhY2luZykgKiAoJGkgLSAxKTtcbiAgICAgICRzaGFkb3c6IGFwcGVuZCgkc2hhZG93LCAwICRvZmZzZXQgMCAkY29sb3IsIGNvbW1hKTtcbiAgICB9XG5cbiAgICBib3gtc2hhZG93OiAkc2hhZG93O1xuICB9XG5cbiAgLy8gSG92ZXIgc3RhdGVcbiAgQGlmICRjb2xvci1ob3ZlciB7XG4gICAgLy8gR2VuZXJhdGUgQ1NTXG4gICAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCAkYmFycyB7XG4gICAgICAkb2Zmc2V0OiAoJHdlaWdodCArICRzcGFjaW5nKSAqICgkaSAtIDEpO1xuICAgICAgJGhvdmVyLXNoYWRvdzogYXBwZW5kKCRob3Zlci1zaGFkb3csIDAgJG9mZnNldCAwICRjb2xvci1ob3ZlciwgY29tbWEpO1xuICAgIH1cblxuICAgICY6aG92ZXI6OmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRjb2xvci1ob3ZlcjtcbiAgICAgIGJveC1zaGFkb3c6ICRob3Zlci1zaGFkb3c7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIGEgZG93bndhcmQtZmFjaW5nIHRyaWFuZ2xlIGFzIGEgYmFja2dyb3VuZCBpbWFnZSB0byBhbiBlbGVtZW50LiBUaGUgaW1hZ2UgaXMgZm9ybWF0dGVkIGFzIGFuIFNWRywgbWFraW5nIGl0IGVhc3kgdG8gY2hhbmdlIHRoZSBjb2xvci4gQmVjYXVzZSBJbnRlcm5ldCBFeHBsb3JlciBkb2Vzbid0IHN1cHBvcnQgZW5jb2RlZCBTVkdzIGFzIGJhY2tncm91bmQgaW1hZ2VzLCBhIFBORyBmYWxsYmFjayBpcyBhbHNvIGluY2x1ZGVkLlxuLy8vIFRoZXJlIGFyZSB0d28gUE5HIGZhbGxiYWNrczogYSBibGFjayB0cmlhbmdsZSBhbmQgYSB3aGl0ZSB0cmlhbmdsZS4gVGhlIG9uZSB1c2VkIGRlcGVuZHMgb24gdGhlIGxpZ2h0bmVzcyBvZiB0aGUgaW5wdXQgY29sb3IuXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRibGFja10gLSBDb2xvciB0byB1c2UgZm9yIHRoZSB0cmlhbmdsZS5cbkBtaXhpbiBiYWNrZ3JvdW5kLXRyaWFuZ2xlKCRjb2xvcjogJGJsYWNrKSB7XG4gICRyZ2I6ICdyZ2IoI3tyZWQoJGNvbG9yKX0sICN7Z3JlZW4oJGNvbG9yKX0sICN7Ymx1ZSgkY29sb3IpfSknO1xuXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmVyc2lvbj1cIjEuMVwiIHdpZHRoPVwiMzJcIiBoZWlnaHQ9XCIyNFwiIHZpZXdCb3g9XCIwIDAgMzIgMjRcIj48cG9seWdvbiBwb2ludHM9XCIwLDAgMzIsMCAxNiwyNFwiIHN0eWxlPVwiZmlsbDogI3skcmdifVwiPjwvcG9seWdvbj48L3N2Zz4nKTtcblxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjBcXDApIHtcbiAgICBAaWYgbGlnaHRuZXNzKCRjb2xvcikgPCA1MCUge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUNBQUFBQVlDQVlBQUFDYlUvODBBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQUlwSlJFRlVlTnJFa2NrTmdEQU1CQmZSa0V0ME9iUkJCZHNHWFVEZ21RZks0WGhIMm04Y3pRQUF5MjdSM3RzdzRRZmUyeDh1T082b1lMYjZHbE9vcjNHRitzd1VSQU9tVUorUnd0RUpzOVd2VEdFWXhCWHFJMU1RQVpoQ2ZVUUtSekRNVmorVHdyQUlWNmp2U1VFa1lBcjFMU2tjeVRCYi9WK0tZZlg3eEFldXNxM3NMRHRHSDNrRUdBQ1BXSWZsTlpmaFJRQUFBQUJKUlU1RXJrSmdnZz09Jyk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFDQUFBQUFZQ0FZQUFBQ2JVLzgwQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUFNQkpSRUZVZU5yRWxsc09oQ0FNUlZzekM5SWx6VTdLQ21WSFRKc29NV1lNVXRweXY5QmdidVhRQjVaU2RnQllZWTR5Y2dCaXZrOEtZRnNRTWZNaVRUQlA0bzNuVXpDS3pPYWJMSmJMeTIvZzMxZXZHa0FnaW5SNC9aZWdLSDVxWDNiSkNzY0EzdDB4M2tnTzV0UUZ5aGhGZjUweFJxRkxieU1VTkpRemd5akdTL3dnQ3B2S3FrUkJwdVdyRTRWOWQrMUU0ZFBVWHFJZzEwN1NRT0UvMkRSUXhNd1REeWdJSW5WREVUOVQzbENvai82ai9WQ21HalpPbDJsS3BaOEFBd0RRUDd6SWltREdGUUFBQUFCSlJVNUVya0pnZ2c9PScpO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQXBwbGllcyB0aGUgbWljcm8gY2xlYXJmaXggaGFjayBwb3B1bGFyaXplZCBieSBOaWNvbGFzIEdhbGxhZ2hlci4gSW5jbHVkZSB0aGlzIG1peGluIG9uIGEgY29udGFpbmVyIGlmIGl0cyBjaGlsZHJlbiBhcmUgYWxsIGZsb2F0ZWQsIHRvIGdpdmUgdGhlIGNvbnRhaW5lciBhIHByb3BlciBoZWlnaHQuXG4vLy8gQGxpbmsgaHR0cDovL25pY29sYXNnYWxsYWdoZXIuY29tL21pY3JvLWNsZWFyZml4LWhhY2svIE1pY3JvIENsZWFyZml4IEhhY2tcbkBtaXhpbiBjbGVhcmZpeCB7XG4gICY6OmJlZm9yZSxcbiAgJjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcgJztcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgfVxuXG4gICY6OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDtcbiAgfVxufVxuXG4vLy8gQWRkcyBDU1MgZm9yIGEgXCJxdWFudGl0eSBxdWVyeVwiIHNlbGVjdG9yIHRoYXQgYXV0b21hdGljYWxseSBzaXplcyBlbGVtZW50cyBiYXNlZCBvbiBob3cgbWFueSB0aGVyZSBhcmUgaW5zaWRlIGEgY29udGFpbmVyLlxuLy8vIEBsaW5rIGh0dHA6Ly9hbGlzdGFwYXJ0LmNvbS9hcnRpY2xlL3F1YW50aXR5LXF1ZXJpZXMtZm9yLWNzcyBRdWFudGl0eSBRdWVyaWVzIGZvciBDU1Ncbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbWF4IC0gTWF4aW11bSBudW1iZXIgb2YgaXRlbXMgdG8gZGV0ZWN0LiBUaGUgaGlnaGVyIHRoaXMgbnVtYmVyIGlzLCB0aGUgbW9yZSBDU1MgdGhhdCdzIHJlcXVpcmVkIHRvIGNvdmVyIGVhY2ggbnVtYmVyIG9mIGl0ZW1zLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGVsZW0gW2xpXSAtIFRhZyB0byB1c2UgZm9yIHNpYmxpbmcgc2VsZWN0b3JzLlxuQG1peGluIGF1dG8td2lkdGgoJG1heCwgJGVsZW06IGxpKSB7XG4gIEBmb3IgJGkgZnJvbSAyIHRocm91Z2ggJG1heCB7XG4gICAgJjpudGgtbGFzdC1jaGlsZCgjeyRpfSk6Zmlyc3QtY2hpbGQsXG4gICAgJjpudGgtbGFzdC1jaGlsZCgjeyRpfSk6Zmlyc3QtY2hpbGQgfiAjeyRlbGVtfSB7XG4gICAgICB3aWR0aDogcGVyY2VudGFnZSgxIC8gJGkpO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gUmVtb3ZlcyB0aGUgZm9jdXMgcmluZyBhcm91bmQgYW4gZWxlbWVudCB3aGVuIGEgbW91c2UgaW5wdXQgaXMgZGV0ZWN0ZWQuXG5AbWl4aW4gZGlzYWJsZS1tb3VzZS1vdXRsaW5lIHtcbiAgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddICYge1xuICAgIG91dGxpbmU6IDA7XG4gIH1cbn1cblxuLy8vIE1ha2VzIGFuIGVsZW1lbnQgdmlzdWFsbHkgaGlkZGVuLCBidXQgc3RpbGwgYWNjZXNzaWJsZSB0byBrZXlib2FyZHMgYW5kIGFzc2lzdGl2ZSBkZXZpY2VzLlxuLy8vIEBsaW5rIGh0dHA6Ly9zbm9vay5jYS9hcmNoaXZlcy9odG1sX2FuZF9jc3MvaGlkaW5nLWNvbnRlbnQtZm9yLWFjY2Vzc2liaWxpdHkgSGlkaW5nIENvbnRlbnQgZm9yIEFjY2Vzc2liaWxpdHlcbkBtaXhpbiBlbGVtZW50LWludmlzaWJsZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICB3aWR0aDogMXB4O1xuICBoZWlnaHQ6IDFweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcbn1cblxuLy8vIFJldmVyc2VzIHRoZSBDU1Mgb3V0cHV0IGNyZWF0ZWQgYnkgdGhlIGBlbGVtZW50LWludmlzaWJsZSgpYCBtaXhpbi5cbkBtaXhpbiBlbGVtZW50LWludmlzaWJsZS1vZmYge1xuICBwb3NpdGlvbjogc3RhdGljICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogYXV0bztcbiAgd2lkdGg6IGF1dG87XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICBjbGlwOiBhdXRvO1xufVxuXG4vLy8gVmVydGljYWxseSBjZW50ZXJzIHRoZSBlbGVtZW50IGluc2lkZSBvZiBpdHMgZmlyc3Qgbm9uLXN0YXRpYyBwYXJlbnQsXG4vLy8gQGxpbmsgaHR0cDovL3d3dy5zaXRlcG9pbnQuY29tL2NlbnRlcmluZy13aXRoLXNhc3MvIENlbnRlcmluZyBXaXRoIFNhc3NcbkBtaXhpbiB2ZXJ0aWNhbC1jZW50ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG59XG5cbi8vLyBIb3Jpem9udGFsbHkgY2VudGVycyB0aGUgZWxlbWVudCBpbnNpZGUgb2YgaXRzIGZpcnN0IG5vbi1zdGF0aWMgcGFyZW50LFxuLy8vIEBsaW5rIGh0dHA6Ly93d3cuc2l0ZXBvaW50LmNvbS9jZW50ZXJpbmctd2l0aC1zYXNzLyBDZW50ZXJpbmcgV2l0aCBTYXNzXG5AbWl4aW4gaG9yaXpvbnRhbC1jZW50ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xufVxuXG4vLy8gQWJzb2x1dGVseSBjZW50ZXJzIHRoZSBlbGVtZW50IGluc2lkZSBvZiBpdHMgZmlyc3Qgbm9uLXN0YXRpYyBwYXJlbnQsXG4vLy8gQGxpbmsgaHR0cDovL3d3dy5zaXRlcG9pbnQuY29tL2NlbnRlcmluZy13aXRoLXNhc3MvIENlbnRlcmluZyBXaXRoIFNhc3NcbkBtaXhpbiBhYnNvbHV0ZS1jZW50ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xufVxuXG4vLyBSZW1vdmUgaW4gNi4xLlxuLy8gVmVydGljYWxseSBjZW50ZXJzIGFuIGVsZW1lbnQgdXNpbmcgYHRyYW5zZm9ybWAuXG5AbWl4aW4gdi1hbGlnbi1taWRkbGUge1xuICBAaW5jbHVkZSB2ZXJ0aWNhbC1jZW50ZXI7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBhYmlkZVxuLy8vL1xuXG4vLy8gU2V0cyBpZiBlcnJvciBzdHlsZXMgc2hvdWxkIGJlIGFkZGVkIHRvIGlucHV0cy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kYWJpZGUtaW5wdXRzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBpZiBlcnJvciBzdHlsZXMgc2hvdWxkIGJlIGFkZGVkIHRvIGxhYmVscy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kYWJpZGUtbGFiZWxzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciB0byB1c2UgZm9yIGludmFsaWQgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1iYWNrZ3JvdW5kLWludmFsaWQ6ICRhbGVydC1jb2xvciAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHRvIHVzZSBmb3IgbGFiZWxzIG9mIGludmFsaWQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kZm9ybS1sYWJlbC1jb2xvci1pbnZhbGlkOiAkYWxlcnQtY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgY29sb3IgZm9yIGZvcm0gZXJyb3IgdGV4dC5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWVycm9yLWNvbG9yOiAkYWxlcnQtY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBmb3IgZm9ybSBlcnJvciB0ZXh0LlxuLy8vIEB0eXBlIE51bWJlclxuJGlucHV0LWVycm9yLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHdlaWdodCBmb3IgZm9ybSBlcnJvciB0ZXh0LlxuLy8vIEB0eXBlIEtleXdvcmRcbiRpbnB1dC1lcnJvci1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZCAhZGVmYXVsdDtcblxuLy8vIFN0eWxlcyB0aGUgYmFja2dyb3VuZCBhbmQgYm9yZGVyIG9mIGFuIGlucHV0IGZpZWxkIHRvIGhhdmUgYW4gZXJyb3Igc3RhdGUuXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZCBbJGFsZXJ0LWNvbG9yXSAtIENvbG9yIHRvIHVzZSBmb3IgdGhlIGJhY2tncm91bmQgYW5kIGJvcmRlci5cbkBtaXhpbiBmb3JtLWlucHV0LWVycm9yKFxuICAkYmFja2dyb3VuZDogJGFsZXJ0LWNvbG9yXG4pIHtcbiAgJjpub3QoOmZvY3VzKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkYmFja2dyb3VuZCwgMC4xKTtcbiAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kO1xuICB9XG59XG5cbi8vLyBBZGRzIGVycm9yIHN0eWxlcyB0byBhIGZvcm0gZWxlbWVudCwgdXNpbmcgdGhlIHZhbHVlcyBpbiB0aGUgc2V0dGluZ3MgZmlsZS5cbkBtaXhpbiBmb3JtLWVycm9yIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgbWFyZ2luLXRvcDogJGZvcm0tc3BhY2luZyAqIC0wLjU7XG4gIG1hcmdpbi1ib3R0b206ICRmb3JtLXNwYWNpbmc7XG4gIGZvbnQtc2l6ZTogJGlucHV0LWVycm9yLWZvbnQtc2l6ZTtcbiAgZm9udC13ZWlnaHQ6ICRpbnB1dC1lcnJvci1mb250LXdlaWdodDtcbiAgY29sb3I6ICRpbnB1dC1lcnJvci1jb2xvcjtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1lcnJvciB7XG4gIEBpZiAkYWJpZGUtaW5wdXRzIHtcbiAgICAvLyBFcnJvciBjbGFzcyBmb3IgaW52YWxpZCBpbnB1dHNcbiAgICAuaXMtaW52YWxpZC1pbnB1dCB7XG4gICAgICBAaW5jbHVkZSBmb3JtLWlucHV0LWVycm9yO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkYWJpZGUtbGFiZWxzIHtcbiAgICAvLyBFcnJvciBjbGFzcyBmb3IgbGFiZWxzIG9mIGludmFsaWQgb3V0cHV0c1xuICAgIC5pcy1pbnZhbGlkLWxhYmVsIHtcbiAgICAgIGNvbG9yOiAkZm9ybS1sYWJlbC1jb2xvci1pbnZhbGlkO1xuICAgIH1cbiAgfVxuXG4gIC8vIEZvcm0gZXJyb3IgZWxlbWVudFxuICAuZm9ybS1lcnJvciB7XG4gICAgQGluY2x1ZGUgZm9ybS1lcnJvcjtcblxuICAgICYuaXMtdmlzaWJsZSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8gSGlkZSBhbiBlbGVtZW50IGJ5IGRlZmF1bHQsIG9ubHkgZGlzcGxheWluZyBpdCBhYm92ZSBhIGNlcnRhaW4gc2NyZWVuIHNpemUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSAtIEJyZWFrcG9pbnQgdG8gdXNlLiAqKk11c3QgYmUgYSBicmVha3BvaW50IGRlZmluZWQgaW4gYCRicmVha3BvaW50c2AuKipcbkBtaXhpbiBzaG93LWZvcigkc2l6ZSkge1xuICAkc2l6ZTogbWFwLWdldCgkYnJlYWtwb2ludHMsICRzaXplKTtcbiAgJHNpemU6IC16Zi1icC10by1lbSgkc2l6ZSkgLSAoMS8xNik7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSBkb3duKSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbi8vLyBIaWRlIGFuIGVsZW1lbnQgYnkgZGVmYXVsdCwgb25seSBkaXNwbGF5aW5nIGl0IHdpdGhpbiBhIGNlcnRhaW4gYnJlYWtwb2ludC5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIC0gQnJlYWtwb2ludCB0byB1c2UuICoqTXVzdCBiZSBhIGJyZWFrcG9pbnQgZGVmaW5lZCBpbiBgJGJyZWFrcG9pbnRzYC4qKlxuQG1peGluIHNob3ctZm9yLW9ubHkoJHNpemUpIHtcbiAgJGxvd2VyLWJvdW5kLXNpemU6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkc2l6ZSk7XG4gICR1cHBlci1ib3VuZC1zaXplOiAtemYtbWFwLW5leHQoJGJyZWFrcG9pbnRzLCAkc2l6ZSk7XG5cbiAgLy8gbW9yZSBvZnRlbiB0aGFuIG5vdCB0aGlzIHdpbGwgYmUgY29ycmVjdCwganVzdCBvbmUgdGltZSByb3VuZCB0aGUgbG9vcCBpdCB3b24ndCBzbyBzZXQgaW4gc2NvcGUgaGVyZVxuICAkbG93ZXItYm91bmQ6IC16Zi1icC10by1lbSgkbG93ZXItYm91bmQtc2l6ZSkgLSAoMS8xNik7XG4gIC8vIHRlc3QgYWN0dWFsIGxvd2VyLWJvdW5kLXNpemUsIGlmIDAgc2V0IGl0IHRvIDBlbVxuICBAaWYgJGxvd2VyLWJvdW5kLXNpemUgPT0gMCB7XG4gICAgJGxvd2VyLWJvdW5kOiAtemYtYnAtdG8tZW0oJGxvd2VyLWJvdW5kLXNpemUpO1xuICB9XG5cbiAgQGlmICR1cHBlci1ib3VuZC1zaXplID09IG51bGwge1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRsb3dlci1ib3VuZCkge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgJHVwcGVyLWJvdW5kOiAtemYtYnAtdG8tZW0oJHVwcGVyLWJvdW5kLXNpemUpO1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRsb3dlci1ib3VuZCksIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJHVwcGVyLWJvdW5kKSB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG5cblxuLy8vIFNob3cgYW4gZWxlbWVudCBieSBkZWZhdWx0LCBhbmQgaGlkZSBpdCBhYm92ZSBhIGNlcnRhaW4gc2NyZWVuIHNpemUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSAtIEJyZWFrcG9pbnQgdG8gdXNlLiAqKk11c3QgYmUgYSBicmVha3BvaW50IGRlZmluZWQgaW4gYCRicmVha3BvaW50c2AuKipcbkBtaXhpbiBoaWRlLWZvcigkc2l6ZSkge1xuICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbi8vLyBTaG93IGFuIGVsZW1lbnQgYnkgZGVmYXVsdCwgYW5kIGhpZGUgaXQgYWJvdmUgYSBjZXJ0YWluIHNjcmVlbiBzaXplLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpemUgLSBCcmVha3BvaW50IHRvIHVzZS4gKipNdXN0IGJlIGEgYnJlYWtwb2ludCBkZWZpbmVkIGluIGAkYnJlYWtwb2ludHNgLioqXG5AbWl4aW4gaGlkZS1mb3Itb25seSgkc2l6ZSkge1xuICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplIG9ubHkpIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tdmlzaWJpbGl0eS1jbGFzc2VzIHtcbiAgLy8gQmFzaWMgaGlkaW5nIGNsYXNzZXNcbiAgLmhpZGUge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5pbnZpc2libGUge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgfVxuXG4gIC8vIFJlc3BvbnNpdmUgdmlzaWJpbGl0eSBjbGFzc2VzXG4gIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgIEBpZiAkc2l6ZSAhPSBzbWFsbCB7XG4gICAgICAuaGlkZS1mb3ItI3skc2l6ZX0ge1xuICAgICAgICBAaW5jbHVkZSBoaWRlLWZvcigkc2l6ZSk7XG4gICAgICB9XG5cbiAgICAgIC5zaG93LWZvci0jeyRzaXplfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3ctZm9yKCRzaXplKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuaGlkZS1mb3ItI3skc2l6ZX0tb25seSB7XG4gICAgICBAaW5jbHVkZSBoaWRlLWZvci1vbmx5KCRzaXplKTtcbiAgICB9XG5cbiAgICAuc2hvdy1mb3ItI3skc2l6ZX0tb25seSB7XG4gICAgICBAaW5jbHVkZSBzaG93LWZvci1vbmx5KCRzaXplKTtcbiAgICB9XG4gIH1cblxuICAvLyBTY3JlZW4gcmVhZGVyIHZpc2liaWxpdHkgY2xhc3Nlc1xuICAvLyBOZWVkIGEgXCJoaWRlLWZvci1zclwiIGNsYXNzPyBBZGQgYXJpYS1oaWRkZW49J3RydWUnIHRvIHRoZSBlbGVtZW50XG4gIC5zaG93LWZvci1zcixcbiAgLnNob3ctb24tZm9jdXMge1xuICAgIEBpbmNsdWRlIGVsZW1lbnQtaW52aXNpYmxlO1xuICB9XG5cbiAgLy8gT25seSBkaXNwbGF5IHRoZSBlbGVtZW50IHdoZW4gaXQncyBmb2N1c2VkXG4gIC5zaG93LW9uLWZvY3VzIHtcbiAgICAmOmFjdGl2ZSxcbiAgICAmOmZvY3VzIHtcbiAgICAgIEBpbmNsdWRlIGVsZW1lbnQtaW52aXNpYmxlLW9mZjtcbiAgICB9XG4gIH1cblxuICAvLyBMYW5kc2NhcGUgYW5kIHBvcnRyYWl0IHZpc2liaWxpdHlcbiAgLnNob3ctZm9yLWxhbmRzY2FwZSxcbiAgLmhpZGUtZm9yLXBvcnRyYWl0IHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYW5kc2NhcGUpIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChwb3J0cmFpdCkge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gIC5oaWRlLWZvci1sYW5kc2NhcGUsXG4gIC5zaG93LWZvci1wb3J0cmFpdCB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYW5kc2NhcGUpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHBvcnRyYWl0KSB7XG4gICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgYnJlYWRjcnVtYnNcbi8vLy9cblxuLy8vIE1hcmdpbiBhcm91bmQgYSBicmVhZGNydW1icyBjb250YWluZXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnJlYWRjcnVtYnMtbWFyZ2luOiAwIDAgJGdsb2JhbC1tYXJnaW4gMCAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBvZiBicmVhZGNydW1iIGxpbmtzLlxuLy8vIEB0eXBlIE51bWJlclxuJGJyZWFkY3J1bWJzLWl0ZW0tZm9udC1zaXplOiByZW0tY2FsYygxMSkgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiBicmVhZGNydW1iIGxpbmtzLlxuLy8vIEB0eXBlIENvbG9yXG4kYnJlYWRjcnVtYnMtaXRlbS1jb2xvcjogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiB0aGUgYWN0aXZlIGJyZWFkY3J1bWIgbGluay5cbi8vLyBAdHlwZSBDb2xvclxuJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3ItY3VycmVudDogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gT3BhY2l0eSBvZiBkaXNhYmxlZCBicmVhZGNydW1iIGxpbmtzLlxuLy8vIEB0eXBlIE51bWJlclxuJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3ItZGlzYWJsZWQ6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIE1hcmdpbiBiZXR3ZWVuIGJyZWFkY3J1bWIgaXRlbXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnJlYWRjcnVtYnMtaXRlbS1tYXJnaW46IDAuNzVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBJZiBgdHJ1ZWAsIG1ha2VzIGJyZWFkY3J1bWIgbGlua3MgdXBwZXJjYXNlLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRicmVhZGNydW1icy1pdGVtLXVwcGVyY2FzZTogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIElmIGB0cnVlYCwgYWRkcyBhIHNsYXNoIGJldHdlZW4gYnJlYWRjcnVtYiBsaW5rcy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kYnJlYWRjcnVtYnMtaXRlbS1zbGFzaDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIGJyZWFkY3J1bWJzIGNvbnRhaW5lciwgYWxvbmcgd2l0aCB0aGUgc3R5bGVzIGZvciB0aGUgYDxsaT5gIGFuZCBgPGE+YCBlbGVtZW50cyBpbnNpZGUgb2YgaXQuXG5AbWl4aW4gYnJlYWRjcnVtYnMtY29udGFpbmVyIHtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG1hcmdpbjogJGJyZWFkY3J1bWJzLW1hcmdpbjtcblxuICAvLyBJdGVtIHdyYXBwZXJcbiAgbGkge1xuICAgIGZsb2F0OiAjeyRnbG9iYWwtbGVmdH07XG4gICAgY29sb3I6ICRicmVhZGNydW1icy1pdGVtLWNvbG9yLWN1cnJlbnQ7XG4gICAgZm9udC1zaXplOiAkYnJlYWRjcnVtYnMtaXRlbS1mb250LXNpemU7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgQGlmICRicmVhZGNydW1icy1pdGVtLXVwcGVyY2FzZSB7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIH1cblxuICAgIEBpZiAkYnJlYWRjcnVtYnMtaXRlbS1zbGFzaCB7XG4gICAgICAvLyBOZWVkIHRvIGVzY2FwZSB0aGUgYmFja3NsYXNoXG4gICAgICAkc2xhc2g6IGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gJ2x0cicsICcvJywgJ1xcXFwnKTtcblxuICAgICAgJjpub3QoOmxhc3QtY2hpbGQpOjphZnRlciB7XG4gICAgICAgIGNvbG9yOiAkbWVkaXVtLWdyYXk7XG4gICAgICAgIGNvbnRlbnQ6ICRzbGFzaDtcbiAgICAgICAgbWFyZ2luOiAwICRicmVhZGNydW1icy1pdGVtLW1hcmdpbjtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB0b3A6IDFweDtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRicmVhZGNydW1icy1pdGVtLW1hcmdpbjtcbiAgICB9XG4gIH1cblxuICAvLyBQYWdlIGxpbmtzXG4gIGEge1xuICAgIGNvbG9yOiAkYnJlYWRjcnVtYnMtaXRlbS1jb2xvcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWJyZWFkY3J1bWJzIHtcbiAgLmJyZWFkY3J1bWJzIHtcbiAgICBAaW5jbHVkZSBicmVhZGNydW1icy1jb250YWluZXI7XG5cbiAgICAuZGlzYWJsZWQge1xuICAgICAgY29sb3I6ICRicmVhZGNydW1icy1pdGVtLWNvbG9yLWRpc2FibGVkO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgY2FsbG91dFxuLy8vL1xuXG4vLy8gRGVmdWFsdCBiYWNrZ3JvdW5kIGNvbG9yLlxuLy8vIEB0eXBlIENvbG9yXG4kY2FsbG91dC1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZhZGUgdmFsdWUgZm9yIGNhbGxvdXQgYmFja2dyb3VuZHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kY2FsbG91dC1iYWNrZ3JvdW5kLWZhZGU6IDg1JSAhZGVmYXVsdDtcblxuLy8vIERlZnVhbHQgYm9yZGVyIHN0eWxlIGZvciBjYWxsb3V0cy5cbi8vLyBAdHlwZSBMaXN0XG4kY2FsbG91dC1ib3JkZXI6IDFweCBzb2xpZCByZ2JhKCRibGFjaywgMC4yNSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvdHRvbSBtYXJnaW4gZm9yIGNhbGxvdXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGNhbGxvdXQtbWFyZ2luOiAwIDAgMXJlbSAwICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBpbm5lciBwYWRkaW5nIGZvciBjYWxsb3V0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRjYWxsb3V0LXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgY29sb3IgZm9yIGNhbGxvdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kY2FsbG91dC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IGNvbG9yIGZvciBjYWxsb3V0cywgaWYgdGhlIGNhbGxvdXQgaGFzIGEgZGFyayBiYWNrZ3JvdW5kLlxuLy8vIEB0eXBlIENvbG9yXG4kY2FsbG91dC1mb250LWNvbG9yLWFsdDogJGJvZHktYmFja2dyb3VuZCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm9yZGVyIHJhZGl1cyBmb3IgY2FsbG91dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRjYWxsb3V0LXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBBbW91bnQgdG8gdGludCBsaW5rcyB1c2VkIHdpdGhpbiBjb2xvcmVkIHBhbmVscy4gU2V0IHRvIGBmYWxzZWAgdG8gZGlzYWJsZSB0aGlzIGZlYXR1cmUuXG4vLy8gQHR5cGUgTnVtYmVyIHwgQm9vbGVhblxuJGNhbGxvdXQtbGluay10aW50OiAzMCUgIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIGJhc2ljIHN0eWxlcyBmb3IgYSBjYWxsb3V0LCBpbmNsdWRpbmcgcGFkZGluZyBhbmQgbWFyZ2luLlxuQG1peGluIGNhbGxvdXQtYmFzZSgpIHtcbiAgbWFyZ2luOiAkY2FsbG91dC1tYXJnaW47XG4gIHBhZGRpbmc6ICRjYWxsb3V0LXBhZGRpbmc7XG4gIGJvcmRlcjogJGNhbGxvdXQtYm9yZGVyO1xuICBib3JkZXItcmFkaXVzOiAkY2FsbG91dC1yYWRpdXM7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgY29sb3I6ICRjYWxsb3V0LWZvbnQtY29sb3I7XG5cbiAgLy8gUmVzcGVjdCB0aGUgcGFkZGluZywgZm9vbC5cbiAgPiA6Zmlyc3QtY2hpbGQge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gIH1cblxuICA+IDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG5cbi8vLyBHZW5lcmF0ZSBxdWljayBzdHlsZXMgZm9yIGEgY2FsbG91dCB1c2luZyBhIHNpbmdsZSBjb2xvciBhcyBhIGJhc2VsaW5lLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGNhbGxvdXQtYmFja2dyb3VuZF0gLSBDb2xvciB0byB1c2UuXG5AbWl4aW4gY2FsbG91dC1zdHlsZSgkY29sb3I6ICRjYWxsb3V0LWJhY2tncm91bmQpIHtcbiAgJGJhY2tncm91bmQ6IHNjYWxlLWNvbG9yKCRjb2xvciwgJGxpZ2h0bmVzczogJGNhbGxvdXQtYmFja2dyb3VuZC1mYWRlKTtcblxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbn1cblxuQG1peGluIGNhbGxvdXQtc2l6ZSgkcGFkZGluZykge1xuICBwYWRkaW5nLXRvcDogJHBhZGRpbmc7XG4gIHBhZGRpbmctcmlnaHQ6ICRwYWRkaW5nO1xuICBwYWRkaW5nLWJvdHRvbTogJHBhZGRpbmc7XG4gIHBhZGRpbmctbGVmdDogJHBhZGRpbmc7XG59XG5cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIGNhbGxvdXQuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskY2FsbG91dC1iYWNrZ3JvdW5kXSAtIENvbG9yIHRvIHVzZS5cbkBtaXhpbiBjYWxsb3V0KCRjb2xvcjogJGNhbGxvdXQtYmFja2dyb3VuZCkge1xuICBAaW5jbHVkZSBjYWxsb3V0LWJhc2U7XG4gIEBpbmNsdWRlIGNhbGxvdXQtc3R5bGUoJGNvbG9yKTtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tY2FsbG91dCB7XG4gIC5jYWxsb3V0IHtcbiAgICBAaW5jbHVkZSBjYWxsb3V0O1xuXG4gICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkZm91bmRhdGlvbi1jb2xvcnMge1xuICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGNhbGxvdXQtc3R5bGUoJGNvbG9yKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLnNtYWxsIHtcbiAgICAgIEBpbmNsdWRlIGNhbGxvdXQtc2l6ZSguNXJlbSk7XG4gICAgfVxuXG4gICAgJi5sYXJnZSB7XG4gICAgICBAaW5jbHVkZSBjYWxsb3V0LXNpemUoM3JlbSk7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBjbG9zZS1idXR0b25cbi8vLy9cblxuLy8vIERlZmF1bHQgcG9zaXRpb24gb2YgdGhlIGNsb3NlIGJ1dHRvbi4gVGhlIGZpcnN0IHZhbHVlIHNob3VsZCBiZSBgcmlnaHRgIG9yIGBsZWZ0YCwgYW5kIHRoZSBzZWNvbmQgdmFsdWUgc2hvdWxkIGJlIGB0b3BgIG9yIGBib3R0b21gLlxuLy8vIEB0eXBlIExpc3RcbiRjbG9zZWJ1dHRvbi1wb3NpdGlvbjogcmlnaHQgdG9wICFkZWZhdWx0O1xuXG4vLy8gUmlnaHQgKG9yIGxlZnQpIG9mZnNldCBmb3IgYSBjbG9zZSBidXR0b24uXG4vLy8gQHR5cGUgTnVtYmVyXG4kY2xvc2VidXR0b24tb2Zmc2V0LWhvcml6b250YWw6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBUb3AgKG9yIGJvdHRvbSkgb2Zmc2V0IGZvciBhIGNsb3NlIGJ1dHRvbi5cbi8vLyBAdHlwZSBOdW1iZXJcbiRjbG9zZWJ1dHRvbi1vZmZzZXQtdmVydGljYWw6IDAuNXJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBzaXplIG9mIHRoZSBjbG9zZSBidXR0b24uXG4vLy8gQHR5cGUgTnVtYmVyXG4kY2xvc2VidXR0b24tc2l6ZTogMmVtICFkZWZhdWx0O1xuXG4vLy8gVGhlIGxpbmUtaGVpZ2h0IG9mIHRoZSBjbG9zZSBidXR0b24uIEl0IGFmZmVjdHMgdGhlIHNwYWNpbmcgb2YgdGhlIGVsZW1lbnQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kY2xvc2VidXR0b24tbGluZWhlaWdodDogMSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3Igb2YgdGhlIGNsb3NlIGJ1dHRvbi5cbi8vLyBAdHlwZSBDb2xvclxuJGNsb3NlYnV0dG9uLWNvbG9yOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBvZiB0aGUgY2xvc2UgYnV0dG9uIHdoZW4gYmVpbmcgaG92ZXJlZCBvbi5cbi8vLyBAdHlwZSBDb2xvclxuJGNsb3NlYnV0dG9uLWNvbG9yLWhvdmVyOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBjbG9zZSBidXR0b24sIHVzaW5nIHRoZSBzdHlsZXMgaW4gdGhlIHNldHRpbmdzIHZhcmlhYmxlcy5cbkBtaXhpbiBjbG9zZS1idXR0b24ge1xuICAkeDogbnRoKCRjbG9zZWJ1dHRvbi1wb3NpdGlvbiwgMSk7XG4gICR5OiBudGgoJGNsb3NlYnV0dG9uLXBvc2l0aW9uLCAyKTtcblxuICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29sb3I6ICRjbG9zZWJ1dHRvbi1jb2xvcjtcbiAgI3skeH06ICRjbG9zZWJ1dHRvbi1vZmZzZXQtaG9yaXpvbnRhbDtcbiAgI3skeX06ICRjbG9zZWJ1dHRvbi1vZmZzZXQtdmVydGljYWw7XG4gIGZvbnQtc2l6ZTogJGNsb3NlYnV0dG9uLXNpemU7XG4gIGxpbmUtaGVpZ2h0OiAkY2xvc2VidXR0b24tbGluZWhlaWdodDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIGNvbG9yOiAkY2xvc2VidXR0b24tY29sb3ItaG92ZXI7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tY2xvc2UtYnV0dG9uIHtcbiAgLmNsb3NlLWJ1dHRvbiB7XG4gICAgQGluY2x1ZGUgY2xvc2UtYnV0dG9uO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBkcmlsbGRvd25cbi8vLy9cblxuLy8vIFRyYW5zaXRpb24gcHJvcGVydHkgdG8gdXNlIGZvciBhbmltYXRpbmcgbWVudXMuXG4vLy8gQHR5cGUgVHJhbnNpdGlvblxuJGRyaWxsZG93bi10cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNXMgbGluZWFyICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBhcnJvd3MgdG8gZHJpbGxkb3duIGl0ZW1zIHdpdGggc3VibWVudXMsIGFzIHdlbGwgYXMgdGhlIGJhY2sgYnV0dG9uLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRkcmlsbGRvd24tYXJyb3dzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgZHJpbGxkb3duIHN1Ym1lbnVzLlxuLy8vIEB0eXBlIENvbG9yXG4kZHJpbGxkb3duLWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuQG1peGluIGZvdW5kYXRpb24tZHJpbGxkb3duLW1lbnUge1xuICAvLyBBcHBsaWVkIHRvIHRoZSBNZW51IGNvbnRhaW5lclxuICAuaXMtZHJpbGxkb3duIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxuXG4gIC8vIEFwcGxpZWQgdG8gbmVzdGVkIDx1bD5zXG4gIC5pcy1kcmlsbGRvd24tc3VibWVudSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICAjeyRnbG9iYWwtbGVmdH06IDEwMCU7XG4gICAgei1pbmRleDogLTE7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJhY2tncm91bmQ6ICRkcmlsbGRvd24tYmFja2dyb3VuZDtcbiAgICB0cmFuc2l0aW9uOiAkZHJpbGxkb3duLXRyYW5zaXRpb247XG5cbiAgICAmLmlzLWFjdGl2ZSB7XG4gICAgICB6LWluZGV4OiAxO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBsdHIsIC0xMDAlLCAxMDAlKSk7XG4gICAgfVxuXG4gICAgJi5pcy1jbG9zaW5nIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWChpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IGx0ciwgMTAwJSwgLTEwMCUpKTtcbiAgICB9XG4gIH1cblxuICBAaWYgJGRyaWxsZG93bi1hcnJvd3Mge1xuICAgIC5pcy1kcmlsbGRvd24tc3VibWVudS1wYXJlbnQgPiBhIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoNnB4LCAkcHJpbWFyeS1jb2xvciwgJGdsb2JhbC1yaWdodCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIG1hcmdpbi10b3A6IC02cHg7XG4gICAgICAgICN7JGdsb2JhbC1yaWdodH06IDFyZW07XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmpzLWRyaWxsZG93bi1iYWNrOjpiZWZvcmUge1xuICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKDZweCwgJHByaW1hcnktY29sb3IsICRnbG9iYWwtbGVmdCk7XG4gICAgICBmbG9hdDogJGdsb2JhbC1sZWZ0O1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06IDAuNzVyZW07IC8vIENyZWF0ZXMgc3BhY2UgYmV0d2VlbiB0aGUgYXJyb3cgYW5kIHRoZSB0ZXh0XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAwLjZyZW07IC8vIExpbmVzIHRoZSB0aXAgb2YgdGhlIGFycm93IHdpdGggdGhlIGl0ZW1zIGJlbG93XG4gICAgICBtYXJnaW4tdG9wOiAxNHB4OyAvLyBBbGlnbnMgdGhlIGFycm93IHdpdGggdGhlIHRleHRcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGRyb3Bkb3duXG4vLy8vXG5cbi8vLyBQYWRkaW5nIGZvciBkcm9wZG93biBwYW5lcy5cbi8vLyBAdHlwZSBMaXN0XG4kZHJvcGRvd24tcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBmb3IgZHJvcGRvd24gcGFuZXMuXG4vLy8gQHR5cGUgTGlzdFxuJGRyb3Bkb3duLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBmb3IgZHJvcGRvd24gcGFuZXMuXG4vLy8gQHR5cGUgTGlzdFxuJGRyb3Bkb3duLWZvbnQtc2l6ZTogMTZyZW0gIWRlZmF1bHQ7XG5cbi8vLyBXaWR0aCBmb3IgZHJvcGRvd24gcGFuZXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZHJvcGRvd24td2lkdGg6IDMwMHB4ICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIHJhZGl1cyBkcm9wZG93biBwYW5lcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRkcm9wZG93bi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gU2l6ZXMgZm9yIGRyb3Bkb3duIHBhbmVzLiBFYWNoIHNpemUgaXMgYSBDU1MgY2xhc3MgeW91IGNhbiBhcHBseS5cbi8vLyBAdHlwZSBNYXBcbiRkcm9wZG93bi1zaXplczogKFxuICB0aW55OiAxMDBweCxcbiAgc21hbGw6IDIwMHB4LFxuICBsYXJnZTogNDAwcHgsXG4pICFkZWZhdWx0O1xuXG4vLy8gQXBwbGllcyBzdHlsZXMgZm9yIGEgYmFzaWMgZHJvcGRvd24uXG5AbWl4aW4gZHJvcGRvd24tY29udGFpbmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJvZHktYmFja2dyb3VuZDtcbiAgYm9yZGVyOiAkZHJvcGRvd24tYm9yZGVyO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogJGRyb3Bkb3duLXBhZGRpbmc7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICB3aWR0aDogMzAwcHg7XG4gIHotaW5kZXg6IDEwO1xuICBib3JkZXItcmFkaXVzOiAkZHJvcGRvd24tcmFkaXVzO1xuXG4gICYuaXMtb3BlbiB7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1kcm9wZG93biB7XG4gIC5kcm9wZG93bi1wYW5lIHtcbiAgICBAaW5jbHVkZSBkcm9wZG93bi1jb250YWluZXI7XG4gIH1cblxuICBAZWFjaCAkbmFtZSwgJHNpemUgaW4gJGRyb3Bkb3duLXNpemVzIHtcbiAgICAuZHJvcGRvd24tcGFuZS4jeyRuYW1lfSB7XG4gICAgICB3aWR0aDogJHNpemU7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBkcm9wZG93bi1tZW51XG4vLy8vXG5cbi8vLyBFbmFibGVzIGFycm93cyBmb3IgaXRlbXMgd2l0aCBkcm9wZG93biBtZW51cy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kZHJvcGRvd25tZW51LWFycm93czogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIE1pbmltdW0gd2lkdGggb2YgZHJvcGRvd24gc3ViLW1lbnVzLlxuLy8vIEB0eXBlIExlbmd0aFxuJGRyb3Bkb3dubWVudS1taW4td2lkdGg6IDIwMHB4ICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgZHJvcGRvd25zLlxuLy8vIEB0eXBlIENvbG9yXG4kZHJvcGRvd25tZW51LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBmb3IgZHJvcGRvd24gcGFuZXMuXG4vLy8gQHR5cGUgTGlzdFxuJGRyb3Bkb3dubWVudS1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWRyb3Bkb3duLW1lbnUge1xuICAuZHJvcGRvd24ubWVudSB7XG4gICAgYSB7XG4gICAgICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gICAgfVxuICAgIC5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgIGE6OmFmdGVyIHtcbiAgICAgICAgZmxvYXQ6ICRnbG9iYWwtcmlnaHQ7XG4gICAgICAgIG1hcmdpbi10b3A6IDNweDtcbiAgICAgICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogMTBweDtcbiAgICAgIH1cblxuICAgICAgQGlmICRkcm9wZG93bm1lbnUtYXJyb3dzIHtcbiAgICAgICAgJi5pcy1kb3duLWFycm93IGEge1xuICAgICAgICAgIHBhZGRpbmctI3skZ2xvYmFsLXJpZ2h0fTogMS41cmVtO1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuICAgICAgICAmLmlzLWRvd24tYXJyb3cgPiBhOjphZnRlciB7XG4gICAgICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKDVweCwgJGFuY2hvci1jb2xvciwgZG93bik7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHRvcDogcmVtLWNhbGMoMnB4KSArIHJlbS1jYWxjKGdldC1zaWRlKCRtZW51LWl0ZW0tcGFkZGluZywgdG9wKSk7XG4gICAgICAgICAgI3skZ2xvYmFsLXJpZ2h0fTogNXB4O1xuICAgICAgICB9XG4gICAgICAgICYuaXMtbGVmdC1hcnJvdyA+IGE6OmFmdGVyIHtcbiAgICAgICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoNXB4LCAkYW5jaG9yLWNvbG9yLCAkZ2xvYmFsLWxlZnQpO1xuICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICAgICAgfVxuICAgICAgICAmLmlzLXJpZ2h0LWFycm93ID4gYTo6YWZ0ZXIge1xuICAgICAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSg1cHgsICRhbmNob3ItY29sb3IsICRnbG9iYWwtcmlnaHQpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYuaXMtbGVmdC1hcnJvdy5vcGVucy1pbm5lciAuc3VibWVudXtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICB9XG4gICAgICAmLmlzLXJpZ2h0LWFycm93Lm9wZW5zLWlubmVyIC5zdWJtZW51e1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogYXV0bztcbiAgICAgIH1cbiAgICAgICYub3BlbnMtaW5uZXIgLnN1Ym1lbnUge1xuICAgICAgICB0b3A6IDEwMCU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm5vLWpzICYgdWwge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAuc3VibWVudSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgbGVmdDogMTAwJTtcbiAgICAgIG1pbi13aWR0aDogJGRyb3Bkb3dubWVudS1taW4td2lkdGg7XG4gICAgICB6LWluZGV4OiAxO1xuICAgICAgYmFja2dyb3VuZDogJGRyb3Bkb3dubWVudS1iYWNrZ3JvdW5kO1xuICAgICAgYm9yZGVyOiAkZHJvcGRvd25tZW51LWJvcmRlcjtcblxuICAgICAgPiBsaSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgfVxuXG4gICAgICAmLmZpcnN0LXN1YiB7XG4gICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICB9XG5cbiAgICAgICY6bm90KC5qcy1kcm9wZG93bi1ub2hvdmVyKSA+IC5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudDpob3ZlciA+ICYsXG4gICAgICAmLmpzLWRyb3Bkb3duLWFjdGl2ZSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudC5vcGVucy1sZWZ0IC5zdWJtZW51IHtcbiAgICAgIGxlZnQ6IGF1dG87XG4gICAgICByaWdodDogMTAwJTtcbiAgICB9XG5cbiAgICAmLmFsaWduLXJpZ2h0IHtcbiAgICAgIC5zdWJtZW51LmZpcnN0LXN1YiB7XG4gICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmlzLWRyb3Bkb3duLW1lbnUudmVydGljYWwge1xuICAgIHdpZHRoOiAxMDBweDtcblxuICAgICYuYWxpZ24tcmlnaHQge1xuICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgIH1cblxuICAgID4gbGkgLnN1Ym1lbnUge1xuICAgICAgdG9wOiAwO1xuICAgICAgbGVmdDogMTAwJTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIG1lbnVcbi8vLy9cblxuLy8vIE1hcmdpbiBvZiBhIG1lbnUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVudS1tYXJnaW46IDAgIWRlZmF1bHQ7XG5cbi8vLyBMZWZ0LWhhbmQgbWFyZ2luIG9mIGEgbmVzdGVkIG1lbnUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVudS1tYXJnaW4tbmVzdGVkOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBmb3IgaXRlbXMgaW4gYSBtZW51LlxuLy8vIEB0eXBlIE51bWJlclxuJG1lbnUtaXRlbS1wYWRkaW5nOiAwLjdyZW0gMXJlbSAhZGVmYXVsdDtcblxuLy8vIFNwYWNpbmcgYmV0d2VlbiBhbiBpY29uIGFuZCB0ZXh0IGluIGEgbWVudSBpdGVtLlxuLy8vIEB0eXBlIE51bWJlclxuJG1lbnUtaWNvbi1zcGFjaW5nOiAwLjI1cmVtICFkZWZhdWx0O1xuXG4vLy8gTWF4aW11bSBudW1iZXIgb2YgYGV4cGFuZC1uYCBjbGFzc2VzIHRvIGluY2x1ZGUgaW4gdGhlIENTUy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRtZW51LWV4cGFuZC1tYXg6IDYgIWRlZmF1bHQ7XG5cbi8vLyBDcmVhdGVzIHRoZSBiYXNlIHN0eWxlcyBmb3IgYSBNZW51LlxuQG1peGluIG1lbnUtYmFzZSB7XG4gIG1hcmdpbjogJG1lbnUtbWFyZ2luO1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG5cbiAgLy8gTGlzdCBpdGVtcyBhcmUgdGFibGUgY2VsbCB0byBhbGxvdyBmb3IgdmVydGljYWwgYWxpZ25tZW50XG4gID4gbGkge1xuICAgIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIH1cblxuICAvLyBSZXNldCBsaW5lIGhlaWdodCB0byBtYWtlIHRoZSBoZWlnaHQgb2YgdGhlIG92ZXJhbGwgaXRlbSBlYXNpZXIgdG8gY2FsY3VsYXRlXG4gID4gbGk6bm90KC5tZW51LXRleHQpID4gYSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogJG1lbnUtaXRlbS1wYWRkaW5nO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICB9XG5cbiAgLy8gUmVzZXQgc3R5bGVzIG9mIGlubmVyIGVsZW1lbnRzXG4gIGlucHV0LFxuICBhLFxuICBidXR0b24ge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuLy8vIEV4cGFuZHMgdGhlIGl0ZW1zIG9mIGEgTWVudSwgc28gZWFjaCBpdGVtIGlzIHRoZSBzYW1lIHdpZHRoLlxuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICRjb3VudCBbYXV0b10gLSBOdW1iZXIgb2YgaXRlbXMgaW4gdGhlIE1lbnUuIFlvdSBjYW4gaGFyZGNvZGUgYSBudW1iZXIsIG9yIHVzZSBgYXV0b2AgdG8gZ2VuZXJhdGUgQ1NTIHRoYXQgd2lsbCBhZGFwdCB0byB0aGUgbnVtYmVyIG9mIGl0ZW1zIGluc2lkZSB0aGUgbWVudS5cbkBtaXhpbiBtZW51LWV4cGFuZCgkY291bnQ6IGF1dG8pIHtcbiAgZGlzcGxheTogdGFibGU7XG4gIHdpZHRoOiAxMDAlO1xuXG4gID4gbGkge1xuICAgIEBpZiAkY291bnQgPT0gYXV0byB7XG4gICAgICBAaW5jbHVkZSBhdXRvLXdpZHRoKCRtZW51LWV4cGFuZC1tYXgpO1xuICAgIH1cbiAgICBAZWxzZSBpZiB0eXBlLW9mKCRjb3VudCkgPT0gJ251bWJlcicge1xuICAgICAgd2lkdGg6IHBlcmNlbnRhZ2UoMSAvICRjb3VudCk7XG4gICAgfVxuICB9XG59XG5cbi8vLyBTZXRzIHRoZSBkaXJlY3Rpb24gb2YgYSBNZW51LlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGRpciBbaG9yaXpvbnRhbF0gLSBEaXJlY3Rpb24gb2YgdGhlIE1lbnUuIENhbiBiZSBgaG9yaXpvbnRhbGAgb3IgYHZlcnRpY2FsYC5cbkBtaXhpbiBtZW51LWRpcmVjdGlvbigkZGlyOiBob3Jpem9udGFsKSB7XG4gIEBpZiAkZGlyID09IGhvcml6b250YWwge1xuICAgID4gbGkge1xuICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJGRpciA9PSB2ZXJ0aWNhbCB7XG4gICAgPiBsaSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIEB3YXJuICdUaGUgZGlyZWN0aW9uIHVzZWQgZm9yIG1lbnUtZGlyZWN0aW9uKCkgbXVzdCBiZSBob3Jpem9udGFsIG9yIHZlcnRpY2FsLic7XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBzaW1wbGUgTWVudSwgd2hpY2ggaGFzIG5vIHBhZGRpbmcgb3IgaG92ZXIgc3RhdGUuXG5AbWl4aW4gbWVudS1zaW1wbGUge1xuICBhIHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiBnZXQtc2lkZSgkbWVudS1pdGVtLXBhZGRpbmcsICRnbG9iYWwtcmlnaHQpO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBuZXN0ZWQgTWVudSwgYnkgYWRkaW5nIGBtYXJnaW4tbGVmdGAgdG8gdGhlIG1lbnUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJHBhZGRpbmcgW2F1dG9dIC0gTGVuZ3RoIG9mIHRoZSBtYXJnaW4uXG5AbWl4aW4gbWVudS1uZXN0ZWQoJG1hcmdpbjogJG1lbnUtbWFyZ2luLW5lc3RlZCkge1xuICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkbWFyZ2luO1xufVxuXG4vLy8gQWRkcyBzdXBwb3J0IGZvciBpY29ucyB0byBNZW51IGl0ZW1zLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHBvc2l0aW9uIFtzaWRlXSAtIFBvc2l0aW9uaW5nIGZvciBpY29ucy4gQ2FuIGJlIGBzaWRlYCAobGVmdCwgb3IgcmlnaHQgb24gUlRMKSBvciBgdG9wYC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRiYXNlIFt0cnVlXSAtIFNldCB0byBgZmFsc2VgIHRvIHByZXZlbnQgdGhlIHNoYXJlZCBDU1MgYmV0d2VlbiBzaWRlLSBhbmQgdG9wLWFsaWduZWQgaWNvbnMgZnJvbSBiZWluZyBwcmludGVkLiBTZXQgdGhpcyB0byBgZmFsc2VgIGlmIHlvdSdyZSBjYWxsaW5nIHRoZSBtaXhpbiBtdWx0aXBsZSB0aW1lcyBvbiB0aGUgc2FtZSBlbGVtZW50LlxuQG1peGluIG1lbnUtaWNvbnMoJHBvc2l0aW9uOiBzaWRlLCAkYmFzZTogdHJ1ZSkge1xuICBAaWYgJGJhc2Uge1xuICAgID4gbGkgPiBhIHtcbiAgICAgID4gaW1nLFxuICAgICAgPiBpIHtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgIH1cblxuICAgICAgPiBzcGFuIHtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaWYgJHBvc2l0aW9uID09IHNpZGUge1xuICAgID4gbGkgPiBhIHtcbiAgICAgID4gaW1nLFxuICAgICAgPiBpIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJG1lbnUtaWNvbi1zcGFjaW5nO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gdG9wIHtcbiAgICA+IGxpID4gYSB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgID4gaW1nLFxuICAgICAgPiBpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvICRtZW51LWljb24tc3BhY2luZztcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1lbnUtdGV4dCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogaW5oZXJpdDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHBhZGRpbmctdG9wOiAwO1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgcGFkZGluZzogJG1lbnUtaXRlbS1wYWRkaW5nO1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1tZW51IHtcbiAgLm1lbnUge1xuICAgIEBpbmNsdWRlIG1lbnUtYmFzZTtcbiAgICBAaW5jbHVkZSBtZW51LWljb25zO1xuXG4gICAgLy8gT3JpZW50YXRpb25cbiAgICBAaW5jbHVkZSBtZW51LWRpcmVjdGlvbihob3Jpem9udGFsKTtcblxuICAgICYudmVydGljYWwge1xuICAgICAgQGluY2x1ZGUgbWVudS1kaXJlY3Rpb24odmVydGljYWwpO1xuICAgIH1cblxuICAgIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgICAgQGlmICRzaXplICE9IHNtYWxsIHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgICAgICYuI3skc2l6ZX0taG9yaXpvbnRhbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZW51LWRpcmVjdGlvbihob3Jpem9udGFsKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAmLiN7JHNpemV9LXZlcnRpY2FsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lbnUtZGlyZWN0aW9uKHZlcnRpY2FsKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTaW1wbGVcbiAgICAmLnNpbXBsZSB7XG4gICAgICBAaW5jbHVkZSBtZW51LXNpbXBsZTtcbiAgICB9XG5cbiAgICAvLyBBbGlnbiByaWdodFxuICAgICYuYWxpZ24tI3skZ2xvYmFsLXJpZ2h0fSB7XG4gICAgICA+IGxpIHtcbiAgICAgICAgZmxvYXQ6ICRnbG9iYWwtcmlnaHQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRXZlbi13aWR0aFxuICAgICYuZXhwYW5kZWQge1xuICAgICAgQGluY2x1ZGUgbWVudS1leHBhbmQ7XG5cbiAgICAgID4gbGk6Zmlyc3QtY2hpbGQ6bGFzdC1jaGlsZCB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFZlcnRpY2FsIGljb25zXG4gICAgJi5pY29uLXRvcCB7XG4gICAgICBAaW5jbHVkZSBtZW51LWljb25zKHRvcCwgJGJhc2U6IGZhbHNlKTtcbiAgICB9XG5cbiAgICAvLyBOZXN0aW5nXG4gICAgJi5uZXN0ZWQge1xuICAgICAgQGluY2x1ZGUgbWVudS1uZXN0ZWQ7XG4gICAgfVxuICB9XG5cbiAgLm1lbnUtdGV4dCB7XG4gICAgQGluY2x1ZGUgbWVudS10ZXh0O1xuICB9XG5cbiAgLy8gUHJldmVudCBGT1VDIHdoZW4gdXNpbmcgdGhlIFJlc3BvbnNpdmUgTWVudSBwbHVnaW5cbiAgLm5vLWpzIFtkYXRhLXJlc3BvbnNpdmUtbWVudV0gdWwge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AbWl4aW4gZm91bmRhdGlvbi1zdGlja3kge1xuICAuc3RpY2t5LWNvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG5cbiAgLnN0aWNreSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLDAsMCk7XG4gIH1cblxuICAuc3RpY2t5LmlzLXN0dWNrIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgei1pbmRleDogNTtcblxuICAgICYuaXMtYXQtdG9wIHtcbiAgICAgIHRvcDogMDtcbiAgICB9XG5cbiAgICAmLmlzLWF0LWJvdHRvbSB7XG4gICAgICBib3R0b206IDA7XG4gICAgfVxuICB9XG5cbiAgLnN0aWNreS5pcy1hbmNob3JlZCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IGF1dG87XG5cbiAgICAmLmlzLWF0LWJvdHRvbSB7XG4gICAgICBib3R0b206IDA7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8gc2Nzcy1saW50OmRpc2FibGUgTWVyZ2VhYmxlU2VsZWN0b3IsIFF1YWxpZnlpbmdFbGVtZW50XG5cbi8vLy9cbi8vLyBAZ3JvdXAgdGFibGVcbi8vLy9cblxuLy8vIERlZnVhbHQgY29sb3IgZm9yIHRhYmxlIGJhY2tncm91bmQuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWJsZS1iYWNrZ3JvdW5kOiAkd2hpdGUgICFkZWZhdWx0O1xuXG4vLy8gRGVmdWFsdCBzY2FsZSBmb3IgZGFya2VuaW5nIHRoZSBzdHJpcGVkIHRhYmxlIHJvd3MgYW5kIHRoZSB0YWJsZSBib3JkZXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdGFibGUtY29sb3Itc2NhbGU6IDUlICFkZWZhdWx0O1xuXG4vLy8gRGVmdWFsdCBzdHlsZSBmb3IgdGFibGUgYm9yZGVyLlxuLy8vIEB0eXBlIExpc3RcbiR0YWJsZS1ib3JkZXI6IDFweCBzb2xpZCBzbWFydC1zY2FsZSgkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlKSAhZGVmYXVsdDtcblxuLy8vIERlZnVhbHQgcGFkZGluZyBmb3IgdGFibGUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdGFibGUtcGFkZGluZzogcmVtLWNhbGMoOCAxMCAxMCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZ1YWx0IHNjYWxlIGZvciBkYXJrZW5pbmcgdGhlIHRhYmxlIHJvd3Mgb24gaG92ZXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdGFibGUtaG92ZXItc2NhbGU6IDIlICFkZWZhdWx0O1xuXG4vLy8gRGVmdWFsdCBjb2xvciBvZiBzdGFuZGFyZCByb3dzIG9uIGhvdmVyLlxuLy8vIEB0eXBlIExpc3RcbiR0YWJsZS1yb3ctaG92ZXI6IGRhcmtlbigkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWhvdmVyLXNjYWxlKSAhZGVmYXVsdDtcblxuLy8vIERlZnVhbHQgY29sb3Igb2Ygc3RyaXBlZCByb3dzIG9uIGhvdmVyLlxuLy8vIEB0eXBlIExpc3RcbiR0YWJsZS1yb3ctc3RyaXBlLWhvdmVyOiBkYXJrZW4oJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSArICR0YWJsZS1ob3Zlci1zY2FsZSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZ1YWx0IGJhY2tncm91bmQgY29sb3IgZm9yIHN0cmlwZWQgcm93cy5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYmxlLXN0cmlwZWQtYmFja2dyb3VuZDogc21hcnQtc2NhbGUoJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZ1YWx0IHZhbHVlIGZvciBzaG93aW5nIHRoZSBzdHJpcGUgb24gcm93cyBvZiB0aGUgdGFibGVzLCBleGNsdWRpbmcgdGhlIGhlYWRlciBhbmQgZm9vdGVyIElmIGV2ZW4sIHRoZSBldmVuIHJvd3Mgd2lsbCBoYXZlIGEgYmFja2dyb3VuZCBjb2xvci4gSWYgb2RkLCB0aGUgb2RkIHJvd3Mgd2lsbCBoYXZlIGEgYmFja2dyb3VuZCBjb2xvci4gSWYgZW1wdHksIG9yIGFueW90aGVyIHZhbHVlLCB0aGUgdGFibGUgcm93cyB3aWxsIGhhdmUgbm8gc3RyaXBpbmcuXG4vLy8gQHR5cGUgS2V5b3dvcmRcbiR0YWJsZS1zdHJpcGU6IGV2ZW4gIWRlZmF1bHQ7XG5cbi8vLyBEZWZ1YWx0IGNvbG9yIGZvciBoZWFkZXIgYmFja2dyb3VuZC5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYmxlLWhlYWQtYmFja2dyb3VuZDogc21hcnQtc2NhbGUoJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSAvIDIpICFkZWZhdWx0O1xuXG4vLy8gRGVmdWFsdCBjb2xvciBmb3IgZm9vdGVyIGJhY2tncm91bmQuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWJsZS1mb290LWJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUpICFkZWZhdWx0O1xuXG4vLy8gRGVmdWFsdCBmb250IGNvbG9yIGZvciBoZWFkZXIuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWJsZS1oZWFkLWZvbnQtY29sb3I6ICRib2R5LWZvbnQtY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZ1YWx0IHZhbHVlIGZvciBzaG93aW5nIHRoZSBoZWFkZXIgd2hlbiB1c2luZyBzdGFja2VkIHRhYmxlcy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kc2hvdy1oZWFkZXItZm9yLXN0YWNrZWQ6IGZhbHNlICFkZWZhdWx0O1xuXG4vLy8gQWRkcyB0aGUgZ2VuZXJhbCBzdHlsZXMgZm9yIHRhYmxlcy5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzdHJpcGUgWyR0YWJsZS1zdHJpcGVdIC0gVXNlcyBrZXdvcmRzIGV2ZW4sIG9kZCwgb3Igbm9uZSB0byBkYXJrZW4gcm93cyBvZiB0aGUgdGFibGUuIFRoZSBkZWZ1YWx0IHZhbHVlIGlzIGV2ZW4uXG5AbWl4aW4gdGFibGUoJHN0cmlwZTogJHRhYmxlLXN0cmlwZSkge1xuICBtYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcbiAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG5cbiAgQGF0LXJvb3Qge1xuICAgIHRoZWFkLFxuICAgIHRib2R5LFxuICAgIHRmb290IHtcbiAgICAgIGJvcmRlcjogJHRhYmxlLWJvcmRlcjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1iYWNrZ3JvdW5kO1xuICAgIH1cblxuICAgIC8vIENhcHRpb25cbiAgICBjYXB0aW9uIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuICAgICAgcGFkZGluZzogJHRhYmxlLXBhZGRpbmc7XG4gICAgfVxuXG4gICAgLy8gVGFibGUgaGVhZCBhbmQgZm9vdFxuICAgIHRoZWFkLFxuICAgIHRmb290IHtcbiAgICAgIGJhY2tncm91bmQ6ICR0YWJsZS1oZWFkLWJhY2tncm91bmQ7XG4gICAgICBjb2xvcjogJHRhYmxlLWhlYWQtZm9udC1jb2xvcjtcblxuICAgICAgLy8gUm93cyB3aXRoaW4gaGVhZCBhbmQgZm9vdFxuICAgICAgdHIge1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgIH1cblxuICAgICAgLy8gQ2VsbHMgd2l0aGluIGhlYWQgYW5kIGZvb3RcbiAgICAgIHRoLFxuICAgICAgdGQge1xuICAgICAgICBwYWRkaW5nOiAkdGFibGUtcGFkZGluZztcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG4gICAgICAgIHRleHQtYWxpZ246ICN7JGdsb2JhbC1sZWZ0fTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBUYWJsZSByb3dzXG4gICAgdGJvZHkge1xuICAgICAgdHIge1xuICAgICAgICAvLyBJZiBzdHJpcGUgaXMgc2V0IHRvIGV2ZW4sIGRhcmtlbiB0aGUgZXZlbiByb3dzLlxuICAgICAgICBAaWYgJHN0cmlwZSA9PSBldmVuIHtcbiAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtc3RyaXBlZC1iYWNrZ3JvdW5kO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIElmIHN0cmlwZSBpcyBzZXQgdG8gb2RkLCBkYXJrZW4gdGhlIG9kZCByb3dzLlxuICAgICAgICBAZWxzZSBpZiAkc3RyaXBlID09IG9kZCB7XG4gICAgICAgICAgJjpudGgtY2hpbGQob2RkKSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtc3RyaXBlZC1iYWNrZ3JvdW5kO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB0aCxcbiAgICAgIHRkIHtcbiAgICAgICAgcGFkZGluZzogJHRhYmxlLXBhZGRpbmc7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHRoZSBhYmlsaXR5IHRvIGhvcml6b250YWxseSBzY3JvbGwgdGhlIHRhYmxlIHdoZW4gdGhlIGNvbnRlbnQgb3ZlcmZsb3dzIGhvcml6b250YWxseS5cbkBtaXhpbiB0YWJsZS1zY3JvbGwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcbn1cblxuLy8vIFNsaWdodGx5IGRhcmtlbnMgdGhlIHRhYmxlIHJvd3Mgb24gaG92ZXIuXG5AbWl4aW4gdGFibGUtaG92ZXIge1xuICB0ciB7XG4gICAgLy9EYXJrZW5zIHRoZSBub24tc3RyaXBlZCB0YWJsZSByb3dzIG9uIGhvdmVyLlxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLXJvdy1ob3ZlcjtcbiAgICB9XG5cbiAgICAvL0RhcmtlbnMgdGhlIGV2ZW4gc3RyaXBlZCB0YWJsZSByb3dzLlxuICAgIEBpZigkdGFibGUtc3RyaXBlID09IGV2ZW4pIHtcbiAgICAgICY6bnRoLW9mLXR5cGUoZXZlbik6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtcm93LXN0cmlwZS1ob3ZlcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvL0RhcmtlbnMgdGhlIG9kZCBzdHJpcGVkIHRhYmxlIHJvd3MuXG4gICAgQGVsc2VpZigkdGFibGUtc3RyaXBlID09IG9kZCkge1xuICAgICAgJjpudGgtb2YtdHlwZShvZGQpOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLXJvdy1zdHJpcGUtaG92ZXI7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBzdGFja2VkIHRhYmxlLiBVc2VmdWwgZm9yIHNtYWxsLXNjcmVlbiBsYXlvdXRzLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGhlYWRlciBbJHNob3ctaGVhZGVyLWZvci1zdGFja2VkXSAtIFNob3cgdGhlIGZpcnN0IHRoIG9mIGhlYWRlciB3aGVuIHN0YWNrZWQuXG5AbWl4aW4gdGFibGUtc3RhY2soJGhlYWRlcjogJHNob3ctaGVhZGVyLWZvci1zdGFja2VkKSB7XG4gIEBpZiAkaGVhZGVyIHtcbiAgICB0aGVhZCB7XG4gICAgICB0aDpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuXG4gICAgICB0aCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICB0aGVhZCB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIHRmb290IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgdHIsXG4gIHRoLFxuICB0ZCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICB0ZCB7XG4gICAgYm9yZGVyLXRvcDogMDtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi10YWJsZSB7XG4gIHRhYmxlIHtcbiAgICBAaW5jbHVkZSB0YWJsZTtcbiAgfVxuXG4gIHRhYmxlLnN0YWNrIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBkb3duKSB7XG4gICAgICBAaW5jbHVkZSB0YWJsZS1zdGFjaztcbiAgICB9XG4gIH1cblxuICB0YWJsZS5zY3JvbGwge1xuICAgIEBpbmNsdWRlIHRhYmxlLXNjcm9sbDtcbiAgfVxuXG4gIHRhYmxlLmhvdmVyIHtcbiAgICBAaW5jbHVkZSB0YWJsZS1ob3ZlcjtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgdGl0bGUtYmFyXG4vLy8vXG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGEgdGl0bGUgYmFyLlxuLy8vIEB0eXBlIENvbG9yXG4kdGl0bGViYXItYmFja2dyb3VuZDogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgdGV4dCBpbnNpZGUgYSB0aXRsZSBiYXIuXG4vLy8gQHR5cGUgQ29sb3JcbiR0aXRsZWJhci1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBpbnNpZGUgYSB0aXRsZSBiYXIuXG4vLy8gQHR5cGUgTGVuZ3RoXG4kdGl0bGViYXItcGFkZGluZzogMC41cmVtICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgb2YgdGV4dCBpbnNpZGUgYSB0aXRsZSBiYXIuXG4vLy8gQHR5cGUgV2VpZ2h0XG4kdGl0bGViYXItdGV4dC1mb250LXdlaWdodDogYm9sZCAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIG1lbnUgaWNvbnMgaW5zaWRlIGEgdGl0bGUgYmFyLlxuLy8vIEB0eXBlIENvbG9yXG4kdGl0bGViYXItaWNvbi1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgbWVudSBpY29ucyBpbnNpZGUgYSB0aXRsZSBiYXIgb24gaG92ZXIuXG4vLy8gQHR5cGUgQ29sb3JcbiR0aXRsZWJhci1pY29uLWNvbG9yLWhvdmVyOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBTcGFjaW5nIGJldHdlZW4gdGhlIG1lbnUgaWNvbiBhbmQgdGV4dCBpbnNpZGUgYSB0aXRsZSBiYXIuXG4vLy8gQHR5cGUgTGVuZ3RoXG4kdGl0bGViYXItaWNvbi1zcGFjaW5nOiAwLjI1cmVtICFkZWZhdWx0O1xuXG5AbWl4aW4gZm91bmRhdGlvbi10aXRsZS1iYXIge1xuICAudGl0bGUtYmFyIHtcbiAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICBiYWNrZ3JvdW5kOiAkdGl0bGViYXItYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJHRpdGxlYmFyLWNvbG9yO1xuICAgIHBhZGRpbmc6ICR0aXRsZWJhci1wYWRkaW5nO1xuXG4gICAgLm1lbnUtaWNvbiB7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkdGl0bGViYXItaWNvbi1zcGFjaW5nO1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICR0aXRsZWJhci1wYWRkaW5nO1xuICAgIH1cbiAgfVxuXG4gIC50aXRsZS1iYXItbGVmdCB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gIH1cblxuICAudGl0bGUtYmFyLXJpZ2h0IHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIH1cblxuICAudGl0bGUtYmFyLXRpdGxlIHtcbiAgICBmb250LXdlaWdodDogJHRpdGxlYmFyLXRleHQtZm9udC13ZWlnaHQ7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIH1cblxuICAubWVudS1pY29uIHtcbiAgICBAaW5jbHVkZSBoYW1idXJnZXIoJGNvbG9yOiAkdGl0bGViYXItaWNvbi1jb2xvciwgJGNvbG9yLWhvdmVyOiAkdGl0bGViYXItaWNvbi1jb2xvci1ob3Zlcik7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHRvcC1iYXJcbi8vLy9cblxuLy8vIFBhZGRpbmcgZm9yIHRoZSB0b3AgYmFyLlxuLy8vIEB0eXBlIE51bWJlclxuJHRvcGJhci1wYWRkaW5nOiAwLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciB0aGUgdG9wIGJhci4gVGhpcyBjb2xvciBhbHNvIGNhc2NhZGVzIHRvIG1lbnVzIHdpdGhpbiB0aGUgdG9wIGJhci5cbi8vLyBAdHlwZSBDb2xvclxuJHRvcGJhci1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIGZvciBsaW5rcyBpbnNpZGUgYSB0b3AgYmFyIG1lbnUuXG4vLy8gQHR5cGUgQ29sb3JcbiR0b3BiYXItbGluay1jb2xvcjogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBXaWR0aCBvZiBgPGlucHV0PmAgZWxlbWVudHMgaW5zaWRlIHRoZSB0b3AgYmFyLlxuLy8vIEB0eXBlIE51bWJlclxuJHRvcGJhci1pbnB1dC13aWR0aDogMjAwcHggIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSB0b3AgYmFyIGNvbnRhaW5lci5cbkBtaXhpbiB0b3AtYmFyLWNvbnRhaW5lciB7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xuICBwYWRkaW5nOiAkdG9wYmFyLXBhZGRpbmc7XG5cbiAgJixcbiAgdWwge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR0b3BiYXItYmFja2dyb3VuZDtcbiAgfVxuXG4gIGEge1xuICAgIGNvbG9yOiAkdG9wYmFyLWxpbmstY29sb3I7XG4gIH1cblxuICBpbnB1dCB7XG4gICAgd2lkdGg6ICR0b3BiYXItaW5wdXQtd2lkdGg7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06IDFyZW07XG4gIH1cblxuICBpbnB1dC5idXR0b24ge1xuICAgIHdpZHRoOmF1dG87XG4gIH1cbn1cblxuLy8vIG1ha2VzIHNlY3Rpb25zIHN0YWNrZWRcbkBtaXhpbiB0b3AtYmFyLXN0YWNrZWQoKSB7XG4gIC8vIFN1Yi1zZWN0aW9uc1xuICAudG9wLWJhci1yaWdodCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgLnRvcC1iYXItbGVmdCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tdG9wLWJhciB7XG4gIC8vIFRvcCBiYXIgY29udGFpbmVyXG4gIC50b3AtYmFyIHtcbiAgICBAaW5jbHVkZSB0b3AtYmFyLWNvbnRhaW5lcjtcbiAgfVxuICAvLyBnZW5lcmF0ZSBjbGFzc2VzIGZvciBzdGFja2luZyBvbiBlYWNoIHNjcmVlbiBzaXplIChkZWZpbmVkIGluICRicmVha3BvaW50LWNsYXNzZXMpXG4gIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgIC5zdGFja2VkLWZvci0jeyRzaXplfSB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplIGRvd24pIHtcbiAgICAgICAgQGluY2x1ZGUgdG9wLWJhci1zdGFja2VkO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAvLyBzdGFjayBvbiBzbWFsbCBzY3JlZW5zIGFzIGRlZmF1bHRcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBkb3duKSB7XG4gICAgQGluY2x1ZGUgdG9wLWJhci1zdGFja2VkO1xuICB9XG5cbiAgLy8gU3ViLXNlY3Rpb25zXG4gIC50b3AtYmFyLWxlZnQge1xuICAgIGZsb2F0OiBsZWZ0O1xuICB9XG4gIC50b3AtYmFyLXJpZ2h0IHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gIH1cbn1cbiIsIi50b3AtYmFyIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIHBhZGRpbmc6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogbWFwX2dldCgkei1pbmRleCwgdG9wYmFyKTtcbiAgQGluY2x1ZGUgZmxleC1ncmlkLXJvdyhjb2xsYXBzZSk7XG5cbiAgLnJpZ2h0LFxuICAubGVmdCB7XG4gICAgQGluY2x1ZGUgZmxleC1ncmlkLWNvbHVtbigxMik7XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcbiAgICAubGVmdCB7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgIH1cbiAgfVxuXG4gIHVsIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgfVxuXG4gICYuZXhwYW5kZWQge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgfVxuXG4gICYuZXhwYW5kZWQgdWwge1xuICAgIGJhY2tncm91bmQ6ICR0b3BiYXItYmFja2dyb3VuZDtcbiAgfVxuXG4gICZfX2ljb24ge1xuICAgIGltZyB7XG4gICAgICBtYXgtaGVpZ2h0OiAkaGVyby1tYXgtaGVpZ2h0O1xuICAgICAgbWF4LXdpZHRoOiAyNTBweDtcbiAgICB9XG4gIH1cblxuICBsaSA+IGEge1xuICAgIHRleHQtdHJhbnNmb3JtOiAkdG9wYmFyLWxpbmstc3R5bGU7XG4gICAgZm9udC13ZWlnaHQ6ICR0b3BiYXItbGluay13ZWlnaHQ7XG5cbiAgICB0cmFuc2l0aW9uOiAuMnMgYWxsO1xuXG4gICAgJi5idXR0b24ge1xuICAgICAgYm9yZGVyLWNvbG9yOiAkdG9wYmFyLWxpbmstY29sb3I7XG4gICAgICBjb2xvcjogJHRvcGJhci1saW5rLWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIGxpLmFjdGl2ZSBhLFxuICBhOmhvdmVyIHtcbiAgICBjb2xvcjogJHRvcGJhci1saW5rLWNvbG9yLWhvdmVyO1xuXG4gICAgJi5idXR0b24ge1xuICAgICAgYm9yZGVyLWNvbG9yOiAkdG9wYmFyLWxpbmstY29sb3ItaG92ZXI7XG4gICAgICBjb2xvcjogJHRvcGJhci1saW5rLWNvbG9yLWhvdmVyO1xuICAgIH1cbiAgfVxuXG4gICYuZXhwYW5kZWQge1xuICAgIGJhY2tncm91bmQ6ICR0b3BiYXItYmFja2dyb3VuZDtcbiAgfVxuXG4gICZfX2xvY2FsZS1waWNrZXIge1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSB1cCkge1xuICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAkdG9wYmFyLWxpbmstY29sb3I7XG4gICAgfVxuXG4gICAgc3ZnIHtcbiAgICAgIGhlaWdodDogMTZweDtcbiAgICAgIHdpZHRoOiAyMXB4O1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIGRvd24pIHtcbiAgICAubWVudS10ZXh0IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgcGFkZGluZzogLjVyZW07XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAmX19pY29uIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgbWFyZ2luLXRvcDogM3JlbTtcbiAgICB9XG5cbiAgICAmX190b2dnbGUge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgfVxuXG4gICAgLnJpZ2h0IHtcblxuICAgICAgbGkge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICB9XG5cbiAgICAgIC5idXR0b24ge1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XG4gICAgLnJpZ2h0IHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1jb2x1bW4oc2hyaW5rKTtcbiAgICB9XG4gICAgLmxlZnQge1xuICAgICAgQGluY2x1ZGUgZmxleC1ncmlkLWNvbHVtbigpO1xuICAgIH1cblxuICAgIC5yaWdodCB7XG4gICAgICBwYWRkaW5nOiAkdG9wYmFyLXBhZGRpbmcgMDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgfVxuICB9XG59XG5cbkBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgLmRyb3Bkb3duLm1lbnUgLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50LmlzLXJpZ2h0LWFycm93ID4gYTo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAuZHJvcGRvd24ubWVudSAuc3VibWVudS5maXJzdC1zdWIge1xuICAgIGxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICByaWdodDogMCAhaW1wb3J0YW50O1xuICAgIG1pbi13aWR0aDogaW5oZXJpdCAhaW1wb3J0YW50O1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICR0b3BiYXItbGluay1jb2xvcjtcbiAgICAgIG1heC13aWR0aDogaW5oZXJpdCAhaW1wb3J0YW50O1xuICAgICAgbWluLXdpZHRoOiAyMDBweCAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuXG4uaGVybyB7XG4gIGJhY2tncm91bmQ6IHVybCgnLi4vaW1nL2JhY2tncm91bmQtcy5wbmcnKSBjZW50ZXIgY2VudGVyIC8gY292ZXI7XG4gIGhlaWdodDogJGhlcm8tbWF4LWhlaWdodDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWcvYmFja2dyb3VuZC1tLnBuZycpO1xuICB9XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltZy9iYWNrZ3JvdW5kLWwucG5nJyk7XG4gIH1cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCh4bGFyZ2UpIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltZy9iYWNrZ3JvdW5kLXhsLnBuZycpO1xuICB9XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoeHhsYXJnZSkge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1nL2JhY2tncm91bmQteHhsLnBuZycpO1xuICB9XG59XG5cbi5oZXJvLS1mdWxsIHtcbiAgbWluLWhlaWdodDogJGhlcm8taG9tZXBhZ2UtbWF4LWhlaWdodDtcbn1cblxuLmZ1bGxzY3JlZW4tYmcge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgei1pbmRleDogLTEwMDtcbiAgYmFja2dyb3VuZDogcmVkO1xufVxuXG4uZnVsbHNjcmVlbi1iZ19fdmlkZW8ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIG1pbi13aWR0aDogMTAwJTtcbiAgbWluLWhlaWdodDogJGhlcm8tbWF4LWhlaWdodDtcbiAgd2lkdGg6IGF1dG87XG4gIGhlaWdodDogYXV0bztcbiAgei1pbmRleDogbWFwX2dldCgkei1pbmRleCwgZnVsbFNjcmVlblZpZGVvKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTUwJSk7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG5cbiAgQGluY2x1ZGUgaGlkZS1mb3Ioc21hbGwgb25seSk7XG59XG5cbi5oZXJvLS1mdWxsIC5mdWxsc2NyZWVuLWJnX192aWRlbyB7XG4gIG1pbi1oZWlnaHQ6IDEwMHZoO1xufVxuXG5AaWYgJHRvcGJhci1iYWNrZ3JvdW5kLWNvbG9yICE9ICd0cmFuc3BhcmVudCcge1xuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgIC50b3AtYmFyLXdyYXBwZXIge1xuICAgICAgYmFja2dyb3VuZDogJHRvcGJhci1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHNtYXJ0LXNjYWxlKCR0b3BiYXItYmFja2dyb3VuZC1jb2xvcik7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICB6LWluZGV4OiAyO1xuICAgIH1cbiAgfVxuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBvbmx5KSB7XG4gICAgLnRvcC1iYXItd3JhcHBlciB7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxuICB9XG5cbn1cblxuLm1lbnUgLnNvdXNNZW51IHtcbiAgYSB7XG4gICAgZm9udC1zaXplOiAuOXJlbTtcbiAgfVxufVxuXG5cblxuXG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmbGV4LWdyaWRcbi8vLy9cblxuLy8vIENyZWF0ZXMgYSBjb250YWluZXIgZm9yIGEgZmxleCBncmlkIHJvdy5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZHxMaXN0fSAkYmVoYXZpb3IgW251bGxdXG4vLy8gICBNb2RpZmljYXRpb25zIHRvIHRoZSBkZWZhdWx0IGdyaWQgc3R5bGVzLiBgbmVzdGAgaW5kaWNhdGVzIHRoZSByb3cgd2lsbCBiZSBwbGFjZWQgaW5zaWRlIGFub3RoZXIgcm93LiBgY29sbGFwc2VgIGluZGljYXRlcyB0aGF0IHRoZSBjb2x1bW5zIGluc2lkZSB0aGlzIHJvdyB3aWxsIG5vdCBoYXZlIHBhZGRpbmcuIGBuZXN0IGNvbGxhcHNlYCBjb21iaW5lcyBib3RoIGJlaGF2aW9ycy5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHdpZHRoIFskZ3JpZC1yb3ctd2lkdGhdIC0gTWF4aW11bSB3aWR0aCBvZiB0aGUgcm93LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkY29sdW1ucyBbbnVsbF0gLSBOdW1iZXIgb2YgY29sdW1ucyB0byB1c2UgZm9yIHRoaXMgcm93LiBJZiBzZXQgdG8gYG51bGxgICh0aGUgZGVmYXVsdCksIHRoZSBnbG9iYWwgY29sdW1uIGNvdW50IHdpbGwgYmUgdXNlZC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRiYXNlIFt0cnVlXSAtIFNldCB0byBgZmFsc2VgIHRvIHByZXZlbnQgYmFzaWMgc3R5bGVzIGZyb20gYmVpbmcgb3V0cHV0LiBVc2VmdWwgaWYgeW91J3JlIGNhbGxpbmcgdGhpcyBtaXhpbiBvbiB0aGUgc2FtZSBlbGVtZW50IHR3aWNlLCBhcyBpdCBwcmV2ZW50cyBkdXBsaWNhdGUgQ1NTIG91dHB1dC5cbkBtaXhpbiBmbGV4LWdyaWQtcm93KFxuICAkYmVoYXZpb3I6IG51bGwsXG4gICR3aWR0aDogJGdyaWQtcm93LXdpZHRoLFxuICAkY29sdW1uczogbnVsbCxcbiAgJGJhc2U6IHRydWVcbikge1xuICAkYmVoYXZpb3I6IC16Zi1nZXQtb3B0aW9ucygkYmVoYXZpb3IsIG5lc3QgY29sbGFwc2UpO1xuICAkbWFyZ2luOiBhdXRvO1xuXG4gIEBpZiBtYXAtZ2V0KCRiZWhhdmlvciwgbmVzdCkge1xuICAgICRtYXJnaW46IHJlbS1jYWxjKCRncmlkLWNvbHVtbi1ndXR0ZXIpIC8gMiAqIC0xO1xuICB9XG4gIEBlbHNlIHtcbiAgICBtYXgtd2lkdGg6ICR3aWR0aDtcbiAgfVxuXG4gIEBpZiAkYmFzZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICB9XG5cbiAgbWFyZ2luLWxlZnQ6ICRtYXJnaW47XG4gIG1hcmdpbi1yaWdodDogJG1hcmdpbjtcblxuICBAaWYgJGNvbHVtbnMgIT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgZ3JpZC1jb250ZXh0KCRjb2x1bW5zLCAkYmFzZSkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBDYWxjdWxhdGVzIHRoZSBgZmxleGAgcHJvcGVydHkgZm9yIGEgZmxleCBncmlkIGNvbHVtbi4gSXQgYWNjZXB0cyBhbGwgb2YgdGhlIHNhbWUgdmFsdWVzIGFzIHRoZSBiYXNpYyBgZ3JpZC1jb2x1bW4oKWAgZnVuY3Rpb24sIGFsb25nIHdpdGggdHdvIGV4dHJhczpcbi8vLyAgIC0gYG51bGxgICh0aGUgZGVmYXVsdCkgd2lsbCBtYWtlIHRoZSBjb2x1bW4gZXhwYW5kIHRvIGZpbGwgc3BhY2UuXG4vLy8gICAtIGBzaHJpbmtgIHdpbGwgbWFrZSB0aGUgY29sdW1uIGNvbnRyYWN0LCBzbyBpdCBvbmx5IHRha2VzIHVwIHRoZSBob3Jpem9udGFsIHNwYWNlIGl0IG5lZWRzLlxuLy8vXG4vLy8gQHBhcmFtIHtNaXhlZH0gJGNvbHVtbnMgW251bGxdIC0gV2lkdGggb2YgdGhlIGNvbHVtbi5cbkBmdW5jdGlvbiBmbGV4LWdyaWQtY29sdW1uKCRjb2x1bW5zOiBudWxsKSB7XG4gICRmbGV4OiAxIDEgMHB4O1xuXG4gIEBpZiAkY29sdW1ucyA9PSBzaHJpbmsge1xuICAgICRmbGV4OiAwIDAgYXV0bztcbiAgfVxuICBAZWxzZSBpZiAkY29sdW1ucyAhPSBudWxsIHtcbiAgICAkZmxleDogMCAwIGdyaWQtY29sdW1uKCRjb2x1bW5zKTtcbiAgfVxuXG4gIEByZXR1cm4gJGZsZXg7XG59XG5cbi8vLyBDcmVhdGVzIGEgY29sdW1uIGZvciBhIGZsZXggZ3JpZC4gQnkgZGVmYXVsdCwgdGhlIGNvbHVtbiB3aWxsIHN0cmV0Y2ggdG8gdGhlIGZ1bGwgd2lkdGggb2YgaXRzIGNvbnRhaW5lciwgYnV0IHRoaXMgY2FuIGJlIG92ZXJyaWRkZW4gd2l0aCBzaXppbmcgY2xhc3Nlcywgb3IgYnkgdXNpbmcgdGhlIGB1bnN0YWNrYCBjbGFzcyBvbiB0aGUgcGFyZW50IGZsZXggcm93LlxuLy8vXG4vLy8gQHBhcmFtIHtNaXhlZH0gJGNvbHVtbnMgW251bGxdIC0gV2lkdGggb2YgdGhlIGNvbHVtbi4gUmVmZXIgdG8gdGhlIGBmbGV4LWdyaWQtY29sdW1uKClgIGZ1bmN0aW9uIHRvIHNlZSBwb3NzaWJsZSB2YWx1ZXMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRndXR0ZXIgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gU3BhY2UgYmV0d2VlbiBjb2x1bW5zLCBhZGRlZCBhcyBhIGxlZnQgYW5kIHJpZ2h0IHBhZGRpbmcuXG5AbWl4aW4gZmxleC1ncmlkLWNvbHVtbihcbiAgJGNvbHVtbnM6IG51bGwsXG4gICRndXR0ZXI6ICRncmlkLWNvbHVtbi1ndXR0ZXJcbikge1xuICAkZ3V0dGVyOiByZW0tY2FsYygkZ3V0dGVyKSAvIDI7XG5cbiAgZmxleDogZmxleC1ncmlkLWNvbHVtbigkY29sdW1ucyk7XG4gIHBhZGRpbmctbGVmdDogJGd1dHRlcjtcbiAgcGFkZGluZy1yaWdodDogJGd1dHRlcjtcblxuICAvLyBtYXgtd2lkdGggZml4ZXMgSUUgMTAvMTEgbm90IHJlc3BlY3RpbmcgdGhlIGZsZXgtYmFzaXMgcHJvcGVydHlcbiAgQGlmICRjb2x1bW5zICE9IG51bGwgYW5kICRjb2x1bW5zICE9IHNocmluayB7XG4gICAgbWF4LXdpZHRoOiBncmlkLWNvbHVtbigkY29sdW1ucyk7XG4gIH1cbn1cblxuLy8vIENoYW5nZXMgdGhlIHNvdXJjZSBvcmRlciBvZiBhIGZsZXggZ3JpZCBjb2x1bW4uIENvbHVtbnMgd2l0aCBsb3dlciBudW1iZXJzIGFwcGVhciBmaXJzdCBpbiB0aGUgbGF5b3V0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkb3JkZXIgWzBdIC0gT3JkZXIgbnVtYmVyIHRvIGFwcGx5LlxuQG1peGluIGZsZXgtZ3JpZC1vcmRlcigkb3JkZXI6IDApIHtcbiAgb3JkZXI6ICRvcmRlcjtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tZmxleC1ncmlkIHtcbiAgLy8gUm93XG4gIC5yb3cge1xuICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1yb3c7XG5cbiAgICAvLyBOZXN0aW5nIGJlaGF2aW9yXG4gICAgJiAmLFxuICAgIC5jb2x1bW4tcm93ICYge1xuICAgICAgQGluY2x1ZGUgZmxleC1ncmlkLXJvdyhuZXN0LCAkYmFzZTogZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIC8vIENvbHVtblxuICAlZmxleC1jb2x1bW4ge1xuICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1jb2x1bW47XG4gIH1cblxuICAuY29sdW1uLFxuICAuY29sdW1ucyB7XG4gICAgQGV4dGVuZCAlZmxleC1jb2x1bW47XG4gIH1cblxuICAvLyBTaXppbmcgKHBlcmNlbnRhZ2UpXG4gIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGdyaWQtY29sdW1uLWNvdW50IHtcbiAgICAgICAgLiN7JHNpemV9LSN7JGl9IHtcbiAgICAgICAgICBmbGV4OiBmbGV4LWdyaWQtY29sdW1uKCRpKTtcbiAgICAgICAgICBtYXgtd2lkdGg6IGdyaWQtY29sdW1uKCRpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFNpemluZyAoZXhwYW5kKVxuICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICBAaWYgJHNpemUgIT0gc21hbGwge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgICAuI3skc2l6ZX0tZXhwYW5kIHtcbiAgICAgICAgICBmbGV4OiBmbGV4LWdyaWQtY29sdW1uKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBTaXppbmcgKHNocmluaylcbiAgLnNocmluayB7XG4gICAgZmxleDogZmxleC1ncmlkLWNvbHVtbihzaHJpbmspO1xuICB9XG5cbiAgLy8gQXV0by1zdGFja2luZy91bnN0YWNraW5nXG4gIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgIEBpZiAkc2l6ZSAhPSBzbWFsbCB7XG4gICAgICAucm93LiN7JHNpemV9LXVuc3RhY2sge1xuICAgICAgICAuY29sdW1uIHtcbiAgICAgICAgICBmbGV4OiBmbGV4LWdyaWQtY29sdW1uKDEwMCUpO1xuXG4gICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgICAgICAgZmxleDogZmxleC1ncmlkLWNvbHVtbigpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFNvdXJjZSBvcmRlcmluZ1xuICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIDYge1xuICAgICAgICAuI3skc2l6ZX0tb3JkZXItI3skaX0ge1xuICAgICAgICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1vcmRlcigkaSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBIb3Jpem9udGFsIGFsaWdubWVudCB1c2luZyBqdXN0aWZ5LWNvbnRlbnRcbiAgQGVhY2ggJGhkaXIsICRwcm9wIGluIChcbiAgICAncmlnaHQnOiBmbGV4LWVuZCxcbiAgICAnY2VudGVyJzogY2VudGVyLFxuICAgICdqdXN0aWZ5Jzogc3BhY2UtYmV0d2VlbixcbiAgICAnc3BhY2VkJzogc3BhY2UtYXJvdW5kLFxuICApIHtcbiAgICAucm93LmFsaWduLSN7JGhkaXJ9IHtcbiAgICAgIGp1c3RpZnktY29udGVudDogJHByb3A7XG4gICAgfVxuICB9XG5cbiAgLy8gVmVydGljYWwgYWxpZ25tZW50IHVzaW5nIGFsaWduLWl0ZW1zIGFuZCBhbGlnbi1zZWxmXG4gIEBlYWNoICR2ZGlyLCAkcHJvcCBpbiAoXG4gICAgJ3RvcCc6IGZsZXgtc3RhcnQsXG4gICAgJ2JvdHRvbSc6IGZsZXgtZW5kLFxuICAgICdtaWRkbGUnOiBjZW50ZXIsXG4gICAgJ3N0cmV0Y2gnOiBzdHJldGNoLFxuICApIHtcbiAgICAucm93LmFsaWduLSN7JHZkaXJ9IHtcbiAgICAgIGFsaWduLWl0ZW1zOiAkcHJvcDtcbiAgICB9XG5cbiAgICAuY29sdW1uLmFsaWduLSN7JHZkaXJ9IHtcbiAgICAgIGFsaWduLXNlbGY6ICRwcm9wO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZ3JpZFxuLy8vL1xuXG4vLy8gQ2FsY3VsYXRlcyB0aGUgd2lkdGggb2YgYSBjb2x1bW4gYmFzZWQgb24gYSBudW1iZXIgb2YgZmFjdG9ycy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfExpc3R9ICRjb2x1bW5zXG4vLy8gICBXaWR0aCBvZiB0aGUgY29sdW1uLiBBY2NlcHRzIG11bHRpcGxlIHZhbHVlczpcbi8vLyAgIC0gQSBwZXJjZW50YWdlIHZhbHVlIHdpbGwgbWFrZSB0aGUgY29sdW1uIHRoYXQgZXhhY3Qgc2l6ZS5cbi8vLyAgIC0gQSBzaW5nbGUgZGlnaXQgd2lsbCBtYWtlIHRoZSBjb2x1bW4gc3BhbiB0aGF0IG51bWJlciBvZiBjb2x1bW5zIHdpZGUsIHRha2luZyBpbnRvIGFjY291bnQgdGhlIGNvbHVtbiBjb3VudCBvZiB0aGUgcGFyZW50IHJvdy5cbi8vLyAgIC0gQSBzdHJpbmcgb2YgdGhlIGZvcm1hdCBcInggb2YgeVwiIHdpbGwgbWFrZSBhIGNvbHVtbiB0aGF0IGlzICp4KiBjb2x1bW5zIHdpZGUsIGFzc3VtaW5nICp5KiB0b3RhbCBjb2x1bW5zIGZvciB0aGUgcGFyZW50LlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gQSBjYWxjdWxhdGVkIHBlcmNlbnRhZ2UgdmFsdWUuXG5AZnVuY3Rpb24gZ3JpZC1jb2x1bW4oJGNvbHVtbnMpIHtcbiAgJHdpZHRoOiAwJTtcblxuICAvLyBQYXJzaW5nIHBlcmNlbnRzLCBkZWNpbWFscywgYW5kIGNvbHVtbiBjb3VudHNcbiAgQGlmIHR5cGUtb2YoJGNvbHVtbnMpID09ICdudW1iZXInIHtcbiAgICBAaWYgdW5pdCgkY29sdW1ucykgPT0gJyUnIHtcbiAgICAgICR3aWR0aDogJGNvbHVtbnM7XG4gICAgfVxuICAgIEBlbHNlIGlmICRjb2x1bW5zIDwgMSB7XG4gICAgICAkd2lkdGg6IHBlcmNlbnRhZ2UoJGNvbHVtbnMpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkd2lkdGg6IHBlcmNlbnRhZ2UoJGNvbHVtbnMgLyAkZ3JpZC1jb2x1bW4tY291bnQpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFBhcnNpbmcgXCJuIG9mIG5cIiBleHByZXNzaW9uc1xuICBAZWxzZSBpZiB0eXBlLW9mKCRjb2x1bW5zKSA9PSAnbGlzdCcge1xuICAgIEBpZiBsZW5ndGgoJGNvbHVtbnMpICE9IDMge1xuICAgICAgQGVycm9yICdXcm9uZyBzeW50YXggZm9yIGdyaWQtY29sdW1uKCkuIFVzZSB0aGUgZm9ybWF0IFwibiBvZiBuXCIuJztcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJHdpZHRoOiBwZXJjZW50YWdlKG50aCgkY29sdW1ucywgMSkgLyBudGgoJGNvbHVtbnMsIDMpKTtcbiAgICB9XG4gIH1cblxuICAvLyBBbnl0aGluZyBlbHNlIGlzIGluY29ycmVjdFxuICBAZWxzZSB7XG4gICAgQGVycm9yICdXcm9uZyBzeW50YXggZm9yIGdyaWQtY29sdW1uKCkuIFVzZSBhIG51bWJlciwgZGVjaW1hbCwgcGVyY2VudGFnZSwgb3IgXCJuIG9mIG5cIi4nO1xuICB9XG5cbiAgQHJldHVybiAkd2lkdGg7XG59XG5cbi8vLyBDcmVhdGVzIGEgZ3JpZCBjb2x1bW4uXG4vLy9cbi8vLyBAcGFyYW0ge01peGVkfSAkY29sdW1ucyBbJGdyaWQtY29sdW1uLWNvdW50XSAtIFdpZHRoIG9mIHRoZSBjb2x1bW4uIFJlZmVyIHRvIHRoZSBgZ3JpZC1jb2x1bW4oKWAgZnVuY3Rpb24gdG8gc2VlIHBvc3NpYmxlIHZhbHVlcy5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGd1dHRlciBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBTcGFjaW5nIGJldHdlZW4gY29sdW1ucy5cbkBtaXhpbiBncmlkLWNvbHVtbihcbiAgJGNvbHVtbnM6ICRncmlkLWNvbHVtbi1jb3VudCxcbiAgJGd1dHRlcjogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gICRndXR0ZXI6IHJlbS1jYWxjKCRndXR0ZXIpIC8gMjtcblxuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1zaXplKCRjb2x1bW5zKTtcbiAgZmxvYXQ6ICRnbG9iYWwtbGVmdDtcbiAgcGFkZGluZy1sZWZ0OiAkZ3V0dGVyO1xuICBwYWRkaW5nLXJpZ2h0OiAkZ3V0dGVyO1xuXG4gIEBpZiAkZ3JpZC1jb2x1bW4tYWxpZ24tZWRnZSB7XG4gICAgJjpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgIGZsb2F0OiAkZ2xvYmFsLXJpZ2h0O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIGdyaWQgY29sdW1uIHJvdy4gVGhpcyBpcyB0aGUgZXF1aXZhbGVudCBvZiBhZGRpbmcgYC5yb3dgIGFuZCBgLmNvbHVtbmAgdG8gdGhlIHNhbWUgZWxlbWVudC5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZ3V0dGVyIFskZ3JpZC1jb2x1bW4tZ3V0dGVyXSAtIFdpZHRoIG9mIHRoZSBndXR0ZXJzIG9uIGVpdGhlciBzaWRlIG9mIHRoZSBjb2x1bW4gcm93LlxuQG1peGluIGdyaWQtY29sdW1uLXJvdyhcbiAgJGd1dHRlcjogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gIEBpbmNsdWRlIGdyaWQtcm93O1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbigkZ3V0dGVyOiAkZ3V0dGVyKTtcbiAgXG4gICYsXG4gICY6bGFzdC1jaGlsZCB7XG4gICAgZmxvYXQ6IG5vbmU7XG4gIH1cbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtblxuQGZ1bmN0aW9uIGdyaWQtY29sKFxuICAkY29sdW1uczogJGdyaWQtY29sdW1uLWNvdW50XG4pIHtcbiAgQHJldHVybiBncmlkLWNvbHVtbigkY29sdW1ucyk7XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbigpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW5cbkBtaXhpbiBncmlkLWNvbChcbiAgJGNvbHVtbnM6ICRncmlkLWNvbHVtbi1jb3VudCxcbiAgJGd1dHRlcjogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uKCRjb2x1bW5zLCAkZ3V0dGVyKTtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLXJvdygpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tcm93XG5AbWl4aW4gZ3JpZC1jb2wtcm93KFxuICAkZ3V0dGVyOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tcm93KCRndXR0ZXIpO1xufVxuIiwiLnByaW1hcnktZm9vdGVyIHtcblxuICAgIGJhY2tncm91bmQ6ICRmb290ZXItYmFja2dyb3VuZC1jb2xvcjtcbiAgICBjb2xvcjogJGZvb3Rlci1jb2xvcjtcbiAgICBwYWRkaW5nOiAjeyRnbG9iYWwtbWFyZ2luICogMn0gMDtcblxuICAgIHVsIHtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICB9XG5cbiAgICAmX19jb21wYW55IHtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1ncmlkLXJvdygpO1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcblxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgID4gZGl2IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1jb2x1bW4oMTIpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW47XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBmbGV4LWdyaWQtY29sdW1uKDQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYWRkcmVzcyB7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG5cbiAgICAgICAgbGkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAyNXB4O1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMjVweDtcbiAgICAgICAgICAgIH1cblxuXG5cbiAgICAgICAgICAgIHN0cm9uZyB7XG4gICAgICAgICAgICAgICAgY29sb3I6IGRhcmtlbigkZm9vdGVyLWNvbG9yLCAxMCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIGZpbGw6IGRhcmtlbigkZm9vdGVyLWNvbG9yLCAxMCUpOztcbiAgICAgICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgICAgIHdpZHRoOiAyMHB4O1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhvcml6b250YWwtY2VudGVyKCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19jb3B5cmlnaHQge1xuXG4gICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICBzdmcge1xuICAgICAgICAgICAgaGVpZ2h0OiByZW0tY2FsYygxNCk7XG4gICAgICAgICAgICB3aWR0aDogcmVtLWNhbGMoMTQpO1xuXG4gICAgICAgICAgICAvL2ZpbGw6IHNtYXJ0LXNjYWxlKCRmb290ZXItY29sb3IpO1xuICAgICAgICAgICAgZmlsbDogZm9yZWdyb3VuZCgkZm9vdGVyLWJhY2tncm91bmQtY29sb3IsICMwMDAsICNmZmYpICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBsaSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC41cmVtO1xuXG4gICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGZvb3Rlci1jb2xvcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJy8nO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IC41cmVtO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogLjVyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6IGRhcmtlbigkZm9vdGVyLWNvbG9yLCAxMCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbGlua3Mge1xuXG4gICAgICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1yb3coKTtcblxuICAgICAgICA+IGRpdiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBmbGV4LWdyaWQtY29sdW1uKDEyKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1jb2x1bW4oNik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGZvb3Rlci1jb2xvcjtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcblxuXG4gICAgICAgIGEge1xuICAgICAgICAgICAgY29sb3I6ICRmb290ZXItY29sb3I7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiAuNXMgYWxsO1xuXG4gICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgIGZpbGw6IGRhcmtlbigkZm9vdGVyLWNvbG9yLCAxMCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICAgICAgPiBkaXYge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgID4gZGl2OmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICA+IGRpdjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuXG4gICAgJl9fc29jaWFsZSB7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG5cbiAgICAgICAgbGkge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwICRnbG9iYWwtbWFyZ2luO1xuICAgICAgICAgICAgJjpob3ZlciBzdmcge1xuICAgICAgICAgICAgICAgIGZpbGw6IHNtYXJ0LXNjYWxlKCRmb290ZXItY29sb3IsIDQwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiAuNXMgYWxsO1xuICAgICAgICAgICAgZmlsbDogZGFya2VuKCRmb290ZXItY29sb3IsIDEwJSk7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnBlcnNve1xuICAgICZfX2NvbnRlbnQtZm9vdGVye1xuICAgICAgICBpbWd7XG4gICAgICAgICAgICB3aWR0aDogMTQwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBwe1xuICAgICAgICAgICAgZm9udC1zaXplOiAuN3JlbTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuIiwiLmFib3V0LXVzIHtcbiAgICBAaW5jbHVkZSBmbGV4LWdyaWQtcm93KCk7XG5cbiAgICAmX19hbmNob3Ige1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWdyaWQtY29sdW1uKDEyKTtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICAgICAgQGluY2x1ZGUgZmxleC1ncmlkLWNvbHVtbig0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1vcmRlcigyKVxuICAgICAgICB9XG5cbiAgICAgICAgPiBkaXYge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICB1bCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG5cbiAgICAgICAgYSB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgYS5hY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG4gICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgJl9faXRlbXMge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWdyaWQtY29sdW1uKDEyKTtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICAgICAgQGluY2x1ZGUgZmxleC1ncmlkLWNvbHVtbig4KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1vcmRlcigxKVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faXRlbSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRnbG9iYWwtcGFkZGluZyAqIDI7XG4gICAgfVxuXG4gICAgJl9fY29udGVudCB7XG4gICAgICAgIHBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZyAqIDQ7XG4gICAgfVxufVxuXG4vLy5hYm91dC11cyB7XG4vLyAgICBAaW5jbHVkZSBmbGV4LWdyaWQtcm93KCk7XG4vL1xuLy8gICAgPiBoMiB7XG4vLyAgICAgICAgQGluY2x1ZGUgZmxleC1ncmlkLWNvbHVtbigxMik7XG4vLyAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuLy8gICAgfVxuLy9cbi8vICAgICZfX21ldGEge1xuLy8gICAgICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1jb2x1bW4oNik7XG4vL1xuLy8gICAgICAgIHBhZGRpbmc6ICRnbG9iYWwtbWFyZ2luICogMjtcbi8vXG4vLyAgICAgICAgaDEge1xuLy8gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuLy8gICAgICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDE4KTtcbi8vICAgICAgICB9XG4vLyAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4vLyAgICB9XG4vL1xuLy8gICAgJl9fcGljdHVyZSB7XG4vLyAgICAgICAgQGluY2x1ZGUgZmxleC1ncmlkLWNvbHVtbig2KTtcbi8vICAgICAgICBwYWRkaW5nOiAwO1xuLy9cbi8vICAgIH1cbi8vXG4vL31cbiIsIi5yZWNvcmRfX2NvbnRlbnQtbGlzdHtcbiAgQGluY2x1ZGUgZmxleC1ncmlkLXJvdygpO1xuXG4gICYtaXRlbXtcbiAgICBAaW5jbHVkZSBmbGV4LWdyaWQtY29sdW1uKDEyKTtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1jb2x1bW4oNik7XG4gICAgfVxuXG4gIH1cbn1cblxuLnJlY29yZF9fY29udGVudC1saXN0LWl0ZW1fX2NvbnRlbnR7XG4gIEBpbmNsdWRlIGZsZXgtZ3JpZC1yb3coKTtcbiAgbWFyZ2luOiAxMHB4O1xuICBwYWRkaW5nOiAxMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBtaW4taGVpZ2h0OiAyMDBweDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuXG4gICYtbG9nb3tcbiAgICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1jb2x1bW4oNiwgMCk7XG4gIH1cblxuICAmLWRlc2NyaXB0aW9uIHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1jb2x1bW4oNik7XG4gIH1cblxufVxuXG4ud2l0aEltYWdle1xuICAucmVjb3JkX19jb250ZW50LWxpc3QtaXRlbV9fY29udGVudC1kZXNjcmlwdGlvbntcbiAgICBAaW5jbHVkZSBmbGV4LWdyaWQtY29sdW1uKDEyKTtcbiAgfVxufVxuXG4ucmVjb3JkX19jb250ZW50LWxpc3QtaXRlbV90aXRsZXtcbiAgZm9udC1zaXplOiByZW0tY2FsYygxOCk7XG4gIGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcblxufVxuXG4ucmVjb3JkX19jb250ZW50LWxpc3QtaXRlbV9saW5re1xuICBmb250LXNpemU6IHJlbS1jYWxjKDEyKTtcbn1cblxuXG4uc3ZnX19saW5re1xuICB3aWR0aDogMjRweDtcbiAgbWFyZ2luLXJpZ2h0OiA1cHg7XG59XG4iLCIubGlua3NfX2NvbnRlbnQtbGlzdHtcbiAgQGluY2x1ZGUgZmxleC1ncmlkLXJvdygpO1xuXG4gICYtaXRlbXtcbiAgICBAaW5jbHVkZSBmbGV4LWdyaWQtY29sdW1uKDEyKTtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICBAaW5jbHVkZSBmbGV4LWdyaWQtY29sdW1uKDYpO1xuICAgIH1cblxuXG4gIH1cbn1cblxuLmxpbmtzX19jb250ZW50LWxpc3QtaXRlbV9fY29udGVudHtcbiAgQGluY2x1ZGUgZmxleC1ncmlkLXJvdygpO1xuICBwYWRkaW5nOiAxNXB4O1xuICBtYXJnaW46IDEwcHggMDtcbiAgXG4gICYtdGl0bGV7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygxOCk7XG4gICAgcGFkZGluZy1yaWdodDogMTBweDtcbiAgICBcbiAgICAmOjpiZWZvcmV7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGJhY2tncm91bmQ6IHVybChcIi4uL2ltZy9wdWNlLmdpZlwiKSBuby1yZXBlYXQgdG9wIGxlZnQ7XG4gICAgICB3aWR0aDogMjVweDtcbiAgICAgIGhlaWdodDogMjVweDtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG4gIH1cblxuICAmLWxpbmt7XG4gICAgLy9mb250LXNpemU6IHJlbS1jYWxjKDEyKTtcbiAgICAvL2NvbG9yOiBkYXJrZW4oJHByaW1hcnktY29sb3IsIDUpO1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgICBjb2xvcjogJHByaW1hcnktY29sb3I7XG4gICAgJjpob3ZlcntcbiAgICAgIGNvbG9yOiBkYXJrZW4oJHByaW1hcnktY29sb3IsIDEwKTtcbiAgICB9XG4gIH1cbn0iLCIuc2VydmljZXNfX2NvbnRlbnQge1xuICBAaW5jbHVkZSBmbGV4LWdyaWQtcm93KCk7XG59XG5cbi5zZXJ2aWNlcy1jb250ZW50X19hcnRpY2xlIHtcbiAgQGluY2x1ZGUgZmxleC1ncmlkLWNvbHVtbigxMik7XG59XG5cbi5zZXJ2aWNlcy1jb250ZW50X19hcnRpY2xlX19jb250ZW50IHtcbiAgQGluY2x1ZGUgZmxleC1ncmlkLXJvdygpO1xuXG4gICYtaW1nIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgQGluY2x1ZGUgZmxleC1ncmlkLWNvbHVtbig0KTtcbiAgICB9XG5cbiAgfVxuXG4gICYtdHh0IHtcbiAgICBAaW5jbHVkZSBmbGV4LWdyaWQtY29sdW1uKDEyKTtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1jb2x1bW4oOCk7XG4gICAgfVxuICB9XG59XG5cbi5zZXJ2aWNlcy1jb250ZW50X19hcnRpY2xlLWxpc3QgbGkge1xuICBkaXNwbGF5IDogbGlzdC1pdGVtO1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIC8vbGlzdC1zdHlsZS1pbWFnZTogdXJsKCcuLi9pbWcvcHVjZS5naWYnKTtcbiAgLy9tYXJnaW46IDVweCAwIC02cHggNXB4O1xuXG5cbiAgJjo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1nL3B1Y2UuZ2lmKSBuby1yZXBlYXQ7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiAyNXB4O1xuICAgIGhlaWdodDogMjVweDtcbiAgICBtYXJnaW46IDBweCA4cHggLTZweCAtMzBweDtcbiAgfVxufSIsIi50ZWFtIHtcbiAgJl9fY29udGVudC1saXN0IHtcbiAgICBAaW5jbHVkZSBmbGV4LWdyaWQtcm93KCk7XG5cbiAgICAmLWl0ZW0ge1xuICAgICAgQGluY2x1ZGUgZmxleC1ncmlkLWNvbHVtbigxMik7XG5cbiAgICB9XG4gIH1cbn1cblxuLnRlYW1fX2NvbnRlbnQtbGlzdC1pdGVtX19jb250ZW50IHtcbiAgQGluY2x1ZGUgZmxleC1ncmlkLXJvdygpO1xuICBtYXJnaW46IDEwcHg7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIG1pbi1oZWlnaHQ6IDIwMHB4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICYtZGVzY3JpcHRpb24ge1xuICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1jb2x1bW4oMTIpO1xuICB9XG59XG5cbi50ZWFtX19jb250ZW50LWxpc3QtaXRlbV9fY29udGVudCB7XG5cbiAgJi1waWN0dXJlIHtcbiAgICBAaW5jbHVkZSBmbGV4LWdyaWQtY29sdW1uKDEyKTtcbiAgICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1jb2x1bW4oNCk7XG5cbiAgICB9XG4gIH1cblxuXG4gICYtZGVzY3JpcHRpb24ge1xuICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1jb2x1bW4oMTIpO1xuICAgIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgQGluY2x1ZGUgZmxleC1ncmlkLWNvbHVtbig4KTtcbiAgICB9XG4gIH1cbn1cblxuLnRlYW1fX2NvbnRlbnQtbGlzdC1pdGVtX3RpdGxlIHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIG1hcmdpbi1ib3R0b206IDBweDtcbn1cblxuLnRlYW1fX2NvbnRlbnQtbGlzdC1pdGVtX2ZvbmN0aW9uIHtcbiAgY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuICBmb250LXNpemU6IDFyZW07XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4udGVhbV9fY29udGVudC1saXN0LWl0ZW1fdGV4dHtcbiAgbWFyZ2luLXRvcDogMjBweDtcbn1cbiIsIi5jb250YWN0IHtcbiAgICBAaW5jbHVkZSBmbGV4LWdyaWQtcm93KCk7XG5cblxuICAgICZfX2FkZHJlc3Mge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWdyaWQtY29sdW1uKDEyKTtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSB1cCkge1xuICAgICAgICAgICAgQGluY2x1ZGUgZmxleC1ncmlkLWNvbHVtbig0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1vcmRlcigyKTtcbiAgICAgICAgfVxuXG5cbiAgICAgICAgJi5jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDRyZW0gMXJlbTtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgYXtcbiAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2lucXVpcmUge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWdyaWQtY29sdW1uKDEyKTtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSB1cCkge1xuICAgICAgICAgICAgQGluY2x1ZGUgZmxleC1ncmlkLWNvbHVtbig4KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1vcmRlcigxKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2NhbGxvdXQge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWdyaWQtcm93KCk7XG5cbiAgICAgICAgLmNhbGxvdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgZmxleC1ncmlkLWNvbHVtbigpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLm5ld3Mge1xuICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1yb3coKTtcbiAgICBwYWRkaW5nOiAjeyRnbG9iYWwtcGFkZGluZyAqIDR9ICRnbG9iYWwtcGFkZGluZztcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgLy9tYXJnaW4tYm90dG9tOiAxcHg7XG5cbiAgICAmX19jb250ZW50IHtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1ncmlkLW9yZGVyKDIpO1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIHVwKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBmbGV4LWdyaWQtY29sdW1uKDcsIDEwcmVtKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1vcmRlcigxKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2NvbnRlbnQtLXdpZGUge1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkge1xuICAgICAgICAgICAgQGluY2x1ZGUgZmxleC1ncmlkLWNvbHVtbigxMiwgJGdsb2JhbC1wYWRkaW5nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1vcmRlcigxKTtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1ncmlkLWNvbHVtbigxMiwgMTByZW0pO1xuICAgIH1cblxuICAgICZfX3BpY3R1cmUge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1jb2x1bW4oKTtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1ncmlkLW9yZGVyKDEpO1xuXG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogJGdsb2JhbC1tYXJnaW4gKiAyO1xuICAgICAgICB9XG5cblxuICAgICAgICBpbWcge1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogLjJzIGxpbmVhciBhbGw7XG4gICAgICAgIH1cblxuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJGdsb2JhbC1tYXJnaW4gKiAyO1xuICAgICAgICB9XG5cblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSB1cCkge1xuICAgICAgICAgICAgQGluY2x1ZGUgZmxleC1ncmlkLWNvbHVtbig1LCAxMHJlbSk7XG4gICAgICAgICAgICBAaW5jbHVkZSBmbGV4LWdyaWQtb3JkZXIoMik7XG5cbiAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fdGl0bGUge1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDI4KTtcblxuICAgICAgICBtYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcblxuICAgICAgICA+IHNtYWxsIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTgpO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRnbG9iYWwtbWFyZ2luO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fc2hvcnQtZGVzY3JpcHRpb24ge1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW4gKiAyO1xuICAgIH1cblxuICAgIC5idXR0b24ge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1leHBhbmQoKVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi50ZXh0LXJpZ2h0IC5idXR0b24ge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgfVxuXG5cbiAgICAmOmhvdmVyICZfX3BpY3R1cmUgaW1nIHtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xuICAgIH1cbn1cblxuQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XG4gICAgLm5ld3MudGV4dC1yaWdodCB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICBoMiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkZ2xvYmFsLW1hcmdpbjtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuXG4ucG9zdCB7XG4gICAgQGlmIChsaWdodG5lc3MoJGJvZHktYmFja2dyb3VuZCkgPiA2MCUpIHtcbiAgICAgICAgJGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oJGJvZHktYmFja2dyb3VuZCwgMiUpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgICAkYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRib2R5LWJhY2tncm91bmQsIDIlKTtcbiAgICB9XG5cbiAgICA+ICoge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cblxuICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1yb3coKTtcblxuICAgICZfX2hlYWRlciB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1yb3coKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgJl9fcGljdHVyZSB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1jb2x1bW4oMTIpO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSB1cCkge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1jb2x1bW4oNik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19tZXRhcyB7XG5cbiAgICAgICAgQGluY2x1ZGUgZmxleC1ncmlkLWNvbHVtbigxMik7XG5cbiAgICAgICAgcGFkZGluZzogJGdsb2JhbC1tYXJnaW4gKiAzICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgaDEgIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbG9yO1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygzMik7XG4gICAgICAgIH1cblxuICAgICAgICB0aW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbG9yO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW47XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiByZW0tY2FsYygxNCk7XG4gICAgICAgICAgICAgICAgd2lkdGg6IHJlbS1jYWxjKDE0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBzdmcge1xuICAgICAgICAgICAgZmlsbDogJHNlY29uZGFyeS1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5idXR0b25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRnbG9iYWwtbWFyZ2luICogNDtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1yb3coKTtcblxuICAgICAgICAgICAgPiBkaXYge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1jb2x1bW4oMTIpO1xuXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuYnV0dG9uIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3ctc3R5bGUoJHNlY29uZGFyeS1jb2xvcik7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b24taG9sbG93KCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b24tZXhwYW5kKCk7XG5cblxuICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICBmaWxsOiAkc2Vjb25kYXJ5LWNvbG9yO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMXJlbTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciBzdmcge1xuICAgICAgICAgICAgICAgIGZpbGw6IHNjYWxlLWNvbG9yKCRzZWNvbmRhcnktY29sb3IsICRsaWdodG5lc3M6IC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSB1cCkge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1jb2x1bW4oNik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19jb250ZW50IHtcbiAgICAgICAgcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nICogNDtcbiAgICAgICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQtY29sb3I7XG4gICAgfVxuXG4gICAgJl9fZm9vdGVyIHtcbiAgICAgICAgQGluY2x1ZGUgY2xlYXJmaXgoKTtcbiAgICAgICAgQGluY2x1ZGUgc2hvdy1mb3IobGFyZ2UpO1xuXG5cbiAgICAgICAgLmJ1dHRvbiB7XG5cbiAgICAgICAgICAgICRidXR0b24tY29sb3I6IHNtYXJ0LXNjYWxlKCRiYWNrZ3JvdW5kLWNvbG9yLCA0MCUpO1xuICAgICAgICAgICAgJGJ1dHRvbi1ob3Zlcjogc2NhbGUtY29sb3IoJGJ1dHRvbi1jb2xvciwgJGxpZ2h0bmVzczogLTUwJSk7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b24taG9sbG93KCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b24taG9sbG93LXN0eWxlKCRidXR0b24tY29sb3IpO1xuXG4gICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTBweDtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTBweDtcbiAgICAgICAgICAgICAgICBmaWxsOiAkYnV0dG9uLWNvbG9yO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyIHN2Z3tcbiAgICAgICAgICAgICAgICBmaWxsOiAkYnV0dG9uLWhvdmVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLnJpZ2h0IHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5sZWZ0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgYnV0dG9uXG4vLy8vXG5cbi8vLyBQYWRkaW5nIGluc2lkZSBidXR0b25zLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tcGFkZGluZzogMC44NWVtIDFlbSAhZGVmYXVsdDtcblxuLy8vIE1hcmdpbiBhcm91bmQgYnV0dG9ucy5cbi8vLyBAdHlwZSBMaXN0XG4kYnV0dG9uLW1hcmdpbjogMCAwICRnbG9iYWwtbWFyZ2luIDAgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZpbGwgZm9yIGJ1dHRvbnMuIENhbiBlaXRoZXIgYmUgYHNvbGlkYCBvciBgaG9sbG93YC5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kYnV0dG9uLWZpbGw6IHNvbGlkICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIENvbG9yXG4kYnV0dG9uLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvbiBob3ZlciBmb3IgYnV0dG9ucy5cbi8vLyBAdHlwZSBDb2xvclxuJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyOiBzY2FsZS1jb2xvcigkYnV0dG9uLWJhY2tncm91bmQsICRsaWdodG5lc3M6IC0xNSUpICFkZWZhdWx0O1xuXG4vLy8gRm9udCBjb2xvciBmb3IgYnV0dG9ucy5cbi8vLyBAdHlwZSBMaXN0XG4kYnV0dG9uLWNvbG9yOiAjZmZmICFkZWZhdWx0O1xuXG4vLy8gRm9udCBjb2xvciBmb3IgYnV0dG9ucywgaWYgdGhlIGJhY2tncm91bmQgaXMgbGlnaHQuXG4vLy8gQHR5cGUgTGlzdFxuJGJ1dHRvbi1jb2xvci1hbHQ6ICMwMDAgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgcmFkaXVzIGZvciBidXR0b25zLCBkZWZhdWx0ZWQgdG8gZ2xvYmFsLXJhZGl1cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRidXR0b24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIFNpemVzIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIE1hcFxuJGJ1dHRvbi1zaXplczogKFxuICB0aW55OiAwLjZyZW0sXG4gIHNtYWxsOiAwLjc1cmVtLFxuICBkZWZhdWx0OiAwLjlyZW0sXG4gIGxhcmdlOiAxLjI1cmVtLFxuKSAhZGVmYXVsdDtcblxuLy8vIG9wYWNpdHkgZm9yIGEgZGlzYWJsZWQgYnV0dG9uLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tb3BhY2l0eS1kaXNhYmxlZDogMC4yNSAhZGVmYXVsdDtcblxuLy8gSW50ZXJuYWw6IGZsaXAgZnJvbSBtYXJnaW4tcmlnaHQgdG8gbWFyZ2luLWxlZnQgZm9yIGRlZmF1bHRzXG5AaWYgJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSAncnRsJyB7XG4gICRidXR0b24tbWFyZ2luOiAwIDAgJGdsb2JhbC1tYXJnaW4gJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XG59XG5cbi8vIFRPRE86IERvY3VtZW50IGJ1dHRvbi1iYXNlKCkgbWl4aW5cbkBtaXhpbiBidXR0b24tYmFzZSB7XG4gIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMjVzIGVhc2Utb3V0O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogJGJ1dHRvbi1yYWRpdXM7XG4gIHBhZGRpbmc6ICRidXR0b24tcGFkZGluZztcbiAgbWFyZ2luOiAkYnV0dG9uLW1hcmdpbjtcbiAgZm9udC1zaXplOiBtYXAtZ2V0KCRidXR0b24tc2l6ZXMsIGRlZmF1bHQpO1xufVxuXG4vLy8gRXhwYW5kcyBhIGJ1dHRvbiB0byBtYWtlIGl0IGZ1bGwtd2lkdGguXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZXhwYW5kIFt0cnVlXSAtIFNldCB0byBgdHJ1ZWAgdG8gZW5hYmxlIHRoZSBleHBhbmQgYmVoYXZpb3IuIFNldCB0byBgZmFsc2VgIHRvIHJldmVyc2UgdGhpcyBiZWhhdmlvci5cbkBtaXhpbiBidXR0b24tZXhwYW5kKCRleHBhbmQ6IHRydWUpIHtcbiAgQGlmICRleHBhbmQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgfVxuICBAZWxzZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG1hcmdpbjogJGJ1dHRvbi1tYXJnaW47XG4gIH1cbn1cblxuLy8vIFNldHMgdGhlIHZpc3VhbCBzdHlsZSBvZiBhIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZCBbJGJ1dHRvbi1iYWNrZ3JvdW5kXSAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZC1ob3ZlciBbJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyXSAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJ1dHRvbiBvbiBob3Zlci4gU2V0IHRvIGBhdXRvYCB0byBoYXZlIHRoZSBtaXhpbiBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIGEgaG92ZXIgY29sb3IuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskYnV0dG9uLWNvbG9yXSAtIFRleHQgY29sb3Igb2YgdGhlIGJ1dHRvbi4gU2V0IHRvIGBhdXRvYCB0byBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIGEgY29sb3IgYmFzZWQgb24gdGhlIGJhY2tncm91bmQgY29sb3IuXG5AbWl4aW4gYnV0dG9uLXN0eWxlKFxuICAkYmFja2dyb3VuZDogJGJ1dHRvbi1iYWNrZ3JvdW5kLFxuICAkYmFja2dyb3VuZC1ob3ZlcjogJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyLFxuICAkY29sb3I6ICRidXR0b24tY29sb3Jcbikge1xuICBAaWYgJGNvbG9yID09IGF1dG8ge1xuICAgICRjb2xvcjogaXNpdGxpZ2h0KCRiYWNrZ3JvdW5kKTtcbiAgfVxuXG4gIEBpZiAkYmFja2dyb3VuZC1ob3ZlciA9PSBhdXRvIHtcbiAgICAkYmFja2dyb3VuZC1ob3Zlcjogc2NhbGUtY29sb3IoJGJhY2tncm91bmQsICRsaWdodG5lc3M6IC0yMCUpO1xuICB9XG5cbiAgQGlmIGxpZ2h0bmVzcygkYmFja2dyb3VuZCkgPj0gNzAlIHtcbiAgICAkY29sb3I6ICRidXR0b24tY29sb3ItYWx0O1xuICB9XG4gIEBlbHNlIHtcbiAgICAkY29sb3I6ICRidXR0b24tY29sb3I7XG4gIH1cblxuICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgY29sb3I6ICRjb2xvcjtcblxuICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZC1ob3ZlcjtcbiAgICBjb2xvcjogJGNvbG9yO1xuICB9XG59XG5cbi8vLyBSZW1vdmVzIGJhY2tncm91bmQgZmlsbCBvbiBob3ZlciBhbmQgZm9jdXMgZm9yIGhvbGxvdyBidXR0b25zLlxuQG1peGluIGJ1dHRvbi1ob2xsb3cge1xuICAmLFxuICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgfVxufVxuXG5AbWl4aW4gYnV0dG9uLWhvbGxvdy1zdHlsZSgkY29sb3I6ICRwcmltYXJ5LWNvbG9yKSB7XG4gICRjb2xvci1ob3Zlcjogc2NhbGUtY29sb3IoJGNvbG9yLCAkbGlnaHRuZXNzOiAtNTAlKTtcblxuICBib3JkZXI6IDFweCBzb2xpZCAkY29sb3I7XG4gIGNvbG9yOiAkY29sb3I7XG5cbiAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgYm9yZGVyLWNvbG9yOiAkY29sb3ItaG92ZXI7XG4gICAgY29sb3I6ICRjb2xvci1ob3ZlcjtcbiAgfVxufVxuXG4vLy8gQWRkcyBkaXNhYmxlZCBzdHlsZXMgdG8gYSBidXR0b24gYnkgZmFkaW5nIHRoZSBlbGVtZW50LCByZXNldGluZyB0aGUgY3Vyc29yLCBhbmQgZGlzYWJsaW5nIHBvaW50ZXIgZXZlbnRzLlxuQG1peGluIGJ1dHRvbi1kaXNhYmxlZCB7XG4gIG9wYWNpdHk6ICRidXR0b24tb3BhY2l0eS1kaXNhYmxlZDtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi8vLyBBZGRzIGEgZHJvcGRvd24gYXJyb3cgdG8gYSBidXR0b24uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRzaXplIFswLjRlbV0gLSBTaXplIG9mIHRoZSBhcnJvdy4gV2UgcmVjb21tZW5kIHVzaW5nIGFuIGBlbWAgdmFsdWUgc28gdGhlIHRyaWFuZ2xlIHNjYWxlcyB3aGVuIHVzZWQgaW5zaWRlIGRpZmZlcmVudCBzaXplcyBvZiBidXR0b25zLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbd2hpdGVdIC0gQ29sb3Igb2YgdGhlIGFycm93LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkb2Zmc2V0IFskYnV0dG9uLXBhZGRpbmddIC0gRGlzdGFuY2UgYmV0d2VlbiB0aGUgYXJyb3cgYW5kIHRoZSB0ZXh0IG9mIHRoZSBidXR0b24uIERlZmF1bHRzIHRvIHdoYXRldmVyIHRoZSByaWdodCBwYWRkaW5nIG9mIGEgYnV0dG9uIGlzLlxuQG1peGluIGJ1dHRvbi1kcm9wZG93bihcbiAgJHNpemU6IDAuNGVtLFxuICAkY29sb3I6ICR3aGl0ZSxcbiAgJG9mZnNldDogZ2V0LXNpZGUoJGJ1dHRvbi1wYWRkaW5nLCByaWdodClcbikge1xuICAmOjphZnRlciB7XG4gICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRzaXplLCAkY29sb3IsIGRvd24pO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDAuNGVtOyAvLyBBbGlnbnMgdGhlIGFycm93IHdpdGggdGhlIHRleHQgb2YgdGhlIGJ1dHRvblxuICAgIGZsb2F0OiAjeyRnbG9iYWwtcmlnaHR9O1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IGdldC1zaWRlKCRidXR0b24tcGFkZGluZywgcmlnaHQpO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgfVxufVxuXG4vLy8gQWRkcyBhbGwgc3R5bGVzIGZvciBhIGJ1dHRvbi4gRm9yIG1vcmUgZ3JhbnVsYXIgY29udHJvbCBvdmVyIHN0eWxlcywgdXNlIHRoZSBpbmRpdmlkdWFsIGJ1dHRvbiBtaXhpbnMuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZXhwYW5kIFtmYWxzZV0gLSBTZXQgdG8gYHRydWVgIHRvIG1ha2UgdGhlIGJ1dHRvbiBmdWxsLXdpZHRoLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kIFskYnV0dG9uLWJhY2tncm91bmRdIC0gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgYnV0dG9uLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kLWhvdmVyIFskYnV0dG9uLWJhY2tncm91bmQtaG92ZXJdIC0gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgYnV0dG9uIG9uIGhvdmVyLiBTZXQgdG8gYGF1dG9gIHRvIGhhdmUgdGhlIG1peGluIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgYSBob3ZlciBjb2xvci5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRidXR0b24tY29sb3JdIC0gVGV4dCBjb2xvciBvZiB0aGUgYnV0dG9uLiBTZXQgdG8gYGF1dG9gIHRvIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgYSBjb2xvciBiYXNlZCBvbiB0aGUgYmFja2dyb3VuZCBjb2xvci5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzdHlsZSBbc29saWRdIC0gU2V0IHRvIGBob2xsb3dgIHRvIGNyZWF0ZSBhIGhvbGxvdyBidXR0b24uIFRoZSBjb2xvciBkZWZpbmVkIGluIGAkYmFja2dyb3VuZGAgd2lsbCBiZSB1c2VkIGFzIHRoZSBwcmltYXJ5IGNvbG9yIG9mIHRoZSBidXR0b24uXG5AbWl4aW4gYnV0dG9uKFxuICAkZXhwYW5kOiBmYWxzZSxcbiAgJGJhY2tncm91bmQ6ICRidXR0b24tYmFja2dyb3VuZCxcbiAgJGJhY2tncm91bmQtaG92ZXI6ICRidXR0b24tYmFja2dyb3VuZC1ob3ZlcixcbiAgJGNvbG9yOiAkYnV0dG9uLWNvbG9yLFxuICAkc3R5bGU6ICRidXR0b24tZmlsbFxuKSB7XG4gIEBpbmNsdWRlIGJ1dHRvbi1iYXNlO1xuXG4gIEBpZiAkc3R5bGUgPT0gc29saWQge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkYmFja2dyb3VuZCwgJGJhY2tncm91bmQtaG92ZXIsICRjb2xvcik7XG4gIH1cbiAgQGVsc2UgaWYgJHN0eWxlID09IGhvbGxvdyB7XG4gICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdztcbiAgICBAaW5jbHVkZSBidXR0b24taG9sbG93LXN0eWxlKCRiYWNrZ3JvdW5kKTtcbiAgfVxuXG4gIEBpZiAkZXhwYW5kIHtcbiAgICBAaW5jbHVkZSBidXR0b24tZXhwYW5kO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWJ1dHRvbiB7XG4gIC5idXR0b24ge1xuICAgIEBpbmNsdWRlIGJ1dHRvbjtcblxuICAgIC8vIFNpemVzXG4gICAgJi50aW55ICAgICB7IGZvbnQtc2l6ZTogbWFwLWdldCgkYnV0dG9uLXNpemVzLCB0aW55KTsgfVxuICAgICYuc21hbGwgICAgeyBmb250LXNpemU6IG1hcC1nZXQoJGJ1dHRvbi1zaXplcywgc21hbGwpOyB9XG4gICAgJi5sYXJnZSAgICB7IGZvbnQtc2l6ZTogbWFwLWdldCgkYnV0dG9uLXNpemVzLCBsYXJnZSk7IH1cbiAgICAmLmV4cGFuZGVkIHsgQGluY2x1ZGUgYnV0dG9uLWV4cGFuZDsgfVxuXG4gICAgLy8gQ29sb3JzXG4gICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkZm91bmRhdGlvbi1jb2xvcnMge1xuICAgICAgQGlmICRidXR0b24tZmlsbCAhPSBob2xsb3cge1xuICAgICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgICBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGNvbG9yLCBhdXRvKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgICBAaW5jbHVkZSBidXR0b24taG9sbG93LXN0eWxlKCRjb2xvcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLiN7JG5hbWV9LmRyb3Bkb3duOjphZnRlciB7XG4gICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJGNvbG9yO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gSG9sbG93IHN0eWxlXG4gICAgQGlmICRidXR0b24tZmlsbCAhPSBob2xsb3cge1xuICAgICAgJi5ob2xsb3cge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24taG9sbG93O1xuICAgICAgICBAaW5jbHVkZSBidXR0b24taG9sbG93LXN0eWxlO1xuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGZvdW5kYXRpb24tY29sb3JzIHtcbiAgICAgICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3ctc3R5bGUoJGNvbG9yKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBEaXNhYmxlZCBzdHlsZVxuICAgICYuZGlzYWJsZWQsXG4gICAgJltkaXNhYmxlZF0ge1xuICAgICAgQGluY2x1ZGUgYnV0dG9uLWRpc2FibGVkO1xuICAgIH1cblxuICAgIC8vIERyb3Bkb3duIGFycm93XG4gICAgJi5kcm9wZG93biB7XG4gICAgICBAaW5jbHVkZSBidXR0b24tZHJvcGRvd247XG5cbiAgICAgIEBpZiAkYnV0dG9uLWZpbGwgPT0gaG9sbG93IHtcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6ICRidXR0b24tYmFja2dyb3VuZDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEJ1dHRvbiB3aXRoIGRyb3Bkb3duIGFycm93IG9ubHlcbiAgICAmLmFycm93LW9ubHk6OmFmdGVyIHtcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IDA7XG4gICAgICBmbG9hdDogbm9uZTtcbiAgICAgIHRvcDogMC4yZW07XG4gICAgfVxuICB9XG59XG4iLCIud29ya3Mge1xuICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1yb3coKTtcblxuXG5cbiAgICAmX19pdGVtcyB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luICogMjtcblxuICAgICAgICBAaW5jbHVkZSBmbGV4LWdyaWQtY29sdW1uKDEyKTtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICAgICAgQGluY2x1ZGUgZmxleC1ncmlkLWNvbHVtbig2KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgdXApIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1jb2x1bW4oNCk7XG4gICAgICAgIH1cblxuICAgICAgICBiYWNrZ3JvdW5kOiAkY2FyZHMtYmFja2dyb3VuZDtcbiAgICAgICAgYmFja2dyb3VuZC1jbGlwOiBjb250ZW50LWJveDtcblxuXG4gICAgICAgID4gYXJ0aWNsZSB7XG5cbiAgICAgICAgICAgIGNvbG9yOiAkY2FyZHMtY29sb3I7XG5cbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19waWN0dXJlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgLjVzO1xuXG4gICAgICAgICAgICAgICAgQGV4dGVuZCAlZmlsdGVyLWhvdmVyO1xuXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5idXR0b24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGFic29sdXRlLWNlbnRlcjtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTAwdmgpO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6IDk5OTk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyICZfX3BpY3R1cmUgLmJ1dHRvbntcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGFic29sdXRlLWNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIgJl9fcGljdHVyZTo6YWZ0ZXIge1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZztcbiAgICAgICAgICAgIGNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxOCk7XG4gICAgICAgICAgICBmb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLndvcmsge1xuICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1yb3coKTtcblxuICAgIEBpZiAobGlnaHRuZXNzKCRib2R5LWJhY2tncm91bmQpID4gNjAlKSB7XG4gICAgICAgICRiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKCRib2R5LWJhY2tncm91bmQsIDIlKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICAgJGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigkYm9keS1iYWNrZ3JvdW5kLCAyJSk7XG4gICAgfVxuXG4gICAgPiBkaXYge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWdyaWQtY29sdW1uKDEyKTtcbiAgICB9XG5cbiAgICAmX19mb290ZXIge1xuICAgICAgICBtYXJnaW4tdG9wOiAkZ2xvYmFsLW1hcmdpbiAqIDI7XG4gICAgICAgIEBpbmNsdWRlIGNsZWFyZml4KCk7XG4gICAgICAgIEBpbmNsdWRlIHNob3ctZm9yKGxhcmdlKTtcblxuICAgICAgICAuYnV0dG9uIHtcblxuICAgICAgICAgICAgJGJ1dHRvbi1jb2xvcjogc21hcnQtc2NhbGUoJGJhY2tncm91bmQtY29sb3IsIDQwJSk7XG4gICAgICAgICAgICAkYnV0dG9uLWhvdmVyOiBzY2FsZS1jb2xvcigkYnV0dG9uLWNvbG9yLCAkbGlnaHRuZXNzOiAtNTAlKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3coKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3ctc3R5bGUoJGJ1dHRvbi1jb2xvcik7XG5cbiAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMHB4O1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMHB4O1xuICAgICAgICAgICAgICAgIGZpbGw6ICRidXR0b24tY29sb3I7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgc3ZnIHtcbiAgICAgICAgICAgICAgICBmaWxsOiAkYnV0dG9uLWhvdmVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLnJpZ2h0IHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5sZWZ0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ud29yay1zdHJpcGUge1xuICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1yb3cobmVzdGVkLCAxMDB2dyk7XG5cbiAgICA+IGRpdiA+IGEge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgei1pbmRleDogOTk5OTk7XG4gICAgfVxuXG4gICAgPiBkaXYge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWdyaWQtY29sdW1uKDEyLCAwKTtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICAgICAgQGluY2x1ZGUgZmxleC1ncmlkLWNvbHVtbig2LCAwKTtcbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBmbGV4LWdyaWQtY29sdW1uKDMsIDApO1xuICAgICAgICB9XG5cbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cblxuXG4gICAgICAgICY6aG92ZXIgLmNhcHRpb24ge1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcblxuXG4gICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIC41cztcblxuICAgICAgICAgICAgICAgIEBleHRlbmQgJWZpbHRlci1ob3ZlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG5cbiAgICAgICAgLmNhcHRpb24ge1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIC41cztcblxuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgIGNvbG9yOiAkdG9wYmFyLWxpbmstY29sb3I7XG5cbiAgICAgICAgICAgIEBleHRlbmQgJWZpbHRlci1ob3ZlcjtcblxuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDB2aCk7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbltkYXRhLXdoYXRpbnB1dD0ndG91Y2gnXSAud29yay1zdHJpcGUgY2FwdGlvbiB7XG4gICAgb3BhY2l0eTogMTtcbn0iLCIuc3RyaXAge1xuICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1yb3coKTtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIG1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luICogMjtcbn1cblxuLnN0cmlwX190aXRsZSB7XG4gICAgcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nO1xuICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1jb2x1bW4oKTtcbiAgICBjb2xvcjogJGxlYWQtdGl0bGUtY29sb3I7XG4gICAgdGV4dC10cmFuc2Zvcm06ICRsZWFkLXRpdGxlLXN0eWxlO1xuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMzIpO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG5cbiAgICAmOjpiZWZvcmV7XG4gICAgICAgIGNvbnRlbnQ6Jyc7XG4gICAgICAgIGJhY2tncm91bmQ6IHVybChcIi4uL2ltZy9wdWNlLmdpZlwiKSBuby1yZXBlYXQ7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgd2lkdGg6IDI1cHg7XG4gICAgICAgIGhlaWdodDogMjVweDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgfVxufVxuXG4uc3RyaXBfX2JyZWFkY3J1bWJzIHtcbiAgICBAaW5jbHVkZSBmbGV4LWdyaWQtY29sdW1uKHNocmluayk7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cblxuLnN0cmlwIHtcbiAgICAmLS1zZWNvbmRhcnkge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkbGVhZC1jb2xvcjtcbiAgICB9XG5cbiAgICAmLS1uby1tYXJnaW4sXG4gICAgJi0tbm8tbWFyZ2luIC5zdHJpcFxuICAgIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG59XG5cbi5zdHJpcC0tY2FsbG91dCB7XG4gICAgcGFkZGluZzogMXJlbSAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgLy9iYWNrZ3JvdW5kOiB1cmwoJy4uL2ltZy9hY2Nlc3Nvcnktcy5wbmcnKSBuby1yZXBlYXQgY2VudGVyIGNlbnRlciBmaXhlZDtcbiAgICAvL2JhY2tncm91bmQtc2l6ZTogY292ZXI7XG5cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAvL0BpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgLy8gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWcvYWNjZXNzb3J5LW0ucG5nJyk7XG4gICAgLy99XG4gICAgLy9AaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgLy8gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWcvYWNjZXNzb3J5LWwucG5nJyk7XG4gICAgLy99XG4gICAgLy9AaW5jbHVkZSBicmVha3BvaW50KHhsYXJnZSkge1xuICAgIC8vICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1nL2FjY2Vzc29yeS14bC5wbmcnKTtcbiAgICAvL31cbiAgICAvL0BpbmNsdWRlIGJyZWFrcG9pbnQoeHhsYXJnZSkge1xuICAgIC8vICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1nL2FjY2Vzc29yeS14eGwucG5nJyk7XG4gICAgLy99XG5cbiAgICAmOjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICB9XG5cbiAgICAvLyY6OmFmdGVyOm5vdCguc3RyaXAtLWNhbGxvdXQtbmV3c2xldHRlcikge1xuICAgIC8vICAgIEBleHRlbmQgJWZpbHRlci1hY2Nlc3Nvcnk7XG4gICAgLy99XG5cbiAgICA+IGRpdiB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1yb3coKTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIGNvbG9yOiAkaGVyby1jb2xvcjtcbiAgICAgICAgei1pbmRleDogOTk5OTtcblxuICAgICAgICA+IGRpdiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBmbGV4LWdyaWQtY29sdW1uKCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5zdHJpcC0tY2FsbG91dC1uZXdzbGV0dGVyIHtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoJy4uL2ltZy9uZXdzbGV0dGVyLW0ucG5nJykgbm8tcmVwZWF0IGNlbnRlciBjZW50ZXIgZml4ZWQ7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1nL25ld3NsZXR0ZXItbS5wbmcnKTtcbiAgICB9XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltZy9uZXdzbGV0dGVyLWwucG5nJyk7XG4gICAgfVxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoeGxhcmdlKSB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1nL25ld3NsZXR0ZXIteGwucG5nJyk7XG4gICAgfVxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoeHhsYXJnZSkge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltZy9uZXdzbGV0dGVyLXh4bC5wbmcnKTtcbiAgICB9XG5cbiAgICAmOjphZnRlciB7XG4gICAgICAgIEBleHRlbmQgJWZpbHRlci1lbWFpbGluZztcbiAgICB9XG59XG4iLCIuc2xpZGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gIHRvcDogMDtcbiAgei1pbmRleDogMTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAuc2xpZGVyLS1pdGVtcyB7XG4gICAgaGVpZ2h0OiA0MDBweDtcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgfVxufVxuXG4iLG51bGxdLCJzb3VyY2VSb290IjoiL3NvdXJjZS8ifQ== */

/*!
 * Justified Gallery - v3.6.0
 * http://miromannino.github.io/Justified-Gallery/
 * Copyright (c) 2015 Miro Mannino
 * Licensed under the MIT license.
 */
@-webkit-keyframes justified-gallery-show-caption-animation{from{opacity:0}to{opacity:.7}}@-moz-keyframes justified-gallery-show-caption-animation{from{opacity:0}to{opacity:.7}}@-o-keyframes justified-gallery-show-caption-animation{from{opacity:0}to{opacity:.7}}@keyframes justified-gallery-show-caption-animation{from{opacity:0}to{opacity:.7}}@-webkit-keyframes justified-gallery-show-entry-animation{from{opacity:0}to{opacity:1}}@-moz-keyframes justified-gallery-show-entry-animation{from{opacity:0}to{opacity:1}}@-o-keyframes justified-gallery-show-entry-animation{from{opacity:0}to{opacity:1}}@keyframes justified-gallery-show-entry-animation{from{opacity:0}to{opacity:1}}.justified-gallery{width:100%;position:relative;overflow:hidden}.justified-gallery>a,.justified-gallery>div{position:absolute;display:inline-block;overflow:hidden;opacity:0;filter:alpha(opacity=0)}.justified-gallery>a>img,.justified-gallery>div>img,.justified-gallery>a>a>img,.justified-gallery>div>a>img{position:absolute;top:50%;left:50%;margin:0;padding:0;border:0}.justified-gallery>a>.caption,.justified-gallery>div>.caption{display:none;position:absolute;bottom:0;padding:5px;background-color:#000;left:0;right:0;margin:0;color:#fff;font-size:12px;font-weight:300;font-family:sans-serif}.justified-gallery>a>.caption.caption-visible,.justified-gallery>div>.caption.caption-visible{display:initial;opacity:.7;filter:"alpha(opacity=70)";-webkit-animation:justified-gallery-show-caption-animation 500ms 0 ease;-moz-animation:justified-gallery-show-caption-animation 500ms 0 ease;-ms-animation:justified-gallery-show-caption-animation 500ms 0 ease}.justified-gallery>.entry-visible{opacity:1;filter:alpha(opacity=100);-webkit-animation:justified-gallery-show-entry-animation 500ms 0 ease;-moz-animation:justified-gallery-show-entry-animation 500ms 0 ease;-ms-animation:justified-gallery-show-entry-animation 500ms 0 ease}.justified-gallery>.jg-filtered{display:none}.justified-gallery>.spinner{position:absolute;bottom:0;margin-left:-24px;padding:10px 0;left:50%;opacity:initial;filter:initial;overflow:initial}.justified-gallery>.spinner>span{display:inline-block;opacity:0;filter:alpha(opacity=0);width:8px;height:8px;margin:0 4px;background-color:#000;border-top-left-radius:6px;border-top-right-radius:6px;border-bottom-right-radius:6px;border-bottom-left-radius:6px}
.lg-actions .lg-next,.lg-actions .lg-prev,.lg-sub-html,.lg-toolbar{background-color:rgba(0,0,0,.45);z-index:1080}#lg-counter,.lg-outer .lg-video-cont{vertical-align:middle;display:inline-block}@font-face{font-family:lg;src:url(../fonts/lg.eot?n1z373);src:url(../fonts/lg.eot?#iefixn1z373) format("embedded-opentype"),url(../fonts/lg.woff?n1z373) format("woff"),url(../fonts/lg.ttf?n1z373) format("truetype"),url(../fonts/lg.svg?n1z373#lg) format("svg");font-weight:400;font-style:normal}.lg-icon{font-family:lg;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.lg-actions .lg-next,.lg-actions .lg-prev{border-radius:2px;color:#999;cursor:pointer;display:block;font-size:22px;margin-top:-10px;padding:8px 10px 9px;position:absolute;top:50%}.lg-actions .lg-next.disabled,.lg-actions .lg-prev.disabled{pointer-events:none;opacity:.5}.lg-actions .lg-next:hover,.lg-actions .lg-prev:hover{color:#FFF}.lg-actions .lg-next{right:20px}.lg-actions .lg-next:before{content:"\e095"}.lg-actions .lg-prev{left:20px}.lg-actions .lg-prev:after{content:"\e094"}@-webkit-keyframes lg-right-end{0%,100%{left:0}50%{left:-30px}}@-moz-keyframes lg-right-end{0%,100%{left:0}50%{left:-30px}}@-ms-keyframes lg-right-end{0%,100%{left:0}50%{left:-30px}}@keyframes lg-right-end{0%,100%{left:0}50%{left:-30px}}@-webkit-keyframes lg-left-end{0%,100%{left:0}50%{left:30px}}@-moz-keyframes lg-left-end{0%,100%{left:0}50%{left:30px}}@-ms-keyframes lg-left-end{0%,100%{left:0}50%{left:30px}}@keyframes lg-left-end{0%,100%{left:0}50%{left:30px}}.lg-outer.lg-right-end .lg-object{-webkit-animation:lg-right-end .3s;-o-animation:lg-right-end .3s;animation:lg-right-end .3s;position:relative}.lg-outer.lg-left-end .lg-object{-webkit-animation:lg-left-end .3s;-o-animation:lg-left-end .3s;animation:lg-left-end .3s;position:relative}.lg-toolbar{left:0;position:absolute;top:0;width:100%}.lg-toolbar .lg-icon{color:#999;cursor:pointer;float:right;font-size:24px;height:47px;line-height:27px;padding:10px 0;text-align:center;width:50px;text-decoration:none!important;outline:0}.lg-toolbar .lg-icon:hover{color:#FFF}.lg-toolbar .lg-close:after{content:"\e070"}.lg-toolbar .lg-download:after{content:"\e0f2"}.lg-sub-html{bottom:0;color:#EEE;font-size:16px;left:0;padding:10px 40px;position:fixed;right:0;text-align:center}.lg-sub-html h4{margin:0;font-size:13px;font-weight:700}.lg-sub-html p{font-size:12px;margin:5px 0 0}#lg-counter{color:#999;font-size:16px;padding-left:20px;padding-top:12px}.lg-next,.lg-prev,.lg-toolbar{opacity:1;-webkit-transition:-webkit-transform .35s cubic-bezier(0,0,.25,1) 0s,opacity .35s cubic-bezier(0,0,.25,1) 0s;-moz-transition:-moz-transform .35s cubic-bezier(0,0,.25,1) 0s,opacity .35s cubic-bezier(0,0,.25,1) 0s;-o-transition:-o-transform .35s cubic-bezier(0,0,.25,1) 0s,opacity .35s cubic-bezier(0,0,.25,1) 0s;transition:transform .35s cubic-bezier(0,0,.25,1) 0s,opacity .35s cubic-bezier(0,0,.25,1) 0s}.lg-hide-items .lg-prev{opacity:0;-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}.lg-hide-items .lg-next{opacity:0;-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}.lg-hide-items .lg-toolbar{opacity:0;-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}body:not(.lg-from-hash) .lg-outer.lg-start-zoom .lg-object{-webkit-transform:scale3d(.5,.5,.5);transform:scale3d(.5,.5,.5);opacity:0;-webkit-transition:-webkit-transform 250ms ease 0s,opacity 250ms!important;-moz-transition:-moz-transform 250ms ease 0s,opacity 250ms!important;-o-transition:-o-transform 250ms ease 0s,opacity 250ms!important;transition:transform 250ms ease 0s,opacity 250ms!important;-webkit-transform-origin:50% 50%;-moz-transform-origin:50% 50%;-ms-transform-origin:50% 50%;transform-origin:50% 50%}body:not(.lg-from-hash) .lg-outer.lg-start-zoom .lg-item.lg-complete .lg-object{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1);opacity:1}.lg-outer .lg-thumb-outer{background-color:#0D0A0A;bottom:0;position:absolute;width:100%;z-index:1080;max-height:350px;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);-webkit-transition:-webkit-transform .25s cubic-bezier(0,0,.25,1) 0s;-moz-transition:-moz-transform .25s cubic-bezier(0,0,.25,1) 0s;-o-transition:-o-transform .25s cubic-bezier(0,0,.25,1) 0s;transition:transform .25s cubic-bezier(0,0,.25,1) 0s}.lg-outer .lg-thumb-outer.lg-grab .lg-thumb-item{cursor:-webkit-grab;cursor:-moz-grab;cursor:-o-grab;cursor:-ms-grab;cursor:grab}.lg-outer .lg-thumb-outer.lg-grabbing .lg-thumb-item{cursor:move;cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:-o-grabbing;cursor:-ms-grabbing;cursor:grabbing}.lg-outer .lg-thumb-outer.lg-dragging .lg-thumb{-webkit-transition-duration:0s!important;transition-duration:0s!important}.lg-outer.lg-thumb-open .lg-thumb-outer{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.lg-outer .lg-thumb{padding:10px 0;height:100%;margin-bottom:-5px}.lg-outer .lg-thumb-item{cursor:pointer;float:left;overflow:hidden;height:100%;border:2px solid #FFF;border-radius:4px;margin-bottom:5px}@media (min-width:1025px){.lg-outer .lg-thumb-item{-webkit-transition:border-color .25s ease;-o-transition:border-color .25s ease;transition:border-color .25s ease}}.lg-outer .lg-thumb-item.active,.lg-outer .lg-thumb-item:hover{border-color:#a90707}.lg-outer .lg-thumb-item img{width:100%;height:100%}.lg-outer.lg-has-thumb .lg-item{padding-bottom:120px}.lg-outer.lg-can-toggle .lg-item{padding-bottom:0}.lg-outer.lg-pull-caption-up .lg-sub-html{-webkit-transition:bottom .25s ease;-o-transition:bottom .25s ease;transition:bottom .25s ease}.lg-outer.lg-pull-caption-up.lg-thumb-open .lg-sub-html{bottom:100px}.lg-outer .lg-toogle-thumb{background-color:#0D0A0A;border-radius:2px 2px 0 0;color:#999;cursor:pointer;font-size:24px;height:39px;line-height:27px;padding:5px 0;position:absolute;right:20px;text-align:center;top:-39px;width:50px}.lg-outer .lg-toogle-thumb:after{content:"\e1ff"}.lg-outer .lg-toogle-thumb:hover{color:#FFF}.lg-outer .lg-video-cont{max-width:1140px;max-height:100%;width:100%;padding:0 5px}.lg-outer .lg-video{width:100%;height:0;padding-bottom:56.25%;overflow:hidden;position:relative}.lg-outer .lg-video .lg-object{display:inline-block;position:absolute;top:0;left:0;width:100%!important;height:100%!important}.lg-outer .lg-video .lg-video-play{width:84px;height:59px;position:absolute;left:50%;top:50%;margin-left:-42px;margin-top:-30px;z-index:1080;cursor:pointer}.lg-outer .lg-has-vimeo .lg-video-play{background:url(../img/vimeo-play.png) no-repeat}.lg-outer .lg-has-vimeo:hover .lg-video-play{background:url(../img/vimeo-play.png) 0 -58px no-repeat}.lg-outer .lg-has-html5 .lg-video-play{background:url(../img/video-play.png) no-repeat;height:64px;margin-left:-32px;margin-top:-32px;width:64px;opacity:.8}.lg-outer .lg-has-html5:hover .lg-video-play{opacity:1}.lg-outer .lg-has-youtube .lg-video-play{background:url(../img/youtube-play.png) no-repeat}.lg-outer .lg-has-youtube:hover .lg-video-play{background:url(../img/youtube-play.png) 0 -60px no-repeat}.lg-outer .lg-video-object{width:100%!important;height:100%!important;position:absolute;top:0;left:0}.lg-outer .lg-has-video .lg-video-object{visibility:hidden}.lg-outer .lg-has-video.lg-video-palying .lg-object,.lg-outer .lg-has-video.lg-video-palying .lg-video-play{display:none}.lg-outer .lg-has-video.lg-video-palying .lg-video-object{visibility:visible}.lg-progress-bar{background-color:#333;height:5px;left:0;position:absolute;top:0;width:100%;z-index:1080;opacity:0;-webkit-transition:opacity 80ms ease 0s;-moz-transition:opacity 80ms ease 0s;-o-transition:opacity 80ms ease 0s;transition:opacity 80ms ease 0s}.lg-progress-bar .lg-progress{background-color:#a90707;height:5px;width:0}.lg-progress-bar.lg-start .lg-progress{width:100%}.lg-show-autoplay .lg-progress-bar{opacity:1}.lg-autoplay-button:after{content:"\e01d"}.lg-show-autoplay .lg-autoplay-button:after{content:"\e01a"}.lg-outer.lg-css3.lg-zoom-dragging .lg-item.lg-complete.lg-zoomable .lg-image,.lg-outer.lg-css3.lg-zoom-dragging .lg-item.lg-complete.lg-zoomable .lg-img-wrap{-webkit-transition-duration:0s;transition-duration:0s}.lg-outer .lg-item.lg-complete.lg-zoomable .lg-img-wrap{-webkit-transition:-webkit-transform .3s ease 0s;-moz-transition:-moz-transform .3s ease 0s;-o-transition:-o-transform .3s ease 0s;transition:transform .3s ease 0s;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;backface-visibility:hidden}.lg-outer .lg-item.lg-complete.lg-zoomable .lg-image{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1);-webkit-transition:-webkit-transform .3s ease 0s,opacity .15s!important;-moz-transition:-moz-transform .3s ease 0s,opacity .15s!important;-o-transition:-o-transform .3s ease 0s,opacity .15s!important;transition:transform .3s ease 0s,opacity .15s!important;-webkit-transform-origin:0 0;-moz-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;backface-visibility:hidden}#lg-zoom-in:after{content:"\e311"}#lg-zoom-out{opacity:.5;pointer-events:none}#lg-zoom-out:after{content:"\e312"}.lg-zoomed #lg-zoom-out{opacity:1;pointer-events:auto}.lg-outer .lg-pager-outer{bottom:60px;left:0;position:absolute;right:0;text-align:center;z-index:1080;height:10px}.lg-outer .lg-pager-outer.lg-pager-hover .lg-pager-cont{overflow:visible}.lg-outer .lg-pager-cont{cursor:pointer;display:inline-block;overflow:hidden;position:relative;vertical-align:top;margin:0 5px}.lg-outer .lg-pager-cont:hover .lg-pager-thumb-cont{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.lg-outer .lg-pager-cont.lg-pager-active .lg-pager{box-shadow:0 0 0 2px #fff inset}.lg-outer .lg-pager-thumb-cont{background-color:#fff;color:#FFF;bottom:100%;height:83px;left:0;margin-bottom:20px;margin-left:-60px;opacity:0;padding:5px;position:absolute;width:120px;border-radius:3px;-webkit-transition:opacity .15s ease 0s,-webkit-transform .15s ease 0s;-moz-transition:opacity .15s ease 0s,-moz-transform .15s ease 0s;-o-transition:opacity .15s ease 0s,-o-transform .15s ease 0s;transition:opacity .15s ease 0s,transform .15s ease 0s;-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}.lg-outer .lg-pager-thumb-cont img{width:100%;height:100%}.lg-outer .lg-pager{background-color:rgba(255,255,255,.5);border-radius:50%;box-shadow:0 0 0 8px rgba(255,255,255,.7) inset;display:block;height:12px;-webkit-transition:box-shadow .3s ease 0s;-o-transition:box-shadow .3s ease 0s;transition:box-shadow .3s ease 0s;width:12px}.lg-outer .lg-pager:focus,.lg-outer .lg-pager:hover{box-shadow:0 0 0 8px #fff inset}.lg-outer .lg-caret{border-left:10px solid transparent;border-right:10px solid transparent;border-top:10px dashed;bottom:-10px;display:inline-block;height:0;left:50%;margin-left:-5px;position:absolute;vertical-align:middle;width:0}.lg-outer,.lg-outer .lg,.lg-outer .lg-inner{width:100%;height:100%}.lg-fullscreen:after{content:"\e20c"}.lg-fullscreen-on .lg-fullscreen:after{content:"\e20d"}.group:after,.group:before{display:table;content:"";line-height:0}.group:after{clear:both}.lg-outer{position:fixed;top:0;left:0;z-index:1050;opacity:0;-webkit-transition:opacity .15s ease 0s;-o-transition:opacity .15s ease 0s;transition:opacity .15s ease 0s}.lg-outer *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.lg-outer.lg-visible{opacity:1}.lg-outer.lg-css3 .lg-item.lg-current,.lg-outer.lg-css3 .lg-item.lg-next-slide,.lg-outer.lg-css3 .lg-item.lg-prev-slide{-webkit-transition-duration:inherit!important;transition-duration:inherit!important;-webkit-transition-timing-function:inherit!important;transition-timing-function:inherit!important}.lg-outer.lg-css3.lg-dragging .lg-item.lg-current,.lg-outer.lg-css3.lg-dragging .lg-item.lg-next-slide,.lg-outer.lg-css3.lg-dragging .lg-item.lg-prev-slide{-webkit-transition-duration:0s!important;transition-duration:0s!important;opacity:1}.lg-outer.lg-grab img.lg-object{cursor:-webkit-grab;cursor:-moz-grab;cursor:-o-grab;cursor:-ms-grab;cursor:grab}.lg-outer.lg-grabbing img.lg-object{cursor:move;cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:-o-grabbing;cursor:-ms-grabbing;cursor:grabbing}.lg-outer .lg{position:relative;overflow:hidden;margin-left:auto;margin-right:auto;max-width:100%;max-height:100%}.lg-outer .lg-inner{position:absolute;left:0;top:0;white-space:nowrap}.lg-outer .lg-item{background:url(../img/loading.gif) center center no-repeat;display:none!important}.lg-outer.lg-css .lg-current,.lg-outer.lg-css3 .lg-current,.lg-outer.lg-css3 .lg-next-slide,.lg-outer.lg-css3 .lg-prev-slide{display:inline-block!important}.lg-outer .lg-img-wrap,.lg-outer .lg-item{display:inline-block;text-align:center;position:absolute;width:100%;height:100%}.lg-outer .lg-img-wrap:before,.lg-outer .lg-item:before{content:"";display:inline-block;height:50%;width:1px;margin-right:-1px}.lg-outer .lg-img-wrap{top:0;bottom:0;left:0;right:0;padding:0 5px}.lg-outer .lg-item.lg-complete{background-image:none}.lg-outer .lg-item.lg-current{z-index:1060}.lg-outer .lg-image{display:inline-block;vertical-align:middle;max-width:100%;max-height:100%;width:auto!important;height:auto!important}.lg-outer.lg-show-after-load .lg-item .lg-object,.lg-outer.lg-show-after-load .lg-item .lg-video-play{opacity:0;-webkit-transition:opacity .15s ease 0s;-o-transition:opacity .15s ease 0s;transition:opacity .15s ease 0s}.lg-outer.lg-show-after-load .lg-item.lg-complete .lg-object,.lg-outer.lg-show-after-load .lg-item.lg-complete .lg-video-play{opacity:1}.lg-outer .lg-empty-html{display:none}.lg-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;z-index:1040;background-color:#000;opacity:0;-webkit-transition:opacity .15s ease 0s;-o-transition:opacity .15s ease 0s;transition:opacity .15s ease 0s}.lg-backdrop.in{opacity:1}.lg-css3.lg-no-trans .lg-current,.lg-css3.lg-no-trans .lg-next-slide,.lg-css3.lg-no-trans .lg-prev-slide{-webkit-transition:none 0s ease 0s!important;-moz-transition:none 0s ease 0s!important;-o-transition:none 0s ease 0s!important;transition:none 0s ease 0s!important}.lg-css3.lg-use-css3 .lg-item,.lg-css3.lg-use-left .lg-item{-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;backface-visibility:hidden}.lg-css3.lg-fade .lg-item{opacity:0}.lg-css3.lg-fade .lg-item.lg-current{opacity:1}.lg-css3.lg-fade .lg-item.lg-current,.lg-css3.lg-fade .lg-item.lg-next-slide,.lg-css3.lg-fade .lg-item.lg-prev-slide{-webkit-transition:opacity .1s ease 0s;-moz-transition:opacity .1s ease 0s;-o-transition:opacity .1s ease 0s;transition:opacity .1s ease 0s}.lg-css3.lg-slide.lg-use-css3 .lg-item{opacity:0}.lg-css3.lg-slide.lg-use-css3 .lg-item.lg-prev-slide{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.lg-css3.lg-slide.lg-use-css3 .lg-item.lg-next-slide{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.lg-css3.lg-slide.lg-use-css3 .lg-item.lg-current{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}.lg-css3.lg-slide.lg-use-css3 .lg-item.lg-current,.lg-css3.lg-slide.lg-use-css3 .lg-item.lg-next-slide,.lg-css3.lg-slide.lg-use-css3 .lg-item.lg-prev-slide{-webkit-transition:-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-moz-transition:-moz-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-o-transition:-o-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s}.lg-css3.lg-slide.lg-use-left .lg-item{opacity:0;position:absolute;left:0}.lg-css3.lg-slide.lg-use-left .lg-item.lg-prev-slide{left:-100%}.lg-css3.lg-slide.lg-use-left .lg-item.lg-next-slide{left:100%}.lg-css3.lg-slide.lg-use-left .lg-item.lg-current{left:0;opacity:1}.lg-css3.lg-slide.lg-use-left .lg-item.lg-current,.lg-css3.lg-slide.lg-use-left .lg-item.lg-next-slide,.lg-css3.lg-slide.lg-use-left .lg-item.lg-prev-slide{-webkit-transition:left 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-moz-transition:left 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-o-transition:left 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;transition:left 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s}