/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */
/* Document
   ========================================================================== */
/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 */
html {
  line-height: 1.15;
  /* 1 */
  -webkit-text-size-adjust: 100%;
  /* 2 */
}

/* Sections
   ========================================================================== */
/**
 * Remove the margin in all browsers.
 */
body {
  margin: 0;
}

/**
 * Render the `main` element consistently in IE.
 */
main {
  display: block;
}

/**
 * Correct the font size and margin on `h1` elements within `section` and
 * `article` contexts in Chrome, Firefox, and Safari.
 */
h1 {
  font-size: 2em;
  margin: 0.67em 0;
}

/* Grouping content
   ========================================================================== */
/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */
hr {
  box-sizing: content-box;
  /* 1 */
  height: 0;
  /* 1 */
  overflow: visible;
  /* 2 */
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
pre {
  font-family: monospace, monospace;
  /* 1 */
  font-size: 1em;
  /* 2 */
}

/* Text-level semantics
   ========================================================================== */
/**
 * Remove the gray background on active links in IE 10.
 */
a {
  background-color: transparent;
}

/**
 * 1. Remove the bottom border in Chrome 57-
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */
abbr[title] {
  border-bottom: none;
  /* 1 */
  text-decoration: underline;
  /* 2 */
  text-decoration: underline dotted;
  /* 2 */
}

/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */
b,
strong {
  font-weight: bolder;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
code,
kbd,
samp {
  font-family: monospace, monospace;
  /* 1 */
  font-size: 1em;
  /* 2 */
}

/**
 * Add the correct font size in all browsers.
 */
small {
  font-size: 80%;
}

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

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/* Embedded content
   ========================================================================== */
/**
 * Remove the border on images inside links in IE 10.
 */
img {
  border-style: none;
}

/* Forms
   ========================================================================== */
/**
 * 1. Change the font styles in all browsers.
 * 2. Remove the margin in Firefox and Safari.
 */
button,
input,
optgroup,
select,
textarea {
  font-family: inherit;
  /* 1 */
  font-size: 100%;
  /* 1 */
  line-height: 1.15;
  /* 1 */
  margin: 0;
  /* 2 */
}

/**
 * Show the overflow in IE.
 * 1. Show the overflow in Edge.
 */
button,
input {
  /* 1 */
  overflow: visible;
}

/**
 * Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 1. Remove the inheritance of text transform in Firefox.
 */
button,
select {
  /* 1 */
  text-transform: none;
}

/**
 * Correct the inability to style clickable types in iOS and Safari.
 */
button,
[type=button],
[type=reset],
[type=submit] {
  -webkit-appearance: button;
}

/**
 * Remove the inner border and padding in Firefox.
 */
button::-moz-focus-inner,
[type=button]::-moz-focus-inner,
[type=reset]::-moz-focus-inner,
[type=submit]::-moz-focus-inner {
  border-style: none;
  padding: 0;
}

/**
 * Restore the focus styles unset by the previous rule.
 */
button:-moz-focusring,
[type=button]:-moz-focusring,
[type=reset]:-moz-focusring,
[type=submit]:-moz-focusring {
  outline: 1px dotted ButtonText;
}

/**
 * Correct the padding in Firefox.
 */
fieldset {
  padding: 0.35em 0.75em 0.625em;
}

/**
 * 1. Correct the text wrapping in Edge and IE.
 * 2. Correct the color inheritance from `fieldset` elements in IE.
 * 3. Remove the padding so developers are not caught out when they zero out
 *    `fieldset` elements in all browsers.
 */
legend {
  box-sizing: border-box;
  /* 1 */
  color: inherit;
  /* 2 */
  display: table;
  /* 1 */
  max-width: 100%;
  /* 1 */
  padding: 0;
  /* 3 */
  white-space: normal;
  /* 1 */
}

/**
 * Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */
progress {
  vertical-align: baseline;
}

/**
 * Remove the default vertical scrollbar in IE 10+.
 */
textarea {
  overflow: auto;
}

/**
 * 1. Add the correct box sizing in IE 10.
 * 2. Remove the padding in IE 10.
 */
[type=checkbox],
[type=radio] {
  box-sizing: border-box;
  /* 1 */
  padding: 0;
  /* 2 */
}

/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */
[type=number]::-webkit-inner-spin-button,
[type=number]::-webkit-outer-spin-button {
  height: auto;
}

/**
 * 1. Correct the odd appearance in Chrome and Safari.
 * 2. Correct the outline style in Safari.
 */
[type=search] {
  -webkit-appearance: textfield;
  /* 1 */
  outline-offset: -2px;
  /* 2 */
}

/**
 * Remove the inner padding in Chrome and Safari on macOS.
 */
[type=search]::-webkit-search-decoration {
  -webkit-appearance: none;
}

/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Change font properties to `inherit` in Safari.
 */
::-webkit-file-upload-button {
  -webkit-appearance: button;
  /* 1 */
  font: inherit;
  /* 2 */
}

/* Interactive
   ========================================================================== */
/*
 * Add the correct display in Edge, IE 10+, and Firefox.
 */
details {
  display: block;
}

/*
 * Add the correct display in all browsers.
 */
summary {
  display: list-item;
}

/* Misc
   ========================================================================== */
/**
 * Add the correct display in IE 10+.
 */
template {
  display: none;
}

/**
 * Add the correct display in IE 10.
 */
[hidden] {
  display: none;
}

/********\
  Colors
\********/
/***********\
  Constants
\***********/
/*------------------------------------------------------*\
 * full-width-content-well
 * takes the name of a class as a required argument.
 * This element's width will respond to breakpoints.
\*------------------------------------------------------*/
/********\
  Colors
\********/
/***********\
  Constants
\***********/
.card {
  margin: 2rem;
  padding: 2rem;
  background: #F8F7F7;
  border-radius: 8px;
  display: inline-block;
}

/********\
  Colors
\********/
/***********\
  Constants
\***********/
.navigation {
  display: flex;
  justify-content: center;
}

.nav-bar {
  width: 100%;
  margin: 0;
  padding: 1rem;
  padding-left: 2rem;
  background: #F8F7F7;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-around;
  list-style: none;
  border-bottom-left-radius: 8px;
}

.nav-item {
  margin: 0 1rem;
  font-family: "OstrichSans";
  font-size: 24px;
  text-decoration: none;
  color: #252627;
  font-weight: 500;
}
.nav-item:hover {
  text-decoration: underline;
}

/********\
  Colors
\********/
/***********\
  Constants
\***********/
/*------------------------------------------------------*\
 * full-width-content-well
 * takes the name of a class as a required argument.
 * This element's width will respond to breakpoints.
\*------------------------------------------------------*/
/********\
  Colors
\********/
/***********\
  Constants
\***********/
.landing-page {
  margin: 0 auto;
  padding: 0 2rem;
  width: 100%;
  max-width: 1140px;
}

@media (max-width: 1199px) {
  .landing-page {
    max-width: 800px;
  }
}
@media (max-width: 899px) {
  .landing-page {
    max-width: 650px;
    padding: 0 0.5rem;
  }
}
header.hero {
  margin-bottom: 2rem;
}
header.hero h1 {
  display: table-caption;
  font-size: 180px;
  margin-bottom: 1rem;
}
@media (max-width: 599px) {
  header.hero h1 {
    font-size: calc(2vw + 6rem);
  }
}
header.hero h2 {
  font-size: 48px;
  font-family: "Goudy";
  font-weight: 500;
}

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

/********\
  Colors
\********/
/***********\
  Constants
\***********/
/********\
  Colors
\********/
/***********\
  Constants
\***********/
/*------------------------------------------------------*\
 * full-width-content-well
 * takes the name of a class as a required argument.
 * This element's width will respond to breakpoints.
\*------------------------------------------------------*/
.pull-quote {
  max-width: 600px;
  margin: 8rem auto 4rem auto;
}

.pull-quote__bubble {
  margin-bottom: 4rem;
}

.pull-quote__attribution {
  font-family: "OstrichSans";
  font-size: 3rem;
}

.pull-quote__bubble .pull-quote__quote {
  transform: translatey(0px);
  animation: float 5s ease-in-out infinite;
  text-align: center;
  text-transform: uppercase;
  font-weight: bold;
  letter-spacing: 2px;
  font-size: 15px;
  color: #F8F7F7;
  line-height: 1.5;
  background-color: #252627;
  border-radius: 11px;
  position: relative;
  box-shadow: 20px 20px rgba(37, 38, 39, 0.5);
  padding: 4rem;
}
@media (max-width: 599px) {
  .pull-quote__bubble .pull-quote__quote {
    padding: 1rem;
  }
}

.pull-quote__bubble .pull-quote__quote:after {
  transform: translatey(0px);
  animation: float2 5s ease-in-out infinite;
  content: ".";
  font-weight: bold;
  -webkit-text-fill-color: #252627;
  text-shadow: 22px 22px rgba(37, 38, 39, 0.5);
  text-align: left;
  font-size: 55px;
  width: 55px;
  height: 11px;
  line-height: 30px;
  border-radius: 11px;
  background-color: #252627;
  position: absolute;
  display: block;
  bottom: -30px;
  left: 0;
  box-shadow: 22px 22px rgba(37, 38, 39, 0.5);
  z-index: -2;
}

@keyframes float {
  0% {
    transform: translatey(0px);
  }
  50% {
    transform: translatey(-20px);
  }
  100% {
    transform: translatey(0px);
  }
}
@keyframes float2 {
  0% {
    line-height: 30px;
    transform: translatey(0px);
  }
  55% {
    transform: translatey(-20px);
  }
  60% {
    line-height: 10px;
  }
  100% {
    line-height: 30px;
    transform: translatey(0px);
  }
}
ol.breadcrumbs {
  display: flex;
  flex-direction: row;
  list-style: none;
}

input[name=years_on_instrument], label[for=id_years_on_instrument] {
  display: none;
}

input[name=years_of_lessons], label[for=id_years_of_lessons] {
  display: none;
}

/********\
  Colors
\********/
/***********\
  Constants
\***********/
/*------------------------------------------------------*\
 * full-width-content-well
 * takes the name of a class as a required argument.
 * This element's width will respond to breakpoints.
\*------------------------------------------------------*/
/********\
  Colors
\********/
/***********\
  Constants
\***********/
main.main {
  margin: 0 auto;
  padding: 0 2rem;
  width: 100%;
  max-width: 1140px;
}

@media (max-width: 1199px) {
  main.main {
    max-width: 800px;
  }
}
@media (max-width: 899px) {
  main.main {
    max-width: 650px;
    padding: 0 0.5rem;
  }
}
/********\
  Colors
\********/
/***********\
  Constants
\***********/
/*------------------------------------------------------*\
 * full-width-content-well
 * takes the name of a class as a required argument.
 * This element's width will respond to breakpoints.
\*------------------------------------------------------*/
/********\
  Colors
\********/
/***********\
  Constants
\***********/
body {
  background: #F8F7F7;
  font-family: "Goudy", sans-serif;
  color: #464948;
  min-height: 100vh;
}

h1 {
  font-family: "OstrichSans", sans-serif;
  font-weight: 900;
}
@media (max-width: 599px) {
  h1 {
    margin: 1rem 0;
  }
}

h2 {
  font-family: "Goudy", serif;
  font-weight: 700;
}

a {
  text-decoration: underline;
  color: #D80E98;
  font-weight: 700;
}

.block-rich_text {
  max-width: 600px;
}
.block-rich_text p {
  line-height: 1.7;
  font-size: 18px;
}
.block-rich_text p i, .block-rich_text p b {
  color: #D80E98;
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vcm1hbGl6ZS5jc3MiLCJhYnN0cmFjdHMvdmFyaWFibGVzLnNjc3MiLCJhYnN0cmFjdHMvbWl4aW5zLnNjc3MiLCJhYnN0cmFjdHMvX3V0aWxzLnNjc3MiLCIuLi8uLi8uLi9hcHBzL2hvbWUvc3RhdGljL3N0eWxlcy9pbmNsdWRlcy9fbmF2Z2lhdGlvbi5zY3NzIiwiLi4vLi4vLi4vYXBwcy9ob21lL3N0YXRpYy9zdHlsZXMvcGFnZXMvX2xhbmRpbmctcGFnZS5zY3NzIiwiLi4vLi4vLi4vYXBwcy9ob21lL3N0YXRpYy9zdHlsZXMvYmxvY2tzL19wdWxsLXF1b3RlLnNjc3MiLCIuLi8uLi8uLi9hcHBzL21lbnVzL3N0YXRpYy9zdHlsZXMvaW5jbHVkZXMvX2JyZWFkY3J1bWJzLnNjc3MiLCIuLi8uLi8uLi9hcHBzL2NvbnRhY3Qvc3RhdGljL3N0eWxlcy9ibG9ja3MvX2NvbnRhY3QtZm9ybS5zY3NzIiwiZHVyaGFtbmNzdHJpbmdzLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFFQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFLQTtFQUNFO0FBQW1CO0VBQ25CO0FBQWdDOzs7QUFHbEM7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUlBO0VBQ0U7OztBQUdGO0FBQUE7QUFBQTtBQUlBO0VBQ0U7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBS0E7RUFDRTtFQUNBOzs7QUFHRjtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFLQTtFQUNFO0FBQXlCO0VBQ3pCO0FBQVc7RUFDWDtBQUFtQjs7O0FBR3JCO0FBQUE7QUFBQTtBQUFBO0FBS0E7RUFDRTtBQUFtQztFQUNuQztBQUFnQjs7O0FBR2xCO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFJQTtFQUNFOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtBQUtBO0VBQ0U7QUFBcUI7RUFDckI7QUFBNEI7RUFDNUI7QUFBbUM7OztBQUdyQztBQUFBO0FBQUE7QUFJQTtBQUFBO0VBRUU7OztBQUdGO0FBQUE7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QUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsT0wzQkk7RUs0Qko7RUFDQSxrQkx6Qkk7RUswQko7RUFDQTtFQUNBO0VBR0E7O0FKYkY7RUlIRjtJQWtCTTs7OztBQUdOO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQSx5Qkx6Q0k7RUswQ0o7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxrQkxqREk7RUtrREo7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFJSjtFQUNFO0lBQ0U7O0VBRUY7SUFDRTs7RUFFRjtJQUNFOzs7QUFJSjtFQUNFO0lBQ0U7SUFDQTs7RUFFRjtJQUNFOztFQUVGO0lBQ0U7O0VBRUY7SUFDRTtJQUNBOzs7QUMxRko7RUFDSTtFQUNBO0VBQ0E7OztBQ0RKO0VBQ0k7OztBQUdKO0VBQ0k7OztBUFRKO0FBQUE7QUFBQTtBQWlCQTtBQUFBO0FBQUE7QUNjQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FEL0JBO0FBQUE7QUFBQTtBQWlCQTtBQUFBO0FBQUE7QUNvQkU7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBckJGO0VBeUJFO0lBQWUsV0RIa0I7OztBQ25CbkM7RUEwQkU7SUFDSSxXRFBzQztJQ1F0Qzs7O0FEbkRSO0FBQUE7QUFBQTtBQWlCQTtBQUFBO0FBQUE7QUNjQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FEL0JBO0FBQUE7QUFBQTtBQWlCQTtBQUFBO0FBQUE7QVFFQTtFQUNJLFlSaEJJO0VRaUJKO0VBQ0EsT1JmUTtFUWdCUjs7O0FBR0o7RUFDSTtFQUNBOztBUEZGO0VPQUY7SUFLUTs7OztBQUlSO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTtFQUNBLE9SOUJTO0VRK0JUOzs7QUFJSjtFQUNJOztBQUVBO0VBQ0k7RUFDQSxXUkxNOztBUU9OO0VBQ0ksT1IzQ0MiLCJmaWxlIjoiZHVyaGFtbmNzdHJpbmdzLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qISBub3JtYWxpemUuY3NzIHY4LjAuMSB8IE1JVCBMaWNlbnNlIHwgZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3MgKi9cblxuLyogRG9jdW1lbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgbGluZSBoZWlnaHQgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gUHJldmVudCBhZGp1c3RtZW50cyBvZiBmb250IHNpemUgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlcyBpbiBpT1MuXG4gKi9cblxuaHRtbCB7XG4gIGxpbmUtaGVpZ2h0OiAxLjE1OyAvKiAxICovXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xufVxuXG4vKiBTZWN0aW9uc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuYm9keSB7XG4gIG1hcmdpbjogMDtcbn1cblxuLyoqXG4gKiBSZW5kZXIgdGhlIGBtYWluYCBlbGVtZW50IGNvbnNpc3RlbnRseSBpbiBJRS5cbiAqL1xuXG5tYWluIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgZm9udCBzaXplIGFuZCBtYXJnaW4gb24gYGgxYCBlbGVtZW50cyB3aXRoaW4gYHNlY3Rpb25gIGFuZFxuICogYGFydGljbGVgIGNvbnRleHRzIGluIENocm9tZSwgRmlyZWZveCwgYW5kIFNhZmFyaS5cbiAqL1xuXG5oMSB7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBtYXJnaW46IDAuNjdlbSAwO1xufVxuXG4vKiBHcm91cGluZyBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIEZpcmVmb3guXG4gKiAyLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlIGFuZCBJRS5cbiAqL1xuXG5ociB7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94OyAvKiAxICovXG4gIGhlaWdodDogMDsgLyogMSAqL1xuICBvdmVyZmxvdzogdmlzaWJsZTsgLyogMiAqL1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxucHJlIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlOyAvKiAxICovXG4gIGZvbnQtc2l6ZTogMWVtOyAvKiAyICovXG59XG5cbi8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIG9uIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cbiAqL1xuXG5hIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi8qKlxuICogMS4gUmVtb3ZlIHRoZSBib3R0b20gYm9yZGVyIGluIENocm9tZSA1Ny1cbiAqIDIuIEFkZCB0aGUgY29ycmVjdCB0ZXh0IGRlY29yYXRpb24gaW4gQ2hyb21lLCBFZGdlLCBJRSwgT3BlcmEsIGFuZCBTYWZhcmkuXG4gKi9cblxuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiBub25lOyAvKiAxICovXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyAvKiAyICovXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDsgLyogMiAqL1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHdlaWdodCBpbiBDaHJvbWUsIEVkZ2UsIGFuZCBTYWZhcmkuXG4gKi9cblxuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkZXI7XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5jb2RlLFxua2JkLFxuc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTsgLyogMSAqL1xuICBmb250LXNpemU6IDFlbTsgLyogMiAqL1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7XG59XG5cbi8qKlxuICogUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgZWxlbWVudHMgZnJvbSBhZmZlY3RpbmcgdGhlIGxpbmUgaGVpZ2h0IGluXG4gKiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc3ViLFxuc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtO1xufVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTtcbn1cblxuLyogRW1iZWRkZWQgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGJvcmRlciBvbiBpbWFnZXMgaW5zaWRlIGxpbmtzIGluIElFIDEwLlxuICovXG5cbmltZyB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbn1cblxuLyogRm9ybXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogMS4gQ2hhbmdlIHRoZSBmb250IHN0eWxlcyBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBGaXJlZm94IGFuZCBTYWZhcmkuXG4gKi9cblxuYnV0dG9uLFxuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7IC8qIDEgKi9cbiAgZm9udC1zaXplOiAxMDAlOyAvKiAxICovXG4gIGxpbmUtaGVpZ2h0OiAxLjE1OyAvKiAxICovXG4gIG1hcmdpbjogMDsgLyogMiAqL1xufVxuXG4vKipcbiAqIFNob3cgdGhlIG92ZXJmbG93IGluIElFLlxuICogMS4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZS5cbiAqL1xuXG5idXR0b24sXG5pbnB1dCB7IC8qIDEgKi9cbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBFZGdlLCBGaXJlZm94LCBhbmQgSUUuXG4gKiAxLiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEZpcmVmb3guXG4gKi9cblxuYnV0dG9uLFxuc2VsZWN0IHsgLyogMSAqL1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICovXG5cbmJ1dHRvbixcblt0eXBlPVwiYnV0dG9uXCJdLFxuW3R5cGU9XCJyZXNldFwiXSxcblt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbm5lciBib3JkZXIgYW5kIHBhZGRpbmcgaW4gRmlyZWZveC5cbiAqL1xuXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cImJ1dHRvblwiXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwicmVzZXRcIl06Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cInN1Ym1pdFwiXTo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgcGFkZGluZzogMDtcbn1cblxuLyoqXG4gKiBSZXN0b3JlIHRoZSBmb2N1cyBzdHlsZXMgdW5zZXQgYnkgdGhlIHByZXZpb3VzIHJ1bGUuXG4gKi9cblxuYnV0dG9uOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJidXR0b25cIl06LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cInJlc2V0XCJdOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJzdWJtaXRcIl06LW1vei1mb2N1c3Jpbmcge1xuICBvdXRsaW5lOiAxcHggZG90dGVkIEJ1dHRvblRleHQ7XG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgcGFkZGluZyBpbiBGaXJlZm94LlxuICovXG5cbmZpZWxkc2V0IHtcbiAgcGFkZGluZzogMC4zNWVtIDAuNzVlbSAwLjYyNWVtO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIHRleHQgd3JhcHBpbmcgaW4gRWRnZSBhbmQgSUUuXG4gKiAyLiBDb3JyZWN0IHRoZSBjb2xvciBpbmhlcml0YW5jZSBmcm9tIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gSUUuXG4gKiAzLiBSZW1vdmUgdGhlIHBhZGRpbmcgc28gZGV2ZWxvcGVycyBhcmUgbm90IGNhdWdodCBvdXQgd2hlbiB0aGV5IHplcm8gb3V0XG4gKiAgICBgZmllbGRzZXRgIGVsZW1lbnRzIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5sZWdlbmQge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gIGNvbG9yOiBpbmhlcml0OyAvKiAyICovXG4gIGRpc3BsYXk6IHRhYmxlOyAvKiAxICovXG4gIG1heC13aWR0aDogMTAwJTsgLyogMSAqL1xuICBwYWRkaW5nOiAwOyAvKiAzICovXG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7IC8qIDEgKi9cbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgdmVydGljYWwgYWxpZ25tZW50IGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuICovXG5cbnByb2dyZXNzIHtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUgMTArLlxuICovXG5cbnRleHRhcmVhIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi8qKlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gSUUgMTAuXG4gKiAyLiBSZW1vdmUgdGhlIHBhZGRpbmcgaW4gSUUgMTAuXG4gKi9cblxuW3R5cGU9XCJjaGVja2JveFwiXSxcblt0eXBlPVwicmFkaW9cIl0ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gIHBhZGRpbmc6IDA7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBjdXJzb3Igc3R5bGUgb2YgaW5jcmVtZW50IGFuZCBkZWNyZW1lbnQgYnV0dG9ucyBpbiBDaHJvbWUuXG4gKi9cblxuW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bztcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBvZGQgYXBwZWFyYW5jZSBpbiBDaHJvbWUgYW5kIFNhZmFyaS5cbiAqIDIuIENvcnJlY3QgdGhlIG91dGxpbmUgc3R5bGUgaW4gU2FmYXJpLlxuICovXG5cblt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IC8qIDEgKi9cbiAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGlubmVyIHBhZGRpbmcgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gbWFjT1MuXG4gKi9cblxuW3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAqIDIuIENoYW5nZSBmb250IHByb3BlcnRpZXMgdG8gYGluaGVyaXRgIGluIFNhZmFyaS5cbiAqL1xuXG46Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDEgKi9cbiAgZm9udDogaW5oZXJpdDsgLyogMiAqL1xufVxuXG4vKiBJbnRlcmFjdGl2ZVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIEVkZ2UsIElFIDEwKywgYW5kIEZpcmVmb3guXG4gKi9cblxuZGV0YWlscyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnN1bW1hcnkge1xuICBkaXNwbGF5OiBsaXN0LWl0ZW07XG59XG5cbi8qIE1pc2NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTArLlxuICovXG5cbnRlbXBsYXRlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSAxMC5cbiAqL1xuXG5baGlkZGVuXSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59IiwiLyoqKioqKioqXFxcbiAgQ29sb3JzXG5cXCoqKioqKioqL1xuLy8gR3JleXNjYWxlXG4kd2hpdGU6ICNGOEY3Rjc7XG4kZ3JleS1saWdodDogI0I1QkFCODtcbiRncmV5LW1lZGl1bTogIzdEODI4MDtcbiRncmV5LWRhcms6ICM0NjQ5NDg7XG4kYmxhY2s6ICMyNTI2Mjc7XG5cbiRlbGVjdHJpYy1ibHVlOiAjNjFlZmZmO1xuJHNwcmluZy1ncmVlbjogIzAwZmY4ODtcbiR2aW9sZXQtcmVkOiAjRDgwRTk4O1xuXG4kY29sb3ItcHJpbWFyeTogJGJsYWNrO1xuJGNvbG9yLXNwbGFzaDogJHZpb2xldC1yZWQ7XG5cbi8qKioqKioqKioqKlxcXG4gIENvbnN0YW50c1xuXFwqKioqKioqKioqKi9cbi8vIFBhZGRpbmdcbiRwMTogMXJlbTtcbiRwMjogMnJlbTtcbiRwMzogNHJlbTtcbiRwNDogOHJlbTtcblxuLy8gTWFyZ2luXG4kbTE6IDFyZW07XG4kbTI6IDJyZW07XG4kbTM6IDRyZW07XG4kbTQ6IDhyZW07XG5cbi8vIFJhZGlpXG4kcmFkaWktMTogNHB4O1xuJHJhZGlpLTI6IDhweDtcblxuLy8gU2hhZG93c1xuJHNoYWRvdy0yZHA6IDAgMXB4IDNweCByZ2JhKDAsMCwwLDAuMTIpLCAwIDFweCAycHggcmdiYSgwLDAsMCwwLjI0KTtcbiRzaGFkb3ctNmRwOiAwIDNweCA2cHggcmdiYSgwLDAsMCwwLjE2KSwgMCAzcHggNnB4IHJnYmEoMCwwLDAsMC4yMyk7XG4kc2hhZG93LTEyZHA6IDAgMTBweCAyMHB4IHJnYmEoMCwwLDAsMC4xOSksIDAgNnB4IDZweCByZ2JhKDAsMCwwLDAuMjMpO1xuXG4kY29udGVudC13aWR0aC1kZXNrdG9wOiAxMTQwcHg7XG4kY29udGVudC13aWR0aC1zbWFsbGVyLXRoYW4tZGVza3RvcDogODAwcHg7XG4kY29udGVudC13aWR0aC1zbWFsbGVyLXRoYW4tdGFibGV0LWxhbmRzY2FwZTogNjUwcHg7XG5cbiRmb250LXhzOiAxMHB4O1xuJGZvbnQtc206IDEycHg7XG4kZm9udC1ub3JtYWw6IDE4cHg7XG4kZm9udC1sZzogMjRweDtcbiRmb250LXhsOiAzNnB4O1xuJGZvbnQtMnhsOiA0OHB4O1xuJGZvbnQtaHVnZTogMTgwcHg7IiwiQGltcG9ydCBcIi4vdmFyaWFibGVzXCI7XG5cbi8vIEBtaXhpbiBhcXVhLWdyYWRpZW50IHtcbi8vICAgICBiYWNrZ3JvdW5kOiAkc3ByaW5nLWdyZWVuO1xuLy8gICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byB0b3AgbGVmdCwgJHNwcmluZy1ncmVlbiAwJSwgJGVsZWN0cmljLWJsdWUgMTAwJSk7XG4vLyB9XG5cbiRpc21vZXRyaWMtY29sb3ItYTogJGNvbG9yLXByaW1hcnk7XG4kaXNtb2V0cmljLWNvbG9yLWI6ICRibGFjaztcblxuQG1peGluIGJnLWlzb21ldHJpYyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogIGxpbmVhci1ncmFkaWVudCgzMGRlZywgJGlzbW9ldHJpYy1jb2xvci1hIDEyJSwgdHJhbnNwYXJlbnQgMTIuNSUsIHRyYW5zcGFyZW50IDg3JSwgJGlzbW9ldHJpYy1jb2xvci1hIDg3LjUlLCAkaXNtb2V0cmljLWNvbG9yLWEpLCBsaW5lYXItZ3JhZGllbnQoMTUwZGVnLCAkaXNtb2V0cmljLWNvbG9yLWEgMTIlLCB0cmFuc3BhcmVudCAxMi41JSwgdHJhbnNwYXJlbnQgODclLCAkaXNtb2V0cmljLWNvbG9yLWEgODcuNSUsICRpc21vZXRyaWMtY29sb3ItYSksIGxpbmVhci1ncmFkaWVudCgzMGRlZywgJGlzbW9ldHJpYy1jb2xvci1hIDEyJSwgdHJhbnNwYXJlbnQgMTIuNSUsIHRyYW5zcGFyZW50IDg3JSwgJGlzbW9ldHJpYy1jb2xvci1hIDg3LjUlLCAkaXNtb2V0cmljLWNvbG9yLWEpLCBsaW5lYXItZ3JhZGllbnQoMTUwZGVnLCAkaXNtb2V0cmljLWNvbG9yLWEgMTIlLCB0cmFuc3BhcmVudCAxMi41JSwgdHJhbnNwYXJlbnQgODclLCAkaXNtb2V0cmljLWNvbG9yLWEgODcuNSUsICRpc21vZXRyaWMtY29sb3ItYSksIGxpbmVhci1ncmFkaWVudCg2MGRlZywgJGlzbW9ldHJpYy1jb2xvci1iIDI1JSwgdHJhbnNwYXJlbnQgMjUuNSUsIHRyYW5zcGFyZW50IDc1JSwgJGlzbW9ldHJpYy1jb2xvci1iIDc1JSwgJGlzbW9ldHJpYy1jb2xvci1iKSwgbGluZWFyLWdyYWRpZW50KDYwZGVnLCAkaXNtb2V0cmljLWNvbG9yLWIgMjUlLCB0cmFuc3BhcmVudCAyNS41JSwgdHJhbnNwYXJlbnQgNzUlLCAkaXNtb2V0cmljLWNvbG9yLWIgNzUlLCAkaXNtb2V0cmljLWNvbG9yLWIpO1xuICAgIGJhY2tncm91bmQtc2l6ZTogNjBweCAxMDVweDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDAsIDAgMCwgMzBweCA1M3B4LCAzMHB4IDUzcHgsIDAgMCwgMzBweCA1M3B4O1xufVxuXG4vLyBNRURJQSBRVUVSSUVTXG5AbWl4aW4gZm9yLXNtYWxsZXItdGhhbi1kZXNrdG9wIHtcbiAgQG1lZGlhIChtYXgtd2lkdGg6IDExOTlweCkgeyBAY29udGVudDsgfVxufVxuQG1peGluIGZvci1zbWFsbGVyLXRoYW4tdGFibGV0LWxhbmRzY2FwZSB7XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA4OTlweCkgeyBAY29udGVudDsgfVxufVxuQG1peGluIGZvci1waG9uZS1wb3J0cmFpdC1vbmx5IHtcbiAgQG1lZGlhIChtYXgtd2lkdGg6IDU5OXB4KSB7IEBjb250ZW50OyB9XG59XG5cblxuLy8gQ09OVEVOVCBXRUxMU1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAqIGZ1bGwtd2lkdGgtY29udGVudC13ZWxsXG4gKiB0YWtlcyB0aGUgbmFtZSBvZiBhIGNsYXNzIGFzIGEgcmVxdWlyZWQgYXJndW1lbnQuXG4gKiBUaGlzIGVsZW1lbnQncyB3aWR0aCB3aWxsIHJlc3BvbmQgdG8gYnJlYWtwb2ludHMuXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuQG1peGluIGZ1bGwtd2lkdGgtY29udGVudC13ZWxsKCRzZWxlY3Rvcikge1xuICAjeyRzZWxlY3Rvcn0ge1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIHBhZGRpbmc6IDAgMnJlbTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6ICRjb250ZW50LXdpZHRoLWRlc2t0b3A7XG4gIH1cblxuICBAaW5jbHVkZSBmb3Itc21hbGxlci10aGFuLWRlc2t0b3Age1xuICAgICN7JHNlbGVjdG9yfSB7IG1heC13aWR0aDogJGNvbnRlbnQtd2lkdGgtc21hbGxlci10aGFuLWRlc2t0b3A7IH1cbiAgfVxuXG4gIEBpbmNsdWRlIGZvci1zbWFsbGVyLXRoYW4tdGFibGV0LWxhbmRzY2FwZSB7XG4gICAgI3skc2VsZWN0b3J9IHsgXG4gICAgICAgIG1heC13aWR0aDogJGNvbnRlbnQtd2lkdGgtc21hbGxlci10aGFuLXRhYmxldC1sYW5kc2NhcGU7IFxuICAgICAgICBwYWRkaW5nOiAwIDAuNXJlbTtcbiAgICB9XG4gIH1cbn0iLCJAaW1wb3J0ICcuL21peGlucyc7XG5AaW1wb3J0ICcuL3ZhcmlhYmxlcyc7XG5cbi5jYXJkIHtcbiAgICBtYXJnaW46ICRtMjtcbiAgICBwYWRkaW5nOiAkcDI7XG4gICAgYmFja2dyb3VuZDogJHdoaXRlO1xuICAgIGJvcmRlci1yYWRpdXM6ICRyYWRpaS0yO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn0iLCJAaW1wb3J0IFwiLi4vLi4vLi4vLi4vLi4vZHVyaGFtbmNzdHJpbmdzL3N0YXRpYy9jc3MvYWJzdHJhY3RzL3ZhcmlhYmxlc1wiO1xuXG4ubmF2aWdhdGlvbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLm5hdi1iYXIge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAxcmVtO1xuICAgIHBhZGRpbmctbGVmdDogMnJlbTtcbiAgICBiYWNrZ3JvdW5kOiAkd2hpdGU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAkcmFkaWktMjtcbn1cblxuLm5hdi1pdGVtIHtcbiAgICBtYXJnaW46IDAgMXJlbTtcbiAgICBmb250LWZhbWlseTogJ09zdHJpY2hTYW5zJztcbiAgICBmb250LXNpemU6ICRmb250LWxnO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBjb2xvcjogJGJsYWNrO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgfVxufSIsIkBpbXBvcnQgXCIuLi8uLi8uLi8uLi8uLi9kdXJoYW1uY3N0cmluZ3Mvc3RhdGljL2Nzcy9hYnN0cmFjdHMvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi4vLi4vLi4vLi4vLi4vZHVyaGFtbmNzdHJpbmdzL3N0YXRpYy9jc3MvYWJzdHJhY3RzL3ZhcmlhYmxlc1wiO1xuXG5cbkBpbmNsdWRlIGZ1bGwtd2lkdGgtY29udGVudC13ZWxsKFwiLmxhbmRpbmctcGFnZVwiKTtcblxuaGVhZGVyLmhlcm8ge1xuICAgIG1hcmdpbi1ib3R0b206IDJyZW07XG5cbiAgICBoMSB7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlLWNhcHRpb247XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtaHVnZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICBAaW5jbHVkZSBmb3ItcGhvbmUtcG9ydHJhaXQtb25seSB7XG4gICAgICAgICAgICBmb250LXNpemU6IGNhbGMoMnZ3ICsgNnJlbSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBoMiB7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMnhsO1xuICAgICAgICBmb250LWZhbWlseTogJ0dvdWR5JztcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICB9XG59XG5cbi5wcmltYXJ5LWhlYWRpbmcge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLy8gaHR0cHM6Ly93d3cubWFnaWNwYXR0ZXJuLmRlc2lnbi90b29scy9jc3MtYmFja2dyb3VuZHMiLCJAaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi9kdXJoYW1uY3N0cmluZ3Mvc3RhdGljL2Nzcy9hYnN0cmFjdHMvdmFyaWFibGVzLnNjc3MnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vZHVyaGFtbmNzdHJpbmdzL3N0YXRpYy9jc3MvYWJzdHJhY3RzL21peGlucy5zY3NzJztcblxuJGNvbG9yLWJsdWU6ICM4M2FmOWI7XG4kY29sb3ItYmVpZ2U6ICNlY2U1Y2U7XG4kY29sb3IteWVsbG93OiAjZjljZGFkO1xuJGNvbG9yLXBpbms6ICNmZTQzNjU7XG5cbi5wdWxsLXF1b3RlIHtcbiAgICBtYXgtd2lkdGg6IDYwMHB4O1xuICAgIG1hcmdpbjogOHJlbSBhdXRvIDRyZW0gYXV0bztcbn1cblxuLnB1bGwtcXVvdGVfX2J1YmJsZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogNHJlbTtcbn1cblxuXG4ucHVsbC1xdW90ZV9fYXR0cmlidXRpb24ge1xuICAgIGZvbnQtZmFtaWx5OiAnT3N0cmljaFNhbnMnO1xuICAgIGZvbnQtc2l6ZTogM3JlbTtcbn1cblxuLnB1bGwtcXVvdGVfX2J1YmJsZSAucHVsbC1xdW90ZV9fcXVvdGUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRleSgwcHgpO1xuICAgIGFuaW1hdGlvbjogZmxvYXQgNXMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDJweDtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gICAgY29sb3I6ICR3aGl0ZTtcbiAgICBsaW5lLWhlaWdodDogMS41O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRibGFjaztcbiAgICBib3JkZXItcmFkaXVzOiAxMXB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBib3gtc2hhZG93OiAyMHB4IDIwcHggcmdiYSgkYmxhY2ssIDAuNSk7XG5cblxuICAgIHBhZGRpbmc6IDRyZW07XG4gICAgQGluY2x1ZGUgZm9yLXBob25lLXBvcnRyYWl0LW9ubHkge1xuICAgICAgcGFkZGluZzogMXJlbTtcbiAgICB9XG59XG4ucHVsbC1xdW90ZV9fYnViYmxlIC5wdWxsLXF1b3RlX19xdW90ZTphZnRlciB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGV5KDBweCk7XG4gICAgYW5pbWF0aW9uOiBmbG9hdDIgNXMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG4gICAgY29udGVudDogXCIuXCI7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6ICRibGFjaztcbiAgICB0ZXh0LXNoYWRvdzogMjJweCAyMnB4IHJnYmEoJGJsYWNrLCAwLjUpO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgZm9udC1zaXplOiA1NXB4O1xuICAgIHdpZHRoOiA1NXB4O1xuICAgIGhlaWdodDogMTFweDtcbiAgICBsaW5lLWhlaWdodDogMzBweDtcbiAgICBib3JkZXItcmFkaXVzOiAxMXB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRibGFjaztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgYm90dG9tOiAtMzBweDtcbiAgICBsZWZ0OiAwO1xuICAgIGJveC1zaGFkb3c6IDIycHggMjJweCByZ2JhKCRibGFjaywgMC41KTtcbiAgICB6LWluZGV4OiAtMjtcbn1cblxuXG5Aa2V5ZnJhbWVzIGZsb2F0IHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRleSgwcHgpO1xuICB9XG4gIDUwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGV5KC0yMHB4KTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZXkoMHB4KTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGZsb2F0MiB7XG4gIDAlIHtcbiAgICBsaW5lLWhlaWdodDogMzBweDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZXkoMHB4KTtcbiAgfVxuICA1NSUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRleSgtMjBweCk7XG4gIH1cbiAgNjAlIHtcbiAgICBsaW5lLWhlaWdodDogMTBweDtcbiAgfVxuICAxMDAlIHtcbiAgICBsaW5lLWhlaWdodDogMzBweDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZXkoMHB4KTtcbiAgfVxufVxuIiwiXG5cbm9sLmJyZWFkY3J1bWJzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbn1cbiIsInNlY3Rpb24uY29udGFjdCB7fVxuXG5mb3JtLmNvbnRhY3QtZm9ybSB7fVxuXG5pbnB1dFtuYW1lPVwieWVhcnNfb25faW5zdHJ1bWVudFwiXSwgbGFiZWxbZm9yPVwiaWRfeWVhcnNfb25faW5zdHJ1bWVudFwiXSB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuaW5wdXRbbmFtZT1cInllYXJzX29mX2xlc3NvbnNcIl0sIGxhYmVsW2Zvcj1cImlkX3llYXJzX29mX2xlc3NvbnNcIl0ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59IiwiLy8gSW1wb3J0IG5vcm1hbGl6ZS5jc3MgZmlyc3RcbkB1c2UgXCIuL25vcm1hbGl6ZS5jc3NcIjtcblxuLy8gSW1wb3J0IHV0aWxzXG5AdXNlIFwiLi9hYnN0cmFjdHMvdXRpbHNcIjtcblxuLy8gQWRkIGFwcCBzdHlsZXNcbkB1c2UgXCIuLi8uLi8uLi9hcHBzL2hvbWUvc3RhdGljL3N0eWxlcy9ob21lXCI7XG5AdXNlIFwiLi4vLi4vLi4vYXBwcy9tZW51cy9zdGF0aWMvc3R5bGVzL21lbnVzXCI7XG5AdXNlIFwiLi4vLi4vLi4vYXBwcy9jb250YWN0L3N0YXRpYy9zdHlsZXMvY29udGFjdFwiO1xuXG5cbkB1c2UgXCIuL2Jhc2UtcGFnZVwiO1xuXG4vLyBBYnN0cmFjdHNcbkBpbXBvcnQgXCIuL2Fic3RyYWN0cy9taXhpbnNcIjtcbkBpbXBvcnQgXCIuL2Fic3RyYWN0cy92YXJpYWJsZXNcIjtcblxuXG5ib2R5IHtcbiAgICBiYWNrZ3JvdW5kOiAkd2hpdGU7XG4gICAgZm9udC1mYW1pbHk6ICdHb3VkeScsIHNhbnMtc2VyaWY7XG4gICAgY29sb3I6ICRncmV5LWRhcms7XG4gICAgbWluLWhlaWdodDogMTAwdmg7XG59XG5cbmgxIHtcbiAgICBmb250LWZhbWlseTogJ09zdHJpY2hTYW5zJywgc2Fucy1zZXJpZjtcbiAgICBmb250LXdlaWdodDogOTAwO1xuXG4gICAgQGluY2x1ZGUgZm9yLXBob25lLXBvcnRyYWl0LW9ubHkge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcbiAgICB9XG59XG5cbmgyIHtcbiAgICBmb250LWZhbWlseTogJ0dvdWR5Jywgc2VyaWY7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cblxuYSB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgY29sb3I6ICRjb2xvci1zcGxhc2g7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cblxuXG4uYmxvY2stcmljaF90ZXh0IHtcbiAgICBtYXgtd2lkdGg6IDYwMHB4O1xuXG4gICAgcCB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjc7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtbm9ybWFsO1xuXG4gICAgICAgIGksIGIge1xuICAgICAgICAgICAgY29sb3I6ICRjb2xvci1zcGxhc2g7XG4gICAgICAgIH1cbiAgICB9XG59Il19 */
