/* Vendor css and variables */
/*! 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 {
  -webkit-box-sizing: content-box;
          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;
  -webkit-text-decoration: underline dotted currentColor;
          text-decoration: underline dotted currentColor; /* 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 {
  -webkit-box-sizing: border-box;
          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"] {
  -webkit-box-sizing: border-box;
          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;
}
/* Customized for OUR design */
/* Core css and variables */
/*----------------------------------------------------------------------------
 *
 * Colors
 *
 *---------------------------------------------------------------------------*/
:root {

    /* Colors with "-our-" in their name are sourced from the OUR brand guidelines. Pulled from Bookworms web. */

    --our-primary-orange:       rgb(252,76,2);    /* #FC4C02 */
    --our-globalnav-orange:     rgb(241,89,42);   /* #F1592A  - a less bright, WCAG AA+ compliant orange */
    --aa-orange:                rgb(215,65,2);    /* #d74102 - AA orange with white — used in the CMS, skews reddish */
    --our-primary-yellow:       rgb(255,184,28);  /* #FFB81C */
    --our-primary-gray:         rgb(110,98,89);   /* #6E6259 */
    --our-primary-dark-gray:    rgb(69,53,54);    /* #453536 */
    --gray:                     rgb(200,200,200);
    --accessible-gray:          rgb(119,119,119); /* The lightest gray that is accessible at < 18px text on white */
    --light-gray:               rgb(241,241,241);
    --sticky-note-yellow:       #fdf4a4; /* Used only for the annotations in the teacher manual, or similar future components */
    --teal:                     #008470; /* A secondary accent color, used for announcement and message backgrounds on the landing pages */

    /* Neutral and accent color variables */

    --black:      #000000;
    --text:       var(--our-primary-dark-gray);
    --dark-gray:  #4c4c4c; /* 70% black */
    --med-gray:   #bfbfbf; /* 25% black */
    --light-gray: #ebebeb; /* 8% black */
    --white:      #ffffff;
    --accent:     var(--aa-orange);
    --accent-large:     var(--our-globalnav-orange);
    --accent-alt: var(--teal);
    --wormsy:                   rgb(81, 187, 114); /* #51BB72 */
    --wormsy-aa:                rgb(52, 133, 78);  /* #34854e */
    --wormsy-aa-large:          rgb(66, 168, 98);  /* #42a862 */

}
/*----------------------------------------------------------------------------
 *
 * Fonts
 *
 *---------------------------------------------------------------------------*/
:root {
  --font-family-text: 'Roboto', 'Trebuchet MS', Trebuchet, Tahoma, sans-serif; /* Default text, Global Nav, Curriculum Nav, Buttons… 400,500,700 weight */
  --font-family-text-alt: 'Source Sans Pro', sans-serif; /* Default text for index. 400, 600, 700 weight */
  --font-family-display: agenda-one, sans-serif; /* Headings — 600, 700 */
}
/*----------------------------------------------------------------------------
 *
 * Sizes
 *
 *---------------------------------------------------------------------------*/
/* Font and Foundational Modular Sizes */
:root {
  --alpha:            2.4rem;                /* Eg. Banners and Text Treated Like Large Graphics */
  --beta:             1.784rem;              /* Eg. H2ish Headings */
  --gamma:            1.2rem;              /* Eg. H3ish Headings */
  --rem:              100%;                  /* Eg. Foundation for all type, margin, and padding sizes */
  --delta:            1rem;                  /* Eg. H4ish Headings */
  --base:             1rem;                  /* Eg. Body font */
  --epsilon:          .9rem;                 /* Eg. Standards tags */
  --zeta:             .833rem;               /* DO NOT EDIT — Used in curriculum nav and breadcrumb nav */
  --eta:              .75rem;                /* Reserved for fine print and informationally dense elements like tables */

}
/* Content Area Related Sizes */
:root {
  --measure: 40rem;
  --content-width: 48rem;
}
/* Viewport Width Variables */
:root {

  --bp-nano-minus:   319px;
  --bp-nano:         320px;
  --bp-micro-minus:  410px;
  --bp-micro:        411px;
  --bp-min-minus:    536px;
  --bp-min:          537px;
  --bp-mid-minus:    767px;
  --bp-mid:          768px;
  --bp-mega-minus:   1023px;
  --bp-mega:         1024px;
  --bp-max-minus:    1319px;
  --bp-max:          1320px

}
/* Custom Media Declarations for Breakpoints */
/*----------------------------------------------------------------------------
 *
 * TYPOGRAPHY
 *
 *---------------------------------------------------------------------------*/
html {
  font-size: 100%;
  font-size: var(--rem);
  font-family: 'Roboto', 'Trebuchet MS', Trebuchet, Tahoma, sans-serif;
  font-family: var(--font-family-text);
  font-style: normal;
  font-weight: 400;
  -webkit-text-size-adjust: none;
     -moz-text-size-adjust: none;
      -ms-text-size-adjust: none;
          text-size-adjust: none;

  /* Fluid type size from 16px to 20px between --bp-min and --bp-max breakpoints */
}
@media (min-width: 537px) {
    html {
      font-size: 1em; /* 16px at 320px */
      font-size: calc(1em + 0.4vw - 1.28px);
    }
  }
@media (min-width: 1320px) {
    html {
      font-size: 1.25em; /* 20px at 1320px */
    }
  }
body {
  line-height: 1.35;
  color: rgb(69,53,54);
  color: var(--text);

  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;

  /* Fluid line-height from 1.35 to 1.45 between $bp-min and $bp-max breakpoints */
}
@media (min-width: 537px) {
    body {
      line-height: 1.35; /* 1.35 at 320px */
      line-height: calc(1.35em + 0.01vw - 0.032px);
    }
  }
@media (min-width: 1320px) {
    body {
      line-height: 1.45; /* 1.45 at 1320px */
    }
  }
a {
  color: rgb(69,53,54);
  color: var(--text);
}
a:hover {
     color: rgb(241,89,42);
     color: var(--our-globalnav-orange);
     text-decoration-color: color(rgb(252,76,2) a(25%));
     text-decoration-color: color(var(--our-primary-orange) a(25%));
  }
strong, b {
  font-weight: 600;
}
/*
     HEADING and TEXT SIZES
*/
h1,h2,h3,h4,h5,h6 {
  -webkit-hyphens: none;
      -ms-hyphens: none;
          hyphens: none;
}
.hed-alpha,
.hed-beta,
.hed-gamma,
.hed-delta,
.hed-epsilon,
.hed-zeta,
[class|=hed-sequence] {
  font-weight: normal;
  font-style: normal;
  display: block;
  margin-bottom: .5em;
  line-height: 1.1;
  page-break-after: avoid;
  -webkit-hyphens: none;
      -ms-hyphens: none;
          hyphens: none;
}
.hed-alpha,
.hed-beta,
.hed-gamma,
[class|=hed-sequence] {
  margin-top: 3rem;
}
.hed-delta,
.hed-epsilon,
.hed-zeta {
  margin-top: 2rem;
}
[class*=hed-]:not(span) + [class*=hed-]:not(span) {
  margin-top: 1rem;
}
.hed-alpha {
  font-family: agenda-one, sans-serif;
  font-family: var(--font-family-display);
  font-weight: 700;
  font-size: 2.4rem;
  font-size: var(--alpha);
  color: var(--deep);
}
.hed-beta {
  font-family: agenda-one, sans-serif;
  font-family: var(--font-family-display);
  font-weight: 700;
  font-size: 1.784rem;
  font-size: var(--beta);
  color: var(--primary);
}
.hed-gamma {
  font-family: agenda-one, sans-serif;
  font-family: var(--font-family-display);
  font-weight: 700;
  font-size: 1.2rem;
  font-size: var(--gamma);
  color: rgb(69,53,54);
  color: var(--text);
}
.hed-delta {
  font-family: agenda-one, sans-serif;
  font-family: var(--font-family-display);
  font-weight: 600;
  font-size: 1rem;
  font-size: var(--delta);
  color: rgb(69,53,54);
  color: var(--text);
  margin-bottom: 1rem;
}
.hed-epsilon {
  font-size: .9rem;
  font-size: var(--epsilon);
  font-weight: 600;
  color: rgb(69,53,54);
  color: var(--text);
}
.hed-zeta {
  font-size: .833rem;
  font-size: var(--zeta);
  font-weight: 600;
  color: rgb(69,53,54);
  color: var(--text);
}
.text-epsilon {
  font-size: .9rem;
  font-size: var(--epsilon);
}
.text-zeta {
  font-size: .833rem;
  font-size: var(--zeta);
}
.is-text-color {
  color: rgb(69,53,54);
  color: var(--text);
}
/*
     PARAGRAPHS
*/
p {
  margin: 0 0 1rem;
  orphans: 2;
  widows: 2;
}
p:last-child {
  margin-bottom: 0;
}
/*
     LISTS AND VARIATIONS
*/
ul {
  margin: 1rem 0 1rem 1rem;
  padding: 0;
  orphans: 2;
  widows: 2;
}
ul ul,
ol ol {
  margin-top: .5rem;
}
li > p + ul {
  margin-top: -.5rem;
}
ol {
  margin: 1rem 0 1rem 1rem;
  padding: 0;
  orphans: 2;
  widows: 2;
}
li {
  margin-bottom: .5rem;
}
li:last-child {
  margin-bottom: 0;
}
/* Helpers */
.h-hide-cms-content-during-development { /* @TODO delete rule after development */
  display: none;
}
@media (min-width: 537px) {
  .h-nobr {
      white-space: nowrap;
  }
}
.h-url-wrap { /* allow URLs displayed inline to wrap */
  word-wrap: break-word;
}
.h-show-inline-bp-min {
  display: none;
}
@media (min-width: 537px) {
    .h-show-inline-bp-min {
      display: inline;
    }
  }
.h-flush-top {
  margin-top: 0;
  padding-top: 0;
}
.h-flush-bottom {
  margin-bottom: 0;
  padding-bottom: 0;
}
/* ----------------------------------------------------------------------------
 *
 * BUTTONS
 *
 * ------------------------------------------------------------------------- */
.c-button {
  background-color: rgb(215,65,2);
  background-color: var(--accent);
  border: 0.0625rem solid rgb(215,65,2);
  border: 0.0625rem solid var(--accent);
  border-radius: 0.25rem;
  color: #ffffff;
  color: var(--white);
  cursor: pointer;
  display: inline-block;
  font-weight: 500;
  height: 2.375rem;
  line-height: 2.375rem;
  padding: 0 1.875rem;
  text-align: center;
  text-decoration: none;
  white-space: nowrap;
  -moz-appearance: none;
       appearance: none;
  margin: .25rem .5rem .25rem 0;
  -webkit-appearance: none;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}
@media (min-width: 768px) {
    .c-button {
      font-size: .9rem;
      font-size: var(--epsilon);
    }
  }
.c-button_small {
  height: 2.375em;
  line-height: 2.375em;
  padding: 0 1.875em;
  font-size: .75rem;
  font-size: var(--eta);
}
.c-button:first-of-type {
  margin-left: 0;
}
.c-button:focus,
.c-button:hover {
  background-color: rgb(241,89,42);
  background-color: var(--accent-large);
  border-color: rgb(241,89,42);
  border-color: var(--accent-large);
  color: #fff;
  outline: 0;
}
.c-button[disabled] {
  cursor: default;
  opacity: .4;
}
.c-button[disabled]:focus,
.c-button[disabled]:hover {
  background-color: rgb(215,65,2);
  background-color: var(--accent);
  border-color: rgb(215,65,2);
  border-color: var(--accent);
}
.c-button_beefy {
  padding: .125rem 2.5rem;
  height: auto;
}
.c-button_wormsy {
  background-color: rgb(52, 133, 78);
  background-color: var(--wormsy-aa);
  border-color: rgb(52, 133, 78);
  border-color: var(--wormsy-aa);
}
.c-button_wormsy:focus,
.c-button_wormsy:hover {
  background-color: rgb(66, 168, 98);
  background-color: var(--wormsy-aa-large);
  border-color: rgb(66, 168, 98);
  border-color: var(--wormsy-aa-large);
}
.c-button_wormsy-grade {
  min-width: 7rem;
  padding-left: 1rem;
  padding-right: 1rem;
}
.c-button_reverse {
  background-color: #ffffff;
  background-color: var(--white);
  border: 0.0625rem solid #ffffff;
  border: 0.0625rem solid var(--white);
  color: rgb(215,65,2);
  color: var(--accent);
}
.c-button_reverse:focus,
.c-button_reverse:hover {
  background-color: #ffffff;
  background-color: var(--white);
  border-color: #ffffff;
  border-color: var(--white);
  color: rgb(241,89,42);
  color: var(--accent-large);
}
.c-button_outline {
  background-color: transparent;
  color: rgb(215,65,2);
  color: var(--accent);
}
.c-button_outline:focus,
.c-button_outline:hover {
  background-color: transparent;
  border-color: rgb(241,89,42);
  border-color: var(--accent-large);
  color: rgb(241,89,42);
  color: var(--accent-large);
}
.c-button-outline[disabled]:focus,
.c-button-outline[disabled]:hover {
  border-color: inherit;
  color: rgb(215,65,2);
  color: var(--accent);
}
.c-button_outline-reverse {
  background-color: transparent;
  border-color: #ebebeb;
  border-color: var(--light-gray);
  color: #ebebeb;
  color: var(--light-gray);
}
.c-button_outline-reverse:focus,
.c-button_outline-reverse:hover {
  background-color: transparent;
  border-color: #ffffff;
  border-color: var(--white);
  color: #ffffff;
  color: var(--white);
}
.c-button-outline-reverse[disabled]:focus,
.c-button-outline-reverse[disabled]:hover {
  border-color: inherit;
  color: #ebebeb;
  color: var(--light-gray);
}
.c-button_clear {
  background-color: transparent;
  border-color: transparent;
  color: rgb(215,65,2);
  color: var(--accent);
}
.c-button_clear:focus,
.c-button_clear:hover {
  background-color: transparent;
  border-color: transparent;
  color: rgb(241,89,42);
  color: var(--accent-large);
}
.c-button_clear[disabled]:focus,
.c-button_clear[disabled]:hover {
  color: rgb(215,65,2);
  color: var(--accent);
}
.c-button_clear-reverse {
  background-color: transparent;
  border-color: transparent;
  color: #ebebeb;
  color: var(--light-gray);
}
.c-button_clear-reverse:focus,
.c-button_clear-reverse:hover {
  background-color: transparent;
  border-color: transparent;
  color: #ffffff;
  color: var(--white);
}
.c-button_clear-reverse[disabled]:focus,
.c-button_clear-reverse[disabled]:hover {
  color: #ebebeb;
  color: var(--light-gray);
}
.c-button .c-icon {
  margin-right: .5ch;
  font-size: 1.2em;
  margin-left: -1ch;
}
.c-button.has-icon-before::before,
.c-button.has-icon-after::after {
  font-size: 1.1em;
  line-height: 0;
}
/* Layout */
/*----------------------------------------------------------------------------
 *
 * LAYOUT
 *
 *---------------------------------------------------------------------------*/
body {
  margin: 0;
  padding: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  min-height: 100vh;
}
.l-header {

}
.l-header_bookworms {
  -webkit-box-flex: 1;
      -ms-flex: 1 0 auto;
          flex: 1 0 auto;
  position: relative;
}
.l-header_el-k8 {
  -webkit-box-flex: 1;
      -ms-flex: 1 0 auto;
          flex: 1 0 auto;
  position: relative;
}
.l-header_el-k5-2025 {
  -webkit-box-flex: 1;
      -ms-flex: 1 0 auto;
          flex: 1 0 auto;
  position: relative;
}
.l-header_el-skills-block-2024 {
  -webkit-box-flex: 1;
      -ms-flex: 1 0 auto;
          flex: 1 0 auto;
  position: relative;
}
.l-banner__inner-columns {
  margin: 0;
  padding: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}
@media (min-width: 768px) {
    .l-banner__inner-columns {
      -webkit-box-orient: horizontal;
      -webkit-box-direction: normal;
          -ms-flex-direction: row;
              flex-direction: row;
      -webkit-box-align: end;
          -ms-flex-align: end;
              align-items: flex-end;
    }
  }
@media (min-width: 768px) {
    .l-banner__inner-left-column {
        -webkit-box-flex: 1;
            -ms-flex: 1 0 45%;
                flex: 1 0 45%;
        width: 45%;
        text-align: left;
        margin-right: 2rem;
    }
  }
.l-banner__inner-left-column p {
  margin: 1rem 0;
}
.l-banner__inner-left-column p:first-child {
    margin-top: 0;
  }
@media (min-width: 768px) {
    .l-banner__inner-left-column p:last-child {
      margin-bottom: 0;
    }
  }
.l-banner__inner-right-column {
  width: 100%;
}
@media (min-width: 768px) {
    .l-banner__inner-right-column {
      -webkit-box-flex: 1;
          -ms-flex: 1 0 45%;
              flex: 1 0 45%;
      width: 45%;
    }
  }
.l-main {
  padding: 1rem 1rem 2rem;
}
.l-content {
  width: 100%;
  max-width: 48rem;
  max-width: var(--content-width);
  margin: 1rem auto;
}
@media (min-width: 537px) {
    .l-content_golden-columns {
      margin: 2rem auto;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-align: start;
          -ms-flex-align: start;
              align-items: flex-start;
      -webkit-box-pack: justify;
          -ms-flex-pack: justify;
              justify-content: space-between;
    }
  }
@media (min-width: 768px) {
    .l-content_golden-columns {
      -webkit-box-align: stretch;
          -ms-flex-align: stretch;
              align-items: stretch;
      margin: 3rem auto;
    }
  }
.l-content_golden-columns .c-button {
  margin-bottom: 0;
}
.l-content__golden-column-a > *:first-child {
    margin-top: 0;
  }
@media (min-width: 537px) {
    .l-content__golden-column-a {
      -webkit-box-flex: 1;
          -ms-flex: 1 0 45%;
              flex: 1 0 45%;
      width: 45%;
      margin-right: 2rem;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
          -ms-flex-direction: column;
              flex-direction: column;
    }
    .l-content__golden-column-a > *:last-child {
      margin-top: auto;
      margin-bottom: 0;
    }
  }
@media (min-width: 537px) {
    .l-content__golden-column-b {
      -webkit-box-flex: 1;
          -ms-flex: 1 0 45%;
              flex: 1 0 45%;
      width: 45%;
    }
    .l-content__golden-column-b > *:first-child {
      margin-top: 0;
    }
  }
.l-footer {
  margin-top: auto;
  background: rgb(69,53,54);
  background: var(--our-primary-dark-gray);
}
.l-list-of-buttons {
  list-style: none;
  margin: 0;
  padding: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}
