/**
 * Fabricator styles
 * @author Luke Askew
 * Class selectors are namespaced with "f-"
 */
/**
 * Github-like theme for Prism.js
 * @author Luke Askew http://github.com/lukeaskew
 */
code,
code[class*='language-'],
pre[class*='language-'] {
  color: #333;
  text-align: left;
  white-space: pre;
  word-spacing: normal;
  -moz-tab-size: 4;
       tab-size: 4;
  -webkit-hyphens: none;
      -ms-hyphens: none;
          hyphens: none;
  font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace;
  line-height: 1.4;
  direction: ltr;
  cursor: text;
  letter-spacing: normal; }

pre[class*='language-'] {
  overflow: auto;
  margin: 1em 0;
  padding: 1.2em;
  border-radius: 3px;
  font-size: 85%; }

p code,
li code,
table code {
  margin: 0;
  border-radius: 3px;
  padding: 0.2em 0;
  font-size: 85%; }
  p code:before, p code:after,
  li code:before,
  li code:after,
  table code:before,
  table code:after {
    letter-spacing: -0.2em;
    content: '\00a0'; }

code,
:not(pre) > code[class*='language-'],
pre[class*='language-'] {
  background: #f7f7f7; }

:not(pre) > code[class*='language-'] {
  padding: 0.1em;
  border-radius: 0.3em; }

.token.comment, .token.prolog, .token.doctype, .token.cdata {
  color: #969896; }

.token.punctuation, .token.string, .token.atrule, .token.attr-value {
  color: #183691; }

.token.property, .token.tag {
  color: #63a35c; }

.token.boolean, .token.number {
  color: #0086b3; }

.token.selector, .token.attr-name,
.token.attr-value .punctuation:first-child, .token.keyword, .token.regex, .token.important {
  color: #a71d5d; }

.token.operator, .token.entity, .token.url,
.language-css .token.string {
  color: #a71d5d; }

.token.entity {
  cursor: help; }

.namespace {
  opacity: 0.7; }

.f-color-chips {
  display: flex;
  flex-wrap: wrap; }

.f-color-chip {
  flex-grow: 1;
  flex-shrink: 0;
  flex-basis: 100%;
  border-top-width: 8em;
  border-top-style: solid;
  border-bottom-width: 0;
  border-bottom-style: solid;
  background-color: #fff;
  font-weight: 700;
  font-size: 0.75em;
  padding: 1em;
  margin-bottom: 2em;
  box-sizing: border-box; }
  @media (min-width: 60em) {
    .f-color-chip {
      flex-basis: 13em; } }
  .f-color-chip .f-color-chip__color {
    background-color: #fff;
    content: attr(data-color);
    font-weight: 400; }

.f-controls {
  box-sizing: border-box; }
  .f-controls:after {
    clear: both; }
  .f-controls:before, .f-controls:after {
    display: table;
    content: ' '; }
  .f-controls .f-control {
    display: block;
    float: left;
    text-align: center;
    width: 33.33333%;
    margin: 0;
    padding: 1rem 0; }
    .f-controls .f-control.f-active {
      box-shadow: inset 0 0.25rem 0 0 #757575; }
      .f-controls .f-control.f-active use {
        fill: #cccccc; }
    .f-controls .f-control svg {
      vertical-align: middle; }
      .f-controls .f-control svg use {
        fill: #757575; }

.f-control {
  box-sizing: border-box;
  display: inline-block;
  cursor: pointer;
  margin-left: 0.66rem; }
  .f-control:first-child {
    margin-left: 0; }
  .f-control svg {
    width: 0.875rem;
    height: 0.875rem; }
    .f-control svg use {
      fill: #cccccc; }

.f-control-bar {
  padding: 1rem 0; }
  .f-control-bar:after {
    clear: both; }
  .f-control-bar:before, .f-control-bar:after {
    display: table;
    content: ' '; }

.f-menu-toggle {
  cursor: pointer;
  vertical-align: middle; }
  .f-menu-toggle svg {
    display: block;
    float: left;
    margin-bottom: -1px; }

.f-item-group {
  margin-top: 3rem;
  margin-bottom: 3rem;
  padding-bottom: 3rem;
  border-bottom: 1px solid #cccccc; }
  .f-item-group:after {
    clear: both; }
  .f-item-group:before, .f-item-group:after {
    display: table;
    content: ' '; }
  .f-item-group:last-child {
    border-bottom: 0;
    margin-bottom: 0; }
  .f-item-group ~ .f-item-group {
    margin-top: 0; }
  .f-item-group > .f-item-group {
    padding-bottom: 1.5rem;
    margin-bottom: 1.5rem;
    border-bottom: 0; }
    .f-item-group > .f-item-group:first-of-type {
      margin-top: 0; }
    .f-item-group > .f-item-group:last-child {
      margin-bottom: 0;
      padding-bottom: 0; }

.f-item-code {
  margin-top: 2rem; }

.f-item-preview:after {
  clear: both; }

.f-item-preview:before, .f-item-preview:after {
  display: table;
  content: ' '; }

.f-item-border-bottom {
  border-bottom: 1px solid #cccccc; }

.f-item-heading-group {
  margin-bottom: 2rem;
  vertical-align: middle; }
  .f-item-heading-group:after {
    clear: both; }
  .f-item-heading-group:before, .f-item-heading-group:after {
    display: table;
    content: ' '; }

.f-item-heading {
  margin-top: 0;
  margin-bottom: 0;
  display: inline-block;
  vertical-align: middle;
  line-height: 1; }

.f-item-controls {
  display: inline-block;
  vertical-align: middle;
  margin-left: 0.5rem; }
  .f-item-controls .f-control {
    width: 0.875rem;
    height: 0.875rem;
    display: block;
    float: left; }
    .f-item-controls .f-control:hover use {
      fill: #757575; }
    .f-item-controls .f-control use {
      fill: #cccccc; }

.f-item-hidden {
  display: none; }

.f-item-notes {
  font-size: 0.875rem; }

.f-item-preview {
  overflow: hidden;
  position: relative;
  min-height: 100px; }

.f-item-preview .page-header {
  position: static !important;
  margin-bottom: 335px; }

.f-item-preview .menu-toggle {
  position: absolute;
  display: block !important; }

html {
  height: 100%; }
  html.f-menu-active {
    overflow: hidden; }
    @media (min-width: 60em) {
      html.f-menu-active {
        overflow: auto; } }

body {
  margin: 0;
  position: relative; }
  .f-menu-active body {
    width: 100%;
    height: 100%;
    overflow: hidden; }
    @media (min-width: 60em) {
      .f-menu-active body {
        overflow: auto;
        height: auto; } }

.f-container {
  box-sizing: border-box;
  position: relative;
  padding: 0 1em;
  z-index: 0;
  min-height: 100vh; }
  .f-container:after {
    clear: both; }
  .f-container:before, .f-container:after {
    display: table;
    content: ' '; }
  .f-menu-active .f-container {
    transform: translate(14rem, 0); }
    @media (min-width: 60em) {
      .f-menu-active .f-container {
        margin-left: 14rem;
        transform: translate(0, 0); } }

.f-menu {
  box-sizing: border-box;
  position: fixed;
  top: 0;
  left: 0;
  transform: translate(-14rem, 0);
  width: 14rem;
  height: 100%;
  z-index: 1;
  background-color: #1f1f1f;
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch; }
  .f-menu-active .f-menu {
    transform: translate(0, 0); }
  .f-menu ul {
    margin-top: 0;
    margin-bottom: 0;
    padding-left: 0; }
  .f-menu > ul {
    margin-top: 0;
    margin-bottom: 1rem; }
    .f-menu > ul > li {
      margin-top: 1rem; }
  .f-menu li {
    list-style-type: none;
    margin-top: 0;
    margin-bottom: 0; }
  .f-menu a {
    display: block;
    padding: 0.33rem 2rem;
    color: #cccccc !important;
    text-decoration: none;
    font-size: 0.875rem;
    line-height: 1.5; }
    .f-menu a:hover {
      color: #cccccc !important;
      text-decoration: underline; }
    .f-menu a.f-active {
      box-shadow: inset 0.25rem 0 0 0 #757575; }
  .f-menu .f-menu__heading {
    padding-left: 1.5rem;
    font-weight: 700;
    font-size: 0.875rem; }
    .f-menu .f-menu__heading:hover {
      color: #757575; }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZhYnJpY2F0b3Iuc2NzcyIsInBhcnRpYWxzL19jb2RlLnNjc3MiLCJwYXJ0aWFscy9fY29sb3ItY2hpcHMuc2NzcyIsInBhcnRpYWxzL19jb250cm9scy5zY3NzIiwicGFydGlhbHMvX3ZhcmlhYmxlcy5zY3NzIiwicGFydGlhbHMvX2l0ZW0uc2NzcyIsInBhcnRpYWxzL19sYXlvdXQuc2NzcyIsInBhcnRpYWxzL19tZW51LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQ0pIOzs7R0FHRztBQWdCSDs7O0VBR0MsWUFiVztFQWNYLGlCQUFpQjtFQUNqQixpQkFBaUI7RUFDakIscUJBQXFCO0VBQ3JCLGlCQUFZO09BQVosWUFBWTtFQUNaLHNCQUFjO01BQWQsa0JBQWM7VUFBZCxjQUFjO0VBQ2Qsb0VBQW9FO0VBQ3BFLGlCQUFpQjtFQUNqQixlQUFlO0VBQ2YsYUFBYTtFQUNiLHVCQUF1QixFQUN2Qjs7QUFHRDtFQUNDLGVBQWU7RUFDZixjQUFjO0VBQ2QsZUFBZTtFQUNmLG1CQUFtQjtFQUNuQixlQUFlLEVBQ2Y7O0FBRUQ7OztFQUdDLFVBQVU7RUFDVixtQkFBbUI7RUFDbkIsaUJBQWlCO0VBQ2pCLGVBQWUsRUFPZjtFQWJEOzs7OztJQVVFLHVCQUF1QjtJQUN2QixpQkFBaUIsRUFDakI7O0FBR0Y7OztFQUdDLG9CQWpEbUIsRUFrRG5COztBQUdEO0VBQ0MsZUFBZTtFQUNmLHFCQUFxQixFQUNyQjs7QUFJRDtFQU1FLGVBakVpQixFQWtFakI7O0FBUEY7RUFhRSxlQS9FWSxFQWdGWjs7QUFkRjtFQWtCRSxlQS9FYSxFQWdGYjs7QUFuQkY7RUF1QkUsZUF4RlksRUF5Rlo7O0FBeEJGOztFQWdDRSxlQTlGYyxFQStGZDs7QUFqQ0Y7O0VBd0NFLGVBdkdjLEVBd0dkOztBQXpDRjtFQTRDRSxhQUFhLEVBQ2I7O0FBSUY7RUFDQyxhQUFhLEVBQ2I7O0FDNUhEO0VBQ0MsY0FBYztFQUNkLGdCQUFnQixFQUNoQjs7QUFFRDtFQUND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YixpQkFBaUIsRUFNakI7SUFKQTtNQVRGO1FBVUcsZUFBZTtRQUNmLGFBQWEsRUFFZCxFQUFBOztBQUdGO0VGc0JDLHVCQUF1QjtFRW5CdkIsbUJBQW1CO0VBQ25CLGVBQWU7RUFDZixXQUFXO0VBQ1gsa0JBQWtCLEVBV2xCO0VBakJEO0lGV0UsWUFBWSxFQUNaO0VFWkY7SUZnQkUsZUFBZTtJQUNmLGFBQWEsRUFDYjtFRWxCRjtJQVNFLCtCQUFvQixFQU1wQjtJQUpBO01BWEY7UUFZRyxtQk4vQmU7UU1nQ2YsMkJBQW9CLEVBRXJCLEVBQUE7O0FDMUNGO0VIaURDLHVCQUF1QjtFRy9DdkIsZ0JBQWdCO0VBQ2hCLE9BQU87RUFDUCxRQUFRO0VBQ1IsZ0NBQW9CO0VBQ3BCLGFQRWlCO0VPRGpCLGFBQWE7RUFDYixXQUFXO0VBQ1gsMEJIVFM7RUdVVCxtQkFBbUI7RUFDbkIsaUJBQWlCO0VBQ2pCLGtDQUFrQyxFQXNEbEM7RUFsRUQ7SUFlRSwyQkFBb0IsRUFDcEI7RUFoQkY7SUFtQkUsY0FBYztJQUNkLGlCQUFpQjtJQUNqQixnQkFBZ0IsRUFDaEI7RUF0QkY7SUF5QkUsY0FBYztJQUNkLG9CQUFvQixFQUtwQjtJQS9CRjtNQTZCRyxpQkFBaUIsRUFDakI7RUE5Qkg7SUFrQ0Usc0JBQXNCO0lBQ3RCLGNBQWM7SUFDZCxpQkFBaUIsRUFDakI7RUFyQ0Y7SUF3Q0UsZUFBZTtJQUNmLHNCQUFzQjtJQUN0QiwwQkFBa0M7SUFDbEMsc0JBQXNCO0lBQ3RCLG9CQUFvQjtJQUNwQixpQkFBaUIsRUFVakI7SUF2REY7TUFnREcsMEJBQWtDO01BQ2xDLDJCQUEyQixFQUMzQjtJQWxESDtNQXFERyx3Q1A5Q1MsRU8rQ1Q7RUF0REg7SUEwREUscUJBQXFCO0lBQ3JCLGlCQUFpQjtJQUNqQixvQkFBb0IsRUFLcEI7SUFqRUY7TUErREcsZUg5RFMsRUcrRFQiLCJmaWxlIjoiZi5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEZhYnJpY2F0b3Igc3R5bGVzXG4gKiBAYXV0aG9yIEx1a2UgQXNrZXdcbiAqIENsYXNzIHNlbGVjdG9ycyBhcmUgbmFtZXNwYWNlZCB3aXRoIFwiZi1cIlxuICovXG5cbiRzZXR0aW5nczogKFxuXHR0aGVtZTogbGlnaHQsXG5cdGFjY2VudDogaHNsKDAsIDAlLCA0NiUpLFxuXHRtZW51LXdpZHRoOiAxNHJlbVxuKTtcblxuQGltcG9ydCAncGFydGlhbHMvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3BhcnRpYWxzL2NvZGUnO1xuQGltcG9ydCAncGFydGlhbHMvY29sb3ItY2hpcHMnO1xuQGltcG9ydCAncGFydGlhbHMvY29udHJvbHMnO1xuQGltcG9ydCAncGFydGlhbHMvaXRlbSc7XG5AaW1wb3J0ICdwYXJ0aWFscy9sYXlvdXQnO1xuQGltcG9ydCAncGFydGlhbHMvbWVudSc7XG4iLCIvKipcbiAqIEdpdGh1Yi1saWtlIHRoZW1lIGZvciBQcmlzbS5qc1xuICogQGF1dGhvciBMdWtlIEFza2V3IGh0dHA6Ly9naXRodWIuY29tL2x1a2Vhc2tld1xuICovXG5cbi8vIGNvbG9yIHZhcnNcbiRjb2RlLWNvbG9yczogKFxuXHRibHVlOiAjMTgzNjkxLFxuXHR0ZWFsOiAjMDA4NmIzLFxuXHRibGFjazogIzMzMyxcblx0cHVycGxlOiAjYTcxZDVkLFxuXHRtYXJvb246ICNhNzFkNWQsXG5cdGdyZWVuOiAjNjNhMzVjLFxuXHRsaWdodC1ncmF5OiAjZjdmN2Y3LFxuXHRkYXJrLWdyYXk6ICM5Njk4OTZcbik7XG5cblxuLy8gYmFzZVxuY29kZSxcbmNvZGVbY2xhc3MqPSdsYW5ndWFnZS0nXSxcbnByZVtjbGFzcyo9J2xhbmd1YWdlLSddIHtcblx0Y29sb3I6IG1hcC1nZXQoJGNvZGUtY29sb3JzLCBibGFjayk7XG5cdHRleHQtYWxpZ246IGxlZnQ7XG5cdHdoaXRlLXNwYWNlOiBwcmU7XG5cdHdvcmQtc3BhY2luZzogbm9ybWFsO1xuXHR0YWItc2l6ZTogNDtcblx0aHlwaGVuczogbm9uZTtcblx0Zm9udC1mYW1pbHk6IENvbnNvbGFzLCAnTGliZXJhdGlvbiBNb25vJywgTWVubG8sIENvdXJpZXIsIG1vbm9zcGFjZTtcblx0bGluZS1oZWlnaHQ6IDEuNDtcblx0ZGlyZWN0aW9uOiBsdHI7XG5cdGN1cnNvcjogdGV4dDtcblx0bGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbn1cblxuLy8gY29kZSBibG9ja3NcbnByZVtjbGFzcyo9J2xhbmd1YWdlLSddIHtcblx0b3ZlcmZsb3c6IGF1dG87XG5cdG1hcmdpbjogMWVtIDA7XG5cdHBhZGRpbmc6IDEuMmVtO1xuXHRib3JkZXItcmFkaXVzOiAzcHg7XG5cdGZvbnQtc2l6ZTogODUlO1xufVxuXG5wIGNvZGUsXG5saSBjb2RlLFxudGFibGUgY29kZSB7XG5cdG1hcmdpbjogMDtcblx0Ym9yZGVyLXJhZGl1czogM3B4O1xuXHRwYWRkaW5nOiAwLjJlbSAwO1xuXHRmb250LXNpemU6IDg1JTtcblxuXHQmOmJlZm9yZSxcblx0JjphZnRlciB7XG5cdFx0bGV0dGVyLXNwYWNpbmc6IC0wLjJlbTtcblx0XHRjb250ZW50OiAnXFwwMGEwJztcblx0fVxufVxuXG5jb2RlLFxuOm5vdChwcmUpID4gY29kZVtjbGFzcyo9J2xhbmd1YWdlLSddLFxucHJlW2NsYXNzKj0nbGFuZ3VhZ2UtJ10ge1xuXHRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCRjb2RlLWNvbG9ycywgbGlnaHQtZ3JheSk7XG59XG5cbi8vIGlubGluZSBjb2RlXG46bm90KHByZSkgPiBjb2RlW2NsYXNzKj0nbGFuZ3VhZ2UtJ10ge1xuXHRwYWRkaW5nOiAwLjFlbTtcblx0Ym9yZGVyLXJhZGl1czogMC4zZW07XG59XG5cblxuLy8gdG9rZW4gY29sb3JzXG4udG9rZW4ge1xuXG5cdCYuY29tbWVudCxcblx0Ji5wcm9sb2csXG5cdCYuZG9jdHlwZSxcblx0Ji5jZGF0YSB7XG5cdFx0Y29sb3I6IG1hcC1nZXQoJGNvZGUtY29sb3JzLCBkYXJrLWdyYXkpO1xuXHR9XG5cblx0Ji5wdW5jdHVhdGlvbixcblx0Ji5zdHJpbmcsXG5cdCYuYXRydWxlLFxuXHQmLmF0dHItdmFsdWUge1xuXHRcdGNvbG9yOiBtYXAtZ2V0KCRjb2RlLWNvbG9ycywgYmx1ZSk7XG5cdH1cblxuXHQmLnByb3BlcnR5LFxuXHQmLnRhZyB7XG5cdFx0Y29sb3I6IG1hcC1nZXQoJGNvZGUtY29sb3JzLCBncmVlbik7XG5cdH1cblxuXHQmLmJvb2xlYW4sXG5cdCYubnVtYmVyIHtcblx0XHRjb2xvcjogbWFwLWdldCgkY29kZS1jb2xvcnMsIHRlYWwpO1xuXHR9XG5cblx0Ji5zZWxlY3Rvcixcblx0Ji5hdHRyLW5hbWUsXG5cdCYuYXR0ci12YWx1ZSAucHVuY3R1YXRpb246Zmlyc3QtY2hpbGQsXG5cdCYua2V5d29yZCxcblx0Ji5yZWdleCxcblx0Ji5pbXBvcnRhbnQge1xuXHRcdGNvbG9yOiBtYXAtZ2V0KCRjb2RlLWNvbG9ycywgbWFyb29uKTtcblx0fVxuXG5cblx0Ji5vcGVyYXRvcixcblx0Ji5lbnRpdHksXG5cdCYudXJsLFxuXHQubGFuZ3VhZ2UtY3NzICYuc3RyaW5nIHtcblx0XHRjb2xvcjogbWFwLWdldCgkY29kZS1jb2xvcnMsIHB1cnBsZSk7XG5cdH1cblxuXHQmLmVudGl0eSB7XG5cdFx0Y3Vyc29yOiBoZWxwO1xuXHR9XG5cbn1cblxuLm5hbWVzcGFjZSB7XG5cdG9wYWNpdHk6IDAuNztcbn1cbiIsIi5mLWNvbG9yLWNoaXBzIHtcblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC13cmFwOiB3cmFwO1xufVxuXG4uZi1jb2xvci1jaGlwIHtcblx0ZmxleC1ncm93OiAxO1xuXHRmbGV4LXNocmluazogMDtcblx0ZmxleC1iYXNpczogMTAwJTtcblx0Ym9yZGVyLXRvcC13aWR0aDogOGVtO1xuXHRib3JkZXItdG9wLXN0eWxlOiBzb2xpZDtcblx0Ym9yZGVyLWJvdHRvbS13aWR0aDogMDtcblx0Ym9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7XG5cdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG5cdGZvbnQtd2VpZ2h0OiA3MDA7XG5cdGZvbnQtc2l6ZTogMC43NWVtO1xuXHRwYWRkaW5nOiAxZW07XG5cdG1hcmdpbi1ib3R0b206IDJlbTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuXHRAbWVkaWEgKG1pbi13aWR0aDogNjBlbSkge1xuXHRcdGZsZXgtYmFzaXM6IDEzZW07XG5cdH1cblxuXHQuZi1jb2xvci1jaGlwX19jb2xvciB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcblx0XHRjb250ZW50OiBhdHRyKGRhdGEtY29sb3IpO1xuXHRcdGZvbnQtd2VpZ2h0OiA0MDA7XG5cdH1cbn1cbiIsIi5mLWNvbnRyb2xzIHtcblx0QGluY2x1ZGUgY2xlYXJmaXg7XG5cdEBpbmNsdWRlIGJvcmRlci1ib3g7XG5cblx0LmYtY29udHJvbCB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdHdpZHRoOiBwZXJjZW50YWdlKDEvMyk7XG5cdFx0bWFyZ2luOiAwO1xuXHRcdHBhZGRpbmc6IDFyZW0gMDtcblxuXHRcdCYuZi1hY3RpdmUge1xuXHRcdFx0Ym94LXNoYWRvdzogaW5zZXQgMCAwLjI1cmVtIDAgMCBjb2xvcihhY2NlbnQpO1xuXG5cdFx0XHR1c2Uge1xuXHRcdFx0XHRmaWxsOiBjb2xvcihtZW51LXRleHQpO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHN2ZyB7XG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG5cdFx0XHR1c2Uge1xuXHRcdFx0XHRmaWxsOiBpZigkdGhlbWUgPT0gJHRoZW1lLWRhcmssIGNvbG9yKG5vcm1hbCksIGNvbG9yKGxpZ2h0KSApO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG4uZi1jb250cm9sIHtcblx0QGluY2x1ZGUgYm9yZGVyLWJveDtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdG1hcmdpbi1sZWZ0OiAwLjY2cmVtO1xuXG5cdCY6Zmlyc3QtY2hpbGQge1xuXHRcdG1hcmdpbi1sZWZ0OiAwO1xuXHR9XG5cblx0c3ZnIHtcblx0XHR3aWR0aDogMC44NzVyZW07XG5cdFx0aGVpZ2h0OiAwLjg3NXJlbTtcblxuXHRcdHVzZSB7XG5cdFx0XHRmaWxsOiBjb2xvcihsaWdodCk7XG5cdFx0fVxuXHR9XG59XG5cbi5mLWNvbnRyb2wtYmFyIHtcblx0QGluY2x1ZGUgY2xlYXJmaXg7XG5cdHBhZGRpbmc6IDFyZW0gMDtcbn1cblxuLmYtbWVudS10b2dnbGUge1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cblx0c3ZnIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRmbG9hdDogbGVmdDtcblx0XHRtYXJnaW4tYm90dG9tOiAtMXB4O1xuXHR9XG59XG4iLCIkYmFzZS1jb2xvcnM6IChcblx0ZGFyazogaHNsKDAsIDAlLCAxMiUpLFxuXHRtZWRpdW06IGhzbCgwLCAwJSwgNDYlKSxcblx0bGlnaHQ6IGhzbCgwLCAwJSwgODAlKSxcblx0YWNjZW50OiBtYXAtZ2V0KCRzZXR0aW5ncywgYWNjZW50KVxuKTtcblxuJHRoZW1lLWRhcms6IChcblx0bWVudS1iYWNrZ3JvdW5kOiBtYXAtZ2V0KCRiYXNlLWNvbG9ycywgZGFyayksXG5cdG1lbnUtdGV4dDogbWFwLWdldCgkYmFzZS1jb2xvcnMsIGxpZ2h0KSxcblx0bm9ybWFsOiBtYXAtZ2V0KCRiYXNlLWNvbG9ycywgbWVkaXVtKVxuKTtcblxuJHRoZW1lLWxpZ2h0OiAoXG5cdG1lbnUtYmFja2dyb3VuZDogaHNsKDAsIDAlLCAxMDAlKSxcblx0bWVudS10ZXh0OiBtYXAtZ2V0KCRiYXNlLWNvbG9ycywgbWVkaXVtKSxcblx0bm9ybWFsOiBtYXAtZ2V0KCRiYXNlLWNvbG9ycywgbWVkaXVtKVxuKTtcblxuJHRoZW1lOiAkdGhlbWUtZGFyayAhZGVmYXVsdDtcblxuQGlmIChtYXAtZ2V0KCRzZXR0aW5ncywgdGhlbWUpID09ICdkYXJrJykge1xuXHQkdGhlbWU6ICR0aGVtZS1kYXJrO1xufVxuXG4kY29sb3JzOiBtYXAtbWVyZ2UoJGJhc2UtY29sb3JzLCAkdGhlbWUpO1xuXG4kbWVudS13aWR0aDogbWFwLWdldCgkc2V0dGluZ3MsIG1lbnUtd2lkdGgpO1xuXG5cbi8vIGZ1bmN0aW9uc1xuQGZ1bmN0aW9uIGNvbG9yKCRjb2xvcikge1xuICAgIEByZXR1cm4gbWFwLWdldCgkY29sb3JzLCAkY29sb3IpO1xufVxuXG5cbi8vIG1peGluc1xuQG1peGluIGNsZWFyZml4IHtcblx0JjphZnRlciB7XG5cdFx0Y2xlYXI6IGJvdGg7XG5cdH1cblxuXHQmOmJlZm9yZSxcblx0JjphZnRlciB7XG5cdFx0ZGlzcGxheTogdGFibGU7XG5cdFx0Y29udGVudDogJyAnO1xuXHR9XG59XG5cbkBtaXhpbiBib3JkZXItYm94IHtcblx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbiIsIi5mLWl0ZW0tZ3JvdXAge1xuXHRAaW5jbHVkZSBjbGVhcmZpeDtcblx0bWFyZ2luLXRvcDogM3JlbTtcblx0bWFyZ2luLWJvdHRvbTogM3JlbTtcblx0cGFkZGluZy1ib3R0b206IDNyZW07XG5cdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBjb2xvcihsaWdodCk7XG5cblx0JjpsYXN0LWNoaWxkIHtcblx0XHRib3JkZXItYm90dG9tOiAwO1xuXHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdH1cblxuXHQmIH4gJiB7XG5cdFx0bWFyZ2luLXRvcDogMDtcblx0fVxuXG5cdCYgPiAmIHtcblx0XHRwYWRkaW5nLWJvdHRvbTogMS41cmVtO1xuXHRcdG1hcmdpbi1ib3R0b206IDEuNXJlbTtcblx0XHRib3JkZXItYm90dG9tOiAwO1xuXG5cdFx0JjpmaXJzdC1vZi10eXBlIHtcblx0XHRcdG1hcmdpbi10b3A6IDA7XG5cdFx0fVxuXG5cdFx0JjpsYXN0LWNoaWxkIHtcblx0XHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdFx0XHRwYWRkaW5nLWJvdHRvbTogMDtcblx0XHR9XG5cdH1cbn1cblxuLmYtaXRlbS1jb2RlIHtcblx0bWFyZ2luLXRvcDogMnJlbTtcbn1cblxuLmYtaXRlbS1wcmV2aWV3IHtcblx0QGluY2x1ZGUgY2xlYXJmaXg7XG59XG5cbi5mLWl0ZW0tYm9yZGVyLWJvdHRvbSB7XG5cdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBjb2xvcihsaWdodCk7XG59XG5cbi5mLWl0ZW0taGVhZGluZy1ncm91cCB7XG5cdEBpbmNsdWRlIGNsZWFyZml4O1xuXHRtYXJnaW4tYm90dG9tOiAycmVtO1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4uZi1pdGVtLWhlYWRpbmcge1xuXHRtYXJnaW4tdG9wOiAwO1xuXHRtYXJnaW4tYm90dG9tOiAwO1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdGxpbmUtaGVpZ2h0OiAxO1xufVxuXG5cbi5mLWl0ZW0tY29udHJvbHMge1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdG1hcmdpbi1sZWZ0OiAwLjVyZW07XG5cblx0LmYtY29udHJvbCB7XG5cdFx0d2lkdGg6IDAuODc1cmVtO1xuXHRcdGhlaWdodDogMC44NzVyZW07XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0ZmxvYXQ6IGxlZnQ7XG5cblx0XHQmOmhvdmVyIHtcblx0XHRcdHVzZSB7XG5cdFx0XHRcdGZpbGw6IGNvbG9yKG5vcm1hbCk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0dXNlIHtcblx0XHRcdGZpbGw6IGNvbG9yKGxpZ2h0KTtcblx0XHR9XG5cdH1cbn1cblxuLmYtaXRlbS1oaWRkZW4ge1xuXHRkaXNwbGF5OiBub25lO1xufVxuXG4uZi1pdGVtLW5vdGVzIHtcblx0Zm9udC1zaXplOiAwLjg3NXJlbTtcbn1cblxuLmYtaXRlbS1wcmV2aWV3IHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtaW4taGVpZ2h0OiAxMDBweDtcbn1cbi5mLWl0ZW0tcHJldmlldyAucGFnZS1oZWFkZXIge1xuICBwb3NpdGlvbjogc3RhdGljICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1ib3R0b206IDMzNXB4O1xufVxuXG4uZi1pdGVtLXByZXZpZXcgLm1lbnUtdG9nZ2xlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xufVxuXG4iLCJodG1sIHtcblx0aGVpZ2h0OiAxMDAlO1xuXG5cdCYuZi1tZW51LWFjdGl2ZSB7XG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblxuXHRcdEBtZWRpYSAobWluLXdpZHRoOiA2MGVtKSB7XG5cdFx0XHRvdmVyZmxvdzogYXV0bztcblx0XHR9XG5cdH1cbn1cblxuYm9keSB7XG5cdG1hcmdpbjogMDtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdC5mLW1lbnUtYWN0aXZlICYge1xuXHRcdHdpZHRoOjEwMCU7XG5cdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdG92ZXJmbG93OiBoaWRkZW47XG5cblx0XHRAbWVkaWEgKG1pbi13aWR0aDogNjBlbSkge1xuXHRcdFx0b3ZlcmZsb3c6IGF1dG87XG5cdFx0XHRoZWlnaHQ6IGF1dG87XG5cdFx0fVxuXHR9XG59XG5cbi5mLWNvbnRhaW5lciB7XG5cdEBpbmNsdWRlIGNsZWFyZml4O1xuXHRAaW5jbHVkZSBib3JkZXItYm94O1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHBhZGRpbmc6IDAgMWVtO1xuXHR6LWluZGV4OiAwO1xuXHRtaW4taGVpZ2h0OiAxMDB2aDtcblxuXHQuZi1tZW51LWFjdGl2ZSAmIHtcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZSgkbWVudS13aWR0aCwgMCk7XG5cblx0XHRAbWVkaWEgKG1pbi13aWR0aDogNjBlbSkge1xuXHRcdFx0bWFyZ2luLWxlZnQ6ICRtZW51LXdpZHRoO1xuXHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XG5cdFx0fVxuXHR9XG5cbn1cbiIsIi8vIG1lbnVcbi5mLW1lbnUge1xuXHRAaW5jbHVkZSBib3JkZXItYm94O1xuXHRwb3NpdGlvbjogZml4ZWQ7XG5cdHRvcDogMDtcblx0bGVmdDogMDtcblx0dHJhbnNmb3JtOiB0cmFuc2xhdGUoLSRtZW51LXdpZHRoLCAwKTtcblx0d2lkdGg6ICRtZW51LXdpZHRoO1xuXHRoZWlnaHQ6IDEwMCU7XG5cdHotaW5kZXg6IDE7XG5cdGJhY2tncm91bmQtY29sb3I6IGNvbG9yKG1lbnUtYmFja2dyb3VuZCk7XG5cdG92ZXJmbG93LXg6IGhpZGRlbjtcblx0b3ZlcmZsb3cteTogYXV0bztcblx0LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuXG5cdC5mLW1lbnUtYWN0aXZlICYge1xuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xuXHR9XG5cblx0dWwge1xuXHRcdG1hcmdpbi10b3A6IDA7XG5cdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0XHRwYWRkaW5nLWxlZnQ6IDA7XG5cdH1cblxuXHQ+IHVsIHtcblx0XHRtYXJnaW4tdG9wOiAwO1xuXHRcdG1hcmdpbi1ib3R0b206IDFyZW07XG5cblx0XHQ+IGxpIHtcblx0XHRcdG1hcmdpbi10b3A6IDFyZW07XG5cdFx0fVxuXHR9XG5cblx0bGkge1xuXHRcdGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcblx0XHRtYXJnaW4tdG9wOiAwO1xuXHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdH1cblxuXHRhIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRwYWRkaW5nOiAwLjMzcmVtIDJyZW07XG5cdFx0Y29sb3I6IGNvbG9yKG1lbnUtdGV4dCkgIWltcG9ydGFudDtcblx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdFx0Zm9udC1zaXplOiAwLjg3NXJlbTtcblx0XHRsaW5lLWhlaWdodDogMS41O1xuXG5cdFx0Jjpob3ZlciB7XG5cdFx0XHRjb2xvcjogY29sb3IobWVudS10ZXh0KSAhaW1wb3J0YW50O1xuXHRcdFx0dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG5cdFx0fVxuXG5cdFx0Ji5mLWFjdGl2ZSB7XG5cdFx0XHRib3gtc2hhZG93OiBpbnNldCAwLjI1cmVtIDAgMCAwIGNvbG9yKGFjY2VudCk7XG5cdFx0fVxuXHR9XG5cblx0LmYtbWVudV9faGVhZGluZyB7XG5cdFx0cGFkZGluZy1sZWZ0OiAxLjVyZW07XG5cdFx0Zm9udC13ZWlnaHQ6IDcwMDtcblx0XHRmb250LXNpemU6IDAuODc1cmVtO1xuXG5cdFx0Jjpob3ZlciB7XG5cdFx0XHRjb2xvcjogY29sb3Iobm9ybWFsKTtcblx0XHR9XG5cdH1cbn1cbiJdfQ== */