.l-list-of-buttons li {
  margin-bottom: 0;
}
.is-hidden {
  display: none;
}
.l-index-wrapper {
  background: rgb(241,89,42);
  background: var(--accent-large);
  background:
    url(/assets/forms/texture-regform-white15-4efd336d027f8a7e31beafddabfae3af2af5f5bcaee38cbd560051209aa46d28.svg),
    -webkit-gradient(linear, left top, left bottom, from(rgb(241,89,42)), color-stop(18.75rem, rgb(241,89,42)), color-stop(18.75rem, #ffffff),  to(#ffffff));
  background:
    url(/assets/forms/texture-regform-white15-4efd336d027f8a7e31beafddabfae3af2af5f5bcaee38cbd560051209aa46d28.svg),
    linear-gradient(rgb(241,89,42) 0%, rgb(241,89,42) 18.75rem, #ffffff 18.75rem,  #ffffff 100%);
  background:
    url(/assets/forms/texture-regform-white15-4efd336d027f8a7e31beafddabfae3af2af5f5bcaee38cbd560051209aa46d28.svg),
    -webkit-gradient(linear, left top, left bottom, from(var(--accent-large)), color-stop(18.75rem, var(--accent-large)), color-stop(18.75rem, var(--white)),  to(var(--white)));
  background:
    url(/assets/forms/texture-regform-white15-4efd336d027f8a7e31beafddabfae3af2af5f5bcaee38cbd560051209aa46d28.svg),
    linear-gradient(var(--accent-large) 0%, var(--accent-large) 18.75rem, var(--white) 18.75rem,  var(--white) 100%);
  min-height: 20rem;
  background-size:
    67rem,
    100%;
  background-repeat:
    repeat-x,
    no-repeat;
  background-blend-mode:
    overlay,
    normal;
}
/* Components */
/*----------------------------------------------------------------------------
 *
 * BANNER
 *
 *---------------------------------------------------------------------------*/
.c-banner {
  background-color: rgba(21,11,73,0.81); /* #150B49 */
  color: #ffffff;
  color: var(--white);
  padding: 4rem 1rem;
}
.c-banner_odell-hs-ela {
  background-color: rgba(47,55,118,0.81); /* #2f3776*/
  background-image:
    -webkit-gradient(linear, left top, right top, from(rgba(47,55,118,0.81)), to(rgba(47,55,118,0.81))), /* Set as a flat, non-changing gradient in order to layer this color like an image */
    url(/assets/publications/odell-hs-ela_background50Q-845797bd6b95c0061d5da0d34c2198d9998c6e870402c0b0389b1486117ff5b6.jpg);
  background-image:
    linear-gradient(90deg, rgba(47,55,118,0.81) 0%, rgba(47,55,118,0.81) 100%), /* Set as a flat, non-changing gradient in order to layer this color like an image */
    url(/assets/publications/odell-hs-ela_background50Q-845797bd6b95c0061d5da0d34c2198d9998c6e870402c0b0389b1486117ff5b6.jpg);
  background-size:
    cover,
    cover;
  padding: 4rem 1rem 6rem; /* Beefy padding since there is so little in the banner. */
}
.c-banner_ca-k8-math {
  background-color: rgba(21,11,73,0.81); /* #150B49 */
  background-image:
    -webkit-gradient(linear, left top, right top, from(rgba(21,11,73,0.81)), to(rgba(21,11,73,0.81))), /* Set as a flat, non-changing gradient in order to layer this color like an image */
    url(/assets/publications/ca-k8-math_background-20b1ff8c7fcfbe87fa33684ca9bc4dbd07fd1e8dc9439c70ae1714e057727305.jpg);
  background-image:
    linear-gradient(90deg, rgba(21,11,73,0.81) 0%, rgba(21,11,73,0.81) 100%), /* Set as a flat, non-changing gradient in order to layer this color like an image */
    url(/assets/publications/ca-k8-math_background-20b1ff8c7fcfbe87fa33684ca9bc4dbd07fd1e8dc9439c70ae1714e057727305.jpg);
  background-size:
    cover,
    cover;
}
.c-banner_our6-8math {
  background-color: rgba(21,11,73,0.81); /* #150B49 */
  background-image:
    -webkit-gradient(linear, left top, right top, from(rgba(21,11,73,0.81)), to(rgba(21,11,73,0.81))), /* Set as a flat, non-changing gradient in order to layer this color like an image */
    url(/assets/publications/our6-8math_background50Q-28100e29f407c4e53d051c6f75ced0d59f772818e3ec65f4a492777533c4eee9.jpg);
  background-image:
    linear-gradient(90deg, rgba(21,11,73,0.81) 0%, rgba(21,11,73,0.81) 100%), /* Set as a flat, non-changing gradient in order to layer this color like an image */
    url(/assets/publications/our6-8math_background50Q-28100e29f407c4e53d051c6f75ced0d59f772818e3ec65f4a492777533c4eee9.jpg);
  background-size:
    cover,
    cover;
}
.c-banner_our-hs-math {
  background-color: rgba(21,11,73,0.81); /* #150B49 */
  background-image:
    -webkit-gradient(linear, left top, right top, from(rgba(21,11,73,0.81)), to(rgba(21,11,73,0.81))), /* Set as a flat, non-changing gradient in order to layer this color like an image */
    url(/assets/publications/our-hs-math-aga_background25Q-106e294756952f23d4cde3b2fbd4353c2547e6f52a6e48de07180a4b443c98c7.jpg);
  background-image:
    linear-gradient(90deg, rgba(21,11,73,0.81) 0%, rgba(21,11,73,0.81) 100%), /* Set as a flat, non-changing gradient in order to layer this color like an image */
    url(/assets/publications/our-hs-math-aga_background25Q-106e294756952f23d4cde3b2fbd4353c2547e6f52a6e48de07180a4b443c98c7.jpg);
  background-size:
    cover,
    cover;
}
.c-banner_our-hs-math-pilot-pl {
  background-color: rgba(21,11,73,0.81); /* #150B49 */
  background-image:
    -webkit-gradient(linear, left top, right top, from(rgba(21,11,73,0.81)), to(rgba(21,11,73,0.81))), /* Set as a flat, non-changing gradient in order to layer this color like an image */
    url(/assets/publications/our-hs-math-MVPPilot_LandingPage_Image50Q-4f67dac1fb0a815548f7e2cc29e73c4e616003d206b65c89ffc03ae4af0a53c6.jpg);
  background-image:
    linear-gradient(90deg, rgba(21,11,73,0.81) 0%, rgba(21,11,73,0.81) 100%), /* Set as a flat, non-changing gradient in order to layer this color like an image */
    url(/assets/publications/our-hs-math-MVPPilot_LandingPage_Image50Q-4f67dac1fb0a815548f7e2cc29e73c4e616003d206b65c89ffc03ae4af0a53c6.jpg);
  background-size:
    cover,
    cover;
}
.c-banner_our-hs-math-nc {
  background-color: rgba(21,11,73,0.81); /* #150B49 */
  background-image:
    -webkit-gradient(linear, left top, right top, from(rgba(21,11,73,0.81)), to(rgba(21,11,73,0.81))), /* Set as a flat, non-changing gradient in order to layer this color like an image */
    url(/assets/publications/our-hs-math-nc_background25Q-ab93eaa384bee7721a7803c3e22c46f4309400adfe1097fd3eef472f91e6c50e.jpg);
  background-image:
    linear-gradient(90deg, rgba(21,11,73,0.81) 0%, rgba(21,11,73,0.81) 100%), /* Set as a flat, non-changing gradient in order to layer this color like an image */
    url(/assets/publications/our-hs-math-nc_background25Q-ab93eaa384bee7721a7803c3e22c46f4309400adfe1097fd3eef472f91e6c50e.jpg);
  background-size:
    cover,
    cover;
}
.c-banner_our-k5-math {
  background-color: rgba(21,11,73,0.81); /* #150B49 */
  background-image:
    -webkit-gradient(linear, left top, right top, from(rgba(21,11,73,0.81)), to(rgba(21,11,73,0.81))), /* Set as a flat, non-changing gradient in order to layer this color like an image */
    url(/assets/publications/ourmath-k5_background_optimized-3bdf98c239e68b6ab77c22287c371d915a7d19ccddf1b353c7dc63e8b7a1cbc9.svg);
  background-image:
    linear-gradient(90deg, rgba(21,11,73,0.81) 0%, rgba(21,11,73,0.81) 100%), /* Set as a flat, non-changing gradient in order to layer this color like an image */
    url(/assets/publications/ourmath-k5_background_optimized-3bdf98c239e68b6ab77c22287c371d915a7d19ccddf1b353c7dc63e8b7a1cbc9.svg);
  background-size:
    cover,
    cover;
}
.c-banner_k8-math-pilot-pl {
  background-color: rgba(21,11,73,0.81); /* #150B49 */
  background-image:
    -webkit-gradient(linear, left top, right top, from(rgba(21,11,73,0.81)), to(rgba(21,11,73,0.81))), /* Set as a flat, non-changing gradient in order to layer this color like an image */
    url(/assets/publications/ourmath-k5_background_optimized-3bdf98c239e68b6ab77c22287c371d915a7d19ccddf1b353c7dc63e8b7a1cbc9.svg);
  background-image:
    linear-gradient(90deg, rgba(21,11,73,0.81) 0%, rgba(21,11,73,0.81) 100%), /* Set as a flat, non-changing gradient in order to layer this color like an image */
    url(/assets/publications/ourmath-k5_background_optimized-3bdf98c239e68b6ab77c22287c371d915a7d19ccddf1b353c7dc63e8b7a1cbc9.svg);
  background-size:
    cover,
    cover;
}
.c-banner_bookworms {
  background-color: rgba(17,65,65,0.81); /* #114141 */
  background-image:
    -webkit-gradient(linear, left top, right top, from(rgba(17,65,65,0.81)), to(rgba(17,65,65,0.81))), /* Set as a flat, non-changing gradient in order to layer this color like an image */
    url(/assets/publications/bookworms_background50Q_2022-00f4ef286d9017403889c19ce717390909004cb587f2a800518843c137fe024d.jpg);
  background-image:
    linear-gradient(90deg, rgba(17,65,65,0.81) 0%, rgba(17,65,65,0.81) 100%), /* Set as a flat, non-changing gradient in order to layer this color like an image */
    url(/assets/publications/bookworms_background50Q_2022-00f4ef286d9017403889c19ce717390909004cb587f2a800518843c137fe024d.jpg);
  background-size:
    cover,
    cover;
}
.c-banner_bookworms-pilot-pl {
  background-color: rgba(17,65,65,0.81); /* #114141 */
  background-image:
    -webkit-gradient(linear, left top, right top, from(rgba(17,65,65,0.81)), to(rgba(17,65,65,0.81))), /* Set as a flat, non-changing gradient in order to layer this color like an image */
    url(/assets/publications/bookworms-pilot-pl-landing-page-background50Q-cda78630a97ca597858508bde72053d6bec8c16f49ebc679c8106306923d6e95.jpg);
  background-image:
    linear-gradient(90deg, rgba(17,65,65,0.81) 0%, rgba(17,65,65,0.81) 100%), /* Set as a flat, non-changing gradient in order to layer this color like an image */
    url(/assets/publications/bookworms-pilot-pl-landing-page-background50Q-cda78630a97ca597858508bde72053d6bec8c16f49ebc679c8106306923d6e95.jpg);
  background-position: center;
  background-size:
    cover,
    cover;
}
.c-banner_bw-di {
  background-color: rgb(81, 187, 114);
  background-color: var(--wormsy);
  background-image: url(/assets/publications/bw-pl_background50Q-2ba9a4d13f7cb80bfc142257dc8f82b77e333d4f397958437e32826d3bca78b8.jpg);
  background-size: cover;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  color: rgb(69,53,54);
  color: var(--text);
  -webkit-box-shadow:
    inset 0 .125rem 0 0 rgb(81, 187, 114),
    inset 0 -0.125rem 0 0 rgb(81, 187, 114);
          box-shadow:
    inset 0 .125rem 0 0 rgb(81, 187, 114),
    inset 0 -0.125rem 0 0 rgb(81, 187, 114);
  -webkit-box-shadow:
    inset 0 .125rem 0 0 var(--wormsy),
    inset 0 -0.125rem 0 0 var(--wormsy);
          box-shadow:
    inset 0 .125rem 0 0 var(--wormsy),
    inset 0 -0.125rem 0 0 var(--wormsy);
}
.c-banner_bw-pl {
  background-color: rgb(81, 187, 114);
  background-color: var(--wormsy);
  background-image: url(/assets/publications/bw-pl_background50Q-2ba9a4d13f7cb80bfc142257dc8f82b77e333d4f397958437e32826d3bca78b8.jpg);
  background-size: cover;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  color: rgb(69,53,54);
  color: var(--text);
  -webkit-box-shadow:
    inset 0 .125rem 0 0 rgb(81, 187, 114),
    inset 0 -0.125rem 0 0 rgb(81, 187, 114);
          box-shadow:
    inset 0 .125rem 0 0 rgb(81, 187, 114),
    inset 0 -0.125rem 0 0 rgb(81, 187, 114);
  -webkit-box-shadow:
    inset 0 .125rem 0 0 var(--wormsy),
    inset 0 -0.125rem 0 0 var(--wormsy);
          box-shadow:
    inset 0 .125rem 0 0 var(--wormsy),
    inset 0 -0.125rem 0 0 var(--wormsy);
}
.c-banner_el-k8 {
  background-color: rgb(69,53,54);
  background-color: var(--text, rgb(69,53,54));
  background-image:
    -webkit-gradient(linear, left top, right top, from(rgba(69,53,54,0.85)), to(rgba(69,53,54,0.85))), /* Set as a flat, non-changing gradient in order to layer this color like an image - Colors in gradient are RGBA equivalents of var(--text) + 85% Alpha */
    url(/assets/publications/el-k8_background50Q-228bfcb56465f88f28e3fea331291ed05ec3fb7c4c1f82b98bf546f049af1430.jpg);
  background-image:
    linear-gradient(90deg, rgba(69,53,54,0.85) 0%, rgba(69,53,54,0.85) 100%), /* Set as a flat, non-changing gradient in order to layer this color like an image - Colors in gradient are RGBA equivalents of var(--text) + 85% Alpha */
    url(/assets/publications/el-k8_background50Q-228bfcb56465f88f28e3fea331291ed05ec3fb7c4c1f82b98bf546f049af1430.jpg);
  background-size:
    cover,
    cover;
  background-blend-mode:
    normal,
    normal;
}
.c-banner_el-k5-2025 {
  background-color: rgb(69,53,54);
  background-color: var(--text, rgb(69,53,54));
  background-image:
    -webkit-gradient(linear, left top, right top, from(rgba(69,53,54,0.85)), to(rgba(69,53,54,0.85))), /* Set as a flat, non-changing gradient in order to layer this color like an image - Colors in gradient are RGBA equivalents of var(--text) + 85% Alpha */
    url(/assets/publications/el-k5-2025_background-7c46a14fc7326aeeceddbad6e7b197b4e300415fbe2719259ef10940a4e59838.jpg);
  background-image:
    linear-gradient(90deg, rgba(69,53,54,0.85) 0%, rgba(69,53,54,0.85) 100%), /* Set as a flat, non-changing gradient in order to layer this color like an image - Colors in gradient are RGBA equivalents of var(--text) + 85% Alpha */
    url(/assets/publications/el-k5-2025_background-7c46a14fc7326aeeceddbad6e7b197b4e300415fbe2719259ef10940a4e59838.jpg);
  background-size:
    cover,
    cover;
  background-blend-mode:
    normal,
    normal;
}
.c-banner_el-pilot-pl {
  background-color: rgb(69,53,54);
  background-color: var(--text, rgb(69,53,54));
  background-image:
    -webkit-gradient(linear, left top, right top, from(rgba(69,53,54,0.85)), to(rgba(69,53,54,0.85))), /* Set as a flat, non-changing gradient in order to layer this color like an image - Colors in gradient are RGBA equivalents of var(--text) + 85% Alpha */
    url(/assets/publications/el-k8_background50Q-228bfcb56465f88f28e3fea331291ed05ec3fb7c4c1f82b98bf546f049af1430.jpg);
  background-image:
    linear-gradient(90deg, rgba(69,53,54,0.85) 0%, rgba(69,53,54,0.85) 100%), /* Set as a flat, non-changing gradient in order to layer this color like an image - Colors in gradient are RGBA equivalents of var(--text) + 85% Alpha */
    url(/assets/publications/el-k8_background50Q-228bfcb56465f88f28e3fea331291ed05ec3fb7c4c1f82b98bf546f049af1430.jpg);
  background-size:
    cover,
    cover;
  background-blend-mode:
    normal,
    normal;
}
.c-banner_el-skills-block-2024 {
  background-color: rgb(69,53,54);
  background-color: var(--text, rgb(69,53,54));
  background-image:
    -webkit-gradient(linear, left top, right top, from(rgba(69,53,54,0.85)), to(rgba(69,53,54,0.85))), /* Set as a flat, non-changing gradient in order to layer this color like an image - Colors in gradient are RGBA equivalents of var(--text) + 85% Alpha */
    url(/assets/publications/el-skills-block-2024-background-7178a88a457e8dec5638e30023a77847fb751e6bc2ea20bca08ffb2e3895923c.jpg);
  background-image:
    linear-gradient(90deg, rgba(69,53,54,0.85) 0%, rgba(69,53,54,0.85) 100%), /* Set as a flat, non-changing gradient in order to layer this color like an image - Colors in gradient are RGBA equivalents of var(--text) + 85% Alpha */
    url(/assets/publications/el-skills-block-2024-background-7178a88a457e8dec5638e30023a77847fb751e6bc2ea20bca08ffb2e3895923c.jpg);
  background-size:
    cover,
    cover;
  background-blend-mode:
    normal,
    normal;
}
.c-banner [class^="hed"] {
  color: #ffffff;
  color: var(--white);
  margin-top: 0;
}
.c-banner__inner {
  margin: 0 auto;
  max-width: 48rem;
  max-width: var(--content-width);
}
.c-banner__dek {
  font-family: agenda-one, sans-serif;
  font-family: var(--font-family-display);
  font-weight: 600;
  font-size: 1.2rem;
  font-size: var(--gamma);
  line-height: 1.1;
}
.c-banner__dek a {
  color: #ffffff;
  color: var(--white);
  text-decoration: none;
  border-bottom: 1px solid #ebebeb;
  border-bottom: 1px solid var(--light-gray);
}
.c-banner__dek a:hover {
  border-color: #ffffff;
  border-color: var(--white);
}
.c-banner__hed {
  font-family: agenda-one, sans-serif;
  font-family: var(--font-family-display);
  font-weight: 700;
  font-size: 2.4rem;
  font-size: var(--alpha);
  line-height: 1;
}
.c-banner_bw-pl .c-banner__hed {
  color: rgb(52, 133, 78);
  color: var(--wormsy-aa);
}
.c-banner__lede a,
.c-banner__fineprint a {
  color: #ffffff;
  color: var(--white);
  text-decoration: none;
  border-bottom: 1px solid #ebebeb;
  border-bottom: 1px solid var(--light-gray);
}
.c-banner__lede a:hover,
.c-banner__fineprint a:hover {
  border-color: #ffffff;
  border-color: var(--white);
}
.c-banner__form {
}
.c-banner__chooser-group:first-of-type {
  margin-top: 3.5rem;
}
.c-banner__chooser-group.is-disabled,
.c-banner__acknowledgment.is-disabled {
  opacity: .4;
}
.c-banner__chooser-group.is-disabled .c-button_outline-reverse:focus,
.c-banner__chooser-group.is-disabled .c-button_outline-reverse:hover {
  background-color: transparent;
  border-color: #ebebeb;
  border-color: var(--light-gray);
  color: #ebebeb;
  color: var(--light-gray);
  cursor: default;
}
/* Container for a checkbox + label pair */
.c-banner__acknowledgment {
  margin-top: 1rem;
  overflow: visible;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: baseline;
      -ms-flex-align: baseline;
          align-items: baseline;
  gap: 0.5em;
}
.c-banner__label {
  overflow: hidden;
}
/* Off-screen radio button styles and contexts */
.c-banner__radio {
  position: absolute;
  left: -10rem;
}
.c-banner__radio.focus-visible + .c-button {
  -webkit-box-shadow:
    inset 0 0 0 0.15em rgb(215,65,2),
    inset 0 0 0 0.3em #fff;
          box-shadow:
    inset 0 0 0 0.15em rgb(215,65,2),
    inset 0 0 0 0.3em #fff;
  -webkit-box-shadow:
    inset 0 0 0 0.15em var(--aa-orange),
    inset 0 0 0 0.3em #fff;
          box-shadow:
    inset 0 0 0 0.15em var(--aa-orange),
    inset 0 0 0 0.3em #fff;
}
.c-banner__radio.focus-visible + .c-button {
  -webkit-box-shadow:
    inset 0 0 0 0.15em rgb(215,65,2),
    inset 0 0 0 0.3em #fff;
          box-shadow:
    inset 0 0 0 0.15em rgb(215,65,2),
    inset 0 0 0 0.3em #fff;
  -webkit-box-shadow:
    inset 0 0 0 0.15em var(--aa-orange),
    inset 0 0 0 0.3em #fff;
          box-shadow:
    inset 0 0 0 0.15em var(--aa-orange),
    inset 0 0 0 0.3em #fff;
}
.c-banner__radio:focus-visible + .c-button {
  -webkit-box-shadow:
    inset 0 0 0 0.15em rgb(215,65,2),
    inset 0 0 0 0.3em #fff;
          box-shadow:
    inset 0 0 0 0.15em rgb(215,65,2),
    inset 0 0 0 0.3em #fff;
  -webkit-box-shadow:
    inset 0 0 0 0.15em var(--aa-orange),
    inset 0 0 0 0.3em #fff;
          box-shadow:
    inset 0 0 0 0.15em var(--aa-orange),
    inset 0 0 0 0.3em #fff;
}
.c-banner__radio:checked + .c-button {
  background: #ffffff;
  background: var(--white);
  color: rgb(215,65,2);
  color: var(--accent);
}
/* Checkbox styles and contexts */
.c-banner__checkbox.focus-visible + .c-banner__label {
  -webkit-box-shadow:
    0 0 0 0.15em #fff,
    0 0 0 0.3em rgb(215,65,2);
          box-shadow:
    0 0 0 0.15em #fff,
    0 0 0 0.3em rgb(215,65,2);
  -webkit-box-shadow:
    0 0 0 0.15em #fff,
    0 0 0 0.3em var(--aa-orange);
          box-shadow:
    0 0 0 0.15em #fff,
    0 0 0 0.3em var(--aa-orange);
}
.c-banner__checkbox.focus-visible + .c-banner__label {
  -webkit-box-shadow:
    0 0 0 0.15em #fff,
    0 0 0 0.3em rgb(215,65,2);
          box-shadow:
    0 0 0 0.15em #fff,
    0 0 0 0.3em rgb(215,65,2);
  -webkit-box-shadow:
    0 0 0 0.15em #fff,
    0 0 0 0.3em var(--aa-orange);
          box-shadow:
    0 0 0 0.15em #fff,
    0 0 0 0.3em var(--aa-orange);
}
.c-banner__checkbox:focus-visible + .c-banner__label {
  -webkit-box-shadow:
    0 0 0 0.15em #fff,
    0 0 0 0.3em rgb(215,65,2);
          box-shadow:
    0 0 0 0.15em #fff,
    0 0 0 0.3em rgb(215,65,2);
  -webkit-box-shadow:
    0 0 0 0.15em #fff,
    0 0 0 0.3em var(--aa-orange);
          box-shadow:
    0 0 0 0.15em #fff,
    0 0 0 0.3em var(--aa-orange);
}
/* Submit button styles and contexts */
.c-banner__submit {
  margin-top: 2rem;
  clear: both;
}
.c-banner__submit > a.focus-visible {
  -webkit-box-shadow:
    inset 0 0 0 0.15em rgb(215,65,2),
    inset 0 0 0 0.3em #fff;
          box-shadow:
    inset 0 0 0 0.15em rgb(215,65,2),
    inset 0 0 0 0.3em #fff;
  -webkit-box-shadow:
    inset 0 0 0 0.15em var(--aa-orange),
    inset 0 0 0 0.3em #fff;
          box-shadow:
    inset 0 0 0 0.15em var(--aa-orange),
    inset 0 0 0 0.3em #fff;
}
.c-banner__submit > a.focus-visible {
  -webkit-box-shadow:
    inset 0 0 0 0.15em rgb(215,65,2),
    inset 0 0 0 0.3em #fff;
          box-shadow:
    inset 0 0 0 0.15em rgb(215,65,2),
    inset 0 0 0 0.3em #fff;
  -webkit-box-shadow:
    inset 0 0 0 0.15em var(--aa-orange),
    inset 0 0 0 0.3em #fff;
          box-shadow:
    inset 0 0 0 0.15em var(--aa-orange),
    inset 0 0 0 0.3em #fff;
}
.c-banner__submit > a:focus-visible {
  -webkit-box-shadow:
    inset 0 0 0 0.15em rgb(215,65,2),
    inset 0 0 0 0.3em #fff;
          box-shadow:
    inset 0 0 0 0.15em rgb(215,65,2),
    inset 0 0 0 0.3em #fff;
  -webkit-box-shadow:
    inset 0 0 0 0.15em var(--aa-orange),
    inset 0 0 0 0.3em #fff;
          box-shadow:
    inset 0 0 0 0.15em var(--aa-orange),
    inset 0 0 0 0.3em #fff;
}
.c-banner__fineprint {
  margin-top: 1rem;
  font-size: .75rem;
}
/* The following containing elements are used instead of a form to contain the grade choices when the options may simply be links instead of input fields. */
.c-banner__course-choices .c-button {
  padding-left: 0;
  padding-right: 0;
  margin: .5rem auto;
  display: block;
  width: 9rem;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}
.c-banner__course-choices .c-button:first-child {
  margin-top: 1.25rem;
}
@media (min-width: 375px) {

  .c-banner__course-choices {
    --max-width: 28.5rem;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    max-width: var(--max-width); /* constrain the width of the option container, preventing awkward wraps */
  }
    .c-banner__course-choices.c-banner__course-choices_ca-k8 {
      --max-width: 30rem;
    }

  .c-banner__course-choices .c-button,
  .c-banner__course-choices .c-button:first-child {
    margin-top: .25rem;
    -webkit-box-flex: 0;
        -ms-flex: 0 0 8rem;
            flex: 0 0 8rem;
    margin-left: 0;
    margin-right: .75rem;
  }

}
.c-banner__cta {
  font-family: agenda-one, sans-serif;
  font-family: var(--font-family-display);
  font-weight: 600;
  color: #ffffff;
  color: var(--white);
  margin-top: 2rem;
  font-size: 1.2rem;
  font-size: var(--gamma);
}
.c-banner__cta_alt {
  font-family: 'Roboto', 'Trebuchet MS', Trebuchet, Tahoma, sans-serif;
  font-family: var(--font-family-text);
  font-size: .9rem;
  font-size: var(--epsilon);
  font-style: italic;
}
@media (min-width: 375px) {
  .c-banner__cta br {
    display: none;
  }
}
.c-banner__img {
  display:  block;
  max-width: 80%;
  margin-left:  auto;
  margin-right: auto;
}
.c-banner__video-wrapper {
  padding: 56.25% 0 0 0;
  width: 100%;
  position: relative;
  -webkit-box-shadow:
    .125rem .125rem .125rem 0 rgba(0, 0, 0, .125),
    1px 1px 0 0 rgba(0, 0, 0, .25);
          box-shadow:
    .125rem .125rem .125rem 0 rgba(0, 0, 0, .125),
    1px 1px 0 0 rgba(0, 0, 0, .25);
  z-index: 10;
}
.c-banner__video-source {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
/*----------------------------------------------------------------------------
 *
 * ANNOUNCEMENT
 *
 *---------------------------------------------------------------------------*/
.c-announcement {
  background: #008470;
  color: #ffffff;
  color: var(--white);
  padding: 0 2rem;
  text-align: center;
}
@media (min-width: 768px) {
    .c-announcement {
      font-size: .833rem;
      font-size: var(--zeta);
    }
  }
@media (min-width: 1024px) {
    .c-announcement {
      text-align: left;
      background:
        -webkit-gradient(linear, left top, right top, from(#ffffff), color-stop(49.975%, #ffffff), color-stop(50%, #008470), to(#008470));
      background:
        linear-gradient(90deg, #ffffff 0%, #ffffff 49.975%, #008470 50%, #008470 100%);
      padding: 0;
    }
  }
.c-announcement [class^="hed"] {
  color: #ffffff;
  color: var(--white);
  margin-top: 0;
}
.c-announcement a {
  color: #ebebeb;
  color: var(--light-gray);
  font-weight: 600;
}
.c-announcement a:hover,
.c-announcement a:active,
.c-announcement a:visited {
  color: #ffffff;
  color: var(--white);
  font-weight: 600;
}
.c-announcement__inner {
  margin: 0 auto;
  max-width: 48rem;
  max-width: var(--content-width);
  background: #008470;
  padding: 1.5rem 0;
}
.c-announcement__inner p {
  margin: 0;
}
@media (min-width: 1024px) {
    .c-announcement__inner p {
      padding-left: 2rem;
    }
  }
/*----------------------------------------------------------------------------
 *
 * CTA Sidebar
 * Appropriate for multi-column layouts in the landing page main content area.
 *
 *---------------------------------------------------------------------------*/
.c-cta-sidebar {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  border: .125rem solid #ebebeb;
  padding: 1rem;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  margin-top: 2rem;
}
.c-cta-sidebar > *:first-child {
    margin-top: 0;
  }
.c-cta-sidebar > *:last-child {
    margin-top: auto;
    margin-bottom: 0;
  }
@media (min-width: 537px) {
    .c-cta-sidebar {
      margin-top: -1rem;
      margin-bottom: -1.125rem;
    }
  }
/*----------------------------------------------------------------------------
 *
 * DIRECTORY
 *
 *---------------------------------------------------------------------------*/
.c-directory {
  max-width: 48rem;
  max-width: var(--content-width);
  margin: auto;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}
.c-directory__sequence {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
  margin: 1rem auto;
  -webkit-box-align: baseline;
      -ms-flex-align: baseline;
          align-items: baseline;
}
@media (min-width: 768px) {
    .c-directory__sequence {
      -ms-flex-wrap: nowrap;
          flex-wrap: nowrap;
      margin: 2rem auto;
    }
  }
.c-directory__hed {
  font-size: 1.2rem;
  font-size: var(--gamma);
  font-family: agenda-one, sans-serif;
  font-family: var(--font-family-display);
  font-weight: 600;
  margin: 0 2rem 1.5rem 0;
  line-height: 1.1;
  -webkit-box-flex: 1;
      -ms-flex: 1 0 100%;
          flex: 1 0 100%;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}
@media (min-width: 768px) {
    .c-directory__hed {
      -webkit-box-flex: 0;
          -ms-flex: 0 1 auto;
              flex: 0 1 auto;
      margin: 0;
      margin-right: 3rem;
      font-size: 1rem;
      font-size: var(--base);
      min-width: auto;
    }
  }
.c-directory__listing {
  list-style: none;
  margin: 0 2rem 1rem 0;
  -webkit-box-flex: 0;
      -ms-flex: 0 1 auto;
          flex: 0 1 auto;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}
@media (min-width: 768px) {
    .c-directory__listing {
      -webkit-box-flex: 0;
          -ms-flex: 0 1 auto;
              flex: 0 1 auto;
      margin-right: 2rem;
    }
  }
.c-directory__subhed {
  font-size: 1rem;
  font-size: var(--base);
  font-family: agenda-one, sans-serif;
  font-family: var(--font-family-display);
  font-weight: 700;
  margin: 0 0 1rem;
  line-height: 1.1;
}
.c-directory__sublisting {
  list-style: none;
  margin: 0;
  padding: 0;
}
/*----------------------------------------------------------------------------
 *
 * FIGURE
 *
 *---------------------------------------------------------------------------*/
.c-figure {
  margin: 0;
  padding: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: reverse;
      -ms-flex-direction: column-reverse;
          flex-direction: column-reverse;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
@media (min-width: 768px) {
    .c-figure {
      -webkit-box-orient: horizontal;
      -webkit-box-direction: normal;
          -ms-flex-direction: row;
              flex-direction: row;
    }
  }
.c-figure__video {
  border: 1px solid rgb(200,200,200);
  border: 1px solid var(--gray);
  overflow: hidden;
  width: 100%;
}
@media (min-width: 768px) {
    .c-figure__video {
      -webkit-box-flex: 1;
          -ms-flex: 1 0 63%;
              flex: 1 0 63%;
      width: 63%;
    }
  }
.c-figure__video-wrapper {
  padding: 56.25% 0 0 0;
  width: 100%;
  position: relative;
}
.c-figure__video-source {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.c-figure__caption {
  font-size: 1.2rem;
  font-size: var(--gamma);
  font-family: agenda-one, sans-serif;
  font-family: var(--font-family-display);
  font-weight: 600;
  line-height: 1.1;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  margin: 1rem 0;
  position: relative;
  padding: 0 0 3rem 0;
  text-align: center;
  max-width: 20em;
}
@media (min-width: 768px) {
    .c-figure__caption {
        padding: 0 0 0 3rem;
        -webkit-box-flex: 1;
            -ms-flex: 1 1 37%;
                flex: 1 1 37%;
        text-align: left;
    }
  }
.c-figure__caption::before {
  content: "";
  width: 2rem;
  height: 2rem;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  position: absolute;
  left: 50%;
  bottom: 0;
  margin-left: -1rem;
  border-top: 1rem solid rgb(200,200,200);
  border-top: 1rem solid var(--gray);
  border-left: 1rem solid transparent;
  border-right: 1rem solid transparent;
  border-bottom: 1rem solid transparent;
}
@media (min-width: 768px) {
    .c-figure__caption::before {
      left: 0;
      top: 50%;
      margin-left: 0;
      margin-top: -1rem;
      border-top: 1rem solid transparent;
      border-left: 1rem solid transparent;
      border-right: 1rem solid rgb(200,200,200);
      border-right: 1rem solid var(--gray);
      border-bottom: 1rem solid transparent;
    }
  }
.c-figure__listing {
  list-style: none;
  margin: 0 0 1rem 0;
  padding-right: 1rem;
  -webkit-box-flex: 0;
      -ms-flex: 0 1 33%;
          flex: 0 1 33%;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}
@media (min-width: 768px) {
    .c-figure__listing {
      -webkit-box-flex: 1;
          -ms-flex: 1 1 25%;
              flex: 1 1 25%;
    }
  }
.c-figure__subhed {
  font-size: 1rem;
  font-size: var(--base);
  font-family: agenda-one, sans-serif;
  font-family: var(--font-family-display);
  font-weight: 700;
  margin: 0 0 1rem;
  line-height: 1.1;
}
.c-figure__sublisting {
  list-style: none;
  margin: 0;
  padding: 0;
}
/*--------------------------------------
 *
 * COMPONENT: CURRICULUM NAV
 *
 *-------------------------------------*/
.c-nav-curriculum {
  font-size: 1rem;
  font-family: 'Roboto', 'Trebuchet MS', Trebuchet, Tahoma, sans-serif;
  font-family: var(--font-family-text);
  line-height: 1.45;
  font-weight: 500;
}
.c-nav-curriculum__items {
  list-style: none;
  -webkit-hyphens: none;
      -ms-hyphens: none;
          hyphens: none;
  margin: 0;
  padding: 0 0 0 1rem;
  background: #ebebeb;
  background: var(--light-gray);
}
@media (min-width: 320px) {
    .c-nav-curriculum__items {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
    }
  }
.c-nav-curriculum__branding {
  position: relative;
  padding: .65625em 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  margin: 0 0 0 0;
  -ms-flex-item-align: center;
      align-self: center;
}
@media (min-width: 768px) {
    .c-nav-curriculum__branding {
      padding: 0;
    }
  }
/* Default styling for all logo elements, see variants for guidance when customizing background images, widths, etc. */
.c-nav-curriculum__logo {
  font-size: 1rem;
  height: 2.25rem;
  padding: 0;
  text-indent: 102%;
  white-space: nowrap;
  overflow: hidden;
  background-position: left center;
  background-repeat: no-repeat;
}
@media (min-width: 768px) {
    .c-nav-curriculum__logo {
      border-right: solid .0625rem rgb(69,53,54);
      border-right: solid .0625rem var(--text);
      margin: .8125rem 0; /* At this breakpoint, increase margin and decrease height to ensure right border is proportional to that in the lockup */
      height: 2.125rem; /* At this breakpoint, increase margin and decrease height to ensure right border is proportional to that in the lockup */
    }
  }
/* MS Math */
/* Replace link with curriculum logo background-image while keeping the link and its text accessible */
.c-nav-curriculum__logo_our6-8math,
.c-nav-curriculum__logo_our6-8math-nc,
.c-nav-curriculum__logo_our6-8math-tn,
.c-nav-curriculum__logo_our6-8math-wv,
.c-nav-curriculum__logo_our6-8math-v1,
.c-nav-curriculum__logo_our6-8math-v3,
.c-nav-curriculum__logo_ca-k8-math {
  width: 3rem;
  background-image: url(/assets/nav-curriculum/logos/our-symbol-msmath-cfb81192b8fa35161d0fb8f4397bbfc57f0d5d7e2effd351dee5af7d8cca4bc4.svg);
  background-size: 14.3125rem;
    /* Since this is an OUR branded product, this width is calculated to match the OUR MS Math lockup to the OUR logo in the global nav. For projects with non-OUR branded lockups, this width match the aspect ratio of the lockup at 2.25rem tall. See Bookworms, EL K-5. */
  border-right: solid .0625rem black; /* exception for MS Math, show right border in narrow viewports */
}
/* HS Math */
/* Replace link with curriculum logo background-image while keeping the link and its text accessible */
.c-nav-curriculum__logo_our-hs-math,
.c-nav-curriculum__logo_our-hs-math-nc,
.c-nav-curriculum__logo_our-hs-math-tn,
.c-nav-curriculum__logo_our-hs-math-pilot-pl {
  width: 3rem;
  background-image: url(/assets/nav-curriculum/logos/our-symbol-hsmath-cfb81192b8fa35161d0fb8f4397bbfc57f0d5d7e2effd351dee5af7d8cca4bc4.svg);
  background-size: 14.3125rem;
    /* Since this is an OUR branded product, this width is calculated to match the OUR HS Math lockup to the OUR logo in the global nav. For projects with non-OUR branded lockups, this width match the aspect ratio of the lockup at 2.25rem tall. See Bookworms, EL K-5. */
  border-right: solid .0625rem black; /* exception for HS Math, show right border in narrow viewports */
}
/* K5 Math */
/* Replace link with curriculum logo background-image while keeping the link and its text accessible */
.c-nav-curriculum__logo_our-k5-math,
.c-nav-curriculum__logo_our-k5-math-tn,
.c-nav-curriculum__logo_k8-math-pilot-pl {
  width: 3rem;
  background-image: url(/assets/nav-curriculum/logos/our-symbol-k5math-cfb81192b8fa35161d0fb8f4397bbfc57f0d5d7e2effd351dee5af7d8cca4bc4.svg);
  background-size: 14.3125rem;
    /* Since this is an OUR branded product, this width is calculated to match the OUR K5 Math lockup to the OUR logo in the global nav. For projects with non-OUR branded lockups, this width match the aspect ratio of the lockup at 2.25rem tall. See Bookworms, EL K-5. */
  border-right: solid .0625rem black; /* exception for K5 Math, show right border in narrow viewports */
}
/* Odell */
/* Should be the same approach as we used for HS Math. */
.c-nav-curriculum__logo_odell-hs-literacy {
  width: 3rem;
  background-image: url(/assets/nav-curriculum/logos/our-symbol-odell-4e18e4bff0888b10e0a532ad9c6611d9c43330859e9660e0654321e293d8b27f.svg);
  background-size: 14.3125rem;
  border-right: solid .0625rem black; /* show right border in narrow viewports */
}
/* Bookworms */
/* Replace link with curriculum logo background-image while keeping the link and its text accessible */
.c-nav-curriculum__logo_bookworms,
.c-nav-curriculum__logo_bookworms-k5,
.c-nav-curriculum__logo_bookworms-pl-videos,
.c-nav-curriculum__logo_bookworms-pilot-pl {
  background-image: url(/assets/nav-curriculum/logos/bookworms-logotype-only-f9e027f3d916a3981536925cf71ac26f9dc0d3949b31899aa5dac0dfab0dc872.svg);
  background-size: 19.4375rem; /* Match Bookworms lockup aspect ratio 311 x 36 */
  width: 12.75rem; /* Match aspect ratio of Bookworms logotype to "pipe" in lockup (204 x 36), thereby hiding the pipe and the description text to the right of the pipe */
}
@media (min-width: 768px) {
    .c-nav-curriculum__logo_bookworms, .c-nav-curriculum__logo_bookworms-k5, .c-nav-curriculum__logo_bookworms-pl-videos, .c-nav-curriculum__logo_bookworms-pilot-pl {
      background-image: url(/assets/nav-curriculum/logos/bookworms-lockup-8574353a244e9406bb4115af225f09e298cee0b4e27a2e1a576c6e38011aadc0.svg);
    }
  }
/* EL K-5 */
/* Replace link with curriculum logo background-image while keeping the link and its text accessible */
.c-nav-curriculum__logo_el,
.c-nav-curriculum__logo_el-pilot-pl,
.c-nav-curriculum__logo_el-k5-2017,
.c-nav-curriculum__logo_el-ms-2019,
.c-nav-curriculum__logo_el-skills-block-2024,
.c-nav-curriculum__logo_el-k5-2025 {
  background-image: url(/assets/nav-curriculum/logos/el-k8-logotype-only-3941722567e369436e1b3aac598ff4368e0ab804cfeed65ab492759de356d404.svg);
  background-size: 16.1875rem; /* Match EL K-5 lockup aspect ratio 259 x 36 */
  width: 10.5625rem; /* Match aspect ratio of EL K-5 logotype to "pipe" in lockup (169 x 36), thereby hiding the pipe and the description text to the right of the pipe */
}
@media (min-width: 768px) {
    .c-nav-curriculum__logo_el, .c-nav-curriculum__logo_el-pilot-pl, .c-nav-curriculum__logo_el-k5-2017, .c-nav-curriculum__logo_el-ms-2019, .c-nav-curriculum__logo_el-skills-block-2024, .c-nav-curriculum__logo_el-k5-2025 {
      background-image: url(/assets/nav-curriculum/logos/el-k8-lockup-e16a5e17d0af34df78819d3b7ef797945a7e6c0562215667e29e178d9a0c2f2c.svg);
    }
  }
/* Default section text styling */
.c-nav-curriculum__section-text {
  font-size: .833rem;
  font-size: var(--zeta);
  color: rgb(69,53,54);
  color: var(--our-primary-dark-gray);
  text-decoration: none;
  display: none;
  -ms-flex-item-align: center;
      align-self: center;
}
@media (min-width: 768px) {
    .c-nav-curriculum__section-text {
      display: block;
      padding: 1.375rem 1.5rem 1rem .925rem;
    }
  }
/* Exception for Bookworms DI */
.c-nav-curriculum__section-text_bookworms-di {
  display: block;
  padding: calc(1.375rem - 0.65625em) 1.5rem calc(1rem - 0.65625em) .925rem;
  border-left: solid .0625rem rgb(69,53,54);
  border-left: solid .0625rem var(--text);
}
@media (min-width: 768px) {
    .c-nav-curriculum__section-text_bookworms-di {
      border-left: none;
      padding: 1.375rem 1.5rem 1rem .925rem;
    }
  }
.c-nav-curriculum__section-text_bookworms-di::before {
  content: attr(data-title-short);
}
@media (min-width: 411px) {
    .c-nav-curriculum__section-text_bookworms-di::before {
      content: attr(data-title-medium);
    }
  }
@media (min-width: 768px) {
    .c-nav-curriculum__section-text_bookworms-di::before {
      content: "";
    }
  }
.c-nav-curriculum__section-text-swap {
  display: none;
}
@media (min-width: 768px) {
    .c-nav-curriculum__section-text-swap {
      display: inline;
    }
  }
/* Exception for HS Math, K5 Math, MS Math, & Odell HS Literacy */
.c-nav-curriculum__section-text_our-hs-math,
.c-nav-curriculum__section-text_our-hs-math-tn,
.c-nav-curriculum__section-text_our-hs-math-nc,
.c-nav-curriculum__section-text_our-k5-math,
.c-nav-curriculum__section-text_our-k5-math-tn,
.c-nav-curriculum__section-text_k8-math-pilot-pl,
.c-nav-curriculum__section-text_our6-8math,
.c-nav-curriculum__section-text_our6-8math-nc,
.c-nav-curriculum__section-text_our6-8math-tn,
.c-nav-curriculum__section-text_our6-8math-wv,
.c-nav-curriculum__section-text_our6-8math-v1,
.c-nav-curriculum__section-text_our6-8math-v3,
.c-nav-curriculum__section-text_odell-hs-literacy {
  display: block;
  padding: .5rem 1rem;
}
@media (min-width: 768px) {
    .c-nav-curriculum__section-text_our-hs-math, .c-nav-curriculum__section-text_our-hs-math-tn, .c-nav-curriculum__section-text_our-hs-math-nc, .c-nav-curriculum__section-text_our-k5-math, .c-nav-curriculum__section-text_our-k5-math-tn, .c-nav-curriculum__section-text_k8-math-pilot-pl, .c-nav-curriculum__section-text_our6-8math, .c-nav-curriculum__section-text_our6-8math-nc, .c-nav-curriculum__section-text_our6-8math-tn, .c-nav-curriculum__section-text_our6-8math-wv, .c-nav-curriculum__section-text_our6-8math-v1, .c-nav-curriculum__section-text_our6-8math-v3, .c-nav-curriculum__section-text_odell-hs-literacy {
      padding: 1rem 1.5rem 1rem .925rem;
    }
  }
.c-nav-curriculum__section-text-suffix {
  display: none;
}
@media (min-width: 411px) {
    .c-nav-curriculum__section-text-suffix {
      display: inline-block;
    }
  }
.c-nav-curriculum__item {
  font-size: .833rem;
  font-size: var(--zeta);
  margin: 0 0 0 -1rem;
  padding: 0;
  list-style: none;
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -ms-flex-item-align: stretch;
      align-self: stretch;
  outline: none;
  border-top: 1px solid rgb(200,200,200);
  border-top: 1px solid var(--gray);
}
@media (min-width: 320px) {
    .c-nav-curriculum__item {
      border-top: none;
      border-left: 1px solid rgb(200,200,200);
      border-left: 1px solid var(--gray);
      margin: 0;
    }
  }
.c-nav-curriculum__item-title {
  display: block;
  font-weight: 500;
  position: relative;
  padding: .5rem 1rem;
  -ms-flex-item-align: center;
      align-self: center;
  text-decoration: none;
  color: rgb(69,53,54);
  color: var(--our-primary-dark-gray);
  outline: none;
}
@media (min-width: 320px) {
    .c-nav-curriculum__item-title {
      padding: .5rem 1rem;
    }
  }
@media (min-width: 768px) {
    .c-nav-curriculum__item-title {
      padding: 1rem 1.25rem;
    }
  }
.c-nav-curriculum__item-title.is-current {
  color: rgb(241,89,42);
  color: var(--our-globalnav-orange);
  font-weight: 500;
}
.c-nav-curriculum__item-title.is-current:hover {
    color: rgb(241,89,42);
    color: var(--our-globalnav-orange);
  }
/* EN/ES Toggle */
.c-nav-curriculum__item_locale {
  white-space: nowrap;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  padding-left: 2.5rem;
  background: url(/assets/nav-curriculum/globe-solid-44b3d564e79842267687d9afffa46f833f1c5a77ce0a751dce010f3dd169be4f.svg);
  background-size: 1.25rem;
  background-repeat: no-repeat;
  background-position: 1rem center;
  border: none;
  margin-left: auto;
}
.c-nav-curriculum__label_locale {
  border-right: .0625rem solid rgb(200,200,200);
  border-right: .0625rem solid var(--gray);
  padding: .275rem .375rem .275rem .4375rem;
  margin: .7rem 0;
  font-weight: 900;
  letter-spacing: .075em;
  line-height: 1;
  text-decoration: none;
}
.c-nav-curriculum__label_locale:first-child {
  padding: .275rem .375rem;
}
.c-nav-curriculum__label_locale:last-child {
  border-right: none;
  padding: .275rem 1rem .275rem .4375rem;
}
.c-nav-curriculum__label_locale.is-current {
  color: rgb(241,89,42);
  color: var(--our-globalnav-orange);
}
/* Inline Menu */
.c-nav-curriculum__item-menu {
  display: none;
}
@media (min-width: 768px) {
    .c-nav-curriculum__item-menu {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center;
      margin: 0;
      padding-right: 1rem;
    }
  }
.c-nav-curriculum__item-menu > li {
  list-style: none;
  margin: 0;
}
.c-nav-curriculum__item-menu > li > a {
  display: block;
  text-decoration: none;
  text-align: center;
  padding: .5rem;
}
.c-nav-curriculum__item-menu > li > a.is-current {
  color: rgb(241,89,42);
  color: var(--our-globalnav-orange);
  font-weight: 500;
}
.c-nav-curriculum__item-menu > li > a.is-current:hover {
    color: rgb(241,89,42);
    color: var(--our-globalnav-orange);
  }
/* ----------------------------------------------------------------------------
 *
 * Component: Publications Index Styles
 * Contains/constrains/centers the content for curriculum
 * selection page. Matches Registration App pages.
 *
 * ------------------------------------------------------------------------- */
.c-index {
  font-family: 'Source Sans Pro', sans-serif;
  font-family: var(--font-family-text-alt);
  margin: auto auto 5rem;
  padding: 2.625rem 1rem 0;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  width: 100%;
  max-width: 42.8rem;
}
.c-index * {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}
/*
  -- hed
  Presumably an H1. Appears over the textured
  motif that signifies the Registration App screens.
*/
.c-index__hed {
  font-family: agenda-one, sans-serif;
  font-family: var(--font-family-display);
  font-weight: 700;
  font-size: 2.4rem;
  font-size: var(--alpha);
  margin: 0 auto 2.625rem;
  line-height: 2.75rem;
  text-align: center;
  color: #ffffff;
  color: var(--white);
}
/*
  -- inner
  Inner container for publication options.
  Appears as a “floating” white box.
*/
.c-index__inner {
  margin: 2.5rem auto;
  background-color: #ffffff;
  background-color: var(--white);
  padding: 1rem 1.5rem 2.75rem;
  -webkit-box-shadow: .25rem .3rem .5rem 0 rgba(0, 0, 0, 0.15);
          box-shadow: .25rem .3rem .5rem 0 rgba(0, 0, 0, 0.15);
  position: relative;
}
/*
  -- Subhed
  Presumably an H2. Intentionally has the same appearance as
  a Registration Page Legend.
*/
.c-index__subhed {
  font-family: agenda-one, sans-serif;
  font-family: var(--font-family-display);
  font-weight: 700;
  font-size: 1.2rem;
  font-size: var(--gamma);
  color: rgb(69,53,54);
  color: var(--text);
  line-height: 1.2;
}
/*
  -- Info groups
  Laid out identically to the form groups
  found in the Registration App.
*/
.c-index__infogroup {
  margin: 1rem auto;
  width: 100%;
  max-width: 23.5rem;
  clear: left; /* I know! A clearing floats flashback! Clears the floated legend element when it’s present. */
}
.c-index__infogroup:last-child {
    margin-bottom: 0;
  }
.c-index__infogroup:first-child {
    margin-top: 1.25rem;
  }
/*
  -- Subject groups
  Styles for subject groupings of curriculum options.
*/
.c-index__subjectgroup {
  margin: 2rem auto 1rem;
  border: .125rem solid rgb(255,184,28);
  border: .125rem solid var(--our-primary-yellow);
  border-radius: .4rem;
  padding: .5rem 1rem;
  max-width: 30.5rem;
  position: relative;
}
.c-index__subjectlabel {
  position: absolute;
  left: 1.25rem;
  top: -.575em;
  margin: 0;
  padding: 0 .25rem;
  line-height: 1.1rem;
  background: #ffffff;
  background: var(--white);
  text-transform: uppercase;
  font-size: 1rem;
  font-size: var(--delta);
  letter-spacing: .03em;
}
/*
  -- note style
  One step smaller than default text size.
*/
.c-index__note {
  display: inline-block;
  color: rgb(69,53,54);
  color: var(--text);
  font-size: .9rem;
  font-size: var(--epsilon);
  font-weight: 400;
  line-height: 1.2;
}
.c-index__note a {
  color: rgb(215,65,2);
  color: var(--accent);
  text-decoration-color: rgb(241,89,42);
  text-decoration-color: var(--accent-large);
}
.c-index__note a:link,
  .c-index__note a:visited {
    color: rgb(215,65,2);
    color: var(--accent);
    text-decoration-color: rgb(241,89,42);
    text-decoration-color: var(--accent-large);
  }
.c-index__note a:hover,
  .c-index__note a:active,
  .c-index__note a:focus {
    color: rgb(241,89,42);
    color: var(--accent-large);
    text-decoration-color: rgb(241,89,42);
    text-decoration-color: var(--accent-large);
  }
/*
  -- Curriculum Choice
  Conjoined Text + "Go" CTA
*/
.c-index__curriculum-choice {
  border-color: rgb(255,184,28);
  border-color: var(--our-primary-yellow);
  background-color: #ebebeb;
  background-color: var(--light-gray);
  border-radius: .4rem;
  color: rgb(69,53,54);
  color: var(--text);
  display: block;
  margin-top: 1.25rem;
  margin-bottom: 1.25rem;
  width: 100%;
  text-decoration: none;
  font-weight: 600;
  line-height: 1.1;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  padding: 0 0 0 1rem;
}
@media (min-width: 525px) {
    .c-index__curriculum-choice {
      -webkit-box-align: baseline;
          -ms-flex-align: baseline;
              align-items: baseline;;
    }
  }
.c-index__curriculum-choice:hover {
  color: rgb(215,65,2);
  color: var(--accent);
}
.c-index__curriculum-choice::after {
  content: "";
  width: 0;
  height: 0;
  border-top: transparent solid .5rem;
  border-right: transparent solid .75rem;
  border-bottom: transparent solid .5rem;
  border-left: rgb(69,53,54) solid .75rem;
  border-left: var(--text) solid .75rem;
  margin-left: auto;
  -ms-flex-item-align: center;
      align-self: center;
}
.c-index__curriculum-choice:hover::after {
  border-left-color: rgb(241,89,42);
  border-left-color: var(--accent-large);
}
.c-index__curriculum-title {
  padding: .75rem 0;
  margin-right: .75em;
  -webkit-box-flex: 0;
      -ms-flex: 0 1 auto;
          flex: 0 1 auto;
  line-height: 1.3rem;
}
@media (min-width: 525px) {
    .c-index__curriculum-title {
      white-space: nowrap;
      -webkit-box-flex: 0;
          -ms-flex: 0 0 0px;
              flex: 0 0 0;
    }
  }
.c-index__curriculum-edition {
  font-size: .833rem;
  font-size: var(--zeta);
  text-transform: uppercase;
  letter-spacing: .02em;
  font-weight: 700;
  padding: 0 1rem 0 .5rem;
  line-height: 1.3rem;
  color: rgb(215,65,2);
  color: var(--accent);
  white-space: nowrap;
  display: inline-block;
  vertical-align: baseline;
}
.c-index__edition-separator {
  color: rgb(255,184,28);
  color: var(--our-primary-yellow);
  border-style: dashed;
}
.c-index__curriculum-new {
  padding: 0 0 0 0.25rem;
  color: #008470;
  color: var(--accent-alt);
}
/*
  -- Subject group helper class
    For aligning elements outside `.c-index-subjectgroup' with
    that subject group.
*/
.c-index .for-subjectgroup {
  max-width: 30.5rem;
  margin-left: auto;
  margin-right: auto;
}
/* Shared Styles */
/*--------------------------------------
 *
 * COMPONENT: OUR GLOBAL FOOTER
 * Included in this document: Variables, Base, Styles
 *
 * The instance of the global footer embedded within
 * the reg app is considered canonical.
 *
 *-------------------------------------*/
/*--------------------------------------
*
* COMPONENT: OUR GLOBAL FOOTER -- ROBOTO FONTS
*
*-------------------------------------*/
/* If Google Fonts are already imported into the app, append "Roboto:500" if necessary. */
/* If Google Fonts are not already imported, uncomment the following import statement or (better) add the equivalent to the <head> of the app. */
/* @import url('https://fonts.googleapis.com/css?family=Roboto:500&subset=latin'); */
/*--------------------------------------
 *
 * COMPONENT: OUR GLOBAL FOOTER -- VARIABLES
 *
 *-------------------------------------*/
/* Color palette */
:root {

/* Colors with "-our-" in their name are sourced from the OUR brand guidelines */

--footer-our-primary-dark-gray:    rgb(69,53,54);    /* #453536 */
--footer-white:                    #ffffff;

/*
  Typographic sizes

  Font sizes based on minor third (1.2) http://www.modularscale.com/?1&em&1.2

*/

--footer-font-base-min: 16px;
--footer-font-base-max: 20px;
--footer-fluid-em:      calc(14.72px + 0.4vw);
--footer-zeta:          .833em;
--footer-eta:           .75em;

}
/* Custom Media Declarations for Breakpoints */
/*--------------------------------------
 *
 * COMPONENT: OUR GLOBAL FOOTER -- BASE
 *
 *-------------------------------------*/
.c-footer {
  font-size: 16px;
  font-size: var(--footer-font-base-min);
  font-family: 'Roboto', 'Trebuchet MS', Trebuchet, Tahoma, sans-serif;
  font-weight: 500;
  text-rendering: optimizelegibility; /* Can cause problems in some versions of Android */
   -webkit-text-size-adjust: none;
      -moz-text-size-adjust: none;
       -ms-text-size-adjust: none;
           text-size-adjust: none;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-display: swap; /* https://www.zachleat.com/web/comprehensive-webfonts/#font-display */
  line-height: 1.45;
  margin-top: auto;

  /* Fluid from 16px to 20px between breakpoints */
}
@media (min-width: 537px) {
    .c-footer {
     font-size: 16px;
     font-size: var(--footer-font-base-min); /* 16px at 320px */ /* px fallback for browsers that don’t get calc */
     font-size: calc(14.72px + 0.4vw);
    }
  }
@media (min-width: 1320px) {
    .c-footer {
     font-size: 20px;
     font-size: var(--footer-font-base-max); /* 20px at 1320px */
    }
  }
.c-footer * {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}
.c-footer *::before, .c-footer *::after {
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
  }
/*--------------------------------------
*
* COMPONENT: OUR GLOBAL FOOTER -- OVERRIDES
* Override overarching properties in curriculum gateway theme
*
*-------------------------------------*/
.c-footer li {
  padding-left: inherit;
  line-height: inherit;
}
.c-footer li::before,
.c-footer li::before {
  content: normal;
}
/*--------------------------------------
*
* COMPONENT: OUR GLOBAL FOOTER -- STYLES
*
*-------------------------------------*/
.c-footer {
  padding: .75em 1em 4em; /* Fat padding-bottom accommodates feedback widget */
  color: rgba(255, 255, 255,.65);
  background: rgb(69,53,54);
  background: var(--footer-our-primary-dark-gray);
  text-align: center;
}
@media (min-width: 411px) {
    .c-footer {
      text-align: left;
    }
  }
.c-footer a {
   color: rgba(255, 255, 255,.8);
   text-decoration: underline;
}
.c-footer a:hover {
   color: #ffffff;
   color: var(--footer-white);
   text-decoration: underline;
}
.c-footer__navs {
  font-size: .833em;
  font-size: var(--footer-zeta);
}
@media (min-width: 411px) {
    .c-footer__navs {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-pack: justify;
          -ms-flex-pack: justify;
              justify-content: space-between;
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center;
    }
  }
.c-footer__nav-corporate {
  list-style: none;
  margin: calc(7.36px + 0.2vw) 0 0;
  margin: calc(7.36px + 0.2vw) 0 0;
  margin: calc(var(--footer-fluid-em)*0.5) 0 0;
  padding: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
@media (min-width: 411px) {
    .c-footer__nav-corporate {
      margin-top: 0;
      -webkit-box-pack: start;
          -ms-flex-pack: start;
              justify-content: flex-start;
      margin-right: auto;
    }
  }
.c-footer__nav-social {
  list-style: none;
  margin: calc(14.72px + 0.4vw) 0 0;
  margin: var(--footer-fluid-em) 0 0;
  padding: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
@media (min-width: 411px) {
    .c-footer__nav-social {
      margin-top: 0;
      -webkit-box-pack: end;
          -ms-flex-pack: end;
              justify-content: flex-end;
      margin-left: auto;
    }
  }
.c-footer__our-logo {
  height: calc(29.44px + 0.8vw);
  height: calc(29.44px + 0.8vw);
  height: calc(var(--footer-fluid-em)*2);
  width: auto;
  display: block;
  margin: calc(3.68px + 0.1vw) auto 0;
  margin: calc(3.68px + 0.1vw) auto 0;
  margin: calc(var(--footer-fluid-em)*0.25) auto 0;
}
@media (min-width: 411px) {
    .c-footer__our-logo {
      position: relative;
      top: calc(1.84px + 0.05vw);
      top: calc(1.84px + 0.05vw);
      top: calc(var(--footer-fluid-em)*0.125);
      margin-right: calc(14.72px + 0.4vw);
      margin-right: var(--footer-fluid-em);
      margin-top: 0;
    }
  }
@media (min-width: 1320px) {
    .c-footer__our-logo {
      top: 2.5px;
      top: calc(var(--footer-font-base-max)*0.125);
      margin-right: 20px;
      margin-right: var(--footer-font-base-max);
      height: 40px;
      height: calc(var(--footer-font-base-max)*2);
    }
  }
.c-footer__nav-corporate li,
.c-footer__nav-social li {
  margin-bottom: 0;
}
.c-footer__nav-corporate li + li {
  margin-left: 20px;
  margin-left: var(--footer-font-base-max);
}
@media (min-width: 1320px) {
    .c-footer__nav-corporate li + li {
      margin-left: 20px;
      margin-left: var(--footer-font-base-max);
    }
  }
.c-footer__nav-social li + li {
  margin-left: 20px;
  margin-left: var(--footer-font-base-max);
}
@media (min-width: 1320px) {
    .c-footer__nav-social li + li {
      margin-left: 20px;
      margin-left: var(--footer-font-base-max);
    }
  }
.c-footer__social-icon {
  height: 1em;
  width: auto;
  display: block;
}
.c-footer__copyrights {
  font-size: .75em;
  font-size: var(--footer-eta);
  margin-top: calc(14.72px + 0.4vw);
  margin-top: var(--footer-fluid-em);
  padding-top: calc(14.72px + 0.4vw);
  padding-top: var(--footer-fluid-em);
  border-top: solid 1px rgba(255, 255, 255,.35);
}
@media (min-width: 411px) {
    .c-footer__copyrights {
      margin-top: calc(11.04px + 0.3vw);
      margin-top: calc(11.04px + 0.3vw);
      margin-top: calc(var(--footer-fluid-em)*0.75);
    }
  }
@media (min-width: 1320px) {
    .c-footer__copyrights {
      padding-top: 20px;
      padding-top: var(--footer-font-base-max);
      margin-top: 15px;
      margin-top: calc(var(--footer-font-base-max)*0.75);
    }
  }
.c-footer__copyrights:only-child,
.c-footer__copyrights:first-child {
  margin-top: 0;
  border: none;
  padding-top: calc(3.68px + 0.1vw);
  padding-top: calc(3.68px + 0.1vw);
  padding-top: calc(var(--footer-fluid-em)*0.25);
}
@media (min-width: 1320px) {
    .c-footer__copyrights:only-child, .c-footer__copyrights:first-child {
      padding-top: 5px;
      padding-top: calc(var(--footer-font-base-max)*0.25);
    }
  }
.c-footer__build {
  display: block;
}
/* ----------------------------------------------------------------------------
 *
 * COMPONENT: OUR MODAL MESSAGE
 * Intended for only very short messages. Message box grows with content,
 * so this component is not appropriate for content that might exceed
 * the height of the viewport on any device.
 *
 * Bonus! Body properties to prevent scrolling when the modal is open.
 *
 *--------------------------------------------------------------------------- */
/*--------------------------------------
*
* COMPONENT: OUR MODAL MESSAGE -- ROBOTO FONTS
*
*-------------------------------------*/
/* Roboto at 400 weight is necessary for the typography in this component. */
/* Roboto at 500 weight is necessary for the button in this component. */
/* If Google Fonts are already imported into the app, append "Roboto:400,500,700" if necessary. */
/* If Google Fonts are not already imported, uncomment the following import statement or (better) add
the equivalent to the <head> of the app. */
/* @import url('https://fonts.googleapis.com/css?family=Roboto:400,500&subset=latin'); */
/*--------------------------------------
 *
 * COMPONENT: OUR MODAL MESSAGE -- VARIABLES
 *
 *-------------------------------------*/
:root {

  /* Color palette */

  --modal-teal:       #008470;
  --modal-light-gray: #ebebeb; /* 8% black */
  --modal-white:      #ffffff;

  /*
    Typographic sizes

  */

  --modal-font-base-min: 16px;
  --modal-font-base-max: 20px;
  --modal-fluid-em:      calc(14.72px + 0.4vw);
  --modal-beta:          1.784em;
  --modal-gamma:         1.2em;
  --modal-delta:         1em;
  --modal-zeta:          .875em;
  --modal-eta:           .75em;

}
/* Viewport Width Variables */
:root {

  --modal-bp-min:          320px;
  --modal-bp-mega:         1024px;
  --modal-bp-max:          1320px;

}
/* Custom Media Declarations for Breakpoints */
/*--------------------------------------
*
* COMPONENT: OUR MODAL MESSAGE -- TYPOGRAPHY
*
*-------------------------------------*/
.c-modal {
  font-size: 16px;
  font-size: var(--modal-font-base-min);
  font-family: 'Roboto', 'Trebuchet MS', Trebuchet, Tahoma, sans-serif;
  font-weight: 500;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-display: swap; /* https://www.zachleat.com/web/comprehensive-webfonts/#font-display */
  line-height: 1.35;

  /* Fluid from 16px to 20px between breakpoints */

  /* Fluid type size from 16px to 20px between --modal-bp-min and --modal-bp-max breakpoints */


}
@media (min-width: 320px) {
    .c-modal {
      font-size: 16px;
      font-size: var(--modal-font-base-min); /* 16px at 320px */
      font-size: calc(14.72px + 0.4vw);
    }
  }
@media (min-width: 1320px) {
    .c-modal {
      font-size: 20px;
      font-size: var(--modal-font-base-max); /* 20px at 1320px */
    }
  }
/* Fluid line-height from 1.35 to 1.45 between --modal-bp-min and --modal-bp-max breakpoints */
@media (min-width: 320px) {
.c-modal {
    line-height: 1.35; /* 1.35 at 320px */
    line-height: calc(1.35em + 0.01vw - 0.032px);


}
  }
@media (min-width: 1320px) {
.c-modal {
    line-height: 1.45; /* 1.45 at 1320px */


}
  }
/*--------------------------------------
*
* COMPONENT: OUR MODAL MESSAGE -- STYLES
*
*-------------------------------------*/
body.l-has-modal {
  overflow-y: hidden;
}
.c-modal {
  display: none;
}
.c-modal * {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}
body.l-has-modal .c-modal {
  background: rgba(0, 0, 0, 0.85) !important;
}
body.l-has-modal .c-modal {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -ms-flex-pack: distribute;
      justify-content: space-around;
  z-index: 8675310;
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
}
.c-modal__content {
  margin-left: 5vw;
  margin-right: 5vw;
  padding: 2em;
  z-index: 8675310;
  background: #008470;
  background: var(--modal-teal);
  color: #ffffff;
  color: var(--modal-white);
  -webkit-box-shadow: 0 25px 100px rgba(0, 0, 0, 0.5);
          box-shadow: 0 25px 100px rgba(0, 0, 0, 0.5);
  border-radius: .25em;
  text-align: center;
  position: relative;
}
@media (min-width: 1024px) {
  .c-modal__content {
    margin-right: 15vw;
    margin-left: 15vw;
  }
}
.c-modal p {
  margin-bottom: 1em;
  font-weight: 400;
}
a.c-modal__close,
a.c-modal__close:link,
a.c-modal__close:visited
a.c-modal__close:active {
  position: absolute;
  text-decoration: none;
  top: calc(1.84px + 0.05vw);
  top: calc(1.84px + 0.05vw);
  top: calc(var(--modal-fluid-em)*0.125);
  right: calc(7.36px + 0.2vw);
  right: calc(7.36px + 0.2vw);
  right: calc(var(--modal-fluid-em)*0.5);
  font-size: 1.784em;
  font-size: var(--modal-beta);
  line-height: 1;
  -webkit-appearance: none;
  background: none;
  border: none;
  padding: 0;
  margin: 0;
  color: #ffffff;
  color: var(--modal-white);
  cursor: pointer;
  opacity: .8;
  -webkit-transition: none;
  transition: none;
}
a.c-modal__close:focus,
a.c-modal__close:hover {
  opacity: 1;
  color: #ffffff;
  color: var(--modal-white);
}
a.c-modal__cancel,
a.c-modal__cancel:link,
a.c-modal__cancel:visited
a.c-modal__cancel:active {
  font-size: .75em;
  font-size: var(--modal-eta);
  background-color: transparent;
  color: #ebebeb;
  color: var(--modal-light-gray);
  cursor: pointer;
  display: block;
  font-weight: 500;
  min-height: 2.375em;
  line-height: 1.2;
  text-align: center;
  text-decoration: underline;
  -moz-appearance: none;
       appearance: none;
  margin: calc(3.68px + 0.1vw) 0 0;
  margin: calc(3.68px + 0.1vw) 0 0;
  margin: calc(var(--modal-fluid-em)*0.25) 0 0;
  -webkit-appearance: none;
  -webkit-transition: none;
  transition: none;
}
a.c-modal__cancel:focus,
a.c-modal__cancel:hover {
  color: #ffffff;
  color: var(--modal-white);
}
.c-modal__content > h1 {
    font-size: 1.2em;
    font-size: var(--modal-gamma);
    font-weight: 700;
  }
.c-modal__content > a[role="button"],
  .c-modal__content > a[role="button"]:link,
  .c-modal__content > a[role="button"]:visited
  .c-modal__content > a[role="button"]:active {
    font-size: .75em;
    font-size: var(--modal-eta);
    background-color: transparent;
    border: calc(0.92px + 0.025vw) solid #ebebeb;
    border: calc(0.92px + 0.025vw) solid #ebebeb;
    border: calc(var(--modal-fluid-em)*0.0625) solid var(--modal-light-gray);
    border-radius: calc(3.68px + 0.1vw);
    border-radius: calc(3.68px + 0.1vw);
    border-radius: calc(var(--modal-fluid-em)*0.25);
    color: #ebebeb;
    color: var(--modal-light-gray);
    cursor: pointer;
    display: inline-block;
    font-weight: 700;
    min-height: 2.375em;
    line-height: 1.2;
    padding: .75em 1.875em;
    text-align: center;
    text-decoration: none;
    -moz-appearance: none;
         appearance: none;
    margin: calc(3.68px + 0.1vw) 0 0;
    margin: calc(3.68px + 0.1vw) 0 0;
    margin: calc(var(--modal-fluid-em)*0.25) 0 0;
    -webkit-appearance: none;
    -webkit-transition: none;
    transition: none;
  }
.c-modal__content > a[role="button"]:focus,
  .c-modal__content > a[role="button"]:hover {
    background-color: transparent;
    border-color: #ffffff;
    border-color: var(--modal-white);
    color: #ffffff;
    color: var(--modal-white);
  }
.c-modal__content > a[rel="alternate"],
  .c-modal__content > a[rel="alternate"]:link,
  .c-modal__content > a[rel="alternate"]:visited
  .c-modal__content > a[rel="alternate"]:active {
    font-size: .875em;
    font-size: var(--modal-zeta);
    position: relative;
    padding-right: 2.5em;
    margin: calc(7.36px + 0.2vw) 0;
    margin: calc(7.36px + 0.2vw) 0;
    margin: calc(var(--modal-fluid-em)*0.5) 0;
  }
.c-modal__content > a[rel="alternate"]::after {
    position: absolute;
    top: 50%;
    margin-top: -.5em;
    right: .125em;
    content: "";
    width: 0;
    height: 0;
    border-top: transparent solid .5em;
    border-right: transparent solid .75em;
    border-bottom: transparent solid .5em;
    border-left: #ebebeb solid .75em;
    border-left: var(--modal-light-gray) solid .75em;
    margin-left: auto;
  }
.c-modal__content > a[rel="alternate"]:focus::after,
  .c-modal__content > a[rel="alternate"]:hover::after {
    border-left-color: #ffffff;
    border-left-color: var(--modal-white);
  }
.h-modal-url-wrap {
  word-wrap: break-word;
}
/*--------------------------------------
 *
 * COMPONENT: OUR GLOBAL NAV
 * Included in this document: Variables, Base, Styles
 *
 * The instance of the global nav embedded within
 * the reg app is canonical.
 * (https://github.com/openupresources/curriculum-gateway)
 *
 *-------------------------------------*/
/*--------------------------------------
 *
 * COMPONENT: OUR GLOBAL NAV -- ROBOTO FONTS
 *
 *-------------------------------------*/
/* Avoid loading unnecessary font weights! */
/* Always necessary: */
/* Roboto 500 for top and second-level list items. */
/* Sometimes necessary: */
/* Roboto 400 for third-level list items in narrow viewports and global notifications. */
/* Only necessary in the Curriculum Gateway/Reg App: */
/* Roboto 700 for “Create New Account” on login page. */
/* If Google Fonts are already imported into the app, include "&family=Roboto:ital,wght@0,400;0,500;1,700" as necessary. */
/* If Google Fonts are not already imported, uncomment the following import statement or (better) add
 the equivalent to the <head> of the app. */
/* @import url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,400;0,500;1,700&display=swap'); */
/*--------------------------------------
 *
 * COMPONENT: OUR GLOBAL NAV -- VARIABLES
 *
 *-------------------------------------*/
/* Color palette */
:root {

  /* Colors with "-our-" in their name are sourced from the OUR brand guidelines */

--nav-global-our-primary-orange:       rgb(252,76,2);    /* #FC4C02 */
--nav-global-our-globalnav-orange:     rgb(241,89,42);   /* #F1592A  - a less bright orange */
--nav-global-our-primary-yellow:       rgb(255,184,28);  /* #FFB81C */
--nav-global-our-primary-gray:         rgb(110,98,89);   /* #6E6259 */
--nav-global-our-primary-dark-gray:    rgb(69,53,54);    /* #453536 */
--nav-global-white:                    white;
--nav-global-light-gray:               rgb(241,241,241);

/*
  Typographic sizes

  Font sizes based on minor third (1.2) http://www.modularscale.com/?1&em&1.2

*/

--nav-global-font-base-min: 16px;
--nav-global-font-base-max: 20px;
--nav-global-fluid-em:      calc(14.72px + 0.4vw);
--nav-global-delta:         1.2em;
--nav-global-epsilon:       .833em;
--nav-global-zeta:          .8em;

}
/* Custom Media Declarations for Breakpoints */
/*--------------------------------------
 *
 * COMPONENT: OUR GLOBAL NAV -- BASE
 *
 *-------------------------------------*/
.c-nav-global {
   font-size: 16px;
   font-size: var(--nav-global-font-base-min);
   font-family: 'Roboto', 'Trebuchet MS', Trebuchet, Tahoma, sans-serif;
   font-weight: 500;
   text-rendering: optimizelegibility; /* Can cause problems in some versions of Android */
     -webkit-text-size-adjust: none;
        -moz-text-size-adjust: none;
         -ms-text-size-adjust: none;
             text-size-adjust: none;
   -webkit-font-smoothing: antialiased;
   -moz-osx-font-smoothing: grayscale;
   font-display: swap; /* https://www.zachleat.com/web/comprehensive-webfonts/#font-display */
   line-height: 1.45;

   /* Fluid from 16px to 20px between breakpoints */
}
@media (min-width: 537px) {
     .c-nav-global {
       font-size: 16px;
       font-size: var(--nav-global-font-base-min); /* 16px at 320px */ /* px fallback for browsers that don’t get calc */
       font-size: calc(14.72px + 0.4vw);
     }
   }
@media (min-width: 1320px) {
     .c-nav-global {
       font-size: 20px;
       font-size: var(--nav-global-font-base-max); /* 20px at 1320px */
     }
   }
.c-nav-global * {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}
.c-nav-global *::before, .c-nav-global *::after {
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
  }
/*--------------------------------------
 *
 * COMPONENT: OUR GLOBAL NAV -- STYLES
 *
 *-------------------------------------*/
@media (min-width: 1024px) {
    .c-nav-global {
      z-index: 8675309;
      width: 100%;
    }
  }
.c-nav-global__wrapper {
  padding: .75em 1em;
  background: rgb(241,89,42);
  background: var(--nav-global-our-globalnav-orange);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  position:relative;
}
@media (min-width: 1024px) {
    .c-nav-global__wrapper {
      padding: 0 .25em 0 1em;
    }
  }
.c-nav-global__logolink {
  display: block;
}
@media (min-width: 1024px) {
    .c-nav-global__logolink {
      padding: 0.83125em 0;
    }
  }
.c-nav-global__logoimg {
  display: block;
  height: 2em;
  width: auto;
}
.c-nav-global__menu {
  display:inline-block;
  text-decoration: none;
  color: white;
  color: var(--nav-global-white);
  border: 3px rgb(255,184,28) solid;
  border: 3px var(--nav-global-our-primary-yellow) solid; /* Normally, I prefer rems/ems for all dimensions, but browser rounding on an element this small results in different pixel widths across adjacent instances of this same element. The difference is noticeable and annoying.  */
  border-radius: calc(18.4px + 0.5vw);
  border-radius: calc(18.4px + 0.5vw);
  border-radius: calc(var(--nav-global-fluid-em)*1.25);
  padding: calc(7.36px + 0.2vw) calc(14.72px + 0.4vw);
  padding: calc(7.36px + 0.2vw) calc(14.72px + 0.4vw);
  padding: calc(var(--nav-global-fluid-em)*0.5) calc(var(--nav-global-fluid-em));
  text-transform: uppercase;
  line-height: calc(14.72px + 0.4vw);
  line-height: calc(14.72px + 0.4vw);
  line-height: calc(var(--nav-global-fluid-em));
  width: calc(73.6px + 2vw);
  width: calc(73.6px + 2vw);
  width: calc(var(--nav-global-fluid-em)*5);
  text-align:center;
  font-size: .833em;
  font-size: var(--nav-global-epsilon);
  font-weight: 500;
}
@media (min-width: 1024px) {
    .c-nav-global__menu {
      display: none;
    }
  }
.c-nav-global__menu:link,
  .c-nav-global__menu:visited,
  .c-nav-global__menu:hover,
  .c-nav-global__menu:active {
    color: white;
    color: var(--nav-global-white);
  }
@media (max-width: 1023px) {
    .c-nav-global__nav {
      background: rgb(241,89,42);
      background: var(--nav-global-our-globalnav-orange);
      padding: .75em 1em;
      text-align: right;
      position: fixed;
      overflow-y: scroll;
      z-index: 8675309;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      visibility: hidden;
      opacity: 0;
      -webkit-transition: opacity 0.5s, visibility 0s 0.5s;
      transition: opacity 0.5s, visibility 0s 0.5s;
    }

      .c-nav-global__nav:target:not([data-skip-targeting]), .c-nav-global__nav[data-visible] {
        opacity: 1;
        visibility: visible;
        -webkit-transition: opacity 0.5s;
        transition: opacity 0.5s;
      }
  }
.c-nav-global__list {
  list-style: none;
  margin: 1em auto 0;
  padding: 2em 1em 2em;
  text-align: center;
  position: static;
}
@media (min-width: 1024px) {
    .c-nav-global__list {
      margin: 0;
      padding: 0;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-pack: justify;
          -ms-flex-pack: justify;
              justify-content: space-between;
    }
  }
.c-nav-global__list {
  /* Annoying necessity - override of OUR wordpress theme defaults for ul */
  position: static;
}
.c-nav-global__listitem {
  list-style: none;
  -webkit-hyphens: none;
      -ms-hyphens: none;
          hyphens: none;
  margin: 0;
  padding: .65625em 0 0;
  line-height: 1.25;
}
@media (min-width: 1024px) {
    .c-nav-global__listitem {
      padding: 1.15625em 0;
    }
  }
/* Annoying necessity - override of OUR wordpress theme defaults for ul li */
.c-nav-global__listitem::before {
  content: normal;
}
.c-nav-global__label {
  color: white;
  color: var(--nav-global-white);
  font-size: 1.2em;
  font-size: var(--nav-global-delta);
  display: inline-block;
}
@media (min-width: 1024px) {
    .c-nav-global__label {
      font-size: .833em;
      font-size: var(--nav-global-epsilon);
    }
  }
.c-nav-global__link,
.c-nav-global__link:link,
.c-nav-global__link:visited,
.c-nav-global__link:active {
  font-size: 1.2em;
  font-size: var(--nav-global-delta);
  font-weight: 500;
  position: relative;
  display: inline-block;
  text-decoration: none;
  color: white;
  color: var(--nav-global-white);
  padding: calc(7.36px + 0.2vw);
  padding: calc(7.36px + 0.2vw);
  padding: calc(var(--nav-global-fluid-em)*0.5);
  -webkit-transition: none;
  transition: none;
}
@media (min-width: 1024px) {
    .c-nav-global__link, .c-nav-global__link:link, .c-nav-global__link:visited, .c-nav-global__link:active {
      font-size: .833em;
      font-size: var(--nav-global-epsilon);
      padding: 0 20px;
      padding: 0 var(--nav-global-font-base-max);
    }
  }
@media (min-width: 1024px) {
    .c-nav-global__link::before,
    .c-nav-global__link:link::before,
    .c-nav-global__link:visited::before,
    .c-nav-global__link:active::before,
    .c-nav-global__link::after,
    .c-nav-global__link:link::after,
    .c-nav-global__link:visited::after,
    .c-nav-global__link:active::after {
      display: block;
      height: 3px; /* Normally, I prefer rems/ems for all dimensions, but browser rounding on an element this small results in different pixel widths across adjacent instances of this same element. The difference is noticeable and annoying.  */
      width: 100%;
      content: "";
      position: relative;
      top: 2px;
    }
  }
@media (max-width: 1023px) {
    .c-nav-global__link::before,
    .c-nav-global__link:link::before,
    .c-nav-global__link:visited::before,
    .c-nav-global__link:active::before,
    .c-nav-global__link::after,
    .c-nav-global__link:link::after,
    .c-nav-global__link:visited::after,
    .c-nav-global__link:active::after {
      position: absolute;
      bottom: calc(3.68px + 0.1vw);
      bottom: calc(3.68px + 0.1vw);
      bottom: calc(var(--nav-global-fluid-em)*0.25);
      left: 0;
      right: 0;
      width: auto;
    }
  }
.c-nav-global__link:hover, .c-nav-global__link:link:hover, .c-nav-global__link:visited:hover, .c-nav-global__link:active:hover {
    color: white;
    color: var(--nav-global-white);
    text-decoration: none;
  }
@media (min-width: 1024px) {
    .c-nav-global__link:hover::after,
    .c-nav-global__link:link:hover::after,
    .c-nav-global__link:visited:hover::after,
    .c-nav-global__link:active:hover::after,
    .c-nav-global__link:focus::after,
    .c-nav-global__link:link:focus::after,
    .c-nav-global__link:visited:focus::after,
    .c-nav-global__link:active:focus::after {
      background: rgb(255,184,28);
      background: var(--nav-global-our-primary-yellow);
    }
  }
/* 700 weight only required in the Reg App for formatting "Create New Account" */
.c-nav-global__label + .c-nav-global__link,
.c-nav-global__label + .c-nav-global__link:link,
.c-nav-global__label + .c-nav-global__link:visited,
.c-nav-global__label + .c-nav-global__link:active {
  padding-left: 0;
  font-weight: 700;
}
.c-nav-global__label + .c-nav-global__link::before,
  .c-nav-global__label + .c-nav-global__link:link::before,
  .c-nav-global__label + .c-nav-global__link:visited::before,
  .c-nav-global__label + .c-nav-global__link:active::before,
  .c-nav-global__label + .c-nav-global__link::after,
  .c-nav-global__label + .c-nav-global__link:link::after,
  .c-nav-global__label + .c-nav-global__link:visited::after,
  .c-nav-global__label + .c-nav-global__link:active::after {
    display: block;
    height: 3px; /* Normally, I prefer rems/ems for all dimensions, but browser rounding on an element this small results in different pixel widths across adjacent instances of this same element. The difference is noticeable and annoying.  */
    width: 100%;
    content: "";
    position: relative;
    top: 2px;
  }
.c-nav-global__label + .c-nav-global__link::after, .c-nav-global__label + .c-nav-global__link:link::after, .c-nav-global__label + .c-nav-global__link:visited::after, .c-nav-global__label + .c-nav-global__link:active::after {
    background: rgb(255,184,28);
    background: var(--nav-global-our-primary-yellow);
    opacity: .75;
  }
.c-nav-global__label + .c-nav-global__link:hover::after, .c-nav-global__label + .c-nav-global__link:link:hover::after, .c-nav-global__label + .c-nav-global__link:visited:hover::after, .c-nav-global__label + .c-nav-global__link:active:hover::after {
    opacity: 1;
  }
@media (min-width: 1024px) {
    .c-nav-global__label + .c-nav-global__link::before,
    .c-nav-global__label + .c-nav-global__link:link::before,
    .c-nav-global__label + .c-nav-global__link:visited::before,
    .c-nav-global__label + .c-nav-global__link:active::before,
    .c-nav-global__label + .c-nav-global__link::after,
    .c-nav-global__label + .c-nav-global__link:link::after,
    .c-nav-global__label + .c-nav-global__link:visited::after,
    .c-nav-global__label + .c-nav-global__link:active::after {
      top: 0;
    }
  }
@media (min-width: 1024px) {
      .c-nav-global__listitem:last-child:not(:only-child) .c-nav-global__link, .c-nav-global__listitem:last-child:not(:only-child) .c-nav-global__link:link, .c-nav-global__listitem:last-child:not(:only-child) .c-nav-global__link:visited, .c-nav-global__listitem:last-child:not(:only-child) .c-nav-global__link:active {
        margin-left: 20px;
        margin-left: var(--nav-global-font-base-max);
        padding-left: 40px;
        padding-left: calc(var(--nav-global-font-base-max)*2);
        border-left: 1px solid white;
        border-left: 1px solid var(--nav-global-white);
      }
    }
.c-nav-global__notification {
  padding: .8em 3em;
  padding: var(--nav-global-zeta) 3em;
  background-color: orange;
  text-align: center;
}
.c-nav-global__notification p {
  font-size: .8em;
  font-size: var(--nav-global-zeta);
  font-weight: 400;
  line-height: 1.2;
  margin: 0;
}
.c-nav-global__notification a {
  color: rgb(69,53,54);
  color: var(--nav-global-our-primary-dark-gray);
  border: none;
  text-decoration: underline;
  white-space: nowrap;
}
.c-nav-global__helper-nowrap {
  white-space: nowrap;
}
/* Make content visible screen readers only when not focused or active */
/* "sr" meaning "screen-reader". Learn more: https://css-tricks.com/inclusively-hidden/ */
.sr-only:not(:focus):not(:active) {
  clip: rect(0 0 0 0);
  -webkit-clip-path: inset(50%);
  clip-path: inset(50%);
  height: 1px;
  overflow: hidden;
  position: absolute;
  white-space: nowrap;
  width: 1px;
}
*:focus {
  outline: none;
}
*.focus-visible {
  outline: none;
  -webkit-box-shadow:
    0 0 0 0.15em #fff,
    0 0 0 0.3em rgb(215,65,2);
          box-shadow:
    0 0 0 0.15em #fff,
    0 0 0 0.3em rgb(215,65,2);
  -webkit-box-shadow:
    0 0 0 0.15em #fff,
    0 0 0 0.3em var(--aa-orange);
          box-shadow:
    0 0 0 0.15em #fff,
    0 0 0 0.3em var(--aa-orange);
}
*.focus-visible {
  outline: none;
  -webkit-box-shadow:
    0 0 0 0.15em #fff,
    0 0 0 0.3em rgb(215,65,2);
          box-shadow:
    0 0 0 0.15em #fff,
    0 0 0 0.3em rgb(215,65,2);
  -webkit-box-shadow:
    0 0 0 0.15em #fff,
    0 0 0 0.3em var(--aa-orange);
          box-shadow:
    0 0 0 0.15em #fff,
    0 0 0 0.3em var(--aa-orange);
}
*:focus-visible {
  outline: none;
  -webkit-box-shadow:
    0 0 0 0.15em #fff,
    0 0 0 0.3em rgb(215,65,2);
          box-shadow:
    0 0 0 0.15em #fff,
    0 0 0 0.3em rgb(215,65,2);
  -webkit-box-shadow:
    0 0 0 0.15em #fff,
    0 0 0 0.3em var(--aa-orange);
          box-shadow:
    0 0 0 0.15em #fff,
    0 0 0 0.3em var(--aa-orange);
}
@media (forced-colors: active) {
  *.focus-visible {
    outline: 0.2em solid;
  }
  *:focus-visible {
    outline: 0.2em solid;
  }
}
/** Utility Classes **/
/*
  Used to indicate preformatted whitespace.
*/
.u-preformatted { white-space: pre }

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3N0eWxlc2hlZXRzL3B1YmxpY2F0aW9ucy5jc3MiLCIuLi9zdHlsZXNoZWV0cy9wdWJsaWNhdGlvbnMvdmVuZG9yL25vcm1hbGl6ZS5jc3MiLCIuLi9zdHlsZXNoZWV0cy9wdWJsaWNhdGlvbnMvY29yZS9fY29sb3IuY3NzIiwiLi4vc3R5bGVzaGVldHMvcHVibGljYXRpb25zL2NvcmUvX2ZvbnRzLmNzcyIsIi4uL3N0eWxlc2hlZXRzL3B1YmxpY2F0aW9ucy9jb3JlL19zaXplcy5jc3MiLCIuLi9zdHlsZXNoZWV0cy9wdWJsaWNhdGlvbnMvY29yZS9fdHlwb2dyYXBoeS5jc3MiLCIuLi9zdHlsZXNoZWV0cy9wdWJsaWNhdGlvbnMvY29yZS9fYnV0dG9uLmNzcyIsIi4uL3N0eWxlc2hlZXRzL3B1YmxpY2F0aW9ucy9sYXlvdXQvX2xheW91dC5jc3MiLCIuLi9zdHlsZXNoZWV0cy9wdWJsaWNhdGlvbnMvY29tcG9uZW50cy9fYmFubmVyLmNzcyIsIi4uL3N0eWxlc2hlZXRzL3B1YmxpY2F0aW9ucy9jb21wb25lbnRzL19hbm5vdW5jZW1lbnQuY3NzIiwiLi4vc3R5bGVzaGVldHMvcHVibGljYXRpb25zL2NvbXBvbmVudHMvX2N0YS1zaWRlYmFyLmNzcyIsIi4uL3N0eWxlc2hlZXRzL3B1YmxpY2F0aW9ucy9jb21wb25lbnRzL19kaXJlY3RvcnkuY3NzIiwiLi4vc3R5bGVzaGVldHMvcHVibGljYXRpb25zL2NvbXBvbmVudHMvX2ZpZ3VyZS5jc3MiLCIuLi9zdHlsZXNoZWV0cy9wdWJsaWNhdGlvbnMvY29tcG9uZW50cy9fbmF2LWN1cnJpY3VsdW0uY3NzIiwiLi4vc3R5bGVzaGVldHMvcHVibGljYXRpb25zL2NvbXBvbmVudHMvX2luZGV4LmNzcyIsIi4uL3N0eWxlc2hlZXRzL3NoYXJlZC9jb21wb25lbnRzL19mb290ZXIuY3NzIiwiLi4vc3R5bGVzaGVldHMvc2hhcmVkL2NvbXBvbmVudHMvX21vZGFsLmNzcyIsIi4uL3N0eWxlc2hlZXRzL3NoYXJlZC9jb21wb25lbnRzL19uYXYtZ2xvYmFsLmNzcyIsIi4uL3N0eWxlc2hlZXRzL3NoYXJlZC9jb21wb25lbnRzL19hY2Nlc3NpYmlsaXR5LmNzcyIsIi4uL3N0eWxlc2hlZXRzL3NoYXJlZC9zdHlsZXMuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDZCQUE2QjtBQ0E3QiwyRUFBMkU7QUFFM0U7K0VBQytFO0FBRS9FOzs7RUFHRTtBQUVGO0VBQ0UsaUJBQWlCLEVBQUUsTUFBTTtFQUN6Qiw4QkFBOEIsRUFBRSxNQUFNO0FBQ3hDO0FBRUE7K0VBQytFO0FBRS9FOztFQUVFO0FBRUY7RUFDRSxTQUFTO0FBQ1g7QUFFQTs7RUFFRTtBQUVGO0VBQ0UsY0FBYztBQUNoQjtBQUVBOzs7RUFHRTtBQUVGO0VBQ0UsY0FBYztFQUNkLGdCQUFnQjtBQUNsQjtBQUVBOytFQUMrRTtBQUUvRTs7O0VBR0U7QUFFRjtFQUNFLCtCQUF1QjtVQUF2Qix1QkFBdUIsRUFBRSxNQUFNO0VBQy9CLFNBQVMsRUFBRSxNQUFNO0VBQ2pCLGlCQUFpQixFQUFFLE1BQU07QUFDM0I7QUFFQTs7O0VBR0U7QUFFRjtFQUNFLGlDQUFpQyxFQUFFLE1BQU07RUFDekMsY0FBYyxFQUFFLE1BQU07QUFDeEI7QUFFQTsrRUFDK0U7QUFFL0U7O0VBRUU7QUFFRjtFQUNFLDZCQUE2QjtBQUMvQjtBQUVBOzs7RUFHRTtBQUVGO0VBQ0UsbUJBQW1CLEVBQUUsTUFBTTtFQUMzQiwwQkFBMEIsRUFBRSxNQUFNO0VBQ2xDLDBCQUFpQztFQUFqQyxzREFBaUM7VUFBakMsOENBQWlDLEVBQUUsTUFBTTtBQUMzQztBQUVBOztFQUVFO0FBRUY7O0VBRUUsbUJBQW1CO0FBQ3JCO0FBRUE7OztFQUdFO0FBRUY7OztFQUdFLGlDQUFpQyxFQUFFLE1BQU07RUFDekMsY0FBYyxFQUFFLE1BQU07QUFDeEI7QUFFQTs7RUFFRTtBQUVGO0VBQ0UsY0FBYztBQUNoQjtBQUVBOzs7RUFHRTtBQUVGOztFQUVFLGNBQWM7RUFDZCxjQUFjO0VBQ2Qsa0JBQWtC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Q0Y7QUN4QkEsc0JBQXNCO0FBRXRCOztDQUVDO0FBQ0Qsa0JBQWtCLGlCQUFpQiIsImZpbGUiOiJwdWJsaWNhdGlvbnMuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLyogVmVuZG9yIGNzcyBhbmQgdmFyaWFibGVzICovXG5AaW1wb3J0ICcuL3B1YmxpY2F0aW9ucy92ZW5kb3Ivbm9ybWFsaXplLmNzcyc7IC8qIEN1c3RvbWl6ZWQgZm9yIE9VUiBkZXNpZ24gKi9cblxuLyogQ29yZSBjc3MgYW5kIHZhcmlhYmxlcyAqL1xuQGltcG9ydCAnLi9wdWJsaWNhdGlvbnMvY29yZS9fY29sb3IuY3NzJztcbkBpbXBvcnQgJy4vcHVibGljYXRpb25zL2NvcmUvX2ZvbnRzLmNzcyc7XG5AaW1wb3J0ICcuL3B1YmxpY2F0aW9ucy9jb3JlL19zaXplcy5jc3MnO1xuQGltcG9ydCAnLi9wdWJsaWNhdGlvbnMvY29yZS9fdHlwb2dyYXBoeS5jc3MnO1xuQGltcG9ydCAnLi9wdWJsaWNhdGlvbnMvY29yZS9fYnV0dG9uLmNzcyc7XG5cbi8qIExheW91dCAqL1xuQGltcG9ydCAnLi9wdWJsaWNhdGlvbnMvbGF5b3V0L19sYXlvdXQuY3NzJztcblxuLyogQ29tcG9uZW50cyAqL1xuQGltcG9ydCAnLi9wdWJsaWNhdGlvbnMvY29tcG9uZW50cy9fYmFubmVyLmNzcyc7XG5AaW1wb3J0ICcuL3B1YmxpY2F0aW9ucy9jb21wb25lbnRzL19hbm5vdW5jZW1lbnQuY3NzJztcbkBpbXBvcnQgJy4vcHVibGljYXRpb25zL2NvbXBvbmVudHMvX2N0YS1zaWRlYmFyLmNzcyc7XG5AaW1wb3J0ICcuL3B1YmxpY2F0aW9ucy9jb21wb25lbnRzL19kaXJlY3RvcnkuY3NzJztcbkBpbXBvcnQgJy4vcHVibGljYXRpb25zL2NvbXBvbmVudHMvX2ZpZ3VyZS5jc3MnO1xuQGltcG9ydCAnLi9wdWJsaWNhdGlvbnMvY29tcG9uZW50cy9fbmF2LWN1cnJpY3VsdW0uY3NzJztcbkBpbXBvcnQgJy4vcHVibGljYXRpb25zL2NvbXBvbmVudHMvX2luZGV4LmNzcyc7XG5cbi8qIFNoYXJlZCBTdHlsZXMgKi9cbkBpbXBvcnQgJy4vc2hhcmVkL3N0eWxlcy5jc3MnO1xuIiwiLyohIG5vcm1hbGl6ZS5jc3MgdjguMC4xIHwgTUlUIExpY2Vuc2UgfCBnaXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcyAqL1xuXG4vKiBEb2N1bWVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBsaW5lIGhlaWdodCBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBQcmV2ZW50IGFkanVzdG1lbnRzIG9mIGZvbnQgc2l6ZSBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2VzIGluIGlPUy5cbiAqL1xuXG5odG1sIHtcbiAgbGluZS1oZWlnaHQ6IDEuMTU7IC8qIDEgKi9cbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXG59XG5cbi8qIFNlY3Rpb25zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSB0aGUgbWFyZ2luIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5ib2R5IHtcbiAgbWFyZ2luOiAwO1xufVxuXG4vKipcbiAqIFJlbmRlciB0aGUgYG1haW5gIGVsZW1lbnQgY29uc2lzdGVudGx5IGluIElFLlxuICovXG5cbm1haW4ge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBmb250IHNpemUgYW5kIG1hcmdpbiBvbiBgaDFgIGVsZW1lbnRzIHdpdGhpbiBgc2VjdGlvbmAgYW5kXG4gKiBgYXJ0aWNsZWAgY29udGV4dHMgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgU2FmYXJpLlxuICovXG5cbmgxIHtcbiAgZm9udC1zaXplOiAyZW07XG4gIG1hcmdpbjogMC42N2VtIDA7XG59XG5cbi8qIEdyb3VwaW5nIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gRmlyZWZveC5cbiAqIDIuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UgYW5kIElFLlxuICovXG5cbmhyIHtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7IC8qIDEgKi9cbiAgaGVpZ2h0OiAwOyAvKiAxICovXG4gIG92ZXJmbG93OiB2aXNpYmxlOyAvKiAyICovXG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5wcmUge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7IC8qIDEgKi9cbiAgZm9udC1zaXplOiAxZW07IC8qIDIgKi9cbn1cblxuLyogVGV4dC1sZXZlbCBzZW1hbnRpY3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgb24gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuICovXG5cbmEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLyoqXG4gKiAxLiBSZW1vdmUgdGhlIGJvdHRvbSBib3JkZXIgaW4gQ2hyb21lIDU3LVxuICogMi4gQWRkIHRoZSBjb3JyZWN0IHRleHQgZGVjb3JhdGlvbiBpbiBDaHJvbWUsIEVkZ2UsIElFLCBPcGVyYSwgYW5kIFNhZmFyaS5cbiAqL1xuXG5hYmJyW3RpdGxlXSB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7IC8qIDEgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IC8qIDIgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkOyAvKiAyICovXG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgd2VpZ2h0IGluIENocm9tZSwgRWRnZSwgYW5kIFNhZmFyaS5cbiAqL1xuXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGRlcjtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbmNvZGUsXG5rYmQsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlOyAvKiAxICovXG4gIGZvbnQtc2l6ZTogMWVtOyAvKiAyICovXG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc21hbGwge1xuICBmb250LXNpemU6IDgwJTtcbn1cblxuLyoqXG4gKiBQcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBlbGVtZW50cyBmcm9tIGFmZmVjdGluZyB0aGUgbGluZSBoZWlnaHQgaW5cbiAqIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zdWIsXG5zdXAge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG5zdWIge1xuICBib3R0b206IC0wLjI1ZW07XG59XG5cbnN1cCB7XG4gIHRvcDogLTAuNWVtO1xufVxuXG4vKiBFbWJlZGRlZCBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSB0aGUgYm9yZGVyIG9uIGltYWdlcyBpbnNpZGUgbGlua3MgaW4gSUUgMTAuXG4gKi9cblxuaW1nIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xufVxuXG4vKiBGb3Jtc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiAxLiBDaGFuZ2UgdGhlIGZvbnQgc3R5bGVzIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIFJlbW92ZSB0aGUgbWFyZ2luIGluIEZpcmVmb3ggYW5kIFNhZmFyaS5cbiAqL1xuXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBmb250LWZhbWlseTogaW5oZXJpdDsgLyogMSAqL1xuICBmb250LXNpemU6IDEwMCU7IC8qIDEgKi9cbiAgbGluZS1oZWlnaHQ6IDEuMTU7IC8qIDEgKi9cbiAgbWFyZ2luOiAwOyAvKiAyICovXG59XG5cbi8qKlxuICogU2hvdyB0aGUgb3ZlcmZsb3cgaW4gSUUuXG4gKiAxLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlLlxuICovXG5cbmJ1dHRvbixcbmlucHV0IHsgLyogMSAqL1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEVkZ2UsIEZpcmVmb3gsIGFuZCBJRS5cbiAqIDEuIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRmlyZWZveC5cbiAqL1xuXG5idXR0b24sXG5zZWxlY3QgeyAvKiAxICovXG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gKi9cblxuYnV0dG9uLFxuW3R5cGU9XCJidXR0b25cIl0sXG5bdHlwZT1cInJlc2V0XCJdLFxuW3R5cGU9XCJzdWJtaXRcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGlubmVyIGJvcmRlciBhbmQgcGFkZGluZyBpbiBGaXJlZm94LlxuICovXG5cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwiYnV0dG9uXCJdOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJyZXNldFwiXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwic3VibWl0XCJdOjotbW96LWZvY3VzLWlubmVyIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xuICBwYWRkaW5nOiAwO1xufVxuXG4vKipcbiAqIFJlc3RvcmUgdGhlIGZvY3VzIHN0eWxlcyB1bnNldCBieSB0aGUgcHJldmlvdXMgcnVsZS5cbiAqL1xuXG5idXR0b246LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cImJ1dHRvblwiXTotbW96LWZvY3VzcmluZyxcblt0eXBlPVwicmVzZXRcIl06LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cInN1Ym1pdFwiXTotbW96LWZvY3VzcmluZyB7XG4gIG91dGxpbmU6IDFweCBkb3R0ZWQgQnV0dG9uVGV4dDtcbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBwYWRkaW5nIGluIEZpcmVmb3guXG4gKi9cblxuZmllbGRzZXQge1xuICBwYWRkaW5nOiAwLjM1ZW0gMC43NWVtIDAuNjI1ZW07XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgdGV4dCB3cmFwcGluZyBpbiBFZGdlIGFuZCBJRS5cbiAqIDIuIENvcnJlY3QgdGhlIGNvbG9yIGluaGVyaXRhbmNlIGZyb20gYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBJRS5cbiAqIDMuIFJlbW92ZSB0aGUgcGFkZGluZyBzbyBkZXZlbG9wZXJzIGFyZSBub3QgY2F1Z2h0IG91dCB3aGVuIHRoZXkgemVybyBvdXRcbiAqICAgIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbmxlZ2VuZCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgY29sb3I6IGluaGVyaXQ7IC8qIDIgKi9cbiAgZGlzcGxheTogdGFibGU7IC8qIDEgKi9cbiAgbWF4LXdpZHRoOiAxMDAlOyAvKiAxICovXG4gIHBhZGRpbmc6IDA7IC8qIDMgKi9cbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDsgLyogMSAqL1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCB2ZXJ0aWNhbCBhbGlnbm1lbnQgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXG4gKi9cblxucHJvZ3Jlc3Mge1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRSAxMCsuXG4gKi9cblxudGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuLyoqXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBJRSAxMC5cbiAqIDIuIFJlbW92ZSB0aGUgcGFkZGluZyBpbiBJRSAxMC5cbiAqL1xuXG5bdHlwZT1cImNoZWNrYm94XCJdLFxuW3R5cGU9XCJyYWRpb1wiXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgcGFkZGluZzogMDsgLyogMiAqL1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGN1cnNvciBzdHlsZSBvZiBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBidXR0b25zIGluIENocm9tZS5cbiAqL1xuXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcblt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIG9kZCBhcHBlYXJhbmNlIGluIENocm9tZSBhbmQgU2FmYXJpLlxuICogMi4gQ29ycmVjdCB0aGUgb3V0bGluZSBzdHlsZSBpbiBTYWZhcmkuXG4gKi9cblxuW3R5cGU9XCJzZWFyY2hcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLyogMSAqL1xuICBvdXRsaW5lLW9mZnNldDogLTJweDsgLyogMiAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5uZXIgcGFkZGluZyBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBtYWNPUy5cbiAqL1xuXG5bdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICogMi4gQ2hhbmdlIGZvbnQgcHJvcGVydGllcyB0byBgaW5oZXJpdGAgaW4gU2FmYXJpLlxuICovXG5cbjo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLyogMSAqL1xuICBmb250OiBpbmhlcml0OyAvKiAyICovXG59XG5cbi8qIEludGVyYWN0aXZlXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gRWRnZSwgSUUgMTArLCBhbmQgRmlyZWZveC5cbiAqL1xuXG5kZXRhaWxzIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGxpc3QtaXRlbTtcbn1cblxuLyogTWlzY1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSAxMCsuXG4gKi9cblxudGVtcGxhdGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwLlxuICovXG5cbltoaWRkZW5dIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbiIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICpcbiAqIENvbG9yc1xuICpcbiAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuOnJvb3Qge1xuXG4gICAgLyogQ29sb3JzIHdpdGggXCItb3VyLVwiIGluIHRoZWlyIG5hbWUgYXJlIHNvdXJjZWQgZnJvbSB0aGUgT1VSIGJyYW5kIGd1aWRlbGluZXMuIFB1bGxlZCBmcm9tIEJvb2t3b3JtcyB3ZWIuICovXG5cbiAgICAtLW91ci1wcmltYXJ5LW9yYW5nZTogICAgICAgcmdiKDI1Miw3NiwyKTsgICAgLyogI0ZDNEMwMiAqL1xuICAgIC0tb3VyLWdsb2JhbG5hdi1vcmFuZ2U6ICAgICByZ2IoMjQxLDg5LDQyKTsgICAvKiAjRjE1OTJBICAtIGEgbGVzcyBicmlnaHQsIFdDQUcgQUErIGNvbXBsaWFudCBvcmFuZ2UgKi9cbiAgICAtLWFhLW9yYW5nZTogICAgICAgICAgICAgICAgcmdiKDIxNSw2NSwyKTsgICAgLyogI2Q3NDEwMiAtIEFBIG9yYW5nZSB3aXRoIHdoaXRlIOKAlCB1c2VkIGluIHRoZSBDTVMsIHNrZXdzIHJlZGRpc2ggKi9cbiAgICAtLW91ci1wcmltYXJ5LXllbGxvdzogICAgICAgcmdiKDI1NSwxODQsMjgpOyAgLyogI0ZGQjgxQyAqL1xuICAgIC0tb3VyLXByaW1hcnktZ3JheTogICAgICAgICByZ2IoMTEwLDk4LDg5KTsgICAvKiAjNkU2MjU5ICovXG4gICAgLS1vdXItcHJpbWFyeS1kYXJrLWdyYXk6ICAgIHJnYig2OSw1Myw1NCk7ICAgIC8qICM0NTM1MzYgKi9cbiAgICAtLWdyYXk6ICAgICAgICAgICAgICAgICAgICAgcmdiKDIwMCwyMDAsMjAwKTtcbiAgICAtLWFjY2Vzc2libGUtZ3JheTogICAgICAgICAgcmdiKDExOSwxMTksMTE5KTsgLyogVGhlIGxpZ2h0ZXN0IGdyYXkgdGhhdCBpcyBhY2Nlc3NpYmxlIGF0IDwgMThweCB0ZXh0IG9uIHdoaXRlICovXG4gICAgLS1saWdodC1ncmF5OiAgICAgICAgICAgICAgIHJnYigyNDEsMjQxLDI0MSk7XG4gICAgLS1zdGlja3ktbm90ZS15ZWxsb3c6ICAgICAgICNmZGY0YTQ7IC8qIFVzZWQgb25seSBmb3IgdGhlIGFubm90YXRpb25zIGluIHRoZSB0ZWFjaGVyIG1hbnVhbCwgb3Igc2ltaWxhciBmdXR1cmUgY29tcG9uZW50cyAqL1xuICAgIC0tdGVhbDogICAgICAgICAgICAgICAgICAgICAjMDA4NDcwOyAvKiBBIHNlY29uZGFyeSBhY2NlbnQgY29sb3IsIHVzZWQgZm9yIGFubm91bmNlbWVudCBhbmQgbWVzc2FnZSBiYWNrZ3JvdW5kcyBvbiB0aGUgbGFuZGluZyBwYWdlcyAqL1xuXG4gICAgLyogTmV1dHJhbCBhbmQgYWNjZW50IGNvbG9yIHZhcmlhYmxlcyAqL1xuXG4gICAgLS1ibGFjazogICAgICAjMDAwMDAwO1xuICAgIC0tdGV4dDogICAgICAgdmFyKC0tb3VyLXByaW1hcnktZGFyay1ncmF5KTtcbiAgICAtLWRhcmstZ3JheTogICM0YzRjNGM7IC8qIDcwJSBibGFjayAqL1xuICAgIC0tbWVkLWdyYXk6ICAgI2JmYmZiZjsgLyogMjUlIGJsYWNrICovXG4gICAgLS1saWdodC1ncmF5OiAjZWJlYmViOyAvKiA4JSBibGFjayAqL1xuICAgIC0td2hpdGU6ICAgICAgI2ZmZmZmZjtcbiAgICAtLWFjY2VudDogICAgIHZhcigtLWFhLW9yYW5nZSk7XG4gICAgLS1hY2NlbnQtbGFyZ2U6ICAgICB2YXIoLS1vdXItZ2xvYmFsbmF2LW9yYW5nZSk7XG4gICAgLS1hY2NlbnQtYWx0OiB2YXIoLS10ZWFsKTtcbiAgICAtLXdvcm1zeTogICAgICAgICAgICAgICAgICAgcmdiKDgxLCAxODcsIDExNCk7IC8qICM1MUJCNzIgKi9cbiAgICAtLXdvcm1zeS1hYTogICAgICAgICAgICAgICAgcmdiKDUyLCAxMzMsIDc4KTsgIC8qICMzNDg1NGUgKi9cbiAgICAtLXdvcm1zeS1hYS1sYXJnZTogICAgICAgICAgcmdiKDY2LCAxNjgsIDk4KTsgIC8qICM0MmE4NjIgKi9cblxufVxuIiwiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKlxuICogRm9udHNcbiAqXG4gKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbjpyb290IHtcbiAgLS1mb250LWZhbWlseS10ZXh0OiAnUm9ib3RvJywgJ1RyZWJ1Y2hldCBNUycsIFRyZWJ1Y2hldCwgVGFob21hLCBzYW5zLXNlcmlmOyAvKiBEZWZhdWx0IHRleHQsIEdsb2JhbCBOYXYsIEN1cnJpY3VsdW0gTmF2LCBCdXR0b25z4oCmIDQwMCw1MDAsNzAwIHdlaWdodCAqL1xuICAtLWZvbnQtZmFtaWx5LXRleHQtYWx0OiAnU291cmNlIFNhbnMgUHJvJywgc2Fucy1zZXJpZjsgLyogRGVmYXVsdCB0ZXh0IGZvciBpbmRleC4gNDAwLCA2MDAsIDcwMCB3ZWlnaHQgKi9cbiAgLS1mb250LWZhbWlseS1kaXNwbGF5OiBhZ2VuZGEtb25lLCBzYW5zLXNlcmlmOyAvKiBIZWFkaW5ncyDigJQgNjAwLCA3MDAgKi9cbn1cbiIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICpcbiAqIFNpemVzXG4gKlxuICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKiBGb250IGFuZCBGb3VuZGF0aW9uYWwgTW9kdWxhciBTaXplcyAqL1xuXG46cm9vdCB7XG4gIC0tYWxwaGE6ICAgICAgICAgICAgMi40cmVtOyAgICAgICAgICAgICAgICAvKiBFZy4gQmFubmVycyBhbmQgVGV4dCBUcmVhdGVkIExpa2UgTGFyZ2UgR3JhcGhpY3MgKi9cbiAgLS1iZXRhOiAgICAgICAgICAgICAxLjc4NHJlbTsgICAgICAgICAgICAgIC8qIEVnLiBIMmlzaCBIZWFkaW5ncyAqL1xuICAtLWdhbW1hOiAgICAgICAgICAgIDEuMnJlbTsgICAgICAgICAgICAgIC8qIEVnLiBIM2lzaCBIZWFkaW5ncyAqL1xuICAtLXJlbTogICAgICAgICAgICAgIDEwMCU7ICAgICAgICAgICAgICAgICAgLyogRWcuIEZvdW5kYXRpb24gZm9yIGFsbCB0eXBlLCBtYXJnaW4sIGFuZCBwYWRkaW5nIHNpemVzICovXG4gIC0tZGVsdGE6ICAgICAgICAgICAgMXJlbTsgICAgICAgICAgICAgICAgICAvKiBFZy4gSDRpc2ggSGVhZGluZ3MgKi9cbiAgLS1iYXNlOiAgICAgICAgICAgICAxcmVtOyAgICAgICAgICAgICAgICAgIC8qIEVnLiBCb2R5IGZvbnQgKi9cbiAgLS1lcHNpbG9uOiAgICAgICAgICAuOXJlbTsgICAgICAgICAgICAgICAgIC8qIEVnLiBTdGFuZGFyZHMgdGFncyAqL1xuICAtLXpldGE6ICAgICAgICAgICAgIC44MzNyZW07ICAgICAgICAgICAgICAgLyogRE8gTk9UIEVESVQg4oCUIFVzZWQgaW4gY3VycmljdWx1bSBuYXYgYW5kIGJyZWFkY3J1bWIgbmF2ICovXG4gIC0tZXRhOiAgICAgICAgICAgICAgLjc1cmVtOyAgICAgICAgICAgICAgICAvKiBSZXNlcnZlZCBmb3IgZmluZSBwcmludCBhbmQgaW5mb3JtYXRpb25hbGx5IGRlbnNlIGVsZW1lbnRzIGxpa2UgdGFibGVzICovXG5cbn1cblxuLyogQ29udGVudCBBcmVhIFJlbGF0ZWQgU2l6ZXMgKi9cblxuOnJvb3Qge1xuICAtLW1lYXN1cmU6IDQwcmVtO1xuICAtLWNvbnRlbnQtd2lkdGg6IDQ4cmVtO1xufVxuXG4vKiBWaWV3cG9ydCBXaWR0aCBWYXJpYWJsZXMgKi9cblxuOnJvb3Qge1xuXG4gIC0tYnAtbmFuby1taW51czogICAzMTlweDtcbiAgLS1icC1uYW5vOiAgICAgICAgIDMyMHB4O1xuICAtLWJwLW1pY3JvLW1pbnVzOiAgNDEwcHg7XG4gIC0tYnAtbWljcm86ICAgICAgICA0MTFweDtcbiAgLS1icC1taW4tbWludXM6ICAgIDUzNnB4O1xuICAtLWJwLW1pbjogICAgICAgICAgNTM3cHg7XG4gIC0tYnAtbWlkLW1pbnVzOiAgICA3NjdweDtcbiAgLS1icC1taWQ6ICAgICAgICAgIDc2OHB4O1xuICAtLWJwLW1lZ2EtbWludXM6ICAgMTAyM3B4O1xuICAtLWJwLW1lZ2E6ICAgICAgICAgMTAyNHB4O1xuICAtLWJwLW1heC1taW51czogICAgMTMxOXB4O1xuICAtLWJwLW1heDogICAgICAgICAgMTMyMHB4XG5cbn1cblxuLyogQ3VzdG9tIE1lZGlhIERlY2xhcmF0aW9ucyBmb3IgQnJlYWtwb2ludHMgKi9cblxuQGN1c3RvbS1tZWRpYSAtLWJwLW5hbm8tbWludXMgKG1heC13aWR0aDogMzE5cHgpO1xuQGN1c3RvbS1tZWRpYSAtLWJwLW5hbm8gKG1pbi13aWR0aDogMzIwcHgpO1xuQGN1c3RvbS1tZWRpYSAtLWJwLW1pY3JvLW1pbnVzIChtYXgtd2lkdGg6IDQxMHB4KTtcbkBjdXN0b20tbWVkaWEgLS1icC1taWNybyAobWluLXdpZHRoOiA0MTFweCk7XG5AY3VzdG9tLW1lZGlhIC0tYnAtbWluLW1pbnVzIChtYXgtd2lkdGg6IDUzNnB4KTtcbkBjdXN0b20tbWVkaWEgLS1icC1taW4gKG1pbi13aWR0aDogNTM3cHgpO1xuQGN1c3RvbS1tZWRpYSAtLWJwLW1pZC1taW51cyAobWF4LXdpZHRoOiA3NjdweCk7XG5AY3VzdG9tLW1lZGlhIC0tYnAtbWlkIChtaW4td2lkdGg6IDc2OHB4KTtcbkBjdXN0b20tbWVkaWEgLS1icC1tZWdhLW1pbnVzIChtYXgtd2lkdGg6IDEwMjNweCk7XG5AY3VzdG9tLW1lZGlhIC0tYnAtbWVnYSAobWluLXdpZHRoOiAxMDI0cHgpO1xuQGN1c3RvbS1tZWRpYSAtLWJwLW1heC1taW51cyAobWF4LXdpZHRoOiAxMzE5cHgpO1xuQGN1c3RvbS1tZWRpYSAtLWJwLW1heCAobWluLXdpZHRoOiAxMzIwcHgpO1xuIiwiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKlxuICogVFlQT0dSQVBIWVxuICpcbiAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuaHRtbCB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tcmVtKTtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZmFtaWx5LXRleHQpO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIHRleHQtc2l6ZS1hZGp1c3Q6IG5vbmU7XG5cbiAgLyogRmx1aWQgdHlwZSBzaXplIGZyb20gMTZweCB0byAyMHB4IGJldHdlZW4gLS1icC1taW4gYW5kIC0tYnAtbWF4IGJyZWFrcG9pbnRzICovXG5cbiAgQG1lZGlhICgtLWJwLW1pbikge1xuICAgICYge1xuICAgICAgZm9udC1zaXplOiAxZW07IC8qIDE2cHggYXQgMzIwcHggKi9cbiAgICAgIGZvbnQtc2l6ZTogY2FsYygxZW0gKyAoMjAgLSAxNikgKiAoKDEwMHZ3IC0gMzIwcHgpLygxMzIwIC0gMzIwKSkpO1xuICAgIH1cbiAgfVxuXG4gIEBtZWRpYSAoLS1icC1tYXgpIHtcbiAgICAmIHtcbiAgICAgIGZvbnQtc2l6ZTogY2FsYygyMGVtLzE2KTsgLyogMjBweCBhdCAxMzIwcHggKi9cbiAgICB9XG4gIH1cbn1cblxuYm9keSB7XG4gIGxpbmUtaGVpZ2h0OiAxLjM1O1xuICBjb2xvcjogdmFyKC0tdGV4dCk7XG5cbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG5cbiAgLyogRmx1aWQgbGluZS1oZWlnaHQgZnJvbSAxLjM1IHRvIDEuNDUgYmV0d2VlbiAkYnAtbWluIGFuZCAkYnAtbWF4IGJyZWFrcG9pbnRzICovXG5cbiAgQG1lZGlhICgtLWJwLW1pbikge1xuICAgICYge1xuICAgICAgbGluZS1oZWlnaHQ6IDEuMzU7IC8qIDEuMzUgYXQgMzIwcHggKi9cbiAgICAgIGxpbmUtaGVpZ2h0OiBjYWxjKDEuMzVlbSArICgxLjQ1IC0gMS4zNSkgKiAoKDEwMHZ3IC0gMzIwcHgpLygxMzIwIC0gMzIwKSkpO1xuICAgIH1cbiAgfVxuXG4gIEBtZWRpYSAoLS1icC1tYXgpIHtcbiAgICAmIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ1OyAvKiAxLjQ1IGF0IDEzMjBweCAqL1xuICAgIH1cbiAgfVxufVxuXG5hIHtcbiAgY29sb3I6IHZhcigtLXRleHQpO1xuICAmOmhvdmVyIHtcbiAgICAgY29sb3I6IHZhcigtLW91ci1nbG9iYWxuYXYtb3JhbmdlKTtcbiAgICAgdGV4dC1kZWNvcmF0aW9uLWNvbG9yOiBjb2xvcih2YXIoLS1vdXItcHJpbWFyeS1vcmFuZ2UpIGEoMjUlKSk7XG4gIH1cbn1cblxuc3Ryb25nLCBiIHtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLypcbiAgICAgSEVBRElORyBhbmQgVEVYVCBTSVpFU1xuKi9cblxuaDEsaDIsaDMsaDQsaDUsaDYge1xuICBoeXBoZW5zOiBub25lO1xufVxuXG4uaGVkLWFscGhhLFxuLmhlZC1iZXRhLFxuLmhlZC1nYW1tYSxcbi5oZWQtZGVsdGEsXG4uaGVkLWVwc2lsb24sXG4uaGVkLXpldGEsXG5bY2xhc3N8PWhlZC1zZXF1ZW5jZV0ge1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tYm90dG9tOiAuNWVtO1xuICBsaW5lLWhlaWdodDogMS4xO1xuICBwYWdlLWJyZWFrLWFmdGVyOiBhdm9pZDtcbiAgaHlwaGVuczogbm9uZTtcbn1cblxuLmhlZC1hbHBoYSxcbi5oZWQtYmV0YSxcbi5oZWQtZ2FtbWEsXG5bY2xhc3N8PWhlZC1zZXF1ZW5jZV0ge1xuICBtYXJnaW4tdG9wOiAzcmVtO1xufVxuXG4uaGVkLWRlbHRhLFxuLmhlZC1lcHNpbG9uLFxuLmhlZC16ZXRhIHtcbiAgbWFyZ2luLXRvcDogMnJlbTtcbn1cblxuW2NsYXNzKj1oZWQtXTpub3Qoc3BhbikgKyBbY2xhc3MqPWhlZC1dOm5vdChzcGFuKSB7XG4gIG1hcmdpbi10b3A6IDFyZW07XG59XG5cbi5oZWQtYWxwaGEge1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC1mYW1pbHktZGlzcGxheSk7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGZvbnQtc2l6ZTogdmFyKC0tYWxwaGEpO1xuICBjb2xvcjogdmFyKC0tZGVlcCk7XG59XG5cbi5oZWQtYmV0YSB7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWZhbWlseS1kaXNwbGF5KTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgZm9udC1zaXplOiB2YXIoLS1iZXRhKTtcbiAgY29sb3I6IHZhcigtLXByaW1hcnkpO1xufVxuXG4uaGVkLWdhbW1hIHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZmFtaWx5LWRpc3BsYXkpO1xuICBmb250LXdlaWdodDogNzAwO1xuICBmb250LXNpemU6IHZhcigtLWdhbW1hKTtcbiAgY29sb3I6IHZhcigtLXRleHQpO1xufVxuXG4uaGVkLWRlbHRhIHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZmFtaWx5LWRpc3BsYXkpO1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LXNpemU6IHZhcigtLWRlbHRhKTtcbiAgY29sb3I6IHZhcigtLXRleHQpO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xufVxuXG4uaGVkLWVwc2lsb24ge1xuICBmb250LXNpemU6IHZhcigtLWVwc2lsb24pO1xuICBmb250LXdlaWdodDogNjAwO1xuICBjb2xvcjogdmFyKC0tdGV4dCk7XG59XG5cbi5oZWQtemV0YSB7XG4gIGZvbnQtc2l6ZTogdmFyKC0temV0YSk7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGNvbG9yOiB2YXIoLS10ZXh0KTtcbn1cblxuLnRleHQtZXBzaWxvbiB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZXBzaWxvbik7XG59XG5cbi50ZXh0LXpldGEge1xuICBmb250LXNpemU6IHZhcigtLXpldGEpO1xufVxuXG4uaXMtdGV4dC1jb2xvciB7XG4gIGNvbG9yOiB2YXIoLS10ZXh0KTtcbn1cblxuLypcbiAgICAgUEFSQUdSQVBIU1xuKi9cblxucCB7XG4gIG1hcmdpbjogMCAwIDFyZW07XG4gIG9ycGhhbnM6IDI7XG4gIHdpZG93czogMjtcbn1cblxucDpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLypcbiAgICAgTElTVFMgQU5EIFZBUklBVElPTlNcbiovXG5cbnVsIHtcbiAgbWFyZ2luOiAxcmVtIDAgMXJlbSAxcmVtO1xuICBwYWRkaW5nOiAwO1xuICBvcnBoYW5zOiAyO1xuICB3aWRvd3M6IDI7XG59XG5cbnVsIHVsLFxub2wgb2wge1xuICBtYXJnaW4tdG9wOiAuNXJlbTtcbn1cblxubGkgPiBwICsgdWwge1xuICBtYXJnaW4tdG9wOiAtLjVyZW07XG59XG5cbm9sIHtcbiAgbWFyZ2luOiAxcmVtIDAgMXJlbSAxcmVtO1xuICBwYWRkaW5nOiAwO1xuICBvcnBoYW5zOiAyO1xuICB3aWRvd3M6IDI7XG59XG5cbmxpIHtcbiAgbWFyZ2luLWJvdHRvbTogLjVyZW07XG59XG5cbmxpOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4vKiBIZWxwZXJzICovXG5cbi5oLWhpZGUtY21zLWNvbnRlbnQtZHVyaW5nLWRldmVsb3BtZW50IHsgLyogQFRPRE8gZGVsZXRlIHJ1bGUgYWZ0ZXIgZGV2ZWxvcG1lbnQgKi9cbiAgZGlzcGxheTogbm9uZTtcbn1cblxuQG1lZGlhICgtLWJwLW1pbikge1xuICAuaC1ub2JyIHtcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIH1cbn1cblxuLmgtdXJsLXdyYXAgeyAvKiBhbGxvdyBVUkxzIGRpc3BsYXllZCBpbmxpbmUgdG8gd3JhcCAqL1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG59XG5cbi5oLXNob3ctaW5saW5lLWJwLW1pbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIEBtZWRpYSAoLS1icC1taW4pIHtcbiAgICAmIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICB9XG4gIH1cbn1cblxuLmgtZmx1c2gtdG9wIHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgcGFkZGluZy10b3A6IDA7XG59XG5cbi5oLWZsdXNoLWJvdHRvbSB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xufVxuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICpcbiAqIEJVVFRPTlNcbiAqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi5jLWJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWFjY2VudCk7XG4gIGJvcmRlcjogMC4wNjI1cmVtIHNvbGlkIHZhcigtLWFjY2VudCk7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjVyZW07XG4gIGNvbG9yOiB2YXIoLS13aGl0ZSk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXdlaWdodDogNTAwO1xuICBoZWlnaHQ6IDIuMzc1cmVtO1xuICBsaW5lLWhlaWdodDogMi4zNzVyZW07XG4gIHBhZGRpbmc6IDAgMS44NzVyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBhcHBlYXJhbmNlOiBub25lO1xuICBtYXJnaW46IC4yNXJlbSAuNXJlbSAuMjVyZW0gMDtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBAbWVkaWEgKC0tYnAtbWlkKSB7XG4gICAgJiB7XG4gICAgICBmb250LXNpemU6IHZhcigtLWVwc2lsb24pO1xuICAgIH1cbiAgfVxufVxuXG4uYy1idXR0b25fc21hbGwge1xuICBoZWlnaHQ6IDIuMzc1ZW07XG4gIGxpbmUtaGVpZ2h0OiAyLjM3NWVtO1xuICBwYWRkaW5nOiAwIDEuODc1ZW07XG4gIGZvbnQtc2l6ZTogdmFyKC0tZXRhKTtcbn1cblxuLmMtYnV0dG9uOmZpcnN0LW9mLXR5cGUge1xuICBtYXJnaW4tbGVmdDogMDtcbn1cblxuLmMtYnV0dG9uOmZvY3VzLFxuLmMtYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYWNjZW50LWxhcmdlKTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1hY2NlbnQtbGFyZ2UpO1xuICBjb2xvcjogI2ZmZjtcbiAgb3V0bGluZTogMDtcbn1cblxuLmMtYnV0dG9uW2Rpc2FibGVkXSB7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgb3BhY2l0eTogLjQ7XG59XG5cbi5jLWJ1dHRvbltkaXNhYmxlZF06Zm9jdXMsXG4uYy1idXR0b25bZGlzYWJsZWRdOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYWNjZW50KTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1hY2NlbnQpO1xufVxuXG4uYy1idXR0b25fYmVlZnkge1xuICBwYWRkaW5nOiAuMTI1cmVtIDIuNXJlbTtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4uYy1idXR0b25fd29ybXN5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0td29ybXN5LWFhKTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS13b3Jtc3ktYWEpO1xufVxuXG4uYy1idXR0b25fd29ybXN5OmZvY3VzLFxuLmMtYnV0dG9uX3dvcm1zeTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXdvcm1zeS1hYS1sYXJnZSk7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0td29ybXN5LWFhLWxhcmdlKTtcbn1cblxuLmMtYnV0dG9uX3dvcm1zeS1ncmFkZSB7XG4gIG1pbi13aWR0aDogN3JlbTtcbiAgcGFkZGluZy1sZWZ0OiAxcmVtO1xuICBwYWRkaW5nLXJpZ2h0OiAxcmVtO1xufVxuXG4uYy1idXR0b25fcmV2ZXJzZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXdoaXRlKTtcbiAgYm9yZGVyOiAwLjA2MjVyZW0gc29saWQgdmFyKC0td2hpdGUpO1xuICBjb2xvcjogdmFyKC0tYWNjZW50KTtcbn1cblxuLmMtYnV0dG9uX3JldmVyc2U6Zm9jdXMsXG4uYy1idXR0b25fcmV2ZXJzZTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXdoaXRlKTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS13aGl0ZSk7XG4gIGNvbG9yOiB2YXIoLS1hY2NlbnQtbGFyZ2UpO1xufVxuXG4uYy1idXR0b25fb3V0bGluZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogdmFyKC0tYWNjZW50KTtcbn1cblxuLmMtYnV0dG9uX291dGxpbmU6Zm9jdXMsXG4uYy1idXR0b25fb3V0bGluZTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItY29sb3I6IHZhcigtLWFjY2VudC1sYXJnZSk7XG4gIGNvbG9yOiB2YXIoLS1hY2NlbnQtbGFyZ2UpO1xufVxuXG4uYy1idXR0b24tb3V0bGluZVtkaXNhYmxlZF06Zm9jdXMsXG4uYy1idXR0b24tb3V0bGluZVtkaXNhYmxlZF06aG92ZXIge1xuICBib3JkZXItY29sb3I6IGluaGVyaXQ7XG4gIGNvbG9yOiB2YXIoLS1hY2NlbnQpO1xufVxuXG4uYy1idXR0b25fb3V0bGluZS1yZXZlcnNlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tbGlnaHQtZ3JheSk7XG4gIGNvbG9yOiB2YXIoLS1saWdodC1ncmF5KTtcbn1cblxuLmMtYnV0dG9uX291dGxpbmUtcmV2ZXJzZTpmb2N1cyxcbi5jLWJ1dHRvbl9vdXRsaW5lLXJldmVyc2U6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS13aGl0ZSk7XG4gIGNvbG9yOiB2YXIoLS13aGl0ZSk7XG59XG5cbi5jLWJ1dHRvbi1vdXRsaW5lLXJldmVyc2VbZGlzYWJsZWRdOmZvY3VzLFxuLmMtYnV0dG9uLW91dGxpbmUtcmV2ZXJzZVtkaXNhYmxlZF06aG92ZXIge1xuICBib3JkZXItY29sb3I6IGluaGVyaXQ7XG4gIGNvbG9yOiB2YXIoLS1saWdodC1ncmF5KTtcbn1cblxuLmMtYnV0dG9uX2NsZWFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiB2YXIoLS1hY2NlbnQpO1xufVxuXG4uYy1idXR0b25fY2xlYXI6Zm9jdXMsXG4uYy1idXR0b25fY2xlYXI6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHZhcigtLWFjY2VudC1sYXJnZSk7XG59XG5cbi5jLWJ1dHRvbl9jbGVhcltkaXNhYmxlZF06Zm9jdXMsXG4uYy1idXR0b25fY2xlYXJbZGlzYWJsZWRdOmhvdmVyIHtcbiAgY29sb3I6IHZhcigtLWFjY2VudCk7XG59XG5cbi5jLWJ1dHRvbl9jbGVhci1yZXZlcnNlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiB2YXIoLS1saWdodC1ncmF5KTtcbn1cblxuLmMtYnV0dG9uX2NsZWFyLXJldmVyc2U6Zm9jdXMsXG4uYy1idXR0b25fY2xlYXItcmV2ZXJzZTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogdmFyKC0td2hpdGUpO1xufVxuXG4uYy1idXR0b25fY2xlYXItcmV2ZXJzZVtkaXNhYmxlZF06Zm9jdXMsXG4uYy1idXR0b25fY2xlYXItcmV2ZXJzZVtkaXNhYmxlZF06aG92ZXIge1xuICBjb2xvcjogdmFyKC0tbGlnaHQtZ3JheSk7XG59XG5cbi5jLWJ1dHRvbiAuYy1pY29uIHtcbiAgbWFyZ2luLXJpZ2h0OiAuNWNoO1xuICBmb250LXNpemU6IDEuMmVtO1xuICBtYXJnaW4tbGVmdDogLTFjaDtcbn1cblxuLmMtYnV0dG9uLmhhcy1pY29uLWJlZm9yZTo6YmVmb3JlLFxuLmMtYnV0dG9uLmhhcy1pY29uLWFmdGVyOjphZnRlciB7XG4gIGZvbnQtc2l6ZTogMS4xZW07XG4gIGxpbmUtaGVpZ2h0OiAwO1xufVxuIiwiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKlxuICogTEFZT1VUXG4gKlxuICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5ib2R5IHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBtaW4taGVpZ2h0OiAxMDB2aDtcbn1cblxuLmwtaGVhZGVyIHtcblxufVxuXG4ubC1oZWFkZXJfYm9va3dvcm1zIHtcbiAgZmxleDogMSAwIGF1dG87XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmwtaGVhZGVyX2VsLWs4IHtcbiAgZmxleDogMSAwIGF1dG87XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmwtaGVhZGVyX2VsLWs1LTIwMjUge1xuICBmbGV4OiAxIDAgYXV0bztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4ubC1oZWFkZXJfZWwtc2tpbGxzLWJsb2NrLTIwMjQge1xuICBmbGV4OiAxIDAgYXV0bztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4ubC1iYW5uZXJfX2lubmVyLWNvbHVtbnMge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIEBtZWRpYSAoLS1icC1taWQpIHtcbiAgICAmIHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgfVxuICB9XG59XG5cbi5sLWJhbm5lcl9faW5uZXItbGVmdC1jb2x1bW4ge1xuICBAbWVkaWEgKC0tYnAtbWlkKSB7XG4gICAgJiB7XG4gICAgICAgIGZsZXg6IDEgMCA0NSU7XG4gICAgICAgIHdpZHRoOiA0NSU7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMnJlbTtcbiAgICB9XG4gIH1cbn1cblxuLmwtYmFubmVyX19pbm5lci1sZWZ0LWNvbHVtbiBwIHtcbiAgbWFyZ2luOiAxcmVtIDA7XG4gICY6Zmlyc3QtY2hpbGQge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gIH1cbiAgQG1lZGlhICgtLWJwLW1pZCkge1xuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgfVxufVxuXG4ubC1iYW5uZXJfX2lubmVyLXJpZ2h0LWNvbHVtbiB7XG4gIHdpZHRoOiAxMDAlO1xuICBAbWVkaWEgKC0tYnAtbWlkKSB7XG4gICAgJiB7XG4gICAgICBmbGV4OiAxIDAgNDUlO1xuICAgICAgd2lkdGg6IDQ1JTtcbiAgICB9XG4gIH1cbn1cblxuLmwtbWFpbiB7XG4gIHBhZGRpbmc6IDFyZW0gMXJlbSAycmVtO1xufVxuXG4ubC1jb250ZW50IHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogdmFyKC0tY29udGVudC13aWR0aCk7XG4gIG1hcmdpbjogMXJlbSBhdXRvO1xufVxuXG4ubC1jb250ZW50X2dvbGRlbi1jb2x1bW5zIHtcbiAgQG1lZGlhICgtLWJwLW1pbikge1xuICAgICYge1xuICAgICAgbWFyZ2luOiAycmVtIGF1dG87XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgfVxuICB9XG4gIEBtZWRpYSAoLS1icC1taWQpIHtcbiAgICAmIHtcbiAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgICAgbWFyZ2luOiAzcmVtIGF1dG87XG4gICAgfVxuICB9XG59XG5cbi5sLWNvbnRlbnRfZ29sZGVuLWNvbHVtbnMgLmMtYnV0dG9uIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLmwtY29udGVudF9fZ29sZGVuLWNvbHVtbi1hIHtcbiAgJiA+ICo6Zmlyc3QtY2hpbGQge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gIH1cbiAgQG1lZGlhICgtLWJwLW1pbikge1xuICAgICYge1xuICAgICAgZmxleDogMSAwIDQ1JTtcbiAgICAgIHdpZHRoOiA0NSU7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDJyZW07XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB9XG4gICAgJiA+ICo6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tdG9wOiBhdXRvO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cbn1cblxuLmwtY29udGVudF9fZ29sZGVuLWNvbHVtbi1iIHtcbiAgQG1lZGlhICgtLWJwLW1pbikge1xuICAgICYge1xuICAgICAgZmxleDogMSAwIDQ1JTtcbiAgICAgIHdpZHRoOiA0NSU7XG4gICAgfVxuICAgICYgPiAqOmZpcnN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgfVxuICB9XG59XG5cbi5sLWZvb3RlciB7XG4gIG1hcmdpbi10b3A6IGF1dG87XG4gIGJhY2tncm91bmQ6IHZhcigtLW91ci1wcmltYXJ5LWRhcmstZ3JheSk7XG59XG5cbi5sLWxpc3Qtb2YtYnV0dG9ucyB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xufVxuXG4ubC1saXN0LW9mLWJ1dHRvbnMgbGkge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4uaXMtaGlkZGVuIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmwtaW5kZXgtd3JhcHBlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWFjY2VudC1sYXJnZSk7XG4gIGJhY2tncm91bmQ6XG4gICAgdXJsKCdmb3Jtcy90ZXh0dXJlLXJlZ2Zvcm0td2hpdGUxNS5zdmcnKSxcbiAgICBsaW5lYXItZ3JhZGllbnQodmFyKC0tYWNjZW50LWxhcmdlKSAwJSwgdmFyKC0tYWNjZW50LWxhcmdlKSAxOC43NXJlbSwgdmFyKC0td2hpdGUpIDE4Ljc1cmVtLCAgdmFyKC0td2hpdGUpIDEwMCUpO1xuICBtaW4taGVpZ2h0OiAyMHJlbTtcbiAgYmFja2dyb3VuZC1zaXplOlxuICAgIDY3cmVtLFxuICAgIDEwMCU7XG4gIGJhY2tncm91bmQtcmVwZWF0OlxuICAgIHJlcGVhdC14LFxuICAgIG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1ibGVuZC1tb2RlOlxuICAgIG92ZXJsYXksXG4gICAgbm9ybWFsO1xufVxuIiwiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKlxuICogQkFOTkVSXG4gKlxuICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4uYy1iYW5uZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIxLDExLDczLDAuODEpOyAvKiAjMTUwQjQ5ICovXG4gIGNvbG9yOiB2YXIoLS13aGl0ZSk7XG4gIHBhZGRpbmc6IDRyZW0gMXJlbTtcbn1cblxuLmMtYmFubmVyX29kZWxsLWhzLWVsYSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNDcsNTUsMTE4LDAuODEpOyAvKiAjMmYzNzc2Ki9cbiAgYmFja2dyb3VuZC1pbWFnZTpcbiAgICBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHJnYmEoNDcsNTUsMTE4LDAuODEpIDAlLCByZ2JhKDQ3LDU1LDExOCwwLjgxKSAxMDAlKSwgLyogU2V0IGFzIGEgZmxhdCwgbm9uLWNoYW5naW5nIGdyYWRpZW50IGluIG9yZGVyIHRvIGxheWVyIHRoaXMgY29sb3IgbGlrZSBhbiBpbWFnZSAqL1xuICAgIHVybCgncHVibGljYXRpb25zL29kZWxsLWhzLWVsYV9iYWNrZ3JvdW5kNTBRLmpwZycpO1xuICBiYWNrZ3JvdW5kLXNpemU6XG4gICAgY292ZXIsXG4gICAgY292ZXI7XG4gIHBhZGRpbmc6IDRyZW0gMXJlbSA2cmVtOyAvKiBCZWVmeSBwYWRkaW5nIHNpbmNlIHRoZXJlIGlzIHNvIGxpdHRsZSBpbiB0aGUgYmFubmVyLiAqL1xufVxuXG4uYy1iYW5uZXJfY2EtazgtbWF0aCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjEsMTEsNzMsMC44MSk7IC8qICMxNTBCNDkgKi9cbiAgYmFja2dyb3VuZC1pbWFnZTpcbiAgICBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHJnYmEoMjEsMTEsNzMsMC44MSkgMCUsIHJnYmEoMjEsMTEsNzMsMC44MSkgMTAwJSksIC8qIFNldCBhcyBhIGZsYXQsIG5vbi1jaGFuZ2luZyBncmFkaWVudCBpbiBvcmRlciB0byBsYXllciB0aGlzIGNvbG9yIGxpa2UgYW4gaW1hZ2UgKi9cbiAgICB1cmwoJ3B1YmxpY2F0aW9ucy9jYS1rOC1tYXRoX2JhY2tncm91bmQuanBnJyk7XG4gIGJhY2tncm91bmQtc2l6ZTpcbiAgICBjb3ZlcixcbiAgICBjb3Zlcjtcbn1cbi5jLWJhbm5lcl9vdXI2LThtYXRoIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMSwxMSw3MywwLjgxKTsgLyogIzE1MEI0OSAqL1xuICBiYWNrZ3JvdW5kLWltYWdlOlxuICAgIGxpbmVhci1ncmFkaWVudCg5MGRlZywgcmdiYSgyMSwxMSw3MywwLjgxKSAwJSwgcmdiYSgyMSwxMSw3MywwLjgxKSAxMDAlKSwgLyogU2V0IGFzIGEgZmxhdCwgbm9uLWNoYW5naW5nIGdyYWRpZW50IGluIG9yZGVyIHRvIGxheWVyIHRoaXMgY29sb3IgbGlrZSBhbiBpbWFnZSAqL1xuICAgIHVybCgncHVibGljYXRpb25zL291cjYtOG1hdGhfYmFja2dyb3VuZDUwUS5qcGcnKTtcbiAgYmFja2dyb3VuZC1zaXplOlxuICAgIGNvdmVyLFxuICAgIGNvdmVyO1xufVxuXG4uYy1iYW5uZXJfb3VyLWhzLW1hdGgge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIxLDExLDczLDAuODEpOyAvKiAjMTUwQjQ5ICovXG4gIGJhY2tncm91bmQtaW1hZ2U6XG4gICAgbGluZWFyLWdyYWRpZW50KDkwZGVnLCByZ2JhKDIxLDExLDczLDAuODEpIDAlLCByZ2JhKDIxLDExLDczLDAuODEpIDEwMCUpLCAvKiBTZXQgYXMgYSBmbGF0LCBub24tY2hhbmdpbmcgZ3JhZGllbnQgaW4gb3JkZXIgdG8gbGF5ZXIgdGhpcyBjb2xvciBsaWtlIGFuIGltYWdlICovXG4gICAgdXJsKCdwdWJsaWNhdGlvbnMvb3VyLWhzLW1hdGgtYWdhX2JhY2tncm91bmQyNVEuanBnJyk7XG4gIGJhY2tncm91bmQtc2l6ZTpcbiAgICBjb3ZlcixcbiAgICBjb3Zlcjtcbn1cblxuLmMtYmFubmVyX291ci1ocy1tYXRoLXBpbG90LXBsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMSwxMSw3MywwLjgxKTsgLyogIzE1MEI0OSAqL1xuICBiYWNrZ3JvdW5kLWltYWdlOlxuICAgIGxpbmVhci1ncmFkaWVudCg5MGRlZywgcmdiYSgyMSwxMSw3MywwLjgxKSAwJSwgcmdiYSgyMSwxMSw3MywwLjgxKSAxMDAlKSwgLyogU2V0IGFzIGEgZmxhdCwgbm9uLWNoYW5naW5nIGdyYWRpZW50IGluIG9yZGVyIHRvIGxheWVyIHRoaXMgY29sb3IgbGlrZSBhbiBpbWFnZSAqL1xuICAgIHVybCgncHVibGljYXRpb25zL291ci1ocy1tYXRoLU1WUFBpbG90X0xhbmRpbmdQYWdlX0ltYWdlNTBRLmpwZycpO1xuICBiYWNrZ3JvdW5kLXNpemU6XG4gICAgY292ZXIsXG4gICAgY292ZXI7XG59XG5cbi5jLWJhbm5lcl9vdXItaHMtbWF0aC1uYyB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjEsMTEsNzMsMC44MSk7IC8qICMxNTBCNDkgKi9cbiAgYmFja2dyb3VuZC1pbWFnZTpcbiAgICBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHJnYmEoMjEsMTEsNzMsMC44MSkgMCUsIHJnYmEoMjEsMTEsNzMsMC44MSkgMTAwJSksIC8qIFNldCBhcyBhIGZsYXQsIG5vbi1jaGFuZ2luZyBncmFkaWVudCBpbiBvcmRlciB0byBsYXllciB0aGlzIGNvbG9yIGxpa2UgYW4gaW1hZ2UgKi9cbiAgICB1cmwoJ3B1YmxpY2F0aW9ucy9vdXItaHMtbWF0aC1uY19iYWNrZ3JvdW5kMjVRLmpwZycpO1xuICBiYWNrZ3JvdW5kLXNpemU6XG4gICAgY292ZXIsXG4gICAgY292ZXI7XG59XG5cbi5jLWJhbm5lcl9vdXItazUtbWF0aCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjEsMTEsNzMsMC44MSk7IC8qICMxNTBCNDkgKi9cbiAgYmFja2dyb3VuZC1pbWFnZTpcbiAgICBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHJnYmEoMjEsMTEsNzMsMC44MSkgMCUsIHJnYmEoMjEsMTEsNzMsMC44MSkgMTAwJSksIC8qIFNldCBhcyBhIGZsYXQsIG5vbi1jaGFuZ2luZyBncmFkaWVudCBpbiBvcmRlciB0byBsYXllciB0aGlzIGNvbG9yIGxpa2UgYW4gaW1hZ2UgKi9cbiAgICB1cmwoJ3B1YmxpY2F0aW9ucy9vdXJtYXRoLWs1X2JhY2tncm91bmRfb3B0aW1pemVkLnN2ZycpO1xuICBiYWNrZ3JvdW5kLXNpemU6XG4gICAgY292ZXIsXG4gICAgY292ZXI7XG59XG5cbi5jLWJhbm5lcl9rOC1tYXRoLXBpbG90LXBsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMSwxMSw3MywwLjgxKTsgLyogIzE1MEI0OSAqL1xuICBiYWNrZ3JvdW5kLWltYWdlOlxuICAgIGxpbmVhci1ncmFkaWVudCg5MGRlZywgcmdiYSgyMSwxMSw3MywwLjgxKSAwJSwgcmdiYSgyMSwxMSw3MywwLjgxKSAxMDAlKSwgLyogU2V0IGFzIGEgZmxhdCwgbm9uLWNoYW5naW5nIGdyYWRpZW50IGluIG9yZGVyIHRvIGxheWVyIHRoaXMgY29sb3IgbGlrZSBhbiBpbWFnZSAqL1xuICAgIHVybCgncHVibGljYXRpb25zL291cm1hdGgtazVfYmFja2dyb3VuZF9vcHRpbWl6ZWQuc3ZnJyk7XG4gIGJhY2tncm91bmQtc2l6ZTpcbiAgICBjb3ZlcixcbiAgICBjb3Zlcjtcbn1cblxuLmMtYmFubmVyX2Jvb2t3b3JtcyB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTcsNjUsNjUsMC44MSk7IC8qICMxMTQxNDEgKi9cbiAgYmFja2dyb3VuZC1pbWFnZTpcbiAgICBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHJnYmEoMTcsNjUsNjUsMC44MSkgMCUsIHJnYmEoMTcsNjUsNjUsMC44MSkgMTAwJSksIC8qIFNldCBhcyBhIGZsYXQsIG5vbi1jaGFuZ2luZyBncmFkaWVudCBpbiBvcmRlciB0byBsYXllciB0aGlzIGNvbG9yIGxpa2UgYW4gaW1hZ2UgKi9cbiAgICB1cmwoJ3B1YmxpY2F0aW9ucy9ib29rd29ybXNfYmFja2dyb3VuZDUwUV8yMDIyLmpwZycpO1xuICBiYWNrZ3JvdW5kLXNpemU6XG4gICAgY292ZXIsXG4gICAgY292ZXI7XG59XG5cbi5jLWJhbm5lcl9ib29rd29ybXMtcGlsb3QtcGwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDE3LDY1LDY1LDAuODEpOyAvKiAjMTE0MTQxICovXG4gIGJhY2tncm91bmQtaW1hZ2U6XG4gICAgbGluZWFyLWdyYWRpZW50KDkwZGVnLCByZ2JhKDE3LDY1LDY1LDAuODEpIDAlLCByZ2JhKDE3LDY1LDY1LDAuODEpIDEwMCUpLCAvKiBTZXQgYXMgYSBmbGF0LCBub24tY2hhbmdpbmcgZ3JhZGllbnQgaW4gb3JkZXIgdG8gbGF5ZXIgdGhpcyBjb2xvciBsaWtlIGFuIGltYWdlICovXG4gICAgdXJsKCdwdWJsaWNhdGlvbnMvYm9va3dvcm1zLXBpbG90LXBsLWxhbmRpbmctcGFnZS1iYWNrZ3JvdW5kNTBRLmpwZycpO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtc2l6ZTpcbiAgICBjb3ZlcixcbiAgICBjb3Zlcjtcbn1cblxuLmMtYmFubmVyX2J3LWRpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0td29ybXN5KTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdwdWJsaWNhdGlvbnMvYnctcGxfYmFja2dyb3VuZDUwUS5qcGcnKTtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgY29sb3I6IHZhcigtLXRleHQpO1xuICBib3gtc2hhZG93OlxuICAgIGluc2V0IDAgLjEyNXJlbSAwIDAgdmFyKC0td29ybXN5KSxcbiAgICBpbnNldCAwIC0wLjEyNXJlbSAwIDAgdmFyKC0td29ybXN5KTtcbn1cblxuLmMtYmFubmVyX2J3LXBsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0td29ybXN5KTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdwdWJsaWNhdGlvbnMvYnctcGxfYmFja2dyb3VuZDUwUS5qcGcnKTtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgY29sb3I6IHZhcigtLXRleHQpO1xuICBib3gtc2hhZG93OlxuICAgIGluc2V0IDAgLjEyNXJlbSAwIDAgdmFyKC0td29ybXN5KSxcbiAgICBpbnNldCAwIC0wLjEyNXJlbSAwIDAgdmFyKC0td29ybXN5KTtcbn1cblxuLmMtYmFubmVyX2VsLWs4IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdGV4dCwgcmdiKDY5LDUzLDU0KSk7XG4gIGJhY2tncm91bmQtaW1hZ2U6XG4gICAgbGluZWFyLWdyYWRpZW50KDkwZGVnLCByZ2JhKDY5LDUzLDU0LDAuODUpIDAlLCByZ2JhKDY5LDUzLDU0LDAuODUpIDEwMCUpLCAvKiBTZXQgYXMgYSBmbGF0LCBub24tY2hhbmdpbmcgZ3JhZGllbnQgaW4gb3JkZXIgdG8gbGF5ZXIgdGhpcyBjb2xvciBsaWtlIGFuIGltYWdlIC0gQ29sb3JzIGluIGdyYWRpZW50IGFyZSBSR0JBIGVxdWl2YWxlbnRzIG9mIHZhcigtLXRleHQpICsgODUlIEFscGhhICovXG4gICAgdXJsKCdwdWJsaWNhdGlvbnMvZWwtazhfYmFja2dyb3VuZDUwUS5qcGcnKTtcbiAgYmFja2dyb3VuZC1zaXplOlxuICAgIGNvdmVyLFxuICAgIGNvdmVyO1xuICBiYWNrZ3JvdW5kLWJsZW5kLW1vZGU6XG4gICAgbm9ybWFsLFxuICAgIG5vcm1hbDtcbn1cblxuLmMtYmFubmVyX2VsLWs1LTIwMjUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10ZXh0LCByZ2IoNjksNTMsNTQpKTtcbiAgYmFja2dyb3VuZC1pbWFnZTpcbiAgICBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHJnYmEoNjksNTMsNTQsMC44NSkgMCUsIHJnYmEoNjksNTMsNTQsMC44NSkgMTAwJSksIC8qIFNldCBhcyBhIGZsYXQsIG5vbi1jaGFuZ2luZyBncmFkaWVudCBpbiBvcmRlciB0byBsYXllciB0aGlzIGNvbG9yIGxpa2UgYW4gaW1hZ2UgLSBDb2xvcnMgaW4gZ3JhZGllbnQgYXJlIFJHQkEgZXF1aXZhbGVudHMgb2YgdmFyKC0tdGV4dCkgKyA4NSUgQWxwaGEgKi9cbiAgICB1cmwoJ3B1YmxpY2F0aW9ucy9lbC1rNS0yMDI1X2JhY2tncm91bmQuanBnJyk7XG4gIGJhY2tncm91bmQtc2l6ZTpcbiAgICBjb3ZlcixcbiAgICBjb3ZlcjtcbiAgYmFja2dyb3VuZC1ibGVuZC1tb2RlOlxuICAgIG5vcm1hbCxcbiAgICBub3JtYWw7XG59XG5cbi5jLWJhbm5lcl9lbC1waWxvdC1wbCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRleHQsIHJnYig2OSw1Myw1NCkpO1xuICBiYWNrZ3JvdW5kLWltYWdlOlxuICAgIGxpbmVhci1ncmFkaWVudCg5MGRlZywgcmdiYSg2OSw1Myw1NCwwLjg1KSAwJSwgcmdiYSg2OSw1Myw1NCwwLjg1KSAxMDAlKSwgLyogU2V0IGFzIGEgZmxhdCwgbm9uLWNoYW5naW5nIGdyYWRpZW50IGluIG9yZGVyIHRvIGxheWVyIHRoaXMgY29sb3IgbGlrZSBhbiBpbWFnZSAtIENvbG9ycyBpbiBncmFkaWVudCBhcmUgUkdCQSBlcXVpdmFsZW50cyBvZiB2YXIoLS10ZXh0KSArIDg1JSBBbHBoYSAqL1xuICAgIHVybCgncHVibGljYXRpb25zL2VsLWs4X2JhY2tncm91bmQ1MFEuanBnJyk7XG4gIGJhY2tncm91bmQtc2l6ZTpcbiAgICBjb3ZlcixcbiAgICBjb3ZlcjtcbiAgYmFja2dyb3VuZC1ibGVuZC1tb2RlOlxuICAgIG5vcm1hbCxcbiAgICBub3JtYWw7XG59XG5cbi5jLWJhbm5lcl9lbC1za2lsbHMtYmxvY2stMjAyNCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRleHQsIHJnYig2OSw1Myw1NCkpO1xuICBiYWNrZ3JvdW5kLWltYWdlOlxuICAgIGxpbmVhci1ncmFkaWVudCg5MGRlZywgcmdiYSg2OSw1Myw1NCwwLjg1KSAwJSwgcmdiYSg2OSw1Myw1NCwwLjg1KSAxMDAlKSwgLyogU2V0IGFzIGEgZmxhdCwgbm9uLWNoYW5naW5nIGdyYWRpZW50IGluIG9yZGVyIHRvIGxheWVyIHRoaXMgY29sb3IgbGlrZSBhbiBpbWFnZSAtIENvbG9ycyBpbiBncmFkaWVudCBhcmUgUkdCQSBlcXVpdmFsZW50cyBvZiB2YXIoLS10ZXh0KSArIDg1JSBBbHBoYSAqL1xuICAgIHVybCgncHVibGljYXRpb25zL2VsLXNraWxscy1ibG9jay0yMDI0LWJhY2tncm91bmQuanBnJyk7XG4gIGJhY2tncm91bmQtc2l6ZTpcbiAgICBjb3ZlcixcbiAgICBjb3ZlcjtcbiAgYmFja2dyb3VuZC1ibGVuZC1tb2RlOlxuICAgIG5vcm1hbCxcbiAgICBub3JtYWw7XG59XG5cbi5jLWJhbm5lciBbY2xhc3NePVwiaGVkXCJdIHtcbiAgY29sb3I6IHZhcigtLXdoaXRlKTtcbiAgbWFyZ2luLXRvcDogMDtcbn1cblxuLmMtYmFubmVyX19pbm5lciB7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBtYXgtd2lkdGg6IHZhcigtLWNvbnRlbnQtd2lkdGgpO1xufVxuXG4uYy1iYW5uZXJfX2RlayB7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWZhbWlseS1kaXNwbGF5KTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgZm9udC1zaXplOiB2YXIoLS1nYW1tYSk7XG4gIGxpbmUtaGVpZ2h0OiAxLjE7XG59XG5cbi5jLWJhbm5lcl9fZGVrIGEge1xuICBjb2xvcjogdmFyKC0td2hpdGUpO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1saWdodC1ncmF5KTtcbn1cblxuLmMtYmFubmVyX19kZWsgYTpob3ZlciB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0td2hpdGUpO1xufVxuXG4uYy1iYW5uZXJfX2hlZCB7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWZhbWlseS1kaXNwbGF5KTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgZm9udC1zaXplOiB2YXIoLS1hbHBoYSk7XG4gIGxpbmUtaGVpZ2h0OiAxO1xufVxuXG4uYy1iYW5uZXJfYnctcGwgLmMtYmFubmVyX19oZWQge1xuICBjb2xvcjogdmFyKC0td29ybXN5LWFhKTtcbn1cblxuLmMtYmFubmVyX19sZWRlIGEsXG4uYy1iYW5uZXJfX2ZpbmVwcmludCBhIHtcbiAgY29sb3I6IHZhcigtLXdoaXRlKTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tbGlnaHQtZ3JheSk7XG59XG5cbi5jLWJhbm5lcl9fbGVkZSBhOmhvdmVyLFxuLmMtYmFubmVyX19maW5lcHJpbnQgYTpob3ZlciB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0td2hpdGUpO1xufVxuXG4uYy1iYW5uZXJfX2Zvcm0ge1xufVxuXG4uYy1iYW5uZXJfX2Nob29zZXItZ3JvdXA6Zmlyc3Qtb2YtdHlwZSB7XG4gIG1hcmdpbi10b3A6IDMuNXJlbTtcbn1cblxuLmMtYmFubmVyX19jaG9vc2VyLWdyb3VwLmlzLWRpc2FibGVkLFxuLmMtYmFubmVyX19hY2tub3dsZWRnbWVudC5pcy1kaXNhYmxlZCB7XG4gIG9wYWNpdHk6IC40O1xufVxuXG4uYy1iYW5uZXJfX2Nob29zZXItZ3JvdXAuaXMtZGlzYWJsZWQgLmMtYnV0dG9uX291dGxpbmUtcmV2ZXJzZTpmb2N1cyxcbi5jLWJhbm5lcl9fY2hvb3Nlci1ncm91cC5pcy1kaXNhYmxlZCAuYy1idXR0b25fb3V0bGluZS1yZXZlcnNlOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tbGlnaHQtZ3JheSk7XG4gIGNvbG9yOiB2YXIoLS1saWdodC1ncmF5KTtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4vKiBDb250YWluZXIgZm9yIGEgY2hlY2tib3ggKyBsYWJlbCBwYWlyICovXG4uYy1iYW5uZXJfX2Fja25vd2xlZGdtZW50IHtcbiAgbWFyZ2luLXRvcDogMXJlbTtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcbiAgZ2FwOiAwLjVlbTtcbn1cblxuLmMtYmFubmVyX19sYWJlbCB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8qIE9mZi1zY3JlZW4gcmFkaW8gYnV0dG9uIHN0eWxlcyBhbmQgY29udGV4dHMgKi9cblxuLmMtYmFubmVyX19yYWRpbyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTEwcmVtO1xufVxuXG4uYy1iYW5uZXJfX3JhZGlvOmZvY3VzLXZpc2libGUgKyAuYy1idXR0b24ge1xuICBib3gtc2hhZG93OlxuICAgIGluc2V0IDAgMCAwIDAuMTVlbSB2YXIoLS1hYS1vcmFuZ2UpLFxuICAgIGluc2V0IDAgMCAwIDAuM2VtICNmZmY7XG59XG5cbi5jLWJhbm5lcl9fcmFkaW86Y2hlY2tlZCArIC5jLWJ1dHRvbiB7XG4gIGJhY2tncm91bmQ6IHZhcigtLXdoaXRlKTtcbiAgY29sb3I6IHZhcigtLWFjY2VudCk7XG59XG5cbi8qIENoZWNrYm94IHN0eWxlcyBhbmQgY29udGV4dHMgKi9cblxuLmMtYmFubmVyX19jaGVja2JveDpmb2N1cy12aXNpYmxlICsgLmMtYmFubmVyX19sYWJlbCB7XG4gIGJveC1zaGFkb3c6XG4gICAgMCAwIDAgMC4xNWVtICNmZmYsXG4gICAgMCAwIDAgMC4zZW0gdmFyKC0tYWEtb3JhbmdlKTtcbn1cblxuLyogU3VibWl0IGJ1dHRvbiBzdHlsZXMgYW5kIGNvbnRleHRzICovXG5cbi5jLWJhbm5lcl9fc3VibWl0IHtcbiAgbWFyZ2luLXRvcDogMnJlbTtcbiAgY2xlYXI6IGJvdGg7XG59XG5cbi5jLWJhbm5lcl9fc3VibWl0ID4gYTpmb2N1cy12aXNpYmxlIHtcbiAgYm94LXNoYWRvdzpcbiAgICBpbnNldCAwIDAgMCAwLjE1ZW0gdmFyKC0tYWEtb3JhbmdlKSxcbiAgICBpbnNldCAwIDAgMCAwLjNlbSAjZmZmO1xufVxuXG4uYy1iYW5uZXJfX2ZpbmVwcmludCB7XG4gIG1hcmdpbi10b3A6IDFyZW07XG4gIGZvbnQtc2l6ZTogLjc1cmVtO1xufVxuXG4vKiBUaGUgZm9sbG93aW5nIGNvbnRhaW5pbmcgZWxlbWVudHMgYXJlIHVzZWQgaW5zdGVhZCBvZiBhIGZvcm0gdG8gY29udGFpbiB0aGUgZ3JhZGUgY2hvaWNlcyB3aGVuIHRoZSBvcHRpb25zIG1heSBzaW1wbHkgYmUgbGlua3MgaW5zdGVhZCBvZiBpbnB1dCBmaWVsZHMuICovXG5cbi5jLWJhbm5lcl9fY291cnNlLWNob2ljZXMgLmMtYnV0dG9uIHtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBwYWRkaW5nLXJpZ2h0OiAwO1xuICBtYXJnaW46IC41cmVtIGF1dG87XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogOXJlbTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuLmMtYmFubmVyX19jb3Vyc2UtY2hvaWNlcyAuYy1idXR0b246Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAxLjI1cmVtO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMzc1cHgpIHtcblxuICAuYy1iYW5uZXJfX2NvdXJzZS1jaG9pY2VzIHtcbiAgICAtLW1heC13aWR0aDogMjguNXJlbTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBtYXgtd2lkdGg6IHZhcigtLW1heC13aWR0aCk7IC8qIGNvbnN0cmFpbiB0aGUgd2lkdGggb2YgdGhlIG9wdGlvbiBjb250YWluZXIsIHByZXZlbnRpbmcgYXdrd2FyZCB3cmFwcyAqL1xuICAgICYuYy1iYW5uZXJfX2NvdXJzZS1jaG9pY2VzX2NhLWs4IHtcbiAgICAgIC0tbWF4LXdpZHRoOiAzMHJlbTtcbiAgICB9XG4gIH1cblxuICAuYy1iYW5uZXJfX2NvdXJzZS1jaG9pY2VzIC5jLWJ1dHRvbixcbiAgLmMtYmFubmVyX19jb3Vyc2UtY2hvaWNlcyAuYy1idXR0b246Zmlyc3QtY2hpbGQge1xuICAgIG1hcmdpbi10b3A6IC4yNXJlbTtcbiAgICBmbGV4OiAwIDAgOHJlbTtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBtYXJnaW4tcmlnaHQ6IC43NXJlbTtcbiAgfVxuXG59XG5cbi5jLWJhbm5lcl9fY3RhIHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZmFtaWx5LWRpc3BsYXkpO1xuICBmb250LXdlaWdodDogNjAwO1xuICBjb2xvcjogdmFyKC0td2hpdGUpO1xuICBtYXJnaW4tdG9wOiAycmVtO1xuICBmb250LXNpemU6IHZhcigtLWdhbW1hKTtcbn1cblxuLmMtYmFubmVyX19jdGFfYWx0IHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZmFtaWx5LXRleHQpO1xuICBmb250LXNpemU6IHZhcigtLWVwc2lsb24pO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAzNzVweCkge1xuICAuYy1iYW5uZXJfX2N0YSBiciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4uYy1iYW5uZXJfX2ltZyB7XG4gIGRpc3BsYXk6ICBibG9jaztcbiAgbWF4LXdpZHRoOiA4MCU7XG4gIG1hcmdpbi1sZWZ0OiAgYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuXG4uYy1iYW5uZXJfX3ZpZGVvLXdyYXBwZXIge1xuICBwYWRkaW5nOiA1Ni4yNSUgMCAwIDA7XG4gIHdpZHRoOiAxMDAlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJveC1zaGFkb3c6XG4gICAgLjEyNXJlbSAuMTI1cmVtIC4xMjVyZW0gMCByZ2JhKDAsIDAsIDAsIC4xMjUpLFxuICAgIDFweCAxcHggMCAwIHJnYmEoMCwgMCwgMCwgLjI1KTtcbiAgei1pbmRleDogMTA7XG59XG5cbi5jLWJhbm5lcl9fdmlkZW8tc291cmNlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG4iLCIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqXG4gKiBBTk5PVU5DRU1FTlRcbiAqXG4gKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi5jLWFubm91bmNlbWVudCB7XG4gIGJhY2tncm91bmQ6ICMwMDg0NzA7XG4gIGNvbG9yOiB2YXIoLS13aGl0ZSk7XG4gIHBhZGRpbmc6IDAgMnJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBAbWVkaWEgKC0tYnAtbWlkKSB7XG4gICAgJiB7XG4gICAgICBmb250LXNpemU6IHZhcigtLXpldGEpO1xuICAgIH1cbiAgfVxuICBAbWVkaWEgKC0tYnAtbWVnYSkge1xuICAgICYge1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgIGJhY2tncm91bmQ6XG4gICAgICAgIGxpbmVhci1ncmFkaWVudCg5MGRlZywgI2ZmZmZmZiAwJSwgI2ZmZmZmZiA0OS45NzUlLCAjMDA4NDcwIDUwJSwgIzAwODQ3MCAxMDAlKTtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuICB9XG59XG5cbi5jLWFubm91bmNlbWVudCBbY2xhc3NePVwiaGVkXCJdIHtcbiAgY29sb3I6IHZhcigtLXdoaXRlKTtcbiAgbWFyZ2luLXRvcDogMDtcbn1cblxuLmMtYW5ub3VuY2VtZW50IGEge1xuICBjb2xvcjogdmFyKC0tbGlnaHQtZ3JheSk7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi5jLWFubm91bmNlbWVudCBhOmhvdmVyLFxuLmMtYW5ub3VuY2VtZW50IGE6YWN0aXZlLFxuLmMtYW5ub3VuY2VtZW50IGE6dmlzaXRlZCB7XG4gIGNvbG9yOiB2YXIoLS13aGl0ZSk7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi5jLWFubm91bmNlbWVudF9faW5uZXIge1xuICBtYXJnaW46IDAgYXV0bztcbiAgbWF4LXdpZHRoOiB2YXIoLS1jb250ZW50LXdpZHRoKTtcbiAgYmFja2dyb3VuZDogIzAwODQ3MDtcbiAgcGFkZGluZzogMS41cmVtIDA7XG59XG5cbi5jLWFubm91bmNlbWVudF9faW5uZXIgcCB7XG4gIG1hcmdpbjogMDtcbiAgQG1lZGlhICgtLWJwLW1lZ2EpIHtcbiAgICAmIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMnJlbTtcbiAgICB9XG4gIH1cbn1cbiIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICpcbiAqIENUQSBTaWRlYmFyXG4gKiBBcHByb3ByaWF0ZSBmb3IgbXVsdGktY29sdW1uIGxheW91dHMgaW4gdGhlIGxhbmRpbmcgcGFnZSBtYWluIGNvbnRlbnQgYXJlYS5cbiAqXG4gKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi5jLWN0YS1zaWRlYmFyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYm9yZGVyOiAuMTI1cmVtIHNvbGlkICNlYmViZWI7XG4gIHBhZGRpbmc6IDFyZW07XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIG1hcmdpbi10b3A6IDJyZW07XG4gICYgPiAqOmZpcnN0LWNoaWxkIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICB9XG4gICYgPiAqOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi10b3A6IGF1dG87XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxuICBAbWVkaWEgKC0tYnAtbWluKSB7XG4gICAgJiB7XG4gICAgICBtYXJnaW4tdG9wOiAtMXJlbTtcbiAgICAgIG1hcmdpbi1ib3R0b206IC0xLjEyNXJlbTtcbiAgICB9XG4gIH1cbn1cbiIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICpcbiAqIERJUkVDVE9SWVxuICpcbiAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLmMtZGlyZWN0b3J5IHtcbiAgbWF4LXdpZHRoOiB2YXIoLS1jb250ZW50LXdpZHRoKTtcbiAgbWFyZ2luOiBhdXRvO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4uYy1kaXJlY3RvcnlfX3NlcXVlbmNlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIG1hcmdpbjogMXJlbSBhdXRvO1xuICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XG4gIEBtZWRpYSAoLS1icC1taWQpIHtcbiAgICAmIHtcbiAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgbWFyZ2luOiAycmVtIGF1dG87XG4gICAgfVxuICB9XG59XG5cbi5jLWRpcmVjdG9yeV9faGVkIHtcbiAgZm9udC1zaXplOiB2YXIoLS1nYW1tYSk7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWZhbWlseS1kaXNwbGF5KTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luOiAwIDJyZW0gMS41cmVtIDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjE7XG4gIGZsZXg6IDEgMCAxMDAlO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBAbWVkaWEgKC0tYnAtbWlkKSB7XG4gICAgJiB7XG4gICAgICBmbGV4OiAwIDEgYXV0bztcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIG1hcmdpbi1yaWdodDogM3JlbTtcbiAgICAgIGZvbnQtc2l6ZTogdmFyKC0tYmFzZSk7XG4gICAgICBtaW4td2lkdGg6IGF1dG87XG4gICAgfVxuICB9XG59XG5cbi5jLWRpcmVjdG9yeV9fbGlzdGluZyB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG1hcmdpbjogMCAycmVtIDFyZW0gMDtcbiAgZmxleDogMCAxIGF1dG87XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIEBtZWRpYSAoLS1icC1taWQpIHtcbiAgICAmIHtcbiAgICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAycmVtO1xuICAgIH1cbiAgfVxufVxuXG4uYy1kaXJlY3RvcnlfX3N1YmhlZCB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tYmFzZSk7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWZhbWlseS1kaXNwbGF5KTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgbWFyZ2luOiAwIDAgMXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMTtcbn1cblxuLmMtZGlyZWN0b3J5X19zdWJsaXN0aW5nIHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuIiwiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKlxuICogRklHVVJFXG4gKlxuICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4uYy1maWd1cmUge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgQG1lZGlhICgtLWJwLW1pZCkge1xuICAgICYge1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICB9XG4gIH1cbn1cblxuLmMtZmlndXJlX192aWRlbyB7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWdyYXkpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB3aWR0aDogMTAwJTtcbiAgQG1lZGlhICgtLWJwLW1pZCkge1xuICAgICYge1xuICAgICAgZmxleDogMSAwIDYzJTtcbiAgICAgIHdpZHRoOiA2MyU7XG4gICAgfVxuICB9XG59XG5cbi5jLWZpZ3VyZV9fdmlkZW8td3JhcHBlciB7XG4gIHBhZGRpbmc6IDU2LjI1JSAwIDAgMDtcbiAgd2lkdGg6IDEwMCU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmMtZmlndXJlX192aWRlby1zb3VyY2Uge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuLmMtZmlndXJlX19jYXB0aW9uIHtcbiAgZm9udC1zaXplOiB2YXIoLS1nYW1tYSk7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWZhbWlseS1kaXNwbGF5KTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbGluZS1oZWlnaHQ6IDEuMTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgbWFyZ2luOiAxcmVtIDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZzogMCAwIDNyZW0gMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXgtd2lkdGg6IDIwZW07XG4gIEBtZWRpYSAoLS1icC1taWQpIHtcbiAgICAmIHtcbiAgICAgICAgcGFkZGluZzogMCAwIDAgM3JlbTtcbiAgICAgICAgZmxleDogMSAxIDM3JTtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB9XG4gIH1cbn1cblxuLmMtZmlndXJlX19jYXB0aW9uOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICB3aWR0aDogMnJlbTtcbiAgaGVpZ2h0OiAycmVtO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDUwJTtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW4tbGVmdDogLTFyZW07XG4gIGJvcmRlci10b3A6IDFyZW0gc29saWQgdmFyKC0tZ3JheSk7XG4gIGJvcmRlci1sZWZ0OiAxcmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmlnaHQ6IDFyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1ib3R0b206IDFyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gIEBtZWRpYSAoLS1icC1taWQpIHtcbiAgICAmIHtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgbWFyZ2luLXRvcDogLTFyZW07XG4gICAgICBib3JkZXItdG9wOiAxcmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyLWxlZnQ6IDFyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXItcmlnaHQ6IDFyZW0gc29saWQgdmFyKC0tZ3JheSk7XG4gICAgICBib3JkZXItYm90dG9tOiAxcmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIH1cbiAgfVxufVxuXG4uYy1maWd1cmVfX2xpc3Rpbmcge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW46IDAgMCAxcmVtIDA7XG4gIHBhZGRpbmctcmlnaHQ6IDFyZW07XG4gIGZsZXg6IDAgMSAzMyU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIEBtZWRpYSAoLS1icC1taWQpIHtcbiAgICAmIHtcbiAgICAgIGZsZXg6IDEgMSAyNSU7XG4gICAgfVxuICB9XG59XG5cbi5jLWZpZ3VyZV9fc3ViaGVkIHtcbiAgZm9udC1zaXplOiB2YXIoLS1iYXNlKTtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZmFtaWx5LWRpc3BsYXkpO1xuICBmb250LXdlaWdodDogNzAwO1xuICBtYXJnaW46IDAgMCAxcmVtO1xuICBsaW5lLWhlaWdodDogMS4xO1xufVxuXG4uYy1maWd1cmVfX3N1Ymxpc3Rpbmcge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG59XG4iLCIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKlxuICogQ09NUE9ORU5UOiBDVVJSSUNVTFVNIE5BVlxuICpcbiAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi5jLW5hdi1jdXJyaWN1bHVtIHtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC1mYW1pbHktdGV4dCk7XG4gIGxpbmUtaGVpZ2h0OiAxLjQ1O1xuICBmb250LXdlaWdodDogNTAwO1xufVxuXG4uYy1uYXYtY3VycmljdWx1bV9faXRlbXMge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBoeXBoZW5zOiBub25lO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDAgMCAwIDFyZW07XG4gIGJhY2tncm91bmQ6IHZhcigtLWxpZ2h0LWdyYXkpO1xuICBAbWVkaWEgKC0tYnAtbmFubykge1xuICAgICYge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICB9XG4gIH1cbn1cblxuLmMtbmF2LWN1cnJpY3VsdW1fX2JyYW5kaW5nIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nOiAuNjU2MjVlbSAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBtYXJnaW46IDAgMCAwIDA7XG4gIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgQG1lZGlhICgtLWJwLW1pZCkge1xuICAgICYge1xuICAgICAgcGFkZGluZzogMDtcbiAgICB9XG4gIH1cbn1cblxuLyogRGVmYXVsdCBzdHlsaW5nIGZvciBhbGwgbG9nbyBlbGVtZW50cywgc2VlIHZhcmlhbnRzIGZvciBndWlkYW5jZSB3aGVuIGN1c3RvbWl6aW5nIGJhY2tncm91bmQgaW1hZ2VzLCB3aWR0aHMsIGV0Yy4gKi9cblxuLmMtbmF2LWN1cnJpY3VsdW1fX2xvZ28ge1xuICBmb250LXNpemU6IDFyZW07XG4gIGhlaWdodDogMi4yNXJlbTtcbiAgcGFkZGluZzogMDtcbiAgdGV4dC1pbmRlbnQ6IDEwMiU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGxlZnQgY2VudGVyO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBAbWVkaWEgKC0tYnAtbWlkKSB7XG4gICAgJiB7XG4gICAgICBib3JkZXItcmlnaHQ6IHNvbGlkIC4wNjI1cmVtIHZhcigtLXRleHQpO1xuICAgICAgbWFyZ2luOiAuODEyNXJlbSAwOyAvKiBBdCB0aGlzIGJyZWFrcG9pbnQsIGluY3JlYXNlIG1hcmdpbiBhbmQgZGVjcmVhc2UgaGVpZ2h0IHRvIGVuc3VyZSByaWdodCBib3JkZXIgaXMgcHJvcG9ydGlvbmFsIHRvIHRoYXQgaW4gdGhlIGxvY2t1cCAqL1xuICAgICAgaGVpZ2h0OiAyLjEyNXJlbTsgLyogQXQgdGhpcyBicmVha3BvaW50LCBpbmNyZWFzZSBtYXJnaW4gYW5kIGRlY3JlYXNlIGhlaWdodCB0byBlbnN1cmUgcmlnaHQgYm9yZGVyIGlzIHByb3BvcnRpb25hbCB0byB0aGF0IGluIHRoZSBsb2NrdXAgKi9cbiAgICB9XG4gIH1cbn1cblxuLyogTVMgTWF0aCAqL1xuXG4vKiBSZXBsYWNlIGxpbmsgd2l0aCBjdXJyaWN1bHVtIGxvZ28gYmFja2dyb3VuZC1pbWFnZSB3aGlsZSBrZWVwaW5nIHRoZSBsaW5rIGFuZCBpdHMgdGV4dCBhY2Nlc3NpYmxlICovXG5cbi5jLW5hdi1jdXJyaWN1bHVtX19sb2dvX291cjYtOG1hdGgsXG4uYy1uYXYtY3VycmljdWx1bV9fbG9nb19vdXI2LThtYXRoLW5jLFxuLmMtbmF2LWN1cnJpY3VsdW1fX2xvZ29fb3VyNi04bWF0aC10bixcbi5jLW5hdi1jdXJyaWN1bHVtX19sb2dvX291cjYtOG1hdGgtd3YsXG4uYy1uYXYtY3VycmljdWx1bV9fbG9nb19vdXI2LThtYXRoLXYxLFxuLmMtbmF2LWN1cnJpY3VsdW1fX2xvZ29fb3VyNi04bWF0aC12Myxcbi5jLW5hdi1jdXJyaWN1bHVtX19sb2dvX2NhLWs4LW1hdGgge1xuICB3aWR0aDogM3JlbTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCduYXYtY3VycmljdWx1bS9sb2dvcy9vdXItc3ltYm9sLW1zbWF0aC5zdmcnKTtcbiAgYmFja2dyb3VuZC1zaXplOiAxNC4zMTI1cmVtO1xuICAgIC8qIFNpbmNlIHRoaXMgaXMgYW4gT1VSIGJyYW5kZWQgcHJvZHVjdCwgdGhpcyB3aWR0aCBpcyBjYWxjdWxhdGVkIHRvIG1hdGNoIHRoZSBPVVIgTVMgTWF0aCBsb2NrdXAgdG8gdGhlIE9VUiBsb2dvIGluIHRoZSBnbG9iYWwgbmF2LiBGb3IgcHJvamVjdHMgd2l0aCBub24tT1VSIGJyYW5kZWQgbG9ja3VwcywgdGhpcyB3aWR0aCBtYXRjaCB0aGUgYXNwZWN0IHJhdGlvIG9mIHRoZSBsb2NrdXAgYXQgMi4yNXJlbSB0YWxsLiBTZWUgQm9va3dvcm1zLCBFTCBLLTUuICovXG4gIGJvcmRlci1yaWdodDogc29saWQgLjA2MjVyZW0gYmxhY2s7IC8qIGV4Y2VwdGlvbiBmb3IgTVMgTWF0aCwgc2hvdyByaWdodCBib3JkZXIgaW4gbmFycm93IHZpZXdwb3J0cyAqL1xufVxuXG4vKiBIUyBNYXRoICovXG5cbi8qIFJlcGxhY2UgbGluayB3aXRoIGN1cnJpY3VsdW0gbG9nbyBiYWNrZ3JvdW5kLWltYWdlIHdoaWxlIGtlZXBpbmcgdGhlIGxpbmsgYW5kIGl0cyB0ZXh0IGFjY2Vzc2libGUgKi9cblxuLmMtbmF2LWN1cnJpY3VsdW1fX2xvZ29fb3VyLWhzLW1hdGgsXG4uYy1uYXYtY3VycmljdWx1bV9fbG9nb19vdXItaHMtbWF0aC1uYyxcbi5jLW5hdi1jdXJyaWN1bHVtX19sb2dvX291ci1ocy1tYXRoLXRuLFxuLmMtbmF2LWN1cnJpY3VsdW1fX2xvZ29fb3VyLWhzLW1hdGgtcGlsb3QtcGwge1xuICB3aWR0aDogM3JlbTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCduYXYtY3VycmljdWx1bS9sb2dvcy9vdXItc3ltYm9sLWhzbWF0aC5zdmcnKTtcbiAgYmFja2dyb3VuZC1zaXplOiAxNC4zMTI1cmVtO1xuICAgIC8qIFNpbmNlIHRoaXMgaXMgYW4gT1VSIGJyYW5kZWQgcHJvZHVjdCwgdGhpcyB3aWR0aCBpcyBjYWxjdWxhdGVkIHRvIG1hdGNoIHRoZSBPVVIgSFMgTWF0aCBsb2NrdXAgdG8gdGhlIE9VUiBsb2dvIGluIHRoZSBnbG9iYWwgbmF2LiBGb3IgcHJvamVjdHMgd2l0aCBub24tT1VSIGJyYW5kZWQgbG9ja3VwcywgdGhpcyB3aWR0aCBtYXRjaCB0aGUgYXNwZWN0IHJhdGlvIG9mIHRoZSBsb2NrdXAgYXQgMi4yNXJlbSB0YWxsLiBTZWUgQm9va3dvcm1zLCBFTCBLLTUuICovXG4gIGJvcmRlci1yaWdodDogc29saWQgLjA2MjVyZW0gYmxhY2s7IC8qIGV4Y2VwdGlvbiBmb3IgSFMgTWF0aCwgc2hvdyByaWdodCBib3JkZXIgaW4gbmFycm93IHZpZXdwb3J0cyAqL1xufVxuXG4vKiBLNSBNYXRoICovXG5cbi8qIFJlcGxhY2UgbGluayB3aXRoIGN1cnJpY3VsdW0gbG9nbyBiYWNrZ3JvdW5kLWltYWdlIHdoaWxlIGtlZXBpbmcgdGhlIGxpbmsgYW5kIGl0cyB0ZXh0IGFjY2Vzc2libGUgKi9cblxuLmMtbmF2LWN1cnJpY3VsdW1fX2xvZ29fb3VyLWs1LW1hdGgsXG4uYy1uYXYtY3VycmljdWx1bV9fbG9nb19vdXItazUtbWF0aC10bixcbi5jLW5hdi1jdXJyaWN1bHVtX19sb2dvX2s4LW1hdGgtcGlsb3QtcGwge1xuICB3aWR0aDogM3JlbTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCduYXYtY3VycmljdWx1bS9sb2dvcy9vdXItc3ltYm9sLWs1bWF0aC5zdmcnKTtcbiAgYmFja2dyb3VuZC1zaXplOiAxNC4zMTI1cmVtO1xuICAgIC8qIFNpbmNlIHRoaXMgaXMgYW4gT1VSIGJyYW5kZWQgcHJvZHVjdCwgdGhpcyB3aWR0aCBpcyBjYWxjdWxhdGVkIHRvIG1hdGNoIHRoZSBPVVIgSzUgTWF0aCBsb2NrdXAgdG8gdGhlIE9VUiBsb2dvIGluIHRoZSBnbG9iYWwgbmF2LiBGb3IgcHJvamVjdHMgd2l0aCBub24tT1VSIGJyYW5kZWQgbG9ja3VwcywgdGhpcyB3aWR0aCBtYXRjaCB0aGUgYXNwZWN0IHJhdGlvIG9mIHRoZSBsb2NrdXAgYXQgMi4yNXJlbSB0YWxsLiBTZWUgQm9va3dvcm1zLCBFTCBLLTUuICovXG4gIGJvcmRlci1yaWdodDogc29saWQgLjA2MjVyZW0gYmxhY2s7IC8qIGV4Y2VwdGlvbiBmb3IgSzUgTWF0aCwgc2hvdyByaWdodCBib3JkZXIgaW4gbmFycm93IHZpZXdwb3J0cyAqL1xufVxuXG4vKiBPZGVsbCAqL1xuXG4vKiBTaG91bGQgYmUgdGhlIHNhbWUgYXBwcm9hY2ggYXMgd2UgdXNlZCBmb3IgSFMgTWF0aC4gKi9cblxuLmMtbmF2LWN1cnJpY3VsdW1fX2xvZ29fb2RlbGwtaHMtbGl0ZXJhY3kge1xuICB3aWR0aDogM3JlbTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCduYXYtY3VycmljdWx1bS9sb2dvcy9vdXItc3ltYm9sLW9kZWxsLnN2ZycpO1xuICBiYWNrZ3JvdW5kLXNpemU6IDE0LjMxMjVyZW07XG4gIGJvcmRlci1yaWdodDogc29saWQgLjA2MjVyZW0gYmxhY2s7IC8qIHNob3cgcmlnaHQgYm9yZGVyIGluIG5hcnJvdyB2aWV3cG9ydHMgKi9cbn1cblxuLyogQm9va3dvcm1zICovXG5cbi8qIFJlcGxhY2UgbGluayB3aXRoIGN1cnJpY3VsdW0gbG9nbyBiYWNrZ3JvdW5kLWltYWdlIHdoaWxlIGtlZXBpbmcgdGhlIGxpbmsgYW5kIGl0cyB0ZXh0IGFjY2Vzc2libGUgKi9cblxuLmMtbmF2LWN1cnJpY3VsdW1fX2xvZ29fYm9va3dvcm1zLFxuLmMtbmF2LWN1cnJpY3VsdW1fX2xvZ29fYm9va3dvcm1zLWs1LFxuLmMtbmF2LWN1cnJpY3VsdW1fX2xvZ29fYm9va3dvcm1zLXBsLXZpZGVvcyxcbi5jLW5hdi1jdXJyaWN1bHVtX19sb2dvX2Jvb2t3b3Jtcy1waWxvdC1wbCB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnbmF2LWN1cnJpY3VsdW0vbG9nb3MvYm9va3dvcm1zLWxvZ290eXBlLW9ubHkuc3ZnJyk7XG4gIGJhY2tncm91bmQtc2l6ZTogY2FsYygyLjI1cmVtICogOC42Mzg4ODg4ODg5KTsgLyogTWF0Y2ggQm9va3dvcm1zIGxvY2t1cCBhc3BlY3QgcmF0aW8gMzExIHggMzYgKi9cbiAgd2lkdGg6IGNhbGMoMi4yNXJlbSAqIDUuNjY2NjY2NjY2Nyk7IC8qIE1hdGNoIGFzcGVjdCByYXRpbyBvZiBCb29rd29ybXMgbG9nb3R5cGUgdG8gXCJwaXBlXCIgaW4gbG9ja3VwICgyMDQgeCAzNiksIHRoZXJlYnkgaGlkaW5nIHRoZSBwaXBlIGFuZCB0aGUgZGVzY3JpcHRpb24gdGV4dCB0byB0aGUgcmlnaHQgb2YgdGhlIHBpcGUgKi9cbiAgQG1lZGlhICgtLWJwLW1pZCkge1xuICAgICYge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCduYXYtY3VycmljdWx1bS9sb2dvcy9ib29rd29ybXMtbG9ja3VwLnN2ZycpO1xuICAgIH1cbiAgfVxufVxuXG4vKiBFTCBLLTUgKi9cblxuLyogUmVwbGFjZSBsaW5rIHdpdGggY3VycmljdWx1bSBsb2dvIGJhY2tncm91bmQtaW1hZ2Ugd2hpbGUga2VlcGluZyB0aGUgbGluayBhbmQgaXRzIHRleHQgYWNjZXNzaWJsZSAqL1xuXG4uYy1uYXYtY3VycmljdWx1bV9fbG9nb19lbCxcbi5jLW5hdi1jdXJyaWN1bHVtX19sb2dvX2VsLXBpbG90LXBsLFxuLmMtbmF2LWN1cnJpY3VsdW1fX2xvZ29fZWwtazUtMjAxNyxcbi5jLW5hdi1jdXJyaWN1bHVtX19sb2dvX2VsLW1zLTIwMTksXG4uYy1uYXYtY3VycmljdWx1bV9fbG9nb19lbC1za2lsbHMtYmxvY2stMjAyNCxcbi5jLW5hdi1jdXJyaWN1bHVtX19sb2dvX2VsLWs1LTIwMjUge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ25hdi1jdXJyaWN1bHVtL2xvZ29zL2VsLWs4LWxvZ290eXBlLW9ubHkuc3ZnJyk7XG4gIGJhY2tncm91bmQtc2l6ZTogY2FsYygyLjI1cmVtICogNy4xOTQ0NDQ0NDQpOyAvKiBNYXRjaCBFTCBLLTUgbG9ja3VwIGFzcGVjdCByYXRpbyAyNTkgeCAzNiAqL1xuICB3aWR0aDogY2FsYygyLjI1cmVtICogNC42OTQ0NDQ0NDQ0KTsgLyogTWF0Y2ggYXNwZWN0IHJhdGlvIG9mIEVMIEstNSBsb2dvdHlwZSB0byBcInBpcGVcIiBpbiBsb2NrdXAgKDE2OSB4IDM2KSwgdGhlcmVieSBoaWRpbmcgdGhlIHBpcGUgYW5kIHRoZSBkZXNjcmlwdGlvbiB0ZXh0IHRvIHRoZSByaWdodCBvZiB0aGUgcGlwZSAqL1xuICBAbWVkaWEgKC0tYnAtbWlkKSB7XG4gICAgJiB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ25hdi1jdXJyaWN1bHVtL2xvZ29zL2VsLWs4LWxvY2t1cC5zdmcnKTtcbiAgICB9XG4gIH1cbn1cblxuLyogRGVmYXVsdCBzZWN0aW9uIHRleHQgc3R5bGluZyAqL1xuXG4uYy1uYXYtY3VycmljdWx1bV9fc2VjdGlvbi10ZXh0IHtcbiAgZm9udC1zaXplOiB2YXIoLS16ZXRhKTtcbiAgY29sb3I6IHZhcigtLW91ci1wcmltYXJ5LWRhcmstZ3JheSk7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgZGlzcGxheTogbm9uZTtcbiAgYWxpZ24tc2VsZjogY2VudGVyO1xuICBAbWVkaWEgKC0tYnAtbWlkKSB7XG4gICAgJiB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHBhZGRpbmc6IDEuMzc1cmVtIDEuNXJlbSAxcmVtIC45MjVyZW07XG4gICAgfVxuICB9XG59XG5cbi8qIEV4Y2VwdGlvbiBmb3IgQm9va3dvcm1zIERJICovXG5cbi5jLW5hdi1jdXJyaWN1bHVtX19zZWN0aW9uLXRleHRfYm9va3dvcm1zLWRpIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IGNhbGMoMS4zNzVyZW0gLSAuNjU2MjVlbSkgMS41cmVtIGNhbGMoMXJlbSAtIC42NTYyNWVtKSAuOTI1cmVtO1xuICBib3JkZXItbGVmdDogc29saWQgLjA2MjVyZW0gdmFyKC0tdGV4dCk7XG4gIEBtZWRpYSAoLS1icC1taWQpIHtcbiAgICAmIHtcbiAgICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgICAgcGFkZGluZzogMS4zNzVyZW0gMS41cmVtIDFyZW0gLjkyNXJlbTtcbiAgICB9XG4gIH1cbn1cblxuLmMtbmF2LWN1cnJpY3VsdW1fX3NlY3Rpb24tdGV4dF9ib29rd29ybXMtZGk6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IGF0dHIoZGF0YS10aXRsZS1zaG9ydCk7XG4gIEBtZWRpYSAoLS1icC1taWNybykge1xuICAgICYge1xuICAgICAgY29udGVudDogYXR0cihkYXRhLXRpdGxlLW1lZGl1bSk7XG4gICAgfVxuICB9XG4gIEBtZWRpYSAoLS1icC1taWQpIHtcbiAgICAmIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgfVxuICB9XG59XG5cbi5jLW5hdi1jdXJyaWN1bHVtX19zZWN0aW9uLXRleHQtc3dhcCB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIEBtZWRpYSAoLS1icC1taWQpIHtcbiAgICAmIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICB9XG4gIH1cbn1cblxuLyogRXhjZXB0aW9uIGZvciBIUyBNYXRoLCBLNSBNYXRoLCBNUyBNYXRoLCAmIE9kZWxsIEhTIExpdGVyYWN5ICovXG5cbi5jLW5hdi1jdXJyaWN1bHVtX19zZWN0aW9uLXRleHRfb3VyLWhzLW1hdGgsXG4uYy1uYXYtY3VycmljdWx1bV9fc2VjdGlvbi10ZXh0X291ci1ocy1tYXRoLXRuLFxuLmMtbmF2LWN1cnJpY3VsdW1fX3NlY3Rpb24tdGV4dF9vdXItaHMtbWF0aC1uYyxcbi5jLW5hdi1jdXJyaWN1bHVtX19zZWN0aW9uLXRleHRfb3VyLWs1LW1hdGgsXG4uYy1uYXYtY3VycmljdWx1bV9fc2VjdGlvbi10ZXh0X291ci1rNS1tYXRoLXRuLFxuLmMtbmF2LWN1cnJpY3VsdW1fX3NlY3Rpb24tdGV4dF9rOC1tYXRoLXBpbG90LXBsLFxuLmMtbmF2LWN1cnJpY3VsdW1fX3NlY3Rpb24tdGV4dF9vdXI2LThtYXRoLFxuLmMtbmF2LWN1cnJpY3VsdW1fX3NlY3Rpb24tdGV4dF9vdXI2LThtYXRoLW5jLFxuLmMtbmF2LWN1cnJpY3VsdW1fX3NlY3Rpb24tdGV4dF9vdXI2LThtYXRoLXRuLFxuLmMtbmF2LWN1cnJpY3VsdW1fX3NlY3Rpb24tdGV4dF9vdXI2LThtYXRoLXd2LFxuLmMtbmF2LWN1cnJpY3VsdW1fX3NlY3Rpb24tdGV4dF9vdXI2LThtYXRoLXYxLFxuLmMtbmF2LWN1cnJpY3VsdW1fX3NlY3Rpb24tdGV4dF9vdXI2LThtYXRoLXYzLFxuLmMtbmF2LWN1cnJpY3VsdW1fX3NlY3Rpb24tdGV4dF9vZGVsbC1ocy1saXRlcmFjeSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAuNXJlbSAxcmVtO1xuICBAbWVkaWEgKC0tYnAtbWlkKSB7XG4gICAgJiB7XG4gICAgICBwYWRkaW5nOiAxcmVtIDEuNXJlbSAxcmVtIC45MjVyZW07XG4gICAgfVxuICB9XG59XG5cbi5jLW5hdi1jdXJyaWN1bHVtX19zZWN0aW9uLXRleHQtc3VmZml4IHtcbiAgZGlzcGxheTogbm9uZTtcbiAgQG1lZGlhICgtLWJwLW1pY3JvKSB7XG4gICAgJiB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgfVxuICB9XG59XG5cbi5jLW5hdi1jdXJyaWN1bHVtX19pdGVtIHtcbiAgZm9udC1zaXplOiB2YXIoLS16ZXRhKTtcbiAgbWFyZ2luOiAwIDAgMCAtMXJlbTtcbiAgcGFkZGluZzogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICBvdXRsaW5lOiBub25lO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tZ3JheSk7XG4gIEBtZWRpYSAoLS1icC1uYW5vKSB7XG4gICAgJiB7XG4gICAgICBib3JkZXItdG9wOiBub25lO1xuICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB2YXIoLS1ncmF5KTtcbiAgICAgIG1hcmdpbjogMDtcbiAgICB9XG4gIH1cbn1cblxuLmMtbmF2LWN1cnJpY3VsdW1fX2l0ZW0tdGl0bGUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nOiAuNXJlbSAxcmVtO1xuICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY29sb3I6IHZhcigtLW91ci1wcmltYXJ5LWRhcmstZ3JheSk7XG4gIG91dGxpbmU6IG5vbmU7XG4gIEBtZWRpYSAoLS1icC1uYW5vKSB7XG4gICAgJiB7XG4gICAgICBwYWRkaW5nOiAuNXJlbSAxcmVtO1xuICAgIH1cbiAgfVxuICBAbWVkaWEgKC0tYnAtbWlkKSB7XG4gICAgJiB7XG4gICAgICBwYWRkaW5nOiAxcmVtIDEuMjVyZW07XG4gICAgfVxuICB9XG59XG5cbi5jLW5hdi1jdXJyaWN1bHVtX19pdGVtLXRpdGxlLmlzLWN1cnJlbnQge1xuICBjb2xvcjogdmFyKC0tb3VyLWdsb2JhbG5hdi1vcmFuZ2UpO1xuICBmb250LXdlaWdodDogNTAwO1xuICAmOmhvdmVyIHtcbiAgICBjb2xvcjogdmFyKC0tb3VyLWdsb2JhbG5hdi1vcmFuZ2UpO1xuICB9XG59XG5cbi8qIEVOL0VTIFRvZ2dsZSAqL1xuXG4uYy1uYXYtY3VycmljdWx1bV9faXRlbV9sb2NhbGUge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwYWRkaW5nLWxlZnQ6IDIuNXJlbTtcbiAgYmFja2dyb3VuZDogdXJsKCduYXYtY3VycmljdWx1bS9nbG9iZS1zb2xpZC5zdmcnKTtcbiAgYmFja2dyb3VuZC1zaXplOiAxLjI1cmVtO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxcmVtIGNlbnRlcjtcbiAgYm9yZGVyOiBub25lO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbn1cblxuLmMtbmF2LWN1cnJpY3VsdW1fX2xhYmVsX2xvY2FsZSB7XG4gIGJvcmRlci1yaWdodDogLjA2MjVyZW0gc29saWQgdmFyKC0tZ3JheSk7XG4gIHBhZGRpbmc6IC4yNzVyZW0gLjM3NXJlbSAuMjc1cmVtIC40Mzc1cmVtO1xuICBtYXJnaW46IC43cmVtIDA7XG4gIGZvbnQtd2VpZ2h0OiA5MDA7XG4gIGxldHRlci1zcGFjaW5nOiAuMDc1ZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbi5jLW5hdi1jdXJyaWN1bHVtX19sYWJlbF9sb2NhbGU6Zmlyc3QtY2hpbGQge1xuICBwYWRkaW5nOiAuMjc1cmVtIC4zNzVyZW07XG59XG5cbi5jLW5hdi1jdXJyaWN1bHVtX19sYWJlbF9sb2NhbGU6bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1yaWdodDogbm9uZTtcbiAgcGFkZGluZzogLjI3NXJlbSAxcmVtIC4yNzVyZW0gLjQzNzVyZW07XG59XG5cbi5jLW5hdi1jdXJyaWN1bHVtX19sYWJlbF9sb2NhbGUuaXMtY3VycmVudCB7XG4gIGNvbG9yOiB2YXIoLS1vdXItZ2xvYmFsbmF2LW9yYW5nZSk7XG59XG5cbi8qIElubGluZSBNZW51ICovXG5cbi5jLW5hdi1jdXJyaWN1bHVtX19pdGVtLW1lbnUge1xuICBkaXNwbGF5OiBub25lO1xuICBAbWVkaWEgKC0tYnAtbWlkKSB7XG4gICAgJiB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDFyZW07XG4gICAgfVxuICB9XG59XG5cbi5jLW5hdi1jdXJyaWN1bHVtX19pdGVtLW1lbnUgPiBsaSB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG1hcmdpbjogMDtcbn1cblxuLmMtbmF2LWN1cnJpY3VsdW1fX2l0ZW0tbWVudSA+IGxpID4gYSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcGFkZGluZzogLjVyZW07XG59XG5cbi5jLW5hdi1jdXJyaWN1bHVtX19pdGVtLW1lbnUgPiBsaSA+IGEuaXMtY3VycmVudCB7XG4gIGNvbG9yOiB2YXIoLS1vdXItZ2xvYmFsbmF2LW9yYW5nZSk7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICY6aG92ZXIge1xuICAgIGNvbG9yOiB2YXIoLS1vdXItZ2xvYmFsbmF2LW9yYW5nZSk7XG4gIH1cbn1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqXG4gKiBDb21wb25lbnQ6IFB1YmxpY2F0aW9ucyBJbmRleCBTdHlsZXNcbiAqIENvbnRhaW5zL2NvbnN0cmFpbnMvY2VudGVycyB0aGUgY29udGVudCBmb3IgY3VycmljdWx1bVxuICogc2VsZWN0aW9uIHBhZ2UuIE1hdGNoZXMgUmVnaXN0cmF0aW9uIEFwcCBwYWdlcy5cbiAqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi5jLWluZGV4IHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZmFtaWx5LXRleHQtYWx0KTtcbiAgbWFyZ2luOiBhdXRvIGF1dG8gNXJlbTtcbiAgcGFkZGluZzogMi42MjVyZW0gMXJlbSAwO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiA0Mi44cmVtO1xufVxuXG4uYy1pbmRleCAqIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuLypcbiAgLS0gaGVkXG4gIFByZXN1bWFibHkgYW4gSDEuIEFwcGVhcnMgb3ZlciB0aGUgdGV4dHVyZWRcbiAgbW90aWYgdGhhdCBzaWduaWZpZXMgdGhlIFJlZ2lzdHJhdGlvbiBBcHAgc2NyZWVucy5cbiovXG5cbi5jLWluZGV4X19oZWQge1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC1mYW1pbHktZGlzcGxheSk7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGZvbnQtc2l6ZTogdmFyKC0tYWxwaGEpO1xuICBtYXJnaW46IDAgYXV0byAyLjYyNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDIuNzVyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY29sb3I6IHZhcigtLXdoaXRlKTtcbn1cblxuLypcbiAgLS0gaW5uZXJcbiAgSW5uZXIgY29udGFpbmVyIGZvciBwdWJsaWNhdGlvbiBvcHRpb25zLlxuICBBcHBlYXJzIGFzIGEg4oCcZmxvYXRpbmfigJ0gd2hpdGUgYm94LlxuKi9cblxuLmMtaW5kZXhfX2lubmVyIHtcbiAgbWFyZ2luOiAyLjVyZW0gYXV0bztcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0td2hpdGUpO1xuICBwYWRkaW5nOiAxcmVtIDEuNXJlbSAyLjc1cmVtO1xuICBib3gtc2hhZG93OiAuMjVyZW0gLjNyZW0gLjVyZW0gMCByZ2JhKDAsIDAsIDAsIDAuMTUpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi8qXG4gIC0tIFN1YmhlZFxuICBQcmVzdW1hYmx5IGFuIEgyLiBJbnRlbnRpb25hbGx5IGhhcyB0aGUgc2FtZSBhcHBlYXJhbmNlIGFzXG4gIGEgUmVnaXN0cmF0aW9uIFBhZ2UgTGVnZW5kLlxuKi9cblxuLmMtaW5kZXhfX3N1YmhlZCB7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWZhbWlseS1kaXNwbGF5KTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgZm9udC1zaXplOiB2YXIoLS1nYW1tYSk7XG4gIGNvbG9yOiB2YXIoLS10ZXh0KTtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbn1cblxuLypcbiAgLS0gSW5mbyBncm91cHNcbiAgTGFpZCBvdXQgaWRlbnRpY2FsbHkgdG8gdGhlIGZvcm0gZ3JvdXBzXG4gIGZvdW5kIGluIHRoZSBSZWdpc3RyYXRpb24gQXBwLlxuKi9cblxuLmMtaW5kZXhfX2luZm9ncm91cCB7XG4gIG1hcmdpbjogMXJlbSBhdXRvO1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAyMy41cmVtO1xuICBjbGVhcjogbGVmdDsgLyogSSBrbm93ISBBIGNsZWFyaW5nIGZsb2F0cyBmbGFzaGJhY2shIENsZWFycyB0aGUgZmxvYXRlZCBsZWdlbmQgZWxlbWVudCB3aGVuIGl04oCZcyBwcmVzZW50LiAqL1xuICAmOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbiAgJjpmaXJzdC1jaGlsZCB7XG4gICAgbWFyZ2luLXRvcDogMS4yNXJlbTtcbiAgfVxufVxuXG4vKlxuICAtLSBTdWJqZWN0IGdyb3Vwc1xuICBTdHlsZXMgZm9yIHN1YmplY3QgZ3JvdXBpbmdzIG9mIGN1cnJpY3VsdW0gb3B0aW9ucy5cbiovXG5cbi5jLWluZGV4X19zdWJqZWN0Z3JvdXAge1xuICBtYXJnaW46IDJyZW0gYXV0byAxcmVtO1xuICBib3JkZXI6IC4xMjVyZW0gc29saWQgdmFyKC0tb3VyLXByaW1hcnkteWVsbG93KTtcbiAgYm9yZGVyLXJhZGl1czogLjRyZW07XG4gIHBhZGRpbmc6IC41cmVtIDFyZW07XG4gIG1heC13aWR0aDogMzAuNXJlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uYy1pbmRleF9fc3ViamVjdGxhYmVsIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAxLjI1cmVtO1xuICB0b3A6IC0uNTc1ZW07XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMCAuMjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjFyZW07XG4gIGJhY2tncm91bmQ6IHZhcigtLXdoaXRlKTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC1zaXplOiB2YXIoLS1kZWx0YSk7XG4gIGxldHRlci1zcGFjaW5nOiAuMDNlbTtcbn1cblxuLypcbiAgLS0gbm90ZSBzdHlsZVxuICBPbmUgc3RlcCBzbWFsbGVyIHRoYW4gZGVmYXVsdCB0ZXh0IHNpemUuXG4qL1xuXG4uYy1pbmRleF9fbm90ZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgY29sb3I6IHZhcigtLXRleHQpO1xuICBmb250LXNpemU6IHZhcigtLWVwc2lsb24pO1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMS4yO1xufVxuXG4uYy1pbmRleF9fbm90ZSBhIHtcbiAgY29sb3I6IHZhcigtLWFjY2VudCk7XG4gIHRleHQtZGVjb3JhdGlvbi1jb2xvcjogdmFyKC0tYWNjZW50LWxhcmdlKTtcbiAgJjpsaW5rLFxuICAmOnZpc2l0ZWQge1xuICAgIGNvbG9yOiB2YXIoLS1hY2NlbnQpO1xuICAgIHRleHQtZGVjb3JhdGlvbi1jb2xvcjogdmFyKC0tYWNjZW50LWxhcmdlKTtcbiAgfVxuICAmOmhvdmVyLFxuICAmOmFjdGl2ZSxcbiAgJjpmb2N1cyB7XG4gICAgY29sb3I6IHZhcigtLWFjY2VudC1sYXJnZSk7XG4gICAgdGV4dC1kZWNvcmF0aW9uLWNvbG9yOiB2YXIoLS1hY2NlbnQtbGFyZ2UpO1xuICB9XG59XG5cblxuLypcbiAgLS0gQ3VycmljdWx1bSBDaG9pY2VcbiAgQ29uam9pbmVkIFRleHQgKyBcIkdvXCIgQ1RBXG4qL1xuXG4uYy1pbmRleF9fY3VycmljdWx1bS1jaG9pY2Uge1xuICBib3JkZXItY29sb3I6IHZhcigtLW91ci1wcmltYXJ5LXllbGxvdyk7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWxpZ2h0LWdyYXkpO1xuICBib3JkZXItcmFkaXVzOiAuNHJlbTtcbiAgY29sb3I6IHZhcigtLXRleHQpO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLXRvcDogMS4yNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMS4yNXJlbTtcbiAgd2lkdGg6IDEwMCU7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbGluZS1oZWlnaHQ6IDEuMTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcGFkZGluZzogMCAwIDAgMXJlbTtcbiAgQG1lZGlhICgtLWJwLW1pbi14eHgpIHtcbiAgICAmIHtcbiAgICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTs7XG4gICAgfVxuICB9XG59XG5cbi5jLWluZGV4X19jdXJyaWN1bHVtLWNob2ljZTpob3ZlciB7XG4gIGNvbG9yOiB2YXIoLS1hY2NlbnQpO1xufVxuXG4uYy1pbmRleF9fY3VycmljdWx1bS1jaG9pY2U6OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyLXRvcDogdHJhbnNwYXJlbnQgc29saWQgLjVyZW07XG4gIGJvcmRlci1yaWdodDogdHJhbnNwYXJlbnQgc29saWQgLjc1cmVtO1xuICBib3JkZXItYm90dG9tOiB0cmFuc3BhcmVudCBzb2xpZCAuNXJlbTtcbiAgYm9yZGVyLWxlZnQ6IHZhcigtLXRleHQpIHNvbGlkIC43NXJlbTtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIGFsaWduLXNlbGY6IGNlbnRlcjtcbn1cblxuLmMtaW5kZXhfX2N1cnJpY3VsdW0tY2hvaWNlOmhvdmVyOjphZnRlciB7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiB2YXIoLS1hY2NlbnQtbGFyZ2UpO1xufVxuXG4uYy1pbmRleF9fY3VycmljdWx1bS10aXRsZSB7XG4gIHBhZGRpbmc6IC43NXJlbSAwO1xuICBtYXJnaW4tcmlnaHQ6IC43NWVtO1xuICBmbGV4OiAwIDEgYXV0bztcbiAgbGluZS1oZWlnaHQ6IDEuM3JlbTtcbiAgQG1lZGlhICgtLWJwLW1pbi14eHgpIHtcbiAgICAmIHtcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICBmbGV4OiAwIDAgMDtcbiAgICB9XG4gIH1cbn1cblxuLmMtaW5kZXhfX2N1cnJpY3VsdW0tZWRpdGlvbiB7XG4gIGZvbnQtc2l6ZTogdmFyKC0temV0YSk7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAuMDJlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgcGFkZGluZzogMCAxcmVtIDAgLjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjNyZW07XG4gIGNvbG9yOiB2YXIoLS1hY2NlbnQpO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuLmMtaW5kZXhfX2VkaXRpb24tc2VwYXJhdG9yIHtcbiAgY29sb3I6IHZhcigtLW91ci1wcmltYXJ5LXllbGxvdyk7XG4gIGJvcmRlci1zdHlsZTogZGFzaGVkO1xufVxuXG4uYy1pbmRleF9fY3VycmljdWx1bS1uZXcge1xuICBwYWRkaW5nOiAwIDAgMCAwLjI1cmVtO1xuICBjb2xvcjogdmFyKC0tYWNjZW50LWFsdCk7XG59XG5cbi8qXG4gIC0tIFN1YmplY3QgZ3JvdXAgaGVscGVyIGNsYXNzXG4gICAgRm9yIGFsaWduaW5nIGVsZW1lbnRzIG91dHNpZGUgYC5jLWluZGV4LXN1YmplY3Rncm91cCcgd2l0aFxuICAgIHRoYXQgc3ViamVjdCBncm91cC5cbiovXG5cbi5jLWluZGV4IC5mb3Itc3ViamVjdGdyb3VwIHtcbiAgbWF4LXdpZHRoOiAzMC41cmVtO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuIiwiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICpcbiAqIENPTVBPTkVOVDogT1VSIEdMT0JBTCBGT09URVJcbiAqIEluY2x1ZGVkIGluIHRoaXMgZG9jdW1lbnQ6IFZhcmlhYmxlcywgQmFzZSwgU3R5bGVzXG4gKlxuICogVGhlIGluc3RhbmNlIG9mIHRoZSBnbG9iYWwgZm9vdGVyIGVtYmVkZGVkIHdpdGhpblxuICogdGhlIHJlZyBhcHAgaXMgY29uc2lkZXJlZCBjYW5vbmljYWwuXG4gKlxuICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKlxuKiBDT01QT05FTlQ6IE9VUiBHTE9CQUwgRk9PVEVSIC0tIFJPQk9UTyBGT05UU1xuKlxuKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKiBJZiBHb29nbGUgRm9udHMgYXJlIGFscmVhZHkgaW1wb3J0ZWQgaW50byB0aGUgYXBwLCBhcHBlbmQgXCJSb2JvdG86NTAwXCIgaWYgbmVjZXNzYXJ5LiAqL1xuLyogSWYgR29vZ2xlIEZvbnRzIGFyZSBub3QgYWxyZWFkeSBpbXBvcnRlZCwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgaW1wb3J0IHN0YXRlbWVudCBvciAoYmV0dGVyKSBhZGQgdGhlIGVxdWl2YWxlbnQgdG8gdGhlIDxoZWFkPiBvZiB0aGUgYXBwLiAqL1xuLyogQGltcG9ydCB1cmwoJ2h0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzP2ZhbWlseT1Sb2JvdG86NTAwJnN1YnNldD1sYXRpbicpOyAqL1xuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKlxuICogQ09NUE9ORU5UOiBPVVIgR0xPQkFMIEZPT1RFUiAtLSBWQVJJQUJMRVNcbiAqXG4gKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKiBDb2xvciBwYWxldHRlICovXG5cbjpyb290IHtcblxuLyogQ29sb3JzIHdpdGggXCItb3VyLVwiIGluIHRoZWlyIG5hbWUgYXJlIHNvdXJjZWQgZnJvbSB0aGUgT1VSIGJyYW5kIGd1aWRlbGluZXMgKi9cblxuLS1mb290ZXItb3VyLXByaW1hcnktZGFyay1ncmF5OiAgICByZ2IoNjksNTMsNTQpOyAgICAvKiAjNDUzNTM2ICovXG4tLWZvb3Rlci13aGl0ZTogICAgICAgICAgICAgICAgICAgICNmZmZmZmY7XG5cbi8qXG4gIFR5cG9ncmFwaGljIHNpemVzXG5cbiAgRm9udCBzaXplcyBiYXNlZCBvbiBtaW5vciB0aGlyZCAoMS4yKSBodHRwOi8vd3d3Lm1vZHVsYXJzY2FsZS5jb20vPzEmZW0mMS4yXG5cbiovXG5cbi0tZm9vdGVyLWZvbnQtYmFzZS1taW46IDE2cHg7XG4tLWZvb3Rlci1mb250LWJhc2UtbWF4OiAyMHB4O1xuLS1mb290ZXItZmx1aWQtZW06ICAgICAgY2FsYygxNnB4ICsgKDIwIC0gMTYpICogKCgxMDB2dyAtIDMyMHB4KS8oMTMyMCAtIDMyMCkpKTtcbi0tZm9vdGVyLXpldGE6ICAgICAgICAgIC44MzNlbTtcbi0tZm9vdGVyLWV0YTogICAgICAgICAgIC43NWVtO1xuXG59XG5cbi8qIEN1c3RvbSBNZWRpYSBEZWNsYXJhdGlvbnMgZm9yIEJyZWFrcG9pbnRzICovXG5cbkBjdXN0b20tbWVkaWEgLS1mb290ZXItYnAtbmFuby1taW51cyAobWF4LXdpZHRoOiAzMTlweCk7XG5AY3VzdG9tLW1lZGlhIC0tZm9vdGVyLWJwLW5hbm8gKG1pbi13aWR0aDogMzIwcHgpO1xuQGN1c3RvbS1tZWRpYSAtLWZvb3Rlci1icC1taWNyby1taW51cyAobWF4LXdpZHRoOiA0MTBweCk7XG5AY3VzdG9tLW1lZGlhIC0tZm9vdGVyLWJwLW1pY3JvIChtaW4td2lkdGg6IDQxMXB4KTtcbkBjdXN0b20tbWVkaWEgLS1mb290ZXItYnAtbWluLW1pbnVzIChtYXgtd2lkdGg6IDUzNnB4KTtcbkBjdXN0b20tbWVkaWEgLS1mb290ZXItYnAtbWluIChtaW4td2lkdGg6IDUzN3B4KTtcbkBjdXN0b20tbWVkaWEgLS1mb290ZXItYnAtbWlkLW1pbnVzIChtYXgtd2lkdGg6IDEwMjNweCk7XG5AY3VzdG9tLW1lZGlhIC0tZm9vdGVyLWJwLW1pZCAobWluLXdpZHRoOiAxMDI0cHgpO1xuQGN1c3RvbS1tZWRpYSAtLWZvb3Rlci1icC1tYXgtbWludXMgKG1heC13aWR0aDogMTMxOXB4KTtcbkBjdXN0b20tbWVkaWEgLS1mb290ZXItYnAtbWF4IChtaW4td2lkdGg6IDEzMjBweCk7XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqXG4gKiBDT01QT05FTlQ6IE9VUiBHTE9CQUwgRk9PVEVSIC0tIEJBU0VcbiAqXG4gKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4uYy1mb290ZXIge1xuICBmb250LXNpemU6IHZhcigtLWZvb3Rlci1mb250LWJhc2UtbWluKTtcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nLCAnVHJlYnVjaGV0IE1TJywgVHJlYnVjaGV0LCBUYWhvbWEsIHNhbnMtc2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZWxlZ2liaWxpdHk7IC8qIENhbiBjYXVzZSBwcm9ibGVtcyBpbiBzb21lIHZlcnNpb25zIG9mIEFuZHJvaWQgKi9cbiAgIHRleHQtc2l6ZS1hZGp1c3Q6IG5vbmU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICBmb250LWRpc3BsYXk6IHN3YXA7IC8qIGh0dHBzOi8vd3d3LnphY2hsZWF0LmNvbS93ZWIvY29tcHJlaGVuc2l2ZS13ZWJmb250cy8jZm9udC1kaXNwbGF5ICovXG4gIGxpbmUtaGVpZ2h0OiAxLjQ1O1xuICBtYXJnaW4tdG9wOiBhdXRvO1xuXG4gIC8qIEZsdWlkIGZyb20gMTZweCB0byAyMHB4IGJldHdlZW4gYnJlYWtwb2ludHMgKi9cblxuICBAbWVkaWEgKC0tZm9vdGVyLWJwLW1pbikge1xuICAgICYge1xuICAgICBmb250LXNpemU6IHZhcigtLWZvb3Rlci1mb250LWJhc2UtbWluKTsgLyogMTZweCBhdCAzMjBweCAqLyAvKiBweCBmYWxsYmFjayBmb3IgYnJvd3NlcnMgdGhhdCBkb27igJl0IGdldCBjYWxjICovXG4gICAgIGZvbnQtc2l6ZTogY2FsYygxNnB4ICsgKDIwIC0gMTYpICogKCgxMDB2dyAtIDMyMHB4KS8oMTMyMCAtIDMyMCkpKTtcbiAgICB9XG4gIH1cblxuICBAbWVkaWEgKC0tZm9vdGVyLWJwLW1heCkge1xuICAgICYge1xuICAgICBmb250LXNpemU6IHZhcigtLWZvb3Rlci1mb250LWJhc2UtbWF4KTsgLyogMjBweCBhdCAxMzIwcHggKi9cbiAgICB9XG4gIH1cbn1cblxuLmMtZm9vdGVyICoge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAmOjpiZWZvcmUsICY6OmFmdGVyIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB9XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbipcbiogQ09NUE9ORU5UOiBPVVIgR0xPQkFMIEZPT1RFUiAtLSBPVkVSUklERVNcbiogT3ZlcnJpZGUgb3ZlcmFyY2hpbmcgcHJvcGVydGllcyBpbiBjdXJyaWN1bHVtIGdhdGV3YXkgdGhlbWVcbipcbiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLmMtZm9vdGVyIGxpIHtcbiAgcGFkZGluZy1sZWZ0OiBpbmhlcml0O1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbn1cblxuLmMtZm9vdGVyIGxpOjpiZWZvcmUsXG4uYy1mb290ZXIgbGk6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IG5vcm1hbDtcbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKlxuKiBDT01QT05FTlQ6IE9VUiBHTE9CQUwgRk9PVEVSIC0tIFNUWUxFU1xuKlxuKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4uYy1mb290ZXIge1xuICBwYWRkaW5nOiAuNzVlbSAxZW0gNGVtOyAvKiBGYXQgcGFkZGluZy1ib3R0b20gYWNjb21tb2RhdGVzIGZlZWRiYWNrIHdpZGdldCAqL1xuICBjb2xvcjogcmdiYSgxMDAlLDEwMCUsMTAwJSwuNjUpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1mb290ZXItb3VyLXByaW1hcnktZGFyay1ncmF5KTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBAbWVkaWEgKC0tZm9vdGVyLWJwLW1pY3JvKSB7XG4gICAgJiB7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIH1cbiAgfVxufVxuXG4uYy1mb290ZXIgYSB7XG4gICBjb2xvcjogcmdiYSgxMDAlLDEwMCUsMTAwJSwuOCk7XG4gICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cblxuLmMtZm9vdGVyIGE6aG92ZXIge1xuICAgY29sb3I6IHZhcigtLWZvb3Rlci13aGl0ZSk7XG4gICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cblxuLmMtZm9vdGVyX19uYXZzIHtcbiAgZm9udC1zaXplOiB2YXIoLS1mb290ZXItemV0YSk7XG4gIEBtZWRpYSAoLS1mb290ZXItYnAtbWljcm8pIHtcbiAgICAmIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIH1cbiAgfVxufVxuXG4uYy1mb290ZXJfX25hdi1jb3Jwb3JhdGUge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW46IGNhbGMoLjUgKiB2YXIoLS1mb290ZXItZmx1aWQtZW0pKSAwIDA7XG4gIHBhZGRpbmc6IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBAbWVkaWEgKC0tZm9vdGVyLWJwLW1pY3JvKSB7XG4gICAgJiB7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIH1cbiAgfVxufVxuXG4uYy1mb290ZXJfX25hdi1zb2NpYWwge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW46IHZhcigtLWZvb3Rlci1mbHVpZC1lbSkgMCAwO1xuICBwYWRkaW5nOiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgQG1lZGlhICgtLWZvb3Rlci1icC1taWNybykge1xuICAgICYge1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICB9XG4gIH1cbn1cblxuLmMtZm9vdGVyX19vdXItbG9nbyB7XG4gIGhlaWdodDogY2FsYygyICogdmFyKC0tZm9vdGVyLWZsdWlkLWVtKSk7XG4gIHdpZHRoOiBhdXRvO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiBjYWxjKC4yNSAqIHZhcigtLWZvb3Rlci1mbHVpZC1lbSkpIGF1dG8gMDtcbiAgQG1lZGlhICgtLWZvb3Rlci1icC1taWNybykge1xuICAgICYge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgdG9wOiBjYWxjKC4xMjUgKiB2YXIoLS1mb290ZXItZmx1aWQtZW0pKTtcbiAgICAgIG1hcmdpbi1yaWdodDogdmFyKC0tZm9vdGVyLWZsdWlkLWVtKTtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgfVxuICB9XG4gIEBtZWRpYSAoLS1mb290ZXItYnAtbWF4KSB7XG4gICAgJiB7XG4gICAgICB0b3A6IGNhbGMoLjEyNSAqIHZhcigtLWZvb3Rlci1mb250LWJhc2UtbWF4KSk7XG4gICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWZvb3Rlci1mb250LWJhc2UtbWF4KTtcbiAgICAgIGhlaWdodDogY2FsYygyICogdmFyKC0tZm9vdGVyLWZvbnQtYmFzZS1tYXgpKTtcbiAgICB9XG4gIH1cbn1cblxuLmMtZm9vdGVyX19uYXYtY29ycG9yYXRlIGxpLFxuLmMtZm9vdGVyX19uYXYtc29jaWFsIGxpIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLmMtZm9vdGVyX19uYXYtY29ycG9yYXRlIGxpICsgbGkge1xuICBtYXJnaW4tbGVmdDogdmFyKC0tZm9vdGVyLWZvbnQtYmFzZS1tYXgpO1xuICBAbWVkaWEgKC0tZm9vdGVyLWJwLW1heCkge1xuICAgICYge1xuICAgICAgbWFyZ2luLWxlZnQ6IHZhcigtLWZvb3Rlci1mb250LWJhc2UtbWF4KTtcbiAgICB9XG4gIH1cbn1cblxuLmMtZm9vdGVyX19uYXYtc29jaWFsIGxpICsgbGkge1xuICBtYXJnaW4tbGVmdDogdmFyKC0tZm9vdGVyLWZvbnQtYmFzZS1tYXgpO1xuICBAbWVkaWEgKC0tZm9vdGVyLWJwLW1heCkge1xuICAgICYge1xuICAgICAgbWFyZ2luLWxlZnQ6IHZhcigtLWZvb3Rlci1mb250LWJhc2UtbWF4KTtcbiAgICB9XG4gIH1cbn1cblxuLmMtZm9vdGVyX19zb2NpYWwtaWNvbiB7XG4gIGhlaWdodDogMWVtO1xuICB3aWR0aDogYXV0bztcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5jLWZvb3Rlcl9fY29weXJpZ2h0cyB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZm9vdGVyLWV0YSk7XG4gIG1hcmdpbi10b3A6IHZhcigtLWZvb3Rlci1mbHVpZC1lbSk7XG4gIHBhZGRpbmctdG9wOiB2YXIoLS1mb290ZXItZmx1aWQtZW0pO1xuICBib3JkZXItdG9wOiBzb2xpZCAxcHggcmdiYSgxMDAlLDEwMCUsMTAwJSwuMzUpO1xuICBAbWVkaWEgKC0tZm9vdGVyLWJwLW1pY3JvKSB7XG4gICAgJiB7XG4gICAgICBtYXJnaW4tdG9wOiBjYWxjKC43NSAqIHZhcigtLWZvb3Rlci1mbHVpZC1lbSkpO1xuICAgIH1cbiAgfVxuICBAbWVkaWEgKC0tZm9vdGVyLWJwLW1heCkge1xuICAgICYge1xuICAgICAgcGFkZGluZy10b3A6IHZhcigtLWZvb3Rlci1mb250LWJhc2UtbWF4KTtcbiAgICAgIG1hcmdpbi10b3A6IGNhbGMoLjc1ICogdmFyKC0tZm9vdGVyLWZvbnQtYmFzZS1tYXgpKTtcbiAgICB9XG4gIH1cbn1cblxuLmMtZm9vdGVyX19jb3B5cmlnaHRzOm9ubHktY2hpbGQsXG4uYy1mb290ZXJfX2NvcHlyaWdodHM6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwO1xuICBib3JkZXI6IG5vbmU7XG4gIHBhZGRpbmctdG9wOiBjYWxjKC4yNSAqIHZhcigtLWZvb3Rlci1mbHVpZC1lbSkpO1xuICBAbWVkaWEgKC0tZm9vdGVyLWJwLW1heCkge1xuICAgICYge1xuICAgICAgcGFkZGluZy10b3A6IGNhbGMoLjI1ICogdmFyKC0tZm9vdGVyLWZvbnQtYmFzZS1tYXgpKTtcbiAgICB9XG4gIH1cbn1cblxuLmMtZm9vdGVyX19idWlsZCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICpcbiAqIENPTVBPTkVOVDogT1VSIE1PREFMIE1FU1NBR0VcbiAqIEludGVuZGVkIGZvciBvbmx5IHZlcnkgc2hvcnQgbWVzc2FnZXMuIE1lc3NhZ2UgYm94IGdyb3dzIHdpdGggY29udGVudCxcbiAqIHNvIHRoaXMgY29tcG9uZW50IGlzIG5vdCBhcHByb3ByaWF0ZSBmb3IgY29udGVudCB0aGF0IG1pZ2h0IGV4Y2VlZFxuICogdGhlIGhlaWdodCBvZiB0aGUgdmlld3BvcnQgb24gYW55IGRldmljZS5cbiAqXG4gKiBCb251cyEgQm9keSBwcm9wZXJ0aWVzIHRvIHByZXZlbnQgc2Nyb2xsaW5nIHdoZW4gdGhlIG1vZGFsIGlzIG9wZW4uXG4gKlxuICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKlxuKiBDT01QT05FTlQ6IE9VUiBNT0RBTCBNRVNTQUdFIC0tIFJPQk9UTyBGT05UU1xuKlxuKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKiBSb2JvdG8gYXQgNDAwIHdlaWdodCBpcyBuZWNlc3NhcnkgZm9yIHRoZSB0eXBvZ3JhcGh5IGluIHRoaXMgY29tcG9uZW50LiAqL1xuLyogUm9ib3RvIGF0IDUwMCB3ZWlnaHQgaXMgbmVjZXNzYXJ5IGZvciB0aGUgYnV0dG9uIGluIHRoaXMgY29tcG9uZW50LiAqL1xuLyogSWYgR29vZ2xlIEZvbnRzIGFyZSBhbHJlYWR5IGltcG9ydGVkIGludG8gdGhlIGFwcCwgYXBwZW5kIFwiUm9ib3RvOjQwMCw1MDAsNzAwXCIgaWYgbmVjZXNzYXJ5LiAqL1xuLyogSWYgR29vZ2xlIEZvbnRzIGFyZSBub3QgYWxyZWFkeSBpbXBvcnRlZCwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgaW1wb3J0IHN0YXRlbWVudCBvciAoYmV0dGVyKSBhZGRcbnRoZSBlcXVpdmFsZW50IHRvIHRoZSA8aGVhZD4gb2YgdGhlIGFwcC4gKi9cbi8qIEBpbXBvcnQgdXJsKCdodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2Nzcz9mYW1pbHk9Um9ib3RvOjQwMCw1MDAmc3Vic2V0PWxhdGluJyk7ICovXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqXG4gKiBDT01QT05FTlQ6IE9VUiBNT0RBTCBNRVNTQUdFIC0tIFZBUklBQkxFU1xuICpcbiAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbjpyb290IHtcblxuICAvKiBDb2xvciBwYWxldHRlICovXG5cbiAgLS1tb2RhbC10ZWFsOiAgICAgICAjMDA4NDcwO1xuICAtLW1vZGFsLWxpZ2h0LWdyYXk6ICNlYmViZWI7IC8qIDglIGJsYWNrICovXG4gIC0tbW9kYWwtd2hpdGU6ICAgICAgI2ZmZmZmZjtcblxuICAvKlxuICAgIFR5cG9ncmFwaGljIHNpemVzXG5cbiAgKi9cblxuICAtLW1vZGFsLWZvbnQtYmFzZS1taW46IDE2cHg7XG4gIC0tbW9kYWwtZm9udC1iYXNlLW1heDogMjBweDtcbiAgLS1tb2RhbC1mbHVpZC1lbTogICAgICBjYWxjKDE2cHggKyAoMjAgLSAxNikgKiAoKDEwMHZ3IC0gMzIwcHgpLygxMzIwIC0gMzIwKSkpO1xuICAtLW1vZGFsLWJldGE6ICAgICAgICAgIDEuNzg0ZW07XG4gIC0tbW9kYWwtZ2FtbWE6ICAgICAgICAgMS4yZW07XG4gIC0tbW9kYWwtZGVsdGE6ICAgICAgICAgMWVtO1xuICAtLW1vZGFsLXpldGE6ICAgICAgICAgIC44NzVlbTtcbiAgLS1tb2RhbC1ldGE6ICAgICAgICAgICAuNzVlbTtcblxufVxuXG4vKiBWaWV3cG9ydCBXaWR0aCBWYXJpYWJsZXMgKi9cblxuOnJvb3Qge1xuXG4gIC0tbW9kYWwtYnAtbWluOiAgICAgICAgICAzMjBweDtcbiAgLS1tb2RhbC1icC1tZWdhOiAgICAgICAgIDEwMjRweDtcbiAgLS1tb2RhbC1icC1tYXg6ICAgICAgICAgIDEzMjBweDtcblxufVxuXG4vKiBDdXN0b20gTWVkaWEgRGVjbGFyYXRpb25zIGZvciBCcmVha3BvaW50cyAqL1xuXG5AY3VzdG9tLW1lZGlhIC0tbW9kYWwtYnAtbWluIChtaW4td2lkdGg6IDMyMHB4KTtcbkBjdXN0b20tbWVkaWEgLS1tb2RhbC1icC1tZWdhIChtaW4td2lkdGg6IDEwMjRweCk7XG5AY3VzdG9tLW1lZGlhIC0tbW9kYWwtYnAtbWF4IChtaW4td2lkdGg6IDEzMjBweCk7XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbipcbiogQ09NUE9ORU5UOiBPVVIgTU9EQUwgTUVTU0FHRSAtLSBUWVBPR1JBUEhZXG4qXG4qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi5jLW1vZGFsIHtcbiAgZm9udC1zaXplOiB2YXIoLS1tb2RhbC1mb250LWJhc2UtbWluKTtcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nLCAnVHJlYnVjaGV0IE1TJywgVHJlYnVjaGV0LCBUYWhvbWEsIHNhbnMtc2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICBmb250LWRpc3BsYXk6IHN3YXA7IC8qIGh0dHBzOi8vd3d3LnphY2hsZWF0LmNvbS93ZWIvY29tcHJlaGVuc2l2ZS13ZWJmb250cy8jZm9udC1kaXNwbGF5ICovXG4gIGxpbmUtaGVpZ2h0OiAxLjM1O1xuXG4gIC8qIEZsdWlkIGZyb20gMTZweCB0byAyMHB4IGJldHdlZW4gYnJlYWtwb2ludHMgKi9cblxuICAvKiBGbHVpZCB0eXBlIHNpemUgZnJvbSAxNnB4IHRvIDIwcHggYmV0d2VlbiAtLW1vZGFsLWJwLW1pbiBhbmQgLS1tb2RhbC1icC1tYXggYnJlYWtwb2ludHMgKi9cblxuICBAbWVkaWEgKC0tbW9kYWwtYnAtbWluKSB7XG4gICAgJiB7XG4gICAgICBmb250LXNpemU6IHZhcigtLW1vZGFsLWZvbnQtYmFzZS1taW4pOyAvKiAxNnB4IGF0IDMyMHB4ICovXG4gICAgICBmb250LXNpemU6IGNhbGMoMTZweCArICgyMCAtIDE2KSAqICgoMTAwdncgLSAzMjBweCkvKDEzMjAgLSAzMjApKSk7XG4gICAgfVxuICB9XG5cbiAgQG1lZGlhICgtLW1vZGFsLWJwLW1heCkge1xuICAgICYge1xuICAgICAgZm9udC1zaXplOiB2YXIoLS1tb2RhbC1mb250LWJhc2UtbWF4KTsgLyogMjBweCBhdCAxMzIwcHggKi9cbiAgICB9XG4gIH1cblxuICAvKiBGbHVpZCBsaW5lLWhlaWdodCBmcm9tIDEuMzUgdG8gMS40NSBiZXR3ZWVuIC0tbW9kYWwtYnAtbWluIGFuZCAtLW1vZGFsLWJwLW1heCBicmVha3BvaW50cyAqL1xuXG4gIEBtZWRpYSAoLS1tb2RhbC1icC1taW4pIHtcbiAgICBsaW5lLWhlaWdodDogMS4zNTsgLyogMS4zNSBhdCAzMjBweCAqL1xuICAgIGxpbmUtaGVpZ2h0OiBjYWxjKDEuMzVlbSArICgxLjQ1IC0gMS4zNSkgKiAoKDEwMHZ3IC0gMzIwcHgpLygxMzIwIC0gMzIwKSkpO1xuICB9XG5cbiAgQG1lZGlhICgtLW1vZGFsLWJwLW1heCkge1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ1OyAvKiAxLjQ1IGF0IDEzMjBweCAqL1xuICB9XG5cblxufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qXG4qIENPTVBPTkVOVDogT1VSIE1PREFMIE1FU1NBR0UgLS0gU1RZTEVTXG4qXG4qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmJvZHkubC1oYXMtbW9kYWwge1xuICBvdmVyZmxvdy15OiBoaWRkZW47XG59XG5cbi5jLW1vZGFsIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmMtbW9kYWwgKiB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbmJvZHkubC1oYXMtbW9kYWwgLmMtbW9kYWwge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcbiAgei1pbmRleDogODY3NTMxMDtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC44NSkgIWltcG9ydGFudDtcbn1cblxuLmMtbW9kYWxfX2NvbnRlbnQge1xuICBtYXJnaW4tbGVmdDogNXZ3O1xuICBtYXJnaW4tcmlnaHQ6IDV2dztcbiAgcGFkZGluZzogMmVtO1xuICB6LWluZGV4OiA4Njc1MzEwO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1tb2RhbC10ZWFsKTtcbiAgY29sb3I6IHZhcigtLW1vZGFsLXdoaXRlKTtcbiAgYm94LXNoYWRvdzogMCAyNXB4IDEwMHB4IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgYm9yZGVyLXJhZGl1czogLjI1ZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG5AbWVkaWEgKC0tbW9kYWwtYnAtbWVnYSkge1xuICAuYy1tb2RhbF9fY29udGVudCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAxNXZ3O1xuICAgIG1hcmdpbi1sZWZ0OiAxNXZ3O1xuICB9XG59XG5cbi5jLW1vZGFsIHAge1xuICBtYXJnaW4tYm90dG9tOiAxZW07XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG59XG5cbmEuYy1tb2RhbF9fY2xvc2UsXG5hLmMtbW9kYWxfX2Nsb3NlOmxpbmssXG5hLmMtbW9kYWxfX2Nsb3NlOnZpc2l0ZWRcbmEuYy1tb2RhbF9fY2xvc2U6YWN0aXZlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRvcDogY2FsYyguMTI1ICogdmFyKC0tbW9kYWwtZmx1aWQtZW0pKTtcbiAgcmlnaHQ6IGNhbGMoLjUgKiB2YXIoLS1tb2RhbC1mbHVpZC1lbSkpO1xuICBmb250LXNpemU6IHZhcigtLW1vZGFsLWJldGEpO1xuICBsaW5lLWhlaWdodDogMTtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgY29sb3I6IHZhcigtLW1vZGFsLXdoaXRlKTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBvcGFjaXR5OiAuODtcbiAgdHJhbnNpdGlvbjogbm9uZTtcbn1cblxuYS5jLW1vZGFsX19jbG9zZTpmb2N1cyxcbmEuYy1tb2RhbF9fY2xvc2U6aG92ZXIge1xuICBvcGFjaXR5OiAxO1xuICBjb2xvcjogdmFyKC0tbW9kYWwtd2hpdGUpO1xufVxuXG5hLmMtbW9kYWxfX2NhbmNlbCxcbmEuYy1tb2RhbF9fY2FuY2VsOmxpbmssXG5hLmMtbW9kYWxfX2NhbmNlbDp2aXNpdGVkXG5hLmMtbW9kYWxfX2NhbmNlbDphY3RpdmUge1xuICBmb250LXNpemU6IHZhcigtLW1vZGFsLWV0YSk7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogdmFyKC0tbW9kYWwtbGlnaHQtZ3JheSk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIG1pbi1oZWlnaHQ6IDIuMzc1ZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIG1hcmdpbjogY2FsYyguMjUgKiB2YXIoLS1tb2RhbC1mbHVpZC1lbSkpIDAgMDtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICB0cmFuc2l0aW9uOiBub25lO1xufVxuXG5hLmMtbW9kYWxfX2NhbmNlbDpmb2N1cyxcbmEuYy1tb2RhbF9fY2FuY2VsOmhvdmVyIHtcbiAgY29sb3I6IHZhcigtLW1vZGFsLXdoaXRlKTtcbn1cblxuLmMtbW9kYWxfX2NvbnRlbnQge1xuICAmID4gaDEge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tbW9kYWwtZ2FtbWEpO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIH1cblxuICAmID4gYVtyb2xlPVwiYnV0dG9uXCJdLFxuICAmID4gYVtyb2xlPVwiYnV0dG9uXCJdOmxpbmssXG4gICYgPiBhW3JvbGU9XCJidXR0b25cIl06dmlzaXRlZFxuICAmID4gYVtyb2xlPVwiYnV0dG9uXCJdOmFjdGl2ZSB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1tb2RhbC1ldGEpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlcjogY2FsYyguMDYyNSAqIHZhcigtLW1vZGFsLWZsdWlkLWVtKSkgc29saWQgdmFyKC0tbW9kYWwtbGlnaHQtZ3JheSk7XG4gICAgYm9yZGVyLXJhZGl1czogY2FsYyguMjUgKiB2YXIoLS1tb2RhbC1mbHVpZC1lbSkpO1xuICAgIGNvbG9yOiB2YXIoLS1tb2RhbC1saWdodC1ncmF5KTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbWluLWhlaWdodDogMi4zNzVlbTtcbiAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgIHBhZGRpbmc6IC43NWVtIDEuODc1ZW07XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIG1hcmdpbjogY2FsYyguMjUgKiB2YXIoLS1tb2RhbC1mbHVpZC1lbSkpIDAgMDtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgfVxuXG4gICYgPiBhW3JvbGU9XCJidXR0b25cIl06Zm9jdXMsXG4gICYgPiBhW3JvbGU9XCJidXR0b25cIl06aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tbW9kYWwtd2hpdGUpO1xuICAgIGNvbG9yOiB2YXIoLS1tb2RhbC13aGl0ZSk7XG4gIH1cblxuICAmID4gYVtyZWw9XCJhbHRlcm5hdGVcIl0sXG4gICYgPiBhW3JlbD1cImFsdGVybmF0ZVwiXTpsaW5rLFxuICAmID4gYVtyZWw9XCJhbHRlcm5hdGVcIl06dmlzaXRlZFxuICAmID4gYVtyZWw9XCJhbHRlcm5hdGVcIl06YWN0aXZlIHtcbiAgICBmb250LXNpemU6IHZhcigtLW1vZGFsLXpldGEpO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyLjVlbTtcbiAgICBtYXJnaW46IGNhbGMoLjUgKiB2YXIoLS1tb2RhbC1mbHVpZC1lbSkpIDA7XG4gIH1cblxuICAmID4gYVtyZWw9XCJhbHRlcm5hdGVcIl06OmFmdGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgbWFyZ2luLXRvcDogLS41ZW07XG4gICAgcmlnaHQ6IC4xMjVlbTtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXItdG9wOiB0cmFuc3BhcmVudCBzb2xpZCAuNWVtO1xuICAgIGJvcmRlci1yaWdodDogdHJhbnNwYXJlbnQgc29saWQgLjc1ZW07XG4gICAgYm9yZGVyLWJvdHRvbTogdHJhbnNwYXJlbnQgc29saWQgLjVlbTtcbiAgICBib3JkZXItbGVmdDogdmFyKC0tbW9kYWwtbGlnaHQtZ3JheSkgc29saWQgLjc1ZW07XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIH1cblxuICAmID4gYVtyZWw9XCJhbHRlcm5hdGVcIl06Zm9jdXM6OmFmdGVyLFxuICAmID4gYVtyZWw9XCJhbHRlcm5hdGVcIl06aG92ZXI6OmFmdGVyIHtcbiAgICBib3JkZXItbGVmdC1jb2xvcjogdmFyKC0tbW9kYWwtd2hpdGUpO1xuICB9XG59XG5cbi5oLW1vZGFsLXVybC13cmFwIHtcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xufVxuIiwiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICpcbiAqIENPTVBPTkVOVDogT1VSIEdMT0JBTCBOQVZcbiAqIEluY2x1ZGVkIGluIHRoaXMgZG9jdW1lbnQ6IFZhcmlhYmxlcywgQmFzZSwgU3R5bGVzXG4gKlxuICogVGhlIGluc3RhbmNlIG9mIHRoZSBnbG9iYWwgbmF2IGVtYmVkZGVkIHdpdGhpblxuICogdGhlIHJlZyBhcHAgaXMgY2Fub25pY2FsLlxuICogKGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVudXByZXNvdXJjZXMvY3VycmljdWx1bS1nYXRld2F5KVxuICpcbiAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqXG4gKiBDT01QT05FTlQ6IE9VUiBHTE9CQUwgTkFWIC0tIFJPQk9UTyBGT05UU1xuICpcbiAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbiAvKiBBdm9pZCBsb2FkaW5nIHVubmVjZXNzYXJ5IGZvbnQgd2VpZ2h0cyEgKi9cbiAvKiBBbHdheXMgbmVjZXNzYXJ5OiAqL1xuICAgIC8qIFJvYm90byA1MDAgZm9yIHRvcCBhbmQgc2Vjb25kLWxldmVsIGxpc3QgaXRlbXMuICovXG4gLyogU29tZXRpbWVzIG5lY2Vzc2FyeTogKi9cbiAgICAvKiBSb2JvdG8gNDAwIGZvciB0aGlyZC1sZXZlbCBsaXN0IGl0ZW1zIGluIG5hcnJvdyB2aWV3cG9ydHMgYW5kIGdsb2JhbCBub3RpZmljYXRpb25zLiAqL1xuIC8qIE9ubHkgbmVjZXNzYXJ5IGluIHRoZSBDdXJyaWN1bHVtIEdhdGV3YXkvUmVnIEFwcDogKi9cbiAgICAvKiBSb2JvdG8gNzAwIGZvciDigJxDcmVhdGUgTmV3IEFjY291bnTigJ0gb24gbG9naW4gcGFnZS4gKi9cblxuIC8qIElmIEdvb2dsZSBGb250cyBhcmUgYWxyZWFkeSBpbXBvcnRlZCBpbnRvIHRoZSBhcHAsIGluY2x1ZGUgXCImZmFtaWx5PVJvYm90bzppdGFsLHdnaHRAMCw0MDA7MCw1MDA7MSw3MDBcIiBhcyBuZWNlc3NhcnkuICovXG4gLyogSWYgR29vZ2xlIEZvbnRzIGFyZSBub3QgYWxyZWFkeSBpbXBvcnRlZCwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgaW1wb3J0IHN0YXRlbWVudCBvciAoYmV0dGVyKSBhZGRcbiB0aGUgZXF1aXZhbGVudCB0byB0aGUgPGhlYWQ+IG9mIHRoZSBhcHAuICovXG4gLyogQGltcG9ydCB1cmwoJ2h0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzMj9mYW1pbHk9Um9ib3RvOml0YWwsd2dodEAwLDQwMDswLDUwMDsxLDcwMCZkaXNwbGF5PXN3YXAnKTsgKi9cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICpcbiAqIENPTVBPTkVOVDogT1VSIEdMT0JBTCBOQVYgLS0gVkFSSUFCTEVTXG4gKlxuICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLyogQ29sb3IgcGFsZXR0ZSAqL1xuXG46cm9vdCB7XG5cbiAgLyogQ29sb3JzIHdpdGggXCItb3VyLVwiIGluIHRoZWlyIG5hbWUgYXJlIHNvdXJjZWQgZnJvbSB0aGUgT1VSIGJyYW5kIGd1aWRlbGluZXMgKi9cblxuLS1uYXYtZ2xvYmFsLW91ci1wcmltYXJ5LW9yYW5nZTogICAgICAgcmdiKDI1Miw3NiwyKTsgICAgLyogI0ZDNEMwMiAqL1xuLS1uYXYtZ2xvYmFsLW91ci1nbG9iYWxuYXYtb3JhbmdlOiAgICAgcmdiKDI0MSw4OSw0Mik7ICAgLyogI0YxNTkyQSAgLSBhIGxlc3MgYnJpZ2h0IG9yYW5nZSAqL1xuLS1uYXYtZ2xvYmFsLW91ci1wcmltYXJ5LXllbGxvdzogICAgICAgcmdiKDI1NSwxODQsMjgpOyAgLyogI0ZGQjgxQyAqL1xuLS1uYXYtZ2xvYmFsLW91ci1wcmltYXJ5LWdyYXk6ICAgICAgICAgcmdiKDExMCw5OCw4OSk7ICAgLyogIzZFNjI1OSAqL1xuLS1uYXYtZ2xvYmFsLW91ci1wcmltYXJ5LWRhcmstZ3JheTogICAgcmdiKDY5LDUzLDU0KTsgICAgLyogIzQ1MzUzNiAqL1xuLS1uYXYtZ2xvYmFsLXdoaXRlOiAgICAgICAgICAgICAgICAgICAgd2hpdGU7XG4tLW5hdi1nbG9iYWwtbGlnaHQtZ3JheTogICAgICAgICAgICAgICByZ2IoMjQxLDI0MSwyNDEpO1xuXG4vKlxuICBUeXBvZ3JhcGhpYyBzaXplc1xuXG4gIEZvbnQgc2l6ZXMgYmFzZWQgb24gbWlub3IgdGhpcmQgKDEuMikgaHR0cDovL3d3dy5tb2R1bGFyc2NhbGUuY29tLz8xJmVtJjEuMlxuXG4qL1xuXG4tLW5hdi1nbG9iYWwtZm9udC1iYXNlLW1pbjogMTZweDtcbi0tbmF2LWdsb2JhbC1mb250LWJhc2UtbWF4OiAyMHB4O1xuLS1uYXYtZ2xvYmFsLWZsdWlkLWVtOiAgICAgIGNhbGMoMTZweCArICgyMCAtIDE2KSAqICgoMTAwdncgLSAzMjBweCkvKDEzMjAgLSAzMjApKSk7XG4tLW5hdi1nbG9iYWwtZGVsdGE6ICAgICAgICAgMS4yZW07XG4tLW5hdi1nbG9iYWwtZXBzaWxvbjogICAgICAgLjgzM2VtO1xuLS1uYXYtZ2xvYmFsLXpldGE6ICAgICAgICAgIC44ZW07XG5cbn1cblxuLyogQ3VzdG9tIE1lZGlhIERlY2xhcmF0aW9ucyBmb3IgQnJlYWtwb2ludHMgKi9cblxuQGN1c3RvbS1tZWRpYSAtLW5hdi1nbG9iYWwtYnAtbWluLW1pbnVzIChtYXgtd2lkdGg6IDUzNnB4KTtcbkBjdXN0b20tbWVkaWEgLS1uYXYtZ2xvYmFsLWJwLW1pbiAobWluLXdpZHRoOiA1MzdweCk7XG5AY3VzdG9tLW1lZGlhIC0tbmF2LWdsb2JhbC1icC1taWQtbWludXMgKG1heC13aWR0aDogMTAyM3B4KTtcbkBjdXN0b20tbWVkaWEgLS1uYXYtZ2xvYmFsLWJwLW1pZCAobWluLXdpZHRoOiAxMDI0cHgpO1xuQGN1c3RvbS1tZWRpYSAtLW5hdi1nbG9iYWwtYnAtbWF4LW1pbnVzIChtYXgtd2lkdGg6IDEzMTlweCk7XG5AY3VzdG9tLW1lZGlhIC0tbmF2LWdsb2JhbC1icC1tYXggKG1pbi13aWR0aDogMTMyMHB4KTtcblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICpcbiAqIENPTVBPTkVOVDogT1VSIEdMT0JBTCBOQVYgLS0gQkFTRVxuICpcbiAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi5jLW5hdi1nbG9iYWwge1xuICAgZm9udC1zaXplOiB2YXIoLS1uYXYtZ2xvYmFsLWZvbnQtYmFzZS1taW4pO1xuICAgZm9udC1mYW1pbHk6ICdSb2JvdG8nLCAnVHJlYnVjaGV0IE1TJywgVHJlYnVjaGV0LCBUYWhvbWEsIHNhbnMtc2VyaWY7XG4gICBmb250LXdlaWdodDogNTAwO1xuICAgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplbGVnaWJpbGl0eTsgLyogQ2FuIGNhdXNlIHByb2JsZW1zIGluIHNvbWUgdmVyc2lvbnMgb2YgQW5kcm9pZCAqL1xuICAgICB0ZXh0LXNpemUtYWRqdXN0OiBub25lO1xuICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAgZm9udC1kaXNwbGF5OiBzd2FwOyAvKiBodHRwczovL3d3dy56YWNobGVhdC5jb20vd2ViL2NvbXByZWhlbnNpdmUtd2ViZm9udHMvI2ZvbnQtZGlzcGxheSAqL1xuICAgbGluZS1oZWlnaHQ6IDEuNDU7XG5cbiAgIC8qIEZsdWlkIGZyb20gMTZweCB0byAyMHB4IGJldHdlZW4gYnJlYWtwb2ludHMgKi9cblxuICAgQG1lZGlhICgtLW5hdi1nbG9iYWwtYnAtbWluKSB7XG4gICAgICYge1xuICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tbmF2LWdsb2JhbC1mb250LWJhc2UtbWluKTsgLyogMTZweCBhdCAzMjBweCAqLyAvKiBweCBmYWxsYmFjayBmb3IgYnJvd3NlcnMgdGhhdCBkb27igJl0IGdldCBjYWxjICovXG4gICAgICAgZm9udC1zaXplOiBjYWxjKDE2cHggKyAoMjAgLSAxNikgKiAoKDEwMHZ3IC0gMzIwcHgpLygxMzIwIC0gMzIwKSkpO1xuICAgICB9XG4gICB9XG5cbiAgIEBtZWRpYSAoLS1uYXYtZ2xvYmFsLWJwLW1heCkge1xuICAgICAmIHtcbiAgICAgICBmb250LXNpemU6IHZhcigtLW5hdi1nbG9iYWwtZm9udC1iYXNlLW1heCk7IC8qIDIwcHggYXQgMTMyMHB4ICovXG4gICAgIH1cbiAgIH1cbn1cblxuLmMtbmF2LWdsb2JhbCAqIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgJjo6YmVmb3JlLCAmOjphZnRlciB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgfVxufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKlxuICogQ09NUE9ORU5UOiBPVVIgR0xPQkFMIE5BViAtLSBTVFlMRVNcbiAqXG4gKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4uYy1uYXYtZ2xvYmFsIHtcbiAgQG1lZGlhICgtLW5hdi1nbG9iYWwtYnAtbWlkKSB7XG4gICAgJiB7XG4gICAgICB6LWluZGV4OiA4Njc1MzA5O1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICB9XG59XG5cbi5jLW5hdi1nbG9iYWxfX3dyYXBwZXIge1xuICBwYWRkaW5nOiAuNzVlbSAxZW07XG4gIGJhY2tncm91bmQ6IHZhcigtLW5hdi1nbG9iYWwtb3VyLWdsb2JhbG5hdi1vcmFuZ2UpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBvc2l0aW9uOnJlbGF0aXZlO1xuICBAbWVkaWEgKC0tbmF2LWdsb2JhbC1icC1taWQpIHtcbiAgICAmIHtcbiAgICAgIHBhZGRpbmc6IDAgLjI1ZW0gMCAxZW07XG4gICAgfVxuICB9XG59XG5cbi5jLW5hdi1nbG9iYWxfX2xvZ29saW5rIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIEBtZWRpYSAoLS1uYXYtZ2xvYmFsLWJwLW1pZCkge1xuICAgICYge1xuICAgICAgcGFkZGluZzogMC44MzEyNWVtIDA7XG4gICAgfVxuICB9XG59XG5cbi5jLW5hdi1nbG9iYWxfX2xvZ29pbWcge1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiAyZW07XG4gIHdpZHRoOiBhdXRvO1xufVxuXG4uYy1uYXYtZ2xvYmFsX19tZW51IHtcbiAgZGlzcGxheTppbmxpbmUtYmxvY2s7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY29sb3I6IHZhcigtLW5hdi1nbG9iYWwtd2hpdGUpO1xuICBib3JkZXI6IDNweCB2YXIoLS1uYXYtZ2xvYmFsLW91ci1wcmltYXJ5LXllbGxvdykgc29saWQ7IC8qIE5vcm1hbGx5LCBJIHByZWZlciByZW1zL2VtcyBmb3IgYWxsIGRpbWVuc2lvbnMsIGJ1dCBicm93c2VyIHJvdW5kaW5nIG9uIGFuIGVsZW1lbnQgdGhpcyBzbWFsbCByZXN1bHRzIGluIGRpZmZlcmVudCBwaXhlbCB3aWR0aHMgYWNyb3NzIGFkamFjZW50IGluc3RhbmNlcyBvZiB0aGlzIHNhbWUgZWxlbWVudC4gVGhlIGRpZmZlcmVuY2UgaXMgbm90aWNlYWJsZSBhbmQgYW5ub3lpbmcuICAqL1xuICBib3JkZXItcmFkaXVzOiBjYWxjKDEuMjUgKiB2YXIoLS1uYXYtZ2xvYmFsLWZsdWlkLWVtKSk7XG4gIHBhZGRpbmc6IGNhbGMoLjUgKiB2YXIoLS1uYXYtZ2xvYmFsLWZsdWlkLWVtKSkgY2FsYyh2YXIoLS1uYXYtZ2xvYmFsLWZsdWlkLWVtKSk7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxpbmUtaGVpZ2h0OiBjYWxjKHZhcigtLW5hdi1nbG9iYWwtZmx1aWQtZW0pKTtcbiAgd2lkdGg6IGNhbGMoNSAqIHZhcigtLW5hdi1nbG9iYWwtZmx1aWQtZW0pKTtcbiAgdGV4dC1hbGlnbjpjZW50ZXI7XG4gIGZvbnQtc2l6ZTogdmFyKC0tbmF2LWdsb2JhbC1lcHNpbG9uKTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgQG1lZGlhICgtLW5hdi1nbG9iYWwtYnAtbWlkKSB7XG4gICAgJiB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuICAmOmxpbmssXG4gICY6dmlzaXRlZCxcbiAgJjpob3ZlcixcbiAgJjphY3RpdmUge1xuICAgIGNvbG9yOiB2YXIoLS1uYXYtZ2xvYmFsLXdoaXRlKTtcbiAgfVxufVxuXG4uYy1uYXYtZ2xvYmFsX19uYXYge1xuICBAbWVkaWEgKC0tbmF2LWdsb2JhbC1icC1taWQtbWludXMpIHtcbiAgICAmIHtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLW5hdi1nbG9iYWwtb3VyLWdsb2JhbG5hdi1vcmFuZ2UpO1xuICAgICAgcGFkZGluZzogLjc1ZW0gMWVtO1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gICAgICB6LWluZGV4OiA4Njc1MzA5O1xuICAgICAgdG9wOiAwO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgb3BhY2l0eTogMDtcbiAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC41cywgdmlzaWJpbGl0eSAwcyAwLjVzO1xuXG4gICAgICAmOnRhcmdldDpub3QoW2RhdGEtc2tpcC10YXJnZXRpbmddKSwgJltkYXRhLXZpc2libGVdIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjVzO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4uYy1uYXYtZ2xvYmFsX19saXN0IHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiAxZW0gYXV0byAwO1xuICBwYWRkaW5nOiAyZW0gMWVtIDJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwb3NpdGlvbjogc3RhdGljO1xuICBAbWVkaWEgKC0tbmF2LWdsb2JhbC1icC1taWQpIHtcbiAgICAmIHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIH1cbiAgfVxufVxuXG4uYy1uYXYtZ2xvYmFsX19saXN0IHtcbiAgLyogQW5ub3lpbmcgbmVjZXNzaXR5IC0gb3ZlcnJpZGUgb2YgT1VSIHdvcmRwcmVzcyB0aGVtZSBkZWZhdWx0cyBmb3IgdWwgKi9cbiAgcG9zaXRpb246IHN0YXRpYztcbn1cblxuLmMtbmF2LWdsb2JhbF9fbGlzdGl0ZW0ge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBoeXBoZW5zOiBub25lO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IC42NTYyNWVtIDAgMDtcbiAgbGluZS1oZWlnaHQ6IDEuMjU7XG4gIEBtZWRpYSAoLS1uYXYtZ2xvYmFsLWJwLW1pZCkge1xuICAgICYge1xuICAgICAgcGFkZGluZzogMS4xNTYyNWVtIDA7XG4gICAgfVxuICB9XG59XG5cbi8qIEFubm95aW5nIG5lY2Vzc2l0eSAtIG92ZXJyaWRlIG9mIE9VUiB3b3JkcHJlc3MgdGhlbWUgZGVmYXVsdHMgZm9yIHVsIGxpICovXG4uYy1uYXYtZ2xvYmFsX19saXN0aXRlbTo6YmVmb3JlIHtcbiAgY29udGVudDogbm9ybWFsO1xufVxuXG4uYy1uYXYtZ2xvYmFsX19sYWJlbCB7XG4gIGNvbG9yOiB2YXIoLS1uYXYtZ2xvYmFsLXdoaXRlKTtcbiAgZm9udC1zaXplOiB2YXIoLS1uYXYtZ2xvYmFsLWRlbHRhKTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBAbWVkaWEgKC0tbmF2LWdsb2JhbC1icC1taWQpIHtcbiAgICAmIHtcbiAgICAgIGZvbnQtc2l6ZTogdmFyKC0tbmF2LWdsb2JhbC1lcHNpbG9uKTtcbiAgICB9XG4gIH1cbn1cblxuLmMtbmF2LWdsb2JhbF9fbGluayxcbi5jLW5hdi1nbG9iYWxfX2xpbms6bGluayxcbi5jLW5hdi1nbG9iYWxfX2xpbms6dmlzaXRlZCxcbi5jLW5hdi1nbG9iYWxfX2xpbms6YWN0aXZlIHtcbiAgZm9udC1zaXplOiB2YXIoLS1uYXYtZ2xvYmFsLWRlbHRhKTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY29sb3I6IHZhcigtLW5hdi1nbG9iYWwtd2hpdGUpO1xuICBwYWRkaW5nOiBjYWxjKC41ICogdmFyKC0tbmF2LWdsb2JhbC1mbHVpZC1lbSkpO1xuICB0cmFuc2l0aW9uOiBub25lO1xuICBAbWVkaWEgKC0tbmF2LWdsb2JhbC1icC1taWQpIHtcbiAgICAmIHtcbiAgICAgIGZvbnQtc2l6ZTogdmFyKC0tbmF2LWdsb2JhbC1lcHNpbG9uKTtcbiAgICAgIHBhZGRpbmc6IDAgdmFyKC0tbmF2LWdsb2JhbC1mb250LWJhc2UtbWF4KTtcbiAgICB9XG4gIH1cbiAgQG1lZGlhICgtLW5hdi1nbG9iYWwtYnAtbWlkKSB7XG4gICAgJjo6YmVmb3JlLFxuICAgICY6OmFmdGVyIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgaGVpZ2h0OiAzcHg7IC8qIE5vcm1hbGx5LCBJIHByZWZlciByZW1zL2VtcyBmb3IgYWxsIGRpbWVuc2lvbnMsIGJ1dCBicm93c2VyIHJvdW5kaW5nIG9uIGFuIGVsZW1lbnQgdGhpcyBzbWFsbCByZXN1bHRzIGluIGRpZmZlcmVudCBwaXhlbCB3aWR0aHMgYWNyb3NzIGFkamFjZW50IGluc3RhbmNlcyBvZiB0aGlzIHNhbWUgZWxlbWVudC4gVGhlIGRpZmZlcmVuY2UgaXMgbm90aWNlYWJsZSBhbmQgYW5ub3lpbmcuICAqL1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgdG9wOiAycHg7XG4gICAgfVxuICB9XG4gIEBtZWRpYSAoLS1uYXYtZ2xvYmFsLWJwLW1pZC1taW51cykge1xuICAgICY6OmJlZm9yZSxcbiAgICAmOjphZnRlciB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBib3R0b206IGNhbGMoLjI1ICogdmFyKC0tbmF2LWdsb2JhbC1mbHVpZC1lbSkpO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgfVxuICB9XG4gICY6aG92ZXIge1xuICAgIGNvbG9yOiB2YXIoLS1uYXYtZ2xvYmFsLXdoaXRlKTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIH1cbiAgQG1lZGlhICgtLW5hdi1nbG9iYWwtYnAtbWlkKSB7XG4gICAgJjpob3Zlcjo6YWZ0ZXIsXG4gICAgJjpmb2N1czo6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0tbmF2LWdsb2JhbC1vdXItcHJpbWFyeS15ZWxsb3cpO1xuICAgIH1cbiAgfVxufVxuXG4vKiA3MDAgd2VpZ2h0IG9ubHkgcmVxdWlyZWQgaW4gdGhlIFJlZyBBcHAgZm9yIGZvcm1hdHRpbmcgXCJDcmVhdGUgTmV3IEFjY291bnRcIiAqL1xuLmMtbmF2LWdsb2JhbF9fbGFiZWwgKyAuYy1uYXYtZ2xvYmFsX19saW5rLFxuLmMtbmF2LWdsb2JhbF9fbGFiZWwgKyAuYy1uYXYtZ2xvYmFsX19saW5rOmxpbmssXG4uYy1uYXYtZ2xvYmFsX19sYWJlbCArIC5jLW5hdi1nbG9iYWxfX2xpbms6dmlzaXRlZCxcbi5jLW5hdi1nbG9iYWxfX2xhYmVsICsgLmMtbmF2LWdsb2JhbF9fbGluazphY3RpdmUge1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICY6OmJlZm9yZSxcbiAgJjo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogM3B4OyAvKiBOb3JtYWxseSwgSSBwcmVmZXIgcmVtcy9lbXMgZm9yIGFsbCBkaW1lbnNpb25zLCBidXQgYnJvd3NlciByb3VuZGluZyBvbiBhbiBlbGVtZW50IHRoaXMgc21hbGwgcmVzdWx0cyBpbiBkaWZmZXJlbnQgcGl4ZWwgd2lkdGhzIGFjcm9zcyBhZGphY2VudCBpbnN0YW5jZXMgb2YgdGhpcyBzYW1lIGVsZW1lbnQuIFRoZSBkaWZmZXJlbmNlIGlzIG5vdGljZWFibGUgYW5kIGFubm95aW5nLiAgKi9cbiAgICB3aWR0aDogMTAwJTtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDJweDtcbiAgfVxuICAmOjphZnRlciB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tbmF2LWdsb2JhbC1vdXItcHJpbWFyeS15ZWxsb3cpO1xuICAgIG9wYWNpdHk6IC43NTtcbiAgfVxuICAmOmhvdmVyOjphZnRlciB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuICBAbWVkaWEgKC0tbmF2LWdsb2JhbC1icC1taWQpIHtcbiAgICAmOjpiZWZvcmUsXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgdG9wOiAwO1xuICAgIH1cbiAgfVxufVxuXG4uYy1uYXYtZ2xvYmFsX19saXN0aXRlbTpsYXN0LWNoaWxkOm5vdCg6b25seS1jaGlsZCkge1xuICAmIC5jLW5hdi1nbG9iYWxfX2xpbmssXG4gICYgLmMtbmF2LWdsb2JhbF9fbGluazpsaW5rLFxuICAmIC5jLW5hdi1nbG9iYWxfX2xpbms6dmlzaXRlZCxcbiAgJiAuYy1uYXYtZ2xvYmFsX19saW5rOmFjdGl2ZSB7XG4gICAgQG1lZGlhICgtLW5hdi1nbG9iYWwtYnAtbWlkKSB7XG4gICAgICAmIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IHZhcigtLW5hdi1nbG9iYWwtZm9udC1iYXNlLW1heCk7XG4gICAgICAgIHBhZGRpbmctbGVmdDogY2FsYygyICogdmFyKC0tbmF2LWdsb2JhbC1mb250LWJhc2UtbWF4KSk7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgdmFyKC0tbmF2LWdsb2JhbC13aGl0ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4uYy1uYXYtZ2xvYmFsX19ub3RpZmljYXRpb24ge1xuICBwYWRkaW5nOiB2YXIoLS1uYXYtZ2xvYmFsLXpldGEpIDNlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogb3JhbmdlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5jLW5hdi1nbG9iYWxfX25vdGlmaWNhdGlvbiBwIHtcbiAgZm9udC1zaXplOiB2YXIoLS1uYXYtZ2xvYmFsLXpldGEpO1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMS4yO1xuICBtYXJnaW46IDA7XG59XG5cbi5jLW5hdi1nbG9iYWxfX25vdGlmaWNhdGlvbiBhIHtcbiAgY29sb3I6IHZhcigtLW5hdi1nbG9iYWwtb3VyLXByaW1hcnktZGFyay1ncmF5KTtcbiAgYm9yZGVyOiBub25lO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLmMtbmF2LWdsb2JhbF9faGVscGVyLW5vd3JhcCB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4iLCIvKiBNYWtlIGNvbnRlbnQgdmlzaWJsZSBzY3JlZW4gcmVhZGVycyBvbmx5IHdoZW4gbm90IGZvY3VzZWQgb3IgYWN0aXZlICovXG4vKiBcInNyXCIgbWVhbmluZyBcInNjcmVlbi1yZWFkZXJcIi4gTGVhcm4gbW9yZTogaHR0cHM6Ly9jc3MtdHJpY2tzLmNvbS9pbmNsdXNpdmVseS1oaWRkZW4vICovXG5cbi5zci1vbmx5Om5vdCg6Zm9jdXMpOm5vdCg6YWN0aXZlKSB7XG4gIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gIC13ZWJraXQtY2xpcC1wYXRoOiBpbnNldCg1MCUpO1xuICBjbGlwLXBhdGg6IGluc2V0KDUwJSk7XG4gIGhlaWdodDogMXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHdpZHRoOiAxcHg7XG59XG5cbio6Zm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xufVxuXG4qOmZvY3VzLXZpc2libGUge1xuICBvdXRsaW5lOiBub25lO1xuICBib3gtc2hhZG93OlxuICAgIDAgMCAwIDAuMTVlbSAjZmZmLFxuICAgIDAgMCAwIDAuM2VtIHZhcigtLWFhLW9yYW5nZSk7XG59XG5cbkBtZWRpYSAoZm9yY2VkLWNvbG9yczogYWN0aXZlKSB7XG4gICo6Zm9jdXMtdmlzaWJsZSB7XG4gICAgb3V0bGluZTogMC4yZW0gc29saWQ7XG4gIH1cbn1cbiIsIkBpbXBvcnQgXCIuL2NvbXBvbmVudHMvX2Zvb3Rlci5jc3NcIjtcbkBpbXBvcnQgXCIuL2NvbXBvbmVudHMvX21vZGFsLmNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy9fbmF2LWdsb2JhbC5jc3NcIjtcbkBpbXBvcnQgXCIuL2NvbXBvbmVudHMvX2FjY2Vzc2liaWxpdHkuY3NzXCI7XG5cbi8qKiBVdGlsaXR5IENsYXNzZXMgKiovXG5cbi8qXG4gIFVzZWQgdG8gaW5kaWNhdGUgcHJlZm9ybWF0dGVkIHdoaXRlc3BhY2UuXG4qL1xuLnUtcHJlZm9ybWF0dGVkIHsgd2hpdGUtc3BhY2U6IHByZSB9XG4iXX0= */
